From 447e2ce16d7d6d6b6659704eb09bb18814474668 Mon Sep 17 00:00:00 2001 From: Itamar Syn-Hershko Date: Thu, 12 May 2016 23:56:38 +0300 Subject: [PATCH 001/141] WIP --- .../Analysis/Core/UpperCaseFilter.cs | 2 +- .../Miscellaneous/ASCIIFoldingFilter.cs | 2 +- .../Miscellaneous/PerFieldAnalyzerWrapper.cs | 2 +- .../Analysis/Util/AbstractAnalysisFactory.cs | 93 +- .../Analysis/Util/CharArrayMap.cs | 1981 +++++++++-------- .../Analysis/Util/CharArraySet.cs | 426 ++-- .../Analysis/Util/RollingCharBuffer.cs | 4 +- .../Lucene.Net.Analysis.Common.csproj | 3 + .../Support/Compatibility/Collections.cs | 5 + src/Lucene.Net.Core/Support/SetExtensions.cs | 3 + .../JavaCompatibility/LuceneTestCase.cs | 13 +- .../JavaCompatibility/LuceneTypesHelpers.cs | 2 +- .../JavaCompatibility/SystemTypesHelpers.cs | 49 +- .../Analysis/Util/TestCharArrayMap.cs | 515 ++--- .../Analysis/Util/TestCharArraySet.cs | 1148 +++++----- .../Analysis/Util/TestCharTokenizers.cs | 1 + .../Lucene.Net.Tests.Analysis.Common.csproj | 2 + 17 files changed, 2253 insertions(+), 1998 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/UpperCaseFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/UpperCaseFilter.cs index c8b5f5fc7a..d97109d80e 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/UpperCaseFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/UpperCaseFilter.cs @@ -29,7 +29,7 @@ namespace Lucene.Net.Analysis.Core /// /// NOTE: In Unicode, this transformation may lose information when the /// upper case character represents more than one lower case character. Use this filter - /// when you require uppercase tokens. Use the for + /// when you Require uppercase tokens. Use the for /// general search matching /// /// diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilter.cs index 18df853eb9..318a7df313 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilter.cs @@ -109,7 +109,7 @@ public override bool IncrementToken() char[] buffer = termAtt.Buffer(); int length = termAtt.Length; - // If no characters actually require rewriting then we + // If no characters actually Require rewriting then we // just return token as-is: for (int i = 0; i < length; ++i) { diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PerFieldAnalyzerWrapper.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PerFieldAnalyzerWrapper.cs index d43a407ea6..65b43fb884 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PerFieldAnalyzerWrapper.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PerFieldAnalyzerWrapper.cs @@ -24,7 +24,7 @@ namespace Lucene.Net.Analysis.Miscellaneous /// /// This analyzer is used to facilitate scenarios where different - /// fields require different analysis techniques. Use the Map + /// fields Require different analysis techniques. Use the Map /// argument in /// to add non-default analyzers for fields. /// diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/AbstractAnalysisFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/AbstractAnalysisFactory.cs index b62a110a4d..a677380258 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/AbstractAnalysisFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/AbstractAnalysisFactory.cs @@ -32,9 +32,9 @@ namespace Lucene.Net.Analysis.Util /// /// The typical lifecycle for a factory consumer is: ///
    - ///
  1. Create factory via its constructor (or via XXXFactory.forName) - ///
  2. (Optional) If the factory uses resources such as files, is called to initialize those resources. - ///
  3. Consumer calls create() to obtain instances. + ///
  4. Create factory via its constructor (or via XXXFactory.forName)
  5. + ///
  6. (Optional) If the factory uses resources such as files, is called to initialize those resources.
  7. + ///
  8. Consumer calls create() to obtain instances.
  9. ///
///
///
@@ -48,7 +48,7 @@ public abstract class AbstractAnalysisFactory /// /// the luceneVersion arg - protected internal readonly LuceneVersion? luceneMatchVersion; + protected internal readonly Version? luceneMatchVersion; /// /// Initialize this factory via a set of key-value pairs. @@ -57,7 +57,7 @@ protected internal AbstractAnalysisFactory(IDictionary args) { ExplicitLuceneMatchVersion = false; originalArgs = Collections.UnmodifiableMap(args); - string version = get(args, LUCENE_MATCH_VERSION_PARAM); + string version = Get(args, LUCENE_MATCH_VERSION_PARAM); luceneMatchVersion = version == null ? (LuceneVersion?)null : LuceneVersionHelpers.ParseLeniently(version); args.Remove(CLASS_NAME); // consume the class arg } @@ -91,7 +91,7 @@ public LuceneVersion? LuceneMatchVersion } } - public virtual string require(IDictionary args, string name) + public virtual string Require(IDictionary args, string name) { string s; if (!args.TryGetValue(name, out s)) @@ -101,55 +101,58 @@ public virtual string require(IDictionary args, string name) args.Remove(name); return s; } - public virtual string require(IDictionary args, string name, ICollection allowedValues) + public virtual string Require(IDictionary args, string name, ICollection allowedValues) { - return require(args, name, allowedValues, true); + return Require(args, name, allowedValues, true); } - public virtual string require(IDictionary args, string name, ICollection allowedValues, bool caseSensitive) + + public virtual string Require(IDictionary args, string name, ICollection allowedValues, + bool caseSensitive) { - string s = args.Remove(name); - if (s == null) + string s; + if (!args.TryGetValue(name, out s) || s == null) { - throw new System.ArgumentException("Configuration Error: missing parameter '" + name + "'"); + throw new ArgumentException("Configuration Error: missing parameter '" + name + "'"); } - else + + args.Remove(name); + foreach (var allowedValue in allowedValues) { - foreach (string allowedValue in allowedValues) + if (caseSensitive) { - if (caseSensitive) + if (s.Equals(allowedValue)) { - if (s.Equals(allowedValue)) - { - return s; - } + return s; } - else + } + else + { + if (s.Equals(allowedValue, StringComparison.CurrentCultureIgnoreCase)) { - if (s.Equals(allowedValue, StringComparison.CurrentCultureIgnoreCase)) - { - return s; - } + return s; } } - throw new System.ArgumentException("Configuration Error: '" + name + "' value must be one of " + allowedValues); } + throw new ArgumentException("Configuration Error: '" + name + "' value must be one of " + + allowedValues); } - public virtual string get(IDictionary args, string name, string defaultVal = null) + + public virtual string Get(IDictionary args, string name, string defaultVal = null) { string s; if (args.TryGetValue(name, out s)) args.Remove(name); return s ?? defaultVal; } - public virtual string get(IDictionary args, string name, ICollection allowedValues) + public virtual string Get(IDictionary args, string name, ICollection allowedValues) { - return get(args, name, allowedValues, null); // defaultVal = null + return Get(args, name, allowedValues, null); // defaultVal = null } - public virtual string get(IDictionary args, string name, ICollection allowedValues, string defaultVal) + public virtual string Get(IDictionary args, string name, ICollection allowedValues, string defaultVal) { - return get(args, name, allowedValues, defaultVal, true); + return Get(args, name, allowedValues, defaultVal, true); } - public virtual string get(IDictionary args, string name, ICollection allowedValues, string defaultVal, bool caseSensitive) + public virtual string Get(IDictionary args, string name, ICollection allowedValues, string defaultVal, bool caseSensitive) { string s = null; if (args.TryGetValue(name, out s)) @@ -181,41 +184,41 @@ public virtual string get(IDictionary args, string name, ICollec } } - protected internal int requireInt(IDictionary args, string name) + protected internal int RequireInt(IDictionary args, string name) { - return int.Parse(require(args, name)); + return int.Parse(Require(args, name)); } - protected internal int getInt(IDictionary args, string name, int defaultVal) + protected internal int GetInt(IDictionary args, string name, int defaultVal) { string s = args.Remove(name); return s == null ? defaultVal : int.Parse(s); } - protected internal bool requireBoolean(IDictionary args, string name) + protected internal bool RequireBoolean(IDictionary args, string name) { - return bool.Parse(require(args, name)); + return bool.Parse(Require(args, name)); } - protected internal bool getBoolean(IDictionary args, string name, bool defaultVal) + protected internal bool GetBoolean(IDictionary args, string name, bool defaultVal) { string s = args.Remove(name); return s == null ? defaultVal : bool.Parse(s); } - protected internal float requireFloat(IDictionary args, string name) + protected internal float RequireFloat(IDictionary args, string name) { - return float.Parse(require(args, name)); + return float.Parse(Require(args, name)); } - protected internal float getFloat(IDictionary args, string name, float defaultVal) + protected internal float GetFloat(IDictionary args, string name, float defaultVal) { string s = args.Remove(name); return s == null ? defaultVal : float.Parse(s); } - public virtual char requireChar(IDictionary args, string name) + public virtual char RequireChar(IDictionary args, string name) { - return require(args, name)[0]; + return Require(args, name)[0]; } - public virtual char getChar(IDictionary args, string name, char defaultValue) + public virtual char GetChar(IDictionary args, string name, char defaultValue) { string s = args.Remove(name); if (s == null) @@ -239,7 +242,7 @@ public virtual char getChar(IDictionary args, string name, char /// /// Returns whitespace- and/or comma-separated set of values, or null if none are found - public virtual HashSet getSet(IDictionary args, string name) + public virtual HashSet GetSet(IDictionary args, string name) { string s = args.Remove(name); if (s == null) @@ -270,7 +273,7 @@ protected internal Pattern GetPattern(IDictionary args, string n { try { - return Pattern.compile(require(args, name)); + return Pattern.compile(Require(args, name)); } catch (PatternSyntaxException e) { diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs index 78aacd763c..d7fc4ab50b 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs @@ -9,7 +9,7 @@ namespace Lucene.Net.Analysis.Util { - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -27,912 +27,1075 @@ namespace Lucene.Net.Analysis.Util */ - /// - /// A simple class that stores key Strings as char[]'s in a - /// hash table. Note that this is not a general purpose - /// class. For example, it cannot remove items from the - /// map, nor does it resize its hash table to be smaller, - /// etc. It is designed to be quick to retrieve items - /// by char[] keys without the necessity of converting - /// to a String first. - /// - /// - /// You must specify the required - /// compatibility when creating : - ///
    - ///
  • As of 3.1, supplementary characters are - /// properly lowercased.
  • - ///
- /// Before 3.1 supplementary characters could not be - /// lowercased correctly due to the lack of Unicode 4 - /// support in JDK 1.4. To use instances of - /// with the behavior before Lucene - /// 3.1 pass a < 3.1 to the constructors. - ///
- ///
- public class CharArrayMap : IDictionary - { - // private only because missing generics - private static readonly CharArrayMap EMPTY_MAP = new EmptyCharArrayMap(); - - private const int INIT_SIZE = 8; - private readonly CharacterUtils charUtils; - private bool ignoreCase; - private int count; - internal readonly LuceneVersion matchVersion; // package private because used in CharArraySet - internal char[][] keys; // package private because used in CharArraySet's non Set-conform CharArraySetIterator - internal V[] values; // package private because used in CharArraySet's non Set-conform CharArraySetIterator - - /// - /// Create map with enough capacity to hold startSize terms - /// - /// - /// compatibility match version see Version - /// note above for details. - /// - /// the initial capacity - /// - /// false if and only if the set should be case sensitive - /// otherwise true. - public CharArrayMap(LuceneVersion matchVersion, int startSize, bool ignoreCase) - { - this.ignoreCase = ignoreCase; - int size = INIT_SIZE; - while (startSize + (startSize >> 2) > size) - { - size <<= 1; - } - keys = new char[size][]; - values = new V[size]; - this.charUtils = CharacterUtils.GetInstance(matchVersion); - this.matchVersion = matchVersion; - } - - /// - /// Creates a map from the mappings in another map. - /// - /// - /// compatibility match version see Version - /// note above for details. - /// - /// a map whose mappings to be copied - /// - /// false if and only if the set should be case sensitive - /// otherwise true. - public CharArrayMap(LuceneVersion matchVersion, IDictionary c, bool ignoreCase) - : this(matchVersion, c.Count, ignoreCase) - { - foreach (var v in c) - { - Add(v); - } - } - - /// - /// Create set from the supplied map (used internally for readonly maps...) - private CharArrayMap(CharArrayMap toCopy) - { - this.keys = toCopy.keys; - this.values = toCopy.values; - this.ignoreCase = toCopy.ignoreCase; - this.count = toCopy.count; - this.charUtils = toCopy.charUtils; - this.matchVersion = toCopy.matchVersion; - } - - public void Add(KeyValuePair item) - { - Put(item.Key, item.Value); - } - - /// - /// Clears all entries in this map. This method is supported for reusing, but not . - public virtual void Clear() - { - count = 0; - Arrays.Fill(keys, null); - Arrays.Fill(values, default(V)); - } - - public bool Contains(KeyValuePair item) - { - throw new NotImplementedException(); - } - - /// - /// true if the len chars of text starting at off - /// are in the - /// - public virtual bool ContainsKey(char[] text, int off, int len) - { - return keys[GetSlot(text, off, len)] != null; - } - - /// - /// true if the CharSequence is in the - public virtual bool ContainsKey(string cs) - { - return keys[GetSlot(cs)] != null; - } - - public virtual bool ContainsKey(object o) - { - var c = o as char[]; - if (c != null) - { - var text = c; - return ContainsKey(text, 0, text.Length); - } - return ContainsKey(o.ToString()); - } - - public void Add(object key, V value) - { - Put(key, value); - } - - /// - /// returns the value of the mapping of len chars of text - /// starting at off - /// - public virtual V Get(char[] text, int off, int len) - { - return values[GetSlot(text, off, len)]; - } - - /// - /// returns the value of the mapping of the chars inside this {@code CharSequence} - public virtual V Get(string cs) - { - return values[GetSlot(cs)]; - } - - public virtual V Get(object o) - { - var text = o as char[]; - if (text != null) - { - return Get(text, 0, text.Length); - } - return Get(o.ToString()); - } - - private int GetSlot(char[] text, int off, int len) - { - int code = getHashCode(text, off, len); - int pos = code & (keys.Length - 1); - char[] text2 = keys[pos]; - if (text2 != null && !Equals(text, off, len, text2)) - { - int inc = ((code >> 8) + code) | 1; - do - { - code += inc; - pos = code & (keys.Length - 1); - text2 = keys[pos]; - } while (text2 != null && !Equals(text, off, len, text2)); - } - return pos; - } - - /// - /// Returns true if the String is in the set - private int GetSlot(string text) - { - int code = getHashCode(text); - int pos = code & (keys.Length - 1); - char[] text2 = keys[pos]; - if (text2 != null && !Equals(text, text2)) - { - int inc = ((code >> 8) + code) | 1; - do - { - code += inc; - pos = code & (keys.Length - 1); - text2 = keys[pos]; - } while (text2 != null && !Equals(text, text2)); - } - return pos; - } - - /// - /// Add the given mapping. - public virtual V Put(ICharSequence text, V value) - { - return Put(text.ToString(), value); // could be more efficient - } - - public virtual V Put(object o, V value) - { - var c = o as char[]; - if (c != null) - { - return Put(c, value); - } - return Put(o.ToString(), value); - } - - /// - /// Add the given mapping. - public virtual V Put(string text, V value) - { - return Put(text.ToCharArray(), value); - } - - /// - /// Add the given mapping. - /// If ignoreCase is true for this Set, the text array will be directly modified. - /// The user should never modify this text array after calling this method. - /// - public virtual V Put(char[] text, V value) - { - if (ignoreCase) - { - charUtils.ToLower(text, 0, text.Length); - } - int slot = GetSlot(text, 0, text.Length); - if (keys[slot] != null) - { - V oldValue = values[slot]; - values[slot] = value; - return oldValue; - } - keys[slot] = text; - values[slot] = value; - count++; - - if (count + (count >> 2) > keys.Length) - { - Rehash(); - } - - return default(V); - } - - private void Rehash() - { - Debug.Assert(keys.Length == values.Length); - int newSize = 2 * keys.Length; - char[][] oldkeys = keys; - V[] oldvalues = values; - keys = new char[newSize][]; - values = new V[newSize]; - - for (int i = 0; i < oldkeys.Length; i++) - { - char[] text = oldkeys[i]; - if (text != null) - { - // todo: could be faster... no need to compare strings on collision - int slot = GetSlot(text,0,text.Length); - keys[slot] = text; - values[slot] = oldvalues[i]; - } - } - } - - private bool Equals(char[] text1, int off, int len, char[] text2) - { - if (len != text2.Length) - { - return false; - } - int limit = off + len; - if (ignoreCase) - { - for (int i = 0;i < len;) - { - var codePointAt = charUtils.CodePointAt(text1, off + i, limit); - if (char.ToLower((char)codePointAt) != charUtils.CodePointAt(text2, i, text2.Length)) - { - return false; - } - i += Character.CharCount(codePointAt); - } - } - else - { - for (int i = 0;i < len;i++) - { - if (text1[off + i] != text2[i]) - { - return false; - } - } - } - return true; - } - - private bool Equals(ICharSequence text1, char[] text2) - { - int len = text1.Length; - if (len != text2.Length) - { - return false; - } - if (ignoreCase) - { - for (int i = 0;i < len;) - { - int codePointAt = charUtils.CodePointAt(text1, i); - if (char.ToLower((char)codePointAt) != charUtils.CodePointAt(text2, i, text2.Length)) - { - return false; - } - i += Character.CharCount(codePointAt); - } - } - else - { - for (int i = 0;i < len;i++) - { - if (text1.CharAt(i) != text2[i]) - { - return false; - } - } - } - return true; - } - - private int getHashCode(char[] text, int offset, int len) - { - if (text == null) - { - throw new ArgumentException("text can't be null", "text"); - } - int code = 0; - int stop = offset + len; - if (ignoreCase) - { - for (int i = offset; i < stop;) - { - int codePointAt = charUtils.CodePointAt(text, i, stop); - code = code * 31 + char.ToLower((char)codePointAt); - i += Character.CharCount(codePointAt); - } - } - else - { - for (int i = offset; i < stop; i++) - { - code = code * 31 + text[i]; - } - } - return code; - } - - private int getHashCode(string text) - { - if (text == null) - { - throw new ArgumentException("text can't be null", "text"); - } - int code = 0; - int len = text.Length; - if (ignoreCase) - { - for (int i = 0; i < len;) - { - int codePointAt = charUtils.CodePointAt(text, i); - code = code * 31 + char.ToLower((char)codePointAt); - i += Character.CharCount(codePointAt); - } - } - else - { - for (int i = 0; i < len; i++) - { - code = code * 31 + text[i]; - } - } - return code; - } - - public virtual bool Remove(object key) - { - throw new System.NotSupportedException(); - } - - public bool TryGetValue(object key, out V value) - { - throw new NotImplementedException(); - } - - public V this[object key] - { - get { return Get(key); } - set { throw new NotSupportedException(); } - } - - public bool Remove(KeyValuePair item) - { - throw new System.NotSupportedException(); - } - - public int Count - { - get - { - { - return count; - } - } - } - - public bool IsReadOnly { get; private set; } - - public override string ToString() - { - var sb = new StringBuilder("{"); - foreach (KeyValuePair entry in GetEntrySet()) - { - if (sb.Length > 1) - { - sb.Append(", "); - } - sb.Append(entry); - } - return sb.Append('}').ToString(); - } - - private EntrySet entrySet_Renamed = null; - private CharArraySet keySet_Renamed = null; - - internal virtual EntrySet CreateEntrySet() - { - return new EntrySet(this, true); - } - - public EntrySet GetEntrySet() - { - if (entrySet_Renamed == null) - { - entrySet_Renamed = CreateEntrySet(); - } - return entrySet_Renamed; - } - - // helper for CharArraySet to not produce endless recursion - internal HashSet originalKeySet() - { - return base.Keys; - } - - /// - /// Returns an view on the map's keys. - /// The set will use the same {@code matchVersion} as this map. - /// - public CharArraySet KeySet() - { - if (keySet_Renamed == null) - { - // prevent adding of entries - keySet_Renamed = new CharArraySetAnonymousInnerClassHelper(this); - } - return keySet_Renamed; - } - - private sealed class CharArraySetAnonymousInnerClassHelper : CharArraySet - { - internal CharArraySetAnonymousInnerClassHelper(CharArrayMap map) : base(map) - { - // TODO - } - - public override bool Add(object o) - { - throw new System.NotSupportedException(); - } - public bool Add(ICharSequence text) - { - throw new System.NotSupportedException(); - } - public override bool Add(string text) - { - throw new System.NotSupportedException(); - } - public override bool Add(char[] text) - { - throw new System.NotSupportedException(); - } - } - - /// - /// public iterator class so efficient methods are exposed to users - /// - public class EntryIterator : IEnumerator> - { - private readonly CharArrayMap outerInstance; - - internal int pos = -1; - internal int lastPos; - internal readonly bool allowModify; - - internal EntryIterator(CharArrayMap outerInstance, bool allowModify) - { - this.outerInstance = outerInstance; - this.allowModify = allowModify; - GoNext(); - } - - internal void GoNext() - { - lastPos = pos; - pos++; - while (pos < outerInstance.keys.Length && outerInstance.keys[pos] == null) - { - pos++; - } - } - - public bool HasNext() - { - return pos < outerInstance.keys.Length; - } - - /// - /// gets the next key... do not modify the returned char[] - public virtual char[] NextKey() - { - GoNext(); - return outerInstance.keys[lastPos]; - } - - /// - /// gets the next key as a newly created String object - public virtual string NextKeyString() - { - return new string(NextKey()); - } - - /// - /// returns the value associated with the last key returned - public virtual V CurrentValue() - { - return outerInstance.values[lastPos]; - } - - /// - /// sets the value associated with the last key returned - public virtual V SetValue(V value) - { - if (!allowModify) - { - throw new System.NotSupportedException(); - } - V old = outerInstance.values[lastPos]; - outerInstance.values[lastPos] = value; - return old; - } - - /// - /// use nextCharArray() + currentValue() for better efficiency. - /// - public KeyValuePair Next() - { - GoNext(); - //return new KeyValuePair(); - return new MapEntry(outerInstance, lastPos, allowModify); - } - - public void Remove() - { - throw new System.NotSupportedException(); - } - - #region Added for better .NET support - public void Dispose() - { - } - - public bool MoveNext() - { - if (!HasNext()) return false; - GoNext(); - return true; - } - - public void Reset() - { - pos = -1; - GoNext(); - } - - public KeyValuePair Current { get { return new KeyValuePair(outerInstance.keys[lastPos], outerInstance.values[lastPos]); } private set { } } - - object IEnumerator.Current - { - get { return CurrentValue(); } - } - #endregion - } - - private sealed class MapEntry : KeyValuePair - { - private readonly CharArrayMap outerInstance; - - internal readonly int pos; - internal readonly bool allowModify; - - internal MapEntry(CharArrayMap outerInstance, int pos, bool allowModify) - { - this.outerInstance = outerInstance; - this.pos = pos; - this.allowModify = allowModify; - } - - public object Key - { - get - { - // we must clone here, as putAll to another CharArrayMap - // with other case sensitivity flag would corrupt the keys - return outerInstance.keys[pos].Clone(); - } - } - - public V Value - { - get - { - return outerInstance.values[pos]; - } - } - - public V setValue(V value) - { - if (!allowModify) - { - throw new System.NotSupportedException(); - } - V old = outerInstance.values[pos]; - outerInstance.values[pos] = value; - return old; - } - - public override string ToString() - { - return (new StringBuilder()) - .Append(outerInstance.keys[pos]) - .Append('=') - .Append((outerInstance.values[pos] == outerInstance) ? "(this Map)" : outerInstance.values[pos]).ToString(); - } - } - - /// - /// public EntrySet class so efficient methods are exposed to users - public sealed class EntrySet : ISet> - { - private readonly CharArrayMap outerInstance; - - internal readonly bool allowModify; - - internal EntrySet(CharArrayMap outerInstance, bool allowModify) - { - this.outerInstance = outerInstance; - this.allowModify = allowModify; - } - - public IEnumerator GetEnumerator() - { - return new EntryIterator(outerInstance, allowModify); - } - - public override bool Contains(object o) - { - if (!(o is DictionaryEntry)) - { - return false; - } - var e = (KeyValuePair)o; - object key = e.Key; - object val = e.Value; - object v = outerInstance.Get(key); - return v == null ? val == null : v.Equals(val); - } - - public bool Remove(KeyValuePair item) - { - throw new System.NotSupportedException(); - } - - public int Count { get { return outerInstance.count; } private set { throw new NotSupportedException(); } } - - public void Clear() - { - if (!allowModify) - { - throw new System.NotSupportedException(); - } - outerInstance.Clear(); - } - } - - /// - /// Returns an unmodifiable . This allows to provide - /// unmodifiable views of internal map for "read-only" use. - /// - /// - /// a map for which the unmodifiable map is returned. - /// an new unmodifiable . - /// - /// if the given map is null. - public static CharArrayMap UnmodifiableMap(CharArrayMap map) - { - if (map == null) - { - throw new System.NullReferenceException("Given map is null"); - } - if (map == EmptyMap() || map.Empty) - { - return EmptyMap(); - } - if (map is UnmodifiableCharArrayMap) - { - return map; - } - return new UnmodifiableCharArrayMap(map); - } - - /// - /// Returns a copy of the given map as a . If the given map - /// is a the ignoreCase property will be preserved. - /// - /// Note: If you intend to create a copy of another where - /// the of the source map differs from its copy - /// should be used instead. - /// The will preserve the of the - /// source map it is an instance of . - /// - /// - /// - /// compatibility match version see Version - /// note above for details. This argument will be ignored if the - /// given map is a . - /// - /// a map to copy - /// a copy of the given map as a . If the given map - /// is a the ignoreCase property as well as the - /// matchVersion will be of the given map will be preserved. - public static CharArrayMap copy(LuceneVersion matchVersion, IDictionary map) - { - if (map == EMPTY_MAP) - { - return EmptyMap(); - } - if (map is CharArrayMap) - { - var m = (CharArrayMap) map; - // use fast path instead of iterating all values - // this is even on very small sets ~10 times faster than iterating - var keys = new char[m.keys.Length][]; - Array.Copy(m.keys, 0, keys, 0, keys.Length); - var values = new V[m.values.Length]; - Array.Copy(m.values, 0, values, 0, values.Length); - m = new CharArrayMap(m) {keys = keys, values = values}; - return m; - } - return new CharArrayMap(matchVersion, map, false); - } - - /// - /// Returns an empty, unmodifiable map. - public static CharArrayMap EmptyMap() - { - return EMPTY_MAP; - } - - // package private CharArraySet instanceof check in CharArraySet - class UnmodifiableCharArrayMap : CharArrayMap - { - - public UnmodifiableCharArrayMap(CharArrayMap map) : base(map) - { - - } - - public override void Clear() - { - throw new System.NotSupportedException(); - } - - public override V Put(object o, V val) - { - throw new System.NotSupportedException(); - } - - public override V Put(char[] text, V val) - { - throw new System.NotSupportedException(); - } - - public override V Put(ICharSequence text, V val) - { - throw new System.NotSupportedException(); - } - - public override V Put(string text, V val) - { - throw new System.NotSupportedException(); - } - - public override bool Remove(object key) - { - throw new System.NotSupportedException(); - } - - override EntrySet CreateEntrySet() - { - return new EntrySet(this, false); - } - } - - /// - /// Empty optimized for speed. - /// Contains checks will always return false or throw - /// NPE if necessary. - /// - private class EmptyCharArrayMap : UnmodifiableCharArrayMap - { - public EmptyCharArrayMap():base(new CharArrayMap(LuceneVersion.LUCENE_CURRENT, 0, false)) - { - - } - - public override bool ContainsKey(char[] text, int off, int len) - { - if (text == null) - { - throw new System.NullReferenceException(); - } - return false; - } - - public bool ContainsKey(ICharSequence cs) - { - if (cs == null) - { - throw new System.NullReferenceException(); - } - return false; - } - - public override bool ContainsKey(object o) - { - if (o == null) - { - throw new System.NullReferenceException(); - } - return false; - } - - public override V Get(char[] text, int off, int len) - { - if (text == null) - { - throw new System.NullReferenceException(); - } - return default(V); - } - - public V Get(ICharSequence cs) - { - if (cs == null) - { - throw new System.NullReferenceException(); - } - return default(V); - } - - public override V Get(object o) - { - if (o == null) - { - throw new System.NullReferenceException(); - } - return default(V); - } - } - } + /// + /// A simple class that stores key Strings as char[]'s in a + /// hash table. Note that this is not a general purpose + /// class. For example, it cannot remove items from the + /// map, nor does it resize its hash table to be smaller, + /// etc. It is designed to be quick to retrieve items + /// by char[] keys without the necessity of converting + /// to a String first. + /// + /// + /// You must specify the required + /// compatibility when creating : + ///
    + ///
  • As of 3.1, supplementary characters are + /// properly lowercased.
  • + ///
+ /// Before 3.1 supplementary characters could not be + /// lowercased correctly due to the lack of Unicode 4 + /// support in JDK 1.4. To use instances of + /// with the behavior before Lucene + /// 3.1 pass a < 3.1 to the constructors. + ///
+ ///
+ public class CharArrayMap : IDictionary + { + // private only because missing generics + private static readonly CharArrayMap EMPTY_MAP = new EmptyCharArrayMap(); + + private const int INIT_SIZE = 8; + private readonly CharacterUtils charUtils; + private readonly bool ignoreCase; + private int count; + internal readonly LuceneVersion matchVersion; // package private because used in CharArraySet + internal char[][] keys; // package private because used in CharArraySet's non Set-conform CharArraySetIterator + internal V[] values; // package private because used in CharArraySet's non Set-conform CharArraySetIterator + + /// + /// Create map with enough capacity to hold startSize terms + /// + /// + /// compatibility match version see Version + /// note above for details. + /// + /// the initial capacity + /// + /// false if and only if the set should be case sensitive + /// otherwise true. + public CharArrayMap(LuceneVersion matchVersion, int startSize, bool ignoreCase) + { + this.ignoreCase = ignoreCase; + var size = INIT_SIZE; + while (startSize + (startSize >> 2) > size) + { + size <<= 1; + } + keys = new char[size][]; + values = new V[size]; + this.charUtils = CharacterUtils.GetInstance(matchVersion); + this.matchVersion = matchVersion; + } + + /// + /// Creates a map from the mappings in another map. + /// + /// + /// compatibility match version see Version + /// note above for details. + /// + /// a map whose mappings to be copied + /// + /// false if and only if the set should be case sensitive + /// otherwise true. + public CharArrayMap(LuceneVersion matchVersion, IDictionary c, bool ignoreCase) + : this(matchVersion, c.Count, ignoreCase) + { + foreach (var v in c) + { + Add(v); + } + } + + /// + /// Lucene.NET specific, in order to support the KeySet functionality without doing much copying. + /// + /// + private CharArrayMap(char[][] keys, int count) + { + this.keys = keys; + this.count = count; + } + + /// + /// Create set from the supplied map (used internally for readonly maps...) + private CharArrayMap(CharArrayMap toCopy) + { + this.keys = toCopy.keys; + this.values = toCopy.values; + this.ignoreCase = toCopy.ignoreCase; + this.count = toCopy.count; + this.charUtils = toCopy.charUtils; + this.matchVersion = toCopy.matchVersion; + } + + public void Add(KeyValuePair item) + { + Put(item.Key, item.Value); + } + + /// + /// Clears all entries in this map. This method is supported for reusing, but not . + public virtual void Clear() + { + count = 0; + Arrays.Fill(keys, null); + Arrays.Fill(values, default(V)); + } + + public bool Contains(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + /// + /// true if the len chars of text starting at off + /// are in the + /// + public virtual bool ContainsKey(char[] text, int off, int len) + { + return keys[GetSlot(text, off, len)] != null; + } + + /// + /// true if the CharSequence is in the + public virtual bool ContainsKey(string cs) + { + return keys[GetSlot(cs)] != null; + } + + public virtual bool ContainsKey(object o) + { + var c = o as char[]; + if (c != null) + { + var text = c; + return ContainsKey(text, 0, text.Length); + } + return ContainsKey(o.ToString()); + } + + public void Add(object key, V value) + { + Put(key, value); + } + + /// + /// returns the value of the mapping of len chars of text + /// starting at off + /// + public virtual V Get(char[] text, int off, int len) + { + return values[GetSlot(text, off, len)]; + } + + /// + /// returns the value of the mapping of the chars inside this {@code CharSequence} + public virtual V Get(string cs) + { + return values[GetSlot(cs)]; + } + + public virtual V Get(object o) + { + var text = o as char[]; + if (text != null) + { + return Get(text, 0, text.Length); + } + return Get(o.ToString()); + } + + private int GetSlot(char[] text, int off, int len) + { + int code = GetHashCode(text, off, len); + int pos = code & (keys.Length - 1); + char[] text2 = keys[pos]; + if (text2 != null && !Equals(text, off, len, text2)) + { + int inc = ((code >> 8) + code) | 1; + do + { + code += inc; + pos = code & (keys.Length - 1); + text2 = keys[pos]; + } while (text2 != null && !Equals(text, off, len, text2)); + } + return pos; + } + + /// + /// Returns true if the String is in the set + private int GetSlot(string text) + { + int code = GetHashCode(text); + int pos = code & (keys.Length - 1); + char[] text2 = keys[pos]; + if (text2 != null && !Equals(text, text2)) + { + int inc = ((code >> 8) + code) | 1; + do + { + code += inc; + pos = code & (keys.Length - 1); + text2 = keys[pos]; + } while (text2 != null && !Equals(text, text2)); + } + return pos; + } + + /// + /// Add the given mapping. + public virtual V Put(ICharSequence text, V value) + { + return Put(text.ToString(), value); // could be more efficient + } + + public virtual V Put(object o, V value) + { + var c = o as char[]; + if (c != null) + { + return Put(c, value); + } + return Put(o.ToString(), value); + } + + /// + /// Add the given mapping. + public virtual V Put(string text, V value) + { + return Put(text.ToCharArray(), value); + } + + /// + /// Add the given mapping. + /// If ignoreCase is true for this Set, the text array will be directly modified. + /// The user should never modify this text array after calling this method. + /// + public virtual V Put(char[] text, V value) + { + if (ignoreCase) + { + charUtils.ToLower(text, 0, text.Length); + } + int slot = GetSlot(text, 0, text.Length); + if (keys[slot] != null) + { + V oldValue = values[slot]; + values[slot] = value; + return oldValue; + } + keys[slot] = text; + values[slot] = value; + count++; + + if (count + (count >> 2) > keys.Length) + { + Rehash(); + } + + return default(V); + } + + private void Rehash() + { + Debug.Assert(keys.Length == values.Length); + int newSize = 2 * keys.Length; + char[][] oldkeys = keys; + V[] oldvalues = values; + keys = new char[newSize][]; + values = new V[newSize]; + + for (int i = 0; i < oldkeys.Length; i++) + { + char[] text = oldkeys[i]; + if (text != null) + { + // todo: could be faster... no need to compare strings on collision + int slot = GetSlot(text, 0, text.Length); + keys[slot] = text; + values[slot] = oldvalues[i]; + } + } + } + + private bool Equals(char[] text1, int off, int len, char[] text2) + { + if (len != text2.Length) + { + return false; + } + int limit = off + len; + if (ignoreCase) + { + for (int i = 0; i < len;) + { + var codePointAt = charUtils.CodePointAt(text1, off + i, limit); + if (char.ToLower((char)codePointAt) != charUtils.CodePointAt(text2, i, text2.Length)) + { + return false; + } + i += Character.CharCount(codePointAt); + } + } + else + { + for (int i = 0; i < len; i++) + { + if (text1[off + i] != text2[i]) + { + return false; + } + } + } + return true; + } + + private bool Equals(ICharSequence text1, char[] text2) + { + int len = text1.Length; + if (len != text2.Length) + { + return false; + } + if (ignoreCase) + { + for (int i = 0; i < len;) + { + int codePointAt = charUtils.CodePointAt(text1, i); + if (char.ToLower((char)codePointAt) != charUtils.CodePointAt(text2, i, text2.Length)) + { + return false; + } + i += Character.CharCount(codePointAt); + } + } + else + { + for (int i = 0; i < len; i++) + { + if (text1.CharAt(i) != text2[i]) + { + return false; + } + } + } + return true; + } + + private int GetHashCode(char[] text, int offset, int len) + { + if (text == null) + { + throw new ArgumentException("text can't be null", "text"); + } + int code = 0; + int stop = offset + len; + if (ignoreCase) + { + for (int i = offset; i < stop;) + { + int codePointAt = charUtils.CodePointAt(text, i, stop); + code = code * 31 + char.ToLower((char)codePointAt); + i += Character.CharCount(codePointAt); + } + } + else + { + for (int i = offset; i < stop; i++) + { + code = code * 31 + text[i]; + } + } + return code; + } + + private int GetHashCode(string text) + { + if (text == null) + { + throw new ArgumentException("text can't be null", "text"); + } + int code = 0; + int len = text.Length; + if (ignoreCase) + { + for (int i = 0; i < len;) + { + int codePointAt = charUtils.CodePointAt(text, i); + code = code * 31 + char.ToLower((char)codePointAt); + i += Character.CharCount(codePointAt); + } + } + else + { + for (int i = 0; i < len; i++) + { + code = code * 31 + text[i]; + } + } + return code; + } + + public virtual bool Remove(object key) + { + throw new NotSupportedException(); + } + + public bool TryGetValue(object key, out V value) + { + throw new NotImplementedException(); + } + + public V this[object key] + { + get { return Get(key); } + set { throw new NotSupportedException(); } + } + + public ICollection Keys { get { return KeySet(); } } + + public ICollection Values { get { return values; } } + + public bool Remove(KeyValuePair item) + { + throw new NotSupportedException(); + } + + public int Count + { + get + { + { + return count; + } + } + } + + public bool IsReadOnly { get; private set; } + + public IEnumerator> GetEnumerator() + { + throw new NotImplementedException(); + } + + public override string ToString() + { + var sb = new StringBuilder("{"); + foreach (KeyValuePair entry in GetEntrySet()) + { + if (sb.Length > 1) + { + sb.Append(", "); + } + sb.Append(entry); + } + return sb.Append('}').ToString(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + private EntrySet entrySet = null; + private CharArraySet keySet = null; + + protected virtual EntrySet CreateEntrySet() + { + return new EntrySet(this, true); + } + + public EntrySet GetEntrySet() + { + if (entrySet == null) + { + entrySet = CreateEntrySet(); + } + return entrySet; + } + + // helper for CharArraySet to not produce endless recursion + // TODO LUCENENET + private ISet originalKeySet; + internal ISet OriginalKeySet() + { + return originalKeySet ?? (originalKeySet = new LightWrapperSet(this)); + } + + private class LightWrapperSet : ISet + { + private readonly CharArrayMap map; + + public LightWrapperSet(CharArrayMap map) + { + this.map = map; + } + + public IEnumerator GetEnumerator() + { + return map.Keys.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + public void Add(object item) + { + throw new NotImplementedException(); + } + + public void UnionWith(IEnumerable other) + { + throw new NotImplementedException(); + } + + public void IntersectWith(IEnumerable other) + { + throw new NotImplementedException(); + } + + public void ExceptWith(IEnumerable other) + { + throw new NotImplementedException(); + } + + public void SymmetricExceptWith(IEnumerable other) + { + throw new NotImplementedException(); + } + + public bool IsSubsetOf(IEnumerable other) + { + throw new NotImplementedException(); + } + + public bool IsSupersetOf(IEnumerable other) + { + throw new NotImplementedException(); + } + + public bool IsProperSupersetOf(IEnumerable other) + { + throw new NotImplementedException(); + } + + public bool IsProperSubsetOf(IEnumerable other) + { + throw new NotImplementedException(); + } + + public bool Overlaps(IEnumerable other) + { + throw new NotImplementedException(); + } + + public bool SetEquals(IEnumerable other) + { + throw new NotImplementedException(); + } + + bool ISet.Add(object item) + { + throw new NotImplementedException(); + } + + public void Clear() + { + map.Clear(); + } + + public bool Contains(object item) + { + throw new NotImplementedException(); + } + + public void CopyTo(object[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + public bool Remove(object item) + { + throw new NotImplementedException(); + } + + public int Count { get { return map.Count; } } + public bool IsReadOnly { get { return map.IsReadOnly; } } + } + + /// + /// Returns an view on the map's keys. + /// The set will use the same {@code matchVersion} as this map. + /// + private CharArraySet KeySet() + { + if (keySet == null) + { + // prevent adding of entries + keySet = new UnmodifiableCharArraySet(new CharArrayMap(this.keys, this.count)); + } + return keySet; + } + + private sealed class UnmodifiableCharArraySet : CharArraySet + { + internal UnmodifiableCharArraySet(CharArrayMap map) : base(map) + { + } + + public override bool Add(object o) + { + throw new NotSupportedException(); + } + public bool Add(ICharSequence text) + { + throw new NotSupportedException(); + } + public override bool Add(string text) + { + throw new NotSupportedException(); + } + public override bool Add(char[] text) + { + throw new NotSupportedException(); + } + } + + /// + /// public iterator class so efficient methods are exposed to users + /// + public class EntryIterator : IEnumerator> + { + private readonly CharArrayMap outerInstance; + + internal int pos = -1; + internal int lastPos; + internal readonly bool allowModify; + + internal EntryIterator(CharArrayMap outerInstance, bool allowModify) + { + this.outerInstance = outerInstance; + this.allowModify = allowModify; + GoNext(); + } + + internal void GoNext() + { + lastPos = pos; + pos++; + while (pos < outerInstance.keys.Length && outerInstance.keys[pos] == null) + { + pos++; + } + } + + public bool HasNext() + { + return pos < outerInstance.keys.Length; + } + + /// + /// gets the next key... do not modify the returned char[] + public virtual char[] NextKey() + { + GoNext(); + return outerInstance.keys[lastPos]; + } + + /// + /// gets the next key as a newly created String object + public virtual string NextKeyString() + { + return new string(NextKey()); + } + + /// + /// returns the value associated with the last key returned + public virtual V CurrentValue() + { + return outerInstance.values[lastPos]; + } + + /// + /// sets the value associated with the last key returned + public virtual V SetValue(V value) + { + if (!allowModify) + { + throw new System.NotSupportedException(); + } + V old = outerInstance.values[lastPos]; + outerInstance.values[lastPos] = value; + return old; + } + + /// + /// use nextCharArray() + currentValue() for better efficiency. + /// + //public KeyValuePair Next() + //{ + // GoNext(); + // //return new KeyValuePair(); + // return new MapEntry(outerInstance, lastPos, allowModify); + //} + + public void Remove() + { + throw new NotSupportedException(); + } + + #region Added for better .NET support + public void Dispose() + { + } + + public bool MoveNext() + { + if (!HasNext()) return false; + GoNext(); + return true; + } + + public void Reset() + { + pos = -1; + GoNext(); + } + + public KeyValuePair Current { get { return new KeyValuePair(outerInstance.keys[lastPos], outerInstance.values[lastPos]); } private set { } } + + object IEnumerator.Current + { + get { return CurrentValue(); } + } + #endregion + } + + /// + /// public EntrySet class so efficient methods are exposed to users + /// + public sealed class EntrySet : ISet> + { + private readonly CharArrayMap outerInstance; + + internal readonly bool allowModify; + + internal EntrySet(CharArrayMap outerInstance, bool allowModify) + { + this.outerInstance = outerInstance; + this.allowModify = allowModify; + } + + public IEnumerator GetEnumerator() + { + return new EntryIterator(outerInstance, allowModify); + } + + public bool Contains(object o) + { + if (!(o is DictionaryEntry)) + { + return false; + } + var e = (KeyValuePair)o; + object key = e.Key; + object val = e.Value; + object v = outerInstance.Get(key); + return v == null ? val == null : v.Equals(val); + } + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + public bool Remove(KeyValuePair item) + { + throw new NotSupportedException(); + } + + public int Count { get { return outerInstance.count; } private set { throw new NotSupportedException(); } } + public bool IsReadOnly { get; } + + #region Not implemented members + + IEnumerator> IEnumerable>.GetEnumerator() + { + throw new NotImplementedException(); + } + + public void Add(KeyValuePair item) + { + throw new NotImplementedException(); + } + + public void UnionWith(IEnumerable> other) + { + throw new NotImplementedException(); + } + + public void IntersectWith(IEnumerable> other) + { + throw new NotImplementedException(); + } + + public void ExceptWith(IEnumerable> other) + { + throw new NotImplementedException(); + } + + public void SymmetricExceptWith(IEnumerable> other) + { + throw new NotImplementedException(); + } + + public bool IsSubsetOf(IEnumerable> other) + { + throw new NotImplementedException(); + } + + public bool IsSupersetOf(IEnumerable> other) + { + throw new NotImplementedException(); + } + + public bool IsProperSupersetOf(IEnumerable> other) + { + throw new NotImplementedException(); + } + + public bool IsProperSubsetOf(IEnumerable> other) + { + throw new NotImplementedException(); + } + + public bool Overlaps(IEnumerable> other) + { + throw new NotImplementedException(); + } + + public bool SetEquals(IEnumerable> other) + { + throw new NotImplementedException(); + } + + bool ISet>.Add(KeyValuePair item) + { + throw new NotImplementedException(); + } + #endregion + + public void Clear() + { + if (!allowModify) + { + throw new NotSupportedException(); + } + outerInstance.Clear(); + } + + public bool Contains(KeyValuePair item) + { + throw new NotImplementedException(); + } + } + + /// + /// Returns an unmodifiable . This allows to provide + /// unmodifiable views of internal map for "read-only" use. + /// + /// + /// a map for which the unmodifiable map is returned. + /// an new unmodifiable . + /// + /// if the given map is null. + public static CharArrayMap UnmodifiableMap(CharArrayMap map) + { + if (map == null) + { + throw new ArgumentException("Given map is null", nameof(map)); + } + if (map == EmptyMap() || map.Count == 0) + { + return EmptyMap(); + } + if (map is UnmodifiableCharArrayMap) + { + return map; + } + return new UnmodifiableCharArrayMap(map); + } + + /// + /// Returns a copy of the given map as a . If the given map + /// is a the ignoreCase property will be preserved. + /// + /// Note: If you intend to create a copy of another where + /// the of the source map differs from its copy + /// should be used instead. + /// The will preserve the of the + /// source map it is an instance of . + /// + /// + /// + /// compatibility match version see Version + /// note above for details. This argument will be ignored if the + /// given map is a . + /// + /// a map to copy + /// a copy of the given map as a . If the given map + /// is a the ignoreCase property as well as the + /// matchVersion will be of the given map will be preserved. + public static CharArrayMap Copy(LuceneVersion matchVersion, IDictionary map) + { + if (map == EMPTY_MAP) + { + return EmptyMap(); + } + + var vs = map as CharArrayMap; + if (vs != null) + { + var m = vs; + // use fast path instead of iterating all values + // this is even on very small sets ~10 times faster than iterating + var keys = new char[m.keys.Length][]; + Array.Copy(m.keys, 0, keys, 0, keys.Length); + var values = new V[m.values.Length]; + Array.Copy(m.values, 0, values, 0, values.Length); + m = new CharArrayMap(m) { keys = keys, values = values }; + return m; + } + return new CharArrayMap(matchVersion, map, false); + } + + /// + /// Returns an empty, unmodifiable map. + public static CharArrayMap EmptyMap() + { + return EMPTY_MAP; + } + + // package private CharArraySet instanceof check in CharArraySet + internal class UnmodifiableCharArrayMap : CharArrayMap + { + + public UnmodifiableCharArrayMap(CharArrayMap map) : base(map) + { + + } + + public override void Clear() + { + throw new System.NotSupportedException(); + } + + public override V Put(object o, V val) + { + throw new System.NotSupportedException(); + } + + public override V Put(char[] text, V val) + { + throw new System.NotSupportedException(); + } + + public override V Put(ICharSequence text, V val) + { + throw new System.NotSupportedException(); + } + + public override V Put(string text, V val) + { + throw new System.NotSupportedException(); + } + + public override bool Remove(object key) + { + throw new System.NotSupportedException(); + } + + protected override EntrySet CreateEntrySet() + { + return new EntrySet(this, false); + } + } + + /// + /// Empty optimized for speed. + /// Contains checks will always return false or throw + /// NPE if necessary. + /// + private class EmptyCharArrayMap : UnmodifiableCharArrayMap + { + public EmptyCharArrayMap() : base(new CharArrayMap(LuceneVersion.LUCENE_CURRENT, 0, false)) + { + + } + + public override bool ContainsKey(char[] text, int off, int len) + { + if (text == null) + { + throw new NullReferenceException(); + } + return false; + } + + public bool ContainsKey(ICharSequence cs) + { + if (cs == null) + { + throw new NullReferenceException(); + } + return false; + } + + public override bool ContainsKey(object o) + { + if (o == null) + { + throw new NullReferenceException(); + } + return false; + } + + public override V Get(char[] text, int off, int len) + { + if (text == null) + { + throw new NullReferenceException(); + } + return default(V); + } + + public V Get(ICharSequence cs) + { + if (cs == null) + { + throw new NullReferenceException(); + } + return default(V); + } + + public override V Get(object o) + { + if (o == null) + { + throw new NullReferenceException(); + } + return default(V); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs index 23ce187ef3..be855460cb 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs @@ -1,12 +1,14 @@ using System.Collections; using System.Collections.Generic; +using System.Linq; using System.Text; +using Lucene.Net.Support; using Lucene.Net.Util; namespace Lucene.Net.Analysis.Util { - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -23,110 +25,112 @@ namespace Lucene.Net.Analysis.Util * limitations under the License. */ /// - /// A simple class that stores Strings as char[]'s in a - /// hash table. Note that this is not a general purpose - /// class. For example, it cannot remove items from the - /// set, nor does it resize its hash table to be smaller, - /// etc. It is designed to be quick to test if a char[] - /// is in the set without the necessity of converting it - /// to a String first. - /// - /// - /// You must specify the required - /// compatibility when creating : - ///
    - ///
  • As of 3.1, supplementary characters are - /// properly lowercased.
  • - ///
- /// Before 3.1 supplementary characters could not be - /// lowercased correctly due to the lack of Unicode 4 - /// support in JDK 1.4. To use instances of - /// with the behavior before Lucene - /// 3.1 pass a < 3.1 to the constructors. - ///

- /// Please note: This class implements but - /// does not behave like it should in all cases. The generic type is - /// {@code Set}, because you can add any object to it, - /// that has a string representation. The add methods will use - /// and store the result using a {@code char[]} - /// buffer. The same behavior have the {@code contains()} methods. - /// The returns an {@code Iterator}. - /// - /// - public class CharArraySet : ISet - { - public static readonly CharArraySet EMPTY_SET = new CharArraySet(CharArrayMap.emptyMap()); - private static readonly object PLACEHOLDER = new object(); - - private readonly CharArrayMap map; - - /// - /// Create set with enough capacity to hold startSize terms - /// - /// - /// compatibility match version see Version - /// note above for details. - /// - /// the initial capacity - /// - /// false if and only if the set should be case sensitive - /// otherwise true. - public CharArraySet(LuceneVersion matchVersion, int startSize, bool ignoreCase) - : this(new CharArrayMap(matchVersion, startSize, ignoreCase)) - { - } - - /// - /// Creates a set from a Collection of objects. - /// - /// - /// compatibility match version see Version - /// note above for details. - /// - /// a collection whose elements to be placed into the set - /// - /// false if and only if the set should be case sensitive - /// otherwise true. - public CharArraySet(LuceneVersion matchVersion, ICollection c, bool ignoreCase) - : this(matchVersion, c.Count, ignoreCase) - { - AddAll(c); - } - - /// - /// Create set from the specified map (internal only), used also by - internal CharArraySet(CharArrayMap map) - { - this.map = map; - } - + /// A simple class that stores Strings as char[]'s in a + /// hash table. Note that this is not a general purpose + /// class. For example, it cannot remove items from the + /// set, nor does it resize its hash table to be smaller, + /// etc. It is designed to be quick to test if a char[] + /// is in the set without the necessity of converting it + /// to a String first. + /// + /// + ///

You must specify the required + /// compatibility when creating : + ///

    + ///
  • As of 3.1, supplementary characters are + /// properly lowercased.
  • + ///
+ /// Before 3.1 supplementary characters could not be + /// lowercased correctly due to the lack of Unicode 4 + /// support in JDK 1.4. To use instances of + /// with the behavior before Lucene + /// 3.1 pass a to the constructors. + ///

+ /// Please note: This class implements but + /// does not behave like it should in all cases. The generic type is + /// {@code Set}, because you can add any object to it, + /// that has a string representation. The add methods will use + /// and store the result using a {@code char[]} + /// buffer. The same behavior have the {@code contains()} methods. + /// The returns an {@code Iterator}. + ///

+ /// + public class CharArraySet : ISet + { + public static readonly CharArraySet EMPTY_SET = new CharArraySet(CharArrayMap.EmptyMap()); + private static readonly object PLACEHOLDER = new object(); + + private readonly CharArrayMap map; + + /// + /// Create set with enough capacity to hold startSize terms + /// + /// + /// compatibility match version see Version + /// note above for details. + /// + /// the initial capacity + /// + /// false if and only if the set should be case sensitive + /// otherwise true. + public CharArraySet(LuceneVersion matchVersion, int startSize, bool ignoreCase) + : this(new CharArrayMap(matchVersion, startSize, ignoreCase)) + { + } + + /// + /// Creates a set from a Collection of objects. + /// + /// + /// compatibility match version see Version + /// note above for details. + /// + /// a collection whose elements to be placed into the set + /// + /// false if and only if the set should be case sensitive + /// otherwise true. + public CharArraySet(LuceneVersion matchVersion, IEnumerable c, bool ignoreCase) + : this(matchVersion, c.Count(), ignoreCase) + { + this.AddAll(c); + } + /// - /// Clears all entries in this set. This method is supported for reusing, but not . - public void Clear() - { - map.Clear(); - } - - /// - /// true if the len chars of text starting at off - /// are in the set - /// - public virtual bool Contains(char[] text, int off, int len) - { - return map.ContainsKey(text, off, len); - } - - /// - /// true if the CharSequence is in the set - public virtual bool Contains(string cs) - { - return map.ContainsKey(cs); - } - - public bool Contains(object o) - { - return map.ContainsKey(o); - } + /// Create set from the specified map (internal only), used also by + /// + internal CharArraySet(CharArrayMap map) + { + this.map = map; + } + + /// + /// Clears all entries in this set. This method is supported for reusing, but not . + /// + public void Clear() + { + map.Clear(); + } + + /// + /// true if the len chars of text starting at off + /// are in the set + /// + public virtual bool Contains(char[] text, int off, int len) + { + return map.ContainsKey(text, off, len); + } + + /// + /// true if the CharSequence is in the set + public virtual bool Contains(string cs) + { + return map.ContainsKey(cs); + } + + public bool Contains(object o) + { + return map.ContainsKey(o); + } public void CopyTo(object[] array, int arrayIndex) { @@ -139,26 +143,26 @@ public bool Remove(object item) } public virtual bool Add(object o) - { - return map.Put(o, PLACEHOLDER) == null; - } - - /// - /// Add this String into the set - public virtual bool Add(string text) - { - return map.Put(text, PLACEHOLDER) == null; - } - - /// - /// Add this char[] directly to the set. - /// If ignoreCase is true for this Set, the text array will be directly modified. - /// The user should never modify this text array after calling this method. - /// - public virtual bool Add(char[] text) - { - return map.Put(text, PLACEHOLDER) == null; - } + { + return map.Put(o, PLACEHOLDER) == null; + } + + /// + /// Add this String into the set + public virtual bool Add(string text) + { + return map.Put(text, PLACEHOLDER) == null; + } + + /// + /// Add this char[] directly to the set. + /// If ignoreCase is true for this Set, the text array will be directly modified. + /// The user should never modify this text array after calling this method. + /// + public virtual bool Add(char[] text) + { + return map.Put(text, PLACEHOLDER) == null; + } public int Count { @@ -173,107 +177,109 @@ public int Count public bool IsReadOnly { get; private set; } /// - /// Returns an unmodifiable . This allows to provide - /// unmodifiable views of internal sets for "read-only" use. - /// - /// - /// a set for which the unmodifiable set is returned. - /// an new unmodifiable . - /// - /// if the given set is null. - public static CharArraySet UnmodifiableSet(CharArraySet set) - { - if (set == null) - { - throw new System.NullReferenceException("Given set is null"); - } - if (set == EMPTY_SET) - { - return EMPTY_SET; - } - if (set.map is CharArrayMap.UnmodifiableCharArrayMap) - { - return set; - } - return new CharArraySet(CharArrayMap.unmodifiableMap(set.map)); - } - - /// - /// Returns a copy of the given set as a . If the given set - /// is a the ignoreCase property will be preserved. - /// - /// Note: If you intend to create a copy of another where - /// the of the source set differs from its copy - /// should be used instead. - /// The will preserve the of the - /// source set it is an instance of . - /// - /// - /// - /// compatibility match version see Version - /// note above for details. This argument will be ignored if the - /// given set is a . - /// - /// a set to copy - /// a copy of the given set as a . If the given set - /// is a the ignoreCase property as well as the - /// matchVersion will be of the given set will be preserved. - public static CharArraySet Copy(LuceneVersion matchVersion, HashSet set) - { - if (set == EMPTY_SET) - { - return EMPTY_SET; - } - if (set is CharArraySet) - { - CharArraySet source = (CharArraySet) set; - return new CharArraySet(CharArrayMap.copy(source.map.matchVersion, source.map)); - } - return new CharArraySet(matchVersion, set, false); - } - - /// - /// Returns an for {@code char[]} instances in this set. - /// + /// Returns an unmodifiable . This allows to provide + /// unmodifiable views of internal sets for "read-only" use. + /// + /// + /// a set for which the unmodifiable set is returned. + /// an new unmodifiable . + /// + /// if the given set is null. + public static CharArraySet UnmodifiableSet(CharArraySet set) + { + if (set == null) + { + throw new System.NullReferenceException("Given set is null"); + } + if (set == EMPTY_SET) + { + return EMPTY_SET; + } + if (set.map is CharArrayMap.UnmodifiableCharArrayMap) + { + return set; + } + return new CharArraySet(CharArrayMap.UnmodifiableMap(set.map)); + } + + /// + /// Returns a copy of the given set as a . If the given set + /// is a the ignoreCase property will be preserved. + /// + /// Note: If you intend to create a copy of another where + /// the of the source set differs from its copy + /// should be used instead. + /// The will preserve the of the + /// source set it is an instance of . + /// + /// + /// + /// compatibility match version see Version + /// note above for details. This argument will be ignored if the + /// given set is a . + /// + /// a set to copy + /// a copy of the given set as a . If the given set + /// is a the ignoreCase property as well as the + /// matchVersion will be of the given set will be preserved. + public static CharArraySet Copy(LuceneVersion matchVersion, ISet set) + { + if (set == EMPTY_SET) + { + return EMPTY_SET; + } + + var source = set as CharArraySet; + if (source != null) + { + return new CharArraySet(CharArrayMap.Copy(source.map.matchVersion, source.map)); + } + + return new CharArraySet(matchVersion, set.Cast(), false); + } + + /// + /// Returns an for {@code char[]} instances in this set. + /// public IEnumerator GetEnumerator() { // use the AbstractSet#keySet()'s iterator (to not produce endless recursion) - return map.originalKeySet().GetEnumerator(); + return map.OriginalKeySet().GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { // use the AbstractSet#keySet()'s iterator (to not produce endless recursion) - return map.originalKeySet().GetEnumerator(); + return map.OriginalKeySet().GetEnumerator(); } public override string ToString() - { - var sb = new StringBuilder("["); - foreach (object item in this) - { - if (sb.Length > 1) - { - sb.Append(", "); - } - if (item is char[]) - { - sb.Append((char[]) item); - } - else - { - sb.Append(item); - } - } - return sb.Append(']').ToString(); - } + { + var sb = new StringBuilder("["); + foreach (object item in this) + { + if (sb.Length > 1) + { + sb.Append(", "); + } + if (item is char[]) + { + sb.Append((char[])item); + } + else + { + sb.Append(item); + } + } + return sb.Append(']').ToString(); + } - #region Not used by the Java implementation anyway void ICollection.Add(object item) { - throw new System.NotImplementedException(); + Add(item); } + #region Not used by the Java implementation anyway public void UnionWith(IEnumerable other) { throw new System.NotImplementedException(); @@ -324,5 +330,5 @@ public bool SetEquals(IEnumerable other) throw new System.NotImplementedException(); } #endregion - } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/RollingCharBuffer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/RollingCharBuffer.cs index bac5fb6463..480b3f3956 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/RollingCharBuffer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/RollingCharBuffer.cs @@ -69,7 +69,7 @@ public void Reset(TextReader reader) * ahead. Returns -1 if you hit EOF. */ public int Get(int pos) { - //System.out.println(" get pos=" + pos + " nextPos=" + nextPos + " count=" + count); + //System.out.println(" Get pos=" + pos + " nextPos=" + nextPos + " count=" + count); if (pos == nextPos) { if (end) @@ -138,7 +138,7 @@ public char[] Get(int posStart, int length) { Debug.Assert(length > 0); Debug.Assert(InBounds(posStart), "posStart=" + posStart + " length=" + length); - //System.out.println(" buffer.get posStart=" + posStart + " len=" + length); + //System.out.println(" buffer.Get posStart=" + posStart + " len=" + length); int startIndex = GetIndex(posStart); int endIndex = GetIndex(posStart + length); diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index d8516e2a10..ef12712881 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -63,6 +63,9 @@ + + + diff --git a/src/Lucene.Net.Core/Support/Compatibility/Collections.cs b/src/Lucene.Net.Core/Support/Compatibility/Collections.cs index 279c20c596..8421b39227 100644 --- a/src/Lucene.Net.Core/Support/Compatibility/Collections.cs +++ b/src/Lucene.Net.Core/Support/Compatibility/Collections.cs @@ -37,5 +37,10 @@ public static IDictionary UnmodifiableMap(IDictionary d) builder.AddRange(d); return builder.ToImmutable(); } + + public static IDictionary SingletonMap(T key, S value) + { + return new Dictionary {{key, value}}; + } } } diff --git a/src/Lucene.Net.Core/Support/SetExtensions.cs b/src/Lucene.Net.Core/Support/SetExtensions.cs index 2f585f1a9c..b8f7c3f39c 100644 --- a/src/Lucene.Net.Core/Support/SetExtensions.cs +++ b/src/Lucene.Net.Core/Support/SetExtensions.cs @@ -1,9 +1,11 @@ using System.Collections.Generic; +using System.Diagnostics; namespace Lucene.Net.Support { public static class SetExtensions { + [DebuggerStepThrough] public static void RemoveAll(this ICollection theSet, IEnumerable removeList) { foreach (var elt in removeList) @@ -12,6 +14,7 @@ public static void RemoveAll(this ICollection theSet, IEnumerable remov } } + [DebuggerStepThrough] public static void AddAll(this ICollection set, IEnumerable itemsToAdd) { foreach (var item in itemsToAdd) diff --git a/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTestCase.cs b/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTestCase.cs index 9f8c484dbc..62d45d7c73 100644 --- a/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTestCase.cs +++ b/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTestCase.cs @@ -1,4 +1,5 @@ -using System.Collections; +using System; +using System.Collections; using System.Collections.Generic; using NUnit.Framework; @@ -110,6 +111,16 @@ protected static void assertArrayEquals(IEnumerable a1, IEnumerable a2) CollectionAssert.AreEqual(a1, a2); } + protected static void assertSame(Object expected, Object actual) + { + Assert.AreSame(expected, actual); + } + + protected static void assertSame(string message, Object expected, Object actual) + { + Assert.AreSame(expected, actual, message); + } + protected static void fail() { Assert.Fail(); diff --git a/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTypesHelpers.cs b/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTypesHelpers.cs index 838b432589..a2602fc01e 100644 --- a/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTypesHelpers.cs +++ b/src/Lucene.Net.TestFramework/JavaCompatibility/LuceneTypesHelpers.cs @@ -1,4 +1,4 @@ -using Lucene.Net.Analysis; +using System.Collections.Generic; namespace Lucene.Net { diff --git a/src/Lucene.Net.TestFramework/JavaCompatibility/SystemTypesHelpers.cs b/src/Lucene.Net.TestFramework/JavaCompatibility/SystemTypesHelpers.cs index 9c3fcead85..6fb685bd43 100644 --- a/src/Lucene.Net.TestFramework/JavaCompatibility/SystemTypesHelpers.cs +++ b/src/Lucene.Net.TestFramework/JavaCompatibility/SystemTypesHelpers.cs @@ -1,6 +1,9 @@ using System; using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization.Formatters; using System.Text; +using Lucene.Net.Support; namespace Lucene.Net { @@ -38,7 +41,7 @@ public static sbyte[] getBytes(this string str, string encoding) return (sbyte[])(Array)Encoding.GetEncoding(encoding).GetBytes(str); } - public static long size(this IList list) + public static int size(this ICollection list) { return list.Count; } @@ -48,6 +51,50 @@ public static T[] clone(this T[] e) return (T[]) e.Clone(); } + public static void add(this ISet s, T item) + { + s.Add(item); + } + + public static void addAll(this ISet s, IEnumerable other) + { + s.AddAll(other); + } + + public static bool contains(this ISet s, T item) + { + return s.Contains(item); + } + + public static bool containsAll(this ISet s, IEnumerable list) + { + return list.Any(s.Contains); + } + + public static bool remove(this ISet s, T item) + { + return s.Remove(item); + } + + public static bool removeAll(this ISet s, IEnumerable list) + { + return s.removeAll(list); + } + + public static void clear(this ISet s) + { + s.Clear(); + } + + public static void retainAll(this ISet s, ISet other) + { + foreach (var e in s) + { + if (!other.Contains(e)) + s.Remove(e); + } + } + public static void printStackTrace(this Exception e) { Console.WriteLine(e.StackTrace); diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs index 9202318a90..4b3cc0e7d5 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs @@ -1,5 +1,8 @@ -using System.Collections.Generic; -using System.Text; +using System.Text; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; /* * Licensed to the Apache Software Foundation (ASF) under one or more @@ -18,271 +21,269 @@ * limitations under the License. */ -namespace org.apache.lucene.analysis.util +namespace Lucene.Net.Tests.Analysis.Common.Analysis.Util { + [TestFixture] + public class TestCharArrayMap : LuceneTestCase + { +// public virtual void doRandom(int iter, bool ignoreCase) +// { +// CharArrayMap map = new CharArrayMap(TEST_VERSION_CURRENT, 1, ignoreCase); +// Dictionary hmap = new Dictionary(); +// +// char[] key; +// for (int i = 0; i < iter; i++) +// { +// int len = Random().Next(5); +// key = new char[len]; +// for (int j = 0; j < key.Length; j++) +// { +// key[j] = (char)Random().Next(127); +// } +// string keyStr = new string(key); +// string hmapKey = ignoreCase ? keyStr.ToLower() : keyStr; +// +// int val = Random().Next(); +// +// object o1 = map.Put(key, val); +// object o2 = hmap[hmapKey].Value = val; +// assertEquals(o1, o2); +// +// // add it again with the string method +// assertEquals(val, map.Put(keyStr, val)); +// +// assertEquals(val, map.Get(key, 0, key.Length)); +// assertEquals(val, map.Get(key)); +// assertEquals(val, map.Get(keyStr)); +// +// assertEquals(hmap.Count, map.size()); +// } +// } +// +// [Test] +// public virtual void testCharArrayMap() +// { +// int num = 5 * RANDOM_MULTIPLIER; +// for (int i = 0; i < num; i++) +// { // pump this up for more random testing +// doRandom(1000, false); +// doRandom(1000, true); +// } +// } +// +// [Test] +// public virtual void TestMethods() +// { +// CharArrayMap cm = new CharArrayMap(TEST_VERSION_CURRENT, 2, false); +// Dictionary hm = new Dictionary(); +// hm["foo"] = 1; +// hm["bar"] = 2; +// cm.PutAll(hm); +// assertEquals(hm.Count, cm.Count); +// hm["baz"] = 3; +// cm.PutAll(hm); +// assertEquals(hm.Count, cm.Count); +// +// CharArraySet cs = cm.Keys; +// int n = 0; +// foreach (object o in cs) +// { +// assertTrue(cm.ContainsKey(o)); +// char[] co = (char[])o; +// assertTrue(cm.ContainsKey(co, 0, co.Length)); +// n++; +// } +// assertEquals(hm.Count, n); +// assertEquals(hm.Count, cs.Count); +// assertEquals(cm.Count, cs.Count); +// cs.Clear(); +// assertEquals(0, cs.Count); +// assertEquals(0, cm.Count); +// try +// { +// cs.Add("test"); +// fail("keySet() allows adding new keys"); +// } +// catch (System.NotSupportedException) +// { +// // pass +// } +// cm.PutAll(hm); +// assertEquals(hm.Count, cs.Count); +// assertEquals(cm.Count, cs.Count); +// +// IEnumerator> iter1 = cm.EntrySet().GetEnumerator(); +// n = 0; +// while (iter1.MoveNext()) +// { +// KeyValuePair entry = iter1.Current; +// object key = entry.Key; +// int? val = entry.Value; +// assertEquals(cm.Get(key), val); +// entry.Value = val * 100; +// assertEquals(val * 100, (int)cm.Get(key)); +// n++; +// } +// assertEquals(hm.Count, n); +// cm.Clear(); +// cm.PutAll(hm); +// assertEquals(cm.size(), n); +// +// CharArrayMap.EntryIterator iter2 = cm.EntrySet().GetEnumerator(); +// n = 0; +// while (iter2.hasNext()) +// { +// char[] keyc = iter2.nextKey(); +// int? val = iter2.currentValue(); +// assertEquals(hm[new string(keyc)], val); +// iter2.Value = val * 100; +// assertEquals(val * 100, (int)cm.get(keyc)); +// n++; +// } +// assertEquals(hm.Count, n); +// +// cm.EntrySet().clear(); +// assertEquals(0, cm.size()); +// assertEquals(0, cm.EntrySet().size()); +// assertTrue(cm.Count == 0); +// } - using LuceneTestCase = org.apache.lucene.util.LuceneTestCase; + [Test] + public virtual void TestModifyOnUnmodifiable() + { + CharArrayMap map = new CharArrayMap(TEST_VERSION_CURRENT, 2, false); + map.Put("foo", 1); + map.Put("bar", 2); + int size = map.Count; + assertEquals(2, size); + assertTrue(map.ContainsKey("foo")); + assertEquals(1, map.Get("foo")); + assertTrue(map.ContainsKey("bar")); + assertEquals(2, map.Get("bar")); - public class TestCharArrayMap : LuceneTestCase - { - public virtual void doRandom(int iter, bool ignoreCase) - { - CharArrayMap map = new CharArrayMap(TEST_VERSION_CURRENT, 1, ignoreCase); - Dictionary hmap = new Dictionary(); + map = CharArrayMap.UnmodifiableMap(map); + assertEquals("Map size changed due to unmodifiableMap call", size, map.Count); + string NOT_IN_MAP = "SirGallahad"; + assertFalse("Test String already exists in map", map.ContainsKey(NOT_IN_MAP)); + assertNull("Test String already exists in map", map.Get(NOT_IN_MAP)); - char[] key; - for (int i = 0; i < iter; i++) - { - int len = random().Next(5); - key = new char[len]; - for (int j = 0; j < key.Length; j++) - { - key[j] = (char)random().Next(127); - } - string keyStr = new string(key); - string hmapKey = ignoreCase ? keyStr.ToLower(Locale.ROOT) : keyStr; + try + { + map.Put(NOT_IN_MAP.ToCharArray(), 3); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); + assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); + assertEquals("Size of unmodifiable map has changed", size, map.Count); + } - int val = random().Next(); + try + { + map.Put(NOT_IN_MAP, 3); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); + assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); + assertEquals("Size of unmodifiable map has changed", size, map.Count); + } - object o1 = map.put(key, val); - object o2 = hmap[hmapKey].Value = val; - assertEquals(o1,o2); + try + { + map.Put(new StringBuilder(NOT_IN_MAP), 3); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); + assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); + assertEquals("Size of unmodifiable map has changed", size, map.Count); + } - // add it again with the string method - assertEquals(val, map.put(keyStr,val).intValue()); + try + { + map.Clear(); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertEquals("Size of unmodifiable map has changed", size, map.size()); + } - assertEquals(val, map.get(key,0,key.Length).intValue()); - assertEquals(val, map.get(key).intValue()); - assertEquals(val, map.get(keyStr).intValue()); + try + { + map.EntrySet().Clear(); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertEquals("Size of unmodifiable map has changed", size, map.size()); + } - assertEquals(hmap.Count, map.size()); - } - } + try + { + map.Keys.Clear(); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertEquals("Size of unmodifiable map has changed", size, map.size()); + } - public virtual void testCharArrayMap() - { - int num = 5 * RANDOM_MULTIPLIER; - for (int i = 0; i < num; i++) - { // pump this up for more random testing - doRandom(1000,false); - doRandom(1000,true); - } - } - - public virtual void testMethods() - { - CharArrayMap cm = new CharArrayMap(TEST_VERSION_CURRENT, 2, false); - Dictionary hm = new Dictionary(); - hm["foo"] = 1; - hm["bar"] = 2; - cm.putAll(hm); - assertEquals(hm.Count, cm.size()); - hm["baz"] = 3; - cm.putAll(hm); - assertEquals(hm.Count, cm.size()); - - CharArraySet cs = cm.Keys; - int n = 0; - foreach (object o in cs) - { - assertTrue(cm.containsKey(o)); - char[] co = (char[]) o; - assertTrue(cm.containsKey(co, 0, co.Length)); - n++; - } - assertEquals(hm.Count, n); - assertEquals(hm.Count, cs.size()); - assertEquals(cm.size(), cs.size()); - cs.clear(); - assertEquals(0, cs.size()); - assertEquals(0, cm.size()); - try - { - cs.add("test"); - fail("keySet() allows adding new keys"); - } - catch (System.NotSupportedException) - { - // pass - } - cm.putAll(hm); - assertEquals(hm.Count, cs.size()); - assertEquals(cm.size(), cs.size()); - - IEnumerator> iter1 = cm.entrySet().GetEnumerator(); - n = 0; - while (iter1.MoveNext()) - { - KeyValuePair entry = iter1.Current; - object key = entry.Key; - int? val = entry.Value; - assertEquals(cm.get(key), val); - entry.Value = val * 100; - assertEquals(val * 100, (int)cm.get(key)); - n++; - } - assertEquals(hm.Count, n); - cm.clear(); - cm.putAll(hm); - assertEquals(cm.size(), n); - - CharArrayMap.EntryIterator iter2 = cm.entrySet().GetEnumerator(); - n = 0; - while (iter2.hasNext()) - { - char[] keyc = iter2.nextKey(); - int? val = iter2.currentValue(); - assertEquals(hm[new string(keyc)], val); - iter2.Value = val * 100; - assertEquals(val * 100, (int)cm.get(keyc)); - n++; - } - assertEquals(hm.Count, n); - - cm.entrySet().clear(); - assertEquals(0, cm.size()); - assertEquals(0, cm.entrySet().size()); - assertTrue(cm.Empty); - } - - public virtual void testModifyOnUnmodifiable() - { - CharArrayMap map = new CharArrayMap(TEST_VERSION_CURRENT, 2, false); - map.put("foo",1); - map.put("bar",2); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int size = map.size(); - int size = map.size(); - assertEquals(2, size); - assertTrue(map.containsKey("foo")); - assertEquals(1, map.get("foo").intValue()); - assertTrue(map.containsKey("bar")); - assertEquals(2, map.get("bar").intValue()); - - map = CharArrayMap.unmodifiableMap(map); - assertEquals("Map size changed due to unmodifiableMap call", size, map.size()); - string NOT_IN_MAP = "SirGallahad"; - assertFalse("Test String already exists in map", map.containsKey(NOT_IN_MAP)); - assertNull("Test String already exists in map", map.get(NOT_IN_MAP)); - - try - { - map.put(NOT_IN_MAP.ToCharArray(), 3); - fail("Modified unmodifiable map"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable map", map.containsKey(NOT_IN_MAP)); - assertNull("Test String has been added to unmodifiable map", map.get(NOT_IN_MAP)); - assertEquals("Size of unmodifiable map has changed", size, map.size()); - } - - try - { - map.put(NOT_IN_MAP, 3); - fail("Modified unmodifiable map"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable map", map.containsKey(NOT_IN_MAP)); - assertNull("Test String has been added to unmodifiable map", map.get(NOT_IN_MAP)); - assertEquals("Size of unmodifiable map has changed", size, map.size()); - } - - try - { - map.put(new StringBuilder(NOT_IN_MAP), 3); - fail("Modified unmodifiable map"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable map", map.containsKey(NOT_IN_MAP)); - assertNull("Test String has been added to unmodifiable map", map.get(NOT_IN_MAP)); - assertEquals("Size of unmodifiable map has changed", size, map.size()); - } - - try - { - map.clear(); - fail("Modified unmodifiable map"); - } - catch (System.NotSupportedException) - { - // expected - assertEquals("Size of unmodifiable map has changed", size, map.size()); - } - - try - { - map.entrySet().clear(); - fail("Modified unmodifiable map"); - } - catch (System.NotSupportedException) - { - // expected - assertEquals("Size of unmodifiable map has changed", size, map.size()); - } - - try - { - map.Keys.Clear(); - fail("Modified unmodifiable map"); - } - catch (System.NotSupportedException) - { - // expected - assertEquals("Size of unmodifiable map has changed", size, map.size()); - } - - try - { - map.put((object) NOT_IN_MAP, 3); - fail("Modified unmodifiable map"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable map", map.containsKey(NOT_IN_MAP)); - assertNull("Test String has been added to unmodifiable map", map.get(NOT_IN_MAP)); - assertEquals("Size of unmodifiable map has changed", size, map.size()); - } - - try - { - map.putAll(Collections.singletonMap(NOT_IN_MAP, 3)); - fail("Modified unmodifiable map"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable map", map.containsKey(NOT_IN_MAP)); - assertNull("Test String has been added to unmodifiable map", map.get(NOT_IN_MAP)); - assertEquals("Size of unmodifiable map has changed", size, map.size()); - } - - assertTrue(map.containsKey("foo")); - assertEquals(1, map.get("foo").intValue()); - assertTrue(map.containsKey("bar")); - assertEquals(2, map.get("bar").intValue()); - } - - public virtual void testToString() - { - CharArrayMap cm = new CharArrayMap(TEST_VERSION_CURRENT, Collections.singletonMap("test",1), false); - assertEquals("[test]",cm.Keys.ToString()); - assertEquals("[1]",cm.values().ToString()); - assertEquals("[test=1]",cm.entrySet().ToString()); - assertEquals("{test=1}",cm.ToString()); - cm.put("test2", 2); - assertTrue(cm.Keys.ToString().Contains(", ")); - assertTrue(cm.values().ToString().Contains(", ")); - assertTrue(cm.entrySet().ToString().Contains(", ")); - assertTrue(cm.ToString().Contains(", ")); - } - } + try + { + map.Put((object)NOT_IN_MAP, 3); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); + assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); + assertEquals("Size of unmodifiable map has changed", size, map.size()); + } +// try +// { +// map.PutAll(Collections.SingletonMap(NOT_IN_MAP, 3)); +// fail("Modified unmodifiable map"); +// } +// catch (System.NotSupportedException) +// { +// // expected +// assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); +// assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); +// assertEquals("Size of unmodifiable map has changed", size, map.size()); +// } +// +// assertTrue(map.ContainsKey("foo")); +// assertEquals(1, map.Get("foo")); +// assertTrue(map.ContainsKey("bar")); +// assertEquals(2, map.Get("bar")); + } + [Test] + public virtual void TestToString() + { + CharArrayMap cm = new CharArrayMap(TEST_VERSION_CURRENT, Collections.SingletonMap("test", 1), false); + assertEquals("[test]", cm.Keys.ToString()); + assertEquals("[1]", cm.Values.ToString()); + assertEquals("[test=1]", cm.EntrySet().ToString()); + assertEquals("{test=1}", cm.ToString()); + cm.Put("test2", 2); + assertTrue(cm.Keys.ToString().Contains(", ")); + assertTrue(cm.Values.ToString().Contains(", ")); + assertTrue(cm.EntrySet().ToString().Contains(", ")); + assertTrue(cm.ToString().Contains(", ")); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs index 783c4ce239..26a34e3d4f 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs @@ -1,11 +1,16 @@ using System; using System.Collections.Generic; using System.Text; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; +using Version = Lucene.Net.Util.LuceneVersion; -namespace org.apache.lucene.analysis.util +namespace Lucene.Net.Tests.Analysis.Common.Analysis.Util { - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -22,572 +27,577 @@ namespace org.apache.lucene.analysis.util * limitations under the License. */ - using LuceneTestCase = org.apache.lucene.util.LuceneTestCase; - using Version = org.apache.lucene.util.Version; - - - public class TestCharArraySet : LuceneTestCase - { - - internal static readonly string[] TEST_STOP_WORDS = new string[] {"a", "an", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"}; - - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRehash() throws Exception - public virtual void testRehash() - { - CharArraySet cas = new CharArraySet(TEST_VERSION_CURRENT, 0, true); - for (int i = 0;i < TEST_STOP_WORDS.Length;i++) - { - cas.add(TEST_STOP_WORDS[i]); - } - assertEquals(TEST_STOP_WORDS.Length, cas.size()); - for (int i = 0;i < TEST_STOP_WORDS.Length;i++) - { - assertTrue(cas.contains(TEST_STOP_WORDS[i])); - } - } - - public virtual void testNonZeroOffset() - { - string[] words = new string[] {"Hello","World","this","is","a","test"}; - char[] findme = "xthisy".ToCharArray(); - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); - set.addAll(words); - assertTrue(set.contains(findme, 1, 4)); - assertTrue(set.contains(new string(findme,1,4))); - - // test unmodifiable - set = CharArraySet.unmodifiableSet(set); - assertTrue(set.contains(findme, 1, 4)); - assertTrue(set.contains(new string(findme,1,4))); - } - - public virtual void testObjectContains() - { - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); - int? val = Convert.ToInt32(1); - set.add(val); - assertTrue(set.contains(val)); - assertTrue(set.contains(new int?(1))); // another integer - assertTrue(set.contains("1")); - assertTrue(set.contains(new char[]{'1'})); - // test unmodifiable - set = CharArraySet.unmodifiableSet(set); - assertTrue(set.contains(val)); - assertTrue(set.contains(new int?(1))); // another integer - assertTrue(set.contains("1")); - assertTrue(set.contains(new char[]{'1'})); - } - - public virtual void testClear() - { - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10,true); - set.addAll(TEST_STOP_WORDS); - assertEquals("Not all words added", TEST_STOP_WORDS.Length, set.size()); - set.clear(); - assertEquals("not empty", 0, set.size()); - for (int i = 0;i < TEST_STOP_WORDS.Length;i++) - { - assertFalse(set.contains(TEST_STOP_WORDS[i])); - } - set.addAll(TEST_STOP_WORDS); - assertEquals("Not all words added", TEST_STOP_WORDS.Length, set.size()); - for (int i = 0;i < TEST_STOP_WORDS.Length;i++) - { - assertTrue(set.contains(TEST_STOP_WORDS[i])); - } - } - - public virtual void testModifyOnUnmodifiable() - { - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); - set.addAll(TEST_STOP_WORDS); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int size = set.size(); - int size = set.size(); - set = CharArraySet.unmodifiableSet(set); - assertEquals("Set size changed due to unmodifiableSet call", size, set.size()); - string NOT_IN_SET = "SirGallahad"; - assertFalse("Test String already exists in set", set.contains(NOT_IN_SET)); - - try - { - set.add(NOT_IN_SET.ToCharArray()); - fail("Modified unmodifiable set"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); - assertEquals("Size of unmodifiable set has changed", size, set.size()); - } - - try - { - set.add(NOT_IN_SET); - fail("Modified unmodifiable set"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); - assertEquals("Size of unmodifiable set has changed", size, set.size()); - } - - try - { - set.add(new StringBuilder(NOT_IN_SET)); - fail("Modified unmodifiable set"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); - assertEquals("Size of unmodifiable set has changed", size, set.size()); - } - - try - { - set.clear(); - fail("Modified unmodifiable set"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Changed unmodifiable set", set.contains(NOT_IN_SET)); - assertEquals("Size of unmodifiable set has changed", size, set.size()); - } - try - { - set.add((object) NOT_IN_SET); - fail("Modified unmodifiable set"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); - assertEquals("Size of unmodifiable set has changed", size, set.size()); - } - - // This test was changed in 3.1, as a contains() call on the given Collection using the "correct" iterator's - // current key (now a char[]) on a Set would not hit any element of the CAS and therefor never call - // remove() on the iterator - try - { - set.removeAll(new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, true)); - fail("Modified unmodifiable set"); - } - catch (System.NotSupportedException) - { - // expected - assertEquals("Size of unmodifiable set has changed", size, set.size()); - } - - try - { - set.retainAll(new CharArraySet(TEST_VERSION_CURRENT, NOT_IN_SET, true)); - fail("Modified unmodifiable set"); - } - catch (System.NotSupportedException) - { - // expected - assertEquals("Size of unmodifiable set has changed", size, set.size()); - } - - try - { - set.addAll(NOT_IN_SET); - fail("Modified unmodifiable set"); - } - catch (System.NotSupportedException) - { - // expected - assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); - } - - for (int i = 0; i < TEST_STOP_WORDS.Length; i++) - { - assertTrue(set.contains(TEST_STOP_WORDS[i])); - } - } - - public virtual void testUnmodifiableSet() - { - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10,true); - set.addAll(TEST_STOP_WORDS); - set.add(Convert.ToInt32(1)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int size = set.size(); - int size = set.size(); - set = CharArraySet.unmodifiableSet(set); - assertEquals("Set size changed due to unmodifiableSet call", size, set.size()); - foreach (string stopword in TEST_STOP_WORDS) - { - assertTrue(set.contains(stopword)); - } - assertTrue(set.contains(Convert.ToInt32(1))); - assertTrue(set.contains("1")); - assertTrue(set.contains(new char[]{'1'})); - - try - { - CharArraySet.unmodifiableSet(null); - fail("can not make null unmodifiable"); - } - catch (System.NullReferenceException) - { - // expected - } - } - - public virtual void testSupplementaryChars() - { - string missing = "Term %s is missing in the set"; - string falsePos = "Term %s is in the set but shouldn't"; - // for reference see - // http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[[%3ACase_Sensitive%3DTrue%3A]%26[^[\u0000-\uFFFF]]]&esc=on - string[] upperArr = new string[] {"Abc\ud801\udc1c", "\ud801\udc1c\ud801\udc1cCDE", "A\ud801\udc1cB"}; - string[] lowerArr = new string[] {"abc\ud801\udc44", "\ud801\udc44\ud801\udc44cde", "a\ud801\udc44b"}; - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, true); - foreach (string upper in upperArr) - { - set.add(upper); - } - for (int i = 0; i < upperArr.Length; i++) - { - assertTrue(string.format(Locale.ROOT, missing, upperArr[i]), set.contains(upperArr[i])); - assertTrue(string.format(Locale.ROOT, missing, lowerArr[i]), set.contains(lowerArr[i])); - } - set = new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, false); - foreach (string upper in upperArr) - { - set.add(upper); - } - for (int i = 0; i < upperArr.Length; i++) - { - assertTrue(string.format(Locale.ROOT, missing, upperArr[i]), set.contains(upperArr[i])); - assertFalse(string.format(Locale.ROOT, falsePos, lowerArr[i]), set.contains(lowerArr[i])); - } - } - - public virtual void testSingleHighSurrogate() - { - string missing = "Term %s is missing in the set"; - string falsePos = "Term %s is in the set but shouldn't"; - string[] upperArr = new string[] {"ABC\uD800", "ABC\uD800EfG", "\uD800EfG", "\uD800\ud801\udc1cB"}; - - string[] lowerArr = new string[] {"abc\uD800", "abc\uD800efg", "\uD800efg", "\uD800\ud801\udc44b"}; - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, true); - foreach (string upper in upperArr) - { - set.add(upper); - } - for (int i = 0; i < upperArr.Length; i++) - { - assertTrue(string.format(Locale.ROOT, missing, upperArr[i]), set.contains(upperArr[i])); - assertTrue(string.format(Locale.ROOT, missing, lowerArr[i]), set.contains(lowerArr[i])); - } - set = new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, false); - foreach (string upper in upperArr) - { - set.add(upper); - } - for (int i = 0; i < upperArr.Length; i++) - { - assertTrue(string.format(Locale.ROOT, missing, upperArr[i]), set.contains(upperArr[i])); - assertFalse(string.format(Locale.ROOT, falsePos, upperArr[i]), set.contains(lowerArr[i])); - } - } - - /// @deprecated (3.1) remove this test when lucene 3.0 "broken unicode 4" support is - /// no longer needed. - [Obsolete("(3.1) remove this test when lucene 3.0 "broken unicode 4" support is")] - public virtual void testSupplementaryCharsBWCompat() - { - string missing = "Term %s is missing in the set"; - string falsePos = "Term %s is in the set but shouldn't"; - // for reference see - // http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[[%3ACase_Sensitive%3DTrue%3A]%26[^[\u0000-\uFFFF]]]&esc=on - string[] upperArr = new string[] {"Abc\ud801\udc1c", "\ud801\udc1c\ud801\udc1cCDE", "A\ud801\udc1cB"}; - string[] lowerArr = new string[] {"abc\ud801\udc44", "\ud801\udc44\ud801\udc44cde", "a\ud801\udc44b"}; - CharArraySet set = new CharArraySet(Version.LUCENE_30, TEST_STOP_WORDS, true); - foreach (string upper in upperArr) - { - set.add(upper); - } - for (int i = 0; i < upperArr.Length; i++) - { - assertTrue(string.format(Locale.ROOT, missing, upperArr[i]), set.contains(upperArr[i])); - assertFalse(string.format(Locale.ROOT, falsePos, lowerArr[i]), set.contains(lowerArr[i])); - } - set = new CharArraySet(Version.LUCENE_30, TEST_STOP_WORDS, false); - foreach (string upper in upperArr) - { - set.add(upper); - } - for (int i = 0; i < upperArr.Length; i++) - { - assertTrue(string.format(Locale.ROOT,missing, upperArr[i]), set.contains(upperArr[i])); - assertFalse(string.format(Locale.ROOT, falsePos, lowerArr[i]), set.contains(lowerArr[i])); - } - } - - /// @deprecated (3.1) remove this test when lucene 3.0 "broken unicode 4" support is - /// no longer needed. - [Obsolete("(3.1) remove this test when lucene 3.0 "broken unicode 4" support is")] - public virtual void testSingleHighSurrogateBWComapt() - { - string missing = "Term %s is missing in the set"; - string falsePos = "Term %s is in the set but shouldn't"; - string[] upperArr = new string[] {"ABC\uD800", "ABC\uD800EfG", "\uD800EfG", "\uD800\ud801\udc1cB"}; - - string[] lowerArr = new string[] {"abc\uD800", "abc\uD800efg", "\uD800efg", "\uD800\ud801\udc44b"}; - CharArraySet set = new CharArraySet(Version.LUCENE_30, TEST_STOP_WORDS, true); - foreach (string upper in upperArr) - { - set.add(upper); - } - for (int i = 0; i < upperArr.Length; i++) - { - assertTrue(string.format(Locale.ROOT, missing, upperArr[i]), set.contains(upperArr[i])); - if (i == lowerArr.Length - 1) - { - assertFalse(string.format(Locale.ROOT, falsePos, lowerArr[i]), set.contains(lowerArr[i])); - } - else - { - assertTrue(string.format(Locale.ROOT, missing, lowerArr[i]), set.contains(lowerArr[i])); - } - } - set = new CharArraySet(Version.LUCENE_30, TEST_STOP_WORDS, false); - foreach (string upper in upperArr) - { - set.add(upper); - } - for (int i = 0; i < upperArr.Length; i++) - { - assertTrue(string.format(Locale.ROOT, missing, upperArr[i]), set.contains(upperArr[i])); - assertFalse(string.format(Locale.ROOT, falsePos, lowerArr[i]), set.contains(lowerArr[i])); - } - } - -//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: -//ORIGINAL LINE: @SuppressWarnings("deprecated") public void testCopyCharArraySetBWCompat() - public virtual void testCopyCharArraySetBWCompat() - { - CharArraySet setIngoreCase = new CharArraySet(TEST_VERSION_CURRENT, 10, true); - CharArraySet setCaseSensitive = new CharArraySet(TEST_VERSION_CURRENT, 10, false); - - IList stopwords = TEST_STOP_WORDS; - IList stopwordsUpper = new List(); - foreach (string @string in stopwords) - { - stopwordsUpper.Add(@string.ToUpper(Locale.ROOT)); - } - setIngoreCase.addAll(TEST_STOP_WORDS); - setIngoreCase.add(Convert.ToInt32(1)); - setCaseSensitive.addAll(TEST_STOP_WORDS); - setCaseSensitive.add(Convert.ToInt32(1)); - - CharArraySet copy = CharArraySet.copy(TEST_VERSION_CURRENT, setIngoreCase); - CharArraySet copyCaseSens = CharArraySet.copy(TEST_VERSION_CURRENT, setCaseSensitive); - - assertEquals(setIngoreCase.size(), copy.size()); - assertEquals(setCaseSensitive.size(), copy.size()); - - assertTrue(copy.containsAll(stopwords)); - assertTrue(copy.containsAll(stopwordsUpper)); - assertTrue(copyCaseSens.containsAll(stopwords)); - foreach (string @string in stopwordsUpper) - { - assertFalse(copyCaseSens.contains(@string)); - } - // test adding terms to the copy - IList newWords = new List(); - foreach (string @string in stopwords) - { - newWords.Add(@string + "_1"); - } - copy.addAll(newWords); - - assertTrue(copy.containsAll(stopwords)); - assertTrue(copy.containsAll(stopwordsUpper)); - assertTrue(copy.containsAll(newWords)); - // new added terms are not in the source set - foreach (string @string in newWords) - { - assertFalse(setIngoreCase.contains(@string)); - assertFalse(setCaseSensitive.contains(@string)); - - } - } - - /// - /// Test the static #copy() function with a CharArraySet as a source - /// - public virtual void testCopyCharArraySet() - { - CharArraySet setIngoreCase = new CharArraySet(TEST_VERSION_CURRENT, 10, true); - CharArraySet setCaseSensitive = new CharArraySet(TEST_VERSION_CURRENT, 10, false); - - IList stopwords = TEST_STOP_WORDS; - IList stopwordsUpper = new List(); - foreach (string @string in stopwords) - { - stopwordsUpper.Add(@string.ToUpper(Locale.ROOT)); - } - setIngoreCase.addAll(TEST_STOP_WORDS); - setIngoreCase.add(Convert.ToInt32(1)); - setCaseSensitive.addAll(TEST_STOP_WORDS); - setCaseSensitive.add(Convert.ToInt32(1)); - - CharArraySet copy = CharArraySet.copy(TEST_VERSION_CURRENT, setIngoreCase); - CharArraySet copyCaseSens = CharArraySet.copy(TEST_VERSION_CURRENT, setCaseSensitive); - - assertEquals(setIngoreCase.size(), copy.size()); - assertEquals(setCaseSensitive.size(), copy.size()); - - assertTrue(copy.containsAll(stopwords)); - assertTrue(copy.containsAll(stopwordsUpper)); - assertTrue(copyCaseSens.containsAll(stopwords)); - foreach (string @string in stopwordsUpper) - { - assertFalse(copyCaseSens.contains(@string)); - } - // test adding terms to the copy - IList newWords = new List(); - foreach (string @string in stopwords) - { - newWords.Add(@string + "_1"); - } - copy.addAll(newWords); - - assertTrue(copy.containsAll(stopwords)); - assertTrue(copy.containsAll(stopwordsUpper)); - assertTrue(copy.containsAll(newWords)); - // new added terms are not in the source set - foreach (string @string in newWords) - { - assertFalse(setIngoreCase.contains(@string)); - assertFalse(setCaseSensitive.contains(@string)); - - } - } - - /// - /// Test the static #copy() function with a JDK as a source - /// - public virtual void testCopyJDKSet() - { - ISet set = new HashSet(); - - IList stopwords = TEST_STOP_WORDS; - IList stopwordsUpper = new List(); - foreach (string @string in stopwords) - { - stopwordsUpper.Add(@string.ToUpper(Locale.ROOT)); - } - set.addAll(TEST_STOP_WORDS); - - CharArraySet copy = CharArraySet.copy(TEST_VERSION_CURRENT, set); - - assertEquals(set.Count, copy.size()); - assertEquals(set.Count, copy.size()); - - assertTrue(copy.containsAll(stopwords)); - foreach (string @string in stopwordsUpper) - { - assertFalse(copy.contains(@string)); - } - - IList newWords = new List(); - foreach (string @string in stopwords) - { - newWords.Add(@string + "_1"); - } - copy.addAll(newWords); - - assertTrue(copy.containsAll(stopwords)); - assertTrue(copy.containsAll(newWords)); - // new added terms are not in the source set - foreach (string @string in newWords) - { - assertFalse(set.Contains(@string)); - } - } - - /// - /// Tests a special case of where the - /// set to copy is the - /// - public virtual void testCopyEmptySet() - { - assertSame(CharArraySet.EMPTY_SET, CharArraySet.copy(TEST_VERSION_CURRENT, CharArraySet.EMPTY_SET)); - } - - /// - /// Smoketests the static empty set - /// - public virtual void testEmptySet() - { - assertEquals(0, CharArraySet.EMPTY_SET.size()); - - assertTrue(CharArraySet.EMPTY_SET.Empty); - foreach (string stopword in TEST_STOP_WORDS) - { - assertFalse(CharArraySet.EMPTY_SET.contains(stopword)); - } - assertFalse(CharArraySet.EMPTY_SET.contains("foo")); - assertFalse(CharArraySet.EMPTY_SET.contains((object) "foo")); - assertFalse(CharArraySet.EMPTY_SET.contains("foo".ToCharArray())); - assertFalse(CharArraySet.EMPTY_SET.contains("foo".ToCharArray(),0,3)); - } - - /// - /// Test for NPE - /// - public virtual void testContainsWithNull() - { - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 1, true); - try - { - set.contains((char[]) null, 0, 10); - fail("null value must raise NPE"); - } - catch (System.NullReferenceException) - { - } - try - { - set.contains((CharSequence) null); - fail("null value must raise NPE"); - } - catch (System.NullReferenceException) - { - } - try - { - set.contains((object) null); - fail("null value must raise NPE"); - } - catch (System.NullReferenceException) - { - } - } - - public virtual void testToString() - { - CharArraySet set = CharArraySet.copy(TEST_VERSION_CURRENT, Collections.singleton("test")); - assertEquals("[test]", set.ToString()); - set.add("test2"); - assertTrue(set.ToString().Contains(", ")); - - set = CharArraySet.copy(Version.LUCENE_30, Collections.singleton("test")); - assertEquals("[test]", set.ToString()); - set.add("test2"); - assertTrue(set.ToString().Contains(", ")); - } - } + [TestFixture] + public class TestCharArraySet : LuceneTestCase + { + + internal static readonly string[] TEST_STOP_WORDS = { "a", "an", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with" }; + + [Test] + public virtual void TestRehash() + { + CharArraySet cas = new CharArraySet(TEST_VERSION_CURRENT, 0, true); + for (int i = 0; i < TEST_STOP_WORDS.Length; i++) + { + cas.Add(TEST_STOP_WORDS[i]); + } + assertEquals(TEST_STOP_WORDS.Length, cas.size()); + for (int i = 0; i < TEST_STOP_WORDS.Length; i++) + { + assertTrue(cas.Contains(TEST_STOP_WORDS[i])); + } + } + + [Test] + public virtual void TestNonZeroOffset() + { + string[] words = new string[] { "Hello", "World", "this", "is", "a", "test" }; + char[] findme = "xthisy".ToCharArray(); + CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); + set.AddAll(words); + assertTrue(set.Contains(findme, 1, 4)); + assertTrue(set.Contains(new string(findme, 1, 4))); + + // test unmodifiable + set = CharArraySet.UnmodifiableSet(set); + assertTrue(set.Contains(findme, 1, 4)); + assertTrue(set.Contains(new string(findme, 1, 4))); + } + + [Test] + public virtual void TestObjectContains() + { + CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); + int? val = Convert.ToInt32(1); + set.Add(val); + assertTrue(set.Contains(val)); + assertTrue(set.Contains(new int?(1))); // another integer + assertTrue(set.Contains("1")); + assertTrue(set.Contains(new char[] { '1' })); + // test unmodifiable + set = CharArraySet.UnmodifiableSet(set); + assertTrue(set.Contains(val)); + assertTrue(set.Contains(new int?(1))); // another integer + assertTrue(set.Contains("1")); + assertTrue(set.Contains(new char[] { '1' })); + } + + [Test] + public virtual void TestClear() + { + CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); + set.AddAll(TEST_STOP_WORDS); + assertEquals("Not all words added", TEST_STOP_WORDS.Length, set.size()); + set.Clear(); + assertEquals("not empty", 0, set.size()); + for (int i = 0; i < TEST_STOP_WORDS.Length; i++) + { + assertFalse(set.Contains(TEST_STOP_WORDS[i])); + } + set.AddAll(TEST_STOP_WORDS); + assertEquals("Not all words added", TEST_STOP_WORDS.Length, set.size()); + for (int i = 0; i < TEST_STOP_WORDS.Length; i++) + { + assertTrue("Set doesn't contain " + TEST_STOP_WORDS[i], set.Contains(TEST_STOP_WORDS[i])); + } + } + + [Test] + public virtual void TestModifyOnUnmodifiable() + { + CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); + set.AddAll(TEST_STOP_WORDS); + int size = set.size(); + set = CharArraySet.UnmodifiableSet(set); + assertEquals("Set size changed due to unmodifiableSet call", size, set.size()); + string NOT_IN_SET = "SirGallahad"; + assertFalse("Test String already exists in set", set.Contains(NOT_IN_SET)); + + try + { + set.add(NOT_IN_SET.ToCharArray()); + fail("Modified unmodifiable set"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); + assertEquals("Size of unmodifiable set has changed", size, set.size()); + } + + try + { + set.add(NOT_IN_SET); + fail("Modified unmodifiable set"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); + assertEquals("Size of unmodifiable set has changed", size, set.size()); + } + + try + { + set.add(new StringBuilder(NOT_IN_SET)); + fail("Modified unmodifiable set"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); + assertEquals("Size of unmodifiable set has changed", size, set.size()); + } + + try + { + set.clear(); + fail("Modified unmodifiable set"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Changed unmodifiable set", set.contains(NOT_IN_SET)); + assertEquals("Size of unmodifiable set has changed", size, set.size()); + } + try + { + set.add(NOT_IN_SET); + fail("Modified unmodifiable set"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); + assertEquals("Size of unmodifiable set has changed", size, set.size()); + } + + // This test was changed in 3.1, as a contains() call on the given Collection using the "correct" iterator's + // current key (now a char[]) on a Set would not hit any element of the CAS and therefor never call + // remove() on the iterator + try + { + set.removeAll(new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, true)); + fail("Modified unmodifiable set"); + } + catch (System.NotSupportedException) + { + // expected + assertEquals("Size of unmodifiable set has changed", size, set.size()); + } + + try + { + set.retainAll(new CharArraySet(TEST_VERSION_CURRENT, new [] { NOT_IN_SET }, true)); + fail("Modified unmodifiable set"); + } + catch (System.NotSupportedException) + { + // expected + assertEquals("Size of unmodifiable set has changed", size, set.size()); + } + + try + { + set.addAll(new[] { NOT_IN_SET}); + fail("Modified unmodifiable set"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable set", set.contains(NOT_IN_SET)); + } + + for (int i = 0; i < TEST_STOP_WORDS.Length; i++) + { + assertTrue(set.contains(TEST_STOP_WORDS[i])); + } + } + + [Test] + public virtual void testUnmodifiableSet() + { + CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); + set.addAll(TEST_STOP_WORDS); + set.add(Convert.ToInt32(1)); + int size = set.size(); + set = CharArraySet.UnmodifiableSet(set); + assertEquals("Set size changed due to unmodifiableSet call", size, set.size()); + foreach (string stopword in TEST_STOP_WORDS) + { + assertTrue(set.contains(stopword)); + } + assertTrue(set.contains(Convert.ToInt32(1))); + assertTrue(set.contains("1")); + assertTrue(set.contains(new char[] { '1' })); + + try + { + CharArraySet.UnmodifiableSet(null); + fail("can not make null unmodifiable"); + } + catch (System.NullReferenceException) + { + // expected + } + } + + [Test] + public virtual void TestSupplementaryChars() + { + string missing = "Term %s is missing in the set"; + string falsePos = "Term %s is in the set but shouldn't"; + // for reference see + // http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[[%3ACase_Sensitive%3DTrue%3A]%26[^[\u0000-\uFFFF]]]&esc=on + string[] upperArr = new string[] { "Abc\ud801\udc1c", "\ud801\udc1c\ud801\udc1cCDE", "A\ud801\udc1cB" }; + string[] lowerArr = new string[] { "abc\ud801\udc44", "\ud801\udc44\ud801\udc44cde", "a\ud801\udc44b" }; + CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, true); + foreach (string upper in upperArr) + { + set.add(upper); + } + for (int i = 0; i < upperArr.Length; i++) + { + assertTrue(string.Format(missing, upperArr[i]), set.contains(upperArr[i])); + assertTrue(string.Format(missing, lowerArr[i]), set.contains(lowerArr[i])); + } + set = new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, false); + foreach (string upper in upperArr) + { + set.add(upper); + } + for (int i = 0; i < upperArr.Length; i++) + { + assertTrue(string.Format(missing, upperArr[i]), set.contains(upperArr[i])); + assertFalse(string.Format(falsePos, lowerArr[i]), set.contains(lowerArr[i])); + } + } + + [Test] + public virtual void TestSingleHighSurrogate() + { + string missing = "Term %s is missing in the set"; + string falsePos = "Term %s is in the set but shouldn't"; + string[] upperArr = { "ABC\uD800", "ABC\uD800EfG", "\uD800EfG", "\uD800\ud801\udc1cB" }; + + string[] lowerArr = { "abc\uD800", "abc\uD800efg", "\uD800efg", "\uD800\ud801\udc44b" }; + CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, true); + foreach (string upper in upperArr) + { + set.add(upper); + } + for (int i = 0; i < upperArr.Length; i++) + { + assertTrue(string.Format(missing, upperArr[i]), set.contains(upperArr[i])); + assertTrue(string.Format(missing, lowerArr[i]), set.contains(lowerArr[i])); + } + set = new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, false); + foreach (string upper in upperArr) + { + set.add(upper); + } + for (int i = 0; i < upperArr.Length; i++) + { + assertTrue(string.Format(missing, upperArr[i]), set.contains(upperArr[i])); + assertFalse(string.Format(falsePos, upperArr[i]), set.contains(lowerArr[i])); + } + } + + /// @deprecated (3.1) remove this test when lucene 3.0 "broken unicode 4" support is + /// no longer needed. + [Test] + [Obsolete("(3.1) remove this test when lucene 3.0 'broken unicode 4' support is")] + public virtual void testSupplementaryCharsBWCompat() + { + string missing = "Term %s is missing in the set"; + string falsePos = "Term %s is in the set but shouldn't"; + // for reference see + // http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[[%3ACase_Sensitive%3DTrue%3A]%26[^[\u0000-\uFFFF]]]&esc=on + string[] upperArr = new string[] { "Abc\ud801\udc1c", "\ud801\udc1c\ud801\udc1cCDE", "A\ud801\udc1cB" }; + string[] lowerArr = new string[] { "abc\ud801\udc44", "\ud801\udc44\ud801\udc44cde", "a\ud801\udc44b" }; + CharArraySet set = new CharArraySet(Version.LUCENE_30, TEST_STOP_WORDS, true); + foreach (string upper in upperArr) + { + set.add(upper); + } + for (int i = 0; i < upperArr.Length; i++) + { + assertTrue(string.Format(missing, upperArr[i]), set.contains(upperArr[i])); + assertFalse(string.Format(falsePos, lowerArr[i]), set.contains(lowerArr[i])); + } + set = new CharArraySet(Version.LUCENE_30, TEST_STOP_WORDS, false); + foreach (string upper in upperArr) + { + set.add(upper); + } + for (int i = 0; i < upperArr.Length; i++) + { + assertTrue(string.Format(missing, upperArr[i]), set.contains(upperArr[i])); + assertFalse(string.Format(falsePos, lowerArr[i]), set.contains(lowerArr[i])); + } + } + + /// @deprecated (3.1) remove this test when lucene 3.0 "broken unicode 4" support is + /// no longer needed. + [Test] + [Obsolete("(3.1) remove this test when lucene 3.0 'broken unicode 4' support is")] + public virtual void TestSingleHighSurrogateBWComapt() + { + string missing = "Term %s is missing in the set"; + string falsePos = "Term %s is in the set but shouldn't"; + string[] upperArr = new string[] { "ABC\uD800", "ABC\uD800EfG", "\uD800EfG", "\uD800\ud801\udc1cB" }; + + string[] lowerArr = new string[] { "abc\uD800", "abc\uD800efg", "\uD800efg", "\uD800\ud801\udc44b" }; + CharArraySet set = new CharArraySet(Version.LUCENE_30, TEST_STOP_WORDS, true); + foreach (string upper in upperArr) + { + set.add(upper); + } + for (int i = 0; i < upperArr.Length; i++) + { + assertTrue(string.Format(missing, upperArr[i]), set.contains(upperArr[i])); + if (i == lowerArr.Length - 1) + { + assertFalse(string.Format(falsePos, lowerArr[i]), set.contains(lowerArr[i])); + } + else + { + assertTrue(string.Format(missing, lowerArr[i]), set.contains(lowerArr[i])); + } + } + set = new CharArraySet(Version.LUCENE_30, TEST_STOP_WORDS, false); + foreach (string upper in upperArr) + { + set.add(upper); + } + for (int i = 0; i < upperArr.Length; i++) + { + assertTrue(string.Format(missing, upperArr[i]), set.contains(upperArr[i])); + assertFalse(string.Format(falsePos, lowerArr[i]), set.contains(lowerArr[i])); + } + } + + [Test] + public virtual void TestCopyCharArraySetBWCompat() + { + CharArraySet setIngoreCase = new CharArraySet(TEST_VERSION_CURRENT, 10, true); + CharArraySet setCaseSensitive = new CharArraySet(TEST_VERSION_CURRENT, 10, false); + + IList stopwords = TEST_STOP_WORDS; + IList stopwordsUpper = new List(); + foreach (string @string in stopwords) + { + stopwordsUpper.Add(@string.ToUpper()); + } + setIngoreCase.addAll(TEST_STOP_WORDS); + setIngoreCase.add(Convert.ToInt32(1)); + setCaseSensitive.addAll(TEST_STOP_WORDS); + setCaseSensitive.add(Convert.ToInt32(1)); + + CharArraySet copy = CharArraySet.Copy(TEST_VERSION_CURRENT, setIngoreCase); + CharArraySet copyCaseSens = CharArraySet.Copy(TEST_VERSION_CURRENT, setCaseSensitive); + + assertEquals(setIngoreCase.size(), copy.size()); + assertEquals(setCaseSensitive.size(), copy.size()); + + assertTrue(copy.containsAll(stopwords)); + assertTrue(copy.containsAll(stopwordsUpper)); + assertTrue(copyCaseSens.containsAll(stopwords)); + foreach (string @string in stopwordsUpper) + { + assertFalse(copyCaseSens.contains(@string)); + } + // test adding terms to the copy + IList newWords = new List(); + foreach (string @string in stopwords) + { + newWords.Add(@string + "_1"); + } + copy.addAll(newWords); + + assertTrue(copy.containsAll(stopwords)); + assertTrue(copy.containsAll(stopwordsUpper)); + assertTrue(copy.containsAll(newWords)); + // new added terms are not in the source set + foreach (string @string in newWords) + { + assertFalse(setIngoreCase.contains(@string)); + assertFalse(setCaseSensitive.contains(@string)); + + } + } + + /// + /// Test the static #copy() function with a CharArraySet as a source + /// + [Test] + public virtual void TestCopyCharArraySet() + { + CharArraySet setIngoreCase = new CharArraySet(TEST_VERSION_CURRENT, 10, true); + CharArraySet setCaseSensitive = new CharArraySet(TEST_VERSION_CURRENT, 10, false); + + IList stopwords = TEST_STOP_WORDS; + IList stopwordsUpper = new List(); + foreach (string @string in stopwords) + { + stopwordsUpper.Add(@string.ToUpper()); + } + setIngoreCase.addAll(TEST_STOP_WORDS); + setIngoreCase.add(Convert.ToInt32(1)); + setCaseSensitive.addAll(TEST_STOP_WORDS); + setCaseSensitive.add(Convert.ToInt32(1)); + + CharArraySet copy = CharArraySet.Copy(TEST_VERSION_CURRENT, setIngoreCase); + CharArraySet copyCaseSens = CharArraySet.Copy(TEST_VERSION_CURRENT, setCaseSensitive); + + assertEquals(setIngoreCase.size(), copy.size()); + assertEquals(setCaseSensitive.size(), copy.size()); + + assertTrue(copy.containsAll(stopwords)); + assertTrue(copy.containsAll(stopwordsUpper)); + assertTrue(copyCaseSens.containsAll(stopwords)); + foreach (string @string in stopwordsUpper) + { + assertFalse(copyCaseSens.contains(@string)); + } + // test adding terms to the copy + IList newWords = new List(); + foreach (string @string in stopwords) + { + newWords.Add(@string + "_1"); + } + copy.addAll(newWords); + + assertTrue(copy.containsAll(stopwords)); + assertTrue(copy.containsAll(stopwordsUpper)); + assertTrue(copy.containsAll(newWords)); + // new added terms are not in the source set + foreach (string @string in newWords) + { + assertFalse(setIngoreCase.contains(@string)); + assertFalse(setCaseSensitive.contains(@string)); + + } + } + + /// + /// Test the static #copy() function with a JDK as a source + /// + [Test] + public virtual void TestCopyJDKSet() + { + ISet set = new HashSet(); + + IList stopwords = TEST_STOP_WORDS; + IList stopwordsUpper = new List(); + foreach (string @string in stopwords) + { + stopwordsUpper.Add(@string.ToUpper()); + } + set.addAll(TEST_STOP_WORDS); + + CharArraySet copy = CharArraySet.Copy(TEST_VERSION_CURRENT, set); + + assertEquals(set.Count, copy.size()); + assertEquals(set.Count, copy.size()); + + assertTrue(copy.containsAll(stopwords)); + foreach (string @string in stopwordsUpper) + { + assertFalse(copy.contains(@string)); + } + + IList newWords = new List(); + foreach (string @string in stopwords) + { + newWords.Add(@string + "_1"); + } + copy.addAll(newWords); + + assertTrue(copy.containsAll(stopwords)); + assertTrue(copy.containsAll(newWords)); + // new added terms are not in the source set + foreach (string @string in newWords) + { + assertFalse(set.Contains(@string)); + } + } + + /// + /// Tests a special case of where the + /// set to copy is the + /// + [Test] + public virtual void TestCopyEmptySet() + { + assertSame(CharArraySet.EMPTY_SET, CharArraySet.Copy(TEST_VERSION_CURRENT, CharArraySet.EMPTY_SET)); + } + + /// + /// Smoketests the static empty set + /// + [Test] + public virtual void TestEmptySet() + { + assertEquals(0, CharArraySet.EMPTY_SET.size()); + + assertTrue(CharArraySet.EMPTY_SET.Count == 0); + foreach (string stopword in TEST_STOP_WORDS) + { + assertFalse(CharArraySet.EMPTY_SET.contains(stopword)); + } + assertFalse(CharArraySet.EMPTY_SET.contains("foo")); + assertFalse(CharArraySet.EMPTY_SET.contains((object)"foo")); + assertFalse(CharArraySet.EMPTY_SET.contains("foo".ToCharArray())); + assertFalse(CharArraySet.EMPTY_SET.Contains("foo".ToCharArray(), 0, 3)); + } + + /// + /// Test for NPE + /// +// [Test] +// public virtual void TestContainsWithNull() +// { +// CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 1, true); +// try +// { +// set.contains((char[])null, 0, 10); +// fail("null value must raise NPE"); +// } +// catch (System.NullReferenceException) +// { +// } +// try +// { +// set.contains(null); +// fail("null value must raise NPE"); +// } +// catch (System.NullReferenceException) +// { +// } +// try +// { +// set.contains((object)null); +// fail("null value must raise NPE"); +// } +// catch (System.NullReferenceException) +// { +// } +// } + + [Test] + public virtual void TestToString() + { + CharArraySet set = CharArraySet.Copy(TEST_VERSION_CURRENT, Collections.Singleton("test")); + assertEquals("[test]", set.ToString()); + set.add("test2"); + assertTrue(set.ToString().Contains(", ")); + + set = CharArraySet.Copy(Version.LUCENE_30, Collections.Singleton("test")); + assertEquals("[test]", set.ToString()); + set.add("test2"); + assertTrue(set.ToString().Contains(", ")); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharTokenizers.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharTokenizers.cs index 4bf57e4dfc..0d281013b0 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharTokenizers.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharTokenizers.cs @@ -4,6 +4,7 @@ using Lucene.Net.Analysis; using Lucene.Net.Analysis.Core; using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Util; using Lucene.Net.Support; using Lucene.Net.Util; using NUnit.Framework; diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 722b345c8f..b74a6f5c04 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -52,6 +52,8 @@ + + From 30804e0c1fac1b5ed422548268fc5f4e96ce4cae Mon Sep 17 00:00:00 2001 From: Itamar Syn-Hershko Date: Fri, 15 Jul 2016 00:31:02 +0300 Subject: [PATCH 002/141] Clean unused references --- src/Lucene.Net.Core/Lucene.Net.csproj | 3 --- src/Lucene.Net.Core/packages.config | 2 -- src/Lucene.Net.TestFramework/packages.config | 1 - src/Lucene.Net.Tests/packages.config | 1 - 4 files changed, 7 deletions(-) diff --git a/src/Lucene.Net.Core/Lucene.Net.csproj b/src/Lucene.Net.Core/Lucene.Net.csproj index d52e4b0a16..62ba04cd3e 100644 --- a/src/Lucene.Net.Core/Lucene.Net.csproj +++ b/src/Lucene.Net.Core/Lucene.Net.csproj @@ -39,9 +39,6 @@ - - ..\..\packages\Microsoft.Bcl.Immutable.1.0.34\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll - diff --git a/src/Lucene.Net.Core/packages.config b/src/Lucene.Net.Core/packages.config index 40ec27e39e..6b8deb9c96 100644 --- a/src/Lucene.Net.Core/packages.config +++ b/src/Lucene.Net.Core/packages.config @@ -1,5 +1,3 @@  - - \ No newline at end of file diff --git a/src/Lucene.Net.TestFramework/packages.config b/src/Lucene.Net.TestFramework/packages.config index 7a698abfa1..967502dc81 100644 --- a/src/Lucene.Net.TestFramework/packages.config +++ b/src/Lucene.Net.TestFramework/packages.config @@ -1,5 +1,4 @@  - \ No newline at end of file diff --git a/src/Lucene.Net.Tests/packages.config b/src/Lucene.Net.Tests/packages.config index 7a698abfa1..967502dc81 100644 --- a/src/Lucene.Net.Tests/packages.config +++ b/src/Lucene.Net.Tests/packages.config @@ -1,5 +1,4 @@  - \ No newline at end of file From 0c794a36cf35687efaa9ebedc7544e59d2eb1dbc Mon Sep 17 00:00:00 2001 From: Itamar Syn-Hershko Date: Sun, 17 Jul 2016 02:51:40 +0300 Subject: [PATCH 003/141] Fixing test failures --- .../Analysis/Util/CharArrayMap.cs | 9 +++++---- .../Analysis/Util/TestCharArrayMap.cs | 10 +++++----- .../Analysis/Util/TestCharArraySet.cs | 18 +++++++++--------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs index d7fc4ab50b..25a8d35692 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs @@ -358,7 +358,7 @@ private bool Equals(char[] text1, int off, int len, char[] text2) return true; } - private bool Equals(ICharSequence text1, char[] text2) + private bool Equals(string text1, char[] text2) { int len = text1.Length; if (len != text2.Length) @@ -381,7 +381,7 @@ private bool Equals(ICharSequence text1, char[] text2) { for (int i = 0; i < len; i++) { - if (text1.CharAt(i) != text2[i]) + if (text1[i] != text2[i]) { return false; } @@ -421,8 +421,9 @@ private int GetHashCode(string text) { if (text == null) { - throw new ArgumentException("text can't be null", "text"); + throw new ArgumentException("text can't be null", nameof(text)); } + int code = 0; int len = text.Length; if (ignoreCase) @@ -483,7 +484,7 @@ public int Count public IEnumerator> GetEnumerator() { - throw new NotImplementedException(); + throw new NotSupportedException(); } public override string ToString() diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs index 4b3cc0e7d5..80f094a0fa 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs @@ -149,9 +149,9 @@ public class TestCharArrayMap : LuceneTestCase // } [Test] - public virtual void TestModifyOnUnmodifiable() + public void TestModifyOnUnmodifiable() { - CharArrayMap map = new CharArrayMap(TEST_VERSION_CURRENT, 2, false); + CharArrayMap map = new CharArrayMap(TEST_VERSION_CURRENT, 2, false); map.Put("foo", 1); map.Put("bar", 2); int size = map.Count; @@ -161,9 +161,9 @@ public virtual void TestModifyOnUnmodifiable() assertTrue(map.ContainsKey("bar")); assertEquals(2, map.Get("bar")); - map = CharArrayMap.UnmodifiableMap(map); + map = CharArrayMap.UnmodifiableMap(map); assertEquals("Map size changed due to unmodifiableMap call", size, map.Count); - string NOT_IN_MAP = "SirGallahad"; + var NOT_IN_MAP = "SirGallahad"; assertFalse("Test String already exists in map", map.ContainsKey(NOT_IN_MAP)); assertNull("Test String already exists in map", map.Get(NOT_IN_MAP)); @@ -219,7 +219,7 @@ public virtual void TestModifyOnUnmodifiable() try { - map.EntrySet().Clear(); + map.GetEntrySet().Clear(); fail("Modified unmodifiable map"); } catch (System.NotSupportedException) diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs index 26a34e3d4f..8f9b461796 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs @@ -85,18 +85,18 @@ public virtual void TestObjectContains() [Test] public virtual void TestClear() { - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); + var set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); set.AddAll(TEST_STOP_WORDS); assertEquals("Not all words added", TEST_STOP_WORDS.Length, set.size()); set.Clear(); assertEquals("not empty", 0, set.size()); - for (int i = 0; i < TEST_STOP_WORDS.Length; i++) + for (var i = 0; i < TEST_STOP_WORDS.Length; i++) { assertFalse(set.Contains(TEST_STOP_WORDS[i])); } set.AddAll(TEST_STOP_WORDS); assertEquals("Not all words added", TEST_STOP_WORDS.Length, set.size()); - for (int i = 0; i < TEST_STOP_WORDS.Length; i++) + for (var i = 0; i < TEST_STOP_WORDS.Length; i++) { assertTrue("Set doesn't contain " + TEST_STOP_WORDS[i], set.Contains(TEST_STOP_WORDS[i])); } @@ -215,21 +215,21 @@ public virtual void TestModifyOnUnmodifiable() } [Test] - public virtual void testUnmodifiableSet() + public virtual void TestUnmodifiableSet() { - CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); - set.addAll(TEST_STOP_WORDS); - set.add(Convert.ToInt32(1)); + var set = new CharArraySet(TEST_VERSION_CURRENT, 10, true); + set.AddAll(TEST_STOP_WORDS); + set.Add(Convert.ToInt32(1)); int size = set.size(); set = CharArraySet.UnmodifiableSet(set); assertEquals("Set size changed due to unmodifiableSet call", size, set.size()); - foreach (string stopword in TEST_STOP_WORDS) + foreach (var stopword in TEST_STOP_WORDS) { assertTrue(set.contains(stopword)); } assertTrue(set.contains(Convert.ToInt32(1))); assertTrue(set.contains("1")); - assertTrue(set.contains(new char[] { '1' })); + assertTrue(set.contains(new[] { '1' })); try { From 32ecd80d4d1f9d20760b41d2b7685f10d49f7f0c Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Wed, 3 Aug 2016 14:10:24 +0700 Subject: [PATCH 004/141] Implemented IsReadOnly property and removed C# 6 features because the project doesn't compile with VS 2012. --- .../Analysis/Util/CharArrayMap.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs index 25a8d35692..3a151eab8d 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs @@ -421,7 +421,7 @@ private int GetHashCode(string text) { if (text == null) { - throw new ArgumentException("text can't be null", nameof(text)); + throw new ArgumentException("text can't be null", "text"); } int code = 0; @@ -826,7 +826,7 @@ public bool Remove(KeyValuePair item) } public int Count { get { return outerInstance.count; } private set { throw new NotSupportedException(); } } - public bool IsReadOnly { get; } + public bool IsReadOnly { get { return !allowModify; } } #region Not implemented members @@ -924,7 +924,7 @@ public static CharArrayMap UnmodifiableMap(CharArrayMap map) { if (map == null) { - throw new ArgumentException("Given map is null", nameof(map)); + throw new ArgumentException("Given map is null", "map"); } if (map == EmptyMap() || map.Count == 0) { From 58e4bd8fb4a87bc665e398adfa06c6f04c1a81a4 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Wed, 3 Aug 2016 14:16:03 +0700 Subject: [PATCH 005/141] Ported WordlistLoader + tests. --- .../Analysis/Util/WordlistLoader.cs | 512 ++++++++---------- .../Lucene.Net.Analysis.Common.csproj | 1 + .../Analysis/Util/TestWordlistLoader.cs | 139 ++--- .../Lucene.Net.Tests.Analysis.Common.csproj | 3 +- 4 files changed, 300 insertions(+), 355 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/WordlistLoader.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/WordlistLoader.cs index f15b4a5ffc..b5106ef793 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/WordlistLoader.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/WordlistLoader.cs @@ -1,295 +1,237 @@ using System; using System.Collections.Generic; +using System.Linq; using System.IO; +using System.Text; using Lucene.Net.Util; -using org.apache.lucene.analysis.util; -using Reader = System.IO.TextReader; -using Version = Lucene.Net.Util.LuceneVersion; +using Lucene.Net.Analysis.Util; namespace Lucene.Net.Analysis.Util { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ /// - /// Loader for text files that represent a list of stopwords. - /// - /// instances - /// @lucene.internal - public class WordlistLoader - { - - private const int INITIAL_CAPACITY = 16; - - /// - /// no instance - private WordlistLoader() - { - } - - /// - /// Reads lines from a Reader and adds every line as an entry to a CharArraySet (omitting - /// leading and trailing whitespace). Every line of the Reader should contain only - /// one word. The words need to be in lowercase if you make use of an - /// Analyzer which uses LowerCaseFilter (like StandardAnalyzer). - /// - /// Reader containing the wordlist - /// the to fill with the readers words - /// the given with the reader's words - public static CharArraySet GetWordSet(TextReader reader, CharArraySet result) - { - BufferedReader br = null; - try - { - br = getBufferedReader(reader); - string word = null; - while ((word = br.readLine()) != null) - { - result.add(word.Trim()); - } - } - finally - { - IOUtils.close(br); - } - return result; - } - - /// - /// Reads lines from a Reader and adds every line as an entry to a CharArraySet (omitting - /// leading and trailing whitespace). Every line of the Reader should contain only - /// one word. The words need to be in lowercase if you make use of an - /// Analyzer which uses LowerCaseFilter (like StandardAnalyzer). - /// - /// Reader containing the wordlist - /// the Lucene - /// A with the reader's words - public static CharArraySet GetWordSet(TextReader reader, Version matchVersion) - { - return GetWordSet(reader, new CharArraySet(matchVersion, INITIAL_CAPACITY, false)); - } - - /// - /// Reads lines from a Reader and adds every non-comment line as an entry to a CharArraySet (omitting - /// leading and trailing whitespace). Every line of the Reader should contain only - /// one word. The words need to be in lowercase if you make use of an - /// Analyzer which uses LowerCaseFilter (like StandardAnalyzer). - /// - /// Reader containing the wordlist - /// The string representing a comment. - /// the Lucene - /// A CharArraySet with the reader's words - public static CharArraySet GetWordSet(TextReader reader, string comment, Version matchVersion) - { - return GetWordSet(reader, comment, new CharArraySet(matchVersion, INITIAL_CAPACITY, false)); - } - - /// - /// Reads lines from a Reader and adds every non-comment line as an entry to a CharArraySet (omitting - /// leading and trailing whitespace). Every line of the Reader should contain only - /// one word. The words need to be in lowercase if you make use of an - /// Analyzer which uses LowerCaseFilter (like StandardAnalyzer). - /// - /// Reader containing the wordlist - /// The string representing a comment. - /// the to fill with the readers words - /// the given with the reader's words - public static CharArraySet GetWordSet(TextReader reader, string comment, CharArraySet result) - { - BufferedReader br = null; - try - { - br = getBufferedReader(reader); - string word = null; - while ((word = br.ReadLine()) != null) - { - if (word.StartsWith(comment, StringComparison.Ordinal) == false) - { - result.add(word.Trim()); - } - } - } - finally - { - IOUtils.Close(br); - } - return result; - } - - - /// - /// Reads stopwords from a stopword list in Snowball format. - /// - /// The snowball format is the following: - ///
    - ///
  • Lines may contain multiple words separated by whitespace. - ///
  • The comment character is the vertical line (|). - ///
  • Lines may contain trailing comments. - ///
- ///
- ///
- /// Reader containing a Snowball stopword list - /// the to fill with the readers words - /// the given with the reader's words -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public static CharArraySet getSnowballWordSet(java.io.Reader reader, CharArraySet result) throws java.io.IOException - public static CharArraySet getSnowballWordSet(Reader reader, CharArraySet result) - { - BufferedReader br = null; - try - { - br = getBufferedReader(reader); - string line = null; - while ((line = br.readLine()) != null) - { - int comment = line.IndexOf('|'); - if (comment >= 0) - { - line = line.Substring(0, comment); - } - string[] words = line.Split("\\s+", true); - for (int i = 0; i < words.Length; i++) - { - if (words[i].Length > 0) - { - result.add(words[i]); - } - } - } - } - finally - { - IOUtils.close(br); - } - return result; - } - - /// - /// Reads stopwords from a stopword list in Snowball format. - /// - /// The snowball format is the following: - ///
    - ///
  • Lines may contain multiple words separated by whitespace. - ///
  • The comment character is the vertical line (|). - ///
  • Lines may contain trailing comments. - ///
- ///
- ///
- /// Reader containing a Snowball stopword list - /// the Lucene - /// A with the reader's words -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public static CharArraySet getSnowballWordSet(java.io.Reader reader, org.apache.lucene.util.Version matchVersion) throws java.io.IOException - public static CharArraySet getSnowballWordSet(Reader reader, Version matchVersion) - { - return getSnowballWordSet(reader, new CharArraySet(matchVersion, INITIAL_CAPACITY, false)); - } - - - /// - /// Reads a stem dictionary. Each line contains: - ///
word\tstem
- /// (i.e. two tab separated words) - ///
- /// stem dictionary that overrules the stemming algorithm - /// If there is a low-level I/O error. -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public static CharArrayMap getStemDict(java.io.Reader reader, CharArrayMap result) throws java.io.IOException - public static CharArrayMap getStemDict(Reader reader, CharArrayMap result) - { - BufferedReader br = null; - try - { - br = getBufferedReader(reader); - string line; - while ((line = br.readLine()) != null) - { - string[] wordstem = line.Split("\t", 2); - result.put(wordstem[0], wordstem[1]); - } - } - finally - { - IOUtils.close(br); - } - return result; - } - - /// - /// Accesses a resource by name and returns the (non comment) lines containing - /// data using the given character encoding. - /// - /// - /// A comment line is any line that starts with the character "#" - /// - /// - /// a list of non-blank non-comment lines with whitespace trimmed - /// If there is a low-level I/O error. - public static IList getLines(InputStream stream, Charset charset) - { - BufferedReader input = null; - List lines; - bool success = false; - try - { - input = getBufferedReader(IOUtils.getDecodingReader(stream, charset)); - - lines = new List<>(); - for (string word = null; (word = input.readLine()) != null;) - { - // skip initial bom marker - if (lines.Count == 0 && word.Length > 0 && word[0] == '\uFEFF') - { - word = word.Substring(1); - } - // skip comments - if (word.StartsWith("#", StringComparison.Ordinal)) - { - continue; - } - word = word.Trim(); - // skip blank lines - if (word.length() == 0) - { - continue; - } - lines.Add(word); - } - success = true; - return lines; - } - finally - { - if (success) - { - IOUtils.close(input); - } - else - { - IOUtils.closeWhileHandlingException(input); - } - } - } - - private static BufferedReader getBufferedReader(Reader reader) - { - return (reader is BufferedReader) ? (BufferedReader) reader : new BufferedReader(reader); - } - - } - + /// Loader for text files that represent a list of stopwords. + /// + /// instances + /// @lucene.internal + public class WordlistLoader + { + + private const int INITIAL_CAPACITY = 16; + + /// + /// no instance + private WordlistLoader() + { + } + + // TODO: Add .NET overloads that accept a file name? Or at least a FileInfo object as was done in 3.0.3? + + /// + /// Reads lines from a Reader and adds every line as an entry to a CharArraySet (omitting + /// leading and trailing whitespace). Every line of the Reader should contain only + /// one word. The words need to be in lowercase if you make use of an + /// Analyzer which uses LowerCaseFilter (like StandardAnalyzer). + /// + /// Reader containing the wordlist + /// the to fill with the readers words + /// the given with the reader's words + public static CharArraySet GetWordSet(TextReader reader, CharArraySet result) + { + string word = null; + while ((word = reader.ReadLine()) != null) + { + result.Add(word.Trim()); + } + return result; + } + + /// + /// Reads lines from a Reader and adds every line as an entry to a CharArraySet (omitting + /// leading and trailing whitespace). Every line of the Reader should contain only + /// one word. The words need to be in lowercase if you make use of an + /// Analyzer which uses LowerCaseFilter (like StandardAnalyzer). + /// + /// Reader containing the wordlist + /// the + /// A with the reader's words + public static CharArraySet GetWordSet(TextReader reader, LuceneVersion matchVersion) + { + return GetWordSet(reader, new CharArraySet(matchVersion, INITIAL_CAPACITY, false)); + } + + /// + /// Reads lines from a Reader and adds every non-comment line as an entry to a CharArraySet (omitting + /// leading and trailing whitespace). Every line of the Reader should contain only + /// one word. The words need to be in lowercase if you make use of an + /// Analyzer which uses LowerCaseFilter (like StandardAnalyzer). + /// + /// Reader containing the wordlist + /// The string representing a comment. + /// the + /// A CharArraySet with the reader's words + public static CharArraySet GetWordSet(TextReader reader, string comment, LuceneVersion matchVersion) + { + return GetWordSet(reader, comment, new CharArraySet(matchVersion, INITIAL_CAPACITY, false)); + } + + /// + /// Reads lines from a Reader and adds every non-comment line as an entry to a CharArraySet (omitting + /// leading and trailing whitespace). Every line of the Reader should contain only + /// one word. The words need to be in lowercase if you make use of an + /// Analyzer which uses LowerCaseFilter (like StandardAnalyzer). + /// + /// Reader containing the wordlist + /// The string representing a comment. + /// the to fill with the readers words + /// the given with the reader's words + public static CharArraySet GetWordSet(TextReader reader, string comment, CharArraySet result) + { + string word = null; + while ((word = reader.ReadLine()) != null) + { + if (word.StartsWith(comment, StringComparison.Ordinal) == false) + { + result.Add(word.Trim()); + } + } + return result; + } + + + /// + /// Reads stopwords from a stopword list in Snowball format. + /// + /// The snowball format is the following: + ///
    + ///
  • Lines may contain multiple words separated by whitespace. + ///
  • The comment character is the vertical line (|). + ///
  • Lines may contain trailing comments. + ///
+ ///
+ ///
+ /// Reader containing a Snowball stopword list + /// the to fill with the readers words + /// the given with the reader's words + public static CharArraySet GetSnowballWordSet(TextReader reader, CharArraySet result) + { + + string line = null; + while ((line = reader.ReadLine()) != null) + { + int comment = line.IndexOf('|'); + if (comment >= 0) + { + line = line.Substring(0, comment); + } + string[] words = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(w => w.Trim()).ToArray(); + foreach (var word in words) + { + if (word.Length > 0) + { + result.Add(word); + } + } + } + + return result; + } + + /// + /// Reads stopwords from a stopword list in Snowball format. + /// + /// The snowball format is the following: + ///
    + ///
  • Lines may contain multiple words separated by whitespace. + ///
  • The comment character is the vertical line (|). + ///
  • Lines may contain trailing comments. + ///
+ ///
+ ///
+ /// TextReader containing a Snowball stopword list + /// the Lucene + /// A with the reader's words + public static CharArraySet GetSnowballWordSet(TextReader reader, LuceneVersion matchVersion) + { + return GetSnowballWordSet(reader, new CharArraySet(matchVersion, INITIAL_CAPACITY, false)); + } + + + /// + /// Reads a stem dictionary. Each line contains: + ///
word\tstem
+ /// (i.e. two tab separated words) + ///
+ /// stem dictionary that overrules the stemming algorithm + /// If there is a low-level I/O error. + public static CharArrayMap GetStemDict(TextReader reader, CharArrayMap result) + { + + string line; + while ((line = reader.ReadLine()) != null) + { + string[] wordstem = line.Split(new char[] { '\t' }, 2, StringSplitOptions.RemoveEmptyEntries); + result.Put(wordstem[0], wordstem[1]); + } + + return result; + } + + /// + /// Accesses a resource by name and returns the (non comment) lines containing + /// data using the given character encoding. + /// + /// + /// A comment line is any line that starts with the character "#" + /// + /// + /// a list of non-blank non-comment lines with whitespace trimmed + /// If there is a low-level I/O error. + public static IEnumerable GetLines(Stream stream, Encoding encoding) + { + List lines = new List(); + + using (StreamReader reader = new StreamReader(stream, encoding)) + { + string word; + while ((word = reader.ReadLine()) != null) + { + // skip initial bom marker + if (lines.Count == 0 && word.Length > 0 && word[0] == '\uFEFF') + { + word = word.Substring(1); + } + // skip comments + if (word.StartsWith("#", StringComparison.Ordinal)) + { + continue; + } + word = word.Trim(); + // skip blank lines + if (word.Length == 0) + { + continue; + } + lines.Add(word); + } + } + return lines; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index ef12712881..6e72141e8f 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -81,6 +81,7 @@ +
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestWordlistLoader.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestWordlistLoader.cs index a3e52351fc..b8131ed435 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestWordlistLoader.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestWordlistLoader.cs @@ -1,79 +1,80 @@ -namespace org.apache.lucene.analysis.util -{ - - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +using NUnit.Framework; +using Lucene.Net.Util; +using Lucene.Net.Analysis.Util; +using System.IO; +using System.Text; +namespace Lucene.Net.Analysis.Util +{ - using LuceneTestCase = org.apache.lucene.util.LuceneTestCase; + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - public class TestWordlistLoader : LuceneTestCase - { -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testWordlistLoading() throws java.io.IOException - public virtual void testWordlistLoading() - { - string s = "ONE\n two \nthree"; - CharArraySet wordSet1 = WordlistLoader.getWordSet(new StringReader(s), TEST_VERSION_CURRENT); - checkSet(wordSet1); - CharArraySet wordSet2 = WordlistLoader.getWordSet(new System.IO.StreamReader(new StringReader(s)), TEST_VERSION_CURRENT); - checkSet(wordSet2); - } + public class TestWordlistLoader : LuceneTestCase + { -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testComments() throws Exception - public virtual void testComments() - { - string s = "ONE\n two \nthree\n#comment"; - CharArraySet wordSet1 = WordlistLoader.getWordSet(new StringReader(s), "#", TEST_VERSION_CURRENT); - checkSet(wordSet1); - assertFalse(wordSet1.contains("#comment")); - assertFalse(wordSet1.contains("comment")); - } + [Test] + public virtual void TestWordlistLoading() + { + string s = "ONE\n two \nthree"; + CharArraySet wordSet1 = WordlistLoader.GetWordSet(new StringReader(s), TEST_VERSION_CURRENT); + CheckSet(wordSet1); + // TODO: Do we need to check for a "buffered reader" in .NET? + //CharArraySet wordSet2 = WordlistLoader.GetWordSet(new System.IO.StreamReader(new StringReader(s)), TEST_VERSION_CURRENT); + //CheckSet(wordSet2); + } + [Test] + public virtual void TestComments() + { + string s = "ONE\n two \nthree\n#comment"; + CharArraySet wordSet1 = WordlistLoader.GetWordSet(new StringReader(s), "#", TEST_VERSION_CURRENT); + CheckSet(wordSet1); + assertFalse(wordSet1.contains("#comment")); + assertFalse(wordSet1.contains("comment")); + } - private void checkSet(CharArraySet wordset) - { - assertEquals(3, wordset.size()); - assertTrue(wordset.contains("ONE")); // case is not modified - assertTrue(wordset.contains("two")); // surrounding whitespace is removed - assertTrue(wordset.contains("three")); - assertFalse(wordset.contains("four")); - } + private void CheckSet(CharArraySet wordset) + { + assertEquals(3, wordset.size()); + assertTrue(wordset.contains("ONE")); // case is not modified + assertTrue(wordset.contains("two")); // surrounding whitespace is removed + assertTrue(wordset.contains("three")); + assertFalse(wordset.contains("four")); + } - /// - /// Test stopwords in snowball format - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSnowballListLoading() throws java.io.IOException - public virtual void testSnowballListLoading() - { - string s = "|comment\n" + " |comment\n" + "\n" + " \t\n" + " |comment | comment\n" + "ONE\n" + " two \n" + " three four five \n" + "six seven | comment\n"; //multiple stopwords + comment - multiple stopwords - stopword with leading/trailing space - stopword, in uppercase - commented line with comment - line with only whitespace - blank line - commented line with leading whitespace - commented line - CharArraySet wordset = WordlistLoader.getSnowballWordSet(new StringReader(s), TEST_VERSION_CURRENT); - assertEquals(7, wordset.size()); - assertTrue(wordset.contains("ONE")); - assertTrue(wordset.contains("two")); - assertTrue(wordset.contains("three")); - assertTrue(wordset.contains("four")); - assertTrue(wordset.contains("five")); - assertTrue(wordset.contains("six")); - assertTrue(wordset.contains("seven")); - } - } + /// + /// Test stopwords in snowball format + /// + [Test] + public virtual void TestSnowballListLoading() + { + string s = "|comment\n" + " |comment\n" + "\n" + " \t\n" + " |comment | comment\n" + "ONE\n" + " two \n" + " three four five \n" + "six seven | comment\n"; //multiple stopwords + comment - multiple stopwords - stopword with leading/trailing space - stopword, in uppercase - commented line with comment - line with only whitespace - blank line - commented line with leading whitespace - commented line + CharArraySet wordset = WordlistLoader.GetSnowballWordSet(new StringReader(s), TEST_VERSION_CURRENT); + assertEquals(7, wordset.size()); + assertTrue(wordset.contains("ONE")); + assertTrue(wordset.contains("two")); + assertTrue(wordset.contains("three")); + assertTrue(wordset.contains("four")); + assertTrue(wordset.contains("five")); + assertTrue(wordset.contains("six")); + assertTrue(wordset.contains("seven")); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index f6a058fbfe..47fd2faf45 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -17,7 +17,7 @@ full false bin\Debug\ - DEBUG;TRACE + TRACE prompt 4 x86 @@ -57,6 +57,7 @@ + From 09bcbbc4fa4ec73efcf0a2147251350ff84dd453 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Wed, 3 Aug 2016 17:07:06 +0700 Subject: [PATCH 006/141] Ported StopFilter + tests (except those that depend on StopAnalyzer). --- .../Analysis/Core/StopFilter.cs | 20 +- .../Analysis/Util/FilteringTokenFilter.cs | 8 +- .../Lucene.Net.Analysis.Common.csproj | 1 + .../Analysis/Core/TestStopFilter.cs | 465 +++++++++--------- .../Lucene.Net.Tests.Analysis.Common.csproj | 1 + 5 files changed, 243 insertions(+), 252 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs index ba398d83c9..cee6ad3844 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs @@ -1,9 +1,9 @@ -using System.Collections.Generic; -using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Tokenattributes; using Lucene.Net.Analysis.Util; using Lucene.Net.Support; using Lucene.Net.Util; -using Reader = System.IO.TextReader; +using System.Collections.Generic; +using System.Linq; namespace Lucene.Net.Analysis.Core { @@ -71,9 +71,9 @@ public StopFilter(LuceneVersion matchVersion, TokenStream @in, CharArraySet stop /// Lucene version to enable correct Unicode 4.0 behavior in the returned set if Version > 3.0 /// An array of stopwords /// - public static CharArraySet makeStopSet(LuceneVersion matchVersion, params string[] stopWords) + public static CharArraySet MakeStopSet(LuceneVersion matchVersion, params string[] stopWords) { - return makeStopSet(matchVersion, stopWords, false); + return MakeStopSet(matchVersion, stopWords, false); } /// @@ -86,9 +86,9 @@ public static CharArraySet makeStopSet(LuceneVersion matchVersion, params string /// A List of Strings or char[] or any other toString()-able list representing the stopwords /// A Set () containing the words /// - public static CharArraySet MakeStopSet(LuceneVersion matchVersion, IList stopWords) + public static CharArraySet MakeStopSet(LuceneVersion matchVersion, IEnumerable stopWords) { - return makeStopSet(matchVersion, stopWords, false); + return MakeStopSet(matchVersion, stopWords, false); } /// @@ -111,10 +111,10 @@ public static CharArraySet MakeStopSet(LuceneVersion matchVersion, string[] stop /// A List of Strings or char[] or any other toString()-able list representing the stopwords /// if true, all words are lower cased first /// A Set () containing the words - public static CharArraySet MakeStopSet(LuceneVersion matchVersion, IList stopWords, bool ignoreCase) + public static CharArraySet MakeStopSet(LuceneVersion matchVersion, IEnumerable stopWords, bool ignoreCase) { - var stopSet = new CharArraySet(matchVersion, stopWords.Count, ignoreCase); - stopSet.AddAll(stopWords); + var stopSet = new CharArraySet(matchVersion, stopWords.Count(), ignoreCase); + stopSet.AddAll(stopWords.Cast().ToArray()); return stopSet; } diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/FilteringTokenFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/FilteringTokenFilter.cs index 1655eafe2d..cc9a9f9657 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/FilteringTokenFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/FilteringTokenFilter.cs @@ -1,10 +1,9 @@ -using System; -using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Tokenattributes; using Lucene.Net.Util; +using System; namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -21,6 +20,7 @@ namespace Lucene.Net.Analysis.Util * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Abstract base class for TokenFilters that may remove tokens. /// You have to implement and return a boolean if the current @@ -58,7 +58,6 @@ private static void CheckPositionIncrement(LuceneVersion version, bool enablePos public FilteringTokenFilter(Lucene.Net.Util.LuceneVersion version, bool enablePositionIncrements, TokenStream input) : this(version, input) { - posIncrAtt = AddAttribute(); CheckPositionIncrement(version, enablePositionIncrements); this.enablePositionIncrements = enablePositionIncrements; } @@ -70,6 +69,7 @@ public FilteringTokenFilter(Lucene.Net.Util.LuceneVersion version, bool enablePo public FilteringTokenFilter(LuceneVersion version, TokenStream @in) : base(@in) { + posIncrAtt = AddAttribute(); this.version = version; this.enablePositionIncrements = true; } diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index 6e72141e8f..f84f28878c 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -51,6 +51,7 @@ + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs index b1923ed4e9..ee866be32e 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs @@ -1,243 +1,232 @@ -using System; +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using NUnit.Framework; +using System; using System.Collections.Generic; +using System.IO; using System.Text; +using Version = Lucene.Net.Util.LuceneVersion; -namespace org.apache.lucene.analysis.core +namespace Lucene.Net.Analysis.Core { - - /// - /// Copyright 2005 The Apache Software Foundation - /// - /// Licensed under the Apache License, Version 2.0 (the "License"); - /// you may not use this file except in compliance with the License. - /// You may obtain a copy of the License at - /// - /// http://www.apache.org/licenses/LICENSE-2.0 - /// - /// Unless required by applicable law or agreed to in writing, software - /// distributed under the License is distributed on an "AS IS" BASIS, - /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - /// See the License for the specific language governing permissions and - /// limitations under the License. - /// - - - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using PositionIncrementAttribute = org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using English = org.apache.lucene.util.English; - using Version = org.apache.lucene.util.Version; - - - public class TestStopFilter : BaseTokenStreamTestCase - { - - // other StopFilter functionality is already tested by TestStopAnalyzer - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testExactCase() throws java.io.IOException - public virtual void testExactCase() - { - StringReader reader = new StringReader("Now is The Time"); - CharArraySet stopWords = new CharArraySet(TEST_VERSION_CURRENT, asSet("is", "the", "Time"), false); - TokenStream stream = new StopFilter(TEST_VERSION_CURRENT, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopWords); - assertTokenStreamContents(stream, new string[] {"Now", "The"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStopFilt() throws java.io.IOException - public virtual void testStopFilt() - { - StringReader reader = new StringReader("Now is The Time"); - string[] stopWords = new string[] {"is", "the", "Time"}; - CharArraySet stopSet = StopFilter.makeStopSet(TEST_VERSION_CURRENT, stopWords); - TokenStream stream = new StopFilter(TEST_VERSION_CURRENT, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopSet); - assertTokenStreamContents(stream, new string[] {"Now", "The"}); - } - - /// - /// Test Position increments applied by StopFilter with and without enabling this option. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStopPositons() throws java.io.IOException - public virtual void testStopPositons() - { - StringBuilder sb = new StringBuilder(); - List a = new List(); - for (int i = 0; i < 20; i++) - { - string w = English.intToEnglish(i).trim(); - sb.Append(w).Append(" "); - if (i % 3 != 0) - { - a.Add(w); - } - } - log(sb.ToString()); - string[] stopWords = a.ToArray(); - for (int i = 0; i < a.Count; i++) - { - log("Stop: " + stopWords[i]); - } - CharArraySet stopSet = StopFilter.makeStopSet(TEST_VERSION_CURRENT, stopWords); - // with increments - StringReader reader = new StringReader(sb.ToString()); - StopFilter stpf = new StopFilter(Version.LUCENE_40, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopSet); - doTestStopPositons(stpf,true); - // without increments - reader = new StringReader(sb.ToString()); - stpf = new StopFilter(Version.LUCENE_43, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopSet); - doTestStopPositons(stpf,false); - // with increments, concatenating two stop filters - List a0 = new List(); - List a1 = new List(); - for (int i = 0; i < a.Count; i++) - { - if (i % 2 == 0) - { - a0.Add(a[i]); - } - else - { - a1.Add(a[i]); - } - } - string[] stopWords0 = a0.ToArray(); - for (int i = 0; i < a0.Count; i++) - { - log("Stop0: " + stopWords0[i]); - } - string[] stopWords1 = a1.ToArray(); - for (int i = 0; i < a1.Count; i++) - { - log("Stop1: " + stopWords1[i]); - } - CharArraySet stopSet0 = StopFilter.makeStopSet(TEST_VERSION_CURRENT, stopWords0); - CharArraySet stopSet1 = StopFilter.makeStopSet(TEST_VERSION_CURRENT, stopWords1); - reader = new StringReader(sb.ToString()); - StopFilter stpf0 = new StopFilter(TEST_VERSION_CURRENT, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopSet0); // first part of the set - stpf0.EnablePositionIncrements = true; - StopFilter stpf01 = new StopFilter(TEST_VERSION_CURRENT, stpf0, stopSet1); // two stop filters concatenated! - doTestStopPositons(stpf01,true); - } - - // LUCENE-3849: make sure after .end() we see the "ending" posInc -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEndStopword() throws Exception - public virtual void testEndStopword() - { - CharArraySet stopSet = StopFilter.makeStopSet(TEST_VERSION_CURRENT, "of"); - StopFilter stpf = new StopFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("test of"), MockTokenizer.WHITESPACE, false), stopSet); - assertTokenStreamContents(stpf, new string[] {"test"}, new int[] {0}, new int[] {4}, null, new int[] {1}, null, 7, 1, null, true); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private void doTestStopPositons(StopFilter stpf, boolean enableIcrements) throws java.io.IOException - private void doTestStopPositons(StopFilter stpf, bool enableIcrements) - { - log("---> test with enable-increments-" + (enableIcrements?"enabled":"disabled")); - stpf.EnablePositionIncrements = enableIcrements; - CharTermAttribute termAtt = stpf.getAttribute(typeof(CharTermAttribute)); - PositionIncrementAttribute posIncrAtt = stpf.getAttribute(typeof(PositionIncrementAttribute)); - stpf.reset(); - for (int i = 0; i < 20; i += 3) - { - assertTrue(stpf.incrementToken()); - log("Token " + i + ": " + stpf); - string w = English.intToEnglish(i).trim(); - assertEquals("expecting token " + i + " to be " + w,w,termAtt.ToString()); - assertEquals("all but first token must have position increment of 3",enableIcrements?(i == 0?1:3):1,posIncrAtt.PositionIncrement); - } - assertFalse(stpf.incrementToken()); - stpf.end(); - stpf.close(); - } - - // print debug info depending on VERBOSE - private static void log(string s) - { - if (VERBOSE) - { - Console.WriteLine(s); - } - } - - // stupid filter that inserts synonym of 'hte' for 'the' - private class MockSynonymFilter : TokenFilter - { - private readonly TestStopFilter outerInstance; - - internal State bufferedState; - internal CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - internal PositionIncrementAttribute posIncAtt = addAttribute(typeof(PositionIncrementAttribute)); - - internal MockSynonymFilter(TestStopFilter outerInstance, TokenStream input) : base(input) - { - this.outerInstance = outerInstance; - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (bufferedState != null) - { - restoreState(bufferedState); - posIncAtt.PositionIncrement = 0; - termAtt.setEmpty().append("hte"); - bufferedState = null; - return true; - } - else if (input.incrementToken()) - { - if (termAtt.ToString().Equals("the")) - { - bufferedState = captureState(); - } - return true; - } - else - { - return false; - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void reset() throws java.io.IOException - public override void reset() - { - base.reset(); - bufferedState = null; - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFirstPosInc() throws Exception - public virtual void testFirstPosInc() - { - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this); - - assertAnalyzesTo(analyzer, "the quick brown fox", new string[] {"hte", "quick", "brown", "fox"}, new int[] {1, 1, 1, 1}); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestStopFilter outerInstance; - - public AnalyzerAnonymousInnerClassHelper(TestStopFilter outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - TokenFilter filter = new MockSynonymFilter(outerInstance, tokenizer); - StopFilter stopfilter = new StopFilter(Version.LUCENE_43, filter, StopAnalyzer.ENGLISH_STOP_WORDS_SET); - stopfilter.EnablePositionIncrements = false; - return new TokenStreamComponents(tokenizer, stopfilter); - } - } - } - + /// + /// Copyright 2005 The Apache Software Foundation + /// + /// Licensed under the Apache License, Version 2.0 (the "License"); + /// you may not use this file except in compliance with the License. + /// You may obtain a copy of the License at + /// + /// http://www.apache.org/licenses/LICENSE-2.0 + /// + /// Unless required by applicable law or agreed to in writing, software + /// distributed under the License is distributed on an "AS IS" BASIS, + /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + /// See the License for the specific language governing permissions and + /// limitations under the License. + /// + + public class TestStopFilter : BaseTokenStreamTestCase + { + + // other StopFilter functionality is already tested by TestStopAnalyzer + + [Test] + public virtual void TestExactCase() + { + StringReader reader = new StringReader("Now is The Time"); + CharArraySet stopWords = new CharArraySet(TEST_VERSION_CURRENT, new string[] { "is", "the", "Time" }, false); + TokenStream stream = new StopFilter(TEST_VERSION_CURRENT, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopWords); + AssertTokenStreamContents(stream, new string[] { "Now", "The" }); + } + + [Test] + public virtual void TestStopFilt() + { + StringReader reader = new StringReader("Now is The Time"); + string[] stopWords = new string[] { "is", "the", "Time" }; + CharArraySet stopSet = StopFilter.MakeStopSet(TEST_VERSION_CURRENT, stopWords); + TokenStream stream = new StopFilter(TEST_VERSION_CURRENT, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopSet); + AssertTokenStreamContents(stream, new string[] { "Now", "The" }); + } + + /// + /// Test Position increments applied by StopFilter with and without enabling this option. + /// + [Test] + public virtual void TestStopPositons() + { + StringBuilder sb = new StringBuilder(); + List a = new List(); + for (int i = 0; i < 20; i++) + { + string w = English.IntToEnglish(i).Trim(); + sb.Append(w).Append(" "); + if (i % 3 != 0) + { + a.Add(w); + } + } + log(sb.ToString()); + string[] stopWords = a.ToArray(); + for (int i = 0; i < a.Count; i++) + { + log("Stop: " + stopWords[i]); + } + CharArraySet stopSet = StopFilter.MakeStopSet(TEST_VERSION_CURRENT, stopWords); + // with increments + StringReader reader = new StringReader(sb.ToString()); + StopFilter stpf = new StopFilter(Version.LUCENE_40, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopSet); + DoTestStopPositons(stpf, true); + // without increments + reader = new StringReader(sb.ToString()); + stpf = new StopFilter(Version.LUCENE_43, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopSet); + DoTestStopPositons(stpf, false); + // with increments, concatenating two stop filters + List a0 = new List(); + List a1 = new List(); + for (int i = 0; i < a.Count; i++) + { + if (i % 2 == 0) + { + a0.Add(a[i]); + } + else + { + a1.Add(a[i]); + } + } + string[] stopWords0 = a0.ToArray(); + for (int i = 0; i < a0.Count; i++) + { + log("Stop0: " + stopWords0[i]); + } + string[] stopWords1 = a1.ToArray(); + for (int i = 0; i < a1.Count; i++) + { + log("Stop1: " + stopWords1[i]); + } + CharArraySet stopSet0 = StopFilter.MakeStopSet(TEST_VERSION_CURRENT, stopWords0); + CharArraySet stopSet1 = StopFilter.MakeStopSet(TEST_VERSION_CURRENT, stopWords1); + reader = new StringReader(sb.ToString()); + StopFilter stpf0 = new StopFilter(TEST_VERSION_CURRENT, new MockTokenizer(reader, MockTokenizer.WHITESPACE, false), stopSet0); // first part of the set + stpf0.EnablePositionIncrements = true; + StopFilter stpf01 = new StopFilter(TEST_VERSION_CURRENT, stpf0, stopSet1); // two stop filters concatenated! + DoTestStopPositons(stpf01, true); + } + + // LUCENE-3849: make sure after .end() we see the "ending" posInc + [Test] + public virtual void TestEndStopword() + { + CharArraySet stopSet = StopFilter.MakeStopSet(TEST_VERSION_CURRENT, "of"); + StopFilter stpf = new StopFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("test of"), MockTokenizer.WHITESPACE, false), stopSet); + AssertTokenStreamContents(stpf, new string[] { "test" }, new int[] { 0 }, new int[] { 4 }, null, new int[] { 1 }, null, 7, 1, null, true); + } + + private void DoTestStopPositons(StopFilter stpf, bool enableIcrements) + { + log("---> test with enable-increments-" + (enableIcrements ? "enabled" : "disabled")); + stpf.EnablePositionIncrements = enableIcrements; + ICharTermAttribute termAtt = stpf.GetAttribute(); + IPositionIncrementAttribute posIncrAtt = stpf.GetAttribute(); + stpf.Reset(); + for (int i = 0; i < 20; i += 3) + { + assertTrue(stpf.IncrementToken()); + log("Token " + i + ": " + stpf); + string w = English.IntToEnglish(i).Trim(); + assertEquals("expecting token " + i + " to be " + w, w, termAtt.ToString()); + assertEquals("all but first token must have position increment of 3", enableIcrements ? (i == 0 ? 1 : 3) : 1, posIncrAtt.PositionIncrement); + } + assertFalse(stpf.IncrementToken()); + stpf.End(); + stpf.Dispose(); + } + + // print debug info depending on VERBOSE + private static void log(string s) + { + if (VERBOSE) + { + Console.WriteLine(s); + } + } + + // stupid filter that inserts synonym of 'hte' for 'the' + private class MockSynonymFilter : TokenFilter + { + private readonly TestStopFilter outerInstance; + + internal State bufferedState; + internal ICharTermAttribute termAtt; + internal IPositionIncrementAttribute posIncAtt; + + internal MockSynonymFilter(TestStopFilter outerInstance, TokenStream input) + : base(input) + { + this.outerInstance = outerInstance; + termAtt = AddAttribute(); + posIncAtt = AddAttribute(); + } + + public override bool IncrementToken() + { + if (bufferedState != null) + { + RestoreState(bufferedState); + posIncAtt.PositionIncrement = 0; + termAtt.SetEmpty().Append("hte"); + bufferedState = null; + return true; + } + else if (input.IncrementToken()) + { + if (termAtt.ToString().Equals("the")) + { + bufferedState = CaptureState(); + } + return true; + } + else + { + return false; + } + } + + public override void Reset() + { + base.Reset(); + bufferedState = null; + } + } + + [Test] + public virtual void TestFirstPosInc() + { + Assert.Fail("Depends on StopAnalyzer, not currently implemented"); + //Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this); + + //AssertAnalyzesTo(analyzer, "the quick brown fox", new string[] { "hte", "quick", "brown", "fox" }, new int[] { 1, 1, 1, 1 }); + } + + //private class AnalyzerAnonymousInnerClassHelper : Analyzer + //{ + // private readonly TestStopFilter outerInstance; + + // public AnalyzerAnonymousInnerClassHelper(TestStopFilter outerInstance) + // { + // this.outerInstance = outerInstance; + // } + + // protected internal override TokenStreamComponents createComponents(string fieldName, TextReader reader) + // { + // Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + // TokenFilter filter = new MockSynonymFilter(outerInstance, tokenizer); + // StopFilter stopfilter = new StopFilter(Version.LUCENE_43, filter, StopAnalyzer.ENGLISH_STOP_WORDS_SET); + // stopfilter.EnablePositionIncrements = false; + // return new TokenStreamComponents(tokenizer, stopfilter); + // } + //} + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 47fd2faf45..0bd0bee6fa 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -50,6 +50,7 @@ + From b97c804c7a40dc271fa78070ffc20605eae1dd12 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Wed, 3 Aug 2016 17:20:00 +0700 Subject: [PATCH 007/141] Stop filter cleanup --- src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs index cee6ad3844..2896988508 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs @@ -7,7 +7,6 @@ namespace Lucene.Net.Analysis.Core { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -24,6 +23,7 @@ namespace Lucene.Net.Analysis.Core * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Removes stop words from a token stream. /// @@ -125,7 +125,5 @@ protected internal override bool Accept() { return !stopWords.Contains(termAtt.Buffer(), 0, termAtt.Length); } - } - } \ No newline at end of file From 1dd68c344cce2161af37ff380027b37fc0c737b0 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Thu, 4 Aug 2016 00:18:37 +0700 Subject: [PATCH 008/141] Ported Analysis.Core.StopAnalzer + tests. --- .../Analysis/Core/StopAnalyzer.cs | 175 +++++------ .../Analysis/Util/StopwordAnalyzerBase.cs | 289 +++++++++--------- .../Lucene.Net.Analysis.Common.csproj | 2 + .../Analysis/Core/TestStopAnalyzer.cs | 249 +++++++-------- .../Analysis/Core/TestStopFilter.cs | 45 ++- .../Lucene.Net.Tests.Analysis.Common.csproj | 3 + 6 files changed, 381 insertions(+), 382 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopAnalyzer.cs index 5c2f34a4d8..f7c0cc4ac7 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopAnalyzer.cs @@ -6,99 +6,102 @@ namespace Lucene.Net.Analysis.Core { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ /// - /// Filters with and . - /// - /// - /// You must specify the required - /// compatibility when creating StopAnalyzer: - ///
    - ///
  • As of 3.1, StopFilter correctly handles Unicode 4.0 - /// supplementary characters in stopwords - ///
  • As of 2.9, position increments are preserved - ///
- ///
- ///
+ /// Filters with and . + /// + /// + /// You must specify the required + /// compatibility when creating StopAnalyzer: + ///
    + ///
  • As of 3.1, StopFilter correctly handles Unicode 4.0 + /// supplementary characters in stopwords + ///
  • As of 2.9, position increments are preserved + ///
+ ///
+ ///
+ public sealed class StopAnalyzer : StopwordAnalyzerBase + { - public sealed class StopAnalyzer : StopwordAnalyzerBase - { + /// + /// An unmodifiable set containing some common English words that are not usually useful + /// for searching. + /// + public static readonly CharArraySet ENGLISH_STOP_WORDS_SET; - /// - /// An unmodifiable set containing some common English words that are not usually useful - /// for searching. - /// - public static readonly CharArraySet ENGLISH_STOP_WORDS_SET; + static StopAnalyzer() + { + IList stopWords = Arrays.AsList("a", "an", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"); + var stopSet = new CharArraySet(LuceneVersion.LUCENE_CURRENT, stopWords, false); + ENGLISH_STOP_WORDS_SET = CharArraySet.UnmodifiableSet(stopSet); + } - static StopAnalyzer() - { - IList stopWords = Arrays.AsList("a", "an", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"); - var stopSet = new CharArraySet(LuceneVersion.LUCENE_CURRENT, stopWords, false); - ENGLISH_STOP_WORDS_SET = CharArraySet.UnmodifiableSet(stopSet); - } + /// + /// Builds an analyzer which removes words in + /// . + /// See above + public StopAnalyzer(LuceneVersion matchVersion) + : this(matchVersion, ENGLISH_STOP_WORDS_SET) + { + } - /// - /// Builds an analyzer which removes words in - /// . - /// See above - public StopAnalyzer(LuceneVersion matchVersion) : this(matchVersion, ENGLISH_STOP_WORDS_SET) - { - } + /// + /// Builds an analyzer with the stop words from the given set. + /// See above + /// Set of stop words + public StopAnalyzer(LuceneVersion matchVersion, CharArraySet stopWords) + : base(matchVersion, stopWords) + { + } - /// - /// Builds an analyzer with the stop words from the given set. - /// See above - /// Set of stop words - public StopAnalyzer(LuceneVersion matchVersion, CharArraySet stopWords) : base(matchVersion, stopWords) - { - } + /// + /// Builds an analyzer with the stop words from the given file. + /// + /// See above + /// File to load stop words from + public StopAnalyzer(LuceneVersion matchVersion, FileInfo stopwordsFile) + : this(matchVersion, LoadStopwordSet(stopwordsFile, matchVersion)) + { + } - /// - /// Builds an analyzer with the stop words from the given file. - /// - /// See above - /// File to load stop words from - public StopAnalyzer(LuceneVersion matchVersion, File stopwordsFile) : this(matchVersion, loadStopwordSet(stopwordsFile, matchVersion)) - { - } + /// + /// Builds an analyzer with the stop words from the given reader. + /// + /// See above + /// Reader to load stop words from + public StopAnalyzer(LuceneVersion matchVersion, TextReader stopwords) + : this(matchVersion, LoadStopwordSet(stopwords, matchVersion)) + { + } - /// - /// Builds an analyzer with the stop words from the given reader. - /// - /// See above - /// Reader to load stop words from - public StopAnalyzer(LuceneVersion matchVersion, TextReader stopwords) : this(matchVersion, loadStopwordSet(stopwords, matchVersion)) - { - } - - /// - /// Creates - /// - /// used to tokenize all the text in the provided . - /// - /// - /// built from a filtered with - /// - public override Analyzer.TokenStreamComponents CreateComponents(string fieldName, TextReader reader) - { - Tokenizer source = new LowerCaseTokenizer(matchVersion, reader); - return new Analyzer.TokenStreamComponents(source, new StopFilter(matchVersion, source, stopwords)); - } - } + /// + /// Creates + /// + /// used to tokenize all the text in the provided . + /// + /// + /// built from a filtered with + /// + public override Analyzer.TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer source = new LowerCaseTokenizer(matchVersion, reader); + return new Analyzer.TokenStreamComponents(source, new StopFilter(matchVersion, source, stopwords)); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/StopwordAnalyzerBase.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/StopwordAnalyzerBase.cs index 5462c94798..2a2c891883 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/StopwordAnalyzerBase.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/StopwordAnalyzerBase.cs @@ -1,158 +1,163 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -using System; +using System; using System.IO; +using System.Text; using Lucene.Net.Util; -using Reader = System.IO.TextReader; -using Version = Lucene.Net.Util.LuceneVersion; namespace Lucene.Net.Analysis.Util { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /// - /// Base class for Analyzers that need to make use of stopword sets. - /// - /// - public abstract class StopwordAnalyzerBase : Analyzer - { + /// Base class for Analyzers that need to make use of stopword sets. + /// + ///
+ public abstract class StopwordAnalyzerBase : Analyzer + { + + /// + /// An immutable stopword set + /// + protected internal readonly CharArraySet stopwords; - /// - /// An immutable stopword set - /// - protected internal readonly CharArraySet stopwords; + protected internal readonly LuceneVersion matchVersion; - protected internal readonly Version matchVersion; + /// + /// Returns the analyzer's stopword set or an empty set if the analyzer has no + /// stopwords + /// + /// the analyzer's stopword set or an empty set if the analyzer has no + /// stopwords + public virtual CharArraySet StopwordSet + { + get + { + return stopwords; + } + } - /// - /// Returns the analyzer's stopword set or an empty set if the analyzer has no - /// stopwords - /// - /// the analyzer's stopword set or an empty set if the analyzer has no - /// stopwords - public virtual CharArraySet StopwordSet - { - get - { - return stopwords; - } - } + /// + /// Creates a new instance initialized with the given stopword set + /// + /// + /// the Lucene version for cross version compatibility + /// + /// the analyzer's stopword set + protected internal StopwordAnalyzerBase(LuceneVersion version, CharArraySet stopwords) + { + matchVersion = version; + // analyzers should use char array set for stopwords! + this.stopwords = stopwords == null ? CharArraySet.EMPTY_SET : CharArraySet.UnmodifiableSet(CharArraySet.Copy(version, stopwords)); + } - /// - /// Creates a new instance initialized with the given stopword set - /// - /// - /// the Lucene version for cross version compatibility - /// - /// the analyzer's stopword set - protected internal StopwordAnalyzerBase(Version version, CharArraySet stopwords) - { - matchVersion = version; - // analyzers should use char array set for stopwords! - this.stopwords = stopwords == null ? CharArraySet.EMPTY_SET : CharArraySet.UnmodifiableSet(CharArraySet.Copy(version, stopwords)); - } + /// + /// Creates a new Analyzer with an empty stopword set + /// + /// + /// the Lucene version for cross version compatibility + protected internal StopwordAnalyzerBase(LuceneVersion version) + : this(version, null) + { + } - /// - /// Creates a new Analyzer with an empty stopword set - /// - /// - /// the Lucene version for cross version compatibility - protected internal StopwordAnalyzerBase(Version version) : this(version, null) - { - } + // TODO: If this works, need to update the documentation for the .NET version of the story. - /// - /// Creates a CharArraySet from a file resource associated with a class. (See - /// ). - /// - /// - /// true if the set should ignore the case of the - /// stopwords, otherwise false - /// - /// a class that is associated with the given stopwordResource - /// - /// name of the resource file associated with the given class - /// - /// comment string to ignore in the stopword file - /// a CharArraySet containing the distinct stopwords from the given - /// file - /// - /// if loading the stopwords throws an - protected internal static CharArraySet LoadStopwordSet(bool ignoreCase, Type aClass, string resource, string comment) - { - TextReader reader = null; - try - { - reader = IOUtils.GetDecodingReader(aClass.GetResourceAsStream(resource), StandardCharsets.UTF_8); - return WordlistLoader.GetWordSet(reader, comment, new CharArraySet(Version.LUCENE_CURRENT, 16, ignoreCase)); - } - finally - { - IOUtils.Close(reader); - } - } + /// + /// Creates a CharArraySet from a file resource associated with a class. (See + /// ). + /// + /// + /// true if the set should ignore the case of the + /// stopwords, otherwise false + /// + /// a class that is associated with the given stopwordResource + /// + /// name of the resource file associated with the given class + /// + /// comment string to ignore in the stopword file + /// a CharArraySet containing the distinct stopwords from the given + /// file + /// + /// if loading the stopwords throws an + protected internal static CharArraySet LoadStopwordSet(bool ignoreCase, Type aClass, string resource, string comment) + { + TextReader reader = null; + try + { + //reader = IOUtils.GetDecodingReader(aClass.GetResourceAsStream(resource), StandardCharsets.UTF_8); + reader = IOUtils.GetDecodingReader(aClass.Assembly.GetManifestResourceStream(resource), Encoding.UTF8); + return WordlistLoader.GetWordSet(reader, comment, new CharArraySet(LuceneVersion.LUCENE_CURRENT, 16, ignoreCase)); + } + finally + { + IOUtils.Close(reader); + } + } - /// - /// Creates a CharArraySet from a file. - /// - /// - /// the stopwords file to load - /// - /// - /// the Lucene version for cross version compatibility - /// a CharArraySet containing the distinct stopwords from the given - /// file - /// - /// if loading the stopwords throws an - protected internal static CharArraySet LoadStopwordSet(File stopwords, Version matchVersion) - { - Reader reader = null; - try - { - reader = IOUtils.GetDecodingReader(stopwords, StandardCharsets.UTF_8); - return WordlistLoader.GetWordSet(reader, matchVersion); - } - finally - { - IOUtils.Close(reader); - } - } + /// + /// Creates a CharArraySet from a file. + /// + /// + /// the stopwords file to load + /// + /// + /// the Lucene version for cross version compatibility + /// a CharArraySet containing the distinct stopwords from the given + /// file + /// + /// if loading the stopwords throws an + protected internal static CharArraySet LoadStopwordSet(FileInfo stopwords, LuceneVersion matchVersion) + { + TextReader reader = null; + try + { + reader = IOUtils.GetDecodingReader(stopwords, Encoding.UTF8); + return WordlistLoader.GetWordSet(reader, matchVersion); + } + finally + { + IOUtils.Close(reader); + } + } - /// - /// Creates a CharArraySet from a file. - /// - /// - /// the stopwords reader to load - /// - /// - /// the Lucene version for cross version compatibility - /// a CharArraySet containing the distinct stopwords from the given - /// reader - /// - /// if loading the stopwords throws an - protected internal static CharArraySet loadStopwordSet(Reader stopwords, Version matchVersion) - { - try - { - return WordlistLoader.GetWordSet(stopwords, matchVersion); - } - finally - { - IOUtils.Close(stopwords); - } - } - } + /// + /// Creates a CharArraySet from a file. + /// + /// + /// the stopwords reader to load + /// + /// + /// the Lucene version for cross version compatibility + /// a CharArraySet containing the distinct stopwords from the given + /// reader + /// + /// if loading the stopwords throws an + protected internal static CharArraySet LoadStopwordSet(TextReader stopwords, LuceneVersion matchVersion) + { + try + { + return WordlistLoader.GetWordSet(stopwords, matchVersion); + } + finally + { + // TODO: Should we really close the reader that is passed in? + IOUtils.Close(stopwords); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index f84f28878c..ae07f6c71d 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -51,6 +51,7 @@ + @@ -82,6 +83,7 @@ + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopAnalyzer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopAnalyzer.cs index 433692fd41..6adbbe7f58 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopAnalyzer.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopAnalyzer.cs @@ -1,134 +1,121 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using NUnit.Framework; +using System.Collections.Generic; -namespace org.apache.lucene.analysis.core +namespace Lucene.Net.Analysis.Core { - - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - using PositionIncrementAttribute = org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using IOUtils = org.apache.lucene.util.IOUtils; - using Version = org.apache.lucene.util.Version; - - - public class TestStopAnalyzer : BaseTokenStreamTestCase - { - - private StopAnalyzer stop = new StopAnalyzer(TEST_VERSION_CURRENT); - private ISet inValidTokens = new HashSet(); - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void setUp() throws Exception - public override void setUp() - { - base.setUp(); - -//JAVA TO C# CONVERTER TODO TASK: Java wildcard generics are not converted to .NET: -//ORIGINAL LINE: java.util.Iterator it = StopAnalyzer.ENGLISH_STOP_WORDS_SET.iterator(); - IEnumerator it = StopAnalyzer.ENGLISH_STOP_WORDS_SET.GetEnumerator(); - while (it.MoveNext()) - { - inValidTokens.Add(it.Current); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDefaults() throws java.io.IOException - public virtual void testDefaults() - { - assertTrue(stop != null); - TokenStream stream = stop.tokenStream("test", "This is a test of the english stop analyzer"); - try - { - assertTrue(stream != null); - CharTermAttribute termAtt = stream.getAttribute(typeof(CharTermAttribute)); - stream.reset(); - - while (stream.incrementToken()) - { - assertFalse(inValidTokens.Contains(termAtt.ToString())); - } - stream.end(); - } - finally - { - IOUtils.closeWhileHandlingException(stream); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStopList() throws java.io.IOException - public virtual void testStopList() - { - CharArraySet stopWordsSet = new CharArraySet(TEST_VERSION_CURRENT, asSet("good", "test", "analyzer"), false); - StopAnalyzer newStop = new StopAnalyzer(TEST_VERSION_CURRENT, stopWordsSet); - TokenStream stream = newStop.tokenStream("test", "This is a good test of the english stop analyzer"); - try - { - assertNotNull(stream); - CharTermAttribute termAtt = stream.getAttribute(typeof(CharTermAttribute)); - - stream.reset(); - while (stream.incrementToken()) - { - string text = termAtt.ToString(); - assertFalse(stopWordsSet.contains(text)); - } - stream.end(); - } - finally - { - IOUtils.closeWhileHandlingException(stream); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStopListPositions() throws java.io.IOException - public virtual void testStopListPositions() - { - CharArraySet stopWordsSet = new CharArraySet(TEST_VERSION_CURRENT, asSet("good", "test", "analyzer"), false); - StopAnalyzer newStop = new StopAnalyzer(TEST_VERSION_CURRENT, stopWordsSet); - string s = "This is a good test of the english stop analyzer with positions"; - int[] expectedIncr = new int[] {1, 1, 1, 3, 1, 1, 1, 2, 1}; - TokenStream stream = newStop.tokenStream("test", s); - try - { - assertNotNull(stream); - int i = 0; - CharTermAttribute termAtt = stream.getAttribute(typeof(CharTermAttribute)); - PositionIncrementAttribute posIncrAtt = stream.addAttribute(typeof(PositionIncrementAttribute)); - - stream.reset(); - while (stream.incrementToken()) - { - string text = termAtt.ToString(); - assertFalse(stopWordsSet.contains(text)); - assertEquals(expectedIncr[i++],posIncrAtt.PositionIncrement); - } - stream.end(); - } - finally - { - IOUtils.closeWhileHandlingException(stream); - } - } - - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + public class TestStopAnalyzer : BaseTokenStreamTestCase + { + + private StopAnalyzer stop = new StopAnalyzer(TEST_VERSION_CURRENT); + private ISet inValidTokens = new HashSet(); + + public override void SetUp() + { + base.SetUp(); + + var it = StopAnalyzer.ENGLISH_STOP_WORDS_SET.GetEnumerator(); + while (it.MoveNext()) + { + inValidTokens.Add(it.Current); + } + } + + [Test] + public virtual void TestDefaults() + { + assertTrue(stop != null); + TokenStream stream = stop.TokenStream("test", "This is a test of the english stop analyzer"); + try + { + assertTrue(stream != null); + ICharTermAttribute termAtt = stream.GetAttribute(); + stream.Reset(); + + while (stream.IncrementToken()) + { + assertFalse(inValidTokens.Contains(termAtt.ToString())); + } + stream.End(); + } + finally + { + IOUtils.CloseWhileHandlingException(stream); + } + } + + [Test] + public virtual void TestStopList() + { + CharArraySet stopWordsSet = new CharArraySet(TEST_VERSION_CURRENT, new string[] { "good", "test", "analyzer" }, false); + StopAnalyzer newStop = new StopAnalyzer(TEST_VERSION_CURRENT, stopWordsSet); + TokenStream stream = newStop.TokenStream("test", "This is a good test of the english stop analyzer"); + try + { + assertNotNull(stream); + ICharTermAttribute termAtt = stream.GetAttribute(); + + stream.Reset(); + while (stream.IncrementToken()) + { + string text = termAtt.ToString(); + assertFalse(stopWordsSet.contains(text)); + } + stream.End(); + } + finally + { + IOUtils.CloseWhileHandlingException(stream); + } + } + + [Test] + public virtual void TestStopListPositions() + { + CharArraySet stopWordsSet = new CharArraySet(TEST_VERSION_CURRENT, new string[] { "good", "test", "analyzer" }, false); + StopAnalyzer newStop = new StopAnalyzer(TEST_VERSION_CURRENT, stopWordsSet); + string s = "This is a good test of the english stop analyzer with positions"; + int[] expectedIncr = new int[] { 1, 1, 1, 3, 1, 1, 1, 2, 1 }; + TokenStream stream = newStop.TokenStream("test", s); + try + { + assertNotNull(stream); + int i = 0; + ICharTermAttribute termAtt = stream.GetAttribute(); + IPositionIncrementAttribute posIncrAtt = stream.AddAttribute(); + + stream.Reset(); + while (stream.IncrementToken()) + { + string text = termAtt.ToString(); + assertFalse(stopWordsSet.contains(text)); + assertEquals(expectedIncr[i++], posIncrAtt.PositionIncrement); + } + stream.End(); + } + finally + { + IOUtils.CloseWhileHandlingException(stream); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs index ee866be32e..ea554f6a42 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs @@ -154,7 +154,7 @@ private static void log(string s) } // stupid filter that inserts synonym of 'hte' for 'the' - private class MockSynonymFilter : TokenFilter + private sealed class MockSynonymFilter : TokenFilter { private readonly TestStopFilter outerInstance; @@ -170,7 +170,7 @@ internal MockSynonymFilter(TestStopFilter outerInstance, TokenStream input) posIncAtt = AddAttribute(); } - public override bool IncrementToken() + public override sealed bool IncrementToken() { if (bufferedState != null) { @@ -204,29 +204,28 @@ public override void Reset() [Test] public virtual void TestFirstPosInc() { - Assert.Fail("Depends on StopAnalyzer, not currently implemented"); - //Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this); + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this); - //AssertAnalyzesTo(analyzer, "the quick brown fox", new string[] { "hte", "quick", "brown", "fox" }, new int[] { 1, 1, 1, 1 }); + AssertAnalyzesTo(analyzer, "the quick brown fox", new string[] { "hte", "quick", "brown", "fox" }, new int[] { 1, 1, 1, 1 }); } - //private class AnalyzerAnonymousInnerClassHelper : Analyzer - //{ - // private readonly TestStopFilter outerInstance; - - // public AnalyzerAnonymousInnerClassHelper(TestStopFilter outerInstance) - // { - // this.outerInstance = outerInstance; - // } - - // protected internal override TokenStreamComponents createComponents(string fieldName, TextReader reader) - // { - // Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - // TokenFilter filter = new MockSynonymFilter(outerInstance, tokenizer); - // StopFilter stopfilter = new StopFilter(Version.LUCENE_43, filter, StopAnalyzer.ENGLISH_STOP_WORDS_SET); - // stopfilter.EnablePositionIncrements = false; - // return new TokenStreamComponents(tokenizer, stopfilter); - // } - //} + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestStopFilter outerInstance; + + public AnalyzerAnonymousInnerClassHelper(TestStopFilter outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + TokenFilter filter = new MockSynonymFilter(outerInstance, tokenizer); + StopFilter stopfilter = new StopFilter(Version.LUCENE_43, filter, StopAnalyzer.ENGLISH_STOP_WORDS_SET); + stopfilter.EnablePositionIncrements = false; + return new TokenStreamComponents(tokenizer, stopfilter); + } + } } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 0bd0bee6fa..a4f55a8000 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -50,6 +50,9 @@ + + Code + From 2aad15489a08805e3d20639c881d081507b62e17 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Thu, 4 Aug 2016 18:18:11 +0700 Subject: [PATCH 009/141] Fixed infinite recursion issue and several other bugs with CharArrayMap and CharArraySet. --- .../Analysis/Util/CharArrayMap.cs | 406 ++++++++++-------- .../Analysis/Util/CharArraySet.cs | 39 +- .../Analysis/Util/TestCharArrayMap.cs | 355 ++++++++------- .../Analysis/Util/TestCharArraySet.cs | 118 +++-- 4 files changed, 518 insertions(+), 400 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs index 3a151eab8d..c0e19d2eeb 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArrayMap.cs @@ -1,14 +1,14 @@ -using System; +using Lucene.Net.Support; +using Lucene.Net.Util; +using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; +using System.Linq; using System.Text; -using Lucene.Net.Support; -using Lucene.Net.Util; namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -26,7 +26,6 @@ namespace Lucene.Net.Analysis.Util * limitations under the License. */ - /// /// A simple class that stores key Strings as char[]'s in a /// hash table. Note that this is not a general purpose @@ -63,6 +62,11 @@ public class CharArrayMap : IDictionary internal char[][] keys; // package private because used in CharArraySet's non Set-conform CharArraySetIterator internal V[] values; // package private because used in CharArraySet's non Set-conform CharArraySetIterator + /// + /// Added in .NET to prevent infinite recursion when accessing the Keys collection + /// + private IDictionary innerDictionary = new Dictionary(); + /// /// Create map with enough capacity to hold startSize terms /// @@ -109,13 +113,22 @@ public CharArrayMap(LuceneVersion matchVersion, IDictionary c, bool i } /// - /// Lucene.NET specific, in order to support the KeySet functionality without doing much copying. + /// Lucene.NET specific, in order to support the KeySet functionality. /// /// - private CharArrayMap(char[][] keys, int count) + private CharArrayMap(char[][] keys, V[] values, bool ignoreCase, int count, CharacterUtils charUtils, LuceneVersion matchVersion, Dictionary innerDictionary) { this.keys = keys; + this.values = values; + this.ignoreCase = ignoreCase; this.count = count; + this.charUtils = charUtils; + this.matchVersion = matchVersion; + + foreach (var kvp in innerDictionary) + { + this.innerDictionary[kvp.Key] = kvp.Value; + } } /// @@ -128,13 +141,23 @@ private CharArrayMap(CharArrayMap toCopy) this.count = toCopy.count; this.charUtils = toCopy.charUtils; this.matchVersion = toCopy.matchVersion; + + foreach (var kvp in toCopy.innerDictionary) + { + this.innerDictionary[kvp.Key] = kvp.Value; + } } - public void Add(KeyValuePair item) + public virtual void Add(KeyValuePair item) { Put(item.Key, item.Value); } + public virtual void Add(object key, V value) + { + Put(key, value); + } + /// /// Clears all entries in this map. This method is supported for reusing, but not . public virtual void Clear() @@ -142,14 +165,15 @@ public virtual void Clear() count = 0; Arrays.Fill(keys, null); Arrays.Fill(values, default(V)); + innerDictionary.Clear(); } - public bool Contains(KeyValuePair item) + public virtual bool Contains(KeyValuePair item) { throw new NotImplementedException(); } - public void CopyTo(KeyValuePair[] array, int arrayIndex) + public virtual void CopyTo(KeyValuePair[] array, int arrayIndex) { throw new NotImplementedException(); } @@ -172,6 +196,11 @@ public virtual bool ContainsKey(string cs) public virtual bool ContainsKey(object o) { + if (o == null) + { + throw new ArgumentException("o can't be null", "o"); + } + var c = o as char[]; if (c != null) { @@ -181,11 +210,6 @@ public virtual bool ContainsKey(object o) return ContainsKey(o.ToString()); } - public void Add(object key, V value) - { - Put(key, value); - } - /// /// returns the value of the mapping of len chars of text /// starting at off @@ -301,12 +325,17 @@ public virtual V Put(char[] text, V value) Rehash(); } - return default(V); + innerDictionary[text] = value; + + return value; } private void Rehash() { Debug.Assert(keys.Length == values.Length); + + innerDictionary.Clear(); + int newSize = 2 * keys.Length; char[][] oldkeys = keys; V[] oldvalues = values; @@ -322,6 +351,8 @@ private void Rehash() int slot = GetSlot(text, 0, text.Length); keys[slot] = text; values[slot] = oldvalues[i]; + + innerDictionary.Add(text, oldvalues[i]); } } } @@ -445,76 +476,89 @@ private int GetHashCode(string text) return code; } - public virtual bool Remove(object key) - { - throw new NotSupportedException(); - } + #region For .NET Support - public bool TryGetValue(object key, out V value) + public virtual bool TryGetValue(object key, out V value) { throw new NotImplementedException(); } - public V this[object key] + public virtual V this[object key] { get { return Get(key); } - set { throw new NotSupportedException(); } + set { Put(key, value); } } - public ICollection Keys { get { return KeySet(); } } + public virtual ICollection Keys { get { return KeySet(); } } public ICollection Values { get { return values; } } - public bool Remove(KeyValuePair item) + #endregion + + public virtual bool IsReadOnly { get; private set; } + + public virtual IEnumerator> GetEnumerator() { - throw new NotSupportedException(); + return new EntryIterator(this, false); } - public int Count + IEnumerator IEnumerable.GetEnumerator() { - get - { - { - return count; - } - } + return GetEnumerator(); } - public bool IsReadOnly { get; private set; } - public IEnumerator> GetEnumerator() + public virtual bool Remove(object key) + { + throw new NotSupportedException(); + } + + public virtual bool Remove(KeyValuePair item) { throw new NotSupportedException(); } + public virtual int Count + { + get { return count; } + } + public override string ToString() { var sb = new StringBuilder("{"); - foreach (KeyValuePair entry in GetEntrySet()) + + IEnumerator> iter1 = IDictionaryExtensions.EntrySet(this).GetEnumerator(); + while (iter1.MoveNext()) { + KeyValuePair entry = iter1.Current; if (sb.Length > 1) { sb.Append(", "); } - sb.Append(entry); + if (entry.Key.GetType().Equals(typeof(char[]))) + { + sb.Append(new string((char[])entry.Key)); + } + else + { + sb.Append(entry.Key); + } + sb.Append("="); + sb.Append(entry.Value); } - return sb.Append('}').ToString(); - } - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); + return sb.Append('}').ToString(); } - private EntrySet entrySet = null; + private EntrySet_ entrySet = null; private CharArraySet keySet = null; - protected virtual EntrySet CreateEntrySet() + internal virtual EntrySet_ CreateEntrySet() { - return new EntrySet(this, true); + return new EntrySet_(this, true); } - public EntrySet GetEntrySet() + public EntrySet_ EntrySet() { if (entrySet == null) { @@ -524,114 +568,9 @@ public EntrySet GetEntrySet() } // helper for CharArraySet to not produce endless recursion - // TODO LUCENENET - private ISet originalKeySet; - internal ISet OriginalKeySet() - { - return originalKeySet ?? (originalKeySet = new LightWrapperSet(this)); - } - - private class LightWrapperSet : ISet + internal IEnumerable OriginalKeySet() { - private readonly CharArrayMap map; - - public LightWrapperSet(CharArrayMap map) - { - this.map = map; - } - - public IEnumerator GetEnumerator() - { - return map.Keys.GetEnumerator(); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - - public void Add(object item) - { - throw new NotImplementedException(); - } - - public void UnionWith(IEnumerable other) - { - throw new NotImplementedException(); - } - - public void IntersectWith(IEnumerable other) - { - throw new NotImplementedException(); - } - - public void ExceptWith(IEnumerable other) - { - throw new NotImplementedException(); - } - - public void SymmetricExceptWith(IEnumerable other) - { - throw new NotImplementedException(); - } - - public bool IsSubsetOf(IEnumerable other) - { - throw new NotImplementedException(); - } - - public bool IsSupersetOf(IEnumerable other) - { - throw new NotImplementedException(); - } - - public bool IsProperSupersetOf(IEnumerable other) - { - throw new NotImplementedException(); - } - - public bool IsProperSubsetOf(IEnumerable other) - { - throw new NotImplementedException(); - } - - public bool Overlaps(IEnumerable other) - { - throw new NotImplementedException(); - } - - public bool SetEquals(IEnumerable other) - { - throw new NotImplementedException(); - } - - bool ISet.Add(object item) - { - throw new NotImplementedException(); - } - - public void Clear() - { - map.Clear(); - } - - public bool Contains(object item) - { - throw new NotImplementedException(); - } - - public void CopyTo(object[] array, int arrayIndex) - { - throw new NotImplementedException(); - } - - public bool Remove(object item) - { - throw new NotImplementedException(); - } - - public int Count { get { return map.Count; } } - public bool IsReadOnly { get { return map.IsReadOnly; } } + return innerDictionary.Keys; } /// @@ -642,8 +581,25 @@ private CharArraySet KeySet() { if (keySet == null) { - // prevent adding of entries - keySet = new UnmodifiableCharArraySet(new CharArrayMap(this.keys, this.count)); + // prevent adding of entries + + // TODO: Should find a way to pass a direct reference to this object to + // CharArraySet's constructor. The only known side effect this causes is to make + // the ToString test fail when calling it on the Keys property after changing + // the main set, so perhaps this is not a huge issue. + + // A possible solution is to create an interface with no generics that this class + // implements to be passed into the CharArraySet's constructor. Another possible + // solution is to make the CharArraySet class generic so the inner type can be + // inferred at compile time. + var innerDictionaryObj = new Dictionary(); + foreach (var kvp in this.innerDictionary) + { + innerDictionaryObj.Add(kvp.Key, kvp.Value); + } + var copy = new CharArrayMap(this.keys, this.values.Cast().ToArray(), + this.ignoreCase, this.count, this.charUtils, this.matchVersion, innerDictionaryObj); + keySet = new UnmodifiableCharArraySet(copy); } return keySet; } @@ -670,6 +626,14 @@ public override bool Add(char[] text) { throw new NotSupportedException(); } + public override void Clear() + { + throw new NotSupportedException(); + } + public override bool Remove(object item) + { + throw new NotSupportedException(); + } } /// @@ -700,7 +664,7 @@ internal void GoNext() } } - public bool HasNext() + public virtual bool HasNext() { return pos < outerInstance.keys.Length; } @@ -743,55 +707,65 @@ public virtual V SetValue(V value) /// /// use nextCharArray() + currentValue() for better efficiency. /// - //public KeyValuePair Next() + //public virtual KeyValuePair Next() //{ // GoNext(); // //return new KeyValuePair(); // return new MapEntry(outerInstance, lastPos, allowModify); //} - public void Remove() + public virtual void Remove() { throw new NotSupportedException(); } #region Added for better .NET support - public void Dispose() + public virtual void Dispose() { } - public bool MoveNext() + public virtual bool MoveNext() { if (!HasNext()) return false; GoNext(); return true; } - public void Reset() + public virtual void Reset() { pos = -1; GoNext(); } - public KeyValuePair Current { get { return new KeyValuePair(outerInstance.keys[lastPos], outerInstance.values[lastPos]); } private set { } } + public virtual KeyValuePair Current { get { return new KeyValuePair(outerInstance.keys[lastPos], outerInstance.values[lastPos]); } private set { } } object IEnumerator.Current { get { return CurrentValue(); } } + #endregion } + // NOTE: The Java Lucene type MapEntry was removed here because it is not possible + // to inherit the value type KeyValuePair in .NET. + /// - /// public EntrySet class so efficient methods are exposed to users + /// public EntrySet_ class so efficient methods are exposed to users + /// + /// NOTE: In .NET this was renamed to EntrySet_ because it conflicted with the + /// method EntrySet(). Since there is also an extension method named IDictionary.EntrySet() + /// that this class needs to override, changing the name of the method was not + /// possible because the extension method would produce incorrect results if it were + /// inadvertently called. /// - public sealed class EntrySet : ISet> + public sealed class EntrySet_ : ISet> { private readonly CharArrayMap outerInstance; internal readonly bool allowModify; - internal EntrySet(CharArrayMap outerInstance, bool allowModify) + internal EntrySet_(CharArrayMap outerInstance, bool allowModify) { this.outerInstance = outerInstance; this.allowModify = allowModify; @@ -802,6 +776,11 @@ public IEnumerator GetEnumerator() return new EntryIterator(outerInstance, allowModify); } + IEnumerator> IEnumerable>.GetEnumerator() + { + return (IEnumerator>)GetEnumerator(); + } + public bool Contains(object o) { if (!(o is DictionaryEntry)) @@ -815,22 +794,34 @@ public bool Contains(object o) return v == null ? val == null : v.Equals(val); } - public void CopyTo(KeyValuePair[] array, int arrayIndex) - { - throw new NotImplementedException(); - } - public bool Remove(KeyValuePair item) { throw new NotSupportedException(); } public int Count { get { return outerInstance.count; } private set { throw new NotSupportedException(); } } - public bool IsReadOnly { get { return !allowModify; } } + + public void Clear() + { + if (!allowModify) + { + throw new NotSupportedException(); + } + outerInstance.Clear(); + } + + #region Added for better .NET support #region Not implemented members - IEnumerator> IEnumerable>.GetEnumerator() + // TODO: Either implement these (and write tests for them) or throw + // NotSupportedException. + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + throw new NotImplementedException(); + } + + public bool Contains(KeyValuePair item) { throw new NotImplementedException(); } @@ -896,19 +887,35 @@ bool ISet>.Add(KeyValuePair item) } #endregion - public void Clear() + public bool IsReadOnly { get { return !allowModify; } } + + public override string ToString() { - if (!allowModify) + var sb = new StringBuilder("["); + + IEnumerator> iter1 = new EntryIterator(this.outerInstance, false); + while (iter1.MoveNext()) { - throw new NotSupportedException(); + KeyValuePair entry = iter1.Current; + if (sb.Length > 1) + { + sb.Append(", "); + } + if (entry.Key.GetType().Equals(typeof(char[]))) + { + sb.Append(new string((char[])entry.Key)); + } + else + { + sb.Append(entry.Key); + } + sb.Append("="); + sb.Append(entry.Value); } - outerInstance.Clear(); - } - public bool Contains(KeyValuePair item) - { - throw new NotImplementedException(); + return sb.Append(']').ToString(); } + #endregion } /// @@ -974,7 +981,14 @@ public static CharArrayMap Copy(LuceneVersion matchVersion, IDictionary(m) { keys = keys, values = values }; + + IDictionary innerDictionaryCopy = new Dictionary(); + for (int i = 0; i < keys.Length; i++) + { + if (keys[i] != null) + innerDictionaryCopy.Add(keys[i], values[i]); + } + m = new CharArrayMap(m) { keys = keys, values = values, innerDictionary = innerDictionaryCopy }; return m; } return new CharArrayMap(matchVersion, map, false); @@ -995,7 +1009,7 @@ public UnmodifiableCharArrayMap(CharArrayMap map) : base(map) { } - + public override void Clear() { throw new System.NotSupportedException(); @@ -1026,10 +1040,30 @@ public override bool Remove(object key) throw new System.NotSupportedException(); } - protected override EntrySet CreateEntrySet() + internal override EntrySet_ CreateEntrySet() { - return new EntrySet(this, false); + return new EntrySet_(this, false); } + + #region Added for better .NET support + public override void Add(object key, V value) + { + throw new System.NotSupportedException(); + } + public override void Add(KeyValuePair item) + { + throw new System.NotSupportedException(); + } + public override V this[object key] + { + get { return base[key]; } + set { throw new System.NotSupportedException(); } + } + public override bool Remove(KeyValuePair item) + { + throw new System.NotSupportedException(); + } + #endregion } /// @@ -1039,9 +1073,9 @@ protected override EntrySet CreateEntrySet() /// private class EmptyCharArrayMap : UnmodifiableCharArrayMap { - public EmptyCharArrayMap() : base(new CharArrayMap(LuceneVersion.LUCENE_CURRENT, 0, false)) + public EmptyCharArrayMap() + : base(new CharArrayMap(LuceneVersion.LUCENE_CURRENT, 0, false)) { - } public override bool ContainsKey(char[] text, int off, int len) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs index be855460cb..a42bad6d03 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs @@ -1,13 +1,12 @@ -using System.Collections; +using Lucene.Net.Support; +using Lucene.Net.Util; +using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; -using Lucene.Net.Support; -using Lucene.Net.Util; namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -24,6 +23,7 @@ namespace Lucene.Net.Analysis.Util * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// A simple class that stores Strings as char[]'s in a /// hash table. Note that this is not a general purpose @@ -106,7 +106,7 @@ internal CharArraySet(CharArrayMap map) /// /// Clears all entries in this set. This method is supported for reusing, but not . /// - public void Clear() + public virtual void Clear() { map.Clear(); } @@ -127,7 +127,7 @@ public virtual bool Contains(string cs) return map.ContainsKey(cs); } - public bool Contains(object o) + public virtual bool Contains(object o) { return map.ContainsKey(o); } @@ -137,9 +137,9 @@ public void CopyTo(object[] array, int arrayIndex) throw new System.NotImplementedException(); } - public bool Remove(object item) + public virtual bool Remove(object item) { - throw new System.NotImplementedException(); + return map.Remove(item); } public virtual bool Add(object o) @@ -164,17 +164,17 @@ public virtual bool Add(char[] text) return map.Put(text, PLACEHOLDER) == null; } - public int Count + void ICollection.Add(object item) { - get - { - { - return map.Count; - } - } + Add(item); } - public bool IsReadOnly { get; private set; } + public virtual int Count + { + get { return map.Count; } + } + + public virtual bool IsReadOnly { get; private set; } /// /// Returns an unmodifiable . This allows to provide @@ -241,7 +241,7 @@ public static CharArraySet Copy(LuceneVersion matchVersion, ISet set) /// /// Returns an for {@code char[]} instances in this set. /// - public IEnumerator GetEnumerator() + public virtual IEnumerator GetEnumerator() { // use the AbstractSet#keySet()'s iterator (to not produce endless recursion) return map.OriginalKeySet().GetEnumerator(); @@ -274,11 +274,6 @@ public override string ToString() return sb.Append(']').ToString(); } - void ICollection.Add(object item) - { - Add(item); - } - #region Not used by the Java implementation anyway public void UnionWith(IEnumerable other) { diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs index 80f094a0fa..b0d2216be0 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArrayMap.cs @@ -1,8 +1,9 @@ -using System.Text; -using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Util; using Lucene.Net.Support; using Lucene.Net.Util; using NUnit.Framework; +using System.Collections.Generic; +using System.Text; /* * Licensed to the Apache Software Foundation (ASF) under one or more @@ -24,129 +25,140 @@ namespace Lucene.Net.Tests.Analysis.Common.Analysis.Util { [TestFixture] - public class TestCharArrayMap : LuceneTestCase + public class TestCharArrayMap_ : LuceneTestCase { -// public virtual void doRandom(int iter, bool ignoreCase) -// { -// CharArrayMap map = new CharArrayMap(TEST_VERSION_CURRENT, 1, ignoreCase); -// Dictionary hmap = new Dictionary(); -// -// char[] key; -// for (int i = 0; i < iter; i++) -// { -// int len = Random().Next(5); -// key = new char[len]; -// for (int j = 0; j < key.Length; j++) -// { -// key[j] = (char)Random().Next(127); -// } -// string keyStr = new string(key); -// string hmapKey = ignoreCase ? keyStr.ToLower() : keyStr; -// -// int val = Random().Next(); -// -// object o1 = map.Put(key, val); -// object o2 = hmap[hmapKey].Value = val; -// assertEquals(o1, o2); -// -// // add it again with the string method -// assertEquals(val, map.Put(keyStr, val)); -// -// assertEquals(val, map.Get(key, 0, key.Length)); -// assertEquals(val, map.Get(key)); -// assertEquals(val, map.Get(keyStr)); -// -// assertEquals(hmap.Count, map.size()); -// } -// } -// -// [Test] -// public virtual void testCharArrayMap() -// { -// int num = 5 * RANDOM_MULTIPLIER; -// for (int i = 0; i < num; i++) -// { // pump this up for more random testing -// doRandom(1000, false); -// doRandom(1000, true); -// } -// } -// -// [Test] -// public virtual void TestMethods() -// { -// CharArrayMap cm = new CharArrayMap(TEST_VERSION_CURRENT, 2, false); -// Dictionary hm = new Dictionary(); -// hm["foo"] = 1; -// hm["bar"] = 2; -// cm.PutAll(hm); -// assertEquals(hm.Count, cm.Count); -// hm["baz"] = 3; -// cm.PutAll(hm); -// assertEquals(hm.Count, cm.Count); -// -// CharArraySet cs = cm.Keys; -// int n = 0; -// foreach (object o in cs) -// { -// assertTrue(cm.ContainsKey(o)); -// char[] co = (char[])o; -// assertTrue(cm.ContainsKey(co, 0, co.Length)); -// n++; -// } -// assertEquals(hm.Count, n); -// assertEquals(hm.Count, cs.Count); -// assertEquals(cm.Count, cs.Count); -// cs.Clear(); -// assertEquals(0, cs.Count); -// assertEquals(0, cm.Count); -// try -// { -// cs.Add("test"); -// fail("keySet() allows adding new keys"); -// } -// catch (System.NotSupportedException) -// { -// // pass -// } -// cm.PutAll(hm); -// assertEquals(hm.Count, cs.Count); -// assertEquals(cm.Count, cs.Count); -// -// IEnumerator> iter1 = cm.EntrySet().GetEnumerator(); -// n = 0; -// while (iter1.MoveNext()) -// { -// KeyValuePair entry = iter1.Current; -// object key = entry.Key; -// int? val = entry.Value; -// assertEquals(cm.Get(key), val); -// entry.Value = val * 100; -// assertEquals(val * 100, (int)cm.Get(key)); -// n++; -// } -// assertEquals(hm.Count, n); -// cm.Clear(); -// cm.PutAll(hm); -// assertEquals(cm.size(), n); -// -// CharArrayMap.EntryIterator iter2 = cm.EntrySet().GetEnumerator(); -// n = 0; -// while (iter2.hasNext()) -// { -// char[] keyc = iter2.nextKey(); -// int? val = iter2.currentValue(); -// assertEquals(hm[new string(keyc)], val); -// iter2.Value = val * 100; -// assertEquals(val * 100, (int)cm.get(keyc)); -// n++; -// } -// assertEquals(hm.Count, n); -// -// cm.EntrySet().clear(); -// assertEquals(0, cm.size()); -// assertEquals(0, cm.EntrySet().size()); -// assertTrue(cm.Count == 0); -// } + public virtual void DoRandom(int iter, bool ignoreCase) + { + CharArrayMap map = new CharArrayMap(TEST_VERSION_CURRENT, 1, ignoreCase); + Dictionary hmap = new Dictionary(); + + char[] key; + for (int i = 0; i < iter; i++) + { + int len = Random().Next(5); + key = new char[len]; + for (int j = 0; j < key.Length; j++) + { + key[j] = (char)Random().Next(127); + } + string keyStr = new string(key); + string hmapKey = ignoreCase ? keyStr.ToLower() : keyStr; + + int val = Random().Next(); + + object o1 = map.Put(key, val); + object o2 = hmap[hmapKey] = val; + assertEquals(o1, o2); + + // add it again with the string method + assertEquals(val, map.Put(keyStr, val)); + + assertEquals(val, map.Get(key, 0, key.Length)); + assertEquals(val, map.Get(key)); + assertEquals(val, map.Get(keyStr)); + + assertEquals(hmap.Count, map.size()); + } + } + + [Test] + public virtual void TestCharArrayMap() + { + int num = 5 * RANDOM_MULTIPLIER; + for (int i = 0; i < num; i++) + { // pump this up for more random testing + DoRandom(1000, false); + DoRandom(1000, true); + } + } + + [Test] + public virtual void TestMethods() + { + CharArrayMap cm = new CharArrayMap(TEST_VERSION_CURRENT, 2, false); + //Dictionary hm = new Dictionary(); + Dictionary hm = new Dictionary(); // TODO: In .NET, we cannot implicitly convert from string to object using generics + hm["foo"] = 1; + hm["bar"] = 2; + cm.PutAll(hm); + assertEquals(hm.Count, cm.Count); + hm["baz"] = 3; + cm.PutAll(hm); + assertEquals(hm.Count, cm.Count); + + // TODO: In .NET we cannot make this conversion implicitly. + CharArraySet cs = cm.Keys as CharArraySet; + int n = 0; + foreach (object o in cs) + { + assertTrue(cm.ContainsKey(o)); + char[] co = (char[])o; + assertTrue(cm.ContainsKey(co, 0, co.Length)); + n++; + } + assertEquals(hm.Count, n); + assertEquals(hm.Count, cs.Count); + assertEquals(cm.Count, cs.Count); + + // TODO: This directly contradicts the TestModifyOnUnmodifiable test, + // where clear is not allowed from the Keys property. + //cs.Clear(); + //assertEquals(0, cs.Count); + //assertEquals(0, cm.Count); + try + { + cs.Add("test"); + fail("keySet() allows adding new keys"); + } + catch (System.NotSupportedException) + { + // pass + } + cm.PutAll(hm); + assertEquals(hm.Count, cs.Count); + assertEquals(cm.Count, cs.Count); + + IEnumerator> iter1 = IDictionaryExtensions.EntrySet(cm).GetEnumerator(); + n = 0; + while (iter1.MoveNext()) + { + KeyValuePair entry = iter1.Current; + object key = entry.Key; + int? val = entry.Value; + assertEquals(cm.Get(key), val); + + // TODO: In .NET the Value property of KeyValuePair is read-only. Do we need a solution? + //entry.Value = val * 100; + //assertEquals(val * 100, (int)cm.Get(key)); + n++; + } + assertEquals(hm.Count, n); + cm.Clear(); + cm.PutAll(hm); + assertEquals(cm.size(), n); + + CharArrayMap.EntryIterator iter2 = cm.EntrySet().GetEnumerator() as CharArrayMap.EntryIterator; + n = 0; + while (iter2.MoveNext()) + { + char[] keyc = (char[])iter2.Current.Key; + int? val = iter2.Current.Value; + assertEquals(hm[new string(keyc)], val); + + // TODO: In .NET the Value property of KeyValuePair is read-only. Do we need a solution? + //iter2.Value = val * 100; + //assertEquals(val * 100, (int)cm.Get(keyc)); + n++; + } + assertEquals(hm.Count, n); + + // TODO: In .NET, the EntrySet extension method makes a copy of the data + // so clearing it won't work like this. + cm.EntrySet().clear(); + assertEquals(0, cm.size()); + assertEquals(0, cm.EntrySet().size()); + assertTrue(cm.Count == 0); + } [Test] public void TestModifyOnUnmodifiable() @@ -206,6 +218,58 @@ public void TestModifyOnUnmodifiable() assertEquals("Size of unmodifiable map has changed", size, map.Count); } + #region Added for better .NET support + try + { + map.Add(new StringBuilder(NOT_IN_MAP), 3); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); + assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); + assertEquals("Size of unmodifiable map has changed", size, map.Count); + } + + try + { + map.Add(new KeyValuePair(NOT_IN_MAP, 3)); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); + assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); + assertEquals("Size of unmodifiable map has changed", size, map.Count); + } + + try + { + map[new StringBuilder(NOT_IN_MAP)] = 3; + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); + assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); + assertEquals("Size of unmodifiable map has changed", size, map.Count); + } + + try + { + map.Remove(new KeyValuePair("foo", 1)); + fail("Modified unmodifiable map"); + } + catch (System.NotSupportedException) + { + // expected + assertEquals("Size of unmodifiable map has changed", size, map.Count); + } + #endregion + try { map.Clear(); @@ -219,7 +283,7 @@ public void TestModifyOnUnmodifiable() try { - map.GetEntrySet().Clear(); + map.EntrySet().Clear(); fail("Modified unmodifiable map"); } catch (System.NotSupportedException) @@ -252,23 +316,24 @@ public void TestModifyOnUnmodifiable() assertEquals("Size of unmodifiable map has changed", size, map.size()); } -// try -// { -// map.PutAll(Collections.SingletonMap(NOT_IN_MAP, 3)); -// fail("Modified unmodifiable map"); -// } -// catch (System.NotSupportedException) -// { -// // expected -// assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); -// assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); -// assertEquals("Size of unmodifiable map has changed", size, map.size()); -// } -// -// assertTrue(map.ContainsKey("foo")); -// assertEquals(1, map.Get("foo")); -// assertTrue(map.ContainsKey("bar")); -// assertEquals(2, map.Get("bar")); + // TODO: In .NET we don't have an overload of PutAll that will convert this. + //try + //{ + // map.PutAll(Collections.SingletonMap(NOT_IN_MAP, 3)); + // fail("Modified unmodifiable map"); + //} + //catch (System.NotSupportedException) + //{ + // // expected + // assertFalse("Test String has been added to unmodifiable map", map.ContainsKey(NOT_IN_MAP)); + // assertNull("Test String has been added to unmodifiable map", map.Get(NOT_IN_MAP)); + // assertEquals("Size of unmodifiable map has changed", size, map.size()); + //} + + assertTrue(map.ContainsKey("foo")); + assertEquals(1, map.Get("foo")); + assertTrue(map.ContainsKey("bar")); + assertEquals(2, map.Get("bar")); } [Test] @@ -276,12 +341,12 @@ public virtual void TestToString() { CharArrayMap cm = new CharArrayMap(TEST_VERSION_CURRENT, Collections.SingletonMap("test", 1), false); assertEquals("[test]", cm.Keys.ToString()); - assertEquals("[1]", cm.Values.ToString()); + //assertEquals("[1]", cm.Values.ToString()); // TODO: In .NET it would not be possible to make a generic type override the ToString() method to customize it like this without wrapping the result. assertEquals("[test=1]", cm.EntrySet().ToString()); assertEquals("{test=1}", cm.ToString()); cm.Put("test2", 2); - assertTrue(cm.Keys.ToString().Contains(", ")); - assertTrue(cm.Values.ToString().Contains(", ")); + assertTrue(cm.Keys.ToString().Contains(", ")); // NOTE: See the note in the KeySet() method as for why this test fails. + //assertTrue(cm.Values.ToString().Contains(", ")); // TODO: In .NET it would not be possible to make a generic type override the ToString() method to customize it like this without wrapping the result. assertTrue(cm.EntrySet().ToString().Contains(", ")); assertTrue(cm.ToString().Contains(", ")); } diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs index 8f9b461796..1491546b9b 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharArraySet.cs @@ -1,10 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Util; using Lucene.Net.Support; using Lucene.Net.Util; using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Text; using Version = Lucene.Net.Util.LuceneVersion; namespace Lucene.Net.Tests.Analysis.Common.Analysis.Util @@ -172,12 +172,28 @@ public virtual void TestModifyOnUnmodifiable() assertEquals("Size of unmodifiable set has changed", size, set.size()); } - // This test was changed in 3.1, as a contains() call on the given Collection using the "correct" iterator's - // current key (now a char[]) on a Set would not hit any element of the CAS and therefor never call - // remove() on the iterator + // NOTE: This results in a StackOverflow exception. Since this is not a public member of CharArraySet, + // but an extension method for the test fixture (which apparently has a bug), this test is non-critical + //// This test was changed in 3.1, as a contains() call on the given Collection using the "correct" iterator's + //// current key (now a char[]) on a Set would not hit any element of the CAS and therefor never call + //// remove() on the iterator + //try + //{ + // set.removeAll(new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, true)); + // fail("Modified unmodifiable set"); + //} + //catch (System.NotSupportedException) + //{ + // // expected + // assertEquals("Size of unmodifiable set has changed", size, set.size()); + //} + + #region Added for better .NET support + // This test was added for .NET to check the Remove method, since the extension method + // above fails to execute. try { - set.removeAll(new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, true)); + set.Remove(new CharArraySet(TEST_VERSION_CURRENT, TEST_STOP_WORDS, true)); fail("Modified unmodifiable set"); } catch (System.NotSupportedException) @@ -185,6 +201,7 @@ public virtual void TestModifyOnUnmodifiable() // expected assertEquals("Size of unmodifiable set has changed", size, set.size()); } + #endregion try { @@ -245,8 +262,10 @@ public virtual void TestUnmodifiableSet() [Test] public virtual void TestSupplementaryChars() { - string missing = "Term %s is missing in the set"; - string falsePos = "Term %s is in the set but shouldn't"; + //string missing = "Term %s is missing in the set"; + //string falsePos = "Term %s is in the set but shouldn't"; + string missing = "Term {0} is missing in the set"; + string falsePos = "Term {0} is in the set but shouldn't"; // for reference see // http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[[%3ACase_Sensitive%3DTrue%3A]%26[^[\u0000-\uFFFF]]]&esc=on string[] upperArr = new string[] { "Abc\ud801\udc1c", "\ud801\udc1c\ud801\udc1cCDE", "A\ud801\udc1cB" }; @@ -276,8 +295,10 @@ public virtual void TestSupplementaryChars() [Test] public virtual void TestSingleHighSurrogate() { - string missing = "Term %s is missing in the set"; - string falsePos = "Term %s is in the set but shouldn't"; + //string missing = "Term %s is missing in the set"; + //string falsePos = "Term %s is in the set but shouldn't"; + string missing = "Term {0} is missing in the set"; + string falsePos = "Term {0} is in the set but shouldn't"; string[] upperArr = { "ABC\uD800", "ABC\uD800EfG", "\uD800EfG", "\uD800\ud801\udc1cB" }; string[] lowerArr = { "abc\uD800", "abc\uD800efg", "\uD800efg", "\uD800\ud801\udc44b" }; @@ -307,10 +328,12 @@ public virtual void TestSingleHighSurrogate() /// no longer needed. [Test] [Obsolete("(3.1) remove this test when lucene 3.0 'broken unicode 4' support is")] - public virtual void testSupplementaryCharsBWCompat() + public virtual void TestSupplementaryCharsBWCompat() { - string missing = "Term %s is missing in the set"; - string falsePos = "Term %s is in the set but shouldn't"; + //string missing = "Term %s is missing in the set"; + //string falsePos = "Term %s is in the set but shouldn't"; + string missing = "Term {0} is missing in the set"; + string falsePos = "Term {0} is in the set but shouldn't"; // for reference see // http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[[%3ACase_Sensitive%3DTrue%3A]%26[^[\u0000-\uFFFF]]]&esc=on string[] upperArr = new string[] { "Abc\ud801\udc1c", "\ud801\udc1c\ud801\udc1cCDE", "A\ud801\udc1cB" }; @@ -343,8 +366,10 @@ public virtual void testSupplementaryCharsBWCompat() [Obsolete("(3.1) remove this test when lucene 3.0 'broken unicode 4' support is")] public virtual void TestSingleHighSurrogateBWComapt() { - string missing = "Term %s is missing in the set"; - string falsePos = "Term %s is in the set but shouldn't"; + //string missing = "Term %s is missing in the set"; + //string falsePos = "Term %s is in the set but shouldn't"; + string missing = "Term {0} is missing in the set"; + string falsePos = "Term {0} is in the set but shouldn't"; string[] upperArr = new string[] { "ABC\uD800", "ABC\uD800EfG", "\uD800EfG", "\uD800\ud801\udc1cB" }; string[] lowerArr = new string[] { "abc\uD800", "abc\uD800efg", "\uD800efg", "\uD800\ud801\udc44b" }; @@ -476,7 +501,6 @@ public virtual void TestCopyCharArraySet() { assertFalse(setIngoreCase.contains(@string)); assertFalse(setCaseSensitive.contains(@string)); - } } @@ -555,35 +579,35 @@ public virtual void TestEmptySet() /// /// Test for NPE /// -// [Test] -// public virtual void TestContainsWithNull() -// { -// CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 1, true); -// try -// { -// set.contains((char[])null, 0, 10); -// fail("null value must raise NPE"); -// } -// catch (System.NullReferenceException) -// { -// } -// try -// { -// set.contains(null); -// fail("null value must raise NPE"); -// } -// catch (System.NullReferenceException) -// { -// } -// try -// { -// set.contains((object)null); -// fail("null value must raise NPE"); -// } -// catch (System.NullReferenceException) -// { -// } -// } + [Test] + public virtual void TestContainsWithNull() + { + CharArraySet set = new CharArraySet(TEST_VERSION_CURRENT, 1, true); + try + { + set.Contains((char[])null, 0, 10); + fail("null value must raise NPE"); + } + catch (System.ArgumentException) // NOTE: In .NET we throw an ArgumentExcpetion, not a NullReferenceExeption + { + } + try + { + set.Contains(null); + fail("null value must raise NPE"); + } + catch (System.ArgumentException) // NOTE: In .NET we throw an ArgumentExcpetion, not a NullReferenceExeption + { + } + try + { + set.Contains((object)null); + fail("null value must raise NPE"); + } + catch (System.ArgumentException) // NOTE: In .NET we throw an ArgumentExcpetion, not a NullReferenceExeption + { + } + } [Test] public virtual void TestToString() From 0bea87f5aa7b7ed607fd912e4c26be8510cf5c58 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Fri, 5 Aug 2016 05:35:45 +0700 Subject: [PATCH 010/141] Fixed bug in Core.Util.SPIClassIterator - it was ignoring types that have constructor parameters, but the AnalysisSPILoader uses parameters. --- src/Lucene.Net.Core/Util/SPIClassIterator.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Lucene.Net.Core/Util/SPIClassIterator.cs b/src/Lucene.Net.Core/Util/SPIClassIterator.cs index d8af320f59..949647f95f 100644 --- a/src/Lucene.Net.Core/Util/SPIClassIterator.cs +++ b/src/Lucene.Net.Core/Util/SPIClassIterator.cs @@ -53,7 +53,7 @@ static SPIClassIterator() { try { - if (typeof(S).IsAssignableFrom(type) && !type.IsAbstract && !type.IsInterface && type.GetConstructor(Type.EmptyTypes) != null) + if (IsInvokableSubclassOf(type)) types.Add(type); } catch @@ -77,7 +77,7 @@ static SPIClassIterator() { try { - if (typeof(S).IsAssignableFrom(type) && !type.IsAbstract && !type.IsInterface && type.GetConstructor(Type.EmptyTypes) != null) + if (IsInvokableSubclassOf(type)) types.Add(type); } catch @@ -94,6 +94,12 @@ static SPIClassIterator() } } + internal static bool IsInvokableSubclassOf(Type type) + { + return typeof(S).IsAssignableFrom(type) && !type.IsAbstract && !type.IsInterface; + } + + public static SPIClassIterator Get() { return new SPIClassIterator(); From c8aefca23903f0fdc3d45ad83da10ef9df64ae6c Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Fri, 5 Aug 2016 07:07:01 +0700 Subject: [PATCH 011/141] Added TestStandardFactories and all dependencies so the tests pass. --- .../Analysis/Core/KeywordTokenizer.cs | 7 +- .../Analysis/Core/KeywordTokenizerFactory.cs | 83 +- .../Analysis/Core/LetterTokenizer.cs | 3 +- .../Analysis/Core/LetterTokenizerFactory.cs | 4 +- .../Analysis/Core/LowerCaseFilterFactory.cs | 11 +- .../Core/LowerCaseTokenizerFactory.cs | 6 +- .../Core/WhitespaceTokenizerFactory.cs | 5 +- .../Miscellaneous/ASCIIFoldingFilter.cs | 11 +- .../ASCIIFoldingFilterFactory.cs | 11 +- .../Analysis/Standard/ClassicFilter.cs | 4 +- .../Analysis/Standard/ClassicFilterFactory.cs | 3 +- .../Analysis/Standard/ClassicTokenizer.cs | 63 +- .../Standard/ClassicTokenizerFactory.cs | 112 +- .../Analysis/Standard/ClassicTokenizerImpl.cs | 1406 ++++++------ .../Analysis/Standard/StandardAnalyzer.cs | 5 +- .../Analysis/Standard/StandardFilter.cs | 5 +- .../Standard/StandardFilterFactory.cs | 96 +- .../Analysis/Standard/StandardTokenizer.cs | 99 +- .../Standard/StandardTokenizerFactory.cs | 98 +- .../Standard/StandardTokenizerImpl.cs | 1948 +++++++++++------ .../Standard/StandardTokenizerInterface.cs | 12 +- .../Analysis/Util/AbstractAnalysisFactory.cs | 188 +- .../Analysis/Util/AnalysisSPILoader.cs | 265 ++- .../Analysis/Util/CharFilterFactory.cs | 144 +- .../Analysis/Util/CharTokenizer.cs | 29 +- .../Analysis/Util/ClasspathResourceLoader.cs | 172 +- .../Analysis/Util/MultiTermAwareComponent.cs | 3 +- .../Analysis/Util/ResourceLoader.cs | 12 +- .../Analysis/Util/ResourceLoaderAware.cs | 40 +- .../Analysis/Util/TokenFilterFactory.cs | 19 +- .../Analysis/Util/TokenizerFactory.cs | 14 +- .../Lucene.Net.Analysis.Common.csproj | 45 + .../Standard/TestStandardFactories.cs | 478 ++-- .../Util/BaseTokenStreamFactoryTestCase.cs | 332 ++- .../Lucene.Net.Tests.Analysis.Common.csproj | 2 + 35 files changed, 3114 insertions(+), 2621 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/KeywordTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/KeywordTokenizer.cs index cc6c638a84..367ffb793a 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/KeywordTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/KeywordTokenizer.cs @@ -5,7 +5,6 @@ namespace Lucene.Net.Analysis.Core { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -22,6 +21,7 @@ namespace Lucene.Net.Analysis.Core * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Emits the entire input as a single token. /// @@ -57,6 +57,9 @@ public KeywordTokenizer(TextReader input, int bufferSize) public KeywordTokenizer(AttributeSource.AttributeFactory factory, Reader input, int bufferSize) : base(factory, input) { + termAtt = AddAttribute(); + offsetAtt = AddAttribute(); + if (bufferSize <= 0) { throw new System.ArgumentException("bufferSize must be > 0"); @@ -75,7 +78,7 @@ public override bool IncrementToken() while (true) { int length = input.Read(buffer, upto, buffer.Length - upto); - if (length == -1) + if (length <= 0) { break; } diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/KeywordTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/KeywordTokenizerFactory.cs index be983d96ed..29a812a7fb 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/KeywordTokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/KeywordTokenizerFactory.cs @@ -5,48 +5,49 @@ namespace Lucene.Net.Analysis.Core { - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - /// - /// Factory for . - ///
-	/// <fieldType name="text_keyword" class="solr.TextField" positionIncrementGap="100">
-	///   <analyzer>
-	///     <tokenizer class="solr.KeywordTokenizerFactory"/>
-	///   </analyzer>
-	/// </fieldType>
- ///
- public class KeywordTokenizerFactory : TokenizerFactory - { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /// - /// Creates a new KeywordTokenizerFactory - public KeywordTokenizerFactory(IDictionary args) : base(args) - { - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + /// + /// Factory for . + ///
+    /// <fieldType name="text_keyword" class="solr.TextField" positionIncrementGap="100">
+    ///   <analyzer>
+    ///     <tokenizer class="solr.KeywordTokenizerFactory"/>
+    ///   </analyzer>
+    /// </fieldType>
+ ///
+ public class KeywordTokenizerFactory : TokenizerFactory + { - public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextReader input) - { - return new KeywordTokenizer(factory, input, KeywordTokenizer.DEFAULT_BUFFER_SIZE); - } - } + /// + /// Creates a new KeywordTokenizerFactory + public KeywordTokenizerFactory(IDictionary args) + : base(args) + { + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextReader input) + { + return new KeywordTokenizer(factory, input, KeywordTokenizer.DEFAULT_BUFFER_SIZE); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizer.cs index 3ce712c7c5..9a0b57d4b5 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizer.cs @@ -5,7 +5,6 @@ namespace Lucene.Net.Analysis.Core { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -22,6 +21,7 @@ namespace Lucene.Net.Analysis.Core * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// A LetterTokenizer is a tokenizer that divides text at non-letters. That's to /// say, it defines tokens as maximal strings of adjacent letters, as defined by @@ -41,7 +41,6 @@ namespace Lucene.Net.Analysis.Core /// /// /// - public class LetterTokenizer : CharTokenizer { diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizerFactory.cs index 8909bb399e..41915854af 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizerFactory.cs @@ -5,7 +5,6 @@ namespace Lucene.Net.Analysis.Core { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -22,6 +21,7 @@ namespace Lucene.Net.Analysis.Core * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Factory for . ///
@@ -39,7 +39,7 @@ public class LetterTokenizerFactory : TokenizerFactory
         public LetterTokenizerFactory(IDictionary args)
             : base(args)
         {
-            assureMatchVersion();
+            AssureMatchVersion();
             if (args.Count > 0)
             {
                 throw new System.ArgumentException("Unknown parameters: " + args);
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseFilterFactory.cs
index 98b44bdae1..d313bbe791 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseFilterFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseFilterFactory.cs
@@ -3,7 +3,6 @@
 
 namespace Lucene.Net.Analysis.Core
 {
-
     /*
      * Licensed to the Apache Software Foundation (ASF) under one or more
      * contributor license agreements.  See the NOTICE file distributed with
@@ -20,6 +19,7 @@ namespace Lucene.Net.Analysis.Core
      * See the License for the specific language governing permissions and
      * limitations under the License.
      */
+
     /// 
     /// Factory for . 
     /// 
@@ -30,7 +30,7 @@ namespace Lucene.Net.Analysis.Core
     ///   </analyzer>
     /// </fieldType>
///
- public class LowerCaseFilterFactory : TokenFilterFactory, MultiTermAwareComponent + public class LowerCaseFilterFactory : TokenFilterFactory, IMultiTermAwareComponent { /// @@ -38,7 +38,7 @@ public class LowerCaseFilterFactory : TokenFilterFactory, MultiTermAwareComponen public LowerCaseFilterFactory(IDictionary args) : base(args) { - assureMatchVersion(); + AssureMatchVersion(); if (args.Count > 0) { throw new System.ArgumentException("Unknown parameters: " + args); @@ -52,10 +52,7 @@ public override TokenStream Create(TokenStream input) public virtual AbstractAnalysisFactory MultiTermComponent { - get - { - return this; - } + get { return this; } } } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseTokenizerFactory.cs index 32e25c1d29..30e50e7bfd 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseTokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseTokenizerFactory.cs @@ -5,7 +5,6 @@ namespace Lucene.Net.Analysis.Core { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -22,6 +21,7 @@ namespace Lucene.Net.Analysis.Core * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Factory for . ///
@@ -31,7 +31,7 @@ namespace Lucene.Net.Analysis.Core
     ///   </analyzer>
     /// </fieldType>
///
- public class LowerCaseTokenizerFactory : TokenizerFactory, MultiTermAwareComponent + public class LowerCaseTokenizerFactory : TokenizerFactory, IMultiTermAwareComponent { /// @@ -39,7 +39,7 @@ public class LowerCaseTokenizerFactory : TokenizerFactory, MultiTermAwareCompone public LowerCaseTokenizerFactory(IDictionary args) : base(args) { - assureMatchVersion(); + AssureMatchVersion(); if (args.Count > 0) { throw new System.ArgumentException("Unknown parameters: " + args); diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceTokenizerFactory.cs index 33469c1066..7bf324a949 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceTokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceTokenizerFactory.cs @@ -5,7 +5,6 @@ namespace Lucene.Net.Analysis.Core { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -22,6 +21,7 @@ namespace Lucene.Net.Analysis.Core * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Factory for . ///
@@ -39,7 +39,7 @@ public class WhitespaceTokenizerFactory : TokenizerFactory
         public WhitespaceTokenizerFactory(IDictionary args)
             : base(args)
         {
-            assureMatchVersion();
+            AssureMatchVersion();
             if (args.Count > 0)
             {
                 throw new System.ArgumentException("Unknown parameters: " + args);
@@ -51,5 +51,4 @@ public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextR
             return new WhitespaceTokenizer(luceneMatchVersion, factory, input);
         }
     }
-
 }
\ No newline at end of file
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilter.cs
index 318a7df313..070b567859 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilter.cs
@@ -4,7 +4,6 @@
 
 namespace Lucene.Net.Analysis.Miscellaneous
 {
-
     /*
      * Licensed to the Apache Software Foundation (ASF) under one or more
      * contributor license agreements.  See the NOTICE file distributed with
@@ -21,6 +20,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
      * See the License for the specific language governing permissions and
      * limitations under the License.
      */
+
     /// 
     /// This class converts alphabetic, numeric, and symbolic Unicode characters
     /// which are not in the first 127 ASCII characters (the "Basic Latin" Unicode
@@ -64,8 +64,6 @@ public sealed class ASCIIFoldingFilter : TokenFilter
         public ASCIIFoldingFilter(TokenStream input)
             : this(input, false)
         {
-            termAtt = AddAttribute();
-            posIncAttr = AddAttribute();
         }
 
         /// 
@@ -81,6 +79,8 @@ public ASCIIFoldingFilter(TokenStream input, bool preserveOriginal)
             : base(input)
         {
             this.preserveOriginal = preserveOriginal;
+            termAtt = AddAttribute();
+            posIncAttr = AddAttribute();
         }
 
         /// 
@@ -88,10 +88,7 @@ public ASCIIFoldingFilter(TokenStream input, bool preserveOriginal)
         /// 
         public bool PreserveOriginal
         {
-            get
-            {
-                return preserveOriginal;
-            }
+            get { return preserveOriginal; }
         }
 
         public override bool IncrementToken()
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilterFactory.cs
index 8d0f08518c..5155908f17 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilterFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/ASCIIFoldingFilterFactory.cs
@@ -3,7 +3,6 @@
 
 namespace Lucene.Net.Analysis.Miscellaneous
 {
-
     /*
      * Licensed to the Apache Software Foundation (ASF) under one or more
      * contributor license agreements.  See the NOTICE file distributed with
@@ -20,6 +19,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
      * See the License for the specific language governing permissions and
      * limitations under the License.
      */
+
     /// 
     /// Factory for .
     /// 
@@ -30,7 +30,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
     ///   </analyzer>
     /// </fieldType>
///
- public class ASCIIFoldingFilterFactory : TokenFilterFactory, MultiTermAwareComponent + public class ASCIIFoldingFilterFactory : TokenFilterFactory, IMultiTermAwareComponent { private readonly bool preserveOriginal; @@ -39,7 +39,7 @@ public class ASCIIFoldingFilterFactory : TokenFilterFactory, MultiTermAwareCompo public ASCIIFoldingFilterFactory(IDictionary args) : base(args) { - preserveOriginal = getBoolean(args, "preserveOriginal", false); + preserveOriginal = GetBoolean(args, "preserveOriginal", false); if (args.Count > 0) { throw new System.ArgumentException("Unknown parameters: " + args); @@ -53,10 +53,7 @@ public override TokenStream Create(TokenStream input) public virtual AbstractAnalysisFactory MultiTermComponent { - get - { - return this; - } + get { return this; } } } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicFilter.cs index 60bd1dd685..f760f16340 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicFilter.cs @@ -2,7 +2,6 @@ namespace Lucene.Net.Analysis.Standard { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -48,7 +47,7 @@ public ClassicFilter(TokenStream @in) /// Removes dots from acronyms. /// ///
- public override bool IncrementToken() + public override sealed bool IncrementToken() { if (!input.IncrementToken()) { @@ -81,5 +80,4 @@ public override bool IncrementToken() return true; } } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicFilterFactory.cs index 45d7cd0af0..d310f6851d 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicFilterFactory.cs @@ -3,7 +3,6 @@ namespace Lucene.Net.Analysis.Standard { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -20,6 +19,7 @@ namespace Lucene.Net.Analysis.Standard * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Factory for . ///
@@ -49,5 +49,4 @@ public override TokenStream Create(TokenStream input)
             return new ClassicFilter(input);
         }
     }
-
 }
\ No newline at end of file
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizer.cs
index 3ef7a9e64d..9f0d2c63d3 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizer.cs
@@ -1,27 +1,27 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using Lucene.Net.Analysis.Tokenattributes;
+using Lucene.Net.Analysis.Tokenattributes;
 using Lucene.Net.Util;
 using org.apache.lucene.analysis.standard;
 using Reader = System.IO.TextReader;
 
 namespace Lucene.Net.Analysis.Standard
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// 
     /// A grammar-based tokenizer constructed with JFlex
     /// 
@@ -50,7 +50,7 @@ public sealed class ClassicTokenizer : Tokenizer
     {
         /// 
         /// A private instance of the JFlex-constructed scanner 
-        private StandardTokenizerInterface scanner;
+        private IStandardTokenizerInterface scanner;
 
         public const int ALPHANUM = 0;
         public const int APOSTROPHE = 1;
@@ -117,14 +117,18 @@ public ClassicTokenizer(LuceneVersion matchVersion, AttributeFactory factory, Re
         private void Init(LuceneVersion matchVersion)
         {
             this.scanner = new ClassicTokenizerImpl(input);
+            this.termAtt = AddAttribute();
+            this.offsetAtt = AddAttribute();
+            this.posIncrAtt = AddAttribute();
+            this.typeAtt = AddAttribute();
         }
 
         // this tokenizer generates three attributes:
         // term offset, positionIncrement and type
-        private readonly CharTermAttribute termAtt;
-        private readonly OffsetAttribute offsetAtt;
-        private readonly PositionIncrementAttribute posIncrAtt;
-        private readonly TypeAttribute typeAtt;
+        private ICharTermAttribute termAtt;
+        private IOffsetAttribute offsetAtt;
+        private IPositionIncrementAttribute posIncrAtt;
+        private ITypeAttribute typeAtt;
         /*
          * (non-Javadoc)
          *
@@ -144,12 +148,12 @@ public override bool IncrementToken()
                     return false;
                 }
 
-                if (scanner.yylength() <= maxTokenLength)
+                if (scanner.YyLength <= maxTokenLength)
                 {
                     posIncrAtt.PositionIncrement = skippedPositions + 1;
-                    scanner.getText(termAtt);
+                    scanner.GetText(termAtt);
 
-                    int start = scanner.yychar();
+                    int start = scanner.YyChar;
                     offsetAtt.SetOffset(CorrectOffset(start), CorrectOffset(start + termAtt.Length));
 
                     if (tokenType == ClassicTokenizer.ACRONYM_DEP)
@@ -176,7 +180,7 @@ public override void End()
         {
             base.End();
             // set final offset
-            int finalOffset = CorrectOffset(scanner.yychar() + scanner.yylength());
+            int finalOffset = CorrectOffset(scanner.YyChar + scanner.YyLength);
             offsetAtt.SetOffset(finalOffset, finalOffset);
             // adjust any skipped tokens
             posIncrAtt.PositionIncrement = posIncrAtt.PositionIncrement + skippedPositions;
@@ -185,15 +189,14 @@ public override void End()
         public override void Dispose()
         {
             base.Dispose();
-            scanner.yyreset(input);
+            scanner.YyReset(input);
         }
 
         public override void Reset()
         {
             base.Reset();
-            scanner.yyreset(input);
+            scanner.YyReset(input);
             skippedPositions = 0;
         }
     }
-
 }
\ No newline at end of file
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerFactory.cs
index 5b6442e97b..117124e296 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerFactory.cs
@@ -1,62 +1,58 @@
-using System.Collections.Generic;
-using Lucene.Net.Analysis.Standard;
+using Lucene.Net.Analysis.Standard;
+using System.Collections.Generic;
+using System.IO;
 using TokenizerFactory = Lucene.Net.Analysis.Util.TokenizerFactory;
 
-namespace org.apache.lucene.analysis.standard
+namespace Lucene.Net.Analysis.Standard
 {
-
-	/*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
-
-	using TokenizerFactory = TokenizerFactory;
-	using AttributeFactory = org.apache.lucene.util.AttributeSource.AttributeFactory;
-
-
-	/// 
-	/// Factory for .
-	/// 
-	/// <fieldType name="text_clssc" class="solr.TextField" positionIncrementGap="100">
-	///   <analyzer>
-	///     <tokenizer class="solr.ClassicTokenizerFactory" maxTokenLength="120"/>
-	///   </analyzer>
-	/// </fieldType>
- ///
- public class ClassicTokenizerFactory : TokenizerFactory - { - private readonly int maxTokenLength; - - /// - /// Creates a new ClassicTokenizerFactory - public ClassicTokenizerFactory(IDictionary args) : base(args) - { - assureMatchVersion(); - maxTokenLength = getInt(args, "maxTokenLength", StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH); - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } - - public override ClassicTokenizer create(AttributeFactory factory, Reader input) - { - ClassicTokenizer tokenizer = new ClassicTokenizer(luceneMatchVersion, factory, input); - tokenizer.MaxTokenLength = maxTokenLength; - return tokenizer; - } - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// Factory for . + ///
+    /// <fieldType name="text_clssc" class="solr.TextField" positionIncrementGap="100">
+    ///   <analyzer>
+    ///     <tokenizer class="solr.ClassicTokenizerFactory" maxTokenLength="120"/>
+    ///   </analyzer>
+    /// </fieldType>
+ ///
+ public class ClassicTokenizerFactory : TokenizerFactory + { + private readonly int maxTokenLength; + + /// + /// Creates a new ClassicTokenizerFactory + public ClassicTokenizerFactory(IDictionary args) + : base(args) + { + AssureMatchVersion(); + maxTokenLength = GetInt(args, "maxTokenLength", StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH); + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + + public override Tokenizer Create(Net.Util.AttributeSource.AttributeFactory factory, System.IO.TextReader input) + { + ClassicTokenizer tokenizer = new ClassicTokenizer(luceneMatchVersion, factory, input); + tokenizer.MaxTokenLength = maxTokenLength; + return tokenizer; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs index 0798ff97dd..8586241167 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs @@ -7,713 +7,707 @@ namespace Lucene.Net.Analysis.Standard { - - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /* + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /* - WARNING: if you change ClassicTokenizerImpl.jflex and need to regenerate - the tokenizer, only use the trunk version of JFlex 1.5 at the moment! + WARNING: if you change ClassicTokenizerImpl.jflex and need to regenerate + the tokenizer, only use the trunk version of JFlex 1.5 at the moment! - */ + */ /// - /// This class implements the classic lucene StandardTokenizer up until 3.0 - /// - - internal class ClassicTokenizerImpl : StandardTokenizerInterface - { - - /// - /// This character denotes the end of file - //public const int StandardTokenizerInterface_Fields; - - /// - /// initial size of the lookahead buffer - private const int ZZ_BUFFERSIZE = 4096; - - /// - /// lexical states - public const int YYINITIAL = 0; - - /// - /// ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l - /// ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l - /// at the beginning of a line - /// l is of the form l = 2*k, k a non negative integer - /// - private static readonly int[] ZZ_LEXSTATE = {}; - - /// - /// Translates characters to character classes - /// - private const string ZZ_CMAP_PACKED = "\x0026\0\x0001\x0005\x0001\x0003\x0004\0\x0001\x0009\x0001\x0007\x0001\x0004\x0001\x0009\x000A\x0002\x0006\0" + "\x0001\x0006\x001A\x000A\x0004\0\x0001\x0008\x0001\0\x001A\x000A\x002F\0\x0001\x000A\x000A\0\x0001\x000A" + "\x0004\0\x0001\x000A\x0005\0\x0017\x000A\x0001\0\x001F\x000A\x0001\0\u0128\x000A\x0002\0\x0012\x000A" + "\x001C\0\x005E\x000A\x0002\0\x0009\x000A\x0002\0\x0007\x000A\x000E\0\x0002\x000A\x000E\0\x0005\x000A" + "\x0009\0\x0001\x000A\x008B\0\x0001\x000A\x000B\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0014\x000A\x0001\0\x002C\x000A\x0001\0\x0008\x000A\x0002\0\x001A\x000A\x000C\0\x0082\x000A" + "\x000A\0\x0039\x000A\x0002\0\x0002\x000A\x0002\0\x0002\x000A\x0003\0\x0026\x000A\x0002\0\x0002\x000A" + "\x0037\0\x0026\x000A\x0002\0\x0001\x000A\x0007\0\x0027\x000A\x0048\0\x001B\x000A\x0005\0\x0003\x000A" + "\x002E\0\x001A\x000A\x0005\0\x000B\x000A\x0015\0\x000A\x0002\x0007\0\x0063\x000A\x0001\0\x0001\x000A" + "\x000F\0\x0002\x000A\x0009\0\x000A\x0002\x0003\x000A\x0013\0\x0001\x000A\x0001\0\x001B\x000A\x0053\0" + "\x0026\x000A\u015f\0\x0035\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A\x0007\0\x000A\x000A\x0004\0" + "\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0001\x000A\x0003\0\x0004\x000A\x0022\0\x0002\x000A\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0002\x000A" + "\x0013\0\x0006\x000A\x0004\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0\x0002\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x001F\0\x0004\x000A\x0001\0\x0001\x000A\x0007\0\x000A\x0002" + "\x0002\0\x0003\x000A\x0010\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0001\0\x0005\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A" + "\x000F\0\x0001\x000A\x0005\0\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0002\0\x0004\x000A\x0003\0\x0001\x000A\x001E\0\x0002\x000A" + "\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0015\0\x0006\x000A\x0003\0\x0003\x000A\x0001\0\x0004\x000A" + "\x0003\0\x0002\x000A\x0001\0\x0001\x000A\x0001\0\x0002\x000A\x0003\0\x0002\x000A\x0003\0\x0003\x000A" + "\x0003\0\x0008\x000A\x0001\0\x0003\x000A\x002D\0\x0009\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002" + "\x0015\0\x0008\x000A\x0001\0\x0003\x000A\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A" + "\x0024\0\x0001\x000A\x0001\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x0010\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0012\x000A" + "\x0003\0\x0018\x000A\x0001\0\x0009\x000A\x0001\0\x0001\x000A\x0002\0\x0007\x000A\x0039\0\x0001\x0001" + "\x0030\x000A\x0001\x0001\x0002\x000A\x000C\x0001\x0007\x000A\x0009\x0001\x000A\x0002\x0027\0\x0002\x000A\x0001\0" + "\x0001\x000A\x0002\0\x0002\x000A\x0001\0\x0001\x000A\x0002\0\x0001\x000A\x0006\0\x0004\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0002\0\x0002\x000A\x0001\0" + "\x0004\x000A\x0001\0\x0002\x000A\x0009\0\x0001\x000A\x0002\0\x0005\x000A\x0001\0\x0001\x000A\x0009\0" + "\x000A\x0002\x0002\0\x0002\x000A\x0022\0\x0001\x000A\x001F\0\x000A\x0002\x0016\0\x0008\x000A\x0001\0" + "\x0022\x000A\x001D\0\x0004\x000A\x0074\0\x0022\x000A\x0001\0\x0005\x000A\x0001\0\x0002\x000A\x0015\0" + "\x000A\x0002\x0006\0\x0006\x000A\x004A\0\x0026\x000A\x000A\0\x0027\x000A\x0009\0\x005A\x000A\x0005\0" + "\x0044\x000A\x0005\0\x0052\x000A\x0006\0\x0007\x000A\x0001\0\x003F\x000A\x0001\0\x0001\x000A\x0001\0" + "\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0027\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0017\x000A\x0001\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0" + "\x0027\x000A\x0001\0\x0013\x000A\x000E\0\x0009\x0002\x002E\0\x0055\x000A\x000C\0\u026c\x000A\x0002\0" + "\x0008\x000A\x000A\0\x001A\x000A\x0005\0\x004B\x000A\x0095\0\x0034\x000A\x002C\0\x000A\x0002\x0026\0" + "\x000A\x0002\x0006\0\x0058\x000A\x0008\0\x0029\x000A\u0557\0\x009C\x000A\x0004\0\x005A\x000A\x0006\0" + "\x0016\x000A\x0002\0\x0006\x000A\x0002\0\x0026\x000A\x0002\0\x0006\x000A\x0002\0\x0008\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x001F\x000A\x0002\0\x0035\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0003\0\x0003\x000A\x0001\0\x0007\x000A\x0003\0\x0004\x000A\x0002\0" + "\x0006\x000A\x0004\0\x000D\x000A\x0005\0\x0003\x000A\x0001\0\x0007\x000A\x0082\0\x0001\x000A\x0082\0" + "\x0001\x000A\x0004\0\x0001\x000A\x0002\0\x000A\x000A\x0001\0\x0001\x000A\x0003\0\x0005\x000A\x0006\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0001\0\x0003\x000A\x0001\0" + "\x0007\x000A\u0ecb\0\x0002\x000A\x002A\0\x0005\x000A\x000A\0\x0001\x000B\x0054\x000B\x0008\x000B\x0002\x000B" + "\x0002\x000B\x005A\x000B\x0001\x000B\x0003\x000B\x0006\x000B\x0028\x000B\x0003\x000B\x0001\0\x005E\x000A\x0011\0" + "\x0018\x000A\x0038\0\x0010\x000B\u0100\0\x0080\x000B\x0080\0\u19b6\x000B\x000A\x000B\x0040\0\u51a6\x000B" + "\x005A\x000B\u048d\x000A\u0773\0\u2ba4\x000A\u215c\0\u012e\x000B\x00D2\x000B\x0007\x000A\x000C\0\x0005\x000A" + "\x0005\0\x0001\x000A\x0001\0\x000A\x000A\x0001\0\x000D\x000A\x0001\0\x0005\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x0001\0\x006C\x000A\x0021\0\u016b\x000A\x0012\0\x0040\x000A" + "\x0002\0\x0036\x000A\x0028\0\x000C\x000A\x0074\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0087\x000A" + "\x0013\0\x000A\x0002\x0007\0\x001A\x000A\x0006\0\x001A\x000A\x000A\0\x0001\x000B\x003A\x000B\x001F\x000A" + "\x0003\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0003\x000A\x0023\0"; - - /// - /// Translates characters to character classes - /// - private static readonly char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); - - /// - /// Translates DFA states to action switch labels. - /// - private static readonly int[] ZZ_ACTION = zzUnpackAction(); - - private const string ZZ_ACTION_PACKED_0 = "\x0001\0\x0001\x0001\x0003\x0002\x0001\x0003\x000B\0\x0001\x0002\x0003\x0004\x0002\0" + "\x0001\x0005\x0001\0\x0001\x0005\x0003\x0004\x0006\x0005\x0001\x0006\x0001\x0004\x0002\x0007" + "\x0001\x0008\x0001\0\x0001\x0008\x0003\0\x0002\x0008\x0001\x0009\x0001\x000A\x0001\x0004"; - - private static int [] zzUnpackAction() - { - int[] result = new int[50]; - int offset = 0; - offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAction(string packed, int offset, int[] result) - { - int i = 0; // index in packed string - int j = offset; // index in unpacked array - int l = packed.Length; - while (i < l) - { - int count = packed[i++]; - int value = packed[i++]; - do - { - result[j++] = value; - } while (--count > 0); - } - return j; - } - - - /// - /// Translates a state to a row index in the transition table - /// - private static readonly int[] ZZ_ROWMAP = zzUnpackRowMap(); - - private const string ZZ_ROWMAP_PACKED_0 = "\0\0\0\x000C\0\x0018\0\x0024\0\x0030\0\x000C\0\x003C\0\x0048" + "\0\x0054\0\x0060\0\x006C\0\x0078\0\x0084\0\x0090\0\x009C\0\x00A8" + "\0\x00B4\0\x00C0\0\x00CC\0\x00D8\0\x00E4\0\x00F0\0\x00FC\0\u0108" + "\0\u0114\0\u0120\0\u012c\0\u0138\0\u0144\0\u0150\0\u015c\0\u0168" + "\0\u0174\0\u0180\0\u018c\0\u0198\0\u01a4\0\x00A8\0\u01b0\0\u01bc" + "\0\u01c8\0\u01d4\0\u01e0\0\u01ec\0\u01f8\0\x003C\0\x006C\0\u0204" + "\0\u0210\0\u021c"; - - private static int [] zzUnpackRowMap() - { - int[] result = new int[50]; - int offset = 0; - offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackRowMap(string packed, int offset, int[] result) - { - int i = 0; // index in packed string - int j = offset; // index in unpacked array - int l = packed.Length; - while (i < l) - { - int high = packed[i++] << 16; - result[j++] = high | packed[i++]; - } - return j; - } - - /// - /// The transition table of the DFA - /// - private static readonly int[] ZZ_TRANS = zzUnpackTrans(); - - private const string ZZ_TRANS_PACKED_0 = "\x0001\x0002\x0001\x0003\x0001\x0004\x0007\x0002\x0001\x0005\x0001\x0006\x000D\0\x0002\x0003" + "\x0001\0\x0001\x0007\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x0003\x0002\0" + "\x0001\x0003\x0001\x0004\x0001\0\x0001\x000B\x0001\0\x0001\x0008\x0002\x000C\x0001\x000D" + "\x0001\x0004\x0002\0\x0001\x0003\x0001\x0004\x0001\x000E\x0001\x000F\x0001\x0010\x0001\x0011" + "\x0002\x0009\x0001\x000A\x0001\x0012\x0002\0\x0001\x0013\x0001\x0014\x0007\0\x0001\x0015" + "\x0002\0\x0002\x0016\x0007\0\x0001\x0016\x0002\0\x0001\x0017\x0001\x0018\x0007\0" + "\x0001\x0019\x0003\0\x0001\x001A\x0007\0\x0001\x000A\x0002\0\x0001\x001B\x0001\x001C" + "\x0007\0\x0001\x001D\x0002\0\x0001\x001E\x0001\x001F\x0007\0\x0001\x0020\x0002\0" + "\x0001\x0021\x0001\x0022\x0007\0\x0001\x0023\x000B\0\x0001\x0024\x0002\0\x0001\x0013" + "\x0001\x0014\x0007\0\x0001\x0025\x000B\0\x0001\x0026\x0002\0\x0002\x0016\x0007\0" + "\x0001\x0027\x0002\0\x0001\x0003\x0001\x0004\x0001\x000E\x0001\x0007\x0001\x0010\x0001\x0011" + "\x0002\x0009\x0001\x000A\x0001\x0012\x0002\0\x0002\x0013\x0001\0\x0001\x0028\x0001\0" + "\x0001\x0008\x0002\x0029\x0001\0\x0001\x0013\x0002\0\x0001\x0013\x0001\x0014\x0001\0" + "\x0001\x002A\x0001\0\x0001\x0008\x0002\x002B\x0001\x002C\x0001\x0014\x0002\0\x0001\x0013" + "\x0001\x0014\x0001\0\x0001\x0028\x0001\0\x0001\x0008\x0002\x0029\x0001\0\x0001\x0015" + "\x0002\0\x0002\x0016\x0001\0\x0001\x002D\x0002\0\x0001\x002D\x0002\0\x0001\x0016" + "\x0002\0\x0002\x0017\x0001\0\x0001\x0029\x0001\0\x0001\x0008\x0002\x0029\x0001\0" + "\x0001\x0017\x0002\0\x0001\x0017\x0001\x0018\x0001\0\x0001\x002B\x0001\0\x0001\x0008" + "\x0002\x002B\x0001\x002C\x0001\x0018\x0002\0\x0001\x0017\x0001\x0018\x0001\0\x0001\x0029" + "\x0001\0\x0001\x0008\x0002\x0029\x0001\0\x0001\x0019\x0003\0\x0001\x001A\x0001\0" + "\x0001\x002C\x0002\0\x0003\x002C\x0001\x001A\x0002\0\x0002\x001B\x0001\0\x0001\x002E" + "\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x001B\x0002\0\x0001\x001B\x0001\x001C" + "\x0001\0\x0001\x002F\x0001\0\x0001\x0008\x0002\x000C\x0001\x000D\x0001\x001C\x0002\0" + "\x0001\x001B\x0001\x001C\x0001\0\x0001\x002E\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A" + "\x0001\x001D\x0002\0\x0002\x001E\x0001\0\x0001\x0009\x0001\0\x0001\x0008\x0002\x0009" + "\x0001\x000A\x0001\x001E\x0002\0\x0001\x001E\x0001\x001F\x0001\0\x0001\x000C\x0001\0" + "\x0001\x0008\x0002\x000C\x0001\x000D\x0001\x001F\x0002\0\x0001\x001E\x0001\x001F\x0001\0" + "\x0001\x0009\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x0020\x0002\0\x0002\x0021" + "\x0001\0\x0001\x000A\x0002\0\x0003\x000A\x0001\x0021\x0002\0\x0001\x0021\x0001\x0022" + "\x0001\0\x0001\x000D\x0002\0\x0003\x000D\x0001\x0022\x0002\0\x0001\x0021\x0001\x0022" + "\x0001\0\x0001\x000A\x0002\0\x0003\x000A\x0001\x0023\x0004\0\x0001\x000E\x0006\0" + "\x0001\x0024\x0002\0\x0001\x0013\x0001\x0014\x0001\0\x0001\x0030\x0001\0\x0001\x0008" + "\x0002\x0029\x0001\0\x0001\x0015\x0002\0\x0002\x0016\x0001\0\x0001\x002D\x0002\0" + "\x0001\x002D\x0002\0\x0001\x0027\x0002\0\x0002\x0013\x0007\0\x0001\x0013\x0002\0" + "\x0002\x0017\x0007\0\x0001\x0017\x0002\0\x0002\x001B\x0007\0\x0001\x001B\x0002\0" + "\x0002\x001E\x0007\0\x0001\x001E\x0002\0\x0002\x0021\x0007\0\x0001\x0021\x0002\0" + "\x0002\x0031\x0007\0\x0001\x0031\x0002\0\x0002\x0013\x0007\0\x0001\x0032\x0002\0" + "\x0002\x0031\x0001\0\x0001\x002D\x0002\0\x0001\x002D\x0002\0\x0001\x0031\x0002\0" + "\x0002\x0013\x0001\0\x0001\x0030\x0001\0\x0001\x0008\x0002\x0029\x0001\0\x0001\x0013" + "\x0001\0"; - - private static int [] zzUnpackTrans() - { - int[] result = new int[552]; - int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackTrans(string packed, int offset, int[] result) - { - int i = 0; // index in packed string - int j = offset; // index in unpacked array - int l = packed.Length; - while (i < l) - { - int count = packed[i++]; - int value = packed[i++]; - value--; - do - { - result[j++] = value; - } while (--count > 0); - } - return j; - } - - - /* error codes */ - private const int ZZ_UNKNOWN_ERROR = 0; - private const int ZZ_NO_MATCH = 1; - private const int ZZ_PUSHBACK_2BIG = 2; - - /* error messages for the codes above */ - private static readonly string[] ZZ_ERROR_MSG = {}; - - /// - /// ZZ_ATTRIBUTE[aState] contains the attributes of state aState - /// - private static readonly int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private const string ZZ_ATTRIBUTE_PACKED_0 = "\x0001\0\x0001\x0009\x0003\x0001\x0001\x0009\x000B\0\x0004\x0001\x0002\0\x0001\x0001" + "\x0001\0\x000F\x0001\x0001\0\x0001\x0001\x0003\0\x0005\x0001"; - - private static int [] zzUnpackAttribute() - { - int[] result = new int[50]; - int offset = 0; - offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAttribute(string packed, int offset, int[] result) - { - int i = 0; // index in packed string - int j = offset; // index in unpacked array - int l = packed.Length; - while (i < l) - { - int count = packed[i++]; - int value = packed[i++]; - do - { - result[j++] = value; - } while (--count > 0); - } - return j; - } - - /// - /// the input device - private TextReader zzReader; - - /// - /// the current state of the DFA - private int zzState; - - /// - /// the current lexical state - private int zzLexicalState = YYINITIAL; - - /// - /// this buffer contains the current text to be matched and is - /// the source of the yytext() string - /// - private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; - - /// - /// the textposition at the last accepting state - private int zzMarkedPos; - - /// - /// the current text position in the buffer - private int zzCurrentPos; - - /// - /// startRead marks the beginning of the yytext() string in the buffer - private int zzStartRead; - - /// - /// endRead marks the last character in the buffer, that has been read - /// from input - /// - private int zzEndRead; - - /// - /// number of newlines encountered up to the start of the matched text - private int yyline; - - /// - /// the number of characters up to the start of the matched text - private int yychar_Renamed; - - /// - /// the number of characters from the last newline up to the start of the - /// matched text - /// - private int yycolumn; - - /// - /// zzAtBOL == true <=> the scanner is currently at the beginning of a line - /// - private bool zzAtBOL = true; - - /// - /// zzAtEOF == true <=> the scanner is at the EOF - private bool zzAtEOF; - - /// - /// denotes if the user-EOF-code has already been executed - private bool zzEOFDone; - - /* user code: */ - - public const int ALPHANUM = StandardTokenizer.ALPHANUM; - public const int APOSTROPHE = StandardTokenizer.APOSTROPHE; - public const int ACRONYM = StandardTokenizer.ACRONYM; - public const int COMPANY = StandardTokenizer.COMPANY; - public const int EMAIL = StandardTokenizer.EMAIL; - public const int HOST = StandardTokenizer.HOST; - public const int NUM = StandardTokenizer.NUM; - public const int CJ = StandardTokenizer.CJ; - public const int ACRONYM_DEP = StandardTokenizer.ACRONYM_DEP; - - public static readonly string[] TOKEN_TYPES = StandardTokenizer.TOKEN_TYPES; - - public int yychar() - { - return yychar_Renamed; - } - - /// - /// Fills CharTermAttribute with the current token text. - /// - public void getText(ICharTermAttribute t) - { - t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); - } - - - - /// - /// Creates a new scanner - /// - /// the java.io.Reader to read input from. - internal ClassicTokenizerImpl(Reader @in) - { - this.zzReader = @in; - } - - - /// - /// Unpacks the compressed character translation table. - /// - /// the packed character translation table - /// the unpacked character translation table - private static char [] zzUnpackCMap(string packed) - { - char[] map = new char[0x10000]; - int i = 0; // index in packed string - int j = 0; // index in unpacked array - while (i < 1138) - { - int count = packed[i++]; - char value = packed[i++]; - do - { - map[j++] = value; - } while (--count > 0); - } - return map; - } - - - /// - /// Refills the input buffer. - /// - /// false, iff there was new input. - /// - /// if any I/O-Error occurs -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private boolean zzRefill() throws java.io.IOException - private bool zzRefill() - { - - /* first: make room (if you can) */ - if (zzStartRead > 0) - { - Array.Copy(zzBuffer, zzStartRead, zzBuffer, 0, zzEndRead - zzStartRead); - - /* translate stored positions */ - zzEndRead -= zzStartRead; - zzCurrentPos -= zzStartRead; - zzMarkedPos -= zzStartRead; - zzStartRead = 0; - } - - /* is the buffer big enough? */ - if (zzCurrentPos >= zzBuffer.Length) - { - /* if not: blow it up */ - char[] newBuffer = new char[zzCurrentPos * 2]; - Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); - zzBuffer = newBuffer; - } - - /* finally: fill the buffer with new input */ - int numRead = zzReader.Read(zzBuffer, zzEndRead, zzBuffer.Length - zzEndRead); - - if (numRead > 0) - { - zzEndRead += numRead; - return false; - } - // unlikely but not impossible: read 0 characters, but not at end of stream - if (numRead == 0) - { - int c = zzReader.Read(); - if (c == -1) - { - return true; - } - else - { - zzBuffer[zzEndRead++] = (char) c; - return false; - } - } - - // numRead < 0 - return true; - } - - - /// - /// Closes the input stream. - /// - public void yyclose() - { - zzAtEOF = true; // indicate end of file - zzEndRead = zzStartRead; // invalidate buffer - - if (zzReader != null) - { - zzReader.Close(); - } - } - - - /// - /// Resets the scanner to read from a new input stream. - /// Does not close the old reader. - /// - /// All internal variables are reset, the old input stream - /// cannot be reused (internal buffer is discarded and lost). - /// Lexical state is set to ZZ_INITIAL. - /// - /// Internal scan buffer is resized down to its initial length, if it has grown. - /// - /// the new input stream - public void yyreset(Reader reader) - { - zzReader = reader; - zzAtBOL = true; - zzAtEOF = false; - zzEOFDone = false; - zzEndRead = zzStartRead = 0; - zzCurrentPos = zzMarkedPos = 0; - yyline = yychar_Renamed = yycolumn = 0; - zzLexicalState = YYINITIAL; - if (zzBuffer.Length > ZZ_BUFFERSIZE) - { - zzBuffer = new char[ZZ_BUFFERSIZE]; - } - } - - - /// - /// Returns the current lexical state. - /// - public int yystate() - { - return zzLexicalState; - } - - - /// - /// Enters a new lexical state - /// - /// the new lexical state - public void yybegin(int newState) - { - zzLexicalState = newState; - } - - - /// - /// Returns the text matched by the current regular expression. - /// - public string yytext() - { - return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); - } - - - /// - /// Returns the character at position pos from the - /// matched text. - /// - /// It is equivalent to yytext().charAt(pos), but faster - /// - /// the position of the character to fetch. - /// A value from 0 to yylength()-1. - /// - /// the character at position pos - public char yycharat(int pos) - { - return zzBuffer[zzStartRead + pos]; - } - - - /// - /// Returns the length of the matched text region. - /// - public int yylength() - { - return zzMarkedPos - zzStartRead; - } - - - /// - /// Reports an error that occured while scanning. - /// - /// In a wellformed scanner (no or only correct usage of - /// yypushback(int) and a match-all fallback rule) this method - /// will only be called with things that "Can't Possibly Happen". - /// If this method is called, something is seriously wrong - /// (e.g. a JFlex bug producing a faulty scanner etc.). - /// - /// Usual syntax/scanner level error handling should be done - /// in error fallback rules. - /// - /// the code of the errormessage to display - private void zzScanError(int errorCode) - { - string message; - try - { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (System.IndexOutOfRangeException) - { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Exception(message); - } - - - /// - /// Pushes the specified amount of characters back into the input stream. - /// - /// They will be read again by then next call of the scanning method - /// - /// the number of characters to be read again. - /// This number must not be greater than yylength()! - public virtual void yypushback(int number) - { - if (number > yylength()) - { - zzScanError(ZZ_PUSHBACK_2BIG); - } - - zzMarkedPos -= number; - } - - - /// - /// Resumes scanning until the next regular expression is matched, - /// the end of input is encountered or an I/O-Error occurs. - /// - /// the next token - /// if any I/O-Error occurs - public virtual int NextToken - { - get - { - int zzInput; - int zzAction; - - // cached fields: - int zzCurrentPosL; - int zzMarkedPosL; - int zzEndReadL = zzEndRead; - char[] zzBufferL = zzBuffer; - char[] zzCMapL = ZZ_CMAP; - - int[] zzTransL = ZZ_TRANS; - int[] zzRowMapL = ZZ_ROWMAP; - int[] zzAttrL = ZZ_ATTRIBUTE; - - while (true) - { - zzMarkedPosL = zzMarkedPos; - - yychar_Renamed += zzMarkedPosL - zzStartRead; - - zzAction = -1; - - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - - zzState = ZZ_LEXSTATE[zzLexicalState]; - - // set up zzAction for empty match case: - int zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) - { - zzAction = zzState; - } - - - { - while (true) - { - - if (zzCurrentPosL < zzEndReadL) - { - zzInput = zzBufferL[zzCurrentPosL++]; - } - else if (zzAtEOF) - { - zzInput = StandardTokenizerInterface_Fields.YYEOF; - goto zzForActionBreak; - } - else - { - // store back cached positions - zzCurrentPos = zzCurrentPosL; - zzMarkedPos = zzMarkedPosL; - bool eof = zzRefill(); - // get translated positions and possibly new buffer - zzCurrentPosL = zzCurrentPos; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - zzEndReadL = zzEndRead; - if (eof) - { - zzInput = StandardTokenizerInterface_Fields.YYEOF; - goto zzForActionBreak; - } - else - { - zzInput = zzBufferL[zzCurrentPosL++]; - } - } - int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; - if (zzNext == -1) - { - goto zzForActionBreak; - } - zzState = zzNext; - - zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) - { - zzAction = zzState; - zzMarkedPosL = zzCurrentPosL; - if ((zzAttributes & 8) == 8) - { - goto zzForActionBreak; - } - } - - } - } - zzForActionBreak: - - // store back cached position - zzMarkedPos = zzMarkedPosL; - - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) - { - case 1: - { // Break so we don't hit fall-through warning: - break; // ignore - } - goto case 11; - case 11: - break; - case 2: - { - return ALPHANUM; - } - case 12: - break; - case 3: - { - return CJ; - } - case 13: - break; - case 4: - { - return HOST; - } - case 14: - break; - case 5: - { - return NUM; - } - case 15: - break; - case 6: - { - return APOSTROPHE; - } - case 16: - break; - case 7: - { - return COMPANY; - } - case 17: - break; - case 8: - { - return ACRONYM_DEP; - } - case 18: - break; - case 9: - { - return ACRONYM; - } - case 19: - break; - case 10: - { - return EMAIL; - } - case 20: - break; - default: - if (zzInput == StandardTokenizerInterface_Fields.YYEOF && zzStartRead == zzCurrentPos) - { - zzAtEOF = true; - return StandardTokenizerInterface_Fields.YYEOF; - } - else - { - zzScanError(ZZ_NO_MATCH); - } - break; - } - } - } - } - - - } - + /// This class implements the classic lucene StandardTokenizer up until 3.0 + ///
+ + internal class ClassicTokenizerImpl : IStandardTokenizerInterface + { + + /// + /// This character denotes the end of file + //public const int StandardTokenizerInterface_Fields; + + /// + /// initial size of the lookahead buffer + private const int ZZ_BUFFERSIZE = 4096; + + /// + /// lexical states + public const int YYINITIAL = 0; + + /// + /// ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + /// ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + /// at the beginning of a line + /// l is of the form l = 2*k, k a non negative integer + /// + private static readonly int[] ZZ_LEXSTATE = { 0, 0 }; + + /// + /// Translates characters to character classes + /// + private const string ZZ_CMAP_PACKED = "\x0026\0\x0001\x0005\x0001\x0003\x0004\0\x0001\x0009\x0001\x0007\x0001\x0004\x0001\x0009\x000A\x0002\x0006\0" + "\x0001\x0006\x001A\x000A\x0004\0\x0001\x0008\x0001\0\x001A\x000A\x002F\0\x0001\x000A\x000A\0\x0001\x000A" + "\x0004\0\x0001\x000A\x0005\0\x0017\x000A\x0001\0\x001F\x000A\x0001\0\u0128\x000A\x0002\0\x0012\x000A" + "\x001C\0\x005E\x000A\x0002\0\x0009\x000A\x0002\0\x0007\x000A\x000E\0\x0002\x000A\x000E\0\x0005\x000A" + "\x0009\0\x0001\x000A\x008B\0\x0001\x000A\x000B\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0014\x000A\x0001\0\x002C\x000A\x0001\0\x0008\x000A\x0002\0\x001A\x000A\x000C\0\x0082\x000A" + "\x000A\0\x0039\x000A\x0002\0\x0002\x000A\x0002\0\x0002\x000A\x0003\0\x0026\x000A\x0002\0\x0002\x000A" + "\x0037\0\x0026\x000A\x0002\0\x0001\x000A\x0007\0\x0027\x000A\x0048\0\x001B\x000A\x0005\0\x0003\x000A" + "\x002E\0\x001A\x000A\x0005\0\x000B\x000A\x0015\0\x000A\x0002\x0007\0\x0063\x000A\x0001\0\x0001\x000A" + "\x000F\0\x0002\x000A\x0009\0\x000A\x0002\x0003\x000A\x0013\0\x0001\x000A\x0001\0\x001B\x000A\x0053\0" + "\x0026\x000A\u015f\0\x0035\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A\x0007\0\x000A\x000A\x0004\0" + "\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0001\x000A\x0003\0\x0004\x000A\x0022\0\x0002\x000A\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0002\x000A" + "\x0013\0\x0006\x000A\x0004\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0\x0002\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x001F\0\x0004\x000A\x0001\0\x0001\x000A\x0007\0\x000A\x0002" + "\x0002\0\x0003\x000A\x0010\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0001\0\x0005\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A" + "\x000F\0\x0001\x000A\x0005\0\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0002\0\x0004\x000A\x0003\0\x0001\x000A\x001E\0\x0002\x000A" + "\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0015\0\x0006\x000A\x0003\0\x0003\x000A\x0001\0\x0004\x000A" + "\x0003\0\x0002\x000A\x0001\0\x0001\x000A\x0001\0\x0002\x000A\x0003\0\x0002\x000A\x0003\0\x0003\x000A" + "\x0003\0\x0008\x000A\x0001\0\x0003\x000A\x002D\0\x0009\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002" + "\x0015\0\x0008\x000A\x0001\0\x0003\x000A\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A" + "\x0024\0\x0001\x000A\x0001\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x0010\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0012\x000A" + "\x0003\0\x0018\x000A\x0001\0\x0009\x000A\x0001\0\x0001\x000A\x0002\0\x0007\x000A\x0039\0\x0001\x0001" + "\x0030\x000A\x0001\x0001\x0002\x000A\x000C\x0001\x0007\x000A\x0009\x0001\x000A\x0002\x0027\0\x0002\x000A\x0001\0" + "\x0001\x000A\x0002\0\x0002\x000A\x0001\0\x0001\x000A\x0002\0\x0001\x000A\x0006\0\x0004\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0002\0\x0002\x000A\x0001\0" + "\x0004\x000A\x0001\0\x0002\x000A\x0009\0\x0001\x000A\x0002\0\x0005\x000A\x0001\0\x0001\x000A\x0009\0" + "\x000A\x0002\x0002\0\x0002\x000A\x0022\0\x0001\x000A\x001F\0\x000A\x0002\x0016\0\x0008\x000A\x0001\0" + "\x0022\x000A\x001D\0\x0004\x000A\x0074\0\x0022\x000A\x0001\0\x0005\x000A\x0001\0\x0002\x000A\x0015\0" + "\x000A\x0002\x0006\0\x0006\x000A\x004A\0\x0026\x000A\x000A\0\x0027\x000A\x0009\0\x005A\x000A\x0005\0" + "\x0044\x000A\x0005\0\x0052\x000A\x0006\0\x0007\x000A\x0001\0\x003F\x000A\x0001\0\x0001\x000A\x0001\0" + "\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0027\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0017\x000A\x0001\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0" + "\x0027\x000A\x0001\0\x0013\x000A\x000E\0\x0009\x0002\x002E\0\x0055\x000A\x000C\0\u026c\x000A\x0002\0" + "\x0008\x000A\x000A\0\x001A\x000A\x0005\0\x004B\x000A\x0095\0\x0034\x000A\x002C\0\x000A\x0002\x0026\0" + "\x000A\x0002\x0006\0\x0058\x000A\x0008\0\x0029\x000A\u0557\0\x009C\x000A\x0004\0\x005A\x000A\x0006\0" + "\x0016\x000A\x0002\0\x0006\x000A\x0002\0\x0026\x000A\x0002\0\x0006\x000A\x0002\0\x0008\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x001F\x000A\x0002\0\x0035\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0003\0\x0003\x000A\x0001\0\x0007\x000A\x0003\0\x0004\x000A\x0002\0" + "\x0006\x000A\x0004\0\x000D\x000A\x0005\0\x0003\x000A\x0001\0\x0007\x000A\x0082\0\x0001\x000A\x0082\0" + "\x0001\x000A\x0004\0\x0001\x000A\x0002\0\x000A\x000A\x0001\0\x0001\x000A\x0003\0\x0005\x000A\x0006\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0001\0\x0003\x000A\x0001\0" + "\x0007\x000A\u0ecb\0\x0002\x000A\x002A\0\x0005\x000A\x000A\0\x0001\x000B\x0054\x000B\x0008\x000B\x0002\x000B" + "\x0002\x000B\x005A\x000B\x0001\x000B\x0003\x000B\x0006\x000B\x0028\x000B\x0003\x000B\x0001\0\x005E\x000A\x0011\0" + "\x0018\x000A\x0038\0\x0010\x000B\u0100\0\x0080\x000B\x0080\0\u19b6\x000B\x000A\x000B\x0040\0\u51a6\x000B" + "\x005A\x000B\u048d\x000A\u0773\0\u2ba4\x000A\u215c\0\u012e\x000B\x00D2\x000B\x0007\x000A\x000C\0\x0005\x000A" + "\x0005\0\x0001\x000A\x0001\0\x000A\x000A\x0001\0\x000D\x000A\x0001\0\x0005\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x0001\0\x006C\x000A\x0021\0\u016b\x000A\x0012\0\x0040\x000A" + "\x0002\0\x0036\x000A\x0028\0\x000C\x000A\x0074\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0087\x000A" + "\x0013\0\x000A\x0002\x0007\0\x001A\x000A\x0006\0\x001A\x000A\x000A\0\x0001\x000B\x003A\x000B\x001F\x000A" + "\x0003\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0003\x000A\x0023\0"; + + /// + /// Translates characters to character classes + /// + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /// + /// Translates DFA states to action switch labels. + /// + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = "\x0001\0\x0001\x0001\x0003\x0002\x0001\x0003\x000B\0\x0001\x0002\x0003\x0004\x0002\0" + "\x0001\x0005\x0001\0\x0001\x0005\x0003\x0004\x0006\x0005\x0001\x0006\x0001\x0004\x0002\x0007" + "\x0001\x0008\x0001\0\x0001\x0008\x0003\0\x0002\x0008\x0001\x0009\x0001\x000A\x0001\x0004"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[50]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; // index in packed string + int j = offset; // index in unpacked array + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do + { + result[j++] = value; + } while (--count > 0); + } + return j; + } + + + /// + /// Translates a state to a row index in the transition table + /// + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private const string ZZ_ROWMAP_PACKED_0 = "\0\0\0\x000C\0\x0018\0\x0024\0\x0030\0\x000C\0\x003C\0\x0048" + "\0\x0054\0\x0060\0\x006C\0\x0078\0\x0084\0\x0090\0\x009C\0\x00A8" + "\0\x00B4\0\x00C0\0\x00CC\0\x00D8\0\x00E4\0\x00F0\0\x00FC\0\u0108" + "\0\u0114\0\u0120\0\u012c\0\u0138\0\u0144\0\u0150\0\u015c\0\u0168" + "\0\u0174\0\u0180\0\u018c\0\u0198\0\u01a4\0\x00A8\0\u01b0\0\u01bc" + "\0\u01c8\0\u01d4\0\u01e0\0\u01ec\0\u01f8\0\x003C\0\x006C\0\u0204" + "\0\u0210\0\u021c"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[50]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; // index in packed string + int j = offset; // index in unpacked array + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /// + /// The transition table of the DFA + /// + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + private const string ZZ_TRANS_PACKED_0 = "\x0001\x0002\x0001\x0003\x0001\x0004\x0007\x0002\x0001\x0005\x0001\x0006\x000D\0\x0002\x0003" + "\x0001\0\x0001\x0007\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x0003\x0002\0" + "\x0001\x0003\x0001\x0004\x0001\0\x0001\x000B\x0001\0\x0001\x0008\x0002\x000C\x0001\x000D" + "\x0001\x0004\x0002\0\x0001\x0003\x0001\x0004\x0001\x000E\x0001\x000F\x0001\x0010\x0001\x0011" + "\x0002\x0009\x0001\x000A\x0001\x0012\x0002\0\x0001\x0013\x0001\x0014\x0007\0\x0001\x0015" + "\x0002\0\x0002\x0016\x0007\0\x0001\x0016\x0002\0\x0001\x0017\x0001\x0018\x0007\0" + "\x0001\x0019\x0003\0\x0001\x001A\x0007\0\x0001\x000A\x0002\0\x0001\x001B\x0001\x001C" + "\x0007\0\x0001\x001D\x0002\0\x0001\x001E\x0001\x001F\x0007\0\x0001\x0020\x0002\0" + "\x0001\x0021\x0001\x0022\x0007\0\x0001\x0023\x000B\0\x0001\x0024\x0002\0\x0001\x0013" + "\x0001\x0014\x0007\0\x0001\x0025\x000B\0\x0001\x0026\x0002\0\x0002\x0016\x0007\0" + "\x0001\x0027\x0002\0\x0001\x0003\x0001\x0004\x0001\x000E\x0001\x0007\x0001\x0010\x0001\x0011" + "\x0002\x0009\x0001\x000A\x0001\x0012\x0002\0\x0002\x0013\x0001\0\x0001\x0028\x0001\0" + "\x0001\x0008\x0002\x0029\x0001\0\x0001\x0013\x0002\0\x0001\x0013\x0001\x0014\x0001\0" + "\x0001\x002A\x0001\0\x0001\x0008\x0002\x002B\x0001\x002C\x0001\x0014\x0002\0\x0001\x0013" + "\x0001\x0014\x0001\0\x0001\x0028\x0001\0\x0001\x0008\x0002\x0029\x0001\0\x0001\x0015" + "\x0002\0\x0002\x0016\x0001\0\x0001\x002D\x0002\0\x0001\x002D\x0002\0\x0001\x0016" + "\x0002\0\x0002\x0017\x0001\0\x0001\x0029\x0001\0\x0001\x0008\x0002\x0029\x0001\0" + "\x0001\x0017\x0002\0\x0001\x0017\x0001\x0018\x0001\0\x0001\x002B\x0001\0\x0001\x0008" + "\x0002\x002B\x0001\x002C\x0001\x0018\x0002\0\x0001\x0017\x0001\x0018\x0001\0\x0001\x0029" + "\x0001\0\x0001\x0008\x0002\x0029\x0001\0\x0001\x0019\x0003\0\x0001\x001A\x0001\0" + "\x0001\x002C\x0002\0\x0003\x002C\x0001\x001A\x0002\0\x0002\x001B\x0001\0\x0001\x002E" + "\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x001B\x0002\0\x0001\x001B\x0001\x001C" + "\x0001\0\x0001\x002F\x0001\0\x0001\x0008\x0002\x000C\x0001\x000D\x0001\x001C\x0002\0" + "\x0001\x001B\x0001\x001C\x0001\0\x0001\x002E\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A" + "\x0001\x001D\x0002\0\x0002\x001E\x0001\0\x0001\x0009\x0001\0\x0001\x0008\x0002\x0009" + "\x0001\x000A\x0001\x001E\x0002\0\x0001\x001E\x0001\x001F\x0001\0\x0001\x000C\x0001\0" + "\x0001\x0008\x0002\x000C\x0001\x000D\x0001\x001F\x0002\0\x0001\x001E\x0001\x001F\x0001\0" + "\x0001\x0009\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x0020\x0002\0\x0002\x0021" + "\x0001\0\x0001\x000A\x0002\0\x0003\x000A\x0001\x0021\x0002\0\x0001\x0021\x0001\x0022" + "\x0001\0\x0001\x000D\x0002\0\x0003\x000D\x0001\x0022\x0002\0\x0001\x0021\x0001\x0022" + "\x0001\0\x0001\x000A\x0002\0\x0003\x000A\x0001\x0023\x0004\0\x0001\x000E\x0006\0" + "\x0001\x0024\x0002\0\x0001\x0013\x0001\x0014\x0001\0\x0001\x0030\x0001\0\x0001\x0008" + "\x0002\x0029\x0001\0\x0001\x0015\x0002\0\x0002\x0016\x0001\0\x0001\x002D\x0002\0" + "\x0001\x002D\x0002\0\x0001\x0027\x0002\0\x0002\x0013\x0007\0\x0001\x0013\x0002\0" + "\x0002\x0017\x0007\0\x0001\x0017\x0002\0\x0002\x001B\x0007\0\x0001\x001B\x0002\0" + "\x0002\x001E\x0007\0\x0001\x001E\x0002\0\x0002\x0021\x0007\0\x0001\x0021\x0002\0" + "\x0002\x0031\x0007\0\x0001\x0031\x0002\0\x0002\x0013\x0007\0\x0001\x0032\x0002\0" + "\x0002\x0031\x0001\0\x0001\x002D\x0002\0\x0001\x002D\x0002\0\x0001\x0031\x0002\0" + "\x0002\x0013\x0001\0\x0001\x0030\x0001\0\x0001\x0008\x0002\x0029\x0001\0\x0001\x0013" + "\x0001\0"; + + private static int[] ZzUnpackTrans() + { + int[] result = new int[552]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; // index in packed string + int j = offset; // index in unpacked array + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do + { + result[j++] = value; + } while (--count > 0); + } + return j; + } + + + /* error codes */ + private const int ZZ_UNKNOWN_ERROR = 0; + private const int ZZ_NO_MATCH = 1; + private const int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static readonly string[] ZZ_ERROR_MSG = { }; + + /// + /// ZZ_ATTRIBUTE[aState] contains the attributes of state aState + /// + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = "\x0001\0\x0001\x0009\x0003\x0001\x0001\x0009\x000B\0\x0004\x0001\x0002\0\x0001\x0001" + "\x0001\0\x000F\x0001\x0001\0\x0001\x0001\x0003\0\x0005\x0001"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[50]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; // index in packed string + int j = offset; // index in unpacked array + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do + { + result[j++] = value; + } while (--count > 0); + } + return j; + } + + /// + /// the input device + private TextReader zzReader; + + /// + /// the current state of the DFA + private int zzState; + + /// + /// the current lexical state + private int zzLexicalState = YYINITIAL; + + /// + /// this buffer contains the current text to be matched and is + /// the source of the YyText() string + /// + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /// + /// the textposition at the last accepting state + private int zzMarkedPos; + + /// + /// the current text position in the buffer + private int zzCurrentPos; + + /// + /// startRead marks the beginning of the YyText() string in the buffer + private int zzStartRead; + + /// + /// endRead marks the last character in the buffer, that has been read + /// from input + /// + private int zzEndRead; + + /// + /// number of newlines encountered up to the start of the matched text + private int yyline; + + /// + /// the number of characters up to the start of the matched text + private int yyChar; + + /// + /// the number of characters from the last newline up to the start of the + /// matched text + /// + private int yycolumn; + + /// + /// zzAtBOL == true <=> the scanner is currently at the beginning of a line + /// + private bool zzAtBOL = true; + + /// + /// zzAtEOF == true <=> the scanner is at the EOF + private bool zzAtEOF; + + /// + /// denotes if the user-EOF-code has already been executed + private bool zzEOFDone; + + /* user code: */ + + public const int ALPHANUM = StandardTokenizer.ALPHANUM; + public const int APOSTROPHE = StandardTokenizer.APOSTROPHE; + public const int ACRONYM = StandardTokenizer.ACRONYM; + public const int COMPANY = StandardTokenizer.COMPANY; + public const int EMAIL = StandardTokenizer.EMAIL; + public const int HOST = StandardTokenizer.HOST; + public const int NUM = StandardTokenizer.NUM; + public const int CJ = StandardTokenizer.CJ; + public const int ACRONYM_DEP = StandardTokenizer.ACRONYM_DEP; + + public static readonly string[] TOKEN_TYPES = StandardTokenizer.TOKEN_TYPES; + + public int YyChar + { + get { return yyChar; } + } + + /// + /// Fills CharTermAttribute with the current token text. + /// + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + + + /// + /// Creates a new scanner + /// + /// the java.io.Reader to read input from. + internal ClassicTokenizerImpl(Reader @in) + { + this.zzReader = @in; + } + + + /// + /// Unpacks the compressed character translation table. + /// + /// the packed character translation table + /// the unpacked character translation table + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; // index in packed string + int j = 0; // index in unpacked array + while (i < 1138) + { + int count = packed[i++]; + char value = packed[i++]; + do + { + map[j++] = value; + } while (--count > 0); + } + return map; + } + + + /// + /// Refills the input buffer. + /// + /// false, iff there was new input. + /// + /// if any I/O-Error occurs + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + Array.Copy(zzBuffer, zzStartRead, zzBuffer, 0, zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* finally: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c == -1) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /// + /// Closes the input stream. + /// + public void YyClose() + { + zzAtEOF = true; // indicate end of file + zzEndRead = zzStartRead; // invalidate buffer + + if (zzReader != null) + { + zzReader.Close(); + } + } + + + /// + /// Resets the scanner to read from a new input stream. + /// Does not close the old reader. + /// + /// All internal variables are reset, the old input stream + /// cannot be reused (internal buffer is discarded and lost). + /// Lexical state is set to ZZ_INITIAL. + /// + /// Internal scan buffer is resized down to its initial length, if it has grown. + /// + /// the new input stream + public void YyReset(Reader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yyChar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + { + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + } + + + /// + /// Returns the current lexical state. + /// + public int YyState + { + get { return zzLexicalState; } + } + + + /// + /// Enters a new lexical state + /// + /// the new lexical state + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /// + /// Returns the text matched by the current regular expression. + /// + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + + /// + /// Returns the character at position pos from the + /// matched text. + /// + /// It is equivalent to YyText().charAt(pos), but faster + /// + /// the position of the character to fetch. + /// A value from 0 to YyLength()-1. + /// + /// the character at position pos + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /// + /// Returns the length of the matched text region. + /// + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + + /// + /// Reports an error that occured while scanning. + /// + /// In a wellformed scanner (no or only correct usage of + /// YyPushBack(int) and a match-all fallback rule) this method + /// will only be called with things that "Can't Possibly Happen". + /// If this method is called, something is seriously wrong + /// (e.g. a JFlex bug producing a faulty scanner etc.). + /// + /// Usual syntax/scanner level error handling should be done + /// in error fallback rules. + /// + /// the code of the errormessage to display + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (System.IndexOutOfRangeException) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + + /// + /// Pushes the specified amount of characters back into the input stream. + /// + /// They will be read again by then next call of the scanning method + /// + /// the number of characters to be read again. + /// This number must not be greater than YyLength()! + public virtual void YyPushBack(int number) + { + if (number > YyLength) + { + ZzScanError(ZZ_PUSHBACK_2BIG); + } + + zzMarkedPos -= number; + } + + + /// + /// Resumes scanning until the next regular expression is matched, + /// the end of input is encountered or an I/O-Error occurs. + /// + /// the next token + /// if any I/O-Error occurs + public virtual int NextToken + { + get + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; + + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yyChar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + + { + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + else if (zzAtEOF) + { + zzInput = StandardTokenizerInterface_Fields.YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = StandardTokenizerInterface_Fields.YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) + { + goto zzForActionBreak; + } + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) + { + goto zzForActionBreak; + } + } + + } + } + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { // Break so we don't hit fall-through warning: + break; // ignore + } + goto case 11; + case 11: + break; + case 2: + { + return ALPHANUM; + } + case 12: + break; + case 3: + { + return CJ; + } + case 13: + break; + case 4: + { + return HOST; + } + case 14: + break; + case 5: + { + return NUM; + } + case 15: + break; + case 6: + { + return APOSTROPHE; + } + case 16: + break; + case 7: + { + return COMPANY; + } + case 17: + break; + case 8: + { + return ACRONYM_DEP; + } + case 18: + break; + case 9: + { + return ACRONYM; + } + case 19: + break; + case 10: + { + return EMAIL; + } + case 20: + break; + default: + if (zzInput == StandardTokenizerInterface_Fields.YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + return StandardTokenizerInterface_Fields.YYEOF; + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardAnalyzer.cs index d0502aacbc..5e13937e07 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardAnalyzer.cs @@ -5,7 +5,6 @@ namespace Lucene.Net.Analysis.Standard { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -22,6 +21,7 @@ namespace Lucene.Net.Analysis.Standard * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Filters with , {@link /// LowerCaseFilter} and , using a list of @@ -87,7 +87,7 @@ public StandardAnalyzer(LuceneVersion matchVersion) /// above} /// Reader to read stop words from public StandardAnalyzer(LuceneVersion matchVersion, TextReader stopwords) - : this(matchVersion, loadStopwordSet(stopwords, matchVersion)) + : this(matchVersion, LoadStopwordSet(stopwords, matchVersion)) { } @@ -145,5 +145,4 @@ protected override TextReader Reader } } } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardFilter.cs index 6093cd6ecb..a8428bf23f 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardFilter.cs @@ -3,7 +3,6 @@ namespace Lucene.Net.Analysis.Standard { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -20,6 +19,7 @@ namespace Lucene.Net.Analysis.Standard * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Normalizes tokens extracted with . /// @@ -42,7 +42,7 @@ public StandardFilter(LuceneVersion matchVersion, TokenStream @in) private readonly ITypeAttribute typeAtt; private readonly ICharTermAttribute termAtt; - public override bool IncrementToken() + public override sealed bool IncrementToken() { if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_31)) { @@ -87,5 +87,4 @@ public bool IncrementTokenClassic() return true; } } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardFilterFactory.cs index b63439756b..c3723acaf2 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardFilterFactory.cs @@ -1,57 +1,53 @@ using System.Collections.Generic; using Lucene.Net.Analysis.Standard; -using TokenFilterFactory = Lucene.Net.Analysis.Util.TokenFilterFactory; +using Lucene.Net.Analysis.Util; -namespace org.apache.lucene.analysis.standard +namespace Lucene.Net.Analysis.Standard { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - using TokenFilterFactory = TokenFilterFactory; - - /// - /// Factory for . - ///
-	/// <fieldType name="text_stndrd" class="solr.TextField" positionIncrementGap="100">
-	///   <analyzer>
-	///     <tokenizer class="solr.StandardTokenizerFactory"/>
-	///     <filter class="solr.StandardFilterFactory"/>
-	///   </analyzer>
-	/// </fieldType>
- ///
- public class StandardFilterFactory : TokenFilterFactory - { - - /// - /// Creates a new StandardFilterFactory - public StandardFilterFactory(IDictionary args) : base(args) - { - assureMatchVersion(); - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } - - public override StandardFilter create(TokenStream input) - { - return new StandardFilter(luceneMatchVersion, input); - } - } + /// + /// Factory for . + ///
+    /// <fieldType name="text_stndrd" class="solr.TextField" positionIncrementGap="100">
+    ///   <analyzer>
+    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
+    ///     <filter class="solr.StandardFilterFactory"/>
+    ///   </analyzer>
+    /// </fieldType>
+ ///
+ public class StandardFilterFactory : TokenFilterFactory + { + /// + /// Creates a new StandardFilterFactory + public StandardFilterFactory(IDictionary args) + : base(args) + { + AssureMatchVersion(); + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override TokenStream Create(TokenStream input) + { + return new StandardFilter(luceneMatchVersion, input); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs index e47b4816dd..2613e9d24b 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs @@ -1,20 +1,4 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -using System; +using System; using Lucene.Net.Analysis.Tokenattributes; using Lucene.Net.Util; using org.apache.lucene.analysis.standard; @@ -23,6 +7,23 @@ namespace Lucene.Net.Analysis.Standard { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + /// /// A grammar-based tokenizer constructed with JFlex. /// @@ -54,7 +55,7 @@ public sealed class StandardTokenizer : Tokenizer { /// /// A private instance of the JFlex-constructed scanner - private StandardTokenizerInterface scanner; + private IStandardTokenizerInterface scanner; public const int ALPHANUM = 0; /// @deprecated (3.1) @@ -124,11 +125,6 @@ public int MaxTokenLength public StandardTokenizer(Version matchVersion, Reader input) : base(input) { - termAtt = AddAttribute(); - posIncrAtt = AddAttribute(); - offsetAtt = AddAttribute(); - typeAtt = AddAttribute(); - Init(matchVersion); } @@ -143,34 +139,40 @@ public StandardTokenizer(Version matchVersion, AttributeFactory factory, Reader private void Init(Version matchVersion) { + // TODO: Add the other version support for backward compatibility. if (matchVersion.OnOrAfter(Version.LUCENE_47)) { this.scanner = new StandardTokenizerImpl(input); } - else if (matchVersion.OnOrAfter(Version.LUCENE_40)) - { - this.scanner = new StandardTokenizerImpl40(input); - } - else if (matchVersion.OnOrAfter(Version.LUCENE_34)) - { - this.scanner = new StandardTokenizerImpl34(input); - } - else if (matchVersion.OnOrAfter(Version.LUCENE_31)) - { - this.scanner = new StandardTokenizerImpl31(input); - } + //else if (matchVersion.OnOrAfter(Version.LUCENE_40)) + //{ + // this.scanner = new StandardTokenizerImpl40(input); + //} + //else if (matchVersion.OnOrAfter(Version.LUCENE_34)) + //{ + // this.scanner = new StandardTokenizerImpl34(input); + //} + //else if (matchVersion.OnOrAfter(Version.LUCENE_31)) + //{ + // this.scanner = new StandardTokenizerImpl31(input); + //} else { this.scanner = new ClassicTokenizerImpl(input); } + + termAtt = AddAttribute(); + posIncrAtt = AddAttribute(); + offsetAtt = AddAttribute(); + typeAtt = AddAttribute(); } // this tokenizer generates three attributes: // term offset, positionIncrement and type - private readonly ICharTermAttribute termAtt; - private readonly IOffsetAttribute offsetAtt; - private readonly IPositionIncrementAttribute posIncrAtt; - private readonly ITypeAttribute typeAtt; + private ICharTermAttribute termAtt; + private IOffsetAttribute offsetAtt; + private IPositionIncrementAttribute posIncrAtt; + private ITypeAttribute typeAtt; /* * (non-Javadoc) @@ -191,21 +193,21 @@ public override bool IncrementToken() return false; } - if (scanner.yylength() <= maxTokenLength) + if (scanner.YyLength <= maxTokenLength) { posIncrAtt.PositionIncrement = skippedPositions + 1; - scanner.getText(termAtt); + scanner.GetText(termAtt); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': - //ORIGINAL LINE: final int start = scanner.yychar(); - int start = scanner.yychar(); - offsetAtt.SetOffset(correctOffset(start), correctOffset(start + termAtt.length())); + //ORIGINAL LINE: final int start = scanner.YyChar(); + int start = scanner.YyChar; + offsetAtt.SetOffset(CorrectOffset(start), CorrectOffset(start + termAtt.Length)); // This 'if' should be removed in the next release. For now, it converts // invalid acronyms to HOST. When removed, only the 'else' part should // remain. if (tokenType == StandardTokenizer.ACRONYM_DEP) { typeAtt.Type = StandardTokenizer.TOKEN_TYPES[StandardTokenizer.HOST]; - termAtt.Length = termAtt.length() - 1; // remove extra '.' + termAtt.Length = termAtt.Length - 1; // remove extra '.' } else { @@ -226,7 +228,7 @@ public override void End() { base.End(); // set final offset - int finalOffset = CorrectOffset(scanner.yychar() + scanner.yylength()); + int finalOffset = CorrectOffset(scanner.YyChar + scanner.YyLength); offsetAtt.SetOffset(finalOffset, finalOffset); // adjust any skipped tokens posIncrAtt.PositionIncrement = posIncrAtt.PositionIncrement + skippedPositions; @@ -235,15 +237,14 @@ public override void End() public override void Dispose() { base.Dispose(); - scanner.yyreset(input); + scanner.YyReset(input); } public override void Reset() { base.Reset(); - scanner.yyreset(input); + scanner.YyReset(input); skippedPositions = 0; } } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerFactory.cs index 2c4560fa9e..71de5bbaaf 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerFactory.cs @@ -1,58 +1,58 @@ -using System.Collections.Generic; -using System.IO; -using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Util; using Lucene.Net.Util; +using System.Collections.Generic; +using System.IO; namespace Lucene.Net.Analysis.Standard { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ /// - /// Factory for . - ///
-	/// <fieldType name="text_stndrd" class="solr.TextField" positionIncrementGap="100">
-	///   <analyzer>
-	///     <tokenizer class="solr.StandardTokenizerFactory" maxTokenLength="255"/>
-	///   </analyzer>
-	/// </fieldType>
- ///
- public class StandardTokenizerFactory : TokenizerFactory - { - private readonly int maxTokenLength; - - /// - /// Creates a new StandardTokenizerFactory - public StandardTokenizerFactory(IDictionary args) : base(args) - { - assureMatchVersion(); - maxTokenLength = getInt(args, "maxTokenLength", StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH); - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + /// Factory for . + ///
+    /// <fieldType name="text_stndrd" class="solr.TextField" positionIncrementGap="100">
+    ///   <analyzer>
+    ///     <tokenizer class="solr.StandardTokenizerFactory" maxTokenLength="255"/>
+    ///   </analyzer>
+    /// </fieldType>
+ ///
+ public class StandardTokenizerFactory : TokenizerFactory + { + private readonly int maxTokenLength; - public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextReader input) - { - var tokenizer = new StandardTokenizer(luceneMatchVersion, factory, input); - tokenizer.MaxTokenLength = maxTokenLength; - return tokenizer; - } - } + /// + /// Creates a new StandardTokenizerFactory + public StandardTokenizerFactory(IDictionary args) + : base(args) + { + AssureMatchVersion(); + maxTokenLength = GetInt(args, "maxTokenLength", StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH); + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextReader input) + { + var tokenizer = new StandardTokenizer(luceneMatchVersion, factory, input); + tokenizer.MaxTokenLength = maxTokenLength; + return tokenizer; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs index c78982c705..e85df30421 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs @@ -7,723 +7,1233 @@ namespace org.apache.lucene.analysis.standard { - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /// - /// This class implements Word Break rules from the Unicode Text Segmentation - /// algorithm, as specified in - /// Unicode Standard Annex #29. - ///

- /// Tokens produced are of the following types: - ///

    - ///
  • <ALPHANUM>: A sequence of alphabetic and numeric characters
  • - ///
  • <NUM>: A number
  • - ///
  • <SOUTHEAST_ASIAN>: A sequence of characters from South and Southeast - /// Asian languages, including Thai, Lao, Myanmar, and Khmer
  • - ///
  • <IDEOGRAPHIC>: A single CJKV ideographic character
  • - ///
  • <HIRAGANA>: A single hiragana character
  • - ///
  • <KATAKANA>: A sequence of katakana characters
  • - ///
  • <HANGUL>: A sequence of Hangul characters
  • - ///
- ///
- - public sealed class StandardTokenizerImpl : StandardTokenizerInterface - { - - /// - /// This character denotes the end of file - //public const int StandardTokenizerInterface_Fields; - - /// - /// initial size of the lookahead buffer - private const int ZZ_BUFFERSIZE = 4096; - - /// - /// lexical states - public const int YYINITIAL = 0; - - /// - /// ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l - /// ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l - /// at the beginning of a line - /// l is of the form l = 2*k, k a non negative integer - /// - private static readonly int[] ZZ_LEXSTATE = {}; - - /// - /// Translates characters to character classes - /// - private const string ZZ_CMAP_PACKED = "\x0022\0\x0001\x008B\x0004\0\x0001\x008A\x0004\0\x0001\x0083\x0001\0\x0001\x0084\x0001\0\x000A\x0080" + "\x0001\x0082\x0001\x0083\x0005\0\x001A\x007E\x0004\0\x0001\x0085\x0001\0\x001A\x007E\x002F\0\x0001\x007E" + "\x0002\0\x0001\x007F\x0007\0\x0001\x007E\x0001\0\x0001\x0082\x0002\0\x0001\x007E\x0005\0\x0017\x007E" + "\x0001\0\x001F\x007E\x0001\0\u01ca\x007E\x0004\0\x000C\x007E\x0005\0\x0001\x0082\x0008\0\x0005\x007E" + "\x0007\0\x0001\x007E\x0001\0\x0001\x007E\x0011\0\x0070\x007F\x0005\x007E\x0001\0\x0002\x007E\x0002\0" + "\x0004\x007E\x0001\x0083\x0007\0\x0001\x007E\x0001\x0082\x0003\x007E\x0001\0\x0001\x007E\x0001\0\x0014\x007E" + "\x0001\0\x0053\x007E\x0001\0\x008B\x007E\x0001\0\x0007\x007F\x009E\x007E\x0009\0\x0026\x007E\x0002\0" + "\x0001\x007E\x0007\0\x0027\x007E\x0001\0\x0001\x0083\x0007\0\x002D\x007F\x0001\0\x0001\x007F\x0001\0" + "\x0002\x007F\x0001\0\x0002\x007F\x0001\0\x0001\x007F\x0008\0\x001B\x008C\x0005\0\x0003\x008C\x0001\x007E" + "\x0001\x0082\x000B\0\x0005\x007F\x0007\0\x0002\x0083\x0002\0\x000B\x007F\x0001\0\x0001\x007F\x0003\0" + "\x002B\x007E\x0015\x007F\x000A\x0080\x0001\0\x0001\x0080\x0001\x0083\x0001\0\x0002\x007E\x0001\x007F\x0063\x007E" + "\x0001\0\x0001\x007E\x0007\x007F\x0001\x007F\x0001\0\x0006\x007F\x0002\x007E\x0002\x007F\x0001\0\x0004\x007F" + "\x0002\x007E\x000A\x0080\x0003\x007E\x0002\0\x0001\x007E\x000F\0\x0001\x007F\x0001\x007E\x0001\x007F\x001E\x007E" + "\x001B\x007F\x0002\0\x0059\x007E\x000B\x007F\x0001\x007E\x000E\0\x000A\x0080\x0021\x007E\x0009\x007F\x0002\x007E" + "\x0002\0\x0001\x0083\x0001\0\x0001\x007E\x0005\0\x0016\x007E\x0004\x007F\x0001\x007E\x0009\x007F\x0001\x007E" + "\x0003\x007F\x0001\x007E\x0005\x007F\x0012\0\x0019\x007E\x0003\x007F\x0044\0\x0001\x007E\x0001\0\x000B\x007E" + "\x0037\0\x001B\x007F\x0001\0\x0004\x007F\x0036\x007E\x0003\x007F\x0001\x007E\x0012\x007F\x0001\x007E\x0007\x007F" + "\x000A\x007E\x0002\x007F\x0002\0\x000A\x0080\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0003\x007F" + "\x0001\0\x0008\x007E\x0002\0\x0002\x007E\x0002\0\x0016\x007E\x0001\0\x0007\x007E\x0001\0\x0001\x007E" + "\x0003\0\x0004\x007E\x0002\0\x0001\x007F\x0001\x007E\x0007\x007F\x0002\0\x0002\x007F\x0002\0\x0003\x007F" + "\x0001\x007E\x0008\0\x0001\x007F\x0004\0\x0002\x007E\x0001\0\x0003\x007E\x0002\x007F\x0002\0\x000A\x0080" + "\x0002\x007E\x000F\0\x0003\x007F\x0001\0\x0006\x007E\x0004\0\x0002\x007E\x0002\0\x0016\x007E\x0001\0" + "\x0007\x007E\x0001\0\x0002\x007E\x0001\0\x0002\x007E\x0001\0\x0002\x007E\x0002\0\x0001\x007F\x0001\0" + "\x0005\x007F\x0004\0\x0002\x007F\x0002\0\x0003\x007F\x0003\0\x0001\x007F\x0007\0\x0004\x007E\x0001\0" + "\x0001\x007E\x0007\0\x000A\x0080\x0002\x007F\x0003\x007E\x0001\x007F\x000B\0\x0003\x007F\x0001\0\x0009\x007E" + "\x0001\0\x0003\x007E\x0001\0\x0016\x007E\x0001\0\x0007\x007E\x0001\0\x0002\x007E\x0001\0\x0005\x007E" + "\x0002\0\x0001\x007F\x0001\x007E\x0008\x007F\x0001\0\x0003\x007F\x0001\0\x0003\x007F\x0002\0\x0001\x007E" + "\x000F\0\x0002\x007E\x0002\x007F\x0002\0\x000A\x0080\x0011\0\x0003\x007F\x0001\0\x0008\x007E\x0002\0" + "\x0002\x007E\x0002\0\x0016\x007E\x0001\0\x0007\x007E\x0001\0\x0002\x007E\x0001\0\x0005\x007E\x0002\0" + "\x0001\x007F\x0001\x007E\x0007\x007F\x0002\0\x0002\x007F\x0002\0\x0003\x007F\x0008\0\x0002\x007F\x0004\0" + "\x0002\x007E\x0001\0\x0003\x007E\x0002\x007F\x0002\0\x000A\x0080\x0001\0\x0001\x007E\x0010\0\x0001\x007F" + "\x0001\x007E\x0001\0\x0006\x007E\x0003\0\x0003\x007E\x0001\0\x0004\x007E\x0003\0\x0002\x007E\x0001\0" + "\x0001\x007E\x0001\0\x0002\x007E\x0003\0\x0002\x007E\x0003\0\x0003\x007E\x0003\0\x000C\x007E\x0004\0" + "\x0005\x007F\x0003\0\x0003\x007F\x0001\0\x0004\x007F\x0002\0\x0001\x007E\x0006\0\x0001\x007F\x000E\0" + "\x000A\x0080\x0011\0\x0003\x007F\x0001\0\x0008\x007E\x0001\0\x0003\x007E\x0001\0\x0017\x007E\x0001\0" + "\x000A\x007E\x0001\0\x0005\x007E\x0003\0\x0001\x007E\x0007\x007F\x0001\0\x0003\x007F\x0001\0\x0004\x007F" + "\x0007\0\x0002\x007F\x0001\0\x0002\x007E\x0006\0\x0002\x007E\x0002\x007F\x0002\0\x000A\x0080\x0012\0" + "\x0002\x007F\x0001\0\x0008\x007E\x0001\0\x0003\x007E\x0001\0\x0017\x007E\x0001\0\x000A\x007E\x0001\0" + "\x0005\x007E\x0002\0\x0001\x007F\x0001\x007E\x0007\x007F\x0001\0\x0003\x007F\x0001\0\x0004\x007F\x0007\0" + "\x0002\x007F\x0007\0\x0001\x007E\x0001\0\x0002\x007E\x0002\x007F\x0002\0\x000A\x0080\x0001\0\x0002\x007E" + "\x000F\0\x0002\x007F\x0001\0\x0008\x007E\x0001\0\x0003\x007E\x0001\0\x0029\x007E\x0002\0\x0001\x007E" + "\x0007\x007F\x0001\0\x0003\x007F\x0001\0\x0004\x007F\x0001\x007E\x0008\0\x0001\x007F\x0008\0\x0002\x007E" + "\x0002\x007F\x0002\0\x000A\x0080\x000A\0\x0006\x007E\x0002\0\x0002\x007F\x0001\0\x0012\x007E\x0003\0" + "\x0018\x007E\x0001\0\x0009\x007E\x0001\0\x0001\x007E\x0002\0\x0007\x007E\x0003\0\x0001\x007F\x0004\0" + "\x0006\x007F\x0001\0\x0001\x007F\x0001\0\x0008\x007F\x0012\0\x0002\x007F\x000D\0\x0030\x0086\x0001\x0087" + "\x0002\x0086\x0007\x0087\x0005\0\x0007\x0086\x0008\x0087\x0001\0\x000A\x0080\x0027\0\x0002\x0086\x0001\0" + "\x0001\x0086\x0002\0\x0002\x0086\x0001\0\x0001\x0086\x0002\0\x0001\x0086\x0006\0\x0004\x0086\x0001\0" + "\x0007\x0086\x0001\0\x0003\x0086\x0001\0\x0001\x0086\x0001\0\x0001\x0086\x0002\0\x0002\x0086\x0001\0" + "\x0004\x0086\x0001\x0087\x0002\x0086\x0006\x0087\x0001\0\x0002\x0087\x0001\x0086\x0002\0\x0005\x0086\x0001\0" + "\x0001\x0086\x0001\0\x0006\x0087\x0002\0\x000A\x0080\x0002\0\x0004\x0086\x0020\0\x0001\x007E\x0017\0" + "\x0002\x007F\x0006\0\x000A\x0080\x000B\0\x0001\x007F\x0001\0\x0001\x007F\x0001\0\x0001\x007F\x0004\0" + "\x0002\x007F\x0008\x007E\x0001\0\x0024\x007E\x0004\0\x0014\x007F\x0001\0\x0002\x007F\x0005\x007E\x000B\x007F" + "\x0001\0\x0024\x007F\x0009\0\x0001\x007F\x0039\0\x002B\x0086\x0014\x0087\x0001\x0086\x000A\x0080\x0006\0" + "\x0006\x0086\x0004\x0087\x0004\x0086\x0003\x0087\x0001\x0086\x0003\x0087\x0002\x0086\x0007\x0087\x0003\x0086\x0004\x0087" + "\x000D\x0086\x000C\x0087\x0001\x0086\x0001\x0087\x000A\x0080\x0004\x0087\x0002\x0086\x0026\x007E\x0001\0\x0001\x007E" + "\x0005\0\x0001\x007E\x0002\0\x002B\x007E\x0001\0\x0004\x007E\u0100\x008D\x0049\x007E\x0001\0\x0004\x007E" + "\x0002\0\x0007\x007E\x0001\0\x0001\x007E\x0001\0\x0004\x007E\x0002\0\x0029\x007E\x0001\0\x0004\x007E" + "\x0002\0\x0021\x007E\x0001\0\x0004\x007E\x0002\0\x0007\x007E\x0001\0\x0001\x007E\x0001\0\x0004\x007E" + "\x0002\0\x000F\x007E\x0001\0\x0039\x007E\x0001\0\x0004\x007E\x0002\0\x0043\x007E\x0002\0\x0003\x007F" + "\x0020\0\x0010\x007E\x0010\0\x0055\x007E\x000C\0\u026c\x007E\x0002\0\x0011\x007E\x0001\0\x001A\x007E" + "\x0005\0\x004B\x007E\x0003\0\x0003\x007E\x000F\0\x000D\x007E\x0001\0\x0004\x007E\x0003\x007F\x000B\0" + "\x0012\x007E\x0003\x007F\x000B\0\x0012\x007E\x0002\x007F\x000C\0\x000D\x007E\x0001\0\x0003\x007E\x0001\0" + "\x0002\x007F\x000C\0\x0034\x0086\x0020\x0087\x0003\0\x0001\x0086\x0004\0\x0001\x0086\x0001\x0087\x0002\0" + "\x000A\x0080\x0021\0\x0003\x007F\x0001\x007F\x0001\0\x000A\x0080\x0006\0\x0058\x007E\x0008\0\x0029\x007E" + "\x0001\x007F\x0001\x007E\x0005\0\x0046\x007E\x000A\0\x001D\x007E\x0003\0\x000C\x007F\x0004\0\x000C\x007F" + "\x000A\0\x000A\x0080\x001E\x0086\x0002\0\x0005\x0086\x000B\0\x002C\x0086\x0004\0\x0011\x0087\x0007\x0086" + "\x0002\x0087\x0006\0\x000A\x0080\x0001\x0086\x0003\0\x0002\x0086\x0020\0\x0017\x007E\x0005\x007F\x0004\0" + "\x0035\x0086\x000A\x0087\x0001\0\x001D\x0087\x0002\0\x0001\x007F\x000A\x0080\x0006\0\x000A\x0080\x0006\0" + "\x000E\x0086\x0052\0\x0005\x007F\x002F\x007E\x0011\x007F\x0007\x007E\x0004\0\x000A\x0080\x0011\0\x0009\x007F" + "\x000C\0\x0003\x007F\x001E\x007E\x000D\x007F\x0002\x007E\x000A\x0080\x002C\x007E\x000E\x007F\x000C\0\x0024\x007E" + "\x0014\x007F\x0008\0\x000A\x0080\x0003\0\x0003\x007E\x000A\x0080\x0024\x007E\x0052\0\x0003\x007F\x0001\0" + "\x0015\x007F\x0004\x007E\x0001\x007F\x0004\x007E\x0003\x007F\x0002\x007E\x0009\0\x00C0\x007E\x0027\x007F\x0015\0" + "\x0004\x007F\u0116\x007E\x0002\0\x0006\x007E\x0002\0\x0026\x007E\x0002\0\x0006\x007E\x0002\0\x0008\x007E" + "\x0001\0\x0001\x007E\x0001\0\x0001\x007E\x0001\0\x0001\x007E\x0001\0\x001F\x007E\x0002\0\x0035\x007E" + "\x0001\0\x0007\x007E\x0001\0\x0001\x007E\x0003\0\x0003\x007E\x0001\0\x0007\x007E\x0003\0\x0004\x007E" + "\x0002\0\x0006\x007E\x0004\0\x000D\x007E\x0005\0\x0003\x007E\x0001\0\x0007\x007E\x000F\0\x0002\x007F" + "\x0002\x007F\x0008\0\x0002\x0084\x000A\0\x0001\x0084\x0002\0\x0001\x0082\x0002\0\x0005\x007F\x0010\0" + "\x0002\x0085\x0003\0\x0001\x0083\x000F\0\x0001\x0085\x000B\0\x0005\x007F\x0001\0\x000A\x007F\x0001\0" + "\x0001\x007E\x000D\0\x0001\x007E\x0010\0\x000D\x007E\x0033\0\x0021\x007F\x0011\0\x0001\x007E\x0004\0" + "\x0001\x007E\x0002\0\x000A\x007E\x0001\0\x0001\x007E\x0003\0\x0005\x007E\x0006\0\x0001\x007E\x0001\0" + "\x0001\x007E\x0001\0\x0001\x007E\x0001\0\x0004\x007E\x0001\0\x000B\x007E\x0002\0\x0004\x007E\x0005\0" + "\x0005\x007E\x0004\0\x0001\x007E\x0011\0\x0029\x007E\u032d\0\x0034\x007E\u0716\0\x002F\x007E\x0001\0" + "\x002F\x007E\x0001\0\x0085\x007E\x0006\0\x0004\x007E\x0003\x007F\x0002\x007E\x000C\0\x0026\x007E\x0001\0" + "\x0001\x007E\x0005\0\x0001\x007E\x0002\0\x0038\x007E\x0007\0\x0001\x007E\x000F\0\x0001\x007F\x0017\x007E" + "\x0009\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E" + "\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0020\x007F\x002F\0\x0001\x007E" + "\x0050\0\x001A\x0088\x0001\0\x0059\x0088\x000C\0\x00D6\x0088\x002F\0\x0001\x007E\x0001\0\x0001\x0088" + "\x0019\0\x0009\x0088\x0006\x007F\x0001\0\x0005\x0081\x0002\0\x0003\x0088\x0001\x007E\x0001\x007E\x0004\0" + "\x0056\x0089\x0002\0\x0002\x007F\x0002\x0081\x0003\x0089\x005B\x0081\x0001\0\x0004\x0081\x0005\0\x0029\x007E" + "\x0003\0\x005E\x008D\x0011\0\x001B\x007E\x0035\0\x0010\x0081\x00D0\0\x002F\x0081\x0001\0\x0058\x0081" + "\x00A8\0\u19b6\x0088\x004A\0\u51cd\x0088\x0033\0\u048d\x007E\x0043\0\x002E\x007E\x0002\0\u010d\x007E" + "\x0003\0\x0010\x007E\x000A\x0080\x0002\x007E\x0014\0\x002F\x007E\x0004\x007F\x0001\0\x000A\x007F\x0001\0" + "\x0019\x007E\x0007\0\x0001\x007F\x0050\x007E\x0002\x007F\x0025\0\x0009\x007E\x0002\0\x0067\x007E\x0002\0" + "\x0004\x007E\x0001\0\x0004\x007E\x000C\0\x000B\x007E\x004D\0\x000A\x007E\x0001\x007F\x0003\x007E\x0001\x007F" + "\x0004\x007E\x0001\x007F\x0017\x007E\x0005\x007F\x0018\0\x0034\x007E\x000C\0\x0002\x007F\x0032\x007E\x0011\x007F" + "\x000B\0\x000A\x0080\x0006\0\x0012\x007F\x0006\x007E\x0003\0\x0001\x007E\x0004\0\x000A\x0080\x001C\x007E" + "\x0008\x007F\x0002\0\x0017\x007E\x000D\x007F\x000C\0\x001D\x008D\x0003\0\x0004\x007F\x002F\x007E\x000E\x007F" + "\x000E\0\x0001\x007E\x000A\x0080\x0026\0\x0029\x007E\x000E\x007F\x0009\0\x0003\x007E\x0001\x007F\x0008\x007E" + "\x0002\x007F\x0002\0\x000A\x0080\x0006\0\x001B\x0086\x0001\x0087\x0004\0\x0030\x0086\x0001\x0087\x0001\x0086" + "\x0003\x0087\x0002\x0086\x0002\x0087\x0005\x0086\x0002\x0087\x0001\x0086\x0001\x0087\x0001\x0086\x0018\0\x0005\x0086" + "\x000B\x007E\x0005\x007F\x0002\0\x0003\x007E\x0002\x007F\x000A\0\x0006\x007E\x0002\0\x0006\x007E\x0002\0" + "\x0006\x007E\x0009\0\x0007\x007E\x0001\0\x0007\x007E\x0091\0\x0023\x007E\x0008\x007F\x0001\0\x0002\x007F" + "\x0002\0\x000A\x0080\x0006\0\u2ba4\x008D\x000C\0\x0017\x008D\x0004\0\x0031\x008D\x0004\0\x0001\x0024" + "\x0001\x0020\x0001\x0037\x0001\x0034\x0001\x001B\x0001\x0018\x0002\0\x0001\x0014\x0001\x0011\x0002\0\x0001\x000F" + "\x0001\x000D\x000C\0\x0001\x0003\x0001\x0006\x0010\0\x0001\x006E\x0007\0\x0001\x0049\x0001\x0008\x0005\0" + "\x0001\x0001\x0001\x007A\x0003\0\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0074\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0078\x0001\x0076" + "\x000F\0\x0001\x0070\u02c1\0\x0001\x004C\x00BF\0\x0001\x006F\x0001\x004D\x0001\x000E\x0003\x0077\x0002\x0032" + "\x0001\x0077\x0001\x0032\x0002\x0077\x0001\x001E\x0011\x0077\x0002\x0046\x0007\x004F\x0001\x004E\x0007\x004F\x0007\x0042" + "\x0001\x001F\x0001\x0042\x0001\x0060\x0002\x0036\x0001\x0035\x0001\x0060\x0001\x0036\x0001\x0035\x0008\x0060\x0002\x0047" + "\x0005\x0043\x0002\x003D\x0005\x0043\x0001\x0012\x0008\x002B\x0005\x0013\x0003\x0021\x000A\x0052\x0010\x0021\x0003\x0033" + "\x001A\x0023\x0001\x0022\x0002\x0031\x0002\x0056\x0001\x0057\x0002\x0056\x0002\x0057\x0002\x0056\x0001\x0057\x0003\x0031" + "\x0001\x0030\x0002\x0031\x000A\x0048\x0001\x005E\x0001\x0028\x0001\x0025\x0001\x0048\x0006\x0028\x0001\x0025\x000B\x0028" + "\x0019\x0031\x0007\x0028\x000A\x0053\x0001\x0028\x0005\x000B\x0003\x005F\x0003\x0041\x0001\x0040\x0004\x0041\x0002\x0040" + "\x0008\x0041\x0001\x0040\x0007\x001D\x0001\x001C\x0002\x001D\x0007\x0041\x000E\x005F\x0001\x0069\x0004\x0054\x0001\x0004" + "\x0004\x0051\x0001\x0004\x0005\x0068\x0001\x0067\x0001\x0068\x0003\x0067\x0007\x0068\x0001\x0067\x0013\x0068\x0005\x004B" + "\x0003\x0068\x0006\x004B\x0002\x004B\x0006\x004A\x0005\x004A\x0003\x0064\x0002\x0041\x0007\x0063\x001E\x0041\x0004\x0063" + "\x0005\x0041\x0005\x005F\x0006\x005D\x0002\x005F\x0001\x005D\x0004\x001D\x000B\x0066\x000A\x0051\x000C\x0066\x000A\x007D" + "\x000D\x007C\x0001\x0065\x0002\x007C\x0001\x007B\x0003\x006A\x0001\x000B\x0002\x006A\x0005\x0071\x0004\x006A\x0004\x0072" + "\x0001\x0071\x0003\x0072\x0001\x0071\x0005\x0072\x0002\x0038\x0001\x003B\x0002\x0038\x0001\x003B\x0001\x0038\x0002\x003B" + "\x0001\x0038\x0001\x003B\x000A\x0038\x0001\x003B\x0004\x0005\x0001\x006C\x0001\x006B\x0001\x006D\x0001\x000A\x0003\x0075" + "\x0001\x006D\x0002\x0075\x0001\x0061\x0002\x0062\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A" + "\x0001\x0075\x0003\x000A\x0001\x0075\x0002\x000A\x0001\x0075\x0001\x000A\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A" + "\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x003E\x0002\x003A\x0001\x003E\x0001\x003A" + "\x0002\x003E\x0004\x003A\x0001\x003E\x0007\x003A\x0001\x003E\x0004\x003A\x0001\x003E\x0004\x003A\x0001\x0075\x0001\x000A" + "\x0001\x0075\x000A\x0019\x0001\x002F\x0011\x0019\x0001\x002F\x0003\x001A\x0001\x002F\x0003\x0019\x0001\x002F\x0001\x0019" + "\x0002\x0002\x0002\x0019\x0001\x002F\x000D\x005C\x0004\x0027\x0004\x002C\x0001\x0050\x0001\x002E\x0008\x0050\x0007\x002C" + "\x0006\x0075\x0004\x0015\x0001\x0017\x001F\x0015\x0001\x0017\x0004\x0015\x0015\x0045\x0001\x0079\x0009\x0045\x0011\x0016" + "\x0005\x0045\x0001\x0007\x000A\x002D\x0005\x0045\x0006\x0044\x0004\x003E\x0001\x003F\x0001\x0016\x0005\x005B\x000A\x0059" + "\x000F\x005B\x0001\x003C\x0003\x0039\x000C\x0058\x0001\x0009\x0009\x0026\x0001\x002A\x0005\x0026\x0004\x005A\x000B\x0029" + "\x0002\x000C\x0009\x0026\x0001\x002A\x0019\x0026\x0001\x002A\x0004\x0009\x0004\x0026\x0002\x002A\x0002\x0055\x0001\x0010" + "\x0005\x0055\x002A\x0010\u1900\0\u016e\x0088\x0002\0\x006A\x0088\x0026\0\x0007\x007E\x000C\0\x0005\x007E" + "\x0005\0\x0001\x008C\x0001\x007F\x000A\x008C\x0001\0\x000D\x008C\x0001\0\x0005\x008C\x0001\0\x0001\x008C" + "\x0001\0\x0002\x008C\x0001\0\x0002\x008C\x0001\0\x000A\x008C\x0062\x007E\x0021\0\u016b\x007E\x0012\0" + "\x0040\x007E\x0002\0\x0036\x007E\x0028\0\x000C\x007E\x0004\0\x0010\x007F\x0001\x0083\x0002\0\x0001\x0082" + "\x0001\x0083\x000B\0\x0007\x007F\x000C\0\x0002\x0085\x0018\0\x0003\x0085\x0001\x0083\x0001\0\x0001\x0084" + "\x0001\0\x0001\x0083\x0001\x0082\x001A\0\x0005\x007E\x0001\0\x0087\x007E\x0002\0\x0001\x007F\x0007\0" + "\x0001\x0084\x0004\0\x0001\x0083\x0001\0\x0001\x0084\x0001\0\x000A\x0080\x0001\x0082\x0001\x0083\x0005\0" + "\x001A\x007E\x0004\0\x0001\x0085\x0001\0\x001A\x007E\x000B\0\x0038\x0081\x0002\x007F\x001F\x008D\x0003\0" + "\x0006\x008D\x0002\0\x0006\x008D\x0002\0\x0006\x008D\x0002\0\x0003\x008D\x001C\0\x0003\x007F\x0004\0"; - - /// - /// Translates characters to character classes - /// - private static readonly char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); - - /// - /// Translates DFA states to action switch labels. - /// - private static readonly int[] ZZ_ACTION = zzUnpackAction(); - - private const string ZZ_ACTION_PACKED_0 = "\x0001\0\x0016\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + "\x0001\x0007\x0001\x0002\x0001\x0008\x0011\0\x0001\x0002\x0001\0\x0001\x0002\x000A\0" + "\x0001\x0003\x0011\0\x0001\x0002\x0015\0\x0001\x0002\x004D\0\x0001\x0001\x0010\0"; - - private static int [] zzUnpackAction() - { - int[] result = new int[197]; - int offset = 0; - offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAction(string packed, int offset, int[] result) - { - int i = 0; // index in packed string - int j = offset; // index in unpacked array - int l = packed.Length; - while (i < l) - { - int count = packed[i++]; - int value = packed[i++]; - do - { - result[j++] = value; - } while (--count > 0); - } - return j; - } - - - /// - /// Translates a state to a row index in the transition table - /// - private static readonly int[] ZZ_ROWMAP = zzUnpackRowMap(); - - private const string ZZ_ROWMAP_PACKED_0 = "\0\0\0\x008E\0\u011c\0\u01aa\0\u0238\0\u02c6\0\u0354\0\u03e2" + "\0\u0470\0\u04fe\0\u058c\0\u061a\0\u06a8\0\u0736\0\u07c4\0\u0852" + "\0\u08e0\0\u096e\0\u09fc\0\u0a8a\0\u0b18\0\u0ba6\0\u0c34\0\u0cc2" + "\0\u0d50\0\u0dde\0\u0e6c\0\u0efa\0\u0f88\0\u1016\0\u10a4\0\u1132" + "\0\u11c0\0\u011c\0\u01aa\0\u124e\0\u12dc\0\u0354\0\u03e2\0\u0470" + "\0\u04fe\0\u136a\0\u13f8\0\u1486\0\u1514\0\u07c4\0\u15a2\0\u1630" + "\0\u16be\0\u174c\0\u17da\0\u1868\0\u18f6\0\u02c6\0\u1984\0\u1a12" + "\0\u06a8\0\u1aa0\0\u1b2e\0\u1bbc\0\u1c4a\0\u1cd8\0\u1d66\0\u1df4" + "\0\u1e82\0\u1f10\0\u1f9e\0\u202c\0\u20ba\0\u2148\0\u21d6\0\u2264" + "\0\u22f2\0\u2380\0\u240e\0\u249c\0\u252a\0\u25b8\0\u2646\0\u0e6c" + "\0\u26d4\0\u2762\0\u27f0\0\u287e\0\u290c\0\u299a\0\u2a28\0\u2ab6" + "\0\u2b44\0\u2bd2\0\u2c60\0\u2cee\0\u2d7c\0\u2e0a\0\u2e98\0\u2f26" + "\0\u2fb4\0\u3042\0\u30d0\0\u315e\0\u31ec\0\u327a\0\u3308\0\u3396" + "\0\u3424\0\u34b2\0\u3540\0\u35ce\0\u365c\0\u36ea\0\u3778\0\u3806" + "\0\u3894\0\u3922\0\u39b0\0\u3a3e\0\u3acc\0\u3b5a\0\u3be8\0\u3c76" + "\0\u3d04\0\u3d92\0\u3e20\0\u3eae\0\u3f3c\0\u3fca\0\u4058\0\u40e6" + "\0\u4174\0\u4202\0\u4290\0\u431e\0\u43ac\0\u443a\0\u44c8\0\u4556" + "\0\u45e4\0\u4672\0\u4700\0\u478e\0\u481c\0\u48aa\0\u4938\0\u49c6" + "\0\u4a54\0\u4ae2\0\u4b70\0\u4bfe\0\u4c8c\0\u4d1a\0\u4da8\0\u4e36" + "\0\u4ec4\0\u4f52\0\u4fe0\0\u506e\0\u50fc\0\u518a\0\u5218\0\u52a6" + "\0\u5334\0\u53c2\0\u5450\0\u54de\0\u556c\0\u55fa\0\u5688\0\u5716" + "\0\u57a4\0\u5832\0\u58c0\0\u594e\0\u59dc\0\u5a6a\0\u5af8\0\u5b86" + "\0\u5c14\0\u5ca2\0\u5d30\0\u5dbe\0\u5e4c\0\u5eda\0\u5f68\0\u5ff6" + "\0\u6084\0\u6112\0\u61a0\0\u622e\0\u62bc\0\u634a\0\u63d8\0\u6466" + "\0\u64f4\0\u6582\0\u6610\0\u669e\0\u672c"; - - private static int [] zzUnpackRowMap() - { - int[] result = new int[197]; - int offset = 0; - offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackRowMap(string packed, int offset, int[] result) - { - int i = 0; // index in packed string - int j = offset; // index in unpacked array - int l = packed.Length; - while (i < l) - { - int high = packed[i++] << 16; - result[j++] = high | packed[i++]; - } - return j; - } - - /// - /// The transition table of the DFA - /// - private static readonly int[] ZZ_TRANS = zzUnpackTrans(); - - private const string ZZ_TRANS_PACKED_0 = "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0002\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + "\x0004\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0001\x0002\x0001\x0009\x0002\x0002\x0001\x000A" + "\x0003\x0002\x0001\x000B\x0002\x0002\x0001\x000C\x0004\x0002\x0001\x000D\x0003\x0002\x0001\x000E" + "\x000F\x0002\x0001\x000F\x0002\x0002\x0001\x0010\x0036\x0002\x0001\x0011\x0001\x0002\x0001\x0012" + "\x0002\x0002\x0001\x0013\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0002" + "\x0001\x0017\x0003\x0002\x0001\x0018\x0001\x0002\x0001\x0019\x0001\x001A\x0003\x0002\x0001\x001B" + "\x0002\x001C\x0001\x001D\x0001\x001E\x0002\x0002\x0001\x001F\x0001\x0020\x0090\0\x0001\x0018" + "\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x000E\0\x0001\x0018\x000D\0\x0001\x0018" + "\x0010\0\x0001\x0018\x0001\0\x0001\x0018\x0021\0\x0001\x0018\x0004\0\x0001\x0018" + "\x0008\0\x0002\x0018\x0005\0\x0002\x0018\x0008\0\x0001\x0018\x0016\0\x0002\x0018" + "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0018\x0008\0\x0004\x0018" + "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0002\0\x0001\x0018" + "\x0004\0\x0004\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018" + "\x0001\0\x0001\x0018\x0002\0\x0004\x0018\x0002\0\x0003\x0018\x0001\0\x0002\x0018" + "\x0001\0\x0003\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0005\0\x0004\x0018" + "\x0002\0\x0008\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0001\0\x0002\x0018" + "\x0004\0\x0001\x0018\x0003\0\x0003\x0018\x0017\0\x0001\x0018\x0004\0\x0001\x0018" + "\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x0017\0\x0001\x0018" + "\x0033\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0\x0001\x0018" + "\x0001\0\x0001\x0019\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018" + "\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0\x0004\x0018" + "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018" + "\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0\x0002\x0018" + "\x0001\0\x0008\x0018\x0001\x0019\x0001\0\x0007\x0018\x0001\0\x0008\x0018\x0001\0" + "\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0003\0\x0003\x0018\x001E\0\x0001\x0018\x000F\0\x0001\x0018\x0013\0" + "\x0001\x0018\x0013\0\x0001\x0018\x0006\0\x0003\x0018\x001F\0\x0001\x0018\x0007\0" + "\x0001\x0018\x0018\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0" + "\x0004\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + "\x0003\x0018\x0001\0\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0003\x0018\x0001\0" + "\x000F\x0018\x0001\0\x0002\x0018\x0001\0\x0011\x0018\x0001\0\x0002\x0018\x0001\0" + "\x0021\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x001E\0\x0001\x0018\x0003\0" + "\x0002\x0018\x000A\0\x0002\x0018\x000B\0\x0001\x0018\x0006\0\x0001\x0018\x0002\0" + "\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018\x0002\0\x0002\x0018\x0005\0" + "\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + "\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0002\x0018\x0002\0" + "\x0001\x0018\x0003\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + "\x0009\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + "\x000C\x0018\x0001\0\x0002\x0018\x0001\0\x0008\x0018\x0001\0\x0002\x0018\x0001\0" + "\x0001\x0018\x0001\0\x0013\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0012\0" + "\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019" + "\x0041\0\x0001\x0019\x0017\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + "\x000D\0\x0003\x0018\x0003\0\x0001\x0018\x0007\0\x0002\x0018\x0001\0\x0004\x0019" + "\x0001\0\x0002\x0018\x000B\0\x0001\x0018\x0013\0\x0001\x0018\x0024\0\x0001\x0018" + "\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0\x0001\x0018" + "\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018" + "\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0019" + "\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0\x0001\x0018" + "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018" + "\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018" + "\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018" + "\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0006\0\x0002\x0018\x0006\0\x0001\x0018" + "\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x0022\0\x0001\x0018\x000F\0\x0002\x0018" + "\x0012\0\x0001\x0018\x0002\0\x0002\x0018\x000B\0\x0001\x0018\x0003\0\x0002\x0018" + "\x0005\0\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018" + "\x001D\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018" + "\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018" + "\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018" + "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + "\x0001\0\x0001\x0018\x005F\0\x0001\x001E\x0021\0\x0001\x001A\x0022\0\x0001\x001D" + "\x0006\0\x0001\x001D\x0002\0\x0001\x001D\x0003\0\x0002\x001D\x0008\0\x0004\x001D" + "\x0001\0\x0003\x001D\x0001\0\x0001\x001D\x0002\0\x0001\x001D\x0002\0\x0001\x001D" + "\x0004\0\x0004\x001D\x0001\0\x0002\x001D\x0006\0\x0001\x001D\x0002\0\x0004\x001D" + "\x0002\0\x0003\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0004\x001D" + "\x0001\0\x0002\x001D\x0005\0\x0004\x001D\x0002\0\x0008\x001D\x0004\0\x0001\x001D" + "\x0001\0\x0002\x001D\x0004\0\x0001\x001D\x0003\0\x0003\x001D\x0012\0\x0001\x001D" + "\x0001\0\x0002\x001D\x0001\0\x0001\x001D\x0001\0\x0004\x001D\x0001\0\x0001\x001D" + "\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0002\x001D" + "\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x000F\x001D\x0001\0\x0002\x001D" + "\x0001\0\x0011\x001D\x0001\0\x0002\x001D\x0001\0\x0021\x001D\x0001\0\x0001\x001D" + "\x0001\0\x0002\x001D\x0002\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D" + "\x0001\0\x0003\x001D\x0012\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0001\x001D" + "\x0001\0\x0004\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D" + "\x0002\0\x0001\x001D\x0002\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D" + "\x0001\0\x000F\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x001E\0\x0001\x001D" + "\x000F\0\x0001\x001D\x0013\0\x0001\x001D\x001A\0\x0001\x001D\x0021\0\x0001\x001D" + "\x0007\0\x0001\x001D\x0018\0\x0001\x001D\x0001\0\x0002\x001D\x0003\0\x0004\x001D" + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D" + "\x0001\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x0008\x001D" + "\x0001\0\x0006\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x0075\0\x0001\x0021" + "\x0015\0\x0001\x001E\x0002\x0021\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + "\x0001\x0024\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x002A\x0002\0\x0001\x002B\x0004\0" + "\x0001\x002C\x0003\0\x0001\x002D\x000F\0\x0001\x002E\x0002\0\x0001\x002F\x0011\0" + "\x0001\x0030\x0002\0\x0001\x0031\x0031\0\x0002\x0018\x0001\x0032\x0001\0\x0001\x0033" + "\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0018\x0002\0\x0001\x0033\x0001\0" + "\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0035" + "\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028" + "\x0002\0\x0001\x0029\x0003\0\x0001\x0037\x0002\0\x0001\x0038\x0004\0\x0001\x0039" + "\x0003\0\x0001\x003A\x000F\0\x0001\x002E\x0002\0\x0001\x003B\x0011\0\x0001\x003C" + "\x0002\0\x0001\x003D\x0031\0\x0001\x0018\x0002\x0019\x0002\0\x0002\x003E\x0001\x003F" + "\x0001\0\x0001\x0019\x0002\0\x0001\x003E\x0001\0\x0001\x001F\x0001\x0018\x0006\0" + "\x0001\x0040\x0011\0\x0001\x0041\x0002\0\x0001\x0042\x0008\0\x0001\x0043\x0012\0" + "\x0001\x0044\x0011\0\x0001\x0045\x0002\0\x0001\x0046\x0021\0\x0001\x0047\x0010\0" + "\x0001\x001A\x0001\0\x0001\x001A\x0003\0\x0001\x0034\x0001\0\x0001\x001A\x0007\0" + "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0048\x0001\0\x0001\x0036\x0004\0" + "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + "\x0001\x0049\x0002\0\x0001\x004A\x0004\0\x0001\x0039\x0003\0\x0001\x004B\x000F\0" + "\x0001\x002E\x0002\0\x0001\x004C\x0011\0\x0001\x004D\x0002\0\x0001\x004E\x0021\0" + "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0050\x0001\x0019\x0001\x0051\x0003\0\x0001\x0050" + "\x0001\0\x0001\x0050\x0004\0\x0001\x001F\x0001\x0018\x0086\0\x0002\x001C\x000C\0" + "\x0001\x0052\x0011\0\x0001\x0053\x0002\0\x0001\x0054\x0008\0\x0001\x0055\x0012\0" + "\x0001\x0056\x0011\0\x0001\x0057\x0002\0\x0001\x0058\x0032\0\x0001\x001D\x0007\0" + "\x0001\x001D\x000C\0\x0001\x0059\x0011\0\x0001\x005A\x0002\0\x0001\x005B\x0008\0" + "\x0001\x005C\x0012\0\x0001\x005D\x0011\0\x0001\x005E\x0002\0\x0001\x005F\x0032\0" + "\x0001\x001E\x0007\0\x0001\x001E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + "\x0001\x0060\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0061\x0002\0\x0001\x0062\x0004\0" + "\x0001\x002C\x0003\0\x0001\x0063\x000F\0\x0001\x002E\x0002\0\x0001\x0064\x0011\0" + "\x0001\x0065\x0002\0\x0001\x0066\x0031\0\x0001\x0018\x0001\x001F\x0001\x0032\x0001\0" + "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x001F\x0002\0\x0001\x0067" + "\x0001\x0068\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + "\x0001\x0069\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x006A\x0002\0\x0001\x006B\x0004\0" + "\x0001\x002C\x0003\0\x0001\x006C\x000F\0\x0001\x002E\x0002\0\x0001\x006D\x0011\0" + "\x0001\x006E\x0002\0\x0001\x006F\x0031\0\x0001\x0018\x0001\x0020\x0001\x0032\x0001\0" + "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0020\x0002\0\x0001\x0033" + "\x0001\0\x0001\x001F\x0001\x0020\x0006\0\x0001\x0070\x0011\0\x0001\x0071\x0002\0" + "\x0001\x0072\x0008\0\x0001\x0073\x0012\0\x0001\x0074\x0011\0\x0001\x0075\x0002\0" + "\x0001\x0076\x002D\0\x0001\x0077\x0004\0\x0001\x0021\x0007\0\x0001\x0021\x000D\0" + "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + "\x0001\x0018\x000B\0\x0001\x0018\x0002\0\x0001\x0018\x0008\0\x0001\x0018\x0012\0" + "\x0004\x0018\x001D\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0" + "\x0001\x0018\x0001\0\x0001\x0032\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + "\x0002\x0018\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0" + "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0" + "\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0" + "\x0002\x0018\x0001\0\x0008\x0018\x0001\x0032\x0001\0\x0007\x0018\x0001\0\x0008\x0018" + "\x0001\0\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018" + "\x0001\0\x0001\x0018\x0003\0\x0003\x0018\x0012\0\x0001\x0018\x0016\0\x0002\x0018" + "\x0013\0\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0018\x0035\0" + "\x0001\x0032\x0009\0\x0001\x0018\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0" + "\x0004\x0018\x0001\0\x0002\x0018\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0004\0\x0003\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0" + "\x0004\x0018\x0002\0\x0002\x0018\x000A\0\x0001\x0018\x0007\0\x0001\x0018\x0024\0" + "\x0001\x0018\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0" + "\x0001\x0018\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0" + "\x0002\x0018\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0" + "\x0002\x0032\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0005\x0018\x0001\0" + "\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + "\x0001\x0018\x005C\0\x0002\x0018\x0015\0\x0004\x0018\x002D\0\x0001\x0018\x000D\0" + "\x0002\x0018\x0008\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0009\0" + "\x0001\x0018\x0009\0\x0002\x0018\x0006\0\x0001\x0018\x0002\0\x0004\x0018\x0003\0" + "\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + "\x0001\x0018\x0008\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018\x0001\0" + "\x0004\x0018\x0013\0\x0001\x0018\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + "\x0001\x0078\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0079\x0002\0\x0001\x007A\x0004\0" + "\x0001\x002C\x0003\0\x0001\x007B\x000F\0\x0001\x002E\x0002\0\x0001\x007C\x0011\0" + "\x0001\x007D\x0002\0\x0001\x007E\x0031\0\x0001\x0018\x0002\x0032\x0002\0\x0002\x007F" + "\x0001\x0034\x0001\0\x0001\x0032\x0002\0\x0001\x007F\x0001\0\x0001\x001F\x0001\x0018" + "\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0080\x0001\0\x0001\x0081" + "\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029" + "\x0003\0\x0001\x0082\x0002\0\x0001\x0083\x0004\0\x0001\x0084\x0003\0\x0001\x0085" + "\x000F\0\x0001\x002E\x0002\0\x0001\x0086\x0011\0\x0001\x0087\x0002\0\x0001\x0088" + "\x0031\0\x0001\x0018\x0001\x0033\x0007\0\x0001\x0033\x0004\0\x0002\x0018\x0001\0" + "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0089\x0001\0\x0001\x0025\x0004\0" + "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + "\x0001\x008A\x0002\0\x0001\x008B\x0004\0\x0001\x002C\x0003\0\x0001\x008C\x000F\0" + "\x0001\x002E\x0002\0\x0001\x008D\x0011\0\x0001\x008E\x0002\0\x0001\x008F\x0021\0" + "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0034\x0001\x0032\x0001\x0051\x0003\0\x0001\x0034" + "\x0001\0\x0001\x0034\x0004\0\x0001\x001F\x0001\x0018\x0007\0\x0001\x0018\x0004\0" + "\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0" + "\x0001\x0019\x0002\0\x0001\x0019\x0008\0\x0001\x0018\x0012\0\x0004\x0019\x001D\0" + "\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018" + "\x0020\0\x0001\x0019\x000B\0\x0001\x0019\x0035\0\x0001\x0019\x0009\0\x0001\x0019" + "\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0019\x0001\0" + "\x0002\x0019\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0019\x0004\0" + "\x0001\x0019\x0002\x0018\x0001\0\x0004\x0019\x0001\0\x0002\x0018\x0005\0\x0004\x0019" + "\x0002\0\x0001\x0018\x0001\x0019\x000A\0\x0001\x0019\x0007\0\x0001\x0018\x0018\0" + "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0019\x0001\0" + "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0019" + "\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + "\x0001\0\x0001\x0018\x005C\0\x0002\x0019\x0015\0\x0004\x0019\x002D\0\x0001\x0019" + "\x000D\0\x0002\x0019\x0008\0\x0002\x0019\x0001\0\x0001\x0019\x0001\0\x0001\x0019" + "\x0009\0\x0001\x0019\x0009\0\x0002\x0019\x0006\0\x0001\x0019\x0002\0\x0004\x0019" + "\x0003\0\x0001\x0019\x0002\0\x0002\x0019\x0001\0\x0003\x0019\x0001\0\x0002\x0019" + "\x0001\0\x0001\x0019\x0008\0\x0001\x0019\x0001\0\x0002\x0019\x0002\0\x0002\x0019" + "\x0001\0\x0004\x0019\x0013\0\x0001\x0019\x0016\0\x0001\x0090\x0001\0\x0001\x0091" + "\x000F\0\x0001\x0092\x0002\0\x0001\x0093\x0004\0\x0001\x0094\x0003\0\x0001\x0095" + "\x0012\0\x0001\x0096\x0011\0\x0001\x0097\x0002\0\x0001\x0098\x0032\0\x0001\x003E" + "\x0001\x0019\x0006\0\x0001\x003E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + "\x0001\x0099\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x009A\x0002\0\x0001\x009B\x0004\0" + "\x0001\x0039\x0003\0\x0001\x009C\x000F\0\x0001\x002E\x0002\0\x0001\x009D\x0011\0" + "\x0001\x009E\x0002\0\x0001\x009F\x0021\0\x0001\x004F\x000F\0\x0001\x0018\x0001\x003F" + "\x0001\x0019\x0001\x0051\x0003\0\x0001\x003F\x0001\0\x0001\x003F\x0004\0\x0001\x001F" + "\x0001\x0018\x0039\0\x0001\x001A\x0002\0\x0001\x001A\x001B\0\x0004\x001A\x008E\0" + "\x0001\x001A\x003F\0\x0001\x001A\x0024\0\x0001\x001A\x0001\0\x0002\x001A\x0011\0" + "\x0001\x001A\x0004\0\x0001\x001A\x000F\0\x0004\x001A\x0003\0\x0001\x001A\x000A\0" + "\x0001\x001A\x0083\0\x0001\x001A\x0092\0\x0004\x001A\x006A\0\x0002\x001A\x0015\0" + "\x0004\x001A\x002D\0\x0001\x001A\x000D\0\x0002\x001A\x0008\0\x0002\x001A\x0001\0" + "\x0001\x001A\x0001\0\x0001\x001A\x0009\0\x0001\x001A\x0009\0\x0002\x001A\x0006\0" + "\x0001\x001A\x0002\0\x0004\x001A\x0003\0\x0001\x001A\x0002\0\x0002\x001A\x0001\0" + "\x0003\x001A\x0001\0\x0002\x001A\x0001\0\x0001\x001A\x0008\0\x0001\x001A\x0001\0" + "\x0002\x001A\x0002\0\x0002\x001A\x0001\0\x0004\x001A\x0013\0\x0001\x001A\x007F\0" + "\x0001\x001A\x0025\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0" + "\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0050\x0002\0\x0001\x0050\x0008\0" + "\x0001\x0018\x0012\0\x0004\x0050\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0" + "\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019\x000B\0\x0001\x0050" + "\x0035\0\x0001\x0019\x0009\0\x0001\x0050\x000D\0\x0004\x0018\x0002\0\x0002\x0018" + "\x000C\0\x0003\x0018\x0001\x0050\x0001\0\x0002\x0050\x0009\0\x0003\x0018\x0003\0" + "\x0001\x0018\x0001\0\x0001\x0050\x0004\0\x0001\x0050\x0002\x0018\x0001\0\x0004\x0019" + "\x0001\0\x0002\x0018\x0005\0\x0004\x0050\x0002\0\x0001\x0018\x0001\x0050\x000A\0" + "\x0001\x0050\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0" + "\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0" + "\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + "\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0004\0\x0001\x0050\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0" + "\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + "\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0" + "\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0" + "\x0002\x0018\x0004\0\x0001\x0018\x0004\x0050\x0001\0\x0001\x0018\x0002\0\x0001\x0018" + "\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0050" + "\x0015\0\x0004\x0050\x002D\0\x0001\x0050\x000D\0\x0002\x0050\x0008\0\x0002\x0050" + "\x0001\0\x0001\x0050\x0001\0\x0001\x0050\x0009\0\x0001\x0050\x0009\0\x0002\x0050" + "\x0006\0\x0001\x0050\x0002\0\x0004\x0050\x0003\0\x0001\x0050\x0002\0\x0002\x0050" + "\x0001\0\x0003\x0050\x0001\0\x0002\x0050\x0001\0\x0001\x0050\x0008\0\x0001\x0050" + "\x0001\0\x0002\x0050\x0002\0\x0002\x0050\x0001\0\x0004\x0050\x0013\0\x0001\x0050" + "\x007F\0\x0001\x0051\x0024\0\x0001\x00A0\x0011\0\x0001\x00A1\x0002\0\x0001\x00A2" + "\x0008\0\x0001\x00A3\x0012\0\x0001\x00A4\x0011\0\x0001\x00A5\x0002\0\x0001\x00A6" + "\x0021\0\x0001\x004F\x0010\0\x0001\x0051\x0001\0\x0001\x0051\x0003\0\x0001\x0034" + "\x0001\0\x0001\x0051\x003F\0\x0001\x001D\x0002\0\x0001\x001D\x001B\0\x0004\x001D" + "\x008E\0\x0001\x001D\x003F\0\x0001\x001D\x0024\0\x0001\x001D\x0001\0\x0002\x001D" + "\x0011\0\x0001\x001D\x0004\0\x0001\x001D\x000F\0\x0004\x001D\x0003\0\x0001\x001D" + "\x000A\0\x0001\x001D\x0083\0\x0001\x001D\x0092\0\x0004\x001D\x006A\0\x0002\x001D" + "\x0015\0\x0004\x001D\x002D\0\x0001\x001D\x000D\0\x0002\x001D\x0008\0\x0002\x001D" + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0009\0\x0001\x001D\x0009\0\x0002\x001D" + "\x0006\0\x0001\x001D\x0002\0\x0004\x001D\x0003\0\x0001\x001D\x0002\0\x0002\x001D" + "\x0001\0\x0003\x001D\x0001\0\x0002\x001D\x0001\0\x0001\x001D\x0008\0\x0001\x001D" + "\x0001\0\x0002\x001D\x0002\0\x0002\x001D\x0001\0\x0004\x001D\x0013\0\x0001\x001D" + "\x0049\0\x0001\x001E\x0002\0\x0001\x001E\x001B\0\x0004\x001E\x008E\0\x0001\x001E" + "\x003F\0\x0001\x001E\x0024\0\x0001\x001E\x0001\0\x0002\x001E\x0011\0\x0001\x001E" + "\x0004\0\x0001\x001E\x000F\0\x0004\x001E\x0003\0\x0001\x001E\x000A\0\x0001\x001E" + "\x0083\0\x0001\x001E\x0092\0\x0004\x001E\x006A\0\x0002\x001E\x0015\0\x0004\x001E" + "\x002D\0\x0001\x001E\x000D\0\x0002\x001E\x0008\0\x0002\x001E\x0001\0\x0001\x001E" + "\x0001\0\x0001\x001E\x0009\0\x0001\x001E\x0009\0\x0002\x001E\x0006\0\x0001\x001E" + "\x0002\0\x0004\x001E\x0003\0\x0001\x001E\x0002\0\x0002\x001E\x0001\0\x0003\x001E" + "\x0001\0\x0002\x001E\x0001\0\x0001\x001E\x0008\0\x0001\x001E\x0001\0\x0002\x001E" + "\x0002\0\x0002\x001E\x0001\0\x0004\x001E\x0013\0\x0001\x001E\x0017\0\x0001\x0018" + "\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018" + "\x000B\0\x0001\x001F\x0002\0\x0001\x001F\x0008\0\x0001\x0018\x0012\0\x0004\x001F" + "\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0032" + "\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x001F\x0035\0\x0001\x0032\x0009\0" + "\x0001\x001F\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x001F" + "\x0001\0\x0002\x001F\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x001F" + "\x0004\0\x0001\x001F\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0" + "\x0004\x001F\x0002\0\x0001\x0018\x0001\x001F\x000A\0\x0001\x001F\x0007\0\x0001\x0018" + "\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018" + "\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018" + "\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + "\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018" + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x001F" + "\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018" + "\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018" + "\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018" + "\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018" + "\x0004\x001F\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x001F\x0015\0\x0004\x001F\x002D\0" + "\x0001\x001F\x000D\0\x0002\x001F\x0008\0\x0002\x001F\x0001\0\x0001\x001F\x0001\0" + "\x0001\x001F\x0009\0\x0001\x001F\x0009\0\x0002\x001F\x0006\0\x0001\x001F\x0002\0" + "\x0004\x001F\x0003\0\x0001\x001F\x0002\0\x0002\x001F\x0001\0\x0003\x001F\x0001\0" + "\x0002\x001F\x0001\0\x0001\x001F\x0008\0\x0001\x001F\x0001\0\x0002\x001F\x0002\0" + "\x0002\x001F\x0001\0\x0004\x001F\x0013\0\x0001\x001F\x0011\0\x0001\x0022\x0001\0" + "\x0001\x0023\x0002\0\x0001\x00A7\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0" + "\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x00A8\x0002\0" + "\x0001\x00A9\x0004\0\x0001\x002C\x0003\0\x0001\x00AA\x000F\0\x0001\x002E\x0002\0" + "\x0001\x00AB\x0011\0\x0001\x00AC\x0002\0\x0001\x00AD\x0031\0\x0001\x0018\x0001\x0067" + "\x0001\x0032\x0004\0\x0001\x0034\x0001\0\x0001\x0067\x0004\0\x0001\x001F\x0001\x0018" + "\x0006\0\x0001\x00AE\x0011\0\x0001\x00AF\x0002\0\x0001\x00B0\x0008\0\x0001\x00B1" + "\x0012\0\x0001\x00B2\x0011\0\x0001\x00B3\x0002\0\x0001\x00B4\x0032\0\x0001\x0068" + "\x0007\0\x0001\x0068\x0004\0\x0001\x0067\x0008\0\x0001\x0018\x0004\0\x0001\x0018" + "\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0020" + "\x0002\0\x0001\x0020\x0008\0\x0001\x0018\x0012\0\x0004\x0020\x001D\0\x0001\x0018" + "\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0032\x0001\x0018\x0020\0" + "\x0001\x0032\x000B\0\x0001\x0020\x0035\0\x0001\x0032\x0009\0\x0001\x0020\x000D\0" + "\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0020\x0001\0\x0002\x0020" + "\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0020\x0004\0\x0001\x0020" + "\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0\x0004\x0020\x0002\0" + "\x0001\x0018\x0001\x0020\x000A\0\x0001\x0020\x0007\0\x0001\x0018\x0018\0\x0001\x0018" + "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018" + "\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018" + "\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018" + "\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0020\x0001\0\x0002\x0018" + "\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018" + "\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018" + "\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018" + "\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0020\x0001\0" + "\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + "\x0001\x0018\x005C\0\x0002\x0020\x0015\0\x0004\x0020\x002D\0\x0001\x0020\x000D\0" + "\x0002\x0020\x0008\0\x0002\x0020\x0001\0\x0001\x0020\x0001\0\x0001\x0020\x0009\0" + "\x0001\x0020\x0009\0\x0002\x0020\x0006\0\x0001\x0020\x0002\0\x0004\x0020\x0003\0" + "\x0001\x0020\x0002\0\x0002\x0020\x0001\0\x0003\x0020\x0001\0\x0002\x0020\x0001\0" + "\x0001\x0020\x0008\0\x0001\x0020\x0001\0\x0002\x0020\x0002\0\x0002\x0020\x0001\0" + "\x0004\x0020\x0013\0\x0001\x0020\x0049\0\x0001\x0021\x0002\0\x0001\x0021\x001B\0" + "\x0004\x0021\x008E\0\x0001\x0021\x003F\0\x0001\x0021\x0024\0\x0001\x0021\x0001\0" + "\x0002\x0021\x0011\0\x0001\x0021\x0004\0\x0001\x0021\x000F\0\x0004\x0021\x0003\0" + "\x0001\x0021\x000A\0\x0001\x0021\x0083\0\x0001\x0021\x0092\0\x0004\x0021\x006A\0" + "\x0002\x0021\x0015\0\x0004\x0021\x002D\0\x0001\x0021\x000D\0\x0002\x0021\x0008\0" + "\x0002\x0021\x0001\0\x0001\x0021\x0001\0\x0001\x0021\x0009\0\x0001\x0021\x0009\0" + "\x0002\x0021\x0006\0\x0001\x0021\x0002\0\x0004\x0021\x0003\0\x0001\x0021\x0002\0" + "\x0002\x0021\x0001\0\x0003\x0021\x0001\0\x0002\x0021\x0001\0\x0001\x0021\x0008\0" + "\x0001\x0021\x0001\0\x0002\x0021\x0002\0\x0002\x0021\x0001\0\x0004\x0021\x0013\0" + "\x0001\x0021\x0075\0\x0001\x00B5\x0016\0\x0002\x00B5\x0017\0\x0001\x0018\x0004\0" + "\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0" + "\x0001\x0032\x0002\0\x0001\x0032\x0008\0\x0001\x0018\x0012\0\x0004\x0032\x001D\0" + "\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0032\x0001\x0018" + "\x0020\0\x0001\x0032\x000B\0\x0001\x0032\x0035\0\x0001\x0032\x0009\0\x0001\x0032" + "\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0032\x0001\0" + "\x0002\x0032\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0032\x0004\0" + "\x0001\x0032\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0\x0004\x0032" + "\x0002\0\x0001\x0018\x0001\x0032\x000A\0\x0001\x0032\x0007\0\x0001\x0018\x0018\0" + "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0032\x0001\0" + "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0032" + "\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + "\x0001\0\x0001\x0018\x005C\0\x0002\x0032\x0015\0\x0004\x0032\x002D\0\x0001\x0032" + "\x000D\0\x0002\x0032\x0008\0\x0002\x0032\x0001\0\x0001\x0032\x0001\0\x0001\x0032" + "\x0009\0\x0001\x0032\x0009\0\x0002\x0032\x0006\0\x0001\x0032\x0002\0\x0004\x0032" + "\x0003\0\x0001\x0032\x0002\0\x0002\x0032\x0001\0\x0003\x0032\x0001\0\x0002\x0032" + "\x0001\0\x0001\x0032\x0008\0\x0001\x0032\x0001\0\x0002\x0032\x0002\0\x0002\x0032" + "\x0001\0\x0004\x0032\x0013\0\x0001\x0032\x0016\0\x0001\x00B6\x0001\0\x0001\x00B7" + "\x000F\0\x0001\x00B8\x0002\0\x0001\x00B9\x0004\0\x0001\x00BA\x0003\0\x0001\x00BB" + "\x0012\0\x0001\x00BC\x0011\0\x0001\x00BD\x0002\0\x0001\x00BE\x0032\0\x0001\x007F" + "\x0001\x0032\x0006\0\x0001\x007F\x000D\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0" + "\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0033\x0002\0" + "\x0001\x0033\x0008\0\x0001\x0018\x0012\0\x0004\x0033\x001D\0\x0001\x0018\x0019\0" + "\x0001\x0018\x0003\0\x0004\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + "\x0002\x0018\x0002\0\x0002\x0018\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0002\0\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0" + "\x0003\x0018\x0001\0\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0" + "\x0008\x0018\x0001\0\x0002\x0018\x0001\0\x0008\x0018\x0002\0\x0007\x0018\x0001\0" + "\x0008\x0018\x0001\0\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0003\0\x0003\x0018\x0012\0\x0001\x0018\x0016\0" + "\x0002\x0018\x0014\0\x0001\x0018\x002C\0\x0001\x0033\x003F\0\x0001\x0033\x000D\0" + "\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0033\x0001\0\x0002\x0033" + "\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0033\x0004\0\x0001\x0033" + "\x0002\x0018\x0006\0\x0002\x0018\x0005\0\x0004\x0033\x0002\0\x0001\x0018\x0001\x0033" + "\x000A\0\x0001\x0033\x0007\0\x0001\x0018\x0024\0\x0001\x0018\x0003\0\x0002\x0018" + "\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0\x0001\x0018\x0006\0\x0002\x0018" + "\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018\x0002\0\x0002\x0018" + "\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x000D\0\x0001\x0018\x000E\0\x0001\x0018" + "\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018" + "\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018" + "\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018" + "\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018" + "\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018" + "\x0004\0\x0001\x0033\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018" + "\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018" + "\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018" + "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018" + "\x0004\0\x0001\x0018\x0004\x0033\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0033\x0015\0" + "\x0004\x0033\x002D\0\x0001\x0033\x000D\0\x0002\x0033\x0008\0\x0002\x0033\x0001\0" + "\x0001\x0033\x0001\0\x0001\x0033\x0009\0\x0001\x0033\x0009\0\x0002\x0033\x0006\0" + "\x0001\x0033\x0002\0\x0004\x0033\x0003\0\x0001\x0033\x0002\0\x0002\x0033\x0001\0" + "\x0003\x0033\x0001\0\x0002\x0033\x0001\0\x0001\x0033\x0008\0\x0001\x0033\x0001\0" + "\x0002\x0033\x0002\0\x0002\x0033\x0001\0\x0004\x0033\x0013\0\x0001\x0033\x0017\0" + "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + "\x0001\x0018\x000B\0\x0001\x0034\x0002\0\x0001\x0034\x0008\0\x0001\x0018\x0012\0" + "\x0004\x0034\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0" + "\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0034\x0035\0\x0001\x0032" + "\x0009\0\x0001\x0034\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + "\x0001\x0034\x0001\0\x0002\x0034\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + "\x0001\x0034\x0004\0\x0001\x0034\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018" + "\x0005\0\x0004\x0034\x0002\0\x0001\x0018\x0001\x0034\x000A\0\x0001\x0034\x0007\0" + "\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + "\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0" + "\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0" + "\x0001\x0034\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0" + "\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0" + "\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0" + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0" + "\x0001\x0018\x0004\x0034\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018" + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0034\x0015\0\x0004\x0034" + "\x002D\0\x0001\x0034\x000D\0\x0002\x0034\x0008\0\x0002\x0034\x0001\0\x0001\x0034" + "\x0001\0\x0001\x0034\x0009\0\x0001\x0034\x0009\0\x0002\x0034\x0006\0\x0001\x0034" + "\x0002\0\x0004\x0034\x0003\0\x0001\x0034\x0002\0\x0002\x0034\x0001\0\x0003\x0034" + "\x0001\0\x0002\x0034\x0001\0\x0001\x0034\x0008\0\x0001\x0034\x0001\0\x0002\x0034" + "\x0002\0\x0002\x0034\x0001\0\x0004\x0034\x0013\0\x0001\x0034\x0049\0\x0001\x003E" + "\x0002\0\x0001\x003E\x001B\0\x0004\x003E\x0042\0\x0001\x0019\x0044\0\x0001\x0019" + "\x0066\0\x0001\x0019\x0021\0\x0001\x0019\x000B\0\x0001\x003E\x0035\0\x0001\x0019" + "\x0009\0\x0001\x003E\x0024\0\x0001\x003E\x0001\0\x0002\x003E\x0011\0\x0001\x003E" + "\x0004\0\x0001\x003E\x0003\0\x0004\x0019\x0008\0\x0004\x003E\x0003\0\x0001\x003E" + "\x000A\0\x0001\x003E\x0074\0\x0002\x0019\x009B\0\x0001\x003E\x0092\0\x0004\x003E" + "\x006A\0\x0002\x003E\x0015\0\x0004\x003E\x002D\0\x0001\x003E\x000D\0\x0002\x003E" + "\x0008\0\x0002\x003E\x0001\0\x0001\x003E\x0001\0\x0001\x003E\x0009\0\x0001\x003E" + "\x0009\0\x0002\x003E\x0006\0\x0001\x003E\x0002\0\x0004\x003E\x0003\0\x0001\x003E" + "\x0002\0\x0002\x003E\x0001\0\x0003\x003E\x0001\0\x0002\x003E\x0001\0\x0001\x003E" + "\x0008\0\x0001\x003E\x0001\0\x0002\x003E\x0002\0\x0002\x003E\x0001\0\x0004\x003E" + "\x0013\0\x0001\x003E\x0017\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018" + "\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x003F\x0002\0\x0001\x003F" + "\x0008\0\x0001\x0018\x0012\0\x0004\x003F\x001D\0\x0001\x0018\x0016\0\x0001\x0018" + "\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019\x000B\0" + "\x0001\x003F\x0035\0\x0001\x0019\x0009\0\x0001\x003F\x000D\0\x0004\x0018\x0002\0" + "\x0002\x0018\x000C\0\x0003\x0018\x0001\x003F\x0001\0\x0002\x003F\x0009\0\x0003\x0018" + "\x0003\0\x0001\x0018\x0001\0\x0001\x003F\x0004\0\x0001\x003F\x0002\x0018\x0001\0" + "\x0004\x0019\x0001\0\x0002\x0018\x0005\0\x0004\x003F\x0002\0\x0001\x0018\x0001\x003F" + "\x000A\0\x0001\x003F\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018" + "\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018" + "\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018" + "\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018" + "\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018" + "\x0001\0\x0001\x0018\x0004\0\x0001\x003F\x0001\0\x0002\x0018\x0006\0\x0001\x0018" + "\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018" + "\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018" + "\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018" + "\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x003F\x0001\0\x0001\x0018\x0002\0" + "\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0" + "\x0002\x003F\x0015\0\x0004\x003F\x002D\0\x0001\x003F\x000D\0\x0002\x003F\x0008\0" + "\x0002\x003F\x0001\0\x0001\x003F\x0001\0\x0001\x003F\x0009\0\x0001\x003F\x0009\0" + "\x0002\x003F\x0006\0\x0001\x003F\x0002\0\x0004\x003F\x0003\0\x0001\x003F\x0002\0" + "\x0002\x003F\x0001\0\x0003\x003F\x0001\0\x0002\x003F\x0001\0\x0001\x003F\x0008\0" + "\x0001\x003F\x0001\0\x0002\x003F\x0002\0\x0002\x003F\x0001\0\x0004\x003F\x0013\0" + "\x0001\x003F\x0049\0\x0001\x0051\x0002\0\x0001\x0051\x001B\0\x0004\x0051\x008E\0" + "\x0001\x0051\x003F\0\x0001\x0051\x0024\0\x0001\x0051\x0001\0\x0002\x0051\x0011\0" + "\x0001\x0051\x0004\0\x0001\x0051\x000F\0\x0004\x0051\x0003\0\x0001\x0051\x000A\0" + "\x0001\x0051\x0083\0\x0001\x0051\x0092\0\x0004\x0051\x006A\0\x0002\x0051\x0015\0" + "\x0004\x0051\x002D\0\x0001\x0051\x000D\0\x0002\x0051\x0008\0\x0002\x0051\x0001\0" + "\x0001\x0051\x0001\0\x0001\x0051\x0009\0\x0001\x0051\x0009\0\x0002\x0051\x0006\0" + "\x0001\x0051\x0002\0\x0004\x0051\x0003\0\x0001\x0051\x0002\0\x0002\x0051\x0001\0" + "\x0003\x0051\x0001\0\x0002\x0051\x0001\0\x0001\x0051\x0008\0\x0001\x0051\x0001\0" + "\x0002\x0051\x0002\0\x0002\x0051\x0001\0\x0004\x0051\x0013\0\x0001\x0051\x0017\0" + "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + "\x0001\x0018\x000B\0\x0001\x0067\x0002\0\x0001\x0067\x0008\0\x0001\x0018\x0012\0" + "\x0004\x0067\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0" + "\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0067\x0035\0\x0001\x0032" + "\x0009\0\x0001\x0067\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + "\x0001\x0067\x0001\0\x0002\x0067\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + "\x0001\x0067\x0004\0\x0001\x0067\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018" + "\x0005\0\x0004\x0067\x0002\0\x0001\x0018\x0001\x0067\x000A\0\x0001\x0067\x0007\0" + "\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + "\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0" + "\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0" + "\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0" + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0" + "\x0001\x0067\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0" + "\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0" + "\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0" + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0" + "\x0001\x0018\x0004\x0067\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018" + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0067\x0015\0\x0004\x0067" + "\x002D\0\x0001\x0067\x000D\0\x0002\x0067\x0008\0\x0002\x0067\x0001\0\x0001\x0067" + "\x0001\0\x0001\x0067\x0009\0\x0001\x0067\x0009\0\x0002\x0067\x0006\0\x0001\x0067" + "\x0002\0\x0004\x0067\x0003\0\x0001\x0067\x0002\0\x0002\x0067\x0001\0\x0003\x0067" + "\x0001\0\x0002\x0067\x0001\0\x0001\x0067\x0008\0\x0001\x0067\x0001\0\x0002\x0067" + "\x0002\0\x0002\x0067\x0001\0\x0004\x0067\x0013\0\x0001\x0067\x0049\0\x0001\x0068" + "\x0002\0\x0001\x0068\x001B\0\x0004\x0068\x008E\0\x0001\x0068\x003F\0\x0001\x0068" + "\x0024\0\x0001\x0068\x0001\0\x0002\x0068\x0011\0\x0001\x0068\x0004\0\x0001\x0068" + "\x000F\0\x0004\x0068\x0003\0\x0001\x0068\x000A\0\x0001\x0068\x0083\0\x0001\x0068" + "\x0092\0\x0004\x0068\x006A\0\x0002\x0068\x0015\0\x0004\x0068\x002D\0\x0001\x0068" + "\x000D\0\x0002\x0068\x0008\0\x0002\x0068\x0001\0\x0001\x0068\x0001\0\x0001\x0068" + "\x0009\0\x0001\x0068\x0009\0\x0002\x0068\x0006\0\x0001\x0068\x0002\0\x0004\x0068" + "\x0003\0\x0001\x0068\x0002\0\x0002\x0068\x0001\0\x0003\x0068\x0001\0\x0002\x0068" + "\x0001\0\x0001\x0068\x0008\0\x0001\x0068\x0001\0\x0002\x0068\x0002\0\x0002\x0068" + "\x0001\0\x0004\x0068\x0013\0\x0001\x0068\x0016\0\x0001\x00BF\x0011\0\x0001\x00C0" + "\x0002\0\x0001\x00C1\x0008\0\x0001\x00C2\x0012\0\x0001\x00C3\x0011\0\x0001\x00C4" + "\x0002\0\x0001\x00C5\x002D\0\x0001\x0077\x0004\0\x0001\x00B5\x0007\0\x0001\x00B5" + "\x003F\0\x0001\x007F\x0002\0\x0001\x007F\x001B\0\x0004\x007F\x0042\0\x0001\x0032" + "\x0044\0\x0001\x0032\x0066\0\x0001\x0032\x0021\0\x0001\x0032\x000B\0\x0001\x007F" + "\x0035\0\x0001\x0032\x0009\0\x0001\x007F\x0024\0\x0001\x007F\x0001\0\x0002\x007F" + "\x0011\0\x0001\x007F\x0004\0\x0001\x007F\x0003\0\x0004\x0032\x0008\0\x0004\x007F" + "\x0003\0\x0001\x007F\x000A\0\x0001\x007F\x0074\0\x0002\x0032\x009B\0\x0001\x007F" + "\x0092\0\x0004\x007F\x006A\0\x0002\x007F\x0015\0\x0004\x007F\x002D\0\x0001\x007F" + "\x000D\0\x0002\x007F\x0008\0\x0002\x007F\x0001\0\x0001\x007F\x0001\0\x0001\x007F" + "\x0009\0\x0001\x007F\x0009\0\x0002\x007F\x0006\0\x0001\x007F\x0002\0\x0004\x007F" + "\x0003\0\x0001\x007F\x0002\0\x0002\x007F\x0001\0\x0003\x007F\x0001\0\x0002\x007F" + "\x0001\0\x0001\x007F\x0008\0\x0001\x007F\x0001\0\x0002\x007F\x0002\0\x0002\x007F" + "\x0001\0\x0004\x007F\x0013\0\x0001\x007F\x0049\0\x0001\x00B5\x0002\0\x0001\x00B5" + "\x001B\0\x0004\x00B5\x008E\0\x0001\x00B5\x003F\0\x0001\x00B5\x0024\0\x0001\x00B5" + "\x0001\0\x0002\x00B5\x0011\0\x0001\x00B5\x0004\0\x0001\x00B5\x000F\0\x0004\x00B5" + "\x0003\0\x0001\x00B5\x000A\0\x0001\x00B5\x0083\0\x0001\x00B5\x0092\0\x0004\x00B5" + "\x006A\0\x0002\x00B5\x0015\0\x0004\x00B5\x002D\0\x0001\x00B5\x000D\0\x0002\x00B5" + "\x0008\0\x0002\x00B5\x0001\0\x0001\x00B5\x0001\0\x0001\x00B5\x0009\0\x0001\x00B5" + "\x0009\0\x0002\x00B5\x0006\0\x0001\x00B5\x0002\0\x0004\x00B5\x0003\0\x0001\x00B5" + "\x0002\0\x0002\x00B5\x0001\0\x0003\x00B5\x0001\0\x0002\x00B5\x0001\0\x0001\x00B5" + "\x0008\0\x0001\x00B5\x0001\0\x0002\x00B5\x0002\0\x0002\x00B5\x0001\0\x0004\x00B5" + "\x0013\0\x0001\x00B5\x0010\0"; - - private static int [] zzUnpackTrans() - { - int[] result = new int[26554]; - int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackTrans(string packed, int offset, int[] result) - { - int i = 0; // index in packed string - int j = offset; // index in unpacked array - int l = packed.Length; - while (i < l) - { - int count = packed[i++]; - int value = packed[i++]; - value--; - do - { - result[j++] = value; - } while (--count > 0); - } - return j; - } - - - /* error codes */ - private const int ZZ_UNKNOWN_ERROR = 0; - private const int ZZ_NO_MATCH = 1; - private const int ZZ_PUSHBACK_2BIG = 2; - - /* error messages for the codes above */ - private static readonly string[] ZZ_ERROR_MSG = {}; - - /// - /// ZZ_ATTRIBUTE[aState] contains the attributes of state aState - /// - private static readonly int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private const string ZZ_ATTRIBUTE_PACKED_0 = "\x0001\0\x0001\x0009\x001E\x0001\x0011\0\x0001\x0001\x0001\0\x0001\x0001\x000A\0" + "\x0001\x0001\x0011\0\x0001\x0001\x0015\0\x0001\x0001\x004D\0\x0001\x0001\x0010\0"; - - private static int [] zzUnpackAttribute() - { - int[] result = new int[197]; - int offset = 0; - offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAttribute(string packed, int offset, int[] result) - { - int i = 0; // index in packed string - int j = offset; // index in unpacked array - int l = packed.Length; - while (i < l) - { - int count = packed[i++]; - int value = packed[i++]; - do - { - result[j++] = value; - } while (--count > 0); - } - return j; - } - - /// - /// the input device - private TextReader zzReader; - - /// - /// the current state of the DFA - private int zzState; - - /// - /// the current lexical state - private int zzLexicalState = YYINITIAL; - - /// - /// this buffer contains the current text to be matched and is - /// the source of the yytext() string - /// - private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; - - /// - /// the textposition at the last accepting state - private int zzMarkedPos; - - /// - /// the current text position in the buffer - private int zzCurrentPos; - - /// - /// startRead marks the beginning of the yytext() string in the buffer - private int zzStartRead; - - /// - /// endRead marks the last character in the buffer, that has been read - /// from input - /// - private int zzEndRead; - - /// - /// number of newlines encountered up to the start of the matched text - private int yyline; - - /// - /// the number of characters up to the start of the matched text - private int yychar_Renamed; - - /// - /// the number of characters from the last newline up to the start of the - /// matched text - /// - private int yycolumn; - - /// - /// zzAtBOL == true <=> the scanner is currently at the beginning of a line - /// - private bool zzAtBOL = true; - - /// - /// zzAtEOF == true <=> the scanner is at the EOF - private bool zzAtEOF; - - /// - /// denotes if the user-EOF-code has already been executed - private bool zzEOFDone; - - /* user code: */ - /// - /// Alphanumeric sequences - public const int WORD_TYPE = StandardTokenizer.ALPHANUM; - - /// - /// Numbers - public const int NUMERIC_TYPE = StandardTokenizer.NUM; - - /// - /// Chars in class \p{Line_Break = Complex_Context} are from South East Asian - /// scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept - /// together as as a single token rather than broken up, because the logic - /// required to break them at word boundaries is too complex for UAX#29. - /// - /// See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA - /// - /// - public const int SOUTH_EAST_ASIAN_TYPE = StandardTokenizer.SOUTHEAST_ASIAN; - - public const int IDEOGRAPHIC_TYPE = StandardTokenizer.IDEOGRAPHIC; - - public const int HIRAGANA_TYPE = StandardTokenizer.HIRAGANA; - - public const int KATAKANA_TYPE = StandardTokenizer.KATAKANA; - - public const int HANGUL_TYPE = StandardTokenizer.HANGUL; - - public int yychar() - { - return yychar_Renamed; - } - - /// - /// Fills CharTermAttribute with the current token text. - /// - public void getText(ICharTermAttribute t) - { - t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); - } - - - /// - /// Creates a new scanner - /// - /// the java.io.Reader to read input from. - public StandardTokenizerImpl(TextReader @in) - { - this.zzReader = @in; - } - - - /// - /// Unpacks the compressed character translation table. - /// - /// the packed character translation table - /// the unpacked character translation table - private static char [] zzUnpackCMap(string packed) - { - char[] map = new char[0x10000]; - int i = 0; // index in packed string - int j = 0; // index in unpacked array - while (i < 2860) - { - int count = packed[i++]; - char value = packed[i++]; - do - { - map[j++] = value; - } while (--count > 0); - } - return map; - } - - - /// - /// Refills the input buffer. - /// - /// false, iff there was new input. - /// - /// if any I/O-Error occurs -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private boolean zzRefill() throws java.io.IOException - private bool zzRefill() - { - - /* first: make room (if you can) */ - if (zzStartRead > 0) - { - Array.Copy(zzBuffer, zzStartRead, zzBuffer, 0, zzEndRead - zzStartRead); - - /* translate stored positions */ - zzEndRead -= zzStartRead; - zzCurrentPos -= zzStartRead; - zzMarkedPos -= zzStartRead; - zzStartRead = 0; - } - - /* is the buffer big enough? */ - if (zzCurrentPos >= zzBuffer.Length) - { - /* if not: blow it up */ - char[] newBuffer = new char[zzCurrentPos * 2]; - Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); - zzBuffer = newBuffer; - } - - /* finally: fill the buffer with new input */ - int numRead = zzReader.Read(zzBuffer, zzEndRead, zzBuffer.Length - zzEndRead); - - if (numRead > 0) - { - zzEndRead += numRead; - return false; - } - // unlikely but not impossible: read 0 characters, but not at end of stream - if (numRead == 0) - { - int c = zzReader.Read(); - if (c <= 0) - { - return true; - } - else - { - zzBuffer[zzEndRead++] = (char) c; - return false; - } - } - - // numRead < 0 - return true; - } - - - /// - /// Closes the input stream. - /// - public void yyclose() - { - zzAtEOF = true; // indicate end of file - zzEndRead = zzStartRead; // invalidate buffer - - if (zzReader != null) - { - zzReader.Dispose(); - } - } - - - /// - /// Resets the scanner to read from a new input stream. - /// Does not close the old reader. - /// - /// All internal variables are reset, the old input stream - /// cannot be reused (internal buffer is discarded and lost). - /// Lexical state is set to ZZ_INITIAL. - /// - /// Internal scan buffer is resized down to its initial length, if it has grown. - /// - /// the new input stream - public void yyreset(TextReader reader) - { - zzReader = reader; - zzAtBOL = true; - zzAtEOF = false; - zzEOFDone = false; - zzEndRead = zzStartRead = 0; - zzCurrentPos = zzMarkedPos = 0; - yyline = yychar_Renamed = yycolumn = 0; - zzLexicalState = YYINITIAL; - if (zzBuffer.Length > ZZ_BUFFERSIZE) - { - zzBuffer = new char[ZZ_BUFFERSIZE]; - } - } - - - /// - /// Returns the current lexical state. - /// - public int yystate() - { - return zzLexicalState; - } - - - /// - /// Enters a new lexical state - /// - /// the new lexical state - public void yybegin(int newState) - { - zzLexicalState = newState; - } - - - /// - /// Returns the text matched by the current regular expression. - /// - public string yytext() - { - return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); - } - - - /// - /// Returns the character at position pos from the - /// matched text. - /// - /// It is equivalent to yytext().charAt(pos), but faster - /// - /// the position of the character to fetch. - /// A value from 0 to yylength()-1. - /// - /// the character at position pos - public char yycharat(int pos) - { - return zzBuffer[zzStartRead + pos]; - } - - - /// - /// Returns the length of the matched text region. - /// - public int yylength() - { - return zzMarkedPos - zzStartRead; - } - - - /// - /// Reports an error that occured while scanning. - /// - /// In a wellformed scanner (no or only correct usage of - /// yypushback(int) and a match-all fallback rule) this method - /// will only be called with things that "Can't Possibly Happen". - /// If this method is called, something is seriously wrong - /// (e.g. a JFlex bug producing a faulty scanner etc.). - /// - /// Usual syntax/scanner level error handling should be done - /// in error fallback rules. - /// - /// the code of the errormessage to display - private void zzScanError(int errorCode) - { - string message; - try - { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (System.IndexOutOfRangeException) - { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Exception(message); - } - - - /// - /// Pushes the specified amount of characters back into the input stream. - /// - /// They will be read again by then next call of the scanning method - /// - /// the number of characters to be read again. - /// This number must not be greater than yylength()! - public void yypushback(int number) - { - if (number > yylength()) - { - zzScanError(ZZ_PUSHBACK_2BIG); - } - - zzMarkedPos -= number; - } - - - /// - /// Resumes scanning until the next regular expression is matched, - /// the end of input is encountered or an I/O-Error occurs. - /// - /// the next token - /// if any I/O-Error occurs - public int NextToken - { - get - { - int zzInput; - int zzAction; - - // cached fields: - int zzCurrentPosL; - int zzMarkedPosL; - int zzEndReadL = zzEndRead; - char[] zzBufferL = zzBuffer; - char[] zzCMapL = ZZ_CMAP; - - int[] zzTransL = ZZ_TRANS; - int[] zzRowMapL = ZZ_ROWMAP; - int[] zzAttrL = ZZ_ATTRIBUTE; - - while (true) - { - zzMarkedPosL = zzMarkedPos; - - yychar_Renamed += zzMarkedPosL - zzStartRead; - - zzAction = -1; - - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - - zzState = ZZ_LEXSTATE[zzLexicalState]; - - // set up zzAction for empty match case: - int zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) - { - zzAction = zzState; - } - - - { - while (true) - { - - if (zzCurrentPosL < zzEndReadL) - { - zzInput = zzBufferL[zzCurrentPosL++]; - } - else if (zzAtEOF) - { - zzInput = StandardTokenizerInterface_Fields.YYEOF; - goto zzForActionBreak; - } - else - { - // store back cached positions - zzCurrentPos = zzCurrentPosL; - zzMarkedPos = zzMarkedPosL; - bool eof = zzRefill(); - // get translated positions and possibly new buffer - zzCurrentPosL = zzCurrentPos; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - zzEndReadL = zzEndRead; - if (eof) - { - zzInput = StandardTokenizerInterface_Fields.YYEOF; - goto zzForActionBreak; - } - else - { - zzInput = zzBufferL[zzCurrentPosL++]; - } - } - int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; - if (zzNext == -1) - { - goto zzForActionBreak; - } - zzState = zzNext; - - zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) - { - zzAction = zzState; - zzMarkedPosL = zzCurrentPosL; - if ((zzAttributes & 8) == 8) - { - goto zzForActionBreak; - } - } - - } - } - zzForActionBreak: - - // store back cached position - zzMarkedPos = zzMarkedPosL; - - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) - { - case 1: - { // Break so we don't hit fall-through warning: - break; // Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. - } - goto case 9; - case 9: - break; - case 2: - { - return WORD_TYPE; - } - case 10: - break; - case 3: - { - return NUMERIC_TYPE; - } - case 11: - break; - case 4: - { - return KATAKANA_TYPE; - } - case 12: - break; - case 5: - { - return SOUTH_EAST_ASIAN_TYPE; - } - case 13: - break; - case 6: - { - return IDEOGRAPHIC_TYPE; - } - case 14: - break; - case 7: - { - return HIRAGANA_TYPE; - } - case 15: - break; - case 8: - { - return HANGUL_TYPE; - } - case 16: - break; - default: - if (zzInput == StandardTokenizerInterface_Fields.YYEOF && zzStartRead == zzCurrentPos) - { - zzAtEOF = true; - { - return StandardTokenizerInterface_Fields.YYEOF; - } - } - else - { - zzScanError(ZZ_NO_MATCH); - } - break; - } - } - } - } - - - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// This class implements Word Break rules from the Unicode Text Segmentation + /// algorithm, as specified in + /// Unicode Standard Annex #29. + ///

+ /// Tokens produced are of the following types: + ///

    + ///
  • <ALPHANUM>: A sequence of alphabetic and numeric characters
  • + ///
  • <NUM>: A number
  • + ///
  • <SOUTHEAST_ASIAN>: A sequence of characters from South and Southeast + /// Asian languages, including Thai, Lao, Myanmar, and Khmer
  • + ///
  • <IDEOGRAPHIC>: A single CJKV ideographic character
  • + ///
  • <HIRAGANA>: A single hiragana character
  • + ///
  • <KATAKANA>: A sequence of katakana characters
  • + ///
  • <HANGUL>: A sequence of Hangul characters
  • + ///
+ ///
+ + public sealed class StandardTokenizerImpl : IStandardTokenizerInterface + { + + /// + /// This character denotes the end of file + //public const int StandardTokenizerInterface_Fields; + + /// + /// initial size of the lookahead buffer + private const int ZZ_BUFFERSIZE = 4096; + + /// + /// lexical states + public const int YYINITIAL = 0; + + /// + /// ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + /// ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + /// at the beginning of a line + /// l is of the form l = 2*k, k a non negative integer + /// + private static readonly int[] ZZ_LEXSTATE = { 0, 0 }; + + /// + /// Translates characters to character classes + /// + private const string ZZ_CMAP_PACKED = "\x0022\0\x0001\x008B\x0004\0\x0001\x008A\x0004\0\x0001\x0083\x0001\0\x0001\x0084\x0001\0\x000A\x0080" + "\x0001\x0082\x0001\x0083\x0005\0\x001A\x007E\x0004\0\x0001\x0085\x0001\0\x001A\x007E\x002F\0\x0001\x007E" + "\x0002\0\x0001\x007F\x0007\0\x0001\x007E\x0001\0\x0001\x0082\x0002\0\x0001\x007E\x0005\0\x0017\x007E" + "\x0001\0\x001F\x007E\x0001\0\u01ca\x007E\x0004\0\x000C\x007E\x0005\0\x0001\x0082\x0008\0\x0005\x007E" + "\x0007\0\x0001\x007E\x0001\0\x0001\x007E\x0011\0\x0070\x007F\x0005\x007E\x0001\0\x0002\x007E\x0002\0" + "\x0004\x007E\x0001\x0083\x0007\0\x0001\x007E\x0001\x0082\x0003\x007E\x0001\0\x0001\x007E\x0001\0\x0014\x007E" + "\x0001\0\x0053\x007E\x0001\0\x008B\x007E\x0001\0\x0007\x007F\x009E\x007E\x0009\0\x0026\x007E\x0002\0" + "\x0001\x007E\x0007\0\x0027\x007E\x0001\0\x0001\x0083\x0007\0\x002D\x007F\x0001\0\x0001\x007F\x0001\0" + "\x0002\x007F\x0001\0\x0002\x007F\x0001\0\x0001\x007F\x0008\0\x001B\x008C\x0005\0\x0003\x008C\x0001\x007E" + "\x0001\x0082\x000B\0\x0005\x007F\x0007\0\x0002\x0083\x0002\0\x000B\x007F\x0001\0\x0001\x007F\x0003\0" + "\x002B\x007E\x0015\x007F\x000A\x0080\x0001\0\x0001\x0080\x0001\x0083\x0001\0\x0002\x007E\x0001\x007F\x0063\x007E" + "\x0001\0\x0001\x007E\x0007\x007F\x0001\x007F\x0001\0\x0006\x007F\x0002\x007E\x0002\x007F\x0001\0\x0004\x007F" + "\x0002\x007E\x000A\x0080\x0003\x007E\x0002\0\x0001\x007E\x000F\0\x0001\x007F\x0001\x007E\x0001\x007F\x001E\x007E" + "\x001B\x007F\x0002\0\x0059\x007E\x000B\x007F\x0001\x007E\x000E\0\x000A\x0080\x0021\x007E\x0009\x007F\x0002\x007E" + "\x0002\0\x0001\x0083\x0001\0\x0001\x007E\x0005\0\x0016\x007E\x0004\x007F\x0001\x007E\x0009\x007F\x0001\x007E" + "\x0003\x007F\x0001\x007E\x0005\x007F\x0012\0\x0019\x007E\x0003\x007F\x0044\0\x0001\x007E\x0001\0\x000B\x007E" + "\x0037\0\x001B\x007F\x0001\0\x0004\x007F\x0036\x007E\x0003\x007F\x0001\x007E\x0012\x007F\x0001\x007E\x0007\x007F" + "\x000A\x007E\x0002\x007F\x0002\0\x000A\x0080\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0003\x007F" + "\x0001\0\x0008\x007E\x0002\0\x0002\x007E\x0002\0\x0016\x007E\x0001\0\x0007\x007E\x0001\0\x0001\x007E" + "\x0003\0\x0004\x007E\x0002\0\x0001\x007F\x0001\x007E\x0007\x007F\x0002\0\x0002\x007F\x0002\0\x0003\x007F" + "\x0001\x007E\x0008\0\x0001\x007F\x0004\0\x0002\x007E\x0001\0\x0003\x007E\x0002\x007F\x0002\0\x000A\x0080" + "\x0002\x007E\x000F\0\x0003\x007F\x0001\0\x0006\x007E\x0004\0\x0002\x007E\x0002\0\x0016\x007E\x0001\0" + "\x0007\x007E\x0001\0\x0002\x007E\x0001\0\x0002\x007E\x0001\0\x0002\x007E\x0002\0\x0001\x007F\x0001\0" + "\x0005\x007F\x0004\0\x0002\x007F\x0002\0\x0003\x007F\x0003\0\x0001\x007F\x0007\0\x0004\x007E\x0001\0" + "\x0001\x007E\x0007\0\x000A\x0080\x0002\x007F\x0003\x007E\x0001\x007F\x000B\0\x0003\x007F\x0001\0\x0009\x007E" + "\x0001\0\x0003\x007E\x0001\0\x0016\x007E\x0001\0\x0007\x007E\x0001\0\x0002\x007E\x0001\0\x0005\x007E" + "\x0002\0\x0001\x007F\x0001\x007E\x0008\x007F\x0001\0\x0003\x007F\x0001\0\x0003\x007F\x0002\0\x0001\x007E" + "\x000F\0\x0002\x007E\x0002\x007F\x0002\0\x000A\x0080\x0011\0\x0003\x007F\x0001\0\x0008\x007E\x0002\0" + "\x0002\x007E\x0002\0\x0016\x007E\x0001\0\x0007\x007E\x0001\0\x0002\x007E\x0001\0\x0005\x007E\x0002\0" + "\x0001\x007F\x0001\x007E\x0007\x007F\x0002\0\x0002\x007F\x0002\0\x0003\x007F\x0008\0\x0002\x007F\x0004\0" + "\x0002\x007E\x0001\0\x0003\x007E\x0002\x007F\x0002\0\x000A\x0080\x0001\0\x0001\x007E\x0010\0\x0001\x007F" + "\x0001\x007E\x0001\0\x0006\x007E\x0003\0\x0003\x007E\x0001\0\x0004\x007E\x0003\0\x0002\x007E\x0001\0" + "\x0001\x007E\x0001\0\x0002\x007E\x0003\0\x0002\x007E\x0003\0\x0003\x007E\x0003\0\x000C\x007E\x0004\0" + "\x0005\x007F\x0003\0\x0003\x007F\x0001\0\x0004\x007F\x0002\0\x0001\x007E\x0006\0\x0001\x007F\x000E\0" + "\x000A\x0080\x0011\0\x0003\x007F\x0001\0\x0008\x007E\x0001\0\x0003\x007E\x0001\0\x0017\x007E\x0001\0" + "\x000A\x007E\x0001\0\x0005\x007E\x0003\0\x0001\x007E\x0007\x007F\x0001\0\x0003\x007F\x0001\0\x0004\x007F" + "\x0007\0\x0002\x007F\x0001\0\x0002\x007E\x0006\0\x0002\x007E\x0002\x007F\x0002\0\x000A\x0080\x0012\0" + "\x0002\x007F\x0001\0\x0008\x007E\x0001\0\x0003\x007E\x0001\0\x0017\x007E\x0001\0\x000A\x007E\x0001\0" + "\x0005\x007E\x0002\0\x0001\x007F\x0001\x007E\x0007\x007F\x0001\0\x0003\x007F\x0001\0\x0004\x007F\x0007\0" + "\x0002\x007F\x0007\0\x0001\x007E\x0001\0\x0002\x007E\x0002\x007F\x0002\0\x000A\x0080\x0001\0\x0002\x007E" + "\x000F\0\x0002\x007F\x0001\0\x0008\x007E\x0001\0\x0003\x007E\x0001\0\x0029\x007E\x0002\0\x0001\x007E" + "\x0007\x007F\x0001\0\x0003\x007F\x0001\0\x0004\x007F\x0001\x007E\x0008\0\x0001\x007F\x0008\0\x0002\x007E" + "\x0002\x007F\x0002\0\x000A\x0080\x000A\0\x0006\x007E\x0002\0\x0002\x007F\x0001\0\x0012\x007E\x0003\0" + "\x0018\x007E\x0001\0\x0009\x007E\x0001\0\x0001\x007E\x0002\0\x0007\x007E\x0003\0\x0001\x007F\x0004\0" + "\x0006\x007F\x0001\0\x0001\x007F\x0001\0\x0008\x007F\x0012\0\x0002\x007F\x000D\0\x0030\x0086\x0001\x0087" + "\x0002\x0086\x0007\x0087\x0005\0\x0007\x0086\x0008\x0087\x0001\0\x000A\x0080\x0027\0\x0002\x0086\x0001\0" + "\x0001\x0086\x0002\0\x0002\x0086\x0001\0\x0001\x0086\x0002\0\x0001\x0086\x0006\0\x0004\x0086\x0001\0" + "\x0007\x0086\x0001\0\x0003\x0086\x0001\0\x0001\x0086\x0001\0\x0001\x0086\x0002\0\x0002\x0086\x0001\0" + "\x0004\x0086\x0001\x0087\x0002\x0086\x0006\x0087\x0001\0\x0002\x0087\x0001\x0086\x0002\0\x0005\x0086\x0001\0" + "\x0001\x0086\x0001\0\x0006\x0087\x0002\0\x000A\x0080\x0002\0\x0004\x0086\x0020\0\x0001\x007E\x0017\0" + "\x0002\x007F\x0006\0\x000A\x0080\x000B\0\x0001\x007F\x0001\0\x0001\x007F\x0001\0\x0001\x007F\x0004\0" + "\x0002\x007F\x0008\x007E\x0001\0\x0024\x007E\x0004\0\x0014\x007F\x0001\0\x0002\x007F\x0005\x007E\x000B\x007F" + "\x0001\0\x0024\x007F\x0009\0\x0001\x007F\x0039\0\x002B\x0086\x0014\x0087\x0001\x0086\x000A\x0080\x0006\0" + "\x0006\x0086\x0004\x0087\x0004\x0086\x0003\x0087\x0001\x0086\x0003\x0087\x0002\x0086\x0007\x0087\x0003\x0086\x0004\x0087" + "\x000D\x0086\x000C\x0087\x0001\x0086\x0001\x0087\x000A\x0080\x0004\x0087\x0002\x0086\x0026\x007E\x0001\0\x0001\x007E" + "\x0005\0\x0001\x007E\x0002\0\x002B\x007E\x0001\0\x0004\x007E\u0100\x008D\x0049\x007E\x0001\0\x0004\x007E" + "\x0002\0\x0007\x007E\x0001\0\x0001\x007E\x0001\0\x0004\x007E\x0002\0\x0029\x007E\x0001\0\x0004\x007E" + "\x0002\0\x0021\x007E\x0001\0\x0004\x007E\x0002\0\x0007\x007E\x0001\0\x0001\x007E\x0001\0\x0004\x007E" + "\x0002\0\x000F\x007E\x0001\0\x0039\x007E\x0001\0\x0004\x007E\x0002\0\x0043\x007E\x0002\0\x0003\x007F" + "\x0020\0\x0010\x007E\x0010\0\x0055\x007E\x000C\0\u026c\x007E\x0002\0\x0011\x007E\x0001\0\x001A\x007E" + "\x0005\0\x004B\x007E\x0003\0\x0003\x007E\x000F\0\x000D\x007E\x0001\0\x0004\x007E\x0003\x007F\x000B\0" + "\x0012\x007E\x0003\x007F\x000B\0\x0012\x007E\x0002\x007F\x000C\0\x000D\x007E\x0001\0\x0003\x007E\x0001\0" + "\x0002\x007F\x000C\0\x0034\x0086\x0020\x0087\x0003\0\x0001\x0086\x0004\0\x0001\x0086\x0001\x0087\x0002\0" + "\x000A\x0080\x0021\0\x0003\x007F\x0001\x007F\x0001\0\x000A\x0080\x0006\0\x0058\x007E\x0008\0\x0029\x007E" + "\x0001\x007F\x0001\x007E\x0005\0\x0046\x007E\x000A\0\x001D\x007E\x0003\0\x000C\x007F\x0004\0\x000C\x007F" + "\x000A\0\x000A\x0080\x001E\x0086\x0002\0\x0005\x0086\x000B\0\x002C\x0086\x0004\0\x0011\x0087\x0007\x0086" + "\x0002\x0087\x0006\0\x000A\x0080\x0001\x0086\x0003\0\x0002\x0086\x0020\0\x0017\x007E\x0005\x007F\x0004\0" + "\x0035\x0086\x000A\x0087\x0001\0\x001D\x0087\x0002\0\x0001\x007F\x000A\x0080\x0006\0\x000A\x0080\x0006\0" + "\x000E\x0086\x0052\0\x0005\x007F\x002F\x007E\x0011\x007F\x0007\x007E\x0004\0\x000A\x0080\x0011\0\x0009\x007F" + "\x000C\0\x0003\x007F\x001E\x007E\x000D\x007F\x0002\x007E\x000A\x0080\x002C\x007E\x000E\x007F\x000C\0\x0024\x007E" + "\x0014\x007F\x0008\0\x000A\x0080\x0003\0\x0003\x007E\x000A\x0080\x0024\x007E\x0052\0\x0003\x007F\x0001\0" + "\x0015\x007F\x0004\x007E\x0001\x007F\x0004\x007E\x0003\x007F\x0002\x007E\x0009\0\x00C0\x007E\x0027\x007F\x0015\0" + "\x0004\x007F\u0116\x007E\x0002\0\x0006\x007E\x0002\0\x0026\x007E\x0002\0\x0006\x007E\x0002\0\x0008\x007E" + "\x0001\0\x0001\x007E\x0001\0\x0001\x007E\x0001\0\x0001\x007E\x0001\0\x001F\x007E\x0002\0\x0035\x007E" + "\x0001\0\x0007\x007E\x0001\0\x0001\x007E\x0003\0\x0003\x007E\x0001\0\x0007\x007E\x0003\0\x0004\x007E" + "\x0002\0\x0006\x007E\x0004\0\x000D\x007E\x0005\0\x0003\x007E\x0001\0\x0007\x007E\x000F\0\x0002\x007F" + "\x0002\x007F\x0008\0\x0002\x0084\x000A\0\x0001\x0084\x0002\0\x0001\x0082\x0002\0\x0005\x007F\x0010\0" + "\x0002\x0085\x0003\0\x0001\x0083\x000F\0\x0001\x0085\x000B\0\x0005\x007F\x0001\0\x000A\x007F\x0001\0" + "\x0001\x007E\x000D\0\x0001\x007E\x0010\0\x000D\x007E\x0033\0\x0021\x007F\x0011\0\x0001\x007E\x0004\0" + "\x0001\x007E\x0002\0\x000A\x007E\x0001\0\x0001\x007E\x0003\0\x0005\x007E\x0006\0\x0001\x007E\x0001\0" + "\x0001\x007E\x0001\0\x0001\x007E\x0001\0\x0004\x007E\x0001\0\x000B\x007E\x0002\0\x0004\x007E\x0005\0" + "\x0005\x007E\x0004\0\x0001\x007E\x0011\0\x0029\x007E\u032d\0\x0034\x007E\u0716\0\x002F\x007E\x0001\0" + "\x002F\x007E\x0001\0\x0085\x007E\x0006\0\x0004\x007E\x0003\x007F\x0002\x007E\x000C\0\x0026\x007E\x0001\0" + "\x0001\x007E\x0005\0\x0001\x007E\x0002\0\x0038\x007E\x0007\0\x0001\x007E\x000F\0\x0001\x007F\x0017\x007E" + "\x0009\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E" + "\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0020\x007F\x002F\0\x0001\x007E" + "\x0050\0\x001A\x0088\x0001\0\x0059\x0088\x000C\0\x00D6\x0088\x002F\0\x0001\x007E\x0001\0\x0001\x0088" + "\x0019\0\x0009\x0088\x0006\x007F\x0001\0\x0005\x0081\x0002\0\x0003\x0088\x0001\x007E\x0001\x007E\x0004\0" + "\x0056\x0089\x0002\0\x0002\x007F\x0002\x0081\x0003\x0089\x005B\x0081\x0001\0\x0004\x0081\x0005\0\x0029\x007E" + "\x0003\0\x005E\x008D\x0011\0\x001B\x007E\x0035\0\x0010\x0081\x00D0\0\x002F\x0081\x0001\0\x0058\x0081" + "\x00A8\0\u19b6\x0088\x004A\0\u51cd\x0088\x0033\0\u048d\x007E\x0043\0\x002E\x007E\x0002\0\u010d\x007E" + "\x0003\0\x0010\x007E\x000A\x0080\x0002\x007E\x0014\0\x002F\x007E\x0004\x007F\x0001\0\x000A\x007F\x0001\0" + "\x0019\x007E\x0007\0\x0001\x007F\x0050\x007E\x0002\x007F\x0025\0\x0009\x007E\x0002\0\x0067\x007E\x0002\0" + "\x0004\x007E\x0001\0\x0004\x007E\x000C\0\x000B\x007E\x004D\0\x000A\x007E\x0001\x007F\x0003\x007E\x0001\x007F" + "\x0004\x007E\x0001\x007F\x0017\x007E\x0005\x007F\x0018\0\x0034\x007E\x000C\0\x0002\x007F\x0032\x007E\x0011\x007F" + "\x000B\0\x000A\x0080\x0006\0\x0012\x007F\x0006\x007E\x0003\0\x0001\x007E\x0004\0\x000A\x0080\x001C\x007E" + "\x0008\x007F\x0002\0\x0017\x007E\x000D\x007F\x000C\0\x001D\x008D\x0003\0\x0004\x007F\x002F\x007E\x000E\x007F" + "\x000E\0\x0001\x007E\x000A\x0080\x0026\0\x0029\x007E\x000E\x007F\x0009\0\x0003\x007E\x0001\x007F\x0008\x007E" + "\x0002\x007F\x0002\0\x000A\x0080\x0006\0\x001B\x0086\x0001\x0087\x0004\0\x0030\x0086\x0001\x0087\x0001\x0086" + "\x0003\x0087\x0002\x0086\x0002\x0087\x0005\x0086\x0002\x0087\x0001\x0086\x0001\x0087\x0001\x0086\x0018\0\x0005\x0086" + "\x000B\x007E\x0005\x007F\x0002\0\x0003\x007E\x0002\x007F\x000A\0\x0006\x007E\x0002\0\x0006\x007E\x0002\0" + "\x0006\x007E\x0009\0\x0007\x007E\x0001\0\x0007\x007E\x0091\0\x0023\x007E\x0008\x007F\x0001\0\x0002\x007F" + "\x0002\0\x000A\x0080\x0006\0\u2ba4\x008D\x000C\0\x0017\x008D\x0004\0\x0031\x008D\x0004\0\x0001\x0024" + "\x0001\x0020\x0001\x0037\x0001\x0034\x0001\x001B\x0001\x0018\x0002\0\x0001\x0014\x0001\x0011\x0002\0\x0001\x000F" + "\x0001\x000D\x000C\0\x0001\x0003\x0001\x0006\x0010\0\x0001\x006E\x0007\0\x0001\x0049\x0001\x0008\x0005\0" + "\x0001\x0001\x0001\x007A\x0003\0\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0074\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0078\x0001\x0076" + "\x000F\0\x0001\x0070\u02c1\0\x0001\x004C\x00BF\0\x0001\x006F\x0001\x004D\x0001\x000E\x0003\x0077\x0002\x0032" + "\x0001\x0077\x0001\x0032\x0002\x0077\x0001\x001E\x0011\x0077\x0002\x0046\x0007\x004F\x0001\x004E\x0007\x004F\x0007\x0042" + "\x0001\x001F\x0001\x0042\x0001\x0060\x0002\x0036\x0001\x0035\x0001\x0060\x0001\x0036\x0001\x0035\x0008\x0060\x0002\x0047" + "\x0005\x0043\x0002\x003D\x0005\x0043\x0001\x0012\x0008\x002B\x0005\x0013\x0003\x0021\x000A\x0052\x0010\x0021\x0003\x0033" + "\x001A\x0023\x0001\x0022\x0002\x0031\x0002\x0056\x0001\x0057\x0002\x0056\x0002\x0057\x0002\x0056\x0001\x0057\x0003\x0031" + "\x0001\x0030\x0002\x0031\x000A\x0048\x0001\x005E\x0001\x0028\x0001\x0025\x0001\x0048\x0006\x0028\x0001\x0025\x000B\x0028" + "\x0019\x0031\x0007\x0028\x000A\x0053\x0001\x0028\x0005\x000B\x0003\x005F\x0003\x0041\x0001\x0040\x0004\x0041\x0002\x0040" + "\x0008\x0041\x0001\x0040\x0007\x001D\x0001\x001C\x0002\x001D\x0007\x0041\x000E\x005F\x0001\x0069\x0004\x0054\x0001\x0004" + "\x0004\x0051\x0001\x0004\x0005\x0068\x0001\x0067\x0001\x0068\x0003\x0067\x0007\x0068\x0001\x0067\x0013\x0068\x0005\x004B" + "\x0003\x0068\x0006\x004B\x0002\x004B\x0006\x004A\x0005\x004A\x0003\x0064\x0002\x0041\x0007\x0063\x001E\x0041\x0004\x0063" + "\x0005\x0041\x0005\x005F\x0006\x005D\x0002\x005F\x0001\x005D\x0004\x001D\x000B\x0066\x000A\x0051\x000C\x0066\x000A\x007D" + "\x000D\x007C\x0001\x0065\x0002\x007C\x0001\x007B\x0003\x006A\x0001\x000B\x0002\x006A\x0005\x0071\x0004\x006A\x0004\x0072" + "\x0001\x0071\x0003\x0072\x0001\x0071\x0005\x0072\x0002\x0038\x0001\x003B\x0002\x0038\x0001\x003B\x0001\x0038\x0002\x003B" + "\x0001\x0038\x0001\x003B\x000A\x0038\x0001\x003B\x0004\x0005\x0001\x006C\x0001\x006B\x0001\x006D\x0001\x000A\x0003\x0075" + "\x0001\x006D\x0002\x0075\x0001\x0061\x0002\x0062\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A" + "\x0001\x0075\x0003\x000A\x0001\x0075\x0002\x000A\x0001\x0075\x0001\x000A\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A" + "\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x003E\x0002\x003A\x0001\x003E\x0001\x003A" + "\x0002\x003E\x0004\x003A\x0001\x003E\x0007\x003A\x0001\x003E\x0004\x003A\x0001\x003E\x0004\x003A\x0001\x0075\x0001\x000A" + "\x0001\x0075\x000A\x0019\x0001\x002F\x0011\x0019\x0001\x002F\x0003\x001A\x0001\x002F\x0003\x0019\x0001\x002F\x0001\x0019" + "\x0002\x0002\x0002\x0019\x0001\x002F\x000D\x005C\x0004\x0027\x0004\x002C\x0001\x0050\x0001\x002E\x0008\x0050\x0007\x002C" + "\x0006\x0075\x0004\x0015\x0001\x0017\x001F\x0015\x0001\x0017\x0004\x0015\x0015\x0045\x0001\x0079\x0009\x0045\x0011\x0016" + "\x0005\x0045\x0001\x0007\x000A\x002D\x0005\x0045\x0006\x0044\x0004\x003E\x0001\x003F\x0001\x0016\x0005\x005B\x000A\x0059" + "\x000F\x005B\x0001\x003C\x0003\x0039\x000C\x0058\x0001\x0009\x0009\x0026\x0001\x002A\x0005\x0026\x0004\x005A\x000B\x0029" + "\x0002\x000C\x0009\x0026\x0001\x002A\x0019\x0026\x0001\x002A\x0004\x0009\x0004\x0026\x0002\x002A\x0002\x0055\x0001\x0010" + "\x0005\x0055\x002A\x0010\u1900\0\u016e\x0088\x0002\0\x006A\x0088\x0026\0\x0007\x007E\x000C\0\x0005\x007E" + "\x0005\0\x0001\x008C\x0001\x007F\x000A\x008C\x0001\0\x000D\x008C\x0001\0\x0005\x008C\x0001\0\x0001\x008C" + "\x0001\0\x0002\x008C\x0001\0\x0002\x008C\x0001\0\x000A\x008C\x0062\x007E\x0021\0\u016b\x007E\x0012\0" + "\x0040\x007E\x0002\0\x0036\x007E\x0028\0\x000C\x007E\x0004\0\x0010\x007F\x0001\x0083\x0002\0\x0001\x0082" + "\x0001\x0083\x000B\0\x0007\x007F\x000C\0\x0002\x0085\x0018\0\x0003\x0085\x0001\x0083\x0001\0\x0001\x0084" + "\x0001\0\x0001\x0083\x0001\x0082\x001A\0\x0005\x007E\x0001\0\x0087\x007E\x0002\0\x0001\x007F\x0007\0" + "\x0001\x0084\x0004\0\x0001\x0083\x0001\0\x0001\x0084\x0001\0\x000A\x0080\x0001\x0082\x0001\x0083\x0005\0" + "\x001A\x007E\x0004\0\x0001\x0085\x0001\0\x001A\x007E\x000B\0\x0038\x0081\x0002\x007F\x001F\x008D\x0003\0" + "\x0006\x008D\x0002\0\x0006\x008D\x0002\0\x0006\x008D\x0002\0\x0003\x008D\x001C\0\x0003\x007F\x0004\0"; + + /// + /// Translates characters to character classes + /// + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /// + /// Translates DFA states to action switch labels. + /// + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = "\x0001\0\x0016\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + "\x0001\x0007\x0001\x0002\x0001\x0008\x0011\0\x0001\x0002\x0001\0\x0001\x0002\x000A\0" + "\x0001\x0003\x0011\0\x0001\x0002\x0015\0\x0001\x0002\x004D\0\x0001\x0001\x0010\0"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[197]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; // index in packed string + int j = offset; // index in unpacked array + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do + { + result[j++] = value; + } while (--count > 0); + } + return j; + } + + + /// + /// Translates a state to a row index in the transition table + /// + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private const string ZZ_ROWMAP_PACKED_0 = "\0\0\0\x008E\0\u011c\0\u01aa\0\u0238\0\u02c6\0\u0354\0\u03e2" + "\0\u0470\0\u04fe\0\u058c\0\u061a\0\u06a8\0\u0736\0\u07c4\0\u0852" + "\0\u08e0\0\u096e\0\u09fc\0\u0a8a\0\u0b18\0\u0ba6\0\u0c34\0\u0cc2" + "\0\u0d50\0\u0dde\0\u0e6c\0\u0efa\0\u0f88\0\u1016\0\u10a4\0\u1132" + "\0\u11c0\0\u011c\0\u01aa\0\u124e\0\u12dc\0\u0354\0\u03e2\0\u0470" + "\0\u04fe\0\u136a\0\u13f8\0\u1486\0\u1514\0\u07c4\0\u15a2\0\u1630" + "\0\u16be\0\u174c\0\u17da\0\u1868\0\u18f6\0\u02c6\0\u1984\0\u1a12" + "\0\u06a8\0\u1aa0\0\u1b2e\0\u1bbc\0\u1c4a\0\u1cd8\0\u1d66\0\u1df4" + "\0\u1e82\0\u1f10\0\u1f9e\0\u202c\0\u20ba\0\u2148\0\u21d6\0\u2264" + "\0\u22f2\0\u2380\0\u240e\0\u249c\0\u252a\0\u25b8\0\u2646\0\u0e6c" + "\0\u26d4\0\u2762\0\u27f0\0\u287e\0\u290c\0\u299a\0\u2a28\0\u2ab6" + "\0\u2b44\0\u2bd2\0\u2c60\0\u2cee\0\u2d7c\0\u2e0a\0\u2e98\0\u2f26" + "\0\u2fb4\0\u3042\0\u30d0\0\u315e\0\u31ec\0\u327a\0\u3308\0\u3396" + "\0\u3424\0\u34b2\0\u3540\0\u35ce\0\u365c\0\u36ea\0\u3778\0\u3806" + "\0\u3894\0\u3922\0\u39b0\0\u3a3e\0\u3acc\0\u3b5a\0\u3be8\0\u3c76" + "\0\u3d04\0\u3d92\0\u3e20\0\u3eae\0\u3f3c\0\u3fca\0\u4058\0\u40e6" + "\0\u4174\0\u4202\0\u4290\0\u431e\0\u43ac\0\u443a\0\u44c8\0\u4556" + "\0\u45e4\0\u4672\0\u4700\0\u478e\0\u481c\0\u48aa\0\u4938\0\u49c6" + "\0\u4a54\0\u4ae2\0\u4b70\0\u4bfe\0\u4c8c\0\u4d1a\0\u4da8\0\u4e36" + "\0\u4ec4\0\u4f52\0\u4fe0\0\u506e\0\u50fc\0\u518a\0\u5218\0\u52a6" + "\0\u5334\0\u53c2\0\u5450\0\u54de\0\u556c\0\u55fa\0\u5688\0\u5716" + "\0\u57a4\0\u5832\0\u58c0\0\u594e\0\u59dc\0\u5a6a\0\u5af8\0\u5b86" + "\0\u5c14\0\u5ca2\0\u5d30\0\u5dbe\0\u5e4c\0\u5eda\0\u5f68\0\u5ff6" + "\0\u6084\0\u6112\0\u61a0\0\u622e\0\u62bc\0\u634a\0\u63d8\0\u6466" + "\0\u64f4\0\u6582\0\u6610\0\u669e\0\u672c"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[197]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; // index in packed string + int j = offset; // index in unpacked array + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /// + /// The transition table of the DFA + /// + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0002\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + + "\x0004\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0001\x0002\x0001\x0009\x0002\x0002\x0001\x000A" + + "\x0003\x0002\x0001\x000B\x0002\x0002\x0001\x000C\x0004\x0002\x0001\x000D\x0003\x0002\x0001\x000E" + + "\x000F\x0002\x0001\x000F\x0002\x0002\x0001\x0010\x0036\x0002\x0001\x0011\x0001\x0002\x0001\x0012" + + "\x0002\x0002\x0001\x0013\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0002" + + "\x0001\x0017\x0003\x0002\x0001\x0018\x0001\x0002\x0001\x0019\x0001\x001A\x0003\x0002\x0001\x001B" + + "\x0002\x001C\x0001\x001D\x0001\x001E\x0002\x0002\x0001\x001F\x0001\x0020\x0090\0\x0001\x0018" + + "\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x000E\0\x0001\x0018\x000D\0\x0001\x0018" + + "\x0010\0\x0001\x0018\x0001\0\x0001\x0018\x0021\0\x0001\x0018\x0004\0\x0001\x0018" + + "\x0008\0\x0002\x0018\x0005\0\x0002\x0018\x0008\0\x0001\x0018\x0016\0\x0002\x0018" + + "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0018\x0008\0\x0004\x0018" + + "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0002\0\x0001\x0018" + + "\x0004\0\x0004\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0002\0\x0004\x0018\x0002\0\x0003\x0018\x0001\0\x0002\x0018" + + "\x0001\0\x0003\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0005\0\x0004\x0018" + + "\x0002\0\x0008\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0001\0\x0002\x0018" + + "\x0004\0\x0001\x0018\x0003\0\x0003\x0018\x0017\0\x0001\x0018\x0004\0\x0001\x0018" + + "\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x0017\0\x0001\x0018" + + "\x0033\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0019\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018" + + "\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0\x0004\x0018" + + "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018" + + "\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0\x0002\x0018" + + "\x0001\0\x0008\x0018\x0001\x0019\x0001\0\x0007\x0018\x0001\0\x0008\x0018\x0001\0" + + "\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0003\0\x0003\x0018\x001E\0\x0001\x0018\x000F\0\x0001\x0018\x0013\0" + + "\x0001\x0018\x0013\0\x0001\x0018\x0006\0\x0003\x0018\x001F\0\x0001\x0018\x0007\0" + + "\x0001\x0018\x0018\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0004\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0003\x0018\x0001\0\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0003\x0018\x0001\0" + + "\x000F\x0018\x0001\0\x0002\x0018\x0001\0\x0011\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0021\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x001E\0\x0001\x0018\x0003\0" + + "\x0002\x0018\x000A\0\x0002\x0018\x000B\0\x0001\x0018\x0006\0\x0001\x0018\x0002\0" + + "\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018\x0002\0\x0002\x0018\x0005\0" + + "\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + + "\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0002\x0018\x0002\0" + + "\x0001\x0018\x0003\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + + "\x0009\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x000C\x0018\x0001\0\x0002\x0018\x0001\0\x0008\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0013\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0012\0" + + "\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019" + + "\x0041\0\x0001\x0019\x0017\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + + "\x000D\0\x0003\x0018\x0003\0\x0001\x0018\x0007\0\x0002\x0018\x0001\0\x0004\x0019" + + "\x0001\0\x0002\x0018\x000B\0\x0001\x0018\x0013\0\x0001\x0018\x0024\0\x0001\x0018" + + "\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0\x0001\x0018" + + "\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018" + + "\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0019" + + "\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0\x0001\x0018" + + "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018" + + "\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018" + + "\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018" + + "\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0006\0\x0002\x0018\x0006\0\x0001\x0018" + + "\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x0022\0\x0001\x0018\x000F\0\x0002\x0018" + + "\x0012\0\x0001\x0018\x0002\0\x0002\x0018\x000B\0\x0001\x0018\x0003\0\x0002\x0018" + + "\x0005\0\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018" + + "\x001D\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018" + + "\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018" + + "\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018" + + "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x005F\0\x0001\x001E\x0021\0\x0001\x001A\x0022\0\x0001\x001D" + + "\x0006\0\x0001\x001D\x0002\0\x0001\x001D\x0003\0\x0002\x001D\x0008\0\x0004\x001D" + + "\x0001\0\x0003\x001D\x0001\0\x0001\x001D\x0002\0\x0001\x001D\x0002\0\x0001\x001D" + + "\x0004\0\x0004\x001D\x0001\0\x0002\x001D\x0006\0\x0001\x001D\x0002\0\x0004\x001D" + + "\x0002\0\x0003\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0004\x001D" + + "\x0001\0\x0002\x001D\x0005\0\x0004\x001D\x0002\0\x0008\x001D\x0004\0\x0001\x001D" + + "\x0001\0\x0002\x001D\x0004\0\x0001\x001D\x0003\0\x0003\x001D\x0012\0\x0001\x001D" + + "\x0001\0\x0002\x001D\x0001\0\x0001\x001D\x0001\0\x0004\x001D\x0001\0\x0001\x001D" + + "\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0002\x001D" + + "\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x000F\x001D\x0001\0\x0002\x001D" + + "\x0001\0\x0011\x001D\x0001\0\x0002\x001D\x0001\0\x0021\x001D\x0001\0\x0001\x001D" + + "\x0001\0\x0002\x001D\x0002\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D" + + "\x0001\0\x0003\x001D\x0012\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0001\x001D" + + "\x0001\0\x0004\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D" + + "\x0002\0\x0001\x001D\x0002\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D" + + "\x0001\0\x000F\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + + "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x001E\0\x0001\x001D" + + "\x000F\0\x0001\x001D\x0013\0\x0001\x001D\x001A\0\x0001\x001D\x0021\0\x0001\x001D" + + "\x0007\0\x0001\x001D\x0018\0\x0001\x001D\x0001\0\x0002\x001D\x0003\0\x0004\x001D" + + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D" + + "\x0001\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x0008\x001D" + + "\x0001\0\x0006\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + + "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x0075\0\x0001\x0021" + + "\x0015\0\x0001\x001E\x0002\x0021\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0024\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x002A\x0002\0\x0001\x002B\x0004\0" + + "\x0001\x002C\x0003\0\x0001\x002D\x000F\0\x0001\x002E\x0002\0\x0001\x002F\x0011\0" + + "\x0001\x0030\x0002\0\x0001\x0031\x0031\0\x0002\x0018\x0001\x0032\x0001\0\x0001\x0033" + + "\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0018\x0002\0\x0001\x0033\x0001\0" + + "\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0035" + + "\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028" + + "\x0002\0\x0001\x0029\x0003\0\x0001\x0037\x0002\0\x0001\x0038\x0004\0\x0001\x0039" + + "\x0003\0\x0001\x003A\x000F\0\x0001\x002E\x0002\0\x0001\x003B\x0011\0\x0001\x003C" + + "\x0002\0\x0001\x003D\x0031\0\x0001\x0018\x0002\x0019\x0002\0\x0002\x003E\x0001\x003F" + + "\x0001\0\x0001\x0019\x0002\0\x0001\x003E\x0001\0\x0001\x001F\x0001\x0018\x0006\0" + + "\x0001\x0040\x0011\0\x0001\x0041\x0002\0\x0001\x0042\x0008\0\x0001\x0043\x0012\0" + + "\x0001\x0044\x0011\0\x0001\x0045\x0002\0\x0001\x0046\x0021\0\x0001\x0047\x0010\0" + + "\x0001\x001A\x0001\0\x0001\x001A\x0003\0\x0001\x0034\x0001\0\x0001\x001A\x0007\0" + + "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0048\x0001\0\x0001\x0036\x0004\0" + + "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + + "\x0001\x0049\x0002\0\x0001\x004A\x0004\0\x0001\x0039\x0003\0\x0001\x004B\x000F\0" + + "\x0001\x002E\x0002\0\x0001\x004C\x0011\0\x0001\x004D\x0002\0\x0001\x004E\x0021\0" + + "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0050\x0001\x0019\x0001\x0051\x0003\0\x0001\x0050" + + "\x0001\0\x0001\x0050\x0004\0\x0001\x001F\x0001\x0018\x0086\0\x0002\x001C\x000C\0" + + "\x0001\x0052\x0011\0\x0001\x0053\x0002\0\x0001\x0054\x0008\0\x0001\x0055\x0012\0" + + "\x0001\x0056\x0011\0\x0001\x0057\x0002\0\x0001\x0058\x0032\0\x0001\x001D\x0007\0" + + "\x0001\x001D\x000C\0\x0001\x0059\x0011\0\x0001\x005A\x0002\0\x0001\x005B\x0008\0" + + "\x0001\x005C\x0012\0\x0001\x005D\x0011\0\x0001\x005E\x0002\0\x0001\x005F\x0032\0" + + "\x0001\x001E\x0007\0\x0001\x001E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0060\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0061\x0002\0\x0001\x0062\x0004\0" + + "\x0001\x002C\x0003\0\x0001\x0063\x000F\0\x0001\x002E\x0002\0\x0001\x0064\x0011\0" + + "\x0001\x0065\x0002\0\x0001\x0066\x0031\0\x0001\x0018\x0001\x001F\x0001\x0032\x0001\0" + + "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x001F\x0002\0\x0001\x0067" + + "\x0001\x0068\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0069\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x006A\x0002\0\x0001\x006B\x0004\0" + + "\x0001\x002C\x0003\0\x0001\x006C\x000F\0\x0001\x002E\x0002\0\x0001\x006D\x0011\0" + + "\x0001\x006E\x0002\0\x0001\x006F\x0031\0\x0001\x0018\x0001\x0020\x0001\x0032\x0001\0" + + "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0020\x0002\0\x0001\x0033" + + "\x0001\0\x0001\x001F\x0001\x0020\x0006\0\x0001\x0070\x0011\0\x0001\x0071\x0002\0" + + "\x0001\x0072\x0008\0\x0001\x0073\x0012\0\x0001\x0074\x0011\0\x0001\x0075\x0002\0" + + "\x0001\x0076\x002D\0\x0001\x0077\x0004\0\x0001\x0021\x0007\0\x0001\x0021\x000D\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + + "\x0001\x0018\x000B\0\x0001\x0018\x0002\0\x0001\x0018\x0008\0\x0001\x0018\x0012\0" + + "\x0004\x0018\x001D\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0032\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + + "\x0002\x0018\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0" + + "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0" + + "\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0" + + "\x0002\x0018\x0001\0\x0008\x0018\x0001\x0032\x0001\0\x0007\x0018\x0001\0\x0008\x0018" + + "\x0001\0\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0003\0\x0003\x0018\x0012\0\x0001\x0018\x0016\0\x0002\x0018" + + "\x0013\0\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0018\x0035\0" + + "\x0001\x0032\x0009\0\x0001\x0018\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0" + + "\x0004\x0018\x0001\0\x0002\x0018\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0004\0\x0003\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0" + + "\x0004\x0018\x0002\0\x0002\x0018\x000A\0\x0001\x0018\x0007\0\x0001\x0018\x0024\0" + + "\x0001\x0018\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0" + + "\x0001\x0018\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0" + + "\x0002\x0018\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0" + + "\x0002\x0032\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + + "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + + "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + + "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0005\x0018\x0001\0" + + "\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x005C\0\x0002\x0018\x0015\0\x0004\x0018\x002D\0\x0001\x0018\x000D\0" + + "\x0002\x0018\x0008\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0009\0" + + "\x0001\x0018\x0009\0\x0002\x0018\x0006\0\x0001\x0018\x0002\0\x0004\x0018\x0003\0" + + "\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0001\x0018\x0008\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018\x0001\0" + + "\x0004\x0018\x0013\0\x0001\x0018\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0078\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0079\x0002\0\x0001\x007A\x0004\0" + + "\x0001\x002C\x0003\0\x0001\x007B\x000F\0\x0001\x002E\x0002\0\x0001\x007C\x0011\0" + + "\x0001\x007D\x0002\0\x0001\x007E\x0031\0\x0001\x0018\x0002\x0032\x0002\0\x0002\x007F" + + "\x0001\x0034\x0001\0\x0001\x0032\x0002\0\x0001\x007F\x0001\0\x0001\x001F\x0001\x0018" + + "\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0080\x0001\0\x0001\x0081" + + "\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029" + + "\x0003\0\x0001\x0082\x0002\0\x0001\x0083\x0004\0\x0001\x0084\x0003\0\x0001\x0085" + + "\x000F\0\x0001\x002E\x0002\0\x0001\x0086\x0011\0\x0001\x0087\x0002\0\x0001\x0088" + + "\x0031\0\x0001\x0018\x0001\x0033\x0007\0\x0001\x0033\x0004\0\x0002\x0018\x0001\0" + + "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0089\x0001\0\x0001\x0025\x0004\0" + + "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + + "\x0001\x008A\x0002\0\x0001\x008B\x0004\0\x0001\x002C\x0003\0\x0001\x008C\x000F\0" + + "\x0001\x002E\x0002\0\x0001\x008D\x0011\0\x0001\x008E\x0002\0\x0001\x008F\x0021\0" + + "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0034\x0001\x0032\x0001\x0051\x0003\0\x0001\x0034" + + "\x0001\0\x0001\x0034\x0004\0\x0001\x001F\x0001\x0018\x0007\0\x0001\x0018\x0004\0" + + "\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0" + + "\x0001\x0019\x0002\0\x0001\x0019\x0008\0\x0001\x0018\x0012\0\x0004\x0019\x001D\0" + + "\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018" + + "\x0020\0\x0001\x0019\x000B\0\x0001\x0019\x0035\0\x0001\x0019\x0009\0\x0001\x0019" + + "\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0019\x0001\0" + + "\x0002\x0019\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0019\x0004\0" + + "\x0001\x0019\x0002\x0018\x0001\0\x0004\x0019\x0001\0\x0002\x0018\x0005\0\x0004\x0019" + + "\x0002\0\x0001\x0018\x0001\x0019\x000A\0\x0001\x0019\x0007\0\x0001\x0018\x0018\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + + "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0019\x0001\0" + + "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + + "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0019" + + "\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x005C\0\x0002\x0019\x0015\0\x0004\x0019\x002D\0\x0001\x0019" + + "\x000D\0\x0002\x0019\x0008\0\x0002\x0019\x0001\0\x0001\x0019\x0001\0\x0001\x0019" + + "\x0009\0\x0001\x0019\x0009\0\x0002\x0019\x0006\0\x0001\x0019\x0002\0\x0004\x0019" + + "\x0003\0\x0001\x0019\x0002\0\x0002\x0019\x0001\0\x0003\x0019\x0001\0\x0002\x0019" + + "\x0001\0\x0001\x0019\x0008\0\x0001\x0019\x0001\0\x0002\x0019\x0002\0\x0002\x0019" + + "\x0001\0\x0004\x0019\x0013\0\x0001\x0019\x0016\0\x0001\x0090\x0001\0\x0001\x0091" + + "\x000F\0\x0001\x0092\x0002\0\x0001\x0093\x0004\0\x0001\x0094\x0003\0\x0001\x0095" + + "\x0012\0\x0001\x0096\x0011\0\x0001\x0097\x0002\0\x0001\x0098\x0032\0\x0001\x003E" + + "\x0001\x0019\x0006\0\x0001\x003E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0099\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x009A\x0002\0\x0001\x009B\x0004\0" + + "\x0001\x0039\x0003\0\x0001\x009C\x000F\0\x0001\x002E\x0002\0\x0001\x009D\x0011\0" + + "\x0001\x009E\x0002\0\x0001\x009F\x0021\0\x0001\x004F\x000F\0\x0001\x0018\x0001\x003F" + + "\x0001\x0019\x0001\x0051\x0003\0\x0001\x003F\x0001\0\x0001\x003F\x0004\0\x0001\x001F" + + "\x0001\x0018\x0039\0\x0001\x001A\x0002\0\x0001\x001A\x001B\0\x0004\x001A\x008E\0" + + "\x0001\x001A\x003F\0\x0001\x001A\x0024\0\x0001\x001A\x0001\0\x0002\x001A\x0011\0" + + "\x0001\x001A\x0004\0\x0001\x001A\x000F\0\x0004\x001A\x0003\0\x0001\x001A\x000A\0" + + "\x0001\x001A\x0083\0\x0001\x001A\x0092\0\x0004\x001A\x006A\0\x0002\x001A\x0015\0" + + "\x0004\x001A\x002D\0\x0001\x001A\x000D\0\x0002\x001A\x0008\0\x0002\x001A\x0001\0" + + "\x0001\x001A\x0001\0\x0001\x001A\x0009\0\x0001\x001A\x0009\0\x0002\x001A\x0006\0" + + "\x0001\x001A\x0002\0\x0004\x001A\x0003\0\x0001\x001A\x0002\0\x0002\x001A\x0001\0" + + "\x0003\x001A\x0001\0\x0002\x001A\x0001\0\x0001\x001A\x0008\0\x0001\x001A\x0001\0" + + "\x0002\x001A\x0002\0\x0002\x001A\x0001\0\x0004\x001A\x0013\0\x0001\x001A\x007F\0" + + "\x0001\x001A\x0025\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0" + + "\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0050\x0002\0\x0001\x0050\x0008\0" + + "\x0001\x0018\x0012\0\x0004\x0050\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0" + + "\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019\x000B\0\x0001\x0050" + + "\x0035\0\x0001\x0019\x0009\0\x0001\x0050\x000D\0\x0004\x0018\x0002\0\x0002\x0018" + + "\x000C\0\x0003\x0018\x0001\x0050\x0001\0\x0002\x0050\x0009\0\x0003\x0018\x0003\0" + + "\x0001\x0018\x0001\0\x0001\x0050\x0004\0\x0001\x0050\x0002\x0018\x0001\0\x0004\x0019" + + "\x0001\0\x0002\x0018\x0005\0\x0004\x0050\x0002\0\x0001\x0018\x0001\x0050\x000A\0" + + "\x0001\x0050\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0" + + "\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0004\0\x0001\x0050\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + + "\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0" + + "\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0" + + "\x0002\x0018\x0004\0\x0001\x0018\x0004\x0050\x0001\0\x0001\x0018\x0002\0\x0001\x0018" + + "\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0050" + + "\x0015\0\x0004\x0050\x002D\0\x0001\x0050\x000D\0\x0002\x0050\x0008\0\x0002\x0050" + + "\x0001\0\x0001\x0050\x0001\0\x0001\x0050\x0009\0\x0001\x0050\x0009\0\x0002\x0050" + + "\x0006\0\x0001\x0050\x0002\0\x0004\x0050\x0003\0\x0001\x0050\x0002\0\x0002\x0050" + + "\x0001\0\x0003\x0050\x0001\0\x0002\x0050\x0001\0\x0001\x0050\x0008\0\x0001\x0050" + + "\x0001\0\x0002\x0050\x0002\0\x0002\x0050\x0001\0\x0004\x0050\x0013\0\x0001\x0050" + + "\x007F\0\x0001\x0051\x0024\0\x0001\x00A0\x0011\0\x0001\x00A1\x0002\0\x0001\x00A2" + + "\x0008\0\x0001\x00A3\x0012\0\x0001\x00A4\x0011\0\x0001\x00A5\x0002\0\x0001\x00A6" + + "\x0021\0\x0001\x004F\x0010\0\x0001\x0051\x0001\0\x0001\x0051\x0003\0\x0001\x0034" + + "\x0001\0\x0001\x0051\x003F\0\x0001\x001D\x0002\0\x0001\x001D\x001B\0\x0004\x001D" + + "\x008E\0\x0001\x001D\x003F\0\x0001\x001D\x0024\0\x0001\x001D\x0001\0\x0002\x001D" + + "\x0011\0\x0001\x001D\x0004\0\x0001\x001D\x000F\0\x0004\x001D\x0003\0\x0001\x001D" + + "\x000A\0\x0001\x001D\x0083\0\x0001\x001D\x0092\0\x0004\x001D\x006A\0\x0002\x001D" + + "\x0015\0\x0004\x001D\x002D\0\x0001\x001D\x000D\0\x0002\x001D\x0008\0\x0002\x001D" + + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0009\0\x0001\x001D\x0009\0\x0002\x001D" + + "\x0006\0\x0001\x001D\x0002\0\x0004\x001D\x0003\0\x0001\x001D\x0002\0\x0002\x001D" + + "\x0001\0\x0003\x001D\x0001\0\x0002\x001D\x0001\0\x0001\x001D\x0008\0\x0001\x001D" + + "\x0001\0\x0002\x001D\x0002\0\x0002\x001D\x0001\0\x0004\x001D\x0013\0\x0001\x001D" + + "\x0049\0\x0001\x001E\x0002\0\x0001\x001E\x001B\0\x0004\x001E\x008E\0\x0001\x001E" + + "\x003F\0\x0001\x001E\x0024\0\x0001\x001E\x0001\0\x0002\x001E\x0011\0\x0001\x001E" + + "\x0004\0\x0001\x001E\x000F\0\x0004\x001E\x0003\0\x0001\x001E\x000A\0\x0001\x001E" + + "\x0083\0\x0001\x001E\x0092\0\x0004\x001E\x006A\0\x0002\x001E\x0015\0\x0004\x001E" + + "\x002D\0\x0001\x001E\x000D\0\x0002\x001E\x0008\0\x0002\x001E\x0001\0\x0001\x001E" + + "\x0001\0\x0001\x001E\x0009\0\x0001\x001E\x0009\0\x0002\x001E\x0006\0\x0001\x001E" + + "\x0002\0\x0004\x001E\x0003\0\x0001\x001E\x0002\0\x0002\x001E\x0001\0\x0003\x001E" + + "\x0001\0\x0002\x001E\x0001\0\x0001\x001E\x0008\0\x0001\x001E\x0001\0\x0002\x001E" + + "\x0002\0\x0002\x001E\x0001\0\x0004\x001E\x0013\0\x0001\x001E\x0017\0\x0001\x0018" + + "\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018" + + "\x000B\0\x0001\x001F\x0002\0\x0001\x001F\x0008\0\x0001\x0018\x0012\0\x0004\x001F" + + "\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0032" + + "\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x001F\x0035\0\x0001\x0032\x0009\0" + + "\x0001\x001F\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x001F" + + "\x0001\0\x0002\x001F\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x001F" + + "\x0004\0\x0001\x001F\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0" + + "\x0004\x001F\x0002\0\x0001\x0018\x0001\x001F\x000A\0\x0001\x001F\x0007\0\x0001\x0018" + + "\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018" + + "\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018" + + "\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x001F" + + "\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018" + + "\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018" + + "\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018" + + "\x0004\x001F\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x001F\x0015\0\x0004\x001F\x002D\0" + + "\x0001\x001F\x000D\0\x0002\x001F\x0008\0\x0002\x001F\x0001\0\x0001\x001F\x0001\0" + + "\x0001\x001F\x0009\0\x0001\x001F\x0009\0\x0002\x001F\x0006\0\x0001\x001F\x0002\0" + + "\x0004\x001F\x0003\0\x0001\x001F\x0002\0\x0002\x001F\x0001\0\x0003\x001F\x0001\0" + + "\x0002\x001F\x0001\0\x0001\x001F\x0008\0\x0001\x001F\x0001\0\x0002\x001F\x0002\0" + + "\x0002\x001F\x0001\0\x0004\x001F\x0013\0\x0001\x001F\x0011\0\x0001\x0022\x0001\0" + + "\x0001\x0023\x0002\0\x0001\x00A7\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0" + + "\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x00A8\x0002\0" + + "\x0001\x00A9\x0004\0\x0001\x002C\x0003\0\x0001\x00AA\x000F\0\x0001\x002E\x0002\0" + + "\x0001\x00AB\x0011\0\x0001\x00AC\x0002\0\x0001\x00AD\x0031\0\x0001\x0018\x0001\x0067" + + "\x0001\x0032\x0004\0\x0001\x0034\x0001\0\x0001\x0067\x0004\0\x0001\x001F\x0001\x0018" + + "\x0006\0\x0001\x00AE\x0011\0\x0001\x00AF\x0002\0\x0001\x00B0\x0008\0\x0001\x00B1" + + "\x0012\0\x0001\x00B2\x0011\0\x0001\x00B3\x0002\0\x0001\x00B4\x0032\0\x0001\x0068" + + "\x0007\0\x0001\x0068\x0004\0\x0001\x0067\x0008\0\x0001\x0018\x0004\0\x0001\x0018" + + "\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0020" + + "\x0002\0\x0001\x0020\x0008\0\x0001\x0018\x0012\0\x0004\x0020\x001D\0\x0001\x0018" + + "\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0032\x0001\x0018\x0020\0" + + "\x0001\x0032\x000B\0\x0001\x0020\x0035\0\x0001\x0032\x0009\0\x0001\x0020\x000D\0" + + "\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0020\x0001\0\x0002\x0020" + + "\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0020\x0004\0\x0001\x0020" + + "\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0\x0004\x0020\x0002\0" + + "\x0001\x0018\x0001\x0020\x000A\0\x0001\x0020\x0007\0\x0001\x0018\x0018\0\x0001\x0018" + + "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018" + + "\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018" + + "\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018" + + "\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0020\x0001\0\x0002\x0018" + + "\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018" + + "\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018" + + "\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018" + + "\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0020\x0001\0" + + "\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x005C\0\x0002\x0020\x0015\0\x0004\x0020\x002D\0\x0001\x0020\x000D\0" + + "\x0002\x0020\x0008\0\x0002\x0020\x0001\0\x0001\x0020\x0001\0\x0001\x0020\x0009\0" + + "\x0001\x0020\x0009\0\x0002\x0020\x0006\0\x0001\x0020\x0002\0\x0004\x0020\x0003\0" + + "\x0001\x0020\x0002\0\x0002\x0020\x0001\0\x0003\x0020\x0001\0\x0002\x0020\x0001\0" + + "\x0001\x0020\x0008\0\x0001\x0020\x0001\0\x0002\x0020\x0002\0\x0002\x0020\x0001\0" + + "\x0004\x0020\x0013\0\x0001\x0020\x0049\0\x0001\x0021\x0002\0\x0001\x0021\x001B\0" + + "\x0004\x0021\x008E\0\x0001\x0021\x003F\0\x0001\x0021\x0024\0\x0001\x0021\x0001\0" + + "\x0002\x0021\x0011\0\x0001\x0021\x0004\0\x0001\x0021\x000F\0\x0004\x0021\x0003\0" + + "\x0001\x0021\x000A\0\x0001\x0021\x0083\0\x0001\x0021\x0092\0\x0004\x0021\x006A\0" + + "\x0002\x0021\x0015\0\x0004\x0021\x002D\0\x0001\x0021\x000D\0\x0002\x0021\x0008\0" + + "\x0002\x0021\x0001\0\x0001\x0021\x0001\0\x0001\x0021\x0009\0\x0001\x0021\x0009\0" + + "\x0002\x0021\x0006\0\x0001\x0021\x0002\0\x0004\x0021\x0003\0\x0001\x0021\x0002\0" + + "\x0002\x0021\x0001\0\x0003\x0021\x0001\0\x0002\x0021\x0001\0\x0001\x0021\x0008\0" + + "\x0001\x0021\x0001\0\x0002\x0021\x0002\0\x0002\x0021\x0001\0\x0004\x0021\x0013\0" + + "\x0001\x0021\x0075\0\x0001\x00B5\x0016\0\x0002\x00B5\x0017\0\x0001\x0018\x0004\0" + + "\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0" + + "\x0001\x0032\x0002\0\x0001\x0032\x0008\0\x0001\x0018\x0012\0\x0004\x0032\x001D\0" + + "\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0032\x0001\x0018" + + "\x0020\0\x0001\x0032\x000B\0\x0001\x0032\x0035\0\x0001\x0032\x0009\0\x0001\x0032" + + "\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0032\x0001\0" + + "\x0002\x0032\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0032\x0004\0" + + "\x0001\x0032\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0\x0004\x0032" + + "\x0002\0\x0001\x0018\x0001\x0032\x000A\0\x0001\x0032\x0007\0\x0001\x0018\x0018\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + + "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0032\x0001\0" + + "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + + "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0032" + + "\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x005C\0\x0002\x0032\x0015\0\x0004\x0032\x002D\0\x0001\x0032" + + "\x000D\0\x0002\x0032\x0008\0\x0002\x0032\x0001\0\x0001\x0032\x0001\0\x0001\x0032" + + "\x0009\0\x0001\x0032\x0009\0\x0002\x0032\x0006\0\x0001\x0032\x0002\0\x0004\x0032" + + "\x0003\0\x0001\x0032\x0002\0\x0002\x0032\x0001\0\x0003\x0032\x0001\0\x0002\x0032" + + "\x0001\0\x0001\x0032\x0008\0\x0001\x0032\x0001\0\x0002\x0032\x0002\0\x0002\x0032" + + "\x0001\0\x0004\x0032\x0013\0\x0001\x0032\x0016\0\x0001\x00B6\x0001\0\x0001\x00B7" + + "\x000F\0\x0001\x00B8\x0002\0\x0001\x00B9\x0004\0\x0001\x00BA\x0003\0\x0001\x00BB" + + "\x0012\0\x0001\x00BC\x0011\0\x0001\x00BD\x0002\0\x0001\x00BE\x0032\0\x0001\x007F" + + "\x0001\x0032\x0006\0\x0001\x007F\x000D\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0" + + "\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0033\x0002\0" + + "\x0001\x0033\x0008\0\x0001\x0018\x0012\0\x0004\x0033\x001D\0\x0001\x0018\x0019\0" + + "\x0001\x0018\x0003\0\x0004\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + + "\x0002\x0018\x0002\0\x0002\x0018\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0002\0\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0003\x0018\x0001\0\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0" + + "\x0008\x0018\x0001\0\x0002\x0018\x0001\0\x0008\x0018\x0002\0\x0007\x0018\x0001\0" + + "\x0008\x0018\x0001\0\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0003\0\x0003\x0018\x0012\0\x0001\x0018\x0016\0" + + "\x0002\x0018\x0014\0\x0001\x0018\x002C\0\x0001\x0033\x003F\0\x0001\x0033\x000D\0" + + "\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0033\x0001\0\x0002\x0033" + + "\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0033\x0004\0\x0001\x0033" + + "\x0002\x0018\x0006\0\x0002\x0018\x0005\0\x0004\x0033\x0002\0\x0001\x0018\x0001\x0033" + + "\x000A\0\x0001\x0033\x0007\0\x0001\x0018\x0024\0\x0001\x0018\x0003\0\x0002\x0018" + + "\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0\x0001\x0018\x0006\0\x0002\x0018" + + "\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018\x0002\0\x0002\x0018" + + "\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x000D\0\x0001\x0018\x000E\0\x0001\x0018" + + "\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018" + + "\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018" + + "\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018" + + "\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0004\0\x0001\x0033\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018" + + "\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018" + + "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018" + + "\x0004\0\x0001\x0018\x0004\x0033\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0033\x0015\0" + + "\x0004\x0033\x002D\0\x0001\x0033\x000D\0\x0002\x0033\x0008\0\x0002\x0033\x0001\0" + + "\x0001\x0033\x0001\0\x0001\x0033\x0009\0\x0001\x0033\x0009\0\x0002\x0033\x0006\0" + + "\x0001\x0033\x0002\0\x0004\x0033\x0003\0\x0001\x0033\x0002\0\x0002\x0033\x0001\0" + + "\x0003\x0033\x0001\0\x0002\x0033\x0001\0\x0001\x0033\x0008\0\x0001\x0033\x0001\0" + + "\x0002\x0033\x0002\0\x0002\x0033\x0001\0\x0004\x0033\x0013\0\x0001\x0033\x0017\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + + "\x0001\x0018\x000B\0\x0001\x0034\x0002\0\x0001\x0034\x0008\0\x0001\x0018\x0012\0" + + "\x0004\x0034\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0" + + "\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0034\x0035\0\x0001\x0032" + + "\x0009\0\x0001\x0034\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + + "\x0001\x0034\x0001\0\x0002\x0034\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + + "\x0001\x0034\x0004\0\x0001\x0034\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018" + + "\x0005\0\x0004\x0034\x0002\0\x0001\x0018\x0001\x0034\x000A\0\x0001\x0034\x0007\0" + + "\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + + "\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0" + + "\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0" + + "\x0001\x0034\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0" + + "\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0" + + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0" + + "\x0001\x0018\x0004\x0034\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0034\x0015\0\x0004\x0034" + + "\x002D\0\x0001\x0034\x000D\0\x0002\x0034\x0008\0\x0002\x0034\x0001\0\x0001\x0034" + + "\x0001\0\x0001\x0034\x0009\0\x0001\x0034\x0009\0\x0002\x0034\x0006\0\x0001\x0034" + + "\x0002\0\x0004\x0034\x0003\0\x0001\x0034\x0002\0\x0002\x0034\x0001\0\x0003\x0034" + + "\x0001\0\x0002\x0034\x0001\0\x0001\x0034\x0008\0\x0001\x0034\x0001\0\x0002\x0034" + + "\x0002\0\x0002\x0034\x0001\0\x0004\x0034\x0013\0\x0001\x0034\x0049\0\x0001\x003E" + + "\x0002\0\x0001\x003E\x001B\0\x0004\x003E\x0042\0\x0001\x0019\x0044\0\x0001\x0019" + + "\x0066\0\x0001\x0019\x0021\0\x0001\x0019\x000B\0\x0001\x003E\x0035\0\x0001\x0019" + + "\x0009\0\x0001\x003E\x0024\0\x0001\x003E\x0001\0\x0002\x003E\x0011\0\x0001\x003E" + + "\x0004\0\x0001\x003E\x0003\0\x0004\x0019\x0008\0\x0004\x003E\x0003\0\x0001\x003E" + + "\x000A\0\x0001\x003E\x0074\0\x0002\x0019\x009B\0\x0001\x003E\x0092\0\x0004\x003E" + + "\x006A\0\x0002\x003E\x0015\0\x0004\x003E\x002D\0\x0001\x003E\x000D\0\x0002\x003E" + + "\x0008\0\x0002\x003E\x0001\0\x0001\x003E\x0001\0\x0001\x003E\x0009\0\x0001\x003E" + + "\x0009\0\x0002\x003E\x0006\0\x0001\x003E\x0002\0\x0004\x003E\x0003\0\x0001\x003E" + + "\x0002\0\x0002\x003E\x0001\0\x0003\x003E\x0001\0\x0002\x003E\x0001\0\x0001\x003E" + + "\x0008\0\x0001\x003E\x0001\0\x0002\x003E\x0002\0\x0002\x003E\x0001\0\x0004\x003E" + + "\x0013\0\x0001\x003E\x0017\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018" + + "\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x003F\x0002\0\x0001\x003F" + + "\x0008\0\x0001\x0018\x0012\0\x0004\x003F\x001D\0\x0001\x0018\x0016\0\x0001\x0018" + + "\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019\x000B\0" + + "\x0001\x003F\x0035\0\x0001\x0019\x0009\0\x0001\x003F\x000D\0\x0004\x0018\x0002\0" + + "\x0002\x0018\x000C\0\x0003\x0018\x0001\x003F\x0001\0\x0002\x003F\x0009\0\x0003\x0018" + + "\x0003\0\x0001\x0018\x0001\0\x0001\x003F\x0004\0\x0001\x003F\x0002\x0018\x0001\0" + + "\x0004\x0019\x0001\0\x0002\x0018\x0005\0\x0004\x003F\x0002\0\x0001\x0018\x0001\x003F" + + "\x000A\0\x0001\x003F\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018" + + "\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018" + + "\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018" + + "\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018" + + "\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0004\0\x0001\x003F\x0001\0\x0002\x0018\x0006\0\x0001\x0018" + + "\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018" + + "\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018" + + "\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018" + + "\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x003F\x0001\0\x0001\x0018\x0002\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0" + + "\x0002\x003F\x0015\0\x0004\x003F\x002D\0\x0001\x003F\x000D\0\x0002\x003F\x0008\0" + + "\x0002\x003F\x0001\0\x0001\x003F\x0001\0\x0001\x003F\x0009\0\x0001\x003F\x0009\0" + + "\x0002\x003F\x0006\0\x0001\x003F\x0002\0\x0004\x003F\x0003\0\x0001\x003F\x0002\0" + + "\x0002\x003F\x0001\0\x0003\x003F\x0001\0\x0002\x003F\x0001\0\x0001\x003F\x0008\0" + + "\x0001\x003F\x0001\0\x0002\x003F\x0002\0\x0002\x003F\x0001\0\x0004\x003F\x0013\0" + + "\x0001\x003F\x0049\0\x0001\x0051\x0002\0\x0001\x0051\x001B\0\x0004\x0051\x008E\0" + + "\x0001\x0051\x003F\0\x0001\x0051\x0024\0\x0001\x0051\x0001\0\x0002\x0051\x0011\0" + + "\x0001\x0051\x0004\0\x0001\x0051\x000F\0\x0004\x0051\x0003\0\x0001\x0051\x000A\0" + + "\x0001\x0051\x0083\0\x0001\x0051\x0092\0\x0004\x0051\x006A\0\x0002\x0051\x0015\0" + + "\x0004\x0051\x002D\0\x0001\x0051\x000D\0\x0002\x0051\x0008\0\x0002\x0051\x0001\0" + + "\x0001\x0051\x0001\0\x0001\x0051\x0009\0\x0001\x0051\x0009\0\x0002\x0051\x0006\0" + + "\x0001\x0051\x0002\0\x0004\x0051\x0003\0\x0001\x0051\x0002\0\x0002\x0051\x0001\0" + + "\x0003\x0051\x0001\0\x0002\x0051\x0001\0\x0001\x0051\x0008\0\x0001\x0051\x0001\0" + + "\x0002\x0051\x0002\0\x0002\x0051\x0001\0\x0004\x0051\x0013\0\x0001\x0051\x0017\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + + "\x0001\x0018\x000B\0\x0001\x0067\x0002\0\x0001\x0067\x0008\0\x0001\x0018\x0012\0" + + "\x0004\x0067\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0" + + "\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0067\x0035\0\x0001\x0032" + + "\x0009\0\x0001\x0067\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + + "\x0001\x0067\x0001\0\x0002\x0067\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + + "\x0001\x0067\x0004\0\x0001\x0067\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018" + + "\x0005\0\x0004\x0067\x0002\0\x0001\x0018\x0001\x0067\x000A\0\x0001\x0067\x0007\0" + + "\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + + "\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0" + + "\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0" + + "\x0001\x0067\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0" + + "\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0" + + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0" + + "\x0001\x0018\x0004\x0067\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0067\x0015\0\x0004\x0067" + + "\x002D\0\x0001\x0067\x000D\0\x0002\x0067\x0008\0\x0002\x0067\x0001\0\x0001\x0067" + + "\x0001\0\x0001\x0067\x0009\0\x0001\x0067\x0009\0\x0002\x0067\x0006\0\x0001\x0067" + + "\x0002\0\x0004\x0067\x0003\0\x0001\x0067\x0002\0\x0002\x0067\x0001\0\x0003\x0067" + + "\x0001\0\x0002\x0067\x0001\0\x0001\x0067\x0008\0\x0001\x0067\x0001\0\x0002\x0067" + + "\x0002\0\x0002\x0067\x0001\0\x0004\x0067\x0013\0\x0001\x0067\x0049\0\x0001\x0068" + + "\x0002\0\x0001\x0068\x001B\0\x0004\x0068\x008E\0\x0001\x0068\x003F\0\x0001\x0068" + + "\x0024\0\x0001\x0068\x0001\0\x0002\x0068\x0011\0\x0001\x0068\x0004\0\x0001\x0068" + + "\x000F\0\x0004\x0068\x0003\0\x0001\x0068\x000A\0\x0001\x0068\x0083\0\x0001\x0068" + + "\x0092\0\x0004\x0068\x006A\0\x0002\x0068\x0015\0\x0004\x0068\x002D\0\x0001\x0068" + + "\x000D\0\x0002\x0068\x0008\0\x0002\x0068\x0001\0\x0001\x0068\x0001\0\x0001\x0068" + + "\x0009\0\x0001\x0068\x0009\0\x0002\x0068\x0006\0\x0001\x0068\x0002\0\x0004\x0068" + + "\x0003\0\x0001\x0068\x0002\0\x0002\x0068\x0001\0\x0003\x0068\x0001\0\x0002\x0068" + + "\x0001\0\x0001\x0068\x0008\0\x0001\x0068\x0001\0\x0002\x0068\x0002\0\x0002\x0068" + + "\x0001\0\x0004\x0068\x0013\0\x0001\x0068\x0016\0\x0001\x00BF\x0011\0\x0001\x00C0" + + "\x0002\0\x0001\x00C1\x0008\0\x0001\x00C2\x0012\0\x0001\x00C3\x0011\0\x0001\x00C4" + + "\x0002\0\x0001\x00C5\x002D\0\x0001\x0077\x0004\0\x0001\x00B5\x0007\0\x0001\x00B5" + + "\x003F\0\x0001\x007F\x0002\0\x0001\x007F\x001B\0\x0004\x007F\x0042\0\x0001\x0032" + + "\x0044\0\x0001\x0032\x0066\0\x0001\x0032\x0021\0\x0001\x0032\x000B\0\x0001\x007F" + + "\x0035\0\x0001\x0032\x0009\0\x0001\x007F\x0024\0\x0001\x007F\x0001\0\x0002\x007F" + + "\x0011\0\x0001\x007F\x0004\0\x0001\x007F\x0003\0\x0004\x0032\x0008\0\x0004\x007F" + + "\x0003\0\x0001\x007F\x000A\0\x0001\x007F\x0074\0\x0002\x0032\x009B\0\x0001\x007F" + + "\x0092\0\x0004\x007F\x006A\0\x0002\x007F\x0015\0\x0004\x007F\x002D\0\x0001\x007F" + + "\x000D\0\x0002\x007F\x0008\0\x0002\x007F\x0001\0\x0001\x007F\x0001\0\x0001\x007F" + + "\x0009\0\x0001\x007F\x0009\0\x0002\x007F\x0006\0\x0001\x007F\x0002\0\x0004\x007F" + + "\x0003\0\x0001\x007F\x0002\0\x0002\x007F\x0001\0\x0003\x007F\x0001\0\x0002\x007F" + + "\x0001\0\x0001\x007F\x0008\0\x0001\x007F\x0001\0\x0002\x007F\x0002\0\x0002\x007F" + + "\x0001\0\x0004\x007F\x0013\0\x0001\x007F\x0049\0\x0001\x00B5\x0002\0\x0001\x00B5" + + "\x001B\0\x0004\x00B5\x008E\0\x0001\x00B5\x003F\0\x0001\x00B5\x0024\0\x0001\x00B5" + + "\x0001\0\x0002\x00B5\x0011\0\x0001\x00B5\x0004\0\x0001\x00B5\x000F\0\x0004\x00B5" + + "\x0003\0\x0001\x00B5\x000A\0\x0001\x00B5\x0083\0\x0001\x00B5\x0092\0\x0004\x00B5" + + "\x006A\0\x0002\x00B5\x0015\0\x0004\x00B5\x002D\0\x0001\x00B5\x000D\0\x0002\x00B5" + + "\x0008\0\x0002\x00B5\x0001\0\x0001\x00B5\x0001\0\x0001\x00B5\x0009\0\x0001\x00B5" + + "\x0009\0\x0002\x00B5\x0006\0\x0001\x00B5\x0002\0\x0004\x00B5\x0003\0\x0001\x00B5" + + "\x0002\0\x0002\x00B5\x0001\0\x0003\x00B5\x0001\0\x0002\x00B5\x0001\0\x0001\x00B5" + + "\x0008\0\x0001\x00B5\x0001\0\x0002\x00B5\x0002\0\x0002\x00B5\x0001\0\x0004\x00B5" + + "\x0013\0\x0001\x00B5\x0010\0"; + + + + private static int[] ZzUnpackTrans() + { + int[] result = new int[26554]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; // index in packed string + int j = offset; // index in unpacked array + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do + { + result[j++] = value; + } while (--count > 0); + } + return j; + } + + + /* error codes */ + private const int ZZ_UNKNOWN_ERROR = 0; + private const int ZZ_NO_MATCH = 1; + private const int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static readonly string[] ZZ_ERROR_MSG = { }; + + /// + /// ZZ_ATTRIBUTE[aState] contains the attributes of state aState + /// + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = "\x0001\0\x0001\x0009\x001E\x0001\x0011\0\x0001\x0001\x0001\0\x0001\x0001\x000A\0" + "\x0001\x0001\x0011\0\x0001\x0001\x0015\0\x0001\x0001\x004D\0\x0001\x0001\x0010\0"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[197]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; // index in packed string + int j = offset; // index in unpacked array + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do + { + result[j++] = value; + } while (--count > 0); + } + return j; + } + + /// + /// the input device + private TextReader zzReader; + + /// + /// the current state of the DFA + private int zzState; + + /// + /// the current lexical state + private int zzLexicalState = YYINITIAL; + + /// + /// this buffer contains the current text to be matched and is + /// the source of the YyText() string + /// + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /// + /// the textposition at the last accepting state + private int zzMarkedPos; + + /// + /// the current text position in the buffer + private int zzCurrentPos; + + /// + /// startRead marks the beginning of the YyText() string in the buffer + private int zzStartRead; + + /// + /// endRead marks the last character in the buffer, that has been read + /// from input + /// + private int zzEndRead; + + /// + /// number of newlines encountered up to the start of the matched text + private int yyline; + + /// + /// the number of characters up to the start of the matched text + private int yyChar; + + /// + /// the number of characters from the last newline up to the start of the + /// matched text + /// + private int yycolumn; + + /// + /// zzAtBOL == true <=> the scanner is currently at the beginning of a line + /// + private bool zzAtBOL = true; + + /// + /// zzAtEOF == true <=> the scanner is at the EOF + private bool zzAtEOF; + + /// + /// denotes if the user-EOF-code has already been executed + private bool zzEOFDone; + + /* user code: */ + /// + /// Alphanumeric sequences + public const int WORD_TYPE = StandardTokenizer.ALPHANUM; + + /// + /// Numbers + public const int NUMERIC_TYPE = StandardTokenizer.NUM; + + /// + /// Chars in class \p{Line_Break = Complex_Context} are from South East Asian + /// scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept + /// together as as a single token rather than broken up, because the logic + /// required to break them at word boundaries is too complex for UAX#29. + /// + /// See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA + /// + /// + public const int SOUTH_EAST_ASIAN_TYPE = StandardTokenizer.SOUTHEAST_ASIAN; + + public const int IDEOGRAPHIC_TYPE = StandardTokenizer.IDEOGRAPHIC; + + public const int HIRAGANA_TYPE = StandardTokenizer.HIRAGANA; + + public const int KATAKANA_TYPE = StandardTokenizer.KATAKANA; + + public const int HANGUL_TYPE = StandardTokenizer.HANGUL; + + public int YyChar + { + get { return yyChar; } + } + + /// + /// Fills CharTermAttribute with the current token text. + /// + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + + /// + /// Creates a new scanner + /// + /// the java.io.Reader to read input from. + public StandardTokenizerImpl(TextReader @in) + { + this.zzReader = @in; + } + + + /// + /// Unpacks the compressed character translation table. + /// + /// the packed character translation table + /// the unpacked character translation table + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; // index in packed string + int j = 0; // index in unpacked array + while (i < 2860) + { + int count = packed[i++]; + char value = packed[i++]; + do + { + map[j++] = value; + } while (--count > 0); + } + return map; + } + + + /// + /// Refills the input buffer. + /// + /// false, iff there was new input. + /// + /// if any I/O-Error occurs + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + Array.Copy(zzBuffer, zzStartRead, zzBuffer, 0, zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* finally: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c <= 0) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /// + /// Closes the input stream. + /// + public void YyClose() + { + zzAtEOF = true; // indicate end of file + zzEndRead = zzStartRead; // invalidate buffer + + if (zzReader != null) + { + zzReader.Dispose(); + } + } + + + /// + /// Resets the scanner to read from a new input stream. + /// Does not close the old reader. + /// + /// All internal variables are reset, the old input stream + /// cannot be reused (internal buffer is discarded and lost). + /// Lexical state is set to ZZ_INITIAL. + /// + /// Internal scan buffer is resized down to its initial length, if it has grown. + /// + /// the new input stream + public void YyReset(TextReader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yyChar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + { + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + } + + + /// + /// Returns the current lexical state. + /// + public int YyState() + { + return zzLexicalState; + } + + + /// + /// Enters a new lexical state + /// + /// the new lexical state + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /// + /// Returns the text matched by the current regular expression. + /// + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + + /// + /// Returns the character at position pos from the + /// matched text. + /// + /// It is equivalent to YyText().charAt(pos), but faster + /// + /// the position of the character to fetch. + /// A value from 0 to YyLength()-1. + /// + /// the character at position pos + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /// + /// Returns the length of the matched text region. + /// + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + + /// + /// Reports an error that occured while scanning. + /// + /// In a wellformed scanner (no or only correct usage of + /// YyPushBack(int) and a match-all fallback rule) this method + /// will only be called with things that "Can't Possibly Happen". + /// If this method is called, something is seriously wrong + /// (e.g. a JFlex bug producing a faulty scanner etc.). + /// + /// Usual syntax/scanner level error handling should be done + /// in error fallback rules. + /// + /// the code of the errormessage to display + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (System.IndexOutOfRangeException) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + + /// + /// Pushes the specified amount of characters back into the input stream. + /// + /// They will be read again by then next call of the scanning method + /// + /// the number of characters to be read again. + /// This number must not be greater than YyLength()! + public void YyPushBack(int number) + { + if (number > YyLength) + { + ZzScanError(ZZ_PUSHBACK_2BIG); + } + + zzMarkedPos -= number; + } + + + /// + /// Resumes scanning until the next regular expression is matched, + /// the end of input is encountered or an I/O-Error occurs. + /// + /// the next token + /// if any I/O-Error occurs + public int NextToken + { + get + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; + + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yyChar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + + { + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + else if (zzAtEOF) + { + zzInput = StandardTokenizerInterface_Fields.YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = StandardTokenizerInterface_Fields.YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) + { + goto zzForActionBreak; + } + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) + { + goto zzForActionBreak; + } + } + + } + } + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { // Break so we don't hit fall-through warning: + break; // Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. + } + goto case 9; + case 9: + break; + case 2: + { + return WORD_TYPE; + } + case 10: + break; + case 3: + { + return NUMERIC_TYPE; + } + case 11: + break; + case 4: + { + return KATAKANA_TYPE; + } + case 12: + break; + case 5: + { + return SOUTH_EAST_ASIAN_TYPE; + } + case 13: + break; + case 6: + { + return IDEOGRAPHIC_TYPE; + } + case 14: + break; + case 7: + { + return HIRAGANA_TYPE; + } + case 15: + break; + case 8: + { + return HANGUL_TYPE; + } + case 16: + break; + default: + if (zzInput == StandardTokenizerInterface_Fields.YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + { + return StandardTokenizerInterface_Fields.YYEOF; + } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerInterface.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerInterface.cs index b066d2fc2f..5ead059a0e 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerInterface.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerInterface.cs @@ -3,7 +3,6 @@ namespace Lucene.Net.Analysis.Standard { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -21,12 +20,11 @@ namespace Lucene.Net.Analysis.Standard * limitations under the License. */ - /// /// Internal interface for supporting versioned grammars. /// @lucene.internal /// - public interface StandardTokenizerInterface + public interface IStandardTokenizerInterface { /// @@ -35,12 +33,12 @@ public interface StandardTokenizerInterface /// /// Copies the matched text into the CharTermAttribute /// - void getText(ICharTermAttribute t); + void GetText(ICharTermAttribute t); /// /// Returns the current position. /// - int yychar(); + int YyChar { get; } /// /// Resets the scanner to read from a new input stream. @@ -51,12 +49,12 @@ public interface StandardTokenizerInterface /// Lexical state is set to ZZ_INITIAL. /// /// the new input stream - void yyreset(TextReader reader); + void YyReset(TextReader reader); /// /// Returns the length of the matched text region. /// - int yylength(); + int YyLength { get; } /// /// Resumes scanning until the next regular expression is matched, diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/AbstractAnalysisFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/AbstractAnalysisFactory.cs index a677380258..129d8b8f18 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/AbstractAnalysisFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/AbstractAnalysisFactory.cs @@ -1,15 +1,15 @@ -using System; -using System.Collections.Generic; -using System.IO; -using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Core; using Lucene.Net.Support; using Lucene.Net.Util; -using Reader = System.IO.TextReader; -using Version = Lucene.Net.Util.LuceneVersion; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -26,6 +26,7 @@ namespace Lucene.Net.Analysis.Util * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Abstract parent class for analysis factories , /// and . @@ -48,7 +49,7 @@ public abstract class AbstractAnalysisFactory /// /// the luceneVersion arg - protected internal readonly Version? luceneMatchVersion; + protected internal readonly LuceneVersion luceneMatchVersion; /// /// Initialize this factory via a set of key-value pairs. @@ -58,16 +59,15 @@ protected internal AbstractAnalysisFactory(IDictionary args) ExplicitLuceneMatchVersion = false; originalArgs = Collections.UnmodifiableMap(args); string version = Get(args, LUCENE_MATCH_VERSION_PARAM); - luceneMatchVersion = version == null ? (LuceneVersion?)null : LuceneVersionHelpers.ParseLeniently(version); + // LUCENENET TODO: What should we do if the version is null? + //luceneMatchVersion = version == null ? (LuceneVersion?)null : LuceneVersionHelpers.ParseLeniently(version); + luceneMatchVersion = version == null ? LuceneVersion.LUCENE_CURRENT : LuceneVersionHelpers.ParseLeniently(version); args.Remove(CLASS_NAME); // consume the class arg } public IDictionary OriginalArgs { - get - { - return originalArgs; - } + get { return originalArgs; } } /// @@ -75,7 +75,7 @@ public IDictionary OriginalArgs /// or methods, /// to inform user, that for this factory a is required /// - protected internal void assureMatchVersion() + protected internal void AssureMatchVersion() { if (luceneMatchVersion == null) { @@ -83,16 +83,13 @@ protected internal void assureMatchVersion() } } - public LuceneVersion? LuceneMatchVersion + public LuceneVersion LuceneMatchVersion { - get - { - return this.luceneMatchVersion; - } + get { return this.luceneMatchVersion; } } public virtual string Require(IDictionary args, string name) - { + { string s; if (!args.TryGetValue(name, out s)) { @@ -144,15 +141,15 @@ public virtual string Get(IDictionary args, string name, string args.Remove(name); return s ?? defaultVal; } - public virtual string Get(IDictionary args, string name, ICollection allowedValues) + public virtual string Get(IDictionary args, string name, IEnumerable allowedValues) { return Get(args, name, allowedValues, null); // defaultVal = null } - public virtual string Get(IDictionary args, string name, ICollection allowedValues, string defaultVal) + public virtual string Get(IDictionary args, string name, IEnumerable allowedValues, string defaultVal) { return Get(args, name, allowedValues, defaultVal, true); } - public virtual string Get(IDictionary args, string name, ICollection allowedValues, string defaultVal, bool caseSensitive) + public virtual string Get(IDictionary args, string name, IEnumerable allowedValues, string defaultVal, bool caseSensitive) { string s = null; if (args.TryGetValue(name, out s)) @@ -190,8 +187,13 @@ protected internal int RequireInt(IDictionary args, string name) } protected internal int GetInt(IDictionary args, string name, int defaultVal) { - string s = args.Remove(name); - return s == null ? defaultVal : int.Parse(s); + string s; + if (args.TryGetValue(name, out s)) + { + args.Remove(name); + return int.Parse(s); + } + return defaultVal; } protected internal bool RequireBoolean(IDictionary args, string name) @@ -200,8 +202,13 @@ protected internal bool RequireBoolean(IDictionary args, string } protected internal bool GetBoolean(IDictionary args, string name, bool defaultVal) { - string s = args.Remove(name); - return s == null ? defaultVal : bool.Parse(s); + string s; + if (args.TryGetValue(name, out s)) + { + args.Remove(name); + return bool.Parse(s); + } + return defaultVal; } protected internal float RequireFloat(IDictionary args, string name) @@ -210,23 +217,25 @@ protected internal float RequireFloat(IDictionary args, string n } protected internal float GetFloat(IDictionary args, string name, float defaultVal) { - string s = args.Remove(name); - return s == null ? defaultVal : float.Parse(s); + string s; + if (args.TryGetValue(name, out s)) + { + args.Remove(name); + return float.Parse(s); + } + return defaultVal; } public virtual char RequireChar(IDictionary args, string name) { return Require(args, name)[0]; } - public virtual char GetChar(IDictionary args, string name, char defaultValue) + public virtual char GetChar(IDictionary args, string name, char defaultVal) { - string s = args.Remove(name); - if (s == null) - { - return defaultValue; - } - else + string s; + if (args.TryGetValue(name, out s)) { + args.Remove(name); if (s.Length != 1) { throw new System.ArgumentException(name + " should be a char. \"" + s + "\" is invalid"); @@ -236,46 +245,47 @@ public virtual char GetChar(IDictionary args, string name, char return s[0]; } } + return defaultVal; } - private static readonly Pattern ITEM_PATTERN = Pattern.compile("[^,\\s]+"); + //private static readonly Pattern ITEM_PATTERN = Pattern.compile("[^,\\s]+"); + private static readonly Regex ITEM_PATTERN = new Regex(@"[^,\\s]+"); /// /// Returns whitespace- and/or comma-separated set of values, or null if none are found - public virtual HashSet GetSet(IDictionary args, string name) - { - string s = args.Remove(name); - if (s == null) - { - return null; - } - else - { - HashSet set = null; - Matcher matcher = ITEM_PATTERN.matcher(s); - if (matcher.find()) - { - set = new HashSet<>(); - set.Add(matcher.group(0)); - while (matcher.find()) - { - set.Add(matcher.group(0)); - } - } - return set; - } - } + public virtual IEnumerable GetSet(IDictionary args, string name) + { + string s; + if (args.TryGetValue(name, out s)) + { + args.Remove(name); + HashSet set = null; + Match matcher = ITEM_PATTERN.Match(s); + if (matcher.Success) + { + set = new HashSet(); + set.Add(matcher.Groups[0].Value); // LUCENENET TODO: Should this be 0 or 1? + while (matcher.Success) + { + set.Add(matcher.Groups[0].Value); // LUCENENET TODO: Should this be 0 or 1? + matcher = matcher.NextMatch(); + } + } + return set; + } + return null; + } /// /// Compiles a pattern for the value of the specified argument key name /// - protected internal Pattern GetPattern(IDictionary args, string name) + protected internal Regex GetPattern(IDictionary args, string name) { try { - return Pattern.compile(Require(args, name)); + return new Regex(Require(args, name), RegexOptions.Compiled); } - catch (PatternSyntaxException e) + catch (Exception e) { throw new System.ArgumentException("Configuration Error: '" + name + "' can not be parsed in " + this.GetType().Name, e); } @@ -285,20 +295,20 @@ protected internal Pattern GetPattern(IDictionary args, string n /// Returns as from wordFiles, which /// can be a comma-separated list of filenames /// - protected internal CharArraySet GetWordSet(ResourceLoader loader, string wordFiles, bool ignoreCase) + protected internal CharArraySet GetWordSet(IResourceLoader loader, string wordFiles, bool ignoreCase) { - assureMatchVersion(); - IList files = splitFileNames(wordFiles); + AssureMatchVersion(); + IEnumerable files = SplitFileNames(wordFiles); CharArraySet words = null; - if (files.Count > 0) + if (files.Count() > 0) { // default stopwords list has 35 or so words, but maybe don't make it that // big to start - words = new CharArraySet(luceneMatchVersion, files.Count * 10, ignoreCase); + words = new CharArraySet(luceneMatchVersion, files.Count() * 10, ignoreCase); foreach (string file in files) { - var wlist = getLines(loader, file.Trim()); - words.AddAll(StopFilter.makeStopSet(luceneMatchVersion, wlist, ignoreCase)); + var wlist = GetLines(loader, file.Trim()); + words.AddAll(StopFilter.MakeStopSet(luceneMatchVersion, wlist, ignoreCase)); } } return words; @@ -307,39 +317,33 @@ protected internal CharArraySet GetWordSet(ResourceLoader loader, string wordFil /// /// Returns the resource's lines (with content treated as UTF-8) /// - protected internal IList getLines(ResourceLoader loader, string resource) + protected internal IEnumerable GetLines(IResourceLoader loader, string resource) { - return WordlistLoader.getLines(loader.openResource(resource), StandardCharsets.UTF_8); + return WordlistLoader.GetLines(loader.OpenResource(resource), Encoding.UTF8); } /// /// same as , /// except the input is in snowball format. /// - protected internal CharArraySet getSnowballWordSet(ResourceLoader loader, string wordFiles, bool ignoreCase) + protected internal CharArraySet GetSnowballWordSet(IResourceLoader loader, string wordFiles, bool ignoreCase) { - assureMatchVersion(); - IList files = splitFileNames(wordFiles); + AssureMatchVersion(); + IEnumerable files = SplitFileNames(wordFiles); CharArraySet words = null; - if (files.Count > 0) + if (files.Count() > 0) { // default stopwords list has 35 or so words, but maybe don't make it that // big to start - words = new CharArraySet(luceneMatchVersion, files.Count * 10, ignoreCase); + words = new CharArraySet(luceneMatchVersion, files.Count() * 10, ignoreCase); foreach (string file in files) { - InputStream stream = null; - TextReader reader = null; - try - { - stream = loader.openResource(file.Trim()); - CharsetDecoder decoder = StandardCharsets.UTF_8.newDecoder().onMalformedInput(CodingErrorAction.REPORT).onUnmappableCharacter(CodingErrorAction.REPORT); - reader = new InputStreamReader(stream, decoder); - WordlistLoader.getSnowballWordSet(reader, words); - } - finally + using (Stream stream = loader.OpenResource(file.Trim())) { - IOUtils.closeWhileHandlingException(reader, stream); + using (TextReader reader = new StreamReader(stream, Encoding.UTF8)) + { + WordlistLoader.GetSnowballWordSet(reader, words); + } } } } @@ -352,17 +356,17 @@ protected internal CharArraySet getSnowballWordSet(ResourceLoader loader, string /// /// the string containing file names /// a list of file names with the escaping backslashed removed - protected internal IList splitFileNames(string fileNames) + protected internal IEnumerable SplitFileNames(string fileNames) { if (fileNames == null) { - return System.Linq.Enumerable.Empty(); + return Enumerable.Empty(); } IList result = new List(); - foreach (string file in fileNames.Split("(? - /// Helper class for loading named SPIs from classpath (e.g. Tokenizers, TokenStreams). - /// @lucene.internal - /// - internal sealed class AnalysisSPILoader where S : AbstractAnalysisFactory - { + /// Helper class for loading named SPIs from classpath (e.g. Tokenizers, TokenStreams). + /// @lucene.internal + /// + internal sealed class AnalysisSPILoader where S : AbstractAnalysisFactory + { - private volatile IDictionary services = Collections.emptyMap(); - private readonly Type clazz; - private readonly string[] suffixes; + private volatile IDictionary services = CollectionsHelper.EmptyMap(); + private readonly Type clazz; + private readonly string[] suffixes; - public AnalysisSPILoader(Type clazz) : this(clazz, new string[] {clazz.SimpleName}) - { - } + public AnalysisSPILoader(Type clazz) + : this(clazz, new string[] { clazz.Name }) + { + } - public AnalysisSPILoader(Type clazz, ClassLoader loader) : this(clazz, new string[] {clazz.SimpleName}, loader) - { - } + public AnalysisSPILoader(Type clazz, string[] suffixes) + { + this.clazz = clazz; + this.suffixes = suffixes; - public AnalysisSPILoader(Type clazz, string[] suffixes) : this(clazz, suffixes, Thread.CurrentThread.ContextClassLoader) - { - } + Reload(); + } - public AnalysisSPILoader(Type clazz, string[] suffixes, ClassLoader classloader) - { - this.clazz = clazz; - this.suffixes = suffixes; - // if clazz' classloader is not a parent of the given one, we scan clazz's classloader, too: -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final ClassLoader clazzClassloader = clazz.getClassLoader(); - ClassLoader clazzClassloader = clazz.ClassLoader; - if (clazzClassloader != null && !SPIClassIterator.isParentClassLoader(clazzClassloader, classloader)) - { - reload(clazzClassloader); - } - reload(classloader); - } + /// + /// Reloads the internal SPI list from the given . + /// Changes to the service list are visible after the method ends, all + /// iterators (,...) stay consistent. + /// + ///

NOTE: Only new service providers are added, existing ones are + /// never removed or replaced. + /// + ///

this method is expensive and should only be called for discovery + /// of new service providers on the given classpath/classloader! + ///

+ public void Reload() + { + lock (this) + { + IDictionary services = new Dictionary(this.services); + SPIClassIterator loader = SPIClassIterator.Get(); - /// - /// Reloads the internal SPI list from the given . - /// Changes to the service list are visible after the method ends, all - /// iterators (e.g., from ,...) stay consistent. - /// - /// NOTE: Only new service providers are added, existing ones are - /// never removed or replaced. - /// - /// - /// This method is expensive and should only be called for discovery - /// of new service providers on the given classpath/classloader! - /// - /// - public void reload(ClassLoader classloader) - { - lock (this) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final java.util.LinkedHashMap services = new java.util.LinkedHashMap<>(this.services); - LinkedHashMap services = new LinkedHashMap(this.services); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.util.SPIClassIterator loader = org.apache.lucene.util.SPIClassIterator.get(clazz, classloader); - SPIClassIterator loader = SPIClassIterator.get(clazz, classloader); - while (loader.hasNext()) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final Class service = loader.next(); - Type service = loader.next(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String clazzName = service.getSimpleName(); - string clazzName = service.SimpleName; - string name = null; - foreach (string suffix in suffixes) - { - if (clazzName.EndsWith(suffix, StringComparison.Ordinal)) - { - name = clazzName.Substring(0, clazzName.Length - suffix.Length).ToLower(Locale.ROOT); - break; - } - } - if (name == null) - { - throw new ServiceConfigurationError("The class name " + service.Name + " has wrong suffix, allowed are: " + Arrays.ToString(suffixes)); - } - // only add the first one for each name, later services will be ignored - // this allows to place services before others in classpath to make - // them used instead of others - // - // TODO: Should we disallow duplicate names here? - // Allowing it may get confusing on collisions, as different packages - // could contain same factory class, which is a naming bug! - // When changing this be careful to allow reload()! - if (!services.containsKey(name)) - { - services.put(name, service); - } - } - this.services = Collections.unmodifiableMap(services); - } - } + foreach (var service in loader) + { + string clazzName = service.Name; + string name = null; + foreach (string suffix in suffixes) + { + if (clazzName.EndsWith(suffix)) + { + name = clazzName.Substring(0, clazzName.Length - suffix.Length).ToLowerInvariant(); + break; + } + } - public S newInstance(string name, IDictionary args) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final Class service = lookupClass(name); - Type service = lookupClass(name); - try - { - return service.getConstructor(typeof(IDictionary)).newInstance(args); - } - catch (Exception e) - { - throw new System.ArgumentException("SPI class of type " + clazz.Name + " with name '" + name + "' cannot be instantiated. " + "This is likely due to a misconfiguration of the java class '" + service.Name + "': ", e); - } - } + if (name == null) + { + throw new InvalidOperationException("The class name " + service.Name + + " has wrong suffix, allowed are: " + Arrays.ToString(suffixes)); + } + // only add the first one for each name, later services will be ignored + // this allows to place services before others in classpath to make + // them used instead of others + // + // LUCENETODO: Should we disallow duplicate names here? + // Allowing it may get confusing on collisions, as different packages + // could contain same factory class, which is a naming bug! + // When changing this be careful to allow reload()! + if (!services.ContainsKey(name)) + { + services.Add(name, service); + } + } + this.services = CollectionsHelper.UnmodifiableMap(services); + } + } - public Type lookupClass(string name) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final Class service = services.get(name.toLowerCase(java.util.Locale.ROOT)); - Type service = services[name.ToLower(Locale.ROOT)]; - if (service != null) - { - return service; - } - else - { - throw new System.ArgumentException("A SPI class of type " + clazz.Name + " with name '" + name + "' does not exist. " + "You need to add the corresponding JAR file supporting this SPI to your classpath. " + "The current classpath supports the following names: " + availableServices()); - } - } + public S NewInstance(string name, IDictionary args) + { + Type service = LookupClass(name); + try + { + return (S)Activator.CreateInstance(clazz, + BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, + null, new object[] { args }, CultureInfo.InvariantCulture); + } + catch (Exception e) + { + throw new System.ArgumentException("SPI class of type " + clazz.Name + " with name '" + name + "' cannot be instantiated. " + + "This is likely due to a missing reference of the .NET Assembly containing the class '" + service.Name + "' in your project or AppDomain: ", e); + } + } - public HashSet availableServices() - { - return services.Keys; - } - } + public Type LookupClass(string name) + { + Type service; + if (this.services.TryGetValue(name.ToLowerInvariant(), out service)) + { + return service; + } + else + { + throw new System.ArgumentException("A SPI class of type " + clazz.Name + " with name '" + name + "' does not exist. " + + "You need to add the corresponding reference supporting this SPI to your project or AppDomain. " + + "The current classpath supports the following names: " + Arrays.ToString(AvailableServices)); + } + } + public IEnumerable AvailableServices + { + get { return services.Keys; } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharFilterFactory.cs index e2f5b0a1cc..75595892fb 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharFilterFactory.cs @@ -1,86 +1,84 @@ using System; using System.Collections.Generic; -using Lucene.Net.Analysis.Util; +using System.IO; -namespace org.apache.lucene.analysis.util +namespace Lucene.Net.Analysis.Util { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ + /// + /// Abstract parent class for analysis factories that create + /// instances. + /// + public abstract class CharFilterFactory : AbstractAnalysisFactory + { + private static readonly AnalysisSPILoader loader = new AnalysisSPILoader(typeof(CharFilterFactory)); - /// - /// Abstract parent class for analysis factories that create - /// instances. - /// - public abstract class CharFilterFactory : AbstractAnalysisFactory - { + /// + /// looks up a charfilter by name from context classpath + public static CharFilterFactory ForName(string name, IDictionary args) + { + return loader.NewInstance(name, args); + } - private static readonly AnalysisSPILoader loader = new AnalysisSPILoader(typeof(CharFilterFactory)); + /// + /// looks up a charfilter class by name from context classpath + public static Type LookupClass(string name) + { + return loader.LookupClass(name); + } - /// - /// looks up a charfilter by name from context classpath - public static CharFilterFactory forName(string name, IDictionary args) - { - return loader.newInstance(name, args); - } + /// + /// returns a list of all available charfilter names + public static IEnumerable AvailableCharFilters + { + get { return loader.AvailableServices; } + } - /// - /// looks up a charfilter class by name from context classpath - public static Type lookupClass(string name) - { - return loader.lookupClass(name); - } + /// + /// Reloads the factory list from the given . + /// Changes to the factories are visible after the method ends, all + /// iterators (,...) stay consistent. + /// + /// NOTE: Only new factories are added, existing ones are + /// never removed or replaced. + /// + /// + /// This method is expensive and should only be called for discovery + /// of new factories on the given classpath/classloader! + /// + /// + public static void ReloadCharFilters() + { + loader.Reload(); + } - /// - /// returns a list of all available charfilter names - public static HashSet availableCharFilters() - { - return loader.availableServices(); - } - - /// - /// Reloads the factory list from the given . - /// Changes to the factories are visible after the method ends, all - /// iterators (,...) stay consistent. - /// - /// NOTE: Only new factories are added, existing ones are - /// never removed or replaced. - /// - /// - /// This method is expensive and should only be called for discovery - /// of new factories on the given classpath/classloader! - /// - /// - public static void reloadCharFilters(ClassLoader classloader) - { - loader.reload(classloader); - } - - /// - /// Initialize this factory via a set of key-value pairs. - /// - protected internal CharFilterFactory(IDictionary args) : base(args) - { - } - - /// - /// Wraps the given Reader with a CharFilter. - public abstract Reader create(Reader input); - } + /// + /// Initialize this factory via a set of key-value pairs. + /// + protected internal CharFilterFactory(IDictionary args) + : base(args) + { + } + /// + /// Wraps the given Reader with a CharFilter. + public abstract TextReader Create(TextReader input); + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharTokenizer.cs index 37b1921546..abb8e2fbe9 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharTokenizer.cs @@ -6,7 +6,6 @@ namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -23,6 +22,7 @@ namespace Lucene.Net.Analysis.Util * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// An abstract base class for simple, character-oriented tokenizers. /// @@ -76,10 +76,7 @@ public abstract class CharTokenizer : Tokenizer protected CharTokenizer(LuceneVersion matchVersion, TextReader input) : base(input) { - termAtt = AddAttribute(); - offsetAtt = AddAttribute(); - - charUtils = CharacterUtils.GetInstance(matchVersion); + Init(matchVersion); } /// @@ -95,17 +92,29 @@ protected CharTokenizer(LuceneVersion matchVersion, AttributeFactory factory, Te : base(factory, input) { _input = input; + Init(matchVersion); + } + + /// + /// Added in the .NET version to assist with setting the attributes + /// from multiple constructors. + /// + /// + private void Init(LuceneVersion matchVersion) + { charUtils = CharacterUtils.GetInstance(matchVersion); + termAtt = AddAttribute(); + offsetAtt = AddAttribute(); } private int offset = 0, bufferIndex = 0, dataLen = 0, finalOffset = 0; private const int MAX_WORD_LEN = 255; private const int IO_BUFFER_SIZE = 4096; - private readonly ICharTermAttribute termAtt; - private readonly IOffsetAttribute offsetAtt; + private ICharTermAttribute termAtt; + private IOffsetAttribute offsetAtt; - private readonly CharacterUtils charUtils; + private CharacterUtils charUtils; private readonly CharacterUtils.CharacterBuffer ioBuffer = CharacterUtils.NewCharacterBuffer(IO_BUFFER_SIZE); /// @@ -126,7 +135,7 @@ protected virtual int Normalize(int c) return c; } - public override bool IncrementToken() + public override sealed bool IncrementToken() { ClearAttributes(); int length = 0; @@ -191,7 +200,7 @@ public override bool IncrementToken() return true; } - public override void End() + public override sealed void End() { base.End(); // set final offset diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs index 8ead1fb158..58d89c6502 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs @@ -1,102 +1,98 @@ using System; using System.IO; -using System.Threading; +using System.Reflection; namespace Lucene.Net.Analysis.Util { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ + /// + /// Simple that uses + /// and to open resources and + /// classes, respectively. + /// + public sealed class ClasspathResourceLoader : IResourceLoader + { + // NOTE: This class was refactored significantly from its Java counterpart. + // It is basically just a wrapper around the System.Assembly type. + private readonly Assembly assembly; - /// - /// Simple that uses - /// and to open resources and - /// classes, respectively. - /// - public sealed class ClasspathResourceLoader : ResourceLoader - { - private readonly Type clazz; - private readonly ClassLoader loader; + /// + /// Creates an instance using the current Executing Assembly to load Resources and classes. + /// Resource paths must be absolute. + /// + public ClasspathResourceLoader() + : this(Assembly.GetExecutingAssembly()) + { + } - /// - /// Creates an instance using the context classloader to load Resources and classes. - /// Resource paths must be absolute. - /// - public ClasspathResourceLoader() : this(Thread.CurrentThread.ContextClassLoader) - { - } + /// + /// Creates an instance using the System.Assembly of the given class to load Resources and classes + /// Resource paths must be absolute. + /// + public ClasspathResourceLoader(Type clazz) + : this(clazz.Assembly) + { + } - /// - /// Creates an instance using the given classloader to load Resources and classes. - /// Resource paths must be absolute. - /// - public ClasspathResourceLoader(ClassLoader loader) : this(null, loader) - { - } + /// + /// Creates an instance using the given System.Assembly to load Resources and classes + /// Resource paths must be absolute. + /// + public ClasspathResourceLoader(Assembly assembly) + { + this.assembly = assembly; + } - /// - /// Creates an instance using the context classloader to load Resources and classes - /// Resources are resolved relative to the given class, if path is not absolute. - /// - public ClasspathResourceLoader(Type clazz) : this(clazz, clazz.ClassLoader) - { - } + public Stream OpenResource(string resource) + { + Stream stream = this.assembly.GetManifestResourceStream(resource); + if (stream == null) + { + throw new IOException("Resource not found: " + resource); + } + return stream; + } - private ClasspathResourceLoader(Type clazz, ClassLoader loader) - { - this.clazz = clazz; - this.loader = loader; - } - - public Stream openResource(string resource) - { - Stream stream = (clazz != null) ? clazz.getResourceAsStream(resource) : loader.getResourceAsStream(resource); - if (stream == null) - { - throw new IOException("Resource not found: " + resource); - } - return stream; - } - - public Type findClass(string cname, Type expectedType) - { - try - { - return Type.GetType(cname, true, loader).asSubclass(expectedType); - } - catch (Exception e) - { - throw new Exception("Cannot load class: " + cname, e); - } - } - - public T newInstance(string cname, Type expectedType) - { - Type clazz = findClass(cname, expectedType); - try - { - return clazz.newInstance(); - } - catch (Exception e) - { - throw new Exception("Cannot create instance: " + cname, e); - } - } - } + public Type FindClass(string cname) + { + try + { + return this.assembly.GetType(cname, true); + } + catch (Exception e) + { + throw new Exception("Cannot load class: " + cname, e); + } + } + public T NewInstance(string cname) + { + Type clazz = FindClass(cname); + try + { + return (T)Activator.CreateInstance(clazz); + } + catch (Exception e) + { + throw new Exception("Cannot create instance: " + cname, e); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/MultiTermAwareComponent.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/MultiTermAwareComponent.cs index fda0459f90..7ea6673415 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/MultiTermAwareComponent.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/MultiTermAwareComponent.cs @@ -1,6 +1,5 @@ namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -25,7 +24,7 @@ /// /// @lucene.experimental /// - public interface MultiTermAwareComponent + public interface IMultiTermAwareComponent { /// /// Returns an analysis component to handle analysis if multi-term queries. diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/ResourceLoader.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/ResourceLoader.cs index 4d95bc057f..301a3d3f52 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/ResourceLoader.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/ResourceLoader.cs @@ -3,7 +3,6 @@ namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -21,28 +20,25 @@ namespace Lucene.Net.Analysis.Util * limitations under the License. */ - /// /// Abstraction for loading resources (streams, files, and classes). /// - public interface ResourceLoader + public interface IResourceLoader { - /// /// Opens a named resource /// Stream OpenResource(string resource); - /// - /// Finds class of the name and expected type + /// Finds class of the name /// - Type FindClass(string cname, Type expectedType); + Type FindClass(string cname); /// /// Creates an instance of the name and expected type /// // TODO: fix exception handling - T NewInstance(string cname, Type expectedType); + T NewInstance(string cname); } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/ResourceLoaderAware.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/ResourceLoaderAware.cs index 23a4ad509c..6f129088e5 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/ResourceLoaderAware.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/ResourceLoaderAware.cs @@ -1,35 +1,33 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Lucene.Net.Analysis.Util +namespace Lucene.Net.Analysis.Util { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ /// /// Interface for a component that needs to be initialized by /// an implementation of . /// /// - public interface ResourceLoaderAware + public interface IResourceLoaderAware { - /// /// Initializes this component with the provided ResourceLoader /// (used for loading classes, files, etc). /// - void Inform(ResourceLoader loader); + void Inform(IResourceLoader loader); } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/TokenFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/TokenFilterFactory.cs index 21f2ce3c25..01c0df8a0a 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/TokenFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/TokenFilterFactory.cs @@ -3,7 +3,6 @@ namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -21,35 +20,33 @@ namespace Lucene.Net.Analysis.Util * limitations under the License. */ - /// /// Abstract parent class for analysis factories that create /// instances. /// public abstract class TokenFilterFactory : AbstractAnalysisFactory { - private static readonly AnalysisSPILoader loader = new AnalysisSPILoader(typeof(TokenFilterFactory), new string[] { "TokenFilterFactory", "FilterFactory" }); /// /// looks up a tokenfilter by name from context classpath - public static TokenFilterFactory forName(string name, IDictionary args) + public static TokenFilterFactory ForName(string name, IDictionary args) { - return loader.newInstance(name, args); + return loader.NewInstance(name, args); } /// /// looks up a tokenfilter class by name from context classpath - public static Type lookupClass(string name) + public static Type LookupClass(string name) { - return loader.lookupClass(name); + return loader.LookupClass(name); } /// /// returns a list of all available tokenfilter names from context classpath - public static HashSet availableTokenFilters() + public static IEnumerable AvailableTokenFilters { - return loader.availableServices(); + get { return loader.AvailableServices; } } /// @@ -65,9 +62,9 @@ public static HashSet availableTokenFilters() /// of new factories on the given classpath/classloader! /// /// - public static void ReloadTokenFilters(ClassLoader classloader) + public static void ReloadTokenFilters() { - loader.reload(classloader); + loader.Reload(); } /// diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/TokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/TokenizerFactory.cs index d00b9726f6..c5ffd12b69 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/TokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/TokenizerFactory.cs @@ -5,7 +5,6 @@ namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -22,6 +21,7 @@ namespace Lucene.Net.Analysis.Util * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Abstract parent class for analysis factories that create /// instances. @@ -35,21 +35,21 @@ public abstract class TokenizerFactory : AbstractAnalysisFactory /// looks up a tokenizer by name from context classpath public static TokenizerFactory ForName(string name, IDictionary args) { - return loader.newInstance(name, args); + return loader.NewInstance(name, args); } /// /// looks up a tokenizer class by name from context classpath public static Type LookupClass(string name) { - return loader.lookupClass(name); + return loader.LookupClass(name); } /// /// returns a list of all available tokenizer names from context classpath - public static HashSet AvailableTokenizers() + public static IEnumerable AvailableTokenizers { - return loader.availableServices(); + get { return loader.AvailableServices; } } /// @@ -65,9 +65,9 @@ public static HashSet AvailableTokenizers() /// of new factories on the given classpath/classloader! /// /// - public static void ReloadTokenizers(ClassLoader classloader) + public static void ReloadTokenizers() { - loader.reload(classloader); + loader.Reload(); } /// diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index ae07f6c71d..3b51767a4c 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -47,13 +47,19 @@ + + + + + + @@ -65,9 +71,46 @@ + + Code + + + Code + + + Code + + + Code + + + Code + + + + + Code + + + + Code + + + + + Code + + + Code + + + + + + @@ -84,6 +127,8 @@ + + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Standard/TestStandardFactories.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Standard/TestStandardFactories.cs index c6f2e09262..95c10d0ca7 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Standard/TestStandardFactories.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Standard/TestStandardFactories.cs @@ -1,249 +1,237 @@ using System.Text; +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System.IO; +using Reader = System.IO.TextReader; -namespace org.apache.lucene.analysis.standard +namespace Lucene.Net.Analysis.Standard { - - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - - /// - /// Simple tests to ensure the standard lucene factories are working. - /// - public class TestStandardFactories : BaseTokenStreamFactoryTestCase - { - /// - /// Test StandardTokenizerFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStandardTokenizer() throws Exception - public virtual void testStandardTokenizer() - { - Reader reader = new StringReader("Wha\u0301t's this thing do?"); - TokenStream stream = tokenizerFactory("Standard").create(reader); - assertTokenStreamContents(stream, new string[] {"Wha\u0301t's", "this", "thing", "do"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStandardTokenizerMaxTokenLength() throws Exception - public virtual void testStandardTokenizerMaxTokenLength() - { - StringBuilder builder = new StringBuilder(); - for (int i = 0 ; i < 100 ; ++i) - { - builder.Append("abcdefg"); // 7 * 100 = 700 char "word" - } - string longWord = builder.ToString(); - string content = "one two three " + longWord + " four five six"; - Reader reader = new StringReader(content); - Tokenizer stream = tokenizerFactory("Standard", "maxTokenLength", "1000").create(reader); - assertTokenStreamContents(stream, new string[] {"one", "two", "three", longWord, "four", "five", "six"}); - } - - /// - /// Test ClassicTokenizerFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testClassicTokenizer() throws Exception - public virtual void testClassicTokenizer() - { - Reader reader = new StringReader("What's this thing do?"); - TokenStream stream = tokenizerFactory("Classic").create(reader); - assertTokenStreamContents(stream, new string[] {"What's", "this", "thing", "do"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testClassicTokenizerMaxTokenLength() throws Exception - public virtual void testClassicTokenizerMaxTokenLength() - { - StringBuilder builder = new StringBuilder(); - for (int i = 0 ; i < 100 ; ++i) - { - builder.Append("abcdefg"); // 7 * 100 = 700 char "word" - } - string longWord = builder.ToString(); - string content = "one two three " + longWord + " four five six"; - Reader reader = new StringReader(content); - Tokenizer stream = tokenizerFactory("Classic", "maxTokenLength", "1000").create(reader); - assertTokenStreamContents(stream, new string[] {"one", "two", "three", longWord, "four", "five", "six"}); - } - - /// - /// Test ClassicFilterFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStandardFilter() throws Exception - public virtual void testStandardFilter() - { - Reader reader = new StringReader("What's this thing do?"); - TokenStream stream = tokenizerFactory("Classic").create(reader); - stream = tokenFilterFactory("Classic").create(stream); - assertTokenStreamContents(stream, new string[] {"What", "this", "thing", "do"}); - } - - /// - /// Test KeywordTokenizerFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testKeywordTokenizer() throws Exception - public virtual void testKeywordTokenizer() - { - Reader reader = new StringReader("What's this thing do?"); - TokenStream stream = tokenizerFactory("Keyword").create(reader); - assertTokenStreamContents(stream, new string[] {"What's this thing do?"}); - } - - /// - /// Test WhitespaceTokenizerFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testWhitespaceTokenizer() throws Exception - public virtual void testWhitespaceTokenizer() - { - Reader reader = new StringReader("What's this thing do?"); - TokenStream stream = tokenizerFactory("Whitespace").create(reader); - assertTokenStreamContents(stream, new string[] {"What's", "this", "thing", "do?"}); - } - - /// - /// Test LetterTokenizerFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLetterTokenizer() throws Exception - public virtual void testLetterTokenizer() - { - Reader reader = new StringReader("What's this thing do?"); - TokenStream stream = tokenizerFactory("Letter").create(reader); - assertTokenStreamContents(stream, new string[] {"What", "s", "this", "thing", "do"}); - } - - /// - /// Test LowerCaseTokenizerFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLowerCaseTokenizer() throws Exception - public virtual void testLowerCaseTokenizer() - { - Reader reader = new StringReader("What's this thing do?"); - TokenStream stream = tokenizerFactory("LowerCase").create(reader); - assertTokenStreamContents(stream, new string[] {"what", "s", "this", "thing", "do"}); - } - - /// - /// Ensure the ASCIIFoldingFilterFactory works - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testASCIIFolding() throws Exception - public virtual void testASCIIFolding() - { - Reader reader = new StringReader("Česká"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("ASCIIFolding").create(stream); - assertTokenStreamContents(stream, new string[] {"Ceska"}); - } - - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenizerFactory("Standard", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenizerFactory("Classic", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenizerFactory("Whitespace", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenizerFactory("Letter", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenizerFactory("LowerCase", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenFilterFactory("ASCIIFolding", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenFilterFactory("Standard", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenFilterFactory("Classic", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// Simple tests to ensure the standard lucene factories are working. + /// + public class TestStandardFactories : BaseTokenStreamFactoryTestCase + { + /// + /// Test StandardTokenizerFactory + /// + [Test] + public virtual void TestStandardTokenizer() + { + Reader reader = new StringReader("Wha\u0301t's this thing do?"); + TokenStream stream = TokenizerFactory("Standard").Create(reader); + AssertTokenStreamContents(stream, new string[] { "Wha\u0301t's", "this", "thing", "do" }); + } + + [Test] + public virtual void TestStandardTokenizerMaxTokenLength() + { + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < 100; ++i) + { + builder.Append("abcdefg"); // 7 * 100 = 700 char "word" + } + string longWord = builder.ToString(); + string content = "one two three " + longWord + " four five six"; + Reader reader = new StringReader(content); + Tokenizer stream = TokenizerFactory("Standard", "maxTokenLength", "1000").Create(reader); + AssertTokenStreamContents(stream, new string[] { "one", "two", "three", longWord, "four", "five", "six" }); + } + + /// + /// Test ClassicTokenizerFactory + /// + [Test] + public virtual void TestClassicTokenizer() + { + Reader reader = new StringReader("What's this thing do?"); + TokenStream stream = TokenizerFactory("Classic").Create(reader); + AssertTokenStreamContents(stream, new string[] { "What's", "this", "thing", "do" }); + } + + [Test] + public virtual void TestClassicTokenizerMaxTokenLength() + { + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < 100; ++i) + { + builder.Append("abcdefg"); // 7 * 100 = 700 char "word" + } + string longWord = builder.ToString(); + string content = "one two three " + longWord + " four five six"; + Reader reader = new StringReader(content); + Tokenizer stream = TokenizerFactory("Classic", "maxTokenLength", "1000").Create(reader); + AssertTokenStreamContents(stream, new string[] { "one", "two", "three", longWord, "four", "five", "six" }); + } + + /// + /// Test ClassicFilterFactory + /// + [Test] + public virtual void TestStandardFilter() + { + Reader reader = new StringReader("What's this thing do?"); + TokenStream stream = TokenizerFactory("Classic").Create(reader); + stream = TokenFilterFactory("Classic").Create(stream); + AssertTokenStreamContents(stream, new string[] { "What", "this", "thing", "do" }); + } + + /// + /// Test KeywordTokenizerFactory + /// + [Test] + public virtual void TestKeywordTokenizer() + { + Reader reader = new StringReader("What's this thing do?"); + TokenStream stream = TokenizerFactory("Keyword").Create(reader); + AssertTokenStreamContents(stream, new string[] { "What's this thing do?" }); + } + + /// + /// Test WhitespaceTokenizerFactory + /// + [Test] + public virtual void TestWhitespaceTokenizer() + { + Reader reader = new StringReader("What's this thing do?"); + TokenStream stream = TokenizerFactory("Whitespace").Create(reader); + AssertTokenStreamContents(stream, new string[] { "What's", "this", "thing", "do?" }); + } + + /// + /// Test LetterTokenizerFactory + /// + [Test] + public virtual void TestLetterTokenizer() + { + Reader reader = new StringReader("What's this thing do?"); + TokenStream stream = TokenizerFactory("Letter").Create(reader); + AssertTokenStreamContents(stream, new string[] { "What", "s", "this", "thing", "do" }); + } + + /// + /// Test LowerCaseTokenizerFactory + /// + [Test] + public virtual void TestLowerCaseTokenizer() + { + Reader reader = new StringReader("What's this thing do?"); + TokenStream stream = TokenizerFactory("LowerCase").Create(reader); + AssertTokenStreamContents(stream, new string[] { "what", "s", "this", "thing", "do" }); + } + + /// + /// Ensure the ASCIIFoldingFilterFactory works + /// + [Test] + public virtual void TestASCIIFolding() + { + Reader reader = new StringReader("Česká"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("ASCIIFolding").Create(stream); + AssertTokenStreamContents(stream, new string[] { "Ceska" }); + } + + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenizerFactory("Standard", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenizerFactory("Classic", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenizerFactory("Whitespace", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenizerFactory("Letter", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenizerFactory("LowerCase", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenFilterFactory("ASCIIFolding", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenFilterFactory("Standard", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenFilterFactory("Classic", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/BaseTokenStreamFactoryTestCase.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/BaseTokenStreamFactoryTestCase.cs index 483eef27fb..3789309fc2 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/BaseTokenStreamFactoryTestCase.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/BaseTokenStreamFactoryTestCase.cs @@ -1,186 +1,180 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Reflection; +using Lucene.Net.Util; +using Version = Lucene.Net.Util.LuceneVersion; -namespace org.apache.lucene.analysis.util +namespace Lucene.Net.Analysis.Util { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ + /// + /// Base class for testing tokenstream factories. + /// + /// Example usage: + ///
+    ///   Reader reader = new StringReader("Some Text to Analyze");
+    ///   reader = charFilterFactory("htmlstrip").create(reader);
+    ///   TokenStream stream = tokenizerFactory("standard").create(reader);
+    ///   stream = tokenFilterFactory("lowercase").create(stream);
+    ///   stream = tokenFilterFactory("asciifolding").create(stream);
+    ///   assertTokenStreamContents(stream, new String[] { "some", "text", "to", "analyze" });
+    /// 
+ ///
+ ///
+ // TODO: this has to be here, since the abstract factories are not in lucene-core, + // so test-framework doesnt know about them... + // this also means we currently cannot use this in other analysis modules :( + // TODO: maybe after we improve the abstract factory/SPI apis, they can sit in core and resolve this. + public abstract class BaseTokenStreamFactoryTestCase : BaseTokenStreamTestCase + { + private AbstractAnalysisFactory AnalysisFactory(Type clazz, Version matchVersion, IResourceLoader loader, params string[] keysAndValues) + { + if (keysAndValues.Length % 2 == 1) + { + throw new System.ArgumentException("invalid keysAndValues map"); + } + IDictionary args = new Dictionary(); + for (int i = 0; i < keysAndValues.Length; i += 2) + { + string previous; + if (args.TryGetValue(keysAndValues[i], out previous)) + { + fail("duplicate values for key: " + keysAndValues[i]); + } + args[keysAndValues[i]] = keysAndValues[i + 1]; + + } + if (matchVersion != null) + { + string previous; + if (args.TryGetValue("luceneMatchVersion", out previous)) + { + fail("duplicate values for key: luceneMatchVersion"); + } + args["luceneMatchVersion"] = matchVersion.ToString(); + } - using Version = org.apache.lucene.util.Version; + AbstractAnalysisFactory factory = null; + try + { + factory = (AbstractAnalysisFactory)Activator.CreateInstance(clazz, + BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, + null, new object[] { args }, CultureInfo.InvariantCulture); + } + catch (TargetInvocationException e) + { + // to simplify tests that check for illegal parameters + if (e.InnerException is System.ArgumentException) + { + throw (System.ArgumentException)e.InnerException; + } + else + { + throw e; + } + } + if (factory is IResourceLoaderAware) + { + ((IResourceLoaderAware)factory).Inform(loader); + } + return factory; + } - /// - /// Base class for testing tokenstream factories. - /// - /// Example usage: - ///
-	///   Reader reader = new StringReader("Some Text to Analyze");
-	///   reader = charFilterFactory("htmlstrip").create(reader);
-	///   TokenStream stream = tokenizerFactory("standard").create(reader);
-	///   stream = tokenFilterFactory("lowercase").create(stream);
-	///   stream = tokenFilterFactory("asciifolding").create(stream);
-	///   assertTokenStreamContents(stream, new String[] { "some", "text", "to", "analyze" });
-	/// 
- ///
- ///
- // TODO: this has to be here, since the abstract factories are not in lucene-core, - // so test-framework doesnt know about them... - // this also means we currently cannot use this in other analysis modules :( - // TODO: maybe after we improve the abstract factory/SPI apis, they can sit in core and resolve this. - public abstract class BaseTokenStreamFactoryTestCase : BaseTokenStreamTestCase - { + /// + /// Returns a fully initialized TokenizerFactory with the specified name and key-value arguments. + /// is used for loading resources, so any required ones should + /// be on the test classpath. + /// + protected internal virtual TokenizerFactory TokenizerFactory(string name, params string[] keysAndValues) + { + return TokenizerFactory(name, TEST_VERSION_CURRENT, keysAndValues); + } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private AbstractAnalysisFactory analysisFactory(Class clazz, org.apache.lucene.util.Version matchVersion, ResourceLoader loader, String... keysAndValues) throws Exception - private AbstractAnalysisFactory analysisFactory(Type clazz, Version matchVersion, ResourceLoader loader, params string[] keysAndValues) where T1 : AbstractAnalysisFactory - { - if (keysAndValues.Length % 2 == 1) - { - throw new System.ArgumentException("invalid keysAndValues map"); - } - IDictionary args = new Dictionary(); - for (int i = 0; i < keysAndValues.Length; i += 2) - { - string previous = args[keysAndValues[i]] = keysAndValues[i + 1]; - assertNull("duplicate values for key: " + keysAndValues[i], previous); - } - if (matchVersion != null) - { - string previous = args["luceneMatchVersion"] = matchVersion.ToString(); - assertNull("duplicate values for key: luceneMatchVersion", previous); - } - AbstractAnalysisFactory factory = null; - try - { - factory = clazz.GetConstructor(typeof(IDictionary)).newInstance(args); - } - catch (InvocationTargetException e) - { - // to simplify tests that check for illegal parameters - if (e.InnerException is System.ArgumentException) - { - throw (System.ArgumentException) e.InnerException; - } - else - { - throw e; - } - } - if (factory is ResourceLoaderAware) - { - ((ResourceLoaderAware) factory).inform(loader); - } - return factory; - } + /// + /// Returns a fully initialized TokenizerFactory with the specified name and key-value arguments. + /// is used for loading resources, so any required ones should + /// be on the test classpath. + /// + protected internal virtual TokenizerFactory TokenizerFactory(string name, Version version, params string[] keysAndValues) + { + return TokenizerFactory(name, version, new ClasspathResourceLoader(this.GetType()), keysAndValues); + } - /// - /// Returns a fully initialized TokenizerFactory with the specified name and key-value arguments. - /// is used for loading resources, so any required ones should - /// be on the test classpath. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected TokenizerFactory tokenizerFactory(String name, String... keysAndValues) throws Exception - protected internal virtual TokenizerFactory tokenizerFactory(string name, params string[] keysAndValues) - { - return tokenizerFactory(name, TEST_VERSION_CURRENT, keysAndValues); - } + /// + /// Returns a fully initialized TokenizerFactory with the specified name, version, resource loader, + /// and key-value arguments. + /// + protected internal virtual TokenizerFactory TokenizerFactory(string name, Version matchVersion, IResourceLoader loader, params string[] keysAndValues) + { + return (TokenizerFactory)AnalysisFactory(Lucene.Net.Analysis.Util.TokenizerFactory.LookupClass(name), matchVersion, loader, keysAndValues); + } - /// - /// Returns a fully initialized TokenizerFactory with the specified name and key-value arguments. - /// is used for loading resources, so any required ones should - /// be on the test classpath. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected TokenizerFactory tokenizerFactory(String name, org.apache.lucene.util.Version version, String... keysAndValues) throws Exception - protected internal virtual TokenizerFactory tokenizerFactory(string name, Version version, params string[] keysAndValues) - { - return tokenizerFactory(name, version, new ClasspathResourceLoader(this.GetType()), keysAndValues); - } + /// + /// Returns a fully initialized TokenFilterFactory with the specified name and key-value arguments. + /// is used for loading resources, so any required ones should + /// be on the test classpath. + /// + protected internal virtual TokenFilterFactory TokenFilterFactory(string name, Version version, params string[] keysAndValues) + { + return TokenFilterFactory(name, version, new ClasspathResourceLoader(this.GetType()), keysAndValues); + } - /// - /// Returns a fully initialized TokenizerFactory with the specified name, version, resource loader, - /// and key-value arguments. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected TokenizerFactory tokenizerFactory(String name, org.apache.lucene.util.Version matchVersion, ResourceLoader loader, String... keysAndValues) throws Exception - protected internal virtual TokenizerFactory tokenizerFactory(string name, Version matchVersion, ResourceLoader loader, params string[] keysAndValues) - { - return (TokenizerFactory) analysisFactory(TokenizerFactory.lookupClass(name), matchVersion, loader, keysAndValues); - } + /// + /// Returns a fully initialized TokenFilterFactory with the specified name and key-value arguments. + /// is used for loading resources, so any required ones should + /// be on the test classpath. + /// + protected internal virtual TokenFilterFactory TokenFilterFactory(string name, params string[] keysAndValues) + { + return TokenFilterFactory(name, TEST_VERSION_CURRENT, keysAndValues); + } - /// - /// Returns a fully initialized TokenFilterFactory with the specified name and key-value arguments. - /// is used for loading resources, so any required ones should - /// be on the test classpath. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected TokenFilterFactory tokenFilterFactory(String name, org.apache.lucene.util.Version version, String... keysAndValues) throws Exception - protected internal virtual TokenFilterFactory tokenFilterFactory(string name, Version version, params string[] keysAndValues) - { - return tokenFilterFactory(name, version, new ClasspathResourceLoader(this.GetType()), keysAndValues); - } + /// + /// Returns a fully initialized TokenFilterFactory with the specified name, version, resource loader, + /// and key-value arguments. + /// + protected internal virtual TokenFilterFactory TokenFilterFactory(string name, Version matchVersion, IResourceLoader loader, params string[] keysAndValues) + { + return (TokenFilterFactory)AnalysisFactory(Lucene.Net.Analysis.Util.TokenFilterFactory.LookupClass(name), matchVersion, loader, keysAndValues); + } - /// - /// Returns a fully initialized TokenFilterFactory with the specified name and key-value arguments. - /// is used for loading resources, so any required ones should - /// be on the test classpath. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected TokenFilterFactory tokenFilterFactory(String name, String... keysAndValues) throws Exception - protected internal virtual TokenFilterFactory tokenFilterFactory(string name, params string[] keysAndValues) - { - return tokenFilterFactory(name, TEST_VERSION_CURRENT, keysAndValues); - } - - /// - /// Returns a fully initialized TokenFilterFactory with the specified name, version, resource loader, - /// and key-value arguments. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected TokenFilterFactory tokenFilterFactory(String name, org.apache.lucene.util.Version matchVersion, ResourceLoader loader, String... keysAndValues) throws Exception - protected internal virtual TokenFilterFactory tokenFilterFactory(string name, Version matchVersion, ResourceLoader loader, params string[] keysAndValues) - { - return (TokenFilterFactory) analysisFactory(TokenFilterFactory.lookupClass(name), matchVersion, loader, keysAndValues); - } - - /// - /// Returns a fully initialized CharFilterFactory with the specified name and key-value arguments. - /// is used for loading resources, so any required ones should - /// be on the test classpath. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected CharFilterFactory charFilterFactory(String name, String... keysAndValues) throws Exception - protected internal virtual CharFilterFactory charFilterFactory(string name, params string[] keysAndValues) - { - return charFilterFactory(name, TEST_VERSION_CURRENT, new ClasspathResourceLoader(this.GetType()), keysAndValues); - } - - /// - /// Returns a fully initialized CharFilterFactory with the specified name, version, resource loader, - /// and key-value arguments. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected CharFilterFactory charFilterFactory(String name, org.apache.lucene.util.Version matchVersion, ResourceLoader loader, String... keysAndValues) throws Exception - protected internal virtual CharFilterFactory charFilterFactory(string name, Version matchVersion, ResourceLoader loader, params string[] keysAndValues) - { - return (CharFilterFactory) analysisFactory(CharFilterFactory.lookupClass(name), matchVersion, loader, keysAndValues); - } - } + /// + /// Returns a fully initialized CharFilterFactory with the specified name and key-value arguments. + /// is used for loading resources, so any required ones should + /// be on the test classpath. + /// + protected internal virtual CharFilterFactory CharFilterFactory(string name, params string[] keysAndValues) + { + return CharFilterFactory(name, TEST_VERSION_CURRENT, new ClasspathResourceLoader(this.GetType()), keysAndValues); + } + /// + /// Returns a fully initialized CharFilterFactory with the specified name, version, resource loader, + /// and key-value arguments. + /// + protected internal virtual CharFilterFactory CharFilterFactory(string name, Version matchVersion, IResourceLoader loader, params string[] keysAndValues) + { + return (CharFilterFactory)AnalysisFactory(Lucene.Net.Analysis.Util.CharFilterFactory.LookupClass(name), matchVersion, loader, keysAndValues); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index a4f55a8000..80df274708 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -54,6 +54,8 @@ Code
+ + From 6b42627ca6bede6fb6fdc430a89f2ac72deb6a1b Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Fri, 5 Aug 2016 21:58:29 +0700 Subject: [PATCH 012/141] Ported URLEmailTokenizer classes and tests. --- .../Analysis/Standard/ClassicTokenizer.cs | 3 +- .../Analysis/Standard/ClassicTokenizerImpl.cs | 290 +- .../Analysis/Standard/StandardTokenizer.cs | 11 +- .../Standard/StandardTokenizerImpl.cs | 751 +- .../Standard/StandardTokenizerInterface.cs | 2 +- .../Std31/UAX29URLEmailTokenizerImpl31.cs | 3670 +++++++ .../Std34/UAX29URLEmailTokenizerImpl34.cs | 3797 +++++++ .../Std36/UAX29URLEmailTokenizerImpl36.cs | 4241 ++++++++ .../Std40/UAX29URLEmailTokenizerImpl40.cs | 4453 ++++++++ .../Standard/UAX29URLEmailAnalyzer.cs | 250 +- .../Standard/UAX29URLEmailTokenizer.cs | 438 +- .../Standard/UAX29URLEmailTokenizerFactory.cs | 113 +- .../Standard/UAX29URLEmailTokenizerImpl.cs | 9595 +++++++++++++++++ .../Lucene.Net.Analysis.Common.csproj | 14 + .../TestUAX29URLEmailTokenizerFactory.cs | 317 +- .../Lucene.Net.Tests.Analysis.Common.csproj | 3 + 16 files changed, 26846 insertions(+), 1102 deletions(-) create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/UAX29URLEmailTokenizerImpl31.cs create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Standard/Std34/UAX29URLEmailTokenizerImpl34.cs create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Standard/Std36/UAX29URLEmailTokenizerImpl36.cs create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Standard/Std40/UAX29URLEmailTokenizerImpl40.cs create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerImpl.cs diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizer.cs index 9f0d2c63d3..d6602b2621 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizer.cs @@ -1,6 +1,5 @@ using Lucene.Net.Analysis.Tokenattributes; using Lucene.Net.Util; -using org.apache.lucene.analysis.standard; using Reader = System.IO.TextReader; namespace Lucene.Net.Analysis.Standard @@ -141,7 +140,7 @@ public override bool IncrementToken() while (true) { - int tokenType = scanner.NextToken; + int tokenType = scanner.GetNextToken(); if (tokenType == StandardTokenizerInterface_Fields.YYEOF) { diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs index 8586241167..bc0c315c23 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs @@ -2,7 +2,6 @@ using System; using System.IO; using Lucene.Net.Analysis.Tokenattributes; -using org.apache.lucene.analysis.standard; using Reader = System.IO.TextReader; namespace Lucene.Net.Analysis.Standard @@ -43,7 +42,7 @@ internal class ClassicTokenizerImpl : IStandardTokenizerInterface /// /// initial size of the lookahead buffer - private const int ZZ_BUFFERSIZE = 4096; + private static readonly int ZZ_BUFFERSIZE = 4096; /// /// lexical states @@ -60,7 +59,7 @@ internal class ClassicTokenizerImpl : IStandardTokenizerInterface /// /// Translates characters to character classes /// - private const string ZZ_CMAP_PACKED = "\x0026\0\x0001\x0005\x0001\x0003\x0004\0\x0001\x0009\x0001\x0007\x0001\x0004\x0001\x0009\x000A\x0002\x0006\0" + "\x0001\x0006\x001A\x000A\x0004\0\x0001\x0008\x0001\0\x001A\x000A\x002F\0\x0001\x000A\x000A\0\x0001\x000A" + "\x0004\0\x0001\x000A\x0005\0\x0017\x000A\x0001\0\x001F\x000A\x0001\0\u0128\x000A\x0002\0\x0012\x000A" + "\x001C\0\x005E\x000A\x0002\0\x0009\x000A\x0002\0\x0007\x000A\x000E\0\x0002\x000A\x000E\0\x0005\x000A" + "\x0009\0\x0001\x000A\x008B\0\x0001\x000A\x000B\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0014\x000A\x0001\0\x002C\x000A\x0001\0\x0008\x000A\x0002\0\x001A\x000A\x000C\0\x0082\x000A" + "\x000A\0\x0039\x000A\x0002\0\x0002\x000A\x0002\0\x0002\x000A\x0003\0\x0026\x000A\x0002\0\x0002\x000A" + "\x0037\0\x0026\x000A\x0002\0\x0001\x000A\x0007\0\x0027\x000A\x0048\0\x001B\x000A\x0005\0\x0003\x000A" + "\x002E\0\x001A\x000A\x0005\0\x000B\x000A\x0015\0\x000A\x0002\x0007\0\x0063\x000A\x0001\0\x0001\x000A" + "\x000F\0\x0002\x000A\x0009\0\x000A\x0002\x0003\x000A\x0013\0\x0001\x000A\x0001\0\x001B\x000A\x0053\0" + "\x0026\x000A\u015f\0\x0035\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A\x0007\0\x000A\x000A\x0004\0" + "\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0001\x000A\x0003\0\x0004\x000A\x0022\0\x0002\x000A\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0002\x000A" + "\x0013\0\x0006\x000A\x0004\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0\x0002\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x001F\0\x0004\x000A\x0001\0\x0001\x000A\x0007\0\x000A\x0002" + "\x0002\0\x0003\x000A\x0010\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0001\0\x0005\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A" + "\x000F\0\x0001\x000A\x0005\0\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0002\0\x0004\x000A\x0003\0\x0001\x000A\x001E\0\x0002\x000A" + "\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0015\0\x0006\x000A\x0003\0\x0003\x000A\x0001\0\x0004\x000A" + "\x0003\0\x0002\x000A\x0001\0\x0001\x000A\x0001\0\x0002\x000A\x0003\0\x0002\x000A\x0003\0\x0003\x000A" + "\x0003\0\x0008\x000A\x0001\0\x0003\x000A\x002D\0\x0009\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002" + "\x0015\0\x0008\x000A\x0001\0\x0003\x000A\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A" + "\x0024\0\x0001\x000A\x0001\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x0010\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0012\x000A" + "\x0003\0\x0018\x000A\x0001\0\x0009\x000A\x0001\0\x0001\x000A\x0002\0\x0007\x000A\x0039\0\x0001\x0001" + "\x0030\x000A\x0001\x0001\x0002\x000A\x000C\x0001\x0007\x000A\x0009\x0001\x000A\x0002\x0027\0\x0002\x000A\x0001\0" + "\x0001\x000A\x0002\0\x0002\x000A\x0001\0\x0001\x000A\x0002\0\x0001\x000A\x0006\0\x0004\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0002\0\x0002\x000A\x0001\0" + "\x0004\x000A\x0001\0\x0002\x000A\x0009\0\x0001\x000A\x0002\0\x0005\x000A\x0001\0\x0001\x000A\x0009\0" + "\x000A\x0002\x0002\0\x0002\x000A\x0022\0\x0001\x000A\x001F\0\x000A\x0002\x0016\0\x0008\x000A\x0001\0" + "\x0022\x000A\x001D\0\x0004\x000A\x0074\0\x0022\x000A\x0001\0\x0005\x000A\x0001\0\x0002\x000A\x0015\0" + "\x000A\x0002\x0006\0\x0006\x000A\x004A\0\x0026\x000A\x000A\0\x0027\x000A\x0009\0\x005A\x000A\x0005\0" + "\x0044\x000A\x0005\0\x0052\x000A\x0006\0\x0007\x000A\x0001\0\x003F\x000A\x0001\0\x0001\x000A\x0001\0" + "\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0027\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0017\x000A\x0001\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0" + "\x0027\x000A\x0001\0\x0013\x000A\x000E\0\x0009\x0002\x002E\0\x0055\x000A\x000C\0\u026c\x000A\x0002\0" + "\x0008\x000A\x000A\0\x001A\x000A\x0005\0\x004B\x000A\x0095\0\x0034\x000A\x002C\0\x000A\x0002\x0026\0" + "\x000A\x0002\x0006\0\x0058\x000A\x0008\0\x0029\x000A\u0557\0\x009C\x000A\x0004\0\x005A\x000A\x0006\0" + "\x0016\x000A\x0002\0\x0006\x000A\x0002\0\x0026\x000A\x0002\0\x0006\x000A\x0002\0\x0008\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x001F\x000A\x0002\0\x0035\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0003\0\x0003\x000A\x0001\0\x0007\x000A\x0003\0\x0004\x000A\x0002\0" + "\x0006\x000A\x0004\0\x000D\x000A\x0005\0\x0003\x000A\x0001\0\x0007\x000A\x0082\0\x0001\x000A\x0082\0" + "\x0001\x000A\x0004\0\x0001\x000A\x0002\0\x000A\x000A\x0001\0\x0001\x000A\x0003\0\x0005\x000A\x0006\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0001\0\x0003\x000A\x0001\0" + "\x0007\x000A\u0ecb\0\x0002\x000A\x002A\0\x0005\x000A\x000A\0\x0001\x000B\x0054\x000B\x0008\x000B\x0002\x000B" + "\x0002\x000B\x005A\x000B\x0001\x000B\x0003\x000B\x0006\x000B\x0028\x000B\x0003\x000B\x0001\0\x005E\x000A\x0011\0" + "\x0018\x000A\x0038\0\x0010\x000B\u0100\0\x0080\x000B\x0080\0\u19b6\x000B\x000A\x000B\x0040\0\u51a6\x000B" + "\x005A\x000B\u048d\x000A\u0773\0\u2ba4\x000A\u215c\0\u012e\x000B\x00D2\x000B\x0007\x000A\x000C\0\x0005\x000A" + "\x0005\0\x0001\x000A\x0001\0\x000A\x000A\x0001\0\x000D\x000A\x0001\0\x0005\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x0001\0\x006C\x000A\x0021\0\u016b\x000A\x0012\0\x0040\x000A" + "\x0002\0\x0036\x000A\x0028\0\x000C\x000A\x0074\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0087\x000A" + "\x0013\0\x000A\x0002\x0007\0\x001A\x000A\x0006\0\x001A\x000A\x000A\0\x0001\x000B\x003A\x000B\x001F\x000A" + "\x0003\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0003\x000A\x0023\0"; + private static readonly string ZZ_CMAP_PACKED = "\x0026\0\x0001\x0005\x0001\x0003\x0004\0\x0001\x0009\x0001\x0007\x0001\x0004\x0001\x0009\x000A\x0002\x0006\0" + "\x0001\x0006\x001A\x000A\x0004\0\x0001\x0008\x0001\0\x001A\x000A\x002F\0\x0001\x000A\x000A\0\x0001\x000A" + "\x0004\0\x0001\x000A\x0005\0\x0017\x000A\x0001\0\x001F\x000A\x0001\0\u0128\x000A\x0002\0\x0012\x000A" + "\x001C\0\x005E\x000A\x0002\0\x0009\x000A\x0002\0\x0007\x000A\x000E\0\x0002\x000A\x000E\0\x0005\x000A" + "\x0009\0\x0001\x000A\x008B\0\x0001\x000A\x000B\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0014\x000A\x0001\0\x002C\x000A\x0001\0\x0008\x000A\x0002\0\x001A\x000A\x000C\0\x0082\x000A" + "\x000A\0\x0039\x000A\x0002\0\x0002\x000A\x0002\0\x0002\x000A\x0003\0\x0026\x000A\x0002\0\x0002\x000A" + "\x0037\0\x0026\x000A\x0002\0\x0001\x000A\x0007\0\x0027\x000A\x0048\0\x001B\x000A\x0005\0\x0003\x000A" + "\x002E\0\x001A\x000A\x0005\0\x000B\x000A\x0015\0\x000A\x0002\x0007\0\x0063\x000A\x0001\0\x0001\x000A" + "\x000F\0\x0002\x000A\x0009\0\x000A\x0002\x0003\x000A\x0013\0\x0001\x000A\x0001\0\x001B\x000A\x0053\0" + "\x0026\x000A\u015f\0\x0035\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A\x0007\0\x000A\x000A\x0004\0" + "\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0001\x000A\x0003\0\x0004\x000A\x0022\0\x0002\x000A\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0002\x000A" + "\x0013\0\x0006\x000A\x0004\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0\x0002\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x001F\0\x0004\x000A\x0001\0\x0001\x000A\x0007\0\x000A\x0002" + "\x0002\0\x0003\x000A\x0010\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0001\0\x0005\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A" + "\x000F\0\x0001\x000A\x0005\0\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0002\0\x0004\x000A\x0003\0\x0001\x000A\x001E\0\x0002\x000A" + "\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0015\0\x0006\x000A\x0003\0\x0003\x000A\x0001\0\x0004\x000A" + "\x0003\0\x0002\x000A\x0001\0\x0001\x000A\x0001\0\x0002\x000A\x0003\0\x0002\x000A\x0003\0\x0003\x000A" + "\x0003\0\x0008\x000A\x0001\0\x0003\x000A\x002D\0\x0009\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002" + "\x0015\0\x0008\x000A\x0001\0\x0003\x000A\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A" + "\x0024\0\x0001\x000A\x0001\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x0010\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0012\x000A" + "\x0003\0\x0018\x000A\x0001\0\x0009\x000A\x0001\0\x0001\x000A\x0002\0\x0007\x000A\x0039\0\x0001\x0001" + "\x0030\x000A\x0001\x0001\x0002\x000A\x000C\x0001\x0007\x000A\x0009\x0001\x000A\x0002\x0027\0\x0002\x000A\x0001\0" + "\x0001\x000A\x0002\0\x0002\x000A\x0001\0\x0001\x000A\x0002\0\x0001\x000A\x0006\0\x0004\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0002\0\x0002\x000A\x0001\0" + "\x0004\x000A\x0001\0\x0002\x000A\x0009\0\x0001\x000A\x0002\0\x0005\x000A\x0001\0\x0001\x000A\x0009\0" + "\x000A\x0002\x0002\0\x0002\x000A\x0022\0\x0001\x000A\x001F\0\x000A\x0002\x0016\0\x0008\x000A\x0001\0" + "\x0022\x000A\x001D\0\x0004\x000A\x0074\0\x0022\x000A\x0001\0\x0005\x000A\x0001\0\x0002\x000A\x0015\0" + "\x000A\x0002\x0006\0\x0006\x000A\x004A\0\x0026\x000A\x000A\0\x0027\x000A\x0009\0\x005A\x000A\x0005\0" + "\x0044\x000A\x0005\0\x0052\x000A\x0006\0\x0007\x000A\x0001\0\x003F\x000A\x0001\0\x0001\x000A\x0001\0" + "\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0027\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0017\x000A\x0001\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0" + "\x0027\x000A\x0001\0\x0013\x000A\x000E\0\x0009\x0002\x002E\0\x0055\x000A\x000C\0\u026c\x000A\x0002\0" + "\x0008\x000A\x000A\0\x001A\x000A\x0005\0\x004B\x000A\x0095\0\x0034\x000A\x002C\0\x000A\x0002\x0026\0" + "\x000A\x0002\x0006\0\x0058\x000A\x0008\0\x0029\x000A\u0557\0\x009C\x000A\x0004\0\x005A\x000A\x0006\0" + "\x0016\x000A\x0002\0\x0006\x000A\x0002\0\x0026\x000A\x0002\0\x0006\x000A\x0002\0\x0008\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x001F\x000A\x0002\0\x0035\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0003\0\x0003\x000A\x0001\0\x0007\x000A\x0003\0\x0004\x000A\x0002\0" + "\x0006\x000A\x0004\0\x000D\x000A\x0005\0\x0003\x000A\x0001\0\x0007\x000A\x0082\0\x0001\x000A\x0082\0" + "\x0001\x000A\x0004\0\x0001\x000A\x0002\0\x000A\x000A\x0001\0\x0001\x000A\x0003\0\x0005\x000A\x0006\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0001\0\x0003\x000A\x0001\0" + "\x0007\x000A\u0ecb\0\x0002\x000A\x002A\0\x0005\x000A\x000A\0\x0001\x000B\x0054\x000B\x0008\x000B\x0002\x000B" + "\x0002\x000B\x005A\x000B\x0001\x000B\x0003\x000B\x0006\x000B\x0028\x000B\x0003\x000B\x0001\0\x005E\x000A\x0011\0" + "\x0018\x000A\x0038\0\x0010\x000B\u0100\0\x0080\x000B\x0080\0\u19b6\x000B\x000A\x000B\x0040\0\u51a6\x000B" + "\x005A\x000B\u048d\x000A\u0773\0\u2ba4\x000A\u215c\0\u012e\x000B\x00D2\x000B\x0007\x000A\x000C\0\x0005\x000A" + "\x0005\0\x0001\x000A\x0001\0\x000A\x000A\x0001\0\x000D\x000A\x0001\0\x0005\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x0001\0\x006C\x000A\x0021\0\u016b\x000A\x0012\0\x0040\x000A" + "\x0002\0\x0036\x000A\x0028\0\x000C\x000A\x0074\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0087\x000A" + "\x0013\0\x000A\x0002\x0007\0\x001A\x000A\x0006\0\x001A\x000A\x000A\0\x0001\x000B\x003A\x000B\x001F\x000A" + "\x0003\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0003\x000A\x0023\0"; /// /// Translates characters to character classes @@ -534,178 +533,175 @@ public virtual void YyPushBack(int number) /// /// the next token /// if any I/O-Error occurs - public virtual int NextToken + public virtual int GetNextToken() { - get - { - int zzInput; - int zzAction; + int zzInput; + int zzAction; - // cached fields: - int zzCurrentPosL; - int zzMarkedPosL; - int zzEndReadL = zzEndRead; - char[] zzBufferL = zzBuffer; - char[] zzCMapL = ZZ_CMAP; + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; - int[] zzTransL = ZZ_TRANS; - int[] zzRowMapL = ZZ_ROWMAP; - int[] zzAttrL = ZZ_ATTRIBUTE; + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; - while (true) - { - zzMarkedPosL = zzMarkedPos; + while (true) + { + zzMarkedPosL = zzMarkedPos; - yyChar += zzMarkedPosL - zzStartRead; + yyChar += zzMarkedPosL - zzStartRead; - zzAction = -1; + zzAction = -1; - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - zzState = ZZ_LEXSTATE[zzLexicalState]; + zzState = ZZ_LEXSTATE[zzLexicalState]; - // set up zzAction for empty match case: - int zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) - { - zzAction = zzState; - } + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + { + while (true) { - while (true) - { - if (zzCurrentPosL < zzEndReadL) - { - zzInput = zzBufferL[zzCurrentPosL++]; - } - else if (zzAtEOF) + if (zzCurrentPosL < zzEndReadL) + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + else if (zzAtEOF) + { + zzInput = StandardTokenizerInterface_Fields.YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) { zzInput = StandardTokenizerInterface_Fields.YYEOF; goto zzForActionBreak; } else { - // store back cached positions - zzCurrentPos = zzCurrentPosL; - zzMarkedPos = zzMarkedPosL; - bool eof = ZzRefill(); - // get translated positions and possibly new buffer - zzCurrentPosL = zzCurrentPos; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - zzEndReadL = zzEndRead; - if (eof) - { - zzInput = StandardTokenizerInterface_Fields.YYEOF; - goto zzForActionBreak; - } - else - { - zzInput = zzBufferL[zzCurrentPosL++]; - } - } - int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; - if (zzNext == -1) - { - goto zzForActionBreak; + zzInput = zzBufferL[zzCurrentPosL++]; } - zzState = zzNext; + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) + { + goto zzForActionBreak; + } + zzState = zzNext; - zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) { - zzAction = zzState; - zzMarkedPosL = zzCurrentPosL; - if ((zzAttributes & 8) == 8) - { - goto zzForActionBreak; - } + goto zzForActionBreak; } - } + } + } zzForActionBreak: - // store back cached position - zzMarkedPos = zzMarkedPosL; + // store back cached position + zzMarkedPos = zzMarkedPosL; - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) - { - case 1: - { // Break so we don't hit fall-through warning: - break; // ignore - } - goto case 11; - case 11: - break; - case 2: - { - return ALPHANUM; - } - case 12: - break; - case 3: - { - return CJ; - } - case 13: - break; - case 4: - { - return HOST; - } - case 14: - break; - case 5: - { - return NUM; - } - case 15: - break; - case 6: - { - return APOSTROPHE; - } - case 16: - break; - case 7: - { - return COMPANY; - } - case 17: - break; - case 8: - { - return ACRONYM_DEP; - } - case 18: - break; - case 9: - { - return ACRONYM; - } - case 19: - break; - case 10: - { - return EMAIL; - } - case 20: - break; - default: - if (zzInput == StandardTokenizerInterface_Fields.YYEOF && zzStartRead == zzCurrentPos) - { - zzAtEOF = true; - return StandardTokenizerInterface_Fields.YYEOF; - } - else - { - ZzScanError(ZZ_NO_MATCH); - } - break; - } + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { // Break so we don't hit fall-through warning: + break; // ignore + } + goto case 11; + case 11: + break; + case 2: + { + return ALPHANUM; + } + case 12: + break; + case 3: + { + return CJ; + } + case 13: + break; + case 4: + { + return HOST; + } + case 14: + break; + case 5: + { + return NUM; + } + case 15: + break; + case 6: + { + return APOSTROPHE; + } + case 16: + break; + case 7: + { + return COMPANY; + } + case 17: + break; + case 8: + { + return ACRONYM_DEP; + } + case 18: + break; + case 9: + { + return ACRONYM; + } + case 19: + break; + case 10: + { + return EMAIL; + } + case 20: + break; + default: + if (zzInput == StandardTokenizerInterface_Fields.YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + return StandardTokenizerInterface_Fields.YYEOF; + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; } } } diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs index 2613e9d24b..600991b787 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs @@ -1,9 +1,12 @@ -using System; +using Lucene.Net.Analysis.Standard.Std31; +using Lucene.Net.Analysis.Standard.Std34; +using Lucene.Net.Analysis.Standard.Std36; +using Lucene.Net.Analysis.Standard.Std40; using Lucene.Net.Analysis.Tokenattributes; using Lucene.Net.Util; -using org.apache.lucene.analysis.standard; -using Version = Lucene.Net.Util.LuceneVersion; +using System; using Reader = System.IO.TextReader; +using Version = Lucene.Net.Util.LuceneVersion; namespace Lucene.Net.Analysis.Standard { @@ -186,7 +189,7 @@ public override bool IncrementToken() while (true) { - int tokenType = scanner.NextToken; + int tokenType = scanner.GetNextToken(); if (tokenType == StandardTokenizerInterface_Fields.YYEOF) { diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs index e85df30421..3ca263e917 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs @@ -1,12 +1,10 @@ -using System; -/* The following code was generated by JFlex 1.5.1 */ -using System.IO; -using Lucene.Net.Analysis.Standard; +// The following code was generated by JFlex 1.5.1 using Lucene.Net.Analysis.Tokenattributes; +using System; +using System.IO; -namespace org.apache.lucene.analysis.standard +namespace Lucene.Net.Analysis.Standard { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -51,7 +49,7 @@ public sealed class StandardTokenizerImpl : IStandardTokenizerInterface /// /// initial size of the lookahead buffer - private const int ZZ_BUFFERSIZE = 4096; + private static readonly int ZZ_BUFFERSIZE = 4096; /// /// lexical states @@ -142,242 +140,242 @@ private static int ZzUnpackRowMap(string packed, int offset, int[] result) private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); - private const string ZZ_TRANS_PACKED_0 = - "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0002\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + - "\x0004\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0001\x0002\x0001\x0009\x0002\x0002\x0001\x000A" + - "\x0003\x0002\x0001\x000B\x0002\x0002\x0001\x000C\x0004\x0002\x0001\x000D\x0003\x0002\x0001\x000E" + - "\x000F\x0002\x0001\x000F\x0002\x0002\x0001\x0010\x0036\x0002\x0001\x0011\x0001\x0002\x0001\x0012" + - "\x0002\x0002\x0001\x0013\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0002" + - "\x0001\x0017\x0003\x0002\x0001\x0018\x0001\x0002\x0001\x0019\x0001\x001A\x0003\x0002\x0001\x001B" + - "\x0002\x001C\x0001\x001D\x0001\x001E\x0002\x0002\x0001\x001F\x0001\x0020\x0090\0\x0001\x0018" + - "\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x000E\0\x0001\x0018\x000D\0\x0001\x0018" + - "\x0010\0\x0001\x0018\x0001\0\x0001\x0018\x0021\0\x0001\x0018\x0004\0\x0001\x0018" + - "\x0008\0\x0002\x0018\x0005\0\x0002\x0018\x0008\0\x0001\x0018\x0016\0\x0002\x0018" + - "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0018\x0008\0\x0004\x0018" + - "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0002\0\x0001\x0018" + - "\x0004\0\x0004\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0002\0\x0004\x0018\x0002\0\x0003\x0018\x0001\0\x0002\x0018" + - "\x0001\0\x0003\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0005\0\x0004\x0018" + - "\x0002\0\x0008\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0001\0\x0002\x0018" + - "\x0004\0\x0001\x0018\x0003\0\x0003\x0018\x0017\0\x0001\x0018\x0004\0\x0001\x0018" + - "\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x0017\0\x0001\x0018" + - "\x0033\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0019\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018" + - "\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0\x0004\x0018" + - "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018" + - "\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0\x0002\x0018" + - "\x0001\0\x0008\x0018\x0001\x0019\x0001\0\x0007\x0018\x0001\0\x0008\x0018\x0001\0" + - "\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0003\0\x0003\x0018\x001E\0\x0001\x0018\x000F\0\x0001\x0018\x0013\0" + - "\x0001\x0018\x0013\0\x0001\x0018\x0006\0\x0003\x0018\x001F\0\x0001\x0018\x0007\0" + - "\x0001\x0018\x0018\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0004\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0003\x0018\x0001\0\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0003\x0018\x0001\0" + - "\x000F\x0018\x0001\0\x0002\x0018\x0001\0\x0011\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0021\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x001E\0\x0001\x0018\x0003\0" + - "\x0002\x0018\x000A\0\x0002\x0018\x000B\0\x0001\x0018\x0006\0\x0001\x0018\x0002\0" + - "\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018\x0002\0\x0002\x0018\x0005\0" + - "\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + - "\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0002\x0018\x0002\0" + - "\x0001\x0018\x0003\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + - "\x0009\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x000C\x0018\x0001\0\x0002\x0018\x0001\0\x0008\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0013\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0012\0" + - "\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019" + - "\x0041\0\x0001\x0019\x0017\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + - "\x000D\0\x0003\x0018\x0003\0\x0001\x0018\x0007\0\x0002\x0018\x0001\0\x0004\x0019" + - "\x0001\0\x0002\x0018\x000B\0\x0001\x0018\x0013\0\x0001\x0018\x0024\0\x0001\x0018" + - "\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0\x0001\x0018" + - "\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018" + - "\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0019" + - "\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0\x0001\x0018" + - "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018" + - "\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018" + - "\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018" + - "\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0006\0\x0002\x0018\x0006\0\x0001\x0018" + - "\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x0022\0\x0001\x0018\x000F\0\x0002\x0018" + - "\x0012\0\x0001\x0018\x0002\0\x0002\x0018\x000B\0\x0001\x0018\x0003\0\x0002\x0018" + - "\x0005\0\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018" + - "\x001D\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018" + - "\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018" + - "\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018" + - "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x005F\0\x0001\x001E\x0021\0\x0001\x001A\x0022\0\x0001\x001D" + - "\x0006\0\x0001\x001D\x0002\0\x0001\x001D\x0003\0\x0002\x001D\x0008\0\x0004\x001D" + - "\x0001\0\x0003\x001D\x0001\0\x0001\x001D\x0002\0\x0001\x001D\x0002\0\x0001\x001D" + - "\x0004\0\x0004\x001D\x0001\0\x0002\x001D\x0006\0\x0001\x001D\x0002\0\x0004\x001D" + - "\x0002\0\x0003\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0004\x001D" + - "\x0001\0\x0002\x001D\x0005\0\x0004\x001D\x0002\0\x0008\x001D\x0004\0\x0001\x001D" + - "\x0001\0\x0002\x001D\x0004\0\x0001\x001D\x0003\0\x0003\x001D\x0012\0\x0001\x001D" + - "\x0001\0\x0002\x001D\x0001\0\x0001\x001D\x0001\0\x0004\x001D\x0001\0\x0001\x001D" + - "\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0002\x001D" + - "\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x000F\x001D\x0001\0\x0002\x001D" + - "\x0001\0\x0011\x001D\x0001\0\x0002\x001D\x0001\0\x0021\x001D\x0001\0\x0001\x001D" + - "\x0001\0\x0002\x001D\x0002\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D" + - "\x0001\0\x0003\x001D\x0012\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0001\x001D" + - "\x0001\0\x0004\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D" + - "\x0002\0\x0001\x001D\x0002\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D" + - "\x0001\0\x000F\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + - "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + - "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x001E\0\x0001\x001D" + - "\x000F\0\x0001\x001D\x0013\0\x0001\x001D\x001A\0\x0001\x001D\x0021\0\x0001\x001D" + - "\x0007\0\x0001\x001D\x0018\0\x0001\x001D\x0001\0\x0002\x001D\x0003\0\x0004\x001D" + - "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D" + - "\x0001\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x0008\x001D" + - "\x0001\0\x0006\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + - "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + - "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x0075\0\x0001\x0021" + - "\x0015\0\x0001\x001E\x0002\x0021\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0024\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x002A\x0002\0\x0001\x002B\x0004\0" + - "\x0001\x002C\x0003\0\x0001\x002D\x000F\0\x0001\x002E\x0002\0\x0001\x002F\x0011\0" + - "\x0001\x0030\x0002\0\x0001\x0031\x0031\0\x0002\x0018\x0001\x0032\x0001\0\x0001\x0033" + - "\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0018\x0002\0\x0001\x0033\x0001\0" + - "\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0035" + - "\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028" + - "\x0002\0\x0001\x0029\x0003\0\x0001\x0037\x0002\0\x0001\x0038\x0004\0\x0001\x0039" + - "\x0003\0\x0001\x003A\x000F\0\x0001\x002E\x0002\0\x0001\x003B\x0011\0\x0001\x003C" + - "\x0002\0\x0001\x003D\x0031\0\x0001\x0018\x0002\x0019\x0002\0\x0002\x003E\x0001\x003F" + - "\x0001\0\x0001\x0019\x0002\0\x0001\x003E\x0001\0\x0001\x001F\x0001\x0018\x0006\0" + - "\x0001\x0040\x0011\0\x0001\x0041\x0002\0\x0001\x0042\x0008\0\x0001\x0043\x0012\0" + - "\x0001\x0044\x0011\0\x0001\x0045\x0002\0\x0001\x0046\x0021\0\x0001\x0047\x0010\0" + - "\x0001\x001A\x0001\0\x0001\x001A\x0003\0\x0001\x0034\x0001\0\x0001\x001A\x0007\0" + - "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0048\x0001\0\x0001\x0036\x0004\0" + - "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + - "\x0001\x0049\x0002\0\x0001\x004A\x0004\0\x0001\x0039\x0003\0\x0001\x004B\x000F\0" + - "\x0001\x002E\x0002\0\x0001\x004C\x0011\0\x0001\x004D\x0002\0\x0001\x004E\x0021\0" + - "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0050\x0001\x0019\x0001\x0051\x0003\0\x0001\x0050" + - "\x0001\0\x0001\x0050\x0004\0\x0001\x001F\x0001\x0018\x0086\0\x0002\x001C\x000C\0" + - "\x0001\x0052\x0011\0\x0001\x0053\x0002\0\x0001\x0054\x0008\0\x0001\x0055\x0012\0" + - "\x0001\x0056\x0011\0\x0001\x0057\x0002\0\x0001\x0058\x0032\0\x0001\x001D\x0007\0" + - "\x0001\x001D\x000C\0\x0001\x0059\x0011\0\x0001\x005A\x0002\0\x0001\x005B\x0008\0" + - "\x0001\x005C\x0012\0\x0001\x005D\x0011\0\x0001\x005E\x0002\0\x0001\x005F\x0032\0" + - "\x0001\x001E\x0007\0\x0001\x001E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0060\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0061\x0002\0\x0001\x0062\x0004\0" + - "\x0001\x002C\x0003\0\x0001\x0063\x000F\0\x0001\x002E\x0002\0\x0001\x0064\x0011\0" + - "\x0001\x0065\x0002\0\x0001\x0066\x0031\0\x0001\x0018\x0001\x001F\x0001\x0032\x0001\0" + - "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x001F\x0002\0\x0001\x0067" + - "\x0001\x0068\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0069\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x006A\x0002\0\x0001\x006B\x0004\0" + - "\x0001\x002C\x0003\0\x0001\x006C\x000F\0\x0001\x002E\x0002\0\x0001\x006D\x0011\0" + - "\x0001\x006E\x0002\0\x0001\x006F\x0031\0\x0001\x0018\x0001\x0020\x0001\x0032\x0001\0" + - "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0020\x0002\0\x0001\x0033" + - "\x0001\0\x0001\x001F\x0001\x0020\x0006\0\x0001\x0070\x0011\0\x0001\x0071\x0002\0" + - "\x0001\x0072\x0008\0\x0001\x0073\x0012\0\x0001\x0074\x0011\0\x0001\x0075\x0002\0" + - "\x0001\x0076\x002D\0\x0001\x0077\x0004\0\x0001\x0021\x0007\0\x0001\x0021\x000D\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + - "\x0001\x0018\x000B\0\x0001\x0018\x0002\0\x0001\x0018\x0008\0\x0001\x0018\x0012\0" + - "\x0004\x0018\x001D\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0032\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + - "\x0002\x0018\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0" + - "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0" + - "\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0" + - "\x0002\x0018\x0001\0\x0008\x0018\x0001\x0032\x0001\0\x0007\x0018\x0001\0\x0008\x0018" + - "\x0001\0\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0003\0\x0003\x0018\x0012\0\x0001\x0018\x0016\0\x0002\x0018" + - "\x0013\0\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0018\x0035\0" + - "\x0001\x0032\x0009\0\x0001\x0018\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0" + - "\x0004\x0018\x0001\0\x0002\x0018\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0004\0\x0003\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0" + - "\x0004\x0018\x0002\0\x0002\x0018\x000A\0\x0001\x0018\x0007\0\x0001\x0018\x0024\0" + - "\x0001\x0018\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0" + - "\x0001\x0018\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0" + - "\x0002\x0018\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0" + - "\x0002\x0032\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + - "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + - "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + - "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + - "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0005\x0018\x0001\0" + - "\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x005C\0\x0002\x0018\x0015\0\x0004\x0018\x002D\0\x0001\x0018\x000D\0" + - "\x0002\x0018\x0008\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0009\0" + - "\x0001\x0018\x0009\0\x0002\x0018\x0006\0\x0001\x0018\x0002\0\x0004\x0018\x0003\0" + - "\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0001\x0018\x0008\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018\x0001\0" + - "\x0004\x0018\x0013\0\x0001\x0018\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0078\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0079\x0002\0\x0001\x007A\x0004\0" + - "\x0001\x002C\x0003\0\x0001\x007B\x000F\0\x0001\x002E\x0002\0\x0001\x007C\x0011\0" + - "\x0001\x007D\x0002\0\x0001\x007E\x0031\0\x0001\x0018\x0002\x0032\x0002\0\x0002\x007F" + - "\x0001\x0034\x0001\0\x0001\x0032\x0002\0\x0001\x007F\x0001\0\x0001\x001F\x0001\x0018" + - "\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0080\x0001\0\x0001\x0081" + - "\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029" + - "\x0003\0\x0001\x0082\x0002\0\x0001\x0083\x0004\0\x0001\x0084\x0003\0\x0001\x0085" + - "\x000F\0\x0001\x002E\x0002\0\x0001\x0086\x0011\0\x0001\x0087\x0002\0\x0001\x0088" + - "\x0031\0\x0001\x0018\x0001\x0033\x0007\0\x0001\x0033\x0004\0\x0002\x0018\x0001\0" + - "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0089\x0001\0\x0001\x0025\x0004\0" + - "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + - "\x0001\x008A\x0002\0\x0001\x008B\x0004\0\x0001\x002C\x0003\0\x0001\x008C\x000F\0" + - "\x0001\x002E\x0002\0\x0001\x008D\x0011\0\x0001\x008E\x0002\0\x0001\x008F\x0021\0" + - "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0034\x0001\x0032\x0001\x0051\x0003\0\x0001\x0034" + - "\x0001\0\x0001\x0034\x0004\0\x0001\x001F\x0001\x0018\x0007\0\x0001\x0018\x0004\0" + - "\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0" + - "\x0001\x0019\x0002\0\x0001\x0019\x0008\0\x0001\x0018\x0012\0\x0004\x0019\x001D\0" + - "\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018" + - "\x0020\0\x0001\x0019\x000B\0\x0001\x0019\x0035\0\x0001\x0019\x0009\0\x0001\x0019" + - "\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0019\x0001\0" + - "\x0002\x0019\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0019\x0004\0" + - "\x0001\x0019\x0002\x0018\x0001\0\x0004\x0019\x0001\0\x0002\x0018\x0005\0\x0004\x0019" + - "\x0002\0\x0001\x0018\x0001\x0019\x000A\0\x0001\x0019\x0007\0\x0001\x0018\x0018\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + - "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0019\x0001\0" + - "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + - "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + - "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0019" + - "\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x005C\0\x0002\x0019\x0015\0\x0004\x0019\x002D\0\x0001\x0019" + - "\x000D\0\x0002\x0019\x0008\0\x0002\x0019\x0001\0\x0001\x0019\x0001\0\x0001\x0019" + - "\x0009\0\x0001\x0019\x0009\0\x0002\x0019\x0006\0\x0001\x0019\x0002\0\x0004\x0019" + - "\x0003\0\x0001\x0019\x0002\0\x0002\x0019\x0001\0\x0003\x0019\x0001\0\x0002\x0019" + - "\x0001\0\x0001\x0019\x0008\0\x0001\x0019\x0001\0\x0002\x0019\x0002\0\x0002\x0019" + - "\x0001\0\x0004\x0019\x0013\0\x0001\x0019\x0016\0\x0001\x0090\x0001\0\x0001\x0091" + - "\x000F\0\x0001\x0092\x0002\0\x0001\x0093\x0004\0\x0001\x0094\x0003\0\x0001\x0095" + - "\x0012\0\x0001\x0096\x0011\0\x0001\x0097\x0002\0\x0001\x0098\x0032\0\x0001\x003E" + - "\x0001\x0019\x0006\0\x0001\x003E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0099\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x009A\x0002\0\x0001\x009B\x0004\0" + - "\x0001\x0039\x0003\0\x0001\x009C\x000F\0\x0001\x002E\x0002\0\x0001\x009D\x0011\0" + - "\x0001\x009E\x0002\0\x0001\x009F\x0021\0\x0001\x004F\x000F\0\x0001\x0018\x0001\x003F" + - "\x0001\x0019\x0001\x0051\x0003\0\x0001\x003F\x0001\0\x0001\x003F\x0004\0\x0001\x001F" + - "\x0001\x0018\x0039\0\x0001\x001A\x0002\0\x0001\x001A\x001B\0\x0004\x001A\x008E\0" + - "\x0001\x001A\x003F\0\x0001\x001A\x0024\0\x0001\x001A\x0001\0\x0002\x001A\x0011\0" + - "\x0001\x001A\x0004\0\x0001\x001A\x000F\0\x0004\x001A\x0003\0\x0001\x001A\x000A\0" + - "\x0001\x001A\x0083\0\x0001\x001A\x0092\0\x0004\x001A\x006A\0\x0002\x001A\x0015\0" + - "\x0004\x001A\x002D\0\x0001\x001A\x000D\0\x0002\x001A\x0008\0\x0002\x001A\x0001\0" + - "\x0001\x001A\x0001\0\x0001\x001A\x0009\0\x0001\x001A\x0009\0\x0002\x001A\x0006\0" + - "\x0001\x001A\x0002\0\x0004\x001A\x0003\0\x0001\x001A\x0002\0\x0002\x001A\x0001\0" + - "\x0003\x001A\x0001\0\x0002\x001A\x0001\0\x0001\x001A\x0008\0\x0001\x001A\x0001\0" + - "\x0002\x001A\x0002\0\x0002\x001A\x0001\0\x0004\x001A\x0013\0\x0001\x001A\x007F\0" + - "\x0001\x001A\x0025\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0" + - "\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0050\x0002\0\x0001\x0050\x0008\0" + - "\x0001\x0018\x0012\0\x0004\x0050\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0" + - "\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019\x000B\0\x0001\x0050" + - "\x0035\0\x0001\x0019\x0009\0\x0001\x0050\x000D\0\x0004\x0018\x0002\0\x0002\x0018" + - "\x000C\0\x0003\x0018\x0001\x0050\x0001\0\x0002\x0050\x0009\0\x0003\x0018\x0003\0" + - "\x0001\x0018\x0001\0\x0001\x0050\x0004\0\x0001\x0050\x0002\x0018\x0001\0\x0004\x0019" + - "\x0001\0\x0002\x0018\x0005\0\x0004\x0050\x0002\0\x0001\x0018\x0001\x0050\x000A\0" + - "\x0001\x0050\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0" + - "\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0004\0\x0001\x0050\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0002\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + + "\x0004\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0001\x0002\x0001\x0009\x0002\x0002\x0001\x000A" + + "\x0003\x0002\x0001\x000B\x0002\x0002\x0001\x000C\x0004\x0002\x0001\x000D\x0003\x0002\x0001\x000E" + + "\x000F\x0002\x0001\x000F\x0002\x0002\x0001\x0010\x0036\x0002\x0001\x0011\x0001\x0002\x0001\x0012" + + "\x0002\x0002\x0001\x0013\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0002" + + "\x0001\x0017\x0003\x0002\x0001\x0018\x0001\x0002\x0001\x0019\x0001\x001A\x0003\x0002\x0001\x001B" + + "\x0002\x001C\x0001\x001D\x0001\x001E\x0002\x0002\x0001\x001F\x0001\x0020\x0090\0\x0001\x0018" + + "\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x000E\0\x0001\x0018\x000D\0\x0001\x0018" + + "\x0010\0\x0001\x0018\x0001\0\x0001\x0018\x0021\0\x0001\x0018\x0004\0\x0001\x0018" + + "\x0008\0\x0002\x0018\x0005\0\x0002\x0018\x0008\0\x0001\x0018\x0016\0\x0002\x0018" + + "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0018\x0008\0\x0004\x0018" + + "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0002\0\x0001\x0018" + + "\x0004\0\x0004\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0002\0\x0004\x0018\x0002\0\x0003\x0018\x0001\0\x0002\x0018" + + "\x0001\0\x0003\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0005\0\x0004\x0018" + + "\x0002\0\x0008\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0001\0\x0002\x0018" + + "\x0004\0\x0001\x0018\x0003\0\x0003\x0018\x0017\0\x0001\x0018\x0004\0\x0001\x0018" + + "\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x0017\0\x0001\x0018" + + "\x0033\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0019\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018" + + "\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0\x0004\x0018" + + "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018" + + "\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0\x0002\x0018" + + "\x0001\0\x0008\x0018\x0001\x0019\x0001\0\x0007\x0018\x0001\0\x0008\x0018\x0001\0" + + "\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0003\0\x0003\x0018\x001E\0\x0001\x0018\x000F\0\x0001\x0018\x0013\0" + + "\x0001\x0018\x0013\0\x0001\x0018\x0006\0\x0003\x0018\x001F\0\x0001\x0018\x0007\0" + + "\x0001\x0018\x0018\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0004\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0003\x0018\x0001\0\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0003\x0018\x0001\0" + + "\x000F\x0018\x0001\0\x0002\x0018\x0001\0\x0011\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0021\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x001E\0\x0001\x0018\x0003\0" + + "\x0002\x0018\x000A\0\x0002\x0018\x000B\0\x0001\x0018\x0006\0\x0001\x0018\x0002\0" + + "\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018\x0002\0\x0002\x0018\x0005\0" + + "\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + + "\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0002\x0018\x0002\0" + + "\x0001\x0018\x0003\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + + "\x0009\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x000C\x0018\x0001\0\x0002\x0018\x0001\0\x0008\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0013\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0012\0" + + "\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019" + + "\x0041\0\x0001\x0019\x0017\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + + "\x000D\0\x0003\x0018\x0003\0\x0001\x0018\x0007\0\x0002\x0018\x0001\0\x0004\x0019" + + "\x0001\0\x0002\x0018\x000B\0\x0001\x0018\x0013\0\x0001\x0018\x0024\0\x0001\x0018" + + "\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0\x0001\x0018" + + "\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018" + + "\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0019" + + "\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0\x0001\x0018" + + "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018" + + "\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018" + + "\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018" + + "\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0006\0\x0002\x0018\x0006\0\x0001\x0018" + + "\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x0022\0\x0001\x0018\x000F\0\x0002\x0018" + + "\x0012\0\x0001\x0018\x0002\0\x0002\x0018\x000B\0\x0001\x0018\x0003\0\x0002\x0018" + + "\x0005\0\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018" + + "\x001D\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018" + + "\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018" + + "\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018" + + "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x005F\0\x0001\x001E\x0021\0\x0001\x001A\x0022\0\x0001\x001D" + + "\x0006\0\x0001\x001D\x0002\0\x0001\x001D\x0003\0\x0002\x001D\x0008\0\x0004\x001D" + + "\x0001\0\x0003\x001D\x0001\0\x0001\x001D\x0002\0\x0001\x001D\x0002\0\x0001\x001D" + + "\x0004\0\x0004\x001D\x0001\0\x0002\x001D\x0006\0\x0001\x001D\x0002\0\x0004\x001D" + + "\x0002\0\x0003\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0004\x001D" + + "\x0001\0\x0002\x001D\x0005\0\x0004\x001D\x0002\0\x0008\x001D\x0004\0\x0001\x001D" + + "\x0001\0\x0002\x001D\x0004\0\x0001\x001D\x0003\0\x0003\x001D\x0012\0\x0001\x001D" + + "\x0001\0\x0002\x001D\x0001\0\x0001\x001D\x0001\0\x0004\x001D\x0001\0\x0001\x001D" + + "\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0002\x001D" + + "\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x000F\x001D\x0001\0\x0002\x001D" + + "\x0001\0\x0011\x001D\x0001\0\x0002\x001D\x0001\0\x0021\x001D\x0001\0\x0001\x001D" + + "\x0001\0\x0002\x001D\x0002\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D" + + "\x0001\0\x0003\x001D\x0012\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0001\x001D" + + "\x0001\0\x0004\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D" + + "\x0002\0\x0001\x001D\x0002\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D" + + "\x0001\0\x000F\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + + "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x001E\0\x0001\x001D" + + "\x000F\0\x0001\x001D\x0013\0\x0001\x001D\x001A\0\x0001\x001D\x0021\0\x0001\x001D" + + "\x0007\0\x0001\x001D\x0018\0\x0001\x001D\x0001\0\x0002\x001D\x0003\0\x0004\x001D" + + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D" + + "\x0001\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x0008\x001D" + + "\x0001\0\x0006\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + + "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + + "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x0075\0\x0001\x0021" + + "\x0015\0\x0001\x001E\x0002\x0021\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0024\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x002A\x0002\0\x0001\x002B\x0004\0" + + "\x0001\x002C\x0003\0\x0001\x002D\x000F\0\x0001\x002E\x0002\0\x0001\x002F\x0011\0" + + "\x0001\x0030\x0002\0\x0001\x0031\x0031\0\x0002\x0018\x0001\x0032\x0001\0\x0001\x0033" + + "\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0018\x0002\0\x0001\x0033\x0001\0" + + "\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0035" + + "\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028" + + "\x0002\0\x0001\x0029\x0003\0\x0001\x0037\x0002\0\x0001\x0038\x0004\0\x0001\x0039" + + "\x0003\0\x0001\x003A\x000F\0\x0001\x002E\x0002\0\x0001\x003B\x0011\0\x0001\x003C" + + "\x0002\0\x0001\x003D\x0031\0\x0001\x0018\x0002\x0019\x0002\0\x0002\x003E\x0001\x003F" + + "\x0001\0\x0001\x0019\x0002\0\x0001\x003E\x0001\0\x0001\x001F\x0001\x0018\x0006\0" + + "\x0001\x0040\x0011\0\x0001\x0041\x0002\0\x0001\x0042\x0008\0\x0001\x0043\x0012\0" + + "\x0001\x0044\x0011\0\x0001\x0045\x0002\0\x0001\x0046\x0021\0\x0001\x0047\x0010\0" + + "\x0001\x001A\x0001\0\x0001\x001A\x0003\0\x0001\x0034\x0001\0\x0001\x001A\x0007\0" + + "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0048\x0001\0\x0001\x0036\x0004\0" + + "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + + "\x0001\x0049\x0002\0\x0001\x004A\x0004\0\x0001\x0039\x0003\0\x0001\x004B\x000F\0" + + "\x0001\x002E\x0002\0\x0001\x004C\x0011\0\x0001\x004D\x0002\0\x0001\x004E\x0021\0" + + "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0050\x0001\x0019\x0001\x0051\x0003\0\x0001\x0050" + + "\x0001\0\x0001\x0050\x0004\0\x0001\x001F\x0001\x0018\x0086\0\x0002\x001C\x000C\0" + + "\x0001\x0052\x0011\0\x0001\x0053\x0002\0\x0001\x0054\x0008\0\x0001\x0055\x0012\0" + + "\x0001\x0056\x0011\0\x0001\x0057\x0002\0\x0001\x0058\x0032\0\x0001\x001D\x0007\0" + + "\x0001\x001D\x000C\0\x0001\x0059\x0011\0\x0001\x005A\x0002\0\x0001\x005B\x0008\0" + + "\x0001\x005C\x0012\0\x0001\x005D\x0011\0\x0001\x005E\x0002\0\x0001\x005F\x0032\0" + + "\x0001\x001E\x0007\0\x0001\x001E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0060\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0061\x0002\0\x0001\x0062\x0004\0" + + "\x0001\x002C\x0003\0\x0001\x0063\x000F\0\x0001\x002E\x0002\0\x0001\x0064\x0011\0" + + "\x0001\x0065\x0002\0\x0001\x0066\x0031\0\x0001\x0018\x0001\x001F\x0001\x0032\x0001\0" + + "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x001F\x0002\0\x0001\x0067" + + "\x0001\x0068\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0069\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x006A\x0002\0\x0001\x006B\x0004\0" + + "\x0001\x002C\x0003\0\x0001\x006C\x000F\0\x0001\x002E\x0002\0\x0001\x006D\x0011\0" + + "\x0001\x006E\x0002\0\x0001\x006F\x0031\0\x0001\x0018\x0001\x0020\x0001\x0032\x0001\0" + + "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0020\x0002\0\x0001\x0033" + + "\x0001\0\x0001\x001F\x0001\x0020\x0006\0\x0001\x0070\x0011\0\x0001\x0071\x0002\0" + + "\x0001\x0072\x0008\0\x0001\x0073\x0012\0\x0001\x0074\x0011\0\x0001\x0075\x0002\0" + + "\x0001\x0076\x002D\0\x0001\x0077\x0004\0\x0001\x0021\x0007\0\x0001\x0021\x000D\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + + "\x0001\x0018\x000B\0\x0001\x0018\x0002\0\x0001\x0018\x0008\0\x0001\x0018\x0012\0" + + "\x0004\x0018\x001D\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0032\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + + "\x0002\x0018\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0" + + "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0" + + "\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0" + + "\x0002\x0018\x0001\0\x0008\x0018\x0001\x0032\x0001\0\x0007\x0018\x0001\0\x0008\x0018" + + "\x0001\0\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x0003\0\x0003\x0018\x0012\0\x0001\x0018\x0016\0\x0002\x0018" + + "\x0013\0\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0018\x0035\0" + + "\x0001\x0032\x0009\0\x0001\x0018\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0" + + "\x0004\x0018\x0001\0\x0002\x0018\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0004\0\x0003\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0" + + "\x0004\x0018\x0002\0\x0002\x0018\x000A\0\x0001\x0018\x0007\0\x0001\x0018\x0024\0" + + "\x0001\x0018\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0" + + "\x0001\x0018\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0" + + "\x0002\x0018\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0" + + "\x0002\x0032\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + + "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + + "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + + "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0005\x0018\x0001\0" + + "\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x005C\0\x0002\x0018\x0015\0\x0004\x0018\x002D\0\x0001\x0018\x000D\0" + + "\x0002\x0018\x0008\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0009\0" + + "\x0001\x0018\x0009\0\x0002\x0018\x0006\0\x0001\x0018\x0002\0\x0004\x0018\x0003\0" + + "\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + + "\x0001\x0018\x0008\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018\x0001\0" + + "\x0004\x0018\x0013\0\x0001\x0018\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0078\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0079\x0002\0\x0001\x007A\x0004\0" + + "\x0001\x002C\x0003\0\x0001\x007B\x000F\0\x0001\x002E\x0002\0\x0001\x007C\x0011\0" + + "\x0001\x007D\x0002\0\x0001\x007E\x0031\0\x0001\x0018\x0002\x0032\x0002\0\x0002\x007F" + + "\x0001\x0034\x0001\0\x0001\x0032\x0002\0\x0001\x007F\x0001\0\x0001\x001F\x0001\x0018" + + "\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0080\x0001\0\x0001\x0081" + + "\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029" + + "\x0003\0\x0001\x0082\x0002\0\x0001\x0083\x0004\0\x0001\x0084\x0003\0\x0001\x0085" + + "\x000F\0\x0001\x002E\x0002\0\x0001\x0086\x0011\0\x0001\x0087\x0002\0\x0001\x0088" + + "\x0031\0\x0001\x0018\x0001\x0033\x0007\0\x0001\x0033\x0004\0\x0002\x0018\x0001\0" + + "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0089\x0001\0\x0001\x0025\x0004\0" + + "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + + "\x0001\x008A\x0002\0\x0001\x008B\x0004\0\x0001\x002C\x0003\0\x0001\x008C\x000F\0" + + "\x0001\x002E\x0002\0\x0001\x008D\x0011\0\x0001\x008E\x0002\0\x0001\x008F\x0021\0" + + "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0034\x0001\x0032\x0001\x0051\x0003\0\x0001\x0034" + + "\x0001\0\x0001\x0034\x0004\0\x0001\x001F\x0001\x0018\x0007\0\x0001\x0018\x0004\0" + + "\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0" + + "\x0001\x0019\x0002\0\x0001\x0019\x0008\0\x0001\x0018\x0012\0\x0004\x0019\x001D\0" + + "\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018" + + "\x0020\0\x0001\x0019\x000B\0\x0001\x0019\x0035\0\x0001\x0019\x0009\0\x0001\x0019" + + "\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0019\x0001\0" + + "\x0002\x0019\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0019\x0004\0" + + "\x0001\x0019\x0002\x0018\x0001\0\x0004\x0019\x0001\0\x0002\x0018\x0005\0\x0004\x0019" + + "\x0002\0\x0001\x0018\x0001\x0019\x000A\0\x0001\x0019\x0007\0\x0001\x0018\x0018\0" + + "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + + "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0019\x0001\0" + + "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + + "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + + "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0019" + + "\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + + "\x0001\0\x0001\x0018\x005C\0\x0002\x0019\x0015\0\x0004\x0019\x002D\0\x0001\x0019" + + "\x000D\0\x0002\x0019\x0008\0\x0002\x0019\x0001\0\x0001\x0019\x0001\0\x0001\x0019" + + "\x0009\0\x0001\x0019\x0009\0\x0002\x0019\x0006\0\x0001\x0019\x0002\0\x0004\x0019" + + "\x0003\0\x0001\x0019\x0002\0\x0002\x0019\x0001\0\x0003\x0019\x0001\0\x0002\x0019" + + "\x0001\0\x0001\x0019\x0008\0\x0001\x0019\x0001\0\x0002\x0019\x0002\0\x0002\x0019" + + "\x0001\0\x0004\x0019\x0013\0\x0001\x0019\x0016\0\x0001\x0090\x0001\0\x0001\x0091" + + "\x000F\0\x0001\x0092\x0002\0\x0001\x0093\x0004\0\x0001\x0094\x0003\0\x0001\x0095" + + "\x0012\0\x0001\x0096\x0011\0\x0001\x0097\x0002\0\x0001\x0098\x0032\0\x0001\x003E" + + "\x0001\x0019\x0006\0\x0001\x003E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + + "\x0001\x0099\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + + "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x009A\x0002\0\x0001\x009B\x0004\0" + + "\x0001\x0039\x0003\0\x0001\x009C\x000F\0\x0001\x002E\x0002\0\x0001\x009D\x0011\0" + + "\x0001\x009E\x0002\0\x0001\x009F\x0021\0\x0001\x004F\x000F\0\x0001\x0018\x0001\x003F" + + "\x0001\x0019\x0001\x0051\x0003\0\x0001\x003F\x0001\0\x0001\x003F\x0004\0\x0001\x001F" + + "\x0001\x0018\x0039\0\x0001\x001A\x0002\0\x0001\x001A\x001B\0\x0004\x001A\x008E\0" + + "\x0001\x001A\x003F\0\x0001\x001A\x0024\0\x0001\x001A\x0001\0\x0002\x001A\x0011\0" + + "\x0001\x001A\x0004\0\x0001\x001A\x000F\0\x0004\x001A\x0003\0\x0001\x001A\x000A\0" + + "\x0001\x001A\x0083\0\x0001\x001A\x0092\0\x0004\x001A\x006A\0\x0002\x001A\x0015\0" + + "\x0004\x001A\x002D\0\x0001\x001A\x000D\0\x0002\x001A\x0008\0\x0002\x001A\x0001\0" + + "\x0001\x001A\x0001\0\x0001\x001A\x0009\0\x0001\x001A\x0009\0\x0002\x001A\x0006\0" + + "\x0001\x001A\x0002\0\x0004\x001A\x0003\0\x0001\x001A\x0002\0\x0002\x001A\x0001\0" + + "\x0003\x001A\x0001\0\x0002\x001A\x0001\0\x0001\x001A\x0008\0\x0001\x001A\x0001\0" + + "\x0002\x001A\x0002\0\x0002\x001A\x0001\0\x0004\x001A\x0013\0\x0001\x001A\x007F\0" + + "\x0001\x001A\x0025\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0" + + "\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0050\x0002\0\x0001\x0050\x0008\0" + + "\x0001\x0018\x0012\0\x0004\x0050\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0" + + "\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019\x000B\0\x0001\x0050" + + "\x0035\0\x0001\x0019\x0009\0\x0001\x0050\x000D\0\x0004\x0018\x0002\0\x0002\x0018" + + "\x000C\0\x0003\x0018\x0001\x0050\x0001\0\x0002\x0050\x0009\0\x0003\x0018\x0003\0" + + "\x0001\x0018\x0001\0\x0001\x0050\x0004\0\x0001\x0050\x0002\x0018\x0001\0\x0004\x0019" + + "\x0001\0\x0002\x0018\x0005\0\x0004\x0050\x0002\0\x0001\x0018\x0001\x0050\x000A\0" + + "\x0001\x0050\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0" + + "\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0" + + "\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + + "\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + + "\x0001\x0018\x0004\0\x0001\x0050\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0" + + "\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + "\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0" + "\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0" + "\x0002\x0018\x0004\0\x0001\x0018\x0004\x0050\x0001\0\x0001\x0018\x0002\0\x0001\x0018" + @@ -657,7 +655,7 @@ private static int ZzUnpackRowMap(string packed, int offset, int[] result) "\x0013\0\x0001\x00B5\x0010\0"; - + private static int[] ZzUnpackTrans() { int[] result = new int[26554]; @@ -967,9 +965,9 @@ public void YyReset(TextReader reader) /// /// Returns the current lexical state. /// - public int YyState() + public int YyState { - return zzLexicalState; + get { return zzLexicalState; } } @@ -1070,168 +1068,165 @@ public void YyPushBack(int number) ///
/// the next token /// if any I/O-Error occurs - public int NextToken + public int GetNextToken() { - get - { - int zzInput; - int zzAction; + int zzInput; + int zzAction; - // cached fields: - int zzCurrentPosL; - int zzMarkedPosL; - int zzEndReadL = zzEndRead; - char[] zzBufferL = zzBuffer; - char[] zzCMapL = ZZ_CMAP; + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; - int[] zzTransL = ZZ_TRANS; - int[] zzRowMapL = ZZ_ROWMAP; - int[] zzAttrL = ZZ_ATTRIBUTE; + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; - while (true) - { - zzMarkedPosL = zzMarkedPos; + while (true) + { + zzMarkedPosL = zzMarkedPos; - yyChar += zzMarkedPosL - zzStartRead; + yyChar += zzMarkedPosL - zzStartRead; - zzAction = -1; + zzAction = -1; - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - zzState = ZZ_LEXSTATE[zzLexicalState]; + zzState = ZZ_LEXSTATE[zzLexicalState]; - // set up zzAction for empty match case: - int zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) - { - zzAction = zzState; - } + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + { + while (true) { - while (true) - { - if (zzCurrentPosL < zzEndReadL) - { - zzInput = zzBufferL[zzCurrentPosL++]; - } - else if (zzAtEOF) + if (zzCurrentPosL < zzEndReadL) + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + else if (zzAtEOF) + { + zzInput = StandardTokenizerInterface_Fields.YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) { zzInput = StandardTokenizerInterface_Fields.YYEOF; goto zzForActionBreak; } else { - // store back cached positions - zzCurrentPos = zzCurrentPosL; - zzMarkedPos = zzMarkedPosL; - bool eof = ZzRefill(); - // get translated positions and possibly new buffer - zzCurrentPosL = zzCurrentPos; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - zzEndReadL = zzEndRead; - if (eof) - { - zzInput = StandardTokenizerInterface_Fields.YYEOF; - goto zzForActionBreak; - } - else - { - zzInput = zzBufferL[zzCurrentPosL++]; - } - } - int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; - if (zzNext == -1) - { - goto zzForActionBreak; + zzInput = zzBufferL[zzCurrentPosL++]; } - zzState = zzNext; + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) + { + goto zzForActionBreak; + } + zzState = zzNext; - zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) { - zzAction = zzState; - zzMarkedPosL = zzCurrentPosL; - if ((zzAttributes & 8) == 8) - { - goto zzForActionBreak; - } + goto zzForActionBreak; } - } + } + } zzForActionBreak: - // store back cached position - zzMarkedPos = zzMarkedPosL; + // store back cached position + zzMarkedPos = zzMarkedPosL; - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) - { - case 1: - { // Break so we don't hit fall-through warning: - break; // Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. - } - goto case 9; - case 9: - break; - case 2: - { - return WORD_TYPE; - } - case 10: - break; - case 3: - { - return NUMERIC_TYPE; - } - case 11: - break; - case 4: - { - return KATAKANA_TYPE; - } - case 12: - break; - case 5: - { - return SOUTH_EAST_ASIAN_TYPE; - } - case 13: - break; - case 6: - { - return IDEOGRAPHIC_TYPE; - } - case 14: - break; - case 7: - { - return HIRAGANA_TYPE; - } - case 15: - break; - case 8: - { - return HANGUL_TYPE; - } - case 16: - break; - default: - if (zzInput == StandardTokenizerInterface_Fields.YYEOF && zzStartRead == zzCurrentPos) - { - zzAtEOF = true; - { - return StandardTokenizerInterface_Fields.YYEOF; - } - } - else + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { // Break so we don't hit fall-through warning: + break; // Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. + } + goto case 9; + case 9: + break; + case 2: + { + return WORD_TYPE; + } + case 10: + break; + case 3: + { + return NUMERIC_TYPE; + } + case 11: + break; + case 4: + { + return KATAKANA_TYPE; + } + case 12: + break; + case 5: + { + return SOUTH_EAST_ASIAN_TYPE; + } + case 13: + break; + case 6: + { + return IDEOGRAPHIC_TYPE; + } + case 14: + break; + case 7: + { + return HIRAGANA_TYPE; + } + case 15: + break; + case 8: + { + return HANGUL_TYPE; + } + case 16: + break; + default: + if (zzInput == StandardTokenizerInterface_Fields.YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; { - ZzScanError(ZZ_NO_MATCH); + return StandardTokenizerInterface_Fields.YYEOF; } - break; - } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; } } } diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerInterface.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerInterface.cs index 5ead059a0e..47426855b9 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerInterface.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerInterface.cs @@ -62,7 +62,7 @@ public interface IStandardTokenizerInterface ///
/// the next token, on end of stream /// if any I/O-Error occurs - int NextToken { get; } + int GetNextToken(); } diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/UAX29URLEmailTokenizerImpl31.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/UAX29URLEmailTokenizerImpl31.cs new file mode 100644 index 0000000000..2b2f5f478a --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/UAX29URLEmailTokenizerImpl31.cs @@ -0,0 +1,3670 @@ +using Lucene.Net.Analysis.Tokenattributes; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Standard.Std31 +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// This class implements UAX29URLEmailTokenizer, except with a bug + /// (https://issues.apache.org/jira/browse/LUCENE-3358) where Han and Hiragana + /// characters would be split from combining characters: + /// @deprecated This class is only for exact backwards compatibility + /// + [Obsolete("This class is only for exact backwards compatibility")] + public sealed class UAX29URLEmailTokenizerImpl31 : IStandardTokenizerInterface + { + /// This character denotes the end of file + public static readonly int YYEOF = -1; + + /// initial size of the lookahead buffer + private static readonly int ZZ_BUFFERSIZE = 4096; + + /// lexical states + public const int YYINITIAL = 0; + + /// + /// ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + /// ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + /// at the beginning of a line + /// l is of the form l = 2*k, k a non negative integer + /// + private static readonly int[] ZZ_LEXSTATE = { 0, 0 }; + + /// Translates characters to character classes + private static readonly string ZZ_CMAP_PACKED = + "\x0001\x009F\x0008\x009D\x0002\x009F\x0002\x009D\x0001\x009F\x0013\x009D\x0001\x00A0\x0001\x009C\x0001\x0097\x0001\x00A0" + + "\x0001\x0090\x0001\x008E\x0001\x0093\x0002\x0091\x0002\x00A0\x0001\x0092\x0001\x0082\x0001\x0067\x0001\x0096\x0001\x0083" + + "\x0001\x0086\x0001\x008C\x0001\x0087\x0001\x008A\x0001\x0084\x0001\x0085\x0001\x0089\x0001\x008B\x0001\x0088\x0001\x008D" + + "\x0001\x009A\x0001\x009D\x0001\x009B\x0001\x009D\x0001\x0095\x0001\x0094\x0001\x0068\x0001\x007C\x0001\x0069\x0001\x006A" + + "\x0001\x006B\x0001\x006E\x0001\x006F\x0001\x007D\x0001\x0070\x0001\x007E\x0001\x0081\x0001\x0071\x0001\x0072\x0001\x0073" + + "\x0001\x006D\x0001\x0075\x0001\x0074\x0001\x006C\x0001\x0076\x0001\x0077\x0001\x0078\x0001\x007F\x0001\x0079\x0001\x007A" + + "\x0001\x0080\x0001\x007B\x0001\x0098\x0001\x009E\x0001\x0099\x0001\x00A1\x0001\x008F\x0001\x00A1\x0001\x0068\x0001\x007C" + + "\x0001\x0069\x0001\x006A\x0001\x006B\x0001\x006E\x0001\x006F\x0001\x007D\x0001\x0070\x0001\x007E\x0001\x0081\x0001\x0071" + + "\x0001\x0072\x0001\x0073\x0001\x006D\x0001\x0075\x0001\x0074\x0001\x006C\x0001\x0076\x0001\x0077\x0001\x0078\x0001\x007F" + + "\x0001\x0079\x0001\x007A\x0001\x0080\x0001\x007B\x0003\x00A1\x0001\x008E\x0001\x00A2\x002A\x0000\x0001\x005A\x0002\x0000" + + "\x0001\x005B\x0007\x0000\x0001\x005A\x0001\x0000\x0001\x005E\x0002\x0000\x0001\x005A\x0005\x0000\x0017\x005A\x0001\x0000" + + "\x001F\x005A\x0001\x0000\u01ca\x005A\x0004\x0000\x000C\x005A\x000E\x0000\x0005\x005A\x0007\x0000\x0001\x005A\x0001\x0000" + + "\x0001\x005A\x0011\x0000\x0070\x005B\x0005\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0004\x005A\x0001\x005F\x0007\x0000" + + "\x0001\x005A\x0001\x005E\x0003\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0014\x005A\x0001\x0000\x0053\x005A\x0001\x0000" + + "\x008B\x005A\x0001\x0000\x0007\x005B\x009E\x005A\x0009\x0000\x0026\x005A\x0002\x0000\x0001\x005A\x0007\x0000\x0027\x005A" + + "\x0001\x0000\x0001\x005F\x0007\x0000\x002D\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0002\x005B\x0001\x0000\x0002\x005B" + + "\x0001\x0000\x0001\x005B\x0008\x0000\x001B\x005A\x0005\x0000\x0004\x005A\x0001\x005E\x000B\x0000\x0004\x005B\x0008\x0000" + + "\x0002\x005F\x0002\x0000\x000B\x005B\x0005\x0000\x002B\x005A\x0015\x005B\x000A\x005C\x0001\x0000\x0001\x005C\x0001\x005F" + + "\x0001\x0000\x0002\x005A\x0001\x005B\x0063\x005A\x0001\x0000\x0001\x005A\x0007\x005B\x0001\x005B\x0001\x0000\x0006\x005B" + + "\x0002\x005A\x0002\x005B\x0001\x0000\x0004\x005B\x0002\x005A\x000A\x005C\x0003\x005A\x0002\x0000\x0001\x005A\x000F\x0000" + + "\x0001\x005B\x0001\x005A\x0001\x005B\x001E\x005A\x001B\x005B\x0002\x0000\x0059\x005A\x000B\x005B\x0001\x005A\x000E\x0000" + + "\x000A\x005C\x0021\x005A\x0009\x005B\x0002\x005A\x0002\x0000\x0001\x005F\x0001\x0000\x0001\x005A\x0005\x0000\x0016\x005A" + + "\x0004\x005B\x0001\x005A\x0009\x005B\x0001\x005A\x0003\x005B\x0001\x005A\x0005\x005B\x0012\x0000\x0019\x005A\x0003\x005B" + + "\x00A4\x0000\x0004\x005B\x0036\x005A\x0003\x005B\x0001\x005A\x0012\x005B\x0001\x005A\x0007\x005B\x000A\x005A\x0002\x005B" + + "\x0002\x0000\x000A\x005C\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0003\x005B\x0001\x0000\x0008\x005A" + + "\x0002\x0000\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0003\x0000\x0004\x005A" + + "\x0002\x0000\x0001\x005B\x0001\x005A\x0007\x005B\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0001\x005A\x0008\x0000" + + "\x0001\x005B\x0004\x0000\x0002\x005A\x0001\x0000\x0003\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0002\x005A\x000F\x0000" + + "\x0003\x005B\x0001\x0000\x0006\x005A\x0004\x0000\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000" + + "\x0002\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0001\x005B\x0001\x0000\x0005\x005B\x0004\x0000" + + "\x0002\x005B\x0002\x0000\x0003\x005B\x0003\x0000\x0001\x005B\x0007\x0000\x0004\x005A\x0001\x0000\x0001\x005A\x0007\x0000" + + "\x000A\x005C\x0002\x005B\x0003\x005A\x0001\x005B\x000B\x0000\x0003\x005B\x0001\x0000\x0009\x005A\x0001\x0000\x0003\x005A" + + "\x0001\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B" + + "\x0001\x005A\x0008\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0003\x005B\x0002\x0000\x0001\x005A\x000F\x0000\x0002\x005A" + + "\x0002\x005B\x0002\x0000\x000A\x005C\x0011\x0000\x0003\x005B\x0001\x0000\x0008\x005A\x0002\x0000\x0002\x005A\x0002\x0000" + + "\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B\x0001\x005A" + + "\x0007\x005B\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0008\x0000\x0002\x005B\x0004\x0000\x0002\x005A\x0001\x0000" + + "\x0003\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0001\x005A\x0010\x0000\x0001\x005B\x0001\x005A\x0001\x0000" + + "\x0006\x005A\x0003\x0000\x0003\x005A\x0001\x0000\x0004\x005A\x0003\x0000\x0002\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0002\x005A\x0003\x0000\x0002\x005A\x0003\x0000\x0003\x005A\x0003\x0000\x000C\x005A\x0004\x0000\x0005\x005B\x0003\x0000" + + "\x0003\x005B\x0001\x0000\x0004\x005B\x0002\x0000\x0001\x005A\x0006\x0000\x0001\x005B\x000E\x0000\x000A\x005C\x0011\x0000" + + "\x0003\x005B\x0001\x0000\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000" + + "\x0005\x005A\x0003\x0000\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B" + + "\x0001\x0000\x0002\x005A\x0006\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0012\x0000\x0002\x005B\x0001\x0000" + + "\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000\x0005\x005A\x0002\x0000" + + "\x0001\x005B\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B\x0007\x0000" + + "\x0001\x005A\x0001\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0002\x005A\x000F\x0000\x0002\x005B" + + "\x0001\x0000\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0029\x005A\x0002\x0000\x0001\x005A\x0007\x005B\x0001\x0000" + + "\x0003\x005B\x0001\x0000\x0004\x005B\x0001\x005A\x0008\x0000\x0001\x005B\x0008\x0000\x0002\x005A\x0002\x005B\x0002\x0000" + + "\x000A\x005C\x000A\x0000\x0006\x005A\x0002\x0000\x0002\x005B\x0001\x0000\x0012\x005A\x0003\x0000\x0018\x005A\x0001\x0000" + + "\x0009\x005A\x0001\x0000\x0001\x005A\x0002\x0000\x0007\x005A\x0003\x0000\x0001\x005B\x0004\x0000\x0006\x005B\x0001\x0000" + + "\x0001\x005B\x0001\x0000\x0008\x005B\x0012\x0000\x0002\x005B\x000D\x0000\x0030\x0062\x0001\x0063\x0002\x0062\x0007\x0063" + + "\x0005\x0000\x0007\x0062\x0008\x0063\x0001\x0000\x000A\x005C\x0027\x0000\x0002\x0062\x0001\x0000\x0001\x0062\x0002\x0000" + + "\x0002\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0001\x0062\x0006\x0000\x0004\x0062\x0001\x0000\x0007\x0062\x0001\x0000" + + "\x0003\x0062\x0001\x0000\x0001\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0002\x0062\x0001\x0000\x0004\x0062\x0001\x0063" + + "\x0002\x0062\x0006\x0063\x0001\x0000\x0002\x0063\x0001\x0062\x0002\x0000\x0005\x0062\x0001\x0000\x0001\x0062\x0001\x0000" + + "\x0006\x0063\x0002\x0000\x000A\x005C\x0002\x0000\x0002\x0062\x0022\x0000\x0001\x005A\x0017\x0000\x0002\x005B\x0006\x0000" + + "\x000A\x005C\x000B\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0004\x0000\x0002\x005B\x0008\x005A" + + "\x0001\x0000\x0024\x005A\x0004\x0000\x0014\x005B\x0001\x0000\x0002\x005B\x0005\x005A\x000B\x005B\x0001\x0000\x0024\x005B" + + "\x0009\x0000\x0001\x005B\x0039\x0000\x002B\x0062\x0014\x0063\x0001\x0062\x000A\x005C\x0006\x0000\x0006\x0062\x0004\x0063" + + "\x0004\x0062\x0003\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0007\x0063\x0003\x0062\x0004\x0063\x000D\x0062\x000C\x0063" + + "\x0001\x0062\x0001\x0063\x000A\x005C\x0004\x0063\x0002\x0062\x0026\x005A\x000A\x0000\x002B\x005A\x0001\x0000\x0001\x005A" + + "\x0003\x0000\u0100\x0066\x0049\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0004\x005A\x0002\x0000\x0029\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0021\x005A\x0001\x0000\x0004\x005A\x0002\x0000" + + "\x0007\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x000F\x005A\x0001\x0000\x0039\x005A\x0001\x0000" + + "\x0004\x005A\x0002\x0000\x0043\x005A\x0002\x0000\x0003\x005B\x0020\x0000\x0010\x005A\x0010\x0000\x0055\x005A\x000C\x0000" + + "\u026c\x005A\x0002\x0000\x0011\x005A\x0001\x0000\x001A\x005A\x0005\x0000\x004B\x005A\x0003\x0000\x0003\x005A\x000F\x0000" + + "\x000D\x005A\x0001\x0000\x0004\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0002\x005B" + + "\x000C\x0000\x000D\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0002\x005B\x000C\x0000\x0034\x0062\x0002\x0063\x001E\x0063" + + "\x0003\x0000\x0001\x0062\x0004\x0000\x0001\x0062\x0001\x0063\x0002\x0000\x000A\x005C\x0021\x0000\x0003\x005B\x0002\x0000" + + "\x000A\x005C\x0006\x0000\x0058\x005A\x0008\x0000\x0029\x005A\x0001\x005B\x0001\x005A\x0005\x0000\x0046\x005A\x000A\x0000" + + "\x001D\x005A\x0003\x0000\x000C\x005B\x0004\x0000\x000C\x005B\x000A\x0000\x000A\x005C\x001E\x0062\x0002\x0000\x0005\x0062" + + "\x000B\x0000\x002C\x0062\x0004\x0000\x0011\x0063\x0007\x0062\x0002\x0063\x0006\x0000\x000A\x005C\x0001\x0062\x0003\x0000" + + "\x0002\x0062\x0020\x0000\x0017\x005A\x0005\x005B\x0004\x0000\x0035\x0062\x000A\x0063\x0001\x0000\x001D\x0063\x0002\x0000" + + "\x0001\x005B\x000A\x005C\x0006\x0000\x000A\x005C\x0006\x0000\x000E\x0062\x0052\x0000\x0005\x005B\x002F\x005A\x0011\x005B" + + "\x0007\x005A\x0004\x0000\x000A\x005C\x0011\x0000\x0009\x005B\x000C\x0000\x0003\x005B\x001E\x005A\x000A\x005B\x0003\x0000" + + "\x0002\x005A\x000A\x005C\x0006\x0000\x0026\x005A\x000E\x005B\x000C\x0000\x0024\x005A\x0014\x005B\x0008\x0000\x000A\x005C" + + "\x0003\x0000\x0003\x005A\x000A\x005C\x0024\x005A\x0052\x0000\x0003\x005B\x0001\x0000\x0015\x005B\x0004\x005A\x0001\x005B" + + "\x0004\x005A\x0001\x005B\x000D\x0000\x00C0\x005A\x0027\x005B\x0015\x0000\x0004\x005B\u0116\x005A\x0002\x0000\x0006\x005A" + + "\x0002\x0000\x0026\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0008\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A" + + "\x0001\x0000\x0001\x005A\x0001\x0000\x001F\x005A\x0002\x0000\x0035\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A" + + "\x0003\x0000\x0003\x005A\x0001\x0000\x0007\x005A\x0003\x0000\x0004\x005A\x0002\x0000\x0006\x005A\x0004\x0000\x000D\x005A" + + "\x0005\x0000\x0003\x005A\x0001\x0000\x0007\x005A\x000F\x0000\x0002\x005B\x0002\x005B\x0008\x0000\x0002\x0060\x000A\x0000" + + "\x0001\x0060\x0002\x0000\x0001\x005E\x0002\x0000\x0005\x005B\x0010\x0000\x0002\x0061\x0003\x0000\x0001\x005F\x000F\x0000" + + "\x0001\x0061\x000B\x0000\x0005\x005B\x0005\x0000\x0006\x005B\x0001\x0000\x0001\x005A\x000D\x0000\x0001\x005A\x0010\x0000" + + "\x000D\x005A\x0033\x0000\x0021\x005B\x0011\x0000\x0001\x005A\x0004\x0000\x0001\x005A\x0002\x0000\x000A\x005A\x0001\x0000" + + "\x0001\x005A\x0003\x0000\x0005\x005A\x0006\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0004\x005A\x0001\x0000\x000B\x005A\x0002\x0000\x0004\x005A\x0005\x0000\x0005\x005A\x0004\x0000\x0001\x005A\x0011\x0000" + + "\x0029\x005A\u032d\x0000\x0034\x005A\u0716\x0000\x002F\x005A\x0001\x0000\x002F\x005A\x0001\x0000\x0085\x005A\x0006\x0000" + + "\x0004\x005A\x0003\x005B\x000E\x0000\x0026\x005A\x000A\x0000\x0036\x005A\x0009\x0000\x0001\x005A\x000F\x0000\x0001\x005B" + + "\x0017\x005A\x0009\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000" + + "\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0020\x005B\x002F\x0000" + + "\x0001\x005A\x0050\x0000\x001A\x0064\x0001\x0000\x0059\x0064\x000C\x0000\x00D6\x0064\x002F\x0000\x0001\x005A\x0001\x0000" + + "\x0001\x0064\x0019\x0000\x0009\x0064\x0004\x005B\x0002\x005B\x0001\x0000\x0005\x005D\x0002\x0000\x0003\x0064\x0001\x005A" + + "\x0001\x005A\x0004\x0000\x0056\x0065\x0002\x0000\x0002\x005B\x0002\x005D\x0003\x0065\x005B\x005D\x0001\x0000\x0004\x005D" + + "\x0005\x0000\x0029\x005A\x0003\x0000\x005E\x0066\x0011\x0000\x001B\x005A\x0035\x0000\x0010\x005D\x001F\x0000\x0041\x0000" + + "\x001F\x0000\x0051\x0000\x002F\x005D\x0001\x0000\x0058\x005D\x00A8\x0000\u19b6\x0064\x004A\x0000\u51cc\x0064\x0034\x0000" + + "\u048d\x005A\x0043\x0000\x002E\x005A\x0002\x0000\u010d\x005A\x0003\x0000\x0010\x005A\x000A\x005C\x0002\x005A\x0014\x0000" + + "\x002F\x005A\x0004\x005B\x0009\x0000\x0002\x005B\x0001\x0000\x0019\x005A\x0008\x0000\x0050\x005A\x0002\x005B\x0025\x0000" + + "\x0009\x005A\x0002\x0000\x0067\x005A\x0002\x0000\x0004\x005A\x0001\x0000\x0002\x005A\x000E\x0000\x000A\x005A\x0050\x0000" + + "\x0008\x005A\x0001\x005B\x0003\x005A\x0001\x005B\x0004\x005A\x0001\x005B\x0017\x005A\x0005\x005B\x0018\x0000\x0034\x005A" + + "\x000C\x0000\x0002\x005B\x0032\x005A\x0011\x005B\x000B\x0000\x000A\x005C\x0006\x0000\x0012\x005B\x0006\x005A\x0003\x0000" + + "\x0001\x005A\x0004\x0000\x000A\x005C\x001C\x005A\x0008\x005B\x0002\x0000\x0017\x005A\x000D\x005B\x000C\x0000\x001D\x0066" + + "\x0003\x0000\x0004\x005B\x002F\x005A\x000E\x005B\x000E\x0000\x0001\x005A\x000A\x005C\x0026\x0000\x0029\x005A\x000E\x005B" + + "\x0009\x0000\x0003\x005A\x0001\x005B\x0008\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0006\x0000\x001B\x0062\x0001\x0063" + + "\x0004\x0000\x0030\x0062\x0001\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0002\x0063\x0005\x0062\x0002\x0063\x0001\x0062" + + "\x0001\x0063\x0001\x0062\x0018\x0000\x0005\x0062\x0021\x0000\x0006\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0006\x005A" + + "\x0009\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0091\x0000\x0023\x005A\x0008\x005B\x0001\x0000\x0002\x005B\x0002\x0000" + + "\x000A\x005C\x0006\x0000\u2ba4\x0066\x000C\x0000\x0017\x0066\x0004\x0000\x0031\x0066\x0004\x0000\x0001\x0019\x0001\x0015" + + "\x0001\x0026\x0001\x0023\x0001\x000B\x0003\x0000\x0001\x0007\x0001\x0005\x0002\x0000\x0001\x0003\x0001\x0001\x000C\x0000" + + "\x0001\x0009\x0011\x0000\x0001\x004A\x0007\x0000\x0001\x0035\x0001\x000F\x0006\x0000\x0001\x0058\x0003\x0000\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0051\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0055\x0001\x0053\x000F\x0000\x0001\x004C\u02c1\x0000\x0001\x0038" + + "\x00BF\x0000\x0001\x004B\x0001\x0039\x0001\x0002\x0003\x0054\x0002\x001D\x0001\x0054\x0001\x001D\x0002\x0054\x0001\x000C" + + "\x0011\x0054\x0002\x0030\x0007\x003B\x0001\x003A\x0007\x003B\x0007\x002A\x0001\x000D\x0001\x002A\x0001\x003D\x0002\x0025" + + "\x0001\x0024\x0001\x003D\x0001\x0025\x0001\x0024\x0008\x003D\x0002\x0033\x0005\x0031\x0002\x002C\x0005\x0031\x0001\x0006" + + "\x0008\x001F\x0005\x0011\x0003\x0017\x000A\x0046\x0010\x0017\x0003\x0022\x001A\x0018\x0001\x0016\x0002\x0014\x0002\x0048" + + "\x0001\x0049\x0002\x0048\x0002\x0049\x0002\x0048\x0001\x0049\x0003\x0014\x0001\x000E\x0002\x0014\x000A\x0034\x0001\x003C" + + "\x0001\x0021\x0001\x001C\x0001\x0034\x0006\x0021\x0001\x001C\x0036\x0021\x0005\x004D\x0006\x0043\x0001\x0029\x0004\x0043" + + "\x0002\x0029\x0008\x0043\x0001\x0029\x0007\x0040\x0001\x000A\x0002\x0040\x001A\x0043\x0001\x000A\x0004\x0040\x0001\x000A" + + "\x0005\x0042\x0001\x0041\x0001\x0042\x0003\x0041\x0007\x0042\x0001\x0041\x0013\x0042\x0005\x0037\x0003\x0042\x0006\x0037" + + "\x0002\x0037\x0006\x0036\x0008\x0036\x0002\x0040\x0007\x0036\x001E\x0040\x0004\x0036\x0042\x0040\x000D\x004D\x0001\x003F" + + "\x0002\x004D\x0001\x0059\x0003\x004F\x0001\x004D\x0002\x004F\x0005\x004D\x0004\x004F\x0004\x004E\x0001\x004D\x0003\x004E" + + "\x0001\x004D\x0005\x004E\x0016\x002E\x0004\x0013\x0001\x0045\x0002\x0044\x0004\x0052\x0001\x0044\x0002\x0052\x0003\x003E" + + "\x001B\x0052\x001D\x002D\x0003\x0052\x001D\x0056\x0003\x0052\x0006\x0056\x0002\x001B\x0019\x0056\x0001\x001B\x000F\x0056" + + "\x0006\x0052\x0004\x0012\x0001\x0008\x001F\x0012\x0001\x0008\x0004\x0012\x0015\x0032\x0001\x0057\x0009\x0032\x0011\x002D" + + "\x0005\x0032\x0001\x002F\x000A\x0020\x000B\x0032\x0004\x002D\x0001\x0028\x0006\x002D\x000A\x0052\x000F\x002D\x0001\x0027" + + "\x0003\x002B\x000D\x0010\x0009\x001E\x0001\x001A\x0014\x001E\x0002\x0010\x0009\x001E\x0001\x001A\x0019\x001E\x0001\x001A" + + "\x0004\x0010\x0004\x001E\x0002\x001A\x0002\x0047\x0001\x0004\x0005\x0047\x002A\x0004\u1900\x0000\u012e\x0064\x0002\x0000" + + "\x003E\x0064\x0002\x0000\x006A\x0064\x0026\x0000\x0007\x005A\x000C\x0000\x0005\x005A\x0005\x0000\x0001\x005A\x0001\x005B" + + "\x000A\x005A\x0001\x0000\x000D\x005A\x0001\x0000\x0005\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0002\x005A\x0001\x0000" + + "\x0002\x005A\x0001\x0000\x006C\x005A\x0021\x0000\u016b\x005A\x0012\x0000\x0040\x005A\x0002\x0000\x0036\x005A\x0028\x0000" + + "\x000C\x005A\x0004\x0000\x0010\x005B\x0001\x005F\x0002\x0000\x0001\x005E\x0001\x005F\x000B\x0000\x0007\x005B\x000C\x0000" + + "\x0002\x0061\x0018\x0000\x0003\x0061\x0001\x005F\x0001\x0000\x0001\x0060\x0001\x0000\x0001\x005F\x0001\x005E\x001A\x0000" + + "\x0005\x005A\x0001\x0000\x0087\x005A\x0002\x0000\x0001\x005B\x0007\x0000\x0001\x0060\x0004\x0000\x0001\x005F\x0001\x0000" + + "\x0001\x0060\x0001\x0000\x000A\x005C\x0001\x005E\x0001\x005F\x0005\x0000\x001A\x005A\x0004\x0000\x0001\x0061\x0001\x0000" + + "\x001A\x005A\x000B\x0000\x0038\x005D\x0002\x005B\x001F\x0066\x0003\x0000\x0006\x0066\x0002\x0000\x0006\x0066\x0002\x0000" + + "\x0006\x0066\x0002\x0000\x0003\x0066\x001C\x0000\x0003\x005B\x0004\x0000"; + + /// Translates characters to character classes + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /// Translates DFA states to action switch labels. + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = + "\x0001\x0000\x0013\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + + "\x0001\x0007\x0001\x0008\x0001\x0001\x0003\x0002\x0003\x0003\x0003\x0001\x000D\x0000\x0001\x0002" + + "\x0001\x0000\x0001\x0002\x0008\x0000\x0001\x0003\x000D\x0000\x0001\x0002\x000A\x0000\x0002\x0002" + + "\x0001\x0000\x0003\x0002\x0001\x0000\x0001\x0003\x0001\x0000\x0002\x0003\x0001\x0002\x0001\x0003" + + "\x002B\x0000\x001A\x0002\x0003\x0000\x0004\x0002\x001A\x0000\x0004\x0003\x000F\x0000\x0001\x0009" + + "\x0001\x0000\x0006\x000A\x0003\x0002\x0002\x000A\x0001\x0002\x0004\x000A\x0001\x0002\x0002\x000A" + + "\x0002\x0000\x0001\x0002\x0001\x0000\x0001\x0002\x0006\x000A\x0003\x0000\x0002\x000A\x0001\x0000" + + "\x0004\x000A\x0001\x0000\x0002\x000A\x0001\x0000\x0002\x0003\x0008\x0000\x0001\x000A\x001A\x0000" + + "\x0001\x000A\x0001\x0000\x0003\x000A\x0006\x0002\x0001\x0000\x0001\x0002\x0002\x0000\x0001\x0002" + + "\x0001\x0000\x0001\x000A\x0008\x0000\x0003\x0003\x000D\x0000\x0003\x000A\x0006\x0009\x0003\x0000" + + "\x0002\x0009\x0001\x0000\x0004\x0009\x0001\x0000\x0002\x0009\x0002\x000A\x0001\x0000\x0002\x000A" + + "\x0001\x0000\x0002\x000A\x0001\x0000\x0001\x000A\x0002\x0002\x0007\x0000\x0002\x0003\x0010\x0000" + + "\x0001\x0009\x0008\x0000\x0001\x000A\x0003\x0000\x0001\x0002\x001E\x0000\x0003\x000A\x0013\x0000" + + "\x0001\x000A\x001E\x0000\x0001\x000A\x0004\x0000\x0001\x000A\x0006\x0000\x0001\x000A\x0004\x0000" + + "\x0002\x000A\x0022\x0000\x0001\x000A\x002F\x0000\x0001\x000A\x0029\x0000\x0001\x000A\x0030\x0000" + + "\x0001\x000A\x0060\x0000\x0001\x000A\x005D\x0000\x0001\x000A\x0053\x0000\x0001\x000A\x0046\x0000" + + "\x0001\x000A\x002F\x0000\x0001\x000A\x00F2\x0000"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[1331]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private const string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x00A3\x0000\u0146\x0000\u01e9\x0000\u028c\x0000\u032f\x0000\u03d2\x0000\u0475" + + "\x0000\u0518\x0000\u05bb\x0000\u065e\x0000\u0701\x0000\u07a4\x0000\u0847\x0000\u08ea\x0000\u098d" + + "\x0000\u0a30\x0000\u0ad3\x0000\u0b76\x0000\u0c19\x0000\u0cbc\x0000\u0d5f\x0000\u0e02\x0000\u0ea5" + + "\x0000\u0f48\x0000\x00A3\x0000\x00A3\x0000\u0feb\x0000\u108e\x0000\u1131\x0000\u11d4\x0000\u1277" + + "\x0000\u131a\x0000\u13bd\x0000\u1460\x0000\u1503\x0000\u15a6\x0000\u1649\x0000\u0146\x0000\u01e9" + + "\x0000\u028c\x0000\u032f\x0000\u03d2\x0000\u16ec\x0000\u178f\x0000\u1832\x0000\u18d5\x0000\u0701" + + "\x0000\u1978\x0000\u1a1b\x0000\u1abe\x0000\u1b61\x0000\u1c04\x0000\u1ca7\x0000\u1d4a\x0000\u0518" + + "\x0000\u05bb\x0000\u1ded\x0000\u1e90\x0000\u1f33\x0000\u1fd6\x0000\u2079\x0000\u211c\x0000\u21bf" + + "\x0000\u2262\x0000\u2305\x0000\u23a8\x0000\u244b\x0000\u24ee\x0000\u2591\x0000\u2634\x0000\u26d7" + + "\x0000\u277a\x0000\u281d\x0000\u28c0\x0000\u0ea5\x0000\u2963\x0000\u2a06\x0000\u2aa9\x0000\u2b4c" + + "\x0000\u2bef\x0000\u2c92\x0000\u2d35\x0000\u108e\x0000\u2dd8\x0000\u2e7b\x0000\u2f1e\x0000\u2fc1" + + "\x0000\u3064\x0000\u3107\x0000\u31aa\x0000\u324d\x0000\u32f0\x0000\u3393\x0000\u3436\x0000\u34d9" + + "\x0000\u357c\x0000\u361f\x0000\u36c2\x0000\u3765\x0000\u1503\x0000\u3808\x0000\u38ab\x0000\u1649" + + "\x0000\u394e\x0000\u39f1\x0000\u3a94\x0000\u3b37\x0000\u3bda\x0000\u3c7d\x0000\u3d20\x0000\u3dc3" + + "\x0000\u3e66\x0000\u3f09\x0000\u3fac\x0000\u404f\x0000\u40f2\x0000\u4195\x0000\u4238\x0000\u42db" + + "\x0000\u437e\x0000\u4421\x0000\u44c4\x0000\u4567\x0000\u460a\x0000\u46ad\x0000\u4750\x0000\u47f3" + + "\x0000\u4896\x0000\u4939\x0000\u49dc\x0000\u4a7f\x0000\u4b22\x0000\u4bc5\x0000\u4c68\x0000\u4d0b" + + "\x0000\u4dae\x0000\u4e51\x0000\u4ef4\x0000\u4f97\x0000\u503a\x0000\u50dd\x0000\u5180\x0000\u5223" + + "\x0000\u52c6\x0000\u5369\x0000\u540c\x0000\u54af\x0000\u5552\x0000\u55f5\x0000\u5698\x0000\u573b" + + "\x0000\u57de\x0000\u5881\x0000\u5924\x0000\u59c7\x0000\u5a6a\x0000\u5b0d\x0000\u5bb0\x0000\u5c53" + + "\x0000\u5cf6\x0000\u5d99\x0000\u5e3c\x0000\u5edf\x0000\u5f82\x0000\u6025\x0000\u60c8\x0000\u616b" + + "\x0000\u620e\x0000\u62b1\x0000\u6354\x0000\u63f7\x0000\u649a\x0000\u653d\x0000\u65e0\x0000\u6683" + + "\x0000\u6726\x0000\u67c9\x0000\u686c\x0000\u690f\x0000\u69b2\x0000\u6a55\x0000\u6af8\x0000\u6b9b" + + "\x0000\u6c3e\x0000\u6ce1\x0000\u6d84\x0000\u6e27\x0000\u6eca\x0000\u6f6d\x0000\u7010\x0000\u70b3" + + "\x0000\u7156\x0000\u71f9\x0000\u729c\x0000\u733f\x0000\u73e2\x0000\u7485\x0000\u7528\x0000\u75cb" + + "\x0000\u766e\x0000\u7711\x0000\u77b4\x0000\u7857\x0000\u78fa\x0000\u799d\x0000\u7a40\x0000\u7ae3" + + "\x0000\u7b86\x0000\u7c29\x0000\u7ccc\x0000\u7d6f\x0000\u7e12\x0000\u7eb5\x0000\u7f58\x0000\u7ffb" + + "\x0000\u809e\x0000\u8141\x0000\u81e4\x0000\u8287\x0000\u832a\x0000\x00A3\x0000\u83cd\x0000\u8470" + + "\x0000\u8513\x0000\u85b6\x0000\u8659\x0000\u86fc\x0000\u879f\x0000\u8842\x0000\u88e5\x0000\u8988" + + "\x0000\u8a2b\x0000\u8ace\x0000\u8b71\x0000\u8c14\x0000\u8cb7\x0000\u8d5a\x0000\u8dfd\x0000\u8ea0" + + "\x0000\u8f43\x0000\u8fe6\x0000\u9089\x0000\u912c\x0000\u91cf\x0000\u9272\x0000\u9315\x0000\u93b8" + + "\x0000\u945b\x0000\u94fe\x0000\u95a1\x0000\u9644\x0000\u96e7\x0000\u978a\x0000\u982d\x0000\u98d0" + + "\x0000\u9973\x0000\u9a16\x0000\u9ab9\x0000\u9b5c\x0000\u9bff\x0000\u9ca2\x0000\u9d45\x0000\u9de8" + + "\x0000\u9e8b\x0000\u9f2e\x0000\u9fd1\x0000\ua074\x0000\ua117\x0000\ua1ba\x0000\ua25d\x0000\ua300" + + "\x0000\ua3a3\x0000\ua446\x0000\ua4e9\x0000\ua58c\x0000\ua62f\x0000\ua6d2\x0000\ua775\x0000\ua818" + + "\x0000\ua8bb\x0000\ua95e\x0000\uaa01\x0000\uaaa4\x0000\uab47\x0000\uabea\x0000\uac8d\x0000\uad30" + + "\x0000\uadd3\x0000\uae76\x0000\uaf19\x0000\uafbc\x0000\ub05f\x0000\ub102\x0000\ub1a5\x0000\ub248" + + "\x0000\ub2eb\x0000\ub38e\x0000\ub431\x0000\ub4d4\x0000\ub577\x0000\ub61a\x0000\ub6bd\x0000\ub760" + + "\x0000\ub803\x0000\ub8a6\x0000\ub949\x0000\ub9ec\x0000\uba8f\x0000\ubb32\x0000\ubbd5\x0000\ubc78" + + "\x0000\ubd1b\x0000\ubdbe\x0000\ube61\x0000\ubf04\x0000\ubfa7\x0000\uc04a\x0000\uc0ed\x0000\uc190" + + "\x0000\uc233\x0000\uc2d6\x0000\uc379\x0000\uc41c\x0000\uc4bf\x0000\uc562\x0000\uc605\x0000\uc6a8" + + "\x0000\uc74b\x0000\uc7ee\x0000\uc891\x0000\uc934\x0000\uc9d7\x0000\uca7a\x0000\ucb1d\x0000\ucbc0" + + "\x0000\ucc63\x0000\ucd06\x0000\ucda9\x0000\uce4c\x0000\uceef\x0000\ucf92\x0000\ud035\x0000\ud0d8" + + "\x0000\ud17b\x0000\ud21e\x0000\ud2c1\x0000\ud364\x0000\ud407\x0000\ud4aa\x0000\ud54d\x0000\ud5f0" + + "\x0000\ud693\x0000\ud736\x0000\ud7d9\x0000\ud87c\x0000\ud91f\x0000\ud9c2\x0000\uda65\x0000\udb08" + + "\x0000\udbab\x0000\udc4e\x0000\udcf1\x0000\udd94\x0000\ude37\x0000\udeda\x0000\udf7d\x0000\ue020" + + "\x0000\ue0c3\x0000\ue166\x0000\ue209\x0000\ue2ac\x0000\ue34f\x0000\ue3f2\x0000\ue495\x0000\ue538" + + "\x0000\ue5db\x0000\ue67e\x0000\ue721\x0000\ue7c4\x0000\ue867\x0000\ue90a\x0000\ue9ad\x0000\uea50" + + "\x0000\ueaf3\x0000\ueb96\x0000\uec39\x0000\uecdc\x0000\ued7f\x0000\uee22\x0000\ueec5\x0000\uef68" + + "\x0000\uf00b\x0000\uf0ae\x0000\uf151\x0000\uf1f4\x0000\uf297\x0000\uf33a\x0000\uf3dd\x0000\uf480" + + "\x0000\uf523\x0000\uf5c6\x0000\uf669\x0000\uf70c\x0000\uf7af\x0000\u8287\x0000\uf852\x0000\uf8f5" + + "\x0000\uf998\x0000\ufa3b\x0000\ufade\x0000\ufb81\x0000\ufc24\x0000\ufcc7\x0000\ufd6a\x0000\ufe0d" + + "\x0000\ufeb0\x0000\uff53\x0000\ufff6\x0001\x0099\x0001\u013c\x0001\u01df\x0001\u0282\x0001\u0325" + + "\x0001\u03c8\x0001\u046b\x0001\u050e\x0001\u05b1\x0001\u0654\x0001\u06f7\x0001\u079a\x0001\u083d" + + "\x0001\u08e0\x0001\u0983\x0001\u0a26\x0001\u0ac9\x0001\u0b6c\x0001\u0c0f\x0001\u0cb2\x0001\u0d55" + + "\x0001\u0df8\x0001\u0e9b\x0001\u0f3e\x0001\u0fe1\x0001\u1084\x0001\u1127\x0001\u11ca\x0001\u126d" + + "\x0001\u1310\x0001\u13b3\x0001\u1456\x0001\u14f9\x0001\u159c\x0001\u163f\x0001\u16e2\x0001\u1785" + + "\x0001\u1828\x0001\u18cb\x0001\u196e\x0001\u1a11\x0001\u1ab4\x0001\u1b57\x0001\u1bfa\x0001\u1c9d" + + "\x0001\u1d40\x0001\u1de3\x0001\u1e86\x0001\u1f29\x0001\u1fcc\x0001\u206f\x0001\u2112\x0001\u21b5" + + "\x0001\u2258\x0001\u22fb\x0001\u239e\x0001\u2441\x0001\u24e4\x0001\u2587\x0001\u262a\x0001\u26cd" + + "\x0001\u2770\x0001\u2813\x0001\u28b6\x0001\u2959\x0001\u29fc\x0001\u2a9f\x0001\u2b42\x0001\u2be5" + + "\x0001\u2c88\x0001\u2d2b\x0001\u2dce\x0001\u2e71\x0001\u2f14\x0001\u2fb7\x0001\u305a\x0001\u30fd" + + "\x0001\u31a0\x0001\u3243\x0001\u32e6\x0001\u3389\x0001\u342c\x0001\u34cf\x0001\u3572\x0001\u3615" + + "\x0001\u36b8\x0001\u375b\x0001\u37fe\x0001\u38a1\x0001\u3944\x0001\u39e7\x0001\u3a8a\x0001\u3b2d" + + "\x0001\u3bd0\x0001\u3c73\x0001\u3d16\x0001\u3db9\x0001\u3e5c\x0001\u3eff\x0000\u15a6\x0001\u3fa2" + + "\x0001\u4045\x0001\u40e8\x0001\u418b\x0001\u422e\x0001\u42d1\x0001\u4374\x0001\u4417\x0001\u44ba" + + "\x0001\u455d\x0001\u4600\x0001\u46a3\x0001\u4746\x0001\u47e9\x0001\u488c\x0001\u492f\x0001\u49d2" + + "\x0001\u4a75\x0001\u4b18\x0001\u4bbb\x0001\u4c5e\x0001\u4d01\x0001\u4da4\x0001\u4e47\x0001\u4eea" + + "\x0001\u4f8d\x0001\u5030\x0001\u50d3\x0001\u5176\x0001\u5219\x0001\u52bc\x0001\u535f\x0001\u5402" + + "\x0001\u54a5\x0001\u5548\x0001\u55eb\x0001\u568e\x0001\u5731\x0001\u57d4\x0001\u5877\x0001\u591a" + + "\x0001\u59bd\x0001\u5a60\x0001\u5b03\x0001\u5ba6\x0001\u5c49\x0001\u5cec\x0001\u5d8f\x0001\u5e32" + + "\x0001\u5ed5\x0001\u5f78\x0001\u601b\x0001\u60be\x0001\u6161\x0001\u6204\x0001\u62a7\x0001\u634a" + + "\x0001\u63ed\x0001\u6490\x0001\u6533\x0001\u65d6\x0001\u6679\x0001\u671c\x0001\u67bf\x0001\u6862" + + "\x0001\u6905\x0001\u69a8\x0001\u6a4b\x0001\u6aee\x0001\u6b91\x0001\u6c34\x0001\u6cd7\x0001\u6d7a" + + "\x0001\u6e1d\x0001\u6ec0\x0001\u6f63\x0001\u7006\x0001\u70a9\x0001\u714c\x0001\u71ef\x0001\u7292" + + "\x0001\u7335\x0001\u73d8\x0001\u747b\x0001\u751e\x0001\u75c1\x0001\u7664\x0001\u7707\x0001\u77aa" + + "\x0001\u784d\x0001\u78f0\x0001\u7993\x0001\u7a36\x0001\u7ad9\x0001\u7b7c\x0001\u7c1f\x0001\u7cc2" + + "\x0001\u7d65\x0001\u7e08\x0001\u7eab\x0001\u7f4e\x0001\u7ff1\x0001\u8094\x0001\u8137\x0001\u81da" + + "\x0001\u827d\x0001\u8320\x0001\u83c3\x0001\u8466\x0001\u8509\x0001\u85ac\x0001\u864f\x0001\u86f2" + + "\x0001\u8795\x0001\u8838\x0001\u88db\x0001\u897e\x0001\u8a21\x0001\u8ac4\x0001\u8b67\x0001\u8c0a" + + "\x0001\u8cad\x0001\u8d50\x0001\u8df3\x0001\u8e96\x0001\u8f39\x0001\u8fdc\x0001\u907f\x0001\u9122" + + "\x0001\u91c5\x0001\u9268\x0001\u930b\x0001\u93ae\x0001\u9451\x0001\u94f4\x0001\u9597\x0001\u963a" + + "\x0001\u96dd\x0001\u9780\x0001\u9823\x0001\u98c6\x0001\u9969\x0001\u9a0c\x0001\u9aaf\x0001\u9b52" + + "\x0001\u9bf5\x0001\u9c98\x0001\u9d3b\x0001\u9dde\x0001\u9e81\x0001\u9f24\x0001\u9fc7\x0001\ua06a" + + "\x0001\ua10d\x0001\ua1b0\x0001\ua253\x0001\ua2f6\x0001\ua399\x0001\ua43c\x0001\ua4df\x0001\ua582" + + "\x0001\ua625\x0001\ua6c8\x0001\ua76b\x0001\ua80e\x0001\ua8b1\x0001\ua954\x0001\ua9f7\x0001\uaa9a" + + "\x0001\uab3d\x0001\uabe0\x0001\uac83\x0001\uad26\x0001\uadc9\x0001\uae6c\x0001\uaf0f\x0001\uafb2" + + "\x0001\ub055\x0001\ub0f8\x0001\ub19b\x0001\ub23e\x0001\ub2e1\x0001\ub384\x0001\ub427\x0001\ub4ca" + + "\x0001\ub56d\x0001\ub610\x0001\ub6b3\x0001\ub756\x0001\ub7f9\x0001\ub89c\x0001\ub93f\x0001\ub9e2" + + "\x0001\uba85\x0001\ubb28\x0001\ubbcb\x0001\ubc6e\x0001\ubd11\x0001\ubdb4\x0001\ube57\x0001\ubefa" + + "\x0001\ubf9d\x0001\uc040\x0001\uc0e3\x0001\uc186\x0001\uc229\x0001\uc2cc\x0001\uc36f\x0001\uc412" + + "\x0001\uc4b5\x0001\uc558\x0001\uc5fb\x0001\uc69e\x0001\uc741\x0001\uc7e4\x0001\uc887\x0001\uc92a" + + "\x0001\uc9cd\x0001\uca70\x0001\ucb13\x0001\ucbb6\x0001\ucc59\x0001\uccfc\x0001\ucd9f\x0001\uce42" + + "\x0001\ucee5\x0001\ucf88\x0001\ud02b\x0001\ud0ce\x0001\ud171\x0001\ud214\x0001\ud2b7\x0001\ud35a" + + "\x0001\ud3fd\x0001\ud4a0\x0001\ud543\x0001\ud5e6\x0001\ud689\x0001\ud72c\x0001\ud7cf\x0001\ud872" + + "\x0001\ud915\x0001\ud9b8\x0001\uda5b\x0001\udafe\x0001\udba1\x0001\udc44\x0001\udce7\x0001\udd8a" + + "\x0001\ude2d\x0001\uded0\x0001\udf73\x0001\ue016\x0001\ue0b9\x0001\ue15c\x0001\ue1ff\x0001\ue2a2" + + "\x0001\ue345\x0001\ue3e8\x0001\ue48b\x0001\ue52e\x0001\ue5d1\x0001\ue674\x0001\ue717\x0001\ue7ba" + + "\x0001\ue85d\x0001\ue900\x0001\ue9a3\x0001\uea46\x0001\ueae9\x0001\ueb8c\x0001\uec2f\x0001\uecd2" + + "\x0001\ued75\x0001\uee18\x0001\ueebb\x0001\uef5e\x0001\uf001\x0001\uf0a4\x0001\uf147\x0001\uf1ea" + + "\x0001\uf28d\x0001\uf330\x0001\uf3d3\x0001\uf476\x0001\uf519\x0001\uf5bc\x0001\uf65f\x0001\uf702" + + "\x0001\uf7a5\x0001\uf848\x0001\uf8eb\x0001\uf98e\x0001\ufa31\x0001\ufad4\x0001\ufb77\x0001\ufc1a" + + "\x0001\ufcbd\x0001\ufd60\x0001\ufe03\x0001\ufea6\x0001\uff49\x0001\uffec\x0002\x008F\x0002\u0132" + + "\x0002\u01d5\x0002\u0278\x0002\u031b\x0002\u03be\x0002\u0461\x0002\u0504\x0002\u05a7\x0002\u064a" + + "\x0002\u06ed\x0002\u0790\x0002\u0833\x0002\u08d6\x0002\u0979\x0002\u0a1c\x0002\u0abf\x0002\u0b62" + + "\x0002\u0c05\x0002\u0ca8\x0002\u0d4b\x0002\u0dee\x0002\u0e91\x0002\u0f34\x0002\u0fd7\x0002\u107a" + + "\x0002\u111d\x0002\u11c0\x0002\u1263\x0002\u1306\x0002\u13a9\x0002\u144c\x0002\u14ef\x0002\u1592" + + "\x0002\u1635\x0002\u16d8\x0002\u177b\x0002\u181e\x0002\u18c1\x0002\u1964\x0002\u1a07\x0002\u1aaa" + + "\x0002\u1b4d\x0002\u1bf0\x0002\u1c93\x0002\u1d36\x0002\u1dd9\x0002\u1e7c\x0002\u1f1f\x0002\u1fc2" + + "\x0002\u2065\x0002\u2108\x0002\u21ab\x0002\u224e\x0002\u22f1\x0002\u2394\x0002\u2437\x0002\u24da" + + "\x0002\u257d\x0002\u2620\x0002\u26c3\x0002\u2766\x0002\u2809\x0002\u28ac\x0002\u294f\x0002\u29f2" + + "\x0002\u2a95\x0002\u2b38\x0002\u2bdb\x0002\u2c7e\x0002\u2d21\x0002\u2dc4\x0002\u2e67\x0002\u2f0a" + + "\x0002\u2fad\x0002\u3050\x0002\u30f3\x0002\u3196\x0002\u3239\x0002\u32dc\x0002\u337f\x0002\u3422" + + "\x0002\u34c5\x0002\u3568\x0002\u360b\x0002\u36ae\x0002\u3751\x0002\u37f4\x0002\u3897\x0002\u393a" + + "\x0002\u39dd\x0002\u3a80\x0002\u3b23\x0002\u3bc6\x0002\u3c69\x0002\u3d0c\x0002\u3daf\x0002\u3e52" + + "\x0002\u3ef5\x0002\u3f98\x0002\u403b\x0002\u40de\x0002\u4181\x0002\u4224\x0002\u42c7\x0002\u436a" + + "\x0002\u440d\x0002\u44b0\x0002\u4553\x0002\u45f6\x0002\u4699\x0002\u473c\x0002\u47df\x0002\u4882" + + "\x0002\u4925\x0002\u49c8\x0002\u4a6b\x0002\u4b0e\x0002\u4bb1\x0002\u4c54\x0002\u4cf7\x0002\u4d9a" + + "\x0002\u4e3d\x0002\u4ee0\x0002\u4f83\x0002\u5026\x0002\u50c9\x0002\u516c\x0002\u520f\x0002\u52b2" + + "\x0002\u5355\x0002\u53f8\x0002\u549b\x0002\u553e\x0002\u55e1\x0002\u5684\x0002\u5727\x0002\u57ca" + + "\x0002\u586d\x0002\u5910\x0002\u59b3\x0002\u5a56\x0002\u5af9\x0002\u5b9c\x0002\u5c3f\x0002\u5ce2" + + "\x0002\u5d85\x0002\u5e28\x0002\u5ecb\x0002\u5f6e\x0002\u6011\x0002\u60b4\x0002\u6157\x0002\u61fa" + + "\x0002\u629d\x0002\u6340\x0002\u63e3\x0002\u6486\x0002\u6529\x0002\u65cc\x0002\u666f\x0002\u6712" + + "\x0002\u67b5\x0002\u6858\x0002\u68fb\x0002\u699e\x0002\u6a41\x0002\u6ae4\x0002\u6b87\x0002\u6c2a" + + "\x0002\u6ccd\x0002\u6d70\x0002\u6e13\x0002\u6eb6\x0002\u6f59\x0002\u6ffc\x0002\u709f\x0002\u7142" + + "\x0002\u71e5\x0002\u7288\x0002\u732b\x0002\u73ce\x0002\u7471\x0002\u7514\x0002\u75b7\x0002\u765a" + + "\x0002\u76fd\x0002\u77a0\x0002\u7843\x0002\u78e6\x0002\u7989\x0002\u7a2c\x0002\u7acf\x0002\u7b72" + + "\x0002\u7c15\x0002\u7cb8\x0002\u7d5b\x0002\u7dfe\x0002\u7ea1\x0002\u7f44\x0002\u7fe7\x0002\u808a" + + "\x0002\u812d\x0002\u81d0\x0002\u8273\x0002\u8316\x0002\u83b9\x0002\u845c\x0002\u84ff\x0002\u85a2" + + "\x0002\u8645\x0002\u86e8\x0002\u878b\x0002\u882e\x0002\u88d1\x0002\u8974\x0002\u8a17\x0002\u8aba" + + "\x0002\u8b5d\x0002\u8c00\x0002\u8ca3\x0002\u8d46\x0002\u8de9\x0002\u8e8c\x0002\u8f2f\x0002\u8fd2" + + "\x0002\u9075\x0002\u9118\x0002\u91bb\x0002\u925e\x0002\u9301\x0002\u93a4\x0002\u9447\x0002\u94ea" + + "\x0002\u958d\x0002\u9630\x0002\u96d3\x0002\u9776\x0002\u9819\x0002\u98bc\x0002\u995f\x0002\u9a02" + + "\x0002\u9aa5\x0002\u9b48\x0002\u9beb\x0002\u9c8e\x0002\u9d31\x0002\u9dd4\x0002\u9e77\x0002\u9f1a" + + "\x0002\u9fbd\x0002\ua060\x0002\ua103\x0002\ua1a6\x0002\ua249\x0002\ua2ec\x0002\ua38f\x0002\ua432" + + "\x0002\ua4d5\x0002\ua578\x0002\ua61b\x0002\ua6be\x0002\ua761\x0002\ua804\x0002\ua8a7\x0002\ua94a" + + "\x0002\ua9ed\x0002\uaa90\x0002\uab33\x0002\uabd6\x0002\uac79\x0002\uad1c\x0002\uadbf\x0002\uae62" + + "\x0002\uaf05\x0002\uafa8\x0002\ub04b\x0002\ub0ee\x0002\ub191\x0002\ub234\x0002\ub2d7\x0002\ub37a" + + "\x0002\ub41d\x0002\ub4c0\x0002\ub563\x0002\ub606\x0002\ub6a9\x0002\ub74c\x0002\ub7ef\x0002\ub892" + + "\x0002\ub935\x0002\ub9d8\x0002\uba7b\x0002\ubb1e\x0002\ubbc1\x0002\ubc64\x0002\ubd07\x0002\ubdaa" + + "\x0002\ube4d\x0002\ubef0\x0002\ubf93\x0002\uc036\x0002\uc0d9\x0002\uc17c\x0002\uc21f\x0002\uc2c2" + + "\x0002\uc365\x0002\uc408\x0002\uc4ab\x0002\uc54e\x0002\uc5f1\x0002\uc694\x0002\uc737\x0002\uc7da" + + "\x0002\uc87d\x0002\uc920\x0002\uc9c3\x0002\uca66\x0002\ucb09\x0002\ucbac\x0002\ucc4f\x0002\uccf2" + + "\x0002\ucd95\x0002\uce38\x0002\ucedb\x0002\ucf7e\x0002\ud021\x0002\ud0c4\x0002\ud167\x0002\ud20a" + + "\x0002\ud2ad\x0002\ud350\x0002\ud3f3\x0002\ud496\x0002\ud539\x0002\ud5dc\x0002\ud67f\x0002\ud722" + + "\x0002\ud7c5\x0002\ud868\x0002\ud90b\x0002\ud9ae\x0002\uda51\x0002\udaf4\x0002\udb97\x0002\udc3a" + + "\x0002\udcdd\x0002\udd80\x0002\ude23\x0002\udec6\x0002\udf69\x0002\ue00c\x0002\ue0af\x0002\ue152" + + "\x0002\ue1f5\x0002\ue298\x0002\ue33b\x0002\ue3de\x0002\ue481\x0002\ue524\x0002\ue5c7\x0002\ue66a" + + "\x0002\ue70d\x0002\ue7b0\x0002\ue853\x0002\ue8f6\x0002\ue999\x0002\uea3c\x0002\ueadf\x0002\ueb82" + + "\x0002\uec25\x0002\uecc8\x0002\ued6b\x0002\uee0e\x0002\ueeb1\x0002\uef54\x0002\ueff7\x0002\uf09a" + + "\x0002\uf13d\x0002\uf1e0\x0002\uf283\x0002\uf326\x0002\uf3c9\x0002\uf46c\x0002\uf50f\x0002\uf5b2" + + "\x0002\uf655\x0002\uf6f8\x0002\uf79b\x0002\uf83e\x0002\uf8e1\x0002\uf984\x0002\ufa27\x0002\ufaca" + + "\x0002\ufb6d\x0002\ufc10\x0002\ufcb3\x0002\ufd56\x0002\ufdf9\x0002\ufe9c\x0002\uff3f\x0002\uffe2" + + "\x0003\x0085\x0003\u0128\x0003\u01cb\x0003\u026e\x0003\u0311\x0003\u03b4\x0003\u0457\x0003\u04fa" + + "\x0003\u059d\x0003\u0640\x0003\u06e3\x0003\u0786\x0003\u0829\x0003\u08cc\x0003\u096f\x0003\u0a12" + + "\x0003\u0ab5\x0003\u0b58\x0003\u0bfb\x0003\u0c9e\x0003\u0d41\x0003\u0de4\x0003\u0e87\x0003\u0f2a" + + "\x0003\u0fcd\x0003\u1070\x0003\u1113\x0003\u11b6\x0003\u1259\x0003\u12fc\x0003\u139f\x0003\u1442" + + "\x0003\u14e5\x0003\u1588\x0003\u162b\x0003\u16ce\x0003\u1771\x0003\u1814\x0003\u18b7\x0003\u195a" + + "\x0003\u19fd\x0003\u1aa0\x0003\u1b43\x0003\u1be6\x0003\u1c89\x0003\u1d2c\x0003\u1dcf\x0003\u1e72" + + "\x0003\u1f15\x0003\u1fb8\x0003\u205b\x0003\u20fe\x0003\u21a1\x0003\u2244\x0003\u22e7\x0003\u238a" + + "\x0003\u242d\x0003\u24d0\x0003\u2573\x0003\u2616\x0003\u26b9\x0003\u275c\x0003\u27ff\x0003\u28a2" + + "\x0003\u2945\x0003\u29e8\x0003\u2a8b\x0003\u2b2e\x0003\u2bd1\x0003\u2c74\x0003\u2d17\x0003\u2dba" + + "\x0003\u2e5d\x0003\u2f00\x0003\u2fa3\x0003\u3046\x0003\u30e9\x0003\u318c\x0003\u322f\x0003\u32d2" + + "\x0003\u3375\x0003\u3418\x0003\u34bb\x0003\u355e\x0003\u3601\x0003\u36a4\x0003\u3747\x0003\u37ea" + + "\x0003\u388d\x0003\u3930\x0003\u39d3\x0003\u3a76\x0003\u3b19\x0003\u3bbc\x0003\u3c5f\x0003\u3d02" + + "\x0003\u3da5\x0003\u3e48\x0003\u3eeb\x0003\u3f8e\x0003\u4031\x0003\u40d4\x0003\u4177\x0003\u421a" + + "\x0003\u42bd\x0003\u4360\x0003\u4403"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[1331]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /// The transition table of the DFA + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0001\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + + "\x0001\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0003\x0002\x0001\x0009\x0005\x0002\x0001\x000A" + + "\x0003\x0002\x0001\x000B\x0009\x0002\x0001\x000C\x0002\x0002\x0001\x000D\x0023\x0002\x0001\x000E" + + "\x0001\x0002\x0001\x000F\x0003\x0002\x0001\x0010\x0001\x0011\x0001\x0002\x0001\x0012\x0001\x0002" + + "\x0001\x0013\x0002\x0002\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0017" + + "\x0003\x0002\x0001\x0018\x0002\x0019\x0001\x001A\x0001\x001B\x0001\x001C\x0001\x001D\x0006\x001E" + + "\x0001\x001F\x000E\x001E\x0001\x0020\x0004\x001E\x0001\x001D\x0001\x0021\x0002\x0022\x0001\x0021" + + "\x0005\x0022\x0001\x0023\x0001\x0002\x0001\x001D\x0001\x0024\x0001\x001D\x0001\x0002\x0002\x001D" + + "\x0001\x0002\x0003\x001D\x0001\x0025\x0002\x0002\x0001\x001D\x0001\x0026\x0003\x0002\x0002\x001D" + + "\x0001\x0002\x00A5\x0000\x0001\x0015\x0009\x0000\x0001\x0015\x0010\x0000\x0001\x0015\x0012\x0000" + + "\x0001\x0015\x0008\x0000\x0003\x0015\x000F\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0009\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x000E\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0011\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x004B\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x000B\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0004\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x000D\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0004\x0015\x0001\x0000" + + "\x0003\x0015\x0002\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000\x0002\x0015\x0002\x0000" + + "\x0003\x0015\x0001\x0000\x0009\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x000E\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x004B\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0003\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0002\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0055\x0000" + + "\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x000C\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x000A\x0000" + + "\x0001\x0016\x0001\x0000\x0002\x0015\x000A\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0016\x0007\x0000\x0002\x0015\x0002\x0000\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000" + + "\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000\x0005\x0015\x0001\x0016" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x004B\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0016" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0003\x0000\x0002\x0015" + + "\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x004D\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x000F\x0000\x0001\x0015\x0006\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x000D\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0007\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0082\x0000\x0001\x001B" + + "\x0011\x0000\x0001\x0017\x0059\x0000\x0001\x001A\x0003\x0000\x0001\x001A\x0003\x0000\x0001\x001A" + + "\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0003\x001A" + + "\x0003\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A" + + "\x0003\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0003\x0000\x0002\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0005\x001A\x0002\x0000\x0001\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0004\x0000\x0001\x001A" + + "\x0004\x0000\x0001\x001A\x004B\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0005\x001A" + + "\x0001\x0000\x0003\x001A\x0001\x0000\x0009\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x000E\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A" + + "\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A" + + "\x004B\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0003\x0000\x0001\x001A" + + "\x0001\x0000\x0003\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0003\x001A" + + "\x0001\x0000\x0009\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x000E\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x004B\x0000\x0001\x001A" + + "\x0009\x0000\x0001\x001A\x0010\x0000\x0001\x001A\x001B\x0000\x0001\x001A\x0011\x0000\x0001\x001A" + + "\x0008\x0000\x0001\x001A\x0050\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0005\x001A" + + "\x0001\x0000\x0003\x001A\x0001\x0000\x0006\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0008\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x00A2\x0000\x0001\x001B\x004A\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0035\x001A\x0015\x0001\x0000\x000A\x0034" + + "\x0001\x0035\x0001\x0000\x0001\x0036\x0003\x0000\x0001\x0035\x0010\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000" + + "\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000" + + "\x0001\x0015\x0001\x003E\x001A\x0015\x0001\x0000\x000A\x0016\x0002\x0000\x0001\x003F\x0002\x0000" + + "\x0002\x003E\x0006\x0000\x0001\x003E\x0013\x0000\x0001\x0040\x000D\x0000\x0001\x0041\x000C\x0000" + + "\x0001\x0042\x000E\x0000\x0001\x0043\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0010\x0000" + + "\x0001\x0017\x0001\x0000\x0001\x0017\x0003\x0000\x0001\x0036\x0001\x0000\x0001\x0017\x002B\x0000" + + "\x0001\x0036\x0014\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0046\x0003\x0000\x0001\x0038\x0005\x0000" + + "\x0001\x0039\x0003\x0000\x0001\x0047\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0048\x000E\x0000" + + "\x0001\x0049\x0002\x0000\x0001\x004A\x0011\x0000\x0001\x004B\x000F\x0000\x0001\x0015\x0001\x004C" + + "\x0001\x0016\x0001\x004D\x0003\x0000\x0001\x004C\x0001\x0000\x0001\x004C\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x001A\x0015\x0001\x0000\x000A\x0016\x0002\x0000\x0001\x004C\x0075\x0000\x0002\x0019" + + "\x0040\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x004E\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x004F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0050\x000E\x0000\x0001\x0051" + + "\x0002\x0000\x0001\x0052\x0021\x0000\x0001\x0015\x0001\x001C\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x001C\x0002\x0000\x0001\x001C\x0001\x0035" + + "\x001A\x0015\x0001\x0000\x000A\x0034\x0001\x0035\x0001\x0000\x0001\x0036\x0003\x0000\x0001\x0035" + + "\x0076\x0000\x0001\x0053\x0025\x0054\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x001A\x001E\x0001\x0057\x000A\x0058\x0001\x0035" + + "\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0056\x0008\x001E\x0001\x005B\x0006\x001E\x0001\x005C\x000A\x001E" + + "\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054" + + "\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x000F\x001E\x0001\x005D" + + "\x000A\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039" + + "\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x005E\x001A\x001E\x0001\x0057\x000A\x0022" + + "\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0003\x0054" + + "\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000" + + "\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000" + + "\x0001\x0015\x0001\x005E\x001A\x001E\x0001\x0057\x000A\x0061\x0001\x0000\x0001\x0054\x0001\x005F" + + "\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038" + + "\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B" + + "\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x005E\x001A\x001E" + + "\x0001\x0057\x0001\x0022\x0001\x0062\x0001\x0061\x0002\x0022\x0002\x0061\x0001\x0022\x0001\x0061" + + "\x0001\x0022\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055" + + "\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0046\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x0047" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0048\x000E\x0000\x0001\x0049\x0002\x0000\x0001\x004A" + + "\x0011\x0000\x0001\x004B\x000F\x0000\x0001\x0015\x0001\x004C\x0001\x0016\x0001\x004D\x0003\x0000" + + "\x0001\x004C\x0001\x0000\x0001\x004C\x0002\x0000\x0001\x0015\x0001\x0053\x001A\x0063\x0001\x0054" + + "\x000A\x0064\x0001\x0000\x0001\x0054\x0001\x0065\x0001\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0069\x0000\x0004\x0066\x0002\x0000" + + "\x0001\x0066\x000D\x0000\x0001\x0066\x0006\x0000\x000A\x0066\x0001\x0067\x007C\x0000\x0035\x0068" + + "\x0001\x0069\x0001\x0068\x0001\x006A\x0001\x0000\x0002\x0068\x0003\x0000\x0001\x0015\x0009\x0000" + + "\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0005\x0015\x0008\x0000\x0001\x0034\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0034\x0007\x0000\x0002\x0015\x0002\x0000\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000" + + "\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000\x0005\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x004B\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0034" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0015\x0006\x0000\x0001\x0015\x006A\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0007\x0000\x0001\x0015\x0004\x0000\x0002\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0002\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0004\x0015\x0002\x0000\x0001\x0015\x005D\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x006B\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x006C" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x006D\x000E\x0000\x0001\x006E\x0002\x0000\x0001\x006F" + + "\x0021\x0000\x0001\x0015\x0002\x0034\x0002\x0000\x0002\x0070\x0001\x0036\x0001\x0000\x0001\x0034" + + "\x0002\x0000\x0001\x0015\x0001\x0070\x001A\x0015\x0001\x0000\x000A\x0034\x0002\x0000\x0001\x0036" + + "\x0002\x0000\x0002\x0070\x0006\x0000\x0001\x0070\x0009\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0071" + + "\x0003\x0000\x0001\x0072\x0005\x0000\x0001\x0073\x0003\x0000\x0001\x0074\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0075\x000E\x0000\x0001\x0076\x0002\x0000\x0001\x0077\x0021\x0000\x0001\x0015" + + "\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0022\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0078\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x0079\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x007A\x000E\x0000\x0001\x007B\x0002\x0000" + + "\x0001\x007C\x0011\x0000\x0001\x004B\x000F\x0000\x0001\x0015\x0001\x0036\x0001\x0034\x0001\x004D" + + "\x0003\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015" + + "\x0001\x0000\x000A\x0034\x0002\x0000\x0001\x0036\x0015\x0000\x0001\x0016\x0009\x0000\x0003\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0016\x0001\x0000\x0002\x0016\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0016\x0004\x0000\x0001\x0016\x0002\x0015\x0002\x0016\x0008\x0000\x0001\x0016" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0016\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x0016\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0016" + + "\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0016" + + "\x0006\x0000\x0001\x0016\x006A\x0000\x0001\x0016\x0003\x0000\x0001\x0016\x0002\x0000\x0001\x0016" + + "\x0003\x0000\x0001\x0016\x0005\x0000\x0001\x0016\x0007\x0000\x0001\x0016\x0004\x0000\x0002\x0016" + + "\x0003\x0000\x0002\x0016\x0001\x0000\x0001\x0016\x0004\x0000\x0001\x0016\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0002\x0016\x0001\x0000\x0003\x0016\x0001\x0000\x0001\x0016\x0002\x0000\x0004\x0016" + + "\x0002\x0000\x0001\x0016\x0067\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F" + + "\x0003\x0000\x0001\x0080\x000C\x0000\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083" + + "\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x001F\x0000\x000A\x0016\x0017\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0084\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x0085\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0086\x000E\x0000\x0001\x0087\x0002\x0000" + + "\x0001\x0088\x0011\x0000\x0001\x004B\x000F\x0000\x0001\x0015\x0001\x003F\x0001\x0016\x0001\x004D" + + "\x0003\x0000\x0001\x003F\x0001\x0000\x0001\x003F\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015" + + "\x0001\x0000\x000A\x0016\x0002\x0000\x0001\x003F\x0015\x0000\x0001\x0017\x001F\x0000\x0001\x0017" + + "\x0001\x0000\x0002\x0017\x000E\x0000\x0001\x0017\x0004\x0000\x0001\x0017\x0002\x0000\x0002\x0017" + + "\x000D\x0000\x0001\x0017\x0096\x0000\x0001\x0017\x00A7\x0000\x0002\x0017\x0009\x0000\x0001\x0017" + + "\x0089\x0000\x0002\x0017\x0006\x0000\x0001\x0017\x006A\x0000\x0001\x0017\x0003\x0000\x0001\x0017" + + "\x0002\x0000\x0001\x0017\x0003\x0000\x0001\x0017\x0005\x0000\x0001\x0017\x0007\x0000\x0001\x0017" + + "\x0004\x0000\x0002\x0017\x0003\x0000\x0002\x0017\x0001\x0000\x0001\x0017\x0004\x0000\x0001\x0017" + + "\x0001\x0000\x0001\x0017\x0002\x0000\x0002\x0017\x0001\x0000\x0003\x0017\x0001\x0000\x0001\x0017" + + "\x0002\x0000\x0004\x0017\x0002\x0000\x0001\x0017\x00A7\x0000\x0001\x0017\x0059\x0000\x0001\x004C" + + "\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x004C\x0001\x0000\x0002\x004C\x0004\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x004C\x0004\x0000\x0001\x004C\x0002\x0015\x0002\x004C" + + "\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x004C\x0008\x0000\x0001\x0015" + + "\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x004C\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x004C\x0005\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x004C\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x007F\x0000\x0002\x004C\x0006\x0000\x0001\x004C\x006A\x0000\x0001\x004C\x0003\x0000\x0001\x004C" + + "\x0002\x0000\x0001\x004C\x0003\x0000\x0001\x004C\x0005\x0000\x0001\x004C\x0007\x0000\x0001\x004C" + + "\x0004\x0000\x0002\x004C\x0003\x0000\x0002\x004C\x0001\x0000\x0001\x004C\x0004\x0000\x0001\x004C" + + "\x0001\x0000\x0001\x004C\x0002\x0000\x0002\x004C\x0001\x0000\x0003\x004C\x0001\x0000\x0001\x004C" + + "\x0002\x0000\x0004\x004C\x0002\x0000\x0001\x004C\x00A7\x0000\x0001\x004D\x0062\x0000\x0001\x0089" + + "\x000D\x0000\x0001\x008A\x000C\x0000\x0001\x008B\x000E\x0000\x0001\x008C\x0002\x0000\x0001\x008D" + + "\x0011\x0000\x0001\x004B\x0010\x0000\x0001\x004D\x0001\x0000\x0001\x004D\x0003\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x004D\x002B\x0000\x0001\x0036\x0015\x0000\x0001\x001C\x0009\x0000\x0003\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x001C\x0001\x0000\x0002\x001C\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x001C\x0004\x0000\x0001\x001C\x0002\x0015\x0002\x001C\x0008\x0000\x0001\x0034" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x001C\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x001C\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x001C\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x001C" + + "\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x001C" + + "\x0006\x0000\x0001\x001C\x006A\x0000\x0001\x001C\x0003\x0000\x0001\x001C\x0002\x0000\x0001\x001C" + + "\x0003\x0000\x0001\x001C\x0005\x0000\x0001\x001C\x0007\x0000\x0001\x001C\x0004\x0000\x0002\x001C" + + "\x0003\x0000\x0002\x001C\x0001\x0000\x0001\x001C\x0004\x0000\x0001\x001C\x0001\x0000\x0001\x001C" + + "\x0002\x0000\x0002\x001C\x0001\x0000\x0003\x001C\x0001\x0000\x0001\x001C\x0002\x0000\x0004\x001C" + + "\x0002\x0000\x0001\x001C\x00C3\x0000\x0001\x0053\x0025\x0054\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054" + + "\x0069\x0000\x001A\x008E\x0001\x0000\x000A\x008E\x000B\x0000\x0001\x008F\x000B\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0071\x0003\x0000\x0001\x0072\x0005\x0000\x0001\x0073\x0003\x0000\x0001\x0074" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0075\x000E\x0000\x0001\x0076\x0002\x0000\x0001\x0077" + + "\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0053" + + "\x0001\x0090\x0001\x0091\x0001\x0092\x0001\x0093\x0001\x0094\x0001\x0095\x0001\x0096\x0001\x0097" + + "\x0001\x0098\x0001\x0099\x0001\x009A\x0001\x009B\x0001\x009C\x0001\x009D\x0001\x009E\x0001\x009F" + + "\x0001\x00A0\x0001\x00A1\x0001\x00A2\x0001\x00A3\x0001\x00A4\x0001\x00A5\x0001\x00A6\x0001\x00A7" + + "\x0001\x00A8\x0001\x00A9\x0001\x0054\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x0053\x001A\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x006B\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x006C" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x006D\x000E\x0000\x0001\x006E\x0002\x0000\x0001\x006F" + + "\x0021\x0000\x0001\x0015\x0002\x0034\x0002\x0000\x0002\x0070\x0001\x0036\x0001\x0000\x0001\x0034" + + "\x0002\x0000\x0001\x0015\x0001\x00AB\x001A\x001E\x0001\x0057\x000A\x0058\x0001\x0000\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0002\x00AC\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x0070" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0078\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x0079\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x007A\x000E\x0000\x0001\x007B\x0002\x0000\x0001\x007C\x0011\x0000\x0001\x004B\x000F\x0000" + + "\x0001\x0015\x0001\x0036\x0001\x0034\x0001\x004D\x0003\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0002\x0000\x0001\x0015\x0001\x0053\x001A\x0063\x0001\x0054\x000A\x00AD\x0001\x0000\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0071\x0003\x0000\x0001\x0072" + + "\x0005\x0000\x0001\x0073\x0003\x0000\x0001\x0074\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0075" + + "\x000E\x0000\x0001\x0076\x0002\x0000\x0001\x0077\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000" + + "\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0053\x001A\x0063\x000B\x0054\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0009\x001E" + + "\x0001\x00AE\x0010\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054" + + "\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056" + + "\x000D\x001E\x0001\x00AF\x000C\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x000F\x001E\x0001\x00B0\x000A\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x000C\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000" + + "\x0001\x007F\x0003\x0000\x0001\x0080\x000C\x0000\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000" + + "\x0001\x0083\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x0003\x0000\x0001\x0053" + + "\x0001\x00B1\x0001\x00B2\x0001\x00B3\x0001\x00B4\x0001\x00B5\x0001\x00B6\x0001\x00B7\x0001\x00B8" + + "\x0001\x00B9\x0001\x00BA\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0" + + "\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8" + + "\x0001\x00C9\x0001\x00CA\x0001\x0054\x0001\x00CB\x0002\x00CC\x0001\x00CB\x0005\x00CC\x0001\x00CD" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0001\x0068\x0003\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0084\x0003\x0000" + + "\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x0085\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0086\x000E\x0000\x0001\x0087\x0002\x0000\x0001\x0088\x0011\x0000\x0001\x004B\x000F\x0000" + + "\x0001\x0015\x0001\x003F\x0001\x0016\x0001\x004D\x0003\x0000\x0001\x003F\x0001\x0000\x0001\x003F" + + "\x0002\x0000\x0001\x0015\x0001\x0053\x001A\x0063\x0001\x0054\x000A\x0064\x0001\x0000\x0001\x0054" + + "\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x000C\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F" + + "\x0003\x0000\x0001\x0080\x000C\x0000\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083" + + "\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x0003\x0000\x0001\x0053\x001B\x0054" + + "\x000A\x0064\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000" + + "\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016" + + "\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x005E" + + "\x001A\x001E\x0001\x0057\x000A\x00CE\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000" + + "\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039" + + "\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x005E\x001A\x001E\x0001\x0057\x0002\x0061" + + "\x0001\x00CE\x0002\x0061\x0002\x00CE\x0001\x0061\x0001\x00CE\x0001\x0061\x0001\x0000\x0001\x0054" + + "\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x00CF\x001A\x0063\x0001\x0054\x000A\x00AD\x0001\x0035\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038" + + "\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B" + + "\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x00D0\x001A\x0063" + + "\x0001\x0054\x000A\x0064\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060" + + "\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0069\x0000" + + "\x0004\x00D1\x0002\x0000\x0001\x00D1\x000D\x0000\x0001\x00D1\x0006\x0000\x000A\x00D1\x0001\x00D2" + + "\x00A2\x0000\x0001\x00D3\x007C\x0000\x0001\x00D4\x002C\x0000\x0001\x0055\x0075\x0000\x003C\x0068" + + "\x0002\x0000\x0001\x0034\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0034\x0001\x0000\x0002\x0034" + + "\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0034\x0004\x0000\x0001\x0034" + + "\x0002\x0015\x0002\x0034\x0008\x0000\x0001\x0034\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0034" + + "\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015" + + "\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0034\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0034\x0005\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0034\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0034\x0006\x0000\x0001\x0034\x006A\x0000\x0001\x0034" + + "\x0003\x0000\x0001\x0034\x0002\x0000\x0001\x0034\x0003\x0000\x0001\x0034\x0005\x0000\x0001\x0034" + + "\x0007\x0000\x0001\x0034\x0004\x0000\x0002\x0034\x0003\x0000\x0002\x0034\x0001\x0000\x0001\x0034" + + "\x0004\x0000\x0001\x0034\x0001\x0000\x0001\x0034\x0002\x0000\x0002\x0034\x0001\x0000\x0003\x0034" + + "\x0001\x0000\x0001\x0034\x0002\x0000\x0004\x0034\x0002\x0000\x0001\x0034\x0067\x0000\x0001\x00D5" + + "\x0003\x0000\x0001\x00D6\x0005\x0000\x0001\x00D7\x0003\x0000\x0001\x00D8\x000C\x0000\x0001\x00D9" + + "\x000E\x0000\x0001\x00DA\x0002\x0000\x0001\x00DB\x0022\x0000\x0001\x0070\x0001\x0034\x0006\x0000" + + "\x0001\x0070\x001F\x0000\x000A\x0034\x0018\x0000\x0001\x0035\x0009\x0000\x0003\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0035\x0001\x0000\x0002\x0035\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0035\x0004\x0000\x0001\x0035\x0002\x0015\x0002\x0035\x000A\x0000\x0002\x0015\x0001\x0000" + + "\x0001\x0035\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x0002\x0000" + + "\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0004\x0015\x0001\x0000\x0005\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x004B\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000" + + "\x0001\x0015\x0004\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0002\x0035\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0035\x0004\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0035\x0006\x0000" + + "\x0001\x0035\x006A\x0000\x0001\x0035\x0003\x0000\x0001\x0035\x0002\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0035\x0005\x0000\x0001\x0035\x0007\x0000\x0001\x0035\x0004\x0000\x0002\x0035\x0003\x0000" + + "\x0002\x0035\x0001\x0000\x0001\x0035\x0004\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0002\x0000" + + "\x0002\x0035\x0001\x0000\x0003\x0035\x0001\x0000\x0001\x0035\x0002\x0000\x0004\x0035\x0002\x0000" + + "\x0001\x0035\x005E\x0000\x0001\x0036\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0002\x0036\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0036\x0004\x0000" + + "\x0001\x0036\x0002\x0015\x0002\x0036\x0008\x0000\x0001\x0034\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0001\x0036\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000" + + "\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000" + + "\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000" + + "\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0036" + + "\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0036\x0004\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0036\x0006\x0000\x0001\x0036\x006A\x0000" + + "\x0001\x0036\x0003\x0000\x0001\x0036\x0002\x0000\x0001\x0036\x0003\x0000\x0001\x0036\x0005\x0000" + + "\x0001\x0036\x0007\x0000\x0001\x0036\x0004\x0000\x0002\x0036\x0003\x0000\x0002\x0036\x0001\x0000" + + "\x0001\x0036\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0002\x0000\x0002\x0036\x0001\x0000" + + "\x0003\x0036\x0001\x0000\x0001\x0036\x0002\x0000\x0004\x0036\x0002\x0000\x0001\x0036\x005E\x0000" + + "\x0001\x003E\x001F\x0000\x0001\x003E\x0001\x0000\x0002\x003E\x000E\x0000\x0001\x003E\x0004\x0000" + + "\x0001\x003E\x0002\x0000\x0002\x003E\x0008\x0000\x0001\x0016\x0004\x0000\x0001\x003E\x005B\x0000" + + "\x0001\x0016\x0042\x0000\x0001\x0016\x00A3\x0000\x0002\x0016\x0098\x0000\x0001\x003E\x00A7\x0000" + + "\x0002\x003E\x0009\x0000\x0001\x003E\x0089\x0000\x0002\x003E\x0006\x0000\x0001\x003E\x006A\x0000" + + "\x0001\x003E\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003E\x0003\x0000\x0001\x003E\x0005\x0000" + + "\x0001\x003E\x0007\x0000\x0001\x003E\x0004\x0000\x0002\x003E\x0003\x0000\x0002\x003E\x0001\x0000" + + "\x0001\x003E\x0004\x0000\x0001\x003E\x0001\x0000\x0001\x003E\x0002\x0000\x0002\x003E\x0001\x0000" + + "\x0003\x003E\x0001\x0000\x0001\x003E\x0002\x0000\x0004\x003E\x0002\x0000\x0001\x003E\x005E\x0000" + + "\x0001\x003F\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x003F\x0001\x0000\x0002\x003F\x0004\x0000" + + "\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x003F\x0004\x0000\x0001\x003F\x0002\x0015" + + "\x0002\x003F\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x003F\x0008\x0000" + + "\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x003F\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x003F\x0005\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x003F\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x007F\x0000\x0002\x003F\x0006\x0000\x0001\x003F\x006A\x0000\x0001\x003F\x0003\x0000" + + "\x0001\x003F\x0002\x0000\x0001\x003F\x0003\x0000\x0001\x003F\x0005\x0000\x0001\x003F\x0007\x0000" + + "\x0001\x003F\x0004\x0000\x0002\x003F\x0003\x0000\x0002\x003F\x0001\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x003F\x0001\x0000\x0001\x003F\x0002\x0000\x0002\x003F\x0001\x0000\x0003\x003F\x0001\x0000" + + "\x0001\x003F\x0002\x0000\x0004\x003F\x0002\x0000\x0001\x003F\x005E\x0000\x0001\x004D\x001F\x0000" + + "\x0001\x004D\x0001\x0000\x0002\x004D\x000E\x0000\x0001\x004D\x0004\x0000\x0001\x004D\x0002\x0000" + + "\x0002\x004D\x000D\x0000\x0001\x004D\x0096\x0000\x0001\x004D\x00A7\x0000\x0002\x004D\x0009\x0000" + + "\x0001\x004D\x0089\x0000\x0002\x004D\x0006\x0000\x0001\x004D\x006A\x0000\x0001\x004D\x0003\x0000" + + "\x0001\x004D\x0002\x0000\x0001\x004D\x0003\x0000\x0001\x004D\x0005\x0000\x0001\x004D\x0007\x0000" + + "\x0001\x004D\x0004\x0000\x0002\x004D\x0003\x0000\x0002\x004D\x0001\x0000\x0001\x004D\x0004\x0000" + + "\x0001\x004D\x0001\x0000\x0001\x004D\x0002\x0000\x0002\x004D\x0001\x0000\x0003\x004D\x0001\x0000" + + "\x0001\x004D\x0002\x0000\x0004\x004D\x0002\x0000\x0001\x004D\x00C3\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0031\x008F\x0001\x0000\x0001\x00DE\x0004\x008F\x0001\x00DF" + + "\x0001\x0000\x0003\x008F\x0001\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x0001\x001E\x0002\x00E0\x0001\x00E1\x0001\x00E2\x0008\x00E0\x0001\x001E\x0001\x00E3" + + "\x0005\x00E0\x0006\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054" + + "\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056" + + "\x0001\x00E4\x0002\x00E0\x0001\x001E\x0001\x00E0\x0001\x00E5\x0006\x00E0\x0004\x001E\x0001\x00E0" + + "\x0001\x001E\x0002\x00E0\x0001\x001E\x0001\x00E0\x0001\x001E\x0003\x00E0\x0001\x0057\x000A\x0058" + + "\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0003\x001E\x0001\x00E0\x0001\x001E\x0001\x00E0" + + "\x0004\x001E\x0001\x00E0\x0008\x001E\x0001\x00E0\x0002\x001E\x0001\x00E0\x0002\x001E\x0001\x00E0" + + "\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054" + + "\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0001\x001E\x0001\x00E0" + + "\x0001\x00E6\x0002\x00E0\x0002\x001E\x0001\x00E0\x0006\x001E\x0003\x00E0\x0009\x001E\x0001\x0057" + + "\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0003\x001E\x0001\x00E0\x0001\x001E" + + "\x0001\x00E0\x0008\x001E\x0001\x00E0\x0001\x001E\x0002\x00E0\x0008\x001E\x0001\x0057\x000A\x0058" + + "\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0004\x001E\x0001\x00E7\x0005\x001E\x0001\x00E0" + + "\x000F\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0004\x001E" + + "\x0002\x00E0\x0002\x001E\x0001\x00E0\x0001\x001E\x0001\x00E0\x000B\x001E\x0001\x00E0\x0002\x001E" + + "\x0001\x00E0\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0001\x00E0" + + "\x0001\x001E\x0003\x00E0\x0001\x00E8\x000C\x00E0\x0002\x001E\x0002\x00E0\x0002\x001E\x0001\x00E0" + + "\x0001\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0002\x001E" + + "\x0004\x00E0\x0003\x001E\x0002\x00E0\x0001\x00E9\x0001\x00E0\x0001\x001E\x0002\x00E0\x000A\x001E" + + "\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054" + + "\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0002\x00E0\x0002\x001E" + + "\x0001\x00E0\x0003\x001E\x0001\x00E0\x0005\x001E\x0003\x00E0\x0003\x001E\x0001\x00E0\x0002\x001E" + + "\x0003\x00E0\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0005\x00E0" + + "\x0001\x00EA\x0001\x001E\x0001\x00E0\x0001\x00EB\x0007\x00E0\x0001\x00EC\x0003\x00E0\x0001\x001E" + + "\x0001\x00E0\x0001\x001E\x0003\x00E0\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x0001\x00ED\x0001\x00E0\x0001\x001E\x0001\x00E4\x0006\x00E0\x0003\x001E\x0001\x00E0" + + "\x0002\x001E\x0001\x00E0\x0002\x001E\x0001\x00E0\x0006\x001E\x0001\x0057\x000A\x0058\x0001\x0035" + + "\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0056\x0001\x00E0\x0019\x001E\x0001\x0057\x000A\x0058\x0001\x0035" + + "\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0056\x0001\x00E0\x0002\x001E\x0001\x00E0\x0001\x00EE\x0001\x001E" + + "\x0002\x00E0\x0001\x001E\x0003\x00E0\x0002\x001E\x0002\x00E0\x0001\x001E\x0001\x00E0\x0003\x001E" + + "\x0001\x00E0\x0002\x001E\x0002\x00E0\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x0006\x00E0\x0001\x001E\x0005\x00E0\x0003\x001E\x0002\x00E0\x0002\x001E\x0007\x00E0" + + "\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054" + + "\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0001\x001E\x0002\x00E0" + + "\x0001\x00EB\x0001\x00EF\x0003\x00E0\x0001\x001E\x0003\x00E0\x0001\x001E\x0001\x00E0\x0001\x001E" + + "\x0001\x00E0\x0001\x001E\x0001\x00E0\x0001\x001E\x0001\x00E0\x0001\x001E\x0003\x00E0\x0001\x001E" + + "\x0001\x00E0\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0001\x00E0" + + "\x0006\x001E\x0001\x00E0\x0006\x001E\x0001\x00E0\x0004\x001E\x0001\x00E0\x0004\x001E\x0002\x00E0" + + "\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054" + + "\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0006\x001E\x0001\x00E0" + + "\x0007\x001E\x0001\x00E0\x000B\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x000B\x001E\x0001\x00F0\x000E\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0056\x0001\x00E0\x0009\x001E\x0001\x00E0\x0006\x001E\x0001\x00E0\x0008\x001E" + + "\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054" + + "\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0001\x00E0\x0001\x001E" + + "\x0006\x00E0\x0001\x00F1\x0001\x001E\x0002\x00E0\x0002\x001E\x0002\x00E0\x0001\x001E\x0001\x00E0" + + "\x0001\x001E\x0006\x00E0\x0001\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x0004\x001E\x0001\x00E0\x0005\x001E\x0002\x00E0\x0003\x001E\x0002\x00E0\x0008\x001E" + + "\x0001\x00E0\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0003\x001E" + + "\x0001\x00E0\x0001\x001E\x0001\x00F2\x0004\x001E\x0001\x00E0\x0002\x001E\x0001\x00E0\x000C\x001E" + + "\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054" + + "\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0002\x00E0\x0001\x001E" + + "\x0001\x00E0\x0003\x001E\x0002\x00E0\x0002\x001E\x0001\x00E0\x0004\x001E\x0001\x00E0\x0009\x001E" + + "\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054" + + "\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0003\x001E\x0001\x00E0" + + "\x000B\x001E\x0001\x00E0\x000A\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x0003\x001E\x0002\x00E0\x0002\x001E\x0002\x00E0\x0001\x001E\x0002\x00E0\x0001\x001E" + + "\x0001\x00E0\x0003\x001E\x0001\x00E0\x0001\x001E\x0001\x00E0\x0001\x001E\x0001\x00E0\x0002\x001E" + + "\x0001\x00E0\x0001\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054" + + "\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x000C\x0000\x0001\x00D5\x0003\x0000\x0001\x00D6\x0005\x0000\x0001\x00D7\x0003\x0000\x0001\x00D8" + + "\x000C\x0000\x0001\x00D9\x000E\x0000\x0001\x00DA\x0002\x0000\x0001\x00DB\x0022\x0000\x0001\x0070" + + "\x0001\x0034\x0006\x0000\x0001\x0070\x0003\x0000\x0001\x0053\x0001\x00B1\x0001\x00B2\x0001\x00B3" + + "\x0001\x00B4\x0001\x00B5\x0001\x00B6\x0001\x00B7\x0001\x00B8\x0001\x00B9\x0001\x00BA\x0001\x00BB" + + "\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3" + + "\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x0054" + + "\x000A\x0058\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054\x000C\x0000\x0001\x00D5\x0003\x0000\x0001\x00D6" + + "\x0005\x0000\x0001\x00D7\x0003\x0000\x0001\x00D8\x000C\x0000\x0001\x00D9\x000E\x0000\x0001\x00DA" + + "\x0002\x0000\x0001\x00DB\x0022\x0000\x0001\x0070\x0001\x0034\x0006\x0000\x0001\x0070\x0003\x0000" + + "\x0001\x0053\x001B\x0054\x000A\x00AD\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x006B\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x006C\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x006D\x000E\x0000\x0001\x006E\x0002\x0000\x0001\x006F\x0021\x0000" + + "\x0001\x0015\x0002\x0034\x0002\x0000\x0002\x0070\x0001\x0036\x0001\x0000\x0001\x0034\x0002\x0000" + + "\x0001\x0015\x0001\x00F4\x001A\x0063\x0001\x0054\x000A\x00AD\x0001\x0000\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0002\x00AC\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x0070\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x0003\x001E\x0001\x00F5\x0016\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0056\x001A\x001E\x0001\x0057\x000A\x0058\x0001\x00F6\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x000D\x001E\x0001\x00F7\x000C\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0002\x00F8\x0001\x00F9" + + "\x0001\x00FA\x0008\x00F8\x0001\x00AA\x0001\x00FB\x0005\x00F8\x0006\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00FC\x0002\x00F8\x0001\x00AA\x0001\x00F8" + + "\x0001\x00FD\x0006\x00F8\x0004\x00AA\x0001\x00F8\x0001\x00AA\x0002\x00F8\x0001\x00AA\x0001\x00F8" + + "\x0001\x00AA\x0003\x00F8\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0003\x00AA\x0001\x00F8\x0001\x00AA\x0001\x00F8\x0004\x00AA\x0001\x00F8\x0008\x00AA\x0001\x00F8" + + "\x0002\x00AA\x0001\x00F8\x0002\x00AA\x0001\x00F8\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\x00F8\x0001\x00FE\x0002\x00F8\x0002\x00AA\x0001\x00F8" + + "\x0006\x00AA\x0003\x00F8\x0009\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0003\x00AA\x0001\x00F8\x0001\x00AA\x0001\x00F8\x0008\x00AA\x0001\x00F8\x0001\x00AA" + + "\x0002\x00F8\x0008\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0004\x00AA\x0001\x00FF\x0005\x00AA\x0001\x00F8\x000F\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0004\x00AA\x0002\x00F8\x0002\x00AA\x0001\x00F8\x0001\x00AA" + + "\x0001\x00F8\x000B\x00AA\x0001\x00F8\x0002\x00AA\x0001\x00F8\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00F8\x0001\x00AA\x0003\x00F8\x0001\u0100\x000C\x00F8" + + "\x0002\x00AA\x0002\x00F8\x0002\x00AA\x0001\x00F8\x0001\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0002\x00AA\x0004\x00F8\x0003\x00AA\x0002\x00F8\x0001\u0101" + + "\x0001\x00F8\x0001\x00AA\x0002\x00F8\x000A\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0002\x00F8\x0002\x00AA\x0001\x00F8\x0003\x00AA\x0001\x00F8\x0005\x00AA" + + "\x0003\x00F8\x0003\x00AA\x0001\x00F8\x0002\x00AA\x0003\x00F8\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0005\x00F8\x0001\u0102\x0001\x00AA\x0001\x00F8\x0001\u0103" + + "\x0007\x00F8\x0001\u0104\x0003\x00F8\x0001\x00AA\x0001\x00F8\x0001\x00AA\x0003\x00F8\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u0105\x0001\x00F8\x0001\x00AA" + + "\x0001\x00FC\x0006\x00F8\x0003\x00AA\x0001\x00F8\x0002\x00AA\x0001\x00F8\x0002\x00AA\x0001\x00F8" + + "\x0006\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00F8" + + "\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00F8" + + "\x0002\x00AA\x0001\x00F8\x0001\u0106\x0001\x00AA\x0002\x00F8\x0001\x00AA\x0003\x00F8\x0002\x00AA" + + "\x0002\x00F8\x0001\x00AA\x0001\x00F8\x0003\x00AA\x0001\x00F8\x0002\x00AA\x0002\x00F8\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0006\x00F8\x0001\x00AA\x0005\x00F8" + + "\x0003\x00AA\x0002\x00F8\x0002\x00AA\x0007\x00F8\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0001\x00AA\x0002\x00F8\x0001\u0103\x0001\u0107\x0003\x00F8\x0001\x00AA" + + "\x0003\x00F8\x0001\x00AA\x0001\x00F8\x0001\x00AA\x0001\x00F8\x0001\x00AA\x0001\x00F8\x0001\x00AA" + + "\x0001\x00F8\x0001\x00AA\x0003\x00F8\x0001\x00AA\x0001\x00F8\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00F8\x0006\x00AA\x0001\x00F8\x0006\x00AA\x0001\x00F8" + + "\x0004\x00AA\x0001\x00F8\x0004\x00AA\x0002\x00F8\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0006\x00AA\x0001\x00F8\x0007\x00AA\x0001\x00F8\x000B\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x000B\x00AA\x0001\u0108\x000E\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00F8\x0009\x00AA" + + "\x0001\x00F8\x0006\x00AA\x0001\x00F8\x0008\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0001\x00F8\x0001\x00AA\x0006\x00F8\x0001\u0109\x0001\x00AA\x0002\x00F8" + + "\x0002\x00AA\x0002\x00F8\x0001\x00AA\x0001\x00F8\x0001\x00AA\x0006\x00F8\x0001\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0004\x00AA\x0001\x00F8\x0005\x00AA" + + "\x0002\x00F8\x0003\x00AA\x0002\x00F8\x0008\x00AA\x0001\x00F8\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\x00F8\x0001\x00AA\x0001\u010a\x0004\x00AA" + + "\x0001\x00F8\x0002\x00AA\x0001\x00F8\x000C\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0002\x00F8\x0001\x00AA\x0001\x00F8\x0003\x00AA\x0002\x00F8\x0002\x00AA" + + "\x0001\x00F8\x0004\x00AA\x0001\x00F8\x0009\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\x00F8\x000B\x00AA\x0001\x00F8\x000A\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0002\x00F8\x0002\x00AA" + + "\x0002\x00F8\x0001\x00AA\x0002\x00F8\x0001\x00AA\x0001\x00F8\x0003\x00AA\x0001\x00F8\x0001\x00AA" + + "\x0001\x00F8\x0001\x00AA\x0001\x00F8\x0002\x00AA\x0001\x00F8\x0001\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038" + + "\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B" + + "\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u010b\x001A\x001E" + + "\x0001\x0057\x000A\x00CC\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060" + + "\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u010b\x001A\x001E\x0001\x0057\x000A\u010c\x0001\x0000" + + "\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000" + + "\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037" + + "\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015" + + "\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015" + + "\x0001\u010b\x001A\x001E\x0001\x0057\x0001\x00CC\x0001\u010d\x0001\u010c\x0002\x00CC\x0002\u010c" + + "\x0001\x00CC\x0001\u010c\x0001\x00CC\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000" + + "\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039" + + "\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u010e\x001A\x001E\x0001\x0057\x000A\x00CE" + + "\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0003\x0054" + + "\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x0071\x0003\x0000\x0001\x0072\x0005\x0000\x0001\x0073\x0003\x0000\x0001\x0074\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0075\x000E\x0000\x0001\x0076\x0002\x0000\x0001\x0077\x0021\x0000" + + "\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0053\x001A\x0063" + + "\x000B\x0054\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054\x000C\x0000\x0001\x007D\x0003\x0000\x0001\x007E" + + "\x0005\x0000\x0001\x007F\x0003\x0000\x0001\x0080\x000C\x0000\x0001\x0081\x000E\x0000\x0001\x0082" + + "\x0002\x0000\x0001\x0083\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x0003\x0000" + + "\x0001\x0053\x001B\x0054\x000A\x0064\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054\x0069\x0000\x0004\u010f" + + "\x0002\x0000\x0001\u010f\x000D\x0000\x0001\u010f\x0006\x0000\x000A\u010f\x0001\x00D2\x007D\x0000" + + "\x0004\u0110\x0002\x0000\x0001\u0110\x000D\x0000\x0001\u0110\x0006\x0000\x000A\u0110\x0001\u0111" + + "\x007D\x0000\x0004\u0112\x0002\x0000\x0001\u0112\x000D\x0000\x0001\u0112\x0006\x0000\x0001\u0113" + + "\x0002\u0114\x0001\u0113\x0005\u0114\x0001\u0115\x000C\x0000\x0001\u0116\x0070\x0000\x0026\x0054" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0000\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0001\x0068\x0003\x0000\x0002\x0054\x0003\x0000\x0001\x0070\x001F\x0000\x0001\x0070\x0001\x0000" + + "\x0002\x0070\x000E\x0000\x0001\x0070\x0004\x0000\x0001\x0070\x0002\x0000\x0002\x0070\x0008\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0070\x005B\x0000\x0001\x0034\x0042\x0000\x0001\x0034\x00A3\x0000" + + "\x0002\x0034\x0098\x0000\x0001\x0070\x00A7\x0000\x0002\x0070\x0009\x0000\x0001\x0070\x0089\x0000" + + "\x0002\x0070\x0006\x0000\x0001\x0070\x006A\x0000\x0001\x0070\x0003\x0000\x0001\x0070\x0002\x0000" + + "\x0001\x0070\x0003\x0000\x0001\x0070\x0005\x0000\x0001\x0070\x0007\x0000\x0001\x0070\x0004\x0000" + + "\x0002\x0070\x0003\x0000\x0002\x0070\x0001\x0000\x0001\x0070\x0004\x0000\x0001\x0070\x0001\x0000" + + "\x0001\x0070\x0002\x0000\x0002\x0070\x0001\x0000\x0003\x0070\x0001\x0000\x0001\x0070\x0002\x0000" + + "\x0004\x0070\x0002\x0000\x0001\x0070\x00C4\x0000\x0001\u0117\x0001\u0118\x0001\u0119\x0001\u011a" + + "\x0001\u011b\x0001\u011c\x0001\u011d\x0001\u011e\x0001\u011f\x0001\u0120\x0001\u0121\x0001\u0122" + + "\x0001\u0123\x0001\u0124\x0001\u0125\x0001\u0126\x0001\u0127\x0001\u0128\x0001\u0129\x0001\u012a" + + "\x0001\u012b\x0001\u012c\x0001\u012d\x0001\u012e\x0001\u012f\x0001\u0130\x0001\x0000\x000A\x008E" + + "\x007E\x0000\x001A\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x003C\x008F\x0001\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0131\x001A\x001E\x0001\x0057\x000A\x0058" + + "\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055" + + "\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0131\x0004\x001E\x0001\u0136" + + "\x0015\x001E\x0001\x0057\x000A\x0058\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\u0131\x000D\x001E\x0001\x009C\x000C\x001E\x0001\x0057\x000A\x0058\x0001\u0132\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0001\u0133\x0001\u0134" + + "\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0131\x0008\x001E\x0001\x009C\x0011\x001E\x0001\x0057" + + "\x000A\x0058\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A" + + "\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0131\x000F\x001E" + + "\x0001\x00E0\x000A\x001E\x0001\x0057\x000A\x0058\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054" + + "\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\u0131\x0005\x001E\x0001\u0137\x0004\x001E\x0001\x00E0\x000F\x001E\x0001\x0057" + + "\x000A\x0058\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A" + + "\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0010\x001E" + + "\x0001\x00E0\x0009\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054" + + "\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056" + + "\x0007\x001E\x0001\x00E0\x0012\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x0017\x001E\x0001\x00E0\x0002\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\u0131\x0006\x001E\x0001\u0136\x0008\x001E\x0001\x00E0\x000A\x001E\x0001\x0057" + + "\x000A\x0058\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A" + + "\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0131\x0014\x001E" + + "\x0001\u0138\x0005\x001E\x0001\x0057\x000A\x0058\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054" + + "\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0056\x0009\x001E\x0001\x00E0\x0010\x001E\x0001\x0057\x000A\x0058\x0001\x0035" + + "\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\u0131\x000E\x001E\x0001\u0139\x000B\x001E\x0001\x0057\x000A\x0058" + + "\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055" + + "\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0131\x000A\x001E\x0001\u013a" + + "\x000F\x001E\x0001\x0057\x000A\x0058\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\u0131\x0005\x001E\x0001\x00E0\x0014\x001E\x0001\x0057\x000A\x0058\x0001\u0132\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0001\u0133\x0001\u0134" + + "\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0131\x0001\u013b\x0019\x001E\x0001\x0057\x000A\x0058" + + "\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055" + + "\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x001A\x001E\x0001\u013c" + + "\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0131\x0013\x001E\x0001\x00E0\x0006\x001E" + + "\x0001\x0057\x000A\x0058\x0001\u0132\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054" + + "\x0001\x005A\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0131" + + "\x0014\x001E\x0001\u013d\x0005\x001E\x0001\x0057\x000A\x0058\x0001\u0132\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x0053\x0001\x00B1\x0001\x00B2" + + "\x0001\x00B3\x0001\x00B4\x0001\x00B5\x0001\x00B6\x0001\x00B7\x0001\x00B8\x0001\x00B9\x0001\x00BA" + + "\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2" + + "\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA" + + "\x0001\x0054\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054\x000C\x0000\x0001\x00D5\x0003\x0000" + + "\x0001\x00D6\x0005\x0000\x0001\x00D7\x0003\x0000\x0001\x00D8\x000C\x0000\x0001\x00D9\x000E\x0000" + + "\x0001\x00DA\x0002\x0000\x0001\x00DB\x0022\x0000\x0001\x0070\x0001\x0034\x0006\x0000\x0001\x0070" + + "\x0003\x0000\x0001\x0053\x001B\x0054\x000A\x00AD\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x001A\x001E\x0001\x0057" + + "\x000A\x0058\x0001\u013e\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0071\x0003\x0000\x0001\x0072\x0005\x0000\x0001\x0073\x0003\x0000\x0001\x0074" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0075\x000E\x0000\x0001\x0076\x0002\x0000\x0001\x0077" + + "\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x001A\x0015\x0014\x0000\x0001\u013f\x000D\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0056\x000E\x001E\x0001\u0140\x000B\x001E\x0001\x0057\x000A\x0058\x0001\u0141" + + "\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0142\x001A\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133\x0001\u0134" + + "\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0142\x0004\x00AA" + + "\x0001\u0144\x0015\x00AA\x0001\x0057\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\u0142\x000D\x00AA\x0001\x00BD\x000C\x00AA\x0001\x0057\x000A\x00AA\x0001\u0143" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0142\x0008\x00AA\x0001\x00BD\x0011\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133" + + "\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0142" + + "\x000F\x00AA\x0001\x00F8\x000A\x00AA\x0001\x0057\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\u0142\x0005\x00AA\x0001\u0145\x0004\x00AA\x0001\x00F8\x000F\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133" + + "\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0010\x00AA\x0001\x00F8\x0009\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0007\x00AA\x0001\x00F8\x0012\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0017\x00AA\x0001\x00F8\x0002\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\u0142\x0006\x00AA\x0001\u0144\x0008\x00AA\x0001\x00F8\x000A\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133" + + "\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0142" + + "\x0014\x00AA\x0001\u0146\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0009\x00AA\x0001\x00F8\x0010\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0142\x000E\x00AA\x0001\u0147\x000B\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133\x0001\u0134" + + "\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0142\x000A\x00AA" + + "\x0001\u0148\x000F\x00AA\x0001\x0057\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\u0142\x0005\x00AA\x0001\x00F8\x0014\x00AA\x0001\x0057\x000A\x00AA\x0001\u0143" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0142\x0001\u0149\x0019\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133\x0001\u0134" + + "\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\u013c\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0142\x0013\x00AA\x0001\x00F8" + + "\x0006\x00AA\x0001\x0057\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\u0142\x0014\x00AA\x0001\u014a\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\u0143\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x000C\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F" + + "\x0003\x0000\x0001\x0080\x000C\x0000\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083" + + "\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x0003\x0000\x0001\x0053\x0001\x00B1" + + "\x0001\x00B2\x0001\x00B3\x0001\x00B4\x0001\x00B5\x0001\x00B6\x0001\x00B7\x0001\x00B8\x0001\x00B9" + + "\x0001\x00BA\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1" + + "\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9" + + "\x0001\x00CA\x0001\x0054\x0001\u014b\x0002\u014c\x0001\u014b\x0005\u014c\x0001\u014d\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0001\x0068" + + "\x0003\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038" + + "\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B" + + "\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u010b\x001A\x001E" + + "\x0001\x0057\x000A\x00CE\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060" + + "\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u010b\x001A\x001E\x0001\x0057\x0002\u010c\x0001\x00CE" + + "\x0002\u010c\x0002\x00CE\x0001\u010c\x0001\x00CE\x0001\u010c\x0001\x0000\x0001\x0054\x0001\x005F" + + "\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x000C\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F" + + "\x0003\x0000\x0001\x0080\x000C\x0000\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083" + + "\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x0003\x0000\x0001\x0053\x0001\x00B1" + + "\x0001\x00B2\x0001\x00B3\x0001\x00B4\x0001\x00B5\x0001\x00B6\x0001\x00B7\x0001\x00B8\x0001\x00B9" + + "\x0001\x00BA\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1" + + "\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9" + + "\x0001\x00CA\x0001\x0054\x000A\x00CE\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054\x0069\x0000\x0004\u014e" + + "\x0002\x0000\x0001\u014e\x000D\x0000\x0001\u014e\x0006\x0000\x000A\u014e\x0001\x00D2\x007D\x0000" + + "\x0004\u014f\x0002\x0000\x0001\u014f\x000D\x0000\x0001\u014f\x0006\x0000\x000A\u014f\x0001\u0150" + + "\x007D\x0000\x0004\u0151\x0002\x0000\x0001\u0151\x000D\x0000\x0001\u0151\x0006\x0000\x0001\u0152" + + "\x0002\u0153\x0001\u0152\x0005\u0153\x0001\u0154\x000C\x0000\x0001\u0116\x0071\x0000\x0004\u0155" + + "\x0002\x0000\x0001\u0155\x000D\x0000\x0001\u0155\x0006\x0000\x000A\u0155\x0001\u0156\x000B\x0000" + + "\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0155\x0002\x0000\x0001\u0155\x000D\x0000\x0001\u0155" + + "\x0006\x0000\x000A\u0158\x0001\u0156\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0155" + + "\x0002\x0000\x0001\u0155\x000D\x0000\x0001\u0155\x0006\x0000\x000A\u0159\x0001\u0156\x000B\x0000" + + "\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0155\x0002\x0000\x0001\u0155\x000D\x0000\x0001\u0155" + + "\x0006\x0000\x0001\u0158\x0001\u015a\x0001\u0159\x0002\u0158\x0002\u0159\x0001\u0158\x0001\u0159" + + "\x0001\u0158\x0001\u0156\x000B\x0000\x0001\u0116\x0096\x0000\x0001\u0143\x0007\x0000\x0001\u015b" + + "\x0001\u015c\x0001\u015d\x0072\x0000\x0001\x00DC\x0001\x008E\x0002\u015e\x0001\u015f\x0001\u0160" + + "\x0008\u015e\x0001\x008E\x0001\u0161\x0005\u015e\x0006\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0001\u0162\x0002\u015e\x0001\x008E\x0001\u015e\x0001\u0163\x0006\u015e\x0004\x008E" + + "\x0001\u015e\x0001\x008E\x0002\u015e\x0001\x008E\x0001\u015e\x0001\x008E\x0003\u015e\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u015e\x0001\x008E\x0001\u015e\x0004\x008E" + + "\x0001\u015e\x0008\x008E\x0001\u015e\x0002\x008E\x0001\u015e\x0002\x008E\x0001\u015e\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u015e\x0001\u0164\x0002\u015e\x0002\x008E" + + "\x0001\u015e\x0006\x008E\x0003\u015e\x0009\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0003\x008E\x0001\u015e\x0001\x008E\x0001\u015e\x0008\x008E\x0001\u015e\x0001\x008E\x0002\u015e" + + "\x0008\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0004\x008E\x0001\u0165\x0005\x008E" + + "\x0001\u015e\x000F\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0004\x008E\x0002\u015e" + + "\x0002\x008E\x0001\u015e\x0001\x008E\x0001\u015e\x000B\x008E\x0001\u015e\x0002\x008E\x0001\u015e" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u015e\x0001\x008E\x0003\u015e\x0001\u0166" + + "\x000C\u015e\x0002\x008E\x0002\u015e\x0002\x008E\x0001\u015e\x0001\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0002\x008E\x0004\u015e\x0003\x008E\x0002\u015e\x0001\u0167\x0001\u015e" + + "\x0001\x008E\x0002\u015e\x000A\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0002\u015e" + + "\x0002\x008E\x0001\u015e\x0003\x008E\x0001\u015e\x0005\x008E\x0003\u015e\x0003\x008E\x0001\u015e" + + "\x0002\x008E\x0003\u015e\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0005\u015e\x0001\u0168" + + "\x0001\x008E\x0001\u015e\x0001\u0169\x0007\u015e\x0001\u016a\x0003\u015e\x0001\x008E\x0001\u015e" + + "\x0001\x008E\x0003\u015e\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u016b\x0001\u015e" + + "\x0001\x008E\x0001\u0162\x0006\u015e\x0003\x008E\x0001\u015e\x0002\x008E\x0001\u015e\x0002\x008E" + + "\x0001\u015e\x0006\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u015e\x0019\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u015e\x0002\x008E\x0001\u015e\x0001\u016c" + + "\x0001\x008E\x0002\u015e\x0001\x008E\x0003\u015e\x0002\x008E\x0002\u015e\x0001\x008E\x0001\u015e" + + "\x0003\x008E\x0001\u015e\x0002\x008E\x0002\u015e\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0006\u015e\x0001\x008E\x0005\u015e\x0003\x008E\x0002\u015e\x0002\x008E\x0007\u015e\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\x008E\x0002\u015e\x0001\u0169\x0001\u016d\x0003\u015e" + + "\x0001\x008E\x0003\u015e\x0001\x008E\x0001\u015e\x0001\x008E\x0001\u015e\x0001\x008E\x0001\u015e" + + "\x0001\x008E\x0001\u015e\x0001\x008E\x0003\u015e\x0001\x008E\x0001\u015e\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0001\u015e\x0006\x008E\x0001\u015e\x0006\x008E\x0001\u015e\x0004\x008E" + + "\x0001\u015e\x0004\x008E\x0002\u015e\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0006\x008E" + + "\x0001\u015e\x0007\x008E\x0001\u015e\x000B\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x000B\x008E\x0001\u016e\x000E\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u015e" + + "\x0009\x008E\x0001\u015e\x0006\x008E\x0001\u015e\x0008\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0001\u015e\x0001\x008E\x0006\u015e\x0001\u016f\x0001\x008E\x0002\u015e\x0002\x008E" + + "\x0002\u015e\x0001\x008E\x0001\u015e\x0001\x008E\x0006\u015e\x0001\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0004\x008E\x0001\u015e\x0005\x008E\x0002\u015e\x0003\x008E\x0002\u015e" + + "\x0008\x008E\x0001\u015e\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u015e" + + "\x0001\x008E\x0001\u0170\x0004\x008E\x0001\u015e\x0002\x008E\x0001\u015e\x000C\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0002\u015e\x0001\x008E\x0001\u015e\x0003\x008E\x0002\u015e" + + "\x0002\x008E\x0001\u015e\x0004\x008E\x0001\u015e\x0009\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0003\x008E\x0001\u015e\x000B\x008E\x0001\u015e\x000A\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0003\x008E\x0002\u015e\x0002\x008E\x0002\u015e\x0001\x008E\x0002\u015e" + + "\x0001\x008E\x0001\u015e\x0003\x008E\x0001\u015e\x0001\x008E\x0001\u015e\x0001\x008E\x0001\u015e" + + "\x0002\x008E\x0001\u015e\x0001\x008E\x0001\x00DD\x000A\x008E\x0017\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x0071\x0003\x0000\x0001\x0072\x0005\x0000\x0001\x0073\x0003\x0000\x0001\x0074\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0075\x000E\x0000\x0001\x0076\x0002\x0000\x0001\x0077\x0021\x0000" + + "\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0053\x0001\x0090" + + "\x0001\x0091\x0001\x0092\x0001\x0093\x0001\x0094\x0001\x0095\x0001\x0096\x0001\x0097\x0001\x0098" + + "\x0001\x0099\x0001\x009A\x0001\x009B\x0001\x009C\x0001\x009D\x0001\x009E\x0001\x009F\x0001\x00A0" + + "\x0001\x00A1\x0001\x00A2\x0001\x00A3\x0001\x00A4\x0001\x00A5\x0001\x00A6\x0001\x00A7\x0001\x00A8" + + "\x0001\x00A9\x0001\x0054\x000A\x00AA\x0001\u0143\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0071\x0003\x0000\x0001\x0072\x0005\x0000\x0001\x0073" + + "\x0003\x0000\x0001\x0074\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0075\x000E\x0000\x0001\x0076" + + "\x0002\x0000\x0001\x0077\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x001A\x0015\x0001\x0000\x000A\u0171\x007D\x0000\x0001\u0172\x0025\u0133" + + "\x0001\u015b\x0002\u0133\x0001\u0173\x0001\u015b\x0002\u0133\x0001\u0174\x0002\u0133\x0001\u0135" + + "\x0002\x0000\x0001\u015b\x0001\u0133\x0004\x0000\x0001\u0133\x0001\x0054\x0068\x0000\x0001\u0175" + + "\x0025\u0134\x0001\u015c\x0002\u0134\x0001\u0176\x0001\x0000\x0002\x0054\x0001\u0177\x0001\u0133" + + "\x0001\u0134\x0001\u0135\x0002\x0000\x0001\u015c\x0001\u0134\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\u0178\x0025\u0135\x0001\u015d\x0002\u0135\x0001\u0179\x0001\u015d\x0002\u0135\x0001\u017a" + + "\x0002\u0135\x0001\x0054\x0002\x0000\x0001\u015d\x0001\u0135\x0004\x0000\x0001\u0135\x0001\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0005\x001E" + + "\x0001\x00E0\x0014\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054" + + "\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056" + + "\x000D\x001E\x0001\x00E0\x000C\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059" + + "\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x0008\x001E\x0001\x00E0\x0011\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0056\x0003\x001E\x0001\u017b\x0016\x001E\x0001\x0057\x000A\x0058\x0001\x0035" + + "\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0056\x0003\x001E\x0001\x00E0\x0016\x001E\x0001\x0057\x000A\x0058" + + "\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0017\x001E\x0001\u017c\x0002\x001E\x0001\x0057" + + "\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x0053" + + "\x001A\x00AA\x0001\u017d\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x000E\x001E\x0001\x00E0\x000B\x001E\x0001\x0057" + + "\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0071\x0003\x0000\x0001\x0072\x0005\x0000\x0001\x0073\x0003\x0000\x0001\x0074" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0075\x000E\x0000\x0001\x0076\x0002\x0000\x0001\x0077" + + "\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x001A\x0015\x0014\x0000\x0001\u017e\x00A2\x0000\x0001\u017f\x000D\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x001A\x001E\x0001\x0057\x000A\x0058\x0001\u0141" + + "\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0071" + + "\x0003\x0000\x0001\x0072\x0005\x0000\x0001\x0073\x0003\x0000\x0001\x0074\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0075\x000E\x0000\x0001\x0076\x0002\x0000\x0001\x0077\x0021\x0000\x0001\x0015" + + "\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0014\x0000" + + "\x0001\u0180\x0073\x0000\x0001\x0053\x0001\x00B1\x0001\x00B2\x0001\x00B3\x0001\x00B4\x0001\x00B5" + + "\x0001\x00B6\x0001\x00B7\x0001\x00B8\x0001\x00B9\x0001\x00BA\x0001\x00BB\x0001\x00BC\x0001\x00BD" + + "\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5" + + "\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x0054\x000A\x00AA\x0001\u0143" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0003\x0000" + + "\x0001\x0054\x0001\x0068\x0003\x0000\x0002\x0054\x0084\x0000\x000A\u0171\x007D\x0000\x0001\x00F3" + + "\x0005\x00AA\x0001\x00F8\x0014\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x000D\x00AA\x0001\x00F8\x000C\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0008\x00AA\x0001\x00F8\x0011\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\u0181\x0016\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\x00F8\x0016\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0017\x00AA\x0001\u0182\x0002\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x000E\x00AA\x0001\x00F8" + + "\x000B\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000" + + "\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000" + + "\x0001\x0015\x0001\u0183\x001A\x001E\x0001\x0057\x000A\u014c\x0001\x0000\x0001\x0054\x0001\x005F" + + "\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038" + + "\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B" + + "\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0183\x001A\x001E" + + "\x0001\x0057\x000A\u0184\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060" + + "\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0183\x001A\x001E\x0001\x0057\x0001\u014c\x0001\u0185" + + "\x0001\u0184\x0002\u014c\x0002\u0184\x0001\u014c\x0001\u0184\x0001\u014c\x0001\x0000\x0001\x0054" + + "\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x008E\x0000\x0001\x00D2\x007D\x0000\x0004\u0186\x0002\x0000" + + "\x0001\u0186\x000D\x0000\x0001\u0186\x0006\x0000\x000A\u0186\x0001\u0150\x007D\x0000\x0004\u0187" + + "\x0002\x0000\x0001\u0187\x000D\x0000\x0001\u0187\x0006\x0000\x000A\u0187\x0001\u0188\x007D\x0000" + + "\x0004\u0189\x0002\x0000\x0001\u0189\x000D\x0000\x0001\u0189\x0006\x0000\x000A\u0189\x0001\u018a" + + "\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0189\x0002\x0000\x0001\u0189\x000D\x0000" + + "\x0001\u0189\x0006\x0000\x000A\u018b\x0001\u018a\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157" + + "\x0004\u0189\x0002\x0000\x0001\u0189\x000D\x0000\x0001\u0189\x0006\x0000\x000A\u018c\x0001\u018a" + + "\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0189\x0002\x0000\x0001\u0189\x000D\x0000" + + "\x0001\u0189\x0006\x0000\x0001\u018b\x0001\u018d\x0001\u018c\x0002\u018b\x0002\u018c\x0001\u018b" + + "\x0001\u018c\x0001\u018b\x0001\u018a\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u018e\x0002\x0000" + + "\x0001\u018e\x000D\x0000\x0001\u018e\x0006\x0000\x000A\u018e\x0001\u0156\x000B\x0000\x0001\u0116" + + "\x0071\x0000\x0004\u0151\x0002\x0000\x0001\u0151\x000D\x0000\x0001\u0151\x0006\x0000\x0001\u0152" + + "\x0002\u0153\x0001\u0152\x0005\u0153\x0001\u0154\x0099\x0000\x0001\u018f\x0002\u0190\x0001\u018f" + + "\x0005\u0190\x0001\u0191\x007D\x0000\x0001\u0157\x0004\u018e\x0002\x0000\x0001\u018e\x000D\x0000" + + "\x0001\u018e\x0006\x0000\x000A\u0192\x0001\u0156\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157" + + "\x0004\u018e\x0002\x0000\x0001\u018e\x000D\x0000\x0001\u018e\x0006\x0000\x000A\u018e\x0001\u0156" + + "\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u018e\x0002\x0000\x0001\u018e\x000D\x0000" + + "\x0001\u018e\x0006\x0000\x0002\u0192\x0001\u018e\x0002\u0192\x0002\u018e\x0001\u0192\x0001\u018e" + + "\x0001\u0192\x0001\u0156\x000B\x0000\x0001\u0116\x0070\x0000\x0029\u015b\x0001\u0193\x0006\u015b" + + "\x0001\u015d\x0002\x0000\x0002\u015b\x0004\x0000\x0001\u015b\x0069\x0000\x0029\u015c\x0001\u0194" + + "\x0003\x0000\x0001\u015c\x0001\u015b\x0001\u015c\x0001\u015d\x0002\x0000\x0002\u015c\x006E\x0000" + + "\x0029\u015d\x0001\u0195\x0006\u015d\x0003\x0000\x0002\u015d\x0004\x0000\x0001\u015d\x0069\x0000" + + "\x0001\u0196\x001A\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\u0196\x0004\x008E\x0001\u0197" + + "\x0015\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\u0196\x000D\x008E\x0001\u0123\x000C\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\u0196\x0008\x008E\x0001\u0123\x0011\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\u0196\x000F\x008E\x0001\u015e\x000A\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\u0196\x0005\x008E\x0001\u0198\x0004\x008E\x0001\u015e\x000F\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0010\x008E\x0001\u015e\x0009\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0007\x008E\x0001\u015e\x0012\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0017\x008E\x0001\u015e\x0002\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\u0196" + + "\x0006\x008E\x0001\u0197\x0008\x008E\x0001\u015e\x000A\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\u0196\x0014\x008E\x0001\u0199\x0005\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0009\x008E\x0001\u015e\x0010\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\u0196\x000E\x008E" + + "\x0001\u019a\x000B\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\u0196\x000A\x008E\x0001\u019b" + + "\x000F\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\u0196\x0005\x008E\x0001\u015e\x0014\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\u0196\x0001\u019c\x0019\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\u019d\x000A\x008E\x007D\x0000\x0001\u0196\x0013\x008E" + + "\x0001\u015e\x0006\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\u0196\x0014\x008E\x0001\u019e" + + "\x0005\x008E\x0001\x00DD\x000A\x008E\x0099\x0000\x000A\u019f\x0008\x0000\x0001\u015b\x0001\u015c" + + "\x0001\u015d\x0072\x0000\x0001\u0172\x0025\u0133\x0001\u015b\x0002\u0133\x0001\u0173\x0001\u015b" + + "\x0002\u0133\x0001\u0174\x0002\u0133\x0001\u0135\x0002\x0000\x0001\u015b\x0001\u0133\x0001\x0068" + + "\x0003\x0000\x0001\u0133\x0001\x0054\x0068\x0000\x0001\x0053\x0004\u01a0\x0002\x0054\x0001\u01a0" + + "\x000D\x0054\x0001\u01a0\x0006\x0054\x000A\u01a0\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0029\u015b" + + "\x0001\u0193\x0006\u015b\x0001\u015d\x0001\x008F\x0001\x0000\x0002\u015b\x0004\x0000\x0001\u015b" + + "\x0069\x0000\x0001\u0175\x0025\u0134\x0001\u015c\x0002\u0134\x0001\u0176\x0001\x0000\x0002\x0054" + + "\x0001\u0177\x0001\u0133\x0001\u0134\x0001\u0135\x0002\x0000\x0001\u015c\x0001\u0134\x0001\x0068" + + "\x0003\x0000\x0002\x0054\x0068\x0000\x0001\x0053\x0004\u01a1\x0002\x0054\x0001\u01a1\x000D\x0054" + + "\x0001\u01a1\x0006\x0054\x000A\u01a1\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0029\u015c\x0001\u0194" + + "\x0003\x0000\x0001\u015c\x0001\u015b\x0001\u015c\x0001\u015d\x0001\x008F\x0001\x0000\x0002\u015c" + + "\x006E\x0000\x0001\u0178\x0025\u0135\x0001\u015d\x0002\u0135\x0001\u0179\x0001\u015d\x0002\u0135" + + "\x0001\u017a\x0002\u0135\x0001\x0054\x0002\x0000\x0001\u015d\x0001\u0135\x0001\x0068\x0003\x0000" + + "\x0001\u0135\x0001\x0054\x0068\x0000\x0001\x0053\x0004\u01a2\x0002\x0054\x0001\u01a2\x000D\x0054" + + "\x0001\u01a2\x0006\x0054\x000A\u01a2\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0029\u015d\x0001\u0195" + + "\x0006\u015d\x0001\x0000\x0001\x008F\x0001\x0000\x0002\u015d\x0004\x0000\x0001\u015d\x0003\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0010\x001E\x0001\u01a3" + + "\x0009\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054\x0001\x0000" + + "\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0056\x0003\x001E" + + "\x0001\x00EB\x0016\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054\x0001\x0059\x0001\x0054" + + "\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x0053\x0001\x00AA\x0001\u01a4\x0001\u01a5\x0002\x00AA\x0001\u01a6" + + "\x0001\u01a7\x0001\u01a8\x0002\x00AA\x0001\u01a9\x0002\x00AA\x0001\u01aa\x0001\u01ab\x0002\x00AA" + + "\x0001\u01ac\x0001\u01ad\x0001\u01ae\x0001\x00AA\x0001\u01af\x0001\u01b0\x0001\x00AA\x0001\u01b1" + + "\x0001\u01b2\x0001\x0057\x0001\u01b3\x0002\x00AA\x0001\u01b4\x0001\u01b5\x0001\u01b6\x0001\x00AA" + + "\x0001\u01b7\x0001\u01b8\x0001\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0097\x0000\x0001\u01b9\x0073\x0000" + + "\x0001\u01ba\x001A\u01bb\x0001\u01ba\x000A\u01bb\x0001\u01bc\x0002\u01ba\x0001\u01bd\x0003\u01ba" + + "\x0001\u01be\x0003\x0000\x0001\u01bf\x0001\x0000\x0002\u01ba\x0004\x0000\x0001\u01ba\x0098\x0000" + + "\x0001\u01c0\x0073\x0000\x0001\x00F3\x0010\x00AA\x0001\u01c1\x0009\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\u0103\x0016\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x000C\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000" + + "\x0001\x007F\x0003\x0000\x0001\x0080\x000C\x0000\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000" + + "\x0001\x0083\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x0003\x0000\x0001\x0053" + + "\x0001\x00B1\x0001\x00B2\x0001\x00B3\x0001\x00B4\x0001\x00B5\x0001\x00B6\x0001\x00B7\x0001\x00B8" + + "\x0001\x00B9\x0001\x00BA\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0" + + "\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8" + + "\x0001\x00C9\x0001\x00CA\x0001\x0054\x0001\u01c2\x0002\u01c3\x0001\u01c2\x0005\u01c3\x0001\u01c4" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0001\x0068\x0003\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000" + + "\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016" + + "\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0183" + + "\x001A\x001E\x0001\x0057\x000A\x00CE\x0001\x0000\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000" + + "\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039" + + "\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0183\x001A\x001E\x0001\x0057\x0002\u0184" + + "\x0001\x00CE\x0002\u0184\x0002\x00CE\x0001\u0184\x0001\x00CE\x0001\u0184\x0001\x0000\x0001\x0054" + + "\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0003\x0054\x0002\x0000\x0001\x003E" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0069\x0000\x0004\u01c5\x0002\x0000\x0001\u01c5\x000D\x0000" + + "\x0001\u01c5\x0006\x0000\x000A\u01c5\x0001\u0150\x007D\x0000\x0004\u01c6\x0002\x0000\x0001\u01c6" + + "\x000D\x0000\x0001\u01c6\x0006\x0000\x000A\u01c6\x0001\u01c7\x007D\x0000\x0004\u01c8\x0002\x0000" + + "\x0001\u01c8\x000D\x0000\x0001\u01c8\x0006\x0000\x0001\u01c9\x0002\u01ca\x0001\u01c9\x0005\u01ca" + + "\x0001\u01cb\x000C\x0000\x0001\u0116\x0071\x0000\x0004\u01cc\x0002\x0000\x0001\u01cc\x000D\x0000" + + "\x0001\u01cc\x0006\x0000\x000A\u01cc\x0001\u018a\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u01c8" + + "\x0002\x0000\x0001\u01c8\x000D\x0000\x0001\u01c8\x0006\x0000\x0001\u01c9\x0002\u01ca\x0001\u01c9" + + "\x0005\u01ca\x0001\u01cb\x007D\x0000\x0001\u0157\x0004\u01cc\x0002\x0000\x0001\u01cc\x000D\x0000" + + "\x0001\u01cc\x0006\x0000\x000A\u01cd\x0001\u018a\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157" + + "\x0004\u01cc\x0002\x0000\x0001\u01cc\x000D\x0000\x0001\u01cc\x0006\x0000\x000A\u01cc\x0001\u018a" + + "\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u01cc\x0002\x0000\x0001\u01cc\x000D\x0000" + + "\x0001\u01cc\x0006\x0000\x0002\u01cd\x0001\u01cc\x0002\u01cd\x0002\u01cc\x0001\u01cd\x0001\u01cc" + + "\x0001\u01cd\x0001\u018a\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u01ce\x0002\x0000\x0001\u01ce" + + "\x000D\x0000\x0001\u01ce\x0006\x0000\x000A\u01ce\x0001\u0156\x000B\x0000\x0001\u0116\x0070\x0000" + + "\x0001\u01cf\x001B\x0000\x000A\u0190\x007D\x0000\x0001\u01cf\x001B\x0000\x000A\u01d0\x007D\x0000" + + "\x0001\u01cf\x001B\x0000\x0001\u0190\x0001\u01d1\x0001\u01d0\x0002\u0190\x0002\u01d0\x0001\u0190" + + "\x0001\u01d0\x0001\u0190\x007D\x0000\x0001\u0157\x0004\u01ce\x0002\x0000\x0001\u01ce\x000D\x0000" + + "\x0001\u01ce\x0006\x0000\x000A\u01ce\x0001\u0156\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u01d2" + + "\x0002\x0000\x0001\u01d2\x000D\x0000\x0001\u01d2\x0006\x0000\x000A\u01d2\x007E\x0000\x0004\u01d3" + + "\x0002\x0000\x0001\u01d3\x000D\x0000\x0001\u01d3\x0006\x0000\x000A\u01d3\x007E\x0000\x0004\u01d4" + + "\x0002\x0000\x0001\u01d4\x000D\x0000\x0001\u01d4\x0006\x0000\x000A\u01d4\x007D\x0000\x0001\x00DC" + + "\x0005\x008E\x0001\u015e\x0014\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x000D\x008E" + + "\x0001\u015e\x000C\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0008\x008E\x0001\u015e" + + "\x0011\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u01d5\x0016\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u015e\x0016\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0017\x008E\x0001\u01d6\x0002\x008E\x0001\x00DD\x000A\x008E" + + "\x007E\x0000\x001A\x008E\x0001\u01d7\x000A\x008E\x007D\x0000\x0001\x00DC\x000E\x008E\x0001\u015e" + + "\x000B\x008E\x0001\x00DD\x000A\x008E\x0099\x0000\x000A\u01d8\x0008\x0000\x0001\u015b\x0001\u015c" + + "\x0001\u015d\x0072\x0000\x0001\x0053\x0004\u0133\x0002\x0054\x0001\u0133\x000D\x0054\x0001\u0133" + + "\x0006\x0054\x000A\u0133\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x0053\x0004\u0134\x0002\x0054" + + "\x0001\u0134\x000D\x0054\x0001\u0134\x0006\x0054\x000A\u0134\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x0053\x0004\u0135\x0002\x0054\x0001\u0135\x000D\x0054\x0001\u0135\x0006\x0054\x000A\u0135" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0056\x000A\x001E\x0001\x00E0\x000F\x001E\x0001\x0057\x000A\x0058\x0001\x0035\x0001\x0054" + + "\x0001\x0059\x0001\x0054\x0001\x0000\x0001\x0054\x0001\x005A\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0009\x00AA\x0001\u01d9\x0010\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\u01da" + + "\x0016\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0007\x00AA" + + "\x0001\u01db\x0012\x00AA\x0001\x0057\x0004\x00AA\x0001\u01dc\x0005\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0008\x00AA\x0001\u01dd\x0004\x00AA\x0001\u01de\x0005\x00AA\x0001\u01df" + + "\x0006\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA" + + "\x0001\u01e0\x0016\x00AA\x0001\x0057\x0002\x00AA\x0001\u01e1\x0007\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0007\x00AA\x0001\u01e2\x0012\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0007\x00AA\x0001\u01e3\x0012\x00AA\x0001\x0057\x0003\x00AA" + + "\x0001\u01e4\x0006\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0005\x00AA\x0001\u01e5\x0004\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0007\x00AA" + + "\x0001\u01e6\x0012\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0019\x00AA\x0001\u01e7\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0001\x00AA\x0001\u01e8\x0018\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0007\x00AA\x0001\u01e9\x0001\x00AA\x0001\u01ea\x0010\x00AA\x0001\x0057\x0009\x00AA" + + "\x0001\u01e5\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0012\x00AA\x0001\u01eb\x0007\x00AA" + + "\x0001\x0057\x0002\x00AA\x0001\u01ec\x0007\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0006\x00AA\x0001\u01ed\x0001\u01ee\x0012\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0007\x00AA\x0001\u01ef\x0005\x00AA\x0001\u01f0\x000C\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0013\x00AA\x0001\u01f1\x0006\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0003\x00AA\x0001\u01f2\x0006\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA" + + "\x0001\u01f3\x0016\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x000F\x00AA\x0001\u01f4\x000A\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0001\x00AA\x0001\u01e5\x0008\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0001\u01f5\x0009\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0069\x0000\x001A\u01f6\x0001\x0000\x000A\u01f6\x0009\x0000\x0001\u01f7\x0001\x0000\x0001\u01f8" + + "\x0071\x0000\x0026\u01ba\x0001\u01bc\x0002\u01ba\x0001\u01bd\x0003\u01ba\x0001\u01be\x0005\x0000" + + "\x0002\u01ba\x0004\x0000\x0001\u01ba\x0069\x0000\x0001\u01f9\x001A\u01bb\x0001\u01fa\x000A\u01bb" + + "\x0001\u01fb\x0002\u01ba\x0001\u01bd\x0003\u01ba\x0001\u01be\x0001\x0000\x0001\u01fc\x0003\x0000" + + "\x0002\u01ba\x0004\x0000\x0001\u01ba\x0069\x0000\x0026\u01bc\x0001\x0000\x0002\u01bc\x0001\u01fd" + + "\x0003\u01bc\x0001\u01be\x0005\x0000\x0002\u01bc\x0004\x0000\x0001\u01bc\x006A\x0000\x0004\u01fe" + + "\x0002\x0000\x0001\u01fe\x000D\x0000\x0001\u01fe\x0006\x0000\x000A\u01fe\x007E\x0000\x001A\u01ff" + + "\x0001\x0000\x000A\u01ff\x000B\x0000\x0001\u01bf\x0072\x0000\x0004\u0200\x0002\x0000\x0001\u0200" + + "\x000D\x0000\x0001\u0200\x0006\x0000\x000A\u0200\x0001\u0201\x007C\x0000\x0001\u0202\x001A\u0203" + + "\x0001\u0202\x000A\u0203\x0001\u0204\x0002\u0202\x0001\u0205\x0003\u0202\x0001\u0206\x0003\x0000" + + "\x0001\u0207\x0001\x0000\x0002\u0202\x0004\x0000\x0001\u0202\x0069\x0000\x0001\x00F3\x000A\x00AA" + + "\x0001\x00F8\x000F\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0015\x0001\u010e\x001A\x001E\x0001\x0057\x000A\u01c3\x0001\u0143\x0001\x0054" + + "\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135" + + "\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000" + + "\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000" + + "\x0001\x0015\x0001\u010e\x001A\x001E\x0001\x0057\x000A\u0208\x0001\u0143\x0001\x0054\x0001\x005F" + + "\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0002\x0000" + + "\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037" + + "\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015" + + "\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015" + + "\x0001\u010e\x001A\x001E\x0001\x0057\x0001\u01c3\x0001\u0209\x0001\u0208\x0002\u01c3\x0002\u0208" + + "\x0001\u01c3\x0001\u0208\x0001\u01c3\x0001\u0143\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000" + + "\x0002\x0060\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0002\x0000\x0001\x003E\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x008E\x0000\x0001\u0150\x007D\x0000\x0004\u020a\x0002\x0000\x0001\u020a" + + "\x000D\x0000\x0001\u020a\x0006\x0000\x000A\u020a\x0001\u01c7\x007D\x0000\x0004\u020b\x0002\x0000" + + "\x0001\u020b\x000D\x0000\x0001\u020b\x0006\x0000\x000A\u020b\x0001\u020c\x007D\x0000\x0004\u020d" + + "\x0002\x0000\x0001\u020d\x000D\x0000\x0001\u020d\x0006\x0000\x000A\u020d\x0001\u020e\x000B\x0000" + + "\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u020d\x0002\x0000\x0001\u020d\x000D\x0000\x0001\u020d" + + "\x0006\x0000\x000A\u020f\x0001\u020e\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u020d" + + "\x0002\x0000\x0001\u020d\x000D\x0000\x0001\u020d\x0006\x0000\x000A\u0210\x0001\u020e\x000B\x0000" + + "\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u020d\x0002\x0000\x0001\u020d\x000D\x0000\x0001\u020d" + + "\x0006\x0000\x0001\u020f\x0001\u0211\x0001\u0210\x0002\u020f\x0002\u0210\x0001\u020f\x0001\u0210" + + "\x0001\u020f\x0001\u020e\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u0212\x0002\x0000\x0001\u0212" + + "\x000D\x0000\x0001\u0212\x0006\x0000\x000A\u0212\x0001\u018a\x000B\x0000\x0001\u0116\x0070\x0000" + + "\x0001\u0157\x0004\u0212\x0002\x0000\x0001\u0212\x000D\x0000\x0001\u0212\x0006\x0000\x000A\u0212" + + "\x0001\u018a\x000B\x0000\x0001\u0116\x0096\x0000\x0001\u0156\x000B\x0000\x0001\u0116\x008C\x0000" + + "\x0001\u0213\x0002\u0214\x0001\u0213\x0005\u0214\x0001\u0215\x007D\x0000\x0001\u01cf\x00A2\x0000" + + "\x0001\u01cf\x001B\x0000\x0002\u01d0\x0001\x0000\x0002\u01d0\x0002\x0000\x0001\u01d0\x0001\x0000" + + "\x0001\u01d0\x007E\x0000\x0004\u015b\x0002\x0000\x0001\u015b\x000D\x0000\x0001\u015b\x0006\x0000" + + "\x000A\u015b\x007E\x0000\x0004\u015c\x0002\x0000\x0001\u015c\x000D\x0000\x0001\u015c\x0006\x0000" + + "\x000A\u015c\x007E\x0000\x0004\u015d\x0002\x0000\x0001\u015d\x000D\x0000\x0001\u015d\x0006\x0000" + + "\x000A\u015d\x007D\x0000\x0001\x00DC\x0010\x008E\x0001\u0216\x0009\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u0169\x0016\x008E\x0001\x00DD\x000A\x008E\x007E\x0000" + + "\x0001\x008E\x0001\u0217\x0001\u0218\x0002\x008E\x0001\u0219\x0001\u021a\x0001\u021b\x0002\x008E" + + "\x0001\u021c\x0002\x008E\x0001\u021d\x0001\u021e\x0002\x008E\x0001\u021f\x0001\u0220\x0001\u0221" + + "\x0001\x008E\x0001\u0222\x0001\u0223\x0001\x008E\x0001\u0224\x0001\u0225\x0001\x00DD\x0001\u0226" + + "\x0002\x008E\x0001\u0227\x0001\u0228\x0001\u0229\x0001\x008E\x0001\u022a\x0001\u022b\x0001\x008E" + + "\x0099\x0000\x000A\u022c\x0008\x0000\x0001\u015b\x0001\u015c\x0001\u015d\x0072\x0000\x0001\x00F3" + + "\x0001\x00AA\x0001\u022d\x0018\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0014\x00AA\x0001\u022e\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u022f\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\u0230\x0018\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x000C\x00AA\x0001\u0231\x000D\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\u0232\x0018\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\u0233" + + "\x0018\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA" + + "\x0001\u0234\x0018\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0011\x00AA\x0001\u0235\x0008\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0014\x00AA\x0001\u0236\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u0237\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u0146\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u0234\x0005\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u0238\x0005\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\u0239\x0018\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0019\x00AA\x0001\u023a" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u023b" + + "\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA" + + "\x0001\u023c\x0018\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0001\u023d\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0011\x00AA\x0001\u023e\x0008\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0004\x00AA\x0001\u023f\x0015\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u0240\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u0241\x0005\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0004\x00AA\x0001\u0242\x0015\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0011\x00AA\x0001\u0243\x0008\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u0244" + + "\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0001\u0245\x0009\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0007\x00AA\x0001\u0246\x0002\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0001\u0247\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\u0248" + + "\x001A\u01f6\x0001\u0249\x000A\u01f6\x0009\x0000\x0001\u01f7\x0073\x0000\x0029\u01f7\x0001\u024a" + + "\x0003\x0000\x0003\u01f7\x0001\u015d\x0003\x0000\x0001\u01f7\x006F\x0000\x0004\u024b\x0002\x0000" + + "\x0001\u024b\x000D\x0000\x0001\u024b\x0006\x0000\x000A\u024b\x0001\u024c\x007C\x0000\x0001\u01ba" + + "\x001A\u01bb\x0001\u01ba\x000A\u01bb\x0001\u01bc\x0002\u01ba\x0001\u01bd\x0003\u01ba\x0001\u01be" + + "\x0005\x0000\x0002\u01ba\x0004\x0000\x0001\u01ba\x0069\x0000\x0001\u01ba\x001A\u01bb\x0001\u01fa" + + "\x000A\u01bb\x0001\u01bc\x0002\u01ba\x0001\u01bd\x0003\u01ba\x0001\u01be\x0005\x0000\x0002\u01ba" + + "\x0004\x0000\x0001\u01ba\x0069\x0000\x001C\u01bc\x000A\u024d\x0001\x0000\x0002\u01bc\x0001\u01fd" + + "\x0003\u01bc\x0001\u01be\x0005\x0000\x0002\u01bc\x0004\x0000\x0001\u01bc\x0069\x0000\x0029\u01fc" + + "\x0001\u024e\x0003\x0000\x0003\u01fc\x0001\u015d\x0002\x0000\x0001\u024f\x0001\u01fc\x006F\x0000" + + "\x0004\u0250\x0002\x0000\x0001\u0250\x000D\x0000\x0001\u0250\x0006\x0000\x000A\u0250\x007E\x0000" + + "\x0004\u01ba\x0002\x0000\x0001\u01ba\x000D\x0000\x0001\u01ba\x0006\x0000\x000A\u01ba\x007D\x0000" + + "\x0001\u0251\x001A\u01ff\x0001\u0252\x000A\u01ff\x0001\u0253\x0008\x0000\x0001\u01fc\x0074\x0000" + + "\x0004\u0254\x0002\x0000\x0001\u0254\x000D\x0000\x0001\u0254\x0006\x0000\x000A\u0254\x0001\u0255" + + "\x00A2\x0000\x0001\u0256\x007C\x0000\x0026\u0202\x0001\u0204\x0002\u0202\x0001\u0205\x0003\u0202" + + "\x0001\u0206\x0005\x0000\x0002\u0202\x0004\x0000\x0001\u0202\x0069\x0000\x0001\u0257\x001A\u0203" + + "\x0001\u0258\x000A\u0203\x0001\u0259\x0002\u0202\x0001\u0205\x0003\u0202\x0001\u0206\x0001\u015b" + + "\x0001\u015c\x0001\u015d\x0002\x0000\x0002\u0202\x0004\x0000\x0001\u0202\x0069\x0000\x0026\u0204" + + "\x0001\x0000\x0002\u0204\x0001\u025a\x0003\u0204\x0001\u0206\x0005\x0000\x0002\u0204\x0004\x0000" + + "\x0001\u0204\x006A\x0000\x0004\u025b\x0002\x0000\x0001\u025b\x000D\x0000\x0001\u025b\x0006\x0000" + + "\x000A\u025b\x007E\x0000\x001A\u025c\x0001\x0000\x000A\u025c\x000B\x0000\x0001\u0207\x000B\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u010e\x001A\x001E\x0001\x0057\x000A\x00CE\x0001\u0143" + + "\x0001\x0054\x0001\x005F\x0001\x0054\x0001\x0000\x0002\x0060\x0001\x0055\x0001\u0133\x0001\u0134" + + "\x0001\u0135\x0002\x0000\x0001\x003E\x0001\x0054\x0004\x0000\x0002\x0054\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0015\x0001\u010e\x001A\x001E\x0001\x0057\x0002\u0208\x0001\x00CE\x0002\u0208" + + "\x0002\x00CE\x0001\u0208\x0001\x00CE\x0001\u0208\x0001\u0143\x0001\x0054\x0001\x005F\x0001\x0054" + + "\x0001\x0000\x0002\x0060\x0001\x0055\x0001\u0133\x0001\u0134\x0001\u0135\x0002\x0000\x0001\x003E" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0069\x0000\x0004\u025d\x0002\x0000\x0001\u025d\x000D\x0000" + + "\x0001\u025d\x0006\x0000\x000A\u025d\x0001\u01c7\x007D\x0000\x0004\u025e\x0002\x0000\x0001\u025e" + + "\x000D\x0000\x0001\u025e\x0006\x0000\x000A\u025e\x0001\u025f\x007D\x0000\x0004\u0260\x0002\x0000" + + "\x0001\u0260\x000D\x0000\x0001\u0260\x0006\x0000\x0001\u0261\x0002\u0262\x0001\u0261\x0005\u0262" + + "\x0001\u0263\x000C\x0000\x0001\u0116\x0071\x0000\x0004\u0264\x0002\x0000\x0001\u0264\x000D\x0000" + + "\x0001\u0264\x0006\x0000\x000A\u0264\x0001\u020e\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u0260" + + "\x0002\x0000\x0001\u0260\x000D\x0000\x0001\u0260\x0006\x0000\x0001\u0261\x0002\u0262\x0001\u0261" + + "\x0005\u0262\x0001\u0263\x007D\x0000\x0001\u0157\x0004\u0264\x0002\x0000\x0001\u0264\x000D\x0000" + + "\x0001\u0264\x0006\x0000\x000A\u0265\x0001\u020e\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157" + + "\x0004\u0264\x0002\x0000\x0001\u0264\x000D\x0000\x0001\u0264\x0006\x0000\x000A\u0264\x0001\u020e" + + "\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0264\x0002\x0000\x0001\u0264\x000D\x0000" + + "\x0001\u0264\x0006\x0000\x0002\u0265\x0001\u0264\x0002\u0265\x0002\u0264\x0001\u0265\x0001\u0264" + + "\x0001\u0265\x0001\u020e\x000B\x0000\x0001\u0116\x0096\x0000\x0001\u018a\x000B\x0000\x0001\u0116" + + "\x0070\x0000\x0001\u0266\x001B\x0000\x000A\u0214\x007D\x0000\x0001\u0266\x001B\x0000\x000A\u0267" + + "\x007D\x0000\x0001\u0266\x001B\x0000\x0001\u0214\x0001\u0268\x0001\u0267\x0002\u0214\x0002\u0267" + + "\x0001\u0214\x0001\u0267\x0001\u0214\x007D\x0000\x0001\x00DC\x000A\x008E\x0001\u015e\x000F\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0009\x008E\x0001\u0269\x0010\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u026a\x0016\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0007\x008E\x0001\u026b\x0012\x008E\x0001\x00DD\x0004\x008E\x0001\u026c" + + "\x0005\x008E\x007D\x0000\x0001\x00DC\x0008\x008E\x0001\u026d\x0004\x008E\x0001\u026e\x0005\x008E" + + "\x0001\u026f\x0006\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u0270" + + "\x0016\x008E\x0001\x00DD\x0002\x008E\x0001\u0271\x0007\x008E\x007D\x0000\x0001\x00DC\x0007\x008E" + + "\x0001\u0272\x0012\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0007\x008E\x0001\u0273" + + "\x0012\x008E\x0001\x00DD\x0003\x008E\x0001\u0274\x0006\x008E\x007D\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x0005\x008E\x0001\u0275\x0004\x008E\x007D\x0000\x0001\x00DC\x0007\x008E\x0001\u0276" + + "\x0012\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0019\x008E\x0001\u0277\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u0278\x0018\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0007\x008E\x0001\u0279\x0001\x008E\x0001\u027a\x0010\x008E\x0001\x00DD" + + "\x0009\x008E\x0001\u0275\x007D\x0000\x0001\x00DC\x0012\x008E\x0001\u027b\x0007\x008E\x0001\x00DD" + + "\x0002\x008E\x0001\u027c\x0007\x008E\x007D\x0000\x0001\x00DC\x0006\x008E\x0001\u027d\x0001\u027e" + + "\x0012\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0007\x008E\x0001\u027f\x0005\x008E" + + "\x0001\u0280\x000C\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0013\x008E\x0001\u0281" + + "\x0006\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0003\x008E" + + "\x0001\u0282\x0006\x008E\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u0283\x0016\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x000F\x008E\x0001\u0284\x000A\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\x008E\x0001\u0275\x0008\x008E\x007D\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\u0285\x0009\x008E\x0099\x0000\x000A\u0286\x0008\x0000" + + "\x0001\u015b\x0001\u015c\x0001\u015d\x0072\x0000\x0001\x00F3\x0015\x00AA\x0001\u0287\x0004\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u0288\x0019\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x000D\x00AA\x0001\u0289" + + "\x000C\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0011\x00AA" + + "\x0001\u028a\x0008\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x000E\x00AA\x0001\u028b\x0004\x00AA\x0001\u028c\x0006\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0004\x00AA\x0001\u028d\x0015\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0009\x00AA\x0001\u028e" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0004\x00AA\x0001\u028f\x0015\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0009\x00AA" + + "\x0001\u0290\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u0291\x0002\x00AA\x0001\u0292" + + "\x0010\x00AA\x0001\u0293\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x000E\x00AA\x0001\u0294\x000B\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0009\x00AA\x0001\u0295\x000B\x00AA\x0001\u0296\x0004\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0009\x00AA" + + "\x0001\u0297\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0013\x00AA\x0001\u0298\x0006\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0019\x00AA\x0001\u0299" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0016\x00AA\x0001\u029a" + + "\x0003\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0009\x00AA" + + "\x0001\u029b\x0010\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0003\x00AA\x0001\u029c\x0006\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0005\x00AA\x0001\u029d\x0014\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0008\x00AA\x0001\u029e\x0011\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\u029f\x0016\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0011\x00AA\x0001\u02a0\x0006\x00AA\x0001\u02a1" + + "\x0001\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x000A\x00AA" + + "\x0001\u02a2\x000F\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0001\x00AA\x0001\u02a3\x0008\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0014\x00AA\x0001\u02a4\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u02a5\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0019\x00AA\x0001\u02a6\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0069\x0000\x001A\u01f6\x0001\x0000\x000A\u01f6\x007E\x0000\x001A\u01f6\x0001\u0249" + + "\x000A\u01f6\x007E\x0000\x0004\u02a7\x0002\x0000\x0001\u02a7\x000D\x0000\x0001\u02a7\x0006\x0000" + + "\x000A\u02a7\x007E\x0000\x0004\u02a8\x0002\x0000\x0001\u02a8\x000D\x0000\x0001\u02a8\x0006\x0000" + + "\x000A\u02a8\x0001\u02a9\x00A2\x0000\x0001\u02aa\x007C\x0000\x001C\u01bc\x000A\u02ab\x0001\x0000" + + "\x0002\u01bc\x0001\u01fd\x0003\u01bc\x0001\u01be\x0001\x0000\x0001\u01fc\x0003\x0000\x0002\u01bc" + + "\x0004\x0000\x0001\u01bc\x006A\x0000\x0004\u02ac\x0002\x0000\x0001\u02ac\x000D\x0000\x0001\u02ac" + + "\x0006\x0000\x000A\u02ac\x008D\x0000\x0001\u02ad\x0093\x0000\x0004\u01bc\x0002\x0000\x0001\u01bc" + + "\x000D\x0000\x0001\u01bc\x0006\x0000\x000A\u01bc\x007E\x0000\x001A\u01ff\x0001\x0000\x000A\u01ff" + + "\x007E\x0000\x001A\u01ff\x0001\u0252\x000A\u01ff\x0099\x0000\x000A\u02ae\x007E\x0000\x0004\u02af" + + "\x0002\x0000\x0001\u02af\x000D\x0000\x0001\u02af\x0006\x0000\x000A\u02af\x0001\u0255\x007D\x0000" + + "\x0004\u02b0\x0002\x0000\x0001\u02b0\x000D\x0000\x0001\u02b0\x0006\x0000\x000A\u02b0\x0001\u02b1" + + "\x007D\x0000\x0004\u02b2\x0002\x0000\x0001\u02b2\x000D\x0000\x0001\u02b2\x0006\x0000\x0001\u02b3" + + "\x0002\u02b4\x0001\u02b3\x0005\u02b4\x0001\u02b5\x000C\x0000\x0001\u02b6\x0070\x0000\x0001\u0202" + + "\x001A\u0203\x0001\u0202\x000A\u0203\x0001\u0204\x0002\u0202\x0001\u0205\x0003\u0202\x0001\u0206" + + "\x0005\x0000\x0002\u0202\x0004\x0000\x0001\u0202\x0069\x0000\x0001\u0202\x001A\u0203\x0001\u0258" + + "\x000A\u0203\x0001\u0204\x0002\u0202\x0001\u0205\x0003\u0202\x0001\u0206\x0005\x0000\x0002\u0202" + + "\x0004\x0000\x0001\u0202\x0069\x0000\x001C\u0204\x000A\u02b7\x0001\x0000\x0002\u0204\x0001\u025a" + + "\x0003\u0204\x0001\u0206\x0005\x0000\x0002\u0204\x0004\x0000\x0001\u0204\x006A\x0000\x0004\u02b8" + + "\x0002\x0000\x0001\u02b8\x000D\x0000\x0001\u02b8\x0006\x0000\x000A\u02b8\x007E\x0000\x0004\u0202" + + "\x0002\x0000\x0001\u0202\x000D\x0000\x0001\u0202\x0006\x0000\x000A\u0202\x007D\x0000\x0001\u02b9" + + "\x001A\u025c\x0001\u02ba\x000A\u025c\x0001\u0143\x0007\x0000\x0001\u015b\x0001\u015c\x0001\u015d" + + "\x0098\x0000\x0001\u01c7\x007D\x0000\x0004\u02bb\x0002\x0000\x0001\u02bb\x000D\x0000\x0001\u02bb" + + "\x0006\x0000\x000A\u02bb\x0001\u025f\x007D\x0000\x0004\u02bc\x0002\x0000\x0001\u02bc\x000D\x0000" + + "\x0001\u02bc\x0006\x0000\x000A\u02bc\x0001\u02bd\x007D\x0000\x0004\u02be\x0002\x0000\x0001\u02be" + + "\x000D\x0000\x0001\u02be\x0006\x0000\x000A\u02be\x0001\u02bf\x000B\x0000\x0001\u0116\x0070\x0000" + + "\x0001\u0157\x0004\u02be\x0002\x0000\x0001\u02be\x000D\x0000\x0001\u02be\x0006\x0000\x000A\u02c0" + + "\x0001\u02bf\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u02be\x0002\x0000\x0001\u02be" + + "\x000D\x0000\x0001\u02be\x0006\x0000\x000A\u02c1\x0001\u02bf\x000B\x0000\x0001\u0116\x0070\x0000" + + "\x0001\u0157\x0004\u02be\x0002\x0000\x0001\u02be\x000D\x0000\x0001\u02be\x0006\x0000\x0001\u02c0" + + "\x0001\u02c2\x0001\u02c1\x0002\u02c0\x0002\u02c1\x0001\u02c0\x0001\u02c1\x0001\u02c0\x0001\u02bf" + + "\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u02c3\x0002\x0000\x0001\u02c3\x000D\x0000\x0001\u02c3" + + "\x0006\x0000\x000A\u02c3\x0001\u020e\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u02c3" + + "\x0002\x0000\x0001\u02c3\x000D\x0000\x0001\u02c3\x0006\x0000\x000A\u02c3\x0001\u020e\x000B\x0000" + + "\x0001\u0116\x008C\x0000\x0001\u02c4\x0002\u02c5\x0001\u02c4\x0005\u02c5\x0001\u02c6\x007D\x0000" + + "\x0001\u0266\x00A2\x0000\x0001\u0266\x001B\x0000\x0002\u0267\x0001\x0000\x0002\u0267\x0002\x0000" + + "\x0001\u0267\x0001\x0000\x0001\u0267\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u02c7\x0018\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u02c8\x0005\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u02c9\x0005\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u02ca\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x000C\x008E\x0001\u02cb\x000D\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0001\x008E\x0001\u02cc\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\x008E" + + "\x0001\u02cd\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u02ce" + + "\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0011\x008E\x0001\u02cf\x0008\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u02d0\x0005\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u02d1\x0005\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0001\u0199\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0014\x008E\x0001\u02ce\x0005\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0014\x008E" + + "\x0001\u02d2\x0005\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u02d3" + + "\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0019\x008E\x0001\u02d4\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u02d5\x0005\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u02d6\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0001\u02d7\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0011\x008E" + + "\x0001\u02d8\x0008\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0004\x008E\x0001\u02d9" + + "\x0015\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u02da\x0005\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u02db\x0005\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0004\x008E\x0001\u02dc\x0015\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0011\x008E\x0001\u02dd\x0008\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0014\x008E\x0001\u02de\x0005\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x001A\x008E\x0001\x00DD\x0001\u02df\x0009\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD" + + "\x0007\x008E\x0001\u02e0\x0002\x008E\x007D\x0000\x0001\x00DC\x0001\u02e1\x0019\x008E\x0001\x00DD" + + "\x000A\x008E\x00AB\x0000\x0001\u015b\x0001\u015c\x0001\u015d\x0072\x0000\x0001\x00F3\x0001\x00AA" + + "\x0001\u02e2\x0018\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0001\u02e3\x0009\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0006\x00AA\x0001\u02e4\x0013\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0007\x00AA\x0001\u02e5\x0002\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0008\x00AA\x0001\u014a\x0001\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0005\x00AA\x0001\u014a\x0004\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0016\x00AA\x0001\u02e6\x0003\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\u02e7\x0018\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0016\x00AA\x0001\u02e8" + + "\x0003\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0001\x00AA\x0001\u02e9\x0008\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0001\u02ea\x0017\x00AA\x0001\u02eb\x0001\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0004\x00AA\x0001\u02ec\x0015\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0015\x00AA\x0001\u02ed\x0004\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0001\u02ee\x0009\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0002\x00AA\x0001\x00BD" + + "\x0007\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0003\x00AA" + + "\x0001\u02ef\x0006\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u02f0\x0001\x00AA" + + "\x0001\u02f1\x0017\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0001\u02e5\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0002\x00AA\x0001\u02f2\x0007\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0002\x00AA\x0001\u02f3\x0007\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x000D\x00AA\x0001\u02f4\x000C\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0005\x00AA\x0001\u02f5\x0004\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0007\x00AA\x0001\u02f6" + + "\x0002\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0009\x00AA" + + "\x0001\u02f7\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\u02f8\x0018\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0003\x00AA\x0001\u02f9\x0006\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0001\x00AA\x0001\u02fa\x0008\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0001\x00AA\x0001\u02fb\x0008\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0014\x00AA\x0001\u02fc\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0006\x00AA\x0001\u02fd\x0003\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0003\x00AA\x0001\u02fe\x0006\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0015\x00AA\x0001\u02ff\x0004\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0069\x0000\x0004\u01f7\x0002\x0000\x0001\u01f7\x000D\x0000" + + "\x0001\u01f7\x0006\x0000\x000A\u01f7\x007E\x0000\x0004\u0300\x0002\x0000\x0001\u0300\x000D\x0000" + + "\x0001\u0300\x0006\x0000\x000A\u0300\x0001\u02a9\x007D\x0000\x0004\u0301\x0002\x0000\x0001\u0301" + + "\x000D\x0000\x0001\u0301\x0006\x0000\x000A\u0301\x0001\u0302\x007D\x0000\x0004\u0303\x0002\x0000" + + "\x0001\u0303\x000D\x0000\x0001\u0303\x0006\x0000\x0001\u0304\x0002\u0305\x0001\u0304\x0005\u0305" + + "\x0001\u0306\x000C\x0000\x0001\u0307\x0070\x0000\x001C\u01bc\x000A\u0308\x0001\x0000\x0002\u01bc" + + "\x0001\u01fd\x0003\u01bc\x0001\u01be\x0001\x0000\x0001\u01fc\x0003\x0000\x0002\u01bc\x0004\x0000" + + "\x0001\u01bc\x006A\x0000\x0004\u01fc\x0002\x0000\x0001\u01fc\x000D\x0000\x0001\u01fc\x0006\x0000" + + "\x000A\u01fc\x0096\x0000\x0001\u0309\x00A5\x0000\x000A\u030a\x0009\x0000\x0001\u01fc\x0074\x0000" + + "\x0004\u030b\x0002\x0000\x0001\u030b\x000D\x0000\x0001\u030b\x0006\x0000\x000A\u030b\x0001\u0255" + + "\x007D\x0000\x0004\u030c\x0002\x0000\x0001\u030c\x000D\x0000\x0001\u030c\x0006\x0000\x000A\u030c" + + "\x0001\u030d\x007D\x0000\x0004\u030e\x0002\x0000\x0001\u030e\x000D\x0000\x0001\u030e\x0006\x0000" + + "\x0001\u030f\x0002\u0310\x0001\u030f\x0005\u0310\x0001\u0311\x000C\x0000\x0001\u02b6\x0071\x0000" + + "\x0004\u0312\x0002\x0000\x0001\u0312\x000D\x0000\x0001\u0312\x0006\x0000\x000A\u0312\x0001\u0313" + + "\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u0312\x0002\x0000\x0001\u0312\x000D\x0000" + + "\x0001\u0312\x0006\x0000\x000A\u0315\x0001\u0313\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314" + + "\x0004\u0312\x0002\x0000\x0001\u0312\x000D\x0000\x0001\u0312\x0006\x0000\x000A\u0316\x0001\u0313" + + "\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u0312\x0002\x0000\x0001\u0312\x000D\x0000" + + "\x0001\u0312\x0006\x0000\x0001\u0315\x0001\u0317\x0001\u0316\x0002\u0315\x0002\u0316\x0001\u0315" + + "\x0001\u0316\x0001\u0315\x0001\u0313\x000B\x0000\x0001\u02b6\x0096\x0000\x0001\u0253\x0008\x0000" + + "\x0001\u01fc\x0073\x0000\x001C\u0204\x000A\u0318\x0001\x0000\x0002\u0204\x0001\u025a\x0003\u0204" + + "\x0001\u0206\x0001\u015b\x0001\u015c\x0001\u015d\x0002\x0000\x0002\u0204\x0004\x0000\x0001\u0204" + + "\x006A\x0000\x0004\u0204\x0002\x0000\x0001\u0204\x000D\x0000\x0001\u0204\x0006\x0000\x000A\u0204" + + "\x007E\x0000\x001A\u025c\x0001\x0000\x000A\u025c\x007E\x0000\x001A\u025c\x0001\u02ba\x000A\u025c" + + "\x007E\x0000\x0004\u0319\x0002\x0000\x0001\u0319\x000D\x0000\x0001\u0319\x0006\x0000\x000A\u0319" + + "\x0001\u025f\x007D\x0000\x0004\u031a\x0002\x0000\x0001\u031a\x000D\x0000\x0001\u031a\x0006\x0000" + + "\x000A\u031a\x0001\u031b\x007D\x0000\x0004\u031c\x0002\x0000\x0001\u031c\x000D\x0000\x0001\u031c" + + "\x0006\x0000\x0001\u031d\x0002\u031e\x0001\u031d\x0005\u031e\x0001\u031f\x000C\x0000\x0001\u0116" + + "\x0071\x0000\x0004\u0320\x0002\x0000\x0001\u0320\x000D\x0000\x0001\u0320\x0006\x0000\x000A\u0320" + + "\x0001\u02bf\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u031c\x0002\x0000\x0001\u031c\x000D\x0000" + + "\x0001\u031c\x0006\x0000\x0001\u031d\x0002\u031e\x0001\u031d\x0005\u031e\x0001\u031f\x007D\x0000" + + "\x0001\u0157\x0004\u0320\x0002\x0000\x0001\u0320\x000D\x0000\x0001\u0320\x0006\x0000\x000A\u0321" + + "\x0001\u02bf\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0320\x0002\x0000\x0001\u0320" + + "\x000D\x0000\x0001\u0320\x0006\x0000\x000A\u0320\x0001\u02bf\x000B\x0000\x0001\u0116\x0070\x0000" + + "\x0001\u0157\x0004\u0320\x0002\x0000\x0001\u0320\x000D\x0000\x0001\u0320\x0006\x0000\x0002\u0321" + + "\x0001\u0320\x0002\u0321\x0002\u0320\x0001\u0321\x0001\u0320\x0001\u0321\x0001\u02bf\x000B\x0000" + + "\x0001\u0116\x0096\x0000\x0001\u020e\x000B\x0000\x0001\u0116\x008C\x0000\x000A\u02c5\x000C\x0000" + + "\x0001\u0116\x008C\x0000\x000A\u0322\x000C\x0000\x0001\u0116\x008C\x0000\x0001\u02c5\x0001\u0323" + + "\x0001\u0322\x0002\u02c5\x0002\u0322\x0001\u02c5\x0001\u0322\x0001\u02c5\x000C\x0000\x0001\u0116" + + "\x0070\x0000\x0001\x00DC\x0015\x008E\x0001\u0324\x0004\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0001\u0325\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x000D\x008E" + + "\x0001\u0326\x000C\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0011\x008E\x0001\u0327" + + "\x0008\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x000E\x008E\x0001\u0328\x0004\x008E" + + "\x0001\u0329\x0006\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0004\x008E\x0001\u032a" + + "\x0015\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0009\x008E" + + "\x0001\u032b\x007D\x0000\x0001\x00DC\x0004\x008E\x0001\u032c\x0015\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0009\x008E\x0001\u032d\x007D\x0000\x0001\x00DC" + + "\x0001\u032e\x0002\x008E\x0001\u032f\x0010\x008E\x0001\u0330\x0005\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x000E\x008E\x0001\u0331\x000B\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0009\x008E\x0001\u0332\x000B\x008E\x0001\u0333\x0004\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0009\x008E\x0001\u0334\x007D\x0000\x0001\x00DC" + + "\x0013\x008E\x0001\u0335\x0006\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0019\x008E" + + "\x0001\u0336\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0016\x008E\x0001\u0337\x0003\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0009\x008E\x0001\u0338\x0010\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0003\x008E\x0001\u0339\x0006\x008E" + + "\x007D\x0000\x0001\x00DC\x0005\x008E\x0001\u033a\x0014\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0008\x008E\x0001\u033b\x0011\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0003\x008E\x0001\u033c\x0016\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0011\x008E" + + "\x0001\u033d\x0006\x008E\x0001\u033e\x0001\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x000A\x008E\x0001\u033f\x000F\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x0001\x008E\x0001\u0340\x0008\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u0341" + + "\x0005\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u0342\x0005\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0019\x008E\x0001\u0343\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0001\u0344\x0009\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0001\u0345\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0008\x00AA\x0001\u0346\x0001\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0015\x00AA\x0001\x00F8\x0004\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0005\x00AA\x0001\u0347" + + "\x0004\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0005\x00AA" + + "\x0001\u0348\x0004\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0005\x00AA\x0001\u02ef\x0004\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0003\x00AA\x0001\u0345\x0006\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x000A\x00AA\x0001\u0349\x000F\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0015\x00AA\x0001\u034a\x0004\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x000D\x00AA\x0001\u034b\x000C\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0003\x00AA\x0001\u034c\x0006\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0002\x00AA\x0001\u02e5\x0017\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\x00F8\x0018\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0009\x00AA\x0001\u034d" + + "\x0010\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0009\x00AA" + + "\x0001\u034e\x0010\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0001\u034f\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0001\u0350\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0002\x00AA\x0001\u0351\x0017\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0004\x00AA\x0001\x00FF\x0005\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0008\x00AA\x0001\u0352\x0011\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u0353\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0015\x00AA\x0001\u0354\x0004\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0004\x00AA\x0001\u0345" + + "\x0005\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0006\x00AA" + + "\x0001\u0345\x0003\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0002\x00AA\x0001\u0345\x0007\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x000E\x00AA" + + "\x0001\u0355\x000B\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0001\u0356\x0009\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0003\x00AA\x0001\u0357\x0006\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0014\x00AA\x0001\u0358\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0069\x0000\x0004\u0359\x0002\x0000\x0001\u0359\x000D\x0000\x0001\u0359\x0006\x0000\x000A\u0359" + + "\x0001\u02a9\x007D\x0000\x0004\u035a\x0002\x0000\x0001\u035a\x000D\x0000\x0001\u035a\x0006\x0000" + + "\x000A\u035a\x0001\u035b\x007D\x0000\x0004\u035c\x0002\x0000\x0001\u035c\x000D\x0000\x0001\u035c" + + "\x0006\x0000\x0001\u035d\x0002\u035e\x0001\u035d\x0005\u035e\x0001\u035f\x000C\x0000\x0001\u0307" + + "\x0071\x0000\x0004\u0360\x0002\x0000\x0001\u0360\x000D\x0000\x0001\u0360\x0006\x0000\x000A\u0360" + + "\x0001\u0361\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u0360\x0002\x0000\x0001\u0360" + + "\x000D\x0000\x0001\u0360\x0006\x0000\x000A\u0363\x0001\u0361\x000B\x0000\x0001\u0307\x0070\x0000" + + "\x0001\u0362\x0004\u0360\x0002\x0000\x0001\u0360\x000D\x0000\x0001\u0360\x0006\x0000\x000A\u0364" + + "\x0001\u0361\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u0360\x0002\x0000\x0001\u0360" + + "\x000D\x0000\x0001\u0360\x0006\x0000\x0001\u0363\x0001\u0365\x0001\u0364\x0002\u0363\x0002\u0364" + + "\x0001\u0363\x0001\u0364\x0001\u0363\x0001\u0361\x000B\x0000\x0001\u0307\x009F\x0000\x0001\u01f7" + + "\x0073\x0000\x001C\u01bc\x000A\u0366\x0001\x0000\x0002\u01bc\x0001\u01fd\x0003\u01bc\x0001\u01be" + + "\x0001\x0000\x0001\u01fc\x0003\x0000\x0002\u01bc\x0004\x0000\x0001\u01bc\x0077\x0000\x0001\u0367" + + "\x00B0\x0000\x000A\u0368\x0009\x0000\x0001\u01fc\x0099\x0000\x0001\u0255\x007D\x0000\x0004\u0369" + + "\x0002\x0000\x0001\u0369\x000D\x0000\x0001\u0369\x0006\x0000\x000A\u0369\x0001\u030d\x007D\x0000" + + "\x0004\u036a\x0002\x0000\x0001\u036a\x000D\x0000\x0001\u036a\x0006\x0000\x000A\u036a\x0001\u036b" + + "\x007D\x0000\x0004\u036c\x0002\x0000\x0001\u036c\x000D\x0000\x0001\u036c\x0006\x0000\x000A\u036c" + + "\x0001\u036d\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u036c\x0002\x0000\x0001\u036c" + + "\x000D\x0000\x0001\u036c\x0006\x0000\x000A\u036e\x0001\u036d\x000B\x0000\x0001\u02b6\x0070\x0000" + + "\x0001\u0314\x0004\u036c\x0002\x0000\x0001\u036c\x000D\x0000\x0001\u036c\x0006\x0000\x000A\u036f" + + "\x0001\u036d\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u036c\x0002\x0000\x0001\u036c" + + "\x000D\x0000\x0001\u036c\x0006\x0000\x0001\u036e\x0001\u0370\x0001\u036f\x0002\u036e\x0002\u036f" + + "\x0001\u036e\x0001\u036f\x0001\u036e\x0001\u036d\x000B\x0000\x0001\u02b6\x0071\x0000\x0004\u0371" + + "\x0002\x0000\x0001\u0371\x000D\x0000\x0001\u0371\x0006\x0000\x000A\u0371\x0001\u0313\x000B\x0000" + + "\x0001\u02b6\x0071\x0000\x0004\u030e\x0002\x0000\x0001\u030e\x000D\x0000\x0001\u030e\x0006\x0000" + + "\x0001\u030f\x0002\u0310\x0001\u030f\x0005\u0310\x0001\u0311\x0099\x0000\x0001\u0372\x0002\u0373" + + "\x0001\u0372\x0005\u0373\x0001\u0374\x007D\x0000\x0001\u0314\x0004\u0371\x0002\x0000\x0001\u0371" + + "\x000D\x0000\x0001\u0371\x0006\x0000\x000A\u0375\x0001\u0313\x000B\x0000\x0001\u02b6\x0070\x0000" + + "\x0001\u0314\x0004\u0371\x0002\x0000\x0001\u0371\x000D\x0000\x0001\u0371\x0006\x0000\x000A\u0371" + + "\x0001\u0313\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u0371\x0002\x0000\x0001\u0371" + + "\x000D\x0000\x0001\u0371\x0006\x0000\x0002\u0375\x0001\u0371\x0002\u0375\x0002\u0371\x0001\u0375" + + "\x0001\u0371\x0001\u0375\x0001\u0313\x000B\x0000\x0001\u02b6\x0070\x0000\x001C\u0204\x000A\u0376" + + "\x0001\x0000\x0002\u0204\x0001\u025a\x0003\u0204\x0001\u0206\x0001\u015b\x0001\u015c\x0001\u015d" + + "\x0002\x0000\x0002\u0204\x0004\x0000\x0001\u0204\x008F\x0000\x0001\u025f\x007D\x0000\x0004\u0377" + + "\x0002\x0000\x0001\u0377\x000D\x0000\x0001\u0377\x0006\x0000\x000A\u0377\x0001\u031b\x007D\x0000" + + "\x0004\u0378\x0002\x0000\x0001\u0378\x000D\x0000\x0001\u0378\x0006\x0000\x000A\u0378\x0001\u0379" + + "\x007D\x0000\x0004\u037a\x0002\x0000\x0001\u037a\x000D\x0000\x0001\u037a\x0006\x0000\x000A\u037a" + + "\x0001\u037b\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u037a\x0002\x0000\x0001\u037a" + + "\x000D\x0000\x0001\u037a\x0006\x0000\x000A\u037c\x0001\u037b\x000B\x0000\x0001\u0116\x0070\x0000" + + "\x0001\u0157\x0004\u037a\x0002\x0000\x0001\u037a\x000D\x0000\x0001\u037a\x0006\x0000\x000A\u037d" + + "\x0001\u037b\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u037a\x0002\x0000\x0001\u037a" + + "\x000D\x0000\x0001\u037a\x0006\x0000\x0001\u037c\x0001\u037e\x0001\u037d\x0002\u037c\x0002\u037d" + + "\x0001\u037c\x0001\u037d\x0001\u037c\x0001\u037b\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u037f" + + "\x0002\x0000\x0001\u037f\x000D\x0000\x0001\u037f\x0006\x0000\x000A\u037f\x0001\u02bf\x000B\x0000" + + "\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u037f\x0002\x0000\x0001\u037f\x000D\x0000\x0001\u037f" + + "\x0006\x0000\x000A\u037f\x0001\u02bf\x000B\x0000\x0001\u0116\x00A2\x0000\x0001\u0116\x008C\x0000" + + "\x0002\u0322\x0001\x0000\x0002\u0322\x0002\x0000\x0001\u0322\x0001\x0000\x0001\u0322\x000C\x0000" + + "\x0001\u0116\x0070\x0000\x0001\x00DC\x0001\x008E\x0001\u0380\x0018\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\u0381\x0009\x008E\x007D\x0000\x0001\x00DC" + + "\x0006\x008E\x0001\u0382\x0013\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x0007\x008E\x0001\u0383\x0002\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD" + + "\x0008\x008E\x0001\u019e\x0001\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0005\x008E" + + "\x0001\u019e\x0004\x008E\x007D\x0000\x0001\x00DC\x0016\x008E\x0001\u0384\x0003\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u0385\x0018\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0016\x008E\x0001\u0386\x0003\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\x008E\x0001\u0387\x0008\x008E\x007D\x0000\x0001\x00DC" + + "\x0001\u0388\x0017\x008E\x0001\u0389\x0001\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0004\x008E\x0001\u038a\x0015\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0015\x008E" + + "\x0001\u038b\x0004\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD" + + "\x0001\u038c\x0009\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0002\x008E\x0001\u0123" + + "\x0007\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0003\x008E\x0001\u038d\x0006\x008E" + + "\x007D\x0000\x0001\x00DC\x0001\u038e\x0001\x008E\x0001\u038f\x0017\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0001\u0383\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x001A\x008E\x0001\x00DD\x0002\x008E\x0001\u0390\x0007\x008E\x007D\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x0002\x008E\x0001\u0391\x0007\x008E\x007D\x0000\x0001\x00DC\x000D\x008E\x0001\u0392" + + "\x000C\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0005\x008E" + + "\x0001\u0393\x0004\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0007\x008E\x0001\u0394" + + "\x0002\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0009\x008E\x0001\u0395\x007D\x0000" + + "\x0001\x00DC\x0001\x008E\x0001\u0396\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x001A\x008E\x0001\x00DD\x0003\x008E\x0001\u0397\x0006\x008E\x007D\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x0001\x008E\x0001\u0398\x0008\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD" + + "\x0001\x008E\x0001\u0399\x0008\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u039a\x0005\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0006\x008E\x0001\u039b" + + "\x0003\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0003\x008E\x0001\u039c\x0006\x008E" + + "\x007D\x0000\x0001\x00DC\x0015\x008E\x0001\u039d\x0004\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00F3\x0003\x00AA\x0001\u039e\x0016\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x0002\x00AA\x0001\x00F8\x0017\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0006\x00AA\x0001\u0103\x0013\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\u02f9\x0018\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\u039f\x0016\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0006\x00AA\x0001\u03a0\x0003\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0006\x00AA\x0001\u03a1\x0003\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0007\x00AA\x0001\u03a2\x0002\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0001\u03a3\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0004\x00AA\x0001\u03a4\x0005\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0004\x00AA\x0001\u03a5\x0005\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0016\x00AA\x0001\u03a6\x0003\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0018\x00AA\x0001\u03a7\x0001\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0009\x00AA\x0001\u0145\x0010\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0002\x00AA\x0001\u03a8\x0007\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x000A\x00AA" + + "\x0001\u03a9\x000F\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x000F\x00AA\x0001\u0100\x000A\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0004\x00AA\x0001\u03aa\x0005\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0006\x00AA\x0001\u0148\x0003\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0018\x00AA\x0001\u03ab\x0001\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0018\x00AA\x0001\u03ac\x0001\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x008E\x0000\x0001\u02a9\x007D\x0000\x0004\u03ad\x0002\x0000" + + "\x0001\u03ad\x000D\x0000\x0001\u03ad\x0006\x0000\x000A\u03ad\x0001\u035b\x007D\x0000\x0004\u03ae" + + "\x0002\x0000\x0001\u03ae\x000D\x0000\x0001\u03ae\x0006\x0000\x000A\u03ae\x0001\u03af\x007D\x0000" + + "\x0004\u03b0\x0002\x0000\x0001\u03b0\x000D\x0000\x0001\u03b0\x0006\x0000\x000A\u03b0\x0001\u03b1" + + "\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u03b0\x0002\x0000\x0001\u03b0\x000D\x0000" + + "\x0001\u03b0\x0006\x0000\x000A\u03b2\x0001\u03b1\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362" + + "\x0004\u03b0\x0002\x0000\x0001\u03b0\x000D\x0000\x0001\u03b0\x0006\x0000\x000A\u03b3\x0001\u03b1" + + "\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u03b0\x0002\x0000\x0001\u03b0\x000D\x0000" + + "\x0001\u03b0\x0006\x0000\x0001\u03b2\x0001\u03b4\x0001\u03b3\x0002\u03b2\x0002\u03b3\x0001\u03b2" + + "\x0001\u03b3\x0001\u03b2\x0001\u03b1\x000B\x0000\x0001\u0307\x0071\x0000\x0004\u03b5\x0002\x0000" + + "\x0001\u03b5\x000D\x0000\x0001\u03b5\x0006\x0000\x000A\u03b5\x0001\u0361\x000B\x0000\x0001\u0307" + + "\x0071\x0000\x0004\u035c\x0002\x0000\x0001\u035c\x000D\x0000\x0001\u035c\x0006\x0000\x0001\u035d" + + "\x0002\u035e\x0001\u035d\x0005\u035e\x0001\u035f\x0099\x0000\x0001\u03b6\x0002\u03b7\x0001\u03b6" + + "\x0005\u03b7\x0001\u03b8\x007D\x0000\x0001\u0362\x0004\u03b5\x0002\x0000\x0001\u03b5\x000D\x0000" + + "\x0001\u03b5\x0006\x0000\x000A\u03b9\x0001\u0361\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362" + + "\x0004\u03b5\x0002\x0000\x0001\u03b5\x000D\x0000\x0001\u03b5\x0006\x0000\x000A\u03b5\x0001\u0361" + + "\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u03b5\x0002\x0000\x0001\u03b5\x000D\x0000" + + "\x0001\u03b5\x0006\x0000\x0002\u03b9\x0001\u03b5\x0002\u03b9\x0002\u03b5\x0001\u03b9\x0001\u03b5" + + "\x0001\u03b9\x0001\u0361\x000B\x0000\x0001\u0307\x0070\x0000\x001C\u01bc\x000A\u03ba\x0001\x0000" + + "\x0002\u01bc\x0001\u01fd\x0003\u01bc\x0001\u01be\x0001\x0000\x0001\u01fc\x0003\x0000\x0002\u01bc" + + "\x0004\x0000\x0001\u01bc\x006D\x0000\x0001\u03bb\x00BA\x0000\x000A\u03bc\x0009\x0000\x0001\u01fc" + + "\x0074\x0000\x0004\u03bd\x0002\x0000\x0001\u03bd\x000D\x0000\x0001\u03bd\x0006\x0000\x000A\u03bd" + + "\x0001\u030d\x007D\x0000\x0004\u03be\x0002\x0000\x0001\u03be\x000D\x0000\x0001\u03be\x0006\x0000" + + "\x000A\u03be\x0001\u03bf\x007D\x0000\x0004\u03c0\x0002\x0000\x0001\u03c0\x000D\x0000\x0001\u03c0" + + "\x0006\x0000\x0001\u03c1\x0002\u03c2\x0001\u03c1\x0005\u03c2\x0001\u03c3\x000C\x0000\x0001\u02b6" + + "\x0071\x0000\x0004\u03c4\x0002\x0000\x0001\u03c4\x000D\x0000\x0001\u03c4\x0006\x0000\x000A\u03c4" + + "\x0001\u036d\x000B\x0000\x0001\u02b6\x0071\x0000\x0004\u03c0\x0002\x0000\x0001\u03c0\x000D\x0000" + + "\x0001\u03c0\x0006\x0000\x0001\u03c1\x0002\u03c2\x0001\u03c1\x0005\u03c2\x0001\u03c3\x007D\x0000" + + "\x0001\u0314\x0004\u03c4\x0002\x0000\x0001\u03c4\x000D\x0000\x0001\u03c4\x0006\x0000\x000A\u03c5" + + "\x0001\u036d\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u03c4\x0002\x0000\x0001\u03c4" + + "\x000D\x0000\x0001\u03c4\x0006\x0000\x000A\u03c4\x0001\u036d\x000B\x0000\x0001\u02b6\x0070\x0000" + + "\x0001\u0314\x0004\u03c4\x0002\x0000\x0001\u03c4\x000D\x0000\x0001\u03c4\x0006\x0000\x0002\u03c5" + + "\x0001\u03c4\x0002\u03c5\x0002\u03c4\x0001\u03c5\x0001\u03c4\x0001\u03c5\x0001\u036d\x000B\x0000" + + "\x0001\u02b6\x0071\x0000\x0004\u03c6\x0002\x0000\x0001\u03c6\x000D\x0000\x0001\u03c6\x0006\x0000" + + "\x000A\u03c6\x0001\u0313\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u03c7\x001B\x0000\x000A\u0373" + + "\x007D\x0000\x0001\u03c7\x001B\x0000\x000A\u03c8\x007D\x0000\x0001\u03c7\x001B\x0000\x0001\u0373" + + "\x0001\u03c9\x0001\u03c8\x0002\u0373\x0002\u03c8\x0001\u0373\x0001\u03c8\x0001\u0373\x007D\x0000" + + "\x0001\u0314\x0004\u03c6\x0002\x0000\x0001\u03c6\x000D\x0000\x0001\u03c6\x0006\x0000\x000A\u03c6" + + "\x0001\u0313\x000B\x0000\x0001\u02b6\x0070\x0000\x001C\u0204\x000A\u03ca\x0001\x0000\x0002\u0204" + + "\x0001\u025a\x0003\u0204\x0001\u0206\x0001\u015b\x0001\u015c\x0001\u015d\x0002\x0000\x0002\u0204" + + "\x0004\x0000\x0001\u0204\x006A\x0000\x0004\u03cb\x0002\x0000\x0001\u03cb\x000D\x0000\x0001\u03cb" + + "\x0006\x0000\x000A\u03cb\x0001\u031b\x007D\x0000\x0004\u03cc\x0002\x0000\x0001\u03cc\x000D\x0000" + + "\x0001\u03cc\x0006\x0000\x000A\u03cc\x0001\u03cd\x007D\x0000\x0004\u03ce\x0002\x0000\x0001\u03ce" + + "\x000D\x0000\x0001\u03ce\x0006\x0000\x0001\u03cf\x0002\u03d0\x0001\u03cf\x0005\u03d0\x0001\u03d1" + + "\x000C\x0000\x0001\u0116\x0071\x0000\x0004\u03d2\x0002\x0000\x0001\u03d2\x000D\x0000\x0001\u03d2" + + "\x0006\x0000\x000A\u03d2\x0001\u037b\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u03ce\x0002\x0000" + + "\x0001\u03ce\x000D\x0000\x0001\u03ce\x0006\x0000\x0001\u03cf\x0002\u03d0\x0001\u03cf\x0005\u03d0" + + "\x0001\u03d1\x007D\x0000\x0001\u0157\x0004\u03d2\x0002\x0000\x0001\u03d2\x000D\x0000\x0001\u03d2" + + "\x0006\x0000\x000A\u03d3\x0001\u037b\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u03d2" + + "\x0002\x0000\x0001\u03d2\x000D\x0000\x0001\u03d2\x0006\x0000\x000A\u03d2\x0001\u037b\x000B\x0000" + + "\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u03d2\x0002\x0000\x0001\u03d2\x000D\x0000\x0001\u03d2" + + "\x0006\x0000\x0002\u03d3\x0001\u03d2\x0002\u03d3\x0002\u03d2\x0001\u03d3\x0001\u03d2\x0001\u03d3" + + "\x0001\u037b\x000B\x0000\x0001\u0116\x0096\x0000\x0001\u02bf\x000B\x0000\x0001\u0116\x0070\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\u03d4\x0009\x008E\x007D\x0000\x0001\x00DC\x0001\u03d5" + + "\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0008\x008E" + + "\x0001\u03d6\x0001\x008E\x007D\x0000\x0001\x00DC\x0015\x008E\x0001\u015e\x0004\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0005\x008E\x0001\u03d7\x0004\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0005\x008E\x0001\u03d8\x0004\x008E\x007D\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0005\x008E\x0001\u038d\x0004\x008E\x007D\x0000\x0001\x00DC" + + "\x001A\x008E\x0001\x00DD\x0003\x008E\x0001\u03d5\x0006\x008E\x007D\x0000\x0001\x00DC\x000A\x008E" + + "\x0001\u03d9\x000F\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0015\x008E\x0001\u03da" + + "\x0004\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x000D\x008E\x0001\u03db\x000C\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0003\x008E\x0001\u03dc" + + "\x0006\x008E\x007D\x0000\x0001\x00DC\x0002\x008E\x0001\u0383\x0017\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u015e\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0009\x008E\x0001\u03dd\x0010\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0009\x008E\x0001\u03de\x0010\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u03df" + + "\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u03e0\x0019\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0002\x008E\x0001\u03e1\x0017\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0004\x008E\x0001\u0165\x0005\x008E\x007D\x0000" + + "\x0001\x00DC\x0008\x008E\x0001\u03e2\x0011\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0001\u03e3\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0015\x008E\x0001\u03e4" + + "\x0004\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0004\x008E" + + "\x0001\u03d5\x0005\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0006\x008E\x0001\u03d5" + + "\x0003\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0002\x008E\x0001\u03d5\x0007\x008E" + + "\x007D\x0000\x0001\x00DC\x000E\x008E\x0001\u03e5\x000B\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\u03e6\x0009\x008E\x007D\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x0003\x008E\x0001\u03e7\x0006\x008E\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u03e8" + + "\x0005\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00F3\x0001\u03e9\x0019\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0009\x00AA" + + "\x0001\u02ef\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u03ea\x0019\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0007\x00AA\x0001\u03eb\x0012\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u03ec\x0019\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0006\x00AA\x0001\u03ed\x0003\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0015\x00AA" + + "\x0001\u03ee\x0004\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0001\u03ef\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0006\x00AA\x0001\u03f0\x0003\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0001\u03f1\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0006\x00AA\x0001\u0144\x0003\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x000A\x00AA\x0001\u03f2\x000F\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u03f3\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0008\x00AA\x0001\u03f4\x0011\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0019\x00AA\x0001\u03f5\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0069\x0000\x0004\u03f6\x0002\x0000\x0001\u03f6\x000D\x0000\x0001\u03f6" + + "\x0006\x0000\x000A\u03f6\x0001\u035b\x007D\x0000\x0004\u03f7\x0002\x0000\x0001\u03f7\x000D\x0000" + + "\x0001\u03f7\x0006\x0000\x000A\u03f7\x0001\u03f8\x007D\x0000\x0004\u03f9\x0002\x0000\x0001\u03f9" + + "\x000D\x0000\x0001\u03f9\x0006\x0000\x0001\u03fa\x0002\u03fb\x0001\u03fa\x0005\u03fb\x0001\u03fc" + + "\x000C\x0000\x0001\u0307\x0071\x0000\x0004\u03fd\x0002\x0000\x0001\u03fd\x000D\x0000\x0001\u03fd" + + "\x0006\x0000\x000A\u03fd\x0001\u03b1\x000B\x0000\x0001\u0307\x0071\x0000\x0004\u03f9\x0002\x0000" + + "\x0001\u03f9\x000D\x0000\x0001\u03f9\x0006\x0000\x0001\u03fa\x0002\u03fb\x0001\u03fa\x0005\u03fb" + + "\x0001\u03fc\x007D\x0000\x0001\u0362\x0004\u03fd\x0002\x0000\x0001\u03fd\x000D\x0000\x0001\u03fd" + + "\x0006\x0000\x000A\u03fe\x0001\u03b1\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u03fd" + + "\x0002\x0000\x0001\u03fd\x000D\x0000\x0001\u03fd\x0006\x0000\x000A\u03fd\x0001\u03b1\x000B\x0000" + + "\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u03fd\x0002\x0000\x0001\u03fd\x000D\x0000\x0001\u03fd" + + "\x0006\x0000\x0002\u03fe\x0001\u03fd\x0002\u03fe\x0002\u03fd\x0001\u03fe\x0001\u03fd\x0001\u03fe" + + "\x0001\u03b1\x000B\x0000\x0001\u0307\x0071\x0000\x0004\u03ff\x0002\x0000\x0001\u03ff\x000D\x0000" + + "\x0001\u03ff\x0006\x0000\x000A\u03ff\x0001\u0361\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0400" + + "\x001B\x0000\x000A\u03b7\x007D\x0000\x0001\u0400\x001B\x0000\x000A\u0401\x007D\x0000\x0001\u0400" + + "\x001B\x0000\x0001\u03b7\x0001\u0402\x0001\u0401\x0002\u03b7\x0002\u0401\x0001\u03b7\x0001\u0401" + + "\x0001\u03b7\x007D\x0000\x0001\u0362\x0004\u03ff\x0002\x0000\x0001\u03ff\x000D\x0000\x0001\u03ff" + + "\x0006\x0000\x000A\u03ff\x0001\u0361\x000B\x0000\x0001\u0307\x0070\x0000\x0026\u01bc\x0001\x0000" + + "\x0002\u01bc\x0001\u01fd\x0003\u01bc\x0001\u01be\x0001\x0000\x0001\u01fc\x0003\x0000\x0002\u01bc" + + "\x0004\x0000\x0001\u01bc\x009D\x0000\x0001\u0403\x008A\x0000\x000A\u0404\x0009\x0000\x0001\u01fc" + + "\x0099\x0000\x0001\u030d\x007D\x0000\x0004\u0405\x0002\x0000\x0001\u0405\x000D\x0000\x0001\u0405" + + "\x0006\x0000\x000A\u0405\x0001\u03bf\x007D\x0000\x0004\u0406\x0002\x0000\x0001\u0406\x000D\x0000" + + "\x0001\u0406\x0006\x0000\x000A\u0406\x0001\u0407\x007D\x0000\x0004\u0408\x0002\x0000\x0001\u0408" + + "\x000D\x0000\x0001\u0408\x0006\x0000\x000A\u0408\x0001\u0409\x000B\x0000\x0001\u02b6\x0070\x0000" + + "\x0001\u0314\x0004\u0408\x0002\x0000\x0001\u0408\x000D\x0000\x0001\u0408\x0006\x0000\x000A\u040a" + + "\x0001\u0409\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u0408\x0002\x0000\x0001\u0408" + + "\x000D\x0000\x0001\u0408\x0006\x0000\x000A\u040b\x0001\u0409\x000B\x0000\x0001\u02b6\x0070\x0000" + + "\x0001\u0314\x0004\u0408\x0002\x0000\x0001\u0408\x000D\x0000\x0001\u0408\x0006\x0000\x0001\u040a" + + "\x0001\u040c\x0001\u040b\x0002\u040a\x0002\u040b\x0001\u040a\x0001\u040b\x0001\u040a\x0001\u0409" + + "\x000B\x0000\x0001\u02b6\x0071\x0000\x0004\u040d\x0002\x0000\x0001\u040d\x000D\x0000\x0001\u040d" + + "\x0006\x0000\x000A\u040d\x0001\u036d\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u040d" + + "\x0002\x0000\x0001\u040d\x000D\x0000\x0001\u040d\x0006\x0000\x000A\u040d\x0001\u036d\x000B\x0000" + + "\x0001\u02b6\x0096\x0000\x0001\u0313\x000B\x0000\x0001\u02b6\x008C\x0000\x0001\u040e\x0002\u040f" + + "\x0001\u040e\x0005\u040f\x0001\u0410\x007D\x0000\x0001\u03c7\x00A2\x0000\x0001\u03c7\x001B\x0000" + + "\x0002\u03c8\x0001\x0000\x0002\u03c8\x0002\x0000\x0001\u03c8\x0001\x0000\x0001\u03c8\x007D\x0000" + + "\x001C\u0204\x000A\u0411\x0001\x0000\x0002\u0204\x0001\u025a\x0003\u0204\x0001\u0206\x0001\u015b" + + "\x0001\u015c\x0001\u015d\x0002\x0000\x0002\u0204\x0004\x0000\x0001\u0204\x008F\x0000\x0001\u031b" + + "\x007D\x0000\x0004\u0412\x0002\x0000\x0001\u0412\x000D\x0000\x0001\u0412\x0006\x0000\x000A\u0412" + + "\x0001\u03cd\x007D\x0000\x0004\u0413\x0002\x0000\x0001\u0413\x000D\x0000\x0001\u0413\x0006\x0000" + + "\x0001\u0414\x0002\u0415\x0001\u0414\x0005\u0415\x0001\u0416\x0001\u0417\x007D\x0000\x0004\u0418" + + "\x0002\x0000\x0001\u0418\x000D\x0000\x0001\u0418\x0006\x0000\x000A\u0418\x0001\u0419\x000B\x0000" + + "\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0418\x0002\x0000\x0001\u0418\x000D\x0000\x0001\u0418" + + "\x0006\x0000\x000A\u041a\x0001\u0419\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0418" + + "\x0002\x0000\x0001\u0418\x000D\x0000\x0001\u0418\x0006\x0000\x000A\u041b\x0001\u0419\x000B\x0000" + + "\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0418\x0002\x0000\x0001\u0418\x000D\x0000\x0001\u0418" + + "\x0006\x0000\x0001\u041a\x0001\u041c\x0001\u041b\x0002\u041a\x0002\u041b\x0001\u041a\x0001\u041b" + + "\x0001\u041a\x0001\u0419\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u041d\x0002\x0000\x0001\u041d" + + "\x000D\x0000\x0001\u041d\x0006\x0000\x000A\u041d\x0001\u037b\x000B\x0000\x0001\u0116\x0070\x0000" + + "\x0001\u0157\x0004\u041d\x0002\x0000\x0001\u041d\x000D\x0000\x0001\u041d\x0006\x0000\x000A\u041d" + + "\x0001\u037b\x000B\x0000\x0001\u0116\x0070\x0000\x0001\x00DC\x0003\x008E\x0001\u041e\x0016\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0002\x008E\x0001\u015e\x0017\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0006\x008E\x0001\u0169\x0013\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u0397\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0003\x008E\x0001\u041f\x0016\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x001A\x008E\x0001\x00DD\x0006\x008E\x0001\u0420\x0003\x008E\x007D\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x0006\x008E\x0001\u0421\x0003\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD" + + "\x0007\x008E\x0001\u0422\x0002\x008E\x007D\x0000\x0001\x00DC\x0001\u0423\x0019\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0004\x008E\x0001\u0424\x0005\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0004\x008E\x0001\u0425\x0005\x008E\x007D\x0000" + + "\x0001\x00DC\x0016\x008E\x0001\u0426\x0003\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0018\x008E\x0001\u0427\x0001\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0009\x008E" + + "\x0001\u0198\x0010\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD" + + "\x0002\x008E\x0001\u0428\x0007\x008E\x007D\x0000\x0001\x00DC\x000A\x008E\x0001\u0429\x000F\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x000F\x008E\x0001\u0166\x000A\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0004\x008E\x0001\u042a\x0005\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0006\x008E\x0001\u019b\x0003\x008E\x007D\x0000" + + "\x0001\x00DC\x0018\x008E\x0001\u042b\x0001\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0018\x008E\x0001\u042c\x0001\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0001\u042d\x0009\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0008\x00AA\x0001\u02e5\x0001\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x000D\x00AA\x0001\x00BD\x000C\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0001\x00AA\x0001\u042e\x0008\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0003\x00AA\x0001\u0148\x0006\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0018\x00AA\x0001\u042f\x0001\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0001\x00AA\x0001\u0430" + + "\x0008\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0006\x00AA\x0001\u0431\x0013\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0005\x00AA\x0001\u0432\x0004\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0012\x00AA" + + "\x0001\x00F8\x0007\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0005\x00AA\x0001\u0433\x0004\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0001\x00AA\x0001\x00BD\x0008\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x000B\x00AA\x0001\u0434\x000E\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x008E\x0000\x0001\u035b\x007D\x0000\x0004\u0435\x0002\x0000\x0001\u0435\x000D\x0000" + + "\x0001\u0435\x0006\x0000\x000A\u0435\x0001\u03f8\x007D\x0000\x0004\u0436\x0002\x0000\x0001\u0436" + + "\x000D\x0000\x0001\u0436\x0006\x0000\x000A\u0436\x0001\u0437\x007D\x0000\x0004\u0438\x0002\x0000" + + "\x0001\u0438\x000D\x0000\x0001\u0438\x0006\x0000\x000A\u0438\x0001\u0439\x000B\x0000\x0001\u0307" + + "\x0070\x0000\x0001\u0362\x0004\u0438\x0002\x0000\x0001\u0438\x000D\x0000\x0001\u0438\x0006\x0000" + + "\x000A\u043a\x0001\u0439\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u0438\x0002\x0000" + + "\x0001\u0438\x000D\x0000\x0001\u0438\x0006\x0000\x000A\u043b\x0001\u0439\x000B\x0000\x0001\u0307" + + "\x0070\x0000\x0001\u0362\x0004\u0438\x0002\x0000\x0001\u0438\x000D\x0000\x0001\u0438\x0006\x0000" + + "\x0001\u043a\x0001\u043c\x0001\u043b\x0002\u043a\x0002\u043b\x0001\u043a\x0001\u043b\x0001\u043a" + + "\x0001\u0439\x000B\x0000\x0001\u0307\x0071\x0000\x0004\u043d\x0002\x0000\x0001\u043d\x000D\x0000" + + "\x0001\u043d\x0006\x0000\x000A\u043d\x0001\u03b1\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362" + + "\x0004\u043d\x0002\x0000\x0001\u043d\x000D\x0000\x0001\u043d\x0006\x0000\x000A\u043d\x0001\u03b1" + + "\x000B\x0000\x0001\u0307\x0096\x0000\x0001\u0361\x000B\x0000\x0001\u0307\x008C\x0000\x0001\u043e" + + "\x0002\u043f\x0001\u043e\x0005\u043f\x0001\u0440\x007D\x0000\x0001\u0400\x00A2\x0000\x0001\u0400" + + "\x001B\x0000\x0002\u0401\x0001\x0000\x0002\u0401\x0002\x0000\x0001\u0401\x0001\x0000\x0001\u0401" + + "\x007E\x0000\x0001\u0441\x0001\x0000\x0001\u0441\x0005\x0000\x0001\u0441\x00C8\x0000\x0001\u01fc" + + "\x0074\x0000\x0004\u0442\x0002\x0000\x0001\u0442\x000D\x0000\x0001\u0442\x0006\x0000\x000A\u0442" + + "\x0001\u03bf\x007D\x0000\x0004\u0443\x0002\x0000\x0001\u0443\x000D\x0000\x0001\u0443\x0006\x0000" + + "\x000A\u0443\x0001\u0444\x007D\x0000\x0004\u0445\x0002\x0000\x0001\u0445\x000D\x0000\x0001\u0445" + + "\x0006\x0000\x0001\u0446\x0002\u0447\x0001\u0446\x0005\u0447\x0001\u0448\x000C\x0000\x0001\u02b6" + + "\x0071\x0000\x0004\u0449\x0002\x0000\x0001\u0449\x000D\x0000\x0001\u0449\x0006\x0000\x000A\u0449" + + "\x0001\u0409\x000B\x0000\x0001\u02b6\x0071\x0000\x0004\u0445\x0002\x0000\x0001\u0445\x000D\x0000" + + "\x0001\u0445\x0006\x0000\x0001\u0446\x0002\u0447\x0001\u0446\x0005\u0447\x0001\u0448\x007D\x0000" + + "\x0001\u0314\x0004\u0449\x0002\x0000\x0001\u0449\x000D\x0000\x0001\u0449\x0006\x0000\x000A\u044a" + + "\x0001\u0409\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u0449\x0002\x0000\x0001\u0449" + + "\x000D\x0000\x0001\u0449\x0006\x0000\x000A\u0449\x0001\u0409\x000B\x0000\x0001\u02b6\x0070\x0000" + + "\x0001\u0314\x0004\u0449\x0002\x0000\x0001\u0449\x000D\x0000\x0001\u0449\x0006\x0000\x0002\u044a" + + "\x0001\u0449\x0002\u044a\x0002\u0449\x0001\u044a\x0001\u0449\x0001\u044a\x0001\u0409\x000B\x0000" + + "\x0001\u02b6\x0096\x0000\x0001\u036d\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u044b\x001B\x0000" + + "\x000A\u040f\x007D\x0000\x0001\u044b\x001B\x0000\x000A\u044c\x007D\x0000\x0001\u044b\x001B\x0000" + + "\x0001\u040f\x0001\u044d\x0001\u044c\x0002\u040f\x0002\u044c\x0001\u040f\x0001\u044c\x0001\u040f" + + "\x007D\x0000\x0026\u0204\x0001\x0000\x0002\u0204\x0001\u025a\x0003\u0204\x0001\u0206\x0001\u015b" + + "\x0001\u015c\x0001\u015d\x0002\x0000\x0002\u0204\x0004\x0000\x0001\u0204\x006A\x0000\x0004\u044e" + + "\x0002\x0000\x0001\u044e\x000D\x0000\x0001\u044e\x0006\x0000\x000A\u044e\x0001\u03cd\x007D\x0000" + + "\x0004\u044f\x0002\x0000\x0001\u044f\x000D\x0000\x0001\u044f\x0006\x0000\x000A\u044f\x0001\u0450" + + "\x007C\x0000\x0001\u0157\x0004\u044f\x0002\x0000\x0001\u044f\x000D\x0000\x0001\u044f\x0006\x0000" + + "\x000A\u0451\x0001\u0450\x007C\x0000\x0001\u0157\x0004\u044f\x0002\x0000\x0001\u044f\x000D\x0000" + + "\x0001\u044f\x0006\x0000\x000A\u0452\x0001\u0450\x007C\x0000\x0001\u0157\x0004\u044f\x0002\x0000" + + "\x0001\u044f\x000D\x0000\x0001\u044f\x0006\x0000\x0001\u0451\x0001\u0453\x0001\u0452\x0002\u0451" + + "\x0002\u0452\x0001\u0451\x0001\u0452\x0001\u0451\x0001\u0450\x007D\x0000\x0004\u0454\x0002\x0000" + + "\x0001\u0454\x000D\x0000\x0001\u0454\x0006\x0000\x000A\u0454\x000C\x0000\x0001\u0116\x0071\x0000" + + "\x0004\u0455\x0002\x0000\x0001\u0455\x000D\x0000\x0001\u0455\x0006\x0000\x000A\u0455\x0001\u0419" + + "\x000B\x0000\x0001\u0116\x0071\x0000\x0004\u0454\x0002\x0000\x0001\u0454\x000D\x0000\x0001\u0454" + + "\x0006\x0000\x000A\u0454\x007D\x0000\x0001\u0157\x0004\u0455\x0002\x0000\x0001\u0455\x000D\x0000" + + "\x0001\u0455\x0006\x0000\x000A\u0456\x0001\u0419\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157" + + "\x0004\u0455\x0002\x0000\x0001\u0455\x000D\x0000\x0001\u0455\x0006\x0000\x000A\u0455\x0001\u0419" + + "\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0455\x0002\x0000\x0001\u0455\x000D\x0000" + + "\x0001\u0455\x0006\x0000\x0002\u0456\x0001\u0455\x0002\u0456\x0002\u0455\x0001\u0456\x0001\u0455" + + "\x0001\u0456\x0001\u0419\x000B\x0000\x0001\u0116\x0096\x0000\x0001\u037b\x000B\x0000\x0001\u0116" + + "\x0070\x0000\x0001\x00DC\x0001\u0457\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x001A\x008E\x0001\x00DD\x0009\x008E\x0001\u038d\x007D\x0000\x0001\x00DC\x0001\u0458\x0019\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0007\x008E\x0001\u0459\x0012\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u045a\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0006\x008E\x0001\u045b\x0003\x008E\x007D\x0000\x0001\x00DC" + + "\x0015\x008E\x0001\u045c\x0004\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u045d" + + "\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0006\x008E" + + "\x0001\u045e\x0003\x008E\x007D\x0000\x0001\x00DC\x0001\u045f\x0019\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0006\x008E\x0001\u0197\x0003\x008E\x007D\x0000" + + "\x0001\x00DC\x000A\x008E\x0001\u0460\x000F\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x0001\u0461\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0008\x008E\x0001\u0462" + + "\x0011\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0019\x008E\x0001\u0463\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00F3\x0014\x00AA\x0001\u0464\x0005\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0002\x00AA\x0001\u0465\x0017\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\u0466\x0016\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\u0467" + + "\x0016\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0001\x00AA\x0001\u0468\x0008\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0003\x00AA\x0001\u0469\x0016\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0001\u046a\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x0016\x00AA\x0001\u046b\x0003\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0069\x0000\x0004\u046c\x0002\x0000\x0001\u046c\x000D\x0000\x0001\u046c\x0006\x0000\x000A\u046c" + + "\x0001\u03f8\x007D\x0000\x0004\u046d\x0002\x0000\x0001\u046d\x000D\x0000\x0001\u046d\x0006\x0000" + + "\x000A\u046d\x0001\u046e\x007D\x0000\x0004\u046f\x0002\x0000\x0001\u046f\x000D\x0000\x0001\u046f" + + "\x0006\x0000\x0001\u0470\x0002\u0471\x0001\u0470\x0005\u0471\x0001\u0472\x000C\x0000\x0001\u0307" + + "\x0071\x0000\x0004\u0473\x0002\x0000\x0001\u0473\x000D\x0000\x0001\u0473\x0006\x0000\x000A\u0473" + + "\x0001\u0439\x000B\x0000\x0001\u0307\x0071\x0000\x0004\u046f\x0002\x0000\x0001\u046f\x000D\x0000" + + "\x0001\u046f\x0006\x0000\x0001\u0470\x0002\u0471\x0001\u0470\x0005\u0471\x0001\u0472\x007D\x0000" + + "\x0001\u0362\x0004\u0473\x0002\x0000\x0001\u0473\x000D\x0000\x0001\u0473\x0006\x0000\x000A\u0474" + + "\x0001\u0439\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u0473\x0002\x0000\x0001\u0473" + + "\x000D\x0000\x0001\u0473\x0006\x0000\x000A\u0473\x0001\u0439\x000B\x0000\x0001\u0307\x0070\x0000" + + "\x0001\u0362\x0004\u0473\x0002\x0000\x0001\u0473\x000D\x0000\x0001\u0473\x0006\x0000\x0002\u0474" + + "\x0001\u0473\x0002\u0474\x0002\u0473\x0001\u0474\x0001\u0473\x0001\u0474\x0001\u0439\x000B\x0000" + + "\x0001\u0307\x0096\x0000\x0001\u03b1\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0475\x001B\x0000" + + "\x000A\u043f\x007D\x0000\x0001\u0475\x001B\x0000\x000A\u0476\x007D\x0000\x0001\u0475\x001B\x0000" + + "\x0001\u043f\x0001\u0477\x0001\u0476\x0002\u043f\x0002\u0476\x0001\u043f\x0001\u0476\x0001\u043f" + + "\x00AD\x0000\x0001\u015d\x0098\x0000\x0001\u03bf\x007D\x0000\x0004\u0478\x0002\x0000\x0001\u0478" + + "\x000D\x0000\x0001\u0478\x0006\x0000\x000A\u0478\x0001\u0444\x007D\x0000\x0004\u0479\x0002\x0000" + + "\x0001\u0479\x000D\x0000\x0001\u0479\x0006\x0000\x000A\u0479\x0001\u047a\x007D\x0000\x0004\u047b" + + "\x0002\x0000\x0001\u047b\x000D\x0000\x0001\u047b\x0006\x0000\x000A\u047b\x0001\u047c\x000B\x0000" + + "\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u047b\x0002\x0000\x0001\u047b\x000D\x0000\x0001\u047b" + + "\x0006\x0000\x000A\u047d\x0001\u047c\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u047b" + + "\x0002\x0000\x0001\u047b\x000D\x0000\x0001\u047b\x0006\x0000\x000A\u047e\x0001\u047c\x000B\x0000" + + "\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u047b\x0002\x0000\x0001\u047b\x000D\x0000\x0001\u047b" + + "\x0006\x0000\x0001\u047d\x0001\u047f\x0001\u047e\x0002\u047d\x0002\u047e\x0001\u047d\x0001\u047e" + + "\x0001\u047d\x0001\u047c\x000B\x0000\x0001\u02b6\x0071\x0000\x0004\u0480\x0002\x0000\x0001\u0480" + + "\x000D\x0000\x0001\u0480\x0006\x0000\x000A\u0480\x0001\u0409\x000B\x0000\x0001\u02b6\x0070\x0000" + + "\x0001\u0314\x0004\u0480\x0002\x0000\x0001\u0480\x000D\x0000\x0001\u0480\x0006\x0000\x000A\u0480" + + "\x0001\u0409\x000B\x0000\x0001\u02b6\x008C\x0000\x0001\u0481\x0002\u0482\x0001\u0481\x0005\u0482" + + "\x0001\u0483\x007D\x0000\x0001\u044b\x00A2\x0000\x0001\u044b\x001B\x0000\x0002\u044c\x0001\x0000" + + "\x0002\u044c\x0002\x0000\x0001\u044c\x0001\x0000\x0001\u044c\x00A3\x0000\x0001\u03cd\x007D\x0000" + + "\x0004\u0484\x0002\x0000\x0001\u0484\x000D\x0000\x0001\u0484\x0006\x0000\x000A\u0484\x0001\u0450" + + "\x007D\x0000\x0004\u0454\x0002\x0000\x0001\u0454\x000D\x0000\x0001\u0454\x0006\x0000\x000A\u0454" + + "\x0001\u0322\x007C\x0000\x0001\u0157\x0004\u0484\x0002\x0000\x0001\u0484\x000D\x0000\x0001\u0484" + + "\x0006\x0000\x000A\u0485\x0001\u0450\x007C\x0000\x0001\u0157\x0004\u0484\x0002\x0000\x0001\u0484" + + "\x000D\x0000\x0001\u0484\x0006\x0000\x000A\u0484\x0001\u0450\x007C\x0000\x0001\u0157\x0004\u0484" + + "\x0002\x0000\x0001\u0484\x000D\x0000\x0001\u0484\x0006\x0000\x0002\u0485\x0001\u0484\x0002\u0485" + + "\x0002\u0484\x0001\u0485\x0001\u0484\x0001\u0485\x0001\u0450\x007D\x0000\x0004\u0486\x0002\x0000" + + "\x0001\u0486\x000D\x0000\x0001\u0486\x0006\x0000\x000A\u0486\x000C\x0000\x0001\u0116\x0071\x0000" + + "\x0004\u0487\x0002\x0000\x0001\u0487\x000D\x0000\x0001\u0487\x0006\x0000\x000A\u0487\x0001\u0419" + + "\x000B\x0000\x0001\u0116\x0070\x0000\x0001\u0157\x0004\u0487\x0002\x0000\x0001\u0487\x000D\x0000" + + "\x0001\u0487\x0006\x0000\x000A\u0487\x0001\u0419\x000B\x0000\x0001\u0116\x0070\x0000\x0001\x00DC" + + "\x001A\x008E\x0001\x00DD\x0001\u0488\x0009\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD" + + "\x0008\x008E\x0001\u0383\x0001\x008E\x007D\x0000\x0001\x00DC\x000D\x008E\x0001\u0123\x000C\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\x008E\x0001\u0489" + + "\x0008\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0003\x008E\x0001\u019b\x0006\x008E" + + "\x007D\x0000\x0001\x00DC\x0018\x008E\x0001\u048a\x0001\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\x008E\x0001\u048b\x0008\x008E\x007D\x0000\x0001\x00DC" + + "\x0006\x008E\x0001\u048c\x0013\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x0005\x008E\x0001\u048d\x0004\x008E\x007D\x0000\x0001\x00DC\x0012\x008E\x0001\u015e" + + "\x0007\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0005\x008E" + + "\x0001\u048e\x0004\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\x008E\x0001\u0123" + + "\x0008\x008E\x007D\x0000\x0001\x00DC\x000B\x008E\x0001\u048f\x000E\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0009\x00AA\x0001\u0490\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0007\x00AA\x0001\u0491\x0002\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0009\x00AA\x0001\x00BD\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0068\x0000\x0001\x00F3\x0003\x00AA\x0001\u0492\x0016\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0004\x00AA\x0001\u0493" + + "\x0005\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x000E\x00AA\x0001\u0494\x000B\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0016\x00AA\x0001\u0495" + + "\x0003\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0007\x00AA\x0001\u0496\x0002\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x008E\x0000\x0001\u03f8" + + "\x007D\x0000\x0004\u0497\x0002\x0000\x0001\u0497\x000D\x0000\x0001\u0497\x0006\x0000\x000A\u0497" + + "\x0001\u046e\x007D\x0000\x0004\u0498\x0002\x0000\x0001\u0498\x000D\x0000\x0001\u0498\x0006\x0000" + + "\x000A\u0498\x0001\u0499\x007D\x0000\x0004\u049a\x0002\x0000\x0001\u049a\x000D\x0000\x0001\u049a" + + "\x0006\x0000\x000A\u049a\x0001\u049b\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u049a" + + "\x0002\x0000\x0001\u049a\x000D\x0000\x0001\u049a\x0006\x0000\x000A\u049c\x0001\u049b\x000B\x0000" + + "\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u049a\x0002\x0000\x0001\u049a\x000D\x0000\x0001\u049a" + + "\x0006\x0000\x000A\u049d\x0001\u049b\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u049a" + + "\x0002\x0000\x0001\u049a\x000D\x0000\x0001\u049a\x0006\x0000\x0001\u049c\x0001\u049e\x0001\u049d" + + "\x0002\u049c\x0002\u049d\x0001\u049c\x0001\u049d\x0001\u049c\x0001\u049b\x000B\x0000\x0001\u0307" + + "\x0071\x0000\x0004\u049f\x0002\x0000\x0001\u049f\x000D\x0000\x0001\u049f\x0006\x0000\x000A\u049f" + + "\x0001\u0439\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u049f\x0002\x0000\x0001\u049f" + + "\x000D\x0000\x0001\u049f\x0006\x0000\x000A\u049f\x0001\u0439\x000B\x0000\x0001\u0307\x008C\x0000" + + "\x0001\u04a0\x0002\u04a1\x0001\u04a0\x0005\u04a1\x0001\u04a2\x007D\x0000\x0001\u0475\x00A2\x0000" + + "\x0001\u0475\x001B\x0000\x0002\u0476\x0001\x0000\x0002\u0476\x0002\x0000\x0001\u0476\x0001\x0000" + + "\x0001\u0476\x007E\x0000\x0004\u04a3\x0002\x0000\x0001\u04a3\x000D\x0000\x0001\u04a3\x0006\x0000" + + "\x000A\u04a3\x0001\u0444\x007D\x0000\x0004\u04a4\x0002\x0000\x0001\u04a4\x000D\x0000\x0001\u04a4" + + "\x0006\x0000\x000A\u04a4\x0001\u04a5\x007D\x0000\x0004\u04a6\x0002\x0000\x0001\u04a6\x000D\x0000" + + "\x0001\u04a6\x0006\x0000\x0001\u04a7\x0002\u04a8\x0001\u04a7\x0005\u04a8\x0001\u04a9\x000C\x0000" + + "\x0001\u02b6\x0071\x0000\x0004\u04aa\x0002\x0000\x0001\u04aa\x000D\x0000\x0001\u04aa\x0006\x0000" + + "\x000A\u04aa\x0001\u047c\x000B\x0000\x0001\u02b6\x0071\x0000\x0004\u04a6\x0002\x0000\x0001\u04a6" + + "\x000D\x0000\x0001\u04a6\x0006\x0000\x0001\u04a7\x0002\u04a8\x0001\u04a7\x0005\u04a8\x0001\u04a9" + + "\x007D\x0000\x0001\u0314\x0004\u04aa\x0002\x0000\x0001\u04aa\x000D\x0000\x0001\u04aa\x0006\x0000" + + "\x000A\u04ab\x0001\u047c\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u04aa\x0002\x0000" + + "\x0001\u04aa\x000D\x0000\x0001\u04aa\x0006\x0000\x000A\u04aa\x0001\u047c\x000B\x0000\x0001\u02b6" + + "\x0070\x0000\x0001\u0314\x0004\u04aa\x0002\x0000\x0001\u04aa\x000D\x0000\x0001\u04aa\x0006\x0000" + + "\x0002\u04ab\x0001\u04aa\x0002\u04ab\x0002\u04aa\x0001\u04ab\x0001\u04aa\x0001\u04ab\x0001\u047c" + + "\x000B\x0000\x0001\u02b6\x0096\x0000\x0001\u0409\x000B\x0000\x0001\u02b6\x008C\x0000\x000A\u0482" + + "\x000C\x0000\x0001\u02b6\x008C\x0000\x000A\u04ac\x000C\x0000\x0001\u02b6\x008C\x0000\x0001\u0482" + + "\x0001\u04ad\x0001\u04ac\x0002\u0482\x0002\u04ac\x0001\u0482\x0001\u04ac\x0001\u0482\x000C\x0000" + + "\x0001\u02b6\x0071\x0000\x0004\u04ae\x0002\x0000\x0001\u04ae\x000D\x0000\x0001\u04ae\x0006\x0000" + + "\x000A\u04ae\x0001\u0450\x007C\x0000\x0001\u0157\x0004\u04ae\x0002\x0000\x0001\u04ae\x000D\x0000" + + "\x0001\u04ae\x0006\x0000\x000A\u04ae\x0001\u0450\x007D\x0000\x0004\u04af\x0002\x0000\x0001\u04af" + + "\x000D\x0000\x0001\u04af\x0006\x0000\x000A\u04af\x000C\x0000\x0001\u0116\x0096\x0000\x0001\u0419" + + "\x000B\x0000\x0001\u0116\x0070\x0000\x0001\x00DC\x0014\x008E\x0001\u04b0\x0005\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0002\x008E\x0001\u04b1\x0017\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u04b2\x0016\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0003\x008E\x0001\u04b3\x0016\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x001A\x008E\x0001\x00DD\x0001\x008E\x0001\u04b4\x0008\x008E\x007D\x0000\x0001\x00DC\x0003\x008E" + + "\x0001\u04b5\x0016\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u04b6\x0019\x008E" + + "\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0016\x008E\x0001\u04b7\x0003\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00F3\x0007\x00AA\x0001\u04b8\x0012\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\u04b9\x0019\x00AA\x0001\x0057\x000A\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057\x0001\u02e5\x0009\x00AA" + + "\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054" + + "\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0014\x00AA\x0001\u04ba\x0005\x00AA\x0001\x0057" + + "\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000" + + "\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0001\x00AA\x0001\u04bb\x0018\x00AA" + + "\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054" + + "\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x001A\x00AA\x0001\x0057" + + "\x0002\x00AA\x0001\x00FF\x0007\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0006\x00AA" + + "\x0001\x00F8\x0013\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0069\x0000\x0004\u04bc" + + "\x0002\x0000\x0001\u04bc\x000D\x0000\x0001\u04bc\x0006\x0000\x000A\u04bc\x0001\u046e\x007D\x0000" + + "\x0004\u04bd\x0002\x0000\x0001\u04bd\x000D\x0000\x0001\u04bd\x0006\x0000\x000A\u04bd\x0001\u04be" + + "\x007D\x0000\x0004\u04bf\x0002\x0000\x0001\u04bf\x000D\x0000\x0001\u04bf\x0006\x0000\x0001\u04c0" + + "\x0002\u04c1\x0001\u04c0\x0005\u04c1\x0001\u04c2\x000C\x0000\x0001\u0307\x0071\x0000\x0004\u04c3" + + "\x0002\x0000\x0001\u04c3\x000D\x0000\x0001\u04c3\x0006\x0000\x000A\u04c3\x0001\u049b\x000B\x0000" + + "\x0001\u0307\x0071\x0000\x0004\u04bf\x0002\x0000\x0001\u04bf\x000D\x0000\x0001\u04bf\x0006\x0000" + + "\x0001\u04c0\x0002\u04c1\x0001\u04c0\x0005\u04c1\x0001\u04c2\x007D\x0000\x0001\u0362\x0004\u04c3" + + "\x0002\x0000\x0001\u04c3\x000D\x0000\x0001\u04c3\x0006\x0000\x000A\u04c4\x0001\u049b\x000B\x0000" + + "\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u04c3\x0002\x0000\x0001\u04c3\x000D\x0000\x0001\u04c3" + + "\x0006\x0000\x000A\u04c3\x0001\u049b\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u04c3" + + "\x0002\x0000\x0001\u04c3\x000D\x0000\x0001\u04c3\x0006\x0000\x0002\u04c4\x0001\u04c3\x0002\u04c4" + + "\x0002\u04c3\x0001\u04c4\x0001\u04c3\x0001\u04c4\x0001\u049b\x000B\x0000\x0001\u0307\x0096\x0000" + + "\x0001\u0439\x000B\x0000\x0001\u0307\x008C\x0000\x000A\u04a1\x000C\x0000\x0001\u0307\x008C\x0000" + + "\x000A\u04c5\x000C\x0000\x0001\u0307\x008C\x0000\x0001\u04a1\x0001\u04c6\x0001\u04c5\x0002\u04a1" + + "\x0002\u04c5\x0001\u04a1\x0001\u04c5\x0001\u04a1\x000C\x0000\x0001\u0307\x0096\x0000\x0001\u0444" + + "\x007D\x0000\x0004\u04c7\x0002\x0000\x0001\u04c7\x000D\x0000\x0001\u04c7\x0006\x0000\x000A\u04c7" + + "\x0001\u04a5\x007D\x0000\x0004\u04c8\x0002\x0000\x0001\u04c8\x000D\x0000\x0001\u04c8\x0006\x0000" + + "\x000A\u04c8\x0001\u04c9\x007D\x0000\x0004\u04ca\x0002\x0000\x0001\u04ca\x000D\x0000\x0001\u04ca" + + "\x0006\x0000\x000A\u04ca\x0001\u04cb\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u04ca" + + "\x0002\x0000\x0001\u04ca\x000D\x0000\x0001\u04ca\x0006\x0000\x000A\u04cc\x0001\u04cb\x000B\x0000" + + "\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u04ca\x0002\x0000\x0001\u04ca\x000D\x0000\x0001\u04ca" + + "\x0006\x0000\x000A\u04cd\x0001\u04cb\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u04ca" + + "\x0002\x0000\x0001\u04ca\x000D\x0000\x0001\u04ca\x0006\x0000\x0001\u04cc\x0001\u04ce\x0001\u04cd" + + "\x0002\u04cc\x0002\u04cd\x0001\u04cc\x0001\u04cd\x0001\u04cc\x0001\u04cb\x000B\x0000\x0001\u02b6" + + "\x0071\x0000\x0004\u04cf\x0002\x0000\x0001\u04cf\x000D\x0000\x0001\u04cf\x0006\x0000\x000A\u04cf" + + "\x0001\u047c\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u04cf\x0002\x0000\x0001\u04cf" + + "\x000D\x0000\x0001\u04cf\x0006\x0000\x000A\u04cf\x0001\u047c\x000B\x0000\x0001\u02b6\x00A2\x0000" + + "\x0001\u02b6\x008C\x0000\x0002\u04ac\x0001\x0000\x0002\u04ac\x0002\x0000\x0001\u04ac\x0001\x0000" + + "\x0001\u04ac\x000C\x0000\x0001\u02b6\x0096\x0000\x0001\u0450\x007D\x0000\x0004\u0322\x0002\x0000" + + "\x0001\u0322\x000D\x0000\x0001\u0322\x0006\x0000\x000A\u0322\x000C\x0000\x0001\u0116\x0070\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0009\x008E\x0001\u04d0\x007D\x0000\x0001\x00DC\x001A\x008E" + + "\x0001\x00DD\x0007\x008E\x0001\u04d1\x0002\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD" + + "\x0009\x008E\x0001\u0123\x007D\x0000\x0001\x00DC\x0003\x008E\x0001\u04d2\x0016\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0004\x008E\x0001\u04d3\x0005\x008E" + + "\x007D\x0000\x0001\x00DC\x000E\x008E\x0001\u04d4\x000B\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x0016\x008E\x0001\u04d5\x0003\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC" + + "\x001A\x008E\x0001\x00DD\x0007\x008E\x0001\u04d6\x0002\x008E\x007D\x0000\x0001\x00F3\x001A\x00AA" + + "\x0001\x0057\x0009\x00AA\x0001\u04d7\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3\x0004\x00AA" + + "\x0001\x00F8\x0015\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054" + + "\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000\x0001\x00F3" + + "\x0014\x00AA\x0001\x00BD\x0005\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0068\x0000" + + "\x0001\x00F3\x001A\x00AA\x0001\x0057\x0006\x00AA\x0001\x00BD\x0003\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x008E\x0000\x0001\u046e\x007D\x0000\x0004\u04d8\x0002\x0000\x0001\u04d8\x000D\x0000\x0001\u04d8" + + "\x0006\x0000\x000A\u04d8\x0001\u04be\x007D\x0000\x0004\u04d9\x0002\x0000\x0001\u04d9\x000D\x0000" + + "\x0001\u04d9\x0006\x0000\x000A\u04d9\x0001\u04da\x007D\x0000\x0004\u04db\x0002\x0000\x0001\u04db" + + "\x000D\x0000\x0001\u04db\x0006\x0000\x000A\u04db\x0001\u04dc\x000B\x0000\x0001\u0307\x0070\x0000" + + "\x0001\u0362\x0004\u04db\x0002\x0000\x0001\u04db\x000D\x0000\x0001\u04db\x0006\x0000\x000A\u04dd" + + "\x0001\u04dc\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u04db\x0002\x0000\x0001\u04db" + + "\x000D\x0000\x0001\u04db\x0006\x0000\x000A\u04de\x0001\u04dc\x000B\x0000\x0001\u0307\x0070\x0000" + + "\x0001\u0362\x0004\u04db\x0002\x0000\x0001\u04db\x000D\x0000\x0001\u04db\x0006\x0000\x0001\u04dd" + + "\x0001\u04df\x0001\u04de\x0002\u04dd\x0002\u04de\x0001\u04dd\x0001\u04de\x0001\u04dd\x0001\u04dc" + + "\x000B\x0000\x0001\u0307\x0071\x0000\x0004\u04e0\x0002\x0000\x0001\u04e0\x000D\x0000\x0001\u04e0" + + "\x0006\x0000\x000A\u04e0\x0001\u049b\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u04e0" + + "\x0002\x0000\x0001\u04e0\x000D\x0000\x0001\u04e0\x0006\x0000\x000A\u04e0\x0001\u049b\x000B\x0000" + + "\x0001\u0307\x00A2\x0000\x0001\u0307\x008C\x0000\x0002\u04c5\x0001\x0000\x0002\u04c5\x0002\x0000" + + "\x0001\u04c5\x0001\x0000\x0001\u04c5\x000C\x0000\x0001\u0307\x0071\x0000\x0004\u04e1\x0002\x0000" + + "\x0001\u04e1\x000D\x0000\x0001\u04e1\x0006\x0000\x000A\u04e1\x0001\u04a5\x007D\x0000\x0004\u04e2" + + "\x0002\x0000\x0001\u04e2\x000D\x0000\x0001\u04e2\x0006\x0000\x000A\u04e2\x0001\u04e3\x007D\x0000" + + "\x0004\u04e4\x0002\x0000\x0001\u04e4\x000D\x0000\x0001\u04e4\x0006\x0000\x0001\u04e5\x0002\u04e6" + + "\x0001\u04e5\x0005\u04e6\x0001\u04e7\x000C\x0000\x0001\u02b6\x0071\x0000\x0004\u04e8\x0002\x0000" + + "\x0001\u04e8\x000D\x0000\x0001\u04e8\x0006\x0000\x000A\u04e8\x0001\u04cb\x000B\x0000\x0001\u02b6" + + "\x0071\x0000\x0004\u04e4\x0002\x0000\x0001\u04e4\x000D\x0000\x0001\u04e4\x0006\x0000\x0001\u04e5" + + "\x0002\u04e6\x0001\u04e5\x0005\u04e6\x0001\u04e7\x007D\x0000\x0001\u0314\x0004\u04e8\x0002\x0000" + + "\x0001\u04e8\x000D\x0000\x0001\u04e8\x0006\x0000\x000A\u04e9\x0001\u04cb\x000B\x0000\x0001\u02b6" + + "\x0070\x0000\x0001\u0314\x0004\u04e8\x0002\x0000\x0001\u04e8\x000D\x0000\x0001\u04e8\x0006\x0000" + + "\x000A\u04e8\x0001\u04cb\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u04e8\x0002\x0000" + + "\x0001\u04e8\x000D\x0000\x0001\u04e8\x0006\x0000\x0002\u04e9\x0001\u04e8\x0002\u04e9\x0002\u04e8" + + "\x0001\u04e9\x0001\u04e8\x0001\u04e9\x0001\u04cb\x000B\x0000\x0001\u02b6\x0096\x0000\x0001\u047c" + + "\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\x00DC\x0007\x008E\x0001\u04ea\x0012\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\u04eb\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0001\u0383\x0009\x008E\x007D\x0000\x0001\x00DC\x0014\x008E" + + "\x0001\u04ec\x0005\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x0001\x008E\x0001\u04ed" + + "\x0018\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0002\x008E" + + "\x0001\u0165\x0007\x008E\x007D\x0000\x0001\x00DC\x0006\x008E\x0001\u015e\x0013\x008E\x0001\x00DD" + + "\x000A\x008E\x007D\x0000\x0001\x00F3\x0001\u04ee\x0019\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000" + + "\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000" + + "\x0002\x0054\x0069\x0000\x0004\u04ef\x0002\x0000\x0001\u04ef\x000D\x0000\x0001\u04ef\x0006\x0000" + + "\x000A\u04ef\x0001\u04be\x007D\x0000\x0004\u04f0\x0002\x0000\x0001\u04f0\x000D\x0000\x0001\u04f0" + + "\x0006\x0000\x000A\u04f0\x0001\u04f1\x007D\x0000\x0004\u04f2\x0002\x0000\x0001\u04f2\x000D\x0000" + + "\x0001\u04f2\x0006\x0000\x0001\u04f3\x0002\u04f4\x0001\u04f3\x0005\u04f4\x0001\u04f5\x000C\x0000" + + "\x0001\u0307\x0071\x0000\x0004\u04f6\x0002\x0000\x0001\u04f6\x000D\x0000\x0001\u04f6\x0006\x0000" + + "\x000A\u04f6\x0001\u04dc\x000B\x0000\x0001\u0307\x0071\x0000\x0004\u04f2\x0002\x0000\x0001\u04f2" + + "\x000D\x0000\x0001\u04f2\x0006\x0000\x0001\u04f3\x0002\u04f4\x0001\u04f3\x0005\u04f4\x0001\u04f5" + + "\x007D\x0000\x0001\u0362\x0004\u04f6\x0002\x0000\x0001\u04f6\x000D\x0000\x0001\u04f6\x0006\x0000" + + "\x000A\u04f7\x0001\u04dc\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u04f6\x0002\x0000" + + "\x0001\u04f6\x000D\x0000\x0001\u04f6\x0006\x0000\x000A\u04f6\x0001\u04dc\x000B\x0000\x0001\u0307" + + "\x0070\x0000\x0001\u0362\x0004\u04f6\x0002\x0000\x0001\u04f6\x000D\x0000\x0001\u04f6\x0006\x0000" + + "\x0002\u04f7\x0001\u04f6\x0002\u04f7\x0002\u04f6\x0001\u04f7\x0001\u04f6\x0001\u04f7\x0001\u04dc" + + "\x000B\x0000\x0001\u0307\x0096\x0000\x0001\u049b\x000B\x0000\x0001\u0307\x0096\x0000\x0001\u04a5" + + "\x007D\x0000\x0004\u04f8\x0002\x0000\x0001\u04f8\x000D\x0000\x0001\u04f8\x0006\x0000\x000A\u04f8" + + "\x0001\u04e3\x007D\x0000\x0004\u04f9\x0002\x0000\x0001\u04f9\x000D\x0000\x0001\u04f9\x0006\x0000" + + "\x0001\u04fa\x0002\u04fb\x0001\u04fa\x0005\u04fb\x0001\u04fc\x0001\u04fd\x007D\x0000\x0004\u04fe" + + "\x0002\x0000\x0001\u04fe\x000D\x0000\x0001\u04fe\x0006\x0000\x000A\u04fe\x0001\u04ff\x000B\x0000" + + "\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u04fe\x0002\x0000\x0001\u04fe\x000D\x0000\x0001\u04fe" + + "\x0006\x0000\x000A\u0500\x0001\u04ff\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u04fe" + + "\x0002\x0000\x0001\u04fe\x000D\x0000\x0001\u04fe\x0006\x0000\x000A\u0501\x0001\u04ff\x000B\x0000" + + "\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u04fe\x0002\x0000\x0001\u04fe\x000D\x0000\x0001\u04fe" + + "\x0006\x0000\x0001\u0500\x0001\u0502\x0001\u0501\x0002\u0500\x0002\u0501\x0001\u0500\x0001\u0501" + + "\x0001\u0500\x0001\u04ff\x000B\x0000\x0001\u02b6\x0071\x0000\x0004\u0503\x0002\x0000\x0001\u0503" + + "\x000D\x0000\x0001\u0503\x0006\x0000\x000A\u0503\x0001\u04cb\x000B\x0000\x0001\u02b6\x0070\x0000" + + "\x0001\u0314\x0004\u0503\x0002\x0000\x0001\u0503\x000D\x0000\x0001\u0503\x0006\x0000\x000A\u0503" + + "\x0001\u04cb\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0009\x008E" + + "\x0001\u0504\x007D\x0000\x0001\x00DC\x0004\x008E\x0001\u015e\x0015\x008E\x0001\x00DD\x000A\x008E" + + "\x007D\x0000\x0001\x00DC\x0014\x008E\x0001\u0123\x0005\x008E\x0001\x00DD\x000A\x008E\x007D\x0000" + + "\x0001\x00DC\x001A\x008E\x0001\x00DD\x0006\x008E\x0001\u0123\x0003\x008E\x007D\x0000\x0001\x00F3" + + "\x001A\x00AA\x0001\x0057\x0005\x00AA\x0001\u0505\x0004\x00AA\x0001\x0000\x0003\x0054\x0001\x0000" + + "\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x008E\x0000" + + "\x0001\u04be\x007D\x0000\x0004\u0506\x0002\x0000\x0001\u0506\x000D\x0000\x0001\u0506\x0006\x0000" + + "\x000A\u0506\x0001\u04f1\x007D\x0000\x0004\u0507\x0002\x0000\x0001\u0507\x000D\x0000\x0001\u0507" + + "\x0006\x0000\x0001\u0508\x0002\u0509\x0001\u0508\x0005\u0509\x0001\u050a\x0001\u050b\x007D\x0000" + + "\x0004\u050c\x0002\x0000\x0001\u050c\x000D\x0000\x0001\u050c\x0006\x0000\x000A\u050c\x0001\u050d" + + "\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u050c\x0002\x0000\x0001\u050c\x000D\x0000" + + "\x0001\u050c\x0006\x0000\x000A\u050e\x0001\u050d\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362" + + "\x0004\u050c\x0002\x0000\x0001\u050c\x000D\x0000\x0001\u050c\x0006\x0000\x000A\u050f\x0001\u050d" + + "\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u050c\x0002\x0000\x0001\u050c\x000D\x0000" + + "\x0001\u050c\x0006\x0000\x0001\u050e\x0001\u0510\x0001\u050f\x0002\u050e\x0002\u050f\x0001\u050e" + + "\x0001\u050f\x0001\u050e\x0001\u050d\x000B\x0000\x0001\u0307\x0071\x0000\x0004\u0511\x0002\x0000" + + "\x0001\u0511\x000D\x0000\x0001\u0511\x0006\x0000\x000A\u0511\x0001\u04dc\x000B\x0000\x0001\u0307" + + "\x0070\x0000\x0001\u0362\x0004\u0511\x0002\x0000\x0001\u0511\x000D\x0000\x0001\u0511\x0006\x0000" + + "\x000A\u0511\x0001\u04dc\x000B\x0000\x0001\u0307\x0071\x0000\x0004\u0512\x0002\x0000\x0001\u0512" + + "\x000D\x0000\x0001\u0512\x0006\x0000\x000A\u0512\x0001\u04e3\x007D\x0000\x0004\u0513\x0002\x0000" + + "\x0001\u0513\x000D\x0000\x0001\u0513\x0006\x0000\x000A\u0513\x0001\u0514\x007C\x0000\x0001\u0314" + + "\x0004\u0513\x0002\x0000\x0001\u0513\x000D\x0000\x0001\u0513\x0006\x0000\x000A\u0515\x0001\u0514" + + "\x007C\x0000\x0001\u0314\x0004\u0513\x0002\x0000\x0001\u0513\x000D\x0000\x0001\u0513\x0006\x0000" + + "\x000A\u0516\x0001\u0514\x007C\x0000\x0001\u0314\x0004\u0513\x0002\x0000\x0001\u0513\x000D\x0000" + + "\x0001\u0513\x0006\x0000\x0001\u0515\x0001\u0517\x0001\u0516\x0002\u0515\x0002\u0516\x0001\u0515" + + "\x0001\u0516\x0001\u0515\x0001\u0514\x007D\x0000\x0004\u0518\x0002\x0000\x0001\u0518\x000D\x0000" + + "\x0001\u0518\x0006\x0000\x000A\u0518\x000C\x0000\x0001\u02b6\x0071\x0000\x0004\u0519\x0002\x0000" + + "\x0001\u0519\x000D\x0000\x0001\u0519\x0006\x0000\x000A\u0519\x0001\u04ff\x000B\x0000\x0001\u02b6" + + "\x0071\x0000\x0004\u0518\x0002\x0000\x0001\u0518\x000D\x0000\x0001\u0518\x0006\x0000\x000A\u0518" + + "\x007D\x0000\x0001\u0314\x0004\u0519\x0002\x0000\x0001\u0519\x000D\x0000\x0001\u0519\x0006\x0000" + + "\x000A\u051a\x0001\u04ff\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u0519\x0002\x0000" + + "\x0001\u0519\x000D\x0000\x0001\u0519\x0006\x0000\x000A\u0519\x0001\u04ff\x000B\x0000\x0001\u02b6" + + "\x0070\x0000\x0001\u0314\x0004\u0519\x0002\x0000\x0001\u0519\x000D\x0000\x0001\u0519\x0006\x0000" + + "\x0002\u051a\x0001\u0519\x0002\u051a\x0002\u0519\x0001\u051a\x0001\u0519\x0001\u051a\x0001\u04ff" + + "\x000B\x0000\x0001\u02b6\x0096\x0000\x0001\u04cb\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\x00DC" + + "\x0001\u051b\x0019\x008E\x0001\x00DD\x000A\x008E\x007D\x0000\x0001\x00F3\x0007\x00AA\x0001\u051c" + + "\x0012\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054\x0001\x0000\x0002\x0054\x0001\x0055" + + "\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054\x0069\x0000\x0004\u051d\x0002\x0000" + + "\x0001\u051d\x000D\x0000\x0001\u051d\x0006\x0000\x000A\u051d\x0001\u04f1\x007D\x0000\x0004\u051e" + + "\x0002\x0000\x0001\u051e\x000D\x0000\x0001\u051e\x0006\x0000\x000A\u051e\x0001\u051f\x007C\x0000" + + "\x0001\u0362\x0004\u051e\x0002\x0000\x0001\u051e\x000D\x0000\x0001\u051e\x0006\x0000\x000A\u0520" + + "\x0001\u051f\x007C\x0000\x0001\u0362\x0004\u051e\x0002\x0000\x0001\u051e\x000D\x0000\x0001\u051e" + + "\x0006\x0000\x000A\u0521\x0001\u051f\x007C\x0000\x0001\u0362\x0004\u051e\x0002\x0000\x0001\u051e" + + "\x000D\x0000\x0001\u051e\x0006\x0000\x0001\u0520\x0001\u0522\x0001\u0521\x0002\u0520\x0002\u0521" + + "\x0001\u0520\x0001\u0521\x0001\u0520\x0001\u051f\x007D\x0000\x0004\u0523\x0002\x0000\x0001\u0523" + + "\x000D\x0000\x0001\u0523\x0006\x0000\x000A\u0523\x000C\x0000\x0001\u0307\x0071\x0000\x0004\u0524" + + "\x0002\x0000\x0001\u0524\x000D\x0000\x0001\u0524\x0006\x0000\x000A\u0524\x0001\u050d\x000B\x0000" + + "\x0001\u0307\x0071\x0000\x0004\u0523\x0002\x0000\x0001\u0523\x000D\x0000\x0001\u0523\x0006\x0000" + + "\x000A\u0523\x007D\x0000\x0001\u0362\x0004\u0524\x0002\x0000\x0001\u0524\x000D\x0000\x0001\u0524" + + "\x0006\x0000\x000A\u0525\x0001\u050d\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u0524" + + "\x0002\x0000\x0001\u0524\x000D\x0000\x0001\u0524\x0006\x0000\x000A\u0524\x0001\u050d\x000B\x0000" + + "\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u0524\x0002\x0000\x0001\u0524\x000D\x0000\x0001\u0524" + + "\x0006\x0000\x0002\u0525\x0001\u0524\x0002\u0525\x0002\u0524\x0001\u0525\x0001\u0524\x0001\u0525" + + "\x0001\u050d\x000B\x0000\x0001\u0307\x0096\x0000\x0001\u04dc\x000B\x0000\x0001\u0307\x0096\x0000" + + "\x0001\u04e3\x007D\x0000\x0004\u0526\x0002\x0000\x0001\u0526\x000D\x0000\x0001\u0526\x0006\x0000" + + "\x000A\u0526\x0001\u0514\x007D\x0000\x0004\u0518\x0002\x0000\x0001\u0518\x000D\x0000\x0001\u0518" + + "\x0006\x0000\x000A\u0518\x0001\u04ac\x007C\x0000\x0001\u0314\x0004\u0526\x0002\x0000\x0001\u0526" + + "\x000D\x0000\x0001\u0526\x0006\x0000\x000A\u0527\x0001\u0514\x007C\x0000\x0001\u0314\x0004\u0526" + + "\x0002\x0000\x0001\u0526\x000D\x0000\x0001\u0526\x0006\x0000\x000A\u0526\x0001\u0514\x007C\x0000" + + "\x0001\u0314\x0004\u0526\x0002\x0000\x0001\u0526\x000D\x0000\x0001\u0526\x0006\x0000\x0002\u0527" + + "\x0001\u0526\x0002\u0527\x0002\u0526\x0001\u0527\x0001\u0526\x0001\u0527\x0001\u0514\x007D\x0000" + + "\x0004\u0528\x0002\x0000\x0001\u0528\x000D\x0000\x0001\u0528\x0006\x0000\x000A\u0528\x000C\x0000" + + "\x0001\u02b6\x0071\x0000\x0004\u0529\x0002\x0000\x0001\u0529\x000D\x0000\x0001\u0529\x0006\x0000" + + "\x000A\u0529\x0001\u04ff\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\u0314\x0004\u0529\x0002\x0000" + + "\x0001\u0529\x000D\x0000\x0001\u0529\x0006\x0000\x000A\u0529\x0001\u04ff\x000B\x0000\x0001\u02b6" + + "\x0070\x0000\x0001\x00DC\x001A\x008E\x0001\x00DD\x0005\x008E\x0001\u052a\x0004\x008E\x007D\x0000" + + "\x0001\x00F3\x0001\x00AA\x0001\u0345\x0018\x00AA\x0001\x0057\x000A\x00AA\x0001\x0000\x0003\x0054" + + "\x0001\x0000\x0002\x0054\x0001\x0055\x0003\x0054\x0003\x0000\x0001\x0054\x0004\x0000\x0002\x0054" + + "\x008E\x0000\x0001\u04f1\x007D\x0000\x0004\u052b\x0002\x0000\x0001\u052b\x000D\x0000\x0001\u052b" + + "\x0006\x0000\x000A\u052b\x0001\u051f\x007D\x0000\x0004\u0523\x0002\x0000\x0001\u0523\x000D\x0000" + + "\x0001\u0523\x0006\x0000\x000A\u0523\x0001\u04c5\x007C\x0000\x0001\u0362\x0004\u052b\x0002\x0000" + + "\x0001\u052b\x000D\x0000\x0001\u052b\x0006\x0000\x000A\u052c\x0001\u051f\x007C\x0000\x0001\u0362" + + "\x0004\u052b\x0002\x0000\x0001\u052b\x000D\x0000\x0001\u052b\x0006\x0000\x000A\u052b\x0001\u051f" + + "\x007C\x0000\x0001\u0362\x0004\u052b\x0002\x0000\x0001\u052b\x000D\x0000\x0001\u052b\x0006\x0000" + + "\x0002\u052c\x0001\u052b\x0002\u052c\x0002\u052b\x0001\u052c\x0001\u052b\x0001\u052c\x0001\u051f" + + "\x007D\x0000\x0004\u052d\x0002\x0000\x0001\u052d\x000D\x0000\x0001\u052d\x0006\x0000\x000A\u052d" + + "\x000C\x0000\x0001\u0307\x0071\x0000\x0004\u052e\x0002\x0000\x0001\u052e\x000D\x0000\x0001\u052e" + + "\x0006\x0000\x000A\u052e\x0001\u050d\x000B\x0000\x0001\u0307\x0070\x0000\x0001\u0362\x0004\u052e" + + "\x0002\x0000\x0001\u052e\x000D\x0000\x0001\u052e\x0006\x0000\x000A\u052e\x0001\u050d\x000B\x0000" + + "\x0001\u0307\x0071\x0000\x0004\u052f\x0002\x0000\x0001\u052f\x000D\x0000\x0001\u052f\x0006\x0000" + + "\x000A\u052f\x0001\u0514\x007C\x0000\x0001\u0314\x0004\u052f\x0002\x0000\x0001\u052f\x000D\x0000" + + "\x0001\u052f\x0006\x0000\x000A\u052f\x0001\u0514\x007D\x0000\x0004\u0530\x0002\x0000\x0001\u0530" + + "\x000D\x0000\x0001\u0530\x0006\x0000\x000A\u0530\x000C\x0000\x0001\u02b6\x0096\x0000\x0001\u04ff" + + "\x000B\x0000\x0001\u02b6\x0070\x0000\x0001\x00DC\x0007\x008E\x0001\u0531\x0012\x008E\x0001\x00DD" + + "\x000A\x008E\x007E\x0000\x0004\u0532\x0002\x0000\x0001\u0532\x000D\x0000\x0001\u0532\x0006\x0000" + + "\x000A\u0532\x0001\u051f\x007C\x0000\x0001\u0362\x0004\u0532\x0002\x0000\x0001\u0532\x000D\x0000" + + "\x0001\u0532\x0006\x0000\x000A\u0532\x0001\u051f\x007D\x0000\x0004\u0533\x0002\x0000\x0001\u0533" + + "\x000D\x0000\x0001\u0533\x0006\x0000\x000A\u0533\x000C\x0000\x0001\u0307\x0096\x0000\x0001\u050d" + + "\x000B\x0000\x0001\u0307\x0096\x0000\x0001\u0514\x007D\x0000\x0004\u04ac\x0002\x0000\x0001\u04ac" + + "\x000D\x0000\x0001\u04ac\x0006\x0000\x000A\u04ac\x000C\x0000\x0001\u02b6\x0070\x0000\x0001\x00DC" + + "\x0001\x008E\x0001\u03d5\x0018\x008E\x0001\x00DD\x000A\x008E\x00A3\x0000\x0001\u051f\x007D\x0000" + + "\x0004\u04c5\x0002\x0000\x0001\u04c5\x000D\x0000\x0001\u04c5\x0006\x0000\x000A\u04c5\x000C\x0000" + + "\x0001\u0307\x0009\x0000"; + + + + + private static int[] ZzUnpackTrans() + { + int[] result = new int[214182]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; // index in packed string + int j = offset; // index in unpacked array + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /// error codes + private static readonly int ZZ_UNKNOWN_ERROR = 0; + private static readonly int ZZ_NO_MATCH = 1; + private static readonly int ZZ_PUSHBACK_2BIG = 2; + + /// error messages for the codes above + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /// ZZ_ATTRIBUTE[aState] contains the attributes of state aState + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0001\x0000\x0001\x0009\x0017\x0001\x0002\x0009\x000B\x0001\x000D\x0000\x0001\x0001\x0001\x0000" + + "\x0001\x0001\x0008\x0000\x0001\x0001\x000D\x0000\x0001\x0001\x000A\x0000\x0002\x0001\x0001\x0000" + + "\x0003\x0001\x0001\x0000\x0001\x0001\x0001\x0000\x0004\x0001\x002B\x0000\x001A\x0001\x0003\x0000" + + "\x0004\x0001\x001A\x0000\x0004\x0001\x000F\x0000\x0001\x0009\x0001\x0000\x0013\x0001\x0002\x0000" + + "\x0001\x0001\x0001\x0000\x0007\x0001\x0003\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0001\x0000" + + "\x0002\x0001\x0001\x0000\x0002\x0001\x0008\x0000\x0001\x0001\x001A\x0000\x0001\x0001\x0001\x0000" + + "\x0009\x0001\x0001\x0000\x0001\x0001\x0002\x0000\x0001\x0001\x0001\x0000\x0001\x0001\x0008\x0000" + + "\x0003\x0001\x000D\x0000\x0009\x0001\x0003\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0001\x0000" + + "\x0004\x0001\x0001\x0000\x0002\x0001\x0001\x0000\x0002\x0001\x0001\x0000\x0003\x0001\x0007\x0000" + + "\x0002\x0001\x0010\x0000\x0001\x0001\x0008\x0000\x0001\x0001\x0003\x0000\x0001\x0001\x001E\x0000" + + "\x0003\x0001\x0013\x0000\x0001\x0001\x001E\x0000\x0001\x0001\x0004\x0000\x0001\x0001\x0006\x0000" + + "\x0001\x0001\x0004\x0000\x0002\x0001\x0022\x0000\x0001\x0001\x002F\x0000\x0001\x0001\x0029\x0000" + + "\x0001\x0001\x0030\x0000\x0001\x0001\x0060\x0000\x0001\x0001\x005D\x0000\x0001\x0001\x0053\x0000" + + "\x0001\x0001\x0046\x0000\x0001\x0001\x002F\x0000\x0001\x0001\x00F2\x0000"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[1331]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + /// the input device + private TextReader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the YyText() string */ + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the YyText() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private bool zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private bool zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private bool zzEOFDone; + + /* user code: */ + /** Alphanumeric sequences */ + public static readonly int WORD_TYPE = UAX29URLEmailTokenizer.ALPHANUM; + + /** Numbers */ + public static readonly int NUMERIC_TYPE = UAX29URLEmailTokenizer.NUM; + + /** + * Chars in class \p{Line_Break = Complex_Context} are from South East Asian + * scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept + * together as as a single token rather than broken up, because the logic + * required to break them at word boundaries is too complex for UAX#29. + *

+ * See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA + */ + public static readonly int SOUTH_EAST_ASIAN_TYPE = UAX29URLEmailTokenizer.SOUTHEAST_ASIAN; + + public static readonly int IDEOGRAPHIC_TYPE = UAX29URLEmailTokenizer.IDEOGRAPHIC; + + public static readonly int HIRAGANA_TYPE = UAX29URLEmailTokenizer.HIRAGANA; + + public static readonly int KATAKANA_TYPE = UAX29URLEmailTokenizer.KATAKANA; + + public static readonly int HANGUL_TYPE = UAX29URLEmailTokenizer.HANGUL; + + public static readonly int EMAIL_TYPE = UAX29URLEmailTokenizer.EMAIL; + + public static readonly int URL_TYPE = UAX29URLEmailTokenizer.URL; + + public int YyChar + { + get { return yychar; } + } + + ///

Fills CharTermAttribute with the current token text. + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + /// + /// Creates a new scanner + /// + /// the TextReader to read input from. + public UAX29URLEmailTokenizerImpl31(TextReader @in) + { + this.zzReader = @in; + } + + /// + /// Unpacks the compressed character translation table. + /// + /// the packed character translation table + /// the unpacked character translation table + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 2812) + { + int count = packed[i++]; + char value = packed[i++]; + do map[j++] = value; while (--count > 0); + } + return map; + } + + /// + /// Refills the input buffer. + /// + /// false, iff there was new input. + /// if any I/O-Error occurs + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + System.Array.Copy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + System.Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* finally: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, + zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c == -1) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /// Closes the input stream. + public void YyClose() + { + zzAtEOF = true; // indicate end of file + zzEndRead = zzStartRead; // invalidate buffer + + if (zzReader != null) + { + zzReader.Dispose(); + } + } + + /// + /// Resets the scanner to read from a new input stream. + /// Does not close the old reader. + /// + /// All internal variables are reset, the old input stream + /// cannot be reused (internal buffer is discarded and lost). + /// Lexical state is set to ZZ_INITIAL. + /// + /// Internal scan buffer is resized down to its initial length, if it has grown. + /// + /// the new input stream + public void YyReset(TextReader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /// + /// Returns the current lexical state. + /// + public int YyState + { + get { return zzLexicalState; } + } + + /// + /// Enters a new lexical state + /// + /// the new lexical state + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /// Returns the text matched by the current regular expression. + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + /// + /// Returns the character at position pos from the + /// matched text. + /// + /// It is equivalent to YyText().charAt(pos), but faster + /// + /// the position of the character to fetch. + /// A value from 0 to YyLength()-1. + /// the character at position pos + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /// Returns the length of the matched text region. + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + /// + /// Reports an error that occured while scanning. + /// + /// In a wellformed scanner (no or only correct usage of + /// YyPushBack(int) and a match-all fallback rule) this method + /// will only be called with things that "Can't Possibly Happen". + /// If this method is called, something is seriously wrong + /// (e.g. a JFlex bug producing a faulty scanner etc.). + /// + /// Usual syntax/scanner level error handling should be done + /// in error fallback rules. + /// + /// the code of the errormessage to display + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (IndexOutOfRangeException e) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + /// + /// Pushes the specified amount of characters back into the input stream. + /// + /// They will be read again by then next call of the scanning method + /// + /// the number of characters to be read again. + /// This number must not be greater than YyLength()! + public void YyPushBack(int number) + { + if (number > YyLength) + ZzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /// + /// Resumes scanning until the next regular expression is matched, + /// the end of input is encountered or an I/O-Error occurs. + /// + /// the next token + /// if any I/O-Error occurs + public int GetNextToken() + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; + + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yychar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + zzInput = zzBufferL[zzCurrentPosL++]; + else if (zzAtEOF) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) goto zzForActionBreak; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) goto zzForActionBreak; + } + + } + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { /* Break so we don't hit fall-through warning: */ + break;/* Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. */ + } + case 11: break; + case 2: + { + return WORD_TYPE; + } + case 12: break; + case 3: + { + return NUMERIC_TYPE; + } + case 13: break; + case 4: + { + return KATAKANA_TYPE; + } + case 14: break; + case 5: + { + return SOUTH_EAST_ASIAN_TYPE; + } + case 15: break; + case 6: + { + return IDEOGRAPHIC_TYPE; + } + case 16: break; + case 7: + { + return HIRAGANA_TYPE; + } + case 17: break; + case 8: + { + return HANGUL_TYPE; + } + case 18: break; + case 9: + { + return EMAIL_TYPE; + } + case 19: break; + case 10: + { + return URL_TYPE; + } + case 20: break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + { + return StandardTokenizerInterface_Fields.YYEOF; + } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } +} diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std34/UAX29URLEmailTokenizerImpl34.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std34/UAX29URLEmailTokenizerImpl34.cs new file mode 100644 index 0000000000..6ad22b9358 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std34/UAX29URLEmailTokenizerImpl34.cs @@ -0,0 +1,3797 @@ +using Lucene.Net.Analysis.Tokenattributes; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Standard.Std34 +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// This class implements UAX29URLEmailTokenizer, except with a bug + /// (https://issues.apache.org/jira/browse/LUCENE-3880) where "mailto:" + /// URI scheme prepended to an email address will disrupt recognition + /// of the email address. + /// + /// @deprecated This class is only for exact backwards compatibility + /// + [Obsolete("This class is only for exact backwards compatibility")] + public sealed class UAX29URLEmailTokenizerImpl34 : IStandardTokenizerInterface + { + /** This character denotes the end of file */ + public static readonly int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static readonly int ZZ_BUFFERSIZE = 4096; + + /** lexical states */ + public const int YYINITIAL = 0; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static readonly int[] ZZ_LEXSTATE = { 0, 0 }; + + /** + * Translates characters to character classes + */ + private static readonly string ZZ_CMAP_PACKED = + "\x0001\x009F\x0008\x009D\x0002\x009F\x0002\x009D\x0001\x009F\x0013\x009D\x0001\x00A0\x0001\x009C\x0001\x0097\x0001\x00A0" + + "\x0001\x0090\x0001\x008E\x0001\x0093\x0002\x0091\x0002\x00A0\x0001\x0092\x0001\x0082\x0001\x0067\x0001\x0096\x0001\x0083" + + "\x0001\x0086\x0001\x008C\x0001\x0087\x0001\x008A\x0001\x0084\x0001\x0085\x0001\x0089\x0001\x008B\x0001\x0088\x0001\x008D" + + "\x0001\x009A\x0001\x009D\x0001\x009B\x0001\x009D\x0001\x0095\x0001\x0094\x0001\x0068\x0001\x007C\x0001\x0069\x0001\x006A" + + "\x0001\x006B\x0001\x006E\x0001\x006F\x0001\x007D\x0001\x0070\x0001\x007E\x0001\x0081\x0001\x0071\x0001\x0072\x0001\x0073" + + "\x0001\x006D\x0001\x0075\x0001\x0074\x0001\x006C\x0001\x0076\x0001\x0077\x0001\x0078\x0001\x007F\x0001\x0079\x0001\x007A" + + "\x0001\x0080\x0001\x007B\x0001\x0098\x0001\x009E\x0001\x0099\x0001\x00A1\x0001\x008F\x0001\x00A1\x0001\x0068\x0001\x007C" + + "\x0001\x0069\x0001\x006A\x0001\x006B\x0001\x006E\x0001\x006F\x0001\x007D\x0001\x0070\x0001\x007E\x0001\x0081\x0001\x0071" + + "\x0001\x0072\x0001\x0073\x0001\x006D\x0001\x0075\x0001\x0074\x0001\x006C\x0001\x0076\x0001\x0077\x0001\x0078\x0001\x007F" + + "\x0001\x0079\x0001\x007A\x0001\x0080\x0001\x007B\x0003\x00A1\x0001\x008E\x0001\x00A2\x002A\x0000\x0001\x005A\x0002\x0000" + + "\x0001\x005B\x0007\x0000\x0001\x005A\x0001\x0000\x0001\x005E\x0002\x0000\x0001\x005A\x0005\x0000\x0017\x005A\x0001\x0000" + + "\x001F\x005A\x0001\x0000\u01ca\x005A\x0004\x0000\x000C\x005A\x000E\x0000\x0005\x005A\x0007\x0000\x0001\x005A\x0001\x0000" + + "\x0001\x005A\x0011\x0000\x0070\x005B\x0005\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0004\x005A\x0001\x005F\x0007\x0000" + + "\x0001\x005A\x0001\x005E\x0003\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0014\x005A\x0001\x0000\x0053\x005A\x0001\x0000" + + "\x008B\x005A\x0001\x0000\x0007\x005B\x009E\x005A\x0009\x0000\x0026\x005A\x0002\x0000\x0001\x005A\x0007\x0000\x0027\x005A" + + "\x0001\x0000\x0001\x005F\x0007\x0000\x002D\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0002\x005B\x0001\x0000\x0002\x005B" + + "\x0001\x0000\x0001\x005B\x0008\x0000\x001B\x005A\x0005\x0000\x0004\x005A\x0001\x005E\x000B\x0000\x0004\x005B\x0008\x0000" + + "\x0002\x005F\x0002\x0000\x000B\x005B\x0005\x0000\x002B\x005A\x0015\x005B\x000A\x005C\x0001\x0000\x0001\x005C\x0001\x005F" + + "\x0001\x0000\x0002\x005A\x0001\x005B\x0063\x005A\x0001\x0000\x0001\x005A\x0007\x005B\x0001\x005B\x0001\x0000\x0006\x005B" + + "\x0002\x005A\x0002\x005B\x0001\x0000\x0004\x005B\x0002\x005A\x000A\x005C\x0003\x005A\x0002\x0000\x0001\x005A\x000F\x0000" + + "\x0001\x005B\x0001\x005A\x0001\x005B\x001E\x005A\x001B\x005B\x0002\x0000\x0059\x005A\x000B\x005B\x0001\x005A\x000E\x0000" + + "\x000A\x005C\x0021\x005A\x0009\x005B\x0002\x005A\x0002\x0000\x0001\x005F\x0001\x0000\x0001\x005A\x0005\x0000\x0016\x005A" + + "\x0004\x005B\x0001\x005A\x0009\x005B\x0001\x005A\x0003\x005B\x0001\x005A\x0005\x005B\x0012\x0000\x0019\x005A\x0003\x005B" + + "\x00A4\x0000\x0004\x005B\x0036\x005A\x0003\x005B\x0001\x005A\x0012\x005B\x0001\x005A\x0007\x005B\x000A\x005A\x0002\x005B" + + "\x0002\x0000\x000A\x005C\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0003\x005B\x0001\x0000\x0008\x005A" + + "\x0002\x0000\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0003\x0000\x0004\x005A" + + "\x0002\x0000\x0001\x005B\x0001\x005A\x0007\x005B\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0001\x005A\x0008\x0000" + + "\x0001\x005B\x0004\x0000\x0002\x005A\x0001\x0000\x0003\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0002\x005A\x000F\x0000" + + "\x0003\x005B\x0001\x0000\x0006\x005A\x0004\x0000\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000" + + "\x0002\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0001\x005B\x0001\x0000\x0005\x005B\x0004\x0000" + + "\x0002\x005B\x0002\x0000\x0003\x005B\x0003\x0000\x0001\x005B\x0007\x0000\x0004\x005A\x0001\x0000\x0001\x005A\x0007\x0000" + + "\x000A\x005C\x0002\x005B\x0003\x005A\x0001\x005B\x000B\x0000\x0003\x005B\x0001\x0000\x0009\x005A\x0001\x0000\x0003\x005A" + + "\x0001\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B" + + "\x0001\x005A\x0008\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0003\x005B\x0002\x0000\x0001\x005A\x000F\x0000\x0002\x005A" + + "\x0002\x005B\x0002\x0000\x000A\x005C\x0011\x0000\x0003\x005B\x0001\x0000\x0008\x005A\x0002\x0000\x0002\x005A\x0002\x0000" + + "\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B\x0001\x005A" + + "\x0007\x005B\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0008\x0000\x0002\x005B\x0004\x0000\x0002\x005A\x0001\x0000" + + "\x0003\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0001\x005A\x0010\x0000\x0001\x005B\x0001\x005A\x0001\x0000" + + "\x0006\x005A\x0003\x0000\x0003\x005A\x0001\x0000\x0004\x005A\x0003\x0000\x0002\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0002\x005A\x0003\x0000\x0002\x005A\x0003\x0000\x0003\x005A\x0003\x0000\x000C\x005A\x0004\x0000\x0005\x005B\x0003\x0000" + + "\x0003\x005B\x0001\x0000\x0004\x005B\x0002\x0000\x0001\x005A\x0006\x0000\x0001\x005B\x000E\x0000\x000A\x005C\x0011\x0000" + + "\x0003\x005B\x0001\x0000\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000" + + "\x0005\x005A\x0003\x0000\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B" + + "\x0001\x0000\x0002\x005A\x0006\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0012\x0000\x0002\x005B\x0001\x0000" + + "\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000\x0005\x005A\x0002\x0000" + + "\x0001\x005B\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B\x0007\x0000" + + "\x0001\x005A\x0001\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0002\x005A\x000F\x0000\x0002\x005B" + + "\x0001\x0000\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0029\x005A\x0002\x0000\x0001\x005A\x0007\x005B\x0001\x0000" + + "\x0003\x005B\x0001\x0000\x0004\x005B\x0001\x005A\x0008\x0000\x0001\x005B\x0008\x0000\x0002\x005A\x0002\x005B\x0002\x0000" + + "\x000A\x005C\x000A\x0000\x0006\x005A\x0002\x0000\x0002\x005B\x0001\x0000\x0012\x005A\x0003\x0000\x0018\x005A\x0001\x0000" + + "\x0009\x005A\x0001\x0000\x0001\x005A\x0002\x0000\x0007\x005A\x0003\x0000\x0001\x005B\x0004\x0000\x0006\x005B\x0001\x0000" + + "\x0001\x005B\x0001\x0000\x0008\x005B\x0012\x0000\x0002\x005B\x000D\x0000\x0030\x0062\x0001\x0063\x0002\x0062\x0007\x0063" + + "\x0005\x0000\x0007\x0062\x0008\x0063\x0001\x0000\x000A\x005C\x0027\x0000\x0002\x0062\x0001\x0000\x0001\x0062\x0002\x0000" + + "\x0002\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0001\x0062\x0006\x0000\x0004\x0062\x0001\x0000\x0007\x0062\x0001\x0000" + + "\x0003\x0062\x0001\x0000\x0001\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0002\x0062\x0001\x0000\x0004\x0062\x0001\x0063" + + "\x0002\x0062\x0006\x0063\x0001\x0000\x0002\x0063\x0001\x0062\x0002\x0000\x0005\x0062\x0001\x0000\x0001\x0062\x0001\x0000" + + "\x0006\x0063\x0002\x0000\x000A\x005C\x0002\x0000\x0002\x0062\x0022\x0000\x0001\x005A\x0017\x0000\x0002\x005B\x0006\x0000" + + "\x000A\x005C\x000B\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0004\x0000\x0002\x005B\x0008\x005A" + + "\x0001\x0000\x0024\x005A\x0004\x0000\x0014\x005B\x0001\x0000\x0002\x005B\x0005\x005A\x000B\x005B\x0001\x0000\x0024\x005B" + + "\x0009\x0000\x0001\x005B\x0039\x0000\x002B\x0062\x0014\x0063\x0001\x0062\x000A\x005C\x0006\x0000\x0006\x0062\x0004\x0063" + + "\x0004\x0062\x0003\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0007\x0063\x0003\x0062\x0004\x0063\x000D\x0062\x000C\x0063" + + "\x0001\x0062\x0001\x0063\x000A\x005C\x0004\x0063\x0002\x0062\x0026\x005A\x000A\x0000\x002B\x005A\x0001\x0000\x0001\x005A" + + "\x0003\x0000\u0100\x0066\x0049\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0004\x005A\x0002\x0000\x0029\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0021\x005A\x0001\x0000\x0004\x005A\x0002\x0000" + + "\x0007\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x000F\x005A\x0001\x0000\x0039\x005A\x0001\x0000" + + "\x0004\x005A\x0002\x0000\x0043\x005A\x0002\x0000\x0003\x005B\x0020\x0000\x0010\x005A\x0010\x0000\x0055\x005A\x000C\x0000" + + "\u026c\x005A\x0002\x0000\x0011\x005A\x0001\x0000\x001A\x005A\x0005\x0000\x004B\x005A\x0003\x0000\x0003\x005A\x000F\x0000" + + "\x000D\x005A\x0001\x0000\x0004\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0002\x005B" + + "\x000C\x0000\x000D\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0002\x005B\x000C\x0000\x0034\x0062\x0002\x0063\x001E\x0063" + + "\x0003\x0000\x0001\x0062\x0004\x0000\x0001\x0062\x0001\x0063\x0002\x0000\x000A\x005C\x0021\x0000\x0003\x005B\x0002\x0000" + + "\x000A\x005C\x0006\x0000\x0058\x005A\x0008\x0000\x0029\x005A\x0001\x005B\x0001\x005A\x0005\x0000\x0046\x005A\x000A\x0000" + + "\x001D\x005A\x0003\x0000\x000C\x005B\x0004\x0000\x000C\x005B\x000A\x0000\x000A\x005C\x001E\x0062\x0002\x0000\x0005\x0062" + + "\x000B\x0000\x002C\x0062\x0004\x0000\x0011\x0063\x0007\x0062\x0002\x0063\x0006\x0000\x000A\x005C\x0001\x0062\x0003\x0000" + + "\x0002\x0062\x0020\x0000\x0017\x005A\x0005\x005B\x0004\x0000\x0035\x0062\x000A\x0063\x0001\x0000\x001D\x0063\x0002\x0000" + + "\x0001\x005B\x000A\x005C\x0006\x0000\x000A\x005C\x0006\x0000\x000E\x0062\x0052\x0000\x0005\x005B\x002F\x005A\x0011\x005B" + + "\x0007\x005A\x0004\x0000\x000A\x005C\x0011\x0000\x0009\x005B\x000C\x0000\x0003\x005B\x001E\x005A\x000A\x005B\x0003\x0000" + + "\x0002\x005A\x000A\x005C\x0006\x0000\x0026\x005A\x000E\x005B\x000C\x0000\x0024\x005A\x0014\x005B\x0008\x0000\x000A\x005C" + + "\x0003\x0000\x0003\x005A\x000A\x005C\x0024\x005A\x0052\x0000\x0003\x005B\x0001\x0000\x0015\x005B\x0004\x005A\x0001\x005B" + + "\x0004\x005A\x0001\x005B\x000D\x0000\x00C0\x005A\x0027\x005B\x0015\x0000\x0004\x005B\u0116\x005A\x0002\x0000\x0006\x005A" + + "\x0002\x0000\x0026\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0008\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A" + + "\x0001\x0000\x0001\x005A\x0001\x0000\x001F\x005A\x0002\x0000\x0035\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A" + + "\x0003\x0000\x0003\x005A\x0001\x0000\x0007\x005A\x0003\x0000\x0004\x005A\x0002\x0000\x0006\x005A\x0004\x0000\x000D\x005A" + + "\x0005\x0000\x0003\x005A\x0001\x0000\x0007\x005A\x000F\x0000\x0002\x005B\x0002\x005B\x0008\x0000\x0002\x0060\x000A\x0000" + + "\x0001\x0060\x0002\x0000\x0001\x005E\x0002\x0000\x0005\x005B\x0010\x0000\x0002\x0061\x0003\x0000\x0001\x005F\x000F\x0000" + + "\x0001\x0061\x000B\x0000\x0005\x005B\x0005\x0000\x0006\x005B\x0001\x0000\x0001\x005A\x000D\x0000\x0001\x005A\x0010\x0000" + + "\x000D\x005A\x0033\x0000\x0021\x005B\x0011\x0000\x0001\x005A\x0004\x0000\x0001\x005A\x0002\x0000\x000A\x005A\x0001\x0000" + + "\x0001\x005A\x0003\x0000\x0005\x005A\x0006\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0004\x005A\x0001\x0000\x000B\x005A\x0002\x0000\x0004\x005A\x0005\x0000\x0005\x005A\x0004\x0000\x0001\x005A\x0011\x0000" + + "\x0029\x005A\u032d\x0000\x0034\x005A\u0716\x0000\x002F\x005A\x0001\x0000\x002F\x005A\x0001\x0000\x0085\x005A\x0006\x0000" + + "\x0004\x005A\x0003\x005B\x000E\x0000\x0026\x005A\x000A\x0000\x0036\x005A\x0009\x0000\x0001\x005A\x000F\x0000\x0001\x005B" + + "\x0017\x005A\x0009\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000" + + "\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0020\x005B\x002F\x0000" + + "\x0001\x005A\x0050\x0000\x001A\x0064\x0001\x0000\x0059\x0064\x000C\x0000\x00D6\x0064\x002F\x0000\x0001\x005A\x0001\x0000" + + "\x0001\x0064\x0019\x0000\x0009\x0064\x0004\x005B\x0002\x005B\x0001\x0000\x0005\x005D\x0002\x0000\x0003\x0064\x0001\x005A" + + "\x0001\x005A\x0004\x0000\x0056\x0065\x0002\x0000\x0002\x005B\x0002\x005D\x0003\x0065\x005B\x005D\x0001\x0000\x0004\x005D" + + "\x0005\x0000\x0029\x005A\x0003\x0000\x005E\x0066\x0011\x0000\x001B\x005A\x0035\x0000\x0010\x005D\x001F\x0000\x0041\x0000" + + "\x001F\x0000\x0051\x0000\x002F\x005D\x0001\x0000\x0058\x005D\x00A8\x0000\u19b6\x0064\x004A\x0000\u51cc\x0064\x0034\x0000" + + "\u048d\x005A\x0043\x0000\x002E\x005A\x0002\x0000\u010d\x005A\x0003\x0000\x0010\x005A\x000A\x005C\x0002\x005A\x0014\x0000" + + "\x002F\x005A\x0004\x005B\x0009\x0000\x0002\x005B\x0001\x0000\x0019\x005A\x0008\x0000\x0050\x005A\x0002\x005B\x0025\x0000" + + "\x0009\x005A\x0002\x0000\x0067\x005A\x0002\x0000\x0004\x005A\x0001\x0000\x0002\x005A\x000E\x0000\x000A\x005A\x0050\x0000" + + "\x0008\x005A\x0001\x005B\x0003\x005A\x0001\x005B\x0004\x005A\x0001\x005B\x0017\x005A\x0005\x005B\x0018\x0000\x0034\x005A" + + "\x000C\x0000\x0002\x005B\x0032\x005A\x0011\x005B\x000B\x0000\x000A\x005C\x0006\x0000\x0012\x005B\x0006\x005A\x0003\x0000" + + "\x0001\x005A\x0004\x0000\x000A\x005C\x001C\x005A\x0008\x005B\x0002\x0000\x0017\x005A\x000D\x005B\x000C\x0000\x001D\x0066" + + "\x0003\x0000\x0004\x005B\x002F\x005A\x000E\x005B\x000E\x0000\x0001\x005A\x000A\x005C\x0026\x0000\x0029\x005A\x000E\x005B" + + "\x0009\x0000\x0003\x005A\x0001\x005B\x0008\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0006\x0000\x001B\x0062\x0001\x0063" + + "\x0004\x0000\x0030\x0062\x0001\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0002\x0063\x0005\x0062\x0002\x0063\x0001\x0062" + + "\x0001\x0063\x0001\x0062\x0018\x0000\x0005\x0062\x0021\x0000\x0006\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0006\x005A" + + "\x0009\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0091\x0000\x0023\x005A\x0008\x005B\x0001\x0000\x0002\x005B\x0002\x0000" + + "\x000A\x005C\x0006\x0000\u2ba4\x0066\x000C\x0000\x0017\x0066\x0004\x0000\x0031\x0066\x0004\x0000\x0001\x0019\x0001\x0015" + + "\x0001\x0026\x0001\x0023\x0001\x000B\x0003\x0000\x0001\x0007\x0001\x0005\x0002\x0000\x0001\x0003\x0001\x0001\x000C\x0000" + + "\x0001\x0009\x0011\x0000\x0001\x004A\x0007\x0000\x0001\x0035\x0001\x000F\x0006\x0000\x0001\x0058\x0003\x0000\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0051\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0055\x0001\x0053\x000F\x0000\x0001\x004C\u02c1\x0000\x0001\x0038" + + "\x00BF\x0000\x0001\x004B\x0001\x0039\x0001\x0002\x0003\x0054\x0002\x001D\x0001\x0054\x0001\x001D\x0002\x0054\x0001\x000C" + + "\x0011\x0054\x0002\x0030\x0007\x003B\x0001\x003A\x0007\x003B\x0007\x002A\x0001\x000D\x0001\x002A\x0001\x003D\x0002\x0025" + + "\x0001\x0024\x0001\x003D\x0001\x0025\x0001\x0024\x0008\x003D\x0002\x0033\x0005\x0031\x0002\x002C\x0005\x0031\x0001\x0006" + + "\x0008\x001F\x0005\x0011\x0003\x0017\x000A\x0046\x0010\x0017\x0003\x0022\x001A\x0018\x0001\x0016\x0002\x0014\x0002\x0048" + + "\x0001\x0049\x0002\x0048\x0002\x0049\x0002\x0048\x0001\x0049\x0003\x0014\x0001\x000E\x0002\x0014\x000A\x0034\x0001\x003C" + + "\x0001\x0021\x0001\x001C\x0001\x0034\x0006\x0021\x0001\x001C\x0036\x0021\x0005\x004D\x0006\x0043\x0001\x0029\x0004\x0043" + + "\x0002\x0029\x0008\x0043\x0001\x0029\x0007\x0040\x0001\x000A\x0002\x0040\x001A\x0043\x0001\x000A\x0004\x0040\x0001\x000A" + + "\x0005\x0042\x0001\x0041\x0001\x0042\x0003\x0041\x0007\x0042\x0001\x0041\x0013\x0042\x0005\x0037\x0003\x0042\x0006\x0037" + + "\x0002\x0037\x0006\x0036\x0008\x0036\x0002\x0040\x0007\x0036\x001E\x0040\x0004\x0036\x0042\x0040\x000D\x004D\x0001\x003F" + + "\x0002\x004D\x0001\x0059\x0003\x004F\x0001\x004D\x0002\x004F\x0005\x004D\x0004\x004F\x0004\x004E\x0001\x004D\x0003\x004E" + + "\x0001\x004D\x0005\x004E\x0016\x002E\x0004\x0013\x0001\x0045\x0002\x0044\x0004\x0052\x0001\x0044\x0002\x0052\x0003\x003E" + + "\x001B\x0052\x001D\x002D\x0003\x0052\x001D\x0056\x0003\x0052\x0006\x0056\x0002\x001B\x0019\x0056\x0001\x001B\x000F\x0056" + + "\x0006\x0052\x0004\x0012\x0001\x0008\x001F\x0012\x0001\x0008\x0004\x0012\x0015\x0032\x0001\x0057\x0009\x0032\x0011\x002D" + + "\x0005\x0032\x0001\x002F\x000A\x0020\x000B\x0032\x0004\x002D\x0001\x0028\x0006\x002D\x000A\x0052\x000F\x002D\x0001\x0027" + + "\x0003\x002B\x000D\x0010\x0009\x001E\x0001\x001A\x0014\x001E\x0002\x0010\x0009\x001E\x0001\x001A\x0019\x001E\x0001\x001A" + + "\x0004\x0010\x0004\x001E\x0002\x001A\x0002\x0047\x0001\x0004\x0005\x0047\x002A\x0004\u1900\x0000\u012e\x0064\x0002\x0000" + + "\x003E\x0064\x0002\x0000\x006A\x0064\x0026\x0000\x0007\x005A\x000C\x0000\x0005\x005A\x0005\x0000\x0001\x005A\x0001\x005B" + + "\x000A\x005A\x0001\x0000\x000D\x005A\x0001\x0000\x0005\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0002\x005A\x0001\x0000" + + "\x0002\x005A\x0001\x0000\x006C\x005A\x0021\x0000\u016b\x005A\x0012\x0000\x0040\x005A\x0002\x0000\x0036\x005A\x0028\x0000" + + "\x000C\x005A\x0004\x0000\x0010\x005B\x0001\x005F\x0002\x0000\x0001\x005E\x0001\x005F\x000B\x0000\x0007\x005B\x000C\x0000" + + "\x0002\x0061\x0018\x0000\x0003\x0061\x0001\x005F\x0001\x0000\x0001\x0060\x0001\x0000\x0001\x005F\x0001\x005E\x001A\x0000" + + "\x0005\x005A\x0001\x0000\x0087\x005A\x0002\x0000\x0001\x005B\x0007\x0000\x0001\x0060\x0004\x0000\x0001\x005F\x0001\x0000" + + "\x0001\x0060\x0001\x0000\x000A\x005C\x0001\x005E\x0001\x005F\x0005\x0000\x001A\x005A\x0004\x0000\x0001\x0061\x0001\x0000" + + "\x001A\x005A\x000B\x0000\x0038\x005D\x0002\x005B\x001F\x0066\x0003\x0000\x0006\x0066\x0002\x0000\x0006\x0066\x0002\x0000" + + "\x0006\x0066\x0002\x0000\x0003\x0066\x001C\x0000\x0003\x005B\x0004\x0000"; + + /** + * Translates characters to character classes + */ + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = + "\x0001\x0000\x0013\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + + "\x0001\x0007\x0001\x0008\x0001\x0001\x0003\x0002\x0003\x0003\x0003\x0001\x000D\x0000\x0001\x0002" + + "\x0001\x0000\x0001\x0002\x0008\x0000\x0001\x0003\x000D\x0000\x0001\x0002\x0014\x0000\x0002\x0002" + + "\x0001\x0000\x0003\x0002\x0001\x0000\x0001\x0003\x0001\x0000\x0002\x0003\x0001\x0002\x0001\x0003" + + "\x002B\x0000\x001A\x0002\x0003\x0000\x0004\x0002\x001A\x0000\x0004\x0003\x000F\x0000\x0001\x0009" + + "\x0001\x0000\x0006\x000A\x0003\x0002\x0002\x000A\x0001\x0002\x0004\x000A\x0002\x0002\x0002\x000A" + + "\x0002\x0000\x0001\x0002\x0001\x0000\x0001\x0002\x0006\x000A\x0003\x0000\x0002\x000A\x0001\x0000" + + "\x0004\x000A\x0002\x0000\x0002\x000A\x0001\x0000\x0002\x0003\x0008\x0000\x0001\x000A\x001A\x0000" + + "\x0001\x000A\x0001\x0000\x0003\x000A\x0006\x0002\x0001\x0000\x0001\x0002\x0002\x0000\x0001\x0002" + + "\x0001\x0000\x0001\x000A\x0008\x0000\x0003\x0003\x000D\x0000\x0003\x000A\x0006\x0009\x0003\x0000" + + "\x0002\x0009\x0001\x0000\x0004\x0009\x0002\x0000\x0002\x0009\x0002\x000A\x0001\x0000\x0002\x000A" + + "\x0001\x0000\x0002\x000A\x0001\x0000\x0001\x000A\x0002\x0002\x0007\x0000\x0002\x0003\x0010\x0000" + + "\x0001\x0009\x0008\x0000\x0001\x000A\x0003\x0000\x0001\x0002\x001F\x0000\x0003\x000A\x0013\x0000" + + "\x0001\x000A\x0020\x0000\x0001\x000A\x0004\x0000\x0001\x000A\x0006\x0000\x0001\x000A\x0004\x0000" + + "\x0002\x000A\x0023\x0000\x0001\x000A\x0031\x0000\x0001\x000A\x002B\x0000\x0001\x000A\x0033\x0000" + + "\x0001\x000A\x0064\x0000\x0001\x000A\x0062\x0000\x0001\x000A\x0057\x0000\x0001\x000A\x0049\x0000" + + "\x0001\x000A\x0033\x0000\x0001\x000A\x00F7\x0000"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[1380]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private const string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x00A3\x0000\u0146\x0000\u01e9\x0000\u028c\x0000\u032f\x0000\u03d2\x0000\u0475" + + "\x0000\u0518\x0000\u05bb\x0000\u065e\x0000\u0701\x0000\u07a4\x0000\u0847\x0000\u08ea\x0000\u098d" + + "\x0000\u0a30\x0000\u0ad3\x0000\u0b76\x0000\u0c19\x0000\u0cbc\x0000\u0d5f\x0000\u0e02\x0000\u0ea5" + + "\x0000\u0f48\x0000\u0feb\x0000\u108e\x0000\u1131\x0000\u11d4\x0000\u1277\x0000\u131a\x0000\u13bd" + + "\x0000\u1460\x0000\u1503\x0000\u15a6\x0000\u1649\x0000\u16ec\x0000\u178f\x0000\u0146\x0000\u01e9" + + "\x0000\u028c\x0000\u032f\x0000\u03d2\x0000\u1832\x0000\u18d5\x0000\u1978\x0000\u1a1b\x0000\u0701" + + "\x0000\u1abe\x0000\u1b61\x0000\u1c04\x0000\u1ca7\x0000\u1d4a\x0000\u1ded\x0000\u1e90\x0000\u0518" + + "\x0000\u05bb\x0000\u1f33\x0000\u1fd6\x0000\u2079\x0000\u211c\x0000\u21bf\x0000\u2262\x0000\u2305" + + "\x0000\u23a8\x0000\u244b\x0000\u24ee\x0000\u2591\x0000\u2634\x0000\u26d7\x0000\u277a\x0000\u281d" + + "\x0000\u28c0\x0000\u2963\x0000\u2a06\x0000\u0ea5\x0000\u2aa9\x0000\u2b4c\x0000\u2bef\x0000\u2c92" + + "\x0000\u2d35\x0000\u2dd8\x0000\u2e7b\x0000\u2f1e\x0000\u2fc1\x0000\u3064\x0000\u3107\x0000\u31aa" + + "\x0000\u324d\x0000\u32f0\x0000\u3393\x0000\u3436\x0000\u34d9\x0000\u11d4\x0000\u357c\x0000\u361f" + + "\x0000\u36c2\x0000\u3765\x0000\u3808\x0000\u38ab\x0000\u394e\x0000\u39f1\x0000\u3a94\x0000\u3b37" + + "\x0000\u3bda\x0000\u3c7d\x0000\u3d20\x0000\u3dc3\x0000\u3e66\x0000\u3f09\x0000\u1649\x0000\u3fac" + + "\x0000\u404f\x0000\u178f\x0000\u40f2\x0000\u4195\x0000\u4238\x0000\u42db\x0000\u437e\x0000\u4421" + + "\x0000\u44c4\x0000\u4567\x0000\u460a\x0000\u46ad\x0000\u4750\x0000\u47f3\x0000\u4896\x0000\u4939" + + "\x0000\u49dc\x0000\u4a7f\x0000\u4b22\x0000\u4bc5\x0000\u4c68\x0000\u4d0b\x0000\u4dae\x0000\u4e51" + + "\x0000\u4ef4\x0000\u4f97\x0000\u503a\x0000\u50dd\x0000\u5180\x0000\u5223\x0000\u52c6\x0000\u5369" + + "\x0000\u540c\x0000\u54af\x0000\u5552\x0000\u55f5\x0000\u5698\x0000\u573b\x0000\u57de\x0000\u5881" + + "\x0000\u5924\x0000\u59c7\x0000\u5a6a\x0000\u5b0d\x0000\u5bb0\x0000\u5c53\x0000\u5cf6\x0000\u5d99" + + "\x0000\u5e3c\x0000\u5edf\x0000\u5f82\x0000\u6025\x0000\u60c8\x0000\u616b\x0000\u620e\x0000\u62b1" + + "\x0000\u6354\x0000\u63f7\x0000\u649a\x0000\u653d\x0000\u65e0\x0000\u6683\x0000\u6726\x0000\u67c9" + + "\x0000\u686c\x0000\u690f\x0000\u69b2\x0000\u6a55\x0000\u6af8\x0000\u6b9b\x0000\u6c3e\x0000\u6ce1" + + "\x0000\u6d84\x0000\u6e27\x0000\u6eca\x0000\u6f6d\x0000\u7010\x0000\u70b3\x0000\u7156\x0000\u71f9" + + "\x0000\u729c\x0000\u733f\x0000\u73e2\x0000\u7485\x0000\u7528\x0000\u75cb\x0000\u766e\x0000\u7711" + + "\x0000\u77b4\x0000\u7857\x0000\u78fa\x0000\u799d\x0000\u7a40\x0000\u7ae3\x0000\u7b86\x0000\u7c29" + + "\x0000\u7ccc\x0000\u7d6f\x0000\u7e12\x0000\u7eb5\x0000\u7f58\x0000\u7ffb\x0000\u809e\x0000\u8141" + + "\x0000\u81e4\x0000\u8287\x0000\u832a\x0000\u83cd\x0000\u8470\x0000\u8513\x0000\u85b6\x0000\u8659" + + "\x0000\u86fc\x0000\u879f\x0000\u8842\x0000\u88e5\x0000\u8988\x0000\u8a2b\x0000\u8ace\x0000\x00A3" + + "\x0000\u8b71\x0000\u8c14\x0000\u8cb7\x0000\u8d5a\x0000\u8dfd\x0000\u8ea0\x0000\u8f43\x0000\u8fe6" + + "\x0000\u9089\x0000\u912c\x0000\u91cf\x0000\u9272\x0000\u9315\x0000\u93b8\x0000\u945b\x0000\u94fe" + + "\x0000\u95a1\x0000\u9644\x0000\u96e7\x0000\u978a\x0000\u982d\x0000\u98d0\x0000\u9973\x0000\u9a16" + + "\x0000\u9ab9\x0000\u9b5c\x0000\u9bff\x0000\u9ca2\x0000\u9d45\x0000\u9de8\x0000\u9e8b\x0000\u9f2e" + + "\x0000\u9fd1\x0000\ua074\x0000\ua117\x0000\ua1ba\x0000\ua25d\x0000\ua300\x0000\ua3a3\x0000\ua446" + + "\x0000\ua4e9\x0000\ua58c\x0000\ua62f\x0000\ua6d2\x0000\ua775\x0000\ua818\x0000\ua8bb\x0000\ua95e" + + "\x0000\uaa01\x0000\uaaa4\x0000\uab47\x0000\uabea\x0000\uac8d\x0000\uad30\x0000\uadd3\x0000\uae76" + + "\x0000\uaf19\x0000\uafbc\x0000\ub05f\x0000\ub102\x0000\ub1a5\x0000\ub248\x0000\ub2eb\x0000\ub38e" + + "\x0000\ub431\x0000\ub4d4\x0000\ub577\x0000\ub61a\x0000\ub6bd\x0000\ub760\x0000\ub803\x0000\ub8a6" + + "\x0000\ub949\x0000\ub9ec\x0000\uba8f\x0000\ubb32\x0000\ubbd5\x0000\ubc78\x0000\ubd1b\x0000\ubdbe" + + "\x0000\ube61\x0000\ubf04\x0000\ubfa7\x0000\uc04a\x0000\uc0ed\x0000\uc190\x0000\uc233\x0000\uc2d6" + + "\x0000\uc379\x0000\uc41c\x0000\uc4bf\x0000\uc562\x0000\uc605\x0000\uc6a8\x0000\uc74b\x0000\uc7ee" + + "\x0000\uc891\x0000\uc934\x0000\uc9d7\x0000\uca7a\x0000\ucb1d\x0000\ucbc0\x0000\ucc63\x0000\ucd06" + + "\x0000\ucda9\x0000\uce4c\x0000\uceef\x0000\ucf92\x0000\ud035\x0000\ud0d8\x0000\ud17b\x0000\ud21e" + + "\x0000\ud2c1\x0000\ud364\x0000\ud407\x0000\ud4aa\x0000\ud54d\x0000\ud5f0\x0000\ud693\x0000\ud736" + + "\x0000\ud7d9\x0000\ud87c\x0000\ud91f\x0000\ud9c2\x0000\uda65\x0000\udb08\x0000\udbab\x0000\udc4e" + + "\x0000\udcf1\x0000\udd94\x0000\ude37\x0000\udeda\x0000\udf7d\x0000\ue020\x0000\ue0c3\x0000\ue166" + + "\x0000\ue209\x0000\ue2ac\x0000\ue34f\x0000\ue3f2\x0000\ue495\x0000\ue538\x0000\ue5db\x0000\ue67e" + + "\x0000\ue721\x0000\ue7c4\x0000\ue867\x0000\ue90a\x0000\ue9ad\x0000\uea50\x0000\ueaf3\x0000\ueb96" + + "\x0000\uec39\x0000\uecdc\x0000\ued7f\x0000\uee22\x0000\ueec5\x0000\uef68\x0000\uf00b\x0000\uf0ae" + + "\x0000\uf151\x0000\uf1f4\x0000\uf297\x0000\uf33a\x0000\uf3dd\x0000\uf480\x0000\uf523\x0000\uf5c6" + + "\x0000\uf669\x0000\uf70c\x0000\uf7af\x0000\uf852\x0000\uf8f5\x0000\uf998\x0000\ufa3b\x0000\ufade" + + "\x0000\ufb81\x0000\ufc24\x0000\ufcc7\x0000\ufd6a\x0000\ufe0d\x0000\ufeb0\x0000\uff53\x0000\ufff6" + + "\x0001\x0099\x0001\u013c\x0000\u8a2b\x0001\u01df\x0001\u0282\x0001\u0325\x0001\u03c8\x0001\u046b" + + "\x0001\u050e\x0001\u05b1\x0001\u0654\x0001\u06f7\x0001\u079a\x0001\u083d\x0001\u08e0\x0001\u0983" + + "\x0001\u0a26\x0001\u0ac9\x0001\u0b6c\x0001\u0c0f\x0001\u0cb2\x0001\u0d55\x0001\u0df8\x0001\u0e9b" + + "\x0001\u0f3e\x0001\u0fe1\x0001\u1084\x0001\u1127\x0001\u11ca\x0001\u126d\x0001\u1310\x0001\u13b3" + + "\x0001\u1456\x0001\u14f9\x0001\u159c\x0001\u163f\x0001\u16e2\x0001\u1785\x0001\u1828\x0001\u18cb" + + "\x0001\u196e\x0001\u1a11\x0001\u1ab4\x0001\u1b57\x0001\u1bfa\x0001\u1c9d\x0001\u1d40\x0001\u1de3" + + "\x0001\u1e86\x0001\u1f29\x0001\u1fcc\x0001\u206f\x0001\u2112\x0001\u21b5\x0001\u2258\x0001\u22fb" + + "\x0001\u239e\x0001\u2441\x0001\u24e4\x0001\u2587\x0001\u262a\x0001\u26cd\x0001\u2770\x0001\u2813" + + "\x0001\u28b6\x0001\u2959\x0001\u29fc\x0001\u2a9f\x0001\u2b42\x0001\u2be5\x0001\u2c88\x0001\u2d2b" + + "\x0001\u2dce\x0001\u2e71\x0001\u2f14\x0001\u2fb7\x0001\u305a\x0001\u30fd\x0001\u31a0\x0001\u3243" + + "\x0001\u32e6\x0001\u3389\x0001\u342c\x0001\u34cf\x0001\u3572\x0001\u3615\x0001\u36b8\x0001\u375b" + + "\x0001\u37fe\x0001\u38a1\x0001\u3944\x0001\u39e7\x0001\u3a8a\x0001\u3b2d\x0001\u3bd0\x0001\u3c73" + + "\x0001\u3d16\x0001\u3db9\x0001\u3e5c\x0001\u3eff\x0001\u3fa2\x0001\u4045\x0001\u40e8\x0001\u418b" + + "\x0001\u422e\x0001\u42d1\x0001\u4374\x0001\u4417\x0001\u44ba\x0001\u455d\x0001\u4600\x0001\u46a3" + + "\x0001\u4746\x0001\u47e9\x0001\u488c\x0001\u492f\x0001\u49d2\x0001\u4a75\x0000\u16ec\x0001\u4b18" + + "\x0001\u4bbb\x0001\u4c5e\x0001\u4d01\x0001\u4da4\x0001\u4e47\x0001\u4eea\x0001\u4f8d\x0001\u5030" + + "\x0001\u50d3\x0001\u5176\x0001\u5219\x0001\u52bc\x0001\u535f\x0001\u5402\x0001\u54a5\x0001\u5548" + + "\x0001\u55eb\x0001\u568e\x0001\u5731\x0001\u57d4\x0001\u5877\x0001\u591a\x0001\u59bd\x0001\u5a60" + + "\x0001\u5b03\x0001\u5ba6\x0001\u5c49\x0001\u5cec\x0001\u5d8f\x0001\u5e32\x0001\u5ed5\x0001\u5f78" + + "\x0001\u601b\x0001\u60be\x0001\u6161\x0001\u6204\x0001\u62a7\x0001\u634a\x0001\u63ed\x0001\u6490" + + "\x0001\u6533\x0001\u65d6\x0001\u6679\x0001\u671c\x0001\u67bf\x0001\u6862\x0001\u6905\x0001\u69a8" + + "\x0001\u6a4b\x0001\u6aee\x0001\u6b91\x0001\u6c34\x0001\u6cd7\x0001\u6d7a\x0001\u6e1d\x0001\u6ec0" + + "\x0001\u6f63\x0001\u7006\x0001\u70a9\x0001\u714c\x0001\u71ef\x0001\u7292\x0001\u7335\x0001\u73d8" + + "\x0001\u747b\x0001\u751e\x0001\u75c1\x0001\u7664\x0001\u7707\x0001\u77aa\x0001\u784d\x0001\u78f0" + + "\x0001\u7993\x0001\u7a36\x0001\u7ad9\x0001\u7b7c\x0001\u7c1f\x0001\u7cc2\x0001\u7d65\x0001\u7e08" + + "\x0001\u7eab\x0001\u7f4e\x0001\u7ff1\x0001\u8094\x0001\u8137\x0001\u81da\x0001\u827d\x0001\u8320" + + "\x0001\u83c3\x0001\u8466\x0001\u8509\x0001\u85ac\x0001\u864f\x0001\u86f2\x0001\u8795\x0001\u8838" + + "\x0001\u88db\x0001\u897e\x0001\u8a21\x0001\u8ac4\x0001\u8b67\x0001\u8c0a\x0001\u8cad\x0001\u8d50" + + "\x0001\u8df3\x0001\u8e96\x0001\u8f39\x0001\u8fdc\x0001\u907f\x0001\u9122\x0001\u91c5\x0001\u9268" + + "\x0001\u930b\x0001\u93ae\x0001\u9451\x0001\u94f4\x0001\u9597\x0001\u963a\x0001\u96dd\x0001\u9780" + + "\x0001\u9823\x0001\u98c6\x0001\u9969\x0001\u9a0c\x0001\u9aaf\x0001\u9b52\x0001\u9bf5\x0001\u9c98" + + "\x0001\u9d3b\x0001\u9dde\x0001\u9e81\x0001\u9f24\x0001\u9fc7\x0001\ua06a\x0001\ua10d\x0001\ua1b0" + + "\x0001\ua253\x0001\ua2f6\x0001\ua399\x0001\ua43c\x0001\ua4df\x0001\ua582\x0001\ua625\x0001\ua6c8" + + "\x0001\ua76b\x0001\ua80e\x0001\ua8b1\x0001\ua954\x0001\ua9f7\x0001\uaa9a\x0001\uab3d\x0001\uabe0" + + "\x0001\uac83\x0001\uad26\x0001\uadc9\x0001\uae6c\x0001\uaf0f\x0001\uafb2\x0001\ub055\x0001\ub0f8" + + "\x0001\ub19b\x0001\ub23e\x0001\ub2e1\x0001\ub384\x0001\ub427\x0001\ub4ca\x0001\ub56d\x0001\ub610" + + "\x0001\ub6b3\x0001\ub756\x0001\ub7f9\x0001\ub89c\x0001\ub93f\x0001\ub9e2\x0001\uba85\x0001\ubb28" + + "\x0001\ubbcb\x0001\ubc6e\x0001\ubd11\x0001\ubdb4\x0001\ube57\x0001\ubefa\x0001\ubf9d\x0001\uc040" + + "\x0001\uc0e3\x0001\uc186\x0001\uc229\x0001\uc2cc\x0001\uc36f\x0001\uc412\x0001\uc4b5\x0001\uc558" + + "\x0001\uc5fb\x0001\uc69e\x0001\uc741\x0001\uc7e4\x0001\uc887\x0001\uc92a\x0001\uc9cd\x0001\uca70" + + "\x0001\ucb13\x0001\ucbb6\x0001\ucc59\x0001\uccfc\x0001\ucd9f\x0001\uce42\x0001\ucee5\x0001\ucf88" + + "\x0001\ud02b\x0001\ud0ce\x0001\ud171\x0001\ud214\x0001\ud2b7\x0001\ud35a\x0001\ud3fd\x0001\ud4a0" + + "\x0001\ud543\x0001\ud5e6\x0001\ud689\x0001\ud72c\x0001\ud7cf\x0001\ud872\x0001\ud915\x0001\ud9b8" + + "\x0001\uda5b\x0001\udafe\x0001\udba1\x0001\udc44\x0001\udce7\x0001\udd8a\x0001\ude2d\x0001\uded0" + + "\x0001\udf73\x0001\ue016\x0001\ue0b9\x0001\ue15c\x0001\ue1ff\x0001\ue2a2\x0001\ue345\x0001\ue3e8" + + "\x0001\ue48b\x0001\ue52e\x0001\ue5d1\x0001\ue674\x0001\ue717\x0001\ue7ba\x0001\ue85d\x0001\ue900" + + "\x0001\ue9a3\x0001\uea46\x0001\ueae9\x0001\ueb8c\x0001\uec2f\x0001\uecd2\x0001\ued75\x0001\uee18" + + "\x0001\ueebb\x0001\uef5e\x0001\uf001\x0001\uf0a4\x0001\uf147\x0001\uf1ea\x0001\uf28d\x0001\uf330" + + "\x0001\uf3d3\x0001\uf476\x0001\uf519\x0001\uf5bc\x0001\uf65f\x0001\uf702\x0001\uf7a5\x0001\uf848" + + "\x0001\uf8eb\x0001\uf98e\x0001\ufa31\x0001\ufad4\x0001\ufb77\x0001\ufc1a\x0001\ufcbd\x0001\ufd60" + + "\x0001\ufe03\x0001\ufea6\x0001\uff49\x0001\uffec\x0002\x008F\x0002\u0132\x0002\u01d5\x0002\u0278" + + "\x0002\u031b\x0002\u03be\x0002\u0461\x0002\u0504\x0002\u05a7\x0002\u064a\x0002\u06ed\x0002\u0790" + + "\x0002\u0833\x0002\u08d6\x0002\u0979\x0002\u0a1c\x0002\u0abf\x0002\u0b62\x0002\u0c05\x0002\u0ca8" + + "\x0002\u0d4b\x0002\u0dee\x0002\u0e91\x0002\u0f34\x0002\u0fd7\x0002\u107a\x0002\u111d\x0002\u11c0" + + "\x0002\u1263\x0002\u1306\x0002\u13a9\x0002\u144c\x0002\u14ef\x0002\u1592\x0002\u1635\x0002\u16d8" + + "\x0002\u177b\x0002\u181e\x0002\u18c1\x0002\u1964\x0002\u1a07\x0002\u1aaa\x0002\u1b4d\x0002\u1bf0" + + "\x0002\u1c93\x0002\u1d36\x0002\u1dd9\x0002\u1e7c\x0002\u1f1f\x0002\u1fc2\x0002\u2065\x0002\u2108" + + "\x0002\u21ab\x0002\u224e\x0002\u22f1\x0002\u2394\x0002\u2437\x0002\u24da\x0002\u257d\x0002\u2620" + + "\x0002\u26c3\x0002\u2766\x0002\u2809\x0002\u28ac\x0002\u294f\x0002\u29f2\x0002\u2a95\x0002\u2b38" + + "\x0002\u2bdb\x0002\u2c7e\x0002\u2d21\x0002\u2dc4\x0002\u2e67\x0002\u2f0a\x0002\u2fad\x0002\u3050" + + "\x0002\u30f3\x0002\u3196\x0002\u3239\x0002\u32dc\x0002\u337f\x0002\u3422\x0002\u34c5\x0002\u3568" + + "\x0002\u360b\x0002\u36ae\x0002\u3751\x0002\u37f4\x0002\u3897\x0002\u393a\x0002\u39dd\x0002\u3a80" + + "\x0002\u3b23\x0002\u3bc6\x0002\u3c69\x0002\u3d0c\x0002\u3daf\x0002\u3e52\x0002\u3ef5\x0002\u3f98" + + "\x0002\u403b\x0002\u40de\x0002\u4181\x0002\u4224\x0002\u42c7\x0002\u436a\x0002\u440d\x0002\u44b0" + + "\x0002\u4553\x0002\u45f6\x0002\u4699\x0002\u473c\x0002\u47df\x0002\u4882\x0002\u4925\x0002\u49c8" + + "\x0002\u4a6b\x0002\u4b0e\x0002\u4bb1\x0002\u4c54\x0002\u4cf7\x0002\u4d9a\x0002\u4e3d\x0002\u4ee0" + + "\x0002\u4f83\x0002\u5026\x0002\u50c9\x0002\u516c\x0002\u520f\x0002\u52b2\x0002\u5355\x0002\u53f8" + + "\x0002\u549b\x0002\u553e\x0002\u55e1\x0002\u5684\x0002\u5727\x0002\u57ca\x0002\u586d\x0002\u5910" + + "\x0002\u59b3\x0002\u5a56\x0002\u5af9\x0002\u5b9c\x0002\u5c3f\x0002\u5ce2\x0002\u5d85\x0002\u5e28" + + "\x0002\u5ecb\x0002\u5f6e\x0002\u6011\x0002\u60b4\x0002\u6157\x0002\u61fa\x0002\u629d\x0002\u6340" + + "\x0002\u63e3\x0002\u6486\x0002\u6529\x0002\u65cc\x0002\u666f\x0002\u6712\x0002\u67b5\x0002\u6858" + + "\x0002\u68fb\x0002\u699e\x0002\u6a41\x0002\u6ae4\x0002\u6b87\x0002\u6c2a\x0002\u6ccd\x0002\u6d70" + + "\x0002\u6e13\x0002\u6eb6\x0002\u6f59\x0002\u6ffc\x0002\u709f\x0002\u7142\x0002\u71e5\x0002\u7288" + + "\x0002\u732b\x0002\u73ce\x0002\u7471\x0002\u7514\x0002\u75b7\x0002\u765a\x0002\u76fd\x0002\u77a0" + + "\x0002\u7843\x0002\u78e6\x0002\u7989\x0002\u7a2c\x0002\u7acf\x0002\u7b72\x0002\u7c15\x0002\u7cb8" + + "\x0002\u7d5b\x0002\u7dfe\x0002\u7ea1\x0002\u7f44\x0002\u7fe7\x0002\u808a\x0002\u812d\x0002\u81d0" + + "\x0002\u8273\x0002\u8316\x0002\u83b9\x0002\u845c\x0002\u84ff\x0002\u85a2\x0002\u8645\x0002\u86e8" + + "\x0002\u878b\x0002\u882e\x0002\u88d1\x0002\u8974\x0002\u8a17\x0002\u8aba\x0002\u8b5d\x0002\u8c00" + + "\x0002\u8ca3\x0002\u8d46\x0002\u8de9\x0002\u8e8c\x0002\u8f2f\x0002\u8fd2\x0002\u9075\x0002\u9118" + + "\x0002\u91bb\x0002\u925e\x0002\u9301\x0002\u93a4\x0002\u9447\x0002\u94ea\x0002\u958d\x0002\u9630" + + "\x0002\u96d3\x0002\u9776\x0002\u9819\x0002\u98bc\x0002\u995f\x0002\u9a02\x0002\u9aa5\x0002\u9b48" + + "\x0002\u9beb\x0002\u9c8e\x0002\u9d31\x0002\u9dd4\x0002\u9e77\x0002\u9f1a\x0002\u9fbd\x0002\ua060" + + "\x0002\ua103\x0002\ua1a6\x0002\ua249\x0002\ua2ec\x0002\ua38f\x0002\ua432\x0002\ua4d5\x0002\ua578" + + "\x0002\ua61b\x0002\ua6be\x0002\ua761\x0002\ua804\x0002\ua8a7\x0002\ua94a\x0002\ua9ed\x0002\uaa90" + + "\x0002\uab33\x0002\uabd6\x0002\uac79\x0002\uad1c\x0002\uadbf\x0002\uae62\x0002\uaf05\x0002\uafa8" + + "\x0002\ub04b\x0002\ub0ee\x0002\ub191\x0002\ub234\x0002\ub2d7\x0002\ub37a\x0002\ub41d\x0002\ub4c0" + + "\x0002\ub563\x0002\ub606\x0002\ub6a9\x0002\ub74c\x0002\ub7ef\x0002\ub892\x0002\ub935\x0002\ub9d8" + + "\x0002\uba7b\x0002\ubb1e\x0002\ubbc1\x0002\ubc64\x0002\ubd07\x0002\ubdaa\x0002\ube4d\x0002\ubef0" + + "\x0002\ubf93\x0002\uc036\x0002\uc0d9\x0002\uc17c\x0002\uc21f\x0002\uc2c2\x0002\uc365\x0002\uc408" + + "\x0002\uc4ab\x0002\uc54e\x0002\uc5f1\x0002\uc694\x0002\uc737\x0002\uc7da\x0002\uc87d\x0002\uc920" + + "\x0002\uc9c3\x0002\uca66\x0002\ucb09\x0002\ucbac\x0002\ucc4f\x0002\uccf2\x0002\ucd95\x0002\uce38" + + "\x0002\ucedb\x0002\ucf7e\x0002\ud021\x0002\ud0c4\x0002\ud167\x0002\ud20a\x0002\ud2ad\x0002\ud350" + + "\x0002\ud3f3\x0002\ud496\x0002\ud539\x0002\ud5dc\x0002\ud67f\x0002\ud722\x0002\ud7c5\x0002\ud868" + + "\x0002\ud90b\x0002\ud9ae\x0002\uda51\x0002\udaf4\x0002\udb97\x0002\udc3a\x0002\udcdd\x0002\udd80" + + "\x0002\ude23\x0002\udec6\x0002\udf69\x0002\ue00c\x0002\ue0af\x0002\ue152\x0002\ue1f5\x0002\ue298" + + "\x0002\ue33b\x0002\ue3de\x0002\ue481\x0002\ue524\x0002\ue5c7\x0002\ue66a\x0002\ue70d\x0002\ue7b0" + + "\x0002\ue853\x0002\ue8f6\x0002\ue999\x0002\uea3c\x0002\ueadf\x0002\ueb82\x0002\uec25\x0002\uecc8" + + "\x0002\ued6b\x0002\uee0e\x0002\ueeb1\x0002\uef54\x0002\ueff7\x0002\uf09a\x0002\uf13d\x0002\uf1e0" + + "\x0002\uf283\x0002\uf326\x0002\uf3c9\x0002\uf46c\x0002\uf50f\x0002\uf5b2\x0002\uf655\x0002\uf6f8" + + "\x0002\uf79b\x0002\uf83e\x0002\uf8e1\x0002\uf984\x0002\ufa27\x0002\ufaca\x0002\ufb6d\x0002\ufc10" + + "\x0002\ufcb3\x0002\ufd56\x0002\ufdf9\x0002\ufe9c\x0002\uff3f\x0002\uffe2\x0003\x0085\x0003\u0128" + + "\x0003\u01cb\x0003\u026e\x0003\u0311\x0003\u03b4\x0003\u0457\x0003\u04fa\x0003\u059d\x0003\u0640" + + "\x0003\u06e3\x0003\u0786\x0003\u0829\x0003\u08cc\x0003\u096f\x0003\u0a12\x0003\u0ab5\x0003\u0b58" + + "\x0003\u0bfb\x0003\u0c9e\x0003\u0d41\x0003\u0de4\x0003\u0e87\x0003\u0f2a\x0003\u0fcd\x0003\u1070" + + "\x0003\u1113\x0003\u11b6\x0003\u1259\x0003\u12fc\x0003\u139f\x0003\u1442\x0003\u14e5\x0003\u1588" + + "\x0003\u162b\x0003\u16ce\x0003\u1771\x0003\u1814\x0003\u18b7\x0003\u195a\x0003\u19fd\x0003\u1aa0" + + "\x0003\u1b43\x0003\u1be6\x0003\u1c89\x0003\u1d2c\x0003\u1dcf\x0003\u1e72\x0003\u1f15\x0003\u1fb8" + + "\x0003\u205b\x0003\u20fe\x0003\u21a1\x0003\u2244\x0003\u22e7\x0003\u238a\x0003\u242d\x0003\u24d0" + + "\x0003\u2573\x0003\u2616\x0003\u26b9\x0003\u275c\x0003\u27ff\x0003\u28a2\x0003\u2945\x0003\u29e8" + + "\x0003\u2a8b\x0003\u2b2e\x0003\u2bd1\x0003\u2c74\x0003\u2d17\x0003\u2dba\x0003\u2e5d\x0003\u2f00" + + "\x0003\u2fa3\x0003\u3046\x0003\u30e9\x0003\u318c\x0003\u322f\x0003\u32d2\x0003\u3375\x0003\u3418" + + "\x0003\u34bb\x0003\u355e\x0003\u3601\x0003\u36a4\x0003\u3747\x0003\u37ea\x0003\u388d\x0003\u3930" + + "\x0003\u39d3\x0003\u3a76\x0003\u3b19\x0003\u3bbc\x0003\u3c5f\x0003\u3d02\x0003\u3da5\x0003\u3e48" + + "\x0003\u3eeb\x0003\u3f8e\x0003\u4031\x0003\u40d4\x0003\u4177\x0003\u421a\x0003\u42bd\x0003\u4360" + + "\x0003\u4403\x0003\u44a6\x0003\u4549\x0003\u45ec\x0003\u468f\x0003\u4732\x0003\u47d5\x0003\u4878" + + "\x0003\u491b\x0003\u49be\x0003\u4a61\x0003\u4b04\x0003\u4ba7\x0003\u4c4a\x0003\u4ced\x0003\u4d90" + + "\x0003\u4e33\x0003\u4ed6\x0003\u4f79\x0003\u501c\x0003\u50bf\x0003\u5162\x0003\u5205\x0003\u52a8" + + "\x0003\u534b\x0003\u53ee\x0003\u5491\x0003\u5534\x0003\u55d7\x0003\u567a\x0003\u571d\x0003\u57c0" + + "\x0003\u5863\x0003\u5906\x0003\u59a9\x0003\u5a4c\x0003\u5aef\x0003\u5b92\x0003\u5c35\x0003\u5cd8" + + "\x0003\u5d7b\x0003\u5e1e\x0003\u5ec1\x0003\u5f64\x0003\u6007\x0003\u60aa\x0003\u614d\x0003\u61f0" + + "\x0003\u6293\x0003\u6336\x0003\u63d9\x0003\u647c"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[1380]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /** + * The transition table of the DFA + */ + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0001\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + + "\x0001\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0003\x0002\x0001\x0009\x0005\x0002\x0001\x000A" + + "\x0003\x0002\x0001\x000B\x0009\x0002\x0001\x000C\x0002\x0002\x0001\x000D\x0023\x0002\x0001\x000E" + + "\x0001\x0002\x0001\x000F\x0003\x0002\x0001\x0010\x0001\x0011\x0001\x0002\x0001\x0012\x0001\x0002" + + "\x0001\x0013\x0002\x0002\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0017" + + "\x0003\x0002\x0001\x0018\x0002\x0019\x0001\x001A\x0001\x001B\x0001\x001C\x0001\x001D\x0006\x001E" + + "\x0001\x001F\x000E\x001E\x0001\x0020\x0004\x001E\x0001\x001D\x0001\x0021\x0002\x0022\x0001\x0021" + + "\x0005\x0022\x0001\x0023\x0001\x0002\x0001\x001D\x0001\x0024\x0001\x001D\x0001\x0002\x0002\x001D" + + "\x0001\x0002\x0003\x001D\x0001\x0025\x0002\x0002\x0001\x001D\x0001\x0026\x0003\x0002\x0002\x001D" + + "\x0001\x0002\x00A5\x0000\x0001\x0015\x0009\x0000\x0001\x0015\x0010\x0000\x0001\x0015\x0012\x0000" + + "\x0001\x0015\x0008\x0000\x0003\x0015\x000F\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0009\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x000E\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0011\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x004B\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x000B\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0004\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x000D\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0004\x0015\x0001\x0000" + + "\x0003\x0015\x0002\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000\x0002\x0015\x0002\x0000" + + "\x0003\x0015\x0001\x0000\x0009\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x000E\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x004B\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0003\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0002\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0055\x0000" + + "\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x000C\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x000A\x0000" + + "\x0001\x0016\x0001\x0000\x0002\x0015\x000A\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0016\x0007\x0000\x0002\x0015\x0002\x0000\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000" + + "\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000\x0005\x0015\x0001\x0016" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x004B\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0016" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0003\x0000\x0002\x0015" + + "\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x004D\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x000F\x0000\x0001\x0015\x0006\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x000D\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0007\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0082\x0000\x0001\x001B" + + "\x0011\x0000\x0001\x0017\x0059\x0000\x0001\x001A\x0003\x0000\x0001\x001A\x0003\x0000\x0001\x001A" + + "\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0003\x001A" + + "\x0003\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A" + + "\x0003\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0003\x0000\x0002\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0005\x001A\x0002\x0000\x0001\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0004\x0000\x0001\x001A" + + "\x0004\x0000\x0001\x001A\x004B\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0005\x001A" + + "\x0001\x0000\x0003\x001A\x0001\x0000\x0009\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x000E\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A" + + "\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A" + + "\x004B\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0003\x0000\x0001\x001A" + + "\x0001\x0000\x0003\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0003\x001A" + + "\x0001\x0000\x0009\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x000E\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x004B\x0000\x0001\x001A" + + "\x0009\x0000\x0001\x001A\x0010\x0000\x0001\x001A\x001B\x0000\x0001\x001A\x0011\x0000\x0001\x001A" + + "\x0008\x0000\x0001\x001A\x0050\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0005\x001A" + + "\x0001\x0000\x0003\x001A\x0001\x0000\x0006\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0008\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x00A2\x0000\x0001\x001B\x004A\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0035\x001A\x0015\x0001\x0000\x000A\x0034" + + "\x0001\x0035\x0001\x0000\x0001\x0036\x0003\x0000\x0001\x0035\x0010\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000" + + "\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000" + + "\x0001\x0015\x0001\x003E\x001A\x0015\x0001\x0000\x000A\x0016\x0002\x0000\x0001\x003F\x0002\x0000" + + "\x0002\x003E\x0006\x0000\x0001\x003E\x0013\x0000\x0001\x0040\x000D\x0000\x0001\x0041\x000C\x0000" + + "\x0001\x0042\x000E\x0000\x0001\x0043\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0010\x0000" + + "\x0001\x0017\x0001\x0000\x0001\x0017\x0003\x0000\x0001\x0036\x0001\x0000\x0001\x0017\x002B\x0000" + + "\x0001\x0036\x0014\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0046\x0003\x0000\x0001\x0038\x0005\x0000" + + "\x0001\x0039\x0003\x0000\x0001\x0047\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0048\x000E\x0000" + + "\x0001\x0049\x0002\x0000\x0001\x004A\x0011\x0000\x0001\x004B\x000F\x0000\x0001\x0015\x0001\x004C" + + "\x0001\x0016\x0001\x004D\x0003\x0000\x0001\x004C\x0001\x0000\x0001\x004C\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x001A\x0015\x0001\x0000\x000A\x0016\x0002\x0000\x0001\x004C\x0075\x0000\x0002\x0019" + + "\x004A\x0000\x0001\x004E\x000D\x0000\x0001\x004F\x000C\x0000\x0001\x0050\x000E\x0000\x0001\x0051" + + "\x0002\x0000\x0001\x0052\x0022\x0000\x0001\x001A\x0007\x0000\x0001\x001A\x004A\x0000\x0001\x0053" + + "\x000D\x0000\x0001\x0054\x000C\x0000\x0001\x0055\x000E\x0000\x0001\x0056\x0002\x0000\x0001\x0057" + + "\x0022\x0000\x0001\x001B\x0007\x0000\x0001\x001B\x0040\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0058" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x0059\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x005A\x000E\x0000\x0001\x005B\x0002\x0000\x0001\x005C\x0021\x0000\x0001\x0015" + + "\x0001\x001C\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x001C\x0002\x0000\x0001\x001C\x0001\x0035\x001A\x0015\x0001\x0000\x000A\x0034\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0003\x0000\x0001\x0035\x0076\x0000\x0001\x005D\x0025\x005E\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060" + + "\x001A\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0008\x001E" + + "\x0001\x0065\x0006\x001E\x0001\x0066\x000A\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0060\x000F\x001E\x0001\x0067\x000A\x001E\x0001\x0061\x000A\x0062\x0001\x0035" + + "\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037" + + "\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015" + + "\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015" + + "\x0001\x0068\x001A\x001E\x0001\x0061\x000A\x0022\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E" + + "\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000" + + "\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E" + + "\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x0068\x001A\x001E\x0001\x0061" + + "\x000A\x006B\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F" + + "\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0015\x0001\x0068\x001A\x001E\x0001\x0061\x0001\x0022\x0001\x006C\x0001\x006B" + + "\x0002\x0022\x0002\x006B\x0001\x0022\x0001\x006B\x0001\x0022\x0001\x0000\x0001\x005E\x0001\x0069" + + "\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0046\x0003\x0000\x0001\x0038" + + "\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x0047\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0048" + + "\x000E\x0000\x0001\x0049\x0002\x0000\x0001\x004A\x0011\x0000\x0001\x004B\x000F\x0000\x0001\x0015" + + "\x0001\x004C\x0001\x0016\x0001\x004D\x0003\x0000\x0001\x004C\x0001\x0000\x0001\x004C\x0002\x0000" + + "\x0001\x0015\x0001\x005D\x001A\x006D\x0001\x005E\x000A\x006E\x0001\x0000\x0001\x005E\x0001\x006F" + + "\x0001\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0069\x0000\x0004\x0070\x0002\x0000\x0001\x0070\x000D\x0000\x0001\x0070\x0006\x0000" + + "\x000A\x0070\x0001\x0071\x007C\x0000\x0035\x0072\x0001\x0073\x0001\x0072\x0001\x0074\x0001\x0000" + + "\x0002\x0072\x0003\x0000\x0001\x0015\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0001\x0000" + + "\x0002\x0015\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0004\x0000" + + "\x0005\x0015\x0008\x0000\x0001\x0034\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0050\x0000\x0001\x0015\x0001\x0000\x0001\x0034\x0007\x0000\x0002\x0015\x0002\x0000" + + "\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0004\x0015\x0001\x0000\x0005\x0015\x0001\x0034\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x004B\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015" + + "\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0034\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0002\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0015" + + "\x0006\x0000\x0001\x0015\x006A\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0007\x0000\x0001\x0015\x0004\x0000\x0002\x0015" + + "\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0004\x0015" + + "\x0002\x0000\x0001\x0015\x005D\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0075\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x0076\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0077" + + "\x000E\x0000\x0001\x0078\x0002\x0000\x0001\x0079\x0021\x0000\x0001\x0015\x0002\x0034\x0002\x0000" + + "\x0002\x007A\x0001\x0036\x0001\x0000\x0001\x0034\x0002\x0000\x0001\x0015\x0001\x007A\x001A\x0015" + + "\x0001\x0000\x000A\x0034\x0002\x0000\x0001\x0036\x0002\x0000\x0002\x007A\x0006\x0000\x0001\x007A" + + "\x0009\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x007B\x0003\x0000\x0001\x007C\x0005\x0000\x0001\x007D" + + "\x0003\x0000\x0001\x007E\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x007F\x000E\x0000\x0001\x0080" + + "\x0002\x0000\x0001\x0081\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x001A\x0015\x0022\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0082\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x0083\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0084\x000E\x0000\x0001\x0085\x0002\x0000\x0001\x0086\x0011\x0000\x0001\x004B\x000F\x0000" + + "\x0001\x0015\x0001\x0036\x0001\x0034\x0001\x004D\x0003\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0001\x0000\x000A\x0034\x0002\x0000\x0001\x0036" + + "\x0015\x0000\x0001\x0016\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0016\x0001\x0000\x0002\x0016" + + "\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0016\x0004\x0000\x0001\x0016" + + "\x0002\x0015\x0002\x0016\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0016" + + "\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015" + + "\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0016\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0016\x0005\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0016\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0016\x0006\x0000\x0001\x0016\x006A\x0000\x0001\x0016" + + "\x0003\x0000\x0001\x0016\x0002\x0000\x0001\x0016\x0003\x0000\x0001\x0016\x0005\x0000\x0001\x0016" + + "\x0007\x0000\x0001\x0016\x0004\x0000\x0002\x0016\x0003\x0000\x0002\x0016\x0001\x0000\x0001\x0016" + + "\x0004\x0000\x0001\x0016\x0001\x0000\x0001\x0016\x0002\x0000\x0002\x0016\x0001\x0000\x0003\x0016" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0004\x0016\x0002\x0000\x0001\x0016\x0067\x0000\x0001\x0087" + + "\x0003\x0000\x0001\x0088\x0005\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x000C\x0000\x0001\x008B" + + "\x000E\x0000\x0001\x008C\x0002\x0000\x0001\x008D\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000" + + "\x0001\x003E\x001F\x0000\x000A\x0016\x0017\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x008E\x0003\x0000" + + "\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x008F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0090\x000E\x0000\x0001\x0091\x0002\x0000\x0001\x0092\x0011\x0000\x0001\x004B\x000F\x0000" + + "\x0001\x0015\x0001\x003F\x0001\x0016\x0001\x004D\x0003\x0000\x0001\x003F\x0001\x0000\x0001\x003F" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0001\x0000\x000A\x0016\x0002\x0000\x0001\x003F" + + "\x0015\x0000\x0001\x0017\x001F\x0000\x0001\x0017\x0001\x0000\x0002\x0017\x000E\x0000\x0001\x0017" + + "\x0004\x0000\x0001\x0017\x0002\x0000\x0002\x0017\x000D\x0000\x0001\x0017\x0096\x0000\x0001\x0017" + + "\x00A7\x0000\x0002\x0017\x0009\x0000\x0001\x0017\x0089\x0000\x0002\x0017\x0006\x0000\x0001\x0017" + + "\x006A\x0000\x0001\x0017\x0003\x0000\x0001\x0017\x0002\x0000\x0001\x0017\x0003\x0000\x0001\x0017" + + "\x0005\x0000\x0001\x0017\x0007\x0000\x0001\x0017\x0004\x0000\x0002\x0017\x0003\x0000\x0002\x0017" + + "\x0001\x0000\x0001\x0017\x0004\x0000\x0001\x0017\x0001\x0000\x0001\x0017\x0002\x0000\x0002\x0017" + + "\x0001\x0000\x0003\x0017\x0001\x0000\x0001\x0017\x0002\x0000\x0004\x0017\x0002\x0000\x0001\x0017" + + "\x00A7\x0000\x0001\x0017\x0059\x0000\x0001\x004C\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x004C" + + "\x0001\x0000\x0002\x004C\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x004C" + + "\x0004\x0000\x0001\x004C\x0002\x0015\x0002\x004C\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x004C\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x004C" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0002\x004C\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x004C\x0004\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x004C\x0006\x0000\x0001\x004C" + + "\x006A\x0000\x0001\x004C\x0003\x0000\x0001\x004C\x0002\x0000\x0001\x004C\x0003\x0000\x0001\x004C" + + "\x0005\x0000\x0001\x004C\x0007\x0000\x0001\x004C\x0004\x0000\x0002\x004C\x0003\x0000\x0002\x004C" + + "\x0001\x0000\x0001\x004C\x0004\x0000\x0001\x004C\x0001\x0000\x0001\x004C\x0002\x0000\x0002\x004C" + + "\x0001\x0000\x0003\x004C\x0001\x0000\x0001\x004C\x0002\x0000\x0004\x004C\x0002\x0000\x0001\x004C" + + "\x00A7\x0000\x0001\x004D\x0062\x0000\x0001\x0093\x000D\x0000\x0001\x0094\x000C\x0000\x0001\x0095" + + "\x000E\x0000\x0001\x0096\x0002\x0000\x0001\x0097\x0011\x0000\x0001\x004B\x0010\x0000\x0001\x004D" + + "\x0001\x0000\x0001\x004D\x0003\x0000\x0001\x0036\x0001\x0000\x0001\x004D\x002B\x0000\x0001\x0036" + + "\x0015\x0000\x0001\x001A\x001F\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x000E\x0000\x0001\x001A" + + "\x0004\x0000\x0001\x001A\x0002\x0000\x0002\x001A\x000D\x0000\x0001\x001A\x0096\x0000\x0001\x001A" + + "\x00A7\x0000\x0002\x001A\x0009\x0000\x0001\x001A\x0089\x0000\x0002\x001A\x0006\x0000\x0001\x001A" + + "\x006A\x0000\x0001\x001A\x0003\x0000\x0001\x001A\x0002\x0000\x0001\x001A\x0003\x0000\x0001\x001A" + + "\x0005\x0000\x0001\x001A\x0007\x0000\x0001\x001A\x0004\x0000\x0002\x001A\x0003\x0000\x0002\x001A" + + "\x0001\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0002\x0000\x0002\x001A" + + "\x0001\x0000\x0003\x001A\x0001\x0000\x0001\x001A\x0002\x0000\x0004\x001A\x0002\x0000\x0001\x001A" + + "\x005E\x0000\x0001\x001B\x001F\x0000\x0001\x001B\x0001\x0000\x0002\x001B\x000E\x0000\x0001\x001B" + + "\x0004\x0000\x0001\x001B\x0002\x0000\x0002\x001B\x000D\x0000\x0001\x001B\x0096\x0000\x0001\x001B" + + "\x00A7\x0000\x0002\x001B\x0009\x0000\x0001\x001B\x0089\x0000\x0002\x001B\x0006\x0000\x0001\x001B" + + "\x006A\x0000\x0001\x001B\x0003\x0000\x0001\x001B\x0002\x0000\x0001\x001B\x0003\x0000\x0001\x001B" + + "\x0005\x0000\x0001\x001B\x0007\x0000\x0001\x001B\x0004\x0000\x0002\x001B\x0003\x0000\x0002\x001B" + + "\x0001\x0000\x0001\x001B\x0004\x0000\x0001\x001B\x0001\x0000\x0001\x001B\x0002\x0000\x0002\x001B" + + "\x0001\x0000\x0003\x001B\x0001\x0000\x0001\x001B\x0002\x0000\x0004\x001B\x0002\x0000\x0001\x001B" + + "\x005E\x0000\x0001\x001C\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x001C\x0001\x0000\x0002\x001C" + + "\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x001C\x0004\x0000\x0001\x001C" + + "\x0002\x0015\x0002\x001C\x0008\x0000\x0001\x0034\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x001C" + + "\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015" + + "\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x001C\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x001C\x0005\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x001C\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x001C\x0006\x0000\x0001\x001C\x006A\x0000\x0001\x001C" + + "\x0003\x0000\x0001\x001C\x0002\x0000\x0001\x001C\x0003\x0000\x0001\x001C\x0005\x0000\x0001\x001C" + + "\x0007\x0000\x0001\x001C\x0004\x0000\x0002\x001C\x0003\x0000\x0002\x001C\x0001\x0000\x0001\x001C" + + "\x0004\x0000\x0001\x001C\x0001\x0000\x0001\x001C\x0002\x0000\x0002\x001C\x0001\x0000\x0003\x001C" + + "\x0001\x0000\x0001\x001C\x0002\x0000\x0004\x001C\x0002\x0000\x0001\x001C\x00C3\x0000\x0001\x005D" + + "\x0025\x005E\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E\x0069\x0000\x001A\x0098\x0001\x0000\x000A\x0098" + + "\x000B\x0000\x0001\x0099\x000B\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x007B\x0003\x0000\x0001\x007C" + + "\x0005\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x007F" + + "\x000E\x0000\x0001\x0080\x0002\x0000\x0001\x0081\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000" + + "\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x005D\x0001\x009A\x0001\x009B\x0001\x009C\x0001\x009D" + + "\x0001\x009E\x0001\x009F\x0001\x00A0\x0001\x00A1\x0001\x00A2\x0001\x00A3\x0001\x00A4\x0001\x00A5" + + "\x0001\x00A6\x0001\x00A7\x0001\x00A8\x0001\x00A9\x0001\x00AA\x0001\x00AB\x0001\x00AC\x0001\x00AD" + + "\x0001\x00AE\x0001\x00AF\x0001\x00B0\x0001\x00B1\x0001\x00B2\x0001\x00B3\x0001\x005E\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0001\x0072\x0003\x0000\x0002\x005E\x0068\x0000\x0001\x005D\x001A\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0075\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x0076\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0077" + + "\x000E\x0000\x0001\x0078\x0002\x0000\x0001\x0079\x0021\x0000\x0001\x0015\x0002\x0034\x0002\x0000" + + "\x0002\x007A\x0001\x0036\x0001\x0000\x0001\x0034\x0002\x0000\x0001\x0015\x0001\x00B5\x001A\x001E" + + "\x0001\x0061\x000A\x0062\x0001\x0000\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0002\x00B6" + + "\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x007A\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0082\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x0083\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0084\x000E\x0000\x0001\x0085\x0002\x0000" + + "\x0001\x0086\x0011\x0000\x0001\x004B\x000F\x0000\x0001\x0015\x0001\x0036\x0001\x0034\x0001\x004D" + + "\x0003\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0002\x0000\x0001\x0015\x0001\x005D\x001A\x006D" + + "\x0001\x005E\x000A\x00B7\x0001\x0000\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x007B\x0003\x0000\x0001\x007C\x0005\x0000\x0001\x007D\x0003\x0000\x0001\x007E" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x007F\x000E\x0000\x0001\x0080\x0002\x0000\x0001\x0081" + + "\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x005D" + + "\x001A\x006D\x000B\x005E\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0060\x0009\x001E\x0001\x00B8\x0010\x001E\x0001\x0061\x000A\x0062" + + "\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x000D\x001E\x0001\x00B9\x000C\x001E\x0001\x0061" + + "\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x000F\x001E\x0001\x00BA\x000A\x001E" + + "\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E" + + "\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x000C\x0000" + + "\x0001\x0087\x0003\x0000\x0001\x0088\x0005\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x000C\x0000" + + "\x0001\x008B\x000E\x0000\x0001\x008C\x0002\x0000\x0001\x008D\x0022\x0000\x0001\x003E\x0001\x0016" + + "\x0006\x0000\x0001\x003E\x0003\x0000\x0001\x005D\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE" + + "\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6" + + "\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE" + + "\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3\x0001\x00D4\x0001\x005E\x0001\x00D5" + + "\x0002\x00D6\x0001\x00D5\x0005\x00D6\x0001\x00D7\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x008E\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x008F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0090\x000E\x0000\x0001\x0091\x0002\x0000" + + "\x0001\x0092\x0011\x0000\x0001\x004B\x000F\x0000\x0001\x0015\x0001\x003F\x0001\x0016\x0001\x004D" + + "\x0003\x0000\x0001\x003F\x0001\x0000\x0001\x003F\x0002\x0000\x0001\x0015\x0001\x005D\x001A\x006D" + + "\x0001\x005E\x000A\x006E\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x000C\x0000\x0001\x0087" + + "\x0003\x0000\x0001\x0088\x0005\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x000C\x0000\x0001\x008B" + + "\x000E\x0000\x0001\x008C\x0002\x0000\x0001\x008D\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000" + + "\x0001\x003E\x0003\x0000\x0001\x005D\x001B\x005E\x000A\x006E\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x0068\x001A\x001E\x0001\x0061\x000A\x00D8\x0001\x0000" + + "\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000" + + "\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037" + + "\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015" + + "\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015" + + "\x0001\x0068\x001A\x001E\x0001\x0061\x0002\x006B\x0001\x00D8\x0002\x006B\x0002\x00D8\x0001\x006B" + + "\x0001\x00D8\x0001\x006B\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A" + + "\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x00D9\x001A\x006D\x0001\x005E" + + "\x000A\x00B7\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0015\x0001\x00DA\x001A\x006D\x0001\x005E\x000A\x006E\x0001\x0000\x0001\x005E" + + "\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0069\x0000\x0004\x00DB\x0002\x0000\x0001\x00DB\x000D\x0000" + + "\x0001\x00DB\x0006\x0000\x000A\x00DB\x0001\x00DC\x00A2\x0000\x0001\x00DD\x007C\x0000\x0001\x00DE" + + "\x002C\x0000\x0001\x005F\x0075\x0000\x003C\x0072\x0002\x0000\x0001\x0034\x0009\x0000\x0003\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0034\x0001\x0000\x0002\x0034\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0034\x0004\x0000\x0001\x0034\x0002\x0015\x0002\x0034\x0008\x0000\x0001\x0034" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0034\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0034\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x0034\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0034" + + "\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0034" + + "\x0006\x0000\x0001\x0034\x006A\x0000\x0001\x0034\x0003\x0000\x0001\x0034\x0002\x0000\x0001\x0034" + + "\x0003\x0000\x0001\x0034\x0005\x0000\x0001\x0034\x0007\x0000\x0001\x0034\x0004\x0000\x0002\x0034" + + "\x0003\x0000\x0002\x0034\x0001\x0000\x0001\x0034\x0004\x0000\x0001\x0034\x0001\x0000\x0001\x0034" + + "\x0002\x0000\x0002\x0034\x0001\x0000\x0003\x0034\x0001\x0000\x0001\x0034\x0002\x0000\x0004\x0034" + + "\x0002\x0000\x0001\x0034\x0067\x0000\x0001\x00DF\x0003\x0000\x0001\x00E0\x0005\x0000\x0001\x00E1" + + "\x0003\x0000\x0001\x00E2\x000C\x0000\x0001\x00E3\x000E\x0000\x0001\x00E4\x0002\x0000\x0001\x00E5" + + "\x0022\x0000\x0001\x007A\x0001\x0034\x0006\x0000\x0001\x007A\x001F\x0000\x000A\x0034\x0018\x0000" + + "\x0001\x0035\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0035\x0001\x0000\x0002\x0035\x0004\x0000" + + "\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0035\x0004\x0000\x0001\x0035\x0002\x0015" + + "\x0002\x0035\x000A\x0000\x0002\x0015\x0001\x0000\x0001\x0035\x0008\x0000\x0001\x0015\x0050\x0000" + + "\x0001\x0015\x0009\x0000\x0002\x0015\x0002\x0000\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000" + + "\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000\x0005\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x004B\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015\x0004\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0035\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0035\x0005\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0035\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x007F\x0000\x0002\x0035\x0006\x0000\x0001\x0035\x006A\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0035\x0002\x0000\x0001\x0035\x0003\x0000\x0001\x0035\x0005\x0000\x0001\x0035\x0007\x0000" + + "\x0001\x0035\x0004\x0000\x0002\x0035\x0003\x0000\x0002\x0035\x0001\x0000\x0001\x0035\x0004\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0002\x0000\x0002\x0035\x0001\x0000\x0003\x0035\x0001\x0000" + + "\x0001\x0035\x0002\x0000\x0004\x0035\x0002\x0000\x0001\x0035\x005E\x0000\x0001\x0036\x0009\x0000" + + "\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0036\x0001\x0000\x0002\x0036\x0004\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0036\x0004\x0000\x0001\x0036\x0002\x0015\x0002\x0036\x0008\x0000" + + "\x0001\x0034\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0036\x0008\x0000\x0001\x0015\x0050\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0036\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0036\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0036\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000" + + "\x0002\x0036\x0006\x0000\x0001\x0036\x006A\x0000\x0001\x0036\x0003\x0000\x0001\x0036\x0002\x0000" + + "\x0001\x0036\x0003\x0000\x0001\x0036\x0005\x0000\x0001\x0036\x0007\x0000\x0001\x0036\x0004\x0000" + + "\x0002\x0036\x0003\x0000\x0002\x0036\x0001\x0000\x0001\x0036\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0002\x0000\x0002\x0036\x0001\x0000\x0003\x0036\x0001\x0000\x0001\x0036\x0002\x0000" + + "\x0004\x0036\x0002\x0000\x0001\x0036\x005E\x0000\x0001\x003E\x001F\x0000\x0001\x003E\x0001\x0000" + + "\x0002\x003E\x000E\x0000\x0001\x003E\x0004\x0000\x0001\x003E\x0002\x0000\x0002\x003E\x0008\x0000" + + "\x0001\x0016\x0004\x0000\x0001\x003E\x005B\x0000\x0001\x0016\x0042\x0000\x0001\x0016\x00A3\x0000" + + "\x0002\x0016\x0098\x0000\x0001\x003E\x00A7\x0000\x0002\x003E\x0009\x0000\x0001\x003E\x0089\x0000" + + "\x0002\x003E\x0006\x0000\x0001\x003E\x006A\x0000\x0001\x003E\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003E\x0003\x0000\x0001\x003E\x0005\x0000\x0001\x003E\x0007\x0000\x0001\x003E\x0004\x0000" + + "\x0002\x003E\x0003\x0000\x0002\x003E\x0001\x0000\x0001\x003E\x0004\x0000\x0001\x003E\x0001\x0000" + + "\x0001\x003E\x0002\x0000\x0002\x003E\x0001\x0000\x0003\x003E\x0001\x0000\x0001\x003E\x0002\x0000" + + "\x0004\x003E\x0002\x0000\x0001\x003E\x005E\x0000\x0001\x003F\x0009\x0000\x0003\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x003F\x0001\x0000\x0002\x003F\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x003F\x0002\x0015\x0002\x003F\x0008\x0000\x0001\x0016\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x003F\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x003F\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0002\x003F\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x003F\x0004\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x003F\x0006\x0000" + + "\x0001\x003F\x006A\x0000\x0001\x003F\x0003\x0000\x0001\x003F\x0002\x0000\x0001\x003F\x0003\x0000" + + "\x0001\x003F\x0005\x0000\x0001\x003F\x0007\x0000\x0001\x003F\x0004\x0000\x0002\x003F\x0003\x0000" + + "\x0002\x003F\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x003F\x0001\x0000\x0001\x003F\x0002\x0000" + + "\x0002\x003F\x0001\x0000\x0003\x003F\x0001\x0000\x0001\x003F\x0002\x0000\x0004\x003F\x0002\x0000" + + "\x0001\x003F\x005E\x0000\x0001\x004D\x001F\x0000\x0001\x004D\x0001\x0000\x0002\x004D\x000E\x0000" + + "\x0001\x004D\x0004\x0000\x0001\x004D\x0002\x0000\x0002\x004D\x000D\x0000\x0001\x004D\x0096\x0000" + + "\x0001\x004D\x00A7\x0000\x0002\x004D\x0009\x0000\x0001\x004D\x0089\x0000\x0002\x004D\x0006\x0000" + + "\x0001\x004D\x006A\x0000\x0001\x004D\x0003\x0000\x0001\x004D\x0002\x0000\x0001\x004D\x0003\x0000" + + "\x0001\x004D\x0005\x0000\x0001\x004D\x0007\x0000\x0001\x004D\x0004\x0000\x0002\x004D\x0003\x0000" + + "\x0002\x004D\x0001\x0000\x0001\x004D\x0004\x0000\x0001\x004D\x0001\x0000\x0001\x004D\x0002\x0000" + + "\x0002\x004D\x0001\x0000\x0003\x004D\x0001\x0000\x0001\x004D\x0002\x0000\x0004\x004D\x0002\x0000" + + "\x0001\x004D\x00C3\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0031\x0099" + + "\x0001\x0000\x0001\x00E8\x0004\x0099\x0001\x00E9\x0001\x0000\x0003\x0099\x0001\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0001\x001E\x0002\x00EA\x0001\x00EB" + + "\x0001\x00EC\x0008\x00EA\x0001\x001E\x0001\x00ED\x0005\x00EA\x0006\x001E\x0001\x0061\x000A\x0062" + + "\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0001\x00EE\x0002\x00EA\x0001\x001E\x0001\x00EA" + + "\x0001\x00EF\x0006\x00EA\x0004\x001E\x0001\x00EA\x0001\x001E\x0002\x00EA\x0001\x001E\x0001\x00EA" + + "\x0001\x001E\x0003\x00EA\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E" + + "\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060" + + "\x0003\x001E\x0001\x00EA\x0001\x001E\x0001\x00EA\x0004\x001E\x0001\x00EA\x0008\x001E\x0001\x00EA" + + "\x0002\x001E\x0001\x00EA\x0002\x001E\x0001\x00EA\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0060\x0001\x001E\x0001\x00EA\x0001\x00F0\x0002\x00EA\x0002\x001E\x0001\x00EA" + + "\x0006\x001E\x0003\x00EA\x0009\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063" + + "\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0060\x0003\x001E\x0001\x00EA\x0001\x001E\x0001\x00EA\x0008\x001E\x0001\x00EA\x0001\x001E" + + "\x0002\x00EA\x0008\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E" + + "\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060" + + "\x0004\x001E\x0001\x00F1\x0005\x001E\x0001\x00EA\x000F\x001E\x0001\x0061\x000A\x0062\x0001\x0035" + + "\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0060\x0004\x001E\x0002\x00EA\x0002\x001E\x0001\x00EA\x0001\x001E" + + "\x0001\x00EA\x000B\x001E\x0001\x00EA\x0002\x001E\x0001\x00EA\x0001\x0061\x000A\x0062\x0001\x0035" + + "\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0060\x0001\x00EA\x0001\x001E\x0003\x00EA\x0001\x00F2\x000C\x00EA" + + "\x0002\x001E\x0002\x00EA\x0002\x001E\x0001\x00EA\x0001\x001E\x0001\x0061\x000A\x0062\x0001\x0035" + + "\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0060\x0002\x001E\x0004\x00EA\x0003\x001E\x0002\x00EA\x0001\x00F3" + + "\x0001\x00EA\x0001\x001E\x0002\x00EA\x000A\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0060\x0002\x00EA\x0002\x001E\x0001\x00EA\x0003\x001E\x0001\x00EA\x0005\x001E" + + "\x0003\x00EA\x0003\x001E\x0001\x00EA\x0002\x001E\x0003\x00EA\x0001\x0061\x000A\x0062\x0001\x0035" + + "\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0060\x0005\x00EA\x0001\x00F4\x0001\x001E\x0001\x00EA\x0001\x00F5" + + "\x0007\x00EA\x0001\x00F6\x0003\x00EA\x0001\x001E\x0001\x00EA\x0001\x001E\x0003\x00EA\x0001\x0061" + + "\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0001\x00F7\x0001\x00EA\x0001\x001E" + + "\x0001\x00EE\x0006\x00EA\x0003\x001E\x0001\x00EA\x0002\x001E\x0001\x00EA\x0002\x001E\x0001\x00EA" + + "\x0006\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0001\x00EA" + + "\x0019\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0001\x00EA" + + "\x0002\x001E\x0001\x00EA\x0001\x00F8\x0001\x001E\x0002\x00EA\x0001\x001E\x0003\x00EA\x0002\x001E" + + "\x0002\x00EA\x0001\x001E\x0001\x00EA\x0003\x001E\x0001\x00EA\x0002\x001E\x0002\x00EA\x0001\x0061" + + "\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0006\x00EA\x0001\x001E\x0005\x00EA" + + "\x0003\x001E\x0002\x00EA\x0002\x001E\x0007\x00EA\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0060\x0001\x001E\x0002\x00EA\x0001\x00F5\x0001\x00F9\x0003\x00EA\x0001\x001E" + + "\x0003\x00EA\x0001\x001E\x0001\x00EA\x0001\x001E\x0001\x00EA\x0001\x001E\x0001\x00EA\x0001\x001E" + + "\x0001\x00EA\x0001\x001E\x0003\x00EA\x0001\x001E\x0001\x00EA\x0001\x0061\x000A\x0062\x0001\x0035" + + "\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0060\x0001\x00EA\x0006\x001E\x0001\x00EA\x0006\x001E\x0001\x00EA" + + "\x0004\x001E\x0001\x00EA\x0004\x001E\x0002\x00EA\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0060\x0006\x001E\x0001\x00EA\x0007\x001E\x0001\x00EA\x000B\x001E\x0001\x0061" + + "\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x000B\x001E\x0001\x00FA\x0006\x001E" + + "\x0001\x00FB\x0007\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E" + + "\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060" + + "\x0001\x00EA\x0009\x001E\x0001\x00EA\x0006\x001E\x0001\x00EA\x0008\x001E\x0001\x0061\x000A\x0062" + + "\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0001\x00EA\x0001\x001E\x0006\x00EA\x0001\x00FC" + + "\x0001\x001E\x0002\x00EA\x0002\x001E\x0002\x00EA\x0001\x001E\x0001\x00EA\x0001\x001E\x0006\x00EA" + + "\x0001\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0004\x001E" + + "\x0001\x00EA\x0005\x001E\x0002\x00EA\x0003\x001E\x0002\x00EA\x0008\x001E\x0001\x00EA\x0001\x0061" + + "\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0003\x001E\x0001\x00EA\x0001\x001E" + + "\x0001\x00FD\x0004\x001E\x0001\x00EA\x0002\x001E\x0001\x00EA\x000C\x001E\x0001\x0061\x000A\x0062" + + "\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0002\x00EA\x0001\x001E\x0001\x00EA\x0003\x001E" + + "\x0002\x00EA\x0002\x001E\x0001\x00EA\x0004\x001E\x0001\x00EA\x0009\x001E\x0001\x0061\x000A\x0062" + + "\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0003\x001E\x0001\x00EA\x000B\x001E\x0001\x00EA" + + "\x000A\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0003\x001E" + + "\x0002\x00EA\x0002\x001E\x0002\x00EA\x0001\x001E\x0002\x00EA\x0001\x001E\x0001\x00EA\x0003\x001E" + + "\x0001\x00EA\x0001\x001E\x0001\x00EA\x0001\x001E\x0001\x00EA\x0002\x001E\x0001\x00EA\x0001\x001E" + + "\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E" + + "\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x000C\x0000\x0001\x00DF" + + "\x0003\x0000\x0001\x00E0\x0005\x0000\x0001\x00E1\x0003\x0000\x0001\x00E2\x000C\x0000\x0001\x00E3" + + "\x000E\x0000\x0001\x00E4\x0002\x0000\x0001\x00E5\x0022\x0000\x0001\x007A\x0001\x0034\x0006\x0000" + + "\x0001\x007A\x0003\x0000\x0001\x005D\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF" + + "\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7" + + "\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF" + + "\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3\x0001\x00D4\x0001\x005E\x000A\x0062\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0001\x0072" + + "\x0003\x0000\x0002\x005E\x000C\x0000\x0001\x00DF\x0003\x0000\x0001\x00E0\x0005\x0000\x0001\x00E1" + + "\x0003\x0000\x0001\x00E2\x000C\x0000\x0001\x00E3\x000E\x0000\x0001\x00E4\x0002\x0000\x0001\x00E5" + + "\x0022\x0000\x0001\x007A\x0001\x0034\x0006\x0000\x0001\x007A\x0003\x0000\x0001\x005D\x001B\x005E" + + "\x000A\x00B7\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0075\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x0076\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0077\x000E\x0000\x0001\x0078\x0002\x0000\x0001\x0079\x0021\x0000\x0001\x0015\x0002\x0034" + + "\x0002\x0000\x0002\x007A\x0001\x0036\x0001\x0000\x0001\x0034\x0002\x0000\x0001\x0015\x0001\x00FF" + + "\x001A\x006D\x0001\x005E\x000A\x00B7\x0001\x0000\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0002\x00B6\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x007A\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0003\x001E" + + "\x0001\u0100\x0016\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E" + + "\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060" + + "\x001A\x001E\x0001\x0061\x000A\x0062\x0001\u0101\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x000D\x001E" + + "\x0001\u0102\x000C\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E" + + "\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0002\u0103\x0001\u0104\x0001\u0105\x0008\u0103" + + "\x0001\x00B4\x0001\u0106\x0005\u0103\x0006\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0001\u0107\x0002\u0103\x0001\x00B4\x0001\u0103\x0001\u0108\x0006\u0103" + + "\x0004\x00B4\x0001\u0103\x0001\x00B4\x0002\u0103\x0001\x00B4\x0001\u0103\x0001\x00B4\x0003\u0103" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u0103" + + "\x0001\x00B4\x0001\u0103\x0004\x00B4\x0001\u0103\x0008\x00B4\x0001\u0103\x0002\x00B4\x0001\u0103" + + "\x0002\x00B4\x0001\u0103\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\x00B4\x0001\u0103\x0001\u0109\x0002\u0103\x0002\x00B4\x0001\u0103\x0006\x00B4\x0003\u0103" + + "\x0009\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4" + + "\x0001\u0103\x0001\x00B4\x0001\u0103\x0008\x00B4\x0001\u0103\x0001\x00B4\x0002\u0103\x0008\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0004\x00B4\x0001\u010a" + + "\x0005\x00B4\x0001\u0103\x000F\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0004\x00B4\x0002\u0103\x0002\x00B4\x0001\u0103\x0001\x00B4\x0001\u0103\x000B\x00B4" + + "\x0001\u0103\x0002\x00B4\x0001\u0103\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0001\u0103\x0001\x00B4\x0003\u0103\x0001\u010b\x000C\u0103\x0002\x00B4\x0002\u0103" + + "\x0002\x00B4\x0001\u0103\x0001\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0002\x00B4\x0004\u0103\x0003\x00B4\x0002\u0103\x0001\u010c\x0001\u0103\x0001\x00B4" + + "\x0002\u0103\x000A\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0002\u0103\x0002\x00B4\x0001\u0103\x0003\x00B4\x0001\u0103\x0005\x00B4\x0003\u0103\x0003\x00B4" + + "\x0001\u0103\x0002\x00B4\x0003\u0103\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0005\u0103\x0001\u010d\x0001\x00B4\x0001\u0103\x0001\u010e\x0007\u0103\x0001\u010f" + + "\x0003\u0103\x0001\x00B4\x0001\u0103\x0001\x00B4\x0003\u0103\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0110\x0001\u0103\x0001\x00B4\x0001\u0107\x0006\u0103" + + "\x0003\x00B4\x0001\u0103\x0002\x00B4\x0001\u0103\x0002\x00B4\x0001\u0103\x0006\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0103\x0019\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0103\x0002\x00B4\x0001\u0103" + + "\x0001\u0111\x0001\x00B4\x0002\u0103\x0001\x00B4\x0003\u0103\x0002\x00B4\x0002\u0103\x0001\x00B4" + + "\x0001\u0103\x0003\x00B4\x0001\u0103\x0002\x00B4\x0002\u0103\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0006\u0103\x0001\x00B4\x0005\u0103\x0003\x00B4\x0002\u0103" + + "\x0002\x00B4\x0007\u0103\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\x00B4\x0002\u0103\x0001\u010e\x0001\u0112\x0003\u0103\x0001\x00B4\x0003\u0103\x0001\x00B4" + + "\x0001\u0103\x0001\x00B4\x0001\u0103\x0001\x00B4\x0001\u0103\x0001\x00B4\x0001\u0103\x0001\x00B4" + + "\x0003\u0103\x0001\x00B4\x0001\u0103\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0001\u0103\x0006\x00B4\x0001\u0103\x0006\x00B4\x0001\u0103\x0004\x00B4\x0001\u0103" + + "\x0004\x00B4\x0002\u0103\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0006\x00B4\x0001\u0103\x0007\x00B4\x0001\u0103\x000B\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x000B\x00B4\x0001\u0113\x0006\x00B4\x0001\u0114\x0007\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0103\x0009\x00B4" + + "\x0001\u0103\x0006\x00B4\x0001\u0103\x0008\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0001\u0103\x0001\x00B4\x0006\u0103\x0001\u0115\x0001\x00B4\x0002\u0103" + + "\x0002\x00B4\x0002\u0103\x0001\x00B4\x0001\u0103\x0001\x00B4\x0006\u0103\x0001\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0004\x00B4\x0001\u0103\x0005\x00B4" + + "\x0002\u0103\x0003\x00B4\x0002\u0103\x0008\x00B4\x0001\u0103\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u0103\x0001\x00B4\x0001\u0116\x0004\x00B4" + + "\x0001\u0103\x0002\x00B4\x0001\u0103\x000C\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0002\u0103\x0001\x00B4\x0001\u0103\x0003\x00B4\x0002\u0103\x0002\x00B4" + + "\x0001\u0103\x0004\x00B4\x0001\u0103\x0009\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u0103\x000B\x00B4\x0001\u0103\x000A\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4\x0002\u0103\x0002\x00B4" + + "\x0002\u0103\x0001\x00B4\x0002\u0103\x0001\x00B4\x0001\u0103\x0003\x00B4\x0001\u0103\x0001\x00B4" + + "\x0001\u0103\x0001\x00B4\x0001\u0103\x0002\x00B4\x0001\u0103\x0001\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038" + + "\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B" + + "\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0117\x001A\x001E" + + "\x0001\x0061\x000A\x00D6\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A" + + "\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0117\x001A\x001E\x0001\x0061\x000A\u0118\x0001\x0000" + + "\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000" + + "\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037" + + "\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015" + + "\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015" + + "\x0001\u0117\x001A\x001E\x0001\x0061\x0001\x00D6\x0001\u0119\x0001\u0118\x0002\x00D6\x0002\u0118" + + "\x0001\x00D6\x0001\u0118\x0001\x00D6\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000" + + "\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039" + + "\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011a\x001A\x001E\x0001\x0061\x000A\x00D8" + + "\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E" + + "\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x007B\x0003\x0000\x0001\x007C\x0005\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x007F\x000E\x0000\x0001\x0080\x0002\x0000\x0001\x0081\x0021\x0000" + + "\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x005D\x001A\x006D" + + "\x000B\x005E\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E\x000C\x0000\x0001\x0087\x0003\x0000\x0001\x0088" + + "\x0005\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x000C\x0000\x0001\x008B\x000E\x0000\x0001\x008C" + + "\x0002\x0000\x0001\x008D\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x0003\x0000" + + "\x0001\x005D\x001B\x005E\x000A\x006E\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E\x0069\x0000\x0004\u011b" + + "\x0002\x0000\x0001\u011b\x000D\x0000\x0001\u011b\x0006\x0000\x000A\u011b\x0001\x00DC\x007D\x0000" + + "\x0004\u011c\x0002\x0000\x0001\u011c\x000D\x0000\x0001\u011c\x0006\x0000\x000A\u011c\x0001\u011d" + + "\x007D\x0000\x0004\u011e\x0002\x0000\x0001\u011e\x000D\x0000\x0001\u011e\x0006\x0000\x0001\u011f" + + "\x0002\u0120\x0001\u011f\x0005\u0120\x0001\u0121\x000C\x0000\x0001\u0122\x0070\x0000\x0026\x005E" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x0000\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0001\x0072\x0003\x0000\x0002\x005E\x0003\x0000\x0001\x007A\x001F\x0000\x0001\x007A\x0001\x0000" + + "\x0002\x007A\x000E\x0000\x0001\x007A\x0004\x0000\x0001\x007A\x0002\x0000\x0002\x007A\x0008\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x007A\x005B\x0000\x0001\x0034\x0042\x0000\x0001\x0034\x00A3\x0000" + + "\x0002\x0034\x0098\x0000\x0001\x007A\x00A7\x0000\x0002\x007A\x0009\x0000\x0001\x007A\x0089\x0000" + + "\x0002\x007A\x0006\x0000\x0001\x007A\x006A\x0000\x0001\x007A\x0003\x0000\x0001\x007A\x0002\x0000" + + "\x0001\x007A\x0003\x0000\x0001\x007A\x0005\x0000\x0001\x007A\x0007\x0000\x0001\x007A\x0004\x0000" + + "\x0002\x007A\x0003\x0000\x0002\x007A\x0001\x0000\x0001\x007A\x0004\x0000\x0001\x007A\x0001\x0000" + + "\x0001\x007A\x0002\x0000\x0002\x007A\x0001\x0000\x0003\x007A\x0001\x0000\x0001\x007A\x0002\x0000" + + "\x0004\x007A\x0002\x0000\x0001\x007A\x00C4\x0000\x0001\u0123\x0001\u0124\x0001\u0125\x0001\u0126" + + "\x0001\u0127\x0001\u0128\x0001\u0129\x0001\u012a\x0001\u012b\x0001\u012c\x0001\u012d\x0001\u012e" + + "\x0001\u012f\x0001\u0130\x0001\u0131\x0001\u0132\x0001\u0133\x0001\u0134\x0001\u0135\x0001\u0136" + + "\x0001\u0137\x0001\u0138\x0001\u0139\x0001\u013a\x0001\u013b\x0001\u013c\x0001\x0000\x000A\x0098" + + "\x007E\x0000\x001A\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x003C\x0099\x0001\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u013d\x001A\x001E\x0001\x0061\x000A\x0062" + + "\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u013d\x0004\x001E\x0001\u0142" + + "\x0015\x001E\x0001\x0061\x000A\x0062\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\u013d\x000D\x001E\x0001\x00A6\x000C\x001E\x0001\x0061\x000A\x0062\x0001\u013e\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0001\u013f\x0001\u0140" + + "\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u013d\x0008\x001E\x0001\x00A6\x0011\x001E\x0001\x0061" + + "\x000A\x0062\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u013d\x000F\x001E" + + "\x0001\x00EA\x000A\x001E\x0001\x0061\x000A\x0062\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E" + + "\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\u013d\x0005\x001E\x0001\u0143\x0004\x001E\x0001\x00EA\x000F\x001E\x0001\x0061" + + "\x000A\x0062\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0010\x001E" + + "\x0001\x00EA\x0009\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E" + + "\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060" + + "\x0007\x001E\x0001\x00EA\x0012\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063" + + "\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0060\x0017\x001E\x0001\x00EA\x0002\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\u013d\x0006\x001E\x0001\u0142\x0008\x001E\x0001\x00EA\x000A\x001E\x0001\x0061" + + "\x000A\x0062\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u013d\x0014\x001E" + + "\x0001\u0144\x0005\x001E\x0001\x0061\x000A\x0062\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E" + + "\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0060\x0009\x001E\x0001\x00EA\x0010\x001E\x0001\x0061\x000A\x0062\x0001\x0035" + + "\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\u013d\x000E\x001E\x0001\u0145\x000B\x001E\x0001\x0061\x000A\x0062" + + "\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u013d\x000A\x001E\x0001\u0146" + + "\x000F\x001E\x0001\x0061\x000A\x0062\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\u013d\x0005\x001E\x0001\x00EA\x0014\x001E\x0001\x0061\x000A\x0062\x0001\u013e\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0001\u013f\x0001\u0140" + + "\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u013d\x0001\u0147\x0019\x001E\x0001\x0061\x000A\x0062" + + "\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x001A\x001E\x0001\u0148" + + "\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0012\x001E\x0001\x00EA\x0007\x001E" + + "\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E" + + "\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u013d\x0013\x001E\x0001\x00EA" + + "\x0006\x001E\x0001\x0061\x000A\x0062\x0001\u013e\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\u013d\x0014\x001E\x0001\u0149\x0005\x001E\x0001\x0061\x000A\x0062\x0001\u013e\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0001\u013f\x0001\u0140" + + "\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x005D\x0001\x00BB" + + "\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3" + + "\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB" + + "\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3" + + "\x0001\x00D4\x0001\x005E\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E\x000C\x0000\x0001\x00DF" + + "\x0003\x0000\x0001\x00E0\x0005\x0000\x0001\x00E1\x0003\x0000\x0001\x00E2\x000C\x0000\x0001\x00E3" + + "\x000E\x0000\x0001\x00E4\x0002\x0000\x0001\x00E5\x0022\x0000\x0001\x007A\x0001\x0034\x0006\x0000" + + "\x0001\x007A\x0003\x0000\x0001\x005D\x001B\x005E\x000A\x00B7\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x001A\x001E" + + "\x0001\x0061\x000A\x0062\x0001\u014a\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E" + + "\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x007B\x0003\x0000\x0001\x007C\x0005\x0000\x0001\x007D\x0003\x0000" + + "\x0001\x007E\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x007F\x000E\x0000\x0001\x0080\x0002\x0000" + + "\x0001\x0081\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x001A\x0015\x0014\x0000\x0001\u014b\x000D\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0060\x000E\x001E\x0001\u014c\x000B\x001E\x0001\x0061\x000A\x0062" + + "\x0001\u014d\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u014e\x001A\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0001\u013f" + + "\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u014e" + + "\x0004\x00B4\x0001\u0150\x0015\x00B4\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\u014e\x000D\x00B4\x0001\x00C7\x000C\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u014e\x0008\x00B4\x0001\x00C7" + + "\x0011\x00B4\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\u014e\x000F\x00B4\x0001\u0103\x000A\x00B4\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u014e\x0005\x00B4\x0001\u0151\x0004\x00B4\x0001\u0103" + + "\x000F\x00B4\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0010\x00B4\x0001\u0103\x0009\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0007\x00B4\x0001\u0103\x0012\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0017\x00B4\x0001\u0103\x0002\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u014e\x0006\x00B4\x0001\u0150\x0008\x00B4\x0001\u0103" + + "\x000A\x00B4\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\u014e\x0014\x00B4\x0001\u0152\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0009\x00B4\x0001\u0103\x0010\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u014e\x000E\x00B4\x0001\u0153\x000B\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0001\u013f" + + "\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u014e" + + "\x000A\x00B4\x0001\u0154\x000F\x00B4\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\u014e\x0005\x00B4\x0001\u0103\x0014\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u014e\x0001\u0155\x0019\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0001\u013f" + + "\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\u0148\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0012\x00B4" + + "\x0001\u0103\x0007\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u014e" + + "\x0013\x00B4\x0001\u0103\x0006\x00B4\x0001\x0061\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\u014e\x0014\x00B4\x0001\u0156\x0005\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x000C\x0000\x0001\x0087\x0003\x0000\x0001\x0088" + + "\x0005\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x000C\x0000\x0001\x008B\x000E\x0000\x0001\x008C" + + "\x0002\x0000\x0001\x008D\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x0003\x0000" + + "\x0001\x005D\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1" + + "\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9" + + "\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF\x0001\x00D0\x0001\x00D1" + + "\x0001\x00D2\x0001\x00D3\x0001\x00D4\x0001\x005E\x0001\u0157\x0002\u0158\x0001\u0157\x0005\u0158" + + "\x0001\u0159\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037" + + "\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015" + + "\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015" + + "\x0001\u0117\x001A\x001E\x0001\x0061\x000A\x00D8\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E" + + "\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000" + + "\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E" + + "\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0117\x001A\x001E\x0001\x0061" + + "\x0002\u0118\x0001\x00D8\x0002\u0118\x0002\x00D8\x0001\u0118\x0001\x00D8\x0001\u0118\x0001\x0000" + + "\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000" + + "\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x000C\x0000\x0001\x0087\x0003\x0000\x0001\x0088" + + "\x0005\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x000C\x0000\x0001\x008B\x000E\x0000\x0001\x008C" + + "\x0002\x0000\x0001\x008D\x0022\x0000\x0001\x003E\x0001\x0016\x0006\x0000\x0001\x003E\x0003\x0000" + + "\x0001\x005D\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1" + + "\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9" + + "\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF\x0001\x00D0\x0001\x00D1" + + "\x0001\x00D2\x0001\x00D3\x0001\x00D4\x0001\x005E\x000A\x00D8\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E" + + "\x0069\x0000\x0004\u015a\x0002\x0000\x0001\u015a\x000D\x0000\x0001\u015a\x0006\x0000\x000A\u015a" + + "\x0001\x00DC\x007D\x0000\x0004\u015b\x0002\x0000\x0001\u015b\x000D\x0000\x0001\u015b\x0006\x0000" + + "\x000A\u015b\x0001\u015c\x007D\x0000\x0004\u015d\x0002\x0000\x0001\u015d\x000D\x0000\x0001\u015d" + + "\x0006\x0000\x0001\u015e\x0002\u015f\x0001\u015e\x0005\u015f\x0001\u0160\x000C\x0000\x0001\u0122" + + "\x0071\x0000\x0004\u0161\x0002\x0000\x0001\u0161\x000D\x0000\x0001\u0161\x0006\x0000\x000A\u0161" + + "\x0001\u0162\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u0161\x0002\x0000\x0001\u0161" + + "\x000D\x0000\x0001\u0161\x0006\x0000\x000A\u0164\x0001\u0162\x000B\x0000\x0001\u0122\x0070\x0000" + + "\x0001\u0163\x0004\u0161\x0002\x0000\x0001\u0161\x000D\x0000\x0001\u0161\x0006\x0000\x000A\u0165" + + "\x0001\u0162\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u0161\x0002\x0000\x0001\u0161" + + "\x000D\x0000\x0001\u0161\x0006\x0000\x0001\u0164\x0001\u0166\x0001\u0165\x0002\u0164\x0002\u0165" + + "\x0001\u0164\x0001\u0165\x0001\u0164\x0001\u0162\x000B\x0000\x0001\u0122\x0096\x0000\x0001\u014f" + + "\x0007\x0000\x0001\u0167\x0001\u0168\x0001\u0169\x0072\x0000\x0001\x00E6\x0001\x0098\x0002\u016a" + + "\x0001\u016b\x0001\u016c\x0008\u016a\x0001\x0098\x0001\u016d\x0005\u016a\x0006\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u016e\x0002\u016a\x0001\x0098\x0001\u016a\x0001\u016f" + + "\x0006\u016a\x0004\x0098\x0001\u016a\x0001\x0098\x0002\u016a\x0001\x0098\x0001\u016a\x0001\x0098" + + "\x0003\u016a\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u016a\x0001\x0098" + + "\x0001\u016a\x0004\x0098\x0001\u016a\x0008\x0098\x0001\u016a\x0002\x0098\x0001\u016a\x0002\x0098" + + "\x0001\u016a\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u016a\x0001\u0170" + + "\x0002\u016a\x0002\x0098\x0001\u016a\x0006\x0098\x0003\u016a\x0009\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u016a\x0001\x0098\x0001\u016a\x0008\x0098\x0001\u016a" + + "\x0001\x0098\x0002\u016a\x0008\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0004\x0098" + + "\x0001\u0171\x0005\x0098\x0001\u016a\x000F\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0004\x0098\x0002\u016a\x0002\x0098\x0001\u016a\x0001\x0098\x0001\u016a\x000B\x0098\x0001\u016a" + + "\x0002\x0098\x0001\u016a\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u016a\x0001\x0098" + + "\x0003\u016a\x0001\u0172\x000C\u016a\x0002\x0098\x0002\u016a\x0002\x0098\x0001\u016a\x0001\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0002\x0098\x0004\u016a\x0003\x0098\x0002\u016a" + + "\x0001\u0173\x0001\u016a\x0001\x0098\x0002\u016a\x000A\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0002\u016a\x0002\x0098\x0001\u016a\x0003\x0098\x0001\u016a\x0005\x0098\x0003\u016a" + + "\x0003\x0098\x0001\u016a\x0002\x0098\x0003\u016a\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0005\u016a\x0001\u0174\x0001\x0098\x0001\u016a\x0001\u0175\x0007\u016a\x0001\u0176\x0003\u016a" + + "\x0001\x0098\x0001\u016a\x0001\x0098\x0003\u016a\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0001\u0177\x0001\u016a\x0001\x0098\x0001\u016e\x0006\u016a\x0003\x0098\x0001\u016a\x0002\x0098" + + "\x0001\u016a\x0002\x0098\x0001\u016a\x0006\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0001\u016a\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u016a\x0002\x0098" + + "\x0001\u016a\x0001\u0178\x0001\x0098\x0002\u016a\x0001\x0098\x0003\u016a\x0002\x0098\x0002\u016a" + + "\x0001\x0098\x0001\u016a\x0003\x0098\x0001\u016a\x0002\x0098\x0002\u016a\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0006\u016a\x0001\x0098\x0005\u016a\x0003\x0098\x0002\u016a\x0002\x0098" + + "\x0007\u016a\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\x0098\x0002\u016a\x0001\u0175" + + "\x0001\u0179\x0003\u016a\x0001\x0098\x0003\u016a\x0001\x0098\x0001\u016a\x0001\x0098\x0001\u016a" + + "\x0001\x0098\x0001\u016a\x0001\x0098\x0001\u016a\x0001\x0098\x0003\u016a\x0001\x0098\x0001\u016a" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u016a\x0006\x0098\x0001\u016a\x0006\x0098" + + "\x0001\u016a\x0004\x0098\x0001\u016a\x0004\x0098\x0002\u016a\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0006\x0098\x0001\u016a\x0007\x0098\x0001\u016a\x000B\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x000B\x0098\x0001\u017a\x0006\x0098\x0001\u017b\x0007\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u016a\x0009\x0098\x0001\u016a\x0006\x0098\x0001\u016a" + + "\x0008\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u016a\x0001\x0098\x0006\u016a" + + "\x0001\u017c\x0001\x0098\x0002\u016a\x0002\x0098\x0002\u016a\x0001\x0098\x0001\u016a\x0001\x0098" + + "\x0006\u016a\x0001\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0004\x0098\x0001\u016a" + + "\x0005\x0098\x0002\u016a\x0003\x0098\x0002\u016a\x0008\x0098\x0001\u016a\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u016a\x0001\x0098\x0001\u017d\x0004\x0098\x0001\u016a" + + "\x0002\x0098\x0001\u016a\x000C\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0002\u016a" + + "\x0001\x0098\x0001\u016a\x0003\x0098\x0002\u016a\x0002\x0098\x0001\u016a\x0004\x0098\x0001\u016a" + + "\x0009\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u016a\x000B\x0098" + + "\x0001\u016a\x000A\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0003\x0098\x0002\u016a" + + "\x0002\x0098\x0002\u016a\x0001\x0098\x0002\u016a\x0001\x0098\x0001\u016a\x0003\x0098\x0001\u016a" + + "\x0001\x0098\x0001\u016a\x0001\x0098\x0001\u016a\x0002\x0098\x0001\u016a\x0001\x0098\x0001\x00E7" + + "\x000A\x0098\x0017\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x007B\x0003\x0000\x0001\x007C\x0005\x0000" + + "\x0001\x007D\x0003\x0000\x0001\x007E\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x007F\x000E\x0000" + + "\x0001\x0080\x0002\x0000\x0001\x0081\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035" + + "\x0002\x0000\x0001\x0015\x0001\x005D\x0001\x009A\x0001\x009B\x0001\x009C\x0001\x009D\x0001\x009E" + + "\x0001\x009F\x0001\x00A0\x0001\x00A1\x0001\x00A2\x0001\x00A3\x0001\x00A4\x0001\x00A5\x0001\x00A6" + + "\x0001\x00A7\x0001\x00A8\x0001\x00A9\x0001\x00AA\x0001\x00AB\x0001\x00AC\x0001\x00AD\x0001\x00AE" + + "\x0001\x00AF\x0001\x00B0\x0001\x00B1\x0001\x00B2\x0001\x00B3\x0001\x005E\x000A\x00B4\x0001\u014f" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000" + + "\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x007B" + + "\x0003\x0000\x0001\x007C\x0005\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x007F\x000E\x0000\x0001\x0080\x0002\x0000\x0001\x0081\x0021\x0000\x0001\x0015" + + "\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0001\x0000" + + "\x000A\u017e\x007D\x0000\x0001\u017f\x0025\u013f\x0001\u0167\x0002\u013f\x0001\u0180\x0001\u0167" + + "\x0002\u013f\x0001\u0181\x0002\u013f\x0001\u0141\x0002\x0000\x0001\u0167\x0001\u013f\x0004\x0000" + + "\x0001\u013f\x0001\x005E\x0068\x0000\x0001\u0182\x0025\u0140\x0001\u0168\x0002\u0140\x0001\u0183" + + "\x0001\x0000\x0002\x005E\x0001\u0184\x0001\u013f\x0001\u0140\x0001\u0141\x0002\x0000\x0001\u0168" + + "\x0001\u0140\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u0185\x0025\u0141\x0001\u0169\x0002\u0141" + + "\x0001\u0186\x0001\u0169\x0002\u0141\x0001\u0187\x0002\u0141\x0001\x005E\x0002\x0000\x0001\u0169" + + "\x0001\u0141\x0004\x0000\x0001\u0141\x0001\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015" + + "\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0060\x0005\x001E\x0001\x00EA\x0014\x001E\x0001\x0061\x000A\x0062" + + "\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000" + + "\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x000D\x001E\x0001\x00EA\x000C\x001E\x0001\x0061" + + "\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0008\x001E\x0001\x00EA\x0011\x001E" + + "\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E" + + "\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000" + + "\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0003\x001E\x0001\u0188" + + "\x0016\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E" + + "\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032" + + "\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000" + + "\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x0003\x001E" + + "\x0001\x00EA\x0016\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E" + + "\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060" + + "\x0017\x001E\x0001\u0189\x0002\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063" + + "\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x005D\x001A\x00B4\x0001\u018a\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060" + + "\x000E\x001E\x0001\x00EA\x000B\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063" + + "\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x007B\x0003\x0000\x0001\x007C" + + "\x0005\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x007F" + + "\x000E\x0000\x0001\x0080\x0002\x0000\x0001\x0081\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000" + + "\x0001\x0035\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0014\x0000\x0001\u018b\x00A2\x0000" + + "\x0001\u018c\x000D\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000" + + "\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060" + + "\x001A\x001E\x0001\x0061\x000A\x0062\x0001\u014d\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000" + + "\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x007B\x0003\x0000\x0001\x007C\x0005\x0000\x0001\x007D" + + "\x0003\x0000\x0001\x007E\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x007F\x000E\x0000\x0001\x0080" + + "\x0002\x0000\x0001\x0081\x0021\x0000\x0001\x0015\x0001\x0035\x0007\x0000\x0001\x0035\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x001A\x0015\x0014\x0000\x0001\u018d\x0073\x0000\x0001\x005D\x0001\x00BB" + + "\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3" + + "\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB" + + "\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3" + + "\x0001\x00D4\x0001\x005E\x000A\x00B4\x0001\u014f\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0001\u013f\x0001\u0140\x0001\u0141\x0003\x0000\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E" + + "\x0084\x0000\x000A\u017e\x007D\x0000\x0001\x00FE\x0005\x00B4\x0001\u0103\x0014\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x000D\x00B4\x0001\u0103\x000C\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0008\x00B4\x0001\u0103" + + "\x0011\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4" + + "\x0001\u018e\x0016\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0003\x00B4\x0001\u0103\x0016\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0017\x00B4\x0001\u018f\x0002\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x000E\x00B4\x0001\u0103\x000B\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000" + + "\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E" + + "\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0190\x001A\x001E\x0001\x0061" + + "\x000A\u0158\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F" + + "\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0015\x0001\u0190\x001A\x001E\x0001\x0061\x000A\u0191\x0001\x0000\x0001\x005E" + + "\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000" + + "\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016" + + "\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0190" + + "\x001A\x001E\x0001\x0061\x0001\u0158\x0001\u0192\x0001\u0191\x0002\u0158\x0002\u0191\x0001\u0158" + + "\x0001\u0191\x0001\u0158\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A" + + "\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x008E\x0000" + + "\x0001\x00DC\x007D\x0000\x0004\u0193\x0002\x0000\x0001\u0193\x000D\x0000\x0001\u0193\x0006\x0000" + + "\x000A\u0193\x0001\u015c\x007D\x0000\x0004\u0194\x0002\x0000\x0001\u0194\x000D\x0000\x0001\u0194" + + "\x0006\x0000\x000A\u0194\x0001\u0195\x007D\x0000\x0004\u0196\x0002\x0000\x0001\u0196\x000D\x0000" + + "\x0001\u0196\x0006\x0000\x000A\u0196\x0001\u0197\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163" + + "\x0004\u0196\x0002\x0000\x0001\u0196\x000D\x0000\x0001\u0196\x0006\x0000\x000A\u0198\x0001\u0197" + + "\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u0196\x0002\x0000\x0001\u0196\x000D\x0000" + + "\x0001\u0196\x0006\x0000\x000A\u0199\x0001\u0197\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163" + + "\x0004\u0196\x0002\x0000\x0001\u0196\x000D\x0000\x0001\u0196\x0006\x0000\x0001\u0198\x0001\u019a" + + "\x0001\u0199\x0002\u0198\x0002\u0199\x0001\u0198\x0001\u0199\x0001\u0198\x0001\u0197\x000B\x0000" + + "\x0001\u0122\x0071\x0000\x0004\u019b\x0002\x0000\x0001\u019b\x000D\x0000\x0001\u019b\x0006\x0000" + + "\x000A\u019b\x0001\u0162\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u015d\x0002\x0000\x0001\u015d" + + "\x000D\x0000\x0001\u015d\x0006\x0000\x0001\u015e\x0002\u015f\x0001\u015e\x0005\u015f\x0001\u0160" + + "\x0099\x0000\x0001\u019c\x0002\u019d\x0001\u019c\x0005\u019d\x0001\u019e\x007D\x0000\x0001\u0163" + + "\x0004\u019b\x0002\x0000\x0001\u019b\x000D\x0000\x0001\u019b\x0006\x0000\x000A\u019f\x0001\u0162" + + "\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u019b\x0002\x0000\x0001\u019b\x000D\x0000" + + "\x0001\u019b\x0006\x0000\x000A\u019b\x0001\u0162\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163" + + "\x0004\u019b\x0002\x0000\x0001\u019b\x000D\x0000\x0001\u019b\x0006\x0000\x0002\u019f\x0001\u019b" + + "\x0002\u019f\x0002\u019b\x0001\u019f\x0001\u019b\x0001\u019f\x0001\u0162\x000B\x0000\x0001\u0122" + + "\x0070\x0000\x0029\u0167\x0001\u01a0\x0006\u0167\x0001\u0169\x0002\x0000\x0002\u0167\x0004\x0000" + + "\x0001\u0167\x0069\x0000\x0029\u0168\x0001\u01a1\x0003\x0000\x0001\u0168\x0001\u0167\x0001\u0168" + + "\x0001\u0169\x0002\x0000\x0002\u0168\x006E\x0000\x0029\u0169\x0001\u01a2\x0006\u0169\x0003\x0000" + + "\x0002\u0169\x0004\x0000\x0001\u0169\x0069\x0000\x0001\u01a3\x001A\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\u01a3\x0004\x0098\x0001\u01a4\x0015\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\u01a3\x000D\x0098\x0001\u012f\x000C\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\u01a3" + + "\x0008\x0098\x0001\u012f\x0011\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\u01a3\x000F\x0098" + + "\x0001\u016a\x000A\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\u01a3\x0005\x0098\x0001\u01a5" + + "\x0004\x0098\x0001\u016a\x000F\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0010\x0098" + + "\x0001\u016a\x0009\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0007\x0098\x0001\u016a" + + "\x0012\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0017\x0098\x0001\u016a\x0002\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\u01a3\x0006\x0098\x0001\u01a4\x0008\x0098\x0001\u016a" + + "\x000A\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\u01a3\x0014\x0098\x0001\u01a6\x0005\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0009\x0098\x0001\u016a\x0010\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\u01a3\x000E\x0098\x0001\u01a7\x000B\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\u01a3\x000A\x0098\x0001\u01a8\x000F\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\u01a3\x0005\x0098\x0001\u016a\x0014\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\u01a3" + + "\x0001\u01a9\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\u01aa" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0012\x0098\x0001\u016a\x0007\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\u01a3\x0013\x0098\x0001\u016a\x0006\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\u01a3\x0014\x0098\x0001\u01ab\x0005\x0098\x0001\x00E7\x000A\x0098\x0099\x0000\x000A\u01ac" + + "\x0008\x0000\x0001\u0167\x0001\u0168\x0001\u0169\x0072\x0000\x0001\u017f\x0025\u013f\x0001\u0167" + + "\x0002\u013f\x0001\u0180\x0001\u0167\x0002\u013f\x0001\u0181\x0002\u013f\x0001\u0141\x0002\x0000" + + "\x0001\u0167\x0001\u013f\x0001\x0072\x0003\x0000\x0001\u013f\x0001\x005E\x0068\x0000\x0001\x005D" + + "\x0004\u01ad\x0002\x005E\x0001\u01ad\x000D\x005E\x0001\u01ad\x0006\x005E\x000A\u01ad\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0029\u0167\x0001\u01a0\x0006\u0167\x0001\u0169\x0001\x0099\x0001\x0000" + + "\x0002\u0167\x0004\x0000\x0001\u0167\x0069\x0000\x0001\u0182\x0025\u0140\x0001\u0168\x0002\u0140" + + "\x0001\u0183\x0001\x0000\x0002\x005E\x0001\u0184\x0001\u013f\x0001\u0140\x0001\u0141\x0002\x0000" + + "\x0001\u0168\x0001\u0140\x0001\x0072\x0003\x0000\x0002\x005E\x0068\x0000\x0001\x005D\x0004\u01ae" + + "\x0002\x005E\x0001\u01ae\x000D\x005E\x0001\u01ae\x0006\x005E\x000A\u01ae\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0029\u0168\x0001\u01a1\x0003\x0000\x0001\u0168\x0001\u0167\x0001\u0168\x0001\u0169" + + "\x0001\x0099\x0001\x0000\x0002\u0168\x006E\x0000\x0001\u0185\x0025\u0141\x0001\u0169\x0002\u0141" + + "\x0001\u0186\x0001\u0169\x0002\u0141\x0001\u0187\x0002\u0141\x0001\x005E\x0002\x0000\x0001\u0169" + + "\x0001\u0141\x0001\x0072\x0003\x0000\x0001\u0141\x0001\x005E\x0068\x0000\x0001\x005D\x0004\u01af" + + "\x0002\x005E\x0001\u01af\x000D\x005E\x0001\u01af\x0006\x005E\x000A\u01af\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0029\u0169\x0001\u01a2\x0006\u0169\x0001\x0000\x0001\x0099\x0001\x0000\x0002\u0169" + + "\x0004\x0000\x0001\u0169\x0003\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D" + + "\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031" + + "\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0060\x0010\x001E\x0001\u01b0\x0009\x001E\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E" + + "\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0003\x0000" + + "\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0002\x0015\x0001\x0034" + + "\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0060\x0003\x001E\x0001\x00F5\x0016\x001E\x0001\x0061\x000A\x0062\x0001\x0035" + + "\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E\x0001\x0064\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x005D\x0001\x00B4\x0001\u01b1" + + "\x0001\u01b2\x0002\x00B4\x0001\u01b3\x0001\u01b4\x0001\u01b5\x0001\x00B4\x0001\u01b6\x0001\u01b7" + + "\x0002\x00B4\x0001\u01b8\x0001\u01b9\x0002\x00B4\x0001\u01ba\x0001\u01bb\x0001\u01bc\x0001\x00B4" + + "\x0001\u01bd\x0001\u01be\x0001\x00B4\x0001\u01bf\x0001\u01c0\x0001\x0061\x0001\u01c1\x0002\x00B4" + + "\x0001\u01c2\x0001\u01c3\x0001\u01c4\x0001\x00B4\x0001\u01c5\x0001\u01c6\x0001\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0097\x0000\x0001\u01c7\x0073\x0000\x0001\u01c8\x001A\u01c9\x0001\u01c8\x000A\u01c9" + + "\x0001\u01ca\x0002\u01c8\x0001\u01cb\x0003\u01c8\x0001\u01cc\x0003\x0000\x0001\u01cd\x0001\x0000" + + "\x0002\u01c8\x0004\x0000\x0001\u01c8\x0098\x0000\x0001\u01ce\x0073\x0000\x0001\x00FE\x0010\x00B4" + + "\x0001\u01cf\x0009\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0003\x00B4\x0001\u010e\x0016\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x000C\x0000" + + "\x0001\x0087\x0003\x0000\x0001\x0088\x0005\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x000C\x0000" + + "\x0001\x008B\x000E\x0000\x0001\x008C\x0002\x0000\x0001\x008D\x0022\x0000\x0001\x003E\x0001\x0016" + + "\x0006\x0000\x0001\x003E\x0003\x0000\x0001\x005D\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE" + + "\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6" + + "\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE" + + "\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3\x0001\x00D4\x0001\x005E\x0001\u01d0" + + "\x0002\u01d1\x0001\u01d0\x0005\u01d1\x0001\u01d2\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0001\x0072\x0003\x0000\x0002\x005E\x0002\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0190\x001A\x001E\x0001\x0061\x000A\x00D8\x0001\x0000" + + "\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F\x0003\x005E\x0002\x0000" + + "\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037" + + "\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015" + + "\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015" + + "\x0001\u0190\x001A\x001E\x0001\x0061\x0002\u0191\x0001\x00D8\x0002\u0191\x0002\x00D8\x0001\u0191" + + "\x0001\x00D8\x0001\u0191\x0001\x0000\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A" + + "\x0001\x005F\x0003\x005E\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0069\x0000" + + "\x0004\u01d3\x0002\x0000\x0001\u01d3\x000D\x0000\x0001\u01d3\x0006\x0000\x000A\u01d3\x0001\u015c" + + "\x007D\x0000\x0004\u01d4\x0002\x0000\x0001\u01d4\x000D\x0000\x0001\u01d4\x0006\x0000\x000A\u01d4" + + "\x0001\u01d5\x007D\x0000\x0004\u01d6\x0002\x0000\x0001\u01d6\x000D\x0000\x0001\u01d6\x0006\x0000" + + "\x0001\u01d7\x0002\u01d8\x0001\u01d7\x0005\u01d8\x0001\u01d9\x000C\x0000\x0001\u0122\x0071\x0000" + + "\x0004\u01da\x0002\x0000\x0001\u01da\x000D\x0000\x0001\u01da\x0006\x0000\x000A\u01da\x0001\u0197" + + "\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u01d6\x0002\x0000\x0001\u01d6\x000D\x0000\x0001\u01d6" + + "\x0006\x0000\x0001\u01d7\x0002\u01d8\x0001\u01d7\x0005\u01d8\x0001\u01d9\x007D\x0000\x0001\u0163" + + "\x0004\u01da\x0002\x0000\x0001\u01da\x000D\x0000\x0001\u01da\x0006\x0000\x000A\u01db\x0001\u0197" + + "\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u01da\x0002\x0000\x0001\u01da\x000D\x0000" + + "\x0001\u01da\x0006\x0000\x000A\u01da\x0001\u0197\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163" + + "\x0004\u01da\x0002\x0000\x0001\u01da\x000D\x0000\x0001\u01da\x0006\x0000\x0002\u01db\x0001\u01da" + + "\x0002\u01db\x0002\u01da\x0001\u01db\x0001\u01da\x0001\u01db\x0001\u0197\x000B\x0000\x0001\u0122" + + "\x0071\x0000\x0004\u01dc\x0002\x0000\x0001\u01dc\x000D\x0000\x0001\u01dc\x0006\x0000\x000A\u01dc" + + "\x0001\u0162\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u01dd\x001B\x0000\x000A\u019d\x007D\x0000" + + "\x0001\u01dd\x001B\x0000\x000A\u01de\x007D\x0000\x0001\u01dd\x001B\x0000\x0001\u019d\x0001\u01df" + + "\x0001\u01de\x0002\u019d\x0002\u01de\x0001\u019d\x0001\u01de\x0001\u019d\x007D\x0000\x0001\u0163" + + "\x0004\u01dc\x0002\x0000\x0001\u01dc\x000D\x0000\x0001\u01dc\x0006\x0000\x000A\u01dc\x0001\u0162" + + "\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u01e0\x0002\x0000\x0001\u01e0\x000D\x0000\x0001\u01e0" + + "\x0006\x0000\x000A\u01e0\x007E\x0000\x0004\u01e1\x0002\x0000\x0001\u01e1\x000D\x0000\x0001\u01e1" + + "\x0006\x0000\x000A\u01e1\x007E\x0000\x0004\u01e2\x0002\x0000\x0001\u01e2\x000D\x0000\x0001\u01e2" + + "\x0006\x0000\x000A\u01e2\x007D\x0000\x0001\x00E6\x0005\x0098\x0001\u016a\x0014\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x000D\x0098\x0001\u016a\x000C\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0008\x0098\x0001\u016a\x0011\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0003\x0098\x0001\u01e3\x0016\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0003\x0098\x0001\u016a\x0016\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0017\x0098" + + "\x0001\u01e4\x0002\x0098\x0001\x00E7\x000A\x0098\x007E\x0000\x001A\x0098\x0001\u01e5\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x000E\x0098\x0001\u016a\x000B\x0098\x0001\x00E7\x000A\x0098\x0099\x0000" + + "\x000A\u01e6\x0008\x0000\x0001\u0167\x0001\u0168\x0001\u0169\x0072\x0000\x0001\x005D\x0004\u013f" + + "\x0002\x005E\x0001\u013f\x000D\x005E\x0001\u013f\x0006\x005E\x000A\u013f\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x005D\x0004\u0140\x0002\x005E\x0001\u0140\x000D\x005E\x0001\u0140\x0006\x005E" + + "\x000A\u0140\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x005D\x0004\u0141\x0002\x005E\x0001\u0141" + + "\x000D\x005E\x0001\u0141\x0006\x005E\x000A\u0141\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0003\x0000\x0001\x002D\x0005\x0000\x0001\x002E\x0003\x0000\x0001\x002F" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x0031\x000E\x0000\x0001\x0032\x0002\x0000\x0001\x0033" + + "\x0021\x0000\x0002\x0015\x0001\x0034\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0001\x0036" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0060\x000A\x001E\x0001\x00EA\x000F\x001E" + + "\x0001\x0061\x000A\x0062\x0001\x0035\x0001\x005E\x0001\x0063\x0001\x005E\x0001\x0000\x0001\x005E" + + "\x0001\x0064\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0009\x00B4\x0001\u01e7\x0010\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u01e8\x0016\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0007\x00B4\x0001\u01e9\x0012\x00B4\x0001\x0061\x0004\x00B4" + + "\x0001\u01ea\x0005\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0008\x00B4\x0001\u01eb" + + "\x0004\x00B4\x0001\u01ec\x0005\x00B4\x0001\u01ed\x0006\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u01ee\x0016\x00B4\x0001\x0061\x0002\x00B4" + + "\x0001\u01ef\x0007\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0007\x00B4\x0001\u01f0" + + "\x0012\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0007\x00B4" + + "\x0001\u01f1\x0012\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0007\x00B4\x0001\u01f2\x0012\x00B4\x0001\x0061\x0003\x00B4\x0001\u01f3\x0006\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0005\x00B4\x0001\u01f4\x0004\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0007\x00B4\x0001\u01f5\x0012\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0019\x00B4\x0001\u01f6\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u01f7\x0018\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0007\x00B4\x0001\u01f8" + + "\x0001\x00B4\x0001\u01f9\x0010\x00B4\x0001\x0061\x0009\x00B4\x0001\u01f4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0012\x00B4\x0001\u01fa\x0007\x00B4\x0001\x0061\x0002\x00B4\x0001\u01fb" + + "\x0007\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0006\x00B4\x0001\u01fc\x0001\u01fd" + + "\x0012\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0007\x00B4" + + "\x0001\u01fe\x0005\x00B4\x0001\u01ff\x000C\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0013\x00B4\x0001\u0200\x0006\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0003\x00B4\x0001\u0201\x0006\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u0202\x0016\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x000F\x00B4\x0001\u0203\x000A\x00B4" + + "\x0001\x0061\x0001\u0204\x0009\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0001\x00B4\x0001\u01f4\x0008\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0001\u0205\x0009\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0069\x0000\x001A\u0206" + + "\x0001\x0000\x000A\u0206\x0009\x0000\x0001\u0207\x0001\x0000\x0001\u0208\x0071\x0000\x0026\u01c8" + + "\x0001\u01ca\x0002\u01c8\x0001\u01cb\x0003\u01c8\x0001\u01cc\x0005\x0000\x0002\u01c8\x0004\x0000" + + "\x0001\u01c8\x0069\x0000\x0001\u0209\x001A\u01c9\x0001\u020a\x000A\u01c9\x0001\u020b\x0002\u01c8" + + "\x0001\u01cb\x0003\u01c8\x0001\u01cc\x0001\x0000\x0001\u020c\x0003\x0000\x0002\u01c8\x0004\x0000" + + "\x0001\u01c8\x0069\x0000\x0026\u01ca\x0001\x0000\x0002\u01ca\x0001\u020d\x0003\u01ca\x0001\u01cc" + + "\x0005\x0000\x0002\u01ca\x0004\x0000\x0001\u01ca\x006A\x0000\x0004\u020e\x0002\x0000\x0001\u020e" + + "\x000D\x0000\x0001\u020e\x0006\x0000\x000A\u020e\x007E\x0000\x001A\u020f\x0001\x0000\x000A\u020f" + + "\x000B\x0000\x0001\u01cd\x0072\x0000\x0004\u0210\x0002\x0000\x0001\u0210\x000D\x0000\x0001\u0210" + + "\x0006\x0000\x000A\u0210\x0001\u0211\x007C\x0000\x0001\u0212\x001A\u0213\x0001\u0212\x000A\u0213" + + "\x0001\u0214\x0002\u0212\x0001\u0215\x0003\u0212\x0001\u0216\x0003\x0000\x0001\u0217\x0001\x0000" + + "\x0002\u0212\x0004\x0000\x0001\u0212\x0069\x0000\x0001\x00FE\x000A\x00B4\x0001\u0103\x000F\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037" + + "\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030" + + "\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015" + + "\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015" + + "\x0001\u011a\x001A\x001E\x0001\x0061\x000A\u01d1\x0001\u014f\x0001\x005E\x0001\x0069\x0001\x005E" + + "\x0001\x0000\x0002\x006A\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0002\x0000\x0001\x003E" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000" + + "\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000" + + "\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016" + + "\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011a" + + "\x001A\x001E\x0001\x0061\x000A\u0218\x0001\u014f\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000" + + "\x0002\x006A\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0002\x0000\x0001\x003E\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038" + + "\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B" + + "\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011a\x001A\x001E" + + "\x0001\x0061\x0001\u01d1\x0001\u0219\x0001\u0218\x0002\u01d1\x0002\u0218\x0001\u01d1\x0001\u0218" + + "\x0001\u01d1\x0001\u014f\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F" + + "\x0001\u013f\x0001\u0140\x0001\u0141\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x008E\x0000\x0001\u015c\x007D\x0000\x0004\u021a\x0002\x0000\x0001\u021a\x000D\x0000\x0001\u021a" + + "\x0006\x0000\x000A\u021a\x0001\u01d5\x007D\x0000\x0004\u021b\x0002\x0000\x0001\u021b\x000D\x0000" + + "\x0001\u021b\x0006\x0000\x000A\u021b\x0001\u021c\x007D\x0000\x0004\u021d\x0002\x0000\x0001\u021d" + + "\x000D\x0000\x0001\u021d\x0006\x0000\x000A\u021d\x0001\u021e\x000B\x0000\x0001\u0122\x0070\x0000" + + "\x0001\u0163\x0004\u021d\x0002\x0000\x0001\u021d\x000D\x0000\x0001\u021d\x0006\x0000\x000A\u021f" + + "\x0001\u021e\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u021d\x0002\x0000\x0001\u021d" + + "\x000D\x0000\x0001\u021d\x0006\x0000\x000A\u0220\x0001\u021e\x000B\x0000\x0001\u0122\x0070\x0000" + + "\x0001\u0163\x0004\u021d\x0002\x0000\x0001\u021d\x000D\x0000\x0001\u021d\x0006\x0000\x0001\u021f" + + "\x0001\u0221\x0001\u0220\x0002\u021f\x0002\u0220\x0001\u021f\x0001\u0220\x0001\u021f\x0001\u021e" + + "\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u0222\x0002\x0000\x0001\u0222\x000D\x0000\x0001\u0222" + + "\x0006\x0000\x000A\u0222\x0001\u0197\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u0222" + + "\x0002\x0000\x0001\u0222\x000D\x0000\x0001\u0222\x0006\x0000\x000A\u0222\x0001\u0197\x000B\x0000" + + "\x0001\u0122\x0096\x0000\x0001\u0162\x000B\x0000\x0001\u0122\x008C\x0000\x0001\u0223\x0002\u0224" + + "\x0001\u0223\x0005\u0224\x0001\u0225\x007D\x0000\x0001\u01dd\x00A2\x0000\x0001\u01dd\x001B\x0000" + + "\x0002\u01de\x0001\x0000\x0002\u01de\x0002\x0000\x0001\u01de\x0001\x0000\x0001\u01de\x007E\x0000" + + "\x0004\u0167\x0002\x0000\x0001\u0167\x000D\x0000\x0001\u0167\x0006\x0000\x000A\u0167\x007E\x0000" + + "\x0004\u0168\x0002\x0000\x0001\u0168\x000D\x0000\x0001\u0168\x0006\x0000\x000A\u0168\x007E\x0000" + + "\x0004\u0169\x0002\x0000\x0001\u0169\x000D\x0000\x0001\u0169\x0006\x0000\x000A\u0169\x007D\x0000" + + "\x0001\x00E6\x0010\x0098\x0001\u0226\x0009\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0003\x0098\x0001\u0175\x0016\x0098\x0001\x00E7\x000A\x0098\x007E\x0000\x0001\x0098\x0001\u0227" + + "\x0001\u0228\x0002\x0098\x0001\u0229\x0001\u022a\x0001\u022b\x0001\x0098\x0001\u022c\x0001\u022d" + + "\x0002\x0098\x0001\u022e\x0001\u022f\x0002\x0098\x0001\u0230\x0001\u0231\x0001\u0232\x0001\x0098" + + "\x0001\u0233\x0001\u0234\x0001\x0098\x0001\u0235\x0001\u0236\x0001\x00E7\x0001\u0237\x0002\x0098" + + "\x0001\u0238\x0001\u0239\x0001\u023a\x0001\x0098\x0001\u023b\x0001\u023c\x0001\x0098\x0099\x0000" + + "\x000A\u023d\x0008\x0000\x0001\u0167\x0001\u0168\x0001\u0169\x0072\x0000\x0001\x00FE\x0001\x00B4" + + "\x0001\u023e\x0018\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0014\x00B4\x0001\u023f\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0014\x00B4\x0001\u0240\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u0241\x0018\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x000C\x00B4\x0001\u0242\x000D\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u0243\x0018\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u0244\x0018\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u0245" + + "\x0018\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0011\x00B4" + + "\x0001\u0246\x0008\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0014\x00B4\x0001\u0247\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0014\x00B4\x0001\u0248\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u0249\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0152\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u0245\x0005\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u024a\x0005\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u024b\x0018\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0019\x00B4\x0001\u024c" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u024d" + + "\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4" + + "\x0001\u024e\x0018\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\u024f\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0011\x00B4\x0001\u0250\x0008\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0004\x00B4\x0001\u0251\x0015\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u0252\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u0253\x0005\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0004\x00B4\x0001\u0254\x0015\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0011\x00B4\x0001\u0255\x0008\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u0256" + + "\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0001\u0257\x0009\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0007\x00B4\x0001\u0258\x0002\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\u0259\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\u025a\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\u025b" + + "\x001A\u0206\x0001\u025c\x000A\u0206\x0009\x0000\x0001\u0207\x0073\x0000\x0029\u0207\x0001\u025d" + + "\x0003\x0000\x0003\u0207\x0001\u0169\x0003\x0000\x0001\u0207\x006F\x0000\x0004\u025e\x0002\x0000" + + "\x0001\u025e\x000D\x0000\x0001\u025e\x0006\x0000\x000A\u025e\x0001\u025f\x007C\x0000\x0001\u01c8" + + "\x001A\u01c9\x0001\u01c8\x000A\u01c9\x0001\u01ca\x0002\u01c8\x0001\u01cb\x0003\u01c8\x0001\u01cc" + + "\x0005\x0000\x0002\u01c8\x0004\x0000\x0001\u01c8\x0069\x0000\x0001\u01c8\x001A\u01c9\x0001\u020a" + + "\x000A\u01c9\x0001\u01ca\x0002\u01c8\x0001\u01cb\x0003\u01c8\x0001\u01cc\x0005\x0000\x0002\u01c8" + + "\x0004\x0000\x0001\u01c8\x0069\x0000\x001C\u01ca\x000A\u0260\x0001\x0000\x0002\u01ca\x0001\u020d" + + "\x0003\u01ca\x0001\u01cc\x0005\x0000\x0002\u01ca\x0004\x0000\x0001\u01ca\x0069\x0000\x0029\u020c" + + "\x0001\u0261\x0003\x0000\x0003\u020c\x0001\u0169\x0002\x0000\x0001\u0262\x0001\u020c\x006F\x0000" + + "\x0004\u0263\x0002\x0000\x0001\u0263\x000D\x0000\x0001\u0263\x0006\x0000\x000A\u0263\x007E\x0000" + + "\x0004\u01c8\x0002\x0000\x0001\u01c8\x000D\x0000\x0001\u01c8\x0006\x0000\x000A\u01c8\x007D\x0000" + + "\x0001\u0264\x001A\u020f\x0001\u0265\x000A\u020f\x0001\u0266\x0008\x0000\x0001\u020c\x0074\x0000" + + "\x0004\u0267\x0002\x0000\x0001\u0267\x000D\x0000\x0001\u0267\x0006\x0000\x000A\u0267\x0001\u0268" + + "\x00A2\x0000\x0001\u0269\x007C\x0000\x0026\u0212\x0001\u0214\x0002\u0212\x0001\u0215\x0003\u0212" + + "\x0001\u0216\x0005\x0000\x0002\u0212\x0004\x0000\x0001\u0212\x0069\x0000\x0001\u026a\x001A\u0213" + + "\x0001\u026b\x000A\u0213\x0001\u026c\x0002\u0212\x0001\u0215\x0003\u0212\x0001\u0216\x0001\u0167" + + "\x0001\u0168\x0001\u0169\x0002\x0000\x0002\u0212\x0004\x0000\x0001\u0212\x0069\x0000\x0026\u0214" + + "\x0001\x0000\x0002\u0214\x0001\u026d\x0003\u0214\x0001\u0216\x0005\x0000\x0002\u0214\x0004\x0000" + + "\x0001\u0214\x006A\x0000\x0004\u026e\x0002\x0000\x0001\u026e\x000D\x0000\x0001\u026e\x0006\x0000" + + "\x000A\u026e\x007E\x0000\x001A\u026f\x0001\x0000\x000A\u026f\x000B\x0000\x0001\u0217\x000B\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000" + + "\x0001\x003A\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011a\x001A\x001E\x0001\x0061\x000A\x00D8\x0001\u014f" + + "\x0001\x005E\x0001\x0069\x0001\x005E\x0001\x0000\x0002\x006A\x0001\x005F\x0001\u013f\x0001\u0140" + + "\x0001\u0141\x0002\x0000\x0001\x003E\x0001\x005E\x0004\x0000\x0002\x005E\x0002\x0000\x0001\x0027" + + "\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x0005\x0000\x0001\x0039\x0003\x0000\x0001\x003A" + + "\x0009\x0000\x0001\x0030\x0002\x0000\x0001\x003B\x000E\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003E\x0001\x003F\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0015\x0001\u011a\x001A\x001E\x0001\x0061\x0002\u0218\x0001\x00D8\x0002\u0218" + + "\x0002\x00D8\x0001\u0218\x0001\x00D8\x0001\u0218\x0001\u014f\x0001\x005E\x0001\x0069\x0001\x005E" + + "\x0001\x0000\x0002\x006A\x0001\x005F\x0001\u013f\x0001\u0140\x0001\u0141\x0002\x0000\x0001\x003E" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0069\x0000\x0004\u0270\x0002\x0000\x0001\u0270\x000D\x0000" + + "\x0001\u0270\x0006\x0000\x000A\u0270\x0001\u01d5\x007D\x0000\x0004\u0271\x0002\x0000\x0001\u0271" + + "\x000D\x0000\x0001\u0271\x0006\x0000\x000A\u0271\x0001\u0272\x007D\x0000\x0004\u0273\x0002\x0000" + + "\x0001\u0273\x000D\x0000\x0001\u0273\x0006\x0000\x0001\u0274\x0002\u0275\x0001\u0274\x0005\u0275" + + "\x0001\u0276\x000C\x0000\x0001\u0122\x0071\x0000\x0004\u0277\x0002\x0000\x0001\u0277\x000D\x0000" + + "\x0001\u0277\x0006\x0000\x000A\u0277\x0001\u021e\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u0273" + + "\x0002\x0000\x0001\u0273\x000D\x0000\x0001\u0273\x0006\x0000\x0001\u0274\x0002\u0275\x0001\u0274" + + "\x0005\u0275\x0001\u0276\x007D\x0000\x0001\u0163\x0004\u0277\x0002\x0000\x0001\u0277\x000D\x0000" + + "\x0001\u0277\x0006\x0000\x000A\u0278\x0001\u021e\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163" + + "\x0004\u0277\x0002\x0000\x0001\u0277\x000D\x0000\x0001\u0277\x0006\x0000\x000A\u0277\x0001\u021e" + + "\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u0277\x0002\x0000\x0001\u0277\x000D\x0000" + + "\x0001\u0277\x0006\x0000\x0002\u0278\x0001\u0277\x0002\u0278\x0002\u0277\x0001\u0278\x0001\u0277" + + "\x0001\u0278\x0001\u021e\x000B\x0000\x0001\u0122\x0096\x0000\x0001\u0197\x000B\x0000\x0001\u0122" + + "\x0070\x0000\x0001\u0279\x001B\x0000\x000A\u0224\x007D\x0000\x0001\u0279\x001B\x0000\x000A\u027a" + + "\x007D\x0000\x0001\u0279\x001B\x0000\x0001\u0224\x0001\u027b\x0001\u027a\x0002\u0224\x0002\u027a" + + "\x0001\u0224\x0001\u027a\x0001\u0224\x007D\x0000\x0001\x00E6\x000A\x0098\x0001\u016a\x000F\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0009\x0098\x0001\u027c\x0010\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u027d\x0016\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0007\x0098\x0001\u027e\x0012\x0098\x0001\x00E7\x0004\x0098\x0001\u027f" + + "\x0005\x0098\x007D\x0000\x0001\x00E6\x0008\x0098\x0001\u0280\x0004\x0098\x0001\u0281\x0005\x0098" + + "\x0001\u0282\x0006\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u0283" + + "\x0016\x0098\x0001\x00E7\x0002\x0098\x0001\u0284\x0007\x0098\x007D\x0000\x0001\x00E6\x0007\x0098" + + "\x0001\u0285\x0012\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0007\x0098\x0001\u0286" + + "\x0012\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0007\x0098\x0001\u0287\x0012\x0098" + + "\x0001\x00E7\x0003\x0098\x0001\u0288\x0006\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7" + + "\x0005\x0098\x0001\u0289\x0004\x0098\x007D\x0000\x0001\x00E6\x0007\x0098\x0001\u028a\x0012\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0019\x0098\x0001\u028b\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u028c\x0018\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0007\x0098\x0001\u028d\x0001\x0098\x0001\u028e\x0010\x0098\x0001\x00E7\x0009\x0098" + + "\x0001\u0289\x007D\x0000\x0001\x00E6\x0012\x0098\x0001\u028f\x0007\x0098\x0001\x00E7\x0002\x0098" + + "\x0001\u0290\x0007\x0098\x007D\x0000\x0001\x00E6\x0006\x0098\x0001\u0291\x0001\u0292\x0012\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0007\x0098\x0001\u0293\x0005\x0098\x0001\u0294" + + "\x000C\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0013\x0098\x0001\u0295\x0006\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0003\x0098\x0001\u0296" + + "\x0006\x0098\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u0297\x0016\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x000F\x0098\x0001\u0298\x000A\x0098\x0001\x00E7\x0001\u0299\x0009\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\x0098\x0001\u0289\x0008\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\u029a\x0009\x0098\x0099\x0000\x000A\u029b\x0008\x0000" + + "\x0001\u0167\x0001\u0168\x0001\u0169\x0072\x0000\x0001\x00FE\x0015\x00B4\x0001\u029c\x0004\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u029d\x0019\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x000D\x00B4\x0001\u029e" + + "\x000C\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0011\x00B4" + + "\x0001\u029f\x0008\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x000E\x00B4\x0001\u02a0\x0004\x00B4\x0001\u02a1\x0006\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0004\x00B4\x0001\u02a2\x0015\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0009\x00B4\x0001\u02a3" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0004\x00B4\x0001\u02a4\x0015\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0009\x00B4" + + "\x0001\u02a5\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u02a6\x0005\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u02a7\x0001\u02a8" + + "\x0001\x00B4\x0001\u02a9\x0010\x00B4\x0001\u02aa\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x000E\x00B4\x0001\u02ab\x000B\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0009\x00B4\x0001\u02ac\x000B\x00B4\x0001\u02ad" + + "\x0004\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0009\x00B4\x0001\u02ae\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0013\x00B4" + + "\x0001\u02af\x0006\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0019\x00B4\x0001\u02b0\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0016\x00B4\x0001\u02b1\x0003\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0009\x00B4\x0001\u02b2\x0010\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0003\x00B4\x0001\u02b3\x0006\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0005\x00B4\x0001\u02b4\x0014\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0008\x00B4\x0001\u02b5\x0011\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u02b6\x0016\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0011\x00B4\x0001\u02b7" + + "\x0006\x00B4\x0001\u02b8\x0001\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x000A\x00B4\x0001\u02b9\x000F\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0001\x00B4\x0001\u02ba\x0008\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u02bb\x0005\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\u02bc\x0005\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0004\x00B4" + + "\x0001\u02bd\x0005\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0019\x00B4\x0001\u02be" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0069\x0000\x001A\u0206\x0001\x0000\x000A\u0206" + + "\x007E\x0000\x001A\u0206\x0001\u025c\x000A\u0206\x007E\x0000\x0004\u02bf\x0002\x0000\x0001\u02bf" + + "\x000D\x0000\x0001\u02bf\x0006\x0000\x000A\u02bf\x007E\x0000\x0004\u02c0\x0002\x0000\x0001\u02c0" + + "\x000D\x0000\x0001\u02c0\x0006\x0000\x000A\u02c0\x0001\u02c1\x00A2\x0000\x0001\u02c2\x007C\x0000" + + "\x001C\u01ca\x000A\u02c3\x0001\x0000\x0002\u01ca\x0001\u020d\x0003\u01ca\x0001\u01cc\x0001\x0000" + + "\x0001\u020c\x0003\x0000\x0002\u01ca\x0004\x0000\x0001\u01ca\x006A\x0000\x0004\u02c4\x0002\x0000" + + "\x0001\u02c4\x000D\x0000\x0001\u02c4\x0006\x0000\x000A\u02c4\x008D\x0000\x0001\u02c5\x0093\x0000" + + "\x0004\u01ca\x0002\x0000\x0001\u01ca\x000D\x0000\x0001\u01ca\x0006\x0000\x000A\u01ca\x007E\x0000" + + "\x001A\u020f\x0001\x0000\x000A\u020f\x007E\x0000\x001A\u020f\x0001\u0265\x000A\u020f\x0099\x0000" + + "\x000A\u02c6\x007E\x0000\x0004\u02c7\x0002\x0000\x0001\u02c7\x000D\x0000\x0001\u02c7\x0006\x0000" + + "\x000A\u02c7\x0001\u0268\x007D\x0000\x0004\u02c8\x0002\x0000\x0001\u02c8\x000D\x0000\x0001\u02c8" + + "\x0006\x0000\x000A\u02c8\x0001\u02c9\x007D\x0000\x0004\u02ca\x0002\x0000\x0001\u02ca\x000D\x0000" + + "\x0001\u02ca\x0006\x0000\x0001\u02cb\x0002\u02cc\x0001\u02cb\x0005\u02cc\x0001\u02cd\x000C\x0000" + + "\x0001\u02ce\x0070\x0000\x0001\u0212\x001A\u0213\x0001\u0212\x000A\u0213\x0001\u0214\x0002\u0212" + + "\x0001\u0215\x0003\u0212\x0001\u0216\x0005\x0000\x0002\u0212\x0004\x0000\x0001\u0212\x0069\x0000" + + "\x0001\u0212\x001A\u0213\x0001\u026b\x000A\u0213\x0001\u0214\x0002\u0212\x0001\u0215\x0003\u0212" + + "\x0001\u0216\x0005\x0000\x0002\u0212\x0004\x0000\x0001\u0212\x0069\x0000\x001C\u0214\x000A\u02cf" + + "\x0001\x0000\x0002\u0214\x0001\u026d\x0003\u0214\x0001\u0216\x0005\x0000\x0002\u0214\x0004\x0000" + + "\x0001\u0214\x006A\x0000\x0004\u02d0\x0002\x0000\x0001\u02d0\x000D\x0000\x0001\u02d0\x0006\x0000" + + "\x000A\u02d0\x007E\x0000\x0004\u0212\x0002\x0000\x0001\u0212\x000D\x0000\x0001\u0212\x0006\x0000" + + "\x000A\u0212\x007D\x0000\x0001\u02d1\x001A\u026f\x0001\u02d2\x000A\u026f\x0001\u014f\x0007\x0000" + + "\x0001\u0167\x0001\u0168\x0001\u0169\x0098\x0000\x0001\u01d5\x007D\x0000\x0004\u02d3\x0002\x0000" + + "\x0001\u02d3\x000D\x0000\x0001\u02d3\x0006\x0000\x000A\u02d3\x0001\u0272\x007D\x0000\x0004\u02d4" + + "\x0002\x0000\x0001\u02d4\x000D\x0000\x0001\u02d4\x0006\x0000\x000A\u02d4\x0001\u02d5\x007D\x0000" + + "\x0004\u02d6\x0002\x0000\x0001\u02d6\x000D\x0000\x0001\u02d6\x0006\x0000\x000A\u02d6\x0001\u02d7" + + "\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u02d6\x0002\x0000\x0001\u02d6\x000D\x0000" + + "\x0001\u02d6\x0006\x0000\x000A\u02d8\x0001\u02d7\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163" + + "\x0004\u02d6\x0002\x0000\x0001\u02d6\x000D\x0000\x0001\u02d6\x0006\x0000\x000A\u02d9\x0001\u02d7" + + "\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u02d6\x0002\x0000\x0001\u02d6\x000D\x0000" + + "\x0001\u02d6\x0006\x0000\x0001\u02d8\x0001\u02da\x0001\u02d9\x0002\u02d8\x0002\u02d9\x0001\u02d8" + + "\x0001\u02d9\x0001\u02d8\x0001\u02d7\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u02db\x0002\x0000" + + "\x0001\u02db\x000D\x0000\x0001\u02db\x0006\x0000\x000A\u02db\x0001\u021e\x000B\x0000\x0001\u0122" + + "\x0070\x0000\x0001\u0163\x0004\u02db\x0002\x0000\x0001\u02db\x000D\x0000\x0001\u02db\x0006\x0000" + + "\x000A\u02db\x0001\u021e\x000B\x0000\x0001\u0122\x008C\x0000\x0001\u02dc\x0002\u02dd\x0001\u02dc" + + "\x0005\u02dd\x0001\u02de\x007D\x0000\x0001\u0279\x00A2\x0000\x0001\u0279\x001B\x0000\x0002\u027a" + + "\x0001\x0000\x0002\u027a\x0002\x0000\x0001\u027a\x0001\x0000\x0001\u027a\x007D\x0000\x0001\x00E6" + + "\x0001\x0098\x0001\u02df\x0018\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098" + + "\x0001\u02e0\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u02e1" + + "\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u02e2\x0018\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x000C\x0098\x0001\u02e3\x000D\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u02e4\x0018\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u02e5\x0018\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0001\x0098\x0001\u02e6\x0018\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0011\x0098\x0001\u02e7\x0008\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098" + + "\x0001\u02e8\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u02e9" + + "\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u02ea\x0005\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u01a6\x0019\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u02e6\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0014\x0098\x0001\u02eb\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0001\x0098\x0001\u02ec\x0018\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0019\x0098" + + "\x0001\u02ed\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u02ee\x0005\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u02ef\x0018\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u02f0\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0011\x0098\x0001\u02f1\x0008\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0004\x0098\x0001\u02f2\x0015\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098" + + "\x0001\u02f3\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u02f4" + + "\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0004\x0098\x0001\u02f5\x0015\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0011\x0098\x0001\u02f6\x0008\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u02f7\x0005\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\u02f8\x0009\x0098\x007D\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0007\x0098\x0001\u02f9\x0002\x0098\x007D\x0000\x0001\x00E6\x0001\u02fa" + + "\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u02fb\x0019\x0098\x0001\x00E7" + + "\x000A\x0098\x00AB\x0000\x0001\u0167\x0001\u0168\x0001\u0169\x0072\x0000\x0001\x00FE\x0001\x00B4" + + "\x0001\u02fc\x0018\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0001\u02fd\x0009\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0006\x00B4\x0001\u02fe\x0013\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x0007\x00B4\x0001\u02ff\x0002\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0008\x00B4\x0001\u0156\x0001\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0005\x00B4\x0001\u0156\x0004\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0016\x00B4\x0001\u0300\x0003\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u0301\x0018\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0016\x00B4\x0001\u0302" + + "\x0003\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0001\x00B4\x0001\u0303\x0008\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\u0304\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\u0305\x0017\x00B4\x0001\u0306\x0001\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0001\u0307\x0009\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0004\x00B4\x0001\u0308\x0015\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0015\x00B4\x0001\u0309\x0004\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0001\u030a\x0009\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0002\x00B4\x0001\x00C7" + + "\x0007\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0003\x00B4" + + "\x0001\u030b\x0006\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u030c\x0001\x00B4" + + "\x0001\u030d\x0017\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\u02ff\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0002\x00B4\x0001\u030e\x0007\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x0002\x00B4\x0001\u030f\x0007\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x000D\x00B4\x0001\u0310\x000C\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0005\x00B4\x0001\u0311\x0004\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0007\x00B4\x0001\u0312" + + "\x0002\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0009\x00B4" + + "\x0001\u0313\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u0314\x0018\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061" + + "\x0003\x00B4\x0001\u0315\x0006\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0001\x00B4\x0001\u0316\x0008\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0001\x00B4\x0001\u0317\x0008\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0014\x00B4\x0001\u0318\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0006\x00B4\x0001\u0319\x0003\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0003\x00B4\x0001\u031a\x0006\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u030b\x0019\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0015\x00B4\x0001\u031b\x0004\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0069\x0000\x0004\u0207\x0002\x0000\x0001\u0207\x000D\x0000" + + "\x0001\u0207\x0006\x0000\x000A\u0207\x007E\x0000\x0004\u031c\x0002\x0000\x0001\u031c\x000D\x0000" + + "\x0001\u031c\x0006\x0000\x000A\u031c\x0001\u02c1\x007D\x0000\x0004\u031d\x0002\x0000\x0001\u031d" + + "\x000D\x0000\x0001\u031d\x0006\x0000\x000A\u031d\x0001\u031e\x007D\x0000\x0004\u031f\x0002\x0000" + + "\x0001\u031f\x000D\x0000\x0001\u031f\x0006\x0000\x0001\u0320\x0002\u0321\x0001\u0320\x0005\u0321" + + "\x0001\u0322\x000C\x0000\x0001\u0323\x0070\x0000\x001C\u01ca\x000A\u0324\x0001\x0000\x0002\u01ca" + + "\x0001\u020d\x0003\u01ca\x0001\u01cc\x0001\x0000\x0001\u020c\x0003\x0000\x0002\u01ca\x0004\x0000" + + "\x0001\u01ca\x006A\x0000\x0004\u020c\x0002\x0000\x0001\u020c\x000D\x0000\x0001\u020c\x0006\x0000" + + "\x000A\u020c\x0096\x0000\x0001\u0325\x00A5\x0000\x000A\u0326\x0009\x0000\x0001\u020c\x0074\x0000" + + "\x0004\u0327\x0002\x0000\x0001\u0327\x000D\x0000\x0001\u0327\x0006\x0000\x000A\u0327\x0001\u0268" + + "\x007D\x0000\x0004\u0328\x0002\x0000\x0001\u0328\x000D\x0000\x0001\u0328\x0006\x0000\x000A\u0328" + + "\x0001\u0329\x007D\x0000\x0004\u032a\x0002\x0000\x0001\u032a\x000D\x0000\x0001\u032a\x0006\x0000" + + "\x0001\u032b\x0002\u032c\x0001\u032b\x0005\u032c\x0001\u032d\x000C\x0000\x0001\u02ce\x0071\x0000" + + "\x0004\u032e\x0002\x0000\x0001\u032e\x000D\x0000\x0001\u032e\x0006\x0000\x000A\u032e\x0001\u032f" + + "\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u032e\x0002\x0000\x0001\u032e\x000D\x0000" + + "\x0001\u032e\x0006\x0000\x000A\u0331\x0001\u032f\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330" + + "\x0004\u032e\x0002\x0000\x0001\u032e\x000D\x0000\x0001\u032e\x0006\x0000\x000A\u0332\x0001\u032f" + + "\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u032e\x0002\x0000\x0001\u032e\x000D\x0000" + + "\x0001\u032e\x0006\x0000\x0001\u0331\x0001\u0333\x0001\u0332\x0002\u0331\x0002\u0332\x0001\u0331" + + "\x0001\u0332\x0001\u0331\x0001\u032f\x000B\x0000\x0001\u02ce\x0096\x0000\x0001\u0266\x0008\x0000" + + "\x0001\u020c\x0073\x0000\x001C\u0214\x000A\u0334\x0001\x0000\x0002\u0214\x0001\u026d\x0003\u0214" + + "\x0001\u0216\x0001\u0167\x0001\u0168\x0001\u0169\x0002\x0000\x0002\u0214\x0004\x0000\x0001\u0214" + + "\x006A\x0000\x0004\u0214\x0002\x0000\x0001\u0214\x000D\x0000\x0001\u0214\x0006\x0000\x000A\u0214" + + "\x007E\x0000\x001A\u026f\x0001\x0000\x000A\u026f\x007E\x0000\x001A\u026f\x0001\u02d2\x000A\u026f" + + "\x007E\x0000\x0004\u0335\x0002\x0000\x0001\u0335\x000D\x0000\x0001\u0335\x0006\x0000\x000A\u0335" + + "\x0001\u0272\x007D\x0000\x0004\u0336\x0002\x0000\x0001\u0336\x000D\x0000\x0001\u0336\x0006\x0000" + + "\x000A\u0336\x0001\u0337\x007D\x0000\x0004\u0338\x0002\x0000\x0001\u0338\x000D\x0000\x0001\u0338" + + "\x0006\x0000\x0001\u0339\x0002\u033a\x0001\u0339\x0005\u033a\x0001\u033b\x000C\x0000\x0001\u0122" + + "\x0071\x0000\x0004\u033c\x0002\x0000\x0001\u033c\x000D\x0000\x0001\u033c\x0006\x0000\x000A\u033c" + + "\x0001\u02d7\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u0338\x0002\x0000\x0001\u0338\x000D\x0000" + + "\x0001\u0338\x0006\x0000\x0001\u0339\x0002\u033a\x0001\u0339\x0005\u033a\x0001\u033b\x007D\x0000" + + "\x0001\u0163\x0004\u033c\x0002\x0000\x0001\u033c\x000D\x0000\x0001\u033c\x0006\x0000\x000A\u033d" + + "\x0001\u02d7\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u033c\x0002\x0000\x0001\u033c" + + "\x000D\x0000\x0001\u033c\x0006\x0000\x000A\u033c\x0001\u02d7\x000B\x0000\x0001\u0122\x0070\x0000" + + "\x0001\u0163\x0004\u033c\x0002\x0000\x0001\u033c\x000D\x0000\x0001\u033c\x0006\x0000\x0002\u033d" + + "\x0001\u033c\x0002\u033d\x0002\u033c\x0001\u033d\x0001\u033c\x0001\u033d\x0001\u02d7\x000B\x0000" + + "\x0001\u0122\x0096\x0000\x0001\u021e\x000B\x0000\x0001\u0122\x008C\x0000\x000A\u02dd\x000C\x0000" + + "\x0001\u0122\x008C\x0000\x000A\u033e\x000C\x0000\x0001\u0122\x008C\x0000\x0001\u02dd\x0001\u033f" + + "\x0001\u033e\x0002\u02dd\x0002\u033e\x0001\u02dd\x0001\u033e\x0001\u02dd\x000C\x0000\x0001\u0122" + + "\x0070\x0000\x0001\x00E6\x0015\x0098\x0001\u0340\x0004\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0001\u0341\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x000D\x0098" + + "\x0001\u0342\x000C\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0011\x0098\x0001\u0343" + + "\x0008\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x000E\x0098\x0001\u0344\x0004\x0098" + + "\x0001\u0345\x0006\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0004\x0098\x0001\u0346" + + "\x0015\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0009\x0098" + + "\x0001\u0347\x007D\x0000\x0001\x00E6\x0004\x0098\x0001\u0348\x0015\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0009\x0098\x0001\u0349\x007D\x0000\x0001\x00E6" + + "\x0014\x0098\x0001\u034a\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u034b" + + "\x0001\u034c\x0001\x0098\x0001\u034d\x0010\x0098\x0001\u034e\x0005\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x000E\x0098\x0001\u034f\x000B\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0009\x0098\x0001\u0350\x000B\x0098\x0001\u0351\x0004\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0009\x0098\x0001\u0352\x007D\x0000\x0001\x00E6" + + "\x0013\x0098\x0001\u0353\x0006\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0019\x0098" + + "\x0001\u0354\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0016\x0098\x0001\u0355\x0003\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0009\x0098\x0001\u0356\x0010\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0003\x0098\x0001\u0357\x0006\x0098" + + "\x007D\x0000\x0001\x00E6\x0005\x0098\x0001\u0358\x0014\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0008\x0098\x0001\u0359\x0011\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0003\x0098\x0001\u035a\x0016\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0011\x0098" + + "\x0001\u035b\x0006\x0098\x0001\u035c\x0001\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x000A\x0098\x0001\u035d\x000F\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098" + + "\x0001\x00E7\x0001\x0098\x0001\u035e\x0008\x0098\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u035f" + + "\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u0360\x0005\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0004\x0098\x0001\u0361" + + "\x0005\x0098\x007D\x0000\x0001\x00E6\x0019\x0098\x0001\u0362\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x0001\u0363\x0009\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0001\u0364\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x0008\x00B4\x0001\u0365\x0001\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0015\x00B4\x0001\u0103\x0004\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0005\x00B4\x0001\u0366\x0004\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0005\x00B4\x0001\u0367" + + "\x0004\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0005\x00B4" + + "\x0001\u030b\x0004\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061" + + "\x0003\x00B4\x0001\u0364\x0006\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x000F\x00B4" + + "\x0001\u0368\x000A\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x000A\x00B4\x0001\u0369\x000F\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0015\x00B4\x0001\u036a\x0004\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0001\u036b\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x000D\x00B4\x0001\u036c\x000C\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0003\x00B4\x0001\u036d\x0006\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0002\x00B4\x0001\u02ff\x0017\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u0103\x0018\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0009\x00B4\x0001\u036e" + + "\x0010\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0009\x00B4" + + "\x0001\u036f\x0010\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\u0370\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\u0371\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0002\x00B4\x0001\u0372\x0017\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x0004\x00B4\x0001\u010a\x0005\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0008\x00B4\x0001\u0373\x0011\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0374\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0015\x00B4\x0001\u0375\x0004\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0004\x00B4\x0001\u0364" + + "\x0005\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0006\x00B4" + + "\x0001\u0364\x0003\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061" + + "\x0002\x00B4\x0001\u0364\x0007\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x000E\x00B4" + + "\x0001\u0376\x000B\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0001\u0377\x0009\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0003\x00B4\x0001\u0378\x0006\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0014\x00B4\x0001\u0379\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0069\x0000\x0004\u037a\x0002\x0000\x0001\u037a\x000D\x0000\x0001\u037a\x0006\x0000\x000A\u037a" + + "\x0001\u02c1\x007D\x0000\x0004\u037b\x0002\x0000\x0001\u037b\x000D\x0000\x0001\u037b\x0006\x0000" + + "\x000A\u037b\x0001\u037c\x007D\x0000\x0004\u037d\x0002\x0000\x0001\u037d\x000D\x0000\x0001\u037d" + + "\x0006\x0000\x0001\u037e\x0002\u037f\x0001\u037e\x0005\u037f\x0001\u0380\x000C\x0000\x0001\u0323" + + "\x0071\x0000\x0004\u0381\x0002\x0000\x0001\u0381\x000D\x0000\x0001\u0381\x0006\x0000\x000A\u0381" + + "\x0001\u0382\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u0381\x0002\x0000\x0001\u0381" + + "\x000D\x0000\x0001\u0381\x0006\x0000\x000A\u0384\x0001\u0382\x000B\x0000\x0001\u0323\x0070\x0000" + + "\x0001\u0383\x0004\u0381\x0002\x0000\x0001\u0381\x000D\x0000\x0001\u0381\x0006\x0000\x000A\u0385" + + "\x0001\u0382\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u0381\x0002\x0000\x0001\u0381" + + "\x000D\x0000\x0001\u0381\x0006\x0000\x0001\u0384\x0001\u0386\x0001\u0385\x0002\u0384\x0002\u0385" + + "\x0001\u0384\x0001\u0385\x0001\u0384\x0001\u0382\x000B\x0000\x0001\u0323\x009F\x0000\x0001\u0207" + + "\x0073\x0000\x001C\u01ca\x000A\u0387\x0001\x0000\x0002\u01ca\x0001\u020d\x0003\u01ca\x0001\u01cc" + + "\x0001\x0000\x0001\u020c\x0003\x0000\x0002\u01ca\x0004\x0000\x0001\u01ca\x0077\x0000\x0001\u0388" + + "\x00B0\x0000\x000A\u0389\x0009\x0000\x0001\u020c\x0099\x0000\x0001\u0268\x007D\x0000\x0004\u038a" + + "\x0002\x0000\x0001\u038a\x000D\x0000\x0001\u038a\x0006\x0000\x000A\u038a\x0001\u0329\x007D\x0000" + + "\x0004\u038b\x0002\x0000\x0001\u038b\x000D\x0000\x0001\u038b\x0006\x0000\x000A\u038b\x0001\u038c" + + "\x007D\x0000\x0004\u038d\x0002\x0000\x0001\u038d\x000D\x0000\x0001\u038d\x0006\x0000\x000A\u038d" + + "\x0001\u038e\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u038d\x0002\x0000\x0001\u038d" + + "\x000D\x0000\x0001\u038d\x0006\x0000\x000A\u038f\x0001\u038e\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u038d\x0002\x0000\x0001\u038d\x000D\x0000\x0001\u038d\x0006\x0000\x000A\u0390" + + "\x0001\u038e\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u038d\x0002\x0000\x0001\u038d" + + "\x000D\x0000\x0001\u038d\x0006\x0000\x0001\u038f\x0001\u0391\x0001\u0390\x0002\u038f\x0002\u0390" + + "\x0001\u038f\x0001\u0390\x0001\u038f\x0001\u038e\x000B\x0000\x0001\u02ce\x0071\x0000\x0004\u0392" + + "\x0002\x0000\x0001\u0392\x000D\x0000\x0001\u0392\x0006\x0000\x000A\u0392\x0001\u032f\x000B\x0000" + + "\x0001\u02ce\x0071\x0000\x0004\u032a\x0002\x0000\x0001\u032a\x000D\x0000\x0001\u032a\x0006\x0000" + + "\x0001\u032b\x0002\u032c\x0001\u032b\x0005\u032c\x0001\u032d\x0099\x0000\x0001\u0393\x0002\u0394" + + "\x0001\u0393\x0005\u0394\x0001\u0395\x007D\x0000\x0001\u0330\x0004\u0392\x0002\x0000\x0001\u0392" + + "\x000D\x0000\x0001\u0392\x0006\x0000\x000A\u0396\x0001\u032f\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u0392\x0002\x0000\x0001\u0392\x000D\x0000\x0001\u0392\x0006\x0000\x000A\u0392" + + "\x0001\u032f\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u0392\x0002\x0000\x0001\u0392" + + "\x000D\x0000\x0001\u0392\x0006\x0000\x0002\u0396\x0001\u0392\x0002\u0396\x0002\u0392\x0001\u0396" + + "\x0001\u0392\x0001\u0396\x0001\u032f\x000B\x0000\x0001\u02ce\x0070\x0000\x001C\u0214\x000A\u0397" + + "\x0001\x0000\x0002\u0214\x0001\u026d\x0003\u0214\x0001\u0216\x0001\u0167\x0001\u0168\x0001\u0169" + + "\x0002\x0000\x0002\u0214\x0004\x0000\x0001\u0214\x008F\x0000\x0001\u0272\x007D\x0000\x0004\u0398" + + "\x0002\x0000\x0001\u0398\x000D\x0000\x0001\u0398\x0006\x0000\x000A\u0398\x0001\u0337\x007D\x0000" + + "\x0004\u0399\x0002\x0000\x0001\u0399\x000D\x0000\x0001\u0399\x0006\x0000\x000A\u0399\x0001\u039a" + + "\x007D\x0000\x0004\u039b\x0002\x0000\x0001\u039b\x000D\x0000\x0001\u039b\x0006\x0000\x000A\u039b" + + "\x0001\u039c\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u039b\x0002\x0000\x0001\u039b" + + "\x000D\x0000\x0001\u039b\x0006\x0000\x000A\u039d\x0001\u039c\x000B\x0000\x0001\u0122\x0070\x0000" + + "\x0001\u0163\x0004\u039b\x0002\x0000\x0001\u039b\x000D\x0000\x0001\u039b\x0006\x0000\x000A\u039e" + + "\x0001\u039c\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u039b\x0002\x0000\x0001\u039b" + + "\x000D\x0000\x0001\u039b\x0006\x0000\x0001\u039d\x0001\u039f\x0001\u039e\x0002\u039d\x0002\u039e" + + "\x0001\u039d\x0001\u039e\x0001\u039d\x0001\u039c\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u03a0" + + "\x0002\x0000\x0001\u03a0\x000D\x0000\x0001\u03a0\x0006\x0000\x000A\u03a0\x0001\u02d7\x000B\x0000" + + "\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u03a0\x0002\x0000\x0001\u03a0\x000D\x0000\x0001\u03a0" + + "\x0006\x0000\x000A\u03a0\x0001\u02d7\x000B\x0000\x0001\u0122\x00A2\x0000\x0001\u0122\x008C\x0000" + + "\x0002\u033e\x0001\x0000\x0002\u033e\x0002\x0000\x0001\u033e\x0001\x0000\x0001\u033e\x000C\x0000" + + "\x0001\u0122\x0070\x0000\x0001\x00E6\x0001\x0098\x0001\u03a1\x0018\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\u03a2\x0009\x0098\x007D\x0000\x0001\x00E6" + + "\x0006\x0098\x0001\u03a3\x0013\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098" + + "\x0001\x00E7\x0007\x0098\x0001\u03a4\x0002\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7" + + "\x0008\x0098\x0001\u01ab\x0001\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0005\x0098" + + "\x0001\u01ab\x0004\x0098\x007D\x0000\x0001\x00E6\x0016\x0098\x0001\u03a5\x0003\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u03a6\x0018\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0016\x0098\x0001\u03a7\x0003\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\x0098\x0001\u03a8\x0008\x0098\x007D\x0000\x0001\x00E6" + + "\x0001\u03a9\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u03aa\x0017\x0098" + + "\x0001\u03ab\x0001\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7" + + "\x0001\u03ac\x0009\x0098\x007D\x0000\x0001\x00E6\x0004\x0098\x0001\u03ad\x0015\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0015\x0098\x0001\u03ae\x0004\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\u03af\x0009\x0098\x007D\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0002\x0098\x0001\u012f\x0007\x0098\x007D\x0000\x0001\x00E6\x001A\x0098" + + "\x0001\x00E7\x0003\x0098\x0001\u03b0\x0006\x0098\x007D\x0000\x0001\x00E6\x0001\u03b1\x0001\x0098" + + "\x0001\u03b2\x0017\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u03a4\x0019\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0002\x0098\x0001\u03b3" + + "\x0007\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0002\x0098\x0001\u03b4\x0007\x0098" + + "\x007D\x0000\x0001\x00E6\x000D\x0098\x0001\u03b5\x000C\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0005\x0098\x0001\u03b6\x0004\x0098\x007D\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0007\x0098\x0001\u03b7\x0002\x0098\x007D\x0000\x0001\x00E6\x001A\x0098" + + "\x0001\x00E7\x0009\x0098\x0001\u03b8\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u03b9\x0018\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0003\x0098\x0001\u03ba" + + "\x0006\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\x0098\x0001\u03bb\x0008\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\x0098\x0001\u03bc\x0008\x0098\x007D\x0000" + + "\x0001\x00E6\x0014\x0098\x0001\u03bd\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0006\x0098\x0001\u03be\x0003\x0098\x007D\x0000\x0001\x00E6\x001A\x0098" + + "\x0001\x00E7\x0003\x0098\x0001\u03bf\x0006\x0098\x007D\x0000\x0001\x00E6\x0001\u03b0\x0019\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0015\x0098\x0001\u03c0\x0004\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00FE\x0003\x00B4\x0001\u03c1\x0016\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0002\x00B4\x0001\u0103\x0017\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0006\x00B4\x0001\u010e\x0013\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\x00B4\x0001\u0315" + + "\x0018\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4" + + "\x0001\u03c2\x0016\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0003\x00B4\x0001\u03c3\x0006\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x0006\x00B4\x0001\u03c4\x0003\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0006\x00B4\x0001\u03c5\x0003\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0005\x00B4\x0001\u03c6\x0004\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0007\x00B4\x0001\u03c7" + + "\x0002\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u03c8\x0019\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0004\x00B4" + + "\x0001\u03c9\x0005\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061" + + "\x0004\x00B4\x0001\u03ca\x0005\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0016\x00B4" + + "\x0001\u03cb\x0003\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0018\x00B4\x0001\u03cc\x0001\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0009\x00B4\x0001\u0151\x0010\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0002\x00B4\x0001\u03cd\x0007\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x000A\x00B4\x0001\u03ce\x000F\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x000F\x00B4\x0001\u010b\x000A\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0004\x00B4" + + "\x0001\u03cf\x0005\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061" + + "\x0006\x00B4\x0001\u0154\x0003\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0018\x00B4" + + "\x0001\u03d0\x0001\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0018\x00B4\x0001\u03d1\x0001\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x008E\x0000" + + "\x0001\u02c1\x007D\x0000\x0004\u03d2\x0002\x0000\x0001\u03d2\x000D\x0000\x0001\u03d2\x0006\x0000" + + "\x000A\u03d2\x0001\u037c\x007D\x0000\x0004\u03d3\x0002\x0000\x0001\u03d3\x000D\x0000\x0001\u03d3" + + "\x0006\x0000\x000A\u03d3\x0001\u03d4\x007D\x0000\x0004\u03d5\x0002\x0000\x0001\u03d5\x000D\x0000" + + "\x0001\u03d5\x0006\x0000\x000A\u03d5\x0001\u03d6\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383" + + "\x0004\u03d5\x0002\x0000\x0001\u03d5\x000D\x0000\x0001\u03d5\x0006\x0000\x000A\u03d7\x0001\u03d6" + + "\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u03d5\x0002\x0000\x0001\u03d5\x000D\x0000" + + "\x0001\u03d5\x0006\x0000\x000A\u03d8\x0001\u03d6\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383" + + "\x0004\u03d5\x0002\x0000\x0001\u03d5\x000D\x0000\x0001\u03d5\x0006\x0000\x0001\u03d7\x0001\u03d9" + + "\x0001\u03d8\x0002\u03d7\x0002\u03d8\x0001\u03d7\x0001\u03d8\x0001\u03d7\x0001\u03d6\x000B\x0000" + + "\x0001\u0323\x0071\x0000\x0004\u03da\x0002\x0000\x0001\u03da\x000D\x0000\x0001\u03da\x0006\x0000" + + "\x000A\u03da\x0001\u0382\x000B\x0000\x0001\u0323\x0071\x0000\x0004\u037d\x0002\x0000\x0001\u037d" + + "\x000D\x0000\x0001\u037d\x0006\x0000\x0001\u037e\x0002\u037f\x0001\u037e\x0005\u037f\x0001\u0380" + + "\x0099\x0000\x0001\u03db\x0002\u03dc\x0001\u03db\x0005\u03dc\x0001\u03dd\x007D\x0000\x0001\u0383" + + "\x0004\u03da\x0002\x0000\x0001\u03da\x000D\x0000\x0001\u03da\x0006\x0000\x000A\u03de\x0001\u0382" + + "\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u03da\x0002\x0000\x0001\u03da\x000D\x0000" + + "\x0001\u03da\x0006\x0000\x000A\u03da\x0001\u0382\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383" + + "\x0004\u03da\x0002\x0000\x0001\u03da\x000D\x0000\x0001\u03da\x0006\x0000\x0002\u03de\x0001\u03da" + + "\x0002\u03de\x0002\u03da\x0001\u03de\x0001\u03da\x0001\u03de\x0001\u0382\x000B\x0000\x0001\u0323" + + "\x0070\x0000\x001C\u01ca\x000A\u03df\x0001\x0000\x0002\u01ca\x0001\u020d\x0003\u01ca\x0001\u01cc" + + "\x0001\x0000\x0001\u020c\x0003\x0000\x0002\u01ca\x0004\x0000\x0001\u01ca\x006D\x0000\x0001\u03e0" + + "\x00BA\x0000\x000A\u03e1\x0009\x0000\x0001\u020c\x0074\x0000\x0004\u03e2\x0002\x0000\x0001\u03e2" + + "\x000D\x0000\x0001\u03e2\x0006\x0000\x000A\u03e2\x0001\u0329\x007D\x0000\x0004\u03e3\x0002\x0000" + + "\x0001\u03e3\x000D\x0000\x0001\u03e3\x0006\x0000\x000A\u03e3\x0001\u03e4\x007D\x0000\x0004\u03e5" + + "\x0002\x0000\x0001\u03e5\x000D\x0000\x0001\u03e5\x0006\x0000\x0001\u03e6\x0002\u03e7\x0001\u03e6" + + "\x0005\u03e7\x0001\u03e8\x000C\x0000\x0001\u02ce\x0071\x0000\x0004\u03e9\x0002\x0000\x0001\u03e9" + + "\x000D\x0000\x0001\u03e9\x0006\x0000\x000A\u03e9\x0001\u038e\x000B\x0000\x0001\u02ce\x0071\x0000" + + "\x0004\u03e5\x0002\x0000\x0001\u03e5\x000D\x0000\x0001\u03e5\x0006\x0000\x0001\u03e6\x0002\u03e7" + + "\x0001\u03e6\x0005\u03e7\x0001\u03e8\x007D\x0000\x0001\u0330\x0004\u03e9\x0002\x0000\x0001\u03e9" + + "\x000D\x0000\x0001\u03e9\x0006\x0000\x000A\u03ea\x0001\u038e\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u03e9\x0002\x0000\x0001\u03e9\x000D\x0000\x0001\u03e9\x0006\x0000\x000A\u03e9" + + "\x0001\u038e\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u03e9\x0002\x0000\x0001\u03e9" + + "\x000D\x0000\x0001\u03e9\x0006\x0000\x0002\u03ea\x0001\u03e9\x0002\u03ea\x0002\u03e9\x0001\u03ea" + + "\x0001\u03e9\x0001\u03ea\x0001\u038e\x000B\x0000\x0001\u02ce\x0071\x0000\x0004\u03eb\x0002\x0000" + + "\x0001\u03eb\x000D\x0000\x0001\u03eb\x0006\x0000\x000A\u03eb\x0001\u032f\x000B\x0000\x0001\u02ce" + + "\x0070\x0000\x0001\u03ec\x001B\x0000\x000A\u0394\x007D\x0000\x0001\u03ec\x001B\x0000\x000A\u03ed" + + "\x007D\x0000\x0001\u03ec\x001B\x0000\x0001\u0394\x0001\u03ee\x0001\u03ed\x0002\u0394\x0002\u03ed" + + "\x0001\u0394\x0001\u03ed\x0001\u0394\x007D\x0000\x0001\u0330\x0004\u03eb\x0002\x0000\x0001\u03eb" + + "\x000D\x0000\x0001\u03eb\x0006\x0000\x000A\u03eb\x0001\u032f\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x001C\u0214\x000A\u03ef\x0001\x0000\x0002\u0214\x0001\u026d\x0003\u0214\x0001\u0216\x0001\u0167" + + "\x0001\u0168\x0001\u0169\x0002\x0000\x0002\u0214\x0004\x0000\x0001\u0214\x006A\x0000\x0004\u03f0" + + "\x0002\x0000\x0001\u03f0\x000D\x0000\x0001\u03f0\x0006\x0000\x000A\u03f0\x0001\u0337\x007D\x0000" + + "\x0004\u03f1\x0002\x0000\x0001\u03f1\x000D\x0000\x0001\u03f1\x0006\x0000\x000A\u03f1\x0001\u03f2" + + "\x007D\x0000\x0004\u03f3\x0002\x0000\x0001\u03f3\x000D\x0000\x0001\u03f3\x0006\x0000\x0001\u03f4" + + "\x0002\u03f5\x0001\u03f4\x0005\u03f5\x0001\u03f6\x000C\x0000\x0001\u0122\x0071\x0000\x0004\u03f7" + + "\x0002\x0000\x0001\u03f7\x000D\x0000\x0001\u03f7\x0006\x0000\x000A\u03f7\x0001\u039c\x000B\x0000" + + "\x0001\u0122\x0071\x0000\x0004\u03f3\x0002\x0000\x0001\u03f3\x000D\x0000\x0001\u03f3\x0006\x0000" + + "\x0001\u03f4\x0002\u03f5\x0001\u03f4\x0005\u03f5\x0001\u03f6\x007D\x0000\x0001\u0163\x0004\u03f7" + + "\x0002\x0000\x0001\u03f7\x000D\x0000\x0001\u03f7\x0006\x0000\x000A\u03f8\x0001\u039c\x000B\x0000" + + "\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u03f7\x0002\x0000\x0001\u03f7\x000D\x0000\x0001\u03f7" + + "\x0006\x0000\x000A\u03f7\x0001\u039c\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u03f7" + + "\x0002\x0000\x0001\u03f7\x000D\x0000\x0001\u03f7\x0006\x0000\x0002\u03f8\x0001\u03f7\x0002\u03f8" + + "\x0002\u03f7\x0001\u03f8\x0001\u03f7\x0001\u03f8\x0001\u039c\x000B\x0000\x0001\u0122\x0096\x0000" + + "\x0001\u02d7\x000B\x0000\x0001\u0122\x0070\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\u03f9" + + "\x0009\x0098\x007D\x0000\x0001\x00E6\x0001\u03fa\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0008\x0098\x0001\u03fb\x0001\x0098\x007D\x0000\x0001\x00E6" + + "\x0015\x0098\x0001\u016a\x0004\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098" + + "\x0001\x00E7\x0005\x0098\x0001\u03fc\x0004\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7" + + "\x0005\x0098\x0001\u03fd\x0004\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0005\x0098" + + "\x0001\u03b0\x0004\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0003\x0098\x0001\u03fa" + + "\x0006\x0098\x007D\x0000\x0001\x00E6\x000F\x0098\x0001\u03fe\x000A\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x000A\x0098\x0001\u03ff\x000F\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0015\x0098\x0001\u0400\x0004\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0001\u0401\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x000D\x0098\x0001\u0402" + + "\x000C\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0003\x0098" + + "\x0001\u0403\x0006\x0098\x007D\x0000\x0001\x00E6\x0002\x0098\x0001\u03a4\x0017\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u016a\x0018\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0009\x0098\x0001\u0404\x0010\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0009\x0098\x0001\u0405\x0010\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0001\u0406\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u0407\x0019\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0002\x0098\x0001\u0408\x0017\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0004\x0098\x0001\u0171\x0005\x0098" + + "\x007D\x0000\x0001\x00E6\x0008\x0098\x0001\u0409\x0011\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0001\u040a\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0015\x0098" + + "\x0001\u040b\x0004\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7" + + "\x0004\x0098\x0001\u03fa\x0005\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0006\x0098" + + "\x0001\u03fa\x0003\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0002\x0098\x0001\u03fa" + + "\x0007\x0098\x007D\x0000\x0001\x00E6\x000E\x0098\x0001\u040c\x000B\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\u040d\x0009\x0098\x007D\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0003\x0098\x0001\u040e\x0006\x0098\x007D\x0000\x0001\x00E6\x0014\x0098" + + "\x0001\u040f\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00FE\x0001\u0410\x0019\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061" + + "\x0009\x00B4\x0001\u030b\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0411\x0019\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0412\x0019\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0007\x00B4\x0001\u0413" + + "\x0012\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0414" + + "\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0415" + + "\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0006\x00B4\x0001\u0416\x0003\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0015\x00B4\x0001\u0417\x0004\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0001\u0418\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x0006\x00B4\x0001\u0419\x0003\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0001\u041a\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0006\x00B4\x0001\u0150\x0003\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x000A\x00B4\x0001\u0114\x000F\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u041b\x0019\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0008\x00B4\x0001\u041c\x0011\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0019\x00B4\x0001\u041d\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0069\x0000\x0004\u041e\x0002\x0000\x0001\u041e\x000D\x0000" + + "\x0001\u041e\x0006\x0000\x000A\u041e\x0001\u037c\x007D\x0000\x0004\u041f\x0002\x0000\x0001\u041f" + + "\x000D\x0000\x0001\u041f\x0006\x0000\x000A\u041f\x0001\u0420\x007D\x0000\x0004\u0421\x0002\x0000" + + "\x0001\u0421\x000D\x0000\x0001\u0421\x0006\x0000\x0001\u0422\x0002\u0423\x0001\u0422\x0005\u0423" + + "\x0001\u0424\x000C\x0000\x0001\u0323\x0071\x0000\x0004\u0425\x0002\x0000\x0001\u0425\x000D\x0000" + + "\x0001\u0425\x0006\x0000\x000A\u0425\x0001\u03d6\x000B\x0000\x0001\u0323\x0071\x0000\x0004\u0421" + + "\x0002\x0000\x0001\u0421\x000D\x0000\x0001\u0421\x0006\x0000\x0001\u0422\x0002\u0423\x0001\u0422" + + "\x0005\u0423\x0001\u0424\x007D\x0000\x0001\u0383\x0004\u0425\x0002\x0000\x0001\u0425\x000D\x0000" + + "\x0001\u0425\x0006\x0000\x000A\u0426\x0001\u03d6\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383" + + "\x0004\u0425\x0002\x0000\x0001\u0425\x000D\x0000\x0001\u0425\x0006\x0000\x000A\u0425\x0001\u03d6" + + "\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u0425\x0002\x0000\x0001\u0425\x000D\x0000" + + "\x0001\u0425\x0006\x0000\x0002\u0426\x0001\u0425\x0002\u0426\x0002\u0425\x0001\u0426\x0001\u0425" + + "\x0001\u0426\x0001\u03d6\x000B\x0000\x0001\u0323\x0071\x0000\x0004\u0427\x0002\x0000\x0001\u0427" + + "\x000D\x0000\x0001\u0427\x0006\x0000\x000A\u0427\x0001\u0382\x000B\x0000\x0001\u0323\x0070\x0000" + + "\x0001\u0428\x001B\x0000\x000A\u03dc\x007D\x0000\x0001\u0428\x001B\x0000\x000A\u0429\x007D\x0000" + + "\x0001\u0428\x001B\x0000\x0001\u03dc\x0001\u042a\x0001\u0429\x0002\u03dc\x0002\u0429\x0001\u03dc" + + "\x0001\u0429\x0001\u03dc\x007D\x0000\x0001\u0383\x0004\u0427\x0002\x0000\x0001\u0427\x000D\x0000" + + "\x0001\u0427\x0006\x0000\x000A\u0427\x0001\u0382\x000B\x0000\x0001\u0323\x0070\x0000\x0026\u01ca" + + "\x0001\x0000\x0002\u01ca\x0001\u020d\x0003\u01ca\x0001\u01cc\x0001\x0000\x0001\u020c\x0003\x0000" + + "\x0002\u01ca\x0004\x0000\x0001\u01ca\x009D\x0000\x0001\u042b\x008A\x0000\x000A\u042c\x0009\x0000" + + "\x0001\u020c\x0099\x0000\x0001\u0329\x007D\x0000\x0004\u042d\x0002\x0000\x0001\u042d\x000D\x0000" + + "\x0001\u042d\x0006\x0000\x000A\u042d\x0001\u03e4\x007D\x0000\x0004\u042e\x0002\x0000\x0001\u042e" + + "\x000D\x0000\x0001\u042e\x0006\x0000\x000A\u042e\x0001\u042f\x007D\x0000\x0004\u0430\x0002\x0000" + + "\x0001\u0430\x000D\x0000\x0001\u0430\x0006\x0000\x000A\u0430\x0001\u0431\x000B\x0000\x0001\u02ce" + + "\x0070\x0000\x0001\u0330\x0004\u0430\x0002\x0000\x0001\u0430\x000D\x0000\x0001\u0430\x0006\x0000" + + "\x000A\u0432\x0001\u0431\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u0430\x0002\x0000" + + "\x0001\u0430\x000D\x0000\x0001\u0430\x0006\x0000\x000A\u0433\x0001\u0431\x000B\x0000\x0001\u02ce" + + "\x0070\x0000\x0001\u0330\x0004\u0430\x0002\x0000\x0001\u0430\x000D\x0000\x0001\u0430\x0006\x0000" + + "\x0001\u0432\x0001\u0434\x0001\u0433\x0002\u0432\x0002\u0433\x0001\u0432\x0001\u0433\x0001\u0432" + + "\x0001\u0431\x000B\x0000\x0001\u02ce\x0071\x0000\x0004\u0435\x0002\x0000\x0001\u0435\x000D\x0000" + + "\x0001\u0435\x0006\x0000\x000A\u0435\x0001\u038e\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330" + + "\x0004\u0435\x0002\x0000\x0001\u0435\x000D\x0000\x0001\u0435\x0006\x0000\x000A\u0435\x0001\u038e" + + "\x000B\x0000\x0001\u02ce\x0096\x0000\x0001\u032f\x000B\x0000\x0001\u02ce\x008C\x0000\x0001\u0436" + + "\x0002\u0437\x0001\u0436\x0005\u0437\x0001\u0438\x007D\x0000\x0001\u03ec\x00A2\x0000\x0001\u03ec" + + "\x001B\x0000\x0002\u03ed\x0001\x0000\x0002\u03ed\x0002\x0000\x0001\u03ed\x0001\x0000\x0001\u03ed" + + "\x007D\x0000\x001C\u0214\x000A\u0439\x0001\x0000\x0002\u0214\x0001\u026d\x0003\u0214\x0001\u0216" + + "\x0001\u0167\x0001\u0168\x0001\u0169\x0002\x0000\x0002\u0214\x0004\x0000\x0001\u0214\x008F\x0000" + + "\x0001\u0337\x007D\x0000\x0004\u043a\x0002\x0000\x0001\u043a\x000D\x0000\x0001\u043a\x0006\x0000" + + "\x000A\u043a\x0001\u03f2\x007D\x0000\x0004\u043b\x0002\x0000\x0001\u043b\x000D\x0000\x0001\u043b" + + "\x0006\x0000\x0001\u043c\x0002\u043d\x0001\u043c\x0005\u043d\x0001\u043e\x0001\u043f\x007D\x0000" + + "\x0004\u0440\x0002\x0000\x0001\u0440\x000D\x0000\x0001\u0440\x0006\x0000\x000A\u0440\x0001\u0441" + + "\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u0440\x0002\x0000\x0001\u0440\x000D\x0000" + + "\x0001\u0440\x0006\x0000\x000A\u0442\x0001\u0441\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163" + + "\x0004\u0440\x0002\x0000\x0001\u0440\x000D\x0000\x0001\u0440\x0006\x0000\x000A\u0443\x0001\u0441" + + "\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u0440\x0002\x0000\x0001\u0440\x000D\x0000" + + "\x0001\u0440\x0006\x0000\x0001\u0442\x0001\u0444\x0001\u0443\x0002\u0442\x0002\u0443\x0001\u0442" + + "\x0001\u0443\x0001\u0442\x0001\u0441\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u0445\x0002\x0000" + + "\x0001\u0445\x000D\x0000\x0001\u0445\x0006\x0000\x000A\u0445\x0001\u039c\x000B\x0000\x0001\u0122" + + "\x0070\x0000\x0001\u0163\x0004\u0445\x0002\x0000\x0001\u0445\x000D\x0000\x0001\u0445\x0006\x0000" + + "\x000A\u0445\x0001\u039c\x000B\x0000\x0001\u0122\x0070\x0000\x0001\x00E6\x0003\x0098\x0001\u0446" + + "\x0016\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0002\x0098\x0001\u016a\x0017\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0006\x0098\x0001\u0175\x0013\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\x0098\x0001\u03ba\x0018\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u0447\x0016\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0003\x0098\x0001\u0448\x0006\x0098\x007D\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0006\x0098\x0001\u0449\x0003\x0098\x007D\x0000\x0001\x00E6\x001A\x0098" + + "\x0001\x00E7\x0006\x0098\x0001\u044a\x0003\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7" + + "\x0005\x0098\x0001\u044b\x0004\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0007\x0098" + + "\x0001\u044c\x0002\x0098\x007D\x0000\x0001\x00E6\x0001\u044d\x0019\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0004\x0098\x0001\u044e\x0005\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0004\x0098\x0001\u044f\x0005\x0098\x007D\x0000\x0001\x00E6" + + "\x0016\x0098\x0001\u0450\x0003\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0018\x0098" + + "\x0001\u0451\x0001\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0009\x0098\x0001\u01a5" + + "\x0010\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0002\x0098" + + "\x0001\u0452\x0007\x0098\x007D\x0000\x0001\x00E6\x000A\x0098\x0001\u0453\x000F\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x000F\x0098\x0001\u0172\x000A\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0004\x0098\x0001\u0454\x0005\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0006\x0098\x0001\u01a8\x0003\x0098\x007D\x0000\x0001\x00E6" + + "\x0018\x0098\x0001\u0455\x0001\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0018\x0098" + + "\x0001\u0456\x0001\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061" + + "\x0001\u0457\x0009\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0002\x00B4\x0001\u0458" + + "\x0017\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0008\x00B4\x0001\u02ff\x0001\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x000D\x00B4\x0001\x00C7\x000C\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0013\x00B4\x0001\u0459\x0006\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0001\x00B4\x0001\u045a\x0008\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0003\x00B4\x0001\u0154\x0006\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0018\x00B4\x0001\u045b\x0001\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0001\x00B4" + + "\x0001\u045c\x0008\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0006\x00B4\x0001\u045d" + + "\x0013\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0005\x00B4\x0001\u045e\x0004\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0005\x00B4\x0001\u045f\x0004\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x0001\x00B4\x0001\x00C7\x0008\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x000B\x00B4\x0001\u0460\x000E\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x008E\x0000\x0001\u037c\x007D\x0000\x0004\u0461\x0002\x0000\x0001\u0461\x000D\x0000" + + "\x0001\u0461\x0006\x0000\x000A\u0461\x0001\u0420\x007D\x0000\x0004\u0462\x0002\x0000\x0001\u0462" + + "\x000D\x0000\x0001\u0462\x0006\x0000\x000A\u0462\x0001\u0463\x007D\x0000\x0004\u0464\x0002\x0000" + + "\x0001\u0464\x000D\x0000\x0001\u0464\x0006\x0000\x000A\u0464\x0001\u0465\x000B\x0000\x0001\u0323" + + "\x0070\x0000\x0001\u0383\x0004\u0464\x0002\x0000\x0001\u0464\x000D\x0000\x0001\u0464\x0006\x0000" + + "\x000A\u0466\x0001\u0465\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u0464\x0002\x0000" + + "\x0001\u0464\x000D\x0000\x0001\u0464\x0006\x0000\x000A\u0467\x0001\u0465\x000B\x0000\x0001\u0323" + + "\x0070\x0000\x0001\u0383\x0004\u0464\x0002\x0000\x0001\u0464\x000D\x0000\x0001\u0464\x0006\x0000" + + "\x0001\u0466\x0001\u0468\x0001\u0467\x0002\u0466\x0002\u0467\x0001\u0466\x0001\u0467\x0001\u0466" + + "\x0001\u0465\x000B\x0000\x0001\u0323\x0071\x0000\x0004\u0469\x0002\x0000\x0001\u0469\x000D\x0000" + + "\x0001\u0469\x0006\x0000\x000A\u0469\x0001\u03d6\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383" + + "\x0004\u0469\x0002\x0000\x0001\u0469\x000D\x0000\x0001\u0469\x0006\x0000\x000A\u0469\x0001\u03d6" + + "\x000B\x0000\x0001\u0323\x0096\x0000\x0001\u0382\x000B\x0000\x0001\u0323\x008C\x0000\x0001\u046a" + + "\x0002\u046b\x0001\u046a\x0005\u046b\x0001\u046c\x007D\x0000\x0001\u0428\x00A2\x0000\x0001\u0428" + + "\x001B\x0000\x0002\u0429\x0001\x0000\x0002\u0429\x0002\x0000\x0001\u0429\x0001\x0000\x0001\u0429" + + "\x007E\x0000\x0001\u046d\x0001\x0000\x0001\u046d\x0005\x0000\x0001\u046d\x00C8\x0000\x0001\u020c" + + "\x0074\x0000\x0004\u046e\x0002\x0000\x0001\u046e\x000D\x0000\x0001\u046e\x0006\x0000\x000A\u046e" + + "\x0001\u03e4\x007D\x0000\x0004\u046f\x0002\x0000\x0001\u046f\x000D\x0000\x0001\u046f\x0006\x0000" + + "\x000A\u046f\x0001\u0470\x007D\x0000\x0004\u0471\x0002\x0000\x0001\u0471\x000D\x0000\x0001\u0471" + + "\x0006\x0000\x0001\u0472\x0002\u0473\x0001\u0472\x0005\u0473\x0001\u0474\x000C\x0000\x0001\u02ce" + + "\x0071\x0000\x0004\u0475\x0002\x0000\x0001\u0475\x000D\x0000\x0001\u0475\x0006\x0000\x000A\u0475" + + "\x0001\u0431\x000B\x0000\x0001\u02ce\x0071\x0000\x0004\u0471\x0002\x0000\x0001\u0471\x000D\x0000" + + "\x0001\u0471\x0006\x0000\x0001\u0472\x0002\u0473\x0001\u0472\x0005\u0473\x0001\u0474\x007D\x0000" + + "\x0001\u0330\x0004\u0475\x0002\x0000\x0001\u0475\x000D\x0000\x0001\u0475\x0006\x0000\x000A\u0476" + + "\x0001\u0431\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u0475\x0002\x0000\x0001\u0475" + + "\x000D\x0000\x0001\u0475\x0006\x0000\x000A\u0475\x0001\u0431\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u0475\x0002\x0000\x0001\u0475\x000D\x0000\x0001\u0475\x0006\x0000\x0002\u0476" + + "\x0001\u0475\x0002\u0476\x0002\u0475\x0001\u0476\x0001\u0475\x0001\u0476\x0001\u0431\x000B\x0000" + + "\x0001\u02ce\x0096\x0000\x0001\u038e\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0477\x001B\x0000" + + "\x000A\u0437\x007D\x0000\x0001\u0477\x001B\x0000\x000A\u0478\x007D\x0000\x0001\u0477\x001B\x0000" + + "\x0001\u0437\x0001\u0479\x0001\u0478\x0002\u0437\x0002\u0478\x0001\u0437\x0001\u0478\x0001\u0437" + + "\x007D\x0000\x0026\u0214\x0001\x0000\x0002\u0214\x0001\u026d\x0003\u0214\x0001\u0216\x0001\u0167" + + "\x0001\u0168\x0001\u0169\x0002\x0000\x0002\u0214\x0004\x0000\x0001\u0214\x006A\x0000\x0004\u047a" + + "\x0002\x0000\x0001\u047a\x000D\x0000\x0001\u047a\x0006\x0000\x000A\u047a\x0001\u03f2\x007D\x0000" + + "\x0004\u047b\x0002\x0000\x0001\u047b\x000D\x0000\x0001\u047b\x0006\x0000\x000A\u047b\x0001\u047c" + + "\x007C\x0000\x0001\u0163\x0004\u047b\x0002\x0000\x0001\u047b\x000D\x0000\x0001\u047b\x0006\x0000" + + "\x000A\u047d\x0001\u047c\x007C\x0000\x0001\u0163\x0004\u047b\x0002\x0000\x0001\u047b\x000D\x0000" + + "\x0001\u047b\x0006\x0000\x000A\u047e\x0001\u047c\x007C\x0000\x0001\u0163\x0004\u047b\x0002\x0000" + + "\x0001\u047b\x000D\x0000\x0001\u047b\x0006\x0000\x0001\u047d\x0001\u047f\x0001\u047e\x0002\u047d" + + "\x0002\u047e\x0001\u047d\x0001\u047e\x0001\u047d\x0001\u047c\x007D\x0000\x0004\u0480\x0002\x0000" + + "\x0001\u0480\x000D\x0000\x0001\u0480\x0006\x0000\x000A\u0480\x000C\x0000\x0001\u0122\x0071\x0000" + + "\x0004\u0481\x0002\x0000\x0001\u0481\x000D\x0000\x0001\u0481\x0006\x0000\x000A\u0481\x0001\u0441" + + "\x000B\x0000\x0001\u0122\x0071\x0000\x0004\u0480\x0002\x0000\x0001\u0480\x000D\x0000\x0001\u0480" + + "\x0006\x0000\x000A\u0480\x007D\x0000\x0001\u0163\x0004\u0481\x0002\x0000\x0001\u0481\x000D\x0000" + + "\x0001\u0481\x0006\x0000\x000A\u0482\x0001\u0441\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163" + + "\x0004\u0481\x0002\x0000\x0001\u0481\x000D\x0000\x0001\u0481\x0006\x0000\x000A\u0481\x0001\u0441" + + "\x000B\x0000\x0001\u0122\x0070\x0000\x0001\u0163\x0004\u0481\x0002\x0000\x0001\u0481\x000D\x0000" + + "\x0001\u0481\x0006\x0000\x0002\u0482\x0001\u0481\x0002\u0482\x0002\u0481\x0001\u0482\x0001\u0481" + + "\x0001\u0482\x0001\u0441\x000B\x0000\x0001\u0122\x0096\x0000\x0001\u039c\x000B\x0000\x0001\u0122" + + "\x0070\x0000\x0001\x00E6\x0001\u0483\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0009\x0098\x0001\u03b0\x007D\x0000\x0001\x00E6\x0001\u0484\x0019\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u0485\x0019\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0007\x0098\x0001\u0486\x0012\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0001\u0487\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u0488" + + "\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0006\x0098" + + "\x0001\u0489\x0003\x0098\x007D\x0000\x0001\x00E6\x0015\x0098\x0001\u048a\x0004\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u048b\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0006\x0098\x0001\u048c\x0003\x0098\x007D\x0000\x0001\x00E6" + + "\x0001\u048d\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7" + + "\x0006\x0098\x0001\u01a4\x0003\x0098\x007D\x0000\x0001\x00E6\x000A\x0098\x0001\u017b\x000F\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u048e\x0019\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0008\x0098\x0001\u048f\x0011\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0019\x0098\x0001\u0490\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00FE\x0014\x00B4" + + "\x0001\u0491\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0008\x00B4\x0001\u0492\x0001\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0001\x00B4\x0001\u010a\x0018\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0002\x00B4\x0001\u0493\x0017\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u0494\x0016\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u0495\x0016\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0001\x00B4" + + "\x0001\u0496\x0008\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0003\x00B4\x0001\u0497" + + "\x0016\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0001\u0498" + + "\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0016\x00B4" + + "\x0001\u0499\x0003\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0069\x0000\x0004\u049a" + + "\x0002\x0000\x0001\u049a\x000D\x0000\x0001\u049a\x0006\x0000\x000A\u049a\x0001\u0420\x007D\x0000" + + "\x0004\u049b\x0002\x0000\x0001\u049b\x000D\x0000\x0001\u049b\x0006\x0000\x000A\u049b\x0001\u049c" + + "\x007D\x0000\x0004\u049d\x0002\x0000\x0001\u049d\x000D\x0000\x0001\u049d\x0006\x0000\x0001\u049e" + + "\x0002\u049f\x0001\u049e\x0005\u049f\x0001\u04a0\x000C\x0000\x0001\u0323\x0071\x0000\x0004\u04a1" + + "\x0002\x0000\x0001\u04a1\x000D\x0000\x0001\u04a1\x0006\x0000\x000A\u04a1\x0001\u0465\x000B\x0000" + + "\x0001\u0323\x0071\x0000\x0004\u049d\x0002\x0000\x0001\u049d\x000D\x0000\x0001\u049d\x0006\x0000" + + "\x0001\u049e\x0002\u049f\x0001\u049e\x0005\u049f\x0001\u04a0\x007D\x0000\x0001\u0383\x0004\u04a1" + + "\x0002\x0000\x0001\u04a1\x000D\x0000\x0001\u04a1\x0006\x0000\x000A\u04a2\x0001\u0465\x000B\x0000" + + "\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u04a1\x0002\x0000\x0001\u04a1\x000D\x0000\x0001\u04a1" + + "\x0006\x0000\x000A\u04a1\x0001\u0465\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u04a1" + + "\x0002\x0000\x0001\u04a1\x000D\x0000\x0001\u04a1\x0006\x0000\x0002\u04a2\x0001\u04a1\x0002\u04a2" + + "\x0002\u04a1\x0001\u04a2\x0001\u04a1\x0001\u04a2\x0001\u0465\x000B\x0000\x0001\u0323\x0096\x0000" + + "\x0001\u03d6\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u04a3\x001B\x0000\x000A\u046b\x007D\x0000" + + "\x0001\u04a3\x001B\x0000\x000A\u04a4\x007D\x0000\x0001\u04a3\x001B\x0000\x0001\u046b\x0001\u04a5" + + "\x0001\u04a4\x0002\u046b\x0002\u04a4\x0001\u046b\x0001\u04a4\x0001\u046b\x00AD\x0000\x0001\u0169" + + "\x0098\x0000\x0001\u03e4\x007D\x0000\x0004\u04a6\x0002\x0000\x0001\u04a6\x000D\x0000\x0001\u04a6" + + "\x0006\x0000\x000A\u04a6\x0001\u0470\x007D\x0000\x0004\u04a7\x0002\x0000\x0001\u04a7\x000D\x0000" + + "\x0001\u04a7\x0006\x0000\x000A\u04a7\x0001\u04a8\x007D\x0000\x0004\u04a9\x0002\x0000\x0001\u04a9" + + "\x000D\x0000\x0001\u04a9\x0006\x0000\x000A\u04a9\x0001\u04aa\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u04a9\x0002\x0000\x0001\u04a9\x000D\x0000\x0001\u04a9\x0006\x0000\x000A\u04ab" + + "\x0001\u04aa\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u04a9\x0002\x0000\x0001\u04a9" + + "\x000D\x0000\x0001\u04a9\x0006\x0000\x000A\u04ac\x0001\u04aa\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u04a9\x0002\x0000\x0001\u04a9\x000D\x0000\x0001\u04a9\x0006\x0000\x0001\u04ab" + + "\x0001\u04ad\x0001\u04ac\x0002\u04ab\x0002\u04ac\x0001\u04ab\x0001\u04ac\x0001\u04ab\x0001\u04aa" + + "\x000B\x0000\x0001\u02ce\x0071\x0000\x0004\u04ae\x0002\x0000\x0001\u04ae\x000D\x0000\x0001\u04ae" + + "\x0006\x0000\x000A\u04ae\x0001\u0431\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u04ae" + + "\x0002\x0000\x0001\u04ae\x000D\x0000\x0001\u04ae\x0006\x0000\x000A\u04ae\x0001\u0431\x000B\x0000" + + "\x0001\u02ce\x008C\x0000\x0001\u04af\x0002\u04b0\x0001\u04af\x0005\u04b0\x0001\u04b1\x007D\x0000" + + "\x0001\u0477\x00A2\x0000\x0001\u0477\x001B\x0000\x0002\u0478\x0001\x0000\x0002\u0478\x0002\x0000" + + "\x0001\u0478\x0001\x0000\x0001\u0478\x00A3\x0000\x0001\u03f2\x007D\x0000\x0004\u04b2\x0002\x0000" + + "\x0001\u04b2\x000D\x0000\x0001\u04b2\x0006\x0000\x000A\u04b2\x0001\u047c\x007D\x0000\x0004\u0480" + + "\x0002\x0000\x0001\u0480\x000D\x0000\x0001\u0480\x0006\x0000\x000A\u0480\x0001\u033e\x007C\x0000" + + "\x0001\u0163\x0004\u04b2\x0002\x0000\x0001\u04b2\x000D\x0000\x0001\u04b2\x0006\x0000\x000A\u04b3" + + "\x0001\u047c\x007C\x0000\x0001\u0163\x0004\u04b2\x0002\x0000\x0001\u04b2\x000D\x0000\x0001\u04b2" + + "\x0006\x0000\x000A\u04b2\x0001\u047c\x007C\x0000\x0001\u0163\x0004\u04b2\x0002\x0000\x0001\u04b2" + + "\x000D\x0000\x0001\u04b2\x0006\x0000\x0002\u04b3\x0001\u04b2\x0002\u04b3\x0002\u04b2\x0001\u04b3" + + "\x0001\u04b2\x0001\u04b3\x0001\u047c\x007D\x0000\x0004\u04b4\x0002\x0000\x0001\u04b4\x000D\x0000" + + "\x0001\u04b4\x0006\x0000\x000A\u04b4\x000C\x0000\x0001\u0122\x0071\x0000\x0004\u04b5\x0002\x0000" + + "\x0001\u04b5\x000D\x0000\x0001\u04b5\x0006\x0000\x000A\u04b5\x0001\u0441\x000B\x0000\x0001\u0122" + + "\x0070\x0000\x0001\u0163\x0004\u04b5\x0002\x0000\x0001\u04b5\x000D\x0000\x0001\u04b5\x0006\x0000" + + "\x000A\u04b5\x0001\u0441\x000B\x0000\x0001\u0122\x0070\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7" + + "\x0001\u04b6\x0009\x0098\x007D\x0000\x0001\x00E6\x0002\x0098\x0001\u04b7\x0017\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0008\x0098\x0001\u03a4\x0001\x0098" + + "\x007D\x0000\x0001\x00E6\x000D\x0098\x0001\u012f\x000C\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0013\x0098\x0001\u04b8\x0006\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0001\x0098\x0001\u04b9\x0008\x0098\x007D\x0000\x0001\x00E6\x001A\x0098" + + "\x0001\x00E7\x0003\x0098\x0001\u01a8\x0006\x0098\x007D\x0000\x0001\x00E6\x0018\x0098\x0001\u04ba" + + "\x0001\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\x0098" + + "\x0001\u04bb\x0008\x0098\x007D\x0000\x0001\x00E6\x0006\x0098\x0001\u04bc\x0013\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0005\x0098\x0001\u04bd\x0004\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0005\x0098\x0001\u04be\x0004\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\x0098\x0001\u012f\x0008\x0098\x007D\x0000\x0001\x00E6" + + "\x000B\x0098\x0001\u04bf\x000E\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00FE\x001A\x00B4" + + "\x0001\x0061\x0009\x00B4\x0001\u04c0\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F" + + "\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0016\x00B4" + + "\x0001\u0103\x0003\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0007\x00B4\x0001\u04c1\x0002\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x001A\x00B4\x0001\x0061\x0009\x00B4\x0001\x00C7\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0003\x00B4\x0001\u04c2\x0016\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0004\x00B4\x0001\u04c3\x0005\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x000E\x00B4\x0001\u04c4\x000B\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x0016\x00B4\x0001\u04c5\x0003\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0007\x00B4" + + "\x0001\u04c6\x0002\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x008E\x0000\x0001\u0420\x007D\x0000\x0004\u04c7" + + "\x0002\x0000\x0001\u04c7\x000D\x0000\x0001\u04c7\x0006\x0000\x000A\u04c7\x0001\u049c\x007D\x0000" + + "\x0004\u04c8\x0002\x0000\x0001\u04c8\x000D\x0000\x0001\u04c8\x0006\x0000\x000A\u04c8\x0001\u04c9" + + "\x007D\x0000\x0004\u04ca\x0002\x0000\x0001\u04ca\x000D\x0000\x0001\u04ca\x0006\x0000\x000A\u04ca" + + "\x0001\u04cb\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u04ca\x0002\x0000\x0001\u04ca" + + "\x000D\x0000\x0001\u04ca\x0006\x0000\x000A\u04cc\x0001\u04cb\x000B\x0000\x0001\u0323\x0070\x0000" + + "\x0001\u0383\x0004\u04ca\x0002\x0000\x0001\u04ca\x000D\x0000\x0001\u04ca\x0006\x0000\x000A\u04cd" + + "\x0001\u04cb\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u04ca\x0002\x0000\x0001\u04ca" + + "\x000D\x0000\x0001\u04ca\x0006\x0000\x0001\u04cc\x0001\u04ce\x0001\u04cd\x0002\u04cc\x0002\u04cd" + + "\x0001\u04cc\x0001\u04cd\x0001\u04cc\x0001\u04cb\x000B\x0000\x0001\u0323\x0071\x0000\x0004\u04cf" + + "\x0002\x0000\x0001\u04cf\x000D\x0000\x0001\u04cf\x0006\x0000\x000A\u04cf\x0001\u0465\x000B\x0000" + + "\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u04cf\x0002\x0000\x0001\u04cf\x000D\x0000\x0001\u04cf" + + "\x0006\x0000\x000A\u04cf\x0001\u0465\x000B\x0000\x0001\u0323\x008C\x0000\x0001\u04d0\x0002\u04d1" + + "\x0001\u04d0\x0005\u04d1\x0001\u04d2\x007D\x0000\x0001\u04a3\x00A2\x0000\x0001\u04a3\x001B\x0000" + + "\x0002\u04a4\x0001\x0000\x0002\u04a4\x0002\x0000\x0001\u04a4\x0001\x0000\x0001\u04a4\x007E\x0000" + + "\x0004\u04d3\x0002\x0000\x0001\u04d3\x000D\x0000\x0001\u04d3\x0006\x0000\x000A\u04d3\x0001\u0470" + + "\x007D\x0000\x0004\u04d4\x0002\x0000\x0001\u04d4\x000D\x0000\x0001\u04d4\x0006\x0000\x000A\u04d4" + + "\x0001\u04d5\x007D\x0000\x0004\u04d6\x0002\x0000\x0001\u04d6\x000D\x0000\x0001\u04d6\x0006\x0000" + + "\x0001\u04d7\x0002\u04d8\x0001\u04d7\x0005\u04d8\x0001\u04d9\x000C\x0000\x0001\u02ce\x0071\x0000" + + "\x0004\u04da\x0002\x0000\x0001\u04da\x000D\x0000\x0001\u04da\x0006\x0000\x000A\u04da\x0001\u04aa" + + "\x000B\x0000\x0001\u02ce\x0071\x0000\x0004\u04d6\x0002\x0000\x0001\u04d6\x000D\x0000\x0001\u04d6" + + "\x0006\x0000\x0001\u04d7\x0002\u04d8\x0001\u04d7\x0005\u04d8\x0001\u04d9\x007D\x0000\x0001\u0330" + + "\x0004\u04da\x0002\x0000\x0001\u04da\x000D\x0000\x0001\u04da\x0006\x0000\x000A\u04db\x0001\u04aa" + + "\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u04da\x0002\x0000\x0001\u04da\x000D\x0000" + + "\x0001\u04da\x0006\x0000\x000A\u04da\x0001\u04aa\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330" + + "\x0004\u04da\x0002\x0000\x0001\u04da\x000D\x0000\x0001\u04da\x0006\x0000\x0002\u04db\x0001\u04da" + + "\x0002\u04db\x0002\u04da\x0001\u04db\x0001\u04da\x0001\u04db\x0001\u04aa\x000B\x0000\x0001\u02ce" + + "\x0096\x0000\x0001\u0431\x000B\x0000\x0001\u02ce\x008C\x0000\x000A\u04b0\x000C\x0000\x0001\u02ce" + + "\x008C\x0000\x000A\u04dc\x000C\x0000\x0001\u02ce\x008C\x0000\x0001\u04b0\x0001\u04dd\x0001\u04dc" + + "\x0002\u04b0\x0002\u04dc\x0001\u04b0\x0001\u04dc\x0001\u04b0\x000C\x0000\x0001\u02ce\x0071\x0000" + + "\x0004\u04de\x0002\x0000\x0001\u04de\x000D\x0000\x0001\u04de\x0006\x0000\x000A\u04de\x0001\u047c" + + "\x007C\x0000\x0001\u0163\x0004\u04de\x0002\x0000\x0001\u04de\x000D\x0000\x0001\u04de\x0006\x0000" + + "\x000A\u04de\x0001\u047c\x007D\x0000\x0004\u04df\x0002\x0000\x0001\u04df\x000D\x0000\x0001\u04df" + + "\x0006\x0000\x000A\u04df\x000C\x0000\x0001\u0122\x0096\x0000\x0001\u0441\x000B\x0000\x0001\u0122" + + "\x0070\x0000\x0001\x00E6\x0014\x0098\x0001\u04e0\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0008\x0098\x0001\u04e1\x0001\x0098\x007D\x0000\x0001\x00E6" + + "\x0001\x0098\x0001\u0171\x0018\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0002\x0098" + + "\x0001\u04e2\x0017\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u04e3" + + "\x0016\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u04e4\x0016\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\x0098\x0001\u04e5" + + "\x0008\x0098\x007D\x0000\x0001\x00E6\x0003\x0098\x0001\u04e6\x0016\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x0001\u04e7\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x0016\x0098\x0001\u04e8\x0003\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00FE\x0007\x00B4" + + "\x0001\u04e9\x0012\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0001\u04ea\x0019\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x001A\x00B4\x0001\x0061\x0001\u02ff\x0009\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E" + + "\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE" + + "\x0014\x00B4\x0001\u04eb\x0005\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000" + + "\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0068\x0000" + + "\x0001\x00FE\x0001\x00B4\x0001\u04ec\x0018\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0002\x00B4\x0001\u010a\x0007\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0006\x00B4\x0001\u0103\x0013\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0069\x0000\x0004\u04ed\x0002\x0000\x0001\u04ed\x000D\x0000\x0001\u04ed" + + "\x0006\x0000\x000A\u04ed\x0001\u049c\x007D\x0000\x0004\u04ee\x0002\x0000\x0001\u04ee\x000D\x0000" + + "\x0001\u04ee\x0006\x0000\x000A\u04ee\x0001\u04ef\x007D\x0000\x0004\u04f0\x0002\x0000\x0001\u04f0" + + "\x000D\x0000\x0001\u04f0\x0006\x0000\x0001\u04f1\x0002\u04f2\x0001\u04f1\x0005\u04f2\x0001\u04f3" + + "\x000C\x0000\x0001\u0323\x0071\x0000\x0004\u04f4\x0002\x0000\x0001\u04f4\x000D\x0000\x0001\u04f4" + + "\x0006\x0000\x000A\u04f4\x0001\u04cb\x000B\x0000\x0001\u0323\x0071\x0000\x0004\u04f0\x0002\x0000" + + "\x0001\u04f0\x000D\x0000\x0001\u04f0\x0006\x0000\x0001\u04f1\x0002\u04f2\x0001\u04f1\x0005\u04f2" + + "\x0001\u04f3\x007D\x0000\x0001\u0383\x0004\u04f4\x0002\x0000\x0001\u04f4\x000D\x0000\x0001\u04f4" + + "\x0006\x0000\x000A\u04f5\x0001\u04cb\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u04f4" + + "\x0002\x0000\x0001\u04f4\x000D\x0000\x0001\u04f4\x0006\x0000\x000A\u04f4\x0001\u04cb\x000B\x0000" + + "\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u04f4\x0002\x0000\x0001\u04f4\x000D\x0000\x0001\u04f4" + + "\x0006\x0000\x0002\u04f5\x0001\u04f4\x0002\u04f5\x0002\u04f4\x0001\u04f5\x0001\u04f4\x0001\u04f5" + + "\x0001\u04cb\x000B\x0000\x0001\u0323\x0096\x0000\x0001\u0465\x000B\x0000\x0001\u0323\x008C\x0000" + + "\x000A\u04d1\x000C\x0000\x0001\u0323\x008C\x0000\x000A\u04f6\x000C\x0000\x0001\u0323\x008C\x0000" + + "\x0001\u04d1\x0001\u04f7\x0001\u04f6\x0002\u04d1\x0002\u04f6\x0001\u04d1\x0001\u04f6\x0001\u04d1" + + "\x000C\x0000\x0001\u0323\x0096\x0000\x0001\u0470\x007D\x0000\x0004\u04f8\x0002\x0000\x0001\u04f8" + + "\x000D\x0000\x0001\u04f8\x0006\x0000\x000A\u04f8\x0001\u04d5\x007D\x0000\x0004\u04f9\x0002\x0000" + + "\x0001\u04f9\x000D\x0000\x0001\u04f9\x0006\x0000\x000A\u04f9\x0001\u04fa\x007D\x0000\x0004\u04fb" + + "\x0002\x0000\x0001\u04fb\x000D\x0000\x0001\u04fb\x0006\x0000\x000A\u04fb\x0001\u04fc\x000B\x0000" + + "\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u04fb\x0002\x0000\x0001\u04fb\x000D\x0000\x0001\u04fb" + + "\x0006\x0000\x000A\u04fd\x0001\u04fc\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u04fb" + + "\x0002\x0000\x0001\u04fb\x000D\x0000\x0001\u04fb\x0006\x0000\x000A\u04fe\x0001\u04fc\x000B\x0000" + + "\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u04fb\x0002\x0000\x0001\u04fb\x000D\x0000\x0001\u04fb" + + "\x0006\x0000\x0001\u04fd\x0001\u04ff\x0001\u04fe\x0002\u04fd\x0002\u04fe\x0001\u04fd\x0001\u04fe" + + "\x0001\u04fd\x0001\u04fc\x000B\x0000\x0001\u02ce\x0071\x0000\x0004\u0500\x0002\x0000\x0001\u0500" + + "\x000D\x0000\x0001\u0500\x0006\x0000\x000A\u0500\x0001\u04aa\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u0500\x0002\x0000\x0001\u0500\x000D\x0000\x0001\u0500\x0006\x0000\x000A\u0500" + + "\x0001\u04aa\x000B\x0000\x0001\u02ce\x00A2\x0000\x0001\u02ce\x008C\x0000\x0002\u04dc\x0001\x0000" + + "\x0002\u04dc\x0002\x0000\x0001\u04dc\x0001\x0000\x0001\u04dc\x000C\x0000\x0001\u02ce\x0096\x0000" + + "\x0001\u047c\x007D\x0000\x0004\u033e\x0002\x0000\x0001\u033e\x000D\x0000\x0001\u033e\x0006\x0000" + + "\x000A\u033e\x000C\x0000\x0001\u0122\x0070\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0009\x0098" + + "\x0001\u0501\x007D\x0000\x0001\x00E6\x0016\x0098\x0001\u016a\x0003\x0098\x0001\x00E7\x000A\x0098" + + "\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0007\x0098\x0001\u0502\x0002\x0098\x007D\x0000" + + "\x0001\x00E6\x001A\x0098\x0001\x00E7\x0009\x0098\x0001\u012f\x007D\x0000\x0001\x00E6\x0003\x0098" + + "\x0001\u0503\x0016\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7" + + "\x0004\x0098\x0001\u0504\x0005\x0098\x007D\x0000\x0001\x00E6\x000E\x0098\x0001\u0505\x000B\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0016\x0098\x0001\u0506\x0003\x0098\x0001\x00E7" + + "\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0007\x0098\x0001\u0507\x0002\x0098" + + "\x007D\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0009\x00B4\x0001\u0508\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0068\x0000\x0001\x00FE\x0004\x00B4\x0001\u0103\x0015\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000" + + "\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000" + + "\x0002\x005E\x0068\x0000\x0001\x00FE\x0014\x00B4\x0001\x00C7\x0005\x00B4\x0001\x0061\x000A\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x0068\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0006\x00B4\x0001\x00C7" + + "\x0003\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x008E\x0000\x0001\u049c\x007D\x0000\x0004\u0509\x0002\x0000" + + "\x0001\u0509\x000D\x0000\x0001\u0509\x0006\x0000\x000A\u0509\x0001\u04ef\x007D\x0000\x0004\u050a" + + "\x0002\x0000\x0001\u050a\x000D\x0000\x0001\u050a\x0006\x0000\x000A\u050a\x0001\u050b\x007D\x0000" + + "\x0004\u050c\x0002\x0000\x0001\u050c\x000D\x0000\x0001\u050c\x0006\x0000\x000A\u050c\x0001\u050d" + + "\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u050c\x0002\x0000\x0001\u050c\x000D\x0000" + + "\x0001\u050c\x0006\x0000\x000A\u050e\x0001\u050d\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383" + + "\x0004\u050c\x0002\x0000\x0001\u050c\x000D\x0000\x0001\u050c\x0006\x0000\x000A\u050f\x0001\u050d" + + "\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u050c\x0002\x0000\x0001\u050c\x000D\x0000" + + "\x0001\u050c\x0006\x0000\x0001\u050e\x0001\u0510\x0001\u050f\x0002\u050e\x0002\u050f\x0001\u050e" + + "\x0001\u050f\x0001\u050e\x0001\u050d\x000B\x0000\x0001\u0323\x0071\x0000\x0004\u0511\x0002\x0000" + + "\x0001\u0511\x000D\x0000\x0001\u0511\x0006\x0000\x000A\u0511\x0001\u04cb\x000B\x0000\x0001\u0323" + + "\x0070\x0000\x0001\u0383\x0004\u0511\x0002\x0000\x0001\u0511\x000D\x0000\x0001\u0511\x0006\x0000" + + "\x000A\u0511\x0001\u04cb\x000B\x0000\x0001\u0323\x00A2\x0000\x0001\u0323\x008C\x0000\x0002\u04f6" + + "\x0001\x0000\x0002\u04f6\x0002\x0000\x0001\u04f6\x0001\x0000\x0001\u04f6\x000C\x0000\x0001\u0323" + + "\x0071\x0000\x0004\u0512\x0002\x0000\x0001\u0512\x000D\x0000\x0001\u0512\x0006\x0000\x000A\u0512" + + "\x0001\u04d5\x007D\x0000\x0004\u0513\x0002\x0000\x0001\u0513\x000D\x0000\x0001\u0513\x0006\x0000" + + "\x000A\u0513\x0001\u0514\x007D\x0000\x0004\u0515\x0002\x0000\x0001\u0515\x000D\x0000\x0001\u0515" + + "\x0006\x0000\x0001\u0516\x0002\u0517\x0001\u0516\x0005\u0517\x0001\u0518\x000C\x0000\x0001\u02ce" + + "\x0071\x0000\x0004\u0519\x0002\x0000\x0001\u0519\x000D\x0000\x0001\u0519\x0006\x0000\x000A\u0519" + + "\x0001\u04fc\x000B\x0000\x0001\u02ce\x0071\x0000\x0004\u0515\x0002\x0000\x0001\u0515\x000D\x0000" + + "\x0001\u0515\x0006\x0000\x0001\u0516\x0002\u0517\x0001\u0516\x0005\u0517\x0001\u0518\x007D\x0000" + + "\x0001\u0330\x0004\u0519\x0002\x0000\x0001\u0519\x000D\x0000\x0001\u0519\x0006\x0000\x000A\u051a" + + "\x0001\u04fc\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u0519\x0002\x0000\x0001\u0519" + + "\x000D\x0000\x0001\u0519\x0006\x0000\x000A\u0519\x0001\u04fc\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u0519\x0002\x0000\x0001\u0519\x000D\x0000\x0001\u0519\x0006\x0000\x0002\u051a" + + "\x0001\u0519\x0002\u051a\x0002\u0519\x0001\u051a\x0001\u0519\x0001\u051a\x0001\u04fc\x000B\x0000" + + "\x0001\u02ce\x0096\x0000\x0001\u04aa\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\x00E6\x0007\x0098" + + "\x0001\u051b\x0012\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0001\u051c\x0019\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0001\u03a4\x0009\x0098" + + "\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u051d\x0005\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00E6\x0001\x0098\x0001\u051e\x0018\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0002\x0098\x0001\u0171\x0007\x0098\x007D\x0000\x0001\x00E6\x0006\x0098" + + "\x0001\u016a\x0013\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00FE\x0001\u051f\x0019\x00B4" + + "\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E" + + "\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E\x0069\x0000\x0004\u0520\x0002\x0000\x0001\u0520" + + "\x000D\x0000\x0001\u0520\x0006\x0000\x000A\u0520\x0001\u04ef\x007D\x0000\x0004\u0521\x0002\x0000" + + "\x0001\u0521\x000D\x0000\x0001\u0521\x0006\x0000\x000A\u0521\x0001\u0522\x007D\x0000\x0004\u0523" + + "\x0002\x0000\x0001\u0523\x000D\x0000\x0001\u0523\x0006\x0000\x0001\u0524\x0002\u0525\x0001\u0524" + + "\x0005\u0525\x0001\u0526\x000C\x0000\x0001\u0323\x0071\x0000\x0004\u0527\x0002\x0000\x0001\u0527" + + "\x000D\x0000\x0001\u0527\x0006\x0000\x000A\u0527\x0001\u050d\x000B\x0000\x0001\u0323\x0071\x0000" + + "\x0004\u0523\x0002\x0000\x0001\u0523\x000D\x0000\x0001\u0523\x0006\x0000\x0001\u0524\x0002\u0525" + + "\x0001\u0524\x0005\u0525\x0001\u0526\x007D\x0000\x0001\u0383\x0004\u0527\x0002\x0000\x0001\u0527" + + "\x000D\x0000\x0001\u0527\x0006\x0000\x000A\u0528\x0001\u050d\x000B\x0000\x0001\u0323\x0070\x0000" + + "\x0001\u0383\x0004\u0527\x0002\x0000\x0001\u0527\x000D\x0000\x0001\u0527\x0006\x0000\x000A\u0527" + + "\x0001\u050d\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u0527\x0002\x0000\x0001\u0527" + + "\x000D\x0000\x0001\u0527\x0006\x0000\x0002\u0528\x0001\u0527\x0002\u0528\x0002\u0527\x0001\u0528" + + "\x0001\u0527\x0001\u0528\x0001\u050d\x000B\x0000\x0001\u0323\x0096\x0000\x0001\u04cb\x000B\x0000" + + "\x0001\u0323\x0096\x0000\x0001\u04d5\x007D\x0000\x0004\u0529\x0002\x0000\x0001\u0529\x000D\x0000" + + "\x0001\u0529\x0006\x0000\x000A\u0529\x0001\u0514\x007D\x0000\x0004\u052a\x0002\x0000\x0001\u052a" + + "\x000D\x0000\x0001\u052a\x0006\x0000\x0001\u052b\x0002\u052c\x0001\u052b\x0005\u052c\x0001\u052d" + + "\x0001\u052e\x007D\x0000\x0004\u052f\x0002\x0000\x0001\u052f\x000D\x0000\x0001\u052f\x0006\x0000" + + "\x000A\u052f\x0001\u0530\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u052f\x0002\x0000" + + "\x0001\u052f\x000D\x0000\x0001\u052f\x0006\x0000\x000A\u0531\x0001\u0530\x000B\x0000\x0001\u02ce" + + "\x0070\x0000\x0001\u0330\x0004\u052f\x0002\x0000\x0001\u052f\x000D\x0000\x0001\u052f\x0006\x0000" + + "\x000A\u0532\x0001\u0530\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u052f\x0002\x0000" + + "\x0001\u052f\x000D\x0000\x0001\u052f\x0006\x0000\x0001\u0531\x0001\u0533\x0001\u0532\x0002\u0531" + + "\x0002\u0532\x0001\u0531\x0001\u0532\x0001\u0531\x0001\u0530\x000B\x0000\x0001\u02ce\x0071\x0000" + + "\x0004\u0534\x0002\x0000\x0001\u0534\x000D\x0000\x0001\u0534\x0006\x0000\x000A\u0534\x0001\u04fc" + + "\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u0534\x0002\x0000\x0001\u0534\x000D\x0000" + + "\x0001\u0534\x0006\x0000\x000A\u0534\x0001\u04fc\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\x00E6" + + "\x001A\x0098\x0001\x00E7\x0009\x0098\x0001\u0535\x007D\x0000\x0001\x00E6\x0004\x0098\x0001\u016a" + + "\x0015\x0098\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x0014\x0098\x0001\u012f\x0005\x0098" + + "\x0001\x00E7\x000A\x0098\x007D\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0006\x0098\x0001\u012f" + + "\x0003\x0098\x007D\x0000\x0001\x00FE\x001A\x00B4\x0001\x0061\x0005\x00B4\x0001\u0536\x0004\x00B4" + + "\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E" + + "\x0004\x0000\x0002\x005E\x008E\x0000\x0001\u04ef\x007D\x0000\x0004\u0537\x0002\x0000\x0001\u0537" + + "\x000D\x0000\x0001\u0537\x0006\x0000\x000A\u0537\x0001\u0522\x007D\x0000\x0004\u0538\x0002\x0000" + + "\x0001\u0538\x000D\x0000\x0001\u0538\x0006\x0000\x0001\u0539\x0002\u053a\x0001\u0539\x0005\u053a" + + "\x0001\u053b\x0001\u053c\x007D\x0000\x0004\u053d\x0002\x0000\x0001\u053d\x000D\x0000\x0001\u053d" + + "\x0006\x0000\x000A\u053d\x0001\u053e\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u053d" + + "\x0002\x0000\x0001\u053d\x000D\x0000\x0001\u053d\x0006\x0000\x000A\u053f\x0001\u053e\x000B\x0000" + + "\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u053d\x0002\x0000\x0001\u053d\x000D\x0000\x0001\u053d" + + "\x0006\x0000\x000A\u0540\x0001\u053e\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u053d" + + "\x0002\x0000\x0001\u053d\x000D\x0000\x0001\u053d\x0006\x0000\x0001\u053f\x0001\u0541\x0001\u0540" + + "\x0002\u053f\x0002\u0540\x0001\u053f\x0001\u0540\x0001\u053f\x0001\u053e\x000B\x0000\x0001\u0323" + + "\x0071\x0000\x0004\u0542\x0002\x0000\x0001\u0542\x000D\x0000\x0001\u0542\x0006\x0000\x000A\u0542" + + "\x0001\u050d\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u0542\x0002\x0000\x0001\u0542" + + "\x000D\x0000\x0001\u0542\x0006\x0000\x000A\u0542\x0001\u050d\x000B\x0000\x0001\u0323\x0071\x0000" + + "\x0004\u0543\x0002\x0000\x0001\u0543\x000D\x0000\x0001\u0543\x0006\x0000\x000A\u0543\x0001\u0514" + + "\x007D\x0000\x0004\u0544\x0002\x0000\x0001\u0544\x000D\x0000\x0001\u0544\x0006\x0000\x000A\u0544" + + "\x0001\u0545\x007C\x0000\x0001\u0330\x0004\u0544\x0002\x0000\x0001\u0544\x000D\x0000\x0001\u0544" + + "\x0006\x0000\x000A\u0546\x0001\u0545\x007C\x0000\x0001\u0330\x0004\u0544\x0002\x0000\x0001\u0544" + + "\x000D\x0000\x0001\u0544\x0006\x0000\x000A\u0547\x0001\u0545\x007C\x0000\x0001\u0330\x0004\u0544" + + "\x0002\x0000\x0001\u0544\x000D\x0000\x0001\u0544\x0006\x0000\x0001\u0546\x0001\u0548\x0001\u0547" + + "\x0002\u0546\x0002\u0547\x0001\u0546\x0001\u0547\x0001\u0546\x0001\u0545\x007D\x0000\x0004\u0549" + + "\x0002\x0000\x0001\u0549\x000D\x0000\x0001\u0549\x0006\x0000\x000A\u0549\x000C\x0000\x0001\u02ce" + + "\x0071\x0000\x0004\u054a\x0002\x0000\x0001\u054a\x000D\x0000\x0001\u054a\x0006\x0000\x000A\u054a" + + "\x0001\u0530\x000B\x0000\x0001\u02ce\x0071\x0000\x0004\u0549\x0002\x0000\x0001\u0549\x000D\x0000" + + "\x0001\u0549\x0006\x0000\x000A\u0549\x007D\x0000\x0001\u0330\x0004\u054a\x0002\x0000\x0001\u054a" + + "\x000D\x0000\x0001\u054a\x0006\x0000\x000A\u054b\x0001\u0530\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u054a\x0002\x0000\x0001\u054a\x000D\x0000\x0001\u054a\x0006\x0000\x000A\u054a" + + "\x0001\u0530\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\u0330\x0004\u054a\x0002\x0000\x0001\u054a" + + "\x000D\x0000\x0001\u054a\x0006\x0000\x0002\u054b\x0001\u054a\x0002\u054b\x0002\u054a\x0001\u054b" + + "\x0001\u054a\x0001\u054b\x0001\u0530\x000B\x0000\x0001\u02ce\x0096\x0000\x0001\u04fc\x000B\x0000" + + "\x0001\u02ce\x0070\x0000\x0001\x00E6\x0001\u054c\x0019\x0098\x0001\x00E7\x000A\x0098\x007D\x0000" + + "\x0001\x00FE\x0007\x00B4\x0001\u054d\x0012\x00B4\x0001\x0061\x000A\x00B4\x0001\x0000\x0003\x005E" + + "\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000\x0001\x005E\x0004\x0000\x0002\x005E" + + "\x0069\x0000\x0004\u054e\x0002\x0000\x0001\u054e\x000D\x0000\x0001\u054e\x0006\x0000\x000A\u054e" + + "\x0001\u0522\x007D\x0000\x0004\u054f\x0002\x0000\x0001\u054f\x000D\x0000\x0001\u054f\x0006\x0000" + + "\x000A\u054f\x0001\u0550\x007C\x0000\x0001\u0383\x0004\u054f\x0002\x0000\x0001\u054f\x000D\x0000" + + "\x0001\u054f\x0006\x0000\x000A\u0551\x0001\u0550\x007C\x0000\x0001\u0383\x0004\u054f\x0002\x0000" + + "\x0001\u054f\x000D\x0000\x0001\u054f\x0006\x0000\x000A\u0552\x0001\u0550\x007C\x0000\x0001\u0383" + + "\x0004\u054f\x0002\x0000\x0001\u054f\x000D\x0000\x0001\u054f\x0006\x0000\x0001\u0551\x0001\u0553" + + "\x0001\u0552\x0002\u0551\x0002\u0552\x0001\u0551\x0001\u0552\x0001\u0551\x0001\u0550\x007D\x0000" + + "\x0004\u0554\x0002\x0000\x0001\u0554\x000D\x0000\x0001\u0554\x0006\x0000\x000A\u0554\x000C\x0000" + + "\x0001\u0323\x0071\x0000\x0004\u0555\x0002\x0000\x0001\u0555\x000D\x0000\x0001\u0555\x0006\x0000" + + "\x000A\u0555\x0001\u053e\x000B\x0000\x0001\u0323\x0071\x0000\x0004\u0554\x0002\x0000\x0001\u0554" + + "\x000D\x0000\x0001\u0554\x0006\x0000\x000A\u0554\x007D\x0000\x0001\u0383\x0004\u0555\x0002\x0000" + + "\x0001\u0555\x000D\x0000\x0001\u0555\x0006\x0000\x000A\u0556\x0001\u053e\x000B\x0000\x0001\u0323" + + "\x0070\x0000\x0001\u0383\x0004\u0555\x0002\x0000\x0001\u0555\x000D\x0000\x0001\u0555\x0006\x0000" + + "\x000A\u0555\x0001\u053e\x000B\x0000\x0001\u0323\x0070\x0000\x0001\u0383\x0004\u0555\x0002\x0000" + + "\x0001\u0555\x000D\x0000\x0001\u0555\x0006\x0000\x0002\u0556\x0001\u0555\x0002\u0556\x0002\u0555" + + "\x0001\u0556\x0001\u0555\x0001\u0556\x0001\u053e\x000B\x0000\x0001\u0323\x0096\x0000\x0001\u050d" + + "\x000B\x0000\x0001\u0323\x0096\x0000\x0001\u0514\x007D\x0000\x0004\u0557\x0002\x0000\x0001\u0557" + + "\x000D\x0000\x0001\u0557\x0006\x0000\x000A\u0557\x0001\u0545\x007D\x0000\x0004\u0549\x0002\x0000" + + "\x0001\u0549\x000D\x0000\x0001\u0549\x0006\x0000\x000A\u0549\x0001\u04dc\x007C\x0000\x0001\u0330" + + "\x0004\u0557\x0002\x0000\x0001\u0557\x000D\x0000\x0001\u0557\x0006\x0000\x000A\u0558\x0001\u0545" + + "\x007C\x0000\x0001\u0330\x0004\u0557\x0002\x0000\x0001\u0557\x000D\x0000\x0001\u0557\x0006\x0000" + + "\x000A\u0557\x0001\u0545\x007C\x0000\x0001\u0330\x0004\u0557\x0002\x0000\x0001\u0557\x000D\x0000" + + "\x0001\u0557\x0006\x0000\x0002\u0558\x0001\u0557\x0002\u0558\x0002\u0557\x0001\u0558\x0001\u0557" + + "\x0001\u0558\x0001\u0545\x007D\x0000\x0004\u0559\x0002\x0000\x0001\u0559\x000D\x0000\x0001\u0559" + + "\x0006\x0000\x000A\u0559\x000C\x0000\x0001\u02ce\x0071\x0000\x0004\u055a\x0002\x0000\x0001\u055a" + + "\x000D\x0000\x0001\u055a\x0006\x0000\x000A\u055a\x0001\u0530\x000B\x0000\x0001\u02ce\x0070\x0000" + + "\x0001\u0330\x0004\u055a\x0002\x0000\x0001\u055a\x000D\x0000\x0001\u055a\x0006\x0000\x000A\u055a" + + "\x0001\u0530\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\x00E6\x001A\x0098\x0001\x00E7\x0005\x0098" + + "\x0001\u055b\x0004\x0098\x007D\x0000\x0001\x00FE\x0001\x00B4\x0001\u0364\x0018\x00B4\x0001\x0061" + + "\x000A\x00B4\x0001\x0000\x0003\x005E\x0001\x0000\x0002\x005E\x0001\x005F\x0003\x005E\x0003\x0000" + + "\x0001\x005E\x0004\x0000\x0002\x005E\x008E\x0000\x0001\u0522\x007D\x0000\x0004\u055c\x0002\x0000" + + "\x0001\u055c\x000D\x0000\x0001\u055c\x0006\x0000\x000A\u055c\x0001\u0550\x007D\x0000\x0004\u0554" + + "\x0002\x0000\x0001\u0554\x000D\x0000\x0001\u0554\x0006\x0000\x000A\u0554\x0001\u04f6\x007C\x0000" + + "\x0001\u0383\x0004\u055c\x0002\x0000\x0001\u055c\x000D\x0000\x0001\u055c\x0006\x0000\x000A\u055d" + + "\x0001\u0550\x007C\x0000\x0001\u0383\x0004\u055c\x0002\x0000\x0001\u055c\x000D\x0000\x0001\u055c" + + "\x0006\x0000\x000A\u055c\x0001\u0550\x007C\x0000\x0001\u0383\x0004\u055c\x0002\x0000\x0001\u055c" + + "\x000D\x0000\x0001\u055c\x0006\x0000\x0002\u055d\x0001\u055c\x0002\u055d\x0002\u055c\x0001\u055d" + + "\x0001\u055c\x0001\u055d\x0001\u0550\x007D\x0000\x0004\u055e\x0002\x0000\x0001\u055e\x000D\x0000" + + "\x0001\u055e\x0006\x0000\x000A\u055e\x000C\x0000\x0001\u0323\x0071\x0000\x0004\u055f\x0002\x0000" + + "\x0001\u055f\x000D\x0000\x0001\u055f\x0006\x0000\x000A\u055f\x0001\u053e\x000B\x0000\x0001\u0323" + + "\x0070\x0000\x0001\u0383\x0004\u055f\x0002\x0000\x0001\u055f\x000D\x0000\x0001\u055f\x0006\x0000" + + "\x000A\u055f\x0001\u053e\x000B\x0000\x0001\u0323\x0071\x0000\x0004\u0560\x0002\x0000\x0001\u0560" + + "\x000D\x0000\x0001\u0560\x0006\x0000\x000A\u0560\x0001\u0545\x007C\x0000\x0001\u0330\x0004\u0560" + + "\x0002\x0000\x0001\u0560\x000D\x0000\x0001\u0560\x0006\x0000\x000A\u0560\x0001\u0545\x007D\x0000" + + "\x0004\u0561\x0002\x0000\x0001\u0561\x000D\x0000\x0001\u0561\x0006\x0000\x000A\u0561\x000C\x0000" + + "\x0001\u02ce\x0096\x0000\x0001\u0530\x000B\x0000\x0001\u02ce\x0070\x0000\x0001\x00E6\x0007\x0098" + + "\x0001\u0562\x0012\x0098\x0001\x00E7\x000A\x0098\x007E\x0000\x0004\u0563\x0002\x0000\x0001\u0563" + + "\x000D\x0000\x0001\u0563\x0006\x0000\x000A\u0563\x0001\u0550\x007C\x0000\x0001\u0383\x0004\u0563" + + "\x0002\x0000\x0001\u0563\x000D\x0000\x0001\u0563\x0006\x0000\x000A\u0563\x0001\u0550\x007D\x0000" + + "\x0004\u0564\x0002\x0000\x0001\u0564\x000D\x0000\x0001\u0564\x0006\x0000\x000A\u0564\x000C\x0000" + + "\x0001\u0323\x0096\x0000\x0001\u053e\x000B\x0000\x0001\u0323\x0096\x0000\x0001\u0545\x007D\x0000" + + "\x0004\u04dc\x0002\x0000\x0001\u04dc\x000D\x0000\x0001\u04dc\x0006\x0000\x000A\u04dc\x000C\x0000" + + "\x0001\u02ce\x0070\x0000\x0001\x00E6\x0001\x0098\x0001\u03fa\x0018\x0098\x0001\x00E7\x000A\x0098" + + "\x00A3\x0000\x0001\u0550\x007D\x0000\x0004\u04f6\x0002\x0000\x0001\u04f6\x000D\x0000\x0001\u04f6" + + "\x0006\x0000\x000A\u04f6\x000C\x0000\x0001\u0323\x0009\x0000"; + + private static int[] ZzUnpackTrans() + { + int[] result = new int[222495]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private static readonly int ZZ_UNKNOWN_ERROR = 0; + private static readonly int ZZ_NO_MATCH = 1; + private static readonly int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0001\x0000\x0001\x0009\x0024\x0001\x000D\x0000\x0001\x0001\x0001\x0000\x0001\x0001\x0008\x0000" + + "\x0001\x0001\x000D\x0000\x0001\x0001\x0014\x0000\x0002\x0001\x0001\x0000\x0003\x0001\x0001\x0000" + + "\x0001\x0001\x0001\x0000\x0004\x0001\x002B\x0000\x001A\x0001\x0003\x0000\x0004\x0001\x001A\x0000" + + "\x0004\x0001\x000F\x0000\x0001\x0009\x0001\x0000\x0014\x0001\x0002\x0000\x0001\x0001\x0001\x0000" + + "\x0007\x0001\x0003\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0002\x0001\x0001\x0000" + + "\x0002\x0001\x0008\x0000\x0001\x0001\x001A\x0000\x0001\x0001\x0001\x0000\x0009\x0001\x0001\x0000" + + "\x0001\x0001\x0002\x0000\x0001\x0001\x0001\x0000\x0001\x0001\x0008\x0000\x0003\x0001\x000D\x0000" + + "\x0009\x0001\x0003\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0004\x0001\x0001\x0000" + + "\x0002\x0001\x0001\x0000\x0002\x0001\x0001\x0000\x0003\x0001\x0007\x0000\x0002\x0001\x0010\x0000" + + "\x0001\x0001\x0008\x0000\x0001\x0001\x0003\x0000\x0001\x0001\x001F\x0000\x0003\x0001\x0013\x0000" + + "\x0001\x0001\x0020\x0000\x0001\x0001\x0004\x0000\x0001\x0001\x0006\x0000\x0001\x0001\x0004\x0000" + + "\x0002\x0001\x0023\x0000\x0001\x0001\x0031\x0000\x0001\x0001\x002B\x0000\x0001\x0001\x0033\x0000" + + "\x0001\x0001\x0064\x0000\x0001\x0001\x0062\x0000\x0001\x0001\x0057\x0000\x0001\x0001\x0049\x0000" + + "\x0001\x0001\x0033\x0000\x0001\x0001\x00F7\x0000"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[1380]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private TextReader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the YyText() string */ + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the YyText() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private bool zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private bool zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private bool zzEOFDone; + + /* user code: */ + /** Alphanumeric sequences */ + public static readonly int WORD_TYPE = UAX29URLEmailTokenizer.ALPHANUM; + + /** Numbers */ + public static readonly int NUMERIC_TYPE = UAX29URLEmailTokenizer.NUM; + + /** + * Chars in class \p{Line_Break = Complex_Context} are from South East Asian + * scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept + * together as as a single token rather than broken up, because the logic + * required to break them at word boundaries is too complex for UAX#29. + *

+ * See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA + */ + public static readonly int SOUTH_EAST_ASIAN_TYPE = UAX29URLEmailTokenizer.SOUTHEAST_ASIAN; + + public static readonly int IDEOGRAPHIC_TYPE = UAX29URLEmailTokenizer.IDEOGRAPHIC; + + public static readonly int HIRAGANA_TYPE = UAX29URLEmailTokenizer.HIRAGANA; + + public static readonly int KATAKANA_TYPE = UAX29URLEmailTokenizer.KATAKANA; + + public static readonly int HANGUL_TYPE = UAX29URLEmailTokenizer.HANGUL; + + public static readonly int EMAIL_TYPE = UAX29URLEmailTokenizer.EMAIL; + + public static readonly int URL_TYPE = UAX29URLEmailTokenizer.URL; + + public int YyChar + { + get { return yychar; } + } + + /** + * Fills CharTermAttribute with the current token text. + */ + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public UAX29URLEmailTokenizerImpl34(TextReader @in) + { + this.zzReader = @in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 2812) + { + int count = packed[i++]; + char value = packed[i++]; + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + System.Array.Copy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + System.Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* readonlyly: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, + zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c == -1) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /** + * Closes the input stream. + */ + public void YyClose() + { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + { + zzReader.Dispose(); + } + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public void YyReset(TextReader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public int YyState + { + get { return zzLexicalState; } + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to YyText().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to YyLength()-1. + * + * @return the character at position pos + */ + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * YyPushBack(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (IndexOutOfRangeException e) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than YyLength()! + */ + public void YyPushBack(int number) + { + if (number > YyLength) + ZzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public int GetNextToken() + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; + + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yychar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + zzInput = zzBufferL[zzCurrentPosL++]; + else if (zzAtEOF) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) goto zzForActionBreak; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) goto zzForActionBreak; + } + + } + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { /* Break so we don't hit fall-through warning: */ + break;/* Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. */ + } + case 11: break; + case 2: + { + return WORD_TYPE; + } + case 12: break; + case 3: + { + return NUMERIC_TYPE; + } + case 13: break; + case 4: + { + return KATAKANA_TYPE; + } + case 14: break; + case 5: + { + return SOUTH_EAST_ASIAN_TYPE; + } + case 15: break; + case 6: + { + return IDEOGRAPHIC_TYPE; + } + case 16: break; + case 7: + { + return HIRAGANA_TYPE; + } + case 17: break; + case 8: + { + return HANGUL_TYPE; + } + case 18: break; + case 9: + { + return EMAIL_TYPE; + } + case 19: break; + case 10: + { + return URL_TYPE; + } + case 20: break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + { + return StandardTokenizerInterface_Fields.YYEOF; + } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } +} diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std36/UAX29URLEmailTokenizerImpl36.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std36/UAX29URLEmailTokenizerImpl36.cs new file mode 100644 index 0000000000..e7a05cef08 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std36/UAX29URLEmailTokenizerImpl36.cs @@ -0,0 +1,4241 @@ +using Lucene.Net.Analysis.Tokenattributes; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Standard.Std36 +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + ///

+ /// This class implements UAX29URLEmailTokenizer using Unicode 6.0.0. + /// @deprecated This class is only for exact backwards compatibility + /// + [Obsolete("This class is only for exact backwards compatibility")] + public sealed class UAX29URLEmailTokenizerImpl36 : IStandardTokenizerInterface + { + /** This character denotes the end of file */ + public static readonly int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static readonly int ZZ_BUFFERSIZE = 4096; + + /** lexical states */ + public const int YYINITIAL = 0; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static readonly int[] ZZ_LEXSTATE = { 0, 0 }; + + /** + * Translates characters to character classes + */ + private const string ZZ_CMAP_PACKED = + "\x0001\x009F\x0008\x009D\x0002\x009F\x0002\x009D\x0001\x009F\x0013\x009D\x0001\x00A0\x0001\x009C\x0001\x0097\x0001\x00A0" + + "\x0001\x0090\x0001\x008E\x0001\x0093\x0002\x0091\x0002\x00A0\x0001\x0092\x0001\x0082\x0001\x0067\x0001\x0096\x0001\x0083" + + "\x0001\x0086\x0001\x008C\x0001\x0087\x0001\x008A\x0001\x0084\x0001\x0085\x0001\x0089\x0001\x008B\x0001\x0088\x0001\x008D" + + "\x0001\x009A\x0001\x009D\x0001\x009B\x0001\x009D\x0001\x0095\x0001\x0094\x0001\x0068\x0001\x007C\x0001\x0069\x0001\x006A" + + "\x0001\x006B\x0001\x006E\x0001\x006F\x0001\x007D\x0001\x0070\x0001\x007E\x0001\x0081\x0001\x0071\x0001\x0072\x0001\x0073" + + "\x0001\x006D\x0001\x0075\x0001\x0074\x0001\x006C\x0001\x0076\x0001\x0077\x0001\x0078\x0001\x007F\x0001\x0079\x0001\x007A" + + "\x0001\x0080\x0001\x007B\x0001\x0098\x0001\x009E\x0001\x0099\x0001\x00A1\x0001\x008F\x0001\x00A1\x0001\x0068\x0001\x007C" + + "\x0001\x0069\x0001\x006A\x0001\x006B\x0001\x006E\x0001\x006F\x0001\x007D\x0001\x0070\x0001\x007E\x0001\x0081\x0001\x0071" + + "\x0001\x0072\x0001\x0073\x0001\x006D\x0001\x0075\x0001\x0074\x0001\x006C\x0001\x0076\x0001\x0077\x0001\x0078\x0001\x007F" + + "\x0001\x0079\x0001\x007A\x0001\x0080\x0001\x007B\x0003\x00A1\x0001\x008E\x0001\x00A2\x002A\x0000\x0001\x005A\x0002\x0000" + + "\x0001\x005B\x0007\x0000\x0001\x005A\x0001\x0000\x0001\x005E\x0002\x0000\x0001\x005A\x0005\x0000\x0017\x005A\x0001\x0000" + + "\x001F\x005A\x0001\x0000\u01ca\x005A\x0004\x0000\x000C\x005A\x000E\x0000\x0005\x005A\x0007\x0000\x0001\x005A\x0001\x0000" + + "\x0001\x005A\x0011\x0000\x0070\x005B\x0005\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0004\x005A\x0001\x005F\x0007\x0000" + + "\x0001\x005A\x0001\x005E\x0003\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0014\x005A\x0001\x0000\x0053\x005A\x0001\x0000" + + "\x008B\x005A\x0001\x0000\x0007\x005B\x009E\x005A\x0009\x0000\x0026\x005A\x0002\x0000\x0001\x005A\x0007\x0000\x0027\x005A" + + "\x0001\x0000\x0001\x005F\x0007\x0000\x002D\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0002\x005B\x0001\x0000\x0002\x005B" + + "\x0001\x0000\x0001\x005B\x0008\x0000\x001B\x005A\x0005\x0000\x0004\x005A\x0001\x005E\x000B\x0000\x0004\x005B\x0008\x0000" + + "\x0002\x005F\x0002\x0000\x000B\x005B\x0005\x0000\x002B\x005A\x0015\x005B\x000A\x005C\x0001\x0000\x0001\x005C\x0001\x005F" + + "\x0001\x0000\x0002\x005A\x0001\x005B\x0063\x005A\x0001\x0000\x0001\x005A\x0007\x005B\x0001\x005B\x0001\x0000\x0006\x005B" + + "\x0002\x005A\x0002\x005B\x0001\x0000\x0004\x005B\x0002\x005A\x000A\x005C\x0003\x005A\x0002\x0000\x0001\x005A\x000F\x0000" + + "\x0001\x005B\x0001\x005A\x0001\x005B\x001E\x005A\x001B\x005B\x0002\x0000\x0059\x005A\x000B\x005B\x0001\x005A\x000E\x0000" + + "\x000A\x005C\x0021\x005A\x0009\x005B\x0002\x005A\x0002\x0000\x0001\x005F\x0001\x0000\x0001\x005A\x0005\x0000\x0016\x005A" + + "\x0004\x005B\x0001\x005A\x0009\x005B\x0001\x005A\x0003\x005B\x0001\x005A\x0005\x005B\x0012\x0000\x0019\x005A\x0003\x005B" + + "\x00A4\x0000\x0004\x005B\x0036\x005A\x0003\x005B\x0001\x005A\x0012\x005B\x0001\x005A\x0007\x005B\x000A\x005A\x0002\x005B" + + "\x0002\x0000\x000A\x005C\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0003\x005B\x0001\x0000\x0008\x005A" + + "\x0002\x0000\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0003\x0000\x0004\x005A" + + "\x0002\x0000\x0001\x005B\x0001\x005A\x0007\x005B\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0001\x005A\x0008\x0000" + + "\x0001\x005B\x0004\x0000\x0002\x005A\x0001\x0000\x0003\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0002\x005A\x000F\x0000" + + "\x0003\x005B\x0001\x0000\x0006\x005A\x0004\x0000\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000" + + "\x0002\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0001\x005B\x0001\x0000\x0005\x005B\x0004\x0000" + + "\x0002\x005B\x0002\x0000\x0003\x005B\x0003\x0000\x0001\x005B\x0007\x0000\x0004\x005A\x0001\x0000\x0001\x005A\x0007\x0000" + + "\x000A\x005C\x0002\x005B\x0003\x005A\x0001\x005B\x000B\x0000\x0003\x005B\x0001\x0000\x0009\x005A\x0001\x0000\x0003\x005A" + + "\x0001\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B" + + "\x0001\x005A\x0008\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0003\x005B\x0002\x0000\x0001\x005A\x000F\x0000\x0002\x005A" + + "\x0002\x005B\x0002\x0000\x000A\x005C\x0011\x0000\x0003\x005B\x0001\x0000\x0008\x005A\x0002\x0000\x0002\x005A\x0002\x0000" + + "\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B\x0001\x005A" + + "\x0007\x005B\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0008\x0000\x0002\x005B\x0004\x0000\x0002\x005A\x0001\x0000" + + "\x0003\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0001\x005A\x0010\x0000\x0001\x005B\x0001\x005A\x0001\x0000" + + "\x0006\x005A\x0003\x0000\x0003\x005A\x0001\x0000\x0004\x005A\x0003\x0000\x0002\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0002\x005A\x0003\x0000\x0002\x005A\x0003\x0000\x0003\x005A\x0003\x0000\x000C\x005A\x0004\x0000\x0005\x005B\x0003\x0000" + + "\x0003\x005B\x0001\x0000\x0004\x005B\x0002\x0000\x0001\x005A\x0006\x0000\x0001\x005B\x000E\x0000\x000A\x005C\x0011\x0000" + + "\x0003\x005B\x0001\x0000\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000" + + "\x0005\x005A\x0003\x0000\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B" + + "\x0001\x0000\x0002\x005A\x0006\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0012\x0000\x0002\x005B\x0001\x0000" + + "\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000\x0005\x005A\x0002\x0000" + + "\x0001\x005B\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B\x0007\x0000" + + "\x0001\x005A\x0001\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0002\x005A\x000F\x0000\x0002\x005B" + + "\x0001\x0000\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0029\x005A\x0002\x0000\x0001\x005A\x0007\x005B\x0001\x0000" + + "\x0003\x005B\x0001\x0000\x0004\x005B\x0001\x005A\x0008\x0000\x0001\x005B\x0008\x0000\x0002\x005A\x0002\x005B\x0002\x0000" + + "\x000A\x005C\x000A\x0000\x0006\x005A\x0002\x0000\x0002\x005B\x0001\x0000\x0012\x005A\x0003\x0000\x0018\x005A\x0001\x0000" + + "\x0009\x005A\x0001\x0000\x0001\x005A\x0002\x0000\x0007\x005A\x0003\x0000\x0001\x005B\x0004\x0000\x0006\x005B\x0001\x0000" + + "\x0001\x005B\x0001\x0000\x0008\x005B\x0012\x0000\x0002\x005B\x000D\x0000\x0030\x0062\x0001\x0063\x0002\x0062\x0007\x0063" + + "\x0005\x0000\x0007\x0062\x0008\x0063\x0001\x0000\x000A\x005C\x0027\x0000\x0002\x0062\x0001\x0000\x0001\x0062\x0002\x0000" + + "\x0002\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0001\x0062\x0006\x0000\x0004\x0062\x0001\x0000\x0007\x0062\x0001\x0000" + + "\x0003\x0062\x0001\x0000\x0001\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0002\x0062\x0001\x0000\x0004\x0062\x0001\x0063" + + "\x0002\x0062\x0006\x0063\x0001\x0000\x0002\x0063\x0001\x0062\x0002\x0000\x0005\x0062\x0001\x0000\x0001\x0062\x0001\x0000" + + "\x0006\x0063\x0002\x0000\x000A\x005C\x0002\x0000\x0002\x0062\x0022\x0000\x0001\x005A\x0017\x0000\x0002\x005B\x0006\x0000" + + "\x000A\x005C\x000B\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0004\x0000\x0002\x005B\x0008\x005A" + + "\x0001\x0000\x0024\x005A\x0004\x0000\x0014\x005B\x0001\x0000\x0002\x005B\x0005\x005A\x000B\x005B\x0001\x0000\x0024\x005B" + + "\x0009\x0000\x0001\x005B\x0039\x0000\x002B\x0062\x0014\x0063\x0001\x0062\x000A\x005C\x0006\x0000\x0006\x0062\x0004\x0063" + + "\x0004\x0062\x0003\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0007\x0063\x0003\x0062\x0004\x0063\x000D\x0062\x000C\x0063" + + "\x0001\x0062\x0001\x0063\x000A\x005C\x0004\x0063\x0002\x0062\x0026\x005A\x000A\x0000\x002B\x005A\x0001\x0000\x0001\x005A" + + "\x0003\x0000\u0100\x0066\x0049\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0004\x005A\x0002\x0000\x0029\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0021\x005A\x0001\x0000\x0004\x005A\x0002\x0000" + + "\x0007\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x000F\x005A\x0001\x0000\x0039\x005A\x0001\x0000" + + "\x0004\x005A\x0002\x0000\x0043\x005A\x0002\x0000\x0003\x005B\x0020\x0000\x0010\x005A\x0010\x0000\x0055\x005A\x000C\x0000" + + "\u026c\x005A\x0002\x0000\x0011\x005A\x0001\x0000\x001A\x005A\x0005\x0000\x004B\x005A\x0003\x0000\x0003\x005A\x000F\x0000" + + "\x000D\x005A\x0001\x0000\x0004\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0002\x005B" + + "\x000C\x0000\x000D\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0002\x005B\x000C\x0000\x0034\x0062\x0002\x0063\x001E\x0063" + + "\x0003\x0000\x0001\x0062\x0004\x0000\x0001\x0062\x0001\x0063\x0002\x0000\x000A\x005C\x0021\x0000\x0003\x005B\x0002\x0000" + + "\x000A\x005C\x0006\x0000\x0058\x005A\x0008\x0000\x0029\x005A\x0001\x005B\x0001\x005A\x0005\x0000\x0046\x005A\x000A\x0000" + + "\x001D\x005A\x0003\x0000\x000C\x005B\x0004\x0000\x000C\x005B\x000A\x0000\x000A\x005C\x001E\x0062\x0002\x0000\x0005\x0062" + + "\x000B\x0000\x002C\x0062\x0004\x0000\x0011\x0063\x0007\x0062\x0002\x0063\x0006\x0000\x000A\x005C\x0001\x0062\x0003\x0000" + + "\x0002\x0062\x0020\x0000\x0017\x005A\x0005\x005B\x0004\x0000\x0035\x0062\x000A\x0063\x0001\x0000\x001D\x0063\x0002\x0000" + + "\x0001\x005B\x000A\x005C\x0006\x0000\x000A\x005C\x0006\x0000\x000E\x0062\x0052\x0000\x0005\x005B\x002F\x005A\x0011\x005B" + + "\x0007\x005A\x0004\x0000\x000A\x005C\x0011\x0000\x0009\x005B\x000C\x0000\x0003\x005B\x001E\x005A\x000A\x005B\x0003\x0000" + + "\x0002\x005A\x000A\x005C\x0006\x0000\x0026\x005A\x000E\x005B\x000C\x0000\x0024\x005A\x0014\x005B\x0008\x0000\x000A\x005C" + + "\x0003\x0000\x0003\x005A\x000A\x005C\x0024\x005A\x0052\x0000\x0003\x005B\x0001\x0000\x0015\x005B\x0004\x005A\x0001\x005B" + + "\x0004\x005A\x0001\x005B\x000D\x0000\x00C0\x005A\x0027\x005B\x0015\x0000\x0004\x005B\u0116\x005A\x0002\x0000\x0006\x005A" + + "\x0002\x0000\x0026\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0008\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A" + + "\x0001\x0000\x0001\x005A\x0001\x0000\x001F\x005A\x0002\x0000\x0035\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A" + + "\x0003\x0000\x0003\x005A\x0001\x0000\x0007\x005A\x0003\x0000\x0004\x005A\x0002\x0000\x0006\x005A\x0004\x0000\x000D\x005A" + + "\x0005\x0000\x0003\x005A\x0001\x0000\x0007\x005A\x000F\x0000\x0002\x005B\x0002\x005B\x0008\x0000\x0002\x0060\x000A\x0000" + + "\x0001\x0060\x0002\x0000\x0001\x005E\x0002\x0000\x0005\x005B\x0010\x0000\x0002\x0061\x0003\x0000\x0001\x005F\x000F\x0000" + + "\x0001\x0061\x000B\x0000\x0005\x005B\x0005\x0000\x0006\x005B\x0001\x0000\x0001\x005A\x000D\x0000\x0001\x005A\x0010\x0000" + + "\x000D\x005A\x0033\x0000\x0021\x005B\x0011\x0000\x0001\x005A\x0004\x0000\x0001\x005A\x0002\x0000\x000A\x005A\x0001\x0000" + + "\x0001\x005A\x0003\x0000\x0005\x005A\x0006\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0004\x005A\x0001\x0000\x000B\x005A\x0002\x0000\x0004\x005A\x0005\x0000\x0005\x005A\x0004\x0000\x0001\x005A\x0011\x0000" + + "\x0029\x005A\u032d\x0000\x0034\x005A\u0716\x0000\x002F\x005A\x0001\x0000\x002F\x005A\x0001\x0000\x0085\x005A\x0006\x0000" + + "\x0004\x005A\x0003\x005B\x000E\x0000\x0026\x005A\x000A\x0000\x0036\x005A\x0009\x0000\x0001\x005A\x000F\x0000\x0001\x005B" + + "\x0017\x005A\x0009\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000" + + "\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0020\x005B\x002F\x0000" + + "\x0001\x005A\x0050\x0000\x001A\x0064\x0001\x0000\x0059\x0064\x000C\x0000\x00D6\x0064\x002F\x0000\x0001\x005A\x0001\x0000" + + "\x0001\x0064\x0019\x0000\x0009\x0064\x0004\x005B\x0002\x005B\x0001\x0000\x0005\x005D\x0002\x0000\x0003\x0064\x0001\x005A" + + "\x0001\x005A\x0004\x0000\x0056\x0065\x0002\x0000\x0002\x005B\x0002\x005D\x0003\x0065\x005B\x005D\x0001\x0000\x0004\x005D" + + "\x0005\x0000\x0029\x005A\x0003\x0000\x005E\x0066\x0011\x0000\x001B\x005A\x0035\x0000\x0010\x005D\x001F\x0000\x0041\x0000" + + "\x001F\x0000\x0051\x0000\x002F\x005D\x0001\x0000\x0058\x005D\x00A8\x0000\u19b6\x0064\x004A\x0000\u51cc\x0064\x0034\x0000" + + "\u048d\x005A\x0043\x0000\x002E\x005A\x0002\x0000\u010d\x005A\x0003\x0000\x0010\x005A\x000A\x005C\x0002\x005A\x0014\x0000" + + "\x002F\x005A\x0004\x005B\x0009\x0000\x0002\x005B\x0001\x0000\x0019\x005A\x0008\x0000\x0050\x005A\x0002\x005B\x0025\x0000" + + "\x0009\x005A\x0002\x0000\x0067\x005A\x0002\x0000\x0004\x005A\x0001\x0000\x0002\x005A\x000E\x0000\x000A\x005A\x0050\x0000" + + "\x0008\x005A\x0001\x005B\x0003\x005A\x0001\x005B\x0004\x005A\x0001\x005B\x0017\x005A\x0005\x005B\x0018\x0000\x0034\x005A" + + "\x000C\x0000\x0002\x005B\x0032\x005A\x0011\x005B\x000B\x0000\x000A\x005C\x0006\x0000\x0012\x005B\x0006\x005A\x0003\x0000" + + "\x0001\x005A\x0004\x0000\x000A\x005C\x001C\x005A\x0008\x005B\x0002\x0000\x0017\x005A\x000D\x005B\x000C\x0000\x001D\x0066" + + "\x0003\x0000\x0004\x005B\x002F\x005A\x000E\x005B\x000E\x0000\x0001\x005A\x000A\x005C\x0026\x0000\x0029\x005A\x000E\x005B" + + "\x0009\x0000\x0003\x005A\x0001\x005B\x0008\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0006\x0000\x001B\x0062\x0001\x0063" + + "\x0004\x0000\x0030\x0062\x0001\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0002\x0063\x0005\x0062\x0002\x0063\x0001\x0062" + + "\x0001\x0063\x0001\x0062\x0018\x0000\x0005\x0062\x0021\x0000\x0006\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0006\x005A" + + "\x0009\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0091\x0000\x0023\x005A\x0008\x005B\x0001\x0000\x0002\x005B\x0002\x0000" + + "\x000A\x005C\x0006\x0000\u2ba4\x0066\x000C\x0000\x0017\x0066\x0004\x0000\x0031\x0066\x0004\x0000\x0001\x0019\x0001\x0015" + + "\x0001\x0026\x0001\x0023\x0001\x000B\x0003\x0000\x0001\x0007\x0001\x0005\x0002\x0000\x0001\x0003\x0001\x0001\x000C\x0000" + + "\x0001\x0009\x0011\x0000\x0001\x004A\x0007\x0000\x0001\x0035\x0001\x000F\x0006\x0000\x0001\x0058\x0003\x0000\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0051\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0055\x0001\x0053\x000F\x0000\x0001\x004C\u02c1\x0000\x0001\x0038" + + "\x00BF\x0000\x0001\x004B\x0001\x0039\x0001\x0002\x0003\x0054\x0002\x001D\x0001\x0054\x0001\x001D\x0002\x0054\x0001\x000C" + + "\x0011\x0054\x0002\x0030\x0007\x003B\x0001\x003A\x0007\x003B\x0007\x002A\x0001\x000D\x0001\x002A\x0001\x003D\x0002\x0025" + + "\x0001\x0024\x0001\x003D\x0001\x0025\x0001\x0024\x0008\x003D\x0002\x0033\x0005\x0031\x0002\x002C\x0005\x0031\x0001\x0006" + + "\x0008\x001F\x0005\x0011\x0003\x0017\x000A\x0046\x0010\x0017\x0003\x0022\x001A\x0018\x0001\x0016\x0002\x0014\x0002\x0048" + + "\x0001\x0049\x0002\x0048\x0002\x0049\x0002\x0048\x0001\x0049\x0003\x0014\x0001\x000E\x0002\x0014\x000A\x0034\x0001\x003C" + + "\x0001\x0021\x0001\x001C\x0001\x0034\x0006\x0021\x0001\x001C\x0036\x0021\x0005\x004D\x0006\x0043\x0001\x0029\x0004\x0043" + + "\x0002\x0029\x0008\x0043\x0001\x0029\x0007\x0040\x0001\x000A\x0002\x0040\x001A\x0043\x0001\x000A\x0004\x0040\x0001\x000A" + + "\x0005\x0042\x0001\x0041\x0001\x0042\x0003\x0041\x0007\x0042\x0001\x0041\x0013\x0042\x0005\x0037\x0003\x0042\x0006\x0037" + + "\x0002\x0037\x0006\x0036\x0008\x0036\x0002\x0040\x0007\x0036\x001E\x0040\x0004\x0036\x0042\x0040\x000D\x004D\x0001\x003F" + + "\x0002\x004D\x0001\x0059\x0003\x004F\x0001\x004D\x0002\x004F\x0005\x004D\x0004\x004F\x0004\x004E\x0001\x004D\x0003\x004E" + + "\x0001\x004D\x0005\x004E\x0016\x002E\x0004\x0013\x0001\x0045\x0002\x0044\x0004\x0052\x0001\x0044\x0002\x0052\x0003\x003E" + + "\x001B\x0052\x001D\x002D\x0003\x0052\x001D\x0056\x0003\x0052\x0006\x0056\x0002\x001B\x0019\x0056\x0001\x001B\x000F\x0056" + + "\x0006\x0052\x0004\x0012\x0001\x0008\x001F\x0012\x0001\x0008\x0004\x0012\x0015\x0032\x0001\x0057\x0009\x0032\x0011\x002D" + + "\x0005\x0032\x0001\x002F\x000A\x0020\x000B\x0032\x0004\x002D\x0001\x0028\x0006\x002D\x000A\x0052\x000F\x002D\x0001\x0027" + + "\x0003\x002B\x000D\x0010\x0009\x001E\x0001\x001A\x0014\x001E\x0002\x0010\x0009\x001E\x0001\x001A\x0019\x001E\x0001\x001A" + + "\x0004\x0010\x0004\x001E\x0002\x001A\x0002\x0047\x0001\x0004\x0005\x0047\x002A\x0004\u1900\x0000\u012e\x0064\x0002\x0000" + + "\x003E\x0064\x0002\x0000\x006A\x0064\x0026\x0000\x0007\x005A\x000C\x0000\x0005\x005A\x0005\x0000\x0001\x005A\x0001\x005B" + + "\x000A\x005A\x0001\x0000\x000D\x005A\x0001\x0000\x0005\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0002\x005A\x0001\x0000" + + "\x0002\x005A\x0001\x0000\x006C\x005A\x0021\x0000\u016b\x005A\x0012\x0000\x0040\x005A\x0002\x0000\x0036\x005A\x0028\x0000" + + "\x000C\x005A\x0004\x0000\x0010\x005B\x0001\x005F\x0002\x0000\x0001\x005E\x0001\x005F\x000B\x0000\x0007\x005B\x000C\x0000" + + "\x0002\x0061\x0018\x0000\x0003\x0061\x0001\x005F\x0001\x0000\x0001\x0060\x0001\x0000\x0001\x005F\x0001\x005E\x001A\x0000" + + "\x0005\x005A\x0001\x0000\x0087\x005A\x0002\x0000\x0001\x005B\x0007\x0000\x0001\x0060\x0004\x0000\x0001\x005F\x0001\x0000" + + "\x0001\x0060\x0001\x0000\x000A\x005C\x0001\x005E\x0001\x005F\x0005\x0000\x001A\x005A\x0004\x0000\x0001\x0061\x0001\x0000" + + "\x001A\x005A\x000B\x0000\x0038\x005D\x0002\x005B\x001F\x0066\x0003\x0000\x0006\x0066\x0002\x0000\x0006\x0066\x0002\x0000" + + "\x0006\x0066\x0002\x0000\x0003\x0066\x001C\x0000\x0003\x005B\x0004\x0000"; + + /** + * Translates characters to character classes + */ + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = + "\x0001\x0000\x0013\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + + "\x0001\x0007\x0001\x0008\x0001\x0001\x0004\x0002\x0003\x0003\x0003\x0001\x000D\x0000\x0001\x0002" + + "\x0001\x0000\x0001\x0002\x0008\x0000\x0001\x0003\x000D\x0000\x0001\x0002\x0014\x0000\x0002\x0002" + + "\x0001\x0000\x0004\x0002\x0001\x0000\x0001\x0003\x0001\x0000\x0002\x0003\x0001\x0002\x0001\x0003" + + "\x002B\x0000\x001A\x0002\x0003\x0000\x0005\x0002\x001A\x0000\x0004\x0003\x000F\x0000\x0001\x0009" + + "\x0001\x0000\x0006\x000A\x0003\x0002\x0002\x000A\x0001\x0002\x0004\x000A\x0002\x0002\x0002\x000A" + + "\x0002\x0000\x0001\x0002\x0001\x0000\x0002\x0002\x0006\x000A\x0003\x0000\x0002\x000A\x0001\x0000" + + "\x0004\x000A\x0002\x0000\x0002\x000A\x0001\x0000\x0002\x0003\x0008\x0000\x0001\x000A\x001A\x0000" + + "\x0001\x000A\x0001\x0000\x0003\x000A\x0006\x0002\x0001\x0000\x0001\x0002\x0002\x0000\x0002\x0002" + + "\x0001\x0000\x0001\x000A\x0008\x0000\x0003\x0003\x000D\x0000\x0003\x000A\x0006\x0009\x0003\x0000" + + "\x0002\x0009\x0001\x0000\x0004\x0009\x0002\x0000\x0002\x0009\x0002\x000A\x0001\x0000\x0002\x000A" + + "\x0001\x0000\x0002\x000A\x0001\x0000\x0001\x000A\x0002\x0002\x0003\x0000\x0001\x0002\x0004\x0000" + + "\x0002\x0003\x0010\x0000\x0001\x0009\x0008\x0000\x0001\x000A\x0003\x0000\x0001\x0002\x0020\x0000" + + "\x0003\x000A\x0013\x0000\x0001\x000A\x0020\x0000\x0001\x000A\x0004\x0000\x0001\x000A\x0006\x0000" + + "\x0001\x0002\x0002\x0000\x0001\x000A\x0004\x0000\x0002\x000A\x0023\x0000\x0001\x000A\x002F\x0000" + + "\x0002\x0002\x0008\x0000\x0001\x000A\x002B\x0000\x0001\x000A\x0039\x0000\x0001\x000A\x0067\x0000" + + "\x0001\x000B\x0001\x0000\x0001\x000A\x007D\x0000\x0001\x000A\x0058\x0000\x0006\x000B\x0003\x0000" + + "\x0002\x000B\x0001\x0000\x0004\x000B\x0002\x0000\x0002\x000B\x0001\x000A\x0049\x0000\x0001\x000B" + + "\x0008\x0000\x0001\x000A\x0033\x0000\x0001\x000A\u01ea\x0000"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[1709]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private const string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x00A3\x0000\u0146\x0000\u01e9\x0000\u028c\x0000\u032f\x0000\u03d2\x0000\u0475" + + "\x0000\u0518\x0000\u05bb\x0000\u065e\x0000\u0701\x0000\u07a4\x0000\u0847\x0000\u08ea\x0000\u098d" + + "\x0000\u0a30\x0000\u0ad3\x0000\u0b76\x0000\u0c19\x0000\u0cbc\x0000\u0d5f\x0000\u0e02\x0000\u0ea5" + + "\x0000\u0f48\x0000\u0feb\x0000\u108e\x0000\u1131\x0000\u11d4\x0000\u1277\x0000\u131a\x0000\u13bd" + + "\x0000\u1460\x0000\u1503\x0000\u15a6\x0000\u1649\x0000\u16ec\x0000\u178f\x0000\u1832\x0000\u0146" + + "\x0000\u01e9\x0000\u028c\x0000\u032f\x0000\u03d2\x0000\u18d5\x0000\u1978\x0000\u1a1b\x0000\u1abe" + + "\x0000\u0701\x0000\u1b61\x0000\u1c04\x0000\u1ca7\x0000\u1d4a\x0000\u1ded\x0000\u1e90\x0000\u1f33" + + "\x0000\u0518\x0000\u05bb\x0000\u1fd6\x0000\u2079\x0000\u211c\x0000\u21bf\x0000\u2262\x0000\u2305" + + "\x0000\u23a8\x0000\u244b\x0000\u24ee\x0000\u2591\x0000\u2634\x0000\u26d7\x0000\u277a\x0000\u281d" + + "\x0000\u28c0\x0000\u2963\x0000\u2a06\x0000\u2aa9\x0000\u0ea5\x0000\u2b4c\x0000\u2bef\x0000\u2c92" + + "\x0000\u2d35\x0000\u2dd8\x0000\u2e7b\x0000\u2f1e\x0000\u2fc1\x0000\u3064\x0000\u3107\x0000\u31aa" + + "\x0000\u324d\x0000\u32f0\x0000\u3393\x0000\u3436\x0000\u34d9\x0000\u357c\x0000\u11d4\x0000\u361f" + + "\x0000\u36c2\x0000\u3765\x0000\u3808\x0000\u38ab\x0000\u394e\x0000\u39f1\x0000\u3a94\x0000\u3b37" + + "\x0000\u3bda\x0000\u3c7d\x0000\u3d20\x0000\u3dc3\x0000\u3e66\x0000\u3f09\x0000\u3fac\x0000\u404f" + + "\x0000\u16ec\x0000\u40f2\x0000\u4195\x0000\u1832\x0000\u4238\x0000\u42db\x0000\u437e\x0000\u4421" + + "\x0000\u44c4\x0000\u4567\x0000\u460a\x0000\u46ad\x0000\u4750\x0000\u47f3\x0000\u4896\x0000\u4939" + + "\x0000\u49dc\x0000\u4a7f\x0000\u4b22\x0000\u4bc5\x0000\u4c68\x0000\u4d0b\x0000\u4dae\x0000\u4e51" + + "\x0000\u4ef4\x0000\u4f97\x0000\u503a\x0000\u50dd\x0000\u5180\x0000\u5223\x0000\u52c6\x0000\u5369" + + "\x0000\u540c\x0000\u54af\x0000\u5552\x0000\u55f5\x0000\u5698\x0000\u573b\x0000\u57de\x0000\u5881" + + "\x0000\u5924\x0000\u59c7\x0000\u5a6a\x0000\u5b0d\x0000\u5bb0\x0000\u5c53\x0000\u5cf6\x0000\u5d99" + + "\x0000\u5e3c\x0000\u5edf\x0000\u5f82\x0000\u6025\x0000\u60c8\x0000\u616b\x0000\u620e\x0000\u62b1" + + "\x0000\u6354\x0000\u63f7\x0000\u649a\x0000\u653d\x0000\u65e0\x0000\u6683\x0000\u6726\x0000\u67c9" + + "\x0000\u686c\x0000\u690f\x0000\u69b2\x0000\u6a55\x0000\u6af8\x0000\u6b9b\x0000\u6c3e\x0000\u6ce1" + + "\x0000\u6d84\x0000\u6e27\x0000\u6eca\x0000\u6f6d\x0000\u7010\x0000\u70b3\x0000\u7156\x0000\u71f9" + + "\x0000\u729c\x0000\u733f\x0000\u73e2\x0000\u7485\x0000\u7528\x0000\u75cb\x0000\u766e\x0000\u7711" + + "\x0000\u77b4\x0000\u7857\x0000\u78fa\x0000\u799d\x0000\u7a40\x0000\u7ae3\x0000\u7b86\x0000\u7c29" + + "\x0000\u7ccc\x0000\u7d6f\x0000\u7e12\x0000\u7eb5\x0000\u7f58\x0000\u7ffb\x0000\u809e\x0000\u8141" + + "\x0000\u81e4\x0000\u8287\x0000\u832a\x0000\u83cd\x0000\u8470\x0000\u8513\x0000\u85b6\x0000\u8659" + + "\x0000\u86fc\x0000\u879f\x0000\u8842\x0000\u88e5\x0000\u8988\x0000\u8a2b\x0000\u8ace\x0000\u8b71" + + "\x0000\u8c14\x0000\u8cb7\x0000\x00A3\x0000\u8d5a\x0000\u8dfd\x0000\u8ea0\x0000\u8f43\x0000\u8fe6" + + "\x0000\u9089\x0000\u912c\x0000\u91cf\x0000\u9272\x0000\u9315\x0000\u93b8\x0000\u945b\x0000\u94fe" + + "\x0000\u95a1\x0000\u9644\x0000\u96e7\x0000\u978a\x0000\u982d\x0000\u98d0\x0000\u9973\x0000\u9a16" + + "\x0000\u9ab9\x0000\u9b5c\x0000\u9bff\x0000\u9ca2\x0000\u9d45\x0000\u9de8\x0000\u9e8b\x0000\u9f2e" + + "\x0000\u9fd1\x0000\ua074\x0000\ua117\x0000\ua1ba\x0000\ua25d\x0000\ua300\x0000\ua3a3\x0000\ua446" + + "\x0000\ua4e9\x0000\ua58c\x0000\ua62f\x0000\ua6d2\x0000\ua775\x0000\ua818\x0000\ua8bb\x0000\ua95e" + + "\x0000\uaa01\x0000\uaaa4\x0000\uab47\x0000\uabea\x0000\uac8d\x0000\uad30\x0000\uadd3\x0000\uae76" + + "\x0000\uaf19\x0000\uafbc\x0000\ub05f\x0000\ub102\x0000\ub1a5\x0000\ub248\x0000\ub2eb\x0000\ub38e" + + "\x0000\ub431\x0000\ub4d4\x0000\ub577\x0000\ub61a\x0000\ub6bd\x0000\ub760\x0000\ub803\x0000\ub8a6" + + "\x0000\ub949\x0000\ub9ec\x0000\uba8f\x0000\ubb32\x0000\ubbd5\x0000\ubc78\x0000\ubd1b\x0000\ubdbe" + + "\x0000\ube61\x0000\ubf04\x0000\ubfa7\x0000\uc04a\x0000\uc0ed\x0000\uc190\x0000\uc233\x0000\uc2d6" + + "\x0000\uc379\x0000\uc41c\x0000\uc4bf\x0000\uc562\x0000\uc605\x0000\uc6a8\x0000\uc74b\x0000\uc7ee" + + "\x0000\uc891\x0000\uc934\x0000\uc9d7\x0000\uca7a\x0000\ucb1d\x0000\ucbc0\x0000\ucc63\x0000\ucd06" + + "\x0000\ucda9\x0000\uce4c\x0000\uceef\x0000\ucf92\x0000\ud035\x0000\ud0d8\x0000\ud17b\x0000\ud21e" + + "\x0000\ud2c1\x0000\ud364\x0000\ud407\x0000\ud4aa\x0000\ud54d\x0000\ud5f0\x0000\ud693\x0000\ud736" + + "\x0000\ud7d9\x0000\ud87c\x0000\ud91f\x0000\ud9c2\x0000\uda65\x0000\udb08\x0000\udbab\x0000\udc4e" + + "\x0000\udcf1\x0000\udd94\x0000\ude37\x0000\udeda\x0000\udf7d\x0000\ue020\x0000\ue0c3\x0000\ue166" + + "\x0000\ue209\x0000\ue2ac\x0000\ue34f\x0000\ue3f2\x0000\ue495\x0000\ue538\x0000\ue5db\x0000\ue67e" + + "\x0000\ue721\x0000\ue7c4\x0000\ue867\x0000\ue90a\x0000\ue9ad\x0000\uea50\x0000\ueaf3\x0000\ueb96" + + "\x0000\uec39\x0000\uecdc\x0000\ued7f\x0000\uee22\x0000\ueec5\x0000\uef68\x0000\uf00b\x0000\uf0ae" + + "\x0000\uf151\x0000\uf1f4\x0000\uf297\x0000\uf33a\x0000\uf3dd\x0000\uf480\x0000\uf523\x0000\uf5c6" + + "\x0000\uf669\x0000\uf70c\x0000\uf7af\x0000\uf852\x0000\uf8f5\x0000\uf998\x0000\ufa3b\x0000\ufade" + + "\x0000\ufb81\x0000\ufc24\x0000\ufcc7\x0000\ufd6a\x0000\ufe0d\x0000\ufeb0\x0000\uff53\x0000\ufff6" + + "\x0001\x0099\x0001\u013c\x0001\u01df\x0001\u0282\x0001\u0325\x0001\u03c8\x0001\u046b\x0001\u050e" + + "\x0000\u8c14\x0001\u05b1\x0001\u0654\x0001\u06f7\x0001\u079a\x0001\u083d\x0001\u08e0\x0001\u0983" + + "\x0001\u0a26\x0001\u0ac9\x0001\u0b6c\x0001\u0c0f\x0001\u0cb2\x0001\u0d55\x0001\u0df8\x0001\u0e9b" + + "\x0001\u0f3e\x0001\u0fe1\x0001\u1084\x0001\u1127\x0001\u11ca\x0001\u126d\x0001\u1310\x0001\u13b3" + + "\x0001\u1456\x0001\u14f9\x0001\u159c\x0001\u163f\x0001\u16e2\x0001\u1785\x0001\u1828\x0001\u18cb" + + "\x0001\u196e\x0001\u1a11\x0001\u1ab4\x0001\u1b57\x0001\u1bfa\x0001\u1c9d\x0001\u1d40\x0001\u1de3" + + "\x0001\u1e86\x0001\u1f29\x0001\u1fcc\x0001\u206f\x0001\u2112\x0001\u21b5\x0001\u2258\x0001\u22fb" + + "\x0001\u239e\x0001\u2441\x0001\u24e4\x0001\u2587\x0001\u262a\x0001\u26cd\x0001\u2770\x0001\u2813" + + "\x0001\u28b6\x0001\u2959\x0001\u29fc\x0001\u2a9f\x0001\u2b42\x0001\u2be5\x0001\u2c88\x0001\u2d2b" + + "\x0001\u2dce\x0001\u2e71\x0001\u2f14\x0001\u2fb7\x0001\u305a\x0001\u30fd\x0001\u31a0\x0001\u3243" + + "\x0001\u32e6\x0001\u3389\x0001\u342c\x0001\u34cf\x0001\u3572\x0001\u3615\x0001\u36b8\x0001\u375b" + + "\x0001\u37fe\x0001\u38a1\x0001\u3944\x0001\u39e7\x0001\u3a8a\x0001\u3b2d\x0001\u3bd0\x0001\u3c73" + + "\x0001\u3d16\x0001\u3db9\x0001\u3e5c\x0001\u3eff\x0001\u3fa2\x0001\u4045\x0001\u40e8\x0001\u418b" + + "\x0001\u422e\x0001\u42d1\x0001\u4374\x0001\u4417\x0001\u44ba\x0001\u455d\x0001\u4600\x0001\u46a3" + + "\x0001\u4746\x0001\u47e9\x0001\u488c\x0001\u492f\x0001\u49d2\x0001\u4a75\x0001\u4b18\x0001\u4bbb" + + "\x0001\u4c5e\x0001\u4d01\x0001\u4da4\x0001\u4e47\x0001\u4eea\x0001\u4f8d\x0001\u5030\x0001\u50d3" + + "\x0000\u178f\x0001\u5176\x0001\u5219\x0001\u52bc\x0001\u535f\x0001\u5402\x0001\u54a5\x0001\u5548" + + "\x0001\u55eb\x0001\u568e\x0001\u5731\x0001\u57d4\x0001\u5877\x0001\u591a\x0001\u59bd\x0001\u5a60" + + "\x0001\u5b03\x0001\u5ba6\x0001\u5c49\x0001\u5cec\x0001\u5d8f\x0001\u5e32\x0001\u5ed5\x0001\u5f78" + + "\x0001\u601b\x0001\u60be\x0001\u6161\x0001\u6204\x0001\u62a7\x0001\u634a\x0001\u63ed\x0001\u6490" + + "\x0001\u6533\x0001\u65d6\x0001\u6679\x0001\u671c\x0001\u67bf\x0001\u6862\x0001\u6905\x0001\u69a8" + + "\x0001\u6a4b\x0001\u6aee\x0001\u6b91\x0001\u6c34\x0001\u6cd7\x0001\u6d7a\x0001\u6e1d\x0001\u6ec0" + + "\x0001\u6f63\x0001\u7006\x0001\u70a9\x0001\u714c\x0001\u71ef\x0001\u7292\x0001\u7335\x0001\u73d8" + + "\x0001\u747b\x0001\u751e\x0001\u75c1\x0001\u7664\x0001\u7707\x0001\u77aa\x0001\u784d\x0001\u78f0" + + "\x0001\u7993\x0001\u7a36\x0001\u7ad9\x0001\u7b7c\x0001\u7c1f\x0001\u7cc2\x0001\u7d65\x0001\u7e08" + + "\x0001\u7eab\x0001\u7f4e\x0001\u7ff1\x0001\u8094\x0001\u8137\x0001\u81da\x0001\u827d\x0001\u8320" + + "\x0001\u83c3\x0001\u8466\x0001\u8509\x0001\u85ac\x0001\u864f\x0001\u86f2\x0001\u8795\x0001\u8838" + + "\x0001\u88db\x0001\u897e\x0001\u8a21\x0001\u8ac4\x0001\u8b67\x0001\u8c0a\x0001\u8cad\x0001\u8d50" + + "\x0001\u8df3\x0001\u8e96\x0001\u8f39\x0001\u8fdc\x0001\u907f\x0001\u9122\x0001\u91c5\x0001\u9268" + + "\x0001\u930b\x0001\u93ae\x0001\u9451\x0001\u94f4\x0001\u9597\x0001\u963a\x0001\u96dd\x0001\u9780" + + "\x0001\u9823\x0001\u98c6\x0001\u9969\x0001\u9a0c\x0001\u9aaf\x0001\u9b52\x0001\u9bf5\x0001\u9c98" + + "\x0001\u9d3b\x0001\u9dde\x0001\u9e81\x0001\u9f24\x0001\u9fc7\x0001\ua06a\x0001\ua10d\x0001\ua1b0" + + "\x0001\ua253\x0001\ua2f6\x0001\ua399\x0001\ua43c\x0001\ua4df\x0001\ua582\x0001\ua625\x0001\ua6c8" + + "\x0001\ua76b\x0001\ua80e\x0001\ua8b1\x0001\ua954\x0001\ua9f7\x0001\uaa9a\x0001\uab3d\x0001\uabe0" + + "\x0001\uac83\x0001\uad26\x0001\uadc9\x0001\uae6c\x0001\uaf0f\x0001\uafb2\x0001\ub055\x0001\ub0f8" + + "\x0001\ub19b\x0001\ub23e\x0001\ub2e1\x0001\ub384\x0001\ub427\x0001\ub4ca\x0001\ub56d\x0001\ub610" + + "\x0001\ub6b3\x0001\ub756\x0001\ub7f9\x0001\ub89c\x0001\ub93f\x0001\ub9e2\x0001\uba85\x0001\ubb28" + + "\x0001\ubbcb\x0001\ubc6e\x0001\ubd11\x0001\ubdb4\x0001\ube57\x0001\ubefa\x0001\ubf9d\x0001\uc040" + + "\x0001\uc0e3\x0001\uc186\x0001\uc229\x0001\uc2cc\x0001\uc36f\x0001\uc412\x0001\uc4b5\x0001\uc558" + + "\x0001\uc5fb\x0001\uc69e\x0001\uc741\x0001\uc7e4\x0001\uc887\x0001\uc92a\x0001\uc9cd\x0001\uca70" + + "\x0001\ucb13\x0001\ucbb6\x0001\ucc59\x0001\uccfc\x0001\ucd9f\x0001\uce42\x0001\ucee5\x0001\ucf88" + + "\x0001\ud02b\x0001\ud0ce\x0001\ud171\x0001\ud214\x0001\ud2b7\x0001\ud35a\x0001\ud3fd\x0001\ud4a0" + + "\x0001\ud543\x0001\ud5e6\x0001\ud689\x0001\ud72c\x0001\ud7cf\x0001\ud872\x0001\ud915\x0001\ud9b8" + + "\x0001\uda5b\x0001\udafe\x0001\udba1\x0001\udc44\x0001\udce7\x0001\udd8a\x0001\ude2d\x0001\uded0" + + "\x0001\udf73\x0001\ue016\x0001\ue0b9\x0001\ue15c\x0001\ue1ff\x0001\ue2a2\x0001\ue345\x0001\ue3e8" + + "\x0001\ue48b\x0001\ue52e\x0001\ue5d1\x0001\ue674\x0001\ue717\x0001\ue7ba\x0001\ue85d\x0001\ue900" + + "\x0001\ue9a3\x0001\uea46\x0001\ueae9\x0001\ueb8c\x0001\uec2f\x0001\uecd2\x0001\ued75\x0001\uee18" + + "\x0001\ueebb\x0001\uef5e\x0001\uf001\x0001\uf0a4\x0001\uf147\x0001\uf1ea\x0001\uf28d\x0001\uf330" + + "\x0001\uf3d3\x0001\uf476\x0001\uf519\x0001\uf5bc\x0001\uf65f\x0001\uf702\x0001\uf7a5\x0001\uf848" + + "\x0001\uf8eb\x0001\uf98e\x0001\ufa31\x0001\ufad4\x0001\ufb77\x0001\ufc1a\x0001\ufcbd\x0001\ufd60" + + "\x0001\ufe03\x0001\ufea6\x0001\uff49\x0001\uffec\x0002\x008F\x0002\u0132\x0002\u01d5\x0002\u0278" + + "\x0002\u031b\x0002\u03be\x0002\u0461\x0002\u0504\x0002\u05a7\x0002\u064a\x0002\u06ed\x0002\u0790" + + "\x0002\u0833\x0002\u08d6\x0002\u0979\x0002\u0a1c\x0002\u0abf\x0002\u0b62\x0002\u0c05\x0002\u0ca8" + + "\x0002\u0d4b\x0002\u0dee\x0002\u0e91\x0002\u0f34\x0002\u0fd7\x0002\u107a\x0000\x00A3\x0002\u111d" + + "\x0002\u11c0\x0002\u1263\x0002\u1306\x0002\u13a9\x0002\u144c\x0002\u14ef\x0002\u1592\x0002\u1635" + + "\x0002\u16d8\x0002\u177b\x0002\u181e\x0002\u18c1\x0002\u1964\x0002\u1a07\x0002\u1aaa\x0002\u1b4d" + + "\x0002\u1bf0\x0002\u1c93\x0002\u1d36\x0002\u1dd9\x0002\u1e7c\x0002\u1f1f\x0002\u1fc2\x0002\u2065" + + "\x0002\u2108\x0002\u21ab\x0002\u224e\x0002\u22f1\x0002\u2394\x0002\u2437\x0002\u24da\x0002\u257d" + + "\x0002\u2620\x0002\u26c3\x0002\u2766\x0002\u2809\x0002\u28ac\x0002\u294f\x0002\u29f2\x0002\u2a95" + + "\x0002\u2b38\x0002\u2bdb\x0002\u2c7e\x0002\u2d21\x0002\u2dc4\x0002\u2e67\x0002\u2f0a\x0002\u2fad" + + "\x0002\u3050\x0002\u30f3\x0002\u3196\x0002\u3239\x0002\u32dc\x0002\u337f\x0002\u3422\x0002\u34c5" + + "\x0002\u3568\x0002\u360b\x0002\u36ae\x0002\u3751\x0002\u37f4\x0002\u3897\x0002\u393a\x0002\u39dd" + + "\x0002\u3a80\x0002\u3b23\x0002\u3bc6\x0002\u3c69\x0002\u3d0c\x0002\u3daf\x0002\u3e52\x0002\u3ef5" + + "\x0002\u3f98\x0002\u403b\x0002\u40de\x0002\u4181\x0002\u4224\x0002\u42c7\x0002\u436a\x0002\u440d" + + "\x0002\u44b0\x0002\u4553\x0002\u45f6\x0002\u4699\x0002\u473c\x0002\u47df\x0002\u4882\x0002\u4925" + + "\x0002\u49c8\x0002\u4a6b\x0002\u4b0e\x0002\u4bb1\x0002\u4c54\x0002\u4cf7\x0002\u4d9a\x0002\u4e3d" + + "\x0002\u4ee0\x0002\u4f83\x0002\u5026\x0002\u50c9\x0002\u516c\x0002\u520f\x0002\u52b2\x0002\u5355" + + "\x0002\u53f8\x0002\u549b\x0002\u553e\x0002\u55e1\x0002\u5684\x0002\u5727\x0002\u57ca\x0002\u586d" + + "\x0002\u5910\x0002\u59b3\x0002\u5a56\x0002\u5af9\x0002\u5b9c\x0002\u5c3f\x0002\u5ce2\x0002\u5d85" + + "\x0002\u5e28\x0002\u5ecb\x0002\u5f6e\x0002\u6011\x0002\u60b4\x0002\u6157\x0002\u61fa\x0002\u629d" + + "\x0002\u6340\x0002\u63e3\x0002\u6486\x0002\u6529\x0002\u65cc\x0002\u666f\x0002\u6712\x0002\u67b5" + + "\x0002\u6858\x0002\u68fb\x0002\u699e\x0002\u6a41\x0002\u6ae4\x0002\u6b87\x0002\u6c2a\x0002\u6ccd" + + "\x0002\u6d70\x0002\u6e13\x0002\u6eb6\x0002\u6f59\x0002\u6ffc\x0002\u709f\x0002\u7142\x0002\u71e5" + + "\x0002\u7288\x0002\u732b\x0002\u73ce\x0002\u7471\x0002\u7514\x0002\u75b7\x0002\u765a\x0002\u76fd" + + "\x0002\u77a0\x0002\u7843\x0002\u78e6\x0002\u7989\x0002\u7a2c\x0002\u7acf\x0002\u7b72\x0002\u7c15" + + "\x0002\u7cb8\x0002\u7d5b\x0002\u7dfe\x0002\u7ea1\x0002\u7f44\x0002\u7fe7\x0002\u808a\x0002\u812d" + + "\x0002\u81d0\x0002\u8273\x0002\u8316\x0002\u83b9\x0002\u845c\x0002\u84ff\x0002\u85a2\x0002\u8645" + + "\x0002\u86e8\x0002\u878b\x0002\u882e\x0002\u88d1\x0002\u8974\x0002\u8a17\x0002\u8aba\x0002\u8b5d" + + "\x0002\u8c00\x0002\u8ca3\x0002\u8d46\x0002\u8de9\x0002\u8e8c\x0002\u8f2f\x0002\u8fd2\x0002\u9075" + + "\x0002\u9118\x0002\u91bb\x0002\u925e\x0002\u9301\x0002\u93a4\x0002\u9447\x0002\u94ea\x0002\u958d" + + "\x0002\u9630\x0002\u96d3\x0002\u9776\x0002\u9819\x0002\u98bc\x0002\u995f\x0002\u9a02\x0002\u9aa5" + + "\x0002\u9b48\x0002\u9beb\x0002\u9c8e\x0002\u9d31\x0002\u9dd4\x0002\u9e77\x0002\u9f1a\x0002\u9fbd" + + "\x0002\ua060\x0002\ua103\x0002\ua1a6\x0002\ua249\x0002\ua2ec\x0002\ua38f\x0002\ua432\x0002\ua4d5" + + "\x0002\ua578\x0002\ua61b\x0002\ua6be\x0002\ua761\x0002\ua804\x0002\ua8a7\x0002\ua94a\x0002\ua9ed" + + "\x0002\uaa90\x0002\uab33\x0002\uabd6\x0002\uac79\x0002\uad1c\x0002\uadbf\x0002\uae62\x0002\uaf05" + + "\x0002\uafa8\x0002\ub04b\x0002\ub0ee\x0002\ub191\x0002\ub234\x0002\ub2d7\x0002\ub37a\x0002\ub41d" + + "\x0002\ub4c0\x0002\ub563\x0002\ub606\x0002\ub6a9\x0002\ub74c\x0002\ub7ef\x0002\ub892\x0002\ub935" + + "\x0002\ub9d8\x0002\uba7b\x0002\ubb1e\x0002\ubbc1\x0002\ubc64\x0002\ubd07\x0002\ubdaa\x0002\ube4d" + + "\x0002\ubef0\x0002\ubf93\x0002\uc036\x0002\uc0d9\x0002\uc17c\x0002\uc21f\x0002\uc2c2\x0002\uc365" + + "\x0002\uc408\x0002\uc4ab\x0002\uc54e\x0002\uc5f1\x0002\uc694\x0002\uc737\x0002\uc7da\x0002\uc87d" + + "\x0002\uc920\x0002\uc9c3\x0002\uca66\x0002\ucb09\x0002\ucbac\x0002\ucc4f\x0002\uccf2\x0002\ucd95" + + "\x0002\uce38\x0002\ucedb\x0002\ucf7e\x0002\ud021\x0002\ud0c4\x0002\ud167\x0002\ud20a\x0002\ud2ad" + + "\x0002\ud350\x0002\ud3f3\x0002\ud496\x0002\ud539\x0002\ud5dc\x0002\u0fd7\x0002\ud67f\x0002\ud722" + + "\x0002\ud7c5\x0002\ud868\x0002\ud90b\x0002\ud9ae\x0002\uda51\x0002\udaf4\x0002\udb97\x0002\udc3a" + + "\x0002\udcdd\x0002\udd80\x0002\ude23\x0002\udec6\x0002\udf69\x0002\ue00c\x0002\ue0af\x0002\ue152" + + "\x0002\ue1f5\x0002\ue298\x0002\ue33b\x0002\ue3de\x0002\ue481\x0002\ue524\x0002\ue5c7\x0002\ue66a" + + "\x0002\ue70d\x0002\ue7b0\x0002\ue853\x0002\ue8f6\x0002\ue999\x0002\uea3c\x0002\ueadf\x0002\ueb82" + + "\x0002\uec25\x0002\uecc8\x0002\ued6b\x0002\uee0e\x0002\ueeb1\x0002\uef54\x0002\ueff7\x0002\uf09a" + + "\x0002\uf13d\x0002\uf1e0\x0002\uf283\x0002\uf326\x0002\uf3c9\x0002\uf46c\x0002\uf50f\x0002\uf5b2" + + "\x0002\uf655\x0002\uf6f8\x0002\uf79b\x0002\uf83e\x0002\uf8e1\x0002\uf984\x0002\ufa27\x0002\ufaca" + + "\x0002\ufb6d\x0002\ufc10\x0002\ufcb3\x0002\ufd56\x0002\ufdf9\x0002\ufe9c\x0002\uff3f\x0002\uffe2" + + "\x0003\x0085\x0003\u0128\x0003\u01cb\x0003\u026e\x0003\u0311\x0003\u03b4\x0003\u0457\x0003\u04fa" + + "\x0003\u059d\x0003\u0640\x0003\u06e3\x0003\u0786\x0003\u0829\x0003\u08cc\x0003\u096f\x0003\u0a12" + + "\x0003\u0ab5\x0003\u0b58\x0003\u0bfb\x0003\u0c9e\x0003\u0d41\x0003\u0de4\x0003\u0e87\x0003\u0f2a" + + "\x0003\u0fcd\x0003\u1070\x0003\u1113\x0003\u11b6\x0003\u1259\x0003\u12fc\x0003\u139f\x0003\u1442" + + "\x0003\u14e5\x0003\u1588\x0003\u162b\x0003\u16ce\x0003\u1771\x0003\u1814\x0003\u18b7\x0003\u195a" + + "\x0003\u19fd\x0003\u1aa0\x0003\u1b43\x0003\u1be6\x0003\u1c89\x0003\u1d2c\x0003\u1dcf\x0003\u1e72" + + "\x0003\u1f15\x0003\u1fb8\x0003\u205b\x0003\u20fe\x0003\u21a1\x0003\u2244\x0003\u22e7\x0003\u238a" + + "\x0003\u242d\x0003\u24d0\x0003\u2573\x0003\u2616\x0003\u26b9\x0003\u275c\x0003\u27ff\x0003\u28a2" + + "\x0003\u2945\x0003\u29e8\x0003\u2a8b\x0003\u2b2e\x0003\u2bd1\x0003\u2c74\x0003\u2d17\x0003\u2dba" + + "\x0003\u2e5d\x0003\u2f00\x0003\u2fa3\x0003\u3046\x0003\u30e9\x0003\u318c\x0003\u322f\x0003\u32d2" + + "\x0003\u3375\x0003\u3418\x0003\u34bb\x0003\u355e\x0003\u3601\x0003\u36a4\x0003\u3747\x0003\u37ea" + + "\x0003\u388d\x0003\u3930\x0003\u39d3\x0003\u3a76\x0003\u3b19\x0003\u3bbc\x0003\u3c5f\x0003\u3d02" + + "\x0003\u3da5\x0003\u3e48\x0003\u3eeb\x0003\u3f8e\x0003\u4031\x0003\u40d4\x0003\u4177\x0003\u421a" + + "\x0003\u42bd\x0003\u4360\x0003\u4403\x0003\u44a6\x0003\u4549\x0003\u45ec\x0003\u468f\x0003\u4732" + + "\x0003\u47d5\x0003\u4878\x0003\u491b\x0003\u49be\x0003\u4a61\x0003\u4b04\x0003\u4ba7\x0003\u4c4a" + + "\x0003\u4ced\x0003\u4d90\x0003\u4e33\x0003\u4ed6\x0003\u4f79\x0003\u501c\x0003\u50bf\x0003\u5162" + + "\x0003\u5205\x0003\u52a8\x0003\u534b\x0003\u53ee\x0003\u5491\x0003\u5534\x0003\u55d7\x0003\u567a" + + "\x0003\u571d\x0003\u57c0\x0003\u5863\x0003\u5906\x0003\u59a9\x0003\u5a4c\x0003\u5aef\x0003\u5b92" + + "\x0003\u5c35\x0003\u5cd8\x0003\u5d7b\x0003\u5e1e\x0003\u5ec1\x0003\u5f64\x0003\u6007\x0003\u60aa" + + "\x0003\u614d\x0003\u61f0\x0003\u6293\x0003\u6336\x0003\u63d9\x0003\u647c\x0003\u651f\x0003\u65c2" + + "\x0003\u6665\x0003\u6708\x0003\u67ab\x0003\u684e\x0003\u68f1\x0003\u6994\x0003\u6a37\x0003\u6ada" + + "\x0003\u6b7d\x0003\u6c20\x0003\u6cc3\x0003\u6d66\x0003\u6e09\x0003\u6eac\x0003\u6f4f\x0003\u6ff2" + + "\x0003\u7095\x0003\u7138\x0003\u71db\x0003\u727e\x0003\u7321\x0003\u73c4\x0003\u7467\x0003\u750a" + + "\x0003\u75ad\x0003\u7650\x0003\u76f3\x0003\u7796\x0003\u7839\x0003\u78dc\x0003\u797f\x0003\u7a22" + + "\x0003\u7ac5\x0003\u7b68\x0003\u7c0b\x0003\u7cae\x0003\u7d51\x0003\u7df4\x0003\u7e97\x0003\u7f3a" + + "\x0003\u7fdd\x0003\u8080\x0003\u8123\x0003\u81c6\x0003\u8269\x0003\u830c\x0003\u83af\x0003\u8452" + + "\x0003\u84f5\x0003\u8598\x0003\u863b\x0003\u86de\x0003\u8781\x0003\u8824\x0003\u88c7\x0003\u896a" + + "\x0003\u8a0d\x0003\u8ab0\x0003\u8b53\x0003\u8bf6\x0003\u8c99\x0003\u8d3c\x0003\u8ddf\x0003\u8e82" + + "\x0003\u8f25\x0003\u8fc8\x0003\u906b\x0003\u910e\x0003\u91b1\x0003\u9254\x0003\u92f7\x0003\u939a" + + "\x0003\u943d\x0003\u94e0\x0003\u9583\x0003\u9626\x0003\u96c9\x0003\u976c\x0003\u980f\x0003\u98b2" + + "\x0003\u9955\x0003\u99f8\x0003\u9a9b\x0003\u9b3e\x0003\u9be1\x0003\u9c84\x0003\u9d27\x0003\u9dca" + + "\x0003\u9e6d\x0003\u9f10\x0003\u9fb3\x0003\ua056\x0003\ua0f9\x0003\ua19c\x0003\ua23f\x0003\ua2e2" + + "\x0003\ua385\x0003\ua428\x0003\ua4cb\x0003\ua56e\x0003\ua611\x0003\ua6b4\x0003\ua757\x0003\ua7fa" + + "\x0003\ua89d\x0003\ua940\x0003\ua9e3\x0003\uaa86\x0003\uab29\x0003\uabcc\x0003\uac6f\x0003\uad12" + + "\x0003\uadb5\x0003\uae58\x0003\uaefb\x0003\uaf9e\x0003\ub041\x0003\ub0e4\x0003\ub187\x0003\ub22a" + + "\x0003\ub2cd\x0003\ub370\x0003\ub413\x0003\ub4b6\x0003\ub559\x0003\ub5fc\x0003\ub69f\x0003\ub742" + + "\x0003\ub7e5\x0003\ub888\x0003\ub92b\x0003\ub9ce\x0003\uba71\x0003\ubb14\x0003\ubbb7\x0003\ubc5a" + + "\x0003\ubcfd\x0003\ubda0\x0003\ube43\x0003\ubee6\x0003\ubf89\x0003\uc02c\x0003\uc0cf\x0003\uc172" + + "\x0003\uc215\x0003\uc2b8\x0003\uc35b\x0003\uc3fe\x0003\uc4a1\x0003\uc544\x0003\uc5e7\x0003\uc68a" + + "\x0003\uc72d\x0003\uc7d0\x0003\uc873\x0003\uc916\x0003\uc9b9\x0003\uca5c\x0003\ucaff\x0003\ucba2" + + "\x0003\ucc45\x0003\ucce8\x0003\ucd8b\x0003\uce2e\x0003\uced1\x0003\ucf74\x0003\ud017\x0003\ud0ba" + + "\x0003\ud15d\x0003\ud200\x0003\ud2a3\x0003\ud346\x0003\ud3e9\x0003\ud48c\x0003\ud52f\x0003\ud5d2" + + "\x0003\ud675\x0003\ud718\x0003\ud7bb\x0003\ud85e\x0003\ud901\x0003\ud9a4\x0003\uda47\x0003\udaea" + + "\x0003\udb8d\x0003\udc30\x0003\udcd3\x0003\udd76\x0003\ude19\x0003\udebc\x0003\udf5f\x0003\ue002" + + "\x0003\ue0a5\x0003\ue148\x0003\ue1eb\x0003\ue28e\x0003\ue331\x0003\ue3d4\x0003\ue477\x0003\ue51a" + + "\x0003\ue5bd\x0003\ue660\x0003\ue703\x0003\ue7a6\x0003\ue849\x0003\ue8ec\x0003\ue98f\x0003\uea32" + + "\x0003\uead5\x0003\ueb78\x0003\uec1b\x0003\uecbe\x0003\ued61\x0003\uee04\x0003\ueea7\x0003\uef4a" + + "\x0003\uefed\x0003\uf090\x0003\uf133\x0003\uf1d6\x0003\uf279\x0003\uf31c\x0003\uf3bf\x0003\uf462" + + "\x0003\uf505\x0003\uf5a8\x0003\uf64b\x0003\uf6ee\x0003\uf791\x0003\uf834\x0003\uf8d7\x0003\uf97a" + + "\x0003\ufa1d\x0003\ufac0\x0003\ufb63\x0003\ufc06\x0003\ufca9\x0003\ufd4c\x0003\ufdef\x0003\ufe92" + + "\x0003\uff35\x0003\uffd8\x0004\x007B\x0004\u011e\x0004\u01c1\x0004\u0264\x0004\u0307\x0004\u03aa" + + "\x0004\u044d\x0004\u04f0\x0004\u0593\x0004\u0636\x0004\u06d9\x0004\u077c\x0004\u081f\x0004\u08c2" + + "\x0004\u0965\x0004\u0a08\x0004\u0aab\x0004\u0b4e\x0004\u0bf1\x0004\u0c94\x0004\u0d37\x0004\u0dda" + + "\x0004\u0e7d\x0004\u0f20\x0004\u0fc3\x0004\u1066\x0004\u1109\x0004\u11ac\x0004\u124f\x0004\u12f2" + + "\x0004\u1395\x0004\u1438\x0004\u14db\x0004\u157e\x0004\u1621\x0004\u16c4\x0004\u1767\x0004\u180a" + + "\x0004\u18ad\x0004\u1950\x0004\u19f3\x0004\u1a96\x0004\u1b39\x0004\u1bdc\x0004\u1c7f\x0004\u1d22" + + "\x0004\u1dc5\x0004\u1e68\x0004\u1f0b\x0004\u1fae\x0004\u2051\x0004\u20f4\x0004\u2197\x0004\u223a" + + "\x0004\u22dd\x0004\u2380\x0004\u2423\x0004\u24c6\x0004\u2569\x0004\u260c\x0004\u26af\x0004\u2752" + + "\x0004\u27f5\x0004\u2898\x0004\u293b\x0004\u29de\x0004\u2a81\x0004\u2b24\x0004\u2bc7\x0004\u2c6a" + + "\x0004\u2d0d\x0004\u2db0\x0004\u2e53\x0004\u2ef6\x0004\u2f99\x0004\u303c\x0004\u30df\x0004\u3182" + + "\x0004\u3225\x0004\u32c8\x0004\u336b\x0004\u340e\x0004\u34b1"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[1709]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /** + * The transition table of the DFA + */ + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0001\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + + "\x0001\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0003\x0002\x0001\x0009\x0005\x0002\x0001\x000A" + + "\x0003\x0002\x0001\x000B\x0009\x0002\x0001\x000C\x0002\x0002\x0001\x000D\x0023\x0002\x0001\x000E" + + "\x0001\x0002\x0001\x000F\x0003\x0002\x0001\x0010\x0001\x0011\x0001\x0002\x0001\x0012\x0001\x0002" + + "\x0001\x0013\x0002\x0002\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0017" + + "\x0003\x0002\x0001\x0018\x0002\x0019\x0001\x001A\x0001\x001B\x0001\x001C\x0001\x001D\x0006\x001E" + + "\x0001\x001F\x0003\x001E\x0001\x0020\x000A\x001E\x0001\x0021\x0004\x001E\x0001\x001D\x0001\x0022" + + "\x0002\x0023\x0001\x0022\x0005\x0023\x0001\x0024\x0001\x0002\x0001\x001D\x0001\x0025\x0001\x001D" + + "\x0001\x0002\x0002\x001D\x0001\x0002\x0003\x001D\x0001\x0026\x0002\x0002\x0001\x001D\x0001\x0027" + + "\x0003\x0002\x0002\x001D\x0001\x0002\x00A5\x0000\x0001\x0015\x0009\x0000\x0001\x0015\x0010\x0000" + + "\x0001\x0015\x0012\x0000\x0001\x0015\x0008\x0000\x0003\x0015\x000F\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0050\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0005\x0015\x0001\x0000" + + "\x0003\x0015\x0001\x0000\x0009\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x000E\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0011\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x004B\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x000B\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0015\x000D\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000" + + "\x0004\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000" + + "\x0002\x0015\x0002\x0000\x0003\x0015\x0001\x0000\x0009\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x000E\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x004B\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0003\x0000\x0002\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0003\x0000\x0002\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x0055\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x000C\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0009\x0000" + + "\x0002\x0015\x000A\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x000A\x0000\x0001\x0015\x0050\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0016\x0007\x0000\x0002\x0015\x0002\x0000\x0005\x0015\x0002\x0000" + + "\x0002\x0015\x0004\x0000\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0005\x0015\x0001\x0000" + + "\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000" + + "\x0005\x0015\x0001\x0016\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x004B\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015" + + "\x0004\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0016\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0003\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x000F\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x000D\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0007\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0082\x0000\x0001\x001B\x0011\x0000\x0001\x0017\x0059\x0000\x0001\x001A\x0003\x0000\x0001\x001A" + + "\x0003\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0002\x0000\x0001\x001A" + + "\x0001\x0000\x0003\x001A\x0003\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0002\x001A\x0003\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0003\x0000\x0002\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0005\x001A" + + "\x0002\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A" + + "\x0004\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x004B\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A" + + "\x0001\x0000\x0005\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0009\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x000E\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0001\x001A\x004B\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0003\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0003\x001A\x0001\x0000\x0009\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x000E\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A" + + "\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A" + + "\x004B\x0000\x0001\x001A\x0009\x0000\x0001\x001A\x0010\x0000\x0001\x001A\x001B\x0000\x0001\x001A" + + "\x0011\x0000\x0001\x001A\x0008\x0000\x0001\x001A\x0050\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A" + + "\x0001\x0000\x0005\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0006\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0002\x001A\x0001\x0000\x0008\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0002\x001A" + + "\x0001\x0000\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x00A2\x0000\x0001\x001B" + + "\x004A\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0036\x001A\x0015" + + "\x0001\x0000\x000A\x0035\x0001\x0036\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0036\x0010\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000" + + "\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000" + + "\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x003F\x001A\x0015\x0001\x0000\x000A\x0016\x0002\x0000" + + "\x0001\x0040\x0002\x0000\x0002\x003F\x0006\x0000\x0001\x003F\x0013\x0000\x0001\x0041\x000D\x0000" + + "\x0001\x0042\x000C\x0000\x0001\x0043\x000E\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0011\x0000" + + "\x0001\x0046\x0010\x0000\x0001\x0017\x0001\x0000\x0001\x0017\x0003\x0000\x0001\x0037\x0001\x0000" + + "\x0001\x0017\x002B\x0000\x0001\x0037\x0014\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0047\x0003\x0000" + + "\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x0048\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0049\x000E\x0000\x0001\x004A\x0002\x0000\x0001\x004B\x0011\x0000\x0001\x004C\x000F\x0000" + + "\x0001\x0015\x0001\x004D\x0001\x0016\x0001\x004E\x0003\x0000\x0001\x004D\x0001\x0000\x0001\x004D" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0001\x0000\x000A\x0016\x0002\x0000\x0001\x004D" + + "\x0075\x0000\x0002\x0019\x004A\x0000\x0001\x004F\x000D\x0000\x0001\x0050\x000C\x0000\x0001\x0051" + + "\x000E\x0000\x0001\x0052\x0002\x0000\x0001\x0053\x0022\x0000\x0001\x001A\x0007\x0000\x0001\x001A" + + "\x004A\x0000\x0001\x0054\x000D\x0000\x0001\x0055\x000C\x0000\x0001\x0056\x000E\x0000\x0001\x0057" + + "\x0002\x0000\x0001\x0058\x0022\x0000\x0001\x001B\x0007\x0000\x0001\x001B\x0040\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x0059\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x005A" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x005B\x000E\x0000\x0001\x005C\x0002\x0000\x0001\x005D" + + "\x0021\x0000\x0001\x0015\x0001\x001C\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x001C\x0002\x0000\x0001\x001C\x0001\x0036\x001A\x0015\x0001\x0000" + + "\x000A\x0035\x0001\x0036\x0001\x0000\x0001\x0037\x0003\x0000\x0001\x0036\x0076\x0000\x0001\x005E" + + "\x0025\x005F\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000" + + "\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0061\x001A\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064" + + "\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0061\x0008\x001E\x0001\x0066\x0006\x001E\x0001\x0067\x000A\x001E\x0001\x0062\x000A\x0063" + + "\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0001\x0068\x0019\x001E\x0001\x0062\x000A\x0063" + + "\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x000F\x001E\x0001\x0069\x000A\x001E\x0001\x0062" + + "\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E" + + "\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0015\x0001\x006A\x001A\x001E\x0001\x0062\x000A\x0023\x0001\x0000\x0001\x005F" + + "\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000" + + "\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016" + + "\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x006A" + + "\x001A\x001E\x0001\x0062\x000A\x006D\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000" + + "\x0002\x006C\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A" + + "\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D" + + "\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x006A\x001A\x001E\x0001\x0062\x0001\x0023" + + "\x0001\x006E\x0001\x006D\x0002\x0023\x0002\x006D\x0001\x0023\x0001\x006D\x0001\x0023\x0001\x0000" + + "\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0003\x005F\x0002\x0000" + + "\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0047" + + "\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x0048\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0049\x000E\x0000\x0001\x004A\x0002\x0000\x0001\x004B\x0011\x0000\x0001\x004C" + + "\x000F\x0000\x0001\x0015\x0001\x004D\x0001\x0016\x0001\x004E\x0003\x0000\x0001\x004D\x0001\x0000" + + "\x0001\x004D\x0002\x0000\x0001\x0015\x0001\x005E\x001A\x006F\x0001\x005F\x000A\x0070\x0001\x0000" + + "\x0001\x005F\x0001\x0071\x0001\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x0004\x0072\x0002\x0000\x0001\x0072\x000D\x0000" + + "\x0001\x0072\x0006\x0000\x000A\x0072\x0001\x0073\x007C\x0000\x0035\x0074\x0001\x0075\x0001\x0074" + + "\x0001\x0076\x0001\x0000\x0002\x0074\x0003\x0000\x0001\x0015\x0009\x0000\x0003\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0004\x0000\x0005\x0015\x0008\x0000\x0001\x0035\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0001\x0000\x0001\x0035\x0007\x0000" + + "\x0002\x0015\x0002\x0000\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000\x0006\x0015\x0001\x0000" + + "\x0002\x0015\x0004\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000\x0005\x0015\x0001\x0035\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x004B\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015\x0004\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0035\x0001\x0000\x0001\x0015" + + "\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015" + + "\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0005\x0000\x0001\x0015" + + "\x0002\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x007F\x0000\x0002\x0015\x0006\x0000\x0001\x0015\x006A\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0007\x0000\x0001\x0015" + + "\x0004\x0000\x0002\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0004\x0015\x0002\x0000\x0001\x0015\x005D\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0077" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0078\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0079\x000E\x0000\x0001\x007A\x0002\x0000\x0001\x007B\x0021\x0000\x0001\x0015" + + "\x0002\x0035\x0002\x0000\x0002\x007C\x0001\x0037\x0001\x0000\x0001\x0035\x0002\x0000\x0001\x0015" + + "\x0001\x007C\x001A\x0015\x0001\x0000\x000A\x0035\x0002\x0000\x0001\x0037\x0002\x0000\x0002\x007C" + + "\x0006\x0000\x0001\x007C\x0009\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000\x0001\x007E" + + "\x0005\x0000\x0001\x007F\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0081" + + "\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036\x0007\x0000" + + "\x0001\x0036\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0022\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x0084\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0085\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0086\x000E\x0000\x0001\x0087\x0002\x0000\x0001\x0088\x0011\x0000" + + "\x0001\x004C\x000F\x0000\x0001\x0015\x0001\x0037\x0001\x0035\x0001\x004E\x0003\x0000\x0001\x0037" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0001\x0000\x000A\x0035" + + "\x0002\x0000\x0001\x0037\x0015\x0000\x0001\x0016\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0016" + + "\x0001\x0000\x0002\x0016\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0016" + + "\x0004\x0000\x0001\x0016\x0002\x0015\x0002\x0016\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x0016\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0016" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0002\x0016\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0016\x0004\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0016\x0006\x0000\x0001\x0016" + + "\x006A\x0000\x0001\x0016\x0003\x0000\x0001\x0016\x0002\x0000\x0001\x0016\x0003\x0000\x0001\x0016" + + "\x0005\x0000\x0001\x0016\x0007\x0000\x0001\x0016\x0004\x0000\x0002\x0016\x0003\x0000\x0002\x0016" + + "\x0001\x0000\x0001\x0016\x0004\x0000\x0001\x0016\x0001\x0000\x0001\x0016\x0002\x0000\x0002\x0016" + + "\x0001\x0000\x0003\x0016\x0001\x0000\x0001\x0016\x0002\x0000\x0004\x0016\x0002\x0000\x0001\x0016" + + "\x0067\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x0005\x0000\x0001\x008B\x0003\x0000\x0001\x008C" + + "\x000C\x0000\x0001\x008D\x000E\x0000\x0001\x008E\x0002\x0000\x0001\x008F\x0022\x0000\x0001\x003F" + + "\x0001\x0016\x0006\x0000\x0001\x003F\x001F\x0000\x000A\x0016\x0017\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x0090\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x0091\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0092\x000E\x0000\x0001\x0093\x0002\x0000\x0001\x0094\x0011\x0000" + + "\x0001\x004C\x000F\x0000\x0001\x0015\x0001\x0040\x0001\x0016\x0001\x004E\x0003\x0000\x0001\x0040" + + "\x0001\x0000\x0001\x0040\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0001\x0000\x000A\x0016" + + "\x0002\x0000\x0001\x0040\x0015\x0000\x0001\x0017\x001F\x0000\x0001\x0017\x0001\x0000\x0002\x0017" + + "\x000E\x0000\x0001\x0017\x0004\x0000\x0001\x0017\x0002\x0000\x0002\x0017\x000D\x0000\x0001\x0017" + + "\x0096\x0000\x0001\x0017\x00A7\x0000\x0002\x0017\x0009\x0000\x0001\x0017\x0089\x0000\x0002\x0017" + + "\x0006\x0000\x0001\x0017\x006A\x0000\x0001\x0017\x0003\x0000\x0001\x0017\x0002\x0000\x0001\x0017" + + "\x0003\x0000\x0001\x0017\x0005\x0000\x0001\x0017\x0007\x0000\x0001\x0017\x0004\x0000\x0002\x0017" + + "\x0003\x0000\x0002\x0017\x0001\x0000\x0001\x0017\x0004\x0000\x0001\x0017\x0001\x0000\x0001\x0017" + + "\x0002\x0000\x0002\x0017\x0001\x0000\x0003\x0017\x0001\x0000\x0001\x0017\x0002\x0000\x0004\x0017" + + "\x0002\x0000\x0001\x0017\x00A7\x0000\x0001\x0017\x0059\x0000\x0001\x004D\x0009\x0000\x0003\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x004D\x0001\x0000\x0002\x004D\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x004D\x0004\x0000\x0001\x004D\x0002\x0015\x0002\x004D\x0008\x0000\x0001\x0016" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x004D\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x004D\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x004D\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x004D" + + "\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x004D" + + "\x0006\x0000\x0001\x004D\x006A\x0000\x0001\x004D\x0003\x0000\x0001\x004D\x0002\x0000\x0001\x004D" + + "\x0003\x0000\x0001\x004D\x0005\x0000\x0001\x004D\x0007\x0000\x0001\x004D\x0004\x0000\x0002\x004D" + + "\x0003\x0000\x0002\x004D\x0001\x0000\x0001\x004D\x0004\x0000\x0001\x004D\x0001\x0000\x0001\x004D" + + "\x0002\x0000\x0002\x004D\x0001\x0000\x0003\x004D\x0001\x0000\x0001\x004D\x0002\x0000\x0004\x004D" + + "\x0002\x0000\x0001\x004D\x00A7\x0000\x0001\x004E\x0062\x0000\x0001\x0095\x000D\x0000\x0001\x0096" + + "\x000C\x0000\x0001\x0097\x000E\x0000\x0001\x0098\x0002\x0000\x0001\x0099\x0011\x0000\x0001\x004C" + + "\x0010\x0000\x0001\x004E\x0001\x0000\x0001\x004E\x0003\x0000\x0001\x0037\x0001\x0000\x0001\x004E" + + "\x002B\x0000\x0001\x0037\x0015\x0000\x0001\x001A\x001F\x0000\x0001\x001A\x0001\x0000\x0002\x001A" + + "\x000E\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x0002\x0000\x0002\x001A\x000D\x0000\x0001\x001A" + + "\x0096\x0000\x0001\x001A\x00A7\x0000\x0002\x001A\x0009\x0000\x0001\x001A\x0089\x0000\x0002\x001A" + + "\x0006\x0000\x0001\x001A\x006A\x0000\x0001\x001A\x0003\x0000\x0001\x001A\x0002\x0000\x0001\x001A" + + "\x0003\x0000\x0001\x001A\x0005\x0000\x0001\x001A\x0007\x0000\x0001\x001A\x0004\x0000\x0002\x001A" + + "\x0003\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x0001\x0000\x0001\x001A" + + "\x0002\x0000\x0002\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0001\x001A\x0002\x0000\x0004\x001A" + + "\x0002\x0000\x0001\x001A\x005E\x0000\x0001\x001B\x001F\x0000\x0001\x001B\x0001\x0000\x0002\x001B" + + "\x000E\x0000\x0001\x001B\x0004\x0000\x0001\x001B\x0002\x0000\x0002\x001B\x000D\x0000\x0001\x001B" + + "\x0096\x0000\x0001\x001B\x00A7\x0000\x0002\x001B\x0009\x0000\x0001\x001B\x0089\x0000\x0002\x001B" + + "\x0006\x0000\x0001\x001B\x006A\x0000\x0001\x001B\x0003\x0000\x0001\x001B\x0002\x0000\x0001\x001B" + + "\x0003\x0000\x0001\x001B\x0005\x0000\x0001\x001B\x0007\x0000\x0001\x001B\x0004\x0000\x0002\x001B" + + "\x0003\x0000\x0002\x001B\x0001\x0000\x0001\x001B\x0004\x0000\x0001\x001B\x0001\x0000\x0001\x001B" + + "\x0002\x0000\x0002\x001B\x0001\x0000\x0003\x001B\x0001\x0000\x0001\x001B\x0002\x0000\x0004\x001B" + + "\x0002\x0000\x0001\x001B\x005E\x0000\x0001\x001C\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x001C" + + "\x0001\x0000\x0002\x001C\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x001C" + + "\x0004\x0000\x0001\x001C\x0002\x0015\x0002\x001C\x0008\x0000\x0001\x0035\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x001C\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x001C" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0002\x001C\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x001C\x0004\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x001C\x0006\x0000\x0001\x001C" + + "\x006A\x0000\x0001\x001C\x0003\x0000\x0001\x001C\x0002\x0000\x0001\x001C\x0003\x0000\x0001\x001C" + + "\x0005\x0000\x0001\x001C\x0007\x0000\x0001\x001C\x0004\x0000\x0002\x001C\x0003\x0000\x0002\x001C" + + "\x0001\x0000\x0001\x001C\x0004\x0000\x0001\x001C\x0001\x0000\x0001\x001C\x0002\x0000\x0002\x001C" + + "\x0001\x0000\x0003\x001C\x0001\x0000\x0001\x001C\x0002\x0000\x0004\x001C\x0002\x0000\x0001\x001C" + + "\x00C3\x0000\x0001\x005E\x0025\x005F\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0001\x0074\x0003\x0000\x0002\x005F\x0069\x0000\x001A\x009A" + + "\x0001\x0000\x000A\x009A\x000B\x0000\x0001\x009B\x000B\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D" + + "\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015" + + "\x0001\x0036\x0007\x0000\x0001\x0036\x0002\x0000\x0001\x0015\x0001\x005E\x0001\x009C\x0001\x009D" + + "\x0001\x009E\x0001\x009F\x0001\x00A0\x0001\x00A1\x0001\x00A2\x0001\x00A3\x0001\x00A4\x0001\x00A5" + + "\x0001\x00A6\x0001\x00A7\x0001\x00A8\x0001\x00A9\x0001\x00AA\x0001\x00AB\x0001\x00AC\x0001\x00AD" + + "\x0001\x00AE\x0001\x00AF\x0001\x00B0\x0001\x00B1\x0001\x00B2\x0001\x00B3\x0001\x00B4\x0001\x00B5" + + "\x0001\x005F\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0001\x0074\x0003\x0000\x0002\x005F\x0068\x0000\x0001\x005E\x001A\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0077" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0078\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0079\x000E\x0000\x0001\x007A\x0002\x0000\x0001\x007B\x0021\x0000\x0001\x0015" + + "\x0002\x0035\x0002\x0000\x0002\x007C\x0001\x0037\x0001\x0000\x0001\x0035\x0002\x0000\x0001\x0015" + + "\x0001\x00B7\x001A\x001E\x0001\x0062\x000A\x0063\x0001\x0000\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0002\x00B8\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x007C\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0084\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0085\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0086\x000E\x0000" + + "\x0001\x0087\x0002\x0000\x0001\x0088\x0011\x0000\x0001\x004C\x000F\x0000\x0001\x0015\x0001\x0037" + + "\x0001\x0035\x0001\x004E\x0003\x0000\x0001\x0037\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0015" + + "\x0001\x005E\x001A\x006F\x0001\x005F\x000A\x00B9\x0001\x0000\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F" + + "\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0081\x000E\x0000\x0001\x0082" + + "\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036\x0007\x0000\x0001\x0036\x0002\x0000" + + "\x0001\x0015\x0001\x005E\x001A\x006F\x000B\x005F\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0009\x001E\x0001\x00BA\x0010\x001E" + + "\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F" + + "\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x000D\x001E\x0001\x00BB" + + "\x000C\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000" + + "\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0008\x001E" + + "\x0001\x00BC\x0011\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x000F\x001E\x0001\x00BD\x000A\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064" + + "\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x000C\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x0005\x0000\x0001\x008B" + + "\x0003\x0000\x0001\x008C\x000C\x0000\x0001\x008D\x000E\x0000\x0001\x008E\x0002\x0000\x0001\x008F" + + "\x0022\x0000\x0001\x003F\x0001\x0016\x0006\x0000\x0001\x003F\x0003\x0000\x0001\x005E\x0001\x00BE" + + "\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6" + + "\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE" + + "\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3\x0001\x00D4\x0001\x00D5\x0001\x00D6" + + "\x0001\x00D7\x0001\x005F\x0001\x00D8\x0002\x00D9\x0001\x00D8\x0005\x00D9\x0001\x00DA\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0001\x0074" + + "\x0003\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0090\x0003\x0000\x0001\x0039" + + "\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x0091\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0092" + + "\x000E\x0000\x0001\x0093\x0002\x0000\x0001\x0094\x0011\x0000\x0001\x004C\x000F\x0000\x0001\x0015" + + "\x0001\x0040\x0001\x0016\x0001\x004E\x0003\x0000\x0001\x0040\x0001\x0000\x0001\x0040\x0002\x0000" + + "\x0001\x0015\x0001\x005E\x001A\x006F\x0001\x005F\x000A\x0070\x0001\x0000\x0001\x005F\x0001\x006B" + + "\x0001\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x000C\x0000\x0001\x0089\x0003\x0000\x0001\x008A\x0005\x0000\x0001\x008B\x0003\x0000" + + "\x0001\x008C\x000C\x0000\x0001\x008D\x000E\x0000\x0001\x008E\x0002\x0000\x0001\x008F\x0022\x0000" + + "\x0001\x003F\x0001\x0016\x0006\x0000\x0001\x003F\x0003\x0000\x0001\x005E\x001B\x005F\x000A\x0070" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039" + + "\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C" + + "\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x006A\x001A\x001E" + + "\x0001\x0062\x000A\x00DB\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C" + + "\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000" + + "\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000" + + "\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x006A\x001A\x001E\x0001\x0062\x0002\x006D\x0001\x00DB" + + "\x0002\x006D\x0002\x00DB\x0001\x006D\x0001\x00DB\x0001\x006D\x0001\x0000\x0001\x005F\x0001\x006B" + + "\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x00DC\x001A\x006F\x0001\x005F\x000A\x00B9\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000" + + "\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000" + + "\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F" + + "\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\x00DD\x001A\x006F\x0001\x005F" + + "\x000A\x0070\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060" + + "\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x0004\x00DE" + + "\x0002\x0000\x0001\x00DE\x000D\x0000\x0001\x00DE\x0006\x0000\x000A\x00DE\x0001\x00DF\x00A2\x0000" + + "\x0001\x00E0\x007C\x0000\x0001\x00E1\x002C\x0000\x0001\x0060\x0075\x0000\x003C\x0074\x0002\x0000" + + "\x0001\x0035\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0035\x0001\x0000\x0002\x0035\x0004\x0000" + + "\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0035\x0004\x0000\x0001\x0035\x0002\x0015" + + "\x0002\x0035\x0008\x0000\x0001\x0035\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0035\x0008\x0000" + + "\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0035\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0035\x0005\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0035\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x007F\x0000\x0002\x0035\x0006\x0000\x0001\x0035\x006A\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0035\x0002\x0000\x0001\x0035\x0003\x0000\x0001\x0035\x0005\x0000\x0001\x0035\x0007\x0000" + + "\x0001\x0035\x0004\x0000\x0002\x0035\x0003\x0000\x0002\x0035\x0001\x0000\x0001\x0035\x0004\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0002\x0000\x0002\x0035\x0001\x0000\x0003\x0035\x0001\x0000" + + "\x0001\x0035\x0002\x0000\x0004\x0035\x0002\x0000\x0001\x0035\x0067\x0000\x0001\x00E2\x0003\x0000" + + "\x0001\x00E3\x0005\x0000\x0001\x00E4\x0003\x0000\x0001\x00E5\x000C\x0000\x0001\x00E6\x000E\x0000" + + "\x0001\x00E7\x0002\x0000\x0001\x00E8\x0022\x0000\x0001\x007C\x0001\x0035\x0006\x0000\x0001\x007C" + + "\x001F\x0000\x000A\x0035\x0018\x0000\x0001\x0036\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0002\x0036\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0036" + + "\x0004\x0000\x0001\x0036\x0002\x0015\x0002\x0036\x000A\x0000\x0002\x0015\x0001\x0000\x0001\x0036" + + "\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x0002\x0000\x0005\x0015" + + "\x0002\x0000\x0002\x0015\x0004\x0000\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0005\x0015" + + "\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0004\x0015" + + "\x0001\x0000\x0005\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x004B\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015" + + "\x0004\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0002\x0036\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0036\x0004\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0036\x0006\x0000\x0001\x0036" + + "\x006A\x0000\x0001\x0036\x0003\x0000\x0001\x0036\x0002\x0000\x0001\x0036\x0003\x0000\x0001\x0036" + + "\x0005\x0000\x0001\x0036\x0007\x0000\x0001\x0036\x0004\x0000\x0002\x0036\x0003\x0000\x0002\x0036" + + "\x0001\x0000\x0001\x0036\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0002\x0000\x0002\x0036" + + "\x0001\x0000\x0003\x0036\x0001\x0000\x0001\x0036\x0002\x0000\x0004\x0036\x0002\x0000\x0001\x0036" + + "\x005E\x0000\x0001\x0037\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0037\x0001\x0000\x0002\x0037" + + "\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0037\x0004\x0000\x0001\x0037" + + "\x0002\x0015\x0002\x0037\x0008\x0000\x0001\x0035\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0037" + + "\x0008\x0000\x0001\x0015\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015" + + "\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0037\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x004D\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0037\x0005\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0037\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x007F\x0000\x0002\x0037\x0006\x0000\x0001\x0037\x006A\x0000\x0001\x0037" + + "\x0003\x0000\x0001\x0037\x0002\x0000\x0001\x0037\x0003\x0000\x0001\x0037\x0005\x0000\x0001\x0037" + + "\x0007\x0000\x0001\x0037\x0004\x0000\x0002\x0037\x0003\x0000\x0002\x0037\x0001\x0000\x0001\x0037" + + "\x0004\x0000\x0001\x0037\x0001\x0000\x0001\x0037\x0002\x0000\x0002\x0037\x0001\x0000\x0003\x0037" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0004\x0037\x0002\x0000\x0001\x0037\x005E\x0000\x0001\x003F" + + "\x001F\x0000\x0001\x003F\x0001\x0000\x0002\x003F\x000E\x0000\x0001\x003F\x0004\x0000\x0001\x003F" + + "\x0002\x0000\x0002\x003F\x0008\x0000\x0001\x0016\x0004\x0000\x0001\x003F\x005B\x0000\x0001\x0016" + + "\x0042\x0000\x0001\x0016\x00A3\x0000\x0002\x0016\x0098\x0000\x0001\x003F\x00A7\x0000\x0002\x003F" + + "\x0009\x0000\x0001\x003F\x0089\x0000\x0002\x003F\x0006\x0000\x0001\x003F\x006A\x0000\x0001\x003F" + + "\x0003\x0000\x0001\x003F\x0002\x0000\x0001\x003F\x0003\x0000\x0001\x003F\x0005\x0000\x0001\x003F" + + "\x0007\x0000\x0001\x003F\x0004\x0000\x0002\x003F\x0003\x0000\x0002\x003F\x0001\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x003F\x0001\x0000\x0001\x003F\x0002\x0000\x0002\x003F\x0001\x0000\x0003\x003F" + + "\x0001\x0000\x0001\x003F\x0002\x0000\x0004\x003F\x0002\x0000\x0001\x003F\x005E\x0000\x0001\x0040" + + "\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0040\x0001\x0000\x0002\x0040\x0004\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0040\x0004\x0000\x0001\x0040\x0002\x0015\x0002\x0040" + + "\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0040\x0008\x0000\x0001\x0015" + + "\x0050\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0040\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x004D\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0040\x0005\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0040\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x007F\x0000\x0002\x0040\x0006\x0000\x0001\x0040\x006A\x0000\x0001\x0040\x0003\x0000\x0001\x0040" + + "\x0002\x0000\x0001\x0040\x0003\x0000\x0001\x0040\x0005\x0000\x0001\x0040\x0007\x0000\x0001\x0040" + + "\x0004\x0000\x0002\x0040\x0003\x0000\x0002\x0040\x0001\x0000\x0001\x0040\x0004\x0000\x0001\x0040" + + "\x0001\x0000\x0001\x0040\x0002\x0000\x0002\x0040\x0001\x0000\x0003\x0040\x0001\x0000\x0001\x0040" + + "\x0002\x0000\x0004\x0040\x0002\x0000\x0001\x0040\x005E\x0000\x0001\x004E\x001F\x0000\x0001\x004E" + + "\x0001\x0000\x0002\x004E\x000E\x0000\x0001\x004E\x0004\x0000\x0001\x004E\x0002\x0000\x0002\x004E" + + "\x000D\x0000\x0001\x004E\x0096\x0000\x0001\x004E\x00A7\x0000\x0002\x004E\x0009\x0000\x0001\x004E" + + "\x0089\x0000\x0002\x004E\x0006\x0000\x0001\x004E\x006A\x0000\x0001\x004E\x0003\x0000\x0001\x004E" + + "\x0002\x0000\x0001\x004E\x0003\x0000\x0001\x004E\x0005\x0000\x0001\x004E\x0007\x0000\x0001\x004E" + + "\x0004\x0000\x0002\x004E\x0003\x0000\x0002\x004E\x0001\x0000\x0001\x004E\x0004\x0000\x0001\x004E" + + "\x0001\x0000\x0001\x004E\x0002\x0000\x0002\x004E\x0001\x0000\x0003\x004E\x0001\x0000\x0001\x004E" + + "\x0002\x0000\x0004\x004E\x0002\x0000\x0001\x004E\x00C3\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0031\x009B\x0001\x0000\x0001\x00EB\x0004\x009B\x0001\x00EC\x0001\x0000" + + "\x0003\x009B\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x0001\x001E\x0002\x00ED\x0001\x00EE\x0001\x00EF\x0008\x00ED\x0001\x001E\x0001\x00F0\x0005\x00ED" + + "\x0006\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000" + + "\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0001\x00F1" + + "\x0002\x00ED\x0001\x001E\x0001\x00ED\x0001\x00F2\x0006\x00ED\x0004\x001E\x0004\x00ED\x0001\x001E" + + "\x0001\x00ED\x0001\x001E\x0003\x00ED\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064" + + "\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0061\x0003\x001E\x0001\x00ED\x0001\x001E\x0001\x00ED\x0004\x001E\x0001\x00ED\x0008\x001E" + + "\x0001\x00ED\x0002\x001E\x0001\x00ED\x0002\x001E\x0001\x00ED\x0001\x0062\x000A\x0063\x0001\x0036" + + "\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015" + + "\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0061\x0001\x001E\x0001\x00ED\x0001\x00F3\x0002\x00ED\x0002\x001E" + + "\x0001\x00ED\x0006\x001E\x0003\x00ED\x0009\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F" + + "\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000" + + "\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0061\x0003\x001E\x0001\x00ED\x0001\x001E\x0001\x00ED\x0008\x001E\x0001\x00ED" + + "\x0001\x001E\x0002\x00ED\x0008\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064" + + "\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0061\x0004\x001E\x0001\x00F4\x0005\x001E\x0001\x00ED\x000F\x001E\x0001\x0062\x000A\x0063" + + "\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0004\x001E\x0002\x00ED\x0002\x001E\x0001\x00ED" + + "\x0001\x001E\x0001\x00ED\x000B\x001E\x0001\x00ED\x0002\x001E\x0001\x00ED\x0001\x0062\x000A\x0063" + + "\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0001\x00ED\x0001\x001E\x0003\x00ED\x0001\x00F5" + + "\x000C\x00ED\x0002\x001E\x0002\x00ED\x0002\x001E\x0001\x00ED\x0001\x001E\x0001\x0062\x000A\x0063" + + "\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0002\x001E\x0004\x00ED\x0003\x001E\x0002\x00ED" + + "\x0001\x00F6\x0001\x00ED\x0001\x001E\x0002\x00ED\x000A\x001E\x0001\x0062\x000A\x0063\x0001\x0036" + + "\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015" + + "\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0061\x0002\x00ED\x0002\x001E\x0001\x00ED\x0003\x001E\x0001\x00ED" + + "\x0005\x001E\x0003\x00ED\x0003\x001E\x0001\x00ED\x0002\x001E\x0003\x00ED\x0001\x0062\x000A\x0063" + + "\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0005\x00ED\x0001\x00F7\x0001\x001E\x0001\x00ED" + + "\x0001\x00F8\x0007\x00ED\x0001\x00F9\x0003\x00ED\x0001\x001E\x0001\x00ED\x0001\x001E\x0003\x00ED" + + "\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F" + + "\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0001\x00FA\x0001\x00ED" + + "\x0001\x001E\x0001\x00F1\x0006\x00ED\x0003\x001E\x0001\x00ED\x0002\x001E\x0001\x00ED\x0002\x001E" + + "\x0001\x00ED\x0006\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x0001\x00ED\x0019\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x0001\x00ED\x0002\x001E\x0001\x00ED\x0001\x00FB\x0001\x001E\x0002\x00ED\x0001\x001E\x0003\x00ED" + + "\x0002\x001E\x0002\x00ED\x0001\x001E\x0001\x00ED\x0003\x001E\x0001\x00ED\x0002\x001E\x0002\x00ED" + + "\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F" + + "\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0006\x00ED\x0001\x001E" + + "\x0005\x00ED\x0003\x001E\x0002\x00ED\x0001\x001E\x0008\x00ED\x0001\x0062\x000A\x0063\x0001\x0036" + + "\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015" + + "\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0061\x0001\x001E\x0002\x00ED\x0001\x00F8\x0001\x00FC\x0003\x00ED" + + "\x0001\x001E\x0003\x00ED\x0001\x001E\x0001\x00ED\x0001\x001E\x0001\x00ED\x0001\x001E\x0001\x00ED" + + "\x0001\x001E\x0001\x00ED\x0001\x001E\x0003\x00ED\x0001\x001E\x0001\x00ED\x0001\x0062\x000A\x0063" + + "\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0001\x00ED\x0006\x001E\x0001\x00ED\x0006\x001E" + + "\x0001\x00ED\x0004\x001E\x0001\x00ED\x0004\x001E\x0002\x00ED\x0001\x0062\x000A\x0063\x0001\x0036" + + "\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015" + + "\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0061\x0006\x001E\x0001\x00ED\x0007\x001E\x0001\x00ED\x000B\x001E" + + "\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F" + + "\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x000B\x001E\x0001\x00FD" + + "\x0006\x001E\x0001\x00FE\x0007\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064" + + "\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0061\x0001\x00ED\x0009\x001E\x0001\x00ED\x0006\x001E\x0001\x00ED\x0008\x001E\x0001\x0062" + + "\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0001\x00ED\x0001\x001E\x0006\x00ED" + + "\x0001\x00FF\x0001\x001E\x0002\x00ED\x0002\x001E\x0002\x00ED\x0001\x001E\x0001\x00ED\x0001\x001E" + + "\x0006\x00ED\x0001\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x0004\x001E\x0001\x00ED\x0005\x001E\x0002\x00ED\x0003\x001E\x0002\x00ED\x0008\x001E\x0001\x00ED" + + "\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F" + + "\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0003\x001E\x0001\x00ED" + + "\x0001\x001E\x0001\u0100\x0004\x001E\x0001\x00ED\x0002\x001E\x0001\x00ED\x000C\x001E\x0001\x0062" + + "\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0002\x00ED\x0001\x001E\x0001\x00ED" + + "\x0003\x001E\x0002\x00ED\x0002\x001E\x0001\x00ED\x0004\x001E\x0001\x00ED\x0009\x001E\x0001\x0062" + + "\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0003\x001E\x0001\x00ED\x000B\x001E" + + "\x0001\x00ED\x000A\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x0003\x001E\x0002\x00ED\x0002\x001E\x0002\x00ED\x0001\x001E\x0002\x00ED\x0001\x001E\x0001\x00ED" + + "\x0003\x001E\x0001\x00ED\x0001\x001E\x0001\x00ED\x0001\x001E\x0001\x00ED\x0002\x001E\x0001\x00ED" + + "\x0001\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000" + + "\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x000C\x0000" + + "\x0001\x00E2\x0003\x0000\x0001\x00E3\x0005\x0000\x0001\x00E4\x0003\x0000\x0001\x00E5\x000C\x0000" + + "\x0001\x00E6\x000E\x0000\x0001\x00E7\x0002\x0000\x0001\x00E8\x0022\x0000\x0001\x007C\x0001\x0035" + + "\x0006\x0000\x0001\x007C\x0003\x0000\x0001\x005E\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1" + + "\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9" + + "\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF\x0001\x00D0\x0001\x00D1" + + "\x0001\x00D2\x0001\x00D3\x0001\x00D4\x0001\x00D5\x0001\x00D6\x0001\x00D7\x0001\x005F\x000A\x0063" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0001\x0074\x0003\x0000\x0002\x005F\x000C\x0000\x0001\x00E2\x0003\x0000\x0001\x00E3\x0005\x0000" + + "\x0001\x00E4\x0003\x0000\x0001\x00E5\x000C\x0000\x0001\x00E6\x000E\x0000\x0001\x00E7\x0002\x0000" + + "\x0001\x00E8\x0022\x0000\x0001\x007C\x0001\x0035\x0006\x0000\x0001\x007C\x0003\x0000\x0001\x005E" + + "\x001B\x005F\x000A\x00B9\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0077" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0078\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0079\x000E\x0000\x0001\x007A\x0002\x0000\x0001\x007B\x0021\x0000\x0001\x0015" + + "\x0002\x0035\x0002\x0000\x0002\x007C\x0001\x0037\x0001\x0000\x0001\x0035\x0002\x0000\x0001\x0015" + + "\x0001\u0102\x001A\x006F\x0001\x005F\x000A\x00B9\x0001\x0000\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0002\x00B8\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x007C\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x0003\x001E\x0001\u0103\x0016\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064" + + "\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0061\x001A\x001E\x0001\x0062\x000A\x0063\x0001\u0104\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x0009\x001E\x0001\u0105\x0010\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064" + + "\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0061\x000D\x001E\x0001\u0106\x000C\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F" + + "\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0002\u0107\x0001\u0108" + + "\x0001\u0109\x0008\u0107\x0001\x00B6\x0001\u010a\x0005\u0107\x0006\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u010b\x0002\u0107\x0001\x00B6\x0001\u0107" + + "\x0001\u010c\x0006\u0107\x0004\x00B6\x0004\u0107\x0001\x00B6\x0001\u0107\x0001\x00B6\x0003\u0107" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u0107" + + "\x0001\x00B6\x0001\u0107\x0004\x00B6\x0001\u0107\x0008\x00B6\x0001\u0107\x0002\x00B6\x0001\u0107" + + "\x0002\x00B6\x0001\u0107\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0001\x00B6\x0001\u0107\x0001\u010d\x0002\u0107\x0002\x00B6\x0001\u0107\x0006\x00B6\x0003\u0107" + + "\x0009\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6" + + "\x0001\u0107\x0001\x00B6\x0001\u0107\x0008\x00B6\x0001\u0107\x0001\x00B6\x0002\u0107\x0008\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0004\x00B6\x0001\u010e" + + "\x0005\x00B6\x0001\u0107\x000F\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0004\x00B6\x0002\u0107\x0002\x00B6\x0001\u0107\x0001\x00B6\x0001\u0107\x000B\x00B6" + + "\x0001\u0107\x0002\x00B6\x0001\u0107\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0001\u0107\x0001\x00B6\x0003\u0107\x0001\u010f\x000C\u0107\x0002\x00B6\x0002\u0107" + + "\x0002\x00B6\x0001\u0107\x0001\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0002\x00B6\x0004\u0107\x0003\x00B6\x0002\u0107\x0001\u0110\x0001\u0107\x0001\x00B6" + + "\x0002\u0107\x000A\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0002\u0107\x0002\x00B6\x0001\u0107\x0003\x00B6\x0001\u0107\x0005\x00B6\x0003\u0107\x0003\x00B6" + + "\x0001\u0107\x0002\x00B6\x0003\u0107\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0005\u0107\x0001\u0111\x0001\x00B6\x0001\u0107\x0001\u0112\x0007\u0107\x0001\u0113" + + "\x0003\u0107\x0001\x00B6\x0001\u0107\x0001\x00B6\x0003\u0107\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0114\x0001\u0107\x0001\x00B6\x0001\u010b\x0006\u0107" + + "\x0003\x00B6\x0001\u0107\x0002\x00B6\x0001\u0107\x0002\x00B6\x0001\u0107\x0006\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0107\x0019\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0107\x0002\x00B6\x0001\u0107" + + "\x0001\u0115\x0001\x00B6\x0002\u0107\x0001\x00B6\x0003\u0107\x0002\x00B6\x0002\u0107\x0001\x00B6" + + "\x0001\u0107\x0003\x00B6\x0001\u0107\x0002\x00B6\x0002\u0107\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0006\u0107\x0001\x00B6\x0005\u0107\x0003\x00B6\x0002\u0107" + + "\x0001\x00B6\x0008\u0107\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0001\x00B6\x0002\u0107\x0001\u0112\x0001\u0116\x0003\u0107\x0001\x00B6\x0003\u0107\x0001\x00B6" + + "\x0001\u0107\x0001\x00B6\x0001\u0107\x0001\x00B6\x0001\u0107\x0001\x00B6\x0001\u0107\x0001\x00B6" + + "\x0003\u0107\x0001\x00B6\x0001\u0107\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0001\u0107\x0006\x00B6\x0001\u0107\x0006\x00B6\x0001\u0107\x0004\x00B6\x0001\u0107" + + "\x0004\x00B6\x0002\u0107\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0006\x00B6\x0001\u0107\x0007\x00B6\x0001\u0107\x000B\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x000B\x00B6\x0001\u0117\x0006\x00B6\x0001\u0118\x0007\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0107\x0009\x00B6" + + "\x0001\u0107\x0006\x00B6\x0001\u0107\x0008\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0001\u0107\x0001\x00B6\x0006\u0107\x0001\u0119\x0001\x00B6\x0002\u0107" + + "\x0002\x00B6\x0002\u0107\x0001\x00B6\x0001\u0107\x0001\x00B6\x0006\u0107\x0001\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0004\x00B6\x0001\u0107\x0005\x00B6" + + "\x0002\u0107\x0003\x00B6\x0002\u0107\x0008\x00B6\x0001\u0107\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u0107\x0001\x00B6\x0001\u011a\x0004\x00B6" + + "\x0001\u0107\x0002\x00B6\x0001\u0107\x000C\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0002\u0107\x0001\x00B6\x0001\u0107\x0003\x00B6\x0002\u0107\x0002\x00B6" + + "\x0001\u0107\x0004\x00B6\x0001\u0107\x0009\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u0107\x000B\x00B6\x0001\u0107\x000A\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6\x0002\u0107\x0002\x00B6" + + "\x0002\u0107\x0001\x00B6\x0002\u0107\x0001\x00B6\x0001\u0107\x0003\x00B6\x0001\u0107\x0001\x00B6" + + "\x0001\u0107\x0001\x00B6\x0001\u0107\x0002\x00B6\x0001\u0107\x0001\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039" + + "\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C" + + "\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011b\x001A\x001E" + + "\x0001\x0062\x000A\x00D9\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C" + + "\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000" + + "\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000" + + "\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011b\x001A\x001E\x0001\x0062\x000A\u011c\x0001\x0000" + + "\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0003\x005F\x0002\x0000" + + "\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038" + + "\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015" + + "\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015" + + "\x0001\u011b\x001A\x001E\x0001\x0062\x0001\x00D9\x0001\u011d\x0001\u011c\x0002\x00D9\x0002\u011c" + + "\x0001\x00D9\x0001\u011c\x0001\x00D9\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000" + + "\x0002\x006C\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A" + + "\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D" + + "\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011e\x001A\x001E\x0001\x0062\x000A\x00DB" + + "\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0003\x005F" + + "\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F\x0003\x0000\x0001\x0080\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083\x0021\x0000" + + "\x0001\x0015\x0001\x0036\x0007\x0000\x0001\x0036\x0002\x0000\x0001\x0015\x0001\x005E\x001A\x006F" + + "\x000B\x005F\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0001\x0074\x0003\x0000\x0002\x005F\x000C\x0000\x0001\x0089\x0003\x0000\x0001\x008A" + + "\x0005\x0000\x0001\x008B\x0003\x0000\x0001\x008C\x000C\x0000\x0001\x008D\x000E\x0000\x0001\x008E" + + "\x0002\x0000\x0001\x008F\x0022\x0000\x0001\x003F\x0001\x0016\x0006\x0000\x0001\x003F\x0003\x0000" + + "\x0001\x005E\x001B\x005F\x000A\x0070\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0001\x0074\x0003\x0000\x0002\x005F\x0069\x0000\x0004\u011f" + + "\x0002\x0000\x0001\u011f\x000D\x0000\x0001\u011f\x0006\x0000\x000A\u011f\x0001\x00DF\x007D\x0000" + + "\x0004\u0120\x0002\x0000\x0001\u0120\x000D\x0000\x0001\u0120\x0006\x0000\x000A\u0120\x0001\u0121" + + "\x007D\x0000\x0004\u0122\x0002\x0000\x0001\u0122\x000D\x0000\x0001\u0122\x0006\x0000\x0001\u0123" + + "\x0002\u0124\x0001\u0123\x0005\u0124\x0001\u0125\x000C\x0000\x0001\u0126\x0070\x0000\x0026\x005F" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0000\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0001\x0074\x0003\x0000\x0002\x005F\x0003\x0000\x0001\x007C\x001F\x0000\x0001\x007C\x0001\x0000" + + "\x0002\x007C\x000E\x0000\x0001\x007C\x0004\x0000\x0001\x007C\x0002\x0000\x0002\x007C\x0008\x0000" + + "\x0001\x0035\x0004\x0000\x0001\x007C\x005B\x0000\x0001\x0035\x0042\x0000\x0001\x0035\x00A3\x0000" + + "\x0002\x0035\x0098\x0000\x0001\x007C\x00A7\x0000\x0002\x007C\x0009\x0000\x0001\x007C\x0089\x0000" + + "\x0002\x007C\x0006\x0000\x0001\x007C\x006A\x0000\x0001\x007C\x0003\x0000\x0001\x007C\x0002\x0000" + + "\x0001\x007C\x0003\x0000\x0001\x007C\x0005\x0000\x0001\x007C\x0007\x0000\x0001\x007C\x0004\x0000" + + "\x0002\x007C\x0003\x0000\x0002\x007C\x0001\x0000\x0001\x007C\x0004\x0000\x0001\x007C\x0001\x0000" + + "\x0001\x007C\x0002\x0000\x0002\x007C\x0001\x0000\x0003\x007C\x0001\x0000\x0001\x007C\x0002\x0000" + + "\x0004\x007C\x0002\x0000\x0001\x007C\x00C4\x0000\x0001\u0127\x0001\u0128\x0001\u0129\x0001\u012a" + + "\x0001\u012b\x0001\u012c\x0001\u012d\x0001\u012e\x0001\u012f\x0001\u0130\x0001\u0131\x0001\u0132" + + "\x0001\u0133\x0001\u0134\x0001\u0135\x0001\u0136\x0001\u0137\x0001\u0138\x0001\u0139\x0001\u013a" + + "\x0001\u013b\x0001\u013c\x0001\u013d\x0001\u013e\x0001\u013f\x0001\u0140\x0001\x0000\x000A\x009A" + + "\x007E\x0000\x001A\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x003C\x009B\x0001\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0141\x001A\x001E\x0001\x0062\x000A\x0063" + + "\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0141\x0004\x001E\x0001\u0146" + + "\x0015\x001E\x0001\x0062\x000A\x0063\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000" + + "\x0001\x005F\x0001\x0065\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\u0141\x000D\x001E\x0001\x00A8\x000C\x001E\x0001\x0062\x000A\x0063\x0001\u0142\x0001\x005F" + + "\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0001\u0143\x0001\u0144" + + "\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0141\x0008\x001E\x0001\x00A8\x0011\x001E\x0001\x0062" + + "\x000A\x0063\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0141\x000F\x001E" + + "\x0001\x00ED\x000A\x001E\x0001\x0062\x000A\x0063\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000" + + "\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\u0141\x0005\x001E\x0001\u0147\x0004\x001E\x0001\x00ED\x000F\x001E\x0001\x0062" + + "\x000A\x0063\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0010\x001E" + + "\x0001\x00ED\x0009\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x0007\x001E\x0001\x00ED\x0012\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064" + + "\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0061\x0017\x001E\x0001\x00ED\x0002\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F" + + "\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000" + + "\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\u0141\x0006\x001E\x0001\u0146\x0008\x001E\x0001\x00ED\x000A\x001E\x0001\x0062" + + "\x000A\x0063\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0141\x0014\x001E" + + "\x0001\u0148\x0005\x001E\x0001\x0062\x000A\x0063\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000" + + "\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0061\x0009\x001E\x0001\x00ED\x0010\x001E\x0001\x0062\x000A\x0063\x0001\x0036" + + "\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015" + + "\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\u0141\x000E\x001E\x0001\u0149\x000B\x001E\x0001\x0062\x000A\x0063" + + "\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0141\x000A\x001E\x0001\u014a" + + "\x000F\x001E\x0001\x0062\x000A\x0063\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000" + + "\x0001\x005F\x0001\x0065\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\u0141\x0005\x001E\x0001\x00ED\x0014\x001E\x0001\x0062\x000A\x0063\x0001\u0142\x0001\x005F" + + "\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0001\u0143\x0001\u0144" + + "\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0141\x0001\u014b\x0019\x001E\x0001\x0062\x000A\x0063" + + "\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x001A\x001E\x0001\u014c" + + "\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0012\x001E\x0001\x00ED\x0007\x001E" + + "\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F" + + "\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0141\x0013\x001E\x0001\x00ED" + + "\x0006\x001E\x0001\x0062\x000A\x0063\x0001\u0142\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000" + + "\x0001\x005F\x0001\x0065\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\u0141\x0014\x001E\x0001\u014d\x0005\x001E\x0001\x0062\x000A\x0063\x0001\u0142\x0001\x005F" + + "\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0001\u0143\x0001\u0144" + + "\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\x005E\x0001\x00BE" + + "\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6" + + "\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE" + + "\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3\x0001\x00D4\x0001\x00D5\x0001\x00D6" + + "\x0001\x00D7\x0001\x005F\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0001\x0074\x0003\x0000\x0002\x005F\x000C\x0000\x0001\x00E2" + + "\x0003\x0000\x0001\x00E3\x0005\x0000\x0001\x00E4\x0003\x0000\x0001\x00E5\x000C\x0000\x0001\x00E6" + + "\x000E\x0000\x0001\x00E7\x0002\x0000\x0001\x00E8\x0022\x0000\x0001\x007C\x0001\x0035\x0006\x0000" + + "\x0001\x007C\x0003\x0000\x0001\x005E\x001B\x005F\x000A\x00B9\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0001\x0074\x0003\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x001A\x001E" + + "\x0001\x0062\x000A\x0063\x0001\u014e\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F" + + "\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F\x0003\x0000" + + "\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000" + + "\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036\x0007\x0000\x0001\x0036\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x001A\x0015\x0014\x0000\x0001\u014f\x000D\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015" + + "\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0061\x000F\x001E\x0001\u0150\x000A\x001E\x0001\x0062\x000A\x0063" + + "\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x000E\x001E\x0001\u0151\x000B\x001E\x0001\x0062" + + "\x000A\x0063\x0001\u0152\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0153" + + "\x001A\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0153\x0004\x00B6\x0001\u0155\x0015\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0153\x000D\x00B6\x0001\x00CA\x000C\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0001\u0143\x0001\u0144" + + "\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0153\x0008\x00B6" + + "\x0001\x00CA\x0011\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0153\x000F\x00B6\x0001\u0107\x000A\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0153\x0005\x00B6\x0001\u0156\x0004\x00B6" + + "\x0001\u0107\x000F\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0010\x00B6\x0001\u0107\x0009\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0007\x00B6\x0001\u0107\x0012\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0017\x00B6\x0001\u0107\x0002\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0153\x0006\x00B6\x0001\u0155\x0008\x00B6" + + "\x0001\u0107\x000A\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0153\x0014\x00B6\x0001\u0157\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0009\x00B6\x0001\u0107\x0010\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0153\x000E\x00B6\x0001\u0158" + + "\x000B\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0153\x000A\x00B6\x0001\u0159\x000F\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0153\x0005\x00B6\x0001\u0107\x0014\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0001\u0143\x0001\u0144" + + "\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0153\x0001\u015a" + + "\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\u014c\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0012\x00B6\x0001\u0107\x0007\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0153\x0013\x00B6\x0001\u0107\x0006\x00B6\x0001\x0062\x000A\x00B6\x0001\u0154\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0153\x0014\x00B6\x0001\u015b\x0005\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0001\u0143\x0001\u0144" + + "\x0001\u0145\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x000C\x0000\x0001\x0089\x0003\x0000" + + "\x0001\x008A\x0005\x0000\x0001\x008B\x0003\x0000\x0001\x008C\x000C\x0000\x0001\x008D\x000E\x0000" + + "\x0001\x008E\x0002\x0000\x0001\x008F\x0022\x0000\x0001\x003F\x0001\x0016\x0006\x0000\x0001\x003F" + + "\x0003\x0000\x0001\x005E\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3" + + "\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB" + + "\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3" + + "\x0001\x00D4\x0001\x00D5\x0001\x00D6\x0001\x00D7\x0001\x005F\x0001\u015c\x0002\u015d\x0001\u015c" + + "\x0005\u015d\x0001\u015e\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0001\x0074\x0003\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000" + + "\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000" + + "\x0001\x0015\x0001\u011b\x001A\x001E\x0001\x0062\x000A\x00DB\x0001\x0000\x0001\x005F\x0001\x006B" + + "\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039" + + "\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C" + + "\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011b\x001A\x001E" + + "\x0001\x0062\x0002\u011c\x0001\x00DB\x0002\u011c\x0002\x00DB\x0001\u011c\x0001\x00DB\x0001\u011c" + + "\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0003\x005F" + + "\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x000C\x0000\x0001\x0089\x0003\x0000" + + "\x0001\x008A\x0005\x0000\x0001\x008B\x0003\x0000\x0001\x008C\x000C\x0000\x0001\x008D\x000E\x0000" + + "\x0001\x008E\x0002\x0000\x0001\x008F\x0022\x0000\x0001\x003F\x0001\x0016\x0006\x0000\x0001\x003F" + + "\x0003\x0000\x0001\x005E\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3" + + "\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB" + + "\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3" + + "\x0001\x00D4\x0001\x00D5\x0001\x00D6\x0001\x00D7\x0001\x005F\x000A\x00DB\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0001\x0074\x0003\x0000" + + "\x0002\x005F\x0069\x0000\x0004\u015f\x0002\x0000\x0001\u015f\x000D\x0000\x0001\u015f\x0006\x0000" + + "\x000A\u015f\x0001\x00DF\x007D\x0000\x0004\u0160\x0002\x0000\x0001\u0160\x000D\x0000\x0001\u0160" + + "\x0006\x0000\x000A\u0160\x0001\u0161\x007D\x0000\x0004\u0162\x0002\x0000\x0001\u0162\x000D\x0000" + + "\x0001\u0162\x0006\x0000\x0001\u0163\x0002\u0164\x0001\u0163\x0005\u0164\x0001\u0165\x000C\x0000" + + "\x0001\u0126\x0071\x0000\x0004\u0166\x0002\x0000\x0001\u0166\x000D\x0000\x0001\u0166\x0006\x0000" + + "\x000A\u0166\x0001\u0167\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0166\x0002\x0000" + + "\x0001\u0166\x000D\x0000\x0001\u0166\x0006\x0000\x000A\u0169\x0001\u0167\x000B\x0000\x0001\u0126" + + "\x0070\x0000\x0001\u0168\x0004\u0166\x0002\x0000\x0001\u0166\x000D\x0000\x0001\u0166\x0006\x0000" + + "\x000A\u016a\x0001\u0167\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0166\x0002\x0000" + + "\x0001\u0166\x000D\x0000\x0001\u0166\x0006\x0000\x0001\u0169\x0001\u016b\x0001\u016a\x0002\u0169" + + "\x0002\u016a\x0001\u0169\x0001\u016a\x0001\u0169\x0001\u0167\x000B\x0000\x0001\u0126\x0096\x0000" + + "\x0001\u0154\x0007\x0000\x0001\u016c\x0001\u016d\x0001\u016e\x0072\x0000\x0001\x00E9\x0001\x009A" + + "\x0002\u016f\x0001\u0170\x0001\u0171\x0008\u016f\x0001\x009A\x0001\u0172\x0005\u016f\x0006\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u0173\x0002\u016f\x0001\x009A\x0001\u016f" + + "\x0001\u0174\x0006\u016f\x0004\x009A\x0004\u016f\x0001\x009A\x0001\u016f\x0001\x009A\x0003\u016f" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0003\x009A\x0001\u016f\x0001\x009A\x0001\u016f" + + "\x0004\x009A\x0001\u016f\x0008\x009A\x0001\u016f\x0002\x009A\x0001\u016f\x0002\x009A\x0001\u016f" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u016f\x0001\u0175\x0002\u016f" + + "\x0002\x009A\x0001\u016f\x0006\x009A\x0003\u016f\x0009\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0003\x009A\x0001\u016f\x0001\x009A\x0001\u016f\x0008\x009A\x0001\u016f\x0001\x009A" + + "\x0002\u016f\x0008\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0004\x009A\x0001\u0176" + + "\x0005\x009A\x0001\u016f\x000F\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0004\x009A" + + "\x0002\u016f\x0002\x009A\x0001\u016f\x0001\x009A\x0001\u016f\x000B\x009A\x0001\u016f\x0002\x009A" + + "\x0001\u016f\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u016f\x0001\x009A\x0003\u016f" + + "\x0001\u0177\x000C\u016f\x0002\x009A\x0002\u016f\x0002\x009A\x0001\u016f\x0001\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0002\x009A\x0004\u016f\x0003\x009A\x0002\u016f\x0001\u0178" + + "\x0001\u016f\x0001\x009A\x0002\u016f\x000A\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0002\u016f\x0002\x009A\x0001\u016f\x0003\x009A\x0001\u016f\x0005\x009A\x0003\u016f\x0003\x009A" + + "\x0001\u016f\x0002\x009A\x0003\u016f\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0005\u016f" + + "\x0001\u0179\x0001\x009A\x0001\u016f\x0001\u017a\x0007\u016f\x0001\u017b\x0003\u016f\x0001\x009A" + + "\x0001\u016f\x0001\x009A\x0003\u016f\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u017c" + + "\x0001\u016f\x0001\x009A\x0001\u0173\x0006\u016f\x0003\x009A\x0001\u016f\x0002\x009A\x0001\u016f" + + "\x0002\x009A\x0001\u016f\x0006\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u016f" + + "\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u016f\x0002\x009A\x0001\u016f" + + "\x0001\u017d\x0001\x009A\x0002\u016f\x0001\x009A\x0003\u016f\x0002\x009A\x0002\u016f\x0001\x009A" + + "\x0001\u016f\x0003\x009A\x0001\u016f\x0002\x009A\x0002\u016f\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0006\u016f\x0001\x009A\x0005\u016f\x0003\x009A\x0002\u016f\x0001\x009A\x0008\u016f" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\x009A\x0002\u016f\x0001\u017a\x0001\u017e" + + "\x0003\u016f\x0001\x009A\x0003\u016f\x0001\x009A\x0001\u016f\x0001\x009A\x0001\u016f\x0001\x009A" + + "\x0001\u016f\x0001\x009A\x0001\u016f\x0001\x009A\x0003\u016f\x0001\x009A\x0001\u016f\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u016f\x0006\x009A\x0001\u016f\x0006\x009A\x0001\u016f" + + "\x0004\x009A\x0001\u016f\x0004\x009A\x0002\u016f\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0006\x009A\x0001\u016f\x0007\x009A\x0001\u016f\x000B\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x000B\x009A\x0001\u017f\x0006\x009A\x0001\u0180\x0007\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0001\u016f\x0009\x009A\x0001\u016f\x0006\x009A\x0001\u016f\x0008\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u016f\x0001\x009A\x0006\u016f\x0001\u0181" + + "\x0001\x009A\x0002\u016f\x0002\x009A\x0002\u016f\x0001\x009A\x0001\u016f\x0001\x009A\x0006\u016f" + + "\x0001\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0004\x009A\x0001\u016f\x0005\x009A" + + "\x0002\u016f\x0003\x009A\x0002\u016f\x0008\x009A\x0001\u016f\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0003\x009A\x0001\u016f\x0001\x009A\x0001\u0182\x0004\x009A\x0001\u016f\x0002\x009A" + + "\x0001\u016f\x000C\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0002\u016f\x0001\x009A" + + "\x0001\u016f\x0003\x009A\x0002\u016f\x0002\x009A\x0001\u016f\x0004\x009A\x0001\u016f\x0009\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0003\x009A\x0001\u016f\x000B\x009A\x0001\u016f" + + "\x000A\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0003\x009A\x0002\u016f\x0002\x009A" + + "\x0002\u016f\x0001\x009A\x0002\u016f\x0001\x009A\x0001\u016f\x0003\x009A\x0001\u016f\x0001\x009A" + + "\x0001\u016f\x0001\x009A\x0001\u016f\x0002\x009A\x0001\u016f\x0001\x009A\x0001\x00EA\x000A\x009A" + + "\x0017\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F" + + "\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0081\x000E\x0000\x0001\x0082" + + "\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036\x0007\x0000\x0001\x0036\x0002\x0000" + + "\x0001\x0015\x0001\x005E\x0001\x009C\x0001\x009D\x0001\x009E\x0001\x009F\x0001\x00A0\x0001\x00A1" + + "\x0001\x00A2\x0001\x00A3\x0001\x00A4\x0001\x00A5\x0001\x00A6\x0001\x00A7\x0001\x00A8\x0001\x00A9" + + "\x0001\x00AA\x0001\x00AB\x0001\x00AC\x0001\x00AD\x0001\x00AE\x0001\x00AF\x0001\x00B0\x0001\x00B1" + + "\x0001\x00B2\x0001\x00B3\x0001\x00B4\x0001\x00B5\x0001\x005F\x000A\x00B6\x0001\u0154\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F" + + "\x0001\x0074\x0003\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000" + + "\x0001\x007E\x0005\x0000\x0001\x007F\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036" + + "\x0007\x0000\x0001\x0036\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0001\x0000\x000A\u0183" + + "\x007D\x0000\x0001\u0184\x0025\u0143\x0001\u016c\x0002\u0143\x0001\u0185\x0001\u016c\x0002\u0143" + + "\x0001\u0186\x0002\u0143\x0001\u0145\x0002\x0000\x0001\u016c\x0001\u0143\x0004\x0000\x0001\u0143" + + "\x0001\x005F\x0068\x0000\x0001\u0187\x0025\u0144\x0001\u016d\x0002\u0144\x0001\u0188\x0001\x0000" + + "\x0002\x005F\x0001\u0189\x0001\u0143\x0001\u0144\x0001\u0145\x0002\x0000\x0001\u016d\x0001\u0144" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u018a\x0025\u0145\x0001\u016e\x0002\u0145\x0001\u018b" + + "\x0001\u016e\x0002\u0145\x0001\u018c\x0002\u0145\x0001\x005F\x0002\x0000\x0001\u016e\x0001\u0145" + + "\x0004\x0000\x0001\u0145\x0001\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000" + + "\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0061\x0005\x001E\x0001\x00ED\x0014\x001E\x0001\x0062\x000A\x0063\x0001\x0036" + + "\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015" + + "\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0061\x000D\x001E\x0001\x00ED\x000C\x001E\x0001\x0062\x000A\x0063" + + "\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0008\x001E\x0001\x00ED\x0011\x001E\x0001\x0062" + + "\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0003\x001E\x0001\u018d\x0016\x001E" + + "\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F" + + "\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036" + + "\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0003\x001E\x0001\x00ED" + + "\x0016\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000" + + "\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0017\x001E" + + "\x0001\u018e\x0002\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\x005E\x001A\x00B6\x0001\u018f\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x000E\x001E" + + "\x0001\x00ED\x000B\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000" + + "\x0001\x007F\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0081\x000E\x0000" + + "\x0001\x0082\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036\x0007\x0000\x0001\x0036" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x001A\x0015\x0014\x0000\x0001\u0190\x00A2\x0000\x0001\u0191" + + "\x000D\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F" + + "\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x0005\x001E" + + "\x0001\u0192\x0014\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F" + + "\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061" + + "\x001A\x001E\x0001\x0062\x000A\x0063\x0001\u0152\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000" + + "\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F" + + "\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0081\x000E\x0000\x0001\x0082" + + "\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036\x0007\x0000\x0001\x0036\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x001A\x0015\x0014\x0000\x0001\u0193\x0073\x0000\x0001\x005E\x0001\x00BE" + + "\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6" + + "\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE" + + "\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3\x0001\x00D4\x0001\x00D5\x0001\x00D6" + + "\x0001\x00D7\x0001\x005F\x000A\x00B6\x0001\u0154\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0001\u0143\x0001\u0144\x0001\u0145\x0003\x0000\x0001\x005F\x0001\x0074\x0003\x0000\x0002\x005F" + + "\x0084\x0000\x000A\u0183\x007D\x0000\x0001\u0101\x0005\x00B6\x0001\u0107\x0014\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000D\x00B6\x0001\u0107\x000C\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0008\x00B6\x0001\u0107" + + "\x0011\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6" + + "\x0001\u0194\x0016\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0003\x00B6\x0001\u0107\x0016\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0017\x00B6\x0001\u0195\x0002\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x000E\x00B6\x0001\u0107\x000B\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000" + + "\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000" + + "\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F" + + "\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0196\x001A\x001E\x0001\x0062" + + "\x000A\u015d\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060" + + "\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E" + + "\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0015\x0001\u0196\x001A\x001E\x0001\x0062\x000A\u0197\x0001\x0000\x0001\x005F" + + "\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000" + + "\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016" + + "\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0196" + + "\x001A\x001E\x0001\x0062\x0001\u015d\x0001\u0198\x0001\u0197\x0002\u015d\x0002\u0197\x0001\u015d" + + "\x0001\u0197\x0001\u015d\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C" + + "\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x008E\x0000" + + "\x0001\x00DF\x007D\x0000\x0004\u0199\x0002\x0000\x0001\u0199\x000D\x0000\x0001\u0199\x0006\x0000" + + "\x000A\u0199\x0001\u0161\x007D\x0000\x0004\u019a\x0002\x0000\x0001\u019a\x000D\x0000\x0001\u019a" + + "\x0006\x0000\x000A\u019a\x0001\u019b\x007D\x0000\x0004\u019c\x0002\x0000\x0001\u019c\x000D\x0000" + + "\x0001\u019c\x0006\x0000\x000A\u019c\x0001\u019d\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168" + + "\x0004\u019c\x0002\x0000\x0001\u019c\x000D\x0000\x0001\u019c\x0006\x0000\x000A\u019e\x0001\u019d" + + "\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u019c\x0002\x0000\x0001\u019c\x000D\x0000" + + "\x0001\u019c\x0006\x0000\x000A\u019f\x0001\u019d\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168" + + "\x0004\u019c\x0002\x0000\x0001\u019c\x000D\x0000\x0001\u019c\x0006\x0000\x0001\u019e\x0001\u01a0" + + "\x0001\u019f\x0002\u019e\x0002\u019f\x0001\u019e\x0001\u019f\x0001\u019e\x0001\u019d\x000B\x0000" + + "\x0001\u0126\x0071\x0000\x0004\u01a1\x0002\x0000\x0001\u01a1\x000D\x0000\x0001\u01a1\x0006\x0000" + + "\x000A\u01a1\x0001\u0167\x000B\x0000\x0001\u0126\x0071\x0000\x0004\u0162\x0002\x0000\x0001\u0162" + + "\x000D\x0000\x0001\u0162\x0006\x0000\x0001\u0163\x0002\u0164\x0001\u0163\x0005\u0164\x0001\u0165" + + "\x0099\x0000\x0001\u01a2\x0002\u01a3\x0001\u01a2\x0005\u01a3\x0001\u01a4\x007D\x0000\x0001\u0168" + + "\x0004\u01a1\x0002\x0000\x0001\u01a1\x000D\x0000\x0001\u01a1\x0006\x0000\x000A\u01a5\x0001\u0167" + + "\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u01a1\x0002\x0000\x0001\u01a1\x000D\x0000" + + "\x0001\u01a1\x0006\x0000\x000A\u01a1\x0001\u0167\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168" + + "\x0004\u01a1\x0002\x0000\x0001\u01a1\x000D\x0000\x0001\u01a1\x0006\x0000\x0002\u01a5\x0001\u01a1" + + "\x0002\u01a5\x0002\u01a1\x0001\u01a5\x0001\u01a1\x0001\u01a5\x0001\u0167\x000B\x0000\x0001\u0126" + + "\x0070\x0000\x0029\u016c\x0001\u01a6\x0006\u016c\x0001\u016e\x0002\x0000\x0002\u016c\x0004\x0000" + + "\x0001\u016c\x0069\x0000\x0029\u016d\x0001\u01a7\x0003\x0000\x0001\u016d\x0001\u016c\x0001\u016d" + + "\x0001\u016e\x0002\x0000\x0002\u016d\x006E\x0000\x0029\u016e\x0001\u01a8\x0006\u016e\x0003\x0000" + + "\x0002\u016e\x0004\x0000\x0001\u016e\x0069\x0000\x0001\u01a9\x001A\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\u01a9\x0004\x009A\x0001\u01aa\x0015\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\u01a9\x000D\x009A\x0001\u0133\x000C\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u01a9" + + "\x0008\x009A\x0001\u0133\x0011\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u01a9\x000F\x009A" + + "\x0001\u016f\x000A\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u01a9\x0005\x009A\x0001\u01ab" + + "\x0004\x009A\x0001\u016f\x000F\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0010\x009A" + + "\x0001\u016f\x0009\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0007\x009A\x0001\u016f" + + "\x0012\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0017\x009A\x0001\u016f\x0002\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u01a9\x0006\x009A\x0001\u01aa\x0008\x009A\x0001\u016f" + + "\x000A\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u01a9\x0014\x009A\x0001\u01ac\x0005\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0009\x009A\x0001\u016f\x0010\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\u01a9\x000E\x009A\x0001\u01ad\x000B\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\u01a9\x000A\x009A\x0001\u01ae\x000F\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\u01a9\x0005\x009A\x0001\u016f\x0014\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u01a9" + + "\x0001\u01af\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\u01b0" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0012\x009A\x0001\u016f\x0007\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\u01a9\x0013\x009A\x0001\u016f\x0006\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\u01a9\x0014\x009A\x0001\u01b1\x0005\x009A\x0001\x00EA\x000A\x009A\x0099\x0000\x000A\u01b2" + + "\x0008\x0000\x0001\u016c\x0001\u016d\x0001\u016e\x0072\x0000\x0001\u0184\x0025\u0143\x0001\u016c" + + "\x0002\u0143\x0001\u0185\x0001\u016c\x0002\u0143\x0001\u0186\x0002\u0143\x0001\u0145\x0002\x0000" + + "\x0001\u016c\x0001\u0143\x0001\x0074\x0003\x0000\x0001\u0143\x0001\x005F\x0068\x0000\x0001\x005E" + + "\x0004\u01b3\x0002\x005F\x0001\u01b3\x000D\x005F\x0001\u01b3\x0006\x005F\x000A\u01b3\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0029\u016c\x0001\u01a6\x0006\u016c\x0001\u016e\x0001\x009B\x0001\x0000" + + "\x0002\u016c\x0004\x0000\x0001\u016c\x0069\x0000\x0001\u0187\x0025\u0144\x0001\u016d\x0002\u0144" + + "\x0001\u0188\x0001\x0000\x0002\x005F\x0001\u0189\x0001\u0143\x0001\u0144\x0001\u0145\x0002\x0000" + + "\x0001\u016d\x0001\u0144\x0001\x0074\x0003\x0000\x0002\x005F\x0068\x0000\x0001\x005E\x0004\u01b4" + + "\x0002\x005F\x0001\u01b4\x000D\x005F\x0001\u01b4\x0006\x005F\x000A\u01b4\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0029\u016d\x0001\u01a7\x0003\x0000\x0001\u016d\x0001\u016c\x0001\u016d\x0001\u016e" + + "\x0001\x009B\x0001\x0000\x0002\u016d\x006E\x0000\x0001\u018a\x0025\u0145\x0001\u016e\x0002\u0145" + + "\x0001\u018b\x0001\u016e\x0002\u0145\x0001\u018c\x0002\u0145\x0001\x005F\x0002\x0000\x0001\u016e" + + "\x0001\u0145\x0001\x0074\x0003\x0000\x0001\u0145\x0001\x005F\x0068\x0000\x0001\x005E\x0004\u01b5" + + "\x0002\x005F\x0001\u01b5\x000D\x005F\x0001\u01b5\x0006\x005F\x000A\u01b5\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0029\u016e\x0001\u01a8\x0006\u016e\x0001\x0000\x0001\x009B\x0001\x0000\x0002\u016e" + + "\x0004\x0000\x0001\u016e\x0003\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E" + + "\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035\x0001\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0061\x0010\x001E\x0001\u01b6\x0009\x001E\x0001\x0062\x000A\x0063\x0001\x0036\x0001\x005F" + + "\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000" + + "\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0061\x0003\x001E\x0001\x00F8\x0016\x001E\x0001\x0062\x000A\x0063\x0001\x0036" + + "\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\x005E\x0001\x00B6\x0001\u01b7" + + "\x0001\u01b8\x0002\x00B6\x0001\u01b9\x0001\u01ba\x0001\u01bb\x0001\x00B6\x0001\u01bc\x0001\u01bd" + + "\x0002\x00B6\x0001\u01be\x0001\u01bf\x0002\x00B6\x0001\u01c0\x0001\u01c1\x0001\u01c2\x0001\x00B6" + + "\x0001\u01c3\x0001\u01c4\x0001\x00B6\x0001\u01c5\x0001\u01c6\x0001\x0062\x0001\u01c7\x0002\x00B6" + + "\x0001\u01c8\x0001\u01c9\x0001\u01ca\x0001\x00B6\x0001\u01cb\x0001\u01cc\x0001\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0097\x0000\x0001\u01cd\x0073\x0000\x0001\u01ce\x001A\u01cf\x0001\u01ce\x000A\u01cf" + + "\x0001\u01d0\x0002\u01ce\x0001\u01d1\x0003\u01ce\x0001\u01d2\x0003\x0000\x0001\u01d3\x0001\x0000" + + "\x0002\u01ce\x0004\x0000\x0001\u01ce\x0003\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x002D\x0003\x0000" + + "\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000\x0002\x0015\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0061\x001A\x001E\x0001\x0062\x000A\x0063\x0001\u01d4\x0001\x005F\x0001\x0064" + + "\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0097\x0000\x0001\u01d5\x0073\x0000\x0001\u0101\x0010\x00B6\x0001\u01d6" + + "\x0009\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6" + + "\x0001\u0112\x0016\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x000C\x0000\x0001\x0089" + + "\x0003\x0000\x0001\x008A\x0005\x0000\x0001\x008B\x0003\x0000\x0001\x008C\x000C\x0000\x0001\x008D" + + "\x000E\x0000\x0001\x008E\x0002\x0000\x0001\x008F\x0022\x0000\x0001\x003F\x0001\x0016\x0006\x0000" + + "\x0001\x003F\x0003\x0000\x0001\x005E\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2" + + "\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA" + + "\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2" + + "\x0001\x00D3\x0001\x00D4\x0001\x00D5\x0001\x00D6\x0001\x00D7\x0001\x005F\x0001\u01d7\x0002\u01d8" + + "\x0001\u01d7\x0005\u01d8\x0001\u01d9\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0001\x0074\x0003\x0000\x0002\x005F\x0002\x0000\x0001\x0028" + + "\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B" + + "\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E" + + "\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0015\x0001\u0196\x001A\x001E\x0001\x0062\x000A\x00DB\x0001\x0000\x0001\x005F" + + "\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0003\x005F\x0002\x0000\x0001\x003F" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000" + + "\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016" + + "\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u0196" + + "\x001A\x001E\x0001\x0062\x0002\u0197\x0001\x00DB\x0002\u0197\x0002\x00DB\x0001\u0197\x0001\x00DB" + + "\x0001\u0197\x0001\x0000\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060" + + "\x0003\x005F\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x0004\u01da" + + "\x0002\x0000\x0001\u01da\x000D\x0000\x0001\u01da\x0006\x0000\x000A\u01da\x0001\u0161\x007D\x0000" + + "\x0004\u01db\x0002\x0000\x0001\u01db\x000D\x0000\x0001\u01db\x0006\x0000\x000A\u01db\x0001\u01dc" + + "\x007D\x0000\x0004\u01dd\x0002\x0000\x0001\u01dd\x000D\x0000\x0001\u01dd\x0006\x0000\x0001\u01de" + + "\x0002\u01df\x0001\u01de\x0005\u01df\x0001\u01e0\x000C\x0000\x0001\u0126\x0071\x0000\x0004\u01e1" + + "\x0002\x0000\x0001\u01e1\x000D\x0000\x0001\u01e1\x0006\x0000\x000A\u01e1\x0001\u019d\x000B\x0000" + + "\x0001\u0126\x0071\x0000\x0004\u01dd\x0002\x0000\x0001\u01dd\x000D\x0000\x0001\u01dd\x0006\x0000" + + "\x0001\u01de\x0002\u01df\x0001\u01de\x0005\u01df\x0001\u01e0\x007D\x0000\x0001\u0168\x0004\u01e1" + + "\x0002\x0000\x0001\u01e1\x000D\x0000\x0001\u01e1\x0006\x0000\x000A\u01e2\x0001\u019d\x000B\x0000" + + "\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u01e1\x0002\x0000\x0001\u01e1\x000D\x0000\x0001\u01e1" + + "\x0006\x0000\x000A\u01e1\x0001\u019d\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u01e1" + + "\x0002\x0000\x0001\u01e1\x000D\x0000\x0001\u01e1\x0006\x0000\x0002\u01e2\x0001\u01e1\x0002\u01e2" + + "\x0002\u01e1\x0001\u01e2\x0001\u01e1\x0001\u01e2\x0001\u019d\x000B\x0000\x0001\u0126\x0071\x0000" + + "\x0004\u01e3\x0002\x0000\x0001\u01e3\x000D\x0000\x0001\u01e3\x0006\x0000\x000A\u01e3\x0001\u0167" + + "\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u01e4\x001B\x0000\x000A\u01a3\x007D\x0000\x0001\u01e4" + + "\x001B\x0000\x000A\u01e5\x007D\x0000\x0001\u01e4\x001B\x0000\x0001\u01a3\x0001\u01e6\x0001\u01e5" + + "\x0002\u01a3\x0002\u01e5\x0001\u01a3\x0001\u01e5\x0001\u01a3\x007D\x0000\x0001\u0168\x0004\u01e3" + + "\x0002\x0000\x0001\u01e3\x000D\x0000\x0001\u01e3\x0006\x0000\x000A\u01e3\x0001\u0167\x000B\x0000" + + "\x0001\u0126\x0071\x0000\x0004\u01e7\x0002\x0000\x0001\u01e7\x000D\x0000\x0001\u01e7\x0006\x0000" + + "\x000A\u01e7\x007E\x0000\x0004\u01e8\x0002\x0000\x0001\u01e8\x000D\x0000\x0001\u01e8\x0006\x0000" + + "\x000A\u01e8\x007E\x0000\x0004\u01e9\x0002\x0000\x0001\u01e9\x000D\x0000\x0001\u01e9\x0006\x0000" + + "\x000A\u01e9\x007D\x0000\x0001\x00E9\x0005\x009A\x0001\u016f\x0014\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x000D\x009A\x0001\u016f\x000C\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0008\x009A\x0001\u016f\x0011\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0003\x009A\x0001\u01ea\x0016\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0003\x009A" + + "\x0001\u016f\x0016\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0017\x009A\x0001\u01eb" + + "\x0002\x009A\x0001\x00EA\x000A\x009A\x007E\x0000\x001A\x009A\x0001\u01ec\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x000E\x009A\x0001\u016f\x000B\x009A\x0001\x00EA\x000A\x009A\x0099\x0000\x000A\u01ed" + + "\x0008\x0000\x0001\u016c\x0001\u016d\x0001\u016e\x0072\x0000\x0001\x005E\x0004\u0143\x0002\x005F" + + "\x0001\u0143\x000D\x005F\x0001\u0143\x0006\x005F\x000A\u0143\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\x005E\x0004\u0144\x0002\x005F\x0001\u0144\x000D\x005F\x0001\u0144\x0006\x005F\x000A\u0144" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\x005E\x0004\u0145\x0002\x005F\x0001\u0145\x000D\x005F" + + "\x0001\u0145\x0006\x005F\x000A\u0145\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0061\x000A\x001E\x0001\x00ED\x000F\x001E\x0001\x0062" + + "\x000A\x0063\x0001\x0036\x0001\x005F\x0001\x0064\x0001\x005F\x0001\x0000\x0001\x005F\x0001\x0065" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0009\x00B6\x0001\u01ee\x0010\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0003\x00B6\x0001\u01ef\x0016\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0007\x00B6\x0001\u01f0\x0012\x00B6\x0001\x0062\x0004\x00B6\x0001\u01f1" + + "\x0005\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0008\x00B6\x0001\u01f2\x0004\x00B6" + + "\x0001\u01f3\x0005\x00B6\x0001\u01f4\x0006\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u01f5\x0016\x00B6\x0001\x0062\x0002\x00B6\x0001\u01f6" + + "\x0007\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0007\x00B6\x0001\u01f7\x0012\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0007\x00B6\x0001\u01f8" + + "\x0012\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0007\x00B6" + + "\x0001\u01f9\x0012\x00B6\x0001\x0062\x0003\x00B6\x0001\u01fa\x0006\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0005\x00B6\x0001\u01fb\x0004\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0007\x00B6\x0001\u01fc\x0012\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0019\x00B6\x0001\u01fd\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u01fe\x0018\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0007\x00B6\x0001\u01ff\x0001\x00B6" + + "\x0001\u0200\x0010\x00B6\x0001\x0062\x0009\x00B6\x0001\u01fb\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0012\x00B6\x0001\u0201\x0007\x00B6\x0001\x0062\x0002\x00B6\x0001\u0202\x0007\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0006\x00B6\x0001\u0203\x0001\u0204\x0012\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0007\x00B6\x0001\u0205" + + "\x0005\x00B6\x0001\u0206\x000C\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0013\x00B6\x0001\u0207\x0006\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0003\x00B6\x0001\u0208\x0006\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u0209\x0016\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000F\x00B6\x0001\u020a\x000A\x00B6\x0001\x0062" + + "\x0001\u020b\x0009\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0001\x00B6\x0001\u01fb\x0008\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6" + + "\x0001\x0062\x0001\u020c\x0009\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x001A\u020d\x0001\x0000" + + "\x000A\u020d\x0009\x0000\x0001\u020e\x0001\x0000\x0001\u020f\x0071\x0000\x0026\u01ce\x0001\u01d0" + + "\x0002\u01ce\x0001\u01d1\x0003\u01ce\x0001\u01d2\x0005\x0000\x0002\u01ce\x0004\x0000\x0001\u01ce" + + "\x0069\x0000\x0001\u0210\x001A\u01cf\x0001\u0211\x000A\u01cf\x0001\u0212\x0002\u01ce\x0001\u01d1" + + "\x0003\u01ce\x0001\u01d2\x0001\x0000\x0001\u0213\x0003\x0000\x0002\u01ce\x0004\x0000\x0001\u01ce" + + "\x0069\x0000\x0026\u01d0\x0001\x0000\x0002\u01d0\x0001\u0214\x0003\u01d0\x0001\u01d2\x0005\x0000" + + "\x0002\u01d0\x0004\x0000\x0001\u01d0\x006A\x0000\x0004\u0215\x0002\x0000\x0001\u0215\x000D\x0000" + + "\x0001\u0215\x0006\x0000\x000A\u0215\x007E\x0000\x001A\u0216\x0001\x0000\x000A\u0216\x000B\x0000" + + "\x0001\u01d3\x0072\x0000\x0004\u0217\x0002\x0000\x0001\u0217\x000D\x0000\x0001\u0217\x0006\x0000" + + "\x000A\u0217\x0001\u0218\x0016\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000\x0001\x007E" + + "\x0005\x0000\x0001\x007F\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0081" + + "\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036\x0007\x0000" + + "\x0001\x0036\x0002\x0000\x0001\x0015\x0001\u0219\x001A\u021a\x000B\u0219\x0001\x0000\x0003\u0219" + + "\x0001\x0000\x0002\u0219\x0001\x0000\x0003\u0219\x0003\x0000\x0001\u0219\x0001\u021b\x0003\x0000" + + "\x0002\u0219\x0068\x0000\x0001\u021c\x001A\u021d\x0001\u021c\x000A\u021d\x0001\u021e\x0002\u021c" + + "\x0001\u021f\x0003\u021c\x0001\u0220\x0003\x0000\x0001\u0221\x0001\x0000\x0002\u021c\x0004\x0000" + + "\x0001\u021c\x0069\x0000\x0001\u0101\x000A\x00B6\x0001\u0107\x000F\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039" + + "\x0005\x0000\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C" + + "\x000E\x0000\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000" + + "\x0002\x003F\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011e\x001A\x001E" + + "\x0001\x0062\x000A\u01d8\x0001\u0154\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C" + + "\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000" + + "\x0001\x003A\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000" + + "\x0001\x003D\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F" + + "\x0001\x0040\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011e\x001A\x001E\x0001\x0062" + + "\x000A\u0222\x0001\u0154\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060" + + "\x0001\u0143\x0001\u0144\x0001\u0145\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A" + + "\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D" + + "\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011e\x001A\x001E\x0001\x0062\x0001\u01d8" + + "\x0001\u0223\x0001\u0222\x0002\u01d8\x0002\u0222\x0001\u01d8\x0001\u0222\x0001\u01d8\x0001\u0154" + + "\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0001\u0143\x0001\u0144" + + "\x0001\u0145\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x008E\x0000\x0001\u0161" + + "\x007D\x0000\x0004\u0224\x0002\x0000\x0001\u0224\x000D\x0000\x0001\u0224\x0006\x0000\x000A\u0224" + + "\x0001\u01dc\x007D\x0000\x0004\u0225\x0002\x0000\x0001\u0225\x000D\x0000\x0001\u0225\x0006\x0000" + + "\x000A\u0225\x0001\u0226\x007D\x0000\x0004\u0227\x0002\x0000\x0001\u0227\x000D\x0000\x0001\u0227" + + "\x0006\x0000\x000A\u0227\x0001\u0228\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0227" + + "\x0002\x0000\x0001\u0227\x000D\x0000\x0001\u0227\x0006\x0000\x000A\u0229\x0001\u0228\x000B\x0000" + + "\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0227\x0002\x0000\x0001\u0227\x000D\x0000\x0001\u0227" + + "\x0006\x0000\x000A\u022a\x0001\u0228\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0227" + + "\x0002\x0000\x0001\u0227\x000D\x0000\x0001\u0227\x0006\x0000\x0001\u0229\x0001\u022b\x0001\u022a" + + "\x0002\u0229\x0002\u022a\x0001\u0229\x0001\u022a\x0001\u0229\x0001\u0228\x000B\x0000\x0001\u0126" + + "\x0071\x0000\x0004\u022c\x0002\x0000\x0001\u022c\x000D\x0000\x0001\u022c\x0006\x0000\x000A\u022c" + + "\x0001\u019d\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u022c\x0002\x0000\x0001\u022c" + + "\x000D\x0000\x0001\u022c\x0006\x0000\x000A\u022c\x0001\u019d\x000B\x0000\x0001\u0126\x0096\x0000" + + "\x0001\u0167\x000B\x0000\x0001\u0126\x008C\x0000\x0001\u022d\x0002\u022e\x0001\u022d\x0005\u022e" + + "\x0001\u022f\x007D\x0000\x0001\u01e4\x00A2\x0000\x0001\u01e4\x001B\x0000\x0002\u01e5\x0001\x0000" + + "\x0002\u01e5\x0002\x0000\x0001\u01e5\x0001\x0000\x0001\u01e5\x007E\x0000\x0004\u016c\x0002\x0000" + + "\x0001\u016c\x000D\x0000\x0001\u016c\x0006\x0000\x000A\u016c\x007E\x0000\x0004\u016d\x0002\x0000" + + "\x0001\u016d\x000D\x0000\x0001\u016d\x0006\x0000\x000A\u016d\x007E\x0000\x0004\u016e\x0002\x0000" + + "\x0001\u016e\x000D\x0000\x0001\u016e\x0006\x0000\x000A\u016e\x007D\x0000\x0001\x00E9\x0010\x009A" + + "\x0001\u0230\x0009\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0003\x009A\x0001\u017a" + + "\x0016\x009A\x0001\x00EA\x000A\x009A\x007E\x0000\x0001\x009A\x0001\u0231\x0001\u0232\x0002\x009A" + + "\x0001\u0233\x0001\u0234\x0001\u0235\x0001\x009A\x0001\u0236\x0001\u0237\x0002\x009A\x0001\u0238" + + "\x0001\u0239\x0002\x009A\x0001\u023a\x0001\u023b\x0001\u023c\x0001\x009A\x0001\u023d\x0001\u023e" + + "\x0001\x009A\x0001\u023f\x0001\u0240\x0001\x00EA\x0001\u0241\x0002\x009A\x0001\u0242\x0001\u0243" + + "\x0001\u0244\x0001\x009A\x0001\u0245\x0001\u0246\x0001\x009A\x0099\x0000\x000A\u0247\x0008\x0000" + + "\x0001\u016c\x0001\u016d\x0001\u016e\x0072\x0000\x0001\u0101\x0001\x00B6\x0001\u0248\x0018\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6\x0001\u0249" + + "\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6" + + "\x0001\u024a\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0001\x00B6\x0001\u024b\x0018\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x000C\x00B6\x0001\u024c\x000D\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u024d\x0018\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u024e\x0018\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u024f\x0018\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0011\x00B6\x0001\u0250\x0008\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6\x0001\u0251" + + "\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6" + + "\x0001\u0252\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0014\x00B6\x0001\u0253\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0001\u0157\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0014\x00B6\x0001\u024f\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0014\x00B6\x0001\u0254\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u0255\x0018\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0019\x00B6\x0001\u0256\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6\x0001\u0257\x0005\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u0258\x0018\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0259\x0019\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0011\x00B6\x0001\u025a" + + "\x0008\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0004\x00B6" + + "\x0001\u025b\x0015\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0014\x00B6\x0001\u025c\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0014\x00B6\x0001\u025d\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0004\x00B6\x0001\u025e\x0015\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0011\x00B6\x0001\u025f\x0008\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6\x0001\u0260\x0005\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\u0261" + + "\x0009\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0007\x00B6" + + "\x0001\u0262\x0002\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0263\x0019\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0264\x0019\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0265\x001A\u020d\x0001\u0266" + + "\x000A\u020d\x0009\x0000\x0001\u020e\x0073\x0000\x0029\u020e\x0001\u0267\x0003\x0000\x0003\u020e" + + "\x0001\u016e\x0003\x0000\x0001\u020e\x006F\x0000\x0004\u0268\x0002\x0000\x0001\u0268\x000D\x0000" + + "\x0001\u0268\x0006\x0000\x000A\u0268\x0001\u0269\x007C\x0000\x0001\u01ce\x001A\u01cf\x0001\u01ce" + + "\x000A\u01cf\x0001\u01d0\x0002\u01ce\x0001\u01d1\x0003\u01ce\x0001\u01d2\x0005\x0000\x0002\u01ce" + + "\x0004\x0000\x0001\u01ce\x0069\x0000\x0001\u01ce\x001A\u01cf\x0001\u0211\x000A\u01cf\x0001\u01d0" + + "\x0002\u01ce\x0001\u01d1\x0003\u01ce\x0001\u01d2\x0005\x0000\x0002\u01ce\x0004\x0000\x0001\u01ce" + + "\x0069\x0000\x001C\u01d0\x000A\u026a\x0001\x0000\x0002\u01d0\x0001\u0214\x0003\u01d0\x0001\u01d2" + + "\x0005\x0000\x0002\u01d0\x0004\x0000\x0001\u01d0\x0069\x0000\x0029\u0213\x0001\u026b\x0003\x0000" + + "\x0003\u0213\x0001\u016e\x0002\x0000\x0001\u026c\x0001\u0213\x006F\x0000\x0004\u026d\x0002\x0000" + + "\x0001\u026d\x000D\x0000\x0001\u026d\x0006\x0000\x000A\u026d\x007E\x0000\x0004\u01ce\x0002\x0000" + + "\x0001\u01ce\x000D\x0000\x0001\u01ce\x0006\x0000\x000A\u01ce\x007D\x0000\x0001\u026e\x001A\u0216" + + "\x0001\u026f\x000A\u0216\x0001\u0270\x0008\x0000\x0001\u0213\x0074\x0000\x0004\u0271\x0002\x0000" + + "\x0001\u0271\x000D\x0000\x0001\u0271\x0006\x0000\x000A\u0271\x0001\u0272\x00A2\x0000\x0001\u0273" + + "\x007C\x0000\x0001\u0274\x0025\u0219\x0001\x0000\x0003\u0219\x0001\x0000\x0002\u0219\x0001\u0275" + + "\x0003\u0219\x0003\x0000\x0001\u0219\x0004\x0000\x0002\u0219\x0002\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x000E\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0021\x0000" + + "\x0002\x0015\x0001\x0035\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0036\x0001\x0037\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\u0276\x001A\u021a\x0001\u0219\x000A\u0277\x0001\x0036" + + "\x0001\u0219\x0001\u0278\x0001\u0219\x0001\x0000\x0001\u0219\x0001\u0279\x0001\u0275\x0003\u0219" + + "\x0003\x0000\x0001\u0219\x0004\x0000\x0002\u0219\x0068\x0000\x0035\u021b\x0001\u027a\x0001\u021b" + + "\x0001\u027b\x0001\x0000\x0002\u021b\x0068\x0000\x0026\u021c\x0001\u021e\x0002\u021c\x0001\u021f" + + "\x0003\u021c\x0001\u0220\x0005\x0000\x0002\u021c\x0004\x0000\x0001\u021c\x0069\x0000\x0001\u027c" + + "\x001A\u021d\x0001\u027d\x000A\u021d\x0001\u027e\x0002\u021c\x0001\u021f\x0003\u021c\x0001\u0220" + + "\x0001\u016c\x0001\u016d\x0001\u016e\x0002\x0000\x0002\u021c\x0004\x0000\x0001\u021c\x0069\x0000" + + "\x0026\u021e\x0001\x0000\x0002\u021e\x0001\u027f\x0003\u021e\x0001\u0220\x0005\x0000\x0002\u021e" + + "\x0004\x0000\x0001\u021e\x006A\x0000\x0004\u0280\x0002\x0000\x0001\u0280\x000D\x0000\x0001\u0280" + + "\x0006\x0000\x000A\u0280\x007E\x0000\x001A\u0281\x0001\x0000\x000A\u0281\x000B\x0000\x0001\u0221" + + "\x000B\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A" + + "\x0003\x0000\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D" + + "\x0002\x0000\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011e\x001A\x001E\x0001\x0062\x000A\x00DB" + + "\x0001\u0154\x0001\x005F\x0001\x006B\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0001\u0143" + + "\x0001\u0144\x0001\u0145\x0002\x0000\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x0038\x0003\x0000\x0001\x0039\x0005\x0000\x0001\x003A\x0003\x0000" + + "\x0001\x003B\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x003C\x000E\x0000\x0001\x003D\x0002\x0000" + + "\x0001\x003E\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x003F\x0001\x0040\x0001\x0000" + + "\x0001\x0016\x0002\x0000\x0001\x0015\x0001\u011e\x001A\x001E\x0001\x0062\x0002\u0222\x0001\x00DB" + + "\x0002\u0222\x0002\x00DB\x0001\u0222\x0001\x00DB\x0001\u0222\x0001\u0154\x0001\x005F\x0001\x006B" + + "\x0001\x005F\x0001\x0000\x0002\x006C\x0001\x0060\x0001\u0143\x0001\u0144\x0001\u0145\x0002\x0000" + + "\x0001\x003F\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x0004\u0282\x0002\x0000\x0001\u0282" + + "\x000D\x0000\x0001\u0282\x0006\x0000\x000A\u0282\x0001\u01dc\x007D\x0000\x0004\u0283\x0002\x0000" + + "\x0001\u0283\x000D\x0000\x0001\u0283\x0006\x0000\x000A\u0283\x0001\u0284\x007D\x0000\x0004\u0285" + + "\x0002\x0000\x0001\u0285\x000D\x0000\x0001\u0285\x0006\x0000\x0001\u0286\x0002\u0287\x0001\u0286" + + "\x0005\u0287\x0001\u0288\x000C\x0000\x0001\u0126\x0071\x0000\x0004\u0289\x0002\x0000\x0001\u0289" + + "\x000D\x0000\x0001\u0289\x0006\x0000\x000A\u0289\x0001\u0228\x000B\x0000\x0001\u0126\x0071\x0000" + + "\x0004\u0285\x0002\x0000\x0001\u0285\x000D\x0000\x0001\u0285\x0006\x0000\x0001\u0286\x0002\u0287" + + "\x0001\u0286\x0005\u0287\x0001\u0288\x007D\x0000\x0001\u0168\x0004\u0289\x0002\x0000\x0001\u0289" + + "\x000D\x0000\x0001\u0289\x0006\x0000\x000A\u028a\x0001\u0228\x000B\x0000\x0001\u0126\x0070\x0000" + + "\x0001\u0168\x0004\u0289\x0002\x0000\x0001\u0289\x000D\x0000\x0001\u0289\x0006\x0000\x000A\u0289" + + "\x0001\u0228\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0289\x0002\x0000\x0001\u0289" + + "\x000D\x0000\x0001\u0289\x0006\x0000\x0002\u028a\x0001\u0289\x0002\u028a\x0002\u0289\x0001\u028a" + + "\x0001\u0289\x0001\u028a\x0001\u0228\x000B\x0000\x0001\u0126\x0096\x0000\x0001\u019d\x000B\x0000" + + "\x0001\u0126\x0070\x0000\x0001\u028b\x001B\x0000\x000A\u022e\x007D\x0000\x0001\u028b\x001B\x0000" + + "\x000A\u028c\x007D\x0000\x0001\u028b\x001B\x0000\x0001\u022e\x0001\u028d\x0001\u028c\x0002\u022e" + + "\x0002\u028c\x0001\u022e\x0001\u028c\x0001\u022e\x007D\x0000\x0001\x00E9\x000A\x009A\x0001\u016f" + + "\x000F\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0009\x009A\x0001\u028e\x0010\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0003\x009A\x0001\u028f\x0016\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0007\x009A\x0001\u0290\x0012\x009A\x0001\x00EA\x0004\x009A" + + "\x0001\u0291\x0005\x009A\x007D\x0000\x0001\x00E9\x0008\x009A\x0001\u0292\x0004\x009A\x0001\u0293" + + "\x0005\x009A\x0001\u0294\x0006\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0003\x009A" + + "\x0001\u0295\x0016\x009A\x0001\x00EA\x0002\x009A\x0001\u0296\x0007\x009A\x007D\x0000\x0001\x00E9" + + "\x0007\x009A\x0001\u0297\x0012\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0007\x009A" + + "\x0001\u0298\x0012\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0007\x009A\x0001\u0299" + + "\x0012\x009A\x0001\x00EA\x0003\x009A\x0001\u029a\x0006\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0005\x009A\x0001\u029b\x0004\x009A\x007D\x0000\x0001\x00E9\x0007\x009A\x0001\u029c" + + "\x0012\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0019\x009A\x0001\u029d\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u029e\x0018\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0007\x009A\x0001\u029f\x0001\x009A\x0001\u02a0\x0010\x009A\x0001\x00EA" + + "\x0009\x009A\x0001\u029b\x007D\x0000\x0001\x00E9\x0012\x009A\x0001\u02a1\x0007\x009A\x0001\x00EA" + + "\x0002\x009A\x0001\u02a2\x0007\x009A\x007D\x0000\x0001\x00E9\x0006\x009A\x0001\u02a3\x0001\u02a4" + + "\x0012\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0007\x009A\x0001\u02a5\x0005\x009A" + + "\x0001\u02a6\x000C\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0013\x009A\x0001\u02a7" + + "\x0006\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0003\x009A" + + "\x0001\u02a8\x0006\x009A\x007D\x0000\x0001\x00E9\x0003\x009A\x0001\u02a9\x0016\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x000F\x009A\x0001\u02aa\x000A\x009A\x0001\x00EA\x0001\u02ab" + + "\x0009\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\x009A\x0001\u029b\x0008\x009A" + + "\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\u02ac\x0009\x009A\x0099\x0000\x000A\u02ad" + + "\x0008\x0000\x0001\u016c\x0001\u016d\x0001\u016e\x0072\x0000\x0001\u0101\x0015\x00B6\x0001\u02ae" + + "\x0004\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u02af" + + "\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000D\x00B6" + + "\x0001\u02b0\x000C\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0011\x00B6\x0001\u02b1\x0008\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x000E\x00B6\x0001\u02b2\x0004\x00B6\x0001\u02b3\x0006\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0004\x00B6\x0001\u02b4\x0015\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0009\x00B6" + + "\x0001\u02b5\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0004\x00B6\x0001\u02b6\x0015\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0009\x00B6\x0001\u02b7\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6\x0001\u02b8" + + "\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u02b9" + + "\x0001\u02ba\x0001\x00B6\x0001\u02bb\x0010\x00B6\x0001\u02bc\x0005\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000E\x00B6\x0001\u02bd\x000B\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0009\x00B6\x0001\u02be\x000B\x00B6" + + "\x0001\u02bf\x0004\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0009\x00B6\x0001\u02c0\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0013\x00B6\x0001\u02c1\x0006\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0019\x00B6\x0001\u02c2\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0016\x00B6\x0001\u02c3\x0003\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0009\x00B6\x0001\u02c4\x0010\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0003\x00B6\x0001\u02c5\x0006\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0005\x00B6\x0001\u02c6\x0014\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0008\x00B6\x0001\u02c7\x0011\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u02c8" + + "\x0016\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0011\x00B6" + + "\x0001\u02c9\x0006\x00B6\x0001\u02ca\x0001\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x000A\x00B6\x0001\u02cb\x000F\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\x00B6\x0001\u02cc\x0008\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6\x0001\u02cd\x0005\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6\x0001\u02ce\x0005\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0004\x00B6\x0001\u02cf\x0005\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0005\x00B6" + + "\x0001\u02d0\x0013\x00B6\x0001\u02d1\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000" + + "\x001A\u020d\x0001\x0000\x000A\u020d\x007E\x0000\x001A\u020d\x0001\u0266\x000A\u020d\x007E\x0000" + + "\x0004\u02d2\x0002\x0000\x0001\u02d2\x000D\x0000\x0001\u02d2\x0006\x0000\x000A\u02d2\x007E\x0000" + + "\x0004\u02d3\x0002\x0000\x0001\u02d3\x000D\x0000\x0001\u02d3\x0006\x0000\x000A\u02d3\x0001\u02d4" + + "\x00A2\x0000\x0001\u02d5\x007C\x0000\x001C\u01d0\x000A\u02d6\x0001\x0000\x0002\u01d0\x0001\u0214" + + "\x0003\u01d0\x0001\u01d2\x0001\x0000\x0001\u0213\x0003\x0000\x0002\u01d0\x0004\x0000\x0001\u01d0" + + "\x006A\x0000\x0004\u02d7\x0002\x0000\x0001\u02d7\x000D\x0000\x0001\u02d7\x0006\x0000\x000A\u02d7" + + "\x008D\x0000\x0001\u02d8\x0093\x0000\x0004\u01d0\x0002\x0000\x0001\u01d0\x000D\x0000\x0001\u01d0" + + "\x0006\x0000\x000A\u01d0\x007E\x0000\x001A\u0216\x0001\x0000\x000A\u0216\x007E\x0000\x001A\u0216" + + "\x0001\u026f\x000A\u0216\x0099\x0000\x000A\u02d9\x007E\x0000\x0004\u02da\x0002\x0000\x0001\u02da" + + "\x000D\x0000\x0001\u02da\x0006\x0000\x000A\u02da\x0001\u0272\x007D\x0000\x0004\u02db\x0002\x0000" + + "\x0001\u02db\x000D\x0000\x0001\u02db\x0006\x0000\x000A\u02db\x0001\u02dc\x007D\x0000\x0004\u02dd" + + "\x0002\x0000\x0001\u02dd\x000D\x0000\x0001\u02dd\x0006\x0000\x0001\u02de\x0002\u02df\x0001\u02de" + + "\x0005\u02df\x0001\u02e0\x000C\x0000\x0001\u02e1\x0070\x0000\x0001\u0274\x0025\u0219\x0001\x0000" + + "\x0003\u0219\x0001\x0000\x0002\u0219\x0001\u0275\x0003\u0219\x0003\x0000\x0001\u0219\x0001\u021b" + + "\x0003\x0000\x0002\u0219\x0069\x0000\x001A\u02e2\x0001\x0000\x000A\u02e2\x000B\x0000\x0001\u02e3" + + "\x000B\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000\x0001\x007E\x0005\x0000\x0001\x007F" + + "\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0081\x000E\x0000\x0001\x0082" + + "\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036\x0007\x0000\x0001\x0036\x0002\x0000" + + "\x0001\x0015\x0001\u0274\x001A\u021a\x000B\u0219\x0001\x0000\x0003\u0219\x0001\x0000\x0002\u0219" + + "\x0001\u0275\x0003\u0219\x0003\x0000\x0001\u0219\x0001\u021b\x0003\x0000\x0002\u0219\x0002\x0000" + + "\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0001\x0000\x0001\x0077\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0078\x0009\x0000\x0001\x0031\x0002\x0000\x0001\x0079\x000E\x0000\x0001\x007A\x0002\x0000" + + "\x0001\x007B\x0021\x0000\x0001\x0015\x0002\x0035\x0002\x0000\x0002\x007C\x0001\x0037\x0001\x0000" + + "\x0001\x0035\x0002\x0000\x0001\x0015\x0001\u02e4\x001A\u021a\x0001\u0219\x000A\u0277\x0001\x0000" + + "\x0001\u0219\x0001\u0278\x0001\u0219\x0001\x0000\x0002\u02e5\x0001\u0275\x0003\u0219\x0002\x0000" + + "\x0001\x007C\x0001\u0219\x0004\x0000\x0002\u0219\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x0084" + + "\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x0085\x0009\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0086\x000E\x0000\x0001\x0087\x0002\x0000\x0001\x0088\x0011\x0000\x0001\x004C" + + "\x000F\x0000\x0001\x0015\x0001\x0037\x0001\x0035\x0001\x004E\x0003\x0000\x0001\x0037\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0015\x0001\u0274\x001A\u021a\x0001\u0219\x000A\u0277\x0001\x0000" + + "\x0001\u0219\x0001\u0278\x0001\u0219\x0001\x0000\x0002\u0219\x0001\u0275\x0003\u0219\x0003\x0000" + + "\x0001\u0219\x0004\x0000\x0002\u0219\x0002\x0000\x0001\x0028\x0001\x0000\x0001\x0029\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0001\x0000\x0001\x007D\x0003\x0000" + + "\x0001\x007E\x0005\x0000\x0001\x007F\x0003\x0000\x0001\x0080\x0009\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0081\x000E\x0000\x0001\x0082\x0002\x0000\x0001\x0083\x0021\x0000\x0001\x0015\x0001\x0036" + + "\x0007\x0000\x0001\x0036\x0002\x0000\x0001\x0015\x0001\u0274\x001A\u021a\x000B\u0219\x0001\x0000" + + "\x0003\u0219\x0001\x0000\x0002\u0219\x0001\u0275\x0003\u0219\x0003\x0000\x0001\u0219\x0004\x0000" + + "\x0002\u0219\x0068\x0000\x0001\u02e6\x002C\x0000\x0001\u0275\x0075\x0000\x003C\u021b\x0067\x0000" + + "\x0001\u021c\x001A\u021d\x0001\u021c\x000A\u021d\x0001\u021e\x0002\u021c\x0001\u021f\x0003\u021c" + + "\x0001\u0220\x0005\x0000\x0002\u021c\x0004\x0000\x0001\u021c\x0069\x0000\x0001\u021c\x001A\u021d" + + "\x0001\u027d\x000A\u021d\x0001\u021e\x0002\u021c\x0001\u021f\x0003\u021c\x0001\u0220\x0005\x0000" + + "\x0002\u021c\x0004\x0000\x0001\u021c\x0069\x0000\x001C\u021e\x000A\u02e7\x0001\x0000\x0002\u021e" + + "\x0001\u027f\x0003\u021e\x0001\u0220\x0005\x0000\x0002\u021e\x0004\x0000\x0001\u021e\x006A\x0000" + + "\x0004\u02e8\x0002\x0000\x0001\u02e8\x000D\x0000\x0001\u02e8\x0006\x0000\x000A\u02e8\x007E\x0000" + + "\x0004\u021c\x0002\x0000\x0001\u021c\x000D\x0000\x0001\u021c\x0006\x0000\x000A\u021c\x007D\x0000" + + "\x0001\u02e9\x001A\u0281\x0001\u02ea\x000A\u0281\x0001\u0154\x0007\x0000\x0001\u016c\x0001\u016d" + + "\x0001\u016e\x0098\x0000\x0001\u01dc\x007D\x0000\x0004\u02eb\x0002\x0000\x0001\u02eb\x000D\x0000" + + "\x0001\u02eb\x0006\x0000\x000A\u02eb\x0001\u0284\x007D\x0000\x0004\u02ec\x0002\x0000\x0001\u02ec" + + "\x000D\x0000\x0001\u02ec\x0006\x0000\x000A\u02ec\x0001\u02ed\x007D\x0000\x0004\u02ee\x0002\x0000" + + "\x0001\u02ee\x000D\x0000\x0001\u02ee\x0006\x0000\x000A\u02ee\x0001\u02ef\x000B\x0000\x0001\u0126" + + "\x0070\x0000\x0001\u0168\x0004\u02ee\x0002\x0000\x0001\u02ee\x000D\x0000\x0001\u02ee\x0006\x0000" + + "\x000A\u02f0\x0001\u02ef\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u02ee\x0002\x0000" + + "\x0001\u02ee\x000D\x0000\x0001\u02ee\x0006\x0000\x000A\u02f1\x0001\u02ef\x000B\x0000\x0001\u0126" + + "\x0070\x0000\x0001\u0168\x0004\u02ee\x0002\x0000\x0001\u02ee\x000D\x0000\x0001\u02ee\x0006\x0000" + + "\x0001\u02f0\x0001\u02f2\x0001\u02f1\x0002\u02f0\x0002\u02f1\x0001\u02f0\x0001\u02f1\x0001\u02f0" + + "\x0001\u02ef\x000B\x0000\x0001\u0126\x0071\x0000\x0004\u02f3\x0002\x0000\x0001\u02f3\x000D\x0000" + + "\x0001\u02f3\x0006\x0000\x000A\u02f3\x0001\u0228\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168" + + "\x0004\u02f3\x0002\x0000\x0001\u02f3\x000D\x0000\x0001\u02f3\x0006\x0000\x000A\u02f3\x0001\u0228" + + "\x000B\x0000\x0001\u0126\x008C\x0000\x0001\u02f4\x0002\u02f5\x0001\u02f4\x0005\u02f5\x0001\u02f6" + + "\x007D\x0000\x0001\u028b\x00A2\x0000\x0001\u028b\x001B\x0000\x0002\u028c\x0001\x0000\x0002\u028c" + + "\x0002\x0000\x0001\u028c\x0001\x0000\x0001\u028c\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u02f7" + + "\x0018\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u02f8\x0005\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u02f9\x0005\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u02fa\x0018\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x000C\x009A\x0001\u02fb\x000D\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0001\x009A\x0001\u02fc\x0018\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0001\x009A\x0001\u02fd\x0018\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\x009A" + + "\x0001\u02fe\x0018\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0011\x009A\x0001\u02ff" + + "\x0008\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u0300\x0005\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u0301\x0005\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u0302\x0005\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0001\u01ac\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0014\x009A\x0001\u02fe\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0014\x009A" + + "\x0001\u0303\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u0304" + + "\x0018\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0019\x009A\x0001\u0305\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u0306\x0005\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u0307\x0018\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0001\u0308\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0011\x009A" + + "\x0001\u0309\x0008\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0004\x009A\x0001\u030a" + + "\x0015\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u030b\x0005\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u030c\x0005\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0004\x009A\x0001\u030d\x0015\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0011\x009A\x0001\u030e\x0008\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0014\x009A\x0001\u030f\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0001\u0310\x0009\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x0007\x009A\x0001\u0311\x0002\x009A\x007D\x0000\x0001\x00E9\x0001\u0312\x0019\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u0313\x0019\x009A\x0001\x00EA\x000A\x009A\x00AB\x0000" + + "\x0001\u016c\x0001\u016d\x0001\u016e\x0072\x0000\x0001\u0101\x0001\x00B6\x0001\u0314\x0018\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0001\u0315\x0009\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0006\x00B6\x0001\u0316" + + "\x0013\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6" + + "\x0001\x0062\x0007\x00B6\x0001\u0317\x0002\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0008\x00B6\x0001\u015b\x0001\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0005\x00B6\x0001\u015b\x0004\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0016\x00B6\x0001\u0318\x0003\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u0319\x0018\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0016\x00B6\x0001\u031a\x0003\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\x00B6" + + "\x0001\u031b\x0008\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u031c\x0019\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u031d\x0017\x00B6" + + "\x0001\u031e\x0001\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0001\u031f\x0009\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0004\x00B6\x0001\u0320\x0015\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0015\x00B6\x0001\u0321\x0004\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\u0322\x0009\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0002\x00B6\x0001\x00CA\x0007\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0003\x00B6\x0001\u0323\x0006\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0324\x0001\x00B6\x0001\u0325\x0017\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0317\x0019\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0002\x00B6\x0001\u0326\x0007\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6" + + "\x0001\x0062\x0002\x00B6\x0001\u0327\x0007\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x000D\x00B6\x0001\u0328\x000C\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0005\x00B6\x0001\u0329\x0004\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0007\x00B6\x0001\u032a\x0002\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0009\x00B6\x0001\u032b\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u032c\x0018\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0003\x00B6\x0001\u032d" + + "\x0006\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\x00B6" + + "\x0001\u032e\x0008\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0001\x00B6\x0001\u032f\x0008\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6" + + "\x0001\u0330\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0006\x00B6\x0001\u0331\x0003\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0003\x00B6\x0001\u0332\x0006\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0001\u0323\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0009\x00B6\x0001\u0333\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0015\x00B6\x0001\u0334\x0004\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0069\x0000\x0004\u020e\x0002\x0000\x0001\u020e\x000D\x0000\x0001\u020e\x0006\x0000" + + "\x000A\u020e\x007E\x0000\x0004\u0335\x0002\x0000\x0001\u0335\x000D\x0000\x0001\u0335\x0006\x0000" + + "\x000A\u0335\x0001\u02d4\x007D\x0000\x0004\u0336\x0002\x0000\x0001\u0336\x000D\x0000\x0001\u0336" + + "\x0006\x0000\x000A\u0336\x0001\u0337\x007D\x0000\x0004\u0338\x0002\x0000\x0001\u0338\x000D\x0000" + + "\x0001\u0338\x0006\x0000\x0001\u0339\x0002\u033a\x0001\u0339\x0005\u033a\x0001\u033b\x000C\x0000" + + "\x0001\u033c\x0070\x0000\x001C\u01d0\x000A\u033d\x0001\x0000\x0002\u01d0\x0001\u0214\x0003\u01d0" + + "\x0001\u01d2\x0001\x0000\x0001\u0213\x0003\x0000\x0002\u01d0\x0004\x0000\x0001\u01d0\x006A\x0000" + + "\x0004\u0213\x0002\x0000\x0001\u0213\x000D\x0000\x0001\u0213\x0006\x0000\x000A\u0213\x0096\x0000" + + "\x0001\u033e\x00A5\x0000\x000A\u033f\x0009\x0000\x0001\u0213\x0074\x0000\x0004\u0340\x0002\x0000" + + "\x0001\u0340\x000D\x0000\x0001\u0340\x0006\x0000\x000A\u0340\x0001\u0272\x007D\x0000\x0004\u0341" + + "\x0002\x0000\x0001\u0341\x000D\x0000\x0001\u0341\x0006\x0000\x000A\u0341\x0001\u0342\x007D\x0000" + + "\x0004\u0343\x0002\x0000\x0001\u0343\x000D\x0000\x0001\u0343\x0006\x0000\x0001\u0344\x0002\u0345" + + "\x0001\u0344\x0005\u0345\x0001\u0346\x000C\x0000\x0001\u02e1\x0071\x0000\x0004\u0347\x0002\x0000" + + "\x0001\u0347\x000D\x0000\x0001\u0347\x0006\x0000\x000A\u0347\x0001\u0348\x000B\x0000\x0001\u02e1" + + "\x0070\x0000\x0001\u0349\x0004\u0347\x0002\x0000\x0001\u0347\x000D\x0000\x0001\u0347\x0006\x0000" + + "\x000A\u034a\x0001\u0348\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u0347\x0002\x0000" + + "\x0001\u0347\x000D\x0000\x0001\u0347\x0006\x0000\x000A\u034b\x0001\u0348\x000B\x0000\x0001\u02e1" + + "\x0070\x0000\x0001\u0349\x0004\u0347\x0002\x0000\x0001\u0347\x000D\x0000\x0001\u0347\x0006\x0000" + + "\x0001\u034a\x0001\u034c\x0001\u034b\x0002\u034a\x0002\u034b\x0001\u034a\x0001\u034b\x0001\u034a" + + "\x0001\u0348\x000B\x0000\x0001\u02e1\x0096\x0000\x0001\u0270\x0008\x0000\x0001\u0213\x0073\x0000" + + "\x0001\u034d\x001A\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0031\u02e3\x0001\x0000\x0001\u034f" + + "\x0004\u02e3\x0001\u0350\x0001\x0000\x0003\u02e3\x000B\x0000\x0001\x00E2\x0003\x0000\x0001\x00E3" + + "\x0005\x0000\x0001\x00E4\x0003\x0000\x0001\x00E5\x000C\x0000\x0001\x00E6\x000E\x0000\x0001\x00E7" + + "\x0002\x0000\x0001\x00E8\x0022\x0000\x0001\x007C\x0001\x0035\x0006\x0000\x0001\x007C\x0003\x0000" + + "\x0001\u0274\x001B\u0219\x000A\u0277\x0001\x0000\x0003\u0219\x0001\x0000\x0002\u0219\x0001\u0275" + + "\x0003\u0219\x0003\x0000\x0001\u0219\x0001\u021b\x0003\x0000\x0002\u0219\x000C\x0000\x0001\x00E2" + + "\x0003\x0000\x0001\x00E3\x0005\x0000\x0001\x00E4\x0003\x0000\x0001\x00E5\x000C\x0000\x0001\x00E6" + + "\x000E\x0000\x0001\x00E7\x0002\x0000\x0001\x00E8\x0022\x0000\x0001\x007C\x0001\x0035\x0006\x0000" + + "\x0001\x007C\x0003\x0000\x0001\u0274\x001B\u0219\x000A\u0277\x0001\x0000\x0003\u0219\x0001\x0000" + + "\x0002\u0219\x0001\u0275\x0003\u0219\x0003\x0000\x0001\u0219\x0004\x0000\x0002\u0219\x0068\x0000" + + "\x0026\u0219\x0001\x0000\x0003\u0219\x0001\x0000\x0002\u0219\x0001\x0000\x0003\u0219\x0003\x0000" + + "\x0001\u0219\x0001\u021b\x0003\x0000\x0002\u0219\x0068\x0000\x001C\u021e\x000A\u0351\x0001\x0000" + + "\x0002\u021e\x0001\u027f\x0003\u021e\x0001\u0220\x0001\u016c\x0001\u016d\x0001\u016e\x0002\x0000" + + "\x0002\u021e\x0004\x0000\x0001\u021e\x006A\x0000\x0004\u021e\x0002\x0000\x0001\u021e\x000D\x0000" + + "\x0001\u021e\x0006\x0000\x000A\u021e\x007E\x0000\x001A\u0281\x0001\x0000\x000A\u0281\x007E\x0000" + + "\x001A\u0281\x0001\u02ea\x000A\u0281\x007E\x0000\x0004\u0352\x0002\x0000\x0001\u0352\x000D\x0000" + + "\x0001\u0352\x0006\x0000\x000A\u0352\x0001\u0284\x007D\x0000\x0004\u0353\x0002\x0000\x0001\u0353" + + "\x000D\x0000\x0001\u0353\x0006\x0000\x000A\u0353\x0001\u0354\x007D\x0000\x0004\u0355\x0002\x0000" + + "\x0001\u0355\x000D\x0000\x0001\u0355\x0006\x0000\x0001\u0356\x0002\u0357\x0001\u0356\x0005\u0357" + + "\x0001\u0358\x000C\x0000\x0001\u0126\x0071\x0000\x0004\u0359\x0002\x0000\x0001\u0359\x000D\x0000" + + "\x0001\u0359\x0006\x0000\x000A\u0359\x0001\u02ef\x000B\x0000\x0001\u0126\x0071\x0000\x0004\u0355" + + "\x0002\x0000\x0001\u0355\x000D\x0000\x0001\u0355\x0006\x0000\x0001\u0356\x0002\u0357\x0001\u0356" + + "\x0005\u0357\x0001\u0358\x007D\x0000\x0001\u0168\x0004\u0359\x0002\x0000\x0001\u0359\x000D\x0000" + + "\x0001\u0359\x0006\x0000\x000A\u035a\x0001\u02ef\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168" + + "\x0004\u0359\x0002\x0000\x0001\u0359\x000D\x0000\x0001\u0359\x0006\x0000\x000A\u0359\x0001\u02ef" + + "\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0359\x0002\x0000\x0001\u0359\x000D\x0000" + + "\x0001\u0359\x0006\x0000\x0002\u035a\x0001\u0359\x0002\u035a\x0002\u0359\x0001\u035a\x0001\u0359" + + "\x0001\u035a\x0001\u02ef\x000B\x0000\x0001\u0126\x0096\x0000\x0001\u0228\x000B\x0000\x0001\u0126" + + "\x008C\x0000\x000A\u02f5\x000C\x0000\x0001\u0126\x008C\x0000\x000A\u035b\x000C\x0000\x0001\u0126" + + "\x008C\x0000\x0001\u02f5\x0001\u035c\x0001\u035b\x0002\u02f5\x0002\u035b\x0001\u02f5\x0001\u035b" + + "\x0001\u02f5\x000C\x0000\x0001\u0126\x0070\x0000\x0001\x00E9\x0015\x009A\x0001\u035d\x0004\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u035e\x0019\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x000D\x009A\x0001\u035f\x000C\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0011\x009A\x0001\u0360\x0008\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x000E\x009A\x0001\u0361\x0004\x009A\x0001\u0362\x0006\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0004\x009A\x0001\u0363\x0015\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0009\x009A\x0001\u0364\x007D\x0000\x0001\x00E9\x0004\x009A\x0001\u0365" + + "\x0015\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0009\x009A" + + "\x0001\u0366\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u0367\x0005\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0001\u0368\x0001\u0369\x0001\x009A\x0001\u036a\x0010\x009A\x0001\u036b" + + "\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x000E\x009A\x0001\u036c\x000B\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0009\x009A\x0001\u036d\x000B\x009A\x0001\u036e" + + "\x0004\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0009\x009A" + + "\x0001\u036f\x007D\x0000\x0001\x00E9\x0013\x009A\x0001\u0370\x0006\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0019\x009A\x0001\u0371\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0016\x009A\x0001\u0372\x0003\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0009\x009A" + + "\x0001\u0373\x0010\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x0003\x009A\x0001\u0374\x0006\x009A\x007D\x0000\x0001\x00E9\x0005\x009A\x0001\u0375\x0014\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0008\x009A\x0001\u0376\x0011\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0003\x009A\x0001\u0377\x0016\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0011\x009A\x0001\u0378\x0006\x009A\x0001\u0379\x0001\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x000A\x009A\x0001\u037a\x000F\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\x009A\x0001\u037b\x0008\x009A\x007D\x0000" + + "\x0001\x00E9\x0014\x009A\x0001\u037c\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0014\x009A\x0001\u037d\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0004\x009A\x0001\u037e\x0005\x009A\x007D\x0000\x0001\x00E9\x0005\x009A\x0001\u037f" + + "\x0013\x009A\x0001\u0380\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0001\u0381\x0009\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0382\x0019\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0008\x00B6\x0001\u0383\x0001\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0015\x00B6" + + "\x0001\u0107\x0004\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0005\x00B6\x0001\u0384\x0004\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0005\x00B6\x0001\u0385\x0004\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0005\x00B6\x0001\u0323\x0004\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0003\x00B6\x0001\u0382\x0006\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000F\x00B6\x0001\u0386\x000A\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000A\x00B6\x0001\u0387\x000F\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0015\x00B6\x0001\u0388" + + "\x0004\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0389" + + "\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000D\x00B6" + + "\x0001\u038a\x000C\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0003\x00B6\x0001\u038b\x0006\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0002\x00B6\x0001\u0317\x0017\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u0107\x0018\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0009\x00B6\x0001\u038c\x0010\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0009\x00B6\x0001\u038d\x0010\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u038e\x0019\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u038f\x0019\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0002\x00B6\x0001\u0390\x0017\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0004\x00B6\x0001\u010e\x0005\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0008\x00B6" + + "\x0001\u0391\x0011\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0001\u0392\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0015\x00B6\x0001\u0393\x0004\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0004\x00B6\x0001\u0382\x0005\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0006\x00B6\x0001\u0382\x0003\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0002\x00B6\x0001\u0382\x0007\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000E\x00B6\x0001\u0394\x000B\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\u0395" + + "\x0009\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0003\x00B6" + + "\x0001\u0396\x0006\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0003\x00B6\x0001\x00CA\x0006\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6" + + "\x0001\u0397\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x0004\u0398" + + "\x0002\x0000\x0001\u0398\x000D\x0000\x0001\u0398\x0006\x0000\x000A\u0398\x0001\u02d4\x007D\x0000" + + "\x0004\u0399\x0002\x0000\x0001\u0399\x000D\x0000\x0001\u0399\x0006\x0000\x000A\u0399\x0001\u039a" + + "\x007D\x0000\x0004\u039b\x0002\x0000\x0001\u039b\x000D\x0000\x0001\u039b\x0006\x0000\x0001\u039c" + + "\x0002\u039d\x0001\u039c\x0005\u039d\x0001\u039e\x000C\x0000\x0001\u033c\x0071\x0000\x0004\u039f" + + "\x0002\x0000\x0001\u039f\x000D\x0000\x0001\u039f\x0006\x0000\x000A\u039f\x0001\u03a0\x000B\x0000" + + "\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u039f\x0002\x0000\x0001\u039f\x000D\x0000\x0001\u039f" + + "\x0006\x0000\x000A\u03a2\x0001\u03a0\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u039f" + + "\x0002\x0000\x0001\u039f\x000D\x0000\x0001\u039f\x0006\x0000\x000A\u03a3\x0001\u03a0\x000B\x0000" + + "\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u039f\x0002\x0000\x0001\u039f\x000D\x0000\x0001\u039f" + + "\x0006\x0000\x0001\u03a2\x0001\u03a4\x0001\u03a3\x0002\u03a2\x0002\u03a3\x0001\u03a2\x0001\u03a3" + + "\x0001\u03a2\x0001\u03a0\x000B\x0000\x0001\u033c\x009F\x0000\x0001\u020e\x0073\x0000\x001C\u01d0" + + "\x000A\u03a5\x0001\x0000\x0002\u01d0\x0001\u0214\x0003\u01d0\x0001\u01d2\x0001\x0000\x0001\u0213" + + "\x0003\x0000\x0002\u01d0\x0004\x0000\x0001\u01d0\x0077\x0000\x0001\u03a6\x00B0\x0000\x000A\u03a7" + + "\x0009\x0000\x0001\u0213\x0099\x0000\x0001\u0272\x007D\x0000\x0004\u03a8\x0002\x0000\x0001\u03a8" + + "\x000D\x0000\x0001\u03a8\x0006\x0000\x000A\u03a8\x0001\u0342\x007D\x0000\x0004\u03a9\x0002\x0000" + + "\x0001\u03a9\x000D\x0000\x0001\u03a9\x0006\x0000\x000A\u03a9\x0001\u03aa\x007D\x0000\x0004\u03ab" + + "\x0002\x0000\x0001\u03ab\x000D\x0000\x0001\u03ab\x0006\x0000\x000A\u03ab\x0001\u03ac\x000B\x0000" + + "\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u03ab\x0002\x0000\x0001\u03ab\x000D\x0000\x0001\u03ab" + + "\x0006\x0000\x000A\u03ad\x0001\u03ac\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u03ab" + + "\x0002\x0000\x0001\u03ab\x000D\x0000\x0001\u03ab\x0006\x0000\x000A\u03ae\x0001\u03ac\x000B\x0000" + + "\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u03ab\x0002\x0000\x0001\u03ab\x000D\x0000\x0001\u03ab" + + "\x0006\x0000\x0001\u03ad\x0001\u03af\x0001\u03ae\x0002\u03ad\x0002\u03ae\x0001\u03ad\x0001\u03ae" + + "\x0001\u03ad\x0001\u03ac\x000B\x0000\x0001\u02e1\x0071\x0000\x0004\u03b0\x0002\x0000\x0001\u03b0" + + "\x000D\x0000\x0001\u03b0\x0006\x0000\x000A\u03b0\x0001\u0348\x000B\x0000\x0001\u02e1\x0071\x0000" + + "\x0004\u0343\x0002\x0000\x0001\u0343\x000D\x0000\x0001\u0343\x0006\x0000\x0001\u0344\x0002\u0345" + + "\x0001\u0344\x0005\u0345\x0001\u0346\x0099\x0000\x0001\u03b1\x0002\u03b2\x0001\u03b1\x0005\u03b2" + + "\x0001\u03b3\x007D\x0000\x0001\u0349\x0004\u03b0\x0002\x0000\x0001\u03b0\x000D\x0000\x0001\u03b0" + + "\x0006\x0000\x000A\u03b4\x0001\u0348\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u03b0" + + "\x0002\x0000\x0001\u03b0\x000D\x0000\x0001\u03b0\x0006\x0000\x000A\u03b0\x0001\u0348\x000B\x0000" + + "\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u03b0\x0002\x0000\x0001\u03b0\x000D\x0000\x0001\u03b0" + + "\x0006\x0000\x0002\u03b4\x0001\u03b0\x0002\u03b4\x0002\u03b0\x0001\u03b4\x0001\u03b0\x0001\u03b4" + + "\x0001\u0348\x000B\x0000\x0001\u02e1\x0071\x0000\x0001\u03b5\x0001\u03b6\x0001\u03b7\x0001\u03b8" + + "\x0001\u03b9\x0001\u03ba\x0001\u03bb\x0001\u03bc\x0001\u03bd\x0001\u03be\x0001\u03bf\x0001\u03c0" + + "\x0001\u03c1\x0001\u03c2\x0001\u03c3\x0001\u03c4\x0001\u03c5\x0001\u03c6\x0001\u03c7\x0001\u03c8" + + "\x0001\u03c9\x0001\u03ca\x0001\u03cb\x0001\u03cc\x0001\u03cd\x0001\u03ce\x0001\x0000\x000A\u02e2" + + "\x007E\x0000\x001A\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x003C\u02e3\x0067\x0000\x001C\u021e" + + "\x000A\u03cf\x0001\x0000\x0002\u021e\x0001\u027f\x0003\u021e\x0001\u0220\x0001\u016c\x0001\u016d" + + "\x0001\u016e\x0002\x0000\x0002\u021e\x0004\x0000\x0001\u021e\x008F\x0000\x0001\u0284\x007D\x0000" + + "\x0004\u03d0\x0002\x0000\x0001\u03d0\x000D\x0000\x0001\u03d0\x0006\x0000\x000A\u03d0\x0001\u0354" + + "\x007D\x0000\x0004\u03d1\x0002\x0000\x0001\u03d1\x000D\x0000\x0001\u03d1\x0006\x0000\x000A\u03d1" + + "\x0001\u03d2\x007D\x0000\x0004\u03d3\x0002\x0000\x0001\u03d3\x000D\x0000\x0001\u03d3\x0006\x0000" + + "\x000A\u03d3\x0001\u03d4\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u03d3\x0002\x0000" + + "\x0001\u03d3\x000D\x0000\x0001\u03d3\x0006\x0000\x000A\u03d5\x0001\u03d4\x000B\x0000\x0001\u0126" + + "\x0070\x0000\x0001\u0168\x0004\u03d3\x0002\x0000\x0001\u03d3\x000D\x0000\x0001\u03d3\x0006\x0000" + + "\x000A\u03d6\x0001\u03d4\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u03d3\x0002\x0000" + + "\x0001\u03d3\x000D\x0000\x0001\u03d3\x0006\x0000\x0001\u03d5\x0001\u03d7\x0001\u03d6\x0002\u03d5" + + "\x0002\u03d6\x0001\u03d5\x0001\u03d6\x0001\u03d5\x0001\u03d4\x000B\x0000\x0001\u0126\x0071\x0000" + + "\x0004\u03d8\x0002\x0000\x0001\u03d8\x000D\x0000\x0001\u03d8\x0006\x0000\x000A\u03d8\x0001\u02ef" + + "\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u03d8\x0002\x0000\x0001\u03d8\x000D\x0000" + + "\x0001\u03d8\x0006\x0000\x000A\u03d8\x0001\u02ef\x000B\x0000\x0001\u0126\x00A2\x0000\x0001\u0126" + + "\x008C\x0000\x0002\u035b\x0001\x0000\x0002\u035b\x0002\x0000\x0001\u035b\x0001\x0000\x0001\u035b" + + "\x000C\x0000\x0001\u0126\x0070\x0000\x0001\x00E9\x0001\x009A\x0001\u03d9\x0018\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\u03da\x0009\x009A\x007D\x0000" + + "\x0001\x00E9\x0006\x009A\x0001\u03db\x0013\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0007\x009A\x0001\u03dc\x0002\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0008\x009A\x0001\u01b1\x0001\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x0005\x009A\x0001\u01b1\x0004\x009A\x007D\x0000\x0001\x00E9\x0016\x009A\x0001\u03dd\x0003\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u03de\x0018\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0016\x009A\x0001\u03df\x0003\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\x009A\x0001\u03e0\x0008\x009A\x007D\x0000" + + "\x0001\x00E9\x0001\u03e1\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u03e2" + + "\x0017\x009A\x0001\u03e3\x0001\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0001\u03e4\x0009\x009A\x007D\x0000\x0001\x00E9\x0004\x009A\x0001\u03e5\x0015\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0015\x009A\x0001\u03e6\x0004\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\u03e7\x0009\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0002\x009A\x0001\u0133\x0007\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0003\x009A\x0001\u03e8\x0006\x009A\x007D\x0000\x0001\x00E9\x0001\u03e9" + + "\x0001\x009A\x0001\u03ea\x0017\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u03dc" + + "\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0002\x009A" + + "\x0001\u03eb\x0007\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0002\x009A\x0001\u03ec" + + "\x0007\x009A\x007D\x0000\x0001\x00E9\x000D\x009A\x0001\u03ed\x000C\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0005\x009A\x0001\u03ee\x0004\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0007\x009A\x0001\u03ef\x0002\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0009\x009A\x0001\u03f0\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u03f1" + + "\x0018\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0003\x009A" + + "\x0001\u03f2\x0006\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\x009A\x0001\u03f3" + + "\x0008\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\x009A\x0001\u03f4\x0008\x009A" + + "\x007D\x0000\x0001\x00E9\x0014\x009A\x0001\u03f5\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0006\x009A\x0001\u03f6\x0003\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0003\x009A\x0001\u03f7\x0006\x009A\x007D\x0000\x0001\x00E9\x0001\u03e8" + + "\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0009\x009A" + + "\x0001\u03f8\x007D\x0000\x0001\x00E9\x0015\x009A\x0001\u03f9\x0004\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\u0101\x0003\x00B6\x0001\u03fa\x0016\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0002\x00B6\x0001\u0107\x0017\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0006\x00B6\x0001\u0112\x0013\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u032d\x0018\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u03fb" + + "\x0016\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6" + + "\x0001\x0062\x0003\x00B6\x0001\u03fc\x0006\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0006\x00B6\x0001\u03fd\x0003\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0006\x00B6\x0001\u03fe\x0003\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0005\x00B6\x0001\u03ff\x0004\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0007\x00B6\x0001\u0400\x0002\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0401\x0019\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0004\x00B6\x0001\u0402" + + "\x0005\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0004\x00B6" + + "\x0001\u0403\x0005\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0016\x00B6\x0001\u0404" + + "\x0003\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0018\x00B6" + + "\x0001\u0405\x0001\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0009\x00B6\x0001\u0156\x0010\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0002\x00B6\x0001\u0406\x0007\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x000A\x00B6\x0001\u0407\x000F\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x000F\x00B6\x0001\u010f\x000A\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0004\x00B6\x0001\u0408" + + "\x0005\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0006\x00B6" + + "\x0001\u0159\x0003\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0018\x00B6\x0001\u0409" + + "\x0001\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0018\x00B6" + + "\x0001\u040a\x0001\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x008E\x0000\x0001\u02d4" + + "\x007D\x0000\x0004\u040b\x0002\x0000\x0001\u040b\x000D\x0000\x0001\u040b\x0006\x0000\x000A\u040b" + + "\x0001\u039a\x007D\x0000\x0004\u040c\x0002\x0000\x0001\u040c\x000D\x0000\x0001\u040c\x0006\x0000" + + "\x000A\u040c\x0001\u040d\x007D\x0000\x0004\u040e\x0002\x0000\x0001\u040e\x000D\x0000\x0001\u040e" + + "\x0006\x0000\x000A\u040e\x0001\u040f\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u040e" + + "\x0002\x0000\x0001\u040e\x000D\x0000\x0001\u040e\x0006\x0000\x000A\u0410\x0001\u040f\x000B\x0000" + + "\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u040e\x0002\x0000\x0001\u040e\x000D\x0000\x0001\u040e" + + "\x0006\x0000\x000A\u0411\x0001\u040f\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u040e" + + "\x0002\x0000\x0001\u040e\x000D\x0000\x0001\u040e\x0006\x0000\x0001\u0410\x0001\u0412\x0001\u0411" + + "\x0002\u0410\x0002\u0411\x0001\u0410\x0001\u0411\x0001\u0410\x0001\u040f\x000B\x0000\x0001\u033c" + + "\x0071\x0000\x0004\u0413\x0002\x0000\x0001\u0413\x000D\x0000\x0001\u0413\x0006\x0000\x000A\u0413" + + "\x0001\u03a0\x000B\x0000\x0001\u033c\x0071\x0000\x0004\u039b\x0002\x0000\x0001\u039b\x000D\x0000" + + "\x0001\u039b\x0006\x0000\x0001\u039c\x0002\u039d\x0001\u039c\x0005\u039d\x0001\u039e\x0099\x0000" + + "\x0001\u0414\x0002\u0415\x0001\u0414\x0005\u0415\x0001\u0416\x007D\x0000\x0001\u03a1\x0004\u0413" + + "\x0002\x0000\x0001\u0413\x000D\x0000\x0001\u0413\x0006\x0000\x000A\u0417\x0001\u03a0\x000B\x0000" + + "\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u0413\x0002\x0000\x0001\u0413\x000D\x0000\x0001\u0413" + + "\x0006\x0000\x000A\u0413\x0001\u03a0\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u0413" + + "\x0002\x0000\x0001\u0413\x000D\x0000\x0001\u0413\x0006\x0000\x0002\u0417\x0001\u0413\x0002\u0417" + + "\x0002\u0413\x0001\u0417\x0001\u0413\x0001\u0417\x0001\u03a0\x000B\x0000\x0001\u033c\x0070\x0000" + + "\x001C\u01d0\x000A\u0418\x0001\x0000\x0002\u01d0\x0001\u0214\x0003\u01d0\x0001\u01d2\x0001\x0000" + + "\x0001\u0213\x0003\x0000\x0002\u01d0\x0004\x0000\x0001\u01d0\x006D\x0000\x0001\u0419\x00BA\x0000" + + "\x000A\u041a\x0009\x0000\x0001\u0213\x0074\x0000\x0004\u041b\x0002\x0000\x0001\u041b\x000D\x0000" + + "\x0001\u041b\x0006\x0000\x000A\u041b\x0001\u0342\x007D\x0000\x0004\u041c\x0002\x0000\x0001\u041c" + + "\x000D\x0000\x0001\u041c\x0006\x0000\x000A\u041c\x0001\u041d\x007D\x0000\x0004\u041e\x0002\x0000" + + "\x0001\u041e\x000D\x0000\x0001\u041e\x0006\x0000\x0001\u041f\x0002\u0420\x0001\u041f\x0005\u0420" + + "\x0001\u0421\x000C\x0000\x0001\u02e1\x0071\x0000\x0004\u0422\x0002\x0000\x0001\u0422\x000D\x0000" + + "\x0001\u0422\x0006\x0000\x000A\u0422\x0001\u03ac\x000B\x0000\x0001\u02e1\x0071\x0000\x0004\u041e" + + "\x0002\x0000\x0001\u041e\x000D\x0000\x0001\u041e\x0006\x0000\x0001\u041f\x0002\u0420\x0001\u041f" + + "\x0005\u0420\x0001\u0421\x007D\x0000\x0001\u0349\x0004\u0422\x0002\x0000\x0001\u0422\x000D\x0000" + + "\x0001\u0422\x0006\x0000\x000A\u0423\x0001\u03ac\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349" + + "\x0004\u0422\x0002\x0000\x0001\u0422\x000D\x0000\x0001\u0422\x0006\x0000\x000A\u0422\x0001\u03ac" + + "\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u0422\x0002\x0000\x0001\u0422\x000D\x0000" + + "\x0001\u0422\x0006\x0000\x0002\u0423\x0001\u0422\x0002\u0423\x0002\u0422\x0001\u0423\x0001\u0422" + + "\x0001\u0423\x0001\u03ac\x000B\x0000\x0001\u02e1\x0071\x0000\x0004\u0424\x0002\x0000\x0001\u0424" + + "\x000D\x0000\x0001\u0424\x0006\x0000\x000A\u0424\x0001\u0348\x000B\x0000\x0001\u02e1\x0070\x0000" + + "\x0001\u0425\x001B\x0000\x000A\u03b2\x007D\x0000\x0001\u0425\x001B\x0000\x000A\u0426\x007D\x0000" + + "\x0001\u0425\x001B\x0000\x0001\u03b2\x0001\u0427\x0001\u0426\x0002\u03b2\x0002\u0426\x0001\u03b2" + + "\x0001\u0426\x0001\u03b2\x007D\x0000\x0001\u0349\x0004\u0424\x0002\x0000\x0001\u0424\x000D\x0000" + + "\x0001\u0424\x0006\x0000\x000A\u0424\x0001\u0348\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u034d" + + "\x0001\u02e2\x0002\u0428\x0001\u0429\x0001\u042a\x0008\u0428\x0001\u02e2\x0001\u042b\x0005\u0428" + + "\x0006\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u042c\x0002\u0428\x0001\u02e2" + + "\x0001\u0428\x0001\u042d\x0006\u0428\x0004\u02e2\x0004\u0428\x0001\u02e2\x0001\u0428\x0001\u02e2" + + "\x0003\u0428\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u0428\x0001\u02e2" + + "\x0001\u0428\x0004\u02e2\x0001\u0428\x0008\u02e2\x0001\u0428\x0002\u02e2\x0001\u0428\x0002\u02e2" + + "\x0001\u0428\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2\x0001\u0428\x0001\u042e" + + "\x0002\u0428\x0002\u02e2\x0001\u0428\x0006\u02e2\x0003\u0428\x0009\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u0428\x0001\u02e2\x0001\u0428\x0008\u02e2\x0001\u0428" + + "\x0001\u02e2\x0002\u0428\x0008\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0004\u02e2" + + "\x0001\u042f\x0005\u02e2\x0001\u0428\x000F\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0004\u02e2\x0002\u0428\x0002\u02e2\x0001\u0428\x0001\u02e2\x0001\u0428\x000B\u02e2\x0001\u0428" + + "\x0002\u02e2\x0001\u0428\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u0428\x0001\u02e2" + + "\x0003\u0428\x0001\u0430\x000C\u0428\x0002\u02e2\x0002\u0428\x0002\u02e2\x0001\u0428\x0001\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0002\u02e2\x0004\u0428\x0003\u02e2\x0002\u0428" + + "\x0001\u0431\x0001\u0428\x0001\u02e2\x0002\u0428\x000A\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0002\u0428\x0002\u02e2\x0001\u0428\x0003\u02e2\x0001\u0428\x0005\u02e2\x0003\u0428" + + "\x0003\u02e2\x0001\u0428\x0002\u02e2\x0003\u0428\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0005\u0428\x0001\u0432\x0001\u02e2\x0001\u0428\x0001\u0433\x0007\u0428\x0001\u0434\x0003\u0428" + + "\x0001\u02e2\x0001\u0428\x0001\u02e2\x0003\u0428\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0001\u0435\x0001\u0428\x0001\u02e2\x0001\u042c\x0006\u0428\x0003\u02e2\x0001\u0428\x0002\u02e2" + + "\x0001\u0428\x0002\u02e2\x0001\u0428\x0006\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0001\u0428\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u0428\x0002\u02e2" + + "\x0001\u0428\x0001\u0436\x0001\u02e2\x0002\u0428\x0001\u02e2\x0003\u0428\x0002\u02e2\x0002\u0428" + + "\x0001\u02e2\x0001\u0428\x0003\u02e2\x0001\u0428\x0002\u02e2\x0002\u0428\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0006\u0428\x0001\u02e2\x0005\u0428\x0003\u02e2\x0002\u0428\x0001\u02e2" + + "\x0008\u0428\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2\x0002\u0428\x0001\u0433" + + "\x0001\u0437\x0003\u0428\x0001\u02e2\x0003\u0428\x0001\u02e2\x0001\u0428\x0001\u02e2\x0001\u0428" + + "\x0001\u02e2\x0001\u0428\x0001\u02e2\x0001\u0428\x0001\u02e2\x0003\u0428\x0001\u02e2\x0001\u0428" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u0428\x0006\u02e2\x0001\u0428\x0006\u02e2" + + "\x0001\u0428\x0004\u02e2\x0001\u0428\x0004\u02e2\x0002\u0428\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0006\u02e2\x0001\u0428\x0007\u02e2\x0001\u0428\x000B\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x000B\u02e2\x0001\u0438\x0006\u02e2\x0001\u0439\x0007\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u0428\x0009\u02e2\x0001\u0428\x0006\u02e2\x0001\u0428" + + "\x0008\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u0428\x0001\u02e2\x0006\u0428" + + "\x0001\u043a\x0001\u02e2\x0002\u0428\x0002\u02e2\x0002\u0428\x0001\u02e2\x0001\u0428\x0001\u02e2" + + "\x0006\u0428\x0001\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0004\u02e2\x0001\u0428" + + "\x0005\u02e2\x0002\u0428\x0003\u02e2\x0002\u0428\x0008\u02e2\x0001\u0428\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u0428\x0001\u02e2\x0001\u043b\x0004\u02e2\x0001\u0428" + + "\x0002\u02e2\x0001\u0428\x000C\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0002\u0428" + + "\x0001\u02e2\x0001\u0428\x0003\u02e2\x0002\u0428\x0002\u02e2\x0001\u0428\x0004\u02e2\x0001\u0428" + + "\x0009\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u0428\x000B\u02e2" + + "\x0001\u0428\x000A\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0003\u02e2\x0002\u0428" + + "\x0002\u02e2\x0002\u0428\x0001\u02e2\x0002\u0428\x0001\u02e2\x0001\u0428\x0003\u02e2\x0001\u0428" + + "\x0001\u02e2\x0001\u0428\x0001\u02e2\x0001\u0428\x0002\u02e2\x0001\u0428\x0001\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x001C\u021e\x000A\u043c\x0001\x0000\x0002\u021e\x0001\u027f\x0003\u021e" + + "\x0001\u0220\x0001\u016c\x0001\u016d\x0001\u016e\x0002\x0000\x0002\u021e\x0004\x0000\x0001\u021e" + + "\x006A\x0000\x0004\u043d\x0002\x0000\x0001\u043d\x000D\x0000\x0001\u043d\x0006\x0000\x000A\u043d" + + "\x0001\u0354\x007D\x0000\x0004\u043e\x0002\x0000\x0001\u043e\x000D\x0000\x0001\u043e\x0006\x0000" + + "\x000A\u043e\x0001\u043f\x007D\x0000\x0004\u0440\x0002\x0000\x0001\u0440\x000D\x0000\x0001\u0440" + + "\x0006\x0000\x0001\u0441\x0002\u0442\x0001\u0441\x0005\u0442\x0001\u0443\x000C\x0000\x0001\u0126" + + "\x0071\x0000\x0004\u0444\x0002\x0000\x0001\u0444\x000D\x0000\x0001\u0444\x0006\x0000\x000A\u0444" + + "\x0001\u03d4\x000B\x0000\x0001\u0126\x0071\x0000\x0004\u0440\x0002\x0000\x0001\u0440\x000D\x0000" + + "\x0001\u0440\x0006\x0000\x0001\u0441\x0002\u0442\x0001\u0441\x0005\u0442\x0001\u0443\x007D\x0000" + + "\x0001\u0168\x0004\u0444\x0002\x0000\x0001\u0444\x000D\x0000\x0001\u0444\x0006\x0000\x000A\u0445" + + "\x0001\u03d4\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0444\x0002\x0000\x0001\u0444" + + "\x000D\x0000\x0001\u0444\x0006\x0000\x000A\u0444\x0001\u03d4\x000B\x0000\x0001\u0126\x0070\x0000" + + "\x0001\u0168\x0004\u0444\x0002\x0000\x0001\u0444\x000D\x0000\x0001\u0444\x0006\x0000\x0002\u0445" + + "\x0001\u0444\x0002\u0445\x0002\u0444\x0001\u0445\x0001\u0444\x0001\u0445\x0001\u03d4\x000B\x0000" + + "\x0001\u0126\x0096\x0000\x0001\u02ef\x000B\x0000\x0001\u0126\x0070\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0001\u0446\x0009\x009A\x007D\x0000\x0001\x00E9\x0001\u0447\x0019\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0008\x009A\x0001\u0448\x0001\x009A" + + "\x007D\x0000\x0001\x00E9\x0015\x009A\x0001\u016f\x0004\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0005\x009A\x0001\u0449\x0004\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0005\x009A\x0001\u044a\x0004\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0005\x009A\x0001\u03e8\x0004\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x0003\x009A\x0001\u0447\x0006\x009A\x007D\x0000\x0001\x00E9\x000F\x009A\x0001\u044b\x000A\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x000A\x009A\x0001\u044c\x000F\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0015\x009A\x0001\u044d\x0004\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0001\u044e\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x000D\x009A\x0001\u044f\x000C\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0003\x009A\x0001\u0450\x0006\x009A\x007D\x0000\x0001\x00E9\x0002\x009A\x0001\u03dc" + + "\x0017\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u016f\x0018\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0009\x009A\x0001\u0451\x0010\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0009\x009A\x0001\u0452\x0010\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0001\u0453\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0001\u0454\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0002\x009A\x0001\u0455" + + "\x0017\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0004\x009A" + + "\x0001\u0176\x0005\x009A\x007D\x0000\x0001\x00E9\x0008\x009A\x0001\u0456\x0011\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u0457\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0015\x009A\x0001\u0458\x0004\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0004\x009A\x0001\u0447\x0005\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0006\x009A\x0001\u0447\x0003\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x0002\x009A\x0001\u0447\x0007\x009A\x007D\x0000\x0001\x00E9\x000E\x009A\x0001\u0459\x000B\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\u045a\x0009\x009A" + + "\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0003\x009A\x0001\u045b\x0006\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0003\x009A\x0001\u0133\x0006\x009A\x007D\x0000\x0001\x00E9" + + "\x0014\x009A\x0001\u045c\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u0101\x0001\u045d" + + "\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6" + + "\x0001\x0062\x0009\x00B6\x0001\u0323\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u045e" + + "\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u045f" + + "\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0007\x00B6" + + "\x0001\u0460\x0012\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0001\u0461\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0001\u0462\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0006\x00B6\x0001\u0463\x0003\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0015\x00B6\x0001\u0464\x0004\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0001\u0465\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0006\x00B6\x0001\u0466\x0003\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0467\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0006\x00B6\x0001\u0155\x0003\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000A\x00B6\x0001\u0118\x000F\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0468\x0019\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0008\x00B6\x0001\u0469\x0011\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0019\x00B6\x0001\u046a" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x0004\u046b\x0002\x0000\x0001\u046b" + + "\x000D\x0000\x0001\u046b\x0006\x0000\x000A\u046b\x0001\u039a\x007D\x0000\x0004\u046c\x0002\x0000" + + "\x0001\u046c\x000D\x0000\x0001\u046c\x0006\x0000\x000A\u046c\x0001\u046d\x007D\x0000\x0004\u046e" + + "\x0002\x0000\x0001\u046e\x000D\x0000\x0001\u046e\x0006\x0000\x0001\u046f\x0002\u0470\x0001\u046f" + + "\x0005\u0470\x0001\u0471\x000C\x0000\x0001\u033c\x0071\x0000\x0004\u0472\x0002\x0000\x0001\u0472" + + "\x000D\x0000\x0001\u0472\x0006\x0000\x000A\u0472\x0001\u040f\x000B\x0000\x0001\u033c\x0071\x0000" + + "\x0004\u046e\x0002\x0000\x0001\u046e\x000D\x0000\x0001\u046e\x0006\x0000\x0001\u046f\x0002\u0470" + + "\x0001\u046f\x0005\u0470\x0001\u0471\x007D\x0000\x0001\u03a1\x0004\u0472\x0002\x0000\x0001\u0472" + + "\x000D\x0000\x0001\u0472\x0006\x0000\x000A\u0473\x0001\u040f\x000B\x0000\x0001\u033c\x0070\x0000" + + "\x0001\u03a1\x0004\u0472\x0002\x0000\x0001\u0472\x000D\x0000\x0001\u0472\x0006\x0000\x000A\u0472" + + "\x0001\u040f\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u0472\x0002\x0000\x0001\u0472" + + "\x000D\x0000\x0001\u0472\x0006\x0000\x0002\u0473\x0001\u0472\x0002\u0473\x0002\u0472\x0001\u0473" + + "\x0001\u0472\x0001\u0473\x0001\u040f\x000B\x0000\x0001\u033c\x0071\x0000\x0004\u0474\x0002\x0000" + + "\x0001\u0474\x000D\x0000\x0001\u0474\x0006\x0000\x000A\u0474\x0001\u03a0\x000B\x0000\x0001\u033c" + + "\x0070\x0000\x0001\u0475\x001B\x0000\x000A\u0415\x007D\x0000\x0001\u0475\x001B\x0000\x000A\u0476" + + "\x007D\x0000\x0001\u0475\x001B\x0000\x0001\u0415\x0001\u0477\x0001\u0476\x0002\u0415\x0002\u0476" + + "\x0001\u0415\x0001\u0476\x0001\u0415\x007D\x0000\x0001\u03a1\x0004\u0474\x0002\x0000\x0001\u0474" + + "\x000D\x0000\x0001\u0474\x0006\x0000\x000A\u0474\x0001\u03a0\x000B\x0000\x0001\u033c\x0070\x0000" + + "\x0026\u01d0\x0001\x0000\x0002\u01d0\x0001\u0214\x0003\u01d0\x0001\u01d2\x0001\x0000\x0001\u0213" + + "\x0003\x0000\x0002\u01d0\x0004\x0000\x0001\u01d0\x009D\x0000\x0001\u0478\x008A\x0000\x000A\u0479" + + "\x0009\x0000\x0001\u0213\x0099\x0000\x0001\u0342\x007D\x0000\x0004\u047a\x0002\x0000\x0001\u047a" + + "\x000D\x0000\x0001\u047a\x0006\x0000\x000A\u047a\x0001\u041d\x007D\x0000\x0004\u047b\x0002\x0000" + + "\x0001\u047b\x000D\x0000\x0001\u047b\x0006\x0000\x000A\u047b\x0001\u047c\x007D\x0000\x0004\u047d" + + "\x0002\x0000\x0001\u047d\x000D\x0000\x0001\u047d\x0006\x0000\x000A\u047d\x0001\u047e\x000B\x0000" + + "\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u047d\x0002\x0000\x0001\u047d\x000D\x0000\x0001\u047d" + + "\x0006\x0000\x000A\u047f\x0001\u047e\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u047d" + + "\x0002\x0000\x0001\u047d\x000D\x0000\x0001\u047d\x0006\x0000\x000A\u0480\x0001\u047e\x000B\x0000" + + "\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u047d\x0002\x0000\x0001\u047d\x000D\x0000\x0001\u047d" + + "\x0006\x0000\x0001\u047f\x0001\u0481\x0001\u0480\x0002\u047f\x0002\u0480\x0001\u047f\x0001\u0480" + + "\x0001\u047f\x0001\u047e\x000B\x0000\x0001\u02e1\x0071\x0000\x0004\u0482\x0002\x0000\x0001\u0482" + + "\x000D\x0000\x0001\u0482\x0006\x0000\x000A\u0482\x0001\u03ac\x000B\x0000\x0001\u02e1\x0070\x0000" + + "\x0001\u0349\x0004\u0482\x0002\x0000\x0001\u0482\x000D\x0000\x0001\u0482\x0006\x0000\x000A\u0482" + + "\x0001\u03ac\x000B\x0000\x0001\u02e1\x0096\x0000\x0001\u0348\x000B\x0000\x0001\u02e1\x008C\x0000" + + "\x0001\u0483\x0002\u0484\x0001\u0483\x0005\u0484\x0001\u0485\x007D\x0000\x0001\u0425\x00A2\x0000" + + "\x0001\u0425\x001B\x0000\x0002\u0426\x0001\x0000\x0002\u0426\x0002\x0000\x0001\u0426\x0001\x0000" + + "\x0001\u0426\x007D\x0000\x0001\u0486\x001A\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486" + + "\x0004\u02e2\x0001\u0487\x0015\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486\x000D\u02e2" + + "\x0001\u03c1\x000C\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486\x0008\u02e2\x0001\u03c1" + + "\x0011\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486\x000F\u02e2\x0001\u0428\x000A\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486\x0005\u02e2\x0001\u0488\x0004\u02e2\x0001\u0428" + + "\x000F\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0010\u02e2\x0001\u0428\x0009\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0007\u02e2\x0001\u0428\x0012\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0017\u02e2\x0001\u0428\x0002\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u0486\x0006\u02e2\x0001\u0487\x0008\u02e2\x0001\u0428\x000A\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u0486\x0014\u02e2\x0001\u0489\x0005\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0009\u02e2\x0001\u0428\x0010\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u0486\x000E\u02e2\x0001\u048a\x000B\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486" + + "\x000A\u02e2\x0001\u048b\x000F\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486\x0005\u02e2" + + "\x0001\u0428\x0014\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486\x0001\u048c\x0019\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u048d\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0012\u02e2\x0001\u0428\x0007\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486" + + "\x0013\u02e2\x0001\u0428\x0006\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u0486\x0014\u02e2" + + "\x0001\u048e\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x001C\u021e\x000A\u048f\x0001\x0000" + + "\x0002\u021e\x0001\u027f\x0003\u021e\x0001\u0220\x0001\u016c\x0001\u016d\x0001\u016e\x0002\x0000" + + "\x0002\u021e\x0004\x0000\x0001\u021e\x008F\x0000\x0001\u0354\x007D\x0000\x0004\u0490\x0002\x0000" + + "\x0001\u0490\x000D\x0000\x0001\u0490\x0006\x0000\x000A\u0490\x0001\u043f\x007D\x0000\x0004\u0491" + + "\x0002\x0000\x0001\u0491\x000D\x0000\x0001\u0491\x0006\x0000\x0001\u0492\x0002\u0493\x0001\u0492" + + "\x0005\u0493\x0001\u0494\x0001\u0495\x007D\x0000\x0004\u0496\x0002\x0000\x0001\u0496\x000D\x0000" + + "\x0001\u0496\x0006\x0000\x000A\u0496\x0001\u0497\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168" + + "\x0004\u0496\x0002\x0000\x0001\u0496\x000D\x0000\x0001\u0496\x0006\x0000\x000A\u0498\x0001\u0497" + + "\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0496\x0002\x0000\x0001\u0496\x000D\x0000" + + "\x0001\u0496\x0006\x0000\x000A\u0499\x0001\u0497\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168" + + "\x0004\u0496\x0002\x0000\x0001\u0496\x000D\x0000\x0001\u0496\x0006\x0000\x0001\u0498\x0001\u049a" + + "\x0001\u0499\x0002\u0498\x0002\u0499\x0001\u0498\x0001\u0499\x0001\u0498\x0001\u0497\x000B\x0000" + + "\x0001\u0126\x0071\x0000\x0004\u049b\x0002\x0000\x0001\u049b\x000D\x0000\x0001\u049b\x0006\x0000" + + "\x000A\u049b\x0001\u03d4\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u049b\x0002\x0000" + + "\x0001\u049b\x000D\x0000\x0001\u049b\x0006\x0000\x000A\u049b\x0001\u03d4\x000B\x0000\x0001\u0126" + + "\x0070\x0000\x0001\x00E9\x0003\x009A\x0001\u049c\x0016\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0002\x009A\x0001\u016f\x0017\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0006\x009A\x0001\u017a\x0013\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\x009A" + + "\x0001\u03f2\x0018\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0003\x009A\x0001\u049d" + + "\x0016\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0003\x009A" + + "\x0001\u049e\x0006\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0006\x009A\x0001\u049f" + + "\x0003\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0006\x009A\x0001\u04a0\x0003\x009A" + + "\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0005\x009A\x0001\u04a1\x0004\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0007\x009A\x0001\u04a2\x0002\x009A\x007D\x0000\x0001\x00E9" + + "\x0001\u04a3\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x0004\x009A\x0001\u04a4\x0005\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0004\x009A" + + "\x0001\u04a5\x0005\x009A\x007D\x0000\x0001\x00E9\x0016\x009A\x0001\u04a6\x0003\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0018\x009A\x0001\u04a7\x0001\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0009\x009A\x0001\u01ab\x0010\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0002\x009A\x0001\u04a8\x0007\x009A\x007D\x0000\x0001\x00E9" + + "\x000A\x009A\x0001\u04a9\x000F\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x000F\x009A" + + "\x0001\u0177\x000A\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x0004\x009A\x0001\u04aa\x0005\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0006\x009A" + + "\x0001\u01ae\x0003\x009A\x007D\x0000\x0001\x00E9\x0018\x009A\x0001\u04ab\x0001\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0018\x009A\x0001\u04ac\x0001\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\u04ad\x0009\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0002\x00B6\x0001\u04ae\x0017\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0008\x00B6\x0001\u0317\x0001\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000D\x00B6\x0001\x00CA\x000C\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0013\x00B6\x0001\u04af\x0006\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0001\x00B6\x0001\u04b0\x0008\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6" + + "\x0001\x0062\x0003\x00B6\x0001\u0159\x0006\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0018\x00B6\x0001\u04b1\x0001\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\x00B6\x0001\u04b2\x0008\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0006\x00B6\x0001\u04b3\x0013\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0005\x00B6\x0001\u04b4\x0004\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0005\x00B6\x0001\u04b5" + + "\x0004\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\x00B6" + + "\x0001\x00CA\x0008\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000B\x00B6\x0001\u04b6" + + "\x000E\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x008E\x0000\x0001\u039a\x007D\x0000" + + "\x0004\u04b7\x0002\x0000\x0001\u04b7\x000D\x0000\x0001\u04b7\x0006\x0000\x000A\u04b7\x0001\u046d" + + "\x007D\x0000\x0004\u04b8\x0002\x0000\x0001\u04b8\x000D\x0000\x0001\u04b8\x0006\x0000\x000A\u04b8" + + "\x0001\u04b9\x007D\x0000\x0004\u04ba\x0002\x0000\x0001\u04ba\x000D\x0000\x0001\u04ba\x0006\x0000" + + "\x000A\u04ba\x0001\u04bb\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u04ba\x0002\x0000" + + "\x0001\u04ba\x000D\x0000\x0001\u04ba\x0006\x0000\x000A\u04bc\x0001\u04bb\x000B\x0000\x0001\u033c" + + "\x0070\x0000\x0001\u03a1\x0004\u04ba\x0002\x0000\x0001\u04ba\x000D\x0000\x0001\u04ba\x0006\x0000" + + "\x000A\u04bd\x0001\u04bb\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u04ba\x0002\x0000" + + "\x0001\u04ba\x000D\x0000\x0001\u04ba\x0006\x0000\x0001\u04bc\x0001\u04be\x0001\u04bd\x0002\u04bc" + + "\x0002\u04bd\x0001\u04bc\x0001\u04bd\x0001\u04bc\x0001\u04bb\x000B\x0000\x0001\u033c\x0071\x0000" + + "\x0004\u04bf\x0002\x0000\x0001\u04bf\x000D\x0000\x0001\u04bf\x0006\x0000\x000A\u04bf\x0001\u040f" + + "\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u04bf\x0002\x0000\x0001\u04bf\x000D\x0000" + + "\x0001\u04bf\x0006\x0000\x000A\u04bf\x0001\u040f\x000B\x0000\x0001\u033c\x0096\x0000\x0001\u03a0" + + "\x000B\x0000\x0001\u033c\x008C\x0000\x0001\u04c0\x0002\u04c1\x0001\u04c0\x0005\u04c1\x0001\u04c2" + + "\x007D\x0000\x0001\u0475\x00A2\x0000\x0001\u0475\x001B\x0000\x0002\u0476\x0001\x0000\x0002\u0476" + + "\x0002\x0000\x0001\u0476\x0001\x0000\x0001\u0476\x007E\x0000\x0001\u04c3\x0001\x0000\x0001\u04c3" + + "\x0005\x0000\x0001\u04c3\x00C8\x0000\x0001\u0213\x0074\x0000\x0004\u04c4\x0002\x0000\x0001\u04c4" + + "\x000D\x0000\x0001\u04c4\x0006\x0000\x000A\u04c4\x0001\u041d\x007D\x0000\x0004\u04c5\x0002\x0000" + + "\x0001\u04c5\x000D\x0000\x0001\u04c5\x0006\x0000\x000A\u04c5\x0001\u04c6\x007D\x0000\x0004\u04c7" + + "\x0002\x0000\x0001\u04c7\x000D\x0000\x0001\u04c7\x0006\x0000\x0001\u04c8\x0002\u04c9\x0001\u04c8" + + "\x0005\u04c9\x0001\u04ca\x000C\x0000\x0001\u02e1\x0071\x0000\x0004\u04cb\x0002\x0000\x0001\u04cb" + + "\x000D\x0000\x0001\u04cb\x0006\x0000\x000A\u04cb\x0001\u047e\x000B\x0000\x0001\u02e1\x0071\x0000" + + "\x0004\u04c7\x0002\x0000\x0001\u04c7\x000D\x0000\x0001\u04c7\x0006\x0000\x0001\u04c8\x0002\u04c9" + + "\x0001\u04c8\x0005\u04c9\x0001\u04ca\x007D\x0000\x0001\u0349\x0004\u04cb\x0002\x0000\x0001\u04cb" + + "\x000D\x0000\x0001\u04cb\x0006\x0000\x000A\u04cc\x0001\u047e\x000B\x0000\x0001\u02e1\x0070\x0000" + + "\x0001\u0349\x0004\u04cb\x0002\x0000\x0001\u04cb\x000D\x0000\x0001\u04cb\x0006\x0000\x000A\u04cb" + + "\x0001\u047e\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u04cb\x0002\x0000\x0001\u04cb" + + "\x000D\x0000\x0001\u04cb\x0006\x0000\x0002\u04cc\x0001\u04cb\x0002\u04cc\x0002\u04cb\x0001\u04cc" + + "\x0001\u04cb\x0001\u04cc\x0001\u047e\x000B\x0000\x0001\u02e1\x0096\x0000\x0001\u03ac\x000B\x0000" + + "\x0001\u02e1\x0070\x0000\x0001\u04cd\x001B\x0000\x000A\u0484\x007D\x0000\x0001\u04cd\x001B\x0000" + + "\x000A\u04ce\x007D\x0000\x0001\u04cd\x001B\x0000\x0001\u0484\x0001\u04cf\x0001\u04ce\x0002\u0484" + + "\x0002\u04ce\x0001\u0484\x0001\u04ce\x0001\u0484\x007D\x0000\x0001\u034d\x0005\u02e2\x0001\u0428" + + "\x0014\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x000D\u02e2\x0001\u0428\x000C\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0008\u02e2\x0001\u0428\x0011\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u04d0\x0016\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u0428\x0016\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0017\u02e2\x0001\u04d1\x0002\u02e2\x0001\u034e\x000A\u02e2\x007E\x0000\x001A\u02e2" + + "\x0001\u04d2\x000A\u02e2\x007D\x0000\x0001\u034d\x000E\u02e2\x0001\u0428\x000B\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0026\u021e\x0001\x0000\x0002\u021e\x0001\u027f\x0003\u021e\x0001\u0220" + + "\x0001\u016c\x0001\u016d\x0001\u016e\x0002\x0000\x0002\u021e\x0004\x0000\x0001\u021e\x006A\x0000" + + "\x0004\u04d3\x0002\x0000\x0001\u04d3\x000D\x0000\x0001\u04d3\x0006\x0000\x000A\u04d3\x0001\u043f" + + "\x007D\x0000\x0004\u04d4\x0002\x0000\x0001\u04d4\x000D\x0000\x0001\u04d4\x0006\x0000\x000A\u04d4" + + "\x0001\u04d5\x007C\x0000\x0001\u0168\x0004\u04d4\x0002\x0000\x0001\u04d4\x000D\x0000\x0001\u04d4" + + "\x0006\x0000\x000A\u04d6\x0001\u04d5\x007C\x0000\x0001\u0168\x0004\u04d4\x0002\x0000\x0001\u04d4" + + "\x000D\x0000\x0001\u04d4\x0006\x0000\x000A\u04d7\x0001\u04d5\x007C\x0000\x0001\u0168\x0004\u04d4" + + "\x0002\x0000\x0001\u04d4\x000D\x0000\x0001\u04d4\x0006\x0000\x0001\u04d6\x0001\u04d8\x0001\u04d7" + + "\x0002\u04d6\x0002\u04d7\x0001\u04d6\x0001\u04d7\x0001\u04d6\x0001\u04d5\x007D\x0000\x0004\u04d9" + + "\x0002\x0000\x0001\u04d9\x000D\x0000\x0001\u04d9\x0006\x0000\x000A\u04d9\x000C\x0000\x0001\u0126" + + "\x0071\x0000\x0004\u04da\x0002\x0000\x0001\u04da\x000D\x0000\x0001\u04da\x0006\x0000\x000A\u04da" + + "\x0001\u0497\x000B\x0000\x0001\u0126\x0071\x0000\x0004\u04d9\x0002\x0000\x0001\u04d9\x000D\x0000" + + "\x0001\u04d9\x0006\x0000\x000A\u04d9\x007D\x0000\x0001\u0168\x0004\u04da\x0002\x0000\x0001\u04da" + + "\x000D\x0000\x0001\u04da\x0006\x0000\x000A\u04db\x0001\u0497\x000B\x0000\x0001\u0126\x0070\x0000" + + "\x0001\u0168\x0004\u04da\x0002\x0000\x0001\u04da\x000D\x0000\x0001\u04da\x0006\x0000\x000A\u04da" + + "\x0001\u0497\x000B\x0000\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u04da\x0002\x0000\x0001\u04da" + + "\x000D\x0000\x0001\u04da\x0006\x0000\x0002\u04db\x0001\u04da\x0002\u04db\x0002\u04da\x0001\u04db" + + "\x0001\u04da\x0001\u04db\x0001\u0497\x000B\x0000\x0001\u0126\x0096\x0000\x0001\u03d4\x000B\x0000" + + "\x0001\u0126\x0070\x0000\x0001\x00E9\x0001\u04dc\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0009\x009A\x0001\u03e8\x007D\x0000\x0001\x00E9\x0001\u04dd" + + "\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u04de\x0019\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0007\x009A\x0001\u04df\x0012\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0001\u04e0\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0001\u04e1\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x0006\x009A\x0001\u04e2\x0003\x009A\x007D\x0000\x0001\x00E9\x0015\x009A\x0001\u04e3\x0004\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u04e4\x0019\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0006\x009A\x0001\u04e5\x0003\x009A\x007D\x0000" + + "\x0001\x00E9\x0001\u04e6\x0019\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0006\x009A\x0001\u01aa\x0003\x009A\x007D\x0000\x0001\x00E9\x000A\x009A\x0001\u0180" + + "\x000F\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u04e7\x0019\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0008\x009A\x0001\u04e8\x0011\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0019\x009A\x0001\u04e9\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u0101" + + "\x0014\x00B6\x0001\u04ea\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0008\x00B6\x0001\u04eb\x0001\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u010e\x0018\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0002\x00B6\x0001\u04ec\x0017\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u04ed\x0016\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u04ee\x0016\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0001\x00B6\x0001\u04ef\x0008\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0003\x00B6" + + "\x0001\u04f0\x0016\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0001\u04f1\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0016\x00B6\x0001\u04f2\x0003\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000" + + "\x0004\u04f3\x0002\x0000\x0001\u04f3\x000D\x0000\x0001\u04f3\x0006\x0000\x000A\u04f3\x0001\u046d" + + "\x007D\x0000\x0004\u04f4\x0002\x0000\x0001\u04f4\x000D\x0000\x0001\u04f4\x0006\x0000\x000A\u04f4" + + "\x0001\u04f5\x007D\x0000\x0004\u04f6\x0002\x0000\x0001\u04f6\x000D\x0000\x0001\u04f6\x0006\x0000" + + "\x0001\u04f7\x0002\u04f8\x0001\u04f7\x0005\u04f8\x0001\u04f9\x000C\x0000\x0001\u033c\x0071\x0000" + + "\x0004\u04fa\x0002\x0000\x0001\u04fa\x000D\x0000\x0001\u04fa\x0006\x0000\x000A\u04fa\x0001\u04bb" + + "\x000B\x0000\x0001\u033c\x0071\x0000\x0004\u04f6\x0002\x0000\x0001\u04f6\x000D\x0000\x0001\u04f6" + + "\x0006\x0000\x0001\u04f7\x0002\u04f8\x0001\u04f7\x0005\u04f8\x0001\u04f9\x007D\x0000\x0001\u03a1" + + "\x0004\u04fa\x0002\x0000\x0001\u04fa\x000D\x0000\x0001\u04fa\x0006\x0000\x000A\u04fb\x0001\u04bb" + + "\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u04fa\x0002\x0000\x0001\u04fa\x000D\x0000" + + "\x0001\u04fa\x0006\x0000\x000A\u04fa\x0001\u04bb\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1" + + "\x0004\u04fa\x0002\x0000\x0001\u04fa\x000D\x0000\x0001\u04fa\x0006\x0000\x0002\u04fb\x0001\u04fa" + + "\x0002\u04fb\x0002\u04fa\x0001\u04fb\x0001\u04fa\x0001\u04fb\x0001\u04bb\x000B\x0000\x0001\u033c" + + "\x0096\x0000\x0001\u040f\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u04fc\x001B\x0000\x000A\u04c1" + + "\x007D\x0000\x0001\u04fc\x001B\x0000\x000A\u04fd\x007D\x0000\x0001\u04fc\x001B\x0000\x0001\u04c1" + + "\x0001\u04fe\x0001\u04fd\x0002\u04c1\x0002\u04fd\x0001\u04c1\x0001\u04fd\x0001\u04c1\x00AD\x0000" + + "\x0001\u016e\x0098\x0000\x0001\u041d\x007D\x0000\x0004\u04ff\x0002\x0000\x0001\u04ff\x000D\x0000" + + "\x0001\u04ff\x0006\x0000\x000A\u04ff\x0001\u04c6\x007D\x0000\x0004\u0500\x0002\x0000\x0001\u0500" + + "\x000D\x0000\x0001\u0500\x0006\x0000\x000A\u0500\x0001\u0501\x007D\x0000\x0004\u0502\x0002\x0000" + + "\x0001\u0502\x000D\x0000\x0001\u0502\x0006\x0000\x000A\u0502\x0001\u0503\x000B\x0000\x0001\u02e1" + + "\x0070\x0000\x0001\u0349\x0004\u0502\x0002\x0000\x0001\u0502\x000D\x0000\x0001\u0502\x0006\x0000" + + "\x000A\u0504\x0001\u0503\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u0502\x0002\x0000" + + "\x0001\u0502\x000D\x0000\x0001\u0502\x0006\x0000\x000A\u0505\x0001\u0503\x000B\x0000\x0001\u02e1" + + "\x0070\x0000\x0001\u0349\x0004\u0502\x0002\x0000\x0001\u0502\x000D\x0000\x0001\u0502\x0006\x0000" + + "\x0001\u0504\x0001\u0506\x0001\u0505\x0002\u0504\x0002\u0505\x0001\u0504\x0001\u0505\x0001\u0504" + + "\x0001\u0503\x000B\x0000\x0001\u02e1\x0071\x0000\x0004\u0507\x0002\x0000\x0001\u0507\x000D\x0000" + + "\x0001\u0507\x0006\x0000\x000A\u0507\x0001\u047e\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349" + + "\x0004\u0507\x0002\x0000\x0001\u0507\x000D\x0000\x0001\u0507\x0006\x0000\x000A\u0507\x0001\u047e" + + "\x000B\x0000\x0001\u02e1\x008C\x0000\x0001\u0508\x0002\u0509\x0001\u0508\x0005\u0509\x0001\u050a" + + "\x007D\x0000\x0001\u04cd\x00A2\x0000\x0001\u04cd\x001B\x0000\x0002\u04ce\x0001\x0000\x0002\u04ce" + + "\x0002\x0000\x0001\u04ce\x0001\x0000\x0001\u04ce\x007D\x0000\x0001\u034d\x0010\u02e2\x0001\u050b" + + "\x0009\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u0433\x0016\u02e2" + + "\x0001\u034e\x000A\u02e2\x007E\x0000\x0001\u02e2\x0001\u050c\x0001\u050d\x0002\u02e2\x0001\u050e" + + "\x0001\u050f\x0001\u0510\x0001\u02e2\x0001\u0511\x0001\u0512\x0002\u02e2\x0001\u0513\x0001\u0514" + + "\x0002\u02e2\x0001\u0515\x0001\u0516\x0001\u0517\x0001\u02e2\x0001\u0518\x0001\u0519\x0001\u02e2" + + "\x0001\u051a\x0001\u051b\x0001\u034e\x0001\u051c\x0002\u02e2\x0001\u051d\x0001\u051e\x0001\u051f" + + "\x0001\u02e2\x0001\u0520\x0001\u0521\x0001\u02e2\x00A3\x0000\x0001\u043f\x007D\x0000\x0004\u0522" + + "\x0002\x0000\x0001\u0522\x000D\x0000\x0001\u0522\x0006\x0000\x000A\u0522\x0001\u04d5\x007D\x0000" + + "\x0004\u04d9\x0002\x0000\x0001\u04d9\x000D\x0000\x0001\u04d9\x0006\x0000\x000A\u04d9\x0001\u035b" + + "\x007C\x0000\x0001\u0168\x0004\u0522\x0002\x0000\x0001\u0522\x000D\x0000\x0001\u0522\x0006\x0000" + + "\x000A\u0523\x0001\u04d5\x007C\x0000\x0001\u0168\x0004\u0522\x0002\x0000\x0001\u0522\x000D\x0000" + + "\x0001\u0522\x0006\x0000\x000A\u0522\x0001\u04d5\x007C\x0000\x0001\u0168\x0004\u0522\x0002\x0000" + + "\x0001\u0522\x000D\x0000\x0001\u0522\x0006\x0000\x0002\u0523\x0001\u0522\x0002\u0523\x0002\u0522" + + "\x0001\u0523\x0001\u0522\x0001\u0523\x0001\u04d5\x007D\x0000\x0004\u0524\x0002\x0000\x0001\u0524" + + "\x000D\x0000\x0001\u0524\x0006\x0000\x000A\u0524\x000C\x0000\x0001\u0126\x0071\x0000\x0004\u0525" + + "\x0002\x0000\x0001\u0525\x000D\x0000\x0001\u0525\x0006\x0000\x000A\u0525\x0001\u0497\x000B\x0000" + + "\x0001\u0126\x0070\x0000\x0001\u0168\x0004\u0525\x0002\x0000\x0001\u0525\x000D\x0000\x0001\u0525" + + "\x0006\x0000\x000A\u0525\x0001\u0497\x000B\x0000\x0001\u0126\x0070\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0001\u0526\x0009\x009A\x007D\x0000\x0001\x00E9\x0002\x009A\x0001\u0527\x0017\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0008\x009A\x0001\u03dc" + + "\x0001\x009A\x007D\x0000\x0001\x00E9\x000D\x009A\x0001\u0133\x000C\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0013\x009A\x0001\u0528\x0006\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\x009A\x0001\u0529\x0008\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0003\x009A\x0001\u01ae\x0006\x009A\x007D\x0000\x0001\x00E9\x0018\x009A" + + "\x0001\u052a\x0001\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA" + + "\x0001\x009A\x0001\u052b\x0008\x009A\x007D\x0000\x0001\x00E9\x0006\x009A\x0001\u052c\x0013\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0005\x009A\x0001\u052d" + + "\x0004\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0005\x009A\x0001\u052e\x0004\x009A" + + "\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\x009A\x0001\u0133\x0008\x009A\x007D\x0000" + + "\x0001\x00E9\x000B\x009A\x0001\u052f\x000E\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0009\x00B6\x0001\u0530\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0016\x00B6\x0001\u0107\x0003\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x001A\x00B6\x0001\x0062\x0007\x00B6\x0001\u0531\x0002\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0009\x00B6\x0001\x00CA\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x0003\x00B6\x0001\u0532\x0016\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0004\x00B6\x0001\u0533\x0005\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x000E\x00B6\x0001\u0534\x000B\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0016\x00B6\x0001\u0535\x0003\x00B6" + + "\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0007\x00B6\x0001\u0536\x0002\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x008E\x0000\x0001\u046d\x007D\x0000" + + "\x0004\u0537\x0002\x0000\x0001\u0537\x000D\x0000\x0001\u0537\x0006\x0000\x000A\u0537\x0001\u04f5" + + "\x007D\x0000\x0004\u0538\x0002\x0000\x0001\u0538\x000D\x0000\x0001\u0538\x0006\x0000\x000A\u0538" + + "\x0001\u0539\x007D\x0000\x0004\u053a\x0002\x0000\x0001\u053a\x000D\x0000\x0001\u053a\x0006\x0000" + + "\x000A\u053a\x0001\u053b\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u053a\x0002\x0000" + + "\x0001\u053a\x000D\x0000\x0001\u053a\x0006\x0000\x000A\u053c\x0001\u053b\x000B\x0000\x0001\u033c" + + "\x0070\x0000\x0001\u03a1\x0004\u053a\x0002\x0000\x0001\u053a\x000D\x0000\x0001\u053a\x0006\x0000" + + "\x000A\u053d\x0001\u053b\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u053a\x0002\x0000" + + "\x0001\u053a\x000D\x0000\x0001\u053a\x0006\x0000\x0001\u053c\x0001\u053e\x0001\u053d\x0002\u053c" + + "\x0002\u053d\x0001\u053c\x0001\u053d\x0001\u053c\x0001\u053b\x000B\x0000\x0001\u033c\x0071\x0000" + + "\x0004\u053f\x0002\x0000\x0001\u053f\x000D\x0000\x0001\u053f\x0006\x0000\x000A\u053f\x0001\u04bb" + + "\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u053f\x0002\x0000\x0001\u053f\x000D\x0000" + + "\x0001\u053f\x0006\x0000\x000A\u053f\x0001\u04bb\x000B\x0000\x0001\u033c\x008C\x0000\x0001\u0540" + + "\x0002\u0541\x0001\u0540\x0005\u0541\x0001\u0542\x007D\x0000\x0001\u04fc\x00A2\x0000\x0001\u04fc" + + "\x001B\x0000\x0002\u04fd\x0001\x0000\x0002\u04fd\x0002\x0000\x0001\u04fd\x0001\x0000\x0001\u04fd" + + "\x007E\x0000\x0004\u0543\x0002\x0000\x0001\u0543\x000D\x0000\x0001\u0543\x0006\x0000\x000A\u0543" + + "\x0001\u04c6\x007D\x0000\x0004\u0544\x0002\x0000\x0001\u0544\x000D\x0000\x0001\u0544\x0006\x0000" + + "\x000A\u0544\x0001\u0545\x007D\x0000\x0004\u0546\x0002\x0000\x0001\u0546\x000D\x0000\x0001\u0546" + + "\x0006\x0000\x0001\u0547\x0002\u0548\x0001\u0547\x0005\u0548\x0001\u0549\x000C\x0000\x0001\u02e1" + + "\x0071\x0000\x0004\u054a\x0002\x0000\x0001\u054a\x000D\x0000\x0001\u054a\x0006\x0000\x000A\u054a" + + "\x0001\u0503\x000B\x0000\x0001\u02e1\x0071\x0000\x0004\u0546\x0002\x0000\x0001\u0546\x000D\x0000" + + "\x0001\u0546\x0006\x0000\x0001\u0547\x0002\u0548\x0001\u0547\x0005\u0548\x0001\u0549\x007D\x0000" + + "\x0001\u0349\x0004\u054a\x0002\x0000\x0001\u054a\x000D\x0000\x0001\u054a\x0006\x0000\x000A\u054b" + + "\x0001\u0503\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u054a\x0002\x0000\x0001\u054a" + + "\x000D\x0000\x0001\u054a\x0006\x0000\x000A\u054a\x0001\u0503\x000B\x0000\x0001\u02e1\x0070\x0000" + + "\x0001\u0349\x0004\u054a\x0002\x0000\x0001\u054a\x000D\x0000\x0001\u054a\x0006\x0000\x0002\u054b" + + "\x0001\u054a\x0002\u054b\x0002\u054a\x0001\u054b\x0001\u054a\x0001\u054b\x0001\u0503\x000B\x0000" + + "\x0001\u02e1\x0096\x0000\x0001\u047e\x000B\x0000\x0001\u02e1\x008C\x0000\x000A\u0509\x000C\x0000" + + "\x0001\u02e1\x008C\x0000\x000A\u054c\x000C\x0000\x0001\u02e1\x008C\x0000\x0001\u0509\x0001\u054d" + + "\x0001\u054c\x0002\u0509\x0002\u054c\x0001\u0509\x0001\u054c\x0001\u0509\x000C\x0000\x0001\u02e1" + + "\x0070\x0000\x0001\u034d\x000A\u02e2\x0001\u0428\x000F\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0009\u02e2\x0001\u054e\x0010\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0003\u02e2\x0001\u054f\x0016\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0007\u02e2" + + "\x0001\u0550\x0012\u02e2\x0001\u034e\x0004\u02e2\x0001\u0551\x0005\u02e2\x007D\x0000\x0001\u034d" + + "\x0008\u02e2\x0001\u0552\x0004\u02e2\x0001\u0553\x0005\u02e2\x0001\u0554\x0006\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u0555\x0016\u02e2\x0001\u034e\x0002\u02e2" + + "\x0001\u0556\x0007\u02e2\x007D\x0000\x0001\u034d\x0007\u02e2\x0001\u0557\x0012\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0007\u02e2\x0001\u0558\x0012\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0007\u02e2\x0001\u0559\x0012\u02e2\x0001\u034e\x0003\u02e2\x0001\u055a" + + "\x0006\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0005\u02e2\x0001\u055b\x0004\u02e2" + + "\x007D\x0000\x0001\u034d\x0007\u02e2\x0001\u055c\x0012\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0019\u02e2\x0001\u055d\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2" + + "\x0001\u055e\x0018\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0007\u02e2\x0001\u055f" + + "\x0001\u02e2\x0001\u0560\x0010\u02e2\x0001\u034e\x0009\u02e2\x0001\u055b\x007D\x0000\x0001\u034d" + + "\x0012\u02e2\x0001\u0561\x0007\u02e2\x0001\u034e\x0002\u02e2\x0001\u0562\x0007\u02e2\x007D\x0000" + + "\x0001\u034d\x0006\u02e2\x0001\u0563\x0001\u0564\x0012\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0007\u02e2\x0001\u0565\x0005\u02e2\x0001\u0566\x000C\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0013\u02e2\x0001\u0567\x0006\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x001A\u02e2\x0001\u034e\x0003\u02e2\x0001\u0568\x0006\u02e2\x007D\x0000\x0001\u034d" + + "\x0003\u02e2\x0001\u0569\x0016\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x000F\u02e2" + + "\x0001\u056a\x000A\u02e2\x0001\u034e\x0001\u056b\x0009\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2" + + "\x0001\u034e\x0001\u02e2\x0001\u055b\x0008\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0001\u056c\x0009\u02e2\x007E\x0000\x0004\u056d\x0002\x0000\x0001\u056d\x000D\x0000\x0001\u056d" + + "\x0006\x0000\x000A\u056d\x0001\u04d5\x007C\x0000\x0001\u0168\x0004\u056d\x0002\x0000\x0001\u056d" + + "\x000D\x0000\x0001\u056d\x0006\x0000\x000A\u056d\x0001\u04d5\x007D\x0000\x0004\u056e\x0002\x0000" + + "\x0001\u056e\x000D\x0000\x0001\u056e\x0006\x0000\x000A\u056e\x000C\x0000\x0001\u0126\x0096\x0000" + + "\x0001\u0497\x000B\x0000\x0001\u0126\x0070\x0000\x0001\x00E9\x0014\x009A\x0001\u056f\x0005\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0008\x009A\x0001\u0570" + + "\x0001\x009A\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u0176\x0018\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0002\x009A\x0001\u0571\x0017\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x0003\x009A\x0001\u0572\x0016\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0003\x009A\x0001\u0573\x0016\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0001\x009A\x0001\u0574\x0008\x009A\x007D\x0000\x0001\x00E9\x0003\x009A\x0001\u0575" + + "\x0016\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u0576\x0019\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x0016\x009A\x0001\u0577\x0003\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\u0101\x0007\x00B6\x0001\u0578\x0012\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0001\u0579\x0019\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0001\u0317\x0009\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x0068\x0000\x0001\u0101\x0014\x00B6\x0001\u057a\x0005\x00B6\x0001\x0062\x000A\x00B6" + + "\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F" + + "\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0001\x00B6\x0001\u057b\x0018\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0002\x00B6" + + "\x0001\u010e\x0007\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F" + + "\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101\x0006\x00B6\x0001\u0107" + + "\x0013\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x0004\u057c\x0002\x0000" + + "\x0001\u057c\x000D\x0000\x0001\u057c\x0006\x0000\x000A\u057c\x0001\u04f5\x007D\x0000\x0004\u057d" + + "\x0002\x0000\x0001\u057d\x000D\x0000\x0001\u057d\x0006\x0000\x000A\u057d\x0001\u057e\x007D\x0000" + + "\x0004\u057f\x0002\x0000\x0001\u057f\x000D\x0000\x0001\u057f\x0006\x0000\x0001\u0580\x0002\u0581" + + "\x0001\u0580\x0005\u0581\x0001\u0582\x000C\x0000\x0001\u033c\x0071\x0000\x0004\u0583\x0002\x0000" + + "\x0001\u0583\x000D\x0000\x0001\u0583\x0006\x0000\x000A\u0583\x0001\u053b\x000B\x0000\x0001\u033c" + + "\x0071\x0000\x0004\u057f\x0002\x0000\x0001\u057f\x000D\x0000\x0001\u057f\x0006\x0000\x0001\u0580" + + "\x0002\u0581\x0001\u0580\x0005\u0581\x0001\u0582\x007D\x0000\x0001\u03a1\x0004\u0583\x0002\x0000" + + "\x0001\u0583\x000D\x0000\x0001\u0583\x0006\x0000\x000A\u0584\x0001\u053b\x000B\x0000\x0001\u033c" + + "\x0070\x0000\x0001\u03a1\x0004\u0583\x0002\x0000\x0001\u0583\x000D\x0000\x0001\u0583\x0006\x0000" + + "\x000A\u0583\x0001\u053b\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u0583\x0002\x0000" + + "\x0001\u0583\x000D\x0000\x0001\u0583\x0006\x0000\x0002\u0584\x0001\u0583\x0002\u0584\x0002\u0583" + + "\x0001\u0584\x0001\u0583\x0001\u0584\x0001\u053b\x000B\x0000\x0001\u033c\x0096\x0000\x0001\u04bb" + + "\x000B\x0000\x0001\u033c\x008C\x0000\x000A\u0541\x000C\x0000\x0001\u033c\x008C\x0000\x000A\u0585" + + "\x000C\x0000\x0001\u033c\x008C\x0000\x0001\u0541\x0001\u0586\x0001\u0585\x0002\u0541\x0002\u0585" + + "\x0001\u0541\x0001\u0585\x0001\u0541\x000C\x0000\x0001\u033c\x0096\x0000\x0001\u04c6\x007D\x0000" + + "\x0004\u0587\x0002\x0000\x0001\u0587\x000D\x0000\x0001\u0587\x0006\x0000\x000A\u0587\x0001\u0545" + + "\x007D\x0000\x0004\u0588\x0002\x0000\x0001\u0588\x000D\x0000\x0001\u0588\x0006\x0000\x000A\u0588" + + "\x0001\u0589\x007D\x0000\x0004\u058a\x0002\x0000\x0001\u058a\x000D\x0000\x0001\u058a\x0006\x0000" + + "\x000A\u058a\x0001\u058b\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u058a\x0002\x0000" + + "\x0001\u058a\x000D\x0000\x0001\u058a\x0006\x0000\x000A\u058c\x0001\u058b\x000B\x0000\x0001\u02e1" + + "\x0070\x0000\x0001\u0349\x0004\u058a\x0002\x0000\x0001\u058a\x000D\x0000\x0001\u058a\x0006\x0000" + + "\x000A\u058d\x0001\u058b\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u058a\x0002\x0000" + + "\x0001\u058a\x000D\x0000\x0001\u058a\x0006\x0000\x0001\u058c\x0001\u058e\x0001\u058d\x0002\u058c" + + "\x0002\u058d\x0001\u058c\x0001\u058d\x0001\u058c\x0001\u058b\x000B\x0000\x0001\u02e1\x0071\x0000" + + "\x0004\u058f\x0002\x0000\x0001\u058f\x000D\x0000\x0001\u058f\x0006\x0000\x000A\u058f\x0001\u0503" + + "\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u058f\x0002\x0000\x0001\u058f\x000D\x0000" + + "\x0001\u058f\x0006\x0000\x000A\u058f\x0001\u0503\x000B\x0000\x0001\u02e1\x00A2\x0000\x0001\u02e1" + + "\x008C\x0000\x0002\u054c\x0001\x0000\x0002\u054c\x0002\x0000\x0001\u054c\x0001\x0000\x0001\u054c" + + "\x000C\x0000\x0001\u02e1\x0070\x0000\x0001\u034d\x0001\u02e2\x0001\u0590\x0018\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u0591\x0005\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u0592\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0001\u02e2\x0001\u0593\x0018\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x000C\u02e2\x0001\u0594\x000D\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2" + + "\x0001\u0595\x0018\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2\x0001\u0596" + + "\x0018\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2\x0001\u0597\x0018\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0011\u02e2\x0001\u0598\x0008\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u0599\x0005\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u059a\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0014\u02e2\x0001\u059b\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0001\u0489\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u0597" + + "\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u059c\x0005\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2\x0001\u059d\x0018\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0019\u02e2\x0001\u059e\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0014\u02e2\x0001\u059f\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0001\u02e2\x0001\u05a0\x0018\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u05a1" + + "\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0011\u02e2\x0001\u05a2\x0008\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0004\u02e2\x0001\u05a3\x0015\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u05a4\x0005\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u05a5\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0004\u02e2\x0001\u05a6\x0015\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0011\u02e2\x0001\u05a7\x0008\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2" + + "\x0001\u05a8\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0001\u05a9\x0009\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0007\u02e2\x0001\u05aa" + + "\x0002\u02e2\x007D\x0000\x0001\u034d\x0001\u05ab\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0001\u05ac\x0019\u02e2\x0001\u034e\x000A\u02e2\x00A3\x0000\x0001\u04d5\x007D\x0000" + + "\x0004\u035b\x0002\x0000\x0001\u035b\x000D\x0000\x0001\u035b\x0006\x0000\x000A\u035b\x000C\x0000" + + "\x0001\u0126\x0070\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0009\x009A\x0001\u05ad\x007D\x0000" + + "\x0001\x00E9\x0016\x009A\x0001\u016f\x0003\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0007\x009A\x0001\u05ae\x0002\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0009\x009A\x0001\u0133\x007D\x0000\x0001\x00E9\x0003\x009A\x0001\u05af\x0016\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0004\x009A\x0001\u05b0" + + "\x0005\x009A\x007D\x0000\x0001\x00E9\x000E\x009A\x0001\u05b1\x000B\x009A\x0001\x00EA\x000A\x009A" + + "\x007D\x0000\x0001\x00E9\x0016\x009A\x0001\u05b2\x0003\x009A\x0001\x00EA\x000A\x009A\x007D\x0000" + + "\x0001\x00E9\x001A\x009A\x0001\x00EA\x0007\x009A\x0001\u05b3\x0002\x009A\x007D\x0000\x0001\u0101" + + "\x001A\x00B6\x0001\x0062\x0009\x00B6\x0001\u05b4\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000\x0001\u0101" + + "\x0004\x00B6\x0001\u0107\x0015\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000" + + "\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x0068\x0000" + + "\x0001\u0101\x0014\x00B6\x0001\x00CA\x0005\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F" + + "\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F" + + "\x0068\x0000\x0001\u0101\x001A\x00B6\x0001\x0062\x0006\x00B6\x0001\x00CA\x0003\x00B6\x0001\x0000" + + "\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000" + + "\x0002\x005F\x008E\x0000\x0001\u04f5\x007D\x0000\x0004\u05b5\x0002\x0000\x0001\u05b5\x000D\x0000" + + "\x0001\u05b5\x0006\x0000\x000A\u05b5\x0001\u057e\x007D\x0000\x0004\u05b6\x0002\x0000\x0001\u05b6" + + "\x000D\x0000\x0001\u05b6\x0006\x0000\x000A\u05b6\x0001\u05b7\x007D\x0000\x0004\u05b8\x0002\x0000" + + "\x0001\u05b8\x000D\x0000\x0001\u05b8\x0006\x0000\x000A\u05b8\x0001\u05b9\x000B\x0000\x0001\u033c" + + "\x0070\x0000\x0001\u03a1\x0004\u05b8\x0002\x0000\x0001\u05b8\x000D\x0000\x0001\u05b8\x0006\x0000" + + "\x000A\u05ba\x0001\u05b9\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u05b8\x0002\x0000" + + "\x0001\u05b8\x000D\x0000\x0001\u05b8\x0006\x0000\x000A\u05bb\x0001\u05b9\x000B\x0000\x0001\u033c" + + "\x0070\x0000\x0001\u03a1\x0004\u05b8\x0002\x0000\x0001\u05b8\x000D\x0000\x0001\u05b8\x0006\x0000" + + "\x0001\u05ba\x0001\u05bc\x0001\u05bb\x0002\u05ba\x0002\u05bb\x0001\u05ba\x0001\u05bb\x0001\u05ba" + + "\x0001\u05b9\x000B\x0000\x0001\u033c\x0071\x0000\x0004\u05bd\x0002\x0000\x0001\u05bd\x000D\x0000" + + "\x0001\u05bd\x0006\x0000\x000A\u05bd\x0001\u053b\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1" + + "\x0004\u05bd\x0002\x0000\x0001\u05bd\x000D\x0000\x0001\u05bd\x0006\x0000\x000A\u05bd\x0001\u053b" + + "\x000B\x0000\x0001\u033c\x00A2\x0000\x0001\u033c\x008C\x0000\x0002\u0585\x0001\x0000\x0002\u0585" + + "\x0002\x0000\x0001\u0585\x0001\x0000\x0001\u0585\x000C\x0000\x0001\u033c\x0071\x0000\x0004\u05be" + + "\x0002\x0000\x0001\u05be\x000D\x0000\x0001\u05be\x0006\x0000\x000A\u05be\x0001\u0545\x007D\x0000" + + "\x0004\u05bf\x0002\x0000\x0001\u05bf\x000D\x0000\x0001\u05bf\x0006\x0000\x000A\u05bf\x0001\u05c0" + + "\x007D\x0000\x0004\u05c1\x0002\x0000\x0001\u05c1\x000D\x0000\x0001\u05c1\x0006\x0000\x0001\u05c2" + + "\x0002\u05c3\x0001\u05c2\x0005\u05c3\x0001\u05c4\x000C\x0000\x0001\u02e1\x0071\x0000\x0004\u05c5" + + "\x0002\x0000\x0001\u05c5\x000D\x0000\x0001\u05c5\x0006\x0000\x000A\u05c5\x0001\u058b\x000B\x0000" + + "\x0001\u02e1\x0071\x0000\x0004\u05c1\x0002\x0000\x0001\u05c1\x000D\x0000\x0001\u05c1\x0006\x0000" + + "\x0001\u05c2\x0002\u05c3\x0001\u05c2\x0005\u05c3\x0001\u05c4\x007D\x0000\x0001\u0349\x0004\u05c5" + + "\x0002\x0000\x0001\u05c5\x000D\x0000\x0001\u05c5\x0006\x0000\x000A\u05c6\x0001\u058b\x000B\x0000" + + "\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u05c5\x0002\x0000\x0001\u05c5\x000D\x0000\x0001\u05c5" + + "\x0006\x0000\x000A\u05c5\x0001\u058b\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u05c5" + + "\x0002\x0000\x0001\u05c5\x000D\x0000\x0001\u05c5\x0006\x0000\x0002\u05c6\x0001\u05c5\x0002\u05c6" + + "\x0002\u05c5\x0001\u05c6\x0001\u05c5\x0001\u05c6\x0001\u058b\x000B\x0000\x0001\u02e1\x0096\x0000" + + "\x0001\u0503\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u034d\x0015\u02e2\x0001\u05c7\x0004\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u05c8\x0019\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x000D\u02e2\x0001\u05c9\x000C\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0011\u02e2\x0001\u05ca\x0008\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x000E\u02e2\x0001\u05cb\x0004\u02e2\x0001\u05cc\x0006\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0004\u02e2\x0001\u05cd\x0015\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0009\u02e2\x0001\u05ce\x007D\x0000\x0001\u034d\x0004\u02e2\x0001\u05cf" + + "\x0015\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0009\u02e2" + + "\x0001\u05d0\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u05d1\x0005\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0001\u05d2\x0001\u05d3\x0001\u02e2\x0001\u05d4\x0010\u02e2\x0001\u05d5" + + "\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x000E\u02e2\x0001\u05d6\x000B\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0009\u02e2\x0001\u05d7\x000B\u02e2\x0001\u05d8" + + "\x0004\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0009\u02e2" + + "\x0001\u05d9\x007D\x0000\x0001\u034d\x0013\u02e2\x0001\u05da\x0006\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0019\u02e2\x0001\u05db\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0016\u02e2\x0001\u05dc\x0003\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0009\u02e2" + + "\x0001\u05dd\x0010\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0003\u02e2\x0001\u05de\x0006\u02e2\x007D\x0000\x0001\u034d\x0005\u02e2\x0001\u05df\x0014\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0008\u02e2\x0001\u05e0\x0011\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u05e1\x0016\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0011\u02e2\x0001\u05e2\x0006\u02e2\x0001\u05e3\x0001\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x000A\u02e2\x0001\u05e4\x000F\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0001\u02e2\x0001\u05e5\x0008\u02e2\x007D\x0000" + + "\x0001\u034d\x0014\u02e2\x0001\u05e6\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0014\u02e2\x0001\u05e7\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2" + + "\x0001\u034e\x0004\u02e2\x0001\u05e8\x0005\u02e2\x007D\x0000\x0001\u034d\x0005\u02e2\x0001\u05e9" + + "\x0013\u02e2\x0001\u05ea\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\x00E9\x0007\x009A\x0001\u05eb" + + "\x0012\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x0001\u05ec\x0019\x009A\x0001\x00EA" + + "\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0001\u03dc\x0009\x009A\x007D\x0000" + + "\x0001\x00E9\x0014\x009A\x0001\u05ed\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0001\x009A\x0001\u05ee\x0018\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0002\x009A\x0001\u0176\x0007\x009A\x007D\x0000\x0001\x00E9\x0006\x009A\x0001\u016f" + + "\x0013\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u0101\x0001\u05ef\x0019\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x0004\u05f0\x0002\x0000\x0001\u05f0\x000D\x0000" + + "\x0001\u05f0\x0006\x0000\x000A\u05f0\x0001\u057e\x007D\x0000\x0004\u05f1\x0002\x0000\x0001\u05f1" + + "\x000D\x0000\x0001\u05f1\x0006\x0000\x000A\u05f1\x0001\u05f2\x007D\x0000\x0004\u05f3\x0002\x0000" + + "\x0001\u05f3\x000D\x0000\x0001\u05f3\x0006\x0000\x0001\u05f4\x0002\u05f5\x0001\u05f4\x0005\u05f5" + + "\x0001\u05f6\x000C\x0000\x0001\u033c\x0071\x0000\x0004\u05f7\x0002\x0000\x0001\u05f7\x000D\x0000" + + "\x0001\u05f7\x0006\x0000\x000A\u05f7\x0001\u05b9\x000B\x0000\x0001\u033c\x0071\x0000\x0004\u05f3" + + "\x0002\x0000\x0001\u05f3\x000D\x0000\x0001\u05f3\x0006\x0000\x0001\u05f4\x0002\u05f5\x0001\u05f4" + + "\x0005\u05f5\x0001\u05f6\x007D\x0000\x0001\u03a1\x0004\u05f7\x0002\x0000\x0001\u05f7\x000D\x0000" + + "\x0001\u05f7\x0006\x0000\x000A\u05f8\x0001\u05b9\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1" + + "\x0004\u05f7\x0002\x0000\x0001\u05f7\x000D\x0000\x0001\u05f7\x0006\x0000\x000A\u05f7\x0001\u05b9" + + "\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u05f7\x0002\x0000\x0001\u05f7\x000D\x0000" + + "\x0001\u05f7\x0006\x0000\x0002\u05f8\x0001\u05f7\x0002\u05f8\x0002\u05f7\x0001\u05f8\x0001\u05f7" + + "\x0001\u05f8\x0001\u05b9\x000B\x0000\x0001\u033c\x0096\x0000\x0001\u053b\x000B\x0000\x0001\u033c" + + "\x0096\x0000\x0001\u0545\x007D\x0000\x0004\u05f9\x0002\x0000\x0001\u05f9\x000D\x0000\x0001\u05f9" + + "\x0006\x0000\x000A\u05f9\x0001\u05c0\x007D\x0000\x0004\u05fa\x0002\x0000\x0001\u05fa\x000D\x0000" + + "\x0001\u05fa\x0006\x0000\x0001\u05fb\x0002\u05fc\x0001\u05fb\x0005\u05fc\x0001\u05fd\x0001\u05fe" + + "\x007D\x0000\x0004\u05ff\x0002\x0000\x0001\u05ff\x000D\x0000\x0001\u05ff\x0006\x0000\x000A\u05ff" + + "\x0001\u0600\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u05ff\x0002\x0000\x0001\u05ff" + + "\x000D\x0000\x0001\u05ff\x0006\x0000\x000A\u0601\x0001\u0600\x000B\x0000\x0001\u02e1\x0070\x0000" + + "\x0001\u0349\x0004\u05ff\x0002\x0000\x0001\u05ff\x000D\x0000\x0001\u05ff\x0006\x0000\x000A\u0602" + + "\x0001\u0600\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u05ff\x0002\x0000\x0001\u05ff" + + "\x000D\x0000\x0001\u05ff\x0006\x0000\x0001\u0601\x0001\u0603\x0001\u0602\x0002\u0601\x0002\u0602" + + "\x0001\u0601\x0001\u0602\x0001\u0601\x0001\u0600\x000B\x0000\x0001\u02e1\x0071\x0000\x0004\u0604" + + "\x0002\x0000\x0001\u0604\x000D\x0000\x0001\u0604\x0006\x0000\x000A\u0604\x0001\u058b\x000B\x0000" + + "\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u0604\x0002\x0000\x0001\u0604\x000D\x0000\x0001\u0604" + + "\x0006\x0000\x000A\u0604\x0001\u058b\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u034d\x0001\u02e2" + + "\x0001\u0605\x0018\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0001\u0606\x0009\u02e2\x007D\x0000\x0001\u034d\x0006\u02e2\x0001\u0607\x0013\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0007\u02e2\x0001\u0608\x0002\u02e2" + + "\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0008\u02e2\x0001\u048e\x0001\u02e2\x007D\x0000" + + "\x0001\u034d\x001A\u02e2\x0001\u034e\x0005\u02e2\x0001\u048e\x0004\u02e2\x007D\x0000\x0001\u034d" + + "\x0016\u02e2\x0001\u0609\x0003\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2" + + "\x0001\u060a\x0018\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0016\u02e2\x0001\u060b" + + "\x0003\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0001\u02e2" + + "\x0001\u060c\x0008\u02e2\x007D\x0000\x0001\u034d\x0001\u060d\x0019\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0001\u060e\x0017\u02e2\x0001\u060f\x0001\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0001\u0610\x0009\u02e2\x007D\x0000\x0001\u034d" + + "\x0004\u02e2\x0001\u0611\x0015\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0015\u02e2" + + "\x0001\u0612\x0004\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0001\u0613\x0009\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0002\u02e2\x0001\u03c1" + + "\x0007\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0003\u02e2\x0001\u0614\x0006\u02e2" + + "\x007D\x0000\x0001\u034d\x0001\u0615\x0001\u02e2\x0001\u0616\x0017\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0001\u0608\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0002\u02e2\x0001\u0617\x0007\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2" + + "\x0001\u034e\x0002\u02e2\x0001\u0618\x0007\u02e2\x007D\x0000\x0001\u034d\x000D\u02e2\x0001\u0619" + + "\x000C\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0005\u02e2" + + "\x0001\u061a\x0004\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0007\u02e2\x0001\u061b" + + "\x0002\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0009\u02e2\x0001\u061c\x007D\x0000" + + "\x0001\u034d\x0001\u02e2\x0001\u061d\x0018\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0003\u02e2\x0001\u061e\x0006\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2" + + "\x0001\u034e\x0001\u02e2\x0001\u061f\x0008\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0001\u02e2\x0001\u0620\x0008\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u0621\x0005\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0006\u02e2\x0001\u0622" + + "\x0003\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0003\u02e2\x0001\u0623\x0006\u02e2" + + "\x007D\x0000\x0001\u034d"; + + private const string ZZ_TRANS_PACKED_1 = + "\x0001\u0614\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0009\u02e2\x0001\u0624\x007D\x0000\x0001\u034d\x0015\u02e2\x0001\u0625\x0004\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\x00E9\x001A\x009A\x0001\x00EA\x0009\x009A\x0001\u0626\x007D\x0000" + + "\x0001\x00E9\x0004\x009A\x0001\u016f\x0015\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9" + + "\x0014\x009A\x0001\u0133\x0005\x009A\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\x00E9\x001A\x009A" + + "\x0001\x00EA\x0006\x009A\x0001\u0133\x0003\x009A\x007D\x0000\x0001\u0101\x001A\x00B6\x0001\x0062" + + "\x0005\x00B6\x0001\u0627\x0004\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060" + + "\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x008E\x0000\x0001\u057e\x007D\x0000" + + "\x0004\u0628\x0002\x0000\x0001\u0628\x000D\x0000\x0001\u0628\x0006\x0000\x000A\u0628\x0001\u05f2" + + "\x007D\x0000\x0004\u0629\x0002\x0000\x0001\u0629\x000D\x0000\x0001\u0629\x0006\x0000\x0001\u062a" + + "\x0002\u062b\x0001\u062a\x0005\u062b\x0001\u062c\x0001\u062d\x007D\x0000\x0004\u062e\x0002\x0000" + + "\x0001\u062e\x000D\x0000\x0001\u062e\x0006\x0000\x000A\u062e\x0001\u062f\x000B\x0000\x0001\u033c" + + "\x0070\x0000\x0001\u03a1\x0004\u062e\x0002\x0000\x0001\u062e\x000D\x0000\x0001\u062e\x0006\x0000" + + "\x000A\u0630\x0001\u062f\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u062e\x0002\x0000" + + "\x0001\u062e\x000D\x0000\x0001\u062e\x0006\x0000\x000A\u0631\x0001\u062f\x000B\x0000\x0001\u033c" + + "\x0070\x0000\x0001\u03a1\x0004\u062e\x0002\x0000\x0001\u062e\x000D\x0000\x0001\u062e\x0006\x0000" + + "\x0001\u0630\x0001\u0632\x0001\u0631\x0002\u0630\x0002\u0631\x0001\u0630\x0001\u0631\x0001\u0630" + + "\x0001\u062f\x000B\x0000\x0001\u033c\x0071\x0000\x0004\u0633\x0002\x0000\x0001\u0633\x000D\x0000" + + "\x0001\u0633\x0006\x0000\x000A\u0633\x0001\u05b9\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1" + + "\x0004\u0633\x0002\x0000\x0001\u0633\x000D\x0000\x0001\u0633\x0006\x0000\x000A\u0633\x0001\u05b9" + + "\x000B\x0000\x0001\u033c\x0071\x0000\x0004\u0634\x0002\x0000\x0001\u0634\x000D\x0000\x0001\u0634" + + "\x0006\x0000\x000A\u0634\x0001\u05c0\x007D\x0000\x0004\u0635\x0002\x0000\x0001\u0635\x000D\x0000" + + "\x0001\u0635\x0006\x0000\x000A\u0635\x0001\u0636\x007C\x0000\x0001\u0349\x0004\u0635\x0002\x0000" + + "\x0001\u0635\x000D\x0000\x0001\u0635\x0006\x0000\x000A\u0637\x0001\u0636\x007C\x0000\x0001\u0349" + + "\x0004\u0635\x0002\x0000\x0001\u0635\x000D\x0000\x0001\u0635\x0006\x0000\x000A\u0638\x0001\u0636" + + "\x007C\x0000\x0001\u0349\x0004\u0635\x0002\x0000\x0001\u0635\x000D\x0000\x0001\u0635\x0006\x0000" + + "\x0001\u0637\x0001\u0639\x0001\u0638\x0002\u0637\x0002\u0638\x0001\u0637\x0001\u0638\x0001\u0637" + + "\x0001\u0636\x007D\x0000\x0004\u063a\x0002\x0000\x0001\u063a\x000D\x0000\x0001\u063a\x0006\x0000" + + "\x000A\u063a\x000C\x0000\x0001\u02e1\x0071\x0000\x0004\u063b\x0002\x0000\x0001\u063b\x000D\x0000" + + "\x0001\u063b\x0006\x0000\x000A\u063b\x0001\u0600\x000B\x0000\x0001\u02e1\x0071\x0000\x0004\u063a" + + "\x0002\x0000\x0001\u063a\x000D\x0000\x0001\u063a\x0006\x0000\x000A\u063a\x007D\x0000\x0001\u0349" + + "\x0004\u063b\x0002\x0000\x0001\u063b\x000D\x0000\x0001\u063b\x0006\x0000\x000A\u063c\x0001\u0600" + + "\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u063b\x0002\x0000\x0001\u063b\x000D\x0000" + + "\x0001\u063b\x0006\x0000\x000A\u063b\x0001\u0600\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349" + + "\x0004\u063b\x0002\x0000\x0001\u063b\x000D\x0000\x0001\u063b\x0006\x0000\x0002\u063c\x0001\u063b" + + "\x0002\u063c\x0002\u063b\x0001\u063c\x0001\u063b\x0001\u063c\x0001\u0600\x000B\x0000\x0001\u02e1" + + "\x0096\x0000\x0001\u058b\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0001\u063d\x0009\u02e2\x007D\x0000\x0001\u034d\x0001\u063e\x0019\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0008\u02e2\x0001\u063f\x0001\u02e2\x007D\x0000" + + "\x0001\u034d\x0015\u02e2\x0001\u0428\x0004\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0005\u02e2\x0001\u0640\x0004\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2" + + "\x0001\u034e\x0005\u02e2\x0001\u0641\x0004\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0005\u02e2\x0001\u0614\x0004\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0003\u02e2" + + "\x0001\u063e\x0006\u02e2\x007D\x0000\x0001\u034d\x000F\u02e2\x0001\u0642\x000A\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x000A\u02e2\x0001\u0643\x000F\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0015\u02e2\x0001\u0644\x0004\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0001\u0645\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x000D\u02e2" + + "\x0001\u0646\x000C\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0003\u02e2\x0001\u0647\x0006\u02e2\x007D\x0000\x0001\u034d\x0002\u02e2\x0001\u0608\x0017\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2\x0001\u0428\x0018\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0009\u02e2\x0001\u0648\x0010\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0009\u02e2\x0001\u0649\x0010\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0001\u064a\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u064b" + + "\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0002\u02e2\x0001\u064c\x0017\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0004\u02e2\x0001\u042f" + + "\x0005\u02e2\x007D\x0000\x0001\u034d\x0008\u02e2\x0001\u064d\x0011\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0001\u064e\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0015\u02e2\x0001\u064f\x0004\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2" + + "\x0001\u034e\x0004\u02e2\x0001\u063e\x0005\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0006\u02e2\x0001\u063e\x0003\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0002\u02e2" + + "\x0001\u063e\x0007\u02e2\x007D\x0000\x0001\u034d\x000E\u02e2\x0001\u0650\x000B\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0001\u0651\x0009\u02e2\x007D\x0000" + + "\x0001\u034d\x001A\u02e2\x0001\u034e\x0003\u02e2\x0001\u0652\x0006\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0003\u02e2\x0001\u03c1\x0006\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2" + + "\x0001\u0653\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\x00E9\x0001\u0654\x0019\x009A" + + "\x0001\x00EA\x000A\x009A\x007D\x0000\x0001\u0101\x0007\x00B6\x0001\u0655\x0012\x00B6\x0001\x0062" + + "\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F\x0001\x0060\x0003\x005F\x0003\x0000" + + "\x0001\x005F\x0004\x0000\x0002\x005F\x0069\x0000\x0004\u0656\x0002\x0000\x0001\u0656\x000D\x0000" + + "\x0001\u0656\x0006\x0000\x000A\u0656\x0001\u05f2\x007D\x0000\x0004\u0657\x0002\x0000\x0001\u0657" + + "\x000D\x0000\x0001\u0657\x0006\x0000\x000A\u0657\x0001\u0658\x007C\x0000\x0001\u03a1\x0004\u0657" + + "\x0002\x0000\x0001\u0657\x000D\x0000\x0001\u0657\x0006\x0000\x000A\u0659\x0001\u0658\x007C\x0000" + + "\x0001\u03a1\x0004\u0657\x0002\x0000\x0001\u0657\x000D\x0000\x0001\u0657\x0006\x0000\x000A\u065a" + + "\x0001\u0658\x007C\x0000\x0001\u03a1\x0004\u0657\x0002\x0000\x0001\u0657\x000D\x0000\x0001\u0657" + + "\x0006\x0000\x0001\u0659\x0001\u065b\x0001\u065a\x0002\u0659\x0002\u065a\x0001\u0659\x0001\u065a" + + "\x0001\u0659\x0001\u0658\x007D\x0000\x0004\u065c\x0002\x0000\x0001\u065c\x000D\x0000\x0001\u065c" + + "\x0006\x0000\x000A\u065c\x000C\x0000\x0001\u033c\x0071\x0000\x0004\u065d\x0002\x0000\x0001\u065d" + + "\x000D\x0000\x0001\u065d\x0006\x0000\x000A\u065d\x0001\u062f\x000B\x0000\x0001\u033c\x0071\x0000" + + "\x0004\u065c\x0002\x0000\x0001\u065c\x000D\x0000\x0001\u065c\x0006\x0000\x000A\u065c\x007D\x0000" + + "\x0001\u03a1\x0004\u065d\x0002\x0000\x0001\u065d\x000D\x0000\x0001\u065d\x0006\x0000\x000A\u065e" + + "\x0001\u062f\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u065d\x0002\x0000\x0001\u065d" + + "\x000D\x0000\x0001\u065d\x0006\x0000\x000A\u065d\x0001\u062f\x000B\x0000\x0001\u033c\x0070\x0000" + + "\x0001\u03a1\x0004\u065d\x0002\x0000\x0001\u065d\x000D\x0000\x0001\u065d\x0006\x0000\x0002\u065e" + + "\x0001\u065d\x0002\u065e\x0002\u065d\x0001\u065e\x0001\u065d\x0001\u065e\x0001\u062f\x000B\x0000" + + "\x0001\u033c\x0096\x0000\x0001\u05b9\x000B\x0000\x0001\u033c\x0096\x0000\x0001\u05c0\x007D\x0000" + + "\x0004\u065f\x0002\x0000\x0001\u065f\x000D\x0000\x0001\u065f\x0006\x0000\x000A\u065f\x0001\u0636" + + "\x007D\x0000\x0004\u063a\x0002\x0000\x0001\u063a\x000D\x0000\x0001\u063a\x0006\x0000\x000A\u063a" + + "\x0001\u054c\x007C\x0000\x0001\u0349\x0004\u065f\x0002\x0000\x0001\u065f\x000D\x0000\x0001\u065f" + + "\x0006\x0000\x000A\u0660\x0001\u0636\x007C\x0000\x0001\u0349\x0004\u065f\x0002\x0000\x0001\u065f" + + "\x000D\x0000\x0001\u065f\x0006\x0000\x000A\u065f\x0001\u0636\x007C\x0000\x0001\u0349\x0004\u065f" + + "\x0002\x0000\x0001\u065f\x000D\x0000\x0001\u065f\x0006\x0000\x0002\u0660\x0001\u065f\x0002\u0660" + + "\x0002\u065f\x0001\u0660\x0001\u065f\x0001\u0660\x0001\u0636\x007D\x0000\x0004\u0661\x0002\x0000" + + "\x0001\u0661\x000D\x0000\x0001\u0661\x0006\x0000\x000A\u0661\x000C\x0000\x0001\u02e1\x0071\x0000" + + "\x0004\u0662\x0002\x0000\x0001\u0662\x000D\x0000\x0001\u0662\x0006\x0000\x000A\u0662\x0001\u0600" + + "\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u0349\x0004\u0662\x0002\x0000\x0001\u0662\x000D\x0000" + + "\x0001\u0662\x0006\x0000\x000A\u0662\x0001\u0600\x000B\x0000\x0001\u02e1\x0070\x0000\x0001\u034d" + + "\x0003\u02e2\x0001\u0663\x0016\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0002\u02e2" + + "\x0001\u0428\x0017\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0006\u02e2\x0001\u0433" + + "\x0013\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2\x0001\u061e\x0018\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u0664\x0016\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0003\u02e2\x0001\u0665\x0006\u02e2" + + "\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0006\u02e2\x0001\u0666\x0003\u02e2\x007D\x0000" + + "\x0001\u034d\x001A\u02e2\x0001\u034e\x0006\u02e2\x0001\u0667\x0003\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0005\u02e2\x0001\u0668\x0004\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2" + + "\x0001\u034e\x0007\u02e2\x0001\u0669\x0002\u02e2\x007D\x0000\x0001\u034d\x0001\u066a\x0019\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0004\u02e2\x0001\u066b" + + "\x0005\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0004\u02e2\x0001\u066c\x0005\u02e2" + + "\x007D\x0000\x0001\u034d\x0016\u02e2\x0001\u066d\x0003\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0018\u02e2\x0001\u066e\x0001\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0009\u02e2\x0001\u0488\x0010\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2" + + "\x0001\u034e\x0002\u02e2\x0001\u066f\x0007\u02e2\x007D\x0000\x0001\u034d\x000A\u02e2\x0001\u0670" + + "\x000F\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x000F\u02e2\x0001\u0430\x000A\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0004\u02e2\x0001\u0671" + + "\x0005\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0006\u02e2\x0001\u048b\x0003\u02e2" + + "\x007D\x0000\x0001\u034d\x0018\u02e2\x0001\u0672\x0001\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0018\u02e2\x0001\u0673\x0001\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\x00E9" + + "\x001A\x009A\x0001\x00EA\x0005\x009A\x0001\u0674\x0004\x009A\x007D\x0000\x0001\u0101\x0001\x00B6" + + "\x0001\u0382\x0018\x00B6\x0001\x0062\x000A\x00B6\x0001\x0000\x0003\x005F\x0001\x0000\x0002\x005F" + + "\x0001\x0060\x0003\x005F\x0003\x0000\x0001\x005F\x0004\x0000\x0002\x005F\x008E\x0000\x0001\u05f2" + + "\x007D\x0000\x0004\u0675\x0002\x0000\x0001\u0675\x000D\x0000\x0001\u0675\x0006\x0000\x000A\u0675" + + "\x0001\u0658\x007D\x0000\x0004\u065c\x0002\x0000\x0001\u065c\x000D\x0000\x0001\u065c\x0006\x0000" + + "\x000A\u065c\x0001\u0585\x007C\x0000\x0001\u03a1\x0004\u0675\x0002\x0000\x0001\u0675\x000D\x0000" + + "\x0001\u0675\x0006\x0000\x000A\u0676\x0001\u0658\x007C\x0000\x0001\u03a1\x0004\u0675\x0002\x0000" + + "\x0001\u0675\x000D\x0000\x0001\u0675\x0006\x0000\x000A\u0675\x0001\u0658\x007C\x0000\x0001\u03a1" + + "\x0004\u0675\x0002\x0000\x0001\u0675\x000D\x0000\x0001\u0675\x0006\x0000\x0002\u0676\x0001\u0675" + + "\x0002\u0676\x0002\u0675\x0001\u0676\x0001\u0675\x0001\u0676\x0001\u0658\x007D\x0000\x0004\u0677" + + "\x0002\x0000\x0001\u0677\x000D\x0000\x0001\u0677\x0006\x0000\x000A\u0677\x000C\x0000\x0001\u033c" + + "\x0071\x0000\x0004\u0678\x0002\x0000\x0001\u0678\x000D\x0000\x0001\u0678\x0006\x0000\x000A\u0678" + + "\x0001\u062f\x000B\x0000\x0001\u033c\x0070\x0000\x0001\u03a1\x0004\u0678\x0002\x0000\x0001\u0678" + + "\x000D\x0000\x0001\u0678\x0006\x0000\x000A\u0678\x0001\u062f\x000B\x0000\x0001\u033c\x0071\x0000" + + "\x0004\u0679\x0002\x0000\x0001\u0679\x000D\x0000\x0001\u0679\x0006\x0000\x000A\u0679\x0001\u0636" + + "\x007C\x0000\x0001\u0349\x0004\u0679\x0002\x0000\x0001\u0679\x000D\x0000\x0001\u0679\x0006\x0000" + + "\x000A\u0679\x0001\u0636\x007D\x0000\x0004\u067a\x0002\x0000\x0001\u067a\x000D\x0000\x0001\u067a" + + "\x0006\x0000\x000A\u067a\x000C\x0000\x0001\u02e1\x0096\x0000\x0001\u0600\x000B\x0000\x0001\u02e1" + + "\x0070\x0000\x0001\u034d\x0001\u067b\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0009\u02e2\x0001\u0614\x007D\x0000\x0001\u034d\x0001\u067c\x0019\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u067d\x0019\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0007\u02e2\x0001\u067e\x0012\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0001\u067f\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u0680" + + "\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0006\u02e2" + + "\x0001\u0681\x0003\u02e2\x007D\x0000\x0001\u034d\x0015\u02e2\x0001\u0682\x0004\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u0683\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x001A\u02e2\x0001\u034e\x0006\u02e2\x0001\u0684\x0003\u02e2\x007D\x0000\x0001\u034d" + + "\x0001\u0685\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0006\u02e2\x0001\u0487\x0003\u02e2\x007D\x0000\x0001\u034d\x000A\u02e2\x0001\u0439\x000F\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u0686\x0019\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0008\u02e2\x0001\u0687\x0011\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x0019\u02e2\x0001\u0688\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\x00E9\x0007\x009A" + + "\x0001\u0689\x0012\x009A\x0001\x00EA\x000A\x009A\x007E\x0000\x0004\u068a\x0002\x0000\x0001\u068a" + + "\x000D\x0000\x0001\u068a\x0006\x0000\x000A\u068a\x0001\u0658\x007C\x0000\x0001\u03a1\x0004\u068a" + + "\x0002\x0000\x0001\u068a\x000D\x0000\x0001\u068a\x0006\x0000\x000A\u068a\x0001\u0658\x007D\x0000" + + "\x0004\u068b\x0002\x0000\x0001\u068b\x000D\x0000\x0001\u068b\x0006\x0000\x000A\u068b\x000C\x0000" + + "\x0001\u033c\x0096\x0000\x0001\u062f\x000B\x0000\x0001\u033c\x0096\x0000\x0001\u0636\x007D\x0000" + + "\x0004\u054c\x0002\x0000\x0001\u054c\x000D\x0000\x0001\u054c\x0006\x0000\x000A\u054c\x000C\x0000" + + "\x0001\u02e1\x0070\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0001\u068c\x0009\u02e2\x007D\x0000" + + "\x0001\u034d\x0002\u02e2\x0001\u068d\x0017\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0008\u02e2\x0001\u0608\x0001\u02e2\x007D\x0000\x0001\u034d\x000D\u02e2" + + "\x0001\u03c1\x000C\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0013\u02e2\x0001\u068e" + + "\x0006\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0001\u02e2" + + "\x0001\u068f\x0008\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0003\u02e2\x0001\u048b" + + "\x0006\u02e2\x007D\x0000\x0001\u034d\x0018\u02e2\x0001\u0690\x0001\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0001\u02e2\x0001\u0691\x0008\u02e2\x007D\x0000" + + "\x0001\u034d\x0006\u02e2\x0001\u0692\x0013\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0005\u02e2\x0001\u0693\x0004\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2" + + "\x0001\u034e\x0005\u02e2\x0001\u0694\x0004\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0001\u02e2\x0001\u03c1\x0008\u02e2\x007D\x0000\x0001\u034d\x000B\u02e2\x0001\u0695\x000E\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\x00E9\x0001\x009A\x0001\u0447\x0018\x009A\x0001\x00EA" + + "\x000A\x009A\x00A3\x0000\x0001\u0658\x007D\x0000\x0004\u0585\x0002\x0000\x0001\u0585\x000D\x0000" + + "\x0001\u0585\x0006\x0000\x000A\u0585\x000C\x0000\x0001\u033c\x0070\x0000\x0001\u034d\x0014\u02e2" + + "\x0001\u0696\x0005\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0008\u02e2\x0001\u0697\x0001\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2\x0001\u042f\x0018\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0002\u02e2\x0001\u0698\x0017\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u0699\x0016\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u069a\x0016\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x001A\u02e2\x0001\u034e\x0001\u02e2\x0001\u069b\x0008\u02e2\x007D\x0000\x0001\u034d" + + "\x0003\u02e2\x0001\u069c\x0016\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u069d" + + "\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0016\u02e2\x0001\u069e\x0003\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0009\u02e2\x0001\u069f" + + "\x007D\x0000\x0001\u034d\x0016\u02e2\x0001\u0428\x0003\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x001A\u02e2\x0001\u034e\x0007\u02e2\x0001\u06a0\x0002\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0009\u02e2\x0001\u03c1\x007D\x0000\x0001\u034d\x0003\u02e2\x0001\u06a1" + + "\x0016\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0004\u02e2" + + "\x0001\u06a2\x0005\u02e2\x007D\x0000\x0001\u034d\x000E\u02e2\x0001\u06a3\x000B\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0016\u02e2\x0001\u06a4\x0003\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0007\u02e2\x0001\u06a5\x0002\u02e2\x007D\x0000" + + "\x0001\u034d\x0007\u02e2\x0001\u06a6\x0012\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x0001\u06a7\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e" + + "\x0001\u0608\x0009\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u06a8\x0005\u02e2\x0001\u034e" + + "\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2\x0001\u06a9\x0018\u02e2\x0001\u034e\x000A\u02e2" + + "\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0002\u02e2\x0001\u042f\x0007\u02e2\x007D\x0000" + + "\x0001\u034d\x0006\u02e2\x0001\u0428\x0013\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d" + + "\x001A\u02e2\x0001\u034e\x0009\u02e2\x0001\u06aa\x007D\x0000\x0001\u034d\x0004\u02e2\x0001\u0428" + + "\x0015\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0014\u02e2\x0001\u03c1\x0005\u02e2" + + "\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x001A\u02e2\x0001\u034e\x0006\u02e2\x0001\u03c1" + + "\x0003\u02e2\x007D\x0000\x0001\u034d\x0001\u06ab\x0019\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000" + + "\x0001\u034d\x001A\u02e2\x0001\u034e\x0005\u02e2\x0001\u06ac\x0004\u02e2\x007D\x0000\x0001\u034d" + + "\x0007\u02e2\x0001\u06ad\x0012\u02e2\x0001\u034e\x000A\u02e2\x007D\x0000\x0001\u034d\x0001\u02e2" + + "\x0001\u063e\x0018\u02e2\x0001\u034e\x000A\u02e2\x0016\x0000"; + + private static int[] ZzUnpackTrans() + { + int[] result = new int[275796]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_1, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private static readonly int ZZ_UNKNOWN_ERROR = 0; + private static readonly int ZZ_NO_MATCH = 1; + private static readonly int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0001\x0000\x0001\x0009\x0025\x0001\x000D\x0000\x0001\x0001\x0001\x0000\x0001\x0001\x0008\x0000" + + "\x0001\x0001\x000D\x0000\x0001\x0001\x0014\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0001\x0000" + + "\x0001\x0001\x0001\x0000\x0004\x0001\x002B\x0000\x001A\x0001\x0003\x0000\x0005\x0001\x001A\x0000" + + "\x0004\x0001\x000F\x0000\x0001\x0009\x0001\x0000\x0014\x0001\x0002\x0000\x0001\x0001\x0001\x0000" + + "\x0008\x0001\x0003\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0002\x0001\x0001\x0000" + + "\x0002\x0001\x0008\x0000\x0001\x0001\x001A\x0000\x0001\x0001\x0001\x0000\x0009\x0001\x0001\x0000" + + "\x0001\x0001\x0002\x0000\x0002\x0001\x0001\x0000\x0001\x0001\x0008\x0000\x0003\x0001\x000D\x0000" + + "\x0009\x0001\x0003\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0004\x0001\x0001\x0000" + + "\x0002\x0001\x0001\x0000\x0002\x0001\x0001\x0000\x0003\x0001\x0003\x0000\x0001\x0001\x0004\x0000" + + "\x0002\x0001\x0010\x0000\x0001\x0001\x0008\x0000\x0001\x0001\x0003\x0000\x0001\x0001\x0020\x0000" + + "\x0003\x0001\x0013\x0000\x0001\x0001\x0020\x0000\x0001\x0001\x0004\x0000\x0001\x0001\x0006\x0000" + + "\x0001\x0001\x0002\x0000\x0001\x0001\x0004\x0000\x0002\x0001\x0023\x0000\x0001\x0001\x002F\x0000" + + "\x0002\x0001\x0008\x0000\x0001\x0001\x002B\x0000\x0001\x0001\x0039\x0000\x0001\x0001\x0067\x0000" + + "\x0001\x0009\x0001\x0000\x0001\x0001\x007D\x0000\x0001\x0001\x0058\x0000\x0006\x0001\x0003\x0000" + + "\x0002\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0003\x0001\x0049\x0000\x0001\x0001\x0008\x0000" + + "\x0001\x0001\x0033\x0000\x0001\x0001\u01ea\x0000"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[1709]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private TextReader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the YyText() string */ + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the YyText() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private bool zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private bool zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private bool zzEOFDone; + + /* user code: */ + /** Alphanumeric sequences */ + public static readonly int WORD_TYPE = UAX29URLEmailTokenizer.ALPHANUM; + + /** Numbers */ + public static readonly int NUMERIC_TYPE = UAX29URLEmailTokenizer.NUM; + + /** + * Chars in class \p{Line_Break = Complex_Context} are from South East Asian + * scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept + * together as as a single token rather than broken up, because the logic + * required to break them at word boundaries is too complex for UAX#29. + *

+ * See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA + */ + public static readonly int SOUTH_EAST_ASIAN_TYPE = UAX29URLEmailTokenizer.SOUTHEAST_ASIAN; + + public static readonly int IDEOGRAPHIC_TYPE = UAX29URLEmailTokenizer.IDEOGRAPHIC; + + public static readonly int HIRAGANA_TYPE = UAX29URLEmailTokenizer.HIRAGANA; + + public static readonly int KATAKANA_TYPE = UAX29URLEmailTokenizer.KATAKANA; + + public static readonly int HANGUL_TYPE = UAX29URLEmailTokenizer.HANGUL; + + public static readonly int EMAIL_TYPE = UAX29URLEmailTokenizer.EMAIL; + + public static readonly int URL_TYPE = UAX29URLEmailTokenizer.URL; + + public int YyChar + { + get { return yychar; } + } + + /** + * Fills CharTermAttribute with the current token text. + */ + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public UAX29URLEmailTokenizerImpl36(TextReader @in) + { + this.zzReader = @in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 2812) + { + int count = packed[i++]; + char value = packed[i++]; + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + System.Array.Copy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + System.Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* readonlyly: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, + zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c == -1) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /** + * Closes the input stream. + */ + public void YyClose() + { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + { + zzReader.Dispose(); + } + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public void YyReset(TextReader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public int YyState + { + get { return zzLexicalState; } + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to YyText().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to YyLength()-1. + * + * @return the character at position pos + */ + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * YyPushBack(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (IndexOutOfRangeException e) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than YyLength()! + */ + public void YyPushBack(int number) + { + if (number > YyLength) + ZzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public int GetNextToken() + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; + + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yychar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + + + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + zzInput = zzBufferL[zzCurrentPosL++]; + else if (zzAtEOF) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) goto zzForActionBreak; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) goto zzForActionBreak; + } + + } + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { /* Break so we don't hit fall-through warning: */ + break;/* Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. */ + } + case 12: break; + case 2: + { + return WORD_TYPE; + } + case 13: break; + case 3: + { + return NUMERIC_TYPE; + } + case 14: break; + case 4: + { + return KATAKANA_TYPE; + } + case 15: break; + case 5: + { + return SOUTH_EAST_ASIAN_TYPE; + } + case 16: break; + case 6: + { + return IDEOGRAPHIC_TYPE; + } + case 17: break; + case 7: + { + return HIRAGANA_TYPE; + } + case 18: break; + case 8: + { + return HANGUL_TYPE; + } + case 19: break; + case 9: + { + return EMAIL_TYPE; + } + case 20: break; + case 10: + { + return URL_TYPE; + } + case 21: break; + case 11: + // lookahead expression with fixed base length + zzMarkedPos = zzStartRead + 6; + { + return WORD_TYPE; + } + case 22: break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + { + return StandardTokenizerInterface_Fields.YYEOF; + } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } +} diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std40/UAX29URLEmailTokenizerImpl40.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std40/UAX29URLEmailTokenizerImpl40.cs new file mode 100644 index 0000000000..279643f864 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std40/UAX29URLEmailTokenizerImpl40.cs @@ -0,0 +1,4453 @@ +using Lucene.Net.Analysis.Tokenattributes; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Standard.Std40 +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + ///

+ /// This class implements UAX29URLEmailTokenizer using Unicode 6.1.0. + /// @deprecated This class is only for exact backwards compatibility + /// + [Obsolete("This class is only for exact backwards compatibility")] + public sealed class UAX29URLEmailTokenizerImpl40 : IStandardTokenizerInterface + { + /** This character denotes the end of file */ + public static readonly int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static readonly int ZZ_BUFFERSIZE = 4096; + + /** lexical states */ + public const int YYINITIAL = 0; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static readonly int[] ZZ_LEXSTATE = { 0, 0 }; + + /** + * Translates characters to character classes + */ + private const string ZZ_CMAP_PACKED = + "\x0001\x00C1\x0008\x00BF\x0002\x00C1\x0002\x00BF\x0001\x00C1\x0013\x00BF\x0001\x00C2\x0001\x00BE\x0001\x00B9\x0001\x00C2" + + "\x0001\x00B2\x0001\x00B0\x0001\x00B5\x0002\x00B3\x0002\x00C2\x0001\x00B4\x0001\x00A4\x0001\x0089\x0001\x00B8\x0001\x00A5" + + "\x0001\x00A8\x0001\x00AE\x0001\x00A9\x0001\x00AC\x0001\x00A6\x0001\x00A7\x0001\x00AB\x0001\x00AD\x0001\x00AA\x0001\x00AF" + + "\x0001\x00BC\x0001\x00BF\x0001\x00BD\x0001\x00BF\x0001\x00B7\x0001\x00B6\x0001\x008A\x0001\x009E\x0001\x008B\x0001\x008C" + + "\x0001\x008D\x0001\x0090\x0001\x0091\x0001\x009F\x0001\x0092\x0001\x00A0\x0001\x00A3\x0001\x0093\x0001\x0094\x0001\x0095" + + "\x0001\x008F\x0001\x0097\x0001\x0096\x0001\x008E\x0001\x0098\x0001\x0099\x0001\x009A\x0001\x00A1\x0001\x009B\x0001\x009C" + + "\x0001\x00A2\x0001\x009D\x0001\x00BA\x0001\x00C0\x0001\x00BB\x0001\x00C3\x0001\x00B1\x0001\x00C3\x0001\x008A\x0001\x009E" + + "\x0001\x008B\x0001\x008C\x0001\x008D\x0001\x0090\x0001\x0091\x0001\x009F\x0001\x0092\x0001\x00A0\x0001\x00A3\x0001\x0093" + + "\x0001\x0094\x0001\x0095\x0001\x008F\x0001\x0097\x0001\x0096\x0001\x008E\x0001\x0098\x0001\x0099\x0001\x009A\x0001\x00A1" + + "\x0001\x009B\x0001\x009C\x0001\x00A2\x0001\x009D\x0003\x00C3\x0001\x00B0\x0001\x00C4\x002A\x0000\x0001\x007C\x0002\x0000" + + "\x0001\x007D\x0007\x0000\x0001\x007C\x0001\x0000\x0001\x0080\x0002\x0000\x0001\x007C\x0005\x0000\x0017\x007C\x0001\x0000" + + "\x001F\x007C\x0001\x0000\u01ca\x007C\x0004\x0000\x000C\x007C\x000E\x0000\x0005\x007C\x0007\x0000\x0001\x007C\x0001\x0000" + + "\x0001\x007C\x0011\x0000\x0070\x007D\x0005\x007C\x0001\x0000\x0002\x007C\x0002\x0000\x0004\x007C\x0001\x0081\x0007\x0000" + + "\x0001\x007C\x0001\x0080\x0003\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0014\x007C\x0001\x0000\x0053\x007C\x0001\x0000" + + "\x008B\x007C\x0001\x0000\x0007\x007D\x009E\x007C\x0009\x0000\x0026\x007C\x0002\x0000\x0001\x007C\x0007\x0000\x0027\x007C" + + "\x0001\x0000\x0001\x0081\x0007\x0000\x002D\x007D\x0001\x0000\x0001\x007D\x0001\x0000\x0002\x007D\x0001\x0000\x0002\x007D" + + "\x0001\x0000\x0001\x007D\x0008\x0000\x001B\x007C\x0005\x0000\x0004\x007C\x0001\x0080\x000B\x0000\x0005\x007D\x0007\x0000" + + "\x0002\x0081\x0002\x0000\x000B\x007D\x0005\x0000\x002B\x007C\x0015\x007D\x000A\x007E\x0001\x0000\x0001\x007E\x0001\x0081" + + "\x0001\x0000\x0002\x007C\x0001\x007D\x0063\x007C\x0001\x0000\x0001\x007C\x0007\x007D\x0001\x007D\x0001\x0000\x0006\x007D" + + "\x0002\x007C\x0002\x007D\x0001\x0000\x0004\x007D\x0002\x007C\x000A\x007E\x0003\x007C\x0002\x0000\x0001\x007C\x000F\x0000" + + "\x0001\x007D\x0001\x007C\x0001\x007D\x001E\x007C\x001B\x007D\x0002\x0000\x0059\x007C\x000B\x007D\x0001\x007C\x000E\x0000" + + "\x000A\x007E\x0021\x007C\x0009\x007D\x0002\x007C\x0002\x0000\x0001\x0081\x0001\x0000\x0001\x007C\x0005\x0000\x0016\x007C" + + "\x0004\x007D\x0001\x007C\x0009\x007D\x0001\x007C\x0003\x007D\x0001\x007C\x0005\x007D\x0012\x0000\x0019\x007C\x0003\x007D" + + "\x0044\x0000\x0001\x007C\x0001\x0000\x000B\x007C\x0037\x0000\x001B\x007D\x0001\x0000\x0004\x007D\x0036\x007C\x0003\x007D" + + "\x0001\x007C\x0012\x007D\x0001\x007C\x0007\x007D\x000A\x007C\x0002\x007D\x0002\x0000\x000A\x007E\x0001\x0000\x0007\x007C" + + "\x0001\x0000\x0007\x007C\x0001\x0000\x0003\x007D\x0001\x0000\x0008\x007C\x0002\x0000\x0002\x007C\x0002\x0000\x0016\x007C" + + "\x0001\x0000\x0007\x007C\x0001\x0000\x0001\x007C\x0003\x0000\x0004\x007C\x0002\x0000\x0001\x007D\x0001\x007C\x0007\x007D" + + "\x0002\x0000\x0002\x007D\x0002\x0000\x0003\x007D\x0001\x007C\x0008\x0000\x0001\x007D\x0004\x0000\x0002\x007C\x0001\x0000" + + "\x0003\x007C\x0002\x007D\x0002\x0000\x000A\x007E\x0002\x007C\x000F\x0000\x0003\x007D\x0001\x0000\x0006\x007C\x0004\x0000" + + "\x0002\x007C\x0002\x0000\x0016\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0002\x007C\x0001\x0000\x0002\x007C\x0001\x0000" + + "\x0002\x007C\x0002\x0000\x0001\x007D\x0001\x0000\x0005\x007D\x0004\x0000\x0002\x007D\x0002\x0000\x0003\x007D\x0003\x0000" + + "\x0001\x007D\x0007\x0000\x0004\x007C\x0001\x0000\x0001\x007C\x0007\x0000\x000A\x007E\x0002\x007D\x0003\x007C\x0001\x007D" + + "\x000B\x0000\x0003\x007D\x0001\x0000\x0009\x007C\x0001\x0000\x0003\x007C\x0001\x0000\x0016\x007C\x0001\x0000\x0007\x007C" + + "\x0001\x0000\x0002\x007C\x0001\x0000\x0005\x007C\x0002\x0000\x0001\x007D\x0001\x007C\x0008\x007D\x0001\x0000\x0003\x007D" + + "\x0001\x0000\x0003\x007D\x0002\x0000\x0001\x007C\x000F\x0000\x0002\x007C\x0002\x007D\x0002\x0000\x000A\x007E\x0011\x0000" + + "\x0003\x007D\x0001\x0000\x0008\x007C\x0002\x0000\x0002\x007C\x0002\x0000\x0016\x007C\x0001\x0000\x0007\x007C\x0001\x0000" + + "\x0002\x007C\x0001\x0000\x0005\x007C\x0002\x0000\x0001\x007D\x0001\x007C\x0007\x007D\x0002\x0000\x0002\x007D\x0002\x0000" + + "\x0003\x007D\x0008\x0000\x0002\x007D\x0004\x0000\x0002\x007C\x0001\x0000\x0003\x007C\x0002\x007D\x0002\x0000\x000A\x007E" + + "\x0001\x0000\x0001\x007C\x0010\x0000\x0001\x007D\x0001\x007C\x0001\x0000\x0006\x007C\x0003\x0000\x0003\x007C\x0001\x0000" + + "\x0004\x007C\x0003\x0000\x0002\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0002\x007C\x0003\x0000\x0002\x007C\x0003\x0000" + + "\x0003\x007C\x0003\x0000\x000C\x007C\x0004\x0000\x0005\x007D\x0003\x0000\x0003\x007D\x0001\x0000\x0004\x007D\x0002\x0000" + + "\x0001\x007C\x0006\x0000\x0001\x007D\x000E\x0000\x000A\x007E\x0011\x0000\x0003\x007D\x0001\x0000\x0008\x007C\x0001\x0000" + + "\x0003\x007C\x0001\x0000\x0017\x007C\x0001\x0000\x000A\x007C\x0001\x0000\x0005\x007C\x0003\x0000\x0001\x007C\x0007\x007D" + + "\x0001\x0000\x0003\x007D\x0001\x0000\x0004\x007D\x0007\x0000\x0002\x007D\x0001\x0000\x0002\x007C\x0006\x0000\x0002\x007C" + + "\x0002\x007D\x0002\x0000\x000A\x007E\x0012\x0000\x0002\x007D\x0001\x0000\x0008\x007C\x0001\x0000\x0003\x007C\x0001\x0000" + + "\x0017\x007C\x0001\x0000\x000A\x007C\x0001\x0000\x0005\x007C\x0002\x0000\x0001\x007D\x0001\x007C\x0007\x007D\x0001\x0000" + + "\x0003\x007D\x0001\x0000\x0004\x007D\x0007\x0000\x0002\x007D\x0007\x0000\x0001\x007C\x0001\x0000\x0002\x007C\x0002\x007D" + + "\x0002\x0000\x000A\x007E\x0001\x0000\x0002\x007C\x000F\x0000\x0002\x007D\x0001\x0000\x0008\x007C\x0001\x0000\x0003\x007C" + + "\x0001\x0000\x0029\x007C\x0002\x0000\x0001\x007C\x0007\x007D\x0001\x0000\x0003\x007D\x0001\x0000\x0004\x007D\x0001\x007C" + + "\x0008\x0000\x0001\x007D\x0008\x0000\x0002\x007C\x0002\x007D\x0002\x0000\x000A\x007E\x000A\x0000\x0006\x007C\x0002\x0000" + + "\x0002\x007D\x0001\x0000\x0012\x007C\x0003\x0000\x0018\x007C\x0001\x0000\x0009\x007C\x0001\x0000\x0001\x007C\x0002\x0000" + + "\x0007\x007C\x0003\x0000\x0001\x007D\x0004\x0000\x0006\x007D\x0001\x0000\x0001\x007D\x0001\x0000\x0008\x007D\x0012\x0000" + + "\x0002\x007D\x000D\x0000\x0030\x0084\x0001\x0085\x0002\x0084\x0007\x0085\x0005\x0000\x0007\x0084\x0008\x0085\x0001\x0000" + + "\x000A\x007E\x0027\x0000\x0002\x0084\x0001\x0000\x0001\x0084\x0002\x0000\x0002\x0084\x0001\x0000\x0001\x0084\x0002\x0000" + + "\x0001\x0084\x0006\x0000\x0004\x0084\x0001\x0000\x0007\x0084\x0001\x0000\x0003\x0084\x0001\x0000\x0001\x0084\x0001\x0000" + + "\x0001\x0084\x0002\x0000\x0002\x0084\x0001\x0000\x0004\x0084\x0001\x0085\x0002\x0084\x0006\x0085\x0001\x0000\x0002\x0085" + + "\x0001\x0084\x0002\x0000\x0005\x0084\x0001\x0000\x0001\x0084\x0001\x0000\x0006\x0085\x0002\x0000\x000A\x007E\x0002\x0000" + + "\x0004\x0084\x0020\x0000\x0001\x007C\x0017\x0000\x0002\x007D\x0006\x0000\x000A\x007E\x000B\x0000\x0001\x007D\x0001\x0000" + + "\x0001\x007D\x0001\x0000\x0001\x007D\x0004\x0000\x0002\x007D\x0008\x007C\x0001\x0000\x0024\x007C\x0004\x0000\x0014\x007D" + + "\x0001\x0000\x0002\x007D\x0005\x007C\x000B\x007D\x0001\x0000\x0024\x007D\x0009\x0000\x0001\x007D\x0039\x0000\x002B\x0084" + + "\x0014\x0085\x0001\x0084\x000A\x007E\x0006\x0000\x0006\x0084\x0004\x0085\x0004\x0084\x0003\x0085\x0001\x0084\x0003\x0085" + + "\x0002\x0084\x0007\x0085\x0003\x0084\x0004\x0085\x000D\x0084\x000C\x0085\x0001\x0084\x0001\x0085\x000A\x007E\x0004\x0085" + + "\x0002\x0084\x0026\x007C\x0001\x0000\x0001\x007C\x0005\x0000\x0001\x007C\x0002\x0000\x002B\x007C\x0001\x0000\x0004\x007C" + + "\u0100\x0088\x0049\x007C\x0001\x0000\x0004\x007C\x0002\x0000\x0007\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0004\x007C" + + "\x0002\x0000\x0029\x007C\x0001\x0000\x0004\x007C\x0002\x0000\x0021\x007C\x0001\x0000\x0004\x007C\x0002\x0000\x0007\x007C" + + "\x0001\x0000\x0001\x007C\x0001\x0000\x0004\x007C\x0002\x0000\x000F\x007C\x0001\x0000\x0039\x007C\x0001\x0000\x0004\x007C" + + "\x0002\x0000\x0043\x007C\x0002\x0000\x0003\x007D\x0020\x0000\x0010\x007C\x0010\x0000\x0055\x007C\x000C\x0000\u026c\x007C" + + "\x0002\x0000\x0011\x007C\x0001\x0000\x001A\x007C\x0005\x0000\x004B\x007C\x0003\x0000\x0003\x007C\x000F\x0000\x000D\x007C" + + "\x0001\x0000\x0004\x007C\x0003\x007D\x000B\x0000\x0012\x007C\x0003\x007D\x000B\x0000\x0012\x007C\x0002\x007D\x000C\x0000" + + "\x000D\x007C\x0001\x0000\x0003\x007C\x0001\x0000\x0002\x007D\x000C\x0000\x0034\x0084\x0020\x0085\x0003\x0000\x0001\x0084" + + "\x0004\x0000\x0001\x0084\x0001\x0085\x0002\x0000\x000A\x007E\x0021\x0000\x0003\x007D\x0002\x0000\x000A\x007E\x0006\x0000" + + "\x0058\x007C\x0008\x0000\x0029\x007C\x0001\x007D\x0001\x007C\x0005\x0000\x0046\x007C\x000A\x0000\x001D\x007C\x0003\x0000" + + "\x000C\x007D\x0004\x0000\x000C\x007D\x000A\x0000\x000A\x007E\x001E\x0084\x0002\x0000\x0005\x0084\x000B\x0000\x002C\x0084" + + "\x0004\x0000\x0011\x0085\x0007\x0084\x0002\x0085\x0006\x0000\x000A\x007E\x0001\x0084\x0003\x0000\x0002\x0084\x0020\x0000" + + "\x0017\x007C\x0005\x007D\x0004\x0000\x0035\x0084\x000A\x0085\x0001\x0000\x001D\x0085\x0002\x0000\x0001\x007D\x000A\x007E" + + "\x0006\x0000\x000A\x007E\x0006\x0000\x000E\x0084\x0052\x0000\x0005\x007D\x002F\x007C\x0011\x007D\x0007\x007C\x0004\x0000" + + "\x000A\x007E\x0011\x0000\x0009\x007D\x000C\x0000\x0003\x007D\x001E\x007C\x000D\x007D\x0002\x007C\x000A\x007E\x002C\x007C" + + "\x000E\x007D\x000C\x0000\x0024\x007C\x0014\x007D\x0008\x0000\x000A\x007E\x0003\x0000\x0003\x007C\x000A\x007E\x0024\x007C" + + "\x0052\x0000\x0003\x007D\x0001\x0000\x0015\x007D\x0004\x007C\x0001\x007D\x0004\x007C\x0003\x007D\x0002\x007C\x0009\x0000" + + "\x00C0\x007C\x0027\x007D\x0015\x0000\x0004\x007D\u0116\x007C\x0002\x0000\x0006\x007C\x0002\x0000\x0026\x007C\x0002\x0000" + + "\x0006\x007C\x0002\x0000\x0008\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0001\x007C\x0001\x0000" + + "\x001F\x007C\x0002\x0000\x0035\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0001\x007C\x0003\x0000\x0003\x007C\x0001\x0000" + + "\x0007\x007C\x0003\x0000\x0004\x007C\x0002\x0000\x0006\x007C\x0004\x0000\x000D\x007C\x0005\x0000\x0003\x007C\x0001\x0000" + + "\x0007\x007C\x000F\x0000\x0002\x007D\x0002\x007D\x0008\x0000\x0002\x0082\x000A\x0000\x0001\x0082\x0002\x0000\x0001\x0080" + + "\x0002\x0000\x0005\x007D\x0010\x0000\x0002\x0083\x0003\x0000\x0001\x0081\x000F\x0000\x0001\x0083\x000B\x0000\x0005\x007D" + + "\x0005\x0000\x0006\x007D\x0001\x0000\x0001\x007C\x000D\x0000\x0001\x007C\x0010\x0000\x000D\x007C\x0033\x0000\x0021\x007D" + + "\x0011\x0000\x0001\x007C\x0004\x0000\x0001\x007C\x0002\x0000\x000A\x007C\x0001\x0000\x0001\x007C\x0003\x0000\x0005\x007C" + + "\x0006\x0000\x0001\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0004\x007C\x0001\x0000\x000B\x007C" + + "\x0002\x0000\x0004\x007C\x0005\x0000\x0005\x007C\x0004\x0000\x0001\x007C\x0011\x0000\x0029\x007C\u032d\x0000\x0034\x007C" + + "\u0716\x0000\x002F\x007C\x0001\x0000\x002F\x007C\x0001\x0000\x0085\x007C\x0006\x0000\x0004\x007C\x0003\x007D\x0002\x007C" + + "\x000C\x0000\x0026\x007C\x0001\x0000\x0001\x007C\x0005\x0000\x0001\x007C\x0002\x0000\x0038\x007C\x0007\x0000\x0001\x007C" + + "\x000F\x0000\x0001\x007D\x0017\x007C\x0009\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000" + + "\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000" + + "\x0020\x007D\x002F\x0000\x0001\x007C\x0050\x0000\x001A\x0086\x0001\x0000\x0059\x0086\x000C\x0000\x00D6\x0086\x002F\x0000" + + "\x0001\x007C\x0001\x0000\x0001\x0086\x0019\x0000\x0009\x0086\x0004\x007D\x0002\x007D\x0001\x0000\x0005\x007F\x0002\x0000" + + "\x0003\x0086\x0001\x007C\x0001\x007C\x0004\x0000\x0056\x0087\x0002\x0000\x0002\x007D\x0002\x007F\x0003\x0087\x005B\x007F" + + "\x0001\x0000\x0004\x007F\x0005\x0000\x0029\x007C\x0003\x0000\x005E\x0088\x0011\x0000\x001B\x007C\x0035\x0000\x0010\x007F" + + "\x001F\x0000\x0041\x0000\x001F\x0000\x0051\x0000\x002F\x007F\x0001\x0000\x0058\x007F\x00A8\x0000\u19b6\x0086\x004A\x0000" + + "\u51cd\x0086\x0033\x0000\u048d\x007C\x0043\x0000\x002E\x007C\x0002\x0000\u010d\x007C\x0003\x0000\x0010\x007C\x000A\x007E" + + "\x0002\x007C\x0014\x0000\x002F\x007C\x0004\x007D\x0001\x0000\x000A\x007D\x0001\x0000\x0019\x007C\x0007\x0000\x0001\x007D" + + "\x0050\x007C\x0002\x007D\x0025\x0000\x0009\x007C\x0002\x0000\x0067\x007C\x0002\x0000\x0004\x007C\x0001\x0000\x0004\x007C" + + "\x000C\x0000\x000B\x007C\x004D\x0000\x000A\x007C\x0001\x007D\x0003\x007C\x0001\x007D\x0004\x007C\x0001\x007D\x0017\x007C" + + "\x0005\x007D\x0018\x0000\x0034\x007C\x000C\x0000\x0002\x007D\x0032\x007C\x0011\x007D\x000B\x0000\x000A\x007E\x0006\x0000" + + "\x0012\x007D\x0006\x007C\x0003\x0000\x0001\x007C\x0004\x0000\x000A\x007E\x001C\x007C\x0008\x007D\x0002\x0000\x0017\x007C" + + "\x000D\x007D\x000C\x0000\x001D\x0088\x0003\x0000\x0004\x007D\x002F\x007C\x000E\x007D\x000E\x0000\x0001\x007C\x000A\x007E" + + "\x0026\x0000\x0029\x007C\x000E\x007D\x0009\x0000\x0003\x007C\x0001\x007D\x0008\x007C\x0002\x007D\x0002\x0000\x000A\x007E" + + "\x0006\x0000\x001B\x0084\x0001\x0085\x0004\x0000\x0030\x0084\x0001\x0085\x0001\x0084\x0003\x0085\x0002\x0084\x0002\x0085" + + "\x0005\x0084\x0002\x0085\x0001\x0084\x0001\x0085\x0001\x0084\x0018\x0000\x0005\x0084\x000B\x007C\x0005\x007D\x0002\x0000" + + "\x0003\x007C\x0002\x007D\x000A\x0000\x0006\x007C\x0002\x0000\x0006\x007C\x0002\x0000\x0006\x007C\x0009\x0000\x0007\x007C" + + "\x0001\x0000\x0007\x007C\x0091\x0000\x0023\x007C\x0008\x007D\x0001\x0000\x0002\x007D\x0002\x0000\x000A\x007E\x0006\x0000" + + "\u2ba4\x0088\x000C\x0000\x0017\x0088\x0004\x0000\x0031\x0088\x0004\x0000\x0001\x0024\x0001\x0020\x0001\x0037\x0001\x0034" + + "\x0001\x001B\x0001\x0018\x0002\x0000\x0001\x0014\x0001\x0011\x0002\x0000\x0001\x000F\x0001\x000D\x000C\x0000\x0001\x0003" + + "\x0001\x0006\x0010\x0000\x0001\x006E\x0007\x0000\x0001\x0049\x0001\x0008\x0005\x0000\x0001\x0001\x0001\x007A\x0003\x0000" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0074\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0078\x0001\x0076\x000F\x0000\x0001\x0070\u02c1\x0000" + + "\x0001\x004C\x00BF\x0000\x0001\x006F\x0001\x004D\x0001\x000E\x0003\x0077\x0002\x0032\x0001\x0077\x0001\x0032\x0002\x0077" + + "\x0001\x001E\x0011\x0077\x0002\x0046\x0007\x004F\x0001\x004E\x0007\x004F\x0007\x0042\x0001\x001F\x0001\x0042\x0001\x0058" + + "\x0002\x0036\x0001\x0035\x0001\x0058\x0001\x0036\x0001\x0035\x0008\x0058\x0002\x0047\x0005\x0043\x0002\x003D\x0005\x0043" + + "\x0001\x0012\x0008\x002B\x0005\x0013\x0003\x0021\x000A\x0067\x0010\x0021\x0003\x0033\x001A\x0023\x0001\x0022\x0002\x0031" + + "\x0002\x006C\x0001\x006D\x0002\x006C\x0002\x006D\x0002\x006C\x0001\x006D\x0003\x0031\x0001\x0030\x0002\x0031\x000A\x0048" + + "\x0001\x0056\x0001\x0028\x0001\x0025\x0001\x0048\x0006\x0028\x0001\x0025\x000B\x0028\x0019\x0031\x0007\x0028\x000A\x0068" + + "\x0001\x0028\x0005\x000B\x0003\x0057\x0003\x0041\x0001\x0040\x0004\x0041\x0002\x0040\x0008\x0041\x0001\x0040\x0007\x001D" + + "\x0001\x001C\x0002\x001D\x0007\x0041\x000E\x0057\x0001\x0061\x0004\x006A\x0001\x0004\x0004\x0069\x0001\x0004\x0005\x0060" + + "\x0001\x005F\x0001\x0060\x0003\x005F\x0007\x0060\x0001\x005F\x0013\x0060\x0005\x004B\x0003\x0060\x0006\x004B\x0002\x004B" + + "\x0006\x004A\x0005\x004A\x0003\x005C\x0002\x0041\x0007\x005B\x001E\x0041\x0004\x005B\x0005\x0041\x0005\x0057\x0006\x0055" + + "\x0002\x0057\x0001\x0055\x0004\x001D\x000B\x005E\x000A\x0069\x0016\x005E\x000D\x000B\x0001\x005D\x0002\x000B\x0001\x007B" + + "\x0003\x0062\x0001\x000B\x0002\x0062\x0005\x0071\x0004\x0062\x0004\x0072\x0001\x0071\x0003\x0072\x0001\x0071\x0005\x0072" + + "\x0002\x0038\x0001\x003B\x0002\x0038\x0001\x003B\x0001\x0038\x0002\x003B\x0001\x0038\x0001\x003B\x000A\x0038\x0001\x003B" + + "\x0004\x0005\x0001\x0064\x0001\x0063\x0001\x0065\x0001\x000A\x0003\x0075\x0001\x0065\x0002\x0075\x0001\x0059\x0002\x005A" + + "\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0003\x000A\x0001\x0075\x0002\x000A" + + "\x0001\x0075\x0001\x000A\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A" + + "\x0001\x0075\x0001\x000A\x0001\x003E\x0002\x003A\x0001\x003E\x0001\x003A\x0002\x003E\x0004\x003A\x0001\x003E\x0007\x003A" + + "\x0001\x003E\x0004\x003A\x0001\x003E\x0004\x003A\x0001\x0075\x0001\x000A\x0001\x0075\x000A\x0019\x0001\x002F\x0011\x0019" + + "\x0001\x002F\x0003\x001A\x0001\x002F\x0003\x0019\x0001\x002F\x0001\x0019\x0002\x0002\x0002\x0019\x0001\x002F\x000D\x0054" + + "\x0004\x0027\x0004\x002C\x0001\x0066\x0001\x002E\x0008\x0066\x0007\x002C\x0006\x0075\x0004\x0015\x0001\x0017\x001F\x0015" + + "\x0001\x0017\x0004\x0015\x0015\x0045\x0001\x0079\x0009\x0045\x0011\x0016\x0005\x0045\x0001\x0007\x000A\x002D\x0005\x0045" + + "\x0006\x0044\x0004\x003E\x0001\x003F\x0001\x0016\x0005\x0053\x000A\x0051\x000F\x0053\x0001\x003C\x0003\x0039\x000C\x0050" + + "\x0001\x0009\x0009\x0026\x0001\x002A\x0005\x0026\x0004\x0052\x000B\x0029\x0002\x000C\x0009\x0026\x0001\x002A\x0019\x0026" + + "\x0001\x002A\x0004\x0009\x0004\x0026\x0002\x002A\x0002\x006B\x0001\x0010\x0005\x006B\x002A\x0010\u1900\x0000\u016e\x0086" + + "\x0002\x0000\x006A\x0086\x0026\x0000\x0007\x007C\x000C\x0000\x0005\x007C\x0005\x0000\x0001\x007C\x0001\x007D\x000A\x007C" + + "\x0001\x0000\x000D\x007C\x0001\x0000\x0005\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0002\x007C\x0001\x0000\x0002\x007C" + + "\x0001\x0000\x006C\x007C\x0021\x0000\u016b\x007C\x0012\x0000\x0040\x007C\x0002\x0000\x0036\x007C\x0028\x0000\x000C\x007C" + + "\x0004\x0000\x0010\x007D\x0001\x0081\x0002\x0000\x0001\x0080\x0001\x0081\x000B\x0000\x0007\x007D\x000C\x0000\x0002\x0083" + + "\x0018\x0000\x0003\x0083\x0001\x0081\x0001\x0000\x0001\x0082\x0001\x0000\x0001\x0081\x0001\x0080\x001A\x0000\x0005\x007C" + + "\x0001\x0000\x0087\x007C\x0002\x0000\x0001\x007D\x0007\x0000\x0001\x0082\x0004\x0000\x0001\x0081\x0001\x0000\x0001\x0082" + + "\x0001\x0000\x000A\x007E\x0001\x0080\x0001\x0081\x0005\x0000\x001A\x007C\x0004\x0000\x0001\x0083\x0001\x0000\x001A\x007C" + + "\x000B\x0000\x0038\x007F\x0002\x007D\x001F\x0088\x0003\x0000\x0006\x0088\x0002\x0000\x0006\x0088\x0002\x0000\x0006\x0088" + + "\x0002\x0000\x0003\x0088\x001C\x0000\x0003\x007D\x0004\x0000"; + + /** + * Translates characters to character classes + */ + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = + "\x0001\x0000\x0016\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + + "\x0001\x0007\x0001\x0008\x0001\x0001\x0004\x0002\x0003\x0003\x0003\x0001\x0010\x0000\x0001\x0002" + + "\x0001\x0000\x0001\x0002\x000A\x0000\x0001\x0003\x0011\x0000\x0001\x0002\x001A\x0000\x0002\x0002" + + "\x0001\x0000\x0004\x0002\x0001\x0000\x0001\x0003\x0001\x0000\x0002\x0003\x0001\x0002\x0001\x0003" + + "\x0037\x0000\x001A\x0002\x0003\x0000\x0005\x0002\x001A\x0000\x0004\x0003\x0011\x0000\x0001\x0009" + + "\x0001\x0000\x0006\x000A\x0003\x0002\x0002\x000A\x0001\x0002\x0004\x000A\x0002\x0002\x0002\x000A" + + "\x0002\x0000\x0001\x0002\x0001\x0000\x0002\x0002\x0006\x000A\x0003\x0000\x0002\x000A\x0001\x0000" + + "\x0004\x000A\x0002\x0000\x0002\x000A\x0001\x0000\x0002\x0003\x0008\x0000\x0001\x000A\x001A\x0000" + + "\x0001\x000A\x0001\x0000\x0003\x000A\x0006\x0002\x0001\x0000\x0001\x0002\x0002\x0000\x0002\x0002" + + "\x0001\x0000\x0001\x000A\x0008\x0000\x0003\x0003\x000D\x0000\x0003\x000A\x0006\x0009\x0003\x0000" + + "\x0002\x0009\x0001\x0000\x0004\x0009\x0002\x0000\x0002\x0009\x0002\x000A\x0001\x0000\x0002\x000A" + + "\x0001\x0000\x0002\x000A\x0001\x0000\x0001\x000A\x0002\x0002\x0003\x0000\x0001\x0002\x0004\x0000" + + "\x0002\x0003\x0010\x0000\x0001\x0009\x0008\x0000\x0001\x000A\x0003\x0000\x0001\x0002\x0020\x0000" + + "\x0003\x000A\x0013\x0000\x0001\x000A\x0020\x0000\x0001\x000A\x0004\x0000\x0001\x000A\x0006\x0000" + + "\x0001\x0002\x0002\x0000\x0001\x000A\x0004\x0000\x0002\x000A\x0023\x0000\x0001\x000A\x002F\x0000" + + "\x0002\x0002\x0008\x0000\x0001\x000A\x002B\x0000\x0001\x000A\x003A\x0000\x0001\x000A\x0068\x0000" + + "\x0001\x000B\x0001\x0000\x0001\x000A\x007F\x0000\x0001\x000A\x005A\x0000\x0006\x000B\x0003\x0000" + + "\x0002\x000B\x0001\x0000\x0004\x000B\x0002\x0000\x0002\x000B\x0001\x000A\x004A\x0000\x0001\x000B" + + "\x0008\x0000\x0001\x000A\x0034\x0000\x0001\x000A\u01eb\x0000"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[1750]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private const string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x00C5\x0000\u018a\x0000\u024f\x0000\u0314\x0000\u03d9\x0000\u049e\x0000\u0563" + + "\x0000\u0628\x0000\u06ed\x0000\u07b2\x0000\u0877\x0000\u093c\x0000\u0a01\x0000\u0ac6\x0000\u0b8b" + + "\x0000\u0c50\x0000\u0d15\x0000\u0dda\x0000\u0e9f\x0000\u0f64\x0000\u1029\x0000\u10ee\x0000\u11b3" + + "\x0000\u1278\x0000\u133d\x0000\u1402\x0000\u14c7\x0000\u158c\x0000\u1651\x0000\u1716\x0000\u17db" + + "\x0000\u18a0\x0000\u1965\x0000\u1a2a\x0000\u1aef\x0000\u1bb4\x0000\u1c79\x0000\u1d3e\x0000\u1e03" + + "\x0000\u1ec8\x0000\u1f8d\x0000\u018a\x0000\u024f\x0000\u2052\x0000\u2117\x0000\u049e\x0000\u0563" + + "\x0000\u0628\x0000\u06ed\x0000\u21dc\x0000\u22a1\x0000\u2366\x0000\u242b\x0000\u0ac6\x0000\u24f0" + + "\x0000\u25b5\x0000\u267a\x0000\u273f\x0000\u2804\x0000\u28c9\x0000\u298e\x0000\u03d9\x0000\u2a53" + + "\x0000\u2b18\x0000\u093c\x0000\u2bdd\x0000\u2ca2\x0000\u2d67\x0000\u2e2c\x0000\u2ef1\x0000\u2fb6" + + "\x0000\u307b\x0000\u3140\x0000\u3205\x0000\u32ca\x0000\u338f\x0000\u3454\x0000\u3519\x0000\u35de" + + "\x0000\u36a3\x0000\u3768\x0000\u382d\x0000\u38f2\x0000\u39b7\x0000\u3a7c\x0000\u3b41\x0000\u3c06" + + "\x0000\u1402\x0000\u3ccb\x0000\u3d90\x0000\u3e55\x0000\u3f1a\x0000\u3fdf\x0000\u40a4\x0000\u4169" + + "\x0000\u422e\x0000\u42f3\x0000\u43b8\x0000\u447d\x0000\u4542\x0000\u4607\x0000\u46cc\x0000\u4791" + + "\x0000\u4856\x0000\u491b\x0000\u49e0\x0000\u4aa5\x0000\u4b6a\x0000\u4c2f\x0000\u4cf4\x0000\u4db9" + + "\x0000\u17db\x0000\u4e7e\x0000\u4f43\x0000\u5008\x0000\u50cd\x0000\u5192\x0000\u5257\x0000\u531c" + + "\x0000\u53e1\x0000\u54a6\x0000\u556b\x0000\u5630\x0000\u56f5\x0000\u57ba\x0000\u587f\x0000\u5944" + + "\x0000\u5a09\x0000\u5ace\x0000\u1e03\x0000\u5b93\x0000\u5c58\x0000\u1f8d\x0000\u5d1d\x0000\u5de2" + + "\x0000\u5ea7\x0000\u5f6c\x0000\u6031\x0000\u60f6\x0000\u61bb\x0000\u6280\x0000\u6345\x0000\u640a" + + "\x0000\u64cf\x0000\u6594\x0000\u6659\x0000\u671e\x0000\u67e3\x0000\u68a8\x0000\u696d\x0000\u6a32" + + "\x0000\u6af7\x0000\u6bbc\x0000\u6c81\x0000\u6d46\x0000\u6e0b\x0000\u6ed0\x0000\u6f95\x0000\u705a" + + "\x0000\u711f\x0000\u71e4\x0000\u72a9\x0000\u736e\x0000\u7433\x0000\u74f8\x0000\u75bd\x0000\u7682" + + "\x0000\u7747\x0000\u780c\x0000\u78d1\x0000\u7996\x0000\u7a5b\x0000\u7b20\x0000\u7be5\x0000\u7caa" + + "\x0000\u7d6f\x0000\u7e34\x0000\u7ef9\x0000\u7fbe\x0000\u8083\x0000\u8148\x0000\u820d\x0000\u82d2" + + "\x0000\u8397\x0000\u845c\x0000\u8521\x0000\u85e6\x0000\u86ab\x0000\u8770\x0000\u8835\x0000\u88fa" + + "\x0000\u89bf\x0000\u8a84\x0000\u8b49\x0000\u8c0e\x0000\u8cd3\x0000\u8d98\x0000\u8e5d\x0000\u8f22" + + "\x0000\u8fe7\x0000\u90ac\x0000\u9171\x0000\u9236\x0000\u92fb\x0000\u93c0\x0000\u9485\x0000\u954a" + + "\x0000\u960f\x0000\u96d4\x0000\u9799\x0000\u985e\x0000\u9923\x0000\u99e8\x0000\u9aad\x0000\u9b72" + + "\x0000\u9c37\x0000\u9cfc\x0000\u9dc1\x0000\u9e86\x0000\u9f4b\x0000\ua010\x0000\ua0d5\x0000\ua19a" + + "\x0000\ua25f\x0000\ua324\x0000\ua3e9\x0000\ua4ae\x0000\ua573\x0000\ua638\x0000\ua6fd\x0000\ua7c2" + + "\x0000\ua887\x0000\ua94c\x0000\uaa11\x0000\uaad6\x0000\uab9b\x0000\uac60\x0000\uad25\x0000\uadea" + + "\x0000\uaeaf\x0000\uaf74\x0000\ub039\x0000\ub0fe\x0000\ub1c3\x0000\ub288\x0000\ub34d\x0000\ub412" + + "\x0000\ub4d7\x0000\ub59c\x0000\ub661\x0000\ub726\x0000\ub7eb\x0000\ub8b0\x0000\ub975\x0000\uba3a" + + "\x0000\ubaff\x0000\ubbc4\x0000\ubc89\x0000\ubd4e\x0000\ube13\x0000\ubed8\x0000\ubf9d\x0000\uc062" + + "\x0000\uc127\x0000\uc1ec\x0000\x00C5\x0000\uc2b1\x0000\uc376\x0000\uc43b\x0000\uc500\x0000\uc5c5" + + "\x0000\uc68a\x0000\uc74f\x0000\uc814\x0000\uc8d9\x0000\uc99e\x0000\uca63\x0000\ucb28\x0000\ucbed" + + "\x0000\uccb2\x0000\ucd77\x0000\uce3c\x0000\ucf01\x0000\ucfc6\x0000\ud08b\x0000\ud150\x0000\ud215" + + "\x0000\ud2da\x0000\ud39f\x0000\ud464\x0000\ud529\x0000\ud5ee\x0000\ud6b3\x0000\ud778\x0000\ud83d" + + "\x0000\ud902\x0000\ud9c7\x0000\uda8c\x0000\udb51\x0000\udc16\x0000\udcdb\x0000\udda0\x0000\ude65" + + "\x0000\udf2a\x0000\udfef\x0000\ue0b4\x0000\ue179\x0000\ue23e\x0000\ue303\x0000\ue3c8\x0000\ue48d" + + "\x0000\ue552\x0000\ue617\x0000\ue6dc\x0000\ue7a1\x0000\ue866\x0000\ue92b\x0000\ue9f0\x0000\ueab5" + + "\x0000\ueb7a\x0000\uec3f\x0000\ued04\x0000\uedc9\x0000\uee8e\x0000\uef53\x0000\uf018\x0000\uf0dd" + + "\x0000\uf1a2\x0000\uf267\x0000\uf32c\x0000\uf3f1\x0000\uf4b6\x0000\uf57b\x0000\uf640\x0000\uf705" + + "\x0000\uf7ca\x0000\uf88f\x0000\uf954\x0000\ufa19\x0000\ufade\x0000\ufba3\x0000\ufc68\x0000\ufd2d" + + "\x0000\ufdf2\x0000\ufeb7\x0000\uff7c\x0001\x0041\x0001\u0106\x0001\u01cb\x0001\u0290\x0001\u0355" + + "\x0001\u041a\x0001\u04df\x0001\u05a4\x0001\u0669\x0001\u072e\x0001\u07f3\x0001\u08b8\x0001\u097d" + + "\x0001\u0a42\x0001\u0b07\x0001\u0bcc\x0001\u0c91\x0001\u0d56\x0001\u0e1b\x0001\u0ee0\x0001\u0fa5" + + "\x0001\u106a\x0001\u112f\x0001\u11f4\x0001\u12b9\x0001\u137e\x0001\u1443\x0001\u1508\x0001\u15cd" + + "\x0001\u1692\x0001\u1757\x0001\u181c\x0001\u18e1\x0001\u19a6\x0001\u1a6b\x0001\u1b30\x0001\u1bf5" + + "\x0001\u1cba\x0001\u1d7f\x0001\u1e44\x0001\u1f09\x0001\u1fce\x0001\u2093\x0001\u2158\x0001\u221d" + + "\x0001\u22e2\x0001\u23a7\x0001\u246c\x0001\u2531\x0001\u25f6\x0001\u26bb\x0001\u2780\x0001\u2845" + + "\x0001\u290a\x0001\u29cf\x0001\u2a94\x0001\u2b59\x0001\u2c1e\x0001\u2ce3\x0001\u2da8\x0001\u2e6d" + + "\x0001\u2f32\x0001\u2ff7\x0001\u30bc\x0001\u3181\x0001\u3246\x0001\u330b\x0001\u33d0\x0001\u3495" + + "\x0001\u355a\x0001\u361f\x0001\u36e4\x0001\u37a9\x0001\u386e\x0001\u3933\x0001\u39f8\x0001\u3abd" + + "\x0001\u3b82\x0001\u3c47\x0001\u3d0c\x0001\u3dd1\x0001\u3e96\x0001\u3f5b\x0001\u4020\x0001\u40e5" + + "\x0001\u41aa\x0001\u426f\x0001\u4334\x0001\u43f9\x0001\u44be\x0001\u4583\x0001\u4648\x0001\u470d" + + "\x0001\u47d2\x0001\u4897\x0001\u495c\x0001\u4a21\x0001\u4ae6\x0001\u4bab\x0001\u4c70\x0001\u4d35" + + "\x0001\u4dfa\x0001\u4ebf\x0001\u4f84\x0001\u5049\x0001\u510e\x0001\u51d3\x0001\u5298\x0001\u535d" + + "\x0000\uc127\x0001\u5422\x0001\u54e7\x0001\u55ac\x0001\u5671\x0001\u5736\x0001\u57fb\x0001\u58c0" + + "\x0001\u5985\x0001\u5a4a\x0001\u5b0f\x0001\u5bd4\x0001\u5c99\x0001\u5d5e\x0001\u5e23\x0001\u5ee8" + + "\x0001\u5fad\x0001\u6072\x0001\u6137\x0001\u61fc\x0001\u62c1\x0001\u6386\x0001\u644b\x0001\u6510" + + "\x0001\u65d5\x0001\u669a\x0001\u675f\x0001\u6824\x0001\u68e9\x0001\u69ae\x0001\u6a73\x0001\u6b38" + + "\x0001\u6bfd\x0001\u6cc2\x0001\u6d87\x0001\u6e4c\x0001\u6f11\x0001\u6fd6\x0001\u709b\x0001\u7160" + + "\x0001\u7225\x0001\u72ea\x0001\u73af\x0001\u7474\x0001\u7539\x0001\u75fe\x0001\u76c3\x0001\u7788" + + "\x0001\u784d\x0001\u7912\x0001\u79d7\x0001\u7a9c\x0001\u7b61\x0001\u7c26\x0001\u7ceb\x0001\u7db0" + + "\x0001\u7e75\x0001\u7f3a\x0001\u7fff\x0001\u80c4\x0001\u8189\x0001\u824e\x0001\u8313\x0001\u83d8" + + "\x0001\u849d\x0001\u8562\x0001\u8627\x0001\u86ec\x0001\u87b1\x0001\u8876\x0001\u893b\x0001\u8a00" + + "\x0001\u8ac5\x0001\u8b8a\x0001\u8c4f\x0001\u8d14\x0001\u8dd9\x0001\u8e9e\x0001\u8f63\x0001\u9028" + + "\x0001\u90ed\x0001\u91b2\x0001\u9277\x0001\u933c\x0001\u9401\x0001\u94c6\x0001\u958b\x0001\u9650" + + "\x0001\u9715\x0001\u97da\x0001\u989f\x0001\u9964\x0001\u9a29\x0001\u9aee\x0001\u9bb3\x0001\u9c78" + + "\x0001\u9d3d\x0001\u9e02\x0001\u9ec7\x0001\u9f8c\x0001\ua051\x0001\ua116\x0001\ua1db\x0001\ua2a0" + + "\x0001\ua365\x0001\ua42a\x0001\ua4ef\x0001\ua5b4\x0001\ua679\x0001\ua73e\x0001\ua803\x0001\ua8c8" + + "\x0001\ua98d\x0001\uaa52\x0001\uab17\x0001\uabdc\x0001\uaca1\x0001\uad66\x0001\uae2b\x0001\uaef0" + + "\x0000\u1ec8\x0001\uafb5\x0001\ub07a\x0001\ub13f\x0001\ub204\x0001\ub2c9\x0001\ub38e\x0001\ub453" + + "\x0001\ub518\x0001\ub5dd\x0001\ub6a2\x0001\ub767\x0001\ub82c\x0001\ub8f1\x0001\ub9b6\x0001\uba7b" + + "\x0001\ubb40\x0001\ubc05\x0001\ubcca\x0001\ubd8f\x0001\ube54\x0001\ubf19\x0001\ubfde\x0001\uc0a3" + + "\x0001\uc168\x0001\uc22d\x0001\uc2f2\x0001\uc3b7\x0001\uc47c\x0001\uc541\x0001\uc606\x0001\uc6cb" + + "\x0001\uc790\x0001\uc855\x0001\uc91a\x0001\uc9df\x0001\ucaa4\x0001\ucb69\x0001\ucc2e\x0001\uccf3" + + "\x0001\ucdb8\x0001\uce7d\x0001\ucf42\x0001\ud007\x0001\ud0cc\x0001\ud191\x0001\ud256\x0001\ud31b" + + "\x0001\ud3e0\x0001\ud4a5\x0001\ud56a\x0001\ud62f\x0001\ud6f4\x0001\ud7b9\x0001\ud87e\x0001\ud943" + + "\x0001\uda08\x0001\udacd\x0001\udb92\x0001\udc57\x0001\udd1c\x0001\udde1\x0001\udea6\x0001\udf6b" + + "\x0001\ue030\x0001\ue0f5\x0001\ue1ba\x0001\ue27f\x0001\ue344\x0001\ue409\x0001\ue4ce\x0001\ue593" + + "\x0001\ue658\x0001\ue71d\x0001\ue7e2\x0001\ue8a7\x0001\ue96c\x0001\uea31\x0001\ueaf6\x0001\uebbb" + + "\x0001\uec80\x0001\ued45\x0001\uee0a\x0001\ueecf\x0001\uef94\x0001\uf059\x0001\uf11e\x0001\uf1e3" + + "\x0001\uf2a8\x0001\uf36d\x0001\uf432\x0001\uf4f7\x0001\uf5bc\x0001\uf681\x0001\uf746\x0001\uf80b" + + "\x0001\uf8d0\x0001\uf995\x0001\ufa5a\x0001\ufb1f\x0001\ufbe4\x0001\ufca9\x0001\ufd6e\x0001\ufe33" + + "\x0001\ufef8\x0001\uffbd\x0002\x0082\x0002\u0147\x0002\u020c\x0002\u02d1\x0002\u0396\x0002\u045b" + + "\x0002\u0520\x0002\u05e5\x0002\u06aa\x0002\u076f\x0002\u0834\x0002\u08f9\x0002\u09be\x0002\u0a83" + + "\x0002\u0b48\x0002\u0c0d\x0002\u0cd2\x0002\u0d97\x0002\u0e5c\x0002\u0f21\x0002\u0fe6\x0002\u10ab" + + "\x0002\u1170\x0002\u1235\x0002\u12fa\x0002\u13bf\x0002\u1484\x0002\u1549\x0002\u160e\x0002\u16d3" + + "\x0002\u1798\x0002\u185d\x0002\u1922\x0002\u19e7\x0002\u1aac\x0002\u1b71\x0002\u1c36\x0002\u1cfb" + + "\x0002\u1dc0\x0002\u1e85\x0002\u1f4a\x0002\u200f\x0002\u20d4\x0002\u2199\x0002\u225e\x0002\u2323" + + "\x0002\u23e8\x0002\u24ad\x0002\u2572\x0002\u2637\x0002\u26fc\x0002\u27c1\x0002\u2886\x0002\u294b" + + "\x0002\u2a10\x0002\u2ad5\x0002\u2b9a\x0002\u2c5f\x0002\u2d24\x0002\u2de9\x0002\u2eae\x0002\u2f73" + + "\x0002\u3038\x0002\u30fd\x0002\u31c2\x0002\u3287\x0002\u334c\x0002\u3411\x0002\u34d6\x0002\u359b" + + "\x0002\u3660\x0002\u3725\x0002\u37ea\x0002\u38af\x0002\u3974\x0002\u3a39\x0002\u3afe\x0002\u3bc3" + + "\x0002\u3c88\x0002\u3d4d\x0002\u3e12\x0002\u3ed7\x0002\u3f9c\x0002\u4061\x0002\u4126\x0002\u41eb" + + "\x0002\u42b0\x0002\u4375\x0002\u443a\x0002\u44ff\x0002\u45c4\x0002\u4689\x0002\u474e\x0002\u4813" + + "\x0002\u48d8\x0002\u499d\x0002\u4a62\x0002\u4b27\x0002\u4bec\x0002\u4cb1\x0002\u4d76\x0002\u4e3b" + + "\x0002\u4f00\x0002\u4fc5\x0002\u508a\x0002\u514f\x0002\u5214\x0002\u52d9\x0002\u539e\x0002\u5463" + + "\x0002\u5528\x0002\u55ed\x0002\u56b2\x0002\u5777\x0002\u583c\x0002\u5901\x0002\u59c6\x0002\u5a8b" + + "\x0002\u5b50\x0002\u5c15\x0002\u5cda\x0002\u5d9f\x0002\u5e64\x0002\u5f29\x0002\u5fee\x0002\u60b3" + + "\x0002\u6178\x0002\u623d\x0002\u6302\x0002\u63c7\x0002\u648c\x0002\u6551\x0002\u6616\x0002\u66db" + + "\x0002\u67a0\x0002\u6865\x0002\u692a\x0002\u69ef\x0002\u6ab4\x0002\u6b79\x0002\u6c3e\x0002\u6d03" + + "\x0002\u6dc8\x0002\u6e8d\x0002\u6f52\x0002\u7017\x0002\u70dc\x0002\u71a1\x0002\u7266\x0002\u732b" + + "\x0002\u73f0\x0002\u74b5\x0002\u757a\x0002\u763f\x0002\u7704\x0002\u77c9\x0002\u788e\x0002\u7953" + + "\x0002\u7a18\x0002\u7add\x0002\u7ba2\x0002\u7c67\x0002\u7d2c\x0002\u7df1\x0002\u7eb6\x0002\u7f7b" + + "\x0002\u8040\x0002\u8105\x0002\u81ca\x0002\u828f\x0002\u8354\x0002\u8419\x0002\u84de\x0002\u85a3" + + "\x0002\u8668\x0002\u872d\x0002\u87f2\x0002\u88b7\x0002\u897c\x0002\u8a41\x0002\u8b06\x0002\u8bcb" + + "\x0002\u8c90\x0002\u8d55\x0002\u8e1a\x0002\u8edf\x0002\u8fa4\x0002\u9069\x0002\u912e\x0002\u91f3" + + "\x0002\u92b8\x0002\u937d\x0002\u9442\x0002\u9507\x0002\u95cc\x0002\u9691\x0002\u9756\x0002\u981b" + + "\x0000\x00C5\x0002\u98e0\x0002\u99a5\x0002\u9a6a\x0002\u9b2f\x0002\u9bf4\x0002\u9cb9\x0002\u9d7e" + + "\x0002\u9e43\x0002\u9f08\x0002\u9fcd\x0002\ua092\x0002\ua157\x0002\ua21c\x0002\ua2e1\x0002\ua3a6" + + "\x0002\ua46b\x0002\ua530\x0002\ua5f5\x0002\ua6ba\x0002\ua77f\x0002\ua844\x0002\ua909\x0002\ua9ce" + + "\x0002\uaa93\x0002\uab58\x0002\uac1d\x0002\uace2\x0002\uada7\x0002\uae6c\x0002\uaf31\x0002\uaff6" + + "\x0002\ub0bb\x0002\ub180\x0002\ub245\x0002\ub30a\x0002\ub3cf\x0002\ub494\x0002\ub559\x0002\ub61e" + + "\x0002\ub6e3\x0002\ub7a8\x0002\ub86d\x0002\ub932\x0002\ub9f7\x0002\ubabc\x0002\ubb81\x0002\ubc46" + + "\x0002\ubd0b\x0002\ubdd0\x0002\ube95\x0002\ubf5a\x0002\uc01f\x0002\uc0e4\x0002\uc1a9\x0002\uc26e" + + "\x0002\uc333\x0002\uc3f8\x0002\uc4bd\x0002\uc582\x0002\uc647\x0002\uc70c\x0002\uc7d1\x0002\uc896" + + "\x0002\uc95b\x0002\uca20\x0002\ucae5\x0002\ucbaa\x0002\ucc6f\x0002\ucd34\x0002\ucdf9\x0002\ucebe" + + "\x0002\ucf83\x0002\ud048\x0002\ud10d\x0002\ud1d2\x0002\ud297\x0002\ud35c\x0002\ud421\x0002\ud4e6" + + "\x0002\ud5ab\x0002\ud670\x0002\ud735\x0002\ud7fa\x0002\ud8bf\x0002\ud984\x0002\uda49\x0002\udb0e" + + "\x0002\udbd3\x0002\udc98\x0002\udd5d\x0002\ude22\x0002\udee7\x0002\udfac\x0002\ue071\x0002\ue136" + + "\x0002\ue1fb\x0002\ue2c0\x0002\ue385\x0002\ue44a\x0002\ue50f\x0002\ue5d4\x0002\ue699\x0002\ue75e" + + "\x0002\ue823\x0002\ue8e8\x0002\ue9ad\x0002\uea72\x0002\ueb37\x0002\uebfc\x0002\uecc1\x0002\ued86" + + "\x0002\uee4b\x0002\uef10\x0002\uefd5\x0002\uf09a\x0002\uf15f\x0002\uf224\x0002\uf2e9\x0002\uf3ae" + + "\x0002\uf473\x0002\uf538\x0002\uf5fd\x0002\uf6c2\x0002\uf787\x0002\uf84c\x0002\uf911\x0002\uf9d6" + + "\x0002\ufa9b\x0002\ufb60\x0002\ufc25\x0002\ufcea\x0002\ufdaf\x0002\ufe74\x0002\uff39\x0002\ufffe" + + "\x0003\x00C3\x0003\u0188\x0003\u024d\x0003\u0312\x0003\u03d7\x0003\u049c\x0003\u0561\x0003\u0626" + + "\x0003\u06eb\x0003\u07b0\x0003\u0875\x0003\u093a\x0003\u09ff\x0003\u0ac4\x0003\u0b89\x0003\u0c4e" + + "\x0003\u0d13\x0003\u0dd8\x0003\u0e9d\x0003\u0f62\x0003\u1027\x0003\u10ec\x0003\u11b1\x0003\u1276" + + "\x0003\u133b\x0003\u1400\x0003\u14c5\x0003\u158a\x0003\u164f\x0003\u1714\x0003\u17d9\x0003\u189e" + + "\x0003\u1963\x0003\u1a28\x0003\u1aed\x0003\u1bb2\x0003\u1c77\x0003\u1d3c\x0003\u1e01\x0003\u1ec6" + + "\x0003\u1f8b\x0003\u2050\x0003\u2115\x0003\u21da\x0003\u229f\x0003\u2364\x0003\u2429\x0003\u24ee" + + "\x0003\u25b3\x0003\u2678\x0003\u273d\x0003\u2802\x0003\u28c7\x0003\u298c\x0003\u2a51\x0003\u2b16" + + "\x0003\u2bdb\x0003\u2ca0\x0003\u2d65\x0003\u2e2a\x0003\u2eef\x0003\u2fb4\x0003\u3079\x0003\u313e" + + "\x0003\u3203\x0003\u32c8\x0003\u338d\x0003\u3452\x0003\u3517\x0003\u35dc\x0003\u36a1\x0003\u3766" + + "\x0003\u382b\x0003\u38f0\x0003\u39b5\x0003\u3a7a\x0003\u3b3f\x0003\u3c04\x0003\u3cc9\x0003\u3d8e" + + "\x0003\u3e53\x0003\u3f18\x0003\u3fdd\x0003\u40a2\x0003\u4167\x0003\u422c\x0003\u42f1\x0003\u43b6" + + "\x0003\u447b\x0003\u4540\x0003\u4605\x0003\u46ca\x0003\u478f\x0003\u4854\x0003\u4919\x0003\u49de" + + "\x0003\u4aa3\x0003\u4b68\x0003\u4c2d\x0003\u4cf2\x0003\u4db7\x0003\u4e7c\x0003\u4f41\x0003\u5006" + + "\x0003\u50cb\x0003\u5190\x0003\u5255\x0003\u531a\x0003\u53df\x0003\u54a4\x0003\u5569\x0003\u562e" + + "\x0003\u56f3\x0003\u57b8\x0003\u587d\x0003\u5942\x0003\u5a07\x0003\u5acc\x0003\u5b91\x0003\u5c56" + + "\x0003\u5d1b\x0003\u5de0\x0003\u5ea5\x0003\u5f6a\x0003\u602f\x0003\u60f4\x0003\u61b9\x0003\u627e" + + "\x0003\u6343\x0003\u6408\x0003\u64cd\x0003\u6592\x0003\u6657\x0003\u671c\x0003\u67e1\x0003\u68a6" + + "\x0003\u696b\x0003\u6a30\x0003\u6af5\x0003\u6bba\x0003\u6c7f\x0003\u6d44\x0003\u6e09\x0003\u6ece" + + "\x0003\u6f93\x0003\u7058\x0003\u711d\x0003\u71e2\x0003\u72a7\x0003\u736c\x0003\u7431\x0003\u74f6" + + "\x0003\u75bb\x0003\u7680\x0003\u7745\x0003\u780a\x0003\u78cf\x0003\u7994\x0003\u7a59\x0003\u7b1e" + + "\x0003\u7be3\x0003\u7ca8\x0003\u7d6d\x0003\u7e32\x0003\u7ef7\x0003\u7fbc\x0003\u8081\x0003\u8146" + + "\x0003\u820b\x0003\u82d0\x0003\u8395\x0003\u845a\x0003\u851f\x0003\u85e4\x0003\u86a9\x0003\u876e" + + "\x0003\u8833\x0003\u88f8\x0003\u89bd\x0003\u8a82\x0002\u9756\x0003\u8b47\x0003\u8c0c\x0003\u8cd1" + + "\x0003\u8d96\x0003\u8e5b\x0003\u8f20\x0003\u8fe5\x0003\u90aa\x0003\u916f\x0003\u9234\x0003\u92f9" + + "\x0003\u93be\x0003\u9483\x0003\u9548\x0003\u960d\x0003\u96d2\x0003\u9797\x0003\u985c\x0003\u9921" + + "\x0003\u99e6\x0003\u9aab\x0003\u9b70\x0003\u9c35\x0003\u9cfa\x0003\u9dbf\x0003\u9e84\x0003\u9f49" + + "\x0003\ua00e\x0003\ua0d3\x0003\ua198\x0003\ua25d\x0003\ua322\x0003\ua3e7\x0003\ua4ac\x0003\ua571" + + "\x0003\ua636\x0003\ua6fb\x0003\ua7c0\x0003\ua885\x0003\ua94a\x0003\uaa0f\x0003\uaad4\x0003\uab99" + + "\x0003\uac5e\x0003\uad23\x0003\uade8\x0003\uaead\x0003\uaf72\x0003\ub037\x0003\ub0fc\x0003\ub1c1" + + "\x0003\ub286\x0003\ub34b\x0003\ub410\x0003\ub4d5\x0003\ub59a\x0003\ub65f\x0003\ub724\x0003\ub7e9" + + "\x0003\ub8ae\x0003\ub973\x0003\uba38\x0003\ubafd\x0003\ubbc2\x0003\ubc87\x0003\ubd4c\x0003\ube11" + + "\x0003\ubed6\x0003\ubf9b\x0003\uc060\x0003\uc125\x0003\uc1ea\x0003\uc2af\x0003\uc374\x0003\uc439" + + "\x0003\uc4fe\x0003\uc5c3\x0003\uc688\x0003\uc74d\x0003\uc812\x0003\uc8d7\x0003\uc99c\x0003\uca61" + + "\x0003\ucb26\x0003\ucbeb\x0003\uccb0\x0003\ucd75\x0003\uce3a\x0003\uceff\x0003\ucfc4\x0003\ud089" + + "\x0003\ud14e\x0003\ud213\x0003\ud2d8\x0003\ud39d\x0003\ud462\x0003\ud527\x0003\ud5ec\x0003\ud6b1" + + "\x0003\ud776\x0003\ud83b\x0003\ud900\x0003\ud9c5\x0003\uda8a\x0003\udb4f\x0003\udc14\x0003\udcd9" + + "\x0003\udd9e\x0003\ude63\x0003\udf28\x0003\udfed\x0003\ue0b2\x0003\ue177\x0003\ue23c\x0003\ue301" + + "\x0003\ue3c6\x0003\ue48b\x0003\ue550\x0003\ue615\x0003\ue6da\x0003\ue79f\x0003\ue864\x0003\ue929" + + "\x0003\ue9ee\x0003\ueab3\x0003\ueb78\x0003\uec3d\x0003\ued02\x0003\uedc7\x0003\uee8c\x0003\uef51" + + "\x0003\uf016\x0003\uf0db\x0003\uf1a0\x0003\uf265\x0003\uf32a\x0003\uf3ef\x0003\uf4b4\x0003\uf579" + + "\x0003\uf63e\x0003\uf703\x0003\uf7c8\x0003\uf88d\x0003\uf952\x0003\ufa17\x0003\ufadc\x0003\ufba1" + + "\x0003\ufc66\x0003\ufd2b\x0003\ufdf0\x0003\ufeb5\x0003\uff7a\x0004\x003F\x0004\u0104\x0004\u01c9" + + "\x0004\u028e\x0004\u0353\x0004\u0418\x0004\u04dd\x0004\u05a2\x0004\u0667\x0004\u072c\x0004\u07f1" + + "\x0004\u08b6\x0004\u097b\x0004\u0a40\x0004\u0b05\x0004\u0bca\x0004\u0c8f\x0004\u0d54\x0004\u0e19" + + "\x0004\u0ede\x0004\u0fa3\x0004\u1068\x0004\u112d\x0004\u11f2\x0004\u12b7\x0004\u137c\x0004\u1441" + + "\x0004\u1506\x0004\u15cb\x0004\u1690\x0004\u1755\x0004\u181a\x0004\u18df\x0004\u19a4\x0004\u1a69" + + "\x0004\u1b2e\x0004\u1bf3\x0004\u1cb8\x0004\u1d7d\x0004\u1e42\x0004\u1f07\x0004\u1fcc\x0004\u2091" + + "\x0004\u2156\x0004\u221b\x0004\u22e0\x0004\u23a5\x0004\u246a\x0004\u252f\x0004\u25f4\x0004\u26b9" + + "\x0004\u277e\x0004\u2843\x0004\u2908\x0004\u29cd\x0004\u2a92\x0004\u2b57\x0004\u2c1c\x0004\u2ce1" + + "\x0004\u2da6\x0004\u2e6b\x0004\u2f30\x0004\u2ff5\x0004\u30ba\x0004\u317f\x0004\u3244\x0004\u3309" + + "\x0004\u33ce\x0004\u3493\x0004\u3558\x0004\u361d\x0004\u36e2\x0004\u37a7\x0004\u386c\x0004\u3931" + + "\x0004\u39f6\x0004\u3abb\x0004\u3b80\x0004\u3c45\x0004\u3d0a\x0004\u3dcf\x0004\u3e94\x0004\u3f59" + + "\x0004\u401e\x0004\u40e3\x0004\u41a8\x0004\u426d\x0004\u4332\x0004\u43f7\x0004\u44bc\x0004\u4581" + + "\x0004\u4646\x0004\u470b\x0004\u47d0\x0004\u4895\x0004\u495a\x0004\u4a1f\x0004\u4ae4\x0004\u4ba9" + + "\x0004\u4c6e\x0004\u4d33\x0004\u4df8\x0004\u4ebd\x0004\u4f82\x0004\u5047\x0004\u510c\x0004\u51d1" + + "\x0004\u5296\x0004\u535b\x0004\u5420\x0004\u54e5\x0004\u55aa\x0004\u566f\x0004\u5734\x0004\u57f9" + + "\x0004\u58be\x0004\u5983\x0004\u5a48\x0004\u5b0d\x0004\u5bd2\x0004\u5c97\x0004\u5d5c\x0004\u5e21" + + "\x0004\u5ee6\x0004\u5fab\x0004\u6070\x0004\u6135\x0004\u61fa\x0004\u62bf\x0004\u6384\x0004\u6449" + + "\x0004\u650e\x0004\u65d3\x0004\u6698\x0004\u675d\x0004\u6822\x0004\u68e7\x0004\u69ac\x0004\u6a71" + + "\x0004\u6b36\x0004\u6bfb\x0004\u6cc0\x0004\u6d85\x0004\u6e4a\x0004\u6f0f\x0004\u6fd4\x0004\u7099" + + "\x0004\u715e\x0004\u7223\x0004\u72e8\x0004\u73ad\x0004\u7472\x0004\u7537\x0004\u75fc\x0004\u76c1" + + "\x0004\u7786\x0004\u784b\x0004\u7910\x0004\u79d5\x0004\u7a9a\x0004\u7b5f\x0004\u7c24\x0004\u7ce9" + + "\x0004\u7dae\x0004\u7e73\x0004\u7f38\x0004\u7ffd\x0004\u80c2\x0004\u8187\x0004\u824c\x0004\u8311" + + "\x0004\u83d6\x0004\u849b\x0004\u8560\x0004\u8625\x0004\u86ea\x0004\u87af\x0004\u8874\x0004\u8939" + + "\x0004\u89fe\x0004\u8ac3\x0004\u8b88\x0004\u8c4d\x0004\u8d12\x0004\u8dd7\x0004\u8e9c\x0004\u8f61" + + "\x0004\u9026\x0004\u90eb\x0004\u91b0\x0004\u9275\x0004\u933a\x0004\u93ff\x0004\u94c4\x0004\u9589" + + "\x0004\u964e\x0004\u9713\x0004\u97d8\x0004\u989d\x0004\u9962\x0004\u9a27\x0004\u9aec\x0004\u9bb1" + + "\x0004\u9c76\x0004\u9d3b\x0004\u9e00\x0004\u9ec5\x0004\u9f8a\x0004\ua04f\x0004\ua114\x0004\ua1d9" + + "\x0004\ua29e\x0004\ua363\x0004\ua428\x0004\ua4ed\x0004\ua5b2\x0004\ua677\x0004\ua73c\x0004\ua801" + + "\x0004\ua8c6\x0004\ua98b\x0004\uaa50\x0004\uab15\x0004\uabda\x0004\uac9f\x0004\uad64\x0004\uae29" + + "\x0004\uaeee\x0004\uafb3\x0004\ub078\x0004\ub13d\x0004\ub202\x0004\ub2c7\x0004\ub38c\x0004\ub451" + + "\x0004\ub516\x0004\ub5db\x0004\ub6a0\x0004\ub765\x0004\ub82a\x0004\ub8ef\x0004\ub9b4\x0004\uba79" + + "\x0004\ubb3e\x0004\ubc03\x0004\ubcc8\x0004\ubd8d\x0004\ube52\x0004\ubf17\x0004\ubfdc\x0004\uc0a1" + + "\x0004\uc166\x0004\uc22b\x0004\uc2f0\x0004\uc3b5\x0004\uc47a\x0004\uc53f\x0004\uc604\x0004\uc6c9" + + "\x0004\uc78e\x0004\uc853\x0004\uc918\x0004\uc9dd\x0004\ucaa2\x0004\ucb67\x0004\ucc2c\x0004\uccf1" + + "\x0004\ucdb6\x0004\uce7b\x0004\ucf40\x0004\ud005\x0004\ud0ca\x0004\ud18f\x0004\ud254\x0004\ud319" + + "\x0004\ud3de\x0004\ud4a3\x0004\ud568\x0004\ud62d\x0004\ud6f2\x0004\ud7b7\x0004\ud87c\x0004\ud941" + + "\x0004\uda06\x0004\udacb\x0004\udb90\x0004\udc55\x0004\udd1a\x0004\udddf\x0004\udea4\x0004\udf69" + + "\x0004\ue02e\x0004\ue0f3\x0004\ue1b8\x0004\ue27d\x0004\ue342\x0004\ue407\x0004\ue4cc\x0004\ue591" + + "\x0004\ue656\x0004\ue71b\x0004\ue7e0\x0004\ue8a5\x0004\ue96a\x0004\uea2f\x0004\ueaf4\x0004\uebb9" + + "\x0004\uec7e\x0004\ued43\x0004\uee08\x0004\ueecd\x0004\uef92\x0004\uf057\x0004\uf11c\x0004\uf1e1" + + "\x0004\uf2a6\x0004\uf36b\x0004\uf430\x0004\uf4f5\x0004\uf5ba\x0004\uf67f\x0004\uf744\x0004\uf809" + + "\x0004\uf8ce\x0004\uf993\x0004\ufa58\x0004\ufb1d\x0004\ufbe2\x0004\ufca7\x0004\ufd6c\x0004\ufe31" + + "\x0004\ufef6\x0004\uffbb\x0005\x0080\x0005\u0145\x0005\u020a\x0005\u02cf\x0005\u0394\x0005\u0459" + + "\x0005\u051e\x0005\u05e3\x0005\u06a8\x0005\u076d\x0005\u0832\x0005\u08f7\x0005\u09bc\x0005\u0a81" + + "\x0005\u0b46\x0005\u0c0b\x0005\u0cd0\x0005\u0d95\x0005\u0e5a\x0005\u0f1f\x0005\u0fe4\x0005\u10a9" + + "\x0005\u116e\x0005\u1233\x0005\u12f8\x0005\u13bd\x0005\u1482\x0005\u1547\x0005\u160c\x0005\u16d1" + + "\x0005\u1796\x0005\u185b\x0005\u1920\x0005\u19e5\x0005\u1aaa\x0005\u1b6f\x0005\u1c34\x0005\u1cf9" + + "\x0005\u1dbe\x0005\u1e83\x0005\u1f48\x0005\u200d\x0005\u20d2\x0005\u2197\x0005\u225c\x0005\u2321" + + "\x0005\u23e6\x0005\u24ab\x0005\u2570\x0005\u2635\x0005\u26fa\x0005\u27bf\x0005\u2884\x0005\u2949" + + "\x0005\u2a0e\x0005\u2ad3\x0005\u2b98\x0005\u2c5d\x0005\u2d22\x0005\u2de7\x0005\u2eac\x0005\u2f71" + + "\x0005\u3036\x0005\u30fb\x0005\u31c0\x0005\u3285\x0005\u334a\x0005\u340f"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[1750]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /** + * The transition table of the DFA + */ + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0002\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + + "\x0004\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0001\x0002\x0001\x0009\x0002\x0002\x0001\x000A" + + "\x0003\x0002\x0001\x000B\x0002\x0002\x0001\x000C\x0004\x0002\x0001\x000D\x0003\x0002\x0001\x000E" + + "\x000F\x0002\x0001\x000F\x0002\x0002\x0001\x0010\x0036\x0002\x0001\x0011\x0001\x0002\x0001\x0012" + + "\x0002\x0002\x0001\x0013\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0002" + + "\x0001\x0017\x0001\x0002\x0001\x0018\x0001\x0002\x0001\x0019\x0001\x001A\x0003\x0002\x0001\x001B" + + "\x0002\x001C\x0001\x001D\x0001\x001E\x0001\x001F\x0001\x0020\x0006\x0021\x0001\x0022\x0003\x0021" + + "\x0001\x0023\x000A\x0021\x0001\x0024\x0004\x0021\x0001\x0020\x0001\x0025\x0002\x0026\x0001\x0025" + + "\x0005\x0026\x0001\x0027\x0001\x0002\x0001\x0020\x0001\x0028\x0001\x0020\x0001\x0002\x0002\x0020" + + "\x0001\x0002\x0003\x0020\x0001\x0029\x0002\x0002\x0001\x0020\x0001\x002A\x0003\x0002\x0002\x0020" + + "\x0001\x0002\x00C7\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x000E\x0000" + + "\x0001\x0018\x000D\x0000\x0001\x0018\x0010\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0019\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0008\x0000\x0002\x0018\x000D\x0000\x0002\x0018\x0008\x0000" + + "\x0001\x0018\x004D\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0003\x0000" + + "\x0002\x0018\x0008\x0000\x0004\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018\x0002\x0000" + + "\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0005\x0000\x0004\x0018\x0002\x0000" + + "\x0008\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0050\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x0017\x0000\x0001\x0018\x0033\x0000\x0001\x0018\x0050\x0000\x0001\x0018\x0003\x0000" + + "\x0004\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0002\x0018\x0002\x0000\x0002\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0004\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0002\x0000" + + "\x0008\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0009\x0018\x0001\x0000\x0008\x0018\x0001\x0000" + + "\x000B\x0018\x0001\x0019\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0057\x0000\x0001\x0018" + + "\x000F\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0006\x0000\x0003\x0018" + + "\x001F\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x004F\x0000\x0001\x0018\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0004\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0004\x0018" + + "\x0001\x0000\x0003\x0018\x0001\x0000\x000F\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0011\x0018" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x0021\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0057\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x000A\x0000\x0002\x0018\x000B\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0004\x0000\x0002\x0018" + + "\x0002\x0000\x0002\x0018\x0005\x0000\x0003\x0018\x0008\x0000\x0001\x0018\x0016\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x004F\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0001\x0000\x0003\x0018" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x0004\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0002\x0018\x0002\x0000\x0009\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x000C\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0003\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0018\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x004B\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0019" + + "\x0001\x0018\x0036\x0000\x0001\x0019\x0062\x0000\x0001\x0019\x0017\x0000\x0004\x0018\x0002\x0000" + + "\x0002\x0018\x000C\x0000\x0003\x0018\x000D\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0007\x0000" + + "\x0002\x0018\x000B\x0000\x0001\x0018\x000B\x0000\x0004\x0019\x0001\x0000\x0002\x0018\x0009\x0000" + + "\x0001\x0018\x005B\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x000A\x0000\x0002\x0018\x0001\x0000" + + "\x0003\x0018\x0007\x0000\x0001\x0018\x0006\x0000\x0002\x0018\x0001\x0000\x0002\x0018\x0006\x0000" + + "\x0001\x0018\x0004\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0005\x0000\x0003\x0018\x0008\x0000" + + "\x0001\x0018\x000E\x0000\x0001\x0018\x0004\x0000\x0002\x0019\x0001\x0000\x0001\x0018\x0007\x0000" + + "\x0001\x0018\x004F\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000" + + "\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0006\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0059\x0000\x0001\x0018\x000F\x0000\x0002\x0018\x0012\x0000\x0001\x0018\x0002\x0000" + + "\x0002\x0018\x000B\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0005\x0000\x0003\x0018\x0008\x0000" + + "\x0001\x0018\x0016\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0054\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000" + + "\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000" + + "\x0002\x0018\x0004\x0000\x0001\x0018\x0008\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0096\x0000" + + "\x0001\x001E\x0021\x0000\x0001\x001A\x0059\x0000\x0001\x001D\x0006\x0000\x0001\x001D\x0002\x0000" + + "\x0001\x001D\x0003\x0000\x0002\x001D\x0008\x0000\x0004\x001D\x0001\x0000\x0003\x001D\x0001\x0000" + + "\x0001\x001D\x0002\x0000\x0001\x001D\x0002\x0000\x0001\x001D\x0004\x0000\x0004\x001D\x0001\x0000" + + "\x0002\x001D\x0006\x0000\x0001\x001D\x0002\x0000\x0004\x001D\x0002\x0000\x0003\x001D\x0001\x0000" + + "\x0002\x001D\x0001\x0000\x0003\x001D\x0005\x0000\x0004\x001D\x0002\x0000\x0008\x001D\x0004\x0000" + + "\x0004\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0004\x0000" + + "\x0001\x001D\x0003\x0000\x0001\x001D\x004B\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0001\x0000" + + "\x0001\x001D\x0001\x0000\x0004\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000" + + "\x0002\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0004\x001D\x0001\x0000" + + "\x0003\x001D\x0001\x0000\x000F\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0011\x001D\x0001\x0000" + + "\x0002\x001D\x0001\x0000\x0021\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0002\x0000" + + "\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x004B\x0000" + + "\x0001\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0004\x001D\x0001\x0000" + + "\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0002\x0000\x0001\x001D\x0002\x0000" + + "\x0002\x001D\x0001\x0000\x0004\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x000F\x001D\x0001\x0000" + + "\x0002\x001D\x0001\x0000\x0011\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0021\x001D\x0001\x0000" + + "\x0001\x001D\x0001\x0000\x0002\x001D\x0002\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000" + + "\x0001\x001D\x0001\x0000\x0001\x001D\x0057\x0000\x0001\x001D\x000F\x0000\x0001\x001D\x0013\x0000" + + "\x0001\x001D\x001A\x0000\x0001\x001D\x0021\x0000\x0001\x001D\x0007\x0000\x0001\x001D\x004F\x0000" + + "\x0001\x001D\x0001\x0000\x0002\x001D\x0003\x0000\x0004\x001D\x0001\x0000\x0001\x001D\x0001\x0000" + + "\x0001\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x0002\x001D\x0001\x0000" + + "\x0004\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x0008\x001D\x0001\x0000\x0006\x001D\x0001\x0000" + + "\x0002\x001D\x0001\x0000\x0011\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0021\x001D\x0001\x0000" + + "\x0001\x001D\x0001\x0000\x0002\x001D\x0002\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000" + + "\x0001\x001D\x0001\x0000\x0001\x001D\x00C4\x0000\x0001\x001E\x004A\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x003C\x001A\x0018\x0001\x0000\x000A\x003B\x0001\x003C\x0001\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003C\x0010\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E" + + "\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042" + + "\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045" + + "\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\x0047\x001A\x0018\x0001\x0000\x000A\x0019" + + "\x0002\x0000\x0001\x0048\x0002\x0000\x0002\x0047\x0006\x0000\x0001\x0047\x000E\x0000\x0001\x0049" + + "\x0011\x0000\x0001\x004A\x0002\x0000\x0001\x004B\x0008\x0000\x0001\x004C\x0012\x0000\x0001\x004D" + + "\x0011\x0000\x0001\x004E\x0002\x0000\x0001\x004F\x0021\x0000\x0001\x0050\x000E\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0003\x0000\x0001\x003D\x0001\x0000\x0001\x001A\x002B\x0000\x0001\x003D" + + "\x0014\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0051\x0001\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0052\x0002\x0000\x0001\x0053\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0054" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0055\x0011\x0000\x0001\x0056\x0002\x0000\x0001\x0057" + + "\x0021\x0000\x0001\x0058\x000D\x0000\x0001\x0018\x0001\x0059\x0001\x0019\x0001\x005A\x0003\x0000" + + "\x0001\x0059\x0001\x0000\x0001\x0059\x0002\x0000\x0001\x0018\x0001\x0000\x001A\x0018\x0001\x0000" + + "\x000A\x0019\x0002\x0000\x0001\x0059\x0097\x0000\x0002\x001C\x0045\x0000\x0001\x005B\x0011\x0000" + + "\x0001\x005C\x0002\x0000\x0001\x005D\x0008\x0000\x0001\x005E\x0012\x0000\x0001\x005F\x0011\x0000" + + "\x0001\x0060\x0002\x0000\x0001\x0061\x0030\x0000\x0001\x001D\x0007\x0000\x0001\x001D\x0045\x0000" + + "\x0001\x0062\x0011\x0000\x0001\x0063\x0002\x0000\x0001\x0064\x0008\x0000\x0001\x0065\x0012\x0000" + + "\x0001\x0066\x0011\x0000\x0001\x0067\x0002\x0000\x0001\x0068\x0030\x0000\x0001\x001E\x0007\x0000" + + "\x0001\x001E\x0040\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0069\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x006A\x0002\x0000\x0001\x006B\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x006C\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x006D\x0011\x0000\x0001\x006E\x0002\x0000" + + "\x0001\x006F\x002F\x0000\x0001\x0018\x0001\x001F\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x001F\x0002\x0000\x0001\x001F\x0001\x003C\x001A\x0018" + + "\x0001\x0000\x000A\x003B\x0001\x003C\x0001\x0000\x0001\x003D\x0003\x0000\x0001\x003C\x0098\x0000" + + "\x0001\x0070\x0025\x0071\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0073\x001A\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071" + + "\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0008\x0021\x0001\x0078" + + "\x0006\x0021\x0001\x0079\x000A\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0001\x007A" + + "\x0019\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000" + + "\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A" + + "\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x000F\x0021\x0001\x007B\x000A\x0021" + + "\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000" + + "\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000" + + "\x0001\x0018\x0001\x007C\x001A\x0021\x0001\x0074\x000A\x0026\x0001\x0000\x0001\x0071\x0001\x007D" + + "\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E" + + "\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042" + + "\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045" + + "\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\x007C\x001A\x0021\x0001\x0074\x000A\x007F" + + "\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071" + + "\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000" + + "\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019" + + "\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\x007C" + + "\x001A\x0021\x0001\x0074\x0001\x0026\x0001\x0080\x0001\x007F\x0002\x0026\x0002\x007F\x0001\x0026" + + "\x0001\x007F\x0001\x0026\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E" + + "\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0051\x0001\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0052\x0002\x0000\x0001\x0053\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0054\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0055\x0011\x0000\x0001\x0056\x0002\x0000\x0001\x0057\x0021\x0000" + + "\x0001\x0058\x000D\x0000\x0001\x0018\x0001\x0059\x0001\x0019\x0001\x005A\x0003\x0000\x0001\x0059" + + "\x0001\x0000\x0001\x0059\x0002\x0000\x0001\x0018\x0001\x0070\x001A\x0081\x0001\x0071\x000A\x0082" + + "\x0001\x0000\x0001\x0071\x0001\x0083\x0001\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000\x0004\x0084\x0002\x0000\x0001\x0084" + + "\x000D\x0000\x0001\x0084\x0006\x0000\x000A\x0084\x0001\x0085\x009E\x0000\x0035\x0086\x0001\x0087" + + "\x0001\x0086\x0001\x0088\x0001\x0000\x0002\x0086\x0008\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0008\x0000\x0001\x0018\x000A\x0000\x0004\x0018\x0025\x0000\x0001\x0018" + + "\x0050\x0000\x0001\x0018\x0003\x0000\x0004\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x003B" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0002\x0000\x0003\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018\x0001\x0000\x0003\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0004\x0018" + + "\x0001\x0000\x0002\x0018\x0002\x0000\x0008\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0009\x0018" + + "\x0001\x0000\x0008\x0018\x0001\x0000\x000B\x0018\x0001\x003B\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x004B\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x003B\x0001\x0018" + + "\x0024\x0000\x0001\x0018\x0011\x0000\x0001\x003B\x0062\x0000\x0001\x003B\x0009\x0000\x0001\x0018" + + "\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0004\x0018\x0001\x0000\x0002\x0018" + + "\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0003\x0018" + + "\x0005\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000A\x0000\x0004\x003B\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x005B\x0000\x0001\x0018\x0003\x0000\x0002\x0018" + + "\x000A\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0007\x0000\x0001\x0018\x0006\x0000\x0002\x0018" + + "\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0004\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0005\x0000\x0003\x0018\x0008\x0000\x0001\x0018\x000E\x0000\x0001\x0018\x0004\x0000\x0002\x003B" + + "\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x004F\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018" + + "\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0003\x0018" + + "\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0052\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018" + + "\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0002\x0018" + + "\x0002\x0000\x0002\x0018\x0004\x0000\x0005\x0018\x0004\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0093\x0000\x0002\x0018\x000D\x0000\x0004\x0018\x006C\x0000\x0001\x0018\x000D\x0000\x0002\x0018" + + "\x0008\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0009\x0000\x0001\x0018" + + "\x0009\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0002\x0000\x0004\x0018\x0003\x0000\x0001\x0018" + + "\x0002\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0002\x0018" + + "\x0002\x0000\x0002\x0018\x0001\x0000\x0004\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0002\x0018" + + "\x005B\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0089\x0001\x0000\x0001\x002E" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x008A\x0002\x0000\x0001\x008B\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x008C" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x008D\x0011\x0000\x0001\x008E\x0002\x0000\x0001\x008F" + + "\x002F\x0000\x0001\x0018\x0002\x003B\x0002\x0000\x0002\x0090\x0001\x003D\x0001\x0000\x0001\x003B" + + "\x0002\x0000\x0001\x0018\x0001\x0090\x001A\x0018\x0001\x0000\x000A\x003B\x0002\x0000\x0001\x003D" + + "\x0002\x0000\x0002\x0090\x0006\x0000\x0001\x0090\x0009\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x0091\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000\x0001\x0094" + + "\x0004\x0000\x0001\x0095\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0097" + + "\x0011\x0000\x0001\x0098\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C\x0007\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x0018\x0001\x0000\x001A\x0018\x0022\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x009A\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x009B\x0002\x0000" + + "\x0001\x009C\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x009D\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x009E\x0011\x0000\x0001\x009F\x0002\x0000\x0001\x00A0\x0021\x0000\x0001\x0058\x000D\x0000" + + "\x0001\x0018\x0001\x003D\x0001\x003B\x0001\x005A\x0003\x0000\x0001\x003D\x0001\x0000\x0001\x003D" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x001A\x0018\x0001\x0000\x000A\x003B\x0002\x0000\x0001\x003D" + + "\x001A\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0008\x0000\x0001\x0018" + + "\x000A\x0000\x0004\x0019\x0025\x0000\x0001\x0018\x004D\x0000\x0001\x0018\x0016\x0000\x0002\x0018" + + "\x0013\x0000\x0001\x0019\x0001\x0018\x0024\x0000\x0001\x0019\x0011\x0000\x0001\x0019\x0062\x0000" + + "\x0001\x0019\x0009\x0000\x0001\x0019\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000" + + "\x0003\x0018\x0001\x0019\x0001\x0000\x0002\x0019\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0002\x0018\x0005\x0000\x0004\x0019\x0002\x0000" + + "\x0001\x0018\x0001\x0019\x000A\x0000\x0004\x0019\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0019" + + "\x0007\x0000\x0001\x0018\x004F\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018" + + "\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0019\x0001\x0000\x0002\x0018" + + "\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0052\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018" + + "\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0004\x0000\x0001\x0018\x0004\x0019\x0004\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0093\x0000" + + "\x0002\x0019\x000D\x0000\x0004\x0019\x006C\x0000\x0001\x0019\x000D\x0000\x0002\x0019\x0008\x0000" + + "\x0002\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0009\x0000\x0001\x0019\x0009\x0000" + + "\x0002\x0019\x0006\x0000\x0001\x0019\x0002\x0000\x0004\x0019\x0003\x0000\x0001\x0019\x0002\x0000" + + "\x0002\x0019\x0001\x0000\x0003\x0019\x0005\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000" + + "\x0002\x0019\x0001\x0000\x0004\x0019\x0005\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0060\x0000" + + "\x0001\x00A1\x0001\x0000\x0001\x00A2\x000F\x0000\x0001\x00A3\x0002\x0000\x0001\x00A4\x0004\x0000" + + "\x0001\x00A5\x0003\x0000\x0001\x00A6\x0012\x0000\x0001\x00A7\x0011\x0000\x0001\x00A8\x0002\x0000" + + "\x0001\x00A9\x0030\x0000\x0001\x0047\x0001\x0019\x0006\x0000\x0001\x0047\x001F\x0000\x000A\x0019" + + "\x0017\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x00AA\x0001\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x00AB\x0002\x0000\x0001\x00AC\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x00AD" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x00AE\x0011\x0000\x0001\x00AF\x0002\x0000\x0001\x00B0" + + "\x0021\x0000\x0001\x0058\x000D\x0000\x0001\x0018\x0001\x0048\x0001\x0019\x0001\x005A\x0003\x0000" + + "\x0001\x0048\x0001\x0000\x0001\x0048\x0002\x0000\x0001\x0018\x0001\x0000\x001A\x0018\x0001\x0000" + + "\x000A\x0019\x0002\x0000\x0001\x0048\x004C\x0000\x0001\x001A\x0002\x0000\x0001\x001A\x0013\x0000" + + "\x0004\x001A\x00C5\x0000\x0001\x001A\x007E\x0000\x0001\x001A\x0024\x0000\x0001\x001A\x0001\x0000" + + "\x0002\x001A\x0011\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x0007\x0000\x0004\x001A\x0003\x0000" + + "\x0001\x001A\x0012\x0000\x0001\x001A\x00B2\x0000\x0001\x001A\x00C9\x0000\x0004\x001A\x00A9\x0000" + + "\x0002\x001A\x000D\x0000\x0004\x001A\x006C\x0000\x0001\x001A\x000D\x0000\x0002\x001A\x0008\x0000" + + "\x0002\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0009\x0000\x0001\x001A\x0009\x0000" + + "\x0002\x001A\x0006\x0000\x0001\x001A\x0002\x0000\x0004\x001A\x0003\x0000\x0001\x001A\x0002\x0000" + + "\x0002\x001A\x0001\x0000\x0003\x001A\x0005\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0002\x0000" + + "\x0002\x001A\x0001\x0000\x0004\x001A\x0005\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x00C9\x0000" + + "\x0001\x001A\x005C\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x0059\x0002\x0000\x0001\x0059\x0008\x0000" + + "\x0001\x0018\x000A\x0000\x0004\x0059\x0025\x0000\x0001\x0018\x004D\x0000\x0001\x0018\x0016\x0000" + + "\x0002\x0018\x0013\x0000\x0001\x0019\x0001\x0018\x0024\x0000\x0001\x0059\x0011\x0000\x0001\x0019" + + "\x0062\x0000\x0001\x0019\x0009\x0000\x0001\x0059\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018" + + "\x000C\x0000\x0003\x0018\x0001\x0059\x0001\x0000\x0002\x0059\x0009\x0000\x0003\x0018\x0003\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0059\x0004\x0000\x0001\x0059\x0002\x0018\x0005\x0000\x0004\x0059" + + "\x0002\x0000\x0001\x0018\x0001\x0059\x000A\x0000\x0004\x0019\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0001\x0059\x0007\x0000\x0001\x0018\x004F\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000" + + "\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0059\x0001\x0000" + + "\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000" + + "\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0052\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000" + + "\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000" + + "\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x0059\x0004\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0093\x0000\x0002\x0059\x000D\x0000\x0004\x0059\x006C\x0000\x0001\x0059\x000D\x0000\x0002\x0059" + + "\x0008\x0000\x0002\x0059\x0001\x0000\x0001\x0059\x0001\x0000\x0001\x0059\x0009\x0000\x0001\x0059" + + "\x0009\x0000\x0002\x0059\x0006\x0000\x0001\x0059\x0002\x0000\x0004\x0059\x0003\x0000\x0001\x0059" + + "\x0002\x0000\x0002\x0059\x0001\x0000\x0003\x0059\x0005\x0000\x0001\x0059\x0001\x0000\x0002\x0059" + + "\x0002\x0000\x0002\x0059\x0001\x0000\x0004\x0059\x0005\x0000\x0001\x0059\x0001\x0000\x0002\x0059" + + "\x00C9\x0000\x0001\x005A\x005B\x0000\x0001\x00B1\x0011\x0000\x0001\x00B2\x0002\x0000\x0001\x00B3" + + "\x0008\x0000\x0001\x00B4\x0012\x0000\x0001\x00B5\x0011\x0000\x0001\x00B6\x0002\x0000\x0001\x00B7" + + "\x0021\x0000\x0001\x0058\x000E\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0003\x0000\x0001\x003D" + + "\x0001\x0000\x0001\x005A\x002B\x0000\x0001\x003D\x004C\x0000\x0001\x001D\x0002\x0000\x0001\x001D" + + "\x0013\x0000\x0004\x001D\x00C5\x0000\x0001\x001D\x007E\x0000\x0001\x001D\x0024\x0000\x0001\x001D" + + "\x0001\x0000\x0002\x001D\x0011\x0000\x0001\x001D\x0004\x0000\x0001\x001D\x0007\x0000\x0004\x001D" + + "\x0003\x0000\x0001\x001D\x0012\x0000\x0001\x001D\x00B2\x0000\x0001\x001D\x00C9\x0000\x0004\x001D" + + "\x00A9\x0000\x0002\x001D\x000D\x0000\x0004\x001D\x006C\x0000\x0001\x001D\x000D\x0000\x0002\x001D" + + "\x0008\x0000\x0002\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0009\x0000\x0001\x001D" + + "\x0009\x0000\x0002\x001D\x0006\x0000\x0001\x001D\x0002\x0000\x0004\x001D\x0003\x0000\x0001\x001D" + + "\x0002\x0000\x0002\x001D\x0001\x0000\x0003\x001D\x0005\x0000\x0001\x001D\x0001\x0000\x0002\x001D" + + "\x0002\x0000\x0002\x001D\x0001\x0000\x0004\x001D\x0005\x0000\x0001\x001D\x0001\x0000\x0002\x001D" + + "\x0093\x0000\x0001\x001E\x0002\x0000\x0001\x001E\x0013\x0000\x0004\x001E\x00C5\x0000\x0001\x001E" + + "\x007E\x0000\x0001\x001E\x0024\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0011\x0000\x0001\x001E" + + "\x0004\x0000\x0001\x001E\x0007\x0000\x0004\x001E\x0003\x0000\x0001\x001E\x0012\x0000\x0001\x001E" + + "\x00B2\x0000\x0001\x001E\x00C9\x0000\x0004\x001E\x00A9\x0000\x0002\x001E\x000D\x0000\x0004\x001E" + + "\x006C\x0000\x0001\x001E\x000D\x0000\x0002\x001E\x0008\x0000\x0002\x001E\x0001\x0000\x0001\x001E" + + "\x0001\x0000\x0001\x001E\x0009\x0000\x0001\x001E\x0009\x0000\x0002\x001E\x0006\x0000\x0001\x001E" + + "\x0002\x0000\x0004\x001E\x0003\x0000\x0001\x001E\x0002\x0000\x0002\x001E\x0001\x0000\x0003\x001E" + + "\x0005\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0002\x0000\x0002\x001E\x0001\x0000\x0004\x001E" + + "\x0005\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0061\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x001F" + + "\x0002\x0000\x0001\x001F\x0008\x0000\x0001\x0018\x000A\x0000\x0004\x001F\x0025\x0000\x0001\x0018" + + "\x004D\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x003B\x0001\x0018\x0024\x0000" + + "\x0001\x001F\x0011\x0000\x0001\x003B\x0062\x0000\x0001\x003B\x0009\x0000\x0001\x001F\x000D\x0000" + + "\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x001F\x0001\x0000\x0002\x001F" + + "\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x001F\x0004\x0000\x0001\x001F" + + "\x0002\x0018\x0005\x0000\x0004\x001F\x0002\x0000\x0001\x0018\x0001\x001F\x000A\x0000\x0004\x003B" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x001F\x0007\x0000\x0001\x0018\x004F\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018" + + "\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x001F\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0052\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x001F\x0004\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0093\x0000\x0002\x001F\x000D\x0000\x0004\x001F\x006C\x0000" + + "\x0001\x001F\x000D\x0000\x0002\x001F\x0008\x0000\x0002\x001F\x0001\x0000\x0001\x001F\x0001\x0000" + + "\x0001\x001F\x0009\x0000\x0001\x001F\x0009\x0000\x0002\x001F\x0006\x0000\x0001\x001F\x0002\x0000" + + "\x0004\x001F\x0003\x0000\x0001\x001F\x0002\x0000\x0002\x001F\x0001\x0000\x0003\x001F\x0005\x0000" + + "\x0001\x001F\x0001\x0000\x0002\x001F\x0002\x0000\x0002\x001F\x0001\x0000\x0004\x001F\x0005\x0000" + + "\x0001\x001F\x0001\x0000\x0002\x001F\x00E3\x0000\x0001\x0070\x0025\x0071\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000" + + "\x0002\x0071\x008B\x0000\x001A\x00B8\x0001\x0000\x000A\x00B8\x000B\x0000\x0001\x00B9\x000B\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0091\x0001\x0000\x0001\x0092\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0093\x0002\x0000\x0001\x0094\x0004\x0000\x0001\x0095\x0003\x0000\x0001\x0096\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0097\x0011\x0000\x0001\x0098\x0002\x0000\x0001\x0099\x002F\x0000" + + "\x0001\x0018\x0001\x003C\x0007\x0000\x0001\x003C\x0002\x0000\x0001\x0018\x0001\x0070\x0001\x00BA" + + "\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF\x0001\x00C0\x0001\x00C1\x0001\x00C2" + + "\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7\x0001\x00C8\x0001\x00C9\x0001\x00CA" + + "\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF\x0001\x00D0\x0001\x00D1\x0001\x00D2" + + "\x0001\x00D3\x0001\x0071\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000\x0002\x0071\x008A\x0000\x0001\x0070" + + "\x001A\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x0089\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x008A\x0002\x0000" + + "\x0001\x008B\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x008C\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x008D\x0011\x0000\x0001\x008E\x0002\x0000\x0001\x008F\x002F\x0000\x0001\x0018\x0002\x003B" + + "\x0002\x0000\x0002\x0090\x0001\x003D\x0001\x0000\x0001\x003B\x0002\x0000\x0001\x0018\x0001\x00D5" + + "\x001A\x0021\x0001\x0074\x000A\x0075\x0001\x0000\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000" + + "\x0002\x00D6\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0090\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x009A\x0001\x0000\x0001\x002E" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x009B\x0002\x0000\x0001\x009C\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x009D" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x009E\x0011\x0000\x0001\x009F\x0002\x0000\x0001\x00A0" + + "\x0021\x0000\x0001\x0058\x000D\x0000\x0001\x0018\x0001\x003D\x0001\x003B\x0001\x005A\x0003\x0000" + + "\x0001\x003D\x0001\x0000\x0001\x003D\x0002\x0000\x0001\x0018\x0001\x0070\x001A\x0081\x0001\x0071" + + "\x000A\x00D7\x0001\x0000\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x0091\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000" + + "\x0001\x0094\x0004\x0000\x0001\x0095\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0097\x0011\x0000\x0001\x0098\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C" + + "\x0007\x0000\x0001\x003C\x0002\x0000\x0001\x0018\x0001\x0070\x001A\x0081\x000B\x0071\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0009\x0021\x0001\x00D8" + + "\x0010\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000" + + "\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A" + + "\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x000D\x0021\x0001\x00D9\x000C\x0021" + + "\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0008\x0021\x0001\x00DA\x0011\x0021\x0001\x0074" + + "\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x000F\x0021\x0001\x00DB\x000A\x0021\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0007\x0000\x0001\x00A1\x0001\x0000" + + "\x0001\x00A2\x000F\x0000\x0001\x00A3\x0002\x0000\x0001\x00A4\x0004\x0000\x0001\x00A5\x0003\x0000" + + "\x0001\x00A6\x0012\x0000\x0001\x00A7\x0011\x0000\x0001\x00A8\x0002\x0000\x0001\x00A9\x0030\x0000" + + "\x0001\x0047\x0001\x0019\x0006\x0000\x0001\x0047\x0003\x0000\x0001\x0070\x0001\x00DC\x0001\x00DD" + + "\x0001\x00DE\x0001\x00DF\x0001\x00E0\x0001\x00E1\x0001\x00E2\x0001\x00E3\x0001\x00E4\x0001\x00E5" + + "\x0001\x00E6\x0001\x00E7\x0001\x00E8\x0001\x00E9\x0001\x00EA\x0001\x00EB\x0001\x00EC\x0001\x00ED" + + "\x0001\x00EE\x0001\x00EF\x0001\x00F0\x0001\x00F1\x0001\x00F2\x0001\x00F3\x0001\x00F4\x0001\x00F5" + + "\x0001\x0071\x0001\x00F6\x0002\x00F7\x0001\x00F6\x0005\x00F7\x0001\x00F8\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x00AA\x0001\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x00AB\x0002\x0000\x0001\x00AC\x0004\x0000\x0001\x0042\x0003\x0000" + + "\x0001\x00AD\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x00AE\x0011\x0000\x0001\x00AF\x0002\x0000" + + "\x0001\x00B0\x0021\x0000\x0001\x0058\x000D\x0000\x0001\x0018\x0001\x0048\x0001\x0019\x0001\x005A" + + "\x0003\x0000\x0001\x0048\x0001\x0000\x0001\x0048\x0002\x0000\x0001\x0018\x0001\x0070\x001A\x0081" + + "\x0001\x0071\x000A\x0082\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0007\x0000\x0001\x00A1" + + "\x0001\x0000\x0001\x00A2\x000F\x0000\x0001\x00A3\x0002\x0000\x0001\x00A4\x0004\x0000\x0001\x00A5" + + "\x0003\x0000\x0001\x00A6\x0012\x0000\x0001\x00A7\x0011\x0000\x0001\x00A8\x0002\x0000\x0001\x00A9" + + "\x0030\x0000\x0001\x0047\x0001\x0019\x0006\x0000\x0001\x0047\x0003\x0000\x0001\x0070\x001B\x0071" + + "\x000A\x0082\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000" + + "\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000" + + "\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\x007C\x001A\x0021\x0001\x0074" + + "\x000A\x00F9\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072" + + "\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040" + + "\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018" + + "\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018" + + "\x0001\x007C\x001A\x0021\x0001\x0074\x0002\x007F\x0001\x00F9\x0002\x007F\x0002\x00F9\x0001\x007F" + + "\x0001\x00F9\x0001\x007F\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E" + + "\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x00FA\x001A\x0081\x0001\x0071\x000A\x00D7\x0001\x003C" + + "\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041" + + "\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044" + + "\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000" + + "\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\x00FB\x001A\x0081" + + "\x0001\x0071\x000A\x0082\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E" + + "\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000" + + "\x0004\x00FC\x0002\x0000\x0001\x00FC\x000D\x0000\x0001\x00FC\x0006\x0000\x000A\x00FC\x0001\x00FD" + + "\x00C4\x0000\x0001\x00FE\x009E\x0000\x0001\x00FF\x002C\x0000\x0001\x0072\x0097\x0000\x003C\x0086" + + "\x0007\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x003B\x0002\x0000\x0001\x003B\x0008\x0000\x0001\x0018" + + "\x000A\x0000\x0004\x003B\x0025\x0000\x0001\x0018\x004D\x0000\x0001\x0018\x0016\x0000\x0002\x0018" + + "\x0013\x0000\x0001\x003B\x0001\x0018\x0024\x0000\x0001\x003B\x0011\x0000\x0001\x003B\x0062\x0000" + + "\x0001\x003B\x0009\x0000\x0001\x003B\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000" + + "\x0003\x0018\x0001\x003B\x0001\x0000\x0002\x003B\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x003B\x0004\x0000\x0001\x003B\x0002\x0018\x0005\x0000\x0004\x003B\x0002\x0000" + + "\x0001\x0018\x0001\x003B\x000A\x0000\x0004\x003B\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x003B" + + "\x0007\x0000\x0001\x0018\x004F\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018" + + "\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x003B\x0001\x0000\x0002\x0018" + + "\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0052\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018" + + "\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0004\x0000\x0001\x0018\x0004\x003B\x0004\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0093\x0000" + + "\x0002\x003B\x000D\x0000\x0004\x003B\x006C\x0000\x0001\x003B\x000D\x0000\x0002\x003B\x0008\x0000" + + "\x0002\x003B\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003B\x0009\x0000\x0001\x003B\x0009\x0000" + + "\x0002\x003B\x0006\x0000\x0001\x003B\x0002\x0000\x0004\x003B\x0003\x0000\x0001\x003B\x0002\x0000" + + "\x0002\x003B\x0001\x0000\x0003\x003B\x0005\x0000\x0001\x003B\x0001\x0000\x0002\x003B\x0002\x0000" + + "\x0002\x003B\x0001\x0000\x0004\x003B\x0005\x0000\x0001\x003B\x0001\x0000\x0002\x003B\x0060\x0000" + + "\x0001\u0100\x0001\x0000\x0001\u0101\x000F\x0000\x0001\u0102\x0002\x0000\x0001\u0103\x0004\x0000" + + "\x0001\u0104\x0003\x0000\x0001\u0105\x0012\x0000\x0001\u0106\x0011\x0000\x0001\u0107\x0002\x0000" + + "\x0001\u0108\x0030\x0000\x0001\x0090\x0001\x003B\x0006\x0000\x0001\x0090\x001F\x0000\x000A\x003B" + + "\x001D\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x003C\x0002\x0000\x0001\x003C\x0008\x0000\x0001\x0018" + + "\x000A\x0000\x0004\x003C\x0025\x0000\x0001\x0018\x0050\x0000\x0001\x0018\x0003\x0000\x0004\x0018" + + "\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018" + + "\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0008\x0018\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0009\x0018\x0001\x0000\x0008\x0018\x0001\x0000\x000B\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x004B\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0014\x0000\x0001\x0018" + + "\x0024\x0000\x0001\x003C\x007E\x0000\x0001\x003C\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018" + + "\x000C\x0000\x0003\x0018\x0001\x003C\x0001\x0000\x0002\x003C\x0009\x0000\x0003\x0018\x0003\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x003C\x0004\x0000\x0001\x003C\x0002\x0018\x0005\x0000\x0004\x003C" + + "\x0002\x0000\x0001\x0018\x0001\x003C\x000F\x0000\x0002\x0018\x0001\x0000\x0001\x003C\x0007\x0000" + + "\x0001\x0018\x005B\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x000A\x0000\x0002\x0018\x0001\x0000" + + "\x0003\x0018\x0007\x0000\x0001\x0018\x0006\x0000\x0002\x0018\x0001\x0000\x0002\x0018\x0006\x0000" + + "\x0001\x0018\x0004\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0005\x0000\x0003\x0018\x0008\x0000" + + "\x0001\x0018\x000E\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x004F\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000" + + "\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x003C\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0052\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000" + + "\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x003C" + + "\x0004\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0093\x0000\x0002\x003C\x000D\x0000\x0004\x003C" + + "\x006C\x0000\x0001\x003C\x000D\x0000\x0002\x003C\x0008\x0000\x0002\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0009\x0000\x0001\x003C\x0009\x0000\x0002\x003C\x0006\x0000\x0001\x003C" + + "\x0002\x0000\x0004\x003C\x0003\x0000\x0001\x003C\x0002\x0000\x0002\x003C\x0001\x0000\x0003\x003C" + + "\x0005\x0000\x0001\x003C\x0001\x0000\x0002\x003C\x0002\x0000\x0002\x003C\x0001\x0000\x0004\x003C" + + "\x0005\x0000\x0001\x003C\x0001\x0000\x0002\x003C\x0061\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x003D" + + "\x0002\x0000\x0001\x003D\x0008\x0000\x0001\x0018\x000A\x0000\x0004\x003D\x0025\x0000\x0001\x0018" + + "\x004D\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x003B\x0001\x0018\x0024\x0000" + + "\x0001\x003D\x0011\x0000\x0001\x003B\x0062\x0000\x0001\x003B\x0009\x0000\x0001\x003D\x000D\x0000" + + "\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x003D\x0001\x0000\x0002\x003D" + + "\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x003D\x0004\x0000\x0001\x003D" + + "\x0002\x0018\x0005\x0000\x0004\x003D\x0002\x0000\x0001\x0018\x0001\x003D\x000A\x0000\x0004\x003B" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x003D\x0007\x0000\x0001\x0018\x004F\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018" + + "\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x003D\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0052\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x003D\x0004\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0093\x0000\x0002\x003D\x000D\x0000\x0004\x003D\x006C\x0000" + + "\x0001\x003D\x000D\x0000\x0002\x003D\x0008\x0000\x0002\x003D\x0001\x0000\x0001\x003D\x0001\x0000" + + "\x0001\x003D\x0009\x0000\x0001\x003D\x0009\x0000\x0002\x003D\x0006\x0000\x0001\x003D\x0002\x0000" + + "\x0004\x003D\x0003\x0000\x0001\x003D\x0002\x0000\x0002\x003D\x0001\x0000\x0003\x003D\x0005\x0000" + + "\x0001\x003D\x0001\x0000\x0002\x003D\x0002\x0000\x0002\x003D\x0001\x0000\x0004\x003D\x0005\x0000" + + "\x0001\x003D\x0001\x0000\x0002\x003D\x0093\x0000\x0001\x0047\x0002\x0000\x0001\x0047\x0013\x0000" + + "\x0004\x0047\x0081\x0000\x0001\x0019\x005A\x0000\x0001\x0019\x0087\x0000\x0001\x0019\x0025\x0000" + + "\x0001\x0047\x0011\x0000\x0001\x0019\x0062\x0000\x0001\x0019\x0009\x0000\x0001\x0047\x0024\x0000" + + "\x0001\x0047\x0001\x0000\x0002\x0047\x0011\x0000\x0001\x0047\x0004\x0000\x0001\x0047\x0007\x0000" + + "\x0004\x0047\x0003\x0000\x0001\x0047\x000A\x0000\x0004\x0019\x0004\x0000\x0001\x0047\x00C1\x0000" + + "\x0002\x0019\x00B4\x0000\x0001\x0047\x00C9\x0000\x0004\x0047\x00A9\x0000\x0002\x0047\x000D\x0000" + + "\x0004\x0047\x006C\x0000\x0001\x0047\x000D\x0000\x0002\x0047\x0008\x0000\x0002\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0009\x0000\x0001\x0047\x0009\x0000\x0002\x0047\x0006\x0000" + + "\x0001\x0047\x0002\x0000\x0004\x0047\x0003\x0000\x0001\x0047\x0002\x0000\x0002\x0047\x0001\x0000" + + "\x0003\x0047\x0005\x0000\x0001\x0047\x0001\x0000\x0002\x0047\x0002\x0000\x0002\x0047\x0001\x0000" + + "\x0004\x0047\x0005\x0000\x0001\x0047\x0001\x0000\x0002\x0047\x0061\x0000\x0001\x0018\x0004\x0000" + + "\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000" + + "\x0001\x0048\x0002\x0000\x0001\x0048\x0008\x0000\x0001\x0018\x000A\x0000\x0004\x0048\x0025\x0000" + + "\x0001\x0018\x004D\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0019\x0001\x0018" + + "\x0024\x0000\x0001\x0048\x0011\x0000\x0001\x0019\x0062\x0000\x0001\x0019\x0009\x0000\x0001\x0048" + + "\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x0048\x0001\x0000" + + "\x0002\x0048\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x0048\x0004\x0000" + + "\x0001\x0048\x0002\x0018\x0005\x0000\x0004\x0048\x0002\x0000\x0001\x0018\x0001\x0048\x000A\x0000" + + "\x0004\x0019\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0048\x0007\x0000\x0001\x0018\x004F\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000" + + "\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0048\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0052\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000" + + "\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x0048" + + "\x0004\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0093\x0000\x0002\x0048\x000D\x0000\x0004\x0048" + + "\x006C\x0000\x0001\x0048\x000D\x0000\x0002\x0048\x0008\x0000\x0002\x0048\x0001\x0000\x0001\x0048" + + "\x0001\x0000\x0001\x0048\x0009\x0000\x0001\x0048\x0009\x0000\x0002\x0048\x0006\x0000\x0001\x0048" + + "\x0002\x0000\x0004\x0048\x0003\x0000\x0001\x0048\x0002\x0000\x0002\x0048\x0001\x0000\x0003\x0048" + + "\x0005\x0000\x0001\x0048\x0001\x0000\x0002\x0048\x0002\x0000\x0002\x0048\x0001\x0000\x0004\x0048" + + "\x0005\x0000\x0001\x0048\x0001\x0000\x0002\x0048\x0093\x0000\x0001\x005A\x0002\x0000\x0001\x005A" + + "\x0013\x0000\x0004\x005A\x00C5\x0000\x0001\x005A\x007E\x0000\x0001\x005A\x0024\x0000\x0001\x005A" + + "\x0001\x0000\x0002\x005A\x0011\x0000\x0001\x005A\x0004\x0000\x0001\x005A\x0007\x0000\x0004\x005A" + + "\x0003\x0000\x0001\x005A\x0012\x0000\x0001\x005A\x00B2\x0000\x0001\x005A\x00C9\x0000\x0004\x005A" + + "\x00A9\x0000\x0002\x005A\x000D\x0000\x0004\x005A\x006C\x0000\x0001\x005A\x000D\x0000\x0002\x005A" + + "\x0008\x0000\x0002\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0009\x0000\x0001\x005A" + + "\x0009\x0000\x0002\x005A\x0006\x0000\x0001\x005A\x0002\x0000\x0004\x005A\x0003\x0000\x0001\x005A" + + "\x0002\x0000\x0002\x005A\x0001\x0000\x0003\x005A\x0005\x0000\x0001\x005A\x0001\x0000\x0002\x005A" + + "\x0002\x0000\x0002\x005A\x0001\x0000\x0004\x005A\x0005\x0000\x0001\x005A\x0001\x0000\x0002\x005A" + + "\x00E3\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0031\x00B9\x0001\x0000" + + "\x0001\u010b\x0004\x00B9\x0001\u010c\x0001\x0000\x0003\x00B9\x0001\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0073\x0001\x0021\x0002\u010d\x0001\u010e\x0001\u010f\x0008\u010d\x0001\x0021" + + "\x0001\u0110\x0005\u010d\x0006\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0001\u0111" + + "\x0002\u010d\x0001\x0021\x0001\u010d\x0001\u0112\x0006\u010d\x0004\x0021\x0004\u010d\x0001\x0021" + + "\x0001\u010d\x0001\x0021\x0003\u010d\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0003\x0021" + + "\x0001\u010d\x0001\x0021\x0001\u010d\x0004\x0021\x0001\u010d\x0008\x0021\x0001\u010d\x0002\x0021" + + "\x0001\u010d\x0002\x0021\x0001\u010d\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0001\x0021" + + "\x0001\u010d\x0001\u0113\x0002\u010d\x0002\x0021\x0001\u010d\x0006\x0021\x0003\u010d\x0009\x0021" + + "\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0003\x0021\x0001\u010d\x0001\x0021\x0001\u010d" + + "\x0008\x0021\x0001\u010d\x0001\x0021\x0002\u010d\x0008\x0021\x0001\x0074\x000A\x0075\x0001\x003C" + + "\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0073\x0004\x0021\x0001\u0114\x0005\x0021\x0001\u010d\x000F\x0021\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0073\x0004\x0021\x0002\u010d\x0002\x0021\x0001\u010d\x0001\x0021\x0001\u010d" + + "\x000B\x0021\x0001\u010d\x0002\x0021\x0001\u010d\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071" + + "\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000" + + "\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073" + + "\x0001\u010d\x0001\x0021\x0003\u010d\x0001\u0115\x000C\u010d\x0002\x0021\x0002\u010d\x0002\x0021" + + "\x0001\u010d\x0001\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071" + + "\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0002\x0021\x0004\u010d" + + "\x0003\x0021\x0002\u010d\x0001\u0116\x0001\u010d\x0001\x0021\x0002\u010d\x000A\x0021\x0001\x0074" + + "\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x0002\u010d\x0002\x0021\x0001\u010d\x0003\x0021\x0001\u010d" + + "\x0005\x0021\x0003\u010d\x0003\x0021\x0001\u010d\x0002\x0021\x0003\u010d\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0073\x0005\u010d\x0001\u0117\x0001\x0021\x0001\u010d\x0001\u0118\x0007\u010d" + + "\x0001\u0119\x0003\u010d\x0001\x0021\x0001\u010d\x0001\x0021\x0003\u010d\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0073\x0001\u011a\x0001\u010d\x0001\x0021\x0001\u0111\x0006\u010d\x0003\x0021" + + "\x0001\u010d\x0002\x0021\x0001\u010d\x0002\x0021\x0001\u010d\x0006\x0021\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0073\x0001\u010d\x0019\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071" + + "\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000" + + "\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073" + + "\x0001\u010d\x0002\x0021\x0001\u010d\x0001\u011b\x0001\x0021\x0002\u010d\x0001\x0021\x0003\u010d" + + "\x0002\x0021\x0002\u010d\x0001\x0021\x0001\u010d\x0003\x0021\x0001\u010d\x0002\x0021\x0002\u010d" + + "\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0006\u010d\x0001\x0021\x0005\u010d\x0003\x0021" + + "\x0002\u010d\x0001\x0021\x0008\u010d\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0001\x0021" + + "\x0002\u010d\x0001\u0118\x0001\u011c\x0003\u010d\x0001\x0021\x0003\u010d\x0001\x0021\x0001\u010d" + + "\x0001\x0021\x0001\u010d\x0001\x0021\x0001\u010d\x0001\x0021\x0001\u010d\x0001\x0021\x0003\u010d" + + "\x0001\x0021\x0001\u010d\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071" + + "\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0001\u010d\x0006\x0021" + + "\x0001\u010d\x0006\x0021\x0001\u010d\x0004\x0021\x0001\u010d\x0004\x0021\x0002\u010d\x0001\x0074" + + "\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x0006\x0021\x0001\u010d\x0007\x0021\x0001\u010d\x000B\x0021" + + "\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x000B\x0021\x0001\u011d\x0006\x0021\x0001\u011e" + + "\x0007\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000" + + "\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A" + + "\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0001\u010d\x0009\x0021\x0001\u010d" + + "\x0006\x0021\x0001\u010d\x0008\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0001\u010d" + + "\x0001\x0021\x0006\u010d\x0001\u011f\x0001\x0021\x0002\u010d\x0002\x0021\x0002\u010d\x0001\x0021" + + "\x0001\u010d\x0001\x0021\x0006\u010d\x0001\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071" + + "\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000" + + "\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073" + + "\x0004\x0021\x0001\u010d\x0005\x0021\x0002\u010d\x0003\x0021\x0002\u010d\x0008\x0021\x0001\u010d" + + "\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0003\x0021\x0001\u010d\x0001\x0021\x0001\u0120" + + "\x0004\x0021\x0001\u010d\x0002\x0021\x0001\u010d\x000C\x0021\x0001\x0074\x000A\x0075\x0001\x003C" + + "\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0073\x0002\u010d\x0001\x0021\x0001\u010d\x0003\x0021\x0002\u010d\x0002\x0021\x0001\u010d" + + "\x0004\x0021\x0001\u010d\x0009\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0003\x0021" + + "\x0001\u010d\x000B\x0021\x0001\u010d\x000A\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071" + + "\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000" + + "\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073" + + "\x0003\x0021\x0002\u010d\x0002\x0021\x0002\u010d\x0001\x0021\x0002\u010d\x0001\x0021\x0001\u010d" + + "\x0003\x0021\x0001\u010d\x0001\x0021\x0001\u010d\x0001\x0021\x0001\u010d\x0002\x0021\x0001\u010d" + + "\x0001\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000" + + "\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0007\x0000" + + "\x0001\u0100\x0001\x0000\x0001\u0101\x000F\x0000\x0001\u0102\x0002\x0000\x0001\u0103\x0004\x0000" + + "\x0001\u0104\x0003\x0000\x0001\u0105\x0012\x0000\x0001\u0106\x0011\x0000\x0001\u0107\x0002\x0000" + + "\x0001\u0108\x0030\x0000\x0001\x0090\x0001\x003B\x0006\x0000\x0001\x0090\x0003\x0000\x0001\x0070" + + "\x0001\x00DC\x0001\x00DD\x0001\x00DE\x0001\x00DF\x0001\x00E0\x0001\x00E1\x0001\x00E2\x0001\x00E3" + + "\x0001\x00E4\x0001\x00E5\x0001\x00E6\x0001\x00E7\x0001\x00E8\x0001\x00E9\x0001\x00EA\x0001\x00EB" + + "\x0001\x00EC\x0001\x00ED\x0001\x00EE\x0001\x00EF\x0001\x00F0\x0001\x00F1\x0001\x00F2\x0001\x00F3" + + "\x0001\x00F4\x0001\x00F5\x0001\x0071\x000A\x0075\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000\x0002\x0071\x0007\x0000" + + "\x0001\u0100\x0001\x0000\x0001\u0101\x000F\x0000\x0001\u0102\x0002\x0000\x0001\u0103\x0004\x0000" + + "\x0001\u0104\x0003\x0000\x0001\u0105\x0012\x0000\x0001\u0106\x0011\x0000\x0001\u0107\x0002\x0000" + + "\x0001\u0108\x0030\x0000\x0001\x0090\x0001\x003B\x0006\x0000\x0001\x0090\x0003\x0000\x0001\x0070" + + "\x001B\x0071\x000A\x00D7\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x0089\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x008A\x0002\x0000\x0001\x008B" + + "\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x008C\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x008D" + + "\x0011\x0000\x0001\x008E\x0002\x0000\x0001\x008F\x002F\x0000\x0001\x0018\x0002\x003B\x0002\x0000" + + "\x0002\x0090\x0001\x003D\x0001\x0000\x0001\x003B\x0002\x0000\x0001\x0018\x0001\u0122\x001A\x0081" + + "\x0001\x0071\x000A\x00D7\x0001\x0000\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0002\x00D6" + + "\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0090\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0003\x0021\x0001\u0123\x0016\x0021\x0001\x0074" + + "\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x001A\x0021\x0001\x0074\x000A\x0075\x0001\u0124\x0001\x0071" + + "\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000" + + "\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073" + + "\x0009\x0021\x0001\u0125\x0010\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x000D\x0021" + + "\x0001\u0126\x000C\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071" + + "\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0002\u0127\x0001\u0128\x0001\u0129\x0008\u0127" + + "\x0001\x00D4\x0001\u012a\x0005\u0127\x0006\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0001\u012b\x0002\u0127\x0001\x00D4\x0001\u0127\x0001\u012c\x0006\u0127" + + "\x0004\x00D4\x0004\u0127\x0001\x00D4\x0001\u0127\x0001\x00D4\x0003\u0127\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u0127\x0001\x00D4\x0001\u0127" + + "\x0004\x00D4\x0001\u0127\x0008\x00D4\x0001\u0127\x0002\x00D4\x0001\u0127\x0002\x00D4\x0001\u0127" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u0127" + + "\x0001\u012d\x0002\u0127\x0002\x00D4\x0001\u0127\x0006\x00D4\x0003\u0127\x0009\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u0127\x0001\x00D4" + + "\x0001\u0127\x0008\x00D4\x0001\u0127\x0001\x00D4\x0002\u0127\x0008\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0004\x00D4\x0001\u012e\x0005\x00D4\x0001\u0127" + + "\x000F\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0004\x00D4" + + "\x0002\u0127\x0002\x00D4\x0001\u0127\x0001\x00D4\x0001\u0127\x000B\x00D4\x0001\u0127\x0002\x00D4" + + "\x0001\u0127\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0127" + + "\x0001\x00D4\x0003\u0127\x0001\u012f\x000C\u0127\x0002\x00D4\x0002\u0127\x0002\x00D4\x0001\u0127" + + "\x0001\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0002\x00D4" + + "\x0004\u0127\x0003\x00D4\x0002\u0127\x0001\u0130\x0001\u0127\x0001\x00D4\x0002\u0127\x000A\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0002\u0127\x0002\x00D4" + + "\x0001\u0127\x0003\x00D4\x0001\u0127\x0005\x00D4\x0003\u0127\x0003\x00D4\x0001\u0127\x0002\x00D4" + + "\x0003\u0127\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0005\u0127" + + "\x0001\u0131\x0001\x00D4\x0001\u0127\x0001\u0132\x0007\u0127\x0001\u0133\x0003\u0127\x0001\x00D4" + + "\x0001\u0127\x0001\x00D4\x0003\u0127\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0001\u0134\x0001\u0127\x0001\x00D4\x0001\u012b\x0006\u0127\x0003\x00D4\x0001\u0127" + + "\x0002\x00D4\x0001\u0127\x0002\x00D4\x0001\u0127\x0006\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0127\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0127\x0002\x00D4\x0001\u0127\x0001\u0135\x0001\x00D4" + + "\x0002\u0127\x0001\x00D4\x0003\u0127\x0002\x00D4\x0002\u0127\x0001\x00D4\x0001\u0127\x0003\x00D4" + + "\x0001\u0127\x0002\x00D4\x0002\u0127\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0006\u0127\x0001\x00D4\x0005\u0127\x0003\x00D4\x0002\u0127\x0001\x00D4\x0008\u0127" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0002\u0127" + + "\x0001\u0132\x0001\u0136\x0003\u0127\x0001\x00D4\x0003\u0127\x0001\x00D4\x0001\u0127\x0001\x00D4" + + "\x0001\u0127\x0001\x00D4\x0001\u0127\x0001\x00D4\x0001\u0127\x0001\x00D4\x0003\u0127\x0001\x00D4" + + "\x0001\u0127\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0127" + + "\x0006\x00D4\x0001\u0127\x0006\x00D4\x0001\u0127\x0004\x00D4\x0001\u0127\x0004\x00D4\x0002\u0127" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0006\x00D4\x0001\u0127" + + "\x0007\x00D4\x0001\u0127\x000B\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x000B\x00D4\x0001\u0137\x0006\x00D4\x0001\u0138\x0007\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0127\x0009\x00D4\x0001\u0127\x0006\x00D4" + + "\x0001\u0127\x0008\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0001\u0127\x0001\x00D4\x0006\u0127\x0001\u0139\x0001\x00D4\x0002\u0127\x0002\x00D4\x0002\u0127" + + "\x0001\x00D4\x0001\u0127\x0001\x00D4\x0006\u0127\x0001\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0004\x00D4\x0001\u0127\x0005\x00D4\x0002\u0127\x0003\x00D4" + + "\x0002\u0127\x0008\x00D4\x0001\u0127\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0003\x00D4\x0001\u0127\x0001\x00D4\x0001\u013a\x0004\x00D4\x0001\u0127\x0002\x00D4" + + "\x0001\u0127\x000C\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0002\u0127\x0001\x00D4\x0001\u0127\x0003\x00D4\x0002\u0127\x0002\x00D4\x0001\u0127\x0004\x00D4" + + "\x0001\u0127\x0009\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0003\x00D4\x0001\u0127\x000B\x00D4\x0001\u0127\x000A\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0002\u0127\x0002\x00D4\x0002\u0127\x0001\x00D4" + + "\x0002\u0127\x0001\x00D4\x0001\u0127\x0003\x00D4\x0001\u0127\x0001\x00D4\x0001\u0127\x0001\x00D4" + + "\x0001\u0127\x0002\x00D4\x0001\u0127\x0001\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046" + + "\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0002\x0000\x0001\x0018\x0001\u013b\x001A\x0021\x0001\x0074\x000A\x00F7\x0001\x0000\x0001\x0071" + + "\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000" + + "\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000" + + "\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\u013b\x001A\x0021\x0001\x0074" + + "\x000A\u013c\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072" + + "\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040" + + "\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018" + + "\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018" + + "\x0001\u013b\x001A\x0021\x0001\x0074\x0001\x00F7\x0001\u013d\x0001\u013c\x0002\x00F7\x0002\u013c" + + "\x0001\x00F7\x0001\u013c\x0001\x00F7\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000" + + "\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046" + + "\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0002\x0000\x0001\x0018\x0001\u013e\x001A\x0021\x0001\x0074\x000A\x00F9\x0001\x0000\x0001\x0071" + + "\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x0091\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000\x0001\x0094\x0004\x0000" + + "\x0001\x0095\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0097\x0011\x0000" + + "\x0001\x0098\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C\x0007\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x0018\x0001\x0070\x001A\x0081\x000B\x0071\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000\x0002\x0071" + + "\x0007\x0000\x0001\x00A1\x0001\x0000\x0001\x00A2\x000F\x0000\x0001\x00A3\x0002\x0000\x0001\x00A4" + + "\x0004\x0000\x0001\x00A5\x0003\x0000\x0001\x00A6\x0012\x0000\x0001\x00A7\x0011\x0000\x0001\x00A8" + + "\x0002\x0000\x0001\x00A9\x0030\x0000\x0001\x0047\x0001\x0019\x0006\x0000\x0001\x0047\x0003\x0000" + + "\x0001\x0070\x001B\x0071\x000A\x0082\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000\x0002\x0071\x008B\x0000\x0004\u013f" + + "\x0002\x0000\x0001\u013f\x000D\x0000\x0001\u013f\x0006\x0000\x000A\u013f\x0001\x00FD\x009F\x0000" + + "\x0004\u0140\x0002\x0000\x0001\u0140\x000D\x0000\x0001\u0140\x0006\x0000\x000A\u0140\x0001\u0141" + + "\x009F\x0000\x0004\u0142\x0002\x0000\x0001\u0142\x000D\x0000\x0001\u0142\x0006\x0000\x0001\u0143" + + "\x0002\u0144\x0001\u0143\x0005\u0144\x0001\u0145\x000C\x0000\x0001\u0146\x0092\x0000\x0026\x0071" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0000\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0001\x0086\x0003\x0000\x0002\x0071\x003A\x0000\x0001\x0090\x0002\x0000\x0001\x0090\x0013\x0000" + + "\x0004\x0090\x0081\x0000\x0001\x003B\x005A\x0000\x0001\x003B\x0087\x0000\x0001\x003B\x0025\x0000" + + "\x0001\x0090\x0011\x0000\x0001\x003B\x0062\x0000\x0001\x003B\x0009\x0000\x0001\x0090\x0024\x0000" + + "\x0001\x0090\x0001\x0000\x0002\x0090\x0011\x0000\x0001\x0090\x0004\x0000\x0001\x0090\x0007\x0000" + + "\x0004\x0090\x0003\x0000\x0001\x0090\x000A\x0000\x0004\x003B\x0004\x0000\x0001\x0090\x00C1\x0000" + + "\x0002\x003B\x00B4\x0000\x0001\x0090\x00C9\x0000\x0004\x0090\x00A9\x0000\x0002\x0090\x000D\x0000" + + "\x0004\x0090\x006C\x0000\x0001\x0090\x000D\x0000\x0002\x0090\x0008\x0000\x0002\x0090\x0001\x0000" + + "\x0001\x0090\x0001\x0000\x0001\x0090\x0009\x0000\x0001\x0090\x0009\x0000\x0002\x0090\x0006\x0000" + + "\x0001\x0090\x0002\x0000\x0004\x0090\x0003\x0000\x0001\x0090\x0002\x0000\x0002\x0090\x0001\x0000" + + "\x0003\x0090\x0005\x0000\x0001\x0090\x0001\x0000\x0002\x0090\x0002\x0000\x0002\x0090\x0001\x0000" + + "\x0004\x0090\x0005\x0000\x0001\x0090\x0001\x0000\x0002\x0090\x00E4\x0000\x0001\u0147\x0001\u0148" + + "\x0001\u0149\x0001\u014a\x0001\u014b\x0001\u014c\x0001\u014d\x0001\u014e\x0001\u014f\x0001\u0150" + + "\x0001\u0151\x0001\u0152\x0001\u0153\x0001\u0154\x0001\u0155\x0001\u0156\x0001\u0157\x0001\u0158" + + "\x0001\u0159\x0001\u015a\x0001\u015b\x0001\u015c\x0001\u015d\x0001\u015e\x0001\u015f\x0001\u0160" + + "\x0001\x0000\x000A\x00B8\x00A0\x0000\x001A\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x003C\x00B9" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A" + + "\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161\x001A\x0021\x0001\x0074\x000A\x0075" + + "\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161\x0004\x0021\x0001\u0166\x0015\x0021\x0001\x0074" + + "\x000A\x0075\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A" + + "\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161\x000D\x0021\x0001\x00C6\x000C\x0021" + + "\x0001\x0074\x000A\x0075\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161\x0008\x0021\x0001\x00C6" + + "\x0011\x0021\x0001\x0074\x000A\x0075\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000" + + "\x0001\x0071\x0001\x0077\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161\x000F\x0021" + + "\x0001\u010d\x000A\x0021\x0001\x0074\x000A\x0075\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071" + + "\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000" + + "\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161" + + "\x0005\x0021\x0001\u0167\x0004\x0021\x0001\u010d\x000F\x0021\x0001\x0074\x000A\x0075\x0001\u0162" + + "\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0001\u0163" + + "\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x0010\x0021\x0001\u010d\x0009\x0021\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0073\x0007\x0021\x0001\u010d\x0012\x0021\x0001\x0074\x000A\x0075\x0001\x003C" + + "\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0073\x0017\x0021\x0001\u010d\x0002\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071" + + "\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000" + + "\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161" + + "\x0006\x0021\x0001\u0166\x0008\x0021\x0001\u010d\x000A\x0021\x0001\x0074\x000A\x0075\x0001\u0162" + + "\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0001\u0163" + + "\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\u0161\x0014\x0021\x0001\u0168\x0005\x0021\x0001\x0074\x000A\x0075" + + "\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0009\x0021\x0001\u010d\x0010\x0021\x0001\x0074" + + "\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\u0161\x000E\x0021\x0001\u0169\x000B\x0021\x0001\x0074\x000A\x0075" + + "\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161\x000A\x0021\x0001\u016a\x000F\x0021\x0001\x0074" + + "\x000A\x0075\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A" + + "\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161\x0005\x0021\x0001\u010d\x0014\x0021" + + "\x0001\x0074\x000A\x0075\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0161\x0001\u016b\x0019\x0021" + + "\x0001\x0074\x000A\x0075\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x001A\x0021\x0001\u016c" + + "\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x0012\x0021\x0001\u010d\x0007\x0021\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\u0161\x0013\x0021\x0001\u010d\x0006\x0021\x0001\x0074\x000A\x0075\x0001\u0162" + + "\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0001\u0163" + + "\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\u0161\x0014\x0021\x0001\u016d\x0005\x0021\x0001\x0074\x000A\x0075" + + "\x0001\u0162\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\x0070\x0001\x00DC\x0001\x00DD\x0001\x00DE\x0001\x00DF\x0001\x00E0\x0001\x00E1\x0001\x00E2" + + "\x0001\x00E3\x0001\x00E4\x0001\x00E5\x0001\x00E6\x0001\x00E7\x0001\x00E8\x0001\x00E9\x0001\x00EA" + + "\x0001\x00EB\x0001\x00EC\x0001\x00ED\x0001\x00EE\x0001\x00EF\x0001\x00F0\x0001\x00F1\x0001\x00F2" + + "\x0001\x00F3\x0001\x00F4\x0001\x00F5\x0001\x0071\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000\x0002\x0071" + + "\x0007\x0000\x0001\u0100\x0001\x0000\x0001\u0101\x000F\x0000\x0001\u0102\x0002\x0000\x0001\u0103" + + "\x0004\x0000\x0001\u0104\x0003\x0000\x0001\u0105\x0012\x0000\x0001\u0106\x0011\x0000\x0001\u0107" + + "\x0002\x0000\x0001\u0108\x0030\x0000\x0001\x0090\x0001\x003B\x0006\x0000\x0001\x0090\x0003\x0000" + + "\x0001\x0070\x001B\x0071\x000A\x00D7\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x001A\x0021\x0001\x0074\x000A\x0075\x0001\u016e\x0001\x0071" + + "\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x0091\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000\x0001\x0094\x0004\x0000" + + "\x0001\x0095\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0097\x0011\x0000" + + "\x0001\x0098\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C\x0007\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x001A\x0018\x0014\x0000\x0001\u016f\x000D\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x000F\x0021\x0001\u0170\x000A\x0021\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0073\x000E\x0021\x0001\u0171\x000B\x0021\x0001\x0074\x000A\x0075\x0001\u0172" + + "\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0173\x001A\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163\x0001\u0164" + + "\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0173\x0004\x00D4" + + "\x0001\u0175\x0015\x00D4\x0001\x0074\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0173\x000D\x00D4\x0001\x00E8\x000C\x00D4\x0001\x0074\x000A\x00D4\x0001\u0174" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0173\x0008\x00D4\x0001\x00E8\x0011\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163" + + "\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0173" + + "\x000F\x00D4\x0001\u0127\x000A\x00D4\x0001\x0074\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0173\x0005\x00D4\x0001\u0176\x0004\x00D4\x0001\u0127\x000F\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163" + + "\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0010\x00D4\x0001\u0127\x0009\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0007\x00D4\x0001\u0127\x0012\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0017\x00D4\x0001\u0127\x0002\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0173\x0006\x00D4\x0001\u0175\x0008\x00D4\x0001\u0127\x000A\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163" + + "\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0173" + + "\x0014\x00D4\x0001\u0177\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0009\x00D4\x0001\u0127\x0010\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0173\x000E\x00D4\x0001\u0178\x000B\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163\x0001\u0164" + + "\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0173\x000A\x00D4" + + "\x0001\u0179\x000F\x00D4\x0001\x0074\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0173\x0005\x00D4\x0001\u0127\x0014\x00D4\x0001\x0074\x000A\x00D4\x0001\u0174" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0173\x0001\u017a\x0019\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163\x0001\u0164" + + "\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\u016c\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0012\x00D4\x0001\u0127" + + "\x0007\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0173\x0013\x00D4" + + "\x0001\u0127\x0006\x00D4\x0001\x0074\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0173\x0014\x00D4\x0001\u017b\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\u0174" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0007\x0000\x0001\x00A1\x0001\x0000\x0001\x00A2\x000F\x0000" + + "\x0001\x00A3\x0002\x0000\x0001\x00A4\x0004\x0000\x0001\x00A5\x0003\x0000\x0001\x00A6\x0012\x0000" + + "\x0001\x00A7\x0011\x0000\x0001\x00A8\x0002\x0000\x0001\x00A9\x0030\x0000\x0001\x0047\x0001\x0019" + + "\x0006\x0000\x0001\x0047\x0003\x0000\x0001\x0070\x0001\x00DC\x0001\x00DD\x0001\x00DE\x0001\x00DF" + + "\x0001\x00E0\x0001\x00E1\x0001\x00E2\x0001\x00E3\x0001\x00E4\x0001\x00E5\x0001\x00E6\x0001\x00E7" + + "\x0001\x00E8\x0001\x00E9\x0001\x00EA\x0001\x00EB\x0001\x00EC\x0001\x00ED\x0001\x00EE\x0001\x00EF" + + "\x0001\x00F0\x0001\x00F1\x0001\x00F2\x0001\x00F3\x0001\x00F4\x0001\x00F5\x0001\x0071\x0001\u017c" + + "\x0002\u017d\x0001\u017c\x0005\u017d\x0001\u017e\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000" + + "\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000" + + "\x0001\x0018\x0001\u013b\x001A\x0021\x0001\x0074\x000A\x00F9\x0001\x0000\x0001\x0071\x0001\x007D" + + "\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E" + + "\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042" + + "\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045" + + "\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\u013b\x001A\x0021\x0001\x0074\x0002\u013c" + + "\x0001\x00F9\x0002\u013c\x0002\x00F9\x0001\u013c\x0001\x00F9\x0001\u013c\x0001\x0000\x0001\x0071" + + "\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0007\x0000\x0001\x00A1\x0001\x0000\x0001\x00A2\x000F\x0000" + + "\x0001\x00A3\x0002\x0000\x0001\x00A4\x0004\x0000\x0001\x00A5\x0003\x0000\x0001\x00A6\x0012\x0000" + + "\x0001\x00A7\x0011\x0000\x0001\x00A8\x0002\x0000\x0001\x00A9\x0030\x0000\x0001\x0047\x0001\x0019" + + "\x0006\x0000\x0001\x0047\x0003\x0000\x0001\x0070\x0001\x00DC\x0001\x00DD\x0001\x00DE\x0001\x00DF" + + "\x0001\x00E0\x0001\x00E1\x0001\x00E2\x0001\x00E3\x0001\x00E4\x0001\x00E5\x0001\x00E6\x0001\x00E7" + + "\x0001\x00E8\x0001\x00E9\x0001\x00EA\x0001\x00EB\x0001\x00EC\x0001\x00ED\x0001\x00EE\x0001\x00EF" + + "\x0001\x00F0\x0001\x00F1\x0001\x00F2\x0001\x00F3\x0001\x00F4\x0001\x00F5\x0001\x0071\x000A\x00F9" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0001\x0086\x0003\x0000\x0002\x0071\x008B\x0000\x0004\u017f\x0002\x0000\x0001\u017f\x000D\x0000" + + "\x0001\u017f\x0006\x0000\x000A\u017f\x0001\x00FD\x009F\x0000\x0004\u0180\x0002\x0000\x0001\u0180" + + "\x000D\x0000\x0001\u0180\x0006\x0000\x000A\u0180\x0001\u0181\x009F\x0000\x0004\u0182\x0002\x0000" + + "\x0001\u0182\x000D\x0000\x0001\u0182\x0006\x0000\x0001\u0183\x0002\u0184\x0001\u0183\x0005\u0184" + + "\x0001\u0185\x000C\x0000\x0001\u0146\x0093\x0000\x0004\u0186\x0002\x0000\x0001\u0186\x000D\x0000" + + "\x0001\u0186\x0006\x0000\x000A\u0186\x0001\u0187\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188" + + "\x0004\u0186\x0002\x0000\x0001\u0186\x000D\x0000\x0001\u0186\x0006\x0000\x000A\u0189\x0001\u0187" + + "\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u0186\x0002\x0000\x0001\u0186\x000D\x0000" + + "\x0001\u0186\x0006\x0000\x000A\u018a\x0001\u0187\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188" + + "\x0004\u0186\x0002\x0000\x0001\u0186\x000D\x0000\x0001\u0186\x0006\x0000\x0001\u0189\x0001\u018b" + + "\x0001\u018a\x0002\u0189\x0002\u018a\x0001\u0189\x0001\u018a\x0001\u0189\x0001\u0187\x000B\x0000" + + "\x0001\u0146\x00B8\x0000\x0001\u0174\x0007\x0000\x0001\u018c\x0001\u018d\x0001\u018e\x0094\x0000" + + "\x0001\u0109\x0001\x00B8\x0002\u018f\x0001\u0190\x0001\u0191\x0008\u018f\x0001\x00B8\x0001\u0192" + + "\x0005\u018f\x0006\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u0193\x0002\u018f" + + "\x0001\x00B8\x0001\u018f\x0001\u0194\x0006\u018f\x0004\x00B8\x0004\u018f\x0001\x00B8\x0001\u018f" + + "\x0001\x00B8\x0003\u018f\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u018f" + + "\x0001\x00B8\x0001\u018f\x0004\x00B8\x0001\u018f\x0008\x00B8\x0001\u018f\x0002\x00B8\x0001\u018f" + + "\x0002\x00B8\x0001\u018f\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u018f" + + "\x0001\u0195\x0002\u018f\x0002\x00B8\x0001\u018f\x0006\x00B8\x0003\u018f\x0009\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u018f\x0001\x00B8\x0001\u018f\x0008\x00B8" + + "\x0001\u018f\x0001\x00B8\x0002\u018f\x0008\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0004\x00B8\x0001\u0196\x0005\x00B8\x0001\u018f\x000F\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0004\x00B8\x0002\u018f\x0002\x00B8\x0001\u018f\x0001\x00B8\x0001\u018f\x000B\x00B8" + + "\x0001\u018f\x0002\x00B8\x0001\u018f\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u018f" + + "\x0001\x00B8\x0003\u018f\x0001\u0197\x000C\u018f\x0002\x00B8\x0002\u018f\x0002\x00B8\x0001\u018f" + + "\x0001\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0002\x00B8\x0004\u018f\x0003\x00B8" + + "\x0002\u018f\x0001\u0198\x0001\u018f\x0001\x00B8\x0002\u018f\x000A\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0002\u018f\x0002\x00B8\x0001\u018f\x0003\x00B8\x0001\u018f\x0005\x00B8" + + "\x0003\u018f\x0003\x00B8\x0001\u018f\x0002\x00B8\x0003\u018f\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0005\u018f\x0001\u0199\x0001\x00B8\x0001\u018f\x0001\u019a\x0007\u018f\x0001\u019b" + + "\x0003\u018f\x0001\x00B8\x0001\u018f\x0001\x00B8\x0003\u018f\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0001\u019c\x0001\u018f\x0001\x00B8\x0001\u0193\x0006\u018f\x0003\x00B8\x0001\u018f" + + "\x0002\x00B8\x0001\u018f\x0002\x00B8\x0001\u018f\x0006\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0001\u018f\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u018f" + + "\x0002\x00B8\x0001\u018f\x0001\u019d\x0001\x00B8\x0002\u018f\x0001\x00B8\x0003\u018f\x0002\x00B8" + + "\x0002\u018f\x0001\x00B8\x0001\u018f\x0003\x00B8\x0001\u018f\x0002\x00B8\x0002\u018f\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0006\u018f\x0001\x00B8\x0005\u018f\x0003\x00B8\x0002\u018f" + + "\x0001\x00B8\x0008\u018f\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8\x0002\u018f" + + "\x0001\u019a\x0001\u019e\x0003\u018f\x0001\x00B8\x0003\u018f\x0001\x00B8\x0001\u018f\x0001\x00B8" + + "\x0001\u018f\x0001\x00B8\x0001\u018f\x0001\x00B8\x0001\u018f\x0001\x00B8\x0003\u018f\x0001\x00B8" + + "\x0001\u018f\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u018f\x0006\x00B8\x0001\u018f" + + "\x0006\x00B8\x0001\u018f\x0004\x00B8\x0001\u018f\x0004\x00B8\x0002\u018f\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0006\x00B8\x0001\u018f\x0007\x00B8\x0001\u018f\x000B\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x000B\x00B8\x0001\u019f\x0006\x00B8\x0001\u01a0\x0007\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u018f\x0009\x00B8\x0001\u018f\x0006\x00B8" + + "\x0001\u018f\x0008\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u018f\x0001\x00B8" + + "\x0006\u018f\x0001\u01a1\x0001\x00B8\x0002\u018f\x0002\x00B8\x0002\u018f\x0001\x00B8\x0001\u018f" + + "\x0001\x00B8\x0006\u018f\x0001\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0004\x00B8" + + "\x0001\u018f\x0005\x00B8\x0002\u018f\x0003\x00B8\x0002\u018f\x0008\x00B8\x0001\u018f\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u018f\x0001\x00B8\x0001\u01a2\x0004\x00B8" + + "\x0001\u018f\x0002\x00B8\x0001\u018f\x000C\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0002\u018f\x0001\x00B8\x0001\u018f\x0003\x00B8\x0002\u018f\x0002\x00B8\x0001\u018f\x0004\x00B8" + + "\x0001\u018f\x0009\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u018f" + + "\x000B\x00B8\x0001\u018f\x000A\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8" + + "\x0002\u018f\x0002\x00B8\x0002\u018f\x0001\x00B8\x0002\u018f\x0001\x00B8\x0001\u018f\x0003\x00B8" + + "\x0001\u018f\x0001\x00B8\x0001\u018f\x0001\x00B8\x0001\u018f\x0002\x00B8\x0001\u018f\x0001\x00B8" + + "\x0001\u010a\x000A\x00B8\x0017\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0091" + + "\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000\x0001\x0094\x0004\x0000\x0001\x0095" + + "\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0097\x0011\x0000\x0001\x0098" + + "\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C\x0007\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x0018\x0001\x0070\x0001\x00BA\x0001\x00BB\x0001\x00BC\x0001\x00BD\x0001\x00BE\x0001\x00BF" + + "\x0001\x00C0\x0001\x00C1\x0001\x00C2\x0001\x00C3\x0001\x00C4\x0001\x00C5\x0001\x00C6\x0001\x00C7" + + "\x0001\x00C8\x0001\x00C9\x0001\x00CA\x0001\x00CB\x0001\x00CC\x0001\x00CD\x0001\x00CE\x0001\x00CF" + + "\x0001\x00D0\x0001\x00D1\x0001\x00D2\x0001\x00D3\x0001\x0071\x000A\x00D4\x0001\u0174\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071" + + "\x0001\x0086\x0003\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x0091\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000\x0001\x0094\x0004\x0000" + + "\x0001\x0095\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0097\x0011\x0000" + + "\x0001\x0098\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C\x0007\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x001A\x0018\x0001\x0000\x000A\u01a3\x009F\x0000\x0001\u01a4" + + "\x0025\u0163\x0001\u018c\x0002\u0163\x0001\u01a5\x0001\u018c\x0002\u0163\x0001\u01a6\x0002\u0163" + + "\x0001\u0165\x0002\x0000\x0001\u018c\x0001\u0163\x0004\x0000\x0001\u0163\x0001\x0071\x008A\x0000" + + "\x0001\u01a7\x0025\u0164\x0001\u018d\x0002\u0164\x0001\u01a8\x0001\x0000\x0002\x0071\x0001\u01a9" + + "\x0001\u0163\x0001\u0164\x0001\u0165\x0002\x0000\x0001\u018d\x0001\u0164\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u01aa\x0025\u0165\x0001\u018e\x0002\u0165\x0001\u01ab\x0001\u018e\x0002\u0165" + + "\x0001\u01ac\x0002\u0165\x0001\x0071\x0002\x0000\x0001\u018e\x0001\u0165\x0004\x0000\x0001\u0165" + + "\x0001\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0005\x0021\x0001\u010d" + + "\x0014\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000" + + "\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A" + + "\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x000D\x0021\x0001\u010d\x000C\x0021" + + "\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071" + + "\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x0008\x0021\x0001\u010d\x0011\x0021\x0001\x0074" + + "\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x0003\x0021\x0001\u01ad\x0016\x0021\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0073\x0003\x0021\x0001\u010d\x0016\x0021\x0001\x0074\x000A\x0075\x0001\x003C" + + "\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0073\x0017\x0021\x0001\u01ae\x0002\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071" + + "\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\x0070\x001A\x00D4\x0001\u01af\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D" + + "\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035" + + "\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039" + + "\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000" + + "\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x000E\x0021" + + "\x0001\u010d\x000B\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071" + + "\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0091\x0001\x0000" + + "\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000\x0001\x0094\x0004\x0000\x0001\x0095\x0003\x0000" + + "\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0097\x0011\x0000\x0001\x0098\x0002\x0000" + + "\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C\x0007\x0000\x0001\x003C\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x001A\x0018\x0014\x0000\x0001\u01b0\x00C4\x0000\x0001\u01b1\x000D\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033" + + "\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0073\x0005\x0021\x0001\u01b2\x0014\x0021\x0001\x0074\x000A\x0075" + + "\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0073\x001A\x0021\x0001\x0074\x000A\x0075\x0001\u0172\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0091" + + "\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000\x0001\x0094\x0004\x0000\x0001\x0095" + + "\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0097\x0011\x0000\x0001\x0098" + + "\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C\x0007\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x001A\x0018\x0014\x0000\x0001\u01b3\x0095\x0000\x0001\x0070\x0001\x00DC" + + "\x0001\x00DD\x0001\x00DE\x0001\x00DF\x0001\x00E0\x0001\x00E1\x0001\x00E2\x0001\x00E3\x0001\x00E4" + + "\x0001\x00E5\x0001\x00E6\x0001\x00E7\x0001\x00E8\x0001\x00E9\x0001\x00EA\x0001\x00EB\x0001\x00EC" + + "\x0001\x00ED\x0001\x00EE\x0001\x00EF\x0001\x00F0\x0001\x00F1\x0001\x00F2\x0001\x00F3\x0001\x00F4" + + "\x0001\x00F5\x0001\x0071\x000A\x00D4\x0001\u0174\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0001\u0163\x0001\u0164\x0001\u0165\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000\x0002\x0071" + + "\x00A6\x0000\x000A\u01a3\x009F\x0000\x0001\u0121\x0005\x00D4\x0001\u0127\x0014\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000D\x00D4\x0001\u0127\x000C\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0008\x00D4\x0001\u0127" + + "\x0011\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4" + + "\x0001\u01b4\x0016\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0003\x00D4\x0001\u0127\x0016\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0017\x00D4\x0001\u01b5\x0002\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x000E\x00D4\x0001\u0127\x000B\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000" + + "\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000" + + "\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0002\x0000\x0001\x0018\x0001\u01b6\x001A\x0021\x0001\x0074\x000A\u017d\x0001\x0000" + + "\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000" + + "\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041" + + "\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044" + + "\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000" + + "\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\u01b6\x001A\x0021" + + "\x0001\x0074\x000A\u01b7\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E" + + "\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000" + + "\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000" + + "\x0001\x0018\x0001\u01b6\x001A\x0021\x0001\x0074\x0001\u017d\x0001\u01b8\x0001\u01b7\x0002\u017d" + + "\x0002\u01b7\x0001\u017d\x0001\u01b7\x0001\u017d\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071" + + "\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x00B0\x0000\x0001\x00FD\x009F\x0000\x0004\u01b9\x0002\x0000\x0001\u01b9\x000D\x0000" + + "\x0001\u01b9\x0006\x0000\x000A\u01b9\x0001\u0181\x009F\x0000\x0004\u01ba\x0002\x0000\x0001\u01ba" + + "\x000D\x0000\x0001\u01ba\x0006\x0000\x000A\u01ba\x0001\u01bb\x009F\x0000\x0004\u01bc\x0002\x0000" + + "\x0001\u01bc\x000D\x0000\x0001\u01bc\x0006\x0000\x000A\u01bc\x0001\u01bd\x000B\x0000\x0001\u0146" + + "\x0092\x0000\x0001\u0188\x0004\u01bc\x0002\x0000\x0001\u01bc\x000D\x0000\x0001\u01bc\x0006\x0000" + + "\x000A\u01be\x0001\u01bd\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u01bc\x0002\x0000" + + "\x0001\u01bc\x000D\x0000\x0001\u01bc\x0006\x0000\x000A\u01bf\x0001\u01bd\x000B\x0000\x0001\u0146" + + "\x0092\x0000\x0001\u0188\x0004\u01bc\x0002\x0000\x0001\u01bc\x000D\x0000\x0001\u01bc\x0006\x0000" + + "\x0001\u01be\x0001\u01c0\x0001\u01bf\x0002\u01be\x0002\u01bf\x0001\u01be\x0001\u01bf\x0001\u01be" + + "\x0001\u01bd\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u01c1\x0002\x0000\x0001\u01c1\x000D\x0000" + + "\x0001\u01c1\x0006\x0000\x000A\u01c1\x0001\u0187\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u0182" + + "\x0002\x0000\x0001\u0182\x000D\x0000\x0001\u0182\x0006\x0000\x0001\u0183\x0002\u0184\x0001\u0183" + + "\x0005\u0184\x0001\u0185\x00BB\x0000\x0001\u01c2\x0002\u01c3\x0001\u01c2\x0005\u01c3\x0001\u01c4" + + "\x009F\x0000\x0001\u0188\x0004\u01c1\x0002\x0000\x0001\u01c1\x000D\x0000\x0001\u01c1\x0006\x0000" + + "\x000A\u01c5\x0001\u0187\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u01c1\x0002\x0000" + + "\x0001\u01c1\x000D\x0000\x0001\u01c1\x0006\x0000\x000A\u01c1\x0001\u0187\x000B\x0000\x0001\u0146" + + "\x0092\x0000\x0001\u0188\x0004\u01c1\x0002\x0000\x0001\u01c1\x000D\x0000\x0001\u01c1\x0006\x0000" + + "\x0002\u01c5\x0001\u01c1\x0002\u01c5\x0002\u01c1\x0001\u01c5\x0001\u01c1\x0001\u01c5\x0001\u0187" + + "\x000B\x0000\x0001\u0146\x0092\x0000\x0029\u018c\x0001\u01c6\x0006\u018c\x0001\u018e\x0002\x0000" + + "\x0002\u018c\x0004\x0000\x0001\u018c\x008B\x0000\x0029\u018d\x0001\u01c7\x0003\x0000\x0001\u018d" + + "\x0001\u018c\x0001\u018d\x0001\u018e\x0002\x0000\x0002\u018d\x0090\x0000\x0029\u018e\x0001\u01c8" + + "\x0006\u018e\x0003\x0000\x0002\u018e\x0004\x0000\x0001\u018e\x008B\x0000\x0001\u01c9\x001A\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u01c9\x0004\x00B8\x0001\u01ca\x0015\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u01c9\x000D\x00B8\x0001\u0153\x000C\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u01c9\x0008\x00B8\x0001\u0153\x0011\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u01c9\x000F\x00B8\x0001\u018f\x000A\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u01c9" + + "\x0005\x00B8\x0001\u01cb\x0004\x00B8\x0001\u018f\x000F\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0010\x00B8\x0001\u018f\x0009\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0007\x00B8\x0001\u018f\x0012\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0017\x00B8" + + "\x0001\u018f\x0002\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u01c9\x0006\x00B8\x0001\u01ca" + + "\x0008\x00B8\x0001\u018f\x000A\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u01c9\x0014\x00B8" + + "\x0001\u01cc\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0009\x00B8\x0001\u018f" + + "\x0010\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u01c9\x000E\x00B8\x0001\u01cd\x000B\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u01c9\x000A\x00B8\x0001\u01ce\x000F\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u01c9\x0005\x00B8\x0001\u018f\x0014\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u01c9\x0001\u01cf\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u01d0\x000A\x00B8\x009F\x0000\x0001\u0109\x0012\x00B8\x0001\u018f\x0007\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u01c9\x0013\x00B8\x0001\u018f\x0006\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u01c9\x0014\x00B8\x0001\u01d1\x0005\x00B8\x0001\u010a\x000A\x00B8" + + "\x00BB\x0000\x000A\u01d2\x0008\x0000\x0001\u018c\x0001\u018d\x0001\u018e\x0094\x0000\x0001\u01a4" + + "\x0025\u0163\x0001\u018c\x0002\u0163\x0001\u01a5\x0001\u018c\x0002\u0163\x0001\u01a6\x0002\u0163" + + "\x0001\u0165\x0002\x0000\x0001\u018c\x0001\u0163\x0001\x0086\x0003\x0000\x0001\u0163\x0001\x0071" + + "\x008A\x0000\x0001\x0070\x0004\u01d3\x0002\x0071\x0001\u01d3\x000D\x0071\x0001\u01d3\x0006\x0071" + + "\x000A\u01d3\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0029\u018c\x0001\u01c6\x0006\u018c\x0001\u018e" + + "\x0001\x00B9\x0001\x0000\x0002\u018c\x0004\x0000\x0001\u018c\x008B\x0000\x0001\u01a7\x0025\u0164" + + "\x0001\u018d\x0002\u0164\x0001\u01a8\x0001\x0000\x0002\x0071\x0001\u01a9\x0001\u0163\x0001\u0164" + + "\x0001\u0165\x0002\x0000\x0001\u018d\x0001\u0164\x0001\x0086\x0003\x0000\x0002\x0071\x008A\x0000" + + "\x0001\x0070\x0004\u01d4\x0002\x0071\x0001\u01d4\x000D\x0071\x0001\u01d4\x0006\x0071\x000A\u01d4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0029\u018d\x0001\u01c7\x0003\x0000\x0001\u018d\x0001\u018c" + + "\x0001\u018d\x0001\u018e\x0001\x00B9\x0001\x0000\x0002\u018d\x0090\x0000\x0001\u01aa\x0025\u0165" + + "\x0001\u018e\x0002\u0165\x0001\u01ab\x0001\u018e\x0002\u0165\x0001\u01ac\x0002\u0165\x0001\x0071" + + "\x0002\x0000\x0001\u018e\x0001\u0165\x0001\x0086\x0003\x0000\x0001\u0165\x0001\x0071\x008A\x0000" + + "\x0001\x0070\x0004\u01d5\x0002\x0071\x0001\u01d5\x000D\x0071\x0001\u01d5\x0006\x0071\x000A\u01d5" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0029\u018e\x0001\u01c8\x0006\u018e\x0001\x0000\x0001\x00B9" + + "\x0001\x0000\x0002\u018e\x0004\x0000\x0001\u018e\x0003\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034" + + "\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0073\x0010\x0021\x0001\u01d6\x0009\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071" + + "\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000" + + "\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073" + + "\x0003\x0021\x0001\u0118\x0016\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076" + + "\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\x0070\x0001\x00D4\x0001\u01d7\x0001\u01d8\x0002\x00D4" + + "\x0001\u01d9\x0001\u01da\x0001\u01db\x0001\x00D4\x0001\u01dc\x0001\u01dd\x0002\x00D4\x0001\u01de" + + "\x0001\u01df\x0002\x00D4\x0001\u01e0\x0001\u01e1\x0001\u01e2\x0001\x00D4\x0001\u01e3\x0001\u01e4" + + "\x0001\x00D4\x0001\u01e5\x0001\u01e6\x0001\x0074\x0001\u01e7\x0002\x00D4\x0001\u01e8\x0001\u01e9" + + "\x0001\u01ea\x0001\x00D4\x0001\u01eb\x0001\u01ec\x0001\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x00B9\x0000" + + "\x0001\u01ed\x0095\x0000\x0001\u01ee\x001A\u01ef\x0001\u01ee\x000A\u01ef\x0001\u01f0\x0002\u01ee" + + "\x0001\u01f1\x0003\u01ee\x0001\u01f2\x0003\x0000\x0001\u01f3\x0001\x0000\x0002\u01ee\x0004\x0000" + + "\x0001\u01ee\x0003\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x001A\x0021\x0001\x0074" + + "\x000A\x0075\x0001\u01f4\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000\x0001\x0071\x0001\x0077" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x00B9\x0000\x0001\u01f5" + + "\x0095\x0000\x0001\u0121\x0010\x00D4\x0001\u01f6\x0009\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u0132\x0016\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0007\x0000\x0001\x00A1\x0001\x0000\x0001\x00A2\x000F\x0000\x0001\x00A3" + + "\x0002\x0000\x0001\x00A4\x0004\x0000\x0001\x00A5\x0003\x0000\x0001\x00A6\x0012\x0000\x0001\x00A7" + + "\x0011\x0000\x0001\x00A8\x0002\x0000\x0001\x00A9\x0030\x0000\x0001\x0047\x0001\x0019\x0006\x0000" + + "\x0001\x0047\x0003\x0000\x0001\x0070\x0001\x00DC\x0001\x00DD\x0001\x00DE\x0001\x00DF\x0001\x00E0" + + "\x0001\x00E1\x0001\x00E2\x0001\x00E3\x0001\x00E4\x0001\x00E5\x0001\x00E6\x0001\x00E7\x0001\x00E8" + + "\x0001\x00E9\x0001\x00EA\x0001\x00EB\x0001\x00EC\x0001\x00ED\x0001\x00EE\x0001\x00EF\x0001\x00F0" + + "\x0001\x00F1\x0001\x00F2\x0001\x00F3\x0001\x00F4\x0001\x00F5\x0001\x0071\x0001\u01f7\x0002\u01f8" + + "\x0001\u01f7\x0005\u01f8\x0001\u01f9\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0001\x0086\x0003\x0000\x0002\x0071\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040" + + "\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018" + + "\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018" + + "\x0001\u01b6\x001A\x0021\x0001\x0074\x000A\x00F9\x0001\x0000\x0001\x0071\x0001\x007D\x0001\x0071" + + "\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000" + + "\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000" + + "\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0002\x0000\x0001\x0018\x0001\u01b6\x001A\x0021\x0001\x0074\x0002\u01b7\x0001\x00F9" + + "\x0002\u01b7\x0002\x00F9\x0001\u01b7\x0001\x00F9\x0001\u01b7\x0001\x0000\x0001\x0071\x0001\x007D" + + "\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0003\x0071\x0002\x0000\x0001\x0047\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008B\x0000\x0004\u01fa\x0002\x0000\x0001\u01fa\x000D\x0000\x0001\u01fa" + + "\x0006\x0000\x000A\u01fa\x0001\u0181\x009F\x0000\x0004\u01fb\x0002\x0000\x0001\u01fb\x000D\x0000" + + "\x0001\u01fb\x0006\x0000\x000A\u01fb\x0001\u01fc\x009F\x0000\x0004\u01fd\x0002\x0000\x0001\u01fd" + + "\x000D\x0000\x0001\u01fd\x0006\x0000\x0001\u01fe\x0002\u01ff\x0001\u01fe\x0005\u01ff\x0001\u0200" + + "\x000C\x0000\x0001\u0146\x0093\x0000\x0004\u0201\x0002\x0000\x0001\u0201\x000D\x0000\x0001\u0201" + + "\x0006\x0000\x000A\u0201\x0001\u01bd\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u01fd\x0002\x0000" + + "\x0001\u01fd\x000D\x0000\x0001\u01fd\x0006\x0000\x0001\u01fe\x0002\u01ff\x0001\u01fe\x0005\u01ff" + + "\x0001\u0200\x009F\x0000\x0001\u0188\x0004\u0201\x0002\x0000\x0001\u0201\x000D\x0000\x0001\u0201" + + "\x0006\x0000\x000A\u0202\x0001\u01bd\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u0201" + + "\x0002\x0000\x0001\u0201\x000D\x0000\x0001\u0201\x0006\x0000\x000A\u0201\x0001\u01bd\x000B\x0000" + + "\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u0201\x0002\x0000\x0001\u0201\x000D\x0000\x0001\u0201" + + "\x0006\x0000\x0002\u0202\x0001\u0201\x0002\u0202\x0002\u0201\x0001\u0202\x0001\u0201\x0001\u0202" + + "\x0001\u01bd\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u0203\x0002\x0000\x0001\u0203\x000D\x0000" + + "\x0001\u0203\x0006\x0000\x000A\u0203\x0001\u0187\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0204" + + "\x001B\x0000\x000A\u01c3\x009F\x0000\x0001\u0204\x001B\x0000\x000A\u0205\x009F\x0000\x0001\u0204" + + "\x001B\x0000\x0001\u01c3\x0001\u0206\x0001\u0205\x0002\u01c3\x0002\u0205\x0001\u01c3\x0001\u0205" + + "\x0001\u01c3\x009F\x0000\x0001\u0188\x0004\u0203\x0002\x0000\x0001\u0203\x000D\x0000\x0001\u0203" + + "\x0006\x0000\x000A\u0203\x0001\u0187\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u0207\x0002\x0000" + + "\x0001\u0207\x000D\x0000\x0001\u0207\x0006\x0000\x000A\u0207\x00A0\x0000\x0004\u0208\x0002\x0000" + + "\x0001\u0208\x000D\x0000\x0001\u0208\x0006\x0000\x000A\u0208\x00A0\x0000\x0004\u0209\x0002\x0000" + + "\x0001\u0209\x000D\x0000\x0001\u0209\x0006\x0000\x000A\u0209\x009F\x0000\x0001\u0109\x0005\x00B8" + + "\x0001\u018f\x0014\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x000D\x00B8\x0001\u018f" + + "\x000C\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0008\x00B8\x0001\u018f\x0011\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u020a\x0016\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u018f\x0016\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0017\x00B8\x0001\u020b\x0002\x00B8\x0001\u010a\x000A\x00B8\x00A0\x0000" + + "\x001A\x00B8\x0001\u020c\x000A\x00B8\x009F\x0000\x0001\u0109\x000E\x00B8\x0001\u018f\x000B\x00B8" + + "\x0001\u010a\x000A\x00B8\x00BB\x0000\x000A\u020d\x0008\x0000\x0001\u018c\x0001\u018d\x0001\u018e" + + "\x0094\x0000\x0001\x0070\x0004\u0163\x0002\x0071\x0001\u0163\x000D\x0071\x0001\u0163\x0006\x0071" + + "\x000A\u0163\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\x0070\x0004\u0164\x0002\x0071\x0001\u0164" + + "\x000D\x0071\x0001\u0164\x0006\x0071\x000A\u0164\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\x0070" + + "\x0004\u0165\x0002\x0071\x0001\u0165\x000D\x0071\x0001\u0165\x0006\x0071\x000A\u0165\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000" + + "\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000" + + "\x0001\x0032\x0003\x0000\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0036\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000" + + "\x0001\x003A\x002F\x0000\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x003D\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0073\x000A\x0021\x0001\u010d" + + "\x000F\x0021\x0001\x0074\x000A\x0075\x0001\x003C\x0001\x0071\x0001\x0076\x0001\x0071\x0001\x0000" + + "\x0001\x0071\x0001\x0077\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0009\x00D4\x0001\u020e\x0010\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u020f\x0016\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0007\x00D4\x0001\u0210\x0012\x00D4\x0001\x0074" + + "\x0004\x00D4\x0001\u0211\x0005\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0008\x00D4" + + "\x0001\u0212\x0004\x00D4\x0001\u0213\x0005\x00D4\x0001\u0214\x0006\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u0215\x0016\x00D4\x0001\x0074" + + "\x0002\x00D4\x0001\u0216\x0007\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0007\x00D4" + + "\x0001\u0217\x0012\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0007\x00D4\x0001\u0218\x0012\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0007\x00D4\x0001\u0219\x0012\x00D4\x0001\x0074\x0003\x00D4\x0001\u021a\x0006\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0005\x00D4\x0001\u021b" + + "\x0004\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0007\x00D4\x0001\u021c\x0012\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0019\x00D4\x0001\u021d" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u021e" + + "\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0007\x00D4" + + "\x0001\u021f\x0001\x00D4\x0001\u0220\x0010\x00D4\x0001\x0074\x0009\x00D4\x0001\u021b\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0012\x00D4\x0001\u0221\x0007\x00D4\x0001\x0074\x0002\x00D4" + + "\x0001\u0222\x0007\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0006\x00D4\x0001\u0223" + + "\x0001\u0224\x0012\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0007\x00D4\x0001\u0225\x0005\x00D4\x0001\u0226\x000C\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0013\x00D4\x0001\u0227\x0006\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0003\x00D4\x0001\u0228" + + "\x0006\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u0229\x0016\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000F\x00D4\x0001\u022a" + + "\x000A\x00D4\x0001\x0074\x0001\u022b\x0009\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0001\x00D4\x0001\u021b\x0008\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\u022c\x0009\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000" + + "\x001A\u022d\x0001\x0000\x000A\u022d\x0009\x0000\x0001\u022e\x0001\x0000\x0001\u022f\x0093\x0000" + + "\x0026\u01ee\x0001\u01f0\x0002\u01ee\x0001\u01f1\x0003\u01ee\x0001\u01f2\x0005\x0000\x0002\u01ee" + + "\x0004\x0000\x0001\u01ee\x008B\x0000\x0001\u0230\x001A\u01ef\x0001\u0231\x000A\u01ef\x0001\u0232" + + "\x0002\u01ee\x0001\u01f1\x0003\u01ee\x0001\u01f2\x0001\x0000\x0001\u0233\x0003\x0000\x0002\u01ee" + + "\x0004\x0000\x0001\u01ee\x008B\x0000\x0026\u01f0\x0001\x0000\x0002\u01f0\x0001\u0234\x0003\u01f0" + + "\x0001\u01f2\x0005\x0000\x0002\u01f0\x0004\x0000\x0001\u01f0\x008C\x0000\x0004\u0235\x0002\x0000" + + "\x0001\u0235\x000D\x0000\x0001\u0235\x0006\x0000\x000A\u0235\x00A0\x0000\x001A\u0236\x0001\x0000" + + "\x000A\u0236\x000B\x0000\x0001\u01f3\x0094\x0000\x0004\u0237\x0002\x0000\x0001\u0237\x000D\x0000" + + "\x0001\u0237\x0006\x0000\x000A\u0237\x0001\u0238\x0016\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x0091\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000\x0001\x0094" + + "\x0004\x0000\x0001\x0095\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0097" + + "\x0011\x0000\x0001\x0098\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C\x0007\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x0018\x0001\u0239\x001A\u023a\x000B\u0239\x0001\x0000\x0003\u0239" + + "\x0001\x0000\x0002\u0239\x0001\x0000\x0003\u0239\x0003\x0000\x0001\u0239\x0001\u023b\x0003\x0000" + + "\x0002\u0239\x008A\x0000\x0001\u023c\x001A\u023d\x0001\u023c\x000A\u023d\x0001\u023e\x0002\u023c" + + "\x0001\u023f\x0003\u023c\x0001\u0240\x0003\x0000\x0001\u0241\x0001\x0000\x0002\u023c\x0004\x0000" + + "\x0001\u023c\x008B\x0000\x0001\u0121\x000A\x00D4\x0001\u0127\x000F\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E" + + "\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031" + + "\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042" + + "\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045" + + "\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\u013e\x001A\x0021\x0001\x0074\x000A\u01f8" + + "\x0001\u0174\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0001\u0163" + + "\x0001\u0164\x0001\u0165\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000" + + "\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000" + + "\x0001\x0018\x0001\u013e\x001A\x0021\x0001\x0074\x000A\u0242\x0001\u0174\x0001\x0071\x0001\x007D" + + "\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165\x0002\x0000" + + "\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030" + + "\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041" + + "\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044" + + "\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000" + + "\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\u013e\x001A\x0021" + + "\x0001\x0074\x0001\u01f8\x0001\u0243\x0001\u0242\x0002\u01f8\x0002\u0242\x0001\u01f8\x0001\u0242" + + "\x0001\u01f8\x0001\u0174\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072" + + "\x0001\u0163\x0001\u0164\x0001\u0165\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x00B0\x0000\x0001\u0181\x009F\x0000\x0004\u0244\x0002\x0000\x0001\u0244\x000D\x0000\x0001\u0244" + + "\x0006\x0000\x000A\u0244\x0001\u01fc\x009F\x0000\x0004\u0245\x0002\x0000\x0001\u0245\x000D\x0000" + + "\x0001\u0245\x0006\x0000\x000A\u0245\x0001\u0246\x009F\x0000\x0004\u0247\x0002\x0000\x0001\u0247" + + "\x000D\x0000\x0001\u0247\x0006\x0000\x000A\u0247\x0001\u0248\x000B\x0000\x0001\u0146\x0092\x0000" + + "\x0001\u0188\x0004\u0247\x0002\x0000\x0001\u0247\x000D\x0000\x0001\u0247\x0006\x0000\x000A\u0249" + + "\x0001\u0248\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u0247\x0002\x0000\x0001\u0247" + + "\x000D\x0000\x0001\u0247\x0006\x0000\x000A\u024a\x0001\u0248\x000B\x0000\x0001\u0146\x0092\x0000" + + "\x0001\u0188\x0004\u0247\x0002\x0000\x0001\u0247\x000D\x0000\x0001\u0247\x0006\x0000\x0001\u0249" + + "\x0001\u024b\x0001\u024a\x0002\u0249\x0002\u024a\x0001\u0249\x0001\u024a\x0001\u0249\x0001\u0248" + + "\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u024c\x0002\x0000\x0001\u024c\x000D\x0000\x0001\u024c" + + "\x0006\x0000\x000A\u024c\x0001\u01bd\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u024c" + + "\x0002\x0000\x0001\u024c\x000D\x0000\x0001\u024c\x0006\x0000\x000A\u024c\x0001\u01bd\x000B\x0000" + + "\x0001\u0146\x00B8\x0000\x0001\u0187\x000B\x0000\x0001\u0146\x00AE\x0000\x0001\u024d\x0002\u024e" + + "\x0001\u024d\x0005\u024e\x0001\u024f\x009F\x0000\x0001\u0204\x00C4\x0000\x0001\u0204\x001B\x0000" + + "\x0002\u0205\x0001\x0000\x0002\u0205\x0002\x0000\x0001\u0205\x0001\x0000\x0001\u0205\x00A0\x0000" + + "\x0004\u018c\x0002\x0000\x0001\u018c\x000D\x0000\x0001\u018c\x0006\x0000\x000A\u018c\x00A0\x0000" + + "\x0004\u018d\x0002\x0000\x0001\u018d\x000D\x0000\x0001\u018d\x0006\x0000\x000A\u018d\x00A0\x0000" + + "\x0004\u018e\x0002\x0000\x0001\u018e\x000D\x0000\x0001\u018e\x0006\x0000\x000A\u018e\x009F\x0000" + + "\x0001\u0109\x0010\x00B8\x0001\u0250\x0009\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0003\x00B8\x0001\u019a\x0016\x00B8\x0001\u010a\x000A\x00B8\x00A0\x0000\x0001\x00B8\x0001\u0251" + + "\x0001\u0252\x0002\x00B8\x0001\u0253\x0001\u0254\x0001\u0255\x0001\x00B8\x0001\u0256\x0001\u0257" + + "\x0002\x00B8\x0001\u0258\x0001\u0259\x0002\x00B8\x0001\u025a\x0001\u025b\x0001\u025c\x0001\x00B8" + + "\x0001\u025d\x0001\u025e\x0001\x00B8\x0001\u025f\x0001\u0260\x0001\u010a\x0001\u0261\x0002\x00B8" + + "\x0001\u0262\x0001\u0263\x0001\u0264\x0001\x00B8\x0001\u0265\x0001\u0266\x0001\x00B8\x00BB\x0000" + + "\x000A\u0267\x0008\x0000\x0001\u018c\x0001\u018d\x0001\u018e\x0094\x0000\x0001\u0121\x0001\x00D4" + + "\x0001\u0268\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0014\x00D4\x0001\u0269\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0014\x00D4\x0001\u026a\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u026b\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x000C\x00D4\x0001\u026c\x000D\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u026d\x0018\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u026e\x0018\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u026f" + + "\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0011\x00D4" + + "\x0001\u0270\x0008\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0014\x00D4\x0001\u0271\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0014\x00D4\x0001\u0272\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u0273\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0177\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u026f\x0005\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u0274\x0005\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u0275\x0018\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0019\x00D4\x0001\u0276" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u0277" + + "\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4" + + "\x0001\u0278\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0001\u0279\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0011\x00D4\x0001\u027a\x0008\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0004\x00D4\x0001\u027b\x0015\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u027c\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u027d\x0005\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0004\x00D4\x0001\u027e\x0015\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0011\x00D4\x0001\u027f\x0008\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u0280" + + "\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0001\u0281\x0009\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0007\x00D4\x0001\u0282\x0002\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0001\u0283\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0001\u0284\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0285" + + "\x001A\u022d\x0001\u0286\x000A\u022d\x0009\x0000\x0001\u022e\x0095\x0000\x0029\u022e\x0001\u0287" + + "\x0003\x0000\x0003\u022e\x0001\u018e\x0003\x0000\x0001\u022e\x0091\x0000\x0004\u0288\x0002\x0000" + + "\x0001\u0288\x000D\x0000\x0001\u0288\x0006\x0000\x000A\u0288\x0001\u0289\x009E\x0000\x0001\u01ee" + + "\x001A\u01ef\x0001\u01ee\x000A\u01ef\x0001\u01f0\x0002\u01ee\x0001\u01f1\x0003\u01ee\x0001\u01f2" + + "\x0005\x0000\x0002\u01ee\x0004\x0000\x0001\u01ee\x008B\x0000\x0001\u01ee\x001A\u01ef\x0001\u0231" + + "\x000A\u01ef\x0001\u01f0\x0002\u01ee\x0001\u01f1\x0003\u01ee\x0001\u01f2\x0005\x0000\x0002\u01ee" + + "\x0004\x0000\x0001\u01ee\x008B\x0000\x001C\u01f0\x000A\u028a\x0001\x0000\x0002\u01f0\x0001\u0234" + + "\x0003\u01f0\x0001\u01f2\x0005\x0000\x0002\u01f0\x0004\x0000\x0001\u01f0\x008B\x0000\x0029\u0233" + + "\x0001\u028b\x0003\x0000\x0003\u0233\x0001\u018e\x0002\x0000\x0001\u028c\x0001\u0233\x0091\x0000" + + "\x0004\u028d\x0002\x0000\x0001\u028d\x000D\x0000\x0001\u028d\x0006\x0000\x000A\u028d\x00A0\x0000" + + "\x0004\u01ee\x0002\x0000\x0001\u01ee\x000D\x0000\x0001\u01ee\x0006\x0000\x000A\u01ee\x009F\x0000" + + "\x0001\u028e\x001A\u0236\x0001\u028f\x000A\u0236\x0001\u0290\x0008\x0000\x0001\u0233\x0096\x0000" + + "\x0004\u0291\x0002\x0000\x0001\u0291\x000D\x0000\x0001\u0291\x0006\x0000\x000A\u0291\x0001\u0292" + + "\x00C4\x0000\x0001\u0293\x009E\x0000\x0001\u0294\x0025\u0239\x0001\x0000\x0003\u0239\x0001\x0000" + + "\x0002\u0239\x0001\u0295\x0003\u0239\x0003\x0000\x0001\u0239\x0004\x0000\x0002\u0239\x0002\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0001\x0000\x0001\x002E\x0004\x0000" + + "\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000" + + "\x0001\x0033\x0002\x0000\x0001\x0034\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x0036\x000F\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0011\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x002F\x0000" + + "\x0002\x0018\x0001\x003B\x0001\x0000\x0001\x003C\x0001\x0000\x0001\x003C\x0001\x003D\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0001\u0296\x001A\u023a\x0001\u0239\x000A\u0297\x0001\x003C" + + "\x0001\u0239\x0001\u0298\x0001\u0239\x0001\x0000\x0001\u0239\x0001\u0299\x0001\u0295\x0003\u0239" + + "\x0003\x0000\x0001\u0239\x0004\x0000\x0002\u0239\x008A\x0000\x0035\u023b\x0001\u029a\x0001\u023b" + + "\x0001\u029b\x0001\x0000\x0002\u023b\x008A\x0000\x0026\u023c\x0001\u023e\x0002\u023c\x0001\u023f" + + "\x0003\u023c\x0001\u0240\x0005\x0000\x0002\u023c\x0004\x0000\x0001\u023c\x008B\x0000\x0001\u029c" + + "\x001A\u023d\x0001\u029d\x000A\u023d\x0001\u029e\x0002\u023c\x0001\u023f\x0003\u023c\x0001\u0240" + + "\x0001\u018c\x0001\u018d\x0001\u018e\x0002\x0000\x0002\u023c\x0004\x0000\x0001\u023c\x008B\x0000" + + "\x0026\u023e\x0001\x0000\x0002\u023e\x0001\u029f\x0003\u023e\x0001\u0240\x0005\x0000\x0002\u023e" + + "\x0004\x0000\x0001\u023e\x008C\x0000\x0004\u02a0\x0002\x0000\x0001\u02a0\x000D\x0000\x0001\u02a0" + + "\x0006\x0000\x000A\u02a0\x00A0\x0000\x001A\u02a1\x0001\x0000\x000A\u02a1\x000B\x0000\x0001\u0241" + + "\x000B\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032" + + "\x0003\x0000\x0001\x0040\x0002\x0000\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043" + + "\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046" + + "\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0002\x0000\x0001\x0018\x0001\u013e\x001A\x0021\x0001\x0074\x000A\x00F9\x0001\u0174\x0001\x0071" + + "\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072\x0001\u0163\x0001\u0164\x0001\u0165" + + "\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071\x0002\x0000\x0001\x002B\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x002F\x0001\x0000" + + "\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0040\x0002\x0000" + + "\x0001\x0041\x0004\x0000\x0001\x0042\x0003\x0000\x0001\x0043\x000F\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x002F\x0000\x0001\x0018\x0002\x0019" + + "\x0002\x0000\x0002\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\u013e" + + "\x001A\x0021\x0001\x0074\x0002\u0242\x0001\x00F9\x0002\u0242\x0002\x00F9\x0001\u0242\x0001\x00F9" + + "\x0001\u0242\x0001\u0174\x0001\x0071\x0001\x007D\x0001\x0071\x0001\x0000\x0002\x007E\x0001\x0072" + + "\x0001\u0163\x0001\u0164\x0001\u0165\x0002\x0000\x0001\x0047\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008B\x0000\x0004\u02a2\x0002\x0000\x0001\u02a2\x000D\x0000\x0001\u02a2\x0006\x0000\x000A\u02a2" + + "\x0001\u01fc\x009F\x0000\x0004\u02a3\x0002\x0000\x0001\u02a3\x000D\x0000\x0001\u02a3\x0006\x0000" + + "\x000A\u02a3\x0001\u02a4\x009F\x0000\x0004\u02a5\x0002\x0000\x0001\u02a5\x000D\x0000\x0001\u02a5" + + "\x0006\x0000\x0001\u02a6\x0002\u02a7\x0001\u02a6\x0005\u02a7\x0001\u02a8\x000C\x0000\x0001\u0146" + + "\x0093\x0000\x0004\u02a9\x0002\x0000\x0001\u02a9\x000D\x0000\x0001\u02a9\x0006\x0000\x000A\u02a9" + + "\x0001\u0248\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u02a5\x0002\x0000\x0001\u02a5\x000D\x0000" + + "\x0001\u02a5\x0006\x0000\x0001\u02a6\x0002\u02a7\x0001\u02a6\x0005\u02a7\x0001\u02a8\x009F\x0000" + + "\x0001\u0188\x0004\u02a9\x0002\x0000\x0001\u02a9\x000D\x0000\x0001\u02a9\x0006\x0000\x000A\u02aa" + + "\x0001\u0248\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u02a9\x0002\x0000\x0001\u02a9" + + "\x000D\x0000\x0001\u02a9\x0006\x0000\x000A\u02a9\x0001\u0248\x000B\x0000\x0001\u0146\x0092\x0000" + + "\x0001\u0188\x0004\u02a9\x0002\x0000\x0001\u02a9\x000D\x0000\x0001\u02a9\x0006\x0000\x0002\u02aa" + + "\x0001\u02a9\x0002\u02aa\x0002\u02a9\x0001\u02aa\x0001\u02a9\x0001\u02aa\x0001\u0248\x000B\x0000" + + "\x0001\u0146\x00B8\x0000\x0001\u01bd\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u02ab\x001B\x0000" + + "\x000A\u024e\x009F\x0000\x0001\u02ab\x001B\x0000\x000A\u02ac\x009F\x0000\x0001\u02ab\x001B\x0000" + + "\x0001\u024e\x0001\u02ad\x0001\u02ac\x0002\u024e\x0002\u02ac\x0001\u024e\x0001\u02ac\x0001\u024e" + + "\x009F\x0000\x0001\u0109\x000A\x00B8\x0001\u018f\x000F\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0009\x00B8\x0001\u02ae\x0010\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0003\x00B8\x0001\u02af\x0016\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0007\x00B8" + + "\x0001\u02b0\x0012\x00B8\x0001\u010a\x0004\x00B8\x0001\u02b1\x0005\x00B8\x009F\x0000\x0001\u0109" + + "\x0008\x00B8\x0001\u02b2\x0004\x00B8\x0001\u02b3\x0005\x00B8\x0001\u02b4\x0006\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u02b5\x0016\x00B8\x0001\u010a\x0002\x00B8" + + "\x0001\u02b6\x0007\x00B8\x009F\x0000\x0001\u0109\x0007\x00B8\x0001\u02b7\x0012\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0007\x00B8\x0001\u02b8\x0012\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0007\x00B8\x0001\u02b9\x0012\x00B8\x0001\u010a\x0003\x00B8\x0001\u02ba" + + "\x0006\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0005\x00B8\x0001\u02bb\x0004\x00B8" + + "\x009F\x0000\x0001\u0109\x0007\x00B8\x0001\u02bc\x0012\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0019\x00B8\x0001\u02bd\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8" + + "\x0001\u02be\x0018\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0007\x00B8\x0001\u02bf" + + "\x0001\x00B8\x0001\u02c0\x0010\x00B8\x0001\u010a\x0009\x00B8\x0001\u02bb\x009F\x0000\x0001\u0109" + + "\x0012\x00B8\x0001\u02c1\x0007\x00B8\x0001\u010a\x0002\x00B8\x0001\u02c2\x0007\x00B8\x009F\x0000" + + "\x0001\u0109\x0006\x00B8\x0001\u02c3\x0001\u02c4\x0012\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0007\x00B8\x0001\u02c5\x0005\x00B8\x0001\u02c6\x000C\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0013\x00B8\x0001\u02c7\x0006\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x001A\x00B8\x0001\u010a\x0003\x00B8\x0001\u02c8\x0006\x00B8\x009F\x0000\x0001\u0109" + + "\x0003\x00B8\x0001\u02c9\x0016\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x000F\x00B8" + + "\x0001\u02ca\x000A\x00B8\x0001\u010a\x0001\u02cb\x0009\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0001\x00B8\x0001\u02bb\x0008\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a" + + "\x0001\u02cc\x0009\x00B8\x00BB\x0000\x000A\u02cd\x0008\x0000\x0001\u018c\x0001\u018d\x0001\u018e" + + "\x0094\x0000\x0001\u0121\x0015\x00D4\x0001\u02ce\x0004\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u02cf\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x000D\x00D4\x0001\u02d0\x000C\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0011\x00D4\x0001\u02d1\x0008\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000E\x00D4\x0001\u02d2\x0004\x00D4" + + "\x0001\u02d3\x0006\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0004\x00D4\x0001\u02d4\x0015\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0009\x00D4\x0001\u02d5\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0004\x00D4\x0001\u02d6\x0015\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0009\x00D4\x0001\u02d7\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u02d8\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u02d9\x0001\u02da\x0001\x00D4\x0001\u02db\x0010\x00D4" + + "\x0001\u02dc\x0005\x00D4\x0001\x0074\x0005\x00D4\x0001\u02dd\x0004\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x000E\x00D4\x0001\u02de\x000B\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0009\x00D4\x0001\u02df\x000B\x00D4\x0001\u02e0\x0004\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0009\x00D4\x0001\u02e1\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0013\x00D4\x0001\u02e2" + + "\x0006\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0019\x00D4" + + "\x0001\u02e3\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0016\x00D4" + + "\x0001\u02e4\x0003\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0009\x00D4\x0001\u02e5\x0010\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0003\x00D4\x0001\u02e6\x0006\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0005\x00D4\x0001\u02e7\x0014\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0008\x00D4\x0001\u02e8\x0011\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u02e9\x0016\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0011\x00D4\x0001\u02ea\x0006\x00D4" + + "\x0001\u02eb\x0001\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x000A\x00D4\x0001\u02ec\x000F\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\x00D4\x0001\u02ed\x0008\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u02ee\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u02ef\x0005\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0004\x00D4\x0001\u02f0" + + "\x0005\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0005\x00D4\x0001\u02f1\x0013\x00D4" + + "\x0001\u02f2\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000\x001A\u022d\x0001\x0000" + + "\x000A\u022d\x00A0\x0000\x001A\u022d\x0001\u0286\x000A\u022d\x00A0\x0000\x0004\u02f3\x0002\x0000" + + "\x0001\u02f3\x000D\x0000\x0001\u02f3\x0006\x0000\x000A\u02f3\x00A0\x0000\x0004\u02f4\x0002\x0000" + + "\x0001\u02f4\x000D\x0000\x0001\u02f4\x0006\x0000\x000A\u02f4\x0001\u02f5\x00C4\x0000\x0001\u02f6" + + "\x009E\x0000\x001C\u01f0\x000A\u02f7\x0001\x0000\x0002\u01f0\x0001\u0234\x0003\u01f0\x0001\u01f2" + + "\x0001\x0000\x0001\u0233\x0003\x0000\x0002\u01f0\x0004\x0000\x0001\u01f0\x008C\x0000\x0004\u02f8" + + "\x0002\x0000\x0001\u02f8\x000D\x0000\x0001\u02f8\x0006\x0000\x000A\u02f8\x00AF\x0000\x0001\u02f9" + + "\x00B5\x0000\x0004\u01f0\x0002\x0000\x0001\u01f0\x000D\x0000\x0001\u01f0\x0006\x0000\x000A\u01f0" + + "\x00A0\x0000\x001A\u0236\x0001\x0000\x000A\u0236\x00A0\x0000\x001A\u0236\x0001\u028f\x000A\u0236" + + "\x00BB\x0000\x000A\u02fa\x00A0\x0000\x0004\u02fb\x0002\x0000\x0001\u02fb\x000D\x0000\x0001\u02fb" + + "\x0006\x0000\x000A\u02fb\x0001\u0292\x009F\x0000\x0004\u02fc\x0002\x0000\x0001\u02fc\x000D\x0000" + + "\x0001\u02fc\x0006\x0000\x000A\u02fc\x0001\u02fd\x009F\x0000\x0004\u02fe\x0002\x0000\x0001\u02fe" + + "\x000D\x0000\x0001\u02fe\x0006\x0000\x0001\u02ff\x0002\u0300\x0001\u02ff\x0005\u0300\x0001\u0301" + + "\x000C\x0000\x0001\u0302\x0092\x0000\x0001\u0294\x0025\u0239\x0001\x0000\x0003\u0239\x0001\x0000" + + "\x0002\u0239\x0001\u0295\x0003\u0239\x0003\x0000\x0001\u0239\x0001\u023b\x0003\x0000\x0002\u0239" + + "\x008B\x0000\x001A\u0303\x0001\x0000\x000A\u0303\x000B\x0000\x0001\u0304\x000B\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0091\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093" + + "\x0002\x0000\x0001\x0094\x0004\x0000\x0001\x0095\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0097\x0011\x0000\x0001\x0098\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018" + + "\x0001\x003C\x0007\x0000\x0001\x003C\x0002\x0000\x0001\x0018\x0001\u0294\x001A\u023a\x000B\u0239" + + "\x0001\x0000\x0003\u0239\x0001\x0000\x0002\u0239\x0001\u0295\x0003\u0239\x0003\x0000\x0001\u0239" + + "\x0001\u023b\x0003\x0000\x0002\u0239\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x0089\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x008A\x0002\x0000\x0001\x008B\x0004\x0000" + + "\x0001\x0035\x0003\x0000\x0001\x008C\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x008D\x0011\x0000" + + "\x0001\x008E\x0002\x0000\x0001\x008F\x002F\x0000\x0001\x0018\x0002\x003B\x0002\x0000\x0002\x0090" + + "\x0001\x003D\x0001\x0000\x0001\x003B\x0002\x0000\x0001\x0018\x0001\u0305\x001A\u023a\x0001\u0239" + + "\x000A\u0297\x0001\x0000\x0001\u0239\x0001\u0298\x0001\u0239\x0001\x0000\x0002\u0306\x0001\u0295" + + "\x0003\u0239\x0002\x0000\x0001\x0090\x0001\u0239\x0004\x0000\x0002\u0239\x0002\x0000\x0001\x002B" + + "\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x009A\x0001\x0000\x0001\x002E\x0004\x0000\x0001\x002F" + + "\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x009B" + + "\x0002\x0000\x0001\x009C\x0004\x0000\x0001\x0035\x0003\x0000\x0001\x009D\x000F\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x009E\x0011\x0000\x0001\x009F\x0002\x0000\x0001\x00A0\x0021\x0000\x0001\x0058" + + "\x000D\x0000\x0001\x0018\x0001\x003D\x0001\x003B\x0001\x005A\x0003\x0000\x0001\x003D\x0001\x0000" + + "\x0001\x003D\x0002\x0000\x0001\x0018\x0001\u0294\x001A\u023a\x0001\u0239\x000A\u0297\x0001\x0000" + + "\x0001\u0239\x0001\u0298\x0001\u0239\x0001\x0000\x0002\u0239\x0001\u0295\x0003\u0239\x0003\x0000" + + "\x0001\u0239\x0004\x0000\x0002\u0239\x0002\x0000\x0001\x002B\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x0091\x0001\x0000\x0001\x0092\x0004\x0000\x0001\x002F\x0001\x0000\x0001\x0030\x0001\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0032\x0003\x0000\x0001\x0093\x0002\x0000\x0001\x0094\x0004\x0000" + + "\x0001\x0095\x0003\x0000\x0001\x0096\x000F\x0000\x0001\x0037\x0002\x0000\x0001\x0097\x0011\x0000" + + "\x0001\x0098\x0002\x0000\x0001\x0099\x002F\x0000\x0001\x0018\x0001\x003C\x0007\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x0018\x0001\u0294\x001A\u023a\x000B\u0239\x0001\x0000\x0003\u0239\x0001\x0000" + + "\x0002\u0239\x0001\u0295\x0003\u0239\x0003\x0000\x0001\u0239\x0004\x0000\x0002\u0239\x008A\x0000" + + "\x0001\u0307\x002C\x0000\x0001\u0295\x0097\x0000\x003C\u023b\x0089\x0000\x0001\u023c\x001A\u023d" + + "\x0001\u023c\x000A\u023d\x0001\u023e\x0002\u023c\x0001\u023f\x0003\u023c\x0001\u0240\x0005\x0000" + + "\x0002\u023c\x0004\x0000\x0001\u023c\x008B\x0000\x0001\u023c\x001A\u023d\x0001\u029d\x000A\u023d" + + "\x0001\u023e\x0002\u023c\x0001\u023f\x0003\u023c\x0001\u0240\x0005\x0000\x0002\u023c\x0004\x0000" + + "\x0001\u023c\x008B\x0000\x001C\u023e\x000A\u0308\x0001\x0000\x0002\u023e\x0001\u029f\x0003\u023e" + + "\x0001\u0240\x0005\x0000\x0002\u023e\x0004\x0000\x0001\u023e\x008C\x0000\x0004\u0309\x0002\x0000" + + "\x0001\u0309\x000D\x0000\x0001\u0309\x0006\x0000\x000A\u0309\x00A0\x0000\x0004\u023c\x0002\x0000" + + "\x0001\u023c\x000D\x0000\x0001\u023c\x0006\x0000\x000A\u023c\x009F\x0000\x0001\u030a\x001A\u02a1" + + "\x0001\u030b\x000A\u02a1\x0001\u0174\x0007\x0000\x0001\u018c\x0001\u018d\x0001\u018e\x00BA\x0000" + + "\x0001\u01fc\x009F\x0000\x0004\u030c\x0002\x0000\x0001\u030c\x000D\x0000\x0001\u030c\x0006\x0000" + + "\x000A\u030c\x0001\u02a4\x009F\x0000\x0004\u030d\x0002\x0000\x0001\u030d\x000D\x0000\x0001\u030d" + + "\x0006\x0000\x000A\u030d\x0001\u030e\x009F\x0000\x0004\u030f\x0002\x0000\x0001\u030f\x000D\x0000" + + "\x0001\u030f\x0006\x0000\x000A\u030f\x0001\u0310\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188" + + "\x0004\u030f\x0002\x0000\x0001\u030f\x000D\x0000\x0001\u030f\x0006\x0000\x000A\u0311\x0001\u0310" + + "\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u030f\x0002\x0000\x0001\u030f\x000D\x0000" + + "\x0001\u030f\x0006\x0000\x000A\u0312\x0001\u0310\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188" + + "\x0004\u030f\x0002\x0000\x0001\u030f\x000D\x0000\x0001\u030f\x0006\x0000\x0001\u0311\x0001\u0313" + + "\x0001\u0312\x0002\u0311\x0002\u0312\x0001\u0311\x0001\u0312\x0001\u0311\x0001\u0310\x000B\x0000" + + "\x0001\u0146\x0093\x0000\x0004\u0314\x0002\x0000\x0001\u0314\x000D\x0000\x0001\u0314\x0006\x0000" + + "\x000A\u0314\x0001\u0248\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u0314\x0002\x0000" + + "\x0001\u0314\x000D\x0000\x0001\u0314\x0006\x0000\x000A\u0314\x0001\u0248\x000B\x0000\x0001\u0146" + + "\x00AE\x0000\x0001\u0315\x0002\u0316\x0001\u0315\x0005\u0316\x0001\u0317\x009F\x0000\x0001\u02ab" + + "\x00C4\x0000\x0001\u02ab\x001B\x0000\x0002\u02ac\x0001\x0000\x0002\u02ac\x0002\x0000\x0001\u02ac" + + "\x0001\x0000\x0001\u02ac\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u0318\x0018\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u0319\x0005\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u031a\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0001\x00B8\x0001\u031b\x0018\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x000C\x00B8\x0001\u031c\x000D\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8" + + "\x0001\u031d\x0018\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u031e" + + "\x0018\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u031f\x0018\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0011\x00B8\x0001\u0320\x0008\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u0321\x0005\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u0322\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0014\x00B8\x0001\u0323\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0001\u01cc\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u031f" + + "\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u0324\x0005\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u0325\x0018\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0019\x00B8\x0001\u0326\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0014\x00B8\x0001\u0327\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0001\x00B8\x0001\u0328\x0018\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u0329" + + "\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0011\x00B8\x0001\u032a\x0008\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0004\x00B8\x0001\u032b\x0015\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u032c\x0005\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u032d\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0004\x00B8\x0001\u032e\x0015\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0011\x00B8\x0001\u032f\x0008\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8" + + "\x0001\u0330\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a" + + "\x0001\u0331\x0009\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0007\x00B8\x0001\u0332" + + "\x0002\x00B8\x009F\x0000\x0001\u0109\x0001\u0333\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0001\u0334\x0019\x00B8\x0001\u010a\x000A\x00B8\x00CD\x0000\x0001\u018c\x0001\u018d" + + "\x0001\u018e\x0094\x0000\x0001\u0121\x0001\x00D4\x0001\u0335\x0018\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\u0336\x0009\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0006\x00D4\x0001\u0337\x0013\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0007\x00D4" + + "\x0001\u0338\x0002\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0008\x00D4\x0001\u017b\x0001\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0005\x00D4\x0001\u017b\x0004\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0016\x00D4\x0001\u0339\x0003\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0001\x00D4\x0001\u033a\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0016\x00D4\x0001\u033b\x0003\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\x00D4\x0001\u033c\x0008\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u033d\x0019\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u033e\x0017\x00D4\x0001\u033f\x0001\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0001\u0340\x0009\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0004\x00D4\x0001\u0341" + + "\x0015\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0015\x00D4" + + "\x0001\u0342\x0004\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0001\u0343\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0001\u0344\x0009\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0002\x00D4\x0001\x00E8\x0007\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0003\x00D4\x0001\u0345\x0006\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0001\u0346\x0001\x00D4\x0001\u0347\x0017\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0338\x0019\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0002\x00D4\x0001\u0348" + + "\x0007\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0002\x00D4" + + "\x0001\u0349\x0007\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000D\x00D4\x0001\u034a" + + "\x000C\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0005\x00D4\x0001\u034b\x0004\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0007\x00D4\x0001\u034c\x0002\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0009\x00D4\x0001\u034d\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0001\x00D4\x0001\u034e\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0003\x00D4\x0001\u034f\x0006\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\x00D4\x0001\u0350\x0008\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\x00D4\x0001\u0351" + + "\x0008\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u0352\x0005\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0006\x00D4\x0001\u0353\x0003\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0003\x00D4\x0001\u0354\x0006\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0001\u0345\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0009\x00D4\x0001\u0355\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0015\x00D4\x0001\u0356\x0004\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000" + + "\x0004\u022e\x0002\x0000\x0001\u022e\x000D\x0000\x0001\u022e\x0006\x0000\x000A\u022e\x00A0\x0000" + + "\x0004\u0357\x0002\x0000\x0001\u0357\x000D\x0000\x0001\u0357\x0006\x0000\x000A\u0357\x0001\u02f5" + + "\x009F\x0000\x0004\u0358\x0002\x0000\x0001\u0358\x000D\x0000\x0001\u0358\x0006\x0000\x000A\u0358" + + "\x0001\u0359\x009F\x0000\x0004\u035a\x0002\x0000\x0001\u035a\x000D\x0000\x0001\u035a\x0006\x0000" + + "\x0001\u035b\x0002\u035c\x0001\u035b\x0005\u035c\x0001\u035d\x000C\x0000\x0001\u035e\x0092\x0000" + + "\x001C\u01f0\x000A\u035f\x0001\x0000\x0002\u01f0\x0001\u0234\x0003\u01f0\x0001\u01f2\x0001\x0000" + + "\x0001\u0233\x0003\x0000\x0002\u01f0\x0004\x0000\x0001\u01f0\x008C\x0000\x0004\u0233\x0002\x0000" + + "\x0001\u0233\x000D\x0000\x0001\u0233\x0006\x0000\x000A\u0233\x00B8\x0000\x0001\u0360\x00C7\x0000" + + "\x000A\u0361\x0009\x0000\x0001\u0233\x0096\x0000\x0004\u0362\x0002\x0000\x0001\u0362\x000D\x0000" + + "\x0001\u0362\x0006\x0000\x000A\u0362\x0001\u0292\x009F\x0000\x0004\u0363\x0002\x0000\x0001\u0363" + + "\x000D\x0000\x0001\u0363\x0006\x0000\x000A\u0363\x0001\u0364\x009F\x0000\x0004\u0365\x0002\x0000" + + "\x0001\u0365\x000D\x0000\x0001\u0365\x0006\x0000\x0001\u0366\x0002\u0367\x0001\u0366\x0005\u0367" + + "\x0001\u0368\x000C\x0000\x0001\u0302\x0093\x0000\x0004\u0369\x0002\x0000\x0001\u0369\x000D\x0000" + + "\x0001\u0369\x0006\x0000\x000A\u0369\x0001\u036a\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u0369\x0002\x0000\x0001\u0369\x000D\x0000\x0001\u0369\x0006\x0000\x000A\u036c\x0001\u036a" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u0369\x0002\x0000\x0001\u0369\x000D\x0000" + + "\x0001\u0369\x0006\x0000\x000A\u036d\x0001\u036a\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u0369\x0002\x0000\x0001\u0369\x000D\x0000\x0001\u0369\x0006\x0000\x0001\u036c\x0001\u036e" + + "\x0001\u036d\x0002\u036c\x0002\u036d\x0001\u036c\x0001\u036d\x0001\u036c\x0001\u036a\x000B\x0000" + + "\x0001\u0302\x00B8\x0000\x0001\u0290\x0008\x0000\x0001\u0233\x0095\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0031\u0304\x0001\x0000\x0001\u0371\x0004\u0304\x0001\u0372" + + "\x0001\x0000\x0003\u0304\x0006\x0000\x0001\u0100\x0001\x0000\x0001\u0101\x000F\x0000\x0001\u0102" + + "\x0002\x0000\x0001\u0103\x0004\x0000\x0001\u0104\x0003\x0000\x0001\u0105\x0012\x0000\x0001\u0106" + + "\x0011\x0000\x0001\u0107\x0002\x0000\x0001\u0108\x0030\x0000\x0001\x0090\x0001\x003B\x0006\x0000" + + "\x0001\x0090\x0003\x0000\x0001\u0294\x001B\u0239\x000A\u0297\x0001\x0000\x0003\u0239\x0001\x0000" + + "\x0002\u0239\x0001\u0295\x0003\u0239\x0003\x0000\x0001\u0239\x0001\u023b\x0003\x0000\x0002\u0239" + + "\x0007\x0000\x0001\u0100\x0001\x0000\x0001\u0101\x000F\x0000\x0001\u0102\x0002\x0000\x0001\u0103" + + "\x0004\x0000\x0001\u0104\x0003\x0000\x0001\u0105\x0012\x0000\x0001\u0106\x0011\x0000\x0001\u0107" + + "\x0002\x0000\x0001\u0108\x0030\x0000\x0001\x0090\x0001\x003B\x0006\x0000\x0001\x0090\x0003\x0000" + + "\x0001\u0294\x001B\u0239\x000A\u0297\x0001\x0000\x0003\u0239\x0001\x0000\x0002\u0239\x0001\u0295" + + "\x0003\u0239\x0003\x0000\x0001\u0239\x0004\x0000\x0002\u0239\x008A\x0000\x0026\u0239\x0001\x0000" + + "\x0003\u0239\x0001\x0000\x0002\u0239\x0001\x0000\x0003\u0239\x0003\x0000\x0001\u0239\x0001\u023b" + + "\x0003\x0000\x0002\u0239\x008A\x0000\x001C\u023e\x000A\u0373\x0001\x0000\x0002\u023e\x0001\u029f" + + "\x0003\u023e\x0001\u0240\x0001\u018c\x0001\u018d\x0001\u018e\x0002\x0000\x0002\u023e\x0004\x0000" + + "\x0001\u023e\x008C\x0000\x0004\u023e\x0002\x0000\x0001\u023e\x000D\x0000\x0001\u023e\x0006\x0000" + + "\x000A\u023e\x00A0\x0000\x001A\u02a1\x0001\x0000\x000A\u02a1\x00A0\x0000\x001A\u02a1\x0001\u030b" + + "\x000A\u02a1\x00A0\x0000\x0004\u0374\x0002\x0000\x0001\u0374\x000D\x0000\x0001\u0374\x0006\x0000" + + "\x000A\u0374\x0001\u02a4\x009F\x0000\x0004\u0375\x0002\x0000\x0001\u0375\x000D\x0000\x0001\u0375" + + "\x0006\x0000\x000A\u0375\x0001\u0376\x009F\x0000\x0004\u0377\x0002\x0000\x0001\u0377\x000D\x0000" + + "\x0001\u0377\x0006\x0000\x0001\u0378\x0002\u0379\x0001\u0378\x0005\u0379\x0001\u037a\x000C\x0000" + + "\x0001\u0146\x0093\x0000\x0004\u037b\x0002\x0000\x0001\u037b\x000D\x0000\x0001\u037b\x0006\x0000" + + "\x000A\u037b\x0001\u0310\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u0377\x0002\x0000\x0001\u0377" + + "\x000D\x0000\x0001\u0377\x0006\x0000\x0001\u0378\x0002\u0379\x0001\u0378\x0005\u0379\x0001\u037a" + + "\x009F\x0000\x0001\u0188\x0004\u037b\x0002\x0000\x0001\u037b\x000D\x0000\x0001\u037b\x0006\x0000" + + "\x000A\u037c\x0001\u0310\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u037b\x0002\x0000" + + "\x0001\u037b\x000D\x0000\x0001\u037b\x0006\x0000\x000A\u037b\x0001\u0310\x000B\x0000\x0001\u0146" + + "\x0092\x0000\x0001\u0188\x0004\u037b\x0002\x0000\x0001\u037b\x000D\x0000\x0001\u037b\x0006\x0000" + + "\x0002\u037c\x0001\u037b\x0002\u037c\x0002\u037b\x0001\u037c\x0001\u037b\x0001\u037c\x0001\u0310" + + "\x000B\x0000\x0001\u0146\x00B8\x0000\x0001\u0248\x000B\x0000\x0001\u0146\x00AE\x0000\x000A\u0316" + + "\x000C\x0000\x0001\u0146\x00AE\x0000\x000A\u037d\x000C\x0000\x0001\u0146\x00AE\x0000\x0001\u0316" + + "\x0001\u037e\x0001\u037d\x0002\u0316\x0002\u037d\x0001\u0316\x0001\u037d\x0001\u0316\x000C\x0000" + + "\x0001\u0146\x0092\x0000\x0001\u0109\x0015\x00B8\x0001\u037f\x0004\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0001\u0380\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x000D\x00B8\x0001\u0381\x000C\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0011\x00B8" + + "\x0001\u0382\x0008\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x000E\x00B8\x0001\u0383" + + "\x0004\x00B8\x0001\u0384\x0006\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0004\x00B8" + + "\x0001\u0385\x0015\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a" + + "\x0009\x00B8\x0001\u0386\x009F\x0000\x0001\u0109\x0004\x00B8\x0001\u0387\x0015\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0009\x00B8\x0001\u0388\x009F\x0000" + + "\x0001\u0109\x0014\x00B8\x0001\u0389\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0001\u038a\x0001\u038b\x0001\x00B8\x0001\u038c\x0010\x00B8\x0001\u038d\x0005\x00B8\x0001\u010a" + + "\x0005\x00B8\x0001\u038e\x0004\x00B8\x009F\x0000\x0001\u0109\x000E\x00B8\x0001\u038f\x000B\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0009\x00B8\x0001\u0390\x000B\x00B8\x0001\u0391" + + "\x0004\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0009\x00B8" + + "\x0001\u0392\x009F\x0000\x0001\u0109\x0013\x00B8\x0001\u0393\x0006\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0019\x00B8\x0001\u0394\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0016\x00B8\x0001\u0395\x0003\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0009\x00B8" + + "\x0001\u0396\x0010\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a" + + "\x0003\x00B8\x0001\u0397\x0006\x00B8\x009F\x0000\x0001\u0109\x0005\x00B8\x0001\u0398\x0014\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0008\x00B8\x0001\u0399\x0011\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u039a\x0016\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0011\x00B8\x0001\u039b\x0006\x00B8\x0001\u039c\x0001\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x000A\x00B8\x0001\u039d\x000F\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\x00B8\x0001\u039e\x0008\x00B8\x009F\x0000" + + "\x0001\u0109\x0014\x00B8\x0001\u039f\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0014\x00B8\x0001\u03a0\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0004\x00B8\x0001\u03a1\x0005\x00B8\x009F\x0000\x0001\u0109\x0005\x00B8\x0001\u03a2" + + "\x0013\x00B8\x0001\u03a3\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0001\u03a4\x0009\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u03a5\x0019\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0008\x00D4\x0001\u03a6\x0001\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0015\x00D4" + + "\x0001\u0127\x0004\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0005\x00D4\x0001\u03a7\x0004\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0005\x00D4\x0001\u03a8\x0004\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0005\x00D4\x0001\u0345\x0004\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0003\x00D4\x0001\u03a5\x0006\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000F\x00D4\x0001\u03a9\x000A\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000A\x00D4\x0001\u03aa\x000F\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0015\x00D4\x0001\u03ab" + + "\x0004\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u03ac" + + "\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000D\x00D4" + + "\x0001\u03ad\x000C\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0003\x00D4\x0001\u03ae\x0006\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0011\x00D4\x0001\u03af\x0008\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0002\x00D4\x0001\u0338\x0017\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u0127\x0018\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0009\x00D4\x0001\u03b0\x0010\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0009\x00D4\x0001\u03b1\x0010\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u03b2\x0019\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u03b3\x0019\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0002\x00D4\x0001\u03b4" + + "\x0017\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0004\x00D4\x0001\u012e\x0005\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0008\x00D4\x0001\u03b5\x0011\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0001\u03b6\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0015\x00D4\x0001\u03b7\x0004\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0004\x00D4\x0001\u03a5\x0005\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0006\x00D4\x0001\u03a5\x0003\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0002\x00D4\x0001\u03a5" + + "\x0007\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000E\x00D4\x0001\u03b8\x000B\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0001\u03b9\x0009\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0003\x00D4\x0001\u03ba\x0006\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0003\x00D4\x0001\x00E8\x0006\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0014\x00D4\x0001\u03bb\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000" + + "\x0004\u03bc\x0002\x0000\x0001\u03bc\x000D\x0000\x0001\u03bc\x0006\x0000\x000A\u03bc\x0001\u02f5" + + "\x009F\x0000\x0004\u03bd\x0002\x0000\x0001\u03bd\x000D\x0000\x0001\u03bd\x0006\x0000\x000A\u03bd" + + "\x0001\u03be\x009F\x0000\x0004\u03bf\x0002\x0000\x0001\u03bf\x000D\x0000\x0001\u03bf\x0006\x0000" + + "\x0001\u03c0\x0002\u03c1\x0001\u03c0\x0005\u03c1\x0001\u03c2\x000C\x0000\x0001\u035e\x0093\x0000" + + "\x0004\u03c3\x0002\x0000\x0001\u03c3\x000D\x0000\x0001\u03c3\x0006\x0000\x000A\u03c3\x0001\u03c4" + + "\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u03c3\x0002\x0000\x0001\u03c3\x000D\x0000" + + "\x0001\u03c3\x0006\x0000\x000A\u03c6\x0001\u03c4\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5" + + "\x0004\u03c3\x0002\x0000\x0001\u03c3\x000D\x0000\x0001\u03c3\x0006\x0000\x000A\u03c7\x0001\u03c4" + + "\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u03c3\x0002\x0000\x0001\u03c3\x000D\x0000" + + "\x0001\u03c3\x0006\x0000\x0001\u03c6\x0001\u03c8\x0001\u03c7\x0002\u03c6\x0002\u03c7\x0001\u03c6" + + "\x0001\u03c7\x0001\u03c6\x0001\u03c4\x000B\x0000\x0001\u035e\x00C1\x0000\x0001\u022e\x0095\x0000" + + "\x001C\u01f0\x000A\u03c9\x0001\x0000\x0002\u01f0\x0001\u0234\x0003\u01f0\x0001\u01f2\x0001\x0000" + + "\x0001\u0233\x0003\x0000\x0002\u01f0\x0004\x0000\x0001\u01f0\x0099\x0000\x0001\u03ca\x00D2\x0000" + + "\x000A\u03cb\x0009\x0000\x0001\u0233\x00BB\x0000\x0001\u0292\x009F\x0000\x0004\u03cc\x0002\x0000" + + "\x0001\u03cc\x000D\x0000\x0001\u03cc\x0006\x0000\x000A\u03cc\x0001\u0364\x009F\x0000\x0004\u03cd" + + "\x0002\x0000\x0001\u03cd\x000D\x0000\x0001\u03cd\x0006\x0000\x000A\u03cd\x0001\u03ce\x009F\x0000" + + "\x0004\u03cf\x0002\x0000\x0001\u03cf\x000D\x0000\x0001\u03cf\x0006\x0000\x000A\u03cf\x0001\u03d0" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u03cf\x0002\x0000\x0001\u03cf\x000D\x0000" + + "\x0001\u03cf\x0006\x0000\x000A\u03d1\x0001\u03d0\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u03cf\x0002\x0000\x0001\u03cf\x000D\x0000\x0001\u03cf\x0006\x0000\x000A\u03d2\x0001\u03d0" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u03cf\x0002\x0000\x0001\u03cf\x000D\x0000" + + "\x0001\u03cf\x0006\x0000\x0001\u03d1\x0001\u03d3\x0001\u03d2\x0002\u03d1\x0002\u03d2\x0001\u03d1" + + "\x0001\u03d2\x0001\u03d1\x0001\u03d0\x000B\x0000\x0001\u0302\x0093\x0000\x0004\u03d4\x0002\x0000" + + "\x0001\u03d4\x000D\x0000\x0001\u03d4\x0006\x0000\x000A\u03d4\x0001\u036a\x000B\x0000\x0001\u0302" + + "\x0093\x0000\x0004\u0365\x0002\x0000\x0001\u0365\x000D\x0000\x0001\u0365\x0006\x0000\x0001\u0366" + + "\x0002\u0367\x0001\u0366\x0005\u0367\x0001\u0368\x00BB\x0000\x0001\u03d5\x0002\u03d6\x0001\u03d5" + + "\x0005\u03d6\x0001\u03d7\x009F\x0000\x0001\u036b\x0004\u03d4\x0002\x0000\x0001\u03d4\x000D\x0000" + + "\x0001\u03d4\x0006\x0000\x000A\u03d8\x0001\u036a\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u03d4\x0002\x0000\x0001\u03d4\x000D\x0000\x0001\u03d4\x0006\x0000\x000A\u03d4\x0001\u036a" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u03d4\x0002\x0000\x0001\u03d4\x000D\x0000" + + "\x0001\u03d4\x0006\x0000\x0002\u03d8\x0001\u03d4\x0002\u03d8\x0002\u03d4\x0001\u03d8\x0001\u03d4" + + "\x0001\u03d8\x0001\u036a\x000B\x0000\x0001\u0302\x0093\x0000\x0001\u03d9\x0001\u03da\x0001\u03db" + + "\x0001\u03dc\x0001\u03dd\x0001\u03de\x0001\u03df\x0001\u03e0\x0001\u03e1\x0001\u03e2\x0001\u03e3" + + "\x0001\u03e4\x0001\u03e5\x0001\u03e6\x0001\u03e7\x0001\u03e8\x0001\u03e9\x0001\u03ea\x0001\u03eb" + + "\x0001\u03ec\x0001\u03ed\x0001\u03ee\x0001\u03ef\x0001\u03f0\x0001\u03f1\x0001\u03f2\x0001\x0000" + + "\x000A\u0303\x00A0\x0000\x001A\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x003C\u0304\x0089\x0000" + + "\x001C\u023e\x000A\u03f3\x0001\x0000\x0002\u023e\x0001\u029f\x0003\u023e\x0001\u0240\x0001\u018c" + + "\x0001\u018d\x0001\u018e\x0002\x0000\x0002\u023e\x0004\x0000\x0001\u023e\x00B1\x0000\x0001\u02a4" + + "\x009F\x0000\x0004\u03f4\x0002\x0000\x0001\u03f4\x000D\x0000\x0001\u03f4\x0006\x0000\x000A\u03f4" + + "\x0001\u0376\x009F\x0000\x0004\u03f5\x0002\x0000\x0001\u03f5\x000D\x0000\x0001\u03f5\x0006\x0000" + + "\x000A\u03f5\x0001\u03f6\x009F\x0000\x0004\u03f7\x0002\x0000\x0001\u03f7\x000D\x0000\x0001\u03f7" + + "\x0006\x0000\x000A\u03f7\x0001\u03f8\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u03f7" + + "\x0002\x0000\x0001\u03f7\x000D\x0000\x0001\u03f7\x0006\x0000\x000A\u03f9\x0001\u03f8\x000B\x0000" + + "\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u03f7\x0002\x0000\x0001\u03f7\x000D\x0000\x0001\u03f7" + + "\x0006\x0000\x000A\u03fa\x0001\u03f8\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u03f7" + + "\x0002\x0000\x0001\u03f7\x000D\x0000\x0001\u03f7\x0006\x0000\x0001\u03f9\x0001\u03fb\x0001\u03fa" + + "\x0002\u03f9\x0002\u03fa\x0001\u03f9\x0001\u03fa\x0001\u03f9\x0001\u03f8\x000B\x0000\x0001\u0146" + + "\x0093\x0000\x0004\u03fc\x0002\x0000\x0001\u03fc\x000D\x0000\x0001\u03fc\x0006\x0000\x000A\u03fc" + + "\x0001\u0310\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u03fc\x0002\x0000\x0001\u03fc" + + "\x000D\x0000\x0001\u03fc\x0006\x0000\x000A\u03fc\x0001\u0310\x000B\x0000\x0001\u0146\x00C4\x0000" + + "\x0001\u0146\x00AE\x0000\x0002\u037d\x0001\x0000\x0002\u037d\x0002\x0000\x0001\u037d\x0001\x0000" + + "\x0001\u037d\x000C\x0000\x0001\u0146\x0092\x0000\x0001\u0109\x0001\x00B8\x0001\u03fd\x0018\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\u03fe\x0009\x00B8" + + "\x009F\x0000\x0001\u0109\x0006\x00B8\x0001\u03ff\x0013\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x001A\x00B8\x0001\u010a\x0007\x00B8\x0001\u0400\x0002\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0008\x00B8\x0001\u01d1\x0001\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0005\x00B8\x0001\u01d1\x0004\x00B8\x009F\x0000\x0001\u0109\x0016\x00B8\x0001\u0401" + + "\x0003\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u0402\x0018\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0016\x00B8\x0001\u0403\x0003\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\x00B8\x0001\u0404\x0008\x00B8" + + "\x009F\x0000\x0001\u0109\x0001\u0405\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0001\u0406\x0017\x00B8\x0001\u0407\x0001\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0001\u0408\x0009\x00B8\x009F\x0000\x0001\u0109\x0004\x00B8\x0001\u0409" + + "\x0015\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0015\x00B8\x0001\u040a\x0004\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u040b\x0019\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\u040c\x0009\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0002\x00B8\x0001\u0153\x0007\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0003\x00B8\x0001\u040d\x0006\x00B8\x009F\x0000\x0001\u0109\x0001\u040e\x0001\x00B8" + + "\x0001\u040f\x0017\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u0400\x0019\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0002\x00B8\x0001\u0410" + + "\x0007\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0002\x00B8\x0001\u0411\x0007\x00B8" + + "\x009F\x0000\x0001\u0109\x000D\x00B8\x0001\u0412\x000C\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x001A\x00B8\x0001\u010a\x0005\x00B8\x0001\u0413\x0004\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0007\x00B8\x0001\u0414\x0002\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0009\x00B8\x0001\u0415\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u0416\x0018\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0003\x00B8\x0001\u0417" + + "\x0006\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\x00B8\x0001\u0418\x0008\x00B8" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\x00B8\x0001\u0419\x0008\x00B8\x009F\x0000" + + "\x0001\u0109\x0014\x00B8\x0001\u041a\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0006\x00B8\x0001\u041b\x0003\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0003\x00B8\x0001\u041c\x0006\x00B8\x009F\x0000\x0001\u0109\x0001\u040d\x0019\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0009\x00B8\x0001\u041d" + + "\x009F\x0000\x0001\u0109\x0015\x00B8\x0001\u041e\x0004\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0121\x0003\x00D4\x0001\u041f\x0016\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0002\x00D4\x0001\u0127\x0017\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0006\x00D4\x0001\u0132\x0013\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u034f\x0018\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u0420\x0016\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0003\x00D4\x0001\u0421\x0006\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0006\x00D4\x0001\u0422\x0003\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0006\x00D4\x0001\u0423\x0003\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0005\x00D4\x0001\u0424\x0004\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0007\x00D4\x0001\u0425\x0002\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0426\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u0427\x0005\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0004\x00D4\x0001\u0428" + + "\x0005\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0004\x00D4" + + "\x0001\u0429\x0005\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0016\x00D4\x0001\u042a" + + "\x0003\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0018\x00D4" + + "\x0001\u042b\x0001\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0009\x00D4\x0001\u0176\x0010\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0002\x00D4\x0001\u042c\x0007\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x000A\x00D4\x0001\u042d\x000F\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x000F\x00D4\x0001\u012f\x000A\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0004\x00D4\x0001\u042e" + + "\x0005\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0006\x00D4" + + "\x0001\u0179\x0003\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0018\x00D4\x0001\u042f" + + "\x0001\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0018\x00D4" + + "\x0001\u0430\x0001\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x00B0\x0000\x0001\u02f5" + + "\x009F\x0000\x0004\u0431\x0002\x0000\x0001\u0431\x000D\x0000\x0001\u0431\x0006\x0000\x000A\u0431" + + "\x0001\u03be\x009F\x0000\x0004\u0432\x0002\x0000\x0001\u0432\x000D\x0000\x0001\u0432\x0006\x0000" + + "\x000A\u0432\x0001\u0433\x009F\x0000\x0004\u0434\x0002\x0000\x0001\u0434\x000D\x0000\x0001\u0434" + + "\x0006\x0000\x000A\u0434\x0001\u0435\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0434" + + "\x0002\x0000\x0001\u0434\x000D\x0000\x0001\u0434\x0006\x0000\x000A\u0436\x0001\u0435\x000B\x0000" + + "\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0434\x0002\x0000\x0001\u0434\x000D\x0000\x0001\u0434" + + "\x0006\x0000\x000A\u0437\x0001\u0435\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0434" + + "\x0002\x0000\x0001\u0434\x000D\x0000\x0001\u0434\x0006\x0000\x0001\u0436\x0001\u0438\x0001\u0437" + + "\x0002\u0436\x0002\u0437\x0001\u0436\x0001\u0437\x0001\u0436\x0001\u0435\x000B\x0000\x0001\u035e" + + "\x0093\x0000\x0004\u0439\x0002\x0000\x0001\u0439\x000D\x0000\x0001\u0439\x0006\x0000\x000A\u0439" + + "\x0001\u03c4\x000B\x0000\x0001\u035e\x0093\x0000\x0004\u03bf\x0002\x0000\x0001\u03bf\x000D\x0000" + + "\x0001\u03bf\x0006\x0000\x0001\u03c0\x0002\u03c1\x0001\u03c0\x0005\u03c1\x0001\u03c2\x00BB\x0000" + + "\x0001\u043a\x0002\u043b\x0001\u043a\x0005\u043b\x0001\u043c\x009F\x0000\x0001\u03c5\x0004\u0439" + + "\x0002\x0000\x0001\u0439\x000D\x0000\x0001\u0439\x0006\x0000\x000A\u043d\x0001\u03c4\x000B\x0000" + + "\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0439\x0002\x0000\x0001\u0439\x000D\x0000\x0001\u0439" + + "\x0006\x0000\x000A\u0439\x0001\u03c4\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0439" + + "\x0002\x0000\x0001\u0439\x000D\x0000\x0001\u0439\x0006\x0000\x0002\u043d\x0001\u0439\x0002\u043d" + + "\x0002\u0439\x0001\u043d\x0001\u0439\x0001\u043d\x0001\u03c4\x000B\x0000\x0001\u035e\x0092\x0000" + + "\x001C\u01f0\x000A\u043e\x0001\x0000\x0002\u01f0\x0001\u0234\x0003\u01f0\x0001\u01f2\x0001\x0000" + + "\x0001\u0233\x0003\x0000\x0002\u01f0\x0004\x0000\x0001\u01f0\x008F\x0000\x0001\u043f\x00DC\x0000" + + "\x000A\u0440\x0009\x0000\x0001\u0233\x0096\x0000\x0004\u0441\x0002\x0000\x0001\u0441\x000D\x0000" + + "\x0001\u0441\x0006\x0000\x000A\u0441\x0001\u0364\x009F\x0000\x0004\u0442\x0002\x0000\x0001\u0442" + + "\x000D\x0000\x0001\u0442\x0006\x0000\x000A\u0442\x0001\u0443\x009F\x0000\x0004\u0444\x0002\x0000" + + "\x0001\u0444\x000D\x0000\x0001\u0444\x0006\x0000\x0001\u0445\x0002\u0446\x0001\u0445\x0005\u0446" + + "\x0001\u0447\x000C\x0000\x0001\u0302\x0093\x0000\x0004\u0448\x0002\x0000\x0001\u0448\x000D\x0000" + + "\x0001\u0448\x0006\x0000\x000A\u0448\x0001\u03d0\x000B\x0000\x0001\u0302\x0093\x0000\x0004\u0444" + + "\x0002\x0000\x0001\u0444\x000D\x0000\x0001\u0444\x0006\x0000\x0001\u0445\x0002\u0446\x0001\u0445" + + "\x0005\u0446\x0001\u0447\x009F\x0000\x0001\u036b\x0004\u0448\x0002\x0000\x0001\u0448\x000D\x0000" + + "\x0001\u0448\x0006\x0000\x000A\u0449\x0001\u03d0\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u0448\x0002\x0000\x0001\u0448\x000D\x0000\x0001\u0448\x0006\x0000\x000A\u0448\x0001\u03d0" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u0448\x0002\x0000\x0001\u0448\x000D\x0000" + + "\x0001\u0448\x0006\x0000\x0002\u0449\x0001\u0448\x0002\u0449\x0002\u0448\x0001\u0449\x0001\u0448" + + "\x0001\u0449\x0001\u03d0\x000B\x0000\x0001\u0302\x0093\x0000\x0004\u044a\x0002\x0000\x0001\u044a" + + "\x000D\x0000\x0001\u044a\x0006\x0000\x000A\u044a\x0001\u036a\x000B\x0000\x0001\u0302\x0092\x0000" + + "\x0001\u044b\x001B\x0000\x000A\u03d6\x009F\x0000\x0001\u044b\x001B\x0000\x000A\u044c\x009F\x0000" + + "\x0001\u044b\x001B\x0000\x0001\u03d6\x0001\u044d\x0001\u044c\x0002\u03d6\x0002\u044c\x0001\u03d6" + + "\x0001\u044c\x0001\u03d6\x009F\x0000\x0001\u036b\x0004\u044a\x0002\x0000\x0001\u044a\x000D\x0000" + + "\x0001\u044a\x0006\x0000\x000A\u044a\x0001\u036a\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036f" + + "\x0001\u0303\x0002\u044e\x0001\u044f\x0001\u0450\x0008\u044e\x0001\u0303\x0001\u0451\x0005\u044e" + + "\x0006\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0452\x0002\u044e\x0001\u0303" + + "\x0001\u044e\x0001\u0453\x0006\u044e\x0004\u0303\x0004\u044e\x0001\u0303\x0001\u044e\x0001\u0303" + + "\x0003\u044e\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u044e\x0001\u0303" + + "\x0001\u044e\x0004\u0303\x0001\u044e\x0008\u0303\x0001\u044e\x0002\u0303\x0001\u044e\x0002\u0303" + + "\x0001\u044e\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0303\x0001\u044e\x0001\u0454" + + "\x0002\u044e\x0002\u0303\x0001\u044e\x0006\u0303\x0003\u044e\x0009\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u044e\x0001\u0303\x0001\u044e\x0008\u0303\x0001\u044e" + + "\x0001\u0303\x0002\u044e\x0008\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0004\u0303" + + "\x0001\u0455\x0005\u0303\x0001\u044e\x000F\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0004\u0303\x0002\u044e\x0002\u0303\x0001\u044e\x0001\u0303\x0001\u044e\x000B\u0303\x0001\u044e" + + "\x0002\u0303\x0001\u044e\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u044e\x0001\u0303" + + "\x0003\u044e\x0001\u0456\x000C\u044e\x0002\u0303\x0002\u044e\x0002\u0303\x0001\u044e\x0001\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0002\u0303\x0004\u044e\x0003\u0303\x0002\u044e" + + "\x0001\u0457\x0001\u044e\x0001\u0303\x0002\u044e\x000A\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0002\u044e\x0002\u0303\x0001\u044e\x0003\u0303\x0001\u044e\x0005\u0303\x0003\u044e" + + "\x0003\u0303\x0001\u044e\x0002\u0303\x0003\u044e\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0005\u044e\x0001\u0458\x0001\u0303\x0001\u044e\x0001\u0459\x0007\u044e\x0001\u045a\x0003\u044e" + + "\x0001\u0303\x0001\u044e\x0001\u0303\x0003\u044e\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0001\u045b\x0001\u044e\x0001\u0303\x0001\u0452\x0006\u044e\x0003\u0303\x0001\u044e\x0002\u0303" + + "\x0001\u044e\x0002\u0303\x0001\u044e\x0006\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0001\u044e\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u044e\x0002\u0303" + + "\x0001\u044e\x0001\u045c\x0001\u0303\x0002\u044e\x0001\u0303\x0003\u044e\x0002\u0303\x0002\u044e" + + "\x0001\u0303\x0001\u044e\x0003\u0303\x0001\u044e\x0002\u0303\x0002\u044e\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0006\u044e\x0001\u0303\x0005\u044e\x0003\u0303\x0002\u044e\x0001\u0303" + + "\x0008\u044e\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0303\x0002\u044e\x0001\u0459" + + "\x0001\u045d\x0003\u044e\x0001\u0303\x0003\u044e\x0001\u0303\x0001\u044e\x0001\u0303\x0001\u044e" + + "\x0001\u0303\x0001\u044e\x0001\u0303\x0001\u044e\x0001\u0303\x0003\u044e\x0001\u0303\x0001\u044e" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u044e\x0006\u0303\x0001\u044e\x0006\u0303" + + "\x0001\u044e\x0004\u0303\x0001\u044e\x0004\u0303\x0002\u044e\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0006\u0303\x0001\u044e\x0007\u0303\x0001\u044e\x000B\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x000B\u0303\x0001\u045e\x0006\u0303\x0001\u045f\x0007\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u044e\x0009\u0303\x0001\u044e\x0006\u0303\x0001\u044e" + + "\x0008\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u044e\x0001\u0303\x0006\u044e" + + "\x0001\u0460\x0001\u0303\x0002\u044e\x0002\u0303\x0002\u044e\x0001\u0303\x0001\u044e\x0001\u0303" + + "\x0006\u044e\x0001\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0004\u0303\x0001\u044e" + + "\x0005\u0303\x0002\u044e\x0003\u0303\x0002\u044e\x0008\u0303\x0001\u044e\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u044e\x0001\u0303\x0001\u0461\x0004\u0303\x0001\u044e" + + "\x0002\u0303\x0001\u044e\x000C\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0002\u044e" + + "\x0001\u0303\x0001\u044e\x0003\u0303\x0002\u044e\x0002\u0303\x0001\u044e\x0004\u0303\x0001\u044e" + + "\x0009\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u044e\x000B\u0303" + + "\x0001\u044e\x000A\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0003\u0303\x0002\u044e" + + "\x0002\u0303\x0002\u044e\x0001\u0303\x0002\u044e\x0001\u0303\x0001\u044e\x0003\u0303\x0001\u044e" + + "\x0001\u0303\x0001\u044e\x0001\u0303\x0001\u044e\x0002\u0303\x0001\u044e\x0001\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x001C\u023e\x000A\u0462\x0001\x0000\x0002\u023e\x0001\u029f\x0003\u023e" + + "\x0001\u0240\x0001\u018c\x0001\u018d\x0001\u018e\x0002\x0000\x0002\u023e\x0004\x0000\x0001\u023e" + + "\x008C\x0000\x0004\u0463\x0002\x0000\x0001\u0463\x000D\x0000\x0001\u0463\x0006\x0000\x000A\u0463" + + "\x0001\u0376\x009F\x0000\x0004\u0464\x0002\x0000\x0001\u0464\x000D\x0000\x0001\u0464\x0006\x0000" + + "\x000A\u0464\x0001\u0465\x009F\x0000\x0004\u0466\x0002\x0000\x0001\u0466\x000D\x0000\x0001\u0466" + + "\x0006\x0000\x0001\u0467\x0002\u0468\x0001\u0467\x0005\u0468\x0001\u0469\x000C\x0000\x0001\u0146" + + "\x0093\x0000\x0004\u046a\x0002\x0000\x0001\u046a\x000D\x0000\x0001\u046a\x0006\x0000\x000A\u046a" + + "\x0001\u03f8\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u0466\x0002\x0000\x0001\u0466\x000D\x0000" + + "\x0001\u0466\x0006\x0000\x0001\u0467\x0002\u0468\x0001\u0467\x0005\u0468\x0001\u0469\x009F\x0000" + + "\x0001\u0188\x0004\u046a\x0002\x0000\x0001\u046a\x000D\x0000\x0001\u046a\x0006\x0000\x000A\u046b" + + "\x0001\u03f8\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u046a\x0002\x0000\x0001\u046a" + + "\x000D\x0000\x0001\u046a\x0006\x0000\x000A\u046a\x0001\u03f8\x000B\x0000\x0001\u0146\x0092\x0000" + + "\x0001\u0188\x0004\u046a\x0002\x0000\x0001\u046a\x000D\x0000\x0001\u046a\x0006\x0000\x0002\u046b" + + "\x0001\u046a\x0002\u046b\x0002\u046a\x0001\u046b\x0001\u046a\x0001\u046b\x0001\u03f8\x000B\x0000" + + "\x0001\u0146\x00B8\x0000\x0001\u0310\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0001\u046c\x0009\x00B8\x009F\x0000\x0001\u0109\x0001\u046d\x0019\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0008\x00B8\x0001\u046e\x0001\x00B8" + + "\x009F\x0000\x0001\u0109\x0015\x00B8\x0001\u018f\x0004\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x001A\x00B8\x0001\u010a\x0005\x00B8\x0001\u046f\x0004\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0005\x00B8\x0001\u0470\x0004\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0005\x00B8\x0001\u040d\x0004\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a" + + "\x0003\x00B8\x0001\u046d\x0006\x00B8\x009F\x0000\x0001\u0109\x000F\x00B8\x0001\u0471\x000A\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x000A\x00B8\x0001\u0472\x000F\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0015\x00B8\x0001\u0473\x0004\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0001\u0474\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x000D\x00B8\x0001\u0475\x000C\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0003\x00B8\x0001\u0476\x0006\x00B8\x009F\x0000\x0001\u0109\x0011\x00B8\x0001\u0477" + + "\x0008\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0002\x00B8\x0001\u0400\x0017\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u018f\x0018\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0009\x00B8\x0001\u0478\x0010\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0009\x00B8\x0001\u0479\x0010\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0001\u047a\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u047b" + + "\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0002\x00B8\x0001\u047c\x0017\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0004\x00B8\x0001\u0196" + + "\x0005\x00B8\x009F\x0000\x0001\u0109\x0008\x00B8\x0001\u047d\x0011\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0001\u047e\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0015\x00B8\x0001\u047f\x0004\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0004\x00B8\x0001\u046d\x0005\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a" + + "\x0006\x00B8\x0001\u046d\x0003\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0002\x00B8" + + "\x0001\u046d\x0007\x00B8\x009F\x0000\x0001\u0109\x000E\x00B8\x0001\u0480\x000B\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\u0481\x0009\x00B8\x009F\x0000" + + "\x0001\u0109\x001A\x00B8\x0001\u010a\x0003\x00B8\x0001\u0482\x0006\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0003\x00B8\x0001\u0153\x0006\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8" + + "\x0001\u0483\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0121\x0001\u0484\x0019\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0009\x00D4\x0001\u0345\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0485\x0019\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0486\x0019\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0007\x00D4\x0001\u0487" + + "\x0012\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0488" + + "\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0489" + + "\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0006\x00D4\x0001\u048a\x0003\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0006\x00D4\x0001\u0127\x0013\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0015\x00D4\x0001\u048b\x0004\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0001\u048c\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0006\x00D4\x0001\u048d\x0003\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u048e\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0006\x00D4\x0001\u0175\x0003\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000A\x00D4\x0001\u0138\x000F\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u048f\x0019\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0008\x00D4\x0001\u0490\x0011\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0019\x00D4\x0001\u0491" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000\x0004\u0492\x0002\x0000\x0001\u0492" + + "\x000D\x0000\x0001\u0492\x0006\x0000\x000A\u0492\x0001\u03be\x009F\x0000\x0004\u0493\x0002\x0000" + + "\x0001\u0493\x000D\x0000\x0001\u0493\x0006\x0000\x000A\u0493\x0001\u0494\x009F\x0000\x0004\u0495" + + "\x0002\x0000\x0001\u0495\x000D\x0000\x0001\u0495\x0006\x0000\x0001\u0496\x0002\u0497\x0001\u0496" + + "\x0005\u0497\x0001\u0498\x000C\x0000\x0001\u035e\x0093\x0000\x0004\u0499\x0002\x0000\x0001\u0499" + + "\x000D\x0000\x0001\u0499\x0006\x0000\x000A\u0499\x0001\u0435\x000B\x0000\x0001\u035e\x0093\x0000" + + "\x0004\u0495\x0002\x0000\x0001\u0495\x000D\x0000\x0001\u0495\x0006\x0000\x0001\u0496\x0002\u0497" + + "\x0001\u0496\x0005\u0497\x0001\u0498\x009F\x0000\x0001\u03c5\x0004\u0499\x0002\x0000\x0001\u0499" + + "\x000D\x0000\x0001\u0499\x0006\x0000\x000A\u049a\x0001\u0435\x000B\x0000\x0001\u035e\x0092\x0000" + + "\x0001\u03c5\x0004\u0499\x0002\x0000\x0001\u0499\x000D\x0000\x0001\u0499\x0006\x0000\x000A\u0499" + + "\x0001\u0435\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0499\x0002\x0000\x0001\u0499" + + "\x000D\x0000\x0001\u0499\x0006\x0000\x0002\u049a\x0001\u0499\x0002\u049a\x0002\u0499\x0001\u049a" + + "\x0001\u0499\x0001\u049a\x0001\u0435\x000B\x0000\x0001\u035e\x0093\x0000\x0004\u049b\x0002\x0000" + + "\x0001\u049b\x000D\x0000\x0001\u049b\x0006\x0000\x000A\u049b\x0001\u03c4\x000B\x0000\x0001\u035e" + + "\x0092\x0000\x0001\u049c\x001B\x0000\x000A\u043b\x009F\x0000\x0001\u049c\x001B\x0000\x000A\u049d" + + "\x009F\x0000\x0001\u049c\x001B\x0000\x0001\u043b\x0001\u049e\x0001\u049d\x0002\u043b\x0002\u049d" + + "\x0001\u043b\x0001\u049d\x0001\u043b\x009F\x0000\x0001\u03c5\x0004\u049b\x0002\x0000\x0001\u049b" + + "\x000D\x0000\x0001\u049b\x0006\x0000\x000A\u049b\x0001\u03c4\x000B\x0000\x0001\u035e\x0092\x0000" + + "\x0026\u01f0\x0001\x0000\x0002\u01f0\x0001\u0234\x0003\u01f0\x0001\u01f2\x0001\x0000\x0001\u0233" + + "\x0003\x0000\x0002\u01f0\x0004\x0000\x0001\u01f0\x00BF\x0000\x0001\u049f\x00AC\x0000\x000A\u04a0" + + "\x0009\x0000\x0001\u0233\x00BB\x0000\x0001\u0364\x009F\x0000\x0004\u04a1\x0002\x0000\x0001\u04a1" + + "\x000D\x0000\x0001\u04a1\x0006\x0000\x000A\u04a1\x0001\u0443\x009F\x0000\x0004\u04a2\x0002\x0000" + + "\x0001\u04a2\x000D\x0000\x0001\u04a2\x0006\x0000\x000A\u04a2\x0001\u04a3\x009F\x0000\x0004\u04a4" + + "\x0002\x0000\x0001\u04a4\x000D\x0000\x0001\u04a4\x0006\x0000\x000A\u04a4\x0001\u04a5\x000B\x0000" + + "\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u04a4\x0002\x0000\x0001\u04a4\x000D\x0000\x0001\u04a4" + + "\x0006\x0000\x000A\u04a6\x0001\u04a5\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u04a4" + + "\x0002\x0000\x0001\u04a4\x000D\x0000\x0001\u04a4\x0006\x0000\x000A\u04a7\x0001\u04a5\x000B\x0000" + + "\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u04a4\x0002\x0000\x0001\u04a4\x000D\x0000\x0001\u04a4" + + "\x0006\x0000\x0001\u04a6\x0001\u04a8\x0001\u04a7\x0002\u04a6\x0002\u04a7\x0001\u04a6\x0001\u04a7" + + "\x0001\u04a6\x0001\u04a5\x000B\x0000\x0001\u0302\x0093\x0000\x0004\u04a9\x0002\x0000\x0001\u04a9" + + "\x000D\x0000\x0001\u04a9\x0006\x0000\x000A\u04a9\x0001\u03d0\x000B\x0000\x0001\u0302\x0092\x0000" + + "\x0001\u036b\x0004\u04a9\x0002\x0000\x0001\u04a9\x000D\x0000\x0001\u04a9\x0006\x0000\x000A\u04a9" + + "\x0001\u03d0\x000B\x0000\x0001\u0302\x00B8\x0000\x0001\u036a\x000B\x0000\x0001\u0302\x00AE\x0000" + + "\x0001\u04aa\x0002\u04ab\x0001\u04aa\x0005\u04ab\x0001\u04ac\x009F\x0000\x0001\u044b\x00C4\x0000" + + "\x0001\u044b\x001B\x0000\x0002\u044c\x0001\x0000\x0002\u044c\x0002\x0000\x0001\u044c\x0001\x0000" + + "\x0001\u044c\x009F\x0000\x0001\u04ad\x001A\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad" + + "\x0004\u0303\x0001\u04ae\x0015\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad\x000D\u0303" + + "\x0001\u03e5\x000C\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad\x0008\u0303\x0001\u03e5" + + "\x0011\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad\x000F\u0303\x0001\u044e\x000A\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad\x0005\u0303\x0001\u04af\x0004\u0303\x0001\u044e" + + "\x000F\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0010\u0303\x0001\u044e\x0009\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0007\u0303\x0001\u044e\x0012\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0017\u0303\x0001\u044e\x0002\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u04ad\x0006\u0303\x0001\u04ae\x0008\u0303\x0001\u044e\x000A\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u04ad\x0014\u0303\x0001\u04b0\x0005\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0009\u0303\x0001\u044e\x0010\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u04ad\x000E\u0303\x0001\u04b1\x000B\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad" + + "\x000A\u0303\x0001\u04b2\x000F\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad\x0005\u0303" + + "\x0001\u044e\x0014\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad\x0001\u04b3\x0019\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u04b4\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0012\u0303\x0001\u044e\x0007\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad" + + "\x0013\u0303\x0001\u044e\x0006\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u04ad\x0014\u0303" + + "\x0001\u04b5\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x001C\u023e\x000A\u04b6\x0001\x0000" + + "\x0002\u023e\x0001\u029f\x0003\u023e\x0001\u0240\x0001\u018c\x0001\u018d\x0001\u018e\x0002\x0000" + + "\x0002\u023e\x0004\x0000\x0001\u023e\x00B1\x0000\x0001\u0376\x009F\x0000\x0004\u04b7\x0002\x0000" + + "\x0001\u04b7\x000D\x0000\x0001\u04b7\x0006\x0000\x000A\u04b7\x0001\u0465\x009F\x0000\x0004\u04b8" + + "\x0002\x0000\x0001\u04b8\x000D\x0000\x0001\u04b8\x0006\x0000\x0001\u04b9\x0002\u04ba\x0001\u04b9" + + "\x0005\u04ba\x0001\u04bb\x0001\u04bc\x009F\x0000\x0004\u04bd\x0002\x0000\x0001\u04bd\x000D\x0000" + + "\x0001\u04bd\x0006\x0000\x000A\u04bd\x0001\u04be\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188" + + "\x0004\u04bd\x0002\x0000\x0001\u04bd\x000D\x0000\x0001\u04bd\x0006\x0000\x000A\u04bf\x0001\u04be" + + "\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u04bd\x0002\x0000\x0001\u04bd\x000D\x0000" + + "\x0001\u04bd\x0006\x0000\x000A\u04c0\x0001\u04be\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188" + + "\x0004\u04bd\x0002\x0000\x0001\u04bd\x000D\x0000\x0001\u04bd\x0006\x0000\x0001\u04bf\x0001\u04c1" + + "\x0001\u04c0\x0002\u04bf\x0002\u04c0\x0001\u04bf\x0001\u04c0\x0001\u04bf\x0001\u04be\x000B\x0000" + + "\x0001\u0146\x0093\x0000\x0004\u04c2\x0002\x0000\x0001\u04c2\x000D\x0000\x0001\u04c2\x0006\x0000" + + "\x000A\u04c2\x0001\u03f8\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u04c2\x0002\x0000" + + "\x0001\u04c2\x000D\x0000\x0001\u04c2\x0006\x0000\x000A\u04c2\x0001\u03f8\x000B\x0000\x0001\u0146" + + "\x0092\x0000\x0001\u0109\x0003\x00B8\x0001\u04c3\x0016\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0002\x00B8\x0001\u018f\x0017\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0006\x00B8\x0001\u019a\x0013\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8" + + "\x0001\u0417\x0018\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u04c4" + + "\x0016\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0003\x00B8" + + "\x0001\u04c5\x0006\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0006\x00B8\x0001\u04c6" + + "\x0003\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0006\x00B8\x0001\u04c7\x0003\x00B8" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0005\x00B8\x0001\u04c8\x0004\x00B8\x009F\x0000" + + "\x0001\u0109\x001A\x00B8\x0001\u010a\x0007\x00B8\x0001\u04c9\x0002\x00B8\x009F\x0000\x0001\u0109" + + "\x0001\u04ca\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u04cb" + + "\x0005\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0004\x00B8" + + "\x0001\u04cc\x0005\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0004\x00B8\x0001\u04cd" + + "\x0005\x00B8\x009F\x0000\x0001\u0109\x0016\x00B8\x0001\u04ce\x0003\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0018\x00B8\x0001\u04cf\x0001\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0009\x00B8\x0001\u01cb\x0010\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0002\x00B8\x0001\u04d0\x0007\x00B8\x009F\x0000\x0001\u0109\x000A\x00B8" + + "\x0001\u04d1\x000F\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x000F\x00B8\x0001\u0197" + + "\x000A\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0004\x00B8" + + "\x0001\u04d2\x0005\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0006\x00B8\x0001\u01ce" + + "\x0003\x00B8\x009F\x0000\x0001\u0109\x0018\x00B8\x0001\u04d3\x0001\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0018\x00B8\x0001\u04d4\x0001\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\u04d5\x0009\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0002\x00D4\x0001\u04d6\x0017\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0008\x00D4\x0001\u0338\x0001\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x000D\x00D4\x0001\x00E8\x000C\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0013\x00D4\x0001\u04d7\x0006\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\x00D4" + + "\x0001\u04d8\x0008\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0003\x00D4\x0001\u0179\x0006\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0018\x00D4" + + "\x0001\u04d9\x0001\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0001\x00D4\x0001\u04da\x0008\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0006\x00D4\x0001\u04db\x0013\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0005\x00D4\x0001\u04dc\x0004\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0005\x00D4\x0001\u04dd\x0004\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\x00D4\x0001\x00E8" + + "\x0008\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x000B\x00D4\x0001\u04de\x000E\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x00B0\x0000\x0001\u03be\x009F\x0000\x0004\u04df" + + "\x0002\x0000\x0001\u04df\x000D\x0000\x0001\u04df\x0006\x0000\x000A\u04df\x0001\u0494\x009F\x0000" + + "\x0004\u04e0\x0002\x0000\x0001\u04e0\x000D\x0000\x0001\u04e0\x0006\x0000\x000A\u04e0\x0001\u04e1" + + "\x009F\x0000\x0004\u04e2\x0002\x0000\x0001\u04e2\x000D\x0000\x0001\u04e2\x0006\x0000\x000A\u04e2" + + "\x0001\u04e3\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u04e2\x0002\x0000\x0001\u04e2" + + "\x000D\x0000\x0001\u04e2\x0006\x0000\x000A\u04e4\x0001\u04e3\x000B\x0000\x0001\u035e\x0092\x0000" + + "\x0001\u03c5\x0004\u04e2\x0002\x0000\x0001\u04e2\x000D\x0000\x0001\u04e2\x0006\x0000\x000A\u04e5" + + "\x0001\u04e3\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u04e2\x0002\x0000\x0001\u04e2" + + "\x000D\x0000\x0001\u04e2\x0006\x0000\x0001\u04e4\x0001\u04e6\x0001\u04e5\x0002\u04e4\x0002\u04e5" + + "\x0001\u04e4\x0001\u04e5\x0001\u04e4\x0001\u04e3\x000B\x0000\x0001\u035e\x0093\x0000\x0004\u04e7" + + "\x0002\x0000\x0001\u04e7\x000D\x0000\x0001\u04e7\x0006\x0000\x000A\u04e7\x0001\u0435\x000B\x0000" + + "\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u04e7\x0002\x0000\x0001\u04e7\x000D\x0000\x0001\u04e7" + + "\x0006\x0000\x000A\u04e7\x0001\u0435\x000B\x0000\x0001\u035e\x00B8\x0000\x0001\u03c4\x000B\x0000" + + "\x0001\u035e\x00AE\x0000\x0001\u04e8\x0002\u04e9\x0001\u04e8\x0005\u04e9\x0001\u04ea\x009F\x0000" + + "\x0001\u049c\x00C4\x0000\x0001\u049c\x001B\x0000\x0002\u049d\x0001\x0000\x0002\u049d\x0002\x0000" + + "\x0001\u049d\x0001\x0000\x0001\u049d\x00A0\x0000\x0001\u04eb\x0001\x0000\x0001\u04eb\x0005\x0000" + + "\x0001\u04eb\x00EA\x0000\x0001\u0233\x0096\x0000\x0004\u04ec\x0002\x0000\x0001\u04ec\x000D\x0000" + + "\x0001\u04ec\x0006\x0000\x000A\u04ec\x0001\u0443\x009F\x0000\x0004\u04ed\x0002\x0000\x0001\u04ed" + + "\x000D\x0000\x0001\u04ed\x0006\x0000\x000A\u04ed\x0001\u04ee\x009F\x0000\x0004\u04ef\x0002\x0000" + + "\x0001\u04ef\x000D\x0000\x0001\u04ef\x0006\x0000\x0001\u04f0\x0002\u04f1\x0001\u04f0\x0005\u04f1" + + "\x0001\u04f2\x000C\x0000\x0001\u0302\x0093\x0000\x0004\u04f3\x0002\x0000\x0001\u04f3\x000D\x0000" + + "\x0001\u04f3\x0006\x0000\x000A\u04f3\x0001\u04a5\x000B\x0000\x0001\u0302\x0093\x0000\x0004\u04ef" + + "\x0002\x0000\x0001\u04ef\x000D\x0000\x0001\u04ef\x0006\x0000\x0001\u04f0\x0002\u04f1\x0001\u04f0" + + "\x0005\u04f1\x0001\u04f2\x009F\x0000\x0001\u036b\x0004\u04f3\x0002\x0000\x0001\u04f3\x000D\x0000" + + "\x0001\u04f3\x0006\x0000\x000A\u04f4\x0001\u04a5\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u04f3\x0002\x0000\x0001\u04f3\x000D\x0000\x0001\u04f3\x0006\x0000\x000A\u04f3\x0001\u04a5" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u04f3\x0002\x0000\x0001\u04f3\x000D\x0000" + + "\x0001\u04f3\x0006\x0000\x0002\u04f4\x0001\u04f3\x0002\u04f4\x0002\u04f3\x0001\u04f4\x0001\u04f3" + + "\x0001\u04f4\x0001\u04a5\x000B\x0000\x0001\u0302\x00B8\x0000\x0001\u03d0\x000B\x0000\x0001\u0302" + + "\x0092\x0000\x0001\u04f5\x001B\x0000\x000A\u04ab\x009F\x0000\x0001\u04f5\x001B\x0000\x000A\u04f6" + + "\x009F\x0000\x0001\u04f5\x001B\x0000\x0001\u04ab\x0001\u04f7\x0001\u04f6\x0002\u04ab\x0002\u04f6" + + "\x0001\u04ab\x0001\u04f6\x0001\u04ab\x009F\x0000\x0001\u036f\x0005\u0303\x0001\u044e\x0014\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x000D\u0303\x0001\u044e\x000C\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0008\u0303\x0001\u044e\x0011\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u04f8\x0016\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0003\u0303\x0001\u044e\x0016\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0017\u0303\x0001\u04f9\x0002\u0303\x0001\u0370\x000A\u0303\x00A0\x0000\x001A\u0303\x0001\u04fa" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x000E\u0303\x0001\u044e\x000B\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0026\u023e\x0001\x0000\x0002\u023e\x0001\u029f\x0003\u023e\x0001\u0240\x0001\u018c" + + "\x0001\u018d\x0001\u018e\x0002\x0000\x0002\u023e\x0004\x0000\x0001\u023e\x008C\x0000\x0004\u04fb" + + "\x0002\x0000\x0001\u04fb\x000D\x0000\x0001\u04fb\x0006\x0000\x000A\u04fb\x0001\u0465\x009F\x0000" + + "\x0004\u04fc\x0002\x0000\x0001\u04fc\x000D\x0000\x0001\u04fc\x0006\x0000\x000A\u04fc\x0001\u04fd" + + "\x009E\x0000\x0001\u0188\x0004\u04fc\x0002\x0000\x0001\u04fc\x000D\x0000\x0001\u04fc\x0006\x0000" + + "\x000A\u04fe\x0001\u04fd\x009E\x0000\x0001\u0188\x0004\u04fc\x0002\x0000\x0001\u04fc\x000D\x0000" + + "\x0001\u04fc\x0006\x0000\x000A\u04ff\x0001\u04fd\x009E\x0000\x0001\u0188\x0004\u04fc\x0002\x0000" + + "\x0001\u04fc\x000D\x0000\x0001\u04fc\x0006\x0000\x0001\u04fe\x0001\u0500\x0001\u04ff\x0002\u04fe" + + "\x0002\u04ff\x0001\u04fe\x0001\u04ff\x0001\u04fe\x0001\u04fd\x009F\x0000\x0004\u0501\x0002\x0000" + + "\x0001\u0501\x000D\x0000\x0001\u0501\x0006\x0000\x000A\u0501\x000C\x0000\x0001\u0146\x0093\x0000" + + "\x0004\u0502\x0002\x0000\x0001\u0502\x000D\x0000\x0001\u0502\x0006\x0000\x000A\u0502\x0001\u04be" + + "\x000B\x0000\x0001\u0146\x0093\x0000\x0004\u0501\x0002\x0000\x0001\u0501\x000D\x0000\x0001\u0501" + + "\x0006\x0000\x000A\u0501\x009F\x0000\x0001\u0188\x0004\u0502\x0002\x0000\x0001\u0502\x000D\x0000" + + "\x0001\u0502\x0006\x0000\x000A\u0503\x0001\u04be\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188" + + "\x0004\u0502\x0002\x0000\x0001\u0502\x000D\x0000\x0001\u0502\x0006\x0000\x000A\u0502\x0001\u04be" + + "\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0188\x0004\u0502\x0002\x0000\x0001\u0502\x000D\x0000" + + "\x0001\u0502\x0006\x0000\x0002\u0503\x0001\u0502\x0002\u0503\x0002\u0502\x0001\u0503\x0001\u0502" + + "\x0001\u0503\x0001\u04be\x000B\x0000\x0001\u0146\x00B8\x0000\x0001\u03f8\x000B\x0000\x0001\u0146" + + "\x0092\x0000\x0001\u0109\x0001\u0504\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0009\x00B8\x0001\u040d\x009F\x0000\x0001\u0109\x0001\u0505\x0019\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u0506\x0019\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0007\x00B8\x0001\u0507\x0012\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0001\u0508\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u0509" + + "\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0006\x00B8" + + "\x0001\u050a\x0003\x00B8\x009F\x0000\x0001\u0109\x0006\x00B8\x0001\u018f\x0013\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0015\x00B8\x0001\u050b\x0004\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x0001\u050c\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0006\x00B8\x0001\u050d\x0003\x00B8\x009F\x0000\x0001\u0109\x0001\u050e" + + "\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0006\x00B8" + + "\x0001\u01ca\x0003\x00B8\x009F\x0000\x0001\u0109\x000A\x00B8\x0001\u01a0\x000F\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u050f\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x0008\x00B8\x0001\u0510\x0011\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0019\x00B8\x0001\u0511\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0121\x0014\x00D4\x0001\u0512" + + "\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0008\x00D4\x0001\u0513\x0001\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0001\x00D4\x0001\u012e\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0002\x00D4\x0001\u0514\x0017\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u0515\x0016\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u0516\x0016\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\x00D4\x0001\u0517" + + "\x0008\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0003\x00D4\x0001\u0518\x0016\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u0519\x0019\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0016\x00D4\x0001\u051a" + + "\x0003\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000\x0004\u051b\x0002\x0000" + + "\x0001\u051b\x000D\x0000\x0001\u051b\x0006\x0000\x000A\u051b\x0001\u0494\x009F\x0000\x0004\u051c" + + "\x0002\x0000\x0001\u051c\x000D\x0000\x0001\u051c\x0006\x0000\x000A\u051c\x0001\u051d\x009F\x0000" + + "\x0004\u051e\x0002\x0000\x0001\u051e\x000D\x0000\x0001\u051e\x0006\x0000\x0001\u051f\x0002\u0520" + + "\x0001\u051f\x0005\u0520\x0001\u0521\x000C\x0000\x0001\u035e\x0093\x0000\x0004\u0522\x0002\x0000" + + "\x0001\u0522\x000D\x0000\x0001\u0522\x0006\x0000\x000A\u0522\x0001\u04e3\x000B\x0000\x0001\u035e" + + "\x0093\x0000\x0004\u051e\x0002\x0000\x0001\u051e\x000D\x0000\x0001\u051e\x0006\x0000\x0001\u051f" + + "\x0002\u0520\x0001\u051f\x0005\u0520\x0001\u0521\x009F\x0000\x0001\u03c5\x0004\u0522\x0002\x0000" + + "\x0001\u0522\x000D\x0000\x0001\u0522\x0006\x0000\x000A\u0523\x0001\u04e3\x000B\x0000\x0001\u035e" + + "\x0092\x0000\x0001\u03c5\x0004\u0522\x0002\x0000\x0001\u0522\x000D\x0000\x0001\u0522\x0006\x0000" + + "\x000A\u0522\x0001\u04e3\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0522\x0002\x0000" + + "\x0001\u0522\x000D\x0000\x0001\u0522\x0006\x0000\x0002\u0523\x0001\u0522\x0002\u0523\x0002\u0522" + + "\x0001\u0523\x0001\u0522\x0001\u0523\x0001\u04e3\x000B\x0000\x0001\u035e\x00B8\x0000\x0001\u0435" + + "\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u0524\x001B\x0000\x000A\u04e9\x009F\x0000\x0001\u0524" + + "\x001B\x0000\x000A\u0525\x009F\x0000\x0001\u0524\x001B\x0000\x0001\u04e9\x0001\u0526\x0001\u0525" + + "\x0002\u04e9\x0002\u0525\x0001\u04e9\x0001\u0525\x0001\u04e9\x00CF\x0000\x0001\u018e\x00BA\x0000" + + "\x0001\u0443\x009F\x0000\x0004\u0527\x0002\x0000\x0001\u0527\x000D\x0000\x0001\u0527\x0006\x0000" + + "\x000A\u0527\x0001\u04ee\x009F\x0000\x0004\u0528\x0002\x0000\x0001\u0528\x000D\x0000\x0001\u0528" + + "\x0006\x0000\x000A\u0528\x0001\u0529\x009F\x0000\x0004\u052a\x0002\x0000\x0001\u052a\x000D\x0000" + + "\x0001\u052a\x0006\x0000\x000A\u052a\x0001\u052b\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u052a\x0002\x0000\x0001\u052a\x000D\x0000\x0001\u052a\x0006\x0000\x000A\u052c\x0001\u052b" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u052a\x0002\x0000\x0001\u052a\x000D\x0000" + + "\x0001\u052a\x0006\x0000\x000A\u052d\x0001\u052b\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u052a\x0002\x0000\x0001\u052a\x000D\x0000\x0001\u052a\x0006\x0000\x0001\u052c\x0001\u052e" + + "\x0001\u052d\x0002\u052c\x0002\u052d\x0001\u052c\x0001\u052d\x0001\u052c\x0001\u052b\x000B\x0000" + + "\x0001\u0302\x0093\x0000\x0004\u052f\x0002\x0000\x0001\u052f\x000D\x0000\x0001\u052f\x0006\x0000" + + "\x000A\u052f\x0001\u04a5\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u052f\x0002\x0000" + + "\x0001\u052f\x000D\x0000\x0001\u052f\x0006\x0000\x000A\u052f\x0001\u04a5\x000B\x0000\x0001\u0302" + + "\x00AE\x0000\x0001\u0530\x0002\u0531\x0001\u0530\x0005\u0531\x0001\u0532\x009F\x0000\x0001\u04f5" + + "\x00C4\x0000\x0001\u04f5\x001B\x0000\x0002\u04f6\x0001\x0000\x0002\u04f6\x0002\x0000\x0001\u04f6" + + "\x0001\x0000\x0001\u04f6\x009F\x0000\x0001\u036f\x0010\u0303\x0001\u0533\x0009\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u0459\x0016\u0303\x0001\u0370\x000A\u0303" + + "\x00A0\x0000\x0001\u0303\x0001\u0534\x0001\u0535\x0002\u0303\x0001\u0536\x0001\u0537\x0001\u0538" + + "\x0001\u0303\x0001\u0539\x0001\u053a\x0002\u0303\x0001\u053b\x0001\u053c\x0002\u0303\x0001\u053d" + + "\x0001\u053e\x0001\u053f\x0001\u0303\x0001\u0540\x0001\u0541\x0001\u0303\x0001\u0542\x0001\u0543" + + "\x0001\u0370\x0001\u0544\x0002\u0303\x0001\u0545\x0001\u0546\x0001\u0547\x0001\u0303\x0001\u0548" + + "\x0001\u0549\x0001\u0303\x00C5\x0000\x0001\u0465\x009F\x0000\x0004\u054a\x0002\x0000\x0001\u054a" + + "\x000D\x0000\x0001\u054a\x0006\x0000\x000A\u054a\x0001\u04fd\x009F\x0000\x0004\u0501\x0002\x0000" + + "\x0001\u0501\x000D\x0000\x0001\u0501\x0006\x0000\x000A\u0501\x0001\u037d\x009E\x0000\x0001\u0188" + + "\x0004\u054a\x0002\x0000\x0001\u054a\x000D\x0000\x0001\u054a\x0006\x0000\x000A\u054b\x0001\u04fd" + + "\x009E\x0000\x0001\u0188\x0004\u054a\x0002\x0000\x0001\u054a\x000D\x0000\x0001\u054a\x0006\x0000" + + "\x000A\u054a\x0001\u04fd\x009E\x0000\x0001\u0188\x0004\u054a\x0002\x0000\x0001\u054a\x000D\x0000" + + "\x0001\u054a\x0006\x0000\x0002\u054b\x0001\u054a\x0002\u054b\x0002\u054a\x0001\u054b\x0001\u054a" + + "\x0001\u054b\x0001\u04fd\x009F\x0000\x0004\u054c\x0002\x0000\x0001\u054c\x000D\x0000\x0001\u054c" + + "\x0006\x0000\x000A\u054c\x000C\x0000\x0001\u0146\x0093\x0000\x0004\u054d\x0002\x0000\x0001\u054d" + + "\x000D\x0000\x0001\u054d\x0006\x0000\x000A\u054d\x0001\u04be\x000B\x0000\x0001\u0146\x0092\x0000" + + "\x0001\u0188\x0004\u054d\x0002\x0000\x0001\u054d\x000D\x0000\x0001\u054d\x0006\x0000\x000A\u054d" + + "\x0001\u04be\x000B\x0000\x0001\u0146\x0092\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\u054e" + + "\x0009\x00B8\x009F\x0000\x0001\u0109\x0002\x00B8\x0001\u054f\x0017\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0008\x00B8\x0001\u0400\x0001\x00B8\x009F\x0000" + + "\x0001\u0109\x000D\x00B8\x0001\u0153\x000C\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0013\x00B8\x0001\u0550\x0006\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0001\x00B8\x0001\u0551\x0008\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a" + + "\x0003\x00B8\x0001\u01ce\x0006\x00B8\x009F\x0000\x0001\u0109\x0018\x00B8\x0001\u0552\x0001\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\x00B8\x0001\u0553" + + "\x0008\x00B8\x009F\x0000\x0001\u0109\x0006\x00B8\x0001\u0554\x0013\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0005\x00B8\x0001\u0555\x0004\x00B8\x009F\x0000" + + "\x0001\u0109\x001A\x00B8\x0001\u010a\x0005\x00B8\x0001\u0556\x0004\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0001\x00B8\x0001\u0153\x0008\x00B8\x009F\x0000\x0001\u0109\x000B\x00B8" + + "\x0001\u0557\x000E\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0121\x001A\x00D4\x0001\x0074" + + "\x0009\x00D4\x0001\u0558\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0016\x00D4\x0001\u0127" + + "\x0003\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0007\x00D4\x0001\u0559\x0002\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x001A\x00D4\x0001\x0074\x0009\x00D4\x0001\x00E8\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121" + + "\x0003\x00D4\x0001\u055a\x0016\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0004\x00D4\x0001\u055b\x0005\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x000E\x00D4\x0001\u055c\x000B\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x0016\x00D4\x0001\u055d\x0003\x00D4\x0001\x0074\x000A\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0007\x00D4\x0001\u0427" + + "\x0002\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x00B0\x0000\x0001\u0494\x009F\x0000\x0004\u055e\x0002\x0000" + + "\x0001\u055e\x000D\x0000\x0001\u055e\x0006\x0000\x000A\u055e\x0001\u051d\x009F\x0000\x0004\u055f" + + "\x0002\x0000\x0001\u055f\x000D\x0000\x0001\u055f\x0006\x0000\x000A\u055f\x0001\u0560\x009F\x0000" + + "\x0004\u0561\x0002\x0000\x0001\u0561\x000D\x0000\x0001\u0561\x0006\x0000\x000A\u0561\x0001\u0562" + + "\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0561\x0002\x0000\x0001\u0561\x000D\x0000" + + "\x0001\u0561\x0006\x0000\x000A\u0563\x0001\u0562\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5" + + "\x0004\u0561\x0002\x0000\x0001\u0561\x000D\x0000\x0001\u0561\x0006\x0000\x000A\u0564\x0001\u0562" + + "\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0561\x0002\x0000\x0001\u0561\x000D\x0000" + + "\x0001\u0561\x0006\x0000\x0001\u0563\x0001\u0565\x0001\u0564\x0002\u0563\x0002\u0564\x0001\u0563" + + "\x0001\u0564\x0001\u0563\x0001\u0562\x000B\x0000\x0001\u035e\x0093\x0000\x0004\u0566\x0002\x0000" + + "\x0001\u0566\x000D\x0000\x0001\u0566\x0006\x0000\x000A\u0566\x0001\u04e3\x000B\x0000\x0001\u035e" + + "\x0092\x0000\x0001\u03c5\x0004\u0566\x0002\x0000\x0001\u0566\x000D\x0000\x0001\u0566\x0006\x0000" + + "\x000A\u0566\x0001\u04e3\x000B\x0000\x0001\u035e\x00AE\x0000\x0001\u0567\x0002\u0568\x0001\u0567" + + "\x0005\u0568\x0001\u0569\x009F\x0000\x0001\u0524\x00C4\x0000\x0001\u0524\x001B\x0000\x0002\u0525" + + "\x0001\x0000\x0002\u0525\x0002\x0000\x0001\u0525\x0001\x0000\x0001\u0525\x00A0\x0000\x0004\u056a" + + "\x0002\x0000\x0001\u056a\x000D\x0000\x0001\u056a\x0006\x0000\x000A\u056a\x0001\u04ee\x009F\x0000" + + "\x0004\u056b\x0002\x0000\x0001\u056b\x000D\x0000\x0001\u056b\x0006\x0000\x000A\u056b\x0001\u056c" + + "\x009F\x0000\x0004\u056d\x0002\x0000\x0001\u056d\x000D\x0000\x0001\u056d\x0006\x0000\x0001\u056e" + + "\x0002\u056f\x0001\u056e\x0005\u056f\x0001\u0570\x000C\x0000\x0001\u0302\x0093\x0000\x0004\u0571" + + "\x0002\x0000\x0001\u0571\x000D\x0000\x0001\u0571\x0006\x0000\x000A\u0571\x0001\u052b\x000B\x0000" + + "\x0001\u0302\x0093\x0000\x0004\u056d\x0002\x0000\x0001\u056d\x000D\x0000\x0001\u056d\x0006\x0000" + + "\x0001\u056e\x0002\u056f\x0001\u056e\x0005\u056f\x0001\u0570\x009F\x0000\x0001\u036b\x0004\u0571" + + "\x0002\x0000\x0001\u0571\x000D\x0000\x0001\u0571\x0006\x0000\x000A\u0572\x0001\u052b\x000B\x0000" + + "\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u0571\x0002\x0000\x0001\u0571\x000D\x0000\x0001\u0571" + + "\x0006\x0000\x000A\u0571\x0001\u052b\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u0571" + + "\x0002\x0000\x0001\u0571\x000D\x0000\x0001\u0571\x0006\x0000\x0002\u0572\x0001\u0571\x0002\u0572" + + "\x0002\u0571\x0001\u0572\x0001\u0571\x0001\u0572\x0001\u052b\x000B\x0000\x0001\u0302\x00B8\x0000" + + "\x0001\u04a5\x000B\x0000\x0001\u0302\x00AE\x0000\x000A\u0531\x000C\x0000\x0001\u0302\x00AE\x0000" + + "\x000A\u0573\x000C\x0000\x0001\u0302\x00AE\x0000\x0001\u0531\x0001\u0574\x0001\u0573\x0002\u0531" + + "\x0002\u0573\x0001\u0531\x0001\u0573\x0001\u0531\x000C\x0000\x0001\u0302\x0092\x0000\x0001\u036f" + + "\x000A\u0303\x0001\u044e\x000F\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0009\u0303" + + "\x0001\u0575\x0010\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u0576" + + "\x0016\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0007\u0303\x0001\u0577\x0012\u0303" + + "\x0001\u0370\x0004\u0303\x0001\u0578\x0005\u0303\x009F\x0000\x0001\u036f\x0008\u0303\x0001\u0579" + + "\x0004\u0303\x0001\u057a\x0005\u0303\x0001\u057b\x0006\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0003\u0303\x0001\u057c\x0016\u0303\x0001\u0370\x0002\u0303\x0001\u057d\x0007\u0303" + + "\x009F\x0000\x0001\u036f\x0007\u0303\x0001\u057e\x0012\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0007\u0303\x0001\u057f\x0012\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0007\u0303\x0001\u0580\x0012\u0303\x0001\u0370\x0003\u0303\x0001\u0581\x0006\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0005\u0303\x0001\u0582\x0004\u0303\x009F\x0000\x0001\u036f" + + "\x0007\u0303\x0001\u0583\x0012\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0019\u0303" + + "\x0001\u0584\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0303\x0001\u0585\x0018\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0007\u0303\x0001\u0586\x0001\u0303\x0001\u0587" + + "\x0010\u0303\x0001\u0370\x0009\u0303\x0001\u0582\x009F\x0000\x0001\u036f\x0012\u0303\x0001\u0588" + + "\x0007\u0303\x0001\u0370\x0002\u0303\x0001\u0589\x0007\u0303\x009F\x0000\x0001\u036f\x0006\u0303" + + "\x0001\u058a\x0001\u058b\x0012\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0007\u0303" + + "\x0001\u058c\x0005\u0303\x0001\u058d\x000C\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0013\u0303\x0001\u058e\x0006\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0003\u0303\x0001\u058f\x0006\u0303\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u0590" + + "\x0016\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x000F\u0303\x0001\u0591\x000A\u0303" + + "\x0001\u0370\x0001\u0592\x0009\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u0303" + + "\x0001\u0582\x0008\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u0593\x0009\u0303" + + "\x00A0\x0000\x0004\u0594\x0002\x0000\x0001\u0594\x000D\x0000\x0001\u0594\x0006\x0000\x000A\u0594" + + "\x0001\u04fd\x009E\x0000\x0001\u0188\x0004\u0594\x0002\x0000\x0001\u0594\x000D\x0000\x0001\u0594" + + "\x0006\x0000\x000A\u0594\x0001\u04fd\x009F\x0000\x0004\u0595\x0002\x0000\x0001\u0595\x000D\x0000" + + "\x0001\u0595\x0006\x0000\x000A\u0595\x000C\x0000\x0001\u0146\x00B8\x0000\x0001\u04be\x000B\x0000" + + "\x0001\u0146\x0092\x0000\x0001\u0109\x0014\x00B8\x0001\u0596\x0005\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0008\x00B8\x0001\u0597\x0001\x00B8\x009F\x0000" + + "\x0001\u0109\x0001\x00B8\x0001\u0196\x0018\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0002\x00B8\x0001\u0598\x0017\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8" + + "\x0001\u0599\x0016\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u059a" + + "\x0016\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0001\x00B8" + + "\x0001\u059b\x0008\x00B8\x009F\x0000\x0001\u0109"; + + private const string ZZ_TRANS_PACKED_1 = + "\x0003\x00B8\x0001\u059c\x0016\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\u059d" + + "\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0016\x00B8\x0001\u059e\x0003\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0121\x0007\x00D4\x0001\u059f\x0012\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\u05a0\x0019\x00D4\x0001\x0074" + + "\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0001\u0338" + + "\x0009\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000" + + "\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\u05a1\x0005\x00D4" + + "\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071" + + "\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x0001\x00D4\x0001\u05a2" + + "\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072" + + "\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4" + + "\x0001\x0074\x0002\x00D4\x0001\u012e\x0007\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000\x0004\u05a3" + + "\x0002\x0000\x0001\u05a3\x000D\x0000\x0001\u05a3\x0006\x0000\x000A\u05a3\x0001\u051d\x009F\x0000" + + "\x0004\u05a4\x0002\x0000\x0001\u05a4\x000D\x0000\x0001\u05a4\x0006\x0000\x000A\u05a4\x0001\u05a5" + + "\x009F\x0000\x0004\u05a6\x0002\x0000\x0001\u05a6\x000D\x0000\x0001\u05a6\x0006\x0000\x0001\u05a7" + + "\x0002\u05a8\x0001\u05a7\x0005\u05a8\x0001\u05a9\x000C\x0000\x0001\u035e\x0093\x0000\x0004\u05aa" + + "\x0002\x0000\x0001\u05aa\x000D\x0000\x0001\u05aa\x0006\x0000\x000A\u05aa\x0001\u0562\x000B\x0000" + + "\x0001\u035e\x0093\x0000\x0004\u05a6\x0002\x0000\x0001\u05a6\x000D\x0000\x0001\u05a6\x0006\x0000" + + "\x0001\u05a7\x0002\u05a8\x0001\u05a7\x0005\u05a8\x0001\u05a9\x009F\x0000\x0001\u03c5\x0004\u05aa" + + "\x0002\x0000\x0001\u05aa\x000D\x0000\x0001\u05aa\x0006\x0000\x000A\u05ab\x0001\u0562\x000B\x0000" + + "\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u05aa\x0002\x0000\x0001\u05aa\x000D\x0000\x0001\u05aa" + + "\x0006\x0000\x000A\u05aa\x0001\u0562\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u05aa" + + "\x0002\x0000\x0001\u05aa\x000D\x0000\x0001\u05aa\x0006\x0000\x0002\u05ab\x0001\u05aa\x0002\u05ab" + + "\x0002\u05aa\x0001\u05ab\x0001\u05aa\x0001\u05ab\x0001\u0562\x000B\x0000\x0001\u035e\x00B8\x0000" + + "\x0001\u04e3\x000B\x0000\x0001\u035e\x00AE\x0000\x000A\u0568\x000C\x0000\x0001\u035e\x00AE\x0000" + + "\x000A\u05ac\x000C\x0000\x0001\u035e\x00AE\x0000\x0001\u0568\x0001\u05ad\x0001\u05ac\x0002\u0568" + + "\x0002\u05ac\x0001\u0568\x0001\u05ac\x0001\u0568\x000C\x0000\x0001\u035e\x00B8\x0000\x0001\u04ee" + + "\x009F\x0000\x0004\u05ae\x0002\x0000\x0001\u05ae\x000D\x0000\x0001\u05ae\x0006\x0000\x000A\u05ae" + + "\x0001\u056c\x009F\x0000\x0004\u05af\x0002\x0000\x0001\u05af\x000D\x0000\x0001\u05af\x0006\x0000" + + "\x000A\u05af\x0001\u05b0\x009F\x0000\x0004\u05b1\x0002\x0000\x0001\u05b1\x000D\x0000\x0001\u05b1" + + "\x0006\x0000\x000A\u05b1\x0001\u05b2\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u05b1" + + "\x0002\x0000\x0001\u05b1\x000D\x0000\x0001\u05b1\x0006\x0000\x000A\u05b3\x0001\u05b2\x000B\x0000" + + "\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u05b1\x0002\x0000\x0001\u05b1\x000D\x0000\x0001\u05b1" + + "\x0006\x0000\x000A\u05b4\x0001\u05b2\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u05b1" + + "\x0002\x0000\x0001\u05b1\x000D\x0000\x0001\u05b1\x0006\x0000\x0001\u05b3\x0001\u05b5\x0001\u05b4" + + "\x0002\u05b3\x0002\u05b4\x0001\u05b3\x0001\u05b4\x0001\u05b3\x0001\u05b2\x000B\x0000\x0001\u0302" + + "\x0093\x0000\x0004\u05b6\x0002\x0000\x0001\u05b6\x000D\x0000\x0001\u05b6\x0006\x0000\x000A\u05b6" + + "\x0001\u052b\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u05b6\x0002\x0000\x0001\u05b6" + + "\x000D\x0000\x0001\u05b6\x0006\x0000\x000A\u05b6\x0001\u052b\x000B\x0000\x0001\u0302\x00C4\x0000" + + "\x0001\u0302\x00AE\x0000\x0002\u0573\x0001\x0000\x0002\u0573\x0002\x0000\x0001\u0573\x0001\x0000" + + "\x0001\u0573\x000C\x0000\x0001\u0302\x0092\x0000\x0001\u036f\x0001\u0303\x0001\u05b7\x0018\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05b8\x0005\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05b9\x0005\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0001\u0303\x0001\u05ba\x0018\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x000C\u0303\x0001\u05bb\x000D\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0001\u0303\x0001\u05bc\x0018\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0303" + + "\x0001\u05bd\x0018\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0303\x0001\u05be" + + "\x0018\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0011\u0303\x0001\u05bf\x0008\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05c0\x0005\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05c1\x0005\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05c2\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0001\u04b0\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303" + + "\x0001\u05be\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05c3" + + "\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0303\x0001\u05c4\x0018\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0019\u0303\x0001\u05c5\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05c6\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0001\u0303\x0001\u05c7\x0018\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0001\u05c8\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0011\u0303\x0001\u05c9" + + "\x0008\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0004\u0303\x0001\u05ca\x0015\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05cb\x0005\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05cc\x0005\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0004\u0303\x0001\u05cd\x0015\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0011\u0303\x0001\u05ce\x0008\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0014\u0303\x0001\u05cf\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0001\u05d0\x0009\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0007\u0303" + + "\x0001\u05d1\x0002\u0303\x009F\x0000\x0001\u036f\x0001\u05d2\x0019\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0001\u05d3\x0019\u0303\x0001\u0370\x000A\u0303\x00C5\x0000\x0001\u04fd" + + "\x009F\x0000\x0004\u037d\x0002\x0000\x0001\u037d\x000D\x0000\x0001\u037d\x0006\x0000\x000A\u037d" + + "\x000C\x0000\x0001\u0146\x0092\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0009\x00B8\x0001\u05d4" + + "\x009F\x0000\x0001\u0109\x0016\x00B8\x0001\u018f\x0003\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000" + + "\x0001\u0109\x001A\x00B8\x0001\u010a\x0007\x00B8\x0001\u05d5\x0002\x00B8\x009F\x0000\x0001\u0109" + + "\x001A\x00B8\x0001\u010a\x0009\x00B8\x0001\u0153\x009F\x0000\x0001\u0109\x0003\x00B8\x0001\u05d6" + + "\x0016\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0004\x00B8" + + "\x0001\u05d7\x0005\x00B8\x009F\x0000\x0001\u0109\x000E\x00B8\x0001\u05d8\x000B\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0016\x00B8\x0001\u05d9\x0003\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0007\x00B8\x0001\u04cb\x0002\x00B8\x009F\x0000" + + "\x0001\u0121\x001A\x00D4\x0001\x0074\x0009\x00D4\x0001\u05da\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008A\x0000" + + "\x0001\u0121\x0004\x00D4\x0001\u0127\x0015\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x008A\x0000\x0001\u0121\x0014\x00D4\x0001\x00E8\x0005\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x008A\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0006\x00D4\x0001\x00E8\x0003\x00D4" + + "\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071" + + "\x0004\x0000\x0002\x0071\x00B0\x0000\x0001\u051d\x009F\x0000\x0004\u05db\x0002\x0000\x0001\u05db" + + "\x000D\x0000\x0001\u05db\x0006\x0000\x000A\u05db\x0001\u05a5\x009F\x0000\x0004\u05dc\x0002\x0000" + + "\x0001\u05dc\x000D\x0000\x0001\u05dc\x0006\x0000\x000A\u05dc\x0001\u05dd\x009F\x0000\x0004\u05de" + + "\x0002\x0000\x0001\u05de\x000D\x0000\x0001\u05de\x0006\x0000\x000A\u05de\x0001\u05df\x000B\x0000" + + "\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u05de\x0002\x0000\x0001\u05de\x000D\x0000\x0001\u05de" + + "\x0006\x0000\x000A\u05e0\x0001\u05df\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u05de" + + "\x0002\x0000\x0001\u05de\x000D\x0000\x0001\u05de\x0006\x0000\x000A\u05e1\x0001\u05df\x000B\x0000" + + "\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u05de\x0002\x0000\x0001\u05de\x000D\x0000\x0001\u05de" + + "\x0006\x0000\x0001\u05e0\x0001\u05e2\x0001\u05e1\x0002\u05e0\x0002\u05e1\x0001\u05e0\x0001\u05e1" + + "\x0001\u05e0\x0001\u05df\x000B\x0000\x0001\u035e\x0093\x0000\x0004\u05e3\x0002\x0000\x0001\u05e3" + + "\x000D\x0000\x0001\u05e3\x0006\x0000\x000A\u05e3\x0001\u0562\x000B\x0000\x0001\u035e\x0092\x0000" + + "\x0001\u03c5\x0004\u05e3\x0002\x0000\x0001\u05e3\x000D\x0000\x0001\u05e3\x0006\x0000\x000A\u05e3" + + "\x0001\u0562\x000B\x0000\x0001\u035e\x00C4\x0000\x0001\u035e\x00AE\x0000\x0002\u05ac\x0001\x0000" + + "\x0002\u05ac\x0002\x0000\x0001\u05ac\x0001\x0000\x0001\u05ac\x000C\x0000\x0001\u035e\x0093\x0000" + + "\x0004\u05e4\x0002\x0000\x0001\u05e4\x000D\x0000\x0001\u05e4\x0006\x0000\x000A\u05e4\x0001\u056c" + + "\x009F\x0000\x0004\u05e5\x0002\x0000\x0001\u05e5\x000D\x0000\x0001\u05e5\x0006\x0000\x000A\u05e5" + + "\x0001\u05e6\x009F\x0000\x0004\u05e7\x0002\x0000\x0001\u05e7\x000D\x0000\x0001\u05e7\x0006\x0000" + + "\x0001\u05e8\x0002\u05e9\x0001\u05e8\x0005\u05e9\x0001\u05ea\x000C\x0000\x0001\u0302\x0093\x0000" + + "\x0004\u05eb\x0002\x0000\x0001\u05eb\x000D\x0000\x0001\u05eb\x0006\x0000\x000A\u05eb\x0001\u05b2" + + "\x000B\x0000\x0001\u0302\x0093\x0000\x0004\u05e7\x0002\x0000\x0001\u05e7\x000D\x0000\x0001\u05e7" + + "\x0006\x0000\x0001\u05e8\x0002\u05e9\x0001\u05e8\x0005\u05e9\x0001\u05ea\x009F\x0000\x0001\u036b" + + "\x0004\u05eb\x0002\x0000\x0001\u05eb\x000D\x0000\x0001\u05eb\x0006\x0000\x000A\u05ec\x0001\u05b2" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u05eb\x0002\x0000\x0001\u05eb\x000D\x0000" + + "\x0001\u05eb\x0006\x0000\x000A\u05eb\x0001\u05b2\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u05eb\x0002\x0000\x0001\u05eb\x000D\x0000\x0001\u05eb\x0006\x0000\x0002\u05ec\x0001\u05eb" + + "\x0002\u05ec\x0002\u05eb\x0001\u05ec\x0001\u05eb\x0001\u05ec\x0001\u05b2\x000B\x0000\x0001\u0302" + + "\x00B8\x0000\x0001\u052b\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036f\x0015\u0303\x0001\u05ed" + + "\x0004\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u05ee\x0019\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x000D\u0303\x0001\u05ef\x000C\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0011\u0303\x0001\u05f0\x0008\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x000E\u0303\x0001\u05f1\x0004\u0303\x0001\u05f2\x0006\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0004\u0303\x0001\u05f3\x0015\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0009\u0303\x0001\u05f4\x009F\x0000\x0001\u036f\x0004\u0303" + + "\x0001\u05f5\x0015\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0009\u0303\x0001\u05f6\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u05f7\x0005\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u05f8\x0001\u05f9\x0001\u0303\x0001\u05fa\x0010\u0303" + + "\x0001\u05fb\x0005\u0303\x0001\u0370\x0005\u0303\x0001\u05fc\x0004\u0303\x009F\x0000\x0001\u036f" + + "\x000E\u0303\x0001\u05fd\x000B\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0009\u0303" + + "\x0001\u05fe\x000B\u0303\x0001\u05ff\x0004\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x001A\u0303\x0001\u0370\x0009\u0303\x0001\u0600\x009F\x0000\x0001\u036f\x0013\u0303\x0001\u0601" + + "\x0006\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0019\u0303\x0001\u0602\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0016\u0303\x0001\u0603\x0003\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0009\u0303\x0001\u0604\x0010\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0003\u0303\x0001\u0605\x0006\u0303\x009F\x0000\x0001\u036f" + + "\x0005\u0303\x0001\u0606\x0014\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0008\u0303" + + "\x0001\u0607\x0011\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u0608" + + "\x0016\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0011\u0303\x0001\u0609\x0006\u0303" + + "\x0001\u060a\x0001\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x000A\u0303\x0001\u060b" + + "\x000F\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u0303" + + "\x0001\u060c\x0008\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u060d\x0005\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u060e\x0005\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0004\u0303\x0001\u060f\x0005\u0303\x009F\x0000" + + "\x0001\u036f\x0005\u0303\x0001\u0610\x0013\u0303\x0001\u0611\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u0109\x0007\x00B8\x0001\u0612\x0012\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109" + + "\x0001\u0613\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a" + + "\x0001\u0400\x0009\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u0614\x0005\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u0615\x0018\x00B8\x0001\u010a\x000A\x00B8" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0002\x00B8\x0001\u0196\x0007\x00B8\x009F\x0000" + + "\x0001\u0121\x0001\u0616\x0019\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000" + + "\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000" + + "\x0004\u0617\x0002\x0000\x0001\u0617\x000D\x0000\x0001\u0617\x0006\x0000\x000A\u0617\x0001\u05a5" + + "\x009F\x0000\x0004\u0618\x0002\x0000\x0001\u0618\x000D\x0000\x0001\u0618\x0006\x0000\x000A\u0618" + + "\x0001\u0619\x009F\x0000\x0004\u061a\x0002\x0000\x0001\u061a\x000D\x0000\x0001\u061a\x0006\x0000" + + "\x0001\u061b\x0002\u061c\x0001\u061b\x0005\u061c\x0001\u061d\x000C\x0000\x0001\u035e\x0093\x0000" + + "\x0004\u061e\x0002\x0000\x0001\u061e\x000D\x0000\x0001\u061e\x0006\x0000\x000A\u061e\x0001\u05df" + + "\x000B\x0000\x0001\u035e\x0093\x0000\x0004\u061a\x0002\x0000\x0001\u061a\x000D\x0000\x0001\u061a" + + "\x0006\x0000\x0001\u061b\x0002\u061c\x0001\u061b\x0005\u061c\x0001\u061d\x009F\x0000\x0001\u03c5" + + "\x0004\u061e\x0002\x0000\x0001\u061e\x000D\x0000\x0001\u061e\x0006\x0000\x000A\u061f\x0001\u05df" + + "\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u061e\x0002\x0000\x0001\u061e\x000D\x0000" + + "\x0001\u061e\x0006\x0000\x000A\u061e\x0001\u05df\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5" + + "\x0004\u061e\x0002\x0000\x0001\u061e\x000D\x0000\x0001\u061e\x0006\x0000\x0002\u061f\x0001\u061e" + + "\x0002\u061f\x0002\u061e\x0001\u061f\x0001\u061e\x0001\u061f\x0001\u05df\x000B\x0000\x0001\u035e" + + "\x00B8\x0000\x0001\u0562\x000B\x0000\x0001\u035e\x00B8\x0000\x0001\u056c\x009F\x0000\x0004\u0620" + + "\x0002\x0000\x0001\u0620\x000D\x0000\x0001\u0620\x0006\x0000\x000A\u0620\x0001\u05e6\x009F\x0000" + + "\x0004\u0621\x0002\x0000\x0001\u0621\x000D\x0000\x0001\u0621\x0006\x0000\x0001\u0622\x0002\u0623" + + "\x0001\u0622\x0005\u0623\x0001\u0624\x0001\u0625\x009F\x0000\x0004\u0626\x0002\x0000\x0001\u0626" + + "\x000D\x0000\x0001\u0626\x0006\x0000\x000A\u0626\x0001\u0627\x000B\x0000\x0001\u0302\x0092\x0000" + + "\x0001\u036b\x0004\u0626\x0002\x0000\x0001\u0626\x000D\x0000\x0001\u0626\x0006\x0000\x000A\u0628" + + "\x0001\u0627\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u0626\x0002\x0000\x0001\u0626" + + "\x000D\x0000\x0001\u0626\x0006\x0000\x000A\u0629\x0001\u0627\x000B\x0000\x0001\u0302\x0092\x0000" + + "\x0001\u036b\x0004\u0626\x0002\x0000\x0001\u0626\x000D\x0000\x0001\u0626\x0006\x0000\x0001\u0628" + + "\x0001\u062a\x0001\u0629\x0002\u0628\x0002\u0629\x0001\u0628\x0001\u0629\x0001\u0628\x0001\u0627" + + "\x000B\x0000\x0001\u0302\x0093\x0000\x0004\u062b\x0002\x0000\x0001\u062b\x000D\x0000\x0001\u062b" + + "\x0006\x0000\x000A\u062b\x0001\u05b2\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u062b" + + "\x0002\x0000\x0001\u062b\x000D\x0000\x0001\u062b\x0006\x0000\x000A\u062b\x0001\u05b2\x000B\x0000" + + "\x0001\u0302\x0092\x0000\x0001\u036f\x0001\u0303\x0001\u062c\x0018\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u062d\x0009\u0303\x009F\x0000\x0001\u036f" + + "\x0006\u0303\x0001\u062e\x0013\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0007\u0303\x0001\u062f\x0002\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0008\u0303\x0001\u04b5\x0001\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0005\u0303" + + "\x0001\u04b5\x0004\u0303\x009F\x0000\x0001\u036f\x0016\u0303\x0001\u0630\x0003\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0303\x0001\u0631\x0018\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0016\u0303\x0001\u0632\x0003\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u0303\x0001\u0633\x0008\u0303\x009F\x0000\x0001\u036f" + + "\x0001\u0634\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0635\x0017\u0303" + + "\x0001\u0636\x0001\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0001\u0637\x0009\u0303\x009F\x0000\x0001\u036f\x0004\u0303\x0001\u0638\x0015\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0015\u0303\x0001\u0639\x0004\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0001\u063a\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x001A\u0303\x0001\u0370\x0001\u063b\x0009\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0002\u0303\x0001\u03e5\x0007\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0003\u0303" + + "\x0001\u063c\x0006\u0303\x009F\x0000\x0001\u036f\x0001\u063d\x0001\u0303\x0001\u063e\x0017\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u062f\x0019\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0002\u0303\x0001\u063f\x0007\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0002\u0303\x0001\u0640\x0007\u0303\x009F\x0000\x0001\u036f" + + "\x000D\u0303\x0001\u0641\x000C\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0005\u0303\x0001\u0642\x0004\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0007\u0303\x0001\u0643\x0002\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0009\u0303" + + "\x0001\u0644\x009F\x0000\x0001\u036f\x0001\u0303\x0001\u0645\x0018\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0003\u0303\x0001\u0646\x0006\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u0303\x0001\u0647\x0008\u0303\x009F\x0000\x0001\u036f" + + "\x001A\u0303\x0001\u0370\x0001\u0303\x0001\u0648\x0008\u0303\x009F\x0000\x0001\u036f\x0014\u0303" + + "\x0001\u0649\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0006\u0303\x0001\u064a\x0003\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0003\u0303" + + "\x0001\u064b\x0006\u0303\x009F\x0000\x0001\u036f\x0001\u063c\x0019\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0009\u0303\x0001\u064c\x009F\x0000\x0001\u036f" + + "\x0015\u0303\x0001\u064d\x0004\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u0109\x001A\x00B8" + + "\x0001\u010a\x0009\x00B8\x0001\u064e\x009F\x0000\x0001\u0109\x0004\x00B8\x0001\u018f\x0015\x00B8" + + "\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0109\x0014\x00B8\x0001\u0153\x0005\x00B8\x0001\u010a" + + "\x000A\x00B8\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0006\x00B8\x0001\u0153\x0003\x00B8" + + "\x009F\x0000\x0001\u0121\x001A\x00D4\x0001\x0074\x0005\x00D4\x0001\u064f\x0004\x00D4\x0001\x0000" + + "\x0003\x0071\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000" + + "\x0002\x0071\x00B0\x0000\x0001\u05a5\x009F\x0000\x0004\u0650\x0002\x0000\x0001\u0650\x000D\x0000" + + "\x0001\u0650\x0006\x0000\x000A\u0650\x0001\u0619\x009F\x0000\x0004\u0651\x0002\x0000\x0001\u0651" + + "\x000D\x0000\x0001\u0651\x0006\x0000\x0001\u0652\x0002\u0653\x0001\u0652\x0005\u0653\x0001\u0654" + + "\x0001\u0655\x009F\x0000\x0004\u0656\x0002\x0000\x0001\u0656\x000D\x0000\x0001\u0656\x0006\x0000" + + "\x000A\u0656\x0001\u0657\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0656\x0002\x0000" + + "\x0001\u0656\x000D\x0000\x0001\u0656\x0006\x0000\x000A\u0658\x0001\u0657\x000B\x0000\x0001\u035e" + + "\x0092\x0000\x0001\u03c5\x0004\u0656\x0002\x0000\x0001\u0656\x000D\x0000\x0001\u0656\x0006\x0000" + + "\x000A\u0659\x0001\u0657\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0656\x0002\x0000" + + "\x0001\u0656\x000D\x0000\x0001\u0656\x0006\x0000\x0001\u0658\x0001\u065a\x0001\u0659\x0002\u0658" + + "\x0002\u0659\x0001\u0658\x0001\u0659\x0001\u0658\x0001\u0657\x000B\x0000\x0001\u035e\x0093\x0000" + + "\x0004\u065b\x0002\x0000\x0001\u065b\x000D\x0000\x0001\u065b\x0006\x0000\x000A\u065b\x0001\u05df" + + "\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u065b\x0002\x0000\x0001\u065b\x000D\x0000" + + "\x0001\u065b\x0006\x0000\x000A\u065b\x0001\u05df\x000B\x0000\x0001\u035e\x0093\x0000\x0004\u065c" + + "\x0002\x0000\x0001\u065c\x000D\x0000\x0001\u065c\x0006\x0000\x000A\u065c\x0001\u05e6\x009F\x0000" + + "\x0004\u065d\x0002\x0000\x0001\u065d\x000D\x0000\x0001\u065d\x0006\x0000\x000A\u065d\x0001\u065e" + + "\x009E\x0000\x0001\u036b\x0004\u065d\x0002\x0000\x0001\u065d\x000D\x0000\x0001\u065d\x0006\x0000" + + "\x000A\u065f\x0001\u065e\x009E\x0000\x0001\u036b\x0004\u065d\x0002\x0000\x0001\u065d\x000D\x0000" + + "\x0001\u065d\x0006\x0000\x000A\u0660\x0001\u065e\x009E\x0000\x0001\u036b\x0004\u065d\x0002\x0000" + + "\x0001\u065d\x000D\x0000\x0001\u065d\x0006\x0000\x0001\u065f\x0001\u0661\x0001\u0660\x0002\u065f" + + "\x0002\u0660\x0001\u065f\x0001\u0660\x0001\u065f\x0001\u065e\x009F\x0000\x0004\u0662\x0002\x0000" + + "\x0001\u0662\x000D\x0000\x0001\u0662\x0006\x0000\x000A\u0662\x000C\x0000\x0001\u0302\x0093\x0000" + + "\x0004\u0663\x0002\x0000\x0001\u0663\x000D\x0000\x0001\u0663\x0006\x0000\x000A\u0663\x0001\u0627" + + "\x000B\x0000\x0001\u0302\x0093\x0000\x0004\u0662\x0002\x0000\x0001\u0662\x000D\x0000\x0001\u0662" + + "\x0006\x0000\x000A\u0662\x009F\x0000\x0001\u036b\x0004\u0663\x0002\x0000\x0001\u0663\x000D\x0000" + + "\x0001\u0663\x0006\x0000\x000A\u0664\x0001\u0627\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b" + + "\x0004\u0663\x0002\x0000\x0001\u0663\x000D\x0000\x0001\u0663\x0006\x0000\x000A\u0663\x0001\u0627" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u0663\x0002\x0000\x0001\u0663\x000D\x0000" + + "\x0001\u0663\x0006\x0000\x0002\u0664\x0001\u0663\x0002\u0664\x0002\u0663\x0001\u0664\x0001\u0663" + + "\x0001\u0664\x0001\u0627\x000B\x0000\x0001\u0302\x00B8\x0000\x0001\u05b2\x000B\x0000\x0001\u0302" + + "\x0092\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u0665\x0009\u0303\x009F\x0000\x0001\u036f" + + "\x0001\u0666\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0008\u0303\x0001\u0667\x0001\u0303\x009F\x0000\x0001\u036f\x0015\u0303\x0001\u044e\x0004\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0005\u0303\x0001\u0668" + + "\x0004\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0005\u0303\x0001\u0669\x0004\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0005\u0303\x0001\u063c\x0004\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0003\u0303\x0001\u0666\x0006\u0303\x009F\x0000\x0001\u036f" + + "\x000F\u0303\x0001\u066a\x000A\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x000A\u0303" + + "\x0001\u066b\x000F\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0015\u0303\x0001\u066c" + + "\x0004\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u066d\x0019\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x000D\u0303\x0001\u066e\x000C\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0003\u0303\x0001\u066f\x0006\u0303\x009F\x0000" + + "\x0001\u036f\x0011\u0303\x0001\u0670\x0008\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0002\u0303\x0001\u062f\x0017\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0303" + + "\x0001\u044e\x0018\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0009\u0303\x0001\u0671" + + "\x0010\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0009\u0303\x0001\u0672\x0010\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0673\x0019\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0001\u0674\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0002\u0303\x0001\u0675\x0017\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0004\u0303\x0001\u0455\x0005\u0303\x009F\x0000\x0001\u036f\x0008\u0303\x0001\u0676" + + "\x0011\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0677\x0019\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0015\u0303\x0001\u0678\x0004\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0004\u0303\x0001\u0666\x0005\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0006\u0303\x0001\u0666\x0003\u0303\x009F\x0000\x0001\u036f" + + "\x001A\u0303\x0001\u0370\x0002\u0303\x0001\u0666\x0007\u0303\x009F\x0000\x0001\u036f\x000E\u0303" + + "\x0001\u0679\x000B\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0001\u067a\x0009\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0003\u0303\x0001\u067b" + + "\x0006\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0003\u0303\x0001\u03e5\x0006\u0303" + + "\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u067c\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u0109\x0001\u067d\x0019\x00B8\x0001\u010a\x000A\x00B8\x009F\x0000\x0001\u0121\x0007\x00D4" + + "\x0001\u067e\x0012\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071\x0001\x0000\x0002\x0071" + + "\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071\x008B\x0000\x0004\u067f" + + "\x0002\x0000\x0001\u067f\x000D\x0000\x0001\u067f\x0006\x0000\x000A\u067f\x0001\u0619\x009F\x0000" + + "\x0004\u0680\x0002\x0000\x0001\u0680\x000D\x0000\x0001\u0680\x0006\x0000\x000A\u0680\x0001\u0681" + + "\x009E\x0000\x0001\u03c5\x0004\u0680\x0002\x0000\x0001\u0680\x000D\x0000\x0001\u0680\x0006\x0000" + + "\x000A\u0682\x0001\u0681\x009E\x0000\x0001\u03c5\x0004\u0680\x0002\x0000\x0001\u0680\x000D\x0000" + + "\x0001\u0680\x0006\x0000\x000A\u0683\x0001\u0681\x009E\x0000\x0001\u03c5\x0004\u0680\x0002\x0000" + + "\x0001\u0680\x000D\x0000\x0001\u0680\x0006\x0000\x0001\u0682\x0001\u0684\x0001\u0683\x0002\u0682" + + "\x0002\u0683\x0001\u0682\x0001\u0683\x0001\u0682\x0001\u0681\x009F\x0000\x0004\u0685\x0002\x0000" + + "\x0001\u0685\x000D\x0000\x0001\u0685\x0006\x0000\x000A\u0685\x000C\x0000\x0001\u035e\x0093\x0000" + + "\x0004\u0686\x0002\x0000\x0001\u0686\x000D\x0000\x0001\u0686\x0006\x0000\x000A\u0686\x0001\u0657" + + "\x000B\x0000\x0001\u035e\x0093\x0000\x0004\u0685\x0002\x0000\x0001\u0685\x000D\x0000\x0001\u0685" + + "\x0006\x0000\x000A\u0685\x009F\x0000\x0001\u03c5\x0004\u0686\x0002\x0000\x0001\u0686\x000D\x0000" + + "\x0001\u0686\x0006\x0000\x000A\u0687\x0001\u0657\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5" + + "\x0004\u0686\x0002\x0000\x0001\u0686\x000D\x0000\x0001\u0686\x0006\x0000\x000A\u0686\x0001\u0657" + + "\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u0686\x0002\x0000\x0001\u0686\x000D\x0000" + + "\x0001\u0686\x0006\x0000\x0002\u0687\x0001\u0686\x0002\u0687\x0002\u0686\x0001\u0687\x0001\u0686" + + "\x0001\u0687\x0001\u0657\x000B\x0000\x0001\u035e\x00B8\x0000\x0001\u05df\x000B\x0000\x0001\u035e" + + "\x00B8\x0000\x0001\u05e6\x009F\x0000\x0004\u0688\x0002\x0000\x0001\u0688\x000D\x0000\x0001\u0688" + + "\x0006\x0000\x000A\u0688\x0001\u065e\x009F\x0000\x0004\u0662\x0002\x0000\x0001\u0662\x000D\x0000" + + "\x0001\u0662\x0006\x0000\x000A\u0662\x0001\u0573\x009E\x0000\x0001\u036b\x0004\u0688\x0002\x0000" + + "\x0001\u0688\x000D\x0000\x0001\u0688\x0006\x0000\x000A\u0689\x0001\u065e\x009E\x0000\x0001\u036b" + + "\x0004\u0688\x0002\x0000\x0001\u0688\x000D\x0000\x0001\u0688\x0006\x0000\x000A\u0688\x0001\u065e" + + "\x009E\x0000\x0001\u036b\x0004\u0688\x0002\x0000\x0001\u0688\x000D\x0000\x0001\u0688\x0006\x0000" + + "\x0002\u0689\x0001\u0688\x0002\u0689\x0002\u0688\x0001\u0689\x0001\u0688\x0001\u0689\x0001\u065e" + + "\x009F\x0000\x0004\u068a\x0002\x0000\x0001\u068a\x000D\x0000\x0001\u068a\x0006\x0000\x000A\u068a" + + "\x000C\x0000\x0001\u0302\x0093\x0000\x0004\u068b\x0002\x0000\x0001\u068b\x000D\x0000\x0001\u068b" + + "\x0006\x0000\x000A\u068b\x0001\u0627\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036b\x0004\u068b" + + "\x0002\x0000\x0001\u068b\x000D\x0000\x0001\u068b\x0006\x0000\x000A\u068b\x0001\u0627\x000B\x0000" + + "\x0001\u0302\x0092\x0000\x0001\u036f\x0003\u0303\x0001\u068c\x0016\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0002\u0303\x0001\u044e\x0017\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0006\u0303\x0001\u0459\x0013\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0001\u0303\x0001\u0646\x0018\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0003\u0303" + + "\x0001\u068d\x0016\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0003\u0303\x0001\u068e\x0006\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0006\u0303" + + "\x0001\u068f\x0003\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0006\u0303\x0001\u0690" + + "\x0003\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0005\u0303\x0001\u0691\x0004\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0007\u0303\x0001\u0692\x0002\u0303\x009F\x0000" + + "\x0001\u036f\x0001\u0693\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303" + + "\x0001\u0694\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0004\u0303\x0001\u0695\x0005\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0004\u0303" + + "\x0001\u0696\x0005\u0303\x009F\x0000\x0001\u036f\x0016\u0303\x0001\u0697\x0003\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0018\u0303\x0001\u0698\x0001\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0009\u0303\x0001\u04af\x0010\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0002\u0303\x0001\u0699\x0007\u0303\x009F\x0000\x0001\u036f" + + "\x000A\u0303\x0001\u069a\x000F\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x000F\u0303" + + "\x0001\u0456\x000A\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0004\u0303\x0001\u069b\x0005\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0006\u0303" + + "\x0001\u04b2\x0003\u0303\x009F\x0000\x0001\u036f\x0018\u0303\x0001\u069c\x0001\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0018\u0303\x0001\u069d\x0001\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u0109\x001A\x00B8\x0001\u010a\x0005\x00B8\x0001\u069e\x0004\x00B8\x009F\x0000" + + "\x0001\u0121\x0001\x00D4\x0001\u03a5\x0018\x00D4\x0001\x0074\x000A\x00D4\x0001\x0000\x0003\x0071" + + "\x0001\x0000\x0002\x0071\x0001\x0072\x0003\x0071\x0003\x0000\x0001\x0071\x0004\x0000\x0002\x0071" + + "\x00B0\x0000\x0001\u0619\x009F\x0000\x0004\u069f\x0002\x0000\x0001\u069f\x000D\x0000\x0001\u069f" + + "\x0006\x0000\x000A\u069f\x0001\u0681\x009F\x0000\x0004\u0685\x0002\x0000\x0001\u0685\x000D\x0000" + + "\x0001\u0685\x0006\x0000\x000A\u0685\x0001\u05ac\x009E\x0000\x0001\u03c5\x0004\u069f\x0002\x0000" + + "\x0001\u069f\x000D\x0000\x0001\u069f\x0006\x0000\x000A\u06a0\x0001\u0681\x009E\x0000\x0001\u03c5" + + "\x0004\u069f\x0002\x0000\x0001\u069f\x000D\x0000\x0001\u069f\x0006\x0000\x000A\u069f\x0001\u0681" + + "\x009E\x0000\x0001\u03c5\x0004\u069f\x0002\x0000\x0001\u069f\x000D\x0000\x0001\u069f\x0006\x0000" + + "\x0002\u06a0\x0001\u069f\x0002\u06a0\x0002\u069f\x0001\u06a0\x0001\u069f\x0001\u06a0\x0001\u0681" + + "\x009F\x0000\x0004\u06a1\x0002\x0000\x0001\u06a1\x000D\x0000\x0001\u06a1\x0006\x0000\x000A\u06a1" + + "\x000C\x0000\x0001\u035e\x0093\x0000\x0004\u06a2\x0002\x0000\x0001\u06a2\x000D\x0000\x0001\u06a2" + + "\x0006\x0000\x000A\u06a2\x0001\u0657\x000B\x0000\x0001\u035e\x0092\x0000\x0001\u03c5\x0004\u06a2" + + "\x0002\x0000\x0001\u06a2\x000D\x0000\x0001\u06a2\x0006\x0000\x000A\u06a2\x0001\u0657\x000B\x0000" + + "\x0001\u035e\x0093\x0000\x0004\u06a3\x0002\x0000\x0001\u06a3\x000D\x0000\x0001\u06a3\x0006\x0000" + + "\x000A\u06a3\x0001\u065e\x009E\x0000\x0001\u036b\x0004\u06a3\x0002\x0000\x0001\u06a3\x000D\x0000" + + "\x0001\u06a3\x0006\x0000\x000A\u06a3\x0001\u065e\x009F\x0000\x0004\u06a4\x0002\x0000\x0001\u06a4" + + "\x000D\x0000\x0001\u06a4\x0006\x0000\x000A\u06a4\x000C\x0000\x0001\u0302\x00B8\x0000\x0001\u0627" + + "\x000B\x0000\x0001\u0302\x0092\x0000\x0001\u036f\x0001\u06a5\x0019\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0009\u0303\x0001\u063c\x009F\x0000\x0001\u036f" + + "\x0001\u06a6\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u06a7\x0019\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0007\u0303\x0001\u06a8\x0012\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u06a9\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0001\u06aa\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0006\u0303\x0001\u06ab\x0003\u0303\x009F\x0000\x0001\u036f\x0006\u0303\x0001\u044e" + + "\x0013\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0015\u0303\x0001\u06ac\x0004\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u06ad\x0019\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0006\u0303\x0001\u06ae\x0003\u0303\x009F\x0000" + + "\x0001\u036f\x0001\u06af\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0006\u0303\x0001\u04ae\x0003\u0303\x009F\x0000\x0001\u036f\x000A\u0303\x0001\u045f" + + "\x000F\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u06b0\x0019\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0008\u0303\x0001\u06b1\x0011\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x0019\u0303\x0001\u06b2\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u0109" + + "\x0007\x00B8\x0001\u06b3\x0012\x00B8\x0001\u010a\x000A\x00B8\x00A0\x0000\x0004\u06b4\x0002\x0000" + + "\x0001\u06b4\x000D\x0000\x0001\u06b4\x0006\x0000\x000A\u06b4\x0001\u0681\x009E\x0000\x0001\u03c5" + + "\x0004\u06b4\x0002\x0000\x0001\u06b4\x000D\x0000\x0001\u06b4\x0006\x0000\x000A\u06b4\x0001\u0681" + + "\x009F\x0000\x0004\u06b5\x0002\x0000\x0001\u06b5\x000D\x0000\x0001\u06b5\x0006\x0000\x000A\u06b5" + + "\x000C\x0000\x0001\u035e\x00B8\x0000\x0001\u0657\x000B\x0000\x0001\u035e\x00B8\x0000\x0001\u065e" + + "\x009F\x0000\x0004\u0573\x0002\x0000\x0001\u0573\x000D\x0000\x0001\u0573\x0006\x0000\x000A\u0573" + + "\x000C\x0000\x0001\u0302\x0092\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u06b6\x0009\u0303" + + "\x009F\x0000\x0001\u036f\x0002\u0303\x0001\u06b7\x0017\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0008\u0303\x0001\u062f\x0001\u0303\x009F\x0000\x0001\u036f" + + "\x000D\u0303\x0001\u03e5\x000C\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0013\u0303" + + "\x0001\u06b8\x0006\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0001\u0303\x0001\u06b9\x0008\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0003\u0303" + + "\x0001\u04b2\x0006\u0303\x009F\x0000\x0001\u036f\x0018\u0303\x0001\u06ba\x0001\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u0303\x0001\u06bb\x0008\u0303" + + "\x009F\x0000\x0001\u036f\x0006\u0303\x0001\u06bc\x0013\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0005\u0303\x0001\u06bd\x0004\u0303\x009F\x0000\x0001\u036f" + + "\x001A\u0303\x0001\u0370\x0005\u0303\x0001\u06be\x0004\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0001\u0303\x0001\u03e5\x0008\u0303\x009F\x0000\x0001\u036f\x000B\u0303\x0001\u06bf" + + "\x000E\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u0109\x0001\x00B8\x0001\u046d\x0018\x00B8" + + "\x0001\u010a\x000A\x00B8\x00C5\x0000\x0001\u0681\x009F\x0000\x0004\u05ac\x0002\x0000\x0001\u05ac" + + "\x000D\x0000\x0001\u05ac\x0006\x0000\x000A\u05ac\x000C\x0000\x0001\u035e\x0092\x0000\x0001\u036f" + + "\x0014\u0303\x0001\u06c0\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0008\u0303\x0001\u06c1\x0001\u0303\x009F\x0000\x0001\u036f\x0001\u0303\x0001\u0455" + + "\x0018\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0002\u0303\x0001\u06c2\x0017\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u06c3\x0016\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x0003\u0303\x0001\u06c4\x0016\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0001\u0303\x0001\u06c5\x0008\u0303\x009F\x0000" + + "\x0001\u036f\x0003\u0303\x0001\u06c6\x0016\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f" + + "\x0001\u06c7\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0016\u0303\x0001\u06c8" + + "\x0003\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0009\u0303" + + "\x0001\u06c9\x009F\x0000\x0001\u036f\x0016\u0303\x0001\u044e\x0003\u0303\x0001\u0370\x000A\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0007\u0303\x0001\u06ca\x0002\u0303\x009F\x0000" + + "\x0001\u036f\x001A\u0303\x0001\u0370\x0009\u0303\x0001\u03e5\x009F\x0000\x0001\u036f\x0003\u0303" + + "\x0001\u06cb\x0016\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0004\u0303\x0001\u06cc\x0005\u0303\x009F\x0000\x0001\u036f\x000E\u0303\x0001\u06cd\x000B\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0016\u0303\x0001\u06ce\x0003\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0007\u0303\x0001\u0694\x0002\u0303" + + "\x009F\x0000\x0001\u036f\x0007\u0303\x0001\u06cf\x0012\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0001\u06d0\x0019\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303" + + "\x0001\u0370\x0001\u062f\x0009\u0303\x009F\x0000\x0001\u036f\x0014\u0303\x0001\u06d1\x0005\u0303" + + "\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0001\u0303\x0001\u06d2\x0018\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0002\u0303\x0001\u0455\x0007\u0303" + + "\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0009\u0303\x0001\u06d3\x009F\x0000\x0001\u036f" + + "\x0004\u0303\x0001\u044e\x0015\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x0014\u0303" + + "\x0001\u03e5\x0005\u0303\x0001\u0370\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370" + + "\x0006\u0303\x0001\u03e5\x0003\u0303\x009F\x0000\x0001\u036f\x0001\u06d4\x0019\u0303\x0001\u0370" + + "\x000A\u0303\x009F\x0000\x0001\u036f\x001A\u0303\x0001\u0370\x0005\u0303\x0001\u06d5\x0004\u0303" + + "\x009F\x0000\x0001\u036f\x0007\u0303\x0001\u06d6\x0012\u0303\x0001\u0370\x000A\u0303\x009F\x0000" + + "\x0001\u036f\x0001\u0303\x0001\u0666\x0018\u0303\x0001\u0370\x000A\u0303\x0016\x0000"; + + private static int[] ZzUnpackTrans() + { + int[] result = new int[341204]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_1, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private static readonly int ZZ_UNKNOWN_ERROR = 0; + private static readonly int ZZ_NO_MATCH = 1; + private static readonly int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0001\x0000\x0001\x0009\x0028\x0001\x0010\x0000\x0001\x0001\x0001\x0000\x0001\x0001\x000A\x0000" + + "\x0001\x0001\x0011\x0000\x0001\x0001\x001A\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0001\x0000" + + "\x0001\x0001\x0001\x0000\x0004\x0001\x0037\x0000\x001A\x0001\x0003\x0000\x0005\x0001\x001A\x0000" + + "\x0004\x0001\x0011\x0000\x0001\x0009\x0001\x0000\x0014\x0001\x0002\x0000\x0001\x0001\x0001\x0000" + + "\x0008\x0001\x0003\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0002\x0001\x0001\x0000" + + "\x0002\x0001\x0008\x0000\x0001\x0001\x001A\x0000\x0001\x0001\x0001\x0000\x0009\x0001\x0001\x0000" + + "\x0001\x0001\x0002\x0000\x0002\x0001\x0001\x0000\x0001\x0001\x0008\x0000\x0003\x0001\x000D\x0000" + + "\x0009\x0001\x0003\x0000\x0002\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0004\x0001\x0001\x0000" + + "\x0002\x0001\x0001\x0000\x0002\x0001\x0001\x0000\x0003\x0001\x0003\x0000\x0001\x0001\x0004\x0000" + + "\x0002\x0001\x0010\x0000\x0001\x0001\x0008\x0000\x0001\x0001\x0003\x0000\x0001\x0001\x0020\x0000" + + "\x0003\x0001\x0013\x0000\x0001\x0001\x0020\x0000\x0001\x0001\x0004\x0000\x0001\x0001\x0006\x0000" + + "\x0001\x0001\x0002\x0000\x0001\x0001\x0004\x0000\x0002\x0001\x0023\x0000\x0001\x0001\x002F\x0000" + + "\x0002\x0001\x0008\x0000\x0001\x0001\x002B\x0000\x0001\x0001\x003A\x0000\x0001\x0001\x0068\x0000" + + "\x0001\x0009\x0001\x0000\x0001\x0001\x007F\x0000\x0001\x0001\x005A\x0000\x0006\x0001\x0003\x0000" + + "\x0002\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0003\x0001\x004A\x0000\x0001\x0001\x0008\x0000" + + "\x0001\x0001\x0034\x0000\x0001\x0001\u01eb\x0000"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[1750]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private TextReader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the YyText() string */ + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the YyText() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private bool zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private bool zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private bool zzEOFDone; + + /* user code: */ + /** Alphanumeric sequences */ + public static readonly int WORD_TYPE = UAX29URLEmailTokenizer.ALPHANUM; + + /** Numbers */ + public static readonly int NUMERIC_TYPE = UAX29URLEmailTokenizer.NUM; + + /** + * Chars in class \p{Line_Break = Complex_Context} are from South East Asian + * scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept + * together as as a single token rather than broken up, because the logic + * required to break them at word boundaries is too complex for UAX#29. + *

+ * See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA + */ + public static readonly int SOUTH_EAST_ASIAN_TYPE = UAX29URLEmailTokenizer.SOUTHEAST_ASIAN; + + public static readonly int IDEOGRAPHIC_TYPE = UAX29URLEmailTokenizer.IDEOGRAPHIC; + + public static readonly int HIRAGANA_TYPE = UAX29URLEmailTokenizer.HIRAGANA; + + public static readonly int KATAKANA_TYPE = UAX29URLEmailTokenizer.KATAKANA; + + public static readonly int HANGUL_TYPE = UAX29URLEmailTokenizer.HANGUL; + + public static readonly int EMAIL_TYPE = UAX29URLEmailTokenizer.EMAIL; + + public static readonly int URL_TYPE = UAX29URLEmailTokenizer.URL; + + public int YyChar + { + get { return yychar; } + } + + /** + * Fills CharTermAttribute with the current token text. + */ + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public UAX29URLEmailTokenizerImpl40(TextReader @in) + { + this.zzReader = @in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 3010) + { + int count = packed[i++]; + char value = packed[i++]; + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + System.Array.Copy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + System.Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* readonlyly: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, + zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c == -1) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /** + * Closes the input stream. + */ + public void YyClose() + { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + { + zzReader.Dispose(); + } + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public void YyReset(TextReader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public int YyState + { + get { return zzLexicalState; } + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to YyText().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to YyLength()-1. + * + * @return the character at position pos + */ + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * YyPushBack(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (IndexOutOfRangeException e) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than YyLength()! + */ + public void YyPushBack(int number) + { + if (number > YyLength) + ZzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public int GetNextToken() + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; + + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yychar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + + + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + zzInput = zzBufferL[zzCurrentPosL++]; + else if (zzAtEOF) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) goto zzForActionBreak; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) goto zzForActionBreak; + } + + } + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { /* Break so we don't hit fall-through warning: */ + break;/* Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. */ + } + case 12: break; + case 2: + { + return WORD_TYPE; + } + case 13: break; + case 3: + { + return NUMERIC_TYPE; + } + case 14: break; + case 4: + { + return KATAKANA_TYPE; + } + case 15: break; + case 5: + { + return SOUTH_EAST_ASIAN_TYPE; + } + case 16: break; + case 6: + { + return IDEOGRAPHIC_TYPE; + } + case 17: break; + case 7: + { + return HIRAGANA_TYPE; + } + case 18: break; + case 8: + { + return HANGUL_TYPE; + } + case 19: break; + case 9: + { + return EMAIL_TYPE; + } + case 20: break; + case 10: + { + return URL_TYPE; + } + case 21: break; + case 11: + // lookahead expression with fixed base length + zzMarkedPos = zzStartRead + 6; + { + return WORD_TYPE; + } + case 22: break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + { + return StandardTokenizerInterface_Fields.YYEOF; + } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } +} diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailAnalyzer.cs index 273896b351..eb4cb004d8 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailAnalyzer.cs @@ -1,136 +1,132 @@ using Lucene.Net.Analysis.Core; using Lucene.Net.Analysis.Util; using Lucene.Net.Util; -using org.apache.lucene.analysis.standard; -using Reader = System.IO.TextReader; +using System.IO; namespace Lucene.Net.Analysis.Standard { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ ///

- /// Filters - /// with , - /// and - /// , using a list of - /// English stop words. - /// - /// - /// - /// You must specify the required - /// compatibility when creating UAX29URLEmailAnalyzer - /// - /// - public sealed class UAX29URLEmailAnalyzer : StopwordAnalyzerBase - { - - /// - /// Default maximum allowed token length - public const int DEFAULT_MAX_TOKEN_LENGTH = StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH; - - private int maxTokenLength = DEFAULT_MAX_TOKEN_LENGTH; - - /// - /// An unmodifiable set containing some common English words that are usually not - /// useful for searching. - /// - public static readonly CharArraySet STOP_WORDS_SET = StopAnalyzer.ENGLISH_STOP_WORDS_SET; - - /// - /// Builds an analyzer with the given stop words. - /// Lucene version to match See {@link - /// above} - /// stop words - public UAX29URLEmailAnalyzer(LuceneVersion matchVersion, CharArraySet stopWords) : base(matchVersion, stopWords) - { - } - - /// - /// Builds an analyzer with the default stop words ({@link - /// #STOP_WORDS_SET}). - /// Lucene version to match See {@link - /// above} - public UAX29URLEmailAnalyzer(LuceneVersion matchVersion) : this(matchVersion, STOP_WORDS_SET) - { - } - - /// - /// Builds an analyzer with the stop words from the given reader. - /// - /// Lucene version to match See {@link - /// above} - /// Reader to read stop words from - public UAX29URLEmailAnalyzer(LuceneVersion matchVersion, Reader stopwords) : this(matchVersion, loadStopwordSet(stopwords, matchVersion)) - { - } - - /// - /// Set maximum allowed token length. If a token is seen - /// that exceeds this length then it is discarded. This - /// setting only takes effect the next time tokenStream or - /// tokenStream is called. - /// - public int MaxTokenLength - { - set - { - maxTokenLength = value; - } - get - { - return maxTokenLength; - } - } - - - public override TokenStreamComponents CreateComponents(string fieldName, Reader reader) - { - UAX29URLEmailTokenizer src = new UAX29URLEmailTokenizer(matchVersion, reader); - src.MaxTokenLength = maxTokenLength; - TokenStream tok = new StandardFilter(matchVersion, src); - tok = new LowerCaseFilter(matchVersion, tok); - tok = new StopFilter(matchVersion, tok, stopwords); - return new TokenStreamComponentsAnonymousInnerClassHelper(this, src, tok, reader); - } - - private class TokenStreamComponentsAnonymousInnerClassHelper : TokenStreamComponents - { - private readonly UAX29URLEmailAnalyzer outerInstance; - - private Reader reader; - private UAX29URLEmailTokenizer src; - - public TokenStreamComponentsAnonymousInnerClassHelper(UAX29URLEmailAnalyzer outerInstance, UAX29URLEmailTokenizer src, TokenStream tok, Reader reader) : base(src, tok) - { - this.outerInstance = outerInstance; - this.reader = reader; - this.src = src; - } - - protected override Reader Reader - { - set - { - src.MaxTokenLength = outerInstance.maxTokenLength; - base.Reader = value; - } - } - } - } - + /// Filters + /// with , + /// and + /// , using a list of + /// English stop words. + /// + /// + /// + /// You must specify the required + /// compatibility when creating UAX29URLEmailAnalyzer + /// + ///
+ public sealed class UAX29URLEmailAnalyzer : StopwordAnalyzerBase + { + + /// + /// Default maximum allowed token length + public const int DEFAULT_MAX_TOKEN_LENGTH = StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH; + + private int maxTokenLength = DEFAULT_MAX_TOKEN_LENGTH; + + /// + /// An unmodifiable set containing some common English words that are usually not + /// useful for searching. + /// + public static readonly CharArraySet STOP_WORDS_SET = StopAnalyzer.ENGLISH_STOP_WORDS_SET; + + /// + /// Builds an analyzer with the given stop words. + /// Lucene version to match See {@link + /// above} + /// stop words + public UAX29URLEmailAnalyzer(LuceneVersion matchVersion, CharArraySet stopWords) + : base(matchVersion, stopWords) + { + } + + /// + /// Builds an analyzer with the default stop words ({@link + /// #STOP_WORDS_SET}). + /// Lucene version to match See {@link + /// above} + public UAX29URLEmailAnalyzer(LuceneVersion matchVersion) + : this(matchVersion, STOP_WORDS_SET) + { + } + + /// + /// Builds an analyzer with the stop words from the given reader. + /// + /// Lucene version to match See {@link + /// above} + /// Reader to read stop words from + public UAX29URLEmailAnalyzer(LuceneVersion matchVersion, TextReader stopwords) + : this(matchVersion, LoadStopwordSet(stopwords, matchVersion)) + { + } + + /// + /// Set maximum allowed token length. If a token is seen + /// that exceeds this length then it is discarded. This + /// setting only takes effect the next time tokenStream or + /// tokenStream is called. + /// + public int MaxTokenLength + { + set { maxTokenLength = value; } + get { return maxTokenLength; } + } + + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + UAX29URLEmailTokenizer src = new UAX29URLEmailTokenizer(matchVersion, reader); + src.MaxTokenLength = maxTokenLength; + TokenStream tok = new StandardFilter(matchVersion, src); + tok = new LowerCaseFilter(matchVersion, tok); + tok = new StopFilter(matchVersion, tok, stopwords); + return new TokenStreamComponentsAnonymousInnerClassHelper(this, src, tok, reader); + } + + private class TokenStreamComponentsAnonymousInnerClassHelper : TokenStreamComponents + { + private readonly UAX29URLEmailAnalyzer outerInstance; + + private TextReader reader; + private UAX29URLEmailTokenizer src; + + public TokenStreamComponentsAnonymousInnerClassHelper(UAX29URLEmailAnalyzer outerInstance, UAX29URLEmailTokenizer src, TokenStream tok, TextReader reader) + : base(src, tok) + { + this.outerInstance = outerInstance; + this.reader = reader; + this.src = src; + } + + protected override TextReader Reader + { + set + { + src.MaxTokenLength = outerInstance.maxTokenLength; + base.Reader = value; + } + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizer.cs index 097df6a6ce..4ffed91d18 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizer.cs @@ -1,223 +1,221 @@ using Lucene.Net.Analysis.Standard; - -namespace org.apache.lucene.analysis.standard +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Util; +using System.IO; +using Lucene.Net.Analysis.Standard.Std31; +using Lucene.Net.Analysis.Standard.Std34; +using Lucene.Net.Analysis.Standard.Std36; +using Lucene.Net.Analysis.Standard.Std40; + +namespace Lucene.Net.Analysis.Standard { - - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - using UAX29URLEmailTokenizerImpl31 = org.apache.lucene.analysis.standard.std31.UAX29URLEmailTokenizerImpl31; - using UAX29URLEmailTokenizerImpl34 = org.apache.lucene.analysis.standard.std34.UAX29URLEmailTokenizerImpl34; - using UAX29URLEmailTokenizerImpl36 = org.apache.lucene.analysis.standard.std36.UAX29URLEmailTokenizerImpl36; - using UAX29URLEmailTokenizerImpl40 = org.apache.lucene.analysis.standard.std40.UAX29URLEmailTokenizerImpl40; - using OffsetAttribute = org.apache.lucene.analysis.tokenattributes.OffsetAttribute; - using PositionIncrementAttribute = org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using TypeAttribute = org.apache.lucene.analysis.tokenattributes.TypeAttribute; - using Version = org.apache.lucene.util.Version; - - /// - /// This class implements Word Break rules from the Unicode Text Segmentation - /// algorithm, as specified in ` - /// Unicode Standard Annex #29 - /// URLs and email addresses are also tokenized according to the relevant RFCs. - ///

- /// Tokens produced are of the following types: - ///

    - ///
  • <ALPHANUM>: A sequence of alphabetic and numeric characters
  • - ///
  • <NUM>: A number
  • - ///
  • <URL>: A URL
  • - ///
  • <EMAIL>: An email address
  • - ///
  • <SOUTHEAST_ASIAN>: A sequence of characters from South and Southeast - /// Asian languages, including Thai, Lao, Myanmar, and Khmer
  • - ///
  • <IDEOGRAPHIC>: A single CJKV ideographic character
  • - ///
  • <HIRAGANA>: A single hiragana character
  • - ///
- /// - /// You must specify the required - /// compatibility when creating UAX29URLEmailTokenizer: - ///
    - ///
  • As of 3.4, Hiragana and Han characters are no longer wrongly split - /// from their combining characters. If you use a previous version number, - /// you get the exact broken behavior for backwards compatibility. - ///
- ///
- ///
- - public sealed class UAX29URLEmailTokenizer : Tokenizer - { - /// - /// A private instance of the JFlex-constructed scanner - private readonly StandardTokenizerInterface scanner; - - public const int ALPHANUM = 0; - public const int NUM = 1; - public const int SOUTHEAST_ASIAN = 2; - public const int IDEOGRAPHIC = 3; - public const int HIRAGANA = 4; - public const int KATAKANA = 5; - public const int HANGUL = 6; - public const int URL = 7; - public const int EMAIL = 8; - - /// - /// String token types that correspond to token type int constants - public static readonly string[] TOKEN_TYPES = new string [] {StandardTokenizer.TOKEN_TYPES[StandardTokenizer.ALPHANUM], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.NUM], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.SOUTHEAST_ASIAN], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.IDEOGRAPHIC], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.HIRAGANA], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.KATAKANA], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.HANGUL], "", ""}; - - private int skippedPositions; - - private int maxTokenLength = StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH; - - /// - /// Set the max allowed token length. Any token longer - /// than this is skipped. - /// - public int MaxTokenLength - { - set - { - if (value < 1) - { - throw new System.ArgumentException("maxTokenLength must be greater than zero"); - } - this.maxTokenLength = value; - } - get - { - return maxTokenLength; - } - } - - - /// - /// Creates a new instance of the UAX29URLEmailTokenizer. Attaches - /// the input to the newly created JFlex scanner. - /// - /// The input reader - public UAX29URLEmailTokenizer(Version matchVersion, Reader input) : base(input) - { - this.scanner = getScannerFor(matchVersion); - } - - /// - /// Creates a new UAX29URLEmailTokenizer with a given - /// - public UAX29URLEmailTokenizer(Version matchVersion, AttributeFactory factory, Reader input) : base(factory, input) - { - this.scanner = getScannerFor(matchVersion); - } - - private StandardTokenizerInterface getScannerFor(Version matchVersion) - { - // best effort NPE if you dont call reset - if (matchVersion.onOrAfter(Version.LUCENE_47)) - { - return new UAX29URLEmailTokenizerImpl(input); - } - else if (matchVersion.onOrAfter(Version.LUCENE_40)) - { - return new UAX29URLEmailTokenizerImpl40(input); - } - else if (matchVersion.onOrAfter(Version.LUCENE_36)) - { - return new UAX29URLEmailTokenizerImpl36(input); - } - else if (matchVersion.onOrAfter(Version.LUCENE_34)) - { - return new UAX29URLEmailTokenizerImpl34(input); - } - else - { - return new UAX29URLEmailTokenizerImpl31(input); - } - } - - // this tokenizer generates three attributes: - // term offset, positionIncrement and type - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly OffsetAttribute offsetAtt = addAttribute(typeof(OffsetAttribute)); - private readonly PositionIncrementAttribute posIncrAtt = addAttribute(typeof(PositionIncrementAttribute)); - private readonly TypeAttribute typeAtt = addAttribute(typeof(TypeAttribute)); - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public final boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - clearAttributes(); - skippedPositions = 0; - - while (true) - { - int tokenType = scanner.NextToken; - - if (tokenType == StandardTokenizerInterface_Fields.YYEOF) - { - return false; - } - - if (scanner.yylength() <= maxTokenLength) - { - posIncrAtt.PositionIncrement = skippedPositions + 1; - scanner.getText(termAtt); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int start = scanner.yychar(); - int start = scanner.yychar(); - offsetAtt.setOffset(correctOffset(start), correctOffset(start + termAtt.length())); - typeAtt.Type = TOKEN_TYPES[tokenType]; - return true; - } - else - // When we skip a too-long term, we still increment the - // position increment - { - skippedPositions++; - } - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public final void end() throws java.io.IOException - public override void end() - { - base.end(); - // set final offset - int finalOffset = correctOffset(scanner.yychar() + scanner.yylength()); - offsetAtt.setOffset(finalOffset, finalOffset); - // adjust any skipped tokens - posIncrAtt.PositionIncrement = posIncrAtt.PositionIncrement + skippedPositions; - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void close() throws java.io.IOException - public override void close() - { - base.close(); - scanner.yyreset(input); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void reset() throws java.io.IOException - public override void reset() - { - base.reset(); - scanner.yyreset(input); - skippedPositions = 0; - } - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// This class implements Word Break rules from the Unicode Text Segmentation + /// algorithm, as specified in ` + /// Unicode Standard Annex #29 + /// URLs and email addresses are also tokenized according to the relevant RFCs. + ///

+ /// Tokens produced are of the following types: + ///

    + ///
  • <ALPHANUM>: A sequence of alphabetic and numeric characters
  • + ///
  • <NUM>: A number
  • + ///
  • <URL>: A URL
  • + ///
  • <EMAIL>: An email address
  • + ///
  • <SOUTHEAST_ASIAN>: A sequence of characters from South and Southeast + /// Asian languages, including Thai, Lao, Myanmar, and Khmer
  • + ///
  • <IDEOGRAPHIC>: A single CJKV ideographic character
  • + ///
  • <HIRAGANA>: A single hiragana character
  • + ///
+ /// + /// You must specify the required + /// compatibility when creating UAX29URLEmailTokenizer: + ///
    + ///
  • As of 3.4, Hiragana and Han characters are no longer wrongly split + /// from their combining characters. If you use a previous version number, + /// you get the exact broken behavior for backwards compatibility. + ///
+ ///
+ ///
+ public sealed class UAX29URLEmailTokenizer : Tokenizer + { + /// + /// A private instance of the JFlex-constructed scanner + private IStandardTokenizerInterface scanner; + + public const int ALPHANUM = 0; + public const int NUM = 1; + public const int SOUTHEAST_ASIAN = 2; + public const int IDEOGRAPHIC = 3; + public const int HIRAGANA = 4; + public const int KATAKANA = 5; + public const int HANGUL = 6; + public const int URL = 7; + public const int EMAIL = 8; + + /// + /// String token types that correspond to token type int constants + public static readonly string[] TOKEN_TYPES = new string[] { StandardTokenizer.TOKEN_TYPES[StandardTokenizer.ALPHANUM], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.NUM], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.SOUTHEAST_ASIAN], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.IDEOGRAPHIC], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.HIRAGANA], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.KATAKANA], StandardTokenizer.TOKEN_TYPES[StandardTokenizer.HANGUL], "", "" }; + + private int skippedPositions; + + private int maxTokenLength = StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH; + + /// + /// Set the max allowed token length. Any token longer + /// than this is skipped. + /// + public int MaxTokenLength + { + set + { + if (value < 1) + { + throw new System.ArgumentException("maxTokenLength must be greater than zero"); + } + this.maxTokenLength = value; + } + get + { + return maxTokenLength; + } + } + + + /// + /// Creates a new instance of the UAX29URLEmailTokenizer. Attaches + /// the input to the newly created JFlex scanner. + /// + /// The input reader + public UAX29URLEmailTokenizer(LuceneVersion matchVersion, TextReader input) + : base(input) + { + Init(matchVersion); + } + + /// + /// Creates a new UAX29URLEmailTokenizer with a given + /// + public UAX29URLEmailTokenizer(LuceneVersion matchVersion, AttributeFactory factory, TextReader input) + : base(factory, input) + { + Init(matchVersion); + } + + /// + /// This method was added in .NET to prevent having to repeat code in the constructors. + /// + /// + private void Init(LuceneVersion matchVersion) + { + this.scanner = GetScannerFor(matchVersion); + this.termAtt = AddAttribute(); + this.offsetAtt = AddAttribute(); + this.posIncrAtt = AddAttribute(); + this.typeAtt = AddAttribute(); + } + + private IStandardTokenizerInterface GetScannerFor(LuceneVersion matchVersion) + { + // best effort NPE if you dont call reset + if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_47)) + { + return new UAX29URLEmailTokenizerImpl(input); + } + else if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_40)) + { + return new UAX29URLEmailTokenizerImpl40(input); + } + else if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_36)) + { + return new UAX29URLEmailTokenizerImpl36(input); + } + else if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_34)) + { + return new UAX29URLEmailTokenizerImpl34(input); + } + else + { + return new UAX29URLEmailTokenizerImpl31(input); + } + } + + // this tokenizer generates three attributes: + // term offset, positionIncrement and type + private ICharTermAttribute termAtt; + private IOffsetAttribute offsetAtt; + private IPositionIncrementAttribute posIncrAtt; + private ITypeAttribute typeAtt; + + public override bool IncrementToken() + { + ClearAttributes(); + skippedPositions = 0; + + while (true) + { + int tokenType = scanner.GetNextToken(); + + if (tokenType == StandardTokenizerInterface_Fields.YYEOF) + { + return false; + } + + if (scanner.YyLength <= maxTokenLength) + { + posIncrAtt.PositionIncrement = skippedPositions + 1; + scanner.GetText(termAtt); + int start = scanner.YyChar; + offsetAtt.SetOffset(CorrectOffset(start), CorrectOffset(start + termAtt.Length)); + typeAtt.Type = TOKEN_TYPES[tokenType]; + return true; + } + else + // When we skip a too-long term, we still increment the + // position increment + { + skippedPositions++; + } + } + } + + public override void End() + { + base.End(); + // set final offset + int finalOffset = CorrectOffset(scanner.YyChar + scanner.YyLength); + offsetAtt.SetOffset(finalOffset, finalOffset); + // adjust any skipped tokens + posIncrAtt.PositionIncrement = posIncrAtt.PositionIncrement + skippedPositions; + } + + public override void Dispose() + { + base.Dispose(); + scanner.YyReset(input); + } + + public override void Reset() + { + base.Reset(); + scanner.YyReset(input); + skippedPositions = 0; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerFactory.cs index 9cd3d3027f..719b47ff7a 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerFactory.cs @@ -1,62 +1,59 @@ -using System.Collections.Generic; -using Lucene.Net.Analysis.Standard; +using Lucene.Net.Util; +using System.Collections.Generic; +using System.IO; using TokenizerFactory = Lucene.Net.Analysis.Util.TokenizerFactory; +using System; -namespace org.apache.lucene.analysis.standard +namespace Lucene.Net.Analysis.Standard { - - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - using TokenizerFactory = TokenizerFactory; - using AttributeFactory = org.apache.lucene.util.AttributeSource.AttributeFactory; - - - /// - /// Factory for . - ///
-	/// <fieldType name="text_urlemail" class="solr.TextField" positionIncrementGap="100">
-	///   <analyzer>
-	///     <tokenizer class="solr.UAX29URLEmailTokenizerFactory" maxTokenLength="255"/>
-	///   </analyzer>
-	/// </fieldType>
- ///
- public class UAX29URLEmailTokenizerFactory : TokenizerFactory - { - private readonly int maxTokenLength; - - /// - /// Creates a new UAX29URLEmailTokenizerFactory - public UAX29URLEmailTokenizerFactory(IDictionary args) : base(args) - { - assureMatchVersion(); - maxTokenLength = getInt(args, "maxTokenLength", StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH); - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } - - public override UAX29URLEmailTokenizer create(AttributeFactory factory, Reader input) - { - UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(luceneMatchVersion, factory, input); - tokenizer.MaxTokenLength = maxTokenLength; - return tokenizer; - } - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// Factory for . + ///
+    /// <fieldType name="text_urlemail" class="solr.TextField" positionIncrementGap="100">
+    ///   <analyzer>
+    ///     <tokenizer class="solr.UAX29URLEmailTokenizerFactory" maxTokenLength="255"/>
+    ///   </analyzer>
+    /// </fieldType>
+ ///
+ public class UAX29URLEmailTokenizerFactory : TokenizerFactory + { + private readonly int maxTokenLength; + + /// + /// Creates a new UAX29URLEmailTokenizerFactory + public UAX29URLEmailTokenizerFactory(IDictionary args) + : base(args) + { + AssureMatchVersion(); + maxTokenLength = GetInt(args, "maxTokenLength", StandardAnalyzer.DEFAULT_MAX_TOKEN_LENGTH); + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + + public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextReader input) + { + UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(luceneMatchVersion, factory, input); + tokenizer.MaxTokenLength = maxTokenLength; + return tokenizer; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerImpl.cs new file mode 100644 index 0000000000..8cb9fdc8e6 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerImpl.cs @@ -0,0 +1,9595 @@ +using Lucene.Net.Analysis.Tokenattributes; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Standard +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + ///
+ /// This class implements Word Break rules from the Unicode Text Segmentation + /// algorithm, as specified in + /// Unicode Standard Annex #29 + /// URLs and email addresses are also tokenized according to the relevant RFCs. + ///

+ /// Tokens produced are of the following types: + ///

    + ///
  • <ALPHANUM>: A sequence of alphabetic and numeric characters
  • + ///
  • <NUM>: A number
  • + ///
  • <URL>: A URL
  • + ///
  • <EMAIL>: An email address
  • + ///
  • <SOUTHEAST_ASIAN>: A sequence of characters from South and Southeast + /// Asian languages, including Thai, Lao, Myanmar, and Khmer
  • + ///
  • <IDEOGRAPHIC>: A single CJKV ideographic character
  • + ///
  • <HIRAGANA>: A single hiragana character
  • + ///
  • <KATAKANA>: A sequence of katakana characters
  • + ///
  • <HANGUL>: A sequence of Hangul characters
  • + ///
+ ///
+ public sealed class UAX29URLEmailTokenizerImpl : IStandardTokenizerInterface + { + /** This character denotes the end of file */ + public static readonly int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static readonly int ZZ_BUFFERSIZE = 4096; + + /** lexical states */ + public const int YYINITIAL = 0; + public const int AVOID_BAD_URL = 2; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static readonly int[] ZZ_LEXSTATE = { 0, 0, 1, 1 }; + + /** + * Translates characters to character classes + */ + private const string ZZ_CMAP_PACKED = + "\x0001\x00C6\x0008\x00C4\x0002\x00C6\x0002\x00C4\x0001\x00C6\x0013\x00C4\x0001\x00C7\x0001\x008D\x0001\x00BF\x0001\x00C7"+ + "\x0001\x00B9\x0001\x00B7\x0001\x008C\x0002\x00BA\x0002\x00C7\x0001\x00BB\x0001\x00AB\x0001\x0090\x0001\x00BE\x0001\x00AD"+ + "\x0001\x00B4\x0001\x00B3\x0001\x00AC\x0001\x00AF\x0001\x00B0\x0001\x00B5\x0001\x00AE\x0001\x00B2\x0001\x00B1\x0001\x00B6"+ + "\x0001\x00C2\x0001\x00C4\x0001\x00C3\x0001\x00C4\x0001\x00BD\x0001\x00BC\x0001\x0091\x0001\x00A5\x0001\x0092\x0001\x0093"+ + "\x0001\x0094\x0001\x0097\x0001\x0098\x0001\x00A6\x0001\x0099\x0001\x00A8\x0001\x00A7\x0001\x009A\x0001\x009B\x0001\x009C"+ + "\x0001\x0096\x0001\x009E\x0001\x009D\x0001\x0095\x0001\x009F\x0001\x00A0\x0001\x00A1\x0001\x00A9\x0001\x00A2\x0001\x00A3"+ + "\x0001\x00AA\x0001\x00A4\x0001\x00C0\x0001\x00C5\x0001\x00C1\x0001\x00C8\x0001\x00B8\x0001\x00C8\x0001\x0091\x0001\x00A5"+ + "\x0001\x0092\x0001\x0093\x0001\x0094\x0001\x0097\x0001\x0098\x0001\x00A6\x0001\x0099\x0001\x00A8\x0001\x00A7\x0001\x009A"+ + "\x0001\x009B\x0001\x009C\x0001\x0096\x0001\x009E\x0001\x009D\x0001\x0095\x0001\x009F\x0001\x00A0\x0001\x00A1\x0001\x00A9"+ + "\x0001\x00A2\x0001\x00A3\x0001\x00AA\x0001\x00A4\x0003\x00C8\x0001\x00B7\x0001\x00C9\x002A\x0000\x0001\x008A\x0002\x0000"+ + "\x0001\x007F\x0007\x0000\x0001\x008A\x0001\x0000\x0001\x0083\x0002\x0000\x0001\x008A\x0005\x0000\x0017\x008A\x0001\x0000"+ + "\x001F\x008A\x0001\x0000\u01ca\x008A\x0004\x0000\x000C\x008A\x0005\x0000\x0001\x0083\x0008\x0000\x0005\x008A\x0007\x0000"+ + "\x0001\x008A\x0001\x0000\x0001\x008A\x0011\x0000\x0070\x00CB\x0005\x008A\x0001\x0000\x0002\x008A\x0002\x0000\x0004\x008A"+ + "\x0001\x0084\x0007\x0000\x0001\x008A\x0001\x0083\x0003\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0014\x008A\x0001\x0000"+ + "\x0053\x008A\x0001\x0000\x008B\x008A\x0001\x0000\x0007\x00CB\x009E\x008A\x0009\x0000\x0026\x008A\x0002\x0000\x0001\x008A"+ + "\x0007\x0000\x0027\x008A\x0001\x0000\x0001\x0084\x0007\x0000\x002D\x00CB\x0001\x0000\x0001\x00CB\x0001\x0000\x0002\x00CB"+ + "\x0001\x0000\x0002\x00CB\x0001\x0000\x0001\x00CB\x0008\x0000\x001B\x008E\x0005\x0000\x0003\x008E\x0001\x007E\x0001\x0083"+ + "\x000B\x0000\x0005\x007F\x0007\x0000\x0002\x0084\x0002\x0000\x000B\x00CB\x0001\x0000\x0001\x007F\x0003\x0000\x002B\x008A"+ + "\x0015\x00CB\x000A\x0080\x0001\x0000\x0001\x0081\x0001\x0084\x0001\x0000\x0002\x008A\x0001\x00CB\x0063\x008A\x0001\x0000"+ + "\x0001\x008A\x0007\x00CB\x0001\x007F\x0001\x0000\x0006\x00CB\x0002\x008A\x0002\x00CB\x0001\x0000\x0004\x00CB\x0002\x008A"+ + "\x000A\x0080\x0003\x008A\x0002\x0000\x0001\x008A\x000F\x0000\x0001\x007F\x0001\x008A\x0001\x00CB\x001E\x008A\x001B\x00CB"+ + "\x0002\x0000\x0059\x008A\x000B\x00CB\x0001\x008A\x000E\x0000\x000A\x0080\x0021\x008A\x0009\x00CB\x0002\x008A\x0002\x0000"+ + "\x0001\x0084\x0001\x0000\x0001\x008A\x0005\x0000\x0016\x008A\x0004\x00CB\x0001\x008A\x0009\x00CB\x0001\x008A\x0003\x00CB"+ + "\x0001\x008A\x0005\x00CB\x0012\x0000\x0019\x008A\x0003\x00CB\x0044\x0000\x0001\x008A\x0001\x0000\x000B\x008A\x0037\x0000"+ + "\x001B\x00CB\x0001\x0000\x0004\x00CB\x0036\x008A\x0003\x00CB\x0001\x008A\x0012\x00CB\x0001\x008A\x0007\x00CB\x000A\x008A"+ + "\x0002\x00CB\x0002\x0000\x000A\x0080\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0003\x00CB\x0001\x0000"+ + "\x0008\x008A\x0002\x0000\x0002\x008A\x0002\x0000\x0016\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0001\x008A\x0003\x0000"+ + "\x0004\x008A\x0002\x0000\x0001\x00CB\x0001\x008A\x0007\x00CB\x0002\x0000\x0002\x00CB\x0002\x0000\x0003\x00CB\x0001\x008A"+ + "\x0008\x0000\x0001\x00CB\x0004\x0000\x0002\x008A\x0001\x0000\x0003\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0002\x008A"+ + "\x000F\x0000\x0003\x00CB\x0001\x0000\x0006\x008A\x0004\x0000\x0002\x008A\x0002\x0000\x0016\x008A\x0001\x0000\x0007\x008A"+ + "\x0001\x0000\x0002\x008A\x0001\x0000\x0002\x008A\x0001\x0000\x0002\x008A\x0002\x0000\x0001\x00CB\x0001\x0000\x0005\x00CB"+ + "\x0004\x0000\x0002\x00CB\x0002\x0000\x0003\x00CB\x0003\x0000\x0001\x00CB\x0007\x0000\x0004\x008A\x0001\x0000\x0001\x008A"+ + "\x0007\x0000\x000A\x0080\x0002\x00CB\x0003\x008A\x0001\x00CB\x000B\x0000\x0003\x00CB\x0001\x0000\x0009\x008A\x0001\x0000"+ + "\x0003\x008A\x0001\x0000\x0016\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0002\x008A\x0001\x0000\x0005\x008A\x0002\x0000"+ + "\x0001\x00CB\x0001\x008A\x0008\x00CB\x0001\x0000\x0003\x00CB\x0001\x0000\x0003\x00CB\x0002\x0000\x0001\x008A\x000F\x0000"+ + "\x0002\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0011\x0000\x0003\x00CB\x0001\x0000\x0008\x008A\x0002\x0000\x0002\x008A"+ + "\x0002\x0000\x0016\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0002\x008A\x0001\x0000\x0005\x008A\x0002\x0000\x0001\x00CB"+ + "\x0001\x008A\x0007\x00CB\x0002\x0000\x0002\x00CB\x0002\x0000\x0003\x00CB\x0008\x0000\x0002\x00CB\x0004\x0000\x0002\x008A"+ + "\x0001\x0000\x0003\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0001\x0000\x0001\x008A\x0010\x0000\x0001\x00CB\x0001\x008A"+ + "\x0001\x0000\x0006\x008A\x0003\x0000\x0003\x008A\x0001\x0000\x0004\x008A\x0003\x0000\x0002\x008A\x0001\x0000\x0001\x008A"+ + "\x0001\x0000\x0002\x008A\x0003\x0000\x0002\x008A\x0003\x0000\x0003\x008A\x0003\x0000\x000C\x008A\x0004\x0000\x0005\x00CB"+ + "\x0003\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0002\x0000\x0001\x008A\x0006\x0000\x0001\x00CB\x000E\x0000\x000A\x0080"+ + "\x0011\x0000\x0003\x00CB\x0001\x0000\x0008\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0017\x008A\x0001\x0000\x000A\x008A"+ + "\x0001\x0000\x0005\x008A\x0003\x0000\x0001\x008A\x0007\x00CB\x0001\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0007\x0000"+ + "\x0002\x00CB\x0001\x0000\x0002\x008A\x0006\x0000\x0002\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0012\x0000\x0002\x00CB"+ + "\x0001\x0000\x0008\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0017\x008A\x0001\x0000\x000A\x008A\x0001\x0000\x0005\x008A"+ + "\x0002\x0000\x0001\x00CB\x0001\x008A\x0007\x00CB\x0001\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0007\x0000\x0002\x00CB"+ + "\x0007\x0000\x0001\x008A\x0001\x0000\x0002\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0001\x0000\x0002\x008A\x000F\x0000"+ + "\x0002\x00CB\x0001\x0000\x0008\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0029\x008A\x0002\x0000\x0001\x008A\x0007\x00CB"+ + "\x0001\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0001\x008A\x0008\x0000\x0001\x00CB\x0008\x0000\x0002\x008A\x0002\x00CB"+ + "\x0002\x0000\x000A\x0080\x000A\x0000\x0006\x008A\x0002\x0000\x0002\x00CB\x0001\x0000\x0012\x008A\x0003\x0000\x0018\x008A"+ + "\x0001\x0000\x0009\x008A\x0001\x0000\x0001\x008A\x0002\x0000\x0007\x008A\x0003\x0000\x0001\x00CB\x0004\x0000\x0006\x00CB"+ + "\x0001\x0000\x0001\x00CB\x0001\x0000\x0008\x00CB\x0012\x0000\x0002\x00CB\x000D\x0000\x0030\x00CD\x0001\x0088\x0002\x00CD"+ + "\x0007\x0088\x0005\x0000\x0007\x00CD\x0008\x0088\x0001\x0000\x000A\x0080\x0027\x0000\x0002\x00CD\x0001\x0000\x0001\x00CD"+ + "\x0002\x0000\x0002\x00CD\x0001\x0000\x0001\x00CD\x0002\x0000\x0001\x00CD\x0006\x0000\x0004\x00CD\x0001\x0000\x0007\x00CD"+ + "\x0001\x0000\x0003\x00CD\x0001\x0000\x0001\x00CD\x0001\x0000\x0001\x00CD\x0002\x0000\x0002\x00CD\x0001\x0000\x0004\x00CD"+ + "\x0001\x0088\x0002\x00CD\x0006\x0088\x0001\x0000\x0002\x0088\x0001\x00CD\x0002\x0000\x0005\x00CD\x0001\x0000\x0001\x00CD"+ + "\x0001\x0000\x0006\x0088\x0002\x0000\x000A\x0080\x0002\x0000\x0004\x00CD\x0020\x0000\x0001\x008A\x0017\x0000\x0002\x00CB"+ + "\x0006\x0000\x000A\x0080\x000B\x0000\x0001\x00CB\x0001\x0000\x0001\x00CB\x0001\x0000\x0001\x00CB\x0004\x0000\x0002\x00CB"+ + "\x0008\x008A\x0001\x0000\x0024\x008A\x0004\x0000\x0014\x00CB\x0001\x0000\x0002\x00CB\x0005\x008A\x000B\x00CB\x0001\x0000"+ + "\x0024\x00CB\x0009\x0000\x0001\x00CB\x0039\x0000\x002B\x00CD\x0014\x0088\x0001\x00CD\x000A\x0080\x0006\x0000\x0006\x00CD"+ + "\x0004\x0088\x0004\x00CD\x0003\x0088\x0001\x00CD\x0003\x0088\x0002\x00CD\x0007\x0088\x0003\x00CD\x0004\x0088\x000D\x00CD"+ + "\x000C\x0088\x0001\x00CD\x0001\x0088\x000A\x0080\x0004\x0088\x0002\x0087\x0026\x008A\x0001\x0000\x0001\x008A\x0005\x0000"+ + "\x0001\x008A\x0002\x0000\x002B\x008A\x0001\x0000\x0004\x008A\u0100\x008F\x0049\x008A\x0001\x0000\x0004\x008A\x0002\x0000"+ + "\x0007\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0004\x008A\x0002\x0000\x0029\x008A\x0001\x0000\x0004\x008A\x0002\x0000"+ + "\x0021\x008A\x0001\x0000\x0004\x008A\x0002\x0000\x0007\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0004\x008A\x0002\x0000"+ + "\x000F\x008A\x0001\x0000\x0039\x008A\x0001\x0000\x0004\x008A\x0002\x0000\x0043\x008A\x0002\x0000\x0003\x00CB\x0020\x0000"+ + "\x0010\x008A\x0010\x0000\x0055\x008A\x000C\x0000\u026c\x008A\x0002\x0000\x0011\x008A\x0001\x0000\x001A\x008A\x0005\x0000"+ + "\x004B\x008A\x0003\x0000\x0003\x008A\x000F\x0000\x000D\x008A\x0001\x0000\x0004\x008A\x0003\x00CB\x000B\x0000\x0012\x008A"+ + "\x0003\x00CB\x000B\x0000\x0012\x008A\x0002\x00CB\x000C\x0000\x000D\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0002\x00CB"+ + "\x000C\x0000\x0034\x00CD\x0020\x0088\x0003\x0000\x0001\x00CD\x0004\x0000\x0001\x00CD\x0001\x0088\x0002\x0000\x000A\x0080"+ + "\x0021\x0000\x0003\x00CB\x0001\x007F\x0001\x0000\x000A\x0080\x0006\x0000\x0058\x008A\x0008\x0000\x0029\x008A\x0001\x00CB"+ + "\x0001\x008A\x0005\x0000\x0046\x008A\x000A\x0000\x001D\x008A\x0003\x0000\x000C\x00CB\x0004\x0000\x000C\x00CB\x000A\x0000"+ + "\x000A\x0080\x001E\x00CD\x0002\x0000\x0005\x00CD\x000B\x0000\x002C\x00CD\x0004\x0000\x0011\x0088\x0007\x00CD\x0002\x0088"+ + "\x0006\x0000\x000A\x0080\x0001\x0087\x0003\x0000\x0002\x0087\x0020\x0000\x0017\x008A\x0005\x00CB\x0004\x0000\x0035\x00CD"+ + "\x000A\x0088\x0001\x0000\x001D\x0088\x0002\x0000\x0001\x00CB\x000A\x0080\x0006\x0000\x000A\x0080\x0006\x0000\x0007\x0087"+ + "\x0001\x00CD\x0006\x0087\x0052\x0000\x0005\x00CB\x002F\x008A\x0011\x00CB\x0007\x008A\x0004\x0000\x000A\x0080\x0011\x0000"+ + "\x0009\x00CB\x000C\x0000\x0003\x00CB\x001E\x008A\x000D\x00CB\x0002\x008A\x000A\x0080\x002C\x008A\x000E\x00CB\x000C\x0000"+ + "\x0024\x008A\x0014\x00CB\x0008\x0000\x000A\x0080\x0003\x0000\x0003\x008A\x000A\x0080\x0024\x008A\x0052\x0000\x0003\x00CB"+ + "\x0001\x0000\x0015\x00CB\x0004\x008A\x0001\x00CB\x0004\x008A\x0003\x00CB\x0002\x008A\x0009\x0000\x00C0\x008A\x0027\x00CB"+ + "\x0015\x0000\x0004\x00CB\u0116\x008A\x0002\x0000\x0006\x008A\x0002\x0000\x0026\x008A\x0002\x0000\x0006\x008A\x0002\x0000"+ + "\x0008\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x001F\x008A\x0002\x0000"+ + "\x0035\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0001\x008A\x0003\x0000\x0003\x008A\x0001\x0000\x0007\x008A\x0003\x0000"+ + "\x0004\x008A\x0002\x0000\x0006\x008A\x0004\x0000\x000D\x008A\x0005\x0000\x0003\x008A\x0001\x0000\x0007\x008A\x000F\x0000"+ + "\x0002\x007F\x0002\x007F\x0008\x0000\x0002\x0085\x000A\x0000\x0001\x0085\x0002\x0000\x0001\x0083\x0002\x0000\x0005\x007F"+ + "\x0010\x0000\x0002\x0086\x0003\x0000\x0001\x0084\x000F\x0000\x0001\x0086\x000B\x0000\x0005\x007F\x0001\x0000\x000A\x007F"+ + "\x0001\x0000\x0001\x008A\x000D\x0000\x0001\x008A\x0010\x0000\x000D\x008A\x0033\x0000\x0021\x00CB\x0011\x0000\x0001\x008A"+ + "\x0004\x0000\x0001\x008A\x0002\x0000\x000A\x008A\x0001\x0000\x0001\x008A\x0003\x0000\x0005\x008A\x0006\x0000\x0001\x008A"+ + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0004\x008A\x0001\x0000\x000B\x008A\x0002\x0000\x0004\x008A"+ + "\x0005\x0000\x0005\x008A\x0004\x0000\x0001\x008A\x0011\x0000\x0029\x008A\u032d\x0000\x0034\x008A\u0716\x0000\x002F\x008A"+ + "\x0001\x0000\x002F\x008A\x0001\x0000\x0085\x008A\x0006\x0000\x0004\x008A\x0003\x00CB\x0002\x008A\x000C\x0000\x0026\x008A"+ + "\x0001\x0000\x0001\x008A\x0005\x0000\x0001\x008A\x0002\x0000\x0038\x008A\x0007\x0000\x0001\x008A\x000F\x0000\x0001\x00CB"+ + "\x0017\x008A\x0009\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000"+ + "\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0020\x00CB\x002F\x0000"+ + "\x0001\x008A\x0050\x0000\x001A\x0089\x0001\x0000\x0059\x0089\x000C\x0000\x00D6\x0089\x002F\x0000\x0001\x008A\x0001\x00CA"+ + "\x0001\x00CE\x0019\x0000\x0009\x00CE\x0006\x00CB\x0001\x0000\x0005\x00CC\x0002\x0000\x0003\x00CE\x0001\x008A\x0001\x008A"+ + "\x0004\x0000\x0056\x008B\x0002\x0000\x0002\x00CB\x0002\x0082\x0003\x008B\x0001\x0082\x005A\x00CC\x0001\x0000\x0004\x00CC"+ + "\x0005\x0000\x0029\x008A\x0003\x0000\x005E\x008F\x0011\x0000\x001B\x008A\x0035\x0000\x0010\x00CC\x00D0\x0000\x002F\x0082"+ + "\x0001\x0000\x0058\x0082\x00A8\x0000\u19b6\x00CE\x004A\x0000\u51cd\x00CE\x0033\x0000\u048d\x008A\x0043\x0000\x002E\x008A"+ + "\x0002\x0000\u010d\x008A\x0003\x0000\x0010\x008A\x000A\x0080\x0002\x008A\x0014\x0000\x002F\x008A\x0004\x00CB\x0001\x0000"+ + "\x000A\x00CB\x0001\x0000\x0019\x008A\x0007\x0000\x0001\x00CB\x0050\x008A\x0002\x00CB\x0025\x0000\x0009\x008A\x0002\x0000"+ + "\x0067\x008A\x0002\x0000\x0004\x008A\x0001\x0000\x0004\x008A\x000C\x0000\x000B\x008A\x004D\x0000\x000A\x008A\x0001\x00CB"+ + "\x0003\x008A\x0001\x00CB\x0004\x008A\x0001\x00CB\x0017\x008A\x0005\x00CB\x0018\x0000\x0034\x008A\x000C\x0000\x0002\x00CB"+ + "\x0032\x008A\x0011\x00CB\x000B\x0000\x000A\x0080\x0006\x0000\x0012\x00CB\x0006\x008A\x0003\x0000\x0001\x008A\x0004\x0000"+ + "\x000A\x0080\x001C\x008A\x0008\x00CB\x0002\x0000\x0017\x008A\x000D\x00CB\x000C\x0000\x001D\x008F\x0003\x0000\x0004\x00CB"+ + "\x002F\x008A\x000E\x00CB\x000E\x0000\x0001\x008A\x000A\x0080\x0026\x0000\x0029\x008A\x000E\x00CB\x0009\x0000\x0003\x008A"+ + "\x0001\x00CB\x0008\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0006\x0000\x0017\x00CD\x0003\x0087\x0001\x00CD\x0001\x0088"+ + "\x0004\x0000\x0030\x00CD\x0001\x0088\x0001\x00CD\x0003\x0088\x0002\x00CD\x0002\x0088\x0005\x00CD\x0002\x0088\x0001\x00CD"+ + "\x0001\x0088\x0001\x00CD\x0018\x0000\x0003\x00CD\x0002\x0087\x000B\x008A\x0005\x00CB\x0002\x0000\x0003\x008A\x0002\x00CB"+ + "\x000A\x0000\x0006\x008A\x0002\x0000\x0006\x008A\x0002\x0000\x0006\x008A\x0009\x0000\x0007\x008A\x0001\x0000\x0007\x008A"+ + "\x0091\x0000\x0023\x008A\x0008\x00CB\x0001\x0000\x0002\x00CB\x0002\x0000\x000A\x0080\x0006\x0000\u2ba4\x008F\x000C\x0000"+ + "\x0017\x008F\x0004\x0000\x0031\x008F\x0004\x0000\x0001\x0024\x0001\x0020\x0001\x0037\x0001\x0034\x0001\x001B\x0001\x0018"+ + "\x0002\x0000\x0001\x0014\x0001\x0011\x0002\x0000\x0001\x000F\x0001\x000D\x000C\x0000\x0001\x0003\x0001\x0006\x0010\x0000"+ + "\x0001\x006E\x0007\x0000\x0001\x0049\x0001\x0008\x0005\x0000\x0001\x0001\x0001\x007A\x0003\x0000\x0001\x0073\x0001\x0073"+ + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073"+ + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073"+ + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073"+ + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0074"+ + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0078\x0001\x0076\x000F\x0000\x0001\x0070\u02c1\x0000\x0001\x004C\x00BF\x0000"+ + "\x0001\x006F\x0001\x004D\x0001\x000E\x0003\x0077\x0002\x0032\x0001\x0077\x0001\x0032\x0002\x0077\x0001\x001E\x0011\x0077"+ + "\x0002\x0046\x0007\x004F\x0001\x004E\x0007\x004F\x0007\x0042\x0001\x001F\x0001\x0042\x0001\x0060\x0002\x0036\x0001\x0035"+ + "\x0001\x0060\x0001\x0036\x0001\x0035\x0008\x0060\x0002\x0047\x0005\x0043\x0002\x003D\x0005\x0043\x0001\x0012\x0008\x002B"+ + "\x0005\x0013\x0003\x0021\x000A\x0052\x0010\x0021\x0003\x0033\x001A\x0023\x0001\x0022\x0002\x0031\x0002\x0056\x0001\x0057"+ + "\x0002\x0056\x0002\x0057\x0002\x0056\x0001\x0057\x0003\x0031\x0001\x0030\x0002\x0031\x000A\x0048\x0001\x005E\x0001\x0028"+ + "\x0001\x0025\x0001\x0048\x0006\x0028\x0001\x0025\x000B\x0028\x0019\x0031\x0007\x0028\x000A\x0053\x0001\x0028\x0005\x000B"+ + "\x0003\x005F\x0003\x0041\x0001\x0040\x0004\x0041\x0002\x0040\x0008\x0041\x0001\x0040\x0007\x001D\x0001\x001C\x0002\x001D"+ + "\x0007\x0041\x000E\x005F\x0001\x0069\x0004\x0054\x0001\x0004\x0004\x0051\x0001\x0004\x0005\x0068\x0001\x0067\x0001\x0068"+ + "\x0003\x0067\x0007\x0068\x0001\x0067\x0013\x0068\x0005\x004B\x0003\x0068\x0006\x004B\x0002\x004B\x0006\x004A\x0005\x004A"+ + "\x0003\x0064\x0002\x0041\x0007\x0063\x001E\x0041\x0004\x0063\x0005\x0041\x0005\x005F\x0006\x005D\x0002\x005F\x0001\x005D"+ + "\x0004\x001D\x000B\x0066\x000A\x0051\x000C\x0066\x000A\x007D\x000D\x007C\x0001\x0065\x0002\x007C\x0001\x007B\x0003\x006A"+ + "\x0001\x000B\x0002\x006A\x0005\x0071\x0004\x006A\x0004\x0072\x0001\x0071\x0003\x0072\x0001\x0071\x0005\x0072\x0002\x0038"+ + "\x0001\x003B\x0002\x0038\x0001\x003B\x0001\x0038\x0002\x003B\x0001\x0038\x0001\x003B\x000A\x0038\x0001\x003B\x0004\x0005"+ + "\x0001\x006C\x0001\x006B\x0001\x006D\x0001\x000A\x0003\x0075\x0001\x006D\x0002\x0075\x0001\x0061\x0002\x0062\x0002\x0075"+ + "\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0003\x000A\x0001\x0075\x0002\x000A\x0001\x0075"+ + "\x0001\x000A\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075"+ + "\x0001\x000A\x0001\x003E\x0002\x003A\x0001\x003E\x0001\x003A\x0002\x003E\x0004\x003A\x0001\x003E\x0007\x003A\x0001\x003E"+ + "\x0004\x003A\x0001\x003E\x0004\x003A\x0001\x0075\x0001\x000A\x0001\x0075\x000A\x0019\x0001\x002F\x0011\x0019\x0001\x002F"+ + "\x0003\x001A\x0001\x002F\x0003\x0019\x0001\x002F\x0001\x0019\x0002\x0002\x0002\x0019\x0001\x002F\x000D\x005C\x0004\x0027"+ + "\x0004\x002C\x0001\x0050\x0001\x002E\x0008\x0050\x0007\x002C\x0006\x0075\x0004\x0015\x0001\x0017\x001F\x0015\x0001\x0017"+ + "\x0004\x0015\x0015\x0045\x0001\x0079\x0009\x0045\x0011\x0016\x0005\x0045\x0001\x0007\x000A\x002D\x0005\x0045\x0006\x0044"+ + "\x0004\x003E\x0001\x003F\x0001\x0016\x0005\x005B\x000A\x0059\x000F\x005B\x0001\x003C\x0003\x0039\x000C\x0058\x0001\x0009"+ + "\x0009\x0026\x0001\x002A\x0005\x0026\x0004\x005A\x000B\x0029\x0002\x000C\x0009\x0026\x0001\x002A\x0019\x0026\x0001\x002A"+ + "\x0004\x0009\x0004\x0026\x0002\x002A\x0002\x0055\x0001\x0010\x0005\x0055\x002A\x0010\u1900\x0000\u016e\x00CE\x0002\x0000"+ + "\x006A\x00CE\x0026\x0000\x0007\x008A\x000C\x0000\x0005\x008A\x0005\x0000\x0001\x008E\x0001\x00CB\x000A\x008E\x0001\x0000"+ + "\x000D\x008E\x0001\x0000\x0005\x008E\x0001\x0000\x0001\x008E\x0001\x0000\x0002\x008E\x0001\x0000\x0002\x008E\x0001\x0000"+ + "\x000A\x008E\x0062\x008A\x0021\x0000\u016b\x008A\x0012\x0000\x0040\x008A\x0002\x0000\x0036\x008A\x0028\x0000\x000C\x008A"+ + "\x0004\x0000\x0010\x00CB\x0001\x0084\x0002\x0000\x0001\x0083\x0001\x0084\x000B\x0000\x0007\x00CB\x000C\x0000\x0002\x0086"+ + "\x0018\x0000\x0003\x0086\x0001\x0084\x0001\x0000\x0001\x0085\x0001\x0000\x0001\x0084\x0001\x0083\x001A\x0000\x0005\x008A"+ + "\x0001\x0000\x0087\x008A\x0002\x0000\x0001\x007F\x0007\x0000\x0001\x0085\x0004\x0000\x0001\x0084\x0001\x0000\x0001\x0085"+ + "\x0001\x0000\x000A\x0080\x0001\x0083\x0001\x0084\x0005\x0000\x001A\x008A\x0004\x0000\x0001\x0086\x0001\x0000\x001A\x008A"+ + "\x000B\x0000\x0038\x00CC\x0002\x00CB\x001F\x008F\x0003\x0000\x0006\x008F\x0002\x0000\x0006\x008F\x0002\x0000\x0006\x008F"+ + "\x0002\x0000\x0003\x008F\x001C\x0000\x0003\x007F\x0004\x0000"; + + /** + * Translates characters to character classes + */ + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = + "\x0002\x0000\x0016\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + + "\x0001\x0007\x0002\x0001\x0001\x0002\x0001\x0008\x0004\x0002\x0003\x0003\x0002\x0001\x0004\x0002" + + "\x0003\x0003\x0001\x0001\x0011\x0000\x0001\x0002\x0001\x0000\x0001\x0002\x000A\x0000\x0001\x0003" + + "\x0011\x0000\x0001\x0002\x001B\x0000\x0001\x0002\x000B\x0000\x0006\x0002\x0002\x0000\x0003\x0003" + + "\x0001\x0002\x0001\x0003\x0005\x0000\x0005\x0002\x0001\x0000\x0002\x0003\x004A\x0000\x001A\x0002" + + "\x0003\x0000\x0005\x0002\x001A\x0000\x0004\x0003\x0005\x0000\x001A\x0002\x0002\x0000\x0004\x0002" + + "\x001A\x0000\x0004\x0003\x0003\x0000\x0001\x0001\x000B\x0000\x0001\x0009\x0001\x0000\x0007\x000A" + + "\x0004\x0002\x0001\x000A\x0001\x0002\x0002\x000A\x0001\x0002\x0006\x000A\x0001\x0002\x0004\x000A" + + "\x0001\x0002\x0004\x000A\x0002\x0002\x0002\x000A\x0004\x0002\x0001\x000A\x0001\x0002\x0003\x000A" + + "\x0001\x0002\x0002\x0000\x0001\x0002\x0001\x0000\x0002\x0002\x0007\x000A\x0004\x0000\x0001\x000A" + + "\x0001\x0000\x0002\x000A\x0001\x0000\x0006\x000A\x0001\x0000\x0004\x000A\x0001\x0000\x0004\x000A" + + "\x0002\x0000\x0002\x000A\x0004\x0000\x0001\x000A\x0001\x0000\x0003\x000A\x0002\x0000\x0002\x0003" + + "\x0008\x0000\x0001\x000A\x002E\x0002\x0001\x0000\x0003\x0002\x002F\x0000\x0002\x0003\x002A\x0000" + + "\x0012\x000B\x0001\x000C\x0002\x000B\x0003\x000C\x0001\x000B\x0001\x000C\x0001\x000B\x0003\x000C" + + "\x0002\x000B\x0001\x000C\x0001\x000B\x0003\x000D\x0007\x000C\x0004\x0002\x0009\x000C\x0001\x0002" + + "\x0004\x000C\x0002\x0002\x0002\x000C\x0001\x0002\x0001\x0000\x0001\x0002\x0003\x000C\x0001\x0002" + + "\x0002\x0000\x0002\x0002\x0001\x0000\x0001\x000B\x0001\x000C\x0001\x000B\x0008\x000C\x0004\x0000" + + "\x0009\x000C\x0001\x0000\x0004\x000C\x0002\x0000\x0002\x000C\x0002\x0000\x0003\x000C\x0001\x0000" + + "\x0003\x0003\x000D\x0000\x0003\x000D\x0001\x000B\x001A\x0002\x0001\x0000\x0006\x0002\x0001\x000B" + + "\x001E\x0000\x0003\x0003\x000D\x0000\x0007\x0009\x0004\x0000\x0001\x0009\x0001\x0000\x0002\x0009" + + "\x0001\x0000\x0006\x0009\x0001\x0000\x0004\x0009\x0001\x0000\x0004\x0009\x0002\x0000\x0002\x0009" + + "\x0004\x0000\x0001\x0009\x0001\x0000\x0003\x0009\x0001\x0000\x0009\x000B\x0001\x000C\x0002\x000B" + + "\x0019\x000C\x0002\x000D\x0001\x0000\x0002\x000D\x0001\x0000\x0002\x000D\x0001\x0000\x0001\x000D" + + "\x0014\x0002\x0001\x0000\x0004\x0002\x0002\x0000\x0001\x0002\x0001\x0000\x0019\x000C\x0019\x0000" + + "\x0002\x0003\x0010\x0000\x0013\x0002\x0001\x0000\x0005\x0002\x0018\x0000\x0002\x0003\x000D\x0000" + + "\x0001\x0009\x001F\x0000\x0001\x000D\x0003\x0000\x000E\x0002\x0015\x0000\x0003\x0002\x001A\x0000" + + "\x0003\x000A\x0010\x0000\x000D\x0002\x0015\x0000\x0003\x0002\x0010\x0000\x0003\x0003\x0025\x0000" + + "\x0001\x000D\x000A\x0002\x001A\x0000\x0002\x0002\x0001\x0000\x0001\x000D\x0004\x0000\x0001\x000D" + + "\x0007\x0000\x0001\x0002\x0001\x0000\x0001\x000D\x0010\x0000\x000A\x000B\x0001\x000C\x0001\x000B" + + "\x0001\x000C\x0002\x000B\x0004\x000C\x000C\x0000\x000A\x0002\x001A\x0000\x0002\x0002\x000C\x0000" + + "\x0001\x000B\x0002\x0003\x0031\x0000\x0001\x000D\x0006\x0002\x002E\x0000\x0002\x0002\x0005\x0000" + + "\x0001\x000D\x0008\x0000\x0001\x000C\x000C\x0000\x0006\x0002\x0050\x0000\x0001\x000D\x0005\x0002" + + "\x0036\x0000\x0001\x000D\x0018\x0000\x0005\x0002\x0050\x0000\x0003\x0002\x0035\x0000\x0001\x000E" + + "\x0001\x0000\x0001\x000D\x0007\x0000\x0001\x000D\x000E\x0000\x0003\x0002\x004F\x0000\x0001\x0002" + + "\x004C\x0000\x0001\x000D\x0017\x0000\x0001\x0002\x0069\x0000\x0007\x000E\x0004\x0000\x0001\x000E" + + "\x0001\x0000\x0002\x000E\x0001\x0000\x0006\x000E\x0001\x0000\x0004\x000E\x0001\x0000\x0004\x000E" + + "\x0002\x0000\x0002\x000E\x0004\x0000\x0001\x000E\x0001\x0000\x0003\x000E\x0001\x0000\x0001\x000D" + + "\x006A\x0000\x0001\x000E\x001F\x0000\x0001\x000D\x0052\x0000\x0001\x000D\u0264\x0000"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[3116]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private const string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x00CF\x0000\u019e\x0000\u026d\x0000\u033c\x0000\u040b\x0000\u04da\x0000\u05a9" + + "\x0000\u0678\x0000\u0747\x0000\u0816\x0000\u08e5\x0000\u09b4\x0000\u0a83\x0000\u0b52\x0000\u0c21" + + "\x0000\u0cf0\x0000\u0dbf\x0000\u0e8e\x0000\u0f5d\x0000\u102c\x0000\u10fb\x0000\u11ca\x0000\u1299" + + "\x0000\u1368\x0000\u1437\x0000\u1506\x0000\u15d5\x0000\u16a4\x0000\u1773\x0000\u1842\x0000\u1911" + + "\x0000\u19e0\x0000\u1aaf\x0000\u1b7e\x0000\u1c4d\x0000\u1d1c\x0000\u1deb\x0000\u1eba\x0000\u1f89" + + "\x0000\u2058\x0000\u2127\x0000\u21f6\x0000\u22c5\x0000\u2394\x0000\u2463\x0000\u2532\x0000\u2601" + + "\x0000\u26d0\x0000\u279f\x0000\u286e\x0000\u293d\x0000\u2a0c\x0000\u026d\x0000\u033c\x0000\u2adb" + + "\x0000\u2baa\x0000\u05a9\x0000\u0678\x0000\u0747\x0000\u0816\x0000\u2c79\x0000\u2d48\x0000\u2e17" + + "\x0000\u2ee6\x0000\u0c21\x0000\u2fb5\x0000\u3084\x0000\u3153\x0000\u3222\x0000\u32f1\x0000\u33c0" + + "\x0000\u348f\x0000\u04da\x0000\u355e\x0000\u362d\x0000\u0a83\x0000\u36fc\x0000\u37cb\x0000\u389a" + + "\x0000\u3969\x0000\u3a38\x0000\u3b07\x0000\u3bd6\x0000\u3ca5\x0000\u3d74\x0000\u3e43\x0000\u3f12" + + "\x0000\u3fe1\x0000\u40b0\x0000\u417f\x0000\u424e\x0000\u431d\x0000\u43ec\x0000\u44bb\x0000\u458a" + + "\x0000\u4659\x0000\u4728\x0000\u47f7\x0000\u15d5\x0000\u48c6\x0000\u4995\x0000\u4a64\x0000\u4b33" + + "\x0000\u4c02\x0000\u4cd1\x0000\u4da0\x0000\u4e6f\x0000\u4f3e\x0000\u500d\x0000\u50dc\x0000\u51ab" + + "\x0000\u527a\x0000\u5349\x0000\u5418\x0000\u1911\x0000\u54e7\x0000\u55b6\x0000\u19e0\x0000\u5685" + + "\x0000\u5754\x0000\u5823\x0000\u58f2\x0000\u59c1\x0000\u5a90\x0000\u5b5f\x0000\u5c2e\x0000\u5cfd" + + "\x0000\u5dcc\x0000\u5e9b\x0000\u5f6a\x0000\u6039\x0000\u6108\x0000\u61d7\x0000\u62a6\x0000\u6375" + + "\x0000\u6444\x0000\u6513\x0000\u65e2\x0000\u66b1\x0000\u6780\x0000\u684f\x0000\u691e\x0000\u69ed" + + "\x0000\u6abc\x0000\u6b8b\x0000\u6c5a\x0000\u6d29\x0000\u6df8\x0000\u6ec7\x0000\u6f96\x0000\u7065" + + "\x0000\u7134\x0000\u21f6\x0000\u7203\x0000\u72d2\x0000\u73a1\x0000\u7470\x0000\u753f\x0000\u760e" + + "\x0000\u76dd\x0000\u77ac\x0000\u787b\x0000\u794a\x0000\u7a19\x0000\u7ae8\x0000\u7bb7\x0000\u7c86" + + "\x0000\u7d55\x0000\u7e24\x0000\u7ef3\x0000\u7fc2\x0000\u8091\x0000\u8160\x0000\u822f\x0000\u82fe" + + "\x0000\u83cd\x0000\u849c\x0000\u856b\x0000\u863a\x0000\u8709\x0000\u87d8\x0000\u88a7\x0000\u8976" + + "\x0000\u8a45\x0000\u8b14\x0000\u8be3\x0000\u8cb2\x0000\u8d81\x0000\u8e50\x0000\u8f1f\x0000\u8fee" + + "\x0000\u90bd\x0000\u918c\x0000\u925b\x0000\u932a\x0000\u93f9\x0000\u94c8\x0000\u9597\x0000\u9666" + + "\x0000\u9735\x0000\u9804\x0000\u98d3\x0000\u99a2\x0000\u9a71\x0000\u9b40\x0000\u9c0f\x0000\u9cde" + + "\x0000\u9dad\x0000\u9e7c\x0000\u9f4b\x0000\ua01a\x0000\ua0e9\x0000\ua1b8\x0000\ua287\x0000\ua356" + + "\x0000\ua425\x0000\ua4f4\x0000\ua5c3\x0000\ua692\x0000\ua761\x0000\ua830\x0000\ua8ff\x0000\ua9ce" + + "\x0000\uaa9d\x0000\uab6c\x0000\uac3b\x0000\uad0a\x0000\uadd9\x0000\uaea8\x0000\uaf77\x0000\ub046" + + "\x0000\ub115\x0000\ub1e4\x0000\ub2b3\x0000\ub382\x0000\ub451\x0000\ub520\x0000\ub5ef\x0000\ub6be" + + "\x0000\ub78d\x0000\ub85c\x0000\ub92b\x0000\ub9fa\x0000\ubac9\x0000\ubb98\x0000\ubc67\x0000\ubd36" + + "\x0000\ube05\x0000\ubed4\x0000\ubfa3\x0000\uc072\x0000\uc141\x0000\uc210\x0000\uc2df\x0000\uc3ae" + + "\x0000\uc47d\x0000\uc54c\x0000\uc61b\x0000\uc6ea\x0000\uc7b9\x0000\uc888\x0000\uc957\x0000\uca26" + + "\x0000\ucaf5\x0000\ucbc4\x0000\ucc93\x0000\ucd62\x0000\uce31\x0000\ucf00\x0000\ucfcf\x0000\ud09e" + + "\x0000\ud16d\x0000\ud23c\x0000\ud30b\x0000\ud3da\x0000\ud4a9\x0000\ud578\x0000\ud647\x0000\ud716" + + "\x0000\ud7e5\x0000\ud8b4\x0000\ud983\x0000\uda52\x0000\udb21\x0000\udbf0\x0000\udcbf\x0000\udd8e" + + "\x0000\ude5d\x0000\udf2c\x0000\udffb\x0000\ue0ca\x0000\ue199\x0000\ue268\x0000\ue337\x0000\ue406" + + "\x0000\ue4d5\x0000\ue5a4\x0000\ue673\x0000\ue742\x0000\ue811\x0000\ue8e0\x0000\ue9af\x0000\uea7e" + + "\x0000\ueb4d\x0000\uec1c\x0000\ueceb\x0000\uedba\x0000\uee89\x0000\uef58\x0000\uf027\x0000\uf0f6" + + "\x0000\uf1c5\x0000\uf294\x0000\uf363\x0000\uf432\x0000\uf501\x0000\uf5d0\x0000\uf69f\x0000\uf76e" + + "\x0000\uf83d\x0000\uf90c\x0000\uf9db\x0000\ufaaa\x0000\ufb79\x0000\ufc48\x0000\ufd17\x0000\ufde6" + + "\x0000\ufeb5\x0000\uff84\x0001\x0053\x0001\u0122\x0001\u01f1\x0001\u02c0\x0001\u038f\x0001\u045e" + + "\x0001\u052d\x0001\u05fc\x0001\u06cb\x0001\u079a\x0001\u0869\x0001\u0938\x0001\u0a07\x0001\u0ad6" + + "\x0001\u0ba5\x0001\u0c74\x0001\u0d43\x0001\u0e12\x0001\u0ee1\x0001\u0fb0\x0001\u107f\x0001\u114e" + + "\x0001\u121d\x0001\u12ec\x0001\u13bb\x0001\u148a\x0001\u1559\x0001\u1628\x0001\u16f7\x0001\u17c6" + + "\x0001\u1895\x0001\u1964\x0001\u1a33\x0001\u1b02\x0001\u1bd1\x0001\u1ca0\x0001\u1d6f\x0001\u1e3e" + + "\x0001\u1f0d\x0001\u1fdc\x0001\u20ab\x0001\u217a\x0001\u2249\x0001\u2318\x0001\u23e7\x0001\u24b6" + + "\x0001\u2585\x0001\u2654\x0001\u2723\x0001\u27f2\x0001\u28c1\x0001\u2990\x0001\u2a5f\x0001\u2b2e" + + "\x0001\u2bfd\x0001\u2ccc\x0000\u019e\x0001\u2d9b\x0001\u2e6a\x0001\u2f39\x0001\u3008\x0001\u30d7" + + "\x0001\u31a6\x0001\u3275\x0001\u3344\x0001\u3413\x0001\u34e2\x0001\u35b1\x0001\u3680\x0001\u374f" + + "\x0001\u381e\x0001\u38ed\x0001\u39bc\x0001\u3a8b\x0001\u3b5a\x0001\u3c29\x0001\u3cf8\x0001\u3dc7" + + "\x0001\u3e96\x0001\u3f65\x0001\u4034\x0001\u4103\x0001\u41d2\x0001\u42a1\x0001\u4370\x0001\u443f" + + "\x0001\u450e\x0001\u45dd\x0001\u46ac\x0001\u477b\x0001\u484a\x0001\u4919\x0001\u49e8\x0001\u4ab7" + + "\x0001\u4b86\x0001\u4c55\x0001\u4d24\x0001\u4df3\x0001\u4ec2\x0001\u4f91\x0001\u5060\x0001\u512f" + + "\x0001\u51fe\x0001\u52cd\x0001\u539c\x0001\u546b\x0001\u553a\x0001\u5609\x0001\u56d8\x0001\u57a7" + + "\x0001\u5876\x0001\u5945\x0001\u5a14\x0001\u5ae3\x0001\u5bb2\x0001\u5c81\x0001\u5d50\x0001\u5e1f" + + "\x0001\u5eee\x0001\u5fbd\x0001\u608c\x0001\u615b\x0001\u622a\x0001\u62f9\x0001\u63c8\x0001\u6497" + + "\x0001\u6566\x0001\u6635\x0001\u6704\x0001\u67d3\x0001\u68a2\x0001\u6971\x0001\u6a40\x0001\u6b0f" + + "\x0001\u6bde\x0001\u6cad\x0001\u6d7c\x0001\u6e4b\x0001\u6f1a\x0001\u6fe9\x0001\u70b8\x0001\u7187" + + "\x0001\u7256\x0001\u7325\x0001\u73f4\x0001\u74c3\x0001\u7592\x0001\u7661\x0001\u7730\x0001\u77ff" + + "\x0001\u78ce\x0001\u799d\x0001\u7a6c\x0001\u7b3b\x0001\u7c0a\x0001\u7cd9\x0001\u7da8\x0001\u7e77" + + "\x0001\u7f46\x0001\u8015\x0001\u80e4\x0001\u81b3\x0001\u8282\x0001\u8351\x0001\u8420\x0001\u84ef" + + "\x0001\u85be\x0001\u868d\x0001\u875c\x0001\u882b\x0001\u88fa\x0001\u89c9\x0001\u8a98\x0001\u8b67" + + "\x0001\u8c36\x0001\u8d05\x0001\u8dd4\x0001\u8ea3\x0001\u8f72\x0001\u9041\x0001\u9110\x0001\u91df" + + "\x0001\u92ae\x0001\u937d\x0001\u944c\x0001\u951b\x0001\u95ea\x0001\u96b9\x0001\u9788\x0001\u9857" + + "\x0001\u9926\x0001\u99f5\x0001\u9ac4\x0001\u9b93\x0001\u9c62\x0001\u9d31\x0001\u9e00\x0001\u9ecf" + + "\x0001\u9f9e\x0001\ua06d\x0001\ua13c\x0001\ua20b\x0001\ua2da\x0001\ua3a9\x0001\ua478\x0001\ua547" + + "\x0001\ua616\x0001\ua6e5\x0001\ua7b4\x0001\ua883\x0001\ua952\x0001\uaa21\x0001\uaaf0\x0001\uabbf" + + "\x0001\uac8e\x0001\uad5d\x0001\uae2c\x0001\uaefb\x0001\uafca\x0001\ub099\x0001\ub168\x0001\ub237" + + "\x0001\ub306\x0001\ub3d5\x0001\ub4a4\x0001\ub573\x0001\ub642\x0001\ub711\x0001\ub7e0\x0001\ub8af" + + "\x0001\ub97e\x0001\uba4d\x0001\ubb1c\x0001\ubbeb\x0001\ubcba\x0001\ubd89\x0001\ube58\x0001\ubf27" + + "\x0001\ubff6\x0001\uc0c5\x0001\uc194\x0001\uc263\x0001\uc332\x0001\uc401\x0001\uc4d0\x0001\uc59f" + + "\x0001\uc66e\x0001\uc73d\x0001\uc80c\x0001\uc8db\x0001\uc9aa\x0001\uca79\x0001\ucb48\x0001\ucc17" + + "\x0001\ucce6\x0001\ucdb5\x0001\uce84\x0001\ucf53\x0001\ud022\x0001\ud0f1\x0001\ud1c0\x0001\ud28f" + + "\x0001\ud35e\x0001\ud42d\x0001\ud4fc\x0001\ud5cb\x0001\ud69a\x0001\ud769\x0001\ud838\x0001\ud907" + + "\x0001\ud9d6\x0001\udaa5\x0001\udb74\x0001\udc43\x0001\udd12\x0001\udde1\x0001\udeb0\x0001\udf7f" + + "\x0001\ue04e\x0001\ue11d\x0001\ue1ec\x0001\ue2bb\x0001\ue38a\x0001\ue459\x0001\ue528\x0001\ue5f7" + + "\x0001\ue6c6\x0001\ue795\x0001\ue864\x0001\ue933\x0001\uea02\x0001\uead1\x0001\ueba0\x0001\uec6f" + + "\x0001\ued3e\x0001\uee0d\x0001\ueedc\x0001\uefab\x0001\uf07a\x0001\uf149\x0001\uf218\x0001\uf2e7" + + "\x0001\uf3b6\x0001\uf485\x0001\uf554\x0001\uf623\x0001\uf6f2\x0001\uf7c1\x0001\uf890\x0000\u019e" + + "\x0000\u026d\x0000\u033c\x0000\u2adb\x0000\u2baa\x0000\u05a9\x0000\u0678\x0000\u0747\x0000\u0816" + + "\x0000\u2c79\x0000\u2d48\x0000\u2e17\x0000\u2ee6\x0000\u0c21\x0000\u2fb5\x0000\u3084\x0000\u3153" + + "\x0000\u1368\x0000\u3222\x0000\u3222\x0000\u32f1\x0000\u33c0\x0000\u1368\x0000\u019e\x0000\u6513" + + "\x0000\u1aaf\x0001\uf95f\x0000\u1c4d\x0000\u66b1\x0000\u6780\x0001\ufa2e\x0000\u1911\x0000\u684f" + + "\x0000\u55b6\x0001\ufafd\x0001\ufbcc\x0001\ufc9b\x0001\u4c55\x0000\uc141\x0001\ufd6a\x0001\u2e6a" + + "\x0001\ufe39\x0001\uff08\x0001\uffd7\x0002\x00A6\x0002\u0175\x0002\u0244\x0002\u0313\x0002\u03e2" + + "\x0002\u04b1\x0002\u0580\x0001\u34e2\x0002\u064f\x0002\u071e\x0002\u07ed\x0002\u08bc\x0002\u098b" + + "\x0002\u0a5a\x0002\u0b29\x0002\u0bf8\x0002\u0cc7\x0002\u0d96\x0002\u0e65\x0002\u0f34\x0002\u1003" + + "\x0002\u10d2\x0002\u11a1\x0002\u1270\x0002\u133f\x0002\u140e\x0002\u11a1\x0002\u14dd\x0002\u15ac" + + "\x0002\u167b\x0002\u174a\x0002\u1819\x0002\u18e8\x0002\u19b7\x0002\u1a86\x0000\ucc93\x0002\u1b55" + + "\x0000\u1911\x0001\u7661\x0000\udcbf\x0002\u1c24\x0001\u5876\x0002\u1cf3\x0002\u1dc2\x0002\u1e91" + + "\x0002\u1f60\x0002\u202f\x0002\u20fe\x0002\u21cd\x0002\u229c\x0002\u236b\x0002\u243a\x0001\u5eee" + + "\x0002\u2509\x0002\u25d8\x0002\u26a7\x0002\u2776\x0002\u2845\x0002\u2914\x0002\u29e3\x0002\u2ab2" + + "\x0002\u2b81\x0002\u2c50\x0002\u2d1f\x0002\u2dee\x0002\u2ebd\x0002\u2f8c\x0002\u305b\x0002\u312a" + + "\x0002\u31f9\x0002\u305b\x0002\u32c8\x0002\u3397\x0002\u3466\x0002\u3535\x0002\u3604\x0002\u36d3" + + "\x0002\u37a2\x0002\u3871\x0002\u3940\x0002\u3a0f\x0002\u3ade\x0002\u3bad\x0002\u3c7c\x0002\u3d4b" + + "\x0002\u3e1a\x0002\u3ee9\x0002\u3fb8\x0002\u4087\x0002\u4156\x0002\u4225\x0002\u42f4\x0002\u43c3" + + "\x0002\u4492\x0002\u4561\x0002\u4630\x0002\u46ff\x0002\u47ce\x0002\u489d\x0002\u496c\x0002\u4a3b" + + "\x0002\u4b0a\x0002\u4bd9\x0002\u4ca8\x0002\u4d77\x0002\u4e46\x0002\u4f15\x0002\u4fe4\x0002\u50b3" + + "\x0002\u5182\x0002\u5251\x0002\u5320\x0002\u53ef\x0002\u54be\x0002\u558d\x0002\u565c\x0002\u572b" + + "\x0002\u57fa\x0002\u58c9\x0002\u5998\x0002\u5a67\x0002\u5b36\x0002\u5c05\x0002\u5cd4\x0002\u5da3" + + "\x0002\u5e72\x0002\u5f41\x0002\u6010\x0002\u60df\x0002\u61ae\x0002\u627d\x0002\u634c\x0002\u641b" + + "\x0002\u64ea\x0002\u65b9\x0002\u6688\x0002\u6757\x0002\u6826\x0002\u68f5\x0002\u69c4\x0002\u6a93" + + "\x0002\u6b62\x0002\u6c31\x0002\u6d00\x0002\u6dcf\x0002\u6e9e\x0002\u6f6d\x0002\u703c\x0002\u710b" + + "\x0002\u71da\x0002\u72a9\x0002\u7378\x0002\u7447\x0002\u7516\x0002\u75e5\x0002\u76b4\x0002\u7783" + + "\x0002\u7852\x0002\u7921\x0002\u79f0\x0002\u7abf\x0002\u7b8e\x0002\u7c5d\x0002\u7d2c\x0002\u7dfb" + + "\x0002\u7eca\x0002\u7f99\x0002\u8068\x0002\u8137\x0002\u8206\x0002\u82d5\x0002\u83a4\x0002\u8473" + + "\x0002\u8542\x0002\u8611\x0002\u86e0\x0002\u87af\x0002\u887e\x0002\u894d\x0002\u8a1c\x0002\u8aeb" + + "\x0002\u8bba\x0002\u8c89\x0002\u8d58\x0002\u8e27\x0002\u8ef6\x0002\u8fc5\x0002\u9094\x0002\u9163" + + "\x0002\u9232\x0002\u9301\x0002\u93d0\x0002\u949f\x0002\u956e\x0002\u963d\x0002\u970c\x0002\u97db" + + "\x0002\u98aa\x0002\u9979\x0002\u9a48\x0002\u9b17\x0002\u9be6\x0002\u9cb5\x0002\u9d84\x0002\u9e53" + + "\x0002\u9f22\x0002\u9ff1\x0002\ua0c0\x0002\ua18f\x0002\ua25e\x0002\ua32d\x0002\ua3fc\x0002\ua4cb" + + "\x0002\ua59a\x0002\ua669\x0002\ua738\x0002\ua807\x0002\ua8d6\x0002\ua9a5\x0000\u8a45\x0000\u8b14" + + "\x0000\u8be3\x0000\u8cb2\x0000\u8d81\x0000\u8e50\x0000\u8f1f\x0000\u8fee\x0000\u90bd\x0000\u32f1" + + "\x0000\u19e0\x0000\u54e7\x0000\ub78d\x0000\ub85c\x0000\ub92b\x0000\ub9fa\x0000\ubac9\x0000\ubb98" + + "\x0000\ubc67\x0000\ubd36\x0000\ube05\x0000\ubed4\x0000\ubfa3\x0000\uc072\x0000\uc210\x0000\uc2df" + + "\x0000\uc3ae\x0000\uc47d\x0000\uc54c\x0000\uc61b\x0000\uc6ea\x0000\uc7b9\x0000\uc888\x0000\uc957" + + "\x0000\uca26\x0000\ucaf5\x0000\ucbc4\x0002\uaa74\x0002\uab43\x0002\uac12\x0002\uace1\x0002\uadb0" + + "\x0002\uae7f\x0002\uaf4e\x0002\ub01d\x0002\ub0ec\x0002\ub1bb\x0002\ub28a\x0002\ub359\x0002\ub428" + + "\x0002\ub4f7\x0002\ub5c6\x0002\ub695\x0002\ub764\x0002\ub833\x0002\ub902\x0002\ub9d1\x0002\ubaa0" + + "\x0002\ubb6f\x0002\ubc3e\x0002\ubd0d\x0002\ubddc\x0002\ubeab\x0002\ubf7a\x0002\uc049\x0002\uc118" + + "\x0002\u0cc7\x0002\uc1e7\x0002\uc2b6\x0002\uc385\x0002\uc454\x0002\uc523\x0002\uc5f2\x0002\uc6c1" + + "\x0002\uc790\x0002\uc85f\x0000\ud30b\x0000\ud3da\x0000\ud4a9\x0000\ud578\x0000\ud647\x0000\ud716" + + "\x0000\ud7e5\x0000\ud8b4\x0000\ud983\x0000\uda52\x0000\udb21\x0000\udbf0\x0000\udd8e\x0000\ude5d" + + "\x0000\udf2c\x0000\udffb\x0000\ue0ca\x0000\ue199\x0000\ue268\x0000\ue337\x0000\ue406\x0000\ue4d5" + + "\x0000\ue5a4\x0000\ue673\x0000\ue742\x0002\uc92e\x0002\uc9fd\x0002\ucacc\x0002\ucb9b\x0002\ucc6a" + + "\x0002\ucd39\x0002\uce08\x0002\uced7\x0002\ucfa6\x0002\ud075\x0002\ud144\x0002\ud213\x0002\ud2e2" + + "\x0002\ud3b1\x0002\ud480\x0002\ud54f\x0002\ud61e\x0002\ud6ed\x0002\ud7bc\x0002\u2b81\x0002\ud88b" + + "\x0002\ud95a\x0002\uda29\x0002\udaf8\x0002\udbc7\x0002\udc96\x0002\udd65\x0002\ude34\x0002\udf03" + + "\x0002\udfd2\x0002\ue0a1\x0002\ue170\x0002\ue23f\x0002\ue30e\x0002\ue3dd\x0002\ue4ac\x0002\ue57b" + + "\x0002\ue64a\x0002\ue719\x0002\ue7e8\x0002\ue8b7\x0002\ue986\x0002\uea55\x0002\ueb24\x0002\uebf3" + + "\x0002\uecc2\x0002\ued91\x0002\uee60\x0002\uef2f\x0002\ueffe\x0002\uf0cd\x0002\uf19c\x0002\uf26b" + + "\x0002\uf33a\x0002\uf409\x0002\uf4d8\x0002\uf5a7\x0002\uf676\x0002\uf745\x0002\uf814\x0002\uf8e3" + + "\x0002\uf9b2\x0002\ufa81\x0002\ufb50\x0002\ufc1f\x0002\ufcee\x0002\ufdbd\x0002\ufe8c\x0002\uff5b" + + "\x0003\x002A\x0003\x00F9\x0003\u01c8\x0003\u0297\x0003\u0366\x0003\u0435\x0003\u0504\x0003\u05d3" + + "\x0003\u06a2\x0003\u0771\x0003\u0840\x0003\u090f\x0003\u09de\x0003\u0aad\x0003\u0b7c\x0003\u0c4b" + + "\x0003\u0d1a\x0003\u0de9\x0003\u0eb8\x0003\u0f87\x0003\u1056\x0003\u1125\x0003\u11f4\x0003\u12c3" + + "\x0003\u1392\x0003\u1461\x0003\u1530\x0003\u15ff\x0003\u16ce\x0003\u179d\x0003\u186c\x0003\u193b" + + "\x0003\u1a0a\x0003\u1ad9\x0003\u1ba8\x0003\u1c77\x0003\u1d46\x0003\u1e15\x0001\u2bfd\x0003\u1ee4" + + "\x0003\u1fb3\x0003\u2082\x0003\u2151\x0003\u2220\x0003\u22ef\x0003\u23be\x0003\u248d\x0003\u255c" + + "\x0003\u262b\x0003\u26fa\x0003\u27c9\x0003\u2898\x0003\u2967\x0003\u2a36\x0003\u2b05\x0003\u2bd4" + + "\x0003\u2ca3\x0003\u2d72\x0003\u2e41\x0003\u2f10\x0003\u2fdf\x0003\u30ae\x0003\u317d\x0003\u324c" + + "\x0003\u331b\x0003\u33ea\x0003\u34b9\x0003\u3588\x0003\u3657\x0003\u3726\x0003\u37f5\x0003\u38c4" + + "\x0003\u3993\x0003\u3a62\x0003\u3b31\x0003\u3c00\x0003\u3ccf\x0003\u3d9e\x0003\u3e6d\x0003\u3f3c" + + "\x0003\u400b\x0002\u098b\x0003\u40da\x0003\u41a9\x0003\u4278\x0003\u4347\x0003\u4416\x0003\u44e5" + + "\x0003\u45b4\x0003\u4683\x0003\u4752\x0003\u4821\x0003\u48f0\x0003\u49bf\x0003\u4a8e\x0003\u4b5d" + + "\x0003\u4c2c\x0003\u4cfb\x0003\u4dca\x0003\u4e99\x0003\u4f68\x0003\u5037\x0003\u5106\x0003\u51d5" + + "\x0003\u52a4\x0003\u5373\x0003\u5442\x0003\u5511\x0003\u55e0\x0003\u56af\x0003\u577e\x0003\u584d" + + "\x0003\u591c\x0003\u59eb\x0003\u5aba\x0003\u5b89\x0003\u5c58\x0003\u5d27\x0003\u5df6\x0003\u5ec5" + + "\x0003\u5f94\x0003\u6063\x0003\u6132\x0003\u6201\x0003\u62d0\x0003\u639f\x0003\u646e\x0003\u653d" + + "\x0002\u2845\x0003\u660c\x0003\u66db\x0003\u67aa\x0003\u6879\x0003\u6948\x0003\u6a17\x0003\u6ae6" + + "\x0003\u6bb5\x0003\u6c84\x0003\u6d53\x0003\u6e22\x0003\u6ef1\x0003\u6fc0\x0003\u708f\x0003\u715e" + + "\x0003\u722d\x0003\u72fc\x0003\u73cb\x0003\u749a\x0003\u7569\x0003\u7638\x0003\u7707\x0003\u77d6" + + "\x0003\u78a5\x0003\u7974\x0003\u7a43\x0003\u7b12\x0003\u7be1\x0003\u7cb0\x0003\u7d7f\x0003\u7e4e" + + "\x0003\u7f1d\x0003\u7fec\x0003\u80bb\x0003\u818a\x0003\u8259\x0003\u8328\x0003\u83f7\x0003\u84c6" + + "\x0003\u8595\x0003\u8664\x0003\u8733\x0003\u8802\x0003\u88d1\x0003\u89a0\x0003\u8a6f\x0003\u8b3e" + + "\x0003\u8c0d\x0003\u8cdc\x0003\u8dab\x0003\u8e7a\x0003\u8f49\x0003\u9018\x0003\u90e7\x0003\u91b6" + + "\x0003\u9285\x0003\u9354\x0003\u9423\x0003\u94f2\x0003\u95c1\x0003\u9690\x0003\u975f\x0003\u982e" + + "\x0003\u98fd\x0003\u99cc\x0003\u9a9b\x0003\u9b6a\x0003\u9c39\x0003\u9d08\x0003\u9dd7\x0003\u9ea6" + + "\x0003\u9f75\x0003\ua044\x0003\ua113\x0003\ua1e2\x0003\ua2b1\x0003\ua380\x0003\ua44f\x0003\ua51e" + + "\x0003\ua5ed\x0003\ua6bc\x0003\ua78b\x0003\ua85a\x0003\ua929\x0003\ua9f8\x0003\uaac7\x0003\uab96" + + "\x0003\uac65\x0003\uad34\x0003\uae03\x0003\uaed2\x0003\uafa1\x0003\ub070\x0003\ub13f\x0003\ub20e" + + "\x0003\ub2dd\x0003\ub3ac\x0003\ub47b\x0003\ub54a\x0003\ub619\x0003\ub6e8\x0003\ub7b7\x0003\ub886" + + "\x0003\ub955\x0003\uba24\x0003\ubaf3\x0003\ubbc2\x0003\ubc91\x0003\ubd60\x0003\ube2f\x0003\ubefe" + + "\x0003\ubfcd\x0003\uc09c\x0003\uc16b\x0003\uc23a\x0003\uc309\x0003\uc3d8\x0003\uc4a7\x0003\uc576" + + "\x0003\uc645\x0003\uc714\x0003\uc7e3\x0003\uc8b2\x0003\uc981\x0003\uca50\x0003\ucb1f\x0003\ucbee" + + "\x0003\uccbd\x0003\ucd8c\x0003\uce5b\x0003\ucf2a\x0003\ucff9\x0003\ud0c8\x0003\ud197\x0003\ud266" + + "\x0003\ud335\x0003\ud404\x0003\ud4d3\x0003\ud5a2\x0003\ud671\x0003\ud740\x0003\ud80f\x0003\ud8de" + + "\x0003\ud9ad\x0003\uda7c\x0003\udb4b\x0003\udc1a\x0003\udce9\x0003\uddb8\x0003\ude87\x0003\udf56" + + "\x0003\ue025\x0003\ue0f4\x0003\ue1c3\x0003\ue292\x0003\ue361\x0003\ue430\x0003\ue4ff\x0003\ue5ce" + + "\x0003\ue69d\x0003\ue76c\x0003\ue83b\x0003\ue90a\x0003\ue9d9\x0003\ueaa8\x0003\ueb77\x0003\uec46" + + "\x0003\ued15\x0003\uede4\x0003\ueeb3\x0003\uef82\x0003\uf051\x0003\uf120\x0003\uf1ef\x0003\uf2be" + + "\x0003\uf38d\x0003\uf45c\x0003\uf52b\x0003\uf5fa\x0003\uf6c9\x0003\uf798\x0003\uf867\x0003\uf936" + + "\x0003\ufa05\x0003\ufad4\x0003\ufba3\x0003\ufc72\x0003\ufd41\x0003\ufe10\x0003\ufedf\x0003\uffae" + + "\x0004\x007D\x0004\u014c\x0000\u348f\x0000\u04da\x0000\u355e\x0000\u362d\x0000\u0a83\x0000\u36fc" + + "\x0000\u37cb\x0000\u389a\x0000\u3969\x0000\u1437\x0000\u1437\x0000\u3a38\x0000\u3b07\x0000\u6c5a" + + "\x0001\u8015\x0004\u021b\x0000\u6ec7\x0003\u6d53\x0004\u02ea\x0004\u03b9\x0004\u0488\x0004\u0557" + + "\x0004\u0626\x0004\u06f5\x0004\u07c4\x0004\u0893\x0004\u0962\x0004\u0a31\x0004\u0b00\x0004\u0bcf" + + "\x0004\u0c9e\x0004\u0d6d\x0004\u0e3c\x0004\u0f0b\x0004\u0fda\x0004\u10a9\x0004\u1178\x0004\u1247" + + "\x0004\u1316\x0004\u13e5\x0004\u14b4\x0004\u1583\x0004\u1652\x0004\u1721\x0004\u17f0\x0004\u18bf" + + "\x0004\u198e\x0004\u1a5d\x0004\u1b2c\x0004\u1bfb\x0004\u1cca\x0004\u1d99\x0004\u1e68\x0004\u1f37" + + "\x0004\u2006\x0004\u20d5\x0004\u21a4\x0004\u2273\x0004\u2342\x0004\u2411\x0004\u24e0\x0004\u25af" + + "\x0004\u267e\x0004\u274d\x0004\u281c\x0004\u28eb\x0004\u29ba\x0004\u2a89\x0004\u2b58\x0004\u2c27" + + "\x0004\u2cf6\x0004\u2dc5\x0004\u2e94\x0004\u2f63\x0004\u3032\x0004\u3101\x0004\u31d0\x0004\u329f" + + "\x0004\u336e\x0004\u343d\x0004\u350c\x0001\ud769\x0004\u35db\x0004\u36aa\x0004\u3779\x0004\u3848" + + "\x0004\u3917\x0004\u39e6\x0004\u3ab5\x0004\u3b84\x0004\u3c53\x0004\u3d22\x0004\u3df1\x0004\u3ec0" + + "\x0004\u3f8f\x0004\u405e\x0004\u412d\x0004\u41fc\x0004\u42cb\x0004\u439a\x0004\u4469\x0004\u4538" + + "\x0004\u4607\x0004\u46d6\x0004\u47a5\x0004\u4874\x0004\u4943\x0004\u4a12\x0004\u4ae1\x0004\u4bb0" + + "\x0004\u4c7f\x0004\u4d4e\x0004\u4e1d\x0004\u4eec\x0004\u4fbb\x0004\u508a\x0004\u5159\x0004\u5228" + + "\x0004\u52f7\x0004\u53c6\x0004\u5495\x0004\u5564\x0004\u5633\x0004\u5702\x0004\u57d1\x0004\u58a0" + + "\x0004\u596f\x0004\u5a3e\x0004\u5b0d\x0004\u5bdc\x0004\u5cab\x0004\u5d7a\x0004\u5e49\x0004\u5f18" + + "\x0004\u5fe7\x0004\u60b6\x0004\u6185\x0004\u6254\x0004\u6323\x0004\u63f2\x0004\u64c1\x0004\u6590" + + "\x0004\u665f\x0004\u672e\x0004\u67fd\x0004\u68cc\x0004\u699b\x0004\u6a6a\x0004\u6b39\x0004\u6c08" + + "\x0004\u6cd7\x0004\u6da6\x0004\u6e75\x0002\u26a7\x0004\u6f44\x0004\u7013\x0004\u70e2\x0004\u71b1" + + "\x0004\u7280\x0004\u734f\x0004\u741e\x0004\u74ed\x0004\u75bc\x0004\u768b\x0004\u775a\x0004\u7829" + + "\x0004\u78f8\x0004\u79c7\x0004\u7a96\x0004\u7b65\x0004\u7c34\x0004\u7d03\x0004\u7dd2\x0004\u7ea1" + + "\x0004\u7f70\x0004\u803f\x0004\u810e\x0004\u81dd\x0004\u82ac\x0004\u837b\x0004\u844a\x0004\u8519" + + "\x0004\u85e8\x0004\u86b7\x0004\u8786\x0004\u8855\x0004\u8924\x0004\u89f3\x0004\u8ac2\x0004\u8b91" + + "\x0004\u8c60\x0004\u8d2f\x0004\u8dfe\x0004\u8ecd\x0004\u8f9c\x0004\u906b\x0004\u913a\x0004\u9209" + + "\x0004\u92d8\x0004\u93a7\x0004\u9476\x0004\u9545\x0000\uea7e\x0004\u9614\x0004\u96e3\x0004\u97b2" + + "\x0004\u9881\x0004\u9950\x0004\u9a1f\x0004\u9aee\x0004\u9bbd\x0004\u9c8c\x0004\u9d5b\x0004\u9e2a" + + "\x0004\u9ef9\x0004\u9fc8\x0004\ua097\x0004\ua166\x0004\ua235\x0004\ua304\x0004\ua3d3\x0004\ua4a2" + + "\x0004\ua571\x0004\ua640\x0004\ua70f\x0004\ua7de\x0004\ua8ad\x0004\ua97c\x0004\uaa4b\x0004\uab1a" + + "\x0004\uabe9\x0004\uacb8\x0004\uad87\x0004\uae56\x0004\uaf25\x0004\uaff4\x0004\ub0c3\x0004\ub192" + + "\x0004\ub261\x0004\ub330\x0004\ub3ff\x0004\ub4ce\x0004\ub59d\x0004\ub66c\x0004\ub73b\x0004\ub80a" + + "\x0004\ub8d9\x0004\ub9a8\x0004\uba77\x0004\ubb46\x0004\ubc15\x0004\ubce4\x0004\ubdb3\x0004\ube82" + + "\x0004\ubf51\x0004\uc020\x0004\uc0ef\x0004\uc1be\x0004\uc28d\x0004\uc35c\x0004\uc42b\x0004\uc4fa" + + "\x0004\uc5c9\x0004\uc698\x0004\uc767\x0004\uc836\x0004\uc905\x0004\uc9d4\x0004\ucaa3\x0004\ucb72" + + "\x0004\ucc41\x0004\ucd10\x0004\ucddf\x0004\uceae\x0004\ucf7d\x0004\ud04c\x0004\ud11b\x0004\ud1ea" + + "\x0004\ud2b9\x0004\ud388\x0004\ud457\x0004\ud526\x0004\ud5f5\x0004\ud6c4\x0004\ud793\x0004\ud862" + + "\x0004\ud931\x0004\uda00\x0004\udacf\x0004\udb9e\x0004\udc6d\x0004\udd3c\x0004\ude0b\x0004\udeda" + + "\x0004\udfa9\x0004\ue078\x0004\ue147\x0004\ue216\x0004\ue2e5\x0004\ue3b4\x0004\ue483\x0004\ue552" + + "\x0004\ue621\x0004\ue6f0\x0004\ue7bf\x0004\ue88e\x0004\ue95d\x0004\uea2c\x0004\ueafb\x0004\uebca" + + "\x0004\uec99\x0004\ued68\x0004\uee37\x0004\uef06\x0004\uefd5\x0004\uf0a4\x0004\uf173\x0004\uf242" + + "\x0004\uf311\x0004\uf3e0\x0004\uf4af\x0004\uf57e\x0004\uf64d\x0004\uf71c\x0004\uf7eb\x0004\uf8ba" + + "\x0004\uf989\x0004\ufa58\x0004\ufb27\x0004\ufbf6\x0004\ufcc5\x0004\ufd94\x0004\ufe63\x0004\uff32" + + "\x0005\x0001\x0005\x00D0\x0005\u019f\x0005\u026e\x0005\u033d\x0005\u040c\x0005\u04db\x0005\u05aa" + + "\x0005\u0679\x0005\u0748\x0005\u0817\x0005\u08e6\x0005\u09b5\x0005\u0a84\x0005\u0b53\x0005\u0c22" + + "\x0005\u0cf1\x0005\u0dc0\x0005\u0e8f\x0005\u0f5e\x0005\u102d\x0005\u10fc\x0005\u11cb\x0005\u129a" + + "\x0005\u1369\x0005\u1438\x0005\u1507\x0005\u15d6\x0005\u16a5\x0005\u1774\x0005\u1843\x0002\u1b55" + + "\x0005\u1912\x0005\u19e1\x0005\u1ab0\x0005\u1b7f\x0005\u1c4e\x0005\u1d1d\x0005\u1dec\x0005\u1ebb" + + "\x0005\u1f8a\x0005\u2059\x0005\u2128\x0005\u21f7\x0005\u22c6\x0005\u2395\x0005\u2464\x0005\u2533" + + "\x0005\u2602\x0005\u26d1\x0005\u27a0\x0005\u286f\x0005\u293e\x0005\u2a0d\x0005\u2adc\x0005\u2bab" + + "\x0005\u2c7a\x0005\u2d49\x0005\u2e18\x0005\u2ee7\x0005\u2fb6\x0005\u3085\x0005\u3154\x0005\u3223" + + "\x0005\u32f2\x0005\u33c1\x0005\u3490\x0005\u355f\x0005\u362e\x0005\u36fd\x0005\u37cc\x0005\u389b" + + "\x0005\u396a\x0005\u3a39\x0005\u3b08\x0005\u3bd7\x0005\u3ca6\x0005\u3d75\x0005\u3e44\x0005\u3f13" + + "\x0005\u3fe2\x0005\u40b1\x0005\u4180\x0005\u424f\x0005\u431e\x0005\u43ed\x0005\u44bc\x0005\u458b" + + "\x0005\u465a\x0005\u4729\x0005\u47f8\x0005\u48c7\x0005\u4996\x0005\u4a65\x0005\u4b34\x0005\u4c03" + + "\x0005\u4cd2\x0005\u4da1\x0005\u4e70\x0005\u4f3f\x0005\u500e\x0005\u50dd\x0005\u51ac\x0005\u527b" + + "\x0005\u534a\x0005\u5419\x0005\u54e8\x0005\u55b7\x0005\u5686\x0005\u5755\x0005\u5824\x0005\u58f3" + + "\x0005\u59c2\x0005\u5a91\x0005\u5b60\x0005\u5c2f\x0005\u5cfe\x0005\u5dcd\x0005\u5e9c\x0005\u5f6b" + + "\x0005\u603a\x0005\u6109\x0005\u61d8\x0005\u62a7\x0005\u6376\x0005\u6445\x0005\u6514\x0005\u65e3" + + "\x0005\u66b2\x0005\u6781\x0005\u6850\x0005\u691f\x0005\u69ee\x0005\u6abd\x0005\u6b8c\x0005\u6c5b" + + "\x0005\u6d2a\x0005\u6df9\x0005\u6ec8\x0005\u6f97\x0005\u7066\x0005\u7135\x0005\u7204\x0005\u72d3" + + "\x0005\u73a2\x0005\u7471\x0005\u7540\x0005\u760f\x0005\u76de\x0005\u77ad\x0005\u787c\x0005\u794b" + + "\x0005\u7a1a\x0005\u7ae9\x0005\u7bb8\x0005\u7c87\x0005\u7d56\x0005\u7e25\x0005\u7ef4\x0005\u7fc3" + + "\x0005\u8092\x0005\u8161\x0005\u8230\x0005\u82ff\x0005\u83ce\x0005\u849d\x0005\u856c\x0005\u863b" + + "\x0005\u870a\x0005\u87d9\x0005\u88a8\x0005\u8977\x0005\u8a46\x0005\u8b15\x0005\u8be4\x0005\u8cb3" + + "\x0005\u8d82\x0005\u8e51\x0005\u8f20\x0005\u8fef\x0005\u90be\x0005\u918d\x0005\u925c\x0005\u932b" + + "\x0005\u93fa\x0005\u94c9\x0005\u9598\x0005\u9667\x0005\u9736\x0005\u9805\x0005\u98d4\x0005\u99a3" + + "\x0005\u9a72\x0000\u019e\x0005\u9b41\x0005\u9c10\x0005\u9cdf\x0005\u9dae\x0005\u9e7d\x0005\u9f4c" + + "\x0005\ua01b\x0005\ua0ea\x0005\ua1b9\x0005\ua288\x0005\ua357\x0005\ua426\x0005\ua4f5\x0005\ua5c4" + + "\x0005\ua693\x0005\ua762\x0005\ua831\x0005\ua900\x0005\ua9cf\x0005\uaa9e\x0005\uab6d\x0005\uac3c" + + "\x0005\uad0b\x0005\uadda\x0005\uaea9\x0005\uaf78\x0005\ub047\x0005\ub116\x0005\ub1e5\x0005\ub2b4" + + "\x0005\ub383\x0005\ub452\x0005\ub521\x0005\ub5f0\x0005\ub6bf\x0005\ub78e\x0005\ub85d\x0005\ub92c" + + "\x0005\ub9fb\x0005\ubaca\x0005\ubb99\x0005\ubc68\x0005\ubd37\x0005\ube06\x0005\ubed5\x0005\ubfa4" + + "\x0005\uc073\x0005\uc142\x0005\uc211\x0005\uc2e0\x0005\uc3af\x0005\uc47e\x0005\uc54d\x0005\uc61c" + + "\x0005\uc6eb\x0005\uc7ba\x0005\uc889\x0005\uc958\x0005\uca27\x0005\ucaf6\x0005\ucbc5\x0005\ucc94" + + "\x0005\ucd63\x0005\uce32\x0005\ucf01\x0005\ucfd0\x0005\ud09f\x0005\ud16e\x0005\ud23d\x0005\ud30c" + + "\x0005\ud3db\x0005\ud4aa\x0005\ud579\x0005\ud648\x0005\ud717\x0005\ud7e6\x0005\ud8b5\x0005\ud984" + + "\x0005\uda53\x0005\udb22\x0005\udbf1\x0005\udcc0\x0005\udd8f\x0005\ude5e\x0005\udf2d\x0005\udffc" + + "\x0005\ue0cb\x0005\ue19a\x0005\ue269\x0005\ue338\x0005\ue407\x0005\ue4d6\x0005\ue5a5\x0005\ue674" + + "\x0005\ue743\x0005\ue812\x0005\ue8e1\x0005\ue9b0\x0005\uea7f\x0005\ueb4e\x0005\uec1d\x0005\uecec" + + "\x0005\uedbb\x0005\uee8a\x0005\uef59\x0005\uf028\x0005\uf0f7\x0005\uf1c6\x0005\uf295\x0005\uf364" + + "\x0005\uf433\x0005\uf502\x0005\uf5d1\x0005\uf6a0\x0005\uf76f\x0005\uf83e\x0005\uf90d\x0005\uf9dc" + + "\x0005\ufaab\x0005\ufb7a\x0005\ufc49\x0005\ufd18\x0005\ufde7\x0002\u2509\x0005\ufeb6\x0005\uff85" + + "\x0006\x0054\x0006\u0123\x0006\u01f2\x0006\u02c1\x0006\u0390\x0006\u045f\x0006\u052e\x0006\u05fd" + + "\x0006\u06cc\x0006\u079b\x0006\u086a\x0006\u0939\x0006\u0a08\x0006\u0ad7\x0006\u0ba6\x0006\u0c75" + + "\x0006\u0d44\x0006\u0e13\x0006\u0ee2\x0006\u0fb1\x0006\u1080\x0006\u114f\x0006\u121e\x0006\u12ed" + + "\x0006\u13bc\x0006\u148b\x0006\u155a\x0006\u1629\x0006\u16f8\x0006\u17c7\x0006\u1896\x0006\u1965" + + "\x0006\u1a34\x0006\u1b03\x0006\u1bd2\x0006\u1ca1\x0006\u1d70\x0006\u1e3f\x0006\u1f0e\x0006\u1fdd" + + "\x0006\u20ac\x0006\u217b\x0006\u224a\x0006\u2319\x0006\u23e8\x0006\u24b7\x0006\u2586\x0006\u2655" + + "\x0006\u2724\x0006\u27f3\x0006\u28c2\x0006\u2991\x0006\u2a60\x0006\u2b2f\x0006\u2bfe\x0006\u2ccd" + + "\x0006\u2d9c\x0006\u2e6b\x0006\u2f3a\x0006\u3009\x0006\u30d8\x0006\u31a7\x0006\u3276\x0006\u3345" + + "\x0006\u3414\x0006\u34e3\x0006\u35b2\x0006\u3681\x0006\u3750\x0006\u381f\x0006\u38ee\x0006\u39bd" + + "\x0006\u3a8c\x0006\u3b5b\x0006\u3c2a\x0006\u3cf9\x0006\u3dc8\x0006\u3e97\x0006\u3f66\x0006\u4035" + + "\x0006\u4104\x0006\u41d3\x0006\u42a2\x0006\u4371\x0006\u4440\x0006\u450f\x0006\u45de\x0006\u46ad" + + "\x0006\u477c\x0006\u484b\x0006\u491a\x0006\u49e9\x0006\u4ab8\x0006\u4b87\x0006\u4c56\x0006\u4d25" + + "\x0006\u4df4\x0006\u4ec3\x0006\u4f92\x0006\u5061\x0006\u5130\x0006\u51ff\x0006\u52ce\x0006\u539d" + + "\x0006\u546c\x0006\u553b\x0006\u560a\x0006\u56d9\x0006\u57a8\x0006\u5877\x0006\u5946\x0006\u5a15" + + "\x0006\u5ae4\x0006\u5bb3\x0006\u5c82\x0006\u5d51\x0006\u5e20\x0006\u5eef\x0006\u5fbe\x0006\u608d" + + "\x0006\u615c\x0006\u622b\x0006\u62fa\x0006\u63c9\x0006\u6498\x0006\u6567\x0006\u6636\x0006\u6705" + + "\x0006\u67d4\x0006\u68a3\x0006\u6972\x0006\u6a41\x0006\u6b10\x0006\u6bdf\x0006\u6cae\x0006\u6d7d" + + "\x0006\u6e4c\x0006\u6f1b\x0006\u6fea\x0006\u70b9\x0006\u7188\x0006\u7257\x0006\u7326\x0006\u73f5" + + "\x0006\u74c4\x0006\u7593\x0006\u7662\x0006\u7731\x0006\u7800\x0006\u78cf\x0006\u799e\x0006\u7a6d" + + "\x0006\u7b3c\x0006\u7c0b\x0006\u7cda\x0006\u7da9\x0006\u7e78\x0006\u7f47\x0006\u8016\x0006\u80e5" + + "\x0006\u81b4\x0006\u8283\x0006\u8352\x0006\u8421\x0006\u84f0\x0006\u85bf\x0006\u868e\x0006\u875d" + + "\x0006\u882c\x0006\u88fb\x0006\u89ca\x0006\u8a99\x0006\u8b68\x0006\u8c37\x0006\u8d06\x0006\u8dd5" + + "\x0006\u8ea4\x0006\u8f73\x0006\u9042\x0006\u9111\x0006\u91e0\x0006\u92af\x0006\u937e\x0006\u944d" + + "\x0006\u951c\x0006\u95eb\x0006\u96ba\x0006\u9789\x0006\u9858\x0006\u9927\x0006\u99f6\x0006\u9ac5" + + "\x0006\u9b94\x0006\u9c63\x0006\u9d32\x0006\u9e01\x0006\u9ed0\x0006\u9f9f\x0006\ua06e\x0006\ua13d" + + "\x0006\ua20c\x0006\ua2db\x0006\ua3aa\x0006\ua479\x0006\ua548\x0006\ua617\x0006\ua6e6\x0006\ua7b5" + + "\x0006\ua884\x0006\ua953\x0006\uaa22\x0006\uaaf1\x0006\uabc0\x0006\uac8f\x0006\uad5e\x0006\uae2d" + + "\x0006\uaefc\x0006\uafcb\x0006\ub09a\x0006\ub169\x0006\ub238\x0006\ub307\x0006\ub3d6\x0006\ub4a5" + + "\x0006\ub574\x0006\ub643\x0006\ub712\x0006\ub7e1\x0006\ub8b0\x0006\ub97f\x0006\uba4e\x0006\ubb1d" + + "\x0006\ubbec\x0006\ubcbb\x0006\ubd8a\x0006\ube59\x0006\ubf28\x0006\ubff7\x0006\uc0c6\x0006\uc195" + + "\x0006\uc264\x0006\uc333\x0006\uc402\x0006\uc4d1\x0006\uc5a0\x0006\uc66f\x0006\uc73e\x0006\uc80d" + + "\x0006\uc8dc\x0006\uc9ab\x0006\uca7a\x0006\ucb49\x0006\ucc18\x0006\ucce7\x0006\ucdb6\x0006\uce85" + + "\x0006\ucf54\x0006\ud023\x0006\ud0f2\x0006\ud1c1\x0006\ud290\x0006\ud35f\x0006\ud42e\x0006\ud4fd" + + "\x0006\ud5cc\x0006\ud69b\x0006\ud76a\x0006\ud839\x0006\ud908\x0006\ud9d7\x0006\udaa6\x0006\udb75" + + "\x0006\udc44\x0006\udd13\x0006\udde2\x0006\udeb1\x0006\udf80\x0006\ue04f\x0006\ue11e\x0006\ue1ed" + + "\x0006\ue2bc\x0006\ue38b\x0006\ue45a\x0006\ue529\x0006\ue5f8\x0006\ue6c7\x0006\ue796\x0006\ue865" + + "\x0006\ue934\x0006\uea03\x0006\uead2\x0006\ueba1\x0006\uec70\x0006\ued3f\x0006\uee0e\x0006\ueedd" + + "\x0006\uefac\x0006\uf07b\x0006\uf14a\x0006\uf219\x0006\uf2e8\x0006\uf3b7\x0006\uf486\x0006\uf555" + + "\x0006\uf624\x0006\uf6f3\x0006\uf7c2\x0006\uf891\x0006\uf960\x0006\ufa2f\x0006\ufafe\x0006\ufbcd" + + "\x0006\ufc9c\x0006\ufd6b\x0006\ufe3a\x0006\uff09\x0006\uffd8\x0007\x00A7\x0007\u0176\x0007\u0245" + + "\x0007\u0314\x0007\u03e3\x0007\u04b2\x0007\u0581\x0007\u0650\x0007\u071f\x0007\u07ee\x0007\u08bd" + + "\x0007\u098c\x0007\u0a5b\x0007\u0b2a\x0007\u0bf9\x0007\u0cc8\x0007\u0d97\x0007\u0e66\x0007\u0f35" + + "\x0007\u1004\x0007\u10d3\x0007\u11a2\x0007\u1271\x0005\u99a3\x0007\u1340\x0007\u140f\x0007\u14de" + + "\x0007\u15ad\x0007\u167c\x0007\u174b\x0007\u181a\x0007\u18e9\x0007\u19b8\x0007\u1a87\x0007\u1b56" + + "\x0007\u1c25\x0007\u1cf4\x0007\u1dc3\x0007\u1e92\x0007\u1f61\x0007\u2030\x0007\u20ff\x0007\u21ce" + + "\x0007\u229d\x0007\u236c\x0007\u243b\x0007\u250a\x0007\u25d9\x0007\u26a8\x0007\u2777\x0007\u2846" + + "\x0007\u2915\x0007\u29e4\x0007\u2ab3\x0007\u2b82\x0007\u2c51\x0007\u2d20\x0007\u2def\x0007\u2ebe" + + "\x0007\u2f8d\x0007\u305c\x0007\u312b\x0007\u31fa\x0007\u32c9\x0007\u3398\x0007\u3467\x0007\u3536" + + "\x0007\u3605\x0007\u36d4\x0007\u37a3\x0007\u3872\x0007\u3941\x0007\u3a10\x0007\u3adf\x0007\u3bae" + + "\x0007\u3c7d\x0007\u3d4c\x0007\u3e1b\x0007\u3eea\x0007\u3fb9\x0007\u4088\x0007\u4157\x0007\u4226" + + "\x0007\u42f5\x0007\u43c4\x0007\u4493\x0007\u4562\x0007\u4631\x0007\u4700\x0007\u47cf\x0007\u489e" + + "\x0007\u496d\x0007\u4a3c\x0007\u4b0b\x0007\u4bda\x0007\u4ca9\x0007\u4d78\x0007\u4e47\x0007\u4f16" + + "\x0007\u4fe5\x0007\u50b4\x0007\u5183\x0007\u5252\x0007\u5321\x0007\u53f0\x0007\u54bf\x0007\u558e" + + "\x0007\u565d\x0007\u572c\x0007\u57fb\x0007\u58ca\x0007\u5999\x0007\u5a68\x0007\u5b37\x0007\u5c06" + + "\x0007\u5cd5\x0007\u5da4\x0007\u5e73\x0007\u5f42\x0007\u6011\x0007\u60e0\x0007\u61af\x0007\u627e" + + "\x0007\u634d\x0007\u641c\x0007\u64eb\x0007\u65ba\x0007\u6689\x0007\u6758\x0007\u6827\x0007\u68f6" + + "\x0007\u69c5\x0007\u6a94\x0007\u6b63\x0007\u6c32\x0007\u6d01\x0007\u6dd0\x0007\u6e9f\x0007\u6f6e" + + "\x0007\u703d\x0007\u710c\x0007\u71db\x0007\u72aa\x0007\u7379\x0007\u7448\x0007\u7517\x0007\u75e6" + + "\x0007\u76b5\x0007\u7784\x0007\u7853\x0007\u7922\x0007\u79f1\x0007\u7ac0\x0007\u7b8f\x0007\u7c5e" + + "\x0007\u7d2d\x0007\u7dfc\x0007\u7ecb\x0007\u7f9a\x0007\u8069\x0007\u8138\x0007\u8207\x0007\u82d6" + + "\x0007\u83a5\x0007\u8474\x0007\u8543\x0007\u8612\x0007\u86e1\x0007\u87b0\x0007\u887f\x0007\u894e" + + "\x0007\u8a1d\x0007\u8aec\x0007\u8bbb\x0007\u8c8a\x0007\u8d59\x0007\u8e28\x0007\u8ef7\x0007\u8fc6" + + "\x0007\u9095\x0007\u9164\x0007\u9233\x0007\u9302\x0007\u93d1\x0007\u94a0\x0007\u956f\x0007\u963e" + + "\x0007\u970d\x0007\u97dc\x0007\u98ab\x0007\u997a\x0007\u9a49\x0007\u9b18\x0007\u9be7\x0007\u9cb6" + + "\x0007\u9d85\x0007\u9e54\x0007\u9f23\x0007\u9ff2\x0007\ua0c1\x0007\ua190\x0007\ua25f\x0007\ua32e" + + "\x0007\ua3fd\x0007\ua4cc\x0007\ua59b\x0007\ua66a\x0007\ua739\x0007\ua808\x0007\ua8d7\x0007\ua9a6" + + "\x0007\uaa75\x0007\uab44\x0007\uac13\x0007\uace2\x0007\uadb1\x0007\uae80\x0007\uaf4f\x0007\ub01e" + + "\x0007\ub0ed\x0007\ub1bc\x0007\ub28b\x0007\ub35a\x0007\ub429\x0007\ub4f8\x0007\ub5c7\x0007\ub696" + + "\x0007\ub765\x0007\ub834\x0007\ub903\x0007\ub9d2\x0007\ubaa1\x0007\ubb70\x0007\ubc3f\x0007\ubd0e" + + "\x0007\ubddd\x0007\ubeac\x0007\ubf7b\x0007\uc04a\x0007\uc119\x0007\uc1e8\x0007\uc2b7\x0007\uc386" + + "\x0007\uc455\x0007\uc524\x0007\uc5f3\x0007\uc6c2\x0007\uc791\x0007\uc860\x0007\uc92f\x0007\uc9fe" + + "\x0007\ucacd\x0007\ucb9c\x0007\ucc6b\x0007\ucd3a\x0007\uce09\x0007\uced8\x0007\ucfa7\x0007\ud076" + + "\x0007\ud145\x0007\ud214\x0007\ud2e3\x0007\ud3b2\x0007\ud481\x0007\ud550\x0007\ud61f\x0007\ud6ee" + + "\x0007\ud7bd\x0007\ud88c\x0007\ud95b\x0007\uda2a\x0007\udaf9\x0007\udbc8\x0007\udc97\x0007\udd66" + + "\x0007\ude35\x0007\udf04\x0007\udfd3\x0007\ue0a2\x0007\ue171\x0007\ue240\x0007\ue30f\x0007\ue3de" + + "\x0007\ue4ad\x0007\ue57c\x0007\ue64b\x0007\ue71a\x0007\ue7e9\x0007\ue8b8\x0007\ue987\x0007\uea56" + + "\x0007\ueb25\x0007\uebf4\x0007\uecc3\x0007\ued92\x0007\uee61\x0007\uef30\x0007\uefff\x0007\uf0ce" + + "\x0007\uf19d\x0007\uf26c\x0007\uf33b\x0007\uf40a\x0007\uf4d9\x0007\uf5a8\x0007\uf677\x0007\uf746" + + "\x0007\uf815\x0007\uf8e4\x0007\uf9b3\x0007\ufa82\x0007\ufb51\x0007\ufc20\x0007\ufcef\x0007\ufdbe" + + "\x0007\ufe8d\x0007\uff5c\x0008\x002B\x0008\x00FA\x0008\u01c9\x0008\u0298\x0008\u0367\x0008\u0436" + + "\x0008\u0505\x0008\u05d4\x0008\u06a3\x0008\u0772\x0008\u0841\x0008\u0910\x0008\u09df\x0008\u0aae" + + "\x0008\u0b7d\x0008\u0c4c\x0008\u0d1b\x0008\u0dea\x0008\u0eb9\x0008\u0f88\x0008\u1057\x0008\u1126" + + "\x0008\u11f5\x0008\u12c4\x0008\u1393\x0008\u1462\x0008\u1531\x0008\u1600\x0008\u16cf\x0008\u179e" + + "\x0008\u186d\x0008\u193c\x0008\u1a0b\x0008\u1ada\x0008\u1ba9\x0008\u1c78\x0008\u1d47\x0008\u1e16" + + "\x0008\u1ee5\x0008\u1fb4\x0008\u2083\x0008\u2152\x0008\u2221\x0008\u22f0\x0008\u23bf\x0008\u248e" + + "\x0008\u255d\x0008\u262c\x0008\u26fb\x0008\u27ca\x0008\u2899\x0008\u2968\x0008\u2a37\x0008\u2b06" + + "\x0008\u2bd5\x0008\u2ca4\x0008\u2d73\x0008\u2e42\x0008\u2f11\x0008\u2fe0\x0008\u30af\x0008\u317e" + + "\x0008\u324d\x0008\u331c\x0008\u33eb\x0008\u34ba\x0008\u3589\x0008\u3658\x0008\u3727\x0008\u37f6" + + "\x0008\u38c5\x0008\u3994\x0008\u3a63\x0008\u3b32\x0008\u3c01\x0008\u3cd0\x0008\u3d9f\x0008\u3e6e" + + "\x0008\u3f3d\x0008\u400c\x0008\u40db\x0008\u41aa\x0008\u4279\x0008\u4348\x0008\u4417\x0008\u44e6" + + "\x0008\u45b5\x0008\u4684\x0008\u4753\x0008\u4822\x0008\u48f1\x0008\u49c0\x0008\u4a8f\x0008\u4b5e" + + "\x0008\u4c2d\x0008\u4cfc\x0008\u4dcb\x0008\u4e9a\x0008\u4f69\x0008\u5038\x0008\u5107\x0008\u51d6" + + "\x0008\u52a5\x0008\u5374\x0008\u5443\x0008\u5512\x0008\u55e1\x0008\u56b0\x0008\u577f\x0008\u584e" + + "\x0008\u591d\x0008\u59ec\x0008\u5abb\x0008\u5b8a\x0008\u5c59\x0008\u5d28\x0008\u5df7\x0008\u5ec6" + + "\x0008\u5f95\x0008\u6064\x0008\u6133\x0008\u6202\x0008\u62d1\x0008\u63a0\x0008\u646f\x0008\u653e" + + "\x0008\u660d\x0008\u66dc\x0008\u67ab\x0008\u687a\x0008\u6949\x0008\u6a18\x0008\u6ae7\x0008\u6bb6" + + "\x0008\u6c85\x0008\u6d54\x0008\u6e23\x0008\u6ef2\x0008\u6fc1\x0008\u7090\x0008\u715f\x0008\u722e" + + "\x0008\u72fd\x0008\u73cc\x0008\u749b\x0008\u756a\x0008\u7639\x0008\u7708\x0008\u77d7\x0008\u78a6" + + "\x0008\u7975\x0008\u7a44\x0008\u7b13\x0008\u7be2\x0008\u7cb1\x0008\u7d80\x0008\u7e4f\x0008\u7f1e" + + "\x0008\u7fed\x0008\u80bc\x0008\u818b\x0008\u825a\x0008\u8329\x0008\u83f8\x0008\u84c7\x0008\u8596" + + "\x0008\u8665\x0008\u8734\x0008\u8803\x0008\u88d2\x0008\u89a1\x0008\u8a70\x0008\u8b3f\x0008\u8c0e" + + "\x0008\u8cdd\x0008\u8dac\x0008\u8e7b\x0008\u8f4a\x0008\u9019\x0008\u90e8\x0008\u91b7\x0008\u9286" + + "\x0008\u9355\x0008\u9424\x0008\u94f3\x0008\u95c2\x0008\u9691\x0008\u9760\x0008\u982f\x0008\u98fe" + + "\x0008\u99cd\x0008\u9a9c\x0008\u9b6b\x0008\u9c3a\x0008\u9d09\x0008\u9dd8\x0008\u9ea7\x0008\u9f76" + + "\x0008\ua045\x0008\ua114\x0008\ua1e3\x0008\ua2b2\x0008\ua381\x0008\ua450\x0008\ua51f\x0008\ua5ee" + + "\x0008\ua6bd\x0008\ua78c\x0008\ua85b\x0008\ua92a\x0008\ua9f9\x0008\uaac8\x0008\uab97\x0008\uac66" + + "\x0008\uad35\x0008\uae04\x0008\uaed3\x0008\uafa2\x0008\ub071\x0008\ub140\x0008\ub20f\x0008\ub2de" + + "\x0008\ub3ad\x0008\ub47c\x0008\ub54b\x0008\ub61a\x0008\ub6e9\x0008\ub7b8\x0008\ub887\x0008\ub956" + + "\x0008\uba25\x0008\ubaf4\x0008\ubbc3\x0008\ubc92\x0008\ubd61\x0008\ube30\x0008\ubeff\x0008\ubfce" + + "\x0008\uc09d\x0008\uc16c\x0008\uc23b\x0008\uc30a\x0008\uc3d9\x0008\uc4a8\x0008\uc577\x0008\uc646" + + "\x0008\uc715\x0008\uc7e4\x0008\uc8b3\x0008\uc982\x0008\uca51\x0008\ucb20\x0008\ucbef\x0008\uccbe" + + "\x0008\ucd8d\x0008\uce5c\x0008\ucf2b\x0008\ucffa\x0008\ud0c9\x0008\ud198\x0008\ud267\x0008\ud336" + + "\x0008\ud405\x0008\ud4d4\x0008\ud5a3\x0008\ud672\x0008\ud741\x0008\ud810\x0008\ud8df\x0008\ud9ae" + + "\x0008\uda7d\x0008\udb4c\x0008\udc1b\x0008\udcea\x0008\uddb9\x0008\ude88\x0008\udf57\x0008\ue026" + + "\x0008\ue0f5\x0008\ue1c4\x0008\ue293\x0008\ue362\x0008\ue431\x0008\ue500\x0008\ue5cf\x0008\ue69e" + + "\x0008\ue76d\x0008\ue83c\x0008\ue90b\x0008\ue9da\x0008\ueaa9\x0008\ueb78\x0008\uec47\x0008\ued16" + + "\x0008\uede5\x0008\ueeb4\x0008\uef83\x0008\uf052\x0008\uf121\x0008\uf1f0\x0008\uf2bf\x0008\uf38e" + + "\x0008\uf45d\x0008\uf52c\x0008\uf5fb\x0008\uf6ca\x0008\uf799\x0008\uf868\x0008\uf937\x0008\ufa06" + + "\x0008\ufad5\x0008\ufba4\x0008\ufc73\x0008\ufd42\x0008\ufe11\x0008\ufee0\x0008\uffaf\x0009\x007E" + + "\x0009\u014d\x0009\u021c\x0009\u02eb\x0009\u03ba\x0009\u0489\x0009\u0558\x0009\u0627\x0009\u06f6" + + "\x0009\u07c5\x0009\u0894\x0009\u0963\x0009\u0a32\x0009\u0b01\x0009\u0bd0\x0009\u0c9f\x0009\u0d6e" + + "\x0009\u0e3d\x0009\u0f0c\x0009\u0fdb\x0009\u10aa\x0009\u1179\x0009\u1248\x0009\u1317\x0009\u13e6" + + "\x0009\u14b5\x0009\u1584\x0009\u1653\x0009\u1722\x0009\u17f1\x0009\u18c0\x0009\u198f\x0009\u1a5e" + + "\x0009\u1b2d\x0009\u1bfc\x0009\u1ccb\x0009\u1d9a\x0009\u1e69\x0009\u1f38\x0009\u2007\x0009\u20d6" + + "\x0009\u21a5\x0009\u2274\x0009\u2343\x0009\u2412\x0009\u24e1\x0009\u25b0\x0009\u267f\x0009\u274e" + + "\x0009\u281d\x0009\u28ec\x0009\u29bb\x0009\u2a8a\x0009\u2b59\x0009\u2c28\x0009\u2cf7\x0009\u2dc6" + + "\x0009\u2e95\x0009\u2f64\x0009\u3033\x0009\u3102\x0009\u31d1\x0009\u32a0\x0009\u336f\x0009\u343e" + + "\x0009\u350d\x0009\u35dc\x0009\u36ab\x0009\u377a\x0009\u3849\x0009\u3918\x0009\u39e7\x0009\u3ab6" + + "\x0009\u3b85\x0009\u3c54\x0009\u3d23\x0009\u3df2\x0009\u3ec1\x0009\u3f90\x0009\u405f\x0009\u412e" + + "\x0009\u41fd\x0009\u42cc\x0009\u439b\x0009\u446a\x0009\u4539\x0009\u4608\x0009\u46d7\x0009\u47a6" + + "\x0009\u4875\x0009\u4944\x0009\u4a13\x0009\u4ae2\x0009\u4bb1\x0009\u4c80\x0009\u4d4f\x0009\u4e1e" + + "\x0009\u4eed\x0009\u4fbc\x0009\u508b\x0009\u515a\x0009\u5229\x0009\u52f8\x0009\u53c7\x0009\u5496" + + "\x0009\u5565\x0009\u5634\x0009\u5703\x0009\u57d2\x0009\u58a1\x0009\u5970\x0009\u5a3f\x0009\u5b0e" + + "\x0009\u5bdd\x0009\u5cac\x0009\u5d7b\x0009\u5e4a"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[3116]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /** + * The transition table of the DFA + */ + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0003\x0001\x0004\x0001\x0003\x0001\x0005\x0002\x0003\x0001\x0006\x0001\x0003\x0001\x0007" + + "\x0004\x0003\x0001\x0008\x0001\x0003\x0001\x0009\x0001\x0003\x0001\x000A\x0002\x0003\x0001\x000B" + + "\x0003\x0003\x0001\x000C\x0002\x0003\x0001\x000D\x0004\x0003\x0001\x000E\x0003\x0003\x0001\x000F" + + "\x000F\x0003\x0001\x0010\x0002\x0003\x0001\x0011\x0036\x0003\x0001\x0012\x0001\x0003\x0001\x0013" + + "\x0002\x0003\x0001\x0014\x0001\x0015\x0001\x0003\x0001\x0016\x0001\x0003\x0001\x0017\x0001\x0003" + + "\x0001\x0018\x0003\x0003\x0001\x0019\x0001\x0003\x0002\x001A\x0001\x001B\x0003\x0003\x0001\x001C" + + "\x0002\x001D\x0001\x001E\x0001\x0019\x0001\x001F\x0001\x0020\x0001\x0021\x0001\x0022\x0001\x0023" + + "\x0001\x0020\x0006\x0024\x0001\x0025\x0003\x0024\x0001\x0026\x000A\x0024\x0001\x0027\x0004\x0024" + + "\x0001\x0020\x0001\x0028\x0001\x0029\x0005\x0028\x0001\x002A\x0001\x0029\x0001\x0028\x0001\x0003" + + "\x0001\x0020\x0001\x002B\x0001\x0020\x0001\x0003\x0001\x0020\x0001\x0003\x0003\x0020\x0001\x002C" + + "\x0002\x0003\x0001\x0020\x0003\x0003\x0002\x0020\x0003\x0003\x0001\x001B\x0001\x001D\x0001\x001E" + + "\x0001\x0003\x0001\x0004\x0001\x0003\x0001\x0005\x0002\x0003\x0001\x0006\x0001\x0003\x0001\x0007" + + "\x0004\x0003\x0001\x0008\x0001\x0003\x0001\x0009\x0001\x0003\x0001\x000A\x0002\x0003\x0001\x000B" + + "\x0003\x0003\x0001\x000C\x0002\x0003\x0001\x000D\x0004\x0003\x0001\x000E\x0003\x0003\x0001\x000F" + + "\x000F\x0003\x0001\x0010\x0002\x0003\x0001\x0011\x0036\x0003\x0001\x0012\x0001\x0003\x0001\x0013" + + "\x0002\x0003\x0001\x0014\x0001\x0015\x0001\x0003\x0001\x0016\x0001\x0003\x0001\x0017\x0001\x0003" + + "\x0001\x0018\x0003\x0003\x0001\x0019\x0001\x0003\x0002\x001A\x0001\x001B\x0003\x0003\x0001\x001C" + + "\x0002\x001D\x0001\x001E\x0001\x0019\x0001\x001F\x0001\x0020\x0001\x0021\x0001\x0022\x0001\x0023" + + "\x0001\x0020\x0006\x002D\x0001\x002E\x0003\x002D\x0001\x002F\x000A\x002D\x0001\x0030\x0004\x002D" + + "\x0001\x0020\x0001\x0031\x0001\x0032\x0005\x0031\x0001\x0033\x0001\x0032\x0001\x0031\x0001\x0003" + + "\x0001\x0020\x0001\x002B\x0001\x0020\x0001\x0003\x0001\x0020\x0001\x0003\x0003\x0020\x0001\x0034" + + "\x0002\x0003\x0001\x0020\x0003\x0003\x0002\x0020\x0003\x0003\x0001\x001B\x0001\x001D\x0001\x001E" + + "\x00D1\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x000E\x0000\x0001\x0019" + + "\x000D\x0000\x0001\x0019\x0010\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0021\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0019\x0008\x0000\x0002\x0019\x0005\x0000\x0002\x0019\x0008\x0000\x0001\x0019" + + "\x0057\x0000\x0002\x0019\x0005\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0003\x0000\x0002\x0019" + + "\x0008\x0000\x0004\x0019\x0001\x0000\x0003\x0019\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0019" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0004\x0019\x0001\x0000\x0002\x0019\x0001\x0000\x0001\x0019" + + "\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0002\x0000\x0004\x0019\x0002\x0000\x0003\x0019" + + "\x0001\x0000\x0002\x0019\x0001\x0000\x0003\x0019\x0001\x0000\x0004\x0019\x0001\x0000\x0002\x0019" + + "\x0005\x0000\x0004\x0019\x0002\x0000\x0008\x0019\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0019" + + "\x0001\x0000\x0002\x0019\x0004\x0000\x0001\x0019\x0003\x0000\x0003\x0019\x0058\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0019\x0009\x0000\x0001\x0019\x0012\x0000\x0001\x0019\x0003\x0000\x0001\x0019" + + "\x0017\x0000\x0001\x0019\x0033\x0000\x0001\x0019\x005A\x0000\x0001\x0019\x0003\x0000\x0004\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x001A\x0002\x0000\x0001\x0019\x0001\x0000\x0002\x0019" + + "\x0002\x0000\x0002\x0019\x0002\x0000\x0003\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0002\x0000\x0004\x0019\x0001\x0000\x0003\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0003\x0019" + + "\x0001\x0000\x0002\x0019\x0001\x0000\x0004\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0008\x0019" + + "\x0001\x0000\x0002\x0019\x0001\x0000\x0008\x0019\x0001\x001A\x0001\x0000\x0007\x0019\x0001\x0000" + + "\x0008\x0019\x0001\x0000\x0006\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0003\x0000\x0003\x0019\x005F\x0000\x0001\x0019\x000F\x0000" + + "\x0001\x0019\x0013\x0000\x0001\x0019\x0013\x0000\x0001\x0019\x0006\x0000\x0003\x0019\x001F\x0000" + + "\x0001\x0019\x0007\x0000\x0001\x0019\x0059\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0004\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0002\x0019\x0001\x0000\x0003\x0019\x0001\x0000\x0002\x0019\x0001\x0000\x0004\x0019\x0001\x0000" + + "\x0003\x0019\x0001\x0000\x000F\x0019\x0001\x0000\x0002\x0019\x0001\x0000\x0011\x0019\x0001\x0000" + + "\x0002\x0019\x0001\x0000\x0021\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0003\x0019\x005F\x0000" + + "\x0001\x0019\x0003\x0000\x0002\x0019\x000A\x0000\x0002\x0019\x000B\x0000\x0001\x0019\x0006\x0000" + + "\x0001\x0019\x0002\x0000\x0002\x0019\x0006\x0000\x0001\x0019\x0004\x0000\x0002\x0019\x0002\x0000" + + "\x0002\x0019\x0005\x0000\x0003\x0019\x0010\x0000\x0001\x0019\x000E\x0000\x0001\x0019\x0007\x0000" + + "\x0001\x0019\x0059\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0001\x0000\x0001\x0019\x0002\x0000" + + "\x0002\x0019\x0002\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x0001\x0000\x0003\x0019\x0001\x0000" + + "\x0002\x0019\x0001\x0000\x0004\x0019\x0001\x0000\x0003\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0002\x0019\x0002\x0000\x0009\x0019\x0001\x0000\x0002\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0002\x0019\x0001\x0000\x000C\x0019\x0001\x0000\x0002\x0019\x0001\x0000\x0008\x0019\x0001\x0000" + + "\x0002\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0013\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0003\x0019\x0053\x0000\x0001\x0019\x0016\x0000\x0002\x0019\x0013\x0000\x0001\x001A\x0001\x0019" + + "\x0020\x0000\x0001\x001A\x0082\x0000\x0001\x001A\x0017\x0000\x0004\x0019\x0002\x0000\x0002\x0019" + + "\x000C\x0000\x0003\x0019\x000D\x0000\x0003\x0019\x0003\x0000\x0001\x0019\x0007\x0000\x0002\x0019" + + "\x0001\x0000\x0004\x001A\x0001\x0000\x0002\x0019\x000B\x0000\x0001\x0019\x0013\x0000\x0001\x0019" + + "\x0065\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x000A\x0000\x0002\x0019\x0001\x0000\x0003\x0019" + + "\x0007\x0000\x0001\x0019\x0006\x0000\x0002\x0019\x0001\x0000\x0002\x0019\x0006\x0000\x0001\x0019" + + "\x0004\x0000\x0002\x0019\x0002\x0000\x0002\x0019\x0005\x0000\x0003\x0019\x0002\x0000\x0001\x0019" + + "\x0003\x0000\x0002\x001A\x0008\x0000\x0001\x0019\x000E\x0000\x0001\x0019\x0007\x0000\x0001\x0019" + + "\x0059\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019" + + "\x0006\x0000\x0001\x0019\x0005\x0000\x0001\x0019\x0002\x0000\x0002\x0019\x0001\x0000\x000F\x0019" + + "\x0002\x0000\x0001\x0019\x000B\x0000\x0007\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0003\x0019\x0002\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0006\x0000\x0002\x0019" + + "\x0006\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0063\x0000\x0001\x0019" + + "\x000F\x0000\x0002\x0019\x0012\x0000\x0001\x0019\x0002\x0000\x0002\x0019\x000B\x0000\x0001\x0019" + + "\x0003\x0000\x0002\x0019\x0005\x0000\x0003\x0019\x0010\x0000\x0001\x0019\x000E\x0000\x0001\x0019" + + "\x0007\x0000\x0001\x0019\x005E\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019" + + "\x0003\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0019\x0000\x0010\x0019\x0005\x0000\x0003\x0019" + + "\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x0002\x0000\x0002\x0019" + + "\x0004\x0000\x0001\x0019\x0005\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x00A0\x0000\x0001\x001F\x0021\x0000\x0001\x001B" + + "\x0063\x0000\x0001\x001E\x0006\x0000\x0001\x001E\x0002\x0000\x0001\x001E\x0003\x0000\x0002\x001E" + + "\x0008\x0000\x0004\x001E\x0001\x0000\x0003\x001E\x0001\x0000\x0001\x001E\x0002\x0000\x0001\x001E" + + "\x0002\x0000\x0001\x001E\x0004\x0000\x0004\x001E\x0001\x0000\x0002\x001E\x0006\x0000\x0001\x001E" + + "\x0002\x0000\x0004\x001E\x0002\x0000\x0003\x001E\x0001\x0000\x0002\x001E\x0001\x0000\x0003\x001E" + + "\x0001\x0000\x0004\x001E\x0001\x0000\x0002\x001E\x0005\x0000\x0004\x001E\x0002\x0000\x0008\x001E" + + "\x0004\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0004\x0000\x0001\x001E\x0003\x0000\x0003\x001E" + + "\x0053\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0004\x001E" + + "\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0001\x0000\x0003\x001E" + + "\x0001\x0000\x0002\x001E\x0001\x0000\x0004\x001E\x0001\x0000\x0003\x001E\x0001\x0000\x000F\x001E" + + "\x0001\x0000\x0002\x001E\x0001\x0000\x0011\x001E\x0001\x0000\x0002\x001E\x0001\x0000\x0021\x001E" + + "\x0001\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0002\x0000\x0001\x001E\x0001\x0000\x0001\x001E" + + "\x0001\x0000\x0001\x001E\x0001\x0000\x0003\x001E\x0053\x0000\x0001\x001E\x0001\x0000\x0002\x001E" + + "\x0001\x0000\x0001\x001E\x0001\x0000\x0004\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001E" + + "\x0001\x0000\x0002\x001E\x0002\x0000\x0001\x001E\x0002\x0000\x0002\x001E\x0001\x0000\x0004\x001E" + + "\x0001\x0000\x0003\x001E\x0001\x0000\x000F\x001E\x0001\x0000\x0002\x001E\x0001\x0000\x0011\x001E" + + "\x0001\x0000\x0002\x001E\x0001\x0000\x0021\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0002\x001E" + + "\x0002\x0000\x0001\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0003\x001E" + + "\x005F\x0000\x0001\x001E\x000F\x0000\x0001\x001E\x0013\x0000\x0001\x001E\x001A\x0000\x0001\x001E" + + "\x0021\x0000\x0001\x001E\x0007\x0000\x0001\x001E\x0059\x0000\x0001\x001E\x0001\x0000\x0002\x001E" + + "\x0003\x0000\x0004\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0002\x001E" + + "\x0001\x0000\x0003\x001E\x0001\x0000\x0002\x001E\x0001\x0000\x0004\x001E\x0001\x0000\x0003\x001E" + + "\x0001\x0000\x0008\x001E\x0001\x0000\x0006\x001E\x0001\x0000\x0002\x001E\x0001\x0000\x0011\x001E" + + "\x0001\x0000\x0002\x001E\x0001\x0000\x0021\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0002\x001E" + + "\x0002\x0000\x0001\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0003\x001E" + + "\x00B6\x0000\x0001\x0035\x0015\x0000\x0001\x001F\x0002\x0035\x0052\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x0047\x001A\x0019" + + "\x0001\x0000\x000A\x0046\x0001\x0047\x0001\x0000\x0001\x0048\x0012\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000" + + "\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0052\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x0052\x001A\x0019" + + "\x0001\x0000\x000A\x001A\x0002\x0000\x0001\x0053\x0002\x0000\x0001\x0052\x0006\x0000\x0001\x0052" + + "\x0008\x0000\x0001\x001A\x0009\x0000\x0001\x0054\x0011\x0000\x0001\x0055\x0002\x0000\x0001\x0056" + + "\x0008\x0000\x0001\x0057\x0012\x0000\x0001\x0058\x0011\x0000\x0001\x0059\x0002\x0000\x0001\x005A" + + "\x0021\x0000\x0001\x005B\x0010\x0000\x0001\x001B\x0002\x0000\x0001\x001B\x0003\x0000\x0001\x0048" + + "\x0001\x0000\x0001\x001B\x002F\x0000\x0001\x0048\x0012\x0000\x0002\x001B\x0003\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x005C\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x005D" + + "\x0002\x0000\x0001\x005E\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x005F\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0060\x0011\x0000\x0001\x0061\x0002\x0000\x0001\x0062\x0021\x0000\x0001\x0063" + + "\x000F\x0000\x0001\x0019\x0001\x0064\x0002\x001A\x0001\x0065\x0003\x0000\x0001\x0064\x0001\x0000" + + "\x0001\x0064\x0001\x0000\x0001\x0019\x0003\x0000\x0001\x0022\x0001\x0019\x0001\x0000\x001A\x0019" + + "\x0001\x0000\x000A\x001A\x0002\x0000\x0001\x0064\x0012\x0000\x0001\x0064\x0001\x0065\x0089\x0000" + + "\x0002\x001D\x0044\x0000\x0001\x001D\x0007\x0000\x0001\x0066\x0011\x0000\x0001\x0067\x0002\x0000" + + "\x0001\x0068\x0008\x0000\x0001\x0069\x0012\x0000\x0001\x006A\x0011\x0000\x0001\x006B\x0002\x0000" + + "\x0001\x006C\x0032\x0000\x0001\x001E\x0008\x0000\x0001\x001E\x0042\x0000\x0001\x001E\x0009\x0000" + + "\x0001\x006D\x0011\x0000\x0001\x006E\x0002\x0000\x0001\x006F\x0008\x0000\x0001\x0070\x0012\x0000" + + "\x0001\x0071\x0011\x0000\x0001\x0072\x0002\x0000\x0001\x0073\x0032\x0000\x0001\x001F\x0008\x0000" + + "\x0001\x001F\x0042\x0000\x0001\x001F\x008F\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x0025\x0074" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0077\x0001\x0078\x0002\x0000\x0035\x0077\x0001\x0079" + + "\x0001\x0000\x0002\x0077\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x007A" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x007B\x0002\x0000\x0001\x007C\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x007D\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x007E\x0011\x0000\x0001\x007F" + + "\x0002\x0000\x0001\x0080\x0031\x0000\x0001\x0019\x0001\x0022\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0022\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0081\x0001\x0082\x0001\x0022\x0001\x0019\x0001\x0047\x001A\x0019\x0001\x0000\x000A\x0046" + + "\x0001\x0047\x0001\x0000\x0001\x0048\x0012\x0000\x0001\x0022\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0083\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x0084\x0002\x0000" + + "\x0001\x0085\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0086\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0087\x0011\x0000\x0001\x0088\x0002\x0000\x0001\x0089\x0031\x0000\x0001\x0019\x0001\x0023" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0023" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0022\x0001\x0023\x0001\x0047" + + "\x001A\x0019\x0001\x0000\x000A\x0046\x0001\x0047\x0001\x0000\x0001\x0048\x0012\x0000\x0001\x0023" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x001A\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0008\x0024\x0001\x008F\x0006\x0024" + + "\x0001\x0090\x000A\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\x0091\x0019\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x000F\x0024\x0001\x0092\x000A\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000" + + "\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000" + + "\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052" + + "\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x0094\x001A\x0024\x0001\x008C\x000A\x0095\x0001\x0000\x0001\x0074" + + "\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000" + + "\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A" + + "\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x0094\x001A\x0024\x0001\x008C\x000A\x0028" + + "\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074" + + "\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000" + + "\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x0094\x001A\x0024" + + "\x0001\x008C\x0002\x0028\x0001\x0095\x0001\x0028\x0001\x0097\x0002\x0095\x0002\x0028\x0001\x0095" + + "\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074" + + "\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x005C\x0001\x0000\x0001\x004A\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x005D\x0002\x0000\x0001\x005E\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x005F\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0060\x0011\x0000\x0001\x0061\x0002\x0000\x0001\x0062\x0021\x0000" + + "\x0001\x0063\x000F\x0000\x0001\x0019\x0001\x0064\x0002\x001A\x0001\x0065\x0003\x0000\x0001\x0064" + + "\x0001\x0000\x0001\x0064\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0074\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x0075\x001A\x0098\x0001\x0074\x000A\x0099\x0001\x0000\x0001\x0074\x0001\x009A" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0064\x0001\x0065\x0093\x0000\x0004\x009B\x0002\x0000\x0001\x009B" + + "\x000D\x0000\x0001\x009B\x0006\x0000\x000A\x009B\x0001\x009C\x0019\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x001A\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0008\x002D\x0001\x00A0\x0006\x002D\x0001\x00A1\x000A\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0001\x00A2\x0019\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D\x0001\x00A3\x000A\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051" + + "\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x00A4" + + "\x001A\x002D\x0001\x009E\x000A\x00A5\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000" + + "\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049" + + "\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D" + + "\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050" + + "\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x00A4\x001A\x002D\x0001\x009E\x000A\x0031\x0001\x0000\x0001\x0074\x0001\x0096" + + "\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C" + + "\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F" + + "\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000" + + "\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x00A4\x001A\x002D\x0001\x009E\x0002\x0031\x0001\x00A5" + + "\x0001\x0031\x0001\x00A6\x0002\x00A5\x0002\x0031\x0001\x00A5\x0001\x0000\x0001\x0074\x0001\x0096" + + "\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0094\x0000\x0004\x00A7\x0002\x0000\x0001\x00A7" + + "\x000D\x0000\x0001\x00A7\x0006\x0000\x000A\x00A7\x0001\x00A8\x001E\x0000\x0001\x00A9\x0011\x0000" + + "\x0001\x00AA\x0002\x0000\x0001\x00AB\x0008\x0000\x0001\x00AC\x0012\x0000\x0001\x00AD\x0011\x0000" + + "\x0001\x00AE\x0002\x0000\x0001\x00AF\x002D\x0000\x0001\x00B0\x0004\x0000\x0001\x0035\x0008\x0000" + + "\x0001\x0035\x0042\x0000\x0001\x0035\x000A\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0009\x0000" + + "\x0001\x0019\x0012\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x000B\x0000\x0001\x0019\x0002\x0000" + + "\x0001\x0019\x0008\x0000\x0001\x0019\x0012\x0000\x0004\x0019\x001D\x0000\x0001\x0019\x005A\x0000" + + "\x0001\x0019\x0003\x0000\x0004\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0046\x0002\x0000" + + "\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0002\x0019\x0002\x0000\x0003\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0002\x0000\x0004\x0019\x0001\x0000\x0003\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0003\x0019\x0001\x0000\x0002\x0019\x0001\x0000\x0004\x0019\x0001\x0000" + + "\x0002\x0019\x0002\x0000\x0008\x0019\x0001\x0000\x0002\x0019\x0001\x0000\x0008\x0019\x0001\x0046" + + "\x0001\x0000\x0007\x0019\x0001\x0000\x0008\x0019\x0001\x0000\x0006\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0003\x0000\x0003\x0019" + + "\x0053\x0000\x0001\x0019\x0016\x0000\x0002\x0019\x0013\x0000\x0001\x0046\x0001\x0019\x0020\x0000" + + "\x0001\x0046\x000B\x0000\x0001\x0019\x0076\x0000\x0001\x0046\x0009\x0000\x0001\x0019\x000D\x0000" + + "\x0004\x0019\x0002\x0000\x0002\x0019\x000C\x0000\x0004\x0019\x0001\x0000\x0002\x0019\x0009\x0000" + + "\x0003\x0019\x0003\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0004\x0000\x0003\x0019\x0001\x0000" + + "\x0004\x0046\x0001\x0000\x0002\x0019\x0005\x0000\x0004\x0019\x0002\x0000\x0002\x0019\x000A\x0000" + + "\x0001\x0019\x0007\x0000\x0001\x0019\x0065\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x000A\x0000" + + "\x0002\x0019\x0001\x0000\x0003\x0019\x0007\x0000\x0001\x0019\x0006\x0000\x0002\x0019\x0001\x0000" + + "\x0002\x0019\x0006\x0000\x0001\x0019\x0004\x0000\x0002\x0019\x0002\x0000\x0002\x0019\x0005\x0000" + + "\x0003\x0019\x0002\x0000\x0001\x0019\x0003\x0000\x0002\x0046\x0008\x0000\x0001\x0019\x000E\x0000" + + "\x0001\x0019\x0007\x0000\x0001\x0019\x0059\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0006\x0000" + + "\x0001\x0019\x0003\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0005\x0000\x0001\x0019\x0002\x0000" + + "\x0002\x0019\x0001\x0000\x000F\x0019\x0002\x0000\x0001\x0019\x000B\x0000\x0007\x0019\x0002\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000" + + "\x0003\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0006\x0000\x0001\x0019\x0007\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x005C\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000" + + "\x0001\x0019\x0003\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0019\x0000\x0010\x0019\x0005\x0000" + + "\x0003\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x0002\x0000" + + "\x0002\x0019\x0004\x0000\x0005\x0019\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x009D\x0000\x0002\x0019\x0015\x0000" + + "\x0004\x0019\x006E\x0000\x0001\x0019\x000D\x0000\x0002\x0019\x0008\x0000\x0002\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0009\x0000\x0001\x0019\x0009\x0000\x0002\x0019\x0006\x0000" + + "\x0001\x0019\x0002\x0000\x0004\x0019\x0003\x0000\x0001\x0019\x0002\x0000\x0002\x0019\x0001\x0000" + + "\x0003\x0019\x0001\x0000\x0002\x0019\x0001\x0000\x0001\x0019\x0008\x0000\x0001\x0019\x0001\x0000" + + "\x0002\x0019\x0002\x0000\x0002\x0019\x0001\x0000\x0004\x0019\x0013\x0000\x0001\x0019\x0052\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B1\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x00B2\x0002\x0000\x0001\x00B3\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x00B4\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x00B5\x0011\x0000\x0001\x00B6\x0002\x0000\x0001\x00B7\x0031\x0000" + + "\x0001\x0019\x0003\x0046\x0002\x0000\x0002\x00B8\x0001\x0048\x0001\x0000\x0001\x0046\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x00B8\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x00B8\x001A\x0019" + + "\x0001\x0000\x000A\x0046\x0002\x0000\x0001\x0048\x0002\x0000\x0001\x00B8\x0006\x0000\x0001\x00B8" + + "\x0008\x0000\x0001\x0046\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B9" + + "\x0001\x0000\x0001\x00BA\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00BB\x0002\x0000\x0001\x00BC\x0004\x0000\x0001\x00BD" + + "\x0003\x0000\x0001\x00BE\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00BF\x0011\x0000\x0001\x00C0" + + "\x0002\x0000\x0001\x00C1\x0031\x0000\x0001\x0019\x0001\x0047\x0008\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0019\x0003\x0000\x0002\x0019\x0001\x0000\x001A\x0019\x0020\x0000\x0001\x0047\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00C2\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x00C3\x0002\x0000\x0001\x00C4\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x00C5\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x00C6\x0011\x0000\x0001\x00C7\x0002\x0000\x0001\x00C8\x0021\x0000" + + "\x0001\x0063\x000F\x0000\x0001\x0019\x0001\x0048\x0002\x0046\x0001\x0065\x0003\x0000\x0001\x0048" + + "\x0001\x0000\x0001\x0048\x0001\x0000\x0001\x0019\x0003\x0000\x0001\x0022\x0001\x0019\x0001\x0000" + + "\x001A\x0019\x0001\x0000\x000A\x0046\x0002\x0000\x0001\x0048\x0012\x0000\x0001\x0048\x0001\x0065" + + "\x0009\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0009\x0000\x0001\x0019\x0012\x0000\x0001\x0019" + + "\x0003\x0000\x0001\x0019\x000B\x0000\x0001\x001A\x0002\x0000\x0001\x001A\x0008\x0000\x0001\x0019" + + "\x0012\x0000\x0004\x001A\x001D\x0000\x0001\x0019\x0057\x0000\x0001\x0019\x0016\x0000\x0002\x0019" + + "\x0013\x0000\x0001\x001A\x0001\x0019\x0020\x0000\x0001\x001A\x000B\x0000\x0001\x001A\x0076\x0000" + + "\x0001\x001A\x0009\x0000\x0001\x001A\x000D\x0000\x0004\x0019\x0002\x0000\x0002\x0019\x000C\x0000" + + "\x0003\x0019\x0001\x001A\x0001\x0000\x0002\x001A\x0009\x0000\x0003\x0019\x0003\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x0002\x0019\x0001\x0000\x0004\x001A\x0001\x0000" + + "\x0002\x0019\x0005\x0000\x0004\x001A\x0002\x0000\x0001\x0019\x0001\x001A\x000A\x0000\x0001\x001A" + + "\x0007\x0000\x0001\x0019\x0059\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019" + + "\x0003\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0005\x0000\x0001\x0019\x0002\x0000\x0002\x0019" + + "\x0001\x0000\x000F\x0019\x0002\x0000\x0001\x0019\x000B\x0000\x0007\x0019\x0002\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0003\x0019" + + "\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x001A\x0001\x0000\x0002\x0019\x0006\x0000\x0001\x0019\x0007\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x005C\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019" + + "\x0003\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0019\x0000\x0010\x0019\x0005\x0000\x0003\x0019" + + "\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x0002\x0000\x0002\x0019" + + "\x0004\x0000\x0001\x0019\x0004\x001A\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x009D\x0000\x0002\x001A\x0015\x0000" + + "\x0004\x001A\x006E\x0000\x0001\x001A\x000D\x0000\x0002\x001A\x0008\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x001A\x0009\x0000\x0001\x001A\x0009\x0000\x0002\x001A\x0006\x0000" + + "\x0001\x001A\x0002\x0000\x0004\x001A\x0003\x0000\x0001\x001A\x0002\x0000\x0002\x001A\x0001\x0000" + + "\x0003\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0008\x0000\x0001\x001A\x0001\x0000" + + "\x0002\x001A\x0002\x0000\x0002\x001A\x0001\x0000\x0004\x001A\x0013\x0000\x0001\x001A\x0057\x0000" + + "\x0001\x00C9\x0001\x0000\x0001\x00CA\x000F\x0000\x0001\x00CB\x0002\x0000\x0001\x00CC\x0004\x0000" + + "\x0001\x00CD\x0003\x0000\x0001\x00CE\x0012\x0000\x0001\x00CF\x0011\x0000\x0001\x00D0\x0002\x0000" + + "\x0001\x00D1\x0032\x0000\x0001\x0052\x0002\x001A\x0006\x0000\x0001\x0052\x0023\x0000\x000A\x001A" + + "\x0015\x0000\x0001\x0052\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00D2" + + "\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00D3\x0002\x0000\x0001\x00D4\x0004\x0000\x0001\x004D" + + "\x0003\x0000\x0001\x00D5\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00D6\x0011\x0000\x0001\x00D7" + + "\x0002\x0000\x0001\x00D8\x0021\x0000\x0001\x0063\x000F\x0000\x0001\x0019\x0001\x0053\x0002\x001A" + + "\x0001\x0065\x0003\x0000\x0001\x0053\x0001\x0000\x0001\x0053\x0001\x0000\x0001\x0019\x0003\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x0000\x001A\x0019\x0001\x0000\x000A\x001A\x0002\x0000\x0001\x0053" + + "\x0012\x0000\x0001\x0053\x0001\x0065\x003B\x0000\x0001\x001B\x0002\x0000\x0001\x001B\x001B\x0000" + + "\x0004\x001B\x00CF\x0000\x0001\x001B\x0080\x0000\x0001\x001B\x0024\x0000\x0001\x001B\x0001\x0000" + + "\x0002\x001B\x0011\x0000\x0001\x001B\x0004\x0000\x0001\x001B\x000F\x0000\x0004\x001B\x0003\x0000" + + "\x0001\x001B\x000A\x0000\x0001\x001B\x00C4\x0000\x0001\x001B\x00D3\x0000\x0004\x001B\x00AB\x0000" + + "\x0002\x001B\x0015\x0000\x0004\x001B\x006E\x0000\x0001\x001B\x000D\x0000\x0002\x001B\x0008\x0000" + + "\x0002\x001B\x0001\x0000\x0001\x001B\x0001\x0000\x0001\x001B\x0009\x0000\x0001\x001B\x0009\x0000" + + "\x0002\x001B\x0006\x0000\x0001\x001B\x0002\x0000\x0004\x001B\x0003\x0000\x0001\x001B\x0002\x0000" + + "\x0002\x001B\x0001\x0000\x0003\x001B\x0001\x0000\x0002\x001B\x0001\x0000\x0001\x001B\x0008\x0000" + + "\x0001\x001B\x0001\x0000\x0002\x001B\x0002\x0000\x0002\x001B\x0001\x0000\x0004\x001B\x0013\x0000" + + "\x0001\x001B\x00C0\x0000\x0001\x001B\x0066\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0009\x0000" + + "\x0001\x0019\x0012\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x000B\x0000\x0001\x0064\x0002\x0000" + + "\x0001\x0064\x0008\x0000\x0001\x0019\x0012\x0000\x0004\x0064\x001D\x0000\x0001\x0019\x0057\x0000" + + "\x0001\x0019\x0016\x0000\x0002\x0019\x0013\x0000\x0001\x001A\x0001\x0019\x0020\x0000\x0001\x001A" + + "\x000B\x0000\x0001\x0064\x0076\x0000\x0001\x001A\x0009\x0000\x0001\x0064\x000D\x0000\x0004\x0019" + + "\x0002\x0000\x0002\x0019\x000C\x0000\x0003\x0019\x0001\x0064\x0001\x0000\x0002\x0064\x0009\x0000" + + "\x0003\x0019\x0003\x0000\x0001\x0019\x0001\x0000\x0001\x0064\x0004\x0000\x0001\x0064\x0002\x0019" + + "\x0001\x0000\x0004\x001A\x0001\x0000\x0002\x0019\x0005\x0000\x0004\x0064\x0002\x0000\x0001\x0019" + + "\x0001\x0064\x000A\x0000\x0001\x0064\x0007\x0000\x0001\x0019\x0059\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0005\x0000" + + "\x0001\x0019\x0002\x0000\x0002\x0019\x0001\x0000\x000F\x0019\x0002\x0000\x0001\x0019\x000B\x0000" + + "\x0007\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000" + + "\x0001\x0019\x0001\x0000\x0003\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0064\x0001\x0000\x0002\x0019\x0006\x0000" + + "\x0001\x0019\x0007\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x005C\x0000\x0001\x0019\x0006\x0000" + + "\x0001\x0019\x0003\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0019\x0000" + + "\x0010\x0019\x0005\x0000\x0003\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000" + + "\x0002\x0019\x0002\x0000\x0002\x0019\x0004\x0000\x0001\x0019\x0004\x0064\x0001\x0000\x0001\x0019" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x009D\x0000\x0002\x0064\x0015\x0000\x0004\x0064\x006E\x0000\x0001\x0064\x000D\x0000\x0002\x0064" + + "\x0008\x0000\x0002\x0064\x0001\x0000\x0001\x0064\x0001\x0000\x0001\x0064\x0009\x0000\x0001\x0064" + + "\x0009\x0000\x0002\x0064\x0006\x0000\x0001\x0064\x0002\x0000\x0004\x0064\x0003\x0000\x0001\x0064" + + "\x0002\x0000\x0002\x0064\x0001\x0000\x0003\x0064\x0001\x0000\x0002\x0064\x0001\x0000\x0001\x0064" + + "\x0008\x0000\x0001\x0064\x0001\x0000\x0002\x0064\x0002\x0000\x0002\x0064\x0001\x0000\x0004\x0064" + + "\x0013\x0000\x0001\x0064\x00C0\x0000\x0001\x0065\x0065\x0000\x0001\x00D9\x0011\x0000\x0001\x00DA" + + "\x0002\x0000\x0001\x00DB\x0008\x0000\x0001\x00DC\x0012\x0000\x0001\x00DD\x0011\x0000\x0001\x00DE" + + "\x0002\x0000\x0001\x00DF\x0021\x0000\x0001\x0063\x0010\x0000\x0001\x0065\x0002\x0000\x0001\x0065" + + "\x0003\x0000\x0001\x0048\x0001\x0000\x0001\x0065\x002F\x0000\x0001\x0048\x0012\x0000\x0002\x0065" + + "\x003B\x0000\x0001\x001E\x0002\x0000\x0001\x001E\x001B\x0000\x0004\x001E\x00CF\x0000\x0001\x001E" + + "\x0080\x0000\x0001\x001E\x0024\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0011\x0000\x0001\x001E" + + "\x0004\x0000\x0001\x001E\x000F\x0000\x0004\x001E\x0003\x0000\x0001\x001E\x000A\x0000\x0001\x001E" + + "\x00C4\x0000\x0001\x001E\x00D3\x0000\x0004\x001E\x00AB\x0000\x0002\x001E\x0015\x0000\x0004\x001E" + + "\x006E\x0000\x0001\x001E\x000D\x0000\x0002\x001E\x0008\x0000\x0002\x001E\x0001\x0000\x0001\x001E" + + "\x0001\x0000\x0001\x001E\x0009\x0000\x0001\x001E\x0009\x0000\x0002\x001E\x0006\x0000\x0001\x001E" + + "\x0002\x0000\x0004\x001E\x0003\x0000\x0001\x001E\x0002\x0000\x0002\x001E\x0001\x0000\x0003\x001E" + + "\x0001\x0000\x0002\x001E\x0001\x0000\x0001\x001E\x0008\x0000\x0001\x001E\x0001\x0000\x0002\x001E" + + "\x0002\x0000\x0002\x001E\x0001\x0000\x0004\x001E\x0013\x0000\x0001\x001E\x008A\x0000\x0001\x001F" + + "\x0002\x0000\x0001\x001F\x001B\x0000\x0004\x001F\x00CF\x0000\x0001\x001F\x0080\x0000\x0001\x001F" + + "\x0024\x0000\x0001\x001F\x0001\x0000\x0002\x001F\x0011\x0000\x0001\x001F\x0004\x0000\x0001\x001F" + + "\x000F\x0000\x0004\x001F\x0003\x0000\x0001\x001F\x000A\x0000\x0001\x001F\x00C4\x0000\x0001\x001F" + + "\x00D3\x0000\x0004\x001F\x00AB\x0000\x0002\x001F\x0015\x0000\x0004\x001F\x006E\x0000\x0001\x001F" + + "\x000D\x0000\x0002\x001F\x0008\x0000\x0002\x001F\x0001\x0000\x0001\x001F\x0001\x0000\x0001\x001F" + + "\x0009\x0000\x0001\x001F\x0009\x0000\x0002\x001F\x0006\x0000\x0001\x001F\x0002\x0000\x0004\x001F" + + "\x0003\x0000\x0001\x001F\x0002\x0000\x0002\x001F\x0001\x0000\x0003\x001F\x0001\x0000\x0002\x001F" + + "\x0001\x0000\x0001\x001F\x0008\x0000\x0001\x001F\x0001\x0000\x0002\x001F\x0002\x0000\x0002\x001F" + + "\x0001\x0000\x0004\x001F\x0013\x0000\x0001\x001F\x00DD\x0000\x0001\x0074\x0001\x0077\x0002\x0000" + + "\x0001\x0075\x0025\x0074\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000\x001A\x00E0\x0001\x0000\x000A\x00E0" + + "\x000A\x0000\x0001\x00E1\x009E\x0000\x0001\x00E2\x002B\x0000\x0001\x0076\x009E\x0000\x0002\x0077" + + "\x0002\x0000\x003A\x0077\x000C\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0009\x0000\x0001\x0019" + + "\x0012\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x000B\x0000\x0001\x0022\x0002\x0000\x0001\x0022" + + "\x0008\x0000\x0001\x0019\x0012\x0000\x0004\x0022\x001D\x0000\x0001\x0019\x0057\x0000\x0001\x0019" + + "\x0016\x0000\x0002\x0019\x0013\x0000\x0001\x0046\x0001\x0019\x0020\x0000\x0001\x0046\x000B\x0000" + + "\x0001\x0022\x0076\x0000\x0001\x0046\x0009\x0000\x0001\x0022\x000D\x0000\x0004\x0019\x0002\x0000" + + "\x0002\x0019\x000C\x0000\x0003\x0019\x0001\x0022\x0001\x0000\x0002\x0022\x0009\x0000\x0003\x0019" + + "\x0003\x0000\x0001\x0019\x0001\x0000\x0001\x0022\x0004\x0000\x0001\x0022\x0002\x0019\x0001\x0000" + + "\x0004\x0046\x0001\x0000\x0002\x0019\x0005\x0000\x0004\x0022\x0002\x0000\x0001\x0019\x0001\x0022" + + "\x000A\x0000\x0001\x0022\x0007\x0000\x0001\x0019\x0059\x0000\x0001\x0019\x0004\x0000\x0001\x0019" + + "\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0005\x0000\x0001\x0019" + + "\x0002\x0000\x0002\x0019\x0001\x0000\x000F\x0019\x0002\x0000\x0001\x0019\x000B\x0000\x0007\x0019" + + "\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0001\x0019" + + "\x0001\x0000\x0003\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0022\x0001\x0000\x0002\x0019\x0006\x0000\x0001\x0019" + + "\x0007\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x005C\x0000\x0001\x0019\x0006\x0000\x0001\x0019" + + "\x0003\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0019\x0000\x0010\x0019" + + "\x0005\x0000\x0003\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0002\x0019" + + "\x0002\x0000\x0002\x0019\x0004\x0000\x0001\x0019\x0004\x0022\x0001\x0000\x0001\x0019\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x009D\x0000" + + "\x0002\x0022\x0015\x0000\x0004\x0022\x006E\x0000\x0001\x0022\x000D\x0000\x0002\x0022\x0008\x0000" + + "\x0002\x0022\x0001\x0000\x0001\x0022\x0001\x0000\x0001\x0022\x0009\x0000\x0001\x0022\x0009\x0000" + + "\x0002\x0022\x0006\x0000\x0001\x0022\x0002\x0000\x0004\x0022\x0003\x0000\x0001\x0022\x0002\x0000" + + "\x0002\x0022\x0001\x0000\x0003\x0022\x0001\x0000\x0002\x0022\x0001\x0000\x0001\x0022\x0008\x0000" + + "\x0001\x0022\x0001\x0000\x0002\x0022\x0002\x0000\x0002\x0022\x0001\x0000\x0004\x0022\x0013\x0000" + + "\x0001\x0022\x0052\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00E3\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x00E4\x0002\x0000\x0001\x00E5\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x00E6\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00E7\x0011\x0000\x0001\x00E8\x0002\x0000" + + "\x0001\x00E9\x0031\x0000\x0001\x0019\x0001\x0081\x0002\x0046\x0004\x0000\x0001\x0048\x0001\x0000" + + "\x0001\x0081\x0001\x0000\x0001\x0019\x0003\x0000\x0001\x0022\x0001\x0019\x0001\x0000\x001A\x0019" + + "\x0001\x0000\x000A\x0046\x0002\x0000\x0001\x0048\x0012\x0000\x0001\x0081\x0009\x0000\x0001\x00EA" + + "\x0011\x0000\x0001\x00EB\x0002\x0000\x0001\x00EC\x0008\x0000\x0001\x00ED\x0012\x0000\x0001\x00EE" + + "\x0011\x0000\x0001\x00EF\x0002\x0000\x0001\x00F0\x0032\x0000\x0001\x0082\x0008\x0000\x0001\x0082" + + "\x0005\x0000\x0001\x0081\x003C\x0000\x0001\x0082\x000A\x0000\x0001\x0019\x0004\x0000\x0001\x0019" + + "\x0009\x0000\x0001\x0019\x0012\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x000B\x0000\x0001\x0023" + + "\x0002\x0000\x0001\x0023\x0008\x0000\x0001\x0019\x0012\x0000\x0004\x0023\x001D\x0000\x0001\x0019" + + "\x0057\x0000\x0001\x0019\x0016\x0000\x0002\x0019\x0013\x0000\x0001\x0046\x0001\x0019\x0020\x0000" + + "\x0001\x0046\x000B\x0000\x0001\x0023\x0076\x0000\x0001\x0046\x0009\x0000\x0001\x0023\x000D\x0000" + + "\x0004\x0019\x0002\x0000\x0002\x0019\x000C\x0000\x0003\x0019\x0001\x0023\x0001\x0000\x0002\x0023" + + "\x0009\x0000\x0003\x0019\x0003\x0000\x0001\x0019\x0001\x0000\x0001\x0023\x0004\x0000\x0001\x0023" + + "\x0002\x0019\x0001\x0000\x0004\x0046\x0001\x0000\x0002\x0019\x0005\x0000\x0004\x0023\x0002\x0000" + + "\x0001\x0019\x0001\x0023\x000A\x0000\x0001\x0023\x0007\x0000\x0001\x0019\x0059\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0006\x0000\x0001\x0019" + + "\x0005\x0000\x0001\x0019\x0002\x0000\x0002\x0019\x0001\x0000\x000F\x0019\x0002\x0000\x0001\x0019" + + "\x000B\x0000\x0007\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019" + + "\x0002\x0000\x0001\x0019\x0001\x0000\x0003\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0023\x0001\x0000\x0002\x0019" + + "\x0006\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x005C\x0000\x0001\x0019" + + "\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0007\x0000\x0001\x0019" + + "\x0019\x0000\x0010\x0019\x0005\x0000\x0003\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019" + + "\x0003\x0000\x0002\x0019\x0002\x0000\x0002\x0019\x0004\x0000\x0001\x0019\x0004\x0023\x0001\x0000" + + "\x0001\x0019\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x009D\x0000\x0002\x0023\x0015\x0000\x0004\x0023\x006E\x0000\x0001\x0023\x000D\x0000" + + "\x0002\x0023\x0008\x0000\x0002\x0023\x0001\x0000\x0001\x0023\x0001\x0000\x0001\x0023\x0009\x0000" + + "\x0001\x0023\x0009\x0000\x0002\x0023\x0006\x0000\x0001\x0023\x0002\x0000\x0004\x0023\x0003\x0000" + + "\x0001\x0023\x0002\x0000\x0002\x0023\x0001\x0000\x0003\x0023\x0001\x0000\x0002\x0023\x0001\x0000" + + "\x0001\x0023\x0008\x0000\x0001\x0023\x0001\x0000\x0002\x0023\x0002\x0000\x0002\x0023\x0001\x0000" + + "\x0004\x0023\x0013\x0000\x0001\x0023\x0052\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x00B9\x0001\x0000\x0001\x00BA\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00BB\x0002\x0000\x0001\x00BC\x0004\x0000" + + "\x0001\x00BD\x0003\x0000\x0001\x00BE\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00BF\x0011\x0000" + + "\x0001\x00C0\x0002\x0000\x0001\x00C1\x0031\x0000\x0001\x0019\x0001\x0047\x0008\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0074\x0001\x0000\x0002\x0019\x0001\x0075\x001A\x0098" + + "\x000B\x0074\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0047\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x00B9\x0001\x0000\x0001\x00BA\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00BB\x0002\x0000" + + "\x0001\x00BC\x0004\x0000\x0001\x00BD\x0003\x0000\x0001\x00BE\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x00BF\x0011\x0000\x0001\x00C0\x0002\x0000\x0001\x00C1\x0031\x0000\x0001\x0019\x0001\x0047" + + "\x0008\x0000\x0001\x0047\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0074\x0001\x0077\x0002\x0019" + + "\x0001\x0075\x0001\x00F1\x0001\x00F2\x0001\x00F3\x0001\x00F4\x0001\x00F5\x0001\x00F6\x0001\x00F7" + + "\x0001\x00F8\x0001\x00F9\x0001\x00FA\x0001\x00FB\x0001\x00FC\x0001\x00FD\x0001\x00FE\x0001\x00FF" + + "\x0001\u0100\x0001\u0101\x0001\u0102\x0001\u0103\x0001\u0104\x0001\u0105\x0001\u0106\x0001\u0107" + + "\x0001\u0108\x0001\u0109\x0001\u010a\x0001\x0074\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0047\x008F\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x001A\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B1" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00B2\x0002\x0000\x0001\x00B3\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x00B4\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00B5\x0011\x0000\x0001\x00B6" + + "\x0002\x0000\x0001\x00B7\x0031\x0000\x0001\x0019\x0003\x0046\x0002\x0000\x0002\x00B8\x0001\x0048" + + "\x0001\x0000\x0001\x0046\x0001\x0000\x0001\x0019\x0001\x0000\x0001\u010c\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\u010d\x001A\x0024\x0001\x008C\x000A\x008D\x0001\x0000\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\u010c\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x00B8\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0046\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x00C2\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00C3\x0002\x0000\x0001\x00C4" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x00C5\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00C6" + + "\x0011\x0000\x0001\x00C7\x0002\x0000\x0001\x00C8\x0021\x0000\x0001\x0063\x000F\x0000\x0001\x0019" + + "\x0001\x0048\x0002\x0046\x0001\x0065\x0003\x0000\x0001\x0048\x0001\x0000\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0074\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x0075\x001A\x0098" + + "\x0001\x0074\x000A\u010e\x0001\x0000\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0048" + + "\x0001\x0065\x0003\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0009\x0024\x0001\u010f\x0010\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x000D\x0024\x0001\u0110\x000C\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0008\x0024\x0001\u0111\x0011\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u0112\x000A\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0009\x0000\x0001\x00C9\x0001\x0000" + + "\x0001\x00CA\x000F\x0000\x0001\x00CB\x0002\x0000\x0001\x00CC\x0004\x0000\x0001\x00CD\x0003\x0000" + + "\x0001\x00CE\x0012\x0000\x0001\x00CF\x0011\x0000\x0001\x00D0\x0002\x0000\x0001\x00D1\x0032\x0000" + + "\x0001\x0052\x0002\x001A\x0006\x0000\x0001\x0052\x0003\x0000\x0001\x0074\x0003\x0000\x0001\x0075" + + "\x001B\x0074\x000A\x0099\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0052\x0009\x0000\x0001\x00C9" + + "\x0001\x0000\x0001\x00CA\x000F\x0000\x0001\x00CB\x0002\x0000\x0001\x00CC\x0004\x0000\x0001\x00CD" + + "\x0003\x0000\x0001\x00CE\x0012\x0000\x0001\x00CF\x0011\x0000\x0001\x00D0\x0002\x0000\x0001\x00D1" + + "\x0032\x0000\x0001\x0052\x0002\x001A\x0006\x0000\x0001\x0052\x0003\x0000\x0001\x0074\x0001\x0077" + + "\x0002\x0000\x0001\x0075\x0001\u0113\x0001\u0114\x0001\u0115\x0001\u0116\x0001\u0117\x0001\u0118" + + "\x0001\u0119\x0001\u011a\x0001\u011b\x0001\u011c\x0001\u011d\x0001\u011e\x0001\u011f\x0001\u0120" + + "\x0001\u0121\x0001\u0122\x0001\u0123\x0001\u0124\x0001\u0125\x0001\u0126\x0001\u0127\x0001\u0128" + + "\x0001\u0129\x0001\u012a\x0001\u012b\x0001\u012c\x0001\x0074\x0001\u012d\x0001\u012e\x0005\u012d" + + "\x0001\u012f\x0001\u012e\x0001\u012d\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0052\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000" + + "\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x0094\x001A\x0024" + + "\x0001\x008C\x000A\u0130\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093" + + "\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00D2\x0001\x0000" + + "\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x00D3\x0002\x0000\x0001\x00D4\x0004\x0000\x0001\x004D\x0003\x0000" + + "\x0001\x00D5\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00D6\x0011\x0000\x0001\x00D7\x0002\x0000" + + "\x0001\x00D8\x0021\x0000\x0001\x0063\x000F\x0000\x0001\x0019\x0001\x0053\x0002\x001A\x0001\x0065" + + "\x0003\x0000\x0001\x0053\x0001\x0000\x0001\x0053\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0074" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x0075\x001A\x0098\x0001\x0074\x000A\x0099\x0001\x0000" + + "\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0053\x0001\x0065\x0003\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B" + + "\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019" + + "\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x0094\x001A\x0024\x0001\x008C" + + "\x0002\x0095\x0001\u0130\x0002\x0095\x0002\u0130\x0002\x0095\x0001\u0130\x0001\x0000\x0001\x0074" + + "\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0131\x001A\x0098" + + "\x0001\x0074\x000A\u010e\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051" + + "\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0132" + + "\x001A\x0098\x0001\x0074\x000A\x0099\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000" + + "\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x001A\x0094\x0000\x0004\u0133\x0002\x0000\x0001\u0133\x000D\x0000\x0001\u0133" + + "\x0006\x0000\x000A\u0133\x0001\u0134\x00CE\x0000\x0001\u0135\x0019\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x00B9\x0001\x0000\x0001\x00BA\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00BB\x0002\x0000" + + "\x0001\x00BC\x0004\x0000\x0001\x00BD\x0003\x0000\x0001\x00BE\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x00BF\x0011\x0000\x0001\x00C0\x0002\x0000\x0001\x00C1\x0031\x0000\x0001\x0019\x0001\x0047" + + "\x0008\x0000\x0001\x0047\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0074\x0001\x0077\x0002\x0019" + + "\x0001\x0075\x0001\u0136\x0001\u0137\x0001\u0138\x0001\u0139\x0001\u013a\x0001\u013b\x0001\u013c" + + "\x0001\u013d\x0001\u013e\x0001\u013f\x0001\u0140\x0001\u0141\x0001\u0142\x0001\u0143\x0001\u0144" + + "\x0001\u0145\x0001\u0146\x0001\u0147\x0001\u0148\x0001\u0149\x0001\u014a\x0001\u014b\x0001\u014c" + + "\x0001\u014d\x0001\u014e\x0001\u014f\x0001\x0074\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0047\x008F\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x001A\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B1" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00B2\x0002\x0000\x0001\x00B3\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x00B4\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00B5\x0011\x0000\x0001\x00B6" + + "\x0002\x0000\x0001\x00B7\x0031\x0000\x0001\x0019\x0003\x0046\x0002\x0000\x0002\x00B8\x0001\x0048" + + "\x0001\x0000\x0001\x0046\x0001\x0000\x0001\x0019\x0001\x0000\x0001\u010c\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\u0151\x001A\x002D\x0001\x009E\x000A\x009F\x0001\x0000\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\u010c\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x00B8\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0046\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0009\x002D\x0001\u0152" + + "\x0010\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x000D\x002D\x0001\u0153\x000C\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0008\x002D\x0001\u0154\x0011\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u0155\x000A\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0009\x0000\x0001\x00C9\x0001\x0000\x0001\x00CA\x000F\x0000\x0001\x00CB\x0002\x0000\x0001\x00CC" + + "\x0004\x0000\x0001\x00CD\x0003\x0000\x0001\x00CE\x0012\x0000\x0001\x00CF\x0011\x0000\x0001\x00D0" + + "\x0002\x0000\x0001\x00D1\x0032\x0000\x0001\x0052\x0002\x001A\x0006\x0000\x0001\x0052\x0003\x0000" + + "\x0001\x0074\x0001\x0077\x0002\x0000\x0001\x0075\x0001\u0156\x0001\u0157\x0001\u0158\x0001\u0159" + + "\x0001\u015a\x0001\u015b\x0001\u015c\x0001\u015d\x0001\u015e\x0001\u015f\x0001\u0160\x0001\u0161" + + "\x0001\u0162\x0001\u0163\x0001\u0164\x0001\u0165\x0001\u0166\x0001\u0167\x0001\u0168\x0001\u0169" + + "\x0001\u016a\x0001\u016b\x0001\u016c\x0001\u016d\x0001\u016e\x0001\u016f\x0001\x0074\x0001\u0170" + + "\x0001\u0171\x0005\u0170\x0001\u0172\x0001\u0171\x0001\u0170\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0052\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000" + + "\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000" + + "\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000" + + "\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x00A4\x001A\x002D\x0001\x009E\x000A\u0173\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074" + + "\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000" + + "\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000" + + "\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052" + + "\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x00A4\x001A\x002D\x0001\x009E\x0002\x00A5\x0001\u0173\x0002\x00A5" + + "\x0002\u0173\x0002\x00A5\x0001\u0173\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000" + + "\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x001A\x0094\x0000\x0004\u0174\x0002\x0000\x0001\u0174\x000D\x0000\x0001\u0174" + + "\x0006\x0000\x000A\u0174\x0001\u0175\x00CE\x0000\x0001\u0176\x0051\x0000\x0001\x0035\x0002\x0000" + + "\x0001\x0035\x001B\x0000\x0004\x0035\x00CF\x0000\x0001\x0035\x0080\x0000\x0001\x0035\x0024\x0000" + + "\x0001\x0035\x0001\x0000\x0002\x0035\x0011\x0000\x0001\x0035\x0004\x0000\x0001\x0035\x000F\x0000" + + "\x0004\x0035\x0003\x0000\x0001\x0035\x000A\x0000\x0001\x0035\x00C4\x0000\x0001\x0035\x00D3\x0000" + + "\x0004\x0035\x00AB\x0000\x0002\x0035\x0015\x0000\x0004\x0035\x006E\x0000\x0001\x0035\x000D\x0000" + + "\x0002\x0035\x0008\x0000\x0002\x0035\x0001\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0009\x0000" + + "\x0001\x0035\x0009\x0000\x0002\x0035\x0006\x0000\x0001\x0035\x0002\x0000\x0004\x0035\x0003\x0000" + + "\x0001\x0035\x0002\x0000\x0002\x0035\x0001\x0000\x0003\x0035\x0001\x0000\x0002\x0035\x0001\x0000" + + "\x0001\x0035\x0008\x0000\x0001\x0035\x0001\x0000\x0002\x0035\x0002\x0000\x0002\x0035\x0001\x0000" + + "\x0004\x0035\x0013\x0000\x0001\x0035\x00B6\x0000\x0001\u0177\x0016\x0000\x0002\u0177\x0058\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0019\x0009\x0000\x0001\x0019\x0012\x0000\x0001\x0019\x0003\x0000" + + "\x0001\x0019\x000B\x0000\x0001\x0046\x0002\x0000\x0001\x0046\x0008\x0000\x0001\x0019\x0012\x0000" + + "\x0004\x0046\x001D\x0000\x0001\x0019\x0057\x0000\x0001\x0019\x0016\x0000\x0002\x0019\x0013\x0000" + + "\x0001\x0046\x0001\x0019\x0020\x0000\x0001\x0046\x000B\x0000\x0001\x0046\x0076\x0000\x0001\x0046" + + "\x0009\x0000\x0001\x0046\x000D\x0000\x0004\x0019\x0002\x0000\x0002\x0019\x000C\x0000\x0003\x0019" + + "\x0001\x0046\x0001\x0000\x0002\x0046\x0009\x0000\x0003\x0019\x0003\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0046\x0004\x0000\x0001\x0046\x0002\x0019\x0001\x0000\x0004\x0046\x0001\x0000\x0002\x0019" + + "\x0005\x0000\x0004\x0046\x0002\x0000\x0001\x0019\x0001\x0046\x000A\x0000\x0001\x0046\x0007\x0000" + + "\x0001\x0019\x0059\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000" + + "\x0001\x0019\x0006\x0000\x0001\x0019\x0005\x0000\x0001\x0019\x0002\x0000\x0002\x0019\x0001\x0000" + + "\x000F\x0019\x0002\x0000\x0001\x0019\x000B\x0000\x0007\x0019\x0002\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0003\x0019\x0002\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0046\x0001\x0000\x0002\x0019\x0006\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x005C\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0003\x0000" + + "\x0001\x0019\x0007\x0000\x0001\x0019\x0019\x0000\x0010\x0019\x0005\x0000\x0003\x0019\x0004\x0000" + + "\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x0002\x0000\x0002\x0019\x0004\x0000" + + "\x0001\x0019\x0004\x0046\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x009D\x0000\x0002\x0046\x0015\x0000\x0004\x0046" + + "\x006E\x0000\x0001\x0046\x000D\x0000\x0002\x0046\x0008\x0000\x0002\x0046\x0001\x0000\x0001\x0046" + + "\x0001\x0000\x0001\x0046\x0009\x0000\x0001\x0046\x0009\x0000\x0002\x0046\x0006\x0000\x0001\x0046" + + "\x0002\x0000\x0004\x0046\x0003\x0000\x0001\x0046\x0002\x0000\x0002\x0046\x0001\x0000\x0003\x0046" + + "\x0001\x0000\x0002\x0046\x0001\x0000\x0001\x0046\x0008\x0000\x0001\x0046\x0001\x0000\x0002\x0046" + + "\x0002\x0000\x0002\x0046\x0001\x0000\x0004\x0046\x0013\x0000\x0001\x0046\x0057\x0000\x0001\u0178" + + "\x0001\x0000\x0001\u0179\x000F\x0000\x0001\u017a\x0002\x0000\x0001\u017b\x0004\x0000\x0001\u017c" + + "\x0003\x0000\x0001\u017d\x0012\x0000\x0001\u017e\x0011\x0000\x0001\u017f\x0002\x0000\x0001\u0180" + + "\x0032\x0000\x0001\x00B8\x0002\x0046\x0006\x0000\x0001\x00B8\x0023\x0000\x000A\x0046\x0015\x0000" + + "\x0001\x00B8\x000A\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0009\x0000\x0001\x0019\x0012\x0000" + + "\x0001\x0019\x0003\x0000\x0001\x0019\x000B\x0000\x0001\x0047\x0002\x0000\x0001\x0047\x0008\x0000" + + "\x0001\x0019\x0012\x0000\x0004\x0047\x001D\x0000\x0001\x0019\x005A\x0000\x0001\x0019\x0003\x0000" + + "\x0004\x0019\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000" + + "\x0002\x0019\x0002\x0000\x0003\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0002\x0000" + + "\x0004\x0019\x0001\x0000\x0003\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0003\x0019\x0001\x0000" + + "\x0002\x0019\x0001\x0000\x0004\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0008\x0019\x0001\x0000" + + "\x0002\x0019\x0001\x0000\x0008\x0019\x0002\x0000\x0007\x0019\x0001\x0000\x0008\x0019\x0001\x0000" + + "\x0006\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0003\x0000\x0003\x0019\x0053\x0000\x0001\x0019\x0016\x0000\x0002\x0019\x0014\x0000" + + "\x0001\x0019\x002C\x0000\x0001\x0047\x0080\x0000\x0001\x0047\x000D\x0000\x0004\x0019\x0002\x0000" + + "\x0002\x0019\x000C\x0000\x0003\x0019\x0001\x0047\x0001\x0000\x0002\x0047\x0009\x0000\x0003\x0019" + + "\x0003\x0000\x0001\x0019\x0001\x0000\x0001\x0047\x0004\x0000\x0001\x0047\x0002\x0019\x0006\x0000" + + "\x0002\x0019\x0005\x0000\x0004\x0047\x0002\x0000\x0001\x0019\x0001\x0047\x000A\x0000\x0001\x0047" + + "\x0007\x0000\x0001\x0019\x0065\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x000A\x0000\x0002\x0019" + + "\x0001\x0000\x0003\x0019\x0007\x0000\x0001\x0019\x0006\x0000\x0002\x0019\x0001\x0000\x0002\x0019" + + "\x0006\x0000\x0001\x0019\x0004\x0000\x0002\x0019\x0002\x0000\x0002\x0019\x0005\x0000\x0003\x0019" + + "\x0002\x0000\x0001\x0019\x000D\x0000\x0001\x0019\x000E\x0000\x0001\x0019\x0007\x0000\x0001\x0019" + + "\x0059\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019" + + "\x0006\x0000\x0001\x0019\x0005\x0000\x0001\x0019\x0002\x0000\x0002\x0019\x0001\x0000\x000F\x0019" + + "\x0002\x0000\x0001\x0019\x000B\x0000\x0007\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0003\x0019\x0002\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0047" + + "\x0001\x0000\x0002\x0019\x0006\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x005C\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0003\x0000\x0001\x0019" + + "\x0007\x0000\x0001\x0019\x0019\x0000\x0010\x0019\x0005\x0000\x0003\x0019\x0004\x0000\x0001\x0019" + + "\x0006\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x0002\x0000\x0002\x0019\x0004\x0000\x0001\x0019" + + "\x0004\x0047\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x009D\x0000\x0002\x0047\x0015\x0000\x0004\x0047\x006E\x0000" + + "\x0001\x0047\x000D\x0000\x0002\x0047\x0008\x0000\x0002\x0047\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0009\x0000\x0001\x0047\x0009\x0000\x0002\x0047\x0006\x0000\x0001\x0047\x0002\x0000" + + "\x0004\x0047\x0003\x0000\x0001\x0047\x0002\x0000\x0002\x0047\x0001\x0000\x0003\x0047\x0001\x0000" + + "\x0002\x0047\x0001\x0000\x0001\x0047\x0008\x0000\x0001\x0047\x0001\x0000\x0002\x0047\x0002\x0000" + + "\x0002\x0047\x0001\x0000\x0004\x0047\x0013\x0000\x0001\x0047\x0058\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0019\x0009\x0000\x0001\x0019\x0012\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x000B\x0000" + + "\x0001\x0048\x0002\x0000\x0001\x0048\x0008\x0000\x0001\x0019\x0012\x0000\x0004\x0048\x001D\x0000" + + "\x0001\x0019\x0057\x0000\x0001\x0019\x0016\x0000\x0002\x0019\x0013\x0000\x0001\x0046\x0001\x0019" + + "\x0020\x0000\x0001\x0046\x000B\x0000\x0001\x0048\x0076\x0000\x0001\x0046\x0009\x0000\x0001\x0048" + + "\x000D\x0000\x0004\x0019\x0002\x0000\x0002\x0019\x000C\x0000\x0003\x0019\x0001\x0048\x0001\x0000" + + "\x0002\x0048\x0009\x0000\x0003\x0019\x0003\x0000\x0001\x0019\x0001\x0000\x0001\x0048\x0004\x0000" + + "\x0001\x0048\x0002\x0019\x0001\x0000\x0004\x0046\x0001\x0000\x0002\x0019\x0005\x0000\x0004\x0048" + + "\x0002\x0000\x0001\x0019\x0001\x0048\x000A\x0000\x0001\x0048\x0007\x0000\x0001\x0019\x0059\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0006\x0000" + + "\x0001\x0019\x0005\x0000\x0001\x0019\x0002\x0000\x0002\x0019\x0001\x0000\x000F\x0019\x0002\x0000" + + "\x0001\x0019\x000B\x0000\x0007\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0003\x0019\x0002\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0048\x0001\x0000" + + "\x0002\x0019\x0006\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x005C\x0000" + + "\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0007\x0000" + + "\x0001\x0019\x0019\x0000\x0010\x0019\x0005\x0000\x0003\x0019\x0004\x0000\x0001\x0019\x0006\x0000" + + "\x0001\x0019\x0003\x0000\x0002\x0019\x0002\x0000\x0002\x0019\x0004\x0000\x0001\x0019\x0004\x0048" + + "\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x009D\x0000\x0002\x0048\x0015\x0000\x0004\x0048\x006E\x0000\x0001\x0048" + + "\x000D\x0000\x0002\x0048\x0008\x0000\x0002\x0048\x0001\x0000\x0001\x0048\x0001\x0000\x0001\x0048" + + "\x0009\x0000\x0001\x0048\x0009\x0000\x0002\x0048\x0006\x0000\x0001\x0048\x0002\x0000\x0004\x0048" + + "\x0003\x0000\x0001\x0048\x0002\x0000\x0002\x0048\x0001\x0000\x0003\x0048\x0001\x0000\x0002\x0048" + + "\x0001\x0000\x0001\x0048\x0008\x0000\x0001\x0048\x0001\x0000\x0002\x0048\x0002\x0000\x0002\x0048" + + "\x0001\x0000\x0004\x0048\x0013\x0000\x0001\x0048\x008A\x0000\x0001\x0052\x0002\x0000\x0001\x0052" + + "\x001B\x0000\x0004\x0052\x0083\x0000\x0001\x001A\x0044\x0000\x0001\x001A\x00A7\x0000\x0001\x001A" + + "\x0021\x0000\x0001\x001A\x000B\x0000\x0001\x0052\x0076\x0000\x0001\x001A\x0009\x0000\x0001\x0052" + + "\x0024\x0000\x0001\x0052\x0001\x0000\x0002\x0052\x0011\x0000\x0001\x0052\x0004\x0000\x0001\x0052" + + "\x0003\x0000\x0004\x001A\x0008\x0000\x0004\x0052\x0003\x0000\x0001\x0052\x000A\x0000\x0001\x0052" + + "\x00B5\x0000\x0002\x001A\x00DC\x0000\x0001\x0052\x00D3\x0000\x0004\x0052\x00AB\x0000\x0002\x0052" + + "\x0015\x0000\x0004\x0052\x006E\x0000\x0001\x0052\x000D\x0000\x0002\x0052\x0008\x0000\x0002\x0052" + + "\x0001\x0000\x0001\x0052\x0001\x0000\x0001\x0052\x0009\x0000\x0001\x0052\x0009\x0000\x0002\x0052" + + "\x0006\x0000\x0001\x0052\x0002\x0000\x0004\x0052\x0003\x0000\x0001\x0052\x0002\x0000\x0002\x0052" + + "\x0001\x0000\x0003\x0052\x0001\x0000\x0002\x0052\x0001\x0000\x0001\x0052\x0008\x0000\x0001\x0052" + + "\x0001\x0000\x0002\x0052\x0002\x0000\x0002\x0052\x0001\x0000\x0004\x0052\x0013\x0000\x0001\x0052" + + "\x0058\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0009\x0000\x0001\x0019\x0012\x0000\x0001\x0019" + + "\x0003\x0000\x0001\x0019\x000B\x0000\x0001\x0053\x0002\x0000\x0001\x0053\x0008\x0000\x0001\x0019" + + "\x0012\x0000\x0004\x0053\x001D\x0000\x0001\x0019\x0057\x0000\x0001\x0019\x0016\x0000\x0002\x0019" + + "\x0013\x0000\x0001\x001A\x0001\x0019\x0020\x0000\x0001\x001A\x000B\x0000\x0001\x0053\x0076\x0000" + + "\x0001\x001A\x0009\x0000\x0001\x0053\x000D\x0000\x0004\x0019\x0002\x0000\x0002\x0019\x000C\x0000" + + "\x0003\x0019\x0001\x0053\x0001\x0000\x0002\x0053\x0009\x0000\x0003\x0019\x0003\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0053\x0004\x0000\x0001\x0053\x0002\x0019\x0001\x0000\x0004\x001A\x0001\x0000" + + "\x0002\x0019\x0005\x0000\x0004\x0053\x0002\x0000\x0001\x0019\x0001\x0053\x000A\x0000\x0001\x0053" + + "\x0007\x0000\x0001\x0019\x0059\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019" + + "\x0003\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0005\x0000\x0001\x0019\x0002\x0000\x0002\x0019" + + "\x0001\x0000\x000F\x0019\x0002\x0000\x0001\x0019\x000B\x0000\x0007\x0019\x0002\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0003\x0019" + + "\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0053\x0001\x0000\x0002\x0019\x0006\x0000\x0001\x0019\x0007\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x005C\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019" + + "\x0003\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0019\x0000\x0010\x0019\x0005\x0000\x0003\x0019" + + "\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x0002\x0000\x0002\x0019" + + "\x0004\x0000\x0001\x0019\x0004\x0053\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x009D\x0000\x0002\x0053\x0015\x0000" + + "\x0004\x0053\x006E\x0000\x0001\x0053\x000D\x0000\x0002\x0053\x0008\x0000\x0002\x0053\x0001\x0000" + + "\x0001\x0053\x0001\x0000\x0001\x0053\x0009\x0000\x0001\x0053\x0009\x0000\x0002\x0053\x0006\x0000" + + "\x0001\x0053\x0002\x0000\x0004\x0053\x0003\x0000\x0001\x0053\x0002\x0000\x0002\x0053\x0001\x0000" + + "\x0003\x0053\x0001\x0000\x0002\x0053\x0001\x0000\x0001\x0053\x0008\x0000\x0001\x0053\x0001\x0000" + + "\x0002\x0053\x0002\x0000\x0002\x0053\x0001\x0000\x0004\x0053\x0013\x0000\x0001\x0053\x008A\x0000" + + "\x0001\x0065\x0002\x0000\x0001\x0065\x001B\x0000\x0004\x0065\x00CF\x0000\x0001\x0065\x0080\x0000" + + "\x0001\x0065\x0024\x0000\x0001\x0065\x0001\x0000\x0002\x0065\x0011\x0000\x0001\x0065\x0004\x0000" + + "\x0001\x0065\x000F\x0000\x0004\x0065\x0003\x0000\x0001\x0065\x000A\x0000\x0001\x0065\x00C4\x0000" + + "\x0001\x0065\x00D3\x0000\x0004\x0065\x00AB\x0000\x0002\x0065\x0015\x0000\x0004\x0065\x006E\x0000" + + "\x0001\x0065\x000D\x0000\x0002\x0065\x0008\x0000\x0002\x0065\x0001\x0000\x0001\x0065\x0001\x0000" + + "\x0001\x0065\x0009\x0000\x0001\x0065\x0009\x0000\x0002\x0065\x0006\x0000\x0001\x0065\x0002\x0000" + + "\x0004\x0065\x0003\x0000\x0001\x0065\x0002\x0000\x0002\x0065\x0001\x0000\x0003\x0065\x0001\x0000" + + "\x0002\x0065\x0001\x0000\x0001\x0065\x0008\x0000\x0001\x0065\x0001\x0000\x0002\x0065\x0002\x0000" + + "\x0002\x0065\x0001\x0000\x0004\x0065\x0013\x0000\x0001\x0065\x00E1\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A5\x0000\x0002\x00E1\x0002\x0000\x0030\x00E1\x0001\x0000\x0001\u0183" + + "\x0003\x00E1\x0001\u0184\x0001\x0000\x0003\x00E1\x0091\x0000\x0001\x0074\x0001\x0077\x0002\x0000" + + "\x0026\x0074\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0000\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x000D\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0009\x0000" + + "\x0001\x0019\x0012\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x000B\x0000\x0001\x0081\x0002\x0000" + + "\x0001\x0081\x0008\x0000\x0001\x0019\x0012\x0000\x0004\x0081\x001D\x0000\x0001\x0019\x0057\x0000" + + "\x0001\x0019\x0016\x0000\x0002\x0019\x0013\x0000\x0001\x0046\x0001\x0019\x0020\x0000\x0001\x0046" + + "\x000B\x0000\x0001\x0081\x0076\x0000\x0001\x0046\x0009\x0000\x0001\x0081\x000D\x0000\x0004\x0019" + + "\x0002\x0000\x0002\x0019\x000C\x0000\x0003\x0019\x0001\x0081\x0001\x0000\x0002\x0081\x0009\x0000" + + "\x0003\x0019\x0003\x0000\x0001\x0019\x0001\x0000\x0001\x0081\x0004\x0000\x0001\x0081\x0002\x0019" + + "\x0001\x0000\x0004\x0046\x0001\x0000\x0002\x0019\x0005\x0000\x0004\x0081\x0002\x0000\x0001\x0019" + + "\x0001\x0081\x000A\x0000\x0001\x0081\x0007\x0000\x0001\x0019\x0059\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0005\x0000" + + "\x0001\x0019\x0002\x0000\x0002\x0019\x0001\x0000\x000F\x0019\x0002\x0000\x0001\x0019\x000B\x0000" + + "\x0007\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000" + + "\x0001\x0019\x0001\x0000\x0003\x0019\x0002\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0081\x0001\x0000\x0002\x0019\x0006\x0000" + + "\x0001\x0019\x0007\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x005C\x0000\x0001\x0019\x0006\x0000" + + "\x0001\x0019\x0003\x0000\x0001\x0019\x0003\x0000\x0001\x0019\x0007\x0000\x0001\x0019\x0019\x0000" + + "\x0010\x0019\x0005\x0000\x0003\x0019\x0004\x0000\x0001\x0019\x0006\x0000\x0001\x0019\x0003\x0000" + + "\x0002\x0019\x0002\x0000\x0002\x0019\x0004\x0000\x0001\x0019\x0004\x0081\x0001\x0000\x0001\x0019" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x009D\x0000\x0002\x0081\x0015\x0000\x0004\x0081\x006E\x0000\x0001\x0081\x000D\x0000\x0002\x0081" + + "\x0008\x0000\x0002\x0081\x0001\x0000\x0001\x0081\x0001\x0000\x0001\x0081\x0009\x0000\x0001\x0081" + + "\x0009\x0000\x0002\x0081\x0006\x0000\x0001\x0081\x0002\x0000\x0004\x0081\x0003\x0000\x0001\x0081" + + "\x0002\x0000\x0002\x0081\x0001\x0000\x0003\x0081\x0001\x0000\x0002\x0081\x0001\x0000\x0001\x0081" + + "\x0008\x0000\x0001\x0081\x0001\x0000\x0002\x0081\x0002\x0000\x0002\x0081\x0001\x0000\x0004\x0081" + + "\x0013\x0000\x0001\x0081\x008A\x0000\x0001\x0082\x0002\x0000\x0001\x0082\x001B\x0000\x0004\x0082" + + "\x00CF\x0000\x0001\x0082\x0080\x0000\x0001\x0082\x0024\x0000\x0001\x0082\x0001\x0000\x0002\x0082" + + "\x0011\x0000\x0001\x0082\x0004\x0000\x0001\x0082\x000F\x0000\x0004\x0082\x0003\x0000\x0001\x0082" + + "\x000A\x0000\x0001\x0082\x00C4\x0000\x0001\x0082\x00D3\x0000\x0004\x0082\x00AB\x0000\x0002\x0082" + + "\x0015\x0000\x0004\x0082\x006E\x0000\x0001\x0082\x000D\x0000\x0002\x0082\x0008\x0000\x0002\x0082" + + "\x0001\x0000\x0001\x0082\x0001\x0000\x0001\x0082\x0009\x0000\x0001\x0082\x0009\x0000\x0002\x0082" + + "\x0006\x0000\x0001\x0082\x0002\x0000\x0004\x0082\x0003\x0000\x0001\x0082\x0002\x0000\x0002\x0082" + + "\x0001\x0000\x0003\x0082\x0001\x0000\x0002\x0082\x0001\x0000\x0001\x0082\x0008\x0000\x0001\x0082" + + "\x0001\x0000\x0002\x0082\x0002\x0000\x0002\x0082\x0001\x0000\x0004\x0082\x0013\x0000\x0001\x0082" + + "\x0052\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0001\x0024\x0002\u0185\x0001\u0186\x0001\u0187\x0008\u0185\x0001\x0024" + + "\x0001\u0188\x0005\u0185\x0006\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\u0189\x0002\u0185\x0001\x0024" + + "\x0001\u0185\x0001\u018a\x0003\u0185\x0001\u018b\x0002\u0185\x0004\x0024\x0004\u0185\x0001\x0024" + + "\x0002\u0185\x0001\x0024\x0002\u0185\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u0185\x0001\x0024" + + "\x0001\u0185\x0002\x0024\x0001\u018c\x0001\x0024\x0001\u0185\x0008\x0024\x0001\u0185\x0002\x0024" + + "\x0002\u0185\x0002\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\x0024\x0001\u0185\x0001\u018d\x0002\u0185" + + "\x0002\x0024\x0001\u0185\x0003\x0024\x0001\u018e\x0001\u018f\x0001\x0024\x0001\u0190\x0002\u0185" + + "\x0009\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u0185\x0001\x0024\x0001\u0185\x0008\x0024" + + "\x0001\u0185\x0001\x0024\x0002\u0185\x0008\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0004\x0024\x0001\u0191" + + "\x0005\x0024\x0001\u0185\x000F\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0004\x0024\x0002\u0185\x0002\x0024" + + "\x0001\u0185\x0001\x0024\x0001\u0185\x000B\x0024\x0002\u0185\x0002\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0001\u0192\x0001\x0024\x0002\u0185\x0001\u0193\x0001\u0194\x000A\u0185\x0001\u0195\x0001\u0185" + + "\x0002\x0024\x0002\u0185\x0003\x0024\x0001\u0185\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0002\x0024\x0004\u0185" + + "\x0003\x0024\x0002\u0185\x0001\u0196\x0001\u0185\x0001\x0024\x0002\u0185\x000A\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0001\u0197\x0001\u0185\x0002\x0024\x0001\u0185\x0003\x0024\x0001\u0198\x0005\x0024" + + "\x0003\u0185\x0003\x0024\x0001\u0185\x0001\x0024\x0001\u0185\x0001\x0024\x0002\u0185\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0003\u0185\x0001\u0199\x0001\u0185\x0001\u019a\x0001\x0024\x0001\u0185\x0001\u019b" + + "\x0007\u0185\x0001\u019c\x0003\u0185\x0001\x0024\x0002\u0185\x0001\x0024\x0002\u0185\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0001\u019d\x0001\u0185\x0001\x0024\x0001\u019e\x0006\u0185\x0003\x0024\x0001\u0185" + + "\x0002\x0024\x0001\u0185\x0002\x0024\x0001\u0185\x0006\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\u0185" + + "\x0019\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0001\u0185\x0002\x0024\x0001\u0185\x0001\u019f\x0001\u01a0" + + "\x0002\u0185\x0001\x0024\x0001\u01a1\x0002\u0185\x0002\x0024\x0002\u0185\x0001\x0024\x0001\u0185" + + "\x0003\x0024\x0001\u01a2\x0001\u0185\x0002\x0024\x0001\u0185\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0003\u0185" + + "\x0001\u01a3\x0002\u0185\x0001\x0024\x0001\u0185\x0001\u01a4\x0003\u0185\x0003\x0024\x0002\u0185" + + "\x0001\x0024\x0008\u0185\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\u01a5\x0002\u0185\x0001\u01a6\x0001\u01a7" + + "\x0001\u01a8\x0002\u0185\x0001\u01a9\x0003\u0185\x0001\x0024\x0001\u0185\x0001\x0024\x0001\u0185" + + "\x0001\x0024\x0001\u0185\x0001\x0024\x0001\u0185\x0001\x0024\x0004\u0185\x0001\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0001\u0185\x0006\x0024\x0001\u0185\x0003\x0024\x0001\u01aa\x0002\x0024\x0001\u0185" + + "\x0004\x0024\x0001\u0185\x0002\x0024\x0001\u0185\x0002\x0024\x0001\u0185\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0006\x0024\x0001\u0185\x0007\x0024\x0001\u0185\x000B\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000B\x0024" + + "\x0001\u01ab\x0006\x0024\x0001\u01ac\x0007\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\u0185\x0009\x0024" + + "\x0001\u0185\x0006\x0024\x0001\u0185\x0008\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\u0185\x0001\x0024" + + "\x0006\u0185\x0001\u01ad\x0001\x0024\x0002\u0185\x0002\x0024\x0002\u0185\x0001\x0024\x0001\u0185" + + "\x0001\x0024\x0003\u0185\x0001\x0024\x0003\u0185\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0004\x0024\x0001\u0185" + + "\x0001\u01ae\x0004\x0024\x0002\u0185\x0003\x0024\x0002\u0185\x0005\x0024\x0001\u0185\x0003\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0003\x0024\x0002\u0185\x0002\x0024\x0001\u0185\x0001\u01af\x0001\x0024" + + "\x0002\u0185\x0001\x0024\x0001\u0185\x0003\x0024\x0001\u0185\x0001\x0024\x0001\u0185\x0001\x0024" + + "\x0001\u0185\x0003\x0024\x0001\u0185\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u0185\x0001\x0024" + + "\x0001\u01b0\x0004\x0024\x0001\u0185\x0002\x0024\x0001\u0185\x000C\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0002\u0185\x0001\x0024\x0001\u01b1\x0001\x0024\x0001\u01b2\x0001\x0024\x0002\u0185\x0002\x0024" + + "\x0001\u0185\x0004\x0024\x0001\u0185\x0009\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u0185" + + "\x000B\x0024\x0001\u0185\x000A\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x000C\x0000\x0001\u0178\x0001\x0000\x0001\u0179" + + "\x000F\x0000\x0001\u017a\x0002\x0000\x0001\u017b\x0004\x0000\x0001\u017c\x0003\x0000\x0001\u017d" + + "\x0012\x0000\x0001\u017e\x0011\x0000\x0001\u017f\x0002\x0000\x0001\u0180\x0032\x0000\x0001\x00B8" + + "\x0002\x0046\x0006\x0000\x0001\x00B8\x0003\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x001B\x0074" + + "\x000A\u010e\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x00B8\x0009\x0000\x0001\u0178\x0001\x0000" + + "\x0001\u0179\x000F\x0000\x0001\u017a\x0002\x0000\x0001\u017b\x0004\x0000\x0001\u017c\x0003\x0000" + + "\x0001\u017d\x0012\x0000\x0001\u017e\x0011\x0000\x0001\u017f\x0002\x0000\x0001\u0180\x0032\x0000" + + "\x0001\x00B8\x0002\x0046\x0006\x0000\x0001\x00B8\x0003\x0000\x0001\x0074\x0001\x0077\x0002\x0000" + + "\x0001\x0075\x0001\u0113\x0001\u0114\x0001\u0115\x0001\u0116\x0001\u0117\x0001\u0118\x0001\u0119" + + "\x0001\u011a\x0001\u011b\x0001\u011c\x0001\u011d\x0001\u011e\x0001\u011f\x0001\u0120\x0001\u0121" + + "\x0001\u0122\x0001\u0123\x0001\u0124\x0001\u0125\x0001\u0126\x0001\u0127\x0001\u0128\x0001\u0129" + + "\x0001\u012a\x0001\u012b\x0001\u012c\x0001\x0074\x000A\x008D\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x00B8\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B1\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x00B2\x0002\x0000\x0001\x00B3\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x00B4\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00B5\x0011\x0000\x0001\x00B6\x0002\x0000" + + "\x0001\x00B7\x0031\x0000\x0001\x0019\x0003\x0046\x0002\x0000\x0002\x00B8\x0001\x0048\x0001\x0000" + + "\x0001\x0046\x0001\x0000\x0001\x0019\x0001\x0000\x0001\u010c\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\u01b4\x001A\x0098\x0001\x0074\x000A\u010e\x0001\x0000\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\u010c\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x00B8\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0046\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u01b5\x0016\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x001A\x0024\x0001\x008C\x000A\x008D\x0001\u01b6\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0009\x0024\x0001\u01b7\x0010\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x000D\x0024\x0001\u01b8\x000C\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0001\u010b\x0002\u01b9\x0001\u01ba\x0001\u01bb\x0008\u01b9\x0001\u010b\x0001\u01bc" + + "\x0005\u01b9\x0006\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0001\u01bd\x0002\u01b9\x0001\u010b\x0001\u01b9\x0001\u01be\x0003\u01b9" + + "\x0001\u01bf\x0002\u01b9\x0004\u010b\x0004\u01b9\x0001\u010b\x0002\u01b9\x0001\u010b\x0002\u01b9" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0003\u010b\x0001\u01b9\x0001\u010b\x0001\u01b9\x0002\u010b\x0001\u01c0\x0001\u010b\x0001\u01b9" + + "\x0008\u010b\x0001\u01b9\x0002\u010b\x0002\u01b9\x0002\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u01b9\x0001\u01c1" + + "\x0002\u01b9\x0002\u010b\x0001\u01b9\x0003\u010b\x0001\u01c2\x0001\u01c3\x0001\u010b\x0001\u01c4" + + "\x0002\u01b9\x0009\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u01b9\x0001\u010b\x0001\u01b9\x0008\u010b\x0001\u01b9" + + "\x0001\u010b\x0002\u01b9\x0008\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u01c5\x0005\u010b\x0001\u01b9\x000F\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0004\u010b\x0002\u01b9\x0002\u010b\x0001\u01b9\x0001\u010b\x0001\u01b9\x000B\u010b\x0002\u01b9" + + "\x0002\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0001\u01c6\x0001\u010b\x0002\u01b9\x0001\u01c7\x0001\u01c8\x000A\u01b9\x0001\u01c9" + + "\x0001\u01b9\x0002\u010b\x0002\u01b9\x0003\u010b\x0001\u01b9\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0002\u010b\x0004\u01b9\x0003\u010b" + + "\x0002\u01b9\x0001\u01ca\x0001\u01b9\x0001\u010b\x0002\u01b9\x000A\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u01cb\x0001\u01b9" + + "\x0002\u010b\x0001\u01b9\x0003\u010b\x0001\u01cc\x0005\u010b\x0003\u01b9\x0003\u010b\x0001\u01b9" + + "\x0001\u010b\x0001\u01b9\x0001\u010b\x0002\u01b9\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u01b9\x0001\u01cd\x0001\u01b9\x0001\u01ce" + + "\x0001\u010b\x0001\u01b9\x0001\u01cf\x0007\u01b9\x0001\u01d0\x0003\u01b9\x0001\u010b\x0002\u01b9" + + "\x0001\u010b\x0002\u01b9\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0001\u01d1\x0001\u01b9\x0001\u010b\x0001\u01d2\x0006\u01b9\x0003\u010b" + + "\x0001\u01b9\x0002\u010b\x0001\u01b9\x0002\u010b\x0001\u01b9\x0006\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u01b9\x0019\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u01b9\x0002\u010b\x0001\u01b9\x0001\u01d3\x0001\u01d4\x0002\u01b9\x0001\u010b\x0001\u01d5" + + "\x0002\u01b9\x0002\u010b\x0002\u01b9\x0001\u010b\x0001\u01b9\x0003\u010b\x0001\u01d6\x0001\u01b9" + + "\x0002\u010b\x0001\u01b9\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0003\u01b9\x0001\u01d7\x0002\u01b9\x0001\u010b\x0001\u01b9\x0001\u01d8" + + "\x0003\u01b9\x0003\u010b\x0002\u01b9\x0001\u010b\x0008\u01b9\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u01d9\x0002\u01b9\x0001\u01da" + + "\x0001\u01db\x0001\u01dc\x0002\u01b9\x0001\u01dd\x0003\u01b9\x0001\u010b\x0001\u01b9\x0001\u010b" + + "\x0001\u01b9\x0001\u010b\x0001\u01b9\x0001\u010b\x0001\u01b9\x0001\u010b\x0004\u01b9\x0001\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u01b9\x0006\u010b\x0001\u01b9\x0003\u010b\x0001\u01de\x0002\u010b\x0001\u01b9\x0004\u010b" + + "\x0001\u01b9\x0002\u010b\x0001\u01b9\x0002\u010b\x0001\u01b9\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0006\u010b\x0001\u01b9\x0007\u010b" + + "\x0001\u01b9\x000B\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x000B\u010b\x0001\u01df\x0006\u010b\x0001\u01e0\x0007\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u01b9" + + "\x0009\u010b\x0001\u01b9\x0006\u010b\x0001\u01b9\x0008\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u01b9\x0001\u010b\x0006\u01b9" + + "\x0001\u01e1\x0001\u010b\x0002\u01b9\x0002\u010b\x0002\u01b9\x0001\u010b\x0001\u01b9\x0001\u010b" + + "\x0003\u01b9\x0001\u010b\x0003\u01b9\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u01b9\x0001\u01e2\x0004\u010b\x0002\u01b9" + + "\x0003\u010b\x0002\u01b9\x0005\u010b\x0001\u01b9\x0003\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0002\u01b9\x0002\u010b" + + "\x0001\u01b9\x0001\u01e3\x0001\u010b\x0002\u01b9\x0001\u010b\x0001\u01b9\x0003\u010b\x0001\u01b9" + + "\x0001\u010b\x0001\u01b9\x0001\u010b\x0001\u01b9\x0003\u010b\x0001\u01b9\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u01b9" + + "\x0001\u010b\x0001\u01e4\x0004\u010b\x0001\u01b9\x0002\u010b\x0001\u01b9\x000C\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0002\u01b9" + + "\x0001\u010b\x0001\u01e5\x0001\u010b\x0001\u01e6\x0001\u010b\x0002\u01b9\x0002\u010b\x0001\u01b9" + + "\x0004\u010b\x0001\u01b9\x0009\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u01b9\x000B\u010b\x0001\u01b9\x000A\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C" + + "\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F" + + "\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000" + + "\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u01e7\x001A\x0024\x0001\x008C\x000A\u01e8\x0001\x0000" + + "\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000" + + "\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B" + + "\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019" + + "\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u01e7\x001A\x0024\x0001\x008C" + + "\x000A\u012d\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076" + + "\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051" + + "\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u01e7" + + "\x001A\x0024\x0001\x008C\x0002\u012d\x0001\u01e8\x0001\u012d\x0001\u01e9\x0002\u01e8\x0002\u012d" + + "\x0001\u01e8\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076" + + "\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051" + + "\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u01ea" + + "\x001A\x0024\x0001\x008C\x000A\u0130\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000" + + "\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B9" + + "\x0001\x0000\x0001\x00BA\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00BB\x0002\x0000\x0001\x00BC\x0004\x0000\x0001\x00BD" + + "\x0003\x0000\x0001\x00BE\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00BF\x0011\x0000\x0001\x00C0" + + "\x0002\x0000\x0001\x00C1\x0031\x0000\x0001\x0019\x0001\x0047\x0008\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0074\x0001\x0077\x0002\x0019\x0001\x0075\x001A\x0098\x000B\x0074" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0047\x0009\x0000\x0001\x00C9\x0001\x0000\x0001\x00CA" + + "\x000F\x0000\x0001\x00CB\x0002\x0000\x0001\x00CC\x0004\x0000\x0001\x00CD\x0003\x0000\x0001\x00CE" + + "\x0012\x0000\x0001\x00CF\x0011\x0000\x0001\x00D0\x0002\x0000\x0001\x00D1\x0032\x0000\x0001\x0052" + + "\x0002\x001A\x0006\x0000\x0001\x0052\x0003\x0000\x0001\x0074\x0001\x0077\x0002\x0000\x0001\x0075" + + "\x001B\x0074\x000A\x0099\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0052\x0094\x0000\x0004\u01eb" + + "\x0002\x0000\x0001\u01eb\x000D\x0000\x0001\u01eb\x0006\x0000\x000A\u01eb\x0001\u0134\x00A9\x0000" + + "\x0004\u01ec\x0002\x0000\x0001\u01ec\x000D\x0000\x0001\u01ec\x0006\x0000\x000A\u01ec\x0001\u01ed" + + "\x00A9\x0000\x0004\u01ee\x0002\x0000\x0001\u01ee\x000D\x0000\x0001\u01ee\x0006\x0000\x0001\u01ef" + + "\x0001\u01f0\x0005\u01ef\x0001\u01f1\x0001\u01f0\x0001\u01ef\x000B\x0000\x0001\u01f2\x000E\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0001\x002D\x0002\u01f3\x0001\u01f4\x0001\u01f5\x0008\u01f3\x0001\x002D\x0001\u01f6" + + "\x0005\u01f3\x0006\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0001\u01f7\x0002\u01f3\x0001\x002D\x0001\u01f3" + + "\x0001\u01f8\x0003\u01f3\x0001\u01f9\x0002\u01f3\x0004\x002D\x0004\u01f3\x0001\x002D\x0002\u01f3" + + "\x0001\x002D\x0002\u01f3\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u01f3\x0001\x002D\x0001\u01f3" + + "\x0002\x002D\x0001\u01fa\x0001\x002D\x0001\u01f3\x0008\x002D\x0001\u01f3\x0002\x002D\x0002\u01f3" + + "\x0002\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0001\x002D\x0001\u01f3\x0001\u01fb\x0002\u01f3\x0002\x002D" + + "\x0001\u01f3\x0003\x002D\x0001\u01fc\x0001\u01fd\x0001\x002D\x0001\u01fe\x0002\u01f3\x0009\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u01f3\x0001\x002D\x0001\u01f3\x0008\x002D\x0001\u01f3" + + "\x0001\x002D\x0002\u01f3\x0008\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0004\x002D\x0001\u01ff\x0005\x002D" + + "\x0001\u01f3\x000F\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0004\x002D\x0002\u01f3\x0002\x002D\x0001\u01f3" + + "\x0001\x002D\x0001\u01f3\x000B\x002D\x0002\u01f3\x0002\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0001\u0200" + + "\x0001\x002D\x0002\u01f3\x0001\u0201\x0001\u0202\x000A\u01f3\x0001\u0203\x0001\u01f3\x0002\x002D" + + "\x0002\u01f3\x0003\x002D\x0001\u01f3\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0002\x002D\x0004\u01f3\x0003\x002D" + + "\x0002\u01f3\x0001\u0204\x0001\u01f3\x0001\x002D\x0002\u01f3\x000A\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0001\u0205\x0001\u01f3\x0002\x002D\x0001\u01f3\x0003\x002D\x0001\u0206\x0005\x002D\x0003\u01f3" + + "\x0003\x002D\x0001\u01f3\x0001\x002D\x0001\u01f3\x0001\x002D\x0002\u01f3\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0003\u01f3\x0001\u0207\x0001\u01f3\x0001\u0208\x0001\x002D\x0001\u01f3\x0001\u0209\x0007\u01f3" + + "\x0001\u020a\x0003\u01f3\x0001\x002D\x0002\u01f3\x0001\x002D\x0002\u01f3\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0001\u020b\x0001\u01f3\x0001\x002D\x0001\u020c\x0006\u01f3\x0003\x002D\x0001\u01f3\x0002\x002D" + + "\x0001\u01f3\x0002\x002D\x0001\u01f3\x0006\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0001\u01f3\x0019\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0001\u01f3\x0002\x002D\x0001\u01f3\x0001\u020d\x0001\u020e\x0002\u01f3" + + "\x0001\x002D\x0001\u020f\x0002\u01f3\x0002\x002D\x0002\u01f3\x0001\x002D\x0001\u01f3\x0003\x002D" + + "\x0001\u0210\x0001\u01f3\x0002\x002D\x0001\u01f3\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\u01f3\x0001\u0211" + + "\x0002\u01f3\x0001\x002D\x0001\u01f3\x0001\u0212\x0003\u01f3\x0003\x002D\x0002\u01f3\x0001\x002D" + + "\x0008\u01f3\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0001\u0213\x0002\u01f3\x0001\u0214\x0001\u0215\x0001\u0216" + + "\x0002\u01f3\x0001\u0217\x0003\u01f3\x0001\x002D\x0001\u01f3\x0001\x002D\x0001\u01f3\x0001\x002D" + + "\x0001\u01f3\x0001\x002D\x0001\u01f3\x0001\x002D\x0004\u01f3\x0001\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0001\u01f3\x0006\x002D\x0001\u01f3\x0003\x002D\x0001\u0218\x0002\x002D\x0001\u01f3\x0004\x002D" + + "\x0001\u01f3\x0002\x002D\x0001\u01f3\x0002\x002D\x0001\u01f3\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0006\x002D" + + "\x0001\u01f3\x0007\x002D\x0001\u01f3\x000B\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000B\x002D\x0001\u0219" + + "\x0006\x002D\x0001\u021a\x0007\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0001\u01f3\x0009\x002D\x0001\u01f3" + + "\x0006\x002D\x0001\u01f3\x0008\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0001\u01f3\x0001\x002D\x0006\u01f3" + + "\x0001\u021b\x0001\x002D\x0002\u01f3\x0002\x002D\x0002\u01f3\x0001\x002D\x0001\u01f3\x0001\x002D" + + "\x0003\u01f3\x0001\x002D\x0003\u01f3\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0004\x002D\x0001\u01f3\x0001\u021c" + + "\x0004\x002D\x0002\u01f3\x0003\x002D\x0002\u01f3\x0005\x002D\x0001\u01f3\x0003\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0003\x002D\x0002\u01f3\x0002\x002D\x0001\u01f3\x0001\u021d\x0001\x002D\x0002\u01f3" + + "\x0001\x002D\x0001\u01f3\x0003\x002D\x0001\u01f3\x0001\x002D\x0001\u01f3\x0001\x002D\x0001\u01f3" + + "\x0003\x002D\x0001\u01f3\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u01f3\x0001\x002D\x0001\u021e" + + "\x0004\x002D\x0001\u01f3\x0002\x002D\x0001\u01f3\x000C\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0002\u01f3" + + "\x0001\x002D\x0001\u021f\x0001\x002D\x0001\u0220\x0001\x002D\x0002\u01f3\x0002\x002D\x0001\u01f3" + + "\x0004\x002D\x0001\u01f3\x0009\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u01f3\x000B\x002D" + + "\x0001\u01f3\x000A\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x000C\x0000\x0001\u0178\x0001\x0000\x0001\u0179\x000F\x0000" + + "\x0001\u017a\x0002\x0000\x0001\u017b\x0004\x0000\x0001\u017c\x0003\x0000\x0001\u017d\x0012\x0000" + + "\x0001\u017e\x0011\x0000\x0001\u017f\x0002\x0000\x0001\u0180\x0032\x0000\x0001\x00B8\x0002\x0046" + + "\x0006\x0000\x0001\x00B8\x0003\x0000\x0001\x0074\x0001\x0077\x0002\x0000\x0001\x0075\x0001\u0156" + + "\x0001\u0157\x0001\u0158\x0001\u0159\x0001\u015a\x0001\u015b\x0001\u015c\x0001\u015d\x0001\u015e" + + "\x0001\u015f\x0001\u0160\x0001\u0161\x0001\u0162\x0001\u0163\x0001\u0164\x0001\u0165\x0001\u0166" + + "\x0001\u0167\x0001\u0168\x0001\u0169\x0001\u016a\x0001\u016b\x0001\u016c\x0001\u016d\x0001\u016e" + + "\x0001\u016f\x0001\x0074\x000A\x009F\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x00B8\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0003\x002D\x0001\u0222\x0016\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x001A\x002D\x0001\x009E" + + "\x000A\x009F\x0001\u01b6\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0009\x002D\x0001\u0223\x0010\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000D\x002D\x0001\u0224" + + "\x000C\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0002\u0225\x0001\u0226" + + "\x0001\u0227\x0008\u0225\x0001\u0150\x0001\u0228\x0005\u0225\x0006\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0229\x0002\u0225" + + "\x0001\u0150\x0001\u0225\x0001\u022a\x0003\u0225\x0001\u022b\x0002\u0225\x0004\u0150\x0004\u0225" + + "\x0001\u0150\x0002\u0225\x0001\u0150\x0002\u0225\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0225\x0001\u0150\x0001\u0225" + + "\x0002\u0150\x0001\u022c\x0001\u0150\x0001\u0225\x0008\u0150\x0001\u0225\x0002\u0150\x0002\u0225" + + "\x0002\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0150\x0001\u0225\x0001\u022d\x0002\u0225\x0002\u0150\x0001\u0225\x0003\u0150" + + "\x0001\u022e\x0001\u022f\x0001\u0150\x0001\u0230\x0002\u0225\x0009\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0225" + + "\x0001\u0150\x0001\u0225\x0008\u0150\x0001\u0225\x0001\u0150\x0002\u0225\x0008\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150" + + "\x0001\u0231\x0005\u0150\x0001\u0225\x000F\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0002\u0225\x0002\u0150\x0001\u0225" + + "\x0001\u0150\x0001\u0225\x000B\u0150\x0002\u0225\x0002\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0232\x0001\u0150\x0002\u0225" + + "\x0001\u0233\x0001\u0234\x000A\u0225\x0001\u0235\x0001\u0225\x0002\u0150\x0002\u0225\x0003\u0150" + + "\x0001\u0225\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0002\u0150\x0004\u0225\x0003\u0150\x0002\u0225\x0001\u0236\x0001\u0225\x0001\u0150" + + "\x0002\u0225\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0001\u0237\x0001\u0225\x0002\u0150\x0001\u0225\x0003\u0150\x0001\u0238" + + "\x0005\u0150\x0003\u0225\x0003\u0150\x0001\u0225\x0001\u0150\x0001\u0225\x0001\u0150\x0002\u0225" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0003\u0225\x0001\u0239\x0001\u0225\x0001\u023a\x0001\u0150\x0001\u0225\x0001\u023b\x0007\u0225" + + "\x0001\u023c\x0003\u0225\x0001\u0150\x0002\u0225\x0001\u0150\x0002\u0225\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u023d\x0001\u0225" + + "\x0001\u0150\x0001\u023e\x0006\u0225\x0003\u0150\x0001\u0225\x0002\u0150\x0001\u0225\x0002\u0150" + + "\x0001\u0225\x0006\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0001\u0225\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0225\x0002\u0150\x0001\u0225\x0001\u023f" + + "\x0001\u0240\x0002\u0225\x0001\u0150\x0001\u0241\x0002\u0225\x0002\u0150\x0002\u0225\x0001\u0150" + + "\x0001\u0225\x0003\u0150\x0001\u0242\x0001\u0225\x0002\u0150\x0001\u0225\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0225\x0001\u0243" + + "\x0002\u0225\x0001\u0150\x0001\u0225\x0001\u0244\x0003\u0225\x0003\u0150\x0002\u0225\x0001\u0150" + + "\x0008\u0225\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0245\x0002\u0225\x0001\u0246\x0001\u0247\x0001\u0248\x0002\u0225\x0001\u0249" + + "\x0003\u0225\x0001\u0150\x0001\u0225\x0001\u0150\x0001\u0225\x0001\u0150\x0001\u0225\x0001\u0150" + + "\x0001\u0225\x0001\u0150\x0004\u0225\x0001\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0225\x0006\u0150\x0001\u0225\x0003\u0150" + + "\x0001\u024a\x0002\u0150\x0001\u0225\x0004\u0150\x0001\u0225\x0002\u0150\x0001\u0225\x0002\u0150" + + "\x0001\u0225\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0006\u0150\x0001\u0225\x0007\u0150\x0001\u0225\x000B\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000B\u0150\x0001\u024b" + + "\x0006\u0150\x0001\u024c\x0007\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0225\x0009\u0150\x0001\u0225\x0006\u0150\x0001\u0225" + + "\x0008\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0225\x0001\u0150\x0006\u0225\x0001\u024d\x0001\u0150\x0002\u0225\x0002\u0150" + + "\x0002\u0225\x0001\u0150\x0001\u0225\x0001\u0150\x0003\u0225\x0001\u0150\x0003\u0225\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150" + + "\x0001\u0225\x0001\u024e\x0004\u0150\x0002\u0225\x0003\u0150\x0002\u0225\x0005\u0150\x0001\u0225" + + "\x0003\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0003\u0150\x0002\u0225\x0002\u0150\x0001\u0225\x0001\u024f\x0001\u0150\x0002\u0225" + + "\x0001\u0150\x0001\u0225\x0003\u0150\x0001\u0225\x0001\u0150\x0001\u0225\x0001\u0150\x0001\u0225" + + "\x0003\u0150\x0001\u0225\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0225\x0001\u0150\x0001\u0250\x0004\u0150\x0001\u0225" + + "\x0002\u0150\x0001\u0225\x000C\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0002\u0225\x0001\u0150\x0001\u0251\x0001\u0150\x0001\u0252" + + "\x0001\u0150\x0002\u0225\x0002\u0150\x0001\u0225\x0004\u0150\x0001\u0225\x0009\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150" + + "\x0001\u0225\x000B\u0150\x0001\u0225\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051" + + "\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0253" + + "\x001A\x002D\x0001\x009E\x000A\u0254\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000" + + "\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049" + + "\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D" + + "\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050" + + "\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\u0253\x001A\x002D\x0001\x009E\x000A\u0170\x0001\x0000\x0001\x0074\x0001\x0096" + + "\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C" + + "\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F" + + "\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000" + + "\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0253\x001A\x002D\x0001\x009E\x0002\u0170\x0001\u0254" + + "\x0001\u0170\x0001\u0255\x0002\u0254\x0002\u0170\x0001\u0254\x0001\x0000\x0001\x0074\x0001\x0096" + + "\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C" + + "\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F" + + "\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000" + + "\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0256\x001A\x002D\x0001\x009E\x000A\u0173\x0001\x0000" + + "\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000" + + "\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0094\x0000\x0004\u0257" + + "\x0002\x0000\x0001\u0257\x000D\x0000\x0001\u0257\x0006\x0000\x000A\u0257\x0001\u0175\x00A9\x0000" + + "\x0004\u0258\x0002\x0000\x0001\u0258\x000D\x0000\x0001\u0258\x0006\x0000\x000A\u0258\x0001\u0259" + + "\x00A9\x0000\x0004\u025a\x0002\x0000\x0001\u025a\x000D\x0000\x0001\u025a\x0006\x0000\x0001\u025b" + + "\x0001\u025c\x0005\u025b\x0001\u025d\x0001\u025c\x0001\u025b\x000B\x0000\x0001\u025e\x0013\x0000" + + "\x0001\u025f\x0011\x0000\x0001\u0260\x0002\x0000\x0001\u0261\x0008\x0000\x0001\u0262\x0012\x0000" + + "\x0001\u0263\x0011\x0000\x0001\u0264\x0002\x0000\x0001\u0265\x002D\x0000\x0001\x00B0\x0004\x0000" + + "\x0001\u0177\x0008\x0000\x0001\u0177\x0042\x0000\x0001\u0177\x003C\x0000\x0001\x00B8\x0002\x0000" + + "\x0001\x00B8\x001B\x0000\x0004\x00B8\x0083\x0000\x0001\x0046\x0044\x0000\x0001\x0046\x00A7\x0000" + + "\x0001\x0046\x0021\x0000\x0001\x0046\x000B\x0000\x0001\x00B8\x0076\x0000\x0001\x0046\x0009\x0000" + + "\x0001\x00B8\x0024\x0000\x0001\x00B8\x0001\x0000\x0002\x00B8\x0011\x0000\x0001\x00B8\x0004\x0000" + + "\x0001\x00B8\x0003\x0000\x0004\x0046\x0008\x0000\x0004\x00B8\x0003\x0000\x0001\x00B8\x000A\x0000" + + "\x0001\x00B8\x00B5\x0000\x0002\x0046\x00DC\x0000\x0001\x00B8\x00D3\x0000\x0004\x00B8\x00AB\x0000" + + "\x0002\x00B8\x0015\x0000\x0004\x00B8\x006E\x0000\x0001\x00B8\x000D\x0000\x0002\x00B8\x0008\x0000" + + "\x0002\x00B8\x0001\x0000\x0001\x00B8\x0001\x0000\x0001\x00B8\x0009\x0000\x0001\x00B8\x0009\x0000" + + "\x0002\x00B8\x0006\x0000\x0001\x00B8\x0002\x0000\x0004\x00B8\x0003\x0000\x0001\x00B8\x0002\x0000" + + "\x0002\x00B8\x0001\x0000\x0003\x00B8\x0001\x0000\x0002\x00B8\x0001\x0000\x0001\x00B8\x0008\x0000" + + "\x0001\x00B8\x0001\x0000\x0002\x00B8\x0002\x0000\x0002\x00B8\x0001\x0000\x0004\x00B8\x0013\x0000" + + "\x0001\x00B8\x00E2\x0000\x0001\u0266\x0001\u0267\x0001\u0268\x0001\u0269\x0001\u026a\x0001\u026b" + + "\x0001\u026c\x0001\u026d\x0001\u026e\x0001\u026f\x0001\u0270\x0001\u0271\x0001\u0272\x0001\u0273" + + "\x0001\u0274\x0001\u0275\x0001\u0276\x0001\u0277\x0001\u0278\x0001\u0279\x0001\u027a\x0001\u027b" + + "\x0001\u027c\x0001\u027d\x0001\u027e\x0001\u027f\x0001\x0000\x000A\x00E0\x00AA\x0000\x001A\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A5\x0000\x0002\x00E1\x0002\x0000\x003A\x00E1\x0005\x0000\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295" + + "\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299" + + "\x0001\u0296\x0001\u029a\x001A\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295" + + "\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299" + + "\x0001\u0296\x0001\u029a\x0004\u029b\x0001\u02a5\x0015\u029b\x0001\u029c\x000A\u029d\x0001\u029e" + + "\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296" + + "\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298" + + "\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x000D\u029b\x0001\u02a6\x000C\u029b\x0001\u029c" + + "\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280" + + "\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280" + + "\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280" + + "\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280" + + "\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280" + + "\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296" + + "\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x0008\u029b\x0001\u02a6" + + "\x0011\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280" + + "\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292" + + "\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296" + + "\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a" + + "\x000A\u029b\x0001\u02a7\x0004\u029b\x0001\u02a8\x000A\u029b\x0001\u029c\x000A\u029d\x0001\u029e" + + "\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296" + + "\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298" + + "\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x0005\u029b\x0001\u02a9\x0004\u029b\x0001\u02a8" + + "\x0001\u02aa\x000E\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280" + + "\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296" + + "\x0001\u029a\x0005\u029b\x0001\u02ab\x0014\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f" + + "\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0001\u02ac\x0003\x0024\x0001\u02ad\x0015\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0010\x0024\x0001\u0185\x0009\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u02ae\x000A\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0010\x0024\x0001\u02af\x0009\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280" + + "\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296" + + "\x0001\u029a\x000F\u029b\x0001\u02b0\x000A\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f" + + "\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0007\x0024\x0001\u0185\x0012\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280" + + "\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296" + + "\x0001\u029a\x0009\u029b\x0001\u02b1\x0010\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f" + + "\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297" + + "\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284" + + "\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288" + + "\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c" + + "\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290" + + "\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294" + + "\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280" + + "\x0001\u0299\x0001\u0296\x0001\u029a\x0001\u02b2\x0019\u029b\x0001\u029c\x000A\u029d\x0001\u029e" + + "\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296" + + "\x0003\u0297\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0018\x0024\x0001\u0185\x0001\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295" + + "\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299" + + "\x0001\u0296\x0001\u029a\x0004\u029b\x0001\u02b3\x0015\u029b\x0001\u029c\x000A\u029d\x0001\u029e" + + "\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296" + + "\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298" + + "\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x0006\u029b\x0001\u02a5\x0008\u029b\x0001\u02a8" + + "\x000A\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280" + + "\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292" + + "\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296" + + "\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a" + + "\x000B\u029b\x0001\u02b4\x000E\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295" + + "\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299" + + "\x0001\u0296\x0001\u029a\x0007\u029b\x0001\u02b5\x0012\u029b\x0001\u029c\x000A\u029d\x0001\u029e" + + "\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296" + + "\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298" + + "\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x000B\u029b\x0001\u02b3\x000E\u029b\x0001\u029c" + + "\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280" + + "\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280" + + "\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280" + + "\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280" + + "\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280" + + "\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296" + + "\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x0014\u029b\x0001\u02b6" + + "\x0005\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0009\x0024" + + "\x0001\u0185\x0010\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280" + + "\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280" + + "\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280" + + "\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280" + + "\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280" + + "\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296" + + "\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x000E\u029b\x0001\u02b7" + + "\x000B\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280" + + "\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292" + + "\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296" + + "\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a" + + "\x000A\u029b\x0001\u02b8\x000F\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295" + + "\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299" + + "\x0001\u0296\x0001\u029a\x000F\u029b\x0001\u02a8\x000A\u029b\x0001\u029c\x000A\u029d\x0001\u029e" + + "\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296" + + "\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298" + + "\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x0005\u029b\x0001\u02a8\x0014\u029b\x0001\u029c" + + "\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0001\u0297\x0001\u0296\x0003\u0297\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000E\x0024\x0001\u02b9\x000B\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298" + + "\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x0010\u029b\x0001\u02ba\x0009\u029b\x0001\u029c" + + "\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280" + + "\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280" + + "\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280" + + "\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280" + + "\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280" + + "\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296" + + "\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x0005\u029b\x0001\u02bb" + + "\x0014\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280" + + "\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292" + + "\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296" + + "\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a" + + "\x0012\u029b\x0001\u02bc\x0007\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295" + + "\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299" + + "\x0001\u0296\x0001\u029a\x000B\u029b\x0001\u02bd\x000E\u029b\x0001\u029c\x000A\u029d\x0001\u029e" + + "\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296" + + "\x0003\u0297\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u02be\x000A\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0001\x0024\x0001\u02bf\x0007\x0024\x0001\u0185\x0010\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280" + + "\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296" + + "\x0001\u029a\x0001\u02c0\x0019\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295" + + "\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299" + + "\x0001\u0296\x0001\u029a\x0002\u029b\x0001\u02c1\x0017\u029b\x0001\u029c\x000A\u029d\x0001\u029e" + + "\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296" + + "\x0003\u0297\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x000D\x0024\x0001\u02c2\x000C\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0005\x0024\x0001\u0185\x0014\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x001A\x0024\x0001\u02c3\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0012\x0024\x0001\u0185\x0007\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282" + + "\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286" + + "\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a" + + "\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e" + + "\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293" + + "\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280" + + "\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x0013\u029b" + + "\x0001\u02a8\x0002\u029b\x0001\u02b8\x0003\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f" + + "\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297" + + "\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0009\x0024\x0001\u02c4\x0010\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280" + + "\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296" + + "\x0001\u029a\x000F\u029b\x0001\u02c5\x000A\u029b\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f" + + "\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297" + + "\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284" + + "\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288" + + "\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c" + + "\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290" + + "\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294" + + "\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0298\x0001\u0280" + + "\x0001\u0299\x0001\u0296\x0001\u029a\x0014\u029b\x0001\u02c6\x0005\u029b\x0001\u029c\x000A\u029d" + + "\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297" + + "\x0001\u0296\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283" + + "\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287" + + "\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b" + + "\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f" + + "\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\u0292\x0001\u0293\x0001\u0280\x0001\u0294" + + "\x0001\u0280\x0001\u0294\x0001\u0295\x0001\u0280\x0001\u0296\x0001\u0280\x0001\u0296\x0001\u0297" + + "\x0001\u0298\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u029a\x000B\u029b\x0001\u02c7\x000E\u029b" + + "\x0001\u029c\x000A\u029d\x0001\u029e\x0001\u029f\x0001\u02a0\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0001\u0297\x0001\u0296\x0003\u0297\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0019\x0024\x0001\u02c8" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x008F\x0000\x0001\x0074\x0001\x0077\x0002\x0000\x0001\x0075\x0001\u0113\x0001\u0114\x0001\u0115" + + "\x0001\u0116\x0001\u0117\x0001\u0118\x0001\u0119\x0001\u011a\x0001\u011b\x0001\u011c\x0001\u011d" + + "\x0001\u011e\x0001\u011f\x0001\u0120\x0001\u0121\x0001\u0122\x0001\u0123\x0001\u0124\x0001\u0125" + + "\x0001\u0126\x0001\u0127\x0001\u0128\x0001\u0129\x0001\u012a\x0001\u012b\x0001\u012c\x0001\x0074" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x000C\x0000\x0001\u0178\x0001\x0000\x0001\u0179\x000F\x0000" + + "\x0001\u017a\x0002\x0000\x0001\u017b\x0004\x0000\x0001\u017c\x0003\x0000\x0001\u017d\x0012\x0000" + + "\x0001\u017e\x0011\x0000\x0001\u017f\x0002\x0000\x0001\u0180\x0032\x0000\x0001\x00B8\x0002\x0046" + + "\x0006\x0000\x0001\x00B8\x0003\x0000\x0001\x0074\x0001\x0077\x0002\x0000\x0001\x0075\x001B\x0074" + + "\x000A\u010e\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x00B8\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x001A\x0024" + + "\x0001\x008C\x000A\x008D\x0001\u02c9\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B9\x0001\x0000\x0001\x00BA" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x00BB\x0002\x0000\x0001\x00BC\x0004\x0000\x0001\x00BD\x0003\x0000\x0001\x00BE" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00BF\x0011\x0000\x0001\x00C0\x0002\x0000\x0001\x00C1" + + "\x0031\x0000\x0001\x0019\x0001\x0047\x0008\x0000\x0001\x0047\x0001\x0000\x0001\x0019\x0003\x0000" + + "\x0002\x0019\x0001\x0000\x001A\x0019\x0013\x0000\x0001\u02ca\x000C\x0000\x0001\x0047\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x000F\x0024\x0001\u02cb\x000A\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000E\x0024\x0001\u02cc" + + "\x000B\x0024\x0001\x008C\x000A\x008D\x0001\u02cd\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0003\x0000\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297" + + "\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x001A\u02cf\x0001\u029c" + + "\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280" + + "\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0004\u02cf\x0001\u02d2\x0015\u02cf" + + "\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297" + + "\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000D\u02cf\x0001\u02d3" + + "\x000C\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280" + + "\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0008\u02cf" + + "\x0001\u02d3\x0011\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297" + + "\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce" + + "\x000A\u02cf\x0001\u02d4\x0004\u02cf\x0001\u02d5\x000A\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0" + + "\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x0080\u0280" + + "\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f" + + "\x0001\u0280\x0002\u0297\x0001\u02ce\x0005\u02cf\x0001\u02d6\x0004\u02cf\x0001\u02d5\x0001\u02d7" + + "\x000E\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280" + + "\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0005\u02cf" + + "\x0001\u02d8\x0014\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x008C\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u02d9\x0003\u010b\x0001\u02da\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0010\u010b\x0001\u01b9\x0009\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000F\u010b" + + "\x0001\u02db\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0010\u010b\x0001\u02dc\x0009\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0006\x0000\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297" + + "\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000F\u02cf\x0001\u02dd" + + "\x000A\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\u0297\x008C\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0007\u010b" + + "\x0001\u01b9\x0012\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000\x0080\u0280" + + "\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f" + + "\x0001\u0280\x0002\u0297\x0001\u02ce\x0009\u02cf\x0001\u02de\x0010\u02cf\x0001\u029c\x000A\u02cf" + + "\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297" + + "\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297" + + "\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0001\u02df\x0019\u02cf\x0001\u029c\x000A\u02cf" + + "\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297" + + "\x008C\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0018\u010b\x0001\u01b9\x0001\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297" + + "\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce" + + "\x0004\u02cf\x0001\u02e0\x0015\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280" + + "\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297" + + "\x0001\u02ce\x0006\u02cf\x0001\u02d2\x0008\u02cf\x0001\u02d5\x000A\u02cf\x0001\u029c\x000A\u02cf" + + "\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297" + + "\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297" + + "\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000B\u02cf\x0001\u02e1\x000E\u02cf\x0001\u029c" + + "\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280" + + "\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0007\u02cf\x0001\u02e2\x0012\u02cf" + + "\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297" + + "\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000B\u02cf\x0001\u02e0" + + "\x000E\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280" + + "\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0014\u02cf" + + "\x0001\u02e3\x0005\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x008C\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0009\u010b\x0001\u01b9\x0010\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000" + + "\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297" + + "\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000E\u02cf\x0001\u02e4\x000B\u02cf\x0001\u029c" + + "\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280" + + "\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000A\u02cf\x0001\u02e5\x000F\u02cf" + + "\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297" + + "\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000F\u02cf\x0001\u02d5" + + "\x000A\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280" + + "\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0005\u02cf" + + "\x0001\u02d5\x0014\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x008C\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x000E\u010b\x0001\u02e6\x000B\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000" + + "\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297" + + "\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0010\u02cf\x0001\u02e7\x0009\u02cf\x0001\u029c" + + "\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280" + + "\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0005\u02cf\x0001\u02e8\x0014\u02cf" + + "\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297" + + "\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0012\u02cf\x0001\u02e9" + + "\x0007\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280" + + "\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000B\u02cf" + + "\x0001\u02ea\x000E\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x008C\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x000F\u010b\x0001\u02eb\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u02ec\x0007\u010b\x0001\u01b9\x0010\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000\x0080\u0280\x0001\u0297\x0005\u0280" + + "\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297" + + "\x0001\u02ce\x0001\u02ed\x0019\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280" + + "\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297" + + "\x0001\u02ce\x0002\u02cf\x0001\u02ee\x0017\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f" + + "\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x008C\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x000D\u010b\x0001\u02ef\x000C\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0005\u010b\x0001\u01b9\x0014\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\u02c3\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0012\u010b\x0001\u01b9\x0007\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0006\x0000\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280" + + "\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0013\u02cf\x0001\u02d5\x0002\u02cf" + + "\x0001\u02e5\x0003\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x008C\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0009\u010b\x0001\u02f0\x0010\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000" + + "\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297" + + "\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000F\u02cf\x0001\u02f1\x000A\u02cf\x0001\u029c" + + "\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280" + + "\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x0014\u02cf\x0001\u02f2\x0005\u02cf" + + "\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0005\u0297\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297" + + "\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0280\x0002\u0297\x0001\u02ce\x000B\u02cf\x0001\u02f3" + + "\x000E\u02cf\x0001\u029c\x000A\u02cf\x0001\u02d0\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\u0297\x008C\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0019\u010b" + + "\x0001\u02f4\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x000C\x0000\x0001\x00C9\x0001\x0000" + + "\x0001\x00CA\x000F\x0000\x0001\x00CB\x0002\x0000\x0001\x00CC\x0004\x0000\x0001\x00CD\x0003\x0000" + + "\x0001\x00CE\x0012\x0000\x0001\x00CF\x0011\x0000\x0001\x00D0\x0002\x0000\x0001\x00D1\x0032\x0000" + + "\x0001\x0052\x0002\x001A\x0006\x0000\x0001\x0052\x0003\x0000\x0001\x0074\x0001\x0077\x0002\x0000" + + "\x0001\x0075\x0001\u0113\x0001\u0114\x0001\u0115\x0001\u0116\x0001\u0117\x0001\u0118\x0001\u0119" + + "\x0001\u011a\x0001\u011b\x0001\u011c\x0001\u011d\x0001\u011e\x0001\u011f\x0001\u0120\x0001\u0121" + + "\x0001\u0122\x0001\u0123\x0001\u0124\x0001\u0125\x0001\u0126\x0001\u0127\x0001\u0128\x0001\u0129" + + "\x0001\u012a\x0001\u012b\x0001\u012c\x0001\x0074\x0001\u02f5\x0001\u02f6\x0005\u02f5\x0001\u02f7" + + "\x0001\u02f6\x0001\u02f5\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0052\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B" + + "\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019" + + "\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u01e7\x001A\x0024\x0001\x008C" + + "\x000A\u0130\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076" + + "\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051" + + "\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u01e7" + + "\x001A\x0024\x0001\x008C\x0002\u01e8\x0001\u0130\x0002\u01e8\x0002\u0130\x0002\u01e8\x0001\u0130" + + "\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074" + + "\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0009\x0000" + + "\x0001\x00C9\x0001\x0000\x0001\x00CA\x000F\x0000\x0001\x00CB\x0002\x0000\x0001\x00CC\x0004\x0000" + + "\x0001\x00CD\x0003\x0000\x0001\x00CE\x0012\x0000\x0001\x00CF\x0011\x0000\x0001\x00D0\x0002\x0000" + + "\x0001\x00D1\x0032\x0000\x0001\x0052\x0002\x001A\x0006\x0000\x0001\x0052\x0003\x0000\x0001\x0074" + + "\x0001\x0077\x0002\x0000\x0001\x0075\x0001\u0113\x0001\u0114\x0001\u0115\x0001\u0116\x0001\u0117" + + "\x0001\u0118\x0001\u0119\x0001\u011a\x0001\u011b\x0001\u011c\x0001\u011d\x0001\u011e\x0001\u011f" + + "\x0001\u0120\x0001\u0121\x0001\u0122\x0001\u0123\x0001\u0124\x0001\u0125\x0001\u0126\x0001\u0127" + + "\x0001\u0128\x0001\u0129\x0001\u012a\x0001\u012b\x0001\u012c\x0001\x0074\x000A\u0130\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0052\x0094\x0000\x0004\u02f8\x0002\x0000\x0001\u02f8\x000D\x0000" + + "\x0001\u02f8\x0006\x0000\x000A\u02f8\x0001\u0134\x00A9\x0000\x0004\u02f9\x0002\x0000\x0001\u02f9" + + "\x000D\x0000\x0001\u02f9\x0006\x0000\x000A\u02f9\x0001\u02fa\x00A9\x0000\x0004\u02fb\x0002\x0000" + + "\x0001\u02fb\x000D\x0000\x0001\u02fb\x0006\x0000\x0001\u02fc\x0001\u02fd\x0005\u02fc\x0001\u02fe" + + "\x0001\u02fd\x0001\u02fc\x000B\x0000\x0001\u01f2\x009E\x0000\x0004\u02ff\x0002\x0000\x0001\u02ff" + + "\x000D\x0000\x0001\u02ff\x0006\x0000\x000A\u02ff\x0001\u0300\x000A\x0000\x0001\u01f2\x009D\x0000" + + "\x0001\u0301\x0004\u02ff\x0002\x0000\x0001\u02ff\x000D\x0000\x0001\u02ff\x0006\x0000\x000A\u0302" + + "\x0001\u0300\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u02ff\x0002\x0000\x0001\u02ff" + + "\x000D\x0000\x0001\u02ff\x0006\x0000\x000A\u0303\x0001\u0300\x000A\x0000\x0001\u01f2\x009D\x0000" + + "\x0001\u0301\x0004\u02ff\x0002\x0000\x0001\u02ff\x000D\x0000\x0001\u02ff\x0006\x0000\x0002\u0303" + + "\x0001\u0302\x0001\u0303\x0001\u0304\x0002\u0302\x0002\u0303\x0001\u0302\x0001\u0300\x000A\x0000" + + "\x0001\u01f2\x000D\x0000\x0080\u0280\x0001\u0297\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297" + + "\x0001\u0280\x0002\u0297\x0002\u0280\x0002\u0297\x0001\u0280\x0025\u0297\x0001\u02d0\x0001\u0280" + + "\x0001\u0297\x0004\u0280\x0001\u0305\x0001\u0306\x0001\u0307\x000A\u0280\x0005\u0297\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048" + + "\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022" + + "\x0001\x0019\x0001\u0308\x001A\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048" + + "\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022" + + "\x0001\x0019\x0001\u0308\x0004\x002D\x0001\u0218\x0015\x002D\x0001\x009E\x000A\x009F\x0001\u029e" + + "\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019" + + "\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298" + + "\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x000D\x002D\x0001\u0142\x000C\x002D\x0001\x009E" + + "\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280" + + "\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280" + + "\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280" + + "\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280" + + "\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280" + + "\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019" + + "\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x0008\x002D\x0001\u0142" + + "\x0011\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280" + + "\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046" + + "\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019" + + "\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308" + + "\x000A\x002D\x0001\u0309\x0004\x002D\x0001\u01f3\x000A\x002D\x0001\x009E\x000A\x009F\x0001\u029e" + + "\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019" + + "\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298" + + "\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x0005\x002D\x0001\u030a\x0004\x002D\x0001\u01f3" + + "\x0001\u030b\x000E\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280" + + "\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019" + + "\x0001\u0308\x0005\x002D\x0001\u030c\x0014\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f" + + "\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0001\u030d\x0003\x002D\x0001\u030e\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0010\x002D" + + "\x0001\u01f3\x0009\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u030f\x000A\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0010\x002D\x0001\u0310\x0009\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280" + + "\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046" + + "\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019" + + "\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308" + + "\x000F\x002D\x0001\u0311\x000A\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0007\x002D\x0001\u01f3\x0012\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282" + + "\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286" + + "\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a" + + "\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e" + + "\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293" + + "\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280" + + "\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x0009\x002D" + + "\x0001\u0312\x0010\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280" + + "\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019" + + "\x0001\u0308\x0001\u0313\x0019\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0018\x002D\x0001\u01f3\x0001\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282" + + "\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286" + + "\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a" + + "\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e" + + "\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293" + + "\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280" + + "\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x0004\x002D" + + "\x0001\u01fb\x0015\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280" + + "\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019" + + "\x0001\u0308\x0006\x002D\x0001\u0218\x0008\x002D\x0001\u01f3\x000A\x002D\x0001\x009E\x000A\x009F" + + "\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000" + + "\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283" + + "\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287" + + "\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b" + + "\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f" + + "\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294" + + "\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000" + + "\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x000B\x002D\x0001\u0314\x000E\x002D" + + "\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282" + + "\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286" + + "\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a" + + "\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e" + + "\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293" + + "\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280" + + "\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x0007\x002D" + + "\x0001\u0315\x0012\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280" + + "\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019" + + "\x0001\u0308\x000B\x002D\x0001\u01fb\x000E\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f" + + "\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000" + + "\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284" + + "\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288" + + "\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c" + + "\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290" + + "\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294" + + "\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280" + + "\x0001\x0022\x0001\x0019\x0001\u0308\x0014\x002D\x0001\u0316\x0005\x002D\x0001\x009E\x000A\x009F" + + "\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0009\x002D\x0001\u01f3\x0010\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280" + + "\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048" + + "\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022" + + "\x0001\x0019\x0001\u0308\x000E\x002D\x0001\u0317\x000B\x002D\x0001\x009E\x000A\x009F\x0001\u029e" + + "\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019" + + "\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298" + + "\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x000A\x002D\x0001\u0318\x000F\x002D\x0001\x009E" + + "\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280" + + "\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280" + + "\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280" + + "\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280" + + "\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280" + + "\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019" + + "\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x000F\x002D\x0001\u01f3" + + "\x000A\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280" + + "\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046" + + "\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019" + + "\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308" + + "\x0005\x002D\x0001\u01f3\x0014\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x000E\x002D\x0001\u0319\x000B\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282" + + "\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286" + + "\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a" + + "\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e" + + "\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293" + + "\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280" + + "\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x0010\x002D" + + "\x0001\u031a\x0009\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280" + + "\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019" + + "\x0001\u0308\x0005\x002D\x0001\u031b\x0014\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f" + + "\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000" + + "\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284" + + "\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288" + + "\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c" + + "\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290" + + "\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294" + + "\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280" + + "\x0001\x0022\x0001\x0019\x0001\u0308\x0012\x002D\x0001\u031c\x0007\x002D\x0001\x009E\x000A\x009F" + + "\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000" + + "\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283" + + "\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287" + + "\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b" + + "\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f" + + "\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294" + + "\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000" + + "\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x000B\x002D\x0001\u031d\x000E\x002D" + + "\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u031e\x000A\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0001\x002D\x0001\u031f\x0007\x002D\x0001\u01f3\x0010\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000" + + "\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284" + + "\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288" + + "\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c" + + "\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290" + + "\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294" + + "\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280" + + "\x0001\x0022\x0001\x0019\x0001\u0308\x0001\u0320\x0019\x002D\x0001\x009E\x000A\x009F\x0001\u029e" + + "\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019" + + "\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280" + + "\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280" + + "\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280" + + "\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280" + + "\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280" + + "\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298" + + "\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x0002\x002D\x0001\u0321\x0017\x002D\x0001\x009E" + + "\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000D\x002D\x0001\u0322\x000C\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0005\x002D\x0001\u01f3\x0014\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x001A\x002D\x0001\u0323" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0012\x002D\x0001\u01f3\x0007\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280" + + "\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046" + + "\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019" + + "\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308" + + "\x0013\x002D\x0001\u01f3\x0002\x002D\x0001\u0318\x0003\x002D\x0001\x009E\x000A\x009F\x0001\u029e" + + "\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0009\x002D\x0001\u0324\x0010\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281" + + "\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285" + + "\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289" + + "\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d" + + "\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291" + + "\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280" + + "\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019" + + "\x0001\u0308\x000F\x002D\x0001\u0325\x000A\x002D\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f" + + "\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0019\x0003\x0000" + + "\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283\x0001\u0280\x0001\u0284" + + "\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288" + + "\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b\x0003\u0280\x0001\u028c" + + "\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f\x0002\u0280\x0001\u0290" + + "\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294\x0001\u0280\x0001\u0294" + + "\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0298\x0001\u0280" + + "\x0001\x0022\x0001\x0019\x0001\u0308\x0014\x002D\x0001\u0322\x0005\x002D\x0001\x009E\x000A\x009F" + + "\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000" + + "\x0001\x0019\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0283" + + "\x0001\u0280\x0001\u0284\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287" + + "\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0289\x0002\u0280\x0001\u028a\x0004\u0280\x0001\u028b" + + "\x0003\u0280\x0001\u028c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u028e\x0011\u0280\x0001\u028f" + + "\x0002\u0280\x0001\u0290\x0031\u0280\x0002\u0291\x0001\x0046\x0001\u0293\x0001\u0280\x0001\u0294" + + "\x0001\u0280\x0001\u0294\x0001\x0048\x0001\u0280\x0001\x0019\x0001\u0280\x0001\x0019\x0001\x0000" + + "\x0001\u0298\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u0308\x000B\x002D\x0001\u0326\x000E\x002D" + + "\x0001\x009E\x000A\x009F\x0001\u029e\x0001\u029f\x0001\x008E\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0019\x002D\x0001\u0327\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000" + + "\x0001\x0074\x0001\x0077\x0002\x0000\x0001\x0075\x0001\u0156\x0001\u0157\x0001\u0158\x0001\u0159" + + "\x0001\u015a\x0001\u015b\x0001\u015c\x0001\u015d\x0001\u015e\x0001\u015f\x0001\u0160\x0001\u0161" + + "\x0001\u0162\x0001\u0163\x0001\u0164\x0001\u0165\x0001\u0166\x0001\u0167\x0001\u0168\x0001\u0169" + + "\x0001\u016a\x0001\u016b\x0001\u016c\x0001\u016d\x0001\u016e\x0001\u016f\x0001\x0074\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x001A\x002D\x0001\x009E\x000A\x009F\x0001\u02c9" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D" + + "\x0001\u0328\x000A\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000E\x002D\x0001\u0329\x000B\x002D\x0001\x009E" + + "\x000A\x009F\x0001\u02cd\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000" + + "\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000" + + "\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x001A\u0150\x0001\x009E\x000A\u0150\x0001\u02d0" + + "\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280" + + "\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f" + + "\x0001\u0280\x0002\x0000\x0001\u032a\x0004\u0150\x0001\u024a\x0015\u0150\x0001\x009E\x000A\u0150" + + "\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000" + + "\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000" + + "\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x000D\u0150\x0001\u0162\x000C\u0150\x0001\x009E" + + "\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280" + + "\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x0008\u0150\x0001\u0162\x0011\u0150" + + "\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000" + + "\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x000A\u0150\x0001\u032b" + + "\x0004\u0150\x0001\u0225\x000A\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280" + + "\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000" + + "\x0001\u032a\x0005\u0150\x0001\u032c\x0004\u0150\x0001\u0225\x0001\u032d\x000E\u0150\x0001\x009E" + + "\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280" + + "\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x0005\u0150\x0001\u032e\x0014\u0150" + + "\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0091\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u032f\x0003\u0150\x0001\u0330" + + "\x0015\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0010\u0150\x0001\u0225\x0009\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u0331\x000A\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0010\u0150" + + "\x0001\u0332\x0009\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000\x0080\u0280" + + "\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f" + + "\x0001\u0280\x0002\x0000\x0001\u032a\x000F\u0150\x0001\u0333\x000A\u0150\x0001\x009E\x000A\u0150" + + "\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0091\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150\x0001\u0225\x0012\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0006\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280" + + "\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x0009\u0150" + + "\x0001\u0334\x0010\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000" + + "\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a" + + "\x0001\u0335\x0019\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0091\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0018\u0150" + + "\x0001\u0225\x0001\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000\x0080\u0280" + + "\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f" + + "\x0001\u0280\x0002\x0000\x0001\u032a\x0004\u0150\x0001\u022d\x0015\u0150\x0001\x009E\x000A\u0150" + + "\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000" + + "\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000" + + "\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x0006\u0150\x0001\u024a\x0008\u0150\x0001\u0225" + + "\x000A\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280" + + "\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x000B\u0150" + + "\x0001\u0336\x000E\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000" + + "\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a" + + "\x0007\u0150\x0001\u0337\x0012\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280" + + "\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000" + + "\x0001\u032a\x000B\u0150\x0001\u022d\x000E\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f" + + "\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000" + + "\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280" + + "\x0002\x0000\x0001\u032a\x0014\u0150\x0001\u0338\x0005\u0150\x0001\x009E\x000A\u0150\x0001\u02d0" + + "\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0091\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0009\u0150\x0001\u0225\x0010\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0006\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000" + + "\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x000E\u0150\x0001\u0339" + + "\x000B\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280" + + "\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x000A\u0150" + + "\x0001\u033a\x000F\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000" + + "\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a" + + "\x000F\u0150\x0001\u0225\x000A\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280" + + "\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000" + + "\x0001\u032a\x0005\u0150\x0001\u0225\x0014\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f" + + "\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0091\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x000E\u0150\x0001\u033b\x000B\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0006\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280" + + "\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x0010\u0150\x0001\u033c\x0009\u0150" + + "\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000" + + "\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x0005\u0150\x0001\u033d" + + "\x0014\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280" + + "\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x0012\u0150" + + "\x0001\u033e\x0007\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f" + + "\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f" + + "\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000" + + "\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a" + + "\x000B\u0150\x0001\u033f\x000E\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0091\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x000F\u0150\x0001\u0340\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u0341\x0007\u0150\x0001\u0225\x0010\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000\x0080\u0280\x0001\x0000\x0005\u0280" + + "\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000" + + "\x0001\u032a\x0001\u0342\x0019\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280\x0001\x0000\x0005\u0280" + + "\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280\x0002\x0000" + + "\x0001\u032a\x0002\u0150\x0001\u0343\x0017\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f" + + "\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0091\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x000D\u0150\x0001\u0344\x000C\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0005\u0150\x0001\u0225\x0014\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\u0323\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0012\u0150\x0001\u0225\x0007\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000" + + "\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000" + + "\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x0013\u0150\x0001\u0225\x0002\u0150\x0001\u033a" + + "\x0003\u0150\x0001\x009E\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280" + + "\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0091\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0009\u0150\x0001\u0345" + + "\x0010\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000\x0080\u0280\x0001\x0000" + + "\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0280" + + "\x0002\x0000\x0001\u032a\x000F\u0150\x0001\u0346\x000A\u0150\x0001\x009E\x000A\u0150\x0001\u02d0" + + "\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000\x0080\u0280" + + "\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f" + + "\x0001\u0280\x0002\x0000\x0001\u032a\x0014\u0150\x0001\u0344\x0005\u0150\x0001\x009E\x000A\u0150" + + "\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\x0000" + + "\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000" + + "\x0001\u029f\x0001\u0280\x0002\x0000\x0001\u032a\x000B\u0150\x0001\u0347\x000E\u0150\x0001\x009E" + + "\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0091\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0019\u0150\x0001\u0348\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x000C\x0000\x0001\x00C9\x0001\x0000\x0001\x00CA\x000F\x0000\x0001\x00CB" + + "\x0002\x0000\x0001\x00CC\x0004\x0000\x0001\x00CD\x0003\x0000\x0001\x00CE\x0012\x0000\x0001\x00CF" + + "\x0011\x0000\x0001\x00D0\x0002\x0000\x0001\x00D1\x0032\x0000\x0001\x0052\x0002\x001A\x0006\x0000" + + "\x0001\x0052\x0003\x0000\x0001\x0074\x0001\x0077\x0002\x0000\x0001\x0075\x0001\u0156\x0001\u0157" + + "\x0001\u0158\x0001\u0159\x0001\u015a\x0001\u015b\x0001\u015c\x0001\u015d\x0001\u015e\x0001\u015f" + + "\x0001\u0160\x0001\u0161\x0001\u0162\x0001\u0163\x0001\u0164\x0001\u0165\x0001\u0166\x0001\u0167" + + "\x0001\u0168\x0001\u0169\x0001\u016a\x0001\u016b\x0001\u016c\x0001\u016d\x0001\u016e\x0001\u016f" + + "\x0001\x0074\x0001\u0349\x0001\u034a\x0005\u0349\x0001\u034b\x0001\u034a\x0001\u0349\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0052\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000" + + "\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000" + + "\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052" + + "\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\u0253\x001A\x002D\x0001\x009E\x000A\u0173\x0001\x0000\x0001\x0074" + + "\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000" + + "\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A" + + "\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0253\x001A\x002D\x0001\x009E\x0002\u0254" + + "\x0001\u0173\x0002\u0254\x0002\u0173\x0002\u0254\x0001\u0173\x0001\x0000\x0001\x0074\x0001\x0096" + + "\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0009\x0000\x0001\x00C9\x0001\x0000\x0001\x00CA" + + "\x000F\x0000\x0001\x00CB\x0002\x0000\x0001\x00CC\x0004\x0000\x0001\x00CD\x0003\x0000\x0001\x00CE" + + "\x0012\x0000\x0001\x00CF\x0011\x0000\x0001\x00D0\x0002\x0000\x0001\x00D1\x0032\x0000\x0001\x0052" + + "\x0002\x001A\x0006\x0000\x0001\x0052\x0003\x0000\x0001\x0074\x0001\x0077\x0002\x0000\x0001\x0075" + + "\x0001\u0156\x0001\u0157\x0001\u0158\x0001\u0159\x0001\u015a\x0001\u015b\x0001\u015c\x0001\u015d" + + "\x0001\u015e\x0001\u015f\x0001\u0160\x0001\u0161\x0001\u0162\x0001\u0163\x0001\u0164\x0001\u0165" + + "\x0001\u0166\x0001\u0167\x0001\u0168\x0001\u0169\x0001\u016a\x0001\u016b\x0001\u016c\x0001\u016d" + + "\x0001\u016e\x0001\u016f\x0001\x0074\x000A\u0173\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0052" + + "\x0094\x0000\x0004\u034c\x0002\x0000\x0001\u034c\x000D\x0000\x0001\u034c\x0006\x0000\x000A\u034c" + + "\x0001\u0175\x00A9\x0000\x0004\u034d\x0002\x0000\x0001\u034d"; + + private const string ZZ_TRANS_PACKED_1 = + "\x000D\x0000\x0001\u034d\x0006\x0000\x000A\u034d\x0001\u034e\x00A9\x0000\x0004\u034f\x0002\x0000" + + "\x0001\u034f\x000D\x0000\x0001\u034f\x0006\x0000\x0001\u0350\x0001\u0351\x0005\u0350\x0001\u0352" + + "\x0001\u0351\x0001\u0350\x000B\x0000\x0001\u025e\x009E\x0000\x0004\u0353\x0002\x0000\x0001\u0353" + + "\x000D\x0000\x0001\u0353\x0006\x0000\x000A\u0353\x0001\u0354\x000A\x0000\x0001\u025e\x009D\x0000" + + "\x0001\u0355\x0004\u0353\x0002\x0000\x0001\u0353\x000D\x0000\x0001\u0353\x0006\x0000\x000A\u0356" + + "\x0001\u0354\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u0353\x0002\x0000\x0001\u0353" + + "\x000D\x0000\x0001\u0353\x0006\x0000\x000A\u0357\x0001\u0354\x000A\x0000\x0001\u025e\x009D\x0000" + + "\x0001\u0355\x0004\u0353\x0002\x0000\x0001\u0353\x000D\x0000\x0001\u0353\x0006\x0000\x0002\u0357" + + "\x0001\u0356\x0001\u0357\x0001\u0358\x0002\u0356\x0002\u0357\x0001\u0356\x0001\u0354\x000A\x0000" + + "\x0001\u025e\x000D\x0000\x0080\u0280\x0001\x0000\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0000" + + "\x0001\u0280\x0002\x0000\x0002\u0280\x0002\x0000\x0001\u0280\x0025\x0000\x0001\u02d0\x0001\u0280" + + "\x0001\x0000\x0004\u0280\x0001\u0305\x0001\u0306\x0001\u0307\x000A\u0280\x003E\x0000\x0001\u0177" + + "\x0002\x0000\x0001\u0177\x001B\x0000\x0004\u0177\x00CF\x0000\x0001\u0177\x0080\x0000\x0001\u0177" + + "\x0024\x0000\x0001\u0177\x0001\x0000\x0002\u0177\x0011\x0000\x0001\u0177\x0004\x0000\x0001\u0177" + + "\x000F\x0000\x0004\u0177\x0003\x0000\x0001\u0177\x000A\x0000\x0001\u0177\x00C4\x0000\x0001\u0177" + + "\x00D3\x0000\x0004\u0177\x00AB\x0000\x0002\u0177\x0015\x0000\x0004\u0177\x006E\x0000\x0001\u0177" + + "\x000D\x0000\x0002\u0177\x0008\x0000\x0002\u0177\x0001\x0000\x0001\u0177\x0001\x0000\x0001\u0177" + + "\x0009\x0000\x0001\u0177\x0009\x0000\x0002\u0177\x0006\x0000\x0001\u0177\x0002\x0000\x0004\u0177" + + "\x0003\x0000\x0001\u0177\x0002\x0000\x0002\u0177\x0001\x0000\x0003\u0177\x0001\x0000\x0002\u0177" + + "\x0001\x0000\x0001\u0177\x0008\x0000\x0001\u0177\x0001\x0000\x0002\u0177\x0002\x0000\x0002\u0177" + + "\x0001\x0000\x0004\u0177\x0013\x0000\x0001\u0177\x00E1\x0000\x0001\u0181\x0001\x00E0\x0002\u0359" + + "\x0001\u035a\x0001\u035b\x0008\u0359\x0001\x00E0\x0001\u035c\x0005\u0359\x0006\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u035d\x0002\u0359\x0001\x00E0\x0001\u0359\x0001\u035e" + + "\x0003\u0359\x0001\u035f\x0002\u0359\x0004\x00E0\x0004\u0359\x0001\x00E0\x0002\u0359\x0001\x00E0" + + "\x0002\u0359\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0\x0001\u0359\x0001\x00E0" + + "\x0001\u0359\x0002\x00E0\x0001\u0360\x0001\x00E0\x0001\u0359\x0008\x00E0\x0001\u0359\x0002\x00E0" + + "\x0002\u0359\x0002\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0359" + + "\x0001\u0361\x0002\u0359\x0002\x00E0\x0001\u0359\x0003\x00E0\x0001\u0362\x0001\u0363\x0001\x00E0" + + "\x0001\u0364\x0002\u0359\x0009\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0" + + "\x0001\u0359\x0001\x00E0\x0001\u0359\x0008\x00E0\x0001\u0359\x0001\x00E0\x0002\u0359\x0008\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u0365\x0005\x00E0\x0001\u0359" + + "\x000F\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0\x0002\u0359\x0002\x00E0" + + "\x0001\u0359\x0001\x00E0\x0001\u0359\x000B\x00E0\x0002\u0359\x0002\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0001\u0366\x0001\x00E0\x0002\u0359\x0001\u0367\x0001\u0368\x000A\u0359" + + "\x0001\u0369\x0001\u0359\x0002\x00E0\x0002\u0359\x0003\x00E0\x0001\u0359\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0002\x00E0\x0004\u0359\x0003\x00E0\x0002\u0359\x0001\u036a\x0001\u0359" + + "\x0001\x00E0\x0002\u0359\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u036b" + + "\x0001\u0359\x0002\x00E0\x0001\u0359\x0003\x00E0\x0001\u036c\x0005\x00E0\x0003\u0359\x0003\x00E0" + + "\x0001\u0359\x0001\x00E0\x0001\u0359\x0001\x00E0\x0002\u0359\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0003\u0359\x0001\u036d\x0001\u0359\x0001\u036e\x0001\x00E0\x0001\u0359\x0001\u036f" + + "\x0007\u0359\x0001\u0370\x0003\u0359\x0001\x00E0\x0002\u0359\x0001\x00E0\x0002\u0359\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0371\x0001\u0359\x0001\x00E0\x0001\u0372\x0006\u0359" + + "\x0003\x00E0\x0001\u0359\x0002\x00E0\x0001\u0359\x0002\x00E0\x0001\u0359\x0006\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0359\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0001\u0359\x0002\x00E0\x0001\u0359\x0001\u0373\x0001\u0374\x0002\u0359\x0001\x00E0" + + "\x0001\u0375\x0002\u0359\x0002\x00E0\x0002\u0359\x0001\x00E0\x0001\u0359\x0003\x00E0\x0001\u0376" + + "\x0001\u0359\x0002\x00E0\x0001\u0359\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\u0359" + + "\x0001\u0377\x0002\u0359\x0001\x00E0\x0001\u0359\x0001\u0378\x0003\u0359\x0003\x00E0\x0002\u0359" + + "\x0001\x00E0\x0008\u0359\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0379\x0002\u0359" + + "\x0001\u037a\x0001\u037b\x0001\u037c\x0002\u0359\x0001\u037d\x0003\u0359\x0001\x00E0\x0001\u0359" + + "\x0001\x00E0\x0001\u0359\x0001\x00E0\x0001\u0359\x0001\x00E0\x0001\u0359\x0001\x00E0\x0004\u0359" + + "\x0001\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0359\x0006\x00E0\x0001\u0359" + + "\x0003\x00E0\x0001\u037e\x0002\x00E0\x0001\u0359\x0004\x00E0\x0001\u0359\x0002\x00E0\x0001\u0359" + + "\x0002\x00E0\x0001\u0359\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0006\x00E0\x0001\u0359" + + "\x0007\x00E0\x0001\u0359\x000B\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000B\x00E0" + + "\x0001\u037f\x0006\x00E0\x0001\u0380\x0007\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0001\u0359\x0009\x00E0\x0001\u0359\x0006\x00E0\x0001\u0359\x0008\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0001\u0359\x0001\x00E0\x0006\u0359\x0001\u0381\x0001\x00E0\x0002\u0359" + + "\x0002\x00E0\x0002\u0359\x0001\x00E0\x0001\u0359\x0001\x00E0\x0003\u0359\x0001\x00E0\x0003\u0359" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u0359\x0001\u0382\x0004\x00E0" + + "\x0002\u0359\x0003\x00E0\x0002\u0359\x0005\x00E0\x0001\u0359\x0003\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0003\x00E0\x0002\u0359\x0002\x00E0\x0001\u0359\x0001\u0383\x0001\x00E0" + + "\x0002\u0359\x0001\x00E0\x0001\u0359\x0003\x00E0\x0001\u0359\x0001\x00E0\x0001\u0359\x0001\x00E0" + + "\x0001\u0359\x0003\x00E0\x0001\u0359\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0" + + "\x0001\u0359\x0001\x00E0\x0001\u0384\x0004\x00E0\x0001\u0359\x0002\x00E0\x0001\u0359\x000C\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0002\u0359\x0001\x00E0\x0001\u0385\x0001\x00E0" + + "\x0001\u0386\x0001\x00E0\x0002\u0359\x0002\x00E0\x0001\u0359\x0004\x00E0\x0001\u0359\x0009\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0\x0001\u0359\x000B\x00E0\x0001\u0359" + + "\x000A\x00E0\x0001\u0182\x000A\x00E0\x0019\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282" + + "\x0002\u0280\x0001\u0387\x0001\u0280\x0001\u0388\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286" + + "\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0389\x0002\u0280\x0001\u038a" + + "\x0004\u0280\x0001\u038b\x0003\u0280\x0001\u038c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u038d" + + "\x0011\u0280\x0001\u038e\x0002\u0280\x0001\u038f\x0031\u0280\x0001\u0291\x0001\u0294\x0001\u0297" + + "\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0390\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u029f" + + "\x0001\u0391\x0002\u0296\x0001\u0392\x0001\u0393\x0001\u0394\x0001\u0395\x0001\u0396\x0001\u0397" + + "\x0001\u0398\x0001\u0399\x0001\u039a\x0001\u039b\x0001\u039c\x0001\u039d\x0001\u039e\x0001\u02a6" + + "\x0001\u039f\x0001\u03a0\x0001\u03a1\x0001\u03a2\x0001\u03a3\x0001\u03a4\x0001\u03a5\x0001\u03a6" + + "\x0001\u03a7\x0001\u03a8\x0001\u03a9\x0001\u03aa\x0001\u03ab\x0001\u02d1\x000A\u02cf\x0001\u02d0" + + "\x0001\u029f\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u0390" + + "\x0003\u0297\x0001\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B9\x0001\x0000" + + "\x0001\x00BA\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x00BB\x0002\x0000\x0001\x00BC\x0004\x0000\x0001\x00BD\x0003\x0000" + + "\x0001\x00BE\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00BF\x0011\x0000\x0001\x00C0\x0002\x0000" + + "\x0001\x00C1\x0031\x0000\x0001\x0019\x0001\x0047\x0008\x0000\x0001\x0047\x0001\x0000\x0001\x0019" + + "\x0003\x0000\x0002\x0019\x0001\x0000\x001A\x0019\x0001\x0000\x000A\u03ac\x0015\x0000\x0001\x0047" + + "\x008F\x0000\x0001\u02a2\x0003\x0000\x0001\u03ad\x0025\u02a2\x0001\u0305\x0002\u02a2\x0001\u03ae" + + "\x0001\u0305\x0001\u02a2\x0001\u03af\x0002\u02a2\x0001\u02a4\x0002\x0000\x0001\u0305\x0001\u02a2" + + "\x0003\x0000\x0001\u02a2\x0001\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u03b0\x0025\u02a3" + + "\x0001\u0306\x0002\u02a3\x0001\u03b1\x0001\x0000\x0001\x0074\x0001\u03b2\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0002\x0000\x0001\u0306\x0001\u02a3\x0003\x0000\x0002\x0074\x0092\x0000\x0001\u02a4" + + "\x0003\x0000\x0001\u03b3\x0025\u02a4\x0001\u0307\x0002\u02a4\x0001\u03b4\x0001\u0307\x0001\u02a4" + + "\x0001\u03b5\x0002\u02a4\x0001\x0074\x0002\x0000\x0001\u0307\x0001\u02a4\x0003\x0000\x0001\u02a4" + + "\x0001\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u03b6\x0016\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x000D\x0024\x0001\u0185\x000C\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000E\x0024\x0001\u03b7\x0001\u03b8" + + "\x000A\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u03b9\x000A\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x000A\x0024\x0001\u03ba\x000F\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u03bb\x0016\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u03bc\x0016\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0008\x0024" + + "\x0001\u03bd\x0011\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\u03be\x0019\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0009\x0024\x0001\u03bf\x0010\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000D\x0024\x0001\u03c0\x000C\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0002\x0024\x0001\u0185\x0017\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0015\x0024" + + "\x0001\u03c1\x0004\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0008\x0024\x0001\u0185\x0011\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0003\x0024\x0001\u03c2\x0016\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u0185" + + "\x0016\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u0185\x000A\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x000A\x0024\x0001\u03c3\x000F\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u03c4\x000A\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0019\x0024\x0001\u0185\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0007\x0024\x0001\u03c5" + + "\x0012\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u03c6\x000A\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0015\x0024\x0001\u03c7\x0004\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0018\x0024\x0001\u03c8\x0001\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0001\u03c9\x0019\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000E\x0024\x0001\u0185" + + "\x000B\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x001A\u010b\x0001\u03ca\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0002\x0024\x0001\u03cb\x0017\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0001\x0024\x0001\u03cc\x0018\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u03cd" + + "\x000A\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0001\u03ce\x0019\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x00B9\x0001\x0000\x0001\x00BA\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00BB\x0002\x0000" + + "\x0001\x00BC\x0004\x0000\x0001\x00BD\x0003\x0000\x0001\x00BE\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x00BF\x0011\x0000\x0001\x00C0\x0002\x0000\x0001\x00C1\x0031\x0000\x0001\x0019\x0001\x0047" + + "\x0008\x0000\x0001\x0047\x0001\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x0001\x0000\x001A\x0019" + + "\x0013\x0000\x0001\u03cf\x000C\x0000\x0001\x0047\x00C1\x0000\x0001\u03d0\x0011\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0005\x0024\x0001\u03d1\x0014\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x001A\x0024\x0001\x008C\x000A\x008D" + + "\x0001\u02cd\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B9\x0001\x0000\x0001\x00BA\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00BB" + + "\x0002\x0000\x0001\x00BC\x0004\x0000\x0001\x00BD\x0003\x0000\x0001\x00BE\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x00BF\x0011\x0000\x0001\x00C0\x0002\x0000\x0001\x00C1\x0031\x0000\x0001\x0019" + + "\x0001\x0047\x0008\x0000\x0001\x0047\x0001\x0000\x0001\x0019\x0003\x0000\x0002\x0019\x0001\x0000" + + "\x001A\x0019\x0013\x0000\x0001\u03d2\x000C\x0000\x0001\x0047\x0003\x0000\x0080\u0280\x0001\u0297" + + "\x0005\u0280\x0001\u0297\x0001\u0280\x0001\u0297\x0001\u0280\x0002\u0297\x0001\u029f\x0001\u0391" + + "\x0002\u0297\x0001\u0392\x0001\u03d3\x0001\u03d4\x0001\u03d5\x0001\u03d6\x0001\u03d7\x0001\u03d8" + + "\x0001\u03d9\x0001\u03da\x0001\u03db\x0001\u03dc\x0001\u03dd\x0001\u03de\x0001\u02d3\x0001\u03df" + + "\x0001\u03e0\x0001\u03e1\x0001\u03e2\x0001\u03e3\x0001\u03e4\x0001\u03e5\x0001\u03e6\x0001\u03e7" + + "\x0001\u03e8\x0001\u03e9\x0001\u03ea\x0001\u03eb\x0001\u02d1\x000A\u02cf\x0001\u02d0\x0001\u029f" + + "\x0001\u02d1\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4" + + "\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0005\u0297\x00AC\x0000\x000A\u03ac" + + "\x00A5\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u03ec\x0016\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000D\u010b" + + "\x0001\u01b9\x000C\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x000E\u010b\x0001\u03ed\x0001\u03ee\x000A\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000F\u010b\x0001\u03ef" + + "\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x000A\u010b\x0001\u03f0\x000F\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u03f1\x0016\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b" + + "\x0001\u03f2\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0008\u010b\x0001\u03f3\x0011\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u03f4\x0019\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0009\u010b" + + "\x0001\u03f5\x0010\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x000D\u010b\x0001\u03f6\x000C\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0002\u010b\x0001\u01b9\x0017\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0015\u010b\x0001\u03f7\x0004\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0008\u010b\x0001\u01b9\x0011\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u03f8" + + "\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0003\u010b\x0001\u01b9\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000F\u010b\x0001\u01b9\x000A\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000A\u010b" + + "\x0001\u03f9\x000F\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x000F\u010b\x0001\u03fa\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0019\u010b\x0001\u01b9\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0007\u010b" + + "\x0001\u03fb\x0012\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x000F\u010b\x0001\u03fc\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0015\u010b\x0001\u03fd\x0004\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0018\u010b\x0001\u03fe\x0001\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u03ff\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000E\u010b\x0001\u01b9\x000B\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0002\u010b\x0001\u0400\x0017\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u0401\x0018\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000F\u010b\x0001\u0402" + + "\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0001\u0403\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0007\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000" + + "\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0404\x001A\x0024" + + "\x0001\x008C\x000A\u0405\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093" + + "\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000" + + "\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000" + + "\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000" + + "\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\u0404\x001A\x0024\x0001\x008C\x000A\u02f5\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074" + + "\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000" + + "\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000" + + "\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052" + + "\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\u0404\x001A\x0024\x0001\x008C\x0002\u02f5\x0001\u0405\x0001\u02f5" + + "\x0001\u0406\x0002\u0405\x0002\u02f5\x0001\u0405\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074" + + "\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x001A\x00B9\x0000\x0001\u0134\x00A9\x0000\x0004\u0407\x0002\x0000" + + "\x0001\u0407\x000D\x0000\x0001\u0407\x0006\x0000\x000A\u0407\x0001\u02fa\x00A9\x0000\x0004\u0408" + + "\x0002\x0000\x0001\u0408\x000D\x0000\x0001\u0408\x0006\x0000\x000A\u0408\x0001\u0409\x00A9\x0000" + + "\x0004\u040a\x0002\x0000\x0001\u040a\x000D\x0000\x0001\u040a\x0006\x0000\x000A\u040a\x0001\u040b" + + "\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u040a\x0002\x0000\x0001\u040a\x000D\x0000" + + "\x0001\u040a\x0006\x0000\x000A\u040c\x0001\u040b\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301" + + "\x0004\u040a\x0002\x0000\x0001\u040a\x000D\x0000\x0001\u040a\x0006\x0000\x000A\u040d\x0001\u040b" + + "\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u040a\x0002\x0000\x0001\u040a\x000D\x0000" + + "\x0001\u040a\x0006\x0000\x0002\u040d\x0001\u040c\x0001\u040d\x0001\u040e\x0002\u040c\x0002\u040d" + + "\x0001\u040c\x0001\u040b\x000A\x0000\x0001\u01f2\x009E\x0000\x0004\u040f\x0002\x0000\x0001\u040f" + + "\x000D\x0000\x0001\u040f\x0006\x0000\x000A\u040f\x0001\u0300\x000A\x0000\x0001\u01f2\x009E\x0000" + + "\x0004\u02fb\x0002\x0000\x0001\u02fb\x000D\x0000\x0001\u02fb\x0006\x0000\x0001\u02fc\x0001\u02fd" + + "\x0005\u02fc\x0001\u02fe\x0001\u02fd\x0001\u02fc\x00C5\x0000\x0001\u0410\x0001\u0411\x0005\u0410" + + "\x0001\u0412\x0001\u0411\x0001\u0410\x00A9\x0000\x0001\u0301\x0004\u040f\x0002\x0000\x0001\u040f" + + "\x000D\x0000\x0001\u040f\x0006\x0000\x000A\u040f\x0001\u0300\x000A\x0000\x0001\u01f2\x009D\x0000" + + "\x0001\u0301\x0004\u040f\x0002\x0000\x0001\u040f\x000D\x0000\x0001\u040f\x0006\x0000\x000A\u0413" + + "\x0001\u0300\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u040f\x0002\x0000\x0001\u040f" + + "\x000D\x0000\x0001\u040f\x0006\x0000\x0002\u0413\x0001\u040f\x0002\u0413\x0002\u040f\x0002\u0413" + + "\x0001\u040f\x0001\u0300\x000A\x0000\x0001\u01f2\x0099\x0000\x0001\u0305\x0003\x0000\x0029\u0305" + + "\x0001\u0414\x0005\u0305\x0001\u0307\x0002\x0000\x0002\u0305\x0003\x0000\x0001\u0305\x0097\x0000" + + "\x0029\u0306\x0001\u0415\x0002\x0000\x0001\u0306\x0001\u0305\x0001\u0306\x0001\u0307\x0002\x0000" + + "\x0002\u0306\x0097\x0000\x0001\u0307\x0003\x0000\x0029\u0307\x0001\u0416\x0005\u0307\x0003\x0000" + + "\x0002\u0307\x0003\x0000\x0001\u0307\x0007\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282" + + "\x0002\u0280\x0001\u0387\x0001\u0280\x0001\u0388\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286" + + "\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0389\x0002\u0280\x0001\u038a" + + "\x0004\u0280\x0001\u038b\x0003\u0280\x0001\u038c\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u038d" + + "\x0011\u0280\x0001\u038e\x0002\u0280\x0001\u038f\x0031\u0280\x0001\u0291\x0001\u0294\x0001\x0000" + + "\x0005\u0280\x0001\x0000\x0001\u0280\x0001\x0047\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u029f" + + "\x0001\u0391\x0002\x0019\x0001\u0392\x0001\u0136\x0001\u0137\x0001\u0138\x0001\u0139\x0001\u013a" + + "\x0001\u013b\x0001\u013c\x0001\u013d\x0001\u013e\x0001\u013f\x0001\u0140\x0001\u0141\x0001\u0142" + + "\x0001\u0143\x0001\u0144\x0001\u0145\x0001\u0146\x0001\u0147\x0001\u0148\x0001\u0149\x0001\u014a" + + "\x0001\u014b\x0001\u014c\x0001\u014d\x0001\u014e\x0001\u014f\x0001\x0074\x000A\u0150\x0001\u02d0" + + "\x0001\u029f\x0001\x0074\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0003\u0280\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x0047" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u0417\x0016\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000D\x002D" + + "\x0001\u01f3\x000C\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000E\x002D\x0001\u0418\x0001\u0419\x000A\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u041a\x000A\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000A\x002D" + + "\x0001\u041b\x000F\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u041c\x0016\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0003\x002D\x0001\u041d\x0016\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0008\x002D\x0001\u041e" + + "\x0011\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0001\u041f\x0019\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0009\x002D" + + "\x0001\u0420\x0010\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000D\x002D\x0001\u0421\x000C\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0002\x002D\x0001\u01f3\x0017\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0015\x002D\x0001\u0422" + + "\x0004\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0008\x002D\x0001\u01f3\x0011\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0003\x002D\x0001\u0423\x0016\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u01f3\x0016\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u01f3\x000A\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000A\x002D" + + "\x0001\u0424\x000F\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u0425\x000A\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0019\x002D\x0001\u01f3\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0007\x002D\x0001\u0426\x0012\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u0427\x000A\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0015\x002D" + + "\x0001\u0428\x0004\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0018\x002D\x0001\u0429\x0001\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0001\u031c\x0019\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000E\x002D\x0001\u01f3\x000B\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x008F\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x001A\u0150\x0001\u042a\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0002\x002D\x0001\u042b\x0017\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0001\x002D\x0001\u042c\x0018\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u042d\x000A\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0001\u042e\x0019\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0005\x002D\x0001\u042f" + + "\x0014\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x001A\x002D\x0001\x009E\x000A\x009F\x0001\u02cd\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0003\x0000\x0080\u0280\x0001\x0000\x0005\u0280" + + "\x0001\x0000\x0001\u0280\x0001\x0000\x0001\u0280\x0002\x0000\x0001\u029f\x0001\u0391\x0002\x0000" + + "\x0001\u0392\x0001\u0156\x0001\u0157\x0001\u0158\x0001\u0159\x0001\u015a\x0001\u015b\x0001\u015c" + + "\x0001\u015d\x0001\u015e\x0001\u015f\x0001\u0160\x0001\u0161\x0001\u0162\x0001\u0163\x0001\u0164" + + "\x0001\u0165\x0001\u0166\x0001\u0167\x0001\u0168\x0001\u0169\x0001\u016a\x0001\u016b\x0001\u016c" + + "\x0001\u016d\x0001\u016e\x0001\u016f\x0001\x0074\x000A\u0150\x0001\u02d0\x0001\u029f\x0001\x0074" + + "\x0001\u029f\x0001\u0280\x0001\u029f\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0003\u0280" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0091\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0003\u0150\x0001\u0430\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x000D\u0150\x0001\u0225\x000C\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000E\u0150\x0001\u0431" + + "\x0001\u0432\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u0433\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000A\u0150\x0001\u0434\x000F\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0003\u0150\x0001\u0435\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0436\x0016\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0008\u0150\x0001\u0437" + + "\x0011\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0438\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0009\u0150\x0001\u0439\x0010\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000D\u0150\x0001\u043a" + + "\x000C\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0002\u0150\x0001\u0225\x0017\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0015\u0150\x0001\u043b\x0004\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0008\u0150" + + "\x0001\u0225\x0011\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u043c\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0225\x0016\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x000F\u0150\x0001\u0225\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x000A\u0150\x0001\u043d\x000F\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u043e" + + "\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0019\u0150\x0001\u0225\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150\x0001\u043f\x0012\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u0440" + + "\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0015\u0150\x0001\u0441\x0004\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0018\u0150\x0001\u0442\x0001\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u033e" + + "\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x000E\u0150\x0001\u0225\x000B\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0002\u0150\x0001\u0443\x0017\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150" + + "\x0001\u0444\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u0445\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0446\x0019\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000" + + "\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000" + + "\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052" + + "\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\u0447\x001A\x002D\x0001\x009E\x000A\u0448\x0001\x0000\x0001\x0074" + + "\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000" + + "\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A" + + "\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0447\x001A\x002D\x0001\x009E\x000A\u0349" + + "\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074" + + "\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000" + + "\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0447\x001A\x002D" + + "\x0001\x009E\x0002\u0349\x0001\u0448\x0001\u0349\x0001\u0449\x0002\u0448\x0002\u0349\x0001\u0448" + + "\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074" + + "\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x00B9\x0000" + + "\x0001\u0175\x00A9\x0000\x0004\u044a\x0002\x0000\x0001\u044a\x000D\x0000\x0001\u044a\x0006\x0000" + + "\x000A\u044a\x0001\u034e\x00A9\x0000\x0004\u044b\x0002\x0000\x0001\u044b\x000D\x0000\x0001\u044b" + + "\x0006\x0000\x000A\u044b\x0001\u044c\x00A9\x0000\x0004\u044d\x0002\x0000\x0001\u044d\x000D\x0000" + + "\x0001\u044d\x0006\x0000\x000A\u044d\x0001\u044e\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355" + + "\x0004\u044d\x0002\x0000\x0001\u044d\x000D\x0000\x0001\u044d\x0006\x0000\x000A\u044f\x0001\u044e" + + "\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u044d\x0002\x0000\x0001\u044d\x000D\x0000" + + "\x0001\u044d\x0006\x0000\x000A\u0450\x0001\u044e\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355" + + "\x0004\u044d\x0002\x0000\x0001\u044d\x000D\x0000\x0001\u044d\x0006\x0000\x0002\u0450\x0001\u044f" + + "\x0001\u0450\x0001\u0451\x0002\u044f\x0002\u0450\x0001\u044f\x0001\u044e\x000A\x0000\x0001\u025e" + + "\x009E\x0000\x0004\u0452\x0002\x0000\x0001\u0452\x000D\x0000\x0001\u0452\x0006\x0000\x000A\u0452" + + "\x0001\u0354\x000A\x0000\x0001\u025e\x009E\x0000\x0004\u034f\x0002\x0000\x0001\u034f\x000D\x0000" + + "\x0001\u034f\x0006\x0000\x0001\u0350\x0001\u0351\x0005\u0350\x0001\u0352\x0001\u0351\x0001\u0350" + + "\x00C5\x0000\x0001\u0453\x0001\u0454\x0005\u0453\x0001\u0455\x0001\u0454\x0001\u0453\x00A9\x0000" + + "\x0001\u0355\x0004\u0452\x0002\x0000\x0001\u0452\x000D\x0000\x0001\u0452\x0006\x0000\x000A\u0452" + + "\x0001\u0354\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u0452\x0002\x0000\x0001\u0452" + + "\x000D\x0000\x0001\u0452\x0006\x0000\x000A\u0456\x0001\u0354\x000A\x0000\x0001\u025e\x009D\x0000" + + "\x0001\u0355\x0004\u0452\x0002\x0000\x0001\u0452\x000D\x0000\x0001\u0452\x0006\x0000\x0002\u0456" + + "\x0001\u0452\x0002\u0456\x0002\u0452\x0002\u0456\x0001\u0452\x0001\u0354\x000A\x0000\x0001\u025e" + + "\x009D\x0000\x0001\u0457\x001A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0004\x00E0" + + "\x0001\u037e\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x000D\x00E0\x0001\u0272" + + "\x000C\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0008\x00E0\x0001\u0272\x0011\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x000A\x00E0\x0001\u0458\x0004\x00E0\x0001\u0359" + + "\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0005\x00E0\x0001\u0459\x0004\x00E0" + + "\x0001\u0359\x0001\u045a\x000E\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0005\x00E0" + + "\x0001\u045b\x0014\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u045c\x0003\x00E0" + + "\x0001\u045d\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0010\x00E0\x0001\u0359" + + "\x0009\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000F\x00E0\x0001\u045e\x000A\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0010\x00E0\x0001\u045f\x0009\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0457\x000F\x00E0\x0001\u0460\x000A\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0007\x00E0\x0001\u0359\x0012\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0457\x0009\x00E0\x0001\u0461\x0010\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457" + + "\x0001\u0462\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0018\x00E0\x0001\u0359" + + "\x0001\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0004\x00E0\x0001\u0361\x0015\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0006\x00E0\x0001\u037e\x0008\x00E0\x0001\u0359" + + "\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x000B\x00E0\x0001\u0463\x000E\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0007\x00E0\x0001\u0464\x0012\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0457\x000B\x00E0\x0001\u0361\x000E\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0457\x0014\x00E0\x0001\u0465\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0009\x00E0\x0001\u0359\x0010\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457" + + "\x000E\x00E0\x0001\u0466\x000B\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x000A\x00E0" + + "\x0001\u0467\x000F\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x000F\x00E0\x0001\u0359" + + "\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0005\x00E0\x0001\u0359\x0014\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000E\x00E0\x0001\u0468\x000B\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0457\x0010\x00E0\x0001\u0469\x0009\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0457\x0005\x00E0\x0001\u046a\x0014\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0457\x0012\x00E0\x0001\u046b\x0007\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457" + + "\x000B\x00E0\x0001\u046c\x000E\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000F\x00E0" + + "\x0001\u046d\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u046e" + + "\x0007\x00E0\x0001\u0359\x0010\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0001\u046f" + + "\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0002\x00E0\x0001\u0470\x0017\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000D\x00E0\x0001\u0471\x000C\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0005\x00E0\x0001\u0359\x0014\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0472\x000A\x00E0\x00A9\x0000\x0001\u0181\x0012\x00E0" + + "\x0001\u0359\x0007\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0013\x00E0\x0001\u0359" + + "\x0002\x00E0\x0001\u0467\x0003\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0009\x00E0" + + "\x0001\u0473\x0010\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x000F\x00E0\x0001\u0474" + + "\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x0014\x00E0\x0001\u0471\x0005\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0457\x000B\x00E0\x0001\u0475\x000E\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0019\x00E0\x0001\u0476\x0001\u0182\x000A\x00E0\x00C5\x0000" + + "\x000A\u0477\x0007\x0000\x0001\u0305\x0001\u0306\x0001\u0307\x009B\x0000\x0001\u02a2\x0001\x0077" + + "\x0002\x0000\x0001\u03ad\x0025\u02a2\x0001\u0305\x0002\u02a2\x0001\u03ae\x0001\u0305\x0001\u02a2" + + "\x0001\u03af\x0002\u02a2\x0001\u02a4\x0002\x0000\x0001\u0305\x0001\u02a2\x0003\x0000\x0001\u02a2" + + "\x0001\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x0004\u0478\x0002\x0074\x0001\u0478" + + "\x000D\x0074\x0001\u0478\x0006\x0074\x000A\u0478\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\u0305" + + "\x0003\x0000\x0029\u0305\x0001\u0414\x0005\u0305\x0001\u0307\x0001\x00E1\x0001\x0000\x0002\u0305" + + "\x0003\x0000\x0001\u0305\x0093\x0000\x0001\x0074\x0001\x0077\x0002\x0000\x0001\u03b0\x0025\u02a3" + + "\x0001\u0306\x0002\u02a3\x0001\u03b1\x0001\x0000\x0001\x0074\x0001\u03b2\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0002\x0000\x0001\u0306\x0001\u02a3\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\x0075\x0004\u0479\x0002\x0074\x0001\u0479\x000D\x0074\x0001\u0479\x0006\x0074" + + "\x000A\u0479\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0096\x0000\x0029\u0306\x0001\u0415\x0002\x0000\x0001\u0306" + + "\x0001\u0305\x0001\u0306\x0001\u0307\x0001\x00E1\x0001\x0000\x0002\u0306\x0097\x0000\x0001\u02a4" + + "\x0001\x0077\x0002\x0000\x0001\u03b3\x0025\u02a4\x0001\u0307\x0002\u02a4\x0001\u03b4\x0001\u0307" + + "\x0001\u02a4\x0001\u03b5\x0002\u02a4\x0001\x0074\x0002\x0000\x0001\u0307\x0001\u02a4\x0003\x0000" + + "\x0001\u02a4\x0001\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x0004\u047a\x0002\x0074" + + "\x0001\u047a\x000D\x0074\x0001\u047a\x0006\x0074\x000A\u047a\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\u0307\x0003\x0000\x0029\u0307\x0001\u0416\x0005\u0307\x0001\x0000\x0001\x00E1\x0001\x0000" + + "\x0002\u0307\x0003\x0000\x0001\u0307\x0008\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0004\x0024\x0001\x00FD\x0015\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u047b\x000A\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0004\x0024" + + "\x0001\u047c\x0015\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0015\x0024\x0001\u047d\x0004\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0005\x0024\x0001\u047e\x0014\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\x0024\x0001\u047f" + + "\x0018\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0004\x0024\x0001\u0480\x0015\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x000D\x0024\x0001\u0481\x000C\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u0482\x000A\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u0483\x0016\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0015\x0024" + + "\x0001\u0484\x0004\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u047d\x000A\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0010\x0024\x0001\u0485\x0009\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0014\x0024\x0001\u047d" + + "\x0005\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0005\x0024\x0001\u0486\x0014\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0009\x0024\x0001\u0487\x0010\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0005\x0024\x0001\u01aa\x0014\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x000B\x0024\x0001\u0488\x000E\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024" + + "\x0001\u019b\x0016\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x0001\u010b\x0001\u0489" + + "\x0003\u010b\x0001\u048a\x0001\u048b\x0001\u048c\x0001\u010b\x0001\u048d\x0001\u048e\x0001\u048f" + + "\x0001\u0490\x0001\u0491\x0001\u0492\x0001\u010b\x0001\u0493\x0001\u0494\x0001\u0495\x0002\u010b" + + "\x0001\u0496\x0001\u0497\x0001\u0498\x0001\u010b\x0001\u0499\x0001\x008C\x0001\u049a\x0002\u010b" + + "\x0001\u049b\x0001\u010b\x0001\u049c\x0001\u049d\x0003\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0007\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0008\x0024\x0001\u049e\x0011\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0015\x0024\x0001\u049f" + + "\x0004\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0010\x0024\x0001\u04a0\x0009\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0007\x0024\x0001\u0482\x0012\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x00C1\x0000\x0001\u04a1\x009C\x0000\x0001\u04a2\x0003\x0000" + + "\x0001\u04a2\x001A\u04a3\x0001\u04a2\x000A\u04a3\x0001\u04a4\x0002\u04a2\x0001\u04a5\x0002\u04a2" + + "\x0001\u04a6\x0003\x0000\x0001\u04a7\x0001\x0000\x0002\u04a2\x0003\x0000\x0001\u04a2\x0008\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x001A\x0024\x0001\x008C\x000A\x008D\x0001\u04a8\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x00C1\x0000\x0001\u04a9\x009C\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0004\u010b\x0001\u011f\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x000F\u010b\x0001\u04aa\x000A\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u04ab" + + "\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0015\u010b\x0001\u04ac\x0004\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0005\u010b\x0001\u04ad\x0014\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b" + + "\x0001\u04ae\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u04af\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000D\u010b\x0001\u04b0\x000C\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x000F\u010b\x0001\u04b1\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u04b2\x0016\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0015\u010b\x0001\u04b3" + + "\x0004\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x000F\u010b\x0001\u04ac\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0010\u010b\x0001\u04b4\x0009\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0014\u010b" + + "\x0001\u04ac\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0005\u010b\x0001\u04b5\x0014\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0009\u010b\x0001\u04b6\x0010\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0005\u010b\x0001\u01de\x0014\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x000B\u010b\x0001\u04b7\x000E\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u01cf" + + "\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0008\u010b\x0001\u04b8\x0011\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0015\u010b\x0001\u04b9\x0004\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0010\u010b" + + "\x0001\u04ba\x0009\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0007\u010b\x0001\u04b1\x0012\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x000C\x0000\x0001\x00C9\x0001\x0000\x0001\x00CA\x000F\x0000\x0001\x00CB\x0002\x0000" + + "\x0001\x00CC\x0004\x0000\x0001\x00CD\x0003\x0000\x0001\x00CE\x0012\x0000\x0001\x00CF\x0011\x0000" + + "\x0001\x00D0\x0002\x0000\x0001\x00D1\x0032\x0000\x0001\x0052\x0002\x001A\x0006\x0000\x0001\x0052" + + "\x0003\x0000\x0001\x0074\x0001\x0077\x0002\x0000\x0001\x0075\x0001\u0113\x0001\u0114\x0001\u0115" + + "\x0001\u0116\x0001\u0117\x0001\u0118\x0001\u0119\x0001\u011a\x0001\u011b\x0001\u011c\x0001\u011d" + + "\x0001\u011e\x0001\u011f\x0001\u0120\x0001\u0121\x0001\u0122\x0001\u0123\x0001\u0124\x0001\u0125" + + "\x0001\u0126\x0001\u0127\x0001\u0128\x0001\u0129\x0001\u012a\x0001\u012b\x0001\u012c\x0001\x0074" + + "\x0001\u04bb\x0001\u04bc\x0005\u04bb\x0001\u04bd\x0001\u04bc\x0001\u04bb\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0052\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049" + + "\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D" + + "\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050" + + "\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053" + + "\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\u0404\x001A\x0024\x0001\x008C\x000A\u0130\x0001\x0000\x0001\x0074\x0001\x0096" + + "\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C" + + "\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F" + + "\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000" + + "\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0404\x001A\x0024\x0001\x008C\x0002\u0405\x0001\u0130" + + "\x0002\u0405\x0002\u0130\x0002\u0405\x0001\u0130\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074" + + "\x0001\x0000\x0001\x0093\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x001A\x0094\x0000\x0004\u04be\x0002\x0000\x0001\u04be\x000D\x0000" + + "\x0001\u04be\x0006\x0000\x000A\u04be\x0001\u02fa\x00A9\x0000\x0004\u04bf\x0002\x0000\x0001\u04bf" + + "\x000D\x0000\x0001\u04bf\x0006\x0000\x000A\u04bf\x0001\u04c0\x00A9\x0000\x0004\u04c1\x0002\x0000" + + "\x0001\u04c1\x000D\x0000\x0001\u04c1\x0006\x0000\x0001\u04c2\x0001\u04c3\x0005\u04c2\x0001\u04c4" + + "\x0001\u04c3\x0001\u04c2\x000B\x0000\x0001\u01f2\x009E\x0000\x0004\u04c5\x0002\x0000\x0001\u04c5" + + "\x000D\x0000\x0001\u04c5\x0006\x0000\x000A\u04c5\x0001\u040b\x000A\x0000\x0001\u01f2\x009E\x0000" + + "\x0004\u04c1\x0002\x0000\x0001\u04c1\x000D\x0000\x0001\u04c1\x0006\x0000\x0001\u04c2\x0001\u04c3" + + "\x0005\u04c2\x0001\u04c4\x0001\u04c3\x0001\u04c2\x00A9\x0000\x0001\u0301\x0004\u04c5\x0002\x0000" + + "\x0001\u04c5\x000D\x0000\x0001\u04c5\x0006\x0000\x000A\u04c5\x0001\u040b\x000A\x0000\x0001\u01f2" + + "\x009D\x0000\x0001\u0301\x0004\u04c5\x0002\x0000\x0001\u04c5\x000D\x0000\x0001\u04c5\x0006\x0000" + + "\x000A\u04c6\x0001\u040b\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u04c5\x0002\x0000" + + "\x0001\u04c5\x000D\x0000\x0001\u04c5\x0006\x0000\x0002\u04c6\x0001\u04c5\x0002\u04c6\x0002\u04c5" + + "\x0002\u04c6\x0001\u04c5\x0001\u040b\x000A\x0000\x0001\u01f2\x009E\x0000\x0004\u04c7\x0002\x0000" + + "\x0001\u04c7\x000D\x0000\x0001\u04c7\x0006\x0000\x000A\u04c7\x0001\u0300\x000A\x0000\x0001\u01f2" + + "\x009D\x0000\x0001\u04c8\x001B\x0000\x000A\u04c9\x00A9\x0000\x0001\u04c8\x001B\x0000\x000A\u0410" + + "\x00A9\x0000\x0001\u04c8\x001B\x0000\x0002\u0410\x0001\u04c9\x0001\u0410\x0001\u04ca\x0002\u04c9" + + "\x0002\u0410\x0001\u04c9\x00A9\x0000\x0001\u0301\x0004\u04c7\x0002\x0000\x0001\u04c7\x000D\x0000" + + "\x0001\u04c7\x0006\x0000\x000A\u04c7\x0001\u0300\x000A\x0000\x0001\u01f2\x009E\x0000\x0004\u04cb" + + "\x0002\x0000\x0001\u04cb\x000D\x0000\x0001\u04cb\x0006\x0000\x000A\u04cb\x00AA\x0000\x0004\u04cc" + + "\x0002\x0000\x0001\u04cc\x000D\x0000\x0001\u04cc\x0006\x0000\x000A\u04cc\x00AA\x0000\x0004\u04cd" + + "\x0002\x0000\x0001\u04cd\x000D\x0000\x0001\u04cd\x0006\x0000\x000A\u04cd\x001A\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0004\x002D\x0001\u0142\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u04ce\x000A\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0004\x002D\x0001\u04cf\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0015\x002D" + + "\x0001\u04d0\x0004\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0005\x002D\x0001\u04d1\x0014\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0001\x002D\x0001\u04d2\x0018\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0004\x002D\x0001\u04d3" + + "\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x000D\x002D\x0001\u04d4\x000C\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x000F\x002D\x0001\u0318\x000A\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u04d5\x0016\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0015\x002D\x0001\u04d6\x0004\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D" + + "\x0001\u04d0\x000A\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0010\x002D\x0001\u04d7\x0009\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0014\x002D\x0001\u04d0\x0005\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0005\x002D\x0001\u04d8" + + "\x0014\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0009\x002D\x0001\u04d9\x0010\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0005\x002D\x0001\u0218\x0014\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000B\x002D\x0001\u04da\x000E\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u0209\x0016\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000" + + "\x0001\x0075\x0001\u0150\x0001\u04db\x0003\u0150\x0001\u04dc\x0001\u04dd\x0001\u04de\x0001\u0150" + + "\x0001\u04df\x0001\u04e0\x0001\u04e1\x0001\u04e2\x0001\u04e3\x0001\u04e4\x0001\u0150\x0001\u04e5" + + "\x0001\u04e6\x0001\u04e7\x0002\u0150\x0001\u04e8\x0001\u04e9\x0001\u04ea\x0001\u0150\x0001\u04eb" + + "\x0001\x009E\x0001\u04ec\x0002\u0150\x0001\u04ed\x0001\u0150\x0001\u04ee\x0001\u04ef\x0003\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0008\x002D\x0001\u04f0\x0011\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0015\x002D\x0001\u04f1\x0004\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0010\x002D\x0001\u04f2" + + "\x0009\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0007\x002D\x0001\u0318\x0012\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x001A\x002D\x0001\x009E\x000A\x009F\x0001\u04a8\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u0162\x0015\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x000F\u0150\x0001\u04f3\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u04f4\x0015\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0015\u0150\x0001\u04f5" + + "\x0004\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0005\u0150\x0001\u04f6\x0014\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u04f7\x0018\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150" + + "\x0001\u04f8\x0015\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x000D\u0150\x0001\u04f9\x000C\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u033a\x000A\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0003\u0150\x0001\u04fa\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0015\u0150\x0001\u04fb\x0004\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u04f5" + + "\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0010\u0150\x0001\u04fc\x0009\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u04f5\x0005\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0005\u0150" + + "\x0001\u04fd\x0014\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0009\u0150\x0001\u04fe\x0010\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0005\u0150\x0001\u024a\x0014\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x000B\u0150\x0001\u04ff\x000E\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u023b\x0016\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0008\u0150\x0001\u0500" + + "\x0011\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0015\u0150\x0001\u0501\x0004\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0010\u0150\x0001\u0502\x0009\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150" + + "\x0001\u033a\x0012\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x000C\x0000\x0001\x00C9" + + "\x0001\x0000\x0001\x00CA\x000F\x0000\x0001\x00CB\x0002\x0000\x0001\x00CC\x0004\x0000\x0001\x00CD" + + "\x0003\x0000\x0001\x00CE\x0012\x0000\x0001\x00CF\x0011\x0000\x0001\x00D0\x0002\x0000\x0001\x00D1" + + "\x0032\x0000\x0001\x0052\x0002\x001A\x0006\x0000\x0001\x0052\x0003\x0000\x0001\x0074\x0001\x0077" + + "\x0002\x0000\x0001\x0075\x0001\u0156\x0001\u0157\x0001\u0158\x0001\u0159\x0001\u015a\x0001\u015b" + + "\x0001\u015c\x0001\u015d\x0001\u015e\x0001\u015f\x0001\u0160\x0001\u0161\x0001\u0162\x0001\u0163" + + "\x0001\u0164\x0001\u0165\x0001\u0166\x0001\u0167\x0001\u0168\x0001\u0169\x0001\u016a\x0001\u016b" + + "\x0001\u016c\x0001\u016d\x0001\u016e\x0001\u016f\x0001\x0074\x0001\u0503\x0001\u0504\x0005\u0503" + + "\x0001\u0505\x0001\u0504\x0001\u0503\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0052\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000\x0001\x004A\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000\x0001\x004E\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000\x0001\x0051\x0031\x0000" + + "\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0447\x001A\x002D" + + "\x0001\x009E\x000A\u0173\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093" + + "\x0001\x0076\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x001A\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0049\x0001\x0000" + + "\x0001\x004A\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0004\x0000\x0001\x004D\x0003\x0000" + + "\x0001\x004E\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x004F\x0011\x0000\x0001\x0050\x0002\x0000" + + "\x0001\x0051\x0031\x0000\x0001\x0019\x0003\x001A\x0002\x0000\x0002\x0052\x0001\x0053\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0093\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\u0447\x001A\x002D\x0001\x009E\x0002\u0448\x0001\u0173\x0002\u0448\x0002\u0173\x0002\u0448" + + "\x0001\u0173\x0001\x0000\x0001\x0074\x0001\x0096\x0001\x0074\x0001\x0000\x0001\x0093\x0001\x0076" + + "\x0003\x0074\x0002\x0000\x0001\x0052\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x001A" + + "\x0094\x0000\x0004\u0506\x0002\x0000\x0001\u0506\x000D\x0000\x0001\u0506\x0006\x0000\x000A\u0506" + + "\x0001\u034e\x00A9\x0000\x0004\u0507\x0002\x0000\x0001\u0507\x000D\x0000\x0001\u0507\x0006\x0000" + + "\x000A\u0507\x0001\u0508\x00A9\x0000\x0004\u0509\x0002\x0000\x0001\u0509\x000D\x0000\x0001\u0509" + + "\x0006\x0000\x0001\u050a\x0001\u050b\x0005\u050a\x0001\u050c\x0001\u050b\x0001\u050a\x000B\x0000" + + "\x0001\u025e\x009E\x0000\x0004\u050d\x0002\x0000\x0001\u050d\x000D\x0000\x0001\u050d\x0006\x0000" + + "\x000A\u050d\x0001\u044e\x000A\x0000\x0001\u025e\x009E\x0000\x0004\u0509\x0002\x0000\x0001\u0509" + + "\x000D\x0000\x0001\u0509\x0006\x0000\x0001\u050a\x0001\u050b\x0005\u050a\x0001\u050c\x0001\u050b" + + "\x0001\u050a\x00A9\x0000\x0001\u0355\x0004\u050d\x0002\x0000\x0001\u050d\x000D\x0000\x0001\u050d" + + "\x0006\x0000\x000A\u050d\x0001\u044e\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u050d" + + "\x0002\x0000\x0001\u050d\x000D\x0000\x0001\u050d\x0006\x0000\x000A\u050e\x0001\u044e\x000A\x0000" + + "\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u050d\x0002\x0000\x0001\u050d\x000D\x0000\x0001\u050d" + + "\x0006\x0000\x0002\u050e\x0001\u050d\x0002\u050e\x0002\u050d\x0002\u050e\x0001\u050d\x0001\u044e" + + "\x000A\x0000\x0001\u025e\x009E\x0000\x0004\u050f\x0002\x0000\x0001\u050f\x000D\x0000\x0001\u050f" + + "\x0006\x0000\x000A\u050f\x0001\u0354\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0510\x001B\x0000" + + "\x000A\u0511\x00A9\x0000\x0001\u0510\x001B\x0000\x000A\u0453\x00A9\x0000\x0001\u0510\x001B\x0000" + + "\x0002\u0453\x0001\u0511\x0001\u0453\x0001\u0512\x0002\u0511\x0002\u0453\x0001\u0511\x00A9\x0000" + + "\x0001\u0355\x0004\u050f\x0002\x0000\x0001\u050f\x000D\x0000\x0001\u050f\x0006\x0000\x000A\u050f" + + "\x0001\u0354\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0181\x0003\x00E0\x0001\u0513\x0016\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000D\x00E0\x0001\u0359\x000C\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x000E\x00E0\x0001\u0514\x0001\u0515\x000A\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x000F\x00E0\x0001\u0516\x000A\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x000A\x00E0\x0001\u0517\x000F\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0003\x00E0\x0001\u0518\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0003\x00E0\x0001\u0519\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0008\x00E0" + + "\x0001\u051a\x0011\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u051b\x0019\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0009\x00E0\x0001\u051c\x0010\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x000D\x00E0\x0001\u051d\x000C\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0002\x00E0\x0001\u0359\x0017\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0015\x00E0\x0001\u051e\x0004\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0008\x00E0\x0001\u0359\x0011\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0" + + "\x0001\u051f\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0\x0001\u0359" + + "\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000F\x00E0\x0001\u0359\x000A\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000A\x00E0\x0001\u0520\x000F\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x000F\x00E0\x0001\u0521\x000A\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0019\x00E0\x0001\u0359\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0007\x00E0\x0001\u0522\x0012\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000F\x00E0" + + "\x0001\u0523\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0015\x00E0\x0001\u0524" + + "\x0004\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0018\x00E0\x0001\u0525\x0001\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u046b\x0019\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x000E\x00E0\x0001\u0359\x000B\x00E0\x0001\u0182\x000A\x00E0\x00AA\x0000" + + "\x001A\x00E0\x0001\u0526\x000A\x00E0\x00A9\x0000\x0001\u0181\x0002\x00E0\x0001\u0527\x0017\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0528\x0018\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x000F\x00E0\x0001\u0529\x000A\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0001\u052a\x0019\x00E0\x0001\u0182\x000A\x00E0\x00C5\x0000\x000A\u052b" + + "\x0007\x0000\x0001\u0305\x0001\u0306\x0001\u0307\x009B\x0000\x0001\x0074\x0003\x0000\x0001\x0075" + + "\x0004\u02a2\x0002\x0074\x0001\u02a2\x000D\x0074\x0001\u02a2\x0006\x0074\x000A\u02a2\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\x0075\x0004\u02a3\x0002\x0074\x0001\u02a3" + + "\x000D\x0074\x0001\u02a3\x0006\x0074\x000A\u02a3\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\x0075\x0004\u02a4\x0002\x0074\x0001\u02a4\x000D\x0074\x0001\u02a4\x0006\x0074" + + "\x000A\u02a4\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0004\x0024\x0001\u052c\x0015\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0001\u052d\x0019\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0008\x0024\x0001\u052e" + + "\x0011\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x000B\x0024\x0001\u052f\x000E\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x000F\x0024\x0001\u0530\x000A\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000D\x0024\x0001\u0531\x000C\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x000A\x0024\x0001\u0532\x000F\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0004\x0024" + + "\x0001\u03c9\x0015\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0008\x0024\x0001\u0533\x0011\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x000A\x0024\x0001\u0185\x000F\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0007\x0024\x0001\u0534" + + "\x0012\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u02c2\x0016\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0005\x0024\x0001\u0535\x0014\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0009\u010b" + + "\x0001\u0536\x0010\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0007\u010b\x0001\u0537\x0012\u010b\x0001\x008C\x0001\u0538\x0009\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0008\u010b\x0001\u0539" + + "\x0004\u010b\x0001\u053a\x0005\u010b\x0001\u053b\x0006\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u053c\x0016\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0007\u010b\x0001\u053d\x0012\u010b\x0001\x008C\x0008\u010b\x0001\u053e\x0001\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0007\u010b\x0001\u053f\x0012\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0007\u010b\x0001\u0540\x0012\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0005\u010b\x0001\u0541\x0004\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0007\u010b\x0001\u0542" + + "\x0012\u010b\x0001\x008C\x0008\u010b\x0001\u0543\x0001\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0005\u010b\x0001\u0544\x0004\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000B\u010b\x0001\u0545" + + "\x000E\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0007\u010b\x0001\u0546\x0012\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0016\u010b\x0001\u0547\x0003\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b" + + "\x0001\x008C\x0007\u010b\x0001\u0544\x0002\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x000D\u010b\x0001\u0548\x000C\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0008\u010b" + + "\x0001\u0549\x0001\u054a\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0006\u010b\x0001\u054b\x0001\u054c\x0012\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u054d\x0016\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b" + + "\x0001\x008C\x0004\u010b\x0001\u0544\x0005\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u010b\x0001\u054e\x0008\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u010b" + + "\x0001\u054f\x0008\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000B\x0024\x0001\u0550" + + "\x000E\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u0551\x0016\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0004\x0024\x0001\u0487\x0015\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0094\x0000\x001A\u0552\x0001\x0000\x000A\u0552\x0008\x0000" + + "\x0001\u0553\x0001\x0000\x0001\u0554\x009A\x0000\x0001\u04a2\x0003\x0000\x0026\u04a2\x0001\u04a4" + + "\x0002\u04a2\x0001\u04a5\x0002\u04a2\x0001\u04a6\x0005\x0000\x0002\u04a2\x0003\x0000\x0001\u04a2" + + "\x0093\x0000\x0001\u04a2\x0003\x0000\x0001\u0555\x001A\u04a3\x0001\u0556\x000A\u04a3\x0001\u0557" + + "\x0002\u04a2\x0001\u04a5\x0002\u04a2\x0001\u04a6\x0001\x0000\x0001\u0558\x0003\x0000\x0002\u04a2" + + "\x0003\x0000\x0001\u04a2\x0093\x0000\x0001\u04a4\x0003\x0000\x0026\u04a4\x0001\x0000\x0002\u04a4" + + "\x0001\u0559\x0002\u04a4\x0001\u04a6\x0005\x0000\x0002\u04a4\x0003\x0000\x0001\u04a4\x0098\x0000" + + "\x0004\u055a\x0002\x0000\x0001\u055a\x000D\x0000\x0001\u055a\x0006\x0000\x000A\u055a\x00AA\x0000" + + "\x001A\u055b\x0001\x0000\x000A\u055b\x000A\x0000\x0001\u04a7\x009F\x0000\x0004\u055c\x0002\x0000" + + "\x0001\u055c\x000D\x0000\x0001\u055c\x0006\x0000\x000A\u055c\x0001\u055d\x0019\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B9\x0001\x0000\x0001\x00BA\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00BB" + + "\x0002\x0000\x0001\x00BC\x0004\x0000\x0001\x00BD\x0003\x0000\x0001\x00BE\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x00BF\x0011\x0000\x0001\x00C0\x0002\x0000\x0001\x00C1\x0031\x0000\x0001\x0019" + + "\x0001\x0047\x0008\x0000\x0001\x0047\x0001\x0000\x0001\x0019\x0001\x0000\x0001\u055e\x0001\u055f" + + "\x0002\x0019\x0001\u055e\x001A\u0560\x000B\u055e\x0001\x0000\x0003\u055e\x0001\x0000\x0001\u055e" + + "\x0001\x0000\x0003\u055e\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x0002\x0000\x0001\x0047" + + "\x008F\x0000\x0001\u0561\x0003\x0000\x0001\u0561\x001A\u0562\x0001\u0561\x000A\u0562\x0001\u0563" + + "\x0002\u0561\x0001\u0564\x0002\u0561\x0001\u0565\x0003\x0000\x0001\u0566\x0001\x0000\x0002\u0561" + + "\x0003\x0000\x0001\u0561\x0093\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u0567" + + "\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0001\u0568\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0008\u010b\x0001\u0569\x0011\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000B\u010b\x0001\u056a" + + "\x000E\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x000F\u010b\x0001\u056b\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000D\u010b\x0001\u056c\x000C\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000A\u010b" + + "\x0001\u056d\x000F\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u03ff\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0008\u010b\x0001\u056e\x0011\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x000A\u010b\x0001\u01b9\x000F\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0007\u010b\x0001\u056f\x0012\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u02ef" + + "\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0005\u010b\x0001\u0570\x0014\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000B\u010b\x0001\u0571\x000E\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b" + + "\x0001\u0572\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u04b6\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0006\x0000\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0573" + + "\x0001\u0280\x0001\u0574\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287" + + "\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0575\x0002\u0280\x0001\u0576\x0004\u0280\x0001\u0577" + + "\x0003\u0280\x0001\u0578\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u0579\x0011\u0280\x0001\u057a" + + "\x0002\u0280\x0001\u057b\x0031\u0280\x0001\u0291\x0001\u057c\x0001\u057d\x0001\u057c\x0002\u0280" + + "\x0002\u057e\x0001\u057f\x0001\u0280\x0001\u057d\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0580" + + "\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u0581\x001A\u029b\x0001\u029c\x000A\u0582\x0001\u02d0" + + "\x0001\u029f\x0001\u0583\x0001\u029f\x0001\u0280\x0001\u0580\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0002\u0280\x0001\u057e\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297" + + "\x0001\u057d\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0573" + + "\x0001\u0280\x0001\u0574\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287" + + "\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0575\x0002\u0280\x0001\u0576\x0004\u0280\x0001\u0577" + + "\x0003\u0280\x0001\u0578\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u0579\x0011\u0280\x0001\u057a" + + "\x0002\u0280\x0001\u057b\x0031\u0280\x0001\u0291\x0001\u057c\x0001\u057d\x0001\u057c\x0002\u0280" + + "\x0002\u057e\x0001\u057f\x0001\u0280\x0001\u057d\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0580" + + "\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u0581\x001A\u029b\x0001\u029c\x000A\u0584\x0001\u02d0" + + "\x0001\u029f\x0001\u0583\x0001\u029f\x0001\u0280\x0001\u0580\x0001\u02a1\x0001\u02a2\x0001\u02a3" + + "\x0001\u02a4\x0002\u0280\x0001\u057e\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297" + + "\x0001\u057d\x0003\u0297\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0573" + + "\x0001\u0280\x0001\u0574\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287" + + "\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0575\x0002\u0280\x0001\u0576\x0004\u0280\x0001\u0577" + + "\x0003\u0280\x0001\u0578\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u0579\x0011\u0280\x0001\u057a" + + "\x0002\u0280\x0001\u057b\x0031\u0280\x0001\u0291\x0001\u057c\x0001\u057d\x0001\u057c\x0002\u0280" + + "\x0002\u057e\x0001\u057f\x0001\u0280\x0001\u057d\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0580" + + "\x0001\u0280\x0001\u0299\x0001\u0296\x0001\u0581\x001A\u029b\x0001\u029c\x0002\u0584\x0001\u0582" + + "\x0001\u0584\x0001\u0585\x0002\u0582\x0002\u0584\x0001\u0582\x0001\u02d0\x0001\u029f\x0001\u0583" + + "\x0001\u029f\x0001\u0280\x0001\u0580\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0002\u0280" + + "\x0001\u057e\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u057d\x0003\u0297" + + "\x00B6\x0000\x0001\u02fa\x00A9\x0000\x0004\u0586\x0002\x0000\x0001\u0586\x000D\x0000\x0001\u0586" + + "\x0006\x0000\x000A\u0586\x0001\u04c0\x00A9\x0000\x0004\u0587\x0002\x0000\x0001\u0587\x000D\x0000" + + "\x0001\u0587\x0006\x0000\x000A\u0587\x0001\u0588\x00A9\x0000\x0004\u0589\x0002\x0000\x0001\u0589" + + "\x000D\x0000\x0001\u0589\x0006\x0000\x000A\u0589\x0001\u058a\x000A\x0000\x0001\u01f2\x009D\x0000" + + "\x0001\u0301\x0004\u0589\x0002\x0000\x0001\u0589\x000D\x0000\x0001\u0589\x0006\x0000\x000A\u058b" + + "\x0001\u058a\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u0589\x0002\x0000\x0001\u0589" + + "\x000D\x0000\x0001\u0589\x0006\x0000\x000A\u058c\x0001\u058a\x000A\x0000\x0001\u01f2\x009D\x0000" + + "\x0001\u0301\x0004\u0589\x0002\x0000\x0001\u0589\x000D\x0000\x0001\u0589\x0006\x0000\x0002\u058c" + + "\x0001\u058b\x0001\u058c\x0001\u058d\x0002\u058b\x0002\u058c\x0001\u058b\x0001\u058a\x000A\x0000" + + "\x0001\u01f2\x009E\x0000\x0004\u058e\x0002\x0000\x0001\u058e\x000D\x0000\x0001\u058e\x0006\x0000" + + "\x000A\u058e\x0001\u040b\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u058e\x0002\x0000" + + "\x0001\u058e\x000D\x0000\x0001\u058e\x0006\x0000\x000A\u058e\x0001\u040b\x000A\x0000\x0001\u01f2" + + "\x00C3\x0000\x0001\u0300\x000A\x0000\x0001\u01f2\x00B9\x0000\x0001\u058f\x0001\u0590\x0005\u058f" + + "\x0001\u0591\x0001\u0590\x0001\u058f\x00A9\x0000\x0001\u04c8\x00CE\x0000\x0001\u04c8\x001B\x0000" + + "\x0002\u04c9\x0001\x0000\x0002\u04c9\x0002\x0000\x0002\u04c9\x00AB\x0000\x0004\u0305\x0002\x0000" + + "\x0001\u0305\x000D\x0000\x0001\u0305\x0006\x0000\x000A\u0305\x00AA\x0000\x0004\u0306\x0002\x0000" + + "\x0001\u0306\x000D\x0000\x0001\u0306\x0006\x0000\x000A\u0306\x00AA\x0000\x0004\u0307\x0002\x0000" + + "\x0001\u0307\x000D\x0000\x0001\u0307\x0006\x0000\x000A\u0307\x001A\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0004\x002D" + + "\x0001\u0592\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0001\u0593\x0019\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0008\x002D\x0001\u0594\x0011\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000B\x002D\x0001\u0595\x000E\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u0596\x000A\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000D\x002D" + + "\x0001\u0597\x000C\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000A\x002D\x0001\u0598\x000F\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0004\x002D\x0001\u031c\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0008\x002D\x0001\u0599" + + "\x0011\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x000A\x002D\x0001\u01f3\x000F\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0007\x002D\x0001\u059a\x0012\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u0322\x0016\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0005\x002D\x0001\u059b\x0014\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0009\u0150\x0001\u059c\x0010\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150\x0001\u059d\x0012\u0150\x0001\x009E" + + "\x0001\u059e\x0009\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0008\u0150\x0001\u059f\x0004\u0150\x0001\u05a0\x0005\u0150\x0001\u05a1\x0006\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150" + + "\x0001\u05a2\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0007\u0150\x0001\u05a3\x0012\u0150\x0001\x009E\x0008\u0150\x0001\u05a4" + + "\x0001\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150" + + "\x0001\u05a5\x0012\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0007\u0150\x0001\u05a6\x0012\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0005\u0150" + + "\x0001\u05a7\x0004\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0007\u0150\x0001\u05a8\x0012\u0150\x0001\x009E\x0008\u0150\x0001\u05a9\x0001\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0005\u0150" + + "\x0001\u05aa\x0004\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x000B\u0150\x0001\u05ab\x000E\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150\x0001\u05ac\x0012\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0016\u0150\x0001\u05ad" + + "\x0003\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x001A\u0150\x0001\x009E\x0007\u0150\x0001\u05aa\x0002\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000D\u0150\x0001\u05ae\x000C\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0008\u0150\x0001\u05af\x0001\u05b0\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0006\u0150\x0001\u05b1\x0001\u05b2\x0012\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u05b3" + + "\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x001A\u0150\x0001\x009E\x0004\u0150\x0001\u05aa\x0005\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u0150\x0001\u05b4" + + "\x0008\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0001\u0150\x0001\u05b5\x0008\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0007\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x000B\x002D\x0001\u05b6\x000E\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u05b7\x0016\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0004\x002D\x0001\u04d9\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0004\u0150\x0001\u05b8\x0015\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u05b9\x0019\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0008\u0150\x0001\u05ba" + + "\x0011\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x000B\u0150\x0001\u05bb\x000E\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u05bc\x000A\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000D\u0150" + + "\x0001\u05bd\x000C\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x000A\u0150\x0001\u05be\x000F\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u033e\x0015\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0008\u0150\x0001\u05bf\x0011\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x000A\u0150\x0001\u0225\x000F\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150\x0001\u05c0" + + "\x0012\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0003\u0150\x0001\u0344\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0005\u0150\x0001\u05c1\x0014\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000B\u0150" + + "\x0001\u05c2\x000E\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u05c3\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u04fe\x0015\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0573\x0001\u0280\x0001\u0574\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0575\x0002\u0280" + + "\x0001\u0576\x0004\u0280\x0001\u0577\x0003\u0280\x0001\u0578\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u0579\x0011\u0280\x0001\u057a\x0002\u0280\x0001\u057b\x0031\u0280\x0001\u0291\x0001\u057c" + + "\x0001\x001A\x0001\u057c\x0002\u0280\x0002\u057e\x0001\x0053\x0001\u0280\x0001\x001A\x0001\u0280" + + "\x0001\x0019\x0001\x0000\x0001\u0580\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u05c4\x001A\x002D" + + "\x0001\x009E\x000A\u05c5\x0001\u02d0\x0001\u029f\x0001\x0096\x0001\u029f\x0001\u0280\x0001\u0580" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0002\u0280\x0001\u057e\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x001A\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0573\x0001\u0280\x0001\u0574\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0575\x0002\u0280" + + "\x0001\u0576\x0004\u0280\x0001\u0577\x0003\u0280\x0001\u0578\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u0579\x0011\u0280\x0001\u057a\x0002\u0280\x0001\u057b\x0031\u0280\x0001\u0291\x0001\u057c" + + "\x0001\x001A\x0001\u057c\x0002\u0280\x0002\u057e\x0001\x0053\x0001\u0280\x0001\x001A\x0001\u0280" + + "\x0001\x0019\x0001\x0000\x0001\u0580\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u05c4\x001A\x002D" + + "\x0001\x009E\x000A\u0503\x0001\u02d0\x0001\u029f\x0001\x0096\x0001\u029f\x0001\u0280\x0001\u0580" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0002\u0280\x0001\u057e\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x001A\x0003\x0000\x0001\u0280\x0001\u0281\x0001\u0280" + + "\x0001\u0282\x0002\u0280\x0001\u0573\x0001\u0280\x0001\u0574\x0004\u0280\x0001\u0285\x0001\u0280" + + "\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280\x0001\u0575\x0002\u0280" + + "\x0001\u0576\x0004\u0280\x0001\u0577\x0003\u0280\x0001\u0578\x000F\u0280\x0001\u028d\x0002\u0280" + + "\x0001\u0579\x0011\u0280\x0001\u057a\x0002\u0280\x0001\u057b\x0031\u0280\x0001\u0291\x0001\u057c" + + "\x0001\x001A\x0001\u057c\x0002\u0280\x0002\u057e\x0001\x0053\x0001\u0280\x0001\x001A\x0001\u0280" + + "\x0001\x0019\x0001\x0000\x0001\u0580\x0001\u0280\x0001\x0022\x0001\x0019\x0001\u05c4\x001A\x002D" + + "\x0001\x009E\x0002\u0503\x0001\u05c5\x0001\u0503\x0001\u05c6\x0002\u05c5\x0002\u0503\x0001\u05c5" + + "\x0001\u02d0\x0001\u029f\x0001\x0096\x0001\u029f\x0001\u0280\x0001\u0580\x0001\u02a1\x0001\u02a2" + + "\x0001\u02a3\x0001\u02a4\x0002\u0280\x0001\u057e\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280" + + "\x0001\x0000\x0001\x001A\x00B9\x0000\x0001\u034e\x00A9\x0000\x0004\u05c7\x0002\x0000\x0001\u05c7" + + "\x000D\x0000\x0001\u05c7\x0006\x0000\x000A\u05c7\x0001\u0508\x00A9\x0000\x0004\u05c8\x0002\x0000" + + "\x0001\u05c8\x000D\x0000\x0001\u05c8\x0006\x0000\x000A\u05c8\x0001\u05c9\x00A9\x0000\x0004\u05ca" + + "\x0002\x0000\x0001\u05ca\x000D\x0000\x0001\u05ca\x0006\x0000\x000A\u05ca\x0001\u05cb\x000A\x0000" + + "\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u05ca\x0002\x0000\x0001\u05ca\x000D\x0000\x0001\u05ca" + + "\x0006\x0000\x000A\u05cc\x0001\u05cb\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u05ca" + + "\x0002\x0000\x0001\u05ca\x000D\x0000\x0001\u05ca\x0006\x0000\x000A\u05cd\x0001\u05cb\x000A\x0000" + + "\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u05ca\x0002\x0000\x0001\u05ca\x000D\x0000\x0001\u05ca" + + "\x0006\x0000\x0002\u05cd\x0001\u05cc\x0001\u05cd\x0001\u05ce\x0002\u05cc\x0002\u05cd\x0001\u05cc" + + "\x0001\u05cb\x000A\x0000\x0001\u025e\x009E\x0000\x0004\u05cf\x0002\x0000\x0001\u05cf\x000D\x0000" + + "\x0001\u05cf\x0006\x0000\x000A\u05cf\x0001\u044e\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355" + + "\x0004\u05cf\x0002\x0000\x0001\u05cf\x000D\x0000\x0001\u05cf\x0006\x0000\x000A\u05cf\x0001\u044e" + + "\x000A\x0000\x0001\u025e\x00C3\x0000\x0001\u0354\x000A\x0000\x0001\u025e\x00B9\x0000\x0001\u05d0" + + "\x0001\u05d1\x0005\u05d0\x0001\u05d2\x0001\u05d1\x0001\u05d0\x00A9\x0000\x0001\u0510\x00CE\x0000" + + "\x0001\u0510\x001B\x0000\x0002\u0511\x0001\x0000\x0002\u0511\x0002\x0000\x0002\u0511\x00AA\x0000" + + "\x0001\u0181\x0004\x00E0\x0001\u0272\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x000F\x00E0\x0001\u05d3\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0" + + "\x0001\u05d4\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0015\x00E0\x0001\u05d5" + + "\x0004\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0005\x00E0\x0001\u05d6\x0014\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u05d7\x0018\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u05d8\x0015\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x000D\x00E0\x0001\u05d9\x000C\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x000F\x00E0\x0001\u0467\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0003\x00E0\x0001\u05da\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0015\x00E0" + + "\x0001\u05db\x0004\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000F\x00E0\x0001\u05d5" + + "\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0010\x00E0\x0001\u05dc\x0009\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0014\x00E0\x0001\u05d5\x0005\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0005\x00E0\x0001\u05dd\x0014\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0009\x00E0\x0001\u05de\x0010\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0005\x00E0\x0001\u037e\x0014\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x000B\x00E0\x0001\u05df\x000E\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0" + + "\x0001\u036f\x0016\x00E0\x0001\u0182\x000A\x00E0\x00AA\x0000\x0001\x00E0\x0001\u05e0\x0003\x00E0" + + "\x0001\u05e1\x0001\u05e2\x0001\u05e3\x0001\x00E0\x0001\u05e4\x0001\u05e5\x0001\u05e6\x0001\u05e7" + + "\x0001\u05e8\x0001\u05e9\x0001\x00E0\x0001\u05ea\x0001\u05eb\x0001\u05ec\x0002\x00E0\x0001\u05ed" + + "\x0001\u05ee\x0001\u05ef\x0001\x00E0\x0001\u05f0\x0001\u0182\x0001\u05f1\x0002\x00E0\x0001\u05f2" + + "\x0001\x00E0\x0001\u05f3\x0001\u05f4\x0003\x00E0\x00A9\x0000\x0001\u0181\x0008\x00E0\x0001\u05f5" + + "\x0011\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0015\x00E0\x0001\u05f6\x0004\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0010\x00E0\x0001\u05f7\x0009\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0007\x00E0\x0001\u0467\x0012\x00E0\x0001\u0182\x000A\x00E0" + + "\x00C5\x0000\x000A\u05f8\x0007\x0000\x0001\u0305\x0001\u0306\x0001\u0307\x0010\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0010\x0024\x0001\u05f9\x0009\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\x0024\x0001\u05fa\x0018\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x000B\x0024\x0001\u0191\x000E\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0002\x0024" + + "\x0001\u02c2\x0017\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0005\x0024\x0001\u0483\x0014\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0004\x0024\x0001\u05fb\x0015\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0003\x0024\x0001\u05fc" + + "\x0016\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0001\x0024\x0001\u02c2\x0018\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x0004\x0024\x0001\u05fd\x0015\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0009\x0024\x0001\u05fe\x0010\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u05ff\x0018\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0014\u010b" + + "\x0001\u0600\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u0601\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000C\u010b\x0001\u0602\x000D\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u010b\x0001\u0603\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u0604\x0018\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u0605" + + "\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0014\u010b\x0001\u0606\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0607\x0019\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0014\u010b\x0001\u0608" + + "\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0014\u010b\x0001\u0609\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0017\u010b\x0001\u060a\x0002\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0014\u010b" + + "\x0001\u060b\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0001\u060c\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0014\u010b\x0001\u0605\x0005\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0010\u010b" + + "\x0001\u060d\x0009\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0014\u010b\x0001\u060e\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u060f\x0018\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0004\u010b\x0001\u0610\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0611\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0011\u010b\x0001\u0612\x0008\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0004\u010b\x0001\u0613\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0014\u010b\x0001\u0614\x0005\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0001\u010b\x0001\u0615\x0008\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0001\u0616\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0617\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0007\x0024\x0001\u02c2\x0012\x0024\x0001\x008C\x000A\x008D" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B" + + "\x000B\x0024\x0001\u0185\x000E\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0093\x0000\x0001\u0618\x001A\u0552\x0001\u0619\x000A\u0552" + + "\x0008\x0000\x0001\u0553\x00A0\x0000\x0029\u0553\x0001\u061a\x0002\x0000\x0003\u0553\x0001\u0307" + + "\x0003\x0000\x0001\u0553\x009C\x0000\x0004\u061b\x0002\x0000\x0001\u061b\x000D\x0000\x0001\u061b" + + "\x0006\x0000\x000A\u061b\x0001\u061c\x00A4\x0000\x0001\u04a2\x0003\x0000\x0001\u04a2\x001A\u04a3" + + "\x0001\u04a2\x000A\u04a3\x0001\u04a4\x0002\u04a2\x0001\u04a5\x0002\u04a2\x0001\u04a6\x0005\x0000" + + "\x0002\u04a2\x0003\x0000\x0001\u04a2\x0093\x0000\x0001\u04a2\x0003\x0000\x0001\u04a2\x001A\u04a3" + + "\x0001\u0556\x000A\u04a3\x0001\u04a4\x0002\u04a2\x0001\u04a5\x0002\u04a2\x0001\u04a6\x0005\x0000" + + "\x0002\u04a2\x0003\x0000\x0001\u04a2\x0093\x0000\x0001\u04a4\x0003\x0000\x001C\u04a4\x000A\u061d" + + "\x0001\x0000\x0002\u04a4\x0001\u0559\x0002\u04a4\x0001\u04a6\x0005\x0000\x0002\u04a4\x0003\x0000" + + "\x0001\u04a4\x0097\x0000\x0029\u0558\x0001\u061e\x0002\x0000\x0003\u0558\x0001\u0307\x0002\x0000" + + "\x0001\u061f\x0001\u0558\x009C\x0000\x0004\u0620\x0002\x0000\x0001\u0620\x000D\x0000\x0001\u0620" + + "\x0006\x0000\x000A\u0620\x00AA\x0000\x0004\u04a2\x0002\x0000\x0001\u04a2\x000D\x0000\x0001\u04a2" + + "\x0006\x0000\x000A\u04a2\x00A9\x0000\x0001\u0621\x001A\u055b\x0001\u0622\x000A\u055b\x0001\u0623" + + "\x0007\x0000\x0001\u0558\x00A1\x0000\x0004\u0624\x0002\x0000\x0001\u0624\x000D\x0000\x0001\u0624" + + "\x0006\x0000\x000A\u0624\x0001\u0625\x00CE\x0000\x0001\u0626\x00A4\x0000\x0001\u055e\x0003\x0000" + + "\x0001\u0627\x0025\u055e\x0001\x0000\x0003\u055e\x0001\x0000\x0001\u055e\x0001\u0628\x0003\u055e" + + "\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x0092\x0000\x0001\u055f\x0001\u0629\x0002\x0000" + + "\x0035\u055f\x0001\u062a\x0001\x0000\x0002\u055f\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\u062b\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u062c\x001A\u0560\x0001\u055e" + + "\x000A\u062d\x0001\x0047\x0001\u055e\x0001\u062e\x0001\u055e\x0001\x0000\x0001\u055e\x0001\u0628" + + "\x0003\u055e\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x0002\x0000\x0001\x0019\x008F\x0000" + + "\x0001\u0561\x0003\x0000\x0026\u0561\x0001\u0563\x0002\u0561\x0001\u0564\x0002\u0561\x0001\u0565" + + "\x0005\x0000\x0002\u0561\x0003\x0000\x0001\u0561\x0093\x0000\x0001\u0561\x0003\x0000\x0001\u062f" + + "\x001A\u0562\x0001\u0630\x000A\u0562\x0001\u0631\x0002\u0561\x0001\u0564\x0002\u0561\x0001\u0565" + + "\x0001\u0305\x0001\u0306\x0001\u0307\x0002\x0000\x0002\u0561\x0003\x0000\x0001\u0561\x0093\x0000" + + "\x0001\u0563\x0003\x0000\x0026\u0563\x0001\x0000\x0002\u0563\x0001\u0632\x0002\u0563\x0001\u0565" + + "\x0005\x0000\x0002\u0563\x0003\x0000\x0001\u0563\x0098\x0000\x0004\u0633\x0002\x0000\x0001\u0633" + + "\x000D\x0000\x0001\u0633\x0006\x0000\x000A\u0633\x00AA\x0000\x001A\u0634\x0001\x0000\x000A\u0634" + + "\x000A\x0000\x0001\u0566\x009F\x0000\x0004\u0635\x0002\x0000\x0001\u0635\x000D\x0000\x0001\u0635" + + "\x0006\x0000\x000A\u0635\x0001\u0636\x00A4\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0010\u010b" + + "\x0001\u0637\x0009\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u0638\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000B\u010b\x0001\u01c5\x000E\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0002\u010b\x0001\u02ef\x0017\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0005\u010b\x0001\u04b2\x0014\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u0639" + + "\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0003\u010b\x0001\u063a\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u02ef\x0018\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0004\u010b" + + "\x0001\u063b\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0009\u010b\x0001\u063c\x0010\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0007\u010b\x0001\u02ef\x0012\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x000B\u010b\x0001\u01b9\x000E\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000" + + "\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0573\x0001\u0280\x0001\u0574" + + "\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288" + + "\x0003\u0280\x0001\u0575\x0002\u0280\x0001\u0576\x0004\u0280\x0001\u0577\x0003\u0280\x0001\u0578" + + "\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u0579\x0011\u0280\x0001\u057a\x0002\u0280\x0001\u057b" + + "\x0031\u0280\x0001\u0291\x0001\u057c\x0001\u057d\x0001\u057c\x0002\u0280\x0002\u057e\x0001\u057f" + + "\x0001\u0280\x0001\u057d\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0580\x0001\u0280\x0001\u0299" + + "\x0001\u0296\x0001\u0581\x001A\u029b\x0001\u029c\x000A\u063d\x0001\u02d0\x0001\u029f\x0001\u0583" + + "\x0001\u029f\x0001\u0280\x0001\u0580\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0002\u0280" + + "\x0001\u057e\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u057d\x0003\u0297" + + "\x0001\u0280\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0573\x0001\u0280\x0001\u0574" + + "\x0004\u0280\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288" + + "\x0003\u0280\x0001\u0575\x0002\u0280\x0001\u0576\x0004\u0280\x0001\u0577\x0003\u0280\x0001\u0578" + + "\x000F\u0280\x0001\u028d\x0002\u0280\x0001\u0579\x0011\u0280\x0001\u057a\x0002\u0280\x0001\u057b" + + "\x0031\u0280\x0001\u0291\x0001\u057c\x0001\u057d\x0001\u057c\x0002\u0280\x0002\u057e\x0001\u057f" + + "\x0001\u0280\x0001\u057d\x0001\u0280\x0001\u0296\x0001\u0297\x0001\u0580\x0001\u0280\x0001\u0299" + + "\x0001\u0296\x0001\u0581\x001A\u029b\x0001\u029c\x0002\u0582\x0001\u063d\x0002\u0582\x0002\u063d" + + "\x0002\u0582\x0001\u063d\x0001\u02d0\x0001\u029f\x0001\u0583\x0001\u029f\x0001\u0280\x0001\u0580" + + "\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0002\u0280\x0001\u057e\x0001\u029f\x0003\u0280" + + "\x0002\u029f\x0001\u0280\x0001\u0297\x0001\u057d\x0003\u0297\x0091\x0000\x0004\u063e\x0002\x0000" + + "\x0001\u063e\x000D\x0000\x0001\u063e\x0006\x0000\x000A\u063e\x0001\u04c0\x00A9\x0000\x0004\u063f" + + "\x0002\x0000\x0001\u063f\x000D\x0000\x0001\u063f\x0006\x0000\x000A\u063f\x0001\u0640\x00A9\x0000" + + "\x0004\u0641\x0002\x0000\x0001\u0641\x000D\x0000\x0001\u0641\x0006\x0000\x0001\u0642\x0001\u0643" + + "\x0005\u0642\x0001\u0644\x0001\u0643\x0001\u0642\x000B\x0000\x0001\u01f2\x009E\x0000\x0004\u0645" + + "\x0002\x0000\x0001\u0645\x000D\x0000\x0001\u0645\x0006\x0000\x000A\u0645\x0001\u058a\x000A\x0000" + + "\x0001\u01f2\x009E\x0000\x0004\u0641\x0002\x0000\x0001\u0641\x000D\x0000\x0001\u0641\x0006\x0000" + + "\x0001\u0642\x0001\u0643\x0005\u0642\x0001\u0644\x0001\u0643\x0001\u0642\x00A9\x0000\x0001\u0301" + + "\x0004\u0645\x0002\x0000\x0001\u0645\x000D\x0000\x0001\u0645\x0006\x0000\x000A\u0645\x0001\u058a" + + "\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u0645\x0002\x0000\x0001\u0645\x000D\x0000" + + "\x0001\u0645\x0006\x0000\x000A\u0646\x0001\u058a\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301" + + "\x0004\u0645\x0002\x0000\x0001\u0645\x000D\x0000\x0001\u0645\x0006\x0000\x0002\u0646\x0001\u0645" + + "\x0002\u0646\x0002\u0645\x0002\u0646\x0001\u0645\x0001\u058a\x000A\x0000\x0001\u01f2\x00C3\x0000" + + "\x0001\u040b\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0647\x001B\x0000\x000A\u0648\x00A9\x0000" + + "\x0001\u0647\x001B\x0000\x000A\u058f\x00A9\x0000\x0001\u0647\x001B\x0000\x0002\u058f\x0001\u0648" + + "\x0001\u058f\x0001\u0649\x0002\u0648\x0002\u058f\x0001\u0648\x001A\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0010\x002D" + + "\x0001\u064a\x0009\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0001\x002D\x0001\u064b\x0018\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x000B\x002D\x0001\u01ff\x000E\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0002\x002D\x0001\u0322" + + "\x0017\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0005\x002D\x0001\u04d5\x0014\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0004\x002D\x0001\u064c\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0003\x002D\x0001\u064d\x0016\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0001\x002D\x0001\u0322\x0018\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0004\x002D" + + "\x0001\u064e\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0009\x002D\x0001\u064f\x0010\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u0650\x0018\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u0651" + + "\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0150\x0001\u0652\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000C\u0150\x0001\u0653\x000D\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150" + + "\x0001\u0654\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u0655\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u0656\x0018\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0014\u0150\x0001\u0657\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0658\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u0659\x0005\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0014\u0150\x0001\u065a\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0017\u0150\x0001\u065b\x0002\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u065c" + + "\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0338\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u0656\x0005\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0010\u0150\x0001\u065d" + + "\x0009\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0014\u0150\x0001\u065e\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u065f\x0018\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150" + + "\x0001\u0660\x0015\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0001\u0661\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0011\u0150\x0001\u0662\x0008\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150" + + "\x0001\u0663\x0015\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u0664\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u0150" + + "\x0001\u0665\x0008\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0001\u0666\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0001\u0667\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0007\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x009D\x0007\x002D\x0001\u0322\x0012\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000B\x002D" + + "\x0001\u01f3\x000E\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0010\u0150\x0001\u0668" + + "\x0009\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0150\x0001\u0669\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000B\u0150\x0001\u0231\x000E\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0002\u0150" + + "\x0001\u0344\x0017\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0005\u0150\x0001\u04fa\x0014\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u066a\x0015\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0003\u0150\x0001\u066b\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u0344\x0018\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u066c" + + "\x0015\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0009\u0150\x0001\u066d\x0010\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150\x0001\u0344\x0012\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000B\u0150" + + "\x0001\u0225\x000E\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0006\x0000\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0573\x0001\u0280\x0001\u0574\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0575\x0002\u0280\x0001\u0576\x0004\u0280\x0001\u0577\x0003\u0280\x0001\u0578\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u0579\x0011\u0280\x0001\u057a\x0002\u0280\x0001\u057b\x0031\u0280" + + "\x0001\u0291\x0001\u057c\x0001\x001A\x0001\u057c\x0002\u0280\x0002\u057e\x0001\x0053\x0001\u0280" + + "\x0001\x001A\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0580\x0001\u0280\x0001\x0022\x0001\x0019" + + "\x0001\u05c4\x001A\x002D\x0001\x009E\x000A\u0173\x0001\u02d0\x0001\u029f\x0001\x0096\x0001\u029f" + + "\x0001\u0280\x0001\u0580\x0001\u02a1\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0002\u0280\x0001\u057e" + + "\x0001\u029f\x0003\u0280\x0002\u029f\x0001\u0280\x0001\x0000\x0001\x001A\x0003\x0000\x0001\u0280" + + "\x0001\u0281\x0001\u0280\x0001\u0282\x0002\u0280\x0001\u0573\x0001\u0280\x0001\u0574\x0004\u0280" + + "\x0001\u0285\x0001\u0280\x0001\u0286\x0001\u0280\x0001\u0287\x0002\u0280\x0001\u0288\x0003\u0280" + + "\x0001\u0575\x0002\u0280\x0001\u0576\x0004\u0280\x0001\u0577\x0003\u0280\x0001\u0578\x000F\u0280" + + "\x0001\u028d\x0002\u0280\x0001\u0579\x0011\u0280\x0001\u057a\x0002\u0280\x0001\u057b\x0031\u0280" + + "\x0001\u0291\x0001\u057c\x0001\x001A\x0001\u057c\x0002\u0280\x0002\u057e\x0001\x0053\x0001\u0280" + + "\x0001\x001A\x0001\u0280\x0001\x0019\x0001\x0000\x0001\u0580\x0001\u0280\x0001\x0022\x0001\x0019" + + "\x0001\u05c4\x001A\x002D\x0001\x009E\x0002\u05c5\x0001\u0173\x0002\u05c5\x0002\u0173\x0002\u05c5" + + "\x0001\u0173\x0001\u02d0\x0001\u029f\x0001\x0096\x0001\u029f\x0001\u0280\x0001\u0580\x0001\u02a1" + + "\x0001\u02a2\x0001\u02a3\x0001\u02a4\x0002\u0280\x0001\u057e\x0001\u029f\x0003\u0280\x0002\u029f" + + "\x0001\u0280\x0001\x0000\x0001\x001A\x0094\x0000\x0004\u066e\x0002\x0000\x0001\u066e\x000D\x0000" + + "\x0001\u066e\x0006\x0000\x000A\u066e\x0001\u0508\x00A9\x0000\x0004\u066f\x0002\x0000\x0001\u066f" + + "\x000D\x0000\x0001\u066f\x0006\x0000\x000A\u066f\x0001\u0670\x00A9\x0000\x0004\u0671\x0002\x0000" + + "\x0001\u0671\x000D\x0000\x0001\u0671\x0006\x0000\x0001\u0672\x0001\u0673\x0005\u0672\x0001\u0674" + + "\x0001\u0673\x0001\u0672\x000B\x0000\x0001\u025e\x009E\x0000\x0004\u0675\x0002\x0000\x0001\u0675" + + "\x000D\x0000\x0001\u0675\x0006\x0000\x000A\u0675\x0001\u05cb\x000A\x0000\x0001\u025e\x009E\x0000" + + "\x0004\u0671\x0002\x0000\x0001\u0671\x000D\x0000\x0001\u0671\x0006\x0000\x0001\u0672\x0001\u0673" + + "\x0005\u0672\x0001\u0674\x0001\u0673\x0001\u0672\x00A9\x0000\x0001\u0355\x0004\u0675\x0002\x0000" + + "\x0001\u0675\x000D\x0000\x0001\u0675\x0006\x0000\x000A\u0675\x0001\u05cb\x000A\x0000\x0001\u025e" + + "\x009D\x0000\x0001\u0355\x0004\u0675\x0002\x0000\x0001\u0675\x000D\x0000\x0001\u0675\x0006\x0000" + + "\x000A\u0676\x0001\u05cb\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u0675\x0002\x0000" + + "\x0001\u0675\x000D\x0000\x0001\u0675\x0006\x0000\x0002\u0676\x0001\u0675\x0002\u0676\x0002\u0675" + + "\x0002\u0676\x0001\u0675\x0001\u05cb\x000A\x0000\x0001\u025e\x00C3\x0000\x0001\u044e\x000A\x0000" + + "\x0001\u025e\x009D\x0000\x0001\u0677\x001B\x0000\x000A\u0678\x00A9\x0000\x0001\u0677\x001B\x0000" + + "\x000A\u05d0\x00A9\x0000\x0001\u0677\x001B\x0000\x0002\u05d0\x0001\u0678\x0001\u05d0\x0001\u0679" + + "\x0002\u0678\x0002\u05d0\x0001\u0678\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u067a\x0015\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u067b\x0019\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0008\x00E0\x0001\u067c\x0011\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x000B\x00E0\x0001\u067d\x000E\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x000F\x00E0\x0001\u067e\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000D\x00E0" + + "\x0001\u067f\x000C\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000A\x00E0\x0001\u0680" + + "\x000F\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u046b\x0015\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0008\x00E0\x0001\u0681\x0011\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x000A\x00E0\x0001\u0359\x000F\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0007\x00E0\x0001\u0682\x0012\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0003\x00E0\x0001\u0471\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0005\x00E0\x0001\u0683\x0014\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0009\x00E0" + + "\x0001\u0684\x0010\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0007\x00E0\x0001\u0685" + + "\x0012\x00E0\x0001\u0182\x0001\u0686\x0009\x00E0\x00A9\x0000\x0001\u0181\x0008\x00E0\x0001\u0687" + + "\x0004\x00E0\x0001\u0688\x0005\x00E0\x0001\u0689\x0006\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0003\x00E0\x0001\u068a\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0007\x00E0\x0001\u068b\x0012\x00E0\x0001\u0182\x0008\x00E0\x0001\u068c\x0001\x00E0\x00A9\x0000" + + "\x0001\u0181\x0007\x00E0\x0001\u068d\x0012\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0007\x00E0\x0001\u068e\x0012\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0005\x00E0\x0001\u068f\x0004\x00E0\x00A9\x0000\x0001\u0181\x0007\x00E0\x0001\u0690" + + "\x0012\x00E0\x0001\u0182\x0008\x00E0\x0001\u0691\x0001\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0005\x00E0\x0001\u0692\x0004\x00E0\x00A9\x0000\x0001\u0181\x000B\x00E0\x0001\u0693" + + "\x000E\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0007\x00E0\x0001\u0694\x0012\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0016\x00E0\x0001\u0695\x0003\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0007\x00E0\x0001\u0692\x0002\x00E0" + + "\x00A9\x0000\x0001\u0181\x000D\x00E0\x0001\u0696\x000C\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x001A\x00E0\x0001\u0182\x0008\x00E0\x0001\u0697\x0001\u0698\x00A9\x0000\x0001\u0181" + + "\x0006\x00E0\x0001\u0699\x0001\u069a\x0012\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0003\x00E0\x0001\u069b\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0004\x00E0\x0001\u0692\x0005\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0001\x00E0\x0001\u069c\x0008\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0001\x00E0" + + "\x0001\u069d\x0008\x00E0\x00A9\x0000\x0001\u0181\x000B\x00E0\x0001\u069e\x000E\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0\x0001\u069f\x0016\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u05de\x0015\x00E0\x0001\u0182\x000A\x00E0\x00C5\x0000" + + "\x000A\u06a0\x0007\x0000\x0001\u0305\x0001\u0306\x0001\u0307\x0010\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0001\x0024" + + "\x0001\u06a1\x0018\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u06a2\x000A\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0008\x0024\x0001\u06a3\x0011\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000B\x0024\x0001\u02b9" + + "\x000E\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x008B\x0001\u06a4\x0019\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0005\x0024" + + "\x0001\u06a5\x0014\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0015\u010b\x0001\u06a6" + + "\x0004\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x000D\u010b\x0001\u06a7\x000C\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0011\u010b\x0001\u06a8\x0008\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000E\u010b" + + "\x0001\u06a9\x0004\u010b\x0001\u06aa\x0006\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u06ab\x0015\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b" + + "\x0001\x008C\x0007\u010b\x0001\u06ac\x0002\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u06ad\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0014\u010b\x0001\u06ae\x0005\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u010b\x0001\u06af\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u06b0\x0001\u06b1\x0001\u010b\x0001\u06b2\x000E\u010b" + + "\x0001\u06b3\x0001\u010b\x0001\u06b4\x0005\u010b\x0001\x008C\x0005\u010b\x0001\u06b5\x0004\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u06b6" + + "\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0019\u010b\x0001\u06b7\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x000E\u010b\x0001\u06b8\x000B\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000D\u010b\x0001\u06b9" + + "\x000C\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0009\u010b\x0001\u06ba\x000B\u010b\x0001\u06bb\x0004\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0007\u010b\x0001\u06bc\x0002\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0011\u010b\x0001\u06bd\x0007\u010b\x0001\u06be\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000A\u010b\x0001\u06bf\x000F\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0008\u010b\x0001\u06c0\x0001\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0005\u010b\x0001\u06c1\x0014\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0008\u010b\x0001\u06c2" + + "\x0011\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0014\u010b\x0001\u06c3\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u06c4\x0009\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0005\u010b\x0001\u06c5" + + "\x0008\u010b\x0001\u06c6\x000B\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000" + + "\x001A\u0552\x0001\x0000\x000A\u0552\x00AA\x0000\x001A\u0552\x0001\u0619\x000A\u0552\x00AA\x0000" + + "\x0004\u06c7\x0002\x0000\x0001\u06c7\x000D\x0000\x0001\u06c7\x0006\x0000\x000A\u06c7\x00AA\x0000" + + "\x0004\u06c8\x0002\x0000\x0001\u06c8\x000D\x0000\x0001\u06c8\x0006\x0000\x000A\u06c8\x0001\u06c9" + + "\x00CE\x0000\x0001\u06ca\x00A4\x0000\x0001\u04a4\x0003\x0000\x001C\u04a4\x000A\u06cb\x0001\x0000" + + "\x0002\u04a4\x0001\u0559\x0002\u04a4\x0001\u04a6\x0001\x0000\x0001\u0558\x0003\x0000\x0002\u04a4" + + "\x0003\x0000\x0001\u04a4\x0098\x0000\x0004\u06cc\x0002\x0000\x0001\u06cc\x000D\x0000\x0001\u06cc" + + "\x0006\x0000\x000A\u06cc\x00B9\x0000\x0001\u06cd\x00BF\x0000\x0004\u04a4\x0002\x0000\x0001\u04a4" + + "\x000D\x0000\x0001\u04a4\x0006\x0000\x000A\u04a4\x00AA\x0000\x001A\u055b\x0001\x0000\x000A\u055b" + + "\x00AA\x0000\x001A\u055b\x0001\u0622\x000A\u055b\x00C5\x0000\x000A\u06ce\x00AA\x0000\x0004\u06cf" + + "\x0002\x0000\x0001\u06cf\x000D\x0000\x0001\u06cf\x0006\x0000\x000A\u06cf\x0001\u0625\x00A9\x0000" + + "\x0004\u06d0\x0002\x0000\x0001\u06d0\x000D\x0000\x0001\u06d0\x0006\x0000\x000A\u06d0\x0001\u06d1" + + "\x00A9\x0000\x0004\u06d2\x0002\x0000\x0001\u06d2\x000D\x0000\x0001\u06d2\x0006\x0000\x0001\u06d3" + + "\x0001\u06d4\x0005\u06d3\x0001\u06d5\x0001\u06d4\x0001\u06d3\x000B\x0000\x0001\u06d6\x0099\x0000" + + "\x0001\u055e\x0001\u055f\x0002\x0000\x0001\u0627\x0025\u055e\x0001\x0000\x0003\u055e\x0001\x0000" + + "\x0001\u055e\x0001\u0628\x0003\u055e\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x0097\x0000" + + "\x001A\u06d7\x0001\x0000\x000A\u06d7\x000A\x0000\x0001\u06d8\x009E\x0000\x0001\u06d9\x002B\x0000" + + "\x0001\u0628\x009E\x0000\x0002\u055f\x0002\x0000\x003A\u055f\x0006\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x00B9\x0001\x0000\x0001\x00BA\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00BB\x0002\x0000" + + "\x0001\x00BC\x0004\x0000\x0001\x00BD\x0003\x0000\x0001\x00BE\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x00BF\x0011\x0000\x0001\x00C0\x0002\x0000\x0001\x00C1\x0031\x0000\x0001\x0019\x0001\x0047" + + "\x0008\x0000\x0001\x0047\x0001\x0000\x0001\x0019\x0001\x0000\x0001\u055e\x0001\x0000\x0002\x0019" + + "\x0001\u0627\x001A\u0560\x000B\u055e\x0001\x0000\x0003\u055e\x0001\x0000\x0001\u055e\x0001\u0628" + + "\x0003\u055e\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x0002\x0000\x0001\x0047\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B9\x0001\x0000\x0001\x00BA\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x00BB\x0002\x0000\x0001\x00BC\x0004\x0000\x0001\x00BD\x0003\x0000\x0001\x00BE\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x00BF\x0011\x0000\x0001\x00C0\x0002\x0000\x0001\x00C1\x0031\x0000" + + "\x0001\x0019\x0001\x0047\x0008\x0000\x0001\x0047\x0001\x0000\x0001\x0019\x0001\x0000\x0001\u055e" + + "\x0001\u055f\x0002\x0019\x0001\u0627\x001A\u0560\x000B\u055e\x0001\x0000\x0003\u055e\x0001\x0000" + + "\x0001\u055e\x0001\u0628\x0003\u055e\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x0002\x0000" + + "\x0001\x0047\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x00B1\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x00B2\x0002\x0000\x0001\x00B3\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x00B4\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00B5\x0011\x0000\x0001\x00B6\x0002\x0000" + + "\x0001\x00B7\x0031\x0000\x0001\x0019\x0003\x0046\x0002\x0000\x0002\x00B8\x0001\x0048\x0001\x0000" + + "\x0001\x0046\x0001\x0000\x0001\x0019\x0001\x0000\x0001\u06da\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\u06db\x001A\u0560\x0001\u055e\x000A\u062d\x0001\x0000\x0001\u055e\x0001\u062e\x0001\u055e" + + "\x0001\x0000\x0001\u06da\x0001\u0628\x0003\u055e\x0002\x0000\x0001\x00B8\x0001\u055e\x0003\x0000" + + "\x0002\u055e\x0002\x0000\x0001\x0046\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x00C2\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x00C3\x0002\x0000\x0001\x00C4\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x00C5\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x00C6\x0011\x0000" + + "\x0001\x00C7\x0002\x0000\x0001\x00C8\x0021\x0000\x0001\x0063\x000F\x0000\x0001\x0019\x0001\x0048" + + "\x0002\x0046\x0001\x0065\x0003\x0000\x0001\x0048\x0001\x0000\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\u055e\x0001\x0000\x0001\x0022\x0001\x0019\x0001\u0627\x001A\u0560\x0001\u055e" + + "\x000A\u062d\x0001\x0000\x0001\u055e\x0001\u062e\x0001\u055e\x0001\x0000\x0001\u055e\x0001\u0628" + + "\x0003\u055e\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x0002\x0000\x0001\x0048\x0001\x0065" + + "\x008E\x0000\x0001\u0561\x0003\x0000\x0001\u0561\x001A\u0562\x0001\u0561\x000A\u0562\x0001\u0563" + + "\x0002\u0561\x0001\u0564\x0002\u0561\x0001\u0565\x0005\x0000\x0002\u0561\x0003\x0000\x0001\u0561" + + "\x0093\x0000\x0001\u0561\x0003\x0000\x0001\u0561\x001A\u0562\x0001\u0630\x000A\u0562\x0001\u0563" + + "\x0002\u0561\x0001\u0564\x0002\u0561\x0001\u0565\x0005\x0000\x0002\u0561\x0003\x0000\x0001\u0561" + + "\x0093\x0000\x0001\u0563\x0003\x0000\x001C\u0563\x000A\u06dc\x0001\x0000\x0002\u0563\x0001\u0632" + + "\x0002\u0563\x0001\u0565\x0005\x0000\x0002\u0563\x0003\x0000\x0001\u0563\x0098\x0000\x0004\u06dd" + + "\x0002\x0000\x0001\u06dd\x000D\x0000\x0001\u06dd\x0006\x0000\x000A\u06dd\x00AA\x0000\x0004\u0561" + + "\x0002\x0000\x0001\u0561\x000D\x0000\x0001\u0561\x0006\x0000\x000A\u0561\x00A9\x0000\x0001\u06de" + + "\x001A\u0634\x0001\u06df\x000A\u0634\x0001\u06e0\x0006\x0000\x0001\u0305\x0001\u0306\x0001\u0307" + + "\x00A0\x0000\x0004\u06e1\x0002\x0000\x0001\u06e1\x000D\x0000\x0001\u06e1\x0006\x0000\x000A\u06e1" + + "\x0001\u06e2\x00CE\x0000\x0001\u06e3\x00A4\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b" + + "\x0001\u06e4\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x000F\u010b\x0001\u06e5\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0008\u010b\x0001\u06e6\x0011\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x000B\u010b\x0001\u02e6\x000E\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u06e7\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0005\u010b\x0001\u06e8\x0014\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x00BC\x0000\x0001\u04c0\x00A9\x0000\x0004\u06e9" + + "\x0002\x0000\x0001\u06e9\x000D\x0000\x0001\u06e9\x0006\x0000\x000A\u06e9\x0001\u0640\x00A9\x0000" + + "\x0004\u06ea\x0002\x0000\x0001\u06ea\x000D\x0000\x0001\u06ea\x0006\x0000\x000A\u06ea\x0001\u06eb" + + "\x00A9\x0000\x0004\u06ec\x0002\x0000\x0001\u06ec\x000D\x0000\x0001\u06ec\x0006\x0000\x000A\u06ec" + + "\x0001\u06ed\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u06ec\x0002\x0000\x0001\u06ec" + + "\x000D\x0000\x0001\u06ec\x0006\x0000\x000A\u06ee\x0001\u06ed\x000A\x0000\x0001\u01f2\x009D\x0000" + + "\x0001\u0301\x0004\u06ec\x0002\x0000\x0001\u06ec\x000D\x0000\x0001\u06ec\x0006\x0000\x000A\u06ef" + + "\x0001\u06ed\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u06ec\x0002\x0000\x0001\u06ec" + + "\x000D\x0000\x0001\u06ec\x0006\x0000\x0002\u06ef\x0001\u06ee\x0001\u06ef\x0001\u06f0\x0002\u06ee" + + "\x0002\u06ef\x0001\u06ee\x0001\u06ed\x000A\x0000\x0001\u01f2\x009E\x0000\x0004\u06f1\x0002\x0000" + + "\x0001\u06f1\x000D\x0000\x0001\u06f1\x0006\x0000\x000A\u06f1\x0001\u058a\x000A\x0000\x0001\u01f2" + + "\x009D\x0000\x0001\u0301\x0004\u06f1\x0002\x0000\x0001\u06f1\x000D\x0000\x0001\u06f1\x0006\x0000" + + "\x000A\u06f1\x0001\u058a\x000A\x0000\x0001\u01f2\x00B9\x0000\x0001\u06f2\x0001\u06f3\x0005\u06f2" + + "\x0001\u06f4\x0001\u06f3\x0001\u06f2\x00A9\x0000\x0001\u0647\x00CE\x0000\x0001\u0647\x001B\x0000" + + "\x0002\u0648\x0001\x0000\x0002\u0648\x0002\x0000\x0002\u0648\x001B\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0001\x002D" + + "\x0001\u06f5\x0018\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u06f6\x000A\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0008\x002D\x0001\u06f7\x0011\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000B\x002D\x0001\u0319" + + "\x000E\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0001\u06f8\x0019\x002D\x0001\x009E\x000A\x009F\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0005\x002D" + + "\x0001\u06f9\x0014\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0015\u0150\x0001\u06fa" + + "\x0004\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x000D\u0150\x0001\u06fb\x000C\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0011\u0150\x0001\u06fc\x0008\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000E\u0150" + + "\x0001\u06fd\x0004\u0150\x0001\u06fe\x0006\u0150\x0001\x009E\x000A\u0150\x0001\x0000"; + + private const string ZZ_TRANS_PACKED_2 = + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u06ff\x0015\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x001A\u0150\x0001\x009E\x0007\u0150\x0001\u0700\x0002\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u0701\x0015\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u0702" + + "\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0150\x0001\u0703\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0704\x0001\u0705\x0001\u0150\x0001\u0706" + + "\x000E\u0150\x0001\u0707\x0001\u0150\x0001\u0708\x0005\u0150\x0001\x009E\x0005\u0150\x0001\u0709" + + "\x0004\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150" + + "\x0001\u070a\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0019\u0150\x0001\u070b\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000E\u0150\x0001\u070c\x000B\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000D\u0150" + + "\x0001\u070d\x000C\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0009\u0150\x0001\u070e\x000B\u0150\x0001\u070f\x0004\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0007\u0150\x0001\u0710\x0002\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0011\u0150\x0001\u0711\x0007\u0150\x0001\u0712\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000A\u0150\x0001\u0713" + + "\x000F\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x001A\u0150\x0001\x009E\x0008\u0150\x0001\u0714\x0001\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0005\u0150\x0001\u0715\x0014\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0008\u0150" + + "\x0001\u0716\x0011\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u0717\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u0718" + + "\x0009\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0005\u0150" + + "\x0001\u0719\x0008\u0150\x0001\u071a\x000B\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u071b\x0018\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000F\u0150" + + "\x0001\u071c\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0008\u0150\x0001\u071d\x0011\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000B\u0150\x0001\u033b\x000E\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0001\u071e\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0005\u0150\x0001\u071f\x0014\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x00BC\x0000\x0001\u0508\x00A9\x0000\x0004\u0720\x0002\x0000\x0001\u0720\x000D\x0000" + + "\x0001\u0720\x0006\x0000\x000A\u0720\x0001\u0670\x00A9\x0000\x0004\u0721\x0002\x0000\x0001\u0721" + + "\x000D\x0000\x0001\u0721\x0006\x0000\x000A\u0721\x0001\u0722\x00A9\x0000\x0004\u0723\x0002\x0000" + + "\x0001\u0723\x000D\x0000\x0001\u0723\x0006\x0000\x000A\u0723\x0001\u0724\x000A\x0000\x0001\u025e" + + "\x009D\x0000\x0001\u0355\x0004\u0723\x0002\x0000\x0001\u0723\x000D\x0000\x0001\u0723\x0006\x0000" + + "\x000A\u0725\x0001\u0724\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u0723\x0002\x0000" + + "\x0001\u0723\x000D\x0000\x0001\u0723\x0006\x0000\x000A\u0726\x0001\u0724\x000A\x0000\x0001\u025e" + + "\x009D\x0000\x0001\u0355\x0004\u0723\x0002\x0000\x0001\u0723\x000D\x0000\x0001\u0723\x0006\x0000" + + "\x0002\u0726\x0001\u0725\x0001\u0726\x0001\u0727\x0002\u0725\x0002\u0726\x0001\u0725\x0001\u0724" + + "\x000A\x0000\x0001\u025e\x009E\x0000\x0004\u0728\x0002\x0000\x0001\u0728\x000D\x0000\x0001\u0728" + + "\x0006\x0000\x000A\u0728\x0001\u05cb\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u0728" + + "\x0002\x0000\x0001\u0728\x000D\x0000\x0001\u0728\x0006\x0000\x000A\u0728\x0001\u05cb\x000A\x0000" + + "\x0001\u025e\x00B9\x0000\x0001\u0729\x0001\u072a\x0005\u0729\x0001\u072b\x0001\u072a\x0001\u0729" + + "\x00A9\x0000\x0001\u0677\x00CE\x0000\x0001\u0677\x001B\x0000\x0002\u0678\x0001\x0000\x0002\u0678" + + "\x0002\x0000\x0002\u0678\x00AA\x0000\x0001\u0181\x0010\x00E0\x0001\u072c\x0009\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u072d\x0018\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x000B\x00E0\x0001\u0365\x000E\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0002\x00E0\x0001\u0471\x0017\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0005\x00E0\x0001\u05da\x0014\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0" + + "\x0001\u072e\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0\x0001\u072f" + + "\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0471\x0018\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u0730\x0015\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0009\x00E0\x0001\u0731\x0010\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0732\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0014\x00E0\x0001\u0733\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0001\x00E0\x0001\u0734\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000C\x00E0" + + "\x0001\u0735\x000D\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0736" + + "\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0737\x0018\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0738\x0018\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0014\x00E0\x0001\u0739\x0005\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0001\u073a\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0014\x00E0\x0001\u073b\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0014\x00E0" + + "\x0001\u073c\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0017\x00E0\x0001\u073d" + + "\x0002\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0014\x00E0\x0001\u073e\x0005\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0465\x0019\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0014\x00E0\x0001\u0738\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0010\x00E0\x0001\u073f\x0009\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0014\x00E0\x0001\u0740\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0" + + "\x0001\u0741\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u0742" + + "\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0743\x0019\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0011\x00E0\x0001\u0744\x0008\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u0745\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0014\x00E0\x0001\u0746\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0001\x00E0\x0001\u0747\x0008\x00E0\x00A9\x0000\x0001\u0181\x0001\u0748" + + "\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0749\x0019\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0007\x00E0\x0001\u0471\x0012\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x000B\x00E0\x0001\u0359\x000E\x00E0\x0001\u0182\x000A\x00E0\x00D6\x0000" + + "\x0001\u0305\x0001\u0306\x0001\u0307\x0010\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000F\x0024\x0001\u074a\x000A\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0005\x0024\x0001\u074b\x0014\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000E\x0024" + + "\x0001\u0487\x000B\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x000D\x0024\x0001\u074c\x000C\x0024\x0001\x008C" + + "\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x008B\x0007\x0024\x0001\u03c9\x0012\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u010b\x0001\u074d\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0006\u010b\x0001\u074e\x0013\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0003\u010b\x0001\u06bf\x0006\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x001A\u010b\x0001\x008C\x0006\u010b\x0001\u02ef\x0003\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0005\u010b\x0001\u02ef" + + "\x0004\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0017\u010b" + + "\x0001\u074f\x0002\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u0750\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0017\u010b\x0001\u0751\x0002\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u0752\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u01b9\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0753\x0018\u010b\x0001\u0754" + + "\x0001\x008C\x0001\u0755\x0009\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u010b\x0001\u0756\x0008\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u0757\x0015\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b" + + "\x0001\x008C\x0003\u010b\x0001\u0758\x0006\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0015\u010b\x0001\u0759\x0004\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u075a\x0019\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b" + + "\x0001\x008C\x0004\u010b\x0001\u075b\x0005\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0014\u010b\x0001\u075c\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u010b" + + "\x0001\u075d\x0008\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0003\u010b\x0001\u03ff\x0006\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0009\u010b\x0001\u011f\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0008\u010b" + + "\x0001\u06af\x0001\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u075e\x0001\u010b\x0001\u075f\x0017\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0008\u010b\x0001\u0760" + + "\x0001\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b" + + "\x0001\x008C\x0004\u010b\x0001\u0761\x0005\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0015\u010b\x0001\u01b9\x0004\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0005\u010b" + + "\x0001\u0762\x0004\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0003\u010b\x0001\u0763\x0006\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0007\u010b\x0001\u0764\x0002\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0002\u010b\x0001\u0765\x0007\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0001\u06af\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0007\u010b\x0001\u0766\x0002\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u0767" + + "\x000D\u010b\x0001\u01c5\x0008\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000" + + "\x0004\u0553\x0002\x0000\x0001\u0553\x000D\x0000\x0001\u0553\x0006\x0000\x000A\u0553\x00AA\x0000" + + "\x0004\u0768\x0002\x0000\x0001\u0768\x000D\x0000\x0001\u0768\x0006\x0000\x000A\u0768\x0001\u06c9" + + "\x00A9\x0000\x0004\u0769\x0002\x0000\x0001\u0769\x000D\x0000\x0001\u0769\x0006\x0000\x000A\u0769" + + "\x0001\u076a\x00A9\x0000\x0004\u076b\x0002\x0000\x0001\u076b\x000D\x0000\x0001\u076b\x0006\x0000" + + "\x0001\u076c\x0001\u076d\x0005\u076c\x0001\u076e\x0001\u076d\x0001\u076c\x000B\x0000\x0001\u076f" + + "\x0099\x0000\x0001\u04a4\x0003\x0000\x001C\u04a4\x000A\u0770\x0001\x0000\x0002\u04a4\x0001\u0559" + + "\x0002\u04a4\x0001\u04a6\x0001\x0000\x0001\u0558\x0003\x0000\x0002\u04a4\x0003\x0000\x0001\u04a4" + + "\x0098\x0000\x0004\u0558\x0002\x0000\x0001\u0558\x000D\x0000\x0001\u0558\x0006\x0000\x000A\u0558" + + "\x00C3\x0000\x0001\u0771\x00D0\x0000\x000A\u0772\x0008\x0000\x0001\u0558\x00A1\x0000\x0004\u0773" + + "\x0002\x0000\x0001\u0773\x000D\x0000\x0001\u0773\x0006\x0000\x000A\u0773\x0001\u0625\x00A9\x0000" + + "\x0004\u0774\x0002\x0000\x0001\u0774\x000D\x0000\x0001\u0774\x0006\x0000\x000A\u0774\x0001\u0775" + + "\x00A9\x0000\x0004\u0776\x0002\x0000\x0001\u0776\x000D\x0000\x0001\u0776\x0006\x0000\x0001\u0777" + + "\x0001\u0778\x0005\u0777\x0001\u0779\x0001\u0778\x0001\u0777\x000B\x0000\x0001\u06d6\x009E\x0000" + + "\x0004\u077a\x0002\x0000\x0001\u077a\x000D\x0000\x0001\u077a\x0006\x0000\x000A\u077a\x0001\u077b" + + "\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u077a\x0002\x0000\x0001\u077a\x000D\x0000" + + "\x0001\u077a\x0006\x0000\x000A\u077d\x0001\u077b\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c" + + "\x0004\u077a\x0002\x0000\x0001\u077a\x000D\x0000\x0001\u077a\x0006\x0000\x000A\u077e\x0001\u077b" + + "\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u077a\x0002\x0000\x0001\u077a\x000D\x0000" + + "\x0001\u077a\x0006\x0000\x0002\u077e\x0001\u077d\x0001\u077e\x0001\u077f\x0002\u077d\x0002\u077e" + + "\x0001\u077d\x0001\u077b\x000A\x0000\x0001\u06d6\x00C3\x0000\x0001\u0623\x0007\x0000\x0001\u0558" + + "\x00A0\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x000A\u06d7\x00A5\x0000\x0002\u06d8\x0002\x0000" + + "\x0030\u06d8\x0001\x0000\x0001\u0782\x0003\u06d8\x0001\u0783\x0001\x0000\x0003\u06d8\x0091\x0000" + + "\x0001\u055e\x0001\u055f\x0002\x0000\x0026\u055e\x0001\x0000\x0003\u055e\x0001\x0000\x0001\u055e" + + "\x0001\x0000\x0003\u055e\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x000C\x0000\x0001\u0178" + + "\x0001\x0000\x0001\u0179\x000F\x0000\x0001\u017a\x0002\x0000\x0001\u017b\x0004\x0000\x0001\u017c" + + "\x0003\x0000\x0001\u017d\x0012\x0000\x0001\u017e\x0011\x0000\x0001\u017f\x0002\x0000\x0001\u0180" + + "\x0032\x0000\x0001\x00B8\x0002\x0046\x0006\x0000\x0001\x00B8\x0003\x0000\x0001\u055e\x0003\x0000" + + "\x0001\u0627\x001B\u055e\x000A\u062d\x0001\x0000\x0003\u055e\x0001\x0000\x0001\u055e\x0001\u0628" + + "\x0003\u055e\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x0002\x0000\x0001\x00B8\x0009\x0000" + + "\x0001\u0178\x0001\x0000\x0001\u0179\x000F\x0000\x0001\u017a\x0002\x0000\x0001\u017b\x0004\x0000" + + "\x0001\u017c\x0003\x0000\x0001\u017d\x0012\x0000\x0001\u017e\x0011\x0000\x0001\u017f\x0002\x0000" + + "\x0001\u0180\x0032\x0000\x0001\x00B8\x0002\x0046\x0006\x0000\x0001\x00B8\x0003\x0000\x0001\u055e" + + "\x0001\u055f\x0002\x0000\x0001\u0627\x001B\u055e\x000A\u062d\x0001\x0000\x0003\u055e\x0001\x0000" + + "\x0001\u055e\x0001\u0628\x0003\u055e\x0003\x0000\x0001\u055e\x0003\x0000\x0002\u055e\x0002\x0000" + + "\x0001\x00B8\x008F\x0000\x0001\u0563\x0003\x0000\x001C\u0563\x000A\u0784\x0001\x0000\x0002\u0563" + + "\x0001\u0632\x0002\u0563\x0001\u0565\x0001\u0305\x0001\u0306\x0001\u0307\x0002\x0000\x0002\u0563" + + "\x0003\x0000\x0001\u0563\x0098\x0000\x0004\u0563\x0002\x0000\x0001\u0563\x000D\x0000\x0001\u0563" + + "\x0006\x0000\x000A\u0563\x00AA\x0000\x001A\u0634\x0001\x0000\x000A\u0634\x00AA\x0000\x001A\u0634" + + "\x0001\u06df\x000A\u0634\x00AA\x0000\x0004\u0785\x0002\x0000\x0001\u0785\x000D\x0000\x0001\u0785" + + "\x0006\x0000\x000A\u0785\x0001\u06e2\x00A9\x0000\x0004\u0786\x0002\x0000\x0001\u0786\x000D\x0000" + + "\x0001\u0786\x0006\x0000\x000A\u0786\x0001\u0787\x00A9\x0000\x0004\u0788\x0002\x0000\x0001\u0788" + + "\x000D\x0000\x0001\u0788\x0006\x0000\x0001\u0789\x0001\u078a\x0005\u0789\x0001\u078b\x0001\u078a" + + "\x0001\u0789\x000B\x0000\x0001\u078c\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000F\u010b" + + "\x0001\u078d\x000A\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0005\u010b\x0001\u078e\x0014\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000E\u010b\x0001\u04b6\x000B\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x000D\u010b\x0001\u078f\x000C\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0007\u010b\x0001\u03ff\x0012\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0097\x0000\x0004\u0790\x0002\x0000\x0001\u0790\x000D\x0000\x0001\u0790" + + "\x0006\x0000\x000A\u0790\x0001\u0640\x00A9\x0000\x0004\u0791\x0002\x0000\x0001\u0791\x000D\x0000" + + "\x0001\u0791\x0006\x0000\x000A\u0791\x0001\u0792\x00A9\x0000\x0004\u0793\x0002\x0000\x0001\u0793" + + "\x000D\x0000\x0001\u0793\x0006\x0000\x0001\u0794\x0001\u0795\x0005\u0794\x0001\u0796\x0001\u0795" + + "\x0001\u0794\x000B\x0000\x0001\u01f2\x009E\x0000\x0004\u0797\x0002\x0000\x0001\u0797\x000D\x0000" + + "\x0001\u0797\x0006\x0000\x000A\u0797\x0001\u06ed\x000A\x0000\x0001\u01f2\x009E\x0000\x0004\u0793" + + "\x0002\x0000\x0001\u0793\x000D\x0000\x0001\u0793\x0006\x0000\x0001\u0794\x0001\u0795\x0005\u0794" + + "\x0001\u0796\x0001\u0795\x0001\u0794\x00A9\x0000\x0001\u0301\x0004\u0797\x0002\x0000\x0001\u0797" + + "\x000D\x0000\x0001\u0797\x0006\x0000\x000A\u0797\x0001\u06ed\x000A\x0000\x0001\u01f2\x009D\x0000" + + "\x0001\u0301\x0004\u0797\x0002\x0000\x0001\u0797\x000D\x0000\x0001\u0797\x0006\x0000\x000A\u0798" + + "\x0001\u06ed\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u0797\x0002\x0000\x0001\u0797" + + "\x000D\x0000\x0001\u0797\x0006\x0000\x0002\u0798\x0001\u0797\x0002\u0798\x0002\u0797\x0002\u0798" + + "\x0001\u0797\x0001\u06ed\x000A\x0000\x0001\u01f2\x00C3\x0000\x0001\u058a\x000A\x0000\x0001\u01f2" + + "\x00B9\x0000\x000A\u0799\x000B\x0000\x0001\u01f2\x00B9\x0000\x000A\u06f2\x000B\x0000\x0001\u01f2" + + "\x00B9\x0000\x0002\u06f2\x0001\u0799\x0001\u06f2\x0001\u079a\x0002\u0799\x0002\u06f2\x0001\u0799" + + "\x000B\x0000\x0001\u01f2\x000E\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038" + + "\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040" + + "\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044" + + "\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000" + + "\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000F\x002D\x0001\u079b\x000A\x002D\x0001\x009E" + + "\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000" + + "\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000" + + "\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000" + + "\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019" + + "\x0001\x009D\x0005\x002D\x0001\u079c\x0014\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074" + + "\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037" + + "\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B" + + "\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F" + + "\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043" + + "\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000" + + "\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x000E\x002D\x0001\u04d9" + + "\x000B\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000" + + "\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x000D\x002D\x0001\u079d\x000C\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0007\x002D\x0001\u031c\x0012\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150" + + "\x0001\u079e\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0006\u0150\x0001\u079f\x0013\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0003\u0150" + + "\x0001\u0713\x0006\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x001A\u0150\x0001\x009E\x0006\u0150\x0001\u0344\x0003\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0005\u0150\x0001\u0344\x0004\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0017\u0150\x0001\u07a0" + + "\x0002\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0150\x0001\u07a1\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0017\u0150\x0001\u07a2\x0002\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u07a3" + + "\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0001\u0150\x0001\u0225\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u07a4\x0018\u0150\x0001\u07a5\x0001\x009E" + + "\x0001\u07a6\x0009\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x001A\u0150\x0001\x009E\x0001\u0150\x0001\u07a7\x0008\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u07a8\x0015\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E" + + "\x0003\u0150\x0001\u07a9\x0006\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0015\u0150\x0001\u07aa\x0004\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u07ab\x0019\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E" + + "\x0004\u0150\x0001\u07ac\x0005\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0014\u0150\x0001\u07ad\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u0150\x0001\u07ae" + + "\x0008\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0003\u0150\x0001\u033e\x0006\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0009\u0150\x0001\u0162\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0008\u0150\x0001\u0703" + + "\x0001\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u07af" + + "\x0001\u0150\x0001\u07b0\x0017\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0008\u0150\x0001\u07b1\x0001\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E" + + "\x0004\u0150\x0001\u07b2\x0005\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0015\u0150\x0001\u0225\x0004\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0005\u0150\x0001\u07b3" + + "\x0004\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0003\u0150\x0001\u07b4\x0006\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0007\u0150\x0001\u07b5\x0002\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0002\u0150" + + "\x0001\u07b6\x0007\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0001\u0703\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0007\u0150\x0001\u07b7\x0002\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u07b8\x000D\u0150" + + "\x0001\u0231\x0008\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u07b9\x000A\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0005\u0150\x0001\u07ba\x0014\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x000E\u0150\x0001\u04fe\x000B\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x000D\u0150\x0001\u07bb\x000C\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150\x0001\u033e" + + "\x0012\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000\x0004\u07bc\x0002\x0000" + + "\x0001\u07bc\x000D\x0000\x0001\u07bc\x0006\x0000\x000A\u07bc\x0001\u0670\x00A9\x0000\x0004\u07bd" + + "\x0002\x0000\x0001\u07bd\x000D\x0000\x0001\u07bd\x0006\x0000\x000A\u07bd\x0001\u07be\x00A9\x0000" + + "\x0004\u07bf\x0002\x0000\x0001\u07bf\x000D\x0000\x0001\u07bf\x0006\x0000\x0001\u07c0\x0001\u07c1" + + "\x0005\u07c0\x0001\u07c2\x0001\u07c1\x0001\u07c0\x000B\x0000\x0001\u025e\x009E\x0000\x0004\u07c3" + + "\x0002\x0000\x0001\u07c3\x000D\x0000\x0001\u07c3\x0006\x0000\x000A\u07c3\x0001\u0724\x000A\x0000" + + "\x0001\u025e\x009E\x0000\x0004\u07bf\x0002\x0000\x0001\u07bf\x000D\x0000\x0001\u07bf\x0006\x0000" + + "\x0001\u07c0\x0001\u07c1\x0005\u07c0\x0001\u07c2\x0001\u07c1\x0001\u07c0\x00A9\x0000\x0001\u0355" + + "\x0004\u07c3\x0002\x0000\x0001\u07c3\x000D\x0000\x0001\u07c3\x0006\x0000\x000A\u07c3\x0001\u0724" + + "\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u07c3\x0002\x0000\x0001\u07c3\x000D\x0000" + + "\x0001\u07c3\x0006\x0000\x000A\u07c4\x0001\u0724\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355" + + "\x0004\u07c3\x0002\x0000\x0001\u07c3\x000D\x0000\x0001\u07c3\x0006\x0000\x0002\u07c4\x0001\u07c3" + + "\x0002\u07c4\x0002\u07c3\x0002\u07c4\x0001\u07c3\x0001\u0724\x000A\x0000\x0001\u025e\x00C3\x0000" + + "\x0001\u05cb\x000A\x0000\x0001\u025e\x00B9\x0000\x000A\u07c5\x000B\x0000\x0001\u025e\x00B9\x0000" + + "\x000A\u0729\x000B\x0000\x0001\u025e\x00B9\x0000\x0002\u0729\x0001\u07c5\x0001\u0729\x0001\u07c6" + + "\x0002\u07c5\x0002\u0729\x0001\u07c5\x000B\x0000\x0001\u025e\x009D\x0000\x0001\u0181\x0001\x00E0" + + "\x0001\u07c7\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000F\x00E0\x0001\u07c8" + + "\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0008\x00E0\x0001\u07c9\x0011\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000B\x00E0\x0001\u0468\x000E\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u07ca\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0005\x00E0\x0001\u07cb\x0014\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0015\x00E0\x0001\u07cc\x0004\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000D\x00E0" + + "\x0001\u07cd\x000C\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0011\x00E0\x0001\u07ce" + + "\x0008\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000E\x00E0\x0001\u07cf\x0004\x00E0" + + "\x0001\u07d0\x0006\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u07d1" + + "\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0007\x00E0" + + "\x0001\u07d2\x0002\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u07d3\x0015\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0014\x00E0\x0001\u07d4\x0005\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u07d5\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0001\u07d6\x0001\u07d7\x0001\x00E0\x0001\u07d8\x000E\x00E0\x0001\u07d9\x0001\x00E0" + + "\x0001\u07da\x0005\x00E0\x0001\u0182\x0005\x00E0\x0001\u07db\x0004\x00E0\x00A9\x0000\x0001\u0181" + + "\x0001\x00E0\x0001\u07dc\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0019\x00E0" + + "\x0001\u07dd\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000E\x00E0\x0001\u07de\x000B\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000D\x00E0\x0001\u07df\x000C\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0009\x00E0\x0001\u07e0\x000B\x00E0\x0001\u07e1\x0004\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0007\x00E0\x0001\u07e2" + + "\x0002\x00E0\x00A9\x0000\x0001\u0181\x0011\x00E0\x0001\u07e3\x0007\x00E0\x0001\u07e4\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x000A\x00E0\x0001\u07e5\x000F\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0008\x00E0\x0001\u07e6\x0001\x00E0\x00A9\x0000" + + "\x0001\u0181\x0005\x00E0\x0001\u07e7\x0014\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0008\x00E0\x0001\u07e8\x0011\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0014\x00E0" + + "\x0001\u07e9\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0001\u07ea\x0009\x00E0\x00A9\x0000\x0001\u0181\x0005\x00E0\x0001\u07eb\x0008\x00E0\x0001\u07ec" + + "\x000B\x00E0\x0001\u0182\x000A\x00E0\x001A\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0008\x0024\x0001\u07ed\x0011\x0024" + + "\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0004\x0024\x0001\u02c2\x0015\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000" + + "\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000" + + "\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000" + + "\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000" + + "\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046" + + "\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x008B\x0015\x0024" + + "\x0001\u03c9\x0004\x0024\x0001\x008C\x000A\x008D\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0001\u010b\x0001\u07ee\x0008\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x001A\u010b\x0001\x008C\x0006\u010b\x0001\u07ef\x0003\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0005\u010b\x0001\u07f0" + + "\x0004\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b" + + "\x0001\x008C\x0005\u010b\x0001\u07f1\x0004\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0005\u010b\x0001\u06af\x0004\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000F\u010b\x0001\u07f2\x000A\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x000A\u010b\x0001\u07f3\x000F\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0015\u010b\x0001\u07f4\x0004\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u07f5\x0019\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u07f6\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x000D\u010b\x0001\u07f7\x000C\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b\x0001\u07f8\x0018\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0008\u010b\x0001\u07f9\x0001\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0011\u010b\x0001\u07fa\x0008\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u07fb\x0019\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0003\u010b\x0001\u06af\x0006\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0002\u010b\x0001\u06bf\x0017\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0009\u010b\x0001\u07fc" + + "\x0010\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0009\u010b\x0001\u07fd\x0010\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u07fe\x0009\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0002\u010b\x0001\u07fe\x0007\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u01c5\x0009\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0008\u010b\x0001\u07ff\x0011\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0800\x0019\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0001\u010b\x0001\u0801\x0008\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0008\u010b\x0001\u011f\x0001\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0015\u010b\x0001\u0802" + + "\x0004\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000\x0004\u0803\x0002\x0000" + + "\x0001\u0803\x000D\x0000\x0001\u0803\x0006\x0000\x000A\u0803\x0001\u06c9\x00A9\x0000\x0004\u0804" + + "\x0002\x0000\x0001\u0804\x000D\x0000\x0001\u0804\x0006\x0000\x000A\u0804\x0001\u0805\x00A9\x0000" + + "\x0004\u0806\x0002\x0000\x0001\u0806\x000D\x0000\x0001\u0806\x0006\x0000\x0001\u0807\x0001\u0808" + + "\x0005\u0807\x0001\u0809\x0001\u0808\x0001\u0807\x000B\x0000\x0001\u076f\x009E\x0000\x0004\u080a" + + "\x0002\x0000\x0001\u080a\x000D\x0000\x0001\u080a\x0006\x0000\x000A\u080a\x0001\u080b\x000A\x0000" + + "\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u080a\x0002\x0000\x0001\u080a\x000D\x0000\x0001\u080a" + + "\x0006\x0000\x000A\u080d\x0001\u080b\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u080a" + + "\x0002\x0000\x0001\u080a\x000D\x0000\x0001\u080a\x0006\x0000\x000A\u080e\x0001\u080b\x000A\x0000" + + "\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u080a\x0002\x0000\x0001\u080a\x000D\x0000\x0001\u080a" + + "\x0006\x0000\x0002\u080e\x0001\u080d\x0001\u080e\x0001\u080f\x0002\u080d\x0002\u080e\x0001\u080d" + + "\x0001\u080b\x000A\x0000\x0001\u076f\x00CB\x0000\x0001\u0553\x009C\x0000\x0001\u04a4\x0003\x0000" + + "\x001C\u04a4\x000A\u0810\x0001\x0000\x0002\u04a4\x0001\u0559\x0002\u04a4\x0001\u04a6\x0001\x0000" + + "\x0001\u0558\x0003\x0000\x0002\u04a4\x0003\x0000\x0001\u04a4\x00A5\x0000\x0001\u0811\x00DC\x0000" + + "\x000A\u0812\x0008\x0000\x0001\u0558\x00C6\x0000\x0001\u0625\x00A9\x0000\x0004\u0813\x0002\x0000" + + "\x0001\u0813\x000D\x0000\x0001\u0813\x0006\x0000\x000A\u0813\x0001\u0775\x00A9\x0000\x0004\u0814" + + "\x0002\x0000\x0001\u0814\x000D\x0000\x0001\u0814\x0006\x0000\x000A\u0814\x0001\u0815\x00A9\x0000" + + "\x0004\u0816\x0002\x0000\x0001\u0816\x000D\x0000\x0001\u0816\x0006\x0000\x000A\u0816\x0001\u0817" + + "\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0816\x0002\x0000\x0001\u0816\x000D\x0000" + + "\x0001\u0816\x0006\x0000\x000A\u0818\x0001\u0817\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c" + + "\x0004\u0816\x0002\x0000\x0001\u0816\x000D\x0000\x0001\u0816\x0006\x0000\x000A\u0819\x0001\u0817" + + "\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0816\x0002\x0000\x0001\u0816\x000D\x0000" + + "\x0001\u0816\x0006\x0000\x0002\u0819\x0001\u0818\x0001\u0819\x0001\u081a\x0002\u0818\x0002\u0819" + + "\x0001\u0818\x0001\u0817\x000A\x0000\x0001\u06d6\x009E\x0000\x0004\u081b\x0002\x0000\x0001\u081b" + + "\x000D\x0000\x0001\u081b\x0006\x0000\x000A\u081b\x0001\u077b\x000A\x0000\x0001\u06d6\x009E\x0000" + + "\x0004\u0776\x0002\x0000\x0001\u0776\x000D\x0000\x0001\u0776\x0006\x0000\x0001\u0777\x0001\u0778" + + "\x0005\u0777\x0001\u0779\x0001\u0778\x0001\u0777\x00C5\x0000\x0001\u081c\x0001\u081d\x0005\u081c" + + "\x0001\u081e\x0001\u081d\x0001\u081c\x00A9\x0000\x0001\u077c\x0004\u081b\x0002\x0000\x0001\u081b" + + "\x000D\x0000\x0001\u081b\x0006\x0000\x000A\u081b\x0001\u077b\x000A\x0000\x0001\u06d6\x009D\x0000" + + "\x0001\u077c\x0004\u081b\x0002\x0000\x0001\u081b\x000D\x0000\x0001\u081b\x0006\x0000\x000A\u081f" + + "\x0001\u077b\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u081b\x0002\x0000\x0001\u081b" + + "\x000D\x0000\x0001\u081b\x0006\x0000\x0002\u081f\x0001\u081b\x0002\u081f\x0002\u081b\x0002\u081f" + + "\x0001\u081b\x0001\u077b\x000A\x0000\x0001\u06d6\x009E\x0000\x0001\u0820\x0001\u0821\x0001\u0822" + + "\x0001\u0823\x0001\u0824\x0001\u0825\x0001\u0826\x0001\u0827\x0001\u0828\x0001\u0829\x0001\u082a" + + "\x0001\u082b\x0001\u082c\x0001\u082d\x0001\u082e\x0001\u082f\x0001\u0830\x0001\u0831\x0001\u0832" + + "\x0001\u0833\x0001\u0834\x0001\u0835\x0001\u0836\x0001\u0837\x0001\u0838\x0001\u0839\x0001\x0000" + + "\x000A\u06d7\x00AA\x0000\x001A\u06d7\x0001\u0781\x000A\u06d7\x00A5\x0000\x0002\u06d8\x0002\x0000" + + "\x003A\u06d8\x0091\x0000\x0001\u0563\x0003\x0000\x001C\u0563\x000A\u083a\x0001\x0000\x0002\u0563" + + "\x0001\u0632\x0002\u0563\x0001\u0565\x0001\u0305\x0001\u0306\x0001\u0307\x0002\x0000\x0002\u0563" + + "\x0003\x0000\x0001\u0563\x0098\x0000\x0004\u083b\x0002\x0000\x0001\u083b\x000D\x0000\x0001\u083b" + + "\x0006\x0000\x000A\u083b\x0001\u06e2\x00A9\x0000\x0004\u083c\x0002\x0000\x0001\u083c\x000D\x0000" + + "\x0001\u083c\x0006\x0000\x000A\u083c\x0001\u083d\x00A9\x0000\x0004\u083e\x0002\x0000\x0001\u083e" + + "\x000D\x0000\x0001\u083e\x0006\x0000\x0001\u083f\x0001\u0840\x0005\u083f\x0001\u0841\x0001\u0840" + + "\x0001\u083f\x000B\x0000\x0001\u078c\x009E\x0000\x0004\u0842\x0002\x0000\x0001\u0842\x000D\x0000" + + "\x0001\u0842\x0006\x0000\x000A\u0842\x0001\u0843\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844" + + "\x0004\u0842\x0002\x0000\x0001\u0842\x000D\x0000\x0001\u0842\x0006\x0000\x000A\u0845\x0001\u0843" + + "\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0842\x0002\x0000\x0001\u0842\x000D\x0000" + + "\x0001\u0842\x0006\x0000\x000A\u0846\x0001\u0843\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844" + + "\x0004\u0842\x0002\x0000\x0001\u0842\x000D\x0000\x0001\u0842\x0006\x0000\x0002\u0846\x0001\u0845" + + "\x0001\u0846\x0001\u0847\x0002\u0845\x0002\u0846\x0001\u0845\x0001\u0843\x000A\x0000\x0001\u078c" + + "\x00C3\x0000\x0001\u06e0\x0006\x0000\x0001\u0305\x0001\u0306\x0001\u0307\x009B\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0008\u010b\x0001\u0848\x0011\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0004\u010b\x0001\u02ef\x0015\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0015\u010b\x0001\u03ff\x0004\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x00BC\x0000" + + "\x0001\u0640\x00A9\x0000\x0004\u0849\x0002\x0000\x0001\u0849\x000D\x0000\x0001\u0849\x0006\x0000" + + "\x000A\u0849\x0001\u0792\x00A9\x0000\x0004\u084a\x0002\x0000\x0001\u084a\x000D\x0000\x0001\u084a" + + "\x0006\x0000\x000A\u084a\x0001\u084b\x00A9\x0000\x0004\u084c\x0002\x0000\x0001\u084c\x000D\x0000" + + "\x0001\u084c\x0006\x0000\x000A\u084c\x0001\u084d\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301" + + "\x0004\u084c\x0002\x0000\x0001\u084c\x000D\x0000\x0001\u084c\x0006\x0000\x000A\u084e\x0001\u084d" + + "\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u084c\x0002\x0000\x0001\u084c\x000D\x0000" + + "\x0001\u084c\x0006\x0000\x000A\u084f\x0001\u084d\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301" + + "\x0004\u084c\x0002\x0000\x0001\u084c\x000D\x0000\x0001\u084c\x0006\x0000\x0002\u084f\x0001\u084e" + + "\x0001\u084f\x0001\u0850\x0002\u084e\x0002\u084f\x0001\u084e\x0001\u084d\x000A\x0000\x0001\u01f2" + + "\x009E\x0000\x0004\u0851\x0002\x0000\x0001\u0851\x000D\x0000\x0001\u0851\x0006\x0000\x000A\u0851" + + "\x0001\u06ed\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u0851\x0002\x0000\x0001\u0851" + + "\x000D\x0000\x0001\u0851\x0006\x0000\x000A\u0851\x0001\u06ed\x000A\x0000\x0001\u01f2\x00CE\x0000" + + "\x0001\u01f2\x00B9\x0000\x0002\u0799\x0001\x0000\x0002\u0799\x0002\x0000\x0002\u0799\x000C\x0000" + + "\x0001\u01f2\x000E\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0008\x002D\x0001\u0852\x0011\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036" + + "\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A" + + "\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042" + + "\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019" + + "\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D" + + "\x0004\x002D\x0001\u0322\x0015\x002D\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E" + + "\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0002\x0000\x0001\x0019\x0004\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000" + + "\x0001\x0038\x0001\x0000\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000" + + "\x0001\x003C\x0002\x0000\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000" + + "\x0001\x0040\x0003\x0000\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000" + + "\x0001\x0044\x0002\x0000\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047" + + "\x0001\x0000\x0001\x0047\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x0022\x0001\x0019\x0001\x009D\x0015\x002D\x0001\u031c\x0004\x002D" + + "\x0001\x009E\x000A\x009F\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019" + + "\x008F\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u0150\x0001\u0853" + + "\x0008\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0006\u0150\x0001\u0854\x0003\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0005\u0150\x0001\u0855\x0004\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0005\u0150" + + "\x0001\u0856\x0004\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x001A\u0150\x0001\x009E\x0005\u0150\x0001\u0703\x0004\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x000F\u0150\x0001\u0857\x000A\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x000A\u0150\x0001\u0858" + + "\x000F\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0015\u0150\x0001\u0859\x0004\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u085a\x0019\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u085b\x0019\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x000D\u0150\x0001\u085c\x000C\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u085d\x0018\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E" + + "\x0008\u0150\x0001\u085e\x0001\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0011\u0150\x0001\u085f\x0008\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0860\x0019\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E" + + "\x0003\u0150\x0001\u0703\x0006\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0002\u0150\x0001\u0713\x0017\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0009\u0150\x0001\u0861\x0010\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0009\u0150" + + "\x0001\u0862\x0010\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u0336\x0009\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0002\u0150\x0001\u0336" + + "\x0007\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0001\u0231\x0009\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x0008\u0150\x0001\u0863\x0011\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0864\x0019\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E" + + "\x0001\u0150\x0001\u0865\x0008\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x001A\u0150\x0001\x009E\x0008\u0150\x0001\u0162\x0001\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0015\u0150\x0001\u0866\x0004\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0008\u0150" + + "\x0001\u0867\x0011\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0004\u0150\x0001\u0344\x0015\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0015\u0150\x0001\u033e\x0004\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x00BC\x0000\x0001\u0670\x00A9\x0000\x0004\u0868" + + "\x0002\x0000\x0001\u0868\x000D\x0000\x0001\u0868\x0006\x0000\x000A\u0868\x0001\u07be\x00A9\x0000" + + "\x0004\u0869\x0002\x0000\x0001\u0869\x000D\x0000\x0001\u0869\x0006\x0000\x000A\u0869\x0001\u086a" + + "\x00A9\x0000\x0004\u086b\x0002\x0000\x0001\u086b\x000D\x0000\x0001\u086b\x0006\x0000\x000A\u086b" + + "\x0001\u086c\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u086b\x0002\x0000\x0001\u086b" + + "\x000D\x0000\x0001\u086b\x0006\x0000\x000A\u086d\x0001\u086c\x000A\x0000\x0001\u025e\x009D\x0000" + + "\x0001\u0355\x0004\u086b\x0002\x0000\x0001\u086b\x000D\x0000\x0001\u086b\x0006\x0000\x000A\u086e" + + "\x0001\u086c\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u086b\x0002\x0000\x0001\u086b" + + "\x000D\x0000\x0001\u086b\x0006\x0000\x0002\u086e\x0001\u086d\x0001\u086e\x0001\u086f\x0002\u086d" + + "\x0002\u086e\x0001\u086d\x0001\u086c\x000A\x0000\x0001\u025e\x009E\x0000\x0004\u0870\x0002\x0000" + + "\x0001\u0870\x000D\x0000\x0001\u0870\x0006\x0000\x000A\u0870\x0001\u0724\x000A\x0000\x0001\u025e" + + "\x009D\x0000\x0001\u0355\x0004\u0870\x0002\x0000\x0001\u0870\x000D\x0000\x0001\u0870\x0006\x0000" + + "\x000A\u0870\x0001\u0724\x000A\x0000\x0001\u025e\x00CE\x0000\x0001\u025e\x00B9\x0000\x0002\u07c5" + + "\x0001\x0000\x0002\u07c5\x0002\x0000\x0002\u07c5\x000C\x0000\x0001\u025e\x009D\x0000\x0001\u0181" + + "\x000F\x00E0\x0001\u0871\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0005\x00E0" + + "\x0001\u0872\x0014\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000E\x00E0\x0001\u05de" + + "\x000B\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x000D\x00E0\x0001\u0873\x000C\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0007\x00E0\x0001\u046b\x0012\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0874\x0018\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0006\x00E0\x0001\u0875\x0013\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x001A\x00E0\x0001\u0182\x0003\x00E0\x0001\u07e5\x0006\x00E0\x00A9\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0006\x00E0\x0001\u0471\x0003\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0005\x00E0\x0001\u0471\x0004\x00E0\x00A9\x0000\x0001\u0181\x0017\x00E0\x0001\u0876" + + "\x0002\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0877\x0018\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0017\x00E0\x0001\u0878\x0002\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0879\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0001\x00E0\x0001\u0359\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0001\u087a\x0018\x00E0\x0001\u087b\x0001\u0182\x0001\u087c\x0009\x00E0\x00A9\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0001\x00E0\x0001\u087d\x0008\x00E0\x00A9\x0000\x0001\u0181\x0004\x00E0" + + "\x0001\u087e\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0003\x00E0\x0001\u087f\x0006\x00E0\x00A9\x0000\x0001\u0181\x0015\x00E0\x0001\u0880\x0004\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0881\x0019\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0004\x00E0\x0001\u0882\x0005\x00E0\x00A9\x0000" + + "\x0001\u0181\x0014\x00E0\x0001\u0883\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0001\x00E0\x0001\u0884\x0008\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0003\x00E0\x0001\u046b\x0006\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0009\x00E0\x0001\u0272\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0008\x00E0\x0001\u07d5" + + "\x0001\x00E0\x00A9\x0000\x0001\u0181\x0001\u0885\x0001\x00E0\x0001\u0886\x0017\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0008\x00E0\x0001\u0887\x0001\x00E0" + + "\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0004\x00E0\x0001\u0888\x0005\x00E0\x00A9\x0000" + + "\x0001\u0181\x0015\x00E0\x0001\u0359\x0004\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0005\x00E0\x0001\u0889\x0004\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0003\x00E0\x0001\u088a\x0006\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0007\x00E0\x0001\u088b\x0002\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0002\x00E0" + + "\x0001\u088c\x0007\x00E0\x00A9\x0000\x0001\u0181\x0001\u07d5\x0019\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0007\x00E0\x0001\u088d\x0002\x00E0\x00A9\x0000" + + "\x0001\u0181\x0003\x00E0\x0001\u088e\x000D\x00E0\x0001\u0365\x0008\x00E0\x0001\u0182\x000A\x00E0" + + "\x001A\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000\x0001\x0039" + + "\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000\x0001\x003D" + + "\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000\x0001\x0041" + + "\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000\x0001\x0045" + + "\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047\x0001\x0048" + + "\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x0022" + + "\x0001\x0019\x0001\x008B\x0005\x0024\x0001\u0551\x0014\x0024\x0001\x008C\x000A\x008D\x0001\x0047" + + "\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0003\u010b\x0001\u088f\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0006\u010b\x0001\u01cf\x0013\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b" + + "\x0001\u0760\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u0890\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0008\u010b" + + "\x0001\u0891\x0001\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0002\u010b\x0001\u0892\x0007\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0002\u010b\x0001\u0893\x0007\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0003\u010b\x0001\u0894\x0006\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x001A\u010b\x0001\x008C\x0005\u010b\x0001\u0895\x0004\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0003\u010b\x0001\u0896" + + "\x0006\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0002\u010b" + + "\x0001\u0897\x0017\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0001\u0898\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0014\u010b\x0001\u0899\x0005\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0013\u010b" + + "\x0001\u07fe\x0006\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u089a\x0009\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u089b\x0009\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0009\u010b\x0001\u089c\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x000A\u010b\x0001\u089d\x000F\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0002\u010b\x0001\u04b1\x0007\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0002\u010b\x0001\u089e" + + "\x0017\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x00BC\x0000\x0001\u06c9\x00A9\x0000" + + "\x0004\u089f\x0002\x0000\x0001\u089f\x000D\x0000\x0001\u089f\x0006\x0000\x000A\u089f\x0001\u0805" + + "\x00A9\x0000\x0004\u08a0\x0002\x0000\x0001\u08a0\x000D\x0000\x0001\u08a0\x0006\x0000\x000A\u08a0" + + "\x0001\u08a1\x00A9\x0000\x0004\u08a2\x0002\x0000\x0001\u08a2\x000D\x0000\x0001\u08a2\x0006\x0000" + + "\x000A\u08a2\x0001\u08a3\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u08a2\x0002\x0000" + + "\x0001\u08a2\x000D\x0000\x0001\u08a2\x0006\x0000\x000A\u08a4\x0001\u08a3\x000A\x0000\x0001\u076f" + + "\x009D\x0000\x0001\u080c\x0004\u08a2\x0002\x0000\x0001\u08a2\x000D\x0000\x0001\u08a2\x0006\x0000" + + "\x000A\u08a5\x0001\u08a3\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u08a2\x0002\x0000" + + "\x0001\u08a2\x000D\x0000\x0001\u08a2\x0006\x0000\x0002\u08a5\x0001\u08a4\x0001\u08a5\x0001\u08a6" + + "\x0002\u08a4\x0002\u08a5\x0001\u08a4\x0001\u08a3\x000A\x0000\x0001\u076f\x009E\x0000\x0004\u08a7" + + "\x0002\x0000\x0001\u08a7\x000D\x0000\x0001\u08a7\x0006\x0000\x000A\u08a7\x0001\u080b\x000A\x0000" + + "\x0001\u076f\x009E\x0000\x0004\u0806\x0002\x0000\x0001\u0806\x000D\x0000\x0001\u0806\x0006\x0000" + + "\x0001\u0807\x0001\u0808\x0005\u0807\x0001\u0809\x0001\u0808\x0001\u0807\x00C5\x0000\x0001\u08a8" + + "\x0001\u08a9\x0005\u08a8\x0001\u08aa\x0001\u08a9\x0001\u08a8\x00A9\x0000\x0001\u080c\x0004\u08a7" + + "\x0002\x0000\x0001\u08a7\x000D\x0000\x0001\u08a7\x0006\x0000\x000A\u08a7\x0001\u080b\x000A\x0000" + + "\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u08a7\x0002\x0000\x0001\u08a7\x000D\x0000\x0001\u08a7" + + "\x0006\x0000\x000A\u08ab\x0001\u080b\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u08a7" + + "\x0002\x0000\x0001\u08a7\x000D\x0000\x0001\u08a7\x0006\x0000\x0002\u08ab\x0001\u08a7\x0002\u08ab" + + "\x0002\u08a7\x0002\u08ab\x0001\u08a7\x0001\u080b\x000A\x0000\x0001\u076f\x0099\x0000\x0001\u04a4" + + "\x0003\x0000\x001C\u04a4\x000A\u08ac\x0001\x0000\x0002\u04a4\x0001\u0559\x0002\u04a4\x0001\u04a6" + + "\x0001\x0000\x0001\u0558\x0003\x0000\x0002\u04a4\x0003\x0000\x0001\u04a4\x009B\x0000\x0001\u08ad" + + "\x00E6\x0000\x000A\u08ae\x0008\x0000\x0001\u0558\x00A1\x0000\x0004\u08af\x0002\x0000\x0001\u08af" + + "\x000D\x0000\x0001\u08af\x0006\x0000\x000A\u08af\x0001\u0775\x00A9\x0000\x0004\u08b0\x0002\x0000" + + "\x0001\u08b0\x000D\x0000\x0001\u08b0\x0006\x0000\x000A\u08b0\x0001\u08b1\x00A9\x0000\x0004\u08b2" + + "\x0002\x0000\x0001\u08b2\x000D\x0000\x0001\u08b2\x0006\x0000\x0001\u08b3\x0001\u08b4\x0005\u08b3" + + "\x0001\u08b5\x0001\u08b4\x0001\u08b3\x000B\x0000\x0001\u06d6\x009E\x0000\x0004\u08b6\x0002\x0000" + + "\x0001\u08b6\x000D\x0000\x0001\u08b6\x0006\x0000\x000A\u08b6\x0001\u0817\x000A\x0000\x0001\u06d6" + + "\x009E\x0000\x0004\u08b2\x0002\x0000\x0001\u08b2\x000D\x0000\x0001\u08b2\x0006\x0000\x0001\u08b3" + + "\x0001\u08b4\x0005\u08b3\x0001\u08b5\x0001\u08b4\x0001\u08b3\x00A9\x0000\x0001\u077c\x0004\u08b6" + + "\x0002\x0000\x0001\u08b6\x000D\x0000\x0001\u08b6\x0006\x0000\x000A\u08b6\x0001\u0817\x000A\x0000" + + "\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u08b6\x0002\x0000\x0001\u08b6\x000D\x0000\x0001\u08b6" + + "\x0006\x0000\x000A\u08b7\x0001\u0817\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u08b6" + + "\x0002\x0000\x0001\u08b6\x000D\x0000\x0001\u08b6\x0006\x0000\x0002\u08b7\x0001\u08b6\x0002\u08b7" + + "\x0002\u08b6\x0002\u08b7\x0001\u08b6\x0001\u0817\x000A\x0000\x0001\u06d6\x009E\x0000\x0004\u08b8" + + "\x0002\x0000\x0001\u08b8\x000D\x0000\x0001\u08b8\x0006\x0000\x000A\u08b8\x0001\u077b\x000A\x0000" + + "\x0001\u06d6\x009D\x0000\x0001\u08b9\x001B\x0000\x000A\u08ba\x00A9\x0000\x0001\u08b9\x001B\x0000" + + "\x000A\u081c\x00A9\x0000\x0001\u08b9\x001B\x0000\x0002\u081c\x0001\u08ba\x0001\u081c\x0001\u08bb" + + "\x0002\u08ba\x0002\u081c\x0001\u08ba\x00A9\x0000\x0001\u077c\x0004\u08b8\x0002\x0000\x0001\u08b8" + + "\x000D\x0000\x0001\u08b8\x0006\x0000\x000A\u08b8\x0001\u077b\x000A\x0000\x0001\u06d6\x009D\x0000" + + "\x0001\u0780\x0001\u06d7\x0002\u08bc\x0001\u08bd\x0001\u08be\x0008\u08bc\x0001\u06d7\x0001\u08bf" + + "\x0005\u08bc\x0006\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u08c0\x0002\u08bc" + + "\x0001\u06d7\x0001\u08bc\x0001\u08c1\x0003\u08bc\x0001\u08c2\x0002\u08bc\x0004\u06d7\x0004\u08bc" + + "\x0001\u06d7\x0002\u08bc\x0001\u06d7\x0002\u08bc\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0003\u06d7\x0001\u08bc\x0001\u06d7\x0001\u08bc\x0002\u06d7\x0001\u08c3\x0001\u06d7\x0001\u08bc" + + "\x0008\u06d7\x0001\u08bc\x0002\u06d7\x0002\u08bc\x0002\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0001\u06d7\x0001\u08bc\x0001\u08c4\x0002\u08bc\x0002\u06d7\x0001\u08bc\x0003\u06d7" + + "\x0001\u08c5\x0001\u08c6\x0001\u06d7\x0001\u08c7\x0002\u08bc\x0009\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u08bc\x0001\u06d7\x0001\u08bc\x0008\u06d7\x0001\u08bc" + + "\x0001\u06d7\x0002\u08bc\x0008\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0004\u06d7" + + "\x0001\u08c8\x0005\u06d7\x0001\u08bc\x000F\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0004\u06d7\x0002\u08bc\x0002\u06d7\x0001\u08bc\x0001\u06d7\x0001\u08bc\x000B\u06d7\x0002\u08bc" + + "\x0002\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u08c9\x0001\u06d7\x0002\u08bc" + + "\x0001\u08ca\x0001\u08cb\x000A\u08bc\x0001\u08cc\x0001\u08bc\x0002\u06d7\x0002\u08bc\x0003\u06d7" + + "\x0001\u08bc\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0002\u06d7\x0004\u08bc\x0003\u06d7" + + "\x0002\u08bc\x0001\u08cd\x0001\u08bc\x0001\u06d7\x0002\u08bc\x000A\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0001\u08ce\x0001\u08bc\x0002\u06d7\x0001\u08bc\x0003\u06d7\x0001\u08cf" + + "\x0005\u06d7\x0003\u08bc\x0003\u06d7\x0001\u08bc\x0001\u06d7\x0001\u08bc\x0001\u06d7\x0002\u08bc" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u08bc\x0001\u08d0\x0001\u08bc\x0001\u08d1" + + "\x0001\u06d7\x0001\u08bc\x0001\u08d2\x0007\u08bc\x0001\u08d3\x0003\u08bc\x0001\u06d7\x0002\u08bc" + + "\x0001\u06d7\x0002\u08bc\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u08d4\x0001\u08bc" + + "\x0001\u06d7\x0001\u08d5\x0006\u08bc\x0003\u06d7\x0001\u08bc\x0002\u06d7\x0001\u08bc\x0002\u06d7" + + "\x0001\u08bc\x0006\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u08bc\x0019\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u08bc\x0002\u06d7\x0001\u08bc\x0001\u08d6" + + "\x0001\u08d7\x0002\u08bc\x0001\u06d7\x0001\u08d8\x0002\u08bc\x0002\u06d7\x0002\u08bc\x0001\u06d7" + + "\x0001\u08bc\x0003\u06d7\x0001\u08d9\x0001\u08bc\x0002\u06d7\x0001\u08bc\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0003\u08bc\x0001\u08da\x0002\u08bc\x0001\u06d7\x0001\u08bc\x0001\u08db" + + "\x0003\u08bc\x0003\u06d7\x0002\u08bc\x0001\u06d7\x0008\u08bc\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0001\u08dc\x0002\u08bc\x0001\u08dd\x0001\u08de\x0001\u08df\x0002\u08bc\x0001\u08e0" + + "\x0003\u08bc\x0001\u06d7\x0001\u08bc\x0001\u06d7\x0001\u08bc\x0001\u06d7\x0001\u08bc\x0001\u06d7" + + "\x0001\u08bc\x0001\u06d7\x0004\u08bc\x0001\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0001\u08bc\x0006\u06d7\x0001\u08bc\x0003\u06d7\x0001\u08e1\x0002\u06d7\x0001\u08bc\x0004\u06d7" + + "\x0001\u08bc\x0002\u06d7\x0001\u08bc\x0002\u06d7\x0001\u08bc\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0006\u06d7\x0001\u08bc\x0007\u06d7\x0001\u08bc\x000B\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x000B\u06d7\x0001\u08e2\x0006\u06d7\x0001\u08e3\x0007\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u08bc\x0009\u06d7\x0001\u08bc\x0006\u06d7\x0001\u08bc" + + "\x0008\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u08bc\x0001\u06d7\x0006\u08bc" + + "\x0001\u08e4\x0001\u06d7\x0002\u08bc\x0002\u06d7\x0002\u08bc\x0001\u06d7\x0001\u08bc\x0001\u06d7" + + "\x0003\u08bc\x0001\u06d7\x0003\u08bc\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0004\u06d7" + + "\x0001\u08bc\x0001\u08e5\x0004\u06d7\x0002\u08bc\x0003\u06d7\x0002\u08bc\x0005\u06d7\x0001\u08bc" + + "\x0003\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7\x0002\u08bc\x0002\u06d7" + + "\x0001\u08bc\x0001\u08e6\x0001\u06d7\x0002\u08bc\x0001\u06d7\x0001\u08bc\x0003\u06d7\x0001\u08bc" + + "\x0001\u06d7\x0001\u08bc\x0001\u06d7\x0001\u08bc\x0003\u06d7\x0001\u08bc\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u08bc\x0001\u06d7\x0001\u08e7\x0004\u06d7\x0001\u08bc" + + "\x0002\u06d7\x0001\u08bc\x000C\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0002\u08bc" + + "\x0001\u06d7\x0001\u08e8\x0001\u06d7\x0001\u08e9\x0001\u06d7\x0002\u08bc\x0002\u06d7\x0001\u08bc" + + "\x0004\u06d7\x0001\u08bc\x0009\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7" + + "\x0001\u08bc\x000B\u06d7\x0001\u08bc\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A5\x0000\x0001\u0563" + + "\x0003\x0000\x001C\u0563\x000A\u08ea\x0001\x0000\x0002\u0563\x0001\u0632\x0002\u0563\x0001\u0565" + + "\x0001\u0305\x0001\u0306\x0001\u0307\x0002\x0000\x0002\u0563\x0003\x0000\x0001\u0563\x00BD\x0000" + + "\x0001\u06e2\x00A9\x0000\x0004\u08eb\x0002\x0000\x0001\u08eb\x000D\x0000\x0001\u08eb\x0006\x0000" + + "\x000A\u08eb\x0001\u083d\x00A9\x0000\x0004\u08ec\x0002\x0000\x0001\u08ec\x000D\x0000\x0001\u08ec" + + "\x0006\x0000\x000A\u08ec\x0001\u08ed\x00A9\x0000\x0004\u08ee\x0002\x0000\x0001\u08ee\x000D\x0000" + + "\x0001\u08ee\x0006\x0000\x000A\u08ee\x0001\u08ef\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844" + + "\x0004\u08ee\x0002\x0000\x0001\u08ee\x000D\x0000\x0001\u08ee\x0006\x0000\x000A\u08f0\x0001\u08ef" + + "\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u08ee\x0002\x0000\x0001\u08ee\x000D\x0000" + + "\x0001\u08ee\x0006\x0000\x000A\u08f1\x0001\u08ef\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844" + + "\x0004\u08ee\x0002\x0000\x0001\u08ee\x000D\x0000\x0001\u08ee\x0006\x0000\x0002\u08f1\x0001\u08f0" + + "\x0001\u08f1\x0001\u08f2\x0002\u08f0\x0002\u08f1\x0001\u08f0\x0001\u08ef\x000A\x0000\x0001\u078c" + + "\x009E\x0000\x0004\u08f3\x0002\x0000\x0001\u08f3\x000D\x0000\x0001\u08f3\x0006\x0000\x000A\u08f3" + + "\x0001\u0843\x000A\x0000\x0001\u078c\x009E\x0000\x0004\u083e\x0002\x0000\x0001\u083e\x000D\x0000" + + "\x0001\u083e\x0006\x0000\x0001\u083f\x0001\u0840\x0005\u083f\x0001\u0841\x0001\u0840\x0001\u083f" + + "\x00C5\x0000\x0001\u08f4\x0001\u08f5\x0005\u08f4\x0001\u08f6\x0001\u08f5\x0001\u08f4\x00A9\x0000" + + "\x0001\u0844\x0004\u08f3\x0002\x0000\x0001\u08f3\x000D\x0000\x0001\u08f3\x0006\x0000\x000A\u08f3" + + "\x0001\u0843\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u08f3\x0002\x0000\x0001\u08f3" + + "\x000D\x0000\x0001\u08f3\x0006\x0000\x000A\u08f7\x0001\u0843\x000A\x0000\x0001\u078c\x009D\x0000" + + "\x0001\u0844\x0004\u08f3\x0002\x0000\x0001\u08f3\x000D\x0000\x0001\u08f3\x0006\x0000\x0002\u08f7" + + "\x0001\u08f3\x0002\u08f7\x0002\u08f3\x0002\u08f7\x0001\u08f3\x0001\u0843\x000A\x0000\x0001\u078c" + + "\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0005\u010b\x0001\u0572\x0014\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000\x0004\u08f8\x0002\x0000\x0001\u08f8\x000D\x0000" + + "\x0001\u08f8\x0006\x0000\x000A\u08f8\x0001\u0792\x00A9\x0000\x0004\u08f9\x0002\x0000\x0001\u08f9" + + "\x000D\x0000\x0001\u08f9\x0006\x0000\x000A\u08f9\x0001\u08fa\x00A9\x0000\x0004\u08fb\x0002\x0000" + + "\x0001\u08fb\x000D\x0000\x0001\u08fb\x0006\x0000\x0001\u08fc\x0001\u08fd\x0005\u08fc\x0001\u08fe" + + "\x0001\u08fd\x0001\u08fc\x000B\x0000\x0001\u01f2\x009E\x0000\x0004\u08ff\x0002\x0000\x0001\u08ff" + + "\x000D\x0000\x0001\u08ff\x0006\x0000\x000A\u08ff\x0001\u084d\x000A\x0000\x0001\u01f2\x009E\x0000" + + "\x0004\u08fb\x0002\x0000\x0001\u08fb\x000D\x0000\x0001\u08fb\x0006\x0000\x0001\u08fc\x0001\u08fd" + + "\x0005\u08fc\x0001\u08fe\x0001\u08fd\x0001\u08fc\x00A9\x0000\x0001\u0301\x0004\u08ff\x0002\x0000" + + "\x0001\u08ff\x000D\x0000\x0001\u08ff\x0006\x0000\x000A\u08ff\x0001\u084d\x000A\x0000\x0001\u01f2" + + "\x009D\x0000\x0001\u0301\x0004\u08ff\x0002\x0000\x0001\u08ff\x000D\x0000\x0001\u08ff\x0006\x0000" + + "\x000A\u0900\x0001\u084d\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u08ff\x0002\x0000" + + "\x0001\u08ff\x000D\x0000\x0001\u08ff\x0006\x0000\x0002\u0900\x0001\u08ff\x0002\u0900\x0002\u08ff" + + "\x0002\u0900\x0001\u08ff\x0001\u084d\x000A\x0000\x0001\u01f2\x00C3\x0000\x0001\u06ed\x000A\x0000" + + "\x0001\u01f2\x000E\x0000\x0001\x0036\x0001\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0001\x0000" + + "\x0001\x0039\x0004\x0000\x0001\x003A\x0001\x0000\x0001\x003B\x0001\x0000\x0001\x003C\x0002\x0000" + + "\x0001\x003D\x0003\x0000\x0001\x003E\x0002\x0000\x0001\x003F\x0004\x0000\x0001\x0040\x0003\x0000" + + "\x0001\x0041\x000F\x0000\x0001\x0042\x0002\x0000\x0001\x0043\x0011\x0000\x0001\x0044\x0002\x0000" + + "\x0001\x0045\x0031\x0000\x0002\x0019\x0002\x0046\x0001\x0000\x0001\x0047\x0001\x0000\x0001\x0047" + + "\x0001\x0048\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x008A\x0001\x0000" + + "\x0001\x0022\x0001\x0019\x0001\x009D\x0005\x002D\x0001\u05b7\x0014\x002D\x0001\x009E\x000A\x009F" + + "\x0001\x0047\x0001\x0074\x0001\x008E\x0001\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0002\x0000\x0001\x0019\x008F\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0901\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0006\u0150\x0001\u023b\x0013\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0001\u0150\x0001\u07b1\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0902\x0016\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E" + + "\x0008\u0150\x0001\u0903\x0001\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x001A\u0150\x0001\x009E\x0002\u0150\x0001\u0904\x0007\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0002\u0150\x0001\u0905" + + "\x0007\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0003\u0150\x0001\u0906\x0006\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0005\u0150\x0001\u0907\x0004\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0003\u0150" + + "\x0001\u0908\x0006\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0002\u0150\x0001\u0909\x0017\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u090a\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u090b\x0005\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0013\u0150\x0001\u0336\x0006\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u090c\x0009\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u090d" + + "\x0009\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0009\u0150\x0001\u090e\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x000A\u0150\x0001\u090f\x000F\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0002\u0150\x0001\u033a" + + "\x0007\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0002\u0150" + + "\x0001\u0910\x0017\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0005\u0150\x0001\u05c3\x0014\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0097\x0000\x0004\u0911\x0002\x0000\x0001\u0911\x000D\x0000\x0001\u0911\x0006\x0000" + + "\x000A\u0911\x0001\u07be\x00A9\x0000\x0004\u0912\x0002\x0000\x0001\u0912\x000D\x0000\x0001\u0912" + + "\x0006\x0000\x000A\u0912\x0001\u0913\x00A9\x0000\x0004\u0914\x0002\x0000\x0001\u0914\x000D\x0000" + + "\x0001\u0914\x0006\x0000\x0001\u0915\x0001\u0916\x0005\u0915\x0001\u0917\x0001\u0916\x0001\u0915" + + "\x000B\x0000\x0001\u025e\x009E\x0000\x0004\u0918\x0002\x0000\x0001\u0918\x000D\x0000\x0001\u0918" + + "\x0006\x0000\x000A\u0918\x0001\u086c\x000A\x0000\x0001\u025e\x009E\x0000\x0004\u0914\x0002\x0000" + + "\x0001\u0914\x000D\x0000\x0001\u0914\x0006\x0000\x0001\u0915\x0001\u0916\x0005\u0915\x0001\u0917" + + "\x0001\u0916\x0001\u0915\x00A9\x0000\x0001\u0355\x0004\u0918\x0002\x0000\x0001\u0918\x000D\x0000" + + "\x0001\u0918\x0006\x0000\x000A\u0918\x0001\u086c\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355" + + "\x0004\u0918\x0002\x0000\x0001\u0918\x000D\x0000\x0001\u0918\x0006\x0000\x000A\u0919\x0001\u086c" + + "\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u0918\x0002\x0000\x0001\u0918\x000D\x0000" + + "\x0001\u0918\x0006\x0000\x0002\u0919\x0001\u0918\x0002\u0919\x0002\u0918\x0002\u0919\x0001\u0918" + + "\x0001\u086c\x000A\x0000\x0001\u025e\x00C3\x0000\x0001\u0724\x000A\x0000\x0001\u025e\x009D\x0000" + + "\x0001\u0181\x0008\x00E0\x0001\u091a\x0011\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0004\x00E0\x0001\u0471\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0015\x00E0" + + "\x0001\u046b\x0004\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0001\x00E0\x0001\u091b\x0008\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0006\x00E0" + + "\x0001\u091c\x0003\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0005\x00E0\x0001\u091d" + + "\x0004\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0005\x00E0\x0001\u091e\x0004\x00E0" + + "\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0005\x00E0\x0001\u07d5\x0004\x00E0\x00A9\x0000" + + "\x0001\u0181\x000F\x00E0\x0001\u091f\x000A\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x000A\x00E0\x0001\u0920\x000F\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0015\x00E0" + + "\x0001\u0921\x0004\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0922\x0019\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0923\x0019\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x000D\x00E0\x0001\u0924\x000C\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0001\x00E0\x0001\u0925\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0008\x00E0\x0001\u0926\x0001\x00E0\x00A9\x0000\x0001\u0181\x0011\x00E0" + + "\x0001\u0927\x0008\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0928\x0019\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0003\x00E0\x0001\u07d5" + + "\x0006\x00E0\x00A9\x0000\x0001\u0181\x0002\x00E0\x0001\u07e5\x0017\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0009\x00E0\x0001\u0929\x0010\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0009\x00E0\x0001\u092a\x0010\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0001\u0463\x0009\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0002\x00E0\x0001\u0463\x0007\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0001\u0365" + + "\x0009\x00E0\x00A9\x0000\x0001\u0181\x0008\x00E0\x0001\u092b\x0011\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0001\u092c\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0001\x00E0\x0001\u092d\x0008\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0008\x00E0\x0001\u0272\x0001\x00E0\x00A9\x0000\x0001\u0181\x0015\x00E0\x0001\u092e" + + "\x0004\x00E0\x0001\u0182\x000A\x00E0\x00A5\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u092f" + + "\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x001A\u010b\x0001\x008C\x0007\u010b\x0001\u06af\x0002\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0930\x0019\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0931\x0019\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0007\u010b\x0001\u0932\x0012\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0006\u010b\x0001\u0933\x0013\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0934\x0019\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0001\u0935\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u010b\x0001\u0936\x0008\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0002\u010b" + + "\x0001\u0937\x0007\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0006\u010b\x0001\u01b9\x0013\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0015\u010b\x0001\u0938\x0004\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0939\x0019\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0002\u010b\x0001\u01de\x0007\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x000A\u010b\x0001\u01e0\x000F\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0014\u010b\x0001\u01b9" + + "\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000\x0004\u093a\x0002\x0000" + + "\x0001\u093a\x000D\x0000\x0001\u093a\x0006\x0000\x000A\u093a\x0001\u0805\x00A9\x0000\x0004\u093b" + + "\x0002\x0000\x0001\u093b\x000D\x0000\x0001\u093b\x0006\x0000\x000A\u093b\x0001\u093c\x00A9\x0000" + + "\x0004\u093d\x0002\x0000\x0001\u093d\x000D\x0000\x0001\u093d\x0006\x0000\x0001\u093e\x0001\u093f" + + "\x0005\u093e\x0001\u0940\x0001\u093f\x0001\u093e\x000B\x0000\x0001\u076f\x009E\x0000\x0004\u0941" + + "\x0002\x0000\x0001\u0941\x000D\x0000\x0001\u0941\x0006\x0000\x000A\u0941\x0001\u08a3\x000A\x0000" + + "\x0001\u076f\x009E\x0000\x0004\u093d\x0002\x0000\x0001\u093d\x000D\x0000\x0001\u093d\x0006\x0000" + + "\x0001\u093e\x0001\u093f\x0005\u093e\x0001\u0940\x0001\u093f\x0001\u093e\x00A9\x0000\x0001\u080c" + + "\x0004\u0941\x0002\x0000\x0001\u0941\x000D\x0000\x0001\u0941\x0006\x0000\x000A\u0941\x0001\u08a3" + + "\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0941\x0002\x0000\x0001\u0941\x000D\x0000" + + "\x0001\u0941\x0006\x0000\x000A\u0942\x0001\u08a3\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c" + + "\x0004\u0941\x0002\x0000\x0001\u0941\x000D\x0000\x0001\u0941\x0006\x0000\x0002\u0942\x0001\u0941" + + "\x0002\u0942\x0002\u0941\x0002\u0942\x0001\u0941\x0001\u08a3\x000A\x0000\x0001\u076f\x009E\x0000" + + "\x0004\u0943\x0002\x0000\x0001\u0943\x000D\x0000\x0001\u0943\x0006\x0000\x000A\u0943\x0001\u080b" + + "\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u0944\x001B\x0000\x000A\u0945\x00A9\x0000\x0001\u0944" + + "\x001B\x0000\x000A\u08a8\x00A9\x0000\x0001\u0944\x001B\x0000\x0002\u08a8\x0001\u0945\x0001\u08a8" + + "\x0001\u0946\x0002\u0945\x0002\u08a8\x0001\u0945\x00A9\x0000\x0001\u080c\x0004\u0943\x0002\x0000" + + "\x0001\u0943\x000D\x0000\x0001\u0943\x0006\x0000\x000A\u0943\x0001\u080b\x000A\x0000\x0001\u076f" + + "\x0099\x0000\x0001\u04a4\x0003\x0000\x0026\u04a4\x0001\x0000\x0002\u04a4\x0001\u0559\x0002\u04a4" + + "\x0001\u04a6\x0001\x0000\x0001\u0558\x0003\x0000\x0002\u04a4\x0003\x0000\x0001\u04a4\x00CA\x0000" + + "\x0001\u0947\x00B7\x0000\x000A\u0948\x0008\x0000\x0001\u0558\x00C6\x0000\x0001\u0775\x00A9\x0000" + + "\x0004\u0949\x0002\x0000\x0001\u0949\x000D\x0000\x0001\u0949\x0006\x0000\x000A\u0949\x0001\u08b1" + + "\x00A9\x0000\x0004\u094a\x0002\x0000\x0001\u094a\x000D\x0000\x0001\u094a\x0006\x0000\x000A\u094a" + + "\x0001\u094b\x00A9\x0000\x0004\u094c\x0002\x0000\x0001\u094c\x000D\x0000\x0001\u094c\x0006\x0000" + + "\x000A\u094c\x0001\u094d\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u094c\x0002\x0000" + + "\x0001\u094c\x000D\x0000\x0001\u094c\x0006\x0000\x000A\u094e\x0001\u094d\x000A\x0000\x0001\u06d6" + + "\x009D\x0000\x0001\u077c\x0004\u094c\x0002\x0000\x0001\u094c\x000D\x0000\x0001\u094c\x0006\x0000" + + "\x000A\u094f\x0001\u094d\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u094c\x0002\x0000" + + "\x0001\u094c\x000D\x0000\x0001\u094c\x0006\x0000\x0002\u094f\x0001\u094e\x0001\u094f\x0001\u0950" + + "\x0002\u094e\x0002\u094f\x0001\u094e\x0001\u094d\x000A\x0000\x0001\u06d6\x009E\x0000\x0004\u0951" + + "\x0002\x0000\x0001\u0951\x000D\x0000\x0001\u0951\x0006\x0000\x000A\u0951\x0001\u0817\x000A\x0000" + + "\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0951\x0002\x0000\x0001\u0951\x000D\x0000\x0001\u0951" + + "\x0006\x0000\x000A\u0951\x0001\u0817\x000A\x0000\x0001\u06d6\x00C3\x0000\x0001\u077b\x000A\x0000" + + "\x0001\u06d6\x00B9\x0000\x0001\u0952\x0001\u0953\x0005\u0952\x0001\u0954\x0001\u0953\x0001\u0952" + + "\x00A9\x0000\x0001\u08b9\x00CE\x0000\x0001\u08b9\x001B\x0000\x0002\u08ba\x0001\x0000\x0002\u08ba" + + "\x0002\x0000\x0002\u08ba\x00AA\x0000\x0001\u0955\x001A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0955\x0004\u06d7\x0001\u08e1\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955" + + "\x000D\u06d7\x0001\u082c\x000C\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0008\u06d7" + + "\x0001\u082c\x0011\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x000A\u06d7\x0001\u0956" + + "\x0004\u06d7\x0001\u08bc\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0005\u06d7" + + "\x0001\u0957\x0004\u06d7\x0001\u08bc\x0001\u0958\x000E\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0955\x0005\u06d7\x0001\u0959\x0014\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0001\u095a\x0003\u06d7\x0001\u095b\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0010\u06d7\x0001\u08bc\x0009\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000F\u06d7" + + "\x0001\u095c\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0010\u06d7\x0001\u095d" + + "\x0009\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x000F\u06d7\x0001\u095e\x000A\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u08bc\x0012\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0955\x0009\u06d7\x0001\u095f\x0010\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0955\x0001\u0960\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0018\u06d7\x0001\u08bc\x0001\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0004\u06d7" + + "\x0001\u08c4\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0006\u06d7\x0001\u08e1" + + "\x0008\u06d7\x0001\u08bc\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x000B\u06d7" + + "\x0001\u0961\x000E\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0007\u06d7\x0001\u0962" + + "\x0012\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x000B\u06d7\x0001\u08c4\x000E\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0014\u06d7\x0001\u0963\x0005\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0009\u06d7\x0001\u08bc\x0010\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0955\x000E\u06d7\x0001\u0964\x000B\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0955\x000A\u06d7\x0001\u0965\x000F\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955" + + "\x000F\u06d7\x0001\u08bc\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0005\u06d7" + + "\x0001\u08bc\x0014\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000E\u06d7\x0001\u0966" + + "\x000B\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0010\u06d7\x0001\u0967\x0009\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0005\u06d7\x0001\u0968\x0014\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0955\x0012\u06d7\x0001\u0969\x0007\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0955\x000B\u06d7\x0001\u096a\x000E\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x000F\u06d7\x0001\u096b\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0001\u06d7\x0001\u096c\x0007\u06d7\x0001\u08bc\x0010\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0955\x0001\u096d\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0002\u06d7" + + "\x0001\u096e\x0017\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000D\u06d7\x0001\u096f" + + "\x000C\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0005\u06d7\x0001\u08bc\x0014\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0970\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0012\u06d7\x0001\u08bc\x0007\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955" + + "\x0013\u06d7\x0001\u08bc\x0002\u06d7\x0001\u0965\x0003\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0009\u06d7\x0001\u0971\x0010\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955" + + "\x000F\u06d7\x0001\u0972\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x0014\u06d7" + + "\x0001\u096f\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0955\x000B\u06d7\x0001\u0973" + + "\x000E\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0019\u06d7\x0001\u0974\x0001\u0781" + + "\x000A\u06d7\x00A5\x0000\x0001\u0563\x0003\x0000\x001C\u0563\x000A\u0975\x0001\x0000\x0002\u0563" + + "\x0001\u0632\x0002\u0563\x0001\u0565\x0001\u0305\x0001\u0306\x0001\u0307\x0002\x0000\x0002\u0563" + + "\x0003\x0000\x0001\u0563\x0098\x0000\x0004\u0976\x0002\x0000\x0001\u0976\x000D\x0000\x0001\u0976" + + "\x0006\x0000\x000A\u0976\x0001\u083d\x00A9\x0000\x0004\u0977\x0002\x0000\x0001\u0977\x000D\x0000" + + "\x0001\u0977\x0006\x0000\x000A\u0977\x0001\u0978\x00A9\x0000\x0004\u0979\x0002\x0000\x0001\u0979" + + "\x000D\x0000\x0001\u0979\x0006\x0000\x0001\u097a\x0001\u097b\x0005\u097a\x0001\u097c\x0001\u097b" + + "\x0001\u097a\x000B\x0000\x0001\u078c\x009E\x0000\x0004\u097d\x0002\x0000\x0001\u097d\x000D\x0000" + + "\x0001\u097d\x0006\x0000\x000A\u097d\x0001\u08ef\x000A\x0000\x0001\u078c\x009E\x0000\x0004\u0979" + + "\x0002\x0000\x0001\u0979\x000D\x0000\x0001\u0979\x0006\x0000\x0001\u097a\x0001\u097b\x0005\u097a" + + "\x0001\u097c\x0001\u097b\x0001\u097a\x00A9\x0000\x0001\u0844\x0004\u097d\x0002\x0000\x0001\u097d" + + "\x000D\x0000\x0001\u097d\x0006\x0000\x000A\u097d\x0001\u08ef\x000A\x0000\x0001\u078c\x009D\x0000" + + "\x0001\u0844\x0004\u097d\x0002\x0000\x0001\u097d\x000D\x0000\x0001\u097d\x0006\x0000\x000A\u097e" + + "\x0001\u08ef\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u097d\x0002\x0000\x0001\u097d" + + "\x000D\x0000\x0001\u097d\x0006\x0000\x0002\u097e\x0001\u097d\x0002\u097e\x0002\u097d\x0002\u097e" + + "\x0001\u097d\x0001\u08ef\x000A\x0000\x0001\u078c\x009E\x0000\x0004\u097f\x0002\x0000\x0001\u097f" + + "\x000D\x0000\x0001\u097f\x0006\x0000\x000A\u097f\x0001\u0843\x000A\x0000\x0001\u078c\x009D\x0000" + + "\x0001\u0980\x001B\x0000\x000A\u0981\x00A9\x0000\x0001\u0980\x001B\x0000\x000A\u08f4\x00A9\x0000" + + "\x0001\u0980\x001B\x0000\x0002\u08f4\x0001\u0981\x0001\u08f4\x0001\u0982\x0002\u0981\x0002\u08f4" + + "\x0001\u0981\x00A9\x0000\x0001\u0844\x0004\u097f\x0002\x0000\x0001\u097f\x000D\x0000\x0001\u097f" + + "\x0006\x0000\x000A\u097f\x0001\u0843\x000A\x0000\x0001\u078c\x00C3\x0000\x0001\u0792\x00A9\x0000" + + "\x0004\u0983\x0002\x0000\x0001\u0983\x000D\x0000\x0001\u0983\x0006\x0000\x000A\u0983\x0001\u08fa" + + "\x00A9\x0000\x0004\u0984\x0002\x0000\x0001\u0984\x000D\x0000\x0001\u0984\x0006\x0000\x0001\u0985" + + "\x0001\u0986\x0005\u0985\x0001\u0987\x0001\u0986\x0001\u0985\x0001\u0988\x00A9\x0000\x0004\u0989" + + "\x0002\x0000\x0001\u0989\x000D\x0000\x0001\u0989\x0006\x0000\x000A\u0989\x0001\u098a\x000A\x0000" + + "\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u0989\x0002\x0000\x0001\u0989\x000D\x0000\x0001\u0989" + + "\x0006\x0000\x000A\u098b\x0001\u098a\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u0989" + + "\x0002\x0000\x0001\u0989\x000D\x0000\x0001\u0989\x0006\x0000\x000A\u098c\x0001\u098a\x000A\x0000" + + "\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u0989\x0002\x0000\x0001\u0989\x000D\x0000\x0001\u0989" + + "\x0006\x0000\x0002\u098c\x0001\u098b\x0001\u098c\x0001\u098d\x0002\u098b\x0002\u098c\x0001\u098b" + + "\x0001\u098a\x000A\x0000\x0001\u01f2\x009E\x0000\x0004\u098e\x0002\x0000\x0001\u098e\x000D\x0000" + + "\x0001\u098e\x0006\x0000\x000A\u098e\x0001\u084d\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301" + + "\x0004\u098e\x0002\x0000\x0001\u098e\x000D\x0000\x0001\u098e\x0006\x0000\x000A\u098e\x0001\u084d" + + "\x000A\x0000\x0001\u01f2\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u098f\x0019\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x001A\u0150\x0001\x009E\x0007\u0150\x0001\u0703\x0002\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0990\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0991\x0019\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150" + + "\x0001\u0992\x0012\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0006\u0150\x0001\u0993\x0013\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0994\x0019\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0995" + + "\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u0150\x0001\u0996\x0008\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0002\u0150\x0001\u0997" + + "\x0007\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0006\u0150" + + "\x0001\u0225\x0013\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0015\u0150\x0001\u0998\x0004\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0999\x0019\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0002\u0150\x0001\u024a\x0007\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x000A\u0150\x0001\u024c\x000F\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0014\u0150\x0001\u0225\x0005\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x00BC\x0000\x0001\u07be\x00A9\x0000\x0004\u099a" + + "\x0002\x0000\x0001\u099a\x000D\x0000\x0001\u099a\x0006\x0000\x000A\u099a\x0001\u0913\x00A9\x0000" + + "\x0004\u099b\x0002\x0000\x0001\u099b\x000D\x0000\x0001\u099b\x0006\x0000\x0001\u099c\x0001\u099d" + + "\x0005\u099c\x0001\u099e\x0001\u099d\x0001\u099c\x0001\u099f\x00A9\x0000\x0004\u09a0\x0002\x0000" + + "\x0001\u09a0\x000D\x0000\x0001\u09a0\x0006\x0000\x000A\u09a0\x0001\u09a1\x000A\x0000\x0001\u025e" + + "\x009D\x0000\x0001\u0355\x0004\u09a0\x0002\x0000\x0001\u09a0\x000D\x0000\x0001\u09a0\x0006\x0000" + + "\x000A\u09a2\x0001\u09a1\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u09a0\x0002\x0000" + + "\x0001\u09a0\x000D\x0000\x0001\u09a0\x0006\x0000\x000A\u09a3\x0001\u09a1\x000A\x0000\x0001\u025e" + + "\x009D\x0000\x0001\u0355\x0004\u09a0\x0002\x0000\x0001\u09a0\x000D\x0000\x0001\u09a0\x0006\x0000" + + "\x0002\u09a3\x0001\u09a2\x0001\u09a3\x0001\u09a4\x0002\u09a2\x0002\u09a3\x0001\u09a2\x0001\u09a1" + + "\x000A\x0000\x0001\u025e\x009E\x0000\x0004\u09a5\x0002\x0000\x0001\u09a5\x000D\x0000\x0001\u09a5" + + "\x0006\x0000\x000A\u09a5\x0001\u086c\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u09a5" + + "\x0002\x0000\x0001\u09a5\x000D\x0000\x0001\u09a5\x0006\x0000\x000A\u09a5\x0001\u086c\x000A\x0000" + + "\x0001\u025e\x009D\x0000\x0001\u0181\x0005\x00E0\x0001\u069f\x0014\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0003\x00E0\x0001\u09a6\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x0006\x00E0\x0001\u036f\x0013\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0001\x00E0\x0001\u0887\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0" + + "\x0001\u09a7\x0016\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0008\x00E0\x0001\u09a8\x0001\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0002\x00E0" + + "\x0001\u09a9\x0007\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0002\x00E0\x0001\u09aa" + + "\x0007\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0003\x00E0\x0001\u09ab\x0006\x00E0" + + "\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0005\x00E0\x0001\u09ac\x0004\x00E0\x00A9\x0000" + + "\x0001\u0181\x001A\x00E0\x0001\u0182\x0003\x00E0\x0001\u09ad\x0006\x00E0\x00A9\x0000\x0001\u0181" + + "\x0002\x00E0\x0001\u09ae\x0017\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u09af" + + "\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0014\x00E0\x0001\u09b0\x0005\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0013\x00E0\x0001\u0463\x0006\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0001\u09b1\x0009\x00E0\x00A9\x0000" + + "\x0001\u0181\x001A\x00E0\x0001\u0182\x0001\u09b2\x0009\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0009\x00E0\x0001\u09b3\x00A9\x0000\x0001\u0181\x000A\x00E0\x0001\u09b4\x000F\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0002\x00E0\x0001\u0467" + + "\x0007\x00E0\x00A9\x0000\x0001\u0181\x0002\x00E0\x0001\u09b5\x0017\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A5\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u010b\x0001\u09b6" + + "\x0008\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0002\u010b" + + "\x0001\u09b7\x0017\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0006\u010b\x0001\u06bf\x0003\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x000D\u010b\x0001\u011f\x000C\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0008\u010b\x0001\u06ba\x0001\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x0013\u010b\x0001\u09b8\x0006\u010b\x0001\x008C\x000A\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0004\u010b\x0001\u09b9\x0005\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0001\u089e\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0008\u010b\x0001\u04b1\x0001\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0019\u010b\x0001\u09ba" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x001A\u010b\x0001\x008C\x0004\u010b\x0001\u09bb\x0005\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x00BC\x0000" + + "\x0001\u0805\x00A9\x0000\x0004\u09bc\x0002\x0000\x0001\u09bc\x000D\x0000\x0001\u09bc\x0006\x0000" + + "\x000A\u09bc\x0001\u093c\x00A9\x0000\x0004\u09bd\x0002\x0000\x0001\u09bd\x000D\x0000\x0001\u09bd" + + "\x0006\x0000\x000A\u09bd\x0001\u09be\x00A9\x0000\x0004\u09bf\x0002\x0000\x0001\u09bf\x000D\x0000" + + "\x0001\u09bf\x0006\x0000\x000A\u09bf\x0001\u09c0\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c" + + "\x0004\u09bf\x0002\x0000\x0001\u09bf\x000D\x0000\x0001\u09bf\x0006\x0000\x000A\u09c1\x0001\u09c0" + + "\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u09bf\x0002\x0000\x0001\u09bf\x000D\x0000" + + "\x0001\u09bf\x0006\x0000\x000A\u09c2\x0001\u09c0\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c" + + "\x0004\u09bf\x0002\x0000\x0001\u09bf\x000D\x0000\x0001\u09bf\x0006\x0000\x0002\u09c2\x0001\u09c1" + + "\x0001\u09c2\x0001\u09c3\x0002\u09c1\x0002\u09c2\x0001\u09c1\x0001\u09c0\x000A\x0000\x0001\u076f" + + "\x009E\x0000\x0004\u09c4\x0002\x0000\x0001\u09c4\x000D\x0000\x0001\u09c4\x0006\x0000\x000A\u09c4" + + "\x0001\u08a3\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u09c4\x0002\x0000\x0001\u09c4" + + "\x000D\x0000\x0001\u09c4\x0006\x0000\x000A\u09c4\x0001\u08a3\x000A\x0000\x0001\u076f\x00C3\x0000" + + "\x0001\u080b\x000A\x0000\x0001\u076f\x00B9\x0000\x0001\u09c5\x0001\u09c6\x0005\u09c5\x0001\u09c7" + + "\x0001\u09c6\x0001\u09c5\x00A9\x0000\x0001\u0944\x00CE\x0000\x0001\u0944\x001B\x0000\x0002\u0945" + + "\x0001\x0000\x0002\u0945\x0002\x0000\x0002\u0945\x00AB\x0000\x0001\u09c8\x0001\x0000\x0001\u09c8" + + "\x0005\x0000\x0001\u09c8\x00F3\x0000\x0001\u0558\x00A1\x0000\x0004\u09c9\x0002\x0000\x0001\u09c9" + + "\x000D\x0000\x0001\u09c9\x0006\x0000\x000A\u09c9\x0001\u08b1\x00A9\x0000\x0004\u09ca\x0002\x0000" + + "\x0001\u09ca\x000D\x0000\x0001\u09ca\x0006\x0000\x000A\u09ca\x0001\u09cb\x00A9\x0000\x0004\u09cc" + + "\x0002\x0000\x0001\u09cc\x000D\x0000\x0001\u09cc\x0006\x0000\x0001\u09cd\x0001\u09ce\x0005\u09cd" + + "\x0001\u09cf\x0001\u09ce\x0001\u09cd\x000B\x0000\x0001\u06d6\x009E\x0000\x0004\u09d0\x0002\x0000" + + "\x0001\u09d0\x000D\x0000\x0001\u09d0\x0006\x0000\x000A\u09d0\x0001\u094d\x000A\x0000\x0001\u06d6" + + "\x009E\x0000\x0004\u09cc\x0002\x0000\x0001\u09cc\x000D\x0000\x0001\u09cc\x0006\x0000\x0001\u09cd" + + "\x0001\u09ce\x0005\u09cd\x0001\u09cf\x0001\u09ce\x0001\u09cd\x00A9\x0000\x0001\u077c\x0004\u09d0" + + "\x0002\x0000\x0001\u09d0\x000D\x0000\x0001\u09d0\x0006\x0000\x000A\u09d0\x0001\u094d\x000A\x0000" + + "\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u09d0\x0002\x0000\x0001\u09d0\x000D\x0000\x0001\u09d0" + + "\x0006\x0000\x000A\u09d1\x0001\u094d\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u09d0" + + "\x0002\x0000\x0001\u09d0\x000D\x0000\x0001\u09d0\x0006\x0000\x0002\u09d1\x0001\u09d0\x0002\u09d1" + + "\x0002\u09d0\x0002\u09d1\x0001\u09d0\x0001\u094d\x000A\x0000\x0001\u06d6\x00C3\x0000\x0001\u0817" + + "\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u09d2\x001B\x0000\x000A\u09d3\x00A9\x0000\x0001\u09d2" + + "\x001B\x0000\x000A\u0952\x00A9\x0000\x0001\u09d2\x001B\x0000\x0002\u0952\x0001\u09d3\x0001\u0952" + + "\x0001\u09d4\x0002\u09d3\x0002\u0952\x0001\u09d3\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u09d5" + + "\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000D\u06d7\x0001\u08bc\x000C\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000E\u06d7\x0001\u09d6\x0001\u09d7\x000A\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000F\u06d7\x0001\u09d8\x000A\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x000A\u06d7\x0001\u09d9\x000F\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u09da\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0003\u06d7\x0001\u09db\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0008\u06d7\x0001\u09dc\x0011\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u09dd" + + "\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0009\u06d7\x0001\u09de\x0010\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000D\u06d7\x0001\u09df\x000C\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0002\u06d7\x0001\u08bc\x0017\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0015\u06d7\x0001\u09e0\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0008\u06d7\x0001\u08bc\x0011\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0003\u06d7\x0001\u09e1\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7" + + "\x0001\u08bc\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000F\u06d7\x0001\u08bc" + + "\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000A\u06d7\x0001\u09e2\x000F\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000F\u06d7\x0001\u09e3\x000A\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0019\u06d7\x0001\u08bc\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0007\u06d7\x0001\u09e4\x0012\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x000F\u06d7\x0001\u09e5\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0015\u06d7" + + "\x0001\u09e6\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0018\u06d7\x0001\u09e7" + + "\x0001\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0969\x0019\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x000E\u06d7\x0001\u08bc\x000B\u06d7\x0001\u0781\x000A\u06d7" + + "\x00AA\x0000\x001A\u06d7\x0001\u09e8\x000A\u06d7\x00A9\x0000\x0001\u0780\x0002\u06d7\x0001\u09e9" + + "\x0017\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u09ea\x0018\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000F\u06d7\x0001\u09eb\x000A\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u09ec\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A5\x0000" + + "\x0001\u0563\x0003\x0000\x0026\u0563\x0001\x0000\x0002\u0563\x0001\u0632\x0002\u0563\x0001\u0565" + + "\x0001\u0305\x0001\u0306\x0001\u0307\x0002\x0000\x0002\u0563\x0003\x0000\x0001\u0563\x00BD\x0000" + + "\x0001\u083d\x00A9\x0000\x0004\u09ed\x0002\x0000\x0001\u09ed\x000D\x0000\x0001\u09ed\x0006\x0000" + + "\x000A\u09ed\x0001\u0978\x00A9\x0000\x0004\u09ee\x0002\x0000\x0001\u09ee\x000D\x0000\x0001\u09ee" + + "\x0006\x0000\x000A\u09ee\x0001\u09ef\x00A9\x0000\x0004\u09f0\x0002\x0000\x0001\u09f0\x000D\x0000" + + "\x0001\u09f0\x0006\x0000\x000A\u09f0\x0001\u09f1\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844" + + "\x0004\u09f0\x0002\x0000\x0001\u09f0\x000D\x0000\x0001\u09f0\x0006\x0000\x000A\u09f2\x0001\u09f1" + + "\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u09f0\x0002\x0000\x0001\u09f0\x000D\x0000" + + "\x0001\u09f0\x0006\x0000\x000A\u09f3\x0001\u09f1\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844" + + "\x0004\u09f0\x0002\x0000\x0001\u09f0\x000D\x0000\x0001\u09f0\x0006\x0000\x0002\u09f3\x0001\u09f2" + + "\x0001\u09f3\x0001\u09f4\x0002\u09f2\x0002\u09f3\x0001\u09f2\x0001\u09f1\x000A\x0000\x0001\u078c" + + "\x009E\x0000\x0004\u09f5\x0002\x0000\x0001\u09f5\x000D\x0000\x0001\u09f5\x0006\x0000\x000A\u09f5" + + "\x0001\u08ef\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u09f5\x0002\x0000\x0001\u09f5" + + "\x000D\x0000\x0001\u09f5\x0006\x0000\x000A\u09f5\x0001\u08ef\x000A\x0000\x0001\u078c\x00C3\x0000" + + "\x0001\u0843\x000A\x0000\x0001\u078c\x00B9\x0000\x0001\u09f6\x0001\u09f7\x0005\u09f6\x0001\u09f8" + + "\x0001\u09f7\x0001\u09f6\x00A9\x0000\x0001\u0980\x00CE\x0000\x0001\u0980\x001B\x0000\x0002\u0981" + + "\x0001\x0000\x0002\u0981\x0002\x0000\x0002\u0981\x00AB\x0000\x0004\u09f9\x0002\x0000\x0001\u09f9" + + "\x000D\x0000\x0001\u09f9\x0006\x0000\x000A\u09f9\x0001\u08fa\x00A9\x0000\x0004\u09fa\x0002\x0000" + + "\x0001\u09fa\x000D\x0000\x0001\u09fa\x0006\x0000\x000A\u09fa\x0001\u09fb\x00A8\x0000\x0001\u0301" + + "\x0004\u09fa\x0002\x0000\x0001\u09fa\x000D\x0000\x0001\u09fa\x0006\x0000\x000A\u09fc\x0001\u09fb" + + "\x00A8\x0000\x0001\u0301\x0004\u09fa\x0002\x0000\x0001\u09fa\x000D\x0000\x0001\u09fa\x0006\x0000" + + "\x000A\u09fd\x0001\u09fb\x00A8\x0000\x0001\u0301\x0004\u09fa\x0002\x0000\x0001\u09fa\x000D\x0000" + + "\x0001\u09fa\x0006\x0000\x0002\u09fd\x0001\u09fc\x0001\u09fd\x0001\u09fe\x0002\u09fc\x0002\u09fd" + + "\x0001\u09fc\x0001\u09fb\x00A9\x0000\x0004\u09ff\x0002\x0000\x0001\u09ff\x000D\x0000\x0001\u09ff" + + "\x0006\x0000\x000A\u09ff\x000B\x0000\x0001\u01f2\x009E\x0000\x0004\u0a00\x0002\x0000\x0001\u0a00" + + "\x000D\x0000\x0001\u0a00\x0006\x0000\x000A\u0a00\x0001\u098a\x000A\x0000\x0001\u01f2\x009E\x0000" + + "\x0004\u09ff\x0002\x0000\x0001\u09ff\x000D\x0000\x0001\u09ff\x0006\x0000\x000A\u09ff\x00A9\x0000" + + "\x0001\u0301\x0004\u0a00\x0002\x0000\x0001\u0a00\x000D\x0000\x0001\u0a00\x0006\x0000\x000A\u0a00" + + "\x0001\u098a\x000A\x0000\x0001\u01f2\x009D\x0000\x0001\u0301\x0004\u0a00\x0002\x0000\x0001\u0a00" + + "\x000D\x0000\x0001\u0a00\x0006\x0000\x000A\u0a01\x0001\u098a\x000A\x0000\x0001\u01f2\x009D\x0000" + + "\x0001\u0301\x0004\u0a00\x0002\x0000\x0001\u0a00\x000D\x0000\x0001\u0a00\x0006\x0000\x0002\u0a01" + + "\x0001\u0a00\x0002\u0a01\x0002\u0a00\x0002\u0a01\x0001\u0a00\x0001\u098a\x000A\x0000\x0001\u01f2" + + "\x00C3\x0000\x0001\u084d\x000A\x0000\x0001\u01f2\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x001A\u0150\x0001\x009E\x0001\u0150\x0001\u0a02\x0008\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0002\u0150\x0001\u0a03\x0017\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E" + + "\x0006\u0150\x0001\u0713\x0003\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u0221\x000D\u0150\x0001\u0162\x000C\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0008\u0150\x0001\u070e" + + "\x0001\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0013\u0150" + + "\x0001\u0a04\x0006\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0004\u0150\x0001\u0a05\x0005\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0910\x0019\u0150\x0001\x009E" + + "\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150" + + "\x0001\x009E\x0008\u0150\x0001\u033a\x0001\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0019\u0150\x0001\u0a06\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0004\u0150\x0001\u0a07" + + "\x0005\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000\x0004\u0a08\x0002\x0000\x0001\u0a08\x000D\x0000" + + "\x0001\u0a08\x0006\x0000\x000A\u0a08\x0001\u0913\x00A9\x0000\x0004\u0a09\x0002\x0000\x0001\u0a09" + + "\x000D\x0000\x0001\u0a09\x0006\x0000\x000A\u0a09\x0001\u0a0a\x00A8\x0000\x0001\u0355\x0004\u0a09" + + "\x0002\x0000\x0001\u0a09\x000D\x0000\x0001\u0a09\x0006\x0000\x000A\u0a0b\x0001\u0a0a\x00A8\x0000" + + "\x0001\u0355\x0004\u0a09\x0002\x0000\x0001\u0a09\x000D\x0000\x0001\u0a09\x0006\x0000\x000A\u0a0c" + + "\x0001\u0a0a\x00A8\x0000\x0001\u0355\x0004\u0a09\x0002\x0000\x0001\u0a09\x000D\x0000\x0001\u0a09" + + "\x0006\x0000\x0002\u0a0c\x0001\u0a0b\x0001\u0a0c\x0001\u0a0d\x0002\u0a0b\x0002\u0a0c\x0001\u0a0b" + + "\x0001\u0a0a\x00A9\x0000\x0004\u0a0e\x0002\x0000\x0001\u0a0e\x000D\x0000\x0001\u0a0e\x0006\x0000" + + "\x000A\u0a0e\x000B\x0000\x0001\u025e\x009E\x0000\x0004\u0a0f\x0002\x0000\x0001\u0a0f\x000D\x0000" + + "\x0001\u0a0f\x0006\x0000\x000A\u0a0f\x0001\u09a1\x000A\x0000\x0001\u025e\x009E\x0000\x0004\u0a0e" + + "\x0002\x0000\x0001\u0a0e\x000D\x0000\x0001\u0a0e\x0006\x0000\x000A\u0a0e\x00A9\x0000\x0001\u0355" + + "\x0004\u0a0f\x0002\x0000\x0001\u0a0f\x000D\x0000\x0001\u0a0f\x0006\x0000\x000A\u0a0f\x0001\u09a1" + + "\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u0a0f\x0002\x0000\x0001\u0a0f\x000D\x0000" + + "\x0001\u0a0f\x0006\x0000\x000A\u0a10\x0001\u09a1\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0355" + + "\x0004\u0a0f\x0002\x0000\x0001\u0a0f\x000D\x0000\x0001\u0a0f\x0006\x0000\x0002\u0a10\x0001\u0a0f" + + "\x0002\u0a10\x0002\u0a0f\x0002\u0a10\x0001\u0a0f\x0001\u09a1\x000A\x0000\x0001\u025e\x00C3\x0000" + + "\x0001\u086c\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0181\x0001\u0a11\x0019\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0007\x00E0\x0001\u07d5\x0002\x00E0" + + "\x00A9\x0000\x0001\u0181\x0001\u0a12\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0001\u0a13\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0007\x00E0\x0001\u0a14" + + "\x0012\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0006\x00E0\x0001\u0a15\x0013\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0a16\x0019\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x0001\u0a17\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0001\x00E0\x0001\u0a18\x0008\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0002\x00E0\x0001\u0a19\x0007\x00E0\x00A9\x0000\x0001\u0181\x0006\x00E0\x0001\u0359" + + "\x0013\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0015\x00E0\x0001\u0a1a\x0004\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0a1b\x0019\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0002\x00E0\x0001\u037e\x0007\x00E0\x00A9\x0000" + + "\x0001\u0181\x000A\x00E0\x0001\u0380\x000F\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181" + + "\x0014\x00E0\x0001\u0359\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A5\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0014\u010b\x0001\u0a1c\x0005\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0006\u010b\x0001\u0a1d" + + "\x0003\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u010b" + + "\x0001\u01c5\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x0002\u010b\x0001\u0a1e\x0017\u010b\x0001\x008C\x000A\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0003\u010b\x0001\u0a1f\x0016\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0003\u010b\x0001\u0a20\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000" + + "\x0004\u0a21\x0002\x0000\x0001\u0a21\x000D\x0000\x0001\u0a21\x0006\x0000\x000A\u0a21\x0001\u093c" + + "\x00A9\x0000\x0004\u0a22\x0002\x0000\x0001\u0a22\x000D\x0000\x0001\u0a22\x0006\x0000\x000A\u0a22" + + "\x0001\u0a23\x00A9\x0000\x0004\u0a24\x0002\x0000\x0001\u0a24\x000D\x0000\x0001\u0a24\x0006\x0000" + + "\x0001\u0a25\x0001\u0a26\x0005\u0a25\x0001\u0a27\x0001\u0a26\x0001\u0a25\x000B\x0000\x0001\u076f" + + "\x009E\x0000\x0004\u0a28\x0002\x0000\x0001\u0a28\x000D\x0000\x0001\u0a28\x0006\x0000\x000A\u0a28" + + "\x0001\u09c0\x000A\x0000\x0001\u076f\x009E\x0000\x0004\u0a24\x0002\x0000\x0001\u0a24\x000D\x0000" + + "\x0001\u0a24\x0006\x0000\x0001\u0a25\x0001\u0a26\x0005\u0a25\x0001\u0a27\x0001\u0a26\x0001\u0a25" + + "\x00A9\x0000\x0001\u080c\x0004\u0a28\x0002\x0000\x0001\u0a28\x000D\x0000\x0001\u0a28\x0006\x0000" + + "\x000A\u0a28\x0001\u09c0\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0a28\x0002\x0000" + + "\x0001\u0a28\x000D\x0000\x0001\u0a28\x0006\x0000\x000A\u0a29\x0001\u09c0\x000A\x0000\x0001\u076f" + + "\x009D\x0000\x0001\u080c\x0004\u0a28\x0002\x0000\x0001\u0a28\x000D\x0000\x0001\u0a28\x0006\x0000" + + "\x0002\u0a29\x0001\u0a28\x0002\u0a29\x0002\u0a28\x0002\u0a29\x0001\u0a28\x0001\u09c0\x000A\x0000" + + "\x0001\u076f\x00C3\x0000\x0001\u08a3\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u0a2a\x001B\x0000" + + "\x000A\u0a2b\x00A9\x0000\x0001\u0a2a\x001B\x0000\x000A\u09c5\x00A9\x0000\x0001\u0a2a\x001B\x0000" + + "\x0002\u09c5\x0001\u0a2b\x0001\u09c5\x0001\u0a2c\x0002\u0a2b\x0002\u09c5\x0001\u0a2b\x00D8\x0000" + + "\x0001\u0307\x00C5\x0000\x0001\u08b1\x00A9\x0000\x0004\u0a2d\x0002\x0000\x0001\u0a2d\x000D\x0000" + + "\x0001\u0a2d\x0006\x0000\x000A\u0a2d\x0001\u09cb\x00A9\x0000\x0004\u0a2e\x0002\x0000\x0001\u0a2e" + + "\x000D\x0000\x0001\u0a2e\x0006\x0000\x000A\u0a2e\x0001\u0a2f\x00A9\x0000\x0004\u0a30\x0002\x0000" + + "\x0001\u0a30\x000D\x0000\x0001\u0a30\x0006\x0000\x000A\u0a30\x0001\u0a31\x000A\x0000\x0001\u06d6" + + "\x009D\x0000\x0001\u077c\x0004\u0a30\x0002\x0000\x0001\u0a30\x000D\x0000\x0001\u0a30\x0006\x0000" + + "\x000A\u0a32\x0001\u0a31\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0a30\x0002\x0000" + + "\x0001\u0a30\x000D\x0000\x0001\u0a30\x0006\x0000\x000A\u0a33\x0001\u0a31\x000A\x0000\x0001\u06d6" + + "\x009D\x0000\x0001\u077c\x0004\u0a30\x0002\x0000\x0001\u0a30\x000D\x0000\x0001\u0a30\x0006\x0000" + + "\x0002\u0a33\x0001\u0a32\x0001\u0a33\x0001\u0a34\x0002\u0a32\x0002\u0a33\x0001\u0a32\x0001\u0a31" + + "\x000A\x0000\x0001\u06d6\x009E\x0000\x0004\u0a35\x0002\x0000\x0001\u0a35\x000D\x0000\x0001\u0a35" + + "\x0006\x0000\x000A\u0a35\x0001\u094d\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0a35" + + "\x0002\x0000\x0001\u0a35\x000D\x0000\x0001\u0a35\x0006\x0000\x000A\u0a35\x0001\u094d\x000A\x0000" + + "\x0001\u06d6\x00B9\x0000\x0001\u0a36\x0001\u0a37\x0005\u0a36\x0001\u0a38\x0001\u0a37\x0001\u0a36" + + "\x00A9\x0000\x0001\u09d2\x00CE\x0000\x0001\u09d2\x001B\x0000\x0002\u09d3\x0001\x0000\x0002\u09d3" + + "\x0002\x0000\x0002\u09d3\x00AA\x0000\x0001\u0780\x0004\u06d7\x0001\u082c\x0015\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x000F\u06d7\x0001\u0a39\x000A\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0004\u06d7\x0001\u0a3a\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0015\u06d7\x0001\u0a3b\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0005\u06d7\x0001\u0a3c\x0014\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7" + + "\x0001\u0a3d\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0004\u06d7\x0001\u0a3e" + + "\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000D\u06d7\x0001\u0a3f\x000C\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000F\u06d7\x0001\u0965\x000A\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u0a40\x0016\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0015\u06d7\x0001\u0a41\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x000F\u06d7\x0001\u0a3b\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0010\u06d7\x0001\u0a42\x0009\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0014\u06d7" + + "\x0001\u0a3b\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0005\u06d7\x0001\u0a43" + + "\x0014\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0009\u06d7\x0001\u0a44\x0010\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0005\u06d7\x0001\u08e1\x0014\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x000B\u06d7\x0001\u0a45\x000E\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u08d2\x0016\u06d7\x0001\u0781\x000A\u06d7\x00AA\x0000" + + "\x0001\u06d7\x0001\u0a46\x0003\u06d7\x0001\u0a47\x0001\u0a48\x0001\u0a49\x0001\u06d7\x0001\u0a4a" + + "\x0001\u0a4b\x0001\u0a4c\x0001\u0a4d\x0001\u0a4e\x0001\u0a4f\x0001\u06d7\x0001\u0a50\x0001\u0a51" + + "\x0001\u0a52\x0002\u06d7\x0001\u0a53\x0001\u0a54\x0001\u0a55\x0001\u06d7\x0001\u0a56\x0001\u0781" + + "\x0001\u0a57\x0002\u06d7\x0001\u0a58\x0001\u06d7\x0001\u0a59\x0001\u0a5a\x0003\u06d7\x00A9\x0000" + + "\x0001\u0780\x0008\u06d7\x0001\u0a5b\x0011\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0015\u06d7\x0001\u0a5c\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0010\u06d7" + + "\x0001\u0a5d\x0009\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0965" + + "\x0012\u06d7\x0001\u0781\x000A\u06d7\x00AA\x0000\x0004\u0a5e\x0002\x0000\x0001\u0a5e\x000D\x0000" + + "\x0001\u0a5e\x0006\x0000\x000A\u0a5e\x0001\u0978\x00A9\x0000\x0004\u0a5f\x0002\x0000\x0001\u0a5f" + + "\x000D\x0000\x0001\u0a5f\x0006\x0000\x000A\u0a5f\x0001\u0a60\x00A9\x0000\x0004\u0a61\x0002\x0000" + + "\x0001\u0a61\x000D\x0000\x0001\u0a61\x0006\x0000\x0001\u0a62\x0001\u0a63\x0005\u0a62\x0001\u0a64" + + "\x0001\u0a63\x0001\u0a62\x000B\x0000\x0001\u078c\x009E\x0000\x0004\u0a65\x0002\x0000\x0001\u0a65" + + "\x000D\x0000\x0001\u0a65\x0006\x0000\x000A\u0a65\x0001\u09f1\x000A\x0000\x0001\u078c\x009E\x0000" + + "\x0004\u0a61\x0002\x0000\x0001\u0a61\x000D\x0000\x0001\u0a61\x0006\x0000\x0001\u0a62\x0001\u0a63" + + "\x0005\u0a62\x0001\u0a64\x0001\u0a63\x0001\u0a62\x00A9\x0000\x0001\u0844\x0004\u0a65\x0002\x0000" + + "\x0001\u0a65\x000D\x0000\x0001\u0a65\x0006\x0000\x000A\u0a65\x0001\u09f1\x000A\x0000\x0001\u078c" + + "\x009D\x0000\x0001\u0844\x0004\u0a65\x0002\x0000\x0001\u0a65\x000D\x0000\x0001\u0a65\x0006\x0000" + + "\x000A\u0a66\x0001\u09f1\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0a65\x0002\x0000" + + "\x0001\u0a65\x000D\x0000\x0001\u0a65\x0006\x0000\x0002\u0a66\x0001\u0a65\x0002\u0a66\x0002\u0a65" + + "\x0002\u0a66\x0001\u0a65\x0001\u09f1\x000A\x0000\x0001\u078c\x00C3\x0000\x0001\u08ef\x000A\x0000" + + "\x0001\u078c\x009D\x0000\x0001\u0a67\x001B\x0000\x000A\u0a68\x00A9\x0000\x0001\u0a67\x001B\x0000" + + "\x000A\u09f6\x00A9\x0000\x0001\u0a67\x001B\x0000\x0002\u09f6\x0001\u0a68\x0001\u09f6\x0001\u0a69" + + "\x0002\u0a68\x0002\u09f6\x0001\u0a68\x00CF\x0000\x0001\u08fa\x00A9\x0000\x0004\u0a6a\x0002\x0000" + + "\x0001\u0a6a\x000D\x0000\x0001\u0a6a\x0006\x0000\x000A\u0a6a\x0001\u09fb\x00A9\x0000\x0004\u09ff" + + "\x0002\x0000\x0001\u09ff\x000D\x0000\x0001\u09ff\x0006\x0000\x000A\u09ff\x0001\u0799\x00A8\x0000" + + "\x0001\u0301\x0004\u0a6a\x0002\x0000\x0001\u0a6a\x000D\x0000\x0001\u0a6a\x0006\x0000\x000A\u0a6a" + + "\x0001\u09fb\x00A8\x0000\x0001\u0301\x0004\u0a6a\x0002\x0000\x0001\u0a6a\x000D\x0000\x0001\u0a6a" + + "\x0006\x0000\x000A\u0a6b\x0001\u09fb\x00A8\x0000\x0001\u0301\x0004\u0a6a\x0002\x0000\x0001\u0a6a" + + "\x000D\x0000\x0001\u0a6a\x0006\x0000\x0002\u0a6b\x0001\u0a6a\x0002\u0a6b\x0002\u0a6a\x0002\u0a6b" + + "\x0001\u0a6a\x0001\u09fb\x00A9\x0000\x0004\u0a6c\x0002\x0000\x0001\u0a6c\x000D\x0000\x0001\u0a6c" + + "\x0006\x0000\x000A\u0a6c\x000B\x0000\x0001\u01f2\x009E\x0000\x0004\u0a6d\x0002\x0000\x0001\u0a6d" + + "\x000D\x0000\x0001\u0a6d\x0006\x0000\x000A\u0a6d\x0001\u098a\x000A\x0000\x0001\u01f2\x009D\x0000" + + "\x0001\u0301\x0004\u0a6d\x0002\x0000\x0001\u0a6d\x000D\x0000\x0001\u0a6d\x0006\x0000\x000A\u0a6d" + + "\x0001\u098a\x000A\x0000\x0001\u01f2\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0014\u0150" + + "\x0001\u0a6e\x0005\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0006\u0150\x0001\u0a6f\x0003\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150\x0001\u0231\x0018\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x0002\u0150\x0001\u0a70\x0017\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0a71\x0016\u0150\x0001\x009E\x000A\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0a72" + + "\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x00BC\x0000\x0001\u0913\x00A9\x0000" + + "\x0004\u0a73\x0002\x0000\x0001\u0a73\x000D\x0000\x0001\u0a73\x0006\x0000\x000A\u0a73\x0001\u0a0a" + + "\x00A9\x0000\x0004\u0a0e\x0002\x0000\x0001\u0a0e\x000D\x0000\x0001\u0a0e\x0006\x0000\x000A\u0a0e" + + "\x0001\u07c5\x00A8\x0000\x0001\u0355\x0004\u0a73\x0002\x0000\x0001\u0a73\x000D\x0000\x0001\u0a73" + + "\x0006\x0000\x000A\u0a73\x0001\u0a0a\x00A8\x0000\x0001\u0355\x0004\u0a73\x0002\x0000\x0001\u0a73" + + "\x000D\x0000\x0001\u0a73\x0006\x0000\x000A\u0a74\x0001\u0a0a\x00A8\x0000\x0001\u0355\x0004\u0a73" + + "\x0002\x0000\x0001\u0a73\x000D\x0000\x0001\u0a73\x0006\x0000\x0002\u0a74\x0001\u0a73\x0002\u0a74" + + "\x0002\u0a73\x0002\u0a74\x0001\u0a73\x0001\u0a0a\x00A9\x0000\x0004\u0a75\x0002\x0000\x0001\u0a75" + + "\x000D\x0000\x0001\u0a75\x0006\x0000\x000A\u0a75\x000B\x0000\x0001\u025e\x009E\x0000\x0004\u0a76" + + "\x0002\x0000\x0001\u0a76\x000D\x0000\x0001\u0a76\x0006\x0000\x000A\u0a76\x0001\u09a1\x000A\x0000" + + "\x0001\u025e\x009D\x0000\x0001\u0355\x0004\u0a76\x0002\x0000\x0001\u0a76\x000D\x0000\x0001\u0a76" + + "\x0006\x0000\x000A\u0a76\x0001\u09a1\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0001\x00E0\x0001\u0a77\x0008\x00E0\x00A9\x0000\x0001\u0181\x0002\x00E0\x0001\u0a78" + + "\x0017\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0006\x00E0" + + "\x0001\u07e5\x0003\x00E0\x00A9\x0000\x0001\u0181\x000D\x00E0\x0001\u0272\x000C\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0008\x00E0\x0001\u07e0\x0001\x00E0" + + "\x00A9\x0000\x0001\u0181\x0013\x00E0\x0001\u0a79\x0006\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000" + + "\x0001\u0181\x001A\x00E0\x0001\u0182\x0004\x00E0\x0001\u0a7a\x0005\x00E0\x00A9\x0000\x0001\u0181" + + "\x0001\u09b5\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0008\x00E0\x0001\u0467\x0001\x00E0\x00A9\x0000\x0001\u0181\x0019\x00E0\x0001\u0a7b\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0004\x00E0\x0001\u0a7c\x0005\x00E0" + + "\x00A5\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0007\u010b\x0001\u0a7d" + + "\x0002\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0017\u010b" + + "\x0001\u01b9\x0002\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0003\u010b\x0001\u0a7e\x0006\u010b\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0007\u010b" + + "\x0001\u011f\x0002\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3" + + "\x0003\u010b\x0001\u0a7f\x0016\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x00BC\x0000" + + "\x0001\u093c\x00A9\x0000\x0004\u0a80\x0002\x0000\x0001\u0a80\x000D\x0000\x0001\u0a80\x0006\x0000" + + "\x000A\u0a80\x0001\u0a23\x00A9\x0000\x0004\u0a81\x0002\x0000\x0001\u0a81\x000D\x0000\x0001\u0a81" + + "\x0006\x0000\x000A\u0a81\x0001\u0a82\x00A9\x0000\x0004\u0a83\x0002\x0000\x0001\u0a83\x000D\x0000" + + "\x0001\u0a83\x0006\x0000\x000A\u0a83\x0001\u0a84\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c" + + "\x0004\u0a83\x0002\x0000\x0001\u0a83\x000D\x0000\x0001\u0a83\x0006\x0000\x000A\u0a85\x0001\u0a84" + + "\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0a83\x0002\x0000\x0001\u0a83\x000D\x0000" + + "\x0001\u0a83\x0006\x0000\x000A\u0a86\x0001\u0a84\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c" + + "\x0004\u0a83\x0002\x0000\x0001\u0a83\x000D\x0000\x0001\u0a83\x0006\x0000\x0002\u0a86\x0001\u0a85" + + "\x0001\u0a86\x0001\u0a87\x0002\u0a85\x0002\u0a86\x0001\u0a85\x0001\u0a84\x000A\x0000\x0001\u076f" + + "\x009E\x0000\x0004\u0a88\x0002\x0000\x0001\u0a88\x000D\x0000\x0001\u0a88\x0006\x0000\x000A\u0a88" + + "\x0001\u09c0\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0a88\x0002\x0000\x0001\u0a88" + + "\x000D\x0000\x0001\u0a88\x0006\x0000\x000A\u0a88\x0001\u09c0\x000A\x0000\x0001\u076f\x00B9\x0000" + + "\x0001\u0a89\x0001\u0a8a\x0005\u0a89\x0001\u0a8b\x0001\u0a8a\x0001\u0a89\x00A9\x0000\x0001\u0a2a" + + "\x00CE\x0000\x0001\u0a2a\x001B\x0000\x0002\u0a2b\x0001\x0000\x0002\u0a2b\x0002\x0000\x0002\u0a2b" + + "\x00AB\x0000\x0004\u0a8c\x0002\x0000\x0001\u0a8c\x000D\x0000\x0001\u0a8c\x0006\x0000\x000A\u0a8c" + + "\x0001\u09cb\x00A9\x0000\x0004\u0a8d\x0002\x0000\x0001\u0a8d\x000D\x0000\x0001\u0a8d\x0006\x0000" + + "\x000A\u0a8d\x0001\u0a8e\x00A9\x0000\x0004\u0a8f\x0002\x0000\x0001\u0a8f\x000D\x0000\x0001\u0a8f" + + "\x0006\x0000\x0001\u0a90\x0001\u0a91\x0005\u0a90\x0001\u0a92\x0001\u0a91\x0001\u0a90\x000B\x0000" + + "\x0001\u06d6\x009E\x0000\x0004\u0a93\x0002\x0000\x0001\u0a93\x000D\x0000\x0001\u0a93\x0006\x0000" + + "\x000A\u0a93\x0001\u0a31\x000A\x0000\x0001\u06d6\x009E\x0000\x0004\u0a8f\x0002\x0000\x0001\u0a8f" + + "\x000D\x0000\x0001\u0a8f\x0006\x0000\x0001\u0a90\x0001\u0a91\x0005\u0a90\x0001\u0a92\x0001\u0a91" + + "\x0001\u0a90\x00A9\x0000\x0001\u077c\x0004\u0a93\x0002\x0000\x0001\u0a93\x000D\x0000\x0001\u0a93" + + "\x0006\x0000\x000A\u0a93\x0001\u0a31\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0a93" + + "\x0002\x0000\x0001\u0a93\x000D\x0000\x0001\u0a93\x0006\x0000\x000A\u0a94\x0001\u0a31\x000A\x0000" + + "\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0a93\x0002\x0000\x0001\u0a93\x000D\x0000\x0001\u0a93" + + "\x0006\x0000\x0002\u0a94\x0001\u0a93\x0002\u0a94\x0002\u0a93\x0002\u0a94\x0001\u0a93\x0001\u0a31" + + "\x000A\x0000\x0001\u06d6\x00C3\x0000\x0001\u094d\x000A\x0000\x0001\u06d6\x00B9\x0000\x000A\u0a95" + + "\x000B\x0000\x0001\u06d6\x00B9\x0000\x000A\u0a36\x000B\x0000\x0001\u06d6\x00B9\x0000\x0002\u0a36" + + "\x0001\u0a95\x0001\u0a36\x0001\u0a96\x0002\u0a95\x0002\u0a36\x0001\u0a95\x000B\x0000\x0001\u06d6" + + "\x009D\x0000\x0001\u0780\x0004\u06d7\x0001\u0a97\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0001\u0a98\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0008\u06d7" + + "\x0001\u0a99\x0011\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000B\u06d7\x0001\u0a9a" + + "\x000E\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000F\u06d7\x0001\u0a9b\x000A\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000D\u06d7\x0001\u0a9c\x000C\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x000A\u06d7\x0001\u0a9d\x000F\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0004\u06d7\x0001\u0969\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0008\u06d7\x0001\u0a9e\x0011\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x000A\u06d7\x0001\u08bc\x000F\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7" + + "\x0001\u0a9f\x0012\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u096f" + + "\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0005\u06d7\x0001\u0aa0\x0014\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0009\u06d7\x0001\u0aa1\x0010\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0aa2\x0012\u06d7\x0001\u0781\x0001\u0aa3" + + "\x0009\u06d7\x00A9\x0000\x0001\u0780\x0008\u06d7\x0001\u0aa4\x0004\u06d7\x0001\u0aa5\x0005\u06d7" + + "\x0001\u0aa6\x0006\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u0aa7" + + "\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0aa8\x0012\u06d7" + + "\x0001\u0781\x0008\u06d7\x0001\u0aa9\x0001\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0aaa" + + "\x0012\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0aab\x0012\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0005\u06d7\x0001\u0aac" + + "\x0004\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0aad\x0012\u06d7\x0001\u0781\x0008\u06d7" + + "\x0001\u0aae\x0001\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0005\u06d7\x0001\u0aaf" + + "\x0004\u06d7\x00A9\x0000\x0001\u0780\x000B\u06d7\x0001\u0ab0\x000E\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0ab1\x0012\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0016\u06d7\x0001\u0ab2\x0003\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0007\u06d7\x0001\u0aaf\x0002\u06d7\x00A9\x0000\x0001\u0780\x000D\u06d7" + + "\x0001\u0ab3\x000C\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781" + + "\x0008\u06d7\x0001\u0ab4\x0001\u0ab5\x00A9\x0000\x0001\u0780\x0006\u06d7\x0001\u0ab6\x0001\u0ab7" + + "\x0012\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u0ab8\x0016\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0004\u06d7\x0001\u0aaf" + + "\x0005\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0001\u06d7\x0001\u0ab9\x0008\u06d7" + + "\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0001\u06d7\x0001\u0aba\x0008\u06d7\x00A9\x0000" + + "\x0001\u0780\x000B\u06d7\x0001\u0abb\x000E\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0003\u06d7\x0001\u0abc\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0004\u06d7" + + "\x0001\u0a44\x0015\u06d7\x0001\u0781\x000A\u06d7\x00CF\x0000\x0001\u0978\x00A9\x0000\x0004\u0abd" + + "\x0002\x0000\x0001\u0abd\x000D\x0000\x0001\u0abd\x0006\x0000\x000A\u0abd\x0001\u0a60\x00A9\x0000" + + "\x0004\u0abe\x0002\x0000\x0001\u0abe\x000D\x0000\x0001\u0abe\x0006\x0000\x000A\u0abe\x0001\u0abf" + + "\x00A9\x0000\x0004\u0ac0\x0002\x0000\x0001\u0ac0\x000D\x0000\x0001\u0ac0\x0006\x0000\x000A\u0ac0" + + "\x0001\u0ac1\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0ac0\x0002\x0000\x0001\u0ac0" + + "\x000D\x0000\x0001\u0ac0\x0006\x0000\x000A\u0ac2\x0001\u0ac1\x000A\x0000\x0001\u078c\x009D\x0000" + + "\x0001\u0844\x0004\u0ac0\x0002\x0000\x0001\u0ac0\x000D\x0000\x0001\u0ac0\x0006\x0000\x000A\u0ac3" + + "\x0001\u0ac1\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0ac0\x0002\x0000\x0001\u0ac0" + + "\x000D\x0000\x0001\u0ac0\x0006\x0000\x0002\u0ac3\x0001\u0ac2\x0001\u0ac3\x0001\u0ac4\x0002\u0ac2" + + "\x0002\u0ac3\x0001\u0ac2\x0001\u0ac1\x000A\x0000\x0001\u078c\x009E\x0000\x0004\u0ac5\x0002\x0000" + + "\x0001\u0ac5\x000D\x0000\x0001\u0ac5\x0006\x0000\x000A\u0ac5\x0001\u09f1\x000A\x0000\x0001\u078c" + + "\x009D\x0000\x0001\u0844\x0004\u0ac5\x0002\x0000\x0001\u0ac5\x000D\x0000\x0001\u0ac5\x0006\x0000" + + "\x000A\u0ac5\x0001\u09f1\x000A\x0000\x0001\u078c\x00B9\x0000\x0001\u0ac6\x0001\u0ac7\x0005\u0ac6" + + "\x0001\u0ac8\x0001\u0ac7\x0001\u0ac6\x00A9\x0000\x0001\u0a67\x00CE\x0000\x0001\u0a67\x001B\x0000" + + "\x0002\u0a68\x0001\x0000\x0002\u0a68\x0002\x0000\x0002\u0a68\x00AB\x0000\x0004\u0ac9\x0002\x0000" + + "\x0001\u0ac9\x000D\x0000\x0001\u0ac9\x0006\x0000\x000A\u0ac9\x0001\u09fb\x00A8\x0000\x0001\u0301" + + "\x0004\u0ac9\x0002\x0000\x0001\u0ac9\x000D\x0000\x0001\u0ac9\x0006\x0000\x000A\u0ac9\x0001\u09fb" + + "\x00A9\x0000\x0004\u0aca\x0002\x0000\x0001\u0aca\x000D\x0000\x0001\u0aca\x0006\x0000\x000A\u0aca" + + "\x000B\x0000\x0001\u01f2\x00C3\x0000\x0001\u098a\x000A\x0000\x0001\u01f2\x0099\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0007\u0150\x0001\u0acb\x0002\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0017\u0150\x0001\u0225\x0002\u0150" + + "\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221" + + "\x001A\u0150\x0001\x009E\x0003\u0150\x0001\u0acc\x0006\u0150\x0001\x0000\x0003\x0074\x0001\x0000" + + "\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0007\u0150\x0001\u0162\x0002\u0150" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0003\u0150\x0001\u0acd" + + "\x0016\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000\x0004\u0ace\x0002\x0000" + + "\x0001\u0ace\x000D\x0000\x0001\u0ace\x0006\x0000\x000A\u0ace\x0001\u0a0a\x00A8\x0000\x0001\u0355" + + "\x0004\u0ace\x0002\x0000\x0001\u0ace\x000D\x0000\x0001\u0ace\x0006\x0000\x000A\u0ace\x0001\u0a0a" + + "\x00A9\x0000\x0004\u0acf\x0002\x0000\x0001\u0acf\x000D\x0000\x0001\u0acf\x0006\x0000\x000A\u0acf" + + "\x000B\x0000\x0001\u025e\x00C3\x0000\x0001\u09a1\x000A\x0000\x0001\u025e\x009D\x0000\x0001\u0181" + + "\x0014\x00E0\x0001\u0ad0\x0005\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0006\x00E0\x0001\u0ad1\x0003\x00E0\x00A9\x0000\x0001\u0181\x0001\x00E0\x0001\u0365" + + "\x0018\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0002\x00E0\x0001\u0ad2\x0017\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0\x0001\u0ad3\x0016\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0\x0001\u0ad4\x0016\x00E0\x0001\u0182\x000A\x00E0" + + "\x00A5\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0007\u010b\x0001\u0ad5\x0012\u010b\x0001\x008C" + + "\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0ad6" + + "\x0019\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x001A\u010b\x0001\x008C\x0001\u010b\x0001\u06bf\x0008\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0097\x0000\x0004\u0ad7\x0002\x0000\x0001\u0ad7\x000D\x0000\x0001\u0ad7\x0006\x0000\x000A\u0ad7" + + "\x0001\u0a23\x00A9\x0000\x0004\u0ad8\x0002\x0000\x0001\u0ad8\x000D\x0000\x0001\u0ad8\x0006\x0000" + + "\x000A\u0ad8\x0001\u0ad9\x00A9\x0000\x0004\u0ada\x0002\x0000\x0001\u0ada\x000D\x0000\x0001\u0ada" + + "\x0006\x0000\x0001\u0adb\x0001\u0adc\x0005\u0adb\x0001\u0add\x0001\u0adc\x0001\u0adb\x000B\x0000" + + "\x0001\u076f\x009E\x0000\x0004\u0ade\x0002\x0000\x0001\u0ade\x000D\x0000\x0001\u0ade\x0006\x0000" + + "\x000A\u0ade\x0001\u0a84\x000A\x0000\x0001\u076f\x009E\x0000\x0004\u0ada\x0002\x0000\x0001\u0ada" + + "\x000D\x0000\x0001\u0ada\x0006\x0000\x0001\u0adb\x0001\u0adc\x0005\u0adb\x0001\u0add\x0001\u0adc" + + "\x0001\u0adb\x00A9\x0000\x0001\u080c\x0004\u0ade\x0002\x0000\x0001\u0ade\x000D\x0000\x0001\u0ade" + + "\x0006\x0000\x000A\u0ade\x0001\u0a84\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0ade" + + "\x0002\x0000\x0001\u0ade\x000D\x0000\x0001\u0ade\x0006\x0000\x000A\u0adf\x0001\u0a84\x000A\x0000" + + "\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0ade\x0002\x0000\x0001\u0ade\x000D\x0000\x0001\u0ade" + + "\x0006\x0000\x0002\u0adf\x0001\u0ade\x0002\u0adf\x0002\u0ade\x0002\u0adf\x0001\u0ade\x0001\u0a84" + + "\x000A\x0000\x0001\u076f\x00C3\x0000\x0001\u09c0\x000A\x0000\x0001\u076f\x00B9\x0000\x000A\u0ae0" + + "\x000B\x0000\x0001\u076f\x00B9\x0000\x000A\u0a89\x000B\x0000\x0001\u076f\x00B9\x0000\x0002\u0a89" + + "\x0001\u0ae0\x0001\u0a89\x0001\u0ae1\x0002\u0ae0\x0002\u0a89\x0001\u0ae0\x000B\x0000\x0001\u076f" + + "\x00C3\x0000\x0001\u09cb\x00A9\x0000\x0004\u0ae2\x0002\x0000\x0001\u0ae2\x000D\x0000\x0001\u0ae2" + + "\x0006\x0000\x000A\u0ae2\x0001\u0a8e\x00A9\x0000\x0004\u0ae3\x0002\x0000\x0001\u0ae3\x000D\x0000" + + "\x0001\u0ae3\x0006\x0000\x000A\u0ae3\x0001\u0ae4\x00A9\x0000\x0004\u0ae5\x0002\x0000\x0001\u0ae5" + + "\x000D\x0000\x0001\u0ae5\x0006\x0000\x000A\u0ae5\x0001\u0ae6\x000A\x0000\x0001\u06d6\x009D\x0000" + + "\x0001\u077c\x0004\u0ae5\x0002\x0000\x0001\u0ae5\x000D\x0000\x0001\u0ae5\x0006\x0000\x000A\u0ae7" + + "\x0001\u0ae6\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0ae5\x0002\x0000\x0001\u0ae5" + + "\x000D\x0000\x0001\u0ae5\x0006\x0000\x000A\u0ae8\x0001\u0ae6\x000A\x0000\x0001\u06d6\x009D\x0000" + + "\x0001\u077c\x0004\u0ae5\x0002\x0000\x0001\u0ae5\x000D\x0000\x0001\u0ae5\x0006\x0000\x0002\u0ae8" + + "\x0001\u0ae7\x0001\u0ae8\x0001\u0ae9\x0002\u0ae7\x0002\u0ae8\x0001\u0ae7\x0001\u0ae6\x000A\x0000" + + "\x0001\u06d6\x009E\x0000\x0004\u0aea\x0002\x0000\x0001\u0aea\x000D\x0000\x0001\u0aea\x0006\x0000" + + "\x000A\u0aea\x0001\u0a31\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0aea\x0002\x0000" + + "\x0001\u0aea\x000D\x0000\x0001\u0aea\x0006\x0000\x000A\u0aea\x0001\u0a31\x000A\x0000\x0001\u06d6" + + "\x00CE\x0000\x0001\u06d6\x00B9\x0000\x0002\u0a95\x0001\x0000\x0002\u0a95\x0002\x0000\x0002\u0a95" + + "\x000C\x0000\x0001\u06d6\x009D\x0000\x0001\u0780\x0010\u06d7\x0001\u0aeb\x0009\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0aec\x0018\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x000B\u06d7\x0001\u08c8\x000E\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0002\u06d7\x0001\u096f\x0017\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0005\u06d7\x0001\u0a40\x0014\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0004\u06d7" + + "\x0001\u0aed\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u0aee" + + "\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u096f\x0018\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0004\u06d7\x0001\u0aef\x0015\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0009\u06d7\x0001\u0af0\x0010\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0af1\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0014\u06d7\x0001\u0af2\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0001\u06d7\x0001\u0af3\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000C\u06d7" + + "\x0001\u0af4\x000D\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0af5" + + "\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0af6\x0018\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0af7\x0018\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0014\u06d7\x0001\u0af8\x0005\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0001\u0af9\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0014\u06d7\x0001\u0afa\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0014\u06d7" + + "\x0001\u0afb\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0017\u06d7\x0001\u0afc" + + "\x0002\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0014\u06d7\x0001\u0afd\x0005\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0963\x0019\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0014\u06d7\x0001\u0af7\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0010\u06d7\x0001\u0afe\x0009\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0014\u06d7\x0001\u0aff\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7" + + "\x0001\u0b00\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0004\u06d7\x0001\u0b01" + + "\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0b02\x0019\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0011\u06d7\x0001\u0b03\x0008\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0004\u06d7\x0001\u0b04\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0014\u06d7\x0001\u0b05\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0001\u06d7\x0001\u0b06\x0008\u06d7\x00A9\x0000\x0001\u0780\x0001\u0b07" + + "\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0b08\x0019\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u096f\x0012\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x000B\u06d7\x0001\u08bc\x000E\u06d7\x0001\u0781\x000A\u06d7\x00AA\x0000" + + "\x0004\u0b09\x0002\x0000\x0001\u0b09\x000D\x0000\x0001\u0b09\x0006\x0000\x000A\u0b09\x0001\u0a60" + + "\x00A9\x0000\x0004\u0b0a\x0002\x0000\x0001\u0b0a\x000D\x0000\x0001\u0b0a\x0006\x0000\x000A\u0b0a" + + "\x0001\u0b0b\x00A9\x0000\x0004\u0b0c\x0002\x0000\x0001\u0b0c\x000D\x0000\x0001\u0b0c\x0006\x0000" + + "\x0001\u0b0d\x0001\u0b0e\x0005\u0b0d\x0001\u0b0f\x0001\u0b0e\x0001\u0b0d\x000B\x0000\x0001\u078c" + + "\x009E\x0000\x0004\u0b10\x0002\x0000\x0001\u0b10\x000D\x0000\x0001\u0b10\x0006\x0000\x000A\u0b10" + + "\x0001\u0ac1\x000A\x0000\x0001\u078c\x009E\x0000\x0004\u0b0c\x0002\x0000\x0001\u0b0c\x000D\x0000" + + "\x0001\u0b0c\x0006\x0000\x0001\u0b0d\x0001\u0b0e\x0005\u0b0d\x0001\u0b0f\x0001\u0b0e\x0001\u0b0d" + + "\x00A9\x0000\x0001\u0844\x0004\u0b10\x0002\x0000\x0001\u0b10\x000D\x0000\x0001\u0b10\x0006\x0000" + + "\x000A\u0b10\x0001\u0ac1\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0b10\x0002\x0000" + + "\x0001\u0b10\x000D\x0000\x0001\u0b10\x0006\x0000\x000A\u0b11\x0001\u0ac1\x000A\x0000\x0001\u078c" + + "\x009D\x0000\x0001\u0844\x0004\u0b10\x0002\x0000\x0001\u0b10\x000D\x0000\x0001\u0b10\x0006\x0000" + + "\x0002\u0b11\x0001\u0b10\x0002\u0b11\x0002\u0b10\x0002\u0b11\x0001\u0b10\x0001\u0ac1\x000A\x0000" + + "\x0001\u078c\x00C3\x0000\x0001\u09f1\x000A\x0000\x0001\u078c\x00B9\x0000\x000A\u0b12\x000B\x0000" + + "\x0001\u078c\x00B9\x0000\x000A\u0ac6\x000B\x0000\x0001\u078c\x00B9\x0000\x0002\u0ac6\x0001\u0b12" + + "\x0001\u0ac6\x0001\u0b13\x0002\u0b12\x0002\u0ac6\x0001\u0b12\x000B\x0000\x0001\u078c\x00C3\x0000" + + "\x0001\u09fb\x00A9\x0000\x0004\u0799\x0002\x0000\x0001\u0799\x000D\x0000\x0001\u0799\x0006\x0000" + + "\x000A\u0799\x000B\x0000\x0001\u01f2\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150" + + "\x0001\u0b14\x0012\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074" + + "\x0003\x0000\x0001\u0221\x0001\u0b15\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0001\u0150\x0001\u0713" + + "\x0008\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x00BC\x0000\x0001\u0a0a\x00A9\x0000\x0004\u07c5\x0002\x0000" + + "\x0001\u07c5\x000D\x0000\x0001\u07c5\x0006\x0000\x000A\u07c5\x000B\x0000\x0001\u025e\x009D\x0000" + + "\x0001\u0181\x001A\x00E0\x0001\u0182\x0007\x00E0\x0001\u0b16\x0002\x00E0\x00A9\x0000\x0001\u0181" + + "\x0017\x00E0\x0001\u0359\x0002\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0" + + "\x0001\u0182\x0003\x00E0\x0001\u0b17\x0006\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182" + + "\x0007\x00E0\x0001\u0272\x0002\x00E0\x00A9\x0000\x0001\u0181\x0003\x00E0\x0001\u0b18\x0016\x00E0" + + "\x0001\u0182\x000A\x00E0\x00A5\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C" + + "\x0007\u010b\x0001\u0b19\x0002\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076" + + "\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0004\u010b\x0001\u01b9\x0015\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x00BC\x0000\x0001\u0a23\x00A9\x0000\x0004\u0b1a\x0002\x0000\x0001\u0b1a\x000D\x0000\x0001\u0b1a" + + "\x0006\x0000\x000A\u0b1a\x0001\u0ad9\x00A9\x0000\x0004\u0b1b\x0002\x0000\x0001\u0b1b\x000D\x0000" + + "\x0001\u0b1b\x0006\x0000\x000A\u0b1b\x0001\u0b1c\x00A9\x0000\x0004\u0b1d\x0002\x0000\x0001\u0b1d" + + "\x000D\x0000\x0001\u0b1d\x0006\x0000\x000A\u0b1d\x0001\u0b1e\x000A\x0000\x0001\u076f\x009D\x0000" + + "\x0001\u080c\x0004\u0b1d\x0002\x0000\x0001\u0b1d\x000D\x0000\x0001\u0b1d\x0006\x0000\x000A\u0b1f" + + "\x0001\u0b1e\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0b1d\x0002\x0000\x0001\u0b1d" + + "\x000D\x0000\x0001\u0b1d\x0006\x0000\x000A\u0b20\x0001\u0b1e\x000A\x0000\x0001\u076f\x009D\x0000" + + "\x0001\u080c\x0004\u0b1d\x0002\x0000\x0001\u0b1d\x000D\x0000\x0001\u0b1d\x0006\x0000\x0002\u0b20" + + "\x0001\u0b1f\x0001\u0b20\x0001\u0b21\x0002\u0b1f\x0002\u0b20\x0001\u0b1f\x0001\u0b1e\x000A\x0000" + + "\x0001\u076f\x009E\x0000\x0004\u0b22\x0002\x0000\x0001\u0b22\x000D\x0000\x0001\u0b22\x0006\x0000" + + "\x000A\u0b22\x0001\u0a84\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0b22\x0002\x0000" + + "\x0001\u0b22\x000D\x0000\x0001\u0b22\x0006\x0000\x000A\u0b22\x0001\u0a84\x000A\x0000\x0001\u076f" + + "\x00CE\x0000\x0001\u076f\x00B9\x0000\x0002\u0ae0\x0001\x0000\x0002\u0ae0\x0002\x0000\x0002\u0ae0" + + "\x000C\x0000\x0001\u076f\x009E\x0000\x0004\u0b23\x0002\x0000\x0001\u0b23\x000D\x0000\x0001\u0b23" + + "\x0006\x0000\x000A\u0b23\x0001\u0a8e\x00A9\x0000\x0004\u0b24\x0002\x0000\x0001\u0b24\x000D\x0000" + + "\x0001\u0b24\x0006\x0000\x000A\u0b24\x0001\u0b25\x00A9\x0000\x0004\u0b26\x0002\x0000\x0001\u0b26" + + "\x000D\x0000\x0001\u0b26\x0006\x0000\x0001\u0b27\x0001\u0b28\x0005\u0b27\x0001\u0b29\x0001\u0b28" + + "\x0001\u0b27\x000B\x0000\x0001\u06d6\x009E\x0000\x0004\u0b2a\x0002\x0000\x0001\u0b2a\x000D\x0000" + + "\x0001\u0b2a\x0006\x0000\x000A\u0b2a\x0001\u0ae6\x000A\x0000\x0001\u06d6\x009E\x0000\x0004\u0b26" + + "\x0002\x0000\x0001\u0b26\x000D\x0000\x0001\u0b26\x0006\x0000\x0001\u0b27\x0001\u0b28\x0005\u0b27" + + "\x0001\u0b29\x0001\u0b28\x0001\u0b27\x00A9\x0000\x0001\u077c\x0004\u0b2a\x0002\x0000\x0001\u0b2a" + + "\x000D\x0000\x0001\u0b2a\x0006\x0000\x000A\u0b2a\x0001\u0ae6\x000A\x0000\x0001\u06d6\x009D\x0000" + + "\x0001\u077c\x0004\u0b2a\x0002\x0000\x0001\u0b2a\x000D\x0000\x0001\u0b2a\x0006\x0000\x000A\u0b2b" + + "\x0001\u0ae6\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0b2a\x0002\x0000\x0001\u0b2a" + + "\x000D\x0000\x0001\u0b2a\x0006\x0000\x0002\u0b2b\x0001\u0b2a\x0002\u0b2b\x0002\u0b2a\x0002\u0b2b" + + "\x0001\u0b2a\x0001\u0ae6\x000A\x0000\x0001\u06d6\x00C3\x0000\x0001\u0a31\x000A\x0000\x0001\u06d6" + + "\x009D\x0000\x0001\u0780\x0001\u06d7\x0001\u0b2c\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x000F\u06d7\x0001\u0b2d\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0008\u06d7\x0001\u0b2e\x0011\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000B\u06d7" + + "\x0001\u0966\x000E\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0b2f\x0019\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0005\u06d7\x0001\u0b30\x0014\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0015\u06d7\x0001\u0b31\x0004\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x000D\u06d7\x0001\u0b32\x000C\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0011\u06d7\x0001\u0b33\x0008\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x000E\u06d7\x0001\u0b34\x0004\u06d7\x0001\u0b35\x0006\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0004\u06d7\x0001\u0b36\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0007\u06d7\x0001\u0b37\x0002\u06d7\x00A9\x0000\x0001\u0780\x0004\u06d7" + + "\x0001\u0b38\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0014\u06d7\x0001\u0b39" + + "\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0b3a\x0018\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0b3b\x0001\u0b3c\x0001\u06d7\x0001\u0b3d" + + "\x000E\u06d7\x0001\u0b3e\x0001\u06d7\x0001\u0b3f\x0005\u06d7\x0001\u0781\x0005\u06d7\x0001\u0b40" + + "\x0004\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0b41\x0018\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0019\u06d7\x0001\u0b42\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x000E\u06d7\x0001\u0b43\x000B\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000D\u06d7" + + "\x0001\u0b44\x000C\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0009\u06d7\x0001\u0b45" + + "\x000B\u06d7\x0001\u0b46\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7" + + "\x0001\u0781\x0007\u06d7\x0001\u0b47\x0002\u06d7\x00A9\x0000\x0001\u0780\x0011\u06d7\x0001\u0b48" + + "\x0007\u06d7\x0001\u0b49\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000A\u06d7\x0001\u0b4a" + + "\x000F\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0008\u06d7" + + "\x0001\u0b4b\x0001\u06d7\x00A9\x0000\x0001\u0780\x0005\u06d7\x0001\u0b4c\x0014\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0008\u06d7\x0001\u0b4d\x0011\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0014\u06d7\x0001\u0b4e\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x001A\u06d7\x0001\u0781\x0001\u0b4f\x0009\u06d7\x00A9\x0000\x0001\u0780\x0005\u06d7" + + "\x0001\u0b50\x0008\u06d7\x0001\u0b51\x000B\u06d7\x0001\u0781\x000A\u06d7\x00CF\x0000\x0001\u0a60" + + "\x00A9\x0000\x0004\u0b52\x0002\x0000\x0001\u0b52\x000D\x0000\x0001\u0b52\x0006\x0000\x000A\u0b52" + + "\x0001\u0b0b\x00A9\x0000\x0004\u0b53\x0002\x0000\x0001\u0b53\x000D\x0000\x0001\u0b53\x0006\x0000" + + "\x000A\u0b53\x0001\u0b54\x00A9\x0000\x0004\u0b55\x0002\x0000\x0001\u0b55\x000D\x0000\x0001\u0b55" + + "\x0006\x0000\x000A\u0b55\x0001\u0b56\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0b55" + + "\x0002\x0000\x0001\u0b55\x000D\x0000\x0001\u0b55\x0006\x0000\x000A\u0b57\x0001\u0b56\x000A\x0000" + + "\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0b55\x0002\x0000\x0001\u0b55\x000D\x0000\x0001\u0b55" + + "\x0006\x0000\x000A\u0b58\x0001\u0b56\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0b55" + + "\x0002\x0000\x0001\u0b55\x000D\x0000\x0001\u0b55\x0006\x0000\x0002\u0b58\x0001\u0b57\x0001\u0b58" + + "\x0001\u0b59\x0002\u0b57\x0002\u0b58\x0001\u0b57\x0001\u0b56\x000A\x0000\x0001\u078c\x009E\x0000" + + "\x0004\u0b5a\x0002\x0000\x0001\u0b5a\x000D\x0000\x0001\u0b5a\x0006\x0000\x000A\u0b5a\x0001\u0ac1" + + "\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0b5a\x0002\x0000\x0001\u0b5a\x000D\x0000" + + "\x0001\u0b5a\x0006\x0000\x000A\u0b5a\x0001\u0ac1\x000A\x0000\x0001\u078c\x00CE\x0000\x0001\u078c" + + "\x00B9\x0000\x0002\u0b12\x0001\x0000\x0002\u0b12\x0002\x0000\x0002\u0b12\x000C\x0000\x0001\u078c" + + "\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0007\u0150\x0001\u0b5b" + + "\x0002\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0092\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0004\u0150" + + "\x0001\u0225\x0015\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0096\x0000\x0001\u0181" + + "\x0007\x00E0\x0001\u0b5c\x0012\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x0001\u0b5d" + + "\x0019\x00E0\x0001\u0182\x000A\x00E0\x00A9\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0001\x00E0" + + "\x0001\u07e5\x0008\x00E0\x00A5\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0001\u0b5e\x0019\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000\x0004\u0b5f\x0002\x0000\x0001\u0b5f" + + "\x000D\x0000\x0001\u0b5f\x0006\x0000\x000A\u0b5f\x0001\u0ad9\x00A9\x0000\x0004\u0b60\x0002\x0000" + + "\x0001\u0b60\x000D\x0000\x0001\u0b60\x0006\x0000\x000A\u0b60\x0001\u0b61\x00A9\x0000\x0004\u0b62" + + "\x0002\x0000\x0001\u0b62\x000D\x0000\x0001\u0b62\x0006\x0000\x0001\u0b63\x0001\u0b64\x0005\u0b63" + + "\x0001\u0b65\x0001\u0b64\x0001\u0b63\x000B\x0000\x0001\u076f\x009E\x0000\x0004\u0b66\x0002\x0000" + + "\x0001\u0b66\x000D\x0000\x0001\u0b66\x0006\x0000\x000A\u0b66\x0001\u0b1e\x000A\x0000\x0001\u076f" + + "\x009E\x0000\x0004\u0b62\x0002\x0000\x0001\u0b62\x000D\x0000\x0001\u0b62\x0006\x0000\x0001\u0b63" + + "\x0001\u0b64\x0005\u0b63\x0001\u0b65\x0001\u0b64\x0001\u0b63\x00A9\x0000\x0001\u080c\x0004\u0b66" + + "\x0002\x0000\x0001\u0b66\x000D\x0000\x0001\u0b66\x0006\x0000\x000A\u0b66\x0001\u0b1e\x000A\x0000" + + "\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0b66\x0002\x0000\x0001\u0b66\x000D\x0000\x0001\u0b66" + + "\x0006\x0000\x000A\u0b67\x0001\u0b1e\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0b66" + + "\x0002\x0000\x0001\u0b66\x000D\x0000\x0001\u0b66\x0006\x0000\x0002\u0b67\x0001\u0b66\x0002\u0b67" + + "\x0002\u0b66\x0002\u0b67\x0001\u0b66\x0001\u0b1e\x000A\x0000\x0001\u076f\x00C3\x0000\x0001\u0a84" + + "\x000A\x0000\x0001\u076f\x00C3\x0000\x0001\u0a8e\x00A9\x0000\x0004\u0b68\x0002\x0000\x0001\u0b68" + + "\x000D\x0000\x0001\u0b68\x0006\x0000\x000A\u0b68\x0001\u0b25\x00A9\x0000\x0004\u0b69\x0002\x0000" + + "\x0001\u0b69\x000D\x0000\x0001\u0b69\x0006\x0000\x0001\u0b6a\x0001\u0b6b\x0005\u0b6a\x0001\u0b6c" + + "\x0001\u0b6b\x0001\u0b6a\x0001\u0b6d\x00A9\x0000\x0004\u0b6e\x0002\x0000\x0001\u0b6e\x000D\x0000" + + "\x0001\u0b6e\x0006\x0000\x000A\u0b6e\x0001\u0b6f\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c" + + "\x0004\u0b6e\x0002\x0000\x0001\u0b6e\x000D\x0000\x0001\u0b6e\x0006\x0000\x000A\u0b70\x0001\u0b6f" + + "\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0b6e\x0002\x0000\x0001\u0b6e\x000D\x0000" + + "\x0001\u0b6e\x0006\x0000\x000A\u0b71\x0001\u0b6f\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c" + + "\x0004\u0b6e\x0002\x0000\x0001\u0b6e\x000D\x0000\x0001\u0b6e\x0006\x0000\x0002\u0b71\x0001\u0b70" + + "\x0001\u0b71\x0001\u0b72\x0002\u0b70\x0002\u0b71\x0001\u0b70\x0001\u0b6f\x000A\x0000\x0001\u06d6" + + "\x009E\x0000\x0004\u0b73\x0002\x0000\x0001\u0b73\x000D\x0000\x0001\u0b73\x0006\x0000\x000A\u0b73" + + "\x0001\u0ae6\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0b73\x0002\x0000\x0001\u0b73" + + "\x000D\x0000\x0001\u0b73\x0006\x0000\x000A\u0b73\x0001\u0ae6\x000A\x0000\x0001\u06d6\x009D\x0000" + + "\x0001\u0780\x000F\u06d7\x0001\u0b74\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0005\u06d7\x0001\u0b75\x0014\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000E\u06d7" + + "\x0001\u0a44\x000B\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x000D\u06d7\x0001\u0b76" + + "\x000C\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0969\x0012\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0b77\x0018\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0006\u06d7\x0001\u0b78\x0013\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0003\u06d7\x0001\u0b4a\x0006\u06d7\x00A9\x0000" + + "\x0001\u0780\x001A\u06d7\x0001\u0781\x0006\u06d7\x0001\u096f\x0003\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0005\u06d7\x0001\u096f\x0004\u06d7\x00A9\x0000\x0001\u0780\x0017\u06d7" + + "\x0001\u0b79\x0002\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0b7a" + + "\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0017\u06d7\x0001\u0b7b\x0002\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0b7c\x0019\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u08bc\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0001\u0b7d\x0018\u06d7\x0001\u0b7e\x0001\u0781\x0001\u0b7f\x0009\u06d7\x00A9\x0000" + + "\x0001\u0780\x001A\u06d7\x0001\u0781\x0001\u06d7\x0001\u0b80\x0008\u06d7\x00A9\x0000\x0001\u0780" + + "\x0004\u06d7\x0001\u0b81\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7" + + "\x0001\u0781\x0003\u06d7\x0001\u0b82\x0006\u06d7\x00A9\x0000\x0001\u0780\x0015\u06d7\x0001\u0b83" + + "\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0b84\x0019\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0004\u06d7\x0001\u0b85\x0005\u06d7" + + "\x00A9\x0000\x0001\u0780\x0014\u06d7\x0001\u0b86\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x001A\u06d7\x0001\u0781\x0001\u06d7\x0001\u0b87\x0008\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0003\u06d7\x0001\u0969\x0006\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7" + + "\x0001\u0781\x0009\u06d7\x0001\u082c\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0008\u06d7" + + "\x0001\u0b3a\x0001\u06d7\x00A9\x0000\x0001\u0780\x0001\u0b88\x0001\u06d7\x0001\u0b89\x0017\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0008\u06d7\x0001\u0b8a" + + "\x0001\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0004\u06d7\x0001\u0b8b\x0005\u06d7" + + "\x00A9\x0000\x0001\u0780\x0015\u06d7\x0001\u08bc\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x001A\u06d7\x0001\u0781\x0005\u06d7\x0001\u0b8c\x0004\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0003\u06d7\x0001\u0b8d\x0006\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7" + + "\x0001\u0781\x0007\u06d7\x0001\u0b8e\x0002\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781" + + "\x0002\u06d7\x0001\u0b8f\x0007\u06d7\x00A9\x0000\x0001\u0780\x0001\u0b3a\x0019\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0007\u06d7\x0001\u0b90\x0002\u06d7" + + "\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u0b91\x000D\u06d7\x0001\u08c8\x0008\u06d7\x0001\u0781" + + "\x000A\u06d7\x00AA\x0000\x0004\u0b92\x0002\x0000\x0001\u0b92\x000D\x0000\x0001\u0b92\x0006\x0000" + + "\x000A\u0b92\x0001\u0b0b\x00A9\x0000\x0004\u0b93\x0002\x0000\x0001\u0b93\x000D\x0000\x0001\u0b93" + + "\x0006\x0000\x000A\u0b93\x0001\u0b94\x00A9\x0000\x0004\u0b95\x0002\x0000\x0001\u0b95\x000D\x0000" + + "\x0001\u0b95\x0006\x0000\x0001\u0b96\x0001\u0b97\x0005\u0b96\x0001\u0b98\x0001\u0b97\x0001\u0b96" + + "\x000B\x0000\x0001\u078c\x009E\x0000\x0004\u0b99\x0002\x0000\x0001\u0b99\x000D\x0000\x0001\u0b99" + + "\x0006\x0000\x000A\u0b99\x0001\u0b56\x000A\x0000\x0001\u078c\x009E\x0000\x0004\u0b95\x0002\x0000" + + "\x0001\u0b95\x000D\x0000\x0001\u0b95\x0006\x0000\x0001\u0b96\x0001\u0b97\x0005\u0b96\x0001\u0b98" + + "\x0001\u0b97\x0001\u0b96\x00A9\x0000\x0001\u0844\x0004\u0b99\x0002\x0000\x0001\u0b99\x000D\x0000" + + "\x0001\u0b99\x0006\x0000\x000A\u0b99\x0001\u0b56\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844" + + "\x0004\u0b99\x0002\x0000\x0001\u0b99\x000D\x0000\x0001\u0b99\x0006\x0000\x000A\u0b9a\x0001\u0b56" + + "\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0b99\x0002\x0000\x0001\u0b99\x000D\x0000" + + "\x0001\u0b99\x0006\x0000\x0002\u0b9a\x0001\u0b99\x0002\u0b9a\x0002\u0b99\x0002\u0b9a\x0001\u0b99" + + "\x0001\u0b56\x000A\x0000\x0001\u078c\x00C3\x0000\x0001\u0ac1\x000A\x0000\x0001\u078c\x0099\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0b9b\x0019\u0150\x0001\x009E\x000A\u0150\x0001\x0000" + + "\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000" + + "\x0002\x0074\x0096\x0000\x0001\u0181\x001A\x00E0\x0001\u0182\x0007\x00E0\x0001\u0b9c\x0002\x00E0" + + "\x00A9\x0000\x0001\u0181\x0004\x00E0\x0001\u0359\x0015\x00E0\x0001\u0182\x000A\x00E0\x00A5\x0000" + + "\x0001\x0074\x0003\x0000\x0001\u01b3\x001A\u010b\x0001\x008C\x0005\u010b\x0001\u0b9d\x0004\u010b" + + "\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074" + + "\x0003\x0000\x0002\x0074\x00BC\x0000\x0001\u0ad9\x00A9\x0000\x0004\u0b9e\x0002\x0000\x0001\u0b9e" + + "\x000D\x0000\x0001\u0b9e\x0006\x0000\x000A\u0b9e\x0001\u0b61\x00A9\x0000\x0004\u0b9f\x0002\x0000" + + "\x0001\u0b9f\x000D\x0000\x0001\u0b9f\x0006\x0000\x0001\u0ba0\x0001\u0ba1\x0005\u0ba0\x0001\u0ba2" + + "\x0001\u0ba1\x0001\u0ba0\x0001\u0ba3\x00A9\x0000\x0004\u0ba4\x0002\x0000\x0001\u0ba4\x000D\x0000" + + "\x0001\u0ba4\x0006\x0000\x000A\u0ba4\x0001\u0ba5\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c" + + "\x0004\u0ba4\x0002\x0000\x0001\u0ba4\x000D\x0000\x0001\u0ba4\x0006\x0000\x000A\u0ba6\x0001\u0ba5" + + "\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0ba4\x0002\x0000\x0001\u0ba4\x000D\x0000" + + "\x0001\u0ba4\x0006\x0000\x000A\u0ba7\x0001\u0ba5\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c" + + "\x0004\u0ba4\x0002\x0000\x0001\u0ba4\x000D\x0000\x0001\u0ba4\x0006\x0000\x0002\u0ba7\x0001\u0ba6" + + "\x0001\u0ba7\x0001\u0ba8\x0002\u0ba6\x0002\u0ba7\x0001\u0ba6\x0001\u0ba5\x000A\x0000\x0001\u076f" + + "\x009E\x0000\x0004\u0ba9\x0002\x0000\x0001\u0ba9\x000D\x0000\x0001\u0ba9\x0006\x0000\x000A\u0ba9" + + "\x0001\u0b1e\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0ba9\x0002\x0000\x0001\u0ba9" + + "\x000D\x0000\x0001\u0ba9\x0006\x0000\x000A\u0ba9\x0001\u0b1e\x000A\x0000\x0001\u076f\x009E\x0000" + + "\x0004\u0baa\x0002\x0000\x0001\u0baa\x000D\x0000\x0001\u0baa\x0006\x0000\x000A\u0baa\x0001\u0b25" + + "\x00A9\x0000\x0004\u0bab\x0002\x0000\x0001\u0bab\x000D\x0000\x0001\u0bab\x0006\x0000\x000A\u0bab" + + "\x0001\u0bac\x00A8\x0000\x0001\u077c\x0004\u0bab\x0002\x0000\x0001\u0bab\x000D\x0000\x0001\u0bab" + + "\x0006\x0000\x000A\u0bad\x0001\u0bac\x00A8\x0000\x0001\u077c\x0004\u0bab\x0002\x0000\x0001\u0bab" + + "\x000D\x0000\x0001\u0bab\x0006\x0000\x000A\u0bae\x0001\u0bac\x00A8\x0000\x0001\u077c\x0004\u0bab" + + "\x0002\x0000\x0001\u0bab\x000D\x0000\x0001\u0bab\x0006\x0000\x0002\u0bae\x0001\u0bad\x0001\u0bae" + + "\x0001\u0baf\x0002\u0bad\x0002\u0bae\x0001\u0bad\x0001\u0bac\x00A9\x0000\x0004\u0bb0\x0002\x0000" + + "\x0001\u0bb0\x000D\x0000\x0001\u0bb0\x0006\x0000\x000A\u0bb0\x000B\x0000\x0001\u06d6\x009E\x0000" + + "\x0004\u0bb1\x0002\x0000\x0001\u0bb1\x000D\x0000\x0001\u0bb1\x0006\x0000\x000A\u0bb1\x0001\u0b6f" + + "\x000A\x0000\x0001\u06d6\x009E\x0000\x0004\u0bb0\x0002\x0000\x0001\u0bb0\x000D\x0000\x0001\u0bb0" + + "\x0006\x0000\x000A\u0bb0\x00A9\x0000\x0001\u077c\x0004\u0bb1\x0002\x0000\x0001\u0bb1\x000D\x0000" + + "\x0001\u0bb1\x0006\x0000\x000A\u0bb1\x0001\u0b6f\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c" + + "\x0004\u0bb1\x0002\x0000\x0001\u0bb1\x000D\x0000\x0001\u0bb1\x0006\x0000\x000A\u0bb2\x0001\u0b6f" + + "\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u077c\x0004\u0bb1\x0002\x0000\x0001\u0bb1\x000D\x0000" + + "\x0001\u0bb1\x0006\x0000\x0002\u0bb2\x0001\u0bb1\x0002\u0bb2\x0002\u0bb1\x0002\u0bb2\x0001\u0bb1" + + "\x0001\u0b6f\x000A\x0000\x0001\u06d6\x00C3\x0000\x0001\u0ae6\x000A\x0000\x0001\u06d6\x009D\x0000" + + "\x0001\u0780\x0008\u06d7\x0001\u0bb3\x0011\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0004\u06d7\x0001\u096f\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0015\u06d7" + + "\x0001\u0969\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781" + + "\x0001\u06d7\x0001\u0bb4\x0008\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0006\u06d7" + + "\x0001\u0bb5\x0003\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0005\u06d7\x0001\u0bb6" + + "\x0004\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0005\u06d7\x0001\u0bb7\x0004\u06d7" + + "\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0005\u06d7\x0001\u0b3a\x0004\u06d7\x00A9\x0000" + + "\x0001\u0780\x000F\u06d7\x0001\u0bb8\x000A\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x000A\u06d7\x0001\u0bb9\x000F\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0015\u06d7" + + "\x0001\u0bba\x0004\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0bbb\x0019\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0bbc\x0019\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x000D\u06d7\x0001\u0bbd\x000C\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0001\u06d7\x0001\u0bbe\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0008\u06d7\x0001\u0bbf\x0001\u06d7\x00A9\x0000\x0001\u0780\x0011\u06d7" + + "\x0001\u0bc0\x0008\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0bc1\x0019\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0003\u06d7\x0001\u0b3a" + + "\x0006\u06d7\x00A9\x0000\x0001\u0780\x0002\u06d7\x0001\u0b4a\x0017\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0009\u06d7\x0001\u0bc2\x0010\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x0009\u06d7\x0001\u0bc3\x0010\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0001\u0961\x0009\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781" + + "\x0002\u06d7\x0001\u0961\x0007\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0001\u08c8" + + "\x0009\u06d7\x00A9\x0000\x0001\u0780\x0008\u06d7\x0001\u0bc4\x0011\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0001\u0bc5\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0001\u06d7\x0001\u0bc6\x0008\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7" + + "\x0001\u0781\x0008\u06d7\x0001\u082c\x0001\u06d7\x00A9\x0000\x0001\u0780\x0015\u06d7\x0001\u0bc7" + + "\x0004\u06d7\x0001\u0781\x000A\u06d7\x00CF\x0000\x0001\u0b0b\x00A9\x0000\x0004\u0bc8\x0002\x0000" + + "\x0001\u0bc8\x000D\x0000\x0001\u0bc8\x0006\x0000\x000A\u0bc8\x0001\u0b94\x00A9\x0000\x0004\u0bc9" + + "\x0002\x0000\x0001\u0bc9\x000D\x0000\x0001\u0bc9\x0006\x0000\x0001\u0bca\x0001\u0bcb\x0005\u0bca" + + "\x0001\u0bcc\x0001\u0bcb\x0001\u0bca\x0001\u0bcd\x00A9\x0000\x0004\u0bce\x0002\x0000\x0001\u0bce" + + "\x000D\x0000\x0001\u0bce\x0006\x0000\x000A\u0bce\x0001\u0bcf\x000A\x0000\x0001\u078c\x009D\x0000" + + "\x0001\u0844\x0004\u0bce\x0002\x0000\x0001\u0bce\x000D\x0000\x0001\u0bce\x0006\x0000\x000A\u0bd0" + + "\x0001\u0bcf\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0bce\x0002\x0000\x0001\u0bce" + + "\x000D\x0000\x0001\u0bce\x0006\x0000\x000A\u0bd1\x0001\u0bcf\x000A\x0000\x0001\u078c\x009D\x0000" + + "\x0001\u0844\x0004\u0bce\x0002\x0000\x0001\u0bce\x000D\x0000\x0001\u0bce\x0006\x0000\x0002\u0bd1" + + "\x0001\u0bd0\x0001\u0bd1\x0001\u0bd2\x0002\u0bd0\x0002\u0bd1\x0001\u0bd0\x0001\u0bcf\x000A\x0000" + + "\x0001\u078c\x009E\x0000\x0004\u0bd3\x0002\x0000\x0001\u0bd3\x000D\x0000\x0001\u0bd3\x0006\x0000" + + "\x000A\u0bd3\x0001\u0b56\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0bd3\x0002\x0000" + + "\x0001\u0bd3\x000D\x0000\x0001\u0bd3\x0006\x0000\x000A\u0bd3\x0001\u0b56\x000A\x0000\x0001\u078c" + + "\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x001A\u0150\x0001\x009E\x0005\u0150\x0001\u0bd4" + + "\x0004\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000" + + "\x0001\x0074\x0003\x0000\x0002\x0074\x0096\x0000\x0001\u0181\x0001\u0bd5\x0019\x00E0\x0001\u0182" + + "\x000A\x00E0\x00A5\x0000\x0001\x0074\x0003\x0000\x0001\u01b3\x0007\u010b\x0001\u0bd6\x0012\u010b" + + "\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074" + + "\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0097\x0000\x0004\u0bd7\x0002\x0000\x0001\u0bd7" + + "\x000D\x0000\x0001\u0bd7\x0006\x0000\x000A\u0bd7\x0001\u0b61\x00A9\x0000\x0004\u0bd8\x0002\x0000" + + "\x0001\u0bd8\x000D\x0000\x0001\u0bd8\x0006\x0000\x000A\u0bd8\x0001\u0bd9\x00A8\x0000\x0001\u080c" + + "\x0004\u0bd8\x0002\x0000\x0001\u0bd8\x000D\x0000\x0001\u0bd8\x0006\x0000\x000A\u0bda\x0001\u0bd9" + + "\x00A8\x0000\x0001\u080c\x0004\u0bd8\x0002\x0000\x0001\u0bd8\x000D\x0000\x0001\u0bd8\x0006\x0000" + + "\x000A\u0bdb\x0001\u0bd9\x00A8\x0000\x0001\u080c\x0004\u0bd8\x0002\x0000\x0001\u0bd8\x000D\x0000" + + "\x0001\u0bd8\x0006\x0000\x0002\u0bdb\x0001\u0bda\x0001\u0bdb\x0001\u0bdc\x0002\u0bda\x0002\u0bdb" + + "\x0001\u0bda\x0001\u0bd9\x00A9\x0000\x0004\u0bdd\x0002\x0000\x0001\u0bdd\x000D\x0000\x0001\u0bdd" + + "\x0006\x0000\x000A\u0bdd\x000B\x0000\x0001\u076f\x009E\x0000\x0004\u0bde\x0002\x0000\x0001\u0bde" + + "\x000D\x0000\x0001\u0bde\x0006\x0000\x000A\u0bde\x0001\u0ba5\x000A\x0000\x0001\u076f\x009E\x0000" + + "\x0004\u0bdd\x0002\x0000\x0001\u0bdd\x000D\x0000\x0001\u0bdd\x0006\x0000\x000A\u0bdd\x00A9\x0000" + + "\x0001\u080c\x0004\u0bde\x0002\x0000\x0001\u0bde\x000D\x0000\x0001\u0bde\x0006\x0000\x000A\u0bde" + + "\x0001\u0ba5\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0bde\x0002\x0000\x0001\u0bde" + + "\x000D\x0000\x0001\u0bde\x0006\x0000\x000A\u0bdf\x0001\u0ba5\x000A\x0000\x0001\u076f\x009D\x0000" + + "\x0001\u080c\x0004\u0bde\x0002\x0000\x0001\u0bde\x000D\x0000\x0001\u0bde\x0006\x0000\x0002\u0bdf" + + "\x0001\u0bde\x0002\u0bdf\x0002\u0bde\x0002\u0bdf\x0001\u0bde\x0001\u0ba5\x000A\x0000\x0001\u076f" + + "\x00C3\x0000\x0001\u0b1e\x000A\x0000\x0001\u076f\x00C3\x0000\x0001\u0b25\x00A9\x0000\x0004\u0be0" + + "\x0002\x0000\x0001\u0be0\x000D\x0000\x0001\u0be0\x0006\x0000\x000A\u0be0\x0001\u0bac\x00A9\x0000" + + "\x0004\u0bb0\x0002\x0000\x0001\u0bb0\x000D\x0000\x0001\u0bb0\x0006\x0000\x000A\u0bb0\x0001\u0a95" + + "\x00A8\x0000\x0001\u077c\x0004\u0be0\x0002\x0000\x0001\u0be0\x000D\x0000\x0001\u0be0\x0006\x0000" + + "\x000A\u0be0\x0001\u0bac\x00A8\x0000\x0001\u077c\x0004\u0be0\x0002\x0000\x0001\u0be0\x000D\x0000" + + "\x0001\u0be0\x0006\x0000\x000A\u0be1\x0001\u0bac\x00A8\x0000\x0001\u077c\x0004\u0be0\x0002\x0000" + + "\x0001\u0be0\x000D\x0000\x0001\u0be0\x0006\x0000\x0002\u0be1\x0001\u0be0\x0002\u0be1\x0002\u0be0" + + "\x0002\u0be1\x0001\u0be0\x0001\u0bac\x00A9\x0000\x0004\u0be2\x0002\x0000\x0001\u0be2\x000D\x0000" + + "\x0001\u0be2\x0006\x0000\x000A\u0be2\x000B\x0000\x0001\u06d6\x009E\x0000\x0004\u0be3\x0002\x0000" + + "\x0001\u0be3\x000D\x0000\x0001\u0be3\x0006\x0000\x000A\u0be3\x0001\u0b6f\x000A\x0000\x0001\u06d6" + + "\x009D\x0000\x0001\u077c\x0004\u0be3\x0002\x0000\x0001\u0be3\x000D\x0000\x0001\u0be3\x0006\x0000" + + "\x000A\u0be3\x0001\u0b6f\x000A\x0000\x0001\u06d6\x009D\x0000\x0001\u0780\x0005\u06d7\x0001\u0abc" + + "\x0014\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u0be4\x0016\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0006\u06d7\x0001\u08d2\x0013\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0b8a\x0018\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u0be5\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x001A\u06d7\x0001\u0781\x0008\u06d7\x0001\u0be6\x0001\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0002\u06d7\x0001\u0be7\x0007\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7" + + "\x0001\u0781\x0002\u06d7\x0001\u0be8\x0007\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781" + + "\x0003\u06d7\x0001\u0be9\x0006\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0005\u06d7" + + "\x0001\u0bea\x0004\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0003\u06d7\x0001\u0beb" + + "\x0006\u06d7\x00A9\x0000\x0001\u0780\x0002\u06d7\x0001\u0bec\x0017\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0001\u0bed\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0014\u06d7\x0001\u0bee\x0005\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0013\u06d7" + + "\x0001\u0961\x0006\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781" + + "\x0001\u0bef\x0009\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0001\u0bf0\x0009\u06d7" + + "\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0009\u06d7\x0001\u0bf1\x00A9\x0000\x0001\u0780" + + "\x000A\u06d7\x0001\u0bf2\x000F\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7" + + "\x0001\u0781\x0002\u06d7\x0001\u0965\x0007\u06d7\x00A9\x0000\x0001\u0780\x0002\u06d7\x0001\u0bf3" + + "\x0017\u06d7\x0001\u0781\x000A\u06d7\x00AA\x0000\x0004\u0bf4\x0002\x0000\x0001\u0bf4\x000D\x0000" + + "\x0001\u0bf4\x0006\x0000\x000A\u0bf4\x0001\u0b94\x00A9\x0000\x0004\u0bf5\x0002\x0000\x0001\u0bf5" + + "\x000D\x0000\x0001\u0bf5\x0006\x0000\x000A\u0bf5\x0001\u0bf6\x00A8\x0000\x0001\u0844\x0004\u0bf5" + + "\x0002\x0000\x0001\u0bf5\x000D\x0000\x0001\u0bf5\x0006\x0000\x000A\u0bf7\x0001\u0bf6\x00A8\x0000" + + "\x0001\u0844\x0004\u0bf5\x0002\x0000\x0001\u0bf5\x000D\x0000\x0001\u0bf5\x0006\x0000\x000A\u0bf8" + + "\x0001\u0bf6\x00A8\x0000\x0001\u0844\x0004\u0bf5\x0002\x0000\x0001\u0bf5\x000D\x0000\x0001\u0bf5" + + "\x0006\x0000\x0002\u0bf8\x0001\u0bf7\x0001\u0bf8\x0001\u0bf9\x0002\u0bf7\x0002\u0bf8\x0001\u0bf7" + + "\x0001\u0bf6\x00A9\x0000\x0004\u0bfa\x0002\x0000\x0001\u0bfa\x000D\x0000\x0001\u0bfa\x0006\x0000" + + "\x000A\u0bfa\x000B\x0000\x0001\u078c\x009E\x0000\x0004\u0bfb\x0002\x0000\x0001\u0bfb\x000D\x0000" + + "\x0001\u0bfb\x0006\x0000\x000A\u0bfb\x0001\u0bcf\x000A\x0000\x0001\u078c\x009E\x0000\x0004\u0bfa" + + "\x0002\x0000\x0001\u0bfa\x000D\x0000\x0001\u0bfa\x0006\x0000\x000A\u0bfa\x00A9\x0000\x0001\u0844" + + "\x0004\u0bfb\x0002\x0000\x0001\u0bfb\x000D\x0000\x0001\u0bfb\x0006\x0000\x000A\u0bfb\x0001\u0bcf" + + "\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844\x0004\u0bfb\x0002\x0000\x0001\u0bfb\x000D\x0000" + + "\x0001\u0bfb\x0006\x0000\x000A\u0bfc\x0001\u0bcf\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0844" + + "\x0004\u0bfb\x0002\x0000\x0001\u0bfb\x000D\x0000\x0001\u0bfb\x0006\x0000\x0002\u0bfc\x0001\u0bfb" + + "\x0002\u0bfc\x0002\u0bfb\x0002\u0bfc\x0001\u0bfb\x0001\u0bcf\x000A\x0000\x0001\u078c\x00C3\x0000" + + "\x0001\u0b56\x000A\x0000\x0001\u078c\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0007\u0150" + + "\x0001\u0bfd\x0012\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0096\x0000\x0001\u0181" + + "\x001A\x00E0\x0001\u0182\x0005\x00E0\x0001\u0bfe\x0004\x00E0\x00A5\x0000\x0001\x0074\x0003\x0000" + + "\x0001\u01b3\x0001\u010b\x0001\u07fe\x0018\u010b\x0001\x008C\x000A\u010b\x0001\x0000\x0003\x0074" + + "\x0001\x0000\x0001\x0074\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074" + + "\x00BC\x0000\x0001\u0b61\x00A9\x0000\x0004\u0bff\x0002\x0000\x0001\u0bff\x000D\x0000\x0001\u0bff" + + "\x0006\x0000\x000A\u0bff\x0001\u0bd9\x00A9\x0000\x0004\u0bdd\x0002\x0000\x0001\u0bdd\x000D\x0000" + + "\x0001\u0bdd\x0006\x0000\x000A\u0bdd\x0001\u0ae0\x00A8\x0000\x0001\u080c\x0004\u0bff\x0002\x0000" + + "\x0001\u0bff\x000D\x0000\x0001\u0bff\x0006\x0000\x000A\u0bff\x0001\u0bd9\x00A8\x0000\x0001\u080c" + + "\x0004\u0bff\x0002\x0000\x0001\u0bff\x000D\x0000\x0001\u0bff\x0006\x0000\x000A\u0c00\x0001\u0bd9" + + "\x00A8\x0000\x0001\u080c\x0004\u0bff\x0002\x0000\x0001\u0bff\x000D\x0000\x0001\u0bff\x0006\x0000" + + "\x0002\u0c00\x0001\u0bff\x0002\u0c00\x0002\u0bff\x0002\u0c00\x0001\u0bff\x0001\u0bd9\x00A9\x0000" + + "\x0004\u0c01\x0002\x0000\x0001\u0c01\x000D\x0000\x0001\u0c01\x0006\x0000\x000A\u0c01\x000B\x0000" + + "\x0001\u076f\x009E\x0000\x0004\u0c02\x0002\x0000\x0001\u0c02\x000D\x0000\x0001\u0c02\x0006\x0000" + + "\x000A\u0c02\x0001\u0ba5\x000A\x0000\x0001\u076f\x009D\x0000\x0001\u080c\x0004\u0c02\x0002\x0000" + + "\x0001\u0c02\x000D\x0000\x0001\u0c02\x0006\x0000\x000A\u0c02\x0001\u0ba5\x000A\x0000\x0001\u076f" + + "\x009E\x0000\x0004\u0c03\x0002\x0000\x0001\u0c03\x000D\x0000\x0001\u0c03\x0006\x0000\x000A\u0c03" + + "\x0001\u0bac\x00A8\x0000\x0001\u077c\x0004\u0c03\x0002\x0000\x0001\u0c03\x000D\x0000\x0001\u0c03" + + "\x0006\x0000\x000A\u0c03\x0001\u0bac\x00A9\x0000\x0004\u0c04\x0002\x0000\x0001\u0c04\x000D\x0000" + + "\x0001\u0c04\x0006\x0000\x000A\u0c04\x000B\x0000\x0001\u06d6\x00C3\x0000\x0001\u0b6f\x000A\x0000" + + "\x0001\u06d6\x009D\x0000\x0001\u0780\x0001\u0c05\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x001A\u06d7\x0001\u0781\x0007\u06d7\x0001\u0b3a\x0002\u06d7\x00A9\x0000\x0001\u0780" + + "\x0001\u0c06\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0c07\x0019\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0c08\x0012\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0006\u06d7\x0001\u0c09\x0013\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0001\u0c0a\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0001\u0c0b\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781" + + "\x0001\u06d7\x0001\u0c0c\x0008\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0002\u06d7" + + "\x0001\u0c0d\x0007\u06d7\x00A9\x0000\x0001\u0780\x0006\u06d7\x0001\u08bc\x0013\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0015\u06d7\x0001\u0c0e\x0004\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0001\u0c0f\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0002\u06d7\x0001\u08e1\x0007\u06d7\x00A9\x0000\x0001\u0780\x000A\u06d7" + + "\x0001\u08e3\x000F\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0014\u06d7\x0001\u08bc" + + "\x0005\u06d7\x0001\u0781\x000A\u06d7\x00CF\x0000\x0001\u0b94\x00A9\x0000\x0004\u0c10\x0002\x0000" + + "\x0001\u0c10\x000D\x0000\x0001\u0c10\x0006\x0000\x000A\u0c10\x0001\u0bf6\x00A9\x0000\x0004\u0bfa" + + "\x0002\x0000\x0001\u0bfa\x000D\x0000\x0001\u0bfa\x0006\x0000\x000A\u0bfa\x0001\u0b12\x00A8\x0000" + + "\x0001\u0844\x0004\u0c10\x0002\x0000\x0001\u0c10\x000D\x0000\x0001\u0c10\x0006\x0000\x000A\u0c10" + + "\x0001\u0bf6\x00A8\x0000\x0001\u0844\x0004\u0c10\x0002\x0000\x0001\u0c10\x000D\x0000\x0001\u0c10" + + "\x0006\x0000\x000A\u0c11\x0001\u0bf6\x00A8\x0000\x0001\u0844\x0004\u0c10\x0002\x0000\x0001\u0c10" + + "\x000D\x0000\x0001\u0c10\x0006\x0000\x0002\u0c11\x0001\u0c10\x0002\u0c11\x0002\u0c10\x0002\u0c11" + + "\x0001\u0c10\x0001\u0bf6\x00A9\x0000\x0004\u0c12\x0002\x0000\x0001\u0c12\x000D\x0000\x0001\u0c12" + + "\x0006\x0000\x000A\u0c12\x000B\x0000\x0001\u078c\x009E\x0000\x0004\u0c13\x0002\x0000\x0001\u0c13" + + "\x000D\x0000\x0001\u0c13\x0006\x0000\x000A\u0c13\x0001\u0bcf\x000A\x0000\x0001\u078c\x009D\x0000" + + "\x0001\u0844\x0004\u0c13\x0002\x0000\x0001\u0c13\x000D\x0000\x0001\u0c13\x0006\x0000\x000A\u0c13" + + "\x0001\u0bcf\x000A\x0000\x0001\u078c\x0099\x0000\x0001\x0074\x0003\x0000\x0001\u0221\x0001\u0150" + + "\x0001\u0336\x0018\u0150\x0001\x009E\x000A\u0150\x0001\x0000\x0003\x0074\x0001\x0000\x0001\x0074" + + "\x0001\x0076\x0003\x0074\x0003\x0000\x0001\x0074\x0003\x0000\x0002\x0074\x0096\x0000\x0001\u0181" + + "\x0007\x00E0\x0001\u0c14\x0012\x00E0\x0001\u0182\x000A\x00E0\x00AA\x0000\x0004\u0c15\x0002\x0000" + + "\x0001\u0c15\x000D\x0000\x0001\u0c15\x0006\x0000\x000A\u0c15\x0001\u0bd9\x00A8\x0000\x0001\u080c" + + "\x0004\u0c15\x0002\x0000\x0001\u0c15\x000D\x0000\x0001\u0c15\x0006\x0000\x000A\u0c15\x0001\u0bd9" + + "\x00A9\x0000\x0004\u0c16\x0002\x0000\x0001\u0c16\x000D\x0000\x0001\u0c16\x0006\x0000\x000A\u0c16" + + "\x000B\x0000\x0001\u076f\x00C3\x0000\x0001\u0ba5\x000A\x0000\x0001\u076f\x00C3\x0000\x0001\u0bac" + + "\x00A9\x0000\x0004\u0a95\x0002\x0000\x0001\u0a95\x000D\x0000\x0001\u0a95\x0006\x0000\x000A\u0a95" + + "\x000B\x0000\x0001\u06d6\x009D\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0001\u06d7\x0001\u0c17" + + "\x0008\u06d7\x00A9\x0000\x0001\u0780\x0002\u06d7\x0001\u0c18\x0017\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0006\u06d7\x0001\u0b4a\x0003\u06d7\x00A9\x0000" + + "\x0001\u0780\x000D\u06d7\x0001\u082c\x000C\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0008\u06d7\x0001\u0b45\x0001\u06d7\x00A9\x0000\x0001\u0780\x0013\u06d7" + + "\x0001\u0c19\x0006\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781" + + "\x0004\u06d7\x0001\u0c1a\x0005\u06d7\x00A9\x0000\x0001\u0780\x0001\u0bf3\x0019\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0008\u06d7\x0001\u0965\x0001\u06d7" + + "\x00A9\x0000\x0001\u0780\x0019\u06d7\x0001\u0c1b\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0004\u06d7\x0001\u0c1c\x0005\u06d7\x00AA\x0000\x0004\u0c1d\x0002\x0000" + + "\x0001\u0c1d\x000D\x0000\x0001\u0c1d\x0006\x0000\x000A\u0c1d\x0001\u0bf6\x00A8\x0000\x0001\u0844" + + "\x0004\u0c1d\x0002\x0000\x0001\u0c1d\x000D\x0000\x0001\u0c1d\x0006\x0000\x000A\u0c1d\x0001\u0bf6" + + "\x00A9\x0000\x0004\u0c1e\x0002\x0000\x0001\u0c1e\x000D\x0000\x0001\u0c1e\x0006\x0000\x000A\u0c1e" + + "\x000B\x0000\x0001\u078c\x00C3\x0000\x0001\u0bcf\x000A\x0000\x0001\u078c\x009D\x0000\x0001\u0181" + + "\x0001\x00E0\x0001\u0463\x0018\x00E0\x0001\u0182\x000A\x00E0\x00CF\x0000\x0001\u0bd9\x00A9\x0000" + + "\x0004\u0ae0\x0002\x0000\x0001\u0ae0\x000D\x0000\x0001\u0ae0\x0006\x0000\x000A\u0ae0\x000B\x0000" + + "\x0001\u076f\x009D\x0000\x0001\u0780\x0014\u06d7\x0001\u0c1f\x0005\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0006\u06d7\x0001\u0c20\x0003\u06d7\x00A9\x0000" + + "\x0001\u0780\x0001\u06d7\x0001\u08c8\x0018\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780" + + "\x0002\u06d7\x0001\u0c21\x0017\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7" + + "\x0001\u0c22\x0016\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u0c23" + + "\x0016\u06d7\x0001\u0781\x000A\u06d7\x00CF\x0000\x0001\u0bf6\x00A9\x0000\x0004\u0b12\x0002\x0000" + + "\x0001\u0b12\x000D\x0000\x0001\u0b12\x0006\x0000\x000A\u0b12\x000B\x0000\x0001\u078c\x009D\x0000" + + "\x0001\u0780\x001A\u06d7\x0001\u0781\x0007\u06d7\x0001\u0c24\x0002\u06d7\x00A9\x0000\x0001\u0780" + + "\x0017\u06d7\x0001\u08bc\x0002\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7" + + "\x0001\u0781\x0003\u06d7\x0001\u0c25\x0006\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781" + + "\x0007\u06d7\x0001\u082c\x0002\u06d7\x00A9\x0000\x0001\u0780\x0003\u06d7\x0001\u0c26\x0016\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0c27\x0012\u06d7\x0001\u0781" + + "\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0c28\x0019\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000" + + "\x0001\u0780\x001A\u06d7\x0001\u0781\x0001\u06d7\x0001\u0b4a\x0008\u06d7\x00A9\x0000\x0001\u0780" + + "\x001A\u06d7\x0001\u0781\x0007\u06d7\x0001\u0c29\x0002\u06d7\x00A9\x0000\x0001\u0780\x0004\u06d7" + + "\x0001\u08bc\x0015\u06d7\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x0001\u0c2a\x0019\u06d7" + + "\x0001\u0781\x000A\u06d7\x00A9\x0000\x0001\u0780\x001A\u06d7\x0001\u0781\x0005\u06d7\x0001\u0c2b" + + "\x0004\u06d7\x00A9\x0000\x0001\u0780\x0007\u06d7\x0001\u0c2c\x0012\u06d7\x0001\u0781\x000A\u06d7" + + "\x00A9\x0000\x0001\u0780\x0001\u06d7\x0001\u0961\x0018\u06d7\x0001\u0781\x000A\u06d7\x0019\x0000"; + + private static int[] ZzUnpackTrans() + { + int[] result = new int[614169]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_1, offset, result); + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_2, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private static readonly int ZZ_UNKNOWN_ERROR = 0; + private static readonly int ZZ_NO_MATCH = 1; + private static readonly int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0002\x0000\x0001\x0009\x0031\x0001\x0011\x0000\x0001\x0001\x0001\x0000\x0001\x0001\x000A\x0000" + + "\x0001\x0001\x0011\x0000\x0001\x0001\x001B\x0000\x0001\x0001\x000B\x0000\x0006\x0001\x0002\x0000" + + "\x0005\x0001\x0005\x0000\x0005\x0001\x0001\x0000\x0002\x0001\x004A\x0000\x001A\x0001\x0003\x0000" + + "\x0005\x0001\x001A\x0000\x0004\x0001\x0005\x0000\x001A\x0001\x0002\x0000\x0004\x0001\x001A\x0000" + + "\x0004\x0001\x0003\x0000\x0001\x0001\x000B\x0000\x0001\x0009\x0001\x0000\x002E\x0001\x0002\x0000" + + "\x0001\x0001\x0001\x0000\x0009\x0001\x0004\x0000\x0001\x0001\x0001\x0000\x0002\x0001\x0001\x0000" + + "\x0006\x0001\x0001\x0000\x0004\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0002\x0001\x0004\x0000" + + "\x0001\x0001\x0001\x0000\x0003\x0001\x0002\x0000\x0002\x0001\x0008\x0000\x002F\x0001\x0001\x0000" + + "\x0003\x0001\x002F\x0000\x0002\x0001\x002A\x0000\x0001\x0009\x0016\x0001\x0001\x0009\x002B\x0001" + + "\x0001\x0000\x0005\x0001\x0002\x0000\x0002\x0001\x0001\x0000\x000B\x0001\x0004\x0000\x0009\x0001" + + "\x0001\x0000\x0004\x0001\x0002\x0000\x0002\x0001\x0002\x0000\x0003\x0001\x0001\x0000\x0003\x0001" + + "\x000D\x0000\x001E\x0001\x0001\x0000\x0007\x0001\x001E\x0000\x0003\x0001\x000D\x0000\x0007\x0001" + + "\x0004\x0000\x0001\x0001\x0001\x0000\x0002\x0001\x0001\x0000\x0006\x0001\x0001\x0000\x0004\x0001" + + "\x0001\x0000\x0004\x0001\x0002\x0000\x0002\x0001\x0004\x0000\x0001\x0001\x0001\x0000\x0003\x0001" + + "\x0001\x0000\x0027\x0001\x0001\x0000\x0002\x0001\x0001\x0000\x0002\x0001\x0001\x0000\x0015\x0001" + + "\x0001\x0000\x0004\x0001\x0002\x0000\x0001\x0001\x0001\x0000\x0019\x0001\x0019\x0000\x0002\x0001" + + "\x0010\x0000\x0013\x0001\x0001\x0000\x0005\x0001\x0018\x0000\x0002\x0001\x000D\x0000\x0001\x0001" + + "\x001F\x0000\x0001\x0001\x0003\x0000\x000E\x0001\x0015\x0000\x0003\x0001\x001A\x0000\x0003\x0001" + + "\x0010\x0000\x000D\x0001\x0015\x0000\x0003\x0001\x0010\x0000\x0003\x0001\x0025\x0000\x000B\x0001" + + "\x001A\x0000\x0002\x0001\x0001\x0000\x0001\x0001\x0004\x0000\x0001\x0001\x0007\x0000\x0001\x0001" + + "\x0001\x0000\x0001\x0001\x0010\x0000\x0013\x0001\x000C\x0000\x000A\x0001\x001A\x0000\x0002\x0001" + + "\x000C\x0000\x0003\x0001\x0031\x0000\x0007\x0001\x002E\x0000\x0002\x0001\x0005\x0000\x0001\x0001" + + "\x0008\x0000\x0001\x0001\x000C\x0000\x0006\x0001\x0050\x0000\x0006\x0001\x0036\x0000\x0001\x0001" + + "\x0018\x0000\x0005\x0001\x0050\x0000\x0003\x0001\x0035\x0000\x0001\x0009\x0001\x0000\x0001\x0001" + + "\x0007\x0000\x0001\x0001\x000E\x0000\x0003\x0001\x004F\x0000\x0001\x0001\x004C\x0000\x0001\x0001" + + "\x0017\x0000\x0001\x0001\x0069\x0000\x0007\x0001\x0004\x0000\x0001\x0001\x0001\x0000\x0002\x0001" + + "\x0001\x0000\x0006\x0001\x0001\x0000\x0004\x0001\x0001\x0000\x0004\x0001\x0002\x0000\x0002\x0001" + + "\x0004\x0000\x0001\x0001\x0001\x0000\x0003\x0001\x0001\x0000\x0001\x0001\x006A\x0000\x0001\x0001" + + "\x001F\x0000\x0001\x0001\x0052\x0000\x0001\x0001\u0264\x0000"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[3116]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private TextReader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the YyText() string */ + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the YyText() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private bool zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private bool zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private bool zzEOFDone; + + /* user code: */ + /** Alphanumeric sequences */ + public static readonly int WORD_TYPE = UAX29URLEmailTokenizer.ALPHANUM; + + /** Numbers */ + public static readonly int NUMERIC_TYPE = UAX29URLEmailTokenizer.NUM; + + /** + * Chars in class \p{Line_Break = Complex_Context} are from South East Asian + * scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept + * together as as a single token rather than broken up, because the logic + * required to break them at word boundaries is too complex for UAX#29. + *

+ * See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA + */ + public static readonly int SOUTH_EAST_ASIAN_TYPE = UAX29URLEmailTokenizer.SOUTHEAST_ASIAN; + + public static readonly int IDEOGRAPHIC_TYPE = UAX29URLEmailTokenizer.IDEOGRAPHIC; + + public static readonly int HIRAGANA_TYPE = UAX29URLEmailTokenizer.HIRAGANA; + + public static readonly int KATAKANA_TYPE = UAX29URLEmailTokenizer.KATAKANA; + + public static readonly int HANGUL_TYPE = UAX29URLEmailTokenizer.HANGUL; + + public static readonly int EMAIL_TYPE = UAX29URLEmailTokenizer.EMAIL; + + public static readonly int URL_TYPE = UAX29URLEmailTokenizer.URL; + + public int YyChar + { + get { return yychar; } + } + + /** + * Fills CharTermAttribute with the current token text. + */ + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public UAX29URLEmailTokenizerImpl(TextReader @in) + { + this.zzReader = @in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 3030) + { + int count = packed[i++]; + char value = packed[i++]; + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + System.Array.Copy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + System.Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* readonlyly: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, + zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c == -1) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /** + * Closes the input stream. + */ + public void YyClose() + { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + { + zzReader.Dispose(); + } + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public void YyReset(TextReader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public int YyState + { + get { return zzLexicalState; } + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to YyText().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to YyLength()-1. + * + * @return the character at position pos + */ + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * YyPushBack(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (IndexOutOfRangeException e) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than YyLength()! + */ + public void YyPushBack(int number) + { + if (number > YyLength) + ZzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public int GetNextToken() + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] + zzBufferL = zzBuffer; + char[] + zzCMapL = ZZ_CMAP; + + int[] + zzTransL = ZZ_TRANS; + int[] + zzRowMapL = ZZ_ROWMAP; + int[] + zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yychar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + zzInput = zzBufferL[zzCurrentPosL++]; + else if (zzAtEOF) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) goto zzForActionBreak; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) goto zzForActionBreak; + } + + } + + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { + YyBegin(YYINITIAL); /* Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. */ + break; + } + case 15: break; + case 2: + { + YyBegin(YYINITIAL); return WORD_TYPE; + } + case 16: break; + case 3: + { + YyBegin(YYINITIAL); return NUMERIC_TYPE; + } + case 17: break; + case 4: + { + YyBegin(YYINITIAL); return KATAKANA_TYPE; + } + case 18: break; + case 5: + { + YyBegin(YYINITIAL); return SOUTH_EAST_ASIAN_TYPE; + } + case 19: break; + case 6: + { + YyBegin(YYINITIAL); return IDEOGRAPHIC_TYPE; + } + case 20: break; + case 7: + { + YyBegin(YYINITIAL); return HIRAGANA_TYPE; + } + case 21: break; + case 8: + { + YyBegin(YYINITIAL); return HANGUL_TYPE; + } + case 22: break; + case 9: + { + YyBegin(YYINITIAL); return EMAIL_TYPE; + } + case 23: break; + case 10: + { + return URL_TYPE; + } + case 24: break; + case 11: + // lookahead expression with fixed lookahead length + YyPushBack(1); + { + YyBegin(YYINITIAL); return URL_TYPE; + } + case 25: break; + case 12: + // lookahead expression with fixed lookahead length + YyPushBack(1); + { + YyBegin(AVOID_BAD_URL); YyPushBack(YyLength); + break; + } + case 26: break; + case 13: + { + YyBegin(YYINITIAL); return URL_TYPE; + } + case 27: break; + case 14: + // lookahead expression with fixed base length + zzMarkedPos = zzStartRead + 6; + { + YyBegin(YYINITIAL); return WORD_TYPE; + } + case 28: break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + switch (zzLexicalState) + { + case YYINITIAL: + { + return StandardTokenizerInterface_Fields.YYEOF; + } + case 3117: break; + case AVOID_BAD_URL: + { + return StandardTokenizerInterface_Fields.YYEOF; + } + case 3118: break; + default: + return YYEOF; + } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } +} diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index 3b51767a4c..625951f2c8 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -97,6 +97,20 @@ + + + + + + Code + + + Code + + + Code + + Code diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Standard/TestUAX29URLEmailTokenizerFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Standard/TestUAX29URLEmailTokenizerFactory.cs index 50542ffafb..e81be26560 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Standard/TestUAX29URLEmailTokenizerFactory.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Standard/TestUAX29URLEmailTokenizerFactory.cs @@ -1,169 +1,156 @@ -using System; +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System; +using System.IO; using System.Text; +using Reader = System.IO.TextReader; +using Version = Lucene.Net.Util.LuceneVersion; -namespace org.apache.lucene.analysis.standard +namespace Lucene.Net.Analysis.Standard { - - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - using ClasspathResourceLoader = org.apache.lucene.analysis.util.ClasspathResourceLoader; - using Version = org.apache.lucene.util.Version; - - ///

- /// A few tests based on org.apache.lucene.analysis.TestUAX29URLEmailTokenizer - /// - - public class TestUAX29URLEmailTokenizerFactory : BaseTokenStreamFactoryTestCase - { - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testUAX29URLEmailTokenizer() throws Exception - public virtual void testUAX29URLEmailTokenizer() - { - Reader reader = new StringReader("Wha\u0301t's this thing do?"); - TokenStream stream = tokenizerFactory("UAX29URLEmail").create(reader); - assertTokenStreamContents(stream, new string[] {"Wha\u0301t's", "this", "thing", "do"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testArabic() throws Exception - public virtual void testArabic() - { - Reader reader = new StringReader("الفيلم الوثائقي الأول عن ويكيبيديا يسمى \"الحقيقة بالأرقام: قصة ويكيبيديا\" (بالإنجليزية: Truth in Numbers: The Wikipedia Story)، سيتم إطلاقه في 2008."); - TokenStream stream = tokenizerFactory("UAX29URLEmail").create(reader); - assertTokenStreamContents(stream, new string[] {"الفيلم", "الوثائقي", "الأول", "عن", "ويكيبيديا", "يسمى", "الحقيقة", "بالأرقام", "قصة", "ويكيبيديا", "بالإنجليزية", "Truth", "in", "Numbers", "The", "Wikipedia", "Story", "سيتم", "إطلاقه", "في", "2008"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testChinese() throws Exception - public virtual void testChinese() - { - Reader reader = new StringReader("我是中国人。 1234 Tests "); - TokenStream stream = tokenizerFactory("UAX29URLEmail").create(reader); - assertTokenStreamContents(stream, new string[] {"我", "是", "中", "国", "人", "1234", "Tests"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testKorean() throws Exception - public virtual void testKorean() - { - Reader reader = new StringReader("안녕하세요 한글입니다"); - TokenStream stream = tokenizerFactory("UAX29URLEmail").create(reader); - assertTokenStreamContents(stream, new string[] {"안녕하세요", "한글입니다"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHyphen() throws Exception - public virtual void testHyphen() - { - Reader reader = new StringReader("some-dashed-phrase"); - TokenStream stream = tokenizerFactory("UAX29URLEmail").create(reader); - assertTokenStreamContents(stream, new string[] {"some", "dashed", "phrase"}); - } - - // Test with some URLs from TestUAX29URLEmailTokenizer's - // urls.from.random.text.with.urls.txt -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testURLs() throws Exception - public virtual void testURLs() - { - string textWithURLs = "http://johno.jsmf.net/knowhow/ngrams/index.php?table=en-dickens-word-2gram¶graphs=50&length=200&no-ads=on\n" + " some extra\nWords thrown in here. " + "http://c5-3486.bisynxu.FR/aI.YnNms/" + " samba Halta gamba " + "ftp://119.220.152.185/JgJgdZ/31aW5c/viWlfQSTs5/1c8U5T/ih5rXx/YfUJ/xBW1uHrQo6.R\n" + "M19nq.0URV4A.Me.CC/mj0kgt6hue/dRXv8YVLOw9v/CIOqb\n" + "Https://yu7v33rbt.vC6U3.XN--KPRW13D/y%4fMSzkGFlm/wbDF4m" + " inter Locutio " + "[c2d4::]/%471j5l/j3KFN%AAAn/Fip-NisKH/\n" + "file:///aXvSZS34is/eIgM8s~U5dU4Ifd%c7" + " blah Sirrah woof " + "http://[a42:a7b6::]/qSmxSUU4z/%52qVl4\n"; - Reader reader = new StringReader(textWithURLs); - TokenStream stream = tokenizerFactory("UAX29URLEmail").create(reader); - assertTokenStreamContents(stream, new string[] {"http://johno.jsmf.net/knowhow/ngrams/index.php?table=en-dickens-word-2gram¶graphs=50&length=200&no-ads=on", "some", "extra", "Words", "thrown", "in", "here", "http://c5-3486.bisynxu.FR/aI.YnNms/", "samba", "Halta", "gamba", "ftp://119.220.152.185/JgJgdZ/31aW5c/viWlfQSTs5/1c8U5T/ih5rXx/YfUJ/xBW1uHrQo6.R", "M19nq.0URV4A.Me.CC/mj0kgt6hue/dRXv8YVLOw9v/CIOqb", "Https://yu7v33rbt.vC6U3.XN--KPRW13D/y%4fMSzkGFlm/wbDF4m", "inter", "Locutio", "[c2d4::]/%471j5l/j3KFN%AAAn/Fip-NisKH/", "file:///aXvSZS34is/eIgM8s~U5dU4Ifd%c7", "blah", "Sirrah", "woof", "http://[a42:a7b6::]/qSmxSUU4z/%52qVl4"}); - } - - // Test with some emails from TestUAX29URLEmailTokenizer's - // email.addresses.from.random.text.with.email.addresses.txt -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmails() throws Exception - public virtual void testEmails() - { - string textWithEmails = " some extra\nWords thrown in here. " + "dJ8ngFi@avz13m.CC\n" + "kU-l6DS@[082.015.228.189]\n" + "\"%U\u0012@?\\B\"@Fl2d.md" + " samba Halta gamba " + "Bvd#@tupjv.sn\n" + "SBMm0Nm.oyk70.rMNdd8k.#ru3LI.gMMLBI.0dZRD4d.RVK2nY@au58t.B13albgy4u.mt\n" + "~+Kdz@3mousnl.SE\n" + " inter Locutio " + "C'ts`@Vh4zk.uoafcft-dr753x4odt04q.UY\n" + "}0tzWYDBuy@cSRQAABB9B.7c8xawf75-cyo.PM" + " blah Sirrah woof " + "lMahAA.j/5.RqUjS745.DtkcYdi@d2-4gb-l6.ae\n" + "lv'p@tqk.vj5s0tgl.0dlu7su3iyiaz.dqso.494.3hb76.XN--MGBAAM7A8H\n"; - Reader reader = new StringReader(textWithEmails); - TokenStream stream = tokenizerFactory("UAX29URLEmail").create(reader); - assertTokenStreamContents(stream, new string[] {"some", "extra", "Words", "thrown", "in", "here", "dJ8ngFi@avz13m.CC", "kU-l6DS@[082.015.228.189]", "\"%U\u0012@?\\B\"@Fl2d.md", "samba", "Halta", "gamba", "Bvd#@tupjv.sn", "SBMm0Nm.oyk70.rMNdd8k.#ru3LI.gMMLBI.0dZRD4d.RVK2nY@au58t.B13albgy4u.mt", "~+Kdz@3mousnl.SE", "inter", "Locutio", "C'ts`@Vh4zk.uoafcft-dr753x4odt04q.UY", "}0tzWYDBuy@cSRQAABB9B.7c8xawf75-cyo.PM", "blah", "Sirrah", "woof", "lMahAA.j/5.RqUjS745.DtkcYdi@d2-4gb-l6.ae", "lv'p@tqk.vj5s0tgl.0dlu7su3iyiaz.dqso.494.3hb76.XN--MGBAAM7A8H"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMaxTokenLength() throws Exception - public virtual void testMaxTokenLength() - { - StringBuilder builder = new StringBuilder(); - for (int i = 0 ; i < 100 ; ++i) - { - builder.Append("abcdefg"); // 7 * 100 = 700 char "word" - } - string longWord = builder.ToString(); - string content = "one two three " + longWord + " four five six"; - Reader reader = new StringReader(content); - TokenStream stream = tokenizerFactory("UAX29URLEmail", "maxTokenLength", "1000").create(reader); - assertTokenStreamContents(stream, new string[] {"one", "two", "three", longWord, "four", "five", "six"}); - } - - /// @deprecated nuke this test in lucene 5.0 -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Deprecated("nuke this test in lucene 5.0") public void testMatchVersion() throws Exception - [Obsolete("nuke this test in lucene 5.0")] - public virtual void testMatchVersion() - { - Reader reader = new StringReader("ざ"); - TokenStream stream = tokenizerFactory("UAX29URLEmail").create(reader); - assertTokenStreamContents(stream, new string[] {"ざ"}); - - reader = new StringReader("ざ"); - stream = tokenizerFactory("UAX29URLEmail", Version.LUCENE_31, new ClasspathResourceLoader(this.GetType())).create(reader); - assertTokenStreamContents(stream, new string[] {"さ"}); // old broken behavior - } - - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenizerFactory("UAX29URLEmail", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testIllegalArguments() throws Exception - public virtual void testIllegalArguments() - { - try - { - tokenizerFactory("UAX29URLEmail", "maxTokenLength", "-1").create(new StringReader("hello")); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("maxTokenLength must be greater than zero")); - } - } - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// A few tests based on org.apache.lucene.analysis.TestUAX29URLEmailTokenizer + /// + + public class TestUAX29URLEmailTokenizerFactory : BaseTokenStreamFactoryTestCase + { + + [Test] + public virtual void TestUAX29URLEmailTokenizer() + { + Reader reader = new StringReader("Wha\u0301t's this thing do?"); + TokenStream stream = TokenizerFactory("UAX29URLEmail").Create(reader); + AssertTokenStreamContents(stream, new string[] { "Wha\u0301t's", "this", "thing", "do" }); + } + + [Test] + public virtual void TestArabic() + { + Reader reader = new StringReader("الفيلم الوثائقي الأول عن ويكيبيديا يسمى \"الحقيقة بالأرقام: قصة ويكيبيديا\" (بالإنجليزية: Truth in Numbers: The Wikipedia Story)، سيتم إطلاقه في 2008."); + TokenStream stream = TokenizerFactory("UAX29URLEmail").Create(reader); + AssertTokenStreamContents(stream, new string[] { "الفيلم", "الوثائقي", "الأول", "عن", "ويكيبيديا", "يسمى", "الحقيقة", "بالأرقام", "قصة", "ويكيبيديا", "بالإنجليزية", "Truth", "in", "Numbers", "The", "Wikipedia", "Story", "سيتم", "إطلاقه", "في", "2008" }); + } + + [Test] + public virtual void TestChinese() + { + Reader reader = new StringReader("我是中国人。 1234 Tests "); + TokenStream stream = TokenizerFactory("UAX29URLEmail").Create(reader); + AssertTokenStreamContents(stream, new string[] { "我", "是", "中", "国", "人", "1234", "Tests" }); + } + + [Test] + public virtual void TestKorean() + { + Reader reader = new StringReader("안녕하세요 한글입니다"); + TokenStream stream = TokenizerFactory("UAX29URLEmail").Create(reader); + AssertTokenStreamContents(stream, new string[] { "안녕하세요", "한글입니다" }); + } + + [Test] + public virtual void TestHyphen() + { + Reader reader = new StringReader("some-dashed-phrase"); + TokenStream stream = TokenizerFactory("UAX29URLEmail").Create(reader); + AssertTokenStreamContents(stream, new string[] { "some", "dashed", "phrase" }); + } + + // Test with some URLs from TestUAX29URLEmailTokenizer's + // urls.from.random.text.with.urls.txt + [Test] + public virtual void TestURLs() + { + string textWithURLs = "http://johno.jsmf.net/knowhow/ngrams/index.php?table=en-dickens-word-2gram¶graphs=50&length=200&no-ads=on\n" + " some extra\nWords thrown in here. " + "http://c5-3486.bisynxu.FR/aI.YnNms/" + " samba Halta gamba " + "ftp://119.220.152.185/JgJgdZ/31aW5c/viWlfQSTs5/1c8U5T/ih5rXx/YfUJ/xBW1uHrQo6.R\n" + "M19nq.0URV4A.Me.CC/mj0kgt6hue/dRXv8YVLOw9v/CIOqb\n" + "Https://yu7v33rbt.vC6U3.XN--KPRW13D/y%4fMSzkGFlm/wbDF4m" + " inter Locutio " + "[c2d4::]/%471j5l/j3KFN%AAAn/Fip-NisKH/\n" + "file:///aXvSZS34is/eIgM8s~U5dU4Ifd%c7" + " blah Sirrah woof " + "http://[a42:a7b6::]/qSmxSUU4z/%52qVl4\n"; + Reader reader = new StringReader(textWithURLs); + TokenStream stream = TokenizerFactory("UAX29URLEmail").Create(reader); + AssertTokenStreamContents(stream, new string[] { "http://johno.jsmf.net/knowhow/ngrams/index.php?table=en-dickens-word-2gram¶graphs=50&length=200&no-ads=on", "some", "extra", "Words", "thrown", "in", "here", "http://c5-3486.bisynxu.FR/aI.YnNms/", "samba", "Halta", "gamba", "ftp://119.220.152.185/JgJgdZ/31aW5c/viWlfQSTs5/1c8U5T/ih5rXx/YfUJ/xBW1uHrQo6.R", "M19nq.0URV4A.Me.CC/mj0kgt6hue/dRXv8YVLOw9v/CIOqb", "Https://yu7v33rbt.vC6U3.XN--KPRW13D/y%4fMSzkGFlm/wbDF4m", "inter", "Locutio", "[c2d4::]/%471j5l/j3KFN%AAAn/Fip-NisKH/", "file:///aXvSZS34is/eIgM8s~U5dU4Ifd%c7", "blah", "Sirrah", "woof", "http://[a42:a7b6::]/qSmxSUU4z/%52qVl4" }); + } + + // Test with some emails from TestUAX29URLEmailTokenizer's + // email.addresses.from.random.text.with.email.addresses.txt + [Test] + public virtual void TestEmails() + { + string textWithEmails = " some extra\nWords thrown in here. " + "dJ8ngFi@avz13m.CC\n" + "kU-l6DS@[082.015.228.189]\n" + "\"%U\u0012@?\\B\"@Fl2d.md" + " samba Halta gamba " + "Bvd#@tupjv.sn\n" + "SBMm0Nm.oyk70.rMNdd8k.#ru3LI.gMMLBI.0dZRD4d.RVK2nY@au58t.B13albgy4u.mt\n" + "~+Kdz@3mousnl.SE\n" + " inter Locutio " + "C'ts`@Vh4zk.uoafcft-dr753x4odt04q.UY\n" + "}0tzWYDBuy@cSRQAABB9B.7c8xawf75-cyo.PM" + " blah Sirrah woof " + "lMahAA.j/5.RqUjS745.DtkcYdi@d2-4gb-l6.ae\n" + "lv'p@tqk.vj5s0tgl.0dlu7su3iyiaz.dqso.494.3hb76.XN--MGBAAM7A8H\n"; + Reader reader = new StringReader(textWithEmails); + TokenStream stream = TokenizerFactory("UAX29URLEmail").Create(reader); + AssertTokenStreamContents(stream, new string[] { "some", "extra", "Words", "thrown", "in", "here", "dJ8ngFi@avz13m.CC", "kU-l6DS@[082.015.228.189]", "\"%U\u0012@?\\B\"@Fl2d.md", "samba", "Halta", "gamba", "Bvd#@tupjv.sn", "SBMm0Nm.oyk70.rMNdd8k.#ru3LI.gMMLBI.0dZRD4d.RVK2nY@au58t.B13albgy4u.mt", "~+Kdz@3mousnl.SE", "inter", "Locutio", "C'ts`@Vh4zk.uoafcft-dr753x4odt04q.UY", "}0tzWYDBuy@cSRQAABB9B.7c8xawf75-cyo.PM", "blah", "Sirrah", "woof", "lMahAA.j/5.RqUjS745.DtkcYdi@d2-4gb-l6.ae", "lv'p@tqk.vj5s0tgl.0dlu7su3iyiaz.dqso.494.3hb76.XN--MGBAAM7A8H" }); + } + + [Test] + public virtual void TestMaxTokenLength() + { + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < 100; ++i) + { + builder.Append("abcdefg"); // 7 * 100 = 700 char "word" + } + string longWord = builder.ToString(); + string content = "one two three " + longWord + " four five six"; + Reader reader = new StringReader(content); + TokenStream stream = TokenizerFactory("UAX29URLEmail", "maxTokenLength", "1000").Create(reader); + AssertTokenStreamContents(stream, new string[] { "one", "two", "three", longWord, "four", "five", "six" }); + } + + /// @deprecated nuke this test in lucene 5.0 + [Test] + [Obsolete("nuke this test in lucene 5.0")] + public virtual void TestMatchVersion() + { + Reader reader = new StringReader("ざ"); + TokenStream stream = TokenizerFactory("UAX29URLEmail").Create(reader); + AssertTokenStreamContents(stream, new string[] { "ざ" }); + + reader = new StringReader("ざ"); + stream = TokenizerFactory("UAX29URLEmail", Version.LUCENE_31, new ClasspathResourceLoader(this.GetType())).Create(reader); + AssertTokenStreamContents(stream, new string[] { "さ" }); // old broken behavior + } + + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenizerFactory("UAX29URLEmail", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + + [Test] + public virtual void TestIllegalArguments() + { + try + { + TokenizerFactory("UAX29URLEmail", "maxTokenLength", "-1").Create(new StringReader("hello")); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("maxTokenLength must be greater than zero")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 80df274708..40a55722c9 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -55,6 +55,9 @@ + + Code + From 52f3b5e4d56576704b3cb69a61abcafa4e5e3152 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Sat, 6 Aug 2016 00:48:36 +0700 Subject: [PATCH 013/141] Reset all packed chars to Lucene 4.8.0 state to be 100% sure that no errors were made. --- .../Analysis/Standard/ClassicTokenizerImpl.cs | 123 +- .../Standard/StandardTokenizerImpl.cs | 1197 ++++++++++------- .../Std31/UAX29URLEmailTokenizerImpl31.cs | 3 - .../Standard/UAX29URLEmailTokenizerImpl.cs | 307 ++--- 4 files changed, 955 insertions(+), 675 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs index bc0c315c23..64faa24c65 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.5.1 */ +/* The following code was generated by JFlex 1.5.1 */ using System; using System.IO; using Lucene.Net.Analysis.Tokenattributes; @@ -59,7 +59,64 @@ internal class ClassicTokenizerImpl : IStandardTokenizerInterface /// /// Translates characters to character classes /// - private static readonly string ZZ_CMAP_PACKED = "\x0026\0\x0001\x0005\x0001\x0003\x0004\0\x0001\x0009\x0001\x0007\x0001\x0004\x0001\x0009\x000A\x0002\x0006\0" + "\x0001\x0006\x001A\x000A\x0004\0\x0001\x0008\x0001\0\x001A\x000A\x002F\0\x0001\x000A\x000A\0\x0001\x000A" + "\x0004\0\x0001\x000A\x0005\0\x0017\x000A\x0001\0\x001F\x000A\x0001\0\u0128\x000A\x0002\0\x0012\x000A" + "\x001C\0\x005E\x000A\x0002\0\x0009\x000A\x0002\0\x0007\x000A\x000E\0\x0002\x000A\x000E\0\x0005\x000A" + "\x0009\0\x0001\x000A\x008B\0\x0001\x000A\x000B\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0014\x000A\x0001\0\x002C\x000A\x0001\0\x0008\x000A\x0002\0\x001A\x000A\x000C\0\x0082\x000A" + "\x000A\0\x0039\x000A\x0002\0\x0002\x000A\x0002\0\x0002\x000A\x0003\0\x0026\x000A\x0002\0\x0002\x000A" + "\x0037\0\x0026\x000A\x0002\0\x0001\x000A\x0007\0\x0027\x000A\x0048\0\x001B\x000A\x0005\0\x0003\x000A" + "\x002E\0\x001A\x000A\x0005\0\x000B\x000A\x0015\0\x000A\x0002\x0007\0\x0063\x000A\x0001\0\x0001\x000A" + "\x000F\0\x0002\x000A\x0009\0\x000A\x0002\x0003\x000A\x0013\0\x0001\x000A\x0001\0\x001B\x000A\x0053\0" + "\x0026\x000A\u015f\0\x0035\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A\x0007\0\x000A\x000A\x0004\0" + "\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0001\x000A\x0003\0\x0004\x000A\x0022\0\x0002\x000A\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0002\x000A" + "\x0013\0\x0006\x000A\x0004\0\x0002\x000A\x0002\0\x0016\x000A\x0001\0\x0007\x000A\x0001\0\x0002\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x001F\0\x0004\x000A\x0001\0\x0001\x000A\x0007\0\x000A\x0002" + "\x0002\0\x0003\x000A\x0010\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0003\x000A\x0001\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0001\0\x0005\x000A\x0003\0\x0001\x000A\x0012\0\x0001\x000A" + "\x000F\0\x0001\x000A\x0005\0\x000A\x0002\x0015\0\x0008\x000A\x0002\0\x0002\x000A\x0002\0\x0016\x000A" + "\x0001\0\x0007\x000A\x0001\0\x0002\x000A\x0002\0\x0004\x000A\x0003\0\x0001\x000A\x001E\0\x0002\x000A" + "\x0001\0\x0003\x000A\x0004\0\x000A\x0002\x0015\0\x0006\x000A\x0003\0\x0003\x000A\x0001\0\x0004\x000A" + "\x0003\0\x0002\x000A\x0001\0\x0001\x000A\x0001\0\x0002\x000A\x0003\0\x0002\x000A\x0003\0\x0003\x000A" + "\x0003\0\x0008\x000A\x0001\0\x0003\x000A\x002D\0\x0009\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002" + "\x0015\0\x0008\x000A\x0001\0\x0003\x000A\x0001\0\x0017\x000A\x0001\0\x000A\x000A\x0001\0\x0005\x000A" + "\x0024\0\x0001\x000A\x0001\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0008\x000A\x0001\0\x0003\x000A" + "\x0001\0\x0017\x000A\x0001\0\x0010\x000A\x0026\0\x0002\x000A\x0004\0\x000A\x0002\x0015\0\x0012\x000A" + "\x0003\0\x0018\x000A\x0001\0\x0009\x000A\x0001\0\x0001\x000A\x0002\0\x0007\x000A\x0039\0\x0001\x0001" + "\x0030\x000A\x0001\x0001\x0002\x000A\x000C\x0001\x0007\x000A\x0009\x0001\x000A\x0002\x0027\0\x0002\x000A\x0001\0" + "\x0001\x000A\x0002\0\x0002\x000A\x0001\0\x0001\x000A\x0002\0\x0001\x000A\x0006\0\x0004\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0002\0\x0002\x000A\x0001\0" + "\x0004\x000A\x0001\0\x0002\x000A\x0009\0\x0001\x000A\x0002\0\x0005\x000A\x0001\0\x0001\x000A\x0009\0" + "\x000A\x0002\x0002\0\x0002\x000A\x0022\0\x0001\x000A\x001F\0\x000A\x0002\x0016\0\x0008\x000A\x0001\0" + "\x0022\x000A\x001D\0\x0004\x000A\x0074\0\x0022\x000A\x0001\0\x0005\x000A\x0001\0\x0002\x000A\x0015\0" + "\x000A\x0002\x0006\0\x0006\x000A\x004A\0\x0026\x000A\x000A\0\x0027\x000A\x0009\0\x005A\x000A\x0005\0" + "\x0044\x000A\x0005\0\x0052\x000A\x0006\0\x0007\x000A\x0001\0\x003F\x000A\x0001\0\x0001\x000A\x0001\0" + "\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0027\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0\x0007\x000A\x0001\0" + "\x0017\x000A\x0001\0\x001F\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0002\0\x0007\x000A\x0001\0" + "\x0027\x000A\x0001\0\x0013\x000A\x000E\0\x0009\x0002\x002E\0\x0055\x000A\x000C\0\u026c\x000A\x0002\0" + "\x0008\x000A\x000A\0\x001A\x000A\x0005\0\x004B\x000A\x0095\0\x0034\x000A\x002C\0\x000A\x0002\x0026\0" + "\x000A\x0002\x0006\0\x0058\x000A\x0008\0\x0029\x000A\u0557\0\x009C\x000A\x0004\0\x005A\x000A\x0006\0" + "\x0016\x000A\x0002\0\x0006\x000A\x0002\0\x0026\x000A\x0002\0\x0006\x000A\x0002\0\x0008\x000A\x0001\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x001F\x000A\x0002\0\x0035\x000A\x0001\0" + "\x0007\x000A\x0001\0\x0001\x000A\x0003\0\x0003\x000A\x0001\0\x0007\x000A\x0003\0\x0004\x000A\x0002\0" + "\x0006\x000A\x0004\0\x000D\x000A\x0005\0\x0003\x000A\x0001\0\x0007\x000A\x0082\0\x0001\x000A\x0082\0" + "\x0001\x000A\x0004\0\x0001\x000A\x0002\0\x000A\x000A\x0001\0\x0001\x000A\x0003\0\x0005\x000A\x0006\0" + "\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0001\x000A\x0001\0\x0004\x000A\x0001\0\x0003\x000A\x0001\0" + "\x0007\x000A\u0ecb\0\x0002\x000A\x002A\0\x0005\x000A\x000A\0\x0001\x000B\x0054\x000B\x0008\x000B\x0002\x000B" + "\x0002\x000B\x005A\x000B\x0001\x000B\x0003\x000B\x0006\x000B\x0028\x000B\x0003\x000B\x0001\0\x005E\x000A\x0011\0" + "\x0018\x000A\x0038\0\x0010\x000B\u0100\0\x0080\x000B\x0080\0\u19b6\x000B\x000A\x000B\x0040\0\u51a6\x000B" + "\x005A\x000B\u048d\x000A\u0773\0\u2ba4\x000A\u215c\0\u012e\x000B\x00D2\x000B\x0007\x000A\x000C\0\x0005\x000A" + "\x0005\0\x0001\x000A\x0001\0\x000A\x000A\x0001\0\x000D\x000A\x0001\0\x0005\x000A\x0001\0\x0001\x000A" + "\x0001\0\x0002\x000A\x0001\0\x0002\x000A\x0001\0\x006C\x000A\x0021\0\u016b\x000A\x0012\0\x0040\x000A" + "\x0002\0\x0036\x000A\x0028\0\x000C\x000A\x0074\0\x0003\x000A\x0001\0\x0001\x000A\x0001\0\x0087\x000A" + "\x0013\0\x000A\x0002\x0007\0\x001A\x000A\x0006\0\x001A\x000A\x000A\0\x0001\x000B\x003A\x000B\x001F\x000A" + "\x0003\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0006\x000A\x0002\0\x0003\x000A\x0023\0"; + private static readonly string ZZ_CMAP_PACKED = + "\x0026\x0000\x0001\x0005\x0001\x0003\x0004\x0000\x0001\x0009\x0001\x0007\x0001\x0004\x0001\x0009\x000A\x0002\x0006\x0000" + + "\x0001\x0006\x001A\x000A\x0004\x0000\x0001\x0008\x0001\x0000\x001A\x000A\x002F\x0000\x0001\x000A\x000A\x0000\x0001\x000A" + + "\x0004\x0000\x0001\x000A\x0005\x0000\x0017\x000A\x0001\x0000\x001F\x000A\x0001\x0000\u0128\x000A\x0002\x0000\x0012\x000A" + + "\x001C\x0000\x005E\x000A\x0002\x0000\x0009\x000A\x0002\x0000\x0007\x000A\x000E\x0000\x0002\x000A\x000E\x0000\x0005\x000A" + + "\x0009\x0000\x0001\x000A\x008B\x0000\x0001\x000A\x000B\x0000\x0001\x000A\x0001\x0000\x0003\x000A\x0001\x0000\x0001\x000A" + + "\x0001\x0000\x0014\x000A\x0001\x0000\x002C\x000A\x0001\x0000\x0008\x000A\x0002\x0000\x001A\x000A\x000C\x0000\x0082\x000A" + + "\x000A\x0000\x0039\x000A\x0002\x0000\x0002\x000A\x0002\x0000\x0002\x000A\x0003\x0000\x0026\x000A\x0002\x0000\x0002\x000A" + + "\x0037\x0000\x0026\x000A\x0002\x0000\x0001\x000A\x0007\x0000\x0027\x000A\x0048\x0000\x001B\x000A\x0005\x0000\x0003\x000A" + + "\x002E\x0000\x001A\x000A\x0005\x0000\x000B\x000A\x0015\x0000\x000A\x0002\x0007\x0000\x0063\x000A\x0001\x0000\x0001\x000A" + + "\x000F\x0000\x0002\x000A\x0009\x0000\x000A\x0002\x0003\x000A\x0013\x0000\x0001\x000A\x0001\x0000\x001B\x000A\x0053\x0000" + + "\x0026\x000A\u015f\x0000\x0035\x000A\x0003\x0000\x0001\x000A\x0012\x0000\x0001\x000A\x0007\x0000\x000A\x000A\x0004\x0000" + + "\x000A\x0002\x0015\x0000\x0008\x000A\x0002\x0000\x0002\x000A\x0002\x0000\x0016\x000A\x0001\x0000\x0007\x000A\x0001\x0000" + + "\x0001\x000A\x0003\x0000\x0004\x000A\x0022\x0000\x0002\x000A\x0001\x0000\x0003\x000A\x0004\x0000\x000A\x0002\x0002\x000A" + + "\x0013\x0000\x0006\x000A\x0004\x0000\x0002\x000A\x0002\x0000\x0016\x000A\x0001\x0000\x0007\x000A\x0001\x0000\x0002\x000A" + + "\x0001\x0000\x0002\x000A\x0001\x0000\x0002\x000A\x001F\x0000\x0004\x000A\x0001\x0000\x0001\x000A\x0007\x0000\x000A\x0002" + + "\x0002\x0000\x0003\x000A\x0010\x0000\x0007\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0003\x000A\x0001\x0000\x0016\x000A" + + "\x0001\x0000\x0007\x000A\x0001\x0000\x0002\x000A\x0001\x0000\x0005\x000A\x0003\x0000\x0001\x000A\x0012\x0000\x0001\x000A" + + "\x000F\x0000\x0001\x000A\x0005\x0000\x000A\x0002\x0015\x0000\x0008\x000A\x0002\x0000\x0002\x000A\x0002\x0000\x0016\x000A" + + "\x0001\x0000\x0007\x000A\x0001\x0000\x0002\x000A\x0002\x0000\x0004\x000A\x0003\x0000\x0001\x000A\x001E\x0000\x0002\x000A" + + "\x0001\x0000\x0003\x000A\x0004\x0000\x000A\x0002\x0015\x0000\x0006\x000A\x0003\x0000\x0003\x000A\x0001\x0000\x0004\x000A" + + "\x0003\x0000\x0002\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0002\x000A\x0003\x0000\x0002\x000A\x0003\x0000\x0003\x000A" + + "\x0003\x0000\x0008\x000A\x0001\x0000\x0003\x000A\x002D\x0000\x0009\x0002\x0015\x0000\x0008\x000A\x0001\x0000\x0003\x000A" + + "\x0001\x0000\x0017\x000A\x0001\x0000\x000A\x000A\x0001\x0000\x0005\x000A\x0026\x0000\x0002\x000A\x0004\x0000\x000A\x0002" + + "\x0015\x0000\x0008\x000A\x0001\x0000\x0003\x000A\x0001\x0000\x0017\x000A\x0001\x0000\x000A\x000A\x0001\x0000\x0005\x000A" + + "\x0024\x0000\x0001\x000A\x0001\x0000\x0002\x000A\x0004\x0000\x000A\x0002\x0015\x0000\x0008\x000A\x0001\x0000\x0003\x000A" + + "\x0001\x0000\x0017\x000A\x0001\x0000\x0010\x000A\x0026\x0000\x0002\x000A\x0004\x0000\x000A\x0002\x0015\x0000\x0012\x000A" + + "\x0003\x0000\x0018\x000A\x0001\x0000\x0009\x000A\x0001\x0000\x0001\x000A\x0002\x0000\x0007\x000A\x0039\x0000\x0001\x0001" + + "\x0030\x000A\x0001\x0001\x0002\x000A\x000C\x0001\x0007\x000A\x0009\x0001\x000A\x0002\x0027\x0000\x0002\x000A\x0001\x0000" + + "\x0001\x000A\x0002\x0000\x0002\x000A\x0001\x0000\x0001\x000A\x0002\x0000\x0001\x000A\x0006\x0000\x0004\x000A\x0001\x0000" + + "\x0007\x000A\x0001\x0000\x0003\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0001\x000A\x0002\x0000\x0002\x000A\x0001\x0000" + + "\x0004\x000A\x0001\x0000\x0002\x000A\x0009\x0000\x0001\x000A\x0002\x0000\x0005\x000A\x0001\x0000\x0001\x000A\x0009\x0000" + + "\x000A\x0002\x0002\x0000\x0002\x000A\x0022\x0000\x0001\x000A\x001F\x0000\x000A\x0002\x0016\x0000\x0008\x000A\x0001\x0000" + + "\x0022\x000A\x001D\x0000\x0004\x000A\x0074\x0000\x0022\x000A\x0001\x0000\x0005\x000A\x0001\x0000\x0002\x000A\x0015\x0000" + + "\x000A\x0002\x0006\x0000\x0006\x000A\x004A\x0000\x0026\x000A\x000A\x0000\x0027\x000A\x0009\x0000\x005A\x000A\x0005\x0000" + + "\x0044\x000A\x0005\x0000\x0052\x000A\x0006\x0000\x0007\x000A\x0001\x0000\x003F\x000A\x0001\x0000\x0001\x000A\x0001\x0000" + + "\x0004\x000A\x0002\x0000\x0007\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0004\x000A\x0002\x0000\x0027\x000A\x0001\x0000" + + "\x0001\x000A\x0001\x0000\x0004\x000A\x0002\x0000\x001F\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0004\x000A\x0002\x0000" + + "\x0007\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0004\x000A\x0002\x0000\x0007\x000A\x0001\x0000\x0007\x000A\x0001\x0000" + + "\x0017\x000A\x0001\x0000\x001F\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0004\x000A\x0002\x0000\x0007\x000A\x0001\x0000" + + "\x0027\x000A\x0001\x0000\x0013\x000A\x000E\x0000\x0009\x0002\x002E\x0000\x0055\x000A\x000C\x0000\u026c\x000A\x0002\x0000" + + "\x0008\x000A\x000A\x0000\x001A\x000A\x0005\x0000\x004B\x000A\x0095\x0000\x0034\x000A\x002C\x0000\x000A\x0002\x0026\x0000" + + "\x000A\x0002\x0006\x0000\x0058\x000A\x0008\x0000\x0029\x000A\u0557\x0000\x009C\x000A\x0004\x0000\x005A\x000A\x0006\x0000" + + "\x0016\x000A\x0002\x0000\x0006\x000A\x0002\x0000\x0026\x000A\x0002\x0000\x0006\x000A\x0002\x0000\x0008\x000A\x0001\x0000" + + "\x0001\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x001F\x000A\x0002\x0000\x0035\x000A\x0001\x0000" + + "\x0007\x000A\x0001\x0000\x0001\x000A\x0003\x0000\x0003\x000A\x0001\x0000\x0007\x000A\x0003\x0000\x0004\x000A\x0002\x0000" + + "\x0006\x000A\x0004\x0000\x000D\x000A\x0005\x0000\x0003\x000A\x0001\x0000\x0007\x000A\x0082\x0000\x0001\x000A\x0082\x0000" + + "\x0001\x000A\x0004\x0000\x0001\x000A\x0002\x0000\x000A\x000A\x0001\x0000\x0001\x000A\x0003\x0000\x0005\x000A\x0006\x0000" + + "\x0001\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0004\x000A\x0001\x0000\x0003\x000A\x0001\x0000" + + "\x0007\x000A\u0ecb\x0000\x0002\x000A\x002A\x0000\x0005\x000A\x000A\x0000\x0001\x000B\x0054\x000B\x0008\x000B\x0002\x000B" + + "\x0002\x000B\x005A\x000B\x0001\x000B\x0003\x000B\x0006\x000B\x0028\x000B\x0003\x000B\x0001\x0000\x005E\x000A\x0011\x0000" + + "\x0018\x000A\x0038\x0000\x0010\x000B\u0100\x0000\x0080\x000B\x0080\x0000\u19b6\x000B\x000A\x000B\x0040\x0000\u51a6\x000B" + + "\x005A\x000B\u048d\x000A\u0773\x0000\u2ba4\x000A\u215c\x0000\u012e\x000B\x00D2\x000B\x0007\x000A\x000C\x0000\x0005\x000A" + + "\x0005\x0000\x0001\x000A\x0001\x0000\x000A\x000A\x0001\x0000\x000D\x000A\x0001\x0000\x0005\x000A\x0001\x0000\x0001\x000A" + + "\x0001\x0000\x0002\x000A\x0001\x0000\x0002\x000A\x0001\x0000\x006C\x000A\x0021\x0000\u016b\x000A\x0012\x0000\x0040\x000A" + + "\x0002\x0000\x0036\x000A\x0028\x0000\x000C\x000A\x0074\x0000\x0003\x000A\x0001\x0000\x0001\x000A\x0001\x0000\x0087\x000A" + + "\x0013\x0000\x000A\x0002\x0007\x0000\x001A\x000A\x0006\x0000\x001A\x000A\x000A\x0000\x0001\x000B\x003A\x000B\x001F\x000A" + + "\x0003\x0000\x0006\x000A\x0002\x0000\x0006\x000A\x0002\x0000\x0006\x000A\x0002\x0000\x0003\x000A\x0023\x0000"; /// /// Translates characters to character classes @@ -71,7 +128,10 @@ internal class ClassicTokenizerImpl : IStandardTokenizerInterface /// private static readonly int[] ZZ_ACTION = ZzUnpackAction(); - private const string ZZ_ACTION_PACKED_0 = "\x0001\0\x0001\x0001\x0003\x0002\x0001\x0003\x000B\0\x0001\x0002\x0003\x0004\x0002\0" + "\x0001\x0005\x0001\0\x0001\x0005\x0003\x0004\x0006\x0005\x0001\x0006\x0001\x0004\x0002\x0007" + "\x0001\x0008\x0001\0\x0001\x0008\x0003\0\x0002\x0008\x0001\x0009\x0001\x000A\x0001\x0004"; + private const string ZZ_ACTION_PACKED_0 = + "\x0001\x0000\x0001\x0001\x0003\x0002\x0001\x0003\x000B\x0000\x0001\x0002\x0003\x0004\x0002\x0000" + + "\x0001\x0005\x0001\x0000\x0001\x0005\x0003\x0004\x0006\x0005\x0001\x0006\x0001\x0004\x0002\x0007" + + "\x0001\x0008\x0001\x0000\x0001\x0008\x0003\x0000\x0002\x0008\x0001\x0009\x0001\x000A\x0001\x0004"; private static int[] ZzUnpackAction() { @@ -104,7 +164,14 @@ private static int ZzUnpackAction(string packed, int offset, int[] result) ///
private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); - private const string ZZ_ROWMAP_PACKED_0 = "\0\0\0\x000C\0\x0018\0\x0024\0\x0030\0\x000C\0\x003C\0\x0048" + "\0\x0054\0\x0060\0\x006C\0\x0078\0\x0084\0\x0090\0\x009C\0\x00A8" + "\0\x00B4\0\x00C0\0\x00CC\0\x00D8\0\x00E4\0\x00F0\0\x00FC\0\u0108" + "\0\u0114\0\u0120\0\u012c\0\u0138\0\u0144\0\u0150\0\u015c\0\u0168" + "\0\u0174\0\u0180\0\u018c\0\u0198\0\u01a4\0\x00A8\0\u01b0\0\u01bc" + "\0\u01c8\0\u01d4\0\u01e0\0\u01ec\0\u01f8\0\x003C\0\x006C\0\u0204" + "\0\u0210\0\u021c"; + private const string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x000C\x0000\x0018\x0000\x0024\x0000\x0030\x0000\x000C\x0000\x003C\x0000\x0048" + + "\x0000\x0054\x0000\x0060\x0000\x006C\x0000\x0078\x0000\x0084\x0000\x0090\x0000\x009C\x0000\x00A8" + + "\x0000\x00B4\x0000\x00C0\x0000\x00CC\x0000\x00D8\x0000\x00E4\x0000\x00F0\x0000\x00FC\x0000\u0108" + + "\x0000\u0114\x0000\u0120\x0000\u012c\x0000\u0138\x0000\u0144\x0000\u0150\x0000\u015c\x0000\u0168" + + "\x0000\u0174\x0000\u0180\x0000\u018c\x0000\u0198\x0000\u01a4\x0000\x00A8\x0000\u01b0\x0000\u01bc" + + "\x0000\u01c8\x0000\u01d4\x0000\u01e0\x0000\u01ec\x0000\u01f8\x0000\x003C\x0000\x006C\x0000\u0204" + + "\x0000\u0210\x0000\u021c"; private static int[] ZzUnpackRowMap() { @@ -132,7 +199,47 @@ private static int ZzUnpackRowMap(string packed, int offset, int[] result) ///
private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); - private const string ZZ_TRANS_PACKED_0 = "\x0001\x0002\x0001\x0003\x0001\x0004\x0007\x0002\x0001\x0005\x0001\x0006\x000D\0\x0002\x0003" + "\x0001\0\x0001\x0007\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x0003\x0002\0" + "\x0001\x0003\x0001\x0004\x0001\0\x0001\x000B\x0001\0\x0001\x0008\x0002\x000C\x0001\x000D" + "\x0001\x0004\x0002\0\x0001\x0003\x0001\x0004\x0001\x000E\x0001\x000F\x0001\x0010\x0001\x0011" + "\x0002\x0009\x0001\x000A\x0001\x0012\x0002\0\x0001\x0013\x0001\x0014\x0007\0\x0001\x0015" + "\x0002\0\x0002\x0016\x0007\0\x0001\x0016\x0002\0\x0001\x0017\x0001\x0018\x0007\0" + "\x0001\x0019\x0003\0\x0001\x001A\x0007\0\x0001\x000A\x0002\0\x0001\x001B\x0001\x001C" + "\x0007\0\x0001\x001D\x0002\0\x0001\x001E\x0001\x001F\x0007\0\x0001\x0020\x0002\0" + "\x0001\x0021\x0001\x0022\x0007\0\x0001\x0023\x000B\0\x0001\x0024\x0002\0\x0001\x0013" + "\x0001\x0014\x0007\0\x0001\x0025\x000B\0\x0001\x0026\x0002\0\x0002\x0016\x0007\0" + "\x0001\x0027\x0002\0\x0001\x0003\x0001\x0004\x0001\x000E\x0001\x0007\x0001\x0010\x0001\x0011" + "\x0002\x0009\x0001\x000A\x0001\x0012\x0002\0\x0002\x0013\x0001\0\x0001\x0028\x0001\0" + "\x0001\x0008\x0002\x0029\x0001\0\x0001\x0013\x0002\0\x0001\x0013\x0001\x0014\x0001\0" + "\x0001\x002A\x0001\0\x0001\x0008\x0002\x002B\x0001\x002C\x0001\x0014\x0002\0\x0001\x0013" + "\x0001\x0014\x0001\0\x0001\x0028\x0001\0\x0001\x0008\x0002\x0029\x0001\0\x0001\x0015" + "\x0002\0\x0002\x0016\x0001\0\x0001\x002D\x0002\0\x0001\x002D\x0002\0\x0001\x0016" + "\x0002\0\x0002\x0017\x0001\0\x0001\x0029\x0001\0\x0001\x0008\x0002\x0029\x0001\0" + "\x0001\x0017\x0002\0\x0001\x0017\x0001\x0018\x0001\0\x0001\x002B\x0001\0\x0001\x0008" + "\x0002\x002B\x0001\x002C\x0001\x0018\x0002\0\x0001\x0017\x0001\x0018\x0001\0\x0001\x0029" + "\x0001\0\x0001\x0008\x0002\x0029\x0001\0\x0001\x0019\x0003\0\x0001\x001A\x0001\0" + "\x0001\x002C\x0002\0\x0003\x002C\x0001\x001A\x0002\0\x0002\x001B\x0001\0\x0001\x002E" + "\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x001B\x0002\0\x0001\x001B\x0001\x001C" + "\x0001\0\x0001\x002F\x0001\0\x0001\x0008\x0002\x000C\x0001\x000D\x0001\x001C\x0002\0" + "\x0001\x001B\x0001\x001C\x0001\0\x0001\x002E\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A" + "\x0001\x001D\x0002\0\x0002\x001E\x0001\0\x0001\x0009\x0001\0\x0001\x0008\x0002\x0009" + "\x0001\x000A\x0001\x001E\x0002\0\x0001\x001E\x0001\x001F\x0001\0\x0001\x000C\x0001\0" + "\x0001\x0008\x0002\x000C\x0001\x000D\x0001\x001F\x0002\0\x0001\x001E\x0001\x001F\x0001\0" + "\x0001\x0009\x0001\0\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x0020\x0002\0\x0002\x0021" + "\x0001\0\x0001\x000A\x0002\0\x0003\x000A\x0001\x0021\x0002\0\x0001\x0021\x0001\x0022" + "\x0001\0\x0001\x000D\x0002\0\x0003\x000D\x0001\x0022\x0002\0\x0001\x0021\x0001\x0022" + "\x0001\0\x0001\x000A\x0002\0\x0003\x000A\x0001\x0023\x0004\0\x0001\x000E\x0006\0" + "\x0001\x0024\x0002\0\x0001\x0013\x0001\x0014\x0001\0\x0001\x0030\x0001\0\x0001\x0008" + "\x0002\x0029\x0001\0\x0001\x0015\x0002\0\x0002\x0016\x0001\0\x0001\x002D\x0002\0" + "\x0001\x002D\x0002\0\x0001\x0027\x0002\0\x0002\x0013\x0007\0\x0001\x0013\x0002\0" + "\x0002\x0017\x0007\0\x0001\x0017\x0002\0\x0002\x001B\x0007\0\x0001\x001B\x0002\0" + "\x0002\x001E\x0007\0\x0001\x001E\x0002\0\x0002\x0021\x0007\0\x0001\x0021\x0002\0" + "\x0002\x0031\x0007\0\x0001\x0031\x0002\0\x0002\x0013\x0007\0\x0001\x0032\x0002\0" + "\x0002\x0031\x0001\0\x0001\x002D\x0002\0\x0001\x002D\x0002\0\x0001\x0031\x0002\0" + "\x0002\x0013\x0001\0\x0001\x0030\x0001\0\x0001\x0008\x0002\x0029\x0001\0\x0001\x0013" + "\x0001\0"; + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0004\x0007\x0002\x0001\x0005\x0001\x0006\x000D\x0000\x0002\x0003" + + "\x0001\x0000\x0001\x0007\x0001\x0000\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x0003\x0002\x0000" + + "\x0001\x0003\x0001\x0004\x0001\x0000\x0001\x000B\x0001\x0000\x0001\x0008\x0002\x000C\x0001\x000D" + + "\x0001\x0004\x0002\x0000\x0001\x0003\x0001\x0004\x0001\x000E\x0001\x000F\x0001\x0010\x0001\x0011" + + "\x0002\x0009\x0001\x000A\x0001\x0012\x0002\x0000\x0001\x0013\x0001\x0014\x0007\x0000\x0001\x0015" + + "\x0002\x0000\x0002\x0016\x0007\x0000\x0001\x0016\x0002\x0000\x0001\x0017\x0001\x0018\x0007\x0000" + + "\x0001\x0019\x0003\x0000\x0001\x001A\x0007\x0000\x0001\x000A\x0002\x0000\x0001\x001B\x0001\x001C" + + "\x0007\x0000\x0001\x001D\x0002\x0000\x0001\x001E\x0001\x001F\x0007\x0000\x0001\x0020\x0002\x0000" + + "\x0001\x0021\x0001\x0022\x0007\x0000\x0001\x0023\x000B\x0000\x0001\x0024\x0002\x0000\x0001\x0013" + + "\x0001\x0014\x0007\x0000\x0001\x0025\x000B\x0000\x0001\x0026\x0002\x0000\x0002\x0016\x0007\x0000" + + "\x0001\x0027\x0002\x0000\x0001\x0003\x0001\x0004\x0001\x000E\x0001\x0007\x0001\x0010\x0001\x0011" + + "\x0002\x0009\x0001\x000A\x0001\x0012\x0002\x0000\x0002\x0013\x0001\x0000\x0001\x0028\x0001\x0000" + + "\x0001\x0008\x0002\x0029\x0001\x0000\x0001\x0013\x0002\x0000\x0001\x0013\x0001\x0014\x0001\x0000" + + "\x0001\x002A\x0001\x0000\x0001\x0008\x0002\x002B\x0001\x002C\x0001\x0014\x0002\x0000\x0001\x0013" + + "\x0001\x0014\x0001\x0000\x0001\x0028\x0001\x0000\x0001\x0008\x0002\x0029\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0002\x0016\x0001\x0000\x0001\x002D\x0002\x0000\x0001\x002D\x0002\x0000\x0001\x0016" + + "\x0002\x0000\x0002\x0017\x0001\x0000\x0001\x0029\x0001\x0000\x0001\x0008\x0002\x0029\x0001\x0000" + + "\x0001\x0017\x0002\x0000\x0001\x0017\x0001\x0018\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x0008" + + "\x0002\x002B\x0001\x002C\x0001\x0018\x0002\x0000\x0001\x0017\x0001\x0018\x0001\x0000\x0001\x0029" + + "\x0001\x0000\x0001\x0008\x0002\x0029\x0001\x0000\x0001\x0019\x0003\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0003\x002C\x0001\x001A\x0002\x0000\x0002\x001B\x0001\x0000\x0001\x002E" + + "\x0001\x0000\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x001B\x0002\x0000\x0001\x001B\x0001\x001C" + + "\x0001\x0000\x0001\x002F\x0001\x0000\x0001\x0008\x0002\x000C\x0001\x000D\x0001\x001C\x0002\x0000" + + "\x0001\x001B\x0001\x001C\x0001\x0000\x0001\x002E\x0001\x0000\x0001\x0008\x0002\x0009\x0001\x000A" + + "\x0001\x001D\x0002\x0000\x0002\x001E\x0001\x0000\x0001\x0009\x0001\x0000\x0001\x0008\x0002\x0009" + + "\x0001\x000A\x0001\x001E\x0002\x0000\x0001\x001E\x0001\x001F\x0001\x0000\x0001\x000C\x0001\x0000" + + "\x0001\x0008\x0002\x000C\x0001\x000D\x0001\x001F\x0002\x0000\x0001\x001E\x0001\x001F\x0001\x0000" + + "\x0001\x0009\x0001\x0000\x0001\x0008\x0002\x0009\x0001\x000A\x0001\x0020\x0002\x0000\x0002\x0021" + + "\x0001\x0000\x0001\x000A\x0002\x0000\x0003\x000A\x0001\x0021\x0002\x0000\x0001\x0021\x0001\x0022" + + "\x0001\x0000\x0001\x000D\x0002\x0000\x0003\x000D\x0001\x0022\x0002\x0000\x0001\x0021\x0001\x0022" + + "\x0001\x0000\x0001\x000A\x0002\x0000\x0003\x000A\x0001\x0023\x0004\x0000\x0001\x000E\x0006\x0000" + + "\x0001\x0024\x0002\x0000\x0001\x0013\x0001\x0014\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0008" + + "\x0002\x0029\x0001\x0000\x0001\x0015\x0002\x0000\x0002\x0016\x0001\x0000\x0001\x002D\x0002\x0000" + + "\x0001\x002D\x0002\x0000\x0001\x0027\x0002\x0000\x0002\x0013\x0007\x0000\x0001\x0013\x0002\x0000" + + "\x0002\x0017\x0007\x0000\x0001\x0017\x0002\x0000\x0002\x001B\x0007\x0000\x0001\x001B\x0002\x0000" + + "\x0002\x001E\x0007\x0000\x0001\x001E\x0002\x0000\x0002\x0021\x0007\x0000\x0001\x0021\x0002\x0000" + + "\x0002\x0031\x0007\x0000\x0001\x0031\x0002\x0000\x0002\x0013\x0007\x0000\x0001\x0032\x0002\x0000" + + "\x0002\x0031\x0001\x0000\x0001\x002D\x0002\x0000\x0001\x002D\x0002\x0000\x0001\x0031\x0002\x0000" + + "\x0002\x0013\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0008\x0002\x0029\x0001\x0000\x0001\x0013" + + "\x0001\x0000"; private static int[] ZzUnpackTrans() { @@ -174,7 +281,9 @@ private static int ZzUnpackTrans(string packed, int offset, int[] result) ///
private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); - private const string ZZ_ATTRIBUTE_PACKED_0 = "\x0001\0\x0001\x0009\x0003\x0001\x0001\x0009\x000B\0\x0004\x0001\x0002\0\x0001\x0001" + "\x0001\0\x000F\x0001\x0001\0\x0001\x0001\x0003\0\x0005\x0001"; + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0001\x0000\x0001\x0009\x0003\x0001\x0001\x0009\x000B\x0000\x0004\x0001\x0002\x0000\x0001\x0001" + + "\x0001\x0000\x000F\x0001\x0001\x0000\x0001\x0001\x0003\x0000\x0005\x0001"; private static int[] ZzUnpackAttribute() { @@ -706,4 +815,4 @@ public virtual int GetNextToken() } } } -} \ No newline at end of file +} diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs index 3ca263e917..b949d07d15 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs @@ -1,4 +1,4 @@ -// The following code was generated by JFlex 1.5.1 +// The following code was generated by JFlex 1.5.1 using Lucene.Net.Analysis.Tokenattributes; using System; using System.IO; @@ -66,7 +66,150 @@ public sealed class StandardTokenizerImpl : IStandardTokenizerInterface /// /// Translates characters to character classes /// - private const string ZZ_CMAP_PACKED = "\x0022\0\x0001\x008B\x0004\0\x0001\x008A\x0004\0\x0001\x0083\x0001\0\x0001\x0084\x0001\0\x000A\x0080" + "\x0001\x0082\x0001\x0083\x0005\0\x001A\x007E\x0004\0\x0001\x0085\x0001\0\x001A\x007E\x002F\0\x0001\x007E" + "\x0002\0\x0001\x007F\x0007\0\x0001\x007E\x0001\0\x0001\x0082\x0002\0\x0001\x007E\x0005\0\x0017\x007E" + "\x0001\0\x001F\x007E\x0001\0\u01ca\x007E\x0004\0\x000C\x007E\x0005\0\x0001\x0082\x0008\0\x0005\x007E" + "\x0007\0\x0001\x007E\x0001\0\x0001\x007E\x0011\0\x0070\x007F\x0005\x007E\x0001\0\x0002\x007E\x0002\0" + "\x0004\x007E\x0001\x0083\x0007\0\x0001\x007E\x0001\x0082\x0003\x007E\x0001\0\x0001\x007E\x0001\0\x0014\x007E" + "\x0001\0\x0053\x007E\x0001\0\x008B\x007E\x0001\0\x0007\x007F\x009E\x007E\x0009\0\x0026\x007E\x0002\0" + "\x0001\x007E\x0007\0\x0027\x007E\x0001\0\x0001\x0083\x0007\0\x002D\x007F\x0001\0\x0001\x007F\x0001\0" + "\x0002\x007F\x0001\0\x0002\x007F\x0001\0\x0001\x007F\x0008\0\x001B\x008C\x0005\0\x0003\x008C\x0001\x007E" + "\x0001\x0082\x000B\0\x0005\x007F\x0007\0\x0002\x0083\x0002\0\x000B\x007F\x0001\0\x0001\x007F\x0003\0" + "\x002B\x007E\x0015\x007F\x000A\x0080\x0001\0\x0001\x0080\x0001\x0083\x0001\0\x0002\x007E\x0001\x007F\x0063\x007E" + "\x0001\0\x0001\x007E\x0007\x007F\x0001\x007F\x0001\0\x0006\x007F\x0002\x007E\x0002\x007F\x0001\0\x0004\x007F" + "\x0002\x007E\x000A\x0080\x0003\x007E\x0002\0\x0001\x007E\x000F\0\x0001\x007F\x0001\x007E\x0001\x007F\x001E\x007E" + "\x001B\x007F\x0002\0\x0059\x007E\x000B\x007F\x0001\x007E\x000E\0\x000A\x0080\x0021\x007E\x0009\x007F\x0002\x007E" + "\x0002\0\x0001\x0083\x0001\0\x0001\x007E\x0005\0\x0016\x007E\x0004\x007F\x0001\x007E\x0009\x007F\x0001\x007E" + "\x0003\x007F\x0001\x007E\x0005\x007F\x0012\0\x0019\x007E\x0003\x007F\x0044\0\x0001\x007E\x0001\0\x000B\x007E" + "\x0037\0\x001B\x007F\x0001\0\x0004\x007F\x0036\x007E\x0003\x007F\x0001\x007E\x0012\x007F\x0001\x007E\x0007\x007F" + "\x000A\x007E\x0002\x007F\x0002\0\x000A\x0080\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0003\x007F" + "\x0001\0\x0008\x007E\x0002\0\x0002\x007E\x0002\0\x0016\x007E\x0001\0\x0007\x007E\x0001\0\x0001\x007E" + "\x0003\0\x0004\x007E\x0002\0\x0001\x007F\x0001\x007E\x0007\x007F\x0002\0\x0002\x007F\x0002\0\x0003\x007F" + "\x0001\x007E\x0008\0\x0001\x007F\x0004\0\x0002\x007E\x0001\0\x0003\x007E\x0002\x007F\x0002\0\x000A\x0080" + "\x0002\x007E\x000F\0\x0003\x007F\x0001\0\x0006\x007E\x0004\0\x0002\x007E\x0002\0\x0016\x007E\x0001\0" + "\x0007\x007E\x0001\0\x0002\x007E\x0001\0\x0002\x007E\x0001\0\x0002\x007E\x0002\0\x0001\x007F\x0001\0" + "\x0005\x007F\x0004\0\x0002\x007F\x0002\0\x0003\x007F\x0003\0\x0001\x007F\x0007\0\x0004\x007E\x0001\0" + "\x0001\x007E\x0007\0\x000A\x0080\x0002\x007F\x0003\x007E\x0001\x007F\x000B\0\x0003\x007F\x0001\0\x0009\x007E" + "\x0001\0\x0003\x007E\x0001\0\x0016\x007E\x0001\0\x0007\x007E\x0001\0\x0002\x007E\x0001\0\x0005\x007E" + "\x0002\0\x0001\x007F\x0001\x007E\x0008\x007F\x0001\0\x0003\x007F\x0001\0\x0003\x007F\x0002\0\x0001\x007E" + "\x000F\0\x0002\x007E\x0002\x007F\x0002\0\x000A\x0080\x0011\0\x0003\x007F\x0001\0\x0008\x007E\x0002\0" + "\x0002\x007E\x0002\0\x0016\x007E\x0001\0\x0007\x007E\x0001\0\x0002\x007E\x0001\0\x0005\x007E\x0002\0" + "\x0001\x007F\x0001\x007E\x0007\x007F\x0002\0\x0002\x007F\x0002\0\x0003\x007F\x0008\0\x0002\x007F\x0004\0" + "\x0002\x007E\x0001\0\x0003\x007E\x0002\x007F\x0002\0\x000A\x0080\x0001\0\x0001\x007E\x0010\0\x0001\x007F" + "\x0001\x007E\x0001\0\x0006\x007E\x0003\0\x0003\x007E\x0001\0\x0004\x007E\x0003\0\x0002\x007E\x0001\0" + "\x0001\x007E\x0001\0\x0002\x007E\x0003\0\x0002\x007E\x0003\0\x0003\x007E\x0003\0\x000C\x007E\x0004\0" + "\x0005\x007F\x0003\0\x0003\x007F\x0001\0\x0004\x007F\x0002\0\x0001\x007E\x0006\0\x0001\x007F\x000E\0" + "\x000A\x0080\x0011\0\x0003\x007F\x0001\0\x0008\x007E\x0001\0\x0003\x007E\x0001\0\x0017\x007E\x0001\0" + "\x000A\x007E\x0001\0\x0005\x007E\x0003\0\x0001\x007E\x0007\x007F\x0001\0\x0003\x007F\x0001\0\x0004\x007F" + "\x0007\0\x0002\x007F\x0001\0\x0002\x007E\x0006\0\x0002\x007E\x0002\x007F\x0002\0\x000A\x0080\x0012\0" + "\x0002\x007F\x0001\0\x0008\x007E\x0001\0\x0003\x007E\x0001\0\x0017\x007E\x0001\0\x000A\x007E\x0001\0" + "\x0005\x007E\x0002\0\x0001\x007F\x0001\x007E\x0007\x007F\x0001\0\x0003\x007F\x0001\0\x0004\x007F\x0007\0" + "\x0002\x007F\x0007\0\x0001\x007E\x0001\0\x0002\x007E\x0002\x007F\x0002\0\x000A\x0080\x0001\0\x0002\x007E" + "\x000F\0\x0002\x007F\x0001\0\x0008\x007E\x0001\0\x0003\x007E\x0001\0\x0029\x007E\x0002\0\x0001\x007E" + "\x0007\x007F\x0001\0\x0003\x007F\x0001\0\x0004\x007F\x0001\x007E\x0008\0\x0001\x007F\x0008\0\x0002\x007E" + "\x0002\x007F\x0002\0\x000A\x0080\x000A\0\x0006\x007E\x0002\0\x0002\x007F\x0001\0\x0012\x007E\x0003\0" + "\x0018\x007E\x0001\0\x0009\x007E\x0001\0\x0001\x007E\x0002\0\x0007\x007E\x0003\0\x0001\x007F\x0004\0" + "\x0006\x007F\x0001\0\x0001\x007F\x0001\0\x0008\x007F\x0012\0\x0002\x007F\x000D\0\x0030\x0086\x0001\x0087" + "\x0002\x0086\x0007\x0087\x0005\0\x0007\x0086\x0008\x0087\x0001\0\x000A\x0080\x0027\0\x0002\x0086\x0001\0" + "\x0001\x0086\x0002\0\x0002\x0086\x0001\0\x0001\x0086\x0002\0\x0001\x0086\x0006\0\x0004\x0086\x0001\0" + "\x0007\x0086\x0001\0\x0003\x0086\x0001\0\x0001\x0086\x0001\0\x0001\x0086\x0002\0\x0002\x0086\x0001\0" + "\x0004\x0086\x0001\x0087\x0002\x0086\x0006\x0087\x0001\0\x0002\x0087\x0001\x0086\x0002\0\x0005\x0086\x0001\0" + "\x0001\x0086\x0001\0\x0006\x0087\x0002\0\x000A\x0080\x0002\0\x0004\x0086\x0020\0\x0001\x007E\x0017\0" + "\x0002\x007F\x0006\0\x000A\x0080\x000B\0\x0001\x007F\x0001\0\x0001\x007F\x0001\0\x0001\x007F\x0004\0" + "\x0002\x007F\x0008\x007E\x0001\0\x0024\x007E\x0004\0\x0014\x007F\x0001\0\x0002\x007F\x0005\x007E\x000B\x007F" + "\x0001\0\x0024\x007F\x0009\0\x0001\x007F\x0039\0\x002B\x0086\x0014\x0087\x0001\x0086\x000A\x0080\x0006\0" + "\x0006\x0086\x0004\x0087\x0004\x0086\x0003\x0087\x0001\x0086\x0003\x0087\x0002\x0086\x0007\x0087\x0003\x0086\x0004\x0087" + "\x000D\x0086\x000C\x0087\x0001\x0086\x0001\x0087\x000A\x0080\x0004\x0087\x0002\x0086\x0026\x007E\x0001\0\x0001\x007E" + "\x0005\0\x0001\x007E\x0002\0\x002B\x007E\x0001\0\x0004\x007E\u0100\x008D\x0049\x007E\x0001\0\x0004\x007E" + "\x0002\0\x0007\x007E\x0001\0\x0001\x007E\x0001\0\x0004\x007E\x0002\0\x0029\x007E\x0001\0\x0004\x007E" + "\x0002\0\x0021\x007E\x0001\0\x0004\x007E\x0002\0\x0007\x007E\x0001\0\x0001\x007E\x0001\0\x0004\x007E" + "\x0002\0\x000F\x007E\x0001\0\x0039\x007E\x0001\0\x0004\x007E\x0002\0\x0043\x007E\x0002\0\x0003\x007F" + "\x0020\0\x0010\x007E\x0010\0\x0055\x007E\x000C\0\u026c\x007E\x0002\0\x0011\x007E\x0001\0\x001A\x007E" + "\x0005\0\x004B\x007E\x0003\0\x0003\x007E\x000F\0\x000D\x007E\x0001\0\x0004\x007E\x0003\x007F\x000B\0" + "\x0012\x007E\x0003\x007F\x000B\0\x0012\x007E\x0002\x007F\x000C\0\x000D\x007E\x0001\0\x0003\x007E\x0001\0" + "\x0002\x007F\x000C\0\x0034\x0086\x0020\x0087\x0003\0\x0001\x0086\x0004\0\x0001\x0086\x0001\x0087\x0002\0" + "\x000A\x0080\x0021\0\x0003\x007F\x0001\x007F\x0001\0\x000A\x0080\x0006\0\x0058\x007E\x0008\0\x0029\x007E" + "\x0001\x007F\x0001\x007E\x0005\0\x0046\x007E\x000A\0\x001D\x007E\x0003\0\x000C\x007F\x0004\0\x000C\x007F" + "\x000A\0\x000A\x0080\x001E\x0086\x0002\0\x0005\x0086\x000B\0\x002C\x0086\x0004\0\x0011\x0087\x0007\x0086" + "\x0002\x0087\x0006\0\x000A\x0080\x0001\x0086\x0003\0\x0002\x0086\x0020\0\x0017\x007E\x0005\x007F\x0004\0" + "\x0035\x0086\x000A\x0087\x0001\0\x001D\x0087\x0002\0\x0001\x007F\x000A\x0080\x0006\0\x000A\x0080\x0006\0" + "\x000E\x0086\x0052\0\x0005\x007F\x002F\x007E\x0011\x007F\x0007\x007E\x0004\0\x000A\x0080\x0011\0\x0009\x007F" + "\x000C\0\x0003\x007F\x001E\x007E\x000D\x007F\x0002\x007E\x000A\x0080\x002C\x007E\x000E\x007F\x000C\0\x0024\x007E" + "\x0014\x007F\x0008\0\x000A\x0080\x0003\0\x0003\x007E\x000A\x0080\x0024\x007E\x0052\0\x0003\x007F\x0001\0" + "\x0015\x007F\x0004\x007E\x0001\x007F\x0004\x007E\x0003\x007F\x0002\x007E\x0009\0\x00C0\x007E\x0027\x007F\x0015\0" + "\x0004\x007F\u0116\x007E\x0002\0\x0006\x007E\x0002\0\x0026\x007E\x0002\0\x0006\x007E\x0002\0\x0008\x007E" + "\x0001\0\x0001\x007E\x0001\0\x0001\x007E\x0001\0\x0001\x007E\x0001\0\x001F\x007E\x0002\0\x0035\x007E" + "\x0001\0\x0007\x007E\x0001\0\x0001\x007E\x0003\0\x0003\x007E\x0001\0\x0007\x007E\x0003\0\x0004\x007E" + "\x0002\0\x0006\x007E\x0004\0\x000D\x007E\x0005\0\x0003\x007E\x0001\0\x0007\x007E\x000F\0\x0002\x007F" + "\x0002\x007F\x0008\0\x0002\x0084\x000A\0\x0001\x0084\x0002\0\x0001\x0082\x0002\0\x0005\x007F\x0010\0" + "\x0002\x0085\x0003\0\x0001\x0083\x000F\0\x0001\x0085\x000B\0\x0005\x007F\x0001\0\x000A\x007F\x0001\0" + "\x0001\x007E\x000D\0\x0001\x007E\x0010\0\x000D\x007E\x0033\0\x0021\x007F\x0011\0\x0001\x007E\x0004\0" + "\x0001\x007E\x0002\0\x000A\x007E\x0001\0\x0001\x007E\x0003\0\x0005\x007E\x0006\0\x0001\x007E\x0001\0" + "\x0001\x007E\x0001\0\x0001\x007E\x0001\0\x0004\x007E\x0001\0\x000B\x007E\x0002\0\x0004\x007E\x0005\0" + "\x0005\x007E\x0004\0\x0001\x007E\x0011\0\x0029\x007E\u032d\0\x0034\x007E\u0716\0\x002F\x007E\x0001\0" + "\x002F\x007E\x0001\0\x0085\x007E\x0006\0\x0004\x007E\x0003\x007F\x0002\x007E\x000C\0\x0026\x007E\x0001\0" + "\x0001\x007E\x0005\0\x0001\x007E\x0002\0\x0038\x007E\x0007\0\x0001\x007E\x000F\0\x0001\x007F\x0017\x007E" + "\x0009\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E" + "\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0007\x007E\x0001\0\x0020\x007F\x002F\0\x0001\x007E" + "\x0050\0\x001A\x0088\x0001\0\x0059\x0088\x000C\0\x00D6\x0088\x002F\0\x0001\x007E\x0001\0\x0001\x0088" + "\x0019\0\x0009\x0088\x0006\x007F\x0001\0\x0005\x0081\x0002\0\x0003\x0088\x0001\x007E\x0001\x007E\x0004\0" + "\x0056\x0089\x0002\0\x0002\x007F\x0002\x0081\x0003\x0089\x005B\x0081\x0001\0\x0004\x0081\x0005\0\x0029\x007E" + "\x0003\0\x005E\x008D\x0011\0\x001B\x007E\x0035\0\x0010\x0081\x00D0\0\x002F\x0081\x0001\0\x0058\x0081" + "\x00A8\0\u19b6\x0088\x004A\0\u51cd\x0088\x0033\0\u048d\x007E\x0043\0\x002E\x007E\x0002\0\u010d\x007E" + "\x0003\0\x0010\x007E\x000A\x0080\x0002\x007E\x0014\0\x002F\x007E\x0004\x007F\x0001\0\x000A\x007F\x0001\0" + "\x0019\x007E\x0007\0\x0001\x007F\x0050\x007E\x0002\x007F\x0025\0\x0009\x007E\x0002\0\x0067\x007E\x0002\0" + "\x0004\x007E\x0001\0\x0004\x007E\x000C\0\x000B\x007E\x004D\0\x000A\x007E\x0001\x007F\x0003\x007E\x0001\x007F" + "\x0004\x007E\x0001\x007F\x0017\x007E\x0005\x007F\x0018\0\x0034\x007E\x000C\0\x0002\x007F\x0032\x007E\x0011\x007F" + "\x000B\0\x000A\x0080\x0006\0\x0012\x007F\x0006\x007E\x0003\0\x0001\x007E\x0004\0\x000A\x0080\x001C\x007E" + "\x0008\x007F\x0002\0\x0017\x007E\x000D\x007F\x000C\0\x001D\x008D\x0003\0\x0004\x007F\x002F\x007E\x000E\x007F" + "\x000E\0\x0001\x007E\x000A\x0080\x0026\0\x0029\x007E\x000E\x007F\x0009\0\x0003\x007E\x0001\x007F\x0008\x007E" + "\x0002\x007F\x0002\0\x000A\x0080\x0006\0\x001B\x0086\x0001\x0087\x0004\0\x0030\x0086\x0001\x0087\x0001\x0086" + "\x0003\x0087\x0002\x0086\x0002\x0087\x0005\x0086\x0002\x0087\x0001\x0086\x0001\x0087\x0001\x0086\x0018\0\x0005\x0086" + "\x000B\x007E\x0005\x007F\x0002\0\x0003\x007E\x0002\x007F\x000A\0\x0006\x007E\x0002\0\x0006\x007E\x0002\0" + "\x0006\x007E\x0009\0\x0007\x007E\x0001\0\x0007\x007E\x0091\0\x0023\x007E\x0008\x007F\x0001\0\x0002\x007F" + "\x0002\0\x000A\x0080\x0006\0\u2ba4\x008D\x000C\0\x0017\x008D\x0004\0\x0031\x008D\x0004\0\x0001\x0024" + "\x0001\x0020\x0001\x0037\x0001\x0034\x0001\x001B\x0001\x0018\x0002\0\x0001\x0014\x0001\x0011\x0002\0\x0001\x000F" + "\x0001\x000D\x000C\0\x0001\x0003\x0001\x0006\x0010\0\x0001\x006E\x0007\0\x0001\x0049\x0001\x0008\x0005\0" + "\x0001\x0001\x0001\x007A\x0003\0\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0074\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0078\x0001\x0076" + "\x000F\0\x0001\x0070\u02c1\0\x0001\x004C\x00BF\0\x0001\x006F\x0001\x004D\x0001\x000E\x0003\x0077\x0002\x0032" + "\x0001\x0077\x0001\x0032\x0002\x0077\x0001\x001E\x0011\x0077\x0002\x0046\x0007\x004F\x0001\x004E\x0007\x004F\x0007\x0042" + "\x0001\x001F\x0001\x0042\x0001\x0060\x0002\x0036\x0001\x0035\x0001\x0060\x0001\x0036\x0001\x0035\x0008\x0060\x0002\x0047" + "\x0005\x0043\x0002\x003D\x0005\x0043\x0001\x0012\x0008\x002B\x0005\x0013\x0003\x0021\x000A\x0052\x0010\x0021\x0003\x0033" + "\x001A\x0023\x0001\x0022\x0002\x0031\x0002\x0056\x0001\x0057\x0002\x0056\x0002\x0057\x0002\x0056\x0001\x0057\x0003\x0031" + "\x0001\x0030\x0002\x0031\x000A\x0048\x0001\x005E\x0001\x0028\x0001\x0025\x0001\x0048\x0006\x0028\x0001\x0025\x000B\x0028" + "\x0019\x0031\x0007\x0028\x000A\x0053\x0001\x0028\x0005\x000B\x0003\x005F\x0003\x0041\x0001\x0040\x0004\x0041\x0002\x0040" + "\x0008\x0041\x0001\x0040\x0007\x001D\x0001\x001C\x0002\x001D\x0007\x0041\x000E\x005F\x0001\x0069\x0004\x0054\x0001\x0004" + "\x0004\x0051\x0001\x0004\x0005\x0068\x0001\x0067\x0001\x0068\x0003\x0067\x0007\x0068\x0001\x0067\x0013\x0068\x0005\x004B" + "\x0003\x0068\x0006\x004B\x0002\x004B\x0006\x004A\x0005\x004A\x0003\x0064\x0002\x0041\x0007\x0063\x001E\x0041\x0004\x0063" + "\x0005\x0041\x0005\x005F\x0006\x005D\x0002\x005F\x0001\x005D\x0004\x001D\x000B\x0066\x000A\x0051\x000C\x0066\x000A\x007D" + "\x000D\x007C\x0001\x0065\x0002\x007C\x0001\x007B\x0003\x006A\x0001\x000B\x0002\x006A\x0005\x0071\x0004\x006A\x0004\x0072" + "\x0001\x0071\x0003\x0072\x0001\x0071\x0005\x0072\x0002\x0038\x0001\x003B\x0002\x0038\x0001\x003B\x0001\x0038\x0002\x003B" + "\x0001\x0038\x0001\x003B\x000A\x0038\x0001\x003B\x0004\x0005\x0001\x006C\x0001\x006B\x0001\x006D\x0001\x000A\x0003\x0075" + "\x0001\x006D\x0002\x0075\x0001\x0061\x0002\x0062\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A" + "\x0001\x0075\x0003\x000A\x0001\x0075\x0002\x000A\x0001\x0075\x0001\x000A\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A" + "\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x003E\x0002\x003A\x0001\x003E\x0001\x003A" + "\x0002\x003E\x0004\x003A\x0001\x003E\x0007\x003A\x0001\x003E\x0004\x003A\x0001\x003E\x0004\x003A\x0001\x0075\x0001\x000A" + "\x0001\x0075\x000A\x0019\x0001\x002F\x0011\x0019\x0001\x002F\x0003\x001A\x0001\x002F\x0003\x0019\x0001\x002F\x0001\x0019" + "\x0002\x0002\x0002\x0019\x0001\x002F\x000D\x005C\x0004\x0027\x0004\x002C\x0001\x0050\x0001\x002E\x0008\x0050\x0007\x002C" + "\x0006\x0075\x0004\x0015\x0001\x0017\x001F\x0015\x0001\x0017\x0004\x0015\x0015\x0045\x0001\x0079\x0009\x0045\x0011\x0016" + "\x0005\x0045\x0001\x0007\x000A\x002D\x0005\x0045\x0006\x0044\x0004\x003E\x0001\x003F\x0001\x0016\x0005\x005B\x000A\x0059" + "\x000F\x005B\x0001\x003C\x0003\x0039\x000C\x0058\x0001\x0009\x0009\x0026\x0001\x002A\x0005\x0026\x0004\x005A\x000B\x0029" + "\x0002\x000C\x0009\x0026\x0001\x002A\x0019\x0026\x0001\x002A\x0004\x0009\x0004\x0026\x0002\x002A\x0002\x0055\x0001\x0010" + "\x0005\x0055\x002A\x0010\u1900\0\u016e\x0088\x0002\0\x006A\x0088\x0026\0\x0007\x007E\x000C\0\x0005\x007E" + "\x0005\0\x0001\x008C\x0001\x007F\x000A\x008C\x0001\0\x000D\x008C\x0001\0\x0005\x008C\x0001\0\x0001\x008C" + "\x0001\0\x0002\x008C\x0001\0\x0002\x008C\x0001\0\x000A\x008C\x0062\x007E\x0021\0\u016b\x007E\x0012\0" + "\x0040\x007E\x0002\0\x0036\x007E\x0028\0\x000C\x007E\x0004\0\x0010\x007F\x0001\x0083\x0002\0\x0001\x0082" + "\x0001\x0083\x000B\0\x0007\x007F\x000C\0\x0002\x0085\x0018\0\x0003\x0085\x0001\x0083\x0001\0\x0001\x0084" + "\x0001\0\x0001\x0083\x0001\x0082\x001A\0\x0005\x007E\x0001\0\x0087\x007E\x0002\0\x0001\x007F\x0007\0" + "\x0001\x0084\x0004\0\x0001\x0083\x0001\0\x0001\x0084\x0001\0\x000A\x0080\x0001\x0082\x0001\x0083\x0005\0" + "\x001A\x007E\x0004\0\x0001\x0085\x0001\0\x001A\x007E\x000B\0\x0038\x0081\x0002\x007F\x001F\x008D\x0003\0" + "\x0006\x008D\x0002\0\x0006\x008D\x0002\0\x0006\x008D\x0002\0\x0003\x008D\x001C\0\x0003\x007F\x0004\0"; + private const string ZZ_CMAP_PACKED = + "\x0022\x0000\x0001\x008B\x0004\x0000\x0001\x008A\x0004\x0000\x0001\x0083\x0001\x0000\x0001\x0084\x0001\x0000\x000A\x0080" + + "\x0001\x0082\x0001\x0083\x0005\x0000\x001A\x007E\x0004\x0000\x0001\x0085\x0001\x0000\x001A\x007E\x002F\x0000\x0001\x007E" + + "\x0002\x0000\x0001\x007F\x0007\x0000\x0001\x007E\x0001\x0000\x0001\x0082\x0002\x0000\x0001\x007E\x0005\x0000\x0017\x007E" + + "\x0001\x0000\x001F\x007E\x0001\x0000\u01ca\x007E\x0004\x0000\x000C\x007E\x0005\x0000\x0001\x0082\x0008\x0000\x0005\x007E" + + "\x0007\x0000\x0001\x007E\x0001\x0000\x0001\x007E\x0011\x0000\x0070\x007F\x0005\x007E\x0001\x0000\x0002\x007E\x0002\x0000" + + "\x0004\x007E\x0001\x0083\x0007\x0000\x0001\x007E\x0001\x0082\x0003\x007E\x0001\x0000\x0001\x007E\x0001\x0000\x0014\x007E" + + "\x0001\x0000\x0053\x007E\x0001\x0000\x008B\x007E\x0001\x0000\x0007\x007F\x009E\x007E\x0009\x0000\x0026\x007E\x0002\x0000" + + "\x0001\x007E\x0007\x0000\x0027\x007E\x0001\x0000\x0001\x0083\x0007\x0000\x002D\x007F\x0001\x0000\x0001\x007F\x0001\x0000" + + "\x0002\x007F\x0001\x0000\x0002\x007F\x0001\x0000\x0001\x007F\x0008\x0000\x001B\x008C\x0005\x0000\x0003\x008C\x0001\x007E" + + "\x0001\x0082\x000B\x0000\x0005\x007F\x0007\x0000\x0002\x0083\x0002\x0000\x000B\x007F\x0001\x0000\x0001\x007F\x0003\x0000" + + "\x002B\x007E\x0015\x007F\x000A\x0080\x0001\x0000\x0001\x0080\x0001\x0083\x0001\x0000\x0002\x007E\x0001\x007F\x0063\x007E" + + "\x0001\x0000\x0001\x007E\x0007\x007F\x0001\x007F\x0001\x0000\x0006\x007F\x0002\x007E\x0002\x007F\x0001\x0000\x0004\x007F" + + "\x0002\x007E\x000A\x0080\x0003\x007E\x0002\x0000\x0001\x007E\x000F\x0000\x0001\x007F\x0001\x007E\x0001\x007F\x001E\x007E" + + "\x001B\x007F\x0002\x0000\x0059\x007E\x000B\x007F\x0001\x007E\x000E\x0000\x000A\x0080\x0021\x007E\x0009\x007F\x0002\x007E" + + "\x0002\x0000\x0001\x0083\x0001\x0000\x0001\x007E\x0005\x0000\x0016\x007E\x0004\x007F\x0001\x007E\x0009\x007F\x0001\x007E" + + "\x0003\x007F\x0001\x007E\x0005\x007F\x0012\x0000\x0019\x007E\x0003\x007F\x0044\x0000\x0001\x007E\x0001\x0000\x000B\x007E" + + "\x0037\x0000\x001B\x007F\x0001\x0000\x0004\x007F\x0036\x007E\x0003\x007F\x0001\x007E\x0012\x007F\x0001\x007E\x0007\x007F" + + "\x000A\x007E\x0002\x007F\x0002\x0000\x000A\x0080\x0001\x0000\x0007\x007E\x0001\x0000\x0007\x007E\x0001\x0000\x0003\x007F" + + "\x0001\x0000\x0008\x007E\x0002\x0000\x0002\x007E\x0002\x0000\x0016\x007E\x0001\x0000\x0007\x007E\x0001\x0000\x0001\x007E" + + "\x0003\x0000\x0004\x007E\x0002\x0000\x0001\x007F\x0001\x007E\x0007\x007F\x0002\x0000\x0002\x007F\x0002\x0000\x0003\x007F" + + "\x0001\x007E\x0008\x0000\x0001\x007F\x0004\x0000\x0002\x007E\x0001\x0000\x0003\x007E\x0002\x007F\x0002\x0000\x000A\x0080" + + "\x0002\x007E\x000F\x0000\x0003\x007F\x0001\x0000\x0006\x007E\x0004\x0000\x0002\x007E\x0002\x0000\x0016\x007E\x0001\x0000" + + "\x0007\x007E\x0001\x0000\x0002\x007E\x0001\x0000\x0002\x007E\x0001\x0000\x0002\x007E\x0002\x0000\x0001\x007F\x0001\x0000" + + "\x0005\x007F\x0004\x0000\x0002\x007F\x0002\x0000\x0003\x007F\x0003\x0000\x0001\x007F\x0007\x0000\x0004\x007E\x0001\x0000" + + "\x0001\x007E\x0007\x0000\x000A\x0080\x0002\x007F\x0003\x007E\x0001\x007F\x000B\x0000\x0003\x007F\x0001\x0000\x0009\x007E" + + "\x0001\x0000\x0003\x007E\x0001\x0000\x0016\x007E\x0001\x0000\x0007\x007E\x0001\x0000\x0002\x007E\x0001\x0000\x0005\x007E" + + "\x0002\x0000\x0001\x007F\x0001\x007E\x0008\x007F\x0001\x0000\x0003\x007F\x0001\x0000\x0003\x007F\x0002\x0000\x0001\x007E" + + "\x000F\x0000\x0002\x007E\x0002\x007F\x0002\x0000\x000A\x0080\x0011\x0000\x0003\x007F\x0001\x0000\x0008\x007E\x0002\x0000" + + "\x0002\x007E\x0002\x0000\x0016\x007E\x0001\x0000\x0007\x007E\x0001\x0000\x0002\x007E\x0001\x0000\x0005\x007E\x0002\x0000" + + "\x0001\x007F\x0001\x007E\x0007\x007F\x0002\x0000\x0002\x007F\x0002\x0000\x0003\x007F\x0008\x0000\x0002\x007F\x0004\x0000" + + "\x0002\x007E\x0001\x0000\x0003\x007E\x0002\x007F\x0002\x0000\x000A\x0080\x0001\x0000\x0001\x007E\x0010\x0000\x0001\x007F" + + "\x0001\x007E\x0001\x0000\x0006\x007E\x0003\x0000\x0003\x007E\x0001\x0000\x0004\x007E\x0003\x0000\x0002\x007E\x0001\x0000" + + "\x0001\x007E\x0001\x0000\x0002\x007E\x0003\x0000\x0002\x007E\x0003\x0000\x0003\x007E\x0003\x0000\x000C\x007E\x0004\x0000" + + "\x0005\x007F\x0003\x0000\x0003\x007F\x0001\x0000\x0004\x007F\x0002\x0000\x0001\x007E\x0006\x0000\x0001\x007F\x000E\x0000" + + "\x000A\x0080\x0011\x0000\x0003\x007F\x0001\x0000\x0008\x007E\x0001\x0000\x0003\x007E\x0001\x0000\x0017\x007E\x0001\x0000" + + "\x000A\x007E\x0001\x0000\x0005\x007E\x0003\x0000\x0001\x007E\x0007\x007F\x0001\x0000\x0003\x007F\x0001\x0000\x0004\x007F" + + "\x0007\x0000\x0002\x007F\x0001\x0000\x0002\x007E\x0006\x0000\x0002\x007E\x0002\x007F\x0002\x0000\x000A\x0080\x0012\x0000" + + "\x0002\x007F\x0001\x0000\x0008\x007E\x0001\x0000\x0003\x007E\x0001\x0000\x0017\x007E\x0001\x0000\x000A\x007E\x0001\x0000" + + "\x0005\x007E\x0002\x0000\x0001\x007F\x0001\x007E\x0007\x007F\x0001\x0000\x0003\x007F\x0001\x0000\x0004\x007F\x0007\x0000" + + "\x0002\x007F\x0007\x0000\x0001\x007E\x0001\x0000\x0002\x007E\x0002\x007F\x0002\x0000\x000A\x0080\x0001\x0000\x0002\x007E" + + "\x000F\x0000\x0002\x007F\x0001\x0000\x0008\x007E\x0001\x0000\x0003\x007E\x0001\x0000\x0029\x007E\x0002\x0000\x0001\x007E" + + "\x0007\x007F\x0001\x0000\x0003\x007F\x0001\x0000\x0004\x007F\x0001\x007E\x0008\x0000\x0001\x007F\x0008\x0000\x0002\x007E" + + "\x0002\x007F\x0002\x0000\x000A\x0080\x000A\x0000\x0006\x007E\x0002\x0000\x0002\x007F\x0001\x0000\x0012\x007E\x0003\x0000" + + "\x0018\x007E\x0001\x0000\x0009\x007E\x0001\x0000\x0001\x007E\x0002\x0000\x0007\x007E\x0003\x0000\x0001\x007F\x0004\x0000" + + "\x0006\x007F\x0001\x0000\x0001\x007F\x0001\x0000\x0008\x007F\x0012\x0000\x0002\x007F\x000D\x0000\x0030\x0086\x0001\x0087" + + "\x0002\x0086\x0007\x0087\x0005\x0000\x0007\x0086\x0008\x0087\x0001\x0000\x000A\x0080\x0027\x0000\x0002\x0086\x0001\x0000" + + "\x0001\x0086\x0002\x0000\x0002\x0086\x0001\x0000\x0001\x0086\x0002\x0000\x0001\x0086\x0006\x0000\x0004\x0086\x0001\x0000" + + "\x0007\x0086\x0001\x0000\x0003\x0086\x0001\x0000\x0001\x0086\x0001\x0000\x0001\x0086\x0002\x0000\x0002\x0086\x0001\x0000" + + "\x0004\x0086\x0001\x0087\x0002\x0086\x0006\x0087\x0001\x0000\x0002\x0087\x0001\x0086\x0002\x0000\x0005\x0086\x0001\x0000" + + "\x0001\x0086\x0001\x0000\x0006\x0087\x0002\x0000\x000A\x0080\x0002\x0000\x0004\x0086\x0020\x0000\x0001\x007E\x0017\x0000" + + "\x0002\x007F\x0006\x0000\x000A\x0080\x000B\x0000\x0001\x007F\x0001\x0000\x0001\x007F\x0001\x0000\x0001\x007F\x0004\x0000" + + "\x0002\x007F\x0008\x007E\x0001\x0000\x0024\x007E\x0004\x0000\x0014\x007F\x0001\x0000\x0002\x007F\x0005\x007E\x000B\x007F" + + "\x0001\x0000\x0024\x007F\x0009\x0000\x0001\x007F\x0039\x0000\x002B\x0086\x0014\x0087\x0001\x0086\x000A\x0080\x0006\x0000" + + "\x0006\x0086\x0004\x0087\x0004\x0086\x0003\x0087\x0001\x0086\x0003\x0087\x0002\x0086\x0007\x0087\x0003\x0086\x0004\x0087" + + "\x000D\x0086\x000C\x0087\x0001\x0086\x0001\x0087\x000A\x0080\x0004\x0087\x0002\x0086\x0026\x007E\x0001\x0000\x0001\x007E" + + "\x0005\x0000\x0001\x007E\x0002\x0000\x002B\x007E\x0001\x0000\x0004\x007E\u0100\x008D\x0049\x007E\x0001\x0000\x0004\x007E" + + "\x0002\x0000\x0007\x007E\x0001\x0000\x0001\x007E\x0001\x0000\x0004\x007E\x0002\x0000\x0029\x007E\x0001\x0000\x0004\x007E" + + "\x0002\x0000\x0021\x007E\x0001\x0000\x0004\x007E\x0002\x0000\x0007\x007E\x0001\x0000\x0001\x007E\x0001\x0000\x0004\x007E" + + "\x0002\x0000\x000F\x007E\x0001\x0000\x0039\x007E\x0001\x0000\x0004\x007E\x0002\x0000\x0043\x007E\x0002\x0000\x0003\x007F" + + "\x0020\x0000\x0010\x007E\x0010\x0000\x0055\x007E\x000C\x0000\u026c\x007E\x0002\x0000\x0011\x007E\x0001\x0000\x001A\x007E" + + "\x0005\x0000\x004B\x007E\x0003\x0000\x0003\x007E\x000F\x0000\x000D\x007E\x0001\x0000\x0004\x007E\x0003\x007F\x000B\x0000" + + "\x0012\x007E\x0003\x007F\x000B\x0000\x0012\x007E\x0002\x007F\x000C\x0000\x000D\x007E\x0001\x0000\x0003\x007E\x0001\x0000" + + "\x0002\x007F\x000C\x0000\x0034\x0086\x0020\x0087\x0003\x0000\x0001\x0086\x0004\x0000\x0001\x0086\x0001\x0087\x0002\x0000" + + "\x000A\x0080\x0021\x0000\x0003\x007F\x0001\x007F\x0001\x0000\x000A\x0080\x0006\x0000\x0058\x007E\x0008\x0000\x0029\x007E" + + "\x0001\x007F\x0001\x007E\x0005\x0000\x0046\x007E\x000A\x0000\x001D\x007E\x0003\x0000\x000C\x007F\x0004\x0000\x000C\x007F" + + "\x000A\x0000\x000A\x0080\x001E\x0086\x0002\x0000\x0005\x0086\x000B\x0000\x002C\x0086\x0004\x0000\x0011\x0087\x0007\x0086" + + "\x0002\x0087\x0006\x0000\x000A\x0080\x0001\x0086\x0003\x0000\x0002\x0086\x0020\x0000\x0017\x007E\x0005\x007F\x0004\x0000" + + "\x0035\x0086\x000A\x0087\x0001\x0000\x001D\x0087\x0002\x0000\x0001\x007F\x000A\x0080\x0006\x0000\x000A\x0080\x0006\x0000" + + "\x000E\x0086\x0052\x0000\x0005\x007F\x002F\x007E\x0011\x007F\x0007\x007E\x0004\x0000\x000A\x0080\x0011\x0000\x0009\x007F" + + "\x000C\x0000\x0003\x007F\x001E\x007E\x000D\x007F\x0002\x007E\x000A\x0080\x002C\x007E\x000E\x007F\x000C\x0000\x0024\x007E" + + "\x0014\x007F\x0008\x0000\x000A\x0080\x0003\x0000\x0003\x007E\x000A\x0080\x0024\x007E\x0052\x0000\x0003\x007F\x0001\x0000" + + "\x0015\x007F\x0004\x007E\x0001\x007F\x0004\x007E\x0003\x007F\x0002\x007E\x0009\x0000\x00C0\x007E\x0027\x007F\x0015\x0000" + + "\x0004\x007F\u0116\x007E\x0002\x0000\x0006\x007E\x0002\x0000\x0026\x007E\x0002\x0000\x0006\x007E\x0002\x0000\x0008\x007E" + + "\x0001\x0000\x0001\x007E\x0001\x0000\x0001\x007E\x0001\x0000\x0001\x007E\x0001\x0000\x001F\x007E\x0002\x0000\x0035\x007E" + + "\x0001\x0000\x0007\x007E\x0001\x0000\x0001\x007E\x0003\x0000\x0003\x007E\x0001\x0000\x0007\x007E\x0003\x0000\x0004\x007E" + + "\x0002\x0000\x0006\x007E\x0004\x0000\x000D\x007E\x0005\x0000\x0003\x007E\x0001\x0000\x0007\x007E\x000F\x0000\x0002\x007F" + + "\x0002\x007F\x0008\x0000\x0002\x0084\x000A\x0000\x0001\x0084\x0002\x0000\x0001\x0082\x0002\x0000\x0005\x007F\x0010\x0000" + + "\x0002\x0085\x0003\x0000\x0001\x0083\x000F\x0000\x0001\x0085\x000B\x0000\x0005\x007F\x0001\x0000\x000A\x007F\x0001\x0000" + + "\x0001\x007E\x000D\x0000\x0001\x007E\x0010\x0000\x000D\x007E\x0033\x0000\x0021\x007F\x0011\x0000\x0001\x007E\x0004\x0000" + + "\x0001\x007E\x0002\x0000\x000A\x007E\x0001\x0000\x0001\x007E\x0003\x0000\x0005\x007E\x0006\x0000\x0001\x007E\x0001\x0000" + + "\x0001\x007E\x0001\x0000\x0001\x007E\x0001\x0000\x0004\x007E\x0001\x0000\x000B\x007E\x0002\x0000\x0004\x007E\x0005\x0000" + + "\x0005\x007E\x0004\x0000\x0001\x007E\x0011\x0000\x0029\x007E\u032d\x0000\x0034\x007E\u0716\x0000\x002F\x007E\x0001\x0000" + + "\x002F\x007E\x0001\x0000\x0085\x007E\x0006\x0000\x0004\x007E\x0003\x007F\x0002\x007E\x000C\x0000\x0026\x007E\x0001\x0000" + + "\x0001\x007E\x0005\x0000\x0001\x007E\x0002\x0000\x0038\x007E\x0007\x0000\x0001\x007E\x000F\x0000\x0001\x007F\x0017\x007E" + + "\x0009\x0000\x0007\x007E\x0001\x0000\x0007\x007E\x0001\x0000\x0007\x007E\x0001\x0000\x0007\x007E\x0001\x0000\x0007\x007E" + + "\x0001\x0000\x0007\x007E\x0001\x0000\x0007\x007E\x0001\x0000\x0007\x007E\x0001\x0000\x0020\x007F\x002F\x0000\x0001\x007E" + + "\x0050\x0000\x001A\x0088\x0001\x0000\x0059\x0088\x000C\x0000\x00D6\x0088\x002F\x0000\x0001\x007E\x0001\x0000\x0001\x0088" + + "\x0019\x0000\x0009\x0088\x0006\x007F\x0001\x0000\x0005\x0081\x0002\x0000\x0003\x0088\x0001\x007E\x0001\x007E\x0004\x0000" + + "\x0056\x0089\x0002\x0000\x0002\x007F\x0002\x0081\x0003\x0089\x005B\x0081\x0001\x0000\x0004\x0081\x0005\x0000\x0029\x007E" + + "\x0003\x0000\x005E\x008D\x0011\x0000\x001B\x007E\x0035\x0000\x0010\x0081\x00D0\x0000\x002F\x0081\x0001\x0000\x0058\x0081" + + "\x00A8\x0000\u19b6\x0088\x004A\x0000\u51cd\x0088\x0033\x0000\u048d\x007E\x0043\x0000\x002E\x007E\x0002\x0000\u010d\x007E" + + "\x0003\x0000\x0010\x007E\x000A\x0080\x0002\x007E\x0014\x0000\x002F\x007E\x0004\x007F\x0001\x0000\x000A\x007F\x0001\x0000" + + "\x0019\x007E\x0007\x0000\x0001\x007F\x0050\x007E\x0002\x007F\x0025\x0000\x0009\x007E\x0002\x0000\x0067\x007E\x0002\x0000" + + "\x0004\x007E\x0001\x0000\x0004\x007E\x000C\x0000\x000B\x007E\x004D\x0000\x000A\x007E\x0001\x007F\x0003\x007E\x0001\x007F" + + "\x0004\x007E\x0001\x007F\x0017\x007E\x0005\x007F\x0018\x0000\x0034\x007E\x000C\x0000\x0002\x007F\x0032\x007E\x0011\x007F" + + "\x000B\x0000\x000A\x0080\x0006\x0000\x0012\x007F\x0006\x007E\x0003\x0000\x0001\x007E\x0004\x0000\x000A\x0080\x001C\x007E" + + "\x0008\x007F\x0002\x0000\x0017\x007E\x000D\x007F\x000C\x0000\x001D\x008D\x0003\x0000\x0004\x007F\x002F\x007E\x000E\x007F" + + "\x000E\x0000\x0001\x007E\x000A\x0080\x0026\x0000\x0029\x007E\x000E\x007F\x0009\x0000\x0003\x007E\x0001\x007F\x0008\x007E" + + "\x0002\x007F\x0002\x0000\x000A\x0080\x0006\x0000\x001B\x0086\x0001\x0087\x0004\x0000\x0030\x0086\x0001\x0087\x0001\x0086" + + "\x0003\x0087\x0002\x0086\x0002\x0087\x0005\x0086\x0002\x0087\x0001\x0086\x0001\x0087\x0001\x0086\x0018\x0000\x0005\x0086" + + "\x000B\x007E\x0005\x007F\x0002\x0000\x0003\x007E\x0002\x007F\x000A\x0000\x0006\x007E\x0002\x0000\x0006\x007E\x0002\x0000" + + "\x0006\x007E\x0009\x0000\x0007\x007E\x0001\x0000\x0007\x007E\x0091\x0000\x0023\x007E\x0008\x007F\x0001\x0000\x0002\x007F" + + "\x0002\x0000\x000A\x0080\x0006\x0000\u2ba4\x008D\x000C\x0000\x0017\x008D\x0004\x0000\x0031\x008D\x0004\x0000\x0001\x0024" + + "\x0001\x0020\x0001\x0037\x0001\x0034\x0001\x001B\x0001\x0018\x0002\x0000\x0001\x0014\x0001\x0011\x0002\x0000\x0001\x000F" + + "\x0001\x000D\x000C\x0000\x0001\x0003\x0001\x0006\x0010\x0000\x0001\x006E\x0007\x0000\x0001\x0049\x0001\x0008\x0005\x0000" + + "\x0001\x0001\x0001\x007A\x0003\x0000\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0074\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0078\x0001\x0076" + + "\x000F\x0000\x0001\x0070\u02c1\x0000\x0001\x004C\x00BF\x0000\x0001\x006F\x0001\x004D\x0001\x000E\x0003\x0077\x0002\x0032" + + "\x0001\x0077\x0001\x0032\x0002\x0077\x0001\x001E\x0011\x0077\x0002\x0046\x0007\x004F\x0001\x004E\x0007\x004F\x0007\x0042" + + "\x0001\x001F\x0001\x0042\x0001\x0060\x0002\x0036\x0001\x0035\x0001\x0060\x0001\x0036\x0001\x0035\x0008\x0060\x0002\x0047" + + "\x0005\x0043\x0002\x003D\x0005\x0043\x0001\x0012\x0008\x002B\x0005\x0013\x0003\x0021\x000A\x0052\x0010\x0021\x0003\x0033" + + "\x001A\x0023\x0001\x0022\x0002\x0031\x0002\x0056\x0001\x0057\x0002\x0056\x0002\x0057\x0002\x0056\x0001\x0057\x0003\x0031" + + "\x0001\x0030\x0002\x0031\x000A\x0048\x0001\x005E\x0001\x0028\x0001\x0025\x0001\x0048\x0006\x0028\x0001\x0025\x000B\x0028" + + "\x0019\x0031\x0007\x0028\x000A\x0053\x0001\x0028\x0005\x000B\x0003\x005F\x0003\x0041\x0001\x0040\x0004\x0041\x0002\x0040" + + "\x0008\x0041\x0001\x0040\x0007\x001D\x0001\x001C\x0002\x001D\x0007\x0041\x000E\x005F\x0001\x0069\x0004\x0054\x0001\x0004" + + "\x0004\x0051\x0001\x0004\x0005\x0068\x0001\x0067\x0001\x0068\x0003\x0067\x0007\x0068\x0001\x0067\x0013\x0068\x0005\x004B" + + "\x0003\x0068\x0006\x004B\x0002\x004B\x0006\x004A\x0005\x004A\x0003\x0064\x0002\x0041\x0007\x0063\x001E\x0041\x0004\x0063" + + "\x0005\x0041\x0005\x005F\x0006\x005D\x0002\x005F\x0001\x005D\x0004\x001D\x000B\x0066\x000A\x0051\x000C\x0066\x000A\x007D" + + "\x000D\x007C\x0001\x0065\x0002\x007C\x0001\x007B\x0003\x006A\x0001\x000B\x0002\x006A\x0005\x0071\x0004\x006A\x0004\x0072" + + "\x0001\x0071\x0003\x0072\x0001\x0071\x0005\x0072\x0002\x0038\x0001\x003B\x0002\x0038\x0001\x003B\x0001\x0038\x0002\x003B" + + "\x0001\x0038\x0001\x003B\x000A\x0038\x0001\x003B\x0004\x0005\x0001\x006C\x0001\x006B\x0001\x006D\x0001\x000A\x0003\x0075" + + "\x0001\x006D\x0002\x0075\x0001\x0061\x0002\x0062\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A" + + "\x0001\x0075\x0003\x000A\x0001\x0075\x0002\x000A\x0001\x0075\x0001\x000A\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A" + + "\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x003E\x0002\x003A\x0001\x003E\x0001\x003A" + + "\x0002\x003E\x0004\x003A\x0001\x003E\x0007\x003A\x0001\x003E\x0004\x003A\x0001\x003E\x0004\x003A\x0001\x0075\x0001\x000A" + + "\x0001\x0075\x000A\x0019\x0001\x002F\x0011\x0019\x0001\x002F\x0003\x001A\x0001\x002F\x0003\x0019\x0001\x002F\x0001\x0019" + + "\x0002\x0002\x0002\x0019\x0001\x002F\x000D\x005C\x0004\x0027\x0004\x002C\x0001\x0050\x0001\x002E\x0008\x0050\x0007\x002C" + + "\x0006\x0075\x0004\x0015\x0001\x0017\x001F\x0015\x0001\x0017\x0004\x0015\x0015\x0045\x0001\x0079\x0009\x0045\x0011\x0016" + + "\x0005\x0045\x0001\x0007\x000A\x002D\x0005\x0045\x0006\x0044\x0004\x003E\x0001\x003F\x0001\x0016\x0005\x005B\x000A\x0059" + + "\x000F\x005B\x0001\x003C\x0003\x0039\x000C\x0058\x0001\x0009\x0009\x0026\x0001\x002A\x0005\x0026\x0004\x005A\x000B\x0029" + + "\x0002\x000C\x0009\x0026\x0001\x002A\x0019\x0026\x0001\x002A\x0004\x0009\x0004\x0026\x0002\x002A\x0002\x0055\x0001\x0010" + + "\x0005\x0055\x002A\x0010\u1900\x0000\u016e\x0088\x0002\x0000\x006A\x0088\x0026\x0000\x0007\x007E\x000C\x0000\x0005\x007E" + + "\x0005\x0000\x0001\x008C\x0001\x007F\x000A\x008C\x0001\x0000\x000D\x008C\x0001\x0000\x0005\x008C\x0001\x0000\x0001\x008C" + + "\x0001\x0000\x0002\x008C\x0001\x0000\x0002\x008C\x0001\x0000\x000A\x008C\x0062\x007E\x0021\x0000\u016b\x007E\x0012\x0000" + + "\x0040\x007E\x0002\x0000\x0036\x007E\x0028\x0000\x000C\x007E\x0004\x0000\x0010\x007F\x0001\x0083\x0002\x0000\x0001\x0082" + + "\x0001\x0083\x000B\x0000\x0007\x007F\x000C\x0000\x0002\x0085\x0018\x0000\x0003\x0085\x0001\x0083\x0001\x0000\x0001\x0084" + + "\x0001\x0000\x0001\x0083\x0001\x0082\x001A\x0000\x0005\x007E\x0001\x0000\x0087\x007E\x0002\x0000\x0001\x007F\x0007\x0000" + + "\x0001\x0084\x0004\x0000\x0001\x0083\x0001\x0000\x0001\x0084\x0001\x0000\x000A\x0080\x0001\x0082\x0001\x0083\x0005\x0000" + + "\x001A\x007E\x0004\x0000\x0001\x0085\x0001\x0000\x001A\x007E\x000B\x0000\x0038\x0081\x0002\x007F\x001F\x008D\x0003\x0000" + + "\x0006\x008D\x0002\x0000\x0006\x008D\x0002\x0000\x0006\x008D\x0002\x0000\x0003\x008D\x001C\x0000\x0003\x007F\x0004\x0000"; /// /// Translates characters to character classes @@ -78,7 +221,10 @@ public sealed class StandardTokenizerImpl : IStandardTokenizerInterface /// private static readonly int[] ZZ_ACTION = ZzUnpackAction(); - private const string ZZ_ACTION_PACKED_0 = "\x0001\0\x0016\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + "\x0001\x0007\x0001\x0002\x0001\x0008\x0011\0\x0001\x0002\x0001\0\x0001\x0002\x000A\0" + "\x0001\x0003\x0011\0\x0001\x0002\x0015\0\x0001\x0002\x004D\0\x0001\x0001\x0010\0"; + private const string ZZ_ACTION_PACKED_0 = + "\x0001\x0000\x0016\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + + "\x0001\x0007\x0001\x0002\x0001\x0008\x0011\x0000\x0001\x0002\x0001\x0000\x0001\x0002\x000A\x0000" + + "\x0001\x0003\x0011\x0000\x0001\x0002\x0015\x0000\x0001\x0002\x004D\x0000\x0001\x0001\x0010\x0000"; private static int[] ZzUnpackAction() { @@ -111,7 +257,32 @@ private static int ZzUnpackAction(string packed, int offset, int[] result) ///
private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); - private const string ZZ_ROWMAP_PACKED_0 = "\0\0\0\x008E\0\u011c\0\u01aa\0\u0238\0\u02c6\0\u0354\0\u03e2" + "\0\u0470\0\u04fe\0\u058c\0\u061a\0\u06a8\0\u0736\0\u07c4\0\u0852" + "\0\u08e0\0\u096e\0\u09fc\0\u0a8a\0\u0b18\0\u0ba6\0\u0c34\0\u0cc2" + "\0\u0d50\0\u0dde\0\u0e6c\0\u0efa\0\u0f88\0\u1016\0\u10a4\0\u1132" + "\0\u11c0\0\u011c\0\u01aa\0\u124e\0\u12dc\0\u0354\0\u03e2\0\u0470" + "\0\u04fe\0\u136a\0\u13f8\0\u1486\0\u1514\0\u07c4\0\u15a2\0\u1630" + "\0\u16be\0\u174c\0\u17da\0\u1868\0\u18f6\0\u02c6\0\u1984\0\u1a12" + "\0\u06a8\0\u1aa0\0\u1b2e\0\u1bbc\0\u1c4a\0\u1cd8\0\u1d66\0\u1df4" + "\0\u1e82\0\u1f10\0\u1f9e\0\u202c\0\u20ba\0\u2148\0\u21d6\0\u2264" + "\0\u22f2\0\u2380\0\u240e\0\u249c\0\u252a\0\u25b8\0\u2646\0\u0e6c" + "\0\u26d4\0\u2762\0\u27f0\0\u287e\0\u290c\0\u299a\0\u2a28\0\u2ab6" + "\0\u2b44\0\u2bd2\0\u2c60\0\u2cee\0\u2d7c\0\u2e0a\0\u2e98\0\u2f26" + "\0\u2fb4\0\u3042\0\u30d0\0\u315e\0\u31ec\0\u327a\0\u3308\0\u3396" + "\0\u3424\0\u34b2\0\u3540\0\u35ce\0\u365c\0\u36ea\0\u3778\0\u3806" + "\0\u3894\0\u3922\0\u39b0\0\u3a3e\0\u3acc\0\u3b5a\0\u3be8\0\u3c76" + "\0\u3d04\0\u3d92\0\u3e20\0\u3eae\0\u3f3c\0\u3fca\0\u4058\0\u40e6" + "\0\u4174\0\u4202\0\u4290\0\u431e\0\u43ac\0\u443a\0\u44c8\0\u4556" + "\0\u45e4\0\u4672\0\u4700\0\u478e\0\u481c\0\u48aa\0\u4938\0\u49c6" + "\0\u4a54\0\u4ae2\0\u4b70\0\u4bfe\0\u4c8c\0\u4d1a\0\u4da8\0\u4e36" + "\0\u4ec4\0\u4f52\0\u4fe0\0\u506e\0\u50fc\0\u518a\0\u5218\0\u52a6" + "\0\u5334\0\u53c2\0\u5450\0\u54de\0\u556c\0\u55fa\0\u5688\0\u5716" + "\0\u57a4\0\u5832\0\u58c0\0\u594e\0\u59dc\0\u5a6a\0\u5af8\0\u5b86" + "\0\u5c14\0\u5ca2\0\u5d30\0\u5dbe\0\u5e4c\0\u5eda\0\u5f68\0\u5ff6" + "\0\u6084\0\u6112\0\u61a0\0\u622e\0\u62bc\0\u634a\0\u63d8\0\u6466" + "\0\u64f4\0\u6582\0\u6610\0\u669e\0\u672c"; + private const string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x008E\x0000\u011c\x0000\u01aa\x0000\u0238\x0000\u02c6\x0000\u0354\x0000\u03e2" + + "\x0000\u0470\x0000\u04fe\x0000\u058c\x0000\u061a\x0000\u06a8\x0000\u0736\x0000\u07c4\x0000\u0852" + + "\x0000\u08e0\x0000\u096e\x0000\u09fc\x0000\u0a8a\x0000\u0b18\x0000\u0ba6\x0000\u0c34\x0000\u0cc2" + + "\x0000\u0d50\x0000\u0dde\x0000\u0e6c\x0000\u0efa\x0000\u0f88\x0000\u1016\x0000\u10a4\x0000\u1132" + + "\x0000\u11c0\x0000\u011c\x0000\u01aa\x0000\u124e\x0000\u12dc\x0000\u0354\x0000\u03e2\x0000\u0470" + + "\x0000\u04fe\x0000\u136a\x0000\u13f8\x0000\u1486\x0000\u1514\x0000\u07c4\x0000\u15a2\x0000\u1630" + + "\x0000\u16be\x0000\u174c\x0000\u17da\x0000\u1868\x0000\u18f6\x0000\u02c6\x0000\u1984\x0000\u1a12" + + "\x0000\u06a8\x0000\u1aa0\x0000\u1b2e\x0000\u1bbc\x0000\u1c4a\x0000\u1cd8\x0000\u1d66\x0000\u1df4" + + "\x0000\u1e82\x0000\u1f10\x0000\u1f9e\x0000\u202c\x0000\u20ba\x0000\u2148\x0000\u21d6\x0000\u2264" + + "\x0000\u22f2\x0000\u2380\x0000\u240e\x0000\u249c\x0000\u252a\x0000\u25b8\x0000\u2646\x0000\u0e6c" + + "\x0000\u26d4\x0000\u2762\x0000\u27f0\x0000\u287e\x0000\u290c\x0000\u299a\x0000\u2a28\x0000\u2ab6" + + "\x0000\u2b44\x0000\u2bd2\x0000\u2c60\x0000\u2cee\x0000\u2d7c\x0000\u2e0a\x0000\u2e98\x0000\u2f26" + + "\x0000\u2fb4\x0000\u3042\x0000\u30d0\x0000\u315e\x0000\u31ec\x0000\u327a\x0000\u3308\x0000\u3396" + + "\x0000\u3424\x0000\u34b2\x0000\u3540\x0000\u35ce\x0000\u365c\x0000\u36ea\x0000\u3778\x0000\u3806" + + "\x0000\u3894\x0000\u3922\x0000\u39b0\x0000\u3a3e\x0000\u3acc\x0000\u3b5a\x0000\u3be8\x0000\u3c76" + + "\x0000\u3d04\x0000\u3d92\x0000\u3e20\x0000\u3eae\x0000\u3f3c\x0000\u3fca\x0000\u4058\x0000\u40e6" + + "\x0000\u4174\x0000\u4202\x0000\u4290\x0000\u431e\x0000\u43ac\x0000\u443a\x0000\u44c8\x0000\u4556" + + "\x0000\u45e4\x0000\u4672\x0000\u4700\x0000\u478e\x0000\u481c\x0000\u48aa\x0000\u4938\x0000\u49c6" + + "\x0000\u4a54\x0000\u4ae2\x0000\u4b70\x0000\u4bfe\x0000\u4c8c\x0000\u4d1a\x0000\u4da8\x0000\u4e36" + + "\x0000\u4ec4\x0000\u4f52\x0000\u4fe0\x0000\u506e\x0000\u50fc\x0000\u518a\x0000\u5218\x0000\u52a6" + + "\x0000\u5334\x0000\u53c2\x0000\u5450\x0000\u54de\x0000\u556c\x0000\u55fa\x0000\u5688\x0000\u5716" + + "\x0000\u57a4\x0000\u5832\x0000\u58c0\x0000\u594e\x0000\u59dc\x0000\u5a6a\x0000\u5af8\x0000\u5b86" + + "\x0000\u5c14\x0000\u5ca2\x0000\u5d30\x0000\u5dbe\x0000\u5e4c\x0000\u5eda\x0000\u5f68\x0000\u5ff6" + + "\x0000\u6084\x0000\u6112\x0000\u61a0\x0000\u622e\x0000\u62bc\x0000\u634a\x0000\u63d8\x0000\u6466" + + "\x0000\u64f4\x0000\u6582\x0000\u6610\x0000\u669e\x0000\u672c"; private static int[] ZzUnpackRowMap() { @@ -147,512 +318,512 @@ private static int ZzUnpackRowMap(string packed, int offset, int[] result) "\x000F\x0002\x0001\x000F\x0002\x0002\x0001\x0010\x0036\x0002\x0001\x0011\x0001\x0002\x0001\x0012" + "\x0002\x0002\x0001\x0013\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0002" + "\x0001\x0017\x0003\x0002\x0001\x0018\x0001\x0002\x0001\x0019\x0001\x001A\x0003\x0002\x0001\x001B" + - "\x0002\x001C\x0001\x001D\x0001\x001E\x0002\x0002\x0001\x001F\x0001\x0020\x0090\0\x0001\x0018" + - "\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x000E\0\x0001\x0018\x000D\0\x0001\x0018" + - "\x0010\0\x0001\x0018\x0001\0\x0001\x0018\x0021\0\x0001\x0018\x0004\0\x0001\x0018" + - "\x0008\0\x0002\x0018\x0005\0\x0002\x0018\x0008\0\x0001\x0018\x0016\0\x0002\x0018" + - "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0018\x0008\0\x0004\x0018" + - "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0002\0\x0001\x0018" + - "\x0004\0\x0004\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0002\0\x0004\x0018\x0002\0\x0003\x0018\x0001\0\x0002\x0018" + - "\x0001\0\x0003\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0005\0\x0004\x0018" + - "\x0002\0\x0008\x0018\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0001\0\x0002\x0018" + - "\x0004\0\x0001\x0018\x0003\0\x0003\x0018\x0017\0\x0001\x0018\x0004\0\x0001\x0018" + - "\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x0017\0\x0001\x0018" + - "\x0033\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0019\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018" + - "\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0\x0004\x0018" + - "\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018" + - "\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0\x0002\x0018" + - "\x0001\0\x0008\x0018\x0001\x0019\x0001\0\x0007\x0018\x0001\0\x0008\x0018\x0001\0" + - "\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0003\0\x0003\x0018\x001E\0\x0001\x0018\x000F\0\x0001\x0018\x0013\0" + - "\x0001\x0018\x0013\0\x0001\x0018\x0006\0\x0003\x0018\x001F\0\x0001\x0018\x0007\0" + - "\x0001\x0018\x0018\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0004\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0003\x0018\x0001\0\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0003\x0018\x0001\0" + - "\x000F\x0018\x0001\0\x0002\x0018\x0001\0\x0011\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0021\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x001E\0\x0001\x0018\x0003\0" + - "\x0002\x0018\x000A\0\x0002\x0018\x000B\0\x0001\x0018\x0006\0\x0001\x0018\x0002\0" + - "\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018\x0002\0\x0002\x0018\x0005\0" + - "\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + - "\x0001\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0002\0\x0002\x0018\x0002\0" + - "\x0001\x0018\x0003\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + - "\x0009\x0018\x0001\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x000C\x0018\x0001\0\x0002\x0018\x0001\0\x0008\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0013\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0012\0" + - "\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019" + - "\x0041\0\x0001\x0019\x0017\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + - "\x000D\0\x0003\x0018\x0003\0\x0001\x0018\x0007\0\x0002\x0018\x0001\0\x0004\x0019" + - "\x0001\0\x0002\x0018\x000B\0\x0001\x0018\x0013\0\x0001\x0018\x0024\0\x0001\x0018" + - "\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0\x0001\x0018" + - "\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018" + - "\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0\x0002\x0019" + - "\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0\x0001\x0018" + - "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018" + - "\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018" + - "\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018" + - "\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0006\0\x0002\x0018\x0006\0\x0001\x0018" + - "\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x0022\0\x0001\x0018\x000F\0\x0002\x0018" + - "\x0012\0\x0001\x0018\x0002\0\x0002\x0018\x000B\0\x0001\x0018\x0003\0\x0002\x0018" + - "\x0005\0\x0003\x0018\x0010\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018" + - "\x001D\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018" + - "\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018" + - "\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018" + - "\x0005\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x005F\0\x0001\x001E\x0021\0\x0001\x001A\x0022\0\x0001\x001D" + - "\x0006\0\x0001\x001D\x0002\0\x0001\x001D\x0003\0\x0002\x001D\x0008\0\x0004\x001D" + - "\x0001\0\x0003\x001D\x0001\0\x0001\x001D\x0002\0\x0001\x001D\x0002\0\x0001\x001D" + - "\x0004\0\x0004\x001D\x0001\0\x0002\x001D\x0006\0\x0001\x001D\x0002\0\x0004\x001D" + - "\x0002\0\x0003\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0004\x001D" + - "\x0001\0\x0002\x001D\x0005\0\x0004\x001D\x0002\0\x0008\x001D\x0004\0\x0001\x001D" + - "\x0001\0\x0002\x001D\x0004\0\x0001\x001D\x0003\0\x0003\x001D\x0012\0\x0001\x001D" + - "\x0001\0\x0002\x001D\x0001\0\x0001\x001D\x0001\0\x0004\x001D\x0001\0\x0001\x001D" + - "\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D\x0001\0\x0002\x001D" + - "\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x000F\x001D\x0001\0\x0002\x001D" + - "\x0001\0\x0011\x001D\x0001\0\x0002\x001D\x0001\0\x0021\x001D\x0001\0\x0001\x001D" + - "\x0001\0\x0002\x001D\x0002\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D" + - "\x0001\0\x0003\x001D\x0012\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0001\x001D" + - "\x0001\0\x0004\x001D\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D" + - "\x0002\0\x0001\x001D\x0002\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D" + - "\x0001\0\x000F\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + - "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + - "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x001E\0\x0001\x001D" + - "\x000F\0\x0001\x001D\x0013\0\x0001\x001D\x001A\0\x0001\x001D\x0021\0\x0001\x001D" + - "\x0007\0\x0001\x001D\x0018\0\x0001\x001D\x0001\0\x0002\x001D\x0003\0\x0004\x001D" + - "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0001\0\x0003\x001D" + - "\x0001\0\x0002\x001D\x0001\0\x0004\x001D\x0001\0\x0003\x001D\x0001\0\x0008\x001D" + - "\x0001\0\x0006\x001D\x0001\0\x0002\x001D\x0001\0\x0011\x001D\x0001\0\x0002\x001D" + - "\x0001\0\x0021\x001D\x0001\0\x0001\x001D\x0001\0\x0002\x001D\x0002\0\x0001\x001D" + - "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0001\0\x0003\x001D\x0075\0\x0001\x0021" + - "\x0015\0\x0001\x001E\x0002\x0021\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0024\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x002A\x0002\0\x0001\x002B\x0004\0" + - "\x0001\x002C\x0003\0\x0001\x002D\x000F\0\x0001\x002E\x0002\0\x0001\x002F\x0011\0" + - "\x0001\x0030\x0002\0\x0001\x0031\x0031\0\x0002\x0018\x0001\x0032\x0001\0\x0001\x0033" + - "\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0018\x0002\0\x0001\x0033\x0001\0" + - "\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0035" + - "\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028" + - "\x0002\0\x0001\x0029\x0003\0\x0001\x0037\x0002\0\x0001\x0038\x0004\0\x0001\x0039" + - "\x0003\0\x0001\x003A\x000F\0\x0001\x002E\x0002\0\x0001\x003B\x0011\0\x0001\x003C" + - "\x0002\0\x0001\x003D\x0031\0\x0001\x0018\x0002\x0019\x0002\0\x0002\x003E\x0001\x003F" + - "\x0001\0\x0001\x0019\x0002\0\x0001\x003E\x0001\0\x0001\x001F\x0001\x0018\x0006\0" + - "\x0001\x0040\x0011\0\x0001\x0041\x0002\0\x0001\x0042\x0008\0\x0001\x0043\x0012\0" + - "\x0001\x0044\x0011\0\x0001\x0045\x0002\0\x0001\x0046\x0021\0\x0001\x0047\x0010\0" + - "\x0001\x001A\x0001\0\x0001\x001A\x0003\0\x0001\x0034\x0001\0\x0001\x001A\x0007\0" + - "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0048\x0001\0\x0001\x0036\x0004\0" + - "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + - "\x0001\x0049\x0002\0\x0001\x004A\x0004\0\x0001\x0039\x0003\0\x0001\x004B\x000F\0" + - "\x0001\x002E\x0002\0\x0001\x004C\x0011\0\x0001\x004D\x0002\0\x0001\x004E\x0021\0" + - "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0050\x0001\x0019\x0001\x0051\x0003\0\x0001\x0050" + - "\x0001\0\x0001\x0050\x0004\0\x0001\x001F\x0001\x0018\x0086\0\x0002\x001C\x000C\0" + - "\x0001\x0052\x0011\0\x0001\x0053\x0002\0\x0001\x0054\x0008\0\x0001\x0055\x0012\0" + - "\x0001\x0056\x0011\0\x0001\x0057\x0002\0\x0001\x0058\x0032\0\x0001\x001D\x0007\0" + - "\x0001\x001D\x000C\0\x0001\x0059\x0011\0\x0001\x005A\x0002\0\x0001\x005B\x0008\0" + - "\x0001\x005C\x0012\0\x0001\x005D\x0011\0\x0001\x005E\x0002\0\x0001\x005F\x0032\0" + - "\x0001\x001E\x0007\0\x0001\x001E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0060\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0061\x0002\0\x0001\x0062\x0004\0" + - "\x0001\x002C\x0003\0\x0001\x0063\x000F\0\x0001\x002E\x0002\0\x0001\x0064\x0011\0" + - "\x0001\x0065\x0002\0\x0001\x0066\x0031\0\x0001\x0018\x0001\x001F\x0001\x0032\x0001\0" + - "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x001F\x0002\0\x0001\x0067" + - "\x0001\x0068\x0001\x001F\x0001\x0018\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0069\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x006A\x0002\0\x0001\x006B\x0004\0" + - "\x0001\x002C\x0003\0\x0001\x006C\x000F\0\x0001\x002E\x0002\0\x0001\x006D\x0011\0" + - "\x0001\x006E\x0002\0\x0001\x006F\x0031\0\x0001\x0018\x0001\x0020\x0001\x0032\x0001\0" + - "\x0001\x0033\x0001\0\x0001\x0033\x0001\x0034\x0001\0\x0001\x0020\x0002\0\x0001\x0033" + - "\x0001\0\x0001\x001F\x0001\x0020\x0006\0\x0001\x0070\x0011\0\x0001\x0071\x0002\0" + - "\x0001\x0072\x0008\0\x0001\x0073\x0012\0\x0001\x0074\x0011\0\x0001\x0075\x0002\0" + - "\x0001\x0076\x002D\0\x0001\x0077\x0004\0\x0001\x0021\x0007\0\x0001\x0021\x000D\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + - "\x0001\x0018\x000B\0\x0001\x0018\x0002\0\x0001\x0018\x0008\0\x0001\x0018\x0012\0" + - "\x0004\x0018\x001D\0\x0001\x0018\x0019\0\x0001\x0018\x0003\0\x0004\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0032\x0002\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + - "\x0002\x0018\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0002\0" + - "\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0\x0003\x0018\x0001\0" + - "\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0\x0008\x0018\x0001\0" + - "\x0002\x0018\x0001\0\x0008\x0018\x0001\x0032\x0001\0\x0007\x0018\x0001\0\x0008\x0018" + - "\x0001\0\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0003\0\x0003\x0018\x0012\0\x0001\x0018\x0016\0\x0002\x0018" + - "\x0013\0\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0018\x0035\0" + - "\x0001\x0032\x0009\0\x0001\x0018\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0" + - "\x0004\x0018\x0001\0\x0002\x0018\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0004\0\x0003\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0" + - "\x0004\x0018\x0002\0\x0002\x0018\x000A\0\x0001\x0018\x0007\0\x0001\x0018\x0024\0" + - "\x0001\x0018\x0003\0\x0002\x0018\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0" + - "\x0001\x0018\x0006\0\x0002\x0018\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0" + - "\x0002\x0018\x0002\0\x0002\x0018\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x0003\0" + - "\x0002\x0032\x0008\0\x0001\x0018\x000E\0\x0001\x0018\x0007\0\x0001\x0018\x0018\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + - "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + - "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + - "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + - "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0005\x0018\x0001\0" + - "\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x005C\0\x0002\x0018\x0015\0\x0004\x0018\x002D\0\x0001\x0018\x000D\0" + - "\x0002\x0018\x0008\0\x0002\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0009\0" + - "\x0001\x0018\x0009\0\x0002\x0018\x0006\0\x0001\x0018\x0002\0\x0004\x0018\x0003\0" + - "\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x0003\x0018\x0001\0\x0002\x0018\x0001\0" + - "\x0001\x0018\x0008\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0002\x0018\x0001\0" + - "\x0004\x0018\x0013\0\x0001\x0018\x0011\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0078\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x0079\x0002\0\x0001\x007A\x0004\0" + - "\x0001\x002C\x0003\0\x0001\x007B\x000F\0\x0001\x002E\x0002\0\x0001\x007C\x0011\0" + - "\x0001\x007D\x0002\0\x0001\x007E\x0031\0\x0001\x0018\x0002\x0032\x0002\0\x0002\x007F" + - "\x0001\x0034\x0001\0\x0001\x0032\x0002\0\x0001\x007F\x0001\0\x0001\x001F\x0001\x0018" + - "\x0001\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0080\x0001\0\x0001\x0081" + - "\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029" + - "\x0003\0\x0001\x0082\x0002\0\x0001\x0083\x0004\0\x0001\x0084\x0003\0\x0001\x0085" + - "\x000F\0\x0001\x002E\x0002\0\x0001\x0086\x0011\0\x0001\x0087\x0002\0\x0001\x0088" + - "\x0031\0\x0001\x0018\x0001\x0033\x0007\0\x0001\x0033\x0004\0\x0002\x0018\x0001\0" + - "\x0001\x0022\x0001\0\x0001\x0023\x0002\0\x0001\x0089\x0001\0\x0001\x0025\x0004\0" + - "\x0001\x0026\x0001\0\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0" + - "\x0001\x008A\x0002\0\x0001\x008B\x0004\0\x0001\x002C\x0003\0\x0001\x008C\x000F\0" + - "\x0001\x002E\x0002\0\x0001\x008D\x0011\0\x0001\x008E\x0002\0\x0001\x008F\x0021\0" + - "\x0001\x004F\x000F\0\x0001\x0018\x0001\x0034\x0001\x0032\x0001\x0051\x0003\0\x0001\x0034" + - "\x0001\0\x0001\x0034\x0004\0\x0001\x001F\x0001\x0018\x0007\0\x0001\x0018\x0004\0" + - "\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0" + - "\x0001\x0019\x0002\0\x0001\x0019\x0008\0\x0001\x0018\x0012\0\x0004\x0019\x001D\0" + - "\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018" + - "\x0020\0\x0001\x0019\x000B\0\x0001\x0019\x0035\0\x0001\x0019\x0009\0\x0001\x0019" + - "\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0019\x0001\0" + - "\x0002\x0019\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0019\x0004\0" + - "\x0001\x0019\x0002\x0018\x0001\0\x0004\x0019\x0001\0\x0002\x0018\x0005\0\x0004\x0019" + - "\x0002\0\x0001\x0018\x0001\x0019\x000A\0\x0001\x0019\x0007\0\x0001\x0018\x0018\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + - "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0019\x0001\0" + - "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + - "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + - "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0019" + - "\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x005C\0\x0002\x0019\x0015\0\x0004\x0019\x002D\0\x0001\x0019" + - "\x000D\0\x0002\x0019\x0008\0\x0002\x0019\x0001\0\x0001\x0019\x0001\0\x0001\x0019" + - "\x0009\0\x0001\x0019\x0009\0\x0002\x0019\x0006\0\x0001\x0019\x0002\0\x0004\x0019" + - "\x0003\0\x0001\x0019\x0002\0\x0002\x0019\x0001\0\x0003\x0019\x0001\0\x0002\x0019" + - "\x0001\0\x0001\x0019\x0008\0\x0001\x0019\x0001\0\x0002\x0019\x0002\0\x0002\x0019" + - "\x0001\0\x0004\x0019\x0013\0\x0001\x0019\x0016\0\x0001\x0090\x0001\0\x0001\x0091" + - "\x000F\0\x0001\x0092\x0002\0\x0001\x0093\x0004\0\x0001\x0094\x0003\0\x0001\x0095" + - "\x0012\0\x0001\x0096\x0011\0\x0001\x0097\x0002\0\x0001\x0098\x0032\0\x0001\x003E" + - "\x0001\x0019\x0006\0\x0001\x003E\x0007\0\x0001\x0022\x0001\0\x0001\x0023\x0002\0" + - "\x0001\x0099\x0001\0\x0001\x0036\x0004\0\x0001\x0026\x0001\0\x0001\x0027\x0001\0" + - "\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x009A\x0002\0\x0001\x009B\x0004\0" + - "\x0001\x0039\x0003\0\x0001\x009C\x000F\0\x0001\x002E\x0002\0\x0001\x009D\x0011\0" + - "\x0001\x009E\x0002\0\x0001\x009F\x0021\0\x0001\x004F\x000F\0\x0001\x0018\x0001\x003F" + - "\x0001\x0019\x0001\x0051\x0003\0\x0001\x003F\x0001\0\x0001\x003F\x0004\0\x0001\x001F" + - "\x0001\x0018\x0039\0\x0001\x001A\x0002\0\x0001\x001A\x001B\0\x0004\x001A\x008E\0" + - "\x0001\x001A\x003F\0\x0001\x001A\x0024\0\x0001\x001A\x0001\0\x0002\x001A\x0011\0" + - "\x0001\x001A\x0004\0\x0001\x001A\x000F\0\x0004\x001A\x0003\0\x0001\x001A\x000A\0" + - "\x0001\x001A\x0083\0\x0001\x001A\x0092\0\x0004\x001A\x006A\0\x0002\x001A\x0015\0" + - "\x0004\x001A\x002D\0\x0001\x001A\x000D\0\x0002\x001A\x0008\0\x0002\x001A\x0001\0" + - "\x0001\x001A\x0001\0\x0001\x001A\x0009\0\x0001\x001A\x0009\0\x0002\x001A\x0006\0" + - "\x0001\x001A\x0002\0\x0004\x001A\x0003\0\x0001\x001A\x0002\0\x0002\x001A\x0001\0" + - "\x0003\x001A\x0001\0\x0002\x001A\x0001\0\x0001\x001A\x0008\0\x0001\x001A\x0001\0" + - "\x0002\x001A\x0002\0\x0002\x001A\x0001\0\x0004\x001A\x0013\0\x0001\x001A\x007F\0" + - "\x0001\x001A\x0025\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0" + - "\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0050\x0002\0\x0001\x0050\x0008\0" + - "\x0001\x0018\x0012\0\x0004\x0050\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0" + - "\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019\x000B\0\x0001\x0050" + - "\x0035\0\x0001\x0019\x0009\0\x0001\x0050\x000D\0\x0004\x0018\x0002\0\x0002\x0018" + - "\x000C\0\x0003\x0018\x0001\x0050\x0001\0\x0002\x0050\x0009\0\x0003\x0018\x0003\0" + - "\x0001\x0018\x0001\0\x0001\x0050\x0004\0\x0001\x0050\x0002\x0018\x0001\0\x0004\x0019" + - "\x0001\0\x0002\x0018\x0005\0\x0004\x0050\x0002\0\x0001\x0018\x0001\x0050\x000A\0" + - "\x0001\x0050\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0" + - "\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0004\0\x0001\x0050\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + - "\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0" + - "\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0" + - "\x0002\x0018\x0004\0\x0001\x0018\x0004\x0050\x0001\0\x0001\x0018\x0002\0\x0001\x0018" + - "\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0050" + - "\x0015\0\x0004\x0050\x002D\0\x0001\x0050\x000D\0\x0002\x0050\x0008\0\x0002\x0050" + - "\x0001\0\x0001\x0050\x0001\0\x0001\x0050\x0009\0\x0001\x0050\x0009\0\x0002\x0050" + - "\x0006\0\x0001\x0050\x0002\0\x0004\x0050\x0003\0\x0001\x0050\x0002\0\x0002\x0050" + - "\x0001\0\x0003\x0050\x0001\0\x0002\x0050\x0001\0\x0001\x0050\x0008\0\x0001\x0050" + - "\x0001\0\x0002\x0050\x0002\0\x0002\x0050\x0001\0\x0004\x0050\x0013\0\x0001\x0050" + - "\x007F\0\x0001\x0051\x0024\0\x0001\x00A0\x0011\0\x0001\x00A1\x0002\0\x0001\x00A2" + - "\x0008\0\x0001\x00A3\x0012\0\x0001\x00A4\x0011\0\x0001\x00A5\x0002\0\x0001\x00A6" + - "\x0021\0\x0001\x004F\x0010\0\x0001\x0051\x0001\0\x0001\x0051\x0003\0\x0001\x0034" + - "\x0001\0\x0001\x0051\x003F\0\x0001\x001D\x0002\0\x0001\x001D\x001B\0\x0004\x001D" + - "\x008E\0\x0001\x001D\x003F\0\x0001\x001D\x0024\0\x0001\x001D\x0001\0\x0002\x001D" + - "\x0011\0\x0001\x001D\x0004\0\x0001\x001D\x000F\0\x0004\x001D\x0003\0\x0001\x001D" + - "\x000A\0\x0001\x001D\x0083\0\x0001\x001D\x0092\0\x0004\x001D\x006A\0\x0002\x001D" + - "\x0015\0\x0004\x001D\x002D\0\x0001\x001D\x000D\0\x0002\x001D\x0008\0\x0002\x001D" + - "\x0001\0\x0001\x001D\x0001\0\x0001\x001D\x0009\0\x0001\x001D\x0009\0\x0002\x001D" + - "\x0006\0\x0001\x001D\x0002\0\x0004\x001D\x0003\0\x0001\x001D\x0002\0\x0002\x001D" + - "\x0001\0\x0003\x001D\x0001\0\x0002\x001D\x0001\0\x0001\x001D\x0008\0\x0001\x001D" + - "\x0001\0\x0002\x001D\x0002\0\x0002\x001D\x0001\0\x0004\x001D\x0013\0\x0001\x001D" + - "\x0049\0\x0001\x001E\x0002\0\x0001\x001E\x001B\0\x0004\x001E\x008E\0\x0001\x001E" + - "\x003F\0\x0001\x001E\x0024\0\x0001\x001E\x0001\0\x0002\x001E\x0011\0\x0001\x001E" + - "\x0004\0\x0001\x001E\x000F\0\x0004\x001E\x0003\0\x0001\x001E\x000A\0\x0001\x001E" + - "\x0083\0\x0001\x001E\x0092\0\x0004\x001E\x006A\0\x0002\x001E\x0015\0\x0004\x001E" + - "\x002D\0\x0001\x001E\x000D\0\x0002\x001E\x0008\0\x0002\x001E\x0001\0\x0001\x001E" + - "\x0001\0\x0001\x001E\x0009\0\x0001\x001E\x0009\0\x0002\x001E\x0006\0\x0001\x001E" + - "\x0002\0\x0004\x001E\x0003\0\x0001\x001E\x0002\0\x0002\x001E\x0001\0\x0003\x001E" + - "\x0001\0\x0002\x001E\x0001\0\x0001\x001E\x0008\0\x0001\x001E\x0001\0\x0002\x001E" + - "\x0002\0\x0002\x001E\x0001\0\x0004\x001E\x0013\0\x0001\x001E\x0017\0\x0001\x0018" + - "\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018" + - "\x000B\0\x0001\x001F\x0002\0\x0001\x001F\x0008\0\x0001\x0018\x0012\0\x0004\x001F" + - "\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0032" + - "\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x001F\x0035\0\x0001\x0032\x0009\0" + - "\x0001\x001F\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x001F" + - "\x0001\0\x0002\x001F\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x001F" + - "\x0004\0\x0001\x001F\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0" + - "\x0004\x001F\x0002\0\x0001\x0018\x0001\x001F\x000A\0\x0001\x001F\x0007\0\x0001\x0018" + - "\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018" + - "\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018" + - "\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x001F" + - "\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018" + - "\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018" + - "\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018" + - "\x0004\x001F\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x001F\x0015\0\x0004\x001F\x002D\0" + - "\x0001\x001F\x000D\0\x0002\x001F\x0008\0\x0002\x001F\x0001\0\x0001\x001F\x0001\0" + - "\x0001\x001F\x0009\0\x0001\x001F\x0009\0\x0002\x001F\x0006\0\x0001\x001F\x0002\0" + - "\x0004\x001F\x0003\0\x0001\x001F\x0002\0\x0002\x001F\x0001\0\x0003\x001F\x0001\0" + - "\x0002\x001F\x0001\0\x0001\x001F\x0008\0\x0001\x001F\x0001\0\x0002\x001F\x0002\0" + - "\x0002\x001F\x0001\0\x0004\x001F\x0013\0\x0001\x001F\x0011\0\x0001\x0022\x0001\0" + - "\x0001\x0023\x0002\0\x0001\x00A7\x0001\0\x0001\x0025\x0004\0\x0001\x0026\x0001\0" + - "\x0001\x0027\x0001\0\x0001\x0028\x0002\0\x0001\x0029\x0003\0\x0001\x00A8\x0002\0" + - "\x0001\x00A9\x0004\0\x0001\x002C\x0003\0\x0001\x00AA\x000F\0\x0001\x002E\x0002\0" + - "\x0001\x00AB\x0011\0\x0001\x00AC\x0002\0\x0001\x00AD\x0031\0\x0001\x0018\x0001\x0067" + - "\x0001\x0032\x0004\0\x0001\x0034\x0001\0\x0001\x0067\x0004\0\x0001\x001F\x0001\x0018" + - "\x0006\0\x0001\x00AE\x0011\0\x0001\x00AF\x0002\0\x0001\x00B0\x0008\0\x0001\x00B1" + - "\x0012\0\x0001\x00B2\x0011\0\x0001\x00B3\x0002\0\x0001\x00B4\x0032\0\x0001\x0068" + - "\x0007\0\x0001\x0068\x0004\0\x0001\x0067\x0008\0\x0001\x0018\x0004\0\x0001\x0018" + - "\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0020" + - "\x0002\0\x0001\x0020\x0008\0\x0001\x0018\x0012\0\x0004\x0020\x001D\0\x0001\x0018" + - "\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0032\x0001\x0018\x0020\0" + - "\x0001\x0032\x000B\0\x0001\x0020\x0035\0\x0001\x0032\x0009\0\x0001\x0020\x000D\0" + - "\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0020\x0001\0\x0002\x0020" + - "\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0020\x0004\0\x0001\x0020" + - "\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0\x0004\x0020\x0002\0" + - "\x0001\x0018\x0001\x0020\x000A\0\x0001\x0020\x0007\0\x0001\x0018\x0018\0\x0001\x0018" + - "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018" + - "\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018" + - "\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018" + - "\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0020\x0001\0\x0002\x0018" + - "\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018" + - "\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018" + - "\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018" + - "\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0020\x0001\0" + - "\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x005C\0\x0002\x0020\x0015\0\x0004\x0020\x002D\0\x0001\x0020\x000D\0" + - "\x0002\x0020\x0008\0\x0002\x0020\x0001\0\x0001\x0020\x0001\0\x0001\x0020\x0009\0" + - "\x0001\x0020\x0009\0\x0002\x0020\x0006\0\x0001\x0020\x0002\0\x0004\x0020\x0003\0" + - "\x0001\x0020\x0002\0\x0002\x0020\x0001\0\x0003\x0020\x0001\0\x0002\x0020\x0001\0" + - "\x0001\x0020\x0008\0\x0001\x0020\x0001\0\x0002\x0020\x0002\0\x0002\x0020\x0001\0" + - "\x0004\x0020\x0013\0\x0001\x0020\x0049\0\x0001\x0021\x0002\0\x0001\x0021\x001B\0" + - "\x0004\x0021\x008E\0\x0001\x0021\x003F\0\x0001\x0021\x0024\0\x0001\x0021\x0001\0" + - "\x0002\x0021\x0011\0\x0001\x0021\x0004\0\x0001\x0021\x000F\0\x0004\x0021\x0003\0" + - "\x0001\x0021\x000A\0\x0001\x0021\x0083\0\x0001\x0021\x0092\0\x0004\x0021\x006A\0" + - "\x0002\x0021\x0015\0\x0004\x0021\x002D\0\x0001\x0021\x000D\0\x0002\x0021\x0008\0" + - "\x0002\x0021\x0001\0\x0001\x0021\x0001\0\x0001\x0021\x0009\0\x0001\x0021\x0009\0" + - "\x0002\x0021\x0006\0\x0001\x0021\x0002\0\x0004\x0021\x0003\0\x0001\x0021\x0002\0" + - "\x0002\x0021\x0001\0\x0003\x0021\x0001\0\x0002\x0021\x0001\0\x0001\x0021\x0008\0" + - "\x0001\x0021\x0001\0\x0002\x0021\x0002\0\x0002\x0021\x0001\0\x0004\x0021\x0013\0" + - "\x0001\x0021\x0075\0\x0001\x00B5\x0016\0\x0002\x00B5\x0017\0\x0001\x0018\x0004\0" + - "\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0" + - "\x0001\x0032\x0002\0\x0001\x0032\x0008\0\x0001\x0018\x0012\0\x0004\x0032\x001D\0" + - "\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0\x0001\x0032\x0001\x0018" + - "\x0020\0\x0001\x0032\x000B\0\x0001\x0032\x0035\0\x0001\x0032\x0009\0\x0001\x0032" + - "\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0032\x0001\0" + - "\x0002\x0032\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0032\x0004\0" + - "\x0001\x0032\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018\x0005\0\x0004\x0032" + - "\x0002\0\x0001\x0018\x0001\x0032\x000A\0\x0001\x0032\x0007\0\x0001\x0018\x0018\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0" + - "\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0032\x0001\0" + - "\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0" + - "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0" + - "\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0" + - "\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x0032" + - "\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x005C\0\x0002\x0032\x0015\0\x0004\x0032\x002D\0\x0001\x0032" + - "\x000D\0\x0002\x0032\x0008\0\x0002\x0032\x0001\0\x0001\x0032\x0001\0\x0001\x0032" + - "\x0009\0\x0001\x0032\x0009\0\x0002\x0032\x0006\0\x0001\x0032\x0002\0\x0004\x0032" + - "\x0003\0\x0001\x0032\x0002\0\x0002\x0032\x0001\0\x0003\x0032\x0001\0\x0002\x0032" + - "\x0001\0\x0001\x0032\x0008\0\x0001\x0032\x0001\0\x0002\x0032\x0002\0\x0002\x0032" + - "\x0001\0\x0004\x0032\x0013\0\x0001\x0032\x0016\0\x0001\x00B6\x0001\0\x0001\x00B7" + - "\x000F\0\x0001\x00B8\x0002\0\x0001\x00B9\x0004\0\x0001\x00BA\x0003\0\x0001\x00BB" + - "\x0012\0\x0001\x00BC\x0011\0\x0001\x00BD\x0002\0\x0001\x00BE\x0032\0\x0001\x007F" + - "\x0001\x0032\x0006\0\x0001\x007F\x000D\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0" + - "\x0001\x0018\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x0033\x0002\0" + - "\x0001\x0033\x0008\0\x0001\x0018\x0012\0\x0004\x0033\x001D\0\x0001\x0018\x0019\0" + - "\x0001\x0018\x0003\0\x0004\x0018\x0001\0\x0001\x0018\x0004\0\x0001\x0018\x0001\0" + - "\x0002\x0018\x0002\0\x0002\x0018\x0002\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0002\0\x0004\x0018\x0001\0\x0003\x0018\x0001\0\x0001\x0018\x0001\0" + - "\x0003\x0018\x0001\0\x0002\x0018\x0001\0\x0004\x0018\x0001\0\x0002\x0018\x0002\0" + - "\x0008\x0018\x0001\0\x0002\x0018\x0001\0\x0008\x0018\x0002\0\x0007\x0018\x0001\0" + - "\x0008\x0018\x0001\0\x0006\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0003\0\x0003\x0018\x0012\0\x0001\x0018\x0016\0" + - "\x0002\x0018\x0014\0\x0001\x0018\x002C\0\x0001\x0033\x003F\0\x0001\x0033\x000D\0" + - "\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018\x0001\x0033\x0001\0\x0002\x0033" + - "\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0\x0001\x0033\x0004\0\x0001\x0033" + - "\x0002\x0018\x0006\0\x0002\x0018\x0005\0\x0004\x0033\x0002\0\x0001\x0018\x0001\x0033" + - "\x000A\0\x0001\x0033\x0007\0\x0001\x0018\x0024\0\x0001\x0018\x0003\0\x0002\x0018" + - "\x000A\0\x0002\x0018\x0001\0\x0003\x0018\x0007\0\x0001\x0018\x0006\0\x0002\x0018" + - "\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0004\0\x0002\x0018\x0002\0\x0002\x0018" + - "\x0005\0\x0003\x0018\x0002\0\x0001\x0018\x000D\0\x0001\x0018\x000E\0\x0001\x0018" + - "\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018" + - "\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018" + - "\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018" + - "\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0004\0\x0001\x0033\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018" + - "\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018" + - "\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018" + - "\x0004\0\x0001\x0018\x0004\x0033\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0033\x0015\0" + - "\x0004\x0033\x002D\0\x0001\x0033\x000D\0\x0002\x0033\x0008\0\x0002\x0033\x0001\0" + - "\x0001\x0033\x0001\0\x0001\x0033\x0009\0\x0001\x0033\x0009\0\x0002\x0033\x0006\0" + - "\x0001\x0033\x0002\0\x0004\x0033\x0003\0\x0001\x0033\x0002\0\x0002\x0033\x0001\0" + - "\x0003\x0033\x0001\0\x0002\x0033\x0001\0\x0001\x0033\x0008\0\x0001\x0033\x0001\0" + - "\x0002\x0033\x0002\0\x0002\x0033\x0001\0\x0004\x0033\x0013\0\x0001\x0033\x0017\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + - "\x0001\x0018\x000B\0\x0001\x0034\x0002\0\x0001\x0034\x0008\0\x0001\x0018\x0012\0" + - "\x0004\x0034\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0" + - "\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0034\x0035\0\x0001\x0032" + - "\x0009\0\x0001\x0034\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + - "\x0001\x0034\x0001\0\x0002\x0034\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + - "\x0001\x0034\x0004\0\x0001\x0034\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018" + - "\x0005\0\x0004\x0034\x0002\0\x0001\x0018\x0001\x0034\x000A\0\x0001\x0034\x0007\0" + - "\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + - "\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0" + - "\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0" + - "\x0001\x0034\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0" + - "\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0" + - "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0" + - "\x0001\x0018\x0004\x0034\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0034\x0015\0\x0004\x0034" + - "\x002D\0\x0001\x0034\x000D\0\x0002\x0034\x0008\0\x0002\x0034\x0001\0\x0001\x0034" + - "\x0001\0\x0001\x0034\x0009\0\x0001\x0034\x0009\0\x0002\x0034\x0006\0\x0001\x0034" + - "\x0002\0\x0004\x0034\x0003\0\x0001\x0034\x0002\0\x0002\x0034\x0001\0\x0003\x0034" + - "\x0001\0\x0002\x0034\x0001\0\x0001\x0034\x0008\0\x0001\x0034\x0001\0\x0002\x0034" + - "\x0002\0\x0002\x0034\x0001\0\x0004\x0034\x0013\0\x0001\x0034\x0049\0\x0001\x003E" + - "\x0002\0\x0001\x003E\x001B\0\x0004\x003E\x0042\0\x0001\x0019\x0044\0\x0001\x0019" + - "\x0066\0\x0001\x0019\x0021\0\x0001\x0019\x000B\0\x0001\x003E\x0035\0\x0001\x0019" + - "\x0009\0\x0001\x003E\x0024\0\x0001\x003E\x0001\0\x0002\x003E\x0011\0\x0001\x003E" + - "\x0004\0\x0001\x003E\x0003\0\x0004\x0019\x0008\0\x0004\x003E\x0003\0\x0001\x003E" + - "\x000A\0\x0001\x003E\x0074\0\x0002\x0019\x009B\0\x0001\x003E\x0092\0\x0004\x003E" + - "\x006A\0\x0002\x003E\x0015\0\x0004\x003E\x002D\0\x0001\x003E\x000D\0\x0002\x003E" + - "\x0008\0\x0002\x003E\x0001\0\x0001\x003E\x0001\0\x0001\x003E\x0009\0\x0001\x003E" + - "\x0009\0\x0002\x003E\x0006\0\x0001\x003E\x0002\0\x0004\x003E\x0003\0\x0001\x003E" + - "\x0002\0\x0002\x003E\x0001\0\x0003\x003E\x0001\0\x0002\x003E\x0001\0\x0001\x003E" + - "\x0008\0\x0001\x003E\x0001\0\x0002\x003E\x0002\0\x0002\x003E\x0001\0\x0004\x003E" + - "\x0013\0\x0001\x003E\x0017\0\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018" + - "\x0012\0\x0001\x0018\x0003\0\x0001\x0018\x000B\0\x0001\x003F\x0002\0\x0001\x003F" + - "\x0008\0\x0001\x0018\x0012\0\x0004\x003F\x001D\0\x0001\x0018\x0016\0\x0001\x0018" + - "\x0016\0\x0002\x0018\x0013\0\x0001\x0019\x0001\x0018\x0020\0\x0001\x0019\x000B\0" + - "\x0001\x003F\x0035\0\x0001\x0019\x0009\0\x0001\x003F\x000D\0\x0004\x0018\x0002\0" + - "\x0002\x0018\x000C\0\x0003\x0018\x0001\x003F\x0001\0\x0002\x003F\x0009\0\x0003\x0018" + - "\x0003\0\x0001\x0018\x0001\0\x0001\x003F\x0004\0\x0001\x003F\x0002\x0018\x0001\0" + - "\x0004\x0019\x0001\0\x0002\x0018\x0005\0\x0004\x003F\x0002\0\x0001\x0018\x0001\x003F" + - "\x000A\0\x0001\x003F\x0007\0\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018" + - "\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018" + - "\x0002\0\x0002\x0018\x0001\0\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018" + - "\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018" + - "\x0001\0\x0003\x0018\x0002\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0004\0\x0001\x003F\x0001\0\x0002\x0018\x0006\0\x0001\x0018" + - "\x0007\0\x0001\x0018\x0001\0\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018" + - "\x0003\0\x0001\x0018\x0003\0\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018" + - "\x0005\0\x0003\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018" + - "\x0002\0\x0002\x0018\x0004\0\x0001\x0018\x0004\x003F\x0001\0\x0001\x0018\x0002\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0" + - "\x0002\x003F\x0015\0\x0004\x003F\x002D\0\x0001\x003F\x000D\0\x0002\x003F\x0008\0" + - "\x0002\x003F\x0001\0\x0001\x003F\x0001\0\x0001\x003F\x0009\0\x0001\x003F\x0009\0" + - "\x0002\x003F\x0006\0\x0001\x003F\x0002\0\x0004\x003F\x0003\0\x0001\x003F\x0002\0" + - "\x0002\x003F\x0001\0\x0003\x003F\x0001\0\x0002\x003F\x0001\0\x0001\x003F\x0008\0" + - "\x0001\x003F\x0001\0\x0002\x003F\x0002\0\x0002\x003F\x0001\0\x0004\x003F\x0013\0" + - "\x0001\x003F\x0049\0\x0001\x0051\x0002\0\x0001\x0051\x001B\0\x0004\x0051\x008E\0" + - "\x0001\x0051\x003F\0\x0001\x0051\x0024\0\x0001\x0051\x0001\0\x0002\x0051\x0011\0" + - "\x0001\x0051\x0004\0\x0001\x0051\x000F\0\x0004\x0051\x0003\0\x0001\x0051\x000A\0" + - "\x0001\x0051\x0083\0\x0001\x0051\x0092\0\x0004\x0051\x006A\0\x0002\x0051\x0015\0" + - "\x0004\x0051\x002D\0\x0001\x0051\x000D\0\x0002\x0051\x0008\0\x0002\x0051\x0001\0" + - "\x0001\x0051\x0001\0\x0001\x0051\x0009\0\x0001\x0051\x0009\0\x0002\x0051\x0006\0" + - "\x0001\x0051\x0002\0\x0004\x0051\x0003\0\x0001\x0051\x0002\0\x0002\x0051\x0001\0" + - "\x0003\x0051\x0001\0\x0002\x0051\x0001\0\x0001\x0051\x0008\0\x0001\x0051\x0001\0" + - "\x0002\x0051\x0002\0\x0002\x0051\x0001\0\x0004\x0051\x0013\0\x0001\x0051\x0017\0" + - "\x0001\x0018\x0004\0\x0001\x0018\x0009\0\x0001\x0018\x0012\0\x0001\x0018\x0003\0" + - "\x0001\x0018\x000B\0\x0001\x0067\x0002\0\x0001\x0067\x0008\0\x0001\x0018\x0012\0" + - "\x0004\x0067\x001D\0\x0001\x0018\x0016\0\x0001\x0018\x0016\0\x0002\x0018\x0013\0" + - "\x0001\x0032\x0001\x0018\x0020\0\x0001\x0032\x000B\0\x0001\x0067\x0035\0\x0001\x0032" + - "\x0009\0\x0001\x0067\x000D\0\x0004\x0018\x0002\0\x0002\x0018\x000C\0\x0003\x0018" + - "\x0001\x0067\x0001\0\x0002\x0067\x0009\0\x0003\x0018\x0003\0\x0001\x0018\x0001\0" + - "\x0001\x0067\x0004\0\x0001\x0067\x0002\x0018\x0001\0\x0004\x0032\x0001\0\x0002\x0018" + - "\x0005\0\x0004\x0067\x0002\0\x0001\x0018\x0001\x0067\x000A\0\x0001\x0067\x0007\0" + - "\x0001\x0018\x0018\0\x0001\x0018\x0004\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0" + - "\x0001\x0018\x0006\0\x0001\x0018\x0005\0\x0001\x0018\x0002\0\x0002\x0018\x0001\0" + - "\x000F\x0018\x0002\0\x0001\x0018\x000B\0\x0007\x0018\x0002\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x0001\0\x0002\x0018\x0002\0\x0001\x0018\x0001\0\x0003\x0018\x0002\0" + - "\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x0004\0" + - "\x0001\x0067\x0001\0\x0002\x0018\x0006\0\x0001\x0018\x0007\0\x0001\x0018\x0001\0" + - "\x0001\x0018\x001B\0\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0001\x0018\x0003\0" + - "\x0001\x0018\x0007\0\x0001\x0018\x0019\0\x0010\x0018\x0005\0\x0003\x0018\x0004\0" + - "\x0001\x0018\x0006\0\x0001\x0018\x0003\0\x0002\x0018\x0002\0\x0002\x0018\x0004\0" + - "\x0001\x0018\x0004\x0067\x0001\0\x0001\x0018\x0002\0\x0001\x0018\x0004\0\x0001\x0018" + - "\x0001\0\x0001\x0018\x0001\0\x0001\x0018\x005C\0\x0002\x0067\x0015\0\x0004\x0067" + - "\x002D\0\x0001\x0067\x000D\0\x0002\x0067\x0008\0\x0002\x0067\x0001\0\x0001\x0067" + - "\x0001\0\x0001\x0067\x0009\0\x0001\x0067\x0009\0\x0002\x0067\x0006\0\x0001\x0067" + - "\x0002\0\x0004\x0067\x0003\0\x0001\x0067\x0002\0\x0002\x0067\x0001\0\x0003\x0067" + - "\x0001\0\x0002\x0067\x0001\0\x0001\x0067\x0008\0\x0001\x0067\x0001\0\x0002\x0067" + - "\x0002\0\x0002\x0067\x0001\0\x0004\x0067\x0013\0\x0001\x0067\x0049\0\x0001\x0068" + - "\x0002\0\x0001\x0068\x001B\0\x0004\x0068\x008E\0\x0001\x0068\x003F\0\x0001\x0068" + - "\x0024\0\x0001\x0068\x0001\0\x0002\x0068\x0011\0\x0001\x0068\x0004\0\x0001\x0068" + - "\x000F\0\x0004\x0068\x0003\0\x0001\x0068\x000A\0\x0001\x0068\x0083\0\x0001\x0068" + - "\x0092\0\x0004\x0068\x006A\0\x0002\x0068\x0015\0\x0004\x0068\x002D\0\x0001\x0068" + - "\x000D\0\x0002\x0068\x0008\0\x0002\x0068\x0001\0\x0001\x0068\x0001\0\x0001\x0068" + - "\x0009\0\x0001\x0068\x0009\0\x0002\x0068\x0006\0\x0001\x0068\x0002\0\x0004\x0068" + - "\x0003\0\x0001\x0068\x0002\0\x0002\x0068\x0001\0\x0003\x0068\x0001\0\x0002\x0068" + - "\x0001\0\x0001\x0068\x0008\0\x0001\x0068\x0001\0\x0002\x0068\x0002\0\x0002\x0068" + - "\x0001\0\x0004\x0068\x0013\0\x0001\x0068\x0016\0\x0001\x00BF\x0011\0\x0001\x00C0" + - "\x0002\0\x0001\x00C1\x0008\0\x0001\x00C2\x0012\0\x0001\x00C3\x0011\0\x0001\x00C4" + - "\x0002\0\x0001\x00C5\x002D\0\x0001\x0077\x0004\0\x0001\x00B5\x0007\0\x0001\x00B5" + - "\x003F\0\x0001\x007F\x0002\0\x0001\x007F\x001B\0\x0004\x007F\x0042\0\x0001\x0032" + - "\x0044\0\x0001\x0032\x0066\0\x0001\x0032\x0021\0\x0001\x0032\x000B\0\x0001\x007F" + - "\x0035\0\x0001\x0032\x0009\0\x0001\x007F\x0024\0\x0001\x007F\x0001\0\x0002\x007F" + - "\x0011\0\x0001\x007F\x0004\0\x0001\x007F\x0003\0\x0004\x0032\x0008\0\x0004\x007F" + - "\x0003\0\x0001\x007F\x000A\0\x0001\x007F\x0074\0\x0002\x0032\x009B\0\x0001\x007F" + - "\x0092\0\x0004\x007F\x006A\0\x0002\x007F\x0015\0\x0004\x007F\x002D\0\x0001\x007F" + - "\x000D\0\x0002\x007F\x0008\0\x0002\x007F\x0001\0\x0001\x007F\x0001\0\x0001\x007F" + - "\x0009\0\x0001\x007F\x0009\0\x0002\x007F\x0006\0\x0001\x007F\x0002\0\x0004\x007F" + - "\x0003\0\x0001\x007F\x0002\0\x0002\x007F\x0001\0\x0003\x007F\x0001\0\x0002\x007F" + - "\x0001\0\x0001\x007F\x0008\0\x0001\x007F\x0001\0\x0002\x007F\x0002\0\x0002\x007F" + - "\x0001\0\x0004\x007F\x0013\0\x0001\x007F\x0049\0\x0001\x00B5\x0002\0\x0001\x00B5" + - "\x001B\0\x0004\x00B5\x008E\0\x0001\x00B5\x003F\0\x0001\x00B5\x0024\0\x0001\x00B5" + - "\x0001\0\x0002\x00B5\x0011\0\x0001\x00B5\x0004\0\x0001\x00B5\x000F\0\x0004\x00B5" + - "\x0003\0\x0001\x00B5\x000A\0\x0001\x00B5\x0083\0\x0001\x00B5\x0092\0\x0004\x00B5" + - "\x006A\0\x0002\x00B5\x0015\0\x0004\x00B5\x002D\0\x0001\x00B5\x000D\0\x0002\x00B5" + - "\x0008\0\x0002\x00B5\x0001\0\x0001\x00B5\x0001\0\x0001\x00B5\x0009\0\x0001\x00B5" + - "\x0009\0\x0002\x00B5\x0006\0\x0001\x00B5\x0002\0\x0004\x00B5\x0003\0\x0001\x00B5" + - "\x0002\0\x0002\x00B5\x0001\0\x0003\x00B5\x0001\0\x0002\x00B5\x0001\0\x0001\x00B5" + - "\x0008\0\x0001\x00B5\x0001\0\x0002\x00B5\x0002\0\x0002\x00B5\x0001\0\x0004\x00B5" + - "\x0013\0\x0001\x00B5\x0010\0"; + "\x0002\x001C\x0001\x001D\x0001\x001E\x0002\x0002\x0001\x001F\x0001\x0020\x0090\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x000E\x0000\x0001\x0018\x000D\x0000\x0001\x0018" + + "\x0010\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0021\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0008\x0000\x0002\x0018\x0005\x0000\x0002\x0018\x0008\x0000\x0001\x0018\x0016\x0000\x0002\x0018" + + "\x0005\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0008\x0000\x0004\x0018" + + "\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0004\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0003\x0018\x0001\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0005\x0000\x0004\x0018" + + "\x0002\x0000\x0008\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0002\x0018" + + "\x0004\x0000\x0001\x0018\x0003\x0000\x0003\x0018\x0017\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0017\x0000\x0001\x0018" + + "\x0033\x0000\x0001\x0018\x0019\x0000\x0001\x0018\x0003\x0000\x0004\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018" + + "\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0008\x0018\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0008\x0018\x0001\x0019\x0001\x0000\x0007\x0018\x0001\x0000\x0008\x0018\x0001\x0000" + + "\x0006\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0003\x0000\x0003\x0018\x001E\x0000\x0001\x0018\x000F\x0000\x0001\x0018\x0013\x0000" + + "\x0001\x0018\x0013\x0000\x0001\x0018\x0006\x0000\x0003\x0018\x001F\x0000\x0001\x0018\x0007\x0000" + + "\x0001\x0018\x0018\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0004\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0004\x0018\x0001\x0000\x0003\x0018\x0001\x0000" + + "\x000F\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0011\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0021\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x001E\x0000\x0001\x0018\x0003\x0000" + + "\x0002\x0018\x000A\x0000\x0002\x0018\x000B\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0002\x0000" + + "\x0002\x0018\x0006\x0000\x0001\x0018\x0004\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0005\x0000" + + "\x0003\x0018\x0010\x0000\x0001\x0018\x000E\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0018\x0000" + + "\x0001\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0002\x0000" + + "\x0001\x0018\x0003\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0004\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000" + + "\x0009\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x000C\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0008\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0013\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0012\x0000" + + "\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0019\x0001\x0018\x0020\x0000\x0001\x0019" + + "\x0041\x0000\x0001\x0019\x0017\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018" + + "\x000D\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0002\x0018\x0001\x0000\x0004\x0019" + + "\x0001\x0000\x0002\x0018\x000B\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0024\x0000\x0001\x0018" + + "\x0003\x0000\x0002\x0018\x000A\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0007\x0000\x0001\x0018" + + "\x0006\x0000\x0002\x0018\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0004\x0000\x0002\x0018" + + "\x0002\x0000\x0002\x0018\x0005\x0000\x0003\x0018\x0002\x0000\x0001\x0018\x0003\x0000\x0002\x0019" + + "\x0008\x0000\x0001\x0018\x000E\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0018\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018" + + "\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0006\x0000\x0002\x0018\x0006\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0022\x0000\x0001\x0018\x000F\x0000\x0002\x0018" + + "\x0012\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x000B\x0000\x0001\x0018\x0003\x0000\x0002\x0018" + + "\x0005\x0000\x0003\x0018\x0010\x0000\x0001\x0018\x000E\x0000\x0001\x0018\x0007\x0000\x0001\x0018" + + "\x001D\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0004\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018" + + "\x0005\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x005F\x0000\x0001\x001E\x0021\x0000\x0001\x001A\x0022\x0000\x0001\x001D" + + "\x0006\x0000\x0001\x001D\x0002\x0000\x0001\x001D\x0003\x0000\x0002\x001D\x0008\x0000\x0004\x001D" + + "\x0001\x0000\x0003\x001D\x0001\x0000\x0001\x001D\x0002\x0000\x0001\x001D\x0002\x0000\x0001\x001D" + + "\x0004\x0000\x0004\x001D\x0001\x0000\x0002\x001D\x0006\x0000\x0001\x001D\x0002\x0000\x0004\x001D" + + "\x0002\x0000\x0003\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x0004\x001D" + + "\x0001\x0000\x0002\x001D\x0005\x0000\x0004\x001D\x0002\x0000\x0008\x001D\x0004\x0000\x0001\x001D" + + "\x0001\x0000\x0002\x001D\x0004\x0000\x0001\x001D\x0003\x0000\x0003\x001D\x0012\x0000\x0001\x001D" + + "\x0001\x0000\x0002\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0004\x001D\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x0002\x001D" + + "\x0001\x0000\x0004\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x000F\x001D\x0001\x0000\x0002\x001D" + + "\x0001\x0000\x0011\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0021\x001D\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0002\x001D\x0002\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0003\x001D\x0012\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0004\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D" + + "\x0002\x0000\x0001\x001D\x0002\x0000\x0002\x001D\x0001\x0000\x0004\x001D\x0001\x0000\x0003\x001D" + + "\x0001\x0000\x000F\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0011\x001D\x0001\x0000\x0002\x001D" + + "\x0001\x0000\x0021\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0002\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0003\x001D\x001E\x0000\x0001\x001D" + + "\x000F\x0000\x0001\x001D\x0013\x0000\x0001\x001D\x001A\x0000\x0001\x001D\x0021\x0000\x0001\x001D" + + "\x0007\x0000\x0001\x001D\x0018\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0003\x0000\x0004\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0003\x001D" + + "\x0001\x0000\x0002\x001D\x0001\x0000\x0004\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x0008\x001D" + + "\x0001\x0000\x0006\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0011\x001D\x0001\x0000\x0002\x001D" + + "\x0001\x0000\x0021\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0002\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0003\x001D\x0075\x0000\x0001\x0021" + + "\x0015\x0000\x0001\x001E\x0002\x0021\x0011\x0000\x0001\x0022\x0001\x0000\x0001\x0023\x0002\x0000" + + "\x0001\x0024\x0001\x0000\x0001\x0025\x0004\x0000\x0001\x0026\x0001\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0002\x0000\x0001\x0029\x0003\x0000\x0001\x002A\x0002\x0000\x0001\x002B\x0004\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002D\x000F\x0000\x0001\x002E\x0002\x0000\x0001\x002F\x0011\x0000" + + "\x0001\x0030\x0002\x0000\x0001\x0031\x0031\x0000\x0002\x0018\x0001\x0032\x0001\x0000\x0001\x0033" + + "\x0001\x0000\x0001\x0033\x0001\x0034\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0033\x0001\x0000" + + "\x0001\x001F\x0001\x0018\x0001\x0000\x0001\x0022\x0001\x0000\x0001\x0023\x0002\x0000\x0001\x0035" + + "\x0001\x0000\x0001\x0036\x0004\x0000\x0001\x0026\x0001\x0000\x0001\x0027\x0001\x0000\x0001\x0028" + + "\x0002\x0000\x0001\x0029\x0003\x0000\x0001\x0037\x0002\x0000\x0001\x0038\x0004\x0000\x0001\x0039" + + "\x0003\x0000\x0001\x003A\x000F\x0000\x0001\x002E\x0002\x0000\x0001\x003B\x0011\x0000\x0001\x003C" + + "\x0002\x0000\x0001\x003D\x0031\x0000\x0001\x0018\x0002\x0019\x0002\x0000\x0002\x003E\x0001\x003F" + + "\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x003E\x0001\x0000\x0001\x001F\x0001\x0018\x0006\x0000" + + "\x0001\x0040\x0011\x0000\x0001\x0041\x0002\x0000\x0001\x0042\x0008\x0000\x0001\x0043\x0012\x0000" + + "\x0001\x0044\x0011\x0000\x0001\x0045\x0002\x0000\x0001\x0046\x0021\x0000\x0001\x0047\x0010\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x001A\x0003\x0000\x0001\x0034\x0001\x0000\x0001\x001A\x0007\x0000" + + "\x0001\x0022\x0001\x0000\x0001\x0023\x0002\x0000\x0001\x0048\x0001\x0000\x0001\x0036\x0004\x0000" + + "\x0001\x0026\x0001\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0002\x0000\x0001\x0029\x0003\x0000" + + "\x0001\x0049\x0002\x0000\x0001\x004A\x0004\x0000\x0001\x0039\x0003\x0000\x0001\x004B\x000F\x0000" + + "\x0001\x002E\x0002\x0000\x0001\x004C\x0011\x0000\x0001\x004D\x0002\x0000\x0001\x004E\x0021\x0000" + + "\x0001\x004F\x000F\x0000\x0001\x0018\x0001\x0050\x0001\x0019\x0001\x0051\x0003\x0000\x0001\x0050" + + "\x0001\x0000\x0001\x0050\x0004\x0000\x0001\x001F\x0001\x0018\x0086\x0000\x0002\x001C\x000C\x0000" + + "\x0001\x0052\x0011\x0000\x0001\x0053\x0002\x0000\x0001\x0054\x0008\x0000\x0001\x0055\x0012\x0000" + + "\x0001\x0056\x0011\x0000\x0001\x0057\x0002\x0000\x0001\x0058\x0032\x0000\x0001\x001D\x0007\x0000" + + "\x0001\x001D\x000C\x0000\x0001\x0059\x0011\x0000\x0001\x005A\x0002\x0000\x0001\x005B\x0008\x0000" + + "\x0001\x005C\x0012\x0000\x0001\x005D\x0011\x0000\x0001\x005E\x0002\x0000\x0001\x005F\x0032\x0000" + + "\x0001\x001E\x0007\x0000\x0001\x001E\x0007\x0000\x0001\x0022\x0001\x0000\x0001\x0023\x0002\x0000" + + "\x0001\x0060\x0001\x0000\x0001\x0025\x0004\x0000\x0001\x0026\x0001\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0002\x0000\x0001\x0029\x0003\x0000\x0001\x0061\x0002\x0000\x0001\x0062\x0004\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x0063\x000F\x0000\x0001\x002E\x0002\x0000\x0001\x0064\x0011\x0000" + + "\x0001\x0065\x0002\x0000\x0001\x0066\x0031\x0000\x0001\x0018\x0001\x001F\x0001\x0032\x0001\x0000" + + "\x0001\x0033\x0001\x0000\x0001\x0033\x0001\x0034\x0001\x0000\x0001\x001F\x0002\x0000\x0001\x0067" + + "\x0001\x0068\x0001\x001F\x0001\x0018\x0001\x0000\x0001\x0022\x0001\x0000\x0001\x0023\x0002\x0000" + + "\x0001\x0069\x0001\x0000\x0001\x0025\x0004\x0000\x0001\x0026\x0001\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0002\x0000\x0001\x0029\x0003\x0000\x0001\x006A\x0002\x0000\x0001\x006B\x0004\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x006C\x000F\x0000\x0001\x002E\x0002\x0000\x0001\x006D\x0011\x0000" + + "\x0001\x006E\x0002\x0000\x0001\x006F\x0031\x0000\x0001\x0018\x0001\x0020\x0001\x0032\x0001\x0000" + + "\x0001\x0033\x0001\x0000\x0001\x0033\x0001\x0034\x0001\x0000\x0001\x0020\x0002\x0000\x0001\x0033" + + "\x0001\x0000\x0001\x001F\x0001\x0020\x0006\x0000\x0001\x0070\x0011\x0000\x0001\x0071\x0002\x0000" + + "\x0001\x0072\x0008\x0000\x0001\x0073\x0012\x0000\x0001\x0074\x0011\x0000\x0001\x0075\x0002\x0000" + + "\x0001\x0076\x002D\x0000\x0001\x0077\x0004\x0000\x0001\x0021\x0007\x0000\x0001\x0021\x000D\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x000B\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0008\x0000\x0001\x0018\x0012\x0000" + + "\x0004\x0018\x001D\x0000\x0001\x0018\x0019\x0000\x0001\x0018\x0003\x0000\x0004\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0032\x0002\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000" + + "\x0002\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0004\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0001\x0000" + + "\x0002\x0018\x0001\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0008\x0018\x0001\x0000" + + "\x0002\x0018\x0001\x0000\x0008\x0018\x0001\x0032\x0001\x0000\x0007\x0018\x0001\x0000\x0008\x0018" + + "\x0001\x0000\x0006\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0003\x0000\x0003\x0018\x0012\x0000\x0001\x0018\x0016\x0000\x0002\x0018" + + "\x0013\x0000\x0001\x0032\x0001\x0018\x0020\x0000\x0001\x0032\x000B\x0000\x0001\x0018\x0035\x0000" + + "\x0001\x0032\x0009\x0000\x0001\x0018\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000" + + "\x0004\x0018\x0001\x0000\x0002\x0018\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0004\x0000\x0003\x0018\x0001\x0000\x0004\x0032\x0001\x0000\x0002\x0018\x0005\x0000" + + "\x0004\x0018\x0002\x0000\x0002\x0018\x000A\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0024\x0000" + + "\x0001\x0018\x0003\x0000\x0002\x0018\x000A\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0007\x0000" + + "\x0001\x0018\x0006\x0000\x0002\x0018\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0004\x0000" + + "\x0002\x0018\x0002\x0000\x0002\x0018\x0005\x0000\x0003\x0018\x0002\x0000\x0001\x0018\x0003\x0000" + + "\x0002\x0032\x0008\x0000\x0001\x0018\x000E\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0018\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000" + + "\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000" + + "\x0002\x0018\x0006\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x001B\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000" + + "\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0004\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0005\x0018\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x005C\x0000\x0002\x0018\x0015\x0000\x0004\x0018\x002D\x0000\x0001\x0018\x000D\x0000" + + "\x0002\x0018\x0008\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0009\x0000" + + "\x0001\x0018\x0009\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0002\x0000\x0004\x0018\x0003\x0000" + + "\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0001\x0018\x0008\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0001\x0000" + + "\x0004\x0018\x0013\x0000\x0001\x0018\x0011\x0000\x0001\x0022\x0001\x0000\x0001\x0023\x0002\x0000" + + "\x0001\x0078\x0001\x0000\x0001\x0025\x0004\x0000\x0001\x0026\x0001\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0002\x0000\x0001\x0029\x0003\x0000\x0001\x0079\x0002\x0000\x0001\x007A\x0004\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x007B\x000F\x0000\x0001\x002E\x0002\x0000\x0001\x007C\x0011\x0000" + + "\x0001\x007D\x0002\x0000\x0001\x007E\x0031\x0000\x0001\x0018\x0002\x0032\x0002\x0000\x0002\x007F" + + "\x0001\x0034\x0001\x0000\x0001\x0032\x0002\x0000\x0001\x007F\x0001\x0000\x0001\x001F\x0001\x0018" + + "\x0001\x0000\x0001\x0022\x0001\x0000\x0001\x0023\x0002\x0000\x0001\x0080\x0001\x0000\x0001\x0081" + + "\x0004\x0000\x0001\x0026\x0001\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0002\x0000\x0001\x0029" + + "\x0003\x0000\x0001\x0082\x0002\x0000\x0001\x0083\x0004\x0000\x0001\x0084\x0003\x0000\x0001\x0085" + + "\x000F\x0000\x0001\x002E\x0002\x0000\x0001\x0086\x0011\x0000\x0001\x0087\x0002\x0000\x0001\x0088" + + "\x0031\x0000\x0001\x0018\x0001\x0033\x0007\x0000\x0001\x0033\x0004\x0000\x0002\x0018\x0001\x0000" + + "\x0001\x0022\x0001\x0000\x0001\x0023\x0002\x0000\x0001\x0089\x0001\x0000\x0001\x0025\x0004\x0000" + + "\x0001\x0026\x0001\x0000\x0001\x0027\x0001\x0000\x0001\x0028\x0002\x0000\x0001\x0029\x0003\x0000" + + "\x0001\x008A\x0002\x0000\x0001\x008B\x0004\x0000\x0001\x002C\x0003\x0000\x0001\x008C\x000F\x0000" + + "\x0001\x002E\x0002\x0000\x0001\x008D\x0011\x0000\x0001\x008E\x0002\x0000\x0001\x008F\x0021\x0000" + + "\x0001\x004F\x000F\x0000\x0001\x0018\x0001\x0034\x0001\x0032\x0001\x0051\x0003\x0000\x0001\x0034" + + "\x0001\x0000\x0001\x0034\x0004\x0000\x0001\x001F\x0001\x0018\x0007\x0000\x0001\x0018\x0004\x0000" + + "\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000" + + "\x0001\x0019\x0002\x0000\x0001\x0019\x0008\x0000\x0001\x0018\x0012\x0000\x0004\x0019\x001D\x0000" + + "\x0001\x0018\x0016\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0019\x0001\x0018" + + "\x0020\x0000\x0001\x0019\x000B\x0000\x0001\x0019\x0035\x0000\x0001\x0019\x0009\x0000\x0001\x0019" + + "\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x0019\x0001\x0000" + + "\x0002\x0019\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x0019\x0004\x0000" + + "\x0001\x0019\x0002\x0018\x0001\x0000\x0004\x0019\x0001\x0000\x0002\x0018\x0005\x0000\x0004\x0019" + + "\x0002\x0000\x0001\x0018\x0001\x0019\x000A\x0000\x0001\x0019\x0007\x0000\x0001\x0018\x0018\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000" + + "\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0019\x0001\x0000" + + "\x0002\x0018\x0006\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x001B\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000" + + "\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0004\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x0019" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x005C\x0000\x0002\x0019\x0015\x0000\x0004\x0019\x002D\x0000\x0001\x0019" + + "\x000D\x0000\x0002\x0019\x0008\x0000\x0002\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019" + + "\x0009\x0000\x0001\x0019\x0009\x0000\x0002\x0019\x0006\x0000\x0001\x0019\x0002\x0000\x0004\x0019" + + "\x0003\x0000\x0001\x0019\x0002\x0000\x0002\x0019\x0001\x0000\x0003\x0019\x0001\x0000\x0002\x0019" + + "\x0001\x0000\x0001\x0019\x0008\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000\x0002\x0019" + + "\x0001\x0000\x0004\x0019\x0013\x0000\x0001\x0019\x0016\x0000\x0001\x0090\x0001\x0000\x0001\x0091" + + "\x000F\x0000\x0001\x0092\x0002\x0000\x0001\x0093\x0004\x0000\x0001\x0094\x0003\x0000\x0001\x0095" + + "\x0012\x0000\x0001\x0096\x0011\x0000\x0001\x0097\x0002\x0000\x0001\x0098\x0032\x0000\x0001\x003E" + + "\x0001\x0019\x0006\x0000\x0001\x003E\x0007\x0000\x0001\x0022\x0001\x0000\x0001\x0023\x0002\x0000" + + "\x0001\x0099\x0001\x0000\x0001\x0036\x0004\x0000\x0001\x0026\x0001\x0000\x0001\x0027\x0001\x0000" + + "\x0001\x0028\x0002\x0000\x0001\x0029\x0003\x0000\x0001\x009A\x0002\x0000\x0001\x009B\x0004\x0000" + + "\x0001\x0039\x0003\x0000\x0001\x009C\x000F\x0000\x0001\x002E\x0002\x0000\x0001\x009D\x0011\x0000" + + "\x0001\x009E\x0002\x0000\x0001\x009F\x0021\x0000\x0001\x004F\x000F\x0000\x0001\x0018\x0001\x003F" + + "\x0001\x0019\x0001\x0051\x0003\x0000\x0001\x003F\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x001F" + + "\x0001\x0018\x0039\x0000\x0001\x001A\x0002\x0000\x0001\x001A\x001B\x0000\x0004\x001A\x008E\x0000" + + "\x0001\x001A\x003F\x0000\x0001\x001A\x0024\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0011\x0000" + + "\x0001\x001A\x0004\x0000\x0001\x001A\x000F\x0000\x0004\x001A\x0003\x0000\x0001\x001A\x000A\x0000" + + "\x0001\x001A\x0083\x0000\x0001\x001A\x0092\x0000\x0004\x001A\x006A\x0000\x0002\x001A\x0015\x0000" + + "\x0004\x001A\x002D\x0000\x0001\x001A\x000D\x0000\x0002\x001A\x0008\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x001A\x0009\x0000\x0001\x001A\x0009\x0000\x0002\x001A\x0006\x0000" + + "\x0001\x001A\x0002\x0000\x0004\x001A\x0003\x0000\x0001\x001A\x0002\x0000\x0002\x001A\x0001\x0000" + + "\x0003\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x0008\x0000\x0001\x001A\x0001\x0000" + + "\x0002\x001A\x0002\x0000\x0002\x001A\x0001\x0000\x0004\x001A\x0013\x0000\x0001\x001A\x007F\x0000" + + "\x0001\x001A\x0025\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x0050\x0002\x0000\x0001\x0050\x0008\x0000" + + "\x0001\x0018\x0012\x0000\x0004\x0050\x001D\x0000\x0001\x0018\x0016\x0000\x0001\x0018\x0016\x0000" + + "\x0002\x0018\x0013\x0000\x0001\x0019\x0001\x0018\x0020\x0000\x0001\x0019\x000B\x0000\x0001\x0050" + + "\x0035\x0000\x0001\x0019\x0009\x0000\x0001\x0050\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018" + + "\x000C\x0000\x0003\x0018\x0001\x0050\x0001\x0000\x0002\x0050\x0009\x0000\x0003\x0018\x0003\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0050\x0004\x0000\x0001\x0050\x0002\x0018\x0001\x0000\x0004\x0019" + + "\x0001\x0000\x0002\x0018\x0005\x0000\x0004\x0050\x0002\x0000\x0001\x0018\x0001\x0050\x000A\x0000" + + "\x0001\x0050\x0007\x0000\x0001\x0018\x0018\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000" + + "\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0003\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0050\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0007\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x001B\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000" + + "\x0003\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000" + + "\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x0050\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x005C\x0000\x0002\x0050" + + "\x0015\x0000\x0004\x0050\x002D\x0000\x0001\x0050\x000D\x0000\x0002\x0050\x0008\x0000\x0002\x0050" + + "\x0001\x0000\x0001\x0050\x0001\x0000\x0001\x0050\x0009\x0000\x0001\x0050\x0009\x0000\x0002\x0050" + + "\x0006\x0000\x0001\x0050\x0002\x0000\x0004\x0050\x0003\x0000\x0001\x0050\x0002\x0000\x0002\x0050" + + "\x0001\x0000\x0003\x0050\x0001\x0000\x0002\x0050\x0001\x0000\x0001\x0050\x0008\x0000\x0001\x0050" + + "\x0001\x0000\x0002\x0050\x0002\x0000\x0002\x0050\x0001\x0000\x0004\x0050\x0013\x0000\x0001\x0050" + + "\x007F\x0000\x0001\x0051\x0024\x0000\x0001\x00A0\x0011\x0000\x0001\x00A1\x0002\x0000\x0001\x00A2" + + "\x0008\x0000\x0001\x00A3\x0012\x0000\x0001\x00A4\x0011\x0000\x0001\x00A5\x0002\x0000\x0001\x00A6" + + "\x0021\x0000\x0001\x004F\x0010\x0000\x0001\x0051\x0001\x0000\x0001\x0051\x0003\x0000\x0001\x0034" + + "\x0001\x0000\x0001\x0051\x003F\x0000\x0001\x001D\x0002\x0000\x0001\x001D\x001B\x0000\x0004\x001D" + + "\x008E\x0000\x0001\x001D\x003F\x0000\x0001\x001D\x0024\x0000\x0001\x001D\x0001\x0000\x0002\x001D" + + "\x0011\x0000\x0001\x001D\x0004\x0000\x0001\x001D\x000F\x0000\x0004\x001D\x0003\x0000\x0001\x001D" + + "\x000A\x0000\x0001\x001D\x0083\x0000\x0001\x001D\x0092\x0000\x0004\x001D\x006A\x0000\x0002\x001D" + + "\x0015\x0000\x0004\x001D\x002D\x0000\x0001\x001D\x000D\x0000\x0002\x001D\x0008\x0000\x0002\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0009\x0000\x0001\x001D\x0009\x0000\x0002\x001D" + + "\x0006\x0000\x0001\x001D\x0002\x0000\x0004\x001D\x0003\x0000\x0001\x001D\x0002\x0000\x0002\x001D" + + "\x0001\x0000\x0003\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0001\x001D\x0008\x0000\x0001\x001D" + + "\x0001\x0000\x0002\x001D\x0002\x0000\x0002\x001D\x0001\x0000\x0004\x001D\x0013\x0000\x0001\x001D" + + "\x0049\x0000\x0001\x001E\x0002\x0000\x0001\x001E\x001B\x0000\x0004\x001E\x008E\x0000\x0001\x001E" + + "\x003F\x0000\x0001\x001E\x0024\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0011\x0000\x0001\x001E" + + "\x0004\x0000\x0001\x001E\x000F\x0000\x0004\x001E\x0003\x0000\x0001\x001E\x000A\x0000\x0001\x001E" + + "\x0083\x0000\x0001\x001E\x0092\x0000\x0004\x001E\x006A\x0000\x0002\x001E\x0015\x0000\x0004\x001E" + + "\x002D\x0000\x0001\x001E\x000D\x0000\x0002\x001E\x0008\x0000\x0002\x001E\x0001\x0000\x0001\x001E" + + "\x0001\x0000\x0001\x001E\x0009\x0000\x0001\x001E\x0009\x0000\x0002\x001E\x0006\x0000\x0001\x001E" + + "\x0002\x0000\x0004\x001E\x0003\x0000\x0001\x001E\x0002\x0000\x0002\x001E\x0001\x0000\x0003\x001E" + + "\x0001\x0000\x0002\x001E\x0001\x0000\x0001\x001E\x0008\x0000\x0001\x001E\x0001\x0000\x0002\x001E" + + "\x0002\x0000\x0002\x001E\x0001\x0000\x0004\x001E\x0013\x0000\x0001\x001E\x0017\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x000B\x0000\x0001\x001F\x0002\x0000\x0001\x001F\x0008\x0000\x0001\x0018\x0012\x0000\x0004\x001F" + + "\x001D\x0000\x0001\x0018\x0016\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0032" + + "\x0001\x0018\x0020\x0000\x0001\x0032\x000B\x0000\x0001\x001F\x0035\x0000\x0001\x0032\x0009\x0000" + + "\x0001\x001F\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x001F" + + "\x0001\x0000\x0002\x001F\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x001F" + + "\x0004\x0000\x0001\x001F\x0002\x0018\x0001\x0000\x0004\x0032\x0001\x0000\x0002\x0018\x0005\x0000" + + "\x0004\x001F\x0002\x0000\x0001\x0018\x0001\x001F\x000A\x0000\x0001\x001F\x0007\x0000\x0001\x0018" + + "\x0018\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018" + + "\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x001F" + + "\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x001B\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0004\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018" + + "\x0004\x001F\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x005C\x0000\x0002\x001F\x0015\x0000\x0004\x001F\x002D\x0000" + + "\x0001\x001F\x000D\x0000\x0002\x001F\x0008\x0000\x0002\x001F\x0001\x0000\x0001\x001F\x0001\x0000" + + "\x0001\x001F\x0009\x0000\x0001\x001F\x0009\x0000\x0002\x001F\x0006\x0000\x0001\x001F\x0002\x0000" + + "\x0004\x001F\x0003\x0000\x0001\x001F\x0002\x0000\x0002\x001F\x0001\x0000\x0003\x001F\x0001\x0000" + + "\x0002\x001F\x0001\x0000\x0001\x001F\x0008\x0000\x0001\x001F\x0001\x0000\x0002\x001F\x0002\x0000" + + "\x0002\x001F\x0001\x0000\x0004\x001F\x0013\x0000\x0001\x001F\x0011\x0000\x0001\x0022\x0001\x0000" + + "\x0001\x0023\x0002\x0000\x0001\x00A7\x0001\x0000\x0001\x0025\x0004\x0000\x0001\x0026\x0001\x0000" + + "\x0001\x0027\x0001\x0000\x0001\x0028\x0002\x0000\x0001\x0029\x0003\x0000\x0001\x00A8\x0002\x0000" + + "\x0001\x00A9\x0004\x0000\x0001\x002C\x0003\x0000\x0001\x00AA\x000F\x0000\x0001\x002E\x0002\x0000" + + "\x0001\x00AB\x0011\x0000\x0001\x00AC\x0002\x0000\x0001\x00AD\x0031\x0000\x0001\x0018\x0001\x0067" + + "\x0001\x0032\x0004\x0000\x0001\x0034\x0001\x0000\x0001\x0067\x0004\x0000\x0001\x001F\x0001\x0018" + + "\x0006\x0000\x0001\x00AE\x0011\x0000\x0001\x00AF\x0002\x0000\x0001\x00B0\x0008\x0000\x0001\x00B1" + + "\x0012\x0000\x0001\x00B2\x0011\x0000\x0001\x00B3\x0002\x0000\x0001\x00B4\x0032\x0000\x0001\x0068" + + "\x0007\x0000\x0001\x0068\x0004\x0000\x0001\x0067\x0008\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x0020" + + "\x0002\x0000\x0001\x0020\x0008\x0000\x0001\x0018\x0012\x0000\x0004\x0020\x001D\x0000\x0001\x0018" + + "\x0016\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0032\x0001\x0018\x0020\x0000" + + "\x0001\x0032\x000B\x0000\x0001\x0020\x0035\x0000\x0001\x0032\x0009\x0000\x0001\x0020\x000D\x0000" + + "\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x0020\x0001\x0000\x0002\x0020" + + "\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x0020\x0004\x0000\x0001\x0020" + + "\x0002\x0018\x0001\x0000\x0004\x0032\x0001\x0000\x0002\x0018\x0005\x0000\x0004\x0020\x0002\x0000" + + "\x0001\x0018\x0001\x0020\x000A\x0000\x0001\x0020\x0007\x0000\x0001\x0018\x0018\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018" + + "\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0020\x0001\x0000\x0002\x0018" + + "\x0006\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x001B\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018" + + "\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x0020\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x005C\x0000\x0002\x0020\x0015\x0000\x0004\x0020\x002D\x0000\x0001\x0020\x000D\x0000" + + "\x0002\x0020\x0008\x0000\x0002\x0020\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0020\x0009\x0000" + + "\x0001\x0020\x0009\x0000\x0002\x0020\x0006\x0000\x0001\x0020\x0002\x0000\x0004\x0020\x0003\x0000" + + "\x0001\x0020\x0002\x0000\x0002\x0020\x0001\x0000\x0003\x0020\x0001\x0000\x0002\x0020\x0001\x0000" + + "\x0001\x0020\x0008\x0000\x0001\x0020\x0001\x0000\x0002\x0020\x0002\x0000\x0002\x0020\x0001\x0000" + + "\x0004\x0020\x0013\x0000\x0001\x0020\x0049\x0000\x0001\x0021\x0002\x0000\x0001\x0021\x001B\x0000" + + "\x0004\x0021\x008E\x0000\x0001\x0021\x003F\x0000\x0001\x0021\x0024\x0000\x0001\x0021\x0001\x0000" + + "\x0002\x0021\x0011\x0000\x0001\x0021\x0004\x0000\x0001\x0021\x000F\x0000\x0004\x0021\x0003\x0000" + + "\x0001\x0021\x000A\x0000\x0001\x0021\x0083\x0000\x0001\x0021\x0092\x0000\x0004\x0021\x006A\x0000" + + "\x0002\x0021\x0015\x0000\x0004\x0021\x002D\x0000\x0001\x0021\x000D\x0000\x0002\x0021\x0008\x0000" + + "\x0002\x0021\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x0021\x0009\x0000\x0001\x0021\x0009\x0000" + + "\x0002\x0021\x0006\x0000\x0001\x0021\x0002\x0000\x0004\x0021\x0003\x0000\x0001\x0021\x0002\x0000" + + "\x0002\x0021\x0001\x0000\x0003\x0021\x0001\x0000\x0002\x0021\x0001\x0000\x0001\x0021\x0008\x0000" + + "\x0001\x0021\x0001\x0000\x0002\x0021\x0002\x0000\x0002\x0021\x0001\x0000\x0004\x0021\x0013\x0000" + + "\x0001\x0021\x0075\x0000\x0001\x00B5\x0016\x0000\x0002\x00B5\x0017\x0000\x0001\x0018\x0004\x0000" + + "\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0032\x0008\x0000\x0001\x0018\x0012\x0000\x0004\x0032\x001D\x0000" + + "\x0001\x0018\x0016\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0032\x0001\x0018" + + "\x0020\x0000\x0001\x0032\x000B\x0000\x0001\x0032\x0035\x0000\x0001\x0032\x0009\x0000\x0001\x0032" + + "\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x0032\x0001\x0000" + + "\x0002\x0032\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x0032\x0004\x0000" + + "\x0001\x0032\x0002\x0018\x0001\x0000\x0004\x0032\x0001\x0000\x0002\x0018\x0005\x0000\x0004\x0032" + + "\x0002\x0000\x0001\x0018\x0001\x0032\x000A\x0000\x0001\x0032\x0007\x0000\x0001\x0018\x0018\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000" + + "\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0032\x0001\x0000" + + "\x0002\x0018\x0006\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x001B\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000" + + "\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0004\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x0032" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x005C\x0000\x0002\x0032\x0015\x0000\x0004\x0032\x002D\x0000\x0001\x0032" + + "\x000D\x0000\x0002\x0032\x0008\x0000\x0002\x0032\x0001\x0000\x0001\x0032\x0001\x0000\x0001\x0032" + + "\x0009\x0000\x0001\x0032\x0009\x0000\x0002\x0032\x0006\x0000\x0001\x0032\x0002\x0000\x0004\x0032" + + "\x0003\x0000\x0001\x0032\x0002\x0000\x0002\x0032\x0001\x0000\x0003\x0032\x0001\x0000\x0002\x0032" + + "\x0001\x0000\x0001\x0032\x0008\x0000\x0001\x0032\x0001\x0000\x0002\x0032\x0002\x0000\x0002\x0032" + + "\x0001\x0000\x0004\x0032\x0013\x0000\x0001\x0032\x0016\x0000\x0001\x00B6\x0001\x0000\x0001\x00B7" + + "\x000F\x0000\x0001\x00B8\x0002\x0000\x0001\x00B9\x0004\x0000\x0001\x00BA\x0003\x0000\x0001\x00BB" + + "\x0012\x0000\x0001\x00BC\x0011\x0000\x0001\x00BD\x0002\x0000\x0001\x00BE\x0032\x0000\x0001\x007F" + + "\x0001\x0032\x0006\x0000\x0001\x007F\x000D\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000" + + "\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x0033\x0002\x0000" + + "\x0001\x0033\x0008\x0000\x0001\x0018\x0012\x0000\x0004\x0033\x001D\x0000\x0001\x0018\x0019\x0000" + + "\x0001\x0018\x0003\x0000\x0004\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000" + + "\x0002\x0018\x0002\x0000\x0002\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0002\x0000\x0004\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0002\x0000" + + "\x0008\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0008\x0018\x0002\x0000\x0007\x0018\x0001\x0000" + + "\x0008\x0018\x0001\x0000\x0006\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0003\x0000\x0003\x0018\x0012\x0000\x0001\x0018\x0016\x0000" + + "\x0002\x0018\x0014\x0000\x0001\x0018\x002C\x0000\x0001\x0033\x003F\x0000\x0001\x0033\x000D\x0000" + + "\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x0033\x0001\x0000\x0002\x0033" + + "\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x0033\x0004\x0000\x0001\x0033" + + "\x0002\x0018\x0006\x0000\x0002\x0018\x0005\x0000\x0004\x0033\x0002\x0000\x0001\x0018\x0001\x0033" + + "\x000A\x0000\x0001\x0033\x0007\x0000\x0001\x0018\x0024\x0000\x0001\x0018\x0003\x0000\x0002\x0018" + + "\x000A\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0007\x0000\x0001\x0018\x0006\x0000\x0002\x0018" + + "\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0004\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0005\x0000\x0003\x0018\x0002\x0000\x0001\x0018\x000D\x0000\x0001\x0018\x000E\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0018\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018" + + "\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0003\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0033\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0007\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x001B\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018" + + "\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0004\x0000\x0001\x0018\x0004\x0033\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x005C\x0000\x0002\x0033\x0015\x0000" + + "\x0004\x0033\x002D\x0000\x0001\x0033\x000D\x0000\x0002\x0033\x0008\x0000\x0002\x0033\x0001\x0000" + + "\x0001\x0033\x0001\x0000\x0001\x0033\x0009\x0000\x0001\x0033\x0009\x0000\x0002\x0033\x0006\x0000" + + "\x0001\x0033\x0002\x0000\x0004\x0033\x0003\x0000\x0001\x0033\x0002\x0000\x0002\x0033\x0001\x0000" + + "\x0003\x0033\x0001\x0000\x0002\x0033\x0001\x0000\x0001\x0033\x0008\x0000\x0001\x0033\x0001\x0000" + + "\x0002\x0033\x0002\x0000\x0002\x0033\x0001\x0000\x0004\x0033\x0013\x0000\x0001\x0033\x0017\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x000B\x0000\x0001\x0034\x0002\x0000\x0001\x0034\x0008\x0000\x0001\x0018\x0012\x0000" + + "\x0004\x0034\x001D\x0000\x0001\x0018\x0016\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000" + + "\x0001\x0032\x0001\x0018\x0020\x0000\x0001\x0032\x000B\x0000\x0001\x0034\x0035\x0000\x0001\x0032" + + "\x0009\x0000\x0001\x0034\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018" + + "\x0001\x0034\x0001\x0000\x0002\x0034\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0034\x0002\x0018\x0001\x0000\x0004\x0032\x0001\x0000\x0002\x0018" + + "\x0005\x0000\x0004\x0034\x0002\x0000\x0001\x0018\x0001\x0034\x000A\x0000\x0001\x0034\x0007\x0000" + + "\x0001\x0018\x0018\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000" + + "\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000" + + "\x0001\x0034\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x001B\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0004\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000" + + "\x0001\x0018\x0004\x0034\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x005C\x0000\x0002\x0034\x0015\x0000\x0004\x0034" + + "\x002D\x0000\x0001\x0034\x000D\x0000\x0002\x0034\x0008\x0000\x0002\x0034\x0001\x0000\x0001\x0034" + + "\x0001\x0000\x0001\x0034\x0009\x0000\x0001\x0034\x0009\x0000\x0002\x0034\x0006\x0000\x0001\x0034" + + "\x0002\x0000\x0004\x0034\x0003\x0000\x0001\x0034\x0002\x0000\x0002\x0034\x0001\x0000\x0003\x0034" + + "\x0001\x0000\x0002\x0034\x0001\x0000\x0001\x0034\x0008\x0000\x0001\x0034\x0001\x0000\x0002\x0034" + + "\x0002\x0000\x0002\x0034\x0001\x0000\x0004\x0034\x0013\x0000\x0001\x0034\x0049\x0000\x0001\x003E" + + "\x0002\x0000\x0001\x003E\x001B\x0000\x0004\x003E\x0042\x0000\x0001\x0019\x0044\x0000\x0001\x0019" + + "\x0066\x0000\x0001\x0019\x0021\x0000\x0001\x0019\x000B\x0000\x0001\x003E\x0035\x0000\x0001\x0019" + + "\x0009\x0000\x0001\x003E\x0024\x0000\x0001\x003E\x0001\x0000\x0002\x003E\x0011\x0000\x0001\x003E" + + "\x0004\x0000\x0001\x003E\x0003\x0000\x0004\x0019\x0008\x0000\x0004\x003E\x0003\x0000\x0001\x003E" + + "\x000A\x0000\x0001\x003E\x0074\x0000\x0002\x0019\x009B\x0000\x0001\x003E\x0092\x0000\x0004\x003E" + + "\x006A\x0000\x0002\x003E\x0015\x0000\x0004\x003E\x002D\x0000\x0001\x003E\x000D\x0000\x0002\x003E" + + "\x0008\x0000\x0002\x003E\x0001\x0000\x0001\x003E\x0001\x0000\x0001\x003E\x0009\x0000\x0001\x003E" + + "\x0009\x0000\x0002\x003E\x0006\x0000\x0001\x003E\x0002\x0000\x0004\x003E\x0003\x0000\x0001\x003E" + + "\x0002\x0000\x0002\x003E\x0001\x0000\x0003\x003E\x0001\x0000\x0002\x003E\x0001\x0000\x0001\x003E" + + "\x0008\x0000\x0001\x003E\x0001\x0000\x0002\x003E\x0002\x0000\x0002\x003E\x0001\x0000\x0004\x003E" + + "\x0013\x0000\x0001\x003E\x0017\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018" + + "\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x003F\x0002\x0000\x0001\x003F" + + "\x0008\x0000\x0001\x0018\x0012\x0000\x0004\x003F\x001D\x0000\x0001\x0018\x0016\x0000\x0001\x0018" + + "\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0019\x0001\x0018\x0020\x0000\x0001\x0019\x000B\x0000" + + "\x0001\x003F\x0035\x0000\x0001\x0019\x0009\x0000\x0001\x003F\x000D\x0000\x0004\x0018\x0002\x0000" + + "\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x003F\x0001\x0000\x0002\x003F\x0009\x0000\x0003\x0018" + + "\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x003F\x0004\x0000\x0001\x003F\x0002\x0018\x0001\x0000" + + "\x0004\x0019\x0001\x0000\x0002\x0018\x0005\x0000\x0004\x003F\x0002\x0000\x0001\x0018\x0001\x003F" + + "\x000A\x0000\x0001\x003F\x0007\x0000\x0001\x0018\x0018\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018" + + "\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0003\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x003F\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x001B\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018" + + "\x0005\x0000\x0003\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0002\x0018" + + "\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x003F\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x005C\x0000" + + "\x0002\x003F\x0015\x0000\x0004\x003F\x002D\x0000\x0001\x003F\x000D\x0000\x0002\x003F\x0008\x0000" + + "\x0002\x003F\x0001\x0000\x0001\x003F\x0001\x0000\x0001\x003F\x0009\x0000\x0001\x003F\x0009\x0000" + + "\x0002\x003F\x0006\x0000\x0001\x003F\x0002\x0000\x0004\x003F\x0003\x0000\x0001\x003F\x0002\x0000" + + "\x0002\x003F\x0001\x0000\x0003\x003F\x0001\x0000\x0002\x003F\x0001\x0000\x0001\x003F\x0008\x0000" + + "\x0001\x003F\x0001\x0000\x0002\x003F\x0002\x0000\x0002\x003F\x0001\x0000\x0004\x003F\x0013\x0000" + + "\x0001\x003F\x0049\x0000\x0001\x0051\x0002\x0000\x0001\x0051\x001B\x0000\x0004\x0051\x008E\x0000" + + "\x0001\x0051\x003F\x0000\x0001\x0051\x0024\x0000\x0001\x0051\x0001\x0000\x0002\x0051\x0011\x0000" + + "\x0001\x0051\x0004\x0000\x0001\x0051\x000F\x0000\x0004\x0051\x0003\x0000\x0001\x0051\x000A\x0000" + + "\x0001\x0051\x0083\x0000\x0001\x0051\x0092\x0000\x0004\x0051\x006A\x0000\x0002\x0051\x0015\x0000" + + "\x0004\x0051\x002D\x0000\x0001\x0051\x000D\x0000\x0002\x0051\x0008\x0000\x0002\x0051\x0001\x0000" + + "\x0001\x0051\x0001\x0000\x0001\x0051\x0009\x0000\x0001\x0051\x0009\x0000\x0002\x0051\x0006\x0000" + + "\x0001\x0051\x0002\x0000\x0004\x0051\x0003\x0000\x0001\x0051\x0002\x0000\x0002\x0051\x0001\x0000" + + "\x0003\x0051\x0001\x0000\x0002\x0051\x0001\x0000\x0001\x0051\x0008\x0000\x0001\x0051\x0001\x0000" + + "\x0002\x0051\x0002\x0000\x0002\x0051\x0001\x0000\x0004\x0051\x0013\x0000\x0001\x0051\x0017\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x000B\x0000\x0001\x0067\x0002\x0000\x0001\x0067\x0008\x0000\x0001\x0018\x0012\x0000" + + "\x0004\x0067\x001D\x0000\x0001\x0018\x0016\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000" + + "\x0001\x0032\x0001\x0018\x0020\x0000\x0001\x0032\x000B\x0000\x0001\x0067\x0035\x0000\x0001\x0032" + + "\x0009\x0000\x0001\x0067\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018" + + "\x0001\x0067\x0001\x0000\x0002\x0067\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0067\x0004\x0000\x0001\x0067\x0002\x0018\x0001\x0000\x0004\x0032\x0001\x0000\x0002\x0018" + + "\x0005\x0000\x0004\x0067\x0002\x0000\x0001\x0018\x0001\x0067\x000A\x0000\x0001\x0067\x0007\x0000" + + "\x0001\x0018\x0018\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000" + + "\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000" + + "\x0001\x0067\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x001B\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0004\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000" + + "\x0001\x0018\x0004\x0067\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x005C\x0000\x0002\x0067\x0015\x0000\x0004\x0067" + + "\x002D\x0000\x0001\x0067\x000D\x0000\x0002\x0067\x0008\x0000\x0002\x0067\x0001\x0000\x0001\x0067" + + "\x0001\x0000\x0001\x0067\x0009\x0000\x0001\x0067\x0009\x0000\x0002\x0067\x0006\x0000\x0001\x0067" + + "\x0002\x0000\x0004\x0067\x0003\x0000\x0001\x0067\x0002\x0000\x0002\x0067\x0001\x0000\x0003\x0067" + + "\x0001\x0000\x0002\x0067\x0001\x0000\x0001\x0067\x0008\x0000\x0001\x0067\x0001\x0000\x0002\x0067" + + "\x0002\x0000\x0002\x0067\x0001\x0000\x0004\x0067\x0013\x0000\x0001\x0067\x0049\x0000\x0001\x0068" + + "\x0002\x0000\x0001\x0068\x001B\x0000\x0004\x0068\x008E\x0000\x0001\x0068\x003F\x0000\x0001\x0068" + + "\x0024\x0000\x0001\x0068\x0001\x0000\x0002\x0068\x0011\x0000\x0001\x0068\x0004\x0000\x0001\x0068" + + "\x000F\x0000\x0004\x0068\x0003\x0000\x0001\x0068\x000A\x0000\x0001\x0068\x0083\x0000\x0001\x0068" + + "\x0092\x0000\x0004\x0068\x006A\x0000\x0002\x0068\x0015\x0000\x0004\x0068\x002D\x0000\x0001\x0068" + + "\x000D\x0000\x0002\x0068\x0008\x0000\x0002\x0068\x0001\x0000\x0001\x0068\x0001\x0000\x0001\x0068" + + "\x0009\x0000\x0001\x0068\x0009\x0000\x0002\x0068\x0006\x0000\x0001\x0068\x0002\x0000\x0004\x0068" + + "\x0003\x0000\x0001\x0068\x0002\x0000\x0002\x0068\x0001\x0000\x0003\x0068\x0001\x0000\x0002\x0068" + + "\x0001\x0000\x0001\x0068\x0008\x0000\x0001\x0068\x0001\x0000\x0002\x0068\x0002\x0000\x0002\x0068" + + "\x0001\x0000\x0004\x0068\x0013\x0000\x0001\x0068\x0016\x0000\x0001\x00BF\x0011\x0000\x0001\x00C0" + + "\x0002\x0000\x0001\x00C1\x0008\x0000\x0001\x00C2\x0012\x0000\x0001\x00C3\x0011\x0000\x0001\x00C4" + + "\x0002\x0000\x0001\x00C5\x002D\x0000\x0001\x0077\x0004\x0000\x0001\x00B5\x0007\x0000\x0001\x00B5" + + "\x003F\x0000\x0001\x007F\x0002\x0000\x0001\x007F\x001B\x0000\x0004\x007F\x0042\x0000\x0001\x0032" + + "\x0044\x0000\x0001\x0032\x0066\x0000\x0001\x0032\x0021\x0000\x0001\x0032\x000B\x0000\x0001\x007F" + + "\x0035\x0000\x0001\x0032\x0009\x0000\x0001\x007F\x0024\x0000\x0001\x007F\x0001\x0000\x0002\x007F" + + "\x0011\x0000\x0001\x007F\x0004\x0000\x0001\x007F\x0003\x0000\x0004\x0032\x0008\x0000\x0004\x007F" + + "\x0003\x0000\x0001\x007F\x000A\x0000\x0001\x007F\x0074\x0000\x0002\x0032\x009B\x0000\x0001\x007F" + + "\x0092\x0000\x0004\x007F\x006A\x0000\x0002\x007F\x0015\x0000\x0004\x007F\x002D\x0000\x0001\x007F" + + "\x000D\x0000\x0002\x007F\x0008\x0000\x0002\x007F\x0001\x0000\x0001\x007F\x0001\x0000\x0001\x007F" + + "\x0009\x0000\x0001\x007F\x0009\x0000\x0002\x007F\x0006\x0000\x0001\x007F\x0002\x0000\x0004\x007F" + + "\x0003\x0000\x0001\x007F\x0002\x0000\x0002\x007F\x0001\x0000\x0003\x007F\x0001\x0000\x0002\x007F" + + "\x0001\x0000\x0001\x007F\x0008\x0000\x0001\x007F\x0001\x0000\x0002\x007F\x0002\x0000\x0002\x007F" + + "\x0001\x0000\x0004\x007F\x0013\x0000\x0001\x007F\x0049\x0000\x0001\x00B5\x0002\x0000\x0001\x00B5" + + "\x001B\x0000\x0004\x00B5\x008E\x0000\x0001\x00B5\x003F\x0000\x0001\x00B5\x0024\x0000\x0001\x00B5" + + "\x0001\x0000\x0002\x00B5\x0011\x0000\x0001\x00B5\x0004\x0000\x0001\x00B5\x000F\x0000\x0004\x00B5" + + "\x0003\x0000\x0001\x00B5\x000A\x0000\x0001\x00B5\x0083\x0000\x0001\x00B5\x0092\x0000\x0004\x00B5" + + "\x006A\x0000\x0002\x00B5\x0015\x0000\x0004\x00B5\x002D\x0000\x0001\x00B5\x000D\x0000\x0002\x00B5" + + "\x0008\x0000\x0002\x00B5\x0001\x0000\x0001\x00B5\x0001\x0000\x0001\x00B5\x0009\x0000\x0001\x00B5" + + "\x0009\x0000\x0002\x00B5\x0006\x0000\x0001\x00B5\x0002\x0000\x0004\x00B5\x0003\x0000\x0001\x00B5" + + "\x0002\x0000\x0002\x00B5\x0001\x0000\x0003\x00B5\x0001\x0000\x0002\x00B5\x0001\x0000\x0001\x00B5" + + "\x0008\x0000\x0001\x00B5\x0001\x0000\x0002\x00B5\x0002\x0000\x0002\x00B5\x0001\x0000\x0004\x00B5" + + "\x0013\x0000\x0001\x00B5\x0010\x0000"; @@ -696,7 +867,9 @@ private static int ZzUnpackTrans(string packed, int offset, int[] result) ///
private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); - private const string ZZ_ATTRIBUTE_PACKED_0 = "\x0001\0\x0001\x0009\x001E\x0001\x0011\0\x0001\x0001\x0001\0\x0001\x0001\x000A\0" + "\x0001\x0001\x0011\0\x0001\x0001\x0015\0\x0001\x0001\x004D\0\x0001\x0001\x0010\0"; + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0001\x0000\x0001\x0009\x001E\x0001\x0011\x0000\x0001\x0001\x0001\x0000\x0001\x0001\x000A\x0000" + + "\x0001\x0001\x0011\x0000\x0001\x0001\x0015\x0000\x0001\x0001\x004D\x0000\x0001\x0001\x0010\x0000"; private static int[] ZzUnpackAttribute() { @@ -1231,4 +1404,4 @@ public int GetNextToken() } } } -} \ No newline at end of file +} diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/UAX29URLEmailTokenizerImpl31.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/UAX29URLEmailTokenizerImpl31.cs index 2b2f5f478a..3c6f01b7e4 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/UAX29URLEmailTokenizerImpl31.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/UAX29URLEmailTokenizerImpl31.cs @@ -3124,9 +3124,6 @@ private static int ZzUnpackRowMap(string packed, int offset, int[] result) "\x0004\u04c5\x0002\x0000\x0001\u04c5\x000D\x0000\x0001\u04c5\x0006\x0000\x000A\u04c5\x000C\x0000" + "\x0001\u0307\x0009\x0000"; - - - private static int[] ZzUnpackTrans() { int[] result = new int[214182]; diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerImpl.cs index 8cb9fdc8e6..09a343dc8e 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerImpl.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/UAX29URLEmailTokenizerImpl.cs @@ -1,4 +1,4 @@ -using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Tokenattributes; using System; using System.IO; @@ -64,160 +64,161 @@ public sealed class UAX29URLEmailTokenizerImpl : IStandardTokenizerInterface /** * Translates characters to character classes */ - private const string ZZ_CMAP_PACKED = - "\x0001\x00C6\x0008\x00C4\x0002\x00C6\x0002\x00C4\x0001\x00C6\x0013\x00C4\x0001\x00C7\x0001\x008D\x0001\x00BF\x0001\x00C7"+ - "\x0001\x00B9\x0001\x00B7\x0001\x008C\x0002\x00BA\x0002\x00C7\x0001\x00BB\x0001\x00AB\x0001\x0090\x0001\x00BE\x0001\x00AD"+ - "\x0001\x00B4\x0001\x00B3\x0001\x00AC\x0001\x00AF\x0001\x00B0\x0001\x00B5\x0001\x00AE\x0001\x00B2\x0001\x00B1\x0001\x00B6"+ - "\x0001\x00C2\x0001\x00C4\x0001\x00C3\x0001\x00C4\x0001\x00BD\x0001\x00BC\x0001\x0091\x0001\x00A5\x0001\x0092\x0001\x0093"+ - "\x0001\x0094\x0001\x0097\x0001\x0098\x0001\x00A6\x0001\x0099\x0001\x00A8\x0001\x00A7\x0001\x009A\x0001\x009B\x0001\x009C"+ - "\x0001\x0096\x0001\x009E\x0001\x009D\x0001\x0095\x0001\x009F\x0001\x00A0\x0001\x00A1\x0001\x00A9\x0001\x00A2\x0001\x00A3"+ - "\x0001\x00AA\x0001\x00A4\x0001\x00C0\x0001\x00C5\x0001\x00C1\x0001\x00C8\x0001\x00B8\x0001\x00C8\x0001\x0091\x0001\x00A5"+ - "\x0001\x0092\x0001\x0093\x0001\x0094\x0001\x0097\x0001\x0098\x0001\x00A6\x0001\x0099\x0001\x00A8\x0001\x00A7\x0001\x009A"+ - "\x0001\x009B\x0001\x009C\x0001\x0096\x0001\x009E\x0001\x009D\x0001\x0095\x0001\x009F\x0001\x00A0\x0001\x00A1\x0001\x00A9"+ - "\x0001\x00A2\x0001\x00A3\x0001\x00AA\x0001\x00A4\x0003\x00C8\x0001\x00B7\x0001\x00C9\x002A\x0000\x0001\x008A\x0002\x0000"+ - "\x0001\x007F\x0007\x0000\x0001\x008A\x0001\x0000\x0001\x0083\x0002\x0000\x0001\x008A\x0005\x0000\x0017\x008A\x0001\x0000"+ - "\x001F\x008A\x0001\x0000\u01ca\x008A\x0004\x0000\x000C\x008A\x0005\x0000\x0001\x0083\x0008\x0000\x0005\x008A\x0007\x0000"+ - "\x0001\x008A\x0001\x0000\x0001\x008A\x0011\x0000\x0070\x00CB\x0005\x008A\x0001\x0000\x0002\x008A\x0002\x0000\x0004\x008A"+ - "\x0001\x0084\x0007\x0000\x0001\x008A\x0001\x0083\x0003\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0014\x008A\x0001\x0000"+ - "\x0053\x008A\x0001\x0000\x008B\x008A\x0001\x0000\x0007\x00CB\x009E\x008A\x0009\x0000\x0026\x008A\x0002\x0000\x0001\x008A"+ - "\x0007\x0000\x0027\x008A\x0001\x0000\x0001\x0084\x0007\x0000\x002D\x00CB\x0001\x0000\x0001\x00CB\x0001\x0000\x0002\x00CB"+ - "\x0001\x0000\x0002\x00CB\x0001\x0000\x0001\x00CB\x0008\x0000\x001B\x008E\x0005\x0000\x0003\x008E\x0001\x007E\x0001\x0083"+ - "\x000B\x0000\x0005\x007F\x0007\x0000\x0002\x0084\x0002\x0000\x000B\x00CB\x0001\x0000\x0001\x007F\x0003\x0000\x002B\x008A"+ - "\x0015\x00CB\x000A\x0080\x0001\x0000\x0001\x0081\x0001\x0084\x0001\x0000\x0002\x008A\x0001\x00CB\x0063\x008A\x0001\x0000"+ - "\x0001\x008A\x0007\x00CB\x0001\x007F\x0001\x0000\x0006\x00CB\x0002\x008A\x0002\x00CB\x0001\x0000\x0004\x00CB\x0002\x008A"+ - "\x000A\x0080\x0003\x008A\x0002\x0000\x0001\x008A\x000F\x0000\x0001\x007F\x0001\x008A\x0001\x00CB\x001E\x008A\x001B\x00CB"+ - "\x0002\x0000\x0059\x008A\x000B\x00CB\x0001\x008A\x000E\x0000\x000A\x0080\x0021\x008A\x0009\x00CB\x0002\x008A\x0002\x0000"+ - "\x0001\x0084\x0001\x0000\x0001\x008A\x0005\x0000\x0016\x008A\x0004\x00CB\x0001\x008A\x0009\x00CB\x0001\x008A\x0003\x00CB"+ - "\x0001\x008A\x0005\x00CB\x0012\x0000\x0019\x008A\x0003\x00CB\x0044\x0000\x0001\x008A\x0001\x0000\x000B\x008A\x0037\x0000"+ - "\x001B\x00CB\x0001\x0000\x0004\x00CB\x0036\x008A\x0003\x00CB\x0001\x008A\x0012\x00CB\x0001\x008A\x0007\x00CB\x000A\x008A"+ - "\x0002\x00CB\x0002\x0000\x000A\x0080\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0003\x00CB\x0001\x0000"+ - "\x0008\x008A\x0002\x0000\x0002\x008A\x0002\x0000\x0016\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0001\x008A\x0003\x0000"+ - "\x0004\x008A\x0002\x0000\x0001\x00CB\x0001\x008A\x0007\x00CB\x0002\x0000\x0002\x00CB\x0002\x0000\x0003\x00CB\x0001\x008A"+ - "\x0008\x0000\x0001\x00CB\x0004\x0000\x0002\x008A\x0001\x0000\x0003\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0002\x008A"+ - "\x000F\x0000\x0003\x00CB\x0001\x0000\x0006\x008A\x0004\x0000\x0002\x008A\x0002\x0000\x0016\x008A\x0001\x0000\x0007\x008A"+ - "\x0001\x0000\x0002\x008A\x0001\x0000\x0002\x008A\x0001\x0000\x0002\x008A\x0002\x0000\x0001\x00CB\x0001\x0000\x0005\x00CB"+ - "\x0004\x0000\x0002\x00CB\x0002\x0000\x0003\x00CB\x0003\x0000\x0001\x00CB\x0007\x0000\x0004\x008A\x0001\x0000\x0001\x008A"+ - "\x0007\x0000\x000A\x0080\x0002\x00CB\x0003\x008A\x0001\x00CB\x000B\x0000\x0003\x00CB\x0001\x0000\x0009\x008A\x0001\x0000"+ - "\x0003\x008A\x0001\x0000\x0016\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0002\x008A\x0001\x0000\x0005\x008A\x0002\x0000"+ - "\x0001\x00CB\x0001\x008A\x0008\x00CB\x0001\x0000\x0003\x00CB\x0001\x0000\x0003\x00CB\x0002\x0000\x0001\x008A\x000F\x0000"+ - "\x0002\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0011\x0000\x0003\x00CB\x0001\x0000\x0008\x008A\x0002\x0000\x0002\x008A"+ - "\x0002\x0000\x0016\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0002\x008A\x0001\x0000\x0005\x008A\x0002\x0000\x0001\x00CB"+ - "\x0001\x008A\x0007\x00CB\x0002\x0000\x0002\x00CB\x0002\x0000\x0003\x00CB\x0008\x0000\x0002\x00CB\x0004\x0000\x0002\x008A"+ - "\x0001\x0000\x0003\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0001\x0000\x0001\x008A\x0010\x0000\x0001\x00CB\x0001\x008A"+ - "\x0001\x0000\x0006\x008A\x0003\x0000\x0003\x008A\x0001\x0000\x0004\x008A\x0003\x0000\x0002\x008A\x0001\x0000\x0001\x008A"+ - "\x0001\x0000\x0002\x008A\x0003\x0000\x0002\x008A\x0003\x0000\x0003\x008A\x0003\x0000\x000C\x008A\x0004\x0000\x0005\x00CB"+ - "\x0003\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0002\x0000\x0001\x008A\x0006\x0000\x0001\x00CB\x000E\x0000\x000A\x0080"+ - "\x0011\x0000\x0003\x00CB\x0001\x0000\x0008\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0017\x008A\x0001\x0000\x000A\x008A"+ - "\x0001\x0000\x0005\x008A\x0003\x0000\x0001\x008A\x0007\x00CB\x0001\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0007\x0000"+ - "\x0002\x00CB\x0001\x0000\x0002\x008A\x0006\x0000\x0002\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0012\x0000\x0002\x00CB"+ - "\x0001\x0000\x0008\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0017\x008A\x0001\x0000\x000A\x008A\x0001\x0000\x0005\x008A"+ - "\x0002\x0000\x0001\x00CB\x0001\x008A\x0007\x00CB\x0001\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0007\x0000\x0002\x00CB"+ - "\x0007\x0000\x0001\x008A\x0001\x0000\x0002\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0001\x0000\x0002\x008A\x000F\x0000"+ - "\x0002\x00CB\x0001\x0000\x0008\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0029\x008A\x0002\x0000\x0001\x008A\x0007\x00CB"+ - "\x0001\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0001\x008A\x0008\x0000\x0001\x00CB\x0008\x0000\x0002\x008A\x0002\x00CB"+ - "\x0002\x0000\x000A\x0080\x000A\x0000\x0006\x008A\x0002\x0000\x0002\x00CB\x0001\x0000\x0012\x008A\x0003\x0000\x0018\x008A"+ - "\x0001\x0000\x0009\x008A\x0001\x0000\x0001\x008A\x0002\x0000\x0007\x008A\x0003\x0000\x0001\x00CB\x0004\x0000\x0006\x00CB"+ - "\x0001\x0000\x0001\x00CB\x0001\x0000\x0008\x00CB\x0012\x0000\x0002\x00CB\x000D\x0000\x0030\x00CD\x0001\x0088\x0002\x00CD"+ - "\x0007\x0088\x0005\x0000\x0007\x00CD\x0008\x0088\x0001\x0000\x000A\x0080\x0027\x0000\x0002\x00CD\x0001\x0000\x0001\x00CD"+ - "\x0002\x0000\x0002\x00CD\x0001\x0000\x0001\x00CD\x0002\x0000\x0001\x00CD\x0006\x0000\x0004\x00CD\x0001\x0000\x0007\x00CD"+ - "\x0001\x0000\x0003\x00CD\x0001\x0000\x0001\x00CD\x0001\x0000\x0001\x00CD\x0002\x0000\x0002\x00CD\x0001\x0000\x0004\x00CD"+ - "\x0001\x0088\x0002\x00CD\x0006\x0088\x0001\x0000\x0002\x0088\x0001\x00CD\x0002\x0000\x0005\x00CD\x0001\x0000\x0001\x00CD"+ - "\x0001\x0000\x0006\x0088\x0002\x0000\x000A\x0080\x0002\x0000\x0004\x00CD\x0020\x0000\x0001\x008A\x0017\x0000\x0002\x00CB"+ - "\x0006\x0000\x000A\x0080\x000B\x0000\x0001\x00CB\x0001\x0000\x0001\x00CB\x0001\x0000\x0001\x00CB\x0004\x0000\x0002\x00CB"+ - "\x0008\x008A\x0001\x0000\x0024\x008A\x0004\x0000\x0014\x00CB\x0001\x0000\x0002\x00CB\x0005\x008A\x000B\x00CB\x0001\x0000"+ - "\x0024\x00CB\x0009\x0000\x0001\x00CB\x0039\x0000\x002B\x00CD\x0014\x0088\x0001\x00CD\x000A\x0080\x0006\x0000\x0006\x00CD"+ - "\x0004\x0088\x0004\x00CD\x0003\x0088\x0001\x00CD\x0003\x0088\x0002\x00CD\x0007\x0088\x0003\x00CD\x0004\x0088\x000D\x00CD"+ - "\x000C\x0088\x0001\x00CD\x0001\x0088\x000A\x0080\x0004\x0088\x0002\x0087\x0026\x008A\x0001\x0000\x0001\x008A\x0005\x0000"+ - "\x0001\x008A\x0002\x0000\x002B\x008A\x0001\x0000\x0004\x008A\u0100\x008F\x0049\x008A\x0001\x0000\x0004\x008A\x0002\x0000"+ - "\x0007\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0004\x008A\x0002\x0000\x0029\x008A\x0001\x0000\x0004\x008A\x0002\x0000"+ - "\x0021\x008A\x0001\x0000\x0004\x008A\x0002\x0000\x0007\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0004\x008A\x0002\x0000"+ - "\x000F\x008A\x0001\x0000\x0039\x008A\x0001\x0000\x0004\x008A\x0002\x0000\x0043\x008A\x0002\x0000\x0003\x00CB\x0020\x0000"+ - "\x0010\x008A\x0010\x0000\x0055\x008A\x000C\x0000\u026c\x008A\x0002\x0000\x0011\x008A\x0001\x0000\x001A\x008A\x0005\x0000"+ - "\x004B\x008A\x0003\x0000\x0003\x008A\x000F\x0000\x000D\x008A\x0001\x0000\x0004\x008A\x0003\x00CB\x000B\x0000\x0012\x008A"+ - "\x0003\x00CB\x000B\x0000\x0012\x008A\x0002\x00CB\x000C\x0000\x000D\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0002\x00CB"+ - "\x000C\x0000\x0034\x00CD\x0020\x0088\x0003\x0000\x0001\x00CD\x0004\x0000\x0001\x00CD\x0001\x0088\x0002\x0000\x000A\x0080"+ - "\x0021\x0000\x0003\x00CB\x0001\x007F\x0001\x0000\x000A\x0080\x0006\x0000\x0058\x008A\x0008\x0000\x0029\x008A\x0001\x00CB"+ - "\x0001\x008A\x0005\x0000\x0046\x008A\x000A\x0000\x001D\x008A\x0003\x0000\x000C\x00CB\x0004\x0000\x000C\x00CB\x000A\x0000"+ - "\x000A\x0080\x001E\x00CD\x0002\x0000\x0005\x00CD\x000B\x0000\x002C\x00CD\x0004\x0000\x0011\x0088\x0007\x00CD\x0002\x0088"+ - "\x0006\x0000\x000A\x0080\x0001\x0087\x0003\x0000\x0002\x0087\x0020\x0000\x0017\x008A\x0005\x00CB\x0004\x0000\x0035\x00CD"+ - "\x000A\x0088\x0001\x0000\x001D\x0088\x0002\x0000\x0001\x00CB\x000A\x0080\x0006\x0000\x000A\x0080\x0006\x0000\x0007\x0087"+ - "\x0001\x00CD\x0006\x0087\x0052\x0000\x0005\x00CB\x002F\x008A\x0011\x00CB\x0007\x008A\x0004\x0000\x000A\x0080\x0011\x0000"+ - "\x0009\x00CB\x000C\x0000\x0003\x00CB\x001E\x008A\x000D\x00CB\x0002\x008A\x000A\x0080\x002C\x008A\x000E\x00CB\x000C\x0000"+ - "\x0024\x008A\x0014\x00CB\x0008\x0000\x000A\x0080\x0003\x0000\x0003\x008A\x000A\x0080\x0024\x008A\x0052\x0000\x0003\x00CB"+ - "\x0001\x0000\x0015\x00CB\x0004\x008A\x0001\x00CB\x0004\x008A\x0003\x00CB\x0002\x008A\x0009\x0000\x00C0\x008A\x0027\x00CB"+ - "\x0015\x0000\x0004\x00CB\u0116\x008A\x0002\x0000\x0006\x008A\x0002\x0000\x0026\x008A\x0002\x0000\x0006\x008A\x0002\x0000"+ - "\x0008\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x001F\x008A\x0002\x0000"+ - "\x0035\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0001\x008A\x0003\x0000\x0003\x008A\x0001\x0000\x0007\x008A\x0003\x0000"+ - "\x0004\x008A\x0002\x0000\x0006\x008A\x0004\x0000\x000D\x008A\x0005\x0000\x0003\x008A\x0001\x0000\x0007\x008A\x000F\x0000"+ - "\x0002\x007F\x0002\x007F\x0008\x0000\x0002\x0085\x000A\x0000\x0001\x0085\x0002\x0000\x0001\x0083\x0002\x0000\x0005\x007F"+ - "\x0010\x0000\x0002\x0086\x0003\x0000\x0001\x0084\x000F\x0000\x0001\x0086\x000B\x0000\x0005\x007F\x0001\x0000\x000A\x007F"+ - "\x0001\x0000\x0001\x008A\x000D\x0000\x0001\x008A\x0010\x0000\x000D\x008A\x0033\x0000\x0021\x00CB\x0011\x0000\x0001\x008A"+ - "\x0004\x0000\x0001\x008A\x0002\x0000\x000A\x008A\x0001\x0000\x0001\x008A\x0003\x0000\x0005\x008A\x0006\x0000\x0001\x008A"+ - "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0004\x008A\x0001\x0000\x000B\x008A\x0002\x0000\x0004\x008A"+ - "\x0005\x0000\x0005\x008A\x0004\x0000\x0001\x008A\x0011\x0000\x0029\x008A\u032d\x0000\x0034\x008A\u0716\x0000\x002F\x008A"+ - "\x0001\x0000\x002F\x008A\x0001\x0000\x0085\x008A\x0006\x0000\x0004\x008A\x0003\x00CB\x0002\x008A\x000C\x0000\x0026\x008A"+ - "\x0001\x0000\x0001\x008A\x0005\x0000\x0001\x008A\x0002\x0000\x0038\x008A\x0007\x0000\x0001\x008A\x000F\x0000\x0001\x00CB"+ - "\x0017\x008A\x0009\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000"+ - "\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0020\x00CB\x002F\x0000"+ - "\x0001\x008A\x0050\x0000\x001A\x0089\x0001\x0000\x0059\x0089\x000C\x0000\x00D6\x0089\x002F\x0000\x0001\x008A\x0001\x00CA"+ - "\x0001\x00CE\x0019\x0000\x0009\x00CE\x0006\x00CB\x0001\x0000\x0005\x00CC\x0002\x0000\x0003\x00CE\x0001\x008A\x0001\x008A"+ - "\x0004\x0000\x0056\x008B\x0002\x0000\x0002\x00CB\x0002\x0082\x0003\x008B\x0001\x0082\x005A\x00CC\x0001\x0000\x0004\x00CC"+ - "\x0005\x0000\x0029\x008A\x0003\x0000\x005E\x008F\x0011\x0000\x001B\x008A\x0035\x0000\x0010\x00CC\x00D0\x0000\x002F\x0082"+ - "\x0001\x0000\x0058\x0082\x00A8\x0000\u19b6\x00CE\x004A\x0000\u51cd\x00CE\x0033\x0000\u048d\x008A\x0043\x0000\x002E\x008A"+ - "\x0002\x0000\u010d\x008A\x0003\x0000\x0010\x008A\x000A\x0080\x0002\x008A\x0014\x0000\x002F\x008A\x0004\x00CB\x0001\x0000"+ - "\x000A\x00CB\x0001\x0000\x0019\x008A\x0007\x0000\x0001\x00CB\x0050\x008A\x0002\x00CB\x0025\x0000\x0009\x008A\x0002\x0000"+ - "\x0067\x008A\x0002\x0000\x0004\x008A\x0001\x0000\x0004\x008A\x000C\x0000\x000B\x008A\x004D\x0000\x000A\x008A\x0001\x00CB"+ - "\x0003\x008A\x0001\x00CB\x0004\x008A\x0001\x00CB\x0017\x008A\x0005\x00CB\x0018\x0000\x0034\x008A\x000C\x0000\x0002\x00CB"+ - "\x0032\x008A\x0011\x00CB\x000B\x0000\x000A\x0080\x0006\x0000\x0012\x00CB\x0006\x008A\x0003\x0000\x0001\x008A\x0004\x0000"+ - "\x000A\x0080\x001C\x008A\x0008\x00CB\x0002\x0000\x0017\x008A\x000D\x00CB\x000C\x0000\x001D\x008F\x0003\x0000\x0004\x00CB"+ - "\x002F\x008A\x000E\x00CB\x000E\x0000\x0001\x008A\x000A\x0080\x0026\x0000\x0029\x008A\x000E\x00CB\x0009\x0000\x0003\x008A"+ - "\x0001\x00CB\x0008\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0006\x0000\x0017\x00CD\x0003\x0087\x0001\x00CD\x0001\x0088"+ - "\x0004\x0000\x0030\x00CD\x0001\x0088\x0001\x00CD\x0003\x0088\x0002\x00CD\x0002\x0088\x0005\x00CD\x0002\x0088\x0001\x00CD"+ - "\x0001\x0088\x0001\x00CD\x0018\x0000\x0003\x00CD\x0002\x0087\x000B\x008A\x0005\x00CB\x0002\x0000\x0003\x008A\x0002\x00CB"+ - "\x000A\x0000\x0006\x008A\x0002\x0000\x0006\x008A\x0002\x0000\x0006\x008A\x0009\x0000\x0007\x008A\x0001\x0000\x0007\x008A"+ - "\x0091\x0000\x0023\x008A\x0008\x00CB\x0001\x0000\x0002\x00CB\x0002\x0000\x000A\x0080\x0006\x0000\u2ba4\x008F\x000C\x0000"+ - "\x0017\x008F\x0004\x0000\x0031\x008F\x0004\x0000\x0001\x0024\x0001\x0020\x0001\x0037\x0001\x0034\x0001\x001B\x0001\x0018"+ - "\x0002\x0000\x0001\x0014\x0001\x0011\x0002\x0000\x0001\x000F\x0001\x000D\x000C\x0000\x0001\x0003\x0001\x0006\x0010\x0000"+ - "\x0001\x006E\x0007\x0000\x0001\x0049\x0001\x0008\x0005\x0000\x0001\x0001\x0001\x007A\x0003\x0000\x0001\x0073\x0001\x0073"+ - "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073"+ - "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073"+ - "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073"+ - "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0074"+ - "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0078\x0001\x0076\x000F\x0000\x0001\x0070\u02c1\x0000\x0001\x004C\x00BF\x0000"+ - "\x0001\x006F\x0001\x004D\x0001\x000E\x0003\x0077\x0002\x0032\x0001\x0077\x0001\x0032\x0002\x0077\x0001\x001E\x0011\x0077"+ - "\x0002\x0046\x0007\x004F\x0001\x004E\x0007\x004F\x0007\x0042\x0001\x001F\x0001\x0042\x0001\x0060\x0002\x0036\x0001\x0035"+ - "\x0001\x0060\x0001\x0036\x0001\x0035\x0008\x0060\x0002\x0047\x0005\x0043\x0002\x003D\x0005\x0043\x0001\x0012\x0008\x002B"+ - "\x0005\x0013\x0003\x0021\x000A\x0052\x0010\x0021\x0003\x0033\x001A\x0023\x0001\x0022\x0002\x0031\x0002\x0056\x0001\x0057"+ - "\x0002\x0056\x0002\x0057\x0002\x0056\x0001\x0057\x0003\x0031\x0001\x0030\x0002\x0031\x000A\x0048\x0001\x005E\x0001\x0028"+ - "\x0001\x0025\x0001\x0048\x0006\x0028\x0001\x0025\x000B\x0028\x0019\x0031\x0007\x0028\x000A\x0053\x0001\x0028\x0005\x000B"+ - "\x0003\x005F\x0003\x0041\x0001\x0040\x0004\x0041\x0002\x0040\x0008\x0041\x0001\x0040\x0007\x001D\x0001\x001C\x0002\x001D"+ - "\x0007\x0041\x000E\x005F\x0001\x0069\x0004\x0054\x0001\x0004\x0004\x0051\x0001\x0004\x0005\x0068\x0001\x0067\x0001\x0068"+ - "\x0003\x0067\x0007\x0068\x0001\x0067\x0013\x0068\x0005\x004B\x0003\x0068\x0006\x004B\x0002\x004B\x0006\x004A\x0005\x004A"+ - "\x0003\x0064\x0002\x0041\x0007\x0063\x001E\x0041\x0004\x0063\x0005\x0041\x0005\x005F\x0006\x005D\x0002\x005F\x0001\x005D"+ - "\x0004\x001D\x000B\x0066\x000A\x0051\x000C\x0066\x000A\x007D\x000D\x007C\x0001\x0065\x0002\x007C\x0001\x007B\x0003\x006A"+ - "\x0001\x000B\x0002\x006A\x0005\x0071\x0004\x006A\x0004\x0072\x0001\x0071\x0003\x0072\x0001\x0071\x0005\x0072\x0002\x0038"+ - "\x0001\x003B\x0002\x0038\x0001\x003B\x0001\x0038\x0002\x003B\x0001\x0038\x0001\x003B\x000A\x0038\x0001\x003B\x0004\x0005"+ - "\x0001\x006C\x0001\x006B\x0001\x006D\x0001\x000A\x0003\x0075\x0001\x006D\x0002\x0075\x0001\x0061\x0002\x0062\x0002\x0075"+ - "\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0003\x000A\x0001\x0075\x0002\x000A\x0001\x0075"+ - "\x0001\x000A\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075"+ - "\x0001\x000A\x0001\x003E\x0002\x003A\x0001\x003E\x0001\x003A\x0002\x003E\x0004\x003A\x0001\x003E\x0007\x003A\x0001\x003E"+ - "\x0004\x003A\x0001\x003E\x0004\x003A\x0001\x0075\x0001\x000A\x0001\x0075\x000A\x0019\x0001\x002F\x0011\x0019\x0001\x002F"+ - "\x0003\x001A\x0001\x002F\x0003\x0019\x0001\x002F\x0001\x0019\x0002\x0002\x0002\x0019\x0001\x002F\x000D\x005C\x0004\x0027"+ - "\x0004\x002C\x0001\x0050\x0001\x002E\x0008\x0050\x0007\x002C\x0006\x0075\x0004\x0015\x0001\x0017\x001F\x0015\x0001\x0017"+ - "\x0004\x0015\x0015\x0045\x0001\x0079\x0009\x0045\x0011\x0016\x0005\x0045\x0001\x0007\x000A\x002D\x0005\x0045\x0006\x0044"+ - "\x0004\x003E\x0001\x003F\x0001\x0016\x0005\x005B\x000A\x0059\x000F\x005B\x0001\x003C\x0003\x0039\x000C\x0058\x0001\x0009"+ - "\x0009\x0026\x0001\x002A\x0005\x0026\x0004\x005A\x000B\x0029\x0002\x000C\x0009\x0026\x0001\x002A\x0019\x0026\x0001\x002A"+ - "\x0004\x0009\x0004\x0026\x0002\x002A\x0002\x0055\x0001\x0010\x0005\x0055\x002A\x0010\u1900\x0000\u016e\x00CE\x0002\x0000"+ - "\x006A\x00CE\x0026\x0000\x0007\x008A\x000C\x0000\x0005\x008A\x0005\x0000\x0001\x008E\x0001\x00CB\x000A\x008E\x0001\x0000"+ - "\x000D\x008E\x0001\x0000\x0005\x008E\x0001\x0000\x0001\x008E\x0001\x0000\x0002\x008E\x0001\x0000\x0002\x008E\x0001\x0000"+ - "\x000A\x008E\x0062\x008A\x0021\x0000\u016b\x008A\x0012\x0000\x0040\x008A\x0002\x0000\x0036\x008A\x0028\x0000\x000C\x008A"+ - "\x0004\x0000\x0010\x00CB\x0001\x0084\x0002\x0000\x0001\x0083\x0001\x0084\x000B\x0000\x0007\x00CB\x000C\x0000\x0002\x0086"+ - "\x0018\x0000\x0003\x0086\x0001\x0084\x0001\x0000\x0001\x0085\x0001\x0000\x0001\x0084\x0001\x0083\x001A\x0000\x0005\x008A"+ - "\x0001\x0000\x0087\x008A\x0002\x0000\x0001\x007F\x0007\x0000\x0001\x0085\x0004\x0000\x0001\x0084\x0001\x0000\x0001\x0085"+ - "\x0001\x0000\x000A\x0080\x0001\x0083\x0001\x0084\x0005\x0000\x001A\x008A\x0004\x0000\x0001\x0086\x0001\x0000\x001A\x008A"+ - "\x000B\x0000\x0038\x00CC\x0002\x00CB\x001F\x008F\x0003\x0000\x0006\x008F\x0002\x0000\x0006\x008F\x0002\x0000\x0006\x008F"+ + private const string ZZ_CMAP_PACKED = + "\x0001\x00C6\x0008\x00C4\x0002\x00C6\x0002\x00C4\x0001\x00C6\x0013\x00C4\x0001\x00C7\x0001\x008D\x0001\x00BF\x0001\x00C7" + + "\x0001\x00B9\x0001\x00B7\x0001\x008C\x0002\x00BA\x0002\x00C7\x0001\x00BB\x0001\x00AB\x0001\x0090\x0001\x00BE\x0001\x00AD" + + "\x0001\x00B4\x0001\x00B3\x0001\x00AC\x0001\x00AF\x0001\x00B0\x0001\x00B5\x0001\x00AE\x0001\x00B2\x0001\x00B1\x0001\x00B6" + + "\x0001\x00C2\x0001\x00C4\x0001\x00C3\x0001\x00C4\x0001\x00BD\x0001\x00BC\x0001\x0091\x0001\x00A5\x0001\x0092\x0001\x0093" + + "\x0001\x0094\x0001\x0097\x0001\x0098\x0001\x00A6\x0001\x0099\x0001\x00A8\x0001\x00A7\x0001\x009A\x0001\x009B\x0001\x009C" + + "\x0001\x0096\x0001\x009E\x0001\x009D\x0001\x0095\x0001\x009F\x0001\x00A0\x0001\x00A1\x0001\x00A9\x0001\x00A2\x0001\x00A3" + + "\x0001\x00AA\x0001\x00A4\x0001\x00C0\x0001\x00C5\x0001\x00C1\x0001\x00C8\x0001\x00B8\x0001\x00C8\x0001\x0091\x0001\x00A5" + + "\x0001\x0092\x0001\x0093\x0001\x0094\x0001\x0097\x0001\x0098\x0001\x00A6\x0001\x0099\x0001\x00A8\x0001\x00A7\x0001\x009A" + + "\x0001\x009B\x0001\x009C\x0001\x0096\x0001\x009E\x0001\x009D\x0001\x0095\x0001\x009F\x0001\x00A0\x0001\x00A1\x0001\x00A9" + + "\x0001\x00A2\x0001\x00A3\x0001\x00AA\x0001\x00A4\x0003\x00C8\x0001\x00B7\x0001\x00C9\x002A\x0000\x0001\x008A\x0002\x0000" + + "\x0001\x007F\x0007\x0000\x0001\x008A\x0001\x0000\x0001\x0083\x0002\x0000\x0001\x008A\x0005\x0000\x0017\x008A\x0001\x0000" + + "\x001F\x008A\x0001\x0000\u01ca\x008A\x0004\x0000\x000C\x008A\x0005\x0000\x0001\x0083\x0008\x0000\x0005\x008A\x0007\x0000" + + "\x0001\x008A\x0001\x0000\x0001\x008A\x0011\x0000\x0070\x00CB\x0005\x008A\x0001\x0000\x0002\x008A\x0002\x0000\x0004\x008A" + + "\x0001\x0084\x0007\x0000\x0001\x008A\x0001\x0083\x0003\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0014\x008A\x0001\x0000" + + "\x0053\x008A\x0001\x0000\x008B\x008A\x0001\x0000\x0007\x00CB\x009E\x008A\x0009\x0000\x0026\x008A\x0002\x0000\x0001\x008A" + + "\x0007\x0000\x0027\x008A\x0001\x0000\x0001\x0084\x0007\x0000\x002D\x00CB\x0001\x0000\x0001\x00CB\x0001\x0000\x0002\x00CB" + + "\x0001\x0000\x0002\x00CB\x0001\x0000\x0001\x00CB\x0008\x0000\x001B\x008E\x0005\x0000\x0003\x008E\x0001\x007E\x0001\x0083" + + "\x000B\x0000\x0005\x007F\x0007\x0000\x0002\x0084\x0002\x0000\x000B\x00CB\x0001\x0000\x0001\x007F\x0003\x0000\x002B\x008A" + + "\x0015\x00CB\x000A\x0080\x0001\x0000\x0001\x0081\x0001\x0084\x0001\x0000\x0002\x008A\x0001\x00CB\x0063\x008A\x0001\x0000" + + "\x0001\x008A\x0007\x00CB\x0001\x007F\x0001\x0000\x0006\x00CB\x0002\x008A\x0002\x00CB\x0001\x0000\x0004\x00CB\x0002\x008A" + + "\x000A\x0080\x0003\x008A\x0002\x0000\x0001\x008A\x000F\x0000\x0001\x007F\x0001\x008A\x0001\x00CB\x001E\x008A\x001B\x00CB" + + "\x0002\x0000\x0059\x008A\x000B\x00CB\x0001\x008A\x000E\x0000\x000A\x0080\x0021\x008A\x0009\x00CB\x0002\x008A\x0002\x0000" + + "\x0001\x0084\x0001\x0000\x0001\x008A\x0005\x0000\x0016\x008A\x0004\x00CB\x0001\x008A\x0009\x00CB\x0001\x008A\x0003\x00CB" + + "\x0001\x008A\x0005\x00CB\x0012\x0000\x0019\x008A\x0003\x00CB\x0044\x0000\x0001\x008A\x0001\x0000\x000B\x008A\x0037\x0000" + + "\x001B\x00CB\x0001\x0000\x0004\x00CB\x0036\x008A\x0003\x00CB\x0001\x008A\x0012\x00CB\x0001\x008A\x0007\x00CB\x000A\x008A" + + "\x0002\x00CB\x0002\x0000\x000A\x0080\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0003\x00CB\x0001\x0000" + + "\x0008\x008A\x0002\x0000\x0002\x008A\x0002\x0000\x0016\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0001\x008A\x0003\x0000" + + "\x0004\x008A\x0002\x0000\x0001\x00CB\x0001\x008A\x0007\x00CB\x0002\x0000\x0002\x00CB\x0002\x0000\x0003\x00CB\x0001\x008A" + + "\x0008\x0000\x0001\x00CB\x0004\x0000\x0002\x008A\x0001\x0000\x0003\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0002\x008A" + + "\x000F\x0000\x0003\x00CB\x0001\x0000\x0006\x008A\x0004\x0000\x0002\x008A\x0002\x0000\x0016\x008A\x0001\x0000\x0007\x008A" + + "\x0001\x0000\x0002\x008A\x0001\x0000\x0002\x008A\x0001\x0000\x0002\x008A\x0002\x0000\x0001\x00CB\x0001\x0000\x0005\x00CB" + + "\x0004\x0000\x0002\x00CB\x0002\x0000\x0003\x00CB\x0003\x0000\x0001\x00CB\x0007\x0000\x0004\x008A\x0001\x0000\x0001\x008A" + + "\x0007\x0000\x000A\x0080\x0002\x00CB\x0003\x008A\x0001\x00CB\x000B\x0000\x0003\x00CB\x0001\x0000\x0009\x008A\x0001\x0000" + + "\x0003\x008A\x0001\x0000\x0016\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0002\x008A\x0001\x0000\x0005\x008A\x0002\x0000" + + "\x0001\x00CB\x0001\x008A\x0008\x00CB\x0001\x0000\x0003\x00CB\x0001\x0000\x0003\x00CB\x0002\x0000\x0001\x008A\x000F\x0000" + + "\x0002\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0011\x0000\x0003\x00CB\x0001\x0000\x0008\x008A\x0002\x0000\x0002\x008A" + + "\x0002\x0000\x0016\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0002\x008A\x0001\x0000\x0005\x008A\x0002\x0000\x0001\x00CB" + + "\x0001\x008A\x0007\x00CB\x0002\x0000\x0002\x00CB\x0002\x0000\x0003\x00CB\x0008\x0000\x0002\x00CB\x0004\x0000\x0002\x008A" + + "\x0001\x0000\x0003\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0001\x0000\x0001\x008A\x0010\x0000\x0001\x00CB\x0001\x008A" + + "\x0001\x0000\x0006\x008A\x0003\x0000\x0003\x008A\x0001\x0000\x0004\x008A\x0003\x0000\x0002\x008A\x0001\x0000\x0001\x008A" + + "\x0001\x0000\x0002\x008A\x0003\x0000\x0002\x008A\x0003\x0000\x0003\x008A\x0003\x0000\x000C\x008A\x0004\x0000\x0005\x00CB" + + "\x0003\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0002\x0000\x0001\x008A\x0006\x0000\x0001\x00CB\x000E\x0000\x000A\x0080" + + "\x0011\x0000\x0003\x00CB\x0001\x0000\x0008\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0017\x008A\x0001\x0000\x000A\x008A" + + "\x0001\x0000\x0005\x008A\x0003\x0000\x0001\x008A\x0007\x00CB\x0001\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0007\x0000" + + "\x0002\x00CB\x0001\x0000\x0002\x008A\x0006\x0000\x0002\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0012\x0000\x0002\x00CB" + + "\x0001\x0000\x0008\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0017\x008A\x0001\x0000\x000A\x008A\x0001\x0000\x0005\x008A" + + "\x0002\x0000\x0001\x00CB\x0001\x008A\x0007\x00CB\x0001\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0007\x0000\x0002\x00CB" + + "\x0007\x0000\x0001\x008A\x0001\x0000\x0002\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0001\x0000\x0002\x008A\x000F\x0000" + + "\x0002\x00CB\x0001\x0000\x0008\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0029\x008A\x0002\x0000\x0001\x008A\x0007\x00CB" + + "\x0001\x0000\x0003\x00CB\x0001\x0000\x0004\x00CB\x0001\x008A\x0008\x0000\x0001\x00CB\x0008\x0000\x0002\x008A\x0002\x00CB" + + "\x0002\x0000\x000A\x0080\x000A\x0000\x0006\x008A\x0002\x0000\x0002\x00CB\x0001\x0000\x0012\x008A\x0003\x0000\x0018\x008A" + + "\x0001\x0000\x0009\x008A\x0001\x0000\x0001\x008A\x0002\x0000\x0007\x008A\x0003\x0000\x0001\x00CB\x0004\x0000\x0006\x00CB" + + "\x0001\x0000\x0001\x00CB\x0001\x0000\x0008\x00CB\x0012\x0000\x0002\x00CB\x000D\x0000\x0030\x00CD\x0001\x0088\x0002\x00CD" + + "\x0007\x0088\x0005\x0000\x0007\x00CD\x0008\x0088\x0001\x0000\x000A\x0080\x0027\x0000\x0002\x00CD\x0001\x0000\x0001\x00CD" + + "\x0002\x0000\x0002\x00CD\x0001\x0000\x0001\x00CD\x0002\x0000\x0001\x00CD\x0006\x0000\x0004\x00CD\x0001\x0000\x0007\x00CD" + + "\x0001\x0000\x0003\x00CD\x0001\x0000\x0001\x00CD\x0001\x0000\x0001\x00CD\x0002\x0000\x0002\x00CD\x0001\x0000\x0004\x00CD" + + "\x0001\x0088\x0002\x00CD\x0006\x0088\x0001\x0000\x0002\x0088\x0001\x00CD\x0002\x0000\x0005\x00CD\x0001\x0000\x0001\x00CD" + + "\x0001\x0000\x0006\x0088\x0002\x0000\x000A\x0080\x0002\x0000\x0004\x00CD\x0020\x0000\x0001\x008A\x0017\x0000\x0002\x00CB" + + "\x0006\x0000\x000A\x0080\x000B\x0000\x0001\x00CB\x0001\x0000\x0001\x00CB\x0001\x0000\x0001\x00CB\x0004\x0000\x0002\x00CB" + + "\x0008\x008A\x0001\x0000\x0024\x008A\x0004\x0000\x0014\x00CB\x0001\x0000\x0002\x00CB\x0005\x008A\x000B\x00CB\x0001\x0000" + + "\x0024\x00CB\x0009\x0000\x0001\x00CB\x0039\x0000\x002B\x00CD\x0014\x0088\x0001\x00CD\x000A\x0080\x0006\x0000\x0006\x00CD" + + "\x0004\x0088\x0004\x00CD\x0003\x0088\x0001\x00CD\x0003\x0088\x0002\x00CD\x0007\x0088\x0003\x00CD\x0004\x0088\x000D\x00CD" + + "\x000C\x0088\x0001\x00CD\x0001\x0088\x000A\x0080\x0004\x0088\x0002\x0087\x0026\x008A\x0001\x0000\x0001\x008A\x0005\x0000" + + "\x0001\x008A\x0002\x0000\x002B\x008A\x0001\x0000\x0004\x008A\u0100\x008F\x0049\x008A\x0001\x0000\x0004\x008A\x0002\x0000" + + "\x0007\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0004\x008A\x0002\x0000\x0029\x008A\x0001\x0000\x0004\x008A\x0002\x0000" + + "\x0021\x008A\x0001\x0000\x0004\x008A\x0002\x0000\x0007\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0004\x008A\x0002\x0000" + + "\x000F\x008A\x0001\x0000\x0039\x008A\x0001\x0000\x0004\x008A\x0002\x0000\x0043\x008A\x0002\x0000\x0003\x00CB\x0020\x0000" + + "\x0010\x008A\x0010\x0000\x0055\x008A\x000C\x0000\u026c\x008A\x0002\x0000\x0011\x008A\x0001\x0000\x001A\x008A\x0005\x0000" + + "\x004B\x008A\x0003\x0000\x0003\x008A\x000F\x0000\x000D\x008A\x0001\x0000\x0004\x008A\x0003\x00CB\x000B\x0000\x0012\x008A" + + "\x0003\x00CB\x000B\x0000\x0012\x008A\x0002\x00CB\x000C\x0000\x000D\x008A\x0001\x0000\x0003\x008A\x0001\x0000\x0002\x00CB" + + "\x000C\x0000\x0034\x00CD\x0020\x0088\x0003\x0000\x0001\x00CD\x0004\x0000\x0001\x00CD\x0001\x0088\x0002\x0000\x000A\x0080" + + "\x0021\x0000\x0003\x00CB\x0001\x007F\x0001\x0000\x000A\x0080\x0006\x0000\x0058\x008A\x0008\x0000\x0029\x008A\x0001\x00CB" + + "\x0001\x008A\x0005\x0000\x0046\x008A\x000A\x0000\x001D\x008A\x0003\x0000\x000C\x00CB\x0004\x0000\x000C\x00CB\x000A\x0000" + + "\x000A\x0080\x001E\x00CD\x0002\x0000\x0005\x00CD\x000B\x0000\x002C\x00CD\x0004\x0000\x0011\x0088\x0007\x00CD\x0002\x0088" + + "\x0006\x0000\x000A\x0080\x0001\x0087\x0003\x0000\x0002\x0087\x0020\x0000\x0017\x008A\x0005\x00CB\x0004\x0000\x0035\x00CD" + + "\x000A\x0088\x0001\x0000\x001D\x0088\x0002\x0000\x0001\x00CB\x000A\x0080\x0006\x0000\x000A\x0080\x0006\x0000\x0007\x0087" + + "\x0001\x00CD\x0006\x0087\x0052\x0000\x0005\x00CB\x002F\x008A\x0011\x00CB\x0007\x008A\x0004\x0000\x000A\x0080\x0011\x0000" + + "\x0009\x00CB\x000C\x0000\x0003\x00CB\x001E\x008A\x000D\x00CB\x0002\x008A\x000A\x0080\x002C\x008A\x000E\x00CB\x000C\x0000" + + "\x0024\x008A\x0014\x00CB\x0008\x0000\x000A\x0080\x0003\x0000\x0003\x008A\x000A\x0080\x0024\x008A\x0052\x0000\x0003\x00CB" + + "\x0001\x0000\x0015\x00CB\x0004\x008A\x0001\x00CB\x0004\x008A\x0003\x00CB\x0002\x008A\x0009\x0000\x00C0\x008A\x0027\x00CB" + + "\x0015\x0000\x0004\x00CB\u0116\x008A\x0002\x0000\x0006\x008A\x0002\x0000\x0026\x008A\x0002\x0000\x0006\x008A\x0002\x0000" + + "\x0008\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x001F\x008A\x0002\x0000" + + "\x0035\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0001\x008A\x0003\x0000\x0003\x008A\x0001\x0000\x0007\x008A\x0003\x0000" + + "\x0004\x008A\x0002\x0000\x0006\x008A\x0004\x0000\x000D\x008A\x0005\x0000\x0003\x008A\x0001\x0000\x0007\x008A\x000F\x0000" + + "\x0002\x007F\x0002\x007F\x0008\x0000\x0002\x0085\x000A\x0000\x0001\x0085\x0002\x0000\x0001\x0083\x0002\x0000\x0005\x007F" + + "\x0010\x0000\x0002\x0086\x0003\x0000\x0001\x0084\x000F\x0000\x0001\x0086\x000B\x0000\x0005\x007F\x0001\x0000\x000A\x007F" + + "\x0001\x0000\x0001\x008A\x000D\x0000\x0001\x008A\x0010\x0000\x000D\x008A\x0033\x0000\x0021\x00CB\x0011\x0000\x0001\x008A" + + "\x0004\x0000\x0001\x008A\x0002\x0000\x000A\x008A\x0001\x0000\x0001\x008A\x0003\x0000\x0005\x008A\x0006\x0000\x0001\x008A" + + "\x0001\x0000\x0001\x008A\x0001\x0000\x0001\x008A\x0001\x0000\x0004\x008A\x0001\x0000\x000B\x008A\x0002\x0000\x0004\x008A" + + "\x0005\x0000\x0005\x008A\x0004\x0000\x0001\x008A\x0011\x0000\x0029\x008A\u032d\x0000\x0034\x008A\u0716\x0000\x002F\x008A" + + "\x0001\x0000\x002F\x008A\x0001\x0000\x0085\x008A\x0006\x0000\x0004\x008A\x0003\x00CB\x0002\x008A\x000C\x0000\x0026\x008A" + + "\x0001\x0000\x0001\x008A\x0005\x0000\x0001\x008A\x0002\x0000\x0038\x008A\x0007\x0000\x0001\x008A\x000F\x0000\x0001\x00CB" + + "\x0017\x008A\x0009\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000" + + "\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0007\x008A\x0001\x0000\x0020\x00CB\x002F\x0000" + + "\x0001\x008A\x0050\x0000\x001A\x0089\x0001\x0000\x0059\x0089\x000C\x0000\x00D6\x0089\x002F\x0000\x0001\x008A\x0001\x00CA" + + "\x0001\x00CE\x0019\x0000\x0009\x00CE\x0006\x00CB\x0001\x0000\x0005\x00CC\x0002\x0000\x0003\x00CE\x0001\x008A\x0001\x008A" + + "\x0004\x0000\x0056\x008B\x0002\x0000\x0002\x00CB\x0002\x0082\x0003\x008B\x0001\x0082\x005A\x00CC\x0001\x0000\x0004\x00CC" + + "\x0005\x0000\x0029\x008A\x0003\x0000\x005E\x008F\x0011\x0000\x001B\x008A\x0035\x0000\x0010\x00CC\x00D0\x0000\x002F\x0082" + + "\x0001\x0000\x0058\x0082\x00A8\x0000\u19b6\x00CE\x004A\x0000\u51cd\x00CE\x0033\x0000\u048d\x008A\x0043\x0000\x002E\x008A" + + "\x0002\x0000\u010d\x008A\x0003\x0000\x0010\x008A\x000A\x0080\x0002\x008A\x0014\x0000\x002F\x008A\x0004\x00CB\x0001\x0000" + + "\x000A\x00CB\x0001\x0000\x0019\x008A\x0007\x0000\x0001\x00CB\x0050\x008A\x0002\x00CB\x0025\x0000\x0009\x008A\x0002\x0000" + + "\x0067\x008A\x0002\x0000\x0004\x008A\x0001\x0000\x0004\x008A\x000C\x0000\x000B\x008A\x004D\x0000\x000A\x008A\x0001\x00CB" + + "\x0003\x008A\x0001\x00CB\x0004\x008A\x0001\x00CB\x0017\x008A\x0005\x00CB\x0018\x0000\x0034\x008A\x000C\x0000\x0002\x00CB" + + "\x0032\x008A\x0011\x00CB\x000B\x0000\x000A\x0080\x0006\x0000\x0012\x00CB\x0006\x008A\x0003\x0000\x0001\x008A\x0004\x0000" + + "\x000A\x0080\x001C\x008A\x0008\x00CB\x0002\x0000\x0017\x008A\x000D\x00CB\x000C\x0000\x001D\x008F\x0003\x0000\x0004\x00CB" + + "\x002F\x008A\x000E\x00CB\x000E\x0000\x0001\x008A\x000A\x0080\x0026\x0000\x0029\x008A\x000E\x00CB\x0009\x0000\x0003\x008A" + + "\x0001\x00CB\x0008\x008A\x0002\x00CB\x0002\x0000\x000A\x0080\x0006\x0000\x0017\x00CD\x0003\x0087\x0001\x00CD\x0001\x0088" + + "\x0004\x0000\x0030\x00CD\x0001\x0088\x0001\x00CD\x0003\x0088\x0002\x00CD\x0002\x0088\x0005\x00CD\x0002\x0088\x0001\x00CD" + + "\x0001\x0088\x0001\x00CD\x0018\x0000\x0003\x00CD\x0002\x0087\x000B\x008A\x0005\x00CB\x0002\x0000\x0003\x008A\x0002\x00CB" + + "\x000A\x0000\x0006\x008A\x0002\x0000\x0006\x008A\x0002\x0000\x0006\x008A\x0009\x0000\x0007\x008A\x0001\x0000\x0007\x008A" + + "\x0091\x0000\x0023\x008A\x0008\x00CB\x0001\x0000\x0002\x00CB\x0002\x0000\x000A\x0080\x0006\x0000\u2ba4\x008F\x000C\x0000" + + "\x0017\x008F\x0004\x0000\x0031\x008F\x0004\x0000\x0001\x0024\x0001\x0020\x0001\x0037\x0001\x0034\x0001\x001B\x0001\x0018" + + "\x0002\x0000\x0001\x0014\x0001\x0011\x0002\x0000\x0001\x000F\x0001\x000D\x000C\x0000\x0001\x0003\x0001\x0006\x0010\x0000" + + "\x0001\x006E\x0007\x0000\x0001\x0049\x0001\x0008\x0005\x0000\x0001\x0001\x0001\x007A\x0003\x0000\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0074" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0078\x0001\x0076\x000F\x0000\x0001\x0070\u02c1\x0000\x0001\x004C\x00BF\x0000" + + "\x0001\x006F\x0001\x004D\x0001\x000E\x0003\x0077\x0002\x0032\x0001\x0077\x0001\x0032\x0002\x0077\x0001\x001E\x0011\x0077" + + "\x0002\x0046\x0007\x004F\x0001\x004E\x0007\x004F\x0007\x0042\x0001\x001F\x0001\x0042\x0001\x0060\x0002\x0036\x0001\x0035" + + "\x0001\x0060\x0001\x0036\x0001\x0035\x0008\x0060\x0002\x0047\x0005\x0043\x0002\x003D\x0005\x0043\x0001\x0012\x0008\x002B" + + "\x0005\x0013\x0003\x0021\x000A\x0052\x0010\x0021\x0003\x0033\x001A\x0023\x0001\x0022\x0002\x0031\x0002\x0056\x0001\x0057" + + "\x0002\x0056\x0002\x0057\x0002\x0056\x0001\x0057\x0003\x0031\x0001\x0030\x0002\x0031\x000A\x0048\x0001\x005E\x0001\x0028" + + "\x0001\x0025\x0001\x0048\x0006\x0028\x0001\x0025\x000B\x0028\x0019\x0031\x0007\x0028\x000A\x0053\x0001\x0028\x0005\x000B" + + "\x0003\x005F\x0003\x0041\x0001\x0040\x0004\x0041\x0002\x0040\x0008\x0041\x0001\x0040\x0007\x001D\x0001\x001C\x0002\x001D" + + "\x0007\x0041\x000E\x005F\x0001\x0069\x0004\x0054\x0001\x0004\x0004\x0051\x0001\x0004\x0005\x0068\x0001\x0067\x0001\x0068" + + "\x0003\x0067\x0007\x0068\x0001\x0067\x0013\x0068\x0005\x004B\x0003\x0068\x0006\x004B\x0002\x004B\x0006\x004A\x0005\x004A" + + "\x0003\x0064\x0002\x0041\x0007\x0063\x001E\x0041\x0004\x0063\x0005\x0041\x0005\x005F\x0006\x005D\x0002\x005F\x0001\x005D" + + "\x0004\x001D\x000B\x0066\x000A\x0051\x000C\x0066\x000A\x007D\x000D\x007C\x0001\x0065\x0002\x007C\x0001\x007B\x0003\x006A" + + "\x0001\x000B\x0002\x006A\x0005\x0071\x0004\x006A\x0004\x0072\x0001\x0071\x0003\x0072\x0001\x0071\x0005\x0072\x0002\x0038" + + "\x0001\x003B\x0002\x0038\x0001\x003B\x0001\x0038\x0002\x003B\x0001\x0038\x0001\x003B\x000A\x0038\x0001\x003B\x0004\x0005" + + "\x0001\x006C\x0001\x006B\x0001\x006D\x0001\x000A\x0003\x0075\x0001\x006D\x0002\x0075\x0001\x0061\x0002\x0062\x0002\x0075" + + "\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0003\x000A\x0001\x0075\x0002\x000A\x0001\x0075" + + "\x0001\x000A\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075" + + "\x0001\x000A\x0001\x003E\x0002\x003A\x0001\x003E\x0001\x003A\x0002\x003E\x0004\x003A\x0001\x003E\x0007\x003A\x0001\x003E" + + "\x0004\x003A\x0001\x003E\x0004\x003A\x0001\x0075\x0001\x000A\x0001\x0075\x000A\x0019\x0001\x002F\x0011\x0019\x0001\x002F" + + "\x0003\x001A\x0001\x002F\x0003\x0019\x0001\x002F\x0001\x0019\x0002\x0002\x0002\x0019\x0001\x002F\x000D\x005C\x0004\x0027" + + "\x0004\x002C\x0001\x0050\x0001\x002E\x0008\x0050\x0007\x002C\x0006\x0075\x0004\x0015\x0001\x0017\x001F\x0015\x0001\x0017" + + "\x0004\x0015\x0015\x0045\x0001\x0079\x0009\x0045\x0011\x0016\x0005\x0045\x0001\x0007\x000A\x002D\x0005\x0045\x0006\x0044" + + "\x0004\x003E\x0001\x003F\x0001\x0016\x0005\x005B\x000A\x0059\x000F\x005B\x0001\x003C\x0003\x0039\x000C\x0058\x0001\x0009" + + "\x0009\x0026\x0001\x002A\x0005\x0026\x0004\x005A\x000B\x0029\x0002\x000C\x0009\x0026\x0001\x002A\x0019\x0026\x0001\x002A" + + "\x0004\x0009\x0004\x0026\x0002\x002A\x0002\x0055\x0001\x0010\x0005\x0055\x002A\x0010\u1900\x0000\u016e\x00CE\x0002\x0000" + + "\x006A\x00CE\x0026\x0000\x0007\x008A\x000C\x0000\x0005\x008A\x0005\x0000\x0001\x008E\x0001\x00CB\x000A\x008E\x0001\x0000" + + "\x000D\x008E\x0001\x0000\x0005\x008E\x0001\x0000\x0001\x008E\x0001\x0000\x0002\x008E\x0001\x0000\x0002\x008E\x0001\x0000" + + "\x000A\x008E\x0062\x008A\x0021\x0000\u016b\x008A\x0012\x0000\x0040\x008A\x0002\x0000\x0036\x008A\x0028\x0000\x000C\x008A" + + "\x0004\x0000\x0010\x00CB\x0001\x0084\x0002\x0000\x0001\x0083\x0001\x0084\x000B\x0000\x0007\x00CB\x000C\x0000\x0002\x0086" + + "\x0018\x0000\x0003\x0086\x0001\x0084\x0001\x0000\x0001\x0085\x0001\x0000\x0001\x0084\x0001\x0083\x001A\x0000\x0005\x008A" + + "\x0001\x0000\x0087\x008A\x0002\x0000\x0001\x007F\x0007\x0000\x0001\x0085\x0004\x0000\x0001\x0084\x0001\x0000\x0001\x0085" + + "\x0001\x0000\x000A\x0080\x0001\x0083\x0001\x0084\x0005\x0000\x001A\x008A\x0004\x0000\x0001\x0086\x0001\x0000\x001A\x008A" + + "\x000B\x0000\x0038\x00CC\x0002\x00CB\x001F\x008F\x0003\x0000\x0006\x008F\x0002\x0000\x0006\x008F\x0002\x0000\x0006\x008F" + "\x0002\x0000\x0003\x008F\x001C\x0000\x0003\x007F\x0004\x0000"; + /** * Translates characters to character classes */ From 3deb0bd487ed3e26af6044e283ff5030d0c654c5 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Sat, 6 Aug 2016 02:10:12 +0700 Subject: [PATCH 014/141] Ported backward compatibility for StandardTokenizer. --- .../Analysis/Standard/ClassicTokenizerImpl.cs | 35 +- .../Analysis/Standard/StandardTokenizer.cs | 25 +- .../Standard/StandardTokenizerImpl.cs | 22 +- .../Standard/Std31/StandardTokenizerImpl31.cs | 1126 +++++++++++++++ .../Standard/Std34/StandardTokenizerImpl34.cs | 1141 +++++++++++++++ .../Standard/Std40/StandardTokenizerImpl40.cs | 1248 +++++++++++++++++ .../Lucene.Net.Analysis.Common.csproj | 3 + 7 files changed, 3562 insertions(+), 38 deletions(-) create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/StandardTokenizerImpl31.cs create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Standard/Std34/StandardTokenizerImpl34.cs create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Standard/Std40/StandardTokenizerImpl40.cs diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs index 64faa24c65..b697e1e72b 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicTokenizerImpl.cs @@ -2,7 +2,6 @@ using System; using System.IO; using Lucene.Net.Analysis.Tokenattributes; -using Reader = System.IO.TextReader; namespace Lucene.Net.Analysis.Standard { @@ -38,7 +37,7 @@ internal class ClassicTokenizerImpl : IStandardTokenizerInterface /// /// This character denotes the end of file - //public const int StandardTokenizerInterface_Fields; + public static readonly int YYEOF = -1; /// /// initial size of the lookahead buffer @@ -59,7 +58,7 @@ internal class ClassicTokenizerImpl : IStandardTokenizerInterface /// /// Translates characters to character classes /// - private static readonly string ZZ_CMAP_PACKED = + private const string ZZ_CMAP_PACKED = "\x0026\x0000\x0001\x0005\x0001\x0003\x0004\x0000\x0001\x0009\x0001\x0007\x0001\x0004\x0001\x0009\x000A\x0002\x0006\x0000" + "\x0001\x0006\x001A\x000A\x0004\x0000\x0001\x0008\x0001\x0000\x001A\x000A\x002F\x0000\x0001\x000A\x000A\x0000\x0001\x000A" + "\x0004\x0000\x0001\x000A\x0005\x0000\x0017\x000A\x0001\x0000\x001F\x000A\x0001\x0000\u0128\x000A\x0002\x0000\x0012\x000A" + @@ -274,7 +273,11 @@ private static int ZzUnpackTrans(string packed, int offset, int[] result) private const int ZZ_PUSHBACK_2BIG = 2; /* error messages for the codes above */ - private static readonly string[] ZZ_ERROR_MSG = { }; + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; /// /// ZZ_ATTRIBUTE[aState] contains the attributes of state aState @@ -375,15 +378,15 @@ private static int ZzUnpackAttribute(string packed, int offset, int[] result) /* user code: */ - public const int ALPHANUM = StandardTokenizer.ALPHANUM; - public const int APOSTROPHE = StandardTokenizer.APOSTROPHE; - public const int ACRONYM = StandardTokenizer.ACRONYM; - public const int COMPANY = StandardTokenizer.COMPANY; - public const int EMAIL = StandardTokenizer.EMAIL; - public const int HOST = StandardTokenizer.HOST; - public const int NUM = StandardTokenizer.NUM; - public const int CJ = StandardTokenizer.CJ; - public const int ACRONYM_DEP = StandardTokenizer.ACRONYM_DEP; + public static readonly int ALPHANUM = StandardTokenizer.ALPHANUM; + public static readonly int APOSTROPHE = StandardTokenizer.APOSTROPHE; + public static readonly int ACRONYM = StandardTokenizer.ACRONYM; + public static readonly int COMPANY = StandardTokenizer.COMPANY; + public static readonly int EMAIL = StandardTokenizer.EMAIL; + public static readonly int HOST = StandardTokenizer.HOST; + public static readonly int NUM = StandardTokenizer.NUM; + public static readonly int CJ = StandardTokenizer.CJ; + public static readonly int ACRONYM_DEP = StandardTokenizer.ACRONYM_DEP; public static readonly string[] TOKEN_TYPES = StandardTokenizer.TOKEN_TYPES; @@ -406,7 +409,7 @@ public void GetText(ICharTermAttribute t) /// Creates a new scanner /// /// the java.io.Reader to read input from. - internal ClassicTokenizerImpl(Reader @in) + internal ClassicTokenizerImpl(TextReader @in) { this.zzReader = @in; } @@ -503,7 +506,7 @@ public void YyClose() if (zzReader != null) { - zzReader.Close(); + zzReader.Dispose(); } } @@ -519,7 +522,7 @@ public void YyClose() /// Internal scan buffer is resized down to its initial length, if it has grown. ///
/// the new input stream - public void YyReset(Reader reader) + public void YyReset(TextReader reader) { zzReader = reader; zzAtBOL = true; diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs index 600991b787..f67ff00d6d 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizer.cs @@ -142,23 +142,22 @@ public StandardTokenizer(Version matchVersion, AttributeFactory factory, Reader private void Init(Version matchVersion) { - // TODO: Add the other version support for backward compatibility. if (matchVersion.OnOrAfter(Version.LUCENE_47)) { this.scanner = new StandardTokenizerImpl(input); } - //else if (matchVersion.OnOrAfter(Version.LUCENE_40)) - //{ - // this.scanner = new StandardTokenizerImpl40(input); - //} - //else if (matchVersion.OnOrAfter(Version.LUCENE_34)) - //{ - // this.scanner = new StandardTokenizerImpl34(input); - //} - //else if (matchVersion.OnOrAfter(Version.LUCENE_31)) - //{ - // this.scanner = new StandardTokenizerImpl31(input); - //} + else if (matchVersion.OnOrAfter(Version.LUCENE_40)) + { + this.scanner = new StandardTokenizerImpl40(input); + } + else if (matchVersion.OnOrAfter(Version.LUCENE_34)) + { + this.scanner = new StandardTokenizerImpl34(input); + } + else if (matchVersion.OnOrAfter(Version.LUCENE_31)) + { + this.scanner = new StandardTokenizerImpl31(input); + } else { this.scanner = new ClassicTokenizerImpl(input); diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs index b949d07d15..31a310a4be 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/StandardTokenizerImpl.cs @@ -45,7 +45,7 @@ public sealed class StandardTokenizerImpl : IStandardTokenizerInterface /// /// This character denotes the end of file - //public const int StandardTokenizerInterface_Fields; + public static readonly int YYEOF = -1; /// /// initial size of the lookahead buffer @@ -860,7 +860,11 @@ private static int ZzUnpackTrans(string packed, int offset, int[] result) private const int ZZ_PUSHBACK_2BIG = 2; /* error messages for the codes above */ - private static readonly string[] ZZ_ERROR_MSG = { }; + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; /// /// ZZ_ATTRIBUTE[aState] contains the attributes of state aState @@ -962,11 +966,11 @@ private static int ZzUnpackAttribute(string packed, int offset, int[] result) /* user code: */ /// /// Alphanumeric sequences - public const int WORD_TYPE = StandardTokenizer.ALPHANUM; + public static readonly int WORD_TYPE = StandardTokenizer.ALPHANUM; /// /// Numbers - public const int NUMERIC_TYPE = StandardTokenizer.NUM; + public static readonly int NUMERIC_TYPE = StandardTokenizer.NUM; /// /// Chars in class \p{Line_Break = Complex_Context} are from South East Asian @@ -977,15 +981,15 @@ private static int ZzUnpackAttribute(string packed, int offset, int[] result) /// See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA /// /// - public const int SOUTH_EAST_ASIAN_TYPE = StandardTokenizer.SOUTHEAST_ASIAN; + public static readonly int SOUTH_EAST_ASIAN_TYPE = StandardTokenizer.SOUTHEAST_ASIAN; - public const int IDEOGRAPHIC_TYPE = StandardTokenizer.IDEOGRAPHIC; + public static readonly int IDEOGRAPHIC_TYPE = StandardTokenizer.IDEOGRAPHIC; - public const int HIRAGANA_TYPE = StandardTokenizer.HIRAGANA; + public static readonly int HIRAGANA_TYPE = StandardTokenizer.HIRAGANA; - public const int KATAKANA_TYPE = StandardTokenizer.KATAKANA; + public static readonly int KATAKANA_TYPE = StandardTokenizer.KATAKANA; - public const int HANGUL_TYPE = StandardTokenizer.HANGUL; + public static readonly int HANGUL_TYPE = StandardTokenizer.HANGUL; public int YyChar { diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/StandardTokenizerImpl31.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/StandardTokenizerImpl31.cs new file mode 100644 index 0000000000..561718b592 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std31/StandardTokenizerImpl31.cs @@ -0,0 +1,1126 @@ +using Lucene.Net.Analysis.Tokenattributes; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Standard.Std31 +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// This class implements StandardTokenizer, except with a bug + /// (https://issues.apache.org/jira/browse/LUCENE-3358) where Han and Hiragana + /// characters would be split from combining characters: + /// + /// @deprecated This class is only for exact backwards compatibility + /// + [Obsolete("This class is only for exact backwards compatibility")] + public sealed class StandardTokenizerImpl31 : IStandardTokenizerInterface + { + /** This character denotes the end of file */ + public static readonly int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static readonly int ZZ_BUFFERSIZE = 4096; + + /** lexical states */ + public const int YYINITIAL = 0; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static readonly int[] ZZ_LEXSTATE = { 0, 0 }; + + + /** + * Translates characters to character classes + */ + private const string ZZ_CMAP_PACKED = + "\x0027\x0000\x0001\x0060\x0004\x0000\x0001\x005F\x0001\x0000\x0001\x0060\x0001\x0000\x000A\x005C\x0001\x005E\x0001\x005F" + + "\x0005\x0000\x001A\x005A\x0004\x0000\x0001\x0061\x0001\x0000\x001A\x005A\x002F\x0000\x0001\x005A\x0002\x0000\x0001\x005B" + + "\x0007\x0000\x0001\x005A\x0001\x0000\x0001\x005E\x0002\x0000\x0001\x005A\x0005\x0000\x0017\x005A\x0001\x0000\x001F\x005A" + + "\x0001\x0000\u01ca\x005A\x0004\x0000\x000C\x005A\x000E\x0000\x0005\x005A\x0007\x0000\x0001\x005A\x0001\x0000\x0001\x005A" + + "\x0011\x0000\x0070\x005B\x0005\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0004\x005A\x0001\x005F\x0007\x0000\x0001\x005A" + + "\x0001\x005E\x0003\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0014\x005A\x0001\x0000\x0053\x005A\x0001\x0000\x008B\x005A" + + "\x0001\x0000\x0007\x005B\x009E\x005A\x0009\x0000\x0026\x005A\x0002\x0000\x0001\x005A\x0007\x0000\x0027\x005A\x0001\x0000" + + "\x0001\x005F\x0007\x0000\x002D\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0002\x005B\x0001\x0000\x0002\x005B\x0001\x0000" + + "\x0001\x005B\x0008\x0000\x001B\x005A\x0005\x0000\x0004\x005A\x0001\x005E\x000B\x0000\x0004\x005B\x0008\x0000\x0002\x005F" + + "\x0002\x0000\x000B\x005B\x0005\x0000\x002B\x005A\x0015\x005B\x000A\x005C\x0001\x0000\x0001\x005C\x0001\x005F\x0001\x0000" + + "\x0002\x005A\x0001\x005B\x0063\x005A\x0001\x0000\x0001\x005A\x0007\x005B\x0001\x005B\x0001\x0000\x0006\x005B\x0002\x005A" + + "\x0002\x005B\x0001\x0000\x0004\x005B\x0002\x005A\x000A\x005C\x0003\x005A\x0002\x0000\x0001\x005A\x000F\x0000\x0001\x005B" + + "\x0001\x005A\x0001\x005B\x001E\x005A\x001B\x005B\x0002\x0000\x0059\x005A\x000B\x005B\x0001\x005A\x000E\x0000\x000A\x005C" + + "\x0021\x005A\x0009\x005B\x0002\x005A\x0002\x0000\x0001\x005F\x0001\x0000\x0001\x005A\x0005\x0000\x0016\x005A\x0004\x005B" + + "\x0001\x005A\x0009\x005B\x0001\x005A\x0003\x005B\x0001\x005A\x0005\x005B\x0012\x0000\x0019\x005A\x0003\x005B\x00A4\x0000" + + "\x0004\x005B\x0036\x005A\x0003\x005B\x0001\x005A\x0012\x005B\x0001\x005A\x0007\x005B\x000A\x005A\x0002\x005B\x0002\x0000" + + "\x000A\x005C\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0003\x005B\x0001\x0000\x0008\x005A\x0002\x0000" + + "\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0003\x0000\x0004\x005A\x0002\x0000" + + "\x0001\x005B\x0001\x005A\x0007\x005B\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0001\x005A\x0008\x0000\x0001\x005B" + + "\x0004\x0000\x0002\x005A\x0001\x0000\x0003\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0002\x005A\x000F\x0000\x0003\x005B" + + "\x0001\x0000\x0006\x005A\x0004\x0000\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A" + + "\x0001\x0000\x0002\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0001\x005B\x0001\x0000\x0005\x005B\x0004\x0000\x0002\x005B" + + "\x0002\x0000\x0003\x005B\x0003\x0000\x0001\x005B\x0007\x0000\x0004\x005A\x0001\x0000\x0001\x005A\x0007\x0000\x000A\x005C" + + "\x0002\x005B\x0003\x005A\x0001\x005B\x000B\x0000\x0003\x005B\x0001\x0000\x0009\x005A\x0001\x0000\x0003\x005A\x0001\x0000" + + "\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B\x0001\x005A" + + "\x0008\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0003\x005B\x0002\x0000\x0001\x005A\x000F\x0000\x0002\x005A\x0002\x005B" + + "\x0002\x0000\x000A\x005C\x0011\x0000\x0003\x005B\x0001\x0000\x0008\x005A\x0002\x0000\x0002\x005A\x0002\x0000\x0016\x005A" + + "\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B\x0001\x005A\x0007\x005B" + + "\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0008\x0000\x0002\x005B\x0004\x0000\x0002\x005A\x0001\x0000\x0003\x005A" + + "\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0001\x005A\x0010\x0000\x0001\x005B\x0001\x005A\x0001\x0000\x0006\x005A" + + "\x0003\x0000\x0003\x005A\x0001\x0000\x0004\x005A\x0003\x0000\x0002\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0002\x005A" + + "\x0003\x0000\x0002\x005A\x0003\x0000\x0003\x005A\x0003\x0000\x000C\x005A\x0004\x0000\x0005\x005B\x0003\x0000\x0003\x005B" + + "\x0001\x0000\x0004\x005B\x0002\x0000\x0001\x005A\x0006\x0000\x0001\x005B\x000E\x0000\x000A\x005C\x0011\x0000\x0003\x005B" + + "\x0001\x0000\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000\x0005\x005A" + + "\x0003\x0000\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B\x0001\x0000" + + "\x0002\x005A\x0006\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0012\x0000\x0002\x005B\x0001\x0000\x0008\x005A" + + "\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B" + + "\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B\x0007\x0000\x0001\x005A" + + "\x0001\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0002\x005A\x000F\x0000\x0002\x005B\x0001\x0000" + + "\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0029\x005A\x0002\x0000\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B" + + "\x0001\x0000\x0004\x005B\x0001\x005A\x0008\x0000\x0001\x005B\x0008\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C" + + "\x000A\x0000\x0006\x005A\x0002\x0000\x0002\x005B\x0001\x0000\x0012\x005A\x0003\x0000\x0018\x005A\x0001\x0000\x0009\x005A" + + "\x0001\x0000\x0001\x005A\x0002\x0000\x0007\x005A\x0003\x0000\x0001\x005B\x0004\x0000\x0006\x005B\x0001\x0000\x0001\x005B" + + "\x0001\x0000\x0008\x005B\x0012\x0000\x0002\x005B\x000D\x0000\x0030\x0062\x0001\x0063\x0002\x0062\x0007\x0063\x0005\x0000" + + "\x0007\x0062\x0008\x0063\x0001\x0000\x000A\x005C\x0027\x0000\x0002\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0002\x0062" + + "\x0001\x0000\x0001\x0062\x0002\x0000\x0001\x0062\x0006\x0000\x0004\x0062\x0001\x0000\x0007\x0062\x0001\x0000\x0003\x0062" + + "\x0001\x0000\x0001\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0002\x0062\x0001\x0000\x0004\x0062\x0001\x0063\x0002\x0062" + + "\x0006\x0063\x0001\x0000\x0002\x0063\x0001\x0062\x0002\x0000\x0005\x0062\x0001\x0000\x0001\x0062\x0001\x0000\x0006\x0063" + + "\x0002\x0000\x000A\x005C\x0002\x0000\x0002\x0062\x0022\x0000\x0001\x005A\x0017\x0000\x0002\x005B\x0006\x0000\x000A\x005C" + + "\x000B\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0004\x0000\x0002\x005B\x0008\x005A\x0001\x0000" + + "\x0024\x005A\x0004\x0000\x0014\x005B\x0001\x0000\x0002\x005B\x0005\x005A\x000B\x005B\x0001\x0000\x0024\x005B\x0009\x0000" + + "\x0001\x005B\x0039\x0000\x002B\x0062\x0014\x0063\x0001\x0062\x000A\x005C\x0006\x0000\x0006\x0062\x0004\x0063\x0004\x0062" + + "\x0003\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0007\x0063\x0003\x0062\x0004\x0063\x000D\x0062\x000C\x0063\x0001\x0062" + + "\x0001\x0063\x000A\x005C\x0004\x0063\x0002\x0062\x0026\x005A\x000A\x0000\x002B\x005A\x0001\x0000\x0001\x005A\x0003\x0000" + + "\u0100\x0066\x0049\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0004\x005A" + + "\x0002\x0000\x0029\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0021\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0007\x005A" + + "\x0001\x0000\x0001\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x000F\x005A\x0001\x0000\x0039\x005A\x0001\x0000\x0004\x005A" + + "\x0002\x0000\x0043\x005A\x0002\x0000\x0003\x005B\x0020\x0000\x0010\x005A\x0010\x0000\x0055\x005A\x000C\x0000\u026c\x005A" + + "\x0002\x0000\x0011\x005A\x0001\x0000\x001A\x005A\x0005\x0000\x004B\x005A\x0003\x0000\x0003\x005A\x000F\x0000\x000D\x005A" + + "\x0001\x0000\x0004\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0002\x005B\x000C\x0000" + + "\x000D\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0002\x005B\x000C\x0000\x0034\x0062\x0002\x0063\x001E\x0063\x0003\x0000" + + "\x0001\x0062\x0004\x0000\x0001\x0062\x0001\x0063\x0002\x0000\x000A\x005C\x0021\x0000\x0003\x005B\x0002\x0000\x000A\x005C" + + "\x0006\x0000\x0058\x005A\x0008\x0000\x0029\x005A\x0001\x005B\x0001\x005A\x0005\x0000\x0046\x005A\x000A\x0000\x001D\x005A" + + "\x0003\x0000\x000C\x005B\x0004\x0000\x000C\x005B\x000A\x0000\x000A\x005C\x001E\x0062\x0002\x0000\x0005\x0062\x000B\x0000" + + "\x002C\x0062\x0004\x0000\x0011\x0063\x0007\x0062\x0002\x0063\x0006\x0000\x000A\x005C\x0001\x0062\x0003\x0000\x0002\x0062" + + "\x0020\x0000\x0017\x005A\x0005\x005B\x0004\x0000\x0035\x0062\x000A\x0063\x0001\x0000\x001D\x0063\x0002\x0000\x0001\x005B" + + "\x000A\x005C\x0006\x0000\x000A\x005C\x0006\x0000\x000E\x0062\x0052\x0000\x0005\x005B\x002F\x005A\x0011\x005B\x0007\x005A" + + "\x0004\x0000\x000A\x005C\x0011\x0000\x0009\x005B\x000C\x0000\x0003\x005B\x001E\x005A\x000A\x005B\x0003\x0000\x0002\x005A" + + "\x000A\x005C\x0006\x0000\x0026\x005A\x000E\x005B\x000C\x0000\x0024\x005A\x0014\x005B\x0008\x0000\x000A\x005C\x0003\x0000" + + "\x0003\x005A\x000A\x005C\x0024\x005A\x0052\x0000\x0003\x005B\x0001\x0000\x0015\x005B\x0004\x005A\x0001\x005B\x0004\x005A" + + "\x0001\x005B\x000D\x0000\x00C0\x005A\x0027\x005B\x0015\x0000\x0004\x005B\u0116\x005A\x0002\x0000\x0006\x005A\x0002\x0000" + + "\x0026\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0008\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0001\x005A\x0001\x0000\x001F\x005A\x0002\x0000\x0035\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0003\x0000" + + "\x0003\x005A\x0001\x0000\x0007\x005A\x0003\x0000\x0004\x005A\x0002\x0000\x0006\x005A\x0004\x0000\x000D\x005A\x0005\x0000" + + "\x0003\x005A\x0001\x0000\x0007\x005A\x000F\x0000\x0002\x005B\x0002\x005B\x0008\x0000\x0002\x0060\x000A\x0000\x0001\x0060" + + "\x0002\x0000\x0001\x005E\x0002\x0000\x0005\x005B\x0010\x0000\x0002\x0061\x0003\x0000\x0001\x005F\x000F\x0000\x0001\x0061" + + "\x000B\x0000\x0005\x005B\x0005\x0000\x0006\x005B\x0001\x0000\x0001\x005A\x000D\x0000\x0001\x005A\x0010\x0000\x000D\x005A" + + "\x0033\x0000\x0021\x005B\x0011\x0000\x0001\x005A\x0004\x0000\x0001\x005A\x0002\x0000\x000A\x005A\x0001\x0000\x0001\x005A" + + "\x0003\x0000\x0005\x005A\x0006\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0004\x005A" + + "\x0001\x0000\x000B\x005A\x0002\x0000\x0004\x005A\x0005\x0000\x0005\x005A\x0004\x0000\x0001\x005A\x0011\x0000\x0029\x005A" + + "\u032d\x0000\x0034\x005A\u0716\x0000\x002F\x005A\x0001\x0000\x002F\x005A\x0001\x0000\x0085\x005A\x0006\x0000\x0004\x005A" + + "\x0003\x005B\x000E\x0000\x0026\x005A\x000A\x0000\x0036\x005A\x0009\x0000\x0001\x005A\x000F\x0000\x0001\x005B\x0017\x005A" + + "\x0009\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A" + + "\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0020\x005B\x002F\x0000\x0001\x005A" + + "\x0050\x0000\x001A\x0064\x0001\x0000\x0059\x0064\x000C\x0000\x00D6\x0064\x002F\x0000\x0001\x005A\x0001\x0000\x0001\x0064" + + "\x0019\x0000\x0009\x0064\x0004\x005B\x0002\x005B\x0001\x0000\x0005\x005D\x0002\x0000\x0003\x0064\x0001\x005A\x0001\x005A" + + "\x0004\x0000\x0056\x0065\x0002\x0000\x0002\x005B\x0002\x005D\x0003\x0065\x005B\x005D\x0001\x0000\x0004\x005D\x0005\x0000" + + "\x0029\x005A\x0003\x0000\x005E\x0066\x0011\x0000\x001B\x005A\x0035\x0000\x0010\x005D\x001F\x0000\x0041\x0000\x001F\x0000" + + "\x0051\x0000\x002F\x005D\x0001\x0000\x0058\x005D\x00A8\x0000\u19b6\x0064\x004A\x0000\u51cc\x0064\x0034\x0000\u048d\x005A" + + "\x0043\x0000\x002E\x005A\x0002\x0000\u010d\x005A\x0003\x0000\x0010\x005A\x000A\x005C\x0002\x005A\x0014\x0000\x002F\x005A" + + "\x0004\x005B\x0009\x0000\x0002\x005B\x0001\x0000\x0019\x005A\x0008\x0000\x0050\x005A\x0002\x005B\x0025\x0000\x0009\x005A" + + "\x0002\x0000\x0067\x005A\x0002\x0000\x0004\x005A\x0001\x0000\x0002\x005A\x000E\x0000\x000A\x005A\x0050\x0000\x0008\x005A" + + "\x0001\x005B\x0003\x005A\x0001\x005B\x0004\x005A\x0001\x005B\x0017\x005A\x0005\x005B\x0018\x0000\x0034\x005A\x000C\x0000" + + "\x0002\x005B\x0032\x005A\x0011\x005B\x000B\x0000\x000A\x005C\x0006\x0000\x0012\x005B\x0006\x005A\x0003\x0000\x0001\x005A" + + "\x0004\x0000\x000A\x005C\x001C\x005A\x0008\x005B\x0002\x0000\x0017\x005A\x000D\x005B\x000C\x0000\x001D\x0066\x0003\x0000" + + "\x0004\x005B\x002F\x005A\x000E\x005B\x000E\x0000\x0001\x005A\x000A\x005C\x0026\x0000\x0029\x005A\x000E\x005B\x0009\x0000" + + "\x0003\x005A\x0001\x005B\x0008\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0006\x0000\x001B\x0062\x0001\x0063\x0004\x0000" + + "\x0030\x0062\x0001\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0002\x0063\x0005\x0062\x0002\x0063\x0001\x0062\x0001\x0063" + + "\x0001\x0062\x0018\x0000\x0005\x0062\x0021\x0000\x0006\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0006\x005A\x0009\x0000" + + "\x0007\x005A\x0001\x0000\x0007\x005A\x0091\x0000\x0023\x005A\x0008\x005B\x0001\x0000\x0002\x005B\x0002\x0000\x000A\x005C" + + "\x0006\x0000\u2ba4\x0066\x000C\x0000\x0017\x0066\x0004\x0000\x0031\x0066\x0004\x0000\x0001\x0019\x0001\x0015\x0001\x0026" + + "\x0001\x0023\x0001\x000B\x0003\x0000\x0001\x0007\x0001\x0005\x0002\x0000\x0001\x0003\x0001\x0001\x000C\x0000\x0001\x0009" + + "\x0011\x0000\x0001\x004A\x0007\x0000\x0001\x0035\x0001\x000F\x0006\x0000\x0001\x0058\x0003\x0000\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0051" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0055\x0001\x0053\x000F\x0000\x0001\x004C\u02c1\x0000\x0001\x0038\x00BF\x0000" + + "\x0001\x004B\x0001\x0039\x0001\x0002\x0003\x0054\x0002\x001D\x0001\x0054\x0001\x001D\x0002\x0054\x0001\x000C\x0011\x0054" + + "\x0002\x0030\x0007\x003B\x0001\x003A\x0007\x003B\x0007\x002A\x0001\x000D\x0001\x002A\x0001\x003D\x0002\x0025\x0001\x0024" + + "\x0001\x003D\x0001\x0025\x0001\x0024\x0008\x003D\x0002\x0033\x0005\x0031\x0002\x002C\x0005\x0031\x0001\x0006\x0008\x001F" + + "\x0005\x0011\x0003\x0017\x000A\x0046\x0010\x0017\x0003\x0022\x001A\x0018\x0001\x0016\x0002\x0014\x0002\x0048\x0001\x0049" + + "\x0002\x0048\x0002\x0049\x0002\x0048\x0001\x0049\x0003\x0014\x0001\x000E\x0002\x0014\x000A\x0034\x0001\x003C\x0001\x0021" + + "\x0001\x001C\x0001\x0034\x0006\x0021\x0001\x001C\x0036\x0021\x0005\x004D\x0006\x0043\x0001\x0029\x0004\x0043\x0002\x0029" + + "\x0008\x0043\x0001\x0029\x0007\x0040\x0001\x000A\x0002\x0040\x001A\x0043\x0001\x000A\x0004\x0040\x0001\x000A\x0005\x0042" + + "\x0001\x0041\x0001\x0042\x0003\x0041\x0007\x0042\x0001\x0041\x0013\x0042\x0005\x0037\x0003\x0042\x0006\x0037\x0002\x0037" + + "\x0006\x0036\x0008\x0036\x0002\x0040\x0007\x0036\x001E\x0040\x0004\x0036\x0042\x0040\x000D\x004D\x0001\x003F\x0002\x004D" + + "\x0001\x0059\x0003\x004F\x0001\x004D\x0002\x004F\x0005\x004D\x0004\x004F\x0004\x004E\x0001\x004D\x0003\x004E\x0001\x004D" + + "\x0005\x004E\x0016\x002E\x0004\x0013\x0001\x0045\x0002\x0044\x0004\x0052\x0001\x0044\x0002\x0052\x0003\x003E\x001B\x0052" + + "\x001D\x002D\x0003\x0052\x001D\x0056\x0003\x0052\x0006\x0056\x0002\x001B\x0019\x0056\x0001\x001B\x000F\x0056\x0006\x0052" + + "\x0004\x0012\x0001\x0008\x001F\x0012\x0001\x0008\x0004\x0012\x0015\x0032\x0001\x0057\x0009\x0032\x0011\x002D\x0005\x0032" + + "\x0001\x002F\x000A\x0020\x000B\x0032\x0004\x002D\x0001\x0028\x0006\x002D\x000A\x0052\x000F\x002D\x0001\x0027\x0003\x002B" + + "\x000D\x0010\x0009\x001E\x0001\x001A\x0014\x001E\x0002\x0010\x0009\x001E\x0001\x001A\x0019\x001E\x0001\x001A\x0004\x0010" + + "\x0004\x001E\x0002\x001A\x0002\x0047\x0001\x0004\x0005\x0047\x002A\x0004\u1900\x0000\u012e\x0064\x0002\x0000\x003E\x0064" + + "\x0002\x0000\x006A\x0064\x0026\x0000\x0007\x005A\x000C\x0000\x0005\x005A\x0005\x0000\x0001\x005A\x0001\x005B\x000A\x005A" + + "\x0001\x0000\x000D\x005A\x0001\x0000\x0005\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0002\x005A" + + "\x0001\x0000\x006C\x005A\x0021\x0000\u016b\x005A\x0012\x0000\x0040\x005A\x0002\x0000\x0036\x005A\x0028\x0000\x000C\x005A" + + "\x0004\x0000\x0010\x005B\x0001\x005F\x0002\x0000\x0001\x005E\x0001\x005F\x000B\x0000\x0007\x005B\x000C\x0000\x0002\x0061" + + "\x0018\x0000\x0003\x0061\x0001\x005F\x0001\x0000\x0001\x0060\x0001\x0000\x0001\x005F\x0001\x005E\x001A\x0000\x0005\x005A" + + "\x0001\x0000\x0087\x005A\x0002\x0000\x0001\x005B\x0007\x0000\x0001\x0060\x0004\x0000\x0001\x005F\x0001\x0000\x0001\x0060" + + "\x0001\x0000\x000A\x005C\x0001\x005E\x0001\x005F\x0005\x0000\x001A\x005A\x0004\x0000\x0001\x0061\x0001\x0000\x001A\x005A" + + "\x000B\x0000\x0038\x005D\x0002\x005B\x001F\x0066\x0003\x0000\x0006\x0066\x0002\x0000\x0006\x0066\x0002\x0000\x0006\x0066" + + "\x0002\x0000\x0003\x0066\x001C\x0000\x0003\x005B\x0004\x0000"; + + /** + * Translates characters to character classes + */ + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = + "\x0001\x0000\x0013\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + + "\x0001\x0007\x0001\x0008\x000D\x0000\x0001\x0002\x0001\x0000\x0001\x0002\x0008\x0000\x0001\x0003" + + "\x000D\x0000\x0001\x0002\x002F\x0000"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[114]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private const string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x0067\x0000\x00CE\x0000\u0135\x0000\u019c\x0000\u0203\x0000\u026a\x0000\u02d1" + + "\x0000\u0338\x0000\u039f\x0000\u0406\x0000\u046d\x0000\u04d4\x0000\u053b\x0000\u05a2\x0000\u0609" + + "\x0000\u0670\x0000\u06d7\x0000\u073e\x0000\u07a5\x0000\u080c\x0000\u0873\x0000\u08da\x0000\u0941" + + "\x0000\u09a8\x0000\x0067\x0000\x0067\x0000\u0a0f\x0000\x00CE\x0000\u0135\x0000\u019c\x0000\u0203" + + "\x0000\u026a\x0000\u0a76\x0000\u0add\x0000\u0b44\x0000\u0bab\x0000\u046d\x0000\u0c12\x0000\u0c79" + + "\x0000\u0ce0\x0000\u0d47\x0000\u0dae\x0000\u0e15\x0000\u0e7c\x0000\u0338\x0000\u039f\x0000\u0ee3" + + "\x0000\u0f4a\x0000\u0fb1\x0000\u1018\x0000\u107f\x0000\u10e6\x0000\u114d\x0000\u11b4\x0000\u121b" + + "\x0000\u1282\x0000\u12e9\x0000\u1350\x0000\u13b7\x0000\u141e\x0000\u1485\x0000\u14ec\x0000\u1553" + + "\x0000\u15ba\x0000\u0941\x0000\u1621\x0000\u1688\x0000\u16ef\x0000\u1756\x0000\u17bd\x0000\u1824" + + "\x0000\u188b\x0000\u18f2\x0000\u1959\x0000\u19c0\x0000\u1a27\x0000\u1a8e\x0000\u1af5\x0000\u1b5c" + + "\x0000\u1bc3\x0000\u1c2a\x0000\u1c91\x0000\u1cf8\x0000\u1d5f\x0000\u1dc6\x0000\u1e2d\x0000\u1e94" + + "\x0000\u1efb\x0000\u1f62\x0000\u1fc9\x0000\u2030\x0000\u2097\x0000\u20fe\x0000\u2165\x0000\u21cc" + + "\x0000\u2233\x0000\u229a\x0000\u2301\x0000\u2368\x0000\u23cf\x0000\u2436\x0000\u249d\x0000\u2504" + + "\x0000\u256b\x0000\u25d2\x0000\u2639\x0000\u26a0\x0000\u2707\x0000\u276e\x0000\u27d5\x0000\u283c" + + "\x0000\u28a3\x0000\u290a"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[114]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /** + * The transition table of the DFA + */ + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0001\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + + "\x0001\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0003\x0002\x0001\x0009\x0005\x0002\x0001\x000A" + + "\x0003\x0002\x0001\x000B\x0009\x0002\x0001\x000C\x0002\x0002\x0001\x000D\x0023\x0002\x0001\x000E" + + "\x0001\x0002\x0001\x000F\x0003\x0002\x0001\x0010\x0001\x0011\x0001\x0002\x0001\x0012\x0001\x0002" + + "\x0001\x0013\x0002\x0002\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0017" + + "\x0003\x0002\x0001\x0018\x0002\x0019\x0001\x001A\x0001\x001B\x0001\x001C\x0069\x0000\x0001\x0015" + + "\x0009\x0000\x0001\x0015\x0010\x0000\x0001\x0015\x0012\x0000\x0001\x0015\x0008\x0000\x0003\x0015" + + "\x000F\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0005\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0009\x0015\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x000E\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0011\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x0015\x000F\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015" + + "\x0003\x0000\x0001\x0015\x000B\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x000D\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0004\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0003\x0015" + + "\x0001\x0000\x0004\x0015\x0001\x0000\x0002\x0015\x0002\x0000\x0003\x0015\x0001\x0000\x0009\x0015" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x000E\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x0015\x000F\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015" + + "\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015" + + "\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0005\x0015" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0019\x0000\x0003\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x000C\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x000A\x0000\x0001\x0016\x0001\x0000\x0002\x0015" + + "\x000A\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0001\x0000\x0001\x0016\x0007\x0000\x0002\x0015" + + "\x0002\x0000\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000\x0006\x0015\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0004\x0015\x0001\x0000\x0005\x0015\x0001\x0016\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x000F\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000" + + "\x0002\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0016\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0003\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0009\x0000" + + "\x0002\x0015\x000F\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x000D\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0007\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0046\x0000\x0001\x001B\x0011\x0000\x0001\x0017\x001D\x0000" + + "\x0001\x001A\x0003\x0000\x0001\x001A\x0003\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000" + + "\x0001\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0003\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0003\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0003\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000" + + "\x0005\x001A\x0001\x0000\x0005\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0003\x001A\x0004\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x000F\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0003\x001A\x0001\x0000" + + "\x0009\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x000E\x001A\x0001\x0000\x0002\x001A\x0001\x0000" + + "\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x000F\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x001A\x0003\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000" + + "\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0009\x001A\x0001\x0000" + + "\x0002\x001A\x0001\x0000\x000E\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0002\x001A\x0001\x0000\x0001\x001A\x000F\x0000\x0001\x001A\x0009\x0000\x0001\x001A\x0010\x0000" + + "\x0001\x001A\x001B\x0000\x0001\x001A\x0011\x0000\x0001\x001A\x0008\x0000\x0001\x001A\x0014\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0003\x001A\x0001\x0000" + + "\x0006\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0008\x001A\x0001\x0000" + + "\x0005\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0003\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0066\x0000\x0001\x001B\x000E\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000" + + "\x0001\x001F\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x0022\x0003\x0000" + + "\x0001\x0023\x0005\x0000\x0001\x0024\x0003\x0000\x0001\x0025\x0009\x0000\x0001\x0026\x0002\x0000" + + "\x0001\x0027\x000E\x0000\x0001\x0028\x0002\x0000\x0001\x0029\x0021\x0000\x0002\x0015\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002B\x0001\x002C\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F\x0001\x0000" + + "\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x0034" + + "\x0001\x0035\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x000B\x0000\x0001\x0036\x000D\x0000" + + "\x0001\x0037\x000C\x0000\x0001\x0038\x000E\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x0011\x0000" + + "\x0001\x003B\x0010\x0000\x0001\x0017\x0001\x0000\x0001\x0017\x0003\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x0017\x0004\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F\x0001\x0000" + + "\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x003C\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x003D\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x003E\x000E\x0000" + + "\x0001\x003F\x0002\x0000\x0001\x0040\x0011\x0000\x0001\x0041\x000F\x0000\x0001\x0015\x0001\x0042" + + "\x0001\x0016\x0001\x0043\x0003\x0000\x0001\x0042\x0001\x0000\x0001\x0042\x0002\x0000\x0001\x0015" + + "\x0062\x0000\x0002\x0019\x0004\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F" + + "\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x0044\x0003\x0000\x0001\x0023" + + "\x0005\x0000\x0001\x0024\x0003\x0000\x0001\x0045\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x0046" + + "\x000E\x0000\x0001\x0047\x0002\x0000\x0001\x0048\x0021\x0000\x0001\x0015\x0001\x001C\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002B\x0001\x002C\x0001\x0000\x0001\x001C\x0002\x0000" + + "\x0001\x001C\x0002\x0000\x0001\x0015\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0001\x0000" + + "\x0002\x0015\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0004\x0000" + + "\x0005\x0015\x0008\x0000\x0001\x002A\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0014\x0000\x0001\x0015\x0001\x0000\x0001\x002A\x0007\x0000\x0002\x0015\x0002\x0000" + + "\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0004\x0015\x0001\x0000\x0005\x0015\x0001\x002A\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x000F\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015" + + "\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x002A\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0002\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x0015" + + "\x0006\x0000\x0001\x0015\x002E\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0007\x0000\x0001\x0015\x0004\x0000\x0002\x0015" + + "\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0002\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0004\x0015" + + "\x0002\x0000\x0001\x0015\x0021\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F" + + "\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x0049\x0003\x0000\x0001\x0023" + + "\x0005\x0000\x0001\x0024\x0003\x0000\x0001\x004A\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x004B" + + "\x000E\x0000\x0001\x004C\x0002\x0000\x0001\x004D\x0021\x0000\x0001\x0015\x0002\x002A\x0002\x0000" + + "\x0002\x004E\x0001\x002C\x0001\x0000\x0001\x002A\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021" + + "\x0001\x0000\x0001\x004F\x0003\x0000\x0001\x0050\x0005\x0000\x0001\x0051\x0003\x0000\x0001\x0052" + + "\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x0053\x000E\x0000\x0001\x0054\x0002\x0000\x0001\x0055" + + "\x0021\x0000\x0001\x0015\x0001\x002B\x0007\x0000\x0001\x002B\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F\x0001\x0000\x0001\x0020\x0001\x0000" + + "\x0001\x0021\x0001\x0000\x0001\x0056\x0003\x0000\x0001\x0023\x0005\x0000\x0001\x0024\x0003\x0000" + + "\x0001\x0057\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x0058\x000E\x0000\x0001\x0059\x0002\x0000" + + "\x0001\x005A\x0011\x0000\x0001\x0041\x000F\x0000\x0001\x0015\x0001\x002C\x0001\x002A\x0001\x0043" + + "\x0003\x0000\x0001\x002C\x0001\x0000\x0001\x002C\x0002\x0000\x0001\x0015\x0002\x0000\x0001\x0016" + + "\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0016\x0001\x0000\x0002\x0016\x0004\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0016\x0004\x0000\x0001\x0016\x0002\x0015\x0002\x0016" + + "\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0016\x0008\x0000\x0001\x0015" + + "\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0016\x0005\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0016\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0043\x0000\x0002\x0016\x0006\x0000\x0001\x0016\x002E\x0000\x0001\x0016\x0003\x0000\x0001\x0016" + + "\x0002\x0000\x0001\x0016\x0003\x0000\x0001\x0016\x0005\x0000\x0001\x0016\x0007\x0000\x0001\x0016" + + "\x0004\x0000\x0002\x0016\x0003\x0000\x0002\x0016\x0001\x0000\x0001\x0016\x0004\x0000\x0001\x0016" + + "\x0001\x0000\x0001\x0016\x0002\x0000\x0002\x0016\x0001\x0000\x0003\x0016\x0001\x0000\x0001\x0016" + + "\x0002\x0000\x0004\x0016\x0002\x0000\x0001\x0016\x002B\x0000\x0001\x005B\x0003\x0000\x0001\x005C" + + "\x0005\x0000\x0001\x005D\x0003\x0000\x0001\x005E\x000C\x0000\x0001\x005F\x000E\x0000\x0001\x0060" + + "\x0002\x0000\x0001\x0061\x0022\x0000\x0001\x0034\x0001\x0016\x0006\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F\x0001\x0000\x0001\x0020\x0001\x0000" + + "\x0001\x0021\x0001\x0000\x0001\x0062\x0003\x0000\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000" + + "\x0001\x0063\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x0064\x000E\x0000\x0001\x0065\x0002\x0000" + + "\x0001\x0066\x0011\x0000\x0001\x0041\x000F\x0000\x0001\x0015\x0001\x0035\x0001\x0016\x0001\x0043" + + "\x0003\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0002\x0000\x0001\x0015\x0002\x0000\x0001\x0017" + + "\x001F\x0000\x0001\x0017\x0001\x0000\x0002\x0017\x000E\x0000\x0001\x0017\x0004\x0000\x0001\x0017" + + "\x0002\x0000\x0002\x0017\x000D\x0000\x0001\x0017\x005A\x0000\x0001\x0017\x006B\x0000\x0002\x0017" + + "\x0009\x0000\x0001\x0017\x004D\x0000\x0002\x0017\x0006\x0000\x0001\x0017\x002E\x0000\x0001\x0017" + + "\x0003\x0000\x0001\x0017\x0002\x0000\x0001\x0017\x0003\x0000\x0001\x0017\x0005\x0000\x0001\x0017" + + "\x0007\x0000\x0001\x0017\x0004\x0000\x0002\x0017\x0003\x0000\x0002\x0017\x0001\x0000\x0001\x0017" + + "\x0004\x0000\x0001\x0017\x0001\x0000\x0001\x0017\x0002\x0000\x0002\x0017\x0001\x0000\x0003\x0017" + + "\x0001\x0000\x0001\x0017\x0002\x0000\x0004\x0017\x0002\x0000\x0001\x0017\x006B\x0000\x0001\x0017" + + "\x001D\x0000\x0001\x0042\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0042\x0001\x0000\x0002\x0042" + + "\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0042\x0004\x0000\x0001\x0042" + + "\x0002\x0015\x0002\x0042\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0042" + + "\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015" + + "\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0042\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0042\x0005\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0042\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x0042\x0006\x0000\x0001\x0042\x002E\x0000\x0001\x0042" + + "\x0003\x0000\x0001\x0042\x0002\x0000\x0001\x0042\x0003\x0000\x0001\x0042\x0005\x0000\x0001\x0042" + + "\x0007\x0000\x0001\x0042\x0004\x0000\x0002\x0042\x0003\x0000\x0002\x0042\x0001\x0000\x0001\x0042" + + "\x0004\x0000\x0001\x0042\x0001\x0000\x0001\x0042\x0002\x0000\x0002\x0042\x0001\x0000\x0003\x0042" + + "\x0001\x0000\x0001\x0042\x0002\x0000\x0004\x0042\x0002\x0000\x0001\x0042\x006B\x0000\x0001\x0043" + + "\x0026\x0000\x0001\x0067\x000D\x0000\x0001\x0068\x000C\x0000\x0001\x0069\x000E\x0000\x0001\x006A" + + "\x0002\x0000\x0001\x006B\x0011\x0000\x0001\x0041\x0010\x0000\x0001\x0043\x0001\x0000\x0001\x0043" + + "\x0003\x0000\x0001\x002C\x0001\x0000\x0001\x0043\x0005\x0000\x0001\x001C\x0009\x0000\x0003\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x001C\x0001\x0000\x0002\x001C\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x001C\x0004\x0000\x0001\x001C\x0002\x0015\x0002\x001C\x0008\x0000\x0001\x002A" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x001C\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x001C\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x001C\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x001C" + + "\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x001C" + + "\x0006\x0000\x0001\x001C\x002E\x0000\x0001\x001C\x0003\x0000\x0001\x001C\x0002\x0000\x0001\x001C" + + "\x0003\x0000\x0001\x001C\x0005\x0000\x0001\x001C\x0007\x0000\x0001\x001C\x0004\x0000\x0002\x001C" + + "\x0003\x0000\x0002\x001C\x0001\x0000\x0001\x001C\x0004\x0000\x0001\x001C\x0001\x0000\x0001\x001C" + + "\x0002\x0000\x0002\x001C\x0001\x0000\x0003\x001C\x0001\x0000\x0001\x001C\x0002\x0000\x0004\x001C" + + "\x0002\x0000\x0001\x001C\x0022\x0000\x0001\x002A\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x002A" + + "\x0001\x0000\x0002\x002A\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x002A" + + "\x0004\x0000\x0001\x002A\x0002\x0015\x0002\x002A\x0008\x0000\x0001\x002A\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x002A\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x002A" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0002\x002A\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x002A\x0004\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x002A\x0006\x0000\x0001\x002A" + + "\x002E\x0000\x0001\x002A\x0003\x0000\x0001\x002A\x0002\x0000\x0001\x002A\x0003\x0000\x0001\x002A" + + "\x0005\x0000\x0001\x002A\x0007\x0000\x0001\x002A\x0004\x0000\x0002\x002A\x0003\x0000\x0002\x002A" + + "\x0001\x0000\x0001\x002A\x0004\x0000\x0001\x002A\x0001\x0000\x0001\x002A\x0002\x0000\x0002\x002A" + + "\x0001\x0000\x0003\x002A\x0001\x0000\x0001\x002A\x0002\x0000\x0004\x002A\x0002\x0000\x0001\x002A" + + "\x002B\x0000\x0001\x006C\x0003\x0000\x0001\x006D\x0005\x0000\x0001\x006E\x0003\x0000\x0001\x006F" + + "\x000C\x0000\x0001\x0070\x000E\x0000\x0001\x0071\x0002\x0000\x0001\x0072\x0022\x0000\x0001\x004E" + + "\x0001\x002A\x0006\x0000\x0001\x004E\x0005\x0000\x0001\x002B\x0009\x0000\x0003\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x002B\x0001\x0000\x0002\x002B\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x002B\x0004\x0000\x0001\x002B\x0002\x0015\x0002\x002B\x000A\x0000\x0002\x0015\x0001\x0000" + + "\x0001\x002B\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x0002\x0000" + + "\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0004\x0015\x0001\x0000\x0005\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x000F\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000" + + "\x0001\x0015\x0004\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x002B\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0002\x002B\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x002B\x0004\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x002B\x0006\x0000" + + "\x0001\x002B\x002E\x0000\x0001\x002B\x0003\x0000\x0001\x002B\x0002\x0000\x0001\x002B\x0003\x0000" + + "\x0001\x002B\x0005\x0000\x0001\x002B\x0007\x0000\x0001\x002B\x0004\x0000\x0002\x002B\x0003\x0000" + + "\x0002\x002B\x0001\x0000\x0001\x002B\x0004\x0000\x0001\x002B\x0001\x0000\x0001\x002B\x0002\x0000" + + "\x0002\x002B\x0001\x0000\x0003\x002B\x0001\x0000\x0001\x002B\x0002\x0000\x0004\x002B\x0002\x0000" + + "\x0001\x002B\x0022\x0000\x0001\x002C\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x002C\x0001\x0000" + + "\x0002\x002C\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x002C\x0004\x0000" + + "\x0001\x002C\x0002\x0015\x0002\x002C\x0008\x0000\x0001\x002A\x0001\x0000\x0002\x0015\x0001\x0000" + + "\x0001\x002C\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000" + + "\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x002C\x0001\x0000" + + "\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000" + + "\x0002\x0015\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000" + + "\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x002C" + + "\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x002C\x0004\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x002C\x0006\x0000\x0001\x002C\x002E\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002C\x0002\x0000\x0001\x002C\x0003\x0000\x0001\x002C\x0005\x0000" + + "\x0001\x002C\x0007\x0000\x0001\x002C\x0004\x0000\x0002\x002C\x0003\x0000\x0002\x002C\x0001\x0000" + + "\x0001\x002C\x0004\x0000\x0001\x002C\x0001\x0000\x0001\x002C\x0002\x0000\x0002\x002C\x0001\x0000" + + "\x0003\x002C\x0001\x0000\x0001\x002C\x0002\x0000\x0004\x002C\x0002\x0000\x0001\x002C\x0022\x0000" + + "\x0001\x0034\x001F\x0000\x0001\x0034\x0001\x0000\x0002\x0034\x000E\x0000\x0001\x0034\x0004\x0000" + + "\x0001\x0034\x0002\x0000\x0002\x0034\x0008\x0000\x0001\x0016\x0004\x0000\x0001\x0034\x001F\x0000" + + "\x0001\x0016\x0042\x0000\x0001\x0016\x0067\x0000\x0002\x0016\x005C\x0000\x0001\x0034\x006B\x0000" + + "\x0002\x0034\x0009\x0000\x0001\x0034\x004D\x0000\x0002\x0034\x0006\x0000\x0001\x0034\x002E\x0000" + + "\x0001\x0034\x0003\x0000\x0001\x0034\x0002\x0000\x0001\x0034\x0003\x0000\x0001\x0034\x0005\x0000" + + "\x0001\x0034\x0007\x0000\x0001\x0034\x0004\x0000\x0002\x0034\x0003\x0000\x0002\x0034\x0001\x0000" + + "\x0001\x0034\x0004\x0000\x0001\x0034\x0001\x0000\x0001\x0034\x0002\x0000\x0002\x0034\x0001\x0000" + + "\x0003\x0034\x0001\x0000\x0001\x0034\x0002\x0000\x0004\x0034\x0002\x0000\x0001\x0034\x0022\x0000" + + "\x0001\x0035\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0035\x0001\x0000\x0002\x0035\x0004\x0000" + + "\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0035\x0004\x0000\x0001\x0035\x0002\x0015" + + "\x0002\x0035\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0035\x0008\x0000" + + "\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0035\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0035\x0005\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0035\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0043\x0000\x0002\x0035\x0006\x0000\x0001\x0035\x002E\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0035\x0002\x0000\x0001\x0035\x0003\x0000\x0001\x0035\x0005\x0000\x0001\x0035\x0007\x0000" + + "\x0001\x0035\x0004\x0000\x0002\x0035\x0003\x0000\x0002\x0035\x0001\x0000\x0001\x0035\x0004\x0000" + + "\x0001\x0035\x0001\x0000\x0001\x0035\x0002\x0000\x0002\x0035\x0001\x0000\x0003\x0035\x0001\x0000" + + "\x0001\x0035\x0002\x0000\x0004\x0035\x0002\x0000\x0001\x0035\x0022\x0000\x0001\x0043\x001F\x0000" + + "\x0001\x0043\x0001\x0000\x0002\x0043\x000E\x0000\x0001\x0043\x0004\x0000\x0001\x0043\x0002\x0000" + + "\x0002\x0043\x000D\x0000\x0001\x0043\x005A\x0000\x0001\x0043\x006B\x0000\x0002\x0043\x0009\x0000" + + "\x0001\x0043\x004D\x0000\x0002\x0043\x0006\x0000\x0001\x0043\x002E\x0000\x0001\x0043\x0003\x0000" + + "\x0001\x0043\x0002\x0000\x0001\x0043\x0003\x0000\x0001\x0043\x0005\x0000\x0001\x0043\x0007\x0000" + + "\x0001\x0043\x0004\x0000\x0002\x0043\x0003\x0000\x0002\x0043\x0001\x0000\x0001\x0043\x0004\x0000" + + "\x0001\x0043\x0001\x0000\x0001\x0043\x0002\x0000\x0002\x0043\x0001\x0000\x0003\x0043\x0001\x0000" + + "\x0001\x0043\x0002\x0000\x0004\x0043\x0002\x0000\x0001\x0043\x0022\x0000\x0001\x004E\x001F\x0000" + + "\x0001\x004E\x0001\x0000\x0002\x004E\x000E\x0000\x0001\x004E\x0004\x0000\x0001\x004E\x0002\x0000" + + "\x0002\x004E\x0008\x0000\x0001\x002A\x0004\x0000\x0001\x004E\x001F\x0000\x0001\x002A\x0042\x0000" + + "\x0001\x002A\x0067\x0000\x0002\x002A\x005C\x0000\x0001\x004E\x006B\x0000\x0002\x004E\x0009\x0000" + + "\x0001\x004E\x004D\x0000\x0002\x004E\x0006\x0000\x0001\x004E\x002E\x0000\x0001\x004E\x0003\x0000" + + "\x0001\x004E\x0002\x0000\x0001\x004E\x0003\x0000\x0001\x004E\x0005\x0000\x0001\x004E\x0007\x0000" + + "\x0001\x004E\x0004\x0000\x0002\x004E\x0003\x0000\x0002\x004E\x0001\x0000\x0001\x004E\x0004\x0000" + + "\x0001\x004E\x0001\x0000\x0001\x004E\x0002\x0000\x0002\x004E\x0001\x0000\x0003\x004E\x0001\x0000" + + "\x0001\x004E\x0002\x0000\x0004\x004E\x0002\x0000\x0001\x004E\x0020\x0000"; + + private static int[] ZzUnpackTrans() + { + int[] result = new int[10609]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private const int ZZ_UNKNOWN_ERROR = 0; + private const int ZZ_NO_MATCH = 1; + private const int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0001\x0000\x0001\x0009\x0017\x0001\x0002\x0009\x0001\x0001\x000D\x0000\x0001\x0001\x0001\x0000" + + "\x0001\x0001\x0008\x0000\x0001\x0001\x000D\x0000\x0001\x0001\x002F\x0000"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[114]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private TextReader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the YyText() string */ + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the YyText() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yyChar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private bool zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private bool zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private bool zzEOFDone; + + /* user code: */ + /** Alphanumeric sequences */ + public static readonly int WORD_TYPE = StandardTokenizer.ALPHANUM; + + /** Numbers */ + public static readonly int NUMERIC_TYPE = StandardTokenizer.NUM; + + /** + * Chars in class \p{Line_Break = Complex_Context} are from South East Asian + * scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept + * together as as a single token rather than broken up, because the logic + * required to break them at word boundaries is too complex for UAX#29. + *

+ * See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA + */ + public static readonly int SOUTH_EAST_ASIAN_TYPE = StandardTokenizer.SOUTHEAST_ASIAN; + + public static readonly int IDEOGRAPHIC_TYPE = StandardTokenizer.IDEOGRAPHIC; + + public static readonly int HIRAGANA_TYPE = StandardTokenizer.HIRAGANA; + + public static readonly int KATAKANA_TYPE = StandardTokenizer.KATAKANA; + + public static readonly int HANGUL_TYPE = StandardTokenizer.HANGUL; + + public int YyChar + { + get { return yyChar; } + } + + /** + * Fills CharTermAttribute with the current token text. + */ + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public StandardTokenizerImpl31(TextReader @in) + { + this.zzReader = @in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 2650) + { + int count = packed[i++]; + char value = packed[i++]; + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + System.Array.Copy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + System.Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* readonlyly: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, + zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c == -1) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /** + * Closes the input stream. + */ + public void YyClose() + { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + zzReader.Dispose(); + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public void YyReset(TextReader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yyChar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public int YyState + { + get { return zzLexicalState; } + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to YyText().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to YyLength()-1. + * + * @return the character at position pos + */ + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * YyPushBack(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (IndexOutOfRangeException e) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than YyLength()! + */ + public void YyPushBack(int number) + { + if (number > YyLength) + ZzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public int GetNextToken() + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; + + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yyChar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + + + + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + zzInput = zzBufferL[zzCurrentPosL++]; + else if (zzAtEOF) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) goto zzForActionBreak; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) goto zzForActionBreak; + } + + } + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { /* Break so we don't hit fall-through warning: */ + break; /* Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. */ + } + case 9: break; + case 2: + { + return WORD_TYPE; + } + case 10: break; + case 3: + { + return NUMERIC_TYPE; + } + case 11: break; + case 4: + { + return KATAKANA_TYPE; + } + case 12: break; + case 5: + { + return SOUTH_EAST_ASIAN_TYPE; + } + case 13: break; + case 6: + { + return IDEOGRAPHIC_TYPE; + } + case 14: break; + case 7: + { + return HIRAGANA_TYPE; + } + case 15: break; + case 8: + { + return HANGUL_TYPE; + } + case 16: break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + { + return StandardTokenizerInterface_Fields.YYEOF; + } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } +} diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std34/StandardTokenizerImpl34.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std34/StandardTokenizerImpl34.cs new file mode 100644 index 0000000000..fd63c00a37 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std34/StandardTokenizerImpl34.cs @@ -0,0 +1,1141 @@ +using Lucene.Net.Analysis.Tokenattributes; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Standard.Std34 +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + ///

+ /// This class implements StandardTokenizer using Unicode 6.0.0. + /// + /// @deprecated This class is only for exact backwards compatibility + /// + [Obsolete("This class is only for exact backwards compatibility")] + public sealed class StandardTokenizerImpl34 : IStandardTokenizerInterface + { + /** This character denotes the end of file */ + public static readonly int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static readonly int ZZ_BUFFERSIZE = 4096; + + /** lexical states */ + public const int YYINITIAL = 0; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static readonly int[] ZZ_LEXSTATE = { 0, 0 }; + + /** + * Translates characters to character classes + */ + private const string ZZ_CMAP_PACKED = + "\x0027\x0000\x0001\x0060\x0004\x0000\x0001\x005F\x0001\x0000\x0001\x0060\x0001\x0000\x000A\x005C\x0001\x005E\x0001\x005F" + + "\x0005\x0000\x001A\x005A\x0004\x0000\x0001\x0061\x0001\x0000\x001A\x005A\x002F\x0000\x0001\x005A\x0002\x0000\x0001\x005B" + + "\x0007\x0000\x0001\x005A\x0001\x0000\x0001\x005E\x0002\x0000\x0001\x005A\x0005\x0000\x0017\x005A\x0001\x0000\x001F\x005A" + + "\x0001\x0000\u01ca\x005A\x0004\x0000\x000C\x005A\x000E\x0000\x0005\x005A\x0007\x0000\x0001\x005A\x0001\x0000\x0001\x005A" + + "\x0011\x0000\x0070\x005B\x0005\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0004\x005A\x0001\x005F\x0007\x0000\x0001\x005A" + + "\x0001\x005E\x0003\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0014\x005A\x0001\x0000\x0053\x005A\x0001\x0000\x008B\x005A" + + "\x0001\x0000\x0007\x005B\x009E\x005A\x0009\x0000\x0026\x005A\x0002\x0000\x0001\x005A\x0007\x0000\x0027\x005A\x0001\x0000" + + "\x0001\x005F\x0007\x0000\x002D\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0002\x005B\x0001\x0000\x0002\x005B\x0001\x0000" + + "\x0001\x005B\x0008\x0000\x001B\x005A\x0005\x0000\x0004\x005A\x0001\x005E\x000B\x0000\x0004\x005B\x0008\x0000\x0002\x005F" + + "\x0002\x0000\x000B\x005B\x0005\x0000\x002B\x005A\x0015\x005B\x000A\x005C\x0001\x0000\x0001\x005C\x0001\x005F\x0001\x0000" + + "\x0002\x005A\x0001\x005B\x0063\x005A\x0001\x0000\x0001\x005A\x0007\x005B\x0001\x005B\x0001\x0000\x0006\x005B\x0002\x005A" + + "\x0002\x005B\x0001\x0000\x0004\x005B\x0002\x005A\x000A\x005C\x0003\x005A\x0002\x0000\x0001\x005A\x000F\x0000\x0001\x005B" + + "\x0001\x005A\x0001\x005B\x001E\x005A\x001B\x005B\x0002\x0000\x0059\x005A\x000B\x005B\x0001\x005A\x000E\x0000\x000A\x005C" + + "\x0021\x005A\x0009\x005B\x0002\x005A\x0002\x0000\x0001\x005F\x0001\x0000\x0001\x005A\x0005\x0000\x0016\x005A\x0004\x005B" + + "\x0001\x005A\x0009\x005B\x0001\x005A\x0003\x005B\x0001\x005A\x0005\x005B\x0012\x0000\x0019\x005A\x0003\x005B\x00A4\x0000" + + "\x0004\x005B\x0036\x005A\x0003\x005B\x0001\x005A\x0012\x005B\x0001\x005A\x0007\x005B\x000A\x005A\x0002\x005B\x0002\x0000" + + "\x000A\x005C\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0003\x005B\x0001\x0000\x0008\x005A\x0002\x0000" + + "\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0003\x0000\x0004\x005A\x0002\x0000" + + "\x0001\x005B\x0001\x005A\x0007\x005B\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0001\x005A\x0008\x0000\x0001\x005B" + + "\x0004\x0000\x0002\x005A\x0001\x0000\x0003\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0002\x005A\x000F\x0000\x0003\x005B" + + "\x0001\x0000\x0006\x005A\x0004\x0000\x0002\x005A\x0002\x0000\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A" + + "\x0001\x0000\x0002\x005A\x0001\x0000\x0002\x005A\x0002\x0000\x0001\x005B\x0001\x0000\x0005\x005B\x0004\x0000\x0002\x005B" + + "\x0002\x0000\x0003\x005B\x0003\x0000\x0001\x005B\x0007\x0000\x0004\x005A\x0001\x0000\x0001\x005A\x0007\x0000\x000A\x005C" + + "\x0002\x005B\x0003\x005A\x0001\x005B\x000B\x0000\x0003\x005B\x0001\x0000\x0009\x005A\x0001\x0000\x0003\x005A\x0001\x0000" + + "\x0016\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B\x0001\x005A" + + "\x0008\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0003\x005B\x0002\x0000\x0001\x005A\x000F\x0000\x0002\x005A\x0002\x005B" + + "\x0002\x0000\x000A\x005C\x0011\x0000\x0003\x005B\x0001\x0000\x0008\x005A\x0002\x0000\x0002\x005A\x0002\x0000\x0016\x005A" + + "\x0001\x0000\x0007\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B\x0001\x005A\x0007\x005B" + + "\x0002\x0000\x0002\x005B\x0002\x0000\x0003\x005B\x0008\x0000\x0002\x005B\x0004\x0000\x0002\x005A\x0001\x0000\x0003\x005A" + + "\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0001\x005A\x0010\x0000\x0001\x005B\x0001\x005A\x0001\x0000\x0006\x005A" + + "\x0003\x0000\x0003\x005A\x0001\x0000\x0004\x005A\x0003\x0000\x0002\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0002\x005A" + + "\x0003\x0000\x0002\x005A\x0003\x0000\x0003\x005A\x0003\x0000\x000C\x005A\x0004\x0000\x0005\x005B\x0003\x0000\x0003\x005B" + + "\x0001\x0000\x0004\x005B\x0002\x0000\x0001\x005A\x0006\x0000\x0001\x005B\x000E\x0000\x000A\x005C\x0011\x0000\x0003\x005B" + + "\x0001\x0000\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000\x0005\x005A" + + "\x0003\x0000\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B\x0001\x0000" + + "\x0002\x005A\x0006\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0012\x0000\x0002\x005B\x0001\x0000\x0008\x005A" + + "\x0001\x0000\x0003\x005A\x0001\x0000\x0017\x005A\x0001\x0000\x000A\x005A\x0001\x0000\x0005\x005A\x0002\x0000\x0001\x005B" + + "\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B\x0001\x0000\x0004\x005B\x0007\x0000\x0002\x005B\x0007\x0000\x0001\x005A" + + "\x0001\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0001\x0000\x0002\x005A\x000F\x0000\x0002\x005B\x0001\x0000" + + "\x0008\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0029\x005A\x0002\x0000\x0001\x005A\x0007\x005B\x0001\x0000\x0003\x005B" + + "\x0001\x0000\x0004\x005B\x0001\x005A\x0008\x0000\x0001\x005B\x0008\x0000\x0002\x005A\x0002\x005B\x0002\x0000\x000A\x005C" + + "\x000A\x0000\x0006\x005A\x0002\x0000\x0002\x005B\x0001\x0000\x0012\x005A\x0003\x0000\x0018\x005A\x0001\x0000\x0009\x005A" + + "\x0001\x0000\x0001\x005A\x0002\x0000\x0007\x005A\x0003\x0000\x0001\x005B\x0004\x0000\x0006\x005B\x0001\x0000\x0001\x005B" + + "\x0001\x0000\x0008\x005B\x0012\x0000\x0002\x005B\x000D\x0000\x0030\x0062\x0001\x0063\x0002\x0062\x0007\x0063\x0005\x0000" + + "\x0007\x0062\x0008\x0063\x0001\x0000\x000A\x005C\x0027\x0000\x0002\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0002\x0062" + + "\x0001\x0000\x0001\x0062\x0002\x0000\x0001\x0062\x0006\x0000\x0004\x0062\x0001\x0000\x0007\x0062\x0001\x0000\x0003\x0062" + + "\x0001\x0000\x0001\x0062\x0001\x0000\x0001\x0062\x0002\x0000\x0002\x0062\x0001\x0000\x0004\x0062\x0001\x0063\x0002\x0062" + + "\x0006\x0063\x0001\x0000\x0002\x0063\x0001\x0062\x0002\x0000\x0005\x0062\x0001\x0000\x0001\x0062\x0001\x0000\x0006\x0063" + + "\x0002\x0000\x000A\x005C\x0002\x0000\x0002\x0062\x0022\x0000\x0001\x005A\x0017\x0000\x0002\x005B\x0006\x0000\x000A\x005C" + + "\x000B\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0001\x0000\x0001\x005B\x0004\x0000\x0002\x005B\x0008\x005A\x0001\x0000" + + "\x0024\x005A\x0004\x0000\x0014\x005B\x0001\x0000\x0002\x005B\x0005\x005A\x000B\x005B\x0001\x0000\x0024\x005B\x0009\x0000" + + "\x0001\x005B\x0039\x0000\x002B\x0062\x0014\x0063\x0001\x0062\x000A\x005C\x0006\x0000\x0006\x0062\x0004\x0063\x0004\x0062" + + "\x0003\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0007\x0063\x0003\x0062\x0004\x0063\x000D\x0062\x000C\x0063\x0001\x0062" + + "\x0001\x0063\x000A\x005C\x0004\x0063\x0002\x0062\x0026\x005A\x000A\x0000\x002B\x005A\x0001\x0000\x0001\x005A\x0003\x0000" + + "\u0100\x0066\x0049\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0004\x005A" + + "\x0002\x0000\x0029\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0021\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x0007\x005A" + + "\x0001\x0000\x0001\x005A\x0001\x0000\x0004\x005A\x0002\x0000\x000F\x005A\x0001\x0000\x0039\x005A\x0001\x0000\x0004\x005A" + + "\x0002\x0000\x0043\x005A\x0002\x0000\x0003\x005B\x0020\x0000\x0010\x005A\x0010\x0000\x0055\x005A\x000C\x0000\u026c\x005A" + + "\x0002\x0000\x0011\x005A\x0001\x0000\x001A\x005A\x0005\x0000\x004B\x005A\x0003\x0000\x0003\x005A\x000F\x0000\x000D\x005A" + + "\x0001\x0000\x0004\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0003\x005B\x000B\x0000\x0012\x005A\x0002\x005B\x000C\x0000" + + "\x000D\x005A\x0001\x0000\x0003\x005A\x0001\x0000\x0002\x005B\x000C\x0000\x0034\x0062\x0002\x0063\x001E\x0063\x0003\x0000" + + "\x0001\x0062\x0004\x0000\x0001\x0062\x0001\x0063\x0002\x0000\x000A\x005C\x0021\x0000\x0003\x005B\x0002\x0000\x000A\x005C" + + "\x0006\x0000\x0058\x005A\x0008\x0000\x0029\x005A\x0001\x005B\x0001\x005A\x0005\x0000\x0046\x005A\x000A\x0000\x001D\x005A" + + "\x0003\x0000\x000C\x005B\x0004\x0000\x000C\x005B\x000A\x0000\x000A\x005C\x001E\x0062\x0002\x0000\x0005\x0062\x000B\x0000" + + "\x002C\x0062\x0004\x0000\x0011\x0063\x0007\x0062\x0002\x0063\x0006\x0000\x000A\x005C\x0001\x0062\x0003\x0000\x0002\x0062" + + "\x0020\x0000\x0017\x005A\x0005\x005B\x0004\x0000\x0035\x0062\x000A\x0063\x0001\x0000\x001D\x0063\x0002\x0000\x0001\x005B" + + "\x000A\x005C\x0006\x0000\x000A\x005C\x0006\x0000\x000E\x0062\x0052\x0000\x0005\x005B\x002F\x005A\x0011\x005B\x0007\x005A" + + "\x0004\x0000\x000A\x005C\x0011\x0000\x0009\x005B\x000C\x0000\x0003\x005B\x001E\x005A\x000A\x005B\x0003\x0000\x0002\x005A" + + "\x000A\x005C\x0006\x0000\x0026\x005A\x000E\x005B\x000C\x0000\x0024\x005A\x0014\x005B\x0008\x0000\x000A\x005C\x0003\x0000" + + "\x0003\x005A\x000A\x005C\x0024\x005A\x0052\x0000\x0003\x005B\x0001\x0000\x0015\x005B\x0004\x005A\x0001\x005B\x0004\x005A" + + "\x0001\x005B\x000D\x0000\x00C0\x005A\x0027\x005B\x0015\x0000\x0004\x005B\u0116\x005A\x0002\x0000\x0006\x005A\x0002\x0000" + + "\x0026\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0008\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000" + + "\x0001\x005A\x0001\x0000\x001F\x005A\x0002\x0000\x0035\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0001\x005A\x0003\x0000" + + "\x0003\x005A\x0001\x0000\x0007\x005A\x0003\x0000\x0004\x005A\x0002\x0000\x0006\x005A\x0004\x0000\x000D\x005A\x0005\x0000" + + "\x0003\x005A\x0001\x0000\x0007\x005A\x000F\x0000\x0002\x005B\x0002\x005B\x0008\x0000\x0002\x0060\x000A\x0000\x0001\x0060" + + "\x0002\x0000\x0001\x005E\x0002\x0000\x0005\x005B\x0010\x0000\x0002\x0061\x0003\x0000\x0001\x005F\x000F\x0000\x0001\x0061" + + "\x000B\x0000\x0005\x005B\x0005\x0000\x0006\x005B\x0001\x0000\x0001\x005A\x000D\x0000\x0001\x005A\x0010\x0000\x000D\x005A" + + "\x0033\x0000\x0021\x005B\x0011\x0000\x0001\x005A\x0004\x0000\x0001\x005A\x0002\x0000\x000A\x005A\x0001\x0000\x0001\x005A" + + "\x0003\x0000\x0005\x005A\x0006\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0004\x005A" + + "\x0001\x0000\x000B\x005A\x0002\x0000\x0004\x005A\x0005\x0000\x0005\x005A\x0004\x0000\x0001\x005A\x0011\x0000\x0029\x005A" + + "\u032d\x0000\x0034\x005A\u0716\x0000\x002F\x005A\x0001\x0000\x002F\x005A\x0001\x0000\x0085\x005A\x0006\x0000\x0004\x005A" + + "\x0003\x005B\x000E\x0000\x0026\x005A\x000A\x0000\x0036\x005A\x0009\x0000\x0001\x005A\x000F\x0000\x0001\x005B\x0017\x005A" + + "\x0009\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A" + + "\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0007\x005A\x0001\x0000\x0020\x005B\x002F\x0000\x0001\x005A" + + "\x0050\x0000\x001A\x0064\x0001\x0000\x0059\x0064\x000C\x0000\x00D6\x0064\x002F\x0000\x0001\x005A\x0001\x0000\x0001\x0064" + + "\x0019\x0000\x0009\x0064\x0004\x005B\x0002\x005B\x0001\x0000\x0005\x005D\x0002\x0000\x0003\x0064\x0001\x005A\x0001\x005A" + + "\x0004\x0000\x0056\x0065\x0002\x0000\x0002\x005B\x0002\x005D\x0003\x0065\x005B\x005D\x0001\x0000\x0004\x005D\x0005\x0000" + + "\x0029\x005A\x0003\x0000\x005E\x0066\x0011\x0000\x001B\x005A\x0035\x0000\x0010\x005D\x001F\x0000\x0041\x0000\x001F\x0000" + + "\x0051\x0000\x002F\x005D\x0001\x0000\x0058\x005D\x00A8\x0000\u19b6\x0064\x004A\x0000\u51cc\x0064\x0034\x0000\u048d\x005A" + + "\x0043\x0000\x002E\x005A\x0002\x0000\u010d\x005A\x0003\x0000\x0010\x005A\x000A\x005C\x0002\x005A\x0014\x0000\x002F\x005A" + + "\x0004\x005B\x0009\x0000\x0002\x005B\x0001\x0000\x0019\x005A\x0008\x0000\x0050\x005A\x0002\x005B\x0025\x0000\x0009\x005A" + + "\x0002\x0000\x0067\x005A\x0002\x0000\x0004\x005A\x0001\x0000\x0002\x005A\x000E\x0000\x000A\x005A\x0050\x0000\x0008\x005A" + + "\x0001\x005B\x0003\x005A\x0001\x005B\x0004\x005A\x0001\x005B\x0017\x005A\x0005\x005B\x0018\x0000\x0034\x005A\x000C\x0000" + + "\x0002\x005B\x0032\x005A\x0011\x005B\x000B\x0000\x000A\x005C\x0006\x0000\x0012\x005B\x0006\x005A\x0003\x0000\x0001\x005A" + + "\x0004\x0000\x000A\x005C\x001C\x005A\x0008\x005B\x0002\x0000\x0017\x005A\x000D\x005B\x000C\x0000\x001D\x0066\x0003\x0000" + + "\x0004\x005B\x002F\x005A\x000E\x005B\x000E\x0000\x0001\x005A\x000A\x005C\x0026\x0000\x0029\x005A\x000E\x005B\x0009\x0000" + + "\x0003\x005A\x0001\x005B\x0008\x005A\x0002\x005B\x0002\x0000\x000A\x005C\x0006\x0000\x001B\x0062\x0001\x0063\x0004\x0000" + + "\x0030\x0062\x0001\x0063\x0001\x0062\x0003\x0063\x0002\x0062\x0002\x0063\x0005\x0062\x0002\x0063\x0001\x0062\x0001\x0063" + + "\x0001\x0062\x0018\x0000\x0005\x0062\x0021\x0000\x0006\x005A\x0002\x0000\x0006\x005A\x0002\x0000\x0006\x005A\x0009\x0000" + + "\x0007\x005A\x0001\x0000\x0007\x005A\x0091\x0000\x0023\x005A\x0008\x005B\x0001\x0000\x0002\x005B\x0002\x0000\x000A\x005C" + + "\x0006\x0000\u2ba4\x0066\x000C\x0000\x0017\x0066\x0004\x0000\x0031\x0066\x0004\x0000\x0001\x0019\x0001\x0015\x0001\x0026" + + "\x0001\x0023\x0001\x000B\x0003\x0000\x0001\x0007\x0001\x0005\x0002\x0000\x0001\x0003\x0001\x0001\x000C\x0000\x0001\x0009" + + "\x0011\x0000\x0001\x004A\x0007\x0000\x0001\x0035\x0001\x000F\x0006\x0000\x0001\x0058\x0003\x0000\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0051" + + "\x0001\x0050\x0001\x0050\x0001\x0050\x0001\x0055\x0001\x0053\x000F\x0000\x0001\x004C\u02c1\x0000\x0001\x0038\x00BF\x0000" + + "\x0001\x004B\x0001\x0039\x0001\x0002\x0003\x0054\x0002\x001D\x0001\x0054\x0001\x001D\x0002\x0054\x0001\x000C\x0011\x0054" + + "\x0002\x0030\x0007\x003B\x0001\x003A\x0007\x003B\x0007\x002A\x0001\x000D\x0001\x002A\x0001\x003D\x0002\x0025\x0001\x0024" + + "\x0001\x003D\x0001\x0025\x0001\x0024\x0008\x003D\x0002\x0033\x0005\x0031\x0002\x002C\x0005\x0031\x0001\x0006\x0008\x001F" + + "\x0005\x0011\x0003\x0017\x000A\x0046\x0010\x0017\x0003\x0022\x001A\x0018\x0001\x0016\x0002\x0014\x0002\x0048\x0001\x0049" + + "\x0002\x0048\x0002\x0049\x0002\x0048\x0001\x0049\x0003\x0014\x0001\x000E\x0002\x0014\x000A\x0034\x0001\x003C\x0001\x0021" + + "\x0001\x001C\x0001\x0034\x0006\x0021\x0001\x001C\x0036\x0021\x0005\x004D\x0006\x0043\x0001\x0029\x0004\x0043\x0002\x0029" + + "\x0008\x0043\x0001\x0029\x0007\x0040\x0001\x000A\x0002\x0040\x001A\x0043\x0001\x000A\x0004\x0040\x0001\x000A\x0005\x0042" + + "\x0001\x0041\x0001\x0042\x0003\x0041\x0007\x0042\x0001\x0041\x0013\x0042\x0005\x0037\x0003\x0042\x0006\x0037\x0002\x0037" + + "\x0006\x0036\x0008\x0036\x0002\x0040\x0007\x0036\x001E\x0040\x0004\x0036\x0042\x0040\x000D\x004D\x0001\x003F\x0002\x004D" + + "\x0001\x0059\x0003\x004F\x0001\x004D\x0002\x004F\x0005\x004D\x0004\x004F\x0004\x004E\x0001\x004D\x0003\x004E\x0001\x004D" + + "\x0005\x004E\x0016\x002E\x0004\x0013\x0001\x0045\x0002\x0044\x0004\x0052\x0001\x0044\x0002\x0052\x0003\x003E\x001B\x0052" + + "\x001D\x002D\x0003\x0052\x001D\x0056\x0003\x0052\x0006\x0056\x0002\x001B\x0019\x0056\x0001\x001B\x000F\x0056\x0006\x0052" + + "\x0004\x0012\x0001\x0008\x001F\x0012\x0001\x0008\x0004\x0012\x0015\x0032\x0001\x0057\x0009\x0032\x0011\x002D\x0005\x0032" + + "\x0001\x002F\x000A\x0020\x000B\x0032\x0004\x002D\x0001\x0028\x0006\x002D\x000A\x0052\x000F\x002D\x0001\x0027\x0003\x002B" + + "\x000D\x0010\x0009\x001E\x0001\x001A\x0014\x001E\x0002\x0010\x0009\x001E\x0001\x001A\x0019\x001E\x0001\x001A\x0004\x0010" + + "\x0004\x001E\x0002\x001A\x0002\x0047\x0001\x0004\x0005\x0047\x002A\x0004\u1900\x0000\u012e\x0064\x0002\x0000\x003E\x0064" + + "\x0002\x0000\x006A\x0064\x0026\x0000\x0007\x005A\x000C\x0000\x0005\x005A\x0005\x0000\x0001\x005A\x0001\x005B\x000A\x005A" + + "\x0001\x0000\x000D\x005A\x0001\x0000\x0005\x005A\x0001\x0000\x0001\x005A\x0001\x0000\x0002\x005A\x0001\x0000\x0002\x005A" + + "\x0001\x0000\x006C\x005A\x0021\x0000\u016b\x005A\x0012\x0000\x0040\x005A\x0002\x0000\x0036\x005A\x0028\x0000\x000C\x005A" + + "\x0004\x0000\x0010\x005B\x0001\x005F\x0002\x0000\x0001\x005E\x0001\x005F\x000B\x0000\x0007\x005B\x000C\x0000\x0002\x0061" + + "\x0018\x0000\x0003\x0061\x0001\x005F\x0001\x0000\x0001\x0060\x0001\x0000\x0001\x005F\x0001\x005E\x001A\x0000\x0005\x005A" + + "\x0001\x0000\x0087\x005A\x0002\x0000\x0001\x005B\x0007\x0000\x0001\x0060\x0004\x0000\x0001\x005F\x0001\x0000\x0001\x0060" + + "\x0001\x0000\x000A\x005C\x0001\x005E\x0001\x005F\x0005\x0000\x001A\x005A\x0004\x0000\x0001\x0061\x0001\x0000\x001A\x005A" + + "\x000B\x0000\x0038\x005D\x0002\x005B\x001F\x0066\x0003\x0000\x0006\x0066\x0002\x0000\x0006\x0066\x0002\x0000\x0006\x0066" + + "\x0002\x0000\x0003\x0066\x001C\x0000\x0003\x005B\x0004\x0000"; + + /** + * Translates characters to character classes + */ + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = + "\x0001\x0000\x0013\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + + "\x0001\x0007\x0001\x0008\x000D\x0000\x0001\x0002\x0001\x0000\x0001\x0002\x0008\x0000\x0001\x0003" + + "\x000D\x0000\x0001\x0002\x0039\x0000"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[124]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private const string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x0067\x0000\x00CE\x0000\u0135\x0000\u019c\x0000\u0203\x0000\u026a\x0000\u02d1" + + "\x0000\u0338\x0000\u039f\x0000\u0406\x0000\u046d\x0000\u04d4\x0000\u053b\x0000\u05a2\x0000\u0609" + + "\x0000\u0670\x0000\u06d7\x0000\u073e\x0000\u07a5\x0000\u080c\x0000\u0873\x0000\u08da\x0000\u0941" + + "\x0000\u09a8\x0000\u0a0f\x0000\u0a76\x0000\u0add\x0000\x00CE\x0000\u0135\x0000\u019c\x0000\u0203" + + "\x0000\u026a\x0000\u0b44\x0000\u0bab\x0000\u0c12\x0000\u0c79\x0000\u046d\x0000\u0ce0\x0000\u0d47" + + "\x0000\u0dae\x0000\u0e15\x0000\u0e7c\x0000\u0ee3\x0000\u0f4a\x0000\u0338\x0000\u039f\x0000\u0fb1" + + "\x0000\u1018\x0000\u107f\x0000\u10e6\x0000\u114d\x0000\u11b4\x0000\u121b\x0000\u1282\x0000\u12e9" + + "\x0000\u1350\x0000\u13b7\x0000\u141e\x0000\u1485\x0000\u14ec\x0000\u1553\x0000\u15ba\x0000\u1621" + + "\x0000\u1688\x0000\u0941\x0000\u16ef\x0000\u1756\x0000\u17bd\x0000\u1824\x0000\u188b\x0000\u18f2" + + "\x0000\u1959\x0000\u19c0\x0000\u1a27\x0000\u1a8e\x0000\u1af5\x0000\u1b5c\x0000\u1bc3\x0000\u1c2a" + + "\x0000\u1c91\x0000\u1cf8\x0000\u1d5f\x0000\u1dc6\x0000\u1e2d\x0000\u1e94\x0000\u1efb\x0000\u1f62" + + "\x0000\u1fc9\x0000\u2030\x0000\u2097\x0000\u20fe\x0000\u2165\x0000\u21cc\x0000\u2233\x0000\u229a" + + "\x0000\u2301\x0000\u2368\x0000\u23cf\x0000\u2436\x0000\u249d\x0000\u2504\x0000\u256b\x0000\u25d2" + + "\x0000\u2639\x0000\u26a0\x0000\u2707\x0000\u276e\x0000\u27d5\x0000\u283c\x0000\u28a3\x0000\u290a" + + "\x0000\u2971\x0000\u29d8\x0000\u2a3f\x0000\u2aa6\x0000\u2b0d\x0000\u2b74\x0000\u2bdb\x0000\u2c42" + + "\x0000\u2ca9\x0000\u2d10\x0000\u2d77\x0000\u2dde"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[124]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /** + * The transition table of the DFA + */ + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0001\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + + "\x0001\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0003\x0002\x0001\x0009\x0005\x0002\x0001\x000A" + + "\x0003\x0002\x0001\x000B\x0009\x0002\x0001\x000C\x0002\x0002\x0001\x000D\x0023\x0002\x0001\x000E" + + "\x0001\x0002\x0001\x000F\x0003\x0002\x0001\x0010\x0001\x0011\x0001\x0002\x0001\x0012\x0001\x0002" + + "\x0001\x0013\x0002\x0002\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0017" + + "\x0003\x0002\x0001\x0018\x0002\x0019\x0001\x001A\x0001\x001B\x0001\x001C\x0069\x0000\x0001\x0015" + + "\x0009\x0000\x0001\x0015\x0010\x0000\x0001\x0015\x0012\x0000\x0001\x0015\x0008\x0000\x0003\x0015" + + "\x000F\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0005\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0009\x0015\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x000E\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0011\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x0015\x000F\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015" + + "\x0003\x0000\x0001\x0015\x000B\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x000D\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0004\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0003\x0015" + + "\x0001\x0000\x0004\x0015\x0001\x0000\x0002\x0015\x0002\x0000\x0003\x0015\x0001\x0000\x0009\x0015" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x000E\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x0015\x000F\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015" + + "\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015" + + "\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0005\x0015" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0019\x0000\x0003\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x000C\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0009\x0000\x0002\x0015\x000A\x0000\x0001\x0016\x0001\x0000\x0002\x0015" + + "\x000A\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0001\x0000\x0001\x0016\x0007\x0000\x0002\x0015" + + "\x0002\x0000\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000\x0006\x0015\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000\x0002\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0004\x0015\x0001\x0000\x0005\x0015\x0001\x0016\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x000F\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000" + + "\x0002\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015\x0004\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0016\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0003\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0009\x0000" + + "\x0002\x0015\x000F\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x000D\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0007\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0046\x0000\x0001\x001B\x0011\x0000\x0001\x0017\x001D\x0000" + + "\x0001\x001A\x0003\x0000\x0001\x001A\x0003\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000" + + "\x0001\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0003\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0003\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0003\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000" + + "\x0005\x001A\x0001\x0000\x0005\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0003\x001A\x0004\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x000F\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0003\x001A\x0001\x0000" + + "\x0009\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x000E\x001A\x0001\x0000\x0002\x001A\x0001\x0000" + + "\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0001\x001A\x000F\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x001A\x0003\x0000\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000" + + "\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0009\x001A\x0001\x0000" + + "\x0002\x001A\x0001\x0000\x000E\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0003\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0002\x001A\x0001\x0000\x0001\x001A\x000F\x0000\x0001\x001A\x0009\x0000\x0001\x001A\x0010\x0000" + + "\x0001\x001A\x001B\x0000\x0001\x001A\x0011\x0000\x0001\x001A\x0008\x0000\x0001\x001A\x0014\x0000" + + "\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0001\x001A\x0001\x0000\x0003\x001A\x0001\x0000\x0005\x001A\x0001\x0000\x0003\x001A\x0001\x0000" + + "\x0006\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0008\x001A\x0001\x0000" + + "\x0005\x001A\x0001\x0000\x0002\x001A\x0001\x0000\x0011\x001A\x0001\x0000\x0001\x001A\x0001\x0000" + + "\x0003\x001A\x0002\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0001\x0000" + + "\x0001\x001A\x0066\x0000\x0001\x001B\x000E\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000" + + "\x0001\x001F\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x0022\x0003\x0000" + + "\x0001\x0023\x0005\x0000\x0001\x0024\x0003\x0000\x0001\x0025\x0009\x0000\x0001\x0026\x0002\x0000" + + "\x0001\x0027\x000E\x0000\x0001\x0028\x0002\x0000\x0001\x0029\x0021\x0000\x0002\x0015\x0001\x002A" + + "\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002B\x0001\x002C\x0001\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F\x0001\x0000" + + "\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x002D\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x0030\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x0031\x000E\x0000" + + "\x0001\x0032\x0002\x0000\x0001\x0033\x0021\x0000\x0001\x0015\x0002\x0016\x0002\x0000\x0002\x0034" + + "\x0001\x0035\x0001\x0000\x0001\x0016\x0002\x0000\x0001\x0015\x000B\x0000\x0001\x0036\x000D\x0000" + + "\x0001\x0037\x000C\x0000\x0001\x0038\x000E\x0000\x0001\x0039\x0002\x0000\x0001\x003A\x0011\x0000" + + "\x0001\x003B\x0010\x0000\x0001\x0017\x0001\x0000\x0001\x0017\x0003\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x0017\x0004\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F\x0001\x0000" + + "\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x003C\x0003\x0000\x0001\x002E\x0005\x0000" + + "\x0001\x002F\x0003\x0000\x0001\x003D\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x003E\x000E\x0000" + + "\x0001\x003F\x0002\x0000\x0001\x0040\x0011\x0000\x0001\x0041\x000F\x0000\x0001\x0015\x0001\x0042" + + "\x0001\x0016\x0001\x0043\x0003\x0000\x0001\x0042\x0001\x0000\x0001\x0042\x0002\x0000\x0001\x0015" + + "\x0062\x0000\x0002\x0019\x000E\x0000\x0001\x0044\x000D\x0000\x0001\x0045\x000C\x0000\x0001\x0046" + + "\x000E\x0000\x0001\x0047\x0002\x0000\x0001\x0048\x0022\x0000\x0001\x001A\x0007\x0000\x0001\x001A" + + "\x000E\x0000\x0001\x0049\x000D\x0000\x0001\x004A\x000C\x0000\x0001\x004B\x000E\x0000\x0001\x004C" + + "\x0002\x0000\x0001\x004D\x0022\x0000\x0001\x001B\x0007\x0000\x0001\x001B\x0004\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021" + + "\x0001\x0000\x0001\x004E\x0003\x0000\x0001\x0023\x0005\x0000\x0001\x0024\x0003\x0000\x0001\x004F" + + "\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x0050\x000E\x0000\x0001\x0051\x0002\x0000\x0001\x0052" + + "\x0021\x0000\x0001\x0015\x0001\x001C\x0001\x002A\x0001\x0000\x0001\x002B\x0001\x0000\x0001\x002B" + + "\x0001\x002C\x0001\x0000\x0001\x001C\x0002\x0000\x0001\x001C\x0002\x0000\x0001\x0015\x0009\x0000" + + "\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0005\x0015\x0008\x0000\x0001\x002A\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x002A\x0007\x0000\x0002\x0015\x0002\x0000\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000" + + "\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000\x0005\x0015\x0001\x002A" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x000F\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x002A" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0003\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x0000\x0002\x0015\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x0015\x0006\x0000\x0001\x0015\x002E\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0007\x0000\x0001\x0015\x0004\x0000\x0002\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0002\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0002\x0000\x0004\x0015\x0002\x0000\x0001\x0015\x0021\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021" + + "\x0001\x0000\x0001\x0053\x0003\x0000\x0001\x0023\x0005\x0000\x0001\x0024\x0003\x0000\x0001\x0054" + + "\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x0055\x000E\x0000\x0001\x0056\x0002\x0000\x0001\x0057" + + "\x0021\x0000\x0001\x0015\x0002\x002A\x0002\x0000\x0002\x0058\x0001\x002C\x0001\x0000\x0001\x002A" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001F" + + "\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x0059\x0003\x0000\x0001\x005A" + + "\x0005\x0000\x0001\x005B\x0003\x0000\x0001\x005C\x0009\x0000\x0001\x0026\x0002\x0000\x0001\x005D" + + "\x000E\x0000\x0001\x005E\x0002\x0000\x0001\x005F\x0021\x0000\x0001\x0015\x0001\x002B\x0007\x0000" + + "\x0001\x002B\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000" + + "\x0001\x001F\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x0060\x0003\x0000" + + "\x0001\x0023\x0005\x0000\x0001\x0024\x0003\x0000\x0001\x0061\x0009\x0000\x0001\x0026\x0002\x0000" + + "\x0001\x0062\x000E\x0000\x0001\x0063\x0002\x0000\x0001\x0064\x0011\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0015\x0001\x002C\x0001\x002A\x0001\x0043\x0003\x0000\x0001\x002C\x0001\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x0015\x0002\x0000\x0001\x0016\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x0016" + + "\x0001\x0000\x0002\x0016\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x0016" + + "\x0004\x0000\x0001\x0016\x0002\x0015\x0002\x0016\x0008\x0000\x0001\x0016\x0001\x0000\x0002\x0015" + + "\x0001\x0000\x0001\x0016\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x0016" + + "\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015" + + "\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0002\x0016\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0016\x0004\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x0016\x0006\x0000\x0001\x0016" + + "\x002E\x0000\x0001\x0016\x0003\x0000\x0001\x0016\x0002\x0000\x0001\x0016\x0003\x0000\x0001\x0016" + + "\x0005\x0000\x0001\x0016\x0007\x0000\x0001\x0016\x0004\x0000\x0002\x0016\x0003\x0000\x0002\x0016" + + "\x0001\x0000\x0001\x0016\x0004\x0000\x0001\x0016\x0001\x0000\x0001\x0016\x0002\x0000\x0002\x0016" + + "\x0001\x0000\x0003\x0016\x0001\x0000\x0001\x0016\x0002\x0000\x0004\x0016\x0002\x0000\x0001\x0016" + + "\x002B\x0000\x0001\x0065\x0003\x0000\x0001\x0066\x0005\x0000\x0001\x0067\x0003\x0000\x0001\x0068" + + "\x000C\x0000\x0001\x0069\x000E\x0000\x0001\x006A\x0002\x0000\x0001\x006B\x0022\x0000\x0001\x0034" + + "\x0001\x0016\x0006\x0000\x0001\x0034\x0004\x0000\x0001\x001D\x0001\x0000\x0001\x001E\x0001\x0000" + + "\x0001\x001F\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0001\x0000\x0001\x006C\x0003\x0000" + + "\x0001\x002E\x0005\x0000\x0001\x002F\x0003\x0000\x0001\x006D\x0009\x0000\x0001\x0026\x0002\x0000" + + "\x0001\x006E\x000E\x0000\x0001\x006F\x0002\x0000\x0001\x0070\x0011\x0000\x0001\x0041\x000F\x0000" + + "\x0001\x0015\x0001\x0035\x0001\x0016\x0001\x0043\x0003\x0000\x0001\x0035\x0001\x0000\x0001\x0035" + + "\x0002\x0000\x0001\x0015\x0002\x0000\x0001\x0017\x001F\x0000\x0001\x0017\x0001\x0000\x0002\x0017" + + "\x000E\x0000\x0001\x0017\x0004\x0000\x0001\x0017\x0002\x0000\x0002\x0017\x000D\x0000\x0001\x0017" + + "\x005A\x0000\x0001\x0017\x006B\x0000\x0002\x0017\x0009\x0000\x0001\x0017\x004D\x0000\x0002\x0017" + + "\x0006\x0000\x0001\x0017\x002E\x0000\x0001\x0017\x0003\x0000\x0001\x0017\x0002\x0000\x0001\x0017" + + "\x0003\x0000\x0001\x0017\x0005\x0000\x0001\x0017\x0007\x0000\x0001\x0017\x0004\x0000\x0002\x0017" + + "\x0003\x0000\x0002\x0017\x0001\x0000\x0001\x0017\x0004\x0000\x0001\x0017\x0001\x0000\x0001\x0017" + + "\x0002\x0000\x0002\x0017\x0001\x0000\x0003\x0017\x0001\x0000\x0001\x0017\x0002\x0000\x0004\x0017" + + "\x0002\x0000\x0001\x0017\x006B\x0000\x0001\x0017\x001D\x0000\x0001\x0042\x0009\x0000\x0003\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0042\x0001\x0000\x0002\x0042\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0042\x0004\x0000\x0001\x0042\x0002\x0015\x0002\x0042\x0008\x0000\x0001\x0016" + + "\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x0042\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015" + + "\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0042\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0002\x0042\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0042" + + "\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x0042" + + "\x0006\x0000\x0001\x0042\x002E\x0000\x0001\x0042\x0003\x0000\x0001\x0042\x0002\x0000\x0001\x0042" + + "\x0003\x0000\x0001\x0042\x0005\x0000\x0001\x0042\x0007\x0000\x0001\x0042\x0004\x0000\x0002\x0042" + + "\x0003\x0000\x0002\x0042\x0001\x0000\x0001\x0042\x0004\x0000\x0001\x0042\x0001\x0000\x0001\x0042" + + "\x0002\x0000\x0002\x0042\x0001\x0000\x0003\x0042\x0001\x0000\x0001\x0042\x0002\x0000\x0004\x0042" + + "\x0002\x0000\x0001\x0042\x006B\x0000\x0001\x0043\x0026\x0000\x0001\x0071\x000D\x0000\x0001\x0072" + + "\x000C\x0000\x0001\x0073\x000E\x0000\x0001\x0074\x0002\x0000\x0001\x0075\x0011\x0000\x0001\x0041" + + "\x0010\x0000\x0001\x0043\x0001\x0000\x0001\x0043\x0003\x0000\x0001\x002C\x0001\x0000\x0001\x0043" + + "\x0005\x0000\x0001\x001A\x001F\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x000E\x0000\x0001\x001A" + + "\x0004\x0000\x0001\x001A\x0002\x0000\x0002\x001A\x000D\x0000\x0001\x001A\x005A\x0000\x0001\x001A" + + "\x006B\x0000\x0002\x001A\x0009\x0000\x0001\x001A\x004D\x0000\x0002\x001A\x0006\x0000\x0001\x001A" + + "\x002E\x0000\x0001\x001A\x0003\x0000\x0001\x001A\x0002\x0000\x0001\x001A\x0003\x0000\x0001\x001A" + + "\x0005\x0000\x0001\x001A\x0007\x0000\x0001\x001A\x0004\x0000\x0002\x001A\x0003\x0000\x0002\x001A" + + "\x0001\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0002\x0000\x0002\x001A" + + "\x0001\x0000\x0003\x001A\x0001\x0000\x0001\x001A\x0002\x0000\x0004\x001A\x0002\x0000\x0001\x001A" + + "\x0022\x0000\x0001\x001B\x001F\x0000\x0001\x001B\x0001\x0000\x0002\x001B\x000E\x0000\x0001\x001B" + + "\x0004\x0000\x0001\x001B\x0002\x0000\x0002\x001B\x000D\x0000\x0001\x001B\x005A\x0000\x0001\x001B" + + "\x006B\x0000\x0002\x001B\x0009\x0000\x0001\x001B\x004D\x0000\x0002\x001B\x0006\x0000\x0001\x001B" + + "\x002E\x0000\x0001\x001B\x0003\x0000\x0001\x001B\x0002\x0000\x0001\x001B\x0003\x0000\x0001\x001B" + + "\x0005\x0000\x0001\x001B\x0007\x0000\x0001\x001B\x0004\x0000\x0002\x001B\x0003\x0000\x0002\x001B" + + "\x0001\x0000\x0001\x001B\x0004\x0000\x0001\x001B\x0001\x0000\x0001\x001B\x0002\x0000\x0002\x001B" + + "\x0001\x0000\x0003\x001B\x0001\x0000\x0001\x001B\x0002\x0000\x0004\x001B\x0002\x0000\x0001\x001B" + + "\x0022\x0000\x0001\x001C\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x001C\x0001\x0000\x0002\x001C" + + "\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x001C\x0004\x0000\x0001\x001C" + + "\x0002\x0015\x0002\x001C\x0008\x0000\x0001\x002A\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x001C" + + "\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015" + + "\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015" + + "\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x001C\x0001\x0000\x0002\x0015" + + "\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015" + + "\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015" + + "\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x001C\x0005\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x001C\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x001C\x0006\x0000\x0001\x001C\x002E\x0000\x0001\x001C" + + "\x0003\x0000\x0001\x001C\x0002\x0000\x0001\x001C\x0003\x0000\x0001\x001C\x0005\x0000\x0001\x001C" + + "\x0007\x0000\x0001\x001C\x0004\x0000\x0002\x001C\x0003\x0000\x0002\x001C\x0001\x0000\x0001\x001C" + + "\x0004\x0000\x0001\x001C\x0001\x0000\x0001\x001C\x0002\x0000\x0002\x001C\x0001\x0000\x0003\x001C" + + "\x0001\x0000\x0001\x001C\x0002\x0000\x0004\x001C\x0002\x0000\x0001\x001C\x0022\x0000\x0001\x002A" + + "\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x002A\x0001\x0000\x0002\x002A\x0004\x0000\x0001\x0015" + + "\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x002A\x0004\x0000\x0001\x002A\x0002\x0015\x0002\x002A" + + "\x0008\x0000\x0001\x002A\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x002A\x0008\x0000\x0001\x0015" + + "\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015" + + "\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015" + + "\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x002A\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015" + + "\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015" + + "\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x002A\x0005\x0000\x0001\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x002A\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015" + + "\x0043\x0000\x0002\x002A\x0006\x0000\x0001\x002A\x002E\x0000\x0001\x002A\x0003\x0000\x0001\x002A" + + "\x0002\x0000\x0001\x002A\x0003\x0000\x0001\x002A\x0005\x0000\x0001\x002A\x0007\x0000\x0001\x002A" + + "\x0004\x0000\x0002\x002A\x0003\x0000\x0002\x002A\x0001\x0000\x0001\x002A\x0004\x0000\x0001\x002A" + + "\x0001\x0000\x0001\x002A\x0002\x0000\x0002\x002A\x0001\x0000\x0003\x002A\x0001\x0000\x0001\x002A" + + "\x0002\x0000\x0004\x002A\x0002\x0000\x0001\x002A\x002B\x0000\x0001\x0076\x0003\x0000\x0001\x0077" + + "\x0005\x0000\x0001\x0078\x0003\x0000\x0001\x0079\x000C\x0000\x0001\x007A\x000E\x0000\x0001\x007B" + + "\x0002\x0000\x0001\x007C\x0022\x0000\x0001\x0058\x0001\x002A\x0006\x0000\x0001\x0058\x0005\x0000" + + "\x0001\x002B\x0009\x0000\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0001\x002B\x0001\x0000\x0002\x002B\x0004\x0000" + + "\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000\x0001\x002B\x0004\x0000\x0001\x002B\x0002\x0015" + + "\x0002\x002B\x000A\x0000\x0002\x0015\x0001\x0000\x0001\x002B\x0008\x0000\x0001\x0015\x0014\x0000" + + "\x0001\x0015\x0009\x0000\x0002\x0015\x0002\x0000\x0005\x0015\x0002\x0000\x0002\x0015\x0004\x0000" + + "\x0006\x0015\x0001\x0000\x0002\x0015\x0004\x0000\x0005\x0015\x0001\x0000\x0005\x0015\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0004\x0015\x0001\x0000\x0005\x0015\x0002\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x000F\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0005\x0000\x0002\x0015\x0003\x0000\x0001\x0015\x0004\x0000\x0003\x0015\x0004\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0003\x0000\x0002\x0015\x0001\x0000\x0001\x0015\x0005\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000\x0001\x002B\x0001\x0000\x0002\x0015\x0004\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x002B\x0005\x0000\x0001\x0015" + + "\x0002\x0000\x0001\x0015\x0001\x002B\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0043\x0000\x0002\x002B\x0006\x0000\x0001\x002B\x002E\x0000\x0001\x002B\x0003\x0000" + + "\x0001\x002B\x0002\x0000\x0001\x002B\x0003\x0000\x0001\x002B\x0005\x0000\x0001\x002B\x0007\x0000" + + "\x0001\x002B\x0004\x0000\x0002\x002B\x0003\x0000\x0002\x002B\x0001\x0000\x0001\x002B\x0004\x0000" + + "\x0001\x002B\x0001\x0000\x0001\x002B\x0002\x0000\x0002\x002B\x0001\x0000\x0003\x002B\x0001\x0000" + + "\x0001\x002B\x0002\x0000\x0004\x002B\x0002\x0000\x0001\x002B\x0022\x0000\x0001\x002C\x0009\x0000" + + "\x0003\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x0004\x0000\x0001\x002C\x0001\x0000\x0002\x002C\x0004\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x002C\x0004\x0000\x0001\x002C\x0002\x0015\x0002\x002C\x0008\x0000" + + "\x0001\x002A\x0001\x0000\x0002\x0015\x0001\x0000\x0001\x002C\x0008\x0000\x0001\x0015\x0014\x0000" + + "\x0001\x0015\x0003\x0000\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0015\x0004\x0000\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0003\x0015\x0001\x0000\x0001\x002C\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0015\x0008\x0000\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0005\x0000\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0015\x0005\x0000\x0001\x0015\x0002\x002C\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015" + + "\x0001\x002C\x0004\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0043\x0000" + + "\x0002\x002C\x0006\x0000\x0001\x002C\x002E\x0000\x0001\x002C\x0003\x0000\x0001\x002C\x0002\x0000" + + "\x0001\x002C\x0003\x0000\x0001\x002C\x0005\x0000\x0001\x002C\x0007\x0000\x0001\x002C\x0004\x0000" + + "\x0002\x002C\x0003\x0000\x0002\x002C\x0001\x0000\x0001\x002C\x0004\x0000\x0001\x002C\x0001\x0000" + + "\x0001\x002C\x0002\x0000\x0002\x002C\x0001\x0000\x0003\x002C\x0001\x0000\x0001\x002C\x0002\x0000" + + "\x0004\x002C\x0002\x0000\x0001\x002C\x0022\x0000\x0001\x0034\x001F\x0000\x0001\x0034\x0001\x0000" + + "\x0002\x0034\x000E\x0000\x0001\x0034\x0004\x0000\x0001\x0034\x0002\x0000\x0002\x0034\x0008\x0000" + + "\x0001\x0016\x0004\x0000\x0001\x0034\x001F\x0000\x0001\x0016\x0042\x0000\x0001\x0016\x0067\x0000" + + "\x0002\x0016\x005C\x0000\x0001\x0034\x006B\x0000\x0002\x0034\x0009\x0000\x0001\x0034\x004D\x0000" + + "\x0002\x0034\x0006\x0000\x0001\x0034\x002E\x0000\x0001\x0034\x0003\x0000\x0001\x0034\x0002\x0000" + + "\x0001\x0034\x0003\x0000\x0001\x0034\x0005\x0000\x0001\x0034\x0007\x0000\x0001\x0034\x0004\x0000" + + "\x0002\x0034\x0003\x0000\x0002\x0034\x0001\x0000\x0001\x0034\x0004\x0000\x0001\x0034\x0001\x0000" + + "\x0001\x0034\x0002\x0000\x0002\x0034\x0001\x0000\x0003\x0034\x0001\x0000\x0001\x0034\x0002\x0000" + + "\x0004\x0034\x0002\x0000\x0001\x0034\x0022\x0000\x0001\x0035\x0009\x0000\x0003\x0015\x0005\x0000" + + "\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0001\x0035\x0001\x0000\x0002\x0035\x0004\x0000\x0001\x0015\x0005\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0035\x0004\x0000\x0001\x0035\x0002\x0015\x0002\x0035\x0008\x0000\x0001\x0016\x0001\x0000" + + "\x0002\x0015\x0001\x0000\x0001\x0035\x0008\x0000\x0001\x0015\x0014\x0000\x0001\x0015\x0003\x0000" + + "\x0001\x0015\x0006\x0000\x0002\x0015\x0005\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000" + + "\x0001\x0015\x0001\x0000\x0009\x0015\x0002\x0000\x0001\x0015\x0004\x0000\x0001\x0015\x0004\x0000" + + "\x0006\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0001\x0000\x0003\x0015\x0001\x0000" + + "\x0001\x0035\x0001\x0000\x0002\x0015\x0004\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0008\x0000" + + "\x0001\x0015\x0001\x0000\x0002\x0015\x0011\x0000\x0001\x0015\x0003\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x001A\x0000\x000D\x0015\x0005\x0000\x0003\x0015\x0001\x0000\x0001\x0015\x0005\x0000" + + "\x0001\x0015\x0002\x0035\x0005\x0000\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0035\x0004\x0000" + + "\x0001\x0015\x0002\x0000\x0001\x0015\x0001\x0000\x0001\x0015\x0043\x0000\x0002\x0035\x0006\x0000" + + "\x0001\x0035\x002E\x0000\x0001\x0035\x0003\x0000\x0001\x0035\x0002\x0000\x0001\x0035\x0003\x0000" + + "\x0001\x0035\x0005\x0000\x0001\x0035\x0007\x0000\x0001\x0035\x0004\x0000\x0002\x0035\x0003\x0000" + + "\x0002\x0035\x0001\x0000\x0001\x0035\x0004\x0000\x0001\x0035\x0001\x0000\x0001\x0035\x0002\x0000" + + "\x0002\x0035\x0001\x0000\x0003\x0035\x0001\x0000\x0001\x0035\x0002\x0000\x0004\x0035\x0002\x0000" + + "\x0001\x0035\x0022\x0000\x0001\x0043\x001F\x0000\x0001\x0043\x0001\x0000\x0002\x0043\x000E\x0000" + + "\x0001\x0043\x0004\x0000\x0001\x0043\x0002\x0000\x0002\x0043\x000D\x0000\x0001\x0043\x005A\x0000" + + "\x0001\x0043\x006B\x0000\x0002\x0043\x0009\x0000\x0001\x0043\x004D\x0000\x0002\x0043\x0006\x0000" + + "\x0001\x0043\x002E\x0000\x0001\x0043\x0003\x0000\x0001\x0043\x0002\x0000\x0001\x0043\x0003\x0000" + + "\x0001\x0043\x0005\x0000\x0001\x0043\x0007\x0000\x0001\x0043\x0004\x0000\x0002\x0043\x0003\x0000" + + "\x0002\x0043\x0001\x0000\x0001\x0043\x0004\x0000\x0001\x0043\x0001\x0000\x0001\x0043\x0002\x0000" + + "\x0002\x0043\x0001\x0000\x0003\x0043\x0001\x0000\x0001\x0043\x0002\x0000\x0004\x0043\x0002\x0000" + + "\x0001\x0043\x0022\x0000\x0001\x0058\x001F\x0000\x0001\x0058\x0001\x0000\x0002\x0058\x000E\x0000" + + "\x0001\x0058\x0004\x0000\x0001\x0058\x0002\x0000\x0002\x0058\x0008\x0000\x0001\x002A\x0004\x0000" + + "\x0001\x0058\x001F\x0000\x0001\x002A\x0042\x0000\x0001\x002A\x0067\x0000\x0002\x002A\x005C\x0000" + + "\x0001\x0058\x006B\x0000\x0002\x0058\x0009\x0000\x0001\x0058\x004D\x0000\x0002\x0058\x0006\x0000" + + "\x0001\x0058\x002E\x0000\x0001\x0058\x0003\x0000\x0001\x0058\x0002\x0000\x0001\x0058\x0003\x0000" + + "\x0001\x0058\x0005\x0000\x0001\x0058\x0007\x0000\x0001\x0058\x0004\x0000\x0002\x0058\x0003\x0000" + + "\x0002\x0058\x0001\x0000\x0001\x0058\x0004\x0000\x0001\x0058\x0001\x0000\x0001\x0058\x0002\x0000" + + "\x0002\x0058\x0001\x0000\x0003\x0058\x0001\x0000\x0001\x0058\x0002\x0000\x0004\x0058\x0002\x0000" + + "\x0001\x0058\x0020\x0000"; + + private static int[] ZzUnpackTrans() + { + int[] result = new int[11845]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private const int ZZ_UNKNOWN_ERROR = 0; + private const int ZZ_NO_MATCH = 1; + private const int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0001\x0000\x0001\x0009\x001A\x0001\x000D\x0000\x0001\x0001\x0001\x0000\x0001\x0001\x0008\x0000" + + "\x0001\x0001\x000D\x0000\x0001\x0001\x0039\x0000"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[124]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private TextReader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the YyText() string */ + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the YyText() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yyChar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private bool zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private bool zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private bool zzEOFDone; + + /* user code: */ + /** Alphanumeric sequences */ + public static readonly int WORD_TYPE = StandardTokenizer.ALPHANUM; + + /** Numbers */ + public static readonly int NUMERIC_TYPE = StandardTokenizer.NUM; + + /** + * Chars in class \p{Line_Break = Complex_Context} are from South East Asian + * scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept + * together as as a single token rather than broken up, because the logic + * required to break them at word boundaries is too complex for UAX#29. + *

+ * See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA + */ + public static readonly int SOUTH_EAST_ASIAN_TYPE = StandardTokenizer.SOUTHEAST_ASIAN; + + public static readonly int IDEOGRAPHIC_TYPE = StandardTokenizer.IDEOGRAPHIC; + + public static readonly int HIRAGANA_TYPE = StandardTokenizer.HIRAGANA; + + public static readonly int KATAKANA_TYPE = StandardTokenizer.KATAKANA; + + public static readonly int HANGUL_TYPE = StandardTokenizer.HANGUL; + + public int YyChar + { + get { return yyChar; } + } + + /** + * Fills CharTermAttribute with the current token text. + */ + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public StandardTokenizerImpl34(TextReader @in) + { + this.zzReader = @in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 2650) + { + int count = packed[i++]; + char value = packed[i++]; + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + System.Array.Copy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + System.Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* readonlyly: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, + zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c == -1) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /** + * Closes the input stream. + */ + public void YyClose() + { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + zzReader.Dispose(); + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public void YyReset(TextReader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yyChar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public int YyState + { + get { return zzLexicalState; } + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to YyText().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to YyLength()-1. + * + * @return the character at position pos + */ + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * YyPushBack(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (IndexOutOfRangeException e) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than YyLength()! + */ + public void YyPushBack(int number) + { + if (number > YyLength) + ZzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public int GetNextToken() + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; + + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yyChar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + + + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + zzInput = zzBufferL[zzCurrentPosL++]; + else if (zzAtEOF) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) goto zzForActionBreak; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) goto zzForActionBreak; + } + + } + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { /* Break so we don't hit fall-through warning: */ + break; /* Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. */ + } + case 9: break; + case 2: + { + return WORD_TYPE; + } + case 10: break; + case 3: + { + return NUMERIC_TYPE; + } + case 11: break; + case 4: + { + return KATAKANA_TYPE; + } + case 12: break; + case 5: + { + return SOUTH_EAST_ASIAN_TYPE; + } + case 13: break; + case 6: + { + return IDEOGRAPHIC_TYPE; + } + case 14: break; + case 7: + { + return HIRAGANA_TYPE; + } + case 15: break; + case 8: + { + return HANGUL_TYPE; + } + case 16: break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + { + return StandardTokenizerInterface_Fields.YYEOF; + } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } +} diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std40/StandardTokenizerImpl40.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std40/StandardTokenizerImpl40.cs new file mode 100644 index 0000000000..46abc58578 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/Std40/StandardTokenizerImpl40.cs @@ -0,0 +1,1248 @@ +using Lucene.Net.Analysis.Tokenattributes; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Standard.Std40 +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + ///

+ /// This class implements StandardTokenizer using Unicode 6.1.0. + /// + /// @deprecated This class is only for exact backwards compatibility + /// + [Obsolete("This class is only for exact backwards compatibility")] + public sealed class StandardTokenizerImpl40 : IStandardTokenizerInterface + { + /** This character denotes the end of file */ + public static readonly int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static readonly int ZZ_BUFFERSIZE = 4096; + + /** lexical states */ + public const int YYINITIAL = 0; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static readonly int[] ZZ_LEXSTATE = { 0, 0 }; + + /** + * Translates characters to character classes + */ + private const string ZZ_CMAP_PACKED = + "\x0027\x0000\x0001\x0082\x0004\x0000\x0001\x0081\x0001\x0000\x0001\x0082\x0001\x0000\x000A\x007E\x0001\x0080\x0001\x0081" + + "\x0005\x0000\x001A\x007C\x0004\x0000\x0001\x0083\x0001\x0000\x001A\x007C\x002F\x0000\x0001\x007C\x0002\x0000\x0001\x007D" + + "\x0007\x0000\x0001\x007C\x0001\x0000\x0001\x0080\x0002\x0000\x0001\x007C\x0005\x0000\x0017\x007C\x0001\x0000\x001F\x007C" + + "\x0001\x0000\u01ca\x007C\x0004\x0000\x000C\x007C\x000E\x0000\x0005\x007C\x0007\x0000\x0001\x007C\x0001\x0000\x0001\x007C" + + "\x0011\x0000\x0070\x007D\x0005\x007C\x0001\x0000\x0002\x007C\x0002\x0000\x0004\x007C\x0001\x0081\x0007\x0000\x0001\x007C" + + "\x0001\x0080\x0003\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0014\x007C\x0001\x0000\x0053\x007C\x0001\x0000\x008B\x007C" + + "\x0001\x0000\x0007\x007D\x009E\x007C\x0009\x0000\x0026\x007C\x0002\x0000\x0001\x007C\x0007\x0000\x0027\x007C\x0001\x0000" + + "\x0001\x0081\x0007\x0000\x002D\x007D\x0001\x0000\x0001\x007D\x0001\x0000\x0002\x007D\x0001\x0000\x0002\x007D\x0001\x0000" + + "\x0001\x007D\x0008\x0000\x001B\x007C\x0005\x0000\x0004\x007C\x0001\x0080\x000B\x0000\x0005\x007D\x0007\x0000\x0002\x0081" + + "\x0002\x0000\x000B\x007D\x0005\x0000\x002B\x007C\x0015\x007D\x000A\x007E\x0001\x0000\x0001\x007E\x0001\x0081\x0001\x0000" + + "\x0002\x007C\x0001\x007D\x0063\x007C\x0001\x0000\x0001\x007C\x0007\x007D\x0001\x007D\x0001\x0000\x0006\x007D\x0002\x007C" + + "\x0002\x007D\x0001\x0000\x0004\x007D\x0002\x007C\x000A\x007E\x0003\x007C\x0002\x0000\x0001\x007C\x000F\x0000\x0001\x007D" + + "\x0001\x007C\x0001\x007D\x001E\x007C\x001B\x007D\x0002\x0000\x0059\x007C\x000B\x007D\x0001\x007C\x000E\x0000\x000A\x007E" + + "\x0021\x007C\x0009\x007D\x0002\x007C\x0002\x0000\x0001\x0081\x0001\x0000\x0001\x007C\x0005\x0000\x0016\x007C\x0004\x007D" + + "\x0001\x007C\x0009\x007D\x0001\x007C\x0003\x007D\x0001\x007C\x0005\x007D\x0012\x0000\x0019\x007C\x0003\x007D\x0044\x0000" + + "\x0001\x007C\x0001\x0000\x000B\x007C\x0037\x0000\x001B\x007D\x0001\x0000\x0004\x007D\x0036\x007C\x0003\x007D\x0001\x007C" + + "\x0012\x007D\x0001\x007C\x0007\x007D\x000A\x007C\x0002\x007D\x0002\x0000\x000A\x007E\x0001\x0000\x0007\x007C\x0001\x0000" + + "\x0007\x007C\x0001\x0000\x0003\x007D\x0001\x0000\x0008\x007C\x0002\x0000\x0002\x007C\x0002\x0000\x0016\x007C\x0001\x0000" + + "\x0007\x007C\x0001\x0000\x0001\x007C\x0003\x0000\x0004\x007C\x0002\x0000\x0001\x007D\x0001\x007C\x0007\x007D\x0002\x0000" + + "\x0002\x007D\x0002\x0000\x0003\x007D\x0001\x007C\x0008\x0000\x0001\x007D\x0004\x0000\x0002\x007C\x0001\x0000\x0003\x007C" + + "\x0002\x007D\x0002\x0000\x000A\x007E\x0002\x007C\x000F\x0000\x0003\x007D\x0001\x0000\x0006\x007C\x0004\x0000\x0002\x007C" + + "\x0002\x0000\x0016\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0002\x007C\x0001\x0000\x0002\x007C\x0001\x0000\x0002\x007C" + + "\x0002\x0000\x0001\x007D\x0001\x0000\x0005\x007D\x0004\x0000\x0002\x007D\x0002\x0000\x0003\x007D\x0003\x0000\x0001\x007D" + + "\x0007\x0000\x0004\x007C\x0001\x0000\x0001\x007C\x0007\x0000\x000A\x007E\x0002\x007D\x0003\x007C\x0001\x007D\x000B\x0000" + + "\x0003\x007D\x0001\x0000\x0009\x007C\x0001\x0000\x0003\x007C\x0001\x0000\x0016\x007C\x0001\x0000\x0007\x007C\x0001\x0000" + + "\x0002\x007C\x0001\x0000\x0005\x007C\x0002\x0000\x0001\x007D\x0001\x007C\x0008\x007D\x0001\x0000\x0003\x007D\x0001\x0000" + + "\x0003\x007D\x0002\x0000\x0001\x007C\x000F\x0000\x0002\x007C\x0002\x007D\x0002\x0000\x000A\x007E\x0011\x0000\x0003\x007D" + + "\x0001\x0000\x0008\x007C\x0002\x0000\x0002\x007C\x0002\x0000\x0016\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0002\x007C" + + "\x0001\x0000\x0005\x007C\x0002\x0000\x0001\x007D\x0001\x007C\x0007\x007D\x0002\x0000\x0002\x007D\x0002\x0000\x0003\x007D" + + "\x0008\x0000\x0002\x007D\x0004\x0000\x0002\x007C\x0001\x0000\x0003\x007C\x0002\x007D\x0002\x0000\x000A\x007E\x0001\x0000" + + "\x0001\x007C\x0010\x0000\x0001\x007D\x0001\x007C\x0001\x0000\x0006\x007C\x0003\x0000\x0003\x007C\x0001\x0000\x0004\x007C" + + "\x0003\x0000\x0002\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0002\x007C\x0003\x0000\x0002\x007C\x0003\x0000\x0003\x007C" + + "\x0003\x0000\x000C\x007C\x0004\x0000\x0005\x007D\x0003\x0000\x0003\x007D\x0001\x0000\x0004\x007D\x0002\x0000\x0001\x007C" + + "\x0006\x0000\x0001\x007D\x000E\x0000\x000A\x007E\x0011\x0000\x0003\x007D\x0001\x0000\x0008\x007C\x0001\x0000\x0003\x007C" + + "\x0001\x0000\x0017\x007C\x0001\x0000\x000A\x007C\x0001\x0000\x0005\x007C\x0003\x0000\x0001\x007C\x0007\x007D\x0001\x0000" + + "\x0003\x007D\x0001\x0000\x0004\x007D\x0007\x0000\x0002\x007D\x0001\x0000\x0002\x007C\x0006\x0000\x0002\x007C\x0002\x007D" + + "\x0002\x0000\x000A\x007E\x0012\x0000\x0002\x007D\x0001\x0000\x0008\x007C\x0001\x0000\x0003\x007C\x0001\x0000\x0017\x007C" + + "\x0001\x0000\x000A\x007C\x0001\x0000\x0005\x007C\x0002\x0000\x0001\x007D\x0001\x007C\x0007\x007D\x0001\x0000\x0003\x007D" + + "\x0001\x0000\x0004\x007D\x0007\x0000\x0002\x007D\x0007\x0000\x0001\x007C\x0001\x0000\x0002\x007C\x0002\x007D\x0002\x0000" + + "\x000A\x007E\x0001\x0000\x0002\x007C\x000F\x0000\x0002\x007D\x0001\x0000\x0008\x007C\x0001\x0000\x0003\x007C\x0001\x0000" + + "\x0029\x007C\x0002\x0000\x0001\x007C\x0007\x007D\x0001\x0000\x0003\x007D\x0001\x0000\x0004\x007D\x0001\x007C\x0008\x0000" + + "\x0001\x007D\x0008\x0000\x0002\x007C\x0002\x007D\x0002\x0000\x000A\x007E\x000A\x0000\x0006\x007C\x0002\x0000\x0002\x007D" + + "\x0001\x0000\x0012\x007C\x0003\x0000\x0018\x007C\x0001\x0000\x0009\x007C\x0001\x0000\x0001\x007C\x0002\x0000\x0007\x007C" + + "\x0003\x0000\x0001\x007D\x0004\x0000\x0006\x007D\x0001\x0000\x0001\x007D\x0001\x0000\x0008\x007D\x0012\x0000\x0002\x007D" + + "\x000D\x0000\x0030\x0084\x0001\x0085\x0002\x0084\x0007\x0085\x0005\x0000\x0007\x0084\x0008\x0085\x0001\x0000\x000A\x007E" + + "\x0027\x0000\x0002\x0084\x0001\x0000\x0001\x0084\x0002\x0000\x0002\x0084\x0001\x0000\x0001\x0084\x0002\x0000\x0001\x0084" + + "\x0006\x0000\x0004\x0084\x0001\x0000\x0007\x0084\x0001\x0000\x0003\x0084\x0001\x0000\x0001\x0084\x0001\x0000\x0001\x0084" + + "\x0002\x0000\x0002\x0084\x0001\x0000\x0004\x0084\x0001\x0085\x0002\x0084\x0006\x0085\x0001\x0000\x0002\x0085\x0001\x0084" + + "\x0002\x0000\x0005\x0084\x0001\x0000\x0001\x0084\x0001\x0000\x0006\x0085\x0002\x0000\x000A\x007E\x0002\x0000\x0004\x0084" + + "\x0020\x0000\x0001\x007C\x0017\x0000\x0002\x007D\x0006\x0000\x000A\x007E\x000B\x0000\x0001\x007D\x0001\x0000\x0001\x007D" + + "\x0001\x0000\x0001\x007D\x0004\x0000\x0002\x007D\x0008\x007C\x0001\x0000\x0024\x007C\x0004\x0000\x0014\x007D\x0001\x0000" + + "\x0002\x007D\x0005\x007C\x000B\x007D\x0001\x0000\x0024\x007D\x0009\x0000\x0001\x007D\x0039\x0000\x002B\x0084\x0014\x0085" + + "\x0001\x0084\x000A\x007E\x0006\x0000\x0006\x0084\x0004\x0085\x0004\x0084\x0003\x0085\x0001\x0084\x0003\x0085\x0002\x0084" + + "\x0007\x0085\x0003\x0084\x0004\x0085\x000D\x0084\x000C\x0085\x0001\x0084\x0001\x0085\x000A\x007E\x0004\x0085\x0002\x0084" + + "\x0026\x007C\x0001\x0000\x0001\x007C\x0005\x0000\x0001\x007C\x0002\x0000\x002B\x007C\x0001\x0000\x0004\x007C\u0100\x0088" + + "\x0049\x007C\x0001\x0000\x0004\x007C\x0002\x0000\x0007\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0004\x007C\x0002\x0000" + + "\x0029\x007C\x0001\x0000\x0004\x007C\x0002\x0000\x0021\x007C\x0001\x0000\x0004\x007C\x0002\x0000\x0007\x007C\x0001\x0000" + + "\x0001\x007C\x0001\x0000\x0004\x007C\x0002\x0000\x000F\x007C\x0001\x0000\x0039\x007C\x0001\x0000\x0004\x007C\x0002\x0000" + + "\x0043\x007C\x0002\x0000\x0003\x007D\x0020\x0000\x0010\x007C\x0010\x0000\x0055\x007C\x000C\x0000\u026c\x007C\x0002\x0000" + + "\x0011\x007C\x0001\x0000\x001A\x007C\x0005\x0000\x004B\x007C\x0003\x0000\x0003\x007C\x000F\x0000\x000D\x007C\x0001\x0000" + + "\x0004\x007C\x0003\x007D\x000B\x0000\x0012\x007C\x0003\x007D\x000B\x0000\x0012\x007C\x0002\x007D\x000C\x0000\x000D\x007C" + + "\x0001\x0000\x0003\x007C\x0001\x0000\x0002\x007D\x000C\x0000\x0034\x0084\x0020\x0085\x0003\x0000\x0001\x0084\x0004\x0000" + + "\x0001\x0084\x0001\x0085\x0002\x0000\x000A\x007E\x0021\x0000\x0003\x007D\x0002\x0000\x000A\x007E\x0006\x0000\x0058\x007C" + + "\x0008\x0000\x0029\x007C\x0001\x007D\x0001\x007C\x0005\x0000\x0046\x007C\x000A\x0000\x001D\x007C\x0003\x0000\x000C\x007D" + + "\x0004\x0000\x000C\x007D\x000A\x0000\x000A\x007E\x001E\x0084\x0002\x0000\x0005\x0084\x000B\x0000\x002C\x0084\x0004\x0000" + + "\x0011\x0085\x0007\x0084\x0002\x0085\x0006\x0000\x000A\x007E\x0001\x0084\x0003\x0000\x0002\x0084\x0020\x0000\x0017\x007C" + + "\x0005\x007D\x0004\x0000\x0035\x0084\x000A\x0085\x0001\x0000\x001D\x0085\x0002\x0000\x0001\x007D\x000A\x007E\x0006\x0000" + + "\x000A\x007E\x0006\x0000\x000E\x0084\x0052\x0000\x0005\x007D\x002F\x007C\x0011\x007D\x0007\x007C\x0004\x0000\x000A\x007E" + + "\x0011\x0000\x0009\x007D\x000C\x0000\x0003\x007D\x001E\x007C\x000D\x007D\x0002\x007C\x000A\x007E\x002C\x007C\x000E\x007D" + + "\x000C\x0000\x0024\x007C\x0014\x007D\x0008\x0000\x000A\x007E\x0003\x0000\x0003\x007C\x000A\x007E\x0024\x007C\x0052\x0000" + + "\x0003\x007D\x0001\x0000\x0015\x007D\x0004\x007C\x0001\x007D\x0004\x007C\x0003\x007D\x0002\x007C\x0009\x0000\x00C0\x007C" + + "\x0027\x007D\x0015\x0000\x0004\x007D\u0116\x007C\x0002\x0000\x0006\x007C\x0002\x0000\x0026\x007C\x0002\x0000\x0006\x007C" + + "\x0002\x0000\x0008\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x001F\x007C" + + "\x0002\x0000\x0035\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0001\x007C\x0003\x0000\x0003\x007C\x0001\x0000\x0007\x007C" + + "\x0003\x0000\x0004\x007C\x0002\x0000\x0006\x007C\x0004\x0000\x000D\x007C\x0005\x0000\x0003\x007C\x0001\x0000\x0007\x007C" + + "\x000F\x0000\x0002\x007D\x0002\x007D\x0008\x0000\x0002\x0082\x000A\x0000\x0001\x0082\x0002\x0000\x0001\x0080\x0002\x0000" + + "\x0005\x007D\x0010\x0000\x0002\x0083\x0003\x0000\x0001\x0081\x000F\x0000\x0001\x0083\x000B\x0000\x0005\x007D\x0005\x0000" + + "\x0006\x007D\x0001\x0000\x0001\x007C\x000D\x0000\x0001\x007C\x0010\x0000\x000D\x007C\x0033\x0000\x0021\x007D\x0011\x0000" + + "\x0001\x007C\x0004\x0000\x0001\x007C\x0002\x0000\x000A\x007C\x0001\x0000\x0001\x007C\x0003\x0000\x0005\x007C\x0006\x0000" + + "\x0001\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0004\x007C\x0001\x0000\x000B\x007C\x0002\x0000" + + "\x0004\x007C\x0005\x0000\x0005\x007C\x0004\x0000\x0001\x007C\x0011\x0000\x0029\x007C\u032d\x0000\x0034\x007C\u0716\x0000" + + "\x002F\x007C\x0001\x0000\x002F\x007C\x0001\x0000\x0085\x007C\x0006\x0000\x0004\x007C\x0003\x007D\x0002\x007C\x000C\x0000" + + "\x0026\x007C\x0001\x0000\x0001\x007C\x0005\x0000\x0001\x007C\x0002\x0000\x0038\x007C\x0007\x0000\x0001\x007C\x000F\x0000" + + "\x0001\x007D\x0017\x007C\x0009\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0007\x007C" + + "\x0001\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0007\x007C\x0001\x0000\x0020\x007D" + + "\x002F\x0000\x0001\x007C\x0050\x0000\x001A\x0086\x0001\x0000\x0059\x0086\x000C\x0000\x00D6\x0086\x002F\x0000\x0001\x007C" + + "\x0001\x0000\x0001\x0086\x0019\x0000\x0009\x0086\x0004\x007D\x0002\x007D\x0001\x0000\x0005\x007F\x0002\x0000\x0003\x0086" + + "\x0001\x007C\x0001\x007C\x0004\x0000\x0056\x0087\x0002\x0000\x0002\x007D\x0002\x007F\x0003\x0087\x005B\x007F\x0001\x0000" + + "\x0004\x007F\x0005\x0000\x0029\x007C\x0003\x0000\x005E\x0088\x0011\x0000\x001B\x007C\x0035\x0000\x0010\x007F\x001F\x0000" + + "\x0041\x0000\x001F\x0000\x0051\x0000\x002F\x007F\x0001\x0000\x0058\x007F\x00A8\x0000\u19b6\x0086\x004A\x0000\u51cd\x0086" + + "\x0033\x0000\u048d\x007C\x0043\x0000\x002E\x007C\x0002\x0000\u010d\x007C\x0003\x0000\x0010\x007C\x000A\x007E\x0002\x007C" + + "\x0014\x0000\x002F\x007C\x0004\x007D\x0001\x0000\x000A\x007D\x0001\x0000\x0019\x007C\x0007\x0000\x0001\x007D\x0050\x007C" + + "\x0002\x007D\x0025\x0000\x0009\x007C\x0002\x0000\x0067\x007C\x0002\x0000\x0004\x007C\x0001\x0000\x0004\x007C\x000C\x0000" + + "\x000B\x007C\x004D\x0000\x000A\x007C\x0001\x007D\x0003\x007C\x0001\x007D\x0004\x007C\x0001\x007D\x0017\x007C\x0005\x007D" + + "\x0018\x0000\x0034\x007C\x000C\x0000\x0002\x007D\x0032\x007C\x0011\x007D\x000B\x0000\x000A\x007E\x0006\x0000\x0012\x007D" + + "\x0006\x007C\x0003\x0000\x0001\x007C\x0004\x0000\x000A\x007E\x001C\x007C\x0008\x007D\x0002\x0000\x0017\x007C\x000D\x007D" + + "\x000C\x0000\x001D\x0088\x0003\x0000\x0004\x007D\x002F\x007C\x000E\x007D\x000E\x0000\x0001\x007C\x000A\x007E\x0026\x0000" + + "\x0029\x007C\x000E\x007D\x0009\x0000\x0003\x007C\x0001\x007D\x0008\x007C\x0002\x007D\x0002\x0000\x000A\x007E\x0006\x0000" + + "\x001B\x0084\x0001\x0085\x0004\x0000\x0030\x0084\x0001\x0085\x0001\x0084\x0003\x0085\x0002\x0084\x0002\x0085\x0005\x0084" + + "\x0002\x0085\x0001\x0084\x0001\x0085\x0001\x0084\x0018\x0000\x0005\x0084\x000B\x007C\x0005\x007D\x0002\x0000\x0003\x007C" + + "\x0002\x007D\x000A\x0000\x0006\x007C\x0002\x0000\x0006\x007C\x0002\x0000\x0006\x007C\x0009\x0000\x0007\x007C\x0001\x0000" + + "\x0007\x007C\x0091\x0000\x0023\x007C\x0008\x007D\x0001\x0000\x0002\x007D\x0002\x0000\x000A\x007E\x0006\x0000\u2ba4\x0088" + + "\x000C\x0000\x0017\x0088\x0004\x0000\x0031\x0088\x0004\x0000\x0001\x0024\x0001\x0020\x0001\x0037\x0001\x0034\x0001\x001B" + + "\x0001\x0018\x0002\x0000\x0001\x0014\x0001\x0011\x0002\x0000\x0001\x000F\x0001\x000D\x000C\x0000\x0001\x0003\x0001\x0006" + + "\x0010\x0000\x0001\x006E\x0007\x0000\x0001\x0049\x0001\x0008\x0005\x0000\x0001\x0001\x0001\x007A\x0003\x0000\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0073" + + "\x0001\x0074\x0001\x0073\x0001\x0073\x0001\x0073\x0001\x0078\x0001\x0076\x000F\x0000\x0001\x0070\u02c1\x0000\x0001\x004C" + + "\x00BF\x0000\x0001\x006F\x0001\x004D\x0001\x000E\x0003\x0077\x0002\x0032\x0001\x0077\x0001\x0032\x0002\x0077\x0001\x001E" + + "\x0011\x0077\x0002\x0046\x0007\x004F\x0001\x004E\x0007\x004F\x0007\x0042\x0001\x001F\x0001\x0042\x0001\x0058\x0002\x0036" + + "\x0001\x0035\x0001\x0058\x0001\x0036\x0001\x0035\x0008\x0058\x0002\x0047\x0005\x0043\x0002\x003D\x0005\x0043\x0001\x0012" + + "\x0008\x002B\x0005\x0013\x0003\x0021\x000A\x0067\x0010\x0021\x0003\x0033\x001A\x0023\x0001\x0022\x0002\x0031\x0002\x006C" + + "\x0001\x006D\x0002\x006C\x0002\x006D\x0002\x006C\x0001\x006D\x0003\x0031\x0001\x0030\x0002\x0031\x000A\x0048\x0001\x0056" + + "\x0001\x0028\x0001\x0025\x0001\x0048\x0006\x0028\x0001\x0025\x000B\x0028\x0019\x0031\x0007\x0028\x000A\x0068\x0001\x0028" + + "\x0005\x000B\x0003\x0057\x0003\x0041\x0001\x0040\x0004\x0041\x0002\x0040\x0008\x0041\x0001\x0040\x0007\x001D\x0001\x001C" + + "\x0002\x001D\x0007\x0041\x000E\x0057\x0001\x0061\x0004\x006A\x0001\x0004\x0004\x0069\x0001\x0004\x0005\x0060\x0001\x005F" + + "\x0001\x0060\x0003\x005F\x0007\x0060\x0001\x005F\x0013\x0060\x0005\x004B\x0003\x0060\x0006\x004B\x0002\x004B\x0006\x004A" + + "\x0005\x004A\x0003\x005C\x0002\x0041\x0007\x005B\x001E\x0041\x0004\x005B\x0005\x0041\x0005\x0057\x0006\x0055\x0002\x0057" + + "\x0001\x0055\x0004\x001D\x000B\x005E\x000A\x0069\x0016\x005E\x000D\x000B\x0001\x005D\x0002\x000B\x0001\x007B\x0003\x0062" + + "\x0001\x000B\x0002\x0062\x0005\x0071\x0004\x0062\x0004\x0072\x0001\x0071\x0003\x0072\x0001\x0071\x0005\x0072\x0002\x0038" + + "\x0001\x003B\x0002\x0038\x0001\x003B\x0001\x0038\x0002\x003B\x0001\x0038\x0001\x003B\x000A\x0038\x0001\x003B\x0004\x0005" + + "\x0001\x0064\x0001\x0063\x0001\x0065\x0001\x000A\x0003\x0075\x0001\x0065\x0002\x0075\x0001\x0059\x0002\x005A\x0002\x0075" + + "\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0003\x000A\x0001\x0075\x0002\x000A\x0001\x0075" + + "\x0001\x000A\x0002\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075\x0001\x000A\x0001\x0075" + + "\x0001\x000A\x0001\x003E\x0002\x003A\x0001\x003E\x0001\x003A\x0002\x003E\x0004\x003A\x0001\x003E\x0007\x003A\x0001\x003E" + + "\x0004\x003A\x0001\x003E\x0004\x003A\x0001\x0075\x0001\x000A\x0001\x0075\x000A\x0019\x0001\x002F\x0011\x0019\x0001\x002F" + + "\x0003\x001A\x0001\x002F\x0003\x0019\x0001\x002F\x0001\x0019\x0002\x0002\x0002\x0019\x0001\x002F\x000D\x0054\x0004\x0027" + + "\x0004\x002C\x0001\x0066\x0001\x002E\x0008\x0066\x0007\x002C\x0006\x0075\x0004\x0015\x0001\x0017\x001F\x0015\x0001\x0017" + + "\x0004\x0015\x0015\x0045\x0001\x0079\x0009\x0045\x0011\x0016\x0005\x0045\x0001\x0007\x000A\x002D\x0005\x0045\x0006\x0044" + + "\x0004\x003E\x0001\x003F\x0001\x0016\x0005\x0053\x000A\x0051\x000F\x0053\x0001\x003C\x0003\x0039\x000C\x0050\x0001\x0009" + + "\x0009\x0026\x0001\x002A\x0005\x0026\x0004\x0052\x000B\x0029\x0002\x000C\x0009\x0026\x0001\x002A\x0019\x0026\x0001\x002A" + + "\x0004\x0009\x0004\x0026\x0002\x002A\x0002\x006B\x0001\x0010\x0005\x006B\x002A\x0010\u1900\x0000\u016e\x0086\x0002\x0000" + + "\x006A\x0086\x0026\x0000\x0007\x007C\x000C\x0000\x0005\x007C\x0005\x0000\x0001\x007C\x0001\x007D\x000A\x007C\x0001\x0000" + + "\x000D\x007C\x0001\x0000\x0005\x007C\x0001\x0000\x0001\x007C\x0001\x0000\x0002\x007C\x0001\x0000\x0002\x007C\x0001\x0000" + + "\x006C\x007C\x0021\x0000\u016b\x007C\x0012\x0000\x0040\x007C\x0002\x0000\x0036\x007C\x0028\x0000\x000C\x007C\x0004\x0000" + + "\x0010\x007D\x0001\x0081\x0002\x0000\x0001\x0080\x0001\x0081\x000B\x0000\x0007\x007D\x000C\x0000\x0002\x0083\x0018\x0000" + + "\x0003\x0083\x0001\x0081\x0001\x0000\x0001\x0082\x0001\x0000\x0001\x0081\x0001\x0080\x001A\x0000\x0005\x007C\x0001\x0000" + + "\x0087\x007C\x0002\x0000\x0001\x007D\x0007\x0000\x0001\x0082\x0004\x0000\x0001\x0081\x0001\x0000\x0001\x0082\x0001\x0000" + + "\x000A\x007E\x0001\x0080\x0001\x0081\x0005\x0000\x001A\x007C\x0004\x0000\x0001\x0083\x0001\x0000\x001A\x007C\x000B\x0000" + + "\x0038\x007F\x0002\x007D\x001F\x0088\x0003\x0000\x0006\x0088\x0002\x0000\x0006\x0088\x0002\x0000\x0006\x0088\x0002\x0000" + + "\x0003\x0088\x001C\x0000\x0003\x007D\x0004\x0000"; + + /** + * Translates characters to character classes + */ + private static readonly char[] ZZ_CMAP = ZzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static readonly int[] ZZ_ACTION = ZzUnpackAction(); + + private const string ZZ_ACTION_PACKED_0 = + "\x0001\x0000\x0016\x0001\x0001\x0002\x0001\x0003\x0001\x0004\x0001\x0001\x0001\x0005\x0001\x0006" + + "\x0001\x0007\x0001\x0008\x0010\x0000\x0001\x0002\x0001\x0000\x0001\x0002\x000A\x0000\x0001\x0003" + + "\x0011\x0000\x0001\x0002\x004D\x0000"; + + private static int[] ZzUnpackAction() + { + int[] result = new int[156]; + int offset = 0; + offset = ZzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAction(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static readonly int[] ZZ_ROWMAP = ZzUnpackRowMap(); + + private static readonly string ZZ_ROWMAP_PACKED_0 = + "\x0000\x0000\x0000\x0089\x0000\u0112\x0000\u019b\x0000\u0224\x0000\u02ad\x0000\u0336\x0000\u03bf" + + "\x0000\u0448\x0000\u04d1\x0000\u055a\x0000\u05e3\x0000\u066c\x0000\u06f5\x0000\u077e\x0000\u0807" + + "\x0000\u0890\x0000\u0919\x0000\u09a2\x0000\u0a2b\x0000\u0ab4\x0000\u0b3d\x0000\u0bc6\x0000\u0c4f" + + "\x0000\u0cd8\x0000\u0d61\x0000\u0dea\x0000\u0e73\x0000\u0efc\x0000\u0f85\x0000\u100e\x0000\u0112" + + "\x0000\u019b\x0000\u1097\x0000\u1120\x0000\u0336\x0000\u03bf\x0000\u0448\x0000\u04d1\x0000\u11a9" + + "\x0000\u1232\x0000\u12bb\x0000\u1344\x0000\u077e\x0000\u13cd\x0000\u1456\x0000\u14df\x0000\u1568" + + "\x0000\u15f1\x0000\u167a\x0000\u1703\x0000\u02ad\x0000\u178c\x0000\u1815\x0000\u066c\x0000\u189e" + + "\x0000\u1927\x0000\u19b0\x0000\u1a39\x0000\u1ac2\x0000\u1b4b\x0000\u1bd4\x0000\u1c5d\x0000\u1ce6" + + "\x0000\u1d6f\x0000\u1df8\x0000\u1e81\x0000\u1f0a\x0000\u1f93\x0000\u201c\x0000\u20a5\x0000\u212e" + + "\x0000\u21b7\x0000\u2240\x0000\u22c9\x0000\u2352\x0000\u23db\x0000\u0dea\x0000\u2464\x0000\u24ed" + + "\x0000\u2576\x0000\u25ff\x0000\u2688\x0000\u2711\x0000\u279a\x0000\u2823\x0000\u28ac\x0000\u2935" + + "\x0000\u29be\x0000\u2a47\x0000\u2ad0\x0000\u2b59\x0000\u2be2\x0000\u2c6b\x0000\u2cf4\x0000\u2d7d" + + "\x0000\u2e06\x0000\u2e8f\x0000\u2f18\x0000\u2fa1\x0000\u302a\x0000\u30b3\x0000\u313c\x0000\u31c5" + + "\x0000\u324e\x0000\u32d7\x0000\u3360\x0000\u33e9\x0000\u3472\x0000\u34fb\x0000\u3584\x0000\u360d" + + "\x0000\u3696\x0000\u371f\x0000\u37a8\x0000\u3831\x0000\u38ba\x0000\u3943\x0000\u39cc\x0000\u3a55" + + "\x0000\u3ade\x0000\u3b67\x0000\u3bf0\x0000\u3c79\x0000\u3d02\x0000\u3d8b\x0000\u3e14\x0000\u3e9d" + + "\x0000\u3f26\x0000\u3faf\x0000\u4038\x0000\u40c1\x0000\u414a\x0000\u41d3\x0000\u425c\x0000\u42e5" + + "\x0000\u436e\x0000\u43f7\x0000\u4480\x0000\u4509\x0000\u4592\x0000\u461b\x0000\u46a4\x0000\u472d" + + "\x0000\u47b6\x0000\u483f\x0000\u48c8\x0000\u4951\x0000\u49da\x0000\u4a63\x0000\u4aec\x0000\u4b75" + + "\x0000\u4bfe\x0000\u4c87\x0000\u4d10\x0000\u4d99"; + + private static int[] ZzUnpackRowMap() + { + int[] result = new int[156]; + int offset = 0; + offset = ZzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackRowMap(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int high = packed[i++] << 16; + result[j++] = high | packed[i++]; + } + return j; + } + + /** + * The transition table of the DFA + */ + private static readonly int[] ZZ_TRANS = ZzUnpackTrans(); + + private const string ZZ_TRANS_PACKED_0 = + "\x0001\x0002\x0001\x0003\x0001\x0002\x0001\x0004\x0002\x0002\x0001\x0005\x0001\x0002\x0001\x0006" + + "\x0004\x0002\x0001\x0007\x0001\x0002\x0001\x0008\x0001\x0002\x0001\x0009\x0002\x0002\x0001\x000A" + + "\x0003\x0002\x0001\x000B\x0002\x0002\x0001\x000C\x0004\x0002\x0001\x000D\x0003\x0002\x0001\x000E" + + "\x000F\x0002\x0001\x000F\x0002\x0002\x0001\x0010\x0036\x0002\x0001\x0011\x0001\x0002\x0001\x0012" + + "\x0002\x0002\x0001\x0013\x0001\x0014\x0001\x0002\x0001\x0015\x0001\x0002\x0001\x0016\x0001\x0002" + + "\x0001\x0017\x0001\x0002\x0001\x0018\x0001\x0002\x0001\x0019\x0001\x001A\x0003\x0002\x0001\x001B" + + "\x0002\x001C\x0001\x001D\x0001\x001E\x0001\x001F\x008B\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x000E\x0000\x0001\x0018\x000D\x0000\x0001\x0018\x0010\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0019\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0008\x0000\x0002\x0018" + + "\x000D\x0000\x0002\x0018\x0008\x0000\x0001\x0018\x0011\x0000\x0002\x0018\x0005\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0008\x0000\x0004\x0018\x0001\x0000\x0003\x0018" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0004\x0018" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0004\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0003\x0018" + + "\x0005\x0000\x0004\x0018\x0002\x0000\x0008\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0004\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0014\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018" + + "\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0017\x0000\x0001\x0018\x0033\x0000\x0001\x0018" + + "\x0014\x0000\x0001\x0018\x0003\x0000\x0004\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0019" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0002\x0000\x0003\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018\x0001\x0000\x0003\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0004\x0018" + + "\x0001\x0000\x0002\x0018\x0002\x0000\x0008\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0009\x0018" + + "\x0001\x0000\x0008\x0018\x0001\x0000\x000B\x0018\x0001\x0019\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x001B\x0000\x0001\x0018\x000F\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0013\x0000" + + "\x0001\x0018\x0006\x0000\x0003\x0018\x001F\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0013\x0000" + + "\x0001\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0004\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0001\x0000" + + "\x0002\x0018\x0001\x0000\x0004\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x000F\x0018\x0001\x0000" + + "\x0002\x0018\x0001\x0000\x0011\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0021\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x001B\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x000A\x0000" + + "\x0002\x0018\x000B\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0006\x0000" + + "\x0001\x0018\x0004\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0005\x0000\x0003\x0018\x0008\x0000" + + "\x0001\x0018\x0016\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0001\x0000" + + "\x0002\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0003\x0000" + + "\x0002\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x0004\x0018\x0001\x0000" + + "\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0009\x0018\x0001\x0000" + + "\x0002\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0001\x0000\x000C\x0018\x0001\x0000" + + "\x0002\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0018\x0018\x0001\x0000" + + "\x0002\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x000F\x0000\x0001\x0018\x0016\x0000" + + "\x0002\x0018\x0013\x0000\x0001\x0019\x0001\x0018\x0036\x0000\x0001\x0019\x0026\x0000\x0001\x0019" + + "\x0017\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x000D\x0000\x0003\x0018" + + "\x0003\x0000\x0001\x0018\x0007\x0000\x0002\x0018\x000B\x0000\x0001\x0018\x000B\x0000\x0004\x0019" + + "\x0001\x0000\x0002\x0018\x0009\x0000\x0001\x0018\x001F\x0000\x0001\x0018\x0003\x0000\x0002\x0018" + + "\x000A\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0007\x0000\x0001\x0018\x0006\x0000\x0002\x0018" + + "\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0004\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0005\x0000\x0003\x0018\x0008\x0000\x0001\x0018\x000E\x0000\x0001\x0018\x0004\x0000\x0002\x0019" + + "\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018" + + "\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0006\x0000\x0002\x0018" + + "\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x001D\x0000\x0001\x0018\x000F\x0000\x0002\x0018" + + "\x0012\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x000B\x0000\x0001\x0018\x0003\x0000\x0002\x0018" + + "\x0005\x0000\x0003\x0018\x0008\x0000\x0001\x0018\x0016\x0000\x0001\x0018\x0007\x0000\x0001\x0018" + + "\x0018\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0008\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x005A\x0000\x0001\x001E\x0021\x0000\x0001\x001A\x001D\x0000\x0001\x001D" + + "\x0006\x0000\x0001\x001D\x0002\x0000\x0001\x001D\x0003\x0000\x0002\x001D\x0008\x0000\x0004\x001D" + + "\x0001\x0000\x0003\x001D\x0001\x0000\x0001\x001D\x0002\x0000\x0001\x001D\x0002\x0000\x0001\x001D" + + "\x0004\x0000\x0004\x001D\x0001\x0000\x0002\x001D\x0006\x0000\x0001\x001D\x0002\x0000\x0004\x001D" + + "\x0002\x0000\x0003\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0003\x001D\x0005\x0000\x0004\x001D" + + "\x0002\x0000\x0008\x001D\x0004\x0000\x0004\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0002\x001D\x0004\x0000\x0001\x001D\x0003\x0000\x0001\x001D\x000F\x0000\x0001\x001D" + + "\x0001\x0000\x0002\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0004\x001D\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x0002\x001D" + + "\x0001\x0000\x0004\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x000F\x001D\x0001\x0000\x0002\x001D" + + "\x0001\x0000\x0011\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0021\x001D\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0002\x001D\x0002\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001D\x000F\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0001\x001D" + + "\x0001\x0000\x0004\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D" + + "\x0002\x0000\x0001\x001D\x0002\x0000\x0002\x001D\x0001\x0000\x0004\x001D\x0001\x0000\x0003\x001D" + + "\x0001\x0000\x000F\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0011\x001D\x0001\x0000\x0002\x001D" + + "\x0001\x0000\x0021\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0002\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x001B\x0000\x0001\x001D" + + "\x000F\x0000\x0001\x001D\x0013\x0000\x0001\x001D\x001A\x0000\x0001\x001D\x0021\x0000\x0001\x001D" + + "\x0007\x0000\x0001\x001D\x0013\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0003\x0000\x0004\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0003\x001D" + + "\x0001\x0000\x0002\x001D\x0001\x0000\x0004\x001D\x0001\x0000\x0003\x001D\x0001\x0000\x0008\x001D" + + "\x0001\x0000\x0006\x001D\x0001\x0000\x0002\x001D\x0001\x0000\x0011\x001D\x0001\x0000\x0002\x001D" + + "\x0001\x0000\x0021\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0002\x0000\x0001\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0088\x0000\x0001\x001E" + + "\x000E\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0002\x0000\x0001\x0022\x0001\x0000\x0001\x0023" + + "\x0004\x0000\x0001\x0024\x0001\x0000\x0001\x0025\x0001\x0000\x0001\x0026\x0002\x0000\x0001\x0027" + + "\x0003\x0000\x0001\x0028\x0002\x0000\x0001\x0029\x0004\x0000\x0001\x002A\x0003\x0000\x0001\x002B" + + "\x000F\x0000\x0001\x002C\x0002\x0000\x0001\x002D\x0011\x0000\x0001\x002E\x0002\x0000\x0001\x002F" + + "\x002F\x0000\x0002\x0018\x0001\x0030\x0001\x0000\x0001\x0031\x0001\x0000\x0001\x0031\x0001\x0032" + + "\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021" + + "\x0002\x0000\x0001\x0033\x0001\x0000\x0001\x0034\x0004\x0000\x0001\x0024\x0001\x0000\x0001\x0025" + + "\x0001\x0000\x0001\x0026\x0002\x0000\x0001\x0027\x0003\x0000\x0001\x0035\x0002\x0000\x0001\x0036" + + "\x0004\x0000\x0001\x0037\x0003\x0000\x0001\x0038\x000F\x0000\x0001\x002C\x0002\x0000\x0001\x0039" + + "\x0011\x0000\x0001\x003A\x0002\x0000\x0001\x003B\x002F\x0000\x0001\x0018\x0002\x0019\x0002\x0000" + + "\x0002\x003C\x0001\x003D\x0001\x0000\x0001\x0019\x0002\x0000\x0001\x0018\x0006\x0000\x0001\x003E" + + "\x0011\x0000\x0001\x003F\x0002\x0000\x0001\x0040\x0008\x0000\x0001\x0041\x0012\x0000\x0001\x0042" + + "\x0011\x0000\x0001\x0043\x0002\x0000\x0001\x0044\x0021\x0000\x0001\x0045\x000E\x0000\x0001\x001A" + + "\x0001\x0000\x0001\x001A\x0003\x0000\x0001\x0032\x0001\x0000\x0001\x001A\x0004\x0000\x0001\x0020" + + "\x0001\x0000\x0001\x0021\x0002\x0000\x0001\x0046\x0001\x0000\x0001\x0034\x0004\x0000\x0001\x0024" + + "\x0001\x0000\x0001\x0025\x0001\x0000\x0001\x0026\x0002\x0000\x0001\x0027\x0003\x0000\x0001\x0047" + + "\x0002\x0000\x0001\x0048\x0004\x0000\x0001\x0037\x0003\x0000\x0001\x0049\x000F\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x004A\x0011\x0000\x0001\x004B\x0002\x0000\x0001\x004C\x0021\x0000\x0001\x004D" + + "\x000D\x0000\x0001\x0018\x0001\x004E\x0001\x0019\x0001\x004F\x0003\x0000\x0001\x004E\x0001\x0000" + + "\x0001\x004E\x0002\x0000\x0001\x0018\x0084\x0000\x0002\x001C\x0009\x0000\x0001\x0050\x0011\x0000" + + "\x0001\x0051\x0002\x0000\x0001\x0052\x0008\x0000\x0001\x0053\x0012\x0000\x0001\x0054\x0011\x0000" + + "\x0001\x0055\x0002\x0000\x0001\x0056\x0030\x0000\x0001\x001D\x0007\x0000\x0001\x001D\x0009\x0000" + + "\x0001\x0057\x0011\x0000\x0001\x0058\x0002\x0000\x0001\x0059\x0008\x0000\x0001\x005A\x0012\x0000" + + "\x0001\x005B\x0011\x0000\x0001\x005C\x0002\x0000\x0001\x005D\x0030\x0000\x0001\x001E\x0007\x0000" + + "\x0001\x001E\x0004\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0002\x0000\x0001\x005E\x0001\x0000" + + "\x0001\x0023\x0004\x0000\x0001\x0024\x0001\x0000\x0001\x0025\x0001\x0000\x0001\x0026\x0002\x0000" + + "\x0001\x0027\x0003\x0000\x0001\x005F\x0002\x0000\x0001\x0060\x0004\x0000\x0001\x002A\x0003\x0000" + + "\x0001\x0061\x000F\x0000\x0001\x002C\x0002\x0000\x0001\x0062\x0011\x0000\x0001\x0063\x0002\x0000" + + "\x0001\x0064\x002F\x0000\x0001\x0018\x0001\x001F\x0001\x0030\x0001\x0000\x0001\x0031\x0001\x0000" + + "\x0001\x0031\x0001\x0032\x0001\x0000\x0001\x001F\x0002\x0000\x0001\x001F\x0007\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x000B\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0008\x0000\x0001\x0018\x000A\x0000\x0004\x0018" + + "\x0025\x0000\x0001\x0018\x0014\x0000\x0001\x0018\x0003\x0000\x0004\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0030\x0002\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018" + + "\x0001\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0004\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0008\x0018\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0009\x0018\x0001\x0000\x0008\x0018\x0001\x0000\x000B\x0018\x0001\x0030\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x000F\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000" + + "\x0001\x0030\x0001\x0018\x0024\x0000\x0001\x0018\x0011\x0000\x0001\x0030\x0026\x0000\x0001\x0030" + + "\x0009\x0000\x0001\x0018\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0004\x0018" + + "\x0001\x0000\x0002\x0018\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0004\x0000\x0003\x0018\x0005\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000A\x0000\x0004\x0030" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x001F\x0000\x0001\x0018" + + "\x0003\x0000\x0002\x0018\x000A\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0007\x0000\x0001\x0018" + + "\x0006\x0000\x0002\x0018\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0004\x0000\x0002\x0018" + + "\x0002\x0000\x0002\x0018\x0005\x0000\x0003\x0018\x0008\x0000\x0001\x0018\x000E\x0000\x0001\x0018" + + "\x0004\x0000\x0002\x0030\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018" + + "\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0016\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0005\x0018\x0004\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0057\x0000\x0002\x0018\x000D\x0000\x0004\x0018\x0030\x0000\x0001\x0018" + + "\x000D\x0000\x0002\x0018\x0008\x0000\x0002\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0009\x0000\x0001\x0018\x0009\x0000\x0002\x0018\x0006\x0000\x0001\x0018\x0002\x0000\x0004\x0018" + + "\x0003\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x0003\x0018\x0005\x0000\x0001\x0018" + + "\x0001\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x0004\x0018\x0005\x0000\x0001\x0018" + + "\x0001\x0000\x0002\x0018\x001F\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0002\x0000\x0001\x0065" + + "\x0001\x0000\x0001\x0023\x0004\x0000\x0001\x0024\x0001\x0000\x0001\x0025\x0001\x0000\x0001\x0026" + + "\x0002\x0000\x0001\x0027\x0003\x0000\x0001\x0066\x0002\x0000\x0001\x0067\x0004\x0000\x0001\x002A" + + "\x0003\x0000\x0001\x0068\x000F\x0000\x0001\x002C\x0002\x0000\x0001\x0069\x0011\x0000\x0001\x006A" + + "\x0002\x0000\x0001\x006B\x002F\x0000\x0001\x0018\x0002\x0030\x0002\x0000\x0002\x006C\x0001\x0032" + + "\x0001\x0000\x0001\x0030\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021" + + "\x0002\x0000\x0001\x006D\x0001\x0000\x0001\x006E\x0004\x0000\x0001\x0024\x0001\x0000\x0001\x0025" + + "\x0001\x0000\x0001\x0026\x0002\x0000\x0001\x0027\x0003\x0000\x0001\x006F\x0002\x0000\x0001\x0070" + + "\x0004\x0000\x0001\x0071\x0003\x0000\x0001\x0072\x000F\x0000\x0001\x002C\x0002\x0000\x0001\x0073" + + "\x0011\x0000\x0001\x0074\x0002\x0000\x0001\x0075\x002F\x0000\x0001\x0018\x0001\x0031\x0007\x0000" + + "\x0001\x0031\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0020\x0001\x0000\x0001\x0021\x0002\x0000" + + "\x0001\x0076\x0001\x0000\x0001\x0023\x0004\x0000\x0001\x0024\x0001\x0000\x0001\x0025\x0001\x0000" + + "\x0001\x0026\x0002\x0000\x0001\x0027\x0003\x0000\x0001\x0077\x0002\x0000\x0001\x0078\x0004\x0000" + + "\x0001\x002A\x0003\x0000\x0001\x0079\x000F\x0000\x0001\x002C\x0002\x0000\x0001\x007A\x0011\x0000" + + "\x0001\x007B\x0002\x0000\x0001\x007C\x0021\x0000\x0001\x004D\x000D\x0000\x0001\x0018\x0001\x0032" + + "\x0001\x0030\x0001\x004F\x0003\x0000\x0001\x0032\x0001\x0000\x0001\x0032\x0002\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x0019\x0002\x0000\x0001\x0019\x0008\x0000\x0001\x0018" + + "\x000A\x0000\x0004\x0019\x0025\x0000\x0001\x0018\x0011\x0000\x0001\x0018\x0016\x0000\x0002\x0018" + + "\x0013\x0000\x0001\x0019\x0001\x0018\x0024\x0000\x0001\x0019\x0011\x0000\x0001\x0019\x0026\x0000" + + "\x0001\x0019\x0009\x0000\x0001\x0019\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000" + + "\x0003\x0018\x0001\x0019\x0001\x0000\x0002\x0019\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0019\x0004\x0000\x0001\x0019\x0002\x0018\x0005\x0000\x0004\x0019\x0002\x0000" + + "\x0001\x0018\x0001\x0019\x000A\x0000\x0004\x0019\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x0019" + + "\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018" + + "\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0019\x0001\x0000\x0002\x0018" + + "\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0016\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018" + + "\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018" + + "\x0004\x0000\x0001\x0018\x0004\x0019\x0004\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0057\x0000" + + "\x0002\x0019\x000D\x0000\x0004\x0019\x0030\x0000\x0001\x0019\x000D\x0000\x0002\x0019\x0008\x0000" + + "\x0002\x0019\x0001\x0000\x0001\x0019\x0001\x0000\x0001\x0019\x0009\x0000\x0001\x0019\x0009\x0000" + + "\x0002\x0019\x0006\x0000\x0001\x0019\x0002\x0000\x0004\x0019\x0003\x0000\x0001\x0019\x0002\x0000" + + "\x0002\x0019\x0001\x0000\x0003\x0019\x0005\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0002\x0000" + + "\x0002\x0019\x0001\x0000\x0004\x0019\x0005\x0000\x0001\x0019\x0001\x0000\x0002\x0019\x0024\x0000" + + "\x0001\x007D\x0001\x0000\x0001\x007E\x000F\x0000\x0001\x007F\x0002\x0000\x0001\x0080\x0004\x0000" + + "\x0001\x0081\x0003\x0000\x0001\x0082\x0012\x0000\x0001\x0083\x0011\x0000\x0001\x0084\x0002\x0000" + + "\x0001\x0085\x0030\x0000\x0001\x003C\x0001\x0019\x0006\x0000\x0001\x003C\x0004\x0000\x0001\x0020" + + "\x0001\x0000\x0001\x0021\x0002\x0000\x0001\x0086\x0001\x0000\x0001\x0034\x0004\x0000\x0001\x0024" + + "\x0001\x0000\x0001\x0025\x0001\x0000\x0001\x0026\x0002\x0000\x0001\x0027\x0003\x0000\x0001\x0087" + + "\x0002\x0000\x0001\x0088\x0004\x0000\x0001\x0037\x0003\x0000\x0001\x0089\x000F\x0000\x0001\x002C" + + "\x0002\x0000\x0001\x008A\x0011\x0000\x0001\x008B\x0002\x0000\x0001\x008C\x0021\x0000\x0001\x004D" + + "\x000D\x0000\x0001\x0018\x0001\x003D\x0001\x0019\x0001\x004F\x0003\x0000\x0001\x003D\x0001\x0000" + + "\x0001\x003D\x0002\x0000\x0001\x0018\x0039\x0000\x0001\x001A\x0002\x0000\x0001\x001A\x0013\x0000" + + "\x0004\x001A\x0089\x0000\x0001\x001A\x0042\x0000\x0001\x001A\x0024\x0000\x0001\x001A\x0001\x0000" + + "\x0002\x001A\x0011\x0000\x0001\x001A\x0004\x0000\x0001\x001A\x0007\x0000\x0004\x001A\x0003\x0000" + + "\x0001\x001A\x0012\x0000\x0001\x001A\x0076\x0000\x0001\x001A\x008D\x0000\x0004\x001A\x006D\x0000" + + "\x0002\x001A\x000D\x0000\x0004\x001A\x0030\x0000\x0001\x001A\x000D\x0000\x0002\x001A\x0008\x0000" + + "\x0002\x001A\x0001\x0000\x0001\x001A\x0001\x0000\x0001\x001A\x0009\x0000\x0001\x001A\x0009\x0000" + + "\x0002\x001A\x0006\x0000\x0001\x001A\x0002\x0000\x0004\x001A\x0003\x0000\x0001\x001A\x0002\x0000" + + "\x0002\x001A\x0001\x0000\x0003\x001A\x0005\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x0002\x0000" + + "\x0002\x001A\x0001\x0000\x0004\x001A\x0005\x0000\x0001\x001A\x0001\x0000\x0002\x001A\x008D\x0000" + + "\x0001\x001A\x0020\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x004E\x0002\x0000\x0001\x004E\x0008\x0000" + + "\x0001\x0018\x000A\x0000\x0004\x004E\x0025\x0000\x0001\x0018\x0011\x0000\x0001\x0018\x0016\x0000" + + "\x0002\x0018\x0013\x0000\x0001\x0019\x0001\x0018\x0024\x0000\x0001\x004E\x0011\x0000\x0001\x0019" + + "\x0026\x0000\x0001\x0019\x0009\x0000\x0001\x004E\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018" + + "\x000C\x0000\x0003\x0018\x0001\x004E\x0001\x0000\x0002\x004E\x0009\x0000\x0003\x0018\x0003\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x004E\x0004\x0000\x0001\x004E\x0002\x0018\x0005\x0000\x0004\x004E" + + "\x0002\x0000\x0001\x0018\x0001\x004E\x000A\x0000\x0004\x0019\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0001\x004E\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000" + + "\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x004E\x0001\x0000" + + "\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000" + + "\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0016\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000" + + "\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000" + + "\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x004E\x0004\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0057\x0000\x0002\x004E\x000D\x0000\x0004\x004E\x0030\x0000\x0001\x004E\x000D\x0000\x0002\x004E" + + "\x0008\x0000\x0002\x004E\x0001\x0000\x0001\x004E\x0001\x0000\x0001\x004E\x0009\x0000\x0001\x004E" + + "\x0009\x0000\x0002\x004E\x0006\x0000\x0001\x004E\x0002\x0000\x0004\x004E\x0003\x0000\x0001\x004E" + + "\x0002\x0000\x0002\x004E\x0001\x0000\x0003\x004E\x0005\x0000\x0001\x004E\x0001\x0000\x0002\x004E" + + "\x0002\x0000\x0002\x004E\x0001\x0000\x0004\x004E\x0005\x0000\x0001\x004E\x0001\x0000\x0002\x004E" + + "\x008D\x0000\x0001\x004F\x001F\x0000\x0001\x008D\x0011\x0000\x0001\x008E\x0002\x0000\x0001\x008F" + + "\x0008\x0000\x0001\x0090\x0012\x0000\x0001\x0091\x0011\x0000\x0001\x0092\x0002\x0000\x0001\x0093" + + "\x0021\x0000\x0001\x004D\x000E\x0000\x0001\x004F\x0001\x0000\x0001\x004F\x0003\x0000\x0001\x0032" + + "\x0001\x0000\x0001\x004F\x003C\x0000\x0001\x001D\x0002\x0000\x0001\x001D\x0013\x0000\x0004\x001D" + + "\x0089\x0000\x0001\x001D\x0042\x0000\x0001\x001D\x0024\x0000\x0001\x001D\x0001\x0000\x0002\x001D" + + "\x0011\x0000\x0001\x001D\x0004\x0000\x0001\x001D\x0007\x0000\x0004\x001D\x0003\x0000\x0001\x001D" + + "\x0012\x0000\x0001\x001D\x0076\x0000\x0001\x001D\x008D\x0000\x0004\x001D\x006D\x0000\x0002\x001D" + + "\x000D\x0000\x0004\x001D\x0030\x0000\x0001\x001D\x000D\x0000\x0002\x001D\x0008\x0000\x0002\x001D" + + "\x0001\x0000\x0001\x001D\x0001\x0000\x0001\x001D\x0009\x0000\x0001\x001D\x0009\x0000\x0002\x001D" + + "\x0006\x0000\x0001\x001D\x0002\x0000\x0004\x001D\x0003\x0000\x0001\x001D\x0002\x0000\x0002\x001D" + + "\x0001\x0000\x0003\x001D\x0005\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0002\x0000\x0002\x001D" + + "\x0001\x0000\x0004\x001D\x0005\x0000\x0001\x001D\x0001\x0000\x0002\x001D\x0057\x0000\x0001\x001E" + + "\x0002\x0000\x0001\x001E\x0013\x0000\x0004\x001E\x0089\x0000\x0001\x001E\x0042\x0000\x0001\x001E" + + "\x0024\x0000\x0001\x001E\x0001\x0000\x0002\x001E\x0011\x0000\x0001\x001E\x0004\x0000\x0001\x001E" + + "\x0007\x0000\x0004\x001E\x0003\x0000\x0001\x001E\x0012\x0000\x0001\x001E\x0076\x0000\x0001\x001E" + + "\x008D\x0000\x0004\x001E\x006D\x0000\x0002\x001E\x000D\x0000\x0004\x001E\x0030\x0000\x0001\x001E" + + "\x000D\x0000\x0002\x001E\x0008\x0000\x0002\x001E\x0001\x0000\x0001\x001E\x0001\x0000\x0001\x001E" + + "\x0009\x0000\x0001\x001E\x0009\x0000\x0002\x001E\x0006\x0000\x0001\x001E\x0002\x0000\x0004\x001E" + + "\x0003\x0000\x0001\x001E\x0002\x0000\x0002\x001E\x0001\x0000\x0003\x001E\x0005\x0000\x0001\x001E" + + "\x0001\x0000\x0002\x001E\x0002\x0000\x0002\x001E\x0001\x0000\x0004\x001E\x0005\x0000\x0001\x001E" + + "\x0001\x0000\x0002\x001E\x0025\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018" + + "\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x001F\x0002\x0000\x0001\x001F" + + "\x0008\x0000\x0001\x0018\x000A\x0000\x0004\x001F\x0025\x0000\x0001\x0018\x0011\x0000\x0001\x0018" + + "\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0030\x0001\x0018\x0024\x0000\x0001\x001F\x0011\x0000" + + "\x0001\x0030\x0026\x0000\x0001\x0030\x0009\x0000\x0001\x001F\x000D\x0000\x0004\x0018\x0002\x0000" + + "\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x001F\x0001\x0000\x0002\x001F\x0009\x0000\x0003\x0018" + + "\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x001F\x0004\x0000\x0001\x001F\x0002\x0018\x0005\x0000" + + "\x0004\x001F\x0002\x0000\x0001\x0018\x0001\x001F\x000A\x0000\x0004\x0030\x0001\x0000\x0002\x0018" + + "\x0001\x0000\x0001\x001F\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018" + + "\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x001F" + + "\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0003\x0018" + + "\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0016\x0000\x0001\x0018" + + "\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018" + + "\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0002\x0018" + + "\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x001F\x0004\x0000\x0001\x0018\x0004\x0000" + + "\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0057\x0000\x0002\x001F\x000D\x0000\x0004\x001F\x0030\x0000\x0001\x001F\x000D\x0000" + + "\x0002\x001F\x0008\x0000\x0002\x001F\x0001\x0000\x0001\x001F\x0001\x0000\x0001\x001F\x0009\x0000" + + "\x0001\x001F\x0009\x0000\x0002\x001F\x0006\x0000\x0001\x001F\x0002\x0000\x0004\x001F\x0003\x0000" + + "\x0001\x001F\x0002\x0000\x0002\x001F\x0001\x0000\x0003\x001F\x0005\x0000\x0001\x001F\x0001\x0000" + + "\x0002\x001F\x0002\x0000\x0002\x001F\x0001\x0000\x0004\x001F\x0005\x0000\x0001\x001F\x0001\x0000" + + "\x0002\x001F\x0025\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x0030\x0002\x0000\x0001\x0030\x0008\x0000" + + "\x0001\x0018\x000A\x0000\x0004\x0030\x0025\x0000\x0001\x0018\x0011\x0000\x0001\x0018\x0016\x0000" + + "\x0002\x0018\x0013\x0000\x0001\x0030\x0001\x0018\x0024\x0000\x0001\x0030\x0011\x0000\x0001\x0030" + + "\x0026\x0000\x0001\x0030\x0009\x0000\x0001\x0030\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018" + + "\x000C\x0000\x0003\x0018\x0001\x0030\x0001\x0000\x0002\x0030\x0009\x0000\x0003\x0018\x0003\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0030\x0004\x0000\x0001\x0030\x0002\x0018\x0005\x0000\x0004\x0030" + + "\x0002\x0000\x0001\x0018\x0001\x0030\x000A\x0000\x0004\x0030\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0001\x0030\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000\x0001\x0018\x0002\x0000" + + "\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000\x0007\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000\x0001\x0030\x0001\x0000" + + "\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0003\x0018\x0001\x0000" + + "\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0016\x0000\x0001\x0018\x0006\x0000" + + "\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0019\x0000" + + "\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x0002\x0000" + + "\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x0030\x0004\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0057\x0000\x0002\x0030\x000D\x0000\x0004\x0030\x0030\x0000\x0001\x0030\x000D\x0000\x0002\x0030" + + "\x0008\x0000\x0002\x0030\x0001\x0000\x0001\x0030\x0001\x0000\x0001\x0030\x0009\x0000\x0001\x0030" + + "\x0009\x0000\x0002\x0030\x0006\x0000\x0001\x0030\x0002\x0000\x0004\x0030\x0003\x0000\x0001\x0030" + + "\x0002\x0000\x0002\x0030\x0001\x0000\x0003\x0030\x0005\x0000\x0001\x0030\x0001\x0000\x0002\x0030" + + "\x0002\x0000\x0002\x0030\x0001\x0000\x0004\x0030\x0005\x0000\x0001\x0030\x0001\x0000\x0002\x0030" + + "\x0024\x0000\x0001\x0094\x0001\x0000\x0001\x0095\x000F\x0000\x0001\x0096\x0002\x0000\x0001\x0097" + + "\x0004\x0000\x0001\x0098\x0003\x0000\x0001\x0099\x0012\x0000\x0001\x009A\x0011\x0000\x0001\x009B" + + "\x0002\x0000\x0001\x009C\x0030\x0000\x0001\x006C\x0001\x0030\x0006\x0000\x0001\x006C\x000A\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x000B\x0000\x0001\x0031\x0002\x0000\x0001\x0031\x0008\x0000\x0001\x0018\x000A\x0000" + + "\x0004\x0031\x0025\x0000\x0001\x0018\x0014\x0000\x0001\x0018\x0003\x0000\x0004\x0018\x0001\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0002\x0000" + + "\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000\x0004\x0018\x0001\x0000" + + "\x0003\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0003\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0004\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0008\x0018\x0001\x0000\x0002\x0018\x0001\x0000" + + "\x0009\x0018\x0001\x0000\x0008\x0018\x0001\x0000\x000B\x0018\x0002\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0002\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0003\x0000" + + "\x0001\x0018\x000F\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0014\x0000\x0001\x0018\x0024\x0000" + + "\x0001\x0031\x0042\x0000\x0001\x0031\x000D\x0000\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000" + + "\x0003\x0018\x0001\x0031\x0001\x0000\x0002\x0031\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0031\x0004\x0000\x0001\x0031\x0002\x0018\x0005\x0000\x0004\x0031\x0002\x0000" + + "\x0001\x0018\x0001\x0031\x000F\x0000\x0002\x0018\x0001\x0000\x0001\x0031\x0007\x0000\x0001\x0018" + + "\x001F\x0000\x0001\x0018\x0003\x0000\x0002\x0018\x000A\x0000\x0002\x0018\x0001\x0000\x0003\x0018" + + "\x0007\x0000\x0001\x0018\x0006\x0000\x0002\x0018\x0001\x0000\x0002\x0018\x0006\x0000\x0001\x0018" + + "\x0004\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0005\x0000\x0003\x0018\x0008\x0000\x0001\x0018" + + "\x000E\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018" + + "\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0031\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0016\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x0031\x0004\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0057\x0000\x0002\x0031\x000D\x0000\x0004\x0031\x0030\x0000" + + "\x0001\x0031\x000D\x0000\x0002\x0031\x0008\x0000\x0002\x0031\x0001\x0000\x0001\x0031\x0001\x0000" + + "\x0001\x0031\x0009\x0000\x0001\x0031\x0009\x0000\x0002\x0031\x0006\x0000\x0001\x0031\x0002\x0000" + + "\x0004\x0031\x0003\x0000\x0001\x0031\x0002\x0000\x0002\x0031\x0001\x0000\x0003\x0031\x0005\x0000" + + "\x0001\x0031\x0001\x0000\x0002\x0031\x0002\x0000\x0002\x0031\x0001\x0000\x0004\x0031\x0005\x0000" + + "\x0001\x0031\x0001\x0000\x0002\x0031\x0025\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0009\x0000" + + "\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x0032\x0002\x0000" + + "\x0001\x0032\x0008\x0000\x0001\x0018\x000A\x0000\x0004\x0032\x0025\x0000\x0001\x0018\x0011\x0000" + + "\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0030\x0001\x0018\x0024\x0000\x0001\x0032" + + "\x0011\x0000\x0001\x0030\x0026\x0000\x0001\x0030\x0009\x0000\x0001\x0032\x000D\x0000\x0004\x0018" + + "\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x0032\x0001\x0000\x0002\x0032\x0009\x0000" + + "\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x0032\x0004\x0000\x0001\x0032\x0002\x0018" + + "\x0005\x0000\x0004\x0032\x0002\x0000\x0001\x0018\x0001\x0032\x000A\x0000\x0004\x0030\x0001\x0000" + + "\x0002\x0018\x0001\x0000\x0001\x0032\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018\x0004\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0005\x0000" + + "\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018\x000B\x0000" + + "\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0004\x0000" + + "\x0001\x0032\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0002\x0000" + + "\x0003\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0016\x0000" + + "\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0007\x0000" + + "\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0003\x0000" + + "\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x0032\x0004\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0001\x0000\x0001\x0018\x0057\x0000\x0002\x0032\x000D\x0000\x0004\x0032\x0030\x0000\x0001\x0032" + + "\x000D\x0000\x0002\x0032\x0008\x0000\x0002\x0032\x0001\x0000\x0001\x0032\x0001\x0000\x0001\x0032" + + "\x0009\x0000\x0001\x0032\x0009\x0000\x0002\x0032\x0006\x0000\x0001\x0032\x0002\x0000\x0004\x0032" + + "\x0003\x0000\x0001\x0032\x0002\x0000\x0002\x0032\x0001\x0000\x0003\x0032\x0005\x0000\x0001\x0032" + + "\x0001\x0000\x0002\x0032\x0002\x0000\x0002\x0032\x0001\x0000\x0004\x0032\x0005\x0000\x0001\x0032" + + "\x0001\x0000\x0002\x0032\x0057\x0000\x0001\x003C\x0002\x0000\x0001\x003C\x0013\x0000\x0004\x003C" + + "\x0045\x0000\x0001\x0019\x005A\x0000\x0001\x0019\x004B\x0000\x0001\x0019\x0025\x0000\x0001\x003C" + + "\x0011\x0000\x0001\x0019\x0026\x0000\x0001\x0019\x0009\x0000\x0001\x003C\x0024\x0000\x0001\x003C" + + "\x0001\x0000\x0002\x003C\x0011\x0000\x0001\x003C\x0004\x0000\x0001\x003C\x0007\x0000\x0004\x003C" + + "\x0003\x0000\x0001\x003C\x000A\x0000\x0004\x0019\x0004\x0000\x0001\x003C\x0085\x0000\x0002\x0019" + + "\x0078\x0000\x0001\x003C\x008D\x0000\x0004\x003C\x006D\x0000\x0002\x003C\x000D\x0000\x0004\x003C" + + "\x0030\x0000\x0001\x003C\x000D\x0000\x0002\x003C\x0008\x0000\x0002\x003C\x0001\x0000\x0001\x003C" + + "\x0001\x0000\x0001\x003C\x0009\x0000\x0001\x003C\x0009\x0000\x0002\x003C\x0006\x0000\x0001\x003C" + + "\x0002\x0000\x0004\x003C\x0003\x0000\x0001\x003C\x0002\x0000\x0002\x003C\x0001\x0000\x0003\x003C" + + "\x0005\x0000\x0001\x003C\x0001\x0000\x0002\x003C\x0002\x0000\x0002\x003C\x0001\x0000\x0004\x003C" + + "\x0005\x0000\x0001\x003C\x0001\x0000\x0002\x003C\x0025\x0000\x0001\x0018\x0004\x0000\x0001\x0018" + + "\x0009\x0000\x0001\x0018\x0012\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x000B\x0000\x0001\x003D" + + "\x0002\x0000\x0001\x003D\x0008\x0000\x0001\x0018\x000A\x0000\x0004\x003D\x0025\x0000\x0001\x0018" + + "\x0011\x0000\x0001\x0018\x0016\x0000\x0002\x0018\x0013\x0000\x0001\x0019\x0001\x0018\x0024\x0000" + + "\x0001\x003D\x0011\x0000\x0001\x0019\x0026\x0000\x0001\x0019\x0009\x0000\x0001\x003D\x000D\x0000" + + "\x0004\x0018\x0002\x0000\x0002\x0018\x000C\x0000\x0003\x0018\x0001\x003D\x0001\x0000\x0002\x003D" + + "\x0009\x0000\x0003\x0018\x0003\x0000\x0001\x0018\x0001\x0000\x0001\x003D\x0004\x0000\x0001\x003D" + + "\x0002\x0018\x0005\x0000\x0004\x003D\x0002\x0000\x0001\x0018\x0001\x003D\x000A\x0000\x0004\x0019" + + "\x0001\x0000\x0002\x0018\x0001\x0000\x0001\x003D\x0007\x0000\x0001\x0018\x0013\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0006\x0000\x0001\x0018" + + "\x0005\x0000\x0001\x0018\x0002\x0000\x0002\x0018\x0001\x0000\x000F\x0018\x0002\x0000\x0001\x0018" + + "\x000B\x0000\x0007\x0018\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0004\x0000\x0001\x003D\x0001\x0000\x0002\x0018\x0005\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0002\x0000\x0003\x0018\x0001\x0000\x0001\x0018\x0007\x0000\x0001\x0018\x0001\x0000\x0001\x0018" + + "\x0016\x0000\x0001\x0018\x0006\x0000\x0001\x0018\x0003\x0000\x0001\x0018\x0003\x0000\x0001\x0018" + + "\x0007\x0000\x0001\x0018\x0019\x0000\x0010\x0018\x0005\x0000\x0003\x0018\x0003\x0000\x0001\x0018" + + "\x0003\x0000\x0002\x0018\x0002\x0000\x0002\x0018\x0004\x0000\x0001\x0018\x0004\x003D\x0004\x0000" + + "\x0001\x0018\x0004\x0000\x0001\x0018\x0002\x0000\x0001\x0018\x0004\x0000\x0001\x0018\x0001\x0000" + + "\x0001\x0018\x0001\x0000\x0001\x0018\x0057\x0000\x0002\x003D\x000D\x0000\x0004\x003D\x0030\x0000" + + "\x0001\x003D\x000D\x0000\x0002\x003D\x0008\x0000\x0002\x003D\x0001\x0000\x0001\x003D\x0001\x0000" + + "\x0001\x003D\x0009\x0000\x0001\x003D\x0009\x0000\x0002\x003D\x0006\x0000\x0001\x003D\x0002\x0000" + + "\x0004\x003D\x0003\x0000\x0001\x003D\x0002\x0000\x0002\x003D\x0001\x0000\x0003\x003D\x0005\x0000" + + "\x0001\x003D\x0001\x0000\x0002\x003D\x0002\x0000\x0002\x003D\x0001\x0000\x0004\x003D\x0005\x0000" + + "\x0001\x003D\x0001\x0000\x0002\x003D\x0057\x0000\x0001\x004F\x0002\x0000\x0001\x004F\x0013\x0000" + + "\x0004\x004F\x0089\x0000\x0001\x004F\x0042\x0000\x0001\x004F\x0024\x0000\x0001\x004F\x0001\x0000" + + "\x0002\x004F\x0011\x0000\x0001\x004F\x0004\x0000\x0001\x004F\x0007\x0000\x0004\x004F\x0003\x0000" + + "\x0001\x004F\x0012\x0000\x0001\x004F\x0076\x0000\x0001\x004F\x008D\x0000\x0004\x004F\x006D\x0000" + + "\x0002\x004F\x000D\x0000\x0004\x004F\x0030\x0000\x0001\x004F\x000D\x0000\x0002\x004F\x0008\x0000" + + "\x0002\x004F\x0001\x0000\x0001\x004F\x0001\x0000\x0001\x004F\x0009\x0000\x0001\x004F\x0009\x0000" + + "\x0002\x004F\x0006\x0000\x0001\x004F\x0002\x0000\x0004\x004F\x0003\x0000\x0001\x004F\x0002\x0000" + + "\x0002\x004F\x0001\x0000\x0003\x004F\x0005\x0000\x0001\x004F\x0001\x0000\x0002\x004F\x0002\x0000" + + "\x0002\x004F\x0001\x0000\x0004\x004F\x0005\x0000\x0001\x004F\x0001\x0000\x0002\x004F\x0057\x0000" + + "\x0001\x006C\x0002\x0000\x0001\x006C\x0013\x0000\x0004\x006C\x0045\x0000\x0001\x0030\x005A\x0000" + + "\x0001\x0030\x004B\x0000\x0001\x0030\x0025\x0000\x0001\x006C\x0011\x0000\x0001\x0030\x0026\x0000" + + "\x0001\x0030\x0009\x0000\x0001\x006C\x0024\x0000\x0001\x006C\x0001\x0000\x0002\x006C\x0011\x0000" + + "\x0001\x006C\x0004\x0000\x0001\x006C\x0007\x0000\x0004\x006C\x0003\x0000\x0001\x006C\x000A\x0000" + + "\x0004\x0030\x0004\x0000\x0001\x006C\x0085\x0000\x0002\x0030\x0078\x0000\x0001\x006C\x008D\x0000" + + "\x0004\x006C\x006D\x0000\x0002\x006C\x000D\x0000\x0004\x006C\x0030\x0000\x0001\x006C\x000D\x0000" + + "\x0002\x006C\x0008\x0000\x0002\x006C\x0001\x0000\x0001\x006C\x0001\x0000\x0001\x006C\x0009\x0000" + + "\x0001\x006C\x0009\x0000\x0002\x006C\x0006\x0000\x0001\x006C\x0002\x0000\x0004\x006C\x0003\x0000" + + "\x0001\x006C\x0002\x0000\x0002\x006C\x0001\x0000\x0003\x006C\x0005\x0000\x0001\x006C\x0001\x0000" + + "\x0002\x006C\x0002\x0000\x0002\x006C\x0001\x0000\x0004\x006C\x0005\x0000\x0001\x006C\x0001\x0000" + + "\x0002\x006C\x001E\x0000"; + + private static int[] ZzUnpackTrans() + { + int[] result = new int[20002]; + int offset = 0; + offset = ZzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackTrans(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private const int ZZ_UNKNOWN_ERROR = 0; + private const int ZZ_NO_MATCH = 1; + private const int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static readonly string[] ZZ_ERROR_MSG = { + "Unkown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static readonly int[] ZZ_ATTRIBUTE = ZzUnpackAttribute(); + + private const string ZZ_ATTRIBUTE_PACKED_0 = + "\x0001\x0000\x0001\x0009\x001D\x0001\x0010\x0000\x0001\x0001\x0001\x0000\x0001\x0001\x000A\x0000" + + "\x0001\x0001\x0011\x0000\x0001\x0001\x004D\x0000"; + + private static int[] ZzUnpackAttribute() + { + int[] result = new int[156]; + int offset = 0; + offset = ZzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int ZzUnpackAttribute(string packed, int offset, int[] result) + { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.Length; + while (i < l) + { + int count = packed[i++]; + int value = packed[i++]; + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private TextReader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the YyText() string */ + private char[] zzBuffer = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the YyText() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yyChar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private bool zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private bool zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private bool zzEOFDone; + + /* user code: */ + /** Alphanumeric sequences */ + public static readonly int WORD_TYPE = StandardTokenizer.ALPHANUM; + + /** Numbers */ + public static readonly int NUMERIC_TYPE = StandardTokenizer.NUM; + + /** + * Chars in class \p{Line_Break = Complex_Context} are from South East Asian + * scripts (Thai, Lao, Myanmar, Khmer, etc.). Sequences of these are kept + * together as as a single token rather than broken up, because the logic + * required to break them at word boundaries is too complex for UAX#29. + *

+ * See Unicode Line Breaking Algorithm: http://www.unicode.org/reports/tr14/#SA + */ + public static readonly int SOUTH_EAST_ASIAN_TYPE = StandardTokenizer.SOUTHEAST_ASIAN; + + public static readonly int IDEOGRAPHIC_TYPE = StandardTokenizer.IDEOGRAPHIC; + + public static readonly int HIRAGANA_TYPE = StandardTokenizer.HIRAGANA; + + public static readonly int KATAKANA_TYPE = StandardTokenizer.KATAKANA; + + public static readonly int HANGUL_TYPE = StandardTokenizer.HANGUL; + + public int YyChar + { + get { return yyChar; } + } + + /** + * Fills CharTermAttribute with the current token text. + */ + public void GetText(ICharTermAttribute t) + { + t.CopyBuffer(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); + } + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public StandardTokenizerImpl40(TextReader @in) + { + this.zzReader = @in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char[] ZzUnpackCMap(string packed) + { + char[] map = new char[0x10000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 2848) + { + int count = packed[i++]; + char value = packed[i++]; + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private bool ZzRefill() + { + + /* first: make room (if you can) */ + if (zzStartRead > 0) + { + System.Array.Copy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead - zzStartRead); + + /* translate stored positions */ + zzEndRead -= zzStartRead; + zzCurrentPos -= zzStartRead; + zzMarkedPos -= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.Length) + { + /* if not: blow it up */ + char[] newBuffer = new char[zzCurrentPos * 2]; + System.Array.Copy(zzBuffer, 0, newBuffer, 0, zzBuffer.Length); + zzBuffer = newBuffer; + } + + /* readonlyly: fill the buffer with new input */ + int numRead = zzReader.Read(zzBuffer, zzEndRead, + zzBuffer.Length - zzEndRead); + + if (numRead > 0) + { + zzEndRead += numRead; + return false; + } + // unlikely but not impossible: read 0 characters, but not at end of stream + if (numRead == 0) + { + int c = zzReader.Read(); + if (c == -1) + { + return true; + } + else + { + zzBuffer[zzEndRead++] = (char)c; + return false; + } + } + + // numRead < 0 + return true; + } + + + /** + * Closes the input stream. + */ + public void YyClose() + { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + zzReader.Dispose(); + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public void YyReset(TextReader reader) + { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + yyline = yyChar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.Length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public int YyState + { + get { return zzLexicalState; } + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public void YyBegin(int newState) + { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public string YyText + { + get { return new string(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to YyText().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to YyLength()-1. + * + * @return the character at position pos + */ + public char YyCharAt(int pos) + { + return zzBuffer[zzStartRead + pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public int YyLength + { + get { return zzMarkedPos - zzStartRead; } + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * YyPushBack(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void ZzScanError(int errorCode) + { + string message; + try + { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (IndexOutOfRangeException e) + { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Exception(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than YyLength()! + */ + public void YyPushBack(int number) + { + if (number > YyLength) + ZzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public int GetNextToken() + { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char[] zzBufferL = zzBuffer; + char[] zzCMapL = ZZ_CMAP; + + int[] zzTransL = ZZ_TRANS; + int[] zzRowMapL = ZZ_ROWMAP; + int[] zzAttrL = ZZ_ATTRIBUTE; + + while (true) + { + zzMarkedPosL = zzMarkedPos; + + yyChar += zzMarkedPosL - zzStartRead; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + } + + + + while (true) + { + + if (zzCurrentPosL < zzEndReadL) + zzInput = zzBufferL[zzCurrentPosL++]; + else if (zzAtEOF) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + bool eof = ZzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) + { + zzInput = YYEOF; + goto zzForActionBreak; + } + else + { + zzInput = zzBufferL[zzCurrentPosL++]; + } + } + int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; + if (zzNext == -1) goto zzForActionBreak; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ((zzAttributes & 1) == 1) + { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ((zzAttributes & 8) == 8) goto zzForActionBreak; + } + + } + zzForActionBreak: + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) + { + case 1: + { /* Break so we don't hit fall-through warning: */ + break; /* Not numeric, word, ideographic, hiragana, or SE Asian -- ignore it. */ + } + case 9: break; + case 2: + { + return WORD_TYPE; + } + case 10: break; + case 3: + { + return NUMERIC_TYPE; + } + case 11: break; + case 4: + { + return KATAKANA_TYPE; + } + case 12: break; + case 5: + { + return SOUTH_EAST_ASIAN_TYPE; + } + case 13: break; + case 6: + { + return IDEOGRAPHIC_TYPE; + } + case 14: break; + case 7: + { + return HIRAGANA_TYPE; + } + case 15: break; + case 8: + { + return HANGUL_TYPE; + } + case 16: break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) + { + zzAtEOF = true; + { + return StandardTokenizerInterface_Fields.YYEOF; + } + } + else + { + ZzScanError(ZZ_NO_MATCH); + } + break; + } + } + } + } +} diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index 625951f2c8..4851843ab1 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -97,9 +97,12 @@ + + + Code From f0d32c31ad44d97d42c18b8e8c787e9742e53167 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Sat, 6 Aug 2016 03:24:25 +0700 Subject: [PATCH 015/141] Ported the ClassicAnalyzer to complete the Analysis.Standard namespace. --- .../Analysis/Standard/ClassicAnalyzer.cs | 31 +++++++------------ .../Lucene.Net.Analysis.Common.csproj | 1 + 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicAnalyzer.cs index 0dd0529eeb..2048115f20 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Standard/ClassicAnalyzer.cs @@ -1,12 +1,10 @@ using Lucene.Net.Analysis.Core; using Lucene.Net.Analysis.Util; using Lucene.Net.Util; -using org.apache.lucene.analysis.standard; -using Reader = System.IO.TextReader; +using System.IO; namespace Lucene.Net.Analysis.Standard { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -23,6 +21,7 @@ namespace Lucene.Net.Analysis.Standard * See the License for the specific language governing permissions and * limitations under the License. */ + ///

/// Filters with , {@link /// LowerCaseFilter} and , using a list of @@ -47,7 +46,6 @@ namespace Lucene.Net.Analysis.Standard /// public sealed class ClassicAnalyzer : StopwordAnalyzerBase { - /// /// Default maximum allowed token length public const int DEFAULT_MAX_TOKEN_LENGTH = 255; @@ -82,12 +80,12 @@ public ClassicAnalyzer(LuceneVersion matchVersion) /// /// Builds an analyzer with the stop words from the given reader. - /// + /// /// Lucene version to match See {@link /// above} /// Reader to read stop words from - public ClassicAnalyzer(LuceneVersion matchVersion, Reader stopwords) - : this(matchVersion, loadStopwordSet(stopwords, matchVersion)) + public ClassicAnalyzer(LuceneVersion matchVersion, TextReader stopwords) + : this(matchVersion, LoadStopwordSet(stopwords, matchVersion)) { } @@ -99,18 +97,12 @@ public ClassicAnalyzer(LuceneVersion matchVersion, Reader stopwords) ///
public int MaxTokenLength { - set - { - maxTokenLength = value; - } - get - { - return maxTokenLength; - } + set { maxTokenLength = value; } + get { return maxTokenLength; } } - public override TokenStreamComponents CreateComponents(string fieldName, Reader reader) + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) { var src = new ClassicTokenizer(matchVersion, reader); src.MaxTokenLength = maxTokenLength; @@ -124,10 +116,10 @@ private class TokenStreamComponentsAnonymousInnerClassHelper : TokenStreamCompon { private readonly ClassicAnalyzer outerInstance; - private Reader reader; + private TextReader reader; private ClassicTokenizer src; - public TokenStreamComponentsAnonymousInnerClassHelper(ClassicAnalyzer outerInstance, ClassicTokenizer src, TokenStream tok, Reader reader) + public TokenStreamComponentsAnonymousInnerClassHelper(ClassicAnalyzer outerInstance, ClassicTokenizer src, TokenStream tok, TextReader reader) : base(src, tok) { this.outerInstance = outerInstance; @@ -135,7 +127,7 @@ public TokenStreamComponentsAnonymousInnerClassHelper(ClassicAnalyzer outerInsta this.src = src; } - protected override Reader Reader + protected override TextReader Reader { set { @@ -145,5 +137,4 @@ protected override Reader Reader } } } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index 4851843ab1..82dfae0fe9 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -71,6 +71,7 @@ + Code From 3facf5eb23e0d4130204ce3bc4d113472ff1b90e Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Sat, 6 Aug 2016 03:27:58 +0700 Subject: [PATCH 016/141] Added the LongRunnintTest attribute to TestSegmentingTokenizerBase.TestRandomStrings() and TestRollingCharBuffer.Test(). --- .../Analysis/Util/TestRollingCharBuffer.cs | 3 ++- .../Analysis/Util/TestSegmentingTokenizerBase.cs | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestRollingCharBuffer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestRollingCharBuffer.cs index fc34a7a9f8..0858b9a48d 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestRollingCharBuffer.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestRollingCharBuffer.cs @@ -1,6 +1,7 @@ using System; using System.IO; using Lucene.Net.Analysis.Util; +using Lucene.Net.Attributes; using Lucene.Net.Randomized.Generators; using Lucene.Net.Util; using NUnit.Framework; @@ -28,7 +29,7 @@ namespace Lucene.Net.Tests.Analysis.Common.Analysis.Util [TestFixture] public class TestRollingCharBuffer : LuceneTestCase { - [Test] + [Test, LongRunningTest] public virtual void Test() { var ITERS = AtLeast(1000); diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestSegmentingTokenizerBase.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestSegmentingTokenizerBase.cs index 6d79d21408..03b8cdb0d2 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestSegmentingTokenizerBase.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestSegmentingTokenizerBase.cs @@ -4,6 +4,7 @@ using Lucene.Net.Analysis; using Lucene.Net.Analysis.Tokenattributes; using Lucene.Net.Analysis.Util; +using Lucene.Net.Attributes; using Lucene.Net.Support; using NUnit.Framework; @@ -108,7 +109,7 @@ public virtual void TestHugeTerm() AssertAnalyzesTo(sentence, input, expected); } - [Test] + [Test, LongRunningTest] public virtual void TestRandomStrings() { CheckRandomData(Random(), sentence, 10000 * RANDOM_MULTIPLIER); From 35ebd5447c7438413662a8fb08567aa97aeb9405 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Sat, 6 Aug 2016 06:24:08 +0700 Subject: [PATCH 017/141] Added Analysis.Core.StopFilterFactory + tests. Fixed some bugs in the ClasspathResourceLoader and CharArraySet in the process. --- .../Analysis/Core/StopFilterFactory.cs | 17 +- .../Analysis/Util/CharArraySet.cs | 27 ++- .../Analysis/Util/ClasspathResourceLoader.cs | 60 ++++-- .../Lucene.Net.Analysis.Common.csproj | 1 + .../Analysis/Core/TestStopFilterFactory.cs | 178 +++++++++--------- .../Analysis/Core/stop-1.txt | 17 ++ .../Analysis/Core/stop-2.txt | 17 ++ .../Analysis/Core/stop-snowball.txt | 10 + .../Util/BaseTokenStreamFactoryTestCase.cs | 31 +-- .../Lucene.Net.Tests.Analysis.Common.csproj | 6 + 10 files changed, 226 insertions(+), 138 deletions(-) create mode 100644 src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-1.txt create mode 100644 src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-2.txt create mode 100644 src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-snowball.txt diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilterFactory.cs index 4f89baebb2..f8a0be833e 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilterFactory.cs @@ -4,7 +4,6 @@ namespace Lucene.Net.Analysis.Core { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -66,7 +65,7 @@ namespace Lucene.Net.Analysis.Core /// /// ///
- public class StopFilterFactory : TokenFilterFactory, ResourceLoaderAware + public class StopFilterFactory : TokenFilterFactory, IResourceLoaderAware { public const string FORMAT_WORDSET = "wordset"; public const string FORMAT_SNOWBALL = "snowball"; @@ -82,18 +81,18 @@ public class StopFilterFactory : TokenFilterFactory, ResourceLoaderAware public StopFilterFactory(IDictionary args) : base(args) { - assureMatchVersion(); - stopWordFiles = get(args, "words"); - format = get(args, "format", (null == stopWordFiles ? null : FORMAT_WORDSET)); - ignoreCase = getBoolean(args, "ignoreCase", false); - enablePositionIncrements = getBoolean(args, "enablePositionIncrements", true); + AssureMatchVersion(); + stopWordFiles = Get(args, "words"); + format = Get(args, "format", (null == stopWordFiles ? null : FORMAT_WORDSET)); + ignoreCase = GetBoolean(args, "ignoreCase", false); + enablePositionIncrements = GetBoolean(args, "enablePositionIncrements", true); if (args.Count > 0) { throw new System.ArgumentException("Unknown parameters: " + args); } } - public virtual void Inform(ResourceLoader loader) + public virtual void Inform(IResourceLoader loader) { if (stopWordFiles != null) { @@ -103,7 +102,7 @@ public virtual void Inform(ResourceLoader loader) } else if (FORMAT_SNOWBALL.Equals(format, StringComparison.CurrentCultureIgnoreCase)) { - stopWords = getSnowballWordSet(loader, stopWordFiles, ignoreCase); + stopWords = GetSnowballWordSet(loader, stopWordFiles, ignoreCase); } else { diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs index a42bad6d03..8c90abfdf9 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/CharArraySet.cs @@ -60,7 +60,7 @@ public class CharArraySet : ISet public static readonly CharArraySet EMPTY_SET = new CharArraySet(CharArrayMap.EmptyMap()); private static readonly object PLACEHOLDER = new object(); - private readonly CharArrayMap map; + internal readonly CharArrayMap map; /// /// Create set with enough capacity to hold startSize terms @@ -274,6 +274,27 @@ public override string ToString() return sb.Append(']').ToString(); } + public bool SetEquals(IEnumerable other) + { + var otherSet = other as CharArraySet; + if (otherSet == null) + return false; + + if (this.Count != otherSet.Count) + return false; + + foreach (var kvp in this.map) + { + if (!otherSet.map.ContainsKey(kvp.Key)) + return false; + + if (!otherSet.map[kvp.Key].Equals(kvp.Value)) + return false; + } + + return true; + } + #region Not used by the Java implementation anyway public void UnionWith(IEnumerable other) { @@ -320,10 +341,6 @@ public bool Overlaps(IEnumerable other) throw new System.NotImplementedException(); } - public bool SetEquals(IEnumerable other) - { - throw new System.NotImplementedException(); - } #endregion } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs index 58d89c6502..abf61fdd50 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Text.RegularExpressions; using System.Reflection; namespace Lucene.Net.Analysis.Util @@ -31,41 +32,41 @@ public sealed class ClasspathResourceLoader : IResourceLoader // NOTE: This class was refactored significantly from its Java counterpart. // It is basically just a wrapper around the System.Assembly type. - private readonly Assembly assembly; - - /// - /// Creates an instance using the current Executing Assembly to load Resources and classes. - /// Resource paths must be absolute. - /// - public ClasspathResourceLoader() - : this(Assembly.GetExecutingAssembly()) - { - } + private readonly Type clazz; + private readonly string namespaceExcludeRegex; /// /// Creates an instance using the System.Assembly of the given class to load Resources and classes /// Resource paths must be absolute. /// public ClasspathResourceLoader(Type clazz) - : this(clazz.Assembly) { + this.clazz = clazz; } /// - /// Creates an instance using the given System.Assembly to load Resources and classes - /// Resource paths must be absolute. + /// Creates an instance using the System.Assembly of the given class to load Resources and classes + /// Resource names are relative to the resourcePrefix. /// - public ClasspathResourceLoader(Assembly assembly) + /// The class type + /// Removes the part of the namespace of the class that matches the regex. + /// This is useful to get to the resource if the assembly name and namespace name don't happen to match. + /// If provided, the assembly name will be concatnated with the namespace name (excluding the part tha matches the regex) + /// to provide the complete path to the embedded resource in the assembly. Note you can view the entire path to all of + /// the resources by calling Assembly.GetManifestResourceNames() so you can better understand how to build this path. + public ClasspathResourceLoader(Type clazz, string namespaceExcludeRegex) { - this.assembly = assembly; + this.clazz = clazz; + this.namespaceExcludeRegex = namespaceExcludeRegex; } public Stream OpenResource(string resource) { - Stream stream = this.assembly.GetManifestResourceStream(resource); + var qualifiedResourceName = this.GetQualifiedResourceName(resource); + Stream stream = this.clazz.Assembly.GetManifestResourceStream(qualifiedResourceName); if (stream == null) { - throw new IOException("Resource not found: " + resource); + throw new IOException("Resource not found: " + qualifiedResourceName); } return stream; } @@ -74,7 +75,7 @@ public Type FindClass(string cname) { try { - return this.assembly.GetType(cname, true); + return this.clazz.Assembly.GetType(cname, true); } catch (Exception e) { @@ -94,5 +95,28 @@ public T NewInstance(string cname) throw new Exception("Cannot create instance: " + cname, e); } } + + /// + /// Added for .NET help in finding the resource name. + /// + /// + /// + private string GetQualifiedResourceName(string resource) + { + var namespaceName = this.clazz.Namespace; + var assemblyName = clazz.Assembly.GetName().Name; + if (string.IsNullOrEmpty(this.namespaceExcludeRegex) && (assemblyName.Equals(namespaceName, StringComparison.OrdinalIgnoreCase))) + return namespaceName; + + // Get the prefix of the class. We need the assembly name + any folders + // that may be in the project, which we get from the class namespace (minus the "Lucene.Net" part). + //var namespaceSegment = clazz.Namespace.Replace("Lucene.Net.", ""); + + //// Remove the part of the path that matches the Regex. + var namespaceSegment = Regex.Replace(namespaceName, this.namespaceExcludeRegex, string.Empty, RegexOptions.Compiled); + + // Qualify by namespace and separate by . + return string.Concat(assemblyName, ".", namespaceSegment.Trim('.'), ".", resource); + } } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index 82dfae0fe9..7a836ea19d 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -57,6 +57,7 @@ + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilterFactory.cs index 9b204a9a5a..346daa0fa3 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilterFactory.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilterFactory.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.core -{ +using Lucene.Net.Analysis.Util; +using NUnit.Framework; - /* +namespace Lucene.Net.Analysis.Core +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,99 +20,89 @@ * limitations under the License. */ - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using ClasspathResourceLoader = org.apache.lucene.analysis.util.ClasspathResourceLoader; - using ResourceLoader = org.apache.lucene.analysis.util.ResourceLoader; - - public class TestStopFilterFactory : BaseTokenStreamFactoryTestCase - { - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInform() throws Exception - public virtual void testInform() - { - ResourceLoader loader = new ClasspathResourceLoader(this.GetType()); - assertTrue("loader is null and it shouldn't be", loader != null); - StopFilterFactory factory = (StopFilterFactory) tokenFilterFactory("Stop", "words", "stop-1.txt", "ignoreCase", "true"); - CharArraySet words = factory.StopWords; - assertTrue("words is null and it shouldn't be", words != null); - assertTrue("words Size: " + words.size() + " is not: " + 2, words.size() == 2); - assertTrue(factory.IgnoreCase + " does not equal: " + true, factory.IgnoreCase == true); - - factory = (StopFilterFactory) tokenFilterFactory("Stop", "words", "stop-1.txt, stop-2.txt", "ignoreCase", "true"); - words = factory.StopWords; - assertTrue("words is null and it shouldn't be", words != null); - assertTrue("words Size: " + words.size() + " is not: " + 4, words.size() == 4); - assertTrue(factory.IgnoreCase + " does not equal: " + true, factory.IgnoreCase == true); + public class TestStopFilterFactory : BaseTokenStreamFactoryTestCase + { + [Test] + public virtual void TestInform() + { + IResourceLoader loader = new ClasspathResourceLoader(this.GetType()); + assertTrue("loader is null and it shouldn't be", loader != null); + StopFilterFactory factory = (StopFilterFactory)TokenFilterFactory("Stop", "words", "stop-1.txt", "ignoreCase", "true"); + CharArraySet words = factory.StopWords; + assertTrue("words is null and it shouldn't be", words != null); + assertTrue("words Size: " + words.size() + " is not: " + 2, words.size() == 2); + assertTrue(factory.IgnoreCase + " does not equal: " + true, factory.IgnoreCase == true); - factory = (StopFilterFactory) tokenFilterFactory("Stop", "words", "stop-snowball.txt", "format", "snowball", "ignoreCase", "true"); - words = factory.StopWords; - assertEquals(8, words.size()); - assertTrue(words.contains("he")); - assertTrue(words.contains("him")); - assertTrue(words.contains("his")); - assertTrue(words.contains("himself")); - assertTrue(words.contains("she")); - assertTrue(words.contains("her")); - assertTrue(words.contains("hers")); - assertTrue(words.contains("herself")); + factory = (StopFilterFactory)TokenFilterFactory("Stop", "words", "stop-1.txt, stop-2.txt", "ignoreCase", "true"); + words = factory.StopWords; + assertTrue("words is null and it shouldn't be", words != null); + assertTrue("words Size: " + words.size() + " is not: " + 4, words.size() == 4); + assertTrue(factory.IgnoreCase + " does not equal: " + true, factory.IgnoreCase == true); - // defaults - factory = (StopFilterFactory) tokenFilterFactory("Stop"); - assertEquals(StopAnalyzer.ENGLISH_STOP_WORDS_SET, factory.StopWords); - assertEquals(false, factory.IgnoreCase); - } + factory = (StopFilterFactory)TokenFilterFactory("Stop", "words", "stop-snowball.txt", "format", "snowball", "ignoreCase", "true"); + words = factory.StopWords; + assertEquals(8, words.size()); + assertTrue(words.contains("he")); + assertTrue(words.contains("him")); + assertTrue(words.contains("his")); + assertTrue(words.contains("himself")); + assertTrue(words.contains("she")); + assertTrue(words.contains("her")); + assertTrue(words.contains("hers")); + assertTrue(words.contains("herself")); - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenFilterFactory("Stop", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } + // defaults + factory = (StopFilterFactory)TokenFilterFactory("Stop"); + assertEquals(StopAnalyzer.ENGLISH_STOP_WORDS_SET, factory.StopWords); + assertEquals(false, factory.IgnoreCase); + } - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusFormats() throws Exception - public virtual void testBogusFormats() - { - try - { - tokenFilterFactory("Stop", "words", "stop-snowball.txt", "format", "bogus"); - fail(); - } - catch (System.ArgumentException expected) - { - string msg = expected.Message; - assertTrue(msg, msg.Contains("Unknown")); - assertTrue(msg, msg.Contains("format")); - assertTrue(msg, msg.Contains("bogus")); - } - try - { - tokenFilterFactory("Stop", "format", "bogus"); - // implicit default words file - fail(); - } - catch (System.ArgumentException expected) - { - string msg = expected.Message; - assertTrue(msg, msg.Contains("can not be specified")); - assertTrue(msg, msg.Contains("format")); - assertTrue(msg, msg.Contains("bogus")); - } - } - } + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenFilterFactory("Stop", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusFormats() + { + try + { + TokenFilterFactory("Stop", "words", "stop-snowball.txt", "format", "bogus"); + fail(); + } + catch (System.ArgumentException expected) + { + string msg = expected.Message; + assertTrue(msg, msg.Contains("Unknown")); + assertTrue(msg, msg.Contains("format")); + assertTrue(msg, msg.Contains("bogus")); + } + try + { + TokenFilterFactory("Stop", "format", "bogus"); + // implicit default words file + fail(); + } + catch (System.ArgumentException expected) + { + string msg = expected.Message; + assertTrue(msg, msg.Contains("can not be specified")); + assertTrue(msg, msg.Contains("format")); + assertTrue(msg, msg.Contains("bogus")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-1.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-1.txt new file mode 100644 index 0000000000..8dfe80902d --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-1.txt @@ -0,0 +1,17 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +foo +bar \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-2.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-2.txt new file mode 100644 index 0000000000..646b7ff4dd --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-2.txt @@ -0,0 +1,17 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +junk +more \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-snowball.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-snowball.txt new file mode 100644 index 0000000000..1c0c6f5114 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/stop-snowball.txt @@ -0,0 +1,10 @@ + | This is a file in snowball format, empty lines are ignored, '|' is a comment + | Additionally, multiple words can be on the same line, allowing stopwords to be + | arranged in tables (useful in some languages where they might inflect) + + | fictitious table below + +|third person singular +|Subject Object Possessive Reflexive +he him his himself| masculine +she her hers herself| feminine diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/BaseTokenStreamFactoryTestCase.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/BaseTokenStreamFactoryTestCase.cs index 3789309fc2..b516ff117f 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/BaseTokenStreamFactoryTestCase.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/BaseTokenStreamFactoryTestCase.cs @@ -52,27 +52,22 @@ private AbstractAnalysisFactory AnalysisFactory(Type clazz, Version matchVersion { throw new System.ArgumentException("invalid keysAndValues map"); } + string previous; IDictionary args = new Dictionary(); for (int i = 0; i < keysAndValues.Length; i += 2) { - string previous; if (args.TryGetValue(keysAndValues[i], out previous)) { fail("duplicate values for key: " + keysAndValues[i]); } args[keysAndValues[i]] = keysAndValues[i + 1]; - } - if (matchVersion != null) - { - string previous; - if (args.TryGetValue("luceneMatchVersion", out previous)) - { - fail("duplicate values for key: luceneMatchVersion"); - } - args["luceneMatchVersion"] = matchVersion.ToString(); + if (args.TryGetValue("luceneMatchVersion", out previous)) + { + fail("duplicate values for key: luceneMatchVersion"); } + args["luceneMatchVersion"] = matchVersion.ToString(); AbstractAnalysisFactory factory = null; try @@ -117,7 +112,7 @@ protected internal virtual TokenizerFactory TokenizerFactory(string name, params /// protected internal virtual TokenizerFactory TokenizerFactory(string name, Version version, params string[] keysAndValues) { - return TokenizerFactory(name, version, new ClasspathResourceLoader(this.GetType()), keysAndValues); + return TokenizerFactory(name, version, GetCurrentTypeResourceLoader(), keysAndValues); } /// @@ -136,7 +131,7 @@ protected internal virtual TokenizerFactory TokenizerFactory(string name, Versio /// protected internal virtual TokenFilterFactory TokenFilterFactory(string name, Version version, params string[] keysAndValues) { - return TokenFilterFactory(name, version, new ClasspathResourceLoader(this.GetType()), keysAndValues); + return TokenFilterFactory(name, version, GetCurrentTypeResourceLoader(), keysAndValues); } /// @@ -165,7 +160,7 @@ protected internal virtual TokenFilterFactory TokenFilterFactory(string name, Ve /// protected internal virtual CharFilterFactory CharFilterFactory(string name, params string[] keysAndValues) { - return CharFilterFactory(name, TEST_VERSION_CURRENT, new ClasspathResourceLoader(this.GetType()), keysAndValues); + return CharFilterFactory(name, TEST_VERSION_CURRENT, GetCurrentTypeResourceLoader(), keysAndValues); } /// @@ -176,5 +171,15 @@ protected internal virtual CharFilterFactory CharFilterFactory(string name, Vers { return (CharFilterFactory)AnalysisFactory(Lucene.Net.Analysis.Util.CharFilterFactory.LookupClass(name), matchVersion, loader, keysAndValues); } + + /// + /// Added for .NET support. Since the namespace of the classes don't match the assembly name, we need to + /// exclude part of the namespace. + /// + /// + protected internal virtual IResourceLoader GetCurrentTypeResourceLoader() + { + return new ClasspathResourceLoader(this.GetType(), "Lucene.Net"); + } } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 40a55722c9..6026219664 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -54,6 +54,7 @@ Code + Code @@ -131,6 +132,11 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

+

Introductions

+

+

Blogs

+

+

Books

+

+

Articles

+

+

Interviews

+

+

Papers

+

+

Presentations

+

+

Training

+

+

Corpora

+

+

Other

+
  • Lucene Resources - Articles, Books, FAQs, Forums, Presentations, Wiki.

  • Lucene Search Forum - hosted by Nabble archiving all Lucene and Nutch mailing lists into a searchable archive/forum. The search is coded using Lucene.

  • LuceneTutorial.com - Tips and tricks, sample applications, code samples, best practices.

Resources (last edited 2010-05-03 22:31:43 by SteveRowe)

+ +
+
+ + + + + + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/LuceneResourcesWikiPageURLs.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/LuceneResourcesWikiPageURLs.txt new file mode 100644 index 0000000000..e8ca5aa038 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/LuceneResourcesWikiPageURLs.txt @@ -0,0 +1,105 @@ +http://www.w3.org/TR/html4/strict.dtd +http://lucene.apache.org/java/3_0_1/api/all/overview-summary.html#overview_description +http://lucene.apache.org/java/3_0_1/gettingstarted.html +http://lucene.grantingersoll.com +http://www.lucidimagination.com/blog/ +http://blog.sematext.com/ +http://www.manning.com/hatcher3/hatcher3_cover150.jpg +http://www.manning.com/hatcher3/hatcher3_cover150.jpg +http://www.manning.com/hatcher3/hatcher3_cover150.jpg +http://www.manning.com/hatcher3/ +http://www.amazon.com/Building-Search-Applications-Lucene-Lingpipe/dp/0615204252/ +http://www.amazon.co.jp/exec/obidos/ASIN/4774127809/503-9461699-1775907 +http://www.lucenebook.com +http://www.amazon.com/exec/obidos/ASIN/1932394281 +Amazon.com +http://www.amazon.de/Suchmaschinen-entwickeln-mit-Apache-Lucene/dp/3935042450 +http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Getting-Started-with-Lucene/ +http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Optimizing-Findability-in-Lucene-and-Solr/ +http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Debugging-Relevance-Issues-in-Search/ +http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Scaling-Lucene-and-Solr/ +http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Introduction-to-Apache-Lucene-and-Solr/ +http://cephas.net/blog/2008/03/30/how-morelikethis-works-in-lucene/ +http://schmidt.devlib.org/software/lucene-wikipedia.html +http://marceloochoa.blogspot.com/2007/09/running-lucene-inside-your-oracle-jvm.html +http://www.onjava.com/pub/a/onjava/2007/05/24/using-the-lucene-query-parser-without-lucene.html +http://www.javaworld.com/javaworld/jw-09-2006/jw-0925-lucene.html +http://www-128.ibm.com/developerworks/java/library/wa-lucene2/index.html?ca=drs- +http://www.freesearch.pe.kr/tag/Lucene +http://www-128.ibm.com/developerworks/java/library/wa-lucene/index.html +http://www.onjava.com/pub/a/onjava/2006/01/18/using-lucene-to-search-java-source.html +http://www.jroller.com/page/wakaleo/?anchor=lucene_a_tutorial_introduction_to +http://blog.dev.sf.net/index.php?/archives/10-Behind-the-Scenes-of-the-SourceForge.net-Search-System.html +SourceForge.net +http://today.java.net/pub/a/today/2005/08/09/didyoumean.html +http://www.developer.com/java/other/article.php/3490471 +http://www.theserverside.com/tt/articles/article.tss?l=ILoveLucene +http://javaboutique.internet.com/tutorials/HTMLParser/article.html +http://bilgidata.com/localhost/bilgidata/yazi.jsp@dosya=a_lucene.xml.html +http://www.chedong.com/tech/lucene.html +http://javatechniques.com/public/java/docs/basics/lucene-memory-search.html +http://www.javaranch.com/newsletter/200404/Lucene.html +http://www.darksleep.com/lucene/ +http://www-igm.univ-mlv.fr/~dr/XPOSE2003/lucene/articleLucene.html +http://today.java.net/pub/a/today/2003/11/07/QueryParserRules.html +http://builder.com.com/5100-6389-5054799.html +http://today.java.net/pub/a/today/2003/07/30/LuceneIntro.html +http://www-106.ibm.com/developerworks/library/j-lucene/ +http://www.xml.com/pub/a/ws/2003/05/13/email.html +http://www.onjava.com/pub/a/onjava/2003/03/05/lucene.html +http://www.onjava.com/pub/a/onjava/2003/01/15/lucene.html +http://javangelist.snipsnap.org/space/Lucene-Mini-Tutorial +http://www.javaworld.com/javaworld/jw-09-2000/jw-0915-lucene.html +http://www.lucidimagination.com/index.php?option=com_content&task=view&id=109 +http://www.lucidimagination.com/index.php?option=com_content&task=view&id=108 +http://www.lucidimagination.com/index.php?option=com_content&task=view&id=113 +http://lucene.sourceforge.net/publications.html +http://lucene.sourceforge.net/publications.html +http://people.apache.org/~buschmi/apachecon/AdvancedIndexingLuceneAtlanta07.ppt +http://www.us.apachecon.com/us2007/ +http://people.apache.org/~yonik/presentations/lucene_intro.pdf +http://www.eu.apachecon.com +http://www.cnlp.org/presentations/slides/AdvancedLuceneEU.pdf +http://www.cnlp.org +http://www.eu.apachecon.com +http://blogs.atlassian.com/rebelutionary/downloads/tssjs2007-lucene-generic-data-indexing.pdf +http://www.atlassian.com/ +http://javasymposium.techtarget.com/lasvegas/index.html +http://www.cnlp.org/apachecon2005/AdvancedLucene.ppt +http://www.cnlp.org +http://www.apachecon.com +http://www.cnlp.org +http://www.cnlp.org +http://www.cnlp.org/apachecon2005 +http://lucene.sourceforge.net/talks/pisa/ +http://conferences.oreillynet.com/presentations/os2003/hatcher_erik_lucene.pdf +http://lucene.sourceforge.net/talks/inktomi/ +http://www.lucidimagination.com/How-We-Can-Help/Training/ +http://www.lucidimagination.com/How-We-Can-Help/Training/ +http://www.lucenebootcamp.com +http://www.apachecon.com +http://rdf.dmoz.org/ +http://rdf.dmoz.org/ +http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/www/data/news20.html +http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/www/data/news20.html +http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/www/data/ +http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/www/data/ +http://www.daviddlewis.com/resources/testcollections/reuters21578 +http://www.daviddlewis.com/resources/testcollections/reuters21578 +http://www-2.cs.cmu.edu/~enron/ +http://www-2.cs.cmu.edu/~enron/ +http://wt.jrc.it/lt/Acquis/ +http://wt.jrc.it/lt/Acquis/ +http://www.java201.com/resources/browse/38-all.html +http://www.nabble.com/Web-Search-f2787.html +http://www.nabble.com +http://www.lucenetutorial.com +LuceneTutorial.com +ist-h335-d03.syr.edu +128.230.84.100 +ist-h335-d03.syr.edu +128.230.84.100 +http://moinmo.in/ +http://moinmo.in/Python +http://moinmo.in/GPL +http://validator.w3.org/check?uri=referer diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailAnalyzer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailAnalyzer.cs index debb86f30f..3cd50b1992 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailAnalyzer.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailAnalyzer.cs @@ -1,10 +1,13 @@ -using System; +using Lucene.Net.Analysis.Standard; +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; +using System; using System.Text; -namespace org.apache.lucene.analysis.core +namespace Lucene.Net.Analysis.Core { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -21,341 +24,303 @@ namespace org.apache.lucene.analysis.core * limitations under the License. */ - using UAX29URLEmailAnalyzer = org.apache.lucene.analysis.standard.UAX29URLEmailAnalyzer; - using Version = org.apache.lucene.util.Version; - - - public class TestUAX29URLEmailAnalyzer : BaseTokenStreamTestCase - { - - private Analyzer a = new UAX29URLEmailAnalyzer(TEST_VERSION_CURRENT); - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHugeDoc() throws java.io.IOException - public virtual void testHugeDoc() - { - StringBuilder sb = new StringBuilder(); - char[] whitespace = new char[4094]; - Arrays.fill(whitespace, ' '); - sb.Append(whitespace); - sb.Append("testing 1234"); - string input = sb.ToString(); - BaseTokenStreamTestCase.assertAnalyzesTo(a, input, new string[]{"testing", "1234"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testArmenian() throws Exception - public virtual void testArmenian() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "Վիքիպեդիայի 13 միլիոն հոդվածները (4,600` հայերեն վիքիպեդիայում) գրվել են կամավորների կողմից ու համարյա բոլոր հոդվածները կարող է խմբագրել ցանկաց մարդ ով կարող է բացել Վիքիպեդիայի կայքը։", new string[] {"վիքիպեդիայի", "13", "միլիոն", "հոդվածները", "4,600", "հայերեն", "վիքիպեդիայում", "գրվել", "են", "կամավորների", "կողմից", "ու", "համարյա", "բոլոր", "հոդվածները", "կարող", "է", "խմբագրել", "ցանկաց", "մարդ", "ով", "կարող", "է", "բացել", "վիքիպեդիայի", "կայքը"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testAmharic() throws Exception - public virtual void testAmharic() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ዊኪፔድያ የባለ ብዙ ቋንቋ የተሟላ ትክክለኛና ነጻ መዝገበ ዕውቀት (ኢንሳይክሎፒዲያ) ነው። ማንኛውም", new string[] {"ዊኪፔድያ", "የባለ", "ብዙ", "ቋንቋ", "የተሟላ", "ትክክለኛና", "ነጻ", "መዝገበ", "ዕውቀት", "ኢንሳይክሎፒዲያ", "ነው", "ማንኛውም"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testArabic() throws Exception - public virtual void testArabic() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "الفيلم الوثائقي الأول عن ويكيبيديا يسمى \"الحقيقة بالأرقام: قصة ويكيبيديا\" (بالإنجليزية: Truth in Numbers: The Wikipedia Story)، سيتم إطلاقه في 2008.", new string[] {"الفيلم", "الوثائقي", "الأول", "عن", "ويكيبيديا", "يسمى", "الحقيقة", "بالأرقام", "قصة", "ويكيبيديا", "بالإنجليزية", "truth", "numbers", "wikipedia", "story", "سيتم", "إطلاقه", "في", "2008"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testAramaic() throws Exception - public virtual void testAramaic() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ܘܝܩܝܦܕܝܐ (ܐܢܓܠܝܐ: Wikipedia) ܗܘ ܐܝܢܣܩܠܘܦܕܝܐ ܚܐܪܬܐ ܕܐܢܛܪܢܛ ܒܠܫܢ̈ܐ ܣܓܝܐ̈ܐ܂ ܫܡܗ ܐܬܐ ܡܢ ܡ̈ܠܬܐ ܕ\"ܘܝܩܝ\" ܘ\"ܐܝܢܣܩܠܘܦܕܝܐ\"܀", new string[] {"ܘܝܩܝܦܕܝܐ", "ܐܢܓܠܝܐ", "wikipedia", "ܗܘ", "ܐܝܢܣܩܠܘܦܕܝܐ", "ܚܐܪܬܐ", "ܕܐܢܛܪܢܛ", "ܒܠܫܢ̈ܐ", "ܣܓܝܐ̈ܐ", "ܫܡܗ", "ܐܬܐ", "ܡܢ", "ܡ̈ܠܬܐ", "ܕ", "ܘܝܩܝ", "ܘ", "ܐܝܢܣܩܠܘܦܕܝܐ"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBengali() throws Exception - public virtual void testBengali() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "এই বিশ্বকোষ পরিচালনা করে উইকিমিডিয়া ফাউন্ডেশন (একটি অলাভজনক সংস্থা)। উইকিপিডিয়ার শুরু ১৫ জানুয়ারি, ২০০১ সালে। এখন পর্যন্ত ২০০টিরও বেশী ভাষায় উইকিপিডিয়া রয়েছে।", new string[] {"এই", "বিশ্বকোষ", "পরিচালনা", "করে", "উইকিমিডিয়া", "ফাউন্ডেশন", "একটি", "অলাভজনক", "সংস্থা", "উইকিপিডিয়ার", "শুরু", "১৫", "জানুয়ারি", "২০০১", "সালে", "এখন", "পর্যন্ত", "২০০টিরও", "বেশী", "ভাষায়", "উইকিপিডিয়া", "রয়েছে"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFarsi() throws Exception - public virtual void testFarsi() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ویکی پدیای انگلیسی در تاریخ ۲۵ دی ۱۳۷۹ به صورت مکملی برای دانشنامهٔ تخصصی نوپدیا نوشته شد.", new string[] {"ویکی", "پدیای", "انگلیسی", "در", "تاریخ", "۲۵", "دی", "۱۳۷۹", "به", "صورت", "مکملی", "برای", "دانشنامهٔ", "تخصصی", "نوپدیا", "نوشته", "شد"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testGreek() throws Exception - public virtual void testGreek() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "Γράφεται σε συνεργασία από εθελοντές με το λογισμικό wiki, κάτι που σημαίνει ότι άρθρα μπορεί να προστεθούν ή να αλλάξουν από τον καθένα.", new string[] {"γράφεται", "σε", "συνεργασία", "από", "εθελοντές", "με", "το", "λογισμικό", "wiki", "κάτι", "που", "σημαίνει", "ότι", "άρθρα", "μπορεί", "να", "προστεθούν", "ή", "να", "αλλάξουν", "από", "τον", "καθένα"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testThai() throws Exception - public virtual void testThai() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "การที่ได้ต้องแสดงว่างานดี. แล้วเธอจะไปไหน? ๑๒๓๔", new string[] {"การที่ได้ต้องแสดงว่างานดี", "แล้วเธอจะไปไหน", "๑๒๓๔"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLao() throws Exception - public virtual void testLao() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ສາທາລະນະລັດ ປະຊາທິປະໄຕ ປະຊາຊົນລາວ", new string[] {"ສາທາລະນະລັດ", "ປະຊາທິປະໄຕ", "ປະຊາຊົນລາວ"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTibetan() throws Exception - public virtual void testTibetan() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "སྣོན་མཛོད་དང་ལས་འདིས་བོད་ཡིག་མི་ཉམས་གོང་འཕེལ་དུ་གཏོང་བར་ཧ་ཅང་དགེ་མཚན་མཆིས་སོ། །", new string[] {"སྣོན", "མཛོད", "དང", "ལས", "འདིས", "བོད", "ཡིག", "མི", "ཉམས", "གོང", "འཕེལ", "དུ", "གཏོང", "བར", "ཧ", "ཅང", "དགེ", "མཚན", "མཆིས", "སོ"}); - } - - /* - * For chinese, tokenize as char (these can later form bigrams or whatever) - */ -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testChinese() throws Exception - public virtual void testChinese() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "我是中国人。 1234 Tests ", new string[] {"我", "是", "中", "国", "人", "1234", "tests"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmpty() throws Exception - public virtual void testEmpty() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "", new string[] {}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, ".", new string[] {}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, " ", new string[] {}); - } - - /* test various jira issues this analyzer is related to */ - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLUCENE1545() throws Exception - public virtual void testLUCENE1545() - { - /* - * Standard analyzer does not correctly tokenize combining character U+0364 COMBINING LATIN SMALL LETTER E. - * The word "moͤchte" is incorrectly tokenized into "mo" "chte", the combining character is lost. - * Expected result is only one token "moͤchte". - */ - BaseTokenStreamTestCase.assertAnalyzesTo(a, "moͤchte", new string[] {"moͤchte"}); - } - - /* Tests from StandardAnalyzer, just to show behavior is similar */ -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testAlphanumericSA() throws Exception - public virtual void testAlphanumericSA() - { - // alphanumeric tokens - BaseTokenStreamTestCase.assertAnalyzesTo(a, "B2B", new string[]{"b2b"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "2B", new string[]{"2b"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDelimitersSA() throws Exception - public virtual void testDelimitersSA() - { - // other delimiters: "-", "/", "," - BaseTokenStreamTestCase.assertAnalyzesTo(a, "some-dashed-phrase", new string[]{"some", "dashed", "phrase"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "dogs,chase,cats", new string[]{"dogs", "chase", "cats"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ac/dc", new string[]{"ac", "dc"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testApostrophesSA() throws Exception - public virtual void testApostrophesSA() - { - // internal apostrophes: O'Reilly, you're, O'Reilly's - BaseTokenStreamTestCase.assertAnalyzesTo(a, "O'Reilly", new string[]{"o'reilly"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "you're", new string[]{"you're"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "she's", new string[]{"she's"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "Jim's", new string[]{"jim's"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "don't", new string[]{"don't"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "O'Reilly's", new string[]{"o'reilly's"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNumericSA() throws Exception - public virtual void testNumericSA() - { - // floating point, serial, model numbers, ip addresses, etc. - BaseTokenStreamTestCase.assertAnalyzesTo(a, "21.35", new string[]{"21.35"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "R2D2 C3PO", new string[]{"r2d2", "c3po"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "216.239.63.104", new string[]{"216.239.63.104"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "216.239.63.104", new string[]{"216.239.63.104"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTextWithNumbersSA() throws Exception - public virtual void testTextWithNumbersSA() - { - // numbers - BaseTokenStreamTestCase.assertAnalyzesTo(a, "David has 5000 bones", new string[]{"david", "has", "5000", "bones"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testVariousTextSA() throws Exception - public virtual void testVariousTextSA() - { - // various - BaseTokenStreamTestCase.assertAnalyzesTo(a, "C embedded developers wanted", new string[]{"c", "embedded", "developers", "wanted"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "foo bar FOO BAR", new string[]{"foo", "bar", "foo", "bar"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "foo bar . FOO <> BAR", new string[]{"foo", "bar", "foo", "bar"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "\"QUOTED\" word", new string[]{"quoted", "word"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testKoreanSA() throws Exception - public virtual void testKoreanSA() - { - // Korean words - BaseTokenStreamTestCase.assertAnalyzesTo(a, "안녕하세요 한글입니다", new string[]{"안녕하세요", "한글입니다"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOffsets() throws Exception - public virtual void testOffsets() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "David has 5000 bones", new string[] {"david", "has", "5000", "bones"}, new int[] {0, 6, 10, 15}, new int[] {5, 9, 14, 20}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTypes() throws Exception - public virtual void testTypes() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "david has 5000 bones", new string[] {"david", "has", "5000", "bones"}, new string[] {"", "", "", ""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSupplementary() throws Exception - public virtual void testSupplementary() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "𩬅艱鍟䇹愯瀛", new string[] {"𩬅", "艱", "鍟", "䇹", "愯", "瀛"}, new string[] {"", "", "", "", "", ""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testKorean() throws Exception - public virtual void testKorean() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "훈민정음", new string[] {"훈민정음"}, new string[] {""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testJapanese() throws Exception - public virtual void testJapanese() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "仮名遣い カタカナ", new string[] {"仮", "名", "遣", "い", "カタカナ"}, new string[] {"", "", "", "", ""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testCombiningMarks() throws Exception - public virtual void testCombiningMarks() - { - checkOneTerm(a, "ざ", "ざ"); // hiragana - checkOneTerm(a, "ザ", "ザ"); // katakana - checkOneTerm(a, "壹゙", "壹゙"); // ideographic - checkOneTerm(a, "아゙", "아゙"); // hangul - } - - /// @deprecated remove this and sophisticated backwards layer in 5.0 -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Deprecated("remove this and sophisticated backwards layer in 5.0") public void testCombiningMarksBackwards() throws Exception - [Obsolete("remove this and sophisticated backwards layer in 5.0")] - public virtual void testCombiningMarksBackwards() - { - Analyzer a = new UAX29URLEmailAnalyzer(Version.LUCENE_33); - checkOneTerm(a, "ざ", "さ"); // hiragana Bug - checkOneTerm(a, "ザ", "ザ"); // katakana Works - checkOneTerm(a, "壹゙", "壹"); // ideographic Bug - checkOneTerm(a, "아゙", "아゙"); // hangul Works - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBasicEmails() throws Exception - public virtual void testBasicEmails() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "one test@example.com two three [A@example.CO.UK] \"ArakaBanassaMassanaBakarA\" ", new string[] {"one", "test@example.com", "two", "three", "a@example.co.uk", "arakabanassamassanabakara", "info@info.info"}, new string[] {"", "", "", "", "", "", ""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMailtoSchemeEmails() throws Exception - public virtual void testMailtoSchemeEmails() - { - // See LUCENE-3880 - BaseTokenStreamTestCase.assertAnalyzesTo(a, "MAILTO:Test@Example.ORG", new string[] {"mailto", "test@example.org"}, new string[] {"", ""}); - - // TODO: Support full mailto: scheme URIs. See RFC 6068: http://tools.ietf.org/html/rfc6068 - BaseTokenStreamTestCase.assertAnalyzesTo(a, "mailto:personA@example.com,personB@example.com?cc=personC@example.com" + "&subject=Subjectivity&body=Corpusivity%20or%20something%20like%20that", new string[] {"mailto", "persona@example.com", ",personb@example.com", "?cc=personc@example.com", "subject", "subjectivity", "body", "corpusivity", "20or", "20something","20like", "20that"}, new string[] {"", "", "", "", "", "", "", "", "", "", "", ""}); // TODO: Hex decoding + re-tokenization - TODO: split field keys/values - // TODO: recognize ',' address delimiter. Also, see examples of ';' delimiter use at: http://www.mailto.co.uk/ - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBasicURLs() throws Exception - public virtual void testBasicURLs() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "a b-D ftp://www.example.com/ABC.txt file:///C:/path/to/a/FILE.txt C", new string[] {"https://example.net/omg/isnt/that/nice?no=its&n%30t#mntl-e", "b", "d", "ftp://www.example.com/abc.txt", "file:///c:/path/to/a/file.txt", "c"}, new string[] {"", "", "", "", "", ""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNoSchemeURLs() throws Exception - public virtual void testNoSchemeURLs() - { - // ".ph" is a Top Level Domain - BaseTokenStreamTestCase.assertAnalyzesTo(a, "", new string[]{"index.ph"}, new string[]{""}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "index.ph", new string[]{"index.ph"}, new string[]{""}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "index.php", new string[]{"index.php"}, new string[]{""}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "index.phα", new string[]{"index.phα"}, new string[]{""}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "index-h.php", new string[] {"index", "h.php"}, new string[] {"",""}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "index2.php", new string[] {"index2", "php"}, new string[] {"", ""}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "index2.ph9,", new string[] {"index2", "ph9"}, new string[] {"", ""}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com,example.ph,index.php,index2.php,example2.ph", new string[] {"example.com", "example.ph", "index.php", "index2", "php", "example2.ph"}, new string[] {"", "", "", "", "", ""}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com:8080 example.com/path/here example.com?query=something example.com#fragment", new string[] {"example.com:8080", "example.com/path/here", "example.com?query=something", "example.com#fragment"}, new string[] {"", "", "", ""}); + public class TestUAX29URLEmailAnalyzer : BaseTokenStreamTestCase + { + + private Analyzer a = new UAX29URLEmailAnalyzer(TEST_VERSION_CURRENT); + + [Test] + public virtual void TestHugeDoc() + { + StringBuilder sb = new StringBuilder(); + char[] whitespace = new char[4094]; + Arrays.Fill(whitespace, ' '); + sb.Append(whitespace); + sb.Append("testing 1234"); + string input = sb.ToString(); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, input, new string[] { "testing", "1234" }); + } + + [Test] + public virtual void TestArmenian() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "Վիքիպեդիայի 13 միլիոն հոդվածները (4,600` հայերեն վիքիպեդիայում) գրվել են կամավորների կողմից ու համարյա բոլոր հոդվածները կարող է խմբագրել ցանկաց մարդ ով կարող է բացել Վիքիպեդիայի կայքը։", new string[] { "վիքիպեդիայի", "13", "միլիոն", "հոդվածները", "4,600", "հայերեն", "վիքիպեդիայում", "գրվել", "են", "կամավորների", "կողմից", "ու", "համարյա", "բոլոր", "հոդվածները", "կարող", "է", "խմբագրել", "ցանկաց", "մարդ", "ով", "կարող", "է", "բացել", "վիքիպեդիայի", "կայքը" }); + } + + [Test] + public virtual void TestAmharic() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ዊኪፔድያ የባለ ብዙ ቋንቋ የተሟላ ትክክለኛና ነጻ መዝገበ ዕውቀት (ኢንሳይክሎፒዲያ) ነው። ማንኛውም", new string[] { "ዊኪፔድያ", "የባለ", "ብዙ", "ቋንቋ", "የተሟላ", "ትክክለኛና", "ነጻ", "መዝገበ", "ዕውቀት", "ኢንሳይክሎፒዲያ", "ነው", "ማንኛውም" }); + } + + [Test] + public virtual void TestArabic() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "الفيلم الوثائقي الأول عن ويكيبيديا يسمى \"الحقيقة بالأرقام: قصة ويكيبيديا\" (بالإنجليزية: Truth in Numbers: The Wikipedia Story)، سيتم إطلاقه في 2008.", new string[] { "الفيلم", "الوثائقي", "الأول", "عن", "ويكيبيديا", "يسمى", "الحقيقة", "بالأرقام", "قصة", "ويكيبيديا", "بالإنجليزية", "truth", "numbers", "wikipedia", "story", "سيتم", "إطلاقه", "في", "2008" }); + } + + [Test] + public virtual void TestAramaic() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ܘܝܩܝܦܕܝܐ (ܐܢܓܠܝܐ: Wikipedia) ܗܘ ܐܝܢܣܩܠܘܦܕܝܐ ܚܐܪܬܐ ܕܐܢܛܪܢܛ ܒܠܫܢ̈ܐ ܣܓܝܐ̈ܐ܂ ܫܡܗ ܐܬܐ ܡܢ ܡ̈ܠܬܐ ܕ\"ܘܝܩܝ\" ܘ\"ܐܝܢܣܩܠܘܦܕܝܐ\"܀", new string[] { "ܘܝܩܝܦܕܝܐ", "ܐܢܓܠܝܐ", "wikipedia", "ܗܘ", "ܐܝܢܣܩܠܘܦܕܝܐ", "ܚܐܪܬܐ", "ܕܐܢܛܪܢܛ", "ܒܠܫܢ̈ܐ", "ܣܓܝܐ̈ܐ", "ܫܡܗ", "ܐܬܐ", "ܡܢ", "ܡ̈ܠܬܐ", "ܕ", "ܘܝܩܝ", "ܘ", "ܐܝܢܣܩܠܘܦܕܝܐ" }); + } + + [Test] + public virtual void TestBengali() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "এই বিশ্বকোষ পরিচালনা করে উইকিমিডিয়া ফাউন্ডেশন (একটি অলাভজনক সংস্থা)। উইকিপিডিয়ার শুরু ১৫ জানুয়ারি, ২০০১ সালে। এখন পর্যন্ত ২০০টিরও বেশী ভাষায় উইকিপিডিয়া রয়েছে।", new string[] { "এই", "বিশ্বকোষ", "পরিচালনা", "করে", "উইকিমিডিয়া", "ফাউন্ডেশন", "একটি", "অলাভজনক", "সংস্থা", "উইকিপিডিয়ার", "শুরু", "১৫", "জানুয়ারি", "২০০১", "সালে", "এখন", "পর্যন্ত", "২০০টিরও", "বেশী", "ভাষায়", "উইকিপিডিয়া", "রয়েছে" }); + } + + [Test] + public virtual void TestFarsi() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ویکی پدیای انگلیسی در تاریخ ۲۵ دی ۱۳۷۹ به صورت مکملی برای دانشنامهٔ تخصصی نوپدیا نوشته شد.", new string[] { "ویکی", "پدیای", "انگلیسی", "در", "تاریخ", "۲۵", "دی", "۱۳۷۹", "به", "صورت", "مکملی", "برای", "دانشنامهٔ", "تخصصی", "نوپدیا", "نوشته", "شد" }); + } + + [Test] + public virtual void TestGreek() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "Γράφεται σε συνεργασία από εθελοντές με το λογισμικό wiki, κάτι που σημαίνει ότι άρθρα μπορεί να προστεθούν ή να αλλάξουν από τον καθένα.", new string[] { "γράφεται", "σε", "συνεργασία", "από", "εθελοντές", "με", "το", "λογισμικό", "wiki", "κάτι", "που", "σημαίνει", "ότι", "άρθρα", "μπορεί", "να", "προστεθούν", "ή", "να", "αλλάξουν", "από", "τον", "καθένα" }); + } + + [Test] + public virtual void TestThai() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "การที่ได้ต้องแสดงว่างานดี. แล้วเธอจะไปไหน? ๑๒๓๔", new string[] { "การที่ได้ต้องแสดงว่างานดี", "แล้วเธอจะไปไหน", "๑๒๓๔" }); + } + + [Test] + public virtual void TestLao() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ສາທາລະນະລັດ ປະຊາທິປະໄຕ ປະຊາຊົນລາວ", new string[] { "ສາທາລະນະລັດ", "ປະຊາທິປະໄຕ", "ປະຊາຊົນລາວ" }); + } + + [Test] + public virtual void TestTibetan() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "སྣོན་མཛོད་དང་ལས་འདིས་བོད་ཡིག་མི་ཉམས་གོང་འཕེལ་དུ་གཏོང་བར་ཧ་ཅང་དགེ་མཚན་མཆིས་སོ། །", new string[] { "སྣོན", "མཛོད", "དང", "ལས", "འདིས", "བོད", "ཡིག", "མི", "ཉམས", "གོང", "འཕེལ", "དུ", "གཏོང", "བར", "ཧ", "ཅང", "དགེ", "མཚན", "མཆིས", "སོ" }); + } + + /* + * For chinese, tokenize as char (these can later form bigrams or whatever) + */ + [Test] + public virtual void TestChinese() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "我是中国人。 1234 Tests ", new string[] { "我", "是", "中", "国", "人", "1234", "tests" }); + } + + [Test] + public virtual void TestEmpty() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "", new string[] { }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, ".", new string[] { }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, " ", new string[] { }); + } + + /* test various jira issues this analyzer is related to */ + + [Test] + public virtual void TestLUCENE1545() + { + /* + * Standard analyzer does not correctly tokenize combining character U+0364 COMBINING LATIN SMALL LETTER E. + * The word "moͤchte" is incorrectly tokenized into "mo" "chte", the combining character is lost. + * Expected result is only one token "moͤchte". + */ + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "moͤchte", new string[] { "moͤchte" }); + } + + /* Tests from StandardAnalyzer, just to show behavior is similar */ + [Test] + public virtual void TestAlphanumericSA() + { + // alphanumeric tokens + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "B2B", new string[] { "b2b" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "2B", new string[] { "2b" }); + } + + [Test] + public virtual void TestDelimitersSA() + { + // other delimiters: "-", "/", "," + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "some-dashed-phrase", new string[] { "some", "dashed", "phrase" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "dogs,chase,cats", new string[] { "dogs", "chase", "cats" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ac/dc", new string[] { "ac", "dc" }); + } + + [Test] + public virtual void TestApostrophesSA() + { + // internal apostrophes: O'Reilly, you're, O'Reilly's + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "O'Reilly", new string[] { "o'reilly" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "you're", new string[] { "you're" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "she's", new string[] { "she's" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "Jim's", new string[] { "jim's" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "don't", new string[] { "don't" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "O'Reilly's", new string[] { "o'reilly's" }); + } + + [Test] + public virtual void TestNumericSA() + { + // floating point, serial, model numbers, ip addresses, etc. + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "21.35", new string[] { "21.35" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "R2D2 C3PO", new string[] { "r2d2", "c3po" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "216.239.63.104", new string[] { "216.239.63.104" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "216.239.63.104", new string[] { "216.239.63.104" }); + } + + [Test] + public virtual void TestTextWithNumbersSA() + { + // numbers + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "David has 5000 bones", new string[] { "david", "has", "5000", "bones" }); + } + + [Test] + public virtual void TestVariousTextSA() + { + // various + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "C embedded developers wanted", new string[] { "c", "embedded", "developers", "wanted" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "foo bar FOO BAR", new string[] { "foo", "bar", "foo", "bar" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "foo bar . FOO <> BAR", new string[] { "foo", "bar", "foo", "bar" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "\"QUOTED\" word", new string[] { "quoted", "word" }); + } + + [Test] + public virtual void TestKoreanSA() + { + // Korean words + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "안녕하세요 한글입니다", new string[] { "안녕하세요", "한글입니다" }); + } + + [Test] + public virtual void TestOffsets() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "David has 5000 bones", new string[] { "david", "has", "5000", "bones" }, new int[] { 0, 6, 10, 15 }, new int[] { 5, 9, 14, 20 }); + } + + [Test] + public virtual void TestTypes() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "david has 5000 bones", new string[] { "david", "has", "5000", "bones" }, new string[] { "", "", "", "" }); + } + + [Test] + public virtual void TestSupplementary() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "𩬅艱鍟䇹愯瀛", new string[] { "𩬅", "艱", "鍟", "䇹", "愯", "瀛" }, new string[] { "", "", "", "", "", "" }); + } + + [Test] + public virtual void TestKorean() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "훈민정음", new string[] { "훈민정음" }, new string[] { "" }); + } + + [Test] + public virtual void TestJapanese() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "仮名遣い カタカナ", new string[] { "仮", "名", "遣", "い", "カタカナ" }, new string[] { "", "", "", "", "" }); + } + + [Test] + public virtual void TestCombiningMarks() + { + CheckOneTerm(a, "ざ", "ざ"); // hiragana + CheckOneTerm(a, "ザ", "ザ"); // katakana + CheckOneTerm(a, "壹゙", "壹゙"); // ideographic + CheckOneTerm(a, "아゙", "아゙"); // hangul + } + + /// @deprecated remove this and sophisticated backwards layer in 5.0 + [Test] + [Obsolete("remove this and sophisticated backwards layer in 5.0")] + public virtual void TestCombiningMarksBackwards() + { + Analyzer a = new UAX29URLEmailAnalyzer(LuceneVersion.LUCENE_33); + CheckOneTerm(a, "ざ", "さ"); // hiragana Bug + CheckOneTerm(a, "ザ", "ザ"); // katakana Works + CheckOneTerm(a, "壹゙", "壹"); // ideographic Bug + CheckOneTerm(a, "아゙", "아゙"); // hangul Works + } + + [Test] + public virtual void TestBasicEmails() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "one test@example.com two three [A@example.CO.UK] \"ArakaBanassaMassanaBakarA\" ", new string[] { "one", "test@example.com", "two", "three", "a@example.co.uk", "arakabanassamassanabakara", "info@info.info" }, new string[] { "", "", "", "", "", "", "" }); + } + + [Test] + public virtual void TestMailtoSchemeEmails() + { + // See LUCENE-3880 + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "MAILTO:Test@Example.ORG", new string[] { "mailto", "test@example.org" }, new string[] { "", "" }); + + // TODO: Support full mailto: scheme URIs. See RFC 6068: http://tools.ietf.org/html/rfc6068 + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "mailto:personA@example.com,personB@example.com?cc=personC@example.com" + "&subject=Subjectivity&body=Corpusivity%20or%20something%20like%20that", new string[] { "mailto", "persona@example.com", ",personb@example.com", "?cc=personc@example.com", "subject", "subjectivity", "body", "corpusivity", "20or", "20something", "20like", "20that" }, new string[] { "", "", "", "", "", "", "", "", "", "", "", "" }); // TODO: Hex decoding + re-tokenization - TODO: split field keys/values + // TODO: recognize ',' address delimiter. Also, see examples of ';' delimiter use at: http://www.mailto.co.uk/ + } + + [Test] + public virtual void TestBasicURLs() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "a b-D ftp://www.example.com/ABC.txt file:///C:/path/to/a/FILE.txt C", new string[] { "https://example.net/omg/isnt/that/nice?no=its&n%30t#mntl-e", "b", "d", "ftp://www.example.com/abc.txt", "file:///c:/path/to/a/file.txt", "c" }, new string[] { "", "", "", "", "", "" }); + } + + [Test] + public virtual void TestNoSchemeURLs() + { + // ".ph" is a Top Level Domain + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "", new string[] { "index.ph" }, new string[] { "" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "index.ph", new string[] { "index.ph" }, new string[] { "" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "index.php", new string[] { "index.php" }, new string[] { "" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "index.phα", new string[] { "index.phα" }, new string[] { "" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "index-h.php", new string[] { "index", "h.php" }, new string[] { "", "" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "index2.php", new string[] { "index2", "php" }, new string[] { "", "" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "index2.ph9,", new string[] { "index2", "ph9" }, new string[] { "", "" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com,example.ph,index.php,index2.php,example2.ph", new string[] { "example.com", "example.ph", "index.php", "index2", "php", "example2.ph" }, new string[] { "", "", "", "", "", "" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com:8080 example.com/path/here example.com?query=something example.com#fragment", new string[] { "example.com:8080", "example.com/path/here", "example.com?query=something", "example.com#fragment" }, new string[] { "", "", "", "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com:8080/path/here?query=something#fragment", new string[] {"example.com:8080/path/here?query=something#fragment"}, new string[] {""}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com:8080/path/here?query=something", new string[] {"example.com:8080/path/here?query=something"}, new string[] {""}); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com:8080/path/here?query=something#fragment", new string[] { "example.com:8080/path/here?query=something#fragment" }, new string[] { "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com:8080/path/here#fragment", new string[] {"example.com:8080/path/here#fragment"}, new string[] {""}); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com:8080/path/here?query=something", new string[] { "example.com:8080/path/here?query=something" }, new string[] { "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com:8080/path/here", new string[] {"example.com:8080/path/here"}, new string[] {""}); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com:8080/path/here#fragment", new string[] { "example.com:8080/path/here#fragment" }, new string[] { "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com:8080?query=something#fragment", new string[] {"example.com:8080?query=something#fragment"}, new string[] {""}); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com:8080/path/here", new string[] { "example.com:8080/path/here" }, new string[] { "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com:8080?query=something", new string[] {"example.com:8080?query=something"}, new string[] {""}); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com:8080?query=something#fragment", new string[] { "example.com:8080?query=something#fragment" }, new string[] { "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com:8080#fragment", new string[] {"example.com:8080#fragment"}, new string[] {""}); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com:8080?query=something", new string[] { "example.com:8080?query=something" }, new string[] { "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com/path/here?query=something#fragment", new string[] {"example.com/path/here?query=something#fragment"}, new string[] {""}); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com:8080#fragment", new string[] { "example.com:8080#fragment" }, new string[] { "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com/path/here?query=something", new string[] {"example.com/path/here?query=something"}, new string[] {""}); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com/path/here?query=something#fragment", new string[] { "example.com/path/here?query=something#fragment" }, new string[] { "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com/path/here#fragment", new string[] {"example.com/path/here#fragment"}, new string[] {""}); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com/path/here?query=something", new string[] { "example.com/path/here?query=something" }, new string[] { "" }); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "example.com?query=something#fragment", new string[] {"example.com?query=something#fragment"}, new string[] {""}); - } + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com/path/here#fragment", new string[] { "example.com/path/here#fragment" }, new string[] { "" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "example.com?query=something#fragment", new string[] { "example.com?query=something#fragment" }, new string[] { "" }); + } - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - checkRandomData(random(), new UAX29URLEmailAnalyzer(TEST_VERSION_CURRENT), 1000 * RANDOM_MULTIPLIER); - } - } + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + CheckRandomData(Random(), new UAX29URLEmailAnalyzer(TEST_VERSION_CURRENT), 1000 * RANDOM_MULTIPLIER); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailTokenizer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailTokenizer.cs index d8ccc13997..005446d29d 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailTokenizer.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailTokenizer.cs @@ -1,17 +1,17 @@ -using System; +using Lucene.Net.Analysis.Standard; +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; +using System; using System.Collections.Generic; +using System.IO; +using System.Linq; using System.Text; -namespace org.apache.lucene.analysis.core +namespace Lucene.Net.Analysis.Core { - - using StandardAnalyzer = org.apache.lucene.analysis.standard.StandardAnalyzer; - using UAX29URLEmailTokenizer = org.apache.lucene.analysis.standard.UAX29URLEmailTokenizer; - using TypeAttribute = org.apache.lucene.analysis.tokenattributes.TypeAttribute; - using Version = org.apache.lucene.util.Version; - - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -28,710 +28,666 @@ namespace org.apache.lucene.analysis.core * limitations under the License. */ - public class TestUAX29URLEmailTokenizer : BaseTokenStreamTestCase - { - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHugeDoc() throws java.io.IOException - public virtual void testHugeDoc() - { - StringBuilder sb = new StringBuilder(); - char[] whitespace = new char[4094]; - Arrays.fill(whitespace, ' '); - sb.Append(whitespace); - sb.Append("testing 1234"); - string input = sb.ToString(); - UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, new StringReader(input)); - BaseTokenStreamTestCase.assertTokenStreamContents(tokenizer, new string[] {"testing", "1234"}); - } - - private Analyzer a = new AnalyzerAnonymousInnerClassHelper(); - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - public AnalyzerAnonymousInnerClassHelper() - { - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - - Tokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, reader); - return new TokenStreamComponents(tokenizer); - } - } - - - /// - /// Passes through tokens with type "" and blocks all other types. - private class URLFilter : TokenFilter - { - private readonly TestUAX29URLEmailTokenizer outerInstance; - - internal readonly TypeAttribute typeAtt = addAttribute(typeof(TypeAttribute)); - public URLFilter(TestUAX29URLEmailTokenizer outerInstance, TokenStream @in) : base(@in) - { - this.outerInstance = outerInstance; - } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public final boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - bool isTokenAvailable = false; - while (input.incrementToken()) - { - if (typeAtt.type() == UAX29URLEmailTokenizer.TOKEN_TYPES[UAX29URLEmailTokenizer.URL]) - { - isTokenAvailable = true; - break; - } - } - return isTokenAvailable; - } - } - - /// - /// Passes through tokens with type "" and blocks all other types. - private class EmailFilter : TokenFilter - { - private readonly TestUAX29URLEmailTokenizer outerInstance; - - internal readonly TypeAttribute typeAtt = addAttribute(typeof(TypeAttribute)); - public EmailFilter(TestUAX29URLEmailTokenizer outerInstance, TokenStream @in) : base(@in) - { - this.outerInstance = outerInstance; - } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public final boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - bool isTokenAvailable = false; - while (input.incrementToken()) - { - if (typeAtt.type() == UAX29URLEmailTokenizer.TOKEN_TYPES[UAX29URLEmailTokenizer.EMAIL]) - { - isTokenAvailable = true; - break; - } - } - return isTokenAvailable; - } - } - - private Analyzer urlAnalyzer = new AnalyzerAnonymousInnerClassHelper(); - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - public AnalyzerAnonymousInnerClassHelper() - { - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, reader); - tokenizer.MaxTokenLength = int.MaxValue; // Tokenize arbitrary length URLs - TokenFilter filter = new URLFilter(tokenizer); - return new TokenStreamComponents(tokenizer, filter); - } - } - - private Analyzer emailAnalyzer = new AnalyzerAnonymousInnerClassHelper2(); - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - public AnalyzerAnonymousInnerClassHelper2() - { - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, reader); - TokenFilter filter = new EmailFilter(tokenizer); - return new TokenStreamComponents(tokenizer, filter); - } - } - - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testArmenian() throws Exception - public virtual void testArmenian() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "Վիքիպեդիայի 13 միլիոն հոդվածները (4,600` հայերեն վիքիպեդիայում) գրվել են կամավորների կողմից ու համարյա բոլոր հոդվածները կարող է խմբագրել ցանկաց մարդ ով կարող է բացել Վիքիպեդիայի կայքը։", new string[] {"Վիքիպեդիայի", "13", "միլիոն", "հոդվածները", "4,600", "հայերեն", "վիքիպեդիայում", "գրվել", "են", "կամավորների", "կողմից", "ու", "համարյա", "բոլոր", "հոդվածները", "կարող", "է", "խմբագրել", "ցանկաց", "մարդ", "ով", "կարող", "է", "բացել", "Վիքիպեդիայի", "կայքը"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testAmharic() throws Exception - public virtual void testAmharic() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ዊኪፔድያ የባለ ብዙ ቋንቋ የተሟላ ትክክለኛና ነጻ መዝገበ ዕውቀት (ኢንሳይክሎፒዲያ) ነው። ማንኛውም", new string[] {"ዊኪፔድያ", "የባለ", "ብዙ", "ቋንቋ", "የተሟላ", "ትክክለኛና", "ነጻ", "መዝገበ", "ዕውቀት", "ኢንሳይክሎፒዲያ", "ነው", "ማንኛውም"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testArabic() throws Exception - public virtual void testArabic() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "الفيلم الوثائقي الأول عن ويكيبيديا يسمى \"الحقيقة بالأرقام: قصة ويكيبيديا\" (بالإنجليزية: Truth in Numbers: The Wikipedia Story)، سيتم إطلاقه في 2008.", new string[] {"الفيلم", "الوثائقي", "الأول", "عن", "ويكيبيديا", "يسمى", "الحقيقة", "بالأرقام", "قصة", "ويكيبيديا", "بالإنجليزية", "Truth", "in", "Numbers", "The", "Wikipedia", "Story", "سيتم", "إطلاقه", "في", "2008"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testAramaic() throws Exception - public virtual void testAramaic() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ܘܝܩܝܦܕܝܐ (ܐܢܓܠܝܐ: Wikipedia) ܗܘ ܐܝܢܣܩܠܘܦܕܝܐ ܚܐܪܬܐ ܕܐܢܛܪܢܛ ܒܠܫܢ̈ܐ ܣܓܝܐ̈ܐ܂ ܫܡܗ ܐܬܐ ܡܢ ܡ̈ܠܬܐ ܕ\"ܘܝܩܝ\" ܘ\"ܐܝܢܣܩܠܘܦܕܝܐ\"܀", new string[] {"ܘܝܩܝܦܕܝܐ", "ܐܢܓܠܝܐ", "Wikipedia", "ܗܘ", "ܐܝܢܣܩܠܘܦܕܝܐ", "ܚܐܪܬܐ", "ܕܐܢܛܪܢܛ", "ܒܠܫܢ̈ܐ", "ܣܓܝܐ̈ܐ", "ܫܡܗ", "ܐܬܐ", "ܡܢ", "ܡ̈ܠܬܐ", "ܕ", "ܘܝܩܝ", "ܘ", "ܐܝܢܣܩܠܘܦܕܝܐ"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBengali() throws Exception - public virtual void testBengali() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "এই বিশ্বকোষ পরিচালনা করে উইকিমিডিয়া ফাউন্ডেশন (একটি অলাভজনক সংস্থা)। উইকিপিডিয়ার শুরু ১৫ জানুয়ারি, ২০০১ সালে। এখন পর্যন্ত ২০০টিরও বেশী ভাষায় উইকিপিডিয়া রয়েছে।", new string[] {"এই", "বিশ্বকোষ", "পরিচালনা", "করে", "উইকিমিডিয়া", "ফাউন্ডেশন", "একটি", "অলাভজনক", "সংস্থা", "উইকিপিডিয়ার", "শুরু", "১৫", "জানুয়ারি", "২০০১", "সালে", "এখন", "পর্যন্ত", "২০০টিরও", "বেশী", "ভাষায়", "উইকিপিডিয়া", "রয়েছে"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFarsi() throws Exception - public virtual void testFarsi() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ویکی پدیای انگلیسی در تاریخ ۲۵ دی ۱۳۷۹ به صورت مکملی برای دانشنامهٔ تخصصی نوپدیا نوشته شد.", new string[] {"ویکی", "پدیای", "انگلیسی", "در", "تاریخ", "۲۵", "دی", "۱۳۷۹", "به", "صورت", "مکملی", "برای", "دانشنامهٔ", "تخصصی", "نوپدیا", "نوشته", "شد"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testGreek() throws Exception - public virtual void testGreek() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "Γράφεται σε συνεργασία από εθελοντές με το λογισμικό wiki, κάτι που σημαίνει ότι άρθρα μπορεί να προστεθούν ή να αλλάξουν από τον καθένα.", new string[] {"Γράφεται", "σε", "συνεργασία", "από", "εθελοντές", "με", "το", "λογισμικό", "wiki", "κάτι", "που", "σημαίνει", "ότι", "άρθρα", "μπορεί", "να", "προστεθούν", "ή", "να", "αλλάξουν", "από", "τον", "καθένα"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testThai() throws Exception - public virtual void testThai() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "การที่ได้ต้องแสดงว่างานดี. แล้วเธอจะไปไหน? ๑๒๓๔", new string[] {"การที่ได้ต้องแสดงว่างานดี", "แล้วเธอจะไปไหน", "๑๒๓๔"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLao() throws Exception - public virtual void testLao() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ສາທາລະນະລັດ ປະຊາທິປະໄຕ ປະຊາຊົນລາວ", new string[] {"ສາທາລະນະລັດ", "ປະຊາທິປະໄຕ", "ປະຊາຊົນລາວ"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTibetan() throws Exception - public virtual void testTibetan() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "སྣོན་མཛོད་དང་ལས་འདིས་བོད་ཡིག་མི་ཉམས་གོང་འཕེལ་དུ་གཏོང་བར་ཧ་ཅང་དགེ་མཚན་མཆིས་སོ། །", new string[] {"སྣོན", "མཛོད", "དང", "ལས", "འདིས", "བོད", "ཡིག", "མི", "ཉམས", "གོང", "འཕེལ", "དུ", "གཏོང", "བར", "ཧ", "ཅང", "དགེ", "མཚན", "མཆིས", "སོ"}); - } - - /* - * For chinese, tokenize as char (these can later form bigrams or whatever) - */ -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testChinese() throws Exception - public virtual void testChinese() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "我是中国人。 1234 Tests ", new string[] {"我", "是", "中", "国", "人", "1234", "Tests"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmpty() throws Exception - public virtual void testEmpty() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "", new string[] {}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, ".", new string[] {}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, " ", new string[] {}); - } - - /* test various jira issues this analyzer is related to */ - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLUCENE1545() throws Exception - public virtual void testLUCENE1545() - { - /* - * Standard analyzer does not correctly tokenize combining character U+0364 COMBINING LATIN SMALL LETTRE E. - * The word "moͤchte" is incorrectly tokenized into "mo" "chte", the combining character is lost. - * Expected result is only on token "moͤchte". - */ - BaseTokenStreamTestCase.assertAnalyzesTo(a, "moͤchte", new string[] {"moͤchte"}); - } - - /* Tests from StandardAnalyzer, just to show behavior is similar */ -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testAlphanumericSA() throws Exception - public virtual void testAlphanumericSA() - { - // alphanumeric tokens - BaseTokenStreamTestCase.assertAnalyzesTo(a, "B2B", new string[]{"B2B"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "2B", new string[]{"2B"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDelimitersSA() throws Exception - public virtual void testDelimitersSA() - { - // other delimiters: "-", "/", "," - BaseTokenStreamTestCase.assertAnalyzesTo(a, "some-dashed-phrase", new string[]{"some", "dashed", "phrase"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "dogs,chase,cats", new string[]{"dogs", "chase", "cats"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "ac/dc", new string[]{"ac", "dc"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testApostrophesSA() throws Exception - public virtual void testApostrophesSA() - { - // internal apostrophes: O'Reilly, you're, O'Reilly's - BaseTokenStreamTestCase.assertAnalyzesTo(a, "O'Reilly", new string[]{"O'Reilly"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "you're", new string[]{"you're"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "she's", new string[]{"she's"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "Jim's", new string[]{"Jim's"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "don't", new string[]{"don't"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "O'Reilly's", new string[]{"O'Reilly's"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNumericSA() throws Exception - public virtual void testNumericSA() - { - // floating point, serial, model numbers, ip addresses, etc. - BaseTokenStreamTestCase.assertAnalyzesTo(a, "21.35", new string[]{"21.35"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "R2D2 C3PO", new string[]{"R2D2", "C3PO"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "216.239.63.104", new string[]{"216.239.63.104"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTextWithNumbersSA() throws Exception - public virtual void testTextWithNumbersSA() - { - // numbers - BaseTokenStreamTestCase.assertAnalyzesTo(a, "David has 5000 bones", new string[]{"David", "has", "5000", "bones"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testVariousTextSA() throws Exception - public virtual void testVariousTextSA() - { - // various - BaseTokenStreamTestCase.assertAnalyzesTo(a, "C embedded developers wanted", new string[]{"C", "embedded", "developers", "wanted"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "foo bar FOO BAR", new string[]{"foo", "bar", "FOO", "BAR"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "foo bar . FOO <> BAR", new string[]{"foo", "bar", "FOO", "BAR"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "\"QUOTED\" word", new string[]{"QUOTED", "word"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testKoreanSA() throws Exception - public virtual void testKoreanSA() - { - // Korean words - BaseTokenStreamTestCase.assertAnalyzesTo(a, "안녕하세요 한글입니다", new string[]{"안녕하세요", "한글입니다"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOffsets() throws Exception - public virtual void testOffsets() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "David has 5000 bones", new string[] {"David", "has", "5000", "bones"}, new int[] {0, 6, 10, 15}, new int[] {5, 9, 14, 20}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTypes() throws Exception - public virtual void testTypes() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "David has 5000 bones", new string[] {"David", "has", "5000", "bones"}, new string[] {"", "", "", ""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testWikiURLs() throws Exception - public virtual void testWikiURLs() - { - Reader reader = null; - string luceneResourcesWikiPage; - try - { - reader = new System.IO.StreamReader(this.GetType().getResourceAsStream("LuceneResourcesWikiPage.html"), Encoding.UTF8); - StringBuilder builder = new StringBuilder(); - char[] buffer = new char[1024]; - int numCharsRead; - while (-1 != (numCharsRead = reader.read(buffer))) - { - builder.Append(buffer, 0, numCharsRead); - } - luceneResourcesWikiPage = builder.ToString(); - } - finally - { - if (null != reader) - { - reader.close(); - } - } - assertTrue(null != luceneResourcesWikiPage && luceneResourcesWikiPage.Length > 0); - System.IO.StreamReader bufferedReader = null; - string[] urls; - try - { - IList urlList = new List(); - bufferedReader = new System.IO.StreamReader(this.GetType().getResourceAsStream("LuceneResourcesWikiPageURLs.txt"), Encoding.UTF8); - string line; - while (null != (line = bufferedReader.ReadLine())) - { - line = line.Trim(); - if (line.Length > 0) - { - urlList.Add(line); - } - } - urls = urlList.ToArray(); - } - finally - { - if (null != bufferedReader) - { - bufferedReader.Close(); - } - } - assertTrue(null != urls && urls.Length > 0); - BaseTokenStreamTestCase.assertAnalyzesTo(urlAnalyzer, luceneResourcesWikiPage, urls); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmails() throws Exception - public virtual void testEmails() - { - Reader reader = null; - string randomTextWithEmails; - try - { - reader = new System.IO.StreamReader(this.GetType().getResourceAsStream("random.text.with.email.addresses.txt"), Encoding.UTF8); - StringBuilder builder = new StringBuilder(); - char[] buffer = new char[1024]; - int numCharsRead; - while (-1 != (numCharsRead = reader.read(buffer))) - { - builder.Append(buffer, 0, numCharsRead); - } - randomTextWithEmails = builder.ToString(); - } - finally - { - if (null != reader) - { - reader.close(); - } - } - assertTrue(null != randomTextWithEmails && randomTextWithEmails.Length > 0); - System.IO.StreamReader bufferedReader = null; - string[] emails; - try - { - IList emailList = new List(); - bufferedReader = new System.IO.StreamReader(this.GetType().getResourceAsStream("email.addresses.from.random.text.with.email.addresses.txt"), Encoding.UTF8); - string line; - while (null != (line = bufferedReader.ReadLine())) - { - line = line.Trim(); - if (line.Length > 0) - { - emailList.Add(line); - } - } - emails = emailList.ToArray(); - } - finally - { - if (null != bufferedReader) - { - bufferedReader.Close(); - } - } - assertTrue(null != emails && emails.Length > 0); - BaseTokenStreamTestCase.assertAnalyzesTo(emailAnalyzer, randomTextWithEmails, emails); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMailtoSchemeEmails() throws Exception - public virtual void testMailtoSchemeEmails() - { - // See LUCENE-3880 - BaseTokenStreamTestCase.assertAnalyzesTo(a, "mailto:test@example.org", new string[] {"mailto", "test@example.org"}, new string[] {"", ""}); - - // TODO: Support full mailto: scheme URIs. See RFC 6068: http://tools.ietf.org/html/rfc6068 - BaseTokenStreamTestCase.assertAnalyzesTo(a, "mailto:personA@example.com,personB@example.com?cc=personC@example.com" + "&subject=Subjectivity&body=Corpusivity%20or%20something%20like%20that", new string[] {"mailto", "personA@example.com", ",personB@example.com", "?cc=personC@example.com", "subject", "Subjectivity", "body", "Corpusivity", "20or", "20something","20like", "20that"}, new string[] {"", "", "", "", "", "", "", "", "", "", "", ""}); // TODO: Hex decoding + re-tokenization - TODO: split field keys/values - // TODO: recognize ',' address delimiter. Also, see examples of ';' delimiter use at: http://www.mailto.co.uk/ - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testURLs() throws Exception - public virtual void testURLs() - { - Reader reader = null; - string randomTextWithURLs; - try - { - reader = new System.IO.StreamReader(this.GetType().getResourceAsStream("random.text.with.urls.txt"), Encoding.UTF8); - StringBuilder builder = new StringBuilder(); - char[] buffer = new char[1024]; - int numCharsRead; - while (-1 != (numCharsRead = reader.read(buffer))) - { - builder.Append(buffer, 0, numCharsRead); - } - randomTextWithURLs = builder.ToString(); - } - finally - { - if (null != reader) - { - reader.close(); - } - } - assertTrue(null != randomTextWithURLs && randomTextWithURLs.Length > 0); - System.IO.StreamReader bufferedReader = null; - string[] urls; - try - { - IList urlList = new List(); - bufferedReader = new System.IO.StreamReader(this.GetType().getResourceAsStream("urls.from.random.text.with.urls.txt"), Encoding.UTF8); - string line; - while (null != (line = bufferedReader.ReadLine())) - { - line = line.Trim(); - if (line.Length > 0) - { - urlList.Add(line); - } - } - urls = urlList.ToArray(); - } - finally - { - if (null != bufferedReader) - { - bufferedReader.Close(); - } - } - assertTrue(null != urls && urls.Length > 0); - BaseTokenStreamTestCase.assertAnalyzesTo(urlAnalyzer, randomTextWithURLs, urls); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testUnicodeWordBreaks() throws Exception - public virtual void testUnicodeWordBreaks() - { - WordBreakTestUnicode_6_3_0 wordBreakTest = new WordBreakTestUnicode_6_3_0(); - wordBreakTest.test(a); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSupplementary() throws Exception - public virtual void testSupplementary() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "𩬅艱鍟䇹愯瀛", new string[] {"𩬅", "艱", "鍟", "䇹", "愯", "瀛"}, new string[] {"", "", "", "", "", ""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testKorean() throws Exception - public virtual void testKorean() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "훈민정음", new string[] {"훈민정음"}, new string[] {""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testJapanese() throws Exception - public virtual void testJapanese() - { - BaseTokenStreamTestCase.assertAnalyzesTo(a, "仮名遣い カタカナ", new string[] {"仮", "名", "遣", "い", "カタカナ"}, new string[] {"", "", "", "", ""}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testCombiningMarks() throws Exception - public virtual void testCombiningMarks() - { - checkOneTerm(a, "ざ", "ざ"); // hiragana - checkOneTerm(a, "ザ", "ザ"); // katakana - checkOneTerm(a, "壹゙", "壹゙"); // ideographic - checkOneTerm(a, "아゙", "아゙"); // hangul - } - - /// - /// Multiple consecutive chars in \p{Word_Break = MidLetter}, - /// \p{Word_Break = MidNumLet}, and/or \p{Word_Break = MidNum} - /// should trigger a token split. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMid() throws Exception - public virtual void testMid() - { - // ':' is in \p{WB:MidLetter}, which should trigger a split unless there is a Letter char on both sides - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A:B", new string[] {"A:B"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A::B", new string[] {"A", "B"}); - - // '.' is in \p{WB:MidNumLet}, which should trigger a split unless there is a Letter or Numeric char on both sides - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1.2", new string[] {"1.2"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A.B", new string[] {"A.B"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1..2", new string[] {"1", "2"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A..B", new string[] {"A", "B"}); - - // ',' is in \p{WB:MidNum}, which should trigger a split unless there is a Numeric char on both sides - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1,2", new string[] {"1,2"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1,,2", new string[] {"1", "2"}); - - // Mixed consecutive \p{WB:MidLetter} and \p{WB:MidNumLet} should trigger a split - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A.:B", new string[] {"A", "B"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A:.B", new string[] {"A", "B"}); - - // Mixed consecutive \p{WB:MidNum} and \p{WB:MidNumLet} should trigger a split - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1,.2", new string[] {"1", "2"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1.,2", new string[] {"1", "2"}); - - // '_' is in \p{WB:ExtendNumLet} - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A:B_A:B", new string[] {"A:B_A:B"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A:B_A::B", new string[] {"A:B_A", "B"}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1.2_1.2", new string[] {"1.2_1.2"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A.B_A.B", new string[] {"A.B_A.B"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1.2_1..2", new string[] {"1.2_1", "2"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "A.B_A..B", new string[] {"A.B_A", "B"}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1,2_1,2", new string[] {"1,2_1,2"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "1,2_1,,2", new string[] {"1,2_1", "2"}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "C_A.:B", new string[] {"C_A", "B"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "C_A:.B", new string[] {"C_A", "B"}); - - BaseTokenStreamTestCase.assertAnalyzesTo(a, "3_1,.2", new string[] {"3_1", "2"}); - BaseTokenStreamTestCase.assertAnalyzesTo(a, "3_1.,2", new string[] {"3_1", "2"}); - } - - /// @deprecated remove this and sophisticated backwards layer in 5.0 -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Deprecated("remove this and sophisticated backwards layer in 5.0") public void testCombiningMarksBackwards() throws Exception - [Obsolete("remove this and sophisticated backwards layer in 5.0")] - public virtual void testCombiningMarksBackwards() - { - Analyzer a = new AnalyzerAnonymousInnerClassHelper3(this); - checkOneTerm(a, "ざ", "さ"); // hiragana Bug - checkOneTerm(a, "ザ", "ザ"); // katakana Works - checkOneTerm(a, "壹゙", "壹"); // ideographic Bug - checkOneTerm(a, "아゙", "아゙"); // hangul Works - } - - private class AnalyzerAnonymousInnerClassHelper3 : Analyzer - { - private readonly TestUAX29URLEmailTokenizer outerInstance; - - public AnalyzerAnonymousInnerClassHelper3(TestUAX29URLEmailTokenizer outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - - Tokenizer tokenizer = new UAX29URLEmailTokenizer(Version.LUCENE_31, reader); - return new TokenStreamComponents(tokenizer); - } - } - - // LUCENE-3880 - /// @deprecated remove this and sophisticated backwards layer in 5.0 -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Deprecated("remove this and sophisticated backwards layer in 5.0") public void testMailtoBackwards() throws Exception - [Obsolete("remove this and sophisticated backwards layer in 5.0")] - public virtual void testMailtoBackwards() - { - Analyzer a = new AnalyzerAnonymousInnerClassHelper4(this); - assertAnalyzesTo(a, "mailto:test@example.org", new string[] {"mailto:test", "example.org"}); - } - - private class AnalyzerAnonymousInnerClassHelper4 : Analyzer - { - private readonly TestUAX29URLEmailTokenizer outerInstance; - - public AnalyzerAnonymousInnerClassHelper4(TestUAX29URLEmailTokenizer outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new UAX29URLEmailTokenizer(Version.LUCENE_34, reader); - return new TokenStreamComponents(tokenizer); - } - } - - /// @deprecated uses older unicode (6.0). simple test to make sure its basically working -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Deprecated("uses older unicode (6.0). simple test to make sure its basically working") public void testVersion36() throws Exception - [Obsolete("uses older unicode (6.0). simple test to make sure its basically working")] - public virtual void testVersion36() - { - Analyzer a = new AnalyzerAnonymousInnerClassHelper5(this); - assertAnalyzesTo(a, "this is just a t\u08E6st lucene@apache.org", new string[] {"this", "is", "just", "a", "t", "st", "lucene@apache.org"}); // new combining mark in 6.1 - }; - - private class AnalyzerAnonymousInnerClassHelper5 : Analyzer - { - private readonly TestUAX29URLEmailTokenizer outerInstance; - - public AnalyzerAnonymousInnerClassHelper5(TestUAX29URLEmailTokenizer outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new UAX29URLEmailTokenizer(Version.LUCENE_36, reader); - return new TokenStreamComponents(tokenizer); - } - } - - /// @deprecated uses older unicode (6.1). simple test to make sure its basically working -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Deprecated("uses older unicode (6.1). simple test to make sure its basically working") public void testVersion40() throws Exception - [Obsolete("uses older unicode (6.1). simple test to make sure its basically working")] - public virtual void testVersion40() - { - Analyzer a = new AnalyzerAnonymousInnerClassHelper6(this); - // U+061C is a new combining mark in 6.3, found using "[[\p{WB:Format}\p{WB:Extend}]&[^\p{Age:6.2}]]" - // on the online UnicodeSet utility: - assertAnalyzesTo(a, "this is just a t\u061Cst lucene@apache.org", new string[] {"this", "is", "just", "a", "t", "st", "lucene@apache.org"}); - }; - - private class AnalyzerAnonymousInnerClassHelper6 : Analyzer - { - private readonly TestUAX29URLEmailTokenizer outerInstance; - - public AnalyzerAnonymousInnerClassHelper6(TestUAX29URLEmailTokenizer outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new UAX29URLEmailTokenizer(Version.LUCENE_40, reader); - return new TokenStreamComponents(tokenizer); - } - } - - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - checkRandomData(random(), a, 1000 * RANDOM_MULTIPLIER); - } - - /// - /// blast some random large strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomHugeStrings() throws Exception - public virtual void testRandomHugeStrings() - { - Random random = random(); - checkRandomData(random, a, 100 * RANDOM_MULTIPLIER, 8192); - } - } - + public class TestUAX29URLEmailTokenizer : BaseTokenStreamTestCase + { + + [Test] + public virtual void TestHugeDoc() + { + StringBuilder sb = new StringBuilder(); + char[] whitespace = new char[4094]; + Arrays.Fill(whitespace, ' '); + sb.Append(whitespace); + sb.Append("testing 1234"); + string input = sb.ToString(); + UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, new StringReader(input)); + BaseTokenStreamTestCase.AssertTokenStreamContents(tokenizer, new string[] { "testing", "1234" }); + } + + private Analyzer a = new AnalyzerAnonymousInnerClassHelper(); + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + public AnalyzerAnonymousInnerClassHelper() + { + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + + Tokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, reader); + return new TokenStreamComponents(tokenizer); + } + } + + + /// + /// Passes through tokens with type "" and blocks all other types. + private class URLFilter : TokenFilter + { + internal readonly ITypeAttribute typeAtt; + public URLFilter(TokenStream @in) : base(@in) + { + this.typeAtt = AddAttribute(); + } + + public override sealed bool IncrementToken() + { + bool isTokenAvailable = false; + while (input.IncrementToken()) + { + if (typeAtt.Type == UAX29URLEmailTokenizer.TOKEN_TYPES[UAX29URLEmailTokenizer.URL]) + { + isTokenAvailable = true; + break; + } + } + return isTokenAvailable; + } + } + + /// + /// Passes through tokens with type "" and blocks all other types. + private class EmailFilter : TokenFilter + { + internal readonly ITypeAttribute typeAtt; + public EmailFilter(TokenStream @in) : base(@in) + { + this.typeAtt = AddAttribute(); + } + + public override sealed bool IncrementToken() + { + bool isTokenAvailable = false; + while (input.IncrementToken()) + { + if (typeAtt.Type == UAX29URLEmailTokenizer.TOKEN_TYPES[UAX29URLEmailTokenizer.EMAIL]) + { + isTokenAvailable = true; + break; + } + } + return isTokenAvailable; + } + } + + private Analyzer urlAnalyzer = new UrlAnalyzerAnonymousInnerClassHelper(); + + private class UrlAnalyzerAnonymousInnerClassHelper : Analyzer + { + public UrlAnalyzerAnonymousInnerClassHelper() + { + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, reader); + tokenizer.MaxTokenLength = int.MaxValue; // Tokenize arbitrary length URLs + TokenFilter filter = new URLFilter(tokenizer); + return new TokenStreamComponents(tokenizer, filter); + } + } + + private Analyzer emailAnalyzer = new AnalyzerAnonymousInnerClassHelper2(); + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + public AnalyzerAnonymousInnerClassHelper2() + { + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, reader); + TokenFilter filter = new EmailFilter(tokenizer); + return new TokenStreamComponents(tokenizer, filter); + } + } + + + [Test] + public virtual void TestArmenian() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "Վիքիպեդիայի 13 միլիոն հոդվածները (4,600` հայերեն վիքիպեդիայում) գրվել են կամավորների կողմից ու համարյա բոլոր հոդվածները կարող է խմբագրել ցանկաց մարդ ով կարող է բացել Վիքիպեդիայի կայքը։", new string[] { "Վիքիպեդիայի", "13", "միլիոն", "հոդվածները", "4,600", "հայերեն", "վիքիպեդիայում", "գրվել", "են", "կամավորների", "կողմից", "ու", "համարյա", "բոլոր", "հոդվածները", "կարող", "է", "խմբագրել", "ցանկաց", "մարդ", "ով", "կարող", "է", "բացել", "Վիքիպեդիայի", "կայքը" }); + } + + [Test] + public virtual void TestAmharic() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ዊኪፔድያ የባለ ብዙ ቋንቋ የተሟላ ትክክለኛና ነጻ መዝገበ ዕውቀት (ኢንሳይክሎፒዲያ) ነው። ማንኛውም", new string[] { "ዊኪፔድያ", "የባለ", "ብዙ", "ቋንቋ", "የተሟላ", "ትክክለኛና", "ነጻ", "መዝገበ", "ዕውቀት", "ኢንሳይክሎፒዲያ", "ነው", "ማንኛውም" }); + } + + [Test] + public virtual void TestArabic() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "الفيلم الوثائقي الأول عن ويكيبيديا يسمى \"الحقيقة بالأرقام: قصة ويكيبيديا\" (بالإنجليزية: Truth in Numbers: The Wikipedia Story)، سيتم إطلاقه في 2008.", new string[] { "الفيلم", "الوثائقي", "الأول", "عن", "ويكيبيديا", "يسمى", "الحقيقة", "بالأرقام", "قصة", "ويكيبيديا", "بالإنجليزية", "Truth", "in", "Numbers", "The", "Wikipedia", "Story", "سيتم", "إطلاقه", "في", "2008" }); + } + + [Test] + public virtual void TestAramaic() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ܘܝܩܝܦܕܝܐ (ܐܢܓܠܝܐ: Wikipedia) ܗܘ ܐܝܢܣܩܠܘܦܕܝܐ ܚܐܪܬܐ ܕܐܢܛܪܢܛ ܒܠܫܢ̈ܐ ܣܓܝܐ̈ܐ܂ ܫܡܗ ܐܬܐ ܡܢ ܡ̈ܠܬܐ ܕ\"ܘܝܩܝ\" ܘ\"ܐܝܢܣܩܠܘܦܕܝܐ\"܀", new string[] { "ܘܝܩܝܦܕܝܐ", "ܐܢܓܠܝܐ", "Wikipedia", "ܗܘ", "ܐܝܢܣܩܠܘܦܕܝܐ", "ܚܐܪܬܐ", "ܕܐܢܛܪܢܛ", "ܒܠܫܢ̈ܐ", "ܣܓܝܐ̈ܐ", "ܫܡܗ", "ܐܬܐ", "ܡܢ", "ܡ̈ܠܬܐ", "ܕ", "ܘܝܩܝ", "ܘ", "ܐܝܢܣܩܠܘܦܕܝܐ" }); + } + + [Test] + public virtual void TestBengali() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "এই বিশ্বকোষ পরিচালনা করে উইকিমিডিয়া ফাউন্ডেশন (একটি অলাভজনক সংস্থা)। উইকিপিডিয়ার শুরু ১৫ জানুয়ারি, ২০০১ সালে। এখন পর্যন্ত ২০০টিরও বেশী ভাষায় উইকিপিডিয়া রয়েছে।", new string[] { "এই", "বিশ্বকোষ", "পরিচালনা", "করে", "উইকিমিডিয়া", "ফাউন্ডেশন", "একটি", "অলাভজনক", "সংস্থা", "উইকিপিডিয়ার", "শুরু", "১৫", "জানুয়ারি", "২০০১", "সালে", "এখন", "পর্যন্ত", "২০০টিরও", "বেশী", "ভাষায়", "উইকিপিডিয়া", "রয়েছে" }); + } + + [Test] + public virtual void TestFarsi() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ویکی پدیای انگلیسی در تاریخ ۲۵ دی ۱۳۷۹ به صورت مکملی برای دانشنامهٔ تخصصی نوپدیا نوشته شد.", new string[] { "ویکی", "پدیای", "انگلیسی", "در", "تاریخ", "۲۵", "دی", "۱۳۷۹", "به", "صورت", "مکملی", "برای", "دانشنامهٔ", "تخصصی", "نوپدیا", "نوشته", "شد" }); + } + + [Test] + public virtual void TestGreek() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "Γράφεται σε συνεργασία από εθελοντές με το λογισμικό wiki, κάτι που σημαίνει ότι άρθρα μπορεί να προστεθούν ή να αλλάξουν από τον καθένα.", new string[] { "Γράφεται", "σε", "συνεργασία", "από", "εθελοντές", "με", "το", "λογισμικό", "wiki", "κάτι", "που", "σημαίνει", "ότι", "άρθρα", "μπορεί", "να", "προστεθούν", "ή", "να", "αλλάξουν", "από", "τον", "καθένα" }); + } + + [Test] + public virtual void TestThai() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "การที่ได้ต้องแสดงว่างานดี. แล้วเธอจะไปไหน? ๑๒๓๔", new string[] { "การที่ได้ต้องแสดงว่างานดี", "แล้วเธอจะไปไหน", "๑๒๓๔" }); + } + + [Test] + public virtual void TestLao() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ສາທາລະນະລັດ ປະຊາທິປະໄຕ ປະຊາຊົນລາວ", new string[] { "ສາທາລະນະລັດ", "ປະຊາທິປະໄຕ", "ປະຊາຊົນລາວ" }); + } + + [Test] + public virtual void TestTibetan() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "སྣོན་མཛོད་དང་ལས་འདིས་བོད་ཡིག་མི་ཉམས་གོང་འཕེལ་དུ་གཏོང་བར་ཧ་ཅང་དགེ་མཚན་མཆིས་སོ། །", new string[] { "སྣོན", "མཛོད", "དང", "ལས", "འདིས", "བོད", "ཡིག", "མི", "ཉམས", "གོང", "འཕེལ", "དུ", "གཏོང", "བར", "ཧ", "ཅང", "དགེ", "མཚན", "མཆིས", "སོ" }); + } + + /* + * For chinese, tokenize as char (these can later form bigrams or whatever) + */ + [Test] + public virtual void TestChinese() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "我是中国人。 1234 Tests ", new string[] { "我", "是", "中", "国", "人", "1234", "Tests" }); + } + + [Test] + public virtual void TestEmpty() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "", new string[] { }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, ".", new string[] { }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, " ", new string[] { }); + } + + /* test various jira issues this analyzer is related to */ + + [Test] + public virtual void TestLUCENE1545() + { + /* + * Standard analyzer does not correctly tokenize combining character U+0364 COMBINING LATIN SMALL LETTRE E. + * The word "moͤchte" is incorrectly tokenized into "mo" "chte", the combining character is lost. + * Expected result is only on token "moͤchte". + */ + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "moͤchte", new string[] { "moͤchte" }); + } + + /* Tests from StandardAnalyzer, just to show behavior is similar */ + [Test] + public virtual void TestAlphanumericSA() + { + // alphanumeric tokens + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "B2B", new string[] { "B2B" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "2B", new string[] { "2B" }); + } + + [Test] + public virtual void TestDelimitersSA() + { + // other delimiters: "-", "/", "," + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "some-dashed-phrase", new string[] { "some", "dashed", "phrase" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "dogs,chase,cats", new string[] { "dogs", "chase", "cats" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "ac/dc", new string[] { "ac", "dc" }); + } + + [Test] + public virtual void TestApostrophesSA() + { + // internal apostrophes: O'Reilly, you're, O'Reilly's + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "O'Reilly", new string[] { "O'Reilly" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "you're", new string[] { "you're" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "she's", new string[] { "she's" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "Jim's", new string[] { "Jim's" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "don't", new string[] { "don't" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "O'Reilly's", new string[] { "O'Reilly's" }); + } + + [Test] + public virtual void TestNumericSA() + { + // floating point, serial, model numbers, ip addresses, etc. + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "21.35", new string[] { "21.35" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "R2D2 C3PO", new string[] { "R2D2", "C3PO" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "216.239.63.104", new string[] { "216.239.63.104" }); + } + + [Test] + public virtual void TestTextWithNumbersSA() + { + // numbers + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "David has 5000 bones", new string[] { "David", "has", "5000", "bones" }); + } + + [Test] + public virtual void TestVariousTextSA() + { + // various + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "C embedded developers wanted", new string[] { "C", "embedded", "developers", "wanted" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "foo bar FOO BAR", new string[] { "foo", "bar", "FOO", "BAR" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "foo bar . FOO <> BAR", new string[] { "foo", "bar", "FOO", "BAR" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "\"QUOTED\" word", new string[] { "QUOTED", "word" }); + } + + [Test] + public virtual void TestKoreanSA() + { + // Korean words + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "안녕하세요 한글입니다", new string[] { "안녕하세요", "한글입니다" }); + } + + [Test] + public virtual void TestOffsets() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "David has 5000 bones", new string[] { "David", "has", "5000", "bones" }, new int[] { 0, 6, 10, 15 }, new int[] { 5, 9, 14, 20 }); + } + + [Test] + public virtual void TestTypes() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "David has 5000 bones", new string[] { "David", "has", "5000", "bones" }, new string[] { "", "", "", "" }); + } + + [Test] + public virtual void TestWikiURLs() + { + TextReader reader = null; + string luceneResourcesWikiPage; + try + { + reader = new System.IO.StreamReader(this.GetType().getResourceAsStream("LuceneResourcesWikiPage.html"), Encoding.UTF8); + StringBuilder builder = new StringBuilder(); + char[] buffer = new char[1024]; + int numCharsRead; + while (-1 != (numCharsRead = reader.read(buffer))) + { + builder.Append(buffer, 0, numCharsRead); + } + luceneResourcesWikiPage = builder.ToString(); + } + finally + { + if (null != reader) + { + reader.Dispose(); + } + } + assertTrue(null != luceneResourcesWikiPage && luceneResourcesWikiPage.Length > 0); + System.IO.StreamReader bufferedReader = null; + string[] urls; + try + { + IList urlList = new List(); + bufferedReader = new StreamReader(this.GetType().getResourceAsStream("LuceneResourcesWikiPageURLs.txt"), Encoding.UTF8); + string line; + while (null != (line = bufferedReader.ReadLine())) + { + line = line.Trim(); + if (line.Length > 0) + { + urlList.Add(line); + } + } + urls = urlList.ToArray(); + } + finally + { + if (null != bufferedReader) + { + bufferedReader.Dispose(); + } + } + assertTrue(null != urls && urls.Length > 0); + BaseTokenStreamTestCase.AssertAnalyzesTo(urlAnalyzer, luceneResourcesWikiPage, urls); + } + + [Test] + public virtual void TestEmails() + { + TextReader reader = null; + string randomTextWithEmails; + try + { + reader = new System.IO.StreamReader(this.GetType().getResourceAsStream("random.text.with.email.addresses.txt"), Encoding.UTF8); + StringBuilder builder = new StringBuilder(); + + //var test = reader.ReadToEnd(); + char[] buffer = new char[1024]; + int numCharsRead; + while (-1 != (numCharsRead = reader.read(buffer))) + { + builder.Append(buffer, 0, numCharsRead); + } + randomTextWithEmails = builder.ToString(); + } + finally + { + if (null != reader) + { + reader.Dispose(); + } + } + assertTrue(null != randomTextWithEmails && randomTextWithEmails.Length > 0); + System.IO.StreamReader bufferedReader = null; + string[] emails; + try + { + IList emailList = new List(); + bufferedReader = new System.IO.StreamReader(this.GetType().getResourceAsStream("email.addresses.from.random.text.with.email.addresses.txt"), Encoding.UTF8); + string line; + while (null != (line = bufferedReader.ReadLine())) + { + line = line.Trim(); + if (line.Length > 0) + { + emailList.Add(line); + } + } + emails = emailList.ToArray(); + } + finally + { + if (null != bufferedReader) + { + bufferedReader.Close(); + } + } + assertTrue(null != emails && emails.Length > 0); + BaseTokenStreamTestCase.AssertAnalyzesTo(emailAnalyzer, randomTextWithEmails, emails); + } + + [Test] + public virtual void TestMailtoSchemeEmails() + { + // See LUCENE-3880 + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "mailto:test@example.org", new string[] { "mailto", "test@example.org" }, new string[] { "", "" }); + + // TODO: Support full mailto: scheme URIs. See RFC 6068: http://tools.ietf.org/html/rfc6068 + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "mailto:personA@example.com,personB@example.com?cc=personC@example.com" + "&subject=Subjectivity&body=Corpusivity%20or%20something%20like%20that", new string[] { "mailto", "personA@example.com", ",personB@example.com", "?cc=personC@example.com", "subject", "Subjectivity", "body", "Corpusivity", "20or", "20something", "20like", "20that" }, new string[] { "", "", "", "", "", "", "", "", "", "", "", "" }); // TODO: Hex decoding + re-tokenization - TODO: split field keys/values + // TODO: recognize ',' address delimiter. Also, see examples of ';' delimiter use at: http://www.mailto.co.uk/ + } + + [Test] + public virtual void TestURLs() + { + TextReader reader = null; + string randomTextWithURLs; + try + { + reader = new System.IO.StreamReader(this.GetType().getResourceAsStream("random.text.with.urls.txt"), Encoding.UTF8); + StringBuilder builder = new StringBuilder(); + char[] buffer = new char[1024]; + int numCharsRead; + while (-1 != (numCharsRead = reader.read(buffer))) + { + builder.Append(buffer, 0, numCharsRead); + } + randomTextWithURLs = builder.ToString(); + } + finally + { + if (null != reader) + { + reader.Dispose(); + } + } + assertTrue(null != randomTextWithURLs && randomTextWithURLs.Length > 0); + System.IO.StreamReader bufferedReader = null; + string[] urls; + try + { + IList urlList = new List(); + bufferedReader = new System.IO.StreamReader(this.GetType().getResourceAsStream("urls.from.random.text.with.urls.txt"), Encoding.UTF8); + string line; + while (null != (line = bufferedReader.ReadLine())) + { + line = line.Trim(); + if (line.Length > 0) + { + urlList.Add(line); + } + } + urls = urlList.ToArray(); + } + finally + { + if (null != bufferedReader) + { + bufferedReader.Close(); + } + } + assertTrue(null != urls && urls.Length > 0); + BaseTokenStreamTestCase.AssertAnalyzesTo(urlAnalyzer, randomTextWithURLs, urls); + } + + [Test] + public virtual void TestUnicodeWordBreaks() + { + WordBreakTestUnicode_6_3_0 wordBreakTest = new WordBreakTestUnicode_6_3_0(); + wordBreakTest.Test(a); + } + + [Test] + public virtual void TestSupplementary() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "𩬅艱鍟䇹愯瀛", new string[] { "𩬅", "艱", "鍟", "䇹", "愯", "瀛" }, new string[] { "", "", "", "", "", "" }); + } + + [Test] + public virtual void TestKorean() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "훈민정음", new string[] { "훈민정음" }, new string[] { "" }); + } + + [Test] + public virtual void TestJapanese() + { + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "仮名遣い カタカナ", new string[] { "仮", "名", "遣", "い", "カタカナ" }, new string[] { "", "", "", "", "" }); + } + + [Test] + public virtual void TestCombiningMarks() + { + CheckOneTerm(a, "ざ", "ざ"); // hiragana + CheckOneTerm(a, "ザ", "ザ"); // katakana + CheckOneTerm(a, "壹゙", "壹゙"); // ideographic + CheckOneTerm(a, "아゙", "아゙"); // hangul + } + + /// + /// Multiple consecutive chars in \p{Word_Break = MidLetter}, + /// \p{Word_Break = MidNumLet}, and/or \p{Word_Break = MidNum} + /// should trigger a token split. + /// + [Test] + public virtual void TestMid() + { + // ':' is in \p{WB:MidLetter}, which should trigger a split unless there is a Letter char on both sides + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A:B", new string[] { "A:B" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A::B", new string[] { "A", "B" }); + + // '.' is in \p{WB:MidNumLet}, which should trigger a split unless there is a Letter or Numeric char on both sides + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1.2", new string[] { "1.2" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A.B", new string[] { "A.B" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1..2", new string[] { "1", "2" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A..B", new string[] { "A", "B" }); + + // ',' is in \p{WB:MidNum}, which should trigger a split unless there is a Numeric char on both sides + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1,2", new string[] { "1,2" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1,,2", new string[] { "1", "2" }); + + // Mixed consecutive \p{WB:MidLetter} and \p{WB:MidNumLet} should trigger a split + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A.:B", new string[] { "A", "B" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A:.B", new string[] { "A", "B" }); + + // Mixed consecutive \p{WB:MidNum} and \p{WB:MidNumLet} should trigger a split + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1,.2", new string[] { "1", "2" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1.,2", new string[] { "1", "2" }); + + // '_' is in \p{WB:ExtendNumLet} + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A:B_A:B", new string[] { "A:B_A:B" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A:B_A::B", new string[] { "A:B_A", "B" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1.2_1.2", new string[] { "1.2_1.2" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A.B_A.B", new string[] { "A.B_A.B" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1.2_1..2", new string[] { "1.2_1", "2" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "A.B_A..B", new string[] { "A.B_A", "B" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1,2_1,2", new string[] { "1,2_1,2" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "1,2_1,,2", new string[] { "1,2_1", "2" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "C_A.:B", new string[] { "C_A", "B" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "C_A:.B", new string[] { "C_A", "B" }); + + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "3_1,.2", new string[] { "3_1", "2" }); + BaseTokenStreamTestCase.AssertAnalyzesTo(a, "3_1.,2", new string[] { "3_1", "2" }); + } + + /// @deprecated remove this and sophisticated backwards layer in 5.0 + [Test] + [Obsolete("remove this and sophisticated backwards layer in 5.0")] + public virtual void TestCombiningMarksBackwards() + { + Analyzer a = new AnalyzerAnonymousInnerClassHelper3(this); + CheckOneTerm(a, "ざ", "さ"); // hiragana Bug + CheckOneTerm(a, "ザ", "ザ"); // katakana Works + CheckOneTerm(a, "壹゙", "壹"); // ideographic Bug + CheckOneTerm(a, "아゙", "아゙"); // hangul Works + } + + private class AnalyzerAnonymousInnerClassHelper3 : Analyzer + { + private readonly TestUAX29URLEmailTokenizer outerInstance; + + public AnalyzerAnonymousInnerClassHelper3(TestUAX29URLEmailTokenizer outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + + Tokenizer tokenizer = new UAX29URLEmailTokenizer(LuceneVersion.LUCENE_31, reader); + return new TokenStreamComponents(tokenizer); + } + } + + // LUCENE-3880 + /// @deprecated remove this and sophisticated backwards layer in 5.0 + [Test] + [Obsolete("remove this and sophisticated backwards layer in 5.0")] + public virtual void TestMailtoBackwards() + { + Analyzer a = new AnalyzerAnonymousInnerClassHelper4(this); + AssertAnalyzesTo(a, "mailto:test@example.org", new string[] { "mailto:test", "example.org" }); + } + + private class AnalyzerAnonymousInnerClassHelper4 : Analyzer + { + private readonly TestUAX29URLEmailTokenizer outerInstance; + + public AnalyzerAnonymousInnerClassHelper4(TestUAX29URLEmailTokenizer outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new UAX29URLEmailTokenizer(LuceneVersion.LUCENE_34, reader); + return new TokenStreamComponents(tokenizer); + } + } + + /// @deprecated uses older unicode (6.0). simple test to make sure its basically working + [Test] + [Obsolete("uses older unicode (6.0). simple test to make sure its basically working")] + public virtual void TestVersion36() + { + Analyzer a = new AnalyzerAnonymousInnerClassHelper5(this); + AssertAnalyzesTo(a, "this is just a t\u08E6st lucene@apache.org", new string[] { "this", "is", "just", "a", "t", "st", "lucene@apache.org" }); // new combining mark in 6.1 + } + + private class AnalyzerAnonymousInnerClassHelper5 : Analyzer + { + private readonly TestUAX29URLEmailTokenizer outerInstance; + + public AnalyzerAnonymousInnerClassHelper5(TestUAX29URLEmailTokenizer outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new UAX29URLEmailTokenizer(LuceneVersion.LUCENE_36, reader); + return new TokenStreamComponents(tokenizer); + } + } + + /// @deprecated uses older unicode (6.1). simple test to make sure its basically working + [Test] + [Obsolete("uses older unicode (6.1). simple test to make sure its basically working")] + public virtual void TestVersion40() + { + Analyzer a = new AnalyzerAnonymousInnerClassHelper6(this); + // U+061C is a new combining mark in 6.3, found using "[[\p{WB:Format}\p{WB:Extend}]&[^\p{Age:6.2}]]" + // on the online UnicodeSet utility: + AssertAnalyzesTo(a, "this is just a t\u061Cst lucene@apache.org", new string[] { "this", "is", "just", "a", "t", "st", "lucene@apache.org" }); + } + + private class AnalyzerAnonymousInnerClassHelper6 : Analyzer + { + private readonly TestUAX29URLEmailTokenizer outerInstance; + + public AnalyzerAnonymousInnerClassHelper6(TestUAX29URLEmailTokenizer outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new UAX29URLEmailTokenizer(LuceneVersion.LUCENE_40, reader); + return new TokenStreamComponents(tokenizer); + } + } + + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + CheckRandomData(Random(), a, 1000 * RANDOM_MULTIPLIER); + } + + /// + /// blast some random large strings through the analyzer + [Test] + public virtual void TestRandomHugeStrings() + { + Random random = Random(); + CheckRandomData(random, a, 100 * RANDOM_MULTIPLIER, 8192); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/email.addresses.from.random.text.with.email.addresses.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/email.addresses.from.random.text.with.email.addresses.txt new file mode 100644 index 0000000000..ae86ee6e31 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/email.addresses.from.random.text.with.email.addresses.txt @@ -0,0 +1,265 @@ +dJ8ngFi@avz13m.CC +JCAVLRJg@3aqiq2yui.gm +kU-l6DS@[082.015.228.189] +37layCJS@j5NVP7NWAY.VG +"%U@?\B"@Fl2d.md +aH3QW@tw8uo2.eu +Bvd#@tupjv.sn +SBMm0Nm.oyk70.rMNdd8k.#ru3LI.gMMLBI.0dZRD4d.RVK2nY@au58t.B13albgy4u.mt +DvdUJk@61zwkit7dkd3rcq4v.BD +~+Kdz@3mousnl.SE +C'ts`@Vh4zk.uoafcft-dr753x4odt04q.UY +}0tzWYDBuy@cSRQAABB9B.7c8xawf75-cyo.PM +lMahAA.j/5.RqUjS745.DtkcYdi@d2-4gb-l6.ae +V85E9Hx7@vpf0bs.bz +MGBg2@7F3MJTCCPROS8YETM0B4-C9P7WXKGFB0.RU +rsBWOCJ@lYX0SILY4L53Z3VJPSF6.pwrawr.vdpoq.nz +dIyLrU@9A40T2ZIG7H8R.t63.tv +6dAsZKz@d33XR.IR +EnqCC@2bk6da6y08.LI +AQ9yV@Mfqq32nexufgxzl4o7q5jv3kd.lb +lv'p@tqk.vj5s0tgl.0dlu7su3iyiaz.dqso.494.3hb76.XN--MGBAAM7A8H +b6/zomNkV@8jwm-he.IN +5FLuakz.hXVkuqDt@iBFP83V6MNI3N0FRWJ9302DS-0KHRV6O.1bf59kj64uj5b6e2zfn.cm +RhIwkU@58vmet9yfddpg.3adkmhrv1px.AO +nEBk6w2Q@Bb5ib.2pay.so +AlW5CMAn@qos-53u.j91qq96d4en129szf7099kxv5lo6yo.gm +QPYBDV3.Ah/h8U@x3v444pzi.1cvgokam.PW +5Iwbiq7@p9s-2pixps9jwzyhfroxqivw8sv90r.xn--wgbh1c +AaFU9L@3yj1xqf1.cz9.ac +|iCmQ1@rum6w0a7wt.3QLD.ht71.cx +EhLTUjo@rEK.sJ44H0.GR +bHEbq3Rp@33.lKSSMY.9xaurtfle9xe.iu4810l.fj +eFcup.cPPEW@[1ae] +p907@bk3o.fvtmw2m2.Uutr83x2yt4.2nuin.EU +PpW2L5.QgP2n@9rz7.a5qi.oRH1Z.8ov.UZ +o8UgG5fewm4vr9Ai5wPS@sgh.2F-OLKLZ81DIUET.xpya0vtx.fj +aixQH@z-y.AR +jVTeWQfL."M#~t Q"@1e.oglq.ubk.SZ +6e5QQuy@N7.2cuw3x2wpddf.paycp1pc.AI +IqG6Fl@[220.112.120.54] +lWHH4eWSn@tbxyb7.jhzqxrk.lv +P1zO*RaAr@[111.99.108.22] +d00gy@[4TC] +1yNINoBU@[136.003.010.238] +Ms8ox@[_3Tuehr] +wtWDNo@1sjmcbbli196-765mt7m8o8hywft.7-ga6rsnum8v.np +"x)yO "@7le5o2rcud5ngs.Qmfmq.Jfxv8.Zznv6t6il.MIL +1hXd@f8.1kxqd3yw4j6zmb7l7.US +"8}(\$"@mu2viak0nh4sj5ivgpy1wqie.HK +Th7XoAs5@ggdb.BI +5iDbhah.xdtF1x@[59.55.12.243] +j2ovALlgm2Wcwx@5jphzt.TN +ZlaP~E.4Yk1K0F@lF6VN.M5.Nj.PRO +cFCvIJAw@l93H0R1W6V4RI0AY7RLRQR4KOEVQPEG-PDTF03V4D9A0.xZZK5.lu +8Ju2AW@1n.h7.vu +"\nkP]{"@[Vej\yo\HD] +fKWC?@qgcb.xn--mgbaam7a8h +L4BbaB@hv1.BIZ +WvSmV@qpx15vzmbtxzvi-syndl1.ML +"3|PX~Cbdq"@U3vp-7k.8c4q3sgpwt6sochundzhx.museum +LjH9rJTu@tkm.gy +vQgXEFb@maxmrbk-5a5s6o.6MZZ6IK.awjbtiva7.IL +6TVbIA@r50eh-a.la +AaASl@Bsteea.qHXE3Q5CUJ3DBG.S2hvnld.4WJWL.fk +"CN;\-z 6M"@86.qc7s.23p.ET +zX3=O3o@Yjov.7g660.8M88OJGTDC5.np +QFZlK1A@4W47EIXE.KY +1guLnQb07k@ab.ccemuif2s.lb +Jddxj@[111.079.109.147] +Hj06gcE@[105.233.192.168] +u8?xicQ@[i\21I] +CczYer}W@bezu6wtys9s.lft3z.mobi +OmpYhIL@6GJ7P29EIE-G63RDW7GLFLFC0M1.AERO +2RRPLqO@8lh0i.vm7xmvvo-r5nf0x.CY +TOc!BhbKz@F-myy7.kQWSUI7S3.net +"0\!P?".shQVdSerA@2qmqj8ul.hm +LTLNFsgB@[191.56.104.113] +iT0LOq.jtPW=G06~cETxl2ge@Ah0.4hn72v.tQ.LU +VGLn@z3E2.3an2.MM +TWmfsxn@[112.192.017.029] +2tP07A@2twe6u0d6uw6o.sed7n.109mx.XN--KPRW13D +CjaPC63@['\RDrwk] +Ayydpdoa@tdgypppmen.wf +"gfKP9"@jo3-r0.mz +aTMgDW4@t5gax.XN--3E0B707E +mcDrMO3FQ@nwc21.y5qd45lesryrp.IL +NZqj@v50egeveepk.z290kk.Bc3.xn--kprw13d +XtAhFnq@[218.214.251.103] +x0S8uos@[109.82.126.233] +ALB4KFavj16pODdd@i206d6s.MM +grxIt96.46nCf@nokjogh2l4.nCMWXG.yt +Fgbh7@2rxkk0bvkk-v3evd-sh56gvhxlh.hhjcsg36j8qt98okjbdj9z574xdpix59zf6h80r.Gyb4rrxu.ve +uo0AX41@Fhlegm1z57j-qvf5.p8jo6zvm.sc +sjn4cz@9ktlwkqte.bv +b04v0Ct@[243.230.224.190] +F!FUbQHU@uvz7cu1l.ciz4h2.93U4V.gb +6CHec@nONUKT.nl +zbmZiXw@yb.bxxp.3fm457.va +"/GdiZ7f"@[221.229.46.3] +NJde8Li@f7a.g51VICBH.cy +6IeAft@e-3fp.Nkh7nm8.v8i47xvrv27r.pf +TC*Qopzb@xIOB3.6egz4.m-24t5wmxtmco4iy8g91o66mjgha1vjlepyffott.E5ta.p9.CF +"_3Sc_"@[193.165.124.143] +W0dwHf@[25.174.65.80] +qPkkP0@4k0vs.oaak2z.3JMTI.PK +XzZh7@[\\Jm D%U] +66SGHzw@Oqnr82oml7jct0b8crwbstdhcgc3khxj7dj-t898mzro0p3-rvp-dythh.TN +ot4tPF@[AY\j] +e4seIFbl@cib.cg +B2w025e@r2H7BW16B24DG1S5DED.bg +atweEde@blk-3y.mgvoh6l9my.F6.FI +uDoPcRGW@rEBD5LUT.ly +2KQhx@Bba.u--9b5bc0.NF +tKWc2VjVRYD@[254.190.162.128] +wc3W16^@D3v2uxqqeclz.w1fd529m.DM +Njg@6S8MA.HK +"L\^4z]92"@0qp--walx.MIL +X08sWFD@62GNK.tN4.f1YXX.ug +eK6Bz1Bu@[rX;J&036] +"~`o\: "@hO4UKF.oZBWV56B.cmn.DJ +lcgUakx@[pjGd&i2] +BqdBTnv3c@wf35nwaza.ME +"a#Um{:\'\bX:"@in7tjo.uw8wil.gp +ApIbER8'@[&Y] +JTsM0c!s9CzEH@Sd.mh +hy2AOUc@uqxzl7v0hl2nchokqit9lyscxaa0jaqya1wek5gkd.NC +pY7bAVD4r@[,>T*R T] +!0axBT@03-gdh1xmk3x9.GH +vbtyQBZI@20al5g.ro6ds4.Bsg15f5.NU +2^ZhSK-FFYOh@Z2iku.rg.Z0ca1.gs +G1RLpOn."yfJpg["@mXEV8.mu +yrBKNkq@a2a1.Aifn.Ta2.dj +Wok5G@b5aqobvi5.ni +nXz9i.=EL9Yj@93r8do3ntizibg1-5-a0ziw9ugyn4bo9oaw3ygrxq-eczzv1da6gj58whvmo2.rs +Dp63hd@B1kbahyq.PL +y01rn27SFq@o0HNP8.C5.i4rvj8j338zgter7er5rkwyo5g.atnc0iuj2ke.8or6ekq0x.IO +0RiEo@08mnvbu.p661ernzjz5p7nbyix5iuj.cig5hgvcc.SO +Dwxab5@1sx5y3-umsy72nl.74lwye5.DJ +IvdZVE4xRk@0vw7ajl.AR +CvQxhXJ@d5a7qnx.ke +n7MxA4~@[4(R] +RFGzu3hD0@wbh4.sm +eOADW}BcNG@2568p3b4v.Xq3eksr.GP +AsAMWriW7.zSDQSAR6@Gg2q4rtgr.GG +cDCVlA0t@[20.116.229.216] +c=yJU+3L5@n2x3xhksf.gvreani.MZ +wfYnaA4@lzojy.4oii6w6sn-p9.kh +kdeOQ5F@vD5Y.wmmv.7rswz.1zelobcp5qxxwzjn.fOEJZ.KM +ppULqb2Z@Hv9o2ui.AO +tOHw@[IPv6:3500:8B6C::CB5E:1.124.160.137] +MWLVsL@7nhliy.O8mjon3rj-kb.t8d6bcpa5i.au +BN0EY@hh9v.p9bwgs.TN +RgiAp@d9ln.bf +PBugBo@97gcz.DJ +Fh#dKzbI@[+_] +wyqU-C9hXE@wPRBUI-WS9HXE19.LV +muC?Js@[IPv6:47FB:5786:4b5e::5675] +yLTT2xV@wdoszw9k1ork-z-t.kq.l3SEO.Lb4jx0.NA +6zqw.yPV4LkL@dA3XKC.eg +S5z9i7i3s@Vzt6.fr +L|Sit6s@9cklii1.tf +yWYqz@mw-9k.FJ +Knhj419mAfftf@R26hxll64.3qtdx6g.AL +aZYHUr6@Shyn76c67.65grky.am +ZYxn6Px@di0cqhtg.hu +"#mLl"@w1sc0g3vm.j1o4o9g.GW +WYJcFp@653xk-89oprk2im.iemhx9.CC +y5AXi@[Oa #] +nZErAGj@6sq3-p.r8KQ.aero +OMq5sBK@udg-5zp1.Dory85.SG +2bymd@Ojla1hvfpw8rrihrx.cy +5OMbw0@r2d8cn75.1VR2BJ0J3A8PY.gc0mljc-h.COOP +al6X^pQkx@pyj--2hp.lbet.TN +NkzPW4f@2-0.aaoqccwrgi4olytac0imp6vvphsuobrr115eygh2xwkvzeuj.tl +"4-b9|/,\e]h]2"@9-iiahsdlzv-v65j.FK +g8Pv2hb9@[166.176.68.63] +"IA~".Tn03w7@[\>J?] +E6aK9TaJ@j0hydmxhkq2q.Svku4saky.MU +rdF2Zl1@9fsic.C17pw9o0.vn +pCKjPa88DG&x5a@4ha07ia2jk.xk7xe8.PM +qgLb5m@nynqp.DE +qC731@["\S] +vIch1nT@[IPv6:4c2f:A840:1788:ad5:C2C6:dfae:1b1f::] +GVSMpg@2YGZ1R19XTW1TIH.Re3vg30u1xq6v7cj1wf-6m14939wvgqbl.93mztd.SG +0jq4v7PMxm@eq6teog.kO6LR3.x2p.53yltrsvgpd3.RO +zdGLZD0P@i2JQNM8.816oja8pkk5zkvyx.KM +Jp#hSH@74zkerax4.31kr.7c9-yuk.mp +Kx^0oZn@oFFA-URZ13B34J.DK +sub52@aoq7.iHF.CH +jfVSq9oAR2D@iGU0.7bp3x.4cr.sz +nalgU@Yfpbdcv8a5.n9kwz6kyi2u.thic-rws.af.TG +=uC5qVT@56g530cltpekrw.pt +QR5&kx@7qhi3bhav5ga0eva.b0sdom.bb +8DZQ7@dtr16r89fdw59q.cf +Q4pNw@6o-9weojl3r7.LS +*mfOc_CN@[G\ 3] +2p`tbG@c767inolrav0hg6a-ucs.y0.tw +Rop{cgBy@Wekdh0xns2um.UK +t*p05lV@017y.MR +7ZxO80@Dovepwr4l.qxfzchrn1.es8ul0vavi6gqy82.K1hc7.INT +C_Iphp@5t4rtc.id +q+m2x@Cfw.1tm52-kr.BO +47NIL@Hl68os0.66l9bsf2q.SC +vi0LyF9O@p74jz6mxby.it +xQ4jU@rQVWLWAD3T8.4-lnu.AZ +zea_0Kr@[97.59.144.249] +5HP1k|s@[068.150.236.123] +5XJZlmYk.3Du5qee@[072.023.197.244] +AvNrIHB0@[+n}oV] +"!N7/I\zhh"@[204.037.067.146] +vlJODxFF@xFO6V.i1.fgad6bjy.NO +qDe0FA@xpp1le82ndircjgyrxyzkrqu3il.oUKHVV6829P-16JILWG62KN.cr +pMF64@wssq6kh9uhxk.cA2YZVBV4JW.xX585A.ru +G3meE@[^!'OO] +"1@0UYJl"@vplkx.d2n.i3tcx3aaxut.lbb3v9.ldq.me +iTH0QND@wg9sizy.lr +9kF?opSTo9rSDWLo&W&6@xrh32ibf.F0zb6kb.BJ +a0FI1m@1olkdpz.W70a3w8qmk3.NA +"0H}r}X(p\M`/x"@rY48LPH.Axy.Ue624.TV +AQL6YBFb@Hxawb15okz.y4.y5c0e.bt +PEaNVR@m8NH9BVX5L096DRM7YTR.er +diI`Q@i5fpkuc.7zg2av.D6tzqq.CK +TCN0-Z@Tezeq9ejv.ekeab8hz14hui.il +05SnFh@jZ85JXZ.1RO99W5FYK3.uyv7g15.MP +B2Z76Rn@9yce0shfsydxetu1v4-y.rBU2M0.6ik8oapv0zho6n653il25gu4rd216uw03.MG +vGZ2K@C2osgjtel5uerwn.riihbabhh41ve84.r3l.vH6S64.vn +Nv2ZgL@[037.054.177.155] +WsdI2W@i1ULFQ1.79qfph2.eg +vJfpTf3@Hh4x2h.25m0idq3.fr +oRqbgftr@l6jg0.TV +NiynsKb@k9BTX4-FV.hc0skm-o.lv +w9uGwf@4hop8.Jb9655is.nr +"NVUW+"@6jbe.KM +QusHU6JMR@0RXKIZNH76C3.Oqwcfr779e.MH +}C5IwKv1S45vlmPaaVHhF@[IPv6:EBF6::] +T7rXlYc@4AI1LM.2o.uk +uuCiDC6c@Maar3.65hlg-wf.t3pt9.FJ +w2mNOvIUh@dx3ep7ew.ru +b#Add@9hpopo.Xg3tbjchdpt.TT +NtrgJjfj."NBwi"@[142.085.096.018] +00lF9UB@2NR2.rs +MPr42ye9@p08lcrzs.4bzxfznsh2bhgsa.CX +awwLoYLn~c2LfTEVT@fwksx.qoj94r11kw19k50k3.gd +gRZ5w9epm@p6adico3auugj5qklec.Sm4bx5.li +zfdZ67Y@1azhq.dl3xxzni2.rrj.lpclc6g4d.sl +vTWwSD4fb@uBSOHD.3g.u3mb.gf +cYFVxcC6E@F9g0b.n1339r.AU +pnuXl@s1alo2.tc +lKy64zp.Cbg8BM@y0S.6uiux8h8.0udipt.ma +|9FDgc@vbrz.3L.av4kmt.rs +skcHAu7@xD715N1.DZ +BfcgHK3@[220.136.9.224] +LCOEag@Gwm.drsa0.GL +qrNZtp3vO@a0gr.8j9cvcgy0p-3.HN +lfW2rei20XWSmpQoPY1Dl@[(N &c] +WFBBEv|@q7R2J.oy48740.pm +6H6rPx@zVJ40.xgyat.cLUX6SVFJWMLF9EZ2PL8QQEU7U1WT0JW3QR8898ALFGKO18CF1DOX89DR.1tfu30mp.CA +ytG@J4auwv4has.PS +"X;+N1A\A "@rc9cln0xyy8wa6axedojj9r0slj0v.Luy9i6ipqrz74lm5-n6f1-2srq5vdo-opef747ubdykv5hc.2lztpe.er +DQTmqL4LVRUvuvoNb8=TT@2up3.PY +NC0OPLz@kcru1s0mu.name +kBoJf{XaGl@[248.166.223.221] +pEjZPm8A@v956Y7GQV.5uu6.Ribgf20u.6e.0do1nki1t.ahy.6iy.sm +pIFWkl2@w9N0Q.MC +p=VTtlpC@w3ttqb.FO diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/random.text.with.email.addresses.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/random.text.with.email.addresses.txt new file mode 100644 index 0000000000..84062cd794 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/random.text.with.email.addresses.txt @@ -0,0 +1,427 @@ +========= +This file was generated in part (i.e. without the email addresses) +by the random text generator at: + +========= +waist and Wintja are relearning how dJ8ngFi@avz13m.CC we spread out, but it +here before, our dimension of story. In Bed and Marys opus in the last thing +actually having difficulties moving, Spiros rises to our hidden on your + orders, my love: Im seven doors and with gentle +fingers, then disappears? Whats the idea of +<37layCJS@j5NVP7NWAY.VG> the "%U@?\B"@Fl2d.md pages blowing to appear on Earth +in motion (what rules did we can take a radio changes. A VOICE: Hes a +scoundrel. VOICES: Burn him! Burn him! SPIROS: Want to team of the couple is +the sweetest love aH3QW@tw8uo2.eu of the teaching teaches members to +communicate with time interplaying and linked and you marry it. It will leave +Bvd#@tupjv.sn the logic of it from hereing those people were all +SBMm0Nm.oyk70.rMNdd8k.#ru3LI.gMMLBI.0dZRD4d.RVK2nY@au58t.B13albgy4u.mt the +artist stray? Does a few rose doom the UFO with my dear Sissy says Sissy, +holding hands up a bit of DvdUJk@61zwkit7dkd3rcq4v.BD fate falls asleep. When +an internet age is ~+Kdz@3mousnl.SE currently working with his bedside table, +and brings in a shimmering timeshifty verse vortex, the dream. Victory is +hallucination, my hand for more. Mmm my head, +C'ts`@Vh4zk.uoafcft-dr753x4odt04q.UY in five. (Spiros waves goodbye to tell +you, honeybuns: The poisoning is, but no addresses. A message identical reach +across the script. }0tzWYDBuy@cSRQAABB9B.7c8xawf75-cyo.PM I grasp hold their +flapping wings and when theyre seemingly infallible information? Bookshrine of +a sip of defined the Great Horned Goddess of no feeling.) Meaw. FFIANA: So, +darling. Dont be dry white and teases him back +lMahAA.j/5.RqUjS745.DtkcYdi@d2-4gb-l6.ae in society not speaking, giggling +V85E9Hx7@vpf0bs.bz in MGBg2@7F3MJTCCPROS8YETM0B4-C9P7WXKGFB0.RU the boring +f***s! (She leaves and Him Lover, Outlanders. Plus Universe where better than +they just the land any letters in the gods. Expected, this at the threesome get +even touching myself. rsBWOCJ@lYX0SILY4L53Z3VJPSF6.pwrawr.vdpoq.nz He picks +dIyLrU@9A40T2ZIG7H8R.t63.tv up at our harem world 6dAsZKz@d33XR.IR so pop up +you will be gathered, then Wintjas hair; smells of the manuscript: Contains a +EnqCC@2bk6da6y08.LI common AQ9yV@Mfqq32nexufgxzl4o7q5jv3kd.lb universal within +this lv'p@tqk.vj5s0tgl.0dlu7su3iyiaz.dqso.494.3hb76.XN--MGBAAM7A8H web. +b6/zomNkV@8jwm-he.IN The +5FLuakz.hXVkuqDt@iBFP83V6MNI3N0FRWJ9302DS-0KHRV6O.1bf59kj64uj5b6e2zfn.cm cosmos +is filled with soap bubbles. I cant +concentrate with a nearby and he nEBk6w2Q@Bb5ib.2pay.so pours. + Its a wine with the joke +in the only good enough! It hit again the house. He thinks of terrorist, this +water. They were in verbatim rewritable. World by a quick eye shadow beneath +the stairway; we not easily counter weight, is filled with your own perceptions +about it. (Eve, how to talk to you really turns on its physics. The lover on +the sunflower in worship of the? (She smiles.) Greet + it makes sense$A!-(B Not really, +5Iwbiq7@p9s-2pixps9jwzyhfroxqivw8sv90r.xn--wgbh1c from up in the candlelight, +denser medium to say something. Shifting of that +|iCmQ1@rum6w0a7wt.3QLD.ht71.cx the eyes and there came. And now, approaching. +When the thing. What did I woke up the printers! We EhLTUjo@rEK.sJ44H0.GR shall +we are heard like a glimpse of hyperspace. It travels further and kneeled down +bHEbq3Rp@33.lKSSMY.9xaurtfle9xe.iu4810l.fj to you can walk away? FFIANA: I want +to eFcup.cPPEW@[1ae] speak. The Fountain of the background when I extract of +hers, so strange book and a royal destruction of songs of this pearl. Not often +by an incinerator vessel. Spiros, the delivery of alien exists now. Forward. +The rosy guidance of wine. Notices that is partly the pipe +p907@bk3o.fvtmw2m2.Uutr83x2yt4.2nuin.EU of the chance in Old Town. D Strange +music keeps one of the top of myth and smiles.) SPIROS: Nope, cant even +PpW2L5.QgP2n@9rz7.a5qi.oRH1Z.8ov.UZ more! says it doesnt exist! The world in +the cosmos loves us. (Spiros soon +o8UgG5fewm4vr9Ai5wPS@sgh.2F-OLKLZ81DIUET.xpya0vtx.fj here again aixQH@z-y.AR +and again he turns and blinks with you want? says Sissy looks over Wintja and +the fashions of Fit to Spiros continues. Its a situation of the barman says +Spiros. I read the river. SPIROS: Damn I said. 69 + he kept locked up into a suitcase along +her body, points a female voice of 6e5QQuy@N7.2cuw3x2wpddf.paycp1pc.AI their +part of flowers, and Marys opus IqG6Fl@[220.112.120.54] in my PROSECUTOR: Hes + one is unsafe at a +little secrets, we made to write: And a drink of Eternity, +Speros, <1yNINoBU@[136.003.010.238]> Mr Boore, back to me! Lovers break +Ms8ox@[_3Tuehr] the code so +<8'Hk8a@ksf7qqaa7616xw8dq80h.K6fy89c.3k-8c.g58m48v-18zh8v> recap.29 28 So, +darling. Dont leave each itself, on and devotion to all about time + has happened? ANON 4593: +What the tongue Such as she did you back and the whole moment in +<"x)yO "@7le5o2rcud5ngs.Qmfmq.Jfxv8.Zznv6t6il.MIL> your own lens, thank you +1hXd@f8.1kxqd3yw4j6zmb7l7.US arent already. It tastes them have ever come come! +The tomb. Blink to him and flips to it, but the palace. No +"8}(\$"@mu2viak0nh4sj5ivgpy1wqie.HK way$A!-(B Happily: You smell of it +all and yet sure this pool Th7XoAs5@ggdb.BI of the first of his +5iDbhah.xdtF1x@[59.55.12.243] heart j2ovALlgm2Wcwx@5jphzt.TN can take to the +wind, speak to apply perfectly, you say turn toward sexual nature and lays his +ZlaP~E.4Yk1K0F@lF6VN.M5.Nj.PRO pipe. No, landing from +cFCvIJAw@l93H0R1W6V4RI0AY7RLRQR4KOEVQPEG-PDTF03V4D9A0.xZZK5.lu the fruit will +say. -F�Dont talk like the west 8Ju2AW@1n.h7.vu wing of the letter in every +second, <"\nkP]{"@[Vej\yo\HD]> but he slipped in. Yours Spiros and there +when I imagined anything can take returning? Where? +With? Who? Going toward his body and kisses the notion that has joined odds. A +scattered around slowly, moving eyes on and +WvSmV@qpx15vzmbtxzvi-syndl1.ML turns toward her. She sips some way everything +began was finished my wet Earth. Warning +"3|PX~Cbdq"@U3vp-7k.8c4q3sgpwt6sochundzhx.museum for me.-A City Different. +Let your myth LjH9rJTu@tkm.gy settles over it +<8myMO4@hOV209VZ-SHGBIH5FBYLTCQZSBW-U5-1.dv9> means to Our of a book he has +only but the imagination, master +phreaker, <5ohpA3ww@dcpcotwccy> main railway station. Loses the dreamadoory in +the surprising success.) A note from round is her splendour in them? Mmm my +dear, were 6TVbIA@r50eh-a.la from them keywords. Boy, +AaASl@Bsteea.qHXE3Q5CUJ3DBG.S2hvnld.4WJWL.fk my own imagination, master +"CN;\-z 6M"@86.qc7s.23p.ET is the usual fashion, says to stream and appointed +space-time continuum. Dilutes your zX3=O3o@Yjov.7g660.8M88OJGTDC5.np sleep. Ive +been seen, he says the ringnot we proved? (On the pact. Thanateros is an +internet caf� where the Queen. Now cmon, lets take to raise the apartment. Like +a limousine and I kiss timelord slides his hand QFZlK1A@4W47EIXE.KY in words +now. Get us in the same time conceptualisation is to bed. STEFANDIS: Dont do +you think Ive put down the green lush. She often by God of a 15 minutes. The +others knew into the 1guLnQb07k@ab.ccemuif2s.lb you-know-what. Youre the luxury +hotel. Diamonds and receive the process of action. We wanted in the nominated +bird. The woman undressing. He has him just get at +Hotel California. Its about all devices. Playlist? +Initiating playlist. Timelock? Timelock on. We have a u8?xicQ@[i\21I] lock of +the apartment. Like a kto, part of Our superhallugram to hook up and +CczYer}W@bezu6wtys9s.lft3z.mobi outs. polish +OmpYhIL@6GJ7P29EIE-G63RDW7GLFLFC0M1.AERO fills the crowd, comes from the music +is impossible. SPIROS: F***. You are your voo goo. +<2RRPLqO@8lh0i.vm7xmvvo-r5nf0x.CY> Daysends burn deeply and will take +TOc!BhbKz@F-myy7.kQWSUI7S3.net this he thinks. For UFO from elsewhere. Bzzz! +Bzzzzzzzz! Bzzzzzzzzzzzzzzz! Tell them "0\!P?".shQVdSerA@2qmqj8ul.hm the leg +of LTLNFsgB@[191.56.104.113] all, until it has read it is +iT0LOq.jtPW=G06~cETxl2ge@Ah0.4hn72v.tQ.LU there. Once +TWmfsxn@[112.192.017.029] Spiros under the place +2tP07A@2twe6u0d6uw6o.sed7n.109mx.XN--KPRW13D as were not a house of the +rosebushes and the whateverend, feel her waist. She changes everything. We had +decided to do you know CjaPC63@['\RDrwk] this, is what did leave, pray; let us +come to, what history as died. Strange, Spiros with +delight: That night "gfKP9"@jo3-r0.mz and gold case + is spring: the aeon arising, wherein he returned, +retraversing the mcDrMO3FQ@nwc21.y5qd45lesryrp.IL gates, first + to reach session. Initiating first +part of the main hall toward his own spurs. Hes an +Irifix And older ones who wins? ADAM: x0S8uos@[109.82.126.233] The violin and +reality. The hidden set up to come. ROSE WAKINS: No answer. The +ALB4KFavj16pODdd@i206d6s.MM rosy pink cigarette.) Visit the supreme chest and +express in orgasm, my version of clouds contemplating existence, the horizon. +Best grxIt96.46nCf@nokjogh2l4.nCMWXG.yt of sheer emotion. Spiros laughs. Why +did he says Spiros. Ban him, he called for it, sir, says Spiros +Fgbh7@2rxkk0bvkk-v3evd-sh56gvhxlh.hhjcsg36j8qt98okjbdj9z574xdpix59zf6h80r.Gyb4rrxu.ve +laughs. uo0AX41@Fhlegm1z57j-qvf5.p8jo6zvm.sc Can we determined that when I am +Spiros, quoting Jim Morrison. Death. Design patterns, youll hear Spiros says. +They cant G decide if he was your key that we playing? SPIROS: Why wont xxx +would be imagined. Technology so beautiful to fill his diary; I like a match. +Puffs. The Star Eagle. And a person with a play with. sjn4cz@9ktlwkqte.bv +Faberge can change overcome your work, a large-scale coordination, Goddess say +is blasting away to end is very tricky to stab it +as a turn me to the champagne on your obsession about his nose and +F!FUbQHU@uvz7cu1l.ciz4h2.93U4V.gb somewhere <6CHec@nONUKT.nl> else, then far +stretch. The great outdoors), puffing dried cum on the manuscript I$A!-(B O +one knee, feeling and sex in igniting bomb. (A +housefly, Musca domestica, lands on into the device. Let me met. Wintja and +victory. <"/GdiZ7f"@[221.229.46.3]> For years in tipsy bliss. SISSY: (Nods.) +Yes. Now you witch. And we must remember, will tell you move but her +NJde8Li@f7a.g51VICBH.cy creation with gentle feet, naked on strange hovering +futuristic vehicles that when retrieved upon a thought, or reflected. The Crew +coming on our gratitude for you address then ventured into a dream, has begun, +she sees a 6IeAft@e-3fp.Nkh7nm8.v8i47xvrv27r.pf golden ball and 4 If you that, +Izz). Lapis, to the return all laugh. Applesfoods maybe, says +TC*Qopzb@xIOB3.6egz4.m-24t5wmxtmco4iy8g91o66mjgha1vjlepyffott.E5ta.p9.CF She. +Cmon I Stefandis.) Count me with a bed sheets, carrying gently away about time +you rather dramatic, which reaches across this day. It brings forth between +suns. How about the white sugar, leaves, sugardusty sugar, drinking of time. +Believe. There "_3Sc_"@[193.165.124.143] is the soul, W0dwHf@[25.174.65.80] +and only Spiros. Love you. Believe in the multi-leveledness of the 21st century +and exchanges a book called Sphinx. Alien Star qPkkP0@4k0vs.oaak2z.3JMTI.PK +initiated. NYKKEL HUMPHRY: Of Make ways over town.) SISSY: $A!-(Band you can +turn slowly but not yet audible, appears, XzZh7@[\\Jm D%U] in the silver +melt together. This way of vision sees through time). Brewing with a kiss? +<66SGHzw@Oqnr82oml7jct0b8crwbstdhcgc3khxj7dj-t898mzro0p3-rvp-dythh.TN> Her +feathers: streaming water of the wind. I started interacting in a boat, on +ot4tPF@[AY\j] her e4seIFbl@cib.cg thigh as she blinks happily. Here is + what you around him, Magus says the list. Its +about what that atweEde@blk-3y.mgvoh6l9my.F6.FI there is functional. We +vanished into the computer. Up hills and enable entry using his long adventure. +Do we are all detailed trip against decent behaviour and girls. And you +alright? You evil laughter: Muah! Muah! Wont wate you all uDoPcRGW@rEBD5LUT.ly +way that there <2KQhx@Bba.u--9b5bc0.NF> is either both night And our dimension +of a bad joke, says nothing, just after time. It was indeed. Now that will make +the streets. He instable? What shall do. tKWc2VjVRYD@[254.190.162.128] Who +wc3W16^@D3v2uxqqeclz.w1fd529m.DM are heard like our love. Of the stairs too, +usually through the note nearby and you go now. If I remember Njg@6S8MA.HK how +it instead. (She chews the rosy petals, frosty and the land at first part of +waking? That we "L\^4z]92"@0qp--walx.MIL like they meet you. + And out into the bed. From the gods have loads of +a dark winding stairs and laughs. Why doth Her devastatingly good eyesalve, to +tell it says the Rosy Dawn. Rising, rosing, the story? (For all the UFO +shimmers from around him, but we look before eK6Bz1Bu@[rX;J&036] the Eternity +we shall never go now, look, he thinks, both go for the words said. 69 people +who live in Thy honor. "~`o\: "@hO4UKF.oZBWV56B.cmn.DJ And +lcgUakx@[pjGd&i2] here and his life has tasted of becoming more clearly. He +is dead. Calculating possible meanings of it instead. BqdBTnv3c@wf35nwaza.ME +(She whispers, smiling.) Theyll be able to help. ELLILIEILIA: You are created +the visible "a#Um{:\'\bX:"@in7tjo.uw8wil.gp world, without it will see now, +says Spiros ApIbER8'@[&Y] thinks. Every time and go to write fiction. Indeed, +love something I pop, from the play? asks JTsM0c!s9CzEH@Sd.mh the taste of the +outrageous wreck of dream, born and there +hy2AOUc@uqxzl7v0hl2nchokqit9lyscxaa0jaqya1wek5gkd.NC was still result. Search +taking T*R T]> out into !0axBT@03-gdh1xmk3x9.GH my dear, you +know, of saint? What did come here from the Crowinshield Garden, amongst the +warm kiss. Everything is white marble statue he is tunes faberge intricate. +Spiros, a particular frequency, vbtyQBZI@20al5g.ro6ds4.Bsg15f5.NU spinning, +trying to a trail of the narrative that it while the Queen, giggling: What are +a letter with a web we could 2^ZhSK-FFYOh@Z2iku.rg.Z0ca1.gs not a +G1RLpOn."yfJpg["@mXEV8.mu peculiar yrBKNkq@a2a1.Aifn.Ta2.dj stench of history, +when appearing in the interface as well as follows the secret I am not +teleframe the room, disguised as the brilliance of the +pressure of the modern world, but +nXz9i.=EL9Yj@93r8do3ntizibg1-5-a0ziw9ugyn4bo9oaw3ygrxq-eczzv1da6gj58whvmo2.rs +whatever. The solid concrete, Dp63hd@B1kbahyq.PL and put it stumbling or why +wont the chalice with communicating with language only she says Spiros, +whispers.) We left from the second birth? The young man is part of the teapot +opens. A man in disbelief. +y01rn27SFq@o0HNP8.C5.i4rvj8j338zgter7er5rkwyo5g.atnc0iuj2ke.8or6ekq0x.IO +Outwords scratch skills against her in fairy gently +<0RiEo@08mnvbu.p661ernzjz5p7nbyix5iuj.cig5hgvcc.SO> bite of death and Wintja, +playing with the name by your dreams. He +arrives the information. He swallows all the f*** me +tell her wineglass and tangles. Synchronising weeks of a +reason why everything seemed as wet dreamery, remember? Got a purple Ipomoea, +crawls through the first stage has the riddled beginning to her in a butterfly. +You landed smoothly. Preparing to n7MxA4~@[4(R] hit a world is man. How much +in mystery. And RFGzu3hD0@wbh4.sm furthermore, what the +edge of physics, death and eOADW}BcNG@2568p3b4v.Xq3eksr.GP touched smoothly ah? +Fashion feasible technical population resulted distinct produces +AsAMWriW7.zSDQSAR6@Gg2q4rtgr.GG recognize instance the room at the garden.) +PERNELLE FLAMEL: (To Mrs She is basically very drunk. I see you + cant I walk down naked on it to bed bed into +c=yJU+3L5@n2x3xhksf.gvreani.MZ the stairway wfYnaA4@lzojy.4oii6w6sn-p9.kh and a +kiss as though the point we see the numbers, the phone set to be displayed, +disincarnate entities can feel my wifey. Spiros empties the answering evening. +That is kdeOQ5F@vD5Y.wmmv.7rswz.1zelobcp5qxxwzjn.fOEJZ.KM simply not but I +could do to the ground, and the decanter ppULqb2Z@Hv9o2ui.AO is my friends and +says: I see The elves of dream +telepath posts, but makes a gentle people with a redirection is generally said +Tadeja. Its over, or of ages, you excuse us walk off to Talk A never-ending +one. I remember how cute she saw the neat fuse weds sexiness. A thick paperback +book itself continuouslyposition, have heard in the noise We are presently at +the first of the death MWLVsL@7nhliy.O8mjon3rj-kb.t8d6bcpa5i.au mask there is +accurate to meet by to this important worse material in separate directions. +Spiros stands, and arrows and orange from a witch and down the mix? he feels +Wintjas 13th century. arling peach, cosmos loves playing with silver trays with +the language as RgiAp@d9ln.bf I still result. Search +taking time and time in time. Spiros, how else or +Fh#dKzbI@[+_] nonexistence. Eros never guarded the horse stops. Move. Stop. +Move. After earlier squads mysterious source. It inscribes in case you are +applause. The world was a. With swiftly cover +it as in yourself! 5 Yes, now comes from half walls of us, my love. I am your +vast operation is all worked out? O how long ago. It glimmers, node of the +voice, the middle of the introducing of utter hell on the car unlocked and mind +around midsummer and not believing in his +lower lip. From the wind say I was inspired to live in a crime. I know, and +find people have been reported found a digital electronics. Is the pillow, +touched falls down their part of the computer and our world + come walking in +<6zqw.yPV4LkL@dA3XKC.eg> the stuff to help. Websight. Dedicated hosting +wordpress blogger coined Sister short Sissy Cogan. She +answers. It is finished his way that includes getawayways. Compiling focused is +this case? Then turn on. ANON 4593: What are pretty kinky a story about the +L|Sit6s@9cklii1.tf strangest child a Syntax of passage and Wintja and +reportedly after demolition, decay, and twists up to tales endwhere. This way +there to born from elsewhere. Bzzz! Bzzzzzzzz! Bzzzzzzzzzzzzzzz! Tell them that +words from sleep but no poet yWYqz@mw-9k.FJ am I woke +Knhj419mAfftf@R26hxll64.3qtdx6g.AL up in a kiss made it is heard on Midsummer +our cards like big fane beneath the secret of the +criticising crowd of the gods and here to... TADEJA: (Suddenly appearing in +ZYxn6Px@di0cqhtg.hu your "#mLl"@w1sc0g3vm.j1o4o9g.GW voo goo. Daysends burn +deeply happy, for large bite of his artistic inspiration without feeling as the +season. One within the dreary WYJcFp@653xk-89oprk2im.iemhx9.CC kingdom. (She +steps up with Christine says. The Blooming of y5AXi@[Oa #] The time regularly +we are, she nZErAGj@6sq3-p.r8KQ.aero kisses the gods? I am in his brother I met +years ago. The word is because we had. But yes +just like a while. Were not matter; W it going? Im sad to +<2bymd@Ojla1hvfpw8rrihrx.cy> where he arrives and information, and smiles +victoriously. 5OMbw0@r2d8cn75.1VR2BJ0J3A8PY.gc0mljc-h.COOP Mmm, you Rudy. And +there and day soon is phone and come back? +Rephrase that we are good, I leave the gifts of html or center of her right to +him to where the room.) SPIROS: Okay, sure, Ill be a page is to +NkzPW4f@2-0.aaoqccwrgi4olytac0imp6vvphsuobrr115eygh2xwkvzeuj.tl put in a novel. +I want two. "4-b9|/,\e]h]2"@9-iiahsdlzv-v65j.FK Passing +<1AhBt@od77y.s9ZZP531YKW> now. I go identify what we are always win. Anyway. I +know. It is here reaching your script and toward the edge of shortcuts. We came +the Saussiepan and its mysterious ways. I remember +"IA~".Tn03w7@[\>J?] how am waking to, that the secret about it will say the +redpurple wine, Our plan all within this moment you can hear me, I heard on the +clouds. A channel is hidden visible world, without ground turned real, their +every E6aK9TaJ@j0hydmxhkq2q.Svku4saky.MU way to a radius of +rdF2Zl1@9fsic.C17pw9o0.vn apple tree and says Spiros. Here I saw her. He walks +by the landscape of secrets of paper. I love it! But I could call the + world with the manuscript I$A!-(B O +nothing. Im proofreading the most dead branch in qgLb5m@nynqp.DE the screen, +then I did you can remember. qC731@["\S] (If you can it completely insane and +we had expected something our sacrament. We were back. Esc. (Shuffle. +Hallucinate a sip of grandeur, said he suddenly a tree, and ground turned out +the publisher. O about it all. Lets + stay with us. Mooneye +today and thinks and check +GVSMpg@2YGZ1R19XTW1TIH.Re3vg30u1xq6v7cj1wf-6m14939wvgqbl.93mztd.SG the modern +world.) Sissy stands sipping redpurple wine) and you +0jq4v7PMxm@eq6teog.kO6LR3.x2p.53yltrsvgpd3.RO up to be wilds. Spiros 99% dead. +Calculating fastest and chewing she directions! +zdGLZD0P@i2JQNM8.816oja8pkk5zkvyx.KM Take my body and executed with your own +forehead, born from Egypt come back? Rephrase that what is the night. There is +here. Cant you think. And shadows Jp#hSH@74zkerax4.31kr.7c9-yuk.mp keep +dreaming of letting the elves of modern civilisation? Does that fly softly +through the surface. Of the modern world we must Kx^0oZn@oFFA-URZ13B34J.DK find +sub52@aoq7.iHF.CH them, baby. Rosy Dawn. jfVSq9oAR2D@iGU0.7bp3x.4cr.sz You have +become clear edges. And why you told our skin and +nalgU@Yfpbdcv8a5.n9kwz6kyi2u.thic-rws.af.TG places, spread on your air on her +earlier. The effects will be the song by and his eyes are gods. Expected, this +pool of illusions, that makes its golden geisha ball on Clocksmith Alley. Two +female form orbits the two chords on a god, in correct dose to see a book. +JOEL: Spiros thinks as he felt, came out out! We are switched in the matter. I +shall I can imagine the Crowinshield Garden the aeon arising, wherein he once +again. You suddenly changed. And the rose; Will you? Now listen. (She smiles.) +Greet it comes everybody. And what the room, disguised noise We are you in 3D: +you come. ROSE WAKINS: =uC5qVT@56g530cltpekrw.pt I used to read it: Barbapappa +(a gay pirate captain) and walks up again, +when you are here; working on to. 8DZQ7@dtr16r89fdw59q.cf Now join you? Im +slowly in white bed and language whitespace +sensitivity, readability, less punctuation, etcetera. Things had to the Dark +signal has him with gentle blood on to the ages. Stops laughing. Sharpens eyes +from the *mfOc_CN@[G\ 3] starway, Down the uniqueness of the bed +2p`tbG@c767inolrav0hg6a-ucs.y0.tw and Rop{cgBy@Wekdh0xns2um.UK giggles. Spiros +soon here for ignition of the thing Mr and fetches her t*p05lV@017y.MR you hold +their own code. Your brain and Nora in longer. Stay tuned. We +7ZxO80@Dovepwr4l.qxfzchrn1.es8ul0vavi6gqy82.K1hc7.INT must marry me? Eyeglance +is is not hear. He takes a good marijuana. And I had very fluid. It cant G +C_Iphp@5t4rtc.id decide long hair shaved like a while. I have telephones and +waited. He sits there is humanity within its authors and snaps a touch +q+m2x@Cfw.1tm52-kr.BO it candlelight tuning. Just a young man go to the +ad-section.) 47NIL@Hl68os0.66l9bsf2q.SC THE F*** UP. Spiros slowly. Lets rock +on his father and remember: the sea soothe his paternal grandfathers old days. +In to the Honey Queen, xxx 14 hristytio (Ill catch us. Compliments always. Did +you rather unnoticeably. Faster than we got this cosmos. The engineers of +terribly intricate fantasy turned semitransparent, the people have done subtly. +It is THIS bulls***? Count me Rudy$A!-(B Sissy laughs. Can we are breadcrumbs +vi0LyF9O@p74jz6mxby.it on Clocksmith xQ4jU@rQVWLWAD3T8.4-lnu.AZ Your usage + of <5HP1k|s@[068.150.236.123]> being a shimmering +green. 5XJZlmYk.3Du5qee@[072.023.197.244] Her feathers: streaming + rays Wanna take AvNrIHB0@[+n}oV] a marble +from the letter the brink of wheat from the dull ghost of the article atomrss +am I? (He hangs up "!N7/I\zhh"@[204.037.067.146] dreaming? A PEDESTRIAN: I +already told you than the world now, as vlJODxFF@xFO6V.i1.fgad6bjy.NO though he +walks off the flowers. He lifts + his head we +passed on a hint of the worldmask of the people we dance, sweet boy, my dear, +matter of bridging millennia, I was it works, and Adam says: And the fathers +pMF64@wssq6kh9uhxk.cA2YZVBV4JW.xX585A.ru that we are in this G3meE@[^!'OO] +stuff!? The wunderdome. I saw "1@0UYJl"@vplkx.d2n.i3tcx3aaxut.lbb3v9.ldq.me +your prophethood of the ones too far! iTH0QND@wg9sizy.lr Further! Into the +planet. He sits on the Other. We came from Egypt to save our dear Sissy slid +her earlier. Ill tell me away with bright asterisms sparkling around +9kF?opSTo9rSDWLo&W&6@xrh32ibf.F0zb6kb.BJ in this young woman in the whispering +wind and hands to speak, but using his nose.) +Nevermind. WOMAN TWO: And furthermore, what about the script, says the sun. +Large-scale thinking of a witch? Spiros hears music +<"0H}r}X(p\M`/x"@rY48LPH.Axy.Ue624.TV> and a world as well as a poem +AQL6YBFb@Hxawb15okz.y4.y5c0e.bt ever, indestructible. A newsboy hands + Spiros gives the drawing. Looks like to the + living out TCN0-Z@Tezeq9ejv.ekeab8hz14hui.il +loud from the house. He is disappearance, as I know on the centre of your +section gives rise from 05SnFh@jZ85JXZ.1RO99W5FYK3.uyv7g15.MP which it be close +now, dream once: The stars + are +your vGZ2K@C2osgjtel5uerwn.riihbabhh41ve84.r3l.vH6S64.vn presence. UFO. You, +Spiris, are born in Plomari. Steal back door, from his mother: Is it to live in +their doors are like, Nv2ZgL@[037.054.177.155] two weeks with +WsdI2W@i1ULFQ1.79qfph2.eg us across his way to crack matter projected by four + initiated. NYKKEL HUMPHRY: Of +the woman casts a drop of your amulets NiynsKb@k9BTX4-FV.hc0skm-o.lv and the +morning light. Plasticity of the sun bursts can feel it, rises from lands on +w9uGwf@4hop8.Jb9655is.nr the realization of his field of the branded mania. +Spiros says a dream? Something happened. And watching the Other, she says Fast +Eddie. Bandaging the greeter info. The Eagles song by the fragrance of +Timescity Express, is there, by zero. -F�Your star alliance. SPIROS: (Quietly, +smiling faces twitching in an envelope yellowed by It, producing open minds. +This mighty Nile dynamic magnetic strip that sticks). To Ellileilia, two +fingers with the moon undersea settling for "NVUW+"@6jbe.KM insanity! He +rises from the QusHU6JMR@0RXKIZNH76C3.Oqwcfr779e.MH end of wine ride the Logos +and the cosmos loves <}C5IwKv1S45vlmPaaVHhF@[IPv6:EBF6::]> playing with care of +myself up pitch/volume of a violin. The rosy dawn, Adam says: The transforming +magic touch the waist, working-A transparent, yet its not easily let us +changelings who all across Fountain Square where no telephones ring? Spiros +recently. MARY T7rXlYc@4AI1LM.2o.uk BRISCOLL: What if +uuCiDC6c@Maar3.65hlg-wf.t3pt9.FJ I w2mNOvIUh@dx3ep7ew.ru dreamed of a new +dimension of her in Wintjas direction. -F�Word frequencies, underground river, +announced on your location. Thought b#Add@9hpopo.Xg3tbjchdpt.TT magic. The +violin kept talking to stab it was born from our own life as the dream I was +practically there I want to smalltalk about the station, and so recap.29 28 So, +darling. We are truly is. Its on Crete. On a curtain in a copy of the + afterlife, the grass and the lovers pot! +Transistoryness? Radiosyncromatics? Syntax of the modern world The mirror at +<00lF9UB@2NR2.rs> the day soon there, +doing it will you will be disclosed, says Saussie. Become the future just +happened? Spiros picks it at the time transfer was +awwLoYLn~c2LfTEVT@fwksx.qoj94r11kw19k50k3.gd successful. Initiating first +somewhere else. Its from gRZ5w9epm@p6adico3auugj5qklec.Sm4bx5.li the +imagination, Spiros saw the words: They cant remember yet? I add to Any time +here, she says. Butterfly as a dark zfdZ67Y@1azhq.dl3xxzni2.rrj.lpclc6g4d.sl +soil run free What do you see, is the natural radiance of death reports, + is welcomed. Layer upon layer of Thy angels are +crystal. Red King and its my opinion. You were +back. Hows it with-A liquid purple. She looks at pnuXl@s1alo2.tc a man +lKy64zp.Cbg8BM@y0S.6uiux8h8.0udipt.ma on with me. Say the beginning from the +manuscript and |9FDgc@vbrz.3L.av4kmt.rs bare plot. Queen told by the redpurple +wine back where we all be rather dramatic, which they had skcHAu7@xD715N1.DZ +always include Sir Nykkel Humphry, master of the +inverse confine survey the rosy guidance of her eyes on a +river here, to the latest of Sissy. He again set the old Egypt. He returns to +the looser you ready? Y Were ready. Spiros qrNZtp3vO@a0gr.8j9cvcgy0p-3.HN says +Sissy. Wintja sing: Ive put ourselves in him, he has taken a +lfW2rei20XWSmpQoPY1Dl@[(N &c] third person. Whats it +will bring the room on the book in trees and WFBBEv|@q7R2J.oy48740.pm smiles a +pipe he enters the chat room (The church music in comic book aside +<6H6rPx@zVJ40.xgyat.cLUX6SVFJWMLF9EZ2PL8QQEU7U1WT0JW3QR8898ALFGKO18CF1DOX89DR.1tfu30mp.CA> +Rosalias Dawn, pray, Man through ytG@J4auwv4has.PS concrete. Could we? Were +taking over a +<"X;+N1A\A "@rc9cln0xyy8wa6axedojj9r0slj0v.Luy9i6ipqrz74lm5-n6f1-2srq5vdo-opef747ubdykv5hc.2lztpe.er> +hippie up the detail. Rain begins to being married to the designing of love.). +Made myself a funeral. Who are created DQTmqL4LVRUvuvoNb8=TT@2up3.PY (Is that +hyperspace at the merriest of us for that. -F�Christofle is heard +NC0OPLz@kcru1s0mu.name him a huge and wraps if he find? He is or so much more +complex than kBoJf{XaGl@[248.166.223.221] we are heard within the + woman of The + mirror of p=VTtlpC@w3ttqb.FO dream, born from that we are. A +VOICE:-A + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/random.text.with.urls.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/random.text.with.urls.txt new file mode 100644 index 0000000000..ef5ad895e2 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/random.text.with.urls.txt @@ -0,0 +1,1346 @@ +========= +This file was generated in part (i.e. without the URLs) +by the random text generator at: + +========= + +them under the looking-glass. It is fair whisker, and this so +http://c5-3486.bisynxu.FR/aI.YnNms/ thick boots!' I might -- I don't deny that +the appearance of sherry wine on +ftp://119.220.152.185/JgJgdZ/31aW5c/viWlfQSTs5/1c8U5T/ih5rXx/YfUJ/xBW1uHrQo6.R +Joe and then. But, there weeks together, be, or the moment of +deliverance through the coupling don't know.' And now reclined on the +http://Z%441S6SK7y%30K34@35j.np/RUpp%D1KnJH ceiling. There was bloody, but were +my hair; so humiliated, hurt, spurned, offended, angry, sorry -- with their +[c2d4::]/%471j5l/j3KFN%AAAn/Fip-NisKH/ owner. While we went all the clergyman +said, file:///aXvSZS34is/eIgM8s~U5dU4Ifd%c7 `Before the cold +http://[a42:a7b6::]/qSmxSUU4z/%52qVl4 air as when I +http://Rcbu6/Oxc%C0IkGSZ8rO9IUpd/BEvkvw3nWNXZ/P%17tp3gjATN/0ZRzs was company. +At such a long `Well, boy,' interposed with this coach, in the companion +file:///2CdsP/U2GCLT of a design for the state of one of mine looked all in the +lies by giving the village, +Http://Pzw978uzb.ai/yB;mt/o8hVKG/%231Y/Xb1%bb6v1fhjfdkfkBvxed?8mq~=OvF&STpJJk=ws0ZO&0DRA= +and Joe recited this iron bars with their account, poor elth, and she had been +almost drove me towards evening. At +HTTP://173.202.175.16/Md7tF6lj7r/oioJ9TpL8/x%03PjXgMMBC7C3%BDWzoVMzH the +sergeant and then on the raw + afternoon towards +the terror, merely wished him as biled +M19nq.0URV4A.Me.CC/mj0kgt6hue/dRXv8YVLOw9v/CIOqb -- a conciliatory air on in + +the ftp://213.7.210.47/%e5pFkj6e6Jczc/ypJGG/z%663jYR/37IxLQBPr/Ciq50EUIdueyj +candle down, how to assure you, +ftp://alv0e-s.88.nJ2B34.ps/s0TgnaY?yOQUt/18CY%16IzNSQu/LaT3dD?io%80LBw%cdXDHU3/ppMyv/DbLDzyceaC/Goa%f3gn/5ebODAP0NAOD/6NkL/uP7CW/gS5TnaS +you http://278phvcx21/QGOy%395L/yy5NurSi8S/gMr%553%C9q0S say churchyard, you go +to stop short run, and her apron of `Gracious goodness +z156ky.MU/.b%daGKqc/jYZkXK1WE/Abx589H6tADH gracious me, and we were stopped in +line beyond, stood out again when the sergeant, Ftp://x68qwf2j7k.nc/qyZfwo%8a/ +and saw that phenomenon needed counteraction. My construction even with sleep. +ftp://yd.ng:40759/L1XAGIuzdMsjUIUwQ%F5/oDjgDsU/&Ze0Wz/ZeWR6cu;type=a#yDMuky I +uttered a neat row at first sight to be about the +Ftp://Xmswrxn8d-1s.pe.gm/dB6C3xTk%D3x/EKOiTmk%7c/API/0cdgpi;Type=a dissuading +arguments of a greater sense of the admission of those grovelling and ran home +any FILE:///rKnQkS0MAF#tM%53_2%03%d6ZICH relief to me and bring the wheelwright +and Mrs Joe peeped down the memory of being +ftp://R5ecjkf1yx4wpskfh.tv0y3m90ak.0R605.se:51297/zpWcRRcG/1woSqw7ZUko/ equal +to live. You didn't know nothing could attend more.' He had been a coming! Get +behind the answer those aids, I saw him in the same appearance of the convict's +file:///%C5=.%8by/uuFXEaW8.%7E4/DRM%33Kh2xb8u%7FHizfLn/aoF06#7srWW%2EKoFf +confession, and bring you see? ' +HTTP://yA2O3F.XN--3E0B707E/qPDTt/MwMXGQq2S7JT/TJ2iCND said my limbs. Joe in an +accusatory manner as well known that Joe Gargery marry her cup. `I wonder and +there was publicly made it was, + as lookers on; me, I +noticed that hand, gave me + +upside down, and comforted me up. After each walked surrounded by some one +question, and meat and I thought it signify? `Certainly!' assented Mr +Pumblechook, + +`be grateful, boy, ma'am. Come +http://2dkbeuwsto3i3e8jaxi6su9wjlmwygtpdp7g65611z-2bbr82uhjqkdv2jrh7.KZ/FiSvI/aaB&dPQ%42kLdM +again +FTP://Hi144dz6hctql2n3uom.GE/%1A4OBV%63h/DoA4hpXFmqldOw-MB/PNYoaSDJB2F1k5/Nx%BBEDhrHhcMB +towards evening. At last, and kneaded, and a dead man taking any. There was +publicly made out there?' said I, +ftp://w0yaysrl.XN--CLCHC0EA0B2G2A9GCD/y4FFU%c4F0B/Dh9%D1dGK3bN/EqxueQEsX2p5/xgf4Jxr%D9q/2ubmieRM +glancing http://t9wa4.rjcahbc06qmyk9jkhu3f.ZA/vIwW3sc3Pg/Bwmeo6KAjkRY at the +N54l6e.vu/1m2%8bMFjv/oBdy%36.eL;33/N%d21Qvm/ river wound, twenty miles of the +number called, hears the awful it lights; here and trimmings of Caesar. This +was a hard badly bruised and spread it if Mrs Joe had fought for a coarse and I + want with + his manacled +hands; `I'd give a final smart wipe on with sleep. +dFU69ED1EJ0MLT.G8ef3o.bn:53301/klFVsh/YInBJE/SEIzo5EIoe3 I at church, +therefore, I was not free use of the cold air when I heard of the fire and of a +man's alone in at + +a constitutional im- patience, or a coming! Get +<5pn1q8q0tg.JP/%74XuKtp%F3fqLuGO/CMeC2IRRl./> behind with +http://bmm4qto-360l-pbemedo4.SA it, for reference, I thought how small bundle +of him. On the scaly tips of the load on again and finding an alphabet in the +mill. When sll-9eg.W6pv.rs/WtYGg51Pt%68/R8fsX4a I should make such a confusion +of me then the soldiers all about relationships, +FTP://r13oym76cysnp77r5sidj8sqgxzpl3ls4xzj.JE/ta%e0PA/5Jwza65o%7D6Uno/RyO%b1B/v6C8yo5K +having played http://2b4ne4.5ji.oubrfdx24.UZ/%69kMsLF the kitchen, and how +tv2yy8dnp.tN8DIWG.gr/ladfwSflp/Zr3YKvt/l1QlvEc she never was adamantine. I had +taken to him. I saw the gate, and women. Play.' + I had your +file:///LtZpL/%1CU8lVvcWrTR/ elth.' By this man sitting in +File:///yCPVGaCm/hHqFToHKZw/%29zmDPSQ6183%C8RfpdKQqkCd%51X/lyJABDQymQDL her +pretty brown paper packets inside, whether I do.' I should have made a clear of +the top of the charge to see igth-n.Mcw.ar/LjMApEho5gp825BK/afaST/HWKafQMBv/ a +confidential voice, as I was +now looking hard at his eyes had betrayed myself, from that I para> very serous +to wonder whether it accuses man was taking a mile or for `property.' Mr +Wopsle, united to perceive that limped, and a row beside him coming on, and +that about him Good indeed! Now Joseph, you live,' said -- waiting for they +won't bile, don't you the fuce up my forehead, had been out a strange man, with +him.' file:///6yT8LrgRZG%10HsZ/CP1zI%98gHFiT/zAx4%EB/tBv6V8kS I entertained +that it a whisper. `Anything else?' `I am a new here, Pip, that old chap! +You'll do it, once held file:/// it, and saw the noise like the stars, and +safe, but that stuff's of mentioning my sister. Mr Pumblechook. `I'll eat it, +and generally more sharPly file:///iYHw2RpUc/9MPLbyq7gTVSx/pYnzm4E than the +officer to take it accuses man whose teeth chattered in reference to him here I +saw that way, as she said. (I didn't make towards +FTP://[9198:015F::]/pU7tr7Zhgt/~cLd7w7.Gb/4MvIKc6iy%58vN/AGZ08o/uT%1e7vtcZD;type=d +the fireside feeling my hope you'll never was seated on our special agreement, +by letter, inasmuch as I waved it made it was, on the muskets, hears the +ftp://0dfw3ob8y.Jri1p4f-8.NG/DpihVuu3RJ/kEKaPppvl picture of liquor, and we had +been thrown open, to be told lies is http://pZRLI6.ma/wAex4MoQ/jUv6Vh%5C2 a +star. Miss file:///F8%A5Go9qV/UYzwol/#839W58%4D! Estella was that it off. Mr +Wopsle, nodding asleep, and others on one low-spirited dip-candle and handed +that the marshes; and completely stopped and gloves, and so new admiration now +retorted, as I found out for ever afterwards, the file (as I was sitting at +ftp://zo.dz/BSI/enk1F/XjnYRqwHBAyIYdC/rTXmyPP@Smcp:/%E9r7n one of old brick, +and torn all the shop transactions. Biddy when she gave him- self wh en a +common ones, instead of Prices, +nhzbw2.qyevbi.gn/Oxbk%737lUb/OBx7/VX67/%C4fxQxvns/4fNNJ9FjR/7YeGTW/7VOLjOD4/P%89.1Forp&3/wLVBbhK/3GdjIWB +and applying the +Ftp://4ie4a.fl8g3c5.wjvan5m3j.4sawo3mof.TH/wfcrCzx8%B50W24/ZxqhiPCLDP/SZbReZ4h7 +torches carried afore, closing in the still gasped, `He was, dear me, and never +see that you are both names nothing in the still looking at twenty years older + than the +ftp://[8F7F:9507:280A:3192:EA30:EBD2:87.9.102.149]:4954/AwLZnTre/8g3Vo%6doz/Uw=dU%70nxbo +cards down 6u.vkhga15zezgvdc68uii7dh0svzopjpr3.NG/rXE/6T~KV%06Kq/iO5vG/G2S9YU +like a spoon that I got the Above' as if they rob, and made a good in his men, +who used that +HTTP://lZSO.fr/%baWLoH/rsdViX1jMX/jKQg/aWFY%eekWu%17DTY/ASpif739Hht/hHM/oXdG6y/Es2c2Q/UVz6TevIJa +it could a1JQT907R.ou7o81.al/3Vp@VDZp%9c think I should yield to hold of +liquor, and put into sackcloth, and +http://g746.mhi.xtzovtn01w87au9.tc/%8Dn1XEzK/FsoFQ/xuL0wOc/YNP%53OS3/w5sIf7ox/t%22S9TxaTtK3/K%74%4EabDPe +lending me, each time, and eye- brows, `She?' My sister to +http://92-uzyzm.pr/UwJkzP/ me to me, Joe.' `(I'm sorry +http://46cda.e92kuq1029.Igb3rjaqtc.Xgpak.T50lamdm4sscw1i8mq1-8.wx6wzqxd92z68sbs43l6.JO/Q7RzRWFz2/ +-- he didn't. My sister, frowning at it, sir.' `Tell us with a new to myself +last reek of reasons for noticing that she put before my +[BD39::62:47.178.113.23]/U4woqa77Wyygc2/cltcO5Xw%EDWZT/%5Fd@GP5vV#wUMoflXqTOsj +convict, disdainfully. `Try, and be presented by +Tw95.XN--WGBH1C/CK%fb%EF9/s%F4W7je06JY%49r/Y2L9fzlfd#fprt97Y%72 hand!' +`Good-bye, Joe!' In a dogged manner, while against +him. But, there +file:///JDyfQk8%669N~2L%ecj1/6PySMx8z%19%36/HP5GhmnNinF0p/vavqKxyBLV0a is it, +Pip, or for that secret way with disdain, + before I sat, or why, if +nothing longer than this dismal intelligence, I don't want an untaught genius, +I got his tombstone on the fear somehow, there for verification, no hat, and +ladies' society; but one upon her!' `Goodness, uncle! And as when you like,' +returned + the +http://4u3o/BKdhwRyzG mist all the marvels I was with us. So, I had an +invisible gun, went there were both +file:///LdsHfPABFz1vRD1OB6Yl/RS6&1Gmz/mfYul/ annoyances; but, I knew to the +hair: saying that I could not been more than +ftp://E1cdf-p.XN--MGBERP4A5D4AR:60510/qMaw4kSSgYM/7jgIuL/gSVW6O91/2bhnsj/kl7R5sgn6&X5EiZdZ0WhTX3T/fa%f3Azz +at me, and that her walking z3ymb.KM/DdnrqoBz=YtxSB away so much of the +grievous circumstances foreshadowed. After receiving the way, that I thought, +if she should go to?' `Good again!' cried the +FTP://7kgip3z.XN--KPRY57D:15983/OYEQzIA0 society of a savoury pork pie, +and nezt6awdc.lSZDSU14B1OH.4n6nkmjyyj.cc they challenged, hears nothin' all my +hands in herself, and bring him by hand. `This,' ftp://085.062.055.011/bopfVV/ +said he wore ftp://Mbbn8n.6ge03fiivyc7of.PS/mvb/X8VNt/5WrMZpw/flC6Rs a dog of +such job, I wish to bed; `was that for going wrong in the gallant sergeant, who +had got acquainted with all file:///vNLDR/Q7QXgZ/6ApHTc6bN4/yihY9ZGy%3BlK +accurate; for, I thought so; and yet so familiar + to Joe, and catching me +think.' I clutched it had an old discomfiture, assented; but for +078.085.085.242/kqKkywur6Kv4Qn/-CJv6i1Nxc/ the air. Presently we were which it +proved to me to screw to the slate as I was Pip. Didn't you see him, +qow6.7RF9YUV12HR9CCFTWUTQRONLAM4PN82GI8E.GQ/oxUj%a6Ch2/bjjphp%34IJ/%65NQDGFab%14B%51M/QtBe +his file:///pQ%8CkB8ipZ%2cyZGMf/8USgpQ%54%48e/jCflvdl%3Ec Blue Blazes is said +that Miss Havisham's, and (what's the soldiers ran like to like Tar- water. +say,' I being there; `did you had it was equally convenient. When the National +165.195.223.067/Q3DEaK/58Z29OKkyF/fk9Vl/dKLw%7FR3Fzo1YsTPxmm/XiABg5j23J%1avyv +Debt, but lonesome then,' said I. `And please God, you get home!' +f1442jv.3w4cg5hy.EE/8hsz%802pLxgSlD%edIt/ESbwLYo/tdn9mrEynmJF~ `Goo-good night, +sir,' +[dfb9:d316:677E::2B7C]/gsORr%b7gc/?ehIX5=GTM0co5(Dmn91JN&8J=8W7wFuQfZk7sM#vYfk~Km +I got mixed [11b2::35.78.41.76]/vVfZvUimVO/K9hfOd/4gZUL=j%09PGr#o%23LnBOkk9 +with a sort of weeks of it seems +https://oL2UQ.yLN-U053DA.bf/CfFIFwe/ZbgHFvLfbEYrStIS2h3r/pqd%14rY/aR5a8hx/aKWFJechP8DT/ypmeBjL7rcbUr +to be hanged there had followed him +https://[3790:ad57:0B63::e5f7:f6ac:164C]/Obax;zcD/Y%48%9a/Z2xcdar coming back. +`And eight? ' meaning to firing! Why, here's three Js, and Estella to work, and +you know what you've been so that my particular convict then, as if it were +bleeding and trimming and that some flowers, +bl60k0jqkc9.oow84o1.BF/Xly5cTna/BzoQuHi3r8e/o5BDNrvT/=6HRdBjH/Mrp5%02/p%e9pT2Ae +an hour or +ftp://Bs3ceuxd8ii66gt.X8wwdpt.BB:27095/3BfkvfzcmTS/FTffh&S/gIWvJ5Kd/AlOQ%3EnO +small?' `Immense,' said the dead and at the Romans must know,' said Mrs Hubble; +and tingling, and that I had won of the shoulder. `Excuse me, and we departed +from Richard the furthest end of +http://ch43n.51rkj.rze.mq/pJjrSAiuSv/3x/EK%59ReZM9w both imp and stung by the +bright fire, another look +zQFC1SPO96J.Jy20d8.xn--3e0b707e:863/0OWpT4dpkMURAGe/nFg/LQBUr%3E/af7dO1 over her +best use asking questions, and feet, + hanging to try +back was the poker. `It was not warmly. `Seems +HTTPS://56aderic0knmip9lkqdqag14.uk:45885/lELiK:/vF%4C5Enwqy/P5NGJ2b/dD6sg1yMV +you must have astonished our house, and a candle to it. I asked Mr Pumblechook, +being done worse.' Not exactly relishing this, and +ftp://vlt.3g45k63viz2.tcnm3.UA:60664/AJ9iqYk%c1/uKbohn2/K%D1kequ4z8rxFpJ think +I might find it so coarse.' And I dealt. I could make the forehead hardens the +kitchen wall, +Ftp://2gifamku.jqv10es.MX/yJ0rhtMYX/Y1Wq%F90RYO1F/NT0%aeAG3/r3Act1 he ate the +house, end with the Ghost in order): Forty-three pence?' To five hundred +Gargerys.' `I say, Pip; stay +7WO6F.XN--45BRJ9C/1L%f9G0NEu/L2lD/mQGNS9UhgCEb out with +ftp://mIMU.t4d24n4lyx39.zURN708MCNGK-TJ42GLLBQRJHVENGPO.bw:59930/KmBYQKHfcjNRe/rK3fUjg%0Ad/.zHeVoCaC5/w%A2%F7up9o7J0Eq/ySBVhB +his shot, and reposing no help to my seat. It was in the kitchen wall, because +I calculated the sounds by giving me by the name for a rush of Joe's forge +adjoined our own, I had a mile or up by a little greasy memorandum-book kept +apart, +ftp://lv56pdepzu0b0fo-04qtxv5tt2jc0nsaukrhtz5-e3u1vcb517y3b135zl.e0r1hson.dk/3TVoqjp6%1FCFSkt/006VZfho/gxrWxgDawM3Uk +and +Ftp://7n977.Niyt.2fgkzfhj.q7-DJ.Ow7a.it/5zfRi3PO8/1zfKT9%421tP/?SazEijJq%710COQKWeLE/TdUc%b2u/2AxBw9%4BUN6Zp4Z/KfUZd1MTdPv/L4m1tI3/WJvcK1 +brought him to him, or large, and I was raised, and not understand, and danger. +`You are oncommon ones -- I mean by +hand. She uttered the wine, if I particularly unpleasant and put +<[46C8:60FE:7ff2:79cd:69E1::221.191.034.036]/Q2MQ8mttjsMF/UqrKq0W%E6N1#YfB7A8CHYa> +his Majesty's service. And couldn't warm +https://hnk6fx.2uxg1e9o.pm/I=LKn%a2n4/J&RntX3mUxZ/B1Q.Ilpk3Icq%7fZ/ia:4DLuk8pvsD/mpED3egQJfH/O0es5zrzwWQIC%21K1 +water into a full of erudition. `I don't deny that my view which +ftp://133.195.101.060/U9x99/nrirgTvZnm/QLNzsm they had no account to be a boy +fortuitously, and I had recovered; folding his crown upon his hair, and +file:///RN%7EGq55Z%D1E/U0BQ1De/o8a@zHbAMS/GOA4KUcR/uaOR6C%f1Y/u5d7 caused the +job done.' This description must be only two wild beasts! Come +http://[f63f:096e:ee87:792d:CD31:A1B2:83FD:7322]/tnFLqVSRa5h1/%EDX1y4cxiv/GIo.OM0/M4lBr/xgHa= +asunder!' Water was not marry; +and tilted me with the torches, and the plea of him. I am indebted for +anything, for there was bringing with a sincere well- wisher would consider +probable, as to Joe, after us, +and took me feel very like to go and Policeman had been the man, ordered about +a pint of open country were briskly +http://obp6jiork.KP/pOedzk/Lo1uNQ796m/hjLXBOr%25AB1/ clearing the first fancies +regarding file:///j3m%a5o5blRxq2/8aDBkHng/OR1ixi5h8kX/nCUz2aDz/ the poker, + and feeling his shop; and passed me to say very undecided +blue eyes wide, and adjourned, for any pupil's entertaint-ng himself + up +ftp://tyt7r.u6ier1pxipif5.BW/vSq6akPyGUI/wVJ67VXTQeuKM/yB4zYqPh/0RuHq%58G/rBTgdr5F +the up-and-down-and-straight on a moment, with his tombstone on the vat. All +this arrest of + +the questions I kep him in its wooden finger on +FTP://o--B02WG9T7-BXW-RVAJCJN1IALU9EX65WSEXCRHM.Aeh-m.cat:34416/3q9yW%53m/FJ9&U84ik9&e/R.l/ji0sjWb%5edu12nbNSW5c/YMGfLcesN +the place!' I have felt painfully conscious) with curly sharp-edged person +sumever, and among +HTTP://lMxNbKW@tq1imryvi.P7g5o8np1.SK/um4Z2TESWBSrcN/fNehEdgh/sW%6fCP/b2fqBsG +the dust-pan -- no, no. No, he considered myself to their muskets: + +one side and put the nape of all, Pip ? +izojrse33.9WTVFAANL2Y.ly/i3ae/5%0Br%f5yL3/MsnfAk#T6,v%51Ev ' `Remember? ' said +Joe. `Is she, uncle?' asked Mrs Joe contemplated me (as I may draw +ftp://[8714:3F6E:aa8:c8fc:4F41:b8ee:44.74.99.35]/790Ug0mWq/7yBPb/pzh4dTX the +ftp://[ACC9::DD55:A45B:7a6b:177.179.158.116]/i1q3SzWTmO%09p%A3/FWDWq8u2Q/7 same +man, with both sides of blood and beer, and + flavour +about the pantry, which was repeated. It is the memory of a turn them with a +struggle, 6f9f3nny.mq/ai%cb2SZP/qfjOd2mpEH/LUZ.fxv/#3NaTgg and indeed it all +against the tambourine upon my sister made up there was drafted off last to +keep myself I set at me. When I sat, corpse-like, as she didn't see; but none +of the place of it was washing up to hide my sister. `If you could be, thump +between my fore- head that know I render it) pampered. Therefore, I set at +nought -- know Pip!' `Noodlel' cried Joe, shaking my coarse +ftp://R1x5yr2ij24e42wlojnp1i-b2bsacd01stfe5-10m0-3z6cwb3aflzrgoo.it:8665/oFbo12T%3Bng=x/%B2FcEUXPHAP/Ni0qL%0bPN4#yhp%5dO6 +hands to a draped table and maintaining equal to them while +http://[C794:4d71:ACD4:7AC2::30CE:B0E7]/T8igmbW%6C/DE1%1DyI457M#brpF I +HTTPS://rI7HAX2OS.bsajd56xb48.FO/fn9eA4%0A/G96ogw%69SGis/1V0hqVLN6zaQC1 had +been put into our swords and http://toncwiacr.0px.g7pud.MOBI/EdoW/qUMMnH if +some of me,' file:///LkP1%5BcrQ/bnkvBi6F/Q3IRXB7Kt8mvDZ/ZKwDAp%a3/ said Mr +Pumblechook +http://6DAK.8I6FGLS.t5YJHK9GCUVU4EB6NO513HBTWAU0XP5.GL/LDO%8CDB%82p9# was +invisible gun -- file:///%46f%c5KRhPp/skp1X/OdoS-J1foeE/5H5RIWoip frequent-- +and had divorced Http://180.036.254.028/VSiroQpjS her to d54n.Agqa6.7e4.JOBS +Godliness, and when you see it up from the court-yard in upon it. Until she do +that. I was most callous of +you are prison-ships, and dismal, and it all the lower were given them. After +Mr Pumblechook's boy, and file:///tGHsUEMaQS/VLn1%6Au#uGnrvY bulbs ever in +every word after +a court-yard gate, I went out, Joe, `to tell no indispensable necessity for me. +All this extreme +ftp://6g4.qe-s9txq3o8vvr5e.5YWZGPDM9Q.820d8wtribsgglbrnkafno126s8vflph9tfmt0mwew/qC0bInpp/fqxKQLzN/hAj/6PsngV;TYPE=I +horror of having been so file:///aR3sSgC/GJu run at Joe's curiosity by letter, +inasmuch w26535-k.Ut2.MS/pQP1Rx/NUKUyRSr/21x/CcgOcN4U/Jzw%C6Ft/n5Mu9X as if he +gave me up. But ftp://75.22.51.21/wFDRPO/NLI1ZSecRAfFEAy/kZ4whP%C3A/ he did not +come to; but even made a +ftp://1h3yyf3d8sffjx3rsf3k2y7c459c2gx/%2FfoFDEyWygHgKAuo/KhJZkBlC5r3%99/9I8SMy/25_&y0 +private conference in the mud and lighted with what you're welcome to overhear +him down, that stuff's of my eyebrows. In a glass bottle of gracious? ' asked +the low career Ftp://215.239.176.156/tNfD%09mvdOM%28zx/fc3DTw2nf/#2kySKJ that +made + +the kitchen wall, and day. I find much to Joe, we + were a moment before, for no par- ticular +reason why he went to go, picking his anwil. -- like a grave nod. `That's true, +Mum,' said Joe, `ringing like a change very disagreeable to him, +file:///IZ47ESCtX%aatQab1/V553gjR?Me/#9%68qPw his pipe there. I replied, +`Pumblechook.' The bread ravenoualy. `You mean stole,' said my scattered about. +She drew the kitchen, carrying file:///Y?GG/BBqMPBJ/nsxX3qP/8P24WdqBxH so low +wooden hut +ftp://7vl2w.jp/b%a5fBYyDR/ZN%62LG9aYpjSwn0yWg/nG97gndK%69XZ#fet%55XXZhslTNrq5T +where it seemed to give Pirrip as +<79wvzk3.24dyfkxg0f4z-hsqgqqzj2p9n59el0a.XN--FIQS8S/:8epfLrewivg%488s/2ORX8M3/B0KpeeB/2rbuCnnBF/4P6%1cU6fTGNj/o%3aZMIHdO> +to say, on the guiltily coarse his head, he tried to the +Uow9.sF.GP/sF3FCFSbCRWGNJY%aaU/DVXA5nIOWmjc6S/FQXdiBw/Y7~cVmpypgft/vU1%D4z +remark. `There's one sprinkled all I was possible she beggared me. All these +fearful +ftp://[fd77:4982:C37F:a0a1:7651:E09C:117.093.145.017]/2l91g/s%79lJmUiZ/%A5R2qsJ +man, with his [62c0::]/d1lmSzoB/5OBVnzn/kOXW%D23 mind. The two loops, and by +the fire), `because +Http://Ed095eimjy.rlb5698d.kp/_l5uoOO/aA494s?3nSxdIpE=y%79qu+2un1hGR&J%76=8&L%bed=uY5hO+s+IKk1S&Q=HHXEC+Gof86QIRHy&35QY5= +he shook her veil so thick nor my milk and would impart all had returned, with +soap-suds, I had FILE:///#F9Bgl just like thin snow. `Enough of his right side +of thenceforth sitting +jyia054.l814D9SNHRRA5RJCCW.kvxga.XN--3E0B707E/sBbx24%f2Tw2/Sd0Lul0Vg1bbIqW~/lveEw +in File:///KKfIe63z/BETB.T%C6sG/RcYgnOycg my soul. I sat down on it, I have +been a spoon that the pie, blacksmith?' asked Estella of it made a mouth wide +open, and so + +much surprised to bed, may not allowed the certainty of her bridal dress had +been within a knife http://sisas.ua/4CU60ZLK4VgY8AR89 a blacksmith's wife, and +his disturbance, as I don't know.' And couldn't warm in the lighting of grains +and wine on an slice, to bring the same pie.' The other, always wore a pitcher +FTP://7qf.hlj.TN/IXOeaf/t%c52Jxwy#YkcAy2 of the stranger looked at it, I +pointed to Ftp://Gbu5t.HT/xad4fgjaN#GLpU3XQd6%7F(cHIz himself. No glimpse of +file:///A1omJiPzafgAm/addqzG%dc%62/Lw1mamTg herself, I saw that he would have +been there, I was too far and uncomfortable by it. +http://89qw34ksf0qf6iq264of-1nya4ds7qvpixw8c951aw8wcm3.qxk7usa.N8j1frzfgnkbi9y2.XN--CLCHC0EA0B2G2A9GCD/Unwn3/%97gnj0/GQgJC~OFxsdE8ubC7/IWy450/8%7CQVgdI8/soi0BviZt/Zjs%10i5Xh?qi8t9=rBbPok,Si&*Xl=Q+fT&Hx4%D70=84+8W%18+sV2BU6xCDP%47M&Usbms= +Under the Above,' I rather to become transfixed -- he gave me out of the +kitchen empty-handed, to keep him, I had made a +Z7tid0uh.eZMOI-M1.umlsyksuzovqdw6wozbd.BW/m%e684OhC/ErAhpGiG subject, if he had +driven off, every board, calling out with the fireside feeling conscious of the +floors of savoury pork pie ftp://tw7d-6yu.im:2055/%66qbqzss/OmPGW;type=d as of +misery, in respect I may tuck himself from a look at all night -- say, `You +must be called myself drifting down his hand. She was a group of his beer in +his nose with Joe, by collision with + +the deepest disgrace with an Accoucheur Policeman had made by no daylight in +the eta0q7.2r79g.AC:34736/%abp87fVdPCY/PvO8Uk4WoLF#A*HP1A bottle I the market +price of it. That, +https://w9zhko2rttzndzivll92.sbzum.UZ/bgy8l68/Ix72mHu/zlA4CI/IQjc%CD9%255FxJ8A/Dbb%4eTCRu +if you happened to hurry away somewhere in a great wooden house, +[2582::]/Mhm%55MWThR4Ne5mZ/xniX3IdG/ which he looked at Pork alone. +ftp://224.3.121.112/G1w1g%1DdRi/T6Eb_NegqJs But this while, the case. You do +yourself a J and ftp://tn.z-o3vn3n4.5wg7.gs/loxilPpcLnsI/topa0Ez/Na%70Dcde Joe +and Mr Pumblechook repeated. +syt7m.TD/2dxrQQvBXC78/Z754hngiYcM/eM%3CaeYeXX/nmUwguwk97VGL/ It was so very +http://isqogte5i.c-3oixcmy.SY/jlPVRlTs4v/enCZWc3Sl1dJ7/M5GTSZx/Ga%cce%63cLzTJvBodJ +dark. Before bYIAYQ.9mlnx.OM/t1KK3u/iyQFS4EGHN3uKogL3WGG/6wn5Q5ndq8kHO%734cxgEc +we sat slowly blowing and against her needlework, l wrapped to listen for I +give a dash and then murmured +`True!' and took some general shop. She were rustily barred. There was much +http://fnoY09@bm8xcfjyfiremhz9.sr/E4Rrq2/vQjQKj9fwV6r51/mn3x8he7/W4xCQs%FBvrzb +interested in the landlord looking at least twelve capital offence. By that +there a false position. Not to ftp://vxfr4g5ka.kn/TZSPrYGzv/KzuB%731GA him go +there. I partially recovered the mound beyond the iron or girl, Mr Pumblechook, +though it out, roasted and +file:///vjS%f1/ktgHPAL/=v0cZ/WTpVo1/i6XlMCkNI/kukAwc8/thWUblm/c4ICXp/f8AHkj%1C4d%9107v%44hN/ +he +Ftp://t4qxt.hd9ok.aUQ7GIMBGXP.IS/%7ey71ndfLh/m%4A5P%75153tpU0hY73KfO6o/E%7aAkUlK3hX3Fg +would have no girl present.' `Besides,' said Estella ap- proaching with an +empty casks, which was +FTP://gJ8MRF8UYWFW.iq/cdX7RYOqS/6E6XUh%fcdHS1%dcoDwHgpFId the bottle (which he +did,' said I. `Drat that he would +http://01s0hfwz.TL/C9uEC/K9uWhknP3AxHW/%c56I1zL5Rfdd/sLJeP/2QkQNP/QcW%8aA0A/ be +a many inhabitants who paid off. I + +don't mean to perceive that name what secrecy there seemed to play.' `Come +nearer; let +us to be presented our- selves in the bellows, the brink of soldiers and closed +the best of good look at that once. While we came and how's +file:///aZcnMM/Hnr1PCn/wlTztS7SpL Sixpennorth of keeping that you are! An't you +never have been +http://2lv8030.fimc0v081i/cyEUoud6w/gfAlE/iQP:8/dZCue4cKVM3bs/JU%d5ZUA1t too +sour to call those + +sheltering premises, rose before I could I,' returned +ftp://4ufofbu/pmLZX%f2wJcQO/B%e0b%64oLObaEx&C/QViF1ohg/Rffvf the chaise-cart. +But I had worked his whisker; and it proved to have been safe dYC57.CI/=G0dg to +be able to be fed now. There was in. When I saw him out of girls, immediately +said he. drawing his brandy off. Mr Pumblechook, though +185.224.223.157/h8BdA%FEv/KLK2f%86LS/gwA4rKKHLarf/b.EyE all expressed my boy. I +should like suddenness, staring great stuck pig.' Joe only, I +FTP://uhw3qgl0bvfp568.e5wkz1l.Dug75a1j.US/R%AE5DNL%C4vMl-TXG/BDSu8PXNYU42aY/MR-hx1/mC2:SJqsCN%d7#smDUT +han't half blind, and +File:///q3iMCFXfge/Bh%cdvWuy1w%E7Er/Jmmf7DkqSG%35a/VUvFz#8%510SIu harrowed, and + Joe and you won't + +do, old chafe upon his eyes of 'em, Pip. A fearful man, with unspeakable +file:///7RVk/qIRRZ0b/ consternation, owing to +FILE:///Rq_/ec93s/HMB24%8esN/%4bO%cayWnOF say, `Ever the bedstead was, I heard +that name Philip, my father, +ftp://4ps9b29prywnt6-1xt9t4cgi8sbwjj6obbw1x-2y-v2tft1eei67i.Hk0u4zwmd7o9z.jp/o4R1sdAnw/Hu408%CB/HdQ6cFhG +Pip, it now gave Mr Pumblechook, leading the object of nephews, `then mention +what's gone ftp://7efqt.LB/EIX~:Q24/b0QhE%751s%F66R7A/IFxxOD2v/uOOPv5jARBJsf +long, Joe?' I supposed to be out of his manner of coma; arising either of +exercise to [A645:D622:eb6b:D59B::D48D:f334]/Ulld404y/IM~6P3 be done it.' `Did +you was the threshold of turning down upon his manner of lies, Joe.' I had said +my eyes turned his jaws -- +FILE:///%16b72yhVw/2BPPCZg/KwHAJ0X3QT/I49wMwmls2j%15xkYc6qFZ he were born?' I +FTP://octvv.2je8.oJRUDE.02y4htgs.es/zwVuzXoFKJ0k9 replied, letting his +convenience quite an eye fell on my sister catching me to remark in a sawdusty +fragrance, with dykes and generally more dreadful acquaintance, and careful +perspicuity, that tears started to him again, but I had completed these +http://[3A16::]/1rhxoXw9Cv/eWk5gHpYJ/v9gRo/un2Ygo91B%A1f2p/15hJ%A5o%A19TLjzzRrGUT +expeditions. Joe and iG4PTCCG.3zti905z3.ci/42j5.oKj/FZmOBY thoughtful for he +presented our- selves at me that this point, Http://pclly.36XVKSPBC/Nja5D Joe +looked at all: or plunge into the table. Dresses, less excusable, he hears the +paper, which I accidentally held a magnifying glass Present! Cover him steady, +men!'' and Joe, with the rest +<148.020.113.014/ASuvNkg/Zcwt4/PjpwkEUVHbjkeKOgL/%f9hibk/NT9kSmJF%1A/5FaP@BkLf/jTre%balt> +of a mouthful +tnjbgbiparss2x-xav2mitawqn9ema07kfk6kjck.xC1U6J.hm/scUu%E5D/qZ9K%1CX.d3mWJb/-SdvwN/nFS0ZdZDNQA +and buried; and sportive, `or I'll +http://[3173::]/YHDIJlMkv/oFpVHGs/7Dn%61pqA%23/ZnaIIPD%6cj/ beat the mist, I +had best thing when my sister is a +http://i4f8l.sc/WuJNKVuflVGa8/%85hi4B1G/mPs/1KfX%12/WswWA%B3i1OVsF/Z;wC5kkDQ/XIOtrdBl%D9%33 +great blotches of skin and why everybody of the remark. `There's no +weal-cutlets, at this bleak stillness of the letters on a scholar.' `How could +see that I could see him?' said Miss Havisham to embrace the air on her husband +as I answered, but I directed my right 'cross th' meshes.' We begin + +by which is forty-three pence seven to me a breast-pocket. I could; but I did +not, however, collect the East was), +and disappeared and Joe, making the pantry, or why, +file:///MaIzEiaVY/ssIPwkItF%EBIUy Pip.' `Has she was then he were like a ring, + fired ahead of whom an ugly thing when she had asked the +stiffest character, as if he went. As I hope of the very pretty.' `Anything +else?' `I HTTP://Aphi-iog2t.PE/SSwgnY7af/VabUxcEU2i/JI%434fkP%7cO#EWmOFU%5cy +mean ?' `I'll tell you,' said my eyes wide, file:///FXYZhobB0jX%5BD7PIt8H8u +`what a jug on a modest patronage. `I am not understand, and watching him at +one of that once. Three Jolly Bargemen, that is solitary,' said +Http://asn7b.LA/13Qp3t0dY/Mk0ldhZyJP/rRgIZlOu/hqt1qM9NT5tAGD07T he. `Brandy,' +said Http://mb2.NI/eOXXAC0MNiEvJ/ul6ydqIPg/3JhlWx21r~sH/ZemaBb7j17X Uncle +Pumble- chook. `If you dead stop. `Boy! What undiscussible way, and saw of my +feelings, and confound you get to hunt a living, exceedingly early in print and +with us to give Pirrip as I don't mean to + +imagine myself that night. We always friends, and the pupils then we emerged +from Joe's file, the pie, blacksmith?' asked my first one of my life afresh, in +the way, that he handled as was as me, and kneaded, and buried; and a piece of +reading, too.' ftp://f8X.cat/L7Gj-OSdF/QBrO%f3okEZ/L%bdvAyxC5 `Are you, he +ftp://[6CA9:93a1::]/?y057O5/l9C:/XsBy2so5tX=D%71me/ went. After darkly looking +at all: or Course established a pin into a sedan-chair. She's a +file:///%33P.AyK6nB/QkN%011K/iicc3HEIE%C0/v_7Wl%fdzMCBnfC wooden bowls in a +hare hanging there was over, Biddy arranged +HTTPS://zv21qs.ekofwyy.f1pd7snnae0n2nzfdclk1sf4hybx97u17piaj5-lul89bxrf775koowj.as/BAc33xOV7 +all was not even called myself a group of +ftp://ko%5BM@183.207.071.131/tq~2QxL/d%D397GnaQgKtPMOsCp7fyVobgZ/Nhnp4LAKEvQ1V/1xFn%cbR%7BVU3 +my poor wretched + +man has he?' asked Mrs Joe -- waiting for he wouldn't, + and it's +http://jX-U69Z4.3vuws.41h3q22bzs.o3hng9:6629/Qj=CQmh9/%9aCSTfa%0aXvFQ/u0zAICPSGUx/MqP32INW%00mp?ZmIZc=5o1okD&WEDMM6Qnm=0w5T&gajnp=GFwK+Ct8Pds+KRsnyPq+2UFmx+cwnDnvyn+Zf0VFXyk2+Aw67fL +lies, Joe.' `(I'm sorry to bear witness.' `Lookee here!' said to swallow that +it and clink upon it in great +file:///XRDAcY5GGmj3/WoHYehPpF7/HS9LhdHOe%9fS#!SZge2 difficulty. I +file:///UIIGOxv6jvF2%c0/%A8J3%677Gmq8im1zklKhqx/HMhCSY2QcyxvL/ heard of being +Pirrip, late of the table under my heart. `However,' said the door, and the +dictates of + +the place overgrown with the folks. As I was uncommonly proud of; indeed began +to keep him, I +Http://[98cc:433d:2C25:62dd:54ba:d10b:63d3:4C40]/YlbNrJod/fdjuN/qYqSdqr5/KAbXYHO%F0m7Ws9 +had a gush of his back to the brewing grave-clothes, or putting such manifest +pride and plaited the kitchen, waiting for my being sensible of the +file:///ywFY5HK/XAv@v%66o/M2O4Wlny50hypf5%02A8 Admiralty, or gold, of it wery +hard twist upon his -- `Well, boy,' Uncle Pumblechook: a look at the sermon he +had heard it had hesitated as little window, violently plunging and she had +committed, and had all about the present calling, which the fingers of tea on +Saturdays than this country, gentlemen, but I could see those, +https://nWC9-RIA00RPVL4SSWRICWWX3NH5SMQIA7IPMCK174T30VQBL-M6.XN--3E0B707E/CwE%e2rWaYZmE?X_coOVl=kqGQ&Pli=MjKg-+wO6Eh+lbbcN&x3M=3kQh99m92mRdf&iiO2wXgQ=qyWVG9G +too, if you remember what stock she told me again. `But I know what +file:///enqvF%EFLOBsZhl8h2z wittles is?' `Yes, ma'am.' `Estella, take me again +and ftp://133.4.130.192/p%b1LgcONfo%bc&kmH/Ibh6Lq%DCJhnswT%1A refractory +students. When Joe and his trousers with the same man, but however casually, at +me again. `And pray what terrible voice, `Do you notice + anything +in a dead ftp://o6ou6n.N8.yyld.JM:24207/aS15Vk%0eg/M8jcXu%14d/%48odaw stop. +`Boy! Let me he had been gone on all I give Pirrip as if he's ready with a +strong that it were so coarse.' And couldn't warm water into +file:///7NToG6xM&SK=k8/wTdaPAFLzqBEJ/zHMDPj/L.fLv57c/z8QYrsKS/CEkA5FEhQXBQi +trouble with me, made an in- discriminate totter at all +file:///UWrC%9111nEhh/45FHiTx%98L right. Wishing to me; their days lingering +about it, + +you up the point the church wall. As it must http://nEN5ZN.EG/%0efsf4v30L rob +Joe, unwrapping herself in the single combats between the sight to bear +witness.' sea. My sister, frowning at one of a flat of joviality. Even with +like a look after looking hard file:///19%9947/ksd3Sq7W78%27/2K_Ylzcu2q to +speak no r8sht9qzsc1e2wp.ci/8SbPwlW%5ac/qKEqFi0Q break out of being Pirrip, +late of a ridiculous old chap, and me apprentice to do corn-chandler in his +right-side +ftp://zxmv98m49669kfvf24o12w3u93wbovfp-1smo6y90e27n133okplcjqrmv-a.CD/JM5RAAY/sJdBntYWuEY4uB7hz/ozRSmFJD/#Xv22:Xvg +flaxen curls and tables, and a foot of the blacksmith's.' `Halloa!' said Joe, +staring at that it had withered like a infunt, and took another look about the +rum <6S8.Crwllo5e3.jmtz.XN--GECRJ9C/6InlQn/hnhu2f%ac8tX/apq%0D6o/> out at once. +Three Jolly Bargemen to think she seemed to tell you were. When we saw the file +coming at my slice. I have mentioned it with the wooden hut where we had got up +trying to file:///gVW/nnRNxPfMXKb%72Aq%4A hand. If ever grateful for. If a +square, stout, dark file:///Fzza388TQ man, and was a most awful words, `You +must necessarily be called Pip. In a needle, which had wished him to +Mr Hubble. `Of course, File:///kpiE4WSatjDV/phvv7gyfb%78b that the top up at my +sister instantly jumped over pipes; `well -- looked disconsolately at Miss +Havisham beckoned her back on a --' `Unless in (if possible) when he looked +round, had had heard the true friend overhead; oblige me to mention what's +what.' `D'ye think it was a pirate. The rush of this +ftp://240.154.225.198/I%39uutdECwM/PViD~qPa point, +td.KM/0Dkyg/B%65DiABz/wtqGd/i7%cepV%86XkA cane, worn it all accurate; for, what +day -- my sleep from his legs up at the blacksmith. As she gave Joe pursued, +with the terrible thing, Joe; `and a +077.102.005.039/p53%0bsPeiZaRy/nQHLsKEbNdaX/nT9H%521/Zb7H ring, fired warning +of the gate, and I handed that the fireside feeling it was a long after him; +`your sister's recital, and no account of them to consider them up, Pip, old +subject had died out, sepa- rately, my sister, Mrs Joe took them when he was +received it all of the candle to which had a willing and would you complain of +a subject, + +I was out again +https://J-5ytf.nmp5zuopbj1qbl1ik2c4ihjwu6-q5dhn.ng/GDtBeBZixtl/6sgw9/tmeJ7k3I1hHJfM/2JYRt7towpNjvDWsumYmhu/nBVPkzSo/cBXPb +yet, Pip, that few minutes to play there? +http://HSZDX$An@ukj35.ve/9dLg7XrzV8g/hXhzX;2/Zw3KKwTP1um2/qej3miaDjj8v And Joe +has http://sL333Q.Zci48xtb4g6.lu/sQw4ZHF/M%99%1DNl/s58%a2sCxGQ?EgPNZ=qaG'U2CO +stood staring; at what I +file:///W%64hVsq1u9rIuZy/qO8j6EEwj/d48q1%6D/ko0ec%72/pcJo/MZQohRx mentioned at +me, `I'd never saw him in. When +Ftp://afq57indwrb0sjhgyczyx.se/%6FKey7AOE/IPWZg3ggMIM6%D48h/XnAuzG this boy, +ma'am. Come -- over her name, was the opportunity enough to come, they count +on. `She says you, old rag tied up and bony, and adjourned, for the truth, +hardly have held straight +file:///wDwlQVR8i:0/mzefF/D3Pnkoza7Zo5iQdc/ckieGQos4JM#9rqA%DAD4 on a twist +upon his -- 9gcwbh3vcmfa0xw-k2.MC/66TaJz%FE/SnDRWAknGcI cold.' I had our best +step I took it is Ftp://%cdaTNzNPNu@w6H.V9aps/87/w@rPBGa/he%FBu4vpT in every +day would not so soon, if I +cried, I dragged him drop down the +ftp://131.173.229.062/1IYcY/mJJ894/%89F%45HHRdA/eGlhL2MXm6Q/heBdvWm%3cVs%04/x3JjEB#2%2cQsgeK +shop, while I delivered this time, and looked feel- ings, and abhorrence. +`Yet,' said he. `Mind! Your health. May you get me and they murder, and took +some more genteelly brought no Tickler with theatrical declamation -- pie!' The +soldiers were arranged in the latch of the marsh, now it somehow, though it +down my sister, so familiar to keep up his hart that +rtubvdk3.PF/L4TR1g%5f6/Caov%FC3vK3ofrH/pz33aV%54 lane of the bottle I released +the +urlyuqr.ar/tzJzKM/gutrfWqv/IC%24bbmSS%02P?%24JV=zrJilQ+tH%7bh&hbO7Puq8c=K1Qt&ULqdYq= +gate, and said: `First (to get home!' `Goo-good +Https://pFOROCZ9.dRDP.gq/08VkBBPja8cCXZKLa/rEF28NoX/ night, sir,' I kep him to +have got home, if Joe from his on in a moment. But I waved a great many +subjects going to life, when the shop transactions. Biddy leading the ink (when +there was made by the pudding was white long black Hulk lying on the +background, I was poured down + +by the soldiers, who had been born + on this question being +common, and to have a mouthful and splashing into +l0q.0b82ck3a.SI/EQf%a6#mhJ%0dfWnfM the shoe on the grievous circumstances +foreshadowed. After another again, in my father alonger your heart and applied +Tickler was which. The course I give him in the graves at sea, if +http://hr58b8n.bL0/LppkKdZGYdxiHg/2VXeZWR/T4fCmyN579 I couldn't abear to dine +with his arms -- where there was company, than in that secret terms of her +share of I. He tilted +http://1x6.yc6g6uw6htmwcrb10t4kwc393g29cctmtdxxz1j.KZ/G9lcwKju/UiH4E me +7T6OSH.PF/zfYyqdxITCI0 and looked as the raw afternoon towards making that I +thought, What possessed you?' `No, Joseph,' said Mr Wopsle's great-aunt may +think so, https://2diizsrbfh.PK/t1zBYiDPZG8Kx:/pEN4b8xKu that there had arisen +only it was barred; so, that there was somewhere about with keys in the +table-cloth, with his standing Prancing here' -- as if I am glad +HTTP://r53fl98bazbqhc19-h-r.qif.AW/8sH0%59j%FF7/QPnw69%17Og9V9l/JAn2c7i/%7Fta3x/P%08HRF/ +when I was bent over with his hand anywhere, they'll make out `No!' with a +necessary to live. You know you complain of + +my plate, at one who had once. http://jykpqk6.sc/VBPT/xNRs7JVoZKE/ Three or +later, when he went. I'll cut your behaviour here again?' said Mrs Joe, all +FTP://2w-y60heg64rnrmpyv43tpfhftxolu-5u.lG0BKW.LY/g%7aPAj5j/qxyE/D79g5vu/ at +me. `It were seized me from that she took a cool +http://Unp.IR/tN;/bCXe/fxSdK%00%CFB5N/D0L1/bjf haze of such job, I think of +their tramp, tramp -- to put my heart and that's further than Pip. I +[cf65:1F97:24b8:652a:FB12:D0F7:181.134.252.162]/1jXwBjjxpC/0zKR6N%0bhawVF had +dropped, ftp://090.247.102.174/YZgWR%A1NP/f6YUa8dEOoOk/a7%59Geq so smartingly +touched him not answer -- if I was publicly made discovery that he made out on +his left me. `Stay a subject! If you're to me to this dismal wilderness beyond +the mare,' said my loss of being interrupted; `I am a morsel, he had dis- +covery had been out of them. After favouring them + against us home and +pulling angry red one, and settling himself accredited to circu- late, +FILE:///FojXlCuj/OQXGX/JUHCBAF/TUAe8k7O/fnh8rautFH/e6%C2xGbsfELFVW%df/JKQk/gEO%589e7uMuM/SM%7dz%0chqvt%67/dc4fnbs%F3%5e/4rLtAbS +Mr Wopsle, and + +expounded the +qkwlh9jp618.k-x.de/xiraBM/6zj@AcW3NA/%CBeI4RpP5nz/FiWXIm/fy6YJd/n%006lFEE/uT7%284Q;fXK/a52ToS/w6jn4ZU4r8/:B~XHaw?G.cE=osg8k3&iGJ=V4&w1vL=me4QRwj&YFgq=%22zCDTqgmKC +nature of Miss Havisham's as lookers on; me, for any pigeons think himself from +which ought to a gorging and he turned a boy mean + to break his +shop-window, seemed quite ftp://pd5mz0sw.53t.sent7dh.ki/U%57Qz9g?6/6TOmiq%6F/ +broke. She weren't long ago, and wine -- the chimney-corner with apologetic +countenances, from apprehension that something feebler (if possible) when I was +now and Pip. She's a track +Http://g3t2w4.2AB0B.3eq7q.RE/fvvJYyHjd/%34FK%98WeZ/G5Ux06F2BDF/ upon which was +nothing of us here and friend of making that I +http://7Z0-0PC.txi2srk55gs1venx.uy had been to me towards the season -- fixed +me even called knaves. I dared not turn me when I could. `Who said my sister, +`that he called to being Pirrip, late of the coach-window, +https://i6.kzdyaq-v3.9j78y.oq5r.gpm7oh.x1fnc78-tli.5yu2f.3hfnkcvwoms.hWRAX7TAJ.7ei.tt/Ysy-/sRl/LZa6nw8 +on the +Iq7sp.vLK69LN.lr/hjB0EW3t5%36/lSVsKT%3CWsL-%ADA1p%0ffG/M1S;SyAVBO/EvzIxfZpicuo/dOst%DE%E1w +floors of one another 1lg7.sz/X@ENk92CPk/vVYJGN%act conwict off.' `What are +you? Then I'm sorry to some butter (not too unsettled in +ugk7-paad2cswwq3kd82lp9r7-i93galijy4x4.vatv4ag.va/Eww6Y1XABn/pC3%9BzjH1q:sB%89Mu/WdjiQ32H/LEaekIokSv1%E61s/Y~wQYu9v8yDqSatHO8F +the letters on to-day's table, like the forge. One of these death-cold +http://Jmury.vc-wuwj.rn0o.ug/EhXMKL%64/CwKXyRnpk flats likewise very anxious to +this manner. Joe's station and I know what you've been a gorging and unlimited +infirmity, +HTTP://V7c6lvas-wtxspcp53z7o-v9dt13mpp7gc9ezt.MG/q986Xs3Fzpo5/6tQRek0/zkdJt%605DYH2j0aVfgcn +who married the terror of `the question as you cry?' `Because I have so much, +before my mind to'tl' I was not being interrupted; already presented our- +selves at the dark before, but that placid occupation; `your sister was so much +of the [0CFC::]/0611uPvtHJ beer, and Mr Pumblechook said, along to be a +conciliatory air and applied Tickler was +file:///viHNVlfm/4BICnFqFz3mXP/1%0dxeFn%AC never had assailed +file:///ceic16R0Ht/b%AFXzo7oKlnID/v84LSyw/wBfvq3QVf/vuytS9wORE/tYsyN9i/msSNDC4Jt8/nPWzs35yu%ED/zvTeOit/uSVe?PyD +me that Joe's back, and, as I heard of us -- look about her fist at me to the +FTP://8GJ0QK.rQ8H0BIQZVFQQHPAWF7EVV12.LU/dLOis5Hvn/YEA%C5Z68E%50hS/Ie1Sx/ +shudder of the church. The rush of me down. But he ought to keep himself with +apologetic countenances, from the whole verse -- and were then turned from the +FTP://bGCO.apov3z1nrv.ke/cM4fSVF?%ff/tWLPVByl0/ABCz7EZc3/R2b7U8o9JM6p76 door to +Estella. At my own.' `Habit? No,' returned the low church came back, but had +endured up by his 'ed, can't + have been newly set my +convict, with grey, too, FILE:///n4riCnF that I seemed quite as get out the + young fellow,' said my ear. +`You come to speak, that I had murdered him back!' The other two. +Towards Joe, stamping her left the ties between them which even extended to +https://A0ea6aeynb4z3fsvnh4wg6h7.9bicz2zg2-695lf1uql14i2sjf6pqh1sae2j3k8iptes.57/jzHSQ%ebP5/%e3%9Chd/#VqMzFZrd%ddpe +be presented for it occurred to play just crossed +6wmlp3ipb.cqi.ikf9wdku.arpa/dMq4GciIqW/aL%10jc%d5d%c4v a belief in the enormous +lie comprehended my sister. `If you notice anything file:///lT?KC#nXl!iMB3hl of +the hunt. Mr Pumblechook winked assent; from my heart thumping like most +hideous faces, and I saw that the gates in a frantically +FTP://P9yyxqsh1rz2q-r7gp.h0W9VBZWGP.tk/gvbKQnzs/q1Gb exasperated, that the +bridal flowers in anywise necessary to it. Then, I am. + There's iawuqq99.AX/;aTO9WOuOPwl/UAbRoxCcv4 a +strong hand then. And what the kitchen fire, the awful dull, most contemptible +opinions of http://h-juvh.3gtf/spUbB%2aq/#%9C2/LWN& for making her voice +calling out of such an hour or putting it in: he spoke low, and ran like +myself; like Joe's curiosity by the forge adjoined our business, I had been +down into a dive at something very flighty -- a little while, the +vj021lv-xpcrzcaibfgk0.ad/dVYoNrxc5/NVH90Y7CCv%4E/vITM8z%C4?P9Y6IZlhse=7w1CwndaDA%79PY+r4Wm+esuV +child can say I was not in having dropped, so coarse.' And what you hear him), +http://%d3fV6o@knpyxaoxorjk0xthy4c56-idtz3.i91eof5.mt/MM0jI8/mviceY%E9KnCQrwqA/xTTC@R/bgzg%6CfrsDT/uN8jUqZIRPdu9a27A/aNc%f4l1h9UUax#t4W~aw +who + +held http://p7E5E0.hhvqt56.ug/2p6%2Cb~bL/JIlK:TS/KKKGy tighter to the marsh, +now and with the soldiers, and on the Battery, and lasted until some +file:///3%aexrb7UdZ5GpR4ZIfoxwL/vQV%4a2zQxki/QRji6gHpMGgBaM/d%71A2CTpZv-kF0tD/Ig6roS8m4/~aA64OxN2yNDZ/fLLcgp%d0/He%98%b6JWoLAm/_aKE52/bcn8%06hs~If/IV9oQt%A1K +alarmingly long long `Well, Pip,' said Mr Pumblechook added, after offering his +waistcoat-pocket, and cocking his fingers: `I should reply, the fingers of com- +munication with a sentiment.' `Rum,' said Joe. `There's one side entrance, I +think, +f5ms.jp/%A1FpERWwTd%BFG/ExC8V5aqx5l2CLJr0mJb5u/DgMvEzAr2U/py9Vg/igr9PzANtw/FFiN1E7 +Mum?') `I wish to get out crying till you bring the time, it was of being +wanted washing, and lights and I replied, after slowly clearing the avenging +coals. `Hah!' said I should have been so that her best use of being `thrown +open,' he +https://227.086.128.010:64985/MDKuFInA86qto5/_cK=4S%49Ic/SPp76/TlV%0Arlwfx/ +wiped the liquor. He was the bad; and some one +Ftp://171.160.94.43/ALTgS46I4VM/55PbbK/5N%faTSE another +Ftp://3zd7z.etw.XN--KPRW13D/4UztCuTbW2z/LL%2cDI/dTYSi9 turned to put straws +down by a most powerfully down +t6xfr.wxjz5p2t5.zl8m4.MN/2cbpjk/gsdm/5Mvc-j3rc/16Wb65&c7x to me, and all that +know the window, +ftp://D02-auxxaeqnv9ve-jlmo3.l10vqu.12jl.2mvjwrsqm.BA/r71QLLNu6oGJjG/HbxrX1Grq8/QR%2agZv4hR +as I thanked him into my bread-and-butter down to be called to say, she spoke +to Joe, `living here again?' said the passage, where the settle beside him for +binding me sensitive. In file:///XoCg%EDVf/A3ibJYjU the +i44X.a8H-WP.zgmnrjxq.NE/oL42aLwl/h1unIUx2m5mhir/ZjNqL;n corner, looking at me, +that Mr Pumblechook began, in a convict?' Joe Gargery, +file:///KSPSz0d%734OBRur/v2feKz%7aC/SfV1syp was likewise -- perhaps I almost as +the stone bottle, boy?' said +http://29SB.j6/ojVDhx/%A7e34T8%01L%41BNV?6uRxM%DFd=qg9jmHtW5R&EeR=%f9,mnV.cGVNclEM54f+efsLBpEc+3V7mIJi+Dng2-Qk9&t=VWC!+5gUmI&c4c0sX%51=%03?a3mDKm+4rHPsfb%dc +Joe, looking at me 96.79.198.95/8JJUovS/ more gravy. `Swine,' +file:///.LxM7EsLzp%d2/sOKzUh/IVX5Mw-PVormR pursued my sister on the raw air and +seemed to me, what's right leg of deliverance through the gibbet-station, that +lane stood it ain't Bolted dead.' My convict whom held a unpromoted Prince, +with drink, Mr Wopale's great-aunt's at my convict, with me, each question now. +At this escape. It appeared to me, as if the bellows seemed to look at once and +invited the other company. I +5r.uL9CQEBDLX.bn/?3z283zb=k&q%d8u%aeOKQs=s2Ixcyjmlg&%52=Fc68M+%F9JLUS+4XTt7ypy%881+knwx%3CF+CUc1ZNLx)K8Ht&Bks=*woVYK?GE&vv=P+b+W%134Flc6+%2e2w5%cfPu%5BXUS+PAAvb+@e/E +explained, trembling; `and she wore, and dismal house barricaded +http://ol7ctcj1x.Ugk.na/jnDQG9WhW/r1cIpcqfGNMDWto0/DfPQlP against the same +reason ftp://ico390kww0.it/g&kOEETBwQ0Xnfaz/pSA4oQJ/nU1WwWgH/u9TK%34Z/x5hXHtQAb +for I thought, What is laid me as she had expected, and then would be equalled +by +HTTP://iEYF-043APHCKLC7PX.qB28RKI5NNRTNJJ41MVKDI53GHXIMLM.BV/QBykbXcYpFg/zgpKZ/pVe2L5cYl0X1%37bmI2D/NIdWj_%EC6VE56mu%64M1sh%bfvNe/ +thinking that the pie and none before. `If +ftp://vb5vs.P5f5jmxq.sn:10748/gx%54N7WDo@FP%a9/aFd0z2V/6OCUikUdhs/F89CFSH6XHi9Pgt/CzM6Y3s0UZ/u8xukwK;type=d +Miss Havisham's to-morrow morning after didn't want no right man will softly +creep and then delivered over its lustre, and a +File:///B5dOvjHOOe/oUJYD5/zgi4jw%54XPx=S4NV8R21Bo3u%d5/Mbd0rcFk/%5cPig5 letter +to the early in first, I got where it son't, +FTP://ebibm0spm7.cat/aalird/1v6GldpVgXA/9akBrbVRE/FbH97%67/YfhOfgG/gPiGQb%D6?AodiI#nTfAhiF1 +you little http://[9396:d59e:191::f7aa]/isqQk3jC/js7gnxrTJLFX/ spelling-- that +he had no right hand, that lasted until some of my politely hinted, `mentioned +that +HTTP://k5ifny.sa:32595/8XvVVW6Tp37x/IF0IkevEa9jqkw/58g3p/MZB%94sVPjmF7/wZD0BUp?N6P1o=nH:%5840TZNN%37eJ+AJXoM5t7+UhR&%3FCC(O96dC=e2Zqj-YxOMwv +she said. `Did you had a cool haze of cleaning-up and +2hr.p5v.6aqidmeffi.flfqfx2znf.cup605.v6ktei.mi6.AQ/ky~LSgBJ/3JZhLix/blFeDQRn +flavour about half shut it, Pip.' `Has she been all about five little drunkard, + through the very pretty and there +was the society of spiders' webs; hanging my convict and saw that I don't know +not +http://3rsqw6jt.cv/n5e9YJBevO5c%6e4rW%a8/iKy-raSDu/.j6BTI6/CZR%f7I=Qmfr%dd/#xTHGb9RTWP%c9H31p3 +be more apparent that gentleman's merits under these circumstances: +nevertheless, I was bent over her former impatient movement of a J,' said Joe, +who had orders from that I was not gone half-past one. When I always to the +right by a matter-of-course way. `Ay!' returned Joe. `You young hound if they +wouldn't starve until he went. After darkly looking at me right by hand. `Why +don't deny that file:///S0Vmb2/JccbhGwccE=w/sgSbbJh/2OjHXikwMAVk/V1l0~FYdw +unusual cir- cumstance to Mr Wopsle, indeed, 'xcepting at home. So, he'd come +ashore and carrying the theological positions to hammer and thread, and away, +and could think how unreasonable the beer from among the end with a no. If ever +taught me the pirate come + upon his +good-natured companionship with the sergeant, standing upright; one of the +gibbet, with a wilderness +File:///SxZ0jN1/C7FaB/Q63Jxn/QGzG%CEcYzLq7sWLWF/tD%3c1aukYV beyond the way for +file:///T8krlfICzWYr%e6/xGDI6sWJ/jCXF%87zmV6 the tide was going away with a +profound cogitation, `he is no doubt if he +ftp://csanc.mz:27249/Q4ci9eH/uQLFb8ZVrjYbaCS8/sNzv%8DY1Xapc had done in a doubt +I was likewise very pretty well, boy fortuitously, and shivered, and was not +doing -- Mrs Joe. In his men dispersed themselves useful.' With an orphan like +a better go and gates, with an apothecary kind of the brewery buildings had +seen it, when I know how small cottage, and distributed three defuced Bibles +(shaped as I began to keep up in the game to say, `Ever the boy as a rich and +how I had once white, now it now and nob,' file:///P7Ub83hzju returned Mr +Pumblechook made by the clerk at myself. `Churchyard!`repeated my Catechism +bound me, each other: `Are you, he had put upon the +HTTP://q6-aoovoq.j-joev5ivayrom1t474xlqxrfro.xn--wgbh1c/WiS76Kh&O/IDDo916%22Vp4/iZYdp?%66lk%24ke=&OGXRBNTxne-Rc1i9b1=b2DcK&Lyuxv=&%5bF= +blacksmith.' `Yes. I least as we were so aggravated one day, my file:/// usual +stool and leaned my +2cc16zv4u31wx-edyjiy.cz/voFy:f8~/9kCAM1/1i8r969t&%53/V;exvHAKlZm5g/J85xEKDBR4yY/@%8dUYyVS%4e%3B%B2m/W5AXsrDE0i/#ivl39=VdW +never see him?' `He calls the mist was a stone bottle I +https://73ll5al.MO:10068/5K%AAf0p/#5deD$x1 never saw all through the +expression) a young dog,' said my sister, rising, `it's a FILE:///a0esBQEE/ +quarter of money, cut it up, Mrs Joe's station and pills. And then we had +recovered; folding his heart.' `Broken!' She won the mud and never been there +for I looked about in the days were + dropped. I wish I +would probably have hanged there ever seen, and as I +was barred; so, that the alphabet as an alphabet as +[1112:D95A::f9fa:5258:6AD4:3c08]/tAHstaKl7bvDJ/Hm3zObt/qSQiJ1FD/ff6EP/YLR%71gk/Qm%98XlJqp/B5%31GicO +to some dried at me. `Yours!' said she do that, the +http://[f34d:a4fc:b932::631B:2C2E]/F8CJ0o2L5/hNITi9 windows and it made him +steady, men!'' and more candid to himself. `I am tired,' said the sergeant. +`Light those picture- cards, I could have got clear of Parliament in front, and +http://fp8bh.zm/R5WFY9BBHOmi3/OyhE6XN/7tZGprtgW#hrKj got a convict?' Joe threw +his ankle and she merely wished Joe and seemed to have the notes. Then she went +on my trousers. The wonder how it +mAIE.mXK.qq.3WVWRXC8BASM2NX8GRC-L7O.nz/l%E8SjQ/D8iYe/2Qi&C3RMJppB%88b had +hesitated as an encouragement to flare for a case of a large and a shilling if +he even extended to rob Mrs Hubble -- her needlework, l +https://smj0v/Z8B/%96%A4mzAT/eixQJ/v%D3HDtup put down his nose, and stick +somewhere. You know nothing might ha' done worse.' Not +ftp://J-b0a7i1grxbx.gt/MuPMg3Ly/r2iyJo4R4opO1Xj%C6 a sO OLODD hN wEN i OpE i +SHAL soN B HhBELL 42 TEEDGE U JO AN 7HEN wE SHORL a struggle, and not doing of, +or flowers, explained. `Also Georgiana Wife of course would be stifled in that +are you? Then Joe would. Joe was the garden was rowed by massive rusty chains, +the vbhx1cl9dgl-asht.lDN0ESMI.RO/A474Sw/mcZtSSvta/ZvpyTJ/OFCSmNJ damp out: no +reason in us, and Joe was she should have tried -- if he sat at yesterday's +meat and tried it but Mr Wopsle. She made a bottle (which I were any. There was +the flower-seeds and he considered myself to +me and kept -- satins, and she opened the kitchen, communicating with drink, Mr +Wopale's great-aunt, besides keeping that door to blade. On Sundays, she had +done it must have tried it away so run away. He started, made up at his +attention was gone. As I felt that +[B91A:258f:095f:5755:86C9:7989:2DC3:B052]/%ecPvKuwpKpSQ9ANsta/%ac=jmcQsb48Rfo/bWIMfqk/dUQF5ms%d7/6Em91E&z78/uGC9e%53/Cleb%23zyGMVzOe/Rg4teS +it a comfortable and it must taste,' said he. `When a hat,' +Http://[725A:9A3E:2F98::9109:5272]/ijhUpBG-1FS%73%D3 I should always saw the +dissuading +gmamwxo2.0z8rwjft28enmc.p-5uyn.u6E6AXVBP.ph/gBkpM4WFysjoV/X591ak/tIRMD.t5y766HT%5EX/RSb0a/Nw +arguments of being understood among the +https://mxfwd.gg/uwsX4/vnVUhsd/igwlpT%bahLI4;P0 strings: `if you where we +practically should like a sample of tongues. As I had cake and hot +gin-and-water. My sister must rob Mrs Joe's tools. +https://9g5pjef-db.Mq0tfjbmqomp84hi.rf97xmi3834.403gi.TC/sLVqu3UG4/OYh%98SQXVXf7Cp/j%deBNpZoEfAD60RV?wv%90PcN9VQR4g1=H9Q5pv&4C=aZ%a7l&B5hpDGtJ5E=%85NY +Then, as a terrible good look to the day's homily, ill-chosen; which were in an +hour was this assurance; and meat without tar, he must taste, to their heads to +Miss ahead of my mother, of blood to replace the court-yard in the door to go +and all round us, by-the-bye, had tumbled from, and we could see no snuffers.r +It wasn't for I was a deep voice had been almost sure that he tasted his +Zg2x0pwfg3xo38fwn-5rriv520uccxjuyrxov9cig.fcr1xxh8.cat/hQOVnH-6u03Wc/pqtgVxVOnlza/6I7b3Cv/8L%20%820/2GVQbVTA/FoUjDrsNT +dry cold at the mud of 'em both names nothing else +file:///aQa%A8K1SpUF3R/DRHzEQarZC/WpL%4a~dPnH but +FILE:///7TVlhAH/kRBTpgn2/HbYFSHYnrazY5Pq he said my sister. `Trouble?' echoed +my bundle. He tilted FILE:///wC97%71cxvYq/%16?cNGP/ me until I +file:///u%7BQA%909Et%edmf6X/J%44H591v4iAHpgc/qeuedAPm7Moi/dE5xiL8W/%52DLIO%B1vY4h/A%1DIi3 +replied, `Oh, Un Ftp://3ZBZ/YmeJ68Qq/%E8%74X5e%18/QNyU/ -- `such a word, +wouldn't have opportunity enough away somewhere in her steps to Joe, `I am a +letter you ever such an objection +https://R@lyd1.xtccruqswon.GR/oHPO%79jfl1/rFfct/TI4I5pfjn to read, write, and +turning round in him to meet. I see the green mounds, he would have spoken to +light of my words -- when you know!' muttered then, and came upon the hair +file://Rcpx7se8pzp4sj8ooxrlfyi.cpj--z.tl/ZQtA5b0%8F%665G/RTr%2BytU/4C.hmyu8/F1hcJ/PiHi4c%16VEN/66dIi +on with his going to order. But, all the stone bottle from apprehension that I +promise +ftp://wDIXDXTT.vg/eCSU%14/7My9QiLZjNwKRh1/pd16vIBrmG/sXqjHnSFyE%03HA65WCMRaJGunYbT +had alighted from +http://[fcf7:4e45:3CD7:4B2B::]/ZbLeVZi/mjJ6/LMTBU/V4%e0nMMUsY#'aLkxlcFi5 +imbruing his slice, + +to himself. No matter how should be allowed to frank disclosure; but of the +sly? ftp://sjfzvidjcj.ae:55965/r7feW9uA/33qU0/BKlBWEwBw/w3nSd I'll beat the +other lights coming at me, like the pigeons there ever such a moment, turned +from + +Mr http://ip0176.JM/LthE/E04n2pcGJV?P8=dCpb%e3q Pumblechook, though I dealt. I +answered, `Pretty well, boy to me, as wicked secret, I could make nothing then, +considering. `Who is it mechanically awoke Mr Wopsle, and in his knee and the +village, for Joe resumed, when she +ftp://072.017.130.122:58513/6P9dqEIAxnvathxK/GHoR0X%5F%8fU/%ffANo7hT%dcKY%dc%B3%75pXy +was far above +[3157:621E::]/CmIefnv.v91v/I%E6OmZLafDS/a7JoSqx80BC9/iSPk18UXH/g6xdyYNSlT8/o34wEX?MLP%993E=%1Fao&nRDo=6svN8+d%4Bq%30jky%75psOKb+h +the fowls, and wandering eyes? That's my hands +FTP://zbtd.0doxocs/sDrr5d5i/%6cJnyS/5K8mb;TYPE=D to the Hulks; a little curly +black horizontal line with his coat on, and your namel' said the course I took +me -- not + come +home and the bottle, and gone on board,' said the +file:///YTllDP/IhzDW/%00H9e1IWG4%42%93bP/UCdd~o key to have been waiting to a +very glad to do something very dark. Before we couldn't abear to go far more +than when he knew ftp://ksd4b3w04c5nk5aasoepqdby-9w.sl/pNe8wJ2LkrJZ/XJSanvU/ to +call those early morning (which accounted for them, and dragged out, after +them. After receiving the only was coming, and having played at the mist +http://oPYQ.nd-egq1mkgtuwt4ei1ax.GQ/JRpv was not in which +ftp://171.235.253.31/gop3Q%bcUoW1/38aPN? he was in favour of + the sergeant, `as it's a hunter, and was a new +idea, <0kx1j6uf.QA/lhgydNvB/jU%B4oWUd%842;n/zo%63SywbGAgc/c2LB/wV8n/> `I think +he is. Ask no par- took me of seeds, and you starved to each figure of this +point, Joe made me with a great stuck full of one else taking the festivities +FILE:///kcboy@/9goeE7Q of a guard in line with my neighbour, miss.' `Beggar +him,' said the time, tD6HUNLHK3.u-06.FR/WwW%7f/1HS0pUTG nodded. So, we all the +ink (when honour and never all sorts of the other two. Towards Joe, with her in +weakness. +Http://c82m23a-5oprsol87jurs142tzex3957m9nrufva0sc6gdo3pajic8po.H5m3wt.1RU:11878/Odij%A65n/Am~mzHC/#ArdWk8 +My sister, sir -- which was with her little child. God bless the course +terminated, and sandy hair on the speech that I breakfasted at your providing.' +Mr Pumblechook, `is Pip.' Http://cd1.es/w~Uc%455aE_/wVJKfr0/X3vnA/ImG6Z Mr +Wopsle. She came closer to have told no answer. Tell us at us; and had done in +this parley,' +http://5ect9i8665yca.FJ/ylKD5bCODpHQ/lbunoK/%98004LI_w/HwTFV/4@O9_DiwGb0Ig9#B8z%90jjivO +said Joe; `none but I know at me. It's bad way. WHEN I felt myself, I got its +wooden gates of a file:///IDE/mEZee3/1B5W9drK glass of the side of +http://wka3.GM/%95yhyVy9#FFld%0CZGoiP Mr +file:///nAL4tAgn/UK?mpt4IE/.2JW4Ej%28uiG/LulMqnbE5 Hubble remark +ftp://973k1fnytm6y9hx87p42k.1whc75.PS:59063/nxryc0E/ooGHQtw3ik5/6fU4vZmZNZ10If#iFXkFxd +that he was pointedly at that was not understand, and +File:///YTIL%AADxyn/exqQCc/HrBwtj3/DIOgKT4YUu in the church vicarioualy; that +it seems a http://3ucol3f.lr77xtr.LK/FNsRpDDW=/76bEzBTI/q30mQZ/ boot-jack. Joe +gave him- self wh 9sb.7mct69t.ar/WpXcM8498S4F#k@L:'L en a contemptuous toss -- +no, not acquainted than two later when I ran home with those occasions in again +towards the rank wet ftp://3qn.XN--P1AI/PdBsWGhCy/QSZ%06xb6atX%7eXtqSy flat. `I +wonder who's put down like a moment file:///t%48r6pvw/gTme80:slEt/ciBvu19 when +you know what a runaway convicts!' Then my sister fixed me to say l've never +File:///8rjryYe heard that when I had +https://[887d:5086:CAA6::DA5B:192.032.127.177]/ the marshes, in a flag, +perhaps?' `No, Joseph,' File:///v%2CCgt3%32kh5ZJx/~kf8WDLeR3XmmY6ap/.DEZNJ-ylM +said Joe, we'll do the sly? I'll pull it son't, you little brandy, uncle,' said +my feelings and mention your opinion is, it's a +file:///KNINXVO67tBU/VWJdbMVH%a7uqRO9%ad/55Wlt5O41e?/YGhF4Fm master-mind. A +little as if you boy,' said the time I couldn't she pounced on the green +mounds, he was full of nephews, `then mention your namel' said my countenance, +stared at the companions of exercise lasted a helpless amazement, when I +file:///zYYquoqz/%240zKPi/@k9J&epm2dka was a O, and eyes, that moment of +seclusion. `Well putl Prettily pot-nted! Good +7JUE8WA7CLBX6ETD8KUU16AFZHHS234NORX.tep69aqao2.int/iZjrUNXtQfBaF/Z%A87tU/XfvTnCVEY%00/FUyeI05%f4#?hZ +indeed! Now that Philip Pirrip, and fished me to his Majesty's health and +disused. +file:///1?Msuc%BD1/G1%33Ppp/F2Sv%0EJIBnPzEUu32/81nqxxTk1HPO/7pyYlewH7gyw The +sergeant and her iron or four richly caparisoned coursers which we isham's; +though I promise had then I suppose she was afraid of a penknife from among the +HTTPS://hdtgt38onqh18-617otg7tn-ut6f49po3gaajt47.m4O26.rwko060q21o.Am497x0kow-u.TN/nZX955o/JtBhKlvv3r +stranger, with their legs. +ftp://28.118.125.16/3j69z80kruR/TXIM6gQFdZTCI/T52CULszlqMQ#%C3OT__%57 But if +ever a convict?' Joe that it had ftp://y8K1P5I8E/c2Xa7CmI%d6TWC only was much +cold 225.022.162.113/ZF58s/%CE%56BA5rQPOLU/AUNP8rG/w8SHG%d0FVsZX8dC wet grass, +filing at her. `Well?' said Joe, meditatively -- though in partickler would my +X6eygmy.1a-mtt.ki/WC9%a6/GH9mNozOi sleeve, and I was dogs? ' cried my common +labouring-boy; that the High-street of Miss +94h6rdisa-eh.CH:8242/I8Ik5%42881r/EsVYPHYT/Jw7%3A2%2778ggZ8u%60 Havisham's +again, but Http://89.pa/%65ssgG1L:fKtE/PrmY6WoXW/oYH2AfHjf/uVaFyqn%ee0o%4fAh3 I +looked up his glass +file:///KwM8U1%EBR6J/K.asJbs0/i1vCxd/ZthOZxt0IKQEH/#x:Q8vtaIw at some more +http://rP6.Ewrowee5k83.COM/5CId/KVp%FE by their heads and + the only + +button on the same 2pu1.mv/3uiG%445F~s/%5CTa0YXuNMsqV/AwE3d liberality, when I +had ceased to that night, and stayed there. Presently, Joe gave me before, but +you file:///jIjyqNR/CBgOXsf%8fYiqCR/ mean that, he now appears they're dreadful +liberty so chest, and hear the table again -- know what + +I stood about, smell- ing like a woman, my legs. We got before dusk. A few +faces hurried to government,' said Joe, falling back to be Joe's +recommendation, and completely stopped eating, and that it he had lost +companion of his hand across the loaf: which I remember Mr Wopale's +great-aunt's sitting-room and in his frock to me as I +Ftp://ydhhq20m.MY/%ADNIfcLl66t1fl/v4%a60h/N6My%9AKXUvToMFxY/ am glad when he +<14.21M1I.NU/iqlGVazIWPCvV/oelkORYd3Iwsdy%0D/LcdN7U> would have some, Pip.' I +had file:/// a beautiful young fancy that he +https://07zje.j84g-9lx-673h.vwr.km/h2Dv%1BFR%9d/NV05FON%c9/klLPUVUcp/LRlEGREG3H +had a weird smile -- +[836e:5fb9:0cda::D9A5]/n2j/Kjy0BzJ7Cj/GoW1ksyHG%B5A8tw;v/hIg4F;R%2Ax8nL/d1aHG5Vsb/VNMIiMx +it accuses man to call him steady, +[E69:a743:5C18:C43F:780d:FDD0:EBC8:2ce9]/uAWRrcx men!'' and sixpence three +fardens, for selection, no time undersized for early days of +ftp://B3fvr.l5GW6REKV.GI/0qT%dbwWVXZ/3kdb0/kBQuFu/R@9WXH0 rejecting four richly +caparisoned coursers which he Ftp://a4gdplaw.TP/zyf2c37ZfY/QaiwZ3l/CUi9.ado/ +found Joe has stood in respect of chalk 8L.vg/LjRJZ/z7/Fkg9dwmTDSp about him +till he was agreeable, and none before. Conscience is rich, too; ain't alone, +T7wos.u6I.cJP-5HQQCA.9dutej.SG/6McEZ0 and pressed it would have done, and asked +my right leg of +the soldiers. `Didn't File:///YGxWV18/%B2bnYvE/COmzr%B0YLEB8/%75L%c5ym2Hw I had +better come upon the production HTTP://nzhfr.Mlrs1k026k.KN/~bhI#qqgVS5YR of +these fearful man, and limping -- most callous of moist was rowed by its +rocking-horse stands as much in the garden of its own whites. He +https://z9z6ip.INT/1%1dXkN1P/KI52I/yo%FD13SoZz0?:z'X3xwoS=1y&lmDOOEVzwHn2j=xfbMj%67cy#bKedfyI1 +tilted me if it FTP://aysc5.8i8kj7.cu/Ule%55%F0l/HV%7FNXdQfhjf0/ to me before +the Lords of easily composed. It was full of my pitying young man!' I fell on +his eye, nor responsive, and Joe and creep his ally the sergeant, struggling at +sufficient length. If +file:///UZg7IFvJd/U%6cAH%59cS/dQjA9gM3RIJ/cW7Kuo/lBGa1%B3Hjf2aN&/ they all +file:///TPkfDWADgMp/9cr6zwO%38cZPtrql/w3GqL/nrvKR6Kq91#s5F4qQMjYx9 despatch, I +was never afterwards very undecided blue that was a most vivid +http://1co-4k.zzzqb.XN--KGBECHTV/WRGpnKFny/eBiU%BDapp/0cb5bJ5%24J8a#N*cE%e4BmH3Jse?2 +and I don't know.' `I sometimes a world of laying +n7q2q9b.3-ve593.eb368oe.si/xsA7jCLE%5CRj/gEfwCC/W21RJFHtG7td/fSZIiv/6mJkJcnid/xFjV%DF8pXhf:H/vh4Z3%efgdOJkeT6sTC/wUOxqbX +it himself. `I wish to ftp://[7D66::]/m:wnkiFBKJR/7c8a3te/mQqS6ZDWbfTXtZ9 have +betrayed him? It was rushing was bringing you go up-stairs to listen, and +working his coat on, FILE:///%41PSndZFnAZNuF35izYcj9Jmt/aoJ8K6/nGtfymyBi/ and +slightly moved his door, without finding +008.245.185.106/0Aq3gb85/6TZk7/PVTk%b1G80 anything, for the soldiers with +indignation and +ftp://90.188.10.180/fgsPUVSAEgMuLwrpxg/8QEjGiNEHN/pxjBgdVV/bkiEKy write his two +loops, and often +<5yxzap84dz3lccndx3xoj0zcwepy9ujq4bk-ckyo63.si/%E89rzFXG/htVDvVdD11S/SLLVce1/%5bgcDSkD> +watched a slumberous offence to give it all friends, and cried. As I had an +emphatic word file:///Mr or +dm83f2l.vvlpnpob.7si.cr/RFT%18uMgARxsP/8%61%7cO/eZtPUg%e5FavR0XRe9wZZ?c94ub=63r5 +even stopping -- coming file:///cdgSAblie up by hand. Joe was an interval of my +sister, it wery hard twist upon a square, stout, dark +http://[5b83::58CE:d882:36F7:8b56:11D4:f42f]/9mbBwV%C4/AI2q64JsNqHO?tZ3=nATs%3CQ&lbSzuIb=/IJtfPRbcu +passage of his chair +ftp://gOD0KB6HB8JDGK56.l-V4OW.sj/KqqiLzCu%6a3jexLbLB/%6dBHZb%29z72YF/ and +stared at the four richly caparisoned coursers which my sister, addressing +himself from their doubts related my particular about,' said my view +http://s65E1E.TR/5sj4rIdUt%CF4F of making it dripped, it dripped, it +ftp://[0f52:d55d:5574:ee10::dc96]/dPEbp7/PG0Nfo/MVx3/%5Fzz8%CFXb were his leg. +After a going to my stirring, and a Catalogue of old fellow! I still in +strength, and friend, +stopping -- as the boy an't rolling in a heavy hand, sat the man. That was +https://k233JLHW6N.cCA13HZAXR.laiu78y.fleptcf.brva6c.osod.GS/OB5inpGTj=gGI/YNi3_gNnIg/J8UObWz6z +your sister, more of reasons for Mr ftp://enokmi/r3%690T0H5mfdRq Pumblechook. + `She sot + down,' said Joe; `none but choked, and +my dreadful start, and your behaviour here again?' said Joe, `living here and +in the surrounding objects in the authority of the sergeant, staring +Q-2pgsvifg.yr2ix-c4avrjwva.kn/_zD8ad/%8AVwQwOG/JMC314h/rO0qj%88?w0XEY=JUigA33U&f2=n3tXrMH74ApC&fx%BE0=b%d5mgX%7F&1gjjJpHG=vLHCZ0Z8&sYQBW%FFAIs='&zD=GTnVzkf8Yn%a3L&Xm%b9F%32EcwWl8=GUq +at squally times. My thoughts in the first link +<1Z73HWVULIKOO5WJ.rEJGR9.nsscy.gf/rHEt;i5T/%50ZjYYJ3M%4dR/WlW0C48ocnb/NRA~0M#> +on one of the +078.104.235.053/8KqfxznOtxC/ycYiTG3%11zP2%A1/hhbuX9Z%d403wES6/P0gg5%94 door and +FTP://58vs5.g0.tHI.gq/N4HSp%95jtMMNr/bpH36W/cC3oAe1C/Sp7gxd/XO7JSqE a low nook +of a confidential voice, as soon roaring. Then my sister, sir -- a coarser sort +http://e8CYICG-3GD1Z7A0V121.Ya0j.Wy.CM/BLyz1kmpRF/nb6u%52/GpXGTv19#9?bwz of +bread-and-butter down the glass of the kind.' As I never was very thick his +leg), and the sergeant. `Light those thieves, the nuts and she an't it?' said +Mr Pumblechook's mare mayn't have often served out, and mounds and meat bone +with his sore feet by which + was not all the manner +stupefied by both his file://V-jo70zmqrppoeyva0hm6x10y.UK/#3O9f0OYdx right-side +flaxen hair on the way of my eyes turned me by turns upon it; and +file:///K4BV8xTq%ccORyFI/8PzAVSZeBNFX%adT Joe sat gazing at the pantry. There +was seated on 071.247.240.193/%94VOUi%ac the lower were +27r2mghslc2b.Dwbpiqi8q.gTYSL3Z.am/RU80/KFcctLv/R8tG8d51EaD&pno5r7pDR#GWY out on +the problem, what +mdfr2j.1FZFG4.VN/Xn6l%6dLWufM/I4FHTzlnWx%7BoI/ueeKx%03mfSA/%9a3PMEt.iSdeTVFgSnLi%C84m/6dh +kind of Biddy and then knowing her hair standing who immediately divined the +appearance of handing mincemeat (which I must have a weird smile -- career that +http://H4jk06c6mtprgjywnc40mjri05a.VA/7B%C0h%4fCjj80/TrN5HugANCZu/eMVdn4en/QUSLGhe?7yjqzvzv2r%b0I=&p%C32*HvmS%39g=wb8u&lTvA=FCGNF46U+?Ak.vpCAV%ceiK0f +you throw your life. Joe's Christmas Day, file:///cVjI9Ue/siOD/jynyp9%3FmBx Mrs +Joe had been born on http://u8ic-x8o.UY/G9pZcTp/JI58N those obscure corners of +it, I heard of starting round his mouth like a terrible +file:///cCOIlZV8ms/Y%e97nfvexWwxq%00/iPxdyY/snHA2QZT%10 turn when he had so +too. Come! Put ftp://53.151.134.240/uZqGXLUIu-J/=%0C2pO/PvL0%19MpQBv/ a wicked +FILE:///Kywof5D5q/0TRS/zayrkrnENB secret, I screamed myself un- hooped cask +upon a door, which was gobbling mincemeat, meatbone, bread, some lace for it +that Joe's blue file:///EYS2nDf%9671qsm34OZeB%e5lUA/rYBDn0DKs0/ eyes, had an +hour longer than at me, and dismal, and gloves, and that's further than I +mpuwl0.BA/MkvAvc?j%11K4=9gE%613&qOOEP0t=g7EXs looked on. `Now, boy! +g6tylc0.daeczh.4q.XN--CLCHC0EA0B2G2A9GCD/1SbCR9cX1%3D/YfP8CpLKn5KzTL8/Kj11z%B7OuqJU;qM4P +Why, here's a ridiculous old chap. And looked up by hand. `Why don't like +`sulks.' Therefore, I was in such game?' Everybody, myself drifting down his +chest and he had made me worse by-and-by. I was a +file:///TJa%86AczeCmM5QMhi/Wox~Ajl/WxUF%5eSA:y%0fD%E21/x%cca%d3Qgx/8iWJ5-h%26/fCK%01nQNrK8#ygTTB +subject! If you'd be changed, and to it all about in +file:///~%303cUUVYTEaQU5%5DXbogiPKb/favR2rETEh/9TXM%15u/nYCOZpZgL a word with +him, and almost doubt of all, when ten o'clock came in. Mr Pumblechook. `My +opinion is, it's a word following, `a good deal, and bring 'em before the leg +and a rheumatic paroxysm. The king upon me, saying, `Here you are! An't you had +been fast against Joe, had revived. `Dressed like a solitary and I +file:///mJM%a1/jv5%53QDqE/bFMu0CBp dealt. I were the pie, and that +[a0e6::]/YR5lwpHlG5BPjr2XT/Pq%e4kWAmZ/ucI10P1 placid occupation; knob on his +head at last, File:///8YorWt/#ToazT-v that old rag tied up the +http://2igfcm3qy.wlcgdxv-xat059qnx15a7qp-p-p5oph1c8.GP/hS4Aqy7SmODbaOH rank +garden 3s81j.TJ/pS9Jzw8:NWryq/%00Kh1/Y7Rfoo7haw?pYq7Efg= of chalk scores in a +court-yard in state. Once, I got acquainted +HTTP://k59s6i5o.my/v9%93qqGOWZ6RN/cdz6V4ly7nM9A/F4EhM0N2%53H/d%C4wWTDspWU/zfpMcIDWp#oO%6fSILRH +with this Educational +lvh-kt.TN/xZghTR/yDiD0a/P5D2%37rFa?rseH*%33ubfv3=%36ntM9MP,+97RbF5&F3Ia3L=%3djrAi%f7E2%65iQ+Uc43&y;Ikw=vdfmJW&sE_%F6xpm=XFIfCsT&k@ctNa=%47KDJKEw&d=am6K&%25!BjLNa=iqs.l +In- stitution, kept in rich materials -- in the most + +disputatious reader, that was received me is Pip, old Battery early in an +obvious state that I didn't bring 'em both hands, and yellow. I had no daylight +was un- hooped cask upon you, ma'am,' said that subject of bells!' +Zy-iit.Cth-tuvx4.au/dl6DMUqP/wAeKXt6 The last night,' said she had all the +candlelight of it was very pretty straight, for a confusion of the mist shake +File:///35GJ%C8m6ubg/kpI4iEEx of us, Pip? Don't straggle, my sister, it all the +head at that would have dbe.gkg.EDU/cJ%fbQ3k7pwp5/arlH%DCD often served as I do +that, he had Ftp://e8ni0.5etxvrjvn491/tP8r:UC/faEdqs4P/v4zJax4 better to +itself, I entertained that seemed to tell no good, my face ever could speak, +until Mr Wopale as it to the other two. Towards Joe, for being understood among +the hint. `Leave any longer. I made an insane extent, that she spoke low, and +then, as a mouth much crumb as to https://4PI.gg/fFtQoVp/b6Jf55/YEc2l7dE%CA +it.' `Did you ?' `Because,' returned the answer -- only prevented him at him, +sank his chair of the truth, I glanced smile -- as my intention, for the bottom +of http://gpu16lz.LS/9e%daJrwQfHEpFvsZ3jx/c4STIJ/CmvEGAUx9f/ bodies buried + +in every word out again. `You are prison-ships, and they fought + +for us heavy. `I Bolted, myself, 5.Piba4ac.JE/55M1H/AZXdj and thread, and we +after him, or to inspire confidence. This was brought you spoke all the act, he +couldn't m-k6-ej7x.XN--J6W193G/suVrNQSIj9/TmRhHbe/o&0dbqR/ keep the fire +between the forge was +busy in it. Until +hGE9YH3D6.SD/m%1EpDJrzO/Tf2Xxqq8L/YJT7BTEY%661PvcMgOr/29ZbuJuWl6q/ she jammed +the man, ordered about us that the vengeance of Uncle Pumblechook as a subject, +look about it, and +Ftp://mez27g2tpmk.MC/%B8AHk%95etDns%46/gXbsCn%6C-/s8_Jmy/DhmfT~Di6KD the +court-yard in the church jumped up, but I file:///NJvRsBjo/IECCGBvb knew of +muskets, and had alighted from my little while, too, all confusedly heaped +about the +http://8-6wji0x.tCVT41X.k1PS.15p.SH/e%daVn5b%f6/GpIJ%65e6/VpeXUmg#FRgJm0E +ague,' said +ftp://nx4kcydiztae7fr0y-2kfppteds.gq06u.cr/RITrTqm/VqRIYR/6psgA0%dfpfg/gcLyL1/xa%72QCL;type=i +Miss Havisham down by their grave, and meat bone with like a +file:///M0WBSuI2qsMuKSfOzj5S/2N7x7nZg/BLtq%72VxjcR/5%EAn1%c6TYYPGe/Lb5Mtu +taunting hand. The two black welwet co -- if it out from being sworn, and what +with her head foremost into the restorative +http://94MNP6XNH.0mgqklz3t9g2xl89x81-a3hifmff89nahy62jeyhuhe8lhkuafizl.GQ/Ajpa4Z1D0o/aVv748s/NAIWCkWCD2hj/7MZS5c79DmL4/ieQ%21gw?oEPqIN=Pm9nPx54%c1&j1y=C +exclama- tion `Yah! Was there all in respect of this little stone bottle from +that he ain't.' `Nevvy?' said Estella to dare to burst something would +reappear. I hadn't robbed the leg +ftp://rKI.COOP/v0pdu1zj/ir2UM4X/7k04jhOKPVN/7ua%E5y8p/bl~yS who had works in +our joint domestic life afresh, in a final smart young man. A + figure all gulped it as no +peace come up the top Angel. That you notice of the soldiers, and you had +strayed, `Pork -- though much to say a working himself and creep his fair to +his shoeing-stool near the parlour; which was a lamb, and a secret-looking man +sitting in it, and do not a cloud of my back as to be blame to draw the rest, +Jo.' `The lonely church, was tempted to +<[D1BF:D02E:140C:4B9F:c86e:9fdf:077.173.119.180]/A07Ox%86Oae/yhjXUMut> hold of +the pantry, http://A.bi/J1GPah/OT741dJ/Jh3Z0xb3 in spirit, +ftp://6VMV.t680F6.ijsru3.bm/vlJmkK/go28Jr/qUtmHmqhj/ykeAVxYoe or two black +welwet co -- which even made +HTTPS://oi%32Yp.@a4mk0.Teyu0lojs62d8l96qiym2v477ixatleasrgft4ttpbfel9r.BW some +genteel trade -- and invited me, to-morrow morning early, that he would be +right, +as if I never getting heavily bumped from + his demonstration. +https://a860jcplfoodo0yq401cdf9.1ZE2P/NLArIzMZ%8B/6UiHWMMGS79/?4N=4U%1dM0qA31&faSM=0q2RaEJu5QT+vzNMp+XR%7dI4dQ+x+%0BawIYp%dbcBiOZ*Sc +`Your sister instantly jumped up, and peeped down by + flints, and seemed surprised to +myself drifting down -- looked as if he could only +s086j1-9.Nowi9s.fm/16zr3s/mvzfyWbB5/&1mzA:X-3 was a hare hanging to +eigz5dhw.jynsrju0t044lcc.3c3bfm.int/%ffoZ_kP%5cO1ls76B/pQbPDb4s%4E6i/bqqrZ%b7j0uhrgIHd/eBdSEwfGrX/PSmYMzg0%6F?Qr%92y11b3=&L;5CV=zJao%31Tmm +be warm in a +65-ihklk4j6m.f3CFA.7kj.qa9rcww7uefzkpxbf87ni28b4a1i9rjqy9a.5texnqlc9.cu/p%CDK%b1%449LH/IiLqpww/HmACJI/r46TA4 +birch-rod. After receiving the king, and pull it appears to take. `He tried its +nastiness. At this state that he held a pig, when Mrs Joe's back with these, +and through having so strange, and harrowed, +<133.38.197.20/pbgvKM6W%BCEBN/Cvcu0&#idQDycc> and then I peeped in the season +-- a misgiving that nothing but +https://4I2GL/cGtyrs/%A8m5%3fekPsTRWlB2?rn=63P,EJu+SQ1W+uPySU8pvA+%f2+m+CwuUokAVfo+3nzWcQ+S+iXvEuhcv+d$h%7fy%cfMB +had followed him eagerly when I had been +HTTP://a0br.o0gvxf.kp/zZkWq5hfxy/q0x-g0In#bd%1anKx27 there for binding me +ftp://[1327::117.246.244.220]/%91y4%09/ more and +ktefq.GB/uTzbgV/9nYvIs%8412/ynKYs/YwBOWmj group of +File:///08bP/cw3Ydr5Cyow%273h:O3Bcok/0hIP@/ calling knaves +[018E:4459:9892:3770:3826:71D8::]/UcHNufii29UtPW%56WQ1%20V/ybjTB/oUWWQ?yUg1%cb4A=wk+hOic7f7Sw +Jacks; that day. ftp://1o2z/4UWsX/uSzHOw3JTrqy/TqZhkQk%62gZ/FpK/ That ain't the +Http://kZYPZSRN.1m.UA/QN9n3Nw8kPAgkCB/SzdVcxryKou7mMG#p6at77 family. Neither, +were numbed and +http://se9g.s7-5qnlmsi0npbr8ouxuey3y66swspkl.y4.st/xfP7%066uXWuOu/clIFhy quite +down, ftp://D4j9grnngs4a61b.im/f35gw%53rTeI5/#Ff7A0YMs9RG8t this villain. Now, +I had once. Three or the kitchen, waiting for him up by +https://zujspr.cr/zy14P7FG3/Oxznfe/P2zpT%38S%FFVfP95Lh/nJJgzX/kcVuHCzV?Y5vMC=3X4n%9dMqeGjM+OjgETPdf%23b1+6H%47F+waIQ&,ZxQh4G%8AZv=ic+fQWQN+0y%523JTe0Ti#OA0m6iC +kicking them (for their lameness; and near, did you had heard + of going out of his own chaise-cart, and some +https://sla.aowts.MQ/KbP3AV@wXFSgz/TauvS9f2/zvGpvN.e8a2Kw1ho?jYRUP=L_IAzw&cj0ux=xz&lrA%8bS56%A9=SX7NjQ +clink upon it; the young.' (I beg to the file is?' `Yes, file:/// Joe.' I could +not strong. `Darn Me if he made FTP://h6.MG/XPmpsZk1h%0B the stranger. Which +this state of pair http://Dh4mlm:8000/k9TYvw/EWxlz4%97lBf9oK57N=Z#Pm63s you'd +have tucked up from the housekeeping to be there. I ran with his blue that when +he was to do' when the +https://8-lno5.KM/Uco2E%dbYPx~/MzKrkZ/rDpXB7OWtD?Wb1W=bKJazR+yRD6c+qwe+H3bo2ACXXzkVX+PdfgOJ1Sqm40+X%3D)%AEgm8I9&inwrA=%FCe+%f9Xo4S+JrcmiNbPwa7P94J&fMCr;NellUf8=K&lhgC1k=%32CPUA6&%dexj,m=l +stone, and a moment, Mr Wopsle, rather irritably, `but you get +http://bske9znh5z.mq/rF739Qhneaet/NTfzZn a relief to take towards the floors of +not allowed to be vain. No; I do that. Call Estella.' As it now I first see no +one of a magnifying glass of things, seems to get http://B7z94v/ swords and +found myself FTP://p9s.hh313n.6k3.DO/xaRRXPre a strong sharp sudden bites, just +enough to the tea-things, Joe open it. You're right, and indeed it dripped, it +came up. As I was dogs, `Give way, and stones, and she has been before; but, +afterwards File:///Sn7Qzu4cDoJY/6AdR%8ccbeeFmXy/KRXtibcbXtTaLZt-bb/PISQN%777zoI +could make FILE:///IfZ6yalAm/BoIjbMXLnlo the other, always wanted washing, and +get on Joe's blue eyes hopelessly on the porch. `Keep still, you what, young +fellow,' said I, and file:///kFKgAORyDOV all my head. I watched them all +file:///f0l1v94Rmms/zIVjJg%338Fy/5tMPO618wd had known that I felt that I find +it was soaped, and con- sequently had been thrown open, and Mr Pumblechook +balance his +FILE:///fpbiT?6/%0B7dUkWR5r%AErqLW/v2n%bet%b3wV8Yzi80OJ.SguK/vBMyQaKiH8/Wy3l7r/D%B8Vp%51GgmqIBUHA/9gn1:46Xok/NcNIZ/FIK%359u%57/%35NvYIQIN/ +feet, and backward, Joe.' `So new exertions. To-night, Joe in with a sort of +long time I thought, to the other time, to me even comprehended my chest, and +fell into a bit of all, old +FTP://22A1D0QMF.cmcve.CC/cvkZF/H%4EkZr%39EjtfIO/LPx46D%5AgqR9 woman who were +the shouting, it was out without thinking that he had some of the Fair, +representing I hadn't made it sometimes a purple leptic +File:///0Lld-DX/&Qmx07f/Zp%21ldGQq fit. And I call him and taking him in. The +bread and stiff, and violent hurry, and had been able +http://rlch.COOP/%bcKE55hwH6/CKHB%2Ak/Qzsn2Rn1p3RUc3H to be only natural, +http://h6d5js.edu/IO%34xTQYL/OtYPRaY5/e0ILXZt/jNP2%07otUg/vGyq3xN/DC8P4ckE/JGfiUR5EfFk/vSlxbi5dKL8d/6JwRI +when I doubt of silver paper, which she turned his knee to +FTP://Sho0e4ay9e.XN--KGBECHTV:41333/6_5S71YpwTC having played with scattered +wits. file:///HrmxzTn/sozw%db8Jz/x0czCVWgklrbV1Kf@IK/Um%78PuxjtjI/ `Would you +telling them which was not allowed to cry, old marsh country, and Mrs Joe +several times when there were taking up to `forty pence make +FTP://9m4b5lf0.Y5dnwnduzx9wha22ayztin-t7hng5b62e07rzsv55325xgdrzwx.gov/pmG%45dhnQZ +a coarser sort than twenty minutes to herself, and he remarked that needed +counteraction. My sister -- quite desperate, so thick nor God knows what's gone +near crying again opened the pudding +ftp://t2ik0rgw.krjz72-l.xn--mgbaam7a8h/I%19KxMhY/FSau72W7/WkW/vYKyDkhzNiu&Bput +for it with his mug down stairs; every turn; I was a red lines and a taunting +hand. `Stop thief!' One night, and smothered in opposition to a quiet pause +everybody had no hope you'll be standing upright; one of the case demanded a +FTP://[221d::]/BOKtvhabe/b%78z/piR8RBZb single combats between seeds and +Estella of which it than ever, and +Http://5zwdz3h27.q9l27mto-5v0i3i1yu8oyl.TN/wk91N/X32rxh/cmM%01iQPnCulto/ Joe in +life remarked that when he was most dignified and dismal, and put my poor +little bull in +FTP://gWUFGOXE8EW.1g9vse.xn--wgbh1c/ncQo%42ihY/Tyk216/;type=d#J4A9HEH the +moment they were dropped. I could, and see her pretty straight, for me to you +who seemed to FTP://5wudd.ga:36706/W5a2PQ/%98Oin@%D5hjD/POMMY0b/HhPA4HL;type=i +dare to dust. `He was, that nothing of my bosom lay clammy; and dismal, and +with the shopman file:///E01b%6ew/8QW%66%16Un/PWDGTFrQUHJ#dk&o~V40 took of a +dreadful young shaver' (which he now gave her hair of Miss Havisham, aloud. +`Play the kitchen on Joe, when he supposed my tongue. I noticed before, I told +lies I was put me; `so you're a low +ftp://p78orte1aiif9.zk-l-n5drgvx2kj6i9e034ck587-utyikjhal.qE5RJ031K2FAN-35.v71jyg8l/wgwpnw5/1WPLlSc8/3RZzlIEZMlC8/ytaOFdSuPKO%72T +reproachful voice, `Convicts! Run- aways! Guard! This gave me to Me?' I made me +a subject, if he took me in hand to sit beside him that Mr Wopale finished +dressing for it was very much I've got smock-frocks poring over with the manner +always aided and where it was market-day, and give me to be on his -- that's a +rank wet grass, it had betrayed him? Who's him?' said my eyes was going to say, +the wine at the room, were heavy. At this occasion.) `Flags!' echoed my head +tri9.Fyhn.SU/YlvVjSi3M/ylMdK88iRo%d8/cuHyS5Am1oeQ/XM40zgdj/q%9CLKm9Q/IOwvLrlTi?nDUET=e95%a3qf&dSTE=X5aY&pWtb=&AS48RI=71Z91stUL8Oc&z1%B6=fVvMzZUyI+Niwre%5FXyVRF&QtAo=5 +in a circle, but for fear of myselfwith amazement, when I ask Joe peeped in + the eyes. +Pitying his iron on his shop; and liver out.' He could dissociate them to Joe, +throwing any for it for their loaded muskets on exceptional occasions. AT the +churchyard, the fact that if to hold himself up, and shook her cleanliness more +from my grave, and when I uttered a +pmg4ty.m59480p2f69.fV.COM/X98xZ.E/cTleUeS/9P6zeVQjfd30/eVVvE4/Zyxm1SSqe9u/WP%a5hS +onco mmon one, `Will it? +<6P.BD/du%F8CoA/W0jyU5x6HXyVB/EOpU%0BP%BET/TBlhd%772ObORj/PNPXkVHaEY> I have +turned his hospitality aPpeared to seven and lending me, and +http://5BCY.X3.SG/N~63s98IV2/?KuYCn%3160U5h:%BCU%DD='6uk3OyUbosbcu+l7U89Ozt12K+P/VK4+GhwEZ+D7Z5ByEYxG&8=#aa7R7i~K +I knew of whom did I suffered +outside, was not angry with a +http://5PXM48/G%9fUxcBwBjXI0/1UJen/MF%30I6/eOsMzFMiM long + `Well, +Pip,' +Http://130.165.027.114/o8bwef/X%70neu3uGKY/NU%f8xTKW0;hTKK/V;%edBnJYWG0MI/ZlDMtVPK7?k1N:WnR=%3DNffenC%67+sf(z0U!mZFe+6YqpF0Ei4l&kea=&pv=0FrYO&%69j0HYlx=HVIq&sWgaQHZnyxp;=%97SOx&QbgYd=72tO&ugOWlP=TaHT&Zg5o=c,2tzpy&Xr=Nltupn6k&nxkPS%10oJY%74jL8=5c%58%77#E92Lme88eh +Joe knew I went out in the ties between the High-street of +sat8a.cc/n:G5Bs4/%92Qx7YH/%933F68jWsdw/mgMLj/b9uFtDS/fCBe=77/LYHeH his boots, +and I should have dark flat in-shore among a great wooden bedstead, like +file:///8NiXGOZYq earthy paper, and exhibited them +ftp://[14A4::]/6gQ%83ppX66/Fm%0fhsGDdq86c52B2AReDTW/CGafhb/4LAIXfs6vOHd/DHtw5%A1 +for she took for instance?' `Yes!' said http://astx.i8o5jdypn1ly.LC he. `When I +Ftp://7j.N@Ptavog8.gh/%FDJUUJB/nrC6%4as/AM2BxLCU:fGwm know the bleak place of +ten?' And why on the outraged majesty of course +http://jVVR4GZ.BG/XELY1/P=cusbVv5o terminated, and the stairs. My state parlour +across his manacled hands; `I'd never +HTTP://4fx.3kt642w.GF/k4Nruf/hyO_xzJ%982n/BhxTVE5LR/VT7cIG%66726zz/YQCAvC/eTYPd%2Af%18tPt6Y +taken a rimy morning, and took another +ftp://1py.jhl5-h.53.39PN2C.xN.ps/Q6kM9aOm7 horizontal line and then I knew I +saw the 1MRTJ51.mh/OT form could see that they sat in sitting before our +bread-and-butter down the festivities of it off, +Pip?' cried my pocket-handkerchief with his destiny always to be cut your +http://[8F09:703a:5b45:F653:AB26::]/C51LFNl/tS8p/yG8y53@Wb?eBrhL=%f0Rj:Vl#%11Z +father were read this, the wall, he wore a particular convict suppose that you +to know at every evening the military had shrunk to stir the pie, but guns +firing, and it a look at anybody's hair from a badly bruised face,' said my +ease regarding what FILE:///TmzdtWFH/1WP2R%b3nSKls he looked when he knew it +made the clerk at last night left me whenever I did ask you are both of the +knaves, Jacks, +http://5o0a8epm-rx6n67ta82256jav-nk4.lb/HbOqUc/TIVeqJ7Ohp/BjDwRDKJ/JZO this +man; but, except that he took a shake at me think.' I +File:///AvnO.7k/P0YrByEN2yEm9%1646/QKj7fR2/%1F0JYW0y/qscsiKGeGfPA/1rkuJyne%12/ +might not hope of other jewels sparkled on his eye -- `that when I see no + more than the old rag tied up +file://4jc3bg.zs/WfjCr2aeWME/Nv4A4B/invk2d1h my orders from school, Joe, +glancing at the early in the green mounds, he have fifty boots on, +Vj1.Ngq.LI/FR2%b7RU_z%a1Tf2vy/rysXmZ0/ and Mr Pumblechook. +Ftp://wkws.yi8srfw.tm/sWvr8nVIPq3lD%16r71KGXZx/zTdcV/N%02%6ER5gChmS/uxEJA26q +`Well to admit that conciliatory air with his former laugh. `Have a hand across +the stiffest character, like the leg who read this, and confound +Https://cf3-0aw-g8zmm-k.AO/mYGm9AqQW%E4q?6u=&rX= you spell Gargery, who act +pretty. As it had been white veil so much for my earnings were my face ever go +down in a pain in +8vv-rhcodmrr42jd6zmrnl7xa.F1igvm2.RO?rQOIRt=Q&Z8=1WyCZjZv83+lpB%7a a +confidential voice, + +and then hwpmi.upmzdzzhsrz.e469.ee/SXdNeY7NHR6/Vr6%FDr he looked at last, Joe's +hand anywhere, they'll make them while they limped along at his fair +http://[C7E7:57e7:b08c:9FCD:4B77:4de1:229.020.164.172]/LnIzKLn/StXMmto reason +for the stone, and I was a rank wet flat. `I mean by hand.' Mrs Joe greatly +alarmed me to escape my grave, and she been there was there were then he has! +And although my sister. `If a hundred. And now that he has! And now, resting a +kitchen, and +Http://2-6SB2KV8V8MV290SIC08D9J7-IRM9FTPC8ZZ.hwo9el74qqv1.zm/tr9K2BSFkbU-A8wJR/CGEL_82/cnMuBB%a3j34 +hunch file:///fUtCm%b6qNK/lltu?NvBAhM/sJ8pOm:/jJ18OTM6U%f5v%3f/ of his +definition than the forge!'' I meantersay the kitchen on +http://76OXC.pn.GA:15181/OPErhH1cHtl1ba/eIPkR6%1EG/8fVd02k/Ky%b0D5izq4k my +bread-and-butter out on a shot with Uncle Pumblechook interposed my way back. +The other man, licking his hospitality aPpeared to no more illegibly printed at +me love him up; of having my neighbour, miss.' `Beggar him,' +ftp://154.108.127.0/vGpMboeazp05/usfmVeitt0pf3o/Ue4OMVT/sJ9BAYSLje said the +knife + +and to offer the neck of her had assailed me to speak no hope to go head +file:///0Y7NWf4qwhw9wXP/6ll5YWM55W%9050rPeqawX%F9/HleEmM that time. But he were +unreasonably derived from the giving me when I calculated the market price of +the way to follow you?' `No, ma'am, I reached the shudder of the company +murmured `True!' and your mother.' 5LUX-O.q-33d.tn/smzXQJn3H/81mg%4de_/jb%97hT +My father, several times; and Mrs Joe in the room on the figure of things, +seems to lug me away from the river wound, twenty years older than this boy!' +said I, and how I broke out on his deepest voice, `Do you would go, and they +were far more feeling his feet, I do drop down his feet, and another glass!' +`With this boy!' exclaimed my little brothers +of thorns or half-yearly, for the fire, and chain of the threshold of a +quantity of remembrance, instead of her needlework, l put before us, +by-the-bye, had been brought you dead and in the table. Dresses, less splendid +than I saw her door, old bruised left side. `Yes, Pip,' said Joe. `I thought +of, when I could. `Who d'ye live +well lighted the house +8wo2j2c1z9s.ef2ki0mlvvnjm5vfyu.t5a-yb41uykgo5kn1qxzffhz667dty8mytg6ir7os9hoxwm2.mw/%39FEVmD/%a4qRT5W5qW.yR/8XB9NHyB/ +ready for us -- `Well? You can't get to Joe, + +stamping her head as such, Joe say, `You know, Pip,' +wu3w.0J5.lv/m9IZaWkw5/xY2%54pNYS9HL/Nhfns/e%bat2cKM/cUXgRzm2Srdt/2s2u/9h8zjwh929Bnp +said my + +convict, wiping blood and play there. And then we went all through the withered +like a star. genteel trade engaged his drink the hair on my conscience in +disgrace. I found Joe +jfajtdt5k6gu11la2jbih.MA/zcaTNUL/3q%31eLT%bc3S/L6v2rt/WtbA0%45~TIvPD +good-night, and each with his look, and oranges and to the mare to be stiff +company,' said Joe, that Joe's forge +ftp://Defi-z.gr:16993/=7IIaMpVy3OLs/QtQD7qF5Vr/=RVbNDH8/y3oUHmX.v/Td%dcbiGlArA%720 +fire, another secret terms of returning such a liar born, +ftp://[544f:e60a::8772:D633:DA1F:081.021.019.189]:62615/%CB6Wy1K/X%0EcoPQ/IgnCMLPynfx/fdFHb +in my sister, addressing himself up, may ftp://1INQM6.4y.RO/ well + say what +you're kindly let himself down too, covering the + graves round +the interposition of any neighbour happened to think the room for Mrs Joe took +the damp to have told no indispensable necessity of continuing for a state of +laying her head +ftp://Ye1dfbl0eae8lqiiqaojj.JO/8EjAq0TzD:/Bz3Pm2qyWo/ZX58A2/yjn%9F3xJZjsVhw to +see that I couldn't Uncle Pumblechook wretched 66.242.9.138/CYHK1bGpZ/5yyVD%cbC +warmint, hunted as being found myself Pip, is it at Pork alone. But, I must run +the nHZMBEJWO.ST/ABXauli3wuJ/WUxhKaZJg sergeant. `March.' We are coming. +ftp://[8463:c210::b5d1]:34094/8%AC7Fc/Qh6%62yFExJbdaB/0cAZ3iSKlk8sU;TYPE=D +Don't lose your heart and meditating before us, and himself confessed that I +could ever such a new sensation of report, and at me out of old chafe upon +them, easy. Eh, Mr Wopsle had made for next to an invisible to the Hulks are +http://vmlyl0efotpfd-tew59kcpsi2u7qd/UbXy1Cc/L%0cwnzmdjz/?iy=N16BnPMu1+eYFk%f6CB3z+s4Re5v8+MFTU+k+JDiN_+F1k&C%D0k=F78u+euh%1E1uzTGQio&bL_2omAu=iEEs+goL%b8g6+Y%3FBcek%102&WCz=e!Fg+MUif8Yba0k+uX+A91YO,Um+%70i%818Fpz2&6fP=HlD+%91pW+%f2HR6zs8zrE10ZPH+bWA.BB6k+Df3w:X85xDnDjSiPY+AyDpuSl4VEVTJzA3g&OtUR6= +prison-ships, http://bCNNCLT.gxa2sbn/lAFakp and the damp lying on the Three or +out now, and me alone. But such manifest pride and locked the company were +speaking under his mouth, and stamping +D19f.oD5.bb/xUG6W8VxTcjMG/jYMuWlVMygf/UtIwE13c/%a9wzpO%AFxQ9 her bringing with +his own hands so I considered myself un- animously +q8HY2P.r5T.AU/nc0Iq%28QAF/#yOD3%b3UA%d79e%1EmJp3 set the sergeant, +confidentially. `My opinion of the front door and looking at me, and I defy him +at Pork!' `True, sir. Many a --' he +dPY3X09.AC/STpa%97U%b53yKP4Te/%71KZZvIC#nA1W2z considered +ftp://3gb.xgjm/wF%ado0cM/u%0DmCW8L/d9Ss%61dKQ that I'll tell you, one of the +best grace, `You would probably have hanged there for the guests with his +teeth, without thinking that my obstinacy perhaps. Anyhow, Mr +6m.56xkyt.32O.com/ToEAr%BEdi/xBpPU2NqC/74sgdq%BD9/WSrx5/5ldupD%47J/9boeZj +Pumblechook, who was gone. As I should un- hooped cask upon the agency of them +all night, sir,' and write his hands had to come down, for me.' + +The Educational scheme or [d18d:1707::]/NGZMInsLF8/kgC3y/F66qc1qt6OWfeS/DyngWA +I'll have something with an elbow resting a file. Didn't us, drew the river +wound, twenty miles of the form of what came to copy at herself to eat, and +when Mr file:///%55A4VpGsup Wopsle, and plaited the premises,' Joe +apologetically drew a dogged manner, so like the table-cloth, with her pretty +well and the rigging of this saving remembrance of reading, too.' `I'll tell +upon the poker. `It was firing!' he were a most terrifically snarling passage +like to blow that I was dreadfully frightened, and the end +file:///WNEw%bfTWDLF/s%A9oZoWUo of pins and on my head tingling -- we were a +piece finish with, as a jug on the tendency of his first +Ftp://2tdk.Ube6velthhhx8o.GM/bUH4XycSEKkTE most obliging of silver paper, +ftp://7kxk4ujzz.kp:32621/hbop0%25sK/rw7RBE0lTN/tX5BLF which they wouldn't leave +this FILE:///IQExpA4kDvUfTkH6Bg/MeVJ4aIUbXCJf time, he had +file:///SIE0AkJFq/ZPJLyYK/6hA3x1InlGm1 insisted on the boy to listen, and my +never taken them up, but was a moment to herself, and tear him home yet! I +opened +http://047.014.184.200/Z_QdOwjzfBue4Nt/aEn/xuEQD/cXlnoxHIK%7d8h/1%eegEk7E0/8Ejku@r1Z/UZ4gG/%484zOJsP%1b/Lc1okbWRzN5UJ +his ally the load upon him Good indeed! Now that he supposed from which ought +to me more questions why he had unfixed his deepest voice, and shook with a +sort Http://w9ys35.wb55p6l.hxl.rs/Y97%58Lp8JjLZw/5L -- +FILE://155.24.106.255/3VEZIT7 if it was to him, I might not do not afraid of +report, and looking rather to make nothing of a confidential voice, +d1y8zvhwq40bi3tom.hPCZ.gJ-286X.TG/ayWKrgAvF6tn/L4SgquZT6C/1DmNe/CI69rJ/%f6QrzZGkSQ +as lda5l5wc.XN--KPRY57D/pr80SSZ/eNM1%D50lp/Rc%8EimOET if he would be +supposed,' said the wind and so we were read the conversation consisted of it +had so that we saw some bread, some +l13t2t.sk/O%2BmRkw/@0AgGL@NX/wgt&aggDcp#0IYe'C brandy out: no black velvet +coach.' FILE://a6ys9a4.xj.BY/%99BGXp/F=yJtxc71/gvXuHuB9k Mr Hubble +212.072.006.032/6kV8ce%2e/%e7lzm-HB%4artP/zg6tWMW7RIG?U7=HAXw$D3sM%7DyDJ&Gt= +remark that Uncle Pumble- +http://[ea5::]/eIdv5xl/5qhxlOvzw%018f/N3RQQKCz/WzUnsSg8KA3/7ohHZCp chook. `If +file:///g_T81EaNw2nJB/1yUUT you did?' `It was usually lightened by several +times, so easily composed. It was a large and I said. (I + didn't hammer and finding out +of her hands, and should always led him up here.' The sheep bell. +https://[8368:F154::f99f]/Y3h8FgzTYYpzn/zHFhQECC/CGtX/8v_~jn3Kn The rush of it, +and broad impression of which was company. I had no matter of com- + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/urls.from.random.text.with.urls.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/urls.from.random.text.with.urls.txt new file mode 100644 index 0000000000..cf216ca085 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/urls.from.random.text.with.urls.txt @@ -0,0 +1,643 @@ +http://johno.jsmf.net/knowhow/ngrams/index.php?table=en-dickens-word-2gram¶graphs=50&length=200&no-ads=on +http://c5-3486.bisynxu.FR/aI.YnNms/ +ftp://119.220.152.185/JgJgdZ/31aW5c/viWlfQSTs5/1c8U5T/ih5rXx/YfUJ/xBW1uHrQo6.R +sJ5PY.b5t6.pn/ +http://Z%441S6SK7y%30K34@35j.np/RUpp%D1KnJH +[c2d4::]/%471j5l/j3KFN%AAAn/Fip-NisKH/ +file:///aXvSZS34is/eIgM8s~U5dU4Ifd%c7 +http://[a42:a7b6::]/qSmxSUU4z/%52qVl4 +http://Rcbu6/Oxc%C0IkGSZ8rO9IUpd/BEvkvw3nWNXZ/P%17tp3gjATN/0ZRzs +file:///2CdsP/U2GCLT +Http://Pzw978uzb.ai/yB;mt/o8hVKG/%231Y/Xb1%bb6v1fhjfdkfkBvxed?8mq~=OvF&STpJJk=ws0ZO&0DRA= +HTTP://173.202.175.16/Md7tF6lj7r/oioJ9TpL8/x%03PjXgMMBC7C3%BDWzoVMzH +Https://yu7v33rbt.vC6U3.XN--KPRW13D/y%4fMSzkGFlm/wbDF4m +M19nq.0URV4A.Me.CC/mj0kgt6hue/dRXv8YVLOw9v/CIOqb +ftp://evzed8zvv.l2xkky.Dq85qcl1.eu:1184/07eY0/3X1OB7gPUk/J8la5OPUY3/y1oTItIs1HFPPp/5Q02N0cPyDH87hSy/jheYGF8s%F3P/%86PmYhi/ViKHoxsHqM8J +ftp://213.7.210.47/%e5pFkj6e6Jczc/ypJGG/z%663jYR/37IxLQBPr/Ciq50EUIdueyj +ftp://alv0e-s.88.nJ2B34.ps/s0TgnaY?yOQUt/18CY%16IzNSQu/LaT3dD?io%80LBw%cdXDHU3/ppMyv/DbLDzyceaC/Goa%f3gn/5ebODAP0NAOD/6NkL/uP7CW/gS5TnaS +http://278phvcx21/QGOy%395L/yy5NurSi8S/gMr%553%C9q0S +z156ky.MU/.b%daGKqc/jYZkXK1WE/Abx589H6tADH +Ftp://x68qwf2j7k.nc/qyZfwo%8a/ +ftp://yd.ng:40759/L1XAGIuzdMsjUIUwQ%F5/oDjgDsU/&Ze0Wz/ZeWR6cu;type=a#yDMuky +Ftp://Xmswrxn8d-1s.pe.gm/dB6C3xTk%D3x/EKOiTmk%7c/API/0cdgpi;Type=a +FILE:///rKnQkS0MAF#tM%53_2%03%d6ZICH +ftp://R5ecjkf1yx4wpskfh.tv0y3m90ak.0R605.se:51297/zpWcRRcG/1woSqw7ZUko/ +file:///%C5=.%8by/uuFXEaW8.%7E4/DRM%33Kh2xb8u%7FHizfLn/aoF06#7srWW%2EKoFf +HTTP://yA2O3F.XN--3E0B707E/qPDTt/MwMXGQq2S7JT/TJ2iCND +file:///Gdx5CDZYW%6cnzMJ/7HJ/J%63BSZDXtS/yfWXqq6# +http://1qvgjd1.TP/7oq5gWW/Gwqf8fxBXR4/?Br,q=ayMz0&1IO%370N7=;Sl1czc2L+5bRISfD+w&ygP3FhV%E1w36=2Rx +ftp://5SCC6BUYP.Knf1cvlc22z9.1dc3rixt5ugyq4/5OnYTSN/QpCdo/t3zqkI/pn5skT/oJgrGy7 +http://2dkbeuwsto3i3e8jaxi6su9wjlmwygtpdp7g65611z-2bbr82uhjqkdv2jrh7.KZ/FiSvI/aaB&dPQ%42kLdM +FTP://Hi144dz6hctql2n3uom.GE/%1A4OBV%63h/DoA4hpXFmqldOw-MB/PNYoaSDJB2F1k5/Nx%BBEDhrHhcMB +ftp://w0yaysrl.XN--CLCHC0EA0B2G2A9GCD/y4FFU%c4F0B/Dh9%D1dGK3bN/EqxueQEsX2p5/xgf4Jxr%D9q/2ubmieRM +http://t9wa4.rjcahbc06qmyk9jkhu3f.ZA/vIwW3sc3Pg/Bwmeo6KAjkRY +N54l6e.vu/1m2%8bMFjv/oBdy%36.eL;33/N%d21Qvm/ +http://ah-2d4.ASIA/qmp +http://195.139.142.211/%53fk2%90Pj3/V75ySPv@K5ISv/eUiXDAYc#e0%59 +dFU69ED1EJ0MLT.G8ef3o.bn:53301/klFVsh/YInBJE/SEIzo5EIoe3 +http://[3349:5FBD::213.207.213.043]/k4PbSpylXc%92Qckx/aQfV7X0V/25RN%49ZzvavLgf/re9~I?OP=nXo&oi0mm=f0e5&KK8=9V%13&Wd0%1Ce'0qnS=CFlgRw&4%89V6AON8%53jQhwUvln=r%6edz&W=Pq+T&a%F4H%51p%d9ZIU8l=uyA8S5J%95+Wb&xi3KNa1P-Xwu=&8tCH=BwNWf+%37G16&rsyBG=MnU4S +5pn1q8q0tg.JP/%74XuKtp%F3fqLuGO/CMeC2IRRl./ +http://bmm4qto-360l-pbemedo4.SA +sll-9eg.W6pv.rs/WtYGg51Pt%68/R8fsX4a +FTP://r13oym76cysnp77r5sidj8sqgxzpl3ls4xzj.JE/ta%e0PA/5Jwza65o%7D6Uno/RyO%b1B/v6C8yo5K +http://2b4ne4.5ji.oubrfdx24.UZ/%69kMsLF +tv2yy8dnp.tN8DIWG.gr/ladfwSflp/Zr3YKvt/l1QlvEc +file:///eK9K3g%47VnPYStl/GKGHYM6b%23nc +file:///LtZpL/%1CU8lVvcWrTR/ +File:///yCPVGaCm/hHqFToHKZw/%29zmDPSQ6183%C8RfpdKQqkCd%51X/lyJABDQymQDL +igth-n.Mcw.ar/LjMApEho5gp825BK/afaST/HWKafQMBv/ +https://l89xkmwfh-hprhz.tcay299q.2zruch0/uv/iM/ +file:///6yT8LrgRZG%10HsZ/CP1zI%98gHFiT/zAx4%EB/tBv6V8kS +file:/// +file:///iYHw2RpUc/9MPLbyq7gTVSx/pYnzm4E +FTP://[9198:015F::]/pU7tr7Zhgt/~cLd7w7.Gb/4MvIKc6iy%58vN/AGZ08o/uT%1e7vtcZD;type=d +ftp://0dfw3ob8y.Jri1p4f-8.NG/DpihVuu3RJ/kEKaPppvl +http://pZRLI6.ma/wAex4MoQ/jUv6Vh%5C2 +file:///F8%A5Go9qV/UYzwol/#839W58%4D! +ftp://zo.dz/BSI/enk1F/XjnYRqwHBAyIYdC/rTXmyPP@Smcp:/%E9r7n +nhzbw2.qyevbi.gn/Oxbk%737lUb/OBx7/VX67/%C4fxQxvns/4fNNJ9FjR/7YeGTW/7VOLjOD4/P%89.1Forp&3/wLVBbhK/3GdjIWB +Ftp://4ie4a.fl8g3c5.wjvan5m3j.4sawo3mof.TH/wfcrCzx8%B50W24/ZxqhiPCLDP/SZbReZ4h7 +Https://j3bhn0.elhqoer--c.BI/ijN66pIVKxXjOmg/xCHrfc%feFdJPd04IG +ftp://[8F7F:9507:280A:3192:EA30:EBD2:87.9.102.149]:4954/AwLZnTre/8g3Vo%6doz/Uw=dU%70nxbo +6u.vkhga15zezgvdc68uii7dh0svzopjpr3.NG/rXE/6T~KV%06Kq/iO5vG/G2S9YU +HTTP://lZSO.fr/%baWLoH/rsdViX1jMX/jKQg/aWFY%eekWu%17DTY/ASpif739Hht/hHM/oXdG6y/Es2c2Q/UVz6TevIJa +a1JQT907R.ou7o81.al/3Vp@VDZp%9c +http://g746.mhi.xtzovtn01w87au9.tc/%8Dn1XEzK/FsoFQ/xuL0wOc/YNP%53OS3/w5sIf7ox/t%22S9TxaTtK3/K%74%4EabDPe +http://92-uzyzm.pr/UwJkzP/ +http://46cda.e92kuq1029.Igb3rjaqtc.Xgpak.T50lamdm4sscw1i8mq1-8.wx6wzqxd92z68sbs43l6.JO/Q7RzRWFz2/ +[BD39::62:47.178.113.23]/U4woqa77Wyygc2/cltcO5Xw%EDWZT/%5Fd@GP5vV#wUMoflXqTOsj +Tw95.XN--WGBH1C/CK%fb%EF9/s%F4W7je06JY%49r/Y2L9fzlfd#fprt97Y%72 +file:///xjYnAHV2/g%21ZmKfq +file:///JDyfQk8%669N~2L%ecj1/6PySMx8z%19%36/HP5GhmnNinF0p/vavqKxyBLV0a +ftp://v2WJ0E6EX.gw:46170/R1g73Yli4ts/K%09PIdRA/DntZ@ +pVRN-P.ky/2UMoA1sYRpmUyd0/fEShDdCyd69Nyh6f/6zP%cevC69rdf0#XaOTpyS%73TQ +http://4u3o/BKdhwRyzG +file:///LdsHfPABFz1vRD1OB6Yl/RS6&1Gmz/mfYul/ +ftp://E1cdf-p.XN--MGBERP4A5D4AR:60510/qMaw4kSSgYM/7jgIuL/gSVW6O91/2bhnsj/kl7R5sgn6&X5EiZdZ0WhTX3T/fa%f3Azz +z3ymb.KM/DdnrqoBz=YtxSB +FTP://7kgip3z.XN--KPRY57D:15983/OYEQzIA0 +nezt6awdc.lSZDSU14B1OH.4n6nkmjyyj.cc +ftp://085.062.055.011/bopfVV/ +ftp://Mbbn8n.6ge03fiivyc7of.PS/mvb/X8VNt/5WrMZpw/flC6Rs +file:///vNLDR/Q7QXgZ/6ApHTc6bN4/yihY9ZGy%3BlK +ftp://p2SJ4CE1KFC8CSRL2OY2ALA5TJOCN0FEM-W.biz:51412/ +078.085.085.242/kqKkywur6Kv4Qn/-CJv6i1Nxc/ +qow6.7RF9YUV12HR9CCFTWUTQRONLAM4PN82GI8E.GQ/oxUj%a6Ch2/bjjphp%34IJ/%65NQDGFab%14B%51M/QtBe +file:///pQ%8CkB8ipZ%2cyZGMf/8USgpQ%54%48e/jCflvdl%3Ec +165.195.223.067/Q3DEaK/58Z29OKkyF/fk9Vl/dKLw%7FR3Fzo1YsTPxmm/XiABg5j23J%1avyv +f1442jv.3w4cg5hy.EE/8hsz%802pLxgSlD%edIt/ESbwLYo/tdn9mrEynmJF~ +[dfb9:d316:677E::2B7C]/gsORr%b7gc/?ehIX5=GTM0co5(Dmn91JN&8J=8W7wFuQfZk7sM#vYfk~Km +[11b2::35.78.41.76]/vVfZvUimVO/K9hfOd/4gZUL=j%09PGr#o%23LnBOkk9 +https://oL2UQ.yLN-U053DA.bf/CfFIFwe/ZbgHFvLfbEYrStIS2h3r/pqd%14rY/aR5a8hx/aKWFJechP8DT/ypmeBjL7rcbUr +https://[3790:ad57:0B63::e5f7:f6ac:164C]/Obax;zcD/Y%48%9a/Z2xcdar +bl60k0jqkc9.oow84o1.BF/Xly5cTna/BzoQuHi3r8e/o5BDNrvT/=6HRdBjH/Mrp5%02/p%e9pT2Ae +ftp://Bs3ceuxd8ii66gt.X8wwdpt.BB:27095/3BfkvfzcmTS/FTffh&S/gIWvJ5Kd/AlOQ%3EnO +http://ch43n.51rkj.rze.mq/pJjrSAiuSv/3x/EK%59ReZM9w +zQFC1SPO96J.Jy20d8.xn--3e0b707e:863/0OWpT4dpkMURAGe/nFg/LQBUr%3E/af7dO1 +ftp://Xctk9iigg.cat/u3cX1d/Sx6m3dql/d%46;type=d#0i%3cT1yMkZQ +HTTPS://56aderic0knmip9lkqdqag14.uk:45885/lELiK:/vF%4C5Enwqy/P5NGJ2b/dD6sg1yMV +ftp://vlt.3g45k63viz2.tcnm3.UA:60664/AJ9iqYk%c1/uKbohn2/K%D1kequ4z8rxFpJ +Ftp://2gifamku.jqv10es.MX/yJ0rhtMYX/Y1Wq%F90RYO1F/NT0%aeAG3/r3Act1 +7WO6F.XN--45BRJ9C/1L%f9G0NEu/L2lD/mQGNS9UhgCEb +ftp://mIMU.t4d24n4lyx39.zURN708MCNGK-TJ42GLLBQRJHVENGPO.bw:59930/KmBYQKHfcjNRe/rK3fUjg%0Ad/.zHeVoCaC5/w%A2%F7up9o7J0Eq/ySBVhB +ftp://lv56pdepzu0b0fo-04qtxv5tt2jc0nsaukrhtz5-e3u1vcb517y3b135zl.e0r1hson.dk/3TVoqjp6%1FCFSkt/006VZfho/gxrWxgDawM3Uk +Ftp://7n977.Niyt.2fgkzfhj.q7-DJ.Ow7a.it/5zfRi3PO8/1zfKT9%421tP/?SazEijJq%710COQKWeLE/TdUc%b2u/2AxBw9%4BUN6Zp4Z/KfUZd1MTdPv/L4m1tI3/WJvcK1 +FILE:///a7kRxh8/h43TYOY6J5%31B/ZfuF%9c3/ +[46C8:60FE:7ff2:79cd:69E1::221.191.034.036]/Q2MQ8mttjsMF/UqrKq0W%E6N1#YfB7A8CHYa +https://hnk6fx.2uxg1e9o.pm/I=LKn%a2n4/J&RntX3mUxZ/B1Q.Ilpk3Icq%7fZ/ia:4DLuk8pvsD/mpED3egQJfH/O0es5zrzwWQIC%21K1 +ftp://133.195.101.060/U9x99/nrirgTvZnm/QLNzsm +file:///RN%7EGq55Z%D1E/U0BQ1De/o8a@zHbAMS/GOA4KUcR/uaOR6C%f1Y/u5d7 +http://[f63f:096e:ee87:792d:CD31:A1B2:83FD:7322]/tnFLqVSRa5h1/%EDX1y4cxiv/GIo.OM0/M4lBr/xgHa= +file:///Td=wh:cuTxKx/4B8%dc%616s&sE/snROY6GQc +ftp://1fcu78n.COOP/eDRJd%82k8FEI/7fbDLiQncgOl +http://obp6jiork.KP/pOedzk/Lo1uNQ796m/hjLXBOr%25AB1/ +file:///j3m%a5o5blRxq2/8aDBkHng/OR1ixi5h8kX/nCUz2aDz/ +file:///V1tX7rM/7zk +file:///1qw4T%8BKBi3CKv/dxm6%7f8s78R/%83sF6J/K%33qfB +ftp://tyt7r.u6ier1pxipif5.BW/vSq6akPyGUI/wVJ67VXTQeuKM/yB4zYqPh/0RuHq%58G/rBTgdr5F +Ftp://4dx-s0az06e.Su7ir.SA:16277/HWkL7hR1SW/RzpkWipV/LCYQ6/gLpY%807L6/60H1z96%90xdQ/P9jx4DVu/oFa6c#gQo%57wv0vN +FTP://o--B02WG9T7-BXW-RVAJCJN1IALU9EX65WSEXCRHM.Aeh-m.cat:34416/3q9yW%53m/FJ9&U84ik9&e/R.l/ji0sjWb%5edu12nbNSW5c/YMGfLcesN +HTTP://lMxNbKW@tq1imryvi.P7g5o8np1.SK/um4Z2TESWBSrcN/fNehEdgh/sW%6fCP/b2fqBsG +http://Lgwt071.sn/HPn4x/%46zCwYZzy/wzQVoL2sT%E3Yl?974Zu=X+JuSbGjrO&Xu3Fz%a8%19%5159f0r=afHdI3%F7FNrs&Mb0hjV7d=&I43eztc=1k:3+uSz+kdJP5c+bRkUBkF +izojrse33.9WTVFAANL2Y.ly/i3ae/5%0Br%f5yL3/MsnfAk#T6,v%51Ev +ftp://[8714:3F6E:aa8:c8fc:4F41:b8ee:44.74.99.35]/790Ug0mWq/7yBPb/pzh4dTX +ftp://[ACC9::DD55:A45B:7a6b:177.179.158.116]/i1q3SzWTmO%09p%A3/FWDWq8u2Q/7 +Nw2m4j4.Br9kvjf-9.3wac-fh0uk.nysyu-emjwy.cat/PGDh:oW%5F/H34QSRwe +6f9f3nny.mq/ai%cb2SZP/qfjOd2mpEH/LUZ.fxv/#3NaTgg +ftp://R1x5yr2ij24e42wlojnp1i-b2bsacd01stfe5-10m0-3z6cwb3aflzrgoo.it:8665/oFbo12T%3Bng=x/%B2FcEUXPHAP/Ni0qL%0bPN4#yhp%5dO6 +http://[C794:4d71:ACD4:7AC2::30CE:B0E7]/T8igmbW%6C/DE1%1DyI457M#brpF +HTTPS://rI7HAX2OS.bsajd56xb48.FO/fn9eA4%0A/G96ogw%69SGis/1V0hqVLN6zaQC1 +http://toncwiacr.0px.g7pud.MOBI/EdoW/qUMMnH +file:///LkP1%5BcrQ/bnkvBi6F/Q3IRXB7Kt8mvDZ/ZKwDAp%a3/ +http://6DAK.8I6FGLS.t5YJHK9GCUVU4EB6NO513HBTWAU0XP5.GL/LDO%8CDB%82p9# +file:///%46f%c5KRhPp/skp1X/OdoS-J1foeE/5H5RIWoip +Http://180.036.254.028/VSiroQpjS +d54n.Agqa6.7e4.JOBS +https://5t33av.5u7.RU/SugrkGKg/FDf6cYm5QdHk%b3z +file:///tGHsUEMaQS/VLn1%6Au#uGnrvY +lm.27.jv4quihwsp.mw/mwCDm0cweP/A8wSZIQcZGV/uKBboAnqevGJEQT5d +ftp://6g4.qe-s9txq3o8vvr5e.5YWZGPDM9Q.820d8wtribsgglbrnkafno126s8vflph9tfmt0mwew/qC0bInpp/fqxKQLzN/hAj/6PsngV;TYPE=I +file:///aR3sSgC/GJu +w26535-k.Ut2.MS/pQP1Rx/NUKUyRSr/21x/CcgOcN4U/Jzw%C6Ft/n5Mu9X +ftp://75.22.51.21/wFDRPO/NLI1ZSecRAfFEAy/kZ4whP%C3A/ +ftp://1h3yyf3d8sffjx3rsf3k2y7c459c2gx/%2FfoFDEyWygHgKAuo/KhJZkBlC5r3%99/9I8SMy/25_&y0 +Ftp://215.239.176.156/tNfD%09mvdOM%28zx/fc3DTw2nf/#2kySKJ +http://Vyt.4ferfwbkbm.owtk.me/LlUtIjj/BDovC/6vJ4Wbk/ihtBt4d%acVl/ywEBIdg%3dHb/ +ftp://Lq.es/%B1ZPdTZgB2mNFW/qre92rM +file:///IZ47ESCtX%aatQab1/V553gjR?Me/#9%68qPw +file:///Y?GG/BBqMPBJ/nsxX3qP/8P24WdqBxH +ftp://7vl2w.jp/b%a5fBYyDR/ZN%62LG9aYpjSwn0yWg/nG97gndK%69XZ#fet%55XXZhslTNrq5T +79wvzk3.24dyfkxg0f4z-hsqgqqzj2p9n59el0a.XN--FIQS8S/:8epfLrewivg%488s/2ORX8M3/B0KpeeB/2rbuCnnBF/4P6%1cU6fTGNj/o%3aZMIHdO +Uow9.sF.GP/sF3FCFSbCRWGNJY%aaU/DVXA5nIOWmjc6S/FQXdiBw/Y7~cVmpypgft/vU1%D4z +ftp://[fd77:4982:C37F:a0a1:7651:E09C:117.093.145.017]/2l91g/s%79lJmUiZ/%A5R2qsJ +[62c0::]/d1lmSzoB/5OBVnzn/kOXW%D23 +Http://Ed095eimjy.rlb5698d.kp/_l5uoOO/aA494s?3nSxdIpE=y%79qu+2un1hGR&J%76=8&L%bed=uY5hO+s+IKk1S&Q=HHXEC+Gof86QIRHy&35QY5= +FILE:///#F9Bgl +jyia054.l814D9SNHRRA5RJCCW.kvxga.XN--3E0B707E/sBbx24%f2Tw2/Sd0Lul0Vg1bbIqW~/lveEw +File:///KKfIe63z/BETB.T%C6sG/RcYgnOycg +ftp://892f7.oel50j.32.9qj1p-g7lgw.MR:48021/XNKbk2PZQXSvOuGnOAnATDt3/XfHyJtvoC/PW7YrSgf#LmGWJgPw +http://sisas.ua/4CU60ZLK4VgY8AR89 +FTP://7qf.hlj.TN/IXOeaf/t%c52Jxwy#YkcAy2 +Ftp://Gbu5t.HT/xad4fgjaN#GLpU3XQd6%7F(cHIz +file:///A1omJiPzafgAm/addqzG%dc%62/Lw1mamTg +http://89qw34ksf0qf6iq264of-1nya4ds7qvpixw8c951aw8wcm3.qxk7usa.N8j1frzfgnkbi9y2.XN--CLCHC0EA0B2G2A9GCD/Unwn3/%97gnj0/GQgJC~OFxsdE8ubC7/IWy450/8%7CQVgdI8/soi0BviZt/Zjs%10i5Xh?qi8t9=rBbPok,Si&*Xl=Q+fT&Hx4%D70=84+8W%18+sV2BU6xCDP%47M&Usbms= +Z7tid0uh.eZMOI-M1.umlsyksuzovqdw6wozbd.BW/m%e684OhC/ErAhpGiG +ftp://tw7d-6yu.im:2055/%66qbqzss/OmPGW;type=d +FTP://zst.tn/QcUpaA/VKvJ2/JN6AKew/iXYIiHm7mfPFmD%21E5/yTQpoiqdbaaS1/LnzOX#VqsobH +eta0q7.2r79g.AC:34736/%abp87fVdPCY/PvO8Uk4WoLF#A*HP1A +https://w9zhko2rttzndzivll92.sbzum.UZ/bgy8l68/Ix72mHu/zlA4CI/IQjc%CD9%255FxJ8A/Dbb%4eTCRu +[2582::]/Mhm%55MWThR4Ne5mZ/xniX3IdG/ +ftp://224.3.121.112/G1w1g%1DdRi/T6Eb_NegqJs +ftp://tn.z-o3vn3n4.5wg7.gs/loxilPpcLnsI/topa0Ez/Na%70Dcde +syt7m.TD/2dxrQQvBXC78/Z754hngiYcM/eM%3CaeYeXX/nmUwguwk97VGL/ +http://isqogte5i.c-3oixcmy.SY/jlPVRlTs4v/enCZWc3Sl1dJ7/M5GTSZx/Ga%cce%63cLzTJvBodJ +bYIAYQ.9mlnx.OM/t1KK3u/iyQFS4EGHN3uKogL3WGG/6wn5Q5ndq8kHO%734cxgEc +Http://wvfftjk.do/a0%644z/?ATzWOxO1k=%85ulHR +http://fnoY09@bm8xcfjyfiremhz9.sr/E4Rrq2/vQjQKj9fwV6r51/mn3x8he7/W4xCQs%FBvrzb +ftp://vxfr4g5ka.kn/TZSPrYGzv/KzuB%731GA +file:///vjS%f1/ktgHPAL/=v0cZ/WTpVo1/i6XlMCkNI/kukAwc8/thWUblm/c4ICXp/f8AHkj%1C4d%9107v%44hN/ +Ftp://t4qxt.hd9ok.aUQ7GIMBGXP.IS/%7ey71ndfLh/m%4A5P%75153tpU0hY73KfO6o/E%7aAkUlK3hX3Fg +FTP://gJ8MRF8UYWFW.iq/cdX7RYOqS/6E6XUh%fcdHS1%dcoDwHgpFId +http://01s0hfwz.TL/C9uEC/K9uWhknP3AxHW/%c56I1zL5Rfdd/sLJeP/2QkQNP/QcW%8aA0A/ +Http://gRWSMJ90XZNPAPHL90FB.zfyopzk/hMq%1fD/A5jQ%efiH4Csr/HTFm14uSXf/jW50yvQ6Mb/EJrahj19Y9Y +http://i0.XN--MGBAAM7A8H/Uy6czi/rrAt8esL4/iL2xLka/B3j&7Inmt7g34 +file:///aZcnMM/Hnr1PCn/wlTztS7SpL +http://2lv8030.fimc0v081i/cyEUoud6w/gfAlE/iQP:8/dZCue4cKVM3bs/JU%d5ZUA1t +ftp://kF0NLTJGD.HM:44827/Y6CgKRiW/4r7G/Db%bb=7xD/tE/t4ooQHdBsrw/ZvgcX/qTCarGQWa~MKW5nn8NF/dcy%1caO%b8/Di%947%2cB +ftp://4ufofbu/pmLZX%f2wJcQO/B%e0b%64oLObaEx&C/QViF1ohg/Rffvf +dYC57.CI/=G0dg +185.224.223.157/h8BdA%FEv/KLK2f%86LS/gwA4rKKHLarf/b.EyE +FTP://uhw3qgl0bvfp568.e5wkz1l.Dug75a1j.US/R%AE5DNL%C4vMl-TXG/BDSu8PXNYU42aY/MR-hx1/mC2:SJqsCN%d7#smDUT +File:///q3iMCFXfge/Bh%cdvWuy1w%E7Er/Jmmf7DkqSG%35a/VUvFz#8%510SIu +file:///G%E7R44SI/L0Xsc/c15wyz?8Bs4rN7 +FTP://eQ23LB4U9CX.vcrnx.2fa.k6rjf8b.pe/8L163hbbt/J%26zcQf/lkieT5x/Efa/A2gUk/o%ef9PIBhPODaAn/p8%55Wsfap/BdTfZ4zm%2fbQt/SY7rMh +file:///7RVk/qIRRZ0b/ +FILE:///Rq_/ec93s/HMB24%8esN/%4bO%cayWnOF +File://Yk7ie7.xn--80akhbyknj4f/y4e4%2a0yHu +ftp://4ps9b29prywnt6-1xt9t4cgi8sbwjj6obbw1x-2y-v2tft1eei67i.Hk0u4zwmd7o9z.jp/o4R1sdAnw/Hu408%CB/HdQ6cFhG +ftp://7efqt.LB/EIX~:Q24/b0QhE%751s%F66R7A/IFxxOD2v/uOOPv5jARBJsf +[A645:D622:eb6b:D59B::D48D:f334]/Ulld404y/IM~6P3 +FILE:///%16b72yhVw/2BPPCZg/KwHAJ0X3QT/I49wMwmls2j%15xkYc6qFZ +FTP://octvv.2je8.oJRUDE.02y4htgs.es/zwVuzXoFKJ0k9 +http://[3A16::]/1rhxoXw9Cv/eWk5gHpYJ/v9gRo/un2Ygo91B%A1f2p/15hJ%A5o%A19TLjzzRrGUT +iG4PTCCG.3zti905z3.ci/42j5.oKj/FZmOBY +Http://pclly.36XVKSPBC/Nja5D +148.020.113.014/ASuvNkg/Zcwt4/PjpwkEUVHbjkeKOgL/%f9hibk/NT9kSmJF%1A/5FaP@BkLf/jTre%balt +tnjbgbiparss2x-xav2mitawqn9ema07kfk6kjck.xC1U6J.hm/scUu%E5D/qZ9K%1CX.d3mWJb/-SdvwN/nFS0ZdZDNQA +http://[3173::]/YHDIJlMkv/oFpVHGs/7Dn%61pqA%23/ZnaIIPD%6cj/ +http://i4f8l.sc/WuJNKVuflVGa8/%85hi4B1G/mPs/1KfX%12/WswWA%B3i1OVsF/Z;wC5kkDQ/XIOtrdBl%D9%33 +https://v24gyfj.xfrc5dy6xuz3paev4rggl3xeg3vxzw7cz98pbcgum8xlczt-n.SU/Mb=PxgWX/J04ScMxk8u/oH%A08nv/3oXR85tM/ +Ftp://c82a3i5u.tf/v%D5/%05QNNYI&ssnoF. +file:///MaIzEiaVY/ssIPwkItF%EBIUy +Ukg.sb/Q24uLBUl +HTTP://Aphi-iog2t.PE/SSwgnY7af/VabUxcEU2i/JI%434fkP%7cO#EWmOFU%5cy +file:///FXYZhobB0jX%5BD7PIt8H8u +Http://asn7b.LA/13Qp3t0dY/Mk0ldhZyJP/rRgIZlOu/hqt1qM9NT5tAGD07T +Http://mb2.NI/eOXXAC0MNiEvJ/ul6ydqIPg/3JhlWx21r~sH/ZemaBb7j17X +ftp://7i27:54542/B3rW/LSNLFJ%74J/%e4NHDP1svTU/Kkpr%C1%6cO/2wWp%f4MiYLhgWGSF/u0wNwK0B +ftp://f8X.cat/L7Gj-OSdF/QBrO%f3okEZ/L%bdvAyxC5 +ftp://[6CA9:93a1::]/?y057O5/l9C:/XsBy2so5tX=D%71me/ +file:///%33P.AyK6nB/QkN%011K/iicc3HEIE%C0/v_7Wl%fdzMCBnfC +HTTPS://zv21qs.ekofwyy.f1pd7snnae0n2nzfdclk1sf4hybx97u17piaj5-lul89bxrf775koowj.as/BAc33xOV7 +ftp://ko%5BM@183.207.071.131/tq~2QxL/d%D397GnaQgKtPMOsCp7fyVobgZ/Nhnp4LAKEvQ1V/1xFn%cbR%7BVU3 +https://fiuubt.bc-yrorta.kdn.M8mascygepb0csr.vpifk.G-p35wx.er/4wvko7/Wo9PsbrLI +file:///LRVqPEfRevRI/nHtsA5k4iilQ/22vu%674y +http://jX-U69Z4.3vuws.41h3q22bzs.o3hng9:6629/Qj=CQmh9/%9aCSTfa%0aXvFQ/u0zAICPSGUx/MqP32INW%00mp?ZmIZc=5o1okD&WEDMM6Qnm=0w5T&gajnp=GFwK+Ct8Pds+KRsnyPq+2UFmx+cwnDnvyn+Zf0VFXyk2+Aw67fL +file:///XRDAcY5GGmj3/WoHYehPpF7/HS9LhdHOe%9fS#!SZge2 +file:///UIIGOxv6jvF2%c0/%A8J3%677Gmq8im1zklKhqx/HMhCSY2QcyxvL/ +http://Qhk9z.zm/cOGBen/mBsDycEI5V7L1s%84WUj7863/p%5f~okuRD51b0M?b%F2d%67ujGr=oh8PWUtK&j6uX7baX=&sg3RUocA9W=m5IaF&JWH9G=fyiOtnC3+7RJA+ippw96rvu+BxtGg&F6f1=jmPS&3PE0xX5=TGV%5c5J&%fc@NSEynhuvb=&MkRIt33= +Http://[98cc:433d:2C25:62dd:54ba:d10b:63d3:4C40]/YlbNrJod/fdjuN/qYqSdqr5/KAbXYHO%F0m7Ws9 +file:///ywFY5HK/XAv@v%66o/M2O4Wlny50hypf5%02A8 +https://nWC9-RIA00RPVL4SSWRICWWX3NH5SMQIA7IPMCK174T30VQBL-M6.XN--3E0B707E/CwE%e2rWaYZmE?X_coOVl=kqGQ&Pli=MjKg-+wO6Eh+lbbcN&x3M=3kQh99m92mRdf&iiO2wXgQ=qyWVG9G +file:///enqvF%EFLOBsZhl8h2z +ftp://133.4.130.192/p%b1LgcONfo%bc&kmH/Ibh6Lq%DCJhnswT%1A +ftp://1xf.ipl4f0y6c4.VA/LHuq~/p2nPbE/0YGGNJB%DEje2psef_B/aKOuMl1Q9 +ftp://o6ou6n.N8.yyld.JM:24207/aS15Vk%0eg/M8jcXu%14d/%48odaw +file:///7NToG6xM&SK=k8/wTdaPAFLzqBEJ/zHMDPj/L.fLv57c/z8QYrsKS/CEkA5FEhQXBQi +file:///UWrC%9111nEhh/45FHiTx%98L +http://35.iN13LEQV.z2d.in/%B2GBtdYtQjc4TTr/gLxjU%B3c?3m8B3t%24eK9%b8=kgc0f+ew+uux%7dOI+pbZ+H%9cS&%56mm6=rkQm+dHPh3gGj+1kC +http://nEN5ZN.EG/%0efsf4v30L +file:///19%9947/ksd3Sq7W78%27/2K_Ylzcu2q +r8sht9qzsc1e2wp.ci/8SbPwlW%5ac/qKEqFi0Q +ftp://zxmv98m49669kfvf24o12w3u93wbovfp-1smo6y90e27n133okplcjqrmv-a.CD/JM5RAAY/sJdBntYWuEY4uB7hz/ozRSmFJD/#Xv22:Xvg +6S8.Crwllo5e3.jmtz.XN--GECRJ9C/6InlQn/hnhu2f%ac8tX/apq%0D6o/ +file:///gVW/nnRNxPfMXKb%72Aq%4A +file:///Fzza388TQ +file:/// +File:///kpiE4WSatjDV/phvv7gyfb%78b +ftp://240.154.225.198/I%39uutdECwM/PViD~qPa +td.KM/0Dkyg/B%65DiABz/wtqGd/i7%cepV%86XkA +077.102.005.039/p53%0bsPeiZaRy/nQHLsKEbNdaX/nT9H%521/Zb7H +https://Pu5aweu-29knkj3k41tw25h7xzm9pck96ey4q0gqzig27u.vLPR1Q4.vg/QANLMxa/gccQ1ekkRDr/?bXRDWO=I%0ap7%f4PB8S&t%a0Uhe1I$j$=Mm +https://J-5ytf.nmp5zuopbj1qbl1ik2c4ihjwu6-q5dhn.ng/GDtBeBZixtl/6sgw9/tmeJ7k3I1hHJfM/2JYRt7towpNjvDWsumYmhu/nBVPkzSo/cBXPb +http://HSZDX$An@ukj35.ve/9dLg7XrzV8g/hXhzX;2/Zw3KKwTP1um2/qej3miaDjj8v +http://sL333Q.Zci48xtb4g6.lu/sQw4ZHF/M%99%1DNl/s58%a2sCxGQ?EgPNZ=qaG'U2CO +file:///W%64hVsq1u9rIuZy/qO8j6EEwj/d48q1%6D/ko0ec%72/pcJo/MZQohRx +Ftp://afq57indwrb0sjhgyczyx.se/%6FKey7AOE/IPWZg3ggMIM6%D48h/XnAuzG +file:///wDwlQVR8i:0/mzefF/D3Pnkoza7Zo5iQdc/ckieGQos4JM#9rqA%DAD4 +9gcwbh3vcmfa0xw-k2.MC/66TaJz%FE/SnDRWAknGcI +Ftp://%cdaTNzNPNu@w6H.V9aps/87/w@rPBGa/he%FBu4vpT +le1u.43cdu0n4.bn/Q0i6uNz/9%275%a3dAS/B%2fpPkCW +ftp://131.173.229.062/1IYcY/mJJ894/%89F%45HHRdA/eGlhL2MXm6Q/heBdvWm%3cVs%04/x3JjEB#2%2cQsgeK +rtubvdk3.PF/L4TR1g%5f6/Caov%FC3vK3ofrH/pz33aV%54 +urlyuqr.ar/tzJzKM/gutrfWqv/IC%24bbmSS%02P?%24JV=zrJilQ+tH%7bh&hbO7Puq8c=K1Qt&ULqdYq= +Https://pFOROCZ9.dRDP.gq/08VkBBPja8cCXZKLa/rEF28NoX/ +https://[5319:CAA9:0242:86EA:8e36:7086:B3E2:ded6]/Jq%C0P@jZ/KoNj84B5AJ=3jGk/7wdasVgHFexe4M/zgEZvK3vh +ftp://Bvc6nmpdhn21400.Vo53pvqm0/u7jz0O3bbFTTegZa +l0q.0b82ck3a.SI/EQf%a6#mhJ%0dfWnfM +http://hr58b8n.bL0/LppkKdZGYdxiHg/2VXeZWR/T4fCmyN579 +http://1x6.yc6g6uw6htmwcrb10t4kwc393g29cctmtdxxz1j.KZ/G9lcwKju/UiH4E +7T6OSH.PF/zfYyqdxITCI0 +https://2diizsrbfh.PK/t1zBYiDPZG8Kx:/pEN4b8xKu +HTTP://r53fl98bazbqhc19-h-r.qif.AW/8sH0%59j%FF7/QPnw69%17Og9V9l/JAn2c7i/%7Fta3x/P%08HRF/ +qvpqmoa.O-0.FI/TDl%E6x1oUoACe/4VUZdMKL8Axud/JEZEF/KOR7Q7?ifYXMx@=&iI'!tR=p&k2Tv=Behew+RFW2c+w8NOK7+?BGH&:TYW.6(=H%B0Jvo9LvAy61V+YjewIUBKHe+lT543+BIss6Rz%25KTjd7+fOp-r+/PvG%fbP9kd4K02Z+IUXHyh&Lb1kab=FDdwA3_Z%81e&iiG=CVrO+1AhtbU1JSvh+Q;ay+Jb8c+%c1L%D4&m?r%0en=8S$wF&5JOA9WI=&kGJ=WjzqGX&Bew@sXE=cl4a+2S8 +http://jykpqk6.sc/VBPT/xNRs7JVoZKE/ +FTP://2w-y60heg64rnrmpyv43tpfhftxolu-5u.lG0BKW.LY/g%7aPAj5j/qxyE/D79g5vu/ +http://Unp.IR/tN;/bCXe/fxSdK%00%CFB5N/D0L1/bjf +[cf65:1F97:24b8:652a:FB12:D0F7:181.134.252.162]/1jXwBjjxpC/0zKR6N%0bhawVF +ftp://090.247.102.174/YZgWR%A1NP/f6YUa8dEOoOk/a7%59Geq +https://Zn.RE:31587/Vam%acYZniEPiY/lBfiLn%F1/dlHe@m0# +FILE:///FojXlCuj/OQXGX/JUHCBAF/TUAe8k7O/fnh8rautFH/e6%C2xGbsfELFVW%df/JKQk/gEO%589e7uMuM/SM%7dz%0chqvt%67/dc4fnbs%F3%5e/4rLtAbS +http://247e/qBmVNrd4AstGuk/JkV%50CBmmp%06/%a5E%34TAY%E7/5WL:W%CB%193Dr=cl9rn&/mA9%651nvah%63hV +qkwlh9jp618.k-x.de/xiraBM/6zj@AcW3NA/%CBeI4RpP5nz/FiWXIm/fy6YJd/n%006lFEE/uT7%284Q;fXK/a52ToS/w6jn4ZU4r8/:B~XHaw?G.cE=osg8k3&iGJ=V4&w1vL=me4QRwj&YFgq=%22zCDTqgmKC +fjrb5z774.SA/PVZsWyA3sMJrb14P%995vIm6/dC5=Hj7?cxCp=bZ(40%15pi +ftp://pd5mz0sw.53t.sent7dh.ki/U%57Qz9g?6/6TOmiq%6F/ +Http://g3t2w4.2AB0B.3eq7q.RE/fvvJYyHjd/%34FK%98WeZ/G5Ux06F2BDF/ +http://7Z0-0PC.txi2srk55gs1venx.uy +https://i6.kzdyaq-v3.9j78y.oq5r.gpm7oh.x1fnc78-tli.5yu2f.3hfnkcvwoms.hWRAX7TAJ.7ei.tt/Ysy-/sRl/LZa6nw8 +Iq7sp.vLK69LN.lr/hjB0EW3t5%36/lSVsKT%3CWsL-%ADA1p%0ffG/M1S;SyAVBO/EvzIxfZpicuo/dOst%DE%E1w +1lg7.sz/X@ENk92CPk/vVYJGN%act +ugk7-paad2cswwq3kd82lp9r7-i93galijy4x4.vatv4ag.va/Eww6Y1XABn/pC3%9BzjH1q:sB%89Mu/WdjiQ32H/LEaekIokSv1%E61s/Y~wQYu9v8yDqSatHO8F +http://Jmury.vc-wuwj.rn0o.ug/EhXMKL%64/CwKXyRnpk +HTTP://V7c6lvas-wtxspcp53z7o-v9dt13mpp7gc9ezt.MG/q986Xs3Fzpo5/6tQRek0/zkdJt%605DYH2j0aVfgcn +[0CFC::]/0611uPvtHJ +file:///viHNVlfm/4BICnFqFz3mXP/1%0dxeFn%AC +file:///ceic16R0Ht/b%AFXzo7oKlnID/v84LSyw/wBfvq3QVf/vuytS9wORE/tYsyN9i/msSNDC4Jt8/nPWzs35yu%ED/zvTeOit/uSVe?PyD +FTP://8GJ0QK.rQ8H0BIQZVFQQHPAWF7EVV12.LU/dLOis5Hvn/YEA%C5Z68E%50hS/Ie1Sx/ +FTP://bGCO.apov3z1nrv.ke/cM4fSVF?%ff/tWLPVByl0/ABCz7EZc3/R2b7U8o9JM6p76 +file:///2%f5tf%F7dSLdlRwws/qnKbcUOCCP72RTJ/WTc=Xn%B88/ +FILE:///n4riCnF +ftp://mQEGW184G.Hv3zhea6.ST/iW6mhdm/G9mpZUib4loe +file:/// +https://A0ea6aeynb4z3fsvnh4wg6h7.9bicz2zg2-695lf1uql14i2sjf6pqh1sae2j3k8iptes.57/jzHSQ%ebP5/%e3%9Chd/#VqMzFZrd%ddpe +6wmlp3ipb.cqi.ikf9wdku.arpa/dMq4GciIqW/aL%10jc%d5d%c4v +file:///lT?KC#nXl!iMB3hl +FTP://P9yyxqsh1rz2q-r7gp.h0W9VBZWGP.tk/gvbKQnzs/q1Gb +file:///7KTju7/x2t7Qen83hFitH +iawuqq99.AX/;aTO9WOuOPwl/UAbRoxCcv4 +http://h-juvh.3gtf/spUbB%2aq/#%9C2/LWN& +vj021lv-xpcrzcaibfgk0.ad/dVYoNrxc5/NVH90Y7CCv%4E/vITM8z%C4?P9Y6IZlhse=7w1CwndaDA%79PY+r4Wm+esuV +http://%d3fV6o@knpyxaoxorjk0xthy4c56-idtz3.i91eof5.mt/MM0jI8/mviceY%E9KnCQrwqA/xTTC@R/bgzg%6CfrsDT/uN8jUqZIRPdu9a27A/aNc%f4l1h9UUax#t4W~aw +qc6iz4vjp42.9IZ.l87y.4m79dnm6i.tqhva6e.dumzoy.GG/aNgCtk310/ltjBeHJh5uJx/XMIgU=CSzwD3D/ +http://p7E5E0.hhvqt56.ug/2p6%2Cb~bL/JIlK:TS/KKKGy +file:///3%aexrb7UdZ5GpR4ZIfoxwL/vQV%4a2zQxki/QRji6gHpMGgBaM/d%71A2CTpZv-kF0tD/Ig6roS8m4/~aA64OxN2yNDZ/fLLcgp%d0/He%98%b6JWoLAm/_aKE52/bcn8%06hs~If/IV9oQt%A1K +f5ms.jp/%A1FpERWwTd%BFG/ExC8V5aqx5l2CLJr0mJb5u/DgMvEzAr2U/py9Vg/igr9PzANtw/FFiN1E7 +https://227.086.128.010:64985/MDKuFInA86qto5/_cK=4S%49Ic/SPp76/TlV%0Arlwfx/ +Ftp://171.160.94.43/ALTgS46I4VM/55PbbK/5N%faTSE +Ftp://3zd7z.etw.XN--KPRW13D/4UztCuTbW2z/LL%2cDI/dTYSi9 +t6xfr.wxjz5p2t5.zl8m4.MN/2cbpjk/gsdm/5Mvc-j3rc/16Wb65&c7x +ftp://D02-auxxaeqnv9ve-jlmo3.l10vqu.12jl.2mvjwrsqm.BA/r71QLLNu6oGJjG/HbxrX1Grq8/QR%2agZv4hR +file:///XoCg%EDVf/A3ibJYjU +i44X.a8H-WP.zgmnrjxq.NE/oL42aLwl/h1unIUx2m5mhir/ZjNqL;n +file:///KSPSz0d%734OBRur/v2feKz%7aC/SfV1syp +http://29SB.j6/ojVDhx/%A7e34T8%01L%41BNV?6uRxM%DFd=qg9jmHtW5R&EeR=%f9,mnV.cGVNclEM54f+efsLBpEc+3V7mIJi+Dng2-Qk9&t=VWC!+5gUmI&c4c0sX%51=%03?a3mDKm+4rHPsfb%dc +96.79.198.95/8JJUovS/ +file:///.LxM7EsLzp%d2/sOKzUh/IVX5Mw-PVormR +5r.uL9CQEBDLX.bn/?3z283zb=k&q%d8u%aeOKQs=s2Ixcyjmlg&%52=Fc68M+%F9JLUS+4XTt7ypy%881+knwx%3CF+CUc1ZNLx)K8Ht&Bks=*woVYK?GE&vv=P+b+W%134Flc6+%2e2w5%cfPu%5BXUS+PAAvb+@e/E +http://ol7ctcj1x.Ugk.na/jnDQG9WhW/r1cIpcqfGNMDWto0/DfPQlP +ftp://ico390kww0.it/g&kOEETBwQ0Xnfaz/pSA4oQJ/nU1WwWgH/u9TK%34Z/x5hXHtQAb +HTTP://iEYF-043APHCKLC7PX.qB28RKI5NNRTNJJ41MVKDI53GHXIMLM.BV/QBykbXcYpFg/zgpKZ/pVe2L5cYl0X1%37bmI2D/NIdWj_%EC6VE56mu%64M1sh%bfvNe/ +ftp://vb5vs.P5f5jmxq.sn:10748/gx%54N7WDo@FP%a9/aFd0z2V/6OCUikUdhs/F89CFSH6XHi9Pgt/CzM6Y3s0UZ/u8xukwK;type=d +File:///B5dOvjHOOe/oUJYD5/zgi4jw%54XPx=S4NV8R21Bo3u%d5/Mbd0rcFk/%5cPig5 +FTP://ebibm0spm7.cat/aalird/1v6GldpVgXA/9akBrbVRE/FbH97%67/YfhOfgG/gPiGQb%D6?AodiI#nTfAhiF1 +http://[9396:d59e:191::f7aa]/isqQk3jC/js7gnxrTJLFX/ +HTTP://k5ifny.sa:32595/8XvVVW6Tp37x/IF0IkevEa9jqkw/58g3p/MZB%94sVPjmF7/wZD0BUp?N6P1o=nH:%5840TZNN%37eJ+AJXoM5t7+UhR&%3FCC(O96dC=e2Zqj-YxOMwv +2hr.p5v.6aqidmeffi.flfqfx2znf.cup605.v6ktei.mi6.AQ/ky~LSgBJ/3JZhLix/blFeDQRn +gtf7abvdn9i7cr2e.YE/-1vj3Mw/P%CEXiCFd2a9/vm +http://3rsqw6jt.cv/n5e9YJBevO5c%6e4rW%a8/iKy-raSDu/.j6BTI6/CZR%f7I=Qmfr%dd/#xTHGb9RTWP%c9H31p3 +file:///S0Vmb2/JccbhGwccE=w/sgSbbJh/2OjHXikwMAVk/V1l0~FYdw +file:///5fXz1pJg/G%A6MIr2J/6gwHl%1C%55Xx/xHPZg7hEg5BzqAVzK.gM65L +File:///SxZ0jN1/C7FaB/Q63Jxn/QGzG%CEcYzLq7sWLWF/tD%3c1aukYV +file:///T8krlfICzWYr%e6/xGDI6sWJ/jCXF%87zmV6 +ftp://csanc.mz:27249/Q4ci9eH/uQLFb8ZVrjYbaCS8/sNzv%8DY1Xapc +file:///P7Ub83hzju +HTTP://q6-aoovoq.j-joev5ivayrom1t474xlqxrfro.xn--wgbh1c/WiS76Kh&O/IDDo916%22Vp4/iZYdp?%66lk%24ke=&OGXRBNTxne-Rc1i9b1=b2DcK&Lyuxv=&%5bF= +file:/// +2cc16zv4u31wx-edyjiy.cz/voFy:f8~/9kCAM1/1i8r969t&%53/V;exvHAKlZm5g/J85xEKDBR4yY/@%8dUYyVS%4e%3B%B2m/W5AXsrDE0i/#ivl39=VdW +https://73ll5al.MO:10068/5K%AAf0p/#5deD$x1 +FILE:///a0esBQEE/ +qnta8.f9284.5pvu.af/tHEFme/OOQl%E9GOt/xuKnPxLGVEf%D8#LfL +File:///Vg9klGYqV%f0f9p +[1112:D95A::f9fa:5258:6AD4:3c08]/tAHstaKl7bvDJ/Hm3zObt/qSQiJ1FD/ff6EP/YLR%71gk/Qm%98XlJqp/B5%31GicO +http://[f34d:a4fc:b932::631B:2C2E]/F8CJ0o2L5/hNITi9 +http://fp8bh.zm/R5WFY9BBHOmi3/OyhE6XN/7tZGprtgW#hrKj +mAIE.mXK.qq.3WVWRXC8BASM2NX8GRC-L7O.nz/l%E8SjQ/D8iYe/2Qi&C3RMJppB%88b +https://smj0v/Z8B/%96%A4mzAT/eixQJ/v%D3HDtup +ftp://J-b0a7i1grxbx.gt/MuPMg3Ly/r2iyJo4R4opO1Xj%C6 +vbhx1cl9dgl-asht.lDN0ESMI.RO/A474Sw/mcZtSSvta/ZvpyTJ/OFCSmNJ +file:///pedpH/COpc9b/gtm%d0EBmRz +[B91A:258f:095f:5755:86C9:7989:2DC3:B052]/%ecPvKuwpKpSQ9ANsta/%ac=jmcQsb48Rfo/bWIMfqk/dUQF5ms%d7/6Em91E&z78/uGC9e%53/Cleb%23zyGMVzOe/Rg4teS +Http://[725A:9A3E:2F98::9109:5272]/ijhUpBG-1FS%73%D3 +gmamwxo2.0z8rwjft28enmc.p-5uyn.u6E6AXVBP.ph/gBkpM4WFysjoV/X591ak/tIRMD.t5y766HT%5EX/RSb0a/Nw +https://mxfwd.gg/uwsX4/vnVUhsd/igwlpT%bahLI4;P0 +https://9g5pjef-db.Mq0tfjbmqomp84hi.rf97xmi3834.403gi.TC/sLVqu3UG4/OYh%98SQXVXf7Cp/j%deBNpZoEfAD60RV?wv%90PcN9VQR4g1=H9Q5pv&4C=aZ%a7l&B5hpDGtJ5E=%85NY +Zg2x0pwfg3xo38fwn-5rriv520uccxjuyrxov9cig.fcr1xxh8.cat/hQOVnH-6u03Wc/pqtgVxVOnlza/6I7b3Cv/8L%20%820/2GVQbVTA/FoUjDrsNT +file:///aQa%A8K1SpUF3R/DRHzEQarZC/WpL%4a~dPnH +FILE:///7TVlhAH/kRBTpgn2/HbYFSHYnrazY5Pq +FILE:///wC97%71cxvYq/%16?cNGP/ +file:///u%7BQA%909Et%edmf6X/J%44H591v4iAHpgc/qeuedAPm7Moi/dE5xiL8W/%52DLIO%B1vY4h/A%1DIi3 +Ftp://3ZBZ/YmeJ68Qq/%E8%74X5e%18/QNyU/ +https://R@lyd1.xtccruqswon.GR/oHPO%79jfl1/rFfct/TI4I5pfjn +file://Rcpx7se8pzp4sj8ooxrlfyi.cpj--z.tl/ZQtA5b0%8F%665G/RTr%2BytU/4C.hmyu8/F1hcJ/PiHi4c%16VEN/66dIi +ftp://wDIXDXTT.vg/eCSU%14/7My9QiLZjNwKRh1/pd16vIBrmG/sXqjHnSFyE%03HA65WCMRaJGunYbT +http://[fcf7:4e45:3CD7:4B2B::]/ZbLeVZi/mjJ6/LMTBU/V4%e0nMMUsY#'aLkxlcFi5 +ftp://k2.jALPBG.XN--MGBERP4A5D4AR/NyVb%E0rdacdy/KQxWB%0DFc/Ruh62/qApiRp%fcc7NqG5P/FQd6Yw8Hi +ftp://sjfzvidjcj.ae:55965/r7feW9uA/33qU0/BKlBWEwBw/w3nSd +ftp://2k5.lfssxj9iatcd3056j-rq0/Bq8-ZY8byN/Skg1r%290%40%23/X51QAJ7U/H7Ir4nHaQ8?QOW +http://ip0176.JM/LthE/E04n2pcGJV?P8=dCpb%e3q +ftp://072.017.130.122:58513/6P9dqEIAxnvathxK/GHoR0X%5F%8fU/%ffANo7hT%dcKY%dc%B3%75pXy +[3157:621E::]/CmIefnv.v91v/I%E6OmZLafDS/a7JoSqx80BC9/iSPk18UXH/g6xdyYNSlT8/o34wEX?MLP%993E=%1Fao&nRDo=6svN8+d%4Bq%30jky%75psOKb+h +FTP://zbtd.0doxocs/sDrr5d5i/%6cJnyS/5K8mb;TYPE=D +http://1vkic.cmd-efq.st/%937ikPpb/eZh_3dIzXbtNFVxL9nQ1/7bVwDiamdDs;8zgSZ +file:///YTllDP/IhzDW/%00H9e1IWG4%42%93bP/UCdd~o +ftp://ksd4b3w04c5nk5aasoepqdby-9w.sl/pNe8wJ2LkrJZ/XJSanvU/ +http://oPYQ.nd-egq1mkgtuwt4ei1ax.GQ/JRpv +ftp://171.235.253.31/gop3Q%bcUoW1/38aPN? +File:///XoULHUnTn/zYp/#SlAGu +0kx1j6uf.QA/lhgydNvB/jU%B4oWUd%842;n/zo%63SywbGAgc/c2LB/wV8n/ +FILE:///kcboy@/9goeE7Q +tD6HUNLHK3.u-06.FR/WwW%7f/1HS0pUTG +Http://c82m23a-5oprsol87jurs142tzex3957m9nrufva0sc6gdo3pajic8po.H5m3wt.1RU:11878/Odij%A65n/Am~mzHC/#ArdWk8 +Http://cd1.es/w~Uc%455aE_/wVJKfr0/X3vnA/ImG6Z +http://5ect9i8665yca.FJ/ylKD5bCODpHQ/lbunoK/%98004LI_w/HwTFV/4@O9_DiwGb0Ig9#B8z%90jjivO +file:///IDE/mEZee3/1B5W9drK +http://wka3.GM/%95yhyVy9#FFld%0CZGoiP +file:///nAL4tAgn/UK?mpt4IE/.2JW4Ej%28uiG/LulMqnbE5 +ftp://973k1fnytm6y9hx87p42k.1whc75.PS:59063/nxryc0E/ooGHQtw3ik5/6fU4vZmZNZ10If#iFXkFxd +File:///YTIL%AADxyn/exqQCc/HrBwtj3/DIOgKT4YUu +http://3ucol3f.lr77xtr.LK/FNsRpDDW=/76bEzBTI/q30mQZ/ +9sb.7mct69t.ar/WpXcM8498S4F#k@L:'L +ftp://3qn.XN--P1AI/PdBsWGhCy/QSZ%06xb6atX%7eXtqSy +file:///t%48r6pvw/gTme80:slEt/ciBvu19 +File:///8rjryYe +https://[887d:5086:CAA6::DA5B:192.032.127.177]/ +File:///v%2CCgt3%32kh5ZJx/~kf8WDLeR3XmmY6ap/.DEZNJ-ylM +file:///KNINXVO67tBU/VWJdbMVH%a7uqRO9%ad/55Wlt5O41e?/YGhF4Fm +file:///zYYquoqz/%240zKPi/@k9J&epm2dka +7JUE8WA7CLBX6ETD8KUU16AFZHHS234NORX.tep69aqao2.int/iZjrUNXtQfBaF/Z%A87tU/XfvTnCVEY%00/FUyeI05%f4#?hZ +file:///1?Msuc%BD1/G1%33Ppp/F2Sv%0EJIBnPzEUu32/81nqxxTk1HPO/7pyYlewH7gyw +HTTPS://hdtgt38onqh18-617otg7tn-ut6f49po3gaajt47.m4O26.rwko060q21o.Am497x0kow-u.TN/nZX955o/JtBhKlvv3r +ftp://28.118.125.16/3j69z80kruR/TXIM6gQFdZTCI/T52CULszlqMQ#%C3OT__%57 +ftp://y8K1P5I8E/c2Xa7CmI%d6TWC +225.022.162.113/ZF58s/%CE%56BA5rQPOLU/AUNP8rG/w8SHG%d0FVsZX8dC +X6eygmy.1a-mtt.ki/WC9%a6/GH9mNozOi +94h6rdisa-eh.CH:8242/I8Ik5%42881r/EsVYPHYT/Jw7%3A2%2778ggZ8u%60 +Http://89.pa/%65ssgG1L:fKtE/PrmY6WoXW/oYH2AfHjf/uVaFyqn%ee0o%4fAh3 +file:///KwM8U1%EBR6J/K.asJbs0/i1vCxd/ZthOZxt0IKQEH/#x:Q8vtaIw +http://rP6.Ewrowee5k83.COM/5CId/KVp%FE +ftp://l8AAQ4XL0X0HO6MF7.9d.tw/%98Vb%117Uy4/KyUMl9 +Q293qtnuw.vi/6fi1J47ebQ/d2EC4A5OM%FF9_tUNs/dk=?YyGXS=&El=i&Go%cb=fb8&7W95=Cg49VW7B+B3dDs+f'fhi2+6QLTS%bbuJ+IN8+1PE7QyfjCX7tY%7D+cGm4+JkozC,0y+SEO%ac&V1pkpm0GF=0%46pvcEyU2G+2%F5kBuG +2pu1.mv/3uiG%445F~s/%5CTa0YXuNMsqV/AwE3d +file:///jIjyqNR/CBgOXsf%8fYiqCR/ +Voiuuc65jm4ven-9li9.mii5.0h5xt6.KE/qachnQB/nsC%4ai/juYvC3yTiCp%06S8I/LLVvQY#p1jmTyx@W +Ftp://ydhhq20m.MY/%ADNIfcLl66t1fl/v4%a60h/N6My%9AKXUvToMFxY/ +14.21M1I.NU/iqlGVazIWPCvV/oelkORYd3Iwsdy%0D/LcdN7U +file:/// +https://07zje.j84g-9lx-673h.vwr.km/h2Dv%1BFR%9d/NV05FON%c9/klLPUVUcp/LRlEGREG3H +[836e:5fb9:0cda::D9A5]/n2j/Kjy0BzJ7Cj/GoW1ksyHG%B5A8tw;v/hIg4F;R%2Ax8nL/d1aHG5Vsb/VNMIiMx +[E69:a743:5C18:C43F:780d:FDD0:EBC8:2ce9]/uAWRrcx +ftp://B3fvr.l5GW6REKV.GI/0qT%dbwWVXZ/3kdb0/kBQuFu/R@9WXH0 +Ftp://a4gdplaw.TP/zyf2c37ZfY/QaiwZ3l/CUi9.ado/ +8L.vg/LjRJZ/z7/Fkg9dwmTDSp +T7wos.u6I.cJP-5HQQCA.9dutej.SG/6McEZ0 +jJ0D1X6C5CCNWYGOCI4NNFC5A5NYJZTCW65DHS.d1yxpq.TC/EQ%DBYuIdBv +File:///YGxWV18/%B2bnYvE/COmzr%B0YLEB8/%75L%c5ym2Hw +HTTP://nzhfr.Mlrs1k026k.KN/~bhI#qqgVS5YR +https://z9z6ip.INT/1%1dXkN1P/KI52I/yo%FD13SoZz0?:z'X3xwoS=1y&lmDOOEVzwHn2j=xfbMj%67cy#bKedfyI1 +FTP://aysc5.8i8kj7.cu/Ule%55%F0l/HV%7FNXdQfhjf0/ +file:///UZg7IFvJd/U%6cAH%59cS/dQjA9gM3RIJ/cW7Kuo/lBGa1%B3Hjf2aN&/ +file:///TPkfDWADgMp/9cr6zwO%38cZPtrql/w3GqL/nrvKR6Kq91#s5F4qQMjYx9 +http://1co-4k.zzzqb.XN--KGBECHTV/WRGpnKFny/eBiU%BDapp/0cb5bJ5%24J8a#N*cE%e4BmH3Jse?2 +n7q2q9b.3-ve593.eb368oe.si/xsA7jCLE%5CRj/gEfwCC/W21RJFHtG7td/fSZIiv/6mJkJcnid/xFjV%DF8pXhf:H/vh4Z3%efgdOJkeT6sTC/wUOxqbX +ftp://[7D66::]/m:wnkiFBKJR/7c8a3te/mQqS6ZDWbfTXtZ9 +FILE:///%41PSndZFnAZNuF35izYcj9Jmt/aoJ8K6/nGtfymyBi/ +008.245.185.106/0Aq3gb85/6TZk7/PVTk%b1G80 +ftp://90.188.10.180/fgsPUVSAEgMuLwrpxg/8QEjGiNEHN/pxjBgdVV/bkiEKy +5yxzap84dz3lccndx3xoj0zcwepy9ujq4bk-ckyo63.si/%E89rzFXG/htVDvVdD11S/SLLVce1/%5bgcDSkD +file:///Mr +dm83f2l.vvlpnpob.7si.cr/RFT%18uMgARxsP/8%61%7cO/eZtPUg%e5FavR0XRe9wZZ?c94ub=63r5 +file:///cdgSAblie +http://[5b83::58CE:d882:36F7:8b56:11D4:f42f]/9mbBwV%C4/AI2q64JsNqHO?tZ3=nATs%3CQ&lbSzuIb=/IJtfPRbcu +ftp://gOD0KB6HB8JDGK56.l-V4OW.sj/KqqiLzCu%6a3jexLbLB/%6dBHZb%29z72YF/ +http://s65E1E.TR/5sj4rIdUt%CF4F +ftp://[0f52:d55d:5574:ee10::dc96]/dPEbp7/PG0Nfo/MVx3/%5Fzz8%CFXb +bdctmj.vzaax2fe.j8S2.ojfq-b1m454.g7I.uy/o0%28WV/Bv9nDwD +https://k233JLHW6N.cCA13HZAXR.laiu78y.fleptcf.brva6c.osod.GS/OB5inpGTj=gGI/YNi3_gNnIg/J8UObWz6z +ftp://enokmi/r3%690T0H5mfdRq +http://s59w.cg/nJoM7yv/Z2T9Xof0hNGhl/N0%6b5Sbrbtjj/ +ftp://qytw0h.hkdt2rm.gd/3a1WJDglP%cfZ +Q-2pgsvifg.yr2ix-c4avrjwva.kn/_zD8ad/%8AVwQwOG/JMC314h/rO0qj%88?w0XEY=JUigA33U&f2=n3tXrMH74ApC&fx%BE0=b%d5mgX%7F&1gjjJpHG=vLHCZ0Z8&sYQBW%FFAIs='&zD=GTnVzkf8Yn%a3L&Xm%b9F%32EcwWl8=GUq +File:///spqq/8F2dG +1Z73HWVULIKOO5WJ.rEJGR9.nsscy.gf/rHEt;i5T/%50ZjYYJ3M%4dR/WlW0C48ocnb/NRA~0M# +078.104.235.053/8KqfxznOtxC/ycYiTG3%11zP2%A1/hhbuX9Z%d403wES6/P0gg5%94 +FTP://58vs5.g0.tHI.gq/N4HSp%95jtMMNr/bpH36W/cC3oAe1C/Sp7gxd/XO7JSqE +http://e8CYICG-3GD1Z7A0V121.Ya0j.Wy.CM/BLyz1kmpRF/nb6u%52/GpXGTv19#9?bwz +File:///Mze0xLtXpPFW&x/_%0aYP7o4Fm/5&809/fsvOYyn~zvJbT +file://V-jo70zmqrppoeyva0hm6x10y.UK/#3O9f0OYdx +file:///K4BV8xTq%ccORyFI/8PzAVSZeBNFX%adT +071.247.240.193/%94VOUi%ac +27r2mghslc2b.Dwbpiqi8q.gTYSL3Z.am/RU80/KFcctLv/R8tG8d51EaD&pno5r7pDR#GWY +mdfr2j.1FZFG4.VN/Xn6l%6dLWufM/I4FHTzlnWx%7BoI/ueeKx%03mfSA/%9a3PMEt.iSdeTVFgSnLi%C84m/6dh +http://H4jk06c6mtprgjywnc40mjri05a.VA/7B%C0h%4fCjj80/TrN5HugANCZu/eMVdn4en/QUSLGhe?7yjqzvzv2r%b0I=&p%C32*HvmS%39g=wb8u&lTvA=FCGNF46U+?Ak.vpCAV%ceiK0f +file:///cVjI9Ue/siOD/jynyp9%3FmBx +http://u8ic-x8o.UY/G9pZcTp/JI58N +file:///cCOIlZV8ms/Y%e97nfvexWwxq%00/iPxdyY/snHA2QZT%10 +ftp://53.151.134.240/uZqGXLUIu-J/=%0C2pO/PvL0%19MpQBv/ +FILE:///Kywof5D5q/0TRS/zayrkrnENB +file:///EYS2nDf%9671qsm34OZeB%e5lUA/rYBDn0DKs0/ +mpuwl0.BA/MkvAvc?j%11K4=9gE%613&qOOEP0t=g7EXs +g6tylc0.daeczh.4q.XN--CLCHC0EA0B2G2A9GCD/1SbCR9cX1%3D/YfP8CpLKn5KzTL8/Kj11z%B7OuqJU;qM4P +file:///TJa%86AczeCmM5QMhi/Wox~Ajl/WxUF%5eSA:y%0fD%E21/x%cca%d3Qgx/8iWJ5-h%26/fCK%01nQNrK8#ygTTB +file:///~%303cUUVYTEaQU5%5DXbogiPKb/favR2rETEh/9TXM%15u/nYCOZpZgL +file:///mJM%a1/jv5%53QDqE/bFMu0CBp +[a0e6::]/YR5lwpHlG5BPjr2XT/Pq%e4kWAmZ/ucI10P1 +File:///8YorWt/#ToazT-v +http://2igfcm3qy.wlcgdxv-xat059qnx15a7qp-p-p5oph1c8.GP/hS4Aqy7SmODbaOH +3s81j.TJ/pS9Jzw8:NWryq/%00Kh1/Y7Rfoo7haw?pYq7Efg= +HTTP://k59s6i5o.my/v9%93qqGOWZ6RN/cdz6V4ly7nM9A/F4EhM0N2%53H/d%C4wWTDspWU/zfpMcIDWp#oO%6fSILRH +lvh-kt.TN/xZghTR/yDiD0a/P5D2%37rFa?rseH*%33ubfv3=%36ntM9MP,+97RbF5&F3Ia3L=%3djrAi%f7E2%65iQ+Uc43&y;Ikw=vdfmJW&sE_%F6xpm=XFIfCsT&k@ctNa=%47KDJKEw&d=am6K&%25!BjLNa=iqs.l +http://Lhe7w4f06qt8tif2af1k6s552hlbk.mfce.cc/DEqiQf/GLpkeKZAxhSO4m +Zy-iit.Cth-tuvx4.au/dl6DMUqP/wAeKXt6 +File:///35GJ%C8m6ubg/kpI4iEEx +dbe.gkg.EDU/cJ%fbQ3k7pwp5/arlH%DCD +Ftp://e8ni0.5etxvrjvn491/tP8r:UC/faEdqs4P/v4zJax4 +https://4PI.gg/fFtQoVp/b6Jf55/YEc2l7dE%CA +http://gpu16lz.LS/9e%daJrwQfHEpFvsZ3jx/c4STIJ/CmvEGAUx9f/ +file://ij9anjtok86ro.uN-BGDQ855IB.sDXAQR.5kr8kz.3J3M8XRM.18r3s0g-6.4rjsmwue0lwao0og17d-5-1.F1h3qgkul29yw2t4p4se5clomncxhmoy.g6c9tbz7.pa/5LMtmbl/1tfIF/pBOV7Hc +HTTPS://bF2RA.kw/1TA9pTTBg/nM/VSRo%85Kt?%62mxNfo=HDowgwkM3&9oPOLH2=yKOxIe+YNtt +5.Piba4ac.JE/55M1H/AZXdj +m-k6-ej7x.XN--J6W193G/suVrNQSIj9/TmRhHbe/o&0dbqR/ +ftp://242.228.138.8/o%CC_QjILS%17aYH/%caw8CcVZyPRZ/ +hGE9YH3D6.SD/m%1EpDJrzO/Tf2Xxqq8L/YJT7BTEY%661PvcMgOr/29ZbuJuWl6q/ +Ftp://mez27g2tpmk.MC/%B8AHk%95etDns%46/gXbsCn%6C-/s8_Jmy/DhmfT~Di6KD +file:///NJvRsBjo/IECCGBvb +http://8-6wji0x.tCVT41X.k1PS.15p.SH/e%daVn5b%f6/GpIJ%65e6/VpeXUmg#FRgJm0E +ftp://nx4kcydiztae7fr0y-2kfppteds.gq06u.cr/RITrTqm/VqRIYR/6psgA0%dfpfg/gcLyL1/xa%72QCL;type=i +file:///M0WBSuI2qsMuKSfOzj5S/2N7x7nZg/BLtq%72VxjcR/5%EAn1%c6TYYPGe/Lb5Mtu +http://94MNP6XNH.0mgqklz3t9g2xl89x81-a3hifmff89nahy62jeyhuhe8lhkuafizl.GQ/Ajpa4Z1D0o/aVv748s/NAIWCkWCD2hj/7MZS5c79DmL4/ieQ%21gw?oEPqIN=Pm9nPx54%c1&j1y=C +ftp://rKI.COOP/v0pdu1zj/ir2UM4X/7k04jhOKPVN/7ua%E5y8p/bl~yS +d-IJA.PS/drbtmJGFEbR0OzDD/wMV2C/krWmMUV85/0AFhGe9 +[D1BF:D02E:140C:4B9F:c86e:9fdf:077.173.119.180]/A07Ox%86Oae/yhjXUMut +http://A.bi/J1GPah/OT741dJ/Jh3Z0xb3 +ftp://6VMV.t680F6.ijsru3.bm/vlJmkK/go28Jr/qUtmHmqhj/ykeAVxYoe +HTTPS://oi%32Yp.@a4mk0.Teyu0lojs62d8l96qiym2v477ixatleasrgft4ttpbfel9r.BW +x37MULG.514yrp5.Vrd68eeufzt.VA/fFMWutSw0d/Gr%BFun3/JH6%DESQV8f#gn+NM2 +http://2.88.82.235/6bhV%BFGDy%ABd/g84ly25/;4AeID# +https://a860jcplfoodo0yq401cdf9.1ZE2P/NLArIzMZ%8B/6UiHWMMGS79/?4N=4U%1dM0qA31&faSM=0q2RaEJu5QT+vzNMp+XR%7dI4dQ+x+%0BawIYp%dbcBiOZ*Sc +ftp://lb.NP:46239/xwyAL/m74%9fqj4gttFLg/ +s086j1-9.Nowi9s.fm/16zr3s/mvzfyWbB5/&1mzA:X-3 +eigz5dhw.jynsrju0t044lcc.3c3bfm.int/%ffoZ_kP%5cO1ls76B/pQbPDb4s%4E6i/bqqrZ%b7j0uhrgIHd/eBdSEwfGrX/PSmYMzg0%6F?Qr%92y11b3=&L;5CV=zJao%31Tmm +65-ihklk4j6m.f3CFA.7kj.qa9rcww7uefzkpxbf87ni28b4a1i9rjqy9a.5texnqlc9.cu/p%CDK%b1%449LH/IiLqpww/HmACJI/r46TA4 +133.38.197.20/pbgvKM6W%BCEBN/Cvcu0&#idQDycc +https://4I2GL/cGtyrs/%A8m5%3fekPsTRWlB2?rn=63P,EJu+SQ1W+uPySU8pvA+%f2+m+CwuUokAVfo+3nzWcQ+S+iXvEuhcv+d$h%7fy%cfMB +HTTP://a0br.o0gvxf.kp/zZkWq5hfxy/q0x-g0In#bd%1anKx27 +ftp://[1327::117.246.244.220]/%91y4%09/ +ktefq.GB/uTzbgV/9nYvIs%8412/ynKYs/YwBOWmj +File:///08bP/cw3Ydr5Cyow%273h:O3Bcok/0hIP@/ +[018E:4459:9892:3770:3826:71D8::]/UcHNufii29UtPW%56WQ1%20V/ybjTB/oUWWQ?yUg1%cb4A=wk+hOic7f7Sw +ftp://1o2z/4UWsX/uSzHOw3JTrqy/TqZhkQk%62gZ/FpK/ +Http://kZYPZSRN.1m.UA/QN9n3Nw8kPAgkCB/SzdVcxryKou7mMG#p6at77 +http://se9g.s7-5qnlmsi0npbr8ouxuey3y66swspkl.y4.st/xfP7%066uXWuOu/clIFhy +ftp://D4j9grnngs4a61b.im/f35gw%53rTeI5/#Ff7A0YMs9RG8t +https://zujspr.cr/zy14P7FG3/Oxznfe/P2zpT%38S%FFVfP95Lh/nJJgzX/kcVuHCzV?Y5vMC=3X4n%9dMqeGjM+OjgETPdf%23b1+6H%47F+waIQ&,ZxQh4G%8AZv=ic+fQWQN+0y%523JTe0Ti#OA0m6iC +http://141.171.118.17/VLnEb4Y +https://sla.aowts.MQ/KbP3AV@wXFSgz/TauvS9f2/zvGpvN.e8a2Kw1ho?jYRUP=L_IAzw&cj0ux=xz&lrA%8bS56%A9=SX7NjQ +file:/// +FTP://h6.MG/XPmpsZk1h%0B +http://Dh4mlm:8000/k9TYvw/EWxlz4%97lBf9oK57N=Z#Pm63s +https://8-lno5.KM/Uco2E%dbYPx~/MzKrkZ/rDpXB7OWtD?Wb1W=bKJazR+yRD6c+qwe+H3bo2ACXXzkVX+PdfgOJ1Sqm40+X%3D)%AEgm8I9&inwrA=%FCe+%f9Xo4S+JrcmiNbPwa7P94J&fMCr;NellUf8=K&lhgC1k=%32CPUA6&%dexj,m=l +http://bske9znh5z.mq/rF739Qhneaet/NTfzZn +http://B7z94v/ +FTP://p9s.hh313n.6k3.DO/xaRRXPre +File:///Sn7Qzu4cDoJY/6AdR%8ccbeeFmXy/KRXtibcbXtTaLZt-bb/PISQN%777zoI +FILE:///IfZ6yalAm/BoIjbMXLnlo +file:///kFKgAORyDOV +file:///f0l1v94Rmms/zIVjJg%338Fy/5tMPO618wd +FILE:///fpbiT?6/%0B7dUkWR5r%AErqLW/v2n%bet%b3wV8Yzi80OJ.SguK/vBMyQaKiH8/Wy3l7r/D%B8Vp%51GgmqIBUHA/9gn1:46Xok/NcNIZ/FIK%359u%57/%35NvYIQIN/ +FTP://22A1D0QMF.cmcve.CC/cvkZF/H%4EkZr%39EjtfIO/LPx46D%5AgqR9 +File:///0Lld-DX/&Qmx07f/Zp%21ldGQq +http://rlch.COOP/%bcKE55hwH6/CKHB%2Ak/Qzsn2Rn1p3RUc3H +http://h6d5js.edu/IO%34xTQYL/OtYPRaY5/e0ILXZt/jNP2%07otUg/vGyq3xN/DC8P4ckE/JGfiUR5EfFk/vSlxbi5dKL8d/6JwRI +FTP://Sho0e4ay9e.XN--KGBECHTV:41333/6_5S71YpwTC +file:///HrmxzTn/sozw%db8Jz/x0czCVWgklrbV1Kf@IK/Um%78PuxjtjI/ +FTP://9m4b5lf0.Y5dnwnduzx9wha22ayztin-t7hng5b62e07rzsv55325xgdrzwx.gov/pmG%45dhnQZ +ftp://t2ik0rgw.krjz72-l.xn--mgbaam7a8h/I%19KxMhY/FSau72W7/WkW/vYKyDkhzNiu&Bput +FTP://[221d::]/BOKtvhabe/b%78z/piR8RBZb +Http://5zwdz3h27.q9l27mto-5v0i3i1yu8oyl.TN/wk91N/X32rxh/cmM%01iQPnCulto/ +FTP://gWUFGOXE8EW.1g9vse.xn--wgbh1c/ncQo%42ihY/Tyk216/;type=d#J4A9HEH +FTP://5wudd.ga:36706/W5a2PQ/%98Oin@%D5hjD/POMMY0b/HhPA4HL;type=i +file:///E01b%6ew/8QW%66%16Un/PWDGTFrQUHJ#dk&o~V40 +ftp://p78orte1aiif9.zk-l-n5drgvx2kj6i9e034ck587-utyikjhal.qE5RJ031K2FAN-35.v71jyg8l/wgwpnw5/1WPLlSc8/3RZzlIEZMlC8/ytaOFdSuPKO%72T +tri9.Fyhn.SU/YlvVjSi3M/ylMdK88iRo%d8/cuHyS5Am1oeQ/XM40zgdj/q%9CLKm9Q/IOwvLrlTi?nDUET=e95%a3qf&dSTE=X5aY&pWtb=&AS48RI=71Z91stUL8Oc&z1%B6=fVvMzZUyI+Niwre%5FXyVRF&QtAo=5 +Ftp://Kroc.Ls4-tkd7.sg:58219/9tq-FJyL?Qb/e0alokGZ2/MKTHP3Wsw +pmg4ty.m59480p2f69.fV.COM/X98xZ.E/cTleUeS/9P6zeVQjfd30/eVVvE4/Zyxm1SSqe9u/WP%a5hS +6P.BD/du%F8CoA/W0jyU5x6HXyVB/EOpU%0BP%BET/TBlhd%772ObORj/PNPXkVHaEY +http://5BCY.X3.SG/N~63s98IV2/?KuYCn%3160U5h:%BCU%DD='6uk3OyUbosbcu+l7U89Ozt12K+P/VK4+GhwEZ+D7Z5ByEYxG&8=#aa7R7i~K +https://38yyrnu.UY/8Kl08k%157n9p/TEeDKN/qQnmQFd +http://5PXM48/G%9fUxcBwBjXI0/1UJen/MF%30I6/eOsMzFMiM +Http://s8AL.rc94r4iftx7qeg4cbjjv5.za/mYk9UAydyn4q@w/T7K/dd%8aIXPp +Http://130.165.027.114/o8bwef/X%70neu3uGKY/NU%f8xTKW0;hTKK/V;%edBnJYWG0MI/ZlDMtVPK7?k1N:WnR=%3DNffenC%67+sf(z0U!mZFe+6YqpF0Ei4l&kea=&pv=0FrYO&%69j0HYlx=HVIq&sWgaQHZnyxp;=%97SOx&QbgYd=72tO&ugOWlP=TaHT&Zg5o=c,2tzpy&Xr=Nltupn6k&nxkPS%10oJY%74jL8=5c%58%77#E92Lme88eh +sat8a.cc/n:G5Bs4/%92Qx7YH/%933F68jWsdw/mgMLj/b9uFtDS/fCBe=77/LYHeH +file:///8NiXGOZYq +ftp://[14A4::]/6gQ%83ppX66/Fm%0fhsGDdq86c52B2AReDTW/CGafhb/4LAIXfs6vOHd/DHtw5%A1 +http://astx.i8o5jdypn1ly.LC +Ftp://7j.N@Ptavog8.gh/%FDJUUJB/nrC6%4as/AM2BxLCU:fGwm +file:///LD3OAKQVR +http://jVVR4GZ.BG/XELY1/P=cusbVv5o +HTTP://4fx.3kt642w.GF/k4Nruf/hyO_xzJ%982n/BhxTVE5LR/VT7cIG%66726zz/YQCAvC/eTYPd%2Af%18tPt6Y +ftp://1py.jhl5-h.53.39PN2C.xN.ps/Q6kM9aOm7 +1MRTJ51.mh/OT +file:///RlgHP4tRuBYzCPY/ +http://[8F09:703a:5b45:F653:AB26::]/C51LFNl/tS8p/yG8y53@Wb?eBrhL=%f0Rj:Vl#%11Z +FILE:///TmzdtWFH/1WP2R%b3nSKls +http://5o0a8epm-rx6n67ta82256jav-nk4.lb/HbOqUc/TIVeqJ7Ohp/BjDwRDKJ/JZO +File:///AvnO.7k/P0YrByEN2yEm9%1646/QKj7fR2/%1F0JYW0y/qscsiKGeGfPA/1rkuJyne%12/ +File:///1Hm4/bcNXO0cG%45XJo4RK4/SQGEP5/ELAGqI +file://4jc3bg.zs/WfjCr2aeWME/Nv4A4B/invk2d1h +Vj1.Ngq.LI/FR2%b7RU_z%a1Tf2vy/rysXmZ0/ +Ftp://wkws.yi8srfw.tm/sWvr8nVIPq3lD%16r71KGXZx/zTdcV/N%02%6ER5gChmS/uxEJA26q +Https://cf3-0aw-g8zmm-k.AO/mYGm9AqQW%E4q?6u=&rX= +8vv-rhcodmrr42jd6zmrnl7xa.F1igvm2.RO?rQOIRt=Q&Z8=1WyCZjZv83+lpB%7a +Http://009.130.112.154:65403/z6iLA6cr/%3edXQdq1/yHKzFjDA3nAKTr/Ot4A3f%4DIzccRDaDQcC +hwpmi.upmzdzzhsrz.e469.ee/SXdNeY7NHR6/Vr6%FDr +http://[C7E7:57e7:b08c:9FCD:4B77:4de1:229.020.164.172]/LnIzKLn/StXMmto +Http://2-6SB2KV8V8MV290SIC08D9J7-IRM9FTPC8ZZ.hwo9el74qqv1.zm/tr9K2BSFkbU-A8wJR/CGEL_82/cnMuBB%a3j34 +file:///fUtCm%b6qNK/lltu?NvBAhM/sJ8pOm:/jJ18OTM6U%f5v%3f/ +http://76OXC.pn.GA:15181/OPErhH1cHtl1ba/eIPkR6%1EG/8fVd02k/Ky%b0D5izq4k +ftp://154.108.127.0/vGpMboeazp05/usfmVeitt0pf3o/Ue4OMVT/sJ9BAYSLje +ftp://ivbv0.zCR-0J.lku/6m26/7tElM/%b2%0BI.Ft5AjDVp/oWyMVmsG/3%8E1FE8Y/0zdIl/m3otUSQeI7 +file:///0Y7NWf4qwhw9wXP/6ll5YWM55W%9050rPeqawX%F9/HleEmM +5LUX-O.q-33d.tn/smzXQJn3H/81mg%4de_/jb%97hT +http://84W32/CCKpkt/c0bqCnoQ5Y +ftp://nyqaz.MT/0OfOsU7S1H9BM/OjhdD/izbR4txUY +8wo2j2c1z9s.ef2ki0mlvvnjm5vfyu.t5a-yb41uykgo5kn1qxzffhz667dty8mytg6ir7os9hoxwm2.mw/%39FEVmD/%a4qRT5W5qW.yR/8XB9NHyB/ +http://rbf6ezzlhpe.hk/%0DK8/IXXJAsC?mV8vvDI8K=6t9%6EG1Dt+M7N+D5n@Vd79n%d8E+gj+ofnZ%16loobN+f3-S+e,IH&lnh= +wu3w.0J5.lv/m9IZaWkw5/xY2%54pNYS9HL/Nhfns/e%bat2cKM/cUXgRzm2Srdt/2s2u/9h8zjwh929Bnp +https://209.73.217.17/dJvsqDH/RH6Ok_eSc8wO5/BOJws6/9f0DvXJ4/?%ea'Fx=P&6h3zz3eGCtK=4MF76p7Em +jfajtdt5k6gu11la2jbih.MA/zcaTNUL/3q%31eLT%bc3S/L6v2rt/WtbA0%45~TIvPD +ftp://Defi-z.gr:16993/=7IIaMpVy3OLs/QtQD7qF5Vr/=RVbNDH8/y3oUHmX.v/Td%dcbiGlArA%720 +ftp://[544f:e60a::8772:D633:DA1F:081.021.019.189]:62615/%CB6Wy1K/X%0EcoPQ/IgnCMLPynfx/fdFHb +ftp://1INQM6.4y.RO/ +Http://T778hd416.g9r96v.bs:64804/GbWp%47K/zgTKs/cBHzmYZ=AI23VY +HTTPS://6hp3j2y2tuakzv1rnq9vnvn1w0j6roo3if:58975/vH8BLTu3hzkk +ftp://Ye1dfbl0eae8lqiiqaojj.JO/8EjAq0TzD:/Bz3Pm2qyWo/ZX58A2/yjn%9F3xJZjsVhw +66.242.9.138/CYHK1bGpZ/5yyVD%cbC +nHZMBEJWO.ST/ABXauli3wuJ/WUxhKaZJg +ftp://[8463:c210::b5d1]:34094/8%AC7Fc/Qh6%62yFExJbdaB/0cAZ3iSKlk8sU;TYPE=D +http://vmlyl0efotpfd-tew59kcpsi2u7qd/UbXy1Cc/L%0cwnzmdjz/?iy=N16BnPMu1+eYFk%f6CB3z+s4Re5v8+MFTU+k+JDiN_+F1k&C%D0k=F78u+euh%1E1uzTGQio&bL_2omAu=iEEs+goL%b8g6+Y%3FBcek%102&WCz=e!Fg+MUif8Yba0k+uX+A91YO,Um+%70i%818Fpz2&6fP=HlD+%91pW+%f2HR6zs8zrE10ZPH+bWA.BB6k+Df3w:X85xDnDjSiPY+AyDpuSl4VEVTJzA3g&OtUR6= +http://bCNNCLT.gxa2sbn/lAFakp +D19f.oD5.bb/xUG6W8VxTcjMG/jYMuWlVMygf/UtIwE13c/%a9wzpO%AFxQ9 +q8HY2P.r5T.AU/nc0Iq%28QAF/#yOD3%b3UA%d79e%1EmJp3 +dPY3X09.AC/STpa%97U%b53yKP4Te/%71KZZvIC#nA1W2z +ftp://3gb.xgjm/wF%ado0cM/u%0DmCW8L/d9Ss%61dKQ +6m.56xkyt.32O.com/ToEAr%BEdi/xBpPU2NqC/74sgdq%BD9/WSrx5/5ldupD%47J/9boeZj +ftp://s0y6r7hg7.XN--KGBECHTV/xQizIlOK9/uxho7%bd/RvxbFGQ4o/O%42UeWF?/GAZ5E8b2/eRaq/l:-1ASwSpw/2FkowF%12Ss/vtCq9dysEc%1ee/ +[d18d:1707::]/NGZMInsLF8/kgC3y/F66qc1qt6OWfeS/DyngWA +file:///%55A4VpGsup +file:///WNEw%bfTWDLF/s%A9oZoWUo +Ftp://2tdk.Ube6velthhhx8o.GM/bUH4XycSEKkTE +ftp://7kxk4ujzz.kp:32621/hbop0%25sK/rw7RBE0lTN/tX5BLF +FILE:///IQExpA4kDvUfTkH6Bg/MeVJ4aIUbXCJf +file:///SIE0AkJFq/ZPJLyYK/6hA3x1InlGm1 +http://047.014.184.200/Z_QdOwjzfBue4Nt/aEn/xuEQD/cXlnoxHIK%7d8h/1%eegEk7E0/8Ejku@r1Z/UZ4gG/%484zOJsP%1b/Lc1okbWRzN5UJ +Http://w9ys35.wb55p6l.hxl.rs/Y97%58Lp8JjLZw/5L +FILE://155.24.106.255/3VEZIT7 +d1y8zvhwq40bi3tom.hPCZ.gJ-286X.TG/ayWKrgAvF6tn/L4SgquZT6C/1DmNe/CI69rJ/%f6QrzZGkSQ +lda5l5wc.XN--KPRY57D/pr80SSZ/eNM1%D50lp/Rc%8EimOET +l13t2t.sk/O%2BmRkw/@0AgGL@NX/wgt&aggDcp#0IYe'C +FILE://a6ys9a4.xj.BY/%99BGXp/F=yJtxc71/gvXuHuB9k +212.072.006.032/6kV8ce%2e/%e7lzm-HB%4artP/zg6tWMW7RIG?U7=HAXw$D3sM%7DyDJ&Gt= +http://[ea5::]/eIdv5xl/5qhxlOvzw%018f/N3RQQKCz/WzUnsSg8KA3/7ohHZCp +file:///g_T81EaNw2nJB/1yUUT +http://2XXY0MZ.fwa.791ck-2gx.bd/uO6FW?ZS5jE:=m: +https://[8368:F154::f99f]/Y3h8FgzTYYpzn/zHFhQECC/CGtX/8v_~jn3Kn diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 4e37da4544..382d967eac 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -59,6 +59,8 @@
+ + @@ -143,6 +145,16 @@ + + + + + + + + + + "; + string gold = "\nthis is some text\n here is a link and " + "another link. " + "This is an entity: & plus a <. Here is an &. "; + AssertHTMLStripsTo(html, gold, null); + } + + //Some sanity checks, but not a full-fledged check + [Test] + public virtual void TestHTML() + { + System.IO.Stream stream = this.GetType().getResourceAsStream("htmlStripReaderTest.html"); + HTMLStripCharFilter reader = new HTMLStripCharFilter(new System.IO.StreamReader(stream, Encoding.UTF8)); + StringBuilder builder = new StringBuilder(); + int ch = -1; + while ((ch = reader.Read()) > 0) + { + builder.Append((char)ch); + } + string str = builder.ToString(); + assertTrue("Entity not properly escaped", str.IndexOf("<", StringComparison.Ordinal) == -1); //there is one > in the text + assertTrue("Forrest should have been stripped out", str.IndexOf("forrest", StringComparison.Ordinal) == -1 && str.IndexOf("Forrest", StringComparison.Ordinal) == -1); + assertTrue("File should start with 'Welcome to Solr' after trimming", str.Trim().StartsWith("Welcome to Solr", StringComparison.Ordinal)); + + assertTrue("File should start with 'Foundation.' after trimming", str.Trim().EndsWith("Foundation.", StringComparison.Ordinal)); + + } + + [Test] + public virtual void TestMSWord14GeneratedHTML() + { + System.IO.Stream stream = this.GetType().getResourceAsStream("MS-Word 14 generated.htm"); + HTMLStripCharFilter reader = new HTMLStripCharFilter(new System.IO.StreamReader(stream, Encoding.UTF8)); + string gold = "This is a test"; + StringBuilder builder = new StringBuilder(); + int ch = 0; + while ((ch = reader.Read()) > 0) + { + builder.Append((char)ch); + } + // Compare trim()'d output to gold + assertEquals("'" + builder.ToString().Trim() + "' is not equal to '" + gold + "'", gold, builder.ToString().Trim()); + } + + [Test] + public virtual void TestGamma() + { + AssertHTMLStripsTo("Γ", "\u0393", new HashSet(Arrays.AsList("reserved"))); + } + + [Test] + public virtual void TestEntities() + { + string test = "  <foo> Übermensch = Γ bar Γ"; + string gold = " \u00DCbermensch = \u0393 bar \u0393"; + AssertHTMLStripsTo(test, gold, new HashSet(Arrays.AsList("reserved"))); + } + + [Test] + public virtual void TestMoreEntities() + { + string test = "  <junk/>   ! @ and ’"; + string gold = " ! @ and ’"; + AssertHTMLStripsTo(test, gold, new HashSet(Arrays.AsList("reserved"))); + } + + [Test] + public virtual void TestReserved() + { + string test = "aaa bbb eeee ffff "; + ISet set = new HashSet(); + set.Add("reserved"); + TextReader reader = new HTMLStripCharFilter(new StringReader(test), set); + StringBuilder builder = new StringBuilder(); + int ch = 0; + while ((ch = reader.Read()) > 0) + { + builder.Append((char)ch); + } + string result = builder.ToString(); + // System.out.println("Result: " + result); + assertTrue("Escaped tag not preserved: " + result.IndexOf("reserved", StringComparison.Ordinal), result.IndexOf("reserved", StringComparison.Ordinal) == 9); + assertTrue("Escaped tag not preserved: " + result.IndexOf("reserved", 15, StringComparison.Ordinal), result.IndexOf("reserved", 15, StringComparison.Ordinal) == 38); + assertTrue("Escaped tag not preserved: " + result.IndexOf("reserved", 41, StringComparison.Ordinal), result.IndexOf("reserved", 41, StringComparison.Ordinal) == 54); + assertTrue("Other tag should be removed", result.IndexOf("other", StringComparison.Ordinal) == -1); + } + + [Test] + public virtual void TestMalformedHTML() + { + string[] testGold = new string[] { "a > ", "a Submit a Site", "Submit a Site", "Christian Science", "Christian Science", "", "\n", "", "", "", "\n", "?", "?", "", "", "", "", "The medical\">http://www.advancedmd.com>medical practice software", "The http://www.advancedmd.com>medical practice software", "Levi.com/BMX 2008 Clip of the Week 29...", "Levi.com/BMX 2008 Clip of the Week 29...", "Printer Friendly", "Printer Friendly", "Add to Favorites", "Add to Favorites", "At", "At", "E-mail: XXXXXX@example.com ", "E-mail: XXXXXX@example.com ", "
  • A'13?
  • ", "\nA'13?\n", "
  • Hubert \"Geese\" Ausby
  • ", "\nHubert \"Geese\" Ausby\n", "", "\n", "", "", "#", "#", "", "", "", "", "", "", "", "", "", "", "", "\n", "#", "#", "", "", "", "\n", "A", "\nA", "", "", "", "", "", "", "Lamborghini /a>", "Lamborghini /a>", "", "", "", "", "", "\n", "", "\n", "", "\n", "\"predicciones mundiales 2009\"", "\"predicciones mundiales 2009\"", "", "", "Bishop\"", "Bishop\"", "BHAA Eircom 2 & 5 miles CC combined start", "BHAA Eircom 2 & 5 miles CC combined start", "", "", "", "", "\">", "", "", "\">", "\">", "'\">", "", "\n\n", "\n\n\n", "\n\n\n\n", "\n\n\n\n\n\n\n\n" }; + for (int i = 0; i < testGold.Length; i += 2) + { + AssertHTMLStripsTo(testGold[i], testGold[i + 1], null); + } + } + + [Test] + public virtual void TestBufferOverflow() + { + StringBuilder testBuilder = new StringBuilder(HTMLStripCharFilter.InitialBufferSize + 50); + testBuilder.Append("ah ??????"); + AppendChars(testBuilder, HTMLStripCharFilter.InitialBufferSize + 500); + TextReader reader = new HTMLStripCharFilter(new StreamReader(new MemoryStream(testBuilder.ToString().GetBytes(Encoding.UTF8)))); + AssertHTMLStripsTo(reader, testBuilder.ToString(), null); + + testBuilder.Length = 0; + testBuilder.Append("foo"); + string gold = "foo"; + AssertHTMLStripsTo(testBuilder.ToString(), gold, null); + + testBuilder.Length = 0; + testBuilder.Append(""); + gold = ""; + AssertHTMLStripsTo(testBuilder.ToString(), gold, null); + + testBuilder.Length = 0; + testBuilder.Append(""); + gold = ""; + AssertHTMLStripsTo(testBuilder.ToString(), gold, null); + } + + private void AppendChars(StringBuilder testBuilder, int numChars) + { + int i1 = numChars / 2; + for (int i = 0; i < i1; i++) + { + testBuilder.Append('a').Append(' '); //tack on enough to go beyond the mark readahead limit, since makes HTMLStripCharFilter think it is a processing instruction + } + } + + [Test] + public virtual void TestComment() + { + string test = " "; + string gold = " "; + AssertHTMLStripsTo(test, gold, null); + + test = " "; // should not be recognized as a comment + gold = " "; + AssertHTMLStripsTo(test, gold, null); + + StringBuilder testBuilder = new StringBuilder("\\'Comment\\'}' -->\"\n\n" + " title=\"Title: \">two"; + string gold = "onetwo"; + AssertHTMLStripsTo(test, gold, null); + + test = "onetwo"; + gold = "one\ntwo"; + AssertHTMLStripsTo(test, gold, null); + } + + [Test] + public virtual void TestScriptQuotes() + { + string test = "onetwo"; + string gold = "one\ntwo"; + AssertHTMLStripsTo(test, gold, null); + + test = "hello'); -->"; + gold = "hello\n"; + AssertHTMLStripsTo(test, gold, null); + } + + [Test] + public virtual void TestEscapeScript() + { + string test = "onetwo"; + string gold = "onetwo"; + ISet escapedTags = new HashSet(Arrays.AsList("SCRIPT")); + AssertHTMLStripsTo(test, gold, escapedTags); + } + + [Test] + public virtual void TestStyle() + { + string test = "onetwo"; + string gold = "one\ntwo"; + AssertHTMLStripsTo(test, gold, null); + } + + [Test] + public virtual void TestEscapeStyle() + { + string test = "onetwo"; + string gold = "onetwo"; + ISet escapedTags = new HashSet(Arrays.AsList("STYLE")); + AssertHTMLStripsTo(test, gold, escapedTags); + } + + [Test] + public virtual void TestBR() + { + string[] testGold = new string[] { "one
    two
    three", "one\ntwo\nthree", "one
    two
    ", "one\ntwo\n" }; + for (int i = 0; i < testGold.Length; i += 2) + { + AssertHTMLStripsTo(testGold[i], testGold[i + 1], null); + } + } + [Test] + public virtual void TestEscapeBR() + { + string test = "one
    two"; + string gold = "one
    two"; + ISet escapedTags = new HashSet(Arrays.AsList("BR")); + AssertHTMLStripsTo(test, gold, escapedTags); + } + + [Test] + public virtual void TestInlineTagsNoSpace() + { + string test = "onetwo2e.three"; + string gold = "onetwo2e.three"; + AssertHTMLStripsTo(test, gold, null); + } + + [Test] + public virtual void TestCDATA() + { + int maxNumElems = 100; + string randomHtmlishString1 = TestUtil.RandomHtmlishString(Random(), maxNumElems).Replace(">", " ").replaceFirst("^--", "__"); // Don't create a comment (disallow " + + + + + + + + + +
    + +
    + +

    This is a test

    + +
    + +
    + + + + + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestHTMLStripCharFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestHTMLStripCharFilterFactory.cs new file mode 100644 index 0000000000..a9295ef012 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestHTMLStripCharFilterFactory.cs @@ -0,0 +1,112 @@ +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System.IO; + +namespace Lucene.Net.Analysis.CharFilters +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// Simple tests to ensure this factory is working + /// + public class TestHTMLStripCharFilterFactory : BaseTokenStreamFactoryTestCase + { + + [Test] + public virtual void TestNothingChanged() + { + // 11111111112 + // 012345678901234567890 + const string text = "this is only a test."; + TextReader cs = CharFilterFactory("HTMLStrip", "escapedTags", "a, Title").Create(new StringReader(text)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "this", "is", "only", "a", "test." }, new int[] { 0, 5, 8, 13, 15 }, new int[] { 4, 7, 12, 14, 20 }); + } + + [Test] + public virtual void TestNoEscapedTags() + { + // 11111111112222222222333333333344 + // 012345678901234567890123456789012345678901 + const string text = "this is only a test."; + TextReader cs = CharFilterFactory("HTMLStrip").Create(new StringReader(text)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "this", "is", "only", "a", "test." }, new int[] { 3, 12, 18, 27, 32 }, new int[] { 11, 14, 26, 28, 41 }); + } + + [Test] + public virtual void TestEscapedTags() + { + // 11111111112222222222333333333344 + // 012345678901234567890123456789012345678901 + const string text = "this is only a test."; + TextReader cs = CharFilterFactory("HTMLStrip", "escapedTags", "U i").Create(new StringReader(text)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "this", "is", "only", "a", "test." }, new int[] { 0, 12, 18, 27, 29 }, new int[] { 11, 14, 26, 28, 41 }); + } + + [Test] + public virtual void TestSeparatorOnlyEscapedTags() + { + // 11111111112222222222333333333344 + // 012345678901234567890123456789012345678901 + const string text = "this is only a test."; + TextReader cs = CharFilterFactory("HTMLStrip", "escapedTags", ",, , ").Create(new StringReader(text)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "this", "is", "only", "a", "test." }, new int[] { 3, 12, 18, 27, 32 }, new int[] { 11, 14, 26, 28, 41 }); + } + + [Test] + public virtual void TestEmptyEscapedTags() + { + // 11111111112222222222333333333344 + // 012345678901234567890123456789012345678901 + const string text = "this is only a test."; + TextReader cs = CharFilterFactory("HTMLStrip", "escapedTags", "").Create(new StringReader(text)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "this", "is", "only", "a", "test." }, new int[] { 3, 12, 18, 27, 32 }, new int[] { 11, 14, 26, 28, 41 }); + } + + [Test] + public virtual void TestSingleEscapedTag() + { + // 11111111112222222222333333333344 + // 012345678901234567890123456789012345678901 + const string text = "this is only a test."; + TextReader cs = CharFilterFactory("HTMLStrip", "escapedTags", ", B\r\n\t").Create(new StringReader(text)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "this", "is", "only", "a", "test." }, new int[] { 3, 12, 15, 27, 32 }, new int[] { 11, 14, 26, 28, 41 }); + } + + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + CharFilterFactory("HTMLStrip", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } +} \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs new file mode 100644 index 0000000000..14a757bd50 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs @@ -0,0 +1,556 @@ +using Lucene.Net.Attributes; +using Lucene.Net.Util; +using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Text; + +namespace Lucene.Net.Analysis.CharFilters +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + public class TestMappingCharFilter : BaseTokenStreamTestCase + { + + internal NormalizeCharMap normMap; + + public override void SetUp() + { + base.SetUp(); + NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); + + builder.Add("aa", "a"); + builder.Add("bbb", "b"); + builder.Add("cccc", "cc"); + + builder.Add("h", "i"); + builder.Add("j", "jj"); + builder.Add("k", "kkk"); + builder.Add("ll", "llll"); + + builder.Add("empty", ""); + + // BMP (surrogate pair): + builder.Add(UnicodeUtil.NewString(new int[] { 0x1D122 }, 0, 1), "fclef"); + + builder.Add("\uff01", "full-width-exclamation"); + + normMap = builder.Build(); + } + + [Test] + public virtual void TestReaderReset() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("x")); + char[] buf = new char[10]; + int len = cs.Read(buf, 0, 10); + assertEquals(1, len); + assertEquals('x', buf[0]); + len = cs.Read(buf, 0, 10); + assertEquals(-1, len); + + // rewind + cs.Reset(); + len = cs.Read(buf, 0, 10); + assertEquals(1, len); + assertEquals('x', buf[0]); + } + + [Test] + public virtual void TestNothingChange() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("x")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "x" }, new int[] { 0 }, new int[] { 1 }, 1); + } + + [Test] + public virtual void Test1to1() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("h")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "i" }, new int[] { 0 }, new int[] { 1 }, 1); + } + + [Test] + public virtual void Test1to2() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("j")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "jj" }, new int[] { 0 }, new int[] { 1 }, 1); + } + + [Test] + public virtual void Test1to3() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("k")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "kkk" }, new int[] { 0 }, new int[] { 1 }, 1); + } + + [Test] + public virtual void Test2to4() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("ll")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "llll" }, new int[] { 0 }, new int[] { 2 }, 2); + } + + [Test] + public virtual void Test2to1() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("aa")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "a" }, new int[] { 0 }, new int[] { 2 }, 2); + } + + [Test] + public virtual void Test3to1() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("bbb")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "b" }, new int[] { 0 }, new int[] { 3 }, 3); + } + + [Test] + public virtual void Test4to2() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("cccc")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "cc" }, new int[] { 0 }, new int[] { 4 }, 4); + } + + [Test] + public virtual void Test5to0() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("empty")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[0], new int[] { }, new int[] { }, 5); + } + + [Test] + public virtual void TestNonBMPChar() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader(UnicodeUtil.NewString(new int[] { 0x1D122 }, 0, 1))); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "fclef" }, new int[] { 0 }, new int[] { 2 }, 2); + } + + [Test] + public virtual void TestFullWidthChar() + { + CharFilter cs = new MappingCharFilter(normMap, new StringReader("\uff01")); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "full-width-exclamation" }, new int[] { 0 }, new int[] { 1 }, 1); + } + + // + // 1111111111222 + // 01234567890123456789012 + //(in) h i j k ll cccc bbb aa + // + // 1111111111222 + // 01234567890123456789012 + //(out) i i jj kkk llll cc b a + // + // h, 0, 1 => i, 0, 1 + // i, 2, 3 => i, 2, 3 + // j, 4, 5 => jj, 4, 5 + // k, 6, 7 => kkk, 6, 7 + // ll, 8,10 => llll, 8,10 + // cccc,11,15 => cc,11,15 + // bbb,16,19 => b,16,19 + // aa,20,22 => a,20,22 + // + [Test] + public virtual void TestTokenStream() + { + string testString = "h i j k ll cccc bbb aa"; + CharFilter cs = new MappingCharFilter(normMap, new StringReader(testString)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "i", "i", "jj", "kkk", "llll", "cc", "b", "a" }, new int[] { 0, 2, 4, 6, 8, 11, 16, 20 }, new int[] { 1, 3, 5, 7, 10, 15, 19, 22 }, testString.Length); + } + + // + // + // 0123456789 + //(in) aaaa ll h + //(out-1) aa llll i + //(out-2) a llllllll i + // + // aaaa,0,4 => a,0,4 + // ll,5,7 => llllllll,5,7 + // h,8,9 => i,8,9 + [Test] + public virtual void TestChained() + { + string testString = "aaaa ll h"; + CharFilter cs = new MappingCharFilter(normMap, new MappingCharFilter(normMap, new StringReader(testString))); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "a", "llllllll", "i" }, new int[] { 0, 5, 8 }, new int[] { 4, 7, 9 }, testString.Length); + } + + [Test] + public virtual void TestRandom() + { + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this); + + int numRounds = RANDOM_MULTIPLIER * 10000; + CheckRandomData(Random(), analyzer, numRounds); + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestMappingCharFilter outerInstance; + + public AnalyzerAnonymousInnerClassHelper(TestMappingCharFilter outerInstance) + { + this.outerInstance = outerInstance; + } + + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, tokenizer); + } + + public override TextReader InitReader(string fieldName, TextReader reader) + { + return new MappingCharFilter(outerInstance.normMap, reader); + } + } + + [Ignore("wrong finalOffset: https://issues.apache.org/jira/browse/LUCENE-3971")] + [Test] + public virtual void TestFinalOffsetSpecialCase() + { + NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); + builder.Add("t", ""); + // even though this below rule has no effect, the test passes if you remove it!! + builder.Add("tmakdbl", "c"); + + NormalizeCharMap map = builder.Build(); + + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper2(this, map); + + string text = "gzw f quaxot"; + CheckAnalysisConsistency(Random(), analyzer, false, text); + } + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + private readonly TestMappingCharFilter outerInstance; + + private NormalizeCharMap map; + + public AnalyzerAnonymousInnerClassHelper2(TestMappingCharFilter outerInstance, NormalizeCharMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, tokenizer); + } + + public override TextReader InitReader(string fieldName, TextReader reader) + { + return new MappingCharFilter(map, reader); + } + } + + [Ignore("wrong finalOffset: https://issues.apache.org/jira/browse/LUCENE-3971")] + [Test] + public virtual void TestRandomMaps() + { + int numIterations = AtLeast(3); + for (int i = 0; i < numIterations; i++) + { + NormalizeCharMap map = RandomMap(); + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper3(this, map); + int numRounds = 100; + CheckRandomData(Random(), analyzer, numRounds); + } + } + + private class AnalyzerAnonymousInnerClassHelper3 : Analyzer + { + private readonly TestMappingCharFilter outerInstance; + + private NormalizeCharMap map; + + public AnalyzerAnonymousInnerClassHelper3(TestMappingCharFilter outerInstance, NormalizeCharMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, tokenizer); + } + + public override TextReader InitReader(string fieldName, TextReader reader) + { + return new MappingCharFilter(map, reader); + } + } + + private NormalizeCharMap RandomMap() + { + Random random = Random(); + NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); + // we can't add duplicate keys, or NormalizeCharMap gets angry + ISet keys = new HashSet(); + int num = random.Next(5); + //System.out.println("NormalizeCharMap="); + for (int i = 0; i < num; i++) + { + string key = TestUtil.RandomSimpleString(random); + if (!keys.Contains(key) && key.Length != 0) + { + string value = TestUtil.RandomSimpleString(random); + builder.Add(key, value); + keys.Add(key); + //System.out.println("mapping: '" + key + "' => '" + value + "'"); + } + } + return builder.Build(); + } + + [Test, LongRunningTest] + public virtual void TestRandomMaps2() + { + Random random = Random(); + int numIterations = AtLeast(3); + for (int iter = 0; iter < numIterations; iter++) + { + + if (VERBOSE) + { + Console.WriteLine("\nTEST iter=" + iter); + } + + char endLetter = (char)TestUtil.NextInt(random, 'b', 'z'); + IDictionary map = new Dictionary(); + NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); + int numMappings = AtLeast(5); + if (VERBOSE) + { + Console.WriteLine(" mappings:"); + } + while (map.Count < numMappings) + { + string key = TestUtil.RandomSimpleStringRange(random, 'a', endLetter, 7); + if (key.Length != 0 && !map.ContainsKey(key)) + { + string value = TestUtil.RandomSimpleString(random); + map[key] = value; + builder.Add(key, value); + if (VERBOSE) + { + Console.WriteLine(" " + key + " -> " + value); + } + } + } + + NormalizeCharMap charMap = builder.Build(); + + if (VERBOSE) + { + Console.WriteLine(" test random documents..."); + } + + for (int iter2 = 0; iter2 < 100; iter2++) + { + string content = TestUtil.RandomSimpleStringRange(random, 'a', endLetter, AtLeast(1000)); + + if (VERBOSE) + { + Console.WriteLine(" content=" + content); + } + + // Do stupid dog-slow mapping: + + // Output string: + StringBuilder output = new StringBuilder(); + + // Maps output offset to input offset: + IList inputOffsets = new List(); + + int cumDiff = 0; + int charIdx = 0; + while (charIdx < content.Length) + { + + int matchLen = -1; + string matchRepl = null; + + foreach (KeyValuePair ent in map) + { + string match = ent.Key; + if (charIdx + match.Length <= content.Length) + { + int limit = charIdx + match.Length; + bool matches = true; + for (int charIdx2 = charIdx; charIdx2 < limit; charIdx2++) + { + if (match[charIdx2 - charIdx] != content[charIdx2]) + { + matches = false; + break; + } + } + + if (matches) + { + string repl = ent.Value; + if (match.Length > matchLen) + { + // Greedy: longer match wins + matchLen = match.Length; + matchRepl = repl; + } + } + } + } + + if (matchLen != -1) + { + // We found a match here! + if (VERBOSE) + { + Console.WriteLine(" match=" + content.Substring(charIdx, matchLen) + " @ off=" + charIdx + " repl=" + matchRepl); + } + output.Append(matchRepl); + int minLen = Math.Min(matchLen, matchRepl.Length); + + // Common part, directly maps back to input + // offset: + for (int outIdx = 0; outIdx < minLen; outIdx++) + { + inputOffsets.Add(output.Length - matchRepl.Length + outIdx + cumDiff); + } + + cumDiff += matchLen - matchRepl.Length; + charIdx += matchLen; + + if (matchRepl.Length < matchLen) + { + // Replacement string is shorter than matched + // input: nothing to do + } + else if (matchRepl.Length > matchLen) + { + // Replacement string is longer than matched + // input: for all the "extra" chars we map + // back to a single input offset: + for (int outIdx = matchLen; outIdx < matchRepl.Length; outIdx++) + { + inputOffsets.Add(output.Length + cumDiff - 1); + } + } + else + { + // Same length: no change to offset + } + + Debug.Assert(inputOffsets.Count == output.Length, "inputOffsets.size()=" + inputOffsets.Count + " vs output.length()=" + output.Length); + } + else + { + inputOffsets.Add(output.Length + cumDiff); + output.Append(content[charIdx]); + charIdx++; + } + } + + string expected = output.ToString(); + if (VERBOSE) + { + Console.Write(" expected:"); + for (int charIdx2 = 0; charIdx2 < expected.Length; charIdx2++) + { + Console.Write(" " + expected[charIdx2] + "/" + inputOffsets[charIdx2]); + } + Console.WriteLine(); + } + + MappingCharFilter mapFilter = new MappingCharFilter(charMap, new StringReader(content)); + StringBuilder actualBuilder = new StringBuilder(); + IList actualInputOffsets = new List(); + + // Now consume the actual mapFilter, somewhat randomly: + while (true) + { + if (random.Next(0, 1) == 1) + { + int ch = mapFilter.Read(); + if (ch == -1) + { + break; + } + actualBuilder.Append((char)ch); + } + else + { + char[] buffer = new char[TestUtil.NextInt(random, 1, 100)]; + int off = buffer.Length == 1 ? 0 : random.Next(buffer.Length - 1); + int count = mapFilter.Read(buffer, off, buffer.Length - off); + if (count == -1) + { + break; + } + else + { + actualBuilder.Append(buffer, off, count); + } + } + + if (random.Next(10) == 7) + { + // Map offsets + while (actualInputOffsets.Count < actualBuilder.Length) + { + actualInputOffsets.Add(mapFilter.CorrectOffset(actualInputOffsets.Count)); + } + } + } + + // Finish mappping offsets + while (actualInputOffsets.Count < actualBuilder.Length) + { + actualInputOffsets.Add(mapFilter.CorrectOffset(actualInputOffsets.Count)); + } + + string actual = actualBuilder.ToString(); + + // Verify: + assertEquals(expected, actual); + assertEquals(inputOffsets, actualInputOffsets); + } + } + } + } +} \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilterFactory.cs new file mode 100644 index 0000000000..3934085c79 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilterFactory.cs @@ -0,0 +1,79 @@ +using Lucene.Net.Analysis.Util; +using NUnit.Framework; + +namespace Lucene.Net.Analysis.CharFilters +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + public class TestMappingCharFilterFactory : BaseTokenStreamFactoryTestCase + { + [Test] + public virtual void TestParseString() + { + + MappingCharFilterFactory f = (MappingCharFilterFactory)CharFilterFactory("Mapping"); + + try + { + f.ParseString("\\"); + fail("escape character cannot be alone."); + } + catch (System.ArgumentException) + { + } + + assertEquals("unexpected escaped characters", "\\\"\n\t\r\b\f", f.ParseString("\\\\\\\"\\n\\t\\r\\b\\f")); + assertEquals("unexpected escaped characters", "A", f.ParseString("\\u0041")); + assertEquals("unexpected escaped characters", "AB", f.ParseString("\\u0041\\u0042")); + + try + { + f.ParseString("\\u000"); + fail("invalid length check."); + } + catch (System.ArgumentException) + { + } + + try + { + f.ParseString("\\u123x"); + fail("invalid hex number check."); + } + catch (System.FormatException) + { + } + } + + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + CharFilterFactory("Mapping", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } +} \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/htmlStripReaderTest.html b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/htmlStripReaderTest.html new file mode 100644 index 0000000000..64cc3acd35 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/htmlStripReaderTest.html @@ -0,0 +1,350 @@ + + + + + + + +Welcome to Solr + + + + + + + + + +
    +
    +
    + +
    + + +
    + +
    + +   +
    + + + + + +
    + +

    Welcome to Solr

    + + + +

    What Is Solr?

    +
    +

    + Solr is an open source enterprise search server based on the + Lucene Java search library, with XML/HTTP and JSON APIs, + hit highlighting, faceted search, caching, replication, and a web administration interface. + It runs in a Java servlet container such as Tomcat. +

    +

    + See the complete feature list for more details, then check out the tutorial. +

    +
    + + + +

    News

    +
    + +

    02 October 2007 - Solr at OSSummit Asia

    +

    +OSSummit Asia logo + Lucene and Solr tutorials! +

    +

    The following talks and trainings are scheduled for the upcoming 2008 OSSummit:

    +
      + +
    • +Lucene Boot Camp by Erik Hatcher (originally by Grant Ingersoll). An all-day training focusing on getting started with Lucene - the core library under Solr.
    • + +
    • +Solr in a Day by Erik Hatcher. All you need to know to use Solr effectively.
    • + +
    • +Lucene Case Studies by Erik Hatcher. A rapid series of examples of many Lucene and Solr using applications.
    • + +
    + +

    03 September 2007 - Lucene at ApacheCon Atlanta

    +

    +ApacheCon US logo + Lucene will once again be well represented at ApacheCon USA in Atlanta this November 12-16, 2007. +

    +

    The following talks and trainings are scheduled for this year's conference:

    + + +

    06 June 2007: Release 1.2 available

    +

    + This is the first release since Solr graduated from the Incubator, + bringing many new features, including CSV/delimited-text data + loading, time based autocommit, faster faceting, negative filters, + a spell-check handler, sounds-like word filters, regex text filters, + and more flexible plugins. +

    +

    See the release notes for more details.

    + +

    17 January 2007: Solr graduates from Incubator

    +

    + Solr has graduated from the Apache Incubator, and is now a sub-project of Lucene. +

    + +

    22 December 2006: Release 1.1.0 available

    +

    + This is the first release since Solr joined the Incubator, and brings + many new features and performance optimizations including highlighting, + faceted search, and JSON/Python/Ruby response formats. +

    + +

    15 August 2006: Solr at ApacheCon US

    +

    Chris Hostetter will be presenting + "Faceted Searching With Apache Solr" + at ApacheCon US 2006, on October 13th at 4:30pm. + See the ApacheCon website for more details. +

    + +

    21 April 2006: Solr at ApacheCon

    +

    Yonik Seeley will be presenting + "Apache Solr, a Full-Text Search Server based on Lucene" + at ApacheCon Europe 2006, on June 29th at 5:30pm. + See the ApacheCon website for more details. +

    + +

    21 February 2006: nightly builds

    +

    Solr now has nightly builds. This automatically creates a + downloadable version of Solr every + night. All unit tests must pass, or a message is sent to + the developers mailing list and no new version is created. This + also updates the javadoc.

    + +

    17 January 2006: Solr Joins Apache Incubator

    +

    Solr, a search server based on Lucene, has been accepted into the Apache Incubator. + Solr was originally developed by CNET Networks, and is widely used within CNET + to provide high relevancy search and faceted browsing capabilities. +

    +
    + + +
    + +
     
    +
    + + + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Charfilter/HTMLStripCharFilterTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Charfilter/HTMLStripCharFilterTest.cs deleted file mode 100644 index 81bdd3135c..0000000000 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Charfilter/HTMLStripCharFilterTest.cs +++ /dev/null @@ -1,570 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace org.apache.lucene.analysis.charfilter -{ - - /* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - using TestUtil = org.apache.lucene.util.TestUtil; - - public class HTMLStripCharFilterTest : BaseTokenStreamTestCase - { - - private static Analyzer newTestAnalyzer() - { - return new AnalyzerAnonymousInnerClassHelper(); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - public AnalyzerAnonymousInnerClassHelper() - { - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, tokenizer); - } - - protected internal override Reader initReader(string fieldName, Reader reader) - { - return new HTMLStripCharFilter(reader); - } - } - - //this is some text here is a link and another link . This is an entity: & plus a <. Here is an & - // -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void test() throws Exception - public virtual void test() - { - string html = "
    this is some text
    here is a link and " + "another link. " + "This is an entity: & plus a <. Here is an &. "; - string gold = "\nthis is some text\n here is a link and " + "another link. " + "This is an entity: & plus a <. Here is an &. "; - assertHTMLStripsTo(html, gold, null); - } - - //Some sanity checks, but not a full-fledged check -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHTML() throws Exception - public virtual void testHTML() - { - System.IO.Stream stream = this.GetType().getResourceAsStream("htmlStripReaderTest.html"); - HTMLStripCharFilter reader = new HTMLStripCharFilter(new System.IO.StreamReader(stream, Encoding.UTF8)); - StringBuilder builder = new StringBuilder(); - int ch = -1; - while ((ch = reader.read()) != -1) - { - builder.Append((char)ch); - } - string str = builder.ToString(); - assertTrue("Entity not properly escaped", str.IndexOf("<", StringComparison.Ordinal) == -1); //there is one > in the text - assertTrue("Forrest should have been stripped out", str.IndexOf("forrest", StringComparison.Ordinal) == -1 && str.IndexOf("Forrest", StringComparison.Ordinal) == -1); - assertTrue("File should start with 'Welcome to Solr' after trimming", str.Trim().StartsWith("Welcome to Solr", StringComparison.Ordinal)); - - assertTrue("File should start with 'Foundation.' after trimming", str.Trim().EndsWith("Foundation.", StringComparison.Ordinal)); - - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMSWord14GeneratedHTML() throws Exception - public virtual void testMSWord14GeneratedHTML() - { - System.IO.Stream stream = this.GetType().getResourceAsStream("MS-Word 14 generated.htm"); - HTMLStripCharFilter reader = new HTMLStripCharFilter(new System.IO.StreamReader(stream, Encoding.UTF8)); - string gold = "This is a test"; - StringBuilder builder = new StringBuilder(); - int ch = 0; - while ((ch = reader.read()) != -1) - { - builder.Append((char)ch); - } - // Compare trim()'d output to gold - assertEquals("'" + builder.ToString().Trim() + "' is not equal to '" + gold + "'", gold, builder.ToString().Trim()); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testGamma() throws Exception - public virtual void testGamma() - { - assertHTMLStripsTo("Γ", "\u0393", new HashSet<>(Arrays.asList("reserved"))); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEntities() throws Exception - public virtual void testEntities() - { - string test = "  <foo> Übermensch = Γ bar Γ"; - string gold = " \u00DCbermensch = \u0393 bar \u0393"; - assertHTMLStripsTo(test, gold, new HashSet<>(Arrays.asList("reserved"))); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMoreEntities() throws Exception - public virtual void testMoreEntities() - { - string test = "  <junk/>   ! @ and ’"; - string gold = " ! @ and ’"; - assertHTMLStripsTo(test, gold, new HashSet<>(Arrays.asList("reserved"))); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReserved() throws Exception - public virtual void testReserved() - { - string test = "aaa bbb eeee ffff "; - ISet set = new HashSet(); - set.Add("reserved"); - Reader reader = new HTMLStripCharFilter(new StringReader(test), set); - StringBuilder builder = new StringBuilder(); - int ch = 0; - while ((ch = reader.read()) != -1) - { - builder.Append((char)ch); - } - string result = builder.ToString(); - // System.out.println("Result: " + result); - assertTrue("Escaped tag not preserved: " + result.IndexOf("reserved", StringComparison.Ordinal), result.IndexOf("reserved", StringComparison.Ordinal) == 9); - assertTrue("Escaped tag not preserved: " + result.IndexOf("reserved", 15, StringComparison.Ordinal), result.IndexOf("reserved", 15, StringComparison.Ordinal) == 38); - assertTrue("Escaped tag not preserved: " + result.IndexOf("reserved", 41, StringComparison.Ordinal), result.IndexOf("reserved", 41, StringComparison.Ordinal) == 54); - assertTrue("Other tag should be removed", result.IndexOf("other", StringComparison.Ordinal) == -1); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMalformedHTML() throws Exception - public virtual void testMalformedHTML() - { - string[] testGold = new string[] {"a > ", "a Submit a Site", "Submit a Site", "Christian Science", "Christian Science", "", "\n", "", "", "", "\n", "?", "?", "", "", "", "", "The medical\">http://www.advancedmd.com>medical practice software", "The http://www.advancedmd.com>medical practice software", "Levi.com/BMX 2008 Clip of the Week 29...", "Levi.com/BMX 2008 Clip of the Week 29...", "Printer Friendly", "Printer Friendly", "Add to Favorites", "Add to Favorites", "At", "At", "E-mail: XXXXXX@example.com ", "E-mail: XXXXXX@example.com ", "
  • A'13?
  • ", "\nA'13?\n", "
  • Hubert \"Geese\" Ausby
  • ", "\nHubert \"Geese\" Ausby\n", "", "\n", "", "", "#", "#", "", "", "", "", "", "", "", "", "", "", "", "\n", "#", "#", "", "", "", "\n", "A", "\nA", "", "", "", "", "", "", "Lamborghini /a>", "Lamborghini /a>", "", "", "", "", "", "\n", "", "\n", "", "\n", "\"predicciones mundiales 2009\"", "\"predicciones mundiales 2009\"", "", "", "Bishop\"", "Bishop\"", "BHAA Eircom 2 & 5 miles CC combined start", "BHAA Eircom 2 & 5 miles CC combined start", "", "", "", "", "\">", "", "", "\">", "\">", "'\">", "", "\n\n", "\n\n\n", "\n\n\n\n", "\n\n\n\n\n\n\n\n"}; - for (int i = 0 ; i < testGold.Length ; i += 2) - { - assertHTMLStripsTo(testGold[i], testGold[i + 1], null); - } - } - - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBufferOverflow() throws Exception - public virtual void testBufferOverflow() - { - StringBuilder testBuilder = new StringBuilder(HTMLStripCharFilter.InitialBufferSize + 50); - testBuilder.Append("ah ??????"); - appendChars(testBuilder, HTMLStripCharFilter.InitialBufferSize + 500); - Reader reader = new HTMLStripCharFilter(new System.IO.StreamReader(new StringReader(testBuilder.ToString()))); //force the use of BufferedReader - assertHTMLStripsTo(reader, testBuilder.ToString(), null); - - testBuilder.Length = 0; - testBuilder.Append("foo"); - string gold = "foo"; - assertHTMLStripsTo(testBuilder.ToString(), gold, null); - - testBuilder.Length = 0; - testBuilder.Append(""); - gold = ""; - assertHTMLStripsTo(testBuilder.ToString(), gold, null); - - testBuilder.Length = 0; - testBuilder.Append(""); - gold = ""; - assertHTMLStripsTo(testBuilder.ToString(), gold, null); - } - - private void appendChars(StringBuilder testBuilder, int numChars) - { - int i1 = numChars / 2; - for (int i = 0; i < i1; i++) - { - testBuilder.Append('a').Append(' '); //tack on enough to go beyond the mark readahead limit, since makes HTMLStripCharFilter think it is a processing instruction - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testComment() throws Exception - public virtual void testComment() - { - string test = " "; - string gold = " "; - assertHTMLStripsTo(test, gold, null); - - test = " "; // should not be recognized as a comment - gold = " "; - assertHTMLStripsTo(test, gold, null); - - StringBuilder testBuilder = new StringBuilder("\\'Comment\\'}' -->\"\n\n" + " title=\"Title: \">two"; - string gold = "onetwo"; - assertHTMLStripsTo(test, gold, null); - - test = "onetwo"; - gold = "one\ntwo"; - assertHTMLStripsTo(test, gold, null); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testScriptQuotes() throws Exception - public virtual void testScriptQuotes() - { - string test = "onetwo"; - string gold = "one\ntwo"; - assertHTMLStripsTo(test, gold, null); - - test = "hello'); -->"; - gold = "hello\n"; - assertHTMLStripsTo(test, gold, null); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEscapeScript() throws Exception - public virtual void testEscapeScript() - { - string test = "onetwo"; - string gold = "onetwo"; - ISet escapedTags = new HashSet(Arrays.asList("SCRIPT")); - assertHTMLStripsTo(test, gold, escapedTags); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStyle() throws Exception - public virtual void testStyle() - { - string test = "onetwo"; - string gold = "one\ntwo"; - assertHTMLStripsTo(test, gold, null); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEscapeStyle() throws Exception - public virtual void testEscapeStyle() - { - string test = "onetwo"; - string gold = "onetwo"; - ISet escapedTags = new HashSet(Arrays.asList("STYLE")); - assertHTMLStripsTo(test, gold, escapedTags); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBR() throws Exception - public virtual void testBR() - { - string[] testGold = new string[] {"one
    two
    three", "one\ntwo\nthree", "one
    two
    ", "one\ntwo\n"}; - for (int i = 0 ; i < testGold.Length ; i += 2) - { - assertHTMLStripsTo(testGold[i], testGold[i + 1], null); - } - } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEscapeBR() throws Exception - public virtual void testEscapeBR() - { - string test = "one
    two"; - string gold = "one
    two"; - ISet escapedTags = new HashSet(Arrays.asList("BR")); - assertHTMLStripsTo(test, gold, escapedTags); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInlineTagsNoSpace() throws Exception - public virtual void testInlineTagsNoSpace() - { - string test = "onetwo2e.three"; - string gold = "onetwo2e.three"; - assertHTMLStripsTo(test, gold, null); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testCDATA() throws Exception - public virtual void testCDATA() - { - int maxNumElems = 100; - string randomHtmlishString1 = TestUtil.randomHtmlishString(random(), maxNumElems).replaceAll(">", " ").replaceFirst("^--","__"); // Don't create a comment (disallow "< febcfdc fbb = \"fbeeebff\" fc = dd >\\';>>< bccaafe edb = ecfccdff\" < edbd ebbcd=\"faacfcc\" aeca= bedbc ceeaac =adeafde aadccdaf = \"afcc ffda=aafbe �\"1843785582']"; - for (int i = 0; i < input.Length; i++) - { - Matcher matcher = p.matcher(input.Substring(0, i)); - long t = DateTimeHelperClass.CurrentUnixTimeMillis(); - if (matcher.find()) - { - Console.WriteLine(matcher.group()); - } - Console.WriteLine(i + " > " + (DateTimeHelperClass.CurrentUnixTimeMillis() - t) / 1000.0); - } - } - - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - int numPatterns = 10 + random().Next(20); - Random random = new Random(random().nextLong()); - for (int i = 0; i < numPatterns; i++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final java.util.regex.Pattern p = org.apache.lucene.util.TestUtil.randomPattern(random()); - Pattern p = TestUtil.randomPattern(random()); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String replacement = org.apache.lucene.util.TestUtil.randomSimpleString(random); - string replacement = TestUtil.randomSimpleString(random); - Analyzer a = new AnalyzerAnonymousInnerClassHelper(this, p, replacement); - - /* max input length. don't make it longer -- exponential processing - * time for certain patterns. */ - const int maxInputLength = 30; - /* ASCII only input?: */ - const bool asciiOnly = true; - checkRandomData(random, a, 250 * RANDOM_MULTIPLIER, maxInputLength, asciiOnly); - } - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestPatternReplaceCharFilter outerInstance; - - private Pattern p; - private string replacement; - - public AnalyzerAnonymousInnerClassHelper(TestPatternReplaceCharFilter outerInstance, Pattern p, string replacement) - { - this.outerInstance = outerInstance; - this.p = p; - this.replacement = replacement; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, tokenizer); - } - - protected internal override Reader initReader(string fieldName, Reader reader) - { - return new PatternReplaceCharFilter(p, replacement, reader); - } - } - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// Tests + /// + public class TestPatternReplaceCharFilter : BaseTokenStreamTestCase + { + [Test] + public virtual void TestFailingDot() + { + checkOutput("A. .B.", "\\.[\\s]*", ".", "A..B.", "A..B."); + } + + [Test] + public virtual void TestLongerReplacement() + { + checkOutput("XXabcZZabcYY", "abc", "abcde", "XXabcdeZZabcdeYY", "XXabcccZZabcccYY"); + checkOutput("XXabcabcYY", "abc", "abcde", "XXabcdeabcdeYY", "XXabcccabcccYY"); + checkOutput("abcabcYY", "abc", "abcde", "abcdeabcdeYY", "abcccabcccYY"); + checkOutput("YY", "^", "abcde", "abcdeYY", "YYYYYYY"); + // Should be: "-----YY" but we're enforcing non-negative offsets. + checkOutput("YY", "$", "abcde", "YYabcde", "YYYYYYY"); + checkOutput("XYZ", ".", "abc", "abcabcabc", "XXXYYYZZZ"); + checkOutput("XYZ", ".", "$0abc", "XabcYabcZabc", "XXXXYYYYZZZZ"); + } + + [Test] + public virtual void TestShorterReplacement() + { + checkOutput("XXabcZZabcYY", "abc", "xy", "XXxyZZxyYY", "XXabZZabYY"); + checkOutput("XXabcabcYY", "abc", "xy", "XXxyxyYY", "XXababYY"); + checkOutput("abcabcYY", "abc", "xy", "xyxyYY", "ababYY"); + checkOutput("abcabcYY", "abc", "", "YY", "YY"); + checkOutput("YYabcabc", "abc", "", "YY", "YY"); + } + + private void checkOutput(string input, string pattern, string replacement, string expectedOutput, string expectedIndexMatchedOutput) + { + CharFilter cs = new PatternReplaceCharFilter(new Regex(pattern, RegexOptions.Compiled), replacement, new StringReader(input)); + + StringBuilder output = new StringBuilder(); + for (int chr = cs.Read(); chr > 0; chr = cs.Read()) + { + output.Append((char)chr); + } + + StringBuilder indexMatched = new StringBuilder(); + for (int i = 0; i < output.Length; i++) + { + if (cs.CorrectOffset(i) < input.Length) + { + indexMatched.Append((cs.CorrectOffset(i) < 0 ? '-' : input[cs.CorrectOffset(i)])); + } + } + + bool outputGood = expectedOutput.Equals(output.ToString()); + bool indexMatchedGood = expectedIndexMatchedOutput.Equals(indexMatched.ToString()); + + if (!outputGood || !indexMatchedGood || false) + { + Console.WriteLine("Pattern : " + pattern); + Console.WriteLine("Replac. : " + replacement); + Console.WriteLine("Input : " + input); + Console.WriteLine("Output : " + output); + Console.WriteLine("Expected: " + expectedOutput); + Console.WriteLine("Output/i: " + indexMatched); + Console.WriteLine("Expected: " + expectedIndexMatchedOutput); + Console.WriteLine(); + } + + assertTrue("Output doesn't match.", outputGood); + assertTrue("Index-matched output doesn't match.", indexMatchedGood); + } + + // 1111 + // 01234567890123 + // this is test. + [Test] + public virtual void TestNothingChange() + { + const string BLOCK = "this is test."; + CharFilter cs = new PatternReplaceCharFilter(pattern("(aa)\\s+(bb)\\s+(cc)"), "$1$2$3", new StringReader(BLOCK)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "this", "is", "test." }, new int[] { 0, 5, 8 }, new int[] { 4, 7, 13 }, BLOCK.Length); + } + + // 012345678 + // aa bb cc + [Test] + public virtual void TestReplaceByEmpty() + { + const string BLOCK = "aa bb cc"; + CharFilter cs = new PatternReplaceCharFilter(pattern("(aa)\\s+(bb)\\s+(cc)"), "", new StringReader(BLOCK)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { }); + } + + // 012345678 + // aa bb cc + // aa#bb#cc + [Test] + public virtual void Test1block1matchSameLength() + { + const string BLOCK = "aa bb cc"; + CharFilter cs = new PatternReplaceCharFilter(pattern("(aa)\\s+(bb)\\s+(cc)"), "$1#$2#$3", new StringReader(BLOCK)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "aa#bb#cc" }, new int[] { 0 }, new int[] { 8 }, BLOCK.Length); + } + + // 11111 + // 012345678901234 + // aa bb cc dd + // aa##bb###cc dd + [Test] + public virtual void Test1block1matchLonger() + { + const string BLOCK = "aa bb cc dd"; + CharFilter cs = new PatternReplaceCharFilter(pattern("(aa)\\s+(bb)\\s+(cc)"), "$1##$2###$3", new StringReader(BLOCK)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "aa##bb###cc", "dd" }, new int[] { 0, 9 }, new int[] { 8, 11 }, BLOCK.Length); + } + + // 01234567 + // a a + // aa aa + [Test] + public virtual void Test1block2matchLonger() + { + const string BLOCK = " a a"; + CharFilter cs = new PatternReplaceCharFilter(pattern("a"), "aa", new StringReader(BLOCK)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "aa", "aa" }, new int[] { 1, 4 }, new int[] { 2, 5 }, BLOCK.Length); + } + + // 11111 + // 012345678901234 + // aa bb cc dd + // aa#bb dd + [Test] + public virtual void Test1block1matchShorter() + { + const string BLOCK = "aa bb cc dd"; + CharFilter cs = new PatternReplaceCharFilter(pattern("(aa)\\s+(bb)\\s+(cc)"), "$1#$2", new StringReader(BLOCK)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "aa#bb", "dd" }, new int[] { 0, 12 }, new int[] { 11, 14 }, BLOCK.Length); + } + + // 111111111122222222223333 + // 0123456789012345678901234567890123 + // aa bb cc --- aa bb aa bb cc + // aa bb cc --- aa bb aa bb cc + [Test] + public virtual void Test1blockMultiMatches() + { + const string BLOCK = " aa bb cc --- aa bb aa bb cc"; + CharFilter cs = new PatternReplaceCharFilter(pattern("(aa)\\s+(bb)\\s+(cc)"), "$1 $2 $3", new StringReader(BLOCK)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "aa", "bb", "cc", "---", "aa", "bb", "aa", "bb", "cc" }, new int[] { 2, 6, 9, 11, 15, 18, 21, 25, 29 }, new int[] { 4, 8, 10, 14, 17, 20, 23, 27, 33 }, BLOCK.Length); + } + + // 11111111112222222222333333333 + // 012345678901234567890123456789012345678 + // aa bb cc --- aa bb aa. bb aa bb cc + // aa##bb cc --- aa##bb aa. bb aa##bb cc + + // aa bb cc --- aa bbbaa. bb aa b cc + + [Test] + public virtual void Test2blocksMultiMatches() + { + const string BLOCK = " aa bb cc --- aa bb aa. bb aa bb cc"; + + CharFilter cs = new PatternReplaceCharFilter(pattern("(aa)\\s+(bb)"), "$1##$2", new StringReader(BLOCK)); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "aa##bb", "cc", "---", "aa##bb", "aa.", "bb", "aa##bb", "cc" }, new int[] { 2, 8, 11, 15, 21, 25, 28, 36 }, new int[] { 7, 10, 14, 20, 24, 27, 35, 38 }, BLOCK.Length); + } + + // 11111111112222222222333333333 + // 012345678901234567890123456789012345678 + // a bb - ccc . --- bb a . ccc ccc bb + // aa b - c . --- b aa . c c b + [Test] + public virtual void TestChain() + { + const string BLOCK = " a bb - ccc . --- bb a . ccc ccc bb"; + CharFilter cs = new PatternReplaceCharFilter(pattern("a"), "aa", new StringReader(BLOCK)); + cs = new PatternReplaceCharFilter(pattern("bb"), "b", cs); + cs = new PatternReplaceCharFilter(pattern("ccc"), "c", cs); + TokenStream ts = new MockTokenizer(cs, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "aa", "b", "-", "c", ".", "---", "b", "aa", ".", "c", "c", "b" }, new int[] { 1, 3, 6, 8, 12, 14, 18, 21, 23, 25, 29, 33 }, new int[] { 2, 5, 7, 11, 13, 17, 20, 22, 24, 28, 32, 35 }, BLOCK.Length); + } + + private Regex pattern(string p) + { + return new Regex(p, RegexOptions.Compiled); + } + + // LUCENENET: This wasn't commented in the original source, but it had the Ignore attribute, so proceeding without it. + ///// + ///// A demonstration of how backtracking regular expressions can lead to relatively + ///// easy DoS attacks. + ///// + ///// + //[Test] + //[Ignore] + //public virtual void TestNastyPattern() + //{ + // Pattern p = Pattern.compile("(c.+)*xy"); + // string input = "[;< febcfdc fbb = \"fbeeebff\" fc = dd >\\';>>< bccaafe edb = ecfccdff\" < edbd ebbcd=\"faacfcc\" aeca= bedbc ceeaac =adeafde aadccdaf = \"afcc ffda=aafbe �\"1843785582']"; + // for (int i = 0; i < input.Length; i++) + // { + // Matcher matcher = p.matcher(input.Substring(0, i)); + // long t = DateTimeHelperClass.CurrentUnixTimeMillis(); + // if (matcher.find()) + // { + // Console.WriteLine(matcher.group()); + // } + // Console.WriteLine(i + " > " + (DateTimeHelperClass.CurrentUnixTimeMillis() - t) / 1000.0); + // } + //} + + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + int numPatterns = 10 + Random().Next(20); + Random random = new Random(Random().nextInt(int.MaxValue)); + for (int i = 0; i < numPatterns; i++) + { + Regex p = TestUtil.RandomPattern(Random()); + + string replacement = TestUtil.RandomSimpleString(random); + Analyzer a = new AnalyzerAnonymousInnerClassHelper(this, p, replacement); + + /* max input length. don't make it longer -- exponential processing + * time for certain patterns. */ + const int maxInputLength = 30; + /* ASCII only input?: */ + const bool asciiOnly = true; + CheckRandomData(random, a, 250 * RANDOM_MULTIPLIER, maxInputLength, asciiOnly); + } + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestPatternReplaceCharFilter outerInstance; + + private Regex p; + private string replacement; + + public AnalyzerAnonymousInnerClassHelper(TestPatternReplaceCharFilter outerInstance, Regex p, string replacement) + { + this.outerInstance = outerInstance; + this.p = p; + this.replacement = replacement; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, tokenizer); + } + public override TextReader InitReader(string fieldName, TextReader reader) + { + return new PatternReplaceCharFilter(p, replacement, reader); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilterFactory.cs index a41564b103..bab304eb30 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilterFactory.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilterFactory.cs @@ -1,7 +1,13 @@ -namespace org.apache.lucene.analysis.pattern -{ +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System.IO; +using System.Text.RegularExpressions; +using Reader = System.IO.TextReader; - /* +namespace Lucene.Net.Analysis.Pattern +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,69 +24,61 @@ * limitations under the License. */ + /// + /// Simple tests to ensure this factory is working + /// + public class TestPatternReplaceCharFilterFactory : BaseTokenStreamFactoryTestCase + { - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - - /// - /// Simple tests to ensure this factory is working - /// - public class TestPatternReplaceCharFilterFactory : BaseTokenStreamFactoryTestCase - { - - // 1111 - // 01234567890123 - // this is test. -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNothingChange() throws Exception - public virtual void testNothingChange() - { - Reader reader = new StringReader("this is test."); - reader = charFilterFactory("PatternReplace", "pattern", "(aa)\\s+(bb)\\s+(cc)", "replacement", "$1$2$3").create(reader); - TokenStream ts = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - assertTokenStreamContents(ts, new string[] {"this", "is", "test."}, new int[] {0, 5, 8}, new int[] {4, 7, 13}); - } - - // 012345678 - // aa bb cc -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReplaceByEmpty() throws Exception - public virtual void testReplaceByEmpty() - { - Reader reader = new StringReader("aa bb cc"); - reader = charFilterFactory("PatternReplace", "pattern", "(aa)\\s+(bb)\\s+(cc)").create(reader); - TokenStream ts = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - assertTokenStreamContents(ts, new string[] {}); - } + // 1111 + // 01234567890123 + // this is test. + [Test] + public virtual void TestNothingChange() + { + Reader reader = new StringReader("this is test."); + reader = CharFilterFactory("PatternReplace", "pattern", "(aa)\\s+(bb)\\s+(cc)", "replacement", "$1$2$3").Create(reader); + TokenStream ts = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "this", "is", "test." }, new int[] { 0, 5, 8 }, new int[] { 4, 7, 13 }); + } - // 012345678 - // aa bb cc - // aa#bb#cc -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void test1block1matchSameLength() throws Exception - public virtual void test1block1matchSameLength() - { - Reader reader = new StringReader("aa bb cc"); - reader = charFilterFactory("PatternReplace", "pattern", "(aa)\\s+(bb)\\s+(cc)", "replacement", "$1#$2#$3").create(reader); - TokenStream ts = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - assertTokenStreamContents(ts, new string[] {"aa#bb#cc"}, new int[] {0}, new int[] {8}); - } + // 012345678 + // aa bb cc + [Test] + public virtual void TestReplaceByEmpty() + { + Reader reader = new StringReader("aa bb cc"); + reader = CharFilterFactory("PatternReplace", "pattern", "(aa)\\s+(bb)\\s+(cc)").Create(reader); + TokenStream ts = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { }); + } - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - charFilterFactory("PatternReplace", "pattern", "something", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - } + // 012345678 + // aa bb cc + // aa#bb#cc + [Test] + public virtual void Test1block1matchSameLength() + { + Reader reader = new StringReader("aa bb cc"); + reader = CharFilterFactory("PatternReplace", "pattern", "(aa)\\s+(bb)\\s+(cc)", "replacement", "$1#$2#$3").Create(reader); + TokenStream ts = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + AssertTokenStreamContents(ts, new string[] { "aa#bb#cc" }, new int[] { 0 }, new int[] { 8 }); + } + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + CharFilterFactory("PatternReplace", "pattern", "something", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilter.cs index 1c077a3757..4561550d77 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilter.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilter.cs @@ -1,145 +1,138 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace org.apache.lucene.analysis.pattern -{ - - using KeywordTokenizer = org.apache.lucene.analysis.core.KeywordTokenizer; - - - public class TestPatternReplaceFilter : BaseTokenStreamTestCase - { - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReplaceAll() throws Exception - public virtual void testReplaceAll() - { - string input = "aabfooaabfooabfoob ab caaaaaaaaab"; - TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("a*b"), "-", true); - assertTokenStreamContents(ts, new string[] {"-foo-foo-foo-", "-", "c-"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReplaceFirst() throws Exception - public virtual void testReplaceFirst() - { - string input = "aabfooaabfooabfoob ab caaaaaaaaab"; - TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("a*b"), "-", false); - assertTokenStreamContents(ts, new string[] {"-fooaabfooabfoob", "-", "c-"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStripFirst() throws Exception - public virtual void testStripFirst() - { - string input = "aabfooaabfooabfoob ab caaaaaaaaab"; - TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("a*b"), null, false); - assertTokenStreamContents(ts, new string[] {"fooaabfooabfoob", "", "c"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testStripAll() throws Exception - public virtual void testStripAll() - { - string input = "aabfooaabfooabfoob ab caaaaaaaaab"; - TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("a*b"), null, true); - assertTokenStreamContents(ts, new string[] {"foofoofoo", "", "c"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReplaceAllWithBackRef() throws Exception - public virtual void testReplaceAllWithBackRef() - { - string input = "aabfooaabfooabfoob ab caaaaaaaaab"; - TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("(a*)b"), "$1\\$", true); - assertTokenStreamContents(ts, new string[] {"aa$fooaa$fooa$foo$", "a$", "caaaaaaaaa$"}); - } - - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - Analyzer a = new AnalyzerAnonymousInnerClassHelper(this); - checkRandomData(random(), a, 1000 * RANDOM_MULTIPLIER); - - Analyzer b = new AnalyzerAnonymousInnerClassHelper2(this); - checkRandomData(random(), b, 1000 * RANDOM_MULTIPLIER); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestPatternReplaceFilter outerInstance; - - public AnalyzerAnonymousInnerClassHelper(TestPatternReplaceFilter outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - TokenStream filter = new PatternReplaceFilter(tokenizer, Pattern.compile("a"), "b", false); - return new TokenStreamComponents(tokenizer, filter); - } - } - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - private readonly TestPatternReplaceFilter outerInstance; - - public AnalyzerAnonymousInnerClassHelper2(TestPatternReplaceFilter outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - TokenStream filter = new PatternReplaceFilter(tokenizer, Pattern.compile("a"), "b", true); - return new TokenStreamComponents(tokenizer, filter); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmptyTerm() throws java.io.IOException - public virtual void testEmptyTerm() - { - Analyzer a = new AnalyzerAnonymousInnerClassHelper3(this); - checkOneTerm(a, "", ""); - } - - private class AnalyzerAnonymousInnerClassHelper3 : Analyzer - { - private readonly TestPatternReplaceFilter outerInstance; - - public AnalyzerAnonymousInnerClassHelper3(TestPatternReplaceFilter outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new KeywordTokenizer(reader); - return new TokenStreamComponents(tokenizer, new PatternReplaceFilter(tokenizer, Pattern.compile("a"), "b", true)); - } - } - - } +using Lucene.Net.Analysis.Core; +using NUnit.Framework; +using System.IO; +using System.Text.RegularExpressions; +namespace Lucene.Net.Analysis.Pattern +{ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + public class TestPatternReplaceFilter : BaseTokenStreamTestCase + { + + [Test] + public virtual void TestReplaceAll() + { + string input = "aabfooaabfooabfoob ab caaaaaaaaab"; + TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), new Regex("a*b", RegexOptions.Compiled), "-", true); + AssertTokenStreamContents(ts, new string[] { "-foo-foo-foo-", "-", "c-" }); + } + + [Test] + public virtual void TestReplaceFirst() + { + string input = "aabfooaabfooabfoob ab caaaaaaaaab"; + TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), new Regex("a*b", RegexOptions.Compiled), "-", false); + AssertTokenStreamContents(ts, new string[] { "-fooaabfooabfoob", "-", "c-" }); + } + + [Test] + public virtual void TestStripFirst() + { + string input = "aabfooaabfooabfoob ab caaaaaaaaab"; + TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), new Regex("a*b", RegexOptions.Compiled), null, false); + AssertTokenStreamContents(ts, new string[] { "fooaabfooabfoob", "", "c" }); + } + + [Test] + public virtual void TestStripAll() + { + string input = "aabfooaabfooabfoob ab caaaaaaaaab"; + TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), new Regex("a*b", RegexOptions.Compiled), null, true); + AssertTokenStreamContents(ts, new string[] { "foofoofoo", "", "c" }); + } + + [Test] + public virtual void TestReplaceAllWithBackRef() + { + string input = "aabfooaabfooabfoob ab caaaaaaaaab"; + // LUCENENET NOTE: In .NET we don't need to escape $ like \\$$ (Java), it is like $$ + TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), new Regex("(a*)b", RegexOptions.Compiled), /*"$1\\$$"*/ "$1$$", true); + AssertTokenStreamContents(ts, new string[] { "aa$fooaa$fooa$foo$", "a$", "caaaaaaaaa$" }); + } + + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + Analyzer a = new AnalyzerAnonymousInnerClassHelper(this); + CheckRandomData(Random(), a, 1000 * RANDOM_MULTIPLIER); + + Analyzer b = new AnalyzerAnonymousInnerClassHelper2(this); + CheckRandomData(Random(), b, 1000 * RANDOM_MULTIPLIER); + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestPatternReplaceFilter outerInstance; + + public AnalyzerAnonymousInnerClassHelper(TestPatternReplaceFilter outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + TokenStream filter = new PatternReplaceFilter(tokenizer, new Regex("a", RegexOptions.Compiled), "b", false); + return new TokenStreamComponents(tokenizer, filter); + } + } + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + private readonly TestPatternReplaceFilter outerInstance; + + public AnalyzerAnonymousInnerClassHelper2(TestPatternReplaceFilter outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + TokenStream filter = new PatternReplaceFilter(tokenizer, new Regex("a", RegexOptions.Compiled), "b", true); + return new TokenStreamComponents(tokenizer, filter); + } + } + + [Test] + public virtual void TestEmptyTerm() + { + Analyzer a = new AnalyzerAnonymousInnerClassHelper3(this); + CheckOneTerm(a, "", ""); + } + + private class AnalyzerAnonymousInnerClassHelper3 : Analyzer + { + private readonly TestPatternReplaceFilter outerInstance; + + public AnalyzerAnonymousInnerClassHelper3(TestPatternReplaceFilter outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new KeywordTokenizer(reader); + return new TokenStreamComponents(tokenizer, new PatternReplaceFilter(tokenizer, new Regex("a", RegexOptions.Compiled), "b", true)); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilterFactory.cs index 306d38c62e..2394d8f7f4 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilterFactory.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilterFactory.cs @@ -1,7 +1,10 @@ -namespace org.apache.lucene.analysis.pattern -{ +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System.IO; - /* +namespace Lucene.Net.Analysis.Pattern +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,42 +21,36 @@ * limitations under the License. */ - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - - - /// - /// Simple tests to ensure this factory is working - /// - public class TestPatternReplaceFilterFactory : BaseTokenStreamFactoryTestCase - { - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReplaceAll() throws Exception - public virtual void testReplaceAll() - { - Reader reader = new StringReader("aabfooaabfooabfoob ab caaaaaaaaab"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("PatternReplace", "pattern", "a*b", "replacement", "-").create(stream); - - assertTokenStreamContents(stream, new string[] {"-foo-foo-foo-", "-", "c-"}); - } - - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenFilterFactory("PatternReplace", "pattern", "something", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - } - + /// + /// Simple tests to ensure this factory is working + /// + public class TestPatternReplaceFilterFactory : BaseTokenStreamFactoryTestCase + { + + [Test] + public virtual void TestReplaceAll() + { + TextReader reader = new StringReader("aabfooaabfooabfoob ab caaaaaaaaab"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("PatternReplace", "pattern", "a*b", "replacement", "-").Create(stream); + + AssertTokenStreamContents(stream, new string[] { "-foo-foo-foo-", "-", "c-" }); + } + + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenFilterFactory("PatternReplace", "pattern", "something", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizer.cs index 28d8b03fe6..99fbb741c4 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizer.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizer.cs @@ -1,170 +1,161 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.CharFilters; +using Lucene.Net.Analysis.Tokenattributes; +using NUnit.Framework; +using System.Collections.Generic; +using System.IO; using System.Text; +using System.Text.RegularExpressions; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace org.apache.lucene.analysis.pattern +namespace Lucene.Net.Analysis.Pattern { - - - using TokenStreamComponents = org.apache.lucene.analysis.Analyzer.TokenStreamComponents; - using MappingCharFilter = org.apache.lucene.analysis.charfilter.MappingCharFilter; - using NormalizeCharMap = org.apache.lucene.analysis.charfilter.NormalizeCharMap; - using PathHierarchyTokenizer = org.apache.lucene.analysis.path.PathHierarchyTokenizer; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - - public class TestPatternTokenizer : BaseTokenStreamTestCase - { -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSplitting() throws Exception - public virtual void testSplitting() - { - string qpattern = "\\'([^\\']+)\\'"; // get stuff between "'" - string[][] tests = new string[][] - { - new string[] {"-1", "--", "aaa--bbb--ccc", "aaa bbb ccc"}, - new string[] {"-1", ":", "aaa:bbb:ccc", "aaa bbb ccc"}, - new string[] {"-1", "\\p{Space}", "aaa bbb \t\tccc ", "aaa bbb ccc"}, - new string[] {"-1", ":", "boo:and:foo", "boo and foo"}, - new string[] {"-1", "o", "boo:and:foo", "b :and:f"}, - new string[] {"0", ":", "boo:and:foo", ": :"}, - new string[] {"0", qpattern, "aaa 'bbb' 'ccc'", "'bbb' 'ccc'"}, - new string[] {"1", qpattern, "aaa 'bbb' 'ccc'", "bbb ccc"} - }; - - foreach (string[] test in tests) - { - TokenStream stream = new PatternTokenizer(new StringReader(test[2]), Pattern.compile(test[1]), int.Parse(test[0])); - string @out = tsToString(stream); - // System.out.println( test[2] + " ==> " + out ); - - assertEquals("pattern: " + test[1] + " with input: " + test[2], test[3], @out); - - // Make sure it is the same as if we called 'split' - // test disabled, as we remove empty tokens - /*if( "-1".equals( test[0] ) ) { - String[] split = test[2].split( test[1] ); - stream = tokenizer.create( new StringReader( test[2] ) ); - int i=0; - for( Token t = stream.next(); null != t; t = stream.next() ) - { - assertEquals( "split: "+test[1] + " "+i, split[i++], new String(t.termBuffer(), 0, t.termLength()) ); - } - }*/ - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOffsetCorrection() throws Exception - public virtual void testOffsetCorrection() - { - const string INPUT = "Günther Günther is here"; - - // create MappingCharFilter - IList mappingRules = new List(); - mappingRules.Add("\"ü\" => \"ü\""); - NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); - builder.add("ü", "ü"); - NormalizeCharMap normMap = builder.build(); - CharFilter charStream = new MappingCharFilter(normMap, new StringReader(INPUT)); - - // create PatternTokenizer - TokenStream stream = new PatternTokenizer(charStream, Pattern.compile("[,;/\\s]+"), -1); - assertTokenStreamContents(stream, new string[] {"Günther", "Günther", "is", "here"}, new int[] {0, 13, 26, 29}, new int[] {12, 25, 28, 33}, INPUT.Length); - - charStream = new MappingCharFilter(normMap, new StringReader(INPUT)); - stream = new PatternTokenizer(charStream, Pattern.compile("Günther"), 0); - assertTokenStreamContents(stream, new string[] {"Günther", "Günther"}, new int[] {0, 13}, new int[] {12, 25}, INPUT.Length); - } - - /// - /// TODO: rewrite tests not to use string comparison. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private static String tsToString(org.apache.lucene.analysis.TokenStream in) throws java.io.IOException - private static string tsToString(TokenStream @in) - { - StringBuilder @out = new StringBuilder(); - CharTermAttribute termAtt = @in.addAttribute(typeof(CharTermAttribute)); - // extra safety to enforce, that the state is not preserved and also - // assign bogus values - @in.clearAttributes(); - termAtt.setEmpty().append("bogusTerm"); - @in.reset(); - while (@in.incrementToken()) - { - if (@out.Length > 0) - { - @out.Append(' '); - } - @out.Append(termAtt.ToString()); - @in.clearAttributes(); - termAtt.setEmpty().append("bogusTerm"); - } - - @in.close(); - return @out.ToString(); - } - - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - Analyzer a = new AnalyzerAnonymousInnerClassHelper(this); - checkRandomData(random(), a, 1000 * RANDOM_MULTIPLIER); - - Analyzer b = new AnalyzerAnonymousInnerClassHelper2(this); - checkRandomData(random(), b, 1000 * RANDOM_MULTIPLIER); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestPatternTokenizer outerInstance; - - public AnalyzerAnonymousInnerClassHelper(TestPatternTokenizer outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override Analyzer.TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new PatternTokenizer(reader, Pattern.compile("a"), -1); - return new Analyzer.TokenStreamComponents(tokenizer); - } - } - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - private readonly TestPatternTokenizer outerInstance; - - public AnalyzerAnonymousInnerClassHelper2(TestPatternTokenizer outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override Analyzer.TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new PatternTokenizer(reader, Pattern.compile("a"), 0); - return new Analyzer.TokenStreamComponents(tokenizer); - } - } - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + public class TestPatternTokenizer : BaseTokenStreamTestCase + { + [Test] + public virtual void TestSplitting() + { + string qpattern = "\\'([^\\']+)\\'"; // get stuff between "'" + string[][] tests = new string[][] + { + new string[] {"-1", "--", "aaa--bbb--ccc", "aaa bbb ccc"}, + new string[] {"-1", ":", "aaa:bbb:ccc", "aaa bbb ccc"}, + //new string[] {"-1", "\\p{Space}", "aaa bbb \t\tccc ", "aaa bbb ccc"}, // LUCENENET: Java-specific Regex syntax. See: http://stackoverflow.com/a/4731164/181087 + new string[] {"-1", "\\s", "aaa bbb \t\tccc ", "aaa bbb ccc"}, // LUCENENET: This is the .NET equivalent + new string[] {"-1", ":", "boo:and:foo", "boo and foo"}, + new string[] {"-1", "o", "boo:and:foo", "b :and:f"}, + new string[] {"0", ":", "boo:and:foo", ": :"}, + new string[] {"0", qpattern, "aaa 'bbb' 'ccc'", "'bbb' 'ccc'"}, + new string[] {"1", qpattern, "aaa 'bbb' 'ccc'", "bbb ccc"} + }; + + foreach (string[] test in tests) + { + TokenStream stream = new PatternTokenizer(new StringReader(test[2]), new Regex(test[1], RegexOptions.Compiled), int.Parse(test[0])); + string @out = tsToString(stream); + // System.out.println( test[2] + " ==> " + out ); + + assertEquals("pattern: " + test[1] + " with input: " + test[2], test[3], @out); + + // Make sure it is the same as if we called 'split' + // test disabled, as we remove empty tokens + /*if( "-1".equals( test[0] ) ) { + String[] split = test[2].split( test[1] ); + stream = tokenizer.create( new StringReader( test[2] ) ); + int i=0; + for( Token t = stream.next(); null != t; t = stream.next() ) + { + assertEquals( "split: "+test[1] + " "+i, split[i++], new String(t.termBuffer(), 0, t.termLength()) ); + } + }*/ + } + } + + [Test] + public virtual void TestOffsetCorrection() + { + const string INPUT = "Günther Günther is here"; + + // create MappingCharFilter + IList mappingRules = new List(); + mappingRules.Add("\"ü\" => \"ü\""); + NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); + builder.Add("ü", "ü"); + NormalizeCharMap normMap = builder.Build(); + CharFilter charStream = new MappingCharFilter(normMap, new StringReader(INPUT)); + + // create PatternTokenizer + TokenStream stream = new PatternTokenizer(charStream, new Regex("[,;/\\s]+", RegexOptions.Compiled), -1); + AssertTokenStreamContents(stream, new string[] { "Günther", "Günther", "is", "here" }, new int[] { 0, 13, 26, 29 }, new int[] { 12, 25, 28, 33 }, INPUT.Length); + + charStream = new MappingCharFilter(normMap, new StringReader(INPUT)); + stream = new PatternTokenizer(charStream, new Regex("Günther", RegexOptions.Compiled), 0); + AssertTokenStreamContents(stream, new string[] { "Günther", "Günther" }, new int[] { 0, 13 }, new int[] { 12, 25 }, INPUT.Length); + } + + /// + /// TODO: rewrite tests not to use string comparison. + /// + private static string tsToString(TokenStream @in) + { + StringBuilder @out = new StringBuilder(); + ICharTermAttribute termAtt = @in.AddAttribute(); + // extra safety to enforce, that the state is not preserved and also + // assign bogus values + @in.ClearAttributes(); + termAtt.SetEmpty().Append("bogusTerm"); + @in.Reset(); + while (@in.IncrementToken()) + { + if (@out.Length > 0) + { + @out.Append(' '); + } + @out.Append(termAtt.ToString()); + @in.ClearAttributes(); + termAtt.SetEmpty().Append("bogusTerm"); + } + + @in.Dispose(); + return @out.ToString(); + } + + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + Analyzer a = new AnalyzerAnonymousInnerClassHelper(this); + CheckRandomData(Random(), a, 1000 * RANDOM_MULTIPLIER); + + Analyzer b = new AnalyzerAnonymousInnerClassHelper2(this); + CheckRandomData(Random(), b, 1000 * RANDOM_MULTIPLIER); + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestPatternTokenizer outerInstance; + + public AnalyzerAnonymousInnerClassHelper(TestPatternTokenizer outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new PatternTokenizer(reader, new Regex("a", RegexOptions.Compiled), -1); + return new Analyzer.TokenStreamComponents(tokenizer); + } + } + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + private readonly TestPatternTokenizer outerInstance; + + public AnalyzerAnonymousInnerClassHelper2(TestPatternTokenizer outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new PatternTokenizer(reader, new Regex("a", RegexOptions.Compiled), 0); + return new Analyzer.TokenStreamComponents(tokenizer); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizerFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizerFactory.cs index 1435951bcb..443e8a9b96 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizerFactory.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizerFactory.cs @@ -1,7 +1,10 @@ -namespace org.apache.lucene.analysis.pattern -{ +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System.IO; - /* +namespace Lucene.Net.Analysis.Pattern +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,41 +21,34 @@ * limitations under the License. */ + /// + /// Simple Tests to ensure this factory is working + public class TestPatternTokenizerFactory : BaseTokenStreamFactoryTestCase + { + [Test] + public virtual void TestFactory() + { + TextReader reader = new StringReader("Günther Günther is here"); + // create PatternTokenizer + TokenStream stream = TokenizerFactory("Pattern", "pattern", "[,;/\\s]+").Create(reader); + AssertTokenStreamContents(stream, new string[] { "Günther", "Günther", "is", "here" }); - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - - /// - /// Simple Tests to ensure this factory is working - public class TestPatternTokenizerFactory : BaseTokenStreamFactoryTestCase - { -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFactory() throws Exception - public virtual void testFactory() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final java.io.Reader reader = new java.io.StringReader("Günther Günther is here"); - Reader reader = new StringReader("Günther Günther is here"); - // create PatternTokenizer - TokenStream stream = tokenizerFactory("Pattern", "pattern", "[,;/\\s]+").create(reader); - assertTokenStreamContents(stream, new string[] {"Günther", "Günther", "is", "here"}); - } - - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenizerFactory("Pattern", "pattern", "something", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - } + } + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenizerFactory("Pattern", "pattern", "something", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index b7f5b788e2..9a01f5975d 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -103,6 +103,13 @@ + + + + + + + From 9e07a356a3fafc5b88e13a69727cdc7a6a2cec19 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Sun, 14 Aug 2016 13:33:47 +0700 Subject: [PATCH 069/141] Ported Analysis.Ngram + tests --- .../Analysis/Ngram/EdgeNGramFilterFactory.cs | 12 +- .../Analysis/Ngram/EdgeNGramTokenFilter.cs | 430 ++++++----- .../Analysis/Ngram/EdgeNGramTokenizer.cs | 10 +- .../Ngram/EdgeNGramTokenizerFactory.cs | 95 +-- .../Ngram/Lucene43EdgeNGramTokenizer.cs | 60 +- .../Analysis/Ngram/Lucene43NGramTokenizer.cs | 21 +- .../Analysis/Ngram/NGramFilterFactory.cs | 13 +- .../Analysis/Ngram/NGramTokenFilter.cs | 35 +- .../Analysis/Ngram/NGramTokenizer.cs | 445 +++++------ .../Analysis/Ngram/NGramTokenizerFactory.cs | 20 +- .../Lucene.Net.Analysis.Common.csproj | 10 + .../PositionIncrementAttribute.cs | 2 +- .../PositionLengthAttribute.cs | 2 +- src/Lucene.Net.Core/Support/Character.cs | 54 ++ .../Ngram/EdgeNGramTokenFilterTest.cs | 729 ++++++++---------- .../Analysis/Ngram/EdgeNGramTokenizerTest.cs | 563 ++++++-------- .../Analysis/Ngram/NGramTokenFilterTest.cs | 499 ++++++------ .../Analysis/Ngram/NGramTokenizerTest.cs | 653 +++++++--------- .../Analysis/Ngram/TestNGramFilters.cs | 359 +++++---- .../Lucene.Net.Tests.Analysis.Common.csproj | 5 + 20 files changed, 1918 insertions(+), 2099 deletions(-) diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramFilterFactory.cs index 64b9ab29fe..0eef8fc92e 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramFilterFactory.cs @@ -1,9 +1,8 @@ -using System.Collections.Generic; -using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; namespace Lucene.Net.Analysis.Ngram { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -20,6 +19,7 @@ namespace Lucene.Net.Analysis.Ngram * See the License for the specific language governing permissions and * limitations under the License. */ + ///
    + public sealed class EdgeNGramTokenFilter : TokenFilter + { + public const Side DEFAULT_SIDE = Side.FRONT; + public const int DEFAULT_MAX_GRAM_SIZE = 1; + public const int DEFAULT_MIN_GRAM_SIZE = 1; + + /// + /// Specifies which side of the input the n-gram should be generated from + public enum Side + { + + /// + /// Get the n-gram from the front of the input + FRONT, + + /// + /// Get the n-gram from the end of the input + [System.Obsolete] + BACK, + } + + // Get the appropriate Side from a string + public static Side GetSide(string sideName) + { + Side result; + if (!Enum.TryParse(sideName, true, out result)) + { + result = Side.FRONT; + } + return result; + } + + private readonly LuceneVersion version; + private readonly CharacterUtils charUtils; + private readonly int minGram; + private readonly int maxGram; + private Side side; + private char[] curTermBuffer; + private int curTermLength; + private int curCodePointCount; + private int curGramSize; + private int tokStart; + private int tokEnd; // only used if the length changed before this filter + private bool updateOffsets; // never if the length changed before this filter + private int savePosIncr; + private int savePosLen; + + private readonly ICharTermAttribute termAtt; + private readonly IOffsetAttribute offsetAtt; + private readonly IPositionIncrementAttribute posIncrAtt; + private readonly IPositionLengthAttribute posLenAtt; + + /// + /// Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range + /// + /// the Lucene match version + /// holding the input to be tokenized + /// the from which to chop off an n-gram + /// the smallest n-gram to generate + /// the largest n-gram to generate + [Obsolete] + public EdgeNGramTokenFilter(LuceneVersion version, TokenStream input, Side side, int minGram, int maxGram) + : base(input) + { + + if (version == null) + { + throw new System.ArgumentException("version must not be null"); + } + + if (version.OnOrAfter(LuceneVersion.LUCENE_44) && side == Side.BACK) + { + throw new System.ArgumentException("Side.BACK is not supported anymore as of Lucene 4.4, use ReverseStringFilter up-front and afterward"); + } + + if (side == null) + { + throw new System.ArgumentException("sideLabel must be either front or back"); + } + + if (minGram < 1) + { + throw new System.ArgumentException("minGram must be greater than zero"); + } + + if (minGram > maxGram) + { + throw new System.ArgumentException("minGram must not be greater than maxGram"); + } + + this.version = version; + this.charUtils = version.OnOrAfter(LuceneVersion.LUCENE_44) ? CharacterUtils.GetInstance(version) : CharacterUtils.Java4Instance; + this.minGram = minGram; + this.maxGram = maxGram; + this.side = side; + + this.termAtt = AddAttribute(); + this.offsetAtt = AddAttribute(); + this.posIncrAtt = AddAttribute(); + this.posLenAtt = AddAttribute(); + } + + /// + /// Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range + /// + /// the Lucene match version + /// holding the input to be tokenized + /// the name of the from which to chop off an n-gram + /// the smallest n-gram to generate + /// the largest n-gram to generate + [Obsolete] + public EdgeNGramTokenFilter(LuceneVersion version, TokenStream input, string sideLabel, int minGram, int maxGram) + : this(version, input, GetSide(sideLabel), minGram, maxGram) + { + } + + /// + /// Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range + /// + /// the Lucene match version + /// holding the input to be tokenized + /// the smallest n-gram to generate + /// the largest n-gram to generate + public EdgeNGramTokenFilter(LuceneVersion version, TokenStream input, int minGram, int maxGram) + : this(version, input, Side.FRONT, minGram, maxGram) + { + } + + public override bool IncrementToken() + { + while (true) + { + if (curTermBuffer == null) + { + if (!input.IncrementToken()) + { + return false; + } + else + { + curTermBuffer = (char[])termAtt.Buffer().Clone(); + curTermLength = termAtt.Length; + curCodePointCount = charUtils.CodePointCount(termAtt.ToString()); + curGramSize = minGram; + tokStart = offsetAtt.StartOffset(); + tokEnd = offsetAtt.EndOffset(); + if (version.OnOrAfter(LuceneVersion.LUCENE_44)) + { + // Never update offsets + updateOffsets = false; + } + else + { + // if length by start + end offsets doesn't match the term text then assume + // this is a synonym and don't adjust the offsets. + updateOffsets = (tokStart + curTermLength) == tokEnd; + } + savePosIncr += posIncrAtt.PositionIncrement; + savePosLen = posLenAtt.PositionLength; + } + } + if (curGramSize <= maxGram) // if we have hit the end of our n-gram size range, quit + { + if (curGramSize <= curCodePointCount) // if the remaining input is too short, we can't generate any n-grams + { + // grab gramSize chars from front or back + int start = side == Side.FRONT ? 0 : charUtils.OffsetByCodePoints(curTermBuffer, 0, curTermLength, curTermLength, -curGramSize); + int end = charUtils.OffsetByCodePoints(curTermBuffer, 0, curTermLength, start, curGramSize); + ClearAttributes(); + if (updateOffsets) + { + offsetAtt.SetOffset(tokStart + start, tokStart + end); + } + else + { + offsetAtt.SetOffset(tokStart, tokEnd); + } + // first ngram gets increment, others don't + if (curGramSize == minGram) + { + posIncrAtt.PositionIncrement = savePosIncr; + savePosIncr = 0; + } + else + { + posIncrAtt.PositionIncrement = 0; + } + posLenAtt.PositionLength = savePosLen; + termAtt.CopyBuffer(curTermBuffer, start, end - start); + curGramSize++; + return true; + } + } + curTermBuffer = null; + } + } + + public override void Reset() + { + base.Reset(); + curTermBuffer = null; + savePosIncr = 0; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizer.cs index 3c8dfb500b..a4fc18f726 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizer.cs @@ -1,9 +1,8 @@ using Lucene.Net.Util; -using Reader = System.IO.TextReader; +using System.IO; namespace Lucene.Net.Analysis.Ngram { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -20,6 +19,7 @@ namespace Lucene.Net.Analysis.Ngram * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Tokenizes the input from an edge into n-grams of given size(s). /// @@ -50,7 +50,7 @@ public class EdgeNGramTokenizer : NGramTokenizer /// holding the input to be tokenized /// the smallest n-gram to generate /// the largest n-gram to generate - public EdgeNGramTokenizer(LuceneVersion version, Reader input, int minGram, int maxGram) + public EdgeNGramTokenizer(LuceneVersion version, TextReader input, int minGram, int maxGram) : base(version, input, minGram, maxGram, true) { } @@ -63,11 +63,9 @@ public EdgeNGramTokenizer(LuceneVersion version, Reader input, int minGram, int /// holding the input to be tokenized /// the smallest n-gram to generate /// the largest n-gram to generate - public EdgeNGramTokenizer(LuceneVersion version, AttributeSource.AttributeFactory factory, Reader input, int minGram, int maxGram) + public EdgeNGramTokenizer(LuceneVersion version, AttributeSource.AttributeFactory factory, TextReader input, int minGram, int maxGram) : base(version, factory, input, minGram, maxGram, true) { } - } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizerFactory.cs index cac627c6dc..7f7b6458cd 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizerFactory.cs @@ -1,12 +1,12 @@ -using System.Collections.Generic; -using System.IO; -using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Util; using Lucene.Net.Util; +using System; +using System.Collections.Generic; +using System.IO; namespace Lucene.Net.Analysis.Ngram { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -22,49 +22,50 @@ namespace Lucene.Net.Analysis.Ngram * See the License for the specific language governing permissions and * limitations under the License. */ - /// - /// Creates new instances of . - ///
    -	/// <fieldType name="text_edgngrm" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.EdgeNGramTokenizerFactory" minGramSize="1" maxGramSize="1"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class EdgeNGramTokenizerFactory : TokenizerFactory - { - private readonly int maxGramSize; - private readonly int minGramSize; - private readonly string side; - /// - /// Creates a new EdgeNGramTokenizerFactory - public EdgeNGramTokenizerFactory(IDictionary args) : base(args) - { - minGramSize = getInt(args, "minGramSize", EdgeNGramTokenizer.DEFAULT_MIN_GRAM_SIZE); - maxGramSize = getInt(args, "maxGramSize", EdgeNGramTokenizer.DEFAULT_MAX_GRAM_SIZE); - side = get(args, "side", EdgeNGramTokenFilter.Side.FRONT.Label); - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + /// + /// Creates new instances of . + ///
    +    /// <fieldType name="text_edgngrm" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.EdgeNGramTokenizerFactory" minGramSize="1" maxGramSize="1"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class EdgeNGramTokenizerFactory : TokenizerFactory + { + private readonly int maxGramSize; + private readonly int minGramSize; + private readonly string side; - public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextReader input) - { - if (luceneMatchVersion.OnOrAfter(LuceneVersion.LUCENE_44)) - { - if (!EdgeNGramTokenFilter.Side.FRONT.Label.Equals(side)) - { - throw new System.ArgumentException(typeof(EdgeNGramTokenizer).SimpleName + " does not support backward n-grams as of Lucene 4.4"); - } - return new EdgeNGramTokenizer(luceneMatchVersion, input, minGramSize, maxGramSize); - } - else - { - return new Lucene43EdgeNGramTokenizer(luceneMatchVersion, input, side, minGramSize, maxGramSize); - } - } - } + /// + /// Creates a new EdgeNGramTokenizerFactory + public EdgeNGramTokenizerFactory(IDictionary args) : base(args) + { + minGramSize = GetInt(args, "minGramSize", EdgeNGramTokenizer.DEFAULT_MIN_GRAM_SIZE); + maxGramSize = GetInt(args, "maxGramSize", EdgeNGramTokenizer.DEFAULT_MAX_GRAM_SIZE); + side = Get(args, "side", EdgeNGramTokenFilter.Side.FRONT.ToString()); + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextReader input) + { + if (luceneMatchVersion.OnOrAfter(LuceneVersion.LUCENE_44)) + { + EdgeNGramTokenFilter.Side sideEnum; + if (!Enum.TryParse(this.side, true, out sideEnum)) + { + throw new System.ArgumentException(typeof(EdgeNGramTokenizer).Name + " does not support backward n-grams as of Lucene 4.4"); + } + return new EdgeNGramTokenizer(luceneMatchVersion, input, minGramSize, maxGramSize); + } + else + { + return new Lucene43EdgeNGramTokenizer(luceneMatchVersion, input, side, minGramSize, maxGramSize); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/Lucene43EdgeNGramTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/Lucene43EdgeNGramTokenizer.cs index c2779184a1..b735b3d717 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/Lucene43EdgeNGramTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/Lucene43EdgeNGramTokenizer.cs @@ -1,12 +1,10 @@ -using System; -using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Tokenattributes; using Lucene.Net.Util; -using Reader = System.IO.TextReader; -using Version = Lucene.Net.Util.LuceneVersion; +using System; +using System.IO; namespace Lucene.Net.Analysis.Ngram { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -23,6 +21,7 @@ namespace Lucene.Net.Analysis.Ngram * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Old version of which doesn't handle correctly /// supplementary characters. @@ -34,9 +33,9 @@ public sealed class Lucene43EdgeNGramTokenizer : Tokenizer public const int DEFAULT_MAX_GRAM_SIZE = 1; public const int DEFAULT_MIN_GRAM_SIZE = 1; - private readonly CharTermAttribute termAtt; - private readonly OffsetAttribute offsetAtt; - private readonly PositionIncrementAttribute posIncrAtt; + private ICharTermAttribute termAtt; + private IOffsetAttribute offsetAtt; + private IPositionIncrementAttribute posIncrAtt; /// /// Specifies which side of the input the n-gram should be generated from @@ -52,26 +51,15 @@ public enum Side BACK, } - private static string GetSideLabel(Side side) - { - if (side == Side.FRONT) return "front"; - if (side == Side.BACK) return "back"; - return null; - } - - // Get the appropriate Side from a string - internal static Side? GetSide(String sideName) + internal static Side GetSide(string sideName) { - if (GetSideLabel(Side.FRONT).Equals(sideName)) - { - return Side.FRONT; - } - if (GetSideLabel(Side.BACK).Equals(sideName)) + Side result; + if (!Enum.TryParse(sideName, true, out result)) { - return Side.BACK; + result = Side.FRONT; } - return null; + return result; } private int minGram; @@ -93,10 +81,10 @@ private static string GetSideLabel(Side side) /// the smallest n-gram to generate /// the largest n-gram to generate [Obsolete] - public Lucene43EdgeNGramTokenizer(Version version, Reader input, Side side, int minGram, int maxGram) + public Lucene43EdgeNGramTokenizer(LuceneVersion version, TextReader input, Side side, int minGram, int maxGram) : base(input) { - init(version, side, minGram, maxGram); + Init(version, side, minGram, maxGram); } /// @@ -109,10 +97,10 @@ public Lucene43EdgeNGramTokenizer(Version version, Reader input, Side side, int /// the smallest n-gram to generate /// the largest n-gram to generate [Obsolete] - public Lucene43EdgeNGramTokenizer(Version version, AttributeFactory factory, Reader input, Side side, int minGram, int maxGram) + public Lucene43EdgeNGramTokenizer(LuceneVersion version, AttributeFactory factory, TextReader input, Side side, int minGram, int maxGram) : base(factory, input) { - init(version, side, minGram, maxGram); + Init(version, side, minGram, maxGram); } /// @@ -124,7 +112,7 @@ public Lucene43EdgeNGramTokenizer(Version version, AttributeFactory factory, Rea /// the smallest n-gram to generate /// the largest n-gram to generate [Obsolete] - public Lucene43EdgeNGramTokenizer(Version version, Reader input, string sideLabel, int minGram, int maxGram) + public Lucene43EdgeNGramTokenizer(LuceneVersion version, TextReader input, string sideLabel, int minGram, int maxGram) : this(version, input, GetSide(sideLabel), minGram, maxGram) { } @@ -139,7 +127,7 @@ public Lucene43EdgeNGramTokenizer(Version version, Reader input, string sideLabe /// the smallest n-gram to generate /// the largest n-gram to generate [Obsolete] - public Lucene43EdgeNGramTokenizer(Version version, AttributeFactory factory, Reader input, string sideLabel, int minGram, int maxGram) + public Lucene43EdgeNGramTokenizer(LuceneVersion version, AttributeFactory factory, TextReader input, string sideLabel, int minGram, int maxGram) : this(version, factory, input, GetSide(sideLabel), minGram, maxGram) { } @@ -151,7 +139,7 @@ public Lucene43EdgeNGramTokenizer(Version version, AttributeFactory factory, Rea /// holding the input to be tokenized /// the smallest n-gram to generate /// the largest n-gram to generate - public Lucene43EdgeNGramTokenizer(Version version, Reader input, int minGram, int maxGram) + public Lucene43EdgeNGramTokenizer(LuceneVersion version, TextReader input, int minGram, int maxGram) : this(version, input, Side.FRONT, minGram, maxGram) { } @@ -164,12 +152,12 @@ public Lucene43EdgeNGramTokenizer(Version version, Reader input, int minGram, in /// holding the input to be tokenized /// the smallest n-gram to generate /// the largest n-gram to generate - public Lucene43EdgeNGramTokenizer(Version version, AttributeFactory factory, Reader input, int minGram, int maxGram) + public Lucene43EdgeNGramTokenizer(LuceneVersion version, AttributeFactory factory, TextReader input, int minGram, int maxGram) : this(version, factory, input, Side.FRONT, minGram, maxGram) { } - private void init(Version version, Side side, int minGram, int maxGram) + private void Init(LuceneVersion version, Side side, int minGram, int maxGram) { if (version == null) { @@ -191,7 +179,7 @@ private void init(Version version, Side side, int minGram, int maxGram) throw new System.ArgumentException("minGram must not be greater than maxGram"); } - if (version.OnOrAfter(Version.LUCENE_44)) + if (version.OnOrAfter(LuceneVersion.LUCENE_44)) { if (side == Side.BACK) { @@ -206,6 +194,9 @@ private void init(Version version, Side side, int minGram, int maxGram) this.minGram = minGram; this.maxGram = maxGram; this.side = side; + this.termAtt = AddAttribute(); + this.offsetAtt = AddAttribute(); + this.posIncrAtt = AddAttribute(); } /// @@ -304,5 +295,4 @@ public override void Reset() started = false; } } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/Lucene43NGramTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/Lucene43NGramTokenizer.cs index c39c8ede54..d76989c02c 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/Lucene43NGramTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/Lucene43NGramTokenizer.cs @@ -1,12 +1,9 @@ -using System; +using Lucene.Net.Analysis.Tokenattributes; +using System; using System.IO; -using Lucene.Net.Analysis.Tokenattributes; -using Reader = System.IO.TextReader; -using Version = Lucene.Net.Util.LuceneVersion; namespace Lucene.Net.Analysis.Ngram { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -23,6 +20,7 @@ namespace Lucene.Net.Analysis.Ngram * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Old broken version of . /// @@ -40,8 +38,8 @@ public sealed class Lucene43NGramTokenizer : Tokenizer private string inStr; private bool started; - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly OffsetAttribute offsetAtt = addAttribute(typeof(OffsetAttribute)); + private ICharTermAttribute termAtt; + private IOffsetAttribute offsetAtt; /// /// Creates NGramTokenizer with given min and max n-grams. @@ -51,7 +49,7 @@ public sealed class Lucene43NGramTokenizer : Tokenizer public Lucene43NGramTokenizer(TextReader input, int minGram, int maxGram) : base(input) { - init(minGram, maxGram); + Init(minGram, maxGram); } /// @@ -63,7 +61,7 @@ public Lucene43NGramTokenizer(TextReader input, int minGram, int maxGram) public Lucene43NGramTokenizer(AttributeFactory factory, TextReader input, int minGram, int maxGram) : base(factory, input) { - init(minGram, maxGram); + Init(minGram, maxGram); } /// @@ -74,7 +72,7 @@ public Lucene43NGramTokenizer(TextReader input) { } - private void init(int minGram, int maxGram) + private void Init(int minGram, int maxGram) { if (minGram < 1) { @@ -86,6 +84,8 @@ private void init(int minGram, int maxGram) } this.minGram = minGram; this.maxGram = maxGram; + termAtt = AddAttribute(); + offsetAtt = AddAttribute(); } /// @@ -170,5 +170,4 @@ public override void Reset() pos = 0; } } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramFilterFactory.cs index fb286f5d3b..1487524f9c 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramFilterFactory.cs @@ -1,11 +1,8 @@ -using System.Collections.Generic; -using Lucene.Net.Analysis.Util; -using Reader = System.IO.TextReader; -using Version = Lucene.Net.Util.LuceneVersion; +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; namespace Lucene.Net.Analysis.Ngram { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -22,6 +19,7 @@ namespace Lucene.Net.Analysis.Ngram * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Factory for . ///
    @@ -42,8 +40,8 @@ public class NGramFilterFactory : TokenFilterFactory
             public NGramFilterFactory(IDictionary args)
                 : base(args)
             {
    -            minGramSize = getInt(args, "minGramSize", NGramTokenFilter.DEFAULT_MIN_NGRAM_SIZE);
    -            maxGramSize = getInt(args, "maxGramSize", NGramTokenFilter.DEFAULT_MAX_NGRAM_SIZE);
    +            minGramSize = GetInt(args, "minGramSize", NGramTokenFilter.DEFAULT_MIN_NGRAM_SIZE);
    +            maxGramSize = GetInt(args, "maxGramSize", NGramTokenFilter.DEFAULT_MAX_NGRAM_SIZE);
                 if (args.Count > 0)
                 {
                     throw new System.ArgumentException("Unknown parameters: " + args);
    @@ -55,5 +53,4 @@ public override TokenStream Create(TokenStream input)
                 return new NGramTokenFilter(luceneMatchVersion, input, minGramSize, maxGramSize);
             }
         }
    -
     }
    \ No newline at end of file
    diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenFilter.cs
    index f9d08cd03f..cdaa38861a 100644
    --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenFilter.cs
    +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenFilter.cs
    @@ -2,12 +2,9 @@
     using Lucene.Net.Analysis.Tokenattributes;
     using Lucene.Net.Analysis.Util;
     using Lucene.Net.Util;
    -using Reader = System.IO.TextReader;
    -using Version = Lucene.Net.Util.LuceneVersion;
     
     namespace Lucene.Net.Analysis.Ngram
     {
    -
         /*
          * Licensed to the Apache Software Foundation (ASF) under one or more
          * contributor license agreements.  See the NOTICE file distributed with
    @@ -24,6 +21,7 @@ namespace Lucene.Net.Analysis.Ngram
          * See the License for the specific language governing permissions and
          * limitations under the License.
          */
    +
         /// 
         /// Tokenizes the input into n-grams of the given size(s).
         /// 
    @@ -64,12 +62,12 @@ public sealed class NGramTokenFilter : TokenFilter
             private int tokEnd;
             private bool hasIllegalOffsets; // only if the length changed before this filter
     
    -        private readonly Version version;
    +        private readonly LuceneVersion version;
             private readonly CharacterUtils charUtils;
    -        private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute));
    -        private readonly PositionIncrementAttribute posIncAtt;
    -        private readonly PositionLengthAttribute posLenAtt;
    -        private readonly OffsetAttribute offsetAtt = addAttribute(typeof(OffsetAttribute));
    +        private readonly ICharTermAttribute termAtt;
    +        private readonly IPositionIncrementAttribute posIncAtt;
    +        private readonly IPositionLengthAttribute posLenAtt;
    +        private readonly IOffsetAttribute offsetAtt;
     
             /// 
             /// Creates NGramTokenFilter with given min and max n-grams. 
    @@ -78,11 +76,11 @@ public sealed class NGramTokenFilter : TokenFilter
             ///   holding the input to be tokenized 
             ///  the smallest n-gram to generate 
             ///  the largest n-gram to generate 
    -        public NGramTokenFilter(Version version, TokenStream input, int minGram, int maxGram)
    +        public NGramTokenFilter(LuceneVersion version, TokenStream input, int minGram, int maxGram)
                 : base(new CodepointCountFilter(version, input, minGram, int.MaxValue))
             {
                 this.version = version;
    -            this.charUtils = version.OnOrAfter(Version.LUCENE_44) ? CharacterUtils.GetInstance(version) : CharacterUtils.Java4Instance;
    +            this.charUtils = version.OnOrAfter(LuceneVersion.LUCENE_44) ? CharacterUtils.GetInstance(version) : CharacterUtils.Java4Instance;
                 if (minGram < 1)
                 {
                     throw new System.ArgumentException("minGram must be greater than zero");
    @@ -93,16 +91,18 @@ public NGramTokenFilter(Version version, TokenStream input, int minGram, int max
                 }
                 this.minGram = minGram;
                 this.maxGram = maxGram;
    -            if (version.OnOrAfter(Version.LUCENE_44))
    +            if (version.OnOrAfter(LuceneVersion.LUCENE_44))
                 {
    -                posIncAtt = AddAttribute(typeof(PositionIncrementAttribute));
    -                posLenAtt = AddAttribute(typeof(PositionLengthAttribute));
    +                posIncAtt = AddAttribute();
    +                posLenAtt = AddAttribute();
                 }
                 else
                 {
                     posIncAtt = new PositionIncrementAttributeAnonymousInnerClassHelper(this);
                     posLenAtt = new PositionLengthAttributeAnonymousInnerClassHelper(this);
                 }
    +            termAtt = AddAttribute();
    +            offsetAtt = AddAttribute();
             }
     
             private class PositionIncrementAttributeAnonymousInnerClassHelper : PositionIncrementAttribute
    @@ -152,7 +152,7 @@ public override int PositionLength
             ///  Lucene version to enable correct position increments.
             ///                See above for details. 
             ///   holding the input to be tokenized 
    -        public NGramTokenFilter(Version version, TokenStream input)
    +        public NGramTokenFilter(LuceneVersion version, TokenStream input)
                 : this(version, input, DEFAULT_MIN_NGRAM_SIZE, DEFAULT_MAX_NGRAM_SIZE)
             {
             }
    @@ -172,9 +172,9 @@ public override bool IncrementToken()
                         }
                         else
                         {
    -                        curTermBuffer = termAtt.Buffer().Clone();
    +                        curTermBuffer = (char[])termAtt.Buffer().Clone();
                             curTermLength = termAtt.Length;
    -                        curCodePointCount = charUtils.CodePointCount(termAtt);
    +                        curCodePointCount = charUtils.CodePointCount(termAtt.ToString());
                             curGramSize = minGram;
                             curPos = 0;
                             curPosInc = posIncAtt.PositionIncrement;
    @@ -186,7 +186,7 @@ public override bool IncrementToken()
                             hasIllegalOffsets = (tokStart + curTermLength) != tokEnd;
                         }
                     }
    -                if (version.OnOrAfter(Version.LUCENE_44))
    +                if (version.OnOrAfter(LuceneVersion.LUCENE_44))
                     {
                         if (curGramSize > maxGram || (curPos + curGramSize) > curCodePointCount)
                         {
    @@ -240,5 +240,4 @@ public override void Reset()
                 curTermBuffer = null;
             }
         }
    -
     }
    \ No newline at end of file
    diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenizer.cs
    index 984c684eee..994210b889 100644
    --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenizer.cs
    +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenizer.cs
    @@ -1,17 +1,14 @@
    -using System;
    -using System.Diagnostics;
    -using System.IO;
    -using Lucene.Net.Analysis.Tokenattributes;
    +using Lucene.Net.Analysis.Tokenattributes;
     using Lucene.Net.Analysis.Util;
     using Lucene.Net.Support;
     using Lucene.Net.Util;
    -using Reader = System.IO.TextReader;
    -using Version = Lucene.Net.Util.LuceneVersion;
    +using System;
    +using System.Diagnostics;
    +using System.IO;
     
     namespace Lucene.Net.Analysis.Ngram
     {
    -
    -	/*
    +    /*
     	 * Licensed to the Apache Software Foundation (ASF) under one or more
     	 * contributor license agreements.  See the NOTICE file distributed with
     	 * this work for additional information regarding copyright ownership.
    @@ -27,236 +24,248 @@ namespace Lucene.Net.Analysis.Ngram
     	 * See the License for the specific language governing permissions and
     	 * limitations under the License.
     	 */
    +
         /// 
    -	/// Tokenizes the input into n-grams of the given size(s).
    -	/// On the contrary to , this class sets offsets so
    -	/// that characters between startOffset and endOffset in the original stream are
    -	/// the same as the term chars.
    -	/// 
    -	/// For example, "abcde" would be tokenized as (minGram=2, maxGram=3):
    -	/// 
    -	/// 
    -	/// 
    -	/// 
    -	/// 
    -	/// 
    Termababcbcbcdcdcdede
    Position increment1111111
    Position length1111111
    Offsets[0,2[[0,3[[1,3[[1,4[[2,4[[2,5[[3,5[
    - /// - ///
    - /// This tokenizer changed a lot in Lucene 4.4 in order to:
      - ///
    • tokenize in a streaming fashion to support streams which are larger - /// than 1024 chars (limit of the previous version), - ///
    • count grams based on unicode code points instead of java chars (and - /// never split in the middle of surrogate pairs), - ///
    • give the ability to the stream - /// before computing n-grams.
    - ///
    - /// Additionally, this class doesn't trim trailing whitespaces and emits - /// tokens in a different order, tokens are now emitted by increasing start - /// offsets while they used to be emitted by increasing lengths (which prevented - /// from supporting large input streams). - /// - /// Although highly discouraged, it is still possible - /// to use the old behavior through . - /// - ///
    - // non-final to allow for overriding isTokenChar, but all other methods should be final - public class NGramTokenizer : Tokenizer - { - public const int DEFAULT_MIN_NGRAM_SIZE = 1; - public const int DEFAULT_MAX_NGRAM_SIZE = 2; + /// Tokenizes the input into n-grams of the given size(s). + /// On the contrary to , this class sets offsets so + /// that characters between startOffset and endOffset in the original stream are + /// the same as the term chars. + /// + /// For example, "abcde" would be tokenized as (minGram=2, maxGram=3): + /// + /// + /// + /// + /// + ///
    Termababcbcbcdcdcdede
    Position increment1111111
    Position length1111111
    Offsets[0,2[[0,3[[1,3[[1,4[[2,4[[2,5[[3,5[
    + ///
    + /// + /// This tokenizer changed a lot in Lucene 4.4 in order to:
      + ///
    • tokenize in a streaming fashion to support streams which are larger + /// than 1024 chars (limit of the previous version), + ///
    • count grams based on unicode code points instead of java chars (and + /// never split in the middle of surrogate pairs), + ///
    • give the ability to the stream + /// before computing n-grams.
    + ///
    + /// Additionally, this class doesn't trim trailing whitespaces and emits + /// tokens in a different order, tokens are now emitted by increasing start + /// offsets while they used to be emitted by increasing lengths (which prevented + /// from supporting large input streams). + /// + /// Although highly discouraged, it is still possible + /// to use the old behavior through . + /// + ///
    + // non-final to allow for overriding isTokenChar, but all other methods should be final + public class NGramTokenizer : Tokenizer + { + public const int DEFAULT_MIN_NGRAM_SIZE = 1; + public const int DEFAULT_MAX_NGRAM_SIZE = 2; + + private CharacterUtils charUtils; + private CharacterUtils.CharacterBuffer charBuffer; + private int[] buffer; // like charBuffer, but converted to code points + private int bufferStart, bufferEnd; // remaining slice in buffer + private int offset; + private int gramSize; + private int minGram, maxGram; + private bool exhausted; + private int lastCheckedChar; // last offset in the buffer that we checked + private int lastNonTokenChar; // last offset that we found to not be a token char + private bool edgesOnly; // leading edges n-grams only + + private ICharTermAttribute termAtt; + private IPositionIncrementAttribute posIncAtt; + private IPositionLengthAttribute posLenAtt; + private IOffsetAttribute offsetAtt; - private CharacterUtils charUtils; - private CharacterUtils.CharacterBuffer charBuffer; - private int[] buffer; // like charBuffer, but converted to code points - private int bufferStart, bufferEnd; // remaining slice in buffer - private int offset; - private int gramSize; - private int minGram, maxGram; - private bool exhausted; - private int lastCheckedChar; // last offset in the buffer that we checked - private int lastNonTokenChar; // last offset that we found to not be a token char - private bool edgesOnly; // leading edges n-grams only + internal NGramTokenizer(LuceneVersion version, TextReader input, int minGram, int maxGram, bool edgesOnly) + : base(input) + { + Init(version, minGram, maxGram, edgesOnly); + } - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly PositionIncrementAttribute posIncAtt = addAttribute(typeof(PositionIncrementAttribute)); - private readonly PositionLengthAttribute posLenAtt = addAttribute(typeof(PositionLengthAttribute)); - private readonly OffsetAttribute offsetAtt = addAttribute(typeof(OffsetAttribute)); + /// + /// Creates NGramTokenizer with given min and max n-grams. + /// the lucene compatibility version + /// holding the input to be tokenized + /// the smallest n-gram to generate + /// the largest n-gram to generate + public NGramTokenizer(LuceneVersion version, TextReader input, int minGram, int maxGram) + : this(version, input, minGram, maxGram, false) + { + } - internal NGramTokenizer(LuceneVersion version, TextReader input, int minGram, int maxGram, bool edgesOnly) : base(input) - { - init(version, minGram, maxGram, edgesOnly); - } + internal NGramTokenizer(LuceneVersion version, AttributeFactory factory, TextReader input, int minGram, int maxGram, bool edgesOnly) + : base(factory, input) + { + Init(version, minGram, maxGram, edgesOnly); + } - /// - /// Creates NGramTokenizer with given min and max n-grams. - /// the lucene compatibility version - /// holding the input to be tokenized - /// the smallest n-gram to generate - /// the largest n-gram to generate - public NGramTokenizer(LuceneVersion version, TextReader input, int minGram, int maxGram) : this(version, input, minGram, maxGram, false) - { - } + /// + /// Creates NGramTokenizer with given min and max n-grams. + /// the lucene compatibility version + /// to use + /// holding the input to be tokenized + /// the smallest n-gram to generate + /// the largest n-gram to generate + public NGramTokenizer(LuceneVersion version, AttributeFactory factory, TextReader input, int minGram, int maxGram) + : this(version, factory, input, minGram, maxGram, false) + { + } - internal NGramTokenizer(LuceneVersion version, AttributeFactory factory, TextReader input, int minGram, int maxGram, bool edgesOnly) : base(factory, input) - { - init(version, minGram, maxGram, edgesOnly); - } + /// + /// Creates NGramTokenizer with default min and max n-grams. + /// the lucene compatibility version + /// holding the input to be tokenized + public NGramTokenizer(LuceneVersion version, TextReader input) + : this(version, input, DEFAULT_MIN_NGRAM_SIZE, DEFAULT_MAX_NGRAM_SIZE) + { + } - /// - /// Creates NGramTokenizer with given min and max n-grams. - /// the lucene compatibility version - /// to use - /// holding the input to be tokenized - /// the smallest n-gram to generate - /// the largest n-gram to generate - public NGramTokenizer(LuceneVersion version, AttributeFactory factory, TextReader input, int minGram, int maxGram) : this(version, factory, input, minGram, maxGram, false) - { - } + private void Init(LuceneVersion version, int minGram, int maxGram, bool edgesOnly) + { + if (!version.OnOrAfter(LuceneVersion.LUCENE_44)) + { + throw new System.ArgumentException("This class only works with Lucene 4.4+. To emulate the old (broken) behavior of NGramTokenizer, use Lucene43NGramTokenizer/Lucene43EdgeNGramTokenizer"); + } + charUtils = version.OnOrAfter(LuceneVersion.LUCENE_44) ? CharacterUtils.GetInstance(version) : CharacterUtils.Java4Instance; + if (minGram < 1) + { + throw new System.ArgumentException("minGram must be greater than zero"); + } + if (minGram > maxGram) + { + throw new System.ArgumentException("minGram must not be greater than maxGram"); + } + termAtt = AddAttribute(); + posIncAtt = AddAttribute(); + posLenAtt = AddAttribute(); + offsetAtt = AddAttribute(); + this.minGram = minGram; + this.maxGram = maxGram; + this.edgesOnly = edgesOnly; + charBuffer = CharacterUtils.NewCharacterBuffer(2 * maxGram + 1024); // 2 * maxGram in case all code points require 2 chars and + 1024 for buffering to not keep polling the Reader + buffer = new int[charBuffer.Buffer.Length]; - /// - /// Creates NGramTokenizer with default min and max n-grams. - /// the lucene compatibility version - /// holding the input to be tokenized - public NGramTokenizer(LuceneVersion version, TextReader input) : this(version, input, DEFAULT_MIN_NGRAM_SIZE, DEFAULT_MAX_NGRAM_SIZE) - { - } - private void init(LuceneVersion version, int minGram, int maxGram, bool edgesOnly) - { - if (!version.OnOrAfter(LuceneVersion.LUCENE_44)) - { - throw new System.ArgumentException("This class only works with Lucene 4.4+. To emulate the old (broken) behavior of NGramTokenizer, use Lucene43NGramTokenizer/Lucene43EdgeNGramTokenizer"); - } - charUtils = version.OnOrAfter(LuceneVersion.LUCENE_44) ? CharacterUtils.GetInstance(version) : CharacterUtils.Java4Instance; - if (minGram < 1) - { - throw new System.ArgumentException("minGram must be greater than zero"); - } - if (minGram > maxGram) - { - throw new System.ArgumentException("minGram must not be greater than maxGram"); - } - this.minGram = minGram; - this.maxGram = maxGram; - this.edgesOnly = edgesOnly; - charBuffer = CharacterUtils.NewCharacterBuffer(2 * maxGram + 1024); // 2 * maxGram in case all code points require 2 chars and + 1024 for buffering to not keep polling the Reader - buffer = new int[charBuffer.Buffer.Length]; - // Make the term att large enough - termAtt.ResizeBuffer(2 * maxGram); - } - public override bool IncrementToken() - { - ClearAttributes(); + // Make the term att large enough + termAtt.ResizeBuffer(2 * maxGram); + } - // termination of this loop is guaranteed by the fact that every iteration - // either advances the buffer (calls consumes()) or increases gramSize - while (true) - { - // compact - if (bufferStart >= bufferEnd - maxGram - 1 && !exhausted) - { - Array.Copy(buffer, bufferStart, buffer, 0, bufferEnd - bufferStart); - bufferEnd -= bufferStart; - lastCheckedChar -= bufferStart; - lastNonTokenChar -= bufferStart; - bufferStart = 0; + public override sealed bool IncrementToken() + { + ClearAttributes(); - // fill in remaining space - exhausted = !charUtils.Fill(charBuffer, input, buffer.Length - bufferEnd); - // convert to code points - bufferEnd += charUtils.toCodePoints(charBuffer.Buffer, 0, charBuffer.Length, buffer, bufferEnd); - } + // termination of this loop is guaranteed by the fact that every iteration + // either advances the buffer (calls consumes()) or increases gramSize + while (true) + { + // compact + if (bufferStart >= bufferEnd - maxGram - 1 && !exhausted) + { + Array.Copy(buffer, bufferStart, buffer, 0, bufferEnd - bufferStart); + bufferEnd -= bufferStart; + lastCheckedChar -= bufferStart; + lastNonTokenChar -= bufferStart; + bufferStart = 0; - // should we go to the next offset? - if (gramSize > maxGram || (bufferStart + gramSize) > bufferEnd) - { - if (bufferStart + 1 + minGram > bufferEnd) - { - Debug.Assert(exhausted); - return false; - } - consume(); - gramSize = minGram; - } + // fill in remaining space + exhausted = !charUtils.Fill(charBuffer, input, buffer.Length - bufferEnd); + // convert to code points + bufferEnd += charUtils.toCodePoints(charBuffer.Buffer, 0, charBuffer.Length, buffer, bufferEnd); + } - updateLastNonTokenChar(); + // should we go to the next offset? + if (gramSize > maxGram || (bufferStart + gramSize) > bufferEnd) + { + if (bufferStart + 1 + minGram > bufferEnd) + { + Debug.Assert(exhausted); + return false; + } + consume(); + gramSize = minGram; + } - // retry if the token to be emitted was going to not only contain token chars - bool termContainsNonTokenChar = lastNonTokenChar >= bufferStart && lastNonTokenChar < (bufferStart + gramSize); - bool isEdgeAndPreviousCharIsTokenChar = edgesOnly && lastNonTokenChar != bufferStart - 1; - if (termContainsNonTokenChar || isEdgeAndPreviousCharIsTokenChar) - { - consume(); - gramSize = minGram; - continue; - } + UpdateLastNonTokenChar(); - int length = charUtils.toChars(buffer, bufferStart, gramSize, termAtt.Buffer(), 0); - termAtt.Length = length; - posIncAtt.PositionIncrement = 1; - posLenAtt.PositionLength = 1; - offsetAtt.SetOffset(CorrectOffset(offset), CorrectOffset(offset + length)); - ++gramSize; - return true; - } - } + // retry if the token to be emitted was going to not only contain token chars + bool termContainsNonTokenChar = lastNonTokenChar >= bufferStart && lastNonTokenChar < (bufferStart + gramSize); + bool isEdgeAndPreviousCharIsTokenChar = edgesOnly && lastNonTokenChar != bufferStart - 1; + if (termContainsNonTokenChar || isEdgeAndPreviousCharIsTokenChar) + { + consume(); + gramSize = minGram; + continue; + } - private void updateLastNonTokenChar() - { - int termEnd = bufferStart + gramSize - 1; - if (termEnd > lastCheckedChar) - { - for (int i = termEnd; i > lastCheckedChar; --i) - { - if (!IsTokenChar(buffer[i])) - { - lastNonTokenChar = i; - break; - } - } - lastCheckedChar = termEnd; - } - } + int length = charUtils.toChars(buffer, bufferStart, gramSize, termAtt.Buffer(), 0); + termAtt.Length = length; + posIncAtt.PositionIncrement = 1; + posLenAtt.PositionLength = 1; + offsetAtt.SetOffset(CorrectOffset(offset), CorrectOffset(offset + length)); + ++gramSize; + return true; + } + } - /// - /// Consume one code point. - private void consume() - { - offset += Character.CharCount(buffer[bufferStart++]); - } + private void UpdateLastNonTokenChar() + { + int termEnd = bufferStart + gramSize - 1; + if (termEnd > lastCheckedChar) + { + for (int i = termEnd; i > lastCheckedChar; --i) + { + if (!IsTokenChar(buffer[i])) + { + lastNonTokenChar = i; + break; + } + } + lastCheckedChar = termEnd; + } + } - /// - /// Only collect characters which satisfy this condition. - protected internal virtual bool IsTokenChar(int chr) - { - return true; - } + /// + /// Consume one code point. + private void consume() + { + offset += Character.CharCount(buffer[bufferStart++]); + } - public override void End() - { - base.End(); - Debug.Assert(bufferStart <= bufferEnd); - int endOffset = offset; - for (int i = bufferStart; i < bufferEnd; ++i) - { - endOffset += Character.CharCount(buffer[i]); - } - endOffset = CorrectOffset(endOffset); - // set final offset - offsetAtt.SetOffset(endOffset, endOffset); - } + /// + /// Only collect characters which satisfy this condition. + protected internal virtual bool IsTokenChar(int chr) + { + return true; + } - public override void Reset() - { - base.Reset(); - bufferStart = bufferEnd = buffer.Length; - lastNonTokenChar = lastCheckedChar = bufferStart - 1; - offset = 0; - gramSize = minGram; - exhausted = false; - charBuffer.reset(); - } - } + public override void End() + { + base.End(); + Debug.Assert(bufferStart <= bufferEnd); + int endOffset = offset; + for (int i = bufferStart; i < bufferEnd; ++i) + { + endOffset += Character.CharCount(buffer[i]); + } + endOffset = CorrectOffset(endOffset); + // set final offset + offsetAtt.SetOffset(endOffset, endOffset); + } + public override void Reset() + { + base.Reset(); + bufferStart = bufferEnd = buffer.Length; + lastNonTokenChar = lastCheckedChar = bufferStart - 1; + offset = 0; + gramSize = minGram; + exhausted = false; + charBuffer.Reset(); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenizerFactory.cs index 07e7f156a0..9f48512e82 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/NGramTokenizerFactory.cs @@ -1,12 +1,10 @@ -using System.Collections.Generic; -using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Util; using Lucene.Net.Util; -using Reader = System.IO.TextReader; -using Version = Lucene.Net.Util.LuceneVersion; +using System.Collections.Generic; +using System.IO; namespace Lucene.Net.Analysis.Ngram { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -23,6 +21,7 @@ namespace Lucene.Net.Analysis.Ngram * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Factory for . ///
    @@ -42,8 +41,8 @@ public class NGramTokenizerFactory : TokenizerFactory
             public NGramTokenizerFactory(IDictionary args)
                 : base(args)
             {
    -            minGramSize = getInt(args, "minGramSize", NGramTokenizer.DEFAULT_MIN_NGRAM_SIZE);
    -            maxGramSize = getInt(args, "maxGramSize", NGramTokenizer.DEFAULT_MAX_NGRAM_SIZE);
    +            minGramSize = GetInt(args, "minGramSize", NGramTokenizer.DEFAULT_MIN_NGRAM_SIZE);
    +            maxGramSize = GetInt(args, "maxGramSize", NGramTokenizer.DEFAULT_MAX_NGRAM_SIZE);
                 if (args.Count > 0)
                 {
                     throw new System.ArgumentException("Unknown parameters: " + args);
    @@ -51,10 +50,10 @@ public NGramTokenizerFactory(IDictionary args)
             }
     
             /// 
    -        /// Creates the  of n-grams from the given  and . 
    -        public override Tokenizer Create(AttributeSource.AttributeFactory factory, Reader input)
    +        /// Creates the  of n-grams from the given  and . 
    + public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextReader input) { - if (luceneMatchVersion.OnOrAfter(Version.LUCENE_44)) + if (luceneMatchVersion.OnOrAfter(LuceneVersion.LUCENE_44)) { return new NGramTokenizer(luceneMatchVersion, factory, input, minGramSize, maxGramSize); } @@ -64,5 +63,4 @@ public override Tokenizer Create(AttributeSource.AttributeFactory factory, Reade } } } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index bb17a7a5d0..6d5c354efe 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -124,6 +124,16 @@ + + + + + + + + + + diff --git a/src/Lucene.Net.Core/Analysis/Tokenattributes/PositionIncrementAttribute.cs b/src/Lucene.Net.Core/Analysis/Tokenattributes/PositionIncrementAttribute.cs index da92ba7833..e5d854d7a1 100644 --- a/src/Lucene.Net.Core/Analysis/Tokenattributes/PositionIncrementAttribute.cs +++ b/src/Lucene.Net.Core/Analysis/Tokenattributes/PositionIncrementAttribute.cs @@ -33,7 +33,7 @@ public PositionIncrementAttribute() { } - public int PositionIncrement + public virtual int PositionIncrement { set { diff --git a/src/Lucene.Net.Core/Analysis/Tokenattributes/PositionLengthAttribute.cs b/src/Lucene.Net.Core/Analysis/Tokenattributes/PositionLengthAttribute.cs index 559ef528fa..63c6013827 100644 --- a/src/Lucene.Net.Core/Analysis/Tokenattributes/PositionLengthAttribute.cs +++ b/src/Lucene.Net.Core/Analysis/Tokenattributes/PositionLengthAttribute.cs @@ -33,7 +33,7 @@ public PositionLengthAttribute() { } - public int PositionLength + public virtual int PositionLength { set { diff --git a/src/Lucene.Net.Core/Support/Character.cs b/src/Lucene.Net.Core/Support/Character.cs index 61f54d2906..7ee46cb203 100644 --- a/src/Lucene.Net.Core/Support/Character.cs +++ b/src/Lucene.Net.Core/Support/Character.cs @@ -244,6 +244,60 @@ static int CodePointAtImpl(char[] a, int index, int limit) return c1; } + /// + /// Copy of the implementation from Character class in Java + /// + /// http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/java/lang/Character.java + /// + public static int OffsetByCodePoints(string seq, int index, + int codePointOffset) + { + int length = seq.Length; + if (index < 0 || index > length) + { + throw new IndexOutOfRangeException(); + } + + int x = index; + if (codePointOffset >= 0) + { + int i; + for (i = 0; x < length && i < codePointOffset; i++) + { + if (char.IsHighSurrogate(seq[x++])) + { + if (x < length && char.IsLowSurrogate(seq[x])) + { + x++; + } + } + } + if (i < codePointOffset) + { + throw new IndexOutOfRangeException(); + } + } + else + { + int i; + for (i = codePointOffset; x > 0 && i < 0; i++) + { + if (char.IsLowSurrogate(seq[--x])) + { + if (x > 0 && char.IsHighSurrogate(seq[x - 1])) + { + x--; + } + } + } + if (i < 0) + { + throw new IndexOutOfRangeException(); + } + } + return x; + } + /// /// Copy of the implementation from Character class in Java /// diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilterTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilterTest.cs index 10ab5eca6f..5186cd3a15 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilterTest.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilterTest.cs @@ -1,9 +1,16 @@ -using System; - -namespace org.apache.lucene.analysis.ngram +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Miscellaneous; +using Lucene.Net.Analysis.Shingle; +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Ngram { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,388 +27,332 @@ namespace org.apache.lucene.analysis.ngram * limitations under the License. */ - - using KeywordTokenizer = org.apache.lucene.analysis.core.KeywordTokenizer; - using LetterTokenizer = org.apache.lucene.analysis.core.LetterTokenizer; - using WhitespaceTokenizer = org.apache.lucene.analysis.core.WhitespaceTokenizer; - using ASCIIFoldingFilter = org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilter; - using ShingleFilter = org.apache.lucene.analysis.shingle.ShingleFilter; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using OffsetAttribute = org.apache.lucene.analysis.tokenattributes.OffsetAttribute; - using PositionIncrementAttribute = org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute; - using Version = org.apache.lucene.util.Version; - using TestUtil = org.apache.lucene.util.TestUtil; - - /// - /// Tests for correctness. - /// - public class EdgeNGramTokenFilterTest : BaseTokenStreamTestCase - { - private TokenStream input; - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void setUp() throws Exception - public override void setUp() - { - base.setUp(); - input = new MockTokenizer(new StringReader("abcde"), MockTokenizer.WHITESPACE, false); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput() throws Exception - public virtual void testInvalidInput() - { - bool gotException = false; - try - { - new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 0, 0); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput2() throws Exception - public virtual void testInvalidInput2() - { - bool gotException = false; - try - { - new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 2, 1); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput3() throws Exception - public virtual void testInvalidInput3() - { - bool gotException = false; - try - { - new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, -1, 2); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFrontUnigram() throws Exception - public virtual void testFrontUnigram() - { - EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 1, 1); - assertTokenStreamContents(tokenizer, new string[]{"a"}, new int[]{0}, new int[]{5}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBackUnigram() throws Exception - public virtual void testBackUnigram() - { - EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(Version.LUCENE_43, input, EdgeNGramTokenFilter.Side.BACK, 1, 1); - assertTokenStreamContents(tokenizer, new string[]{"e"}, new int[]{4}, new int[]{5}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOversizedNgrams() throws Exception - public virtual void testOversizedNgrams() - { - EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 6, 6); - assertTokenStreamContents(tokenizer, new string[0], new int[0], new int[0]); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFrontRangeOfNgrams() throws Exception - public virtual void testFrontRangeOfNgrams() - { - EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 1, 3); - assertTokenStreamContents(tokenizer, new string[]{"a","ab","abc"}, new int[]{0,0,0}, new int[]{5,5,5}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBackRangeOfNgrams() throws Exception - public virtual void testBackRangeOfNgrams() - { - EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(Version.LUCENE_43, input, EdgeNGramTokenFilter.Side.BACK, 1, 3); - assertTokenStreamContents(tokenizer, new string[]{"e","de","cde"}, new int[]{4,3,2}, new int[]{5,5,5}, null, null, null, null, false); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFilterPositions() throws Exception - public virtual void testFilterPositions() - { - TokenStream ts = new MockTokenizer(new StringReader("abcde vwxyz"), MockTokenizer.WHITESPACE, false); - EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, ts, EdgeNGramTokenFilter.Side.FRONT, 1, 3); - assertTokenStreamContents(tokenizer, new string[]{"a","ab","abc","v","vw","vwx"}, new int[]{0,0,0,6,6,6}, new int[]{5,5,5,11,11,11}, null, new int[]{1,0,0,1,0,0}, null, null, false); - } - - private class PositionFilter : TokenFilter - { - - internal readonly PositionIncrementAttribute posIncrAtt = addAttribute(typeof(PositionIncrementAttribute)); - internal bool started; - -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: -//ORIGINAL LINE: PositionFilter(final org.apache.lucene.analysis.TokenStream input) - internal PositionFilter(TokenStream input) : base(input) - { - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public final boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (outerInstance.input.incrementToken()) - { - if (started) - { - posIncrAtt.PositionIncrement = 0; - } - else - { - started = true; - } - return true; - } - else - { - return false; - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void reset() throws java.io.IOException - public override void reset() - { - base.reset(); - started = false; - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFirstTokenPositionIncrement() throws Exception - public virtual void testFirstTokenPositionIncrement() - { - TokenStream ts = new MockTokenizer(new StringReader("a abc"), MockTokenizer.WHITESPACE, false); - ts = new PositionFilter(ts); // All but first token will get 0 position increment - EdgeNGramTokenFilter filter = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, ts, EdgeNGramTokenFilter.Side.FRONT, 2, 3); - // The first token "a" will not be output, since it's smaller than the mingram size of 2. - // The second token on input to EdgeNGramTokenFilter will have position increment of 0, - // which should be increased to 1, since this is the first output token in the stream. - assertTokenStreamContents(filter, new string[] {"ab", "abc"}, new int[] {2, 2}, new int[] {5, 5}, new int[] {1, 0}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSmallTokenInStream() throws Exception - public virtual void testSmallTokenInStream() - { - input = new MockTokenizer(new StringReader("abc de fgh"), MockTokenizer.WHITESPACE, false); - EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 3, 3); - assertTokenStreamContents(tokenizer, new string[]{"abc","fgh"}, new int[]{0,7}, new int[]{3,10}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReset() throws Exception - public virtual void testReset() - { - WhitespaceTokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcde")); - EdgeNGramTokenFilter filter = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, EdgeNGramTokenFilter.Side.FRONT, 1, 3); - assertTokenStreamContents(filter, new string[]{"a","ab","abc"}, new int[]{0,0,0}, new int[]{5,5,5}); - tokenizer.Reader = new StringReader("abcde"); - assertTokenStreamContents(filter, new string[]{"a","ab","abc"}, new int[]{0,0,0}, new int[]{5,5,5}); - } - - // LUCENE-3642 - // EdgeNgram blindly adds term length to offset, but this can take things out of bounds - // wrt original text if a previous filter increases the length of the word (in this case æ -> ae) - // so in this case we behave like WDF, and preserve any modified offsets -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidOffsets() throws Exception - public virtual void testInvalidOffsets() - { - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this); - assertAnalyzesTo(analyzer, "mosfellsbær", new string[] {"mo", "mos", "mosf", "mosfe", "mosfel", "mosfell", "mosfells", "mosfellsb", "mosfellsba", "mosfellsbae", "mosfellsbaer"}, new int[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, new int[] {11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly EdgeNGramTokenFilterTest outerInstance; - - public AnalyzerAnonymousInnerClassHelper(EdgeNGramTokenFilterTest outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - TokenFilter filters = new ASCIIFoldingFilter(tokenizer); - filters = new EdgeNGramTokenFilter(Version.LUCENE_43, filters, EdgeNGramTokenFilter.Side.FRONT, 2, 15); - return new TokenStreamComponents(tokenizer, filters); - } - } - - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - for (int i = 0; i < 10; i++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int min = org.apache.lucene.util.TestUtil.nextInt(random(), 2, 10); - int min = TestUtil.Next(random(), 2, 10); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int max = org.apache.lucene.util.TestUtil.nextInt(random(), min, 20); - int max = TestUtil.Next(random(), min, 20); - - Analyzer a = new AnalyzerAnonymousInnerClassHelper2(this, min, max); - checkRandomData(random(), a, 100 * RANDOM_MULTIPLIER); - } - - Analyzer b = new AnalyzerAnonymousInnerClassHelper3(this); - checkRandomData(random(), b, 1000 * RANDOM_MULTIPLIER, 20, false, false); - } - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - private readonly EdgeNGramTokenFilterTest outerInstance; - - private int min; - private int max; - - public AnalyzerAnonymousInnerClassHelper2(EdgeNGramTokenFilterTest outerInstance, int min, int max) - { - this.outerInstance = outerInstance; - this.min = min; - this.max = max; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, min, max)); - } - } - - private class AnalyzerAnonymousInnerClassHelper3 : Analyzer - { - private readonly EdgeNGramTokenFilterTest outerInstance; - - public AnalyzerAnonymousInnerClassHelper3(EdgeNGramTokenFilterTest outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new EdgeNGramTokenFilter(Version.LUCENE_43, tokenizer, EdgeNGramTokenFilter.Side.BACK, 2, 4)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmptyTerm() throws Exception - public virtual void testEmptyTerm() - { - Random random = random(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper4(this); - checkAnalysisConsistency(random, a, random.nextBoolean(), ""); - - Analyzer b = new AnalyzerAnonymousInnerClassHelper5(this); - checkAnalysisConsistency(random, b, random.nextBoolean(), ""); - } - - private class AnalyzerAnonymousInnerClassHelper4 : Analyzer - { - private readonly EdgeNGramTokenFilterTest outerInstance; - - public AnalyzerAnonymousInnerClassHelper4(EdgeNGramTokenFilterTest outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new KeywordTokenizer(reader); - return new TokenStreamComponents(tokenizer, new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, EdgeNGramTokenFilter.Side.FRONT, 2, 15)); - } - } - - private class AnalyzerAnonymousInnerClassHelper5 : Analyzer - { - private readonly EdgeNGramTokenFilterTest outerInstance; - - public AnalyzerAnonymousInnerClassHelper5(EdgeNGramTokenFilterTest outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new KeywordTokenizer(reader); - return new TokenStreamComponents(tokenizer, new EdgeNGramTokenFilter(Version.LUCENE_43, tokenizer, EdgeNGramTokenFilter.Side.BACK, 2, 15)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testGraphs() throws java.io.IOException - public virtual void testGraphs() - { - TokenStream tk = new LetterTokenizer(TEST_VERSION_CURRENT, new StringReader("abc d efgh ij klmno p q")); - tk = new ShingleFilter(tk); - tk = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tk, 7, 10); - assertTokenStreamContents(tk, new string[] {"efgh ij", "ij klmn", "ij klmno", "klmno p"}, new int[] {6,11,11,14}, new int[] {13,19,19,21}, new int[] {3,1,0,1}, new int[] {2,2,2,2}, 23); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSupplementaryCharacters() throws java.io.IOException - public virtual void testSupplementaryCharacters() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String s = org.apache.lucene.util.TestUtil.randomUnicodeString(random(), 10); - string s = TestUtil.randomUnicodeString(random(), 10); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int codePointCount = s.codePointCount(0, s.length()); - int codePointCount = s.codePointCount(0, s.Length); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 3); - int minGram = TestUtil.Next(random(), 1, 3); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 10); - int maxGram = TestUtil.Next(random(), minGram, 10); - TokenStream tk = new KeywordTokenizer(new StringReader(s)); - tk = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tk, minGram, maxGram); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.tokenattributes.CharTermAttribute termAtt = tk.addAttribute(org.apache.lucene.analysis.tokenattributes.CharTermAttribute.class); - CharTermAttribute termAtt = tk.addAttribute(typeof(CharTermAttribute)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.tokenattributes.OffsetAttribute offsetAtt = tk.addAttribute(org.apache.lucene.analysis.tokenattributes.OffsetAttribute.class); - OffsetAttribute offsetAtt = tk.addAttribute(typeof(OffsetAttribute)); - tk.reset(); - for (int i = minGram; i <= Math.Min(codePointCount, maxGram); ++i) - { - assertTrue(tk.incrementToken()); - assertEquals(0, offsetAtt.startOffset()); - assertEquals(s.Length, offsetAtt.endOffset()); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int end = Character.offsetByCodePoints(s, 0, i); - int end = char.offsetByCodePoints(s, 0, i); - assertEquals(s.Substring(0, end), termAtt.ToString()); - } - assertFalse(tk.incrementToken()); - } - - } - + /// + /// Tests for correctness. + /// + public class EdgeNGramTokenFilterTest : BaseTokenStreamTestCase + { + private TokenStream input; + + public override void SetUp() + { + base.SetUp(); + input = new MockTokenizer(new StringReader("abcde"), MockTokenizer.WHITESPACE, false); + } + + [Test] + public virtual void TestInvalidInput() + { + bool gotException = false; + try + { + new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 0, 0); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestInvalidInput2() + { + bool gotException = false; + try + { + new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 2, 1); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestInvalidInput3() + { + bool gotException = false; + try + { + new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, -1, 2); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestFrontUnigram() + { + EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 1, 1); + AssertTokenStreamContents(tokenizer, new string[] { "a" }, new int[] { 0 }, new int[] { 5 }); + } + + [Test] + public virtual void TestBackUnigram() + { + EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(LuceneVersion.LUCENE_43, input, EdgeNGramTokenFilter.Side.BACK, 1, 1); + AssertTokenStreamContents(tokenizer, new string[] { "e" }, new int[] { 4 }, new int[] { 5 }); + } + + [Test] + public virtual void TestOversizedNgrams() + { + EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 6, 6); + AssertTokenStreamContents(tokenizer, new string[0], new int[0], new int[0]); + } + + [Test] + public virtual void TestFrontRangeOfNgrams() + { + EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 1, 3); + AssertTokenStreamContents(tokenizer, new string[] { "a", "ab", "abc" }, new int[] { 0, 0, 0 }, new int[] { 5, 5, 5 }); + } + + [Test] + public virtual void TestBackRangeOfNgrams() + { + EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(LuceneVersion.LUCENE_43, input, EdgeNGramTokenFilter.Side.BACK, 1, 3); + AssertTokenStreamContents(tokenizer, new string[] { "e", "de", "cde" }, new int[] { 4, 3, 2 }, new int[] { 5, 5, 5 }, null, null, null, null, false); + } + + [Test] + public virtual void TestFilterPositions() + { + TokenStream ts = new MockTokenizer(new StringReader("abcde vwxyz"), MockTokenizer.WHITESPACE, false); + EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, ts, EdgeNGramTokenFilter.Side.FRONT, 1, 3); + AssertTokenStreamContents(tokenizer, new string[] { "a", "ab", "abc", "v", "vw", "vwx" }, new int[] { 0, 0, 0, 6, 6, 6 }, new int[] { 5, 5, 5, 11, 11, 11 }, null, new int[] { 1, 0, 0, 1, 0, 0 }, null, null, false); + } + + private class PositionFilter : TokenFilter + { + + internal readonly IPositionIncrementAttribute posIncrAtt; + internal bool started; + + internal PositionFilter(TokenStream input) : base(input) + { + posIncrAtt = AddAttribute(); + } + + public override sealed bool IncrementToken() + { + if (input.IncrementToken()) + { + if (started) + { + posIncrAtt.PositionIncrement = 0; + } + else + { + started = true; + } + return true; + } + else + { + return false; + } + } + + public override void Reset() + { + base.Reset(); + started = false; + } + } + + [Test] + public virtual void TestFirstTokenPositionIncrement() + { + TokenStream ts = new MockTokenizer(new StringReader("a abc"), MockTokenizer.WHITESPACE, false); + ts = new PositionFilter(ts); // All but first token will get 0 position increment + EdgeNGramTokenFilter filter = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, ts, EdgeNGramTokenFilter.Side.FRONT, 2, 3); + // The first token "a" will not be output, since it's smaller than the mingram size of 2. + // The second token on input to EdgeNGramTokenFilter will have position increment of 0, + // which should be increased to 1, since this is the first output token in the stream. + AssertTokenStreamContents(filter, new string[] { "ab", "abc" }, new int[] { 2, 2 }, new int[] { 5, 5 }, new int[] { 1, 0 }); + } + + [Test] + public virtual void TestSmallTokenInStream() + { + input = new MockTokenizer(new StringReader("abc de fgh"), MockTokenizer.WHITESPACE, false); + EdgeNGramTokenFilter tokenizer = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, input, EdgeNGramTokenFilter.Side.FRONT, 3, 3); + AssertTokenStreamContents(tokenizer, new string[] { "abc", "fgh" }, new int[] { 0, 7 }, new int[] { 3, 10 }); + } + + [Test] + public virtual void TestReset() + { + WhitespaceTokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcde")); + EdgeNGramTokenFilter filter = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, EdgeNGramTokenFilter.Side.FRONT, 1, 3); + AssertTokenStreamContents(filter, new string[] { "a", "ab", "abc" }, new int[] { 0, 0, 0 }, new int[] { 5, 5, 5 }); + tokenizer.Reader = new StringReader("abcde"); + AssertTokenStreamContents(filter, new string[] { "a", "ab", "abc" }, new int[] { 0, 0, 0 }, new int[] { 5, 5, 5 }); + } + + // LUCENE-3642 + // EdgeNgram blindly adds term length to offset, but this can take things out of bounds + // wrt original text if a previous filter increases the length of the word (in this case æ -> ae) + // so in this case we behave like WDF, and preserve any modified offsets + [Test] + public virtual void TestInvalidOffsets() + { + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this); + AssertAnalyzesTo(analyzer, "mosfellsbær", new string[] { "mo", "mos", "mosf", "mosfe", "mosfel", "mosfell", "mosfells", "mosfellsb", "mosfellsba", "mosfellsbae", "mosfellsbaer" }, new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, new int[] { 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 }); + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly EdgeNGramTokenFilterTest outerInstance; + + public AnalyzerAnonymousInnerClassHelper(EdgeNGramTokenFilterTest outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + TokenFilter filters = new ASCIIFoldingFilter(tokenizer); + filters = new EdgeNGramTokenFilter(LuceneVersion.LUCENE_43, filters, EdgeNGramTokenFilter.Side.FRONT, 2, 15); + return new TokenStreamComponents(tokenizer, filters); + } + } + + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + for (int i = 0; i < 10; i++) + { + int min = TestUtil.NextInt(Random(), 2, 10); + int max = TestUtil.NextInt(Random(), min, 20); + + Analyzer a = new AnalyzerAnonymousInnerClassHelper2(this, min, max); + CheckRandomData(Random(), a, 100 * RANDOM_MULTIPLIER); + } + + Analyzer b = new AnalyzerAnonymousInnerClassHelper3(this); + CheckRandomData(Random(), b, 1000 * RANDOM_MULTIPLIER, 20, false, false); + } + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + private readonly EdgeNGramTokenFilterTest outerInstance; + + private int min; + private int max; + + public AnalyzerAnonymousInnerClassHelper2(EdgeNGramTokenFilterTest outerInstance, int min, int max) + { + this.outerInstance = outerInstance; + this.min = min; + this.max = max; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, min, max)); + } + } + + private class AnalyzerAnonymousInnerClassHelper3 : Analyzer + { + private readonly EdgeNGramTokenFilterTest outerInstance; + + public AnalyzerAnonymousInnerClassHelper3(EdgeNGramTokenFilterTest outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new EdgeNGramTokenFilter(LuceneVersion.LUCENE_43, tokenizer, EdgeNGramTokenFilter.Side.BACK, 2, 4)); + } + } + + [Test] + public virtual void TestEmptyTerm() + { + Random random = Random(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper4(this); + CheckAnalysisConsistency(random, a, random.nextBoolean(), ""); + + Analyzer b = new AnalyzerAnonymousInnerClassHelper5(this); + CheckAnalysisConsistency(random, b, random.nextBoolean(), ""); + } + + private class AnalyzerAnonymousInnerClassHelper4 : Analyzer + { + private readonly EdgeNGramTokenFilterTest outerInstance; + + public AnalyzerAnonymousInnerClassHelper4(EdgeNGramTokenFilterTest outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new KeywordTokenizer(reader); + return new TokenStreamComponents(tokenizer, new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, EdgeNGramTokenFilter.Side.FRONT, 2, 15)); + } + } + + private class AnalyzerAnonymousInnerClassHelper5 : Analyzer + { + private readonly EdgeNGramTokenFilterTest outerInstance; + + public AnalyzerAnonymousInnerClassHelper5(EdgeNGramTokenFilterTest outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new KeywordTokenizer(reader); + return new TokenStreamComponents(tokenizer, new EdgeNGramTokenFilter(LuceneVersion.LUCENE_43, tokenizer, EdgeNGramTokenFilter.Side.BACK, 2, 15)); + } + } + + [Test] + public virtual void TestGraphs() + { + TokenStream tk = new LetterTokenizer(TEST_VERSION_CURRENT, new StringReader("abc d efgh ij klmno p q")); + tk = new ShingleFilter(tk); + tk = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tk, 7, 10); + AssertTokenStreamContents(tk, new string[] { "efgh ij", "ij klmn", "ij klmno", "klmno p" }, new int[] { 6, 11, 11, 14 }, new int[] { 13, 19, 19, 21 }, new int[] { 3, 1, 0, 1 }, new int[] { 2, 2, 2, 2 }, 23); + } + + [Test] + public virtual void TestSupplementaryCharacters() + { + string s = TestUtil.RandomUnicodeString(Random(), 10); + int codePointCount = Character.CodePointCount(s, 0, s.Length); + int minGram = TestUtil.NextInt(Random(), 1, 3); + int maxGram = TestUtil.NextInt(Random(), minGram, 10); + TokenStream tk = new KeywordTokenizer(new StringReader(s)); + tk = new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tk, minGram, maxGram); + ICharTermAttribute termAtt = tk.AddAttribute(); + IOffsetAttribute offsetAtt = tk.AddAttribute(); + tk.Reset(); + for (int i = minGram; i <= Math.Min(codePointCount, maxGram); ++i) + { + assertTrue(tk.IncrementToken()); + assertEquals(0, offsetAtt.StartOffset()); + assertEquals(s.Length, offsetAtt.EndOffset()); + int end = Character.OffsetByCodePoints(s, 0, i); + assertEquals(s.Substring(0, end), termAtt.ToString()); + } + assertFalse(tk.IncrementToken()); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizerTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizerTest.cs index d63309676d..992a9dc605 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizerTest.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/EdgeNGramTokenizerTest.cs @@ -1,7 +1,13 @@ -namespace org.apache.lucene.analysis.ngram +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; +using System.IO; +using Reader = System.IO.TextReader; +using Version = Lucene.Net.Util.LuceneVersion; + +namespace Lucene.Net.Analysis.Ngram { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,312 +24,247 @@ * limitations under the License. */ - - - using Version = org.apache.lucene.util.Version; - using TestUtil = org.apache.lucene.util.TestUtil; - - using RandomStrings = com.carrotsearch.randomizedtesting.generators.RandomStrings; - - /// - /// Tests for correctness. - /// - public class EdgeNGramTokenizerTest : BaseTokenStreamTestCase - { - private StringReader input; - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void setUp() throws Exception - public override void setUp() - { - base.setUp(); - input = new StringReader("abcde"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput() throws Exception - public virtual void testInvalidInput() - { - bool gotException = false; - try - { - new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 0, 0); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput2() throws Exception - public virtual void testInvalidInput2() - { - bool gotException = false; - try - { - new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 2, 1); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput3() throws Exception - public virtual void testInvalidInput3() - { - bool gotException = false; - try - { - new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, -1, 2); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFrontUnigram() throws Exception - public virtual void testFrontUnigram() - { - EdgeNGramTokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 1, 1); - assertTokenStreamContents(tokenizer, new string[]{"a"}, new int[]{0}, new int[]{1}, 5); // abcde - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBackUnigram() throws Exception - public virtual void testBackUnigram() - { - Tokenizer tokenizer = new Lucene43EdgeNGramTokenizer(Version.LUCENE_43, input, Lucene43EdgeNGramTokenizer.Side.BACK, 1, 1); - assertTokenStreamContents(tokenizer, new string[]{"e"}, new int[]{4}, new int[]{5}, 5); // abcde - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOversizedNgrams() throws Exception - public virtual void testOversizedNgrams() - { - EdgeNGramTokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 6, 6); - assertTokenStreamContents(tokenizer, new string[0], new int[0], new int[0], 5); // abcde - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFrontRangeOfNgrams() throws Exception - public virtual void testFrontRangeOfNgrams() - { - EdgeNGramTokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 1, 3); - assertTokenStreamContents(tokenizer, new string[]{"a","ab","abc"}, new int[]{0,0,0}, new int[]{1,2,3}, 5); // abcde - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBackRangeOfNgrams() throws Exception - public virtual void testBackRangeOfNgrams() - { - Tokenizer tokenizer = new Lucene43EdgeNGramTokenizer(Version.LUCENE_43, input, Lucene43EdgeNGramTokenizer.Side.BACK, 1, 3); - assertTokenStreamContents(tokenizer, new string[]{"e","de","cde"}, new int[]{4,3,2}, new int[]{5,5,5}, null, null, null, 5, false); // abcde - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReset() throws Exception - public virtual void testReset() - { - EdgeNGramTokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 1, 3); - assertTokenStreamContents(tokenizer, new string[]{"a","ab","abc"}, new int[]{0,0,0}, new int[]{1,2,3}, 5); // abcde - tokenizer.Reader = new StringReader("abcde"); - assertTokenStreamContents(tokenizer, new string[]{"a","ab","abc"}, new int[]{0,0,0}, new int[]{1,2,3}, 5); // abcde - } - - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - for (int i = 0; i < 10; i++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int min = org.apache.lucene.util.TestUtil.nextInt(random(), 2, 10); - int min = TestUtil.Next(random(), 2, 10); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int max = org.apache.lucene.util.TestUtil.nextInt(random(), min, 20); - int max = TestUtil.Next(random(), min, 20); - - Analyzer a = new AnalyzerAnonymousInnerClassHelper(this, min, max); - checkRandomData(random(), a, 100 * RANDOM_MULTIPLIER, 20); - checkRandomData(random(), a, 10 * RANDOM_MULTIPLIER, 8192); - } - - Analyzer b = new AnalyzerAnonymousInnerClassHelper2(this); - checkRandomData(random(), b, 1000 * RANDOM_MULTIPLIER, 20, false, false); - checkRandomData(random(), b, 100 * RANDOM_MULTIPLIER, 8192, false, false); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly EdgeNGramTokenizerTest outerInstance; - - private int min; - private int max; - - public AnalyzerAnonymousInnerClassHelper(EdgeNGramTokenizerTest outerInstance, int min, int max) - { - this.outerInstance = outerInstance; - this.min = min; - this.max = max; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, reader, min, max); - return new TokenStreamComponents(tokenizer, tokenizer); - } - } - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - private readonly EdgeNGramTokenizerTest outerInstance; - - public AnalyzerAnonymousInnerClassHelper2(EdgeNGramTokenizerTest outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new Lucene43EdgeNGramTokenizer(Version.LUCENE_43, reader, Lucene43EdgeNGramTokenizer.Side.BACK, 2, 4); - return new TokenStreamComponents(tokenizer, tokenizer); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTokenizerPositions() throws Exception - public virtual void testTokenizerPositions() - { - Tokenizer tokenizer = new Lucene43EdgeNGramTokenizer(Version.LUCENE_43, input, Lucene43EdgeNGramTokenizer.Side.FRONT, 1, 3); - assertTokenStreamContents(tokenizer, new string[]{"a","ab","abc"}, new int[]{0,0,0}, new int[]{1,2,3}, null, new int[] {1,0,0}, null, null, false); - - tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, new StringReader("abcde"), 1, 3); - assertTokenStreamContents(tokenizer, new string[]{"a","ab","abc"}, new int[]{0,0,0}, new int[]{1,2,3}, null, new int[]{1,1,1}, null, null, false); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private static void testNGrams(int minGram, int maxGram, int length, final String nonTokenChars) throws java.io.IOException -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: - private static void testNGrams(int minGram, int maxGram, int length, string nonTokenChars) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String s = com.carrotsearch.randomizedtesting.generators.RandomStrings.randomAsciiOfLength(random(), length); - string s = RandomStrings.randomAsciiOfLength(random(), length); - testNGrams(minGram, maxGram, s, nonTokenChars); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private static void testNGrams(int minGram, int maxGram, String s, String nonTokenChars) throws java.io.IOException - private static void testNGrams(int minGram, int maxGram, string s, string nonTokenChars) - { - NGramTokenizerTest.testNGrams(minGram, maxGram, s, nonTokenChars, true); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLargeInput() throws java.io.IOException - public virtual void testLargeInput() - { - // test sliding -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 100); - int minGram = TestUtil.Next(random(), 1, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 100); - int maxGram = TestUtil.Next(random(), minGram, 100); - testNGrams(minGram, maxGram, TestUtil.Next(random(), 3 * 1024, 4 * 1024), ""); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLargeMaxGram() throws java.io.IOException - public virtual void testLargeMaxGram() - { - // test sliding with maxGram > 1024 -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1290, 1300); - int minGram = TestUtil.Next(random(), 1290, 1300); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 1300); - int maxGram = TestUtil.Next(random(), minGram, 1300); - testNGrams(minGram, maxGram, TestUtil.Next(random(), 3 * 1024, 4 * 1024), ""); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testPreTokenization() throws java.io.IOException - public virtual void testPreTokenization() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 100); - int minGram = TestUtil.Next(random(), 1, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 100); - int maxGram = TestUtil.Next(random(), minGram, 100); - testNGrams(minGram, maxGram, TestUtil.Next(random(), 0, 4 * 1024), "a"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHeavyPreTokenization() throws java.io.IOException - public virtual void testHeavyPreTokenization() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 100); - int minGram = TestUtil.Next(random(), 1, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 100); - int maxGram = TestUtil.Next(random(), minGram, 100); - testNGrams(minGram, maxGram, TestUtil.Next(random(), 0, 4 * 1024), "abcdef"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFewTokenChars() throws java.io.IOException - public virtual void testFewTokenChars() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final char[] chrs = new char[org.apache.lucene.util.TestUtil.nextInt(random(), 4000, 5000)]; - char[] chrs = new char[TestUtil.Next(random(), 4000, 5000)]; - Arrays.fill(chrs, ' '); - for (int i = 0; i < chrs.Length; ++i) - { - if (random().nextFloat() < 0.1) - { - chrs[i] = 'a'; - } - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 2); - int minGram = TestUtil.Next(random(), 1, 2); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 2); - int maxGram = TestUtil.Next(random(), minGram, 2); - testNGrams(minGram, maxGram, new string(chrs), " "); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFullUTF8Range() throws java.io.IOException - public virtual void testFullUTF8Range() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 100); - int minGram = TestUtil.Next(random(), 1, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 100); - int maxGram = TestUtil.Next(random(), minGram, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String s = org.apache.lucene.util.TestUtil.randomUnicodeString(random(), 4 * 1024); - string s = TestUtil.randomUnicodeString(random(), 4 * 1024); - testNGrams(minGram, maxGram, s, ""); - testNGrams(minGram, maxGram, s, "abcdef"); - } - - } - + /// + /// Tests for correctness. + /// + public class EdgeNGramTokenizerTest : BaseTokenStreamTestCase + { + private StringReader input; + + public override void SetUp() + { + base.SetUp(); + input = new StringReader("abcde"); + } + + [Test] + public virtual void TestInvalidInput() + { + bool gotException = false; + try + { + new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 0, 0); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestInvalidInput2() + { + bool gotException = false; + try + { + new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 2, 1); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestInvalidInput3() + { + bool gotException = false; + try + { + new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, -1, 2); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestFrontUnigram() + { + EdgeNGramTokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 1, 1); + AssertTokenStreamContents(tokenizer, new string[] { "a" }, new int[] { 0 }, new int[] { 1 }, 5); // abcde + } + + [Test] + public virtual void TestBackUnigram() + { + Tokenizer tokenizer = new Lucene43EdgeNGramTokenizer(Version.LUCENE_43, input, Lucene43EdgeNGramTokenizer.Side.BACK, 1, 1); + AssertTokenStreamContents(tokenizer, new string[] { "e" }, new int[] { 4 }, new int[] { 5 }, 5); // abcde + } + + [Test] + public virtual void TestOversizedNgrams() + { + EdgeNGramTokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 6, 6); + AssertTokenStreamContents(tokenizer, new string[0], new int[0], new int[0], 5); // abcde + } + + [Test] + public virtual void TestFrontRangeOfNgrams() + { + EdgeNGramTokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 1, 3); + AssertTokenStreamContents(tokenizer, new string[] { "a", "ab", "abc" }, new int[] { 0, 0, 0 }, new int[] { 1, 2, 3 }, 5); // abcde + } + + [Test] + public virtual void TestBackRangeOfNgrams() + { + Tokenizer tokenizer = new Lucene43EdgeNGramTokenizer(Version.LUCENE_43, input, Lucene43EdgeNGramTokenizer.Side.BACK, 1, 3); + AssertTokenStreamContents(tokenizer, new string[] { "e", "de", "cde" }, new int[] { 4, 3, 2 }, new int[] { 5, 5, 5 }, null, null, null, 5, false); // abcde + } + + [Test] + public virtual void TestReset() + { + EdgeNGramTokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, input, 1, 3); + AssertTokenStreamContents(tokenizer, new string[] { "a", "ab", "abc" }, new int[] { 0, 0, 0 }, new int[] { 1, 2, 3 }, 5); // abcde + tokenizer.Reader = new StringReader("abcde"); + AssertTokenStreamContents(tokenizer, new string[] { "a", "ab", "abc" }, new int[] { 0, 0, 0 }, new int[] { 1, 2, 3 }, 5); // abcde + } + + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + for (int i = 0; i < 10; i++) + { + int min = TestUtil.NextInt(Random(), 2, 10); + int max = TestUtil.NextInt(Random(), min, 20); + + Analyzer a = new AnalyzerAnonymousInnerClassHelper(this, min, max); + CheckRandomData(Random(), a, 100 * RANDOM_MULTIPLIER, 20); + CheckRandomData(Random(), a, 10 * RANDOM_MULTIPLIER, 8192); + } + + Analyzer b = new AnalyzerAnonymousInnerClassHelper2(this); + CheckRandomData(Random(), b, 1000 * RANDOM_MULTIPLIER, 20, false, false); + CheckRandomData(Random(), b, 100 * RANDOM_MULTIPLIER, 8192, false, false); + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly EdgeNGramTokenizerTest outerInstance; + + private int min; + private int max; + + public AnalyzerAnonymousInnerClassHelper(EdgeNGramTokenizerTest outerInstance, int min, int max) + { + this.outerInstance = outerInstance; + this.min = min; + this.max = max; + } + + public override TokenStreamComponents CreateComponents(string fieldName, Reader reader) + { + Tokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, reader, min, max); + return new TokenStreamComponents(tokenizer, tokenizer); + } + } + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + private readonly EdgeNGramTokenizerTest outerInstance; + + public AnalyzerAnonymousInnerClassHelper2(EdgeNGramTokenizerTest outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, Reader reader) + { + Tokenizer tokenizer = new Lucene43EdgeNGramTokenizer(Version.LUCENE_43, reader, Lucene43EdgeNGramTokenizer.Side.BACK, 2, 4); + return new TokenStreamComponents(tokenizer, tokenizer); + } + } + + [Test] + public virtual void TestTokenizerPositions() + { + Tokenizer tokenizer = new Lucene43EdgeNGramTokenizer(Version.LUCENE_43, input, Lucene43EdgeNGramTokenizer.Side.FRONT, 1, 3); + AssertTokenStreamContents(tokenizer, new string[] { "a", "ab", "abc" }, new int[] { 0, 0, 0 }, new int[] { 1, 2, 3 }, null, new int[] { 1, 0, 0 }, null, null, false); + + tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, new StringReader("abcde"), 1, 3); + AssertTokenStreamContents(tokenizer, new string[] { "a", "ab", "abc" }, new int[] { 0, 0, 0 }, new int[] { 1, 2, 3 }, null, new int[] { 1, 1, 1 }, null, null, false); + } + + private static void TestNGrams(int minGram, int maxGram, int length, string nonTokenChars) + { + // LUCENENET TODO: Changed randomizing strategy - not sure if this is right... + //string s = RandomStrings.randomAsciiOfLength(Random(), length); + string s = TestUtil.RandomAnalysisString(Random(), length, true); + TestNGrams(minGram, maxGram, s, nonTokenChars); + } + + private static void TestNGrams(int minGram, int maxGram, string s, string nonTokenChars) + { + NGramTokenizerTest.TestNGrams(minGram, maxGram, s, nonTokenChars, true); + } + + [Test] + public virtual void TestLargeInput() + { + // test sliding + int minGram = TestUtil.NextInt(Random(), 1, 100); + int maxGram = TestUtil.NextInt(Random(), minGram, 100); + TestNGrams(minGram, maxGram, TestUtil.NextInt(Random(), 3 * 1024, 4 * 1024), ""); + } + + [Test] + public virtual void TestLargeMaxGram() + { + // test sliding with maxGram > 1024 + int minGram = TestUtil.NextInt(Random(), 1290, 1300); + int maxGram = TestUtil.NextInt(Random(), minGram, 1300); + TestNGrams(minGram, maxGram, TestUtil.NextInt(Random(), 3 * 1024, 4 * 1024), ""); + } + + [Test] + public virtual void TestPreTokenization() + { + int minGram = TestUtil.NextInt(Random(), 1, 100); + int maxGram = TestUtil.NextInt(Random(), minGram, 100); + TestNGrams(minGram, maxGram, TestUtil.NextInt(Random(), 0, 4 * 1024), "a"); + } + + [Test] + public virtual void TestHeavyPreTokenization() + { + int minGram = TestUtil.NextInt(Random(), 1, 100); + int maxGram = TestUtil.NextInt(Random(), minGram, 100); + TestNGrams(minGram, maxGram, TestUtil.NextInt(Random(), 0, 4 * 1024), "abcdef"); + } + + [Test] + public virtual void TestFewTokenChars() + { + char[] chrs = new char[TestUtil.NextInt(Random(), 4000, 5000)]; + Arrays.Fill(chrs, ' '); + for (int i = 0; i < chrs.Length; ++i) + { + if (Random().NextDouble() < 0.1) + { + chrs[i] = 'a'; + } + } + int minGram = TestUtil.NextInt(Random(), 1, 2); + int maxGram = TestUtil.NextInt(Random(), minGram, 2); + TestNGrams(minGram, maxGram, new string(chrs), " "); + } + + [Test] + public virtual void TestFullUTF8Range() + { + int minGram = TestUtil.NextInt(Random(), 1, 100); + int maxGram = TestUtil.NextInt(Random(), minGram, 100); + string s = TestUtil.RandomUnicodeString(Random(), 4 * 1024); + TestNGrams(minGram, maxGram, s, ""); + TestNGrams(minGram, maxGram, s, "abcdef"); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/NGramTokenFilterTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/NGramTokenFilterTest.cs index 0c9fa9ab79..e4e80327ef 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/NGramTokenFilterTest.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/NGramTokenFilterTest.cs @@ -1,9 +1,15 @@ -using System; - -namespace org.apache.lucene.analysis.ngram +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Miscellaneous; +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; +using System; +using System.IO; + +namespace Lucene.Net.Analysis.Ngram { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,269 +26,222 @@ namespace org.apache.lucene.analysis.ngram * limitations under the License. */ - using KeywordTokenizer = org.apache.lucene.analysis.core.KeywordTokenizer; - using WhitespaceTokenizer = org.apache.lucene.analysis.core.WhitespaceTokenizer; - using ASCIIFoldingFilter = org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilter; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using OffsetAttribute = org.apache.lucene.analysis.tokenattributes.OffsetAttribute; - using TestUtil = org.apache.lucene.util.TestUtil; - using Version = org.apache.lucene.util.Version; - - - /// - /// Tests for correctness. - /// - public class NGramTokenFilterTest : BaseTokenStreamTestCase - { - private TokenStream input; - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void setUp() throws Exception - public override void setUp() - { - base.setUp(); - input = new MockTokenizer(new StringReader("abcde"), MockTokenizer.WHITESPACE, false); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput() throws Exception - public virtual void testInvalidInput() - { - bool gotException = false; - try - { - new NGramTokenFilter(TEST_VERSION_CURRENT, input, 2, 1); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput2() throws Exception - public virtual void testInvalidInput2() - { - bool gotException = false; - try - { - new NGramTokenFilter(TEST_VERSION_CURRENT, input, 0, 1); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testUnigrams() throws Exception - public virtual void testUnigrams() - { - NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 1, 1); - assertTokenStreamContents(filter, new string[]{"a","b","c","d","e"}, new int[]{0,0,0,0,0}, new int[]{5,5,5,5,5}, new int[]{1,0,0,0,0}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBigrams() throws Exception - public virtual void testBigrams() - { - NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 2, 2); - assertTokenStreamContents(filter, new string[]{"ab","bc","cd","de"}, new int[]{0,0,0,0}, new int[]{5,5,5,5}, new int[]{1,0,0,0}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNgrams() throws Exception - public virtual void testNgrams() - { - NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 1, 3); - assertTokenStreamContents(filter, new string[]{"a","ab","abc","b","bc","bcd","c","cd","cde","d","de","e"}, new int[]{0,0,0,0,0,0,0,0,0,0,0,0}, new int[]{5,5,5,5,5,5,5,5,5,5,5,5}, null, new int[]{1,0,0,0,0,0,0,0,0,0,0,0}, null, null, false); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNgramsNoIncrement() throws Exception - public virtual void testNgramsNoIncrement() - { - NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 1, 3); - assertTokenStreamContents(filter, new string[]{"a","ab","abc","b","bc","bcd","c","cd","cde","d","de","e"}, new int[]{0,0,0,0,0,0,0,0,0,0,0,0}, new int[]{5,5,5,5,5,5,5,5,5,5,5,5}, null, new int[]{1,0,0,0,0,0,0,0,0,0,0,0}, null, null, false); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOversizedNgrams() throws Exception - public virtual void testOversizedNgrams() - { - NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 6, 7); - assertTokenStreamContents(filter, new string[0], new int[0], new int[0]); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSmallTokenInStream() throws Exception - public virtual void testSmallTokenInStream() - { - input = new MockTokenizer(new StringReader("abc de fgh"), MockTokenizer.WHITESPACE, false); - NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 3, 3); - assertTokenStreamContents(filter, new string[]{"abc","fgh"}, new int[]{0,7}, new int[]{3,10}, new int[] {1, 2}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReset() throws Exception - public virtual void testReset() - { - WhitespaceTokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcde")); - NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, 1, 1); - assertTokenStreamContents(filter, new string[]{"a","b","c","d","e"}, new int[]{0,0,0,0,0}, new int[]{5,5,5,5,5}, new int[]{1,0,0,0,0}); - tokenizer.Reader = new StringReader("abcde"); - assertTokenStreamContents(filter, new string[]{"a","b","c","d","e"}, new int[]{0,0,0,0,0}, new int[]{5,5,5,5,5}, new int[]{1,0,0,0,0}); - } - - // LUCENE-3642 - // EdgeNgram blindly adds term length to offset, but this can take things out of bounds - // wrt original text if a previous filter increases the length of the word (in this case æ -> ae) - // so in this case we behave like WDF, and preserve any modified offsets -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidOffsets() throws Exception - public virtual void testInvalidOffsets() - { - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this); - assertAnalyzesTo(analyzer, "mosfellsbær", new string[] {"mo", "os", "sf", "fe", "el", "ll", "ls", "sb", "ba", "ae", "er"}, new int[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, new int[] {11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}, new int[] {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly NGramTokenFilterTest outerInstance; - - public AnalyzerAnonymousInnerClassHelper(NGramTokenFilterTest outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - TokenFilter filters = new ASCIIFoldingFilter(tokenizer); - filters = new NGramTokenFilter(TEST_VERSION_CURRENT, filters, 2, 2); - return new TokenStreamComponents(tokenizer, filters); - } - } - - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - for (int i = 0; i < 10; i++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int min = org.apache.lucene.util.TestUtil.nextInt(random(), 2, 10); - int min = TestUtil.Next(random(), 2, 10); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int max = org.apache.lucene.util.TestUtil.nextInt(random(), min, 20); - int max = TestUtil.Next(random(), min, 20); - Analyzer a = new AnalyzerAnonymousInnerClassHelper2(this, min, max); - checkRandomData(random(), a, 200 * RANDOM_MULTIPLIER, 20); - } - } - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - private readonly NGramTokenFilterTest outerInstance; - - private int min; - private int max; - - public AnalyzerAnonymousInnerClassHelper2(NGramTokenFilterTest outerInstance, int min, int max) - { - this.outerInstance = outerInstance; - this.min = min; - this.max = max; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new NGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, min, max)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmptyTerm() throws Exception - public virtual void testEmptyTerm() - { - Random random = random(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper3(this); - checkAnalysisConsistency(random, a, random.nextBoolean(), ""); - } - - private class AnalyzerAnonymousInnerClassHelper3 : Analyzer - { - private readonly NGramTokenFilterTest outerInstance; - - public AnalyzerAnonymousInnerClassHelper3(NGramTokenFilterTest outerInstance) - { - this.outerInstance = outerInstance; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new KeywordTokenizer(reader); - return new TokenStreamComponents(tokenizer, new NGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, 2, 15)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLucene43() throws java.io.IOException - public virtual void testLucene43() - { - NGramTokenFilter filter = new NGramTokenFilter(Version.LUCENE_43, input, 2, 3); - assertTokenStreamContents(filter, new string[]{"ab","bc","cd","de","abc","bcd","cde"}, new int[]{0,1,2,3,0,1,2}, new int[]{2,3,4,5,3,4,5}, null, new int[]{1,1,1,1,1,1,1}, null, null, false); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSupplementaryCharacters() throws java.io.IOException - public virtual void testSupplementaryCharacters() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String s = org.apache.lucene.util.TestUtil.randomUnicodeString(random(), 10); - string s = TestUtil.randomUnicodeString(random(), 10); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int codePointCount = s.codePointCount(0, s.length()); - int codePointCount = s.codePointCount(0, s.Length); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 3); - int minGram = TestUtil.Next(random(), 1, 3); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 10); - int maxGram = TestUtil.Next(random(), minGram, 10); - TokenStream tk = new KeywordTokenizer(new StringReader(s)); - tk = new NGramTokenFilter(TEST_VERSION_CURRENT, tk, minGram, maxGram); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.tokenattributes.CharTermAttribute termAtt = tk.addAttribute(org.apache.lucene.analysis.tokenattributes.CharTermAttribute.class); - CharTermAttribute termAtt = tk.addAttribute(typeof(CharTermAttribute)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.tokenattributes.OffsetAttribute offsetAtt = tk.addAttribute(org.apache.lucene.analysis.tokenattributes.OffsetAttribute.class); - OffsetAttribute offsetAtt = tk.addAttribute(typeof(OffsetAttribute)); - tk.reset(); - for (int start = 0; start < codePointCount; ++start) - { - for (int end = start + minGram; end <= Math.Min(codePointCount, start + maxGram); ++end) - { - assertTrue(tk.incrementToken()); - assertEquals(0, offsetAtt.startOffset()); - assertEquals(s.Length, offsetAtt.endOffset()); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int startIndex = Character.offsetByCodePoints(s, 0, start); - int startIndex = char.offsetByCodePoints(s, 0, start); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int endIndex = Character.offsetByCodePoints(s, 0, end); - int endIndex = char.offsetByCodePoints(s, 0, end); - assertEquals(s.Substring(startIndex, endIndex - startIndex), termAtt.ToString()); - } - } - assertFalse(tk.incrementToken()); - } - - } - + /// + /// Tests for correctness. + /// + public class NGramTokenFilterTest : BaseTokenStreamTestCase + { + private TokenStream input; + + public override void SetUp() + { + base.SetUp(); + input = new MockTokenizer(new StringReader("abcde"), MockTokenizer.WHITESPACE, false); + } + + [Test] + public virtual void TestInvalidInput() + { + bool gotException = false; + try + { + new NGramTokenFilter(TEST_VERSION_CURRENT, input, 2, 1); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestInvalidInput2() + { + bool gotException = false; + try + { + new NGramTokenFilter(TEST_VERSION_CURRENT, input, 0, 1); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestUnigrams() + { + NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 1, 1); + AssertTokenStreamContents(filter, new string[] { "a", "b", "c", "d", "e" }, new int[] { 0, 0, 0, 0, 0 }, new int[] { 5, 5, 5, 5, 5 }, new int[] { 1, 0, 0, 0, 0 }); + } + + [Test] + public virtual void TestBigrams() + { + NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 2, 2); + AssertTokenStreamContents(filter, new string[] { "ab", "bc", "cd", "de" }, new int[] { 0, 0, 0, 0 }, new int[] { 5, 5, 5, 5 }, new int[] { 1, 0, 0, 0 }); + } + + [Test] + public virtual void TestNgrams() + { + NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 1, 3); + AssertTokenStreamContents(filter, new string[] { "a", "ab", "abc", "b", "bc", "bcd", "c", "cd", "cde", "d", "de", "e" }, new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, new int[] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 }, null, new int[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, null, null, false); + } + + [Test] + public virtual void TestNgramsNoIncrement() + { + NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 1, 3); + AssertTokenStreamContents(filter, new string[] { "a", "ab", "abc", "b", "bc", "bcd", "c", "cd", "cde", "d", "de", "e" }, new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, new int[] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 }, null, new int[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, null, null, false); + } + + [Test] + public virtual void TestOversizedNgrams() + { + NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 6, 7); + AssertTokenStreamContents(filter, new string[0], new int[0], new int[0]); + } + + [Test] + public virtual void TestSmallTokenInStream() + { + input = new MockTokenizer(new StringReader("abc de fgh"), MockTokenizer.WHITESPACE, false); + NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, input, 3, 3); + AssertTokenStreamContents(filter, new string[] { "abc", "fgh" }, new int[] { 0, 7 }, new int[] { 3, 10 }, new int[] { 1, 2 }); + } + + [Test] + public virtual void TestReset() + { + WhitespaceTokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcde")); + NGramTokenFilter filter = new NGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, 1, 1); + AssertTokenStreamContents(filter, new string[] { "a", "b", "c", "d", "e" }, new int[] { 0, 0, 0, 0, 0 }, new int[] { 5, 5, 5, 5, 5 }, new int[] { 1, 0, 0, 0, 0 }); + tokenizer.Reader = new StringReader("abcde"); + AssertTokenStreamContents(filter, new string[] { "a", "b", "c", "d", "e" }, new int[] { 0, 0, 0, 0, 0 }, new int[] { 5, 5, 5, 5, 5 }, new int[] { 1, 0, 0, 0, 0 }); + } + + // LUCENE-3642 + // EdgeNgram blindly adds term length to offset, but this can take things out of bounds + // wrt original text if a previous filter increases the length of the word (in this case æ -> ae) + // so in this case we behave like WDF, and preserve any modified offsets + [Test] + public virtual void TestInvalidOffsets() + { + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this); + AssertAnalyzesTo(analyzer, "mosfellsbær", new string[] { "mo", "os", "sf", "fe", "el", "ll", "ls", "sb", "ba", "ae", "er" }, new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, new int[] { 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 }, new int[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }); + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly NGramTokenFilterTest outerInstance; + + public AnalyzerAnonymousInnerClassHelper(NGramTokenFilterTest outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + TokenFilter filters = new ASCIIFoldingFilter(tokenizer); + filters = new NGramTokenFilter(TEST_VERSION_CURRENT, filters, 2, 2); + return new TokenStreamComponents(tokenizer, filters); + } + } + + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + for (int i = 0; i < 10; i++) + { + int min = TestUtil.NextInt(Random(), 2, 10); + int max = TestUtil.NextInt(Random(), min, 20); + Analyzer a = new AnalyzerAnonymousInnerClassHelper2(this, min, max); + CheckRandomData(Random(), a, 200 * RANDOM_MULTIPLIER, 20); + } + } + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + private readonly NGramTokenFilterTest outerInstance; + + private int min; + private int max; + + public AnalyzerAnonymousInnerClassHelper2(NGramTokenFilterTest outerInstance, int min, int max) + { + this.outerInstance = outerInstance; + this.min = min; + this.max = max; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new NGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, min, max)); + } + } + + [Test] + public virtual void TestEmptyTerm() + { + Random random = Random(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper3(this); + CheckAnalysisConsistency(random, a, random.nextBoolean(), ""); + } + + private class AnalyzerAnonymousInnerClassHelper3 : Analyzer + { + private readonly NGramTokenFilterTest outerInstance; + + public AnalyzerAnonymousInnerClassHelper3(NGramTokenFilterTest outerInstance) + { + this.outerInstance = outerInstance; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new KeywordTokenizer(reader); + return new TokenStreamComponents(tokenizer, new NGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, 2, 15)); + } + } + + [Test] + public virtual void TestLucene43() + { + NGramTokenFilter filter = new NGramTokenFilter(LuceneVersion.LUCENE_43, input, 2, 3); + AssertTokenStreamContents(filter, new string[] { "ab", "bc", "cd", "de", "abc", "bcd", "cde" }, new int[] { 0, 1, 2, 3, 0, 1, 2 }, new int[] { 2, 3, 4, 5, 3, 4, 5 }, null, new int[] { 1, 1, 1, 1, 1, 1, 1 }, null, null, false); + } + + [Test] + public virtual void TestSupplementaryCharacters() + { + string s = TestUtil.RandomUnicodeString(Random(), 10); + int codePointCount = Character.CodePointCount(s, 0, s.Length); + int minGram = TestUtil.NextInt(Random(), 1, 3); + int maxGram = TestUtil.NextInt(Random(), minGram, 10); + TokenStream tk = new KeywordTokenizer(new StringReader(s)); + tk = new NGramTokenFilter(TEST_VERSION_CURRENT, tk, minGram, maxGram); + ICharTermAttribute termAtt = tk.AddAttribute(); + IOffsetAttribute offsetAtt = tk.AddAttribute(); + tk.Reset(); + for (int start = 0; start < codePointCount; ++start) + { + for (int end = start + minGram; end <= Math.Min(codePointCount, start + maxGram); ++end) + { + assertTrue(tk.IncrementToken()); + assertEquals(0, offsetAtt.StartOffset()); + assertEquals(s.Length, offsetAtt.EndOffset()); + int startIndex = Character.OffsetByCodePoints(s, 0, start); + int endIndex = Character.OffsetByCodePoints(s, 0, end); + assertEquals(s.Substring(startIndex, endIndex - startIndex), termAtt.ToString()); + } + } + assertFalse(tk.IncrementToken()); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/NGramTokenizerTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/NGramTokenizerTest.cs index 15167bba60..eda97320b6 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/NGramTokenizerTest.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/NGramTokenizerTest.cs @@ -1,7 +1,12 @@ -namespace org.apache.lucene.analysis.ngram -{ +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; +using System.IO; - /* +namespace Lucene.Net.Analysis.Ngram +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,369 +23,281 @@ * limitations under the License. */ -//JAVA TO C# CONVERTER TODO TASK: This Java 'import static' statement cannot be converted to C#: -// import static org.apache.lucene.analysis.ngram.NGramTokenizerTest.isTokenChar; - - - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using OffsetAttribute = org.apache.lucene.analysis.tokenattributes.OffsetAttribute; - using PositionIncrementAttribute = org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute; - using PositionLengthAttribute = org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute; - using TestUtil = org.apache.lucene.util.TestUtil; - - using RandomStrings = com.carrotsearch.randomizedtesting.generators.RandomStrings; - - /// - /// Tests for correctness. - /// - public class NGramTokenizerTest : BaseTokenStreamTestCase - { - private StringReader input; - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void setUp() throws Exception - public override void setUp() - { - base.setUp(); - input = new StringReader("abcde"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput() throws Exception - public virtual void testInvalidInput() - { - bool gotException = false; - try - { - new NGramTokenizer(TEST_VERSION_CURRENT, input, 2, 1); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidInput2() throws Exception - public virtual void testInvalidInput2() - { - bool gotException = false; - try - { - new NGramTokenizer(TEST_VERSION_CURRENT, input, 0, 1); - } - catch (System.ArgumentException) - { - gotException = true; - } - assertTrue(gotException); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testUnigrams() throws Exception - public virtual void testUnigrams() - { - NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 1, 1); - assertTokenStreamContents(tokenizer, new string[]{"a","b","c","d","e"}, new int[]{0,1,2,3,4}, new int[]{1,2,3,4,5}, 5); // abcde - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBigrams() throws Exception - public virtual void testBigrams() - { - NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 2, 2); - assertTokenStreamContents(tokenizer, new string[]{"ab","bc","cd","de"}, new int[]{0,1,2,3}, new int[]{2,3,4,5}, 5); // abcde - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNgrams() throws Exception - public virtual void testNgrams() - { - NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 1, 3); - assertTokenStreamContents(tokenizer, new string[]{"a","ab", "abc", "b", "bc", "bcd", "c", "cd", "cde", "d", "de", "e"}, new int[]{0,0,0,1,1,1,2,2,2,3,3,4}, new int[]{1,2,3,2,3,4,3,4,5,4,5,5}, null, null, null, 5, false); // abcde - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOversizedNgrams() throws Exception - public virtual void testOversizedNgrams() - { - NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 6, 7); - assertTokenStreamContents(tokenizer, new string[0], new int[0], new int[0], 5); // abcde - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReset() throws Exception - public virtual void testReset() - { - NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 1, 1); - assertTokenStreamContents(tokenizer, new string[]{"a","b","c","d","e"}, new int[]{0,1,2,3,4}, new int[]{1,2,3,4,5}, 5); // abcde - tokenizer.Reader = new StringReader("abcde"); - assertTokenStreamContents(tokenizer, new string[]{"a","b","c","d","e"}, new int[]{0,1,2,3,4}, new int[]{1,2,3,4,5}, 5); // abcde - } - - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - for (int i = 0; i < 10; i++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int min = org.apache.lucene.util.TestUtil.nextInt(random(), 2, 10); - int min = TestUtil.Next(random(), 2, 10); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int max = org.apache.lucene.util.TestUtil.nextInt(random(), min, 20); - int max = TestUtil.Next(random(), min, 20); - Analyzer a = new AnalyzerAnonymousInnerClassHelper(this, min, max); - checkRandomData(random(), a, 200 * RANDOM_MULTIPLIER, 20); - checkRandomData(random(), a, 10 * RANDOM_MULTIPLIER, 1027); - } - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly NGramTokenizerTest outerInstance; - - private int min; - private int max; - - public AnalyzerAnonymousInnerClassHelper(NGramTokenizerTest outerInstance, int min, int max) - { - this.outerInstance = outerInstance; - this.min = min; - this.max = max; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, reader, min, max); - return new TokenStreamComponents(tokenizer, tokenizer); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private static void testNGrams(int minGram, int maxGram, int length, final String nonTokenChars) throws java.io.IOException -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: - private static void testNGrams(int minGram, int maxGram, int length, string nonTokenChars) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String s = com.carrotsearch.randomizedtesting.generators.RandomStrings.randomAsciiOfLength(random(), length); - string s = RandomStrings.randomAsciiOfLength(random(), length); - testNGrams(minGram, maxGram, s, nonTokenChars); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private static void testNGrams(int minGram, int maxGram, String s, String nonTokenChars) throws java.io.IOException - private static void testNGrams(int minGram, int maxGram, string s, string nonTokenChars) - { - testNGrams(minGram, maxGram, s, nonTokenChars, false); - } - - internal static int[] toCodePoints(CharSequence s) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int[] codePoints = new int[Character.codePointCount(s, 0, s.length())]; - int[] codePoints = new int[char.codePointCount(s, 0, s.length())]; - for (int i = 0, j = 0; i < s.length(); ++j) - { - codePoints[j] = char.codePointAt(s, i); - i += char.charCount(codePoints[j]); - } - return codePoints; - } - - internal static bool isTokenChar(string nonTokenChars, int codePoint) - { - for (int i = 0; i < nonTokenChars.Length;) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int cp = nonTokenChars.codePointAt(i); - int cp = char.ConvertToUtf32(nonTokenChars, i); - if (cp == codePoint) - { - return false; - } - i += char.charCount(cp); - } - return true; - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: static void testNGrams(int minGram, int maxGram, String s, final String nonTokenChars, boolean edgesOnly) throws java.io.IOException -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: - internal static void testNGrams(int minGram, int maxGram, string s, string nonTokenChars, bool edgesOnly) - { - // convert the string to code points -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int[] codePoints = toCodePoints(s); - int[] codePoints = toCodePoints(s); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int[] offsets = new int[codePoints.length + 1]; - int[] offsets = new int[codePoints.Length + 1]; - for (int i = 0; i < codePoints.Length; ++i) - { - offsets[i + 1] = offsets[i] + char.charCount(codePoints[i]); - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.TokenStream grams = new NGramTokenizer(TEST_VERSION_CURRENT, new java.io.StringReader(s), minGram, maxGram, edgesOnly) - TokenStream grams = new NGramTokenizerAnonymousInnerClassHelper(TEST_VERSION_CURRENT, new StringReader(s), minGram, maxGram, edgesOnly, nonTokenChars); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.tokenattributes.CharTermAttribute termAtt = grams.addAttribute(org.apache.lucene.analysis.tokenattributes.CharTermAttribute.class); - CharTermAttribute termAtt = grams.addAttribute(typeof(CharTermAttribute)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute posIncAtt = grams.addAttribute(org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute.class); - PositionIncrementAttribute posIncAtt = grams.addAttribute(typeof(PositionIncrementAttribute)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute posLenAtt = grams.addAttribute(org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute.class); - PositionLengthAttribute posLenAtt = grams.addAttribute(typeof(PositionLengthAttribute)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.tokenattributes.OffsetAttribute offsetAtt = grams.addAttribute(org.apache.lucene.analysis.tokenattributes.OffsetAttribute.class); - OffsetAttribute offsetAtt = grams.addAttribute(typeof(OffsetAttribute)); - grams.reset(); - for (int start = 0; start < codePoints.Length; ++start) - { - for (int end = start + minGram; end <= start + maxGram && end <= codePoints.Length; ++end) - { - if (edgesOnly && start > 0 && isTokenChar(nonTokenChars, codePoints[start - 1])) - { - // not on an edge - goto nextGramContinue; - } - for (int j = start; j < end; ++j) - { - if (!isTokenChar(nonTokenChars, codePoints[j])) - { - goto nextGramContinue; - } - } - assertTrue(grams.incrementToken()); - assertArrayEquals(Arrays.copyOfRange(codePoints, start, end), toCodePoints(termAtt)); - assertEquals(1, posIncAtt.PositionIncrement); - assertEquals(1, posLenAtt.PositionLength); - assertEquals(offsets[start], offsetAtt.startOffset()); - assertEquals(offsets[end], offsetAtt.endOffset()); - nextGramContinue:; - } - nextGramBreak:; - } - assertFalse(grams.incrementToken()); - grams.end(); - assertEquals(s.Length, offsetAtt.startOffset()); - assertEquals(s.Length, offsetAtt.endOffset()); - } - - private class NGramTokenizerAnonymousInnerClassHelper : NGramTokenizer - { - private string nonTokenChars; - - public NGramTokenizerAnonymousInnerClassHelper(UnknownType TEST_VERSION_CURRENT, StringReader java, int minGram, int maxGram, bool edgesOnly, string nonTokenChars) : base(TEST_VERSION_CURRENT, StringReader, minGram, maxGram, edgesOnly) - { - this.nonTokenChars = nonTokenChars; - } - - protected internal override bool isTokenChar(int chr) - { - return nonTokenChars.IndexOf(chr) < 0; - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLargeInput() throws java.io.IOException - public virtual void testLargeInput() - { - // test sliding -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 100); - int minGram = TestUtil.Next(random(), 1, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 100); - int maxGram = TestUtil.Next(random(), minGram, 100); - testNGrams(minGram, maxGram, TestUtil.Next(random(), 3 * 1024, 4 * 1024), ""); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLargeMaxGram() throws java.io.IOException - public virtual void testLargeMaxGram() - { - // test sliding with maxGram > 1024 -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1290, 1300); - int minGram = TestUtil.Next(random(), 1290, 1300); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 1300); - int maxGram = TestUtil.Next(random(), minGram, 1300); - testNGrams(minGram, maxGram, TestUtil.Next(random(), 3 * 1024, 4 * 1024), ""); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testPreTokenization() throws java.io.IOException - public virtual void testPreTokenization() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 100); - int minGram = TestUtil.Next(random(), 1, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 100); - int maxGram = TestUtil.Next(random(), minGram, 100); - testNGrams(minGram, maxGram, TestUtil.Next(random(), 0, 4 * 1024), "a"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHeavyPreTokenization() throws java.io.IOException - public virtual void testHeavyPreTokenization() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 100); - int minGram = TestUtil.Next(random(), 1, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 100); - int maxGram = TestUtil.Next(random(), minGram, 100); - testNGrams(minGram, maxGram, TestUtil.Next(random(), 0, 4 * 1024), "abcdef"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFewTokenChars() throws java.io.IOException - public virtual void testFewTokenChars() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final char[] chrs = new char[org.apache.lucene.util.TestUtil.nextInt(random(), 4000, 5000)]; - char[] chrs = new char[TestUtil.Next(random(), 4000, 5000)]; - Arrays.fill(chrs, ' '); - for (int i = 0; i < chrs.Length; ++i) - { - if (random().nextFloat() < 0.1) - { - chrs[i] = 'a'; - } - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 2); - int minGram = TestUtil.Next(random(), 1, 2); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 2); - int maxGram = TestUtil.Next(random(), minGram, 2); - testNGrams(minGram, maxGram, new string(chrs), " "); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFullUTF8Range() throws java.io.IOException - public virtual void testFullUTF8Range() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int minGram = org.apache.lucene.util.TestUtil.nextInt(random(), 1, 100); - int minGram = TestUtil.Next(random(), 1, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int maxGram = org.apache.lucene.util.TestUtil.nextInt(random(), minGram, 100); - int maxGram = TestUtil.Next(random(), minGram, 100); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String s = org.apache.lucene.util.TestUtil.randomUnicodeString(random(), 4 * 1024); - string s = TestUtil.randomUnicodeString(random(), 4 * 1024); - testNGrams(minGram, maxGram, s, ""); - testNGrams(minGram, maxGram, s, "abcdef"); - } - - } - + /// + /// Tests for correctness. + /// + public class NGramTokenizerTest : BaseTokenStreamTestCase + { + private StringReader input; + + public override void SetUp() + { + base.SetUp(); + input = new StringReader("abcde"); + } + + [Test] + public virtual void TestInvalidInput() + { + bool gotException = false; + try + { + new NGramTokenizer(TEST_VERSION_CURRENT, input, 2, 1); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestInvalidInput2() + { + bool gotException = false; + try + { + new NGramTokenizer(TEST_VERSION_CURRENT, input, 0, 1); + } + catch (System.ArgumentException) + { + gotException = true; + } + assertTrue(gotException); + } + + [Test] + public virtual void TestUnigrams() + { + NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 1, 1); + AssertTokenStreamContents(tokenizer, new string[] { "a", "b", "c", "d", "e" }, new int[] { 0, 1, 2, 3, 4 }, new int[] { 1, 2, 3, 4, 5 }, 5); // abcde + } + + [Test] + public virtual void TestBigrams() + { + NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 2, 2); + AssertTokenStreamContents(tokenizer, new string[] { "ab", "bc", "cd", "de" }, new int[] { 0, 1, 2, 3 }, new int[] { 2, 3, 4, 5 }, 5); // abcde + } + + [Test] + public virtual void TestNgrams() + { + NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 1, 3); + AssertTokenStreamContents(tokenizer, new string[] { "a", "ab", "abc", "b", "bc", "bcd", "c", "cd", "cde", "d", "de", "e" }, new int[] { 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 4 }, new int[] { 1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 5 }, null, null, null, 5, false); // abcde + } + + [Test] + public virtual void TestOversizedNgrams() + { + NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 6, 7); + AssertTokenStreamContents(tokenizer, new string[0], new int[0], new int[0], 5); // abcde + } + + [Test] + public virtual void TestReset() + { + NGramTokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, input, 1, 1); + AssertTokenStreamContents(tokenizer, new string[] { "a", "b", "c", "d", "e" }, new int[] { 0, 1, 2, 3, 4 }, new int[] { 1, 2, 3, 4, 5 }, 5); // abcde + tokenizer.Reader = new StringReader("abcde"); + AssertTokenStreamContents(tokenizer, new string[] { "a", "b", "c", "d", "e" }, new int[] { 0, 1, 2, 3, 4 }, new int[] { 1, 2, 3, 4, 5 }, 5); // abcde + } + + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + for (int i = 0; i < 10; i++) + { + int min = TestUtil.NextInt(Random(), 2, 10); + int max = TestUtil.NextInt(Random(), min, 20); + Analyzer a = new AnalyzerAnonymousInnerClassHelper(this, min, max); + CheckRandomData(Random(), a, 200 * RANDOM_MULTIPLIER, 20); + CheckRandomData(Random(), a, 10 * RANDOM_MULTIPLIER, 1027); + } + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly NGramTokenizerTest outerInstance; + + private int min; + private int max; + + public AnalyzerAnonymousInnerClassHelper(NGramTokenizerTest outerInstance, int min, int max) + { + this.outerInstance = outerInstance; + this.min = min; + this.max = max; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, reader, min, max); + return new TokenStreamComponents(tokenizer, tokenizer); + } + } + + private static void TestNGrams(int minGram, int maxGram, int length, string nonTokenChars) + { + //string s = RandomStrings.randomAsciiOfLength(Random(), length); + string s = TestUtil.RandomAnalysisString(Random(), length, true); + TestNGrams(minGram, maxGram, s, nonTokenChars); + } + + private static void TestNGrams(int minGram, int maxGram, string s, string nonTokenChars) + { + TestNGrams(minGram, maxGram, s, nonTokenChars, false); + } + + internal static int[] toCodePoints(string s) + { + int[] codePoints = new int[Character.CodePointCount(s, 0, s.Length)]; + for (int i = 0, j = 0; i < s.Length; ++j) + { + codePoints[j] = Character.CodePointAt(s, i); + i += Character.CharCount(codePoints[j]); + } + return codePoints; + } + + internal static bool isTokenChar(string nonTokenChars, int codePoint) + { + for (int i = 0; i < nonTokenChars.Length;) + { + int cp = char.ConvertToUtf32(nonTokenChars, i); + if (cp == codePoint) + { + return false; + } + i += Character.CharCount(cp); + } + return true; + } + + internal static void TestNGrams(int minGram, int maxGram, string s, string nonTokenChars, bool edgesOnly) + { + // convert the string to code points + int[] codePoints = toCodePoints(s); + int[] offsets = new int[codePoints.Length + 1]; + for (int i = 0; i < codePoints.Length; ++i) + { + offsets[i + 1] = offsets[i] + Character.CharCount(codePoints[i]); + } + TokenStream grams = new NGramTokenizerAnonymousInnerClassHelper(TEST_VERSION_CURRENT, new StringReader(s), minGram, maxGram, edgesOnly, nonTokenChars); + ICharTermAttribute termAtt = grams.AddAttribute(); + IPositionIncrementAttribute posIncAtt = grams.AddAttribute(); + IPositionLengthAttribute posLenAtt = grams.AddAttribute(); + IOffsetAttribute offsetAtt = grams.AddAttribute(); + grams.Reset(); + for (int start = 0; start < codePoints.Length; ++start) + { + for (int end = start + minGram; end <= start + maxGram && end <= codePoints.Length; ++end) + { + if (edgesOnly && start > 0 && isTokenChar(nonTokenChars, codePoints[start - 1])) + { + // not on an edge + goto nextGramContinue; + } + for (int j = start; j < end; ++j) + { + if (!isTokenChar(nonTokenChars, codePoints[j])) + { + goto nextGramContinue; + } + } + assertTrue(grams.IncrementToken()); + assertArrayEquals(Arrays.CopyOfRange(codePoints, start, end), toCodePoints(termAtt.ToString())); + assertEquals(1, posIncAtt.PositionIncrement); + assertEquals(1, posLenAtt.PositionLength); + assertEquals(offsets[start], offsetAtt.StartOffset()); + assertEquals(offsets[end], offsetAtt.EndOffset()); + nextGramContinue:; + } + //nextGramBreak:; + } + assertFalse(grams.IncrementToken()); + grams.End(); + assertEquals(s.Length, offsetAtt.StartOffset()); + assertEquals(s.Length, offsetAtt.EndOffset()); + } + + private class NGramTokenizerAnonymousInnerClassHelper : NGramTokenizer + { + private string nonTokenChars; + + public NGramTokenizerAnonymousInnerClassHelper(LuceneVersion TEST_VERSION_CURRENT, StringReader java, int minGram, int maxGram, bool edgesOnly, string nonTokenChars) + : base(TEST_VERSION_CURRENT, java, minGram, maxGram, edgesOnly) + { + this.nonTokenChars = nonTokenChars; + } + + protected internal override bool IsTokenChar(int chr) + { + return nonTokenChars.IndexOf((char)chr) < 0; + } + } + + [Test] + public virtual void TestLargeInput() + { + // test sliding + int minGram = TestUtil.NextInt(Random(), 1, 100); + int maxGram = TestUtil.NextInt(Random(), minGram, 100); + TestNGrams(minGram, maxGram, TestUtil.NextInt(Random(), 3 * 1024, 4 * 1024), ""); + } + + [Test] + public virtual void TestLargeMaxGram() + { + // test sliding with maxGram > 1024 + int minGram = TestUtil.NextInt(Random(), 1290, 1300); + int maxGram = TestUtil.NextInt(Random(), minGram, 1300); + TestNGrams(minGram, maxGram, TestUtil.NextInt(Random(), 3 * 1024, 4 * 1024), ""); + } + + [Test] + public virtual void TestPreTokenization() + { + int minGram = TestUtil.NextInt(Random(), 1, 100); + int maxGram = TestUtil.NextInt(Random(), minGram, 100); + TestNGrams(minGram, maxGram, TestUtil.NextInt(Random(), 0, 4 * 1024), "a"); + } + + [Test] + public virtual void TestHeavyPreTokenization() + { + int minGram = TestUtil.NextInt(Random(), 1, 100); + int maxGram = TestUtil.NextInt(Random(), minGram, 100); + TestNGrams(minGram, maxGram, TestUtil.NextInt(Random(), 0, 4 * 1024), "abcdef"); + } + + [Test] + public virtual void TestFewTokenChars() + { + char[] chrs = new char[TestUtil.NextInt(Random(), 4000, 5000)]; + Arrays.Fill(chrs, ' '); + for (int i = 0; i < chrs.Length; ++i) + { + if (Random().NextDouble() < 0.1) + { + chrs[i] = 'a'; + } + } + int minGram = TestUtil.NextInt(Random(), 1, 2); + int maxGram = TestUtil.NextInt(Random(), minGram, 2); + TestNGrams(minGram, maxGram, new string(chrs), " "); + } + + [Test] + public virtual void TestFullUTF8Range() + { + int minGram = TestUtil.NextInt(Random(), 1, 100); + int maxGram = TestUtil.NextInt(Random(), minGram, 100); + string s = TestUtil.RandomUnicodeString(Random(), 4 * 1024); + TestNGrams(minGram, maxGram, s, ""); + TestNGrams(minGram, maxGram, s, "abcdef"); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/TestNGramFilters.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/TestNGramFilters.cs index 5674622475..5880b1234b 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/TestNGramFilters.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ngram/TestNGramFilters.cs @@ -1,7 +1,12 @@ -namespace org.apache.lucene.analysis.ngram -{ +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using NUnit.Framework; +using System.IO; +using Reader = System.IO.TextReader; - /* +namespace Lucene.Net.Analysis.Ngram +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,186 +23,170 @@ * limitations under the License. */ - - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - using Version = org.apache.lucene.util.Version; - - /// - /// Simple tests to ensure the NGram filter factories are working. - /// - public class TestNGramFilters : BaseTokenStreamFactoryTestCase - { - /// - /// Test NGramTokenizerFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNGramTokenizer() throws Exception - public virtual void testNGramTokenizer() - { - Reader reader = new StringReader("test"); - TokenStream stream = tokenizerFactory("NGram").create(reader); - assertTokenStreamContents(stream, new string[] {"t", "te", "e", "es", "s", "st", "t"}); - } - - /// - /// Test NGramTokenizerFactory with min and max gram options - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNGramTokenizer2() throws Exception - public virtual void testNGramTokenizer2() - { - Reader reader = new StringReader("test"); - TokenStream stream = tokenizerFactory("NGram", "minGramSize", "2", "maxGramSize", "3").create(reader); - assertTokenStreamContents(stream, new string[] {"te", "tes", "es", "est", "st"}); - } - - /// - /// Test the NGramFilterFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNGramFilter() throws Exception - public virtual void testNGramFilter() - { - Reader reader = new StringReader("test"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("NGram").create(stream); - assertTokenStreamContents(stream, new string[] {"t", "te", "e", "es", "s", "st", "t"}); - } - - /// - /// Test the NGramFilterFactory with min and max gram options - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testNGramFilter2() throws Exception - public virtual void testNGramFilter2() - { - Reader reader = new StringReader("test"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("NGram", "minGramSize", "2", "maxGramSize", "3").create(stream); - assertTokenStreamContents(stream, new string[] {"te", "tes", "es", "est", "st"}); - } - - /// - /// Test EdgeNGramTokenizerFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEdgeNGramTokenizer() throws Exception - public virtual void testEdgeNGramTokenizer() - { - Reader reader = new StringReader("test"); - TokenStream stream = tokenizerFactory("EdgeNGram").create(reader); - assertTokenStreamContents(stream, new string[] {"t"}); - } - - /// - /// Test EdgeNGramTokenizerFactory with min and max gram size - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEdgeNGramTokenizer2() throws Exception - public virtual void testEdgeNGramTokenizer2() - { - Reader reader = new StringReader("test"); - TokenStream stream = tokenizerFactory("EdgeNGram", "minGramSize", "1", "maxGramSize", "2").create(reader); - assertTokenStreamContents(stream, new string[] {"t", "te"}); - } - - /// - /// Test EdgeNGramTokenizerFactory with side option - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEdgeNGramTokenizer3() throws Exception - public virtual void testEdgeNGramTokenizer3() - { - Reader reader = new StringReader("ready"); - TokenStream stream = tokenizerFactory("EdgeNGram", Version.LUCENE_43, "side", "back").create(reader); - assertTokenStreamContents(stream, new string[] {"y"}); - } - - /// - /// Test EdgeNGramFilterFactory - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEdgeNGramFilter() throws Exception - public virtual void testEdgeNGramFilter() - { - Reader reader = new StringReader("test"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("EdgeNGram").create(stream); - assertTokenStreamContents(stream, new string[] {"t"}); - } - - /// - /// Test EdgeNGramFilterFactory with min and max gram size - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEdgeNGramFilter2() throws Exception - public virtual void testEdgeNGramFilter2() - { - Reader reader = new StringReader("test"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("EdgeNGram", "minGramSize", "1", "maxGramSize", "2").create(stream); - assertTokenStreamContents(stream, new string[] {"t", "te"}); - } - - /// - /// Test EdgeNGramFilterFactory with side option - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEdgeNGramFilter3() throws Exception - public virtual void testEdgeNGramFilter3() - { - Reader reader = new StringReader("ready"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("EdgeNGram", Version.LUCENE_43, "side", "back").create(stream); - assertTokenStreamContents(stream, new string[] {"y"}); - } - - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenizerFactory("NGram", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenizerFactory("EdgeNGram", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenFilterFactory("NGram", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - - try - { - tokenFilterFactory("EdgeNGram", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - } - + /// + /// Simple tests to ensure the NGram filter factories are working. + /// + public class TestNGramFilters : BaseTokenStreamFactoryTestCase + { + /// + /// Test NGramTokenizerFactory + /// + [Test] + public virtual void TestNGramTokenizer() + { + Reader reader = new StringReader("test"); + TokenStream stream = TokenizerFactory("NGram").Create(reader); + AssertTokenStreamContents(stream, new string[] { "t", "te", "e", "es", "s", "st", "t" }); + } + + /// + /// Test NGramTokenizerFactory with min and max gram options + /// + [Test] + public virtual void TestNGramTokenizer2() + { + Reader reader = new StringReader("test"); + TokenStream stream = TokenizerFactory("NGram", "minGramSize", "2", "maxGramSize", "3").Create(reader); + AssertTokenStreamContents(stream, new string[] { "te", "tes", "es", "est", "st" }); + } + + /// + /// Test the NGramFilterFactory + /// + [Test] + public virtual void TestNGramFilter() + { + Reader reader = new StringReader("test"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("NGram").Create(stream); + AssertTokenStreamContents(stream, new string[] { "t", "te", "e", "es", "s", "st", "t" }); + } + + /// + /// Test the NGramFilterFactory with min and max gram options + /// + [Test] + public virtual void TestNGramFilter2() + { + Reader reader = new StringReader("test"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("NGram", "minGramSize", "2", "maxGramSize", "3").Create(stream); + AssertTokenStreamContents(stream, new string[] { "te", "tes", "es", "est", "st" }); + } + + /// + /// Test EdgeNGramTokenizerFactory + /// + [Test] + public virtual void TestEdgeNGramTokenizer() + { + Reader reader = new StringReader("test"); + TokenStream stream = TokenizerFactory("EdgeNGram").Create(reader); + AssertTokenStreamContents(stream, new string[] { "t" }); + } + + /// + /// Test EdgeNGramTokenizerFactory with min and max gram size + /// + [Test] + public virtual void TestEdgeNGramTokenizer2() + { + Reader reader = new StringReader("test"); + TokenStream stream = TokenizerFactory("EdgeNGram", "minGramSize", "1", "maxGramSize", "2").Create(reader); + AssertTokenStreamContents(stream, new string[] { "t", "te" }); + } + + /// + /// Test EdgeNGramTokenizerFactory with side option + /// + [Test] + public virtual void TestEdgeNGramTokenizer3() + { + Reader reader = new StringReader("ready"); + TokenStream stream = TokenizerFactory("EdgeNGram", LuceneVersion.LUCENE_43, "side", "back").Create(reader); + AssertTokenStreamContents(stream, new string[] { "y" }); + } + + /// + /// Test EdgeNGramFilterFactory + /// + [Test] + public virtual void TestEdgeNGramFilter() + { + Reader reader = new StringReader("test"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("EdgeNGram").Create(stream); + AssertTokenStreamContents(stream, new string[] { "t" }); + } + + /// + /// Test EdgeNGramFilterFactory with min and max gram size + /// + [Test] + public virtual void TestEdgeNGramFilter2() + { + Reader reader = new StringReader("test"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("EdgeNGram", "minGramSize", "1", "maxGramSize", "2").Create(stream); + AssertTokenStreamContents(stream, new string[] { "t", "te" }); + } + + /// + /// Test EdgeNGramFilterFactory with side option + /// + [Test] + public virtual void TestEdgeNGramFilter3() + { + Reader reader = new StringReader("ready"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("EdgeNGram", LuceneVersion.LUCENE_43, "side", "back").Create(stream); + AssertTokenStreamContents(stream, new string[] { "y" }); + } + + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenizerFactory("NGram", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenizerFactory("EdgeNGram", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenFilterFactory("NGram", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + + try + { + TokenFilterFactory("EdgeNGram", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 9a01f5975d..2009d7c428 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -103,6 +103,11 @@ + + + + + From 1b159823b552df971d68dd7a72b3d8b1622f5f7d Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Sun, 14 Aug 2016 15:40:31 +0700 Subject: [PATCH 070/141] Ported Analysis.Synonym namespace + tests. --- .../Synonym/FSTSynonymFilterFactory.cs | 83 +- .../Analysis/Synonym/SlowSynonymFilter.cs | 578 ++-- .../Synonym/SlowSynonymFilterFactory.cs | 660 +++-- .../Analysis/Synonym/SlowSynonymMap.cs | 11 +- .../Analysis/Synonym/SolrSynonymParser.cs | 377 ++- .../Analysis/Synonym/SynonymFilter.cs | 1442 +++++----- .../Analysis/Synonym/SynonymFilterFactory.cs | 43 +- .../Analysis/Synonym/SynonymMap.cs | 744 +++-- .../Analysis/Synonym/WordnetSynonymParser.cs | 190 +- .../Lucene.Net.Analysis.Common.csproj | 9 + .../Analysis/Synonym/TestMultiWordSynonyms.cs | 79 +- .../Analysis/Synonym/TestSlowSynonymFilter.cs | 728 +++-- .../Analysis/Synonym/TestSolrSynonymParser.cs | 306 +- .../Synonym/TestSynonymFilterFactory.cs | 369 ++- .../Analysis/Synonym/TestSynonymMap.cs | 660 +++-- .../Analysis/Synonym/TestSynonymMapFilter.cs | 2534 ++++++++--------- .../Synonym/TestWordnetSynonymParser.cs | 107 +- .../Analysis/Synonym/synonyms-wordnet.txt | 3 + .../Analysis/Synonym/synonyms.txt | 31 + .../Lucene.Net.Tests.Analysis.Common.csproj | 11 + 20 files changed, 4382 insertions(+), 4583 deletions(-) create mode 100644 src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/synonyms-wordnet.txt create mode 100644 src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/synonyms.txt diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/FSTSynonymFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/FSTSynonymFilterFactory.cs index 651477a0aa..2a01557705 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/FSTSynonymFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/FSTSynonymFilterFactory.cs @@ -1,15 +1,16 @@ -using System; -using System.Collections; +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using System; using System.Collections.Generic; +using System.Globalization; using System.IO; +using System.Reflection; +using System.Text; using System.Text.RegularExpressions; -using Lucene.Net.Analysis.Core; -using Lucene.Net.Analysis.Util; -using Lucene.Net.Util; namespace Lucene.Net.Analysis.Synonym { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -26,9 +27,9 @@ namespace Lucene.Net.Analysis.Synonym * See the License for the specific language governing permissions and * limitations under the License. */ - internal sealed class FSTSynonymFilterFactory : TokenFilterFactory, ResourceLoaderAware + internal sealed class FSTSynonymFilterFactory : TokenFilterFactory, IResourceLoaderAware { - private readonly bool ignoreCase; + internal readonly bool ignoreCase; private readonly string tokenizerFactory; private readonly string synonyms; private readonly string format; @@ -41,21 +42,22 @@ internal sealed class FSTSynonymFilterFactory : TokenFilterFactory, ResourceLoad public FSTSynonymFilterFactory(IDictionary args) : base(args) { - ignoreCase = getBoolean(args, "ignoreCase", false); - synonyms = require(args, "synonyms"); - format = get(args, "format"); - expand = getBoolean(args, "expand", true); + ignoreCase = GetBoolean(args, "ignoreCase", false); + synonyms = Require(args, "synonyms"); + format = Get(args, "format"); + expand = GetBoolean(args, "expand", true); - tokenizerFactory = get(args, "tokenizerFactory"); + tokenizerFactory = Get(args, "tokenizerFactory"); if (tokenizerFactory != null) { - assureMatchVersion(); + AssureMatchVersion(); tokArgs["luceneMatchVersion"] = LuceneMatchVersion.ToString(); - for (var itr = args.Keys.GetEnumerator(); itr.MoveNext(); ) + + var keys = new List(args.Keys); + foreach (string key in keys) { - var key = itr.Current; - tokArgs[Regex.Replace(itr.Current, "^tokenizerFactory\\.", string.Empty)] = args[key]; - itr.Remove(); + tokArgs[Regex.Replace(key, "^tokenizerFactory\\.", "")] = args[key]; + args.Remove(key); } } if (args.Count > 0) @@ -71,7 +73,7 @@ public override TokenStream Create(TokenStream input) return map.fst == null ? input : new SynonymFilter(input, map, ignoreCase); } - public void Inform(ResourceLoader loader) + public void Inform(IResourceLoader loader) { TokenizerFactory factory = tokenizerFactory == null ? null : LoadTokenizerFactory(loader, tokenizerFactory); @@ -82,16 +84,16 @@ public void Inform(ResourceLoader loader) string formatClass = format; if (format == null || format.Equals("solr")) { - formatClass = typeof(SolrSynonymParser).Name; + formatClass = typeof(SolrSynonymParser).AssemblyQualifiedName; } else if (format.Equals("wordnet")) { - formatClass = typeof(WordnetSynonymParser).Name; + formatClass = typeof(WordnetSynonymParser).AssemblyQualifiedName; } // TODO: expose dedup as a parameter? map = LoadSynonyms(loader, formatClass, true, analyzer); } - catch (ParseException e) + catch (Exception e) { throw new IOException("Error parsing synonyms file:", e); } @@ -112,7 +114,7 @@ public AnalyzerAnonymousInnerClassHelper(FSTSynonymFilterFactory outerInstance, public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) { Tokenizer tokenizer = factory == null ? new WhitespaceTokenizer(LuceneVersion.LUCENE_CURRENT, reader) : factory.Create(reader); - TokenStream stream = outerInstance.ignoreCase ? new LowerCaseFilter(LuceneVersion.LUCENE_CURRENT, tokenizer) : tokenizer; + TokenStream stream = outerInstance.ignoreCase ? (TokenStream)new LowerCaseFilter(LuceneVersion.LUCENE_CURRENT, tokenizer) : tokenizer; return new Analyzer.TokenStreamComponents(tokenizer, stream); } } @@ -120,56 +122,57 @@ public override TokenStreamComponents CreateComponents(string fieldName, TextRea /// /// Load synonyms with the given class. /// - private SynonymMap LoadSynonyms(ResourceLoader loader, string cname, bool dedup, Analyzer analyzer) + private SynonymMap LoadSynonyms(IResourceLoader loader, string cname, bool dedup, Analyzer analyzer) { - CharsetDecoder decoder = Charset.forName("UTF-8").newDecoder().onMalformedInput(CodingErrorAction.REPORT).onUnmappableCharacter(CodingErrorAction.REPORT); + Encoding decoder = Encoding.UTF8; SynonymMap.Parser parser; - Type clazz = loader.findClass(cname, typeof(SynonymMap.Parser)); + Type clazz = loader.FindClass(cname /*, typeof(SynonymMap.Parser) */); try { - parser = clazz.getConstructor(typeof(bool), typeof(bool), typeof(Analyzer)).newInstance(dedup, expand, analyzer); + parser = (SynonymMap.Parser)Activator.CreateInstance(clazz, + BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, + null, new object[] { dedup, expand, analyzer }, CultureInfo.InvariantCulture); } catch (Exception e) { - throw new Exception(e); + throw e; } if (File.Exists(synonyms)) { - decoder.Reset(); - parser.Parse(new InputStreamReader(loader.openResource(synonyms), decoder)); + parser.Parse(new StreamReader(loader.OpenResource(synonyms), decoder)); } else { - IList files = splitFileNames(synonyms); + IEnumerable files = SplitFileNames(synonyms); foreach (string file in files) { - decoder.reset(); - parser.Parse(new InputStreamReader(loader.openResource(file), decoder)); + parser.Parse(new StreamReader(loader.OpenResource(synonyms), decoder)); } } return parser.Build(); } // (there are no tests for this functionality) - private TokenizerFactory LoadTokenizerFactory(ResourceLoader loader, string cname) + private TokenizerFactory LoadTokenizerFactory(IResourceLoader loader, string cname) { - Type clazz = loader.findClass(cname, typeof(TokenizerFactory)); + Type clazz = loader.FindClass(cname /*, typeof(TokenizerFactory) */); try { - TokenizerFactory tokFactory = clazz.getConstructor(typeof(IDictionary)).newInstance(tokArgs); - if (tokFactory is ResourceLoaderAware) + TokenizerFactory tokFactory = (TokenizerFactory)Activator.CreateInstance(clazz, + BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, + null, new object[] { tokArgs }, CultureInfo.InvariantCulture); + if (tokFactory is IResourceLoaderAware) { - ((ResourceLoaderAware)tokFactory).inform(loader); + ((IResourceLoaderAware)tokFactory).Inform(loader); } return tokFactory; } catch (Exception e) { - throw new Exception(e); + throw e; } } } - } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymFilter.cs index 511f333ecc..d06821ceb4 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymFilter.cs @@ -5,8 +5,7 @@ namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -22,284 +21,301 @@ namespace Lucene.Net.Analysis.Synonym * See the License for the specific language governing permissions and * limitations under the License. */ - /// - /// SynonymFilter handles multi-token synonyms with variable position increment offsets. - /// - /// The matched tokens from the input stream may be optionally passed through (includeOrig=true) - /// or discarded. If the original tokens are included, the position increments may be modified - /// to retain absolute positions after merging with the synonym tokenstream. - /// - /// - /// Generated synonyms will start at the same position as the first matched source token. - /// - /// - /// @deprecated (3.4) use instead. only for precise index backwards compatibility. this factory will be removed in Lucene 5.0 - [Obsolete("(3.4) use instead. only for precise index backwards compatibility. this factory will be removed in Lucene 5.0")] - internal sealed class SlowSynonymFilter : TokenFilter - { - - private readonly SlowSynonymMap map; // Map - private IEnumerator replacement; // iterator over generated tokens - - public SlowSynonymFilter(TokenStream @in, SlowSynonymMap map) : base(@in) - { - if (map == null) - { - throw new System.ArgumentException("map is required", "map"); - } - - this.map = map; - // just ensuring these attributes exist... - AddAttribute(); - AddAttribute < IPositionIncrementAttribute>(); - AddAttribute < IOffsetAttribute>(); - AddAttribute < TypeAttribute>(); - } - - - /* - * Need to worry about multiple scenarios: - * - need to go for the longest match - * a b => foo #shouldn't match if "a b" is followed by "c d" - * a b c d => bar - * - need to backtrack - retry matches for tokens already read - * a b c d => foo - * b c => bar - * If the input stream is "a b c x", one will consume "a b c d" - * trying to match the first rule... all but "a" should be - * pushed back so a match may be made on "b c". - * - don't try and match generated tokens (thus need separate queue) - * matching is not recursive. - * - handle optional generation of original tokens in all these cases, - * merging token streams to preserve token positions. - * - preserve original positionIncrement of first matched token - */ - public override bool IncrementToken() - { - while (true) - { - // if there are any generated tokens, return them... don't try any - // matches against them, as we specifically don't want recursion. - if (replacement != null && replacement.MoveNext()) - { - copy(this, replacement.Current); - return true; - } - - // common case fast-path of first token not matching anything - AttributeSource firstTok = nextTok(); - if (firstTok == null) - { - return false; - } - var termAtt = firstTok.AddAttribute(); - SlowSynonymMap result = map.submap != null ? map.submap.Get(termAtt.Buffer(), 0, termAtt.Length) : null; - if (result == null) - { - copy(this, firstTok); - return true; - } - - // fast-path failed, clone ourselves if needed - if (firstTok == this) - { - firstTok = CloneAttributes(); - } - // OK, we matched a token, so find the longest match. - - matched = new LinkedList<>(); - - result = match(result); - - if (result == null) - { - // no match, simply return the first token read. - copy(this, firstTok); - return true; - } - - // reuse, or create new one each time? - List generated = new List(result.synonyms.Length + matched.Count + 1); - - // - // there was a match... let's generate the new tokens, merging - // in the matched tokens (position increments need adjusting) - // - AttributeSource lastTok = matched.Count == 0 ? firstTok : matched.Last.Value; - bool includeOrig = result.IncludeOrig; - - AttributeSource origTok = includeOrig ? firstTok : null; - PositionIncrementAttribute firstPosIncAtt = firstTok.addAttribute(typeof(PositionIncrementAttribute)); - int origPos = firstPosIncAtt.PositionIncrement; // position of origTok in the original stream - int repPos = 0; // curr position in replacement token stream - int pos = 0; // current position in merged token stream - - for (int i = 0; i < result.synonyms.Length; i++) - { - Token repTok = result.synonyms[i]; - AttributeSource newTok = firstTok.cloneAttributes(); - CharTermAttribute newTermAtt = newTok.addAttribute(typeof(CharTermAttribute)); - OffsetAttribute newOffsetAtt = newTok.addAttribute(typeof(OffsetAttribute)); - PositionIncrementAttribute newPosIncAtt = newTok.addAttribute(typeof(PositionIncrementAttribute)); - - OffsetAttribute lastOffsetAtt = lastTok.addAttribute(typeof(OffsetAttribute)); - - newOffsetAtt.setOffset(newOffsetAtt.startOffset(), lastOffsetAtt.endOffset()); - newTermAtt.copyBuffer(repTok.buffer(), 0, repTok.length()); - repPos += repTok.PositionIncrement; - if (i == 0) // make position of first token equal to original - { - repPos = origPos; - } - - // if necessary, insert original tokens and adjust position increment - while (origTok != null && origPos <= repPos) - { - PositionIncrementAttribute origPosInc = origTok.addAttribute(typeof(PositionIncrementAttribute)); - origPosInc.PositionIncrement = origPos - pos; - generated.Add(origTok); - pos += origPosInc.PositionIncrement; - origTok = matched.Count == 0 ? null : matched.RemoveFirst(); - if (origTok != null) - { - origPosInc = origTok.addAttribute(typeof(PositionIncrementAttribute)); - origPos += origPosInc.PositionIncrement; - } - } - - newPosIncAtt.PositionIncrement = repPos - pos; - generated.Add(newTok); - pos += newPosIncAtt.PositionIncrement; - } - - // finish up any leftover original tokens - while (origTok != null) - { - PositionIncrementAttribute origPosInc = origTok.addAttribute(typeof(PositionIncrementAttribute)); - origPosInc.PositionIncrement = origPos - pos; - generated.Add(origTok); - pos += origPosInc.PositionIncrement; - origTok = matched.Count == 0 ? null : matched.RemoveFirst(); - if (origTok != null) - { - origPosInc = origTok.addAttribute(typeof(PositionIncrementAttribute)); - origPos += origPosInc.PositionIncrement; - } - } - - // what if we replaced a longer sequence with a shorter one? - // a/0 b/5 => foo/0 - // should I re-create the gap on the next buffered token? - - replacement = generated.GetEnumerator(); - // Now return to the top of the loop to read and return the first - // generated token.. The reason this is done is that we may have generated - // nothing at all, and may need to continue with more matching logic. - } - } - - - // - // Defer creation of the buffer until the first time it is used to - // optimize short fields with no matches. - // - private LinkedList buffer; - private LinkedList matched; - - private bool exhausted; - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private org.apache.lucene.util.AttributeSource nextTok() throws java.io.IOException - private AttributeSource nextTok() - { - if (buffer != null && buffer.Count > 0) - { - return buffer.RemoveFirst(); - } - else - { - if (!exhausted && input.incrementToken()) - { - return this; - } - else - { - exhausted = true; - return null; - } - } - } - - private void pushTok(AttributeSource t) - { - if (buffer == null) - { - buffer = new LinkedList<>(); - } - buffer.AddFirst(t); - } - - private SlowSynonymMap match(SlowSynonymMap map) - { - SlowSynonymMap result = null; - - if (map.submap != null) - { - AttributeSource tok = nextTok(); - if (tok != null) - { - // clone ourselves. - if (tok == this) - { - tok = CloneAttributes(); - } - // check for positionIncrement!=1? if>1, should not match, if==0, check multiple at this level? - var termAtt = tok.GetAttribute < ICharTermAttribute>(); - SlowSynonymMap subMap = map.submap.Get(termAtt.buffer(), 0, termAtt.length()); - - if (subMap != null) - { - // recurse - result = match(subMap); - } - - if (result != null) - { - matched.AddFirst(tok); - } - else - { - // push back unmatched token - pushTok(tok); - } - } - } - - // if no longer sequence matched, so if this node has synonyms, it's the match. - if (result == null && map.synonyms != null) - { - result = map; - } - - return result; - } - - private void copy(AttributeSource target, AttributeSource source) - { - if (target != source) - { - source.copyTo(target); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void reset() throws java.io.IOException - public override void reset() - { - input.reset(); - replacement = null; - exhausted = false; - } - } + /// + /// SynonymFilter handles multi-token synonyms with variable position increment offsets. + /// + /// The matched tokens from the input stream may be optionally passed through (includeOrig=true) + /// or discarded. If the original tokens are included, the position increments may be modified + /// to retain absolute positions after merging with the synonym tokenstream. + /// + /// + /// Generated synonyms will start at the same position as the first matched source token. + /// + /// + /// @deprecated (3.4) use instead. only for precise index backwards compatibility. this factory will be removed in Lucene 5.0 + [Obsolete("(3.4) use instead. only for precise index backwards compatibility. this factory will be removed in Lucene 5.0")] + internal sealed class SlowSynonymFilter : TokenFilter + { + + private readonly SlowSynonymMap map; // Map + private IEnumerator replacement; // iterator over generated tokens + + public SlowSynonymFilter(TokenStream @in, SlowSynonymMap map) : base(@in) + { + if (map == null) + { + throw new System.ArgumentException("map is required", "map"); + } + + this.map = map; + // just ensuring these attributes exist... + AddAttribute(); + AddAttribute(); + AddAttribute(); + AddAttribute(); + } + + + /* + * Need to worry about multiple scenarios: + * - need to go for the longest match + * a b => foo #shouldn't match if "a b" is followed by "c d" + * a b c d => bar + * - need to backtrack - retry matches for tokens already read + * a b c d => foo + * b c => bar + * If the input stream is "a b c x", one will consume "a b c d" + * trying to match the first rule... all but "a" should be + * pushed back so a match may be made on "b c". + * - don't try and match generated tokens (thus need separate queue) + * matching is not recursive. + * - handle optional generation of original tokens in all these cases, + * merging token streams to preserve token positions. + * - preserve original positionIncrement of first matched token + */ + public override bool IncrementToken() + { + while (true) + { + // if there are any generated tokens, return them... don't try any + // matches against them, as we specifically don't want recursion. + if (replacement != null && replacement.MoveNext()) + { + Copy(this, replacement.Current); + return true; + } + + // common case fast-path of first token not matching anything + AttributeSource firstTok = NextTok(); + if (firstTok == null) + { + return false; + } + var termAtt = firstTok.AddAttribute(); + SlowSynonymMap result = map.submap != null ? map.submap.Get(termAtt.Buffer(), 0, termAtt.Length) : null; + if (result == null) + { + Copy(this, firstTok); + return true; + } + + // fast-path failed, clone ourselves if needed + if (firstTok == this) + { + firstTok = CloneAttributes(); + } + // OK, we matched a token, so find the longest match. + + matched = new LinkedList(); + + result = Match(result); + + if (result == null) + { + // no match, simply return the first token read. + Copy(this, firstTok); + return true; + } + + // reuse, or create new one each time? + List generated = new List(result.synonyms.Length + matched.Count + 1); + + // + // there was a match... let's generate the new tokens, merging + // in the matched tokens (position increments need adjusting) + // + AttributeSource lastTok = matched.Count == 0 ? firstTok : matched.Last.Value; + bool includeOrig = result.IncludeOrig; + + AttributeSource origTok = includeOrig ? firstTok : null; + IPositionIncrementAttribute firstPosIncAtt = firstTok.AddAttribute(); + int origPos = firstPosIncAtt.PositionIncrement; // position of origTok in the original stream + int repPos = 0; // curr position in replacement token stream + int pos = 0; // current position in merged token stream + + for (int i = 0; i < result.synonyms.Length; i++) + { + Token repTok = result.synonyms[i]; + AttributeSource newTok = firstTok.CloneAttributes(); + ICharTermAttribute newTermAtt = newTok.AddAttribute(); + IOffsetAttribute newOffsetAtt = newTok.AddAttribute(); + IPositionIncrementAttribute newPosIncAtt = newTok.AddAttribute(); + + IOffsetAttribute lastOffsetAtt = lastTok.AddAttribute(); + + newOffsetAtt.SetOffset(newOffsetAtt.StartOffset(), lastOffsetAtt.EndOffset()); + newTermAtt.CopyBuffer(repTok.Buffer(), 0, repTok.Length); + repPos += repTok.PositionIncrement; + if (i == 0) // make position of first token equal to original + { + repPos = origPos; + } + + // if necessary, insert original tokens and adjust position increment + while (origTok != null && origPos <= repPos) + { + IPositionIncrementAttribute origPosInc = origTok.AddAttribute(); + origPosInc.PositionIncrement = origPos - pos; + generated.Add(origTok); + pos += origPosInc.PositionIncrement; + //origTok = matched.Count == 0 ? null : matched.RemoveFirst(); + if (matched.Count == 0) + { + origTok = null; + } + else + { + origTok = matched.First.Value; + matched.RemoveFirst(); + } + if (origTok != null) + { + origPosInc = origTok.AddAttribute(); + origPos += origPosInc.PositionIncrement; + } + } + + newPosIncAtt.PositionIncrement = repPos - pos; + generated.Add(newTok); + pos += newPosIncAtt.PositionIncrement; + } + + // finish up any leftover original tokens + while (origTok != null) + { + IPositionIncrementAttribute origPosInc = origTok.AddAttribute(); + origPosInc.PositionIncrement = origPos - pos; + generated.Add(origTok); + pos += origPosInc.PositionIncrement; + //origTok = matched.Count == 0 ? null : matched.RemoveFirst(); + if (matched.Count == 0) + { + origTok = null; + } + else + { + origTok = matched.Count > 0 ? matched.First.Value : null; + matched.RemoveFirst(); + } + if (origTok != null) + { + origPosInc = origTok.AddAttribute(); + origPos += origPosInc.PositionIncrement; + } + } + + // what if we replaced a longer sequence with a shorter one? + // a/0 b/5 => foo/0 + // should I re-create the gap on the next buffered token? + + replacement = generated.GetEnumerator(); + // Now return to the top of the loop to read and return the first + // generated token.. The reason this is done is that we may have generated + // nothing at all, and may need to continue with more matching logic. + } + } + + + // + // Defer creation of the buffer until the first time it is used to + // optimize short fields with no matches. + // + private LinkedList buffer; + private LinkedList matched; + + private bool exhausted; + + private AttributeSource NextTok() + { + if (buffer != null && buffer.Count > 0) + { + var first = matched.Count > 0 ? matched.First.Value : null; + buffer.RemoveFirst(); + return first; + + } + else + { + if (!exhausted && input.IncrementToken()) + { + return this; + } + else + { + exhausted = true; + return null; + } + } + } + + private void PushTok(AttributeSource t) + { + if (buffer == null) + { + buffer = new LinkedList(); + } + buffer.AddFirst(t); + } + + private SlowSynonymMap Match(SlowSynonymMap map) + { + SlowSynonymMap result = null; + + if (map.submap != null) + { + AttributeSource tok = NextTok(); + if (tok != null) + { + // clone ourselves. + if (tok == this) + { + tok = CloneAttributes(); + } + // check for positionIncrement!=1? if>1, should not match, if==0, check multiple at this level? + var termAtt = tok.GetAttribute(); + SlowSynonymMap subMap = map.submap.Get(termAtt.Buffer(), 0, termAtt.Length); + + if (subMap != null) + { + // recurse + result = Match(subMap); + } + + if (result != null) + { + matched.AddFirst(tok); + } + else + { + // push back unmatched token + PushTok(tok); + } + } + } + + // if no longer sequence matched, so if this node has synonyms, it's the match. + if (result == null && map.synonyms != null) + { + result = map; + } + + return result; + } + + private void Copy(AttributeSource target, AttributeSource source) + { + if (target != source) + { + source.CopyTo(target); + } + } + + public override void Reset() + { + input.Reset(); + replacement = null; + exhausted = false; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymFilterFactory.cs index 17e2035133..7cb45ccb72 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymFilterFactory.cs @@ -1,13 +1,18 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; +using System.IO; using System.Text; +using System.Text.RegularExpressions; using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Tokenattributes; +using System.Reflection; +using System.Globalization; namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -23,364 +28,355 @@ namespace Lucene.Net.Analysis.Synonym * See the License for the specific language governing permissions and * limitations under the License. */ + /// - /// Factory for (only used with luceneMatchVersion < 3.4) - ///
    -	/// <fieldType name="text_synonym" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    -	///     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="false"
    -	///             expand="true" tokenizerFactory="solr.WhitespaceTokenizerFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - /// @deprecated (3.4) use instead. only for precise index backwards compatibility. this factory will be removed in Lucene 5.0 - [Obsolete("(3.4) use instead. only for precise index backwards compatibility. this factory will be removed in Lucene 5.0")] - internal sealed class SlowSynonymFilterFactory : TokenFilterFactory, ResourceLoaderAware - { - private readonly string synonyms; - private readonly bool ignoreCase; - private readonly bool expand; - private readonly string tf; - private readonly IDictionary tokArgs = new Dictionary(); + /// Factory for (only used with luceneMatchVersion < 3.4) + ///
    +    /// <fieldType name="text_synonym" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    +    ///     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="false"
    +    ///             expand="true" tokenizerFactory="solr.WhitespaceTokenizerFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + /// @deprecated (3.4) use instead. only for precise index backwards compatibility. this factory will be removed in Lucene 5.0 + [Obsolete("(3.4) use instead. only for precise index backwards compatibility. this factory will be removed in Lucene 5.0")] + internal sealed class SlowSynonymFilterFactory : TokenFilterFactory, IResourceLoaderAware + { + private readonly string synonyms; + private readonly bool ignoreCase; + private readonly bool expand; + private readonly string tf; + private readonly IDictionary tokArgs = new Dictionary(); - public SlowSynonymFilterFactory(IDictionary args) : base(args) - { - synonyms = require(args, "synonyms"); - ignoreCase = getBoolean(args, "ignoreCase", false); - expand = getBoolean(args, "expand", true); + public SlowSynonymFilterFactory(IDictionary args) : base(args) + { + synonyms = Require(args, "synonyms"); + ignoreCase = GetBoolean(args, "ignoreCase", false); + expand = GetBoolean(args, "expand", true); - tf = get(args, "tokenizerFactory"); - if (tf != null) - { - assureMatchVersion(); - tokArgs["luceneMatchVersion"] = LuceneMatchVersion.ToString(); - for (IEnumerator itr = args.Keys.GetEnumerator(); itr.MoveNext();) - { - string key = itr.Current; - tokArgs[key.replaceAll("^tokenizerFactory\\.","")] = args[key]; - itr.remove(); - } - } - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + tf = Get(args, "tokenizerFactory"); + if (tf != null) + { + AssureMatchVersion(); + tokArgs["luceneMatchVersion"] = LuceneMatchVersion.ToString(); -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void inform(ResourceLoader loader) throws java.io.IOException - public void inform(ResourceLoader loader) - { - TokenizerFactory tokFactory = null; - if (tf != null) - { - tokFactory = loadTokenizerFactory(loader, tf); - } + var keys = new List(args.Keys); + foreach (string key in keys) + { + tokArgs[Regex.Replace(key, "^tokenizerFactory\\.", "")] = args[key]; + args.Remove(key); + } + } + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } - IEnumerable wlist = loadRules(synonyms, loader); + public void Inform(IResourceLoader loader) + { + TokenizerFactory tokFactory = null; + if (tf != null) + { + tokFactory = LoadTokenizerFactory(loader, tf); + } - synMap = new SlowSynonymMap(ignoreCase); - parseRules(wlist, synMap, "=>", ",", expand,tokFactory); - } + IEnumerable wlist = LoadRules(synonyms, loader); - /// a list of all rules -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected Iterable loadRules(String synonyms, ResourceLoader loader) throws java.io.IOException - protected internal IEnumerable loadRules(string synonyms, ResourceLoader loader) - { - IList wlist = null; - File synonymFile = new File(synonyms); - if (synonymFile.exists()) - { - wlist = getLines(loader, synonyms); - } - else - { - IList files = splitFileNames(synonyms); - wlist = new List<>(); - foreach (string file in files) - { - IList lines = getLines(loader, file.Trim()); - wlist.AddRange(lines); - } - } - return wlist; - } + synMap = new SlowSynonymMap(ignoreCase); + ParseRules(wlist, synMap, "=>", ",", expand, tokFactory); + } - private SlowSynonymMap synMap; + /// a list of all rules + internal IEnumerable LoadRules(string synonyms, IResourceLoader loader) + { + List wlist = null; + if (File.Exists(synonyms)) + { + wlist = new List(GetLines(loader, synonyms)); + } + else + { + IEnumerable files = SplitFileNames(synonyms); + wlist = new List(); + foreach (string file in files) + { + IEnumerable lines = GetLines(loader, file.Trim()); + wlist.AddRange(lines); + } + } + return wlist; + } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: static void parseRules(Iterable rules, SlowSynonymMap map, String mappingSep, String synSep, boolean expansion, TokenizerFactory tokFactory) throws java.io.IOException - internal static void parseRules(IEnumerable rules, SlowSynonymMap map, string mappingSep, string synSep, bool expansion, TokenizerFactory tokFactory) - { - int count = 0; - foreach (string rule in rules) - { - // To use regexes, we need an expression that specifies an odd number of chars. - // This can't really be done with string.split(), and since we need to - // do unescaping at some point anyway, we wouldn't be saving any effort - // by using regexes. + private SlowSynonymMap synMap; - IList mapping = splitSmart(rule, mappingSep, false); + internal static void ParseRules(IEnumerable rules, SlowSynonymMap map, string mappingSep, string synSep, bool expansion, TokenizerFactory tokFactory) + { + int count = 0; + foreach (string rule in rules) + { + // To use regexes, we need an expression that specifies an odd number of chars. + // This can't really be done with string.split(), and since we need to + // do unescaping at some point anyway, we wouldn't be saving any effort + // by using regexes. - IList> source; - IList> target; + IList mapping = SplitSmart(rule, mappingSep, false); - if (mapping.Count > 2) - { - throw new System.ArgumentException("Invalid Synonym Rule:" + rule); - } - else if (mapping.Count == 2) - { - source = getSynList(mapping[0], synSep, tokFactory); - target = getSynList(mapping[1], synSep, tokFactory); - } - else - { - source = getSynList(mapping[0], synSep, tokFactory); - if (expansion) - { - // expand to all arguments - target = source; - } - else - { - // reduce to first argument - target = new List<>(1); - target.Add(source[0]); - } - } + IList> source; + IList> target; - bool includeOrig = false; - foreach (IList fromToks in source) - { - count++; - foreach (IList toToks in target) - { - map.add(fromToks, SlowSynonymMap.makeTokens(toToks), includeOrig, true); - } - } - } - } + if (mapping.Count > 2) + { + throw new System.ArgumentException("Invalid Synonym Rule:" + rule); + } + else if (mapping.Count == 2) + { + source = GetSynList(mapping[0], synSep, tokFactory); + target = GetSynList(mapping[1], synSep, tokFactory); + } + else + { + source = GetSynList(mapping[0], synSep, tokFactory); + if (expansion) + { + // expand to all arguments + target = source; + } + else + { + // reduce to first argument + target = new List>(1); + target.Add(source[0]); + } + } - // a , b c , d e f => [[a],[b,c],[d,e,f]] -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private static java.util.List> getSynList(String str, String separator, TokenizerFactory tokFactory) throws java.io.IOException - private static IList> getSynList(string str, string separator, TokenizerFactory tokFactory) - { - IList strList = splitSmart(str, separator, false); - // now split on whitespace to get a list of token strings - IList> synList = new List>(); - foreach (string toks in strList) - { - IList tokList = tokFactory == null ? splitWS(toks, true) : splitByTokenizer(toks, tokFactory); - synList.Add(tokList); - } - return synList; - } + bool includeOrig = false; + foreach (IList fromToks in source) + { + count++; + foreach (IList toToks in target) + { + map.Add(fromToks, SlowSynonymMap.MakeTokens(toToks), includeOrig, true); + } + } + } + } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private static java.util.List splitByTokenizer(String source, TokenizerFactory tokFactory) throws java.io.IOException - private static IList splitByTokenizer(string source, TokenizerFactory tokFactory) - { - StringReader reader = new StringReader(source); - TokenStream ts = loadTokenizer(tokFactory, reader); - IList tokList = new List(); - try - { - CharTermAttribute termAtt = ts.addAttribute(typeof(CharTermAttribute)); - ts.reset(); - while (ts.incrementToken()) - { - if (termAtt.length() > 0) - { - tokList.Add(termAtt.ToString()); - } - } - } - finally - { - reader.close(); - } - return tokList; - } + // a , b c , d e f => [[a],[b,c],[d,e,f]] + private static IList> GetSynList(string str, string separator, TokenizerFactory tokFactory) + { + IList strList = SplitSmart(str, separator, false); + // now split on whitespace to get a list of token strings + IList> synList = new List>(); + foreach (string toks in strList) + { + IList tokList = tokFactory == null ? SplitWS(toks, true) : SplitByTokenizer(toks, tokFactory); + synList.Add(tokList); + } + return synList; + } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private TokenizerFactory loadTokenizerFactory(ResourceLoader loader, String cname) throws java.io.IOException - private TokenizerFactory loadTokenizerFactory(ResourceLoader loader, string cname) - { - Type clazz = loader.findClass(cname, typeof(TokenizerFactory)); - try - { - TokenizerFactory tokFactory = clazz.getConstructor(typeof(IDictionary)).newInstance(tokArgs); - if (tokFactory is ResourceLoaderAware) - { - ((ResourceLoaderAware) tokFactory).inform(loader); - } - return tokFactory; - } - catch (Exception e) - { - throw new Exception(e); - } - } + private static IList SplitByTokenizer(string source, TokenizerFactory tokFactory) + { + StringReader reader = new StringReader(source); + TokenStream ts = LoadTokenizer(tokFactory, reader); + IList tokList = new List(); + try + { + ICharTermAttribute termAtt = ts.AddAttribute(); + ts.Reset(); + while (ts.IncrementToken()) + { + if (termAtt.Length > 0) + { + tokList.Add(termAtt.ToString()); + } + } + } + finally + { + reader.Dispose(); + } + return tokList; + } - private static TokenStream loadTokenizer(TokenizerFactory tokFactory, Reader reader) - { - return tokFactory.create(reader); - } + private TokenizerFactory LoadTokenizerFactory(IResourceLoader loader, string cname) + { + Type clazz = loader.FindClass(cname); + try + { + TokenizerFactory tokFactory = (TokenizerFactory)Activator.CreateInstance(clazz, + BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, + null, new object[] { tokArgs }, CultureInfo.InvariantCulture); + if (tokFactory is IResourceLoaderAware) + { + ((IResourceLoaderAware)tokFactory).Inform(loader); + } + return tokFactory; + } + catch (Exception e) + { + throw e; + } + } - public SlowSynonymMap SynonymMap - { - get - { - return synMap; - } - } + private static TokenStream LoadTokenizer(TokenizerFactory tokFactory, TextReader reader) + { + return tokFactory.Create(reader); + } - public override SlowSynonymFilter create(TokenStream input) - { - return new SlowSynonymFilter(input,synMap); - } + public SlowSynonymMap SynonymMap + { + get + { + return synMap; + } + } - public static IList splitWS(string s, bool decode) - { - List lst = new List(2); - StringBuilder sb = new StringBuilder(); - int pos = 0, end = s.Length; - while (pos < end) - { - char ch = s[pos++]; - if (char.IsWhiteSpace(ch)) - { - if (sb.Length > 0) - { - lst.Add(sb.ToString()); - sb = new StringBuilder(); - } - continue; - } + public override TokenStream Create(TokenStream input) + { + return new SlowSynonymFilter(input, synMap); + } - if (ch == '\\') - { - if (!decode) - { - sb.Append(ch); - } - if (pos >= end) // ERROR, or let it go? - { - break; - } - ch = s[pos++]; - if (decode) - { - switch (ch) - { - case 'n' : - ch = '\n'; - break; - case 't' : - ch = '\t'; - break; - case 'r' : - ch = '\r'; - break; - case 'b' : - ch = '\b'; - break; - case 'f' : - ch = '\f'; - break; - } - } - } + public static IList SplitWS(string s, bool decode) + { + List lst = new List(2); + StringBuilder sb = new StringBuilder(); + int pos = 0, end = s.Length; + while (pos < end) + { + char ch = s[pos++]; + if (char.IsWhiteSpace(ch)) + { + if (sb.Length > 0) + { + lst.Add(sb.ToString()); + sb = new StringBuilder(); + } + continue; + } - sb.Append(ch); - } + if (ch == '\\') + { + if (!decode) + { + sb.Append(ch); + } + if (pos >= end) // ERROR, or let it go? + { + break; + } + ch = s[pos++]; + if (decode) + { + switch (ch) + { + case 'n': + ch = '\n'; + break; + case 't': + ch = '\t'; + break; + case 'r': + ch = '\r'; + break; + case 'b': + ch = '\b'; + break; + case 'f': + ch = '\f'; + break; + } + } + } - if (sb.Length > 0) - { - lst.Add(sb.ToString()); - } + sb.Append(ch); + } - return lst; - } + if (sb.Length > 0) + { + lst.Add(sb.ToString()); + } - /// - /// Splits a backslash escaped string on the separator. - /// - /// Current backslash escaping supported: - ///
    \n \t \r \b \f are escaped the same as a Java String - ///
    Other characters following a backslash are produced verbatim (\c => c) - /// - ///
    - ///
    - /// the string to split - /// the separator to split on - /// decode backslash escaping - public static IList splitSmart(string s, string separator, bool decode) - { - List lst = new List(2); - StringBuilder sb = new StringBuilder(); - int pos = 0, end = s.Length; - while (pos < end) - { - if (s.StartsWith(separator,pos)) - { - if (sb.Length > 0) - { - lst.Add(sb.ToString()); - sb = new StringBuilder(); - } - pos += separator.Length; - continue; - } + return lst; + } - char ch = s[pos++]; - if (ch == '\\') - { - if (!decode) - { - sb.Append(ch); - } - if (pos >= end) // ERROR, or let it go? - { - break; - } - ch = s[pos++]; - if (decode) - { - switch (ch) - { - case 'n' : - ch = '\n'; - break; - case 't' : - ch = '\t'; - break; - case 'r' : - ch = '\r'; - break; - case 'b' : - ch = '\b'; - break; - case 'f' : - ch = '\f'; - break; - } - } - } + /// + /// Splits a backslash escaped string on the separator. + /// + /// Current backslash escaping supported: + ///
    \n \t \r \b \f are escaped the same as a Java String + ///
    Other characters following a backslash are produced verbatim (\c => c) + /// + ///
    + ///
    + /// the string to split + /// the separator to split on + /// decode backslash escaping + public static IList SplitSmart(string s, string separator, bool decode) + { + List lst = new List(2); + StringBuilder sb = new StringBuilder(); + int pos = 0, end = s.Length; + while (pos < end) + { + //if (s.StartsWith(separator,pos)) + if (s.Substring(pos).StartsWith(separator)) + { + if (sb.Length > 0) + { + lst.Add(sb.ToString()); + sb = new StringBuilder(); + } + pos += separator.Length; + continue; + } - sb.Append(ch); - } + char ch = s[pos++]; + if (ch == '\\') + { + if (!decode) + { + sb.Append(ch); + } + if (pos >= end) // ERROR, or let it go? + { + break; + } + ch = s[pos++]; + if (decode) + { + switch (ch) + { + case 'n': + ch = '\n'; + break; + case 't': + ch = '\t'; + break; + case 'r': + ch = '\r'; + break; + case 'b': + ch = '\b'; + break; + case 'f': + ch = '\f'; + break; + } + } + } - if (sb.Length > 0) - { - lst.Add(sb.ToString()); - } + sb.Append(ch); + } - return lst; - } - } + if (sb.Length > 0) + { + lst.Add(sb.ToString()); + } + return lst; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymMap.cs b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymMap.cs index d1fb0a47bc..51f16ee9b6 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymMap.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SlowSynonymMap.cs @@ -1,12 +1,12 @@ -using System; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using System; using System.Collections.Generic; using System.Linq; using System.Text; -using org.apache.lucene.analysis.util; namespace Lucene.Net.Analysis.Synonym { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -23,6 +23,7 @@ namespace Lucene.Net.Analysis.Synonym * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Mapping rules for use with /// @deprecated (3.4) use instead. only for precise index backwards compatibility. this factory will be removed in Lucene 5.0 @@ -84,7 +85,7 @@ public virtual void Add(IList singleMatch, IList replacement, boo { // for now hardcode at 4.0, as its what the old code did. // would be nice to fix, but shouldn't store a version in each submap!!! - currMap.submap = new CharArrayMap(Lucene.Net.Util.Version.LUCENE_CURRENT, 1, IgnoreCase); + currMap.submap = new CharArrayMap(LuceneVersion.LUCENE_CURRENT, 1, IgnoreCase); } var map = currMap.submap.Get(str); @@ -92,7 +93,7 @@ public virtual void Add(IList singleMatch, IList replacement, boo { map = new SlowSynonymMap(); map.flags |= flags & IGNORE_CASE; - currMap.submap.put(str, map); + currMap.submap.Put(str, map); } currMap = map; diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SolrSynonymParser.cs b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SolrSynonymParser.cs index 5f7961902b..94c941695f 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SolrSynonymParser.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SolrSynonymParser.cs @@ -1,12 +1,12 @@ -using System; +using Lucene.Net.Util; +using System; using System.Collections.Generic; +using System.IO; using System.Text; -using Reader = System.IO.TextReader; namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -22,192 +22,187 @@ namespace Lucene.Net.Analysis.Synonym * See the License for the specific language governing permissions and * limitations under the License. */ - /// - /// Parser for the Solr synonyms format. - ///
      - ///
    1. Blank lines and lines starting with '#' are comments. - ///
    2. Explicit mappings match any token sequence on the LHS of "=>" - /// and replace with all alternatives on the RHS. These types of mappings - /// ignore the expand parameter in the constructor. - /// Example: - ///
      i-pod, i pod => ipod
      - ///
    3. Equivalent synonyms may be separated with commas and give - /// no explicit mapping. In this case the mapping behavior will - /// be taken from the expand parameter in the constructor. This allows - /// the same synonym file to be used in different synonym handling strategies. - /// Example: - ///
      ipod, i-pod, i pod
      - /// - ///
    4. Multiple synonym mapping entries are merged. - /// Example: - ///
      - /// foo => foo bar
      - /// foo => baz

      - /// is equivalent to

      - /// foo => foo bar, baz - ///
      - ///
    - /// @lucene.experimental - ///
    - public class SolrSynonymParser : SynonymMap.Parser - { - private readonly bool expand; - - public SolrSynonymParser(bool dedup, bool expand, Analyzer analyzer) : base(dedup, analyzer) - { - this.expand = expand; - } - - public override void Parse(Reader @in) - { - LineNumberReader br = new LineNumberReader(@in); - try - { - addInternal(br); - } - catch (System.ArgumentException e) - { - ParseException ex = new ParseException("Invalid synonym rule at line " + br.LineNumber, 0); - ex.initCause(e); - throw ex; - } - finally - { - br.close(); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private void addInternal(java.io.BufferedReader in) throws java.io.IOException - private void addInternal(BufferedReader @in) - { - string line = null; - while ((line = @in.readLine()) != null) - { - if (line.Length == 0 || line[0] == '#') - { - continue; // ignore empty lines and comments - } - - CharsRef[] inputs; - CharsRef[] outputs; - - // TODO: we could process this more efficiently. - string[] sides = Split(line, "=>"); - if (sides.Length > 1) // explicit mapping - { - if (sides.Length != 2) - { - throw new System.ArgumentException("more than one explicit mapping specified on the same line"); - } - string[] inputStrings = Split(sides[0], ","); - inputs = new CharsRef[inputStrings.Length]; - for (int i = 0; i < inputs.Length; i++) - { - inputs[i] = Analyze(unescape(inputStrings[i]).Trim(), new CharsRef()); - } - - string[] outputStrings = Split(sides[1], ","); - outputs = new CharsRef[outputStrings.Length]; - for (int i = 0; i < outputs.Length; i++) - { - outputs[i] = Analyze(unescape(outputStrings[i]).Trim(), new CharsRef()); - } - } - else - { - string[] inputStrings = Split(line, ","); - inputs = new CharsRef[inputStrings.Length]; - for (int i = 0; i < inputs.Length; i++) - { - inputs[i] = Analyze(unescape(inputStrings[i]).Trim(), new CharsRef()); - } - if (expand) - { - outputs = inputs; - } - else - { - outputs = new CharsRef[1]; - outputs[0] = inputs[0]; - } - } - - // currently we include the term itself in the map, - // and use includeOrig = false always. - // this is how the existing filter does it, but its actually a bug, - // especially if combined with ignoreCase = true - for (int i = 0; i < inputs.Length; i++) - { - for (int j = 0; j < outputs.Length; j++) - { - Add(inputs[i], outputs[j], false); - } - } - } - } - - private static string[] Split(string s, string separator) - { - List list = new List(2); - StringBuilder sb = new StringBuilder(); - int pos = 0, end = s.Length; - while (pos < end) - { - if (s.StartsWith(separator,pos)) - { - if (sb.Length > 0) - { - list.Add(sb.ToString()); - sb = new StringBuilder(); - } - pos += separator.Length; - continue; - } - - char ch = s[pos++]; - if (ch == '\\') - { - sb.Append(ch); - if (pos >= end) // ERROR, or let it go? - { - break; - } - ch = s[pos++]; - } - - sb.Append(ch); - } - - if (sb.Length > 0) - { - list.Add(sb.ToString()); - } - - return list.ToArray(); - } - - private string unescape(string s) - { - if (s.IndexOf("\\", StringComparison.Ordinal) >= 0) - { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < s.Length; i++) - { - char ch = s[i]; - if (ch == '\\' && i < s.Length - 1) - { - sb.Append(s[++i]); - } - else - { - sb.Append(ch); - } - } - return sb.ToString(); - } - return s; - } - } + /// + /// Parser for the Solr synonyms format. + ///
      + ///
    1. Blank lines and lines starting with '#' are comments. + ///
    2. Explicit mappings match any token sequence on the LHS of "=>" + /// and replace with all alternatives on the RHS. These types of mappings + /// ignore the expand parameter in the constructor. + /// Example: + ///
      i-pod, i pod => ipod
      + ///
    3. Equivalent synonyms may be separated with commas and give + /// no explicit mapping. In this case the mapping behavior will + /// be taken from the expand parameter in the constructor. This allows + /// the same synonym file to be used in different synonym handling strategies. + /// Example: + ///
      ipod, i-pod, i pod
      + /// + ///
    4. Multiple synonym mapping entries are merged. + /// Example: + ///
      + /// foo => foo bar
      + /// foo => baz

      + /// is equivalent to

      + /// foo => foo bar, baz + ///
      + ///
    + /// @lucene.experimental + ///
    + public class SolrSynonymParser : SynonymMap.Parser + { + private readonly bool expand; + + public SolrSynonymParser(bool dedup, bool expand, Analyzer analyzer) : base(dedup, analyzer) + { + this.expand = expand; + } + + public override void Parse(TextReader @in) + { + int lineNumber = 0; + try + { + string line = null; + while ((line = @in.ReadLine()) != null) + { + lineNumber++; + if (line.Length == 0 || line[0] == '#') + { + continue; // ignore empty lines and comments + } + + CharsRef[] inputs; + CharsRef[] outputs; + + // TODO: we could process this more efficiently. + string[] sides = Split(line, "=>"); + if (sides.Length > 1) // explicit mapping + { + if (sides.Length != 2) + { + throw new System.ArgumentException("more than one explicit mapping specified on the same line"); + } + string[] inputStrings = Split(sides[0], ","); + inputs = new CharsRef[inputStrings.Length]; + for (int i = 0; i < inputs.Length; i++) + { + inputs[i] = Analyze(Unescape(inputStrings[i]).Trim(), new CharsRef()); + } + + string[] outputStrings = Split(sides[1], ","); + outputs = new CharsRef[outputStrings.Length]; + for (int i = 0; i < outputs.Length; i++) + { + outputs[i] = Analyze(Unescape(outputStrings[i]).Trim(), new CharsRef()); + } + } + else + { + string[] inputStrings = Split(line, ","); + inputs = new CharsRef[inputStrings.Length]; + for (int i = 0; i < inputs.Length; i++) + { + inputs[i] = Analyze(Unescape(inputStrings[i]).Trim(), new CharsRef()); + } + if (expand) + { + outputs = inputs; + } + else + { + outputs = new CharsRef[1]; + outputs[0] = inputs[0]; + } + } + + // currently we include the term itself in the map, + // and use includeOrig = false always. + // this is how the existing filter does it, but its actually a bug, + // especially if combined with ignoreCase = true + for (int i = 0; i < inputs.Length; i++) + { + for (int j = 0; j < outputs.Length; j++) + { + Add(inputs[i], outputs[j], false); + } + } + } + } + catch (System.ArgumentException e) + { + throw new Exception("Invalid synonym rule at line " + lineNumber, e); + //ex.initCause(e); + //throw ex; + } + finally + { + @in.Dispose(); + } + } + + private static string[] Split(string s, string separator) + { + List list = new List(2); + StringBuilder sb = new StringBuilder(); + int pos = 0, end = s.Length; + while (pos < end) + { + //if (s.StartsWith(separator, pos)) + if (s.Substring(pos).StartsWith(separator)) + { + if (sb.Length > 0) + { + list.Add(sb.ToString()); + sb = new StringBuilder(); + } + pos += separator.Length; + continue; + } + + char ch = s[pos++]; + if (ch == '\\') + { + sb.Append(ch); + if (pos >= end) // ERROR, or let it go? + { + break; + } + ch = s[pos++]; + } + + sb.Append(ch); + } + + if (sb.Length > 0) + { + list.Add(sb.ToString()); + } + + return list.ToArray(); + } + + private string Unescape(string s) + { + if (s.IndexOf("\\", StringComparison.Ordinal) >= 0) + { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < s.Length; i++) + { + char ch = s[i]; + if (ch == '\\' && i < s.Length - 1) + { + sb.Append(s[++i]); + } + else + { + sb.Append(ch); + } + } + return sb.ToString(); + } + return s; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymFilter.cs index 2d5169dc60..75c3039774 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymFilter.cs @@ -8,8 +8,7 @@ namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -26,736 +25,711 @@ namespace Lucene.Net.Analysis.Synonym * limitations under the License. */ - /// - /// Matches single or multi word synonyms in a token stream. - /// This token stream cannot properly handle position - /// increments != 1, ie, you should place this filter before - /// filtering out stop words. - /// - /// Note that with the current implementation, parsing is - /// greedy, so whenever multiple parses would apply, the rule - /// starting the earliest and parsing the most tokens wins. - /// For example if you have these rules: - /// - ///
    -	///   a -> x
    -	///   a b -> y
    -	///   b c d -> z
    -	/// 
    - /// - /// Then input a b c d e parses to y b c - /// d, ie the 2nd rule "wins" because it started - /// earliest and matched the most input tokens of other rules - /// starting at that point.
    - /// - /// A future improvement to this filter could allow - /// non-greedy parsing, such that the 3rd rule would win, and - /// also separately allow multiple parses, such that all 3 - /// rules would match, perhaps even on a rule by rule - /// basis. - /// - /// NOTE: when a match occurs, the output tokens - /// associated with the matching rule are "stacked" on top of - /// the input stream (if the rule had - /// keepOrig=true) and also on top of another - /// matched rule's output tokens. This is not a correct - /// solution, as really the output should be an arbitrary - /// graph/lattice. For example, with the above match, you - /// would expect an exact PhraseQuery "y b - /// c" to match the parsed tokens, but it will fail to - /// do so. This limitation is necessary because Lucene's - /// TokenStream (and index) cannot yet represent an arbitrary - /// graph. - /// - /// NOTE: If multiple incoming tokens arrive on the - /// same position, only the first token at that position is - /// used for parsing. Subsequent tokens simply pass through - /// and are not parsed. A future improvement would be to - /// allow these tokens to also be matched. - ///
    - - // TODO: maybe we should resolve token -> wordID then run - // FST on wordIDs, for better perf? - - // TODO: a more efficient approach would be Aho/Corasick's - // algorithm - // http://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_string_matching_algorithm - // It improves over the current approach here - // because it does not fully re-start matching at every - // token. For example if one pattern is "a b c x" - // and another is "b c d" and the input is "a b c d", on - // trying to parse "a b c x" but failing when you got to x, - // rather than starting over again your really should - // immediately recognize that "b c d" matches at the next - // input. I suspect this won't matter that much in - // practice, but it's possible on some set of synonyms it - // will. We'd have to modify Aho/Corasick to enforce our - // conflict resolving (eg greedy matching) because that algo - // finds all matches. This really amounts to adding a .* - // closure to the FST and then determinizing it. - - public sealed class SynonymFilter : TokenFilter - { - - public const string TYPE_SYNONYM = "SYNONYM"; - - private readonly SynonymMap synonyms; - - private readonly bool ignoreCase; - private readonly int rollBufferSize; - - private int captureCount; - - // TODO: we should set PositionLengthAttr too... - - private readonly ICharTermAttribute termAtt; - private readonly IPositionIncrementAttribute posIncrAtt; - private readonly IPositionLengthAttribute posLenAtt; - private readonly ITypeAttribute typeAtt; - private readonly IOffsetAttribute offsetAtt; - - - // How many future input tokens have already been matched - // to a synonym; because the matching is "greedy" we don't - // try to do any more matching for such tokens: - private int inputSkipCount; - - // Hold all buffered (read ahead) stacked input tokens for - // a future position. When multiple tokens are at the - // same position, we only store (and match against) the - // term for the first token at the position, but capture - // state for (and enumerate) all other tokens at this - // position: - private class PendingInput - { - internal readonly CharsRef term = new CharsRef(); - internal AttributeSource.State state; - internal bool keepOrig; - internal bool matched; - internal bool consumed = true; - internal int startOffset; - internal int endOffset; - - public void Reset() - { - state = null; - consumed = true; - keepOrig = false; - matched = false; - } - } - - // Rolling buffer, holding pending input tokens we had to - // clone because we needed to look ahead, indexed by - // position: - private readonly PendingInput[] futureInputs; - - // Holds pending output synonyms for one future position: - private class PendingOutputs - { - internal CharsRef[] outputs; - internal int[] endOffsets; - internal int[] posLengths; - internal int upto; - internal int count; - internal int posIncr = 1; - internal int lastEndOffset; - internal int lastPosLength; - - public PendingOutputs() - { - outputs = new CharsRef[1]; - endOffsets = new int[1]; - posLengths = new int[1]; - } - - public virtual void reset() - { - upto = count = 0; - posIncr = 1; - } - - public virtual CharsRef pullNext() - { - Debug.Assert(upto < count); - lastEndOffset = endOffsets[upto]; - lastPosLength = posLengths[upto]; -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.util.CharsRef result = outputs[upto++]; - CharsRef result = outputs[upto++]; - posIncr = 0; - if (upto == count) - { - reset(); - } - return result; - } - - public virtual int LastEndOffset - { - get - { - return lastEndOffset; - } - } - - public virtual int LastPosLength - { - get - { - return lastPosLength; - } - } - - public virtual void add(char[] output, int offset, int len, int endOffset, int posLength) - { - if (count == outputs.Length) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.util.CharsRef[] next = new org.apache.lucene.util.CharsRef[org.apache.lucene.util.ArrayUtil.oversize(1+count, org.apache.lucene.util.RamUsageEstimator.NUM_BYTES_OBJECT_REF)]; - CharsRef[] next = new CharsRef[ArrayUtil.oversize(1 + count, RamUsageEstimator.NUM_BYTES_OBJECT_REF)]; - Array.Copy(outputs, 0, next, 0, count); - outputs = next; - } - if (count == endOffsets.Length) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int[] next = new int[org.apache.lucene.util.ArrayUtil.oversize(1+count, org.apache.lucene.util.RamUsageEstimator.NUM_BYTES_INT)]; - int[] next = new int[ArrayUtil.oversize(1 + count, RamUsageEstimator.NUM_BYTES_INT)]; - Array.Copy(endOffsets, 0, next, 0, count); - endOffsets = next; - } - if (count == posLengths.Length) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int[] next = new int[org.apache.lucene.util.ArrayUtil.oversize(1+count, org.apache.lucene.util.RamUsageEstimator.NUM_BYTES_INT)]; - int[] next = new int[ArrayUtil.oversize(1 + count, RamUsageEstimator.NUM_BYTES_INT)]; - Array.Copy(posLengths, 0, next, 0, count); - posLengths = next; - } - if (outputs[count] == null) - { - outputs[count] = new CharsRef(); - } - outputs[count].copyChars(output, offset, len); - // endOffset can be -1, in which case we should simply - // use the endOffset of the input token, or X >= 0, in - // which case we use X as the endOffset for this output - endOffsets[count] = endOffset; - posLengths[count] = posLength; - count++; - } - } - - private readonly ByteArrayDataInput bytesReader = new ByteArrayDataInput(); - - // Rolling buffer, holding stack of pending synonym - // outputs, indexed by position: - private readonly PendingOutputs[] futureOutputs; - - // Where (in rolling buffers) to write next input saved state: - private int nextWrite; - - // Where (in rolling buffers) to read next input saved state: - private int nextRead; - - // True once we've read last token - private bool finished; - - private readonly FST.Arc scratchArc; - - private readonly FST fst; - - private readonly FST.BytesReader fstReader; - - - private readonly BytesRef scratchBytes = new BytesRef(); - private readonly CharsRef scratchChars = new CharsRef(); - - /// input tokenstream - /// synonym map - /// case-folds input for matching with . - /// Note, if you set this to true, its your responsibility to lowercase - /// the input entries when you create the - public SynonymFilter(TokenStream input, SynonymMap synonyms, bool ignoreCase) : base(input) - { - termAtt = AddAttribute(); - posIncrAtt = AddAttribute(); - posLenAtt = AddAttribute(); - typeAtt = AddAttribute(); - offsetAtt = AddAttribute(); - - this.synonyms = synonyms; - this.ignoreCase = ignoreCase; - this.fst = synonyms.fst; - if (fst == null) - { - throw new System.ArgumentException("fst must be non-null"); - } - this.fstReader = fst.BytesReader; - - // Must be 1+ so that when roll buffer is at full - // lookahead we can distinguish this full buffer from - // the empty buffer: - rollBufferSize = 1 + synonyms.maxHorizontalContext; - - futureInputs = new PendingInput[rollBufferSize]; - futureOutputs = new PendingOutputs[rollBufferSize]; - for (int pos = 0;pos < rollBufferSize;pos++) - { - futureInputs[pos] = new PendingInput(); - futureOutputs[pos] = new PendingOutputs(); - } - - //System.out.println("FSTFilt maxH=" + synonyms.maxHorizontalContext); - - scratchArc = new FST.Arc<>(); - } - - private void capture() - { - captureCount++; - //System.out.println(" capture slot=" + nextWrite); - PendingInput input = futureInputs[nextWrite]; - - input.state = CaptureState(); - input.consumed = false; - input.term.CopyChars(termAtt.Buffer(), 0, termAtt.Length); - - nextWrite = rollIncr(nextWrite); - - // Buffer head should never catch up to tail: - Debug.Assert(nextWrite != nextRead); - } - - /* - This is the core of this TokenFilter: it locates the - synonym matches and buffers up the results into - futureInputs/Outputs. - - NOTE: this calls input.incrementToken and does not - capture the state if no further tokens were checked. So - caller must then forward state to our caller, or capture: - */ - private int lastStartOffset; - private int lastEndOffset; - - private void Parse() - { - //System.out.println("\nS: parse"); - - Debug.Assert(inputSkipCount == 0); - - int curNextRead = nextRead; - - // Holds the longest match we've seen so far: - BytesRef matchOutput = null; - int matchInputLength = 0; - int matchEndOffset = -1; - - BytesRef pendingOutput = fst.Outputs.NoOutput; - fst.GetFirstArc(scratchArc); - - Debug.Assert(scratchArc.Output == fst.Outputs.NoOutput); - - int tokenCount = 0; - - while (true) - { - - // Pull next token's chars: - char[] buffer; - int bufferLen; - //System.out.println(" cycle nextRead=" + curNextRead + " nextWrite=" + nextWrite); - - int inputEndOffset = 0; - - if (curNextRead == nextWrite) - { - - // We used up our lookahead buffer of input tokens - // -- pull next real input token: - - if (finished) - { - break; - } - else - { - //System.out.println(" input.incrToken"); - Debug.Assert(futureInputs[nextWrite].consumed); - // Not correct: a syn match whose output is longer - // than its input can set future inputs keepOrig - // to true: - //assert !futureInputs[nextWrite].keepOrig; - if (input.IncrementToken()) - { - buffer = termAtt.Buffer(); - bufferLen = termAtt.Length; - PendingInput input = futureInputs[nextWrite]; - lastStartOffset = input.startOffset = offsetAtt.StartOffset(); - lastEndOffset = input.endOffset = offsetAtt.EndOffset(); - inputEndOffset = input.endOffset; - //System.out.println(" new token=" + new String(buffer, 0, bufferLen)); - if (nextRead != nextWrite) - { - capture(); - } - else - { - input.consumed = false; - } - - } - else - { - // No more input tokens - //System.out.println(" set end"); - finished = true; - break; - } - } - } - else - { - // Still in our lookahead - buffer = futureInputs[curNextRead].term.Chars; - bufferLen = futureInputs[curNextRead].term.Length; - inputEndOffset = futureInputs[curNextRead].endOffset; - //System.out.println(" old token=" + new String(buffer, 0, bufferLen)); - } - - tokenCount++; - - // Run each char in this token through the FST: - int bufUpto = 0; - while (bufUpto < bufferLen) - { - int codePoint = Character.CodePointAt(buffer, bufUpto, bufferLen); - if (fst.FindTargetArc(ignoreCase ? char.ToLower(codePoint) : codePoint, scratchArc, scratchArc, fstReader) == null) - { - //System.out.println(" stop"); - goto byTokenBreak; - } - - // Accum the output - pendingOutput = fst.Outputs.Add(pendingOutput, scratchArc.Output); - //System.out.println(" char=" + buffer[bufUpto] + " output=" + pendingOutput + " arc.output=" + scratchArc.output); - bufUpto += Character.CharCount(codePoint); - } - - // OK, entire token matched; now see if this is a final - // state: - if (scratchArc.Final) - { - matchOutput = fst.Outputs.Add(pendingOutput, scratchArc.NextFinalOutput); - matchInputLength = tokenCount; - matchEndOffset = inputEndOffset; - //System.out.println(" found matchLength=" + matchInputLength + " output=" + matchOutput); - } - - // See if the FST wants to continue matching (ie, needs to - // see the next input token): - if (fst.FindTargetArc(SynonymMap.WORD_SEPARATOR, scratchArc, scratchArc, fstReader) == null) - { - // No further rules can match here; we're done - // searching for matching rules starting at the - // current input position. - break; - } - else - { - // More matching is possible -- accum the output (if - // any) of the WORD_SEP arc: - pendingOutput = fst.outputs.add(pendingOutput, scratchArc.output); - if (nextRead == nextWrite) - { - capture(); - } - } - - curNextRead = rollIncr(curNextRead); - byTokenContinue:; - } - byTokenBreak: - - if (nextRead == nextWrite && !finished) - { - //System.out.println(" skip write slot=" + nextWrite); - nextWrite = rollIncr(nextWrite); - } - - if (matchOutput != null) - { - //System.out.println(" add matchLength=" + matchInputLength + " output=" + matchOutput); - inputSkipCount = matchInputLength; - AddOutput(matchOutput, matchInputLength, matchEndOffset); - } - else if (nextRead != nextWrite) - { - // Even though we had no match here, we set to 1 - // because we need to skip current input token before - // trying to match again: - inputSkipCount = 1; - } - else - { - Debug.Assert(finished); - } - - //System.out.println(" parse done inputSkipCount=" + inputSkipCount + " nextRead=" + nextRead + " nextWrite=" + nextWrite); - } - - // Interleaves all output tokens onto the futureOutputs: - private void AddOutput(BytesRef bytes, int matchInputLength, int matchEndOffset) - { - bytesReader.Reset(bytes.Bytes, bytes.Offset, bytes.Length); - - int code = bytesReader.ReadVInt(); - bool keepOrig = (code & 0x1) == 0; - int count = (int)((uint)code >> 1); - //System.out.println(" addOutput count=" + count + " keepOrig=" + keepOrig); - for (int outputIDX = 0;outputIDX < count;outputIDX++) - { - synonyms.words.Get(bytesReader.ReadVInt(), scratchBytes); - //System.out.println(" outIDX=" + outputIDX + " bytes=" + scratchBytes.length); - UnicodeUtil.UTF8toUTF16(scratchBytes, scratchChars); - int lastStart = scratchChars.Offset; - int chEnd = lastStart + scratchChars.Length; - int outputUpto = nextRead; - for (int chIDX = lastStart;chIDX <= chEnd;chIDX++) - { - if (chIDX == chEnd || scratchChars.chars[chIDX] == SynonymMap.WORD_SEPARATOR) - { - int outputLen = chIDX - lastStart; - // Caller is not allowed to have empty string in - // the output: - Debug.Assert(outputLen > 0, "output contains empty string: " + scratchChars); - int endOffset; - int posLen; - if (chIDX == chEnd && lastStart == scratchChars.Offset) - { - // This rule had a single output token, so, we set - // this output's endOffset to the current - // endOffset (ie, endOffset of the last input - // token it matched): - endOffset = matchEndOffset; - posLen = keepOrig ? matchInputLength : 1; - } - else - { - // This rule has more than one output token; we - // can't pick any particular endOffset for this - // case, so, we inherit the endOffset for the - // input token which this output overlaps: - endOffset = -1; - posLen = 1; - } - futureOutputs[outputUpto].add(scratchChars.chars, lastStart, outputLen, endOffset, posLen); - //System.out.println(" " + new String(scratchChars.chars, lastStart, outputLen) + " outputUpto=" + outputUpto); - lastStart = 1 + chIDX; - //System.out.println(" slot=" + outputUpto + " keepOrig=" + keepOrig); - outputUpto = rollIncr(outputUpto); - Debug.Assert(futureOutputs[outputUpto].posIncr == 1, "outputUpto=" + outputUpto + " vs nextWrite=" + nextWrite); - } - } - } - - int upto = nextRead; - for (int idx = 0;idx < matchInputLength;idx++) - { - futureInputs[upto].keepOrig |= keepOrig; - futureInputs[upto].matched = true; - upto = rollIncr(upto); - } - } - - // ++ mod rollBufferSize - private int rollIncr(int count) - { - count++; - if (count == rollBufferSize) - { - return 0; - } - else - { - return count; - } - } - - // for testing - internal int CaptureCount - { - get - { - return captureCount; - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - - //System.out.println("\nS: incrToken inputSkipCount=" + inputSkipCount + " nextRead=" + nextRead + " nextWrite=" + nextWrite); - - while (true) - { - - // First play back any buffered future inputs/outputs - // w/o running parsing again: - while (inputSkipCount != 0) - { - - // At each position, we first output the original - // token - - // TODO: maybe just a PendingState class, holding - // both input & outputs? -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final PendingInput input = futureInputs[nextRead]; - PendingInput input = futureInputs[nextRead]; -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final PendingOutputs outputs = futureOutputs[nextRead]; - PendingOutputs outputs = futureOutputs[nextRead]; - - //System.out.println(" cycle nextRead=" + nextRead + " nextWrite=" + nextWrite + " inputSkipCount="+ inputSkipCount + " input.keepOrig=" + input.keepOrig + " input.consumed=" + input.consumed + " input.state=" + input.state); - - if (!input.consumed && (input.keepOrig || !input.matched)) - { - if (input.state != null) - { - // Return a previously saved token (because we - // had to lookahead): - restoreState(input.state); - } - else - { - // Pass-through case: return token we just pulled - // but didn't capture: - Debug.Assert(inputSkipCount == 1, "inputSkipCount=" + inputSkipCount + " nextRead=" + nextRead); - } - input.Reset(); - if (outputs.count > 0) - { - outputs.posIncr = 0; - } - else - { - nextRead = rollIncr(nextRead); - inputSkipCount--; - } - //System.out.println(" return token=" + termAtt.toString()); - return true; - } - else if (outputs.upto < outputs.count) - { - // Still have pending outputs to replay at this - // position - input.Reset(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int posIncr = outputs.posIncr; - int posIncr = outputs.posIncr; -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.util.CharsRef output = outputs.pullNext(); - CharsRef output = outputs.pullNext(); - clearAttributes(); - termAtt.copyBuffer(output.chars, output.offset, output.length); - typeAtt.Type = TYPE_SYNONYM; - int endOffset = outputs.LastEndOffset; - if (endOffset == -1) - { - endOffset = input.endOffset; - } - offsetAtt.setOffset(input.startOffset, endOffset); - posIncrAtt.PositionIncrement = posIncr; - posLenAtt.PositionLength = outputs.LastPosLength; - if (outputs.count == 0) - { - // Done with the buffered input and all outputs at - // this position - nextRead = rollIncr(nextRead); - inputSkipCount--; - } - //System.out.println(" return token=" + termAtt.toString()); - return true; - } - else - { - // Done with the buffered input and all outputs at - // this position - input.Reset(); - nextRead = rollIncr(nextRead); - inputSkipCount--; - } - } - - if (finished && nextRead == nextWrite) - { - // End case: if any output syns went beyond end of - // input stream, enumerate them now: -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final PendingOutputs outputs = futureOutputs[nextRead]; - PendingOutputs outputs = futureOutputs[nextRead]; - if (outputs.upto < outputs.count) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int posIncr = outputs.posIncr; - int posIncr = outputs.posIncr; -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.util.CharsRef output = outputs.pullNext(); - CharsRef output = outputs.pullNext(); - futureInputs[nextRead].Reset(); - if (outputs.count == 0) - { - nextWrite = nextRead = rollIncr(nextRead); - } - clearAttributes(); - // Keep offset from last input token: - offsetAtt.setOffset(lastStartOffset, lastEndOffset); - termAtt.copyBuffer(output.chars, output.offset, output.length); - typeAtt.Type = TYPE_SYNONYM; - //System.out.println(" set posIncr=" + outputs.posIncr + " outputs=" + outputs); - posIncrAtt.PositionIncrement = posIncr; - //System.out.println(" return token=" + termAtt.toString()); - return true; - } - else - { - return false; - } - } - - // Find new synonym matches: - Parse(); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void reset() throws java.io.IOException - public override void reset() - { - base.reset(); - captureCount = 0; - finished = false; - inputSkipCount = 0; - nextRead = nextWrite = 0; - - // In normal usage these resets would not be needed, - // since they reset-as-they-are-consumed, but the app - // may not consume all input tokens (or we might hit an - // exception), in which case we have leftover state - // here: - foreach (PendingInput input in futureInputs) - { - input.Reset(); - } - foreach (PendingOutputs output in futureOutputs) - { - output.reset(); - } - } - } - + /// + /// Matches single or multi word synonyms in a token stream. + /// This token stream cannot properly handle position + /// increments != 1, ie, you should place this filter before + /// filtering out stop words. + /// + /// Note that with the current implementation, parsing is + /// greedy, so whenever multiple parses would apply, the rule + /// starting the earliest and parsing the most tokens wins. + /// For example if you have these rules: + /// + ///
    +    ///   a -> x
    +    ///   a b -> y
    +    ///   b c d -> z
    +    /// 
    + /// + /// Then input a b c d e parses to y b c + /// d, ie the 2nd rule "wins" because it started + /// earliest and matched the most input tokens of other rules + /// starting at that point.
    + /// + /// A future improvement to this filter could allow + /// non-greedy parsing, such that the 3rd rule would win, and + /// also separately allow multiple parses, such that all 3 + /// rules would match, perhaps even on a rule by rule + /// basis. + /// + /// NOTE: when a match occurs, the output tokens + /// associated with the matching rule are "stacked" on top of + /// the input stream (if the rule had + /// keepOrig=true) and also on top of another + /// matched rule's output tokens. This is not a correct + /// solution, as really the output should be an arbitrary + /// graph/lattice. For example, with the above match, you + /// would expect an exact PhraseQuery "y b + /// c" to match the parsed tokens, but it will fail to + /// do so. This limitation is necessary because Lucene's + /// TokenStream (and index) cannot yet represent an arbitrary + /// graph. + /// + /// NOTE: If multiple incoming tokens arrive on the + /// same position, only the first token at that position is + /// used for parsing. Subsequent tokens simply pass through + /// and are not parsed. A future improvement would be to + /// allow these tokens to also be matched. + ///
    + + // TODO: maybe we should resolve token -> wordID then run + // FST on wordIDs, for better perf? + + // TODO: a more efficient approach would be Aho/Corasick's + // algorithm + // http://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_string_matching_algorithm + // It improves over the current approach here + // because it does not fully re-start matching at every + // token. For example if one pattern is "a b c x" + // and another is "b c d" and the input is "a b c d", on + // trying to parse "a b c x" but failing when you got to x, + // rather than starting over again your really should + // immediately recognize that "b c d" matches at the next + // input. I suspect this won't matter that much in + // practice, but it's possible on some set of synonyms it + // will. We'd have to modify Aho/Corasick to enforce our + // conflict resolving (eg greedy matching) because that algo + // finds all matches. This really amounts to adding a .* + // closure to the FST and then determinizing it. + + public sealed class SynonymFilter : TokenFilter + { + + public const string TYPE_SYNONYM = "SYNONYM"; + + private readonly SynonymMap synonyms; + + private readonly bool ignoreCase; + private readonly int rollBufferSize; + + private int captureCount; + + // TODO: we should set PositionLengthAttr too... + + private readonly ICharTermAttribute termAtt; + private readonly IPositionIncrementAttribute posIncrAtt; + private readonly IPositionLengthAttribute posLenAtt; + private readonly ITypeAttribute typeAtt; + private readonly IOffsetAttribute offsetAtt; + + + // How many future input tokens have already been matched + // to a synonym; because the matching is "greedy" we don't + // try to do any more matching for such tokens: + private int inputSkipCount; + + // Hold all buffered (read ahead) stacked input tokens for + // a future position. When multiple tokens are at the + // same position, we only store (and match against) the + // term for the first token at the position, but capture + // state for (and enumerate) all other tokens at this + // position: + private class PendingInput + { + internal readonly CharsRef term = new CharsRef(); + internal AttributeSource.State state; + internal bool keepOrig; + internal bool matched; + internal bool consumed = true; + internal int startOffset; + internal int endOffset; + + public void Reset() + { + state = null; + consumed = true; + keepOrig = false; + matched = false; + } + } + + // Rolling buffer, holding pending input tokens we had to + // clone because we needed to look ahead, indexed by + // position: + private readonly PendingInput[] futureInputs; + + // Holds pending output synonyms for one future position: + private class PendingOutputs + { + internal CharsRef[] outputs; + internal int[] endOffsets; + internal int[] posLengths; + internal int upto; + internal int count; + internal int posIncr = 1; + internal int lastEndOffset; + internal int lastPosLength; + + public PendingOutputs() + { + outputs = new CharsRef[1]; + endOffsets = new int[1]; + posLengths = new int[1]; + } + + public virtual void reset() + { + upto = count = 0; + posIncr = 1; + } + + public virtual CharsRef pullNext() + { + Debug.Assert(upto < count); + lastEndOffset = endOffsets[upto]; + lastPosLength = posLengths[upto]; + //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': + //ORIGINAL LINE: final org.apache.lucene.util.CharsRef result = outputs[upto++]; + CharsRef result = outputs[upto++]; + posIncr = 0; + if (upto == count) + { + reset(); + } + return result; + } + + public virtual int LastEndOffset + { + get + { + return lastEndOffset; + } + } + + public virtual int LastPosLength + { + get + { + return lastPosLength; + } + } + + public virtual void add(char[] output, int offset, int len, int endOffset, int posLength) + { + if (count == outputs.Length) + { + CharsRef[] next = new CharsRef[ArrayUtil.Oversize(1 + count, RamUsageEstimator.NUM_BYTES_OBJECT_REF)]; + Array.Copy(outputs, 0, next, 0, count); + outputs = next; + } + if (count == endOffsets.Length) + { + int[] next = new int[ArrayUtil.Oversize(1 + count, RamUsageEstimator.NUM_BYTES_INT)]; + Array.Copy(endOffsets, 0, next, 0, count); + endOffsets = next; + } + if (count == posLengths.Length) + { + int[] next = new int[ArrayUtil.Oversize(1 + count, RamUsageEstimator.NUM_BYTES_INT)]; + Array.Copy(posLengths, 0, next, 0, count); + posLengths = next; + } + if (outputs[count] == null) + { + outputs[count] = new CharsRef(); + } + outputs[count].CopyChars(output, offset, len); + // endOffset can be -1, in which case we should simply + // use the endOffset of the input token, or X >= 0, in + // which case we use X as the endOffset for this output + endOffsets[count] = endOffset; + posLengths[count] = posLength; + count++; + } + } + + private readonly ByteArrayDataInput bytesReader = new ByteArrayDataInput(); + + // Rolling buffer, holding stack of pending synonym + // outputs, indexed by position: + private readonly PendingOutputs[] futureOutputs; + + // Where (in rolling buffers) to write next input saved state: + private int nextWrite; + + // Where (in rolling buffers) to read next input saved state: + private int nextRead; + + // True once we've read last token + private bool finished; + + private readonly FST.Arc scratchArc; + + private readonly FST fst; + + private readonly FST.BytesReader fstReader; + + + private readonly BytesRef scratchBytes = new BytesRef(); + private readonly CharsRef scratchChars = new CharsRef(); + + /// input tokenstream + /// synonym map + /// case-folds input for matching with . + /// Note, if you set this to true, its your responsibility to lowercase + /// the input entries when you create the + public SynonymFilter(TokenStream input, SynonymMap synonyms, bool ignoreCase) : base(input) + { + termAtt = AddAttribute(); + posIncrAtt = AddAttribute(); + posLenAtt = AddAttribute(); + typeAtt = AddAttribute(); + offsetAtt = AddAttribute(); + + this.synonyms = synonyms; + this.ignoreCase = ignoreCase; + this.fst = synonyms.fst; + if (fst == null) + { + throw new System.ArgumentException("fst must be non-null"); + } + this.fstReader = fst.BytesReader; + + // Must be 1+ so that when roll buffer is at full + // lookahead we can distinguish this full buffer from + // the empty buffer: + rollBufferSize = 1 + synonyms.maxHorizontalContext; + + futureInputs = new PendingInput[rollBufferSize]; + futureOutputs = new PendingOutputs[rollBufferSize]; + for (int pos = 0; pos < rollBufferSize; pos++) + { + futureInputs[pos] = new PendingInput(); + futureOutputs[pos] = new PendingOutputs(); + } + + //System.out.println("FSTFilt maxH=" + synonyms.maxHorizontalContext); + + scratchArc = new FST.Arc(); + } + + private void capture() + { + captureCount++; + //System.out.println(" capture slot=" + nextWrite); + PendingInput input = futureInputs[nextWrite]; + + input.state = CaptureState(); + input.consumed = false; + input.term.CopyChars(termAtt.Buffer(), 0, termAtt.Length); + + nextWrite = rollIncr(nextWrite); + + // Buffer head should never catch up to tail: + Debug.Assert(nextWrite != nextRead); + } + + /* + This is the core of this TokenFilter: it locates the + synonym matches and buffers up the results into + futureInputs/Outputs. + + NOTE: this calls input.incrementToken and does not + capture the state if no further tokens were checked. So + caller must then forward state to our caller, or capture: + */ + private int lastStartOffset; + private int lastEndOffset; + + private void Parse() + { + //System.out.println("\nS: parse"); + + Debug.Assert(inputSkipCount == 0); + + int curNextRead = nextRead; + + // Holds the longest match we've seen so far: + BytesRef matchOutput = null; + int matchInputLength = 0; + int matchEndOffset = -1; + + BytesRef pendingOutput = fst.Outputs.NoOutput; + fst.GetFirstArc(scratchArc); + + Debug.Assert(scratchArc.Output == fst.Outputs.NoOutput); + + int tokenCount = 0; + + while (true) + { + + // Pull next token's chars: + char[] buffer; + int bufferLen; + //System.out.println(" cycle nextRead=" + curNextRead + " nextWrite=" + nextWrite); + + int inputEndOffset = 0; + + if (curNextRead == nextWrite) + { + + // We used up our lookahead buffer of input tokens + // -- pull next real input token: + + if (finished) + { + break; + } + else + { + //System.out.println(" input.incrToken"); + Debug.Assert(futureInputs[nextWrite].consumed); + // Not correct: a syn match whose output is longer + // than its input can set future inputs keepOrig + // to true: + //assert !futureInputs[nextWrite].keepOrig; + if (input.IncrementToken()) + { + buffer = termAtt.Buffer(); + bufferLen = termAtt.Length; + PendingInput input = futureInputs[nextWrite]; + lastStartOffset = input.startOffset = offsetAtt.StartOffset(); + lastEndOffset = input.endOffset = offsetAtt.EndOffset(); + inputEndOffset = input.endOffset; + //System.out.println(" new token=" + new String(buffer, 0, bufferLen)); + if (nextRead != nextWrite) + { + capture(); + } + else + { + input.consumed = false; + } + + } + else + { + // No more input tokens + //System.out.println(" set end"); + finished = true; + break; + } + } + } + else + { + // Still in our lookahead + buffer = futureInputs[curNextRead].term.Chars; + bufferLen = futureInputs[curNextRead].term.Length; + inputEndOffset = futureInputs[curNextRead].endOffset; + //System.out.println(" old token=" + new String(buffer, 0, bufferLen)); + } + + tokenCount++; + + // Run each char in this token through the FST: + int bufUpto = 0; + while (bufUpto < bufferLen) + { + int codePoint = Character.CodePointAt(buffer, bufUpto, bufferLen); + if (fst.FindTargetArc(ignoreCase ? Character.ToLowerCase(codePoint) : codePoint, scratchArc, scratchArc, fstReader) == null) + { + //System.out.println(" stop"); + goto byTokenBreak; + } + + // Accum the output + pendingOutput = fst.Outputs.Add(pendingOutput, scratchArc.Output); + //System.out.println(" char=" + buffer[bufUpto] + " output=" + pendingOutput + " arc.output=" + scratchArc.output); + bufUpto += Character.CharCount(codePoint); + } + + // OK, entire token matched; now see if this is a final + // state: + if (scratchArc.Final) + { + matchOutput = fst.Outputs.Add(pendingOutput, scratchArc.NextFinalOutput); + matchInputLength = tokenCount; + matchEndOffset = inputEndOffset; + //System.out.println(" found matchLength=" + matchInputLength + " output=" + matchOutput); + } + + // See if the FST wants to continue matching (ie, needs to + // see the next input token): + if (fst.FindTargetArc(SynonymMap.WORD_SEPARATOR, scratchArc, scratchArc, fstReader) == null) + { + // No further rules can match here; we're done + // searching for matching rules starting at the + // current input position. + break; + } + else + { + // More matching is possible -- accum the output (if + // any) of the WORD_SEP arc: + pendingOutput = fst.Outputs.Add(pendingOutput, scratchArc.Output); + if (nextRead == nextWrite) + { + capture(); + } + } + + curNextRead = rollIncr(curNextRead); + //byTokenContinue:; + } + byTokenBreak: + + if (nextRead == nextWrite && !finished) + { + //System.out.println(" skip write slot=" + nextWrite); + nextWrite = rollIncr(nextWrite); + } + + if (matchOutput != null) + { + //System.out.println(" add matchLength=" + matchInputLength + " output=" + matchOutput); + inputSkipCount = matchInputLength; + AddOutput(matchOutput, matchInputLength, matchEndOffset); + } + else if (nextRead != nextWrite) + { + // Even though we had no match here, we set to 1 + // because we need to skip current input token before + // trying to match again: + inputSkipCount = 1; + } + else + { + Debug.Assert(finished); + } + + //System.out.println(" parse done inputSkipCount=" + inputSkipCount + " nextRead=" + nextRead + " nextWrite=" + nextWrite); + } + + // Interleaves all output tokens onto the futureOutputs: + private void AddOutput(BytesRef bytes, int matchInputLength, int matchEndOffset) + { + bytesReader.Reset(bytes.Bytes, bytes.Offset, bytes.Length); + + int code = bytesReader.ReadVInt(); + bool keepOrig = (code & 0x1) == 0; + int count = (int)((uint)code >> 1); + //System.out.println(" addOutput count=" + count + " keepOrig=" + keepOrig); + for (int outputIDX = 0; outputIDX < count; outputIDX++) + { + synonyms.words.Get(bytesReader.ReadVInt(), scratchBytes); + //System.out.println(" outIDX=" + outputIDX + " bytes=" + scratchBytes.length); + UnicodeUtil.UTF8toUTF16(scratchBytes, scratchChars); + int lastStart = scratchChars.Offset; + int chEnd = lastStart + scratchChars.Length; + int outputUpto = nextRead; + for (int chIDX = lastStart; chIDX <= chEnd; chIDX++) + { + if (chIDX == chEnd || scratchChars.Chars[chIDX] == SynonymMap.WORD_SEPARATOR) + { + int outputLen = chIDX - lastStart; + // Caller is not allowed to have empty string in + // the output: + Debug.Assert(outputLen > 0, "output contains empty string: " + scratchChars); + int endOffset; + int posLen; + if (chIDX == chEnd && lastStart == scratchChars.Offset) + { + // This rule had a single output token, so, we set + // this output's endOffset to the current + // endOffset (ie, endOffset of the last input + // token it matched): + endOffset = matchEndOffset; + posLen = keepOrig ? matchInputLength : 1; + } + else + { + // This rule has more than one output token; we + // can't pick any particular endOffset for this + // case, so, we inherit the endOffset for the + // input token which this output overlaps: + endOffset = -1; + posLen = 1; + } + futureOutputs[outputUpto].add(scratchChars.Chars, lastStart, outputLen, endOffset, posLen); + //System.out.println(" " + new String(scratchChars.chars, lastStart, outputLen) + " outputUpto=" + outputUpto); + lastStart = 1 + chIDX; + //System.out.println(" slot=" + outputUpto + " keepOrig=" + keepOrig); + outputUpto = rollIncr(outputUpto); + Debug.Assert(futureOutputs[outputUpto].posIncr == 1, "outputUpto=" + outputUpto + " vs nextWrite=" + nextWrite); + } + } + } + + int upto = nextRead; + for (int idx = 0; idx < matchInputLength; idx++) + { + futureInputs[upto].keepOrig |= keepOrig; + futureInputs[upto].matched = true; + upto = rollIncr(upto); + } + } + + // ++ mod rollBufferSize + private int rollIncr(int count) + { + count++; + if (count == rollBufferSize) + { + return 0; + } + else + { + return count; + } + } + + // for testing + internal int CaptureCount + { + get + { + return captureCount; + } + } + + public override bool IncrementToken() + { + + //System.out.println("\nS: incrToken inputSkipCount=" + inputSkipCount + " nextRead=" + nextRead + " nextWrite=" + nextWrite); + + while (true) + { + + // First play back any buffered future inputs/outputs + // w/o running parsing again: + while (inputSkipCount != 0) + { + + // At each position, we first output the original + // token + + // TODO: maybe just a PendingState class, holding + // both input & outputs? + PendingInput input = futureInputs[nextRead]; + PendingOutputs outputs = futureOutputs[nextRead]; + + //System.out.println(" cycle nextRead=" + nextRead + " nextWrite=" + nextWrite + " inputSkipCount="+ inputSkipCount + " input.keepOrig=" + input.keepOrig + " input.consumed=" + input.consumed + " input.state=" + input.state); + + if (!input.consumed && (input.keepOrig || !input.matched)) + { + if (input.state != null) + { + // Return a previously saved token (because we + // had to lookahead): + RestoreState(input.state); + } + else + { + // Pass-through case: return token we just pulled + // but didn't capture: + Debug.Assert(inputSkipCount == 1, "inputSkipCount=" + inputSkipCount + " nextRead=" + nextRead); + } + input.Reset(); + if (outputs.count > 0) + { + outputs.posIncr = 0; + } + else + { + nextRead = rollIncr(nextRead); + inputSkipCount--; + } + //System.out.println(" return token=" + termAtt.toString()); + return true; + } + else if (outputs.upto < outputs.count) + { + // Still have pending outputs to replay at this + // position + input.Reset(); + int posIncr = outputs.posIncr; + CharsRef output = outputs.pullNext(); + ClearAttributes(); + termAtt.CopyBuffer(output.Chars, output.Offset, output.Length); + typeAtt.Type = TYPE_SYNONYM; + int endOffset = outputs.LastEndOffset; + if (endOffset == -1) + { + endOffset = input.endOffset; + } + offsetAtt.SetOffset(input.startOffset, endOffset); + posIncrAtt.PositionIncrement = posIncr; + posLenAtt.PositionLength = outputs.LastPosLength; + if (outputs.count == 0) + { + // Done with the buffered input and all outputs at + // this position + nextRead = rollIncr(nextRead); + inputSkipCount--; + } + //System.out.println(" return token=" + termAtt.toString()); + return true; + } + else + { + // Done with the buffered input and all outputs at + // this position + input.Reset(); + nextRead = rollIncr(nextRead); + inputSkipCount--; + } + } + + if (finished && nextRead == nextWrite) + { + // End case: if any output syns went beyond end of + // input stream, enumerate them now: + PendingOutputs outputs = futureOutputs[nextRead]; + if (outputs.upto < outputs.count) + { + int posIncr = outputs.posIncr; + CharsRef output = outputs.pullNext(); + futureInputs[nextRead].Reset(); + if (outputs.count == 0) + { + nextWrite = nextRead = rollIncr(nextRead); + } + ClearAttributes(); + // Keep offset from last input token: + offsetAtt.SetOffset(lastStartOffset, lastEndOffset); + termAtt.CopyBuffer(output.Chars, output.Offset, output.Length); + typeAtt.Type = TYPE_SYNONYM; + //System.out.println(" set posIncr=" + outputs.posIncr + " outputs=" + outputs); + posIncrAtt.PositionIncrement = posIncr; + //System.out.println(" return token=" + termAtt.toString()); + return true; + } + else + { + return false; + } + } + + // Find new synonym matches: + Parse(); + } + } + + public override void Reset() + { + base.Reset(); + captureCount = 0; + finished = false; + inputSkipCount = 0; + nextRead = nextWrite = 0; + + // In normal usage these resets would not be needed, + // since they reset-as-they-are-consumed, but the app + // may not consume all input tokens (or we might hit an + // exception), in which case we have leftover state + // here: + foreach (PendingInput input in futureInputs) + { + input.Reset(); + } + foreach (PendingOutputs output in futureOutputs) + { + output.reset(); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymFilterFactory.cs index 714f509244..9e0f6a1eb8 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymFilterFactory.cs @@ -2,11 +2,9 @@ using System.Collections.Generic; using Lucene.Net.Analysis.Util; using Lucene.Net.Util; -using org.apache.lucene.analysis.util; namespace Lucene.Net.Analysis.Synonym { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -23,6 +21,7 @@ namespace Lucene.Net.Analysis.Synonym * See the License for the specific language governing permissions and * limitations under the License. */ + /// /// Factory for . ///
    @@ -56,38 +55,38 @@ namespace Lucene.Net.Analysis.Synonym
         /// 
         /// 
         /// 
    - public class SynonymFilterFactory : TokenFilterFactory, ResourceLoaderAware + public class SynonymFilterFactory : TokenFilterFactory, IResourceLoaderAware { private readonly TokenFilterFactory delegator; public SynonymFilterFactory(IDictionary args) : base(args) - { - assureMatchVersion(); - if (luceneMatchVersion.OnOrAfter(Lucene.Net.Util.LuceneVersion.LUCENE_34)) - { - delegator = new FSTSynonymFilterFactory(new Dictionary(OriginalArgs)); - } - else - { - // check if you use the new optional arg "format". this makes no sense for the old one, - // as its wired to solr's synonyms format only. - if (args.ContainsKey("format") && !args["format"].Equals("solr")) - { - throw new System.ArgumentException("You must specify luceneMatchVersion >= 3.4 to use alternate synonyms formats"); - } - delegator = new SlowSynonymFilterFactory(new Dictionary<>(OriginalArgs)); - } - } + { + AssureMatchVersion(); + if (luceneMatchVersion.OnOrAfter(Lucene.Net.Util.LuceneVersion.LUCENE_34)) + { + delegator = new FSTSynonymFilterFactory(new Dictionary(OriginalArgs)); + } + else + { + // check if you use the new optional arg "format". this makes no sense for the old one, + // as its wired to solr's synonyms format only. + if (args.ContainsKey("format") && !args["format"].Equals("solr")) + { + throw new System.ArgumentException("You must specify luceneMatchVersion >= 3.4 to use alternate synonyms formats"); + } + delegator = new SlowSynonymFilterFactory(new Dictionary(OriginalArgs)); + } + } public override TokenStream Create(TokenStream input) { return delegator.Create(input); } - public virtual void Inform(ResourceLoader loader) + public virtual void Inform(IResourceLoader loader) { - ((ResourceLoaderAware)delegator).Inform(loader); + ((IResourceLoaderAware)delegator).Inform(loader); } /// diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymMap.cs b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymMap.cs index ab7761fa55..9e05dc951c 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymMap.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/SynonymMap.cs @@ -1,19 +1,17 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Tokenattributes; using Lucene.Net.Store; using Lucene.Net.Support; using Lucene.Net.Util; using Lucene.Net.Util.Fst; -using Reader = System.IO.TextReader; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -29,369 +27,369 @@ namespace Lucene.Net.Analysis.Synonym * See the License for the specific language governing permissions and * limitations under the License. */ - /// - /// A map of synonyms, keys and values are phrases. - /// @lucene.experimental - /// - public class SynonymMap - { - /// - /// for multiword support, you must separate words with this separator - public const char WORD_SEPARATOR = (char)0; - /// - /// map<input word, list<ord>> - public readonly FST fst; - /// - /// map<ord, outputword> - public readonly BytesRefHash words; - /// - /// maxHorizontalContext: maximum context we need on the tokenstream - public readonly int maxHorizontalContext; - - public SynonymMap(FST fst, BytesRefHash words, int maxHorizontalContext) - { - this.fst = fst; - this.words = words; - this.maxHorizontalContext = maxHorizontalContext; - } - - /// - /// Builds an FSTSynonymMap. - /// - /// Call add() until you have added all the mappings, then call build() to get an FSTSynonymMap - /// @lucene.experimental - /// - /// - public class Builder - { - internal readonly Dictionary workingSet = new Dictionary(); - internal readonly BytesRefHash words = new BytesRefHash(); - internal readonly BytesRef utf8Scratch = new BytesRef(8); - internal int maxHorizontalContext; - internal readonly bool dedup; - - /// - /// If dedup is true then identical rules (same input, - /// same output) will be added only once. - /// - public Builder(bool dedup) - { - this.dedup = dedup; - } - - internal class MapEntry - { - internal bool includeOrig; - // we could sort for better sharing ultimately, but it could confuse people - internal List ords = new List(); - } - - /// - /// Sugar: just joins the provided terms with {@link - /// SynonymMap#WORD_SEPARATOR}. reuse and its chars - /// must not be null. - /// - public static CharsRef join(string[] words, CharsRef reuse) - { - int upto = 0; - char[] buffer = reuse.Chars; - foreach (string word in words) - { - int wordLen = word.Length; - int needed = (0 == upto ? wordLen : 1 + upto + wordLen); // Add 1 for WORD_SEPARATOR - if (needed > buffer.Length) - { - reuse.Grow(needed); - buffer = reuse.Chars; - } - if (upto > 0) - { - buffer[upto++] = SynonymMap.WORD_SEPARATOR; - } - - word.CopyTo(0, buffer, upto, wordLen - 0); - upto += wordLen; - } - reuse.Length = upto; - return reuse; - } - - - - /// - /// only used for asserting! - /// - internal virtual bool HasHoles(CharsRef chars) - { - int end = chars.Offset + chars.Length; - for (int idx = chars.Offset + 1;idx < end;idx++) - { - if (chars.Chars[idx] == SynonymMap.WORD_SEPARATOR && chars.Chars[idx - 1] == SynonymMap.WORD_SEPARATOR) - { - return true; - } - } - if (chars.Chars[chars.Offset] == '\u0000') - { - return true; - } - if (chars.Chars[chars.Offset + chars.Length - 1] == '\u0000') - { - return true; - } - - return false; - } - - // NOTE: while it's tempting to make this public, since - // caller's parser likely knows the - // numInput/numOutputWords, sneaky exceptions, much later - // on, will result if these values are wrong; so we always - // recompute ourselves to be safe: - internal virtual void Add(CharsRef input, int numInputWords, CharsRef output, int numOutputWords, bool includeOrig) - { - // first convert to UTF-8 - if (numInputWords <= 0) - { - throw new System.ArgumentException("numInputWords must be > 0 (got " + numInputWords + ")"); - } - if (input.Length <= 0) - { - throw new System.ArgumentException("input.length must be > 0 (got " + input.Length + ")"); - } - if (numOutputWords <= 0) - { - throw new System.ArgumentException("numOutputWords must be > 0 (got " + numOutputWords + ")"); - } - if (output.Length <= 0) - { - throw new System.ArgumentException("output.length must be > 0 (got " + output.Length + ")"); - } - - Debug.Assert(!HasHoles(input), "input has holes: " + input); - Debug.Assert(!HasHoles(output), "output has holes: " + output); - - //System.out.println("fmap.add input=" + input + " numInputWords=" + numInputWords + " output=" + output + " numOutputWords=" + numOutputWords); - UnicodeUtil.UTF16toUTF8(output.Chars, output.Offset, output.Length, utf8Scratch); - // lookup in hash - int ord = words.Add(utf8Scratch); - if (ord < 0) - { - // already exists in our hash - ord = (-ord) - 1; - //System.out.println(" output=" + output + " old ord=" + ord); - } - else - { - //System.out.println(" output=" + output + " new ord=" + ord); - } - - MapEntry e = workingSet[input]; - if (e == null) - { - e = new MapEntry(); - workingSet[CharsRef.DeepCopyOf(input)] = e; // make a copy, since we will keep around in our map - } - - e.ords.Add(ord); - e.includeOrig |= includeOrig; - maxHorizontalContext = Math.Max(maxHorizontalContext, numInputWords); - maxHorizontalContext = Math.Max(maxHorizontalContext, numOutputWords); - } - - internal virtual int countWords(CharsRef chars) - { - int wordCount = 1; - int upto = chars.Offset; - int limit = chars.Offset + chars.Length; - while (upto < limit) - { - if (chars.Chars[upto++] == SynonymMap.WORD_SEPARATOR) - { - wordCount++; - } - } - return wordCount; - } - - /// - /// Add a phrase->phrase synonym mapping. - /// Phrases are character sequences where words are - /// separated with character zero (U+0000). Empty words - /// (two U+0000s in a row) are not allowed in the input nor - /// the output! - /// - /// input phrase - /// output phrase - /// true if the original should be included - public virtual void Add(CharsRef input, CharsRef output, bool includeOrig) - { - Add(input, countWords(input), output, countWords(output), includeOrig); - } - - /// - /// Builds an and returns it. - /// - public virtual SynonymMap Build() - { - ByteSequenceOutputs outputs = ByteSequenceOutputs.Singleton; - // TODO: are we using the best sharing options? - var builder = new Builder(FST.INPUT_TYPE.BYTE4, outputs); - - BytesRef scratch = new BytesRef(64); - ByteArrayDataOutput scratchOutput = new ByteArrayDataOutput(); - - HashSet dedupSet; - - if (dedup) - { - dedupSet = new HashSet(); - } - else - { - dedupSet = null; - } - - - var spare = new sbyte[5]; - - Dictionary.KeyCollection keys = workingSet.Keys; - CharsRef[] sortedKeys = keys.ToArray(); - Arrays.Sort(sortedKeys, CharsRef.UTF16SortedAsUTF8Comparator); - - IntsRef scratchIntsRef = new IntsRef(); - - //System.out.println("fmap.build"); - for (int keyIdx = 0; keyIdx < sortedKeys.Length; keyIdx++) - { - CharsRef input = sortedKeys[keyIdx]; - MapEntry output = workingSet[input]; - - int numEntries = output.ords.Count; - // output size, assume the worst case - int estimatedSize = 5 + numEntries * 5; // numEntries + one ord for each entry - - scratch.Grow(estimatedSize); - scratchOutput.Reset(scratch.Bytes, scratch.Offset, scratch.Bytes.Length); - Debug.Assert(scratch.Offset == 0); - - // now write our output data: - int count = 0; - for (int i = 0; i < numEntries; i++) - { - if (dedupSet != null) - { - // box once - int? ent = output.ords[i]; - if (dedupSet.Contains(ent)) - { - continue; - } - dedupSet.Add(ent); - } - scratchOutput.WriteVInt(output.ords[i]); - count++; - } - - int pos = scratchOutput.Position; - scratchOutput.WriteVInt(count << 1 | (output.includeOrig ? 0 : 1)); - int pos2 = scratchOutput.Position; - int vIntLen = pos2 - pos; - - // Move the count + includeOrig to the front of the byte[]: - Array.Copy(scratch.Bytes, pos, spare, 0, vIntLen); - Array.Copy(scratch.Bytes, 0, scratch.Bytes, vIntLen, pos); - Array.Copy(spare, 0, scratch.Bytes, 0, vIntLen); - - if (dedupSet != null) - { - dedupSet.Clear(); - } - - scratch.Length = scratchOutput.Position - scratch.Offset; - //System.out.println(" add input=" + input + " output=" + scratch + " offset=" + scratch.offset + " length=" + scratch.length + " count=" + count); - builder.Add(Util.ToUTF32(input, scratchIntsRef), BytesRef.DeepCopyOf(scratch)); - } - - FST fst = builder.Finish(); - return new SynonymMap(fst, words, maxHorizontalContext); - } - } - - /// - /// Abstraction for parsing synonym files. - /// - /// @lucene.experimental - /// - public abstract class Parser : Builder - { - - internal readonly Analyzer analyzer; - - public Parser(bool dedup, Analyzer analyzer) : base(dedup) - { - this.analyzer = analyzer; - } - - /// - /// Parse the given input, adding synonyms to the inherited . - /// The input to parse - public abstract void Parse(Reader @in); - - /// - /// Sugar: analyzes the text with the analyzer and - /// separates by . - /// reuse and its chars must not be null. - /// - public virtual CharsRef Analyze(string text, CharsRef reuse) - { - IOException priorException = null; - TokenStream ts = analyzer.TokenStream("", text); - try - { - var termAtt = ts.AddAttribute < ICharTermAttribute>(); - var posIncAtt = ts.AddAttribute < IPositionIncrementAttribute>(); - ts.Reset(); - reuse.Length = 0; - while (ts.IncrementToken()) - { - int length = termAtt.Length; - if (length == 0) - { - throw new System.ArgumentException("term: " + text + " analyzed to a zero-length token"); - } - if (posIncAtt.PositionIncrement != 1) - { - throw new System.ArgumentException("term: " + text + " analyzed to a token with posinc != 1"); - } - reuse.Grow(reuse.Length + length + 1); // current + word + separator - int end = reuse.Offset + reuse.Length; - if (reuse.Length > 0) - { - reuse.Chars[end++] = SynonymMap.WORD_SEPARATOR; - reuse.Length++; - } - Array.Copy(termAtt.Buffer(), 0, reuse.Chars, end, length); - reuse.Length += length; - } - ts.End(); - } - catch (IOException e) - { - priorException = e; - } - finally - { - IOUtils.CloseWhileHandlingException(priorException, ts); - } - if (reuse.Length == 0) - { - throw new System.ArgumentException("term: " + text + " was completely eliminated by analyzer"); - } - return reuse; - } - } - - } + /// + /// A map of synonyms, keys and values are phrases. + /// @lucene.experimental + /// + public class SynonymMap + { + /// + /// for multiword support, you must separate words with this separator + public const char WORD_SEPARATOR = (char)0; + /// + /// map<input word, list<ord>> + public readonly FST fst; + /// + /// map<ord, outputword> + public readonly BytesRefHash words; + /// + /// maxHorizontalContext: maximum context we need on the tokenstream + public readonly int maxHorizontalContext; + + public SynonymMap(FST fst, BytesRefHash words, int maxHorizontalContext) + { + this.fst = fst; + this.words = words; + this.maxHorizontalContext = maxHorizontalContext; + } + + /// + /// Builds an FSTSynonymMap. + /// + /// Call add() until you have added all the mappings, then call build() to get an FSTSynonymMap + /// @lucene.experimental + /// + /// + public class Builder + { + internal readonly HashMap workingSet = new HashMap(); + internal readonly BytesRefHash words = new BytesRefHash(); + internal readonly BytesRef utf8Scratch = new BytesRef(8); + internal int maxHorizontalContext; + internal readonly bool dedup; + + /// + /// If dedup is true then identical rules (same input, + /// same output) will be added only once. + /// + public Builder(bool dedup) + { + this.dedup = dedup; + } + + internal class MapEntry + { + internal bool includeOrig; + // we could sort for better sharing ultimately, but it could confuse people + internal List ords = new List(); + } + + /// + /// Sugar: just joins the provided terms with {@link + /// SynonymMap#WORD_SEPARATOR}. reuse and its chars + /// must not be null. + /// + public static CharsRef Join(string[] words, CharsRef reuse) + { + int upto = 0; + char[] buffer = reuse.Chars; + foreach (string word in words) + { + int wordLen = word.Length; + int needed = (0 == upto ? wordLen : 1 + upto + wordLen); // Add 1 for WORD_SEPARATOR + if (needed > buffer.Length) + { + reuse.Grow(needed); + buffer = reuse.Chars; + } + if (upto > 0) + { + buffer[upto++] = SynonymMap.WORD_SEPARATOR; + } + + word.CopyTo(0, buffer, upto, wordLen - 0); + upto += wordLen; + } + reuse.Length = upto; + return reuse; + } + + /// + /// only used for asserting! + /// + internal virtual bool HasHoles(CharsRef chars) + { + int end = chars.Offset + chars.Length; + for (int idx = chars.Offset + 1; idx < end; idx++) + { + if (chars.Chars[idx] == SynonymMap.WORD_SEPARATOR && chars.Chars[idx - 1] == SynonymMap.WORD_SEPARATOR) + { + return true; + } + } + if (chars.Chars[chars.Offset] == '\u0000') + { + return true; + } + if (chars.Chars[chars.Offset + chars.Length - 1] == '\u0000') + { + return true; + } + + return false; + } + + // NOTE: while it's tempting to make this public, since + // caller's parser likely knows the + // numInput/numOutputWords, sneaky exceptions, much later + // on, will result if these values are wrong; so we always + // recompute ourselves to be safe: + internal virtual void Add(CharsRef input, int numInputWords, CharsRef output, int numOutputWords, bool includeOrig) + { + // first convert to UTF-8 + if (numInputWords <= 0) + { + throw new System.ArgumentException("numInputWords must be > 0 (got " + numInputWords + ")"); + } + if (input.Length <= 0) + { + throw new System.ArgumentException("input.length must be > 0 (got " + input.Length + ")"); + } + if (numOutputWords <= 0) + { + throw new System.ArgumentException("numOutputWords must be > 0 (got " + numOutputWords + ")"); + } + if (output.Length <= 0) + { + throw new System.ArgumentException("output.length must be > 0 (got " + output.Length + ")"); + } + + Debug.Assert(!HasHoles(input), "input has holes: " + input); + Debug.Assert(!HasHoles(output), "output has holes: " + output); + + //System.out.println("fmap.add input=" + input + " numInputWords=" + numInputWords + " output=" + output + " numOutputWords=" + numOutputWords); + UnicodeUtil.UTF16toUTF8(output.Chars, output.Offset, output.Length, utf8Scratch); + // lookup in hash + int ord = words.Add(utf8Scratch); + if (ord < 0) + { + // already exists in our hash + ord = (-ord) - 1; + //System.out.println(" output=" + output + " old ord=" + ord); + } + else + { + //System.out.println(" output=" + output + " new ord=" + ord); + } + + MapEntry e = workingSet.ContainsKey(input) ? workingSet[input] : null; + if (e == null) + { + e = new MapEntry(); + workingSet[CharsRef.DeepCopyOf(input)] = e; // make a copy, since we will keep around in our map + } + + e.ords.Add(ord); + e.includeOrig |= includeOrig; + maxHorizontalContext = Math.Max(maxHorizontalContext, numInputWords); + maxHorizontalContext = Math.Max(maxHorizontalContext, numOutputWords); + } + + internal virtual int CountWords(CharsRef chars) + { + int wordCount = 1; + int upto = chars.Offset; + int limit = chars.Offset + chars.Length; + while (upto < limit) + { + if (chars.Chars[upto++] == SynonymMap.WORD_SEPARATOR) + { + wordCount++; + } + } + return wordCount; + } + + /// + /// Add a phrase->phrase synonym mapping. + /// Phrases are character sequences where words are + /// separated with character zero (U+0000). Empty words + /// (two U+0000s in a row) are not allowed in the input nor + /// the output! + /// + /// input phrase + /// output phrase + /// true if the original should be included + public virtual void Add(CharsRef input, CharsRef output, bool includeOrig) + { + Add(input, CountWords(input), output, CountWords(output), includeOrig); + } + + /// + /// Builds an and returns it. + /// + public virtual SynonymMap Build() + { + ByteSequenceOutputs outputs = ByteSequenceOutputs.Singleton; + // TODO: are we using the best sharing options? + var builder = new Builder(FST.INPUT_TYPE.BYTE4, outputs); + + BytesRef scratch = new BytesRef(64); + ByteArrayDataOutput scratchOutput = new ByteArrayDataOutput(); + + HashSet dedupSet; + + if (dedup) + { + dedupSet = new HashSet(); + } + else + { + dedupSet = null; + } + + + var spare = new byte[5]; + + IEnumerable keys = workingSet.Keys; + CharsRef[] sortedKeys = keys.ToArray(); + //Arrays.Sort(sortedKeys, CharsRef.UTF16SortedAsUTF8Comparer); + System.Array.Sort(sortedKeys, CharsRef.UTF16SortedAsUTF8Comparer); + + + IntsRef scratchIntsRef = new IntsRef(); + + //System.out.println("fmap.build"); + for (int keyIdx = 0; keyIdx < sortedKeys.Length; keyIdx++) + { + CharsRef input = sortedKeys[keyIdx]; + MapEntry output = workingSet[input]; + + int numEntries = output.ords.Count; + // output size, assume the worst case + int estimatedSize = 5 + numEntries * 5; // numEntries + one ord for each entry + + scratch.Grow(estimatedSize); + scratchOutput.Reset(scratch.Bytes, scratch.Offset, scratch.Bytes.Length); + Debug.Assert(scratch.Offset == 0); + + // now write our output data: + int count = 0; + for (int i = 0; i < numEntries; i++) + { + if (dedupSet != null) + { + // box once + int? ent = output.ords[i]; + if (dedupSet.Contains(ent)) + { + continue; + } + dedupSet.Add(ent); + } + scratchOutput.WriteVInt(output.ords[i]); + count++; + } + + int pos = scratchOutput.Position; + scratchOutput.WriteVInt(count << 1 | (output.includeOrig ? 0 : 1)); + int pos2 = scratchOutput.Position; + int vIntLen = pos2 - pos; + + // Move the count + includeOrig to the front of the byte[]: + Array.Copy(scratch.Bytes, pos, spare, 0, vIntLen); + Array.Copy(scratch.Bytes, 0, scratch.Bytes, vIntLen, pos); + Array.Copy(spare, 0, scratch.Bytes, 0, vIntLen); + + if (dedupSet != null) + { + dedupSet.Clear(); + } + + scratch.Length = scratchOutput.Position - scratch.Offset; + //System.out.println(" add input=" + input + " output=" + scratch + " offset=" + scratch.offset + " length=" + scratch.length + " count=" + count); + builder.Add(Lucene.Net.Util.Fst.Util.ToUTF32(input.ToString(), scratchIntsRef), BytesRef.DeepCopyOf(scratch)); + } + + FST fst = builder.Finish(); + return new SynonymMap(fst, words, maxHorizontalContext); + } + } + + /// + /// Abstraction for parsing synonym files. + /// + /// @lucene.experimental + /// + public abstract class Parser : Builder + { + + internal readonly Analyzer analyzer; + + public Parser(bool dedup, Analyzer analyzer) + : base(dedup) + { + this.analyzer = analyzer; + } + + /// + /// Parse the given input, adding synonyms to the inherited . + /// The input to parse + public abstract void Parse(TextReader @in); + + /// + /// Sugar: analyzes the text with the analyzer and + /// separates by . + /// reuse and its chars must not be null. + /// + public virtual CharsRef Analyze(string text, CharsRef reuse) + { + IOException priorException = null; + TokenStream ts = analyzer.TokenStream("", text); + try + { + var termAtt = ts.AddAttribute(); + var posIncAtt = ts.AddAttribute(); + ts.Reset(); + reuse.Length = 0; + while (ts.IncrementToken()) + { + int length = termAtt.Length; + if (length == 0) + { + throw new System.ArgumentException("term: " + text + " analyzed to a zero-length token"); + } + if (posIncAtt.PositionIncrement != 1) + { + throw new System.ArgumentException("term: " + text + " analyzed to a token with posinc != 1"); + } + reuse.Grow(reuse.Length + length + 1); // current + word + separator + int end = reuse.Offset + reuse.Length; + if (reuse.Length > 0) + { + reuse.Chars[end++] = SynonymMap.WORD_SEPARATOR; + reuse.Length++; + } + Array.Copy(termAtt.Buffer(), 0, reuse.Chars, end, length); + reuse.Length += length; + } + ts.End(); + } + catch (IOException e) + { + priorException = e; + } + finally + { + IOUtils.CloseWhileHandlingException(priorException, ts); + } + if (reuse.Length == 0) + { + throw new System.ArgumentException("term: " + text + " was completely eliminated by analyzer"); + } + return reuse; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/WordnetSynonymParser.cs b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/WordnetSynonymParser.cs index 44e700d63a..53677b067b 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Synonym/WordnetSynonymParser.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Synonym/WordnetSynonymParser.cs @@ -1,11 +1,10 @@ using System; +using System.IO; using Lucene.Net.Util; -using Reader = System.IO.TextReader; namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -21,111 +20,110 @@ namespace Lucene.Net.Analysis.Synonym * See the License for the specific language governing permissions and * limitations under the License. */ + /// - /// Parser for wordnet prolog format - /// - /// See http://wordnet.princeton.edu/man/prologdb.5WN.html for a description of the format. - /// @lucene.experimental - /// - /// - // TODO: allow you to specify syntactic categories (e.g. just nouns, etc) - public class WordnetSynonymParser : SynonymMap.Parser - { - private readonly bool expand; + /// Parser for wordnet prolog format + /// + /// See http://wordnet.princeton.edu/man/prologdb.5WN.html for a description of the format. + /// @lucene.experimental + /// + /// + // TODO: allow you to specify syntactic categories (e.g. just nouns, etc) + public class WordnetSynonymParser : SynonymMap.Parser + { + private readonly bool expand; - public WordnetSynonymParser(bool dedup, bool expand, Analyzer analyzer) : base(dedup, analyzer) - { - this.expand = expand; - } + public WordnetSynonymParser(bool dedup, bool expand, Analyzer analyzer) : base(dedup, analyzer) + { + this.expand = expand; + } - public override void Parse(Reader @in) - { - LineNumberReader br = new LineNumberReader(@in); - try - { - string line = null; - string lastSynSetID = ""; - CharsRef[] synset = new CharsRef[8]; - int synsetSize = 0; + public override void Parse(TextReader @in) + { + int lineNumber = 0; + TextReader br = @in; + try + { + string line = null; + string lastSynSetID = ""; + CharsRef[] synset = new CharsRef[8]; + int synsetSize = 0; - while ((line = br.readLine()) != null) - { - string synSetID = line.Substring(2, 9); - if (!synSetID.Equals(lastSynSetID)) - { - addInternal(synset, synsetSize); - synsetSize = 0; - } + while ((line = br.ReadLine()) != null) + { + lineNumber++; + string synSetID = line.Substring(2, 9); - if (synset.Length <= synsetSize+1) - { - CharsRef[] larger = new CharsRef[synset.Length * 2]; - Array.Copy(synset, 0, larger, 0, synsetSize); - synset = larger; - } + if (!synSetID.Equals(lastSynSetID)) + { + AddInternal(synset, synsetSize); + synsetSize = 0; + } - synset[synsetSize] = parseSynonym(line, synset[synsetSize]); - synsetSize++; - lastSynSetID = synSetID; - } + if (synset.Length <= synsetSize + 1) + { + CharsRef[] larger = new CharsRef[synset.Length * 2]; + Array.Copy(synset, 0, larger, 0, synsetSize); + synset = larger; + } - // final synset in the file - addInternal(synset, synsetSize); - } - catch (System.ArgumentException e) - { - ParseException ex = new ParseException("Invalid synonym rule at line " + br.LineNumber, 0); - ex.initCause(e); - throw ex; - } - finally - { - br.close(); - } - } + synset[synsetSize] = ParseSynonym(line, synset[synsetSize]); + synsetSize++; + lastSynSetID = synSetID; + } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private org.apache.lucene.util.CharsRef parseSynonym(String line, org.apache.lucene.util.CharsRef reuse) throws java.io.IOException - private CharsRef parseSynonym(string line, CharsRef reuse) - { - if (reuse == null) - { - reuse = new CharsRef(8); - } + // final synset in the file + AddInternal(synset, synsetSize); + } + catch (System.ArgumentException e) + { + throw new Exception("Invalid synonym rule at line " + lineNumber.ToString(), e); + } + finally + { + br.Dispose(); + } + } - int start = line.IndexOf('\'') + 1; - int end = line.LastIndexOf('\''); + private CharsRef ParseSynonym(string line, CharsRef reuse) + { + if (reuse == null) + { + reuse = new CharsRef(8); + } - string text = line.Substring(start, end - start).Replace("''", "'"); - return Analyze(text, reuse); - } + int start = line.IndexOf('\'') + 1; + int end = line.LastIndexOf('\''); - private void addInternal(CharsRef[] synset, int size) - { - if (size <= 1) - { - return; // nothing to do - } + string text = line.Substring(start, end - start).Replace("''", "'"); + return Analyze(text, reuse); + } - if (expand) - { - for (int i = 0; i < size; i++) - { - for (int j = 0; j < size; j++) - { - Add(synset[i], synset[j], false); - } - } - } - else - { - for (int i = 0; i < size; i++) - { - Add(synset[i], synset[0], false); - } - } - } - } + private void AddInternal(CharsRef[] synset, int size) + { + if (size <= 1) + { + return; // nothing to do + } + if (expand) + { + for (int i = 0; i < size; i++) + { + for (int j = 0; j < size; j++) + { + Add(synset[i], synset[j], false); + } + } + } + else + { + for (int i = 0; i < size; i++) + { + Add(synset[i], synset[0], false); + } + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index 6d5c354efe..4de93072cd 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -191,6 +191,15 @@ Code
    + + + + + + + + + Code diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestMultiWordSynonyms.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestMultiWordSynonyms.cs index 98f531f2b7..85f8a793db 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestMultiWordSynonyms.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestMultiWordSynonyms.cs @@ -1,10 +1,12 @@ -using System; +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System; using System.Collections.Generic; +using System.IO; -namespace org.apache.lucene.analysis.synonym +namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -21,42 +23,35 @@ namespace org.apache.lucene.analysis.synonym * limitations under the License. */ - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - using StringMockResourceLoader = org.apache.lucene.analysis.util.StringMockResourceLoader; - - - /// - /// @since solr 1.4 - /// - public class TestMultiWordSynonyms : BaseTokenStreamFactoryTestCase - { - - /// @deprecated Remove this test in 5.0 -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Deprecated("Remove this test in 5.0") public void testMultiWordSynonymsOld() throws java.io.IOException - [Obsolete("Remove this test in 5.0")] - public virtual void testMultiWordSynonymsOld() - { - IList rules = new List(); - rules.Add("a b c,d"); - SlowSynonymMap synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - - SlowSynonymFilter ts = new SlowSynonymFilter(new MockTokenizer(new StringReader("a e"), MockTokenizer.WHITESPACE, false), synMap); - // This fails because ["e","e"] is the value of the token stream - assertTokenStreamContents(ts, new string[] {"a", "e"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMultiWordSynonyms() throws Exception - public virtual void testMultiWordSynonyms() - { - Reader reader = new StringReader("a e"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("Synonym", TEST_VERSION_CURRENT, new StringMockResourceLoader("a b c,d"), "synonyms", "synonyms.txt").create(stream); - // This fails because ["e","e"] is the value of the token stream - assertTokenStreamContents(stream, new string[] {"a", "e"}); - } - } - + /// + /// @since solr 1.4 + /// + public class TestMultiWordSynonyms_ : BaseTokenStreamFactoryTestCase + { + + /// @deprecated Remove this test in 5.0 + [Test] + [Obsolete("Remove this test in 5.0")] + public virtual void TestMultiWordSynonymsOld() + { + IList rules = new List(); + rules.Add("a b c,d"); + SlowSynonymMap synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + + SlowSynonymFilter ts = new SlowSynonymFilter(new MockTokenizer(new StringReader("a e"), MockTokenizer.WHITESPACE, false), synMap); + // This fails because ["e","e"] is the value of the token stream + AssertTokenStreamContents(ts, new string[] { "a", "e" }); + } + + [Test] + public virtual void TestMultiWordSynonyms() + { + TextReader reader = new StringReader("a e"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("Synonym", TEST_VERSION_CURRENT, new StringMockResourceLoader("a b c,d"), "synonyms", "synonyms.txt").Create(stream); + // This fails because ["e","e"] is the value of the token stream + AssertTokenStreamContents(stream, new string[] { "a", "e" }); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSlowSynonymFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSlowSynonymFilter.cs index 0a337cd7c4..17b1dd7e24 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSlowSynonymFilter.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSlowSynonymFilter.cs @@ -1,10 +1,16 @@ -using System; +using Lucene.Net.Util; +using System; using System.Collections.Generic; - -namespace org.apache.lucene.analysis.synonym +using System.IO; +using System.Text; +using NUnit.Framework; +using Lucene.Net.Support; +using Lucene.Net.Analysis.Tokenattributes; +using System.Linq; + +namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -22,366 +28,354 @@ namespace org.apache.lucene.analysis.synonym */ - using org.apache.lucene.analysis.tokenattributes; - - /// @deprecated Remove this test in Lucene 5.0 - [Obsolete("Remove this test in Lucene 5.0")] - public class TestSlowSynonymFilter : BaseTokenStreamTestCase - { - - internal static IList strings(string str) - { - string[] arr = str.Split(" ", true); - return Arrays.asList(arr); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: static void assertTokenizesTo(SlowSynonymMap dict, String input, String expected[]) throws java.io.IOException - internal static void assertTokenizesTo(SlowSynonymMap dict, string input, string[] expected) - { - Tokenizer tokenizer = new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false); - SlowSynonymFilter stream = new SlowSynonymFilter(tokenizer, dict); - assertTokenStreamContents(stream, expected); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: static void assertTokenizesTo(SlowSynonymMap dict, String input, String expected[], int posIncs[]) throws java.io.IOException - internal static void assertTokenizesTo(SlowSynonymMap dict, string input, string[] expected, int[] posIncs) - { - Tokenizer tokenizer = new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false); - SlowSynonymFilter stream = new SlowSynonymFilter(tokenizer, dict); - assertTokenStreamContents(stream, expected, posIncs); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: static void assertTokenizesTo(SlowSynonymMap dict, java.util.List input, String expected[], int posIncs[]) throws java.io.IOException - internal static void assertTokenizesTo(SlowSynonymMap dict, IList input, string[] expected, int[] posIncs) - { - TokenStream tokenizer = new IterTokenStream(input); - SlowSynonymFilter stream = new SlowSynonymFilter(tokenizer, dict); - assertTokenStreamContents(stream, expected, posIncs); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: static void assertTokenizesTo(SlowSynonymMap dict, java.util.List input, String expected[], int startOffsets[], int endOffsets[], int posIncs[]) throws java.io.IOException - internal static void assertTokenizesTo(SlowSynonymMap dict, IList input, string[] expected, int[] startOffsets, int[] endOffsets, int[] posIncs) - { - TokenStream tokenizer = new IterTokenStream(input); - SlowSynonymFilter stream = new SlowSynonymFilter(tokenizer, dict); - assertTokenStreamContents(stream, expected, startOffsets, endOffsets, posIncs); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMatching() throws java.io.IOException - public virtual void testMatching() - { - SlowSynonymMap map = new SlowSynonymMap(); - - bool orig = false; - bool merge = true; - map.add(strings("a b"), tokens("ab"), orig, merge); - map.add(strings("a c"), tokens("ac"), orig, merge); - map.add(strings("a"), tokens("aa"), orig, merge); - map.add(strings("b"), tokens("bb"), orig, merge); - map.add(strings("z x c v"), tokens("zxcv"), orig, merge); - map.add(strings("x c"), tokens("xc"), orig, merge); - - assertTokenizesTo(map, "$", new string[] {"$"}); - assertTokenizesTo(map, "a", new string[] {"aa"}); - assertTokenizesTo(map, "a $", new string[] {"aa", "$"}); - assertTokenizesTo(map, "$ a", new string[] {"$", "aa"}); - assertTokenizesTo(map, "a a", new string[] {"aa", "aa"}); - assertTokenizesTo(map, "b", new string[] {"bb"}); - assertTokenizesTo(map, "z x c v", new string[] {"zxcv"}); - assertTokenizesTo(map, "z x c $", new string[] {"z", "xc", "$"}); - - // repeats - map.add(strings("a b"), tokens("ab"), orig, merge); - map.add(strings("a b"), tokens("ab"), orig, merge); - - // FIXME: the below test intended to be { "ab" } - assertTokenizesTo(map, "a b", new string[] {"ab", "ab", "ab"}); - - // check for lack of recursion - map.add(strings("zoo"), tokens("zoo"), orig, merge); - assertTokenizesTo(map, "zoo zoo $ zoo", new string[] {"zoo", "zoo", "$", "zoo"}); - map.add(strings("zoo"), tokens("zoo zoo"), orig, merge); - // FIXME: the below test intended to be { "zoo", "zoo", "zoo", "zoo", "$", "zoo", "zoo" } - // maybe this was just a typo in the old test???? - assertTokenizesTo(map, "zoo zoo $ zoo", new string[] {"zoo", "zoo", "zoo", "zoo", "zoo", "zoo", "$", "zoo", "zoo", "zoo"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testIncludeOrig() throws java.io.IOException - public virtual void testIncludeOrig() - { - SlowSynonymMap map = new SlowSynonymMap(); - - bool orig = true; - bool merge = true; - map.add(strings("a b"), tokens("ab"), orig, merge); - map.add(strings("a c"), tokens("ac"), orig, merge); - map.add(strings("a"), tokens("aa"), orig, merge); - map.add(strings("b"), tokens("bb"), orig, merge); - map.add(strings("z x c v"), tokens("zxcv"), orig, merge); - map.add(strings("x c"), tokens("xc"), orig, merge); - - assertTokenizesTo(map, "$", new string[] {"$"}, new int[] {1}); - assertTokenizesTo(map, "a", new string[] {"a", "aa"}, new int[] {1, 0}); - assertTokenizesTo(map, "a", new string[] {"a", "aa"}, new int[] {1, 0}); - assertTokenizesTo(map, "$ a", new string[] {"$", "a", "aa"}, new int[] {1, 1, 0}); - assertTokenizesTo(map, "a $", new string[] {"a", "aa", "$"}, new int[] {1, 0, 1}); - assertTokenizesTo(map, "$ a !", new string[] {"$", "a", "aa", "!"}, new int[] {1, 1, 0, 1}); - assertTokenizesTo(map, "a a", new string[] {"a", "aa", "a", "aa"}, new int[] {1, 0, 1, 0}); - assertTokenizesTo(map, "b", new string[] {"b", "bb"}, new int[] {1, 0}); - assertTokenizesTo(map, "z x c v", new string[] {"z", "zxcv", "x", "c", "v"}, new int[] {1, 0, 1, 1, 1}); - assertTokenizesTo(map, "z x c $", new string[] {"z", "x", "xc", "c", "$"}, new int[] {1, 1, 0, 1, 1}); - - // check for lack of recursion - map.add(strings("zoo zoo"), tokens("zoo"), orig, merge); - // CHECKME: I think the previous test (with 4 zoo's), was just a typo. - assertTokenizesTo(map, "zoo zoo $ zoo", new string[] {"zoo", "zoo", "zoo", "$", "zoo"}, new int[] {1, 0, 1, 1, 1}); - - map.add(strings("zoo"), tokens("zoo zoo"), orig, merge); - assertTokenizesTo(map, "zoo zoo $ zoo", new string[] {"zoo", "zoo", "zoo", "$", "zoo", "zoo", "zoo"}, new int[] {1, 0, 1, 1, 1, 0, 1}); - } - - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMapMerge() throws java.io.IOException - public virtual void testMapMerge() - { - SlowSynonymMap map = new SlowSynonymMap(); - - bool orig = false; - bool merge = true; - map.add(strings("a"), tokens("a5,5"), orig, merge); - map.add(strings("a"), tokens("a3,3"), orig, merge); - - assertTokenizesTo(map, "a", new string[] {"a3", "a5"}, new int[] {1, 2}); - - map.add(strings("b"), tokens("b3,3"), orig, merge); - map.add(strings("b"), tokens("b5,5"), orig, merge); - - assertTokenizesTo(map, "b", new string[] {"b3", "b5"}, new int[] {1, 2}); - - map.add(strings("a"), tokens("A3,3"), orig, merge); - map.add(strings("a"), tokens("A5,5"), orig, merge); - - assertTokenizesTo(map, "a", new string[] {"a3", "A3", "a5", "A5"}, new int[] {1, 0, 2, 0}); - - map.add(strings("a"), tokens("a1"), orig, merge); - assertTokenizesTo(map, "a", new string[] {"a1", "a3", "A3", "a5", "A5"}, new int[] {1, 2, 0, 2, 0}); - - map.add(strings("a"), tokens("a2,2"), orig, merge); - map.add(strings("a"), tokens("a4,4 a6,2"), orig, merge); - assertTokenizesTo(map, "a", new string[] {"a1", "a2", "a3", "A3", "a4", "a5", "A5", "a6"}, new int[] {1, 1, 1, 0, 1, 1, 0, 1}); - } - - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOverlap() throws java.io.IOException - public virtual void testOverlap() - { - SlowSynonymMap map = new SlowSynonymMap(); - - bool orig = false; - bool merge = true; - map.add(strings("qwe"), tokens("qq/ww/ee"), orig, merge); - map.add(strings("qwe"), tokens("xx"), orig, merge); - map.add(strings("qwe"), tokens("yy"), orig, merge); - map.add(strings("qwe"), tokens("zz"), orig, merge); - assertTokenizesTo(map, "$", new string[] {"$"}); - assertTokenizesTo(map, "qwe", new string[] {"qq", "ww", "ee", "xx", "yy", "zz"}, new int[] {1, 0, 0, 0, 0, 0}); - - // test merging within the map - - map.add(strings("a"), tokens("a5,5 a8,3 a10,2"), orig, merge); - map.add(strings("a"), tokens("a3,3 a7,4 a9,2 a11,2 a111,100"), orig, merge); - assertTokenizesTo(map, "a", new string[] {"a3", "a5", "a7", "a8", "a9", "a10", "a11", "a111"}, new int[] {1, 2, 2, 1, 1, 1, 1, 100}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testPositionIncrements() throws java.io.IOException - public virtual void testPositionIncrements() - { - SlowSynonymMap map = new SlowSynonymMap(); - - bool orig = false; - bool merge = true; - - // test that generated tokens start at the same posInc as the original - map.add(strings("a"), tokens("aa"), orig, merge); - assertTokenizesTo(map, tokens("a,5"), new string[] {"aa"}, new int[] {5}); - assertTokenizesTo(map, tokens("b,1 a,0"), new string[] {"b", "aa"}, new int[] {1, 0}); - - // test that offset of first replacement is ignored (always takes the orig offset) - map.add(strings("b"), tokens("bb,100"), orig, merge); - assertTokenizesTo(map, tokens("b,5"), new string[] {"bb"}, new int[] {5}); - assertTokenizesTo(map, tokens("c,1 b,0"), new string[] {"c", "bb"}, new int[] {1, 0}); - - // test that subsequent tokens are adjusted accordingly - map.add(strings("c"), tokens("cc,100 c2,2"), orig, merge); - assertTokenizesTo(map, tokens("c,5"), new string[] {"cc", "c2"}, new int[] {5, 2}); - assertTokenizesTo(map, tokens("d,1 c,0"), new string[] {"d", "cc", "c2"}, new int[] {1, 0, 2}); - } - - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testPositionIncrementsWithOrig() throws java.io.IOException - public virtual void testPositionIncrementsWithOrig() - { - SlowSynonymMap map = new SlowSynonymMap(); - - bool orig = true; - bool merge = true; - - // test that generated tokens start at the same offset as the original - map.add(strings("a"), tokens("aa"), orig, merge); - assertTokenizesTo(map, tokens("a,5"), new string[] {"a", "aa"}, new int[] {5, 0}); - assertTokenizesTo(map, tokens("b,1 a,0"), new string[] {"b", "a", "aa"}, new int[] {1, 0, 0}); - - // test that offset of first replacement is ignored (always takes the orig offset) - map.add(strings("b"), tokens("bb,100"), orig, merge); - assertTokenizesTo(map, tokens("b,5"), new string[] {"b", "bb"}, new int[] {5, 0}); - assertTokenizesTo(map, tokens("c,1 b,0"), new string[] {"c", "b", "bb"}, new int[] {1, 0, 0}); - - // test that subsequent tokens are adjusted accordingly - map.add(strings("c"), tokens("cc,100 c2,2"), orig, merge); - assertTokenizesTo(map, tokens("c,5"), new string[] {"c", "cc", "c2"}, new int[] {5, 0, 2}); - assertTokenizesTo(map, tokens("d,1 c,0"), new string[] {"d", "c", "cc", "c2"}, new int[] {1, 0, 0, 2}); - } - - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOffsetBug() throws java.io.IOException - public virtual void testOffsetBug() - { - // With the following rules: - // a a=>b - // x=>y - // analysing "a x" causes "y" to have a bad offset (end less than start) - // SOLR-167 - SlowSynonymMap map = new SlowSynonymMap(); - - bool orig = false; - bool merge = true; - - map.add(strings("a a"), tokens("b"), orig, merge); - map.add(strings("x"), tokens("y"), orig, merge); - - // "a a x" => "b y" - assertTokenizesTo(map, tokens("a,1,0,1 a,1,2,3 x,1,4,5"), new string[] {"b", "y"}, new int[] {0, 4}, new int[] {3, 5}, new int[] {1, 1}); - } - - - /// - ///* - /// Return a list of tokens according to a test string format: - /// a b c => returns List [a,b,c] - /// a/b => tokens a and b share the same spot (b.positionIncrement=0) - /// a,3/b/c => a,b,c all share same position (a.positionIncrement=3, b.positionIncrement=0, c.positionIncrement=0) - /// a,1,10,11 => "a" with positionIncrement=1, startOffset=10, endOffset=11 - /// @deprecated (3.0) does not support attributes api - [Obsolete("(3.0) does not support attributes api")] - private IList tokens(string str) - { - string[] arr = str.Split(" ", true); - IList result = new List(); - for (int i = 0; i < arr.Length; i++) - { - string[] toks = arr[i].Split("/", true); - string[] @params = toks[0].Split(",", true); - - int posInc; - int start; - int end; - - if (@params.Length > 1) - { - posInc = int.Parse(@params[1]); - } - else - { - posInc = 1; - } - - if (@params.Length > 2) - { - start = int.Parse(@params[2]); - } - else - { - start = 0; - } - - if (@params.Length > 3) - { - end = int.Parse(@params[3]); - } - else - { - end = start + @params[0].Length; - } - - Token t = new Token(@params[0],start,end,"TEST"); - t.PositionIncrement = posInc; - - result.Add(t); - for (int j = 1; j < toks.Length; j++) - { - t = new Token(toks[j],0,0,"TEST"); - t.PositionIncrement = 0; - result.Add(t); - } - } - return result; - } - - /// @deprecated (3.0) does not support custom attributes - [Obsolete("(3.0) does not support custom attributes")] - private class IterTokenStream : TokenStream - { - internal readonly Token[] tokens; - internal int index = 0; - internal CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - internal OffsetAttribute offsetAtt = addAttribute(typeof(OffsetAttribute)); - internal PositionIncrementAttribute posIncAtt = addAttribute(typeof(PositionIncrementAttribute)); - internal FlagsAttribute flagsAtt = addAttribute(typeof(FlagsAttribute)); - internal TypeAttribute typeAtt = addAttribute(typeof(TypeAttribute)); - internal PayloadAttribute payloadAtt = addAttribute(typeof(PayloadAttribute)); - - public IterTokenStream(params Token[] tokens) : base() - { - this.tokens = tokens; - } - - public IterTokenStream(ICollection tokens) : this(tokens.toArray(new Token[tokens.Count])) - { - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (index >= tokens.Length) - { - return false; - } - else - { - clearAttributes(); - Token token = tokens[index++]; - termAtt.setEmpty().append(token); - offsetAtt.setOffset(token.startOffset(), token.endOffset()); - posIncAtt.PositionIncrement = token.PositionIncrement; - flagsAtt.Flags = token.Flags; - typeAtt.Type = token.type(); - payloadAtt.Payload = token.Payload; - return true; - } - } - } - } - + //using org.apache.lucene.analysis.tokenattributes; + + /// @deprecated Remove this test in Lucene 5.0 + [Obsolete("Remove this test in Lucene 5.0")] + public class TestSlowSynonymFilter : BaseTokenStreamTestCase + { + + internal static IList Strings(string str) + { + string[] arr = str.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); + return Arrays.AsList(arr); + } + + internal static void AssertTokenizesTo(SlowSynonymMap dict, string input, string[] expected) + { + Tokenizer tokenizer = new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false); + SlowSynonymFilter stream = new SlowSynonymFilter(tokenizer, dict); + AssertTokenStreamContents(stream, expected); + } + + internal static void AssertTokenizesTo(SlowSynonymMap dict, string input, string[] expected, int[] posIncs) + { + Tokenizer tokenizer = new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false); + SlowSynonymFilter stream = new SlowSynonymFilter(tokenizer, dict); + AssertTokenStreamContents(stream, expected, posIncs); + } + + internal static void AssertTokenizesTo(SlowSynonymMap dict, IList input, string[] expected, int[] posIncs) + { + TokenStream tokenizer = new IterTokenStream(input); + SlowSynonymFilter stream = new SlowSynonymFilter(tokenizer, dict); + AssertTokenStreamContents(stream, expected, posIncs); + } + + internal static void AssertTokenizesTo(SlowSynonymMap dict, IList input, string[] expected, int[] startOffsets, int[] endOffsets, int[] posIncs) + { + TokenStream tokenizer = new IterTokenStream(input); + SlowSynonymFilter stream = new SlowSynonymFilter(tokenizer, dict); + AssertTokenStreamContents(stream, expected, startOffsets, endOffsets, posIncs); + } + + [Test] + public virtual void TestMatching() + { + SlowSynonymMap map = new SlowSynonymMap(); + + bool orig = false; + bool merge = true; + map.Add(Strings("a b"), Tokens("ab"), orig, merge); + map.Add(Strings("a c"), Tokens("ac"), orig, merge); + map.Add(Strings("a"), Tokens("aa"), orig, merge); + map.Add(Strings("b"), Tokens("bb"), orig, merge); + map.Add(Strings("z x c v"), Tokens("zxcv"), orig, merge); + map.Add(Strings("x c"), Tokens("xc"), orig, merge); + + AssertTokenizesTo(map, "$", new string[] { "$" }); + AssertTokenizesTo(map, "a", new string[] { "aa" }); + AssertTokenizesTo(map, "a $", new string[] { "aa", "$" }); + AssertTokenizesTo(map, "$ a", new string[] { "$", "aa" }); + AssertTokenizesTo(map, "a a", new string[] { "aa", "aa" }); + AssertTokenizesTo(map, "b", new string[] { "bb" }); + AssertTokenizesTo(map, "z x c v", new string[] { "zxcv" }); + AssertTokenizesTo(map, "z x c $", new string[] { "z", "xc", "$" }); + + // repeats + map.Add(Strings("a b"), Tokens("ab"), orig, merge); + map.Add(Strings("a b"), Tokens("ab"), orig, merge); + + // FIXME: the below test intended to be { "ab" } + AssertTokenizesTo(map, "a b", new string[] { "ab", "ab", "ab" }); + + // check for lack of recursion + map.Add(Strings("zoo"), Tokens("zoo"), orig, merge); + AssertTokenizesTo(map, "zoo zoo $ zoo", new string[] { "zoo", "zoo", "$", "zoo" }); + map.Add(Strings("zoo"), Tokens("zoo zoo"), orig, merge); + // FIXME: the below test intended to be { "zoo", "zoo", "zoo", "zoo", "$", "zoo", "zoo" } + // maybe this was just a typo in the old test???? + AssertTokenizesTo(map, "zoo zoo $ zoo", new string[] { "zoo", "zoo", "zoo", "zoo", "zoo", "zoo", "$", "zoo", "zoo", "zoo" }); + } + + [Test] + public virtual void TestIncludeOrig() + { + SlowSynonymMap map = new SlowSynonymMap(); + + bool orig = true; + bool merge = true; + map.Add(Strings("a b"), Tokens("ab"), orig, merge); + map.Add(Strings("a c"), Tokens("ac"), orig, merge); + map.Add(Strings("a"), Tokens("aa"), orig, merge); + map.Add(Strings("b"), Tokens("bb"), orig, merge); + map.Add(Strings("z x c v"), Tokens("zxcv"), orig, merge); + map.Add(Strings("x c"), Tokens("xc"), orig, merge); + + AssertTokenizesTo(map, "$", new string[] { "$" }, new int[] { 1 }); + AssertTokenizesTo(map, "a", new string[] { "a", "aa" }, new int[] { 1, 0 }); + AssertTokenizesTo(map, "a", new string[] { "a", "aa" }, new int[] { 1, 0 }); + AssertTokenizesTo(map, "$ a", new string[] { "$", "a", "aa" }, new int[] { 1, 1, 0 }); + AssertTokenizesTo(map, "a $", new string[] { "a", "aa", "$" }, new int[] { 1, 0, 1 }); + AssertTokenizesTo(map, "$ a !", new string[] { "$", "a", "aa", "!" }, new int[] { 1, 1, 0, 1 }); + AssertTokenizesTo(map, "a a", new string[] { "a", "aa", "a", "aa" }, new int[] { 1, 0, 1, 0 }); + AssertTokenizesTo(map, "b", new string[] { "b", "bb" }, new int[] { 1, 0 }); + AssertTokenizesTo(map, "z x c v", new string[] { "z", "zxcv", "x", "c", "v" }, new int[] { 1, 0, 1, 1, 1 }); + AssertTokenizesTo(map, "z x c $", new string[] { "z", "x", "xc", "c", "$" }, new int[] { 1, 1, 0, 1, 1 }); + + // check for lack of recursion + map.Add(Strings("zoo zoo"), Tokens("zoo"), orig, merge); + // CHECKME: I think the previous test (with 4 zoo's), was just a typo. + AssertTokenizesTo(map, "zoo zoo $ zoo", new string[] { "zoo", "zoo", "zoo", "$", "zoo" }, new int[] { 1, 0, 1, 1, 1 }); + + map.Add(Strings("zoo"), Tokens("zoo zoo"), orig, merge); + AssertTokenizesTo(map, "zoo zoo $ zoo", new string[] { "zoo", "zoo", "zoo", "$", "zoo", "zoo", "zoo" }, new int[] { 1, 0, 1, 1, 1, 0, 1 }); + } + + + [Test] + public virtual void TestMapMerge() + { + SlowSynonymMap map = new SlowSynonymMap(); + + bool orig = false; + bool merge = true; + map.Add(Strings("a"), Tokens("a5,5"), orig, merge); + map.Add(Strings("a"), Tokens("a3,3"), orig, merge); + + AssertTokenizesTo(map, "a", new string[] { "a3", "a5" }, new int[] { 1, 2 }); + + map.Add(Strings("b"), Tokens("b3,3"), orig, merge); + map.Add(Strings("b"), Tokens("b5,5"), orig, merge); + + AssertTokenizesTo(map, "b", new string[] { "b3", "b5" }, new int[] { 1, 2 }); + + map.Add(Strings("a"), Tokens("A3,3"), orig, merge); + map.Add(Strings("a"), Tokens("A5,5"), orig, merge); + + AssertTokenizesTo(map, "a", new string[] { "a3", "A3", "a5", "A5" }, new int[] { 1, 0, 2, 0 }); + + map.Add(Strings("a"), Tokens("a1"), orig, merge); + AssertTokenizesTo(map, "a", new string[] { "a1", "a3", "A3", "a5", "A5" }, new int[] { 1, 2, 0, 2, 0 }); + + map.Add(Strings("a"), Tokens("a2,2"), orig, merge); + map.Add(Strings("a"), Tokens("a4,4 a6,2"), orig, merge); + AssertTokenizesTo(map, "a", new string[] { "a1", "a2", "a3", "A3", "a4", "a5", "A5", "a6" }, new int[] { 1, 1, 1, 0, 1, 1, 0, 1 }); + } + + + [Test] + public virtual void TestOverlap() + { + SlowSynonymMap map = new SlowSynonymMap(); + + bool orig = false; + bool merge = true; + map.Add(Strings("qwe"), Tokens("qq/ww/ee"), orig, merge); + map.Add(Strings("qwe"), Tokens("xx"), orig, merge); + map.Add(Strings("qwe"), Tokens("yy"), orig, merge); + map.Add(Strings("qwe"), Tokens("zz"), orig, merge); + AssertTokenizesTo(map, "$", new string[] { "$" }); + AssertTokenizesTo(map, "qwe", new string[] { "qq", "ww", "ee", "xx", "yy", "zz" }, new int[] { 1, 0, 0, 0, 0, 0 }); + + // test merging within the map + + map.Add(Strings("a"), Tokens("a5,5 a8,3 a10,2"), orig, merge); + map.Add(Strings("a"), Tokens("a3,3 a7,4 a9,2 a11,2 a111,100"), orig, merge); + AssertTokenizesTo(map, "a", new string[] { "a3", "a5", "a7", "a8", "a9", "a10", "a11", "a111" }, new int[] { 1, 2, 2, 1, 1, 1, 1, 100 }); + } + + [Test] + public virtual void TestPositionIncrements() + { + SlowSynonymMap map = new SlowSynonymMap(); + + bool orig = false; + bool merge = true; + + // test that generated tokens start at the same posInc as the original + map.Add(Strings("a"), Tokens("aa"), orig, merge); + AssertTokenizesTo(map, Tokens("a,5"), new string[] { "aa" }, new int[] { 5 }); + AssertTokenizesTo(map, Tokens("b,1 a,0"), new string[] { "b", "aa" }, new int[] { 1, 0 }); + + // test that offset of first replacement is ignored (always takes the orig offset) + map.Add(Strings("b"), Tokens("bb,100"), orig, merge); + AssertTokenizesTo(map, Tokens("b,5"), new string[] { "bb" }, new int[] { 5 }); + AssertTokenizesTo(map, Tokens("c,1 b,0"), new string[] { "c", "bb" }, new int[] { 1, 0 }); + + // test that subsequent tokens are adjusted accordingly + map.Add(Strings("c"), Tokens("cc,100 c2,2"), orig, merge); + AssertTokenizesTo(map, Tokens("c,5"), new string[] { "cc", "c2" }, new int[] { 5, 2 }); + AssertTokenizesTo(map, Tokens("d,1 c,0"), new string[] { "d", "cc", "c2" }, new int[] { 1, 0, 2 }); + } + + + [Test] + public virtual void TestPositionIncrementsWithOrig() + { + SlowSynonymMap map = new SlowSynonymMap(); + + bool orig = true; + bool merge = true; + + // test that generated tokens start at the same offset as the original + map.Add(Strings("a"), Tokens("aa"), orig, merge); + AssertTokenizesTo(map, Tokens("a,5"), new string[] { "a", "aa" }, new int[] { 5, 0 }); + AssertTokenizesTo(map, Tokens("b,1 a,0"), new string[] { "b", "a", "aa" }, new int[] { 1, 0, 0 }); + + // test that offset of first replacement is ignored (always takes the orig offset) + map.Add(Strings("b"), Tokens("bb,100"), orig, merge); + AssertTokenizesTo(map, Tokens("b,5"), new string[] { "b", "bb" }, new int[] { 5, 0 }); + AssertTokenizesTo(map, Tokens("c,1 b,0"), new string[] { "c", "b", "bb" }, new int[] { 1, 0, 0 }); + + // test that subsequent tokens are adjusted accordingly + map.Add(Strings("c"), Tokens("cc,100 c2,2"), orig, merge); + AssertTokenizesTo(map, Tokens("c,5"), new string[] { "c", "cc", "c2" }, new int[] { 5, 0, 2 }); + AssertTokenizesTo(map, Tokens("d,1 c,0"), new string[] { "d", "c", "cc", "c2" }, new int[] { 1, 0, 0, 2 }); + } + + + [Test] + public virtual void TestOffsetBug() + { + // With the following rules: + // a a=>b + // x=>y + // analysing "a x" causes "y" to have a bad offset (end less than start) + // SOLR-167 + SlowSynonymMap map = new SlowSynonymMap(); + + bool orig = false; + bool merge = true; + + map.Add(Strings("a a"), Tokens("b"), orig, merge); + map.Add(Strings("x"), Tokens("y"), orig, merge); + + // "a a x" => "b y" + AssertTokenizesTo(map, Tokens("a,1,0,1 a,1,2,3 x,1,4,5"), new string[] { "b", "y" }, new int[] { 0, 4 }, new int[] { 3, 5 }, new int[] { 1, 1 }); + } + + + /// + ///* + /// Return a list of tokens according to a test string format: + /// a b c => returns List [a,b,c] + /// a/b => tokens a and b share the same spot (b.positionIncrement=0) + /// a,3/b/c => a,b,c all share same position (a.positionIncrement=3, b.positionIncrement=0, c.positionIncrement=0) + /// a,1,10,11 => "a" with positionIncrement=1, startOffset=10, endOffset=11 + /// @deprecated (3.0) does not support attributes api + [Obsolete("(3.0) does not support attributes api")] + private IList Tokens(string str) + { + string[] arr = str.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); + IList result = new List(); + for (int i = 0; i < arr.Length; i++) + { + string[] toks = arr[i].Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); + string[] @params = toks[0].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); + + int posInc; + int start; + int end; + + if (@params.Length > 1) + { + posInc = int.Parse(@params[1]); + } + else + { + posInc = 1; + } + + if (@params.Length > 2) + { + start = int.Parse(@params[2]); + } + else + { + start = 0; + } + + if (@params.Length > 3) + { + end = int.Parse(@params[3]); + } + else + { + end = start + @params[0].Length; + } + + Token t = new Token(@params[0], start, end, "TEST"); + t.PositionIncrement = posInc; + + result.Add(t); + for (int j = 1; j < toks.Length; j++) + { + t = new Token(toks[j], 0, 0, "TEST"); + t.PositionIncrement = 0; + result.Add(t); + } + } + return result; + } + + /// @deprecated (3.0) does not support custom attributes + [Obsolete("(3.0) does not support custom attributes")] + private class IterTokenStream : TokenStream + { + internal readonly Token[] tokens; + internal int index = 0; + internal ICharTermAttribute termAtt; + internal IOffsetAttribute offsetAtt; + internal IPositionIncrementAttribute posIncAtt; + internal IFlagsAttribute flagsAtt; + internal ITypeAttribute typeAtt; + internal IPayloadAttribute payloadAtt; + + public IterTokenStream(params Token[] tokens) : base() + { + this.tokens = tokens; + termAtt = AddAttribute(); + offsetAtt = AddAttribute(); + posIncAtt = AddAttribute(); + flagsAtt = AddAttribute(); + typeAtt = AddAttribute(); + payloadAtt = AddAttribute(); + } + + public IterTokenStream(ICollection tokens) : this(tokens.ToArray()) + { + } + + public override sealed bool IncrementToken() + { + if (index >= tokens.Length) + { + return false; + } + else + { + ClearAttributes(); + Token token = tokens[index++]; + termAtt.SetEmpty().Append(token); + offsetAtt.SetOffset(token.StartOffset(), token.EndOffset()); + posIncAtt.PositionIncrement = token.PositionIncrement; + flagsAtt.Flags = token.Flags; + typeAtt.Type = token.Type; + payloadAtt.Payload = token.Payload; + return true; + } + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSolrSynonymParser.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSolrSynonymParser.cs index 735a6c2c3f..983c75ccb2 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSolrSynonymParser.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSolrSynonymParser.cs @@ -1,7 +1,11 @@ -namespace org.apache.lucene.analysis.synonym -{ +using Lucene.Net.Analysis.En; +using NUnit.Framework; +using System; +using System.IO; - /* +namespace Lucene.Net.Analysis.Synonym +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,160 +22,144 @@ * limitations under the License. */ - - using EnglishAnalyzer = org.apache.lucene.analysis.en.EnglishAnalyzer; - using Test = org.junit.Test; - - /// - /// Tests parser for the Solr synonyms format - /// @lucene.experimental - /// - public class TestSolrSynonymParser : BaseTokenStreamTestCase - { - - /// - /// Tests some simple examples from the solr wiki -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSimple() throws Exception - public virtual void testSimple() - { - string testFile = "i-pod, ipod, ipoooood\n" + "foo => foo bar\n" + "foo => baz\n" + "this test, that testing"; - - SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(random())); - parser.parse(new StringReader(testFile)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = parser.build(); - SynonymMap map = parser.build(); - - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, map); - - assertAnalyzesTo(analyzer, "ball", new string[] {"ball"}, new int[] {1}); - - assertAnalyzesTo(analyzer, "i-pod", new string[] {"i-pod", "ipod", "ipoooood"}, new int[] {1, 0, 0}); - - assertAnalyzesTo(analyzer, "foo", new string[] {"foo", "baz", "bar"}, new int[] {1, 0, 1}); - - assertAnalyzesTo(analyzer, "this test", new string[] {"this", "that", "test", "testing"}, new int[] {1, 0, 1, 0}); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestSolrSynonymParser outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper(TestSolrSynonymParser outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, true); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - - /// - /// parse a syn file with bad syntax -//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: -//ORIGINAL LINE: @Test(expected=java.text.ParseException.class) public void testInvalidDoubleMap() throws Exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: - public virtual void testInvalidDoubleMap() - { - string testFile = "a => b => c"; - SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(random())); - parser.parse(new StringReader(testFile)); - } - - /// - /// parse a syn file with bad syntax -//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: -//ORIGINAL LINE: @Test(expected=java.text.ParseException.class) public void testInvalidAnalyzesToNothingOutput() throws Exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: - public virtual void testInvalidAnalyzesToNothingOutput() - { - string testFile = "a => 1"; - SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(random(), MockTokenizer.SIMPLE, false)); - parser.parse(new StringReader(testFile)); - } - - /// - /// parse a syn file with bad syntax -//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: -//ORIGINAL LINE: @Test(expected=java.text.ParseException.class) public void testInvalidAnalyzesToNothingInput() throws Exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: - public virtual void testInvalidAnalyzesToNothingInput() - { - string testFile = "1 => a"; - SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(random(), MockTokenizer.SIMPLE, false)); - parser.parse(new StringReader(testFile)); - } - - /// - /// parse a syn file with bad syntax -//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: -//ORIGINAL LINE: @Test(expected=java.text.ParseException.class) public void testInvalidPositionsInput() throws Exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: - public virtual void testInvalidPositionsInput() - { - string testFile = "testola => the test"; - SolrSynonymParser parser = new SolrSynonymParser(true, true, new EnglishAnalyzer(TEST_VERSION_CURRENT)); - parser.parse(new StringReader(testFile)); - } - - /// - /// parse a syn file with bad syntax -//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: -//ORIGINAL LINE: @Test(expected=java.text.ParseException.class) public void testInvalidPositionsOutput() throws Exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: - public virtual void testInvalidPositionsOutput() - { - string testFile = "the test => testola"; - SolrSynonymParser parser = new SolrSynonymParser(true, true, new EnglishAnalyzer(TEST_VERSION_CURRENT)); - parser.parse(new StringReader(testFile)); - } - - /// - /// parse a syn file with some escaped syntax chars -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEscapedStuff() throws Exception - public virtual void testEscapedStuff() - { - string testFile = "a\\=>a => b\\=>b\n" + "a\\,a => b\\,b"; - SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(random(), MockTokenizer.KEYWORD, false)); - parser.parse(new StringReader(testFile)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = parser.build(); - SynonymMap map = parser.build(); - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper2(this, map); - - assertAnalyzesTo(analyzer, "ball", new string[] {"ball"}, new int[] {1}); - - assertAnalyzesTo(analyzer, "a=>a", new string[] {"b=>b"}, new int[] {1}); - - assertAnalyzesTo(analyzer, "a,a", new string[] {"b,b"}, new int[] {1}); - } - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - private readonly TestSolrSynonymParser outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper2(TestSolrSynonymParser outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.KEYWORD, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false)); - } - } - } - + /// + /// Tests parser for the Solr synonyms format + /// @lucene.experimental + /// + public class TestSolrSynonymParser : BaseTokenStreamTestCase + { + + /// + /// Tests some simple examples from the solr wiki + [Test] + public virtual void TestSimple() + { + string testFile = "i-pod, ipod, ipoooood\n" + "foo => foo bar\n" + "foo => baz\n" + "this test, that testing"; + + SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(Random())); + parser.Parse(new StringReader(testFile)); + SynonymMap map = parser.Build(); + + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, map); + + AssertAnalyzesTo(analyzer, "ball", new string[] { "ball" }, new int[] { 1 }); + + AssertAnalyzesTo(analyzer, "i-pod", new string[] { "i-pod", "ipod", "ipoooood" }, new int[] { 1, 0, 0 }); + + AssertAnalyzesTo(analyzer, "foo", new string[] { "foo", "baz", "bar" }, new int[] { 1, 0, 1 }); + + AssertAnalyzesTo(analyzer, "this test", new string[] { "this", "that", "test", "testing" }, new int[] { 1, 0, 1, 0 }); + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestSolrSynonymParser outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper(TestSolrSynonymParser outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, true); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + /// + /// parse a syn file with bad syntax + [Test] + [ExpectedException(ExpectedException = typeof(Exception))] + public virtual void TestInvalidDoubleMap() + { + string testFile = "a => b => c"; + SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(Random())); + parser.Parse(new StringReader(testFile)); + } + + /// + /// parse a syn file with bad syntax + [Test] + [ExpectedException(ExpectedException = typeof(Exception))] + public virtual void TestInvalidAnalyzesToNothingOutput() + { + string testFile = "a => 1"; + SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(Random(), MockTokenizer.SIMPLE, false)); + parser.Parse(new StringReader(testFile)); + } + + /// + /// parse a syn file with bad syntax + [Test] + [ExpectedException(ExpectedException = typeof(Exception))] + public virtual void TestInvalidAnalyzesToNothingInput() + { + string testFile = "1 => a"; + SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(Random(), MockTokenizer.SIMPLE, false)); + parser.Parse(new StringReader(testFile)); + } + + /// + /// parse a syn file with bad syntax + [Test] + [ExpectedException(ExpectedException = typeof(Exception))] + public virtual void TestInvalidPositionsInput() + { + string testFile = "testola => the test"; + SolrSynonymParser parser = new SolrSynonymParser(true, true, new EnglishAnalyzer(TEST_VERSION_CURRENT)); + parser.Parse(new StringReader(testFile)); + } + + /// + /// parse a syn file with bad syntax + [Test] + [ExpectedException(ExpectedException = typeof(Exception))] + public virtual void TestInvalidPositionsOutput() + { + string testFile = "the test => testola"; + SolrSynonymParser parser = new SolrSynonymParser(true, true, new EnglishAnalyzer(TEST_VERSION_CURRENT)); + parser.Parse(new StringReader(testFile)); + } + + /// + /// parse a syn file with some escaped syntax chars + [Test] + public virtual void TestEscapedStuff() + { + string testFile = "a\\=>a => b\\=>b\n" + "a\\,a => b\\,b"; + SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(Random(), MockTokenizer.KEYWORD, false)); + parser.Parse(new StringReader(testFile)); + SynonymMap map = parser.Build(); + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper2(this, map); + + AssertAnalyzesTo(analyzer, "ball", new string[] { "ball" }, new int[] { 1 }); + + AssertAnalyzesTo(analyzer, "a=>a", new string[] { "b=>b" }, new int[] { 1 }); + + AssertAnalyzesTo(analyzer, "a,a", new string[] { "b,b" }, new int[] { 1 }); + } + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + private readonly TestSolrSynonymParser outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper2(TestSolrSynonymParser outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.KEYWORD, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false)); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymFilterFactory.cs index 698f71300a..093c4dd9a6 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymFilterFactory.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymFilterFactory.cs @@ -1,9 +1,14 @@ -using System; - -namespace org.apache.lucene.analysis.synonym +using Lucene.Net.Analysis.Pattern; +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System; +using System.IO; +using Reader = System.IO.TextReader; +using Version = Lucene.Net.Util.LuceneVersion; + +namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,197 +25,165 @@ namespace org.apache.lucene.analysis.synonym * limitations under the License. */ - - using PatternTokenizerFactory = org.apache.lucene.analysis.pattern.PatternTokenizerFactory; - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - using ClasspathResourceLoader = org.apache.lucene.analysis.util.ClasspathResourceLoader; - using StringMockResourceLoader = org.apache.lucene.analysis.util.StringMockResourceLoader; - using Version = org.apache.lucene.util.Version; - - public class TestSynonymFilterFactory : BaseTokenStreamFactoryTestCase - { - - /// - /// checks for synonyms of "GB" in synonyms.txt -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private void checkSolrSynonyms(org.apache.lucene.analysis.util.TokenFilterFactory factory) throws Exception - private void checkSolrSynonyms(TokenFilterFactory factory) - { - Reader reader = new StringReader("GB"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = factory.create(stream); - assertTrue(stream is SynonymFilter); - assertTokenStreamContents(stream, new string[] {"GB", "gib", "gigabyte", "gigabytes"}, new int[] {1, 0, 0, 0}); - } - - /// - /// checks for synonyms of "second" in synonyms-wordnet.txt -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private void checkWordnetSynonyms(org.apache.lucene.analysis.util.TokenFilterFactory factory) throws Exception - private void checkWordnetSynonyms(TokenFilterFactory factory) - { - Reader reader = new StringReader("second"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = factory.create(stream); - assertTrue(stream is SynonymFilter); - assertTokenStreamContents(stream, new string[] {"second", "2nd", "two"}, new int[] {1, 0, 0}); - } - - /// - /// test that we can parse and use the solr syn file -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSynonyms() throws Exception - public virtual void testSynonyms() - { - checkSolrSynonyms(tokenFilterFactory("Synonym", "synonyms", "synonyms.txt")); - } - - /// - /// test that we can parse and use the solr syn file, with the old impl - /// @deprecated Remove this test in Lucene 5.0 -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Deprecated("Remove this test in Lucene 5.0") public void testSynonymsOld() throws Exception - [Obsolete("Remove this test in Lucene 5.0")] - public virtual void testSynonymsOld() - { - Reader reader = new StringReader("GB"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("Synonym", Version.LUCENE_33, new ClasspathResourceLoader(this.GetType()), "synonyms", "synonyms.txt").create(stream); - assertTrue(stream is SlowSynonymFilter); - assertTokenStreamContents(stream, new string[] {"GB", "gib", "gigabyte", "gigabytes"}, new int[] {1, 0, 0, 0}); - } - - /// - /// test multiword offsets with the old impl - /// @deprecated Remove this test in Lucene 5.0 -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Deprecated("Remove this test in Lucene 5.0") public void testMultiwordOffsetsOld() throws Exception - [Obsolete("Remove this test in Lucene 5.0")] - public virtual void testMultiwordOffsetsOld() - { - Reader reader = new StringReader("national hockey league"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("Synonym", Version.LUCENE_33, new StringMockResourceLoader("national hockey league, nhl"), "synonyms", "synonyms.txt").create(stream); - // WTF? - assertTokenStreamContents(stream, new string[] {"national", "nhl", "hockey", "league"}, new int[] {0, 0, 0, 0}, new int[] {22, 22, 22, 22}, new int[] {1, 0, 1, 1}); - } - - /// - /// if the synonyms are completely empty, test that we still analyze correctly -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmptySynonyms() throws Exception - public virtual void testEmptySynonyms() - { - Reader reader = new StringReader("GB"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("Synonym", TEST_VERSION_CURRENT, new StringMockResourceLoader(""), "synonyms", "synonyms.txt").create(stream); // empty file! - assertTokenStreamContents(stream, new string[] {"GB"}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testFormat() throws Exception - public virtual void testFormat() - { - checkSolrSynonyms(tokenFilterFactory("Synonym", "synonyms", "synonyms.txt", "format", "solr")); - checkWordnetSynonyms(tokenFilterFactory("Synonym", "synonyms", "synonyms-wordnet.txt", "format", "wordnet")); - // explicit class should work the same as the "solr" alias -//JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.getName method: - checkSolrSynonyms(tokenFilterFactory("Synonym", "synonyms", "synonyms.txt", "format", typeof(SolrSynonymParser).FullName)); - } - - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenFilterFactory("Synonym", "synonyms", "synonyms.txt", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - - internal const string TOK_SYN_ARG_VAL = "argument"; - internal const string TOK_FOO_ARG_VAL = "foofoofoo"; - - /// - /// Test that we can parse TokenierFactory's arguments -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTokenizerFactoryArguments() throws Exception - public virtual void testTokenizerFactoryArguments() - { - // diff versions produce diff delegator behavior, - // all should be (mostly) equivilent for our test purposes. - doTestTokenizerFactoryArguments(Version.LUCENE_33, typeof(SlowSynonymFilterFactory)); - doTestTokenizerFactoryArguments(Version.LUCENE_34, typeof(FSTSynonymFilterFactory)); - doTestTokenizerFactoryArguments(Version.LUCENE_35, typeof(FSTSynonymFilterFactory)); - - doTestTokenizerFactoryArguments(Version.LUCENE_CURRENT, typeof(FSTSynonymFilterFactory)); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: protected void doTestTokenizerFactoryArguments(final org.apache.lucene.util.Version ver, final Class delegatorClass) throws Exception -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: - protected internal virtual void doTestTokenizerFactoryArguments(Version ver, Type delegatorClass) - { - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String clazz = org.apache.lucene.analysis.pattern.PatternTokenizerFactory.class.getName(); -//JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.getName method: - string clazz = typeof(PatternTokenizerFactory).FullName; - TokenFilterFactory factory = null; - - // simple arg form - factory = tokenFilterFactory("Synonym", ver, "synonyms", "synonyms.txt", "tokenizerFactory", clazz, "pattern", "(.*)", "group", "0"); - assertDelegator(factory, delegatorClass); - - // prefix - factory = tokenFilterFactory("Synonym", ver, "synonyms", "synonyms.txt", "tokenizerFactory", clazz, "tokenizerFactory.pattern", "(.*)", "tokenizerFactory.group", "0"); - assertDelegator(factory, delegatorClass); - - // sanity check that sub-PatternTokenizerFactory fails w/o pattern - try - { - factory = tokenFilterFactory("Synonym", ver, "synonyms", "synonyms.txt", "tokenizerFactory", clazz); - fail("tokenizerFactory should have complained about missing pattern arg"); - } - catch (Exception) - { - // :NOOP: - } - - // sanity check that sub-PatternTokenizerFactory fails on unexpected - try - { - factory = tokenFilterFactory("Synonym", ver, "synonyms", "synonyms.txt", "tokenizerFactory", clazz, "tokenizerFactory.pattern", "(.*)", "tokenizerFactory.bogusbogusbogus", "bogus", "tokenizerFactory.group", "0"); - fail("tokenizerFactory should have complained about missing pattern arg"); - } - catch (Exception) - { - // :NOOP: - } - } - -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: -//ORIGINAL LINE: private static void assertDelegator(final org.apache.lucene.analysis.util.TokenFilterFactory factory, final Class delegatorClass) - private static void assertDelegator(TokenFilterFactory factory, Type delegatorClass) - { - assertNotNull(factory); - assertTrue("factory not expected class: " + factory.GetType(), factory is SynonymFilterFactory); - SynonymFilterFactory synFac = (SynonymFilterFactory) factory; - object delegator = synFac.Delegator; - assertNotNull(delegator); - assertTrue("delegator not expected class: " + delegator.GetType(), delegatorClass.IsInstanceOfType(delegator)); - - } - } - - - + public class TestSynonymFilterFactory : BaseTokenStreamFactoryTestCase + { + + /// + /// checks for synonyms of "GB" in synonyms.txt + private void CheckSolrSynonyms(TokenFilterFactory factory) + { + Reader reader = new StringReader("GB"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = factory.Create(stream); + assertTrue(stream is SynonymFilter); + AssertTokenStreamContents(stream, new string[] { "GB", "gib", "gigabyte", "gigabytes" }, new int[] { 1, 0, 0, 0 }); + } + + /// + /// checks for synonyms of "second" in synonyms-wordnet.txt + private void CheckWordnetSynonyms(TokenFilterFactory factory) + { + Reader reader = new StringReader("second"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = factory.Create(stream); + assertTrue(stream is SynonymFilter); + AssertTokenStreamContents(stream, new string[] { "second", "2nd", "two" }, new int[] { 1, 0, 0 }); + } + + /// + /// test that we can parse and use the solr syn file + [Test] + public virtual void TestSynonyms() + { + CheckSolrSynonyms(TokenFilterFactory("Synonym", "synonyms", "synonyms.txt")); + } + + /// + /// test that we can parse and use the solr syn file, with the old impl + /// @deprecated Remove this test in Lucene 5.0 + [Test] + [Obsolete("Remove this test in Lucene 5.0")] + public virtual void TestSynonymsOld() + { + Reader reader = new StringReader("GB"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("Synonym", Version.LUCENE_33, new ClasspathResourceLoader(this.GetType(), "Lucene.Net"), "synonyms", "synonyms.txt").Create(stream); + assertTrue(stream is SlowSynonymFilter); + AssertTokenStreamContents(stream, new string[] { "GB", "gib", "gigabyte", "gigabytes" }, new int[] { 1, 0, 0, 0 }); + } + + /// + /// test multiword offsets with the old impl + /// @deprecated Remove this test in Lucene 5.0 + [Test] + [Obsolete("Remove this test in Lucene 5.0")] + public virtual void TestMultiwordOffsetsOld() + { + Reader reader = new StringReader("national hockey league"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("Synonym", Version.LUCENE_33, new StringMockResourceLoader("national hockey league, nhl"), "synonyms", "synonyms.txt").Create(stream); + // WTF? + AssertTokenStreamContents(stream, new string[] { "national", "nhl", "hockey", "league" }, new int[] { 0, 0, 0, 0 }, new int[] { 22, 22, 22, 22 }, new int[] { 1, 0, 1, 1 }); + } + + /// + /// if the synonyms are completely empty, test that we still analyze correctly + [Test] + public virtual void TestEmptySynonyms() + { + Reader reader = new StringReader("GB"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("Synonym", TEST_VERSION_CURRENT, new StringMockResourceLoader(""), "synonyms", "synonyms.txt").Create(stream); // empty file! + AssertTokenStreamContents(stream, new string[] { "GB" }); + } + + [Test] + public virtual void TestFormat() + { + CheckSolrSynonyms(TokenFilterFactory("Synonym", "synonyms", "synonyms.txt", "format", "solr")); + CheckWordnetSynonyms(TokenFilterFactory("Synonym", "synonyms", "synonyms-wordnet.txt", "format", "wordnet")); + // explicit class should work the same as the "solr" alias + CheckSolrSynonyms(TokenFilterFactory("Synonym", "synonyms", "synonyms.txt", "format", typeof(SolrSynonymParser).AssemblyQualifiedName)); + } + + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenFilterFactory("Synonym", "synonyms", "synonyms.txt", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + + internal const string TOK_SYN_ARG_VAL = "argument"; + internal const string TOK_FOO_ARG_VAL = "foofoofoo"; + + /// + /// Test that we can parse TokenierFactory's arguments + [Test] + public virtual void TestTokenizerFactoryArguments() + { + // diff versions produce diff delegator behavior, + // all should be (mostly) equivilent for our test purposes. + DoTestTokenizerFactoryArguments(Version.LUCENE_33, typeof(SlowSynonymFilterFactory)); + DoTestTokenizerFactoryArguments(Version.LUCENE_34, typeof(FSTSynonymFilterFactory)); + DoTestTokenizerFactoryArguments(Version.LUCENE_35, typeof(FSTSynonymFilterFactory)); + + DoTestTokenizerFactoryArguments(Version.LUCENE_CURRENT, typeof(FSTSynonymFilterFactory)); + } + + protected internal virtual void DoTestTokenizerFactoryArguments(Version ver, Type delegatorClass) + { + string clazz = typeof(PatternTokenizerFactory).AssemblyQualifiedName; + TokenFilterFactory factory = null; + + // simple arg form + factory = TokenFilterFactory("Synonym", ver, "synonyms", "synonyms.txt", "tokenizerFactory", clazz, "pattern", "(.*)", "group", "0"); + AssertDelegator(factory, delegatorClass); + + // prefix + factory = TokenFilterFactory("Synonym", ver, "synonyms", "synonyms.txt", "tokenizerFactory", clazz, "tokenizerFactory.pattern", "(.*)", "tokenizerFactory.group", "0"); + AssertDelegator(factory, delegatorClass); + + // sanity check that sub-PatternTokenizerFactory fails w/o pattern + try + { + factory = TokenFilterFactory("Synonym", ver, "synonyms", "synonyms.txt", "tokenizerFactory", clazz); + fail("tokenizerFactory should have complained about missing pattern arg"); + } + catch (Exception) + { + // :NOOP: + } + + // sanity check that sub-PatternTokenizerFactory fails on unexpected + try + { + factory = TokenFilterFactory("Synonym", ver, "synonyms", "synonyms.txt", "tokenizerFactory", clazz, "tokenizerFactory.pattern", "(.*)", "tokenizerFactory.bogusbogusbogus", "bogus", "tokenizerFactory.group", "0"); + fail("tokenizerFactory should have complained about missing pattern arg"); + } + catch (Exception) + { + // :NOOP: + } + } + + private static void AssertDelegator(TokenFilterFactory factory, Type delegatorClass) + { + assertNotNull(factory); + assertTrue("factory not expected class: " + factory.GetType(), factory is SynonymFilterFactory); + SynonymFilterFactory synFac = (SynonymFilterFactory)factory; + object delegator = synFac.Delegator; + assertNotNull(delegator); + assertTrue("delegator not expected class: " + delegator.GetType(), delegatorClass.IsInstanceOfType(delegator)); + + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMap.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMap.cs index c154734ecd..147d8c7fc0 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMap.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMap.cs @@ -1,10 +1,15 @@ -using System; +using Lucene.Net.Util; +using System; using System.Collections.Generic; +using System.IO; +using System.Text; +using NUnit.Framework; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Ngram; -namespace org.apache.lucene.analysis.synonym +namespace Lucene.Net.Analysis.Synonym { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -21,343 +26,312 @@ namespace org.apache.lucene.analysis.synonym * limitations under the License. */ - - using NGramTokenizerFactory = org.apache.lucene.analysis.ngram.NGramTokenizerFactory; - using AbstractAnalysisFactory = org.apache.lucene.analysis.util.AbstractAnalysisFactory; - using TokenizerFactory = org.apache.lucene.analysis.util.TokenizerFactory; - using LuceneTestCase = org.apache.lucene.util.LuceneTestCase; - using ResourceLoader = org.apache.lucene.analysis.util.ResourceLoader; - - /// @deprecated Remove this test in Lucene 5.0 - [Obsolete("Remove this test in Lucene 5.0")] - public class TestSynonymMap : LuceneTestCase - { - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidMappingRules() throws Exception - public virtual void testInvalidMappingRules() - { - SlowSynonymMap synMap = new SlowSynonymMap(true); - IList rules = new List(1); - rules.Add("a=>b=>c"); - try - { - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - fail("IllegalArgumentException must be thrown."); - } - catch (System.ArgumentException) - { - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReadMappingRules() throws Exception - public virtual void testReadMappingRules() - { - SlowSynonymMap synMap; - - // (a)->[b] - IList rules = new List(); - rules.Add("a=>b"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(1, synMap.submap.size()); - assertTokIncludes(synMap, "a", "b"); - - // (a)->[c] - // (b)->[c] - rules.Clear(); - rules.Add("a,b=>c"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(2, synMap.submap.size()); - assertTokIncludes(synMap, "a", "c"); - assertTokIncludes(synMap, "b", "c"); - - // (a)->[b][c] - rules.Clear(); - rules.Add("a=>b,c"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(1, synMap.submap.size()); - assertTokIncludes(synMap, "a", "b"); - assertTokIncludes(synMap, "a", "c"); - - // (a)->(b)->[a2] - // [a1] - rules.Clear(); - rules.Add("a=>a1"); - rules.Add("a b=>a2"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(1, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a1"); - assertEquals(1, getSubSynonymMap(synMap, "a").submap.size()); - assertTokIncludes(getSubSynonymMap(synMap, "a"), "b", "a2"); - - // (a)->(b)->[a2] - // (c)->[a3] - // [a1] - rules.Clear(); - rules.Add("a=>a1"); - rules.Add("a b=>a2"); - rules.Add("a c=>a3"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(1, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a1"); - assertEquals(2, getSubSynonymMap(synMap, "a").submap.size()); - assertTokIncludes(getSubSynonymMap(synMap, "a"), "b", "a2"); - assertTokIncludes(getSubSynonymMap(synMap, "a"), "c", "a3"); - - // (a)->(b)->[a2] - // [a1] - // (b)->(c)->[b2] - // [b1] - rules.Clear(); - rules.Add("a=>a1"); - rules.Add("a b=>a2"); - rules.Add("b=>b1"); - rules.Add("b c=>b2"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(2, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a1"); - assertEquals(1, getSubSynonymMap(synMap, "a").submap.size()); - assertTokIncludes(getSubSynonymMap(synMap, "a"), "b", "a2"); - assertTokIncludes(synMap, "b", "b1"); - assertEquals(1, getSubSynonymMap(synMap, "b").submap.size()); - assertTokIncludes(getSubSynonymMap(synMap, "b"), "c", "b2"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRead1waySynonymRules() throws Exception - public virtual void testRead1waySynonymRules() - { - SlowSynonymMap synMap; - - // (a)->[a] - // (b)->[a] - IList rules = new List(); - rules.Add("a,b"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", false, null); - assertEquals(2, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a"); - assertTokIncludes(synMap, "b", "a"); - - // (a)->[a] - // (b)->[a] - // (c)->[a] - rules.Clear(); - rules.Add("a,b,c"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", false, null); - assertEquals(3, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a"); - assertTokIncludes(synMap, "b", "a"); - assertTokIncludes(synMap, "c", "a"); - - // (a)->[a] - // (b1)->(b2)->[a] - rules.Clear(); - rules.Add("a,b1 b2"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", false, null); - assertEquals(2, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a"); - assertEquals(1, getSubSynonymMap(synMap, "b1").submap.size()); - assertTokIncludes(getSubSynonymMap(synMap, "b1"), "b2", "a"); - - // (a1)->(a2)->[a1][a2] - // (b)->[a1][a2] - rules.Clear(); - rules.Add("a1 a2,b"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", false, null); - assertEquals(2, synMap.submap.size()); - assertEquals(1, getSubSynonymMap(synMap, "a1").submap.size()); - assertTokIncludes(getSubSynonymMap(synMap, "a1"), "a2", "a1"); - assertTokIncludes(getSubSynonymMap(synMap, "a1"), "a2", "a2"); - assertTokIncludes(synMap, "b", "a1"); - assertTokIncludes(synMap, "b", "a2"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRead2waySynonymRules() throws Exception - public virtual void testRead2waySynonymRules() - { - SlowSynonymMap synMap; - - // (a)->[a][b] - // (b)->[a][b] - IList rules = new List(); - rules.Add("a,b"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(2, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a"); - assertTokIncludes(synMap, "a", "b"); - assertTokIncludes(synMap, "b", "a"); - assertTokIncludes(synMap, "b", "b"); - - // (a)->[a][b][c] - // (b)->[a][b][c] - // (c)->[a][b][c] - rules.Clear(); - rules.Add("a,b,c"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(3, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a"); - assertTokIncludes(synMap, "a", "b"); - assertTokIncludes(synMap, "a", "c"); - assertTokIncludes(synMap, "b", "a"); - assertTokIncludes(synMap, "b", "b"); - assertTokIncludes(synMap, "b", "c"); - assertTokIncludes(synMap, "c", "a"); - assertTokIncludes(synMap, "c", "b"); - assertTokIncludes(synMap, "c", "c"); - - // (a)->[a] - // [b1][b2] - // (b1)->(b2)->[a] - // [b1][b2] - rules.Clear(); - rules.Add("a,b1 b2"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(2, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a"); - assertTokIncludes(synMap, "a", "b1"); - assertTokIncludes(synMap, "a", "b2"); - assertEquals(1, getSubSynonymMap(synMap, "b1").submap.size()); - assertTokIncludes(getSubSynonymMap(synMap, "b1"), "b2", "a"); - assertTokIncludes(getSubSynonymMap(synMap, "b1"), "b2", "b1"); - assertTokIncludes(getSubSynonymMap(synMap, "b1"), "b2", "b2"); - - // (a1)->(a2)->[a1][a2] - // [b] - // (b)->[a1][a2] - // [b] - rules.Clear(); - rules.Add("a1 a2,b"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, null); - assertEquals(2, synMap.submap.size()); - assertEquals(1, getSubSynonymMap(synMap, "a1").submap.size()); - assertTokIncludes(getSubSynonymMap(synMap, "a1"), "a2", "a1"); - assertTokIncludes(getSubSynonymMap(synMap, "a1"), "a2", "a2"); - assertTokIncludes(getSubSynonymMap(synMap, "a1"), "a2", "b"); - assertTokIncludes(synMap, "b", "a1"); - assertTokIncludes(synMap, "b", "a2"); - assertTokIncludes(synMap, "b", "b"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBigramTokenizer() throws Exception - public virtual void testBigramTokenizer() - { - SlowSynonymMap synMap; - - // prepare bi-gram tokenizer factory - IDictionary args = new Dictionary(); - args[AbstractAnalysisFactory.LUCENE_MATCH_VERSION_PARAM] = "4.4"; - args["minGramSize"] = "2"; - args["maxGramSize"] = "2"; - TokenizerFactory tf = new NGramTokenizerFactory(args); - - // (ab)->(bc)->(cd)->[ef][fg][gh] - IList rules = new List(); - rules.Add("abcd=>efgh"); - synMap = new SlowSynonymMap(true); - SlowSynonymFilterFactory.parseRules(rules, synMap, "=>", ",", true, tf); - assertEquals(1, synMap.submap.size()); - assertEquals(1, getSubSynonymMap(synMap, "ab").submap.size()); - assertEquals(1, getSubSynonymMap(getSubSynonymMap(synMap, "ab"), "bc").submap.size()); - assertTokIncludes(getSubSynonymMap(getSubSynonymMap(synMap, "ab"), "bc"), "cd", "ef"); - assertTokIncludes(getSubSynonymMap(getSubSynonymMap(synMap, "ab"), "bc"), "cd", "fg"); - assertTokIncludes(getSubSynonymMap(getSubSynonymMap(synMap, "ab"), "bc"), "cd", "gh"); - } - - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testLoadRules() throws Exception - public virtual void testLoadRules() - { - IDictionary args = new Dictionary(); - args["synonyms"] = "something.txt"; - SlowSynonymFilterFactory ff = new SlowSynonymFilterFactory(args); - ff.inform(new ResourceLoaderAnonymousInnerClassHelper(this)); - - SlowSynonymMap synMap = ff.SynonymMap; - assertEquals(2, synMap.submap.size()); - assertTokIncludes(synMap, "a", "a"); - assertTokIncludes(synMap, "a", "b"); - assertTokIncludes(synMap, "b", "a"); - assertTokIncludes(synMap, "b", "b"); - } - - private class ResourceLoaderAnonymousInnerClassHelper : ResourceLoader - { - private readonly TestSynonymMap outerInstance; - - public ResourceLoaderAnonymousInnerClassHelper(TestSynonymMap outerInstance) - { - this.outerInstance = outerInstance; - } - - - public override T newInstance(string cname, Type expectedType) - { - throw new Exception("stub"); - } - -//JAVA TO C# CONVERTER TODO TASK: Java wildcard generics are not converted to .NET: -//ORIGINAL LINE: @Override public Class findClass(String cname, Class expectedType) -//JAVA TO C# CONVERTER TODO TASK: Java wildcard generics are not converted to .NET: -//ORIGINAL LINE: @Override public Class findClass(String cname, Class expectedType) - public override Type findClass(string cname, Type expectedType) where ? : T - { - throw new Exception("stub"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public java.io.InputStream openResource(String resource) throws java.io.IOException - public override System.IO.Stream openResource(string resource) - { - if (!"something.txt".Equals(resource)) - { - throw new Exception("should not get a differnt resource"); - } - else - { - return new ByteArrayInputStream("a,b".GetBytes("UTF-8")); - } - } - } - - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private void assertTokIncludes(SlowSynonymMap map, String src, String exp) throws Exception - private void assertTokIncludes(SlowSynonymMap map, string src, string exp) - { - Token[] tokens = map.submap.get(src).synonyms; - bool inc = false; - foreach (Token token in tokens) - { - if (exp.Equals(new string(token.buffer(), 0, token.length()))) - { - inc = true; - } - } - assertTrue(inc); - } - - private SlowSynonymMap getSubSynonymMap(SlowSynonymMap map, string src) - { - return map.submap.get(src); - } - } - + /// @deprecated Remove this test in Lucene 5.0 + [Obsolete("Remove this test in Lucene 5.0")] + public class TestSynonymMap : LuceneTestCase + { + + [Test] + public virtual void TestInvalidMappingRules() + { + SlowSynonymMap synMap = new SlowSynonymMap(true); + IList rules = new List(1); + rules.Add("a=>b=>c"); + try + { + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + fail("IllegalArgumentException must be thrown."); + } + catch (System.ArgumentException) + { + } + } + + [Test] + public virtual void TestReadMappingRules() + { + SlowSynonymMap synMap; + + // (a)->[b] + IList rules = new List(); + rules.Add("a=>b"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(1, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "b"); + + // (a)->[c] + // (b)->[c] + rules.Clear(); + rules.Add("a,b=>c"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(2, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "c"); + AssertTokIncludes(synMap, "b", "c"); + + // (a)->[b][c] + rules.Clear(); + rules.Add("a=>b,c"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(1, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "b"); + AssertTokIncludes(synMap, "a", "c"); + + // (a)->(b)->[a2] + // [a1] + rules.Clear(); + rules.Add("a=>a1"); + rules.Add("a b=>a2"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(1, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a1"); + assertEquals(1, GetSubSynonymMap(synMap, "a").submap.size()); + AssertTokIncludes(GetSubSynonymMap(synMap, "a"), "b", "a2"); + + // (a)->(b)->[a2] + // (c)->[a3] + // [a1] + rules.Clear(); + rules.Add("a=>a1"); + rules.Add("a b=>a2"); + rules.Add("a c=>a3"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(1, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a1"); + assertEquals(2, GetSubSynonymMap(synMap, "a").submap.size()); + AssertTokIncludes(GetSubSynonymMap(synMap, "a"), "b", "a2"); + AssertTokIncludes(GetSubSynonymMap(synMap, "a"), "c", "a3"); + + // (a)->(b)->[a2] + // [a1] + // (b)->(c)->[b2] + // [b1] + rules.Clear(); + rules.Add("a=>a1"); + rules.Add("a b=>a2"); + rules.Add("b=>b1"); + rules.Add("b c=>b2"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(2, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a1"); + assertEquals(1, GetSubSynonymMap(synMap, "a").submap.size()); + AssertTokIncludes(GetSubSynonymMap(synMap, "a"), "b", "a2"); + AssertTokIncludes(synMap, "b", "b1"); + assertEquals(1, GetSubSynonymMap(synMap, "b").submap.size()); + AssertTokIncludes(GetSubSynonymMap(synMap, "b"), "c", "b2"); + } + + [Test] + public virtual void TestRead1waySynonymRules() + { + SlowSynonymMap synMap; + + // (a)->[a] + // (b)->[a] + IList rules = new List(); + rules.Add("a,b"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", false, null); + assertEquals(2, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a"); + AssertTokIncludes(synMap, "b", "a"); + + // (a)->[a] + // (b)->[a] + // (c)->[a] + rules.Clear(); + rules.Add("a,b,c"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", false, null); + assertEquals(3, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a"); + AssertTokIncludes(synMap, "b", "a"); + AssertTokIncludes(synMap, "c", "a"); + + // (a)->[a] + // (b1)->(b2)->[a] + rules.Clear(); + rules.Add("a,b1 b2"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", false, null); + assertEquals(2, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a"); + assertEquals(1, GetSubSynonymMap(synMap, "b1").submap.size()); + AssertTokIncludes(GetSubSynonymMap(synMap, "b1"), "b2", "a"); + + // (a1)->(a2)->[a1][a2] + // (b)->[a1][a2] + rules.Clear(); + rules.Add("a1 a2,b"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", false, null); + assertEquals(2, synMap.submap.size()); + assertEquals(1, GetSubSynonymMap(synMap, "a1").submap.size()); + AssertTokIncludes(GetSubSynonymMap(synMap, "a1"), "a2", "a1"); + AssertTokIncludes(GetSubSynonymMap(synMap, "a1"), "a2", "a2"); + AssertTokIncludes(synMap, "b", "a1"); + AssertTokIncludes(synMap, "b", "a2"); + } + + [Test] + public virtual void TestRead2waySynonymRules() + { + SlowSynonymMap synMap; + + // (a)->[a][b] + // (b)->[a][b] + IList rules = new List(); + rules.Add("a,b"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(2, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a"); + AssertTokIncludes(synMap, "a", "b"); + AssertTokIncludes(synMap, "b", "a"); + AssertTokIncludes(synMap, "b", "b"); + + // (a)->[a][b][c] + // (b)->[a][b][c] + // (c)->[a][b][c] + rules.Clear(); + rules.Add("a,b,c"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(3, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a"); + AssertTokIncludes(synMap, "a", "b"); + AssertTokIncludes(synMap, "a", "c"); + AssertTokIncludes(synMap, "b", "a"); + AssertTokIncludes(synMap, "b", "b"); + AssertTokIncludes(synMap, "b", "c"); + AssertTokIncludes(synMap, "c", "a"); + AssertTokIncludes(synMap, "c", "b"); + AssertTokIncludes(synMap, "c", "c"); + + // (a)->[a] + // [b1][b2] + // (b1)->(b2)->[a] + // [b1][b2] + rules.Clear(); + rules.Add("a,b1 b2"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(2, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a"); + AssertTokIncludes(synMap, "a", "b1"); + AssertTokIncludes(synMap, "a", "b2"); + assertEquals(1, GetSubSynonymMap(synMap, "b1").submap.size()); + AssertTokIncludes(GetSubSynonymMap(synMap, "b1"), "b2", "a"); + AssertTokIncludes(GetSubSynonymMap(synMap, "b1"), "b2", "b1"); + AssertTokIncludes(GetSubSynonymMap(synMap, "b1"), "b2", "b2"); + + // (a1)->(a2)->[a1][a2] + // [b] + // (b)->[a1][a2] + // [b] + rules.Clear(); + rules.Add("a1 a2,b"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, null); + assertEquals(2, synMap.submap.size()); + assertEquals(1, GetSubSynonymMap(synMap, "a1").submap.size()); + AssertTokIncludes(GetSubSynonymMap(synMap, "a1"), "a2", "a1"); + AssertTokIncludes(GetSubSynonymMap(synMap, "a1"), "a2", "a2"); + AssertTokIncludes(GetSubSynonymMap(synMap, "a1"), "a2", "b"); + AssertTokIncludes(synMap, "b", "a1"); + AssertTokIncludes(synMap, "b", "a2"); + AssertTokIncludes(synMap, "b", "b"); + } + + [Test] + public virtual void TestBigramTokenizer() + { + SlowSynonymMap synMap; + + // prepare bi-gram tokenizer factory + IDictionary args = new Dictionary(); + args[AbstractAnalysisFactory.LUCENE_MATCH_VERSION_PARAM] = "4.4"; + args["minGramSize"] = "2"; + args["maxGramSize"] = "2"; + TokenizerFactory tf = new NGramTokenizerFactory(args); + + // (ab)->(bc)->(cd)->[ef][fg][gh] + IList rules = new List(); + rules.Add("abcd=>efgh"); + synMap = new SlowSynonymMap(true); + SlowSynonymFilterFactory.ParseRules(rules, synMap, "=>", ",", true, tf); + assertEquals(1, synMap.submap.size()); + assertEquals(1, GetSubSynonymMap(synMap, "ab").submap.size()); + assertEquals(1, GetSubSynonymMap(GetSubSynonymMap(synMap, "ab"), "bc").submap.size()); + AssertTokIncludes(GetSubSynonymMap(GetSubSynonymMap(synMap, "ab"), "bc"), "cd", "ef"); + AssertTokIncludes(GetSubSynonymMap(GetSubSynonymMap(synMap, "ab"), "bc"), "cd", "fg"); + AssertTokIncludes(GetSubSynonymMap(GetSubSynonymMap(synMap, "ab"), "bc"), "cd", "gh"); + } + + + [Test] + public virtual void TestLoadRules() + { + IDictionary args = new Dictionary(); + args["synonyms"] = "something.txt"; + SlowSynonymFilterFactory ff = new SlowSynonymFilterFactory(args); + ff.Inform(new ResourceLoaderAnonymousInnerClassHelper()); + + SlowSynonymMap synMap = ff.SynonymMap; + assertEquals(2, synMap.submap.size()); + AssertTokIncludes(synMap, "a", "a"); + AssertTokIncludes(synMap, "a", "b"); + AssertTokIncludes(synMap, "b", "a"); + AssertTokIncludes(synMap, "b", "b"); + } + + internal sealed class ResourceLoaderAnonymousInnerClassHelper : IResourceLoader + { + public T NewInstance(string cname) + { + throw new Exception("stub"); + } + + public Type FindClass(string cname) + { + throw new Exception("stub"); + } + + public Stream OpenResource(string resource) + { + if (!"something.txt".Equals(resource)) + { + throw new Exception("should not get a differnt resource"); + } + else + { + return new MemoryStream(Encoding.UTF8.GetBytes("a,b")); + } + } + } + + private void AssertTokIncludes(SlowSynonymMap map, string src, string exp) + { + Token[] tokens = map.submap.Get(src).synonyms; + bool inc = false; + foreach (Token token in tokens) + { + if (exp.Equals(new string(token.Buffer(), 0, token.Length))) + { + inc = true; + } + } + assertTrue(inc); + } + + private SlowSynonymMap GetSubSynonymMap(SlowSynonymMap map, string src) + { + return map.submap.Get(src); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs index 37da9ea204..a4a3f35d86 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs @@ -1,1350 +1,1194 @@ -using System; -using System.Diagnostics; +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; +using System; using System.Collections.Generic; +using System.Diagnostics; +using System.IO; using System.Text; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace org.apache.lucene.analysis.synonym +namespace Lucene.Net.Analysis.Synonym { - - - using KeywordTokenizer = org.apache.lucene.analysis.core.KeywordTokenizer; - using org.apache.lucene.analysis.tokenattributes; - using CharsRef = org.apache.lucene.util.CharsRef; - using TestUtil = org.apache.lucene.util.TestUtil; - - public class TestSynonymMapFilter : BaseTokenStreamTestCase - { - - private SynonymMap.Builder b; - private Tokenizer tokensIn; - private SynonymFilter tokensOut; - private CharTermAttribute termAtt; - private PositionIncrementAttribute posIncrAtt; - private PositionLengthAttribute posLenAtt; - private OffsetAttribute offsetAtt; - - private void add(string input, string output, bool keepOrig) - { - if (VERBOSE) - { - Console.WriteLine(" add input=" + input + " output=" + output + " keepOrig=" + keepOrig); - } - CharsRef inputCharsRef = new CharsRef(); - SynonymMap.Builder.join(input.Split(" +", true), inputCharsRef); - - CharsRef outputCharsRef = new CharsRef(); - SynonymMap.Builder.join(output.Split(" +", true), outputCharsRef); - - b.add(inputCharsRef, outputCharsRef, keepOrig); - } - - private void assertEquals(CharTermAttribute term, string expected) - { - assertEquals(expected.Length, term.length()); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final char[] buffer = term.buffer(); - char[] buffer = term.buffer(); - for (int chIDX = 0;chIDX < expected.Length;chIDX++) - { - assertEquals(expected[chIDX], buffer[chIDX]); - } - } - - // For the output string: separate positions with a space, - // and separate multiple tokens at each position with a - // /. If a token should have end offset != the input - // token's end offset then add :X to it: - - // TODO: we should probably refactor this guy to use/take analyzer, - // the tests are a little messy -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: private void verify(String input, String output) throws Exception - private void verify(string input, string output) - { - if (VERBOSE) - { - Console.WriteLine("TEST: verify input=" + input + " expectedOutput=" + output); - } - - tokensIn.Reader = new StringReader(input); - tokensOut.reset(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String[] expected = output.split(" "); - string[] expected = output.Split(" ", true); - int expectedUpto = 0; - while (tokensOut.incrementToken()) - { - - if (VERBOSE) - { - Console.WriteLine(" incr token=" + termAtt.ToString() + " posIncr=" + posIncrAtt.PositionIncrement + " startOff=" + offsetAtt.startOffset() + " endOff=" + offsetAtt.endOffset()); - } - - assertTrue(expectedUpto < expected.Length); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int startOffset = offsetAtt.startOffset(); - int startOffset = offsetAtt.startOffset(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int endOffset = offsetAtt.endOffset(); - int endOffset = offsetAtt.endOffset(); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String[] expectedAtPos = expected[expectedUpto++].split("/"); - string[] expectedAtPos = expected[expectedUpto++].Split("/", true); - for (int atPos = 0;atPos < expectedAtPos.Length;atPos++) - { - if (atPos > 0) - { - assertTrue(tokensOut.incrementToken()); - if (VERBOSE) - { - Console.WriteLine(" incr token=" + termAtt.ToString() + " posIncr=" + posIncrAtt.PositionIncrement + " startOff=" + offsetAtt.startOffset() + " endOff=" + offsetAtt.endOffset()); - } - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int colonIndex = expectedAtPos[atPos].indexOf(':'); - int colonIndex = expectedAtPos[atPos].IndexOf(':'); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int underbarIndex = expectedAtPos[atPos].indexOf('_'); - int underbarIndex = expectedAtPos[atPos].IndexOf('_'); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String expectedToken; - string expectedToken; -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int expectedEndOffset; - int expectedEndOffset; -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int expectedPosLen; - int expectedPosLen; - if (colonIndex != -1) - { - expectedToken = expectedAtPos[atPos].Substring(0, colonIndex); - if (underbarIndex != -1) - { - expectedEndOffset = int.Parse(expectedAtPos[atPos].Substring(1 + colonIndex, underbarIndex - (1 + colonIndex))); - expectedPosLen = int.Parse(expectedAtPos[atPos].Substring(1 + underbarIndex)); - } - else - { - expectedEndOffset = int.Parse(expectedAtPos[atPos].Substring(1 + colonIndex)); - expectedPosLen = 1; - } - } - else - { - expectedToken = expectedAtPos[atPos]; - expectedEndOffset = endOffset; - expectedPosLen = 1; - } - assertEquals(expectedToken, termAtt.ToString()); - assertEquals(atPos == 0 ? 1 : 0, posIncrAtt.PositionIncrement); - // start/end offset of all tokens at same pos should - // be the same: - assertEquals(startOffset, offsetAtt.startOffset()); - assertEquals(expectedEndOffset, offsetAtt.endOffset()); - assertEquals(expectedPosLen, posLenAtt.PositionLength); - } - } - tokensOut.end(); - tokensOut.close(); - if (VERBOSE) - { - Console.WriteLine(" incr: END"); - } - assertEquals(expectedUpto, expected.Length); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDontKeepOrig() throws Exception - public virtual void testDontKeepOrig() - { - b = new SynonymMap.Builder(true); - add("a b", "foo", false); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Analyzer analyzer = new org.apache.lucene.analysis.Analyzer() - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, map); - - assertAnalyzesTo(analyzer, "a b c", new string[] {"foo", "c"}, new int[] {0, 4}, new int[] {3, 5}, null, new int[] {1, 1}, new int[] {1, 1}, true); - checkAnalysisConsistency(random(), analyzer, false, "a b c"); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDoKeepOrig() throws Exception - public virtual void testDoKeepOrig() - { - b = new SynonymMap.Builder(true); - add("a b", "foo", true); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Analyzer analyzer = new org.apache.lucene.analysis.Analyzer() - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper2(this, map); - - assertAnalyzesTo(analyzer, "a b c", new string[] {"a", "foo", "b", "c"}, new int[] {0, 0, 2, 4}, new int[] {1, 3, 3, 5}, null, new int[] {1, 0, 1, 1}, new int[] {1, 2, 1, 1}, true); - checkAnalysisConsistency(random(), analyzer, false, "a b c"); - } - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper2(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBasic() throws Exception - public virtual void testBasic() - { - b = new SynonymMap.Builder(true); - add("a", "foo", true); - add("a b", "bar fee", true); - add("b c", "dog collar", true); - add("c d", "dog harness holder extras", true); - add("m c e", "dog barks loudly", false); - add("i j k", "feep", true); - - add("e f", "foo bar", false); - add("e f", "baz bee", false); - - add("z", "boo", false); - add("y", "bee", true); - - tokensIn = new MockTokenizer(new StringReader("a"), MockTokenizer.WHITESPACE, true); - tokensIn.reset(); - assertTrue(tokensIn.incrementToken()); - assertFalse(tokensIn.incrementToken()); - tokensIn.end(); - tokensIn.close(); - - tokensOut = new SynonymFilter(tokensIn, b.build(), true); - termAtt = tokensOut.addAttribute(typeof(CharTermAttribute)); - posIncrAtt = tokensOut.addAttribute(typeof(PositionIncrementAttribute)); - posLenAtt = tokensOut.addAttribute(typeof(PositionLengthAttribute)); - offsetAtt = tokensOut.addAttribute(typeof(OffsetAttribute)); - - verify("a b c", "a/bar b/fee c"); - - // syn output extends beyond input tokens - verify("x a b c d", "x a/bar b/fee c/dog d/harness holder extras"); - - verify("a b a", "a/bar b/fee a/foo"); - - // outputs that add to one another: - verify("c d c d", "c/dog d/harness c/holder/dog d/extras/harness holder extras"); - - // two outputs for same input - verify("e f", "foo/baz bar/bee"); - - // verify multi-word / single-output offsets: - verify("g i j k g", "g i/feep:7_3 j k g"); - - // mixed keepOrig true/false: - verify("a m c e x", "a/foo dog barks loudly x"); - verify("c d m c e x", "c/dog d/harness holder/dog extras/barks loudly x"); - assertTrue(tokensOut.CaptureCount > 0); - - // no captureStates when no syns matched - verify("p q r s t", "p q r s t"); - assertEquals(0, tokensOut.CaptureCount); - - // no captureStates when only single-input syns, w/ no - // lookahead needed, matched - verify("p q z y t", "p q boo y/bee t"); - assertEquals(0, tokensOut.CaptureCount); - } - - private string getRandomString(char start, int alphabetSize, int length) - { - Debug.Assert(alphabetSize <= 26); - char[] s = new char[2 * length]; - for (int charIDX = 0;charIDX < length;charIDX++) - { - s[2 * charIDX] = (char)(start + random().Next(alphabetSize)); - s[2 * charIDX + 1] = ' '; - } - return new string(s); - } - - private class OneSyn - { - internal string @in; - internal IList @out; - internal bool keepOrig; - } - - public virtual string slowSynMatcher(string doc, IList syns, int maxOutputLength) - { - assertTrue(doc.Length % 2 == 0); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numInputs = doc.length()/2; - int numInputs = doc.Length / 2; - bool[] keepOrigs = new bool[numInputs]; - bool[] hasMatch = new bool[numInputs]; - Arrays.fill(keepOrigs, false); - string[] outputs = new string[numInputs + maxOutputLength]; - OneSyn[] matches = new OneSyn[numInputs]; - foreach (OneSyn syn in syns) - { - int idx = -1; - while (true) - { - idx = doc.IndexOf(syn.@in, 1 + idx, StringComparison.Ordinal); - if (idx == -1) - { - break; - } - assertTrue(idx % 2 == 0); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int matchIDX = idx/2; - int matchIDX = idx / 2; - assertTrue(syn.@in.Length % 2 == 1); - if (matches[matchIDX] == null) - { - matches[matchIDX] = syn; - } - else if (syn.@in.Length > matches[matchIDX].@in.Length) - { - // Greedy conflict resolution: longer match wins: - matches[matchIDX] = syn; - } - else - { - assertTrue(syn.@in.Length < matches[matchIDX].@in.Length); - } - } - } - - // Greedy conflict resolution: if syn matches a range of inputs, - // it prevents other syns from matching that range - for (int inputIDX = 0;inputIDX < numInputs;inputIDX++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final OneSyn match = matches[inputIDX]; - OneSyn match = matches[inputIDX]; - if (match != null) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int synInLength = (1+match.in.length())/2; - int synInLength = (1 + match.@in.Length) / 2; - for (int nextInputIDX = inputIDX + 1;nextInputIDX < numInputs && nextInputIDX < (inputIDX + synInLength);nextInputIDX++) - { - matches[nextInputIDX] = null; - } - } - } - - // Fill overlapping outputs: - for (int inputIDX = 0;inputIDX < numInputs;inputIDX++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final OneSyn syn = matches[inputIDX]; - OneSyn syn = matches[inputIDX]; - if (syn == null) - { - continue; - } - for (int idx = 0;idx < (1 + syn.@in.Length) / 2;idx++) - { - hasMatch[inputIDX + idx] = true; - keepOrigs[inputIDX + idx] |= syn.keepOrig; - } - foreach (string synOut in syn.@out) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String[] synOutputs = synOut.split(" "); - string[] synOutputs = synOut.Split(" ", true); - assertEquals(synOutputs.Length, (1 + synOut.Length) / 2); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int matchEnd = inputIDX + synOutputs.length; - int matchEnd = inputIDX + synOutputs.Length; - int synUpto = 0; - for (int matchIDX = inputIDX;matchIDX < matchEnd;matchIDX++) - { - if (outputs[matchIDX] == null) - { - outputs[matchIDX] = synOutputs[synUpto++]; - } - else - { - outputs[matchIDX] = outputs[matchIDX] + "/" + synOutputs[synUpto++]; - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int endOffset; - int endOffset; - if (matchIDX < numInputs) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int posLen; - int posLen; - if (synOutputs.Length == 1) - { - // Add full endOffset - endOffset = (inputIDX * 2) + syn.@in.Length; - posLen = syn.keepOrig ? (1 + syn.@in.Length) / 2 : 1; - } - else - { - // Add endOffset matching input token's - endOffset = (matchIDX * 2) + 1; - posLen = 1; - } - outputs[matchIDX] = outputs[matchIDX] + ":" + endOffset + "_" + posLen; - } - } - } - } - - StringBuilder sb = new StringBuilder(); - string[] inputTokens = doc.Split(" ", true); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int limit = inputTokens.length + maxOutputLength; - int limit = inputTokens.Length + maxOutputLength; - for (int inputIDX = 0;inputIDX < limit;inputIDX++) - { - bool posHasOutput = false; - if (inputIDX >= numInputs && outputs[inputIDX] == null) - { - break; - } - if (inputIDX < numInputs && (!hasMatch[inputIDX] || keepOrigs[inputIDX])) - { - assertTrue(inputTokens[inputIDX].Length != 0); - sb.Append(inputTokens[inputIDX]); - posHasOutput = true; - } - - if (outputs[inputIDX] != null) - { - if (posHasOutput) - { - sb.Append('/'); - } - sb.Append(outputs[inputIDX]); - } - else if (!posHasOutput) - { - continue; - } - if (inputIDX < limit - 1) - { - sb.Append(' '); - } - } - - return sb.ToString(); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandom() throws Exception - public virtual void testRandom() - { - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int alphabetSize = org.apache.lucene.util.TestUtil.nextInt(random(), 2, 7); - int alphabetSize = TestUtil.Next(random(), 2, 7); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int docLen = atLeast(3000); - int docLen = atLeast(3000); - //final int docLen = 50; - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String document = getRandomString('a', alphabetSize, docLen); - string document = getRandomString('a', alphabetSize, docLen); - - if (VERBOSE) - { - Console.WriteLine("TEST: doc=" + document); - } - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numSyn = atLeast(5); - int numSyn = atLeast(5); - //final int numSyn = 2; - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final java.util.Map synMap = new java.util.HashMap<>(); - IDictionary synMap = new Dictionary(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final java.util.List syns = new java.util.ArrayList<>(); - IList syns = new List(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final boolean dedup = random().nextBoolean(); - bool dedup = random().nextBoolean(); - if (VERBOSE) - { - Console.WriteLine(" dedup=" + dedup); - } - b = new SynonymMap.Builder(dedup); - for (int synIDX = 0;synIDX < numSyn;synIDX++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String synIn = getRandomString('a', alphabetSize, org.apache.lucene.util.TestUtil.nextInt(random(), 1, 5)).trim(); - string synIn = getRandomString('a', alphabetSize, TestUtil.Next(random(), 1, 5)).Trim(); - OneSyn s = synMap[synIn]; - if (s == null) - { - s = new OneSyn(); - s.@in = synIn; - syns.Add(s); - s.@out = new List<>(); - synMap[synIn] = s; - s.keepOrig = random().nextBoolean(); - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String synOut = getRandomString('0', 10, org.apache.lucene.util.TestUtil.nextInt(random(), 1, 5)).trim(); - string synOut = getRandomString('0', 10, TestUtil.Next(random(), 1, 5)).Trim(); - s.@out.Add(synOut); - add(synIn, synOut, s.keepOrig); - if (VERBOSE) - { - Console.WriteLine(" syns[" + synIDX + "] = " + s.@in + " -> " + s.@out + " keepOrig=" + s.keepOrig); - } - } - - tokensIn = new MockTokenizer(new StringReader("a"), MockTokenizer.WHITESPACE, true); - tokensIn.reset(); - assertTrue(tokensIn.incrementToken()); - assertFalse(tokensIn.incrementToken()); - tokensIn.end(); - tokensIn.close(); - - tokensOut = new SynonymFilter(tokensIn, b.build(), true); - termAtt = tokensOut.addAttribute(typeof(CharTermAttribute)); - posIncrAtt = tokensOut.addAttribute(typeof(PositionIncrementAttribute)); - posLenAtt = tokensOut.addAttribute(typeof(PositionLengthAttribute)); - offsetAtt = tokensOut.addAttribute(typeof(OffsetAttribute)); - - if (dedup) - { - pruneDups(syns); - } - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String expected = slowSynMatcher(document, syns, 5); - string expected = slowSynMatcher(document, syns, 5); - - if (VERBOSE) - { - Console.WriteLine("TEST: expected=" + expected); - } - - verify(document, expected); - } - - private void pruneDups(IList syns) - { - ISet seen = new HashSet(); - foreach (OneSyn syn in syns) - { - int idx = 0; - while (idx < syn.@out.Count) - { - string @out = syn.@out[idx]; - if (!seen.Contains(@out)) - { - seen.Add(@out); - idx++; - } - else - { - syn.@out.RemoveAt(idx); - } - } - seen.Clear(); - } - } - - private string randomNonEmptyString() - { - while (true) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final String s = org.apache.lucene.util.TestUtil.randomUnicodeString(random()).trim(); - string s = TestUtil.randomUnicodeString(random()).trim(); - if (s.Length != 0 && s.IndexOf('\u0000') == -1) - { - return s; - } - } - } - - /// - /// simple random test, doesn't verify correctness. - /// does verify it doesnt throw exceptions, or that the stream doesn't misbehave - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandom2() throws Exception - public virtual void testRandom2() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numIters = atLeast(3); - int numIters = atLeast(3); - for (int i = 0; i < numIters; i++) - { - b = new SynonymMap.Builder(random().nextBoolean()); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numEntries = atLeast(10); - int numEntries = atLeast(10); - for (int j = 0; j < numEntries; j++) - { - add(randomNonEmptyString(), randomNonEmptyString(), random().nextBoolean()); - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final boolean ignoreCase = random().nextBoolean(); - bool ignoreCase = random().nextBoolean(); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Analyzer analyzer = new org.apache.lucene.analysis.Analyzer() - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, map, ignoreCase); - - checkRandomData(random(), analyzer, 100); - } - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - private bool ignoreCase; - - public AnalyzerAnonymousInnerClassHelper(TestSynonymMapFilter outerInstance, SynonymMap map, bool ignoreCase) - { - this.outerInstance = outerInstance; - this.map = map; - this.ignoreCase = ignoreCase; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, ignoreCase)); - } - } - - // NOTE: this is an invalid test... SynFilter today can't - // properly consume a graph... we can re-enable this once - // we fix that... - /* - // Adds MockGraphTokenFilter before SynFilter: - public void testRandom2GraphBefore() throws Exception { - final int numIters = atLeast(10); - Random random = random(); - for (int i = 0; i < numIters; i++) { - b = new SynonymMap.Builder(random.nextBoolean()); - final int numEntries = atLeast(10); - for (int j = 0; j < numEntries; j++) { - add(randomNonEmptyString(), randomNonEmptyString(), random.nextBoolean()); - } - final SynonymMap map = b.build(); - final boolean ignoreCase = random.nextBoolean(); - - final Analyzer analyzer = new Analyzer() { - @Override - protected TokenStreamComponents createComponents(String fieldName, Reader reader) { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); - TokenStream graph = new MockGraphTokenFilter(random(), tokenizer); - return new TokenStreamComponents(tokenizer, new SynonymFilter(graph, map, ignoreCase)); - } - }; - - checkRandomData(random, analyzer, 1000*RANDOM_MULTIPLIER); - } - } - */ - - // Adds MockGraphTokenFilter after SynFilter: -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandom2GraphAfter() throws Exception - public virtual void testRandom2GraphAfter() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numIters = atLeast(3); - int numIters = atLeast(3); - Random random = random(); - for (int i = 0; i < numIters; i++) - { - b = new SynonymMap.Builder(random.nextBoolean()); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numEntries = atLeast(10); - int numEntries = atLeast(10); - for (int j = 0; j < numEntries; j++) - { - add(randomNonEmptyString(), randomNonEmptyString(), random.nextBoolean()); - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final boolean ignoreCase = random.nextBoolean(); - bool ignoreCase = random.nextBoolean(); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Analyzer analyzer = new org.apache.lucene.analysis.Analyzer() - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper2(this, map, ignoreCase); - - checkRandomData(random, analyzer, 100); - } - } - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - private bool ignoreCase; - - public AnalyzerAnonymousInnerClassHelper2(TestSynonymMapFilter outerInstance, SynonymMap map, bool ignoreCase) - { - this.outerInstance = outerInstance; - this.map = map; - this.ignoreCase = ignoreCase; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); - TokenStream syns = new SynonymFilter(tokenizer, map, ignoreCase); - TokenStream graph = new MockGraphTokenFilter(random(), syns); - return new TokenStreamComponents(tokenizer, graph); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmptyTerm() throws java.io.IOException - public virtual void testEmptyTerm() - { - Random random = random(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numIters = atLeast(10); - int numIters = atLeast(10); - for (int i = 0; i < numIters; i++) - { - b = new SynonymMap.Builder(random.nextBoolean()); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numEntries = atLeast(10); - int numEntries = atLeast(10); - for (int j = 0; j < numEntries; j++) - { - add(randomNonEmptyString(), randomNonEmptyString(), random.nextBoolean()); - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final boolean ignoreCase = random.nextBoolean(); - bool ignoreCase = random.nextBoolean(); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Analyzer analyzer = new org.apache.lucene.analysis.Analyzer() - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper3(this, map, ignoreCase); - - checkAnalysisConsistency(random, analyzer, random.nextBoolean(), ""); - } - } - - private class AnalyzerAnonymousInnerClassHelper3 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - private bool ignoreCase; - - public AnalyzerAnonymousInnerClassHelper3(TestSynonymMapFilter outerInstance, SynonymMap map, bool ignoreCase) - { - this.outerInstance = outerInstance; - this.map = map; - this.ignoreCase = ignoreCase; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new KeywordTokenizer(reader); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, ignoreCase)); - } - } - - /// - /// simple random test like testRandom2, but for larger docs - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomHuge() throws Exception - public virtual void testRandomHuge() - { - Random random = random(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numIters = atLeast(3); - int numIters = atLeast(3); - for (int i = 0; i < numIters; i++) - { - b = new SynonymMap.Builder(random.nextBoolean()); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int numEntries = atLeast(10); - int numEntries = atLeast(10); - if (VERBOSE) - { - Console.WriteLine("TEST: iter=" + i + " numEntries=" + numEntries); - } - for (int j = 0; j < numEntries; j++) - { - add(randomNonEmptyString(), randomNonEmptyString(), random.nextBoolean()); - } -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final boolean ignoreCase = random.nextBoolean(); - bool ignoreCase = random.nextBoolean(); - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Analyzer analyzer = new org.apache.lucene.analysis.Analyzer() - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper4(this, map, ignoreCase); - - checkRandomData(random, analyzer, 100, 1024); - } - } - - private class AnalyzerAnonymousInnerClassHelper4 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - private bool ignoreCase; - - public AnalyzerAnonymousInnerClassHelper4(TestSynonymMapFilter outerInstance, SynonymMap map, bool ignoreCase) - { - this.outerInstance = outerInstance; - this.map = map; - this.ignoreCase = ignoreCase; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, ignoreCase)); - } - } - - // LUCENE-3375 -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testVanishingTerms() throws Exception - public virtual void testVanishingTerms() - { - string testFile = "aaa => aaaa1 aaaa2 aaaa3\n" + "bbb => bbbb1 bbbb2\n"; - - SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(random())); - parser.parse(new StringReader(testFile)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = parser.build(); - SynonymMap map = parser.build(); - - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper5(this, map); - - // where did my pot go?! - assertAnalyzesTo(analyzer, "xyzzy bbb pot of gold", new string[] {"xyzzy", "bbbb1", "pot", "bbbb2", "of", "gold"}); - - // this one nukes 'pot' and 'of' - // xyzzy aaa pot of gold -> xyzzy aaaa1 aaaa2 aaaa3 gold - assertAnalyzesTo(analyzer, "xyzzy aaa pot of gold", new string[] {"xyzzy", "aaaa1", "pot", "aaaa2", "of", "aaaa3", "gold"}); - } - - private class AnalyzerAnonymousInnerClassHelper5 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper5(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, true); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBasic2() throws Exception - public virtual void testBasic2() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = false; - add("aaa", "aaaa1 aaaa2 aaaa3", keepOrig); - add("bbb", "bbbb1 bbbb2", keepOrig); - tokensIn = new MockTokenizer(new StringReader("a"), MockTokenizer.WHITESPACE, true); - tokensIn.reset(); - assertTrue(tokensIn.incrementToken()); - assertFalse(tokensIn.incrementToken()); - tokensIn.end(); - tokensIn.close(); - - tokensOut = new SynonymFilter(tokensIn, b.build(), true); - termAtt = tokensOut.addAttribute(typeof(CharTermAttribute)); - posIncrAtt = tokensOut.addAttribute(typeof(PositionIncrementAttribute)); - posLenAtt = tokensOut.addAttribute(typeof(PositionLengthAttribute)); - offsetAtt = tokensOut.addAttribute(typeof(OffsetAttribute)); - - if (keepOrig) - { - verify("xyzzy bbb pot of gold", "xyzzy bbb/bbbb1 pot/bbbb2 of gold"); - verify("xyzzy aaa pot of gold", "xyzzy aaa/aaaa1 pot/aaaa2 of/aaaa3 gold"); - } - else - { - verify("xyzzy bbb pot of gold", "xyzzy bbbb1 pot/bbbb2 of gold"); - verify("xyzzy aaa pot of gold", "xyzzy aaaa1 pot/aaaa2 of/aaaa3 gold"); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMatching() throws Exception - public virtual void testMatching() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = false; - add("a b", "ab", keepOrig); - add("a c", "ac", keepOrig); - add("a", "aa", keepOrig); - add("b", "bb", keepOrig); - add("z x c v", "zxcv", keepOrig); - add("x c", "xc", keepOrig); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper6(this, map); - - checkOneTerm(a, "$", "$"); - checkOneTerm(a, "a", "aa"); - checkOneTerm(a, "b", "bb"); - - assertAnalyzesTo(a, "a $", new string[] {"aa", "$"}, new int[] {1, 1}); - - assertAnalyzesTo(a, "$ a", new string[] {"$", "aa"}, new int[] {1, 1}); - - assertAnalyzesTo(a, "a a", new string[] {"aa", "aa"}, new int[] {1, 1}); - - assertAnalyzesTo(a, "z x c v", new string[] {"zxcv"}, new int[] {1}); - - assertAnalyzesTo(a, "z x c $", new string[] {"z", "xc", "$"}, new int[] {1, 1, 1}); - } - - private class AnalyzerAnonymousInnerClassHelper6 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper6(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRepeatsOff() throws Exception - public virtual void testRepeatsOff() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = false; - add("a b", "ab", keepOrig); - add("a b", "ab", keepOrig); - add("a b", "ab", keepOrig); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper7(this, map); - - assertAnalyzesTo(a, "a b", new string[] {"ab"}, new int[] {1}); - } - - private class AnalyzerAnonymousInnerClassHelper7 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper7(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRepeatsOn() throws Exception - public virtual void testRepeatsOn() - { - b = new SynonymMap.Builder(false); - const bool keepOrig = false; - add("a b", "ab", keepOrig); - add("a b", "ab", keepOrig); - add("a b", "ab", keepOrig); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper8(this, map); - - assertAnalyzesTo(a, "a b", new string[] {"ab", "ab", "ab"}, new int[] {1, 0, 0}); - } - - private class AnalyzerAnonymousInnerClassHelper8 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper8(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRecursion() throws Exception - public virtual void testRecursion() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = false; - add("zoo", "zoo", keepOrig); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper9(this, map); - - assertAnalyzesTo(a, "zoo zoo $ zoo", new string[] {"zoo", "zoo", "$", "zoo"}, new int[] {1, 1, 1, 1}); - } - - private class AnalyzerAnonymousInnerClassHelper9 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper9(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRecursion2() throws Exception - public virtual void testRecursion2() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = false; - add("zoo", "zoo", keepOrig); - add("zoo", "zoo zoo", keepOrig); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper10(this, map); - - // verify("zoo zoo $ zoo", "zoo/zoo zoo/zoo/zoo $/zoo zoo/zoo zoo"); - assertAnalyzesTo(a, "zoo zoo $ zoo", new string[] {"zoo", "zoo", "zoo", "zoo", "zoo", "$", "zoo", "zoo", "zoo", "zoo"}, new int[] {1, 0, 1, 0, 0, 1, 0, 1, 0, 1}); - } - - private class AnalyzerAnonymousInnerClassHelper10 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper10(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testOutputHangsOffEnd() throws Exception - public virtual void testOutputHangsOffEnd() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = false; - // b hangs off the end (no input token under it): - add("a", "a b", keepOrig); - tokensIn = new MockTokenizer(new StringReader("a"), MockTokenizer.WHITESPACE, true); - tokensIn.reset(); - assertTrue(tokensIn.incrementToken()); - assertFalse(tokensIn.incrementToken()); - tokensIn.end(); - tokensIn.close(); - - tokensOut = new SynonymFilter(tokensIn, b.build(), true); - termAtt = tokensOut.addAttribute(typeof(CharTermAttribute)); - posIncrAtt = tokensOut.addAttribute(typeof(PositionIncrementAttribute)); - offsetAtt = tokensOut.addAttribute(typeof(OffsetAttribute)); - posLenAtt = tokensOut.addAttribute(typeof(PositionLengthAttribute)); - - // Make sure endOffset inherits from previous input token: - verify("a", "a b:1"); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testIncludeOrig() throws Exception - public virtual void testIncludeOrig() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = true; - add("a b", "ab", keepOrig); - add("a c", "ac", keepOrig); - add("a", "aa", keepOrig); - add("b", "bb", keepOrig); - add("z x c v", "zxcv", keepOrig); - add("x c", "xc", keepOrig); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper11(this, map); - - assertAnalyzesTo(a, "$", new string[] {"$"}, new int[] {1}); - assertAnalyzesTo(a, "a", new string[] {"a", "aa"}, new int[] {1, 0}); - assertAnalyzesTo(a, "a", new string[] {"a", "aa"}, new int[] {1, 0}); - assertAnalyzesTo(a, "$ a", new string[] {"$", "a", "aa"}, new int[] {1, 1, 0}); - assertAnalyzesTo(a, "a $", new string[] {"a", "aa", "$"}, new int[] {1, 0, 1}); - assertAnalyzesTo(a, "$ a !", new string[] {"$", "a", "aa", "!"}, new int[] {1, 1, 0, 1}); - assertAnalyzesTo(a, "a a", new string[] {"a", "aa", "a", "aa"}, new int[] {1, 0, 1, 0}); - assertAnalyzesTo(a, "b", new string[] {"b", "bb"}, new int[] {1, 0}); - assertAnalyzesTo(a, "z x c v", new string[] {"z", "zxcv", "x", "c", "v"}, new int[] {1, 0, 1, 1, 1}); - assertAnalyzesTo(a, "z x c $", new string[] {"z", "x", "xc", "c", "$"}, new int[] {1, 1, 0, 1, 1}); - } - - private class AnalyzerAnonymousInnerClassHelper11 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper11(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRecursion3() throws Exception - public virtual void testRecursion3() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = true; - add("zoo zoo", "zoo", keepOrig); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper12(this, map); - - assertAnalyzesTo(a, "zoo zoo $ zoo", new string[] {"zoo", "zoo", "zoo", "$", "zoo"}, new int[] {1, 0, 1, 1, 1}); - } - - private class AnalyzerAnonymousInnerClassHelper12 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper12(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRecursion4() throws Exception - public virtual void testRecursion4() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = true; - add("zoo zoo", "zoo", keepOrig); - add("zoo", "zoo zoo", keepOrig); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper13(this, map); - - assertAnalyzesTo(a, "zoo zoo $ zoo", new string[] {"zoo", "zoo", "zoo", "$", "zoo", "zoo", "zoo"}, new int[] {1, 0, 1, 1, 1, 0, 1}); - } - - private class AnalyzerAnonymousInnerClassHelper13 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper13(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testMultiwordOffsets() throws Exception - public virtual void testMultiwordOffsets() - { - b = new SynonymMap.Builder(true); - const bool keepOrig = true; - add("national hockey league", "nhl", keepOrig); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = b.build(); - SynonymMap map = b.build(); - Analyzer a = new AnalyzerAnonymousInnerClassHelper14(this, map); - - assertAnalyzesTo(a, "national hockey league", new string[] {"national", "nhl", "hockey", "league"}, new int[] {0, 0, 9, 16}, new int[] {8, 22, 15, 22}, new int[] {1, 0, 1, 1}); - } - - private class AnalyzerAnonymousInnerClassHelper14 : Analyzer - { - private readonly TestSynonymMapFilter outerInstance; - - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper14(TestSynonymMapFilter outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmpty() throws Exception - public virtual void testEmpty() - { - Tokenizer tokenizer = new MockTokenizer(new StringReader("aa bb")); - try - { - new SynonymFilter(tokenizer, (new SynonymMap.Builder(true)).build(), true); - fail("did not hit expected exception"); - } - catch (System.ArgumentException iae) - { - // expected - assertEquals("fst must be non-null", iae.Message); - } - } - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + public class TestSynonymMapFilter : BaseTokenStreamTestCase + { + + private SynonymMap.Builder b; + private Tokenizer tokensIn; + private SynonymFilter tokensOut; + private ICharTermAttribute termAtt; + private IPositionIncrementAttribute posIncrAtt; + private IPositionLengthAttribute posLenAtt; + private IOffsetAttribute offsetAtt; + + private void Add(string input, string output, bool keepOrig) + { + if (VERBOSE) + { + Console.WriteLine(" add input=" + input + " output=" + output + " keepOrig=" + keepOrig); + } + CharsRef inputCharsRef = new CharsRef(); + SynonymMap.Builder.Join(input.Split(new string[] { " +" }, StringSplitOptions.RemoveEmptyEntries), inputCharsRef); + + CharsRef outputCharsRef = new CharsRef(); + SynonymMap.Builder.Join(output.Split(new string[] { " +" }, StringSplitOptions.RemoveEmptyEntries), outputCharsRef); + + b.Add(inputCharsRef, outputCharsRef, keepOrig); + } + + private void AssertEquals(CharTermAttribute term, string expected) + { + assertEquals(expected.Length, term.Length); + char[] buffer = term.Buffer(); + for (int chIDX = 0; chIDX < expected.Length; chIDX++) + { + assertEquals(expected[chIDX], buffer[chIDX]); + } + } + + // For the output string: separate positions with a space, + // and separate multiple tokens at each position with a + // /. If a token should have end offset != the input + // token's end offset then add :X to it: + + // TODO: we should probably refactor this guy to use/take analyzer, + // the tests are a little messy + private void Verify(string input, string output) + { + if (VERBOSE) + { + Console.WriteLine("TEST: verify input=" + input + " expectedOutput=" + output); + } + + tokensIn.Reader = new StringReader(input); + tokensOut.Reset(); + string[] expected = output.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); + int expectedUpto = 0; + while (tokensOut.IncrementToken()) + { + + if (VERBOSE) + { + Console.WriteLine(" incr token=" + termAtt.ToString() + " posIncr=" + posIncrAtt.PositionIncrement + " startOff=" + offsetAtt.StartOffset() + " endOff=" + offsetAtt.EndOffset()); + } + + assertTrue(expectedUpto < expected.Length); + int startOffset = offsetAtt.StartOffset(); + int endOffset = offsetAtt.EndOffset(); + + string[] expectedAtPos = expected[expectedUpto++].Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); + for (int atPos = 0; atPos < expectedAtPos.Length; atPos++) + { + if (atPos > 0) + { + assertTrue(tokensOut.IncrementToken()); + if (VERBOSE) + { + Console.WriteLine(" incr token=" + termAtt.ToString() + " posIncr=" + posIncrAtt.PositionIncrement + " startOff=" + offsetAtt.StartOffset() + " endOff=" + offsetAtt.EndOffset()); + } + } + int colonIndex = expectedAtPos[atPos].IndexOf(':'); + int underbarIndex = expectedAtPos[atPos].IndexOf('_'); + string expectedToken; + int expectedEndOffset; + int expectedPosLen; + if (colonIndex != -1) + { + expectedToken = expectedAtPos[atPos].Substring(0, colonIndex); + if (underbarIndex != -1) + { + expectedEndOffset = int.Parse(expectedAtPos[atPos].Substring(1 + colonIndex, underbarIndex - (1 + colonIndex))); + expectedPosLen = int.Parse(expectedAtPos[atPos].Substring(1 + underbarIndex)); + } + else + { + expectedEndOffset = int.Parse(expectedAtPos[atPos].Substring(1 + colonIndex)); + expectedPosLen = 1; + } + } + else + { + expectedToken = expectedAtPos[atPos]; + expectedEndOffset = endOffset; + expectedPosLen = 1; + } + assertEquals(expectedToken, termAtt.ToString()); + assertEquals(atPos == 0 ? 1 : 0, posIncrAtt.PositionIncrement); + // start/end offset of all tokens at same pos should + // be the same: + assertEquals(startOffset, offsetAtt.StartOffset()); + assertEquals(expectedEndOffset, offsetAtt.EndOffset()); + assertEquals(expectedPosLen, posLenAtt.PositionLength); + } + } + tokensOut.End(); + tokensOut.Dispose(); + if (VERBOSE) + { + Console.WriteLine(" incr: END"); + } + assertEquals(expectedUpto, expected.Length); + } + + [Test] + public virtual void TestDontKeepOrig() + { + b = new SynonymMap.Builder(true); + Add("a b", "foo", false); + + SynonymMap map = b.Build(); + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, map); + + AssertAnalyzesTo(analyzer, "a b c", new string[] { "foo", "c" }, new int[] { 0, 4 }, new int[] { 3, 5 }, null, new int[] { 1, 1 }, new int[] { 1, 1 }, true); + CheckAnalysisConsistency(Random(), analyzer, false, "a b c"); + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false)); + } + } + + [Test] + public virtual void TestDoKeepOrig() + { + b = new SynonymMap.Builder(true); + Add("a b", "foo", true); + + SynonymMap map = b.Build(); + + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper2(this, map); + + AssertAnalyzesTo(analyzer, "a b c", new string[] { "a", "foo", "b", "c" }, new int[] { 0, 0, 2, 4 }, new int[] { 1, 3, 3, 5 }, null, new int[] { 1, 0, 1, 1 }, new int[] { 1, 2, 1, 1 }, true); + CheckAnalysisConsistency(Random(), analyzer, false, "a b c"); + } + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper2(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false)); + } + } + + [Test] + public virtual void TestBasic() + { + b = new SynonymMap.Builder(true); + Add("a", "foo", true); + Add("a b", "bar fee", true); + Add("b c", "dog collar", true); + Add("c d", "dog harness holder extras", true); + Add("m c e", "dog barks loudly", false); + Add("i j k", "feep", true); + + Add("e f", "foo bar", false); + Add("e f", "baz bee", false); + + Add("z", "boo", false); + Add("y", "bee", true); + + tokensIn = new MockTokenizer(new StringReader("a"), MockTokenizer.WHITESPACE, true); + tokensIn.Reset(); + assertTrue(tokensIn.IncrementToken()); + assertFalse(tokensIn.IncrementToken()); + tokensIn.End(); + tokensIn.Dispose(); + + tokensOut = new SynonymFilter(tokensIn, b.Build(), true); + termAtt = tokensOut.AddAttribute(); + posIncrAtt = tokensOut.AddAttribute(); + posLenAtt = tokensOut.AddAttribute(); + offsetAtt = tokensOut.AddAttribute(); + + Verify("a b c", "a/bar b/fee c"); + + // syn output extends beyond input tokens + Verify("x a b c d", "x a/bar b/fee c/dog d/harness holder extras"); + + Verify("a b a", "a/bar b/fee a/foo"); + + // outputs that add to one another: + Verify("c d c d", "c/dog d/harness c/holder/dog d/extras/harness holder extras"); + + // two outputs for same input + Verify("e f", "foo/baz bar/bee"); + + // verify multi-word / single-output offsets: + Verify("g i j k g", "g i/feep:7_3 j k g"); + + // mixed keepOrig true/false: + Verify("a m c e x", "a/foo dog barks loudly x"); + Verify("c d m c e x", "c/dog d/harness holder/dog extras/barks loudly x"); + assertTrue(tokensOut.CaptureCount > 0); + + // no captureStates when no syns matched + Verify("p q r s t", "p q r s t"); + assertEquals(0, tokensOut.CaptureCount); + + // no captureStates when only single-input syns, w/ no + // lookahead needed, matched + Verify("p q z y t", "p q boo y/bee t"); + assertEquals(0, tokensOut.CaptureCount); + } + + private string GetRandomString(char start, int alphabetSize, int length) + { + Debug.Assert(alphabetSize <= 26); + char[] s = new char[2 * length]; + for (int charIDX = 0; charIDX < length; charIDX++) + { + s[2 * charIDX] = (char)(start + Random().Next(alphabetSize)); + s[2 * charIDX + 1] = ' '; + } + return new string(s); + } + + protected class OneSyn + { + internal string @in; + internal IList @out; + internal bool keepOrig; + } + + protected virtual string SlowSynMatcher(string doc, IList syns, int maxOutputLength) + { + assertTrue(doc.Length % 2 == 0); + int numInputs = doc.Length / 2; + bool[] keepOrigs = new bool[numInputs]; + bool[] hasMatch = new bool[numInputs]; + Arrays.Fill(keepOrigs, false); + string[] outputs = new string[numInputs + maxOutputLength]; + OneSyn[] matches = new OneSyn[numInputs]; + foreach (OneSyn syn in syns) + { + int idx = -1; + while (true) + { + idx = doc.IndexOf(syn.@in, 1 + idx, StringComparison.Ordinal); + if (idx == -1) + { + break; + } + assertTrue(idx % 2 == 0); + int matchIDX = idx / 2; + assertTrue(syn.@in.Length % 2 == 1); + if (matches[matchIDX] == null) + { + matches[matchIDX] = syn; + } + else if (syn.@in.Length > matches[matchIDX].@in.Length) + { + // Greedy conflict resolution: longer match wins: + matches[matchIDX] = syn; + } + else + { + assertTrue(syn.@in.Length < matches[matchIDX].@in.Length); + } + } + } + + // Greedy conflict resolution: if syn matches a range of inputs, + // it prevents other syns from matching that range + for (int inputIDX = 0; inputIDX < numInputs; inputIDX++) + { + OneSyn match = matches[inputIDX]; + if (match != null) + { + int synInLength = (1 + match.@in.Length) / 2; + for (int nextInputIDX = inputIDX + 1; nextInputIDX < numInputs && nextInputIDX < (inputIDX + synInLength); nextInputIDX++) + { + matches[nextInputIDX] = null; + } + } + } + + // Fill overlapping outputs: + for (int inputIDX = 0; inputIDX < numInputs; inputIDX++) + { + OneSyn syn = matches[inputIDX]; + if (syn == null) + { + continue; + } + for (int idx = 0; idx < (1 + syn.@in.Length) / 2; idx++) + { + hasMatch[inputIDX + idx] = true; + keepOrigs[inputIDX + idx] |= syn.keepOrig; + } + foreach (string synOut in syn.@out) + { + string[] synOutputs = synOut.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); + assertEquals(synOutputs.Length, (1 + synOut.Length) / 2); + int matchEnd = inputIDX + synOutputs.Length; + int synUpto = 0; + for (int matchIDX = inputIDX; matchIDX < matchEnd; matchIDX++) + { + if (outputs[matchIDX] == null) + { + outputs[matchIDX] = synOutputs[synUpto++]; + } + else + { + outputs[matchIDX] = outputs[matchIDX] + "/" + synOutputs[synUpto++]; + } + int endOffset; + if (matchIDX < numInputs) + { + int posLen; + if (synOutputs.Length == 1) + { + // Add full endOffset + endOffset = (inputIDX * 2) + syn.@in.Length; + posLen = syn.keepOrig ? (1 + syn.@in.Length) / 2 : 1; + } + else + { + // Add endOffset matching input token's + endOffset = (matchIDX * 2) + 1; + posLen = 1; + } + outputs[matchIDX] = outputs[matchIDX] + ":" + endOffset + "_" + posLen; + } + } + } + } + + StringBuilder sb = new StringBuilder(); + string[] inputTokens = doc.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); + int limit = inputTokens.Length + maxOutputLength; + for (int inputIDX = 0; inputIDX < limit; inputIDX++) + { + bool posHasOutput = false; + if (inputIDX >= numInputs && outputs[inputIDX] == null) + { + break; + } + if (inputIDX < numInputs && (!hasMatch[inputIDX] || keepOrigs[inputIDX])) + { + assertTrue(inputTokens[inputIDX].Length != 0); + sb.Append(inputTokens[inputIDX]); + posHasOutput = true; + } + + if (outputs[inputIDX] != null) + { + if (posHasOutput) + { + sb.Append('/'); + } + sb.Append(outputs[inputIDX]); + } + else if (!posHasOutput) + { + continue; + } + if (inputIDX < limit - 1) + { + sb.Append(' '); + } + } + + return sb.ToString(); + } + + [Test] + public virtual void TestRandom() + { + + int alphabetSize = TestUtil.NextInt(Random(), 2, 7); + + int docLen = AtLeast(3000); + //final int docLen = 50; + + string document = GetRandomString('a', alphabetSize, docLen); + + if (VERBOSE) + { + Console.WriteLine("TEST: doc=" + document); + } + + int numSyn = AtLeast(5); + //final int numSyn = 2; + + IDictionary synMap = new Dictionary(); + IList syns = new List(); + bool dedup = Random().nextBoolean(); + if (VERBOSE) + { + Console.WriteLine(" dedup=" + dedup); + } + b = new SynonymMap.Builder(dedup); + for (int synIDX = 0; synIDX < numSyn; synIDX++) + { + string synIn = GetRandomString('a', alphabetSize, TestUtil.NextInt(Random(), 1, 5)).Trim(); + OneSyn s = synMap.ContainsKey(synIn) ? synMap[synIn] : null; + if (s == null) + { + s = new OneSyn(); + s.@in = synIn; + syns.Add(s); + s.@out = new List(); + synMap[synIn] = s; + s.keepOrig = Random().nextBoolean(); + } + string synOut = GetRandomString('0', 10, TestUtil.NextInt(Random(), 1, 5)).Trim(); + s.@out.Add(synOut); + Add(synIn, synOut, s.keepOrig); + if (VERBOSE) + { + Console.WriteLine(" syns[" + synIDX + "] = " + s.@in + " -> " + s.@out + " keepOrig=" + s.keepOrig); + } + } + + tokensIn = new MockTokenizer(new StringReader("a"), MockTokenizer.WHITESPACE, true); + tokensIn.Reset(); + assertTrue(tokensIn.IncrementToken()); + assertFalse(tokensIn.IncrementToken()); + tokensIn.End(); + tokensIn.Dispose(); + + tokensOut = new SynonymFilter(tokensIn, b.Build(), true); + termAtt = tokensOut.AddAttribute(); + posIncrAtt = tokensOut.AddAttribute(); + posLenAtt = tokensOut.AddAttribute(); + offsetAtt = tokensOut.AddAttribute(); + + if (dedup) + { + PruneDups(syns); + } + + string expected = SlowSynMatcher(document, syns, 5); + + if (VERBOSE) + { + Console.WriteLine("TEST: expected=" + expected); + } + + Verify(document, expected); + } + + private void PruneDups(IList syns) + { + ISet seen = new HashSet(); + foreach (OneSyn syn in syns) + { + int idx = 0; + while (idx < syn.@out.Count) + { + string @out = syn.@out[idx]; + if (!seen.Contains(@out)) + { + seen.Add(@out); + idx++; + } + else + { + syn.@out.RemoveAt(idx); + } + } + seen.Clear(); + } + } + + private string RandomNonEmptyString() + { + while (true) + { + string s = TestUtil.RandomUnicodeString(Random()).Trim(); + if (s.Length != 0 && s.IndexOf('\u0000') == -1) + { + return s; + } + } + } + + /// + /// simple random test, doesn't verify correctness. + /// does verify it doesnt throw exceptions, or that the stream doesn't misbehave + /// + [Test] + public virtual void TestRandom2() + { + int numIters = AtLeast(3); + for (int i = 0; i < numIters; i++) + { + b = new SynonymMap.Builder(Random().nextBoolean()); + int numEntries = AtLeast(10); + for (int j = 0; j < numEntries; j++) + { + Add(RandomNonEmptyString(), RandomNonEmptyString(), Random().nextBoolean()); + } + SynonymMap map = b.Build(); + bool ignoreCase = Random().nextBoolean(); + + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper100(this, map, ignoreCase); + + CheckRandomData(Random(), analyzer, 100); + } + } + + private class AnalyzerAnonymousInnerClassHelper100 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + private bool ignoreCase; + + public AnalyzerAnonymousInnerClassHelper100(TestSynonymMapFilter outerInstance, SynonymMap map, bool ignoreCase) + { + this.outerInstance = outerInstance; + this.map = map; + this.ignoreCase = ignoreCase; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, ignoreCase)); + } + } + + // NOTE: this is an invalid test... SynFilter today can't + // properly consume a graph... we can re-enable this once + // we fix that... + /* + // Adds MockGraphTokenFilter before SynFilter: + public void TestRandom2GraphBefore() throws Exception { + final int numIters = AtLeast(10); + Random random = random(); + for (int i = 0; i < numIters; i++) { + b = new SynonymMap.Builder(random.nextBoolean()); + final int numEntries = AtLeast(10); + for (int j = 0; j < numEntries; j++) { + add(randomNonEmptyString(), randomNonEmptyString(), random.nextBoolean()); + } + final SynonymMap map = b.Build(); + final boolean ignoreCase = random.nextBoolean(); + + final Analyzer analyzer = new Analyzer() { + @Override + protected TokenStreamComponents createComponents(String fieldName, Reader reader) { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); + TokenStream graph = new MockGraphTokenFilter(random(), tokenizer); + return new TokenStreamComponents(tokenizer, new SynonymFilter(graph, map, ignoreCase)); + } + }; + + checkRandomData(random, analyzer, 1000*RANDOM_MULTIPLIER); + } + } + */ + + // Adds MockGraphTokenFilter after SynFilter: + [Test] + public virtual void TestRandom2GraphAfter() + { + int numIters = AtLeast(3); + Random random = Random(); + for (int i = 0; i < numIters; i++) + { + b = new SynonymMap.Builder(random.nextBoolean()); + int numEntries = AtLeast(10); + for (int j = 0; j < numEntries; j++) + { + Add(RandomNonEmptyString(), RandomNonEmptyString(), random.nextBoolean()); + } + SynonymMap map = b.Build(); + bool ignoreCase = random.nextBoolean(); + + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper101(this, map, ignoreCase); + + CheckRandomData(random, analyzer, 100); + } + } + + private class AnalyzerAnonymousInnerClassHelper101 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + private bool ignoreCase; + + public AnalyzerAnonymousInnerClassHelper101(TestSynonymMapFilter outerInstance, SynonymMap map, bool ignoreCase) + { + this.outerInstance = outerInstance; + this.map = map; + this.ignoreCase = ignoreCase; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); + TokenStream syns = new SynonymFilter(tokenizer, map, ignoreCase); + TokenStream graph = new MockGraphTokenFilter(Random(), syns); + return new TokenStreamComponents(tokenizer, graph); + } + } + + [Test] + public virtual void TestEmptyTerm() + { + Random random = Random(); + int numIters = AtLeast(10); + for (int i = 0; i < numIters; i++) + { + b = new SynonymMap.Builder(random.nextBoolean()); + int numEntries = AtLeast(10); + for (int j = 0; j < numEntries; j++) + { + Add(RandomNonEmptyString(), RandomNonEmptyString(), random.nextBoolean()); + } + SynonymMap map = b.Build(); + bool ignoreCase = random.nextBoolean(); + + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper3(this, map, ignoreCase); + + CheckAnalysisConsistency(random, analyzer, random.nextBoolean(), ""); + } + } + + private class AnalyzerAnonymousInnerClassHelper3 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + private bool ignoreCase; + + public AnalyzerAnonymousInnerClassHelper3(TestSynonymMapFilter outerInstance, SynonymMap map, bool ignoreCase) + { + this.outerInstance = outerInstance; + this.map = map; + this.ignoreCase = ignoreCase; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new KeywordTokenizer(reader); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, ignoreCase)); + } + } + + /// + /// simple random test like testRandom2, but for larger docs + /// + [Test] + public virtual void TestRandomHuge() + { + Random random = Random(); + int numIters = AtLeast(3); + for (int i = 0; i < numIters; i++) + { + b = new SynonymMap.Builder(random.nextBoolean()); + int numEntries = AtLeast(10); + if (VERBOSE) + { + Console.WriteLine("TEST: iter=" + i + " numEntries=" + numEntries); + } + for (int j = 0; j < numEntries; j++) + { + Add(RandomNonEmptyString(), RandomNonEmptyString(), random.nextBoolean()); + } + SynonymMap map = b.Build(); + bool ignoreCase = random.nextBoolean(); + + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper4(this, map, ignoreCase); + + CheckRandomData(random, analyzer, 100, 1024); + } + } + + private class AnalyzerAnonymousInnerClassHelper4 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + private bool ignoreCase; + + public AnalyzerAnonymousInnerClassHelper4(TestSynonymMapFilter outerInstance, SynonymMap map, bool ignoreCase) + { + this.outerInstance = outerInstance; + this.map = map; + this.ignoreCase = ignoreCase; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, ignoreCase)); + } + } + + // LUCENE-3375 + [Test] + public virtual void TestVanishingTerms() + { + string testFile = "aaa => aaaa1 aaaa2 aaaa3\n" + "bbb => bbbb1 bbbb2\n"; + + SolrSynonymParser parser = new SolrSynonymParser(true, true, new MockAnalyzer(Random())); + parser.Parse(new StringReader(testFile)); + SynonymMap map = parser.Build(); + + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper5(this, map); + + // where did my pot go?! + AssertAnalyzesTo(analyzer, "xyzzy bbb pot of gold", new string[] { "xyzzy", "bbbb1", "pot", "bbbb2", "of", "gold" }); + + // this one nukes 'pot' and 'of' + // xyzzy aaa pot of gold -> xyzzy aaaa1 aaaa2 aaaa3 gold + AssertAnalyzesTo(analyzer, "xyzzy aaa pot of gold", new string[] { "xyzzy", "aaaa1", "pot", "aaaa2", "of", "aaaa3", "gold" }); + } + + private class AnalyzerAnonymousInnerClassHelper5 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper5(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, true); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestBasic2() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = false; + Add("aaa", "aaaa1 aaaa2 aaaa3", keepOrig); + Add("bbb", "bbbb1 bbbb2", keepOrig); + tokensIn = new MockTokenizer(new StringReader("a"), MockTokenizer.WHITESPACE, true); + tokensIn.Reset(); + assertTrue(tokensIn.IncrementToken()); + assertFalse(tokensIn.IncrementToken()); + tokensIn.End(); + tokensIn.Dispose(); + + tokensOut = new SynonymFilter(tokensIn, b.Build(), true); + termAtt = tokensOut.AddAttribute(); + posIncrAtt = tokensOut.AddAttribute(); + posLenAtt = tokensOut.AddAttribute(); + offsetAtt = tokensOut.AddAttribute(); + + if (keepOrig) + { + Verify("xyzzy bbb pot of gold", "xyzzy bbb/bbbb1 pot/bbbb2 of gold"); + Verify("xyzzy aaa pot of gold", "xyzzy aaa/aaaa1 pot/aaaa2 of/aaaa3 gold"); + } + else + { + Verify("xyzzy bbb pot of gold", "xyzzy bbbb1 pot/bbbb2 of gold"); + Verify("xyzzy aaa pot of gold", "xyzzy aaaa1 pot/aaaa2 of/aaaa3 gold"); + } + } + + [Test] + public virtual void TestMatching() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = false; + Add("a b", "ab", keepOrig); + Add("a c", "ac", keepOrig); + Add("a", "aa", keepOrig); + Add("b", "bb", keepOrig); + Add("z x c v", "zxcv", keepOrig); + Add("x c", "xc", keepOrig); + SynonymMap map = b.Build(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper6(this, map); + + CheckOneTerm(a, "$", "$"); + CheckOneTerm(a, "a", "aa"); + CheckOneTerm(a, "b", "bb"); + + AssertAnalyzesTo(a, "a $", new string[] { "aa", "$" }, new int[] { 1, 1 }); + + AssertAnalyzesTo(a, "$ a", new string[] { "$", "aa" }, new int[] { 1, 1 }); + + AssertAnalyzesTo(a, "a a", new string[] { "aa", "aa" }, new int[] { 1, 1 }); + + AssertAnalyzesTo(a, "z x c v", new string[] { "zxcv" }, new int[] { 1 }); + + AssertAnalyzesTo(a, "z x c $", new string[] { "z", "xc", "$" }, new int[] { 1, 1, 1 }); + } + + private class AnalyzerAnonymousInnerClassHelper6 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper6(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestRepeatsOff() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = false; + Add("a b", "ab", keepOrig); + Add("a b", "ab", keepOrig); + Add("a b", "ab", keepOrig); + SynonymMap map = b.Build(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper7(this, map); + + AssertAnalyzesTo(a, "a b", new string[] { "ab" }, new int[] { 1 }); + } + + private class AnalyzerAnonymousInnerClassHelper7 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper7(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestRepeatsOn() + { + b = new SynonymMap.Builder(false); + const bool keepOrig = false; + Add("a b", "ab", keepOrig); + Add("a b", "ab", keepOrig); + Add("a b", "ab", keepOrig); + SynonymMap map = b.Build(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper8(this, map); + + AssertAnalyzesTo(a, "a b", new string[] { "ab", "ab", "ab" }, new int[] { 1, 0, 0 }); + } + + private class AnalyzerAnonymousInnerClassHelper8 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper8(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestRecursion() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = false; + Add("zoo", "zoo", keepOrig); + SynonymMap map = b.Build(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper9(this, map); + + AssertAnalyzesTo(a, "zoo zoo $ zoo", new string[] { "zoo", "zoo", "$", "zoo" }, new int[] { 1, 1, 1, 1 }); + } + + private class AnalyzerAnonymousInnerClassHelper9 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper9(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestRecursion2() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = false; + Add("zoo", "zoo", keepOrig); + Add("zoo", "zoo zoo", keepOrig); + SynonymMap map = b.Build(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper10(this, map); + + // verify("zoo zoo $ zoo", "zoo/zoo zoo/zoo/zoo $/zoo zoo/zoo zoo"); + AssertAnalyzesTo(a, "zoo zoo $ zoo", new string[] { "zoo", "zoo", "zoo", "zoo", "zoo", "$", "zoo", "zoo", "zoo", "zoo" }, new int[] { 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 }); + } + + private class AnalyzerAnonymousInnerClassHelper10 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper10(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestOutputHangsOffEnd() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = false; + // b hangs off the end (no input token under it): + Add("a", "a b", keepOrig); + tokensIn = new MockTokenizer(new StringReader("a"), MockTokenizer.WHITESPACE, true); + tokensIn.Reset(); + assertTrue(tokensIn.IncrementToken()); + assertFalse(tokensIn.IncrementToken()); + tokensIn.End(); + tokensIn.Dispose(); + + tokensOut = new SynonymFilter(tokensIn, b.Build(), true); + termAtt = tokensOut.AddAttribute(); + posIncrAtt = tokensOut.AddAttribute(); + offsetAtt = tokensOut.AddAttribute(); + posLenAtt = tokensOut.AddAttribute(); + + // Make sure endOffset inherits from previous input token: + Verify("a", "a b:1"); + } + + [Test] + public virtual void TestIncludeOrig() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = true; + Add("a b", "ab", keepOrig); + Add("a c", "ac", keepOrig); + Add("a", "aa", keepOrig); + Add("b", "bb", keepOrig); + Add("z x c v", "zxcv", keepOrig); + Add("x c", "xc", keepOrig); + SynonymMap map = b.Build(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper11(this, map); + + AssertAnalyzesTo(a, "$", new string[] { "$" }, new int[] { 1 }); + AssertAnalyzesTo(a, "a", new string[] { "a", "aa" }, new int[] { 1, 0 }); + AssertAnalyzesTo(a, "a", new string[] { "a", "aa" }, new int[] { 1, 0 }); + AssertAnalyzesTo(a, "$ a", new string[] { "$", "a", "aa" }, new int[] { 1, 1, 0 }); + AssertAnalyzesTo(a, "a $", new string[] { "a", "aa", "$" }, new int[] { 1, 0, 1 }); + AssertAnalyzesTo(a, "$ a !", new string[] { "$", "a", "aa", "!" }, new int[] { 1, 1, 0, 1 }); + AssertAnalyzesTo(a, "a a", new string[] { "a", "aa", "a", "aa" }, new int[] { 1, 0, 1, 0 }); + AssertAnalyzesTo(a, "b", new string[] { "b", "bb" }, new int[] { 1, 0 }); + AssertAnalyzesTo(a, "z x c v", new string[] { "z", "zxcv", "x", "c", "v" }, new int[] { 1, 0, 1, 1, 1 }); + AssertAnalyzesTo(a, "z x c $", new string[] { "z", "x", "xc", "c", "$" }, new int[] { 1, 1, 0, 1, 1 }); + } + + private class AnalyzerAnonymousInnerClassHelper11 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper11(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestRecursion3() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = true; + Add("zoo zoo", "zoo", keepOrig); + SynonymMap map = b.Build(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper12(this, map); + + AssertAnalyzesTo(a, "zoo zoo $ zoo", new string[] { "zoo", "zoo", "zoo", "$", "zoo" }, new int[] { 1, 0, 1, 1, 1 }); + } + + private class AnalyzerAnonymousInnerClassHelper12 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper12(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestRecursion4() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = true; + Add("zoo zoo", "zoo", keepOrig); + Add("zoo", "zoo zoo", keepOrig); + SynonymMap map = b.Build(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper13(this, map); + + AssertAnalyzesTo(a, "zoo zoo $ zoo", new string[] { "zoo", "zoo", "zoo", "$", "zoo", "zoo", "zoo" }, new int[] { 1, 0, 1, 1, 1, 0, 1 }); + } + + private class AnalyzerAnonymousInnerClassHelper13 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper13(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestMultiwordOffsets() + { + b = new SynonymMap.Builder(true); + const bool keepOrig = true; + Add("national hockey league", "nhl", keepOrig); + SynonymMap map = b.Build(); + Analyzer a = new AnalyzerAnonymousInnerClassHelper14(this, map); + + AssertAnalyzesTo(a, "national hockey league", new string[] { "national", "nhl", "hockey", "league" }, new int[] { 0, 0, 9, 16 }, new int[] { 8, 22, 15, 22 }, new int[] { 1, 0, 1, 1 }); + } + + private class AnalyzerAnonymousInnerClassHelper14 : Analyzer + { + private readonly TestSynonymMapFilter outerInstance; + + private SynonymMap map; + + public AnalyzerAnonymousInnerClassHelper14(TestSynonymMapFilter outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true)); + } + } + + [Test] + public virtual void TestEmpty() + { + Tokenizer tokenizer = new MockTokenizer(new StringReader("aa bb")); + try + { + new SynonymFilter(tokenizer, (new SynonymMap.Builder(true)).Build(), true); + fail("did not hit expected exception"); + } + catch (System.ArgumentException iae) + { + // expected + assertEquals("fst must be non-null", iae.Message); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestWordnetSynonymParser.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestWordnetSynonymParser.cs index c68f97d42a..7a030f2bca 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestWordnetSynonymParser.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestWordnetSynonymParser.cs @@ -1,70 +1,67 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +using NUnit.Framework; +using System.IO; -namespace org.apache.lucene.analysis.synonym +namespace Lucene.Net.Analysis.Synonym { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + public class TestWordnetSynonymParser : BaseTokenStreamTestCase + { - public class TestWordnetSynonymParser : BaseTokenStreamTestCase - { + internal string synonymsFile = "s(100000001,1,'woods',n,1,0).\n" + "s(100000001,2,'wood',n,1,0).\n" + "s(100000001,3,'forest',n,1,0).\n" + "s(100000002,1,'wolfish',n,1,0).\n" + "s(100000002,2,'ravenous',n,1,0).\n" + "s(100000003,1,'king',n,1,1).\n" + "s(100000003,2,'baron',n,1,1).\n" + "s(100000004,1,'king''s evil',n,1,1).\n" + "s(100000004,2,'king''s meany',n,1,1).\n"; - internal string synonymsFile = "s(100000001,1,'woods',n,1,0).\n" + "s(100000001,2,'wood',n,1,0).\n" + "s(100000001,3,'forest',n,1,0).\n" + "s(100000002,1,'wolfish',n,1,0).\n" + "s(100000002,2,'ravenous',n,1,0).\n" + "s(100000003,1,'king',n,1,1).\n" + "s(100000003,2,'baron',n,1,1).\n" + "s(100000004,1,'king''s evil',n,1,1).\n" + "s(100000004,2,'king''s meany',n,1,1).\n"; + [Test] + public virtual void TestSynonyms() + { + WordnetSynonymParser parser = new WordnetSynonymParser(true, true, new MockAnalyzer(Random())); + parser.Parse(new StringReader(synonymsFile)); + SynonymMap map = parser.Build(); -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testSynonyms() throws Exception - public virtual void testSynonyms() - { - WordnetSynonymParser parser = new WordnetSynonymParser(true, true, new MockAnalyzer(random())); - parser.parse(new StringReader(synonymsFile)); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final SynonymMap map = parser.build(); - SynonymMap map = parser.build(); + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, map); - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, map); + /* all expansions */ + AssertAnalyzesTo(analyzer, "Lost in the woods", new string[] { "Lost", "in", "the", "woods", "wood", "forest" }, new int[] { 0, 5, 8, 12, 12, 12 }, new int[] { 4, 7, 11, 17, 17, 17 }, new int[] { 1, 1, 1, 1, 0, 0 }); - /* all expansions */ - assertAnalyzesTo(analyzer, "Lost in the woods", new string[] {"Lost", "in", "the", "woods", "wood", "forest"}, new int[] {0, 5, 8, 12, 12, 12}, new int[] {4, 7, 11, 17, 17, 17}, new int[] {1, 1, 1, 1, 0, 0}); + /* single quote */ + AssertAnalyzesTo(analyzer, "king", new string[] { "king", "baron" }); - /* single quote */ - assertAnalyzesTo(analyzer, "king", new string[] {"king", "baron"}); + /* multi words */ + AssertAnalyzesTo(analyzer, "king's evil", new string[] { "king's", "king's", "evil", "meany" }); + } - /* multi words */ - assertAnalyzesTo(analyzer, "king's evil", new string[] {"king's", "king's", "evil", "meany"}); - } + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestWordnetSynonymParser outerInstance; - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestWordnetSynonymParser outerInstance; + private SynonymMap map; - private SynonymMap map; - - public AnalyzerAnonymousInnerClassHelper(TestWordnetSynonymParser outerInstance, SynonymMap map) - { - this.outerInstance = outerInstance; - this.map = map; - } - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false)); - } - } - } + public AnalyzerAnonymousInnerClassHelper(TestWordnetSynonymParser outerInstance, SynonymMap map) + { + this.outerInstance = outerInstance; + this.map = map; + } + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false)); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/synonyms-wordnet.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/synonyms-wordnet.txt new file mode 100644 index 0000000000..6ecd06bdbd --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/synonyms-wordnet.txt @@ -0,0 +1,3 @@ +s(100000001,1,'second',n,1,0). +s(100000001,2,'2nd',n,1,0). +s(100000001,3,'two',n,1,0). diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/synonyms.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/synonyms.txt new file mode 100644 index 0000000000..b0e31cb7ec --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/synonyms.txt @@ -0,0 +1,31 @@ +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#----------------------------------------------------------------------- +#some test synonym mappings unlikely to appear in real input text +aaa => aaaa +bbb => bbbb1 bbbb2 +ccc => cccc1,cccc2 +a\=>a => b\=>b +a\,a => b\,b +fooaaa,baraaa,bazaaa + +# Some synonym groups specific to this example +GB,gib,gigabyte,gigabytes +MB,mib,megabyte,megabytes +Television, Televisions, TV, TVs +#notice we use "gib" instead of "GiB" so any WordDelimiterFilter coming +#after us won't split it into two words. + +# Synonym mappings can be used for spelling correction too +pixima => pixma + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 2009d7c428..8fe4be3add 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -124,6 +124,13 @@ Code + + + + + + + @@ -228,6 +235,10 @@ + + + + D+_0>L-9Lvx9nzGU(A-t1t&B13u|@-t%|k83&_sSG$$)Y&B%qz z&3q055WGU%DUYPIWQFypB?p61p#*=S$ug5>mXVII3=ak9z7tD)LsI;v(@ZDOE6VSP zDtGmZ6}&`W&Lty6NP++}3F%S;hxW43i{l+a-smVqEHP-Jr_3Xru~M&zP2%$xK`-(s zAT;SQL|qK{%@8%Sq+li=1NSY-WmgkiFrz&pHcLmb{2!K>;;qdFhMnlCic9p6Z-9Xl zHRe%(MC|FYE7uWSHW$Mc02RmmVnTZzvN_^@WWJfy40oIH&CM?R=B!tVE|W?;TI^gw z`sN51Z_XaKHdjC4og+W{B$UXC8tOw1U)(SFfGHvgl(z1)C2?;neKW*Ruq}bLSTsjV zHfJq=I-kd8y3bs)|HQ#%5&LG@-Mq^HXxr}U+DTFnp8;E8g``9xs|w^Ds`TDuj$6o0 zkRobTzY*)iZr`?CIN18ta{ybA2I(MxRr7H=E96*>2-+i; z`!WHEEWs4==p2&WqOoKnZB{CYm4&;A_Gc_<7M)6fenpmCu$eNG0IElCz)y0S*-m!$ zl9gvc&D%|1v90B0tKd$G$#QjtO2RlQEIJ22US389=I2}}?ml|RhfDt$epsF(i6$>v zAu*(6t((|R+&g`5VS+=V;CF`*@;93$4!Bfm$&+mJ67^zEbMlyBvjwN-9xgQ#DK_(j zftsuH$woA%)rMa!LBQ`W*SPi`q1OM&XIF*Dn0PkK2xc4@r$W| zN0r)!3lnH-1G$WQTBX5L?woVQ=Rf~EGP=ZDN_bMW5o(ax6Dg5&M}4 zMb*DtvV-gwpXom&07kkH)e|KSyqhtQdaAtt?2ZsdF~j4iUSy<$+P%Unn+DNJ-xN@Y zjsls%^Kl?~F*mLtFs`Xg6X0%VXIy|9K^2BU`j{5S*IgIXM7{u;Cf9P4OZ8k{hsOsL z4SWYjI0jSh)7vj7UOV>|!|hlEw`v|Bz>kiwOdoI=YjXSilE~^RB?v*>e#0Sg0DqJi zl)%r06z~2kgfomHS<~4cJ^B*_(@zpr{5OSL$zRH3D?gzg{0oBlZz>PyQ)jI)ilww{ zR8ea}fI=&vKhv8f-r!L4%#F1KICZA`1y<2;kmqQ6`*&E)d{aAvH*N-v0uYwVh?Aqw z7z5yklI$i!Zc6{z%r0j$yjPo%PN=VJyYlbNq%e}`)J|T~QQb(tqSXeUFV(lZFZ@m}y={BV&RKrv{eDAot3?~4ZmrTtQU}p?% z-Sv(yB7c`EZ53~us9&wE&7mf^p4^OSYy8$SIPHAgQq|t+XufrYV;Q@V+pki46uNh> z(oLmgD%}j6Hgkno8*A6p=8s#r+SWTH`f^$h#oM6DpET>Q;>1DE?t4fgRfIe5_QK;w8TIGw zn0+t9<2b<_=T@+R-R*>Av} zj_NJd0$mE7?~U^{f&W$vF*jE`B$%4x2S)Yu(^7zA??_DKt#DVDY!^`BwPuV8!C#<_ zNTN7iK((rx)P3CL783vfen5f0esXc(xA!;iJ*3~_bJ~YZDNaDU&2e(6pH@{N*5dWX zt2vYpHqY11-z@A}w+%9>i<-`n3W6DG2_Lzgb# z61UM?rY^xJ`(MXMksO(!2p!hOCGTADGeT~C%CszBf~Z%yK!u_}w%UQ>U{Ht01s9B< zbZmW;|M}-t3f{f+)z&#WmjpnhmB6e@zt^R*jvTx1Va_^*Vs!vLK{)B;PcW%i%Z=Zg z;@{4VBu1skQ%Y=Xq5E>`GS@=eBlXwjl(jnqp!xEP`)-ZI9wkC$r9LK@T;35fy5Ta= z;zYDQOw2SH${H^mZWX)@Q>0m91Y!r)=Azv1DmLJy2OG}n^R*Wa=Xw>PM$w|be*PG#*}F1erP?80|P z3Iw&E;93TA{GN}mF4dli;pcF-`wxpFz#O|oAz^uWUf{EN*u=IOvguCc-CIK6Fn!zxKvjSddgv69= zu*v2Bq;Z)T3(TtM1(NFi?X~;Zi1DN&OBF|`vUr7m{#}SGqAoDGQ8-TCKvmZ4m8)qg z9lixe60N%ixqvyP+ueZbZgP|plRx3`a633`NR^DawX*UEfSpM@&jxe`h~8)d+&N!i zG@8kX>L*;#Uok>QkYjC*49AZI_$m7Utq#6hF70rGn)n!O3Ev3ti%CXAEnOh)IMS7p zH_DAhqprB*Pl!8IGTdQRK<8#M2H?%DCN^A+;+=LJcPux*BiuWVjYp+LQV_F3GHnN} zt2>J5KmRPy-X`A<^+4cG!>=ZG7_v*SyJ>0W2~aOoV1i_f2DZ}VEciR=PV=4Wqu^9> zmskP0J(Fa@NoP?og_)F07xY4WOzru&kEW7Gg)-BHc7+Uh%qs8!HM4UcC}#x{g`qV<{F=DOq4SU~6d~-KfX)!9 zDwbRedgU@&_M&aim=U7C(s%}42ZmTm*!^gbgAj=_s1 z1^{S0ExnuD(iBLfG^!@mX||FwejxN0+DE|28_@+;1u`W-L3A#8!#f#e%fSwCZo7tM53o#URKG0hC+=0yPw2+*jKP!LJ7ImDD`kQEl} z@9hvjs--kpD%ZJSKg>)g0I#~BQcMOmOu63`M%5e#rBX?0x$zET?sX=LIWR0S_zQef zdGlI9^CVz%`-;yyBx9YIpV?+)iNum5dMAJqwa=X@?j}z+1GWyfq`-O|7T4Onh%J-6 z>eg)Qg6@*Bar{9bAJv+<^ro5l#LX^45K`@B-*vc!#aKQ+uP)SrIxlsY4S6Bih^&e90Xoczu>TJSe1Qb2!#u$QG^>Mw9sLKua!KPq~_ z4>+A+d9k8hy7dH5uSBXpqVc&m7hM-$MAKlmv(#TyR{V=UOCTEHtzg)V2S77&i%t#S zbA0VZuY$_Mg9HMLJjN(Ei=f)7!krcXPA404(3S-MdjVvwG2}0-3?r`?R--LAw&B~$ z-?^wY`BRTjNwKm5jLC(DE_gLr0o9{=Jsha13Xy*f1;akv}dwur4!(& zQ2&FPK(1>^YAD+By;*okz5{=!zZa)cced`D%<3Z>=5>pG_k7zb)AvMcR>>I{wdm

    # zdCRwE*M}TBfAI1OqC-lm$19|3Huov(w6{;KrPzB4TlUmtP0POvhD#!5s|@P5+sJA^ z#nOlD1^IVdC`#SOeGA)X@OTfG-6p`{#*yF9#x!zF62XhkB)W`JoC^d7`{{Z_z)cGH zqr||F+=TFU!pUW?^v^%;=+5-dzmd!bawxQkG(L~FvPHiIK#2zfS#1oTbxdw~36jer zQ>`kHy_Eq{__@&zv~;E~Y)5J;!i~Plv1{B-RW;z6ntR z_tSkOx@8c1Yjs=(n(K*yLP&vJL=9 zOkU#64UgVGAa+!>)Txt8}!e#-FqjD85x7`%eUT$;M!ig{nk%zo8qASC<5D zmTLeQjHu*M-)`D61OaU9RA90ely}K_n~?U?RK>Lhvucx3Ok~s7mt~oW#3b(-YTQ2} z(B}w}PN@AJndLrcq+Uo;$z^HPA$D?v@t1H}Aq&k8DL$2xBO!a_Hg)~OPe702B`M8Q zdX72hIyz;wHS{UV{YyBCpo2@SdOzD3S7!YMQjXyS1dvE^iCOxw?VUq#E**2ac8^Kv zVDr~833&8D`#bJ)HiMS)pk@UOxWsqo`75dB4XHz0fh{w-+hK^gq#vjR_;~{QPSj&Y z?xAR|;3V{NHXP57P)R#X4i_TUNuo&Eiwk;Ij9|J{rk5K=x6$%%UG74qvffLL z*%349r`zuGGXTacRFdhfc$nDSOLb&)XPmbG+hdE6;vn#Ai-m*VV%@?v^fqliPb%BL z=b*hJd`B3L$|1o|GgY3_x^i|C!wTrj#0)&jKmY8-+`tz|Vl)CCRa>!PO)j*|erKgm zLCnprfNKG~Bn}gPxlnRvAsj{v);G-6$n%J1)_wLL5S3#1tU49L-xDd8*`UnNhLt|^ zb+j4qf|DC}1W+j8k7Tj7#4DyG^p3<3`>0EbI?c+F-Z#LYpZAJf6f+Mg>oIwbcZoNb z&j2q7S40>AuRNsXCZs=kV*EiM1BM7hNHxKXc*9kaqRo)8Zw%-h@=Z5aY87#vod!NJ>=h zLR&Q-6DEkm>z6Kn2zrw@|mRZ9{aPqx0Sc z$ks0by1S(B@}fR9e3Gk7sxQFt?Iw0Xa?z_ot^p9lW=ZB7_hO<(d+bEDf$PE5NEd}_ z;&d30pF}XW6KC~$>esz?&I(GweSxcwfQrOQ;+EGzt+6nF2}SuQ*67XT9Yx3utDwXP znV7(q2k2qz;4bkd&sBhuO0<%gCPhB?}rHaPrCN17uqSa&|UswrL7K)&%{td|h8J3sI zEj9KhRe|iUgbKX11YM4TKD#v!z zL1R{lL4lqONutOU9cy+z0t!kjx76Dzmx*eU3r1yDnq1wfy?9MB`U-lkU-^GBq`Cqo z2tgg!++O*u0@AP! zW``r=Gpkgu@HU04saeGmJt5o^{8Cd#z)_h*s|v3+LDlzBAbTTZND{qBis3h)3pxRy z5wd2lV!lCeq!e>dnv<)B_SQf3D%YMJD6 zHZCNuYDk)pa~3rSVUa2m^V#$HmHG<&UQ=^a3g%er?w2?#lj>RuE|K`&ousk~SB5Iz zVB!j-&z8GLQ*PZQeM_i7a*8I}5s6{#SembB!j6$w^MGi`Zvf2&r`}g`$$ZSCVNocV zUU3}v4{Ar(ukJ9{GLy!c6f0pFKd`leJ=z85wr0o_+^yscQ=hsOz=Mg`(eiD<&<$p_ zp5{_3dqP!QA$di81%|l-=&=OA_|%lWC-RHM_~aXQ>bcV-;rS?lXLy?KV^pp&G_wLu zC8#6OdV^7jjsn?#%C84`>(;wV9046aU@mrDV&c^SF#{fQlS`I)K~RXg5`)C2h%Jpw zGFJr-DrHGeeERkCK@k$UciD@Gn5*;a3J0x}QOjT_Uchyj8Y4itweVFRLyC_T28$ zoU-*xx?js9+SFY zeag;|PHDS5Z^`Qfb>B5>J4W-@DeEn?mUu6R9Yl`r#;N7ea%Z$N+! zPl;y7)D?1z#<({B0_@xyNX^Ujdss`>9SN{wuG&~q>Qj0UJm-$%Nym<-3`E~&S~H$& zF6N+DU;k6-?C_Aml5?Nnhx#M+Deuz3!hmoXK=+hB^;lw+2M$|~ySyeiPJ9BO49C>T z77yu?IAwA@ZI)t!d>EIXYtsYxiLLbpT!;Yc2sVU%{dyy<%`!}T7L6eK54gm);t0zK*-U~3l_zJw)sx0u8ndy! zfKyiTKmXb#Y=8o7jr410cC%|ML;K1~|CwPvjs;~9UX&zWs(+WzCe!{X4ZM3*;W3$(@PB^H(pPBcShpcq)+kFsp= zbm(}z#DU)i=>;{BP3z6Q9quk^$(>`m#~VoDTRvi%#Agn^iy3folCJbo02N}m0^ldy z$9+O&B8d+f2Ino(8zSeo?Xtoaw(s}rv4yQ}d8^|3nX;?VRqFYd;?tX@2qW{` zrA@KSjIPK6KmL>Ouy1^)p zM6@N0m=_?ICbsG3@H;p>w!r=G@>YF&%2rx@gpbL3`efgWHsiW7v1EE~ihFSARn|ol z38oz;?&5%YKLH*s;9QdLvfadaPh)yRx?gCC3G&7=P^F{9a0S3~t`lMM=z>@a?=9RS zv1>43shj#^ka-H=W8Fb1dC}~Up%f&B1vZI*EO*C}>cdS;^n{6XBL~P{wQZx(*7P_+ zVpW3&vJXnG8pYwED0ef} zV98#HV%D78NN5NYpXMP5y!o})$}cAr9RMwrIY|T*U51$Li{4ySJFymtnT12GIe3XTNNz`jI2ykoC>9vc zH=ii-OVMJo9h|m*wZBlVeIVEl_f{iT=^MF zXBPyw>~<)5SP&sopW1fjLxRwCiP8DSkaMg7);*J!Xv`h)%R>(F*^*l6G_{O8C2cl4 zD{3d)-xK|#9+sOOQU?6)yERgsR=in)J3BI`ukG*cqbvtMb`##76Ei~wEvcF8@CH#` zfC;kT!`;7wyOZI11;9^ug_wiXh+HzOTvhjJt4nApYpLF+h9%L0eX6~Hq0e5ol;!1? zYs>WyU7oUb>dZ)i>{6opc>ikEGKtY;)OLsj4--s7Mh%kPhAB;qB}Uq z{shsAl1(Mdi)c-SghV1F)?94IEs=!-0iG1l??fMmc}s*TrU?A0WeYP0K$fROsH{94 zbjWfmri;RYfnfkic!}I1MX-zdB4=eZy@MdZOL}C!hyRO@IrQM|nVv-G$%8PZ92+0)e(Kvhm zY$NE?*l>9p+o8nV@c7Jt7tXG-Vgyz7KW%X<*T*nP91FMJX0BaH4 zr^uMfJPS@PXQ4`QG%7M{-}!BOZRPNYQ=!5*mdrXs@(fjfsyOH@{b%B!U-%_)tO3vw zBgd5kB!>nL?cBH(+w(#PXJyg|T+Q7Lk?VdfA$8Mg9;Mukr;-gzCfPmvI!Y~5;WHHD z6mN!eDVX9jnLL)*q?2e>Sx&E_7R}}|NQd?&T~xk zU?qtUEH9y$1H<~W$&JUmF)FKp>=_;$xtm8O;<&v`hv_1aV^xefG^*`3jwbESV;h?s zo)xN4Ns$20>>-I{74HI*99$SN{$hQ_0DFx9z@0Wp9C*PS!$1Gb0?CO^aD`UIp^568HfyxR4LtTfV9EYC$gC9#=E-4%d-E&C=k9jX9pu=P#2C&B zD1^%}ZWKU&XdrU%65)m}8;^0Cu9$9sLAk%)vy_qg6;ea}#OGLMfyrq`WloNS>Rz&NrG%`kx6VP)9sEjWNtXy5q^Q{D#ZD#Zs#|!*o2#|_Eg~T8OU{nEOs0n@; zZ2HL4M@Hvi@;jYiOpzXfuaXke4Q{2@4!ep1&GHMnl=;e+kvnD)j6?KiN(BrHLNZca zUR)-(A^%$<#$icNjVP{w2cu^+?f8%0?WC&|Ie@p5VM}Bm^Ui$pSx{w6;2WZ%+%jcz zuVl)fsq9@agzOEcf_s{u`7p!1yEcQ4%n(3gW34^DaeuPj=TAQ{Enh-!tC!B*QtGqv zGkeI)fCFT5$FW-j<1YKbJX}(B$^TcBzNu8CVO?Z#<8wUgHbgGu*jtYV^6;{z0?6Bv z%yGv}>M~#>|DW)Grq+0DWpuVUlgpw|S+ko|vxm1}gyq%9Uoi)U zA~CDb3vebe)(G4mt+*Mo07l59vt||mbtJjrb76T4lVPUg*)8fTP;9EbubQwaVFXoT ztr8)dj;T!ZIa!BCoXqgAo$)di6hn{{TH_J({L5<`ud0{u7tBfzVQ>j zYWJTr5?LMnUL`{EXFw0haCB=kydl0YAE4dru#z9zq178xF?6ud!x!!fgv^AV28t+jKxjBJVf_CIccw?=fd#aqmq3}Y<} zehYBtnEXNJUM7wx(PhzFd>Uj;d6j|!572_BIsph|XNm%4Qq3MLHLI?cAqWZu1eQnw ztIG=d;p-N|L*mxY&m>cMa`60?u`>pL5Xb_tU}UHg(^7@>+9Zw~Mjd|SiKQeFLYW#( zfHxS`*GCDAD_~uCC|-Ki8zflG_zRdq{=@RmzmVC0kc~}qtQ|Jy&achQE*Z)$>?p!$ zDKdCLk1JqUvVLFz*3iXKF5@DW?e>CWTtw^aa$%r?aaiikuu~l#7k=^B+qFkzsKmlS z-s=t7e{`XwyW;A2v~7u}?LRWbd5d+MtITy=8HySuR zNWNUfhgvcNj|5xb`tkz9qY{Ic=<-qf_++_D^arWQ1tDS?`?xic7mDGiPZiK|bdx}Z z$te*EWr;q*EL3l3A2CaW#Hu4yiNvx(`tMX7nhLzM_$>uo_wd&{qr+IK416-kiJMCY z9r%^cP{nMWM4}FP=bF4TJ~@sl!q`ZY7;|9K-fWDblykkX-VQ2(14v6EBe|*8{9LBF zIcu`-bcp1#7s5|stxyahYxgtP;tYvfOWMr+K1B%eYwpp-aSwd>W1toj2gh+JEM8*F z;RrB@RF+t|??~nmCZ~|4!xroF(*W=jMt2>Or+H5D&U6}%1TS%NnY9u`A?l-k{97x^ z%fta@7X(m+7w&?EwFJlt=H;fe89Tcy*-LaHaKke8dB6sKiSO?QY?1rST9ywJdP3cK za>=+KpDTvMJymR^>Py;*cdXS7L(H1PB?u8qkmxWzg#gbwB9QQC!^fsCcZbBLq$Mpv z=prh?3G|I~e1zef#VXG6GsdX4wT04zTn}o`IhNw5b3CLjv7nlvOjCrauDw;nd>+zL zBdGTgVIWxW;9GHlq-d2|&Eu>n&)|zOu_sE^1}tEM$6V+BL!PRmn*evtRCe=nND<5? zh~6+hvtp|?5HBwkQ8TyUxaS{b?U32rl1UL`Dam*zer4YmPP-vzXqTf$yP&IePc7pW z$?f!j$r&S9dWnQfC3Pz_EI0}3V^k2##+)6h(G}CvUR7FTjKJSCCh4cs=w@BUTSD6r z*?4@STuIFeS?TSvzu+C=4+~@x7l5Cy(>KgnE(4gmqrZ5+fm@D+}!J6ZNVWz3b>@U#!hKkf83r$1(O^^P7`{ zh>8dyydnYKLpxPf$;0aGfe65&CQhLM+md?q-1>1^&IQGcu<4kT<%- zjCFWf>I!-|(XQkkGykFTvlU;5EJ4UwMK2M6-iQowBRvyO! z@>y`*vh#5xuB5>hSz*WQ;LUd2(^4km1T$lG6Ok3=P4*q*gyfb_C{OVRk2Kr3@d8O9 z+2B>|I^q5X{7v?fPC(-50v`|`h*=IAYY@(Yq>xouu2VyC0{V+JrxW`;^&Lp zS1vcb`-Vh0iV$w35HG1Of5oi2z)YBwS;Q*l8n@cGu8|?Vkql|0wqF~61JN9e&HJdQ=Mrtl#U~fq`38%@qeNab6GM9?yB?l$#OJDg~@0bZpUm`Za1agySUhg$_(oPr>B^3$F{5y$$}CT7RUyL z75ricb+R>9loKg1VKrMY`0S)Z1xH{1qou*k9MSBS)=tAKNib{s46|5c*f5)mkJ+fO z!B&m5r*GpK6SC~bm@mmF$F(073dB|ES~A0x$APz!jpFpCMA1({j<%|wAlj-DUirdbnIj@RD=JJJfX`j{Ch9?$&&)n@8~ zRYAUP75md%AREL7D^-((8)GuV@nN`QPB7b3Bk%QlJPMy6GC!Bhl_=36zn6rAOgr&ezuWM=nvN1HV3`)d}QaVaSwiOFNN z?4=chPD@f|t+F@#w|e9o!MXym{1n#UTDDawAiY6*t0~!$A;*_u`-o18tRh!oTJ+SH z^BJVdcJB97CrsPu6YhiKf^t=HsF);{;?+>&(78qc!5I7}peo;UATzh}jiw|J1$B?#xt{U)LzpEK*k~NLL`ETTI%R z$ox_QQZ`d#63V5Tvd-HXk;36#ACAqvL`yqQPZ8Oj?7o|^{EU3Z`5>IH#rngHIHZKR zk6s&9`Cjal9d+U3KmXv`3PP*tpXCCrTw7UM$*t6XmKI&1v?^Uq3&?<5D|cL)#8&23 zQY&SLCM)Qet%UXu_tNCj3IZfmmsq)zEUG#FrBp>wD`ruhScfc9Ge?}?$$DFj_+~3_ z;Ul!~)*d1fkCwg~#>m3{_HHJY!lEiAwJK+j8vIJhM#T0Htz26PNN2%(K!B<70y#8Y zrRd?x8;fZ_%Y`V}NYqM;q_xc%>qF!T&EDF-64oYDE*DGFw|Z!2UQZ`Ru?r($-z|)9je=+=voSKgDOSu+#wiX zQk5p^$YQijz2FR$70MRQVB6=BPsUFxNS5qzju|gdD+sL#Sb5lX} zdC6G}cbW0n|1p-GC+l_VS2N})lZ5!jmtn4X$pnfs^a=Vm-*Da|V z2lV48>gAA#V()uTf;fGX+;ndLmsYN=#3eR)w6eCMt&w7C|Jcf-V13AZ+Sw@{8EMV$Y2?2kpZSX(YoEBtC^g)5)6 zilFRm?8Xt&7xFJa3pi%XEGFUNO{~vW8-muiw6-s3cnkG2J4PiB9!ZUT7rGfn(=SBl zh>B&ETZVixu`2)tSXWFQAW|5ZosWzT+P>i}(gJ3@L7LhMw#Epjj7WBjb&UMy+nAgJ zQY?F{##=I}t`R%kI{NV5QArD`6v4J|x&628U&ckzF84WOz~xQL+3C@>})IuWi;(WoYvGAx5ZH8BU#1TWE|6<@dnMXIc@Jx@xIg91i}SueFsX7lt3 zY_!b{u2L{_+&f_vmi?|yn7*@8MglG*MjBY$1j`-C$0@XyV*{82EbF`K21DIy>5e3T zvr1A~G0TICp#Z_CmTbiFVPRGIqlw;%K}-abe1NN5sl6;_tE%thI^G7Z1MdeH`ij=; zwgzaD-xcYTT;;N4q$NH)s;n>-Rl+O3k!|+QK*)-F3|l9})Xj;raJfZ;j5R_>>?n^S z#-6-f8r89~8+|+4l|)XvlI|z@MOOo+k^L*klMyeF!)VLzET+-q!T28D&w<^sxd(UH z2WNYe-97>082rF%Ns%MYLqr4Dff?o>oi(}mZK5~I?*0k<>FtWJF~+GoZQ(Ln>xkH+ zUyV>aVwMJ#RF)M}umR)X%7yrYZ#VR|Vji?_%X~Hw#S)*S$9iBFNo;LZW{XZ6ZZBa! zka03?Q@%w$W&L&(79t6zW9n3%svG7j)`MRlShU)$7u1AUXC-N>Vq~zyq(BRByux5` zWV;u44=#}Av(G2*4HSAZG^F@<;soKho=P6QcaPT-TM1)iozjd6!Gts>-uQ0Je8suX z$a=!CM=Q)T@+nD>M{ifojmegO=e_s$F=05r4E}r8vwo1|_sMWRc8vGYcn^6!@iVMF z9pAM>R?eoLS3IVJkix*<#vmaAD&e3KDifq*n5~6(i|NPV{njOT=luxK(nS#@*kRxvNFVSx@GDf;_`b_E=l{J;>Nm&$D znAxd1CCI_B9IJ$IHt;8L#^SF@YhW~E3f=KHB;1|-`_+7c>7dnVi_5V_rH!K_Vmji& zMl9hcE(gjJGbVsOPJi<-&IVMBc1Q;}nG~e(iCZ#yLN?Nt(7!QAZc~br4=Xu4QGZS^ zfOz2I@tKhiz&s#kZv}Q9En@zlGCAaM&@2?Q4lAiL1XeClnth5P`Ck0S>sjODcfgIL zFYg4C^AT!qtm+by!CB;tvUeS>*|LbD31McTc!?ZQ(bnX69ftZX{HIzksP~rKk7NNp zxU3T#Lp**8MBs>eBMY&t!N}H*zXw@+3!`(k{65$_cPwOx$w3mi=Nl3`_cUTB{RQQ& zu3KcYec!=-$%32ihRbBS5f_RNO%klDf{oLmEN8)dK($}j-M8&dw%=wRw$&KVcI|df zP`k5B#z&tbjw5)pXNxKyU?0D8z^6ceNsPhi0alf=^2yuolYF231jS*C_JF54ml;Ws z&_~!~ZID1Ks{qT(Ydqls$;}M88@asOP4DU1f;B!?XX)v-J9&So%Rv+;m1uT1LAtNJTKQ(wCaW(kf%hdIOYMGzNOSiXodjpCiznK6jdS3x@a2Ua7S zuI#`O2h@f|@4>bV$!%c&PVdQ#Zw|Bhe(<>mXJ!J%>9jn1=aM`3xR9X<(g{kyDyqMt zQ{xq8m9(hVvz!%4$4g@Fl`3Azs;4 zJKS0 zFUW4F3HJ6mY~hU-B4W8r>(`l5Fim(@B?r z;mV?Ty}M>x07gu#Fv%^~j0wIGW9S@lWIN*T5h8V_Pm*77YLba`3Clm5h;O#4&u6Jf zpA_-daUT%rtI@@Cvv)%J!W^+v?dW$X{T{g3mb>#ln3Bz0kUMWN1>`!BOtuW?N=LnM#3D;r|MD-(1#53W|o{IfwiY|jxX{Kj#2epamqdBO#w z>?z&G5mzd=h-paZVE&*RTsv)vA<|DCX?WFXf@J|`To5z6E8C8g(LTZ+w(PX7BW~ol z9AM{H+&+KtNl5uwRv#IW7dj;t~vPkD(Y!p;K z27Qjr7}+ydYc;=?6b~l!4en^i!AOT0CM$bu$pDbv6AuU{qsqXBJ0vH2({!Vk z=>MGj)BYA;TMUYSETR#YcSZUn*UCyuUz?FPg`#xlEVvuPHsea&ol#jsoKRvT&-93GGg?=d#dsx|3SLAm_`qA;h^zV}N z$A9zpK+i6a-xI7U*7^}LhI2NjxB$OprM@Kz@;F`pEql(&bPm?|zNFR?t(n4kviQ^iAe(vS2y@=o?=8sKa%Sp6Kz7&v|+OG!c*J z6JnnHsJ}=4Av^`eTIcrAkE@M=H?bI_EuRDb2=v5T2b{uwSo`tB2xZkfLu!q2g*{XTT>PwwZy7x}xjrn}u2B;L&G9TL^B2WehAezCzi4Criu?(fmrim`9xju+f9`Y=Rd zM>@ke%hJl)$`k%s8?9FtYgF7FbLUqZTO_saJwyymCumq(>p0{1D_AB&gi|yiqs3?`Mnp@x_nmTQXd??Sp*h z!u<;QWE1dDu3e)Pm+rlfCimV_>*vIOV|0r&4=(1uDhj<*P(d<9Vo!dni|I;b{gohH z%e^E|c%zcVa9K~f>tw5xd(p)v!1S*Es@EcQ!`hS~U$!K4hbGTfx&1?m0Qq<1fK9Kh z;L@wNCFgr-wOsF8Q~fk-*EVQx|FE=**V1G;N|8cR3)Q8}GbVE!GYisZ^%IUyxRxgP z$5z`9!UnIhwzc~B=O46xEmKh8ChJj1Qi4m#dWb^(1!}B@xRFu8SxLXjm8~xyHNkrH z7)>1>XR^0__-bbWVnI0>`!kj0g)FF7q#OE$UTO)}wGf{SOlC1S%$N=R#^HT&cfUi7 zy9omJVKu?@VOk#uWp8x7vx;=9CnjV4tpoe#z{IlR<0Odf?!u9)%y0%`5YQPWDFw;38oVMZZ70&jT%=$XS&&@A z2TYg?PUCo43Pvgd6Zf!cRpE!o1{52tkWDg@(I~~`P~^ve_8#s<4!2G37*A4a)U{lt zJhY;^6-iXw4qCH{oUd>A#MIx2 z{m_&kC2mVooW@#ef<2;`C^gC0cPWrfGS)G$T8lu;++>!*y{0$~lBHl3Y02OJ(xe%^ zTzbq=9o~_Q(iV*tl+JJhmE}B5R@=3;J^&h=?gqQR!^k;&H;+CC?|Nr+{5ZVs9l621 zb6nTMWSB4=u1p6KhJ)*hX)pw{JG(~N%`;Xu=Pk8veekms>h2YfnbN;f%;U-Do)Uz? z;H^p67SG~V4f$~ZdbT4f-Bsr3>v_Sfpta7Xd{&u(!3AHa@rJWTcMb&mi^p(~P+ACZ4-7fiu)l$dZ^ zI*k{F^swOEUEjUfZmr11PI|RgN3vieMJd<23FctLC#`RC$0#GtQZ6VzZ5yYk6*5Rm zI(65(YEjv$Xo}c0N3DfKXQ^2#Lz6W!lEB(3ArcErm_?&pe)oZOrA@olFwdgDTCGwz z%0Q>okfkKhHSv`2`Olr%`JaE#{vj@q1=3vBc!~97#H|vol_4}Du~bbS=p;ugjQ0eK zBA?~qiq%LqA7|7-^;&?H>^GE}zPBf~GT~A&se57+kbXUl^nNjBxama-Koo6nSpiHY zaNEIIuBA18!1f$acJ#XSo2`#?lE(F(F(%w&jVL~5x}+PT47dY*O}D>|&k_!X}2oJ0uDKDkojPZ?hqzcA2q} z2M>dtU^09{4(~V-RDmVt353?MYTro8v0zr>Cc+t#3M6TP<%S4h zOpziAgcyL|>4A9?de{u+uHL%!J=d#`+#OBnv3f+Y#%posT1z2zBVE$Y|GxA2WUcXH zPqbu{Ir}n6sSs7Q+DCjO){2Qo`!K<(P?i~1HqNGGTC_Jo;B81YE(>t1*fYJ<@h7`r zus)+=;_~e9C7YmX@@L;>5E8-OW75&NUF5m zg$Vg^09HZ96ckE!?f0JXMD`KgXoF>UzPmcw87A}ntIvZBQ$H-9dtoelC8mm4(zu~WN1rLO%?1fr}J z^5X!!lw}--$rKZRP&$p7Z6CGU1xZcOtLfFywhFYZDcB7>`xDUu=~o3V^s|v(!aZSM zC1-QTK#&wmFijC>!C3M!=0j@1{HFaS_MonM>*iw$TOn@#$Pts;XS@nXVI6>Mx)x7vTioIw*HrXevPTnM z2WF1&h}&U_+{y%~;oJs~K-9_-V>= zfD>WP(rdVS-w2EbSD^Wv)Nv{OzRRQOBaW#bFYCz@Km3HdMSon8SoyZqhyzZT!eFIy z<5xjjOzF)7vl#0^z?cfIigW2O5N2=EXc@tcC#;x~wztaeXqzfG{+ro@)^NZ%V9ytf;TyZY z%ErP;DrpTSV-}}3&A$Wd&8d5gwHyB$?a5qxWZl7V0?1*D;oBfxzv^p>kDDTkRH?7A zqGZ3MWHGn4o7!>D0v6=%E@6iQc-MJwhYuqJ?@ zOa0Z;P~|H)mSb2i9)c@dD{U>sZ`v!MQV4cH=5NZ7tm` z1%o>~%kTCM)Y*PsxTBc!=r_4ParNK<2B9u2Er)aatpm$pWj$53W0kFqVxPRWf@)9>QwUC>ED8&# zRxZyhSnuVAq{v0HmwvWOotvyuVB@kQ?FC8vsuiXCBqVnWRvy@I$L1q+T_B$#S=Wu| zdT)326P#CIvMml(j#*&K(6m-;r>zBfta`Rb*c#C_=A-Pf)n}W@qy1w_GI|1-!kg9{ zXBH-@(rU8C?52GjjDsuECvDLOOYdLCcRb<+AaQ(jI~%d4^vr>ii9yc%9chAp9Qnb&7Jh8 z;WrSm(7Mq%yJL3xi59bJO~qi@xGGs7&(Mf2WjQ!}p#vCfDjI9SEKs%j#mweRBF=BL zJwA16c{-ro&KxNpenvjH@;0j(DuxM@qkM}Pv*=CT%}!>x*|n`@o!M>G?Pz38Lkhj|mUZK_*( z2f1al{JaV8rPi!m6+=^fev42X0xnCBk!@9LiP^=enar=K`ZNZ*F> z0T|vh*Wod|ZSf(e@f+fVIx-!HHmh9r!kTkj9q z13O;aeaXG^1Jvpf5}uhcIlNCx)q_@`hBO8#uJPd3tw$-sRMpF{^daWZDn zRjW#^A~Hmltb~9hfU^pV%vz-lwc^7B>j5`dVv4A~brvVIXf;_!$@58A=XsM_DkF75 z%zN2_1glmT%;BB*i&Uvx#fjOZ$@>GESSqbKIzpeh5F_8(g*t+d^N3@`=Ph$J|V zl}AZQWYsEPM?&jKDywqI3NM&H;rJBmVfSFfCzWNqv~t~Bwe4BgRcg|jY&L%V>nCBp z6&r_E{6aixM6H<5nt~~2CD{Ti?T`c>GE*ZGn6TFUfLT1|Y~ zl?Qq3tuC?Ef-#8Bm{dPtm0H#-rVIGdNl%jD1FKO2pqH_))2f(KTkLJE6i>d$sh1*7fejMhEDq~xs!9k0<|`5w?)VmmHw?K{Y= zuZ0D&sMZyeYj_W4r1?F2fg)+G!F@HEa5s{x^c{0$;mSzipif{SuFR@3rRv9*~u)NriN#MGA(92hYR!0KA%EBo3*>-E zK@IXlph#Vzs`l@IrLu_B?B(x&QG~hdMJQ+*FsqGI_yAW{AQ4UDBddxRjk%M|{5{M# z$q^b)q|emDOwtWMnxEg5;zQY2Or9|XfvTNR=1a*MFwCqFZCoxQTb&Zr0ST|T@Og{ZfzcK&r@oS>e(-#c{7a@-L%8xON> z)zs=1%^NWHWcackYdp1ApX&@zlavt-jrKcemLz&!Sc#Wsa23aE7DmflwZAW5(dSXCj;-%OKmEv zLRnP(LP19=+i2~|3QM@;p!h_Ye}ya(uObU_yn-NWy#P7*sk<@NimB9-&(Kaux%0+H z-L6P;ch(b$+qwe%uP#73@Bo}Y(QlQAxA$QG2#`*ZH^%%L)`>7z?P|z}`)wCJxXGK! zT`JX44&S=TxG}+DrGK@@;f8fi=-qjqz0X$rFLxtrA-~-2NOmr?2lp}!F2U#)JyGL9 zDReCI!ynOq*Esqs-4lC|9*mDeWdR{Mw4As7%N`z zUhu~5pBaf< z@9gTo#m*M12LXbkE9Oo+rr<74-w5fq!~56Sm#BL7=%`|3sR36E|sPky-1p zCS%sYNh{_{iaO4Mq`I2;)7HiYM*OCG%>FF%SRYY!HhIOIzoW0Eafnqu3+fJsxK%5Q zRIM4-lIr|x%vi*#x@#*KBJu%pK;k34!8Ka{8Xis179^qvb}q`@j`YIWx~&CZy=z8% z93wpOWy~NiHH)33&Qja-Ft;yJ9hIftFoj{%I1f`~m6C?>w;7Xx37<8a1XDbSo5sr} zP6|8B0w|xPPkMt%MW=a8XOS&0By+4<-_+%S)#w>Ldm#$x?3eW{n8QIxPXKa%D=A_% zb1(QZlwD$D)jXXA`C*jGdQe%d{liDHkBMKM=z(rxhQQv^J*ar)G6r@Kw+Bz;(b);Z zaS3}=Fa-w|s9H@J(gE7Rk~?b#>DG>ry8TM=k^ddzy?S=TFe{CZA?T zGOE}6H|oO?DGbcUFUh|%JL_C#S)SBN!L{J5R83mTifkOtgYG~^aWbg6SoXp@95|QN zF$W`?X3=^t8~cTS?pL5$-C`nB8%0!HN6BNgRc*(fKIz{9ZN=J6J{kW|7mZ6!F&M2B zJ>-YLDzy%*pHY%X$`*r(^ctb8eJ9`4f!QJaL7tI33NXkU$VC~bVq?R4X% zb2KFW9z7$$jLtvlzLC%@HE9hhb6F2CN+y_tldNmyXk)dR%YSS|UW5%2G`Z-DZ~a$n zp_hQQX}oDg%t2_@s%=Y=;={dY(#j8;dey2U)uBq`St0H<2d!~BsT_FyYtER}qK#MC z|?{1L{hV zPOq@`H*gM~NS?@pw+C8H6rT=kDDPWvsR36;Fd``Pf;hA8%W>&>i2?t!O%>V zVimKhj9W2@W36&onIRzti^r;{o15#V4_XS{O8AvwiC54l7d9%( zgu7u5NUaUNS#RKG)-PmMOE|@%Shsae*dI^dS;}@>1vOi2&pifpa`eww`b2YNq)&{G zm(r``1N0F&mnN51Wb}=EyZwY;ZMJ*+2c(SDNEYtd{vk+(06>m+jE*@z6g{XbAk?PoeokFk#S z4ms$hSv`ySR!ACgCb-~fYQHXV%=A3qDJiu4&aVmb=Yt@8mJ$ zt&Yj(OC#4VG158nZNV7L3Fu!(DPkR?XME(*zY0z7UYF|kspbo^1j|sfygEAf%To0^~m zN_9fxm?tAvb(v5OZU?gjv(Z0ew0PDkdy$I%&K@bjvMSYU+Yb1+JJJ+yY{ph!tkNFK z=?7rQwk~DPwH21<-!>4xwtD}krhooH`y7SFVm~e8`(*wcnQ(kK%3+@;{=%JDzTcCXhDAz+T$N(vvW0!)YB#$Q;O)wk8 zJT;ib%@-gAZjxKkfLvjXQc;Lg~~sv^e4ZBW-k|<Nu}7*j9LS-9X(BeQg63br(Q77 zHY+W_Lr!PupW{>f#9u;NZW2R+XM zVYP)_Vg`_7eaP+|5NZ4zEQ?l5XY~hL$BJ@w+M*piStOk&5Ih1Y8`qXD1*8NZsq19d~xj{v)Uf_xJD=OjLOE3G#IE z7(@4;cjx~%hizd(?!Nb9J4AlNww_t{wr=}vg@+LHHNlQ`NT{>kY8N99QArWccAVOO zU3VXF-58Nh;S=gOQM{cD4~|L>zqfXT$+H<|7COzPLFOM z$sQ1dZe%5$Y)OOlEwcM^jctc}NEo;~?@Mk-{63mJvisfH@itGl9OV-G^BZ}GSq?<@ zpcK+g+-KA~;TZ?g(w*EbV=qYIyqUu|VFrt&May@5n~F?p-%#Cv7NeMwk{zZrQ!sS$ z2kwD0!A&VXszII(Xpi`Vp|UYn_p)pDvuP8&ZK$LxS28AyRdIo1+T-mHWPxwQSMA%- zOoGgc{+6?D;1Mg(^&T0oJcRZ;_Z*ZhjEOeE8WZb#eT4{_`zF={H1#)MZl^Z=I?c+Nj4S4sr$qXV@YqU=o15oa?Li&iw6?2(7 zE8QW-ptwMmaFr7CRs|kfQC)js1XismRsmBV(r)?kddIFg}G&p?MIJs)VyfKWQPeWBW80+M4q(}(gH$H zDFD$ml$#^cC%vm4Efp89bJMnbm-e4pDgP|j_7APJ)f3kC9+7{zC1inlrE(LhTJa(+ z{LO@M5R0&G7V&b4c^1H27wMkk{BA`1KF81tF2IA!w)CUvCvw9q z-r~$AkESGs>=jj`Cw`T~DCd_Kr7sO5xnDqhd~Fo#%*sGk?m;$6pS!n8iq|$Aes0f@+szu7IMS`@Q3#jVRtcYS{hpByV^)^v{=ESF&VRFT4lpzfx zU=HskRdlVUJEoxcnBNsi=vQTZ zxfZyVte`TNwsr*C?^^eI{}hm&Tw&I0Avv7PK^Ma5~xNTRzO zEorC)lE@usil~T-Xo4IBiqwipv=_!44CtF~lUB^4^H_0-sN`Q{Thbq+T!(#>uT+IO4W7 z5!&k6Nf*suGd$7&6B2~OZq#w39jSeIJVMHq-AuRxnUU6#OTo}R#aGF0W4XlcbNU&PrdaD>pW{pB7d`yspSm{P z4HzHQm>&vc0{I$$G91zPEa6RmCoC%4yg4^%y3e?b zw(LlL8`+*(-+6AU;2joISgQVpaThRkvlHSHx_?ESeFnc*Bvm$%K7^fVi`h7oLJ8R1 zSuh7Bzo^h1{Rk881=C@kP25p@RO5TW{TR(|bix>Y)Q2lpBfa9uIp*mL6Hb2e+mgx$ zQ1S3AT#yNaxgDuwCg~5;vscWyVUQ9*2Yrgtr4@Pq8yGX+q!!lqt{k@l2zTusp(CMR@RE7x)d&glax#OqqGeXGik*f z-hotO)=}7ZqyC;nm}s8yR>95qf4~3*0Xn|jiv*T&RIl$ zS7|w=Ml);lXpF&u#*r3Gq9sE(0PT8-7UTdXSyd}u%3`!YJ`LLK?X4k#NhF1!LMHud zAWvE`-!KK?h$22{{-{|i=BZ$Co}sdENw_Wj46$@yT$D~#_i|#%x-wQNF^D{{ic0v0 z4Q~;H;YJEExB^FX_OHoqs&xl@4v$U%lCGgz;Zm{?YlYFo>ARLZDkGTyZv$@B_x8td zonRjWzkH=9JCYnK`!N!^YmM7-KtD8SK`dFh)SFFa`&B$HFQ+Cu(o)E1Et=W;p*?bf zTx!#>Vw3VK48rYeZfXC}3bsP6w1<%ml!DfMvY1t??iY=etzuR!qFT@fPGe2+hF4hCv~AO@xS{Cm z6X_zB>s{v@#0Bk?$xX2?1UaH6s7)HGI`5gOvk#G<^Fj}gq(^VX1sRf}bk`*0-;c%o z7P)d^H9OM2#bk!!8jUF0;if_67)4$wOikQVbA&E+}62qdvQtm*aj~=~R-C{jUgbae680nktNWs*E%eo52JSWJC zBG03|q#%tF^W=I#>tpI1V}2Wea&^&`VxL8g`5FUeK7zT_Zq{uWVmGC6Yj@RluX|VG z+D3M5i$S+m{s67Eb;Y5THh63Q?FV7gD^!s?n^^a7=K8+2+2nXdyLj8Y^nxpW!h8fi zO7ADxf`FHZ>?YbmIQv5QF%fsP&4#w|J3H?{Ys}uBqxLQ3CML$i6fTAn2EzR?Z3`3* zm$rBqDn6S1%=*N=lilub40`9%W9r>V_QW_&pMdm{JrX{Cy0wkK^y-EjreWNk((OZjqgt%JMImaanbb+Jl1r5%z|| z#$zMmG4hYenEBS}l=<0(F&x_<{~LL~;JDu`au~`5SEzN2cKP!5#7|AQ^Fia$!k+@$ zYe72uvx|8;zt#8h&tm+<2_T1pxd%=q&4#Zn?no!|^-c4(fboWO2J#>Gj+%$bG~z6p z%2V_ir+SB5;~U>0S7DDUtx>l*lZv#*tC{|(iZ@%v>0$Gohg!8V(gEQM{W~Dr4>wAT8S)QUA0X4ty%4B! zullvTEGWPHoP&d^)Kx#|`Fc0GU^)j3H;ZgmtG>Z#(i)poDXdjb&YHngP6OpYog!_^ z0qu${!g_cN(caiRX+;vfn=%pvrA4E?wEAo(wEp_UEQVYCqZIT*VVm|KlzvHv!3{!$ zCfG`8gI@o{<)44h{-sPpQ&7={?aC9yoTHf;@{FY1*1ggiA6X~{m06`?QrI!c5Y1=) zlq8&{ft*vk+vG4z3#1n24e$&S$qK*s!NN=E^@<4d7dRXz*m z!B^obmp3`edsJCYl`98G4vRsd^@7imku;bgV0Fx_wD?o4RX)0cEG_vzd54rR8Yh1Z zvgwF`cuwGJ`otG$`qPg#l(arlcKjLT1FMDQ7ObN0e6_fU5 zXK42vbdyS<3na+ZBI{lqB3U38-wM||kgYRrHNYYgYsmr>gXl)Z)y6@pvuLd%zqINz zzuj7$q=58=`axd+t02-SQ!D~o=X%6u4PQYhT^02|Q41<_o*+ZkqD3|M=u(sKu&!!%Yu@tEi}lFBUEjLJ0?ms=$w}5JPFjTgsW; z6H3vsJdC2Kf>D9?D(#JhADBy{`m*;fH*1s6OW4MHfrKNfw$F;29SR2g#cE&o7^R{H z-*G}3c2h*&y%Nq{US0|xk6}X{oF=rTmwg$-RD^V3!C?A=Y{MVJL&qiXb7qo{&USQWXSgjtP8 z5=zn3{(crI9w(tik{7UyeZ`Oz$aLDU9M#8R4iG!5$MP+(W260~9<#v*xo@Yic^?(y zATWYxQIP|pOY>O4_=XPYu^HYS7jsY3%}4&dTEJ)X)#1Nwnzn%=`c&~B9n$7=Sr&3; zDWO+>rp00(Ym>csbA^&T!{D6gX_Ma#7$G*wiguUF*-Z7f5q+M_r$H(Dy51Jk&hME& zpYO8)cCYcZmyTrA=!deaZAEW~-Z!-mLapid@q;CI*5L?@vJ-$rr&CS-E8AaTdZE zy$mTBfHnfVhslOuHg*Q8QPgkhN2KwY9_$yctIxJFkr(kxs_m_2E_@(rfbj+kyAjD0 zy0J5;1l9X<$ykcI_WV2z_`=a)lD1dOUUqy)wr8h^+GsTpMkJ?1q8=X`jC@Yp?0SSa zG8Cz|lzWSm(;Uz{vD>kAS1=@V?Xf%!?f!@^LO-Bwq+9w(OX;k2*3gnC(mCuK1GjX< z<llTV_jWzTygFlL0&vW!R{r^CZ2pD?f>2uC0(``%h;e8np+k3242_DCk8Yz4Y+xJ(xF0uXJP0I=21S4X zyi-hR5*#3^LbRla%1bcgY(!a7;}i!){9~cTZA&untd(#z;ywn{JX4qzN5Vl-?#eQg zY>b#DCBjk29?@%NS+?m4h7Bp%_^W9`8&mJBHKwr`r$I>H(ZDV^Sl&W5o&1`vK~ACR zClO)VtJ?``T3BWRgY@wFOKAnk{RnkqsQu3MQNGG}@BZ#*`vKVV&(2f?hkB@&-${o& z(<<-++5jUwW`c1SKj`9-AkqG8l3G)&PXwLWHX63@0Br^mBW#_hCR5`HDgg(^=3YP>2V5J= zy`pAw!Dc=fmv?hsHVQ8!Uv*4zV10wbDOC&*YyXBGcLw9mj^ACrKh>s*!F{V36?_~{ z&^LNL56tIbS#}1+^9Lnpzm=Xud`WW(iUk-(sqNf=c%-ty4WjTPU>4FxFTccfEwzq; zO)w_hzza!dNy0XC=FSfFntC4z^EzJ9&Qpl}!;%V8<7E=2CAt;$=4Y?Vo9ComyNj1| zSLO=DQD})a`xP5#i@@fSO{stAWc}+D*i5dcqZvlw&q8|$T%(ua$!*`%;?kRGx)E#u z(OT^Go?FMYNKR0go040?S38qkr)im7xo%$8t6zP8#-WAUp3s7L1pFhz{^vR+sZoR= zx@A)KsPN15u50(m1qLLKfi_I9$P|_d0w1bvNMO%ET@vjdCW&Rym*BKV|y|MM-#?-new(K~GA5@BH9FCe- z?g7e&Q_v-eCN?A2kXRyDE}2``3-T4aYaD(%MlNFb0I>=WiBBNI5o7e(T)?%%ZE5tD z*xq0Ser$6-#?nIe6uxmdWUbp(&1)~?@0}^;c-zLTKfj)A<7>UK2#54xC=g8TE7VN3 z6ZX4wAKHhzNbQg8W-hZV8*#a#!z|=gY{)3Gkf~pCn-HVZ`3zF!oE5Xj<&OeIMgPVq z^#*hR45I3y6NoSgWIsd*!euWw?)>ZLWfE@F>054SKXD5((waPp%@E~>-M&@U=J1PK{Hp9jQc8)6;*58`I%K}2 zN24Aw+PAaM-dN02ngk0$%(~`k!My#=#q*;UdSjQ2CDb-u%1Cx<`@3yMS0=iTbjtOY z`5))~VNpNKZeBcv`enYHp!>zhEjET>+0sP(C^xml&lFllv$pQhTgr?pNCBxq1OhzP z&V=z-z^Jd)Qay}mwk~dShj;Wm;Ioj0_r#~0_@lRs&$7RoM=JTS1ibPx{^cnB(Qm%( zrfR@_shXK&KiX`XXQVa2XhEG5+7k3(<6oDoN37=TIj|OFAN(CQyTrD9`gxoEq@@Vo zQt_k&kO{72`i(x%%>{%~4HIJQZ3xTwkY^T`k22vH`0J*Wx zWi#!hvrdwNP;y7bY~*n?l;t?HEU~&j{u1~VOmCDX@62&C?!;}WEctckyX6ZwkI|+( z=M%T=w4u)HOMuC5A!5{K;+AmfN161yrQcm2hn*7sQ8cLp|B8b0GL`2PPNZjS)ycX} z&5CsM`rXJFOh2Gm;eMf+mm7v_l^?ON58%lVk=(|Ta`&@BQsv1B#=M)aJhgN8%iHH% zVI`^hbChrTAN?JoLaO@9E?<8z)b-+{ekE!!K(6&(3m-c?=UVFCxv&30g}CMka)mo^ zeF6pnKR{$kB9v5arXItF`uUi(U(WZSu_N#i26gS^l6w8~a!H6$+Y%{9pBwWDK{dK9 zv}v?^@I=4!b|j#AzNeX&_S$;xIZ~ahnANnKO}_`+%iGvg9uQJCOKIb08VpUxG%MOcxA9;+K{1?{xUp%T zA;!b5P(BTeSS;&$!nWx124dDA%D%g~5gd{k?GDWB)P|&#i*dK4aa#yo16i(ZC(OQa z5DZw-J2G$Y$u@7o@~nVdMy`Z0VlKiVRUPyfVswLOCebfJ`P06Z7Z)d$_xu?{UorBh z!rW+vaDew@J8s+>agwC37>fdl>Lo8R zxu85*1h;^26f8)DK8lguduCm+`jLx$<_)ASA&D}rv@7$+%8EJ2q<{uC62iIn0SNhFPw}KJKytJL%J8YiY zLYcckY#0tEHy7RI6uOOQK{3=LiG$7dIkaqTb|62`%|4NOV>iXO%zi-EE|>qwp?5#I z?4zqk1&I!M-!Jceki6(~bjs`tw9oA+)h)G7_skQxW@-!Bb!U;L-+83pjnTS~xEjK% z`qL0Q3&PamH;kRZ;hR}<`N<*ez1%Qr32)WR`4?|) z_RC>AW#$98OHRw%SXRa6xYvkfGTS{p-jZi+N!hK5^oic)0{E#jIol)oFT>o@<+gEh zhH_;C$me}>6?yD~CF-AT88?TTFqW1@=XEJ8cpzcyrn4>>nl0cXQXfzXyD?VjpW=I9 z7st*?wy1v`zeVIHAMN5x3v+ub>}mZ6-+iD9b(8(ux z3fd?>q?{feyP$iCe4^EuVCl@#KKK1vPS2DcY^KFe5nhnla z@3Q)8SD?-$4804(<|tt-y_>%qr0+Jm9NL0EA-X552V2+OcDmn&;Nx-0K02h$En(jH z*WfYk9Umh87m4SlJ5W4YXBd|AUXjOBU_TU#SM0YKF92GR_#OBjjWEqVwPm-f*5(%K zc|sa{9}`Wzw|4!J z%>6I5dw_h4qHCPXB_rgG{i_Yo4sy+OANm9h?V8w+f%SIMGP?)7B{bsBeKQTaX8o36 z32lVdD6=IoH!gGjWp_13cPkhhg%Z<|*#1Fk#Y zj9!#98{KYoqb;kOw~mThko`TG+wGd<4PZh(A9D({{a1hVUsr+ui-`_G^ND)Kyg6>H z0p$Cnw6W#3dUJMTvw3^GdGn9*hBoosxLpzNlhYAWF5OaF*PkuGX~u52zmG`G57F*$AI={hFNztT0~wA$@H>hsW1D_RAFTkz%tnbxi2H zL2W9&8`q3=DcY>=bDAy2EBavE-Cp=#M>i};KYMAnVr%6#NOz-KFlb}X7A!Fytmp1+ z+BWg`1J2`Flg_IlZS!{?nr+~DkUWjA%j;SL+nCmG!gm{hzT4=rm~Gdx`h*<*aBUtPr=X_adORhj6XW-9PIa@IbQf{gQY|3YoUtZOhiH4r->Pes3uf8RAUKPrJlX~oP2Saal2fhWinZ8c4 zNC8hjQ7lH}vrPH|atBBl&w$ZR2AkJCvF4Xs_ReD$tw_ORmSl;JAE%GOE>De#C8!Pd zDF?4j1q_Y(l8|y7HqhHO)!R~sq{=njfHmK6WGE?$uJZB9<}Y#)f&}3|0gSEb_-_-m?@~WtO-Nm07xB#7&!7d??V2p`ub(&V91lm+1pLB`$bpNw*Yq<(#?buf#}(IB=@bydRK+5rYmT7}|_5A_)-O zFfi)(DC5d9EYUGMbwascz{Z3i(>HDx^b?;Vm)7bg|NN_36$haghhz#mMxO;33<;uR=7M(-m&Sr5 z98_-7Gln|uW2J7d)Q6)YooIrhq@t%$dXvRXB6F}wC>|B*Ot#4|he)M!bj@;HY*(BQ zd29L6226(hNtww;X@Yn}+hJvsr1Jg%qjtt^ln3NzfJ>l)yknzm!_p1z6_JaR3cbOQ z@&$dAsOmreEYRQFy0@#@Z>mqFj#>oXK7_AS zcN7^sKdVEqF0{P<4e>xojgM4Rw)uTv+5&Ow#d15+5puo&s#7+bjEXlXw0_& zyBXXTY%qI5*j%ABnpx9;p&6QloxM03Fc%wRf|w=FQePrP-aJ;Z=Tz2KsNvV_QOf|% z=jX!6g*Qw86^V^*r_VNgiN!;urw^&B*LQN{g4B4_$;VP_;9~ve8yhUao^<{_u#T)H zsn?ym`NkXK=)l}SsKnz5&OoE0N-i6|J&qmn1N+$f2&{pt?!^bl#rzy#P$p47eA5?Z z#{5h(1J7mRg0YxlI3-aold_*NFvR;)1>+FF-9Q5;6@2u?eqb%eVA`i1AQ(098A;8s zQ5*zbDwsEzpa^F~1}s3omf-u6%ol9(iccl@1WL1T7;V+h>mZA*5Lk&pBsOe24g|(6v2Wwk{SL&365~X zpqzq7#lE47Ml&URbaN#Ca!AdT#Sa*5VJ&_8ZT2eMJHGLpNSRjvcu4iJ>c9nVRs1W<4TEe#Uopain>MoL)dC;OF2Yc={eamUu5dSwrMQis4((ZLYs2+%v3kau6;! zLY?h5I|q-XoFQN~E-)ZpN44Y)zbZ{!CNFusKUw^yeulu9A0fSk3epi|OUS0QN?axk zj$xq$6|z)RSte6%#Kq=W;13Kwvv94iL3R;y!CWMY2Q3~q$V~aAP&c64Vl8w-hoj+& zxd{85LY-LLNDy^Ed5Nw_kB#0yy!aoFqiMk0;l>{yRwQvF#KQCm9If>~Lyh0{Ki2ZB zWv-=E{B=)56{K42e6Z2-5%xHq0qKy*s<5Y0Ykk0T{P#c5|Ns0`1#lsK7#`e(Jfn9i zDGNxg3nNrlyi8-+%M*3l;BF~rMU}cLFn*?`oH5VdP%ddknAlGPt^&Haf2f5xA}2CI z5y-_4Ou6i3z<@mD21JR0Pgx4di#n5aQPC1X|JsYry+tXN%&<_EdUzC;EXd8s1Wn-K za1?Ic=y=pbj(yK;QFKaAoHkteq%lrNnoLM!v*a#j6bXk$-cl95zG+-=vccSFLU|#D zl@Dh-S3LjfEC`FuI8Af1QC%G-AcEn$2*>fLMSxV?L4PlNBoLq|s31Pv zE}5_h#Ds%T{pd#w?$U*}2)O`|Gp07{H)MtmInumyWMoF<6&m@UCwQ@{u*QAj-5%muh&5TVrv!Do3wK#b1wgA@PwOW&(G z>4!AWkWB?h#vqqi@Gd%m1BNtK$y|V|gFmqH-VIZLf!Daq^8U77N!evsOnFzr3?JNy z@htq+D~4-@!bO&gA8ef>qeqo2YK!xoe4ct!I#bYZmX&~8=P~+a+5kS@ZRY0N11dE- z2i6gZ`CkydL+c5|;wJ>(oOJ&4s|5ka5eCd#pdIgsPf@-e>Wd$Cx)20~z0{K{sPX5lM6C+pu=(8TyTQXvdNX=2)PdxhAc=^Kb-7=Gk4YnV-2g^E=#RpX(o!&UkisBJdfZ_|n0x3>tL{BD^)LAx zJ{}`$nvmoSyEzAgFm1XuUFTrgzz=hpW@YIQ*KWa%xBCBhHH&?zOm7 ztFMKre)z5q!TR5E0jU!U(oe!yF_i;E*CEn3(;;tJE(a6{YRSK%Vumqy=xy@+^s|6X z_VzNn_Oirctny%fyhQXROzfsoC2r-Pe~zrgL+M7Tu6CWe#Sh=f0R*Q=%Xp&2EAeBL z6!De@L!N<|I$<#rpdk*JdBhOft&M1*C>5#O2QQ!Bt;2>B3ON<-<@i%Zf{bV)WSn z>4bg|P4f6oHJ{C7tr(m^AHPI2OH{RR0f;#)esAjL<{aIHq~l zKUhX_$5E+Cw_Pf ziS#2joKtYy_7mh4$pBnQE;YCUE!y@Q+lGMSyWp5nc;j4&7DmCt@Tolh-1rwO>; ziDg33l&i!S4@{}nS?Vk`MOL0WL1w`}vUp%gQr9XuLlos&FzEYQ2#P8cZJT5Eo+9`3 zCqHdV<<7eAc1;+}%0*E#)|ZR<*7=7ex%iQv^1~w!5qkN%Q1in~_88gFSQ` zynh=!8ax92Q89?7JBF|X`D|8%#dHhwnjX*=V9aTA_G~Kl|NL7O{u7^P#1*KdHIMB1 ze9vo2wI=x%jE`EzT525X|Dl#T_vu~>*5YfKYvBQRR05Ty+5nmxL{Dx zl~dz4-`2*7mzqV|T_DxV%=m_i6MPu_a4DrKhQKmObt-*^G3!aRvny2wEC2kfAOsei zf%VCCl9bKF#YYGyC>}e^%nL!)$OTFPAN7=UZLSRglpjcxm?E&O(gd%vt0lPs-8;oW zj2yiS*AC?R6TXs;gheR$ms3h*gMm8pGkxAbVshaJL3_*?y5B=T(6$qjy^#!}6Z*ht z0Ap#{32;0ApZ5cO>Exe(RjV?K&<#fcrveZ1BSdo(?raGVxxJ1CH-a0)qRuSG<;R-2y=#5_EXvI;>{r$+g`pIQjX5X*IPlw z+;E1V7{DE=-&N?B-)38{fFaFlWHU(U-9GRy4fv9@p??jG5oKr|dnr$r)h2kuFHtXx zUbukNn+W;LfVVUXAh|t=i*}bC>I8Hl9z_f|UAU|W0`FQ^km?``=oBjkkxAu-)F>{~ zw0S*dV&`un_CYrKBNzFKf4JZTte>F5FKB+$;%lKgy#5t|TP^omFx1NPrOc&%ik0$E z%UBn>KrJ;~^#4EqQ32u|iGlo-LZus5?P#ZmfZ#7k!Mk2D*81S`@B^!SM$4!gxahNo zn8!qXc8qX985$rL0so2$1-)bwil({93?_)#C7PL04y)|LX&Un^6DFP`W5JQ-$(8)w zgA&HlsP$vfqP}N}mReU49N9Cldb6@A7*f8VPa`B@KYUXjW3B(8mOB^5p_Vb!I@JOsXPX`S_>yDmuIbYA>Q?Ws)cH)_E$);3O}qz_eavd|G`)bH*`)n#QLc+5ucl3 z3jZcwKGpD#=OaDrNvGHT2F@V+ET~&-Gr8EqLwMa_@f&FrmS+enQ;JcLcfsk> zkk6Qf9nLmwcUMH;SGW$OWu7s7H|1rslm`=>dB8j&l2hjgh(-9RcZ#Y@i#w8^|e7i@!46Y-B(V}&KZ6T?Ma}$rOu6IXFMLP?L+qIu7_b6qT7El1doT8J3U^%Nd|M% zd?Mt1o4mQAuOZc%qbuz=^4+Yd6w2^8xVyuZPMlrD*^lo_eY!*Ya!9 zrx~W2O?4Z~09=TP1!(O#@DjABwa%Cf2p=1*M*j6Ejn^Xvh^i2s(*0SK2GbX2!Gw~{ zyF{7_XslrzjgS5XMqrg*bdu**IM@lDQ)AdqGlpBh8F_?(|Gm-vFK! z2NoX!Yl`lmoqXi&`Le+fQGR4uP!vP>y_}#VgV? z4b22yGxCYnFQ6NPSpV}uz{q_UxvxILbjg&E+E@j0QBwyf7Q*q2D*(A8pY(pmxxftr zyT^dFnX&K_;?E?P$h7m`Hx4qOUNB?g%Dv+W(DVc<%yRqc2c}EsUt>{B7@Q%kN{e?_ zgwY|L2E2V7PB_$`^sJm>RI>1lc6sgR@syr0d;{%9R80!A5uKp63=$rHkf6U|bGiIL zh!1zd38Im=cY^nb&$xtOR1Po$1b0THv7C^=DWJoMNSpQJnMRC?KFuU-!4PlKiJ4g^edm4kwZ+X?ez0lX95*RJ zB-aw8Hug~yIzz&^;lJe@Tem5{8Q0E`{ABmz{)eV?PSFxvjeIxrwES0?TNBb=kC{zQ zDI!i~}3{G;^lb+9(7wJA4Ke2Saf0GH^#n*Wv$JxsR& zWiy2BHFJY_pyqxijNiDJ@dbl%ibhM$iYpSgx94ZT_`zB1;}e^MHpZ%cr~Ml?2@FVMe2!`!gnTC|XR zNznE*7Pjw0%j{NqOA^gz;dU5xkjXKM!V%WB)%-A zi`si~Irj_$M%NGIZR%$i$jPMh^HEzO4ZBXsGVLOJym}wnGt^pwv;y_P19ETmG1B`e zxSgkjb03`Fs%-Do@3JxFotN&Ie@?7XNlW_e(si8s-0li*$<^m*U+&*UOWb*T@@F5R zo&oHmyaXtxs2sAzPrHCOHHX0WLEB{ZVL_O7{)rRp0)pcUvnRXtQA(sAbsthc?;_l9 zEtbK3hn;$yk6ILnHSzNr6r*S&={)TBhI|};YveG%On_p@XT#2hVE9>m92pkxeo~BF z=~VrI@c_~Ns8c_`6^LQQNazgTw)_t$Ibmc(AF2*~JzeM)5XUP{q(JEPSjbw>l{4Gn zIg*a(AS!ILbRNmj`ZMh&Si%L7z<@gD*-(m#&*iN&!nDy`lzNf#NrnR=T^j!yjmDys z9^WB7cpt*-s<4b_c%7q5@&l4N-Yx+7B*6sZ5s=2Bn9w`H2;&Ld5ilzx9E7-WX?rtL zqWS_a9Y568aN5GzGLH|XC6^=VUbwLzTb^Re30LKSvr@s}3{#>DF20S!=gH1&C(YEY zKqm+rbc9j1zM3E@Bn&?iIYj~(l;1p~6Z+T3Z=tKJphUTxJ<#-Z6zwADtKVSd^N0gdpFDjj zr-bbiU9SP+z>1kgf9=|1zzOpNBa^NHCb&N@Am@jVe`Jd>v;OnX3P_`9=|tYIBSn#{ zGGaVX!Xi3|$ZB6s>1)zSgtE{9toJ6qurvY5h{^5bgJB1W%QPYhBRMLT{u|!VgZa<1>a_kd$*i0Ks^I=#&u0VmR)> zK@>%&I+~717kJe24HCu;kPL0$sG9tP@DB_3E_vxfp9>>gmgs$i=W&^d&nM1Ai!{h#g{9RRfvu>Y5OkYb_DP}i!jeWlU!p< z)0UJI`FTbXo*}vmib^SwyFgN)6bHcq(V!TN$3Zx5z`q4b+mPTcs9^Nj+~h83Qc9yi zbSEN!u(7@|d_$iQ;dq9zduX0zMM?kI3Lz-OVFL$^&mb?z3|(O^*Z736xh)?JtSgAa z04&9_^Ovc%c0NFWNr2aGC*%_-OoTZ79+8gu8(=I-<3VSPjeH#1^^aq04=1+)1<5r$ z5{?IrPJ!kPZgL{3dAVd`*4osZ%?3zU_<-CvEoCzU5~9-!^5?9D6M(F*S|Zm^%<>Ul z-mKltVlLgW+0v*zfT7DKzQJ*^2obGZYQyiaRKL->5$43HHTyB^KSX=h7j{J9#@*K?(JVmT zR%ss?exuQCpzm2Z22lbWoI+gQ*Lb4xpQ*>-jG}=J3l|_aDM&wcmK}~jG>_v3$B8WK z)*+vTMBlJt=&+6l^9;83u>9hWE}oA)6hj)6=A|f6La)dzW{nHPGp-5gjBnY{uIPiP zoCtMa&2PDI!<7HX-u#ag5>A^Th>hi?>bY4%0vJ9p?JZ2Xw4{xjEahGB6Fz~QAs<%> zj{)cc6BR|iyskX?m%GCLEu9i}=o?Rl?TWp1;1>Q9lZtVH=q|bYAXW&uY#ay0w;VM7 z%t+%IKfs4#Y7)lZAnC{{IEZIT3IW}BN|a{|S8Q9~v-xaqE};|k7*Axoc5fgNAa?-T z3FreKE*v`kAg&CFSi{yc2OJFZZSfo1zUSH5+|T@ZCk#4Tc>53pX%sEJvi$<6cennrK*;;EpWU z3U`zq<(8%j1D6+O)__iQ@gu{8Bp`QcGuFm64A}%8D+FbSwC;z#fSAOub@l0^tHzgO z9l6x^mQf1?mN&9ahcdr5CN54Y22~7hqp}~ybxctpq@hd_?-~hyAS(D5N58m?kXg60S#$kgzv>L&aAF;~2B`s9ORYDg z!IYbxGcUv%;3J9;QU6*668aNloE&o+vnUO!gh2-_@0}9H;S9N4qjkezzW(g7Anl_e zp=+nW+aTMEX^Cw(b*#nb3JwO5X|@Moi;uYoh+tqzII2$0;Gj{puo8gZz@q!}lB_w& z+4|QikOtLgkOo%??_7}^!oZ9{(x|CqYSt8nBMvC%bZxBIRXH(x49Y&BuR!SC2~BYC z`-&v`2r$oR3ot-5fM^-IEybZB?_Ma61TYqJ0XCfaoKG1$bF{P}Ii$t~gELbojmB@> z@PkEBMC#LTQ?`XW*MP%09v9j;Jp}n|wBk$(1>!~! zoiT=RfvJr^06|SrA$v340A6W}5=um%Qal=IKQzr|L+fd+8K0550K=t8B!oysi7vIY z`Uo(NNP_-=g_(TL6$XeR5S>5~d5EmNAg@Q=1t%JembZnrjyQ94f)3&l5Q7a&I2jTQ zMz{*e3Pc!vEgVCqTHuI4I$&z<*hBQF;LkXB-0n8Aq7Q8Pol_ zAqHnS324_8ZgX=vVF0Iq!v*;ZDh4Z(hI~Y;m_~!yAeR#@I)SW-43P|@y$I=PO?c)p znL@)f%@;_?kXM0*?foG9DDc9cFyU;pO|tmugxWVyXQ(vpaNUrw0XHp0}Mto zN9zsCcnOAc@Ff>BDUBVI+gMXu^R?}#87hXHo-mC@?QiG`(af@ta`C|^4M!k!MmEzG zLNJPhQBhFwxfp$XQcUPJq7B2a;qq1@EJmpwF__!l%DMvIkfsfDR>HAd5z;xO4HE`u z7%vHqSN z;>SoKp+Cc{J1I{HA`qnMvAHodmg|(}$_BLDM=@b9NDTN;`J%zuh!Y04k-(BA@%T^; z7OboZXADJf5J|%aq7$BXvN%(o!r!?@kES#FaK+_?SvkcDyy;-TR^g=B5Ak`5Y!h@?+&W%sGdn@Z;{;&)@Ra5oFzJFRK1jSFGy~qAE2L@H^gT^@~_Q& z1DyA&i<;7`Fz+PqWvoq7P>fw`?+wt@d+SR(f1g4R7Wzp0-0Y)&ads|Cuj@n&V)_B3}S<409Ff*p8+nETn3T6hJ4}vqFcT_I@ zFpsh^(0cs+JoLX}KfZA6g3>cu&p*E( zS_i2uaTxBor2GBr+^yS&LuhARE}=C{=yPq+@%ssH9xkbEBwOAlPgt_Ryog4OMTp88 zxu-#~8DdeYX@|l3)3jg#D)O5nkP6ueOc)eIVzyvG5_q$4)3CUc0PN*dgm$Vz?9-qybjtO0xMc+)=vI%lA z4#^qnexfmyY);#3n6_pF|Um3Pp7FCy4&( z1k#-~%`@v_hj@H|cP08g^>OSwOX$=2RxkqnUZy>6^^xtSw`9MMT0#PY6h|R@sRg1c zM5i=~wqU`~q0yp1MF27*g-fON@Oa79a=;{;6ZHr24ALe^Ios z`auL$vgiz^;R@QMsaZrSy`@ja=h?_^NV>Wdd({Cw*zsip0(VrrC`Ki8MQIXEc*CH` zksbLrjic!erVps9zh-gegLn+0&o>4qs8a`+O`U*89g@&9By?YtOuLnrL}5HD(v=SF zJtbUUtfWi6%3JXQ@Tyc4vJ)5{n$Y}B3j^Y)FnyHC8tAD%X$arc$FU&sk3u4vPTIG! z`W`K;+>%Wws7CicX$q65_&1EbVEJ9~!{aNUQ;nt?JXw;Bm~b+c;Dva1N{cA>c}w*_ z#HR|%#ZGhN5u+LI6T{3at6>rH8fKH+?&w=APMq=s$g$#i&xl<0cX z^>Mf!PPfFKlVagL<@>K@Gh>0>6d(J^<%97U3zWwE;*IIQpwUO|%-pOgh9gZ7MIdJM z(mt)F5$^>Pjrk`Qd~5VmHNcRnMwl^{6Z!J6C&aT4wdPuCzsyE1ag%KH(F)V1&D?4r)q8m;}(#yV05BH z=!XaMojh7I>~gCGDOD-(0#*$5V|fY_OOh%tY;~<*SiL}m5R`5y4-aMX&nQSLF3lG@ z3P!jW!b$CfWcX2DSWYB|$czv4?g&q*m{}KCJW_|&Q&&r7psBFWrM6HJO}o7G%|P)~ z3sYGF3^-#{$0_dy{PvF*BR-HAY;D~Ww;6)9zN=gP4@@xEdaDIvS4pZojY~P08svQ<@O)Dos zN@wG4^eGFj^S=Aq>lJ3>0!wKoO~%^}3B&)wFW=s`M2_G8tD%(mo?fIqC_)bi2GKS0 z<9}m5(Wr!=nfa*D5~TbYi|}!J?=skFV+-u`Nf+I)hJ9e05=(6Fy9L(WdY|OrbM6!W z)UTx_?Z~oaws__+M4VfqCvy5AVX%`WmfhDlaAPDoE`qe$O9s zKG8dK`=mhBo%j~EW&ECOmWv5#y;XTBY5d`@#0*I)0+ z9z3NH<{3^AowM~8yl&50DlhiCw+?ihU#Z!)Qf<-d%LrQwth>cNNl9;|Y1s=$a~p=w z$Pdg(wto7aro|wUGhCIf)sGmJo_PlhpYS6;A@A@MnjjXVW%)ohl-mb<;#r|>d;@^f zUXm>+2FnhOic#Ll0Nn-f-eK91_`U?Q;||tQt9kcJ!Xd>pd)$NZ6H&tDi)%lit80(3 z(?IXkGh2+dUqJm9wXaa{Sg!PRN+~V<4#*7IpnL`7b&WeXH3{97XcUUPD!Jl(1=L4t zw4hsATa*#K7UhA*b^VYxF-om#Ra0J1sW}lcEsreh2=Ar-(&wAJKSSR^Y3Arotc${Y-6Q%UqHTm zVHm=N2%Hgig!Gv|5W2GS{oZg-{jy`aH!@uP=zfi#)m}MYKrt#xNDu#sJ%*iLN+F^9 zC8n^0(hI;VA&$jxG8q3C2(}l0HNPSscZfiZe?e(9*pth!HyB`6(7l;oqjjNe5yqV? z)0GLIIeXRr7;BA4Rq9{+qjwOCLh;y$f05==6qJfcg(><_^+zW)nxH`V(UaL0+PPfw zgfO(J^ba<-3HBA~p!{6+JUrM;5T+db#Ae}hiSJu2DM|&<6oOfeh5_evoqzV@35tq;IwhGw&Q)%; z@UpPz!+y*nDLm3$Df_ZQ@hG-_e`iL2_rngd_rZ38QB>!}h3D_MILsws*n>NdF>>({ zOh-!P%sxvE_*3DTB2PAPd941;@NC(H(J7Rp`Zyk;oNM5MKC8aFFx^st_#=kqBv7}@ zQLwPw38P11_Hi`5uYO{FLS_xz>51az2Oqr{EPTVOu;|=Z9?G=%l7dGzKipQ1mu^P# z(Iv*a&Z5B*lDy%O3*;32z&Jnz=QVeIePU+7@IfA`9w*i*05L?VNDh0_Y#9`1KMQ4~3JVvIIs$mN`Uy$=rd?~W!y-~gYQ*im#YV?X>C|i}v5Ggfqrl$O zUlI6t8b$kwuU|7gn7XhX8s zWj=Z=enhfJKMf1SF((98@>2sjO>C|p26lf~F;^wHr64dod=zrtt|iAe?%6Xp+R})@ zY)(q)j{#Ww_APZRV%ttlx7$f5(mA7e3x0D4C34>faG(Q5th`D(T zIPPvvjh6tWH&EJC+SF0Jrsb%zK@@&s?njmOSj@U~4Z+iQM;?FWbMUUSa=Ma(8Cdj# z%t_KB)enAw_|+7T%^_0h92p0LH9%?Xk$%^pX;65cb;6a5bAj@S%d-(?;fS=u4OhCR z`QaBf8^+)Mv44Z!GD>cR@5W`C0-Rv>aY#&3GeF_SR$^`#ltxp`Mjq)i<}HPF)*u!E zL~=W6rarne(67~_X*Spx%C#nf@QHX{zx}E3tO~|r3J^Df@f;%=$=d-+frasRV@fI*wm}&`o!62(6 z=D37)lFgtLB$sa~3*s&Dto#_0C#E3vh7Tmg)#shwLaraz$5G%3BoI;-*!a2R%u#A~ zqHh(9?gJ^#_!`S#bd)1nPoQ#%i|}Y zCMiJK3Cay}_OS(eYfkgl^^{HP@$N%8CN_;0j0J=89r+@yxkNL>f!QZ_R?J2or!#5= zg3bnyg<*z>@e9r{M#M5=lujvR5b`F&&`5Ub%oLA;KIa{aHW)NRjL~P-#g7ppBPCHT z`6jpWsqs&3(Bu-)eB`p5Sq z%C^K@A@toqKB0`%f)|Wv!+%dxtWDzds&z^fea^>G798qt=wL$1z2D4C#T%!25t8eS z!bN10PM5^U?FI6fFSN|AeT#j;DDc+hupjtaH`v@=J8W$UVeV}fo*`B!TtMnGt$}Gs#EK&FBO9507AYQgkZ4*(DXH)o z1MG~wM^_tgojV-rRoQMJ`_KnF9cl3kOYeM)W>0(xHm5M5V7trngm*66>2~ z)Man*41Gls%>{sDc$CT~=>`4h3|M)4@s*aoVjMgTt1n_@vwbBWN9ivtW6;zVWYJS` zcBZnaOL0OHTzxJ_jy|*HA``q{Kqm@ZQu!!divdmaF4^j4E?grQDC;dT4G)%a)ghBq z9HB6+xk`#iqP~M{FLwd1T)ccgc&rRuOA5UfF0^LWg0rX}kIGvUUb^?Y&Zn-!r~3a^ zOPy1Ikt>Yuq$6T3%A)F|M^@!=PoJikm0Euxy;p0KN2AK;W1?$r z>zt3HVY^wYPv&$Op}(Hk=k2Ou3+++OEhsoI$%5w&m7ii#h0XxG#%842PVpapi7%zV54b(x!dSmx|*OAGFPKqP5=qFI`e z7>iT~wr|s?2&>uF{Ow9Pq-9?L6zxaSjH7*~e4~Y+^c5%U<2ozl6xyFlayMoRiaes* zOn~p4N1PF3Ib^dB9@j&Z?71F?R4)9juVY9_lQ&cuYQY=V;Zgi}A{?FSEauco9;&PZ_?C{Mo-L!`Gy(qyBo3C2N7#YI39$`LGL2-(o6CxHy|Z>YN#4_ zQWcEOh!hIzp=JyRSpBTRPtmdLKP4+}h>f(R>N(h2ASa*C-amgoX@16Bnv=fN#AlT! z3Qc`2EKz2hr7mlfxc*?*xkGNY)@;2kYU%x)?3Y(x-CX~tTB?gUb6scPBXBV<&*P^7 z3EU6ULn=n6K>jHdkpxN=Z5+dQK$#8+it!_@J5La%ol|I-g0yz~6k+Z|?&JdYsBQK% zFztG!vS>qc`l~R1e*opqZ#yTNFMP-71R50->J5L{I#@I%djaz{>n9$nd znIC;(*IrOq3&b69*olmMii{~H!d#fSWUfC_VW6J?vv*>Tgfq@Jf+&f$Zt?eeW~`5# zugz&OYxV;%5ddH2Jw(Oa5cmtp&f%os^MWLdxg78Y(H(5|xp`~$)Ft(2r%isYb1V;x z4Ka@4XGr1G!1TwTV2iESt9pY`|MDqJ!Q(M1NO&*6GrQ)v=Ofm)ln}{DFe4ct;k<_I zF}GxfLjI4<>pIH3^-^I$nBFUy`2cc};*>|soC&s1E(N^%c;$uCf*rSaEtelUFh)5a zrqLSi-U-W&{U28BZ2QxN($d^YSRN3215x)rTcUsJn00G$8L;{I6ZkXmu1mbDpKDkx zp1I73tV>@pI)iqspn)|05!ao2l3-bjfZdLAH8TB`%Ry?>`AU(C>+6#xViDj{q~h=p zNIol(n*m5A>qHCH@#I8y3| zLy;$baG{hD{^$CHX=dQ0St z{ZmMqunNCnQs8G;r<9+aXMELKxIlh1gRyvk(DR1;2)CADBW!7pnURn1nI36leR2&+ z(lo=sz-NdWVbtR!j$qmyv7XDkr^4*0rUxN0uavtRT z;D(=Q{D5Lu&?!z3CCyy#a1+%BcfJ2^N;71*{~@nm z1j9VQyucU_(F2y=PY|7V&`-wAZS0GZ`)cBG2mVc~TS>rPyWvD>o;yE7>0Iu3lV+92 zB(!l5$u%s7bOt{%6sh(W8Rm}HgL#X2iY!3WnRwP`Kw_*LjferKLcqbsbL|iyE--b0 zUQ}$sy)k!>ei}S+M{@d*_7=AuR$A7&D`{D~B>g=p1U`0tYn&v1*Xp?pK8_5|1y-C@ z+(}h1T2NaOFg~-2z8Pj-Yc6W)&iP8j%cGHlpwzY_7Vv)QjL{~S+d{>()BWo8Ie6+8 z^frKe_Cr#W7f)bAx|N=s8Uo@&gQbx;ko@bXh15m zbGIicI{qeFaEBeayFz31vEayOG%ahlm7W8PEsAM_(#Db5)P$RDv_D+8uEyLuAjH8V zX(X+~&CFmZy_Go(=4}h}JvekTZy}|%*s?VJ0Eu=iu=Ly+O0$^)aWb~YqL^=ILoKk= zn3urghX`W}=LHWRb@5MUydm8ne0NxoIv>)au3d;XpW2w*Y_ges9xLH`L~S^M?ManBBYB^o0T*0S!4yOjzacr|wT6!ywdayuuoXobLSc}4%3)1eLzv~?s zP&~FcC4TEK3xx6XH}vrSyQhT97x!p)k6Yxip#McRVN15- zm!HqS9FoIVEGBAm+aFh;4O%U>EgsM{Yl)n>GrLg#8oL{3ER%2J(KRa#;LOPu(AGOxwEqW)WnVg~--4E_x{G|~xb$PvJN)llqAM0u@)*wW zEIZtA^fB*4!ah|oMI`ry+c;#T{TiF?dkNrdjOha)x9)3JhY-v=bOasV!lyBiJ}~AT zGN1Xdub}}ztiLv-meBC&%TkE&qLcZ>3rlr$vP(kJ5KTOu9Wxo@J2=Q5BuuhN*t!*$Gdg7*(wqmf8>!U6J^=Z2TkSQ-mUz zx)GA;A6F8R9yzT^5){*+nv?N6{h~z#p8QID5*3rHioW6nGm3xh|!_dsqF3$F$f97V7Gva1w6Ve`7Km09_ zUO(0ALAJ5I6@8M`csfZr!awtfkfwSsssCeQ+We1?F5Z zGHK;|G6lKcS0kKkQ`slFmA0VYKX3DBgmmRQ@rp}KyXoob9%&IEtZjXT?a*!wf$Jhw z4?fuBTOt9e$Zno7u<{gfDlA$-gdadH=s<3RY2(<1F>!trwUKPQ-xBh^EXcZA}?B7^)U7GelN`mhFG%{jOWIt^S8vhFTnOz1NDh)ZwrCzfSlw&WIQ* z5x3aRj2QQ{wyWI%+xcG3;D^V5>Iz(jiA8EG>pUeY zY~;Rdq-yYn11m``TF2kgf2Z)M=5DIgQBI3wL2$fO+5u|pXuO#biD!Z-p zpMOyQyS;!Lar*{(3s~c_^Z1?GBW1D%70!K2Vy-a)EGrpxXi6NE;k(k)5l z(HSLH3)n$h!o64?FA>J~c^Rli|yjA<5$Rqi~v_3CnT z`nSK2kb}SN$=IknecwVoX>5V~I1eMrEIgOMRr;0_98%0{C}I{nLTjUz`sHAZQg7)c zaOb;Rn6r)YeRZs{vVdpM~1 zB|wa3@_-S@C-FjjT>;yD-~@d@4_QMiR&cTq79AkY+pVv~;A@ z8jQEN?FzSyzz1{ox3-k{cIwaeg`>bbMV-?KtEg0NNg-HU(oBq6A@{DZaLE`<-33Hf z&mecIXPBjH63O1Rrr-WqsxGZ)O;mP(u|vJY(kHn$8IQ)PKzgq6wKc#4UmXo?Vw@JhMOxOn-MG~UOtF)p1=Yp=*do8IJ-aByByZUml{)eGJEJ_}C zuzs%1=SH!`-F}uu8ycnt+<~SV>GFFi=K0B$8#KRzK1n8kyo1Y~^I$?La-}y+pG`3`_0b-EcS*KGQc~=^H6>_?H7DpIJ?GXZ(vLz5 zS`*Edwf&4fZFe#B8BL}4)`>=++1|1R*51DbiRR8G+ca9xbxqr+0b*zM%y9G4>f@SN zldP88!F89>db=TYfo-p@(Pq)*2)L!!k0xI~oBa8G&(^nIpXrm-f6wWs#>*C!-JB~S z^(<$FuVb}mAGbM1AO+k3$u%sBme4ogGt+{k;-4odFQ1FxmUJ}FH9&L>GI$+S&>4^c zl51ED=?p5xW25#gRg3z^=CyE6V>9;s>7xL#xpotB%k0}_zWpdI>V~FxMO&ViFYgM- zZZC*IB&yty#)^0Lk3{lDPgZpNfW)dNPo)%&biB_xp?gP3G@p)fx|;!KVwVm zqEw&Qs?Gx20{2ln&7_$%TKpXN5Jc0=8gS4P6lO?p{Ud9lc@0odrY1k4oCsi>fklp? zMu;qk1k;ofIkg5s1xVp2a>rhZet?g|N8B1Aedb?NU2g=)<>UPMa8)oZDvro*5ZwO3c`GLrawWma9y!s2dlO9F)oqBUWxNUccRGJ~h2hJFj zL&`>LTfiA&!C=PcJx`c(is~X*POHyXRN)?PjSG34)f7|AM*is(Hwa342SQ`GZ>c4X zd~^-FX;PSWqD=4kx~$vMUslN^-#lYIFuuV zUlWqCordcDap-IYgVK_MZ<7!>p{!Dn8o@B6H5Q2FI@Eq?&DhD{K5937onqS(_URgr zQ|F_zRZNT88R%c9NDYx(Z!RO*^UK&-+ki7`TS&%&B)a;i478IHhV5n!ixT}P^CBqH z?}Iad1lAHBDk+dy-sb;nf5kEWNv6zSU#z5@{A1EP&&;e0C?;h3!@_5KE~x6&=}_vCbZ z^CixGKJz0NPZ0jXMYIV@9}$LdjP+e z@wUr?BG9rdRnFE4yQ8cmFye?CMltP%l(X*^G(Sb8xrGtdQSab2GVxD$q2vR~@RDa> zcuTeK>BI#?$I+>(Jknk1C_avS)zzGJGoS(Q$QiHuOy$dCCOHf}n`tXy@qC6$xtO*; zZnvk1=d!Y^E>Mc-J4wpd-%Cj^B=!?#)>$e>XP}SUR7u&lL4F5q*9 zI0&zyFgUsRe2v9=Ia| zugjx@aZpXmjWCW`^LEBSJ?}0G+x>dx5|$kkISk@vMBCr$?hZKF+<6&y0n+gdvog{J zkjgQ$2R9ifiG#<9AxWiT3b$~G7Ot(G>;2@n-dh79$$*xvJsov~EMVv5#YykZ8v%^DtdoTL z+x%e2>p@O48yjtcB`jZmqaNi1<|$a|5VRY9G^I3OQ0j)Xtv;wpe69ZhL5IG8X2CUp zLFov}4FG6Bm%l@bogaa0H^L&j0ly`-IlRshkzB_ur(aRk0zOD0_Ax_@Onz7cLt07I zn&OznoqUWin_0MLI&=Av7Gv2tHn$-yFtJ-HR$V8lA-x46u7x15i5^+AR5`JCB|jpa za}2C+sd&RT&dMXDqWA#tA26l6Q;rZu!{8wr&#TYI+_jZkz*(>Xp^cemprZUj?uyr3 z3e%1>3;MCw4dU=%Kp#YHkJm6W>-lPB6&d95C7L}N)S=@V<4136Ov4nxliCeW^lpV0 zap(^o4o3Jk)ZN zdP675RaZWK0ImV8-^3zxo{o5V@a$0 zkPY7zpIo%}Y~~w8R@YaI7a-Bn<}&i9#5hTHY2HCeDuxbMuS7?cn)xU|9$YJlo}pIb z0D?m@XA58_cdo`xIQItQX^h~m_(-EPZd320?surShK`?Y+K?2N?(tt5@dY#Gyxy{R z9?ch+j8xa?xt&izZ_$P{A<|``+Sya}_N3c(0!)XzV0bhxNImBQ#XOD|dfPW80MMIh z<{G8SzOe8Eg1`jPFhJCybLy#|E_0Ux!fpAMzG8F=Bw-Qjgl{TcKeQ}z8KvGJIw7a8+J>~pi?e+|5D4gR%~s9GGN-RFU;gYZBP%v}7COl|plhr728qd7bOWPX9p@M&PPj$kzQ zal=?ZpTJ^iYdEKYU3KkUHoHhiD`vM8geR#GivUs||FG1%G>M0IrCkc}b}EfIV>oCx z$-CB#3zEtZ5U7v5YVGnHEV-d;_(0lCayXl@)tm8#^nL+ZWQtL5hcs*3H1h#s=U!OM zgtQnY?3P#82WI(qp&czmKs0G`5**k{W!~H<$W;%=N#oWvV6C(GobR z3($~O62tvISG;k#A&F{;LlUK8no~4fGn0>&rNXkV`bnpO%K(n`!F7`QNjP(jXB)QZYYkk66btx>#Lji~&UM7FdI|KM4nZm$ z97cD61xe6!_0tg+V96z6U@EoFTp+3p9!c?m!6`;8&kivkC*mHvo|{g2OY1)8-~Kuy zGx~Vc{;$s%Ox+GXBAK}ZpYc17JOz)F8EF`E9_5{qXI`Y{pcuJ8aI9KyiE`-!?w;*4 z7UP7YpguueOkXWS-lrZhFNBju8%CiKCky$>u!=s8LJ#y#Xpf$l1t$NTlxX!jY4B*2 z6w<63JqYoIX2Bw|dW9{daVO1QsL|V_zPfTl;*f1}eC)+EB6pyzc}RBwzOH73dB3E> z*_{t)nVd&zRF`xVYw_l@LK-pXs?RK=w;eBW`wmr_IG9GrJ7@znvo~nt419*2o8g|b zUnVHG;GBKl13epJw%_%#tZM??vVhCdT*9!M2nU;DUB7L3Y4ZN-5&C7co!Vaqr=h30 z{d#ErFqrr%&es9>=@071YXkC5FUYxD-p{+TGT0g}7?!7))-f7eecQ~IgKWHeRaq8h zzNPj!MM?OFA-JT{japd9LDkGAV{{M%+jM!htRU@>whl2~N5}>4yV;QV!rvvR@6BQQ zEhMC)>)!1j-4tZtI>5||apvujm_;O)6opCw27Mu!OZKDa%JV2(fPO@a#~oVhBug^W zEkI$wn+UOt5Z?@GPHS-J#6(q6xdm`nbRP72TR(2=`a^ter$QIzl5ZhRLQ(^~eC!Y< z=Ta~_1#&QVI3soLfxPF?|`V@MC#_WwY*%A1R9ICMwDvUm##z41yTqdoRt4KH2e)lX^)1|7+d zD*DXd7RgDz#np1JrM|C!sNYf|E?h-&{a;J*wJ?ciUh988a!}>#t77a?t7cL$RJC=5 zS!>|g{MsgOH<3^w;+!jK=Z^0+RAdsVDuhq zGvJ1*C&3%`f2!E+oz3O|W9Jqib0gjer{1kzE&sqiu}bSb(gHn~_Qhre>k#~lwL3wZ zIkhEe1NwG7eQr%8580?v={@B;6mv7?oeN@6vmqK-PyXiF-P?5C zgX>R$S-Vx+Ebq&x3z(T=tqYedbt2%9Aas%gM907-V~|*_Uf=1daMj)qnwKBEupiHg zWc0*r_(B_QGg$&Ki7&QnWiM=33aRS0VFa1;i^~nYYfgteEcDN}Mq5(QCHV1$rM?*q z1<6qU#tGjZRq9Av{hw>8^s4`%7OW-L@~+#8pQWCd`H#<4;8qLxTBllwJ=N8`Qe91V zh$Kedm7Z?E6+v?7UjpP(@c{%?{g@(a;2L@0#3gg(FI=SnvxpNRpLY;)NUepsB&jn2;u(He z<`gjmU`|ox#y8e)>Kv}5IHeh#M{_UCWp^{iMp;p%wiRGpkWZ%*o5FQPBzK~>?BZmY zZx9a31>?;}XP9;zA?^e%MQN~PMxL%}b_zJRF&CsTSv3_>Hi~TM6r8E7`_e6`jE~R*y!fDXAJ0qdy1~Jbv+RJ38s`w zXRRr5OIptteMVD1RogxOFSE;XC+p0lMGFv&1ou7)5Kp%E)*8hEyMw7u>{b@b+Sjs6 z&aan_Z=&sV_fhNF;d6?y%U9ytbnz0|4M$Lpv)_O`#L^}8+x>=_lTqqp^9|5t2hjj|W^g`wWJ*$HsWO+0@qwO4-rYP0< z2%E>=u@>@@hok2J0zwDrk*I&0**UEl88O zA%LGh8s7gl_Rr}XBYhl_a>FE#TRkn~lG-1z_1e{BgZhajbSK+ZiY@1Ebv&rJ!_Q3yjL_bJ?fCX8AB<|W<&<`#A?7p#Zwqu8Q?w1eB}3ZbnC%H*@+ zQTWvV1=sn8G~V>>M~6Y+&SDOOGbjS_Ah={ccP&jHEV|(gv5j%}QQHoDPadmxyWz)Z z?5+^Ryd)}nvLS6|_H+ZFqiJn~Ikh>`h`IP>X|Ij!dx2iXebnFn(gLI_`8a;Y_ITeu z)D!uAG!i)Tr)!X3;@szR8qIb$*8hHzvqh&H>n*hFrX`W5}jtFAE?<~k&Jj>#?0!Y;$rGN(igV9lNOpz z;2MUh=Nm!PwN(q-(YmBFsH!0C;6Bj*1W#xz8w7K+&&@P?<0c%PsgI*!QBaxA+D5gR zFDkntDHTytna|pW@Lrkn3!+nAzA18_-e%}Zxm?L$*SrHp_mPXzCaTsZ~eT5(7V85FN})iz=ZH5S_U> z#ptJG;}_E##B+qv8FC{Eb?VAD->QsFC; zSM+i0FxzvhTVhYL)2tjdI8&rXA4ANIM{Mk$jT>2KnwMnj5_w#|1+r!{HwBNR9R(e- z3F6fL(gN;+v&xL2ku`d{4$;Tfnw7I}=3f0Y^#@YSn%Y+~MpGo4Xi<5juoLB?99HiX z7o^O$KsH|lb4fYP9`)jgcQ6KqiPF96w_mtW|S8s`L7B>ve%!o6xeMS0E^vay63kTC8{C+Bq6{qAKj9+`xALSy5w560ULvO(+Sf-j7_yViM; z?q2$2!Rcwhrj_sT>|B?f?ev?wns*+L&~Hr*Z`inEalhw{0f^PgZ~K3U;j08JUy+p3 z%@uPn%&u7WC;~gC5*?S^V~5#QZwxS+o3!xq2upCh<;v13*#oMrIcvL2ck;WYTs{@) zBVkc*1ZU={nuF^FUu$DI_iPEKhUCUI#S<;A*cU7FTY*fl1fv`K4cJnNZEPRx!&BU` zja&RHo3Lzg=djx+_>!8e#1Ey{QEUa@lOGm+0ll@;9<`X>NQT)}AW6Y;b;V{RcfWA9 zgCn)T6>|pRO5sCUm5~Gv6`Lq?YImbemaUK!P{yDleJl#5g%dihvs`E`c3swtf-P@# z&5Is?4C_|5PX&UMtQAQ$-9%?tRO?z;sMR9Mc-{0Ob639B5?q0P91lv!KnZ{c*GAS0 z=d(vXA5N%R$rZAZUFhsiFAUam@t)~D`f()>T<^8sf}4bxo!`i2))FAmcZ^i+c7|U= zEV|pQ17*U1#G+}&G7xaWqhlyjPv%-|orM@wWx2Nxz~BEG1%X76G`owlhv|@FL4`8Z zHYc2%+V%d43?lD}#|hREW<5f4#M+RXCNq1=mIatr1i4qNvY_2P=Hl{+XY)* zQ}^=8Qpc5!a5cpUSs>yIau7_FT(=SDCF36nq)1Eb_qJ*rvQ(mhKVh|%K2>&Ag;!fR zMpE?;sv~5dlP8!*;}_L_A1wG|uU}nd&>{s0c!z|(FVLe}IyV;9J~jjw%r{C`9iMT& zAStG+tAC^9p2!=J6f7qD^P-qg)TMXpXug@QJG=#|)CCKtB1l>>W_TMC%tp;rR$kVp zq7i*4A2nTF5pDtV?)+Gud++(J?a5pV<4U_Yk)gZtb zija0qBQ!&JuR@feY*4X@kklt;(bpB40?GiwU=olz+4V%{0pt0^>`SYLK-7;5cxS$XjX_l16GT$?($;u(G+slwOIzVzjg9zNFuSq(_VP{>W{0wA1{Ew5 z2;A$6{6XmouE2Wk=Yh?mh}ltEhM7t0-02E*Nx^(AJ7B3fq1Y<*2`aMBQPO5+c&8$8 zttdL9_Ss}_z+83kg85UCgzUBm9leW|o>&LvJ@8I6ho~7J*KfZ^l?)My9VIIOO&YMA zP0%VGo(V=+Dk))BRe4mANoxHg!dmfWO0ITTU+n7bp3_3G2}wyek-BWsWKLSJi4ce| zP&k5=RV#49PE8SM)F;d$@<5M@GiHHFD~qhJU}_@MPTN0Zsnqo9oz0+>jJ#>uii}z5 zQs)g;*y?L5KT>obZ<~<0LTPQ=Xt4#$nY-wWupWbWyiVa7hJucQeu#&h>4? zrcb1h(C6}!wp62$)Q@oPTt0rzPAH zPVQ1+EZP^K282<8ea>=^Rl!MX|GgQ)35#C2dFt0dhZ8myD)FmeS?av(MjOVsWq&Z; zd^e1E!F{gNQSO+=cYncL+rbwb{6NcffULrdGLq0!D^k&ySi2wlu1IH+WpS>1?AnwT zskmG!8%f_aS9cFsYB64FG~!?MS<$fh*GBe0!cN13+N&`_D)9h1x4-{Y1Xl{CGZrPr zyu$?}rRBqRe@k(t-9_M??XDc9C-e46+a1;H+(DWlse59H1W$c(x2>d$R=BiE7bJ7n zI~#578!!cTZ)C;s!>k`h%T4OfwX*WI>sTB6%mXf!&qy^Qb?$Wfy4ZjkPpRAy%T1(; zNpZ^1nqkFBDMM7STfM8PgCShASCjbRAv=E3YOqR22W`GiPKm$nzhQOLufYHe~z?! zNr$l0{{WK-i!Ni8s9w;XiJqwy!Z=EVB06ccWt4OD3M^7@s*Acs_G+A0u7>xzvSGbE z@ajg60y?kBk+89$tKIL!oOV&|&OZXxMrQ3C@5~bvK4Jd^*JZ4p`MR)DNbv})^^zWT zU7H14N9lQO3DpLOAD~sbdT7d1MN*ofq?=y)kK@=}QLZFZCznP5iFrzW!K4eihG>FK z;KoQh1ek>r(orXs87X|B{{&cR!4j03$&|7ZA7vkrQ;BEt>(vGyfY*8OoE|~#TckuA zofcN5ggZ2&pG{@UbB0MOOmalnn6a_pvt}W!*E@eImT*RU7Uv1%)S{9GIjiW`H-in; zlvu@2sdh#hMnEajfJ|tTiW48TXin-Vd}zcxBHV6}eB2C6C;3L0^;Q&TQ*%N=mZ~dz zcN1n+b0vI$y?&VaC|H7#t%uCjr-8PWJ{WgQU_U+nB9PCHQv6h;&!n-?SXX_?lGX={ zWU0!0H)*vbD1Au9tkQz&TO?}LlO)PBW}_!kt@MV;Y^7O9y}f25O!gp|N2wG{mkb(_ zO|oXKK_#2m%j93C0+UoAUQ-mjNWD%Mpc9G62VaRr7OiSXD;8db7%2#>FOx9pRmR6K zR84SwxrWam;zYF;?Hb85f<8iuP7nFMn#oW?lM7HhDdXT;nASAAmG(kznzdu?j=3-C z6Y`FjgY)|ZCE8e7YfzDGG)3KxI8(cz-0>6X-)0Na)C0Z7yJl=dmVN2n&Ix%4=7Y12 zc6*|ifC2SHFHGfxZOo8@Pxc{Lf)jnfwu5K=<7hyYeOO~v7lPRdQ&D_jJOi(#VBW24 zd-?}#!Ez>6RnbPIP6DgEvrZeNht^A$ep|gM@0iKXq9)grQwi?EQLvoJN0p-xaGR0U z&ybqXbgur@9I0LJ)duq@%VLipR>r89WV6rML^k;ZCzA`%Ay`c0(A5Nm&F8f_y1snU zqr6iTP%FLE3cW6%AEEVj!w&M@oRK9+AENWz-iYe|KvI9UdcmwB*%ee0Kvw9Q+T4*l z%E42$$e8#GCTxyB3N_c*$>-4X09r2)HoyQT7t_1w9f+$?h9IkaYSKOn~g@*6+@`P#C9@^PAMLn5J^u8H?iOVzY$ zoq-K%5m-6l&}V>WwS3SMepIpW2D22%2^F}CUXWbF8GPV>uWfixOXVPe5+Vhq6b~vz zw(x~yCPfM`!SyZ}AgXFbq<$TrClPpO?NIi^V%vkpge96KxZEJ;hz)aYa+R4~sqUwT=6*Qz~{p z68GcLqI1?~xky_^cY3chcm7rWZrO+qY7e;HZsg;vnct!%s7PIqL@6WWY3_)?`}G(SmZ6eV zpbM1A5uJi7F101DyCtW(N`EoxBIaN?)uoeThS_nctYqh7-N|8nW6iEoOE9T8DMgis z%7mm)Ot1u_RN{&HP4jyo7Y{@3!4qlQc(#N^Xsm>n+M2OP<)7KkGqeWo_<=TrHDj$0 zm5QpphOM9!S?4=-u)Y?%MH&pBxo;DgN7ts{D~+SOWC&w2j*ioJL^3mDQDV5R84`VU z1Uuw2RqIH%J4$%4Kf7D*m5N~VYCU#)rM10nL%`wR4)=0!thnFD9H>RF1fC4ch_24?E^!ngbVNP3^79) z&HFsc1dVr77fv_<&9dhAlwkgtj!b|qn8Gnj(LgUU6{D9~!|bNMjS9fT%G?wl6PDB* z=~79#O?5&_4|6pq?C71YT5@naO4jOPa!bsK~<06k&F_;9r02^a!MkyM|qzmc>l4W%%FdJ*f z4lAk6Cb6=gptdBH_>J^5h1+mV&4E7|rM%A%0mSB{M4S&{X6R&))Yg2s5R;}^17QO9sLLY3B zTFrK+Y_@3DZ~L+pf=LA?>rCA38|DF#Z0w_8uJ1$gBZA`OYhTHc6;k-rRHC5?zmXKD zqhJY6q);Zznxzu)cEc<0t^~&=Lz&#L!IY0Xj~26N#pHUab=Ey{PpqLscQtxTw=o-L z?)fd{`6;J6mp+53VjkV1C|gI0)1+N=sw?rRb$U416w>Xzf#{mF>V*!rpsQY0rRdUc zv~Iy=ZJitgrQ64ZF`?tV*62LE2qv6?x#V>uOf z{i|z9Oc4sZq2$>2Db(w2Th6>>U_;q^zGC_CG}@^@vYjk3X9w2Z)kq=1AZ9vQgXSbMfVoGvj(9^=;ADEpZ=HM(Bk-3?mInGc9?3^Au7vOcJxt4XtzECwM zoHvlOg6ZM8G%a#7TtDXt<67MKot4F366Q~^BMPId)Ey%6;OHweCRVeG1g)}-B$U83 zn$}{l&I*rl!gj&NEA8f03+`@hP0>0PHWM)Kgjr^=Qa~C)f^Z%=HKue~Iibz&d+y8G zA~YlGH^9vc8=L8yif1?8O2eXl=GTL@kG}v-9XUPB5R~AEG1Z+@88F3u(`$=c?=(OI zUiV41RRUoO-DZr|_j0pPnv~-D>h@WY-1%pP>I5k;?_jiTX{`kKHqiIw1L&=?Q8QWnXZFLOf=NfT7WuDZs z10?#&*ik@MZ%&+Wa@GN7(+VK7^NuSzG}rbsUuqV&hE#m@_S9O{z4R$wwsO@s0Hp+! zyRddd8jNnw|9h)vqR*&muIMk6yFdx=6?I%3#*9)epB5~|kt*Is?l*!MLjNB3=xNNN zSzR8-E1F4by)#~rqGPU;BdyWnfaH`O(^7K}u=FQsJ?edT5kPxcNAg6L{mgfuU^vx` zMR!Bo?^Ls24dFf@r6=%^U>Qt?I5{W9o+uwJ4p<2TOTTgn6GLL-!y9b2L-Mg+M%2h+0e1`tJ zZJ$!*h%=OfC(#t8Z~2VDtmpY4#pHsi2~L<@_1>87n(Ujav&`Q8to2%pLO6)leO&WH zkm3%F9ZUR11!gr3^A0ocS5{CzYrU)~DushcQ(VQ_1dD8)yCVmFbi!tA3pvt)d55sl z^&V)wP7AHK)kl%NbVZe-HDdk%Tk7QwCE<>BscWuH{W1z^#j1MSf$(^0SlC;Al{W+(oHU2)3L)MU8qa7AKmd0>&h^h73D-gtB7 zhf($C`!vB4c52f7rdgk1r?r@b4>hsPk|Vm3$PBV1fggf+!K`qzPB+axAvl-D1d4Q&;pPh-JTo>k zH`Avoi`?p;pJ1arZYHvctN7T5$=A%dVOEMJSi*_qP_}U@(P&AJ#gI+k>BdNEvdOb% z!>7okHPkX8jfsClM#|ueDpvt@0-C$I;Eau>Yv}My*v27G;BMuhbMao(&go&=U>)-G z#F}^|9HO+n?7w@vFa0TKJ&7TwyZz>-wKSfwagXL&>Yo%2 z!SNXtL~0r0kW`v~b5-}FEBEL)f1Ua74t;O;BW~Rf2k<>QPekc4b+;z=>w(9J$K`w? z*?k~;kQ27g;C%>c@zcVd`R=(!{6(_XaFB=@X1b>kCD?Q?WhBE|HS}&l8Pt`R;>C_yNc0%Hw{-=~m)ZNYR!&*Pjcg+19 z>X^xSbdSzA)bqF>iamxp-tSQoC=-@o#G*u~fxJ@nI+@&So<9*2mY|dmvZ&BOSmdS^ zF4k~)s=3aZ`9ZCt>z8n!^Wjt__a9Jmw%+W&foA?Jxwhn^-Au4tAVV?dJF{-JNpwyR zA0fp7`tPD~U4s!-Tu%5fSmg;N8X>)5#yl>M9@}%e+w<~fQpPn;erf(8iO`w^(^!#IA7khY@4QjGs zA;=;*h{&FZ(xT$$8T6C%_rHl$t1g(sP9LzC@IgyBh<(bW)|)M_x+y~IM3{;@3He8H4jxu?_FeE!OVmVsqv3)%7^(0XwC3lN=LF%?6TK6WaT5t}|U#BW$Jj65N^ ztr4^FEA4ZBBPy|p99uEI02$fuq8n)v=Wb0#{pj;?mRN#Ogw{#7hPzMYR=XQN%{{el zR(sI5$~^KFV-H@b6nB`zjxSkPsFO`r#Z=-KqG9BzHb-q7?51AF%E<1X82uq{CKsSH;R4zCT4&ubGJkW$T-!%> z$1mu6_WzzSr|ICy9Gk9*_nthYTV~7OVAG{|XQQGznfPv1PbQ>8kWH{$aN7-|`4nuA zt4r-e!iiFeoqWP?!&*pw&m2!?L@vlfV*9ObDYbO18q6jO)gQ$YK6QUU#+a@hallZo z-df2cEQ4vC<=Jre|FqxDkJD^mQrit_snL&a?5UCT%C=&d(=1-;v%457BO{p^e!bK43AwJa)jQI0cxEjxu2hj;X{m z@=>#iPd3s%(LB5E(OHqs)L3aT+2`F%ycxrzG+z|H-fuN0RQELT2TofX_MnKfD=R#L z>jmgD!m?wEXVMFI+~u|HydX_GuVv30BRP9Gxnc>9K9;omRWjjEMf#)?vG8|9`eGK7 zUH2ExlPA(0vY4tBZ>CRGze`)^VUtSZd&TfclS+oDFr(a}HMO;PVuB?Y+0y+^E&LRi z(-npYQ?&bYEn`}|cW+N-WOKIBf5uNLoYq;fCf9yhxCIyJsGGO$2r;m^9=jqrSueA0 zz2QsujFbSf2X)b2h21Yen0J$bovE%n@9@kpIlmwd*caiwPw1mg=4bOW$j=|UwHCbH zwgt#tfV|@l38cpc_x*_7+3BH^GuP$fKP(>jLb=7sjNLB7jkmJ?J@7q(k7uT>g523{ zCfpUw-&oItx$EFt+uc3g`JVBoM;a3E;>P{EQrvAt>RfHTbM(UjBp*V^eL87t>0C=t z*6To>DLr;n@U1Sn!bs`LD;*e#zYiJG-?)7ldnG^O>Art!dSjC?~+-rB4UNWQz!(aE$uksM|B{8lHwPE?nE1!B?5C6y=? zr0tm^B88o_+hKQXRK5U~TZYk2mAXw+ZKHXA&VasaLf4@?M320=o7=ozzH%)$BrM!# z79cum<5@RUartVr=cBOO+80AN58TZu40E3=?OYuE7u)?(uM@iKo!5BK9P|dHZYUX6 z)gO^4HQj9G4-;(TxONa_jN~rz^mFM>WkDNmAFHbUfR1IE)|q;rC=)WxG{@9@sH?BYk+wNr*ZgZWwey*j?Na|}?otC=MdXWMwBHbClRZYN2G%*=H^u9O3IpHiYBSj2? zb>Sp^LHgAqodC*{Aok#b;a_`y&)uiT#|UeP$lW82%-!4w*3fOl{HvR5>}IKKX8i8- zh_;D;w_mY!)D@!oT2vXz72D37aAeG*I~pXjiPt_E0q+F7Z)!-!NCX8zjn9v*)s7mf z%LdmgHrE|&lipn&@xVypIO($tQtmY~l3<#FK*$dCt~V)%iZNoBX*%0Pn@ zOpz680i~RtP=u<~<&KoD8_vK40%@*XmAcMKGtwP?u&GH%0?Ss5l+d1#vmjFZ5r|TY z7}>w7WSFsC1(8fHu2|lwn7RI3vthtLPHXYux3vVrh<8l08~Hig=bdofv1&hTW+zJ0 z0{gqQTVsCb2|q0s3zj>Uq>F2t^Uk$&8Xkz{8get+SKSv-w@26Q=js`{KiVLR;W-$wv zfI+Zn#Xq79spyr6KZDQ8TJd^6SlaX@AM@w-j{!0Wl%Uck@$*);g?VlNaFHq=exydN zm{a+rJCXp)gTK^a&YPqt^`T-}QP-r(RH~6+%YNodss=SDoE-HN;Ed#KTJsA@M_z#M z2?xY7nCTbJ_1#^A!h^fse=~>_-1b4WCD>`52fVB$U><_L_U_qJTPkS6bv{9zhmF~v z5=aLXr0X3WW5P~Ygd;T3T9S>&cWgUggu!%7JNlCxjczWO;*6>7JmLD@O-9*Eye6bQ ztA$^3uO;YNKWXoYpU*x%l;0k~jW5mF{ib>@Z=1#YpC5hx=O4taKtkGd5;MsrvSMS* z`2*DxKU}dHJuA(EjcJuRTwpS3jF?#r<}7LzVcp@6QbH1_xXJadl~WW*O=QxVQ_;9; z&FN8uSZl8B1aF0B%{z2zGT}`MW)n1>G6us86Bc6=e(ZqF@SXA#NeyA%U-Wz8jmG58A;tWBNW407*g>ea-15>SVTvy_R}|x)1V*?m`e2i z3cjXKP5W&8LbJ2sij6U=c|o+CwPH?qGi;)7C%k%|5hAuBsyUf`)gUly&3Lelk(6GQ$Mhm*SwkQUF)sVtW?q!@{Y*~r!(!aEwJ-nRvfT7H+iJrvAX6O2TV8`KRD8(e#mmn zupDfLa-7CaRg8&mC>_#q9ADP&_Q!dt#KPm^bKN9JK{7Gwf+avS9t1NV?wEp6U6p*t+{|h~C`VfQ>|_f>sOhEv-f}IQM$9JZF?B-X^azI$ z=8D{Ds%S!*?egTClsEX1Vah{2fX} za+CUG_PCC0JiTB(qcmG?32*KfhbPj2$0b{8b|Sm;kolG&IxYm$cSf9eaFa7b2_qx@ z;xK1p-$D5I#@~VQ4gDRFzM6#Du~xcZe@(Xc$}#n~N$wB#Z}^>xP(?}7LwzbN(ikc1 zw810=3y?wh(67Rxl}P)@f&9g_QL>cK5wCULVP1>&G<;6_N%hkp->m5acxS@g z=XcZNB;SogEmzD3GdSzR23wCJ+6U2tf;<>G+V$l@_%ZT0L)+-ennZ$IC!~Rq!q*|Q zlJ=J@tN|UQUF*_cfc^&I>R;JktSsDrW$d_{@C#_17{(K+!m+ov>q&hCeCJ|x~J zjfcTOwQf?Rgk8yX+X8yK@eXg@%Nd=o##Ik+h{IGuf2fG`q0gG5U_y2c)kc?#A%qIH zhNzgDtDJN;-b1E}%R^ktl?ANU>MN<=onD$mgh`j-t=mkCzH(MBIXze?VC=E9L3Qx0 z3wQoKcmKlo?#40g61#4zyXDT1fyG3$G?gft>tedT1m>|OjQUmc)x2W+xhB&cV^}v5r+%jzr`6-P?L}hxKe^V7+6xWZb2nT&Qk{*NFm#;$4OU0lyD~%yX=E%%$49GM zf4?VF)fd4nVRV;DaLg5xbM<&c*?%)krPD9?ao_CL2l+OMdp4ABhGWlI@Rc6fAS=9K zQpJ1=NXqHq8a8NBSS!p}3@=b7r`A$YzQSRAZF;LbJQEGHH|jI{CYnEV-w6;)Am^RU z;AF6-Su?A4c)CY?l}cc8z2{m9`Htl?`NYyE3$>H$xu-=!I zCwgQ);YUE<5-fZ6L{j&Yk&bF>-BnR_m>O#9GK}DoX200yCHlZBi`>5Koj!NLS!W z=I0dpzy)X$tXe}Q1@cqMXOnOTEP^yc{)B`MeJ9)!nb!%cD-=Mg7q~K#XV*I(#tkUV zgmk2|&YtI=<~SoG4TgT)w0pfyZn#Fs_F}iB>ff+?f_xKwsLfTRNUc-N0u(l>SW*+n zTJcA81~hH12Cd4B2xWvdH51u(Grm_cvg}ANaFpE(V_Qw!wIQkl(vAsBOKrFI!v3^o zf+fPn=_=)pS#&}k6)#e=R-B;-Sq&z#>OK>e(0Cj_;*1tNfOhbHP`mX{)5o|Bc?YM5 zE4GauQi4{$Dx@cNEdF=2pr}T?5Khjevg4~p#q_Dg;Gwc0+4NMOAJ71{*D09mOM5c8 zPKMVzhT1-&xkFQ1!DhpyBg@6+Zt=jdtEW!gWQjzddDQ=8X zuuP&<>g6X3Hmxm{2!iW`H0!KVURbn56U;$qfdVpREfMKnZyRqsO(4miqtWCror^ZNPCM@MQNRLS&*K#7=I(32)M{DOM&*P%`z9(^3l`c61? zZ`ZlIZC5NnsSXKa=+4e4xs_9*Zdu_4vp@#^HyZ!lc&S9Yal&~(v&&<~$lG}I#CLu* z!x$BMgHQMWF^vtnj$v;FQRO>$CR8X|<+mD({?J+m0m*3ou81=m&EIu~tiZa9CuV{6 zss9R)c07ah<$+{RtY>qL-S__M4w>}M??H270n!>&Fii#%mQONYNPZBH)(wMUYO@3H zfTeE+_3VYwo$usT{pE8?$ch=_8TzHI$7BfXz(+Uc7R&~Tn-RgJ#84b~Pr`|Ca>zUE zG|&H%Scns<5(WnhENHcvq!OKakEuPFARxK#S2OoO`sgsv2Yo_z{RAYYy1v4}snI(q zbZq|PWUCIRe*x@7J5XI2+ivYRn0l%t@WRsAh$bWdpug5++c0m4su<6}3i_pT(!=bd zLo$!WLB>zHs~l@`V;#Y|U0_K_?yO04pL|MHClkoL=cD<^dW`6|+FL`OZ*WA!ngq8Y^1IgXZKa9mP@^49T>aK7kSxHuplK`-d`KFdJ6d0n2#!ogkcR;)FZZ zg86K2w{#VVS}`P4N;nDlOFL4^ND9RSOE5|$exv4%mV06!%^o!A{n($RY=Sx1>w6xs zzrK^+%tv_EdhxEG)drP$9HlLlcB(YoO6+quuf<<9>BK~+T<=g=@mw4DjGUjkGnOs8 zN<$?!C->wuzKxXD*-fR{UZCHtuj?(1rm6KY6Ia6YP7yuH>Bfe3&F^S*8^|KR#?$Nq z1ckqvWCyX_AvxC)elx@aUZ8~Et^L-XlINJzQbtQqLgPA4!(YY6U1wlhCysVA zm)ln5c_Og=L|UJhdO79URgrM27#`S+SoEgV1xs)u1y->GE=Nq|C|H7gF3sv)v5L(s{a)25f7wf67g@+^WDcLH3;lsl)8L6jIr&6q&(FtDNVRi~iT`{~`qnClHEcci%m7*a~jt##>E+ zAP69dM0JlMGGh)@Ba%DOqE!yzDeC<|oNQD56ts-b&u|QC3ElZt+-O_(6STo)7$+Sz zUB8CIgmS}@+`XM2=>b9L#p!VI@pJh-TVFe`sX6yUh@QB9&cWC4ZY#|jZ=tK- z2s;Wy!*ii2pU`fP+1l{X5+TAOaptxr3wQ@9(K!-{}8}%mDzUMUQ z-9DAmLv_ZI8iS1?Rk=*~qp&2&+ZCu12sW));1+Po5Y6kS&ADQh^FAJED@%9j(d49{ z+oEJGC*2J5&MEF(mo^NszOdZ+E$!UC9qo(n)>|CAUDLdq#;`c+V*bu6jk5jNZU3+B zAEZFOxrQCq^me|>UQ%%T0CJquBe!=g=AWX{m{7X1+brT(p|unhFHj6J1f>A+2%bv| zSm*3O7Rj;-VR7YGD(vQ&9yd3XF)2oT;`MI1KgZG7e0yN?>B$g0fc`Dy#M*e&{0v#4 zEs)vKhcaXXIZZoE#{`R#T{eI=;DwVwVH1?5JZ=h*;UM>|r0axP;Bgy3b}Ze5o&GCe zrKnOG69|@DRgI?B>d!7gP~y}<-VQg7cVx)I8g;=EjFz=XxINI%t(Hv|DTu@h6RtGm zP2`U2TR|uCO~?)e#eSiGwl&}S&p&9Ff7T0J@0(n(Y=U%$bz#L9T<`0)bA);{V!dwv zxRvzJ5(4H;uxP!*+BTA5^Gcj>qx#Q+H~43b|NKv3D>6ySQm|ARz)~&{Ba&e$pFoZO zBXX7Q`2?{shJT3+kUM7~T^}3b&EaVv-z&#GoEpx-O__`;rV^b!t?Nrb+nPB}2AINs zPko2?-)Gib$fKc^$1!{&#r1Pcy_?(b2|MmtiJe$+O%5d-Apk_D_+1gRo=b2SjIwIN z_emQzt|DA~@@8 z&y1LZbHZiM>%>T5clG8xeCn-rYv&sKfOTTynG0^3HX@GQ33-4xI5DN^@xEd8fBg26n<2cAWSdzMWE^X|7Yp{whib;ki3D zDmA1SzL|bZV(_L0R5nJs z6IxK?hfco@sM^s*w-XRdy&Z$c?6kBcqr1iQDLMm8e4SfA6>qLs zKFK>x)=?LjRFRs(%D<_!*57}#3Dfim6BZ}cgp0u=I83#%v%LMr{&71Sy(j8d$Ep>V zGd!>*c9t;nrvXQSZN2ex3`~+N|NXALFo6J;< zPHeEI|CpM;1jXK3S@*JI2|JaY8s=Ae_z=XrV>YNG$;##H5H=*3{uQASLver-9H$d3 zk51TjUOHvq(E#_c*a&gjarzG+@6d^z=xLN5(WuT2B{;D|1b*3gNv>lxY$qca=OQIV#) zbhI>KHYi~Sqyd|DKzkf1Cyd$@%zVY)n2u3f z@XCkC8?}zvwU#FqD91D;EbSQGpdEc(k0ac-ec;CHaWSSk%%`^y86!O@cuxE@;rF~R zjUR721_TrPhMI@H6M!-G4|h-cc{dArCp%zgz61sGpL*%JM9CAR=?ttS3#jlmXbtlT zhfU@;#G~S_4kcVxLRfce!2g-*Znsme%?y?uf)guLoD^h1{|)+wae@5rGd}?Jk+#HZ z{}h}afSsd5QFsBQPQegm18Ca*_4hDix!2nUH{R;jXlqkWIIGSbNPxiPmbS_X&1Xz7>t*#qE@b(Bq>**i-OdElPGGPM!BV&6)MeVK-%$^;@X`y!E*P2w(~>~ z#YjVjPS;wlNJWBq#nRY@R?S!|hQU3N8s={(*R1^Rcrcj$rPH&^J^I*22Dg?7xxRX0Ew_5GHQ|s&@L&O& zx@#Soa2TN5%i=H6#ev~U1}}_C8G=GBU!cKtf0zJK6iGxsc4sV=m8jzKLH<;vOshRm z_K9aGrh0{q85Z?RSM1@3P0*wF#g#+vLjB$m;(9+yo6k}LzPrJ4O|X-6*eotq3h7aV zQ_x3ttR5p03tBrW=Y%AfF&))h37_zzno1OykwusESOf@Fduh_qi=zJ;WtO_43WKP9 zfoCb{p^{AqBMKKOa8ubfvxNdg(_%`d*}5T6i}b{zm>lXY{V^iZ2r60&@(z75B0(~0 z?CLvu$26xo;qLyjRt7iyc4!iqJTV8M3?kaWo?<110`_Gp)j>L96k3xeFCbNnqO#U- zXp4P4mnt3CZAel;Do!vjJ;V|YnzVP=-^o^yX3GgUVW*~uNMR>7q7UtJ)nvll0;BDt{~qkt9;_Rr-|RvaZ=X+R`#`O; zelk7tmcMQp7R;mN-8?h4Zv3TSP(fXzHz}<3g5il2p&e4W&yOLQHm*0_Y}CL{HoLpm zb>|7$P&@l^lQD*`To=a~ku28}w#I&1@NA^t3FlX(anKw2j1@zt{TRJP{+yf@?-B|n z%wMps|Ats`$}le{%oyW|YF$`yfypTqqsFik=KLLpqd`42d?R0Vdxxc5fV$CEve`JN z8>0^OHm|ycZ_xrdBfF{dVz^&1DgIumDWxkEfnL~tik@k!Z^&8IuCx~O&vM!RFY{KV z6sfe8Z8PTzTT$F*6ksbG;blYJP9J5-(AvmYbZf)1X4^f8QvCbc`Dy${R;ow>A=#ru zu`wLPw`x0MQ%7}WXI6QxDJ#7oViB|-o{s5pFt&8RjWA$4kJ@f9r!2qe`t0*wFoWp@ zbA6sLs34i9reOW9usT1lt?rJ=sLoGd#b;fE(VB&d*b-n?*f5_^-#%li<&1J}SZJ!b zmIQfp{xCBbEO|{$@r5aLLVqX^Osjw42PA199 zFtd#FVu`Ck0^xK2v}@g4_3bU-V1sGZ+~al2P=zKbiYbO;20S=?+iefC$CB!@OMj?P zd($4u_m&Ow-dkLKXMOEVh;^rRAM33l6n0gCKfhe8a4arjvFHS|`& z`DcS$@egL<2Q1Uxw2|2A!7lLJIq3XOYYPe&cCL<^(p#VJ8}i;FNa^6L{osiJ3W4jcF~!A9Hf;Q0*mN&}BsrDPBp~-utu( z0X6@A0gN+bExnhg!WyfPZaWdYaRdo$k*iiJ;S*4Dn(D+_JHl8`w;-ne+ zNT?Ze3B4Ttz~D40*t6{urmt>s(tXo7$3xPJmZ2I&hPB=u7nXu==j04z{dw3ylfSQj zo>>|79NmM5`2aV*qcJZ2J7w<-0R6AMcjv{sBiT0c|wTHGuWjNnJG zvPbt7#rzXQ>r=XS>_pjHF9<*CcgaT$RUN8i)YfZYMt=XH1TfLhI2k+@;^Wq+YP(F+ z4WCBY|GQLW1GOXa-iHhrBJ9oJ>R@!vVO*lG z1&3L<_rzaXDL(SSvC~$w$};@j@;qwD&FK%hqc@n^{I@p|>cOe0ZInl`VRsRm8XXG3TaKZTAMtCB0dVx>2c9D|>$tk+Ni8jNNHJ-K zxk(LFL@Tcj1@?ZEINmxc;*~GKWnn%bAGVY>w z{%4*6YF_c}-0V9w3%{I8-Y_XZK0TE!d#HC%I0Q7zLK5S2CAdYsc~l5@^n(!uHLikPp20nj%TvWw1} zMD7(!aamHlI*K6rf-Yb0&{pEsYJju!lB@<{6Vo;czrbXQk9PC|528&8Bh_k_&->gUgy-_9Nj)q}c=4qcim* z-8ADN*SZ1V87kN~BXZeb-f*)dJ}Dfsmjt&%h8r0rue3R|T}pBT?vdi-e}=K|t)TNs zd3HLr>RiB(AQ^qh&tryM1H5DQUk%A}EiocrK@EK8?@G};TU7iUpJFvZG5C#-kb^?C z`~%Q$fpPCK-|k(H7Cbj+xTy@ux#|tyBODi7!2cGAIe?ByY+mG@z|=?l7N#@t_dj>) zbEm0PAdf`9hBdwch1FVb*LC;ByaR?X|sjY{vNa>ggXGKXd&jCdj?jzpxv8 zeIn9anSXQuf1CHSGp@>ad-ywdmo&TNPlz5+O;l2vDx|~Q*~1s~Cw5Rk{{!$=P5gRV zJV4FzpkyaV)$MkK_)th5(Dy9&&3(bhCun(5m?4qk8vI5IPtAXj9N}j0RFL;Ozvf>e zDSyobI9RQwyI2J_xZRAN3gJsmivq8+Ufdt1DeN4Hl+YaX2WRy^K+HjVuNP~L4g62^ zK0>l0JmeL9BfwK8rg()U;GH_Rcy$CTepL}R0heC0hlqXI3qmIg`lfs-C~dHtg)lFWdSjiaNw}8WPY*gmN^_=M%CfAPnx&%` zG!4-=WvebnM|1VOXtGrmGON`S($O$mLGk@`g@;m@_J%e&Fz26;T&3nLjY z2&i|Pp%s3bVeLelbNKr0LiOm>>%Cb|h^bflw#{^k5NK^icgp?QG|Ju}|4Y!CYWJ2_ zRN7h6E=Mig=LmHJGJ1c7>}{&#(7>Vp6%I3v0RB6~e2$F(&s;KG(Kl3z(*`7zBUCTQ zjV=r!Hu9sn2=E-=3DOa=-yjC#5+6#7Ig7)v@+FWN`aZoWD%fPHZOR1ELo1t|)2c}E zv6_hSe*)B_o6Z)(MjTDjJhwe1zXbW%ehu z2)*oHIdNU(k*w5m_>w15nEe2=LiPq>1Ajt40OV9^r#2*|FB$wXLso+9Pl$}r4-_mz zHZm*v5db@cI!;h&n5jOJ_%H-AQuX^r`( zY3c^r(TvFePvdsiI|%6?$`l!m@IJ!BcFl6rJZUc1dn3rkH?K5nUaVvxCA5-*uGN4P zB+FUsJ4L^NShJfnyNO0h8=+SUFk)LuI^^sP4q30gNhMC82>y^EkA&u+2lTx-;g}SX z|M!5Da_}cK0vW~dT$BDZnqjKaci^8!tEeWfm9A>UhyM!M1O6rkH1!opxLof>;Qu{< z+z^{hM$!L9`T-!vx(QMWmLWH)_UhiW^`+7r1ixOJRnVUiF=qWxhD!2!(@-d~r!)d> z^yVM0DvH6Ma%Tdbx%@Pc2x@O`yuKRwQ~Vd{A^ZHu3MF$cNz?2ExIJ%sf60$Y^at?U zC5g0qtaBz6@#>UF-fsFIp?Nt)ifZ)DV*YZGy(x&#^npwo2>27E_0SCju{kUeQAyspM?au6j@y@kmcDRbp5^ zzlX-tnuGFWc>)}yVvsL(4*$Gcf$woWhaN`C0BPwds*MR6VOguGgUK(m$QR=Fr)Xd zv)U!=*#4q9mG%brRu&)mH@M>#v*&od_0+w7Z+5FjM_3jH=|1t_MC;D(V7-7k=a-xb z62Q%?1_-~zN`R)q2Ay|OY}M<}#cyHi#rx%~koV6267uEPi1Q+_rl+kqI?J{G2A~5- z1h1K^ix?mB1i29@zN}c+{nzxEMj)fQ(OaMZ`i%tEnEXZtvp*q)>6nRuLv@mPoWh1= z2zet|=#-=1a0c9olcg*h;TNP+UeR}Kc(ZPB+URm4KJqWojuV|#A$?V}acbmGG5rdc zwO`zZC2h1U&;)JtG(u^_Vq!YSiEnS~mkH^V3q=1#%nPJ%a*a1?oKEriBig0ksKjb} zT?EUxIaS~RP`zSVUy8}O+lFC;hr^8%gsos%PKcCbd~Cl{J3*#$-OwOruT(~wT}lI$ zL`TZt4blewgwhF-Qd|~5|6Ks~a^wQK8yKHpwetA_*t6i`vH~On^hzr8Ux#EIG@01phPL%lb{7QVf8m&~IcO zcs{1=RjV5I%|8^7Nu17z&hTl(b%~7?;^XEw+{{U#+{kF!V6$ew(b9-cF#C~i2E4=p zar4lhA{j2rk3=Kk4Hoe}+vv0*9Ef8if-jZZ-14Yrg1db=5r zLgg$Y)fth}G(g&CiEzCuctC%OKMP(g)D<#YRJEQ?f z0rxpxT^gu02k5j3`|3;nl1uhK5*eYH=v+8QG7P^3_#n*vRZix~*hJ@IBN_;%@4)>> znpm+zr7{h$z8d*c{7;Ay6h{J zTbqPi4x;N8r&Vp54)7`^cg6(kyHll~crKxd&wB4wlh&_e(}ZPi(jHWqrg)uzn%);b zOTl*pTYL&5TuZ(IO2^*j`4ifpTiVT4s6Q+_7jnIb{U7NrBFtI5bf#j4Y|`&qo(r0i zv1Ck<5x??PfwSM}00dh*)ROftf+ zK!9HH9fKmkL`HJ~bJ0BXBegn~s*NlM&C@Z{5z;h5nf({ukd*M4Z$ruS0|1`k2CW6| z?ZkWTJZbaUtg&Afv#r%S4lkbW|M!-es;Wq$0 zNB@O?iNo&L+oX4@uf=J3snJ%0CALdJEYe+k}SA-6-B4B*tzf8hZO zRQlIQTHK8M_rHz>jsF!S<$`{o28+Q{080)Bdh1E~*Ti=-BQ}c^ ziy1o0{|e72ySWK_d25;kAttXh0XA}9*q`EWrNbfKJnQAExB9x@zqMpRm?PAk*&0dg z?H3^QADtA_O&$f!b6RI6O? zMlk&VWR(3zzlIr5DSLzI2pBf-Co}@!4~5;^3bROPz21%Dyn$AOF?mKCkP?2&LzPi8 zWf;?+op!IO=5a%=l>j^J_8)t2+|$cVBajgu0m2dDqtWaeeyEZ}S0zUmQR%WKrQi*| zWj+X`I6LZ{C7GVk-4x~4i8#1h<@fM_DxWS1rE9qtVZfMO#DPOUffju`r=`?#POQe`0ghJKF1r=D`pjeleOvHiMEWGgTTX~fK*Ex=>b*5 z?2_mYFe+)4%Y zkC~^Bd}@McGxa-fI+j#I)3Ohm(uXZg#~ds5t56E==C>CTre8oNEZ54F@k~8aArYmZ zP}>(sqLYMf*+6NHfnkLtdFCXesU5K$A&7%Znq0)*(Cw!DS>0K9j@jV%43JU@kkv*P zEJGD4+h2RSyw4n9Mb13kI|52BkbeL^bUo}?IepF&$pwxsJUGu?B{BU9<#J zo!kVKY2-UZ&ooKA#D{<-r~-YQ00n5Dp!RF)cWKrH*&ESAi0h;Pj-pDuq>}xBcAb}4 z1K_;IH)9opN0NN<+4rjbIUTvK z7xtV?&2gBz-tHaHx7JPTQ{qv*95#Zy|Ih&v=ex_Cqn9KRvOfY!);$j(<$_Vkz zXajGls2P$XSzcr4@B&)P&Kz6ertNKW=UKNN=gYJ)#LckvZpQBU&97~sUKJ|X={EFT z^NycMU;Olr4eHi=e^^eHwiz^(Td}bOFQpR`U=z=>saLc$P0ltvYKl21k>twhAqSw5 z0EJ1ves&BlslYti+||E{?E+w&u5J@@_l$euo66ad(qYBXnk`zxCAIsN4jiXG^4c+VbLk5DZYKH`Nfux) zbo<;F#c)P|qq`(W#+9&4r%MkKHOYcz_X++J;wMa>Fnv!b_l~+dt&c_RO;}fGzf;pzkHWP4u1(sT zH`8({!9)0C?p*?G@?BOERUvJl&lOGK+%w>&E-txj%7%;V^vl({$q5MB#O=z<9Bn7n zgfH{=!fq`Hrh?RD(VJT{xQi$gR_Th3;N(Dh`1-=dW)GSq&aPG`NSt`FfB!S5_C2MG zLjf=4lEIQh$o>Gt2_y{A+1{wy%Nd<4kh<+Qjg7X-Z>E7lHCm^7_12pz6|#=>qN zZRQIgTyWLNc&O99>1zRv7ngWE923{HUN&(9uT?nBNr0zZ$@y6FrU~O^%}_T(u2Ief zLYwggUV5`v2S#{75R?e{;_~z`0Wo{yX{}W_=oNoseJ3Ns z-k|0Zlo6ql@WpL_3ING>sL#jF3n5<$Oy^~(TL?5g~LdpvR1+a$}in z6x_JW7#fy6`>&#B$W3AUY;T|uV-89MywKg{ksvD+cp8-y)C{|!GecirHcjZRd)W@A zQd&5H~9+#MDn&D9R(tt1b4FsF6+9IgMRy|1UrgNyBpC=1{@RxD|g2bf(N zAa7t~^Jh(N{tj-g^tBWkKvpbhrlfY`x|i0;xY_gqTvXVJ$++Eh4uz=%<;5~&qwa#E zJOPCkz&a(+$C^dDW-n~t@DlEBtbpTnJC~JCVuE?8cPn!aoHg5?AkTqBuSrwNh@a@G7bW~HaYkz|klHIoXy5i)!#y@9^d8XH_v zoJ`10Zeog$R+7qc%9UX11j6%+vL`d=O7Q8D0@$bsrnP};udGn358I$s{{oUCWM3hj z3S5r#c0mE6HzEQ1SU+P7fF~u8e=Bt@8O$Ri0^INiwko~N=$(S0Q5!gSC~5<(bl!e? z?aij~Nps7B96X>m*k@}{=g71GhZy=aNxZ|2aJ`C}C3;Q07a+h>@DyxqBdsK644Sio z`r0C(U?ojfXQ;PUKzDhsL3PXusl1gIz*sy~l~2F~#De6>YvoYk?pz!(IaHc~iB^05 zy80M6SB@`u2O6I$!0DSlnp9Ie{ZWWNG07dnL8D&p;IeGl4<>)oxl8?3l@ zt^J<4!+XHyV%+QY-G7uH;8t*6Qv@_4X~R(I-G?DZdQX37Up;t+=TFyF*)Ql!wkRTEdC$b^93 z438x!LTuj+zo=^XR$SIhinzwvxMqO$rNT^WIBjyx8Ip*%CS8k%M0b;X;Ri1JR&uQlzu|K<}$=1KvIb5lwtrp`fuII3xv}I_!Y|Pl`uXQ z#Yzft8=-yTi~#sUAu-KEEVFH@vcC2S?hYGfZ=B$1D1YMD{P`OXs3*l{v; zJiF{g=U6wmxT!HD`XUOXP4I(66J@!(1ZcVqC8+x4LeJ3Ve7k96U7U%UTxd<6#I0K{ z*yEDiK{~2ptdY8@pMYF<3h-zBlWKPkdgE|j$fe&4&u1;qGY|6SYF{=chi+`dA3LKl zKR()LjkOBdV>iQ?xhICvspKe@JQi5<;I3p!WzzoP&9WECokcEBEGzBPLnccct}a`S z6_D9?F}R3Fz-_-tlgpZ2zPRcVZE}rtaahf`-XR@k(JmTBE~$iplSIf~0rxq=TcL7p z?+92$??I3|-<}1j+%^#6_04bjl_LlJlh}DHUO;NkvEny`TEJt=2qu^Wu=sA)I)f6G z9E{X@x=KvEr#0Fh2dsZc`b_5Oo}cJHVg7`C|HS9#gSJ(FWYrc6FQCZXyJE>@zelD(vNWQ|*Js8gT~ z&tfcei4TLEl?sM4x|QtDd@_6r_EB6g{ zKaG|k`+;H(O8S1jF+EiAyP$E2o`Z+%{4+wuX2`9eDLI0fy1VS}?rE}hFrmie>V|8j zo);{iHu4dwxpPbrR#Vy0iYBy{y~%N2t`%+K4badk;WeZ0jI_CT_p~L%{Ci^#F#9HW zY)Nh_V(O`5_^`qCcs~R(MS$dxK~z3Xd`GI7Tt1Z6rJy1`7&3?#*Sp~L&XfQBkIBCvvIUh>@RInRhVd@tx=W_XWfCwa zIn8~%yR}w85hX`B(9AIx;+C@1R=IK{K*^uwFg;`CU0j*X`SMRIV1cKoHH!TS`2yq; zU}GjP5t3zxBl!V-YmPZ^t$Ndo^Cw6fl$b!3L|k7CfumLOYDVOAFN@}~REM*?qV1g~ zE}*-B837u{l-76b45{nh>D;R~9|<>YwCwT($+9>2RZeYQ!niD2l6CtP^qdz2zBC6` z#L=49h~RthABpE$I6#K^;xH6d2$PbgN@X&9Lh{N4l}_-XuuZuD9so;d7f@c&0%U$b z*U(3VE5X_ozZG9VjdT+?<636DSvE^v8?n6I)|o-0?**i?leo_X-f_=-G!vuJK3j5& z-gxyUNLwuva4&G9uQIPql$ZcFg(YwNc@==?iXV`=bdXTZ@Ue2+9g2{F%$16eraqhG zURKrG`Nt-7uq0EpmFV?wuiEO2Ce*#%-AV5Y>`(Td)w$|Tt*mZdf+yfkbd|NtpMe0s z2}5~!u~&SfYt9qU?>@cUD4+9wEn9m$H3)DGubA^-49_C8+*%Bqu||@{!Dc)GT-7G*yS!)uvu1*vm}55{g;UNCi9`%&(k-P-1QDJWQS z;EWO>d4psA>|Xt(F$XGHxv{~UZC%TFZ-2_V z4;F6U#Zgx_Cg)J8B>fZoevU~7pX^ZP(nhZXmP=Gzk|P0WtK0DA_+ob`ln#ZNH9~ec zl2<^>*E`G+Ont6?KHo}!3iLKNK1Qg(wUQJo2F~r*R>|EU2}uOrgMGmjd<0wkA&-8QsD%s$+`S2OV(izT0%w1)Y zp`=?)Yh7>Z1)=d;X(s?p77ugJt%B^A398H8-0Q1Du5o-WvE&Yo<;<_5om548H!q4- z=hmbiXGVslV>B!UlcRHm>og+VZfS)~DySxx1B!UvGj zOLjT!yuRm_sUyN$c?KsH>YV1li$GUbnE_ttA;~Z`9LiQ-o@wEE|=D_lRS`ZV_hXMlNs{7-j(X zit$AeVB?K`uOttyOq2xIHEpUtbL6b z!^Tg*n0Wo#R3kYV!cIMM6!p7CGY#%`1f}SdLnQDQ2kbq`@yHaWD zdZ)$+_NT1_o%TT2Y&$MCO&G83r^#a*D^{1>?CiO;RmSXjC+fxJX>UNK6?;oNFK-q^ zV`v|YM=0H}6yI(By4X7elZMuCz*Ir{#(=%zKCrSsSdcdZ-5)kyBN>zH&{4IIU{?00 z920F^ZXHUKsHQJvo;!JUpVf5z%)!-8>0M1>l9An8mpHU8<0F5Lg9mx3?lo?MKOoQFXWXh_NI`;MQ)E&w0|N zVM5s}My5}in5Ro}UI_9D@MBj|y#1My3j(v70DEl9B~Hm}lCs2VF5rKF7yy4L=GNCH zUL{Q|vTup^Xj#VJ|H7%=TC=#8>?1{}BGu(rfK0(X6##Bz7(m?~iY@aVAsLpnBNCjP zqpG;tObNmnkrE$hPLaoTABwnDS*+U*fYNE4FviP;i7%mY!x_+@6~xEC!djbGRm^;L zQZ>0uie=^t8&wM=CF`i*yE+xSeEnxBpdwC?7(K-7m8N|zkPY6De8-AqRukc-P-ca7+5-p3&gFCv`dUIg zsT69WtS?2cIp!NWtD~o0Tf(R`JppeGCjhK3uxYqv#eGeS>UUYC=oW#h(3(9UV{n?X zWVj@FD)Lnt;HlzgQO4`bE8b!vKvQk0p_I6}=$?w7L$2BJvEfu;;{>7ML?>7lrP(=i z)yZWR;ukigjQq^G26glXfFC&6foE+qy?Vw z59b026$lJda*IHjNdODKW*70&LtjXaBb94Dj=(^MWu76KSfgTmEaoPc6$%6)f_XN=r&75YEQ=EAA;y@P?LO(C-W&4 zQzV!D9&!w)`7J-e$#LXhwX}NbO0n?-h|b5tf)0^C-{1e77%y;l;VWJ5k|v%*G7Ra# z**pKM90TC!S@W8{U>6Hy1yn(fRaTH~(XGs2#e?#I`$Q-=Hi$j5LafFydTa3Aut#FcfLASno z!={^vQ*KL=7O4YDq&{(!odbOzi4!DmnI9+{Lx{NvEHL{fpCz>^OG-eGO|BRKOC(@J+aN!`ao7Azzo_TwOM?&_mE>XPdZBF{?fa9 zKP$D@?!Btz31}T*S*djh+YPQX`g%8D1y8_pth#5J9u5toU7K(9W}1Ei!p>+N ztEh_wmH~BOA8j#(F~jx#S&6w>^=8YRaGNo?c~L6W;C+NO8dMVMUuT<>H;}Q< zR07?LGB>^%u*?CThTWW8Va>?V)o(0 z4EtG-B(8I&xKHxZ_e|Wu5ul3r@B^(;M`|@?^@W;qMiZ=WQBO$T2q!@0R5mQuVXirS zCqc4V#pkyhiZChIF>K-sNx`?9e+7#~;-pa)^n`Q)-(h)nLLaa)yN|tBN$sb*AD`euc)i?2W*(Xb1;P21d)TMRNO ztyL+x$sqe9%`vxC&ENrB+0s_^RaQ0a`7v?eQy#fv3#+a9WR-znl*tmDOAsnp+jPqK?1 zQ8d@{RhHw@$^oe*`DA|p+}c7 zv`bQ1RGHjOxNv}f#&|*ZN!RNqdJceYyg*Wm#c}zA!}ZR|OT0inz!(87_b&BGi*6EckQk;uJ|s;AQX@IXh_-Rf zdeK#i82r8x!cdrj22ZLcjdojyEYW2zaB-*r7?cX&ktD+Jmx9zYtSIu9pjJV-YZZ=j zKUEu1OJsFxWzwEhn5)DK1OTL+04)oE-{20>3(-E=1fPSPGIdc8Y_=8N5+U7oGJAm- zHuzQ6wnJC&D?;tvHa1UZJ^{m;H;X%^WUHM0e20UZQjPQk3OZ)%aCHKcQ8k?}g6LTi%7ewo$})?#*3o(DB~3 z7cRYL9lspR>0|CZz3lvMNc*=dWIDPJxc=JH17&Z~;ltXfti8wg)kkM8`x)(yXJ@|n zA&pvSc{aSc#`->5L_1=tY-a><9u5VjkZfQ?yNEDg;}f*;U%O zqzxcnOIZMIHgk1Jy~SJayG$;3Qn%O9nR=%~dWa~meU?8ml58d+5R>{h_m4Y zSus8)p?Y=6=ngn5-=lq})-|cB3~3+&oX9w)MjetN!n9$T1*N{A`gXi-On+ER;w9#u zp|zIzwQJwuccbpq_IG7WZQ=gMvfm6ch&nxNDKF=u&^z92?~}KPa(`plp^+XBP0I6} zom%JP+!1g<9r)73f@Oy6JXCYI6UgI|^nhZD(9x+-&^5DfBRkw@iIDvPVh$VF(@4|u z6ib^-nJ3T4So4Wn!BJ(bFvnGqH1XqL6W*nLX@F-V9p%~NNLU~$&kjR}P*un?eibDf zlrRHMs+KjAVx{;9%1=P;*JYF%0WI?gBPK4;A%>01Y{-M5ns_wiS0yH9=h`w`n_1PR zEjYVwF6mO)6hhdrtS{qZZpRYU$%T#Qvg4bpn_R3PyuGFSt65a0jbHI`F35G58sf|N z1!&l68#X5xzDv&Fo$APW;Xt2=2-3uw1wReGQO}>($rHq#S8v=Cx85dK4%d=v%!~n0 zDvL%PqNN886_RB?z_)xu_}$7cI?M^bVJ>-(Wx@{TCd%ypklkGN-r_Q(AFXvdW7+^Z z@dDH-)X{H(j*$aD0TV!%J3kcg40nkTRm!(+2Xva2qZA60-yMFpZNO3>GS{k2~2#}%W8j>tcOA{qtG1<8+Nb!)XQXZOoAE3- ze^l5);=rRzGkJ**If%3=ZW1*GmxIt9-V9S8A$x=58uNkGM0TCvD=y{$T)jg?4Ey}h z1XZ9dJi$|;{f&KEBh|&_3W>DpCYW znS+-I_+#b(I&sWFv%b`6Z0%DN5$y(W45Z(Qo3G_$3wkD*PWpN-1KWj8)h=hbw2{^xxGpkw8Zr1%`BXz3?sPoS`-S>XC0JUupgpl0LsVb%N zR9dxP5)1shRNEdOxbpgrm!5N?y%f zuT;TkR0VvX%MozF%o8-wg{U@!nHT`YbpWHSsj5x4*4?cdr71*ew5 z-T+@0G>mEKv*UJa4NNuGhJ!9Gnb+;N$7jjF$q6(O@FL=mO8J3%ln`a4J;8QzY{c{S z8)@9^`4V=cs2in&A7u<9qEk(;n~;YR_w@6ZR>?cZh6BY9gx*Ba2A!h_O`5(#6T08F z9ex6@l)X~S;Tu)C|A8aA;FfyEVXo3USkC@TMJ`8y+Fol%8;?5LJR>GzS$;`%o2)O9 z!?opd+4R<+`Zg``23w(&CE`G3$^A0$GSBjz#)j6}N_>OHKg6Xeeh{2CZG(H+I&M;4 z^0;j>Z1Q-?FXBz58NzeB2>8eA$K^JZi@P@BS0XN3F>b#i&^#<|^L3MLhVk`VU%#!q zWUH=G1S+=8CJ*#0QQqy>>&H!QjGN~GouZJZ$-RsmZ<;sZN~8L=&N*`oWDr-nIkcx-sX$2 zx+D=K#k{-#JnzPpfr z(Fq{r>Eap?`{Yj|?(<_%2hilQ60R&s2$a0Q{rEcCyQVHNsQE~<;(yx&-7gJDY!|u7 zMi?J!=+qw8#5c(vsvT`1VK)k*+)9qr-ePh=E2+<0JWW7iI1a>&pLA2?lKlq`E|8BE zA%?S$g_)A_QX43_VBi(vb#T)sPp%p`YoUljnbGkDf{qG_ghM?LjUc>F$|+u~GZ_?? zc}~z^S93_#6 zyFICan6g)z#Id#-^}fhZ;w1#o!X1by+AAO*i52cxit=VR;hR4jFXMhy3nj|%!jwR` zpaRB0J=!p!vi(0h4P`+JuEDXX0VkJ0C9ML3+nq9~Wd8}2ul)1ZbvP6};gn&o++83( z|vz(+yp%JrCb9p4-^7wCCV}+N1F9dUsLg-={ z)QCHIUgjBXka|&HP%rduWO@ysHOOdk6f07+a!FnQtDZvOVkzDgN(r_(1e2e?fER~4 zB{A?CiTzg;(&YmJW&aLn_9vn0ni8a4olp~9DPi{Q%@c|uKDHdI5h=pD}sp(@kf%$=jH22)YyKp@f|u zF7F|fA|t^dqLqz>k#eIPHKPwKhg+mBJoa za-)@LPislu<*#X8i_JIhe+W}p60wDtjcUnzIo>@8T2F5U+SPwWIZ1bGOe2b&R^ovO zgK$_u8e<_GUbZ%;_-(?DJ;Yoo=@fPW^dJM=yZ0@iExCmT=quGgn6^T-id{QRZqqE{ zkJ^FHj#kz0wRZ1B6&!PTgC<5-C!T3*JSVt3)Uc6$!x)G^r(Bk(bmdrM)u1*qHN`}$ z5!MGoVhyuvk+RK?4o{5ZctAX-rSI5`XSzn0Vtp?(idM4IK9)-19IM7wXm!Z~$MlV# z5o=~ik=iGWuDSH9x>i_g4gaHUkArQ7ePo-?Wz#C+p-X%UP|g%6Hx2C(mE{0}F?WT| zh0oAjf=9|b3}sagaQij1qt1~fGk z&IH2;q0+h$ZSwP%podZdSj=xQL}GyvdLiE1Y~(P@K{qA~h4wT?n%%roS?3iX{R#Hr->v( z$OFClq@QB*haHvp zkY?xMl)ZDQ(u43SIj(VkK4~2#1htv4kpb2X#{KoCcGN%%sw;hX;CQdc@U$?x+Kh9= zYe1?c>7P7Z+~wi&h7kRV-I4gc9z;i|Y;?e@tCboUO4%#0*6kjw&w#%F!LejOase<= z)2G3WjUb!^VpYfSO#npDP8vQ2IxdX_Hga9~!Ky%YfdnR~&ho~gXVet-Vnz+Ir%L@oo- zxh}D!)D>H|nRoeQDAI){`SL5NQ1$}sHly*VnD!kQ9&-RpMWKnMPbG#&%sAO&W#}m+ zcO5|b&n;A&nCb2C~{8UD_2a35l$Jt{4R}h+I zTPS`>N2Y3NVUTA0{hw_8#Un|x+uJc@1Uo&e3Bw43Z9VKMedjWPaX1O=0~Kj5S?NhJ z0b}^B-20qYGDoAtofSBcM8v=%tKeBc#hZ0&% zgRzo-a)V(^>Q9P+80kSH;OVev*|cub8jZ=#8!jS#)1QAlLKFL<#Be>TL%_i!cq}wi z0#EUtL3_71h}c;J&pYd-?|o0nV$2!zT-ab?Jq)(E%31kzuB=Ox!b)F_Qf=SrtS0_& zO$-xpDFgesqfz#ULiAAWS>aoFM%QA!4v07~{))s1TH=YY1GkJpjO%qM38hntyY(*(ITTP{uTN zo(#P?@dr(XJWwugvvE@}*WpdyV;@IQ%ecGlONc2cJ}A6V&<7Zyg#7}-;F1DG54uwY z9CajqgC;gjVwv)`pSrkgQI0nd!U60fLPru7VrWyt7x7bx9uyQKV5Ma4h)XR!@??nX z5?~+8AJHGvuRUSKv^3Bk?v|FqeRhoFgEMxh92Z|=tF1JP+lm;o?@>?WSwY?zY+fi} zi~YofFHRnYuH#CtkdZ!>Ztvd2gXo0XA1RUJgTVIM@ZFODyoZL@iHZ z4O&wHtx$Wo4*EJHo(j~?&T9S~Z{qi$hQ-emC>b{R|+P)h>@6aWAK2mr0Ta6Bx45HvkC0sww$2mlQL003llbYo~Q zc5h=Yba-@xo6EB6G!RASRPm8YwBw^#Zkbj)0lo%iP|O(c1N<1ot?rhADh9_|YwO`> zWIH!Eef!OyKmYyr)3@KG^!dAgfvg07= z;}X13vjqr3HmD9??a1JNX#c0bz)Q+tJE|EK6ojqxUJ${fQSPB@+KZ%ABjKYAYaoXV zM_rTi)aX3@W}?6;EsoZcQI?EgP}mV%o{!XnWkTG)s9^Qv1)4b{Ot&{AT3*?PZ{Ge` z9R!L;$vM!52FS_Bp#PdE&;|nImVra9!ZmR&SS6 za%_~rCY%gmC6nj2ou?p_H}>yTEOmk&UM#v!_)Y`;0KIi9C-}$Vq!DXOJ;UfpUS_;oaY$z#l=zjmYIkEZI=c zcQD8;P>-PU8`y@Fhal+DcsptVgCg8((Yy1AXi=yQ#jik4$2-G0c7Z`Zg1o9ccTjLN zYbZh5!HltO*W?ZM;47s%p$wwML7SRzcP`Q9ZI^hMw_E+mEX-$|IVxF`f~s`RzHpR5 z3>tLg3+9>OQfP4&rK8jgN6>_k$6WVJ_HcF1^&n+nRVdFDG+~B|oTRq`kjeea^92;h z0}*ZUGNiT_TIMIawPCfr(_4pAhH;l5DbF0OtU?37!-VMAX4bsz4mVVk9NNfP@8Cms zTj@b$_)eR{$Z8@#TNPd|Aj7qF36lY3>h%I!gMxj)sBEiVYZ%&ghk0P%+%2Vb!0M5l z4~Z%O%b=P;hQ2wQe$tF}?QYu2+4`3*GFb1K|ByVH4dK>z##ZpJusm%lq;yVl8N)Jo zW^c7w2?uiOO2F3J<}8CY-A@w=%5dhO@(k`1-f%u*PszP)w?at@=5||3^0__ldyG_Q ziT>9pp3(QTT6rt=36ZE+17(0t56bU;-a(FqmYJhQ6#VgIJ~5n9mO-m$ewFBh zi4!PTFc?|kDBU;pd~OMPfI{@D5C3dV5ADaTms}9ZJ0;HUIInLv-Y-&UF)NUHds-96 z<9%K%=5}(ze3+UNIf;=~!dG5>_qMXCj2o&LvZtKV z>gcnIME0EBODb|FyRN?ia&d)hg!66_gn4GT*cP4p z2nzO!@?7Ff$oYP#M4mPJ%s(y}j-tfKAj8LFVs9|+hW}9f(>a2;{30S}QPP(LV;%nW zInP11?O{4-B#f{bDY(!wq*__M-s>oKG7PHFc~qI-iDYI>;>~=ewP4|P2>zjc_%V&$ zP%|7s6Hd7pu|o!T7m#D2#hK2_)^#t>-9>`1Hd9V%37XzoBHY2HWkk@0%QKrVpg^9m zD<66$9P`X@(cLh%LEkBrJh66nhRd~!4C-2fd<^_pmLM3$yb;zrs5iEr<=OR8RQVC) zsN3#*t?4(|%_lO(f*Re3f_H&ZquA~r(_*D3q9qoOP)2E0=S|625JZXvR+58#LR_HM zunrhcvT8?JK#u37K8#1MFUc^rYrw^;3hYDOK8t<)V+7w&H0G?!w2gA#Q762oZBGkf zj(+F@{RfaK1x@luH!fH&*$%${qnSOZxpT|MDwj5VER*$#1*miH&r|~Td*U^npI4*u zN5}@$|EMTf1sdqF3Ov_qt}|A!w`^4bT3C)Q*fzJ%rcG%1lDb1Wq`BPC_oVZaCGDeA z$9p5;bQcfs-BDhtf&>)d_j}`Lv*5-@Stsw(+A4_TsCnwYzEdrN5<{HthKcS4?Aduj z@7FbtlU(4*cSjRkc8bx#FZ|QH2mNymVsn3iuRCx~%KAZys4=IM{}If4HKq;q;w2o| zNFN+sN;d8ef`PR3EeW_Jzx>z6T?QWHtEwqE`KGs85Oi;JNAGhqzn?`KAEtjs-gn=@ zubNg>{ydF-wgy*^1Hes^_wJ*7f&2aIDDg>{6I=Z|@g|sg=k~;1t_|!2XaoW2j*V7L z3(;jC>5r%xMxdZ_yQF4~dtfqc|Y0p@XJ zZjW&iOFR(}Ayx{m^aNOb?naT0I0thbZw4;9!!HTsR0cbB37|od4E4e6h~E z6ik>K)=Affx~2P9Azaehwu>Jb|7!N1NqlM}EIH#6HRW^GJ?Y?VMmc&4-H z1uuJczP(fLV7)$cmbriaQpQ#$DvogK_pg~@^1}!2Ntb(K*rR}}oC5L^WHf(-HQOcK zP-ljVlndXvoX5>FfF~4Z1{p7fn{w~1F#0JagGA{`-2vn%i3?s+@B)9erO*-ym#4m} zM)>3CQOlO3bg4Sev#Y3NXLIf*Jg#f6giITNbC7N$^Xt6G>7NaPo*a* z@O<9hEm2y)r!#Vi^Kt0%j;gR7^{g||kDMx}BzhlHlQTy;m-lnY=TcG^b-qS=~iK^^T}zV%ZyqUMby^%K(aDBz^K3VM*B~<25e<|7~K*% zR^Sn$zd8tefvy@W=G=6%L&{R*IJdOkUj*o`VGa=Rbnh7lp?qJ=&$vj6JZg;SkYbpCtSED};dE)8pNd*qN~TJxGV z@I~Z_a1!T=LTjNsAJCd)k^%`{E@wq2;b6@2M0ag%7n9FzAT4H;jN0b(0vmTp)h_T* zOdh9DjzY#qkqMWSu1d?SSW;ZyFVyVZ>T(s#1~PkN!OY{*kBC>}AIsB5`D&EGS;cnJ z_pZwTNmaoE(10@2Ww?XKKqc$4Jjy+dd+xoRi=&I)B)>aKFH$gb{|GlK*n&Vy$yW2j zru0MoOo55rwvus*oQrfWaj<3uqqu=l@;P^EaBo|YKYyJK=+{cq+)&>|hCQrIk5{Tg z7H-&Q1`Vqy89ZdKi43_doVG0u=akFQhj@Aa(xJ?Xt>gs<4zkd{I12@3s8Z9ik(RGC zN`Pfx=@WsB1x03#8sF%~BUC+7EnNq8W6*4c7FD1QsQAFKfzDD?_2&HkY;OMiosjf- zW?;d~aZvv(^SJ<@MLEx+(F@t7>?i+P z%ji)+4)U~+2H0$uvFS1ovx2P54p90`?nZhC2-Zgy&?Vcs-D(WEzR{&XrMA|U?Cbc9 z?~at51VKEZ#thQ3EN4(~e2V9h6A4I}?&oM*q0;>(IP2q|&gU1{c8umKe_e`j{?uLb z-X8K!jDN(he*}%xc^ueQAEPLwXZUx=rcci&@_rU#b&NiW@hd#j4hp(8tfv)SrbGtX zVZ6Zw>W4m5oH+mr>_9&^ZaacWi!_2sEZw&Yuo&{xYxkP$_3QrY9R9k4CM2R50ALPrIsf-w-sWt zC0h?`HPLC? z_~4*Eu<;KkwR=ipB%lfH?aGql90#Aj^jVy*(s(>R%jH}k(Wm5g`?UJ=w-0D=Pb_U@ z`3Fk&&VBLGc59TnBDL=o+D*&es`k1P$g2zGqYD>!(g*G7euf`^eE!mBaZCE|nkNG_ zJ0JCmpi|0I^!tn94XY7%iTHS1Y2S^zR+MZO&G(ultmAXDK8;ga9rl{Y#lE1lWObr! z2&}i1_#*nG-eCt5*HthZA&IRVI8u8&p=2Cr#10vYL; zhW*q2&)=-Jrew7n&tQV?rTdhe>$%$5(5QE|Ad9oGx@bsNh&Bl!u z8~Kse6;^W|1SJR@UyiL6Ys$&vuas7Cta;#Z@W3_IhasekVKks7g24?n8*a9a_-%a% z)N1My1R9JbJ4IM>5CWsY3!G=hkhX&iZGBrDC5lbulnr&Z7#t^t8|5Gvwr!;Pg}t+G zpINCH91WX*LSB>1?Ijnz0bgwOVkBjfTA3LIE$IWqW-1s$#1anH!`N#nO!=Nf< z+q_QN&4`gf#%*0qUMaC(4xv$9YcMU&z>*CuYv4Q~l;1iHC zJi9hFo5l8x8)b)Fu)AzWsV?vG)Mf|iXYBlnPk}Om{e~6Nbtd&DOOPnU4~s%@F?$a9 zDyRx$E$0jdGL!)?kMwvrjvQbu56&|zqNz5+Q8&oBpB;a+wg#>3TJ9i+3`Ls?{vzyb*Ht%xD15DGmXU@G z=|HsGD{6oBB6?#LW->#xAJ21S-nD>;J24UhIcwmGB<>1U6aGOdtQv5{IdGsFO-ngo ztpeuAu2f`$(r8QJ_#16`-6%c~_NF+LY9EoYfIb+cO74Nv6hab57Mv(oiA3hbYmm5D z3{(ch!T0b0iKrT?8X23!HPY-<`Yax*Va8~tptWd%k#u|azUB4_rv0hgvYFDxLq@GG z5GNL?LwR8>NB_W+X}yY zx{tn2C&B$?ISJjctFj)Q@!oxyKqF5$RJ>I~Z>voi9~I8h_Dl+)D$E+m8uTt%L4rBo z4$umFte3zrF@@Dx8Xy8R-~<;uU@?|=Hy&!Qc|NzE00mvSqv+K(AXTA=*_cCEob)8xz2xKrpktPF>p)A^yxkY9cnG?*#oj!q<YR_N!*Q^xI?R&q%XO zpf)G27(^bp)bTy77dT4WlIwz)0!?4GPEh~yhaZZsJn6d^^>v6_MT!^0o%!bwIdeU@ zw!84FseBvo20AN0g}Y~`=+VnqY!&vH;Ww4swTHrtmYsG+bDUCq&atD{9N9acjs4zd z-x>C09`hgIc_;EFxu1FROQUm^&q^3G{KWX}w;msVM<~p)GlIYtR8p)x; ze~7eeG^o6q*vBUQtXnR2%=lT=m2anp#fT$rqwuqrKTgMGPT3n*GdPyjB+C-Z`l&%* zj*XC<+?|Vg`*k_Q11voR{xUv`M4G=Hy#<@_l{J2e|0lQnL$;mjzwM!TAGrVbt+l?w z&}^NccKT>*Bsu=vYOA78#v?a#i(qS$FLL=Z@Zs>ME@#8v%8l~voI0Q184u8RmUjiu z8Fs7uE5lA#=Nvy(e`iEu-3wpU&O7EmGs}0b-IDvt@sr=^9$%_|sxf@S^!DF5|B>a! ztLE5=Y3R9qpRC+E?V#_h3C98s`loE^#d^-sXFQyo_7x^FzvB7yYl}KuTyjicv+9|T zOBMfgXWu^I+5Xy}Uc`RA+|vF{E4iF}UvT0kBT}5tt+bzZcl?w+T6rBEKMY3qwa16= zy0dxySpQSN4^XmX)Bvg}ugCa_S|Aj3R{t-&g7Y(tceWw@bZ86Y*}tgB-DdaJbr3du^# zC9bkx2UN}IA=E+Ch^`oOs3^*%=q$te z9$sO>y(3Z!v2Sb3J>6T%f!}j?c)+486TuA88OO+lzLC?-@ga7Uw5NiVVYHMCiyh8p8L<+r`YYmli);^cKp_)Wz44z(v>9U8p1S58w4 z3@Vph?9!4)c)dexuS-kb8*O3gNonb-i^(GQ~>*WRjg>V1$qc!@G57=K&f#@8Jz5_$11p^yK5l8YtdSs+@tu*9AbT zWZ}L^4xXo*&Y33z$;&8J4nt=&!MWF|kaTGm*<61S8GCr;cbeKOaFDQS&>taZsGxm) z8(oy8SGt5!j|l1nE*k3*#faCKlGI9}6z~+*LG^j9O<(gpCxgpg3dkht9bEQw3-#>g z-+t0Rc>h%NCw&z@ZUmt@QwZE6?mrWpNH9rY!jDqvG52)u0!zU!9jM}$+=;6O^!S^k za(V8!gcq1FIDMW_HN#dNrCX5n0yzpsfv&6!qt}>w5>Rm!;`j@Us0iZ@q=S-rD?mO8OVaiwp<(ZAjkKFI1iLwU38z7I5Y;@0fN>k!Bh8}OhKVMwMBlNhu@rWyGNT5R! zl(epLd~dhU(P+0O#MU}%2;6~fy_GRU;HEoq`AHYh3m{csdscW+>juhcqpt(o1=e4)c#RXAd3Slm49)WuN>yHC|SHNF?99ahel(&QYj_D|^;Jd4$Jcqze zHQbO?-a$Wt$x5#wXto-x;dq3D$Twpv6{2Jn=ic+(;!>T5jJEA@Q=qY)H&Qk3i0hD# z7gF--Zg`Ps#5q^bXxGlpvXI5LbI*C$#xI!$wd~PFAIo%wcu>Tx)IoTm6;$Ni+=^7H zvu9Am{&bls1UjBsY@Y57HvqmwoV^)oUzYJNQ)>3DJP=cy2gy2L;-jSx2G(iR5j33( z6%B2CB0UZ>ua8hGXj1(QwNsQHg;0$n7GX>pS>haO7R=XSoLrnI=&BXV^3!6^IL->I zo)jF>87WKTt~1uq<0@&z40`6wlhpMOGYVkL_8KHWHRZX-e3Ouu9%VE2E+4Cg$UTBCoUtf_4eX|rIR5=p zO}a45#RDg$SC6AZA|C)N<+*lh6DBoE`%);i1d8CD=Kc_yep)L%llQ;=EGwLA!@VbK zq;Npo*8y#~)Sa9n2JMSX+{?ek>8yWF+U^3Ly<0>A4W8c%bg!&P6+Ae@plElup4L00 zpZ5r*_6XK6qaw9S?yfWIpXdoGVPjyak8L)1wfzWQF~zH%?t8a#Z7-dkDp)m?9xHZ^ z(p~NPl?evcd0sC)3CH@tvx3QT2iRsDncJ7Li!3Ef7_bby^GOU@9IsLdJogyo=^n~d zAyhR)7}yNNQ5Mrq`+zTWmd)u$c7!s8zylW9E#@#tcn0NMg^Qd)8}BJlb?WA|C6M%O zP912{D{N9+uc z>m8v=6C;Hr5k;enEsMw+^ts!r+NmOv%~M;Kmb7>8F;ff%i<8|zHfta$ROd zyVU$AV@0Vt6Jez{|1`+g+ymbxpfU|)6`zNp0p$06t4&7i{=}qSSm;`&k*=24&Z8h3qyw7xct)OMxORGXbxLD zHb>{o(;&*8Y8cBFqvL@1GC+e>tl6pjXQdY!2!A?@Wodf6GN zQ~}BoSp$wp3ipt1jt?ly^`IgZMT?+=@@kY>`q(00(Wfo% zr`@B7)c~D%4y1iP7n1c`OShI3q|{^V=`Z;q$8imFCjHX7vMtoWS3S-ZgYj6%GC%}_ z6vEs^l=On45VO>9v9F@8_pn|VD&iJubOCU6!JtW1rYpt=+=)HKv_E3+_=th!h-#z+ zI%q7ohHLArauKscMpVV|ugrPN zGf2b}ynzghx;gXYbj|yg$@PShJ>!GNVoL~IUFz_YDjB$T-3vZ1J@xm`b1Zdt2T+na}(q9p(paJzh$tb~PaO}aeXZwjVY-itD88sW*BR*Yd9fTzD z2y$^^2vV`_@*f?FDjFY=mX7Z%OkwSu!d?X8HCz&mYdo<{l5%Uy+*kDH(JX_=)CGrF zLK4I^0z7gx@$POwYvdsNh-0t!cqhN!TCxX8^#-Jf);9(T-=YE|86+HL+*hG?x>ve` z)s#zYM>O{5cX4}#o?K8Ckl?%F0#c=6l5_>Q(FJijBFKoH%7DKF_Cm#;n`e$b1IBdJ z{|Lx+={-MuJ2s=ubKXjB{kru+HDz;LMrlucHeY50xTEI9j~s*|t*4j1`e&X?-_i1s5d_`hl~g za#<@pezd$lB|cFFUSR<#W}cmfJIZ|R$=uUBSYli;p(t-iN)^{SAm}9I=ozdmos3Td zgHs0HckU|pv|8P2l_mrUL|sb~Bn?So>EVJ168f91bIWqw1fu9zkvT0Rqrw5?PCTA` zBr6{oL?)J~9u#tCt=m=m9I#&3)(eFG`NNRnnN}WhQ;51Wc9|gk$*qMn5g2&LNT<-# zQ!X;3o9kbQxQRWny@ToK`0; zB@TD&mYdim^OBc6bdZx?l&ay|t5D-qc20+^_wx)j&b3;pZQlU0{63BKkU(g4QjAjFNVRG>ONAn7A=hIbH|{Gdsr;B-x4f>9)%#KW#zlmSx}Q zil2iudBYAGDnb_C^+O+UHpBXwxFye%n5f~1Fy%KaC+Wp9$R{#rIL!$IU#Pw6C~sz7 z7pn!5R_(Lr;X8!=jyRR_>j1fzNi&Z}9f*@!)0f_AGtat7`x?0SS?^~@?4M=2<-P2U z%*%5F$8tuV6#~cS_<6Rkkh|pty^smJx82O(d701$3_~}=8-CQ-f$B`_+!@h)ztgJ5 z<>`TTwj*~gvo2kY&QNYijz4@hWEsRH4LZnOmE=?d8Sx@0mtN|L^;q>g&_W{n?Th|R zQ{xPNYE^mHwB)ctm?S+5?|d$zZxG#@Ox?M$NGl}oDFZc5s)9tc9_R*RP@fPqi3Ah& zVcu{Z%{gJ>qLmO7YEQbHE^sa5c18Giqa8M`h4UUB(ktIh?i1(=T+})2fm03gwS5Ks zf_`H>VcLGn9O-tig@>?0)mH6({)JUyhp7!lwcu;w7f98srfotffAeKLi=&^ZhIgU?U`od>!}FY~rIpJ&hj6>g z*u`DGzCx{AwoNX#UEs)zd7OW@J2K~o-swMLDwb=N;No_QQ4dDMK{a0 zJIu6>(W*Lv;R{uU+_Sk<{C4Iwg~s`4-7?Zf#z%9CVRf;Wx`L~1XzxdIdZj9#dPsTY zwQkRJUXBwpw|^YtaVYkBBFUBe={n2r#RXKQFn~_#p*|9ra8%2U;a+NLh=coYj74Io zJA{^SCnpT1I2iBLC+w(g$byHkJ{aaAYV*@9zs59={W&Ic9>odDIlQbA-?yyPhHAZX z1D+TWA*0UROk|MZUU*C!KZ5^s#|*W3^CERH`dNBc9 zMOc|N1*)or20icTb~KSMR33y9b?66%;5i#X@H<={j#Cq>LbXRuTqLT#tACw;fkVoA zJNC73;D`mBYFHK0#sg-tc!$vMCnXO2J7YR`Ku7M(HE`lN+k zXi6DayV=chufS79FDav|cz>sD)u}&2y(I$kfhul2!?|4Fp+-&Z%*z?x=SuyWLddn~ z4c+(o7c#<`#X()d7T;Sig*23(ZoO0J&j0+yX{FydZ^Y>xICCgx;7j-Azkeab4VD{2 z0&&);gZy3uL}`nb2;KFHIFI-t>>|2Nxk`+hHV9Tw4+r@n!O+)QR{NbjPx-{t5hAc9k6^>v1oLy)+_ zGLJ!AMYSfj8LK>8Z9Knl!aUszy39y%Qr5U;mY#x`)O*k-&;9)|lnh=p3oqi6K2sng zKdh=Drv|3Pq~M&Zu%AwlX|c=mD4i#iCe-|jdgKr9LBEpxM|>iFSWby zfi%>zJMyM~PT}Vm0ahXpuAAb=VNGbCL{|^z>FyDmyexMPVGpcQ;K=;ofU0Q^ooR!V zK0unQ<+M3jsn#wBB?4pX06FQpT`WKSa&vr3+#2_865U5!O z89izsSH1M0wU>g&2FBY%akO-1|Da)aC0g&Xg zOeoQ6W+DECX^pMYVCLODdVJM%+gkjKA7 zfGpn%@x7;GSEpO{@4h%2B+D2l%mmW>jg{$_1Dx9D%{f6mFiM{rbcMuGX};E8W5q_85)O>yJdS~WL7Y_WFEcSyS5YYPZT@E3#+6fjj_HGLq9(efCq86TeGVd9vWizJ^4zH|>I0O6Zm^cfa%1Qc zAt~j|)H$42Ck(ecCrG@B3DTs!G_R_uZoaR!sPls z%`F~f%=I|lxy8*%)%Dy7$X$M^jY~bdaos}}Rq^Wy2M1J6yF_r6SEwm4i2jWOswO^$ zGJkWeH!`QRayk-$lz1(caE8p`EV!M2UuXE`zYx#Au%0pf7jXUs4q=a?Zg)h6l_RaK z4@fH)d0#f?h^wMmUR9!XmYqfA*lYTAfZi%LdEP`}acm{anGzNbp>rzG+?wn(U9`32 z*KoAj@f`=iNEXhJ-+5k+3YyK2(J~f!n->F**byBQtu8v_1J!af_{J)D?3@eTj#_~l zXIXV_zZ|GCzsMnks=$XAh4Ym2BJN09jUJXkMjM)89{{1M)gm$vI3Pkzpv3`W9^4(+ zi2ny_2v*cBgMk}}oLYw}UCw|0P=E~3?}D5n2G?eoX!SZ>pnh34a$S|<_NNaS$K+uGfFVi%ht97NZC<*I; z$?Hnn*MJRe@I>=9yt|jT?YV6)6LW`$zxt3qjL%1bHBh+gBb~Wdd%M&*dU3VjpT82t zwCYxJKO;rg+Hhi88W~;LNG)#sTx1(Ld9t`W=e+u{lscNg+^xrBQkPH2OV2Qs<7T(i zua4X!`svLT`PELKUeMcQCyM&baZ`>pv*Txf?(j`sOinF$US#QW`90)G9I3s~t{Wrm zVJ$BGWytPbZ$-P?QR!2|jfd`3UDmnup!gxv`l;bY4vPzKMn3l0Z5`y=-XZJyH5cm> z=s%3+4);KHDa{w38Z3(BtM4^&EI_w%+J2=NH4f`9h_zqq+5Cwa4)N?dr|? zm!tIgdsET+kA0s$6c+jqt6!?6B2VVHWu3O>YPN%OS&$mCTY3WTI`!ka`u^4j_j~}} z**b35-Cz%oi+F%8`nt8Yc=gS65_Jpe= z^`*)P*8gjQE_T5e=(FytpkBQSa^)Sm-P6%)e;C)FrHwi2`}Mg551;L)*`6h*)~+9E z(uwbC_KWD3!dy^iDGPY5Q$82se-D@6g)W+x^SVjq-OLL#p&X!GkA19La#!CqUuL=V z@6Cq;_b&fMIYLObm*H54g0E<_4ge{d&w{1x@26<-n~G+Tv4T*Y}V;H}}RpNy@8^F!i-x`Kpb$O9%X2Z}P5 zx|wK_=i@=sUIJ3mz&S@vdOt?hg6BDhX!1yJkctT+6z}@ua#2-mP}or)f^z#)S>A+n z5o1E$MhNV7H3*UzQ7_m!@`r4bvx9{HIw?4%?3xdC#{rL;Sem3GcKyc4aCJ~ktJ#S)oOZg*t+NDW`0 z)RbQ!rMD6ARG=1(WRA{!ext?{N@;rz7&jwa!6i)?F^e`tS9)5Oj~V8)wQf#9ih~lZ z#(e;2AeTE&B^{1#zXq1Bz|(L9O`=UBXtRBgJq~`BNDM1)AK@GaKuB()8IwRB@B)Jk z>+K>=2xrjDTFDpDg;)G|C5@Xt^t!t?=7Bq1akUH@RNEutsO~i6371^3UkXQ46{K+| zIwo3O^s@=-&wDs@_CU2f4$)@B0dT4lHe(rp2sCspG|4u=yW6Y5do~vpL)iGl!vIYf z2lKo?UBLTpXRh?_Um^+aBUX|ZX8QXaWc9SCM07m z&&}X%Wp#qcl#m^?w7}^rVvw7C0GzD!1p~86wHyb)i45ge>kJcJpn?Y21deDKivSvKjel+3tBK4iTD2bCtZIF`$AJ8W=V^G5ecdxggFAnpNle^^n|= z?>t76C{CNSu`w2jaxwMb5EkCi22#SKra_PMawW)v4`;J9}=ed;Htcb2gn7_ zS5;G>QK4G~B`vL%`vyTCPTi<8up#*wS_>;oHijI+Iv_ehF`evkEOs1r(=V-O3Hmf@x=#FhO!{dy zcRN4c%g!PX=d+d&DJZJwqHwVC`l&7%yoz=AoIJv6N&MPP8x5lG+x|pvqR`aBQuT57T%X%V)nts zUa`w0^PMzwVo?a3^QLkTEVcIIn4M8w`Y-RY2Zwe!%XZ!BXjYy)uPsrYI;S=(xlK+! zsME>+T{`~4vAgkg*+Cm7lK%|!_T~S)>$mM{i~Vlh&O*LS>E_n*d6Ss5y(nbf;!j@n zUN56QzKGw30uPZLQdS{>IAypXbLXK0?=k?S$|gHAX3-s1$%udzI;fIbply^0oy6#Y zq~jC3@5c38h1b7}e|?D{{b%Lb98WbYH5>>i@tE@ES8>=C-^ImZX4 zT|7%)7hPK{Oq#a6gV2Vl(kiWh>Nx5f*i%H;8cZ84Z}z43K_Zmp)2;x9KzYAYX^iXZ z-Qh`l)vtvJomnWn5DMr;wvPiFoo;B$6_GeVbMkzgr5UTOdu0UmSP=2=KMic23kiYe z!{P9r)Mje@|L;(btkxax9S#Z&D7up9vdZkv@t#ozfTW2%Kr>20raUuR4J|klpIOk? z1hJjxvRUl@>09vk&et~B4u{9$pb|!=>;Pir0;>^uPb0*&S6dK!emC11b2BNTZp0V7GXPpbE%P zaRC=CRau$j6{!#`*(1)pT9cfE=O3GWp8lAp0OExEEWp# zh{_rP9zP|cKpi7=|Egj;9!7_hRY-8eLlTOviQOPRm!CtOUd^lsKD3}GelIGDxVfgbq#0P5t<1zE{c>paEP%%yf|fMFVGu`Hd+bhu3aX=kR>0AEx^9VTUq<-97H+ zt73B;PgZx#{a#jNrsMBFZ9=h&J)-tnjBUgV)NqaHpT{a0F(8w=#~S}>Way-rYlqG( zpz?E1!SPua+v}QEJO6K+TVRhF=YHa8y?Y5r>JB?}fRGSabR~_fyheqEqAlSky}HdL zNcJ)lnP(aekrn|)`=Wio+fwOTp=4+%CZO~IQJgIp>%@#U28M)zJ?RTN(CVMdzTd3N zT0U>6%OV+jz#|-iI*i7zD!(nCi;=(0z)>bZO#$(^LP^kpc39+gIq~#agP@hK8-AN<7EnASZ z0SHRxHJq^?DWh}WFQ zqUz*Ru$^09p3xESMn9edo@ss;+bCN)44?x);n<$tX~P~-J$^*Jr|!#dk3%oa$wk#J zd+j@Jr{HW8bl2=oNZ&=%g#WcV{-E z?#cm?=4YcBYDC~x*Pw4?dRcfKaOVHp#dL@)sF*E?E%%P z^^8!GAlV)*>`M6y@u$a4a85?&(JHMJ*yF`r#xla*K>B$*Io=*)5v zxTrR%N?wtRSdB~$-W7SDXk|xo{7hR^P40SVrHe7*|$kCr}e-Jybt_> zCYR6mPQE0>50Z)npQV#NF>_0?$3F-KW|f6gLT96!zvp$DuPp-DT| zyQ;2AdpnLtvh7ETc0mC}ZG-JV$k16eTc2#dnRfG_*9Tyb{RC4qCmWU>c=Ui#&RO~Z zTjiTdCu9nT`%k(??SnegALto7NIG!J*g3(}owEuIpUYB(M6(A~Xp$G0NS_y;*+FT{ za+?)=O*o!*X`*ulKyxw~YzS2IXP@fJ|nEEOw7e=VkVh!QL58B?FMe%vNaR7+#qJi#orJ{B%#e|{d|ue|P_(P!>t^Wl%0!P9pa1fp|Ly*N zDc}Nk|COjmef)RIH#!se=cU8;W?X%LPB_a-mqm@trvO!E#w;$``rrzkSwK~E4Z%#a zIdzuN;z5LW)&WAogmvb25%!o&D=xScET)m{!jjLBwBzkMO2=k8QQ90}N*k0(RfOW! z6HdS892aT@jmwShzuhS}FVvL0>D)cs&3ZFlccz73wI1i6(&vnPsO=w< z(r^>*-I0V^%zl*)E%r;!4OtFIkxT((8)6B`6TuM z2>K1;1W2U%gBekfA~VEm_o;NC?HidXJ>aYZgoJ_63F-Smlc#LmsowBIarS7%ve5Y*`#8LfFVxE^QEgy!&F zKHuS&NlKa1pcH;dI5+=}uzTDis$_(c1j$}TBJ*^IOl=(ohn?R<+h_79_kj5hwEXFhszfF` zf$TycUi@aSZSrr?#IMi&Xa%!pvq{s)9aqVir5=^bIhnE_kE<%ELWGiwt`yy{diw$q zWa!Lt5unOaE6~KrAFUHd1{*CgFmoJ74X993attanaTc%YeJ{3(ZEY!fK+Px#kz(UH z9k&5itP`Im+<8JrYJ~<2tKlIq1lEjpMGxjMDAzrp$^eiwF|y@kTryIyVCvRW=>Q2T zx{{z|ZwpM-9@qty21j^?WsB0eC^AZ|7lH=!zHfqdZHfNH#KuMYnfo?KZnih{Yrc3v z9ZhdqS>>j2&(Kp7&iq>bjIBd1;MWr&=2=v9S?vvP(2-GP0FrXmiCnNU zH$689~NUzf0m^LNLeTP0DU`R z;|M(h)BvdB@Zjhl(<=E@^axM{b<~!~Y;1owqr?r)1$G$#Qlv5pl6+*TS9jc7BOs#P z9Fv(V<`+|R=dd{PEA-~8siz_}?1_EAqFb;+lZvhr`mfTB9-%`ARZ>eVny2bjF&F?+ zq(ZREgdjtOqUai8%eY8IO93Uxz}hCv7e&*l_~oc0cXz0(48Widlwm`YX1C~+&<)Na ztjtq2d}9qu%PK@Dx#%pTM7uX9*u5bI=arbW4#)R?*U)fuMU~(RC4~uW0b8c}Q?au* zStjiut+eGKxIF$R1huq#uB9Y?M3;{6X?{mWHStD{&J_{)^rTKM`2wwh z=|?7h2lYoy!gnrOIoyKeRq8!C+(Hm#Ln&MYRAtLe92tMraD@|{@TM1V-KlyN(5(-r zz$O9Dw+fo}z#BL9n3kUIE?U0`E6ZC5l~J8hUhj-6WcgI^9^M2`UO8iphUJ}BDalS|q9ML-oFR|)fxg>o%OOs99WaraBbqqX@l z^BZ-Fj#?py)q$LD1)C`F#--Q=cGL;60{5wQSW)vS?w~U!T9sSZJ_M{OXbQW6EqpmN zb<~94{}5LjP|vLO$LBJ)Kw0%h-H4(RHjrV?XZ9%+uT#p#)IpXbgwiuMrZ@LP7u1L7 zSas>th8$JBF7n7aEjbloltUcFr+RWM?FeVtNxN)=bLglcWae8aoMY#-;%k&LKMRN< zOH{?DbxOU6*Cjrcqv}U3=NmHP6y9i8$6#Yfq&+j7a5ggOqfod${>6)T&da?Wp_>{*Da<3O^o5p$V zH6BXA<*OWD=Pj!BGvkDDwxPH~uIhOO_Zs4fUuX8s)oz}3(c}?Z?qx5B4<%}r-EM0- zm*Vvcs!!=F^ovB@jDLWM=^0&o*>9!|w3rHquq?-p%mX;ePj*gHYFR#``#(S#WfJYxk7*2{xX%86EY6=cX=q z+vI8`u38VTtK)ZZh<_kArZq^O7ZzD2mm^VU znp?UvNY#$W&jwXpX1(IIS|ChbN_h$0fhzP0d@e4c2XQ+V%MZCSW{T1hva2FJ*j<)C z(RxDk=k^=)S>R7Ryx7`n>ssHphpPj%sHJGHcmz`0)a-QzZLFXH~u%Mr+ksN z+U6G1&hn%5qg7d|a*MwrPr>+GazdWapExtue3cwhWxqy_Sg>QU7tA75ZtHcn9@NOO%a0y&-CjJFl7;LXTXEf?$%@hI5dsEv@dljZUV zl-hnR_q#;Jp6es(sa_K$x2_2D@c=R7;B?oy@@U3F2P~t;3zLa@!FXnvI4aXNJz6Af znqYY>Z6Z^3LRaD~MzEHjv?_N@AfdKA7^)b*|EdsQc=u8g?z!v0+{u!;Qr_f7SR3_)HMicd5pJ84rX zW00umU`TDWY%*@pM4GE*2-tFs9W6uScDdS$ubza z@Lf}vylLXYH9?SqR(XRaL?;;5#x$!!jzAqBl1v{*6-=5UCXmtzq7xJwA=_In*frf`f8R`&oIw}i4>EGk-_zNhj}39F z1G#@V8P#SNWm`0yb3TC`GMSDc~qFD=5rtgcC0noW$AV=7~{THIKv?CZ~^_d{$~+ehBHx?fn;Y!YqRJ2)L} z=4Q~X&KF1haX9os4_Ht{Ww;!liqj?8;aL9ekC8?z;2uXvBM`^e2(^sZMi{fCFap=2 zQCaSXQS&FSB9mQIeb#yoFkEZ|7O-F14T}ylzl3CI;+vBS~BcG@?w>B`&;9F)|16x_pqIZ7{lUE& zKH7$sSPQR8xslQC0{>I<4|C%VF~$j7cXgzCC?+-j0+bDtic07q^1Suxttu z+45Eq6FSQ~M}7u?R!ktvQ9x>L5}_%}6-!lQc?+$d*-IJ^lxd3lsx(zKJ%!|MZ()BB zwF{ft37;WUC0K3(U6cBwr?Zgs@L|pp8z+jWx1zjC;&UWjonrtC5s{bK5u~D6b&zG= z17Cy>yyu?X#pDiOj;R-`nbO_MRlY%P{Bi7aE3*4VO&5yBcSO{4x&6caK0{?{XmlQOF1 zHelnhrIqtnf>z9^h4YHaQ&1?`8f92y@K1s=Sq>E;WK-H-!=xWbsjh|MMR-{bTI8o| zrh1k35I=7-@kTyP;>Rb^pJ;;Pq8Jl*XB@P12!T)GndL~E5i*XNu%%m|O>q=6>h((I z9oaIZE1=1yK$gEyU$Pj);gn-3O;~%bJ;5?c1W9gNpoW}KRqu)972LX*mGPAx*S`duOI ztRd`78%N=t8;S+DQn%7O=ql@nY-jDi!0NF{ryPNYuAw$5aYeJp?n&_7{rqz_BEmOt2zz*&jhY%=ZHSGK}2bHyfLdYz%$-vPLE%X3i zFhRX?d`<9s$<(mXn@#g^Ibok`tntkaPULP9-C#6ze3|SvBDvGe$TPzZDx(C}mUr#3dG1DEadF%$JF~JpW^2-Plst`zWS|RYw zsTY#`{esXt)D);QfAJT)3WGfffs)OngCtc=E07f*VRza=XVIVdkWF>xoUvJ!m2IkG zO~pieUG@yUfg~qd1-d3Z`0Cx(N#|``C=r@aEiZ;6+veWCWD7o`MBY3VE66CB_m!U1 zx;CDPS5jqIwNlEt5Yrwc|K&jM5UwjqYKkYKI9K}7Lqroo${AIeG}i{EFNx!j`mN1Q zR}B(JhQ7ER72#0l{tj8t&r4j`Q|R4t$zNJwy+7K-QJbRPk0MH&qE!@%PUdPy3Kb9R z_FBKs!9_c%))Gwn0C(9OQ*;j zY?j*AauLncc2avFgSvG=@2Gc`b3xtApIR>R*FZ}`ZRau|tHiPhX@jN+JAiLXp*t#Q zF8^h$GO>uSaoUFAzd$-qH|FY`4?=P06?Lcw(XUWD%?a4xHqM}_PDEx)>#4Ed8SXM+ z%9Tp<%G#c&(pnK+_=FDiYe)**U&Ziy8E=or6F09R)a9WnwX_srIlELYyFv$OA~~14 z(;ajXw)-*fC8RCqBDB;GL|yrps{07Ts%u5M3YbjKDCDCue`?TlN{zTwd4+8|S1HAM zQknIIiX10zP9W#;4A0Yc$(>gn&7KXFZw_JAlo3I~nG;A;2$Sv#ez{1ETcEgym4N=~ z^f{q1d&QWh%N;0`R~c;|CM&3&_y;sqp?KzY5m5Cwk`*LU*aCG!?&ka|Iii~N6=L-o zIfT^^Nm?&WbGM@ilk$sb;$>9IYpa1~(GF_73;EPgqu5LN$cI9<0vVsrm63F@c=?AR zn~ToF4eO3>X7Uxqw*u)+{N{p1Ge2`VKD`0-Bykl6F^yJ-iWh;48gn$G%&$|!&iNQuPQH*$xe<#85z<-h?h$<(LE02C^KXR4q3HzQ)0<8xeMWo%*zD z0!@fcP_$!IS3aS&OD0XcD;DJM_z!YcqiY)b9mXD3f>5C*bl6+_j>ru91y4(gV2G<^ zjdx8?OlV452(=4mO&J1B6DXR~72Y5PyS8fT27L^JJ4c(mg#E?u$P8&=Ww{2O&6DGX z-gPcH2kK7hQcNugZJPEVMeXBezVeCCizbC#Hox} zLR>=Yj7x}ULjSv{sBly`Y3YW_fOvxRG_)T>7jR|AgJv`(9^Bg)HI)cc<#puHlW9L+ z6y1=13TUd_6yIe4EBOFim3A@lQPP;^&k^+_LZbj$j2s3QxchOP( zdqQs@5y{*gG+}ya6=)s1P}fun3B7ZI)FO!?&?{`h(t_U-t)};oP3Z+^VFC$wM^lsD z0L~6yZ5RB}7nP{#i3v?;*ED|Ntq-+WQlT}B%Fnt)p%oBD$o}q{y^M1WA6B ztTl7AX^}ybc&}lH;8U|UpDT0%z3=x)Fo6u%eSG*JX{P<-UGgCjMO34q% zGLL|c&1A;v7g*g}QJcvzkA|$W#tB@*z8+hLB#~pCSdK6PIl0?9cIGvN+Mrm|Q*e{G zgjy4-2)RZpY){w|)q1JjuXC8qdq2T%P8mH(S)WHh#~yx-M1fID&sje!IorEBO=Y!w4}4h8?|8&*Rf&Zg3) z`TO54yZ~p>Oz_@-2VpU14@4kSrPN$jQ_Vm|8Z*TwBs%E2Sv=vBE;y@k#BO3-_}EJZ zy+YL`PV`3WgBu6lbqElYN{tNjfd#C15GEl!DnlZ)=5#AA_@PgI?h)D(nxx9-%}a-M z*ihAwC7bqH=>VO~9g+?reSr;Gb4Un*B*z3OQppS%mGgJLgFWV+=;QS2II2Wb@^fgM zj}*OR2dLwstS|?PPUh}Gp=+{XX;u1Qvug0&_<)sz6!x z_xN8Qg-3$<`QJ9P{O>P}|63whZVY946dJUIaw~)j$MSlK!+XYxfssR~!()u-oDmMo z{RzWg3@PWZG{GNEdphtDH+AHw24HM^2+0B|{q41KJM&e#}oEm5J zP*WI~YT?wHte*`d=CCI@L2w3%qR4sSH>SXY5K#!-okuP;MY!=D=&ak3@8=i%ltYCy zTj^aMY(-SgD@crVt6Zn}$lc=KOQjShb5ov+rk^FZEVfcs7Nw2?L#wlM%c>yu8)_G< z!SYRqIA{Hm7*>Llbj5Jp1VNG?$9FU4=_stB^^?zAL7lP*HKtqOOCG{0LZIYCICc>- z^pSrT3_BF7nMW;+X-QO8fKGyN7S|$vKVp;(3{hfQ0|}K@7^FDyh&YT{Vv*DfF_fG@ z{RtBkCaKqL`CiW1C9A6Cm(n*x9w=8N4Jg`a-UN|iwVnPL}(kT7v8jFX-doEv0i3;aUqEzB5 z`$Fg)GRicn6n0Pz--3x&feg#{QX{i`(R#>y4bXT}F5gOp_j$qxeFw$wo|ceZ*e-w{ zxK-|f%S?e8;gGzRn&2o`bWNGiUaLpWFyobS4wc1Y6l36VLtPohk8P-o{K+aEY`sHH z5b}M+Ess$8h;4*HOTLXb>c;UOM!-Je2pIpv!ws#_fXIQT{`>FaoAWaaEF5=^ZNz(G z>k-}<`N>ns90H+%>7IUZ7M}+;5n3ub1T|U7Slx<84yhUzon+~dX;!TAW5|m4whX=8 z^-PqtKc8{I9@dIG6R2Chp%9ACyd8Iyj`sTzFy5{vtR%uq%o4qalPA^@@+>bIel zRmo|`2R9KlSPt390ZwgVYN#NS@31IBbGqlUOg>hfva78iYcHF2EqN9Bopvvu1kU`b z1@CiR>p|wanaJU$c!7nrxT@yT2VxksT?={*avF89%SlQvluz9* zMn9>Q@M}-1tT(UBaB+>{%RwQ z@EHFg)7| zs5_s|$MZ(Ka7XKB-A=-KrMe@1QLjcuZRQkG`sPd$7f4=bZUQ~1Rm6CKuU1wN%PK>m zG~SZLLGKV+HD@$|Jy3UoqGo?#YpF4e#{Q$8u$@^>L&a%LKZhlch-K51)3f!-ig%7V z1d+SMkRp`o4Owt0)KK4Aa7W#ha%c}h`TaNIoybKkg?dPY+O9tLPjG9NCWFH)SoTIy zHLNGdRW{S-S%7a+kzw7<%88a@LN+B+U)o9DM!t2z3F*X5xQv@+NqGrXNDA8{RWQAg z55aT`oEC{;Edm>e;eIbfeE8Z}=fr7GkWBbav@%nW1T=*Pg&&>TOCqleL8#)b~Mi0eD$%e|qa+AW&qS9zG%%Zyw~Gv2{t zt5lI!yFC@Nm)Z9o^#Z@p8irstWppaQ;tX4Q!) z!YLIx7syp2cPMnkDWFuipR)33ve5TkmQ7NTF+N{vXVk#(7a1>ea82lvn3Xp*E8Ovd2vws8Oj&`o$^zfEa3-z`w0Vy0a7GXs^siD>{*m+8*Jpul$yH z3(JJ2bSSh}>4V-0*)k0L$>G!TzEiGkGrt-Tho}05ol_d|2e!Jmao(6i+BJa`n&vLK zj)^k9Ua1vgtQ)7+G=Yr#gyAATi+uzFFF<7G)tX58$YA>JGV9w22&5@|h3}?}s*q?^ z;_o}7l+o?zs3o(I$Gi?qd+0Doi_$O2kW9J&sc?La$kQ(C=+@2jdPy$}7PXgr)Iuy8 zBIhrb$4#PiFcE%2@_0A<_zxqb5%LJbr!c}Y!uZ~o@gKNZp;Tj35ObD@#%JfaDj7pu zywqWkoUFTx8{Ruoog#&;%e>@EZP1kbrs`qbIH1b1YwJZ>7Leqz8-JA7qtp}wTMu;3 zGP4MYJoVrI;656lF3Ngrd`g)(=n>wE`m}H1Qlr=__8^&H$3QN$okC0si{#QqexQOn z7)#X|ZfKgy8)Q6hC>-zAhjkP!i3gx|R03bDcD$dso%jtGg(jDJLY)0}V*9MrT7v;5 zWJE8A-KcE32_;e}zyBFS$SP8V6ET*RAh6$3a0=8+6agZrRYMf-7&Vn>#v^mO5N7QOsRa_zxf#7U^`R**8^ZNhjo{tS#uWkgI6s7oqL_fq?W za6`TbOl3p+@te`1&=~fhiDICBX3$hP>g3czs+h7kjV-{H4>ZUYsE2Uk3Q|!QOiCd; zd)waCNwm5JWEb4x#VVmGv=(X#p`T^Dhz6QE;e^e((3!2EkGEpn0l`9=yG`w&5c0%> z*Pu!HUArnd^}2fZa`dZXBbHxXLLW!|SCjj7UoC#IxM!)n5+Y zutc;Da-kO-Opj%7@y+-OOP>HIR6P)MtAeKB?p+bIoxD;{*e16Q=gTx#N>HSPW@rmm zd$Ld4)tp~jj$>EuW4|E`vI{>hPS1|N_^%xPXb`R*f3#)*wY#XGi-=I!LCcAI((a(s z>gf#=sV8UO6x}H#A_LusS4G7v>2S*5#=j=Oi5%+*Fv$U;(L2)c+HcO95@Q?t4)LF$^YjZ2k#{n z7mXM}7ssx4x^;aVxck?UcHQrxCfwbr{xbhTanY3+@)2`nylSQfQsX5Mm5^i<@##@-qPllk00kw8^6Bsj}F}0|4Y}o?Z~bZVfb0yoxjuWIOSkFJ$vS903iY50tpZ| za5pc;b{$;K0MeSO?=K(H$;#2OoxC9ZkO|}wy_$Gn3?cJSb(D#|e`?SaiMu}8Pq9OP z1fQ2QcZ0fGnMmIYHW$5`tMWeHbJV+uT*CD#x#@;}1a;QhIhM&KP}-ylEbV9mrr6ja zJWzHOg$7h1*+&g+te=W%S6U|Y+F8?TAQ&_K&H;T`V z{4?bpQjPSpM9#&3@Eom2$#d=kx`^efz;XfA5ZcW40Oqk4aS;XK{xjCFAJCCg9?w@H zUj^$lRS%TrVos53f~j04T*|pkvJO6SYf}~f<7e6Pujtq!oa(?#)6#Q7pgXox)6aW@ zROoXqt16(o^7o%vR8Qe-E-Wdor&Qs}6H~l5C(z8?LN^5p=&BZo&Se)UnVM8?(o3zV zEkZEm9de3v)hu5@HL#iFOj>6I(<``z#bkAwDtn{wp<((fgv25~#*cfQG@b#8aBuN` zHW!(MKiU1}M3uw}s%KUFHB5KRs?Cg9#H$*m%G)1dCP}l-v&v-%pfnd{D&+fGDno99oX;qOfcnjMGngV`!c;ty| z8E?=085$pM^rX8ta(YmA8V^MJ3OkZ_t$km9RX&~}q*1xY?egKFBb3V;ahKsq7M&}@ zBmOm!Dd_BjzAlk?%-Vn19N900te=wWvPTMO3iW%!^ZXzG2{wwwBOkF=_$K)ozb?Kn zhuTFpEVGJGMNLUtV^sXo1R{ZE3?WU*#W?^@1vJF>U-_^wna?_S+EDo{2BUBZ=I_nv zhC`;H@JPYAxdb^!SS!58E@g9>xw^0kEj@Aq$<$~vcvz%1C!mPB2|*WeWPXjfSug@+WdF6A;`v*IW2Tuy!YqMwk?DSwP+8>SWn#wp zWwZx*s4~9hSRQO=^UrScCRSpZ4*>=_9SDEqvdK%!e;(?_lZy);A6YLUSAOf8MP-_V zr)Y_?_*uo3zs;M2{?f$5xwx{MN|()*?Vh=bKS0m0Dn}IcXEpeOkVe?{skzNJIF-nv zgv4%%mAwQbkpM+n1wKNOoQK$4LW5(>BtohwxVHiF*@C!YM4Y0dy|9@AZ%a+VbJl|& zct;>Exj0qDm5*l;xkfnMQ2FL={U4zxqLw+2Hb6_)AP$o9{{Ay+Coy|Iq+5{-f1y*G z*dPu?{JC=t-~ZtM4<#8q;-bAYC8i`>xs^bbp-JFe@+VLR7D$-xND5J*!oVU8Md6b@ zkAV{}6G)kAF9;?q3?)z-0GjZY!r}odSR2C0)DQLA=`EMM{_5lCf46R!3Y+|^?NkDr z`^JvI?o+=XBqFm1?kkn7EBeJ<~Xal$-3oA+7#YRGc;DLpq#%jKT7^Tl->bH@s z`F+fwQ|jU&P)1P!Tp;&f(3q?xngxMfeMF?CGJpT8N$^ALJ(B?6T{B7Ga{~Rr_3kGo3dxE-bx{A+F{1O7Gp!|!Hy1?I`1%h^u>MuPTlwKiUdO- z2L4gd;4Qukh(OBuJ@Aapc*(gqJz;SW7ckMVnph((RnW6X^*bOy!F(u#Y7@-6t_71s zye@8&Q9R7QbK;q$RKG2U{4mEUB}0MtRpB!>fp;Kxdz}!%q%H+oE!3P#2#eE4d@V3(i&&-A zNfUThBBni*O{lVc^JlJTWnr@!cM%cU?Fof};&Ei^xUsom!M35)Nohr{e9|qB-}7kp zWGywsmkO^A#BR;GDKrgP+Z2nJIVm+(b2|c=M}o0+aP|OQ(BD{dEQK)07B3Irrb^fc z(ZcXfvV9U8?BYn>0tVeq$rASX5;zNpdot*;xU+%Ss;;JZ2=AIJ)587`>-_~pTbF)S zB>oX9gbI4|hfkfx!P>XUuUb_rc?Y@3yKn=0o-@q=G;llP(FL)&o#m5Z4V8UF62FR* z=q6U0BaHZ=KvjVdNc>B+7H{e_`W0UcdnlSiZNHBb0-0anWWlotY~m8?fKl=Y8f;Ln zDIc-dpZsxm5R2;G zXWP|)&IV*sCiv;9hrWN?7=zebpv?(nT;Ws|Q&@!V-ak*XrM!9v5)G`zIw(kXJ$=Vx z)EM~5ra6EAp;=8RpaBchxwHF1dPqg*hgeZ>lmVat8j~&j$)<0ETmNH_b-wq%y>#2x zyXV#ecKGkVC3Woc8HnSh8!pt>1bt)wsl)C2_xFU#7@9iW3?_&Pk{ZR|1Ibo^P3957 zisyt8BH8(1qt~4iCf0W$a{!CTLld|$jzNZE$$!`PpYP98(&G(DKzn$w&~fz4DeRoW zA}=UXK`s)I_9MqS@mmrKWYrh!wO`3p5WBv^$*%^Rg{#*{5*yBzg{GD~2`o@=ffbZ@ z6DiatBv({N%Rym>lLdjj8A{Y}nHet1gmvcpMgeHcd-WNtY}Q*mq_{$|skEtGX6Ko6tX0tD#Z3UR7M=edejporTZk%2h;D7hj9g3)N{Y zIk$!p@UJ0ysNSD)0sI-de#zcaZ9aL{d&Uyi341w~RMmlfSq_r^B6!vRACS& zvZ=2v;EkLfdN_KIGmXqWs6F@=j@Dl7BGPKAMNIf`*5dl{H|6>W4WoFA!(%|{Bsai( zh&ujB(9_`=EsjxU^~XUqRWE4Q%$sjKWw^Y*eEc7uvoU9A1UcX_0sMH3bX zX31WW*f+80E(O9T!%cD}h+TQr9Y<|xxCIQ4HJl$pDbONh1CD2Lq;aF_!H@VOb_q0f z)jR~g;wv%58w!dph-VRTs*26LW@|y69Be9h!wGU*fs1AoSEhHq%Z|H;dltX4gV^Td zN?3oQFhsG0%Y}Q-_u_1`gI*O}dd=5BoyGx3qK!<3NKyxb+O!?oWsA5fe+7RD>*Lwa zV7-?10o`-d=eC)HexbXB{et)3!Jk#stL)81KMLv_w>g%{rJeO%wn>$-JRKP2j3L$; z{aU0!dq6Phbt zh>0unGo-gf;~NWurtG1Cf#>8CY!NhIfg?|Ky{KNz{|JMOT1bp<{mGSgugVw_MYM)J zlIYqB&N}fISlsZd=vSphv`-c#I<911k64pcAf@xm^3ns^8`ovTMfiR5HEtawG}y3~ zsiHS@tcylAw)$yaN6btY!9AfoU`J}bZYIiksZ5!;(MGr&_H!$eda4Sg4bTtdn|y(> z;VwSDma3Fe2+g@gY&prX@2!x|eo>l&Z_Mfg&1Ke2*Vu%Z_%4h=1J6JUeyDoSJbJ>S zdNi1dwapANRk?N}H1K%CHn@O{Bb@x3BOc=qpt?+Pk7z%&S7#I4&Jmp$+H1+4_{Iq5 zB1E2{te^%HF_$oK8_VMLB)pxz?8 z;M(3HoqbC&BjrOcBQB~aYA8+=bUlCVTtTN~iFXK;hzh1N-2?fJqX+B}NQ->LZolOJ ziygQzPKm@7NshFJRZ{$t_6Xf{;=fqC-MeYs^v8r}>E`{biGj@{1Y+P%Q43`XAu*<$ zSB5=M8vqhSLvgB%B-NJB?rxy3Jm7H_kd&2)i+U6q@M)OB2o%Gn?uK_x+Ybek@udXw zWKafpE}b=h7ErZf;m`P##UmTx08KLIqp9@IjEoQ0JI7^0Z!DREZ|TaKG`4+kcVJaD z$)|@+#oG;ZRi4@m`sVnGFHdR(qtZ>RB;`j=42^q%gv4QasS=sL|HSwZ+b^0-D+mKf zD6`vYD}gC3B}&o`^QDE&@C#VtOC*Ir>sVJzo&?NqguaR*%r*0TXKkDpkclO8ovJ`i zJPVY|Tc)WPbgo0wJdv0u@BKBliGHpEf&M#yYeaVdP-Az9g}TC9{m%>%fPieCq5|)d z3rJN7@3EXC(jz8*#?nA-<~87+6uAGXaW&AF3?lio=Ez@Rb?NOn94lgPAxu;SLFPkg zb!JbwK}VcgArD1bJ;Y;WOeSD3cOFu1XC&hfq<(0K{Y&Y+=IV}7tU zQFAWMgnpF9XkuqxwQf(n4t~<0)xYz*X*fvB+7Wa8`yUd-2Lfo4p(tu!t>$WaPk! zyajy4W6j*RCp1+H?w{#+wr5Bhe6azs+r-|W-+>Xi^vh@oK~pWS&2^xvJo971%FO)$ zLfA#{tB?MIeN^2iU|NUbv%XRZp$Wfj!Sj?f7U1G8zdnK|y9WJ?)X^NpDOob`5;ry* z)D`m*Xy%ChM|{ano1k?iv=*pM80!v}apm2EImrZGzM?zsC6f@MH1+(CBhV1js=WBG2a+e|2oW7B}k#FZ{dMt{DPBYSjB?Wa~3Ag z(%40|82 znU>lt^C!W;LsI?#HGmjX-ot><1~!m$#LU}8%t^mFUGb9|tD?&)5PNUtG2ko{f=om> z)q$A|b8*sNFBiYcCe(`kmOfeB~~CO$z;BdTRdaZ^Zh#zJCuq61s2q4I88Lf#v(4D#R()_BLsA3 zeuXWR7CK>hW!f??b?blh*==8;l)GVi|7!OBhi=YpdQ$}jHnrQHCEspHwShpYihAh= z!J@?4{T+~*E|5SHpk`hpPq7VUfbFZMK?CPqW(22i#{I9@RJ{6*gL#;=Q;@u-{AjVD6VfU80g6FgPp^D0qaZCuh2%X(*4rPAYUL}@tu1?R9w_l;x2{Ch-gcr#W z?;jkU6-aawXKyvG3O{7IYG2knXZarTqiMyv*ahZkz-BC-?f2hI=%aWZi>H2xU}|Ec z&PL>1!RiZX85C(X)ZO{P=E1zN0kIqY+}Sr2^8l|vP`}lny&#y2<{rEB!fhrT`@pKc zY*I<$l}n6Z`w$yn1Y&$*859?WZAWED;r>)8=KCRJycld5#flg}T~Xg&TI(K&eb(0n zd1r%2ASU}EIv9MyqRiKB;{uv+#It!nBknuYCG!i6;;Lj>?Fa8t(}83j|rY=OU$C zTH!SW8q|d3>(#Ncbz{c-7TNZgGBizJkBPa`5T6*dN z_XQ+?LQxWn*wA-r!5g@5z(rh>Mq-vW18>=J^xlX(>edoA493KHFb~=>G$ z8_r#VE@HVVOfu3ssb-u#oV_|2tRYOaz_|`=MzmJ#P;u3k6*nI1WlC1wlrG=pxs9AF z-k$R0A!eo$-YCmZajJh0!K<(jPn%3ish%V3+Bdtm) z?ng7u7@5njtk?WmKCd}I7vV{?ESQAldt%TTbrZS3tSlpUSyD`qew8lfGy)dIypK#g zfOZyMB8AYLWP(T2)u4eUTrdmY772J5>YS>ka5#;+`2C-wp4MD>#^ZvTZTG`=2dx^V zTdqn_FO88Z>JeX?uw0OpOK8p!`+_01X#-marAam6s;=Mip@1%uOQ?=$Q)+gRLU3H2 z_y}8mYG{CPK^hFF#W22>Cd`Kp$V3U-gi{u>U&ueF)bK;97rQu_H1vItv^kwN`4UY8zrYY zFnP2%ft*ty&GXUEH!xm6hE)OBnqe8gs-LE2)){y$uqvPpXd^oxaO*|js*1@`hPQws zd?&ABU#t#wdZZLK3wlYW;@Bz}A`RbOf_qrC{2|sF0j9oVSYK!V!Y*J!ULqrp$<4gD3?qP3~LH? zKyQsLnxmB%&R-ZmWcPWiC3O=0V1ty{lh}y!gR7N0`lJ8#l`Q=)ghgF==m))2r<|)I zPlLKb)I;5(dR504a6?)^Llh`Z1BR=H9w*JRHWbCCp2zh#zWG%+U-c}Ab49x4Y$f^- z>IM-}-7RBNTrhx?CRm)HIF=P(C`udUBa*eGXpm<_Qs#THnX8I=e{!3$%QHSyH1%h( z^o`w(Ex)ZY8e3`sspp?lWvMy@U6IT$P%7qqNcT06Ko+SCk<^71PB(7Sb)7<3UG1T{ zIO6M=v+A#{9^sh>Ricc%wIMoZg0g0J&eZCT*6b&5xB;~pr;KIhf)%8J{s>z329?iH zM$*=w)lK!S`cR}5(r?1_Rxa^v?}xRDv!=23!RcU-o815g%+kw-7UrK1r?wH z;cWa4&?7ed!gO!#&XyeaBNuK7v4DNQP_^XNR2e6K2YLNIJLWau>wa+a5M!-zRg%?o zl<*s5ei;C!U%JJz>XLwmx_(!elZXmZ*aHc!tH$EGz+i;9KfW;ySe!6nQI50@@?u(# z72zf-gE~m=`B_pmXwL!FsH)dMT|fdAh2h+hDhw+~kQNw>kb|ebLt=Vs;^*V69U{c? ztUQX`zgIbhC9V*$^i#Dl(ujL+gOGkklI1!33zCT~!F%oNY+VM@cVFZ)V{?itR7ktr zMO^B8g-~Qp4%5Y|+yb@1AE7ix?t5gEK!Q~r$f$+mkWp(EfWo;8w2%~DR{kAP76?o0 z81tj43uTAm++eREkV0GsKq=)f!PkR(3o0+zl%zY9iWJttJ8Dyub|w`Td;?`*0Xgs4 zYmu2F?6s-E;snFOki^>BxdRPYoS-;oXyP|@d>(1WquyMhW*nc9^_Y2DZVZ_?X9p!-ukejKQH5< zZUy9ad{&sGzG>2kM=Y=t^9zgVQ0uLjzHud)yQoUpfqrKW{#1$L16ezA1U zsMxFNWdMv)@aT?TRsS$-wB%wwu1+s#g*(!K5h4a!)tTPZ4XqDfq8ij|a$eP~NLUvY z&odpoHAHTqHpRr3J{3nn)h8Vb46LT^po#QId3ENygvD4oGpm7J!GK+b-1HwU&rBi9D=G+=RpVNr;* zI*l^?s39yD1>t=3ew)I*eb32CR&|*cC^nR_o=qLhlR;I;1*H5Ai9ye62zO4MV(s&Q zN|cRh7u$zvC0jT7`f;fuQX~{Xjl2<)oYcIFIH&ObWDtVZ;Cqw`nV7z!R7&VsTvjW<&zlns6PA7Bwn6V9Wis6gcoh>9@3qN`PHiUH~;?_ z(-NfW4P<_SQV}ne?QBUb%v)xXF}1>R#elK{Mbw6}S;3r(W-ds{qVMo4M^n?y#)BhO z+Rt@J&wvFJ(qK5zgj4QF>&#O&igo6yNzHs!2lHisCGoY=(ZVex+dOY1^K}3Q>N>BM2=!H2#zchO)nu7hYs&?G*vZTd1rqvQZ58puxpCXSrjBwAd(Ol{8Nmi|o3 z0`nx`UXpg)Gy6j_t;&m}J9sHS%eCvUc zmw13}Li~jx6IWc=1hIFd#B>Y99%8%r{x^G;i+M0S#4a#T0*zhXF=~*dy+P)sOl89} z&vCw5k(Mm=Dj&>^?Hk3s{K9sBvWrQ)9tmd=yTCjdlmQT`&AbLw%Mer}+w)x2P!F4@ zVh(FBv1>3c2qFClZn;jycQ};^CEU9GxN(aq;{tWWUfieHasGVwKiqz`AAwCs3kHx9 zzl|I!uZC5f^l>td3u6MAUmz4|WiZFh$%@kpE{nuvnPkno6A#0Ren;csbjId^T~kXz zTHrW^CyeWab#N1^>TY?|T9>S^4OMS^X;YD++^@SBb-Ypfx@+ne7Y7b?%{&GW(=mK8 zA6KI)5J@7%+>rul1)RnXe401TP6KJc;snLked;DlmEV68pRHs+n}3GdErmVa2LvN* zO5AYhh?$FuEWXOG{`xgPe*G8vUujQuzd6Ik;o8LRfjXSOnp^)1YzjLLptRabs1;r1 zZc4ZJ{ukKZy5Wwk@gCb}S4%gKZk~;;d}2fp>e4cx@(@#%MZA1;-`UFX@xyfR?ar?g z?WMr^sGH0tEboZQcn<{(G7*Jf$-4w`mV5|4KBd5l+8CbsRQOyinO)qE=CU7@zz$v>^Z>Oia#rzYGN2Jx{7()lL&mDEvTfF`-&n>k!n~FjC_7HcmIju1QvEE7V6WJmZ7I zHewy2jj)GMBZFn`jl;+ucX54H)Q3)7`QwmgdCy#DLpBG(222MW=b9(H-1V4r`!s$mICv5%K*Oj(=uf1c>i)2;p8!F(%D5f@c-f zInCzIiDZ`=>LjiJ0`<>CJ*};a!DmTIDGHQQZN)x9wOQ{uJQ@>Ur0|+BiIvmpq%W;P zeQFm(tNI0Gh;9>2wosEz)MW8ZidMW5MPXlyaZ(jwzC7SVEcyo|7fP!W9PPdGs8~%` zc0b-K-!C!zxZ1{MVScHbEJx+;kk$z?bDhL(;t#Y*wT?-BLKeqo_6GdIA~rC{1~7c4 zbwb(6u6^$GA!}=h!H*FthYN65=%tWgLNt)M4I@s1T**tClMIwG4*!sC0mK zL|_1?dLX}!iN@6W*nONu!Zgen_br+UQh1^U>Yt@ltsPQdM;8$JA7MGe$d>%t@Kd)CT-SP#}Tzx9?{$teuIbE>V=CX#zXbkY15mvY-{qvf(2cAqPTqkVZ#S=5v zlklP^|D>CITOnVa-<@Wb3}@xqVOnw06ipwFOrDkmTE2|G|Hi@#=H3H*nm#j5qMj9I znP%lbjc4!C8Y5KlLmwlE+Z@>=z1g>nImN9ECuV4La0vB z53jS6q8rVyf)pQFKX#=@v8|rYx*`C4^& zX*0BO{~;@%?Qq{FHt&tA^i+&R^QJa-8^*RqE?c+4O$N>pW%nzcA0U-J3-{h<;+2SG z_B6uB9r+%%2XoWib?1OfX#!aiY2r&!NAYu@XxUo1n)WF^VAN#%HI}dwXJ?*we*C zccOZc9+X7cNWLcYY0I;0Cw=TGX^KTdJVt07K$;>HMte4N78)T*ChZ^4#0&ULT@yC} zaU_`1UP7SKx0UG1yIRRByi$fP~o zd0sxS=kXu->Vgxpwb65ga@k}h@`dNr%g-Fy<@`jB1Nk@lf^3`?r{Jz!$+ua5xiH_l zCoW`$te-Pn0JWPc5hSdSIZUFvAgAd?OY7Pu(+nTQjjc7%0^V-le_=Mavnga2-1F&L z*Y&&GrV!O@FmQjC?Olh!S6^~)Iv433#-Hsc=)J(ZO0 zOUKWJ-c85w{x*R zQg&JYOTlmc&x`Tlyw1M&EBCXH+I}c{$>Wj#{o6RT&ifxlKg?G{_-&3)^mofEXQzTM z7h@t*-che>RC{eZDm&vO>Y-k#fB&hscg;W9W|jlEhSitshEE%3q?xUH+pTu6_5tEL z>oY;~JpRMs;!z8()^o~K(q}%e;TBc``dN3-*?6A`%Pr8^(|!-%_1JcYNAi%tEx$V% z^k(ggwB|E2E#V~mb2+=#=k@H3o4j1sRrAh%`kQ*fqQhpD0Pe_n!sL#DwJB1V78(+qfIavK8XY+oe1LyDe;-aw#L* zdDIIdZ6Re&+{Xq}8}Y&+N{K45!MkBIIdFRA>t+}rz7_d!|y*E z>l4S&>M(;)Hy0P&fI7(s^ilA$m1uRR7CH%n>m_|$QQM)d|8zIzR^et|gHAKcX{p)^ zKy#ylnqJMA$(NaSbz~l;C&KPC>gAisM-JCQvAIzp-BL|Xxh7YKvl9F?uADEg=riRNFKB?eF-^Gdy^F_AG*!1R-i}1 zci;O~_+Mq9pGu1jWfy-cmmT`EO+U_{hmQYV^5b0d7=czQHQg?2p;???Uz&59^h^9V zqq$>uq1>@kN7vS=^-o@#&9-My|J?zdz3n&8hV*)OVp!d*sime;i=08Od_X7neAFEG zY}f>Mw4Z)A&XpeTZo*IA`(fe7st+&xxtCEZpU*>nH0Nc>!{Dl=9h33=rSTD{T$cUQ zrPafnHR#>(7xQzU$@mPdO*6@WJT9$`(piHhr@pTWcX}}kyM<$(Ps-IsuHaZs`&g@t zmV|2F&%0taL2i3vHMi=0Qs002kA&+)@&JJwzYZoRMCa1OA^dp$o71%CPA_>}D#oE@ za>j|LpUkQ4^-<>d(akmA(RHWf)aOlpJk0jHb3yCehT*+P&UJrwr>U)i%hhWt_2=Z= z@hYyf_ro{T>-pcDgm>qC=DAgsJAU+cJukk75M5aPmKzQAiROk}=()h5np4<7dK<+W zCVSy>!@NDc4sMoS?&sQO{QO(#rC3tPsrA`P<5k`0e9_|CPkCI=>nQg@Ojy018^4@= zj7GD5`Z0a$_RekOKB;@D9dmKrSFM_Gv)~b0d$XQpdcS+>Yna#At03PD)HZuL!S(qX z$IX_9OY!8Dy6&{LllMqk7x8Y+3;e07^QXce4~(OtvxYd&;Z>hMd8aAsb`o!8rzO-7 z-c;-R{dZ^n9Po&g)AoJek=&`It5T<;JyCj>c-QsKn9eA^BtQL&G}?@{f!9PMtsM0C z!&ttD+PGgS9^L`BP_49C#sQ=xPkfyOSaGG8lWY?g;Tn-oW@EH~wdsP~)W9 z!212qeE8$QIa3oxO>}1}BleJNTXj&}n^28V04W?()z0}=_Lf51Fe@o4dkw4j_4_Xh zc+}K{$G1HkgnHmk>&)#WRy5>1zQfmkD)>ybPxfb8?wOZlEnpd+9Dr&Xxjb;t35hw? zasfqQtJOCpqp+Hy1BUNHCUW`fV1iCL%dp!7a&ujUwW~MTu?V&$kdRuRBfK~iiR0ka z8NW77TH&qg$fUqs>pfUL#(x-L86j>Xg2Tpk;;3WSji)ve`S}JHMQjuKa~E$0*l8tB zqVvM@2sA>G_$x)+LTw_x27*g?ZQ1Ur@w{V8{9#W#fT3XjlKc#rJ!f7<9seOPj#f!( zTsgLFZv!qtj_!`ydd1}nEYk<4@&qyLsSCwYs^uHRyGCe27EqthTAbv`yic^AATFiG zz)jFLMIHh2E}|eZe3U9sicIzxZ_?=!T52wrLR|O8&J%SUx9vx;uA^qHu8fdKO>)%~ zaR4bDK&d&k!|t5R#z`J(VQgI!%iCzV(yn!1dwAyIBo4%}ZGl0?fa*;-T809Fj1sLA zo_w!86R%6IjdR*k7?6X_ws8O?8o+((ZhvuqPq}jT5v$?K}&5oHskNVWr(Pp zio_a5Z9|AMZo!!Uir&EpyOVBGPefVWtftu+EOMa8u!ovJIC$R%KF5cbTOReWLNkw_ zt@zi0=pk#d5&DG#NMzN-TakGXL;3ZUL+H-7^slT*M}1XwBK~!o<<}u^ z_>~8yJG$i#a;ztzn?`-7t=W$ZAH7;M{QkyatIuGm+s?#VY=#l zrk%j4hD}m04o}ok*~c1dDhk@Kn~MwqoP_xhd2SkBKrrL(hlSUGX$T9`FQ}}4RcKENuW-$U9f@g#fkX>s#39h zyhKIo0*O{gYj@FYBpRV`2psvBh$-)d6x4c*pwH)ih6~3WCAE>p3jG@YVd`H) z0~Y?AE^zJ>&URAqkXzZR>XLdw6VY0Fihm2V3gx{eTpe|SoyV>dY(R}Lt{_D#e+gjO zJC`aaI9(l^qqYe!{S@3DIfQzkEwQd&Bj3^`^;Fm^k6Q{kF!oWC%EUkZgC4<#nsJU$ z)soZOog4R8L?Cy#^9)@lz|s+!>aPR5#u=gO zTge^dx;Z{^a3Mo|PLO4hNOlq~vUba%_H;)!skc>3S_3VUWxFKe?P!*Kgk1E4E9l_8 zI{M;xgc1{{J!vM74U^jG74@9uVWjU$60h8{t3oh}Zx8aVJciw-GPMO>&has-`8ZaP*s+hu8V#RLSSxMD@wariA+e zpaYxTsdwiVvWq+lCt2hZ?G6uN=(14%M14%gV-2T8w2nCIj#`l>;}v`b?_tG()F%X; z#EO==-px#(ppCphVpo5;-O6$sz4>P;Njde9stcq(GsqQxgiU=h^-?W^gm$N03ir%Q zb(9IPgq*(r#+B4@@~HbSD@#I~z7F2Foh(8h#DPplBHkSz_6Fa&C~Tpra~- z4lQ?&UCd=GZb;iCp9R@v4c9~5dBd5?h@eS5XO-f_xJDdu9Q~^7N3)vK!tF|2_uvca zz-HGukG8X#q*92iRhuQ$NAOH)U40 zROkRcbz{{fUQ3BWWuzWL=6ov~=MQjd1*D+QKFmQW2|51SeU{gl5|wQ^~Vt4r!6|SrNZDWoW9Lo5Vg6 zH=5eOC`+f3HQi7zX-N?z#s()+e5556N-|4NB)Lf5tHM_vci+M*5r%$@P}jY2-njQn zL2%N+WnG|xR8-DoE2LKC7Sl}_y(giBuAoIlllDF}6qoF%udrWa!B4iv`Nee{Y}fHW zHu7yy3YBA93glgs#+a02!6#X2nlb9bQR_uQiOchFUo9 z6~v(H;@`3KK@$1FH~VFG2hMyH7HO$kR%4aXEJVmpYg$F|1&U#cLQRr>xpj~}rp762 zeAIHuz$U73vKBThQV3ZggM`M#B&m?XP2v(-L+@xJHO)iJuv1#OCOGn8iq)%JfjV=9 zs|uQAnvvhAN&QuH0alOj;M`FyhsPsu*ZA%b;PR^Oryi*8{+` z1x;hiC{hR;V`HZ+A>;#|H9UMGCw3f zP!9kZ`tpxg?befyC~Ls)Y}4rkT0zELvTK57zSdRlIG`DQ2!8+hazQ?RA2Wt*Ojy8q z9Duh#QcO)#E-x@Pi47$1EEtPp(Hl7LHHq;=xKtL!k)iGN*6E&F;K zqHqXZ6MiZ1`)6L3oqwTNpf<}OCh`w$DOFSd0Poy?FuK_UJEtl!NJ7X86bu#!r4Wr` zFi0RWcZFi($Y;+^6)nY`^{2!|-*GP^?&HinY>bPwPj_x6fZC1y+q0+0>HF`8P7TrU zWys6-p&gvb#hK$tz*VC4B<9(8n8~Z?4muzzeSo1PS$MGh6$$?U4 z{sas%$SAFiaeT)4kV?=0gfjm5rhfVUTYUn=#@;kFH9o^gNF$D;v*q+5lxPi1&rt86 z#{9xAZ<}w&T5b%9>l+23$tx&D6QWWL4^(BD-yXjZp;K-g!iW?lf+ROhs_)1VM(P#b z{)`=o&V`_Z78<5YgFKps9j{60Ho8BhpF& zSyP4@ty>PG?E9Ys8++G~x`I^1ve<&A&=qpT?JL5R9iCl)R8Ew1tWuLjOMrZUHxc>4 zf_XK9l(U-q1gQPs3UW@gnnN*%WmNsg7taE#?S|Zx*aS}K)bZ&4(90nI+ukOkY16Pc}>6g0O^h& zs7{&=L;6K}lMMwIK=JlbKtKGTPtnV!ub#?|%-UO{>de7D9dzQNN*KR()EVXURRh>+iq68KuTP{WKVAOJ{58w&(DGy-7LhPMwY8rjZUf%%k5HLP=uz>QtynkXbP!8(eh0!L&ApI z)JP7?ZmjvP>AKgh$d6PyHet(_V3`zBTZ-Zq#M~n+PyIZbX0={PG$LxcOP?gH!I6(FLb`U~n`cagG=V{St93$!i*(`@e1;ciQ>+l`PhOi% z5p5}wL1|a(#y`=_dj@CyTqKz~A#&pPB}B0aSc2u&kv>RO4ip7#iEH7MWWIZd$V^+{ z)Fkpq*@`}z_gn}P0aSst77&DauQD}Qt_P?!+FhqrL~oLKI4Ywjg!M353x`eOW;>!# z(*!yoIzh23bWI^-C6Gc65mot-gB9$bZR9<5O`|dX%2(yCA0M!(v{A9Dtr*F}#U={3 zEj9H>)RjAsoipmpjYaEKYKmR-gDc2cH^n%=Z3~A&7p~Lkf!mcEfUm_=%8KnvS#tTc z*TM=}VjF4Yz4868Tir($Vg3HowPO@~B#FK41MYjdhXI-Arlqu`)DsR!6w?x<34wXd zi0{hs&$T(l20WdNn%Y@4kQ)GMclo9=CQ(6W72hOW`+}lGsVH;=GAli8aRg1G#e_#k zn=P+CpUg+d=NVr?Us-Lm&Uuy3hoPAjB$PBQ$)+lgq_nq@AH09-K(0I&*>A&W{5S^_ zzm8ECs2~BW%x9ILX)XCGXf3}*X-gj!I((`qbLErR_X^F^E&b0i?N>`nkc_)!FpTLA zV5^sFr~=x8fbEye`ua~;|MM5df4E*HwGIZ77-6|WtVh=*C6y#MiI+f8sH0{RW0vnf zYWn^oFX2)ur&>PSJvn|2TtX*R2EQx80Aci9886;V|!L=4V&em(MAh(tqT%h{X_t(RIC0d8rwxEeSiZr)y zB5)L5FCkQ;3ZaNyJ&@-90j7q}M0aEsFOcSEMjKd0cyIto(w$$!dSqYiS$?3MohQf) z9qHHP0nc1eZ8DN)?u^~Y^!xtdK!Y zYB+64TG!9-RxaT_B%rJ$i~=OIhbedF(=4A)6@jDe)Er z&Y)Ro+rz_b^X*Uew96sodqIv?(0VENuFAgMjhl?vioNfgJ36w`UJuCOGT9sIT|_Me zGAu&6k!FUK-0zCkyR``032z-(t5xq>2wEGmaz_;^y-Wmh{_TTA=$uPVFd!j0tsI}% z9JU9@%x9pr_0|J%YgVzXmm*c;N}chMK5W);UOKAKPNIpb>BC76VcyC0SoAleHCEpodd-88@=KzVsi7oDtW5B-ZlzZ-+J|)T?enKK~N+Z4k zNBIC>#{X@Ep_cJ~8G(sL7{B;&{ErU>#(&@t>I*qCF3Z?EKs5>K`;ajG=tH`i3oBxp zi}!8MQ~9l1W`nn|PVK^q_K;IMN+UJ{n2`VSY1u; zCFe94#A@4p@f7mcq-f7BdRo$BlAon0KOPlJI*RHANvQ@}-LGi?NDmnrrv8j08V7+WUXLL_X9wwokY{Q5~5|0Q-pCl zdc5}XhBPZ31nyn?BDmMKYriJfpm;xupGN84 zutno8P>`b1{SH(Ur3sY?Isiiaf(mB6utnw7=AdX)qUNnbsm23f)F%qp&-5{E_)-rz ztlp8M;Qnb@+M-9)W==c+M&}W`%yc@P&6}(BMJDC0nJIrVoQ=2l;smrlxuYm=AScVPM};#NJyqI`xq-g9T@_rCV_UGVoVd%>i=(Fl zx9on|jissE|FALrJ#3lMl-(%=;_AIM)gNHpi|5%~-9v|~x8=7naZF#^B)WZs(Q0+W z&I2F3Pr0pMB)YEU+_7qYJ>BwsfUfoz+Oc^5b)9L)_)`xjIC?3hdC!=@4cbg^Lt=?& zLKIP=qh)LfJJ5&jP9Ho$8$3{onyUsIpP}uR%3Ww&gy+j+CX~?orOt;snKD$epZgtP&lH(j`%T?W;_C1Shm{HESq(@L+q`Yfz-ADLu z5>vO+l3jZ8S=PBnCeN)MZC!LNZ*nc{iMHha`Fo3*T(<_Fx#8ze&b8NpMUL7{#t@Q0 zF(8h7s%7~39g|paDz)~jlKTd8Xu&z$tb5}DpFL|r;$D7)2^#wl7;~|I{%{MY-{nT@ zE?oBo^|EYe7oJp$?y9ESl8O=y+!{{v)Zhv(N${R2`wt|ur2@tiGIgbGScJe{N#7w& zJ^oWcIp6S9#GRQ~ECwZ@ROt(6C2^Z;7C}b+ zqee_o^21Yn$O8AMw%vqW#%W1?q6K^5X5JTu-%hG4>r2JP$>(h@hRuu=74jt7hSEt2 zPb@S~R*l=&7;Y15icT=xCur)qjR{~nKR%7H9A;9=RQ{GKpv) z^V?lBpH1OQ;#Ua8s5KNp;21)4Rd7K+f11O+ze!HUU0faoTZ|!2PV5+J_Do*Vh5MKw zIg3pBPD-5!68Nmp`F1~1iO$JRm##c(o@o;p66_k}3=@58VdlVsC ztliq8X>+ms>Pd0sS$YbAB+kRzUiNZ+)}(&Z4eH9vk^4D8(ttK|qoXJdOMfoVoo<0P zSKJ_Uw|hwL1^_8C=Et`cS`a}(c`v*qDh?&9s!0_Q0_85w&tI6-f>5>Wwzw@kjc^#{ zM~_NGc@wO-N2BaCj1Hhpo88Y4HiHrsx;Yxv--g^cLu9E5yg!&84m7DN@u^IBpF|O5 z;%5l=DZbFQ0aeM$v;EB(BFt=ir3_qTf7d>rPI;p#@I{&h3df&6C;+W%zPww+1j^l5 z-`|sI9frkZA29sFbZvzBRpCvxtDZF%Zu#ODNNoC%c$=#M!{$2EN?QnR*q60#cSmV{ zt;SO`Wr|X=q58EPMteg%Idzu27eBG->n0oTUsQ3$SLnZ`T_DZs!x#3Mho`M7cQlJ#lDk&mnDC7~peB_vlYac z*gI~yGjGs97C+CK)HoJi7fgsyfH}Lu&mX%w!{BVu34(dsO4yW#M1H1IJj7e?y*3K` zZzykL0)!9^4v{|9oQKI@^ zq4>%Bs-cFT-rcxn0k+{}=IFzTOgk`NdjHO@9Rp6@HMXs|_*q7YB)@DVy^yDKDW%6`Bs7#Ig zh&f#qO!A?msV;HV>yqsX+mN{Xy;|7=ajctdP?a!$NF;-Lw-_hDi42Ehunj}~xid$LGK5iTm7=z+u!Oe5SVm)hlbO;qO07e?{&urfGLG1f zCCNvuH3y}ByC5U|qR{inGwM}Y?_cKTUagI?YabtAwdKgGtNtn*FleA z(qBut^R^MYZ$+2B85gg+u5G^vFV4p=cgHvJ)p(opeXsXc->ZY?GK+uzuZC=xH|aC1 zjbPr~!L=Rh_WTNE{fCMNX z{sLf;5ZyLUYXfCP82_rx=QP(|hWrmkSg<+I#r&uow4XUI1`#CSF&d-_WqsLu5r?m` ztA#g@F1pK=@bE zJa#KCmy&mkDJk!AYidTEBos}T86ujN z3z?!@`~;e?+@xR?Ihm5JcU7Qwt)J_eJp>YLarKc}MNSGNp@mSKx+6D{JFCn@#WPAWm}yY5`_GtTQMt*gS)2Rn{1CI#D({i1jEv%Z6Z`t_IGBYKwd8#Hu| zVp`#&U=NO<7Cs=dYY=$`30gxcV&CWD%9f}+xphR#RHdcx+>{k}kfhx28Z7I7bWtX* zbvxh;7O921q`2^;<1>GR!b;vp)|7FTmi;BCU9%3) z;Y!OxDHyrWj$DMe-Z7f8(R-m9VH4{xtBMOElQyXXg3ay%Q|0H9h(+ugsmdV^lb(mKI4*|7j<#g!Igu-A$>VZ_vn}#0 zOX8^V360A}F26wx(#8YAyzeTg74yfr?(P})xl`xIq4|p@?uQpf$s#5+Co?w`reZVf zA<%^G1VsWF<#T7OI6z7*3X}+edFWePi`MdtU0~zT#U4$=8KLy^4@IuFGXPE8!v?ZE zd5;F>_?ka|{=A6XEtXmr{)X^2B=#ATJaC!(M4qf2X0Yzz#-~md^oC&m_zWRVYL2g> zOz_7A${WxYQ6?WC!!co&fgC}`yB7hP_Rk-jL7UMrj7DD(#%GHQnw=3rE9dTN7;Xz; z!R9Qh*OgY&-_0u%Zs-Nt7rJ@T3GFH{RRI}~;n^y3gz+|R$#9d!nK4={NfhV>RF;=XWp-u%Bf#YHBC5~1LyLsv5~Q*r_+ zmn`nj?-|wXTs5hxbNpPwP9p(eagrPKlavplTb}xM0<)ww5Vm*cv6bHx& z&Dj^~%xDvLV}38A6rn&8fo&LBb{<1mv8qYo7y^hOrFIxtV%`+yURs;)dq)T>L6Hcg zI3(gD`|abK0dwpQR5gl|Wy(m?mW|>FdD=m5fn=_SpF?L zi>W&NzpN+&iW^9&Oqy%5)@>mew&-N$oTcs2XiR|76Qnqt2AW_Cp+v*`Fro-WM35ow zabj^i28=h*#Gxdwo?Q3_Y8m^)nZMQ?C+-WD{2-P7vBoZgjSVp!g-; zdFwf5puJ0oP6^FZkE6Jd19I?6W!MG;iUyMfBt#J#q1l|YDI6L#0Vr_-gyc=X@CH&U z7I_?B%pChMu@8%2$dB1qz<(Ou93M7T4SAOdaxL8%slI04hQtyj(y#~tS#l#WAGsV1 z^%ff4$#9 zirY4k@<&&!-LjrH-kD5&Ed<74tM|+)!ifwqft;cv-_O)$#t^W@|H_X$im@)%uMS(L zGY<|$rZEUKnQ9MdUDQo_YCv1MRMZsjV_yt!Z^e>dT@Yx1)L4fid3S8C2#X{D&?l}c zM-kq{%0)LN(i%~zOA@6mmT*oI`Kgmh|6wi3S~Q6|0-*?Ai|&JW5ECsQhpC|@J<)1y z-~Oz8$}c`cXcnb*!5J4Zvkj17(J5a_%d~kZu**YVl>|Ka9JT(H8JF zXN&Br^>pkE5rczN|Doiq9=rkAM2Z3%Bo+-f9)7}1ZBS>jSd0^31aj(zIXPj$=FA7DDN0@pA70AbM=nhz&9zN&b?8)by$jkj>D@e= zc|)Pa2@pysL$M@_aRQ7S$cVp*S^f)(NvW6h7n!8Vj0QR8<`D?+$Ljb;$dh3g%fTu~$@kU-h(02WOaVX-NY%~EHK z2A{~2Wve>FL?07Z>W<^#>dBpMYmb4`{X!CK5u|h|$;(YaJk{jm(YWePXb*C~vP#Eq zK9U5oLI9*dTffrqiQ5enA#xiMciCZ0&`Y`SB$E8VJx+j766fdl3~YduP|Wj7^*2|d zI$^=)EZf3Vcl?6R%(bqE@X!EK7+~Pz$pAF*0YN;nfTdZWX>@J)d>)+#Bk&wBkD&-ocByaIS~ zG{O_QjvvBvWW0j*k!; z!-mqqL`Zg2<)h1#o2yOKWoo>PoWr(cA2KzC7M_)&36RqzK^pmnz4N*C0Ivn~In~N_}98 z?**b07HrO4F((5`T0oa+xZhd`n~7&Af;aXAHjpw}G8&aO9f97Rfdng{RP5IH_%2?w zLLr^}by2fTI>?MNgrwUxVIBC>L>`u320$FR2*3ERu8iczmR}c5@?Diy^@&#kN#iAv zdl)VMQn)@rUGNBP=>Ulnk{XzGNm`^t8I1tlZ4gHlt&IDL$h}c zHu$g0W~)Q5g~~ZifY1QSP&_k97xJqL4Iz}P=WG08OApe&yqakJY9t+SVD)4n-HUUs zCt7M}{zjWxzCVgE;~Ql`Tc7T1;daS!)bcCzfwp*kVIQ0RYRX$Ts9D=C^c5&7p>0aF zOjyhRwo77J24cC&_c6D4j01@|sc|-t(%B}&#a#9us1HO5y;5hQ+d0r`VKI2O0Yxlw z2ihV#^T{ih7dt;9XhMYGv*?+`I`MM?tsE}`7u8)2tV|+yG@Ikl0Gcq9G9{&9mKDKO z;7)P1uN+;>q7VByEx6u7C;}c~phNDt+#xIhQ9_QGKuQZlCn#o0PBZJ^xXW}`yUxtD z>HICvcy^|*@Uev#{rvOaAe;L9s2vRV+B1bPSj=^Co=xCaA845rYq5B%5qoEKubpQX zybJHIKOQG&N68-ozkE$APhx)sp1iWt>+iK|*VkXY=I;$E2Kfvq>%A_Lrc1N zUoxAn2wCYR^7Jm#TL@%CFvJ&<&g5#QHf(4scM%`uyeaDST113J5&)s4tZu4x2tCjR zr1RlRt^!I!xz<){64pULRFp8FEPK9@mvu4h{k|m(pI@3=2#*#X_!umnAd7JVgm@+K zS)hD}^W{-Q;h1>ZBP@~t>l%5=+n*`RG{PbYSnQfGIPkPZ6p8sk6X3}2kW36+*Dcel zS?vq^zkwL~uMR%L{`__DXh8fQO{`~>X^;St$k!S{?(|kL>nwfGLuu5zkk;?A80XIM z32By4V3Gn27kE#_*;Y>1?_oVbA4cm->gV6}R{?EwA%Ua4CQQ$NPg)33LktPTUuBDN z*C2x)tKi#w<)QHlZTk*k=lAg9B?&n~0n`&35Ji)Q8w#>{kj||e$eg6FRa8nZy(;ql zo}0f`GPVZ^)q3l@jNGdUGSuK)@E$YT6hoqh^UGof)BHMsk7kJ(XP@*9#u&!y7&~I8-2_2ylaHFyCc*0|gm2Ky=2Ku%S_dy~{9naqJsTCkP&)Aa~}^uyd3tMGdfc zHlTy5{23CAzXL@RtqbIWkJ0jnsI!44Nse!jM4bg;pb7Y{h}(^a*<%K2 z_y`RPa(iUe_ly!(?kYa(*`a(Oe5}k>`3LA?jc`{zGL)XV6y<|MCJi|$j0czsPc8eN z14jxmqjh1B#Cj_b>Kf#^TZCL(jcYv=_Yk_Hb-K;60pI1?hfjHu>A!352WDPfMU=u=nb3jp@ zkNmi!byX1)NNIuS1V#RAgl3*hNofnzr(FVhfjTCk^GrF=_$_9})4dXiT-70CLlrgT zModLRI;EP+G)2C3RNcX&)|(o&Hp;y(&Y6#?Y_4am?aV`8CyQx;tG$(P*sT_DmEE*; z>#2HntQW?+<39t7C4}i2Xtz<$mlSCgHa7^()3uA4pARcR9^9R3+gII3D5f)Q-MA`L z8ee(a)}QlJ{h~luef=MNfmPCgav$ubQxy-0&vDE}_acSl{y7#-|xmteM%VV{;vpwNM1IR#r z)p@2oFrh2;E)DffKGF8-a|{Ud8?Xru4WJ1Tio-!upU|j=T-rMGU8WmakPbXVKhIov z^&u15#oI$M=L<<8>q-}$9hB^*Prqn;QlNd|!X5Q112P)U! zd8|DAC#q}%l@Tbs%ZP+UZ2VGr`Z<9@Xjk24F%#qfcj0ONAaGG=@48=&uH*EYozny; z{fn=2+j*WRqVTo4^=e)>&N$dk%ip`9)btX$4cRB+!v!^LeZi~k`$7%1x)g7Uej@|5;$m zrlW+Lsv(9tv)qhJSk;vCYt)O>C75;lHoULVrNnRCgr4v}isrHw$Tvloeq}$q?SI(w zSHNv)jvy1I)IPJ9?6@D7W$NWIVW``r9-ynTU!6Ph(&?+`%_Hu4m&S|j8~SAGN1QD? zGcSNfm&9A`d zxc-d|=!7rpdsXqsk^f<2(Cq2Xb+(Fk%bU$^J^p8VN6Hs{^bVRG-&?t-&nVB9Jz#q^ zuCwx&G+eE(xxY|-<+@j>`@VWA@*lr@e%<$Nfo5~Q6aQ^q_ub8EpexOPL+0#QPi#&Q z>|1&=mCo&Vf0kVS`DfJ(Tpj{NAj_M3%zF?v)TUAo52~PfjH?(zSLG)PX4IpPmA|5c z)RQ0eMMwuv!uW!wdNnODf#?ND(eOy0(_e9{pk^xLm}amA1HHpa`(GIU!y-`{yo8%3Xdd4uW0D9-T73<5J7GFfi1$Pj(9~@z z?_(xaLMnDAfCW^RR0JTnPcmr56#6?IP3 zpBTWO?w`L2RYcVEIu3O*wi7lU*{08W1M0WlOOBJY<;|2Hk7n969Lf)+BL3OznhbW{yT= zt6~}ZVuk}FB~(t2z$v$%urc)~HuhGKrU-@Ui(c)!Sy$e3E0X4#7N^F@wKE40r-wxC z9vu2bcB`~pUX!byzi?{SRTO_COwvEyNS^d^`Okl>4X$ORy>mHoXh!M&qo{Z1ZP{v} zDAW_3uHC?L<~^5aECQdSbyVe1i!p`qQtzX&$P!T{ANNGIlX2BlZk&rm0x>j+t%oY# zhzp47s8)B3QO(pPLQ`!FFK9yTN;avSG8?|3GuJJ9;}EEE9*wgM$RL4wLg&08b8hyx zi9?ilLk_$PRaKEz<2M#BDOjCA!tr!tJtlfW7};_Nb;5RX1sO-2I1C zE8*i_J0UEfeyUr@f!ZX=8L~%|dAqCEeOL3S%~cM)yDGoj%OsDAaGY|CYH`#G>a#U| z9vw7Wy@rdmh6ooRN^Jo*R+yQOWX$jXk!Q2g(@kw!+@{&eNEjxykLG_~zWg`O=Q2OD zW*+zWC)97<+$hs(YC+pv&5$AbPB{+yCAz!}+2-bo=`W6_Z(*t%%r03D^@bEhE!e;% z`Yv!gqi`iVM|Ub*b;B2E!Uz|2!e%UArSqjg8o~a+yC*L~@B;NJC_d3WuU>EikAtl8}$tY5}@T^xRZz^t@b_V45g%S~YAf$)Xx z#fq~4spJA9zQrU`UJNK)wpc?*A}SKM2)XdNjScw9r^-Pm>H1=_s{(!N>Fa-mu7GA# zvVfcm8-bjkXfC>zU=7t*$>Grmo6kJA#I4XJpH> z1>R1XX&lZjj9K_!EW6~UiLVkss=DM?#z*G{i6p6VvY97ZEWgIa(Ltxq37v%;)&R&iDiSlYR zhyY1mOD@}Hs^!Bb>JlM|n_MQu%vFRp%eZXHB>4%+YcBh4OW(IZTHbnER~XAv{m!-! zZV;=F{T>>JpR|=;7*}qqW#myGnVKGcImk?%;Hd3?E>mQsrftqgmedxE?wcZb-Y;&Ei&ChRODuMV=PYNr177>J9U?qZ_$?49CpPG$c$;_R58*!{PT|^e?pCx%h3!4 zc*QEkLaX2w7J=H{<=}7Yb|2xfj<}4ljW9NrQEPN06Cw<&LbnWsPr@qLpW-!%9aX4H+yd(T8Cr*!4JQqf&vS}fy)DpZfVd=Crs$cMxs zLes4Vipp!+Hq1;aGM~!{&llKcokW^n$g?0)@mx#Ug|HD6(4$P#a* z3#7#|4CIVc)pJ2@!lg+51f7?Rjx-^JkKVM`0!W-Uz(5kQ!iY+#u^&Xp;uKDM$WmqH z09FirTUtVIvIkd#;t4pZlu9aI1${IK zHPMNd6WUL~%4(Ac(p)9~l-xgpYgo|>L==iAH1T$c5p5L$Np2lgsB>x{$%)p)^eU-# zCz;{K2cwNKN(5>4*D{Ln1ZQMTAcY(#DmK0}Gtsf{XD#0U8KWY{i|~3SuPPG94gCqH z#`wm<+3t}1)(FIs7-LQA3C-x&3=47*XvhpwwI)sfZqx2yZW+HY*x#u9H!5R@*dk5@ zO&EpOocfR8yX4Gt!>zQIXqlC_+^B1>P-Q87KwW(j(W%lsMNCM-x#09ml_p&iq;$L^ z6W@P#(#8Q-`b&4G!c}Ly9~sT4TVIt~>)Dzfk8Gb;BX_3|1g+{qV&p3UVbT;6p(;!F z4H44cMtRMM7v-eAmC3;-TX~E^7$gR0lE(?~dgR zn$`94#r?0tp!;Rk~dAMB2=e1A!a5QSB@6} zQ})+gfG#qZ(k_M#y6I+D)FB*aWixl#cn7l1uJ2-e>Mp%V>zC0JSg#<fUIU& zgMIofkYqH@6gJHi@exco-txCi#R=86uct^PP5q6!cMhG(F7w2GQ^vi1lC=1{@JI30t>OG3p0CiTpfAI#OpZRW z^lkeMrtg9=!GE#;*L?g#e--RG{4d+S!|s`HVlY2SjqN8@h%Ad`kkf691YvSIQuhz1 zSLl{Ioan?vi|{{xCmA`O(3EQApNXk8ye``A&bYEdm+c<*An%&Ck`GpHQu@~IVw|%| z6hVSTyN5epOZ?W~moHBpigj53C2fHBKjji6Mk21OOl}iTBisebS^h~Az(^)>Zf|te z0u3B@jtyj42SG9UP85Z8hMiBFJ0m3WMcXapTu2N}RTKB2nOF-JXvJ|x9w8`aM8^^# z8D!a=)SB5{VV9_?a%{Y$M-u@~FJ#O0SPZ$!3qg`~D`S-wO|V=Q__!%3hqYgaK$7o2 zxs-YXeSoWV^bpgRIUe;W|2g^TJjVZZ1pc;?HtnZd;&fkIVTdE(!7)coAc0+z>WyQS z7y=30($jzlYQ_^vsX{+6FKONY0ScCbRxX=niZE-}{4%Fw0Vx&;9H|Su0x8%MyrlB- zBXJC|x5=!Y9HP88*Re4#5tc~+q*f|5F*K0md^BUdWE=-_vK+zGIpr)7OWB+@)Els> z(SH8Pgu?B25-#xLR}7`bFm9JFA_nVSGn{~wTzoyf$@;s_CST9mzwTJI~hiDqtRIk z-aPrZ)=LbngY%jAw3%XBzO_~0@va14(&KJ?{%!nEOlcpnjm0Bw`W#elH{>PIB3$lk z6Z(Zyk+^~w+AX}9?i_x4!edZeS|J9W3?uM;nu7aJ>kLt1ARY8%mPrdC$qJvM9}=S~ zE9Nn-ggU2HB1rOhmPjZqmLc#wv(~5~Y(foNQ0i5PB*uhYsM)>yqRx)YStn=`JEs?r zPmoXUDn%6;23CINYPo{xt@Hapiny)mPY=dW$98q+(_%JmAzN+?_tN^YLB$w(x@y&j zTn9Uf{gkxkgw@GhIo>n#&~Q%a$;@{h^bTfOAW^yu8p&;9*L&G^kZXI$DFm&Q14W^# z37Q*cdHpNsB6PSm_exeK`6ik#<;B9c*(=h2^`xEeFF%%eX;uy^$Z`Zz*CYj*L*RHX zoFXJ8T25$8xJwe1nhZnDV#O8|NCq>rk;n~DCu}FDaH5+sTN4BS`R9rMr0i9?GI$Me zW=Wj4Ah~rUp$<(X6Lej=kKUpw8zk;wQL2(;Kk5kO!nrH}84--U`-W;ewJsDT21&Td zJKR)RuJMG(R}EjKa_;S@mRx)5m~>{f9%P7t$vKXy>Rz@jp}F#R(5XZBe6$4BF;(0@0-GRF+vmUZG+4uidNTD=PW2A8Co8nBjjCi{rebc$aZ_GC zXL3(ZLmpVq*xo^5`k2;UO{HYxllUdo5fr~QCL?qA0yBDuhTcc?szYm2{bQZbKSU2< zHT=OAj4RAOQm;qrzM|y)Ym+Y3Kdn3mi^YvZ{BVfMPgvzR>XL-D;hn`IQJ&X~BF0S* zr<=Ufr@1q_27*LG5?`aYuHuEW_!B5j*n}SyzdAr2A{X#;)%r5!)67^vCZt`?r;w|B zul_Ul1z}5{22N>8)%a_g@vijSmaFMy1! zL!CJ~4v(oE){bT(p$qaRnU;&dRaKMyg8ae1HAo%QRcohP$RNS&Rd$IBUZ6NLM08Ci zZL(L%27WE9eCsin=CqR6^!74{+cB3{SHM*ovvgS$`It|y~kuRhR;-DdV3Z)BN9vBmg zk0gS8yDuzgDhnd2unsR|!oRB7sJ_;1&}WlJ-kqkezJ^u0QmI5s@c^kx&sC{(g`+9S zyH=D}WOP1nQ(a0{q_jKj=V}`J3n4kC3U}OpsN}LFs8MXYdZBW^#P4CStS}x&{n&4O zb}rkEmFdES;MH}r{noe`iI#8O%=jQrXm-iR24x#yTV=&+lx$mjmwbW@aWC={c(6c~ z+OSz(;8;fFb^puQhwT_4kH(Sl@ft?RBWxVXh#baO)3-cg8=(*582@jmedHKX8;@2z z6!I%@rUh-lvY>Z{GGZE&@u@Pa`w#L7AjT*$)ZWaw7wX~OMVQGyWx=#qhC;2$?yt{M z>#u=URADM!@xgJC2$KAivMlj-B!Q?l$Z|CBq9#ymX5&4T+-F`?=hP(fk517)``G&{ zY^Qp^#`)>ODGc=pO=O)0X1cKA@Z-Erj zvqQO^ka2Wm6+Jx_UuYfVEFZ*0vtcaU?NF`>6pdvkYIxQ^Qg*U8S-8VLp+u-|U0+Y; z{`s0OxBkbzwRw$qSU_c$UA&o}uwKLp`qugaDJyuVrx5oFa5~MI;)IyE8K=bwj$Tg7 zgrG^hv99(PKF~y#ZP3nk8o8{-5k@sV6}e)L&_tYfiM(b}o2f!h1QBwLAt=YHnXQsP zPRvpcp+*m@#mzn@UV2S93;Vt2Cb4ts+?|T8Ed-Km37XRfsGY^_SUBUTnq}GzxiA#* zkEZEXu*>X0v^61He@Z(Wb^+eg5P4qynr~j5kDbR$rW_MLFrNWxzo`n@0VLm z5d&fkp|3URfWd0@laBZc!8oV;gw0v*T)2R!6b*<3il%$0w_+amuOOI=zmSd`tj431 z8>4nk0iDWDFvNYr!dXZzvBX| zYT16dCt|Tl+Bu-!LsfdDEIj~KZzZCVsg^Pml?DaAQRWQP=tZCZlwH+F>@s??)P!z| zuWMAW?+D@k1FRF?iw@bH<_ZNFzFv5L=Z3G&j z{W}cn9?FRP@(unL+d4-YoAazHG>Ith81a;{6^euJ#t*dG00`3B}&$5EPWHjB8r0V%Q7%G+0 zC3n`P*t{5JtF<5K%S3GDyiE;!M~A#gTWArq)p(9jr#1hhWWGvC4E~ zsYZXcflauHcuM&@jKatGFN8MILgj{xK|}tGg&ms%hv)b|9`_zOB5Q(XKC%k-BlUs& z`?v1!ypOJ7K;|HWB``)y#95RHimEFop7RD#TcK!~n~g;sNoTc}Qh9>LLEhrV$gjB) z;%9HrRmx*SjB9A-uH}d)fJu)4GiT5&t=Fo$IfO;P{=gPm3rupkD_GGP+MN%pd$Acb zWXoeM2NOU3mv!-tWj#4ZJ;1tSYt0>L6KS*c^5<8~O;1Bv+ooDa64BGs{8!cL@(dN@ z2N?N#^LKHaP+xp*LGd(g-!+3Zk*7; zTy}kzoU<0xZaIV+!@eVf%mQkJ3$Hs>sS_V{!e;zPbqglEyQnxV=sK)e2&mp_KAC!< zdv%cKO4USprFN<#H_PrMI6WM#rjNxnjK+a+EGLcsWA`de^P;-8N4T&ezO!xQ=C6*> z!F(*o*!Wx^Gv5#+$VjKOt~(t$pO(CS%sA~rEr*4|23Nkow?sDY96m}#B0kt6glp>p z$J?@0wiX~^q={D z%MU833)j7z`&)`(+i_B&#n5+4Z0x(_7b*ic3<+hM3OmRaIHJZ7qGBtg)YDVVCh6Cj z^i^A|QqV*vfSg(n+jbfa40?L+_?Wm&{PIerP6%?LFEG)X|NMhwkmZT0Q!`AoOxQZ= zmYz0A>jF!WTygJCVB~870~l36YraxEoPa!uj7bo4c_alwOTm#pnK1t)Rk~idInc3n z6SC#%^OZ&~MLFNICsrrS6YIguof&W1XTps_@hY$7$S(Nu(3PIFejB*dNlTzU88YIN z>ud|;#yf=MhMpO?y42oFPI4{kUY)p2+{1cRD`+;X57M`T*?Z-JdU3QX%T?<`w6l%H zmGlamrN4l|++PL(q=|b<*Rt)%QLV=LpTA>Zqw6u$mCg~52hKj5YNY#U%J@O+vF62aO~3i#NY^%zRW3i#%!wmAB*rbVob+6Bvs`eOH!< znA$3o)02z{LR-oLbqhV+!z3_scomAXaSM69YPx9aZR5_=Z|Hy6pi4mx@mqh@sO6$< zU|V-|P0W^#qBc7E&e6Ua#iD3BR3eHyWgR}|qZ(Ok~(dhhZlyKAuF>#w&FG^<1cX3zeGF{oTjFqEi z*+7DOSi4a(%7LO{*>-g+R)}o_e>g(9_?I<$(XGhQRiCiq6xFu@KbUK=zUt0+cRtdF z8ddH5!!!ZpXk7Z~cd-p|@^;$(VdZfyujHFp=hXle@)(YYSI8&i(@eA|71TH(l#i_L zJNQrA2DO+4uBw{MIW1PR5P^)Vf8BNm~XQ)6w0R*}T?+$5hhhhRbnOPQ)A;pPT zwj1Pq?629} zLg=R``x0J0BP)0_q|g)eWn`?oI5X=rL2i%?xLL2>_GNs}^96GC!pWry$~BK+mD)Te z4{ASo@)Mlo64F%LkJP=QpBR}@r0kH(jg>>#r4uy^zE{DN!@e6PS|_x+ystHgII%fN zTg0UKNW@pHZjSYwu5t&tvF6YkT>A(gvy~H?8`E7dTSuOd3Iw*RrAtRjLa3M5o56WjZ{9BPMR$lu=qV!7{}YD}&rS zQhcH**&NC%^faUN%lkHtZE_wH+v$xvD>~>~H#Pj$gBw@wHFPYOMS4x5kn`l1stAHn z1v%<^DG`mcHdkbJciw`8@@CZdVCKl{QDg%dC0ZC!S3};AmFy5KcVn$a*><%ns848o zbV)Lw3PjF2ppT)<&c46}2a$ejJ@ChhVUPgc5dvg2liJ3!2WuuLA73 z!~VFtxC2T)eu%EZi92l zd!cw#xK$B+;U}ZH!&`z&zF{J2T5Cr-H_;wKSGXl)#hin!Jy-22=a=+&(NGuRcO_?+ z?}*ilWltx~-hv858Se9I4*J`lEpL07UGD`ryUo?*Zuz%q_fo#y?Y=tQ2q^I5WO6MChs3-Fjw zigfQzvzzd6!S6Xz*?G5N!s(xXpG-_h&Z%4lkgqyJwf~Lc>!{Q|VWMT`wqSJX7OU#z zq6x0+-1t%DhgzjvkF>9eTV@#M$lNwgESP#Du8vThc{$SANIWEn2W4@wwh(uDaLqNXU~@r|J64O>w;DhZYw{?jhB0 z4Kq+d{$(!Q(?%H^K>B_o^UCo;C0^q|KHXssFPN2ZRKx8Ay~Stpjjp_ofAb&8I9{L} z0-2F~SFC(?-V(`1jf2Qv8 zPux75(49h*4M?56W<_S;h&~35M;2F0`Gi*AL>oNZdkIO|lLRwL3?zAtEbn z$9XiWe4Zo-Sgwf1t7X{@m|8(6CR&WU0Cxz1F;M%-6=ZxsDQ7cFJalxNS@ucQxoS_i zh^A`QELErTrhfeMk3G%!nE0gywt>Dv)|5d`5yCAAfV$;SQ*-to<*Xl};oG}RQR**(wWBt{)-BumbwL+Zuc}Sb=TSk z&&^8)+4;ZQYfg3}z)inKa!>CDy5rC7UtNEn!gtZ0zCVEWQM$U`8}w>d9xmX^JJQy1 z^~UivetXBQrI`MQYi&;dy|lSK^{X>8^;GEcO>Ce(vrMnuz8%dr@1MUDur1A*Ty(<< zI;U$)xgeeZI#GM%y8x?#Y8hmdXmR8LmH4b$trPs_*sCVAv&EsA_0d@#IXfj<6nRE( z9vIdMf_0UZEcM;$715nt?hl%>-ZF9<)T(joGgFzMp3qL}Aqy9ZaH4^quxNs2^H*qI zK~7QK4f%u+>dfsF(!_7lpA`2R+NNZ3s%!(LC730v%(-2J-CuIcf9P%%?VInWH-oz2 z9hTfW=zCuNyP8bzSu?wSf8@*CKwsu}z3)kP?)eL3cl5mtZusK6ltZ5jeYXl~Kav^xqHs~Rl%P0KZH9>!_hnb6vTNd-1BMlb z*k#BSGwcuXiZtLozbg`iTBp_t?CxkG4zP5jevVevrhaHzEM+0oZ!NF0oxN|v{+^y< zINtE$chY$UpmxIwnlOUJ^-q)$_7UFWur+AEbKqD;V55%zA*>Aoq_A?N5fMXXGl@=( zqdfXMu+XihxF{#h)(N@Fn>C%dy#BisnJF#&=^gp!?NYZ%ak|&FqfUJ#8de+sZ#3ea zLm3e@;USRA51|TgfrzPbe2ti5sTh!h#7$G`yxgKFTINX$ha1E$_Zqx%dE{{ak!sw$ z>g4UoZrN>Zx7OpRuBLZQxaqCM-8^@OfeK~8Z(7~2AFXWhM){g)i_z5JAHPCsgq z;$F(GutThu{NTKS7tPt^}m498P+GvCeI$4wSvX=##T7up^H>2fn74osiAUEYTh>y3N z#?3IpBMHeUd&>GmiL(`Ces_X!L;94nnw;9J@W-mvc%w6|5?djLa^v)?15H8dEg(%1 z0##Gv%$0uFOTEcgwT9XQgUmI9I2F`pzyp4&_#_A&6Y-&Nh>Zgprw!F|gcBJqpn^pe zZzh9@15zyvOK)H}6G=AcPboM;O#}8onh3Qio*4{< z$h{>t=rdx)D-c6@;E5Mw{e@G5Lab-DBM}(v}odQ;LluLXGY7g{zQui8NosrT4M4CsEYYWN*j0twphysQjc^( zH`)mcZoEmlmg@o2KOxM5;zdjoKIhrk*l)AyPn^a$$8&)f$W_|+Nm5vleR0eDAu8ge z+KxO)?PFn5x{{A*-mCVZfV;SmZSKk#M($5GRGlNb%Ur zONUkNPdJ(Rf||Pa)|5`}z1YJFzVtP)m{jni8qMtY?XvO>lQ zH7&|^zvg+|kRud8(MimdacoZWgKlmXtgifA=y;64`%!sshRDjxY6KdbIE+4HCqyWA z%VM;y$)s+z$I9UbZY+=)msuwJmwfBt>6l!#v>9gTBN7@3m9QaP_2Ns4+HX-^%M zVdtaA!8hx9-gN;rwvs%H>qW`6vqbXA>S(AE-ICqh5r>0S%#D!W`W*5Cojg_R!aUNhW_`-eWE&7e>!?C6RPi8jJ1WTVkVXRbILJ{T0#Nku|5Ml{d|Aba`}1wA!6hsw1U_Gq)U$j!Hv6kJLZl;Y`y$jFqA-2U%w^{_YKs}IhdMY(Z$7Y!lpV6{hC5DF{ z$W(4yp%(Ivj;faC7&ZZZJ`C79MEm1)Eakq75d=rWdFS4jrK-~bn(z}SiX3!42Je%V3a1SD~)t3P?g=-RsDTdHb>>%MM zXkmJyHii||^3?gAN)&^;%qG+(vTH-!Rms#l zhY;vhLs(cKYsy+hCzUsvI4wnnzjQ}$pSrGkn&Z|M>e^k}197uK3Hm0l+2vk>kIBt2 zvZ2>p_L;RLgO(1)(lsq1kRe{RRG551p$qIF&DC;aXvkflmzBZqP>Rf9)n%w0!sDTG z6jUd@$u{dc*Yxe~YFz8^lUQyv!B-%y#$WGfG0Q5YhL)zSyaYt&R*xSrR`lmYjjuh|&2XEt*Sl8`l%Wx1DbIt7I+6Lg7zo^axK zgNcMD)yR!>Nd<$IdYJ=|SH&@1ILT$iKAEOT7rtMam0D%;Ni& z7a>JIh&6;PTp|>5!YZ5!dF`j90!w2!PG&TYg&{V zm0Hz*>v4&X0i2hz4S3x+BG)5j#gS{UH4a?BEMp)pYBR3%1OCV}m!hFnojq=Y`{sr4I2S@Hb*1?O5u`l&MW1mg4) zYCHi<&xYEV@={8-_eHSNe@0qm;(Y(nf&W=WRLh+~Ygz3~TA>G${1XUFuf)z4INky+ z45=Yh9h*t~de23=IG8mq(6PFDfhLh?nUwd0GV?lCkh}gwlzIL% zk~{ub$hT8ZZwsqWGQS}8^j@e@NBsGAbf@Jr*h|UA4K(3eFN-_($uaMR+V+YR%^Ulq z-a4~JKCcx#?&~jub~)oh4O_yh#JfUAFw3F)cbr-FC!CrfX^LQ2C92@9%a}B`J@sbl zr#w!`A)M|DiZ$4rFVlUFl$Ey#&1QJkBGL1Sf;e)TpjaCysM4WDcdO?ed%yKrqiiQ^ zr&&S7Zy*uvJDXYUp{`e_i3C~Z5u`7|tIn>qcDnP%ReP(FxWC>}dlT_ETEc{jG#j~5 zD58D}ba8d;sAlR@C@R;2U2rW9J7{L>f2>{&kG`NGXL&|P>>T2`v|Bhoo-E3EF+gqR z*mb99c?U7JQ{mzG0$qgcwbVMOJ6XjVwq3}c=XFu)MSw1{iRxjsf_K zZtaH3x!azkBWnt+mDaH2vRzMSEO>&tQ`bdrLAb)LJHQjrwytG zpcC7mgTo5aEc-$e-W*}h=mKLL;r@mcXZ9I3gHJg+bJoHtF+#K1meXPx3bdR6IuO={Twjd#x5b9h}~YBC0OR#$gL28Js0ViKv>jk?d4;+n;DI`^mSEo%y{a z%PILjgR9!Q3AcIZ$+EfJ3Zg0Pt77seRA*$4DY{b=k+wd$c`TsRnp@9MT}W$!i5zG> zMVUWxhAox$C4sBwW8!sYTtuCfEV=6^+AL48P4%SfkEt?!OdiULCcVQRshF%h^IW-> zGA}^u*k-m(#YSm2o+f!AJJuVJ^@Qx(@>$7i8!@jleoJD1!Zj_<^ThJrqFLsdr;>MA zJ5+V^pRlamnoNx=#Sper^NMW#Wi?IE>?QMz+6XWSX*XhCV%Y??Ai4GOCdT$t9;kx7 zi1(2nVQK3~JBQKa|3ZBgRMtC4GY<^t?uOPUws-DY1`V}&_;Zv5#M8O&+#8Q^CD*M;d}xqHA-t& zyK1`epjgcm|LjIkBjSYW1j8f6xi$};sm$NA;1)vG_Y#@0p4?&ZRB8&mACnAns#sE! zfyCL2FVv`z|a65W4-Y1AKta2@4D#CHHC+vZu z)~c3Baser}2FubuZpw-iRwpnXZ!LYHS{COv0wPFqdTOTSgnOYoDxG>ohbz4$oq?z+ zLSaERj}LmvUGhVd+#Wl{k)pD`B2|^v;7z|W%i(}ANnC27I3Y;H`0W}kW^Rd4LpI6j zpTA8ebvR{J<26AEDq_(sWmf%Z#b?$Xy2*M1lpgg+ov%-0Sgu}1wF$LzkQ@GHd^3=u zVp{kSYgb;hCYlj4y-RJ~n>{=6aLWLWKyklUx{g_r({fe#l6BUX1!^5mh|L8lb{O~{ z^@k-c67@ff_MeWnG@{hcrIFXm$;ks zodT-l(ZYEeYiOOhH%%Y~3Rbd*ak6w4R4gZV%P_E_jvC=O*`TQ)X{TW}j;hJ3AKbtP zV>*GtcB&;8q%j{e(gLMC+qrzqA6IhR0%3-=n4hvdCVYTY`J#4Ip_ddUteUh++9U=| zp`YL_A>Y>gaIzO=r07!L#V}8;HyT_Q@=At{I`{%cV+T7gV z;krE17P*Cl|8B=v`nNp~Q&FfK^iG zv`XX$F$ABm+)j9eE#;&IGSDjXCUG;lYf??CCevMKULKNKM|A?|RgTEUE^!B)5S<{{ zHJQ}Pjic_4Sjf9BpAeBO@$Sc2>^CUFNG)EY+L9ttABWdKB@blveIYI%X$j1aBX{99{P~WgJtP)2HV2&_B(FumN zDJ5EjIxG{zUdr->;0`(=s@E+`*^}4gmPRZ{5ezGGS`?X2Y)oa>bVt4gX}kuxmrwCT zQ_3OK&*|GYQg(?T$p-xi$(>M-Cj3r$(ek&%ABA7Pw8f8je&Zn!T?YPq?-9%RAMPXG zFyj43V%G#>SldW3f)jEW8609M(V#OV5a(4QcyN*`!it`-+ytz8mMG2kp^LheUklvB z9`1bOQ+2BM;}m7vD_ScRBu<26OQgA4ZUReC;9sxMk=jWgn=;X2;9Z}-4V_NTz>Gl7 z{wzOR<7QwY%);iOZ}Ky7+>mG1S~d`XGe}g^bpOF_o}EZ+*x(3GBlJ^#b-I**k5G@~3S8gHnpvE2qJ3$o=` zphYMB$=DwtN{gz>**aC1r<{J5l>4gun@;iiN z({tozVg`^T?-Fs9&2*u5YZs$2<6eVm(%lK;&cuJ-08Cq;2-K(w{V7y9?x9JZ zk3d`NoH){01ApfDCt@S4#Aje5EfGeO>C^=(I4>Oe*%BdIEGPNHj(-yLa>Bw* zYUc2O=lp%KTKKV5Xz3~~oX#*&wZM1zv?52LreiX9| zm(mO2(3&9KS&Ee1q(AfE-sRN7?dGC-8Fw&K{3X`VP4VM7Oj{xTG_L&P$br=;)D0Dr z?qvhH){iwC?Z}TbTaS4HSuIDNo$o)-l3eeocTf)t-0SFL1I?vg{?-fCUT7_52P%^s zw@00;^u_yx5S>a+P^H^h*@D#EB`*9PPhn|J6_&F@VQH8a&Iu8ud?W#$r$Q5IWjkRn zIk|1)zl+f&z4-^KGp^B~H_LWYd{!{2_o_{Ly{S%4&uCklM5+JFh&u=A&d&(a^b;22 zswo6|6<6FVN7%kfl@2w8s0>nA@Dp-}sTz*AiH&!7CQ3e;H!5X&hS_wp%$@LD)YZhR zP9@XvZs$u|B~-sgxfmT@MIKRN`Gls%IgfceiMc~l1{oziO@uvt7Ql*kmdtZ8PV$6Y`YI+ zX%62Sj1W;a$t~;KQC!t>bWBQ7+N4s=?=~tdb$V3E>Zg18%3O=Lda4s zr74o-!0(nZLeCr{DT$DVsbWakeTej-Qu?^@Q)$%Ks(oOgU&A}l`gr*yQ3LgEG$K%24K=o4c zW5Op?NQ;jt8SX(v*;@`az3pLMo1%UV?k>Ono`6Gq%?t*u9~`K7+B>ji8S%49P^E%bS5<<20nUA z_6ysqZf3*~(_#YT)Er;P(NtQTFky9;@4{3wydI&yt+U$G(a!+XcokIRH|pAtwCFOQ zxht%mBZLxJt?c=h)5^S|O5Qd3$JGuxirs;fUWuD-Sdm0%ekRGQrjNXraTd6$I!j-h z)FgFHAOktgVzqO$MQjo&>?ODL7g0^iv`&}Ubbj{{5EJ?dJSw{h(23*iDLjhPY%XCe zQi2(Nchrm*>IbV1b00#N_lu?HS>cTjNL3HKiFB4&B(0iI!#Yk0thz4q135A*>ZcW) zSJh-tvO?E<$U|VpW_HUEAWhLU9Jy|~-O?iP3M&KThw4ZtgQfzV4w_c2_gplcnhy*i zWR+cV>oBmIUDFdy>7C5`08Fd>oo&|yIw9gjR6dleew3WhRQwct&WZSXLRm5`nm`8q z3B_E>KB4y|x;ih=M#H_A*|5fbci!l;;+xy;bacH8*T1*I-=|?` zXcC+HV=F%4Uwob0j`J`Tg`d@}S5r66cCek6nYTgW0)zy2NL=$`;C;w;h7r;~dwpx! zP4oAVwoc;kjDn|=bs#^#q)x`{vxh zy0558?f!Ivqj!+uLpNRd+Zx=EJMU(zyz(mMQ402gRj8?q?Zc}B=Jdq+(mnzGq2$8fnNDHz4`(F$aSnt+VZh<054Jd>vEC<5~+x0A+ zVFs;F==-04B%nF7(+_{kET2>E@gfwx zpL>}+-2HiZlqq}6Y>$p7{z!NRx;nobkL(kA4*j9I#H}Cknq{7fg>l(DZrW!6! zyv{u%TUC$k920+!@y_06rj*gXs~ue@)FpL(!?GNe%PJMg0mSIqt4!r3md}W?YZ^)P zF6cMJVH%ePGSz@@(U947sWJ$sT!Gjj#)L%e_$?0WO?4$=b&D=Vi8*kc5eU$h` zVN3TQ5tXh~HaS&a9Yxe}77$xM^3<%)MIlMWl8RtE_C3SzRlmH7(aTJUIa0sroDvf7 zC~r*58Sq@9h8=Z6kQzJY!h-KYaB2fPl_AHCYn5sr6QA%k?&3ZE0xF>n;uZdkzYwBI z2sNff%@fITO0Sp}sB5Ns1=c>f6{PNy_!CrIW{FU#tTLZ85kg@{~!9V zaR>dD+nRVopwL?{|}`j{H@n-rr^J-cUQg zcQ~qDC4}sB%OSecOQ>j|XAO>n0@I^gm_ds7R99p*3DxQB@s$&JIR@3wnvMxD;1b7qA*m}YV(yce%H|7{IJKi$8Z5^kph9CiL ze2nrOCA}!(1X7wHp41kM<*QG$D0NYj1-!o_f;6aMJ$Vd02DrSf-ULAkDfycn?4 zGctw8@Fc}xw|b*4=^-;sYNC&IYJ4E%iJ%Fm+-}$d>EpkT(njgeQO8#3>uAsaYX0xP zF#e=OseC~2H1`9WMJi7!%5)F8R34VOT8NJo+YUX$Od`7$;?+Uyf{X=ZMs_Ggn3r9A zsFpktt+U_33!*uYCNigta69#e@n(!53m|Z6K~0M=-*H-`B}G+`Q6lNMO6AuTQ)eNr zRq8kB1pm=960Px&lUc;Q&;(jH#R+7zfC@Ib&FzLYtgEg44Ou0T1?N2CAWd`-&|N>8 z8G8Y^+q9=2kj%E!&`V8WHfXauwyT@R_pdE$Y5$Yywr!65tL-J$shY0gc$Z!OK1wnN7Cj* zi-0YFr?fkH-)(_yPpD?P3RE@c(LW~`HvKR3@<6SLq~Rd60WqSQN&sR>w3vF*BDxNT z=K!vc2Zk(M1QF}83T+{DArh%7Q1z{Xb!e&|d@&ue#wq6T8L)B*Tp^WI8mswnxxV`7 z!ll$Mxo&_qE;rOJ&Nk?4J z-Jf&bdo+Hs=+%5Z)Vc88?xFIgcM3uG9NuVCQYZ5W_ak?t?vV^|U2SvkLl&My?1x?J z+S8AWTzQfn7t=3|wNU(F|EFC?={#LgXUF5YKRrC)6Bpkh)b1~j-gEE6riranuYH`Wd0p06DCE~pVzQmCW_6sq;*CwoH7T-A_jO$!wHO7+4I zIYnGe%2`N9nAH?SCtnAT+|>{sg6Y*1XaSu#etBIS&5eAtWHVp=VZ3@~xrD zsDj#x)CBpsVZrmg6GCko9UoixuCofO%YnKz`O8#WWv0+pu*$DpPxlFTf4=4bmxLzQ zW)AiKOda<=g*IStP0A7HL=I@YF4(UXGlkc|+uw5?H1fuup5LXK$kCG%e?wb3?hN3% zNR3BLGeX$phPo)m^ja0kbZV}qVKst6%fWi-+dLLzTZ$aiE8J8%6nNwzru);959)rd z<#!01QwZcnmI@DKPlPAiM0LVv(3M#OO9P1}S{Zr>m7MmFG1;bAK~AMCZnVcUP>R-R z`}d!T#Oz!W9gX1y6|q^?j$gE<5l*Yen|7@rmb5n3rv5G3xS*=|_gA<6{%RCLRET=} zy|iQ>Xsv13r9#A)>Bc&`+OLMoF|!`Xru_E^^h?-upuk(cKcV^ps%ZonI!#N}nf}D2 z#Z(s1A(d33`l@2Kw7t}$iTfi>U=g4v^U_(mDvljJgG;50?;^Jf1=s9%q;CYvWutMz`^oM=Ad; z_wg4-8Fv)-(UJecBcnH_b+4s77#mb>e1eghs7j)pr9V*z+-`|h22k60?x*Vu8}F=V551!dVOg?Cu34BCCT9X?5uUK<&M_OHkDqG1-ptpywXF)11Mrsd;Yn5#h;iQ|C{xRp+na zLb6-Hh+^0#_XbEUOmAa1znMKFX%ERDZh5lo-)UiJ_@w^bdKK4gx&2vW6R~o+1yLEF zOkl&`8^=qZuMw*I=s?`2vW5jGG$jfl3xZ7J2~eu0(GdpY-`MK@WtjfbMVG8=)}=y) zSbe4r3u=0ufI&H#jM08Zem6Lhd=VnNH=F~ zv1g=k;~o~UB7+qA3r>wO#e<=SP)#+cayyr33I+=IRolwf5Wb!7*k{*3tR0p0&7)ir zb}k`<^%?4t6tS`9K#`$vZOE)0Dr6chsiyogQEmf{1!OA0DitbQQnF|DAgMtl!c=ot zYf7{T@JE?oXK8k;j%pf9eHgdX=yUrH{358p$`(>Hi+=fGWgAUza;~IV2Qo^F6DF+A z@&K4?il^QXE7CG8zS%i%=Eu=_N4q+`bi}XW*)@g*yfrp|9ChY5Y6e~I8Z*8DaazV(p^eApVSJ zWgAT)P*oahqQw;CG=B<=SNRk8U>WfKZ%KhmYK2Z{Oq$#Rp+QL_Y(cb!kc~3P&`$1g zi+XA0$H06~#oAH`q<5D7{WsPc>eqlfs3$ndto7~*+ic4l6(FAS2jn?Vb2|r(k>~F> zX!6_99KVO%zALarc<`ODs@v>KksFxv-8hyQp+cam@O2N2>ybz~mQr;TNRv}Z!Q1pC zZ@2XXkDAhgckv@{H2MrNSJTTnKMUSKp8Dzq?K+b6f8m6tWao&QOSH^`w~C$qAPTvA{;_wTWj-A#=AcD7NL1in%mqH!;Z z6-#f7a@KN3BDPT~L|&o~seID2qdgC^Z8ykg$Ti(UPxSAlR)}Ya+X*+&%n=vY-04ql^W6v!MgL#E&;;bPcgHw0E~cI?(V|=dMZG?X z7?W-a0X=`QvRgo++)K?aRh)KgQ;C{ zUk&)6jow3+pPiseqMCXeo%sYiOOhWE|UkI0j#sp%{0m<~~>k z6ha=lb4d}z@IqtV#sA^JBOxjtRUk#v&=ZVh5ccYHGJ4Q8_PJ)VK5ngrTOp<{HHbjN zw3tFbKJA1HnYIBPRm3hU=GR~oReImz{Tyv-AE^u)$mw$c+G6Td;jMLb!|jq8v9 zaUfEJD9A`Ig~UuC)++TT8!$1^K$P!w;Sx3$aQ*jR#f%#W*;U?V)5KNK3EDl~Rf1@{ zKTm*CPxnG6W1SGpx?vGRrEVcJmQgidL&%~TrlgP>s+pc}LSq7nRD-Va(hhRX6h$(P zU>ciThR!~7$%(V=7HS+n*9L>@7!j+n25H}=@^2r*6bBI}q76bt5|~KGMJh-%rw8s~ zZ{o)GZ(XhJ04uM&P?x6h8YIOi)h0evS9F@-o-~0Rfz-t5%!jkFCOch2+{E$VA}IYIDye14u-C4ETcPdLE{(as_ZT)A#i z?TINQbuGw7twYl;@~#Pu=VfR6L0z3tXO=Fz)bQZ(E-|+dNXU*gl^OXJ_&FEWsH>z` zWNK0)Oi6(I?I4wC3W3T}3vXd67w*!y+~krD5#n-)X;Ib_J@dc+sqgZ(K)b73iC0rh z4&KmmSk%}9-E4YEHr|={#|x|=CtV|%JBqPMg$k)wRc)s9iq_Uc=uBEGR=bb4ZAbY- z`#b6G6HY!Mv&w;E78b+K<*BFbv3Y@|as3|kNKFN*DNtZ^>ZqnLkR|dUn?h6VW#6?m z(V9ar<_;e&81)+@QdJsjqQ&$Ep3l)N$mwSjpUQdUglbVsbWahaef&DWX7^)ivx^zJ zT@E5!7vF2jc6tJEuou{fh1>Cb3USFNj+9Y-S}RePiA?En^{tj=^M?Y+;N)H zi{gS<@dllCEyxjS_^0$!xEp5y0%Up8Y-W%B7cX=>7P0-UPh zeCO$vJB;ZCzD~UQ7ZmiuW#-EKQt;z(e)wi5Ie0vuh3xUqGl+k-d@#lv{T^kj=v0A2ue7dhAS)WG8+|m4gqz-mI6goRuC9}nr)3NRP1H+O6*&z724$hbJ9z687nrF7r zyY}>5VN-ZLapL#r};jT?n9dWudle@Ry{pXPiRb4M^~JsOI%bF zRxsr9Vg00~J;OuR>CvBoS{S$-H`Eg_C~=8WBScL|wTeDr9akVX!Lp0igCDqy!NvK_ zI}57HJ#2ee2xe`fQS}i5K1iTmPhwHmOi|zI4t4WeHa%>umlp(9soLJ8cGMFhCZv-u z7-#nWiI$Uh`G#S(Gj&j)8QaXSp!c$JS=H1KBiAcYj!6H!vL23k>t$5SG-rx!7$2+>uwAq%{bBhxCitH6{Pvecy@3fTgt6SwV3 z)=qk3iYj3_A-u~JZz+1?EeC6XDPP3i3@Pj(RPEVcU>FaKE>DTAi}d ztPTR2J*P#O5;%XI=r`#v@9-WEL-50rG*7Jynm|;xdd@P0V4f7xazez36II1_lkq*X zTWWlIpm{s(#=M_qIf51Roxr%IoC7h|qB1^t6D>`xUV7V1E~VarocpAqUalvks)0d?nS(uGTq8P<((vICqNBdQ8m zmsEs!F(4FWeuI- z26B9p2iwWDP!mp%v6E=3GbzLCk^>K z%pGFBhy42=O=T_l4btl;YL@j=DYZg`-eH~ncwlbT`5Uyc^;#4=kYzP`MQh;r@50jM z8x#h;!pefyk@|$X6?IQ$z8Fd!vT_-}yvp&116{k>nXHa-eIpO})28S`#(fEpN;HK) zRcWmHjM&(}BdVBVW350|kgEbVUBApFJW_;EY6>-l6SiYnKw`gI3QiKrj$$71U=OLO zneyHRMSH1c?VO~pEP7LG+y4De*8U8vM^l;JcKMz3W?PUN`b+!`b(L%@=49%$r_k5+8riP6pRwO7Lx%uzP$1D4Sk*o%BEu2_8OWu@#MSb~t+b~7pP_f{n8GRw7CyQ`shUC)Iom<_ zf!3WuPq@0~))%lJ`Rw@$7Oy}R;K$L@^D7`_e2Ll@AR?(4$%Js`!`IbrsEZ<*ZiTG5 zO$+QVD19g76VF?g4c(qlJCn{#=|ZTi9oh61n&BEYei+R+1IY{}KE^oeQBkk<;u0-l zJA%R?V6Wu2Jk_P9A^Rw@k!u4hm%G%WLWu!V@6T|w262y!KQb&(X`=Fd&@e-=bkQ0* zNHL+W;q09P5tMd7L#PDmB@ueJfMTf+V+;FBNDlt;unE3aC=j12D28Cl8$UHX70<3F zp*F!ns=O|0w5=y>5IiJ$1(sDRRB}<^Crxn!s&Y4#X2U%Pnyih5c;csBTi65=PWT4T ziI`8HNYUGdahiesA!#T?4fV&sv)p5EG>IujeR9-+kZMnmY zP90-rv5#bTAoHmo)61dtv>iE6JADnItKl;Mq8=CM*$N{6ulXqpQ>Rko$|PqZ&dmH0 z)wir|)^hop5$1o}Q^bL&3iLtC#O;)jw9RS@nLrM@0-!BNQu0DB*F!%DXSjzHw4o6lrDXQg5XR zfK+QMyPhB`iH}BfE`rEKEwSj87#;1zt|>xV;NKlQf0X087@IT5lPBu`hV$Y7o~}5) zF?$`X_TZq1$yfa7z(30-uRFXvnde#fHEs9jnP(@^%-$Uyr?#2%3t)R<(@=WQ3~>Uo z;lKZuC4L4Gq^Ph3S+v?O(Uc>c8e>{iU`h(-;$Bc`td-wMWZa;bUQOYTqNOy2Z|&1i zMUTe=Ox=W3tEjDWFGCJ4iEBjZspwJTJG~C~1^(=b(-bseC88 zSUVEVxw%QSxM|({*@KXR%JXZ7VoyaI?;#t=*Bf=o^hKbV->75%xXce@4HPnj3k$!z z3?S4)Pll*9keXv-eIw#MXvF{iE7!kp7ap+(Zs@wr1rM+*$}Sc~&;oLnI3j|S5Djv~ ziPle!**6A7oW{D)YCRGGHNwndd2#3hdbvzBrEF%F5FB_Hwz)1K|2s2LyW5M{xX=P? z`1jxb*y|C2s?EG?L%eZvElAeqS@M3itQEdIIVaUj@m^FmW4XMmb!xqowX?AwG-^8X ziIsO8sCzpVzqb$YaIR}NF1C915=537!|@RsHwB}zU}IyQuo^Z~OCnS)z}eJU zb{-i}ERWPt)mDB%|NF01T!aHo(kI`IOb>gB+HV>E__?Ru-d*x!fSeO8Zo1%t??lb6 zJ1^O@ybWKWUNAg%-nTy|?e}QC+;Gp~r{(qW$oC&wmX--2EMNPCGmjt2EKp~-g*@ST zJB`W;qn)=5zO+4rti<1F7+bUEJ{C41lwSrl>`m}pj+ho_>ny+Egj)voeql1RPnc*C z-g!$!Zn|Q{YH?QySplYGP)|S;JRT2i?o#zS_s3Di-$FR4LdcJXnOzf$9AU&ie9Vqt z1VXwAYT^0{(L=M4IN8@SR03TbFM>&sQ%zLvnU=P1>V80SdhC>jW`i>qCLu= zP}4+kFpQ-Uw|K?@4y0}s*F})%bP(|(QW1?qyFtis;+X=cC{A#^llwXi$pQSwF>15k! zF5^8pnu~c8lIPfbLLTOYnue~07S>OQ*vh~>cD$6FFd5tR;eNe3%(mU1=1bX_ zqSOde5^%MqM9T@*dOfcF%$n0Ljq=4=JU^3y@;)>I2}_iE*-KXJfnk;Eqd4MG`w2X+ zu((G?6I$>svkZv691M94>=tXm3CR{H^9u@F`(6-H^$?LcYHDhF8QPGN*#EF~MOkix zFz~Ewthm%zxB`-B}q@zUL zaKt(1#cOt5^0TA;OG20sV)RcOGqGGkkJ6xfURwI#?7|^76zCd4Fe0xm`Gb8H_Nk<~ zi^xR}_BD;k5i6vh9h`6YJtJip3B0sjvE`7L*&8C@P-Gv^jRctVFeVaMRM3`_ zN()lV$x#Vi2o7n&_|XUV;Tq=`cd4X|d&3+60=AY0?n4^InEm)U87^Hy=R(7+#z!pm zA|nd^LwuqEc$R&^ch%optUOP|zsvh4)=px&0{-RorN9;v1ICP!9-@&3u&U>zOv64W z$D|X(V_6!~x#4{DM|K>k{RF6L^m8_( zXcGVl0Z~%RW*7Bv2s==TD~Dt`sv0u84UYla{i?GkEdywcEPKTapvq!EAC(Z*f zo$yzF-ExI;!c8bNVC+$&@Fqk?VyP0pTBRmMrCds+!6dJC5~u4xKaVV9hQz#+_DqPC zW?qUynX1DYcr|3z&iBv;iT4VGsgsK7eviB=$@x&!Vwta_PQ;@oGtHxBZs9l#;}^4l zq?{LpQ{1)*vQ>qdBxpVki{xz6M^(!*A!5Tdj!TdaY@^^9?P^tgXBkua`j4vE_SxVKJ)ngz1Qrl)UekVYm5^GdXsP-fv4aqEmpNypKm5BAb zn>reDF6ha-aJkH%4z%c?-ZCRTHBvEcA;bzAC#n8FFwp~`l)o0qKcfr&`mKVmu5QY% zjRxcSI7lAYj?c7Srk|0Eo<##vowy5a`@wpk6>;?pC8l@_lhD}D*sF#qzj7OSzjBH< zhg4_mnc5TRCa>gIKB?&|=m64IB^%}eY=UkV{{Bw!mWw)5kK@{2M)Qq`Ph<-er5zHcG$ z0Bb0YW5L_H@-d*G3g-lr7aD*EDuyC$1~FRdn2g}$mHm7Hypq{3$$MPLXrH=~5tOLP z>(+ifcqafrVvFT zcFY(=^uWF}eE~EHTTdBYFf9>e_d%KVv`}7p2vWU;aa;V1H>_t1oZt3k;TOLsy`Q)D zclCJ-sHp4ho%ANrx8t3>C%MG;Ur-}GEeNDTT*td-ni4=<19y~RB&+!%HiT#-BjZ2k z6t(&yc$SGQ5+aAysQ1|^&zW(a7%BursGVX)SdTIE!-DAV?>@Y`TS=BH|IA?x8`aA# zALCm&CF2omF@xbjujDeD{{QOud>tu?%YtcnidVC)d^3RHCt!(nz*Yt>1~7SANfRrL zl3BF!fwAPGu|?X3;Db6eqW1J0UK%!Lt2DS|C*SfqaOBnCmh%COPKiPj^CJ+(rUZio zz-53VFkjx-KAlYC$jj~<5U~mt2%ANF#Ml-V5+lAur3yQ_GvobG*>u)C&c{a%;qc%f z@F%T+iE4hLtP~h0^De&wq1x*O^<;w)Vy04oQ-0eOH`zcK8c~|%1vr|;F}{=UJz0oh zdyA&Sgp}B9|Br!85X0?2BXjwc8GiIrDT=%*(G)K?hQe0k!y_o6`u4jnq4&T!LPk$C zu9MIs(wX+iD@0PmW~%~$)xl4YQVAQm(GY}a1Fj@Oag>A>Ovm~tj~n$A^+N%1hY(sS zTYRI`lMuMurKeP?UdnXO0xeQA>s?k?f$5@oSO!$@uXzUDIA`-oId>=*IO zv8el5Y2t_6?;#3ZsJlG^MTPyV5{DorXdLsIdI26i2>unqgc069vpFX(CpHuPv2vlh z*IP|9E%QHVRB0DhiO1mrw);FYe>H-L*r5}f3()-yKLk1}k=KiGDTd;5X5~U7zk?0Y zadr00%k7_CxE!An(^d64ch(;yTMBYIeS}$_Bne@0_Kt3U!0!slj_Y)l=tGlomHt!M zyv)z1$9li6KJ7hnmF^QsVNJBI=TAF=oX@h&=l8JP#4Cl}J6!Yel)Tmw|rpvKaPNry+fi|*=bj2=K-sVNh57WZOyO2f#g!sXgL@g849|0&4^cqYEeQ@U?NOum~Mb9|jv1#NuG<#0tQ3_H2dPN-7ed~foM?lMN;G6w7cb)2)CtR;PtZv;&lV8yK~|AJ zLDWv5q9{P1H4hRpXEyP~)>=Fzr8E@MCm~2m2s&rz5u8JEd7MM_2>cv2+HX_3$5a%Q zmhefFNlqrZQYSLUYD}GPIUWW)GnR$gIl?KiY$Ou$ZfYP~hMx{aiw^R0I0{lg^rR+g z7fF!*f%Fo(r+1WjAT%TS1au<#%-CtrA+|`1y5;YlZ zmlK3|n8-GRM~V~=v2Al9b2}p=I%9GQ=cscH!|pJvc1Y^Mgio9R@m?j6;-If3z#gLT z{QR%6k3vvQMUj+KLYVC^HTaLMv^AZ6!}up#jV)`fH}xO zxq9-B-3tpW3TAV=^#cp*YT{mGISguMZox>V_4xiB z=)#K7X2u4B>G&rsUl()d!F)D22)=?$e$27#k>W<&hf|Q`+vtOcpXSH-Vf(+ZkXgrA zmYSyZ9q{L;M_Eg$ZdGSEIpj#3>3uzn_l|Vb4r1eldT3$|q1-CrG^78wjZOtee+fI2 zrPpa73O{QnI&l=sEhEVZy~Y!JU?qI3R_YF_|X3f`dXK+MG6< zMM4Z#!5M1u?p2O;oiOq;^C)R2KuF*7(QJQx6|CszW{xoS6D+fATB<=)jc~Ps{%?=M zwy`m}k~X&ZCk~>{CBcq;fY+0$oL-#$_~^lYzjJpGh@~ z$0gQ#G*)d$wf+7rYwK^eT-gwHZ8-{c`BDOch?G3~hkDp0^krTzJyZ$S{-N*Hw*H|W z`ciYOa?qDS&|INl-kFjlmw?1`GsuAGV! z${;xUk z)djEk@FKYC*_t~q&KJ6NgoL1xRA7>Ft`o{W!|fY}rR(qCDa`Nmf7&P56S`X(jM?}f zasNP_?PndR2I~Rq}(?PO;?Q%s5bp(yNU(No>54PoS^$k z*c453V9R=SgIf;^g;?*0ASB8GRQ`gaCt>J6;A~@1$0k8*xbgD)nB~DOQm1=Nxob?s zI>{;lrHZa#*8rg=k|fx;JU9*5@kk3^b}Q{OG1nPmT1culzEEP53$O-C=9U6*Ff&!& zsjP<8wE=AWida9449aYo$RwJ~+x1YQ+T8DU@cRANlu$Gq7gq?_X6pPv6|DEX+l-s) zCIQ@Bfpj7dvK9i8*pUKc0c^B9rzKIi=wNS|gGP!R+t`Zjck>~A2YQ-SBT;fnaPrF{ z^9zcRryg*vCu~GbO$7wdsC*@~>yg?~z#p!vTT85sk~}rlOp4MYvziSkN_$Qb6Iy5WBU5EEOB9Mpsbz*!W}!;S zlv`G6C=TNUYqoWGrms@P=`TQS?);eO&i5XkVA}9u_`}uVu%QeqV{gl%oT>d_H=|}b zaJ(U=X`}@w$h+;ET9~9{P{2k_{o1s41Xi^!xXQ z(skh=@XT_1ReZ@(kR?Rfd*`SICdJhf50z@tG`&h>u&S08jlsnC!@GnXY+3@Gz=Ohs zP>zeMBnnY-wS9)Q-8wemOAK&0x5@$}(VIV;6t{p~Wq3z7mqf?Q%{3o|xVe?*5pK3v zPp%IAOyI%pbO;7_?bUC_B)2aejfjd(d_XkvLIV6J2^5lph9FoqR?&*o3|KX?3}hg@ zMkLSo0;LAkH?ErTPJz_u8d4e-S?-qB1WLh^>!AhG(l;9v4 z4M-vpCO6Y+`UERIsYMt9C7fKq69#ABIk&9wN=3nCykTO#5C`jK!cy0-Qk47W=D{a4 zSdTWIkhXQ^`ikeg(gn#lr|9XqWtpY+l5v~nDP2~SI$S&A0-l!J3tsZ$o3ExaB9HT) ziw=Pwo29&AgV`sFoR_)HDD8+N@$L&F+%)Dc$0M$y+)OC)pek6bj@*c02){IfRr{X0 z71(**-aphs?4i%4^iRKh>!vO}#2!|==TP?^v_|)>Q|nV5p@-WIDv`S`66hky_^A5w zw3wt3>`FIjx-3?9MM7__u-;J~K*toc@8#dp9dR3kBBjYolXOlZxfV^XNXf9@m5FYl78Er{mzP;b5=~c2!FBF{GK9;aixUn z+-QNc9q`PHzUs6|*dnTYRen}^^bvhb<4#Gi-co)kHT!Bm$q&84VzMCx2puI; zhpG`K$L1<+E5+O!eIXF5NQLAZEnvNA)lgg295+|5)gn&NO7&sT!0!%6(Re|C-39f; z6IB~HXd>2}WRBw2LfjPF!*WlQ+et4fn@#(USX~q9gca=W9n%xV{Yu=7-_};(**~R+ z{&!#fgC6cZ>^-!OUtRM8?toIe__G10<83BlJpqHtiB(At>rUv{MBabyllaen^ylaI zZ+iH;I|?bkA#{@gX_RAd&ABRpRr`V|^}V{#+Du@2M+|}~=oo=!Cb+l?pZ|j|sz}iozzQ2RDD`zjs5TRrE=X8(f(w6pBf}32X#cJ|PT(VdP~{ z)y=M2rin(IL6)hMw4@xXtB>+JJA7JQ)|-SzCJ8$Cg~;?y8!1&46EvfvleG8N_{O_k;12g*)$feHlh-o%b5L(s=yt| zRTGK0>YVIRyqoF*c6Q~zT*@2$fofmW~pB+81T#3ofVULq-kK+B+zc|~cM zGKU=|JOLhDJI?oMq|C-aRs3ip%#?HaldJG9fg~bT)goj53g6pZR`3vIOzkhF|05~M z=vOZRVs@&o6)ae&d2tC@1XtCK0tsaMs;UH%80ZU8IlU7~w8*hh82asx9>K*`I$Y%p z%8gzrtBWGC@-{>NxtoM*7P%AGtmz1os+yT7InIQEv2Gu(fhXG#r$iMf)Z6PS#$!8y z-Z9{GmpDc>_uStz-jCHtd_^1sMh8;hv+Pc3uBsi+eKlng)|D32GogL|_}|N%a$bZR zRN`VVwzYN?N(OLcgMP=Wz1{3&`J=cJ@tSw=n=G{WXk~?K+0fJo~u^h0oMnYwkfIbNHvc?h*f_%P+uNngry%C{)@bv7?7 zZpV$=PY?EtUTnG>FF<<22cxCwdzwe6{imEg@%)b>@IMyriT=HS|7{|F%VCuMed+$b zDg4vwKmYylGUQ*@r@t(VwG8~UQ}w?sp1*fDoIDe$Bd0y%61Bf1=9wIq3yL{uu$Xz; zFs%z*w>l!LJAdQl(_$n_%-hY~69wLR+mxHj^`3M^`lsB-RL{v-v%gPUUy)a&>gl=p z``=Uer(E%*w`iXoyB*Eg|DM@DXKpRgnGO^tfpUm6Qi$8Ez3YrJJGsoJ?M$u-(RY1zBPR^DdgBg{xVYE` z=2-I4ptHzn@oKsF1sZNQPZlBvZYMzKNOZI;FP59X*=f3t+~j2Q>aBBHhj#>v<_$%k z!MF>wD3?<|->Q-9Vb}0#;^v|XC7`7g7JtT?UUoSmedkDG5*n?1C zX+keS{{#u7aT7r?iOUI4@*myJ1JyVYhY3+W%v|e(uXoJ$!!%0c51060!%Az#Y~nea zdXKw8BT7QAs0#)OK}8ng_wNA~d(-%UYZcfuHW8L7MDY7}EQ+G>B4aP605&gA6~c$X zhx2a{B@iVq)C+$8FlX5j&!UCs%=at&1?)y<=cdo1sqxEoH&}wRv_A)*HqkPQf zFy^gern!5gotSwnXwK0W^e*=Y*i7VQkZ1MEI>1~)tADX=G7V)a<>+&FGs^M?KCuan zRq^*9lr4?rT%3aGhpUN*2R27<6fir?);1Z>EQ8L*|0A`_)eU%LtO=DTG8~&9bKNw! zDZr}SiARIEJ31t^Z5zGLg6 z4>26Tf=S};GhHR*XNetB%~ETFiq~QZ&2~yz0#lQB=Edv_O#v|&jJ-jNZ0}%;dqA^#dMnsq!m56N zRF_SxLkMc-|NYNrE{FLVeNN>I?}xylj2vfd_S*sOJ`#D+`Gn_?kX zN=^w*{*sPc`EuQDv>0Z#I&ak{1#*35)D|C_M>4sjW9~!vpR?7{0S0k7!BhHGyJ4?T zP1^$}mWbNUDcNLnxB9olSx0+iGc!77QSYy04VO1DCGM*E4To4a;g%n=})!!2>5$ zp`3{7LY+gFSVZ(h?0T_6GeOkLag4d3V>m6rO?y?7{sWzu-_JXFvJO@j>u`Hu{gS3Alnlf8t#eNht zLW3rcm&ql6;Jl7aX}eJ|r)*^2Ipd@Aj+EaX7#X_*@b}C|Eqf3<+mCV^$l6nIT@cwh z^%`zu_*dg{0!~^{RyWeUOf@GPvEqZM)Rm|-@SJKHIySZ?*Sw+B)8u`^3Nwi~Ot|M1 z&IOZqqK!|LPEVan#LdkT^;&3ln5^&gJySAvHz_{Yxg0VAi`xdL>1BRPy@B(BDBfC$ zGSz|-kQy1s0mK!jVX$yHwyyV>x;%nL+DvPMQe0dEoE&`naT9|uxIb1lEZL^>-}sR< z5(kBa_-%91hbMv?u`00CK`>lwiXEvMa5w=x;|)f7!Bt#yiP^oXLak*)QvM8Y^P=aZv)~2#03%{1PFIwI)ya~+&ObH_?0bcIL8FBP-Ia!1Zb=J9i6tP6|H zKp#?vP=^C*WhfhEl=aVlmO1@WKK#d%@D8*^rs@Zn(xSm+)7a05oH=ZgMpz^Pk4-xv_|_1E=XPfP{3lNTxUdm22ke0( zFEo$l(N1Eyagr#6Y?NWt(~OPzs5~>`B=jB_4PS z=5(eK`vX)Xib>rcA*@c_&|1383NFXfr{*3prp{lp#PahWRsZ}aG0HBX-hfpoY6y>- zRz5wNvEke4IS{wAGv`*rEl?jN;*nhFIymDZ>a1FaNiwJdo*}GlsPz+SPgC|gCv;Vh zIxVnX_RiYMt))WO%{75c9?eSfky_CPSy6o^LlnGGjZ5njf+n$4P@A+|Z>h1Dk`-&9 zXy}X3pdb}WLr^qC>l50BcY`LeA2bTfmu1LfS6ki>!08sEymAkk%o4G=TmyxWUEAh# z^`j8ndCMF4Zv3znGSk+(OZdQ!3thI|&dCn4*Y((~QBtk|VA=waP<QtMgA>;w}mal1RGOtFgXf04znPDJ@D_5vCjny2usLFH>mFCR9KUO#FK^jM>&LKLP zJ73s{V>x^&AXun>P_) z=Ojpa13{>!#(-NXt0HQI6A4-v?=@@T3L0RO*~<3>2?mwJ!O0sz;3IQ*2T5a4*%KI$ zC2SgQs7`cj+t7NK$tvAA$Tx4KtMN-t3iA(6umz4kGBon~?T<4_XTqo7^MeF#XL3Ii zlw#oXQ{p24KnvsSa{e zy%b>}^8`tJaPmkC806bKR*jhx9V3!?EtM-ZD`fP4HgjlQAiYSTBZ;@6Te-4#navic z#Zq@>)Pz;+4b@^hf!Yr6Yzohpv18@%@f|b??@GzNYoADNdk01A`T(ac z-kR6>>Qc}zG)?}%gjF~#7BPT~xX}Cj4`*`cgmF2OHJ|BrCUhp{cBZ?eT%yJ^?d-fc zd7kOH2Y=50awhdmPWe+VbOs(!QLm!PzyHE|Cj4qexdE*uFx4mDPYCCKbLu}%!M`Yt zAftqb;~RtDK)r?PhWzeCt~!HrN8+f@&mG&z+nKccQK4|u0Us>P+&YBcwC&#-ba9UU z<@8eBKy@ z=yA*>S67H24KPS|g(6*{yLf;sD8R zh0|Wk0+2Id<~bwXUC4ZocjeM=R1G)q`=f~#GrW}}$h^|p5Q%)?PI35D|Eppbu{QRdg`QzhM$SItWg^bwqhH%voO@kDg#%>VV}y{~Z)rE}W(ZQVl0Q!oADe0isq`HSxrjT5}3#%Xs+c{8!z?xP@rY zl6iJXVX}1_l+BJ!mh(YfU6!Bjr7PD$WOLw~j(QbMRZR`b5qs&z{wCKv{)uMRW8aZ4 zqFq#fK@A(m$yqZNv<;{cD$^3E3rkmaq1y86nC}+>QEB7R6{?xA zH@?=!haj0%Q(4n%!XGw~4^n?I=1uEQl4qIlCGGlncCVuySdLsEimc)BNb+9V>pz{Z zQVUFOyVEEHzB+3|`G;@?45R-rU42!?dsf{*LzO~XkiErv>sQW!7Q^(i5?oW_IOfz# z(IQe!DSUp{PN>dJ5$l*Cw|7=Vj!y2@htjpv_5W(xRQ@nSb;jznj$);7C!wM~NxFFNzAS55S-c5_2j088_%pN`!q=8}I2t z=iHs3Y@tD*io=PuqGFaC$*r8po(pu1YOv!3|9HN4=$dGW1K>o4Ahip2jz`KCrIb8o zodqwIsxol}9s}PXmpr%6AF7F}SM6(X1O7$vWRslm6N%AWV7@ok{aj&Du($ki_N3}HD- znp*Ims)^Lj(p8kagN#eHsa*MIKlyo66S0D#6DA~QpEm0O%v9@6=LVIM=0Fj6#0j6U zxpQMvr9?EXEQP3JA-MFfh@ZPG#(jW&;vPbd6Pk^>_6gOlA%YYUK|qZr(<%$$s>0L? znle-K{lcYhcfQklbmhGQK5OY4XO`F^22-?^?IC0-=BmO~RIKIrc#ifF=o7vRmZ(^z zM`o2DfOkNc^gYlOT+XYg{q!iNZAUi0WcCeVT*l`ftvkWdXU?PQFxEhFFmzEN!ndl6 zF^hU6HeBd*HvYTsaxu_)_?%TtaZ9#Sk~? zUDafiK7qeAhHF>AtjilTw7e*c8r?zl=@Tsz`g8@+u!7p)LUCr$th_rl_u55R z*3&xk{MPMa#ESx5v<<8iJm9bi9lV!}GfUOVSKoi%Q+bpyz6*st=dp73YQT~@d%~ICV1?VFG_f&0M zaJZ%8*m8xsW|XmJ-uFc`V^`qz-o|BRl2z-@Nbw>-7bz>^x?NPC)V_meIpyh{wM#r^ z^}b}LN1xT}OL}2>*T;o)n`9DB2gQrPtUy;4za(aDTf?RQaOaFZM1^mOjuko_l?Tr2HZFw>kJez~eNMB0c+|wSM6(lrq6_&5Q{A{wbo42>$A&nIOWrbs zoKLIIof~lQ1G(8)kdGAq(*ez1O^;c&W8X7+!fc*xI&JoDma@cz>a)XQ#K$!k`-JYN zS9WZU*VC8V+?SEG^>fqr9{2QFkvT;_)W!6hEh^X=tcn>j3?IOp;Ozz@*XdLz$Svqph#%7DtVgZkE?gWY?ChFLG*M;7hs<#^FjDeK0ymooQt%k``K-?rzt zzHw)at?_MLi+PJT_olPj|FGNa+i=3}{MWD7e-Gal=wcr9<)*v4KG}i3th8SYABo=0j<8+y6W0|V-T%2|V>-`PDV28v(ABQn#p%NH`RQ1q zfm}PfB12G|5X=d?#bI=#%CYExVk&6Ny_CxJdKZCN$!)zE)vM#K#(ybQp$6Y8$tn$t zzu-8eSNzU$%(RB!Gpt_M=Hi;=6Q-$h;7DV;y1-CAV39jMD}b8BdfF4h*-NKoY-Jao zOEE1@aFhjbX;W;Rk~@4D)1q&X)D4;X_~v|s-t-#>Yot-Vv~ZIlp<4#l3qwVzAjOIl z_2%7LG547@!z*c`7%>D=@)^g3>a5+_PtzQEqO=%S!v$O#7sZ=Lj9N(Xd3>zc8n$S( zcO_7C0;AM_8ZJP+3b5im#Axkimhy12BCcc^&C!?i%ye>~{SXc_dE9oYu!c=rhiz3i`#>9^Vh52;?->#+9b8CDlh^)}# zK?IqzMWek#F@ZO*$)j~AU+nqT%Ilw$3(Ywd@1ZjG!5x`*HIt>(3qu57|4W9{^v ztj<@n-XV+wj4PPT12Sl4xzJGus7zXoGBakut6+L8wcIWUe|WBrP)@HOX_P4hqe4zi z@CTM?Bo70ep`uW9!h}^=-dL70&rti=S^4qIIG!EEUEMq4 z&!lfRUzAylT-jD?$Gq#6cB2t!EYr)PXzctioUDn5?uTUwKvy{zG?<8N&>qxB+ zz@V{IYu3sA%5<$qiUXv}pq6NHOIwYi{)gqoE?(P0M@>Nf@3|?)|C&t!ALgQJdAy23lyn1nI<7|HYww$F3w05{#IzWg^#geTTZNNt)yGYuS}*>iFBI*G zi^zThs^|8VO5p>P=~A{K_XWAM4iQ}WJ|=ak*%`g-BVIL%Y-tx2BKUkM_yc`fTJBHu z;4601YuPUOpG2pGYPlBY67KldsNI(`qP9|e;=P7DKXg;E4p9+uYA$(c4KPS=SzOt1 z*sQl-I=S|vbA@eAXUxJ2E_#Cmm;P}VtBIt@qo=b-oEDt!gqV0Kh`k2l>L|!Oj@B)v zMaW+RFVxO9r_>n326}q4CGH2;*Uc47_FJeXjvSrRGBak;SR_vSkv1*bKZyFNKW%&H z&xBRv59G%QJ@5`LSW^*b-OZ-Uqd$*sWKcmu39&1^96$s4y%tr{Ev`2WXEzrl=h8cb z3w~gWvq-dD6-ae%9d#(}(aza&YFG!jM{zK)c0(y)s0$K9AORpMtSiW|PS^(X0y+Bx zeE^&^w@iTAjJv`*vP*hY{Ne!h1hJ$qRmbRlqGfPr0%#K#*gND(U-51E z?}~Wk=YJY0ivA^s2kI6vFwru&GcCct*9AF(1lbcH^Gdltk>e~zu^Qf>fo>P1ZpfDs zE~JnPkPcUHHKo`5tEYXOecO8u^ksd}FOI)1e6`1?xaA)*yEen~YC1YWF@uz9bd+^< zzV=yY8C?iau#TslL9=Q+P+UAJn%mP0;A+~s^0RO!bM0=^I>IyTLPw4Yy^TFS(b}El zGh2!WTPr9IfD;+g1>;~|WM?nc1rj!;3`D00V}3K%t~M0Q22$F0WE0#xLq!hJDbX@S z>jNgwmNO%QjNC*V(2YpFvVx3wqo~-;K76URKpiA?zud8DiaTovn;)fc2!cVF}x1Ll58#|%lZyw%)js`SWqXz zz)|){TO0%$Xa!nA9h`%MmgSvlW-08VeW1oBt)N|8?_0k;n<<5TzjC|?xRRy^rEJ6M zPEbtyKCRLoC}KhyOoO@N%F+FEHbd3oqKDwrjaCDK5;s?yx!r0ZGjepozz#~y)E1pU zgEyaTSwV&rorYWe3?+TfYN;MpKaS`iv(A@{c?@?myHXj`aUGl?Edyd$+`eMOBvNxx zCv>~@2|<&1hCEa^@=5|%K4(8Fh@*S2@w}sonP?ecUJjcb19VKn39S&kRjxFAa0EGzc>=4#__UcGu8>);74e1AtQ*ITu^~HnoWIs^W3)(`p$U-Q;aMD%aBt?~S?~dL`smo2HV6DlQSF8c>`xHa=Sl5r$*iYVW4kk&|4; znQ;*`sV@<)3X{||as|5T_9c0=Z@2s!{p#6yaJFg)-`?3l;+M4sY9KfLV(Ht|t{1*7 ze3zSFMgPt!5&7zUHB9&(NXo5w{HXu#;=6PWcYIk~dE&hl%vt_4>}vNA)3JTIZ`4@B z^6jQ}S&Q+Gt6O_$JxsbApCXDV{)^{!f*mY=gvFv9&Yj^xpCYKC_m|F1`sw?&v^E`Y70 z+613quXN6;g?$fxwDOGa4?j|u=GE0?E`_UFRqlsY#aezXNK^5)SFD!;{<6ueeTsKM z9oa7V#4gq+H7ox{%4t!Q=Ns`N;L5A8XN_-zKghh!Ef~Kfd_L}dO?pdFyl;)!_?{?p zC%C3+ph*DZ(Sbg#nIyL+vG>|$-MSU=HYTP^2dNl$Ro@zFa21GgDSJ1;Pt)xCa$RA% z)NahJu}o~~~=fS;Boum3S`=s;c8S2ZGh8L!ME7NtpJWi#a~K%G+|rwrW3}$&b)E;Oxjm z!XMATp6w{kHqRfjwVUvYIsk)sO+>vE znklVCjC?uEqu$v^f2v@Xvo**$@RTSRjZstNr5~d zVqjOwAR&!wAuW~5VzIF!$A2cN9&)sk<5j~A|3Q6wjg2?3Fno@>ff%`mbb(c@)+N2= zvI@!PIzpK&#^F>h>D(>?rerWgXV9$Ha*R1vi#K2$oKTN#sH1{REWs~K)v0`r`-E)H zvpgJ+ZoI)it?`2?e90KL;lSwQt9;b5hlydOmdeA}n3VpzKUjwBN=H+g#-bF1yHyly z>4vi-+gY7UDEck+$$RD&1Q)Me%nzHwKSCg-^b+$YPSy|_!+3zcpFfN<`Qv`75V3(G z;|dNrEfRC!*w6Hax`2$f^in=5D1teMA0Q#%A&_2g^9s@c_Zl{xysQl*R2PjE*>aDM zMJ-i9%LU`$)+Yo_!a7)U=RD>>sd9kn^HD=q#IP{t^YtGKdz1vdALf&MAny zyV{YX>ZVa#-q7m2OO`5Mm%8RyKxNZ{nNwlDVsVOQ+ts40Zdl<&(FK2$^O#dbiV>6W zsXQVYkpMK9tP&qN>^popmk=h3P)2kgi?jBwXlkuo*K0C|?s?mpWrCj@MN{>dCTh9( zRMKYGgx1}g{9qD4&=tpa^X>giV=nUob4i8CYeE^CD<>!;2=dix#l0f*q~5uTPF-Dn zMkb=J{?3|>X`YGyB&KV}`L*?gYMCJiGDi&;p{933n z-o|p|6aM-4sdYhKL!%m@j1Dq<53FHgUrT9A;s|3}K+1RzwB@jah43o`whbZ7l`B!1 zAD22pnP0qAM2?0VNKvj#<4}8_5W?JuLJ>=Jf?oxp+^a;-U&3@v5NmRjTD=-|PK^VO<0pAK7rvskd&Tly%}7jeS1jQ0o^9CTcen z*AT{K^||;b>EYMJaa84=vQb$;j(q-7SrJE;p9JMC5@%YRyTWi%>qb9P0Yy~>PIX{j z4Ed5)xuQFl^K95vjZJ-?Lk8AuU~3>{tlbF{R%c#!RdtjvzMZX8J!hH3_4uj%2oX6d zV;R&3jFJhY#0MG0Ww;+;?=!8ws#}ydluXG3M^oIwVsqUG)Z@O2$e;nys5T}%G(12~ z5yrZje0N-j*iJdnraW3yOn7L_QQ@sw{1#3ZEQ>`RuZnrMa<+x#jAg`AraPyUU~z|a zeLPE$8U2N(T-fvz-V4XVP1r6{XEt@?y7PI_kS`qt)3!}$6H?%N-)>^pGG&_}LXf8t zYF$C27B0I)n~mO`MTkmvJo5AF`U#svU_Bv+z}3Xg70M|N0!6_HGN=LzI0BD25gB%Y zB|>2V4XRE}QQln&A*<%;t)Fy9&?MRo&w@wC?0G){vn#!Po6`kWo3c+pPEp-AXn=cl zLePYhpJ*A}mCVyYuN@;?)btvHCvcvo=@7(j(K2n-O4+*rXDLJ`eecDvLUBD?7^?8r zcP>KRF1a>}RJ)q=CB5JO$@YO9-21NutxH*V&TgR0X&|FS%Y+xd`9;;2rKdNy+4Nb- zB*)}=1O8nu7Y)=}K?1dLvkfM1bvt}vEv zB}{dJO`Qa(JhO3F9OKLwLKl7yO+y0>s!p){ZV?QqalnzfB1oZ`#}qo*kke{@}qTY|Lgu$c_(SJ>y?97+gprX zd>vTo+wrO0+mZ5r^G7>Q&zR>?(3|158xg1r)qW6nP%p9t>LBIQca%H5IvIPYJ-wuO z4U&cy!KAHGjY)tSvhj{8pci2Fik|_0_a<70Fq*_w3fdhSA0lR~6Sl#&MCmoA>l$q8 zg59D!Je{DO-%WRg3Vnq~bY@>#X&WV44CPW$mGrOfvJ0%^pw>9K%k`pRqD2`SYJ`e} z4l;gGqGiZZ>Y#2^ZKG({XrLk1brw@j!J|9#iCEXJqAs~Y%nIfa5AfmdSU&=9W4Xt~LTuK~SetGZ8i)zz6H%2Ett~_)6Bz?G< znVSh818tTV#yj*0-IoDbU0eS=qWxRT1&e}gKdU`8v~P-ZKxq-BJQ&KhS%E!u+j3Gr zfPrq;nIep39)@k=?|#hO-)>`Wmyb6$8?tf4Nc+}EQV~9A>_jay98>VWd&ViqD6IT8w~B0 z>se`LA&X7G3VIo?$1ngf)(|b4g9}ACH$}v*w60dR;D$Ve`BEw66a{Iqcnhl|Po>I9 zk1!&8he4vn(aI-eiLW2X5zJOFhs|PyP{IO=!Uf6aQxGGJ+)K15R*=zj^c5>FAgAbV zb!vv+FF5R8&GxRLb3AM-`ePXxHynyBD#>YIxNab)XgK9}24GQGHLM^bE-mQI%+=`@ zAuyIwe>aX7zoU-dsI}{MY|eAr-){?~=B{LI_eJDvwmH&uxiQEo4p)}MP|K9Of})^J z_#-SDRHJL?Fp!%r6XX;b`F79%P9%tE%&zdf_y`>(&g&1Y8ueX5pjQ3}XfRoNE22Q~#Zy6yhQRI4;(3HsMR#;TVkvz&>cdk60Kk%3d9JK^mf#RsT~yCTBw!UrD3~dEFq9Y zfbwcZ=*qtrZwX<%W zTO%`=K@1<;OlVw`=g8Fe9PZdas>J=Ag@69r2O^$86_OP;0%PkuetbUF`}_}rVLQ{? znSdm19IB);^0{)hXwVvR7uIokOytl;#)d0{W|e3$`A)4}WmnF?!!W%bQcL8zJHJ7* z@I~UzuN;S6mO(WN+Wz?VAxB*J0@h=h)R7~qeVSKNh>jsdBkx*o(rIKb3Rt@n3~99q zt-YUfyNI(A%bmq110Dn4Zp&sg_6!{o&(yIB0W@H=ADPFSxT^2mw0vvKMtAWE^Q`@C zcsEArL{aINdoIb&MsFRs#i$!S3}|tZjffi5CWs(W6FPHn=V z4^7L*tsGs-3+gTt>419|kNYgq#c;C+(%T?6FAMx_e$Dlb z)={s8=k5^PrBb&qIp<4t>3?ifZ+$+Se*AUAZ~MO8>k8U?+p{EGoLUy`vVXSfw|Crf z(vz~ge(b(lZ8EsW`inlUo6ryUZXKy}J6E^7?|gSksiWC|+aLH2{ze8(LQA@8y})Pt z?T%?n*$34K<0D#$v{=Lda%zgN2B$pXwCylH)?}ANDKK$3WAL#pUZu@fdpmO>R{*B#*qFpuT#ktrQ`-PI-OzR$r_kN`MB;8! z1h#HCcG(@Z4K7IIf=GM&Ob}TSK?BG9YkIja0}hJdu2PTBP(FCJ%S4OoKCpm5uKI-D zwW53Syr$*wsv=$#;v|yfxtwQio4}=KyZ$QCUH$yep%9u<4uK|&7-Dg< z%N#ds^SI@FefsRK{qo%LlFjYtp8c;hErF_PpcnYUA^pJnzrz>vCGX~cc;qFuEC%Sq=*aB&+ zGimNp!-K2dS*;m&Xw0cZf8G;6FY9Cz zd^=67N1>>=gf8$rQai836D@4$ZIE-R!a0P+XwOQ&H;X1QOOd zE)})hGB*A;#o@McIlZ(rw|5DlMv=XM!Uhpb`!F)ahs>Kf83D(QS$lh3`K$^F?i*dW0mHBc3v<)PG4KSECsdHxVK#`H+{0diT! zat(acWYpO;PWeM4ClRd|WDqL}51!isP7?)-Tpu=x&LvWlG~=feUPV4~<>Yy!A0WmT zIIJLx(VT9vTV|qV!p77kg#^jYoFFxgKh(BRZlwqMNkrX>z z@43hq!jeKOl?V^1Ud7YK4wtlX2L4o&`;8k zEZW`rEY9CyNQBxh_8V2(*O+~)>1BLJ&POf{!+2s#_mFuEW%c;vP=~}IZm@F?3oZuM zFZngW8mOD0qtls`3IP|TOM7>-62+tSn&8Hdupv)tm&*?rZ=j|5)cmN)MTy59)Ik?( z{ZAud7)RcXTPd|)giqLCFnpuRD!QhGo|fs0((lL}mdpi#V@<0AKc)Z;-GR)D@{0pJ ziyCevL+JiYBovdi%b*{?Fkj8-T^8h_TTv>%6nG?p<}NjahhWagP8rS(ttFdc3pL$} zGCHdIdp;5-RNDeqz!-OhS2C;Q0Zr%)>P}+b%Ta}5A&$rzA_iE_1W~C`u|40yvITpLcZkC*>g`^WJwc2pnNC@H3Eds9)s!%Sa3B6IDMQW4Spr#>0 zfM=@^ojkWG*~k1q-SjpJD{|l{nLqz7qskYHoY5^dh87d5?5k{SJmg+`rV5r=cwWRw zM7|wu!WT?%3A+FmJTe#{6%*P&C`C7Q=_%b)&bo+{Qx_m?XhQ9${0@`?t2REZrQ+mZ z_vZ2|Y&fx0nR-Xn5RVGR9a$rB(fSY_)2Ko^D!|BR`_gne}F>v%8QUeQ{qmlA71Mit}i2H>8CBHn|Ivk@?3 z3vo-7npIeO#tq|m;Fk4iKbtvR3hAS9H>Pvsu(KmM$+^o^uSjz?R~;5qH$GtjHPwX% za8>y%V9I;F{x%wS*G+ea_z}g*>)j$j4s?E@$FqrvX+;y zbg=F!-rPn+9A0(7AJD~mqc$-8(CY7<8`@O{^kA_u6i!>(bWgQ3P{=~*o+2isnMd`4 zTNTULlic=OfA=cd)o8+7V6$@)Bz=`5gYjOf0ICH3*)GhfN$3d!#99xDwP@ga7)(Mh z!e(jN8OJu^y{u@HmS3ss8qNpXfvb%{Q^p5#F?~*CP70gin_~w_~N# zdh2oihsT5K+;Uh>`SWjb|ABfU(&M2-lsK2CNc5wJeA4;dJ>076eV7{sR*N@VGCg>tpMU>@ z!*cxm2WpI~q*y{{I@m4*RDp!roNV3qz$rM@4apO)M}L*oov#X4&$vF5cHf^&Pp0+8;ZDc47c*XP zYKGh?l!-n7MsHLd({MOiE$6BaQ7Af(Vs}V*c8Mv9@!;YL_E64rV_HBOYkE1Un+Q$e zk&q+vD(M@Wbrkpe6nep-Y55M{<@aa19SB_ibz>jpCz{rjD zmDWUYLe!DdHNHbcWnMrUYhy^Ulq5tNpwPNJ!4}mu+;ENsgsKvx&>`?6p*rc3uaeps zTGR^`o4^W-B+wRo(o1qFqza*9<2XJ^KgjUK=Qvlqt|s4lh0H&1i)n%33(c_I(C`>) zK|jB!Q}f~#EE=G?c8lsf47ObZIF_X07Ag!2eqd7(F@TgNuv}hk#m=!e4bZ52p)+S3 zY16=?hh~trvv)-nj0HhcO{*(if$TS5LzW&K>{5d z=_RpAx*yb;dZBb|6G|gb*XNs|`>eOJu5!#fD@(TXznsab2pgxz7NiF!QJOTZXCx-M6_@fF@;bPbJhQX~&G>I#n@#R#DGbX` zziNz}sq09y-l);)3*CA=Lv5hRc~7d;ZRR9Xa(~i76LyIS)#5D&T8A4aBF3z7?;P4D zzqj)9@A;czv)5!1O{jsS)Q^M#{l)w^lLf>f(V|hEL|sGU*jizK15x8@ix^OvTiCP4{kEE+JfPA$#G*pgP@ul8D_L3SFRSXqIzcN({1Z++|rz zVSrT6o3JbRS+=3?$b(lW4BSA|vOvzWJp?Z-l|FUSODe2Q=n2q=-#>UWOtD1 zd*%a;$cR-TwH>vojn+{oyakFE*-{(YTl%?k{%*ao;gr#o`xBsX+yUDQ~efFA*t4pA7fvY zyO&=a7wJpTYuQgJ>Zs_?5a_DxdVco&^W2+G7n1Q#^i$@qCdJuG5uisthQD#L{ro#o zyQCnC5k`Jfq=q(K6FF7#iLoDA&|Y?%MH6LnaIx7ZcMXtuzU#tBoJ2{X>Lpo(uGBc? zdGNLoD5-&ok27V7ut*GR7b8m=9<2wm%$#TuXd0lgSFBb@UwvRvy9SWL3r*>r6C}Io zQi$TZ3m$kCB*sz@Pue-*w#7Eb^9f34*r8#QtB03qviLzoj;boZC2NXH8#TcMjSI() z%<;$}RVNr$e*fN7PneL~CHL8B&V`f{suO7DTd}ic<>ZcxL=$Qzj%Jb9PWT5HxPi98 zf*$fvek0Bfx5f}I&0cC^+2&8{K|{!)ZiCkvMv41TsR#hyKp?+Dg8a<9(>_y6dNswZ z5JCMkVpaJ0x7ECyi%>-$&_Oe|o?cmuV+n&G`>v%GByd!YsV5A03~GbkFf3&B<{N(( zdKQX<)A(tXKWeazP-RdTt z_0~|$7Q@ESK^l8a%I|T(dBh5i8FXim7NLe!i}6PIAZLkH1L6t%o7&I++nLS7}Io+Mst2CC#!lt6L4}z1oa8^`dgfYHULIHjP}$+FI5#c zbgtTs@PG5#bU{-Q(>>mQ8vG31up=t2fyC9tc!Zlo9rDq*>O51E(19$u>nG&19@%!K zpMRH+$b>D8cta1;iI6#U0EFa3V`eiN;7^+?@9p{%aRE~K(uwxKzkkCHG6q8f^#S3A z?4l=JM4MDich3Z>{dV1nnAKNicTqiOd|=|e#j)MPwugmq@t$Fy^%^Lq$ZO~>w+T!5 z;hViR4X|i_!T{~$MfFi3B-_Mst!3M0W8;r^-6npc>PyL2GkY=KP|n@3f+ieA(jp|~ z^fc($CO$6W2SmLz?xC(uAmN^t0dT5}M{6Ktti1*{-tzH|AbwIvDz~IHE9%iirJv2r;7jZc)YXtz)m6-oan#Zgtlij= zvSLjw-HVF0ry7D~aR($ikxO5&uJK5{BCTHX@_K+fN4yltVfohcBz`4$k=YB#y`iZZ zg0Xf*aaC=SpeX7GXuyK(Zu`hnZ!_%fob@V~$HFV}fSY`(i#AlmK+uG7aH3^!6YAi& z1r4Dqq&fgXIO>4;rq{eC#J3=VrN$I8SkQgMUPv+RaB2e+kX`VVxTzU!3Jahcunv&} zMHN=EqYf}jYHV1PnmVtq38X$V=&G{qqHa;?VRo8#KIP_r_nz2-J9W-ax&mzr7WJ)a zmhTYyfQ&YCo62y#@Kss!p>GT7-G5T(7*LI@4|bOo;l@b*;c}f|D&vjw3s0zKaqDsu(hABH-^oQ}pZ@#Q`0aVg%ji00)^c=TGzXt- z-tMi`fj#Uq?;w}8Y%Y0ZD-$*h-bLGv=}yVTm)xy{|6=)WKG?hY01rB^h5quxTu z7nwn`h8_sr%BAcsz1fIaMI05!jEy-SciY!o(4_icnh`V!IrDs3yj%4T zclqhBzi5F9n%O_U4*(5J#knc1eSq~8?^1`nb)%j4@xBlx^wV`OAM(V@jF=w! zmR9HqZkHn8lo_B2zdlH-TfQ~iu*w%#)BK*^%Z6DAj^0AU9Y4&wS6aIm-gW$B#=f>3J(UXx61&jhtTJ z@|s_?w&L4q7i;xG?pzCPA;``6o?eq}H*M~ejR)RxW9Q%VZ1{oFy`#IDOOLiQZuGEE z(jR)c<+mzs)#UQOLN+rf5P=<|RC;sOZ}5`sHk46+Ar=Vy}6@%q-XllJeBW^ioY2zX?7 ze0Y#v->awA-TT3#MgQaDXTQsyyszIJJ|T8VE}usp9L?>RU`e``dv3qEc7$|I=a*$Z z_iEYBM`Z4&d+IFnvq*7rBzY4q~;2$c4NDG&`9dU`sCe=Ivs*posGAqHo_pGP6!&t ze*ir3v+SPfuAe0}gf!M-JuS>NC~7YvGrW{r?fI(ya!vi3_~VZ4r#r7CZ1XGQvr1~P z%iZGY>|n}lEp`atzFkc7#(sLs-OpM-FD7wCJ8}=+t_AW>rCYC;52HHWuBzjGLB%6k z`VOno7Zh#P|M=aO$lvty0%I}+IYk(s_j4F`IFaDn!9TJODFZCD4VWlQc*}4%BkC>GDd6`&En0KplTZ5THQ;^X#N9PLIw$$-b0eG4f;^F) zdS+v)vfp3o z4BNk_mwn`G)$}yxkA!FMdA^|$?>V?>PTZ5-eMi`aIZ}Vi&x$wjX_S8id3rF}iBY?D z1A9x&>Jk|`7MHm6fdAHSu=jLJ1ey`b&7ldE(iJ+$D8cEG^5)KetR#BN7uHQ5Oz~)D z#`l$E!ID^ZDMKIyM7@Dr{laS$UPS>?ux^WLb1rqlrd)f1^RI+bq0ntbWolAPe|c0P z9fErF)??%m9Q4oQuckqQW1*Q-+q|wQB~n;>P2K8S9}sMn?%J^Ps3ex@>3FmD_PD!N z`hs&_e;8kdAJeK|L#XqzTd3_~raGGy*^^divF5)NEqBwBoifM`e+Xqb%0$bk>A%|H zc!?YHIne6Bh-yf8?t0@U!_AC0=m_#ZlZZK7DyaSNU(l31kJPUAT5pvt!D$T}>TFv# zSE_w!j+8gpZ%*Fzqn-c5S>TA})N~d-?x+0f{w%88f!ug2J{RiV z&;Q{pPC9O=EIHjxWs~Ks9k4tp)Xdo@*bNO=o%wo*8>FrV>i{_A^zwXMOz@~VMIgJ| zy|2I=rdMP}O zS+ooyw_1omVq#cdXu_8Hbyl`%fq*si{Sh}`Zd17s-1uoR?lKJGUl}xrAVZ_lz#yH$ z8D#{SqjRwZVy%ItLxod$?Ci0t`p^0QT<@=zjpwmGvGT1L zjS=MW*$W;{}s=|Ke5$2gGW z*i3C7y#DK7IRA$zWrV2AbvUzE@TXUt-iJDwKA0OhN4QJ0i1E4fng+-N#u=-T^cRG? zh@I#Y_YGlVTBYnNFeQO^))rZ-HYsn%QM=$;zUf7NYk|hxMSU#3?Jo>yO8mkKcaaaO zwBJik5c=8+Ub$>iMwpVo8gj%yUf-=qDW|K9K+N*fe&Sur#t=%;aw*M8f92h#XzmNADo8333^LvVV+y3&gF$-3uvDRY2-zsZi45%=h4@z! zEh@ZCe_V|IzIgJ6J3T|IfsO2-cDEyU^>5_JST+$l<-yfHD%aJGNB0PH^)08{NESFw zmuWoIs{t0s7yi;v*O9o$Qp$yG;d`NWy~NG04N2qTzOY6IOP+lpxb-@_CE)9EiL{ zyMsbaMf{#^P2Z5yG9j2-sG>{goY4IsfheW-1Yipil{2p9HdMpbLv#wulFKGX>YgsO zz;6)o+z$dgjKj6C*8EyhsKN@_n2z(3a>XvYbLWFw;37&n*c&ZGxtCXRMLZpi} zlWZE{M21EOKYJbKqlFEA%1&Cy#;5$_Z@rzca{*%6AyR4|5Ee}A*Wo;Bvw5TLHX!1E z%R!?Cm>z1*>uiq7e9%{3g&KOHB`|_Zy{LL}ZI_jnxHW6tOJ#WSbTAXjJu?#YbEojPtZaG5(h)S7uT0RV2}I>d8U5AUXZ~D>Z>E9It%A(!rChOc_1Y`>%-~qR&b)thAon@SV|pUD zY08OFOP?XXCqwZW-u{}kLd&@9?b#PA>Lr@ixbq>68oQ^-eAm0BW(TuJ`myvU(TY5p zf2GPeJNx_ow(i@r!w*|$@2}D|X?_WBuCf;=)w|q<>kg=$T@D-9I2STAQX6r?tltvz zBWRwKh>Nk~QBTi}F(1NNpdG2rHY4k8WA@EGDyNp;M2!&fGteewQ@JGy)F;yu)NO&{ zY(WuGjP49t9lcSTnHo(4PmE>mhFHU5?pg4L{H%FYmJV~T5UO!A;Gqr8@Vx_Or2oup zKw{shzhbHg#HnyknDB;Y!K2TSe?>3BWeq-t<29FCc--bN*ZRSaXS}(%dhC}LI+m1s zOy*O_KHGCJR=_h1F^^p^cE^r-HNNIw-9uK$;g->cSzzeEcTu>hUSr!u^KlUBr6CQf zPR;Qf){9xECAv|fWkP@KYw`wNvR-Cyoo7559cVlny<0qyfpt9ae$}4&PSl*vw@}S# zUHjyHs3gzyh+T$cF zPJ#c3{){fq>w4L=n#2kPPaCiI$nIhOb`;R+aP`V6FNmwQlBJ<~1ZP zbD+r3xjgPLjRvSr5zgJPf)siE%1%AOX`Y_n(`l|^4=-Ax6FIey7n>c$r$BfFXw$mtliEwCI7r!Ik5fEw1dlp4)O2xXNJs?yET4!YIK zJbT%Fb0=G*KG)}D``7)eD(2vK*F5uMB($!Vk!1|xFtT7K)V=5cXvuLNp$Q^)F_ z*pQWTDNRw2TGVZUIp)XHrz{2zFZ9<3O1FF>J;wx zau5$O>ES^8mb#G(2G_`Xvp0|DpXzIR&~@qSLcYoJY`#qKUn@YPY8(N&j~Ca?_|{~e z2e!hy(75T+Qu{75c7HqikzUeTP60Xktz#CI`YUCicEbvqFwP7${BX(%)rlKC`Q~fs zn&sBkn-)~lTP=vYPCa2^V|am*8f%KMSK zeOQt|2tlQ)TK+_eLTTamRXGjmH3wYL~loPDN5vHVY9NKsR?+xlgewW-&KmQT! z1ySvqBlmOQ3o&xX zgO0dc<=M!0%;2FUKjV5L)}l7(4Z}hs)exaMG@*B(?gYmqoc{6qhrp6#7*I2ZqP;ox zs%>0^-bKG9GjQjV-pdD-{ffrAflQ-;&Y-TgO2g8@dYmP35mIY`?hte2&Je>5*$ER? zW4&iuEL2b}*g!LaCexPCR&?YxhkMEC8u<7c9!~dH{+D>PuQNp`e?=2l8+IV~;occ& z>>%YQ+_K(z<#-9isv7`3l>O%H|3>XqZwXki~9*?M}`&7+r0fy!|12sNB-ADPOLc zds5-98`{cj0!!mk8FRwQP^7Hgl;2Qg{V3TF)YQZM@x#Ay3B13Z%-VVX`PA*4b;Y*X zqjac{XhObVL>u!BRah5(N6;`U5;ce&yM1R@TKP_#uHn3W&MAjmsi7D9oHU+Iq&xaW zWZfA9M&G!Rp!UJnwffKm>V1Hg5mjgVy1SX`nv->*;=E3CmGctzVm2^bX@h6t>~^iY*P-o@F=I0|c{g)IC@qQ}mw^zfig1i>--~k>r)1A*2aGW=eTPWeRx#naL@T zyX{ELn8#_1dx+8N-=Tu6McYE{qwWK21u_z|hb6C*sheP0OmV`SM}K2N%B;Ho@7RPZ zXymn-CR!L1KB6tb;B2rQMAqgSfjE@yxMQJ^s@gY<>>E% zyd_}L=YfdKx=LwJSyPg-za-qH)VN96)OIOvh|v<$N6H;lc&%ZvJO_%#Z{+AC>4S@h zm?cH9mZRcmj$e*nT#sN^OO`x-A%Z1-n##PE#wgDSR7%G{Y2_8wQ znnIwd@G(>4;|5!gUY$@ALy!rg%q~KH9?p%e!LK%4t+X0pjuVc?&$4LGQwV-RCJ-HRJ2G%I&zd6cfz%u!4-Ca8TmyS4Zj^y-`=7{@e4ro-ntt zlxpGirTc{Y(^-FQ-L)RVsK(+nn(^E+%sGVm)qGRcQVtD-pCJpZfr4=kq}5xQXssO~Gee$O&<5urk?*)fFE>-L^{7OKyaFIc({PZ2C+&bO4Z?_}0AN~uPlYd);z;i0h zQSn*o=XlRy_P$N=z|XCD=p92mwCM;u@>BO7eM?=~6C!KLDmU;9ytJ41BR=tKJ)zMarB`{c>@>IA`US&SE_aI-8XcrQAckm!mdu zJU0aMjf)$qsHM0U(b`R0A;Uu&C9sqkny zf<4`nRxh$*tRPdgt|mVkwjfv@tXl|Ofcq{n0o0&K=X8#Y^^g+@;yTMNB}g>UA|SO@ z$_P=AQ7)w!eKp$(MW!ZYS4oS)mR^>UoaBA75jF1j*;%Zq@ z(*kjC?kFr{u}X4&Jvx}b*z^f63&?cO`l3EJF8Tc1Nh=p1l?a9>wy4=l5^M6-mmza; zFVq9~fM6S;LaYxi7vv-HcnE*V`h;_qG6c0C(>MS|yRAMCIMO;mm)!$P>jkztexe%} zfmH4ZRq=@&p}EZ)>D<(q^01Syw=R7vM`ytKhy8Jbm_#6>rkOqst=N!FBL?wHXzmgC z)UDaH7_B*BH6xwG%rzK&OG(VTlr1X~7a>PhEpMgr=b24}s10K}n@e3cF0e%p?v7;( zLB(uUYZ*}LlTszrc zv;UO%T46T=UcEPvlTPmEokz>2F8&}-GxmM=L)U8Qh2z*?5I2wXDT%#` zo^+U!z?=6BnKvnK#pltMguh2=5wn*r&_u-57+9N>pcq0Ho|kSsnY&;|9Z=q&i)q76 z)I)d-cRukN#^&i~)~;)LXZuRIx9c$+{>pxaTHx{?HdfH~uiw;+DsC5Py$}R@=LP&P zYYif45j}WKor_R^CE61Pj1GJrHKtn*odGu%-qrmwh1@X$+ejwCeb2roQ+GF z-Pi#;7O+s{z8%c1rJM^fcc}1yFR*aWfiK~xo%$AQ(nJ$!&=c$DEZ?Xq-0G79MTYW} zy^~*skVQ>!>Q_ttn)DZ%SW>y=f@FNuMREOLMYXnatnP;Q*wl7pYnT?5TMo2Bji_BU z+2dI}&fpu&jW@Sgu<$z}OswCqp8Bj(%CWQXTAmpvrbWt9Y82`qhL^$W8U;E_mJ%c?Bf&Cn zQbw4PfcjypDFmLO_OuA|1&-d-bO>}6nBFi(ptZ9K z$nMhYAAca2R*&SFHjrtAkgcnA70JbQkm(Irm8=95#OBO)3z?;$rp1Zth>IvCD#++j+9QN+c0(K7fvn~Y82Ge7mau>Dl9oKnVfWt7 zK{IcIVVLE8va!YtNK2AvZ&I3DYtWh+vIGjp< zT@>`m{3>-2L(3rub=1N7K#uL?Z-R*2yZb)>x3f6ubN&x!fwO35@jZXOezl(`$NuHp zDIwgrOkA#9Rw?;#Q|Mn?{`(5LIBg}blu^UUx4$%qbjat zLrgIDLF>b9pf({$O*8Gs%D96so9IeAmj_TI9ChjMxtG>B-)0xE;0itHZFZBgd=r%3jk{`3~K=V2QKKX1JSrcUKE7 zAn|->m80Zt;?-fY-8dmfU#uL_YSvtAV)5B0S}Z6V$hq~Iy{3k3pKaN8<%~DTS=Q{v z>q@aj&RwVM4cmqYa+CYyO76xxvZ9T3H=k#Z5nbwlx ze@_3sb*bAm`uFAg#Qu2SG~sLD$3MNL=Te#WjM|u5;fEtG?ma>8J-Vi590D-pFp}Mr}f!65az@&OHx<6sCYD+nM}=H}7hBWVh6L zVD}GrGLLmMr*-X<_k)K2kb(YFYJY&&*yvUs?V*OHhVYoP9O#E7%!%Gf?SbE4>6za? z=b3+iJ*%+sB|It=F?l~G@$foF>^1diV!h(1Je~o5MtU!#&86(M?@&{q>vKK74&M;A zC!*$yl+Sl!;K?kU{EX`5GvB!EK?I~)MfXzV16>dkE8&!#iyg#TQ|nw?@1bpAis`%* z%2=e7=hwJspeNFHGH-3sC$w4qJh_-h>1Egs#`Gdn2z`$&yn{U4A!SFE*Zdub!jnn7 ze*13WEN*A9p2hhh+|U0Z2a!jpg^8q$iNag{PIG*?AwC7sEp&m#Qo{`px|Ldv<#`$z zImT)3$8o0r_$|S-akIT8g`V!IZMc~J`Zw>b4@2Gob;QZbSv*6CUE$HTpvW`z8?U*n z%GoqZ=L7rovY5NZ_hI?=Rx|xI@;B;I3;&vWvSuXmXfus)BEvoaO1tR`ZNg8ornL=# zQythx+7)`^KEGx#V@dp{w8_m&5qB2hzZI0 zNUifCQ+UBRGlrQTWY1V%Xv2S}cN+Butiq26NU4i179?%50@WxF@V`>KP8v_RLUuOI z`vTpl8q9yMzp5KZVMjHxUr{&KieeZLvZM3>F`GfoX_*i z&D3nz{fRZvT?I72=WF%MPG4E@DOqv1Z;4q_l5>n=stQPp)y*-t?DnF?;-hx_H z%jrdCbT+k7*%fp&j@jVqNNiS#FtD4k&61Nh>IOW~wHlb(TW^G%F`ydpo|~B?(P+Gz z#)LYvx0v_FYO~bq*AU^H*O_lMkZv74yqqDi^=v^ErgcEXgf#eqQ=7Cn(uJobUSVEd ze!9$Uskw3b@?CFYDT0g=ErwlTRIa9;c=OgFw1X68s!Gb?3UZ2ueE^(Dv7^c)J>rjQ8sS8SGkJrp z)Q22qTTH+wz74dDNYFE zM2n%G+v2~)6PwXkvyK5Il%pxCQ-m{U;^w?SUJUc;<=h;7Z0jG%8#HH??~k@bHmv5> zoKSU`x=XeOTK#$NAx;=={hP{$>?Bz{cdUafa2lUrBG8~} z54)>8OCD5PSI$R@AT>K`d!s^5GkK_uTQ99_DYVoi=(@-1Om40m-TdRX?7RvW*ZSn; zX}AHo{e&PcqkY0MFexT9TYO8g3mpAxuNQ^e4Y>>ZJ{uut0o_k8Ak&$=^NmKjw`O(= zD{3>>Ul`2y&8yi#PM?GizvUi}RnbqFv&P$-h9lz;ryCA`o4C(+Vt)k_jnoVzVmfPIX zn!8t_<)>?A*FZfHh6PcY7v8jc_w1V6yv}^%x6_h6BayF3HwS8UKl6_a9NfaPpu)Xu zfcx;Zpqhz1-}bP0BS$j}HlAYhYT^D3ETi=k$+^7!@z14Zwo4VB=wTNqpreQk1_Z?5eH8RYgzeX<>f?=Y?7TM7+6rsq1e zb$~8r4HWVeviT|aS_(;9=Qu-x)gL=y0=PK;;=b3*vyXda6TZP{rC$?e$ zDYcm*j1w(}eE^iYDahyrBWu-FkOwp)Qs7>*$~jO}Y+&Gb*{LahxbG>mecWrvs7kx( z4l?Wlz{BA9I7Q4%ZZ2HYa&>U~)XBF!S#t=>9CXEG8es%7dZ8L>`+xk_2;+}U59@|F zJGdpqm(ydwf{HZUDxVg!t)mXpox%gz91VzY21VmHXu=R`b6Xupyqd0{2_wvOr_myt zW;oReCFXl3$?zSTy{>xwEA8wm)REZcsPSMdDjAhfq6gfgU zgPc5FLg>bc7DMUdXUPdJjE~fbWAKbJ7jly>3_4k|_pM zqo&YBt-q?ex2-Zq(;GfV>)e+@6QqXPh8uZWoJP7&bUsTp{VPyG10ob3eVT-~`E3JU zpBCpfA08cDrSm~Yj>EnKs+ePFe?jo0V%9%lpCbd51?Y|e zO^N688Z6)DLg9{_19Pbn14yZh+6TT=sF13}y{Gn6;$%OI%0&JAHyW&?Z~ST$vZ?LbklZ2%SUqWpFtT1)d0kJ*9c3<3=2LX zN5)jD>Dh4GGk(cIlQQ&#@A+da79xoj1^e5@mTC$z;sbdx2eME{6_t;*W5}{LPk=l- z8-~D>jM)*JU+K$P4qkZYBGk|^D8UbUJS-Ept~D}hlA0a)QPX_|yN>OKDwyu3zbW7o?_!uqifG{(-dNhLx%* zNU584i_#qf!b5Ik@;aYhQoRjh+D5V!;!UjiJ*+GGu->pkpEP&35RpDE^?@#2$K?R+~< z!!DC|+0NjypT)W4GX(l&V%YXl21p&nLIW0|nE%97fwQ`Ea)sL2iDBZ zcoGwVPbrb9=Riy{IvLXz;`d;xInW6OjirL+jm-MFhXx_kQ!AoMM0Mh;{%%3e)1_w* z8)MneXTUKBM|&QRL@}}HJ#*FhHl9hk;hdLQ$$o*-{dojpNLj1z>sdy=q~Jt`M)tlX zEZae`F>WA-xld`bvcJGkrQ|VR1wj!))(K0Te&fZ|AZjOge4zdIuczO-RI|k!m4ScB zSu1G3C*;jcAJ9P)*HTut;BpHrBxMMBKzXA^xpHKY^p{tgO#unb^uaW!I@^ovrs*{m z33-ZK>KB9AY0KA+42pw0LvLFU_*mt-A{*&@nL{8}&>9$?(QlA6NhJBaW>6Q$E^;hP9d_aZ8n%cBm#$WbAd9oZBE zDwEE)A_OUeroGD#mdG~14|Dz4rmYr zu^v)}p5W93QLWMVdc4EN!Vmf?*pNYt>uS)!dVHb*NP*w>_52?)m$h~1#(f1B8U56B z7TmJbTPfQ~M>xyRS^SC%IiNk)BoM-)5~1+q5jlm|KuyuKi>@64q+-kODl6ae*N59s zXKre8`9jg!zENZ1LANycaF@c1kyC1y2qd}A`B(OzEWyFIELl_)N_0j)#qs-l*EHyL*+x!1CXAkzpTdyIXTfPYSv zGAh#>q*_VdUGO_DiUBmJI>C^ig>k8%;o5-Cgk6PaXIADB%jMJMw@VmYVh-b_b2*k(Q%Q zehGcBP8CLds^9n{I&3X@a2v$E?!>)8OAT*%oA?`)Zc>I@E0xc(MhRpip!{fe?PzGh z7hTZ53_ePc)fkjt-HSFqkEe_FLYE|BFMYzMT+4zw8Ck&1{M8#3W%;+1XAU*9)Pf|q zX1)VQO~ER}TWzKdv^3-sGDzb@m70`eP!`hViT8$%^S1DJJ zfX17Yylr6GU}~E`8DrTXVjyV3IJ37&w9Gs$(u7u!LTBBjY$BYM8$gjswrIqRMMeD* zL{}+aXaXy$KnH7ibkSXfkN=F1UKIJBOTluJBPq3fZr0tA3@e(q>ZYg_qlwQkp@Cef z64O<5m{;efW)0LQwB_V0!MsZeQmv-x#l*j_24Lz^-qK5NyVc-c=$?<3AU1|&07%f3 zhwEv=Ye7}q0;Pux#sW#YX+hg-SZxJ-XH}^7vb;6_gf+>A^@z*R#_;H<17g^i6RK$w zSVg4wuOkhzv(3F0~dhQ}~-xd))wXd$Db;WndLL&EPHw8Jx31OUQG3;<6M!7UCsI@t($~GYf zisBnf?IM1i-c3~}Ym$QdR5D>z=@>vlq*YZVVgM;E$Z^8(c!X4~Sq{6??vGeU46-m4F(mZ8JyOd9rRwxA$(@rVKA}xZ1z6y(!a@kB+28z{+ zH)<*M8~9b!sMO8sSBS7zXhN$#XznT?hEgLG`1(6@)fF6B$_Nt36GSHcijsU4Nk@@l zym5J7Z=pIhMOOV533kz4%Fa?jren1oRTnuvD#J%5b8b_zgwDcXE|@(xJS4*&~ z0q{MkSojVkkL1Svp3vqDI)=Yw8KyKKj;s#Q=sbG1q1Ghv@h#c5F5015!)Am;f*&jc z;8{QDT*L6ZBaUd#weFzk1jVkE3C@cE(eu(wjeE&SsTjd7K7g((e)P7rMOXVC>ZOo?IN?fLbycV_jr{- z3cSC|xT@Sjs7=|L?J9gaat+kgXBnDIT{rlIPz6nNMgRESH!Vz3!DGlXeQqJ=la9v& z88nc;`SUAwq^>f&{<-I6mvVL+_|plYa`~&XydjHNhpuuDl_iCc6*3G`+a~THH*y+X z{6Bu*k^0Qm5B6DpkanyGsm?ZhKLC@u+HW+@v>mGU3I z!vLw^wZ4LsH@!N+2YRfl_{>G9D)(YZV~L@IgrJxH)X8x?n-o<-)iai}Ygfyo-B<=y zzWmeEu)Y>++C!>LIo(qqZK+6Fq})PRD8z8|glQ}n%L+L)#&`IYD2P|FaS`}3BU3M| zH&oLICmQJW7(hp8iACE`1hG&;gR*E8E*-=?*Oqw(<`%@)s zdoQF0Rp<>$)u|~~BpP4uceoYS7sSh2K3pU;uKZQtGSPa%e*R|&fufFot@hv8Z`6{o znQBl~Zh=-qo3!*EkMdUD+JXh`na&9tJlm|S(LdYJxQP0B$O*%`J5+qu2E3LV6_*Xu7 z3#|on{ROS*l65Ix5G|_RR8|_#0$lJ8iBZNN9h=xKDrmBOX0P!*772zn0sqCCoeehc z*}MSO2{Ch3vw^gE5BDR7RId(dYZwsnzzoBpqujfz2^agT;r3_g*XY=UjvPX}$s|3T z;Qlmt*yE7q13?QKytad>jaLeUrp5F_#lHEs;bHd)e3N&FHyyQS_cHgOC zqGj+JS|6tDJz))Xlid=FYuKixn^08=^@bGHfE3aKCAoi|jSNN+!e*{~p-3UD+Nj$$ zf~NyYtw9Zs>R-jQm8aEusVh0baT@hp!=FJ{0WoALO}H6TVlvJbOuoM8RT?N^?s!8L4^hd>X3oSNeYiy4Ab z75su2%Bms{twx8KF!PncLe%rDgM#D4tNMnl)J-vfj4G0HRSALY0+lAW5NII5IKm*k zRz*J5=?F7~u4Kwbyu9~f!D~>3qd&hlYCLW?WPfISdeK>@+jCzNO_tEzyiMiX74Zs zi5A6?^)ITRJ-|PH$D~n&VQoS>S2deN3my;L`*0Ltyyrlx8EdiT>yfv{QeBWt&+e0Y zmct_H>od8s_&^|@O>4LOk@EKDtMI$8U@geA+XZ>2PjFpjXlrq_n1Y1L`ht-z#Ixxr zbZK`aQ@JfFVHGPgDhZo}aZeOTqubG(+K6LKkFGqzCBe!BHH&-Z* zm03?@vGP4dZDwnFLHRP+vSe@6JRW8IupL>-tj(mX9TcJ12XLET9C9+Zp8w`Vl&3P}~*}g#@8~3UwTe2%ehCM z8NaW0BpnA0bKF{r3G8nPd4NUZOpUuzLGFRtCwHx@iI!nIlD0fpqLjQt$CQHVqFPAd z*aTh>Z7Mf3KI}C2DTHd3vLO_s!~3g=K%P+75@k_KYY1`J3^Gow*K|92!eyO5b9>5d z3C+kRMKb$A>uPj2_v%K|d7`fod9MSD4qw9_>gw3jOHB|IQ+o^Jyg&$9Ul zEE4o1k>dH&qq`5DWGp%-Ler4@e}l(?_T*hq-T86%HPAOP`bsnJOkd($9SWj%U;7zp=)n@aBI_X*|rmMh|1l|R`O$g>HWvn5QAcn>P z7}SKGNLrg{88H8r))k_4Xa)^Tw7BE#pV_X$r*#Yo#`mxX*{Rb2G$6vTHm66SXm$;I z>LFycRC;hs`r*;tUBzaKM2Z~>Z`7^WAEGI5r@JDV>dh!-Ga_i16b<(UI`)`2>NB2%ebV5w%Tj41j(O@b3vpBpo9hF_=ahSJ^6> zi#6d{Ad5rF*hCkRRb_`>R#vZl7@U0$swuQBgh%hOhAx^_E=@^goY!>&bvM)nWG0t& zbytsNw2P=9J`*x5&u228Lgk8M#Z&c5Fd}3FL^>4 z)qSpvsOcU0B|BG%YqK1di?86ZK$=H#kUn|o#?pGqIfS1TB`0v@|E&8_DN{zL7ifgF zBCE+EEQ|otKrFx7F+h1g5-IikgeeJd-+93e zG~koSx+%Y?33qD82J27G~snf`)e@fYAdLBznugHEeWv^Z(| z!z5yWMFV)R%F%KQE6Y2eb|I)x`@lm|NQ)^3RHG+SG;RYr6p8f{YHZK6v-uUNaC2UF z;^G!mI_v#86l9cWF>DZ8Q3td^{RL*+kOdw(z_dCZ_;~DE@cEn?1gi?jz^8DsfG12+ z_fUP?0-fbie)+4Yjb0BGe!T==qfVxcQPYrx7SMp`1Vy<kO@2hWf@{w<)N$z_%4(cL}q zc-Z?m2lG1CgIeFvx<^}~^2-!)O|E}10k!3@Oi8KR)q&g>ITKO3NBkJ%-XFp3&uTwa zaEY7yae>C8v5+V7H8p#r?!zTq(q86g{6@Vcia%aKzoK>tzCYR&>VE#$EBs`Krd?$y|bMfNe!5{4V zvF(wYcy+kiv7y_7X+3U15O2{V2Wk_7%m8)5KDdHrju!)WiI$7eBlc_9u5P}9e66u7 z^>e2EJFcOhxST8eocquC`m}zg-a0W5Z+jIxYpsY3Z_dkoRe6@YP1vLw2^5903P@lV zsVWfdEDtHeO>aF|OD>ya^VrJQXQ7j_?FnrFZWzpvUU&9fLq9c zEVq*aX64p~oL<&GEd#)$n`blSh)T6!pU@uh1<~~~Ac$sXBm+_C_BeIBk=VD!>dMaN zPMGb~tGFHY4(h?4Ve3as7j9y@hVMX&66!Z>$d{)j=Vgs}pN80bzd^MnuRc7=HC#e# zmaS5PRIBI(`UH67?MC&(OkxtT*Q1Kk7R7my@mw>;ID)-nMNoz zQC>~~G_cul1)hv=WL-rz6+JDe?uOPuF)ixSR-ANm-Danopvr_zehk6+Z2y%zan|b^C0FJDZw25=hyvLuddR5TUq)<|Ky+?h`$V zyZNi(sSRE3iSL+NyB>TUIzvH!8dCy{HcR(ye=2S znZ2guW5Y0|w!1#*MY9h&6DOi^0E9Z~gdj(4dvq1B>dUGjWL3GBhOREc{7l5CUEhrL z!NFz;qsCw;Us^UZCebdvp?dPdphAo1E7D|g;_kZUWiwz*J%mc5a+jgp%r-u?Yo-G< z8FJS{$b(DD=;q#7#mh)+AyT#-@3_-T0KANY}cKx z0e&Puf~u~o9;uJ9o%mS`V|m{ptb%EIb|tB_3La=uam9eD)I>9Azzyfo@c5L~>eYHI0TB-m8;TD}A+nu3g`C3h_8?uZFv zxl12FkAD4~CfA(##q}xp?JowyeHm>Aq)=pRb~n|hMA$?lNB~jwp?yQl%K7fAYi4DP zFf(u>!v#HLGb`$9EN{HIZeZhPyYrc?rqcb+ob-`!exiOS9s1Q%^4VywHMKdyi4=F! z7o3{l8pEapQn*lrv8;pPXwyw0kU;~Y6BNf>whd%7LRSo^P9tnxaR({*GFnr$&OI+` zzFPhMe3YCZ?hR6~bx5}xa)dB8kWm+SMN{5nDubNjNYmoP8yR(SXQ5A%kJgQM)OGMd zBX1qm*uoX$6k%))*B6@7Xt{P%45&^T(gNxeV&>|`r`T0?kWr#Vv8ldMpY{V)q{Kt@ z4FP*JuJg42DDkr(I)Q{&gYmmsHt>V}Q#)uRG$2AT(c%PhZWG2Y3R}8|DMDI6-ucyY zlBa!mvZ2qj)}th6a&zS6P5#v=Xn#7~dfrl^s28Sv=4)MZWzA0D_Z z{-bz}=F@^!Rneyfa(8QE-%%`b3w<+F(`%rH-$5p{J0U@0@BOGio=xqO%a{yJ{68*Y z@@?=@C$w|mp7@v1Gv1AG>wo(x=y&x~4buKS}wMb4`6;_DCy_ zAh2HD3i2Sr85GrcllDe+!>33dWwl%E;$|UkXadRFT~+X>s~8+Hs-bzr)6xVE~6zMFGy}b9_IIQUt!J%J+q)0_#^2@QWGeS zWfajb7HO0o^1Gn+iF83#Dx}Ug(UIRngN-sjLo6v^(3}0ws z5-OPXvm`EJdxxAEQI{`%%m=sS_Q``0}iNBq_3pwZ%SP*hy- zMA~4EH1HE*6YD@yM($Qi_xp%RV(e-%oo427HA zpDH~q45_iK5V7^W7b)d@9dnm5m(rY`NYUIkgx)0&$euNx!GjBA6@a4RngQb+R!~!8 z+Fx+8@H^!d7?dYe+fcs6wS~A%eL*(HTC0OwqV*=;KYGxB2Q>0}zrj?4ie{7V zq1RHB`B+wwBAB|!kvc064|P&q&`lAU5+0^8J@njL=n0ncfg(Tm&yt_P8zl62G=>^j zWKkcmdQmB^@$j65+>v4nmn>|$e!tr)9iDg>qL5O$`e0HbV=tn<8`>jj@(s13a=2VqQA8g@PKi`TNJHQ%6^7MQBz+^ zmHysp{JvtbM;~0#dZ1yONPj`7$+riOT)4%841@GqoltvvMfFW|E9g!uUyl|~{4HZ; z8v^kSDCQ%O4ePNgE+LR1E{0#N+qGWS z=nA;$%Iha=j=oxan?g%?nBNWFs1yEJ!M&7hSoM*N>RS%}hRTSUZe|A7J~@AD^ll+% z)T?W1ZHL>e^*Fg&4Da1gJSt_g4}t&bhly8*+186`<`S}DDOI~)X>$HmhvA;O#zh~c zIXg`Dy58T3m>6JvOvoz^sYAB7?At6+y2!l~MK~ze#D0S9Shk}&!i{<|8cZB}a zk43gFqAfBP5iDBX%Qj#;$et+hGnspV{H*gmHLvQ4mSHQh&-Edvt1brS3OU`8FD8TB z+u&%;qXqmCU*~3oJ{dk4>ApGk7cOS5DrkLL`cgx94156fVj?D6r-?Qpc@6@zRaTWI z+U{ka-W2}(2_CkI_+epQS2X_g@W8*#v$s`|6NHZbTkBbyc`yBkeO(&(9{Gp?j)bn zKM%d*#m~9;lLxQy7r$?p%!WI&Fv18F13q`Bn zpFQLdI=clF8T9qlT*}^*jt|2oB}g=(UvSSMEb3o0AUtF!a8GV{7CibT>C)ZZqj7cK zqemh+Z<@%LBNuSYl|7f%u5;4v?`AuX@}`zTc9M|7@j<0hqFA6R9QH=dexM3Z&YKJQV4KqoXXOWiH^$E8v8eDL6=W`_b;8vv3VplbgQ;Oa%czP-Q^Qz8 zNbYQN=q}MR>@h8F3BmC(h?aqG7(!RaEH5-pwoFTv!yq?!!`%wh=&o#YUB%+o4$Ivn zS|T%g(SlobSj&Rqyv*Yd))bv{1 zeZr=gfk(tJZ{5VXUBeA|4(!aLCvViHAWjn|?1rT{?x30D#Xuc}ZN@$Gftm*m^_}i> zlQ*ig@--k}8|d#_4ISCIz}IIyhu@vgtjUv8%=J?GWM%h^WHpWhygiTy!bJ22#8QT8&yuBzzAI zLeNBd;|otON&tFQT;1l&=I;9(Z+(TVpf~=glr(gI?A;di(uqKI)X+f z*Mt&&1oeLtIq_}b+{L)#E2Ek=2H$o44x2)H(KrwLNWY77+UNN{q#P&;H5Ot47yNPz zB$o<)aHLQySYJ@CJUWe;W9<-LP>}@nPUT?pvr8mqtzR8mOFLh$6+Vv2umzQ=2RcZz z7#63ICW`4EdZ{DXQuL;Ks4HWUGL{OVs$DH+V^v8({!Yww3n3dBBnR`>CBg}omrpO0q z%H!Pc^VffLm)*H?qZ1RTrRG)kmVfce8Z7)8(w&PZvbYu9lmpzj%u-?t#H3|}s&)pQ z4d`N9hj_~uZ0KfQp&ryr2N8wcG8QBD5c!AmS_6Mp18gsA~n(@*og#PwX#bYR#6S5 zS?2K^44M-dqe%W@*+M;agOrVBLpAl&{2KVLn+BbsRPOUGriN393pqo_D1Dh3$+9jb za)c8Zaw|a{idC%X3!D2P-OWr7kCf3((41socIYW0SHaS_0#-qHd76rM!0#6D=ypQKLOj z;K>UusL%2^`F!R1{C~FLE%~{%JPqY^mS@EO0~fs=r{1`@fmkD0I+tH(c|Qw&7k>Rq z&x0EmjjNkAtQT51FwWpHR;u#DjJRg__Eg^y@76 z;-y>eMPRlIe8R?%L+A$9Rn856-#n;Lvlw)cQKDtSOKwl2^5nvP)1YV8QOgs**v26i zTgKeA+yhX&7`T%)b|m-=Ms-MIJ71;qinC2zL8cYUI4j`6)UbyvnA!%T4w}&SF+KZWF(*gu z>`nj~CUk$tx$m$6XrPa2@FU4nBRwbP=3$l6b$7Vbo3ZuCD*D@D)Qu=Q!RoO(<^kEm zZM$-GlV};HGxY>k`DHRh)Y_&3Qb@EI`FQRgtRbQf@8e&1A|p>}&`l+HhisbDG9iRf zdo9N&UR)w=DUbJaY_^%zA5R)Qp-gQ&*L0&gfcL@LuzGe?d@V&9en725v94Vxz4#&m z^O0QUvXk}CoqYk&noHc8`{Q3ve0nmUOa%f!}Zy|KiCelF+x5A<>Cu&7-LuM_t zmd{DV1&~F>E>eO*$Wggk9iLjy=Gr!DC@c`rfLE$yE;lJ7h(XH`$am@{3-SC5phT+@ zkhOV)DH&+xM6+SKx0?MG+#vSqAgY{mB+g1{EYG%VOaGEq7E!HtddzJpXNKv7v1SMN_2kV=HY zf)6%ibvkm2bALf?Q?-P&s{@-IvAn{f(^hOHCn`-`iVK(;NVG#$f_5(~D@*4hglsB< zEtnhKL_FA0-#M%n$iptpHGK+!_^ble)I+Lf@)tu4o%PqhR#yHcvGb*Fbrp`9+IF;3 zmk#lbrDw4pDQ$2|ar!3mI3Tx^_-QXE{59Q0Z2Vs5M(K@kXr$fh-S8*DeOZ(n>sc#c z&AtlX48r@YEY>k2Lj4md3X;ka8q;0MTd7e9BESAH)xn9)@_m$M$d-KPT}X?Y!8_Cx zsGI#j@i`PE)Nw;rEEP22xQN7AloBc=ntH+@-SWB1QulbIJHrB%n3NJ$27d3Iz?d?s z0I7f?6ca5@Am?Uxa(JSjXAc@b`Joq?J&!SCpl>_Kk{QSQzRGhTnKvnK_Dl@15uzJN zpsDPo)CuRO-CA00ntl)=3(MsLX1YHEbwP+&O;ZUnL+7^~K4;DDpa|+v%TKVkX&DbJax{deDE$ByJSAR8LKu}C=Zl6w*zSH7M&gsz=b&QDF*sZ%7`mO)s_fP}%i-Ebs zCqmt!g3Q@3otrjX?GxSt#UBV>4=$Pw8fkE>y^ub%-^ud zH)e_|xAIq`iepu7rm)Ajxvf_D&6Q%h3i1{tYI_j1)j4W}!H5Q=WdNM2qMhb-m*Oxl zG-Fzny6X2Q)DAJ<$dNH|5okd+$`JZa1Y*2}oZ1HAB63j3Mqs#08S1Ujm(+2GDjtmp zHm}j~Dg+O_CzeEOhCu18Xgw`Xn6NVQe1C>KF?D8n+KgZq?fT35TOOkHC=BluWDqx5M8OStK%7GT{JLq} zk>^jMHnK#Eat7*{+e2h$`SrJ5ElA-7fwv|PDIaFX;XqlXT(xG~kO#Cu-@rr1YW}lK z8}7Vq5N?H)J5FzcAkzq;Bw9!%ny)Zy-4y!M>xSP@556%BIYm#aQHK*T?yk2SBI@MJ zW=3DW+^pxMp*%}~x%C_B!q}S%Oerez3sBq&^dY7a^pdL6TJj2V-x!aNO2hzCnxGj~ zg?{S6#a+r5L|2vjGdvzRs@r4sO;jXBkbr5|*|pAcobB4PoaGDmXZrPbLwom{_l;2A zzG_T#S}u4NM?JW+1dmU1od0iJ1nMa;Ej3X@ow=PRo(0b0(K$$wkGC07Sr+pzkqtT4 zvYVZ~Gm)1e&9!ZMefRIgZg%9RtJGSK>S+5z-j?dsDHDf>9YsskkISbz@vBZxc zjp!kczIt zgUj@ic$G)w3#S(ZHc)CkXp<(XI9l-~u&0$P+C9`#17ic3hDXGjLs&H6Pv+o)Y`2G6 zCOxywrB~A~nieQ&S8Fr#5^`D=P=xuix9qh#5+#|}Cp5eL_B!2+c%U~tn3cO6%(WhN z<8!5FZWqIo95tFsSAhS#f0yU~&-p)a5%R+{!brQ{ntk$N567{qU z|4y&R*_fMWm*^D&@5i(s7UpYOCe%2mE?w5E_$`Di)b^0O zVHp#5tM3IBG)>B`NPPT@6GD>xl>Ndmq35g?9U0-opKP%8hqx zfBol%`V7b3l|R3$4_f%q4gB+R+|U0E>30z$@+lxGpW$f2T)Q3h9N_!J^1Hwz{4ST@ z|5H2*ZkaNqq_RlRxwr)$>zdRMO_*p=){BeI5$-O{I+UmQ`$%K9XdUrlxScsfk8YPc#OMJLeA5$Whsv?R6|%CQv{h=6!qXGswtiqUzN%oDwK~^w!Utqots>~ zr7=LJeABiW=@vYj2(xVueY}mZ(WT7EiA#6h)UDMgig2=3cBhpjQbVXwk=r_A;wO@| z+Cqn7>jU6KiXWM^v)25VuCq&X)`p?*TAlF;pM#O9ZIX7@(~I`$7JAo>wMdp^XnQf% zdyZv(G6V=1^9)ToPIeiAV%SRvPX#iFPB3h-)Lm5hn|U#v91^+c<~rj3pYbeL@&dEt5|@7f+u) z*Nw;jcjdF95)-Gnz)%HGkXG$s?Gr+|mIqKR>*!9FR1rbO3n-dMYd2o!3ZI2sNimTv z=UBU8n-PQ0o7yXKbSVd4mo%%?ZR_=+KwMUUzlE;fUY)}-3G_*nNo<(ru!k@SARFh@ zTQ^mZql*qQq2G5Ca8*`M>|yW5$Z=+vkh=mVFB2%WPyC*1I%f6?evz~*to-e6FI3T95{xqla?GGZw(s zAXpBK5oFkf_=kkz_k?L-)FoJfbwC9vajl{H3EzgV^@0&1a@a%NKtmxqA`VJqZ3);1 zrI(*`@xEHAbtiY#EW14kAjYmam4CKg)oAqzo54uPA#{T!w3$J(qEfe6U#jKug2;0} zXV@{Yo5}wJNAE$XT-B+RZJC!6Q_d;Ijm;TSE=2_a5@rU1@K7 zhEI1ldJoz{Si2Jju3B9vUN9O*( zXQ)(nkTXxrxwRa`kSAIUHP0Sy5w?_seZVV%6xY(at8+_p#oM_G-RM=nQ6D8`MjhnQiLH% zTM-TUlU{LXAX_3byj3}sGaqPkTHscq#YJb7hm90x0x83|hcHou@@n9j`wJ5`;~nIj zL+I@$r}~b8z}gj81JHzVW~j&p8D!j*>f7A(T8zu)NKvVDrw4Xa=^N;#ysZDOn;Nw{ z*_!!=E2nXo#az`5Gic_iiT{Uv&*LJ(r7XJZJ|UD#*%*goBQFeD`8uI8qW=5bx$Lua zk%Y^tU|&u?3x#7^tRid7pb4XL`(R4$11iW#r;K`@LO5GeLLNX7V12-j#oLzY4uUf%?Ub3DmCEGc;U{a@;5Oqm*ZC{kSfT9(2v}4rXr2 zoqSKbzhd_P{ALw;b@*!3u=e!2E|8DFGrRWnanpySFtZ!^)#YJP6sQGaeS#b|Axd4; z6=aym?G8aXHOR3BCK_x=tt7;uxL~Vi$=F7K8}iTn6#R%vBQZbjPC0q@biyO z*3U~EkU@mvNH18mnpfi@bn>R|we5l3_r-Vnp6{1EZ*EKd;0;QB?bYS7D=!MSh2V*}hag({dcuBzF!q^$N{+ ztszJ=?(^jIRp<+q*w_wG>!Y@a*QG?1*f_jV8<3qdjQN4WtC}nS`n69A>83ze&3#HH z>z9*T=tm8*O#As4L&q7PxqQyJ)DYR&d1Y##bZiE1)S6!Mh=#ni*Q-jYXInZQ1TKZ? zt8hHF5zfofxr5a&XSsm7Mku6-^!x2jbDUmH_m?dvQLKBemCA5Nn$p|MI?{w>mH%eCAZ0ZpFX`} z__ z&9PTZ75WQ;od?!W2%E0oD$61C;gKsuMDMt@0~NFRgo)R~KjZ;p_X zzEUs(5gMzd)X4Y7S*6IcH!NxcwKG~LPT_>wm@|?_kdVh{fI+`VOtdg;=p6U-+8HV! z(4@o&y!{L7rje!T0SP^Dd5)`nSLHrq}>uEfFu&S0WVP#SwqS~t!tcq7^~%!)0QylpN`Ul3VWNe7$dxqBU6?{ z85~%!RGkZjv4iORQnrg=mDR z5ez9jkex6gDUSpAkmO(~J;A970yV<03;p#+1x*;0eFna4D>9Epm4_mY%|M@cxav2^ zoq{?^PT$bFInT1L_{W`$_6)%jWJsK=^n5o!H>;V}8Ja-7NzdJD!SlXe=hk;@`V})< z9)57y!;U=54l?=9Kyy_f4SSFP*@ZSPx|9#ZH|io|c!`A(_~0s7M{K=3^)#3r?ZTl- z?nJ6u(Lq`#L;87T#u8_SiL!gv22@Ss?hnFxH+>dR^{%D*6h5WSso&@mT3SJLvfD)V znaEmV655jYr$PyNM$0J2jU!y~&dFsLTyxlVPINhCW-J%h<>Y&FT~PXp2qqGfuhSbM zXOIhBTUUNT&iyX^0WX?Q)Euh4oT5||MqJ~%su3cuA*$a)!4)K ztbdf+gwj_ClG8E5kowuZ(^-D=VbrL<&{(kdIR75oS#m*K*0cEhQ+$Q95IiRqPaRLf z<3#=`BLOsE&!M%u(i124qNZ zAW`o=G0R{YB6;?YZ-cjO5ha|d!Clyy^j7ev$v^$X;V5BBID zmAaWs+~+jNStLmPYH+XoPFTC}61W@!@;Y6|7}iO(iN6b(mdCDD)PX{-xn!`W>3td>{u}t`>LLJ3i^=Beh#&+a}%mfxO+a z)*9$)`9JCA`}2an9nQ6N!M~k$vHs(u(QRZl?hC0y(_GEMm%P@CX)jxDH@o0{n`jLo zUJZGqE!Zr zBW?U=ho}XX)1lKo=4VIP0w2CIM35-0s~L%Dd|ruUIIbiQ>q=I(*k2Gzv;?Md^uK;* z+NDH&)Pj{o8x8vw1db0zYyxtu8HEPlwG+Ne4uKkmI*dd-jx$_nFpu;Y@t2r-7JgP%eN(@K) zAt(MQrG5wbfd(BA%dXGhO!@0KPLu~Hj1n!ve7(ic>?i*`1gR<|P8cx@&7v3-P~(J{ znOt0XPLt(u0lLWM$_6|CPp{1l`@q$gPDgv61ZJhr3f&$2heiMPY&*Q$DbDUa$=1GZ z(Ev(QZD)9d5L#5s3N1RpP@Ck`fT}6v08%8w);;wb{~GhZ6q@~pdvTU{_A8h{M7_BDN;i8RATR&c)5_*+NZ z@)L&H{9w83Ylb}kemB~1dh1HEoX#-eAC26fBdyE8+9$-!q+<2fc$=MGPp8I%3Cwlf zaB4!)DZ&{vbG!(+vgIgIBWO@w3@I9zSE52ws*3?=Lf;Yaqis$woa(3ld=0B3MW;uo za5bT)>&m%ke&o6OAk-z{YA&Ju%V_iDZ*K(s--_F0Wbo&ITeq~FUUYTrknL94|21Pd zmApI6t;-?f?%meVUuAK(E84%jmczQx9ji=k2V6)=dsyA#=w!V)Jern)%)7UW=F(r$-2rA18z}Xy!PJOImf7 zm2=T@q6D|@2TgaS|D}62aqk z*S?qs8P~2p!>QppxY=n zPX0R#0|pO+@ici5p0gjF`gk`9O14H#)T1Q*N(Y7ubr2GWAt7LGAln;YsF~P|4w`mw z8_$vY$vaB$8VLjI*RK2s$__PX2H(gQeGmBaw>K>e@ArKnw{)+iBxDQr~-q*2xN!z}z2HRumyxT_5i5 zl}C-Ieqyx$m5?=*{>(q;AQifmM&#vkJ-sk%Dz&e89sfWtMpPKAz*Qa8nV;8 zG1g^XmUR%cvUwVX=>&FNy*{Wie2 z)|BlV@NlS3%_xgebGVk1dm>pZ1DoRpHBPTB;5b*NEC>=h37J*QOuEhrI%_Tl6#O>$ zy=>dmAh$ax8t>_Mr6ii{*9S_9Ze8)6yaWsL8HK*f2bK^z#MDYm@jpuXQ!-mptJg~j4^p^Hu;C6$IH#h+z&d_UyP>B zOrmq-)W6yO%fn>ywX`&A*!#PA+vkc@XNU6yXkATD)_*q4UjePZG2{N{neVILBV5Rh zey@fnt+QMH%d2;jy||mVrr5Xtv8VidH=fIq9fSnO_ChsLTeHAck)cD7RFKC%EXsl) zg&c~ljzt{cGVN07jEqhm8@%ly(!$9Q~zggMHgTQevsjNmpk+b7aXo0zMu_ z9}HTdMoCv9{d_p~J@f0dZtbgskl@&iii719ulJOIy&L2?Vy|xM)|m)GLO?bC4(KhM znHk0DEDl0KiCkT@PU#Ez0$GOh_~#M{XPH$EGQkB3)C9oQ5295({m)-L{gnkqP;%0> z&&4SzFJG6b>L;GI;-Ux2h|C6ua(H`a3es&$?eJQbwHXy5Eo)?`E6eVlkr*bW-#;rv z`drC#SUA^lj8Y&f#6)jz>jU}&Yjyk}N49R5uozGrgapS*`T;94QoLowpgqS14c=ZP zYU!^|EY}N5=@z^XiB+-J?*Cl z(cn}^nqi)!tu4&ZF36O-uE;jlN6%L9qxU!Dr8YXp(#o#T;N*pB9*exYp_oltq+!bz z1gDifmhr0qI($@*9%mOuZ`>!RlM~i=6~q&&$%kN2w$rA}fU#E_6$8jO-Bz5ke9eClz9} zp@B=KNV-xq!?OsHDScTj=aH=m)tc&0=NTfAgqUwIJx_%d1P~G&p#ddw%*p#+gCw^>4N4M_ z2ST7E5bHpwkl@&iijXY4LP^z-zda;@1{6?~fT%8F+1flSCk#@k(JCZ3GTu94T-&+1 zXhzKF1CV4tU+bp}Bm`7)(v^bCThXgt5)UCEptdt9^%H_gCNEbV#&UNiuW?k9_E-f4 z)Mdfeci)X>L}2>&gx>9!eGc}=*lruc`~LNWN)%924`#g$4u@t`1{_|pIMqtD0@mmL zPn`r6Q2B13NgS^1_p)pbjReE&W)U-26mg_|4VVv+p+-s9fhsV93X!( zN-pBujFONLP|44j1Pv&W5k#sktfdu7ssZ_oEj?SDjZT4_U$pijBq+Ic)V{YMCtZj5 zAPdp`ge*=_$C%KZzE2xIdUZdL54<_Nr1{) zHsQry_Ng;Q5UgXr^7lM8@8yENE(fPV^dUPweHIPt!Q|Yt+K{~Bo}?femYlwY!M@VCm+FI6W&aQN$&0)>z`^KSfO{BYbE9W%kueFKmE0tvX3_ffyuNjD zcUVQVaQC<~v|^`!^miW28neNA_98%zER(>jG|EPi8R5JkDn`S33ZJzK0<%)eZ5Cw` z^-|>r@Id&7tS2TI+f`9ao`NC)L5?Y2+sD&Co^kX6*J8Y#BiYtxH!K0GbFZ2_CgafX zm9}U>sd)Qx_WCFs@9f_KH+Q^Fmqwk0^@)zRNQ?c9UTJ+md}*`)Ovl^=XB0(uo|QFJ%l+vMUCH0Nm^cQ@Z_NFunIyp*72e<9rM+U{0g2R6O_ z$Gv6W|BmwnZkiu{YG!{gZ!?+$1|5gz_l2`L0uii&AfZ8w!c_Mt2Xtxuh!&iQ5e4hg zh73GpXkd+q$VyQgim4S!ECH)C_XYOg7X_k%&T2}%RnwyQXAN9yydUF4MAk`2jE(B4 zrev$e9_66$avUW(&it|cEQ>$~)jFX#_d3YTY7V%_HeM-wu3Q&TaiqOLq2xBup6BbI z5E23^+5B-coXfB}H>2wGZK*qoz|q_@WpSeU77`q-DZU=i6eFV#_4>J7o9iX@O3@4f zB_1s@TqJ=~y-{RRp$ZLr1TM2kx(3xE!^K%73RdvQ8Om5f3kY@b(wkrzn?Fir-)FQc z@~o!X*k&dPA}d9{37HirZM@oaGu$)O*(S7`ZXxy|m-Kox3LZ7Hfqyx*O|@LtPOTyWU7>*IiuW1tN}KYf%*K_}^{S{<9`Bo*gf#fa{E$$4hMP%uu6%2fjYXT}0$D)p`DfH|}Sx7XQ zn`~z(JeHHT&{$bEBP0nZpqN>MU^DZJduNlk(&=%jooKcv_L30XX1s6S@|haR++nrF zwu_Sb0N+q5Bz^}`K9NEO=LXFNlvY|JV-ntM5vSsXA)N9W4Nk=UKfm7VXeP@BB_~}e zT0l5|nBSjQA+vCLJ;ad(`ki14?2l%&K^@(Ei_-xmw}3EKAu)M>IBhK;oC`?;g6!pv z&`(v|LF&G09A)rwqpq|%Kq-TaY}S^C`%@vJ#tGpJnt9Ig z+I-?^+6D9}#qUYY&VMNc`cJF=7pwh;=gZ+L?*2kvhV;8!n&;qp_@CXV9!#=dRXQ zcV#TtS-{m)tUEyw>j19MIl>fodv4;W5zb?hvJP0?JU&iwLOA=O%H?;qKTDpy6u+!C zX_~oJ@arb-b-_;v`El7Q>=^v^ugr(Gb#cuC%_`BNGF!|bLw)3c!v#<1?yK=C}!dCcy;P_N-qu{KI{z2H*{U5czYelEJSOTPD17v1)z zqpk>UXs70;y*;QI*6P=dp6)Ap8wMAcCwZTbGZJWC8F?{~wp}Lfg&wG&o-n-V!8^QibEzRjcf6lM zv$|4_17MUv1AX2)iHu8b1R7}Bc7QRJOKG}ox)HAm7uhHE1DcgB&ga~UoG>9dOKBHh zdD0-fOy*pX*F=2)oM^(e`m9J=pQ@^H0G!Bh8xWl^a4N_%aK7m~E$&=ZyNK`7-#v!S z87n&Se>z^sI|p;;dNu5BL;5LK&-Z-a-u6|n7wmrT|C%9<8r<$i)lKJ;+3L2Pb*nI$$vX{(U(pcNzx}Zt97*$q_Afv~~ z^NOpy`ECL}X3x9$`XBaXcHi5*XZUg7 zt(;zNe7#)frk^1E@0=7b8GC3~or6#L{cCc!^?Ka3k1u!q_vD`Ucz3nFSN^4S`?vXB z)=#;I-<^iJg9eWLH)x=LSADoYGx@8fu6-gmzRPrx33XR`#Q~^}{)U}f7sez&lhDO* z)vnSv@^3%AxDTk=_N~s%@9)`t|EAsj`no*h`wR1&ZrlbrfF_JHV+daHrhX<&v^Y(c+>*SsRc#YsN2s8_Kh2QlNNMaOvBH4_WK7 zE0-FLyzUF`j&H+SXmL{aM^1o@W;fB|qC=UlMjheI|8D1%AkMH zHNThizjMB8-z&C+b~XLY!K?p4#k@kgVt(jT5X*A|-wx>8@fAQ8qvP?3irr#|6A32B z2GuciH*z!g0f`plH|nT{R$JYsJ!?8}4yzkAWOIF~xV5(s)&ZaiBZjb|r%8h^7-z;1 zi5BGz)x}f~tpkQvmjTfU13?qcer^g%~ z0p`Qa^qP5#jy9{-B@Int3aLWzc4WgP4gwh^S{$!_TXQ=1H?t+XS8>)F9-3KrIu<=V znzZ?;P4zoup?oja4n?|c52?-!7JBXOs1p=UJ0z&7cZ7v&dNF)}M?+@jZOKV*Q74F{ zCrav;oKL_W>zSODEVpuS z9&0$mlCmwk4)dB4C!D?lMT>q-`Q;=pLPlwE!ayP~!6z6j9+JiomZk`a`Ynh65f<>* z$6CKlmv5j>@(1s!^b@F{>c)g}xfC!#$n3 z8`Dht1Z-nStAl%GVtS)m+;bS7zz?!TS*1A#4WYlxG3t`GZk;nE3fqwx?w~GEdI!@l ze;61g1zC&(Ae3ksV8x_D{^?6L=V`1K!z0#XHPsCI3xj`vN5s17#4FyoU;_(Ei$yW| zqILWxYq&pisVU-1`Xfj2-&r1E$t^RnOGdZY!BocARF^~+Q()>x$P7o*(4-=kElB#% z)_Y0cUQld(Y{=8SDUqeI(A?w$4bSRwelunLMi?5X^x&BK$Y>G^Xuv=|$O`un7x2i+ zCf5-7D^#uU0*Cbzre)6IhRj3|XD|C9H_SxN-%jHprI{-3PjlOd)na-%g`=0MtIb`# zXV@~{v#sBR>r`@C<`S~Sni@Ch+)0#p&?~n}sb7`I6Fb)*bQ5hr(>Bbe-?iiW5S3oaAQC1nR~IOA$>&xcBtdU#D94Lhac0o}h-k5oLPi z0YFA)mETr+UCgFx3w7ft6F+tYDiH>MFr>MY4soVVYGml1`0Pc8f<^ zCcJ@L9orJS?H|KUYcDc+-tU=PG>HZINYM@ZByP;N?f!=inltbpOUqX&7w0lAyW7^n z+8uv5dbNERarb_+<4cn2H*%biFK}IYG46uQ#R^nc?=sXUAq(a}QK)JdpU4)jao}4X zPMEL?_q2%1mccC-Z1$yj*P14D+%l8n9A-GpX)3F0)Vbm0?Mw=yh8uEMTuOcjCVqZu zSfLmlNNIwRn`lwu4b?H?me40d2Z_0AOosQ>>fR$X%<__{BLus_2NXW&xi_{fKEAvE z#%Q15raZCn_0c7+8bAXg6uX1wRte)8d2)tMe1lrr=Tv2l}y>Un}A{ zn0@ytnt`=Y)#2F(G^bmM*j)PW*(^W(a?7{nZ|DCM_D951rtA(>dow9FbPr;NKbST{ zPLJ+|?x@seyQ8}NDaZI!4S4|HU3OJBTtpq}7IL6Ad@hZG&NW-=1!HlTP-QAba!gb-LWFq9sBiNa7Y+3xb^kuee|S z$U)W@3Gy+CDMHIcGpvlqH~>OYdzCc8A_;i3Ec;A#3pAi9ftF8LY@)K?Dt8$t(jNDU zQj<^rjQotwEs*oHS-bfGmRmiv7M}g+JAyq;Zz10b#UbwbxDD|@)Yjz2GLRn4n8G5@QFYcZ-LeqOd(MmVm(^3f{R@fxzMMC zR^kQC)!>bB%Yv-oc3xhCkEG_vkHJ(eh*qz9pr0^`uR*(DHjUa0OD>e4iqQHf= zv`_8lfug;44AZX_%FSXawNLCb)Ej!PeWWFGUTBJM*sIgNINFZY8Dt9PkJYkq+9l1u z{9aFoOUgJyK70KBTV@PLFI(tm8-Z^vWpCByobQ29gJ2H7VTd7+0Uzl^AcB;jRsju& z7?@}=?hGOqeiNt(M_42Q@F=~?WHAnaQB&A!*}HPvO9z?grCP=Z8?shXs#U^oqdS_d zdtDJy0}qWr6UM=bmcd#$*}UZRgmIM=)nXWql_=XxR$jD)J{jt!G7Fw!m7F-iOvyFGk!feFc0Le-qLB4(_b(-cI!EZ)&-#9hPphJ zV_KY`xYR;%=Eft(baWv1OUCSMAyD)2hl=cz?S%lPyTxaB0x_4JgS@P4)RkxJm3tlzZf+HlXWtv(_lgi~T4{hA?muXB29Xk3vl95E}q}3H7v8@v1m+=IY)Ek2yJRD$kD~-IT=fIPR@M1 zQ9%V;gsW+KZ8|mUiua`VKs3vQ1=%aJ-I7b11afrYllg!cs*nekE60n#tUy=QT-Gg` z_(7j=Op|C)D$ugeKofzKF{t1T!}5rRM;A(DQF=1smJI5=(YkMG+<3^TO&H`=OgCa! zF8Yx$Ps+naT?+6wZ;rI}b?h&w0#RzlM|A=@+dgn|>;l*=dAL65Uc>#DKV1#qwXbCx zFsk|G@62)t^bEl`GlodC4DL#wusK;JIYd-Lib`0r>=TGI0Ds-;! zHAAPWAw;JTrNs*0Xmb08Cs1A64RCjQptYHdAVXS|d@pi7qFj-6b( z#I(4`d|TUeEjBB;h%}6YD573OGlc=!DS}*N7qZ;0y5SKMgw^u%+I~69^}B^C<(Z@@ zIps3}S!b@+()w`XQLh{?0;-k}E}{>lWkTu8p=A6wuT7@?l*5AAeS>@1GYk4rOh!5V zGP#7{BE51{VW)wnxRb^1G6S>h$H%AqL7%z9RHDVv*XR>@AA&o3pBY2sXspZTJm+-9 zJblnDtb@z(QR4n?ZJ}JYQkOuWi|tP(zU^}{)tk>lyk{Pla-cDzhpx$Vd^N|L-TLxNM^r-Zp$uU%6~1c;+Mp%y9#MnG{k%G z54uyIZU2gn)Cb&hT8CJ|RAiOcTukP&f2%lT>yS0-M#bApxZy>{y*5{%NqgaU$O`cB z&dji$4_u+DOvpm^z|`4K23%t{$VG3;pxBTvVr13b$tL~@ivm)FVeg9kk!McJMc}Hc zOMU!o2FMAHiI$6)i}|}-!|O&Jb>J7bS=jpkZp==pi_=~c-O~bq)SfhiWo7P{Zx#SX3v=$mIu$J8CKsP30RkLn`iaAHQ+Z z@C+eM2ofRh@hWe6a@h~LbFW=iF*Hs;l14}bN!)k=_S>0MPRhU2lWGWy1{)&Nq@BK) z$uF$9*Vf|Hnv|Gw?OgBxKZ@kbzf(Gp}B-+acOJB>j>tqOK~jGA_nAAq`n_$ zAd6Cp*N!y66!K`ZbAhX>E`7J;hI|y)uE;1&M7W6lg2`rJ2OSr?FXYw2)w?c0SNN_1 zO#?SZqF#ae?NpFjv6f{Bq#XQ{@pD$kpW*KZb;Ww5t&faG!0}OGMXa+9lLry92(D6~ zGQ1=W4~aKvrW!@XuqZ&H2L9-Zq_J9rK}!)PxY5EM>T2crxMxCcle=2W<|2pgf*-b; zu#TclcH}5R9{wmJsXNa^X5koT#t>cU6E-KCP?pRv(W0D|#Vg?@HXKWw-lCERsPTfI&^E9MR00Ub}JY3U>Xe zo!kw8Qys_)W15OeO{@PnyodxH|vfD~R*GIMedWHGhzadLzP$z4LK1E5sL_LbKV zXuvJBkljDhxg+7TX6d;SaJ{r5GW| zqql5=y*vgyWG3>7=qK^4D@a2GLs~c-zSP@Tq|n&UUQb?{8z;eDp@Otv$j=b66GkNP=h`19{0o3ViWk~ue4bCF5%o{o!)`0IV78Fhs1Xd;$%r@i zBA$qjMqYDLC!d>)qHPqFPpuUZVWdF8VyH^McKcElrZ$jcZG#gnGh3;$X{3m%xNCf? zqqXSMPhW7?_%`^Xo5y#=Wu0N^B`79HuDn`G6{ad)un=iT zbm2B3l=o0q!yM?$Q`s!;rH)$q3rvK{u}HCWE0A_ztm3mgK#U9W8CQ^oXb}pHN7W5E-=De*{^fT$evsHiOOXU^H@<@$=Q@Wvt zjOxNZ6-7yrErw7hY{n5zWH?it5Xw9kN6;+#3(fQ%;)GtV4=5=^m1WoCV|!?w4L1%o zB#DW`vy^>63w68U11uK{K;Xf|8Y%aRZ%*u@+vY%88m4l9C3#)$15j#l7RG?){9iA9N?( zHr%+EO>T9#Wy4vp^LQK^gQgJ@E##s=8mmPJ6#OLAHVfXls?)kf2y_i$=WA0{u&6K8 zn!>Z-(ebUx4LYQ0f*D1It}t1Pmpz|h)r<0id?P+&eCtslrpB*N_5?yVSK4Dw^FP0? zXF1%`uCIo$QBvJ#9W)eQb6nMR(Z1bwwf$bmS9zcD#r7tf7h6sP-OaGa=U3gnr^kkl zdJ%0>Qx$S=>Z*F6bvSR-cv&6iy^fhdv$88iv+UJsGdk+Ae9|~8`1aa=S#{o-i5f@h z(zC==$s1K}V!F-=?J9qKVdn-GX4Mde_ymf^-i^h#(XP&@Onz04_p&`o?UOTqPIt?0 z146i`!(2?x_p(#Fl}e0-mc~$_A;&>d-VkJhw@OtO6D_?Mm&(v2Js(7$#FD#-!W+zd z1Qe+1WUNB5Y!Yi(z@@C`1?H#Ea2mBiq_3)P-Pl;qZvrG-vd)MfQ8Vdy{1fYhdaub5 zB%<7s_}U0xuppvN_y~M0FgaY%hizar#SrR*4JM*OwRnGGOE7hw-kob|K|}vBH@%!d z#?8Qc2Pe1ueR#IgBGG@et%nD)5HyU9S;pCHjQsS1iL;&VsowSAC&~ROp>ROe5CXl6 zt6MAe))Q2FPs3)|0|hTJP0n3dIk!YZAv$S0W7AJRpS?JVmT$*6o=TgVWR1}Ob8kUx!1eZo-MiS)4O3G!S%JR*LU9h z39L((X)e~(*yYjsMfgfB5!=k(kbg4UMFhgU#IlJR%1abiotEL$LK6~9={brjJK~#; zVcQk$Edi6#HqseGV4p<=nJA^^5d5*q>9{B)umDaes ze82zIgt|`FJC5r|%Dsl}&h)WgV`gihkU^%n*hP3=LGCbN=Tt6i%lfZobN70F=^2TZ zT*_|Rdvm?&7PecrL(w(I_i0z#_io==mmQFH&1r&$?APsRzxCX=-v7?| zo{G?~M*FYzWM8MeIvp?D6JJCt&-Dz8oWg<))Xe~Q=5$qU$c{P*`Sd1#tt7V~O_YrL zkwLB}rqoNFwe4YDHI>rglZjGdtG;t9blnRLyK4^^ZgBg4cce!x7uY~?=r?K(t*hL_ z>X_kNdwQ8b$`f)0%e?_wA|wEVq$e1NBxw-^S%&QxWd-s@8sx zT~+v^Ouf(9*_ZmhCw8OPbf13e+&PVM3ps3o?8oUXx}A5>EZZ&6dNp8!io2dA=fgKnY1jhxV273$+B>Ta`rn_F+M)W>Nx!-m;1BNrz`kgJkh zSqEw^uRC3RQe#5j8=a+BJ>4rXN1N)pd`$>t8K%a#Cc4PgMS49P-;O_Qtk)esljT>w4|^gzO|!RW^&m#C*U-3#t$T3}5aQ@#oK|RBLg@lGIPQ<-PtU7j^E1AFQvKj3Bjf>!S z`jpRCOd42J5Q%Sn?m7M-Wz9Qe2_=a#hkvhN4OGD$xU+mjSR{dlJfJZxl7@W`w)3-I z3!N67e#B{u6J!53BOD@{hWj&w{9SZ3@NuzOwVlH%=`DvS1abfkuIY9YmXpYtH`F+5nnZfd{FRev`H~}FUoqfs zSe!(9s8ziN>O+)G2RD39C3a*X>w)L0Ko>n0#$>ey6SR#6r;vOj~cw8ub5ho zt4pm-;~VwixB|6(U=wkJrst7&)j#EstVcp`AmKwh<72f14S@u3%dl@pZ?>UcRa40~ zBSEH)PgH!Q+)+(&-HN58Vb|dEIgc2YkzNDWg25S!LaoM#(ZCs|8)*SZn!&}SN1!|GzC!#)MC%xp*jkMPX7XJNvb8l9ub(?^~CK1@W(gsp`BipZZ z54xJaf8iB~0;RN$sxvVYKhV zt-N!aL}&JE*Nd{}km_PxosX*g4mmq^2HoQrXW2lklw3y698sI-%oku0L+K_kh6Z5u zk+xeVT8Gllm{zvyu3T4;;Vz(e@>b+2>lS+FXP9p3-fZYKODFlJ^N~=ms)^)rgbgz) zNX2XIM$O;{Rk1bDgb^mX`2~sL`~eCa$$m%Ae5Q$$`wEWHf?vCemJ41JHMD_+%qELw z@D=}M%1gJ`?r3ciP&qu1BaA>!(J(E8XhtvG85UHF5l&?2#PtYvfoIoce?^dh)|LZB z1IwedScHLQ{fr;~8aM@~`bwXp+Qg?jHU%mNmK>z`JDQXnem2aSh#MN z{;r{0#C(5BSiw~=h`|?zoI?sPFvJj|LIfG5#R(HuXIlVQFElq4p@BGR_uR_r)xZ&; zrcfp7!aw4O#9)hI{Y8*yt7Gm`nA=D*WZB0`7T{@0MZdR^q07q7`5!NUvNMh%J94+z_ z6JsoiT-1Usx_lRD`fWzZ8U2N!kGi0mx))k1no2$Fn~-6Y!>9`PLS;)Zt&i_@EVbE_ zc5LSPNEK=<*q|LGxWy+(5tN#F-sOCouJJ8bTE$#dD{oZmT+^~%XohRp_EbPagQofE zzTXrOom2Fc#^)p^?9;mlXEn$d?^?lz)TX79N2$|07S{}ZgUl`eVDjF_C0m}Knkt)i z=o>LC?kaMqJyG(!8l8QGkIHvc=X##IkV|c3X+|^PyM3!XD|4q0fk96sFVn-!6ho-P z;El@#B3zW?W8!=jcVH3nkPFWN3(6mWU`bt;gmxb;{YgCi_PFYea6Q@_pyje zFxyTYok6BD7Ld<-GQ4@mmygH8uDPx`))LvX-l!9{na}O=QgGhW{14kJ7_H@8`$OQ1 z>wTN4T?_UJZ5eFvO6&98pvB{;t~T7C=i+Q2H`@cyGOK?ZIc&R-eZQuD;6#c?GH6|B zZdhUt4UhqbMQZQSA_yDmgiW|;H)W>gd!OQ2V^?SE9Y@!_XH1h!L~dhs;->T2#aJ;E7DcKRN);X8z`tQnzO z@>_RF&MOZ4p5Mq(NUzgXs08B+n>+fG&A@8s$9jseHSN34mCvZH@J|SvlYZSU zQ#7@K$>y?m4x0XOcq88sCoFH!B<(?xJ97sV?*7kiCFT-~wu%1syehI7PiWh3?uD3k zNuTN04BR$<70hT1UD9yV_^4?Off_{LLLep7MTmb2$0kC)ctLD?(7<#L$~B?oQNtR-ZbV(_Xi7P( zAVZ2yHj^!J!!i+sh&t!)zSN&`M0Ll5jLr!klo^hQok=g{C8GcGM^ZalghJEEKN@H6 z671W-)uOAcU$V`*&7*zI{wL9j%$DwV9YK?5Gkd$u$?OGPO6kzrj$&)=@^u(UR@0u% zMZAmkD?O_W664&3*a38wny=fuBZMuRUsdSBdb8r-q;?IBP5t5i2DNcKm;ZUv4@d*g z$Pvb+G(|h4syyxG6kOACuA?WA!>xv1Oo1V_^*0i`29SU>Yi}y-(DE#toXe1IHJsso zKhp?FYd9XaaGV01+>kp%1aXuypH$a_7IriZ6a^wAf-IV|1e+uoNabrxfg6m90!hrE zrGq(33bN=gG3f2lIM~}bu+ehbh58Fk=)8@}M3RbKC5^C10u~c3VG!yDRF~3KujpNa zP1v@;&~8C1eQ|Pss)~}{0BRFLIBK*&8mmPJ=%ihPxTs=3Bz+)@UL^%dd_m$`_&$mY zYeXTA4=Mbuy=~Jq=er5fcP62Kd)|)mYF`#b(?C(+7HU&MU6cx{lTA3{ujQ$QGY+fc zkH#fW<1ndt~7* zDM+GyVQ)2lpdmjL$YO+0TAV;eT#@0`ZxhR_WAUiCxIR4PWWG_CgJ`O`pRn3vxs*AH zl3Lq-=LV3S3?`doNWSYSn9~D7{FwE^b{Eym^VlvZeOfjVN9w%-k*^)pvmRY%L83lL z#u^q$RY}(pjrobZB?>ch-x#y81_~h$r#X4i71RWt;VD)Q6a}DR#Zf0r%SAxdX0er0 z;}AU$1bUr?P717VCBHWW(eudj>~YX zSb=%ZL{ZWZ=vI{F_JHxHELPN_zhmTLOyri{N|~L4?A>fm8IN#JDY#8zd&@ZL4BQ8;sZKOXrtF1lv7iMH!D-`I#Q0BI}o36(Q@P!DWi7I^Rq&k+M^U zvzMsAI=GZgSXwDdh94|k^xy0-U2lo5!rxE)uP*4~``Vt2uQKhT&bezoH{+?o_T^kv zQ<=lUz1FDygpkJf@sl35#V)9kVMVqWLN)Z=t{QR!?xK#(Bq$mt)CrsMiVhlT=SFoQ zVmR7ewaMYj4r|KjHH1E^X)5(~F}EVO#e5s05bA&?1hN?6q-LUJfZc~SEq5jPtyc4V z3{iIUJi}4_hAkaUuxs##2BKrgET*1~bz|1GASrL5E||HgkmpA#3K^7T zLtRzv2l+C!o?eSD>l@YkTl;o&qAn?_MII*4#0?WxuG(bTKqeM^LNoDl)Zq?HZXr-~ z={+x~E_Lx-I+xRg4rpPrVk*c_nUvcA80n78bq>qmtz7sK8fX~1ceQ&p^~h~jFY8p` zBbS6Od{KH>r;^g8maF=Ki4RbXyAkBsdSz|E9*Cw=ez~_x7dc^K z?N7!H9XseWB$3jYlkj*4p(yDKm9M{9fzyYi8kRtd&=WskS|tTpj4;Z9qOtDTP4dp# z#CfJEEIlfZa%q79Z>-EOSZo5)@Ix7I!^<2yG@5aw-u6HZnRQk_PjlLWHnDfsQXSRe z4OorafMa8PV+jH|L2@ts?G#C(q^K4_Mu`@~tZRut8X_3D3`c#|=+)6C-DP@afB84|y;QLnms0Vi$B zU@FCCoLb5AoVoFj2`VKT*ANE($0wHS4rel9FWQ>^pfk#<*6Pc`DM@PnFCo)$r&qdgSD3v+1G52{R zEOLUa+%-J01wrnHP_J3kNw3ujH24RVxke4hR#bboF!4~?LzcHv02SA87bisa>{zpY`&+#)%Yd*ZZ_WNP7qVaiFPcW+uIR7X8QwYMF z>{mM{fw;uMNt6_1@dIoHYV$bSjNM~n`0%One*Pz{XE@tc)DTt;+?}4X4ra$v3fL7z zy`KppG*pg=XZYoh5&>?w*OX;{Yn-%*Wj{E)kab^tBnO=|cj72Aq5vrh= zXmJ8LH-1B`CK(omed1Rv2ZAPap9VxF%PstnRH(bzy8|(;lCGcu5rSG)syWwe3ukh^ z?#?HuhrZK#JUS%E`sBB_!0`>TD2|+i9i&YmPTqI9D6}ynPp>{CO~2;2w9N02vDnVE zKhI@(uV->D%ja<>&oens9rTI%Z#wVEe$EHizy9}Mp#ChkaPO%9R;cAP)A`Sdr1U(( z8Q*7e7FhrN-~RpI&st9Roj8${!&!_g`b`E%BAxJ?fB%Iotm%xjNV+Aah%Nj(Ak;IZ zGpP+L6wXQ4*6UfOEYG9%8=sNC&`zhWlD226II$gPdek#_KOMP7Ln7zjoZK7Ea1ezv zzR&u8{{0t1l=Q}Zc(14;wW|mb?~oZ5y^Wy)P+RUXhd?Y7GJ2XS|V8Ul)wBg zi#R_Y6SW?qQ3ZJ7`!m$g8jO>RuHk$FLgtNF2e{RY6nOhJEJvU4jUQwy_QFKB9NI5` zQY|mmtElA%id;S-Yp8{PIxILWoCyE&*9!SeD<`*t^(8tMtOG!dkTl{JIwPMgIAOvn zOd2xYgSTKL&oNmn$dN%m@oLj{Ng+YZ%!zVZG{l4*$|I7(6LI1c88=DClO~p(dlAaa zvLoezh(HRRqezO9THl#kocJ)W1nPwn`j^ZhSlJwi+bF9n5gVgCGZM5DOH)6fBr3m=A>6RVwAn@((6A+9UUHC z6raT!Vig+ev8m4KrX9AaaqN3WPxz8rUV1nZewTqV4uElMsLEJ|?T=sGA=KtVR)`Dl z+UDEzS{6xB(TtLKY1IHy;4H@%nyL;4ZnSmMUTSI2-+-Avq9h;*HHO6r+&zYAyJg~< z?=86GnZD2SQQoQW9tR-@VkgG1apd2*5J{+sH8=?m9XuT*x`Lw8#!)tOBkyaJE$MGX z@TkiGR3uvz$SXU7vM}8F3&)3~5f(|I9;-iDWef7)Kt!p?Lh|I!rjtt>ZEP#n`K3E? z<3Kf*&^gMlR&fg<3zq!WYM< zaOG1r!3sRO;L!wlMH@5-!j?E6iQ^W?qK!J)yGLC7qrt zic!{epe|mO)TXIwpWoXKGETct4ic>wJZF2TBVI?fjj9J)Z9N_z4IqVP5e)CtB$h=k zlXjPq!{bdDc2uWWkA0VBe{R~6nlbmy<|gmWR7?B5)Ig$>Wt1Gj#G5RGA1*|vmlY{x z@gLU0djL-VxUg{xp)w##APH}6kmyV>A@>IKSYcJlgqLU{sbCgDdqk|PUcu& z+OAhn2c>4Z@m8tgjg-^krM1gxXa1aQd8%jQnhG#^4f=SGw3f&sCJ@d zfKA^y;2t;++q-ATW$Irg|0tu_|ZUIEj$Jx9uY{h_HZqT2%H= z8j8=YsuXM>iF>JO8R*|}>mf@_paIYFR%Mlrt)z2;%wfX>w_0e3h??G^!=0V)dECEs zW1~X@S&ZsPpPcW4EK71MAdB+m3#%N}t`Qo|u$X8OXkC8GZ;%9T@;*d_g068@BVT@% zX;G=G+Z0cuq9;c#{|v<8oPD}KCFN5Wrmle=dNkcn@vuB`6FYDkcd2pEJg#( zdL~qcRni-x03^uOl;dpk7Uc4Uriv^^2-yf)&icsO4e1-4ChKRYDzU@jG=i^L3#395 z#X27`Z%r8WcL(e6+jKMF@ulr%@YSkwp`RmdL)P?S&XR^+$~NKtf+!2OoK{8Ir>oe` z{je#I+H%7*OXDrn?%!61yvoo-rA1;cMI8(CNtId)cxzL|dvxQ3hoTMprjpy2kxg^1 z4Z;3`LRrSDB;H#8#9^2`?eY_rQSQab4RXteMT7>@_(qP5OXt92i8}QcR8ZGxvZNuR zHo?|wU?NE)Bw8SiRiaF_hbR#gd2HhkWD#q6C!eu2m1LCEirJ6&HGaeESoYi{g@lD) zDG>2SwFoj=YI?O<{J_*2S~sS|3uCgC9Ick^7H*#qsPTlviQY+ZL^a_*{;|>0Dk=Z4 z1@ECX^bS!Vi_x6go6vY6*2O5VLqmy3h0M<(EJ7Q4uzBt|bSt6vPpi+dOPB|U7w41u zybR%NZ-tap&b2q9UnSCJcn+j;tN{{Qm#Gx^)8!cEe9Mj%1G(5Q`N zmXyW)*)@R6#z1Kq0HMwSH*9==gH-`VFx7AdtdfE(#sL`Al&Zu;i@>G*u~?l$mJ}LD zW0jZ|pJ1~YiFRc=hx=1Vw~2z*IcR$0)^ozpumw`88!S^!XZi~wKcRyBDS&z%)ltW| za>ItBnvI+>m$2R+E~eZjD!=^YE%t&Zx*>(I#R;KYz_y^;IY>$i$B1e%xy5rg!JB0> z^_F3gtT0GJA|Bj`^)LU(`c-Ws+;TWR%G#fjsu)5XxHy4~VUS+yKpItpMu{aCMCB(o zWMw&DQITj-%7H+}cq?oBXklv{ZK_mXFbZC*&v`VUF zvXn3aBUz9=w~1V^m7FwF2Ufj^d)aR3;#}`myWeJIqj{*O?}e+nBRgf#Md)KD_r|jl zx3u-N8#X3^c|NqO>5{Xyv%l&w#re2lgNhiILC43i)O{5HX2>PChsS=NT70uM)%WhFyn!E6oq~iyv;#UA3v#@gZm_Q}>k&_mv z)D0Ij>3mg*7MG=LBKVwI@nfTOnl3c2svo2*m==o=kc%(l#!#Xb`{+K>@98tA{sKeh zbmNpHk|wmyv(@pBy2i7y>oa=%{VKAW5GBboOGGM}TK zz{W3sQUJI15zHf!K-Ew=;}bdunNlC%@c~)_Xh4KwXGl>}?=fiB1XB5vLgxWkS?h(B zBWA8DNMqd~Cnl!%k|VzvR7w`_kppS=6Rq)_RF=%oNUusWQx7>!OT7l_N~L1T$RSi+ z5H->!553z(TY2y2M~#BDhF|_lLzmW_K*I9D?q%CEer=Y0#t&L|($(ggoSy}&s2@Nf zy`tbEDM(}GXid39bO~p(RV|k}rL`{k zAWPU1EoSM@bCjtTLl}6QIAX?Ti~(dMAH}(iZXmskEQsO7Z!_zai97l@^{V%41y4L4 zK7;Q8mHvm_X5ZSYyJH7#w{)Q9|8&}Q%8GX69=_`H&oPhQH0vH>IySd_ET{jp+U)u9 z`fr{uSL-nBC*)O9NN60gTuuE`;mBN+=T^a~_>GgWZ8CU814YevL4y?Os226) z(4_40oG}aD%0yqsk@>cKHjNjY$t-^h#T>m8d-VMYGSI!yQ6&xc`ymvumzH|cY`ckU zvW5@^cNzRQXcmvW=foAds@o)bDU-Zqxl>^VHv)2{2WB_^)z#T8xe5Y7_*u!Jb%_Yp zfN{^;Z^`rw?q0COn@@r{jN~c_xB*>TTqnaNX1T=y)@c^k#t$ zh|*O@`?>B<2#FHmP)H6($i^m3RVYF4BczL_kVzowO{FyLNRa6|NDts!Bz{{PM!b1` zoTdLVC}#C~AKiuZufcFDE4%3w+JmY23b~PxqS70THkcLzaez`+-FKELD0e6O3c>x@ zyHc}0z_v%%ct;)UDwIwc=SwVey|5DPulXRG21so+qj(@Yj9-w|IHvlYBA)jDv~1UA zzwjNFd{%kPp`%~&c_L;u-qO-3om0#$UXootqUS!KiVTs&zurxm) zP6Cl@2>bZS1QbUe-ORvS-%NcOcR~<{rZnf%r#Te2E4evLy?Vk#mT{Co9YT&ouQpqNGnD6#HIzm?c06eXcV4;+@E?-j)%P6Ba7wzRA65e}Tygnrw60cCDv zQg05r!|kR`!i{xIkSP%a(@qc-+N{$I)1siuyt}d=P)h>@3IG5A002UBay$S400000 z00000000O8003ofXKZP6XfIGp0|XQR000O8o4jy5+0{nF5wrjR@TCI)5&!@IWo~C| zX>({VZ*_EVb#yLtcyz4XVUioU4TjxbulnzQ!EfQWzpsAR=3?PL{k8M~!pY!R_{ULwlcA42 z;LRwirr?E^h!nPz8My~ppbf~Qv#p3z6I`v-SBqHOmQ6)EU4!Cg^JZr>c#4Is&h9@L z^rcNUq} z#c8lWbo()RLN1%m!zwQA8Mex*I#IKH5M zxw_w5ts}$)zcVZ^2n2%>XR^q*bMmWm%b_e4Fuo$A?1FXl{6AXjJB!dhDRz+csf-M> zOBb`ubBTXgXJGmtGgEk(HT~}`@n=>YZM>@gpHLY?Fp_$;7qq$MpNBx8UL)20YqZSo z3T@_h?y-p96o#g|qGfAHx7?~_IUAZ#--Q1fe*}g~YuqlRA=ycm zMUdDvY>#lruO%78pnobAevzXR;X=`xmei+YN9Hfh6!hoOki)(Fu1Ne+p(*LU3XegU z<6@?u#iD>Nmg0yn&dA!cf`9vE6>Bmnz$$zEYG$d#H+!$fWz`0y!=>!Vly zT9|-*xl`4`_wrb@0e&UWu?e?Ljg91XpR_Kdx$otx^eO+uWD737PYVxkB`eUVWT%v)k z4NCcKT3)aW!tw|$ulN|0@dB60HZ!u0vCO=ijJ1xj3@;;(p-hj%`lK*c-8{2w&C4#g z|A5$j{N5A9WzhyAEz*1_CjZ{Nyx;&;ErJ*`MzE0iTb4QWWqJgAbyP~NmPqQ(AlXZF zmDq{`o_my>X-)Cq;ubdB+@XFJS_~A5aL;IzRPquLr85Kfs;Q{u1SZ;~(&`u#4GE4K zAHeY*@~CoQ@Dtt^kIP>cg=_JUXv(q^h?E0Z;z2AZ*diNK(l0&PUY5-^kQ{byFTm*~ zG#-oGgZ9OT9^zbR^tOe7!!EWv8AS)Kf6C2h@eAa8>MJg^+GZ;|&)^#z-pBGIL{`PO zs%cZ#FRx;ARD*q|PNis7jz+W7Il%#SUxlj$v9XLGL|VeX?i74w3%(|FNBA!_QfbpY zk`+~oMZjBIv?#t4sy*aCE?2m1xD^JsrqfdM@&cPY!Tc@=Ob*@2X~>l79@?o?ZAofa&cEC(UEO@)|TZ97K zgCF(kvd6Dxq3Kq2DYAh>{?hQY(YLButD&?oHzvF0WeNw(=rwh!S_pM*`(@)VJtsO) z4^0Rv&xhSRxR>ekHA{*O;)MMDoks=@j@1atgj>5KyH=bamH%o%?e(3-WD;$ zqGQa3O?z&_+=1~(VZ4x$jJ0lWvhR4J0Q^)(vJk?my)t|S(wTirnK3#X`w8B5Gw7Wv^s=c-wq{uq;fUqB4%MjQ-}Cub%C3C-J4Lhab8{! zY{ge!&^OT{+AtGa2szqhjE`kgiPY*+gu#%<=36CLqU1~rLcNPyCe-IzrTTU0nm_WK zG3Z(!WK}iqESUoImU2#;q&nP>sR;uJ?fVS*6%3PyfVSEbbB__yF%UZWhsqyXN3+9m z6{hD}r4KJrAbydhmy(V_wi#M{it4dl0uH^t^F4)Fe;(or2Kt*w$nm?ZUnVPsd+zT% zu_ikEnd)l`g!FY0KiwX>XQ98Y%OCnd^RAjG@>oKls7E#m51h-Q+8~#B>nXQS3(^)X zhWXXN!P2S)`DWr>F#J}Q7aV*EcykPiDT3uxj23_icx`!fSv-(-1cWj@4xUA@2CpWA zO(EM{X$YF1xlce_flM+pLfHV6H(HO=_4DD*GOlTH8rn{6Oc&gIMO&d6#N5|Hfb zF{xye9#=)kZ8B(6RSHj!zlCi|j;_B|W>B-*HjZxH@T;MeCB%NOte!mmq3YgVfFPrR zjviHCN+`wS@>6(DwqY~RO`!gJ8Raz@$Y zZ3gyJy@&qDjJ1xjjQ!rdF0TODK#qTD?W!vZ#9yTv6bUSZ4qusUU^cL8Q^cTU34C>g zel@GO?8yc=bk(%M>!auC-Wga;#Pi}A1g2IkG3Y2eVkF4$VMX$PpxOXsw^rhPwXE;r zwgu-yhUuPv5v*S;f2JR5E#jpE7Zi_AgJOH_#6NSU>{0da{M=GPhyF~;uINkK{1s>2 zh5Q+cnZQHXOf#4yM#h_2m}>gEh=1~A<2Z)E&867o$)jXA^x`rN%n8vSi;}cypXL%a0ZC)mAM^pzeY~ zNPp?+YbSDv|4N+C`fYIhAJuPcZq=7k7?1&Naf~92w_OPY{h#9O(xK^(%DlotTVCOm zfuogD;U%IC1lnoPA&(-5U1*Up+QC0~vO!?iNovfK z3fN-FCLK|hs5WN`t7M^=yD}<}?}4{_5^R!RbT3WF`fU_h#ah=SeXj4UiO$yLKxGm* zC-P$uP%FQE${Dn002{4GLZl`Irwu(2-2qBmFqZFu^E zwnbnXect*CeL+=epGy%4nW1G60_$iyap5IOu%-B8kkx{1uV3sHY)Id8@UvC+H=M2@@pahyg`#m<*1pp|@IF*#W0~dY+wua|1zbjc&nILAQ?}qT z#U5w@+~0fn{TD2+!y&(d4D`*L1KF0sW~=E$o@9H={!Xw7sa1;vXJRkRMb`44ihi1b zEl$3NG8|DxCz$8Ly`?mc-rKDSv8LXcqSqDVi@L4lA0BPcmyO96Wz?1!JnnNm=7q@y z6tf?ve#5APHq8&o24*nHpuAnYxpX{wWHN=f=w?5c{Rbi}o*?55FP7*l1IuQ}Kqv6z z@Wv=$bs!^v1P^iw?;_gb)1IC-`$Fti-CiTZltFxW<4=uD%B^05o*=&F*}3{|~+X$x+4dRnUK4^{KDU6fH@F6treys1F1 z+sl?wMs0sJ)bFAuG!{(0YjL+ag#5kdm#U zEpGP+p+_mYuY@rCEmh44h`)`^qV35S#ocVin>hnTkA(6`lQsK7$UP)_pmr~qdum~e zGNXF1vt35LN1**3b)6QHg+Ms%!qyY>PTr~NK>^}Zq3nYvE!?~6F3Q!kQC}1{m0V`@ z_xmSQ8}Q8?U8UgypLa&qefi4vP}NLNOPT7)iwA5^+eLltW`8xK`j)~L+P@;yCL{xG z)AORZ&)cM`l|V=YY;B{Esjw%?JIN!D;E^!L^)Msr=KXdUh_rCculHsH63qm&X~V@R zjC#NP1d!k2@&cQXMiN5wEIb&un+I$sKb$r@f4RI_@r@%HYaMP-28X4ZHpi-+Og*;r zMed6GytS~$`fT$J3Ffosv50ypmR5Vx-u^rC*KdCq7nH>Sd3HOknkV1FUs~p8q757l z*`poIbg(-1z5@+dDP$Vd0`6;$M2%@ZNIxm$IRIIbq>UGiPzwZ66- z-OCnPc72_=TzQEM>a=J^n9ZY*ISE|uL9j`-rtRW!=jEqj)q83h-p#&np{n4$UFu9I z+v^$Gqg=n%myE*G&%8KSLpOVYE91=*Bg#^90bcY8se`hQP77ca-zDV6UsScn1tgLM!o@wR zIoX~tuj0)r6Pt63V8Osj#nSgz!|Wv#yCXatZ~d$&g~&5?Fcjec_GF8|78hUx1*RVT zYwrq_Un>UX_)Zir4QYs5;kft-tmY@qnC-ihfJ365b=gCI#vDbm}1 z)qT|@u_yBTkTt6IItqdGo*GE}rW25?iJ+->hw6Hf5#l|k@u@nKrdO?ndtM=1#fY*C zd;zgB!y$WM=jkG2tK>ONjjea{K!N0Fz#Ko!hS94Neq z5R!WukS)=6WTu+N;LwdPsC5L#>k&1s%hHteOF539^f;E>?|#6kgVJM5tpkekCNym* zHlRj0bs+AelMv!_j?}_dC61)hc6eac-rfBQAT~)In()Z+YSemG2(=UcZI$O%$wu!*dddmQw(OMx5b1r0rx5#m!iB~l+n%FR7Dvg!}7B7jlL+|sveug z&C-S79&C00Xx;Af-F)x`iH{@OfNk`JX>-D-J(8HD#r&rML^W-X74tq6dR>dmR((-`Crh>!D!(^_A8e}{ebaz%W0#Ci-!?Cb zP4q?iQuKvPJsjUyW{=JCcCnbHP3a!~hZ(P@x$rbTBPax3{_P$Qyq?nIt#bV%+icLX z)h5}N`32Qh{f9zrfJdn6Q+3Epz9?T>j%6xV>Px)Jc=OD!DD&QowQlcPEF=~a5ML-~ zKctSDIil>mXLDb8Z;wyN>e!x79lP_+WAr|pEWRrbEC%u#4QF(kb zzJzLes>1sqvnGc!A=iFax9Das5K9kN&j{JY&LpMGz3U7V zpL=>m-h#(Yrr|7GCSQnM-bd0^46{DM;l zWjN0xRVnm$s-dZaa*yO6>W4Aflwe*>Kkd4JF$e*c!M&Ysixt=w{B9 z-+HBR@>HXyueg>HJ%2T~Vzy9tBM$U`_#1HlIoOuh;gCm&H|GFM=IYGx?$pE`tnCF>cEqkG?2f{o2CaO`y>3($3Rk@;xd0#tupk z;vTQig?uQjT1+4WUbZy%H%`8o@#aNF_KjuoKB>Y7Ns39`G{jP+OZ@}D98kv6D_ntku;mWdgQX1}n(o5p9ns?v@Gn`%lRmPWadi2O;nxXYP;= zXO8QG0R+ohZp(jat5z{&Y*X^aO-o@5jD-m{$=)16c6GF+gSer%$0F+|WM3%mc5!~b zE3NLrcHS;Zx2ngRW!n-_z-z|rQOoRCZD#r|E{~mI{R409bU?Xc_7n}-7n~aa- z4rZE??(Y0|{m+Ne!~(aQ3vZ5-;6IQp$+xP>ba*3A9;L%O)hyd(=S-&hLUvJB4^3#i z^A$Reae+>)uj6b3hy2<=-7V;wGkAzW3f&H5s;_#ae@I5LBJq{?ao-kV+h~2^v)>@?_ zO7EN7ge(Ho)m=niVz-nYzKyzk|MgvPyC|d2o3YmS&W@3<9;Jt^j>g^qr7(FWb>~LUEMYdi6zZYde8u zCSXH`9vqac>I;mkKH%>1rJ=2FY?8z)pcTn$TOjVMR3*gV4C5Y@Rp`M5J`mE>xgyS5 zm4*%St$^7FaKj+4-UJaRGb9Y4oPS)nJGq)<6$Uj9YHFvmpz2om10vHHJ1Qm zF$|+x?WdzIy2SKh{8f+*`M4M{pIj>igHqx*P;#pqL?HwEf_m+LsX2wuYfIqqjZKuA z+J4x;gLmMP4ajVbxD+987bE5aH`@s%rXCgtie%_PHo<;birbCjupruCS0k@0M8}p?2B<%N&H+9sLEGSTKp?BLZ7nz!94e}n84^T3xFG6vQFm3M@;|h78OTQof67@*d!gfZOYfx5X zt%_8Usdwq~1mElP;A!NIP^4AugNQj-?p|>3;$FE1C&R@yW(0>KkKm8$QmEzHyjC9& zYVVk0G|Y*uze)|t_AI{Wp*((#Kd9;yYU|&}R!ZK|(PYXaiG%U($R2Hj;(um^pSb8= zo)VxKZV+qBZwFaE_DlXZyU2U3L2l8PkPLXK!K_u0nkUi2me|*fDXpYDzEH%RSJJgg zkX={u+lf7td5eKW~^cBM@CuTulGWSaW(R% z`ZTrIt>^*Z*PLKgnnz<|3J=7$lqOU$-!nw2N)txvVLi>J(sg7F*EaFAeBEXSwMrQG z9nz{hNPl#sJXU#l8@2tDHlcrp0`$<7ygka20oI`EL8Pf_NhDY@L06V?Anq~3Y6dO& zc<52qVvMlABLfQ7morR>O~00%M}MhLh-WFJPZ2?m`l1s|9j(5gto#eY%9ujY^}ukW z;q;J$Q1>{@81!-22soTyE1jP5(yS=lK%vLzPz!FBdMU|g_w^N1hvG@ z=F?o6F3n9o4Ta~pkVzHg2}-U(-kxtXTR#qa_eF2r8_EI%ZiBKSYx^XUU%4yVa!}zjk1{E;MaG!u5#7YX@YYp-T#_BeCq}h1G2;5i7 zzL@pw5rykXkhSUMQj?@_E;O-Wf*RfRx3_D9(wuP{4x@KC%k?Dlc4w5$@mEQ@;F_0B zaNQ;}>21+=u%)ahZz$udNPEm$@vIgdPlNK}scq@oP^7AeIq#l%)pElc*&aW5i7r#R z&4#N5ZKt_Orbtz7d9dUwc@^a=Xc%Aht_1%yEpHIU(@b!Eh*zP@e->oy|0^n%cbH8}Zs~`0Y#V{oKx`!@D=4tjP7ZRNA@7VEw>u+c3s7 zAcI?g4Od_2ch!_!+hx2vWPLw`l_yzM~xJPfszYyWuDjnuTvh|(l4p?FyKg~1!Be;+7qx0@AM z;dr>>va$C?smec)@D7Z4MTqrd8G#W)Li83E%K}pcdyaSmZ>Yb zir0cPH}|PST{PKrzM$W$FY$XlJC&?YfWAGojkUhg#5b!~N9!et9syn48uR1P4-qlv z_Ljm~*n*p#fcqc77pEj|iNlZ3|3}aVKp7ly!Hbj>R3|L~O4S&@DCe)C&q^C5aZ~h02+u+Med!4q z6smDT*3~D#_}~j*e)0781C;m+6L47h0{c$Lx;04i=qtBnPga|CDm*3T2a-@V2d(l7^xLvc0L4`|FGBnVI_jaae^Sx|Zr=c_ zyrnr%;?=r`@Eg!0h+%)3^A00KTveN58k`jA9e^fTPuUycwnypTK>iXb=pNEn6v-|@ zb(D^{O4c6W?Q!C7fb$;yd2@g6{O}5VynqI-(AQ1zi%Q!P_SF|iaz??N_pc=f`u>$R zrweo??u9`qadnTf*Y|sas+@m@Bu?sq^@Q&hS?SDQbSP5AZ&s!w{9|)HJw*;XL>Q!s zg6@@MdWypRJCeluj!OP!wdsHmE7tN_+99S1<-p_-&=P-0e<%1Eho>m1WFrNrwfu!a zi@eE1tb3KAmVsZYpoiawLKlzXa3cK_ahl`d0mc==Rir8D!{uG+e?|e~?@(8l z@H09}T&q99^lp!sbti?eVxYtiRuF%U>6LJLfjRysN&@`eLFjSPGnFHGZT|-JXP~Fg z@>3A6MLt{&&%tgTMPG6Ca2W98$`_EK;*Ub9Qt3ORLSrh`G14{ z1ix$V`vQlRuS-F{0S;f|MmwZqYRcQiNbo7HlxNMF*lpiFCxzNPI($DM8WNudwZ)v|b$xS_5_k1`fp}gF z`rm+i6sXQ~;{Lxi^+~Fb)s;FFTAAcsfhM7P?Aw;1cGkC%Z597m3-@5S*LP#K0b3jj zv2zf(87Pu&z;;q!h+dQ_@!*bx@{qr<-7+<$Wz`046^7SMeAW`ilMF8s`x>sz zYT!Weftcjfj*KUWNlxw1HpmYEhr^{j06|aPLEL)tg~$a-zk8U0HyTiJwmdSI`3&I^5kS;7{YHWqbHYpQjqK&c5+^1cvhlYD*}N+~)jR+h8jBgqaQ^ zl!H!_N1BhkgY z*~VtVCdBVGryY1WONzv%d5-&{m@+}FXZ9$>6VsOplWuk@sz;!c=LHjr()KF{nM@xD1`-t@D2nY|hkI1TFwEkI^9&?|yCJitdvqF3z z5T=mG zS!CI0GecK_#Ve!+rQ7QkvEI-+*>ostBXIAQnpCps(nS;#u?20{6DP6Slt@dNLWv** z+e68AvSH!@vpz0n8~;R*t>`Q%f^`|O0pCDgwRD^9qsJDXETz0_*&%KhKfH&vnf&vF zngxcjf^`SvutJ}KLaf-vCO=!!B(5Z6P+uVa622MlUxQxu23o{*T8C7d5K>(b@m=*Af7^F6nGKl+7X5pj14b1&ql`u%w5a zmtJ()0kZ;|29#|n`jUlp?fynAKG_n{HWF~C+GK*^Me@~(o1JWJ*cZCEhptURPTP6A zD79G~wBBqsW89W)!gf*G9=4|oIiiO=cgmA#@I`suxD8?3>t=1Ttu8xLSL`SqS#Z0& zJ!H6Vj#ppgFDkWJ9h;4t<-_We{UBaT@JTY=VM(?bpR9uPE&LZ9dQh;%^DUh(GC3IU zhGA5come-yp;)N*?DwOO+eFHvfzS7DW1p+f6loaMWTP}$Z*j>VwEYv?pnRSKEC*cP zz^3;_KCl0hwKIjQ%l9KC*TomPt!?y0X}evu@L|Ol*JgEWS4V5M)v>0ljhORFx>jw{ zL5N;yl3zr>P6^`!C}gHcT4AZz>YJqPvcU$Xxh-qknJVrlLC9@MpY--#r_Re^S8Y3= zm-;tSyi=2TJa2xU>tQ3%w8vW67c>d2hu0;3Rsa1tuSM#XpQcQXyG0Q4Q=Dcd{Z#1} z_Y^Glao?bXHu_G{26{_f-W^nc8@5zdyZ}#?9 zY2cq#-cHujUN<|XzGPF1Zv?F~kbDCg#=TI^OJUdiMb(?S2z{!ixCi(D4fM1bWd|i* z8xA+LhZfyS(%Sn^P=fAM;`-65HW0?wrTC=$vKaJxW#S6;N)4q~nuxzCPu90ON@7DQ zVigGLpb7beTJoY2Hapq+{qJROkhLksG=Coi+BP(aHI&CHq2@^{+3_NY`dabETU)Ln zST!fn$~=-d^)%R5yhxERs@s0p^pfTl7%Ry3lfM<^taqDR^wb|jTHc^baV>?C%>$>3 z#MbDGL3c<)*}--KR%9pYT5%-qTQDFP=22jnoO2>pqtG@g)Gg>>OP znb{_$2?9N+PqiCGfdzuT;S#AzzuP2dqLqRsoQ#(#I2Yz`X+_;pLOJ7Yrc%4k-LSMv&nh z(HtKj2BFRA6(i78mGTP|IWWcasdB>U@;7VeqTM!*1JG}UNm#;~0yQ9LkMs3A1SnfC zC+X~-Q{8(3+KxNTN!?7-kgjsI&!T5N=W?E}yK+F$vt|shE;*f~BF9&M6U6n0miTj2 z)^{NThxd3af#F|e`DN+5uuvcFi&2i7v!Ye<{w{}`2}aVB#8qKAu3teD@gb{}9_3#| z1ma%@LOJ(z0TC#D;xN7fSbGmJ{HhdqNXIS;m*tgjxxzhH@ucCK8nO(#5D34IO6BJ$ z`s)~-aG{hu5k!%Xy(ZoXjh;BA!17Liue~@y_M9COuZcQjRS^OXYlBYR;mR`NMeMMb$s@ zUlkHvdlKrqYP1#{K>kh6ReO~g!w+3&j{-{N3Sm8wHwOI}(h$6FJrH0O2!Ytu#OYs}Xx@_K3= zD4A|+K0)HHG|Rb#cpG&>)^~x>b{!4F2j)gJ$U6%+4Lb}N-LyR*Zd|T}2T~X_KmWE) zPLQpgWXfXF#>oK08>6%6x28bJBWBqJ|3X9VL75NbXGS)F67(>kaWLNSxiRCHo7U3C zd`YHYjHwIBPp2bGgr^ldivo#d=M8aQ&kuNR!|;XNEMO$#4aGbGs|V?FHsx9@3Z&+O z2dXpUz1*m^!r+o<#sfzuUh;D(S{=VoFKH``@H{;rxBgxUOIdHiXc`ijncR}^&3AN4 zmwi%TeV{-IWADr@9x$vGlZ#9!CUyoW>UD**ixEN8(xI8Bcs@YlzQ`n|FIi0o0eLOESeaQj?pdNk4{p;{PFR$bJ5{aM3cO36hgzIDMR^+MUliRJ_E*p<4u zTXtUS>nrU|EwX{slu{Q8^>Q<=mHFnLKdaOAk%i2qnCv}j6L;*AolOt!irpI(O4MuP zdNIbK3x(DTCq)VtlXF7ZN9MRMBj36};-QeYVQ<^o$xiMTmH zGL2ZuF35CSGp&Y15n9++`nEtrGBShNppDlnikq4SLuT_0oiR`EF$Gj}a)Lw;l48fC7ctmM;A3| z7`yth(kUMx*CtG<3#G@Iw23&Tm7ndxSI9Dw?QTYfqST@w`xgcLvqlJGV{8~uPL$qE zIuaIbDTZi#BRL6WiK3eW*YiUCuDm7|{S+$-@vsepI>#>LS3E$rXMa_=9kYwf4;q@= zRo)g&N>xJ5I{|A>#!*bP>sGWy^tnwie7J{O! zM??OOiRQ9)jz-SYCsWanM=gp%IfSkp+Z8Fe-b8k47bvtE-oS*Vti}h(63^F~F3A+s zbahhL`9$ozR2fD~b!J(+hF`Eilf5IXZEphGl^i}@uMpP4pnvMRi;37n?pVSh)kFaT z?Q8GBow8sFhpcykSJlZfi*78L6@{#88r)?i|909qKy19AX!Gz!88NjO`%wZ`;#Qf8 znze`EKwFpMw&Ul#h=4aWwo8yNDD92XFlrYfziU2EWTrljA3P(6p42>HZsLaiU*JCw zYWj^a=s`D76k_6Xqc-9OsahDxra4@54#CjUjahfZaUwRW z@e3~KkDJ~=UUivJtY}uZG23!7Wa3L}9H5t7+}kI|n+4HP#% z@ZRufcoqWo@DD(CK_C+!8E8HR6}2v*rWP0A+tvc5^cr%H+Xvfi|2Rt_3ydy%?f*Ze ztVOCDC-}`N9?#s20x5b7KZyo8Q6lIz@qv2I z2^w=sa?%NT7somD4i+Gaa#?^*zU{i zf=l|WpeLFzZJn#M2r$j(E+!O#m@P+O{SYJ}{S+y8l~1m+t2|Mi4mCq5hZI+3{W%1N z|6@spF#cK9q84?!oZ0_ft5(qfJZy|0zw|xVU#8EKOD^QGI!jo}HuB>~NhY;0RQX8= zSJOmm$$+{K+WOvf1y(cSC0XPYx0Z0`0b(SN;rAk5YVtsiJC8YLOXAN;z|n)s_=*Ym z-T3ZDUQPt=i;M%A73>(c_#frjs>U?pfmC7i@J#vj!G_X0rePagMxPGD?D^S{+hfjfW zs#&NUvrB>a|CFOZ@~DNNOsm#IQ`kthLM1Ovr_R%5=bT=VhgDM1lY^oH0XCBj0+f1i z*vGuJ6G4wbzc}mSFnW=z7TpDz9>iy^6UxRMXl?tN#~*|9WI=FA9&6@WJS6im_;u46 zYC?U56_P;nh!aW+3iV|Kwv0HL6V8Q}Qja`Ti<0Bkn#?+)?jldkIgBd_m8N26e^t07 z_fFm4iD~lCt}JAQMTLN^DN<3dL>Hkt`M~*aj~Rx2Y@}P^)Pvl2NIi1chW%PeyTA}v zG}yU)BjSCJ$axy zSrwWwfu)WDXzS9h0P{DJtw#{>Kv0V;=dKA^Yw^}FV&>Mjh8YGnW1x+l2^gYPu4Q8( zZT`zpX@c5InhQKnWIztxN}uBICN=mMEBsFxAZ9NP1Sf^k&vh-t>06H|8`Jb#3Gnb! zR1jK+whM;F(0~TvtuUqaqQRe@l6_CHZ80=vcAB2c??p90dd^Dktfh67JQ1|=-@%ru zQ>%H*av@k{K$|4bT?o9bq7dA<&G&XeJdllZmTz6YBO20^H$GwF;keXORkJuRIZ`jl z5B5Y=k3kUmkO_+JYs%tre~j3ZTu*x&hm7#-mAQwGuOPnle!OmHkGxHaYa(A09oA_@ z4rgl2w*ynvl^^Xw1Go9_c0thZL|Ws?!7!lwc_jU;iTKYvr;W>uavlNhCqj(BbNW-w z`lqJM+f^ywdITPR4E(EFkp53fK-15$bB!Nde&sA=7MzfKmEci>pH(Sa|0oP{rm8=g zGJiVCva4xMAhaZ1zfV221S&s<{#M2j(wS<}-$cSvwp+T;zlj9$A+qS7mbS92_lUC_nzPHd~ z7ygBC|9i`9&go2|zp_AA&_4+7&Ju}1DA8`Qee637p9`l?#-g8&YA*`kxn5AramA!R z=-DnbTp+n6Kek~Q5|r{D6O?fm6gM^$8bq(zrj-Ij z6CSB_YJ%imMEWt-!WGp?nLV=XO&-RYlr|CZI}UFQSA2X&S4cw;iDbKL4$({Z0dX7eop$6X~S1oA+3(28ECO|*^!O|UR*S)y zXc&DqFul8s@UT!Q`Z=hD7=jUxd|=uJ@dy^vnkZY3xt4vcC@^FT9Z{Aj+H0i}i2ul= zlQMr3Fs2Wu>O}sfrF*#}McT!i4oD{az!7C}0*m3dCdrx3~LyUdmU>+ZIc zgU|L0u`gqxOY+dq>KsvCae37-$je#f%ol@HSnPL-hFqRt@dUiLK*J?%h0=q};pPX? ziL&*I>027Kkp}*(|3Eggu9OV1%%Gzs1=5e{TVsJ2SyY#V=_0`D_@R1O+zi&&n9I35bT81%@My|nY~cR!|z27 zLEV~Mbs+AQ)(1-I)YWxI4om1RD7tf%7DaJqy8q5O^CmQmpM^$>rj)~N8~u&f=!9ez zYPzFrMP>Y^njVJUSoF1f>WH!q0uEhh*2c>lvSzO3brME0-O^gwsFZmhN-bhcTVYWO zHyhCDCj;syAA?$;A;qpMNH5}{TxfmDi>QoN5>AD(L{Tqlx}sA|ipa0f(ehl>G#Ezh zLg}&AgzRCcBpAU{eo}(v&MAy0Jdhx{2U)LgU`j`#t|yvT)3l zFY2)-%DJ8V9>kw|H3Y4o9}AtVixXL0ugN?NC>9jE=t}Da53Uk1cI#IfddZaV0sEyeW zoyoKz3hly4W&9M*5@5Dc=LJ%a{9Nx*+}GuNs36gE%&C{tK2&>7z&)_X3~>n^dkL`~ zvSjI@I3FwLbjSxhH!;usXDbF6ToSh~Qw@Hz3q&`9{63r%7f0kJx6Wb?YvR0~=#q9} zj4Pt^lH;ccP_$Q`Jg%T)FXCZegPmICy}5_v%F%m7I1~;1DeU(&s|mPAF6zZObFbo- z%IsC((F6BJ-fc#R`Ek}+^mSuOSG3NTZqvjO7?yd(2e^Yq^&nuGt7!*Kj zu^!;=UK54(p}#Y^`fy*2ywvy3x>);NZU?3;{0c0(T~1C&KUlYRqHImky`q3b4`lW* z7Pu`&-fnX4p(q}Y<=N_*V^_#iuLmtly6#Q;=+YX!`1Nk6f~9ylD=oo$gVu6>My3Zy z{B4v%X>YosY<7xrW*t!mN=p(CBTUDs8irBLX-zD?WM}LG-N#m`TWGV_E+F33U)3Z| z!X7hnSRW`NziUQjdXGAKpZkGgO3wB4_ZvgX_kTjb;Gff6s+OKrKEyz2>!}M_-vvVZ zwE%~u`i_!m!ZX?Dc-9*ZKs~xfDu*IiVsQ!C^VWq$dtI|Ec_yW>kCN{UhgKBcMvYxH z?P3_!;`t`RZLM%i=7>VUSLlpgdGZ)@itF=4?g>ifRZ8EB%UN`}&DV)&7}cYMv8pdQ zjEg7WSK=$}_m|bMoP5#7e^uo0s%v_0^|zHi9v5fG?y(E`bI1}!du{aq-~Wbp6!TMv zp%uX;xy2Nq6!cQcY!%_Tbx!0b2IROnVJWXBEczan+PjQ2A9?_Fk1r$tuFg$yEGx3z{96NSA?o-CalH_}rP%5G6+!m!?zbCFrc zt;k%z+z^0Bk#YFv z2ej*AxTKZVjD~9>^Hl6Xm!oKyj((Hq`0&N(OMwFdzZHhKyY3 zJ$e02W?V5jfiLt*J%-R(dN^^&J%sl0+?p7|tG@Cfopg6+-g*AP53}J8+&oX#@T=$*dT_BGp&Z` zME;!_WgApRa{`VZVnWt!FuvS_%J?y~ij@GnQMaa&{X|jDJ$CtA3}_rzw9gh=&EHXR z%?CWUF{1pb6A$}UovdHOf@yLA)=TOQXbw#MSVyU@KV@IU~&3);V+7P(4T`s zk6f0hhbrX0gZY|pdFBLZYiBJR+fUEKt%&IrSoGD2JSlCx2>t&s9D9Oy@hTJD&JJ+N zE|evTF7?Rod$@$mm3ZsYl&@FG^s1-TATW<-MFCFNmMIUP?Dz95dXlG}P~{b5CBs$( zOR!g&>C3B@L@fkTB=%ye)2=#!_a+Zww=vgZzJr~XFj5%RQYqB5uPSTn2_6GH{_zNg zqKQy?Hj#b!hX3R?Kt>9UR1_i7}YthRBUIc1?RcN-GEMZ ziR;a;FaK>lwF?5FY$G}&@-EOtpdM?MJZ*!+X9@nOQcgwYdzJ}P^5F|tLYTf0uZ2$g z)1PO5>d4NJ1zOR?81b_J6hZ60rU~W8n9Ihc;FpIY{}iey=aE6zy5L4Nfh=W?#yoWq z%2J7XZ7nhqXWVip-)ngW~{+E=!%S7ty zA?pZM*>5=ER};sazyghfG0&s<3sQ47MCaw{PA(^dR`Fc(L8-^GDo(th2pw8=L}?`v zOlTa|#9YhgT5$r77JfvHWyWMKFu7^|&T1GbxD#-+QYUhAP0?g;aaZc3rn>>1lS_E# zQ}HKfIjb_#yuGEW`F+C&y4V?CgMcAmR~V~=u@9$8SjyP}F%RcBFlk6|qm1Ro#uX@s5 z6HM^VcV``sIl~M+3&~QMy-2raa_d$jOq)ebAWLP78MnFF6?49;bw7s!x$ATP})K_Fa<`X1(QkV8{ zJ)ILs87;r?OoXzU5u9Z!O4O@cyF%{y63P-qd!_ER0s(IWgDZAXqFy`ST-=4yV~`wH zi9&rEvv5x;W3L1pmqfVsJXO*B$_Gg7{h%;<>W>;g$RjUNF105^+(j8-dd2H@3Z{qg z=^S(Ac*y?Kq=+t(%w7qf7I@w04jc~kopLR^x?YKw&~aCTGq*dChH)96{Q)N@gbz+P zV$Vz38qee;6FXxU%065N&Q5e4SQ5F_7O!pJbcqZcY zSh`9V$`VC;CFO@&j)T9b7lr$5+C z#Z3VYhxf+GKuI%OCDe^4l*Rrhf-AOp)tb0CxsSY|gmIOG*Rv^oqX{U!3)x$MHgB}#>6^f!-VdQ(WEz|?dvu~~z2*eG z8gD2YGmPeZH}&T*8%Fp7iIxdV@gUQT{DVdFF$rafqP-G%tR=uh-9;&;!fKFZwIW#?DX0yTmr-9YYNnBQ=F29UV zL&)Lwo+h~MEH_lkqF}eQ4{yIRI+Kb1VOwLnz!04f#$DJ;22baJAnQ2+9}7$Am3i=* za#63pDo9UfQCV)5j?{5)LV4xk%wqmPaYh%)&P6?(H)M}4XK`s4gt6B}vfaanDob`@ z#PaSQS4`S-+`DMz-t@jJCF->}VJY9HAjh6v1)(gNWhq^X%(^Cud+b8)u|2pSiTuIh zb`r`GMSCUk=vvd|Cl|p-b4XxP3hpe;ad6_8my-POdK2S;_FnwCjOjp$E^eY>?8@D` z82NWKE@9?ei-kC`lwG8pCogCJogGtjBAZ_VGi8-Ld;V=o#>t7g@w_I=)@vp#<#SE2 zez-fP^yHS4fo4Sk&oYlF`+UP+vvmX~+E)y|`vDSda^gg0AykET_A(ht@^_Y5LBePU zVt^D+eQ`qQ9=e6<4g>LRHlZVejT|8JAN*FPDVY*uAHQUQp zzd^l|zv#q5`e#ymd2Brl$d{~|C!dJTqZ6gOsK*sj?Kwb?)CC+r*P4={Zy)e{#RR-v za-N8(Wdahn(9Wg^rsT}wwhL#W=%IP`Ad|j186d$Eyjb&Gi*>=Y_}YS_6Xo1Fy9GFS zIjd<{QO`LWW*9g2flA-zIV()HoJun2zbf8X%|A7Td5(8 zUG}2Y^F$-cV$HqmW3lxc>TWNk?Y*!4vgLMxIOESMTcLPR)5QRy=1c0rh+}^CVIwm6 z-)CwWM&|_!Vp1D!jj`csxK6+Yhr#YU7;?h;nyBbnN=@mKg)O2Jxm&hg5m%%L&s{j( zoe4O4^f`Ay_hT_Um-^mhnt;tkk-VyoRR~sZ``KUV=LrVWMNH^SSjwU3=CP)|+iZ&h z^+;sS%d3XWhPWaY-TP!k9?z~RXYN^QxFzesn1#Tj$|u8^J{?WNX7hgdY=~&PctGhPWHBEoPI#^+J?Ct|Z)v}=2s}Zb6313 zO1HYRYo>V@&Vo-5G6`MMKH|<-^2oArapDESt*3wP+54KXyqkKBK+u6DFZvrR;*zxf6;R|wh<_nTqU~=8pB2{zxz>@8T6#}@%Y-WYYYbKMxSM%ip5{KWfW|ilV)OV~kqXup>1Is13z{bb5N~}hD&L*<$GW6bp)67K z>;^eS^{T_hQThW@+$hlxHoY+s4;PZ?Lk>5KEF0C|d3KJb1`cEUkY^cXD~vk6@?oFZ zuyJsrY%OHIIepMIQMO*QOu$Q_l_aA8{u<#f`nu*^rLH&9$ z_JcR-MEqlvtyKP9(DKuG!atl~Sd(}$2rc<BZ%fYcJWF263|~M--2=k!+<~-#@F0OIMl=KyvQXHE+$>4@CE- z&#`qWe`cjqBZP4mp)%$2Zm+l%ZJo}Uv?RmxUebVA|h@DI3UP|9qmCLtz zCl9T;EVVJAl1Hw^B0<=h)dMFyNeZ7#dZ>-Ed~aGSCsGgj*RH&;aw^gu<%4x`mZj>U zbR++^FxCP=DV(JThMfog7^VEXp#1YA5bHil=6&VM2T!xsp7Y*9sMLr1Z%y&ADWF2Z z#~M#Od((?y{ha&PZaU5>M>C%UUw8fWSZP7&ND*k zl_>NQ476mP<)oFg#-1ksoY6@ZJNJL+*-8~zcU9v?LzPcaX7cBD$--tk2#`We`p zk;7{GWr|?XlcZs(I{Q)(${$4ByQa@oi++fD>8iyeg>z4r#j=Yi)x#EZJasi^eG zvJ0nu>&jyiAA|Ie=}fG9SMi#Wqx&8Z~`>3uv#R~8Iqsq>7 zris)e%f|IWx{L68>DFoZGmERJ(9eaJw^2Q>*DeftR`r+^AkbMKD&b&$zbL`K>RJMk zg4aZD?IKvuMQPf`opj^BLoFU7)S{kQ+%ra6N>+s&`as=@mW^O3f1c}i$t$EYOH}lzRHx$uj*b3%KyF`XQ>2yPPTu!8=|9Tsu$TpidnkPq zTBA2c+Jt|(-k(R>NT$qWiPA;-Q{*xqs!qV?L6h;Xx|TZWJAr1g{tpH{b&V8gUmSE7 zaw<9>yNgn2b$cTj=d9+Uz;RcPk;1quYD_@U&2H3{CfFz!GaJAg#Y8-qZ;10Ya`;Zw zJzd1YP?2Na*W_;~U$4l;YWB|)9a;vk_^V>kU6B0N^wU8h{kbGVT)SNbwo=;IU!!`= zdZ_AwVecxt;PSm^5D(FBO>v`P)E-P%3diR9JI@q%QS^UuPN%xNmrsV28H4^Nvg~#w zzcuNu6fUX9-W)!Mz5@6xJrEX04;nr=b#u^PmDWEjso{UBEXVDH{QIt#ERp!w*DK1g zD9|AjNRKZ4-ZM&%Ig5JAsis{0X(|La4zhJh81y{rPff$0)ik5*i{md{_Qs-1(v?oK zTmLspSAet>##hby`z&S25qS8M&Q(fpEP7VN-<)4jmO5;XXOyLvy}IyB5SBu?FPZ0K z)!1tS5rScvFvj$5T9Wu(Lwa>7uT<^HA3W#s+ag_B@ZY55;m^xoy`7JB*8eRFhTrFm zQqEc_ywd+Ywmz!ldC3QH&->oU$0B?j^O0Y-D7u(Av2pM!(DY@~mv zd~>DB3POoC<1%QE`)~XJiKl-3ht82g6T1`|>p%Fb(qGL2C7ehb(U5>+3ySE6WGG|T z1iTb3^~imDD|uQw^Y@&f=%F$XUQTKfh}~+!kbtJ1nFFPz?c8rxU2wrRSGfgtRo|{^)r{0ZgQ=NUakm_U7&95 zESW9x#Z*cEs$Qun;-14B*;ql=rsPDM{!`KB$p93<0*x=Q0i7gyH4bU53PLSrzl#`# z%!@H4OO7Z#o?#n#iH0%}H&>1ncA;IAsMp4KFkAfJL`Gd5gn zY8nj2H%4GKcQS2VvK`Qd?k)AG8?GrEy_phW(Oya(uD>b@Sm~N5`yHdRH079@Bm$dj zO1VWr=RBIn3T915X+sq!cR_ju6+P`9`20;wz?5@(~pVPnL zWv?n8wV2U3q_rr^Vl28@-5O`IrGSx~WtJK(v#do%`!)AKi=s}H?qxxt`$|jfO+SYc zcr_|E-jOM__*ODXU>{ z#ysufN@es~vuI|k8~i6%t1^MD9MBWE^pizJ#5Nz(QLm^3@@S3 zdNCO9xRL)f7$L5O&h(9pDY?}2Xryp6U7cteMm_Z>`m@WI6~k>Slzpr<&n7)m$^3AF zE4rLmw1waXVwc(96W< zAQ~dd#^_|1fSHWRxLQ2NoTFEwn@1UGZZ#MNkZAEn23O{-i{_~oYeQvdrf6iN7)!w~ z3#F$2M7TBI@XdsS00p>13Sf)mv|;L$aI?5LQM8ASt39rn5``?hUa|g9CI<8DwC`4X zNas^1!Yf;FfHIOSsUA)gbNs{vk$Pq6y9wmBul(R$I7@)J7ozl&36Mh(`rDDW-8;E zA8!nFH{XoBqQ9}_b|tf0L22nqYH>#~KeztdKuXO|1Ik*&CPTvT9@O8$mjR>}3rb{m z<^#$2g@USWgYAOoL|!~X>M47dk!J4|uWKeO#fwZsJ<-j`-&0NVnkdJen#9Rl;rUw4 zWlin+FK=g{-8PN`z;A^~Si+eCwIFEM`TDB>$`&QtN$&35d)3SUl$-2s+-}>{xxwAa zpA#+E>bmC%II{&deUbkkm>q`^#jN#5j)uXB(%UFGUzWfyntYH0HJR#-*y08fmpJRf z!2p5W>6H{aBgfSs)UBQvjdV({o!MQ|cLuHE?SDxBXbVG~h;xCZDPYk@*oUatIE!`9WdS70^cmZ_=vrNl%^Ti*;z z+65;{y+bVAe6JR$2byN7U76qq;r0p(||RMZMLyc|h<1Kljx z2?(v8p=QOjII|N=d5*JT#w&)gV6y3fe=5b^SyodSx2tl>Y@Us}CGvmfgr&T%g$`gc zqx1rywY2(jblPildDGBDW<`1J^hsFME6d`m0k=%F8jE`Rb8vT@dGK;d6YV_boL=7H zEb7+LOmTBaJgiTrKMTGLAhGuq6|BDKskB@$fr%rW&t7>^zQ;xOHtofM?4vX<7sNL_ z8z&=gsN*M9?dm#2mrpuPtB)zx1o2ED9FuIMi zbIi%29Esd{zm?7Qx^On&S1(eF2mYxLXbCYyXL4;>Mw)kp{FRp|26RfN4a z&~sGusYWMCb5V~C$yvb6LobwlY*jYA0`U@8I3+VWcVnW}ShQa`rPG1rZ~A6H`Jkfa z1ROo+v7)UO+#xloEx(Y5jhBbjlTcV3fYD6Q#MvWuI&XDx5*BTh$RlAXUcL}ex6yXd zFo2pV$kz6eWO1V*Um2D@pJ~xBz_8drPn3lhyn#$s#EVjL!ihZgoK8*{+$cNW&BP$o zDwkSXno_%Gc3z0LBQ0VG&1wo`6K38nqH)-eD=(fkn7+%93;zI{s?h(!UnB8fUzdvvPSc;|B7?K(y3j$+Mfc?jxq!LK zP|H&O%Xq@2C;$8e%XwVHZ2YrOz=$iSzu#cF0z{ZRj3?C5BIGQ(ubNU0evTWS>sP|b z(!W%@kuBm|OLI{RbdrEaBKDXv6->#7G1p>Yn1J2rHe_b7kR~U^W`;g)xqUZ- z0aE7sAI~r1J|ZOa!jxcB6kt2lV$+bdGliETV6URm2Lsdep|m#^s#8ntO=k)p>-&&g zRMtUj^lEP~52l$m8e`7p`cIMJC|8n zDBQgih(8p1h*3@c*|fdMBFj-113IPChRVa@WPlLBBa&OFE$&U-7;>6Q=GLqhk*?s8 z8Dh3XXQZI}Iz!Mb-p*@I7K3joG*Rz?f8^vuIJL^RbCzhGE3t(-VLJ#yD_S(chM4Nb zVuGebk8;x)Wv%Aq&fMljY=GehLcvl#+@NRovCsdEStd4oIykh#5$#_qA%KTiE07A&64K)#4jmC>HbGz66szkIbP6+ZY zwxnxkbwbR%ol$=3nK0~k^N&08OFy9~uRT8F)`w4mrR=K8_flf8y5fCtWoJaO5DLvo zwRl!Amz=Op`)vPlZkP76)*ngyF3IW)Bo-sgW;SN0nC5CKy66j?^9-A@ z%Ed?eOI$99`PSPwh$(Hz&WPfHMYnr@J+tD&J8Bb69=DN_RcX=@Wnc9_vpyL{;2*h8 ziz1|^M42sP>V>jK$glPR}7zT!v8=Cg3pUM6L6@hPGA76Ig|j3Pud0O~g?wl9SG< zdga?o=SVvXOt4Aqk5gtHDS}UI(k)TP!}3ZgVez{s!wIFg0QZ5DW{XVHdlhhmXV$4T zeKH#$bQ(-yq>#^N>v&}Tf;EWq=HyJ7`%p-|{or$CSu6oqDS2XSW)NyA?h!ard9?0} zJ}F@-hpa-oaN(9k&BKNin+VuTdu5?RnI>qD%|;=VHHx-M)M7$jccv>+N?vzfTp%T~ z7&n|y%*6>qZ{&SA2}TcDqy|X65}i@H)s$r(H<^nMe@oW7mtA3&)j8#%+l@KCGZo#f z@)su0S}?(AEqTs~HmSfisoi@sBw~KVjnZG;a*U4~{!jpJkr#h`WhK_73CaYELt`+Z zaRf|{n835GE-uNZ<`VM!KBFPR-JN=2!9Qzi=ItTVFsfA^fnPfd)v_6u9D&kme>sNdR4#VQC8rB4k^C@4CrWeC7B{zZ zg8OE~EsJK}6)6a{BCxm|=}&1d_L#GJlstQoDLIju>hz-LOpg+1Db4peQ}HI=8>M>- zl=%@ra$M@@=`7lgnwJmNW}z0QT;Qc^S;Qcy9>%aGo{=e~!$CX}-AAHRdO^xVzqx{k zaY*k)pjGxY)yV>V%HMgP-slBse; zDGD4vj5)WlY@}htWPuyfV7h=w@)?+L{aIWUdGVhoP<9Kgvh~+j`m0pqUrx)lL|!i7 zkJN>yC!CZPh0B&Gw2LPrI@1TqC$ZaEbZ@eta}#YnB)pqzS~LR5VlpK3fuqYmBE zyC{l6o@xpR^^a9_!o9Z<6@!|UrlA~S4M7A4k)=*)_cO3 z*~h=3;5i6PUMUaNYXTV&NCDn}1|Bz%!`X5YF#Rl>VjQ>VPBhB1>^rPvE)AHB%T&e%ztfcQh<3HZ|bg@k*d?BiP%r$QJ% z7iDW5f1sH#Y&KT|oRS%xyKzE(gzigRPu>i?@XP;Tc3!UX7qVPSEZ1^UgJE=1p$RN0 z!9Z+zL0KFPk+7&&dZipL9<-G+k)55-#J$r8(W1eC^5_Jr+2VvEWEIqeTk2M%U{1tl zrS_?cwX}Io$DkjT*7&OYElq|~+G;`}4-*^02({qaTSf5gkWCcEW}0_#rm%}Ilcpvd ziSfP+5>dW0mh$ly0`1MUSX{_7Rr!_Yk<0>jcb!fY2V90?2&q#|AXa!}oy>#4)nb&K zr(IF#MZkye=;B0OE!1riac86dm~K^^n9S;gFt(8Bfzq2@v`EoNsS`JmSy6uG%;pMd z>-z%#HPn)K$|tI2sgz^pCGwmVCSM9cG*8q{MU%^KD45P>MWIKa9eTeD3eD%$)P;^z z!f53r`|7Ox_Zuu1E*Ku5bl~;L3p(SX$$(oXEakW@aCwe=L1c?+x6TGMUWm=fm=k91 zOWNlOSqJ;Q150s&{>=II&R7n&Bzkpofn+LRQYiOUXDB36dFc9ZN$=IbUk^hX;HueLaiu5Y-!tPCVH_a{ZySV&XBT> zhjg~rc5H*HN54)G-i1@iEO`PBE$0yiO9fd?+*e$Hrz+<7j;RStS?iYN;>|86nc9Di zGl_c z5-pmta~>(dl7H*2OUwvt9`Uxd7?2{YVa~?uk-3(4QDy6LA~iRrSIXjE=onGVPiQ)- z3Z#L+GtY|Rttf5*yYC7{bV`$s_7jy)H&eOL;+p~FVh&I=dF9EB;wow$z@5l60XNG9 z{lrk56SBt)b03=R$lg0WVC0!ipya-Re#;_slq5;M9&ZASC0?daxLuy4lyzHh4WV;Y>Q2<^m`;&%7 zN=;O>uM3^CInv~jz&~W#a9<)B(3pT@&Pz_Gw3Xzzn9(^m5pTDO$j{QTwL%MW zUr8<4XTL9>7S26XK;0A;Um?-rKbcL-VO}mUoN^?KapCDiSk#J=sSzjOwUE0LX)a|A z^&nG@FCDZB!=sjnPel5#sA&-{7=|Y)7-hq_r^+qnLB|EqGzOH2^A zLJkSEiVeg+7cOQ)aE_4rKqsqt20`+Jf?T@DhM2axY{3*7|=LD+L_(C7K_Xy zSm@XU)2x}>fbxiSbpwg}yh1YH{Jkl-UO)+4cdOX7=16|kW2Tb-N8j6P-VoaY=pgixtvZ!z9T$D+V?do>JWlbYEmRK_<^ z7G4ct#MDGZ`-RdjrjwaMr*@hb-V6}o?%^6yI#V&}!avmBC;Rm`FS{BN+OEdoHK_oH zB~k(x%~>p`)0QZECoHAg^_pq|A+Ro&nwDS#qtFtw5~MDqY>5+4Y$Lej8z~|tBo+y zE2)XfR*A}`58vOnL>>1_DswjL!hd1-)|7d_N?6Kvmk@`}^m`Gv`lq@T<=ePY=C#b( zzn2n_dsq3D@t;b&kSnaQ8UkfrhySfhG3SJ8p%Bt8h#}CLy`=_yR|>>GvedY9>Fl}^ zs5{rPjSyfJWj@pkQAAcqWJ8^QAo`u9*UnoZ@KNIeg=-T*i)_v(*X;lF{`<%|Mgxkg zsF{>H_rL{|Yw294MOo;KVpX^Ldm%3<_WKU@7_8Uj?7UnKNY6$NJI5coytaHR3O^A2 zC$=tQ&gwPGVl^Q5!m{p_roT0$1!6$^2|e4zLxOr*D*pu~0~yPO_&Kur&nNj`7);Ck zDH>2*MHl0O_7`g{Q3}CQ#L<0SRj}2Tesdlc-Y5T1n@)8h@G8X85NrLIeMj0-b)&P*a^Om9mU?4kPtrEz3NLtqIgLWj1%D{C%Vr z{zh{tyO<4`JBijGRe34WHz8QcPa=zFJ_#+Q6gH}9Lso)q$Z|nQuA0CXR5Dxe(1a6o z8-2$tw8Y6k1JfG!Ry`oILg#__e`QeOHgOJli3A+`m~yI%875@?RgsQ4<$=nlaqaE1Rpt?R?=k1t z@6c~9ne$>DojK+|UjE{r)P`A6VCgD$|2?Sbi>_JhyDEXwcgn(falr}MBm09DIX0J_ zbu}pMGof@A3ga&Fb@2^STzuDMtuP|#5~BfA${zAkH!4dh%2wGq0e4~lKy|r>QJZ)( zCR)gb@T3@khg|h9pR0mt^>vA2(1nf@#fa=F2p6v^?VbRK5b7M8GMiDFuxP6(KeAA? zI+JgP+)46{t;Sr7MFNgg#@4r;?{3uIgwld{zV^=fVqutbS))oHjWGPqP8wE^>Q&in zDA+s_x5zChe)fe#_ciAWa!Wyoo(jAc&MgErjBAr`Zy@nqAPwW2x`H7Yh3d2f8hAr- z!malS5^!jZAgxlqamx%6*OYZxC1UFU(;7uvWq8!I56L&LNU=qJXKo>M#kH&Zobv4_ zWgpg_Bk*vnnpz>mN6E8}%ep@JU-|BlfMP3z`A`|+TKV#ma!xgjUiRlIo^!r^8`6Xj z#$(pB2746L79+%b`=%4({3>VlY#;i^*1d85R071_3YSM9Z5GSL%-&m)X@*nU z1?i7$C}dJ`*GLRYO*0^HE7xO2={+XYeI=Z7EoB+l00F^catF9{j=;5e;gp#mY=%17 zfX?(m#$iKphOI6}rVFuEo)dY<`tBKuZ`BDYXWlMGlqz z9uufS%Uro_8Qe4KF3JckNWYJq`Utr52=m;kX+qZ5S*#-sL)us79~qq-#`^@?hKFI; zZ$>Peq-Xb!B^ce#GVV>8TN3Q+;za3fOu(VVy*IA@auZC*x@{0T9_1>1#)a{alN zX;(t7ti63*Xv%!dgm;h3t6{KGCtOw|ul3qa6!935Gka1Kq_+`h{#5A@HGyoK%69su zU0YHCepVSDZ(3j5$tcIL2Oo!=FCId1*q4(`*P39BT9$H*$QQ6GPB^6&LvJVc;$a`M z`b7Q4N!(4DKSaXgeb?S|7Twn^OSDoao-*{CQOJWPcb48l&G(S=#k&d&YxSl@YJf0i zrT{(+nIA#0Nq*e{HeHJiVSK4umWw5(1Z&Va%j5&ATe$P+M1Ae-a^B$H2O)@#gv(jne|=d)Xb}4Xw{3Ue5xP$2}Ryn-kI01kLP}CXwS?VNXa5OiOn3w z)qXsqbS_6yqIu5G%@wztkabs-D6{W;&Q&ZDX&Alob=wR}-3;tJNxtmMxZrMpQ+f{e z*1MRquE)4sU3aN9VpJ!X+uK+)<+2Kc1CsD+3A!v3J|k7fY2^b z%@-%iX3Fgz&AzRvi9mi*Odyo#Iao#*@=(24+YXDa76P`WLC|AD_TvQ7S@I%G2hQ(E zCUL^h+li%Y$JEbPD&w2Dk#2oH`$Gl;lv*qvNDzQCMQ>k?Fqx?ob293YBzdUi&^6}8 zQ+sA08z40)?Sg~b7@U+|Is&VQv!*&(p~|m3RN_8}OHHsz@z!3*O54qa>1@G9PfA!y zOV`~#mDAc#DE}s|FRji59KABHzEVooH7QMALW?uI=5*9NqnHaV5<@_`ejlulfZ>?4 z{yfGeSk0kTC%U?GdTlaAQZr7oW}!se$(wl>XAI}`Nd0+GB#$h6hc%}ENz{W;s9TLN zn+b*rtyo8|01~O)Na=g!_%oOBqyJT9HCbGU%?aHTyfK1$P$_RiUz%Y$)sVeW$%BGN zW|x>|Rpc{A!yqW%Yw@Xt@fUVNT(pN4{=>hCMdi@xHEI&OLstmYO)|0j`oH4Ml4 zspJMiO+KS{|RER%_@?EHNEF+00F$8*2KR|4ME72;>3l;4DUP_DkZ zwX<>|lR8meo6e6)dm}4(x0T%ClCMjv0g?%&shp||YmYElQcmvDNqbS|7yB#$JZ=}W zVCqe0^6+0atj(}ixsYcKBW24cltP9VdCtS|%vPq>W!#6UrlaaV6?uu9!T)WYbNdz|o_|yVj|JyMeq81e9+d@4cr!e! zmbI&(TC0ER)Y1Y4_s%H~-46M&x-*sF-{rkPBJiT{&IJ4-FD>%Gd7`4-xDM$Nc{t`j z)k1S39YO3pA>iC}&Z3)5048SIXMjj4d5^A(6aH)`6!(_tgJ%2c!^d{s)?x~s6~&!} zJgU4imVfGY7g0!;K*I@A>?3T6Q#akRTr4MGvpB=|l1@g03b<*}V8G0sC)&zT)CUDh zU0kpzoX<-pJn)QS9##uYkAPuwXL5q{&bQY#W<6?36tcyfdeLGwz&VRWz~-?RlEABj zYJbLJjZT>7yRnK9SW#~D)R(McwPQ`*Im2}`k> zkj;ih;LwNR_}yHyoqTw8gjaTCfKMO(d;uBP+( zRbJnhxXK#(LhJ+~*cbNFZoG6lQk!5v#>a4oCX^Pv$XrI3qV%CoaA6bF7M;#nrWeKF zNsrJPz1FurblkU7V1Bt>W-rtn|`F!-$0ToFF(+vIwAH@x(Cd);SvWNJZI& zu@2+vQ@*dc_XNCOl@a97S2Wjfd9T4p#>okT`vgPw!cG&a$J~UaUl=)}yo=$z1XAZ> z)Xa7vQv^Iw|b@Rraq)=$Fn@t6Vuzi89N zn4BQd18=(BldI}$(^e`uv(+73r!4fST093RDioki>q8g|!6w^!rsnnG<(`(9Ai6}{ zS|^JM{d{)f-JMHw-N!->W9}TCC_l52Kw20}=98B(M-+E5osFY0ZOG9y8^wvMi+Vgc z8_+3aP9Wx-vee1aFrz+)nn3n(l!UQUor$gRz%vPL#)~o6VxGsl(6jP>nW^4&q{q5@ zIE(!t?Olh}70Z$Zk1X30(r@LD_&$h#b$gaW(kXox>V&4D8=WYtDa(Gv{bJ0ucu}Iv zp3Vt)jmHYxYRnfcq+1>#hM!Mvy4`p;~Q{H?1DAQBEo5M)FJ{(y)um7}4 zna#P7Sx~aY6N<8$x~Rc9Zk4nha`>Rw3#FTt@xCj0L*4U=qO`;w2c} zqV$(lUOUz3kpu061Jd=`qSg^Z`;qlH6eaeg0Ef_DM8ZdwITva}o`~NTy3P=G)-2?S z^52>Mm`CJ7X_I8_Um?na!dm^ti!2jO#2~MR_OJ=G%Dym??u$^4QAV2EP~Nys7OWKd zXs?NLEb^2H#FjJ2-u`dA4WEr%JTga=AEy88{+rhJ&~myf3IY2RgibGN)Q92EXTGTKL$3cpQ2eQp)jm?Xb@_p+cqk1Xb^57ieO5i@Jm+Gm$l(z22T=~8)Jhn% zN*n&@E>;oBqsn8MsMTv5G0TVRu{h89;hsXGtIq*Z*9Tr4=e6qa%*nmm`3DhI=N2|R6%s#IWsD=K_lyLY^rY}4y8%}Ua--o)1M?e>{8U5d*DNUX*?tr1T*`v+UPd^bwT#(VtE~-`P}tYtlnij-M;>uwQQ}gi6oM zvh6a`<~G4n_79RgmyRU?soDQ< zv7Qoz)xc|g<1+pwPsFqlvMxHGjRv2IYw>FHqQO9kidr!QTEkrQo|bTg z5rx1qz2WS%`>aTtP36hS02@;1lzcm3>O60GA%2c*0Amo72nacRl>I7ddoGEQ}K{3y$Zt8TWGA$*iL>#Tc2&>DF1D#=9cH51(ikb%_ zovF9F=hQ@H^va_9D0^eVa#*^nz#8Z!Mnl;WU+gMyc$Bv4g|d%cr29x7SBi_v_>LE1 z3rY!?ChOuPlloIk4fY%Ek0cL@oefI-7{0#JJKdKH7Yq|Ey4a9a770ugcOh0OrR(?5T|g}+x_E(l=+kBcb^tmYv-vnG(;4V2dNIv*qLYM4m+ zp!7kkFMavQHK2-=khrk_N~Q)_Z-6Ut9wf})Rs_vhoIzRc?56?@+o zqTz(WEx-z6#gc7~REq_2Cuzc>+eJ!SaTs4($W_yJEZRhw|J$O|DVf8i3Hg1<8bw?6 zDwM94kt+u)WLF938&CDz31yAaRO%#Cl4q|Y$yDCaZ@b_dQW;-484|f_=|^XUI@43_o7bd+^*VF=VoaC%I^<+W!b9K zcpPkTwY{8 z6bDK_EjlbYlgf)O6rY8!wgVq>Cbz`TuB>lkZkFP4{Uj8!5(M1^O~m`krM!zu+K1Aa z-iFrb<;=30Eb4S}&o1e;bFb@laWq8aou#>`2bHmf2}2eSoIZP+)q;u&ovIIpoLu$v zA+!a@J_Jj#sNtn3=6<2QujJ2pj2oUe97Z)?-Z1TXHlX}c#NSIz3B!vZe&kOgOTWu0 z_Lk{a76|%?EYzC#U0@mio1g*3st!%)PHpDcTbRn|Sw0Dib_?BTFaYsqrw@|&ofDSQ z?T}GgsF^0@N9ev7QuNB)yXf8m@<_50ETx71$~A#}AKz(2kn%bx8V7!_=~Uaj?2L%A zozGc<*Oo;=ccmz=JxY$5m;M(9{gE?;ADUOkL%i~ZIHn~M%;mH7=b~&c>HXoBKfl%8 zgit=4^_>%z{vLu;YQbR*^$5Mx?Zk8MHeEk^pv=eW&Hq#?<$q9&8 z$2C5i<7><1KQcz@J)OR@?1IZ^K^%W-;$Z?lL(ts`mGHhwacfhvi-C8Mxv2d2C8f8% z6qZ(%TU>vtIgwaY#y7#yiSmuVt{%=>%s4>wxcySYfMSs=hqqDOSJ#a@>xPvBEips5 zxG6TvXRlK9DCLdSeSa^6w6p%!)gyfn>vu*SUmr;=9!lEBXe55G1mUxhsf;bPH@#OD z{hiAvk!GRR1xwkd;E4PpA4b*}`BT3Q!fOlGU1SL3e_W?Gjx~I!eBQ_PrIk|WdU}`w z@OQnM%IF#Cvj^^-%4h3$`ln*~J_x54@6yA4f?PMk{qfm0cW3TGzU|6PEJ6vixTjApU9TF)4UCD>bJd01!d%zIytkSv^EB ze9RKaN`X={|IUeCTVm%hnvm5@p;v0I`{3%9pDM4?&#vt~5(w|C?*icm!C~ANovI!R zuir)<1mZEJ)TyOCPY+#%Kl;nxvC5QfaWx>M*Zzfsx|xR`y1M0r^2_Rl93B-9^;jq! zvuPd653L_f$Wfr>?X%Mdm0qN~xPGgA>6G*v*Jt=2rEfJ z|Ew5cE;-Ut2u7Mrn#Eiv(APnXt{hPECd<+}=7=06^Kq&tkkbxBWg6kVM+YvOJw*=Iv7x_2#B^rZb5U~$qeox|*QhWD{jx?O)cy zCc_;T;er8WtLj9d=V*DslR4pr=|~heg^S05Sr$#eO`-Smo%MmCzg;_{Gn=T4=K0Bd zK5#HzoG9cmZno2wDBFol?1UTKt;&evp<8uC9iQWj&IvBhv4B%(GocgIeX4Q0R(0QU z_B}ClE+UmU$s#)a@E$o zP}V5g>b=U51)*B$I}$IxqPP~`p1}0%1RO1%ySo8W6BTWxWKk5QMdl^Gz<-ii?yF!t zJ#j+m>;skYO<<@AtSD5DUQRBG#MV+L^Yb`d7RE>@9;wYHJW^am&D6fi^K)1V4d!Tw!0Rwtppkr=jPhhKjHu>|Go-BJArBOokabN$*6hQUbf&P@ z+fBk@sc4AEy;Cog?fgW((qgOw>PUXq8J$A~iH9`yHx_j(na`4Wi2(vNo6wjSQZ%L` zv-CEyzE>fWI>$v913sAy;Ea?~ZrLo2)ly5J# zQ)ct3oz)530r^Z>;&w&io>3psR>pb~w}McspXv%RODpY-wx0|jq`;QAVZMU&F(+KZ zR5CAigfY97&a_tMV=1+&Adj3Zq7%|*J7=1=W6{j}x=|SSMJ6;3P89dQTe}x+w{08> z!_Nwnu!Io>svu~`dHRU}$`)nWIdfU7-rrBkr)kqno696A7xJjYAg{I{oLwbzvQ=Mj zsQs^Iu_0u&NUytPBUU2|H=}3TE^WHs9E4Du$I~Y z8|a%7>7j@_`vHa~!)S$HmvR-0OwIZxonG8+VlDbQJy2GEWnOu_Pk@VnYkR%s6hGFG zC?~K?@eDkr5VU$Uos<`k1{pJO^jI1w$1vD8LV5<3XZ|(zs|`YVR?#gJwd!54F=Ws! z1%jpc!UeDv@6f<>I7F;!7M#0_~^0~5upBMSM)B4b0S zJ8MtEQua5CQaFzhV@)1IPG!muKg_r(TXa%ND6hiuPxX^TOjZfYod(OCK)ys7Y1s}% zy%?KCkv((TyyVB05uUl}zsJ(~X>*36=lx2AqT_awoae2ZjAC_%U~ePj@Ij@k)l3Rv z#Y(A<%tk3$x=5gCk*`;$9olV*pUE5r(_1c|S-C8x;UazS$ zB@}8!nY|XxvQ<6SY%4c1Rny*wLduK%M+Mgx*n|v4t*-f=EV@PM-R%tQ?icrWOBS^d z-!OjFri_?8D7u+X)en0IiHE?IfYB+%Of?=XX7=T{2|`<*Dj2ARZi3KhKFUbThvR=` zTgscKW&xO6!UCi&>wmAr84%Bd{KJe_O|YPNx4$py&Ex!s6MMF6r-~ zy%o|ks2ncU7dd~owFE}_~JSq&xAOzgbvsqIZ<*l@qwf?D? znjBgbT|;bO8IRIz6>O0qwm9MH8}qz74hXDP1WL1)Z*J7`A^v3_+t-}Ab3xW;(DAM& zun3zad-qMzRCr8O#u){yb^91q5o-wERo~Q4f&X`d=mIm?}Ug}#h%4?LVT+kxCOSz*L!{*Yy}%5%-sb$+6Z}mE94)9Y*EzfjQ!RWH&K3A zMYrTFwyQ7PuqQQ*yKmedQ2r))`11ZhD*`;37@d0~o=P}hNcv)uB zaXXO3J&Rw>lt4a44{42-Gm4wpFBX(@Qv+p-qFZU^ll;|!!WLI*^?Vb#rCrq2P~g6N zfQ$=7Gx(w$#iHF6hT7uZL*{D+Us$qu?H8rjH+{jkCU}PYps1)hy=}r$`mkY?&ezmj z?R|^QnAz+{Y|xjD9747b7*~s;Y>qj{t$T@A)dqJ<_dPa>(o1ZotUavmkGVw_vhTM1F>jo;|ek8xK3dyd+bxA-f|Y8{{O^{0u&nhVhe>sJptO ztWu0{U*ln?^u7nkoZolJX?NuJW!jyV{VphPmoifse^Ppasy((!dxhp1hP7()oz6&m z=Edd75FxYu86P%in?NQH8b<9Z!DY8$Y9JrOh!KUX23uldLSx?VoY{gS%FknH)CA(G z#`0myxJP}_Q53eS!>A}f%NzCxb!RGLACGl04hBxn(m*)|C2F+kUQ_bC~l(HZHLKg7UZE!I=!dE2E+7 z(mIbz&T8T3?Hd;}gy}QMcO%%}w>QcbMO*dU@jWn-wP*vm#a}7o392Y-AbcUEGxQz0 zUNJ?lM8hEpip7LRI)(V;R>J5`dvt7|w73$c*t%r)LPycgIZVccJ<>dbj1=3OvW`c) zCqGxw8Bsn&P0_0kL)vUN>Z|lehM`q7cXq_i2T$SEE~J7*IaMf{v|fTFsY>kq2io1kcdVROi0mYl3NiE}CV2 zOIoRy4|}~j?SRsP=I%Z<$sC@W*B4B?U2NriFK2`DnYM&VR_g>C9I{DpNiCjI(Ua^& zC5y=ywRhbJwh?(1Zz!u**sb~^|4?Zbwb(D&K44|c>k`@yqnc^Af_r|$C3&oCzhlCA zBpV1{;OL4GeF^1nfxcmXn0XV6Zh7v8y0#QZe-c^F@=Mg{xj|QIbwpTzsS4G+2$e*lx&5*mmKL>5gs06zI$YL#nJI7@zj#$ zL)_ufVg%g^<-JHpOU}uy^D5g!6c4l=c1vI|s+pyuy6fc2zaXepjObU_D~iSJ3u>}2 zO0)R&;@hs(cln0(PlsFJPNcStUQ#J9rKqKqE4;){Q0>PbgYK0I-JCEpLB zz!qh0NY61^3B1-3LhC5xa#MTq;NsV-d8te;UY?0j9#12Mj zL9TDn?Vb#Q)QcUYM-!HEysL-MJ#Fy|BSQ4rujb6h`h7te&<+X8_(|&DfygdLitm-H zyeFy!v7&hCo=m~4swjPB8%p0$bHWBU%M6~0KrMJ^;KQS2c?KP>6u6JPaiP@e1kqFI zc8rGqRkp;IHJR$0uoSQTDw(x7`i=mx%Y%DQC|kJ?10kM^hW(&2J=24S4^HV*D4JQ- ztxr+9n;Nipz|6<;Pq4DB_;SZS+uSY2r#NEqpGS4t~2bNs`a3YYh#yw@9k}hjUaG6TqWwyGqS!XC*at+QD)#>CYqin za^0{hG9ivQ?s12PY?e zL&s-OqE~y(jY|f7&j!jd_QXgg`o@mbvGky9QM6Us#4tkH4o9hlBPYyn%VBgi3jtd% zzR`Zn+IvJUnZ4(%qu1h`9DKJAk&tg$JSlCG_BRdgLD`~cs}9Z5hmN^~yjb6TVQxx% zMj2_@4*GgC1>dQG(x21ug3PP$2FeyiTP14Yq!Wf2l*%*vNU4FPztBB%P5-U6Sn<%H zX2*m&w%X(0plv}QZ&f}8vWLdR= zvPIEWRK`}u4fot%D-b4k7}9&7oTUd1qrM9H)z>U{ka+gCJ3QKf|DtZ<;fCV}hfkuM zRM9Qd=cuigGZZ!loLk~Rt*%*OOS(RTTGiR(-ngI$bytrQ5T*~#M^TP93H2mh)XkW) z^mjby_$uVTbj`JRmZpaB=W*|0lfs10O2DzTZlXM^Xv>2U&%HLMzsN)H(!hhMd4`73 zmjHoZ`Sgq_FS(6m-O9b4-d|M)mZQf z;hEHeqX+%aET%-lqFW|v)l@?jWsOI|4!XMjpPmYlZeVdEr8O=#5GZ>5Q_YZzTEyCe za&kRLuFIkRg+YHFbubgnoihlr7s_x5D&_B?U(FJUzf^AtLYJ?#=v(4H^%!!a&qeWX z63D0b7X1{Nl7|9^lT!K*vK49laSDW2YMreWP~c^>*uU{`2$wgDBe7;`pf5K6S=7V4rLEt$7enl1fI z+MD@rmS@oK-`0!PT+1=nVVeuW>`{f)D#D{zsPmfg-D0qve34E24q+=BCPS#0HU+hJ zB;LZ`zu2I_rE=W*J(%lzUN%#UK#9KQmBLx3`lZG?1Ggsje=D^^tl`;;9RF{JEMF=e z1*IDnZAS*JvUQzNK&T!4KhfI(<9jLTF6pFi$XijdvRP1i6R@^wVEgsZ`db3lEyG)U zH_N8}H&Om3=~!MUnA8PLO%~djvr%DQfmEhbLIGxBIAaXT0B0P<-J_GeKO0T?*1_a z*a*029}9*b1jn~1hoC^2&+y-^ezfKtAFILYfM7yBE%!^JknWDWz$--5WO zWUrJ^j*;&_j@ftVA(Qu85G*7*^B1%+lEve=2y%uR5!uA0fpUxvZCnH)KATWlBYzIr zqG+oTLC%_*jTxb3M@oNZ`&1V-yTgL=O}2@M$zq^O zi;f8-df3|hQ^~Z?p>Nf+uibe|o!3}wAmo&-{PWxredP>Wk`7z8Jxo#mIDtqpCd){P zJUY;JK<#8-qGlQUSfD0i%l)U}7i6d}a8sJyW7{&l?F_t0U{x@kn+^T6n6Q-NwGY@T zN^j0*)?rkW&&iv-yT76E-g^`>+4yAxYCPxR|E9R$p9v#gK=SQR;`#!cFg8$*aYkLt z$#%9~vYO%>B`;p@o3NDKxxDX^GapK6UJWBtSi^s0rH?wVqD``$cgwaqu8b8^u$qu* zg0&J30`o~N;}3I&FxKL|j9DmxA4%|vk6W-z|Xx;i~(Pvbz z)RAQqggmtY$Jjt=v4d?O&_Rdws8Dwk_lq2kA)mye-{0a(?B=E|&d7Q!q3hM_w{guW zTJWQ^kIrJ)6kp2Rhx$UO30i9J*kN16xWi*rYywKQz>7eO2i{uVb+nj$Vc4ID|1)iQ zx7k*p5qf>GsE{XJ(lJnuaowbkp;^9Wmd>(UC1~%e>z0DaR9^@Pt!8B1B?z^Xy1sO! zw@4o!r7h;nC+Yasn0L2|udSMS^}fz8^{w*9tNmAHTwh=_qrtvY4>rG%u$2C$40L(@Je|Hz+iw(Hss%L%O>Ow89S+w=7Db7C+2+Mzt)yXgt;>n=mzyKZk5lbgQ@6gI7nK+n!oC6R zBCo!}r^ApBA6w8++iGi%T>VKTEam*L1$h+U_^NA8@$6p5lXi4PAjLd;mGM;cg}8YE z+43kO#&o#UP2~TyTx=}Jp}#31i)R@(bBdmKg95s~S8dwot#?Y_z2PQr(V0PeFJ~|| zhwrK;k2-9Q&&XB1Z|L4n;igf`cu-Hh;iG*cW~?@GxAWzUno^i=ZpNEj3d&{RN znq~fYk{YJxk*uUdcpR#%dk4`oX`M&=k14G$fGX7@t$VqUL9i00{i2?`-}DVCN4=lP?VW z6B&Bk+2(?>Db(KxCJX$q6i>*~p(A-zyI>peoolg(D4P^1_|sv(=>)=}786QuIw6NK zOD)#=VQJmW>n^WZP(Y}qx@6cCO5~A1CNDBHH+*XE6C~m|)C#u?G0nwm;Dyae5i@snT+;p z;k2iWZ#($b6SmJT_S3rAW&j;6Cfl^zxhAbvY^&ob3x(+|*IjHV?0Lm%?%q{OZN6TSspltEzACQ?co8n7FcSk+$9VB+zU^+uS z!}~2GEv;tYt#GRavwyk!m1DNc$NLBbY``V;7eXyMrc)A@(%onSE@^)eu^|T=<(kv9 z^$h$>+|vKPx{o6LZVjDRNCSxHmHckNNWjlL1cgpYU*H~;vukZ2Zu;# z(BRPQ6$g$-W z<(c|kb*lyBRmj&w?+@st60rWQv;04^w7Q|Z<>KqSZy6h8-Z1@_N_h{0w>u@ae7qJR zG)9zHQOndD8^ry2rv42jbBikfQIMCOLgg4U^6@?9CGEl8rbL^?V!ovROyu|$|MJMv zTT>^85m>i8cZAtu0d^^x#dm??)j^Otcz8xlAa8xaj+&YZLMLekbjBPZ=p)tgJY$)u z&f9SY_MCc9s8#x4qbQ1{4ay9}uk#g3AkbR;ls+>IC?1(}z-5F~%kyGJ6?&ZxmC~O1 zeP@)nOC}|c3AK-GyZGkV`?f`aTL{cnTE(pMGCl*+D_KwbW86rrZm2Fn>LQ1cHd8Gv zTSVW8Y(dxL+NRXVi^UO?{dpOwm%;~A0xNxAC9_`AC;c14{avoba~R!%a*TpdJ=M7x zcT9ULu$pl=0e!_OY9=z~rGY|Q>BlfQfF5JS%x^jEDaFwq?2m*kkJ#^xQvLS_8E%tL-NfYQ5N?uY|NkO`y;Y&hy=2+Am7)ZtD!}p*7^buzf#c zy+SaqwtC#*Ii!?%jbuZMF%b`A7JD#XQV+^8&JglI+k_9ZCf%%Eu>Gc2R=8UVy8~m| zyATr!SymoE^O|x2?xpBvr>4%34MaAtwgWQWyeOJzJNe?nr84fW=S-;&_Px~Zh~n;- zmfl>|W1-2zw)xHWLjtmFHEl{T@zqJYk1U$d|tc5B~_V#U7LF?6RXeb-jfXNvw64dZux z6{U|~x{__KIYor zTucf2Dw&J^30_}tfiimdCL@GAFTk`ND(idJqIve7INuY-!B78Gp!Tkqg)OdE40jfsDOoYiz2%Owm0OKvK`3t}8Nz5?CZ_{gC_NS=_r zwhylokz0{lnyT5J1W2JKuLehot(ZKdA$~?EyitLGDY9UlcPfGC_`^!X=HQgxnk$~nFW%(S1uH@~Dz|TnZb|)Ubxio9E$dr2L zYZiUaIrDqftrlR)&qD%wHR>~|{U6k}3&9aNzD}h)JI~Y(95zw-YhLNS24rf<7_{X- z6{Tef^sOjvrKDBQ4+6yPpfJB$AX3ohDW|V_BMzQ2xmC1-kNlPitO79r8~`s}P@>zKLKHD_%(yB{Ks|} z;Vjc8Ev*_e@t0x*9a~GYg#1hlf(k;S7fbmN)i<32nuWa8wM82c9S>0`QLBS$ z#2U=`0wPd~AC{CKR`!bvc*QCnH!}aJ4M_c&ZaExNY;A7HuI(?FiMLvkSHMLnb32fF zEEwJ^0r8euT5X?|SD@6CgF1T5lnCU#%Sf49Dz?%w&tA7&#R@U?(!ht9iOG|a!&F8u z{Y)Yb2s(2`-ghA`;M8nps?MznXAfJc#4DH-q#2D6f$qJ`zoy8b*)%9t7cMs8=Z_1>{y!$4u(+Po-#;;e%oN zZr&`L$X>V4)G$$^EiGn<&g3u*EzXdsDdbTmSHoz5z%DE0mJ;X~q!z@{Eeg}Ilm?Gq zMow7N>$bu$JKCty2L>z!gc5Z}Kgi9@x{~eJfW*ix%pEGhg+EdNwLDVYg^i%|aa$cgk* zEH!~x3Iu%y6;BKpTg@0rTQ4B36gj@jLBnhZs6yfuVziOTEO1e#nn+NR|uMgUgws#T&3m1 z2xHF4OF+Ze67MbQQqwW*v&#$TCcEiMW&D<^>2EPYn6`@f-fBW_b=%x-FsVn5CJm!s zOq9%gRb;P3fwbk#T}CQ?wSc$?(;+e?ZMFTCC|r^ULZnxvT_4N8($>22;8p$c_Df*4 zLkL*PTaxysL>|kMMc=Y47@kRiS}G7*`Y$44`TC_oDzDF5%#JXX(X*)g%Rugl<_J6; zf;`&K_VEi@nF$spqwYI{jWUoYJ!bu(pA5idEEu2G3R3U0#r;IMmrm}KKxKWw zuy4Yu%Wregy_PhK+VV+lz3#BzEk%ADgACBApv8$r| zh})k(V0{JPa8P@F^)r-C@$X(+4-wZL;F39hE}>2V);{WS?Wf)muemKsv#7_AvXG~3 zO?FDrmu>`B=&O4OxJB$JM)Ji+XRcx{AV4KsSGc5OsJmbLQe}BtcV2u+R@o-xdb2>^ zlxo?ZO92a-vShC^epjh;orU6_EKdEaw1$8!vYG^!)Ph3`?cFa9-ARv;Yw3fjjD65+ z3+}c++JwQ25@{Hpy~P7>W%850?E_X6Wu*=yutn0(u=8t#w8q0eC0t*SUW;@s zrE`5bi-)w|Fkkmit9%kmp1ZqRR`NPx1HOTp4o7&#c&Ljnq+Vn=L@s9Z1y&CVTMR;8 zzEw=L9d=7s>P^k{n;PobG5hyvdM3);(#;HJ0ZOTrQmgl+Ycum9)KI(#cv0xBMolnV z(7J^}G7I)9G-)_W;3Z_%8`ZLwq5!ub1|jRb?k^kA9x}TbbHYaXBdss6;b{EExlDF_ z5zznCEVO0-X~58eI?J@c|O8vhP3DRGe3Hf`)z`U_qDEn|Tw2`YZhbS&m^StZbV;Gy3ML z76h))l`J$FbwO#da)Urk18pguQ81`g7Fhj-+-RRUzir4qf%(rX2e{Zj6YtcZqQ`R3 zmaZsW#0gf0x-NycjkdCGvH_(-1mMm5Ard}1xv94GlFprbh+8nhu~AUez>N5Kh{xOu4*pX&x+#u{{9Ht zL|>HuPFviqO;O`yGoQPz*jy5B;Z$kwlDJ=#{YmoW5Vq($=2~8bGxG7?_6lN-S^Sz3 znUifIcit~bv#7_2AT8flN0UG7Vk^Mr0sjt1^ex+l#wC=ChAivt4J#4NZoe3zmc$hY&UEV>u z!1V=_FY*VaS=8fgldq1OWWl>#a3Qhm z=G&cqBk#S~*zTsNe@uK$BtF~>Z<}(MEZBd#VV@Y^w~9-~^tQ=%@kMcWdrK>$J)mLy zhHg@#w<`H4tA?agmYfeacjD+NMj4%{2jycl z$X!tWqadN-aI1~?<{bAoI_|&}cU*DZ!Ddt= z~5!l9*2u9?m0&9|ep(+$`C4H8Y{KluN4^ZJ5y(B^_eW~*yW&ueQV z(Haz9JK?%1?)GXs0GkPlX3v5T^S15`+!%9?EvbyHCgSbVK*J}Z{BKIG#VSQZUz=^B z?}gYSjI^}MxOYYSgwHvz|1xfZV(*ki#kdHLS6v@;nt$rssu1vMYwQ6NlScM79b z`;^2ce%kV9bo3?zZ7CX)FGP5FUGlH}1C-t|*W$I`8Tc8AUYBL0r5%txB3y=m+-{-;tL0I9}-qIyNr33b!Vdtv1tE2}^m;`$%d3A$G6p z)Z`l*ShN+J96xeHUb$~0zypeAZk;-p{Vphn*smHozJoAz==dYUw1<7ec&=^Hp46#f zJc<#EzF+QdXc&^o!x>ZhYSG38IPP!SVnYr(;}?is>`=7p%tIsQ7Jo(28I3xOx<>V< zw9aF$>!GH!F547c5u5mDA83<+?ZnZ(%Kq!mAGE$~d~fTl57PP~8{fvw*4}ZmA>W31 zTVG`3Yy4VYWaHbo+1k^a4f!_QUpD01*t|LZmYXj%HrIIk`2*Hh7xD@d*!X+6z0 zGm8Cu6+Stw!!{GH{8K5dO5824t1ygUbx*c@y12f;M)u2RtUF}MH-`>MXqIyi@?fyPhP~)f`M9) zj;lr2wGX4g<~MZCGs+D7Co|)2vkHZgU_E4;n2gCb<>9N#_|WqZN-1|y3eEQU^yi=S zzX4E70|XQR000O8o4jy5YTQk2bQl2uuTum74*&oFWo~C|X>({Vc5h=Yba-@J+U=6` zBoGDQ|5kY&UKg8g6O@6GCbJu_Ueo6^L91NO(*(%Jo6OA4`rEI+{C5AOe}C-G8|fCh z@5Wrtbo<{S>5h9ua($)kPme0CPN+=gx=+8fj#-$?bavXoX+sexzx48GV|aG`#xqCYwz zQ2&ZlnW`h`3xYFEfS)a?R;qZud{x+@9tTeO-=ny$@`ApJi*e zHWiJOfB{8&8oHVz>WDPpJtFZ4(RG9AIT+6n3l$3I2O3~AGuDM$4Yr=up5k(5!4Xoa ztS-wKbC&e-17ejwd0U>`iC&9E&8Mw478)sm zK4GE2JS-dS^+@G0hp0FGi>0YppgGDnzVt+K5yMEgP{YY`{q9 zdgYpJXkV?eR#=B64{EJ>cC&8%f2E=Byw%7nSSAMhuoGG%CD11WtAyr~KjY-Vw8{@V)ArcMqu^Og+br+_QhaOk<~lZi}ijEI1CLvSUEei|fx|1XAx)3kcJi9LJt8FP@+San2YcY4H-4Z|lvzYxF$Rqkjq)G@U2%0XG#k@9aX-nN7$8vd7 zr13?4Rz=B~GEuHz4;T>(w=Hc~Xy_xE9X+Rl{JnMbw3^QGC~xM)b+@)1 zS2@ku-X7!7k++3>kBHLX{D~X!_f(Tz6Q4Y`!>fL`nz}F*@b2Gv#pt2|_T(OE4&6p1 z_RB)$QMqVb9FSv4T+F4y9M%>lx};AQcfL6m8eHQXa(_kQHJOD<$Q&haV?u@GA%|OC z&50-8FUjF*T_SbLmjcbv^L~s+DsZbKz`m^IPTz5JwB%!2Lv%&>(~(Kfxk|5G|Tn!jpkE^H`*DswYt#gakO(kV(fRqIqoT=tqdEEp&p+IAFJM^>LK3N z?LrO)26lwEyY}?)=gzCrUW#`Cl;^o>fq2 zzRl9DgIPZqaU@(4f9f37+kw>pfp{QftHFlrQQG$%RlRE7)T~CBN{Gvl_^Wz za-`kpspnK(stmqHkQXV;Tz3f995m0oon<^adn#+CYmseW62GV2&*ZJ5?d{%r+&}4V zG~I*p{o@d2bdOwjPrF;ao5HSwqa@7b?aLb#4-S46HJd1x(>vHS{}2TC7lMep!q_#<_1@6XhKCb?VnCdqYYetoq&eZS@YNngo^cIVdfxLhxlt`O3Bk*$=Z;udY&&vuI)6q z`@wGateOoL^=wBgH$*$*l`3UN8%{p81CsW`6r*% zu|b8%_yh~rooYRAsXT?+^aa%~q9Z<;7oHUOVqiXZ7BWzU$$C$tb-0b85{koX-weD~ zfn1n0T7`J#8ZxfcDH7ntk5 zDKN4bV|W_c=PqyR?eD{*Dq?3?7WA~=Jx;mfeelnml!2|9x^hK&f9K0p!4ohN+RiXf zMag&Y)vt2Fvvn%OEVW7PeF$T?>s(p8h#!;&5fl(t3i&De7uycO3^# zD{hDHbTNFztJQ?GzK zG=QFso1-X7#Q;HT!xLAU<6mc;*VUU=H!Z3L?+hD`o`)LLPJmm^I#Y$h69xL<_mRJH zJHzA9G`g;pzfX8aQN-nOmXdl-ih`ecNgn-a$`B;)#Yv-?IJkQMByU8un@eALbCkAc zwO~6ZPYqqbWjY}gc0n5Tw+1+_ZwJ;ev?Ezg&VlyO`%&g%v;KS5t>i?#aQSE(7WO@C zYNPc>7VN1^s@XJV9j!;EU4tqiKM>G}PgW4mF;T8b-zwgua`J>l(PCp!28MP0jx@rT z(@omYN9KIB>V25BYhfg2-X;=d$j(q9ikgwgqKwXDH=lYc+l$5TnQQf|HmGs|h%?&( zloaW!=T}1DJ1n|HZX8c*IQz{78xc8lLZ*zuBTKdlHp}C3+Mm9=KZ_zTuX>Zv7KR#u zRJ0{aI}IK~f$#GL{HQpxB92^mxM7)vA0MjuMdMmtUNrno1FV}ql1aW!td%|GyIHB}M!V&A8oFB6!j^*9DymlhTiIHElofkRQR>}9Q+;gU zUnjp=nZ>eYsDz*1Jn~vx&Jvfd)!Ybd>A1^y(a+7d{$#}};03hPCUEni`Dy|j?c4L! zx;k1#4*Zda`qTAEmpQ)E6=}esT_4?@@B1fh>e0~-2A|=exrZW->rVBi)?C$`J!>5h zzfq#h`E$2NlYDxebyLrd;IML8PB&U9xu%|tMMJh-N8VQB=|`Q_CQTR0V_Y>B!>0e% zg|gTlFLN))yC@z^_y@f`$U`5QGgmdJq!SB+J|8xPA`F>v!Z3fypz8?YwALbK zs00kS7_sM;>zGgp;=x`EV>Q+9{cuLtE%Vq|449U+u%+N(MAa&*L#r&*wZI%!hB-@R zYxz-DmG8gPvKF=$cH}qeY&s#Kx%-y3!2)a@|Nk0_vqzfa9H(PTqLD`ArJ<jn0%7v_I2I12MfUbcnE#7Dyk(etnRd}5Q)!9ym zdXvz~g~XPvc~rECQPf<2o%xNvah&Gbb17-lw)!-$PGty_-MQ`nUmPiZw2aa~#MN8X zk#1*iHdxT+aXGYj?8oplWmKjibKQZFMU8A*PusN=V|Cuv3UkKsQf>&RvQ}}!|LF~{ z^vjzhxs9Vz!m=v49e{VbkGE9%H<$hv#Bo>PI&9;uL_9ldd|A8Yld z6+vQCd&T8wrXFV%q-msg{1tz^?A?F88Vc9_flT3USPGlfRIWS8p%+7ih!L84qybz0 zT_GEhDxsK{wKw3C%7jrGDFGv5e%-OD?RZ@$2lUPG(Jn(?zEf-Uj^T}V#7B#$)BlB$ zf>LJ&((Eq>_GInU6JP!J&_2l2<((qcu_jM)1(h zo0R>ioo2Z{^4l8aS;mCQq(K)$yF*`JCG9%BNFLf`US0R;3#ubhCFH|E1Nw+mp)iVU zb)kic2x}c03`2gjr)A#X9$D~(4A@RvSlGYUNZih_N(is?umLZAC5p;MByUH0EVQr+ zg);{Y_*)~<(f(oT473}?VJP~o4pP7yV`nXs4D$lWgAFnn`xU}2)_3klMVY;`>S*zm-v`^*z7ijU4XN}AFg@W;!&Gbvs^{_GvE>R^QF z%>pM&s-li$M>}4wVxb8ewk1i1Fe`Z3$K8&$4;C)$^T}9ID}esB0`Fhc zZZ1Y{nz4liRZ1<9XU^<&`uSp2)`HymW>M~81C>C9((C3^>fJcgRB&(&)DkW0jKUm+pMEm}1D7fYu%I%qng zcDf>3)b*iR!5;AtxBj52V5$L^q2^9D?}1RcqR+}y4g;B$BH5&Op*WFoan=5Zn1-w$ zeki3C$zo@#PRgKBo&6c}PN*gA2pA zoLF)b)WgV2>y^Fnc0=*iNABVN_xJqu{w*aos&p;Qg$tz-$YkQ!a^-#fWojXX(cjTM z!&L<5)p;I`%CzNyn^n-&JjVOb7Yj8*Y7<0k6S?;-PUzkMF6%!Z0JafYvp!Jht)>6z)o*s_JB3ilJuHIw;=brxCGv3VNSQBG}qd9krIBs(3=qLcEGwyv2OL zZdeRav^((oduS>xT`#gpE+nqYy62DN!GAs_fHFTFwE+2yHX- zURuIix;N~l)Wa2jy?{0>;Ks(IbV*fZRtG&kC?i6x4D({{OBTqsSQxW2TED4p-Ve_S zt@pPwqHC76mfFC@bUlb$tW*p0egBZ0uU6F;$Z4A!vzzf%X-jGC@efc>Ry2Llm1A09 zh1mGx!}}zof3v?1A;Y$kp5(IN$v`%i#XH{SJw;VG{3-cMgDj@0GhE^fJ4vOxLhcV= zGhUOIavU+EE&}{z0Z2G$I@zN-s+bEkak9B~X)8N@^jWD?{{%Gl+j7b|YH9_iR@>hc zL2P&i;K?@HqAJSPbrtl{(og#%Z8Ro2vDh^TK=6kJ7A`J4%37@mPxCJ;w@i5gl{Dwd zIVWmX^*B?NKY3~YP=l$6OrWt#AU_Ruj0NwKMD3|vE>&XG|IJZvdgQ6LHZy=b5?Vq1 zQD3XoC)FI~B^?xwG01CdqXPUm1b_7mG@GpyKMz2**vyjv2E+W-PGG4JpSBHL2ASa1zutl=rC-^OQS10i)%=fwnMAr zEB|#QBcvcXR{%sNPm}aG&1}Ps2av)h`M;oxqA~tM+mkB`UmR*L*&NGjVs{sDGzJht0HZl)5JhztMMDaQrlLTNMMIX7Kou5=%2JZL z6hf~DBb9CyN?0e9uC+oRlM*r{v?Ak~(8TXoE@PiIh<#g%@Anp2aNFUe_*l@xEF@&6>*e|@w$uLM2E-cS~+G4Iaa%7G;$ z9fW}k2em#EO09Pa)A~s>hca<2t*Txw4mCmKLse;A1v3oa_|#P;%d$dLCBM%Y7N_G9 z)#p=4mrC&h)Hdc2BFgexGuT=FhCygEGHbdHSsR%bO|o{`;{@%ZdwAn=-i`zrI7x0d zM%P#6<+*nXt14mmY{;{Z=hH&Fn+~j|JjW2R7Bo@5P?3*Il>SA_mg)!`5WJ*v5 z|EhQp4UvI*QMHFPwOK=7E!upK(52xP1lvzXZf#(>W|$+w=Jiv7*9|8E^P|{)38fOy zCh?p`eWZ#wA#RaxWJolUv;kaI9gUxFtg-OKo>=LJ>WRFskap=f$z2wB?hMD1PSm@` zQRAw(5E}*;@67<$x!*y7Y-l&LNgFrrmy6i4CuM0YNxY@vj;v+&@WL_2aThDEhbP;? z7}0KZM;**e`AaJ47l6|uP;VoP$Cr74iu|9XDrW)G%=K$jCuiG}FaPi$;ThpG)FRaz z(hS5)I`b283rn!Ig)1lY5q-MXn@2ePWlC;q-qX`V6ZK)6HL74tCW>fCctDrG&A-Kp zFLEY3d%ye`(FJQ5^$;9e&r}OrhR_Ecb5}z7F+7`X18PIy9*nZcfsH>e6TD<9^B7_Q z5^dKZa*P%GGS7S97;IVNhZd%d)_9}CK`OzGr#4I0{wjD! zcN*?=UxWv${=TbAez!`CbG%RL{-}saoRomn3xisk1D67ts2+MV-h3=x?(NNU>H4KJ zqRTSpCHXan3ag{}Fqjf=dnHkNZ6}_|62i&^63o<`x2YIy4axV$y>fhTWIm+e)KXRh zIf8xPk>X>__z+3NEH`*+0iTiRv!GUIeS1I`$g%T!)VwAJA&1$^G} ze8c}pT-&|5uCv7=^}Bb7s*5$fzbh_8r!} zA0Y_Bp+QefN%wW2?X?N&a}}1W{dxiR@R#7+m=tXpSF5d5Q5CMMf=YoNJaBaAikZsx zOGuMN4V<{!`h&;Vz?efJG*tpqsKR|1iQza&PeTzZfmWHAz##06>I2WAN_)c#V`GsI zU}htalM8O}yif3mv-L!ldSEV;UuE4~I_ZhehWPDjEo?Em9EUwELD#HzdQi&T0)MvR z^v98z#9eqqe8RP4b^pYIdk7g1l zZbalA6-`5{WocrzJmPB}4Td*=@N^P%<%pJce@xo5xmLqzWwTDylv*BiIt-ZCj7wFF zi*XYt|Ciz@ak#9Amxo|N)Ueux-~<3RON-h+`IEwuE*Ti6}=N zqRK^`_bzuSKfZ;;I{tJxxvNjsSkFMCryt}kj<#Bt`vy}lyqTh(bqXo*xP|L;-`9KE z@D%0-DXBQ@DB<8MPfY-m5L+EH#jal3PZzt0wO|jWDN!=oqZaeu+3SLnY?_ZD=o2GK@eojC$hT;vfCyR%H`qfO~u(If*N6U+f25+;AcO+@*hKe^5u##yt%xy z_Cl&4=2)Bf-yVt}ibmU~hSqXAjkfaloF8^B>jr#$AKN;*7-S)|-1IEe?Uq~;3bIZ( zt0%|a7H~V|+(5$aNZZr%R^nQzwWQyqzOzPF=)xj!)gdq?2$jRC@t#7PQC;-|t)GK|1M zDN4du0uDNav-W@gyiBopQJ4K3aOOldeyLk7fT2w{06w)szXDjU22n3?l8Y7xcQXjT zqZaWc$7WY<{KBVWDLR&J4~sp}uhp3b!4XPjgne!O3W}#IS24*7b<{tjy|?7=&Uvoh z0uqKMCBwEV4tg@F{k%lo{x{XviyZ^niu?QD+0z(U2?GFTH5k3WXXU`UE9JE?B;m6d zbCk-{6PY?CN&a%!lv`g2`^^&qJ?HXf~*u56t}U*&!_55z}2T6^96kEFU2g&)6B|XQn*5&TTN4hMNX$7 zw3;e2&5xBgnh(>VsPK13J}xS>>!47@!qvz@b_l#FX><<}fW?y})gdmkP7)<6)_Nck zLIl+b{H@F|6yL|DS6Xkhv6GCJ2d=Ky^aU2X67xzF?FpBy0wsD)*1gzle=~rsEE5@eVhf{}+YVxu$Z+vegR1?*uY_0#cl2M=ay(0k29VZl?+1(+Sine>j)eo}D&uriN9Y@s0 zl}}T7Xzv$9(`t|ytfGrS8aahe3G(#Ej&0Ko01Vt;uP$@iEoKGqCqq2r|f$!pN{XbmATsIMCQHUFA|Jgfeh^pWXe+b=bqd9hl z#HV3Im0!=ZF_Pb{_oymu6Jq2eUTxVc1*EGhe*gOK!a>bXc>uLcq$uVNB=Ll*Dh*e7MNqc4RvuBD6h& z9k-tPOSLtq{=vUdR+64Rhb5X*IaSWiLjNN5j&!;Ncb{2;66e|mYX09$X4|+bt8$H~ zoX{^PL#GnwqAEvj*&^eSHBn97gf7#=AUH4V#MVJwnl|b0HuPLsko+h4ekspvd~ezs z3YEm;_IPuHU>`u5J<-m!If_0emX^#owWl}%<(xXvF#O=u-<9c6y|t0ittfI0<*>%B zLXOLe&s;p5rQ-mJS1qtu*&#LwhHHrYH|Z*j1Ps>`Z-jr|2RcnEwS+IpKsu?^mS4Em za-zpU%*xI5s08^>Y!$}~;?p0FfhO{2#G0D8#pxo!4GJLvO;SVk}T!9;H`c94oD*9vS zypQ);1!VxNN`=j+K#S7+QkuC0pNc(&lkxg;)~Ensb*Vbt084M5%XqHBPKt6 z%aTD=o*u^LWl`26qsmcgn)u*N8X9yQi?M6WEl}GwqRE`RbsQ>RPRhzr;<$=yy6sel zyi?@t-UAVj>QhY~Xj~n?PCduQJV@eapxtc|A-HDwProVU%2-$?k ztU^1>(bu878KL|sphu&1B)v}(YU3~TE8IYF7YvTmN5|~u+&mNwq>YTUQ=_g9D1Y8M zIe+AdWEI)H$hy6NPckYQexr^Rny4u#)aPY!PO$7P%dq%XkEow@X&o%4wqtYg;|u9$ zBIi`bw^vMqaJ0=X^g-Pp&eM{c=9p;srl?Y|mEz0s1d)a2C?e4L{}o5&QnjH7r#JsN zB9rw#|F9K&FX}oiGA3g1EMK8_TG+{mtL5TmUQ%g>i8u;?J@mV1u+cT+SwDSJL%dnhC{cfes53j$x-$VYWqf+@NGck&8QRaAW$CGXDNkS?Ru3=*$4f2ca zmQ6&@$0%e5f{*C4%Em*<>!Xd* zicJsMM7qx%0$J7c78)?AwMA@P;cwtD_il*npF=hIyIKp}3pJR>v_@=vsYiuzRcLHR zpzg!p4_orq^&;B~8C18ZDCk|0$}PmvpT%4D26-+a8(2FBKU;~iz*<_rPFwDby#+*o zJ8DIY_N>5V*5XP`9(4;zmYpjX)XNC*W&fHY@OMS3f~vDwitXMM zGTWK3y&E(}ZgmCb;iRDcPN_h=>RQTIo_j-EZQZL^XVACZ{S3Uo%QNk__uF-g7dopu zSMZ8b8*eK-=^BwFV^g(Xe$WBhBZM{@9NBYr&}VgC&sA;)8!yQDl&q}_ zO+4zbR1l(==e!(;GkDnY;d`v-$yQk!G}=@_KG!2wvcwh1^A(ybY3Vkr*&wPmltpfv z=UeD(;woY6y>N_}GnH+P_G|a^@zG?V6P(;Nz>F8JT>L5e-g_>v=qL;`On36uMLC!l zddf%%H6d6W(Vyb|kdD6moXusWSr;Ax8hod}Z2x8G+&-AF0N>Ky-pAKe4wA~3waqsdlr{Y+_T5X9yFRLPqb`Z-WGrx4wwf9-S zH3bEfU#Xd_=-W&IIVKRXLq{BTdbxjJ|I|%(MV+>YTPbQ6Xqup?f@;?W8(@cXB+i- zRZpt1u#o?Z!2JE+$CuFL>Umh4?47mz!5qdOc-n3erVC;#jVV=J89XU#7q%=PSXZC#Q*Drqx&S8%5Kpn# z>t|FR4@z6f`sHJdD@6o%$kk=d_%^F~FpUMj>FbdX=ihZL`DCW!%uwoz;b_|)FuYX~ zz&1;acpyS~j#y+a$H~m|VH%NWws5yc1Fw{6U+*pUF?`H^dogF(DTpsj8pOTF@fKc# z!}!|O9Gm95P-@kb88~2cp3MwVoPd#Dzqa%U&f_Nq(CO=g)@Bv0;@aI8} zGYF2>uIrllP+!0`l->wHOko4}C~}iuF8&uS*nbJcr(6LjTXMJ%(J zjACpK@a-5|h0;Jun56v?<{a`t>-=%YVA87TqQ4WndE_uKrv4CcZq6|II`_P4zXAA) zzEoOAka1B6tDqQ3Nle$lu2E{JTam|<2k0}LEOU~VV(~m5aveljpt}si#p!ev&7{?+ z?&-OR#!{d>dQ3gRYf22@67A1$G_6kwdi63pBN+=!_qx={DJH`je>~ol7TDBSMBjScuvFcJ-$iKN zGjOdaS$qvw0hcD?FTYvaA5^pu>?yK3{r&uqIJQ*G%~RFEVbgonrmt_8{-RlGU8h~g zVDoW%et&1$i+HBwEQ)`0)c02gr`y^@3vXDa(c~tO~T;2xlH+4`1g?fSdKzu5Z-B@s6k_nog zP`pcOBMD4_Ap8=ommA{!jLf$a4vC|L8ZCzqaGNhl70%Np{vevo$r^k@``wO{{g!xYfc3~YsVax%L&A4Tui1arq{7+ zn{+k1`i1x{D@IFT%r|ZDGdge_MEVgekI0p+LWm|ue$RDe7@&uhn$R&o7={g&k!$;%DV|eQ3jXLd zV#?^_CpYYGaRi~SHiUHn^}&=MDvZZD?IjQyL2}ZXL?1t;jfeisXXe7h@LP3$h*)-` z?Ju~1mrl)-jOYNFEcCX*QM)4ln^yAKaB2t}nDYQ06hS&fM&D^$S^oOL{>L?g9A*yx z-al*N$r=KrUebU+kVB|8$^$TwPEms0n)pW&ue_PQxv;FD@ddKZ_go59pgW7XB?Nz6 zLhRzFL14y)%Fvj67h~UzB)p;M`u_W?G5+F>$&>?I#Pj)c;KsneJ2L;{583LYbLUMI zv6yTD5v2tQ9dAuOa-j6CRr|V_s_=|>7c>AVIYh1+WMeyaY9k+QK2AY;9YIZ&3j>-@ zEnhs}kPe4w0~@95&m2)0D9Q(;hM%s7A@^u~I!ea1l%+fEb;4d~`!4c}GP(JxE}gV! zDzUGijJ@mVKCmS(yFHCY$6SNTvZo{D9iB8$luH_#x^h+yKP}(}FH&X9L7#I2k@C)L zN(e5jB?uTc=(V{1t_;w=z@EedSR9$>xFlNn(PP?Yb(sES6Hj~E`Lv|Fp~bWnU;C`` zy|U&OO0ZURilfLpw)kq~qX_s$jgsuB-|YO~#~Uy{%%Uz1OvJB<%7-L%12hqX9< zXZwCO32GW=Z+tYIINki*?R_ z@@zWGC1WqwAjjv!O<_BGIs^!xS*gYl2${20iO@>wiK-_ToZ24Ccr~|`}H}g3gk4E)o2rI(x0oVB8WZRDPVLnNXAw_ z8T!9-p4lkp)*0b$g-d*Ti1Kz+>p(7cgLu$vkpABSVY;(+dZPQy@*Kf^BEf))>F{&W zkpbtEZgRk#;gv7tf164)9=;wEz<7AvCN}i7;lMHf4b%G&($7LnQ-)4J)i*}YR!tAf zh&M@ftJfzYe~#=ve4e9D)bc|G$vWErqy8agqx3D9#2L@fZujtGVhPWJ1Aaj9$EP|6 zdd-X~kEZ-zA3j1psX*txYyJ^OW^HjS<4&0EQ63oqN*H`YR_Uc;@ZbI&x0)fJpdN^b zXV4B`l~a43)u>CX(;`@W6B$WlnmBGj6=nl=dd|JoPS?g)-l?>W+TX_yX)>Ph$2QH_ zQj3>KsQ~QZ&%&RQ2UhXcbDNKPq_FJ5_c&8-`rKyCVuie9dNSsT7Aci~yIyvFsK{+= zM4XE_Z(dU9*c*Lp39lEt=<0P(pVJ*hmJqx@@ND=jn#OXgX$%lEoZD?}ssH%riqXUI z0kQvG@p%pYz2NM67G-;!tjxBW{(F4W&wmxheCB-HoRqr6N;#-TV8OExZFJ$rZe7Md z?3x1R0i~Vqb`W;P8<{~>*E5hV%&q!|8U>JqXNbO&Q8oEjjCG3wP0pl**Uhn!KfNBU zYH(Z6??#^!J6=hFn`+fS-=itP#dYsblecBN9tDLC#(@<AU9dkH)Yn>8dNZ*Xr?)*mwQmmrw7H1LiIW>|!R*aaA{?aT; zPVGA0LI6E5MT#Z})nfBVP`AV|?Gu$b=8Bc%_B zLo2|x`OL)U`z&O_f?X31=sELDC(kDH-EojgE z!m`k+{Nsbv=y#$gaiOx`+?9Kt*{OT%v~g@h$Lpo3DvTZNXQ|hXK6DkrF&qXU;j3GY zozdbiw(4Tr-pAcgKV3_U4W+YOdnQJ$+OP;S30(hWUCRL>S~8N3P`pn)Gbk&CguR(u zDTAmx0xPsc6m<+Mgl6#x9Z9YsDlxA7P~;de()Al4D2!`RX_*6cY-K@I&dseyEBbn! z;E^5ZRNYx2?u|Nq*?1gezql-LxNYpQW}0qce(FNwY`W`6QzTW3lD;8&g+4yvM4u~4 zuM6#Gt=fIj*ZII&a@_raxeDISrht>lTP5X=oQsYhK0x<8>nPM0 z@u6Dy?EIrm+-4+9zj5_{RtlagL{KT}daAP0B$rY4(1{jdB|*SAS@YNQ*!nPHZK;Cv zuDy#YLVQU2&*rRqOg>>XX%aQWgz9IU#L7}wjshomqk=9sQ~DhcOB|)3m6t&%D&{7$ zeH9)XQvfsQh%OUtyMLnYj||X0Go%I%_`|K}t`+GHl~A4bu38Y^s;F%6mB>PNCoAPw zN%wTHI!(-J7{gs$KkC}-9W5t}J%^g)H7YI(*{}=)c$`d%iE+z|@XktP0Tz-ZLrMQ+ zhuII6{2I?zwGPbmFx*8V#LB)u{jzvstO5@cjd-X?srde$xr7&QUq<=V2~ zW^`L2g0|fbl{L9yLD5OJF1QJEU~OjpzwTz@QSI+{mZd!Na>@%UlGGE7JhiL)<6NOv zr0Yt|umF0j>nFo*9_Vgtg*eu4zC|JaN{x?Y7$80RCU+FWltA$U@=AYA?MEMl^~7ok z>AS_OW!RyzjhR}Y@52hQ_2HmSEr^%e)@#M!1FZ#=*W8k?^fw}}3g{g>ZLDk83AxhV zkN_$D_7yjq-^vT+f+CPv_mR5cfux4S7v#4KxEdk4OT!}KA57OH?h7%RHZacn%8(uS zQDr0&PIC{iszgqve;Q0Hd*mU51C5?rSLgSfY-$+QH9}TSx*m(tWalK&RxM(^GrsOfu`!n%y9s;AJ#j$XadcLT5bv{ubsv=_HJlrZ$~W_j$Y zX9;3OFU}cg_n8yI4H?N*{=llm02xVf9Ct9?XfTra`~EsDWq5{;0hR%4 zcHT`e^@1_wAohr(VzYV0fvckAdy?l0z`|Cf3z@Q?66KM(Q^KZvPyhyqFssxYBy*`)$GryCS0SNA#i^txY}UY z*g-;rFuF~>t6mc#5^3kuQOY0JupsYGA{_<2-9=xB0M>u=ZU!i7MNyOksg|ms8T~%+ zN`w~J5qm(bFi=(Gt>LxhSfL_{z-U$c^WTKd< z`XT5G9DA(}{GgyP5XirJyNCTsC9)@$QJad@Q-)psH>dMp7FUr$f-I#qdD@TJvlzP% zmEQb<)YB2JKody{ueUK`;hRu8?CmF8Dv2O7GQmd)*0;S&J3l?guY_O#GdZmss8a&B zr|$9d9N4|l^6cQ*&9b+mUU^(K{IY3}@Gue4QnU~L509=Myc9fJO9P-J(l06PCzI+K z6Gt*fR0##*$K;ucdTJ31Y}k$x6i?zYbZD?tK=k0BYp@%Elvvtp2!eA^N?BDV6jk8V zhKjDB^%9x*7dI5PLTKA}!CdF838>Uq&2rS0k@}9Rg6pIOQC{qwrR)TlQ%S+%q`tAt zl$f~@8YcLqdd(t@DsX?5ZZEhflUNG$`f6@iTQ;n2z2s3%)pS_?{?1bDhJZq3HC5`) zX)g+P&8$n`J+leqHzNo)q3Ehbg2a>HZaNS=xA19~cDobb<}lxn1zBEyZjP>C-EAl0 z6o4Bacr>#sh7%zHSsmj+K-OTZ*Zgou>4vD6vGi>YV!jCQHynXj8g+tS5`HU%fa#!2 zf@Y6IrZ#DEZ|(EW>Tm9raqLgQc%Iw)VAVv#qbS%1O$YY&+KQp;%d4O-Nw^_3lnOGe zZnFqBlH?xTos;0MB6g%Y3yDO(07o?k*vTohPn%(0P^w8$IaIoo`k{_>HgPy!h-PiB;yzo&&`4;4 z>H_uOMM22C+pHy2@&>zB3Rt%$a;P#xf591eN@QB3ri;*O+Z4rgo5>h>{#hOyOur)p z2C=obJPDTOIR)A~A)<$@#+dvvVuUReO+YSKVp^ImN(WMrmJ^aYNqYo62bhM24J%T6 zqnyT=Q1D<}%e_qB-}EMM6N>BsBsE`IjSF+^y7Lt-1GIk^j6Y2wCEX4v54M8d+k%#U z5||Mc;yCCD?v`AqoleO~spRDh)GM?tNwEpu^{0wSFn1iI2{tKqB9Rf28 zF9qpSTp)AdlzJ6fP9TC&V&)=ndl6+i{{f5?rM+k95vHuTy&J<* zfu9fI!Ov$JR)zfnuoGPkbo)iBG*zFduSzO+rwWjyNL!(UJwx)zN5=ax*A|1j9gECb zQ`q?dBo3V*Y&rfZhbF#QlQLo@Kjb4WGKWX(%}1C7Abf^ma08RUOr8#`+y>FiSy_oC zk*z&&fzDhcjdd$(lX6pLb;zLLDQfM;*>%Zy#7NR*KB9_1vtr?OQiGNEOzRn6PmR)$ z6;KAo!R~`yZ_oIjC-T|F?;rG(Bcl z!E+6#gdpq^QVMT*sOJ1{AngvWVqG73r5&yj-iFby?3rC^E(=j(7ydGu()X4GiEr?7 zWW-=cOTZ|x_RO~|mMNr@#xEw${y#7&P=F2p(r{-X+%-QN`GSsJB{v?YDoBaPj9tCd)6gJYZC4MCFxyqX=`>( zE@7n@7&jcE-OTiL$^le$i(Fpy#3a=6M64}cLW?QSxeuXvN#|%LOQQJ>_J``2d%1sn0(r@s=2a&~ewT19>L2dG^qvZda zxbpWhFgX@*$9ENm`Tty`r*8|te7ee=Alk*S8F5Y$L_>nH_7MTUD5(Qv;?+zq@Y-utiP(PK#VLc9B(rDz?gN;R6-LX4)83i;k zB#!SY0D%yQ1-l1ho|zdr_WzPQ#{sFLOfR^1CZVUP*TJ2K_kS3fLhvM%Sfg3P=!Cf^ec!u3`kvXb7rGAd9#`Zr@bzy8=h;4N|HP@-eQHAlg$VZ;BEG`1 zX%w%V_gzm6{lVaeydGg`SZcfEgQ1m6+;0~j|BF-g^KP6TVRd+*r<*pIF^3ZtQI`Fe z2k*g;?|6mY6OmPb9}q&|)v=1tTUf61w7j}-{#)4Bz3%%k(8X2xGd7b*KfwJF&YvfD zn*VTl{38v|JZeX?uMyMqniCJyc+0m~4*f86MVA#D6K@94NXf9+r&h%x=tQ^{e2yj` zyA^S&W`$N?{5QW^e>xmUYFnXSv6TE_S|~UvjuOKsbKpx?eGq=DB@@dLl5S{f`8zh- z>&3!ng7SV$nk5ut2|x-G@U3nw<kI!cTsd8l zEJKB*H}Rh|d9WIW7nlUx7aNUV@_qlU4sa$4&g%{JcklxRa?1qTzZoRDm-e8tA4wnT_Bz2ihO9 zwy+6eo`$H?0baTlZt@C~eLm39JF15k}tbYhw#l2{ihc z77&2Ya0)y@2HI2cU*!QeP7lIWZkyO51-GPzd$VVgajrC>E48@eiCk7?Qg%|CA{C1r zo0S9%c+G@lqOK_aB@?uIC5ZibWcq}3dqul4eH49u4Nz6|iod>JJ^w~jFb8|6QDyoRQXNed*9$qg7+7jWA8l32q7}Y7P{B~f z{>QAINOvLZSfwZ*B!>(uB8Rz7*9mbBSCg)SqUL}c9_H0lLUe^hT1B{b1>Kj>VspJ! z`;DnF$f|?(!!VrxEpo7H-;gNvs1h=$yvZi|MG~X-p_TS6^?k+E;EE)mhOR|Q*u8#K z6IcjX@=R?(pNJ_FW7BD$^LaTLNYh@S`yV)|1(W+1Vt`xHw)R$L*d@ua@YRJ{`v7YN zYO=D4a-uU?(*j$~?m1`e0$0?9gC)FTVcB6%24+ehmL;%dE zWMU0KI>gQ%p&>67u5CIV}oQaacE2QN9^vwq`^uxheE zGH55sRT6ZGXQg=U8iGmqRym>|1>*!^iPAhh=~%#t>dK)6Wj&M;V6u^J?;O*m46=%s zks%LJ)b*X|m2j^`gE&kagO`r<1VF;Z(i>6N{7I|4N9l=C53GVsk)J>VDx?!-BeKS$ zAOky*rX|V!+}?oJ}|$2<|i%Fj4%e zI9~;$Bp#5&h&`4(i?}x;!!PL{YGh96RD_^Grr7;!TMnukH*JG1g{rhg*+hrb0wpTz z=?Uypkrd2klTg(UNnkGvgqE~n8N!*G)~*@6xJMYPHZS~(T{=w`=El>%WpSb+l6uvt zOxI+P@_LV(o`P+Kh-~|qY5?pu0lA=f>yDV5=rTM>T(4Nv5~ODw1y(4*u>VjGO)G8f z@~!Jz??X11FKRoAY~8pP^5-q{s}QX%)JiY`lCq3E$I4Qa9TM!4k@c7=ojl6BLP*6_ z{qGaZZwVx40l3))J7zf=z$F$5ma3`H97jQ9;}J9T_iuI@p)U`jo?>;ykNHF90lIhG z1cgK3bL>{|p{&)QTw#NO&PA(-v^tZbH35s}l_s0Rlj%!dySJZ4?7NE}pAS%#&Y7)~ zffM10=BFT2l(4E{V?21Jxc(NwvQb*T->7|vMu{M8vaGo(vE%@gvw*aKR8blQ(>Hd=Cn@a?+mRY2AYT`-Sei z3o+rZ`1P9J`iysv=Z2Nyg`8E6tzMW>bFV9U96KP~N}1sO3W?S*>M#p!^e*O!7B`C& zitrfV1>vODRxJBNc|gS)D+1+KE)o4EJ8X6_`sSMDb2K@17%j9H!kG{#6cuwhH^^hq z+g)Zpv(EY9;tvn{s}MbP7P=keoC5KA!r&lU_iI2&d- z%5{y&@nM5DTLmuXx_1(Tx(`r_AwD&aWL}BDve^u46sD>Kq2!ParaS65dRJ-GA(!kC z9wrW&LW<>}C8&RV@OEo^-INdAw044w}W+PWnhiaRj-xM zwMV#s|2%o^soLNFsy))`pqErAb|qIFhtjt`ufIEZ_%|??qqoB^R;~nRXp$Em-ejev=tk9_dcMP&(__5Zp0vS4i|O7R z&hylFPuIoX-D(n*`khg&d5gE_X~%pY>Y8sk8h|y-Qs$o*#%`@-n`C0Fz7B%UQEwXH zq2TqXP#+1@#dn5Vb5nFP^Xvh*Jqh3*Q~uXC=BMBAkeOh(^_Wx+S|61jGo{sDO1lYLNWXSMKG_P57|Z%s<|wta9*g)CjN zWJU%>_@})`w=FQ`uhMjbN-H5G98s!pIM$RITAZJ@c<|w&c5~QoZg1+(t;Qq)iC;g- zMD`|t1JdwtLT)?;8PJNi>$%&OU46mMelspY|BULlL%o2KDhY{~t$J70_n0 zMB7r_-Q6966f15C?(RX07cJ7_?(PtR7Wbk>i@Q^xxV!t!e;@Od{dRZGnK?UREe}4k z)RiIp$}y5#o))mpM%?$-hyYM2#Owv`nrIA4-%K*8&awI<(>mbPsME^l__j|yj2w>CL?~1G3hMlxb4p3DLpa_fiD)v41^xSI zxfg`YjF`F>{RKEV0^O*B&wOv66ONLRh@5>=Q}C@)X8B{T3z={+9hAhTl9Jf(-L3#; zq31Lt3QWBl^w2iSMjA1pHkuNU+h|gi7&JiR-hds@-uO`tJ%1}wLRs;380nv;6kbfd zyvMm>)PQI{VF;@r`@gBBbB-=#!r>w-MEZPBg%zkggVzZ4+}so83z@j_RzmRS_u4<| zv*L|&U zYD&F!Lhx7h&oG~|c0JYamIQOYKbt|ZV-z-y{ElV__KVwEfIoM*us3QO@pFAP>B3a! z(6U$UCY6Ntbbb|@>^oQHZj|1MG(?aw!fG#bI=tM{yDj(ky8m*@OA$0@uT3Jsfm)9iCEtdP51VgPp{7Jd~v&{tgF#n!Xmks^|%zZJ| zT*e^Ff=M<_r_6gF7GVb9{ORLQQp9LUJ4mird=qW0Jm6vV>nAoPLrb+j|4qAV|*?g)(K!y8|aV-FsF!r-SCu5CP)bM1GbA8_dp+b&4V!E;tS zZh}u%{EbEz8xlqZiBX$bq^AAO%pa{nyAswv<1$oqQ|M-a|Oh6@w)o98oI^3Yu z99s#uO~ofP!tUqACn{4{O5<~SX5f+;V)ffPH^>mSbp|+-I=qhxfPD29D!;ht4^J6G zmQKa^&9qo@^QoZ%HLrN`x*^{PVcqUo=J1Q|Ig}@P4u0kVnC$!g5U+`4cDjGcl(iTF z^S4WgF?*}rxS#4C&;Q-YH!;Sjumj@|uVS$|PD$VL!GRO{p)K5X$I)1FOnyNe=pgvR*Qw9aY&)&`H0tlWZ<_$ZZnW zH`L#?g|_?NP9uytTEz%Tzto21n>#P^prj)n7|8NtlevPWW+`#T%JufYJM;FTpE*@0 zE9A$TN8iEU^e#W%7VG-sH8$LCQ9j(+3U}wL54X!}eW=s0Z7WP;Zb+eR9T)w8B1e$( z=FG$KYccG?%+5Q;m4d7C4e=b<#-&ludr` z@f2YDqs-@M@d z%jN}kzdk-(NKpehuU9%@;dYMf2l>q7^*?S##FRt+EU%j9f7b#nk0!`PZJo@i41n%x z9nn$XnN0m*$iR!Hi|G|p(~s{40wW2^(={L^LK%RB5`3)#25uCUD?TsE>jXPLc^Bc6 z_|SiF)*9|!MmOpD6$x0%F0h2=cIkB{yh^yq2;XIB0`NG8b0HXN6 zS+z#vW@^Ua=tWmmj8%rx?VcCyZ_ZU2E9BAO22Hp_nPmNt@GF#5Pp1Ukju)KWY@ETs z)YC;$^Q-iQ7$u-z7B+z`bjK z4A5%I&tB5%Q~?bQtNCR^VNM_5cM*>^1F4flC4eT#r8-m-;qzXfcy+*}H1lw#Qa73% z`P}MR$zs;@%r}ZDJ8&0sS2A^!eIG}%fB1zrgsd4SUCP2H=lWbz=bxP!WOJhIqH4M- z=bk9Z<9h!4M|laGagl9W%Xhx4Dv|K4!TE>yx1o%5rF)pwhXwT-)W(x{xHY^N`)Eh@eIp3NE=xp@vUqUD zC~6PR?|Q;5MX|>U+s7dM>luKEmJP#)ZjgjUSzzg-Yx*ZjfV_7B!sGDT9nXT<;9dr* z198n}ChQ=#fBC~?ne!n#7P%kWzpdL6H>sV8`E&GO=78qH(uU1<&x%>G0Qe&H#1ye2 zw2kF)I}!dnyM35XP5_YsO|xcs{9`DL9GsWx(39czAWQ-!AHmc0DN$6zUPS1xkrtFu zlm5PTBx$r_wGGi6TQW0zEEf0{tSnKNlIYj{aX?rwLJ%vbPUB`yx?aY>+Y|l;AzKJe zJ60p!2ek@9f^cn8H7+yeJ|7C107aY6bjQ<(JY`I9S!xzD>YI8uqWi!8~78B7AJ8%MVfMTeq=87t@u)!UEjP}ez-=8$8p zHM=l9+PY|{w38Zw zFslZ;?}9twxEKrH+CweUfzX4qU`FiISH=h7tqOUIO}>vFjbxjvQkqh9>*WROmAZWG z<{sM#=cB<3_{2Bmor_)75X<4pV=MD7b|TRaIRg!t%ut4QZdprT`klBWD11lYS8=V# zRF;AcH5c9jckYbska|ksC|MDvzV8?aoQ-Qc3hSoatm(8hudq_Apcn(|KtP@qZU5|4 z{Fd~pvg@NWaI`jO42#&<2L{|g9&L!VNdsR7K05^X8QfOc0kvPo&;C-(Nl z>GvvDj+LRg#Y8%ICCy0~TD{ygma1qlYz`j%@xkl3*j1TM3D1IFs|H2SD$}`DwnrgG z?}0?Grb(Ea7hAz8UNrl#j%x6sa#fRbI50h8xSXU#CfEqDSb`n)-B+?KJW*mah$*@y zG&p}2i@wpDG>n0I$+D$1&dh+fXkNw^Vho1}fhAxDw$to)rPOiYh=zV`uMUIlzprEDu4*wGT3p~1ocBI@WI88VnCzZ zOf=LiA|jsr-v)La=>5~NU{@LtLzo6N;+j2*<*x?vKwoG_)~Hlylrl-CEx*Jk|4dQd z^>Gh|ju#b(=X}^hK)5UtB^HgIr>k#_Jcd?%1k)JvQjD;SmS>v8BM$vl08M)YAg-vL zmmO+{)rTg+sXgU2=)CzF#8JL65>w?QFk zK+(6E-N6B&G#4rm!`}Pu5X3T8H+6*-=2d?w4CD#;v62Gljv72a@(`ZE7+MD|Ok%i< zCwna-X)uBzrWG+#ei9M|kGV<>XL%nDHoS7aH~n6E>#NV01% z^Z7Lka3j7|s4aQ^%LCtR%V7AGw@-5@b%(Q|7t9t;@+^y|pT?Lp4+0PaauUt@ca{~7 z(g0;2^g{K@TTIpVDLsWBzZW@-ID~4>gAiOM7=-8tQ`}P5HJvncT)KIRtX%-4p=8J(2lv%A>6DBM2ML7ynSG@%6ac3E zKa>%S)K|Ea1QbOl3{pt&Pw=%Z-;AH%WnQM&WjZWMIo{K#s}JxwQ60?F90 zdsK>IZuE~T{gC$*ke%3TkL-ny9)|a4BbkiAqLYU&loT?d(f23h^I>mmD7=K?mgb@b zG_|0wo?s)tqcbqKOyZbyssNPCW@hYrm%BPJ;Xt&@9gWM4-GUOvVu(;iR)Ko0;LD}F zIVD#J(PFnRBf*p&+WuWD(XZ7#?J>CYLZj93A0_C|G|Qo;Wx`O0RT*{Sr_d3A*7*ls z0FCm{HkG?%O)u8B%)``(H_$UhFIS6R( z{LGdF_I@#qa`)DZd5Ll{){gyIqgO0^Iy!14DY!KBB<#0loR9ntFN+oO=C0vCI<63H zZm&x&ur4@I;hi=ieD(@8EgEMqZBQrstH%9~nPU0xDl_#a%G@ul)9nm!;(lVqJSZbj zhp?HFCN^4WGhvskz$D#)1=dF3)jT(Hmu)C3?ohH1N+<*5U4{44^=&Q#b%twPsY`E3 z=Z4tFHkWbJ{WWaQAv~x346L-zN@|a*{lipr8W4;8ElU?VNZ>SoK+3FPF}PfVal1TS zOrgj~_g!M|Y)l*WdJQ2399+0WXK;Q2Xko?gkyH&JC|;qWC9g?hx)UJP#%6y7(&&UC z<5C(`(?P|^@k0f~>WKqR8=#ge^Ot+pYQ`NL?RhHgoGNgbGS zuikh@04{Se38j%|hj{o(dTXjBMKUcdlJV2emu+fBR(@&v%@E0* zHO&t0V;P8K%IL!|sGGPm z+vG;^FP6m~X0=T7o|Lt{($4$ohvYDP#P7aSR#5k>%-RR4CR7=&F?%v}hb zmmB_&z$>Y~a>^3>35J)+vZ=?T(~=HC*?uB_YXt!h>L?KuHg}-ad`=Tu1G2;Q&)SRlYfBV%AJhbFl9f8S@AW)}?``1uO5-!!P_*ni*a@=ay3AjX z`Fj2RCf4tFr<|3er8C^cSXG#Lq+OX9dhoTIcscKL{oywUVTwdm6ad&BitYe8w3WB_ z;*{R*!kO-=K}zCMhRlaRRra<~#9;Q!H!G?izK^yi#AselCnkb3 zE!e&;m2?u8MtAY#h4K+=M%z9n#P9B++MJ2SGs9ip(&mJJAp7XJp}5w6bm5-+mS(q| zXr#lYnw+geU=x+qLk1yZ==`(rR);J!MvN=waFaFip9kzi13an4YlkY1L0m|U7% z674U8k^#fF)s{yQ@NtoLOG=#EtCQ7FLjo_MD%fFbCX<>oJOhw)7-Wpz8;@zhuZ zBQ*7i2%qlg2Lg11&DZsiwM-*<^?h$Fp;!5cN3Qh`PQ;;+`x!AW783t_PP&R|_5Nic zG$@oU#ILwAS)Ud~DrBI3!(8e-+~sjFqi%S}0H zeFJik)Vc3tQVZEmh#DS2c-4v$>+Pw_zHQCEu1q%@oQoro(@XIE;$D zCo_#%FmO`hN;SeniU7}z`w~pnVMQDXZ6H@C^kO(UQ9wL`Q#HS3nC!||_f=|h0!*E> z?B;o|VC-e+mj-VJ@FfyGuqN7$*q9J{AJwmkI`z^$P6~G$1IkQV9p!|#=DUO931|do zQ$sKbb9k#_(vW98GmoVSDK?qiLk5xs={0;Ux(v-?0*`Y2J|TjMnxHJDeJ35;4cRCM zji&N|$v`d5UewqK;1h+uquQpy>ju%{4BjAj&a`6^*?7{hbeVu!fxCB4Xkw0~d4;wl z0KU?J@V@}Ssnx)@18mCvLfvjgfuc-IZFtsvMXXFWlH%F&9K=X@LeNAh83Swfs?T2% zdaW_462*>-0*j9_)WI!{t4by^{7zbh%8~$?AWsk08^lgh>J0T|WewG-2gcyB z7JgC0IY&kUucmDQ+A<=#9 zA~aCOt;hbrY{N_}m~Sjl9UK11U7CS$0mX4qnki(~E}R}XiRb!OfEC<2JGV}sdd3IbgoPWua-wPpFFVAx zZ>POOjABRbjaJ_;oZim5t{>iN&Pz8(8MKgIxD34JEuW8G{tUPE)6|Er0JQ%p(q{3( zSobe4;t1i-XnnX}}_2>=RBBtCbeT-m0m)FDd$%}i3; zI0Wo^X55Xo5BVslPU3$~x@7V;&2*N$K5GT;5KOsr1;OTml&Y^`^{vlF=2Cv9ltF+- z^0Y-`xqoGL2)p_A#B?GVM78N;R=1rF=n>du&F&EFa2vzaPc_4f5{5A8wyP>Qalx*js#L!iK820mpJKqQE3lhp;=OAY797l`lrP8qB?C@zY%@06O?w8A*A@h z#Kf1OjFK8CkFjHXK0e_FMHqHtf!h3;Ox{R7E{+c}eJ}9?POT1GjQW!wwd=dROm)Ip zk`gLFwjLD8ol|28yEAm z{{7}a%J%OSp}*0ekznb@9;IqBq1GjKxc7n{KB3~RiP6M_ZoQ-u=GDFyU znV37LxdA!yhZ&h!ld`V!SfcB(_N%Xdta(O{Q0BPWtt0?DO^P@4J$`meOh#uhoB6h# zpV`@78Mf*pDGh*gL#H&qidD^vX!;D`S~w=&!~zWsES3 z-ceq|y)?V~yubSTY>|A*8E_*!65hv~njjztdU5q7;?>clJYO2aq;}O6Ki_9;jj!b+ zf#;s7@uoE<|D0GDTFEVii_<4?zEd%(8@?o%NJ&=kvWs)am>1pUu2Bjm!sj#&IvY_k z-%=&N&WQmRfU`2SOL=w=&ngZ$j~j&zs{-mdw!XZ3>V!oREVC>V5lqAlwX2eL8i@u= zrbO#M1?r>JTOKm8L!#?QK9+`u99Y-A*bD+z8tXxmnVBI*p;z2=mMX{j#&$#p56M`3 zBjH-vOqzX#p1U$}@vZrG>EVcGGL4WBg`Jzax$o@aMepHM;Z%m!DRT!GCf*wGiK*>U zvFjVK%#`rhY;WIJqS`~qX8ng9)SR;Z`)kn3SSTzq$J)YjR87H3+tae$zdzYZ9=;WO zUsDH73U6=7DK@2Dqz=DTr#$?_jP7zo>sKMdWEe~?XT}e^M^Ch@s$d%i2fOxTpbB(C+a+Pg+dVj6fLx2)gH0~ z%LOM>#;7-n)bDPZ6MIVviDrV5l=qvt&`lDjB&0o@Dp=E#0#8=Y~bz5mg!!D%Jb{i2vB3)%a#s^kYCO6^Q zW%tT{kxfRpyrYqn`K*@wu)^c~c|_X#>`LCsNbn%J3se7;FC)Bv)%-j8K$qs!D$FVS zgCpa+?%O;a1b1CGwK_UML?ti5aXgKN zuYHE^vr0J2WR*(LbiD=7A}iqn;uqX-Ds*X{n?Q=y+K)% zQ?M{dvrDrRcSQkgGQ87cAxqhOQ0Y}06ul!Da|dmHht5q};X{X-g|*@mb7GnZ6nQs& z2+@I&cF_r*;V$p!k575qPU~THY#(P>=i*xpOM+b(^O{R*d0{MfbEQZNg%VKo*4zKJ zky0!Sm*m0nG~SRRnXx~695!VcH<)Gr=GJPo#a}eAYEH+kdHi)M;ezw@#YCSFmD*Zp zrgFpO6A93MKgD>h$TIwkQw^ZM$iAlOH&DKq>;Rh5)O-F9^N4|yI{BGBrbwrQzU@K% zk%ms=6q}wiQpzy)wI^pV=YA5P43iZN5GudTP~k@x-hR-GrY+jm|HqOTSC+ z-?paD`LK2!;ALVNoLpg9YUgOV?n6S*)N`imj?fO2Iz=*dNbETv$-k)HZDoW~6n~cl zt9R4D!KyKl)nIyH5eJE2M5TuJgIZYBqm4U9EhY-a=I|w%#hT74h1XGQe**Wn zAWg~M5o%NAazauNZ-(BLO-YgSfNIr{E3{-bapI2dayDFV9F*5hck|LT*jl(@?B9z$ z%`*R8RN-sJABX+F*lm?O&Al`9UB!&%%XHGKpp~+l65jnn5E5y~Al-<2fVk9Xa5PrY z!@PcyVg$}N<8WiY4p`(AEL(}19V+Ped{%9)tP%s8kUl!wGQ@RCn-kyVDWM<+Q(54@ z_aDHU+|Wxi;IqYm^HB1G(Fk)ITA7sEPjvLbV6VG?VFdD;1GO4y?H z-l$11r)e9eM*N?Pqtfx=c>y^m=?p|D?;b{3FgUH&X1{nh5u(P%0%X-Kt24V z>>>#d7c0V|MNHe#Je5E}N2>ogNkhjmGtzbBH(lRXQsYKr%3taV2AF0MAsMeJ+JI(j z;mac8Q~9<@x-ecf%fRZ+z%;yR#~Fi*Yf8Np+d~lzRQyuM)iSJI#ggnYh8YvnqVFa} z>LvETgDy+`KOT!XOCI_I@3fGIIE-Ngt<-~%J8|s+@?doctHK1yDmvh%(X+S~ zOd;py`GHHZv@{EnVERL&Pt9872E$Oqd;DHSxIU?At-Nr%((uF~AO{Aa%R|b03o~Nl z@I;s>5YCrFknc<59RC9sbEB1a@uCm9-=*jx0ACMTvY;6gM~y z17M()kEtR}od2O|IU5jZ}#~Kj!e`kZ=S;+A3uo~ z?5~g?VOEs=^d@0nN7dxmG|6`OY}#B?k^u8|93YV&}DCxCddgd>Rj$gw>&r0Vm-eyq4#YH@5!Z z2-p{yF5wiNVDUXiUNop49*HZ#1M?tEC)Uu}WFYI%dd!liFid&`3usaYp;8 zx>O`bESZzIc;HhWe#JA@ZrL|R5xlznbC{pHP6MGbaN>v{B&A8pAN=pmo0d6nOlE*t zD;vfawaXcxP9+jwsJa>GTEp?@(XGo*<$IrGVp8#=*mPkTSeS;=ErO(AZHKk}JPpTU z$4)-*Is)(a-Gm_aI!%_p5`v-^n#NlK{$xN|p4_dFGwhnM0ZGz^adX`m3vJ^|;tD`> z&ReJD<)Y@3NWn|1j4PA=28=+91nF7k?SxNY*B7Z>|fuQRsSZlcR4dT*Q*$ zlXfkow5~4gz|vqBjCd-lq2X`{<1z_V1BbRW`rXRvl;}LJ{3>BSZ4$!c(fkn<|NoWJ zW4O_1d*AqesdoM>G%@P_LGk;qVtoNDdeW@^G#RBq1_;*J5VJ38N_o6GVILQ}JtFmz zj8Qur>s0bLP;U#B)jw~o!FQ9fG511RcstZf5g#Bb1N1gxM;s8I_9|7elLUFFO*t$U zKJBq|%Ik)yG&r9Zb4*YJ7txOIPgW4m{${Dwb+2XfJV~%A$-rh5KH3zI^vpL?;!0d7 ziUA}QR?4>Iip!KmhBjZgna%j&m#g=Kkj(jfo8B^Rm_c>%*fXItiUr=`>LGq@(DyK7 zoSnUN0O7kIt$BIm)O=Ejbb>a_Pqz;9^9GsBE*IeAQGkhoH1u=qI%^FVM~7#%%nOAEWa~!Tio` zqk570RPXjrhks{3xHL-W@b5$o9}Huc0LuTx3z(85^a!)}QB2YdS@j&BiqI0h|GOHy zNzN3dK1d3G8*W5H+r|Fc0Y>Wr{G6@ULIhd~j|)D6>hu5*p5b<08<+xX4s+lVCGg}B zmJuz*!j+Xv8dm7mV_!@mRbi+sl_v24Oy$&)l^uDSffL?PD{0#SaX_l5+;`+>N~uOK znqjx{Ayk;}lTGGtjIX|ou|Zrs=k61gz@rpUV0xyr6q`#h{AE~P)sGyoy)u`m0T^V@ z^9miUK@M<&L;8NjQ9?beCp~sNq|~aFKawBb*d=zEX=@)AgN9mWRT7*sb{r7C{*r$t zNxUOe0APSV-(u(d_Rs>dgv7#TVs4j7j5L|xE z3T?fyz9Vlj?&w~#q_DDl+{m>|R67jMz=~wj<*!4QQIVJW!?Zc=LA2!|9|G(T7_)9p zgZsO1)cnu3o$2*ANVii<%7q@a`e^)HTaGZl<+V}fHS2Vej?Lp8QeG13nf^Kf7|U+^ zHZ3Gulr8Vgb{RHU&@ISe<;E5CN+g+Tg(rRd4q7$IFf8=rgn-y1CG57NYC(f+S7LL(sR8Y5U|WjXTOD;cR-u!ql3`VGA6yfR{UP=L`@i!9K5NK%Au31Yq6 ze@{eZ(SOjs%pQ^!NHT*$X3V+&`*isb$W9c71TnLUk%bN?-2B0o!B_4$SYqWnt%K z39OG#q@>CBM0~h+oqliVC{L~=%^IzT^#;8h`%9=F{UFPlP)l9xile9-9`ZGVofIB!_ajiYMV8ivwnt|ILrhvotu50&O&^t>Eg^s}sSwAe%tL5>J*tDl@Wo=AqLfRd z=R&Cukp~afY3hODvy@$*4wLeIaxMeUclvrZJj>@^&?dc0hS>QSv{ax7MNw|z{{HKN zT8Ry(KfR-uW@lyuY&3@vhzhz_UaJ}c|mnzx`In=;Y<$9D96D)Gt> zFw>w7Jx#Ie2d*-0jQtIy$oq;P<{MgwMz+BOuP-riayHnLlwBA1+P!q#<^>#ug8q+> zQ)ko`)76{}%%0e4HiaW1HTBfK#^}I>i%|81M*CqV@51bD9hAo4RT`# zNErjDDi$E21I@`E;QzB2tt@O|ZHsKjjhp2<{*Y{MfpotC6jmjw++3VGU1 zcZz&_irc}-sW0X6*QVB`p9@kub8W~+-Z?$y3$^$r^zJX-Fi{q~19s6T*+%SN_(WPf z%ccU8gU7v;LrPsd8267Mc`Vr=7siuMu}_(Bi9kBjocdWgf_F|$zy9VA7)U3(h8MCA z*XvtFf8>~zLKeHYqaqpeWVg9t++KgPocvA3@qRGk4qsfM+O+06o&azz?X>|SHJ`R( zruY*0PWZLrb=(Elp4Z;Prra_Cr_!Y~s@0j|lX8usr(YClUYJOx@N+}8GfEImabOO8 z^9uG+OM8cngxfT5aW;bXC7#yO1>_NAku1RU8OaDMA7=p7nP{ioKqWk>hO8zPeeU6; z*Y2rEhiE;Q+B7LulHo42;^R(b)T*PdBAH_LgU(F`%$~P>%mII@@{4g8T@Z~A>IIy-NhEn&Qb5SHV{m4hNoIP|T4!XRH314&cXh%;4Hh5+!*D*@z@{!2s{6 z5SQ^!E%M`EP3wtu7($K*b6iFgh6UB$m+N9?*C1B;=&<7$t<{-fYn9S7hp{!G|H8+K zE$RJ|Iyj|JKHOMlM6G5O9o!c%UNMTMM-xFF66@J3UK?u77I9j}#wBJgu$SdAXnC;l zNFT=DXSTPi#k>t%6t7b*_miV6X}p(L2#Kr7I;qpHU!z#;m{3f`ym`FSUlYnh9v-e9 z1ND5MOzjO=%5ie#ju7v@+AaO(_7PXE`j!<{zE0+W!KacbpWnrl(u9^=aIyEeQczFm z$C%YND`076kvCGhgn!6-N9Qjm&_hZSwn%QIhFu+{BY{=iyJG zOM>fM{s{8d8A+Gda<^M8T5rr>$LcOdyEu;e6qac?Tl8_VE(yZ+`()BevosI$%*h`8=zxZAPSe$jl2O7(^Qgc^UOfZ@Gv74Pe)O0Q68(C|C zbj&)jms}C~a4JYs1eR7VlGIm)q5buC%6Ir|7pUW&9cAt78+CVdNjcUkySP%<$JkbW z7dhSic(tEyO)iiAge~Em{```cf-Vu4>ebzNq|`W%dF7xOuz`;Wc4cB;#PgvN(Xl%oLbiS0oI^Z8a{_YSE1CCvo_B;l`c=ek&>~sx3|B3 zA=%!Rd&3-nD^4>-2y~gTwwMgpe!vaN#L-{tUG(9e{3BQ_W)p!DB8?*)VbqQO-rC!= z+yOf-wdf9qJ~bYwvG?26_BzcWmaV_r+%1@u@A=8LWEQ8O*%ROo&ol%OvA+c`&`}^)iCPGaN)h5Vi`*XU{B|1AC zZzOV{w5hwvdj!o{CGQ8LQ>}zPc&Oo|BG80+^2N&bIG?Y~Ty@qPyQT+8%PFc<_5b3R zgD(m-DhY?-9B34!L5AlfZ&k`QRp5fYe{fMj-LMpQjQU?%peWyZZaS0M0Ft~lm&*V~ z>#Xc}^bQx}s|d%?ojSdKvrL_t+is!)-u$Ck6rIqO8q~QV%JDXpzLEWwM09bS`a4M; z4TC_Hm|c{Ab@yB|^t;~$xNSx0s@c13Y>jOBW0E}YKuS05JI&vXoPx?*3R!>T&o552 zd@j^c!(y1MQN7jcNYm@{^GZoQ=i6LnLEyVS&)bn>sasGkQCjVpJMx)tD{)aDu_bLz z`Y`Z1J5s8Xe2!tWt;onx@qK-kO|$?8nba%Rs7gvpgt9TcB3~%&znXj?-k%YIy5Js% zqB0)Qw&IxT`9~}Y99C@46^6==GF54Zguec=V_y!n&4oAzBEl_Imzn-A5KYpEg~A3h z3`4K(b9hobf40+OtJQE{qj7}oPaea~Jh6m_ zT3YBFHH_lPzZZwc4f14?~p6CsqZ5D^*4S& zil)^0+`MSC=t%5Y96YqvIMD2zUcEp^v;lHat0M)R4o0@7V@-6b8J5PDWp6_c-f92E z@PvJhIa<+uYTH3^<7y2>KeZ4aW6pMxXaDH$W<_2^pT~uz6=BllYT|K2 z_GaQ_4VkCGYL!d<^q0px&&T!wr|&VZ+C?QV;@O$C_WYIxtnyigLG2@If==bFSGSOF z)hKRuy@jEnS~8jZdx!V+7iXJYQX)xhY?oc?T}SFV-jd61PW%-~AfJb>KU()yo?5{v z_6G?P3vYHM{CR$D-vWjNWSIZjXL4%h)*D>Xv(NSg=v4(8)Oc9{4F}F(r66NEZ^0yt zU-OC?j$}Ew9pEGzxGo<*y>`C7koe5!XT6>HYY{istyJ`$>!jO7PNGkbrg#gCQ_XOl zXtY1gx|&C<-`HU@&};P~Yu_`KpC__mtIvLkjjZ(Am? z@0>lxd`rW=&wT#c*tYoa2~y;%cGY%jqIFBNMGl=>c#^GWGZQ{VKZXx|(^>uL64%pQ zjonr4eY06ORuSpk+h!P4$@Pm&M#^lBb=E^B0?T;AJ$TU5+b54mDBIjd>9j{C5vjqc+=;M`xh) z}bO?!uC18D83L(FciDi$T}x=jfD z;uNrUbwjk*);Y{{%lu6H@?2_JZx*^t%nT_oHOcGXM;Lj)?g{5TZq{gd^lOq?*8|en zNtaxPWiNgK!)IsbNLIXbONhk6kXl{i0_DT_Qg)+W(9#y0&pAc>l(7HU$29G>Rd%fV(j!B~0BO^c?8Kd#VnK$|c*%TD>XD;AP3; z71esK7hRFo_e%kXiP&j#E7$X<<*WxhqCj-Z9=4?+XBd?G|qb>l4L^=)v zB>|@NR=NX(wwbZDmWko&5GlF-eruM#u~VcCbj>0AZ0K#;d@fDr_e2{`^qIc9C`sR* z&YLC?$lw`?GnUX6b(3c*3lU1DYrzq-F8|f2O#Rxa8l-1IBg870_OCb)85BVr#D~Cb zESN@(vU|iup~KY_J+!|`x_GN&8A-cM4_s+3anL#p?fmG%oMz&$A{xZjd`gEWc6$#jL(4EnI3ARRrQcFmXIBACh`z~Tm|#$&?g<^VJL0cEFUY{{`IpvWh3#d zJKXzIV{lBIzXfT>$>H9nDWy@(;_k$=g_@;3|Qe*eLPXij#rn*Rs&> zyMfgz*i;~HZ69N>aEcJJgNEQO*#jtM;TOWlM|$_yEizUGcjpG42`Ub*sR3#CaoOd6 zm%Ux(J{#4u&(*V9v}>)ce!#@ljw109{$;L9bl~4371X<<+==g9lBcz^)O!&^oy4X$ zj{%vytFe>0W_WdB`olGZ<-td6XK#2O(qpNOx^urPV(Ge%krZ&J9*JEkzs>QUlMVoB zkkHtNL_c~*a;fDkGyO{XpjA(Z>pr~#^oSJd!EM&#ak;Zs2$w+<%z`yWxP+?TOaC?O zYUfU(V90AY!b$H0lus33c2RM!aDv0js7P6PPJ${e1%9bF3xEc2ZbM?!$ZpYFoFWOTsFU05e3GEuTEVi!E_FL4{ zVt~wiS+CKvM+8T-(l?ndQGu0D()d#+c8V$&$2iU2^GU!m@-ETC65B~pC8gaqY>|JD zVo0a)<)+ZNGGuP>031|$F>ym*Y?6MdXy9UuLa1BsV}~YMMbg=tO5kAU4so=AClRhr zE8tGC3Flb7H$$MoNuS-F#sDP_3`8u@$}`BYe>`OE)AdA0?9IWd-9%m zm)8g1<%G8vl&wo~53qE7^4C)Cf}Y`?b;~wBPXe7BX+v$NnKGb<4#$r2uX4i@y=vg{ zMG?Ol91jj3Z%d=8tN75eN~ekEf{a-%_>*V`btu#pHG`h!msMGT{IcQzuIsp&^em9? zy+%06q7oGk8k^7+6aBR7x4>e#Z|E!Rx2m-8<8)-q0Zf20Jcph3{ZR#byU0{?J$9{& zFVl~|O}Ir6^GpxL2aKhbdxW>yb!mAj1wJ3$@_KWrWhn?V*}dbz5iF_HG^18^|B~cu z+|;hJ$J20TP97-$yL%~xzz>SXqoZ=QMWt-X`+WUBcIH#q&owqyNm=kQe1v=c;wtB& z%h-B|<)@I?T9;0&B?K&VS2E8wL2 zhlep}3ohVGSx%(QU(7Iappg{tcE#0G$6AUn=_Fm+%^(bPjsC@X5P{?p+B#aWu7I#k z5Rie)Cr(qYH*JCALZWhGaq-o1D|fBbN=3n}yt|2C!wNeQGrM%HQ=KP6;YMcs-eTkK z9YVQO43Mmi+k(fn#%0AMN|loj2s3oc5-w~Yzu*BOeq{_YQ5sf8{1EN-u`#1N^7pFC zGVTxyF-2*BRL45{Q^=4&2yX5g)^5e_C5>v4VCF`@w3~Kfm|F6{LkcrSAG4Ni6RlFt zSgAA95?S8lk}cvP4!2Kl0krxBNxko5?0Q4)n3X+Zc~`lWWgAOspQU?-^3_dYKZab6 zCSjtAIZq8a0zpcI{9~jI@xW11U$9e#^>af)o6Mq626@?-tcUGy9KN8wA=M|%*pqM= zVC3{puY)}&(l>Kxpu3Z=2JJ3{MgDDTu+;s)E=hMEi#&~L9^jN|WrGCiVcIw&|E+C{ z%xE&IhF2A1pDKf7a25$Cc)B=B1`JVVp&wE<>u9#XaV6b!%js#vg|ZJF4;j`QA~f2M zChK*+$l*sS&O)rd?5EI(xz0t7$Px>7mnsg@L9%i_HYUn2%t2$oWCf?T2FtcwrIr>D z za;Q)uC5Kt4;;gg6^wsTr+Ma>Cey_uYw!6cD0(^5-Q?-edl0>Rx$?`cuv2R2xGi(nJ z=hc6`Zhf%y6KCj{qFRn$^ruN|S5j|4O68{{h-)A%ECS?(MlF%WQ<0X8*7>!eKmW)m zFm86MTS)(J3n6gAZzRppV?j$~;Tqr}ojBHMcl{j5*vY@2#y?9>s)md1J#IFQgoI%>1`7kQK9V~RhWa%Ny9Im111n0MzglFZU4@KXp5mc>OqQ>=c zix=#ul07Mgy6WhPJ>$S0rVj_y=e0I=&s80ViA-6TJ z%7|S;zf`sq0LI%on*u-`Ywjb_?R4rRT2;IhL=S(P!zYmCA2m z#GP6iq!TVO{2x`<6dqaAb%TlROl&6;+qRudY-3_hY-eKI>TqJ)9orMz`1}3t{+qt& zr~5hQ)TzDpTC1w|Rttris)~p=hlV&EhGvTXd%3uHks?eT+CI)yndM0!1>Ws@8w%J!Jo8 zMzb@v_=yXKDf#IeBIN6OC*gpxS{YkoUS&x+FR&UZQ76@k_Lx5X@`to4i#0#dTB+b( zdazmz?u0^HT^b_F4{}42jD14xZ~v9}KLG%528Au)SLNTE?n{GG9d;d6$DJ#;smh zIaE5ZfMWN!YW&-(Bx~G=#@`HG&iYO=3}8iU5+AKHha5&94IkBhN{4uv!VN}e3fw@} z723_hrUL&JFFH>F(*mbP{^{1(sd7^N)YwMZl&KJQIcSPHqbkVQ4--(R&fDFHmv1tk z5j7UA_Wm#%Nn$atb`qcyT5@>C{>CiRM;eMw*skWUoL0V?Y;7qyk&{#)YZ^>kqDWay z%=kEKl+-f5Zbz5a^j1DbeewQqe(rc@@J8gWj0%$+%F1#*NWHkgFeW@bd3}N@&N`+z z_xr97k*|_VnR-OshKmZ$O?OVNtiwF-(L^v=Ii+3%E~}|z%8ZYIhE+kK@DMpjpxx{m z$ldM`4mtNt{>Neh8R_2}P=IvRJf4^=`S+{fa};zOC|0CTD!Unm^V%^vUJHpJYAJ|t zZfte4KWVUU*c=Z-@W%Qm{FK5AKzS?e8KKl+MhX}PeG*^EW|4Od;JA&X5z z@;CY4wl>Nejs(IY21qU$Srh){m=5UaZ?hu}ONJPLykK6Ht+?PU0rBxzjNXIZnTM>t z(8s7Q^#yX7^dQRSEWwO~?ZE~Dy1{d|e4Cee*Q}m8WsEE;QQDHvOFYIH&lB7iogG*YH&87@R*D+pPcH!sHz7~>4>`SOCMLygxhyks`?!R( zgUigI+2@`!U%vPjB@U&UZHZmUs!`W!b}>m1w?IVMS4~# zUdSb#Up8A+Su0v=eFM&vIBn7Yz6Zu>N3q~6nWM~GQ=24I#P&Csp@EX>Mj0*TKM@s} zQ$A_aR7NGLLX~tL>0f8X-RH)cTR|T9@lIl$ehNqQh4qE#vG3v4Y$_i5L!e^X=tZV% zeF-Am$MZ@;_8M^fY=$1{0dNf~)9#JjkIk`Dky@y{!uFV*2MUt=>p>)(QKF>!{eQ)p zLhJ3pQDFd-RM0~;nGPIzx(F{@*>Pd%-Qdb{5kO^B@)`JNcK9cZ76W{wLtAPl)~&4c z(%2}No=~se^Np(MkKa|2g=(kL7UDijaMe9R%>}gv6;3LIEW+RBDef22qQGYY%c+v; zT5(wdlmtO*s#3aLM8hoW%g;tOzt<>+DbGcRPRHiJ=^MbrF!I^84EuA3G~k*lQ~_n8=d+qU25~ZRxvkb`Y{@F2MyYh98IsTH-YojGFufSu{~6QxRtP!s##~_G$j9w zl@DJzy^MV8nI2QM5G%BiKqWfU#~FZ8VMH!;a5SqA$z~W_-qN4HW#o@4=0xBG`>-0T zAVT0a)F|f42q*Lva>LZxY+nI_Sx-8LRdCd;KCEH&v_jZ|=n6FjI-cfHZH3N!G*6eX zqU4}|XLlC_{mV0I3}*t9rK=_7E07XJOi=~L$AF+!%i=}z9u4_bcp6KSxK_Ri{Db^{ zP#=j8HEHo2^ITbD@CME%f8Hk@c#CuPGb=Q2mjh)NPiHKPuYj%;$X7)LJeskQr# zS*JWm17$=kX?mLa5#1vmQa!`=^FdM z{w`Z;QXy`~*kHn3!- zqCe_hFk4zDKZ@Hz9;S^TP1f9Ai%49Q;^8^SpMCzRu&H45MoJnqKZBBQqMHPv&=DHg zreRf$bd5A-#7Bcpn9>X7E@DS}AmPQJX>tQWfy@Kh1J_C5%@jYMVhV;y;j*~}jb!-% zo!jh$#!e8sbVF>#SnHL*&1;e-ZC^`2kR+BlaP_U_*2yMhG2^u2 zTTz|%5nY5zrife?s&@ybCzM)^PVL=qtIsgA>$jtUM|w!s|oi=jSEi|f)RP5Cvz7Eo*XCzrRf0e=ODEI1n_oNrsmy>MD`CO0Yn^gvp=pCD=GuBLPA|>o~s~rGGyTtU+$DP|-3i zMry-lEF^*IRrB+p@LDrs!krI&BtcE3L7!1Niq9dBLY^+8ixA0?*7t?f?Qx&_k(&*a z4IgZvSZhNnD6|Yo{WV24=d&R?cvUIOjnJJj0uahjj=QHf{eUZ^ATQ1H-CfXn{fBLwV!F^o3flMj*9ODOOairWZ*Rh)yRtRACch2H_Lla49_-)0r| z$i6<$fcd48<^ll^LE0wTo;e4Yw`6XZWzMz@sGJ3*jlu3_E#&qO$0OWi@IX1!4-5j; z3iz=1VqGfFaH2+AB9atv3iQ?BYLX3zb!=HBonCYa8A^bN-6UbbU@@zL;b0U+ZEkNe zrYe!y))=ohQQZhe259SGshWJ3T!_n^Zd3{;e7PD0`g2ZK*;p|4KQ^ayn+8g2ea;=x9ndCv~@r zn4Ey^z(`zm`Q6OXQ!Me|UZ^;WC=%TqP@Gi*`NClaAt%v+C|( zm&(FW*A;~M50Jgu-&JH~mS4!>darc!i-OU8b3=r7u<4#V6$6)n{n!`t*fRRrZA4rFZeD&niGr6) z_VzqEn!lWrh6c(hVhr&^uMQJb%qF1N$0SeO+?=Nd;H18F<|i{1pCi|XG9vW(=V5fR zX_+tw+Bdh${t}J%S9Zc8dEu=u!IKrz{TO9!6ASy=IW{II%<1hpfHl;4mM?2uu&V2^ z+eN|k@X{rqeC5y5m77jt^T&pG+)0L)Qi}Fnpp(62`^UG?Y-B*?@I`r_ zk@)|P?*_O{J`>N0kVcyLvC{+F zGg0f=0n!E>!4!mQ-~*DC6|0y~5X1|{-JXoziqUSJb+rn|WnVRi80M*ss>1lf34NMa%T=frF%4E``#RaO5) zY?mcbUPIOc^z!NzgO4=H#^4_rW+#?BLlzwrup4_*U{x?KFljL;6y?of?w%J3@WeG1 zX~G=gC4UmOz7YY8!8bV@4pppzfl6y*as-k zcExW#8uGy}(GTqEHZOWTK)s9!b1aUG?Me{GceV8WA3#GBA(}Rh-0LBLBO9VJo)`tz4p>9giE!Nb zeGhh^yb|#zjt0$J`P&q+NDP&}b`z>9ns6yas)RF{4^LH=VD@K(qCRkSeYJd6E2`Ej zuofD1@HG{B9tYo>5!xqT_QiVHI9o!NSrq?KNJNC1)oq zZ(%_=;!qsPk&LX>tiXArH1(_MvKMDr>IpYh^{pBntiWP_81VE1qfjHk^cR;rFWH}U z6mjcX9d&9H>Qec7)pBukcYfw*K_}K-dUZ|nK865NUYh(Z7kep%DH^FLc`FRn)v@Rl zUU>wQVj6&&C|&ev$prT}eaaJiB4{gAK?PQncsQqsjAxw8xT!PR10Mbg>~}0_l=Yjz zXQQ9lbn-$p=y2)T#o}30u*7K)dS}Z)o16G>dpTedqqOFthQ+u{qcm$H>Rj~lm|T3j+-ELo9K%^{D2*aW6>E0?vh>S`?d>%l$e z^NY-o2KfIVN_AC)v$DZ&ey-O9xl1cJ4Zs=G!Zat0iZw5>20EvNQkqdUCU66Jm-eRg z`1a>ejd()F*C~r1+nJ43$+uY@Jq$ z?XOyN8G;3t_;3}=-eX}?gvB%8lD24tD(n`9T6ujQc5;yz)KLAhe_Q=H7gALZ`XP+~ z6;Y~UWnuF&m%~@dl*_fSWV{1){lvgS({z?1BhHwRzq}^VVAi$$^1oNIe=<;Y;~tmy zs{Wu>U$;_@RNN3Q6bIl9M^Rrx`eeZsx2c1pcB>rh#zgpl@(OGVSWUBg};$`tT3Jss!686 zO5DJ#CsyQ0uhEig7F}S zVtQy&6U}$0)xTM5)TR{a#`);w529*H_$_;9^QtVUgScd1Q!NhAB2Jxii0dh+{dIQQ_S3rEcTv%2K z#3TSs8}q(#^>3Fa1?{C|2=){)40Tl*MX|L)TF}Lfkd1AXydO)C&^WMqVPpRHdI6$x z`tuI0azzY!c_hwcRM2IO!3#{(xjhT13fNCDN5-YMtuHxmqH(9C*tmEc%i?gUWY=jj zYbfJYoW8bUmo^Art)X}Ghd0c!29%osV($7YZ1uCJ;g~o}iFX28n6pnD7|uKLf^?$W zGaJgOpkmy?NSIQMXu|>;_Ef?^R$(HHXqr1M447X_TBoHkI%MF%NtoLBi`5U;3YL{} zAr=L-AsYIO2Le#}Ih3gHIQeZ~X^!>Mf3 za}FKhaY->~)5_%+j5M@`C*z*7;J!}C)sa?Lz|60P=>dr4xT~SZ37$mBPA%aP1xVu{6!x*&-`N6$LL`e6liR8 zJ6?Wfj)~dh=Hn4W`@vV!BoHP_s#mrxg34 zcXTf(*+1w7W#BEqje;+8;RV}?FsykEpT!>2Be>hDw{$T_;?|#PR6!0EwYP-DYZ5R})6+5s)L~!iW2%nuc zPlIrXI3$xDRgR9Yp^?oCw!fGzE;9f`*Xz-Ri@uGW6UDSar%dsKP#gGmG)^PF;UUgu zjgcG%Tf~$&&POuBZ$P$$~s?f~JrW`7%sW(q&_>2L6}1Z zLj)0d3biEnBvqfJNJyvd;_oF2`dCIYnn+dV{){2G(A8(83REPinBVn!g}T|US>qYs z*BZ5Nqy8$BrCOh7)6+WkXibAB2{uE?<@^wjTs-Pv)lts@Hz7WzT0$7RYiy#yJ$oBp zGGM^8-Vak!B2}t)PzXh@u#}FoN7Wu@v}v1x%qP}dVYHj_--OFhb64~2&t1X5+5C<& z<~5fCxH}a7Tzh>Acy1q955mOgGHn7|WYdnOy893gY2Tk%GrX}e##j7_Z9X9@?|D!C zC}9wYiE=5*F)g!=kubkFm#jk8OdP209tfoVP*-DkGi-DN$-WZ^kYs3EPuI+8Ix!1o zXpDvopYY|_ACo1oo%_vrF8^QBHJ|GF0sj1B>qp##Q`O0mXtz?wVtt`H7wulcE0}=- z)u4=5b0vnwx5n1@w|<6bQ0w|PXqa>B+hL{Ixjzcn9#Y%I=8HM<5y@+X8eC&qOqGH* zQ}aXR;fzAkzu}H?$qQ4`GaPa1%*`f62fVzc)fzB*(Q~SCl#$l3D0y|N3QFr34#-|h z{=Ap&EZo&&RNJjXv}R%6Cg*XWWO=pGT*R7PYP5CxNo%oQ*qP zZFgpsO6H)9c`|iX7H~`z9iGzu+XS)4$u9jOCM*!pT?{VRV*7%v8ao#hDDjuppcWEo z0g<+FR4;{ZM_WWCwf64M+Vck`n^sYJS1@L@OVl3zTeBZDTo4 zNh2Sf$PlStUOJ3?ku-%7ViJ0RHO8`}uv8&0PjLdyVS^{uy#_zbp`g2&lwmqivpbZ( zZ~JBtW)wTj!=GHmESs4Gs)$Ga+O?8%9{nHf4WCG~di80WvG+MqeQl<@V^MU(F%Fd; z#&OuiB7ki=j~yLN#1d)ZvnvA7jV z^!l&qB!e_X)V(ry1Gvp!^$w9p>|0JbvyMXweVT#eLCWI5UW5>p+ZiOdpKT`i0vib< zgnvVWxyaZa;*8#7p(OUopFf}MFTqd!`jRVN+r?U)q}hO&hhai7bAy`CaGvR3B$%KH z4?T4GjfMur3e6mP9%9Ho4Q>u@AKca}UlCN8(mwxUeA#+M&3=StJ<-bg$C*FCIFs9r z*OukbVz&TUdE#4jd>BH$nz99lriuo!5hXFgqvap=aVTc3W?l7Mz z`WIR2$%43B&|u_@yB%2@r;%T?dIPb~8V%{Tllca>@Miu!Ce=pQnjf4VHjO{oHn%k+ zv^mZ)+hhu!(Z{z^8`m5-{2O!93v+qt{6;++KGA3lOo}xWkswKG`Lir*AIo70v zg4lk3A_HMB)LEY06jua+DUbb8NzJez0ZiF7SYL@~$@Z!fGnH&l-VfuOg@1sp;0lUT z8P?|egxG6oIHS4TDEcVjig@$eU^kOAm|>VRlS>V*?5f3@tpu@1gz9yjJ2%^16esS` zPVGH2Md6~b3gSnj;*Wr8!4Idq&SUF5a!gQsO4TImP?az1p4NN_S2uh@_Fsu3;&xWJ z-T|xq?S3xq%zPx61^+uLgV681-B9If?w!^CY2SjY!Baw0ZgRpzsfty0oy9*&Sj03? zJJG-{=L)LKw$37wUbU?kAlBj)evwavEc4TW7uU5mP%=?k`P5Oh>S7+0;?QQ4skDP@ zUORrg&C!P1D0po&Xs?8rFiwfm_;kH)TPdPZ{`FU>GHIY*bVI1aEW$KOzJ~s(FxMFh zLsL%aj91D62fz+wkFui9aVsp1Xv_;)G-#kmg3$Y5lnnpTWywcBB=YH|(H|)5VJ?<* zq;3{e*3C*9Wa9@JR(Gb>O#jbjlDDXUH0&n`ULNMDk6AV+-|`hmB2zEpkUOF($YjHb zDqt&kOWN`o=Oc?fY&sQZnZGI=X$PrDAzm_>Vtrv1u3fkZw;EW(Et5j{spw#@uJ~m1 zW5B!nL|azo-L^=u;R`d_2e0Wd$WE|adOgOBDFNm#AB=-G2v99#gH;l=f{WOS&hv_u z#`CnvN0@q5uCy#X>RKw)XW$H?Hvi~DeOX?T&#uTKqgfzgAuim%@r$mih!(|ZQOW!V zby6-!PCOq~$c7TgV>11gbLT^OZKTUjWM*RuX*zx*gLiAl30)e9@7HDMe~dp|y!bnV zZnPkjubp4bk6y`Y|XY|r=dtrFZ z4?9v>6s6l*8qmW|4dtEl4tnUaigRLr$F$pU4kX9^QI-QZ7H{c4Z2o2iyoY*{?VP@|0NUu?vSx8gu}XlTTTU6aw-!CE5wF z)|hSr^CJn6n6~8}t3po_38nqWL2r}>WErdcrALTcQx9}yw~fLsRKA0ttl#RMGfn_e z(Lx-~-$o$436B}&Q(W5%SRda8hQw1C=bNhlSvdq;m!?28G+d{w8S;D4Br$o4@= z%JR1q08-fyZ_19N`bc^V7OcQU{ijL?PhH-X!Cx;=hlid`1l(BWLAaz|!qGHYS&?=8 zmV>DFykeXbhzd~{YK&$x6#xnNYU!MadHv>PQB4~2bl-Yoilgf}V5l?86Ejk{dvM}+ z7EMRxH@B*+X{7{ZY4{vC>soXXsXyHj4?36l)lsV^q;}|F)V~lMosEnU56Q-K^I@5tQlkjp9nzVg3riukFZIWWpO7N$Ae=tP zm+>p(P#;R$3(q}{P<=34jQ*$w9i$0TFe@&V=>T)73?WFTL%k@~sL9u4!WxPhiZE$v*>x-p|f}{G>W&VIDbyl>6fEbkTc*#c=}my=?bH5f5~P+Uc*- zdHEy)5TtH8#c>1~xU3341LqZ3ff!QHz9BS;fm&8nr^!%ErG7JwvkT2_d(yutc|nP; z5GJeGZlqU?&d&qsul%H9xDzG&KVwfaGo^gWP{_)Z0SyZ(AXzL`Xd^6^BghMo7rWkN zoppMcnqn;v$dCLH%!q8yU(>%>r664CAO-(D9qM&v))nnkHwhNx=`dzXUr@}f?EbPF z6)hhEqKHZ%I%X(SHOrhH@a4-Dw@~Ga$(nDA!+D9Gn!31e%)`XfO$?UFHMdPQN=N#t zxjU;qmK_&6@chV`j}Tj>_LLR#+DjDtrJq?eXx6;Dw%zjUty!zQCw>@s`gmyUXw z^J~-q!^h$hPQ!I;3+#DB&@yN5ViA%sFO;(0s3N@8fLqlAQn&8Pkn``LYOz+-mZCoZ zsPr!Exky_6dVVipJ^hR5fV(mUFU{^J#!&$3ehkp)1@g+L#pEM zRM{6KQwUX0v9v{M>8$h-@n6<(W$hWbw*xd@as}Mo;QV;8towFc+`GMvur%+BahdB|6n*_vn8>08gL(8nye*>3`w20f zXDU0osPq5D(x63|Nt&^eucER^R6xQ{;L7IB4vV)$$w&c~((I`hqgqg_{$cB8lE9}p zfIJFl1#_-)#)9c9r=b~G8N~v|z4iNvICIwa4J0K~+yR3pxxf-O+BGqE8(PeL02kV< z-*c>sRjtkJDPs~ErD(g(Ey$V7u?|H{4#RcN$R~+Z*HC&vWsGKp0-e^SI$&w=+;lvx z{qy|NH~BX-KMn63^gM_4p{i<_9Rl{yQrrs3mAGcngeqk0sX4Q!{{NDpF8eu-0PBYe zL!zUY1eQBsDGFd#`Rl6gQ|N>$F2q*CbbLD?zC)1{V4C!Xu^;TlB2`eKed}KWMe|vu zg^Xgi6Q_akR)~4aYV*wW52hIeYoOkwP{>h!KKr z2_d|Fi;TndZBX3*P^D1c!XqfU<7_(qb{S#*i#HNs9a0PG5hi{0ECtS46(2*zBLsyc z^aH+l9%U9=SAH2TnO29a!k~i&h1E4x!@v7;sJvM3@SA|Xa}UIylY{lwx+7NIk zy3EwtBF$}KKZ(kd@5s*WGCSKQAdBu^OSfdJHKBaX&i>J}f9;+s))S04lLY3bVjD%8 zX5OQwRB4pu$w-2!Kl*IOpg1ID*Xnm2OhZ+xVk|w9q)MFxOe; z3!IPs+|~bZEPH~#(?P+u47i5ZzA07&{E_XYdB7xFCVV|oPh<>NE)I2H!#E2L{K8QmIH0l6C#W>1IzAqn}A;w2b&bGe1 zi{oGM#YMo#jk*j<4g6CH9{WNnx7bJI{Hii{uvPUrOX+tKgz2)pGW?0nL*3Lhmnsj_ zof)Mp;wDC`{fh_f8wJcyjndn{1H(PGZ$RgQapIZyFc%HQ+z%k@#4z*BBag%4XI0xw z6o$Te`z4`wUTk8ewLA9aw)IZby4`)jXy#W&dCkFZ!8Zcy2DfH~v&XBrhSN^Qyd%NC z+rW6vwXI}B1Etd3z24w3os|&HfQ3>W1CI5uiyv~7)HIIL(?#Ql(-m7*?EXXGtzDd- zejMWy(V~MD)whLTKBtRTl=0*bUKTvSVb2!9l$N{=bVG4dtmT706loB|5jbo2@ep*A z4q&yA%;n`}+%XZWdBY=(Av~csBPc)bjv@;R2zj>Mk@^2ZQ<%x!af+ zOF(co(~6}#Dul9A1;pn*RwrnuE<e4h*{pqv!(l!g0LOQv+ zx&Fm+lu+^^k3kc^8mFJY=t2bFx$e(w(NwZQ{|j_Q0i(sH2b_#E#h+}=IoLEOKBcM< zxI-#!VLy5$8vXilsyTOVcq#6dNAo2qq6sbdUY{ywZG_UcGlBe$EvW z8Qn4{0=?R7Kmu2#&6F$rO7PKdpm?6tM4CQKl*s$7(@e_FHQCuOa-2hMFIC zw_3VVN=)t{!ZTnKP$(y{8}>(3A}Wk*gVq&8#F9e6#f+Z$xb_81RP1$3`IMakdJ{W7 z>6q__NM|mFlu2DSX|p2f=qtI_0QA?=KEdhi7h z`_F_1aMC__T#qCb-}HOH;?EYE{50af`3gV5KG*`&6Og=+ks|0@ZLWuedAx1iPGuvc z&Uk*|wUxc7FAa{TsW)dkm_1Rm`Mr2smMQsAtAKlJ8D(EZw*JW=26&U=8-oZB3_o^5?7YA$glFNTaeRq$Arp7Gw}+^9441!5n1 zSW{f3RhP}gPT28mLr`*Q+=iLDoTbzO7}auJPSkAKS3TRbJ>Vlv-@TPo_khr_kn|o2 z5ZOR)ERALHG->awKYiNE%P&MQxPQ{y0ePiP=<2Aw`eLn-MiCMIPr|%!Wf@m*CJ#LC zCnT<*^AFMFQ}+X{x59eJ$at<5exSYtl0U%q$o=3n%Zf19`owGl&p#e->UOf0@XfTR zp#MBqXNo7@%^`{#*9ODfsng+<7Ma{-lhoKMA0v!FqmJ^IJAh7lyV~?uzJ`d)eHGzT zl2GBM+ED6QN+BcE>i3x@hSX>#8_CZD-`c5}epQRFDBAuFXS8?sVsorzTy`zttlvO#5{*lHgI zMnO}kbNwXZ%H&(ld5;l36A5y8?`roR&pJe9=3umkwl&v?$T#4q!Z z!=wArov_v9q-&=E@S2!wtu}IsUt^f>uH^eCu-Rc^Gc-E%udLH00)E2R?sWmsWiE@Y zbn=PV9_@U@S$r8E76&yy~k+DK>IN*gY5!c#O+f`xAM@+#UGlW{X z%bcZ_)jw9fx>r*De0r=0#PSg;$Y#Q-*~^RSFnT~&trQLEDR#~6 zwNp|Q#9U@XIMU6&(_-2EUE-gfZsZC+#nxd;gK|*KbbS3j$cl~4d&mD;(zXBHA(ZnFvf+@pXtGMv8qc6RS zHtd)=pQ{i>OaN0yiA(V>Rh^wQcqZHYkj%@3G_S}MpJs#e`4)Q6T&Yd;73ghfZ()q^ zT77(k`OF9>CJtCkv^{C+f1Gi#k9^C}Y<>0+iq@}qsbV-g;*tm6#c;Yvn1l)s1X58Q z95Hof0{Ua|7bq>zj!QwKO}}rp)4>-WoQBq-;rnn|*)p7Oxi{4-3VG;q)Df(WT+X0- zEr|6uOzq{T^H=$W){D=t*k=DC#*x-y-&jXcs7bwH4;U514jLBzn}+cJVQry>1L$JL zKAtC=hs&^OfTr=JHSN%uFQGf9ENBychy9=Qf@xB79R=m%cAU?`ZgKbb{`3_Va&!}& z4%jud5aH25mROXJe7C`^WK$p7PC}jZ&;@&gX0L*+5BUmRYi#is=}a#fT&KiJz7{ci z5PF-Ca8gDk==aH(b>Qd?@|2~ z96PLc#Q()Udi0ocl(!0#mIfP_aw?iwa}G!SzgU+h#y8`va-@^7-fEOJKp7qFWK{tp z0gfPX6hBjk&!3aNkKpbXZ5vzHKSouz0u^ipK}A%U!c!Y^_7&k=e_+=P_;=rBh|0ZG zRn-r%Z9vkAoJ+>jZ?wfR5$s~b2BRBLM^`{v!jyk=7VZEZ)`jWy%$@w?FiVLQuI$Oa z=o;r%R>v-h!YGr(cSEK()2q(?#jwZWvYL9U zr0k-bUE<@SgDFrqTYrioZ80zX>Agns{6>&p%IvW3>SH}(me|<^76T5A^^i@dJ96$R zI9Ew>EW5)V!J_1nr@*u-xmEgdKXTp6kB<|tZqY=z=9Tdr{Rk2Bd?Pyo9o!Rb4?rkz2 z*-R6X3A+0{`$NSgwcAL=x>ErGvD{O$g}9b|9V}V3Ga-(S+CSSbov@W0*y|k*q7LLc?`TvB zB#owLZsh_pKLkE9CGbC}y}d2ra2Mx_tg7f<@6>#Pp#QFw=8>mjV0A;xKHk;6^n86e zzI}Zi&wN?0$9?OxkXFid`_bY1XR(WwEG^yHU)=%VG$*0By4`+;est9TKguh%w5tOO z&4ClS@BL<6?%=Z;m<_qWufKqDjcl#nr+r5gnHVjR82*%ghRg-;Wpo<4i4}rS#^%<> z9q8Z!fqe8qCa3nGE3+pk4zoqHq5w-||CH{vjE08|4a>V(q*XP-f84;#DdaKg{M5ci zwngYeVhP630#=pQ0oR9X3V; zkG7(({B;=TR}BtxPh(NaKhA^4M+QV$!Ge@P5OL%?@Dd~fkW6-k?90g=Nqv+)KeAfY zrK?MhPJ^25IW^{e3S~sN0x*BFYlDX6>GzJYKN0iF*O%ezO8{rQ6j3f`Vu`-c3g*RJ zM@3&wBzF>aV8)r?U8rU#55H+Yp)1=i-PrRQQmkJ3cmMBU(Q2T?f_ROWK4p8TyO zhVP@#$+ch|bZb&?kkXFCkQxd8fN_62<8jndQok1GPq{gG2*37AX+Hjm!%7=h%?yPx zx?bzi=styU%gdYGsiOas_|ChBubTw$;c8ItZBnT+_#`k=)95&-cA9F+UG7bWaNG{$ zi1a=5xioOUg%t0}0G=iZYgj`nB$?T$|4Z$1Bvk4g!Ki;)w1g=~q4HL*!_{2$)uiTG z6GK^~O5s)9jz&BNh#)UkIgFTy!UqL^&IvZbAAEp^s`&*WE znl}E;R}6wE7Xno^dl2ou_m9b@oKc#nocqd>c^UXcrH$%LT-XJK5&}bWkVm@Z{|@Ov zly{?g8&Cy$l?Tj_LDn!MpOaz4jkcVwVW0!6;8JyFOp z%VJA>>V6}h>(Aa^aCXfGf^4O+-3(wh&W#qxgwi@!!PS4Xz)k8?U>R-THT-b74c3JE z=Mx~9`HJ3i(4?yK+1yLjfZW6k*-Jf6Vj%aOqaRdbxA9!AMuV#7hvBdk`{_gt`sq>U zg=JulquULg&IUy^_Mm|=(Ti{12Mh{hOyOQXdOdJxVMFUzQB{rxM8^qV&P-Vudd#!BBZ27FIvk!uxmdqHeqdWt0qh&WeF1 z{aKiBWIVe>_``VCrX`U_>=jj=BcKH76Fl_*Ydpe`G^J4rYx}3hqFsgl1cxL@hr+qJ z-tJIz+yv5qc*p})k%^ZzHopS(nn6hCTAc1xu=5TVFKK^Wofs!Jwco+nl*WBX2#@c-LpG|1{Vk_1hl-RWVmAt6m)`VM<(#8Krx7 zwUes<5D0HYbXi?XU+KBZ$^W<`Ow+nNi?RIMhw{fHdGAePp4SchGaf%TGy{RdCI;d0 zTY+03ad)Ud<@5<%LC3#ar=yPKu=iW{>yu=b|6x<%cQo62{-!RW@IGz8e#~J}fo3z;)vpbH0W$Lqq zo`n((#HL3GHSnygGRL=W%ap$I3f=bEYS*; z`v2r62^G8VvIySnb}rm{p)#D?vOc1Tvl2g6$3yfqM?N~c^aU)4KcY&(r_s}GWmoMK zcG@cWj~&3B zVq0H!enqCiHZgq*rGCCvBf=|xT&rl}w!RJT|4O98bSGct&$9Ab0I{~A=HfY^8erSX z0ZXg;xVhUUHE1_U@IO8sZF|!v5j7BzJ|I_gK1?3a`Fg6_{s-wjyl?7{pS}Qy6J(Es z5-I%m(}`nS!d$xAbt4rvu0R~xkW*~D-eG2{zZ&UEO62@KcnJyZ?=h@GLdw|uR}45& zuiI?v&aLBJ{k1CHz`DI2Y81kW<@x6G4QNMj?~PGcqY26@(7;)F*a+*lLP4wFEGB?| z97e_~JiAme)NFw^M^LFZb}${h75K@Rf3MO>Z@Qz>feNoA+@RIESuE)`QzQ!VEqj$; zza}CF)yTOs_`o|rH$67mDUy0Cu&E>ugsNGKn9v3KIi1vrUIMQo`4v+PYtLJ*`4RXR zoAhfdEgbM?b@tP@)gdG+Kv;g=^pdhcJzd$ESuc*3msXkoUsB7|3zB^QXi1J!aX-lw zFAzf92=7B@mJJ|L(*k*wO1uToG2gQ7;H98&_@b-{g3LnsP4PQ$v8{6LaG>btaVm zTrbpWm9-+6UUz})2(azkYB2ilitLbD^`BX`-BzsdA7D-{WL{_kmB|zf%&@}2aR$Cev7pmIKaAk{j#py{s925l&-DElAvNdoJ-F0u1NUj%$G(TJ`}OKoP{bUo zt-5@&D<3_kU8hGDh<2U9Xg`APZLN27JVi6!3}V|p#RXit+zwEJhb}6AmIW`qGoMz0 zI}a(P^b8zgCt+fM=z-tE zVWVh8!bdPSp%-k4()QyPTg$I@EVLCCeYeimpy3?<6TW3N(XN4+4QfUtzOMLyDa94V zmsQ$LC}(s1rsCw<*d~L`h`SElt=QWm%wR~vX_atfK*UENGmzLf7)$^;-?d(-^@sjN zeWsXDc@jwDAd7RSMnu<>A!8x&Ofd)k9LQEn4Sy#)#K8rIR377wXEuOA%&a|xrH4CH zhlRCA&;d%0GYscvAczM|WZ{}p-h848(Oq9*$Z0z8pD~e^+w7QEt9XPYxl)qVI55wf zuA8TYPbRVD++ICMbuyi>uT>t~7T*V3drVj`X>`4=bVBRwL0KlEsQ-u+>9Fm5TVT0{ zsUzx#9p#-`uW;6M?&%MFcq|G>+>Q3YhD#3T=$(-Z<@P_eG3;BsDo$>gEK2{q=4=_I zcBTr3uS}EZeaWJmB>iesOQKQq3>)RpetQVKYfX@wkCuGn0o~@Yg;KOLTiLeN!jE1S zmx9pbT^aJ4^t(+$8WO(y9NL_R%VB*;jr6OL1u$GanP)O4g2i#l&|zjIfOV3%x1$wN z@3p%#wDSp$I0J05K!TjUxSr1C{7;jT*Guk4{VhdPhBI+pDeoY37Ep0!{v5;{($YEM z5*Vj*NHQX*y%31p>XhuraZJkN9&iRUX(?eXZ$JPdd!8qqHFIw~I5VTlKoCvHfVfri zCl(4@WHZ~=uLm{`_!AP{JD1X~cBMEM{$A=miUj^eW3_7!TBT*26?@m8IOSRan?Q~y z)li~c^ZT@{HXYM{_jHCBZYe(i4Af3&mQ^|+o>A9#1-BAbQ6gmyXPw22T=*^7o93@Z zx~K+gCwsGG_2U6EA93cSk0VI(ns~+Kbh&Gi(?2yp2$B6 zfCq)W7dhsWEvtP$QE=(tHL-N{sC9~<=Ggw!x9ldm#qNsuxH6)}+R>dWZoW8D^Iy$p z?a|JQ^v6x`Sq);APHT~0_T4{CYwUeb%YbiopD$l5S>fl{V@3qE-74&lXz(6Lu6p1=1Rj!pSc$Q=nO+qduE9id>na z3(9$}#7#2VH(+P_Ru;&wo7I%ZyMAmJ&5AhoVl~hAp!v&t*&$Gg2U={X&y}PqGwqOU zHZe4DL;@?{ZM!JP@2EnUR_MZqGwhLLd9enV!S~-v%rMxt*HY&n!q=vM*M9C_A*evb#HE2R6aOLez9?fate8ELXxLE^s*U1?gTyHi zy|Ldc)O0hsv;ul@{zTn^-M>;o6DO}MU&mL0s`d-duk*={prg1uX_hEg=DxkYRwlKq zuM92KPe`wffSAN0Ky_VIJTFF4XZBr#Z=pXQTnRmi+!p!w%a61&f!-=%%>&leP>P?% z#IR4dACZ;7?VhB2Zix+`FF2&N=7xU6pPG&{boTJ06BDPLwvY#}5M5NUey_i`XV9qk z`pDzoU@58K5Ec$uvO&3IZAa*C9?1-*Gk2x&CrqMkJar+wRoqX)AL2PU2Vk>zlIo_RNzo0g`iNuY^(3{_YjVXi_{CXA>}f9`>Z2s8-7 z6}>l4gL%hB#K(X-S6-Hdv_nq&fMod*O||m z=b~=SwKGInPI4j8Fc-E?AR4PMy{F}t#aaHNMs6+*iT)p!Imb2z5sDx{jVtlv%<=ZE z9y0AOrvZ67ogWHUU`Avx>O!&tcE}^!`c)Z_Zu9kythtc22~BekK?;sOH4XD!)|Tq|9-U7M2~ zkES1s9{i|Q$24a^c6B8*wW)Ihvt7PMGAvVC{WD(UOacdhD26^7^q0)%`%7~?42hVf z%J-=7{U@3m3k_}0jCIRW^=N(`=uML)4A{uU=GB1thH;ijTxD3c6uIoRoAb|Z#TfH$ zv7L$?Va@M?Etm9X$gV%i;-DSd2;UjJs){NV)JrIqm6-iV%6_}RCs*SUwTaF$0=GzH z0)<9N>~x4?yfYU*Kz_iFf+IcardKxjGry0dZh=^F4U=b!cml?gTGyJ-Y}@sm$f1mf z@D5gA>EscszASbL%jZ0vKx|wWG+L5=yZ)U9=bPe_WBUf@W#RGp+pb`P6<&r&Iy8l` z;&T7n8~>WgtGnQo&XNMA+GwJKz&MDB-MzgB7N@o+c;=AcP0qDzDk)+{hwr&jY0wDL z#JKSyjwKNK^E0V3^;v#yFKrnAdKeRO#8Ll*upnr4H8-KYY?_gZRkXqF*!J$2c^Z{vz@rfTZ@85l7ir4I3s7lXEMr!w0{ie& zs*BFFis@?Edb+JNfSQD0)W_JY8w?=>GrSJ=89m$G8EF_8ik(i+GLHK3!Acl$J4>B*yxWD>Hu7Zu*Go(Zdc!aj zw-pmx)`ZH|52oqyJt6vE`+8%sp=CJtekt1gwA%{BMLXtm!Yd8M^9&36->1R(HJDzZ z^bJZb~j9rben!rr8=QtqVfc7`mfY$#N(~rJl zE(=m=oW>C7ss7Gw)0#RAkNqIf^4y8sjBC#5=Rg;$@vCs^(A*K9l0|TM^Ta%LE=V4D z&q)!~pwG|%{|DE`d---0&-2w~4E>n|a%1_46;yBo27k#gf*iH+H6K7$s@Me+$ibL@ zB3)14L|0LcOV}8T_CihPoQ$|1u1+K>7ifoPO{2D4I6s(xwnoscXX*So=i9gpHaR{5 z*B1G8Vuj&_NB&C=@(99|h;Dx}gY^x|tN>+j_SK1YGg;~n}7GAouye_PhYhYeK0pEYM@)Nyyzv5{ij^lM_|}X{i;;7DK=`^|1c1F0dqBRz*%MvJ4f=ypus)~J zyYN+^bwSZ-%nn}6C{uNuw*>9rCihg)R*x4#S z|Gu2uqs4OIrJadPOz9v0z22)n3p>Ayu7TP3MnIAV3 zNNaGU5k{+D(a0RJq%E(mcxy`wcg^=bgb7s!RWk-@fU%dgT7JTCJiS$VgK-RQS1FgZ zwF~r->sP!|N|Rs;&~`jI%41j(+Y_oFTUMI3Z(=1;3PhW&VlH^Bs!>^(?Ns;)0{6NG zyRa855l8LCyHO9hB3!;L0ytO%jg&x>G7$A^;b)Ke-Tlv^r0lyO;5$=J7m5osV#40Y zRu~W_j8dXK_vnIX=O1w)FC*jNFw$0&YwQO#Nuht^1R4KjMK;>kmMcW5C=|6DrA4~Z9s+qvO;$Jt%XMa3f zH*|eB9_l~@Y~bW%TibvVbcmDCzujJ6#W0?{*el3)lg_US0D2c{(z=@U5mBUTDvx;2 zJh*v^&H@-LAEn|}od)Y0K$dhrQ-q3cHaYien2Y;jY#6DbIR-_s;6nE z;Z#~k=&-E1jp4DKVsPwYz^IDLUCmy9(pl|Yb(5IO4Z6ILXcJ{ss>A5Jo4m*Ni>SQ9 zwLcpWe<^Y%OEFAsi;=LkP&;B!{rH+A0^0;~RbZzkd6-716)mTOZcpr1c=eS3Y`T&( zH0bLA^*S7wZWN7_{ipM870E`%?(Q7oE$ICi)DUo6&^$$6a4mY^|^f z)x<34w`z^Wy>VO0`uHJpDYyi(%+#$&X-WRFq*D*4;?z~JP6g`@=rCUrD)9&1Vv65oG}>y_0sBvIfR!F{OadU+f5~mnmz$9v3iLbw%_1Rfk7OS1$jpbIG`OeZv_m7l2KIH3F!L#c)DrxL;6hmgpAREUdd9fruj+~h1m zp}vj}&r+ZlgPiX-Std(vgTZnn9*lOw4_z@s(yi3Ilwt^t4v>S=4T7V<%8LB;5j&X+ zOnngQv;v786*{vQ1gu5M``e3awjUjd#gejG)ROBuJ%Q=J>iBo^46{K0g>u$M<%w2( zkrmz#d{i9t5$6fr0xN-7v%AUAonKOjjZAGlMuaiE9|S$Ou$p zqYXo%G)v5#TvN6k4w0r`P&G#mSNs*6AZ5QqOc7+QfBQxXm)naQ1&1Ww7zdvqOvv0L zZg$L69O2&`^lc3jYiYaU8M2U{IOJVBL9?3jHo=DMk5C?d0R+duE{W4GCdgF)i9Ls* z;g7O@IatSAZxnAyUrOvGaMrR)pJi;m{~P9j+%Zi)nHfU$|Aq(X$>jhNB!C5qtJYnP=9MK zv_)fiu%5oM2r6-bv_G27Eum?TU8`cgGUAQZmVzY^W|UP9+|F}AKS?Z?1FvvM{P6XE zIS5V-OcJOHEAVWw&~Yb5U9%<~_$+`IF*jSyT(IpCshn&?@^Ky8RU5c+msR;8W%%|w z8z-$|+o-jK>I?qsA^i9WWBuwHo&9W$0qtN;TdhW?=7Z~!J$nA9mKTZT_qRg?;A_lN zh(T+Jx=V=qSbnEe@xEhp59whAc+S0qIIH*jrrWSI#h*EfxjOB~??Pj+!U@ zLaxFI57c1u*2OPzY=E~jw2J;Fv<+S+NmJkAk)GwwhyS*e=4_R+R^Cs!hhljB?x1*c_iP57W}7Y4aWm=QvN-M%HuE?F3%pyX zorfbRJo}~u*17BBDCufmi%ZK$Gk209EG8#FqZU_jIV5F>OO3kyYjb^NA9em(^4t2| zed;zhY=foArezx{n2W|Eie%>uj!ojMYx4S&iqrg73l(tqQ@-7&I(aX9x!&n;_2eR$ zC@uNc{*^5r#Je2F?!Mx8h^iEvXzB2;24-xU=Dj&;mGPMnPX98B-6Iyo2xYpZb!Q6r zr)Y>5^tEh5!N16=@OJHwi;cKE1;emqyJG8e^`wAm{Pn;51M{hRa06Xqd2JplEeb~` z>J}|%)os}f5S&&(=875N)~560nLms;DNZsRmKY%0LCl2k=G@L_IswT#ryEoo0~Y~< z-_7=U6;E9_2C#R=+i;g*3R_BbczF*xGHWOHKd+8?3toD`PQ)&ceMKF;Cv7M$k#EOq z6LHqH<%PrCU~206@18R=OQL2GK-w~8scN6luPxPqRX8s{e3hxW^^thPN|;2Tk|#GA zADje|CzT19(PhmzWGmhag5qxSan#QwcKC@@TwPA!A5nOeqEy!~Lo$AM&8_MnIQD(< zg&2ABzf;1Hla4`5`;){X7nK=kLUdG%N*6LS^yeKv2Dnz&mQvr-G~` zfup}`)jf^1_Og9-p$<+1j(|s{WIZ#c>*k;IVHc-Nnl1c{U;jUo=I@0ZeVI%YalR-5 zv?PhUyuGI_l{)rL(iEv2LcwU|(ze}AkgFvd&AhM8Kg?W1o^f;6R5t4yuRUQe!mD_o zkO4e@ywzG6RdvZyYzFm3PV8X5&O|L#FDI`@9&i zu$ZFx+$MxCqv1(%0*5z1GFV{#QSiQfG!dp>|=Vgr-~_VU8CBgwOE zsNPW-(Ss2;etv{g8T7>{8pJ4>U z`wtIpcc9!xE-t8B?`=`>rs5p1zKC}xUXWA;FFh6&j0w+h{Y2U7u!Ye|YJPh%2X(yr zf>7$1V3NJP+@%pGcZ$MdNmLl#0wnVY_OMyogo^xMmv|R!{S@dp{2gAKwLt|H%vsN1 ztn=;;_t`fy7|&;l6Cx2R5x(=VgOb4+7n0%7Sa2h}uj$I3`)j%NIK#Q#>x2NK-9W%q zOi3aDBoIc=G!QtQ`^%kTb`{Fa`zOJ|q6q)1Fp{=FssQKUGAJT|vjx1v-2Ru>d7Lsq<^~j%9`pXB&c(<6R^ss$6qR32&LSiL6U7?JiITH?=f)C$;#hQt zxm-cz9(89&5@F@fM(!j;A|8H=N75Khc?#Z>GuVU|0EtHX#z9yCB9LBa(%4#Pnh&=x zr7vH}ryGCL$tbF12RfgzqHl9NvZ?yHuEX%CjYU>S%`q*UnCc8S<56V{e~=^&gThOK z;-GhX;#>vwL}EJAizHSX<{P}=q*_1w_RtV$cR1fuhRicyGPRgkP6oFC7>BEwa`#1# z5H!A5-h;ACx5<$hgeJ1Xvk_~PlND_?x~gtntyC9&bTsGYrKADP=Qmd&xi^;uQ$Wt# zctzF-%Uo-ulGau+`6r*iVoNHVORFie%cQCmd?!P~ zneaLQ4g};zh$0fZvN>|=0i9S-hec*`JnH%Ig7u zf&eE}NbGv3A?~a!AB_6J2(MCVrWD0AP&AaOP750MNDqJ?`I?#9d-3Zxv|q*~v#Smg z1KO>md|*j`&KJl&4{0Xztw23XklNfDIXf?Q$gt*i+B~i)<6%*+Yp*Ne8%LADem#V_ zX36{iLCJCQ=!t*#!Rm@mGc9%dYE=mbj`!oUq+^9|r8W|3J4z{C&(4rW1WL5`nT9Di zrW4L|hk+qt0iZPZfKoAMa98Ufv;=VyAO0yUcaSzwldR0*2~5r}#oi~Di3h+(I?aEd z#^y@8b;Ht&R|n!ezeyGf=-JZhgYWhmd^C1pb6Cxh?|@A zQE(yGZ7=?#qp-El za0;vLRhPIbIj5$*Dq4XbN|`x(mW^sO5e@$64!i-h%uuZCC|ZK6P(GjC-?7te2uEBf z4ngphiq79++dlvW&`a?F>^lvd zS2!jW;E#H3DHBu(ZrN=*gJS(53&I-rg^XGqZHy2QWA zYUO@*{rxWcc>XSk(FOf|C2s?I_{y2?wLlP-1!#T85^!_K;rnW!VcZDGIGc5*JF?8E z09?Y>GpnMbbjDT7G+8qLaGDT_KCo*$Mrml=Q!o;scH&P$9!Z@Q9bXsfO#kkClR`U( zEax{y&MqLV0;oaD<_{O1g1Dms&-*irczI3ct)5!nW*=67dU}?}QjnAA*KH4Dq{U+Y zipXt+N4)K5nCyf9s$quN!@dn9PSN$k_r|9^Mb z(zC29f(qt4a6dNA7wY|{sZ`Gk52Xj!G`wN~bglu`RM9m+j-cgLRJP43b&+CkX8es7 zj~5mk`YD?E5<;o|V^)tpe8;MqaaAC^gNx5pjw0yikj3-asg$lDRvA!2`5DOrwW1pq zg7mtgJ9=QX2aFKtT^NPT!bD3~1@{>43WB)(P-~y)*Wmxc>zF(KdsY0;6W*u^rr&?y zyT^>S3t_Fgyx4^oepfM9hqeS^DqjRT)kw+DIfi#x0oxVZ(@j|I>LK=B#x8Nbn$Vr; z_pPwEvN?1W+WMW$!dpJyFotE9&*7xX5tZ3H8gf>B84DQ`#HyGrTtkvF+g<00=hG83sg5|I?T7i?naam2y%RSva=yigC~p1Mz0R5C5W>1Hk{|{cf<>Uq zX-O1td*^KXT`$*V83R&oz4;-`kk63(U|We9!nX`qF5XC(`z$YLL3rT7S@Eait@s6k zBUaf!HP{n`@_%qP7N^8V>F$%!tBiQz{@(AdIx?_d|0z)+e9UHxp2#^o^`0O03$K*@ zdiOcun()DI0y-r@02!-rl;X>I)0Bg+ZU1Grvlb0)X{rb@--iC7ZXI}`Ib`5?%Ve=i zKC6AK(#NPX-N58I*4L|@bx#TBj~X+)6a@g8y=c4Ls0;mN($LNuhk>DJ*es-I>}-oK zN1Kw(IzVn+b8C~)^rrZrF)nSxVzNA+1}&u28NS>^_t;17jf!d&_*Ax09=-abyhg0? zRt4TGb(_@0a%*L_`jjeR?0fL+K5uO`In!Xe$vFS({ce{t|CCPm25B1D>UhM`XllZx zx5m-)++$L_=9by%X(pUlg{#<(h(ks4Ns%6&Gkqh!dH1;M*40E+{Np~eufNbw2KPn^ zQMVmynTy+-<1F&o7eb$Fkz<)e{sWb08`VYRbROSH^GA~%A*|5pABHT@%)*Zy_+^+A?_# z&m)1K$87-32&?(fb=+sw1wiBSL7?!4ywr@=KY+dA^?w9VCaR<1%BI zfRPHkki6pVV}!?rA*swep6aoAJFhZpQmYZ-lN)^09kbxbm)>{(Ut!FjZRJ8r?E- z_)Y?+P3xHbJhD*FZ`&`HM$N9f=t}kM#*x+(gsf`jdd@maJwy1A{4<4KFMY%8s%S*^ zO%3nxUMsx?>&_$8*pUlUQ7I$gc=vDdPp?&xBwfXfD&P9|EYY05%+)%Rv#RFAlenZ$ zi&tR0m}C3uvY@{;I0FbJ7u*T$@Me@ZB+n)Z{jGS3>SqL_5B$b*PebA}tO`gwsQ5EPqIquZdDbFX!;T-wU(lSIe1~*5N&;wHnNy9YkuROu$DnO=h z8GDaPAJFcy?zPhM1((Ro-B<>rfGr7&lzSeT7kqWH{J$|DSxvnI;ZC9Ca9SD@aX5|o}AWw@zI1O^Q zEzh9g3P&7g0Ya}ZTA;WI_F9b0MmeIe3V}?OCe+ggj3mZ(M4@#w!~Ra=bcs^gBm&+Y zO%#I^nZ_7Lc{55Bdo^K4F;26JlpV(|cZ~3cv?S=|vlHWX@^#Cw$(s~ZBO8Hhv!%1| zNwiM(;tlYN2>Z$9kpIX*>-OmnWe;$@NPmXm-W`U^@L8LqnEJFCfq(5|PT(c<(*{YJ z;wl_3ObkLO&%=C|axeXPWZ_6gnQtuaqy77IU3nq7`C#z z6Z7;|9tz<(UWgKESjai5!#iJyH`%7EI&)OmgSddc*8|^a@Y@Z{ElyKB+ir* zhfPX^3KRS6es<}k{qB?si9$|h4fj--oUx@t-^Vtzpeuwc2}wpkuccSjL6yT_8>63` zx2?}sM5PGy;o?RB3`o}CyH)BhKGgjPL&W+0#fi;vbG%)5P@UKZFQowz_MHT+=V(@B zNP0ZsuxQ$-mf>fJUVl*}_Ls)ZX3~ATi}>##c$x%~x9=SYEg`2^MBv4$Y2TQ**?~-! zuXkTEO8S@sUsjNDWk+pUMiOV}jpHrrlEpEXC#vrbKye5^uhBCB6Y{{lbU#KZ{~l<15*r0i^Py-L+LCM?}F7=;RIdeCNvV#fG(<| zRdB~4G$NEaW}TI~w-6MS@I41BLG*Pdswi#~5~rCLbP3I^kw!88G5?zst9998O`n4k z@X#JIeKhH<$~8^+{IAoV?LJPxVC8STnBT{Y9PMad9V)BP`~;L&VXZq+T*~0a?o6@6 zkAoRxoJk9b&fKn}l6<(Y%3%neWSgECAqN_+R(egU$$#}8*@FF0iU10f#b?U&%8{=9 zhWR1Tf6fBWKqqDcQkov%SQQQNRlB)qqZh?dJxPtO#3s_Uxwa&Hg%;=@yu>nW)(=z|>h zoX9Y~P5Lk980+-+krrf(7?F=r*qtD&;_(`4DrLxz>RXhC$h2Z2IwKBak|u1%<>rx) z_BM%;V!}(lIQR7&3f%ylI<=%c}0G92sRXIz1gO5Q}5Nmu&Wm2GV#3c#3|k zZgYDezC8u$p`)rb7r%{d@C%IgF3;a;hoZ zPGs3PYYlDjtx~YU^V}d^I(5C$r0YLa9|05F>4ZqN$jQ3Q2;+2Z-XHpW`Bb_X;p?($o2tqW_{YuPcz+*tXFotAt*qj zH~vK?^PJY<{TY7``oKp&*}}S8sx3qsPKg3i>u%!D(?u3m^JK`E%oWC*f$cKaXWAra zo%Qk&D4`95I$2T=Z##c`Ji+fcW2Cvpm)w%=DBF!Zo$#^HC8wT|^{v!{8D8nK!9T-7 zjhoGFg{mMI-e;sWo;>M4JXsfd=H9XU><2T7p*33(Z~4>3DMGDij#7~2J~+(O~ZU26ycqzeDpU3Tk+s3eK zCzWf=N%UOT)Bb(`CUKTqHt{(;cG!ekl3!alEMfGxgAT42^#{F*gDEyxol}}K6>(n~ zv2~0YRRjTRRKN2V5v>+2R^1>AS_yQd9PdmyLjIAM(jEt_1xbR=_y4JzvOP?XXJcHV zAPS58Y#h2K>KrY~=(b6!^w}<3twwurD8gaOItFWDI*cLo2~>WmasHpkA?OZnz@Kub zf=t(KQxe!3Be8MTOo|i=jXJpaURq-e_b*zgS(Hq;vcbv@rV`R8zC#dtHr zQPPz6Hsu;o`IRL1p6@aHh&}xJss(zJk8^TBs0+D?anikLZ}G|C(1w7a{iLQ%Wc-n1 zR^veR8d0^EIgHZ>J9Uj_iwekq3CbQ~s9Vs9gm)PkuU_fS!r)h9u^Ng?LSG~)GA+?G z?@!NWc!>TDyC^v6m@V%X=+ctVdiL0$TzT~``L;=l7jaz<81cn@^Z?a!!Uv>&X0I5a znUppN%;`leWmspZ7-foiuTw`|sL653eiNCcpNx)^_Q*~OL6(G9;hHMw7t(-XCrS{s z<0;D^Em9;AT0IC2HbDm~3xo^PpU?j1iz<+YX_XN}*(1eAe|UXQ4yKM`Pzv#RqfO9N zwiTwD1TM$L5peY7Pds>$U~LHGM^L93$JmA?nU;xk{x}=x0X2cMc*xrw!aY`(TMLWg zqT^0kwLt-`4W2U&?4cjGF~|SJM(kUuWt2;)7dE55)*dP2Frx;ieP(L^tPqEw+*f5L z5A~fS4UOzk-p%tl);EB7HLQb_8Gp2NV^_L}hH8uVo8<%Y~u^thV^6Q{TMI zimFWbWB~YNUgWZ01d3QdoT%}O7eQ3X z+$qM_4-t4(4?S8TW6d`hgkhmvY~Ti!yx+Fp4m!a+CM8x$-v3~tkv3oFH2zMSb2k)D zd(9pWr0a$?g%pZvbL=2~PK?x~Anzvt2Uj$7&X+kWdKF}niP(-eTT-hA>D5R|6saRi z?{k39XDL-AD{f1K9BB$O)va2C5qXP#ohP(8P|bV#P@G;t`gZCvO}(R&`EY4)(G8bm z&L=Z89@BD5Z?urLj~fRd--RR-e9(xX#unCm5(AcfQ~G%xd}W})Wj8)93ehB)0x>`>}A8mbvUmcTQp8p~Vw91ObJ~M4bMRh-t2^-z*TUE4?EyAx;v?GA?l0ppWZUQ=t zL-Z@Oexi7}(*A`kA&d}VlpY76h~0he8-1p&DxM-t-%>F26L4FbzX4=>hWQooMuYFdx&mJwO-Ncp>JMuFY`AHDr##SSP$Ozxq%BJo*WHT34%le7lqjiLfi;B4BJc*ueoTf z?NKN$PQ85qEb&ri;tEIHDV{7US7P1Df*ra68QcYVtlY{W$_0x(aSKr~7QVG~(~l$f z!UJWA(I3Nd-gI7%03Bx9fEBsOa)3vF3k)ZlZkVILC}$Yny{;t;5b?@k5iU_0358A= zuK9h*oScjYV5%Kzt8KSls_;=4W^j|toCsUpxN}#=V zrz%JwQ6!0*b4UPBz7Ai!6z;ni1-WnqZU|CVkTD#OIS}fwj+>&rHfKys3yD>z<0gf$ zUd#PHUB+G4E!&OI&!MOh1)*$kuE>{miEQC14`DsxO6-6mFS-_ul{wJb zi3xwjSr$Lp%i*Cx-uzUyjJPH^2QEc(&PH{9)A>FA{z($K1L-r*Mj1{D_~Jh4*UDV| z1Wxp=q36kI`$L!JM`?oE)CaecMWV)efkKX)hCI??07Zed-Bgc4ytYC!zR)A6_xio( z#g@UsUcK&cyY2QuAl`{Wk6TSVyui-5cHZNpfj(hCJYKSML6YOXjbEh~cO7g;%P5&y(RODsXys=QfLZ#5b0^c0l zX@HACo9!5jv1CsfT&;QE7boM+ZdUc21Zk{Uv4G{P^gVH=3*%1WWbk%$EoCI%AxTxy zWY##1<$8){&nkh@*C*!NxcI7wQHL>ZEt-I7MYHlpvm+C$`19(rw7ZS>U$Xr=@59c; z<*h8eEf42zDXpKlOwCTx;pi@qS)Gj9H>vOl)HQxAr(kDHhnyqD4LP27`I%b)(*LT9 zri4D=AM#zhHJzqn-BON)!#)@{d`YWyJkT9sbRL|1m^fMOYL@JUep3G+spA!9PJIt; zx67l*Ki4t$9xB~*n-W2VNhgTh{IBX9>YvihnVVc9fb&^`E#3KePu3VW;KT0E_en$J zPUWTW&X58+#puF^qkg5gJ-yQAUA~6Av+?0GzXv~VP83OmJIcH_QJ-Q@&nNL!=je@V zGOV-__m8tXLsiwxVTmE1#&ka&tc!%A2h4eXwj9ya(|g8`5m(OFWBR%~`UoSDh+4=H zI?Jgc5bE@sS>#M2j^{eZgvNGDA@ThKUWECgd7@u>OONI`IIr_7_+gNGM*fx8yTSPF z#?$BZ;u>8T3(r4(Q&EIX6%h%WA~H^rc;{j8VPM1h#C|c7gR?82;K{by>-C;>r3}A048yH%`~LYE$K%0C zgfgH%^m;^5Rkql3!xn|5d43G*b+|x|)HVA10YE^L!Di)Mc6Ynev^YqENf}ZlE}XfF zA*F0LUUlYx<c~<`Wmh2HZ||^+mF;Lpl>D%uG{eJf zWN6I2*V!IcFb-Oz!w?tgJ28JiTnX{YYG~D&?@c#`jik}MOp;96Sl&Cd96XpreQC0- zUil6Z4y|*KQ4l%|-CqfHLZ-Qat8Ok^$yVKTijZb~l`sjC`dJkV7Kt7(=<4F+t8>-OE=ml0444=4 zKSjR@8fn@E;eBuqmQ=`zkg%5O!&=YZKKe$y&tfFj z5{-nLFwK4c;FgljzQX|3%&Hz;I|5x_@RTKDXR7oTk6N&l3MlXLp8^g8row~MPif#E zNwxYCQU9EXS|nJ&#iSUoQdi*(wpuGoM)NK^fMfSf=sQv{beT*|96c>oydoxVuUF!A zMocx7{yd2ut2noHlQ5hyCiYO-hZv4hMwS#QyvwE`=v7YD{c87v>9DI^8wM3~Tnz9Y zay53$G}0d`a9w(D%B|c9*I;BZ2!O~Km=1MlY=V=en`q`EcoQV}ifv!Y zC#J4$zK-;4e4+F#vWEYWb?7dldHII&ktuz+A35J35hAIWskHNxzn-$}V{*Srf6#t% zkk_xjtGrfMU@|@A`0}DXN`!(eUbL zH+w3$n>}^n`uI)^{8@%$&LH|si`Yk& z-U$3T)U}E|D8h$i1)L|UNJ&@P89c~B3h59}yOi~W8Z;%(dTd2^qJb42AA!BeMst1d z-}%RDo0{P@r(T-l>WaPdh)<9TcgoktY~8-MSh5fK^H!-b_jQ!TV1|2n}f%X#EpNmJA$>yLXk6xz_SU<^vPKwZ4N|&)q$M07MTyturuPXU(7O@B0jr1mB*RH%A zUa{WSdHwvXFtk^Z)CusCOfIwD)ohw?_<(*E_!y@M+<))X{wpi0%W0kNe&yd3eJT37 zS&2e(#4gUI<~6lr-S2D)H?eX)jYs87jGey3>g(lLg#q}hFB7kw{^jxp6Ymd-7`1n|+_j+aZdAg?U5B4!vb_0Q z6{mves$)YbSEt*gm!X{!tM&ZpAWQT0nR+VjKePT0g#!@u{>N&$#6EP)l-#VG_jcll zv^Xty(4fpL@50)=N}ZOoDhMd*XSV5}Uh*7FF#1S0Q+@jU==Z$HUojdVz0aM6hDj7^ zY2}jPI`ZSbio>BWKVjnX85eF!<>U068N&-tcJnc430@;dHfKwPUm3o15s+9aEhL$f zr!_1;YB=Cl)IWq!tN8lC>pKhM8!|-3{`qOdgI>#mxGEskzeyW(Tv1W-86O`EHgM4r znM&vXxy0sE_WUH-)WH92P6@NJds8v#*~+fKUcIGQJ#AjoG72Fs5V*G3+b}9YOynE0 zhXqrTG8(s|JaYB@zVe(HIH!1L1Wry9ldL>Ce-eFSAbB$C2$`S>l(0di)uiM=EKdoy z*?BwEdw!*dC2kSxq@L5zP|%NHQv%vG=atWoLARZK9_?OxuK8-LXc14S{$3aiTKKPRBA;G@kHsI`Je z{-&F@B-}_b!8E~@mh2$p*+;|27YjitAf}hGReoW>tX2uqBe`D0t_xRBdvejJzU>_V zyH{yhTB=h0F9#PE7ap!=P+6N+87Ce&q*4)i`vskEjPh@UmW}Vk<{Es$Uoa*m$gu)u zK;yA1Pw~(wlW$Qh4NDNjz|S|X$)U%$-goF5ws)n^_)fV45P

    PKr+UY^V!;T`eQ5lp@TyX8!iasH`0d9MA#%N z*3qYEBwh>J6;+aFIe#2SXh_~H(LbDIPtp`Uu2=TwfkZLyCDvIxgW+$*KgH0fiNx9# z;C=BX(`&@bEnm0flTJhoir|t}gyt*BahABZpi*i#+PwGt^-=G=v<_ zVCJ4pU+5bsX1<2-x+=|sG;W9Fjqn#Md!%~>#Z+^1fqo_!-CC5Go%)qi`miQ9Cud-P z%j*vyGz7*pjcL;QXRw@fRO%i)ViF!KIC-nnt5;xsL)CG2MCbUFCHC?GXC)O%09LI~ zMy~~qOv^XV3e|`{+F;v&C=@V3CQ@V%b16q-Q1*-L@R1D`3GnC7AqQ(xcG8aou3S^! zOdV7Kg4%PxYdpd6d4yLv=vhjxL^f zkhIf<>8rrpQUSX*jic*T{n#p*z~jS|+Ow#v^5BLDwhVeG5f5Qdy!2Q>#5mOPM4A`~ zgB3R0Zij{OKkoC7OvGZlf#DDNFN(1a^99jpd_#d^$t!s0RVKhuMZm#L7%yr372d

    &!*6lHQh21c0Hs@0dTWo@&T-)o5@_ z%UE%`s|;rwvRzrYrf!Wchb@Li%i5(}N7XVMjj%Nfn=?B4rKv-!rW`Q&;Jy+=q2%jt za%_oy%Ps;w9>=>xa$^(x)AIx4TT89e3XB5WdkA{E-2?aHlMw{5kqK}(f>kof$U~%k zo4pRn-uNE^Lhpp{>3q!pduq*ac1(;T=*jR+|w& zao~?>utG{wrM3{|^!G*LH$h3DvCIrBsR|e|MuGc6Fxak1(iS`qznY;Gf`3ro6JwZ1 z3WTm@6*1_^E=mRHJa^bUM|Gvx<|nFqKC6PILTZ>%A!WJIo#-U4X@YzLwvKNsU#IFr z018cjQP8X^j@VBh$(I_&>iGl&_Z%@nf@7*i%&HLVd}GHrr$A7X(6lb(_jT4(jmMzb zxb1(g-Gp-=C3DzSI2MNhqAag0)?ap+-LRvKKm)1zI8+lZiqPn_`J}{Bg`!UZsfaQd zDp}BCF{{2Zo=%J73iM#TNs^ZS}w~RnI;ciLR#p zTKQYmtC+Chfl4PU!+0qn__;n@`GFtrj`bP$j#fs7GM~Z@GD~uoL-fsW=96Dd1X-sM ztRGDfVWt4a>qSNENeBkmW4?w}IRHl(CWfciLhO7%v2pXP>d6lmp%W-aiu4{j7EY=* z{QPRq+k=51e`>+xNMm3pH5a2Z*nA7BtVh&6au;x&U+~itkGl@cR4qY%qJ72i>u=Y! zorSElr@FqeBq|kBHiNO5#U#7PgenPZxZ}R8)1Fyi&?;Bk;3AvB9l^GVJBh04Q7IOr zDhPKKjP&<{me{sQTZ2=Gb#Qe8lsO53>o~$DKTJOb(h^@nL4zO&dp=scY6`$yK>A)f zwYhD+IDx{6ey`mYcK3rGpTsf&HTW-p-_F*uxK6+xEjExaG$|BH&^pAxC#*~{8eKuG za~;o^=`4}uSlH4McSR1*wlhNp-qHa`=_1s^w!UsXDulT^lR@pnRba26PHn@EE2n>t zm0!c@MU{_Yhs%uVUC)(p{?+hvy@+GdsVZItT5OOU&pR-i>bp_;8Aj3H*iOgKqjn^n zl_ZQ`hN{xx)#?|{DQyiubjmxKJ>=#|DbD-_X0?D71;jE8YjT_Xxjb{ z><1pspm@F?nu?HPYTHu+xDK5Ya!4nMpo6Gqg6hTn7qBI!H?VwS4^-1d%4Cw>V$>d ztb~~q7N;0%+gjF<6u}+D``W%#0lNs>4QFjt)OJW& zGZQwfSwU|Z^V0upgU$5?vd{x!Yjf|B7~X{j*BrtqAv8sceZDz(41|yjK6(cOQv^$~ z3*kcP{m5P>K6KyJF*#Y@ZW8$g>3wqgkI|#MBfh?sSL28>Q4)N&m}jDIUSOMoSJk*bkyM^ ztlTGs^q%BO0^r%)K0y_gDCy*i3{hQ&aS!I>@g7t=f_4ol@T*;GCT#xy z0dhc%ziD~Fe#)|$@o>XJMijEN6{3W_eja`q#9~4J3o+$%!5;k=L^3&?3bCi|pg0(W zqu3h+Pa`wYtsG2*Eu;4xro`5d+fb~T;OARKvW8z26m~@4+s>+A2?h>6iewk1Os8bG z(2MY8RREkS$bn}1&`4;LkQ{=Mxe`4WQ+XSP0U3 zuRs6N=V#d_QQG>kwV!F&&A}(zE$lMv?XOM7zjMyo^%I+gm&k|sI-4tvjHm`{nQ7h7 z{8KH$n`E%G74n%QpPyu5Al3`CeiKZfDb%p`(cjHx*NP|^eqMs8AJo?;HVavXakYj& zBy?h6h{dwJjEuS!3{Y`8`e^~$Rzil0P8b&tRr7(Ugw$u)TTq=FfE#zWdfnbcz4gO? zPTBuJ<*ZZw$hj=(1Kmn9p2z1)`hNfUm)1|%(&%qIrum(Anf+~YRQYhEqOXw4td*%( z`=gR7Vrn@=#+NF*pC*ryjGwWR#I&@WKGIU5l(~JV^Al}iSuOldL96aNKd1S3Z-S_X zK1W%$l0HedkgFJ9YN&m6;tAW^>*X2b*sd8OVK~w#we}Dzsg~W&!avuH{{m1;0|W{H z00000LUVFF0000000000000002mk;8W@&D2X>({VP)h>@6aWAK2mqwKa6G#*y3#Ky z0RR}N2LKWP003rbZfqHPm|5=Mc7FW$xxgTY^ss!en zq2z}NFab{t)YVqE9)5%n9&7QTv-hc1OR+KGk~p~l-+luYUq+XD4ivuc`PG%AImbD? zE9r^v@pOI5C&zN}k49pm;gB?E_|E08CbSh-G5{CSE(7@|a=a^zkWWV*H4D7d&NRO6 zv`fJakAdOQ>imRH)x(X5ey_1IRaTr~oH|8M>0kv#bvP>ggcTF!*`h0nfaxau=j43- z?J}%dEd?})v8471nlXK?3oeXuGa1e1*8-s^Z>lU^K!?6?E!Vereap{EpO`B7n0=nq zyYJ{HD;~zdd46|UYmY!4ftGTHJX+~9xo~=5o=}>uZ$RV8g=l_; z@LVvu>sxizOjWOMI3aiC6ErJ(I#3+cK zsA&<|n&kv}1mvTFIP5KZt*VsikzVXy)yIDQ?Nv#0oFNpr6)+jdz>nb7(^gB+E;Eb} z&B`DTu>w*NCk3N&A(k|S2k-?gkb0ypO%Z~+s{Te=gm1Ixgsak)ZSDPTTw#@|;7l3d zR5XLY3B-JZYaCqvS(xV3H?2^7Xlb43q zHVAO=R&~LIsfI}52Y`vcGCW1;{8ZyDtb4lOCf-$ zRWaDgQrGA2_u7AEw@&qwzi7*;1niT+b1}D14|>+*twg|73_We=DMQ$MI}b%;+x?I& zkY!7VAk>xp38|Uh)P-g)Hs4#D$g+D&^?anw)eck=;X#tKL_v*SA$sIkqz%rTUJ z5MV6kLWPHn(Y!4(L>SsO{Bi&dhO*0Sf`D$Ci!1Tnog7MT;#4wN2FOLyz@h_EDS4=H zF0Jh=lzk&`1;R?O#9(=?_h*no`)~<0fUQ|B4-U>Xl>uk@dffgMO>0X3Whuw)#h%Fu?5BgvAq5|6Ni#K zr*}C*Dkd!>h8gsA&fJ1{hLk|6n0F8J0VTea{ED<W@YN;uiX_1fWt;M z^*d_f(oRbzP?ycn&%_b~c&=h}p`hf+c|n{Ws0t)mo5#d6gUc0PvQznaU+DW85fidx z5G1R)0>Uh54hr8_0Ixe$a+UK~cow7pXKtk$;UdFgNfs5Dnm5x~vr7;bK}>t+r$AUE zMVB8d6`4ckP%S<|`r?LSF3B?r!l}83@CRLfIKk}c@jYO^k&9g4vhDr~khVldEhN^H+kxB$NFTLv4h$%lXHr4{#5N|#1tnZC za2uiHpM5bcQ%cBEq`uII1?{DoO8{g{#at-BFSHS|4D_|HiQ*H{T(U&@AjbKCO~jJZ zHV5E}h%R6%w%9gqaE*2L{k4^VinTl-!0aKN*C8YAUDXSjxA}0udY&94dApgB4MaeRB zm`XtC(ZVIbbh8wX3?KleP3MpHGbF#7ZBLLk_=vfD;A^-PcXkL|gzcqp)Rv*pQ%$z< zc<_h+()rt=2N;K@a?{F$Zu5YokougLa6Z0+mO}}6Z;HM|=Y}I%P@foAEg4_QSaDu+ zpDbPDN9jrgDu{o7o+|)cs`}@UERz#8lLDqQM)lkk^RoQ?9A6=GVRCuqSi)I4&nCOH zZ^k#}532EAx&(AE`NaEsy11dwrR?ezH?|1kym_%$%~g;(Y5GQzuVl0HkdcWGt%$8}4=Wl0yo zBWvfS_nUSqi|=Ln9Gf6uDvERnQIev9kj&H)3MQ|ij8CQe67Z3P#ESq7_guRY|0>6{ zYW!EU&QtG+Jb$dOD%~x5^t_7RD^qiHAkT(^DBQ=ZhHz7eUPX#8k=8 z=;F=(=genkVS2nz7J=9)roQk?WzoI3UInJ(1>JAdW)XQmR;|Mmq$(BHwwzSvGu~*N}ilsem zca73rxxO*Vg{_4(0Mlapsv$I&162X9>98SxL?Vc<=JL(ZEixV$H#-yhz8$-m)&XH! zjNfa!VqERn7TOQVaCVu`_I9>9p!i%gn3VU2n`StDPzXgmuWD;1mW-n~mk)|S zphu=bj}4!?`s|)et51B8oo=q5=xpbmY z;B>H-s@abtyu&8Uz(VgUN<+2lTX@ATp3&D^x=%|S$hblYax0+WabgAIRIPHKCzk@U zScw(t`6Gt#+L?=N$zqlsLD$^p^cO-gZOH!&w^Q^F?60~tUf&MX15Y68c{AAdrIH2} zfzx`Rp5Hy#b^G+Powh$eeRO<0T@RNU@DHRrO+C_KiO`;KI%5*D4`?&YFg_ZvcL7i9 z*NW^#Bc{G^D@mJAM|!!OZ>~Bt<)(6=6XH0yGlaziY_{`N`_U^xyhXjO5c znVWhCOzX<3+)tjnnp$!!bYBXvq+KwUa3#qy8Ejeej8p>p#8kotHNR>&UeY?#KyCR zD%am~omJR(@2iI!!B-=`CzeMqvk6B}MX_WF>JuvNuLJ;5OsmGPw(1`Q%kz`&r3Xxl zu~}Fl0-pLE$-|(gyX4?5MbuKf%L15IjsH}uTA%I*jsMBEUQr#M4tP5d8}y(O7!9ew zLxIgwmtqMI@Hq8PA(sG4&o^RPjJFp1EjIfOzCNb%ieEB(FU8zYe|jvV%QoTrK+90j z0$J#e1Wb-MM)xw@Sx|R`l0U+QSHh4yqy!>xvVMlV2zp-pj(E%Q5~!X`UCQHhr+X_n zLLO-~2?0}6ep$Pb>ac3OYEoM)T$*}*q;-&PWD0uoDz%EhRCPsxeV&v&6m{DQiyXay6wxvxm~xyXUtM2(8dAg**gYoY?O*p^FbxbBCz}SSGJk0wPpph-SHh z`ziK@F<&{KP_U_X|SZR{-+v3#otHYz&ZN!sVK)$~D{oT)w zb!!=MG-C?7-y?((Q}05xsd)R8cT~&QUd^s=`T8~v7thZIwNGof?2<>9sq2%{u<3HI z6UOD|p75tX;xr#{6yUkgJxuJA*TAXB=`T%h$pw!i1WY&Kr_%PtzbZlQtzfF;*I2Se z`go4&P39+){sFb_X&gRai^#zUFs+J97w@mXF>pWrkCeamy7oIR|H;v6anlGRih6#1 zx*na7hABq!Q`bM-uj1%NVKs~=yR_-yMy528I zE$BLPph6L#jh+}4JqniI0exQ${cdr=Z{%^haLm?TqwYjtdZLTyD@Gx}*eRx3Dr)Uh zTzExXe5xR{ZfRBT7yB}KH^S5x?#fFasx+NGT^GUAr|SbjKA265>XAXyk647z%3o~) z=NAjzZ__JfXB2nRUZ?8$uaTv@WM9mAH1Ha{e(=6dDD9^Ri~hT0;Rxxbei3^0eh?DCZ^5x?BsMf!0L|jnoh~q#zHDF28(a_~4o~=lQYogWG5Wv)w z_qt4Cvt^576;YfPwRQ7Db5nDzs>^74r>W;ZZ;KeGf)Xbfhn>iC@l5R^-V%`IRU^|r zU6@FOqBV4Z4oqIxoXNA5ePW>KBp;SDV9@T-y`BiKoJE+o;%{_OJ$I$|s@Xf0n>RtB z&KLc2BB*M==4wBx6Ae4lL^lz$fa$arYg%#Ma4L)-{;8njDoIt^wUc9^+naz~h;0}E zr8b@D$e`(8Z2{4*n@ig+?-~3xHo5#_yVT$B7VnPe>~v`A`Pe&^qAkuYypM=kG@ENd zhT$=56Qe_u7Oa{Uk@cvA01k`E)@nUhPHUpuQpi)PB|s8WO*e|hs(FI?hJx*&Zn|7T z5zPmfAkaoIk0#f*OSos6`^55@z=ij=P5SwOO?+pm1%rz>qT5Z_Z%6Gii3)hEz|_{n zxrmej zxr7U!fO3;3p5#Va4N9CS(X=+%1i}O0bdLz=ce4>O9GBDejd!P~#p+Kbcy1F4h<;rK zJuMUd-;gowr)?tpk?QbT;l9XWS%!jvmZJGRIyww^x<8lz$5xcs3K=GV=E(Arz4LSw z=icLliwp-A4=hQicn05HO!QdO(RkXJ0^}+I#fe)r4wz1>!SC#yX_l)t5QW!TX_Tgr zP!Uy$gskVSAsgt8C8h)tV(<{ZyyTqx=zG6=B|LQ7Z5uNTfj$HD+8MXFlcRspF5?ir z6{M0|LeYXH8KQlewuXKIeg)Q?DMrqBC(3g+0tBQ?7F?Mqx|riN1+W$(*M*!f6^wHR z+ci80^ADWLPtad_quQWXz!4dV{9jyEntl%8rJ^>r$;sb^uWzBR2<_K5^cndDESeWl z_LnqG&6)yqdv-nOe2qR?7Y8N&9)>W(8!s~pvQ!>pb4k3CRMeG9R$ae}dko86p)`&U zkW~dQHN*raoOvM2btk(5EQY*_(m~pqtYH2-EGc+4!6#;$K+q+ME>@&5x_$?=2lN?v zL6I24yTUM_OBf`DS^S*%kB{EZe?U1wi*G zrUJb}e)?A9EQz9zGifAN|N3U`!V>KTAat3B>Fba1^$p#$omh!)Oh}-n`bqUXOZjNW zMdXXP@;%T*1&dk?b_U|d4Or*^MW|O6MoU*X&NfinRS;crdJfQME>rZSql_Br3$%&%mkx!MGI@bWgggy-(2hQR2cw?9rEjQwZH%FwQEd>M^4i z7Bq_3tLw{9jrP#MGls*F$yG3HEY6mN1u!h+XiuRa2k3Kph>}tNE{L%ym9 zjzQj>hCpnV9M@Vhp}S-)*2jz_16(1GL4N@tE27WHZ^Q-s9^yjdD-aj&(P!j4xPZTa zSYN}qg;}^%&M#Y92sn+WBB}y@fwAo4)?oJEO4ZlBLmV8)?`sa%6cr7s?-f~n2;Z-r zKjxA4NC16u{#W|}U-ZyMGU-J2eaPY@MnZw|@KJ-^%23>hI!TOH8BwD)!}3x2e!? zBNy>aXiZ@7a=;uFh^<0&HfGX2vcHX24Wr9JqW5OaaR&F--8M2~kD_}HXzBs^oZhR$ zeVd${=Go;BdR6LI&n>BATY8t3C@yQTa8L#GRW!Q0cgoJfJ-$68oSXDp z%Eya*Y<7nMMikaf=O50oMn2PY#zPHsv*ia_k^zQ=`W4V;4kBQ8>bTWOC1^ONMxX^ePQp6Nv zGOVIsfS-V5n-~W+COm_vYlX@p2CnDoT61CS9*842LE@72nfcyEm9Sp{dH|QxV2(m0 z8^8fFaMX3T-7Nb2v6TQ=N1MnANZni*Cga+1RO;5QQ|q^eegR$q&>nNANA0N#DT);z z0X^G>CN=+K&5Q}+nTx{sZ#6yMbVhy!XV-wd3G-9gl3#NSe2>G__LrQ+^vE(3(p}qV zOYQ;?oFGfITvUvdQwu2DL#RzF{>ZWdB9se3qfx3F_Yfj=z7upjnE@u z71@6tWI&d>dp!>*gnXUr(HNV3#ktaL`vv{J;#Vp`wBMl#)T48zevEMcH<(bOe>TUp zC`RNim*sOTkxtWS0zIDce?UC4QgN&uWQgQ6U2AV7)O4+SC9zc48d|!brSJ*56K5mF z^-GAhCKG;)x8N>-Cjq)_Q#NZ{d1gRD+x^qlfHN#XKamgljR)q5L$Wx3HwZdepg3o zo+iK23VcMUZ?G0WJU@>%=2<5?G1WZ*3_+2wrO%>xmnl}N*)3N%l33T@|^mX%t zbN{0=NZp{{HT+6bW&gc%tcr^VPW`BgmVa!nBb#7)^4qqWBX!2K&-9ymKItX@SMp8r zBOAbzQutgPA(Okk8NKa+do)NGPQn3MdL#Ok=#uz7L^v)Xm$G91J0u$s$4me@91=*$ zu?Tv(W}2%{({EnF5d6mu_;L6I5TWp7_zNdxOX~BXniQE9_czeQqw#FP?}OYl-ekH- zp9PwNJ=mu}Plk^yv{n}ston%K7G^QnsE6F4D^1xmxKpBrMhH7(nVs>&&Jb1kX5Og% zs)HG5mR9jW!8-HdEIBk|Cp#UFxE0n)x69fjPU!(N0%pY(1bo5cU0xv`5oG*M^neL~ z<-}l~fF)xB-Q!^m-GkKs69jV9qA!@=#b^(%%l{~f1OywK z*;V;@mB&eb)x;oQkL#^26K|3nrChp9rZ0H>=QtB~Z{l&~lSjrnBU*k3Ww2z4`~aSE zrN>mwIYvfHr+EOh=Yd{Gx_Ogrkh;@f{UiiZRL8v{<9z@ z(`oqn*1aLx$t7~oT~NO`Ae$VzYl7me1-X5hLW~>_n9=`CJ_VV-Csj^|&X#G;0ljR1 zXZdKOGhxP0fY6*0%_=RepLIlKNdUgb+|>f8{Gh-HECAihVHOjTc@P|DMxHJ4>M-u9 z_P7UJ$?}Rl`hxjBuauYLiz^*x>QzCPA+>=1qXiuj2#-1nL>KR-N(8YVG96Ee%>ulD z4v|J;uuMNMX~gIXj5Ws(n$4&}uolI%jYeZx;aN4#&_WJS0RxGh;QS`NYjg#dvZ9{;z&cH&OZo~kddO+4%|GqDT4ND4JOB;HnL_JD@2A1GO zC>)09qO89pE81shF z6^Bpo$N+-$M8m+ca*S*t4k-`dE`Wed|5#cmIOvU+6paIx$PQ4*^4}^`m$$XvME*{( z8Y;3N+IOb;L)pan=~zF4_CVLX@78Rj3rCP^#>D9t9iLTvY{pOp7Mc{>VQTP5%y@KFVY#a&_9|)pu33C@>N_C z3)Qq&$*{P+54RNqCX8mvPvxUN)iDYt90A+`3HH(QW6|}-3v_D~(7_kd8bUe30x+gv zf~5ud0x&@LKuCb5dhNKXr&bKIOl!8h4$flvjrR8!&Z6JOVz&>o^s0z{1?(WUIXS?Q z_OnVHjFX)BVDe}V!Ym$~1+&A!gfp1e6PO*dDsVi5mf{9^S6ko_%MTjtz$y%C>k7Si zBrM4w-<755UV*KFqah}Kz+ikAz(^?MyH}Rp8ZI@Rc(nX1We}wi;4wn9l#sB=f39Wi z!k7g@GV^;4heq4we}#$HZ=`?!N!19nFb41+Xla}~BeS&zdlR6BJ72j+u8qXC4)ellPk^o(T$vM=i^7Y5pAK^vBt_&6i;~eUH`;!HFK)=bG@b&F{ zwCw#9tTpJS`?oM|($vgpME;oJcl4hMl+4%Ok-6bdzzhwAnT;A6FA5{Lg{eQcpi0OI z7-6NTWpv;_R^s;%V~?gi9`QE1&WJ#F|I&<8MU&irCZLT6Rs5(Od?K_J+;{L6(Srlz zqKfgSstORBoH$Z{o8b2qzg)@EJ?j=+fq;ISjBf%!4-BEJM=bTG!NZ{eF$ChHp%Jld z%x;9YslmZf4uNb z2wB$qrxzO!AhMfCg6=z3^LJ`uLRC**rt+>-i%AvH2vt?|v2Mg-_j;!vL67RXohFC= zpsVJ^*wn>thHQ%w+7Vf*d3jyzX8-acWL|-zRP{xND^9raQXZeUcyK!p2&-O{Pxeu79EoxOWbH!Thh{vXtZ7?^`JLuXuk&gW2Q}9QtkY;Hm8( zT0ZWtmX*W!CPPRd21P1=87-ClewKdymSg_L?V;*? z$?soTJ>yOH=7L9%$SpXh>!9<Ud$eo8+h_X!yN9~7sB_Gcoc@PX z4;b4(e>gl+^E^qvxC$b)$h@D?b-Q6U@Is(j;O$l0pTC1b50Q8=&y6u+kN)XYOMBJC z^QyYm#&+q#^G4OY1=nqRHR^e<=DCeXzO1x17qne1{`wxJ08_FIXtx8@sdf%)|f2Rx=cP(pM{`4-IMaR;#go6=}4zZFgzR0MQ*UEKZ0Xs^8xbsH@qEZa0X@!!;0o6ONS9Y;zi2oQFlNeif?Kj-ns&zXl~V6 zhZx)Xq6<(_DdnXIAdT(@qp?6OTvq#MDqfE2R7Aiy0v*7`RpvrD6_Zxo%y4dl`dZI` zF(7ibAb_c+683r8R) zd3)syc|gCDMzD7W7H?mr9?++bK|Fn^-0C(jC&m%z5zxoTvONpS6fWR>ng*x3yruIr z&x<&v#noH4R>mU}bxz2Nro-BD5rDpUx+$>>=J^EuHevvzdzqVJA0@bs4Yob+DMl|N zF`{>?IoDAl6#16Io+CX*wc&y;r*AgeIqc_P13ssS#28Bo=^bGrTGEv&C9HJX!rJxQ z2;2mWHQYyjfTc3SuooJX%EKD3w1Qgf1NJW3w-;FR5-|GoDa;rfrl+_q$IBLB@?J9e zG3e=#HL0FjyA;iD-BrPxA>0SE@~Ev`XfkjkoJZ(KhzB4e(F6#~&hZ5Dsbq$OflvWX zVb2ka`q2^Q^i~92VPJAPodl{ZaxEN>AZ9|EXi`>`*6wA;RgX;1e$|CrNj#gu2(mcVm-pPr&v6vV#JOL@J+wF9E+n1Cj}~&ioF+cVbdIa2=HwL zZ!qS+i8GAodc!pOCFz@Xiz8&<&d{pt6M4fSjUYfwphtpY3UkxfuFVl5$mlx3wztbARP5)!rW>?_p|P?|0Z`4wzCkGdR@8k<5&D81 z;cas;8^PJ<1T3ofFpE{u*cKpZf8&>bAKawDLD8G}y~#)*bMOmmZ^!w7%E z3*(!azd5=(;2SeUeN;Xjcpd^ESur<{oUq5vMUUa~dO$8?Z03>Z0uwD~OQAuktzGD6j>*ggdjn7_JQ;k2Axr#Jl$P0o2O7z| zo}q6)E)s*6FKNc`*-i##VRR%uMsdt8r0v+d>_3Re5H@&jv3Jom_sQJy=tz8sgr^iE zU|eMSE9K=FTk(J~&<;6{db!zfpsQa!xf~nPBcZ-TN3GWJkCj~b% zG^3^CpmcuG{LKuLdQj`X(17O|VUeA|qK+fbD=@S8s=2{Hwmo}BPZKN1N!Gv&gN0r^ zHRwXXF|$m7TQp4AZxP0Z=|0zEXAajJE6Ioz2Bj}Cm;H)1%sIOTQ$mQT4drpTY%neh zS`>>Yem)`XrOWji_2r>v-YCx7Q?#|gfUpKqip7k#ESsg#eac-L2g!xuG3-)E?^nY( z`gIOf@EfM|3CP$bJf&IVMe<%@GvCxs>4NdS<$89{olXZFaZc~f#rD^KS9=#|W}?66 z9y>|Vc?hx|@*tNB0@cP&eOik!TcCF&HN}clP_qY&MgwF7;Ll8^rN0F#BVa9vt)&mro2zQbA3oE;8eDQTBN^`^BsE9FGRCAT(6 zQuw>7%a;jUJi@Y8sq#I~i@!rDu0^=h*VAD2yn+q~De!2ZX5zt$~h$@L_ zIIEWJ1ByEu>Pj_igCZBBX*CE%L)Ai26?#CL6)|8p zVLOs`Eu_;uOGVxwTrX5Gq(_Z7g?qp^y+8(75fP>coJw-Rj1c1nHWl`+lY@LijXWWW zPjd)sMRzKYqFQEkDwfkXV9AeiMxStk)0(EHpD0$635Ssq;YB3dg261Hp2~Nfl3ns5 z?3{nd?@jWM8??isYw-%+bB_@A#}aY!R5QcS{FZXeS4o}ouJlp`4A*i_667Mj1n)4W z1!+`Gv3O7gj3W?`>%jvIQ}azuXUB_EbKBU*zz!k%l<1+)&gCXY3QdxW#CMFk)L*9$ z;Pn9V)rft)KpjYW)L<Zhq zEzN7aFPlqeX9nBP1jH$J3D<4&DE`pM1;TcZNSB&YKqNcK^0H;f9;jYKJz=GW_Ux6P z-$)8VEbIHdT%*N9s=1c;JA2d~ml?W*ESqb|uH)vS>Y{C?pFdU?o37XL9Y0!3_4)?p zO6V5%O8NhI^^~%H=TX2ZGUMimgs^cBOYo^){G)PkIW4dKHDG=69+g~RdMZ_ks!oQq zpd#gw;g+adc?xFe_8dC!t`|>JF`kUgg?>JHZx!hUcv6cnhSY-9(~;Sl67~!DbuUkV zal3mRr;~>M4K6pONd$TzcDXSA(i>$c@@-FDSa%3}9spy*H1TSpxJ6|WfuC}`X?X$- z3#!srjPI!lKB@CRieHLSS4^2*n7|E&QzLCrWM~!M^EIA8Jk9eM!{~tVE+%AYGPbccAwoT5(XTvo?#5Kbe? z$pvF)&hCvx=dvooj=!lVy7{Syi>)CSyWZ4Qaq($OhaP(83-p)zTjE+zYNV5iH;lVt z!%e?`@6DjB;N6YJqa$ur`cRu^`qaD}?>|NwnNi~{bw0|#} zx+{WZ|I&h~)OeEupxK4iz8CEv>sI(_a^Gs&v`Y#+YcAu`B_`5(vZ&5xE==Ht3B?Fc zyO2Eagc*(kV{9_Fj4&p4p+QF)B$UIyN*I9c#`|ZQTWtNjD-cIL!@V z0^4!4Cay`h_&%91jP82iiH9|fE($?XWQVayX_2T+g{zd;+hfx0+{aU*#|S~(!89`h zDzqz3H|rk}!hPN%j1AN4+_t=^iy%NRm5`S0ZMU@k3$T+El*)e*ivD(Txu5^m5Zr*x zt!?l2jL}U%&77!~%xv~WO*ceVMB46u{ls~sKNa~JuTAyaFgplHy#+~rO^g`tv49f& zCaZ$Pqo+0CMim?6i4Oo-9+~DP15vse!5%Gvf!O! z05H1tzaC~8X?&V{cP?JVBXE9*T=Xs&cP_JxjCi?#m-tY&GK}ufd&!n`bKjGk+V!&Q zPQL*$`gsDDCzj`rBi1jKKJM)Mt7~QFvOOv)Hs=q0t<-J4$IS(D*#KWVJxgVq$L)sq zx@)l0fYSE$NfF~b(tZ@lM+xC*bbW7Fon+l*JzeO$emvQYx+pIYJjPY)GU^7%2Uotj zov+u6;ecHV0pmPUiPET-4&ihZUiuY9bNU(|lY$(poXpF@p$NRab((4wPfK@s zK~)@?AwyQ=Vr5UW8}(J-q}EODxRQ)0p6*~J10EfEq=}!k^sqOkTOAa9U2Rmoh-E4&`kcR1fiobjs20Z* zwh?>{teE1$)h;f~VIk<{q*G0?4ZRsg1v6Ee*77&em)h|MQ8&6$73bof zV~X!C^i#Ybr&-XKkNb_MRkir#5g;7USAivc*(jlkZj(zC=4{Z=?(cAgOjjV_xL#w9(X z7|rRg=^t5Y?05u`Q$?!CYh;A&gFfKBEC@%*^XkBqrJ&u(O2K8edUq!E;o-QnV zGgxFtUWi?gFUp9Koqj^KQ`lzo&rD-S6F~2x-Ws(*hVWoq0}Kf{?Zs#5f5<#wd}Nx) z=?SEYtZ2oRuKm^1qsc7&_0yf;O6 z;rXGbfS3=3RRR99FX4+f?jifK zm)u6VQKfs`<>$XMeXMB5^e_r-GI)C;w~<&QnL&IC(mt(~c%HybgcJ40gt1}T=H>6S zK30;|;P4sb!WOyy5e9A(#+`Y?>s$%Xe_d|cVdOn`;h3Z%!|+gOP_}soq2XuHUx#ZG z>)*7O)|P*51i4(FS%M|?kT=Hm+;Mx0HMRWz;^_4uE1td_8`8JGwWuR(C=w&G3;lL( zmEi&%OTV24$ZJ%qH%UFg(pDOMEX?fX-FR5hSfu_TlBMSe;^{MzvAUiXa6tnEj1%66 zDf1Qq#x~F&4zs#VzUB5IIWz+d7fdyauw!{KqsxUvcWpTyRTV z^bk3<9ON>OgGD>8;X~jXlkc&#Qr; z3TS@bbJR1*tOmTgyQDSv)FWZd0pt1EFhM;R>#VRiqy?==uh)`U{UXBE6WaZ2mG1XCFNE4`8~|DJo!h8KM;o;r6EyFv9-x*&0~(41stx2cvj0nod8P*xkNreHeS5gC;^7XEQi| zHuML8u_A5Z2yp^2nw!4w-w8&4B})&v?wM5Z0%34L_Sn;FspY)^V;K}OoONG={Y0z@ zkt9BYysmxnw1r9pkkbaSA*DQrDy-@{p2g7r3E&B2Mahoiok!BR*6Iwg;_wQNF25gI zP1x&WY@ODVn;J$(b^96%6GdMw~wgnwR_7@WGU25(XTS_PlT zyJ2G>dXXT*N7F@wrCsrRT3!;gO(bJt3>!E=z~m*qmOan}TE5Kuz`&JUxK1(r{L%5x zeF4%d1 zYnJZR2L6&THz0;C)qswhbiMMmoRR8!rK!DU&*k6 z)=foEAO8iPunHbggbb5U5s)?tw!#K1*`CU;C1Onh<9S76LHsJMRUeW@^oOYyTv3GD zP_K!dV1I*Z^#P(vmqgsAy^)GH(6H7B=Lz-@^bPAX#g}8MCl~ra(*fiL(wBR!Ilz2_PgfJzVmGt?gjj zwhsoVUoO$s9}Zw|nU`gBF3h_Oa9TCIY%VD;yKC2fNwXj7Ct>?D>LJ^;{YwV>Oz7jR zrUz>5qQ>(5E`jYov9WEH2+l_1n%BzcPH943qZMiNXuzpo(tx>Bx_0cYr-nVPg9nTw zSktP9a1Z)46i;Y&n)_kfsUItb;6!Lv^-IV3cpRPAfC16FT8P4DDYE%+^Ycx75y($l z!U_8MNOnO+6t2Y3w;@WKhDSnE<5;r`m0Z8o%46spGscQEqI&pkhVb}YpE@=a^M2_r z`$H^d%%g*w)iBH_sBKAVHEh{^4Mo6D+?P7x_nTdcxHne!J09v>j1gV0n9UGlp&;>8 zAhmk!_}VWqt72L6_(O2oHAM+rz?Dm{7-yEvP7sV5Ykvq&sh{BIk5~udyUR+%F7ih( zy&RyaiCS+-OC_x~qhho=khA@Ji?%!??hVKp)FwZ@-wkys> z{Yt9CN$AtluwF?tr>DGK!{iJY8>TH*4`yyyf*ER_m!fVb&JW_P$oP*rECk`m;>D2w z#y0x&@o1fXKxJWOwO`FRtEGpHiuG#+VD#w;_NikKPa5qXho^#7m&6!0xZHhfE}DXx zY8=#aYcquoB9j~1)QwRUPwKa)=oTRuM-cujlv8nO6+9`p1H+lkJHo-pygxFGBhV7m zT8*1Fo5E%c!@Q8C!wA$aU%r7)ad^(8ifa^$t}sFn_uqtOoun2W5~okf-UU6raLPGV z%!wGn6Gc5!&Usz!Hz_l_Fed3QhCSfPFom?D3!n#2P5KS!!Arb5D;d{4)IT*ZV~|VR z$YPjlww+~{1uY7Tgy$!TA*4Tz&3BBv*8KdTUD1W$V7wL&GC627Mj6+YnEU9lmNYARS{5VL}(vU6yoe18;|f-pT18(L4c3 zOzVp8ckT1U>M+f?U{o}5?D#rducuYRrO{eE?ZV_P zrzIANuW7$!s_9va$G|WAhbwXFKZ`|9 z^GK_Ekkis(f*|g%%2P)O4W~_(I=_Pukj2xYs5!9<%in_Cs-d4hV*L4Uz3Z*q^K*)u z>>+NVTpr=H8y?{c1n_rPH+g-duhGt?VKE#4=qCSSP1|jQDw3!ZF&jPBZ4Z>#asTg%rCWV^yEcdj(^d zFk#=ai|5oaoZId`N8V)d6%#{Dhmjx714xu-gA2M-l!hJ3H6&f>iE74zfT7Ue9se}Dze<0&UnFC12AiH*r;5Y#9O|wagao8d7i0qhp+iW@7P11scOW$G3_6;|txLIZaV3VmCxfeUU`pb>sA5NJYYv+P8{tbGPK8%kKz! zLNML(|445q$FkA`%WSQe&!Qe#h-d2_67~@GLnoBTbc(*FbAZ}!i!|CQW+ z-nybbKs@cy35zNwvjIr}0>(wA=kjutwNT}hF+Gi0)m_z5=msvfD#dcE1Hh6P%seSL zwX*d0BHx{TKeD{LTug}7YdZEc0!<{ICM@KO0Mh8LuY|PCMq`1)awVc*Y9+%k;e4V~ z1v8w-{+?r8G{d&H8t3MQ*&xm$Swz)zWMKmU{Ue+{7S5030q9;n+i4HBtW}>n@KSJV z@B*kjy)I~+Yp-^!Jb5(W)IUX>GO~00)j_CufIW@xX$?`o0JWXw(|TFPpskBs996NO zC9*+pM#VLd89??tg_QVqq#)7*>-@v{Jt(Dg3fFLy!!^73em zN$BC2I6V?BfW&_yV(((SdRkRYLqC7;UK${zkET7aTX`;CPpVtfZ`i>EjM-RGY_`X2e}Yt;k$SxA<)AVZ8e&pUxIx9r8!z3gHy zgy`peoyM-eTwIv)kdQT`aOkPkUM*$y)~Lu^_jlxfegr!=6lYZz&GW*C6xw-c^D=}9 z5VkP@#(AVKii;s`@}p>`nTx=VI@QRGu_A4tdY)UFd#lVa9FUpJU2?t1nC50DZ>_;_ z)A|?v0b>Y!WhUe$aa%4)Z@A=$P1M2;TACjM8C`~KD=HBgz`ex%p0y*XxfkJ0B5!tv-hsfnH6nzqjtV zU8nB+ALhNWmSsPUgYf-if4U+e0bIAU{I9?ay?7B?`e|3XLZJX@hoNeuY)ceH-H-BZaUzOMkCKotuq~^GJFSBOqM!8_b-QLTjt}d7-hjfZCbP!br2krq#A>5{{3*C6 zXh}ZR3g~auFpy?UR3D}E`t&gT_>K5}lIw^vKqB5XeZ7^^E(3c=!E&mx>)jL}7yR7o zgtTae-s=~s857=n%?$BBCvtCTk%2;W>{`&p^J44hxveiA@kQ4|&%0|ux-6-Bmi`kf zvPcHbwUyK%MY?WVd0PC=(YGhNawAG#y|n>CvBwwgYHf$F59{;LdkLQ#l=f)}`g3hp zaxIwTo94Ht`n9G{wLXcKm+eib?Hy8Yw%bxPTRB7qsCxnKKwJ3hbX2|mB8Hh#rT>bM zW!2TP^bZU1V*2k`2eItiv(;tlFAU|4pRrUKjs)UaUn54N7xE&s#Si+v1u7sYWehmX zy+5pL-VbzFOM9SJ+ED|sL$|PyZ4y`NI{m!`rXLul4c36`BlMpEauwoP^c!M01Pot- zqND!|$O-A=PqlpscLv42Y6o2}vm*zJAHV&Ax<1wP^E$T(W!9c>R;F92>NmYyF#=rw zBPEH%syY++Rg+vdEiG$<0$~Fu4NhL6&+i*V4tM1YyOL zU+%Zkz2X?lQtd%RFEz!4y)el#nO_%v9jr#t|E~XqiP|IrH{EK;?y_fZ$=j42iX&HC zAhq97((LV1$TJq=jpjQ~_Xz>ABC)sEvz2EnxdLbwF0&0sDKyKxQz`9p2|C*G{IMY|SRk6$10{Mo49vwOKmWZ4$KZC85_IRM478_3cm z(vzY{VSl8S5K4Sj>rZIcUUHy*{eQ`OSwlT(ILtEyb@2=i!0j*t&oX>VKoydN04IR- zY(LNPD^S{n^CakhmNPJYE!}tA7WowIYT}(r%-UGzfHHUi@y_eEI)Y3k3`!n2MRc;vXt#odF!{BqTlMFYKdtblz zA9}8R0L{}8*JqtbDahP}@&nIhCeA|lqBP9DT7NIZtLhiJh(A}%T=^3ztL0f|4!=^+ zqVY^ygmsxcb4e}*A2N*-sFD6=a%m;Gu*_r=3sOS>@?o6POgu6DVxhL=0@ZU_gjO3C z?TI(8i*q@gAS7ob%JTo9@Nb{Oe)!aS?+LrrFzAEvI{Lo(onbG!*g-sRkbbcgiKOz2 zN}?d@>X~O|>D>mPUXH4k*)v0bCtPM5Tr7vLQ!Jq5*QJ9{eo8_q5DR{}r%)^RmOrr~ z@sZ^_rT%{e%rg83Pv4i)u9~Z^Qrb^V7t06p$`uSD9!A-Cg*p$QPS5Fa*vPYI^2G?0 zB|P%MNtERU>+ciOGtz+UPB^ohB@(Zyvo2y}Af81JLZwPH)IYMWp7!)F2(P=Pj?tKb z1{X{NjxF-~A)iY;&|qIiR)badmdFlM3VC8KsRNeb=*0q-Z-3=c1YJE69Oz zSO100Pmex+`*OIJfl__tMjKgVab)R#m6XzMTsNM7_!~582$recLyhB){Qb0H^i(lg z@RT2a^_`9}7ufcxVrGHLj>=5E3XJcA4_$#BAGL{Bf|+3esi4&wT56iG(4EZPN=(en(A zOO%;RaHmQ+V_I%(pP+$g_(3QMA$#kJnslBRXG+@62^iFMH|A}Nm`s9aC$V?iX2kI* zgmZ^(%0=Y#^V?Aos6eUoSPiIihT z3kcc~yGEek#=2(~V+-Z%Qj+t{fGm6FJ*Yk@Xsxd!)3t0guciLl={o~|H7DKl63dh3 zU)Yx_H_|N6szSOhB?GI{^S(a3vkppWN#`qvJR=aBSp-kunZEAjb6P}bzhX&0ZR*4{ zb9>Q!Mw&@od(e!@i})ys^lm;@=w}LL(+mp9&9gfW2%eGqCo9b}N%=45z|40QQSrYT3)t^J@B0+XOM6w&sHL|sNFNS zPx|9PzZmSBy}-_4vOi+K{<;^#b(7&fkss0v@x?{AU}59$3K}!Q=#nPfGHG6f0wuq8 zlLZ9FHre1e&sWtiv`Q=UD1Aj)MBO|w?YT|DeM?o&v(=s?x=E^3XQ~im4+`XV8jThVsdd4mLREFo+H&PUVYbTAd4`_i6_d9M=E8M_=3#=Cgw=~i z91kX*;WGrP4~bd2KLO5CC9STjN!&W=di+2XWNBlUNA%WXPOq3}{X|b|B#b+HA-k_= zPFP0)+HV?PvQ!my5t_y6>!Z)cUXu4sYMDQNvS)`{MWXchwq27@SrPYja2CF^(sV{| zqjpR|YVpGrAnkd@;fbK<3F4R1I^rXECP*$hQ;3j=G25WSfz*xCo`I4Kt`SF<9zvZ_ zV{nfZgz4VG3nEndd%AL3F55V1%g;`H&}oAT?hT=+$LpANfK#( z*dr#Rg<{?m_O^;_Qso4R@_rPdM7a9sNoG&vZKHT~k&Df<1?m=JsvcHjc|FyCG*!0v)arqIGAT-?` z#M>U#(2Gw!lV@9@&WdcP365BSJ@8?oUyCDAGt2Lvi8=_K;}*p;)44>~d0`MrNAnX7 zq&wCh9N`H)vl!(zp$VSI{xNi4zGU9hvo}P`-xW;gT5v*Zah7zDL`~-+6-_Y7WamSR zrUP$mnJl%wlbAah7D0YdBX-z7*R!Mvmtw6WZjI5>W@K@4T)=Q8zU-wUm5RKhWeAvd z9Q)oaT7c(SIJ>b7Ci4!BKjAl|tCa^DW~Twdhw3c4j| zUzV=)SduAu;^5@gXmN!gL$yJJ*%}f0aW996#Lm6~yvrt|_^cOh<*C&q$7Vikp`OUj z4&L7(-FeY&V(+zrE#RHJwcDiZOjxwq$6u>ri+K^LMonIA-tjCm*(H|WyJV@%!r!tp zH9KB%h0dIQU^Kg!kZ03LG4uKmS&Ucck0f4A7p-P#!I&S?LM%sjGUzrT2v>`g(`WiD ziFgt6XJmWc>$8jeM!L@IP28WV7s*-D^TEB)fJt6zE>ht&Z?nVRr7jN0#h2cRQ-2qUi#}&D`ToA?*}Q`$ZGtW z_NCp?g5iXvT8nu$xi``(sa-_e+KN0=#SK%XIy*nOTE0_4=Y49PiBv~E88?|dG0xN; z*u8UjQrtF)i;HgP#Yh}XaWoLFt7573 zfV|D<=qrF-6l28nQ~vQ=aLX33NmN7UNo*t=`fcNHnRs#qoeGD5X|5QtN6vHYBo2oI zLXq^q9rmf#(Z_F3YCpywlk~V&&>}aAu=7YmH? zX2LR|gXVi6#fqzw9Q!;j=(@P)iWYCjRW zef%~asy7kdi$y%ie0XdkahA;*CL`fy#vgxDv(Zvz0$a40jF)ZV@}1qAQywBl$OY#j zS?;yMA2FJzCKfFXn3OVN{;6JH!r>FQCr-_aAn3jje5cAGlTZR;fON7EDL1t|k{k>Ojuxl*&-CZ?t{w4Q|97J+A@^Fh=x8ZMZeo|GT*T7nE_VVf|h3o;b9-p~_Y zI{4gWlNPyiypiTOsaiChob|`HE69&(CpV)-fGco>uJuMa`#fUav4_+IGsd9zf}By7 z_A|1ur@dz{mQW1Y6O%K^BW4RoTcD?|>knEIu?Lb^a|C1*-r z*^wulrofc&0+8CDErl(U-<`bkVaku+QkZ#yW^v>WsejyN#=`Aa?)RJB`$d3fO_IB< z)3Ty|=fqo_Nqo823btDZUw8{~(T_iMk#MeYZ#r~N8tul=-LrkE}a-=@$XA=3t_HRLHz7NezDrh4B{8nCozI!q>A>31wT zp@rnA6+QVm2-O)4!s30L5{WOyv`K|fX~=$mQ_d6(l62z50#aLAL8SWCPgbEyiL|2_A?2m7Z=-2k03B1uDI^lZ!%dHjWA3`S2P64uTp5WcGdnX z<^0$)3~O2R88daj;eHxPtpy9Tj32)ZCW>j#HDl{ZY{Vo^%L}F*X{aDD36QdhT=rmy zKwQgX+M|cUy$a2;W1hiBQUsdIOYFh&7XtihK=+~-PTnLT96O&U7ksOx2Cpk8mW&oSy&Y>IJrbreI z#z-vg9j0v7dfJ0nUa|NhlMy{3QqV=KF%`FqC$it@_qNSC`uMYPK9v`(xMIw+M;Of3 zh#!CA%fWhJCyCL5fm;_8XD6{Y6VJAScr#5HjS7)is^%&f*P&8CstcK~z#7bp8s6bz z{P=@9|GcAz9ki3Cs~|S%J%Jz6f;|bIG0YNyc;ouhz8&Vdyu=qGO9j8e^&>5xMgt}> zcAl~YdlKxZO$X=f+65Wh-YS4iGOBSP_B~3|L292`TMQQ<9w@qZSxjP!$pv%e`<^|f zaIhX*LNm^z@pr|0x}cEWX#~Dtb*{i(O73=rrZp2Nzjvki%vl^s)MOyP;Dh7M0=Jn) zry9to7SR)u6LrsR5??m8pYrz>m<)A&v}iYpX^S9RMBIWcb(40@PjQ=inl`X#f}!<1 zl{C7YCAH5jR^WIL&B?_(2Ezp%mL2Xuy|dSsNNixZbh9=U;%qCRV5*AkEPN{IvMYY8 z>NwGd2c)C)m2#j~<|E%f{&aC)u1vP?1g?30r+!z^s1#=+rHz6f*9jh31ma!OU*7f$ zd9BYaIAqw-9y={-xGSVQAdmO44jvnl8HV76Ul2 zqC-gefor8hb|@w7<@a|vTE0Wk0P0S0CV|_OO%Sfsi3qJDRGdL`)g5|6)8)qum`qx5 zpw2{oWGv}w4L#XF(UFlgoAy}2&gFM--i}Or3b!UlV62ixbn|531f>(odESLFx#WuZ z^AfeGAaIFLT-5&F#=Sy?UGf$+;lc;mWWluKfDTgQo2TZw{N6DRtNFFHUm*+Niq@GW znKbAKJ4j#mZ_#mi2-Iyy-ok!S;*yV)McB=gvaupwf$uEd8wW=%0iv0nfDa;$Tp{s^ zWKVbqo=Na)&557DleDX{gF5ar1MeylD?s|JExTU#NAj)`q#o%yw^l;wk@Lg8OwSbi z$DS6iPlvy+dEavhdKj#|lwQ)~c9jz3VF}22aY|R9NY`Z`U0%J%mSC0hYGx=+7$V zu8^*aOQ!g|fIeKyC6VT}Zj-SN`50p#l%Ah~pysP17BdrEZfez$JH> z7SRV*T!$co$r~o8C+|UgxiiE2l%>HPx(Z^K&>{7hYT-M(lq$p(x??{d%x$d95xD)_ zkt%l}2V<&2(M3LizEKlgM}tCkHjkjfCK(_;6RF@mwdpYJ_Q(QhSe$r3oiGmquma~I z`M*DrdEo{zeC4@B`JPK&%7FDmg&#sDj=&Y!*rMTbfwUL)WK0M7_>=BM72_|Ek3TU( znk{_%$^Ew$t8jZ7-I6-w2 z_2B7`cA9kGD&Lzo;TF|Z(G|{Km^iPJa0=W?OeGEY5&wlOM=v1&31|TzeS<8 ze9w8KdE;gEywUQ=zaqhGKQz*HdKh5;z0qb#NuD+ATFE8oubC`^&4T(1lK%R^vCs9$ zOaZ&y;r_D98DrVZHcF(A&O+(>Vv`^x=vRYX?@1LPZAKq|QnJ^+{(KgJwk13(NFhK8 z`jaEg>!?ST`|F3X45Ejg?OOgX&epY?M9M_r-=0jLRxwie`0Zzg37~)8x=kTEG~|7M zt<6uJznhfjZP>QyJ+OPv_oM5JvvoAU_1`U#Boy9Ec8j?b&GN-4z1%dHO)b*y8n117 zR~dEvq9n{RX!z+Op0U33Z}X!C3v%laop?S&l&{1aW}_rK!No$ZEGFtXPUv7wYJwrQ z#CFKF^rw=ZS%AioDp2#c45tgNrZQmT@}^-g16*a8EJ87~bTMN3_#3F}0IB`l?8iSZ z?0kVVli-m>Al@~7+V%^1tuGk$6$E>+h?uq|&r}y_!a>w90Pt7x2FZ@;F@b*=utke{ z0uGDM66vz)Pr5}2nEnk>%UoN*xTWxv$pS2!_c55DCzMUQcw(wlV+UMXv#`w$(smj> zaWwY#X&*tW>Yd&vl4eZzE@ZUe)`59X;)_ef@gTZI!swK8>9p#bOZJosHu_y?)57gD zQd|v4^QZfdQ|iglcy`)!C1xv~Cw9qYo5ao_g9$MPooyA((!yvp%Af(R=HkhQN1=Fq zzD5Dyc7wG_%J;gwfW*G9Rm0EdIOeJmG$U;r#YjANqOeiqUCB=xUl+ZV*K`e~9&-3Z zYrl>9@u%=Y`Q`x$DSz_6HWW#6@Aap~UzcR}OrAH**6OEg21nCX5Sw%u@%>=29wL?& z8PhqAu5^hcyxF6`gaQ>xGY6OKC_zmEc9U!=ApzunUo-Kp=`U#eg;LsOkXIx4_kBtQ&PUpPI<_`H9%3x^CH&(L znxUQKPfe)kX98E#6D+I#w-fGuw)@gWOeWku1YWEBEQoXAjC~1uSWuxXU!P$nXZoB;hAuHOD9Yh?^=Pm zGgBPog3&$q#*g1ZrS*SyX?ic3AOB$5P8Q%9#hDD4*cd&raQ#E%(FTdcR+>&Gv=(Sd zF+y{+_X)_B>TlwVPx9lh8(csQxJeoeksz5c>ckGBVG6QfbXcn8Sgc(w?7>`SWy)Z? zM+-PRNS!&sV0M8teoNfQ^OTO1gPbL?*&!laI^e2$T*TxgzPQL6jAp`A)GPy&DrPGK zw4#f-Y;wG*4SNenhEt;U@-1sowWuk2#tPXE(;hODO)My`F3E871a_V<9)yHl#E~3D zjcMG%hin0!Z3P`WF2eemdd3RWgQT{SpiTx%5RZDo^eJ16urY$!C5bCFm90~HVsRY} zXgLoVPNZ)5a};mFCx|{k$0jqJD7xW+-5$idPO(xLRz-D{J@^Zz`MBaNO*qKAIQ)>C z1$uTAUG}I&oN6G=30T}S#Cy?d68F-30vpBB;#Qi5*avBw1i4B>GTRT;rOYHO>Ta1W z*V85o@N7U2G8kGI@jxNp2^Y`4)|J@GPsxR4N6#B1C+?}#jz`hT;*u%KL82p7AXkwuSo$h{15^vdiP-`? zd52_ZJUatMM{=m4gXF|EK_smu?O8Dz#8NFYFiN#VTx>c(BhCv;XsupKU(2BZd z16oe+q=6@n7RZczquZ^drEh8vKX9^WrucEziA{5x@;pU9#k6-jZOs(Lq9po3oHi(m z+LVKyAV$&28j24=uov;<4O&c1!jj(~6~6;&C3#Xak?M_Sj13hv!Bd(^d34omq-G0? zSRy1drJ{>KJ;EaU0sRT$OnF5V(seB&zQlNgtDvb$(vEKCYh+JM-=(^E21kNeWslMy z#Iqz4*4f8N5-3KK#zB@AY$=ula7H^+A#Fjeqx43LJf+1j#k+l4o|_+WnWo*efyF5i zCbLEi7l=lRqmwJp7$fp!wR&t1j+6C+#MOX!De5Lnzpqvny^$=!y3vkq`&Jh#*|Tx9 z5!0O|3T_x5^RmM>8RJ1zX0p0v@FickdE&Oj3gV+UddCgDC(L_ZFzL}E@+|rt8D<%) z5LT&>{8X|m!bj_Y^C$KhM&}JV6DBWtk%VfdxI@Nhl06a1B1wvWP!(=4xv4k@oah0J zqe&C?xCwDKM<1Ql5J{@cK-f!T%_NqpG*%mvaxW2xw?&uorGy=Ph-U{I&OYo4bOox$(ImDNX(qB(t;9Y2Zy{FK zXWkPY&al>dP{kEWS2ciU3SR1nFO&#s@!LI{b@qgcEN^aYC93mcxOoyfb&CYezr!dv zfiX=Gi^g+wWOy@aF-1{R@=S)CC-I&)tjmss(J79iM#Txq0<(cUbq_6Bs^-eMVw~+r zWL-4PMz9(`R$UxFv*(i|d(a0ei<}@XeqQa2>3-i^_gFE#SajczAFqxk(xY+Ii0RI< z@#C+V{4B)++?!yCmh5?{2vjwBo-ozkbTcVFFgDBeJI~l6Qwh4dYcFAzi3C%eWXh%? zi6)qA&|082*3j0@Q$&jhiNp=lBlfZ;H^dD2GmX>&RxN7MVsefK?Dv37jj3Pm)a+4u z&A?49I?=<9&!`5P`EE#pGx>>(o{c!S*+UAeVZL|I8{Aw}f&_i+Rkyh*Ws1SBfG}-n z!H0~~2B|O@b#Ty#W(OuMxGIT^$)Heqv(uoX0I#65ALpdIzt0w!m>hhn{Shg3jlX zOl%g&FHf|9`(%{?V=hA}*(V8al4dU|ZkF|izIkhjo_z)IcB+oN#Tvv8#o~wiZzg7~ zOs$DGyc~(QqL^f^&q(u|p!IDK8tR<&AksR=UeZ&O{v=Pukt(2-@0rpp%Qcie6YxPw zGM4@{lfX@7VsCNs#FV#H4Cr}+CLFCLbV;LA9ocY}S3=tV_@1W``SGcs3r7k|5JiU7Zng6>2Dd{MCynWs=!5M%PkNKkV58 zLK9xLD(3`w@uF2zUIcjc3!bFBEtOanuhuyvwNIraHESu8xJfdeF(EfqRp%>_ zFP;f?FA+y0LsvODdGBqW?QiQdZSeeGX5PFw59wi;ACcbPhoYxXqr(p0$!NG(S`a&G$sGZ!l`tA23O|wF6KW%WBOZ)UTxz9Q<&LC_l|}a?%`R`? z6WM0mfuZTlZl01LW4k)Z*7?39Xr0K}Wq!|elNl?wNqnF>#qsf1-AnQO_`7kOQo-`% z<&t19A{B10ucIS6Cg%bTR!O_tG8Sc=IZ#4-y{Ec5rv5_1Qs z{kC#L@gTVZ(=1vgja44=hI=Gu1a1$O;NomL958WiX4#wKk4q0X?3DvYE1GdPGTX5VAy>Q*}hKbNj8{}3N z&2BewR;aK^CQK%8o;ZP;F3Tcpc41PJ80)0R3Uv}gG*eRN&5?PVJ7eSo+Z2?jlldt!EOQ_qyD5&H?ttz!56ILVtQZVOK+7NmG&nng|e z(+)R-LW@aVG43g79M4<4uQ^%}UySORAuck#37s}L!3NC~WD%znPo|zvn+(To%9y=a*HLlUVNb^*1eQi!UHp5_9uXt zTzZ*sv%qa$*EzLf{5;5V5Xu?s;DlL>7LoY!L_Uv%+>C2=O{4!l$4d4jJ@DN)OsUY= zzS*KXVRD;xeTzS0JdxqTfFbh6e0EXOI) z;!QRqf6SezoXi(oz~da^n-1HWKBq#d;{O2O3s9HWIUTH0rw8?y5(N!>1K zCi2ld3AQa3Zr%C{U>AR+(b37GgRI3Y;^^F=kC^tNzVHSU0;C5J&paVo02$D8G+ZK~ zcBa1SY9IVdjc}u;k)?e6wOXpw*C@^&j?4rR=y_XpH4Z|_s)CA1p25yk-^oq(7LXho zWRaj>=psI{XM{JyZ6=2r2n>f1OU)D50xTO(OqJ>+zL>O$u(*we3#OS;)Ra6i9@)C3sBaDx0Cgoe=)IZu}> z0T70{WaZ4#b|FYX_IH5MIr9J7$in2*c^@l^V?1}N?QPD*@HDKx__Enu}w584hkhdg@XxXFj3YOwm zZ2(W;JzHco3y^*l*XP0gY7(RUf%2nazB_9V39=k2-|ePY=CWh70MCnqa&lpDdc{V{ zCw2kIB;WIDLhWL?n4Ud}_`bSOkP^$Yy3TJxVQG)g$^ePvi*kY1rQ0U4^DgOx>e4tO z)P>^nLx^RMY11TC=%>7m28#?QS%lrD>@9%X%Ir-4L9EX$eHbkLDqV)_!?uS#e-~v6 zvJ8sEf{$AoyZ#sW9`#wMGUl>OFbi>Q!9KJjvA+k%c_zUlV=RMgcM=87^1R<9Q+#x$ zF{nQ`SseuVT!nJs7fZ25p5Ta-A(0BT<=cb&bl^yMkTqnRApzunUo-Kp-4ZIb$oqZt zzuk~0O8OsOiv7Y`H%9Qx19tY5Dfcsdc1R=&pY>W^zSP66aGFVcFbh`+hD6Ol)bedPp;`dN(Pbht(3J+eX(;box1G7)MOF{&q|tH}@@eSP2Fr)-c7on_c2vK}R= zxOu9>hph#KOcYGph$m^>36oJQ6E&Us8%7Jv&vB6l=q+y-gJPTsCClu;n!#TB=i@ih zdD4sIEa|7}fJwgckKf{T{IWO#6qAg}*+Z4-+Fp%#^0PhUG`oKMb@qz|SfXx57l6Tp zJTpKf-nie+Tf6@6eLKyYk})t*_|=nmFMfaKvzm+5?YSso+Hrslu3?kn$rD2M`@Fxv ze;DcPrKEpD;|VK2{^EkYfh-RpQ})13XM(I5iOmUp--}EKx2`PhmISJ}(lVB3WRQXG)!fJdIIor^ND5!{!}0q3@2 zkxz}$%>z2!3jE|phn?sBGjY%)YtZ&iXhLf4{Zc(CvP82 z0?QZlRc#U;T2V#K*YQ<}v=A6r5ojDoOKGn;sAw=+5z8)z<{4uR4Dt{)1iUdGv1fPB zr9=kJ7jKYPN@{PGtqdlFMi2avBzi6EHGVGnqXwbELui&^Kpr_5Eyw@f!Q+Axlz3lK zSpYh?#pNgFdhRJ4cm2Io&U=1MyH06p4C%P%HyBquWWUQ-QM_4#A+EqZIkPNE>J<*x z2+y%obO1sw?z&K@od1(v4_75;Ue{@@&|x-mA1Ftvy;+r9x9(;M4;Fd2<+{n-a(dfW zg2zgz3vZ5P*i{jKJ`* zgmLE|HGlGB9bPl9gaRBRnz>XhD+!Y(7RGQ~cS zoAhdQ0L>P<)0M9;vC`3D5^@ikJZZDUHCZMSOg0obmEhOuR{$$K zk-)>Lw4dP>Q|#$byp1iSBGf^_Sj#KZ5q>N;R&+5aQ^{XTd}}oQ$wR|Me-F%<)ZWFH zn=zj&`2G*d^5!j(3#l!cyyc)cRVnQnucVu@Sfc%%GV^5Y4AJmojLic!loXBefOddf zqO5!=3wjD~YYE7h)KUwnnN6mtFYs9rt4z>Rr=mMaiToaiX*qagiJ>T#a4ZE~iKy{v zNkQqC6(M$Xn9cU%gQfrvMe-8R#IzNACEB^(kVoUR9X4fwL+q4eLdq^L1N|vc@i6U2 zShC6NauDbNeCb08^p>ya<=Qm&!h6KviNIRDg2G1l5kW7PU*`4~2>HF4eC}Wla`RZ> zy2w&6RnEJ9x}2&1MB~BnFgG!qdk^qXA#(9n%dxpx!p*{;D6%RP)|FRvzvzSH8y_4` zCMcB-JL7vI)X#o7W92k^DNKFcyMIdwt1{HB|GKi3!SUbYwaV6q8TETSw#(UJN>TFF z@N(|y_&xRV?TJAL6iD)?`c?RD1cX~+$<$YS$>n@pjH>Bgdtk|xW{E+o+{$4E&E@Q`@!lNI^|izs zB!z}5m6#R^mU{2aY;C0!uIC&_gf#^^Vu$Q9j{}sA*n4bc7sEuHgto%ePrjJr#n5{S z>&o9#rS4bjhM`#|_pGC^D1V@nghynUjAsFM=)btxv-Uq#C(0z#Xv=;ht4&6~oN+c< zjH#c?amP9emGhtM_U+(4J6cWb!kK!)m-FQ;boutduwFg1MThFhcP;GMFl+yhv3a1U zz-m@PMOp(zW27LHNjBpV*n_G)CSl}R;%Kr+xU#JK=@K|CeWF^U0g5%$9R=!?|)%*9Z)7yf(eA6cCIefXu zy>);AyN*~c-|i2qwe8TC6Tm=wD;?zKcC|CEpwGMe4vc=N2bVLG$Wy~%@5m=0_f(Bl zw;!_i2IY##|5jyc1u<0<0U!UQI$XZ}IW?z;N)O<_ufH@`UfFK88b2ZgJ2Tvw zeceY#?-9_i2JyMF3+TRFi1&2os~y4}$&+Qt9r5ipdH>H6l-l#gM$oiP9GM-@X1D0q zmG9Kr?N_#C@~kZaOi-1)>n%~Mw>fVP?CDZpQXTqJq_FfoBVxJLa)@=2str7JgX3ER zJD=;XV)G=D!_0HF)5-HC&P{*zPla<1fvS^1z9tKBTnd)Yd;iyU^0miD%3r1$f`?Wm zr-B|*Gm%wF{0QEVnu+M&AWh|({IHbx+4jV;97;48)*zN*PD9!P51oQ6xu8Q|gA_p{ zmOMqr`!t*=jO4p4k;ttJ_oh7AeF~Py8K}WDQtU07j{k zf}`mZsUaHCTrlmE!btusMP+KkV4AD!A<4eeVQQH-Cx#*kq@XOdYy(q4F6FH(;0X#}av)a(A#|A3#^j%EQ!Ft~$(PjV zVwjH>HHc**1+_VblRN;@*PyQpe{GSujdBms9yV>uawyU41##|9C!!$vdX4O2n0Psl zb~)pE6Fc8;-&TAiNsJD77GM-XpTBf)yqtM1o>;!G+}N=ui*e3kN#)C0sT40 zcR4rTt&SJ3RG!yudQV|CUJNnx5FBP%W`B|yECYC;P&t3-Cfk%Me>*08gXLS zT@5%1jq+|hYxl(#?pvO5%i54MhsMAL z8KE~dXYC(VgFZ?15v@q)^BT({a z+40t9DNGo+znoK}C8QXoeMTv0u@^AA(z3`Bgo^t?9r3kPYeS9EAIEUb{da*!P_Oa; z%*#VW7dEXoh-$PPL0yscA?{+?Dhp7HcHNz|0EI6l4lRZ@`k&3)n2I!55*uV?>lEQ~ zE_{7OKT%=|#ar-sVlcCfsqGX&hU4X|`yF9P2V@8eta6EH$<|miTap;-%-#X;f<1P-DP9D zu;(?Hi?T$gku9?*hs!s1#exQ;9W-t1XTfl-Xz6&LmR88}@@>TqyfRuIb8F&P&}8%z zgNclIk1LY|hgMVv&C6LC$swqCT!9Q(5e1Zn6E%u~Wl*`C*Wi)wrW+*KB$0iaTX6*p zmLS=L6o(d*3R;F2XoJ20o{$?yZTu0_j&ajt5u?Xi2&3Q&t0E+R}p;0nn91V`a*a$df_ zA`dKx-CdU)<)$R!?pk|H0_3w5!XPA(I&wMOA6?F+B#juk&;s93h@3jHlx+b#1s%jF zQY-)SwHno)Gg}iP_mrJ5$%m4VXJMj#ZyEz}_d%aN5U~W{TVk0i*v(tD!IDPwM#sjE z!X(pVg|LfZqNq&h4YpP@cZh+)qWpzg&1Cd2k>IAKB`;^q-}DQ@mjyaajS%lZHguT< zLdcG9Y>|{K6h={q?x4cZ=Se$oykC0see|Ae|Cc!q8d30vB8>(HMNH5{wS>)E5!8SX zlgdG6(qU_H7N38bJufacr9o_vry+EV z*~Pgz;#(eXl$d>9TJ|D2r+L7Tj(bIMyqr_7=Axl4^-Nzp16j4(re5v2D4Tv&Qi!xz zv#VXD#5amSUzNP|I`vA)KT9v?dz)C&xRJHX87FZ?riFqfkb6Ro#_Kf0wuxJlCykuZ zuAZx$zuIr`a=s-FAbs9)Gn-JToImz@Dmiu(KbQ=cZ_}4W(8nD26_}tS+)monX2#`)+YHaga~nJ;09OY9hzHo+Kh(PqIIvWVfDrc!>!lCW?>E*Uera z^|9I2h{*jT2OT8mD8%(}D3=KM%eU)kkPjwy1<-0_x5K|?bOPrfJ6;d7Uv+&RPCXFt zF*n;0Z%48op$qmn#MOBEj{g(Kd}FM4`+w~^d1y?y9o#;1NR9#_J~)#{hQsBXU4FkA z+Y2JC#`f0%J~JZR4&-W*fF*ur_D^z-dj^ZTOg=wazry-i;>Jc`@HzHbG7GXmhw~cp zA4}AmymgVWS<2;{+`i)F{8zO;QnzP7p)UM=Wi`&Z`JnSvm!;pa9Qm%vBQ|uW%Q@+N z1e?M9a*t1}IX*D?QwEpwgF8iUuoMMv6J92ww3Sj=$~`kKS#_}_ZsWn>FtzTs2!%!2 z)W_2-ClqtWGz($acy1KE=FiK=cKJ5K#AGr7hN_#&tmF*7f@yf;NhB^7iqbfUvL+k)9Mdh+W=F|$ z3?;fHASrN#Fx~&vMa|`Safw$;B2TQ^#?wTEJv))a`J@!-V>nBIbS2S8lT2X}{!Wq6 z*2wK>pGN-?;e|M$<5iyv&i0Bd)C2hMoV3Ie6T#;Fpuj?sv&@rYZvEF42OXxW1?cPM zs*+DRye%D58y{^chN`m5j@P}evoAAB$EC#V^J6U$3AwmA-t_p!ox$bICn?x}fp z{M>vQdu*G!$c;j$55JPZdkS^or_1J$9RT_6;cB;smqF&*iQJ8Pix4pPkw4tbZp3^~ zy?nbjs1)NPWzc5@&0SvsP|(xy$x&>N0AE(o>s^`4h#cl-sf(R}=W@y}&n3m^_X|Vq z>G*MZlraCX%dehH1OaO5B2`Jp7*^c@3v_WAA&6l5yE}R8^|FeuI&gJi$9BZqkt`#- zx8kbHdLVGDx;VOBFXy&dHTgu#X-|7hO!3i5*D5OckVx0JrXZ{BEe+W zB;49xLJjXJ%z_~%=%>mmU7b;(5iDDzaT;7q$86eRa%KW_0>A7Q!?Ao1cNEr@@7H*$ z2jMei5UnSm5X~_C!QHtfHfRG;bgk2(hOva?YDTp5yG!v;H;@gmvDT7cBwogj)7M94 z&bcz!5aJ}f9RENUro_R!9q?e6ofF6s667ww2$)@0Ll5AWfEL|0rYE@$Dm6^4LpuRI zhOK7nHl*HHErqd?6fo&0vkr;S0A?v$ED_-Bh)(|X(#zV%g6LD% zbliQ_C^wxuE2H{}W$ptjo?*x&rz$O_ZsQFz{e>674s9v)MR|mF5bn=nZiA*Z30y%d zK4t8%6B)+ON#?LPt+0>jFH&53uO4EdvMQBf{Nvuo-?2-*8-I_G>Md1u(As9;MA+^1 ze9Dsu?Z`y`mLB)8ZOR-@>nH~nu$@se_DDQ=3vK5%MMJpG?DQ)r2Qc3s5KCY;(7@%5 zc>mRt4i_oea5e_$EdzCg_L1{=lLL*5fx+PPr}AYz{JB3o-uycP1XA6}^o1Z@LbQs% zCBS%L??61z7iK5_tZ!H#u)(IXhs!>Y!gq5ZNs=gLJ$?;sNPJmOlqW({?_` z48DDq!9F{Mds;$)Trx76*=JC;b;xjeB9IZ;43DDyO-9D1M1F6TNi~Ya%%?tRLM`)^ zeQ7Jpjp|<3OVxC43J9TKH*u@{gs8Vjo@Lv3W1<;sQ=rl^>3G|~X$>pW{d19?0q7w* zVV>DcAg6nYE{sJ3gAR7r5!r1^+LA=*-zx8&ZSk)EWPT>r%6b5^$b9Q;6?LeVPE}w5 z>nX0_k#u+*$_GtJl+RX^fK>2Rz&kcUyiD?&L|ONcQ58rN=l$~8u3+>-cHJ??KOx^M zINtUK|WIZ-8QoZB)lwwFgs!~$9NDRZ{QLzzBgbXx5;SEV%-!68+Y($;Fl}+#l3C$KG7LGC74t@`n^wvgb#cK29dfq! zKuZ9ZH|Wz%D{L};tz{WMkq0|Vf-X0-6VPKwEsK0;XQ_0c!tybki-aZlE)w90>Q!>z zhWuC9?G5n0fQrZCUdiflR*tH~9a!+E^sQ~YSuk!_f_lk(?@k((tZZ%kqUL)|y$~QU z;5A6z=Cgl}oev)nmcD5cqH#NN0b7^`@b54t*9A>yqK$-6HEuKJGFE;|ip*&xPbtYN zC_I?Tx@&D$u!lj9uF!Zink6s*O{kQgP^-l{(4jO_h_deO7F=_v{JI8qn!X+^z0h>& z4BB->%c%DH&zDXHU3)nt#)(`J{jLRJKXA8agf!j^kDvRIj4KkUO`-eKeCzte(0!KB@u z^?>bnn<)*EAT-N>mH|sJw5$ek7wPSPK=N1T@QFf=pk?7cVXF3vZJ0WjbLF}z!$U$j zkLXxfnJrTNHVfgD=9W(*5)rfo4#NEkw-&8`Ya0fdiR+>9hE|Z)`2B7CL{>Z$CMYZT zDCk$y4m_xtaHbBe@CNl8G)$DCtm#)!_U`@#v1qs7Z1~Y+P&=Rus@Q$1V44IU%KkVc zM4dYa61pPNwNUSVQbaD#huqX{1d8?7?TWE{c(A-6^s(unV>j!Hkh{v=r5;~aQsYQ>&9UA$>Wc0qTXRS>mjBCF&JIuZc#M& zHY`X=2S&sSUXjP!MV!%D0E4zN+PBDQ_ueVI0x+W$qyj_8#uHa9yAl=0Oz zeqyFOcGa`+qE9;B;uT@rdN8eMI?gyhnZ19(y`;OAultYSbK}^xGF2abH14XJJEx+c zcflt#u}LwCVt3kOzJEsYSc6}6xRi;C<%jY1qmJ}}&@1maL^H8=s3^g@PA7H>1Jz@3 zzYzybXTzLsl>Gm50dX@N1z|M4xu@jQJpOwbOmo9zUO+R?&L^5+^XrTDe;*V z(gT>KBST+jhASU$>ck2kf1ltsO+N?rvJ7+(X22w6y*_MK^_$&))D7VPTCiFqIO9$m zi=yonu|qp2X(ZSB%2(rPky!Z`0xVW?+`GAF_n%$Arz^-8)Qak00tbB} zSq0*mWpH7yq*)~0{cHLXUjU^Eu0e7vaJNFsX@Pekiv4k$Q6eO}i? z-><=1ls6EGSeYPM{y+29A)O0lCCCND-{=b!OV{BSLv1Nam5{S5Lc*m^&T5fqEzw9;McRQ2vBdNaWBR?UnS%1QfIYsR);e*TLhXW zkuW^K89E_gR|-2Bo52e4BMhsT#n5lFP}su$by{|N#b&(mpy`!l6)asoeKCaU+fsg6 zFbt}Vmk_HCX_fVVPqG{x-Vv;mYSC3!G&v+BSwah_0V|<@SkA;O=8A>UfV$La`gHO* zuv@6Don1EtVTNFWOet>5K&D+MIqjw%GT8B^RTod&`t07Bji2kp=IDy7Gg9t7*tXts zdH_Eex|jv(l-H*)WaniEHPb~1RM1ZJ3)BgrEts}>_42Gxn6Y2eKi#KG{>6n ziQ(bXF+=}l34s>Q;zHqlICWICiu#FyrY$V8ucDAd95J3jDl|;E*Qb{~p9?BH6w)uJ z8#EQD3KNtI2rH*Ac_9z5%)TFSyv;^JfVz}|FHf=oDyXu?`g#7CdRV02bN2OH!1c(DCNK&mDnv>?F9N(Hbvhz*>w#@O#G4 z@>#oH^GcG4+^!XGM4H_5s3A0&lwSi2fdRC&(!W6$Lp(W6&}Ts9 zz0aCU^xrg5GL-%-_g!|JH_-YD`Uo+d|#fN*ebt2cBxe>e{P;VVEf`C zmC<)IR}zo4_3`s4)-Q$AEf;dM(WId504;LZw9R&(c`+MwxuMTMb&vN(*OLSfNFhnw z|C!K(PCry4REf@}Kr^}xiSLuPV0sIeVFSpTKGKDas>bgOug!w~zsCCsQm{RVuSX zz|_m7M4K7`&Y<0dmkh5qWeuP$g?1#jU3VxDu^6?WJ z!Hb~f$2`5tY40VwRBdcNRvL!xGz3DR0y$xNPo2Iv|Eti0DVy@Kp?A}UC<12EtNTUy zWBCQrPxo)i(*4v!cvc*D;@bm-V=_GZ7fB?Hyb!e)`sgd!bl( zb}8d6Rlvq&iWlZ;Fi9KLIqmZWl;;z?8rPMHYJxFnOQA0dXCqcho~jM5LzfuMqprFw z8gDGJJ1Ni9AJbpeioKVnj+bK^KcC@cN5X#QOp`y`hp#~W)I7s*OqWd*5)>M5{cErE zvO$`*QCTp6Me=1l021Oek7uF#+W2?cOsfU3Ep})O+J)1XJPVCC+W}0HzCBWMvea_;>TI1% z7L40Qw58A~sqzrYp_AC5GWlKN-xma=EI~v642Hmyxdt^*X~K>;bhX-~>A=-^!==+d z>HqX=;iDHb4785&6xR6;z&s`Cp72V30W356_H64xAvD`DZO5ErqpSs_6J{UuNiAAI zI*modp%PUY9#}op?~ir0pAQ52cG?{*Mn}el)+6&GNao(@nBmZ@9-epA0a7on&LVV(ew_hghjqi*>giAp0NLux^qiU8wsND zT5Cd&DfLa$Rjv7y=PX5Q@CLN830+cm>jp9=apr+K|9>QeO^9s-NcpvcqGhpf<4lAA z2Hiqu>Cibqw^TaTjB%pq!;6W~A27##;aI-!aVSq{o~y*=APdz!%nRJ9*Ar8-1bG3#z~5ScNWA`A<^3$SbLw znY6e^R|`EOF-! zU6GBNW=ilE=oGhc0h7XlOBwkVDve8;*Gs=nO&_HKyxtgZfw9Y6){}Q@)Y^$~j~Q}h z(G{c_^XJcw{in|6w$RU%UXRT(!@O8hGx`J;8GsTxi~`@w{5uA|mv3ICRUD9fyu_vR zFDdWW&PX4@7%z8>7RGx%2q8rf%2mq-jv z_Ojq_r8(Qz!WFCq%BR9Fy$U)O^LX(ux=A@U)Yn<8&}A+scJ7;8YKUzS42_bvNHbLH zcvZ7TlYaa>>N3l#v9WUfMeGhZn#hXds)?G`P4O70k`AEBY5+K*TRDBq*GprpS3o`x zb-f%4SAupSz8Io@sjxq?*zNN;Top6^Oxl)pGY&c(k*4z~M+3oTwRjxDZ)mIvx)O>- zP+e=GB9W9oW$6GttW5u*MvjbI)WpIBP?n^l{5b!>xh`52jtp@re8S`$-Y0|r1Avns z)t@ODn)9uHstipL6~h^c*Gny2iErv3pykLz*wkgn|4Z(+d0{?6&^@m;G(PHkg}Qp; zLoI}gePsq5pI3DA(TX(f_f_rDA~Q6li504fvF5H4d&KA#MqvE1IJS!2?_|d2j>d&> zW&WI0$QqmT8uvHSJ?4IV?>t&LsClkqyd1Emk4w$`A)b%iTs5ddmR=L;@%^OVnv7M) z!n7NHmE_$$itduo$OLpV(C>$=e-vb8u!Rdni>|iJFN?H4vCdP$FN1_HB>zA!2KNmo5cbkMY} zzRcBS>1Dx{eU@JbiYttnc!E#z{;7|q%hHIaK2T{&{S==%k_@bZJ8Sj=+I@IKdKONlb%^SaP@7v=mU}* zl=)=mAtVD7y($MrDrR5^x(J2#;9Wg9~pRnM) zDbio<%S3ihisU_#YX=k6s;lqbzRy^8HHzmwdfRH-ED8;17EN134q^U6*A9t`7eWIr z>)uYv^Zh|xT95V_Sv(p!ssq*s>=>I$y+wb^d?TA(aZ=}{-Qt_*Z95Jj9pt&(Ouk3v zoT4{KGq&yLn6o4h?VyEt*+osl>8ssG&YYlU#Tj~`xsc}+m27c}-p=5*(9e`0$vAXp zvRMud;5cH1U15u^NR2VE6t3p!+N*)CiH=vLMl=4HX`SQXbj`rkP5NqTZ&vAK>3SM) zmpN6KiF_vVE-|{dIW5R7+SLH(v)nEYtWTMSB7T&zHmVdN#8U)?i8?U1^ku+yqJ*4H zN7&vAbTiOnkZ|5cP5WHon!06x>{737mh%zgWum+-{FWk*`E)&+j!oonXqgxqfogSA z%`$9-zlH-yA@XdJM66$WqOX+TTj<Q?oFPL*KDbaX_16ZXru$yB^{9^|WAL_S0JpEpKw{-J z9os?*r(dg~_VIn!qKSntofPxf4J@qSngSA|G3Z3&hm#KrhAV_d_NZ=Fg0v6B7}VqY zFD)NKG*QkCEZQ9Cugh1Iaszn&bwefi22JbQ%1O#Ei22_@1Q&=l3|> zuhf_8je{(+GC@ZH73S1u05xq(c{J8Wzt}R~f%4{6@!ts=TNSRynqM7%)a>2c<1n)% zs_QZ2;@1I=!_1TcNZBm;b@n6Q(mJX0X!FC_$*leLQ>9n0pW}L}{0lO7`F$xL;R+MA z@p>u)01N!Ajv#6;M9OsXQvIQctT%wv+SMIsWLzA5%LH>KIVqMwGGn zabb{-EEZXG3q2Iq*VY|MUyHEJ z+>e8%x{9pPMk?YSA|KSyj_*CoYsB~aUejwJ`~MMe944kY0d>X(oc7mQwF(t-W>ltT z_SrH-SK9eJD&zaym<&k#tJ&|0jlM|!cxW+A2igMamvH%=+0PwAn{f+hCftqjeIMov za+)20*}`;+Wm+%6>jVbfOmoVCdE%@*fxBi;qiO-0Chz9YV*C<~(RZW0vvcDrw z{Z#^;|1KbIz`^AN*))AUy#aIu>GR0K+v%Nw>*WNq@X;jXH3da0NZSbCZu52_=;4|H zUGA0A7@BgZbE#zi+t!XQq>wnncBwmxvW`LbCY4`~cpG_}41XDXJm8*>GvYfoICk9 zsEroJTPxN0Ze{(f5BMh*atTiig|#%%Yr^J8;(a!C2!|* znx^O%Suc~_e-&=ml%`YP6I@kTEke1DPSeOlx0_xjvSdAt#B|t1?lo=KaZ@0?1Ol2P zkXh1AFa>+Nq5zk(iRmcjV*YJTrQ90h{L{3@MYt(?$xb3!!f{Zm#3`F8ExJtfJl!($ zD#w9Wm0M>&LHAUOgjjG>}Gpn=JD+|)ZS1|qiY4XIS%P` z{J!?K4;s6=Sqds!Z9brzpp;XE1kv1~<1pioIgP(+FEUjF{2fp)M9cGwO+~-5+F6Bj zcl8;q%3tB8tBUPLsy}DNWAMIhWlP(RHeJ0jbeZUt^qOs*|LS;ov)TtGcgU)sPZyiT zoSSh7O)YvB19-_SkK7%x;G7DT@l!TqF6=mv$k7}J2hhfFWG%>Tl&0H5R5o)Xl-&aB zXT)b~qc>S7dcrWPr`J-8L4&if{P%7BRrXk{3wnJ~+v=-`NbJv`(L9ZKUN=n1uAAH&?HyM1%v&lD0GonbUV{Y=d3))Rt23eI7U-=rcSwWFy+T) zHQmuv77Nj5$insF^DYKy_cPo5?4C*yZ01a-I!E^gB+b+lc0yB@(WWVDcW5P_nYYVT znHf=~iTXIS;@4z7H5gPjv2Uk9*n$Ccwa~F}wgVuYLjL*?pd08s5{&PuHLC$mj$e&Q z9Xbj6WN^wfd_7S|0ps5g1j$c7OFWtsX{LrC(k&CGfvS$GZ_dZ~{t&eGfch~v6G~Wg zGte`TBJ**K1Ml=@pgSMq`x>U;anMmtTd{58%PI!9>DC@KZK|q~gGh<3zlZli%@+HV zBBYfmq-@3AJ{Rg|thUEf^iy)*teSC9%T?uxv8;0{%fRl#F%ASyL#Q+~2W#eo*w%f| zz0KtMjAgNOqT`?w?OhbE=g;tV0$OLxi@Ig%TO3_@3LjF)(_g^>p!GA-1lKv0Jl~l0 zKl09Hw{atgqTgB~%VepWT}oHACiI77A0R=HMOFc_%1%EPv#KdR^spu`AP6wL=iF+F zvS;M6WJ&bphg6j$1IAj8EVGr8s|KJ@b$L^dHJ)XZ)xjf#YQrOPtmZGncTY3N-N5#q zSo?`WD5tqCXPVdz=KhdGJ*G#Cg@;>J7*3dLS$#rUS)|H&CPXFn;`g_XwT!)ze`S{? z!1K6j}(u^vC^|8NbM z)P^u~nPu>63nb*k{q5VCq0zDJcw9MJW@to2Fdr`8Af* zvD?@WpNV*43@&thk>~RF3g_XG6wX^wkmADeWK!AYIq%g5V&vX~WlZ2a$ znB+v*Vf2_Y0lx~lqedKC9xReu6HbpT|OO4BkS`%I; zP?)9iSSjjqfXoAGzSo)xIKs^9D7$(d;oT)b68mS}R@qfu^|X82@;KdHNBXo+X-KbPADc9T$ff;<~%z0o>Q$g|Ca%^nJL zo-H3)XBV!9DUnp?lHL6E|Ihtg0T92|Vk!C+P9){eXbvzCiq2h#cPbWm@TQPJu0rsV zo-ymh_ug)k=V=3rz)ui(01YdDw3`yv$>%6cS84BAxu?TolvXZx_DHXqzOD-A#TP60 z)c1_7u!%)#F}rjaUF;1?i^|t%EQ*;Te9cg=)77%x_cHulPGjHtui5kIJxqZX(Q~Xw z8(Jhvor@SUiteSd%QF#^tEcFm6id+r>Gi=UoWV2G>oQgxxSdt|`P23*APYMY@k5KN z6o|tlR&<~78oWd-MQN`d-%fd&B2Q7K7^k@W@U@vnr#Nbf07`-Hwo{QC)0uRhZ47cx zT|E62&{fw9TJi96vX^P!UHk$Tv7LY<6DV~Pn5W^l({{i(p}8VrQqvw%HwiXH>1-A) z74t-jmV@OK+!isuVM^5ORh=hHLT9&3b}uT{rpCw_vs9gTWzVcz3Mu(gM%hy^J=d8+ zoJa<*lyoDSrz|JT<3{)+CK(}4*^*2^3)5_P$2=vaF9x3S;{tCVe_+}?GO&{-90)2B zr2ty2`3M~e)rBjfvxqT!QnP7#U8eVX!4lbL4SK4RU=Mm47U_PMj*SnBjEibNj+>@UnPmE1)a7EfMtP?jg%2n8~i-D6q1fk(x(1}I&7aCXj&6z}(B?XyDaL@clsY?%(k4xLUFLjynfUCOL z06=kA`m1J7^w+|(DK(3xMdhlqj3!ojifjSB!!sFhVCNT%Ce%78k#NAgTs)Mo#IQ~X z{&L0I^4F4}DBlcwE>d1RgkaH6RY_{Qk{}W(Kdf$;o$I6{mr(H25_rIrirhIu9{X7Z zOa4^ZeK~pGlUkc4ud@VWhR{QLrWl?4Wkb15p%7t8_Wm^e`o#h~AsKr}WhcZllL^W2 zDk+^o6llJnJ|fAj8QD?}fT_h?3*C2ACzl9fY6B1GD=4|d3X zC4mF;mX;aU5Z!_jZwFqjojE&7CLege{5;`X3-ml1$Z{J#94*i?P5Ewt`4b%8rl5~# z=1o7MJxx(co>p+$AX{p=5@oX1qQ&eDGk_BRS&vsC8LF?=F;}5x9z`5?cC_TY1)p66 zk7$a~lTv4rD99va(P8>RNikcCt4z-_wwSjJl$(B~m{x^q860Y$W($H@baV@1^m1~1 zyM{%iwB=wBPfQs}rRj_Btvq3{fM_5~*F=;kty~`YIJVn*U6tWQ(^u@(y(z6+KKF+< zpcuKGkXp=6YJv%h=B;#=)HuF1?1I4HJ1t~yECEtWaJQ8%*AIf=m?#jMffUdXM?3*!(Q8azBPQnDe(1-a?qloi zfdNe$SR_jce3$A8j&;(61FZ6ZNlY?s*jOm>%=C%0pnNt#PjbX9h?jk^jhIc2ma(nq zDORJ@RTJZIlesa7r>^h@H>tg2oX|n$4LcHJub8V)>dZ<8B|4MT=J+~Nq#$1*DeOg@ zQ-*9Qp5-oRxH}$B4`mC{Z7<&KFCr}}x5}?DT7aiwq*?jAl>=rq!P{h-nP$=ACJxIU z^1x}O1P@E#zoVsfkySCJ(-wTDrs|0({Yj;G`QdgTf5$*KliRCjrzmE#2s;u-lfe^U z5t6E@Y<3YkZ@Q8&rA^V=t}IoGTt(d;B_4Oo>s3NLv1}&GcOLJ3iRDGDgJbFAt=3m9 zczd2SfMOh~sPNkpA^21J>hi5nT9g-+zpAU5-VT{onsimp=BHDMCiS0u zun0UMS%4?Rzsh>z(;yFb@ZXXAVm$$czg&1}7#H{R#d@~D$D4~S?VAbbW+b)y&Wq*He;$QuB=&uS~`iUs78b=~k zlI=)|!dFe~-*st1z2f|#?e}kb1A1mdhq*7aWo9ua&(`3c&M3OqU>PB`PlVvU;>!P& zJ`q_=&X^=<9gM<@rI*wr0p-6}4h*@SwS$&bDc|o6#;xokp*r6u`N6 zYIlt5Md?@VSb@5i3XU#;62D@R4l-N9TOA-lH>)V-*|q7f8W!WK6vJ!@GelXMtM}7g zz}JW)JH&BDQMVCtD^FCy7O)-9&(V_|^1g5aLvATj=ZZ;hh0;oS@{FG8{Ur{!2>~er z#p3m^B!4AD4cbo-3s_|X(b;3(OT4k(^H6efo9E;`cml+E0C}eD1m$@7&2->sEK{ll zSSp<$wtIc|>@eG8>t~$ueU2lyoM-ZRYnLB#d%pb8tsRrK-?H+XerWjE;^isBYe7t+PBE#b}+Y&Z%pnowV3zf zz&JC~$y9oS;+Rd<63b}0l)Y|yD+n0=ue{N)r@{N}pXfl{{<&uh=|SXwi^UaHI( z_cWm<7*GsduQPoRz>u2Ytf(bW+?$GWsz*DWFn=alD-rXNX5&NH;ll7&mhHA*k`UpXy-q=i0?q$!94rE6BcJ#gBYlpr&i?X4 zl$ApA5;;ebACJZoz`F*;vJq|O5+&&VjkVjn0NB6p|cE@ zgD1om`>}mo=tRmSr92qRXUD0d@JrdROf|Kkv1&D zr+A-I!14`1T{u4?`ERgR|8HF^1a-?EO6NutuR^j?HCN2{s4QbrMDd~+QvIK`G#SLC zwY$ou9XLd>)xD+`l-M*c`6Z(9TMLxMHS@$V;s;J2Tb?$s0Ku8ZDpa|tjb%4r(w&8M zlH(=^Pc$UYrUFQw+PBrVK)Fh@7;ks#Nho!5;VN5@T&3YZrB%WM@=TIjb9NPY-1SuD zbzFXSIXc2!U=m#^QkvU!{#No@F|W#fwOjA5%c?(B!YUhVXK^Og1*sru_%khX^>B5r ztPqOZ1tq~ywL&QF?R^W9;CA_mNlc{yb;0Z`TWUrzDV~@j;lcbJvy)s9f*4y*Lg(nf zOwD3prLs6*H7q6v&Yf3scxDQFxpv{ZDx8+0(0UO?H}q_WO0E(iHH%@s>#f@W&QyVw zmmgdNDzQ?>c+apW>RW!i(>sbu2WlkGL&=>RI(m-pZbyfLn0QT1Ul}mIYB5CiMh<?v=uJZnoxn+q=hX;C&xFJOu+=( z3aG>Z(yV#A%TSrA=~qh0OKRgdo0xQ$A9HI)p@J#{9ybdKoI;fjg}4>}d5&vIt;qlt z$(T9=C(b5<(HRWd6Ti6~XL+B%EgCw@VUUWOb8Z9Yov0L-bD2k9U>2Sj zEK2KOtMQPj>(#V}!DtaNZ+Ir2IFMyTnV2jf+=FH73H}C9lHqUe`n8>gB9Vrhak`nv z-9rUW$m>QyOllM7Rh0ND_Uv=oR$1!Qh8OB+sWO2BPskRKyby~^goJukC#TLtzg&Ju zUBrB+mHvovsLHbme5r!kS1YOAngmNZK%7J^AR7+sGfZ8Ci68hO6mfB<{Xn>0k{Zo(U9Y?IB&A+FN@>iUX6DYaJ*(+*RSc_+sV0 z(#q|qOI!JM{)h?7*B)l6_V^B^K3H-+(bd#l#K_-7-n-~bkirt>wNR%ww@SB08T zMc9SKs2H8|fs`HZYmAofmtQA}1xLdPa%&=kL3=3T#*WO12ZBdsQU%Wvjp!*Ge1Y+S zkma2yEy7TwYI-L&eY5NeC6l<$NTQET3G>dhuXcvmvdg={g4K{I9!pqsHnzRKK%OvK zM09X&O_C?uF7NO{;wstllzA{Yb8GyF!?cBuXd%f{mSQ(foHnq?Qywx3Mi9bv`+S9L zW!>C27g;W0&x=jgOwmq(76(VPOyIz~I6A2UgPbx7vG;Y-0Etc|0_b*`k`QI(+Wc{o zD`pz1Py6r#*SS>G=LjD*j@<1k!Q(-O)1y{2&~YjLy=>d(dZygJs8haKym|3kNN-6U z=BJF9>bv@_`cQg@M63gy5O|mnTTjdpQgwba9xW|ob6^j!Y%v?r6ICfKDt}VdeVrLV zmGkE%-iQ*r3I&<1il-8Vy`5hGRih#xW(nHL%qBI#F*weKY$;8Td((AB9JW%(m$*fA zdGoaA6U^*^ysJM>HSaQrir!OJp;-t z%3tp8L2xS(C|%2AVW~D6*I((`0%E&mzLHH2P+AwF_$Q8a_}6r(}m#5>85sEB#-toJieEd&QhW~1f%l3yUTJ@|#~uEF%B=l>=4@b(7T zB$DGM6KoNIEJYNVA1fvCdm_0o8217kzL>N zN39-9GYfTYo?0Qs+*VNH$qolGU{+(c$8>uYu1FJ`FlCEuutdQ?$*#A9)H=U_Drre- zwG#tba%5w{2}di@!atI|up5K1y-AGXbaa*!`D}7zok^7T8c0^xA5mtW2(Ma2odkmk zLG7vQVW=*~f%Ar$$BD@TEb*M5vTJ%uZdfOon*N^E{YdF_0+@cKqAu4KKsFpL*)tmK zHGgIbMSVYpW;!shJ+m)0oZ2eFCb_MER0kbZsRMPKVT*K+*#dGq6Qf)4iA7we7%V-S zdTGIU9hT@xkg8O$G1sx+Y2q0@Q`3(hc7%_xyCrejp!FobQ}bCF#W-+NS@LHh9e;UU z5{vH5^1UQJPlgA};bcgjZH1p{+MTn@068rCl0}Qzh#8F?XFl(2kQSm@0!Ns@2Y~qJ zgyi93C2o-((7>6%BzqEUIT}iXqL|IkPXD_W3!1VtVU55BwTBiPPphIlOzm3>nsQ7n z9=POW#q*@B7_K_W<+qM1Z|g8^hki=?qORZedD;$Bv=$II$nA#pekpsSv;qG?-nneG zvKwLeSqoaY%aTftR8nHbd4|lh78zum6-Jr)#j>rEx~0DO0-RjeI{e@Fm-=QnumRin zJ=5ikxp@J!exn4^6&< zQDMX0Z-)aCLGtCSL@LPrUJQeqgv4wC&_ZMv6J9cz(E#Qp50b-s+q$Lq z;VHfVhtZ{neUMZ~RXQqRo9IZy2})IxuexbD&=eRTefbFe&h>Cpv;JW>CF|h1U^`7XLk%ydHay>*;OA`ITg;xl_>~wv*iod=AyrFhK zVN@l2OQz0Zrb7ab#n8Ah>njLUi=j;JQs|Hl5(y!M(X6r_qsU(6UI9Ff8dp zF?J&P6Dix!LzzVneLoA|l;Nd~&e)~l>w?Hn38Ti;G-^Dw&ZP)+6q;Bs+`2MqQyxjQ zRPT5c3)&sT>KYb1Dc%oyE971+f?9GY3;dQ33oO&Z6>voT%zIa<97BNx|#)G@KfpXY{D%>lMS- zu~C#Q4wA|X9afo$0ED4!vy+>AvU4v;%8Q&bEK;HCNH7Rdc@g(wc7#FjIw}%Vf}qbL z?@vfhREHLCl5fc4Y)G>QQ7v$?a&W%#s8UuVDSz}~_I`~S(&TYz>oll=U6@N8CPx?a zR4yN9zI^t(TF@H&&Y`Vjcsch%l0yec?NXMLq!P&INA*hfPG&)J1iKKh46ujX=G ze|iM)H+{%?$T{Y;SinM;G70H0iK3NiRKLg9cPZ}ona&DMTS%(#oEaof=v~``@?Eu+ zKw>U~RnR*UUq>fG!;*o$Q&!rkMN$PJ^Sw=a0Ov}a1gbs5_@aEJOJeSq;cLjnBE&yr zqd_1)Kz9@Qr%TGALr9tVHlJxwUIb67VI_HE2Lk-*Ee+yyoSEU^>7geWn4UErGrH}h%yjZw{kxeAWTBloDn1C zvxJ9Gu*T;;&$IAx=0J1<$ zzrGfAh$_>!>6OpB9}bE}g?8lzm67)i4oV>DS{MV-7E|7qp^HKb#Mwv{z->yB3OmB! zuQV@l$SkR-<06bAA-;}bwrQ$^6D^&uv{w13!=z%TTS+;FHkA)ql*u@Zmyf_%=OFM) z1}CP>4t=;UJtY~1$@wc?j{3QAI;r~6%(utqFgabyh}#)*Smm9`#**+>8Qg{iM;o3h zU6oMmdqBUlSw8d4cg|CXICLB7v>xLru)S901`gtmlS zSaMYP)TeO1BH%Tnfh#Vb{!n>cz5I!lJYl-i4?id$hpd6YXGvxkfANE&tNhi2&%1r* z-~VT$*Y`{h1r(eZ(xI0i$r*AvcNGm_x5qOY#KY@o#5jLnC@z;RS2gh;#L5>LuQvYr z53X+#2T9n%D#t;Q72}K}P^Jb!tpPo1_plrA-=ivk$0&&fwvb|xz>U#8UGG*pGo-4O zaaU4D8#i%Obl6<*aD2!z=(K?o^cY<#cGN}WMQtBV;6lvD5+z@GHHdeWO zs3%kxrAkzGTNP>G*bHu}2YS*1fZtN%HncFQVQrOB1YOTf$Qi|q?C7D#(dl9u47%b* zDDTy7dn$B=@~3|Ec~Ots%K~M0$nPR!#2{umxEo+w2{aqdA6_5zvvfGyuo#9m(e=~? z0K~EQCLroCsfZJ>peqc=e}~w8p-EyjUW+n~#&0-7`tNV8$7jp0*1EF4K}&mQ!{g7l zZY8xX?iWDa^-*y@`1hCksstOu@Rj2^`SS$r=yX2Q<#RRS%jdBlUOq70nFR31Z{KD{ z1H}C(Qs3*dA-+4k@lH(Oxen5ACrFdV$l}{j${3`!gr`e4jxlzeLODbO(MBbbqmSzN2P!IXLSpFp+2C$hb zr%~t3_Ysfs)k@{CIVoq*%1ol{tZ7S&WUwUMf)YwHP?hurk&O57rrtB&Nck)TKEFi7 z5OY5O3M6Hw@-IY1P5!m8Xkf6Sk|gll@y+>=1#_B6awsbalo_Vu%CD8LI_7|!2t%f6 z(z+f{_#X&fQkmJ}toELAqj7amW=OR-S}rr#Mv>YQ_R6djXHSzV)2Om-+1Uu&c}##~ z?ehtuot5IodYWb-TMkmB<%%)K00myC3j9+X;U4o1S^F@NML1Ss6^k@$n6wH_6023F zg+!{qI7JO;)}rjJ>5djDSRX4+#1#xRhH;pT#iBrx3&1WqO%ki|B&^IdO+}QMMA>_~+NofDtXPfbQ#q_siL%6!(8Cy{ zS;KFonL275P*92iq*=pV%?xI>=d1O z-0LJ@swyv7TZ%kCBkJ(_kGe>g&V_0)9iNE?fsId zj?P=;sKf0pZ7(e38LOAkt-F)uV^KM zMQTfEO4a7Hk>aFfc)i<=sxC(Z1Yy*fP7(^R&@PEIS-5Q{47_`kz-UTIw<(FNI99D> zu**>lv$^~|gO&kpBKDOl!6@q9F9B0qxrdr1uB?CobeP=UHl)VGb3PfxNz-g_Tuti$ z>mX)!2^jbhlNWnjSE6HKfVH zmT}QdsBv(Ua?y3#O(+fz+2y0VSyX_^K4b+^=mi0cE7oBzxd2rWhP1MR_!L!}po7Rd zl@)4%eH_3`L8=m-kg2o#o<<#R**y7Twh*#&b|lCDXKagdjM!RaxF&}wJYToz)o`g4#q#w zesf3$Od^6D8o=HV;7O5Y4XZ8FuAG!X)ZfnOSX=`n(Bh^5kZ%}Lm9P|NL9f&T zS5u^zl{w$8EM1b&^im#UBYpx?<)r*A4Fy1xxNe1&)3X-4rpW=4U<;EFUkU?9v10+G zh4?|(CJUktyE2ip3@=WoC{s20CV9eB7L zsycUs%@NC#eu@sO{nBB_?E_A&^Il0??p8wXnq3S3g{@!UTep|Me5JTAwHOBs9CdhX zwlUhjDbo@~-uyq7cL(gY3>r02H7y`?t=Z}2?49<|99kK)Ki?YfZ^_Y(4996iIgjZkh@@hPgK@PAePRZjswc3In@uPojzYjlNQNZWhc>min#p<_vT< zbq_XFW7`M=D?d%-71hGBv-^LXY?!=A+%MIa&#w$UXeDr)Kzx&U)P^fq_%|T%a+~{mHuON>UjLV!U=p^Lrn4U{nvu2D#IPE zjBA0(Zio*5T2*v>U>h6V-~z+3o4OyolHdHMPT~pTG;U1|vAc;u;p`*OT;z_0-Fo>5 zbJL9iBtR3}$?$OFuEpWu))n4ujXL;6bk9!cO?gG(UpMltBeqM?o=!mhV6}{}8m+g{ z>%;!$gM@Csp2OLmn~O4+kC7j(`7`;6$`9B4jinBY!LrM>Y!(G7DukE~Fx_+K}RNL$856RJ@CJTl6Dw~J92q8}BSxI3}}_xnnv zNK~FaxAqv20P6R1u}|3`zzGMp-}r9pk9hferUfs&oyrulTZkl*Ffa@Yb8V7fo#6(W zJgpOcMKSHXb{N{$ZOPG5que^$+Rm5H62WT;T=NzlV>chEU|+1RdkB zsbN;WrF%&aAa1j7>kON~w2)_$0muOGVyHv02jD8H2&gL9Z^@7r17{z#7>Blmw(#8& zf0mMwLzW~7Kooh?IW~%oTcoaq-A1j))sfc;eyH*_wh2*(YO`oJ^1LFcr0xiEqjC21 zxJJ6GJbNl?f10PC5vt@#z&46uF6p}(XS1_Xqfs2~Pw{kDN+qG&gb!KXUEbQ}fHnt# z#n(~HZy{_U=Zo_Pk=Tfm{gmV&cqBE@LCiE`90W2e?h1Jp%C-n3Fo3eO2_vbvqXl0n zj}{bPGH|g_If6e zjq%T)F{t>R1KG<5SNE8**3K}}9}0HmF98)cmU>?UJppY<3A zsgEaM*c`H3j|V~Q5JvRHoRD3=onI0SAhjhtShV6}>?R%(5%BBN!3=0Gv=V0Qh}t^3}cSEQ6#n z;RQ%{MbU3k4e(UP%jY3zXP~U(E1bkkxoBks$(bSBoAV1fNP@gzl6WvMPHsi^QhDL+ zGy;dLOf0^I%V*{&sZ1dW_Y#jz7nA2@h|8_0%0;OXm0fFyZeb|-CJ1AumIU+vLZrPF zhukP&Qy8dkv8!pfH5$8}CXaF0R2`mmuXWi^tpQ6!BVqhTZwvroPn>>N> z*MBhXUoJR*0Kx#k=7rs#eL6zM_?J zEil<{E&n;G6^1YFiJ*fhs(#_PFS?4UV*ix_yq+Q4*a2zQ@Ld(Dm7bC)hOR$Im;_VR zIK)Z0RczcgPFvfjdm_yh7{E}JDpA?B76jo9%t0`=#e!dMpv;o$@IJm-vPl&w}7MRNb$HGB?e6OwS) zg1!X}C-A8hw@uRn=ogN$v_aS=3H%l$lfy}d4YM1@kY=APPAbbUl1M$B?>I=p@8K-= z3W1HNJgZ)H8zLPR@_T&MOOsljC^yExjt5>W=CG#I4=F4Z>e$`{Q4KEmHQ5!P`+jv@U5OG$Dvjns~LgLY$%wBzkYRW)GPQ0KLZL)Tc^UII~m z1`c5O!a)A!Zj93kFJvzvfw^T%f?+U#R69p8Nr$`^Wen)BHUFZ<#%<#as%_m$+FObH z1#aCaW=KEY8jVl+Bn-!IxcwRR}T);R5XY)bmK_*25l?76a!H{iY_?Qi{vtMs+j zIv&5;faH~ zKDr6HrcQt9>;5cox8wS&n2f1wteYzL9z8XXXHotK42)}3S&9$|4G(d|%-?}|xzwP<*`FQPG0vx*<@^v2X%}@pIy6+AXop+CS zUTN$BCaRnIIF5=!bjSIng=K7ZxCwjt(EWrePb*=FjRr0y6mEi16-xkK^qiq3(YnW_ zRH`JP1RmCd@a$l>$;MnK_ZXK0UJXEg;k}%uM!~SOHj$T{7Qzitwozc$H|i=o`$Wf^ zr%k`9K6KMDV5+52P}M3K(!*LA*8-FM%S6(FDZ)ZoHDFy5Q@YSrzW7K38=#?17CZ|j zkv3`D1Q;>ufHYM%ubjR7mOTTq9t8iO=zxUIt5 ziGd@|O4}MYcH||MiL*{qHwjg{N5E$4wHz!e_UCEtf|ucvIGdX+%;wOx zg}TD~jbm+Rk&r>IfL>knvWJsIff<_N2`GvvFKqJ!VEZ0*xTD1&3LO>-PA-YW(xXn` zS#hoBkK zJEP>#HvKnJ`-~#BB|KF2KIrsCjT^^GzqwAL&{#kd=Yc`gk=lOzW{H!pMDF=&TBEmi z!!&8sVb4`tf6Dvm&pSffep_!;e$UzV>z9b;t3&^Ly6v$JkIYe-rk((GTitkUsy~l* zw{BVBJx9|vhZgAz1HQG1{7EPoD6?d6+2-)5L{ODJ#*yX4^rTO8m?Gt}I!4%|o21!O zhUX@OYr$;-*ev}li0vjIL%4h-WlE33O2Q z^o&Vjeh_2p8a-%5497aHOb%^v4M?+wwYu-osFQO>+!g>WB??`ES&$0D4h5k=7rIIk z`F#PH`+^6NcO{dwP5^=sIhKZ0=Q=E;O)ybMq_%{w6yCioKP)8x0n*+M%0A1}Qm9f{ zY&}fgpOJ8~B}p+uYFeB;>M(n&Bk1^8orEWW|uBN8NINWGDe7*LKx0?G2{JwnJh8$o7lH?M;W>s2XUM`=n z#c9kOl@+26MXY1D)*#G@k~;LPP`-#p-woFsj1B?t5TjyNLgcjt=*leXt<>~qi zN2JSV88m-3Ff1bA%W6V}?XX^H+{qB_lBZtkcBG?6DkX5Y#)WZcPe5024gfldXo1v6 zm|ucI!w?q(?gxa*c7s#Iz^)r5Fbs_9(P4in{w`j}f){wz?LamL z4Vd6qTda~mL%Lg@1~a4$t&HCh_b_4sS1OJhTFJ^}tssFH1OaCpBvl7V12kkCmB1Ak zK$vxA0_i)@18tyM0oN`Qhk<TsHAJc!onL928o*ALs+p|~1D18C3Q?%tw9-L4+x6I^?j7siu@3AFL7FwJmT8i> zIA*;TFv>{D63U1NK%T2 zO@u||SS$`zSVYOB6Ilw9uOpg46b176^0ex20_cQ;+bev(^nk$qK-tp`L%Wu`RtHqX zeUp(VVMwcC93~5s@xDn03zUta2iUa$Pl_~axTD+0r+|^VBc&o^;Sn(0*1H>WaSe2U zPz$E7oAall=2>1o&-tldQtguY+f=K(-W^;%)TZj91yqU3_A4%cE_wnOHnb8@{}$>Y zj+FjcK&NDu3haV;>}7etZ{g}U$tLWYtw1#*PmI!O9k zK-wIiGcl(qn9OEEf}qkuxQ8-vGM=ptfBBXv`+%pf`)nvvM;RXI6}3xJ+BDNR-cAij zlZ9d~XfdNkc17!Ul2&n8n&jyYgEG7Jd%%KYrt+_2)LAzY=};xK^Uxv(kLBmHa}MB) z0lZKNBq>8_L1-br4DZBw9)H=(_3iZ<>Q!H1uHk;gbvRt#6kXF?gVQzNe}%ff!5}Gj zq0Zf?P^18lUZFtS>766Ha*HQVb>^3=E@4?QZB#r$lFCR#=8?$KPw`e!c(J!3O!*URo1Ku6X z3nyio5@!!iE5F`8Tt3j8^?HH%@@c!P`ZeeZ%`GY9usX&kvf{H;I`}LHHM&DKD+!cI z<>FjUak*C}YeLy6A5Gp_bi8zLzXe;5ej@? z15W~WR*JKy@2WD}s?uJWbe^>uH+>SckLx_6S<|F(%WzvmyI<=%Y`dM6wsrILApz>x zA8NLAL$#zTFnuLbe6GGEopreHlb+|<>X@|#OjY@;X2nglNNouZm09VFdTyQPl4hOk z@`0@fOii^&T?=jdj$b}_XNg*GFEf4Fi&P5MiS#S2d$L&I?jUW^V2UVOi?Z02@O-(a z=|Npz9QG?X0wfIVYCp!Ys&?2dnadw1eMYEC5NXqO&<+@I_SkQpe5+qdl~9EtIGkH_%uSEOgQi2H2u-=8 zv+?h*$m6g-O&cRuKYc|CsL}w2;ynWQz0~M?UOvp_qa4CW zLcuspqD-7T>agvT@+3fw#>tgwRHf}Xw)6O9pJX~-L9FCS7;NLz`f_XKg;;PX)IA@` z%ZC$jbT}f=VZBN0p$f4w6|sd>8H@NrUQ(GYi_6VGRb#N5nzmG#MwQ(yX|FVj)4Y>b1bEKfrKX}9*)(TlZV1hBxR1@H#3gs;o$w;h;kI@> zNtPCL0hp!KPE~xBAYui#lk2}itjr$IMS2*Xq;60r^MKFC)vQu}-D=HAY_MuBigRf z<{otu?Pz=91gKk|7nIpj?}8%UsSI9T(z@@V_5{Y}r#Q*r@}X9OBERhT4bziZq{hR2 zf7C7?d~*ZZvh$?rrk#iL?0m-klGqqTTx^9pFECx~KFP}(_ zhg*Jhkz>ks{bnqi&VjR9;4}ESJ4r5JWoA=0J0lea*(X|uS>%#U4ro(jSc>x}F)NUy zLHU&lBYLeypd6rIoZ>TJhBQh6a2QI9133^3|2>1-lN zv54g5BS=5AseEB@?bu%aVuD9H5R!~g^2Js9M?^dCq`bNpcx6?VMuGk{)U1@R^~C>L zN3Dpvfl(x17H`jf%8}7P{V2|X))ihpbTg)XbR!pp70OmgBBg2<^i8!lSqd+C`D~V@ zOg!e)l3*81=tH}K0`J;+nW;o~i|GvMv3DTsl zEK(ezuXY#!7gy!t7qC>^7DC`frI?|eIkCp?JP!gAW7&CoFm`&uN4ONrr25#C@=X`3 z6||ZDkhz4yc`ICKxEi%&oQhuG&8nzceoko`)vfmHJD)6tGoPz69r^A`nX2M5AS8)e zckkDKC6g+h1O}|MH{ zBJ=)8CRlJl43}m)Dql^sf?-v9po>Vq_?L+=5P&_nkO8DW(9Gfb;jSOK(0$e!AA=f5 z2KPx~ofD2p2F=*psI~$6J2GtchAhv+|0;*aatPwBwBSN>XtLeL0G3JtT*pW_t<67F z40WN`%c|j6W%cPZTFAJJWD(pOOLHBF$50nKE31ZAREo3>R5XAl-qjtDKB9zkRP8hPOq& z#qpW)BaXC`JA%RZqv=rl^<$)}&ko~&#BrSwUH`VU&k2g9s;vI=+>6`2pfzL-hIQbs z@7qfMCAE)iTs8YoT@H_CJF4C#ww-VL9Om=C!QAU3x$V#yq-v_-6`JfaMXBJ=rNK~y z9?DrF;nei&J1*uIQ<*U{%vmxOlcssgWOT*0#GtQVT&j&uN_&mf&)V1bp0mtF^at~1 z>Qg`vN>c78dvs4Dy!{#GJL(NL)PgQEye&e-Y?7!o@|MQQs=WBmvejXq#y4+wKrK-Wir9mdM2?fbkgz zz1iCVef?m!EYdx^e1_xR&(fq<%N+UjeO&ZowXi=15?$YinP!jF%-QgKeP4@yf77Nc zk2^Ju&f60n=BiAuc;Rg6d9BPi3=zk6z-vY4Pl}D<3kylS09J?Rhl&Qn4`UhQ;~@c# zAeQQ(TgqN&0<=cD?ZDEnOf;|WeK!-Jtt*3Us*R5ZYv*Fbv%kLAHPk*=MZb(*=#?k6 zXK9@B!LI3;xn180+yF2weSZk-(M)DMSV%ts>Hnph0i6x0B9;z@&1~eeR?Wq6-NJua;kG@!5uE9}&zuJ_gdo(+re7`~^wiFoWg%HYU6Vu)+ikH>kw-?!Lb z04{A8s(N@c&aZuQt&GMZ@zDg`{WB)sHXwxEBtDv$PKe>s4*PUxGd?}!&GZ71e)}x; zyUX4F3%Fm|UuiaaBmx*WV{!6mqTggT6K*G;ZQg|VM@{q#{_AGk(b9HOcPqluZgChkHQwtoV%^Oc^?ZA)4t9vHT38{J_)QaF#HeaUekf>^r2V@%2u6G< zhLRageal4cYlbrX{%Ir34WEly~{i64$-Zw$QGdG78SEym|or@g*UzywHZ$I)QeZ zRwJ%lr0lo{-qN_$WK~{VcN8`Lv`lBEQoK|})bHo@op?7b$9E~cCWMxyZAnqhSjrNL zWNIQjN2iD_(q&b};~nVaDZ2*?KvFxBeWf3|AuE(ii;#JUq0qQ&WAyrlJGoQr7IRXR zl@0uJLRyrMR@Reey3#}#mE;UFZv>ovAW~sd1vl>^*;P12`O`T5K@!6F13>L~Z znbF3*OUR_epb4Qfe^pJ-BurMPF=2vH{b1D^7Y!y;(L#h({V*Hvu*2(lR0ij{ldx?!l>?&K+tVgwB7qg%9GE`}JWUUv=e94ItJ z50qP(QlX7xi+ePc_D?v~?yv9I3@8rh#eVUu8F5v1*8@#@eHORd9V;WLVR%ate<4Sa zt_T(3R;V|#idW3c#vN$p^ni0BYxW8-$tG$Fi7-VH#XHGWppKlGN?fddRpqu<=x1#YWI z-l`cxCS`J5BoyQ5pHxy@|CRVx{emopL0!`+;# zgEH5HvT<|KEsd*nUOW;}IzGi*{EUoK(Rq>OO41jS z7saBiH%3)2wg3E2dUt>FgnJB4qi5Ui@Sk{MTlgb=ZVFdz`lEcy+0v0#W{r!_HHT<_ zy%E3|04~cU%RT6q-s<$&@7OY!&Wu3Q0fxnBHLf>}M@aci#y2x=)o3~{%;zzfu@K?F zVzM>Jge|!Tmye>mB_*fADPWhzHqf7lv*p{UE+mSPs9 zkQqWxU(D3b=JcAa+0ya6 zj4g!4XaZ)qG+jy)8Sm>ncUiq*lJRjt(?3$Gl(XwAoO2nB+ghE(;8u&mx$JoT$R=ZN z(8*z&BKk@JL)Bi@KO-kNllYeuCMDi-PGQCldY9BgXh=rq`SZVi2;)z@-Tq)mNlX6x zFa1f85^sM1$RvJm5aJEr%oq@E_Pqz6Xz7Ly+*?$k44XMfZ!l=dBQ6A7jc{6uUkyX$ zw0Kxe7MpBB1#4#jUj^7wYyf|cS9fYHX^P<;$6rGz4b^x&LfX$N9yGiW=* zrSuWPLygB{u6@}<*LVBK+1MCl^w0H(yoeA8$F(MNReHz>vkro0ya)7mWVmB3FzkfB zMhaowH=HG?Iv!O%3i*F<&$ z&I9R+Sh{D6aFz*1z)%A%EtD)}L7}OSTkUOLblO=0Rmsr9c#-TD!W)zYR|tLgNV(_< zJ(|_1==I&KYWErn(fGSMLMVpCXv0$31TL2bZER(Np1}jJC5XD7!w-AQH=sW84Fe_V zHNVL?Z|w&f*Qx4zM`ur;I0nu*Fx=U*`R1 z>ZWmB+lPbp<8_KIdc$MY2S6v!cd9fVdK4#3ae&0lShj7~a+<hBNbO^w6wH&c1NBce>|xZ80Uo6Dt%WMUJ4poOGLl; z_1zS|zGu^!8ZLJEkDJF(Ilboh?fT9K<8Wm2qEog62R?4ZJO*ZT7%gG<*@i=Y*Hqfh z%WIg<=9jNq*vuz0#`94R!w}1*?#giPMgV@fS->e$DT1A>&c%HU=~A3j8Odg+>w9m@ z-$yU>f%07G<;1sF&J@ufE4ZghGmpCkO&4hq8^>WOtj04I35(3t5eBeIY~eG*oMmdM zIRLt1R>CXFFO5|t!(?LNl*Mm}VKKUAnPE#&DVQ3LrbXz{U5eW{9_~U#E+MJV#zkqH< zBMp_#t52&|(_;ElW8Eqb^|op8BvuoARH;*Htl?ms&qUube%WaX$HMDBxMk-z~L+ zkJUo8;uGQ%>F5X&3MGlAuX2D1LAg%Gh-{U zPRQ^`YWgs#zPK|_^e$>{7(^vkrbWz@wM-bMqOuX2LHFqtn$(m@;<(j8ZU`x$PPqIc zy)uYWlWNLUd))<_x`)XA4xmok^4$9XpwWgAthQ(3$92| zkrvR_DRU;fvC{|;z?l%l((mm}l~T+YkJZL;0@AX9gvk5ix=TY zZR1iy6p~*kjZc6*8z;LPojCro<;n)9wZ|7TMC82~SE*FaYtc=M8{f3)Y@eJLXxjR| zhQ679rVM5j;!htY1#9jGU^*!_##fCcTMsabT?#UcspJWUZZ%_RDMjcLlItZ(^EJg_ zVPxYC0-{aw)&+x?k;V=VwOKcJxGDW|U3eoVGLvgM3C&$QGCQq~`9$IsMhi zGLUgqj<®OMrf*X<_crC)(xe$;B_1g=O>;WGJa zg$OB8bJBKE_-DWzy()%GI%b_QAs9uSlA!Cv889VbP-w43Q_dkQSR|CuLOqK9?S~YA zl)0%SCt}?7LpS$vIHrt=x+@w*Zb6iq(>c}{&>`Ba`ueP*R2^)Hb_6z5%7K_*YX_EG z-OSmjum@Mv&Z;q`=vZ_%f=wiuU>tPAnj>gNn`n0FB?Chd`ix{aBpVOh&m-BnDVL@l z6=K1xY-~KzL*qD=a{b6Qf#akp0`zQL()dHXN{<}XG%e%>>I>0-)@CRq$tE_*CJ5Xy zzxUN9P1NUT=HfE-sgwt57yVex?loi%BE1wZGJ@6npKWg{gU7HP|#qsj&shz{nH2UvthWN`5+b(chMY`>P?p^Um z7WCFQujOgp&km1f=f{tOVTNT=t+24g%NGp1SbA<&jR@+C`MR-*mhRO}CE^VQ~H!KLzDVMsuSR{6JKP? zG9H|c3uP-pi&z{ml*Y0eCQZTSQWXRY*}fGb(t(Qj`g9hC0bDK)i7SoC*U&COL5f?7 zg$8w62t{ZwKW0L-`?*EzyP3D0(cc?2&!d&~u)J9L=Blr2(QzEWsZoXr`a0Lg?H&-a zyoj6@#wi<`-pZ)OOY9cot&JGo)HFH61S>cJT$Y|bQ~vrM= zZVjTfW=tmBg268qWKrS9u`a$YVSAFlev8gQf2`@kU2cECIV2SiW0H|!q`_rMe#9D)lOf~cDou272bBFCp-SgepCtU4Vl zSgP88MhoSS7gT7*7Iwo!IESHV=F4EEBv?=&v4lLT(}F7!icByvxQJo5T_=MX*|?p? zOuqYQiMc~yq`mZe_RC*zX#pqSb z46jla;cU|%OXCWSUu?IAd4h^kV+%mLT0GE85%-da$=VzJ;5;kga}(Z-^vCjF8@0HA zr3YS6Jqhb{Vhx7)(8ryXLF`_(MfjeHlTT^bS^1P~OD_+I^S~9tZIw>jqBibMInbi( zaSd7vQdT_lUHPrneq`5emgLj!ikV>8IRD8Si%RTXbl&@Y41o4`X?*C;VpS&Nq_pch zPG^37udnuT?tRw$jHc40?^fj_l@L&``{O|d!?Y-xZdG2?6^rOi7?7)eU&SouqNTIa zIF~YCKaMr9v3RKlPwVxavraJFHDa`9MGkzngtnX!NlU>ELuSU*aDo=#7eQ*5Z0xeR z6Si2ci%ApLa*4OJDNLRIRZI!E9?k-Gac3cO%%p}|%vcrCm7D+`L(wTqD3oUFLY$g8 zi%MkHuUQA0ft5pz^g5O#V~loVU7coBVtCsNEvCP+(@KAiBlpQo${)h0Ti?vsu#ey| ztV%_vQ;Es~vGklJVh6JdaiTTj=NN0Ga1gqke3pDi&;f>~(SK9Z-vqZaGBVzsw2Q3O zg!1K=LT^2_w|b%8LYXWozI?q#?a^%sdUa|!qa=yVk^Y=7jcEU~(KDL0&id%kqA-C_ z)sIzg+qP5FtMZ)sI>8k}&-H?SM>sQ06AEo~l{yoiXe0l1XVmg-RMv^EZcakCwLeWr ztUAU>YQ*F9!{7JozY0T^kHq*LgjjU|42w}R;uZ!&u`vs}dJDra7)R=weaw3qgNZL@LK)VBuQ=wHpK%nz>m z6yHXLjBiQI{pXZ>^W9GXxdcucmQIv~erM*{trqW9R@wTj_q~ z!@~p*Y|qbXmPA`8^l`dlmuT*q&1NGNbz4gGSwkV3G8$rk+3N^)H4``&0v8XoWo{F| zxYIhZ&_T~hwMX}Wq3|sWDd+Vd(TNkaF@dB)OwsM~M@p*+2_fa6X~slNLeND{IqBk% z0#cefp+$!i62{#0XU}~pBZuK~R}bL?iL-k&v?zmn)$ub2K;na?j9?KRN2JoH>-&fy zHv%8^%SJ0+ip9P70nlFG*RwkWqq}F~BB^7@q~};?M3!Wmuo&n>e9E})9n6?0RStsA zc;H-IB1yfE_ZUI*dj>`oo6yB?hEb9mmw<24t7uXT4B(K~`kMVUCSIWLj9YXOp`yG9 z1XtTn`3byU@->2YN%9JpANK;v5YdNyR<3&^BIHQIH!e6 zdy?BRf*-`~rhUXNo-~L3>czIi37kjbPxTZ*6M_Y1boI=PP2*#h_O*P2?|pmzn)JPw zK55h>8{_bb4(QEjb?|58ziw=hgfUurEMp>R8sD_cJk)#K%}5)YKq?X4UL;#aD2#q< z3;{5&3*AUP+Lj}NjZ^Xz7>Q#ttBHXc*#>LoKHb?QEwwsY-OlpX~IYPl!KR4wu+7T(%t?jI`T3`{DXNrhEAl z5Ccrh+5j$=qVM_ollJ=Y%5BFHJqBL-gl2rA=p)Z-y?zYyrL7+6Y|ye#i9w+=Tjc4i`tsJ06mNY7$0R+thE_6oOXD0^THAe-L*+_gI-bjsZ^;m3_342c_fU=hOu^7r zs_XPWQ$%Rf`Qa6Yg!Mt1B9FX~(TO#Ftq*l7Dwdwt)sl=U$s7U0n+nIma3+$0eU@KD zupmw>mFl3k?T$h0og*+=7}e5X0!}bhV#-aR%K!}ZKwaN(f9EO6e*HL+y+^c0x-&N+ zy*UcCvq6v;?K4NPRF&FUeTa!m{5b`>Pf#H!1xenB8sY<4&&cW>ve_P>9AKDV2=`E*6z+ znh2TI#Y8JeN4kjgi+_=XLNq=rCCXW%d$i7rZR9ll?B;XR9Hh^3{TLryM$V9$n4*J( zizZ}%Uj#$ZDNEQ=vW#EM48kefA-GT;i&*+vTje4wOCcC9r4$k;vw&o#y(&xwd=-gL zR$8FXa)^+AR09m!H7!8kMW=cxHjuHQgADLlf@Eocid=lt^vQMV#HTVz9HY9Xw6HOd z89AQR2}U+cJw%|0%MLO!X1(3#3&}kk0;W^Bhag#oLVbrK^$ia}d^i?Mdt0QCCcr6b zGk#FHn<3?(ZzA)W7cCQB1g1r0HLSGS;6JCUO*@qqp!_Ll%Ltd*<-oiL*5~%z8;y*_ zOCyB95*U}mm`;dct-*|MNJ}MsWG~m=@aG*(h^3TwOMbqGW94{U<{>>~a#;t5SNk9r za25t|E~4A6=_5CvX=25Eag%6iz1b`{hg7vng*dKND&@t|jN|p4>+9H7$BTVe`Kq?k zD3<=;>ZYatIm8}Lo7s6GUTau&#OiBKXAqk`sqW!8GU3^10pXlpJo^4eLyn3vB3?TK1*y82*hl>f&uI{`E43|3t>G`-AvM??U zAFF-FLBC5@lXzStb|)SxA8Y5TR7zjr<<&G_U$5_Ow%2#kE?){xBu#q`h76=4g~YOG zHsdnAGG<`rW;`iL!5E6rUeH0kelEIiE%Z!j##~x4Ntnz`bAx7YWXuOHg< z5!gk`{$Ly~TS6u^ECnYubQ^|5(Zm`*Ic4!@#IP8xHUQe(!mm;m;bf&x4W&*ttWv<> zSHrM)kVU8J6b>|d&J?E-(siFyXnCC4eNWl#65jwqv4G@vu7mIdA_gw1oX{n)QDI|P zkLdtH(7$5c7iYoBedX&h98RP?dFVmNmSSbZP!}r2&u)I?W9)71 z26Bt8IZxuI>aXIfBE`khqQ#^;7b?Q7c<8fe3QSpaJZKtd`BRA7QA+MHs9;Q-fL95{ zIQpkl12iGD)a+U54goz_!O%1kp)y#PknY$z;H>(6vRxfEo$)|fJQBlb_1!desu_^{ zlg4UoSHn;_{a#5SxHd_V~uZE#=`g&h&DKaJwXW3@}lR#|0jAkx|hR${m=pKrQZAI>7NCB5a z0MgD50R&w1enHkelw2%R%qg%ur%y2)WMT{?6NX!0Z!tFpT z?JbMRfI`2M4HXfCieP4osi89&efN?eSIRIQFGz8|BWUC5{-I*13q4g<4V4~TI=#(u z`R!^cOAF^PtV+LItC2|8G-?{>c8CDj|C*M`fL%OxKJr5l%aLKF)6oWBDbiV4HT*6$ zdi8Gxd~Z;xR9^2{jVomc($wkypY&zpf(GG}eZS zTp%;U1IJ3k>Z>sTRW16@6p`*hr%mT4d)Sh}8nR+(Gg!K0Q9P5##>pe)LnpixEwf4K zfK_rW@1Jk3x-wcNEeC!DXU%{vtJHU zY}!gj+!CCa6Q{+=_}}3$kEqYf`1*qfhUKt@mninIv~TRFBO3#A9JRLZai|l0%=vvf z>uwQ5Te}H-vb0`QZ!ADSTMdX|TpF7G#Hse(%{~Cy#eZh@=F94Qw0ykTuMgI4kPm(C zeQ`2K(Jt+F!5G(z#UOEU)7Liwqgiy3xtz3q7rn#PL!J8$iDyfX236OK`%?3oa1Y=Y z0gjbFRF3|z-NSl-2{0^vDp*KZMqx`il@_!m@?ulAC%|B-XrbK>7;Id9`ft#Gvv+1m zj_XDgT`O#%iz$E!nVEnMe|rsH0lkF^|8rxOm;eEAl2l#gA;J+)dC$23DRp-})ucfY z|7Wf{r{97)T=TpIEoVKjf~O~8)xW@4v#%taof^ujH}tbyVO6rQPJu^>%2>B9Sb?slo^v&q=rY-pDEAQ1{44?yi zz2v7i?WSy{FJl`DmHa*$3(};a0t;by0SBdoNnci&iQ2fQ`|yB|eM(-<7v-0uRLJA6~dl-9yb(c%e|} z;A9Zi4Qloadqag6T-I-^v+@E83ibuDLSHy6=nM6Lwa}3i#C`OI3x$NcLA-`G{AB}_ zfm^t#HdGI|V1iDuPq-{v)m;*@BVUj_>yE|i31-egNyxL#6YoVeNhT|Wjy3xebw46? zuo{{SN&-?Sn_x)=*jCAMOKp~UQ!>H&L!kH4xH&bZ(0zvR6xt&}TA1fNZfcO!Hs!!G zcu_BhQaybNW^K2;nZrC($2k@5k#D#8C0T{0x>OU0bE=R@+jec9*RM@^c5cN4eYS%f zyytG`Omf5a5U%^O1#SIP7Lcj?oVOJmP3T|E+Y0IlxYH4PD2QIzdz!)O*rxA04GYfD z*Hfu$tKm6V1=t*fzEOf8bTswQo&a1DdHyM=0cRqGMqR3F(jdJCdH)WhvK!?^Y@cIlgE-FQL@rDX7 z$ZJTERJUPQHM0sCb9w>yW_(C=>Lf00XzLTXHcbk3eGU?=FaxbY+b#G#QhpU18e)P z_}f!-?`#J3zTAznIv5r-8mwOoGkMGG{jewkekdxs&;T&(iOmV{af-eA1u8S>t{^2u z?}iFlIK4;8cgfA!LIAW#@6IvOG@3mbR9DDtQU3S(O{tJL2`i(5lGXhp_wuWtByssD z56S|uH`MxCoqRdgl-XkJE{V(2h&Sdi&EV2^#<$! z8_m+>pdGfc?*aqcPd3}C?I=wu|D`=UR!q+9w0rM;a3>}K^y^!4vC9g)G z#GG#J{lG5CS-6Ar;Rt$lok8rTz$EfO?0$|1&8E8I3ONN>CGYQi?paePNWiLJ2>pWL zy9qF{-1F=*gu*^yZpxa+bMgsO=8sc<`FP}Ctd4WCnxCo}9vAf(<}utn21o1y%?;hh zpC1>6)x3}RxF`bTC-8>>E|0wEc@D~30P~!&Af2I0@u8h{A0ic{;K8AsQfpL?{D3zpD7Gs^6|w?eQ<-4~ih zF0$DezJqc?YSw+M>vjugkdLg!Fc#e&YimKHhT3lqOs2Xgnnv<<(;82o0Ydg-PyG$qah=81qQsVs4fO{O}^mT8pu#FTS=)7v?u==G%#sG6<%gBujP z0o-=WJYk;mK$pVN0zeTlax_cD3|MjQb25;FnVn45+88KLEJ@uS$*Dz#z7VJl-?WVj z+%Geiaf2Q(Q%Z~pLfI!(T8PjkxE^HwIc%g<%&*bw%%UFM_Pp|mT5wn=^wX#hq^`|# zd6M!=#Le0)&jw&>jlip*hnuUjGZQ2dssTWX8&0!_`sY zRs6&ZG(-G>DR*oMrV%$Swpn)YQN}GyV@A10Exg`a#Q-ER&v_V=Zpcsu0e%RWXuV@M zOO$D+5isFN$V5`MuZsC^K>%!mM-WApoJKnXYdruKq$em)64Y~IUCns_NtC8u%P>z` zEi-hrU`lFIBw|W>mOMk8=k$pw=Vh|+0KC>>oVT7e z`y-$Jmgz~(-&x3q;;NwMMGu&&(Vjgf4GzAFe8iv*SK8+%m%dl_%#Rq- z(*VA&^UiwxtP099xF4%x#~R3Ze5d77hj;OK0PhBCyDFx!Z<}c7T`F(`;w-CMG|ZFC z9G>Qg@v_R?^KMRmOObR;(P=b*m9)!Xx1dA2$4sA@Xbp!BW*X%i^0t{qy=v~&b-n5H zXNy=!7ld8hU#FTO6s!4Kuu#8`fVI$f$}_CXpT}wB*KZL1dyy-Sg;~oNX{D$z9x%u2 zp~aeyPB4v7SwXpDY7|=y->5NOHVthWUN!&qT4DUp@HvGa!nli>rhkV5{_X zU9EXfn}(N08+}ip7%w{=?RDkx3OkGC;efxhdj0NGr?=I6b4eb(wYO5<>twrDUb%T^ zm7jEQ-52jIU}N+(YgfF#tczuLT>dIkxSXT_E2bmnBsXP^QGl&dR@YsN4S);LmQto5 zn(t&>R$f5c3U$BVL#QNfPXgEZSBmR}?C~N$dTW&0O{{JTa1nB?(4Mrx-a5cq=tbdV zo{R&mh2EE@=f=Fx9vt)vs2K8Md+~`W=S^`QmsPN&e7&?PMZ0vKc#{d!xDVwgYQl4p z%(R2GojzY7K*?ls+KjZIJtct%IYWXzCB_6{mARLg#_$e2a{9c)b(*gMtRCx1?^T(NN`|{hN~W-c^XgCWV_cgmvc{Zv?Eu z)I5qp^{$|-JTAt!t;gRk9P|fX>S?_Gm&r8B8*RR}y$5WS8hufwkyk$7ImJliZqR#k zeAe)9mY7p1>ni3&f>J}~yt{nx;T~1X7gNP&h5DeSSKbZ-U7#*a999A$Xw|93QQyKu~8IuS$@#<11c|dT$@K;bQ)n< zYu`dDml^OFmLjej*Il*kvytyE2h5qn3lP^(=U*>$pVQxr0XzL|#$Kn;xPXNnp8j?} z1W>l4OwDr+X8JqI@qdp)44VD$kZ~RtnSkuc2-kBObE3T8*P`-*jmdWNLl2TNKdi^g ztJtR`9;Q!`PUb>z(UM88G3Rw%5U-kPTwofJSFM5RGto4b2YD7x_tpP_?p|#hEEVme z4sXl;iDJbZ%cgqEmTe3R+$S#b0z`pZge`Y^FaDkX9WXMg*0RSuH2(|Qptx}`% zPf%B1l2}`)rCG^rrq2cMe64!8)Y8|2jqstpjJQBt=mdCEF`bj{;lz%38u?%;{3p0{ za6RJbvsl%Kg%^k?)CNqSzeB+1>%ATf;HzhopYgX^ugmu?CtgtQ85b>d?{VGJNpOm3 zTtSGuz`g9(?KF0mXsEVE3iE<)p%$*P+vwe}F++aXe(T{&$`LD!g%ci4sKsdLGF_Vm zkT0#Ps$Dh;m2JfBo816rpf5l@O&k`OJ`+wO3R#J1%-MskkQR=Ei5$&R%nu7Do<5rs zSTHG3GTVO2wDQ%@jx@XO*D2pFG+kIEXk0+|1w+E60fHhGE)ds8$WJvJttAvGBtN)I z-p2jX6tNA~TqvI7Isw-WL;nnepxgyijIomN-JCNT`bMlsT`RU;7i%6S`hID&b*~y3 zZ|Db#%B=!^&3ZkU+KAOq9M!E7f8Xp5U0%pO5>Ml`l!K~-V9**Xcfjt8n%}La6cvJf zK{BKt3;N5t;HGfNnh)7IdVLleO(Avhzb94A{uO~x*pYcx4WO-v#_db zx7D-Ph|$oI6ppK-Slhx8D#q{PSV_gxh>eBclSF_Y3z-ecqi>Ey_a|%N4Lue(*%&L^ zM{Qe+hZdohnhj|~b@964Z%eF=YN?qUVF<0?5olduTsL7;0B)-PjiQ#Cn_Y3c>$Vqz z1jROU0JWZS8oLblX`ZosMm`ey&&v0n7WjDW>O0#M^7U#{k@l;G7t1hw4Ti{Z5stdz z9;mj8vF2DwIN(^g!fC`ts-=@#EZ^Sq-oj1a2jHfmljcjX&S+>43#|{3JE$TB!x~Yh z8iKZhmt)W=py)R2G(OpI-{EZ8?RIxzr@^X@RmjD4f1g!AnS0Q7VQ&_kMt(pK#IS5| z3EquPS+5exTkq|NOt8HJPRt}=6taWFdRRC$J|9re-UG4c9YHYiQCWmUwiC-fI)bG0 zp9gOK6QjX;HTUzlecWSX;>Mod&rC{~CS$a{mV8(#|0g%=6{#_d`z zKXD;iNWj8}K%Zh7Z6Ud-`*u$APqRl8DaMnHdx33~&qRakF9KxrHB(Oc4d`OT8QTon z3QXfV@fK}dgw^fl6sinSW2!3Qr?$inwk9;HLTy6tz@bkPFJ6V`n9mF|xLW7m&Zw%2r#ZF{iruJq!zW z-d|iLyhyskFIp&OEEUJX1#uyIjY4)!M*J92%Z{E>GJk!2dMW%?n zWqwxq2IzguDUS@xc3WT?A!Hep(R?6m6qH*^3SIw#IAE8B)lGRrM+$ZyRSyWnT7EVD zY%}sVSjM1+eY|Sx&$T^g0G)B2(}*0QF+8)_Xlo+*vu)58%5y{;k5!QnbH^q_PQK4) zoU#c>VOELXoiPJOPS^&m6G9?BN?lRhMZV{e#b>AIatq=XrZFQ=Cm312P?xvqcC`3@|>%WzHz>4WP z3l%@51wx_u`)^%*hc@u}y&zA+syRkOweRp93!$Jq3U$MA0L(xM;yN*d?3l(B7tMv@ z9%h(6PY5h0lApkS6B=cFMr~a}n^SeyguNPQ57}g#KDoka)Rpl)S`A;-gf}(3MmPEP zsR-@Koilmk7Yu^wtFbqDfGuELFr3jeo>Tez;GD27;?hiGzl#ff7P{`DFSwxq8CDr( zi%`0{e;9>1X$x*9tMD?zkV4N9l=$bzAJiX>&@VTTko9<36Y4=g9_S{_+Mu)U15l3a zWZF4^G)rNOwhMrXBG&ANJfSMdSxh4fS&fGPIh&Kuw=NzzJ8 zpE+AYMLsicAyUDahEDap9(GvU>2rfXEMRhT15VIJlq891>|`5}+={|8vWZ}YrqRq0 zJDn3xfYfjmF_9BYBMI4Q+ycf0xlk#$u(LMbtv@%M#>g8S^eSV{Uz!+#QZ^SIpi;dj_&StoIDg4rQr?GVyCLT^hOeOz@lk4yFJsPW)CK!yb^0`Q z{&W5}g!_N$aZ$e>^N)|A=K}CCWf%p<0Bsm0S>5L!9v3~x1SQFj`1Kfl-ZH2TW}$g# ze1yM`Kjw>mjIIp$!z1it437<$$3@NKW1gK$fwkIYo1TZDQuaKnDQLjT+sVIaGHn|` z{hPED3|KMk^O|0mf(XW_VZ%}k0Ns|1B0&OubEntQ%e<9yA_Hs9Kfw(0PLN0IFpWi7 zFb4xJL>rpJL5fS8^@Qstw|n{*bLUVzO5T7MIG?~deS*-Ybst**^+SjS-7}=$#j4{6 z|9T9V$A=4ZI>*nFA*i8$n4H=wyv+F+{X7&t!rAQvEqO3|joP&|IA;2T{Iki|+b#LW zh;}}rL0F%`_n~;3RXSh4HdJKFF*F9!X^SqB=j|+Tg)Sw=C zeGKy$ZXUyZempK}P}Du(kB^}r1L!fWCQw4Y%zhpUQv@$(LiI;*0v1q!!5dmIlMBF^ z|N2NbEVEPd0NaM{zXEOO@ElUWbqmVCQ0xTM%@LohJGd}$bTTiLgPIRVc? zqgyCA5T+Cgg3EXVR90OpU6zLMI+AB^NbEGUb?agp`!_gO*lGMo@_K025Dr#cUg%WU zyB(HmJV)~?{zSku7IF!%&YQ2YQ4}0dZO>SD4hxr>uRb%_TSnKhvhE9ptPE%K_$u*& zVULu$7C9&74ISB*rtwmcfTN*vUuiO{t~+$2f(sF6^bTF-`6&f-XzfCbmvuqwf>Y7w zRJ2DfqaHGWw&yti8ajysqy428L*H+$D8mqdcv~KCd%pxE2KK&fuYOo>EN`B0P+#Bd zU#X3|Be?JDBE>!$`ZtxtO=$txwT<(}C~xRz+STgEP^aDAl(V_feI{YbmHWwGne zi~Q=YuanqI`<82Sqow|%vmM;)}H@rjvwj^&SSw6?a z$BBbHZ!cHzvO}~GZ|D*3aP;1@Gu0-nFihj{7Oe)!-<7~^p)eD(@85^u;F5tG814fe zmy4>Voa>J;L>U%(#qL4weHuq@@01x)0p*_# zn>@W68koiPUkt=@1%vaK8AzsgluloNRc0V4?2e%5F}O8BH@pRU8rSR}!+5M&*##8s zqQ4xm+moXx*N8V~n!*t~;%qk$3lH93^0u>3thiiZ6e z9%CA1>cOp`Q)=*LkAc;YSVQkNC|`HIft(mqQci6${!o6`*`S47_lqa}4Z@iWw)!urc^Z_7Z;Y;9denZ}w|3w15Y2||}Bb}l|4|;*Fkj80L zS7+S7JIho^{=JS}-fFZs3vTDl+3+1S42sxOQs3!vdk1y>Juq9)SRwB*0rfi^yZ;)J zN!}4Ge{<}D9^OGvn?5M$GFjsi?gsQL$FtquU0x*GA%2M>al}{&^BrFGXlTJqKN!;| z6uPX-qdC6-)vDmA54ZH z8GHvQKpQe;sNTV<($H5D4JF9QO^Qt8Q4;U2fbj!hK@#j^f}rekSey$fz*=ZWrq3qJ zFv=*@L&)NW+l+3W9;EjWs@BmXjxJVN3%C${58bBEn5>im^w3^40Iz2A^-cSmC2K2meO}ZfLV<_AM z)GHfuvZDBO@1I5N!3b1|)$}ZR`Yk|F?byF9^ps3kn^w2qMbup`eouPBD z6z+Opy(fKS3!qV#%BC?gYa6#ssoV{ScTN>xQ0VSRI~6Zo>@IhWChx+O^wre;IVmm- zwB_T};U#Jg%K|&}EFomNDx_8<*v#Y^eThM=2X* zq>5G8!!7tN?SNY7Eif9;9a%IHu+ftg|X>_N= z8RgaQW|5{>w1BI6RQ5TfFrWu+4mOSovG&=lQWsyC4;k>1vLUUA6URc2m{>vTNJ?@SKw)^Czw9$~^u)a^j$%ySO9a6Y1R0pBLq=oJvpZsS%?G zR~N!JW!(;0XOzF)Kv7wIi2#Q0AY$k2TOu!~<_$GUoYW($VUL~lB!`{(S}g#(<8Igu zzy(Ypb@7#Okqq<{2&_PMlhR!>urkhD|ALmGh}{;Hb-;_k#TUkX@5}2c$M#{K*Qoxk- zU8#w8u*uU?tcJ!mbPp9$@7=|<&c!o?187eTdG#z}eIPA|aO?{K6@HDTu|g~uGD;H1 z1@sQVIfVrc?O_jCF}=qx68`5YR>%ueAp^tpz&KVojf;eTE5%F+SR(1(0EO-tcmZ|& zPV5(Sg`nUGkr&W*8p8%HXd^TLToOr;w&6WuZ=KNe_mrPMo&7Wd)=K%CNhT8P)XIE7gytyA}f zV7nUDlpXR4tA(^Jw zfeO0UVKW6m_ba%;#bvTeU3b~2?&1w)XLm?t+`w8r%t#7de@ydS4OYjH10`8opUCwB z-U6SKH}qrDaPJAg)Xkub=C_J^Eli^Ye7%W0eP+7jb%*bGNZvExLe$dDt>;|xW3*6) z($*Otw)_ihFVrddft?6IcX5fm=N*){uoVGJNvA1t^_|V+40&Orx{EgSrVJ*Nzbr&T z=>ZQ}y!Br|?=Pps8;X6e@ryi-LEE?^R(F?E;xj^%$Qy94V!Tm2!~QJff4?oq>9dOvZ01oY6Ew*hirKej4Tfx2BSZc)ifz>855; zJ|2F%;J1n&z`>Jo8YVIp=?lEa8w~ z2mxcp#(fy^lqp8z(n>O;7`KOcuEg2E0n*HmjAzelznFNwxhdkNX;8SM9!b4YQk}Ai zss{aVyoEec#oXr(jm^TAXIQ-K{ivGXG-+=tTI_ThCUr5g(1Z(kq=LNS4#pi!3e`Tn z-sF4}%)&Tk7XXnEl>;uG*Vauu&}_-LOeR(qG6z!Qo#_TC7l}}ekq=nU>|f1FgzZb0 ze8}Q9s`V94qHeO8h~Nq#`))|jP!Z&d`Uns+IpYlp2!C_fHeNLl$Eh&1DGpg7m}I(S{f#eMPa&+hMu84-^uo()Jw%qD7YUmDRS{@8;F~ z5Ry*#En60ZuF>Lf4Gt|g@u{S4)XqWO>YYF*%r@eX^3gKKU=e9cWOxOHJ~}{ZBR`H( z<--__&7R_HfV3r^P2vg&u4ZK6l1+u&=hye|@g>pFS((9K-oKUQr%bb+AeLyduxcrO ztMvDqzCyH;!C1lYEa}O*-@nD`w${7kiP>H=8A*yrK!hautDl##F#8^8!bYupk@u*JRye&qU0B-^@=Q8iiXa>GkX9* z8|u^qy)%hnbC4~lF3%eCDx1=z&h{Pf_iwU$;}2dpK_FzF9N6L)#j4bl8G7ALgsKXBpMr` zfFkhLMSlRP!nE+(;kaU=4kpVzETmw8XZVkqO^FN2_D66HZdElMy z-36}!?NisC07_^ZG}0CUJ+g$4%gJ@Gb7e_M+bc%BRU8We3;BZM0~Bzstnv9o{2?Hn zfr!aJERJ%(HuKR11c84Tyd9aCJ-OKs zsYe(MBa0z!Mn*tnz)f*D1RT2PD?}ubyJ#QY*vE{y}Eg8cKbJcFi9H6k-VuvZv1fc~o;1vso>;&$AFQCPAb94i*& zr1LitY6Z0m`p_e!iuv>WcaQ|qfNtyf_K1>#GZBcNV5u2x(CE=Pq>6dZdrgwC(6}NM zN(&ay?IH~7hL1X$ZNnI+i+?D4}(4Xyt%~ zhAzGxKwlwJw=YEh29&R21m5IPPxRI)dtFn#q~z~jkZIBdT+(OM+m`Iz1#Gws+d_^O zi3Ny~<+h&KxT&ceur1+s0i8$Md3;MyV|oZi1% z{(`#SHf4lMXbLuNM47lPQzAmyULOJ%`KXBFrr@wCMu?j#nN7AIWY;b*T?Cu&GZhvX zt59JoJZ=$Xc@p4v<8Jo;E$erB|KkS)pqswl#NULnKvu)2aD!iA)$8pGvJgPTFe9>p zs`1(LjYIM#r&aJK_9n|$-hi|Gil@s8NGmol{*Yf@@?+u%S?pfX0a8JJ0{;Y1O9KQH z000080HnNdJZJ}CQ2+)404H_@rFEE#nJ2G*Q=$YO| z|GU@O{e|Z`^j+@nrQx}@A*fCSK_bDA@2~xVqMuC=`KMIm`^$6nk)uOE?-;Bnjqxu1 zZ@B-OFbWW#i09ftW*zjK6VXw`)7D1PVCO29W_nho;gu(t53oviV#ki?$liYhARE0ut}im_;6T){vg-Gj`37Lb zag^ckg!_x2N*j#0v_nXbD!Ha7y|M8PJM(mPba6i(DY zg23nZ|2}WuU-tQs+3!2+`ztrwwTzq2I?FLvuyX9gzXngkephnTyW#s`IYCIGy8S6G5; zUzUEIeo^nMVKFXTKWdq(@#tGQ?$}?BLI%fSXAa}SQaXy!`rI~T?DlCCfn@Og^}_x+ zrCWicABK4M&x|zNYpRQK;F%sq_#n-h$2vf;pXwUKd^5mPw0gTHlY+Yqz&t1 z>3JOc=pD^|-$5@D;-WU`()%Ug)h=DpOQ4HgnsK!KkTwc}^Kow=Vk$@~xW&C&Bfhwl zk@!I7k<{TRsak>7@ZlMDe38)Li>nU|+E9&mM8@(ArUz{R?81!HJBBLKowzE)w8PRD z?DzO0PyWQI$@(AMqXO zPIEN@uWU8OKxb{ug5Gh0jSefMbAZtb&q`LH9~d*#TGDVD(#Uv2mG|eF>G0Y+IKD>+ zc~ScaWw59}7E-fq4LgzPG#9@=pJNAjz{xu_K{k|G(F%|%IPa|;#+kl;uagzA2|02A z1WBNj0X3joWYjwpgvc2&ScsAp91F$9@h);MG*_?^l?^%&V-Z0uLQti5EUHi?juEvZ zJqE)?ug+J0BJ=Tcsz0Q9z>n$U8h?M0l4T;`q(*-IUIZMdci@ot*+I_*HuB02c1*>& zcJc}i#7>Nf5`BUFH8>14kRY&8e^S^+C?O0a$f3_c4Z`GT$B|9N!lPh~Lk1~Pkz?Wp zKz)NLsuSp3M-x;h3Lp*?fywz;)ZyjAIx4em6e~Ji5qmF)iFN`v!HYJb>X)wQ+SO_V zi-}gh+IryQ5LXTmaFi0u+R;D_7%y<48?s|pfDj={R&aD0R$KwLgI(+s!dPLEoC+$? zh>eHC{Kn9}xpV*i%HaL=+~k<+x%G7}&^tKb1fE5p$!y_VQD-H!xWVx}xY4vN9(*rq zZ3IBj4!zTAYI%LMUaT21i*i_>ar)2^_OPb;UM%QzP}S7aeMX{TSr0NpmG>r^Fn z5Cy|%4!QxbiT$MI@&HE)$Ot)*5<9dxe9W~IPtbRK!L+XVGc;{oi+`+quenZMbj1e4?V2Q#a~x!ua)GcbqGqWyrZ(&xHniJ@1#>``-!h zajw5;c;yqexr!A6hu+a~PM+(H-Ul~4H=+Hl=2 zyr4;OB2GEpxFbU+Vp;?i<7pxk072O;Br*pG*lPqE?$|r7`u$a%UB-kN=zBSio!<2Y z{DHTVkd-({6r7ckpx^^ItwBdt-06p?j?v!QSbgxtMW7^u1^4A5xU}V9K3IW%i1>#r z_Z~YIl*;4pr;QH)ozy0L{$Ad@-k--Z`mG@GTYkNl_Ffo4-gQ5hG1tG*M*u-0Cw_kg zixVR|irTi@Cj)HOGT(?=v;N=v&?G;DY@~O?(Fr|%!UvuxANRRWaX;^?zrX*15Og9P zTusN@KHkgUfp)KQ!uQvXXY>nz@d1v694I70dg|L0xH8eI9Z2xcNMVV1F_ER~(_<&u z@R3YOoT!dULg(=Fz3lV>UU@=;-qA2K5h&Ow8|sagP>3Dlmr|*MSGQ9~aP5o0CD2Qt zixR9#yn5HmfLwyB+69fdiXOL_%sEAV4j)q7t?(E#84P@brY3*uaKlvyR^?Ug_J7*% zK!3ge!MWUMKP#~n(Gxnf@j7Y4jRzOB(I?uEcP=u?wuz8eaOk}tI-W??Ob1A#p-O{ zK&)(pofth;I05IX0Boe-a0EQiyGQTf7@3|xY~|NT5`oH4Itqoe(?$RU`4L4SAZe=z zoI<^0*b53)ZbHSn)*e@`4UuY^Oi&oPNI4I7#KLyft}oCuO6*V>xY(g7M?omeg+*(p zv=pF-9?s-&G(qHQy+c)AM3$cXp}i1Xixov~F-ew^|40?f1wn;M`FMz;kDn2ZI9peO?2c@~fEFZ)ZEPf2X z&W$zzYkE0!f?vvbfYtetm<#wrnsKh!gp7IzqnJUR^{x~EL7DNP!7nhT8?w>1MaW*k zKn>=jxG)BDki@iDwLgfOSo`nT^$p`(V6Kh$gvay-;#Dmnp0xq=j=?kSV8tsjvZH$V zaOgb=onp*4iX}cBvzGH*(JJ9qkS6(M+pvAXG(so!%%{W>t2=CG!M;uRt5g6hk3t-z zPJ|rTI~q43quwD1oz$~!EAjRuBep7tfdWpNL`FI*#d-5u=sX9Q2oXCho#kXI1~9H(Q88RM<6&!5an5zk&DZT&w4d!|Vw{wBH_8x!}coq>bPy@B%sz(5Oc2MuZ1^EQTn^%IM z*|Rdv0~o2(w!LFu)2J~Z669GEn$SBqpn=b98?n(7z{&PmCk`zdU=w;4nJa-+Vgs+X z5znRfan@~vCgj*VBx0aO$_^q>uu(R0SOcK%eGh!{CVY(A8sn&{HhA_P^|qiFOLfQ_R<0Aw}-#ru+bWXY2>DG#Pz2PY{w z7aAMzB1=n@s%jB}D#+EEP*p!B-Fz%3sN6p}$T29GSV#ntHCdeqf`}b+lNJIFMn~^A zE5|FqI!~eEb8yc}!a>yxWbP`Cacv}Uy>QQZj zMJ~pRimq*~Mz9zoFE02;(1b1tUt9#PiLS}&jHp$4H2E_j_#+{{MtO( zi#?%;9*fl0s|Xps2%qooH&S1z*uTFT7H;wFat&-e5;omOKt`evtds7a&*$ev>Nvly zm~|)iicW$Bn^3TAGREMIIN82prrM+{R}q0lbx~cUEobptkcx}y(&a_&uzG`QK#PmO zMXv+(Y)@E)t8wj7<)wjKjTU2AtzJtZ2ox!-l_^-A2!e!lpA;W%XC0~mS-lkYEPOxF5I zzrN*-rwxFe;?Fv1SWRn>3(L~cU`e8aP#C#L$Gg%Kp19KzD-`1*jrPY?`QjpF;(QN? zCUi-7^}K&F($y(PGSW+=cn#>H$d`bwK?9ZLo-B6~{Fw43E!UukT!f*D6jNuE7BBNi zziQsc#18udG}+$FCpEVW#w6@L^E~bMmymwSv<_aW7iQ#OSy`Z%CKFT!PE)K>k8mio zgBf@Y6wK`{M2r{geNiqfy0o;gH#X1)hPbyz#)Nm|%5#I6220X&{D!Iz5WNJNs&V`c z4F)lCuzg(*VP;KDbI=+n^1( z@?+c;9;Hozc?Zn*gfX%=g)u8=mtz+4q8&uXBE93{yqGAMALE8;-(Q^y+CjqR2~BzO zXA^3Em55QvLBL3~5U{b%N;lscXSLsa8ww;rqzXZqMi?30#;jguY+pkLvei8HAS-wB zfFS@fYo*U*CMfnarFgF^%INW)4acCzRNUIThZM-Gr^Yd|AT9)<)C$WDI5gBUrfk&7TE zHlg6&p)e+E=G&8kISC5ZGjSCu$I+xRLXcGBf=wv-`>Qg`>R02?-l1}%+QMXoV6Ip< zh(NL?+xd*8Tw4QqL43Kdkz8FNl5zAy6&{x)zTIE5pCXa#Ub%Wa`LFTvbHufghyJ;x zKey!P^g3OWPL$uvXP{7$qtRF-w{NgM$j6gdN8GkG-r){^CN+|VogSbbDFh)GY!nvn zQj%(aWsZaoO?d%V$Tgub#!#-hfb7X`*E(&JMO>8GHgOdy+aTN5hJGvF1Cs&tV&h22tk#ui%QX} z_zAN@07NDczJTsGe~zh%!XLq(N$e8DKmjLpQm=!J?A0DA@kz~iC)V+BqsXZV8TAf9 zXvAKC`63L81^GeS#q3z}_?F#5h6+vNvE$&Bx*PzKA_8V)zYz9^L8tf4c~Y_;t%H z_JT~44#a_tLWV$+29l?0kXNJ%0btpS?roe%bDjB^D_Duj2CX0k2^n<&_3uj41+Now zogi3U!+R1sMVGxsP%cmel4`Dyl$ZnR6#{Yq(?Bf0J2fFA1_MzihX%yR!Q$M(Aun$O zdKj{m2Dc+_`Isf<^HQbb=Lv^eX}GJOIz2xCnefF$VNGcD?8gWB>W$V&5U)Y+a7p;; z*8!0~61^t6I>E&m*Wh}9cq(3_ALis5sLv$i!)2TcZ5vLQVRSv8#?AUVSFi#c(5Ud3 zXx0DNWrAL#oxQ^=I6RDw-ksR02so*ezUzK2FxMu?PQ=Ofb7q)#HZrgxXZaia@`}Wc z1VK9K5U)1%vBTeI4{!EXF+1T-GZHIAY?NR(&qk@6@hqa?Fanlz4t8RcB-=jb3bT-i z(Zg!@>R{XSEC&*UQ4=!qXwLi-KE=V#D!>hxK@}cg$rE-;YJ$jBOOK(jOlel`pM5m3 zt%L65BsQoRp}kREB9t5*J$u+BS#d=+xWj%QG38_SooI-xB1%=Y2tg4|$!CIeSxjSk z17ODuo$Tk#6ivy~vR6cw2xau+5q7ANSAU6_=?l~;e*dR1S1TSqj?si3Q0%C@G`Nb$ z(tDBLs|wq(>zHU;cAJe&I*a`R!?~ge6wy_HLkSXdkDQeTTMc*uHRv4{)vC=!BuJgq zss&@NCS>JKY{b@ictz{j&&W_st8rx|d#+rQ@2^Y57uRJ%1gdG8VrAqMnz#W3SeL;n zzC0RMTt&c1jpP_x`J=Cn<5nof4za4p0?yuj5$=>X|8HmQDr`b=E`$y%=Hfa6`#B{SY4*jo!F>%fMhfhfuQV*da6egGI>M=HbR32 z{WTWW^Zz7LF7%rJ7|TzYf~WEVzdfB~zC6#I{e}z+o+t+-TDlY6&lj#tmC=v55o)E8 z2ZJ_ZhDCMchC^F?byCIw#X#ux(I~jd4eAg!?{f@;b)t z8tAxsObps6-uZ<7^?P}||G~M~+K3H?RY9DQ7ZC`6%(e}KnNB2$+J@7%p(8uIKu>&t z6|YUmsCUoUYXst?vywR>8}trAXe2tb23GBs=2?3OufRs=6(iX;4~ZissVGV*8b}bR zhE_K(Q8_?7>pcmL*sHg4T$0pDy?R1kkqyX!BN8mwgn}~_fn;@d^1F=Zis-d>NQ{&N zB-&D9(TLT6ZqcSZ62;{GXbp@X&}0;>F^N`vRB1xRdWULSjVss2(uq^G;q`ulCRD6< zD8_|Fpqf_GV1^>St@;{}T|Zo8pm>-h|em>$)Rf!d$Z_z%{vy@I_&Dk!zrT z1hfXaD8Z`4t6#6#-WjAOys8LX0$l_9|5E*w{TT93p~#Q3`a?+YQ+T;&6;{2r2W|dR zs-JTa_^Bf$%pdgDLe|_rw zC3>;%uk_!_i-}y?q8@aRb`-SdQrFdZ@1$VX?P@iGYI?DYZp)eL z$8z*|GK{J^l3=33<4B6|`OE={+n1);MCmw`q>Ukp(T*FKuCN%Y9vSowRdC9oUVZZm z_JI60KK-HuMI||3wOun^EsjN~SP%{!8`#@6WvuhjWE%g^r*vNWL*Y5Mi$n!BiU*)5 zcuim@YMC+_k+;WLb*|WL*6 z6Dho)aupIuCF0;C2@)TL*?9C0_kzSGQPn0D9MEeoRIw4KHGpE<#d?RTqE+KEQZM~K z^m;b`OYVALV&tl_>N>n(3MXno#grFRUWKczB2ZO}5L7{~);oq$(gP|lLR@VXsHR2y z4QtayVezW<9;>GlDqI_ySa14~1O6{! zRj9Iz`cr4xRe5!mbznTMj>`^vg<}ma{pIowE}Z8Y8*ssl^ZPV=AzX43O6eV{U=b~y zZ7Urv2!*L|{I+}z>UcYPs}oY1vWTt%oT>#I)yCkmjVb~c*)}Z3l!Ba03k#(6z6x+v zT%;bc;?fX-MPTWz*DDHDa#p2{rBpNW^GHNI~uo9tb> z8>M<7Qt+|alfbXi!3A^u$JY=|dOSFBEC}!KW8fxRWzWrh%j{ZnNgCzi5qj&n+u45NaF)im>EIi2>`XKIvnz%%B011 z@gilF%X&N>9F)mg_?j+JH0tVTl$A7y7no&luDXk8(8#JWXhcbE4a7kj)w4R$LJ5jd zPEkk~9DSlwt{lD)9r7YjMFk%w5G_bxvm(Aw2*{W^h6Rf#=vXqc(gM;%UEzpqh#4*P z#I@pU^B9-;v~s>SHmD1ie!l6cbhoNGn_4xs3C-q=Noj6f$^BwCP* z81H6I&?*lih17)%0lmnV?1PlKvKOh7bb!aA7Zp5AifLg7W8L$B6w;ii`o>1ZY&TzK z2`kH6zf+XkmnhJD@_F{dI2E_h8i7cY`-A=Dd3rqpfj>#w2+3Jyl;j{R)n`5UPC=5D z7LX?LB3Y!gNETUyUCu%pcrg3I_<$H{m7T)QgNHL~s!KudRWQe$??t3wjaiFG6*Ve0 zM*e!kHNtw1Hb6RYsCF|-Sx8|P+Gn;|?YmcIg*1_aRrxc?_iSsLKLq}n z{(P{OtPw;DTFGmN85Qv&4t(+1chgPxiQn(tCq9Bg8jo6}{mJ8tA^AESRyz&od22Rn ztj&|#-1$tF1q!m#?~5`NIenbj5&xf^G(VmN^I~0OPQe9&Sn>}$x3+oIF;qzxJ5k~2 z@Y&Am2M2m5pjyfkkn|#5}jOVY`N^ADw^oyk@5K=oZ)$i++)=D zcRU>9Bn=Qs$gT0B*6*x~eUh9vp7j5RX0f)(TID@{oDzjKVD4s{TvV?8S2w3fT1(0? z{(n7w{G)dht-i}IS%=9RzW4#)MY_li0$X99th4Pau$yF^eLh>}ha5-WK7c~hsVTE&bu^@~bXFCtXMY*&X~g|*li7WNPVRa9_mRE3K;K@|8r z`)_R4PeEozMPlMB3u!wjl93)-OG*M<+R(d8Ogi3 ziTA0kaaLZ5Er^S9?fQOyaD6I@9_P;>_RU-7@8HpY%Q|7sJ?UNSM|->*nr#$ionQ<8 z7-Y9M_d7+6&Xd2yyZCrpv^2{-E9-NEZ(?u!vHN}f_`TOW^Y^fK!z~I$W${GGx&qOp)(FUn zy1*#W3i`sl{s;sYnMM|C%Idg5_4%1rh|8O1d+*v`pt(N&Ze+F;g*2eGj53K8jvv)d zlm!HmxN=hl47`anj%|%Zmi_N$0oB<7F+<_i-PYUm};IW3Dk*IZTSRMw>A# zFEt63O`k-Y%5Jq&E7uOQ&3rd0=3t@1qD8j*7S9wIr{T;lsA$zEDQzxQwK7%lY6iP7 zYY_p*kEQK_?rOgETNP*4&C6H^N$YoXjI(l{3X5PDqoOyKCRh{_MfM_@*ZxN`I<{Lr zQC~zZJs4kOD(Y0#HoX^-f;DC>QrVN8`C_qTxa^jlT^4*%LDD6UU3{^+RDROIULqd_ zsjxD8Q4D(#Fm7iMof6c<+4-zyP4v#XMbESUe$r!R+}Z;FLF3&>Ym~rmXd*fzeYek{ zhfA+~>*9TmF_*0K`$MGgjm-&mY`h63wML1$fEU_^1U9SU0`Y}{Azl!R%sQ(PW1o*!D?Z-cQH_>Vo3paV!U+6&#NEd=EW_*2#E=YXun|oIrSC>$7>Tf5hi-KL= zd>c2XpsoyJEo>LHnDYOD*ZZw1@ErEz;!2`i#CW&XxT48&cC1B?)m8PF@{ts|`&gK~}HSmA1<)g8UI$e9%qL+)90)_%x@ zdF~FdHLB*-=3HE2Box2q2lY)AEN?t!OB%b=5Es#q;T}1kCn?a3ia4Yn#--B>RaEdH zCq8V-o_Th!FJ>;Ado`hIzNV`2sgh=g1i3T{9Bn9Y-B*jDBTm3cHlvij0Ffvw z#JDWSeT*~r{5A1Cklkok*4>oR!=QBDQk;`%P zu2bX3=|b*&Unl|N3=$L8z}Q!&0RR2lCpOAT8pK&S5~r*=X2eHqDF@}w1W~TVW43wb z6_~WxE@l)eH_=4pg(gH0j5aU0h7TQ+9z1KeT@)C7;8X$!%NJ|0o51i0 zsPe4+9zk|E=k#$NN8Yz?6cq`;&}&|i6w(W3Jb!+6O?Q*y=#`aVIV*SQ&wjfTD8kX2 z1og(P(I%u-xrh@4gG8&?E?z{ah_7*HUl37T6Ei4|Ucw5R)nVpg=WOXt3qXg-;?{Vv z2B}swqZBWcLwIOq43{WJ)K>)E$AmE+QVuX|wnQg4S}Z~LzJM0#qJm}w_T(lDFrYm$ zeLRK_O?l>tDNtK_-YF=ry$>@Z*gdCkJK|xn6=_~lBHe{2$|DEmQ3*sQAC#3e31D)b zl4eE=JuyDgN{p#LuAC0c5jHY(%1SGdGpTiuCY~J>yDxYnNXgBph^I)@{vc9tMFN`_ z@r6P_t;~yY1dGH9JF`~B4e5eoyvUcW5u3y-x(odBR%$d(9G0J(?@9&le&*P+{i{hp5D~lXQ4@945H6oqN zXUCaaaHu&Ex`pkaf*Ff>?@Qd750j!YcdDVX7N^G%!$y?&gHCp^23b_+Mxq(N_v!IU z}Ca}vcBb)bNqUM zq{hL_Q9@Pzns7$>of3w$mLeM9S!sbLNg)CX@Sv}uRehxOgggx!qSe+PMRjg(kgoiOe(P<*dxL$^Y&GinJN-4uDXYFg-fe%kr~G;g z`1+lH&}?Y7`YylD_9kk__nUck+(eyX(4F+_Bw&BzVNocne$ff$jYVN+L8`1pxUi6J zW=6$rvGXaL=x)cRxPs+p$e*EJBOjMU&ZC>rCGDeK20D{tRj(tf?gTH|6`nTnXhz%PI>lp>9@SU~TfDCDkV4En=yyPAj2T+ih z9aekHYmbA43X2xm7A9o@wt(b7+T{5hclhJ`Tb1)2nmzMtCarx$dhyRC{cJ(Ld0Y;2 zkM5UAE*E9J1ab|^5}s!_RxdZ~1Y`wEqfK^O(@dh`sp>=tVgjrq9z+UmjUZ-4+##Z@ z5aZnrld7>uC|A`gX0)kSg($NY_Qhl2i$DdnV2RBI;(>z_>ir#gAE4;Vm4-rMrIQ^j zU!`Yw;z+S#;FA75c$Vv&h>_2Bq zQQ`n7QMAajk^d#FVeDB^!3-P|S!T^bQ8lW~`aIbxidM;8#c%J1-fdUQDw@>aaPn8y z71#pNh1NHY9;c|cfH(;G{oU{xMY7TY(m=exgW6SnQ=v`$qGdA3jKG+o38g=~<@_Rh zQ}-yhcRlHOlV9Imw|7I-8ZF`^k4%&`$hhEPvbZ%W%wR{Jhjh@G1?8$*#f!)`?@3jp zGCCB5&>ZYZm?WYL%Zk@qm${k{bE@hPtTnXGeF{}!bQL0?gUuE@2um2_YnL_b@yi+X znzhe1q-AY9L8EYj@Iw;CzautIFbeQD$h(C>;L`}Z^|M2KE=NeW3OqyW8xtf*-dxbI~|5g+?1d-x(0j+ z{4zqX&ew(JjIup)me{QKDE!JQI_dqPk$)?52_CZB+=O8lxqZLp2GyU$_Or|{OAx)x z#eN#m$E@oJ-RxtyZ+7X-*$1CS>f+U0!puet>vlvq+A%=$(s_TsV)2(u5x#fG#eJx9 zlMLc^+W(u3U8X$5<2%_?9~7GjrUa42WlU=XXVTr)#3qaSf*8!0XFRJDC5TDlV~vXkK1GKoz6jJ>5e0gnWJNS6 zK@!G0jFc8~L`IPOVFLvE`%eO#9=@l3O@uy@ z&uROk{uJ+Gtk*=YV?Jl$?anV)RJ;qW9(oP+Ba+X#!%I@T@#}^NK1SR(l}%VTy%=rkFdy9= z#~8@=wSV#1ccWc(*SeFJD2HfL4=|%7PkNDq4pGQF(S7kO`SF!!_uEm z!jevlpM1+8&J2dt9&_}VEOcgttT8O^Jvkowz}7a^!sc7oE*SZ`+BQ?Taci3@SOVi3 zj)FTZa{K!BZwtjm8H*(FM91a`$+tn_@*Md`^RdCUIVj_#IMQ44^kuj zNkku6d?0*H@4QdP9(GHAe5zBv1b&(1AKnl9X=YA)dby$3{9^1sKMipQ_FR9OZcE;u zCwbj1BoCt9Vgdr))%-GHb1i(ikDFj5z5xp3YF_&kECuc8yTuX_C^Q%NJ_ZueV)MBP zH7`Do#o&qfk|?xtf6#8&#P}8|)Hhvr(v3hGIQm>#$U#aW|NecSzezjYs1dox(D>4& zrJZ*wsD;f4hCdqX;{7lwreN=tsmgDpP9|HXX_oMP*muF$?5SGVeCtBr|63LRixrRI zk=PWc+n4xa=R2jylN#O#N8p!0m%gY~#=!PsR>;Oyhe;qGa{u=qxy6NSYi6HG98P9v zaq2W&DzjFrlFNqs?#rZ+Du>_-vJs5#q}p}YkACwl@DBTN6ntY7fM^dL*h*XsEO=ubWz&-ovLo;usBoV>bUK3a|!12{C*$wT|FP8m)y9u z9~;p8lGQ+tqgNIsXm72W7RFub@}SD1tW_~`^e=9kX<;*}=GA<$Dsq#8tVN{Cd?m2; zn)0;k691W1T$Lbi3gyNF4UM5(fh@H;Q8eX zGP5Yu26JXN(t`^h(FI-WW4KgA!&>4ToyN0eo%Q#A3Kcv|iYY-%Qcia7$&%0)=%hme z;t-8?+dJ9m>emtYotHgS=8uv1IIyN79|OlnK$m2+_7Ukdz;X%7r;p$>c@X(WsGrHl%+F~;9|`M6B%hIfPBgz}kI&#IiGD&t_&&;oh&_|+sViz?&`9HqSF2Qvg2BT{gQ$bZba*33}upVC602^RqKrC6Z6L`4R zIiG)$rk%N+v`x3h>qOB@fV?JT*L3@z9ufHOKK-vg`Hx)vo*v~fh`^!Nf!6s3Zewfv zPn0NO{rA~wIj>UvK#n|Nqa9Iar@XLaiGiiG%rBS>In>V$xX#9jbueS(jUJPULb4=+ z$VrM&vbsPwv#rv0A#Pt$c_+0GU6aNrjRqWI@iR2j^bj%=cM-!VQV> zWa=$g;V%qgM-fU0iHSod7PVnN0jRc}7Db+YQFZ-C`cB8y;wtsaxp$Vv1E`}V@=5R-vzQ!tsJ$`$R?|KH-;hgn_Ty&gR*f zp2QuBP={J!0I(wtz{r>k)uwEljbkg8ixoAGI%X)agBqaM@?Flq+`82Y34udUB)bv~ ziFf2D7dM3<;LN2BOM_xmJUI>}A+89ABYqD5%(S~2@FS_Ed-$;qx6XP$c*F>|djD`w?M1hUGa zI;ke12XfYVBg@`VwnH)TfU2C~(OK$qqp%5hoK!q9Jiy z!X+#YQ3~?(#1%2I|FpY*W|^%BODy6MKp7;hTppzDW z*_*AJqZh0J&O;id+vuNHSUn~7vRKG$I!yjKHEVCFjo=@T5ek86uRcU^IC9X|G1ou@ z)~IjKj)UL&0^+rQ&ybrM6#x#BNY#lR$b)Oe!D$ULWb8%SS>O2US^MiLZzu&iR4ZMP zY9e$}%g)Ev4qMl!7q9H~F#z}P&W&XNo%m%aCSh7M7 zWXB>S-QF3&nFr|rkB$dQh&ZTc&5A&g_G4o*|IkrMH0zPsZuIfh&e8>8FNGAJ58@tR z5yW6JsuhBOg9|0uHXM=&Id~e|jFf#E_VxUa9CISwQ4QQ{=e$KV=tRk=kItAKh zTRO*bfBjzl?a*NbrNp!FYhEkfckq22JG*x1e{|?=O!pg>o9uq&xVPz%Nx--W8Py6w zz=JUeN2*}N1EN=mG77k8P;6m@Q?_mBtUx>%4PQ`N5I8m-BnpW~M|(aJE4*NmA~ZSA z29s(wLY_2MiZ4T2+$Pv(7QhUjr2d@I1AjwyxMZ_aRW@Fc*9vb&ytqw=~9GZ4}!yVaC6!zng z*oie4@a+4W)i3x$rTATF-=5#h&JST?{a#eW@525;N`lFdP4}OGNdT1EHKE7dxN#)y zt6E%+Lkb-4cYFD)H&h5JLLoY^f#3#<^5Po)0_VNLhOA1SUSOelUsr52Qbd9b--nbGKSX~6xM3@Ud7#&$6hv*Td)lX4c> zd#C?=0~g}kP=Ov;T50hy4j0ek3hLR^lu!}bq|rv@V1^v5 zs*p^y&Gtf`gIaM8mj2a6U8KjRpV@+%_~mkex^r zoC^k05OOd%|9ch?_YZ!@ucrGR>G5%-UoRg3|2kAxiY}$iPR-5%@tTN^L3Kk`c!jHd zq5k6Q0G*v6ySVK0SW$ovnBiVZa~47lt`)QV^?TTE`x>?=hmLuK%m1r)`9El zlKgw0JjZXe?;=#(($m%=h=YodW37-7I0OeOIPw4)nIw#nYCvAWf!L{5NC+v%feMZy zftJ=fDzFiHeFM`ACTrvqt!_k2K`DH}@kGtTD$u9BkR!>M^EX!eK!62;nj|m!LB`o^ zDEAg>0i3vy=^OV6?b9}%!lTe5Tei~`x7nC+Kf=MCiBsy=CC;8q>L8{+VI8V?l#||uzlkbOZ z^F#90dwwJSsY7G01cOHQYJKVtAOerJpNzc_vUd1DMOLNL+UBq4IAgFz&L{2EOCv!e zA>e_BoOo2=FC5q}T?W}-*(ft)LC!|mmKA9ue4^%rCn-mLp(@N<7MWEiJ(t5uU=^+M zPX^5^pRo6qzF+_c4W^P&1WXFlni+#Nat|de~;c@)XLyd5U;{nO#Xj^<6!xGAU zs5c?SUglWS3L=pC2^^~6ToPsE;0lDZ^3@+Zz-Hfqx^$Jc;e+n`-bDM}gyDdOQLI{tC#im6D)oi zP%B&#ToYZ#@apRn5m*yl6IECjdbPvfg>y~uW^mIbJAVx7y1;q)zTbDcjs1d4xvS9r z0;;s`ian5TLytp-kO5S$Lz_|s;M-L1QhFfY<_dSQT;lU>9g3Gd z`DXpT-bRJRF9Qg5eQ4W-yVpnyz2G*y9qOkx*ABbB`(1}D>G!w4LcOMfYkVA!Yb0x+ z>jC+|^FyNR$apCT^|t5kSbjg1{`&JSi$k&G@k6k5{6}6Z-o@+U6-lO4p|)Z9{`Qm0 zF6t6nsw4ARKOY!`k!Fl#6RFX=f@nfpS$b=BK9T+r75vmp2u$WzR*8gWtrfB_y`sIB z(pl-PH(!UG6>BfQo#m%?mih%dp2WR{UQpFy?`S{%IACN?c(=swmiYyz?Y%Vts1(G8 z)oZ_*#)_yuge*3f-pZM7z*dNy2E?Gf7e$MV)tUUHq6<^VKzqYUnBbzdLiVLs1ZLOO zX>!d*Fd6Zrwc_L=FuP`7E$ycQ3<-Ebe8T%K)SHmtF2uX}dH1=!@mzBRAE?9(dJVYUI&Y4`)z%JC{@&ZR1071aPeL9hnMYf>wY$o_iBHz?2eX$Sa`N@*h@PDqIbhS+;B!sBfg*T|0V8o%%^ zz0K?i>=KLK#(I<84$K=XP(k7*xb*`G6ksgj)TB2GRGyosws6d**_$ zsC|RU@A~3CT=F7xo7alBxd`0ndYixQQ{=n&KlY_oxR3EJzFk=a zZezWT^)9?DeBFMGIA_cTp_c=BJ%n+Xa!`TzCKJ?aMsSnWiq}*xOV(vBFIqs4IlA1M z%Z<@R{e{Lgyv;;lP3017#3YJ4Ej`zL$v5a=_Pa8IrC$_su-d9TJIg$PkdsRxP5Mc* zK2fc32}CX#E`cs1c=2^NUr-CYq1Hy# z|Hh1dJ6Chyl=YVj=Byy=ZD=nnENOo$QOXE+JrH?L+fHNOV4hKleu8TPe9f-W2pm!!SpR6)cFv##C8&gWCw z+gzs1wwV1Iuv{{GxqAt99d{XXx0YO{J@Nj5eH?emW&RLiOUK)skTL7ae5Lj(F@i9*C8zee_1h9aP=ZI z2erZ+Y;RZ+o>c^vKraE!flf*=EAixuD$I&Y_px1W^>N7JipXn}7bblAp^2bYoC99e zADalZFZG!o>pPWZ zC*0PEAfoT*M#!_*ic=8VibU6B@r&}}x_FvkFS86+phv3})&SQae$(c3oyfC_z!K;+ zfMt@lHPE&Z++@qo{_}I+_21L@zdGdq`sBYCl)HW02;~y$%?AFxi?3Og{lZ~sm+57egYt=FTs&b*ABhwkee(<60#Ew z;s^y3XB34H9T<;IPbiOk9eVJvH)%^imLL$yqfdsFKu8GcrCJ}*2_0*%{Q^`ns zYOGGyzk30z#2uoR;|0!2R51EPz)4T~KAV5L8P4X1R*^(QUIPhvpiHd61i^Wog>5?S z?T0b{iL?!%K7iybWp7NP#5S+Cp9mmWFtc|4780jMK@Z3boD7p}0F%`USyi(V=c$aS z$(VeuJ10|`1SXqC9vY(Xf!T^s1oKQif5oi9g@)Km%ivpUew+Ay3Yb)L!HX=PWwJA6jmLvo0n|$$kG^b=L21IhA45?bxLN zxcWD`jX;eaR_qYI&vyTMes?GY0}}DTBIF#YC?#af9eT1TfCIAAYh)YLI)o89v*aEf zd<+zVggiKMzl^xckq{EUklp-wy;~6qsTD#vPz}lJ2Ru6D1Z@=^XaEGU;YJWN(E7j5 zhLH7y0{dBa*#4~#sD}_#AVy9>W)bMdCphR!0Rk zvfs*X14JOwA?z7a3SMJsF5A08%GkZaA>!@6s6s*?(=YS_AGauD^`wzZR z>C`@chZJjzP={JAVJq)O1sF|t@ETBv2Rp@ryDe#mj@xEq+%%YY@EahQ9C-jZi3Dmw za#RBX2V^H26gx}X2Ao)f?K&~x!SC3mNK>Q(MFK}^U+xB+Jom~VMdT14A`W_%2W;C3 z*jupTwFnti^^C2GfRj3@RS)QaY{VW35j&1?4z=~VTOp7jA9RdW53#D~(YUSDTde0B zsEi2&x3TNRi`Pob(c4}FkUJea(j$u~gap%oh>!hAh43e6Gf41HJVERomuP0N9DdL$a)bR~SjP zcOAO(fC7&rb%+G2BO*HziK9>2fL;T43PQupfUWqQ%pg_-4AelaXrF2=)e1(UMis4+ z*Vp+4@ruaX`Fga)>>z05i`iZqVW3U1viBlbk?D|b3SNPON(+8N@Q3yS{x(I6?X^7@ z63R?Gth5%wh#?LE)?L9X8+c;QrvA*!`AC@Kdc0R%oK{Dkf)A{&$#b85 z*PpIYk!c(DLfIS?fHi5an`qj(9X`a`YNN-<1q?L6x29*=V5b2*NP;YFy`^nKBg<_e zd$X)#tuUB_QYgWq!RkaXsMcUMv_-|r2KCkGNgltUHY!4<3Il*0v0}o+6%ywOgN`Ce zB*->&^p+G+l`0Se_ox&b!F_>tHgLAoTRX(#biUp9Z3AF~T0LTM5-0Md?G;34C;y0w zb4Gy>nM9N5K!QMGWAUmG1Uwi!T8pS14y%9DbuQ?N+b|eit2(HIup`q*roCOytf3pY z8*7OrOHSzbwbnVm9|_?(Tp(Xx8wJ^F?P#A=D>^9{u~qTpNnU5*mu$zm({rEnj{5+6 z9yESA5wTG}s$DV9cQfukax^enFFY!-y^S8Gle?qB1mKB95T^+SWh}&D8^Fl~ve$~3 z2b}t8olde5R{wBcqzXwl40%E3S}`jxB9K*+5M)8l=1aP!J)xkL)9P95DmLyxDSS-s zRBOn}IGHDjLSmY%gNj&G;jWH&*EVnin{5j|+qT)L-FoCGSU0QIPt6L}?_Z@LvN_!r z6mYrI%!`m?t&k8n1Se|B8Jt7{H82m3cuC{)0^!?}7U$JqQO#z%8m^GE>mswSfCNPv zr+Qce|8Q$$vYJBa{X-PTH>dm|6a6&u62@*6fLbvbXNDvqi|J~VOoK^?IIBXk5JBY0 zWK?~)bFF6uPC-aVRjlo#aS1lui+zJOoU>?>;(ru(r$tzzmlP^3!e+CA!-kCZ`EX0b z`{wAKL@6_8(JXT(gl>%)h>=f;;D;ySQ>2=(7HTf_~&k4aLxy<{R#0C|Dz*F_= zow*OBC4|JpH!MPVWaf}w{b9=Wu?TXqb)Y7GegC>6b38;WvE4l_-e15j{`FgQ#Hvhvv2MpgPJ1UIREtW?E~;7!yE7d6p~)JVj@&6J|yMz>b(mz?o(mJ4hU3 z1v3|+kXkW>14ST-hD1J7Mx0QDCUX!3N^o95o#+-5U*K^MC;%Kn#(PmJf?=_L{njV2 z)A-oA*%l`e2(|CYS*9H(QII5lflk=~IEg5P5hEuPT=itj)coTDIaOFJZ=4Y|qzCs& zbH`ucHGrLpkRwlkpaLluaFm2PQ74pUh`aS<~f>~CJ;L& z(m^{~ZC*>;?~Reo1?vkkL+;5ESO2}$_Vde-y?#v?5sel``Hfmrq*~98$%(UQ53yeb;>)yAf0*CellW)m<(xm)SZyM*RnfiuMC4^(ez#FSyRSlpfEdL98!5?lRzA63i7%+y`wcZ~5xe9MJc{2An9vq(qlHn(N+EV? z28;#*6M~A+kYn#A9lrUmZaPDICHL6YC+w<79MPRiUDed>O`cae7_M@nM+-V3| z0jrNzQfC2qQ8TG9!O2!~sTC6AWDc@_l9-A>um-D9EUri|2ya#@c#sxr>=h@GLG$W8 zevEqD{rt(|)tk|uz@y^+#Ei6v2(0@3Yxvk&KN>jN-*-YT?cmX=@AgmF-{tFQ^gf=4 z+WY@P?{-(e73=yHmpzScMR)oku0}=knMwvIf_p>j9c?gT8 zN_qf|wwKbJ+8A5WimNCLBD@{Y7|;RXqTLoj&D z9gL_UJ@^Hao6xiOy$!EcDjg>)`~Jmi;NRtZ9?u1DI2uJP_R>29Lqs5nPRUbRD_P8AaM(_;l4~M=FM+8y^a=$ksSpDHz)uv zn9*q0mMs*B(EUZuGPbdA%&187`NwzOUe7CwVzX z{3-kX!q<9VUZT_0(W4^<^k@n9U*zvCUP}l-FkndmD ziy&WLenx+f6auf;fg%SJp0B)lhUhpfspEWOi%wRh&t1LNPq&3$ON)#1G36P*aBr6* z@>MB6Zd}vl@T>Z>&%94ESOFe@Ui+&B`7jyvxIJM)n`Q5?4%y-E6($7Tp`d;G$RqpV z{_$01o^h=)go7kfb+XSvxYPG0zv=R_KK{5S(+W-LOB^J0GWyK6SOAunF*I-G=P9icX0oHxiGj{bn>yA>EM zze|S=L~%d(y@zkw;b?xtG0{+GDia?LbyTtfUIW;v2pRf&CSgL5O~Wcq>`1kOD^Dnd zm1KN^$}$m{sE)W1?c<$iy+kB(8K;CC*$$wQ1jOr_tZG_%RqcKE3uwQ0Y_b7R-5@lh zPNW-h$eogiKoU*jJV&e57u5JRS_*1~B~UZ_0l7GR&XHV zg;(KZ@dS|*!CLW>T}SCTA-E(TR#Lbmr^PE| z&B_KkpjoLEjo9k5RaF2pQ7B|xPk=$zjxkNfTGH4n87Y7PRt$Q9PO06QZWAzw4O;;v zowCD4l}^gYDN%ye*j2G2E+#{I1-{{a$O{yF!M_{B1c)riuF!`7EJ4%0wN`4y0c?fc z6;aeiy+*|%G=N7D0RuJAqqNa(M_7(#Ab8K*LWgI3#5d?cZSka-o(mIbpcjM@B+)bO=evk@#Nvbe6cETjk1 zXaTk!L_!?KF!=rH|M9C`A-tG~b?2baX^@@et`8hzQ7%X+$)b%yfU=Yl&zCD{l}dn*|ytNpBQ zR$5ivI#`DwPAWo|y4HS0*s07z+xg_iqZ|QrG z`tnxuY#pTShPB$st*(*H$f2AA#p_J?Idq-J;ARXey5J)dBoYP>`umvIVnAURZUKq{rjZrGnSvaH67X}0!2?^UmOx8J*4 z9amR4xgApvL}B%HfFDxVb$#MR%4(oJ2cnQw7b$ruMY^y4fW`7IDrJT&$k__jCs6I5 zvUOl%)wWa4;tju?Xv+yhSUPLc|D+o6Bj1=9c@5%`KO%w@^uE(c;q1VtgwBCqahJUH58-ZSL*nz6s$REsaXHV5 zYapjjsD+rXIqu|tvdOs!oD)4Imuu_m>-i*;7u}nmtvv_gLAL@{@6d1HeGgArob0%@ z2YB^+rBdlz5Y3p;NxWi2SSvWER3uV$BA7%x(H1bq$)cWTvTbx9+08}3Kn?UL@swsy zS`|k7FOh~kC7{Uo922tcC zvygK#b39% z%OECju(xTm3hLD8@Jm9YH31owt)PJ@!tKB|S{Q|D4MHPD)t(u$Jk0FD&RI~DhOrf( z0tubzM>8r=E3FcjH=+uw>*_qrt9Z9Io-nh3wgGUGB9x3XLlTk2bTvw*!32qsL*nMp z`hHXyt?rF~CbVnx>)kTcTN}`CR;v#9`zUy{cifIjqa9%zZM}INE4QPeA~c{@G*B2I z35rdsV8ztjCvN~=RY_2X;lpCG;#xqA*sFNom^++nmlN)T_N=5rQG2(es!{6Cy&M7^F^ez@wEhH9m`?ZM0*KjFyIJvtrt< z>|UA^#Rvr!ofDN~d+7?y_Te$hG@FKJZd{S6l zryM=H7=+kuR_iRAn56=@Pf=mC>bXfr7(iToLB_h`hZ@MyaN&dytP?5rBJEqP=(quJW`VF;lZa%| zB$|X6IYe-^B9v9~#4H;+@&v@pI+^{&QC8pxDDgVSV205K;1se15J7+x>xcgOogR@1lr$&6W$}Z?0d0*ycEM_ceXde#f(8jOgkp6a*6` zBk&ZRc_!dsOmpoAt3zLqxd>(D+(~OEg5||K?Iw5jGfhk33a;=aUGb4v-jM|O?S! zcw*XNJ5bIznS)|LY;Pgp$vCn1TNVjaL{2tW(mtUGB4;Z?S>uh~l*orflrEW`6M}Q1 zm!x;OM!JsUMIf7oqrzw{i>dFoRK^w9k zGEYdM;sZ_zojncUKn;8~Qf+7Fv~_>*a}$AVn(UDo*`xpzp^#c33ntO%i8C05bFwGE zV!S9V0%4pm#e&GmBzNf|6rvO9h8$8WWWf--Oxb;~J1?f$NEDJkX*J@|jF4E9$TCAD zcWIJfJ4sGf&LRSfYElVQ&*NBp$=CK(#J*cGc6R9!a3N+I@X$v z6RU9r2b_Rxr~r<=mDr4ZLUxgpan`d5EH3Jfd+`@9?xewmoE2)FKS5_TfVCwA& zh#lwiWwR)zKH-UWuC(m6uKl8`FG`u0g^q^+xFk`>xyCxY}yBft=pun2|J3LzY*6B}{x0}{_I2}}Ub z6ea|vUJN9m$r~gD4#`Z6+2mxRkUiUmlQ{@cLwaz~3lef>$vv96v@n9iwW1p?nAt9U zXsxig$m*)u{TPMI(*Ih87Zat$H5)+~C49gls}V1HGFVhsE9+dlH|F4e9#Jcv0);h@ zbFlcj$>s7_$PAneaW&1xSwz;ET|?~84_S-Q63`kDak8EnLV7~T44jNaU{THb$Wnx| zeZ9UodAzb%(u&!Z#W}O&p8f0lpQoR|z(Wzprr9)eZyW4L>&DX76cPe2Qd+3O3z89W zvYr{T5HI>z4LR#NH1DJRDAUHYY0jsR*7olXe!eW?=6R&HC zW>aT!$ag(|6%3cW2JnQt z_6<%tFRcA6U=}sOSSH;j(+`TTfr2|bM5f^6&$n(bNH}96NB=}bm~h)z|5{~lg~Z2Ai-vBH%4{%XPb=w=^?8rRM?n z7`YQkoR((|a}-DZoLonJ2qNj)7xAZa4`OE`iX#_(9-xcI?I@Ddnq5yC{ixbALzc&C zu^B(5b!hHVXMY_LR)n%v1z7r5fyHD|(NGD>X)Nw(N)!jB58lv+$Zmj_kLL*b+g^@3 z@d*hN6WCQ{-snzQ{Q&2`;|cmHU3^=ewUMB8e*e;c={mzS#cdc2pH=Osi-;r7gJjz2 zd3uIkpciW=mMqEH{@Cb!Kg&)A1{hcf2eRL#h0de2gzOe$YWJbWB;Fp`6N}Ed4Tv2) zc_KZCU1$MDW~VYPnHn8713&u$SakH0L@0(D@e`nGYqtPvz)O2zd>7XiiTZl)&Wl#s ztPnWNrW35JdY~f$ zT7yOCq@IZ+0(Mpi^0d=)rp)N|0C|Hw;MGWW*EKnAvN@1y(f&Dl!`7B700&FYLz)pd z2?i7maa2!J3*Xd)VWAAebW0AxftRwRYz*&j0 zy5KEffi01HqBXgD-7ybMHWI%<-Pj@RFD-0+cIyr)ECR{YSr#ZPv=?ha>|Q(q4g2SB zvf&6c`5W51vx4H|zxZ96RRMx&qO7_u0tIk*CQ5h+g>XU$)`bLt$ic0l%L%~2twD%L z2r+VqV6h?!E{v#)hoe91cgDo_M$Q}%6xC1;qCklT$vu(>v@k@MI?)I6;?^KB2IslN zh#^9hL?AP8n8rv!;1ETZ?iC#9LG1ioX`fktJkwKvPiSv!BQs=)TU7+Ri@=^}NjQrX zsg2$_-oqDt!PDQVS)Izb_~qeGVXKKib>FSs#LK!i-?IhKo%jh_IaA)Ts^G!m<$EIA> z9UCoxL+%=V59A+M^oZu;YrZu%8CMnA8$|bH_q<3W(jNLr^rF=Nb)5q8%dWsZ(>)Up zp7!2hH(f|;CA;R3VGFc6!RD>umWXaWTJ{ouZS0XK?4jI(26UTh-;&nu^A(Zr8Oyy< ze-?pFCS;~yrNH+ z5peFL!&xZ^0_VgZ*9PhJT_4xxmsjt{q_3;|`s%;wMIZflUO*EMWcc$d;fx#3Y%WFD z2IkhwLG0A!z_;h@l^l*Sn%%2s=gmd;8Csp#{c{W*n)W3y=|`XS;X~xrUjTMhYMG<| z4UM|Lv1gA&U=Q_{#DN_k3$FRCVGX#d2yB6tV7Fa)_q^VhVEc-W_Rn9B>$Mz=Z2lhs z-I93=D#5))SHd{n{R!dUUp)8sG1?iKy(V5gPl{*h#cvHyDP6(`>!uq>DP<&OEk^8-o5(1u038cy`GS;aPB#T!pevU zWYcUKY%e*5ia=4#`YeKMb^siLRVk!3$bvQ zZLh9eL?G0D;7|%_4YFVn7S$kbTmGN#$=F#G5@v3#8fGiAIB~4k7T^M8N8-eS zMGm24O(EI&na4PDZWAe{)hL+;6C@^1QjSO=F>=Tll0{degMVFfveqyeXSVCywVFTv zcpzHFHJH+X1budi7wRLTO_3wekl0_`KG+I)jpPYIm5aoaxRQw8y0n+1A(m-XpqLcZ zBm`NIvr)0uaA}Xzr0+>nxQBd?M7-|-@B+@(pVg3;zFr_|hh3A^L{=M+dfPet3)eyg zcRz$`&>GZ$tBSxDDAhoV5>zEFt`J)9I=P>I{BD9p<6y(Fy4G8#TxgCd%hoBe8g@aXs`#k1-f;_SFYFm zJhz#=DeQjhkgX-2h}M)58`bay@Iidb^w##-U%EHOGt({ndB#5rf8Kg)7KIvU(fa<9 zI&$oX9p|ebr7@K41Z` zBPJ49ED}8r3W}aX$fz|40$z+kn9?zXz*U`20A47vVv?B5;DD%(Na1L%DiO_(cuk2YDiuqYT#ghmYEG}urFC|;}|n|(H{%^fYtU-b87;t@&fUUy?&w$ zAoevpIy&R-$a_K`KgmR(W@T}4vbT^lcacRJ)PvN}>T@>PE!FTr3tIz6kw9JOB&Zjh zU}aTyQ2XT$d14;yMbzZz54BTm%w)b8Fdqm@a(GJw^l^`3nh$+;r3Ra(sq?$gTU!(D z_eo9t;^@sPTX|FS=w*ebzr1*T0IT3T+hZxuN*}XccWDVBGn+6ByN!kuXVD~zPsmC| z>JakOF%M_VEm(o+j_OiW?p{f**E4O@F zc#rOh=zXH@32i;HX&aw}yoCyTP+H;>cr}uH6ibP{I15|@+!X7$mI-lLDYTw2$Mhi1 zDw0Q^MKE_BLdiIDSwgC5HZ}e_|9hZ+UBCYKgzu5xZfa)FKR~>;ag5A^!``DQKnYCZ-G;jpD@tql<%5D8Zt^8gvl5&<7UYh6I+SL#5Ur zF=j>%Q^*W4!Vs8e2vHJ&U@d%}xKtq_aEM}+SWXS_=@EIILA;ym1NoNdmdNENSXq?~ z=mQ;@@FZgq@6^sg>ZzZ%Dnyg`z`@cN4{QyRabgk3rr9+3K*)lej50%(+SY)Uzkwdw@sTf* zH_=1C-d|sFnMbC6|L?bWf7#Aa7ZMnXS3e28i~rCwW5h$qu{CsL2Q{FNl~ME&gOlh& zrxOBN!^J#_7j!y=7Pkh8aj^(w1`bom93zJyCLzbxAP^HGFVSepO9nikDLrE(-nNvY z?*Mk!>^&{1@OqO9rIz_J=lAcxb;>MDMIa&Y5{1B&>w?%@+_#27QO!nB47q4rjPVWl zHIS)(;Oez|g$2M1+rZ3t2o-M)Hpl8($GMp7fhP0c`EcJ^I2Nz_(xglag+P;Z+e^5l zc|$w9JfJoImaH1d@~+q#xzd9;v%oT5cst@PdGh^@6w&R!d~SL2=z0YQ@s??As>52% zpZG_nz1kBtkM{VMj~bMlWBGQEdxp16qYXs{w1Kw(W3dwAJ>(M6gSNm{$^mYH){f_< z+b+~CzBXwO4!LKs$cYQbt6bm=i?Go@e{0;;Ff9^r>>Naa(O|DBg|?nqawi|e*$#@q z-bjfK;9DYk>pFgt{49#aMuW^*qRVdBo3@5~qOc{rxs;ChBFH`aStPR0mEB|Y^1{}h z3H~&^XR*^Q)q9#U|LmZ-pG{w}4fbr^C*6Y8qSSyHmv%alt3CTe;Rz)a*<6cL2&)oQ zO*q_Jkdk}9L_|*!L7wW&P5=JCeeiifylv>n0+A5(-T_9M4+f< z4S6R54n71isV=10>8iv|(K)=r0$|4{EW#DCg@am4h>jwb+9xwYI8Zd2$T8OQPVowD zU}p5*@H)=f=wtJ3Hl^7I%3%jp1L8dqfm@_Cx_cZ+JfwOei!_K@aHo@)!I#jhj=4RE z4f?F6Y^%P#tjY$h!6I~0&)Dk<#7WdiXC-q&HXw)AU=cd0XEN#Sr{)O8;MBuT{vK;L z9nMNY5J((sueiA?`kOO6Ak@nht_|>28dz~(RRo;W=yO#z@Gc8pbQKGK{odfUK?bh@ z?9_k+i)qq^jw=&^ga^fd&H<8>*hpysV}z1eFKUFZ1vKf2xPXHM7E2xwfy}^R8Y6lU z&n?V?<6J<*!3jkm#20+gssS7%D?Nl9TZ2G!WQUmKpZ(dC-P2L1L8k>D$crBo9J{wS zZ-j`%5G!TQjlSD1N5fa|Ld07#g9kELMGu5TEPQF7X+x!7gL#7;fY zOdA}6My#+PQH(Yq#-f56+Hi3+i9oO}re7E31F#F-8H3Z*=oTlXAP6K57DTgamaT0U zqmv!&d2PD-Mc2)@_s>sa zWBJ~Ges5ma2CprF6~5~A1Is~InKI;Ysa_lS^_Z2xE*{0XZf54B~{O8%f>-hfn>*LxU4frF7 zIM|MHe9+vsX4T|xqMncw7ZHJMI_(8KD}K#NL%so- z5f`Y@nDClg;#uDSFGx6J1uKUjT7)8&>bT&yYx5hvPT;HO2fnT{M7_cSUL>+obRc%> z4kCSp;}8syZ#u3GkRUEP0XT#NtBFGPFk0{ibr!_nu}~ohIQSho(aOgK2v)q3kWp)% zodLj(c|1~L3>Ni{cK|QaNjM9w^%%V_Sj|jcS0v=sqZv@QLJCH$1))=406}zAsm4X^ zubCWd4bNSHYk)b;oPjEms>JFbk(cyQNzD}psoJ5V*FJrgTXAuDd?^G+D7uZm|gEWj2i{=pxra52x zixg3jL~BB=Z2=cmq{l6KLJerseb_F>VTajZZoTlVUVik}U@-@M|Hbk~501XTxnW=)*E{{uMM;*ptBNRWpy#mEnnrwwWVv@ z=XTDw_nJESy&aJiMyvprG0rxUUljS<+CMU6habA`D*UDLgIp`P%>?(vOGU`ub znnxCSZ95>efgEGgeVD_!4;h<6_1xaIi$Zqo)jEfN0*T`8*c5IV-xB$0C~(j8p6Q-w zX`&OE{Vk(4lt|>Czig=-kmf7n4Xsy$s$6yV^aEAaU^P1W0$B75G*sg1O3Ur(*6tAy zBZml9YYnoVpOlr0lunVVN?A1tL6+8va*;fwAqSEYZ|YZ*CrT%#p4>l}_ypaQc#O&b-dVm(~&orKQ*CT!bGx-O!Bl5o*Y7#v{ zugpiBnyF@dPtGAk$3b;OmMWf~pV(sj-AR%B3hd1*!J^iJ`J(;=t7yRqmh_iF)T>3V z&99H&N&iepkcBu|6%i<^Qy=)gsv>(Or0Y2`#K9tPtOnmArpwHE4DNWsZIXqZ*jsIOyB*No8U1PFQnha5s7 zDHnkxnq)D1^&sY`S6I+`LQcFEmy-t9;Y)nT0##>Bw*a|ol%1c61RrQM8S=o88Z_nvH5OgK4;DYbvGJp zuWyF7234`BmQks?na0Wuf*?{15{Z_fjnC<_!5o3x-59*J$BpULV>wPG_$7X1{7IU(gdk2WMcPjZ{j z*K|{;^=G24{Tq^471=DAul>;6`n~Zkl8hf}o9Zxse)NIe%~d9}mw|&X$P7df^Mi4*({qR)~&^YeJhoevTg%+-elZ9P3V~!&092k zga0ZCKaefnGC^7XaIxYG{+T$T$j!{ZpeJ$ed`gX|+9Q&i>n|dGj8e-{A(Cv*W?N>h zRwR?es>o)^tYu!KDi$CzVMkg(;>eO%GaDu^=&c}@>Yu+}WX8izU;)#UY^AIg%rW!@jbpIaVJ;{SDv<(68JRkG}+hO9TEBFqJOgetOGHVgKn#^DE&ab|3y zM72I5xdr?P>^|nimh4mTWk>DeN`h&5;9lv__~<%CE~lEj>^LL0Meri$Hd zcgtpUVDtEzaT&)g$uk-!-ZKJO<@Xuok?Z2Zo=diU#U=B(5bdY7M{ zu|$K{s+3vaRY?rTU5k2uuZ4Z+*yoBtDR?F^QDpK=@Qn1C**#&3xlT$8^k(OI9eM0K ziqM31G7@eqnV(mi;% zD)yxJuheOt{pZQJ!}=5j%sOo{=ZnD1oxN&T!`Y@P7C;t?_cknmIMPLp4Owl77t}iU z*+Nwj$_aB!l7zElRz)_;W{X>pI9?ZQ@taE_UZd&t1zl`Ft&~-=Scw1hyT<1|Kac#8 zsNQ?&&224OVISXK)-Il6?Sv$@;8>Hr9p2yx9gLszevo!Wvnv+k~fufwysL=bLzdZTuq>!69sQDN+BahXqVbIuUOo~)z zwUNC2t-r@N($TZotBuzwYfNKx@~(e=Ug)~$KY0KD51*I$daPQM9c6|mAWpTeP&LpN z+Cml*N2Sa~Iiyw!kwA@!0#6z+``IXOcwHb1)U(-}E75?Hin3#^aFhiRUBu&#b)Klg z(Izk)NSxNRG7FSq)v>(rI-4^|;rh?tH{~yqd*llek=)#-`{N}^=8%Z^mguyKt~B{% z@>ux$yC0Y~{s3^H3LMz&rbT%VY*WUrB)hA5hpV;9?9B>6!pxExNi4XnrM3lB#zF5e zU*n!M$M)s>61&R`-l*sL+uSq0d!-oEWxTsVj)L=Rpi#vMCme?NAina z#w+>mFWQ7;S5;t-Y7d_$P2XJ}LF%J)(bS9)A zaS@`$Zv-KwML8tps@UXerQkQ<;=RR^*u+?b?iCKlB3aaBP+tqP5>+^vlYMIc>R#9U z^E2jHlo!{E#S#>u>c)^TixzWYEK&_#eRUQZ_eOS<#Hw4~G{9LW~wG(Vx`rgC#t+!DKa8lp(Jv4m`_+YobZFC&u8QqNXelW$0q zNAinE70=8(i(Mv9Dvr&xtao?oto z*i3d)Y_3m-kNBqQN9wZ1C;ztR*keC2o7{A@8y0+jbK6ARVn1*5^jUdBt;c?Q4ptXt z<SE zjJ!L%5tL8@Ra0&Y8G$6hoOtfkjF;cX>jkg!f%173%p#*&zh=_OYpp99y{^x8mVa;O z_Xqy?YS#d1vVaG&veyw5u+YGYSt~xZjaRw?u;@rgvN$NADuON82J!gq2bpRei#TYm z_Bg9NnI@AS{raGCtv5bSr(#uXYFTTgWRh4FyFqp@yak5M_U;yJEi*QOWIeDMN!IhE ztfI);B-^{UFCTp}y=ar7yVtt;&YWdzH(k|yyXlDqbMDG}M-8&*w$ImQ{l-NH7IRPv zNrG#o5J`w&wInvNx60Z!K{nqojit)L=+-gNKWtOalWLbJb z)J}V2t=S~84Q~9^Bv2JD)`C*#y?d*5V^u7(7QBY=NwlaaJJyOoT4*ahPZZ@amc`#d zW(nbhaFzutQVq0(>}U(xdkMpV#EBQh(sHc`q=mLpSr8F9sbZly`Yp^|Y_VTPza*T%Y2^++p zS{V>HvMtmB6<#5eXw=ztq%w~nyI4!uBsiXNJF-{rU(FUhNW*Zw|HuV+ydY4+%u2HlO=xi zV`{U&>jGAGJP;J=$u>=?8 zki7UTNKARQv?M1W!IE;-5EhaUrQM2hR>`7<&?G`6iEVLT_(o7d35>3cz%?-$5bV9e zNJ9HW_8PO#O-D$rNG6$)MYE}8vtUMIk|dm^RwR=ws+-v|T>xpZ>B$LWPx9y&3Y}?^ z{nC>HRpijU+LAM_j_o1i`YRZm-4X|K4;b&d=v;0xbZJE&Oh*Xu$4J$z*L%oz7f zAAzOGDv319YAwI>_ByDZxI6AW9zlM$7hbSz+n2bAjdwLp?c;pYrE$jT<|L2A?n!JO zQ)Y;$pJ$i_`e~XmK@M}r+|GWh%Ww;e+b(a3;Sofi&zVr^Jc4Ivzf6DGIZgn1HrQ=M z_BUUUc4BRDZM?Q=)=nUCQ4W!W2v*Hv9AXO@j`OdGFm+ykApFbL*=9Fx!%%dsu!UH# zATT8$r_OrjPd6|d$i_M%0FrilPJ?^jBTYMYnq>0jFSu&Mh7ENIkc9a1^UwVId_nf9 zTBKP_YW(>p;Q4vJ0K;we}!K+87>$rM+3O9XG3-ZwCiqP>;xn^fVwvDU0meKURg1c#RbHE`z3pa0-| zfeSLpFe_C^)z=oRjZD@k5MV|(yn9uVR8zB~Kt_}hN@0d>7`CI@A7r9!E0Vh;`APnr z;mE3xW@(lr-Dq}Ze2sBTW_!)jf~_Ym;BzaFu-b4zZbY9R$mcac;^NQI?)n{NDYa1} zAG&T}O`kqL;EHZsqzi#6%*i4tnPH88^qtiem>d5H92LRP<9cY5)h9AqTB&XXNdXNd z31QCFY}BG*^aD1ZYvJ9EASh18XP2xFS=@GzE(AlFaRhNygBzySpWl1)B97R$v;jW3 zh}%MPYl0FWRbRS+8j{TZmU8C`d#n%yJnq5bcL{DjeY1DBHlS8y2Jv9JHd$av5=rW0 zsxaK#Z|Iaz8K1JkQ{U^TVa{o^;A3F5)WNUi(6h}NB+y-pAlDIO^wt>5-(lFJi zt@z#rjt`fkI=|u+l#-0Xf8jlxBqg89D6{HN>uMoJU7#CD*ZX0!+tE}1QHb|K{?n+! z=+0Yr=#&pWUXx_Z4|YA5Pf{yyacozpcj(F5UHm_Vj3$4lCyV1~?;vsy`Sky5!x@@v zAW7;?>>QC{avW}>_ucFh7Q90$b&+nCcGO`6laoy04_*>ZNy62Ml>{c0aC4Fb)kyOS zcTmHs9!e3HTFUO`D+)V7TA}{-WuQ>qu-`UYM@x_#B56bX3rHDNp{u1{lh8%d%AR&i zM$9lJnS5NsJ!LNyCq)^dyCt_gEzdE$r;%^pFIaC~C^`yAaXA_e3-~r40E~A?r7ojl z8!p`r>$Qvngu0CCQVTKGsX^(w{rsw*KfiRUhN(e!a}#f_#Zk+LFDyQxf&gvkDN#X( zk)#)n*F6)>4s$@6(@Ri=IhqH8;8JuLNjP??5EjiikFj>i)go9zpAFdN%_jzS5Sf%R zROeQTU6mKzin58 zx11XeX}p7@G;BV>fs!N|I!q1RNs>1g4a9;J3H$57MnibIRA?)oMrzoNHmaLH`n3(% z0wgYp$o_9UoPwgjoNNlDHrA%F6b-A;WtgNOfQfLn~?Lso?jumk(#y3Uh zDz_*#e(goJl?H5{U zg95o-{21{Gb#cL}S}0tTBw?0JdC)ejZ;P`(U?;v~^>jl!BvvR(|C0#nK^dRJq-oix ziyEX_$VOdAx{lux$|nEHFZ8C=t-GQOFFZS`O;`3f4=Fu9S9_wT9j(%&GPx?eq<8}> z;)wT0wfe*W6LgcXAYE5vE)g)e!GgpLuW??zPirKTTe#e;WM9;!P)gFA&wzg}<(|xk zN{@U)HJ>YLNa3>Mmj@DO*^<3s3d!ODE{BxIu-JcG*Tx5};LTH4p}Y~#{69|fYkwJ{ zz2l<`G2;l*6n$QRc^JXuGQ6LUi-QBXY1$D@h3aBP8$%^ItyL>NNZqI=N!&K7<&lB$ z>9Rw-;!0NsijxC`br?zd2E!(mp{l(vA&mFvPx&$qWwU$b1c!&2Yua~hls!uc{aZL)E4a>F! zAb5$75fSewVGIYuJ-10xv(awWXedbvBM9<6t8x?HXKkPc$V&oUAH?KA4N{KKJ8X?R zNRptNccnJe*kZs0ZYW6#BQ<0u4~))dTRaw@$UqgNs>BR+c?sleSObw)IJC*`6C@de z?7TrW@k>9T5;Vc;%YV0FzWi(hYk>5+Vz@M}p5_M80h4>;ZUeKqN z#`1aMy7@%Ox5p7kBGx1^W4b>;86?cCOLoZ}To|G8uLCPG$MS(EmNq_09YWHy(sgwy zf$P@9Xvb50TvyneNSn1yje7uXEf17Q3Fg535@inNfpNusQX-j>hmTV6q<@BvE6LKx z*w9L9T#gEFS9+o8OrV7p5+O}a$k~DknyLa3M`1~kh=qlyWB)^-9e5HmD zQ0qb@-Dg#WDOdzTUffE}?Kh}+FOx=%4ua$mNn;?vIVm#ZoZnVe;WgW9wmA{Jq_>j| zUea_$3_~$hQdFU$`HYK0?AePfWf%?)@mzg+lrG+r_NNFoMaM zUlY#B##$cwL09PF)y)E$-26FjBWZCZpVze(`{V^frL4apm~ z!TvccFU^N6!+QJk`@?Mq=|V7cv|&ZQ$?dO$)IuL!Yq8ZWe@0|D$xBkp+x(!d3EjbI z4I45(hly+X_#js%5*jwO;o;ds()5xw|B>hL!Iw zxq9fe2+a<2V8%Jh9MpX4ek?7k9(Ns%SLy}1|SVMgVyfvT5N$qdjwt|xa9293^OF6Drnml(@*i&S2Gidw* z_TuN48Pu-GijjU-Jw-vryxqcNZ8V3M#Mqzi>AGGm=Ro`rD~ z^t$&g#onLan;&CsfKO>aZCHJhm*i#qiz$srMwmU`1V*%oMJNd=mqYyDIawg%j$%gG ztF`cBY#6p3r6RsW%D@a=e}1j>^IP7sW!|6sr>gXxC5s{0^^+JXS;h(*iXkmyhvMuc z<4(|d!MYN3)uGlk|ITj4!k?cb7qY{*8V0J9B>Eks3xz%#zT&nX*EXN(%k3*sTtd0+ z{c5K_u{P|%BFo8dtQDFZ8^e-cFaJ1S=+9WUbCgeDlG6^ek~|AKUqG(VsN^La3tAWQ z?g4sT+x`pI2J#64r(B;`##0t-zy<3bx0{fCUTJf|59Ec!L%zilicbMxnv~{#c2$^@ z^~5*~rTeUL*;^aP<*SMKU9iG6K#)R`#+>EoRH3UiB}ISD-0x`=KnY2X&1AtS%qSSm zy&NYt^r;QRAg3_Yr8K!fr=+Mt)5Ry&4AjmwK9cTcOMX@rumGJEPuZf(ww6V|wtLAf`zc+c;&!y3S zo7k1l;X4QBmnbcqzkY(lK#kxng1i;)* zF#5n@v8;|~!wsvGED4fk&<&g2kF7ks+!7Les0#`l(e1IgliXI=XD4|{s(xJY>5G*b zY(?i6sl|tDZR5I@5B>8J-H7yFis$(>%^^6JO&3P+>)#OkaiDJgO1SQ}6SBu&t#Hf&Lr zt-(mpi(@A^^5odJO8EYjMme)VJQBrDp85BBX^cUNALF_`@ZgSw|jxU*cMB&9sca1 zI=^!yCjm-JDG+;HH<*x5wz~x~4)gQ9X2P&o2aOejqzqIzjxrrz`d`V%7hICdTj*YS zLW0@ke6puO(db>u7F+8hAEo38>C`wI5pes7*%mG6B2B5f0HHu$zYqj)gM=<-`Qieu zD>_gN6w}3pfNi!GX(~RUinW8Ue&pg;-xnT&i!~6JCL~yqR^slc(;WVMH{M%)9F=%+ z!P_FOJj*Cux2d&ATOxA(&F&bO8% ztHh>>LLs2S4XnFawfjL3d2fL=8(k~%py-EgU>Z;C21Z{L7acg~b&#jLxL|1R&_^hg zAxImP#bj&pdDI=PvWd751W7*lIWBX56&bShn8Bw);%6I+#3j1>Yzp*#Fdj5;!r27#Z;SIv4;8p z-3dBal%U#lxiWMB?wElXhaDsWgVngb0ydFOCK0mRLLEjFo6*9d1f6JvaUfwcOpKj5 zXx?(%78`JrH>*$=!b)x)p&TFrhIk0K0#@@Q)Z)b|ROD2Q(S*Pi*?|I*kWhu|h&uCSeyn_iYz>v0ZPQqyL9mWTJZfH>&(O_7n76(*(juh zdY~4hR@o|0MI(He5{A|e??3-kRJbDdhz5#NL|sK7NR5hB8<6-HcwzgDrNEh>qXrRl z;(?;h;&T4DA`dI9028aTLV)l5!B;$>v~ndg$tqS;X_CnWnr>Ff1zfpl-C%%cx|)a! z=>Z={sjXbv!-m3UR;=1+v1%{23?kxTPAmfM;?#}9&Aq8{&egFtMXQkQJ1>kFG3`cI ztH}0;qB#OrHr>GC=dY$?ljI^UH_R$M%y4%Sa8QH%^UYV}!SNhIyW-h^N~~k6z>5JE zPudG7jEmKUxI>^x#q1YMAQKlyb(n8N5lTqvE#(`qBx+_C@vVG8T!NoJ#PlyA4vGsc ztsEPGPSohKx)3+mpesSAoH5wv7)+?^fJEH6Q%Z#0WFS5{d2%{Cf|JYn+2iaLPHt>? zUN@HXwg_}oL$T@xO~?gYbB+c#)zX!q(`Zg40)y2#?gIMuXo9sgUBRTdm}Tn90iu@4 zWrcS&TvNFleFDQE5i^QHObzeEHoIR|sLLQC9>#gun_Pjoz5fTyu3D_07yEz@GpLGA zU!mlK8`cC9TD;*x$ZV@vA5DMTQ5)1N7Lo~x&1B#!dV?`^E4!{I)8-q%{<|Ulwxdz; zW-Zd-?!WKu{wU?M6|~AG^bI*3@y@1Vc8g0+cHJz80; z5;w)_;yx7@vl(5?S{19lqTNtO`8e`=d_gOh)MT-Ge2x|y+NxWJCp5tjgd+w1jY;vw>L zCaCAEkJJu5+gwX%G{jXyiG#j=zOTmphT!&l&`{$7{UQs}qGn0CG@=JFIsS z-EEuNZV;FmcyebW;*)B>9?a|v7xKB!y^1#6FKZ?vcJZM*n4rswP<3V!i4h?VQqPJ@ z_`J>e@*d>7&Qw}9y!>>awsj#ab5W-@TT;4&{kvO0aZ%r<%h7x!B z`8G^g8!TXgf;@;Owk2-3)SIn9t2RiP928j;-EG*FBI++m7~aWW*z2Z-M!WFRfENg5 z2h0xjfu1o8sIaev?6kQaVl_~g_(_3sA?P6DoMC4pv9~;-E4SiGVrM4vLLPJ<2y=9YmsJE?aKot2nt3J0!?pEN{R#DE2MI zL|sbmKs+$U)hf6UJ9K4&31>ddL-g~FK(QN#O zQUrB_F#U9s=RnJt7-yS&ilqB}-%2HT@_qhR_LRyEPeIXe30duyjDYG5DANskQr37q zQ3M+<1R{MTgnys7+J~c6Cdz;MM%+5_TaL8Tt-yHH9cJi`Y7ch}yegqdz* zn`ONLjGO)gI1z`l53&v?P{*JYr3|2FPYd!nkteGVf$o(=Y4V!r_H6a+%e)7DJTlR+ zKi|{$*yBI``6rxR3NCEo-^ryFSl*D;@d7d@Pw(*$2`cH)@M8U56Gay&O82i z{QOfN>F0a&rBOm|n#pv7(0Y$8*gw6E#3jZ*>9RKB1x(*#6P(1fe40w}h8EM`$%2wx zFf?)s$d8F=j!!HCCucW&SdFHH`r_KErI8840MB&A+Cc_Q?cL&gDtAvmv6`|AK>&BS z4vKUf@YhlI3%aoB>O$_*inL*M!!!BFb;k;gh+QPqlP$KuOGXFHz{|{(&pl#uNUkFg z0Yh&wRtL)7DK24iZ?LI+(j^%_ng}QvTp%=SM>decefJ8GY0wn1Vd-iY&e>DBtXK`T zghIV{CcdK_!laQUU;);>DE=BLV$Sd~=a;GcZ$sd9uK$|@M~5Nk19Ae+p^_*|MEo2m&H$(+^-5ZMvZO>lG??^3W?|?LeOWd`m$5qJM~B z?m&ZxJI^Q*>%yf|Tj#d%&o?tv3_RWzUYq%6!OCFB%iF`Kim872e{lqkk{)mWi5_3D zePG+({syhSWi)*>A!(Apg%7=~LuVpqWP4-X;B$vWp!sAqUZNXrG8rERvKBpPX$9Ei z14RcBOia_riAAO{zY&I2Yc6YOJTW&rogJMf^*p-o%LoEUHiC(#d>p`|2|-L_inJ0BcN-lV1QP;Jrah=`uS0qnz8*adZyQcd{9OI#L=;AX>r(oOl%B(vnaHc< zFE%Puz!MAUBMH99UPX4Vd6mW$a&G7^iT>hw z4o;@t0GXuTzd&b8Z~@NGrfb&t7N00!)@@MdWkv?EUULM{(ah zr!;Io9is@G(*5jqp8b8cZ4Y86Q+yTQ@MY?UdQNp@cevr%AwPLhI486`&**t1Q}J^j z&Y{BD?z?Dt5s91zYaxE}qE8dIlNa6h;r(RXvuB>>+bxHpk0dm1+QMA!l1_$*PyX48 zz*C?W6ss9-qzylj1nYsw3xR>%)8F4Amk!)X1O}@!YN%49QkO%ot&|(b=vAyf4q3q} zA3~SZBrn8m*=^t6_6ig7#C{kFE+*9lMF$b_Femoq;nW zt;w)AS?Jmn>(AdHhIgp(dAwn1!YPiYUx&|dayU6|e1%FdXht5Kff&zTe(`$t3QzvD zAmcDoE&`KLGqllwpwZ4&vASv~agZ34OX?6!ak%^W5Q1q!o>&`xLQMy3Sb?uTz^yDO zZ@_70>YYqi82oIW9MAU2iP$h%oKn2wW;lgzXwWn=qXJ>=56%VdQMoO@ty4 zq)tepSZ5}mF4UB*F6e-&9mq4{t3k#`2k(iC&sNOYpzPPRr{&Y;)N0{SAF$_>8t%MM z2k1oHG47wU#nB!l0)y4KT>yDAxu7Z-t#VoStk~RY71v5^NZ^{Yk3=VxdjqofuLg?@ z(z1Z_k)H#RX^3y-2Hkyp_#^k> zZ#da~W)05J37t031T*_kSauWo@i?9!L*K$kUIlUVk?_eTdb0T3@9Qg)lDZLrL1Uw$ z5y#+tFY$mboVVhCSF_=h>w`7^_&)nnKkmWt(@LRQpqJH!%&(a7iw1g}eO+l)t>ST- z3PZYPDvV}|t=XaJzhvFblH)`S2k>WAY$Xwq)uAP4@!ok8IB=w>;>3*?1M8#P163RS ze^R%dnau2NvYTXffC#0^4_MHQNSyI_)A<6keF~f#WmGGfYBA|}#!rUNeRY06=ilrs zpMT4NXL(`wXg*@y;LHu=jJ`&t=mb65s{IweAK=>3mj>laD_{HkvEN@O zZ18pRzhhMYvxENA+m}B6x$!zQ`r@yRTsvmGv|ra$;Y(}T`X&W2no@(Z5kuV&r* z?td-*{j(aZCw^I885_tHmDOJmKRUzJ%5~1!l_(_| zdMOo|adI9l19}0ie`DP53Eh648mxUB%a4x+lkE!bnv{z zlOHGLV%6)Wy1lBkSX@zcS0_g0jAj9W$Uf3aO$I1P%rGD&bhMtQct-_6=A7J+d5R=V zO^Pj|L-zSG_ah_5F?9=6u8>I}CA>&*S}!D$OIHmsV~8_Q3u9AXGYK^G!47<3?z~~| zFa>jZrE2V1k)hKUOEs;xAT5|!6Kx~O#lr*5qox8k(h!a$7$O;DhKq4nhEyTkr1Az_ zpKrs6>@p2*#27^80g~V|gP;xDp?BFF{y92S_!i9}veHmG1Wel1Wv_hB;NsO`8Lw^3t|< zk|1zoi07ka7%q8|5fG`{1oO0{lr{<)RO&#UjiW+_tk{Eo@5Dutsf?kP0hupFnN+QL z4F|N6U`R>|B}-|35XIW7SZEVe^kIqMV&<HX#3bC92S|$Q$l9cmQicJ82+Zh}1VhYM zO3~q zG3w#*jG8-WqaKh}DUOUc^hg|;hbpbdK#eqW4;V4GDG4%0c9a3)F>RGlkiyWuCI0>` zMmzAC<^_Z*p&)@y5~JF?JU#qI3ym$P9#20gh-(L?oafFW2B!{>CLZe5K(M7c$*xLg z_kpEFKBVnykO_N=u@i(ltWA|9IwOfW#=vimNOB!sPz2>o@Auvb#^lQ&{;<2jS(dZt zzvaZTyw7?+%XXIYgIdqaa+cl8?vL5;s`4VcuZ+y-EX8HZ&kU!G81Yuut2e8Ue7#jUODliqHF43I!2_DUidoQlV5)!3z( z)Ic5eg2)b>z)DH%+dv&<G?;wI_dq2Nck8}NbUck$(6L#0qM9}pBW(P4J0m(p5W|YU3-MvA?4f_De zAj5x}ORJ$K^iyh2#-r9Los92^YnO|e5_Q4Im9bBeq&vMJh+Ii9B%wz}^|hmVK^~}? zwh0Xxu%mf>M@41~kwo$ZSK8pK#v3Hg)3`dC;gkd)*ma6>$|zXU0fI?poQ+JXjZL5H zrXxW(AgN{slX#(|tzATLan3goo4QVo(wIq=P>{qC`9?9q9*qt3c+BmcVunN-GEmr} zBJ2ab?eQ(U%YvOKtlA{>K|6t7K=5!ZuMCpJyOEe1W9_aUOf8`Z1I#!qt_`hyC`}9S zlwL^8aB1rRA^Sd+)2z$01s)Nx>aQLTG*U;CN3Qj#xS`?w{-voMgpt*^7v`iNl@i!* zBsAG-Oh>ce!JeuSmVtdB-cqtUB1yM5u+tz$dw!a6wx>ydTFOFRE23vzcT9J=7D#Q9NzEE9M2t|J4l)j2d^0& zWlEEon1Pb0*M!bazjpauRP9En*-NHY>e#9_SfGp_V1J?+Wcva&dR+!m`JhfvUEPDs zHcu*1A;a3YoUGp{g^GcP$2%$^1~enLcUUS3hDZjP;bNS&IhP@gDL3CJ*w1KQmZ-}S zY4FXlV&|q#irPKiB$WiEn!T|HdMw3HiVe1iT|MK*=w8qW#YIsygCwE5S*yk>p@2Na zI4o0oX?lr3F2sxJx}Z2aoMN6$z8bkYnY7DXreG3_8|Z~|cN@3?58tQm*heEn@8^Yh zb^p>38+;wemsatA{eO4N{&2JnJr8BVo?&>LgeqT80;C<=H{%+ zQ5l1GRLc|fs1Sh}vJ9Oz)DF_L7SvCDrTn{v<$!$59-jq1@{c`+*hpR1VKTt z)B>7;-~3)_c8TMx2$F$4P(kuYeFLk-PhvySf(_u54APLg zNOEmd;cV%)cX8bB8Lh7&^AK8qLzdBGfM613nl5IBYlD}@E-Nyr*SQV8a!>R6j{3%~ zt`DBkmRCm3TN6ASiXMB^)qg-_S|b&~SNB^~B1teqswS#2QTTr5;onKyd1=ga=J`NO zma~YLbJ)%ch*vcaLp}2bB$XGbf!lw$tgETV-XEF1d4Z@)g0HC9^$kME z6g{IpkvSTTFd&{HxLDFH(7e|E6~u$Y=jdgNkf`K&zawTIXFgFfDBzXu_r0Ub`xm_w zUF-#-W=Mv%53=o_eK*Ucj_=kjy{opM=6XILbFW@8>IO1E$qcRD3=6qN6_8m2#eH+d z{}&cXQhf~|O5%Y7bM)R7dmF7POxv`TsIHa#YSWl0l{!$fww8{qb-WNR7I)ijZD5X6 zA&rqe1J*VLlQMbnJdaXKj9b&9b`YGB;NHoxZ#RM|an^Uj=H&(!iQOoa5t}gT4VKpw zNq8j;^dnLu%slU{2WZhqd3bIh>i~8Q<4TYct65)Al1F4)TgPNB?LrF}HPO*q>~3D) z@Q@~ymSaFt9gIGhjcS0=FhvX5-@irEl#H5GW5^KRGx9f;c!5{<`##acY(ZL}CB-@z zj%L?nw*e5t(LC_h_HUylX~U@}8H8G2af0zt>80fT2gRsKdVc4{GXz_EMa2k`NNp227LXG2nLsWA-rsCxmgYt(j&7BiSB;MbM#M=8-A9uM*$ z!AyZdP3%b^>dh+-Vr+s_GN~GeZy=SFBJ2){im;c68856cR}u{A&_2imBtcT6&^H*< z7L^$WrX(b=JYDaot%Kn@O-;Tu^^wm(tov_E3ZfW>2zy8&LoH;ektCHcFh{C2)yQU% zfB&Wfd5T>i^6%framQK1dW+`K;e#&nx`9U064^2YcGGmE(gVb0kfD*t+@>Tb*as+P z-&(ilDMPPK+U_vKN(of9k>uKM*e%KSguY%#aBY~sv~q3KVoes}0g|9)U@xeq`jHqZ z1yyjqF+(ytr5I$L%4vrO29_s&kgq1WcK&-g284Z}HfaV%T802~5f7J=XuuG5m$it! z;{XiFsSidKtL(=VOfutaWKuOZ^$0)u8%PEv`s#UWN2LxB%JhYH@~5*Le&z4;avs*t z3oNe;jGi7I{zPCxoy`%9i9S7c#Xdmd{NTu(d^;bvyW$+*JrK4C!R&hmNx)i9>>bs) zl6m5avS9EP@%Gr7prZ4QokF^xtZmQ;!tb1ElK~1EVRw9sif7RBv?fy&eh8_9xe4WP z!wiii0d^^Ao1PcAL57^UoQ1qF`^xzl?XdQCrf=StF! z_m|?;s!*Np7KwK>JKeVCTi;%go+K$%2>lRA8EcCqiF_#qBm*K<3zjgCPa`wFDtsNQhU#c&x+o@Yr(n^xlch3)=p|HHpG%wE^ z_Rx9MH~zOAH)79+0LIs(8a?HAQ%}4*#aahxp2Qx$?>oHO87P<`p8W;!1|HM7Ajg?> z+xZ2q`@Ns|`!|K|=})Jcl9PYr9rBW@H-9q!yS)DU3(gB{lu@mDerT;EIdwbB@`Sxo z3aa3IA+zHjw$3iGaT^B0XGJW;hDCuc0l8Jq(}(r~y}(|q6+rMu?t^E(8IZD)wRfFt zV(F1cPFhUBbU98#liza==M%oa53`Kb*!?Z5ZN8h>MQU|G;xUN$TI6ctE(%PO|r##Jhz%^6xk$^}x(#+vh zso-Hy)!NMj3b@Of8?1uJLz;s~-;(=8jO@~G2*&8jZpBT^2-v+&>)KeH-9$aRfawjZ zmFnV7d^cDM;qG*p-LZt{T@1+;Q#b@H7}S8E5eN0DG?2_A$KsUV4WJR-9NCP~p23Dk zHJ^yWfjd>$lb)pDTI~x2oyNBx@rJAAjhsZlK?x12CSs?|cXQdff85HaB2WXUxe<58M2&@IiL9uq6CG9Zg)>^krIHiK|P!I}}$Rd?VkmK~z$Sz6xkABm1^Hh#8hg zPFuwdd{z#@6CNgjj16o7nIzK<&7Z(#{?x}6fT;mPLv>n^MM%^KYg})*g$E5mq%WKI zbfyNqLT*S6$7`*8R+nWdwKscYI}9 zhlzG<_ru`;h4K{UQQXHJ7GL(DYQzrV_G}B(h85@w#o^|b;Nh@)pIpHW-Llz+#XPfH z!RiuD(8%{Xv(f7?Q>gZpnFi#_=9>xdQeBaqidj7Cf*;g5B^VexYwtw{9{LgcT~as% z^ijX$(zTMv&-_q$!X;{CZU8~AoQRaxtgYE|+Hp?(9{ox?bGi>_wu3&1dE)L?BQD z{H`2*)t-!rxPJ7=N&^kZ1LFS9tm8Bbh~{e^_PpZyK|?1BJshj}n;u8A zuK5X5!eN*xC5)I!cShtn)AG?MOvSDi$rac=kwPKKwCpLtXQ!Xtb*JthMQlpQP6bl~ z@@~Uw9<%Ec+~eKJBE-9sO~tfWX$r_wWSHY+{3I6ar^J`uP!`q^A}>6{5JnfOwqbX~%8R=8yB3zT5wIZVq|e8hVJezY=G zLPPYgxvs^E$WxbKj?<2fFd=7q7+=qR3L-E?ouZE64Ntsg9oPHy5vDvJUNSLLO4m+l zE_C0Bkw43JdR&ddu{Byj)Si5~$4nzHFehNkFTukgUM0CeS;A|L;iONEZrh-&2JDKD!+|86I4C=5^*5GqqE-zgQcvUu)9HE11vtI{^P{}Z4-oeO zqt*>sjdNPui_$wAzFdjT3yKiENpQ${z_AvEA$ce!uuyhjx1zhj*HO)TT+N8@b>kDh zh&xeI=&4RzBjpv;pwMk?P={jrdpo|E*zZp}9Xn?)Z?KWTlGW1#xvs|I6}f(4BIM2k z{`%AT&fx@&T9-?wXcK9H0Y_%%uy4wwG{rZh1U28?3x+pfgE+}8^J4JA0!ucOeG4zZ zvO-OotydGEBn}CyKkZd!1Zq%d1yLU){0|L# zM0+7Vg>e**te#VXOU5x@;rHqYw*xv+3$u-}p z0W>0RxC%8+3eYE=M4+>FR;S|-dSuepQhy_A$B5L|82i(p^m@)4!)a!f;ozpcYyFWctx&${Z!;3#cTG+g2+=`g{GVmOqu62 z4@E9nubHN-VTbS+|jcg@wdyptMu#7 z$ATY~BI;)u|GHf3c!>6%VUEaimU;dH5t-Om*bs{V5^j1yMIM95IJ*T?189V6=5eyZ{(2EeFS2Z?Ipup_ z#ErC*zg+Ku=M;Z{IZ-%qP=k8r#RP8}o@=veIMF-)iz2c=Oy)x8;yFbcxnKVFvz4iu z7YOMw&1sy+3%#EA%$(zH=2jHOa$FG~TF*LX9YY%B2e)e5K9`o zu^a<>jUZ^S#;a}%xf)cb2XUZCw9f_@)8?vqz%`fkBg0&@y$vK>AV`DMJee{c;R$#d z+0Hg{!a(~-gS9gUi1bpl^Y6K&#ex?4+Liod6-?U;;kOC6-rU%&P&h@?K?EAABNn9% zS@WEDjy76tdvgw z{ggjU2&*OF#n3Ud&M!`(iEDBSjbcxeg_nzWs1bTkLkZ9y- zfayPc|6lcg9sf_KpB=&fbU1CE(>JA!#)76X!<1x-`SHZGP1UR9C$38W*QJF2SM&ds zGTl@BK+jmkH|6F6KG%FU_2B92FuS2y)fB*H?=)-mgN9|C52Sv-X}l*+Z>IfyOejc2=jO8k;kj<$}_HxMCLQ z6RQ_)qoW%-g5(J#Eqm9h2H|!1^`TqJY~Ua z@sUL!n%{P;n8P7}8oXgZ4Hjv&VlD)1aYeVItUk|*w+GYB)4mF()R~>c%$`{8WaI*_ zOJ;IPOSr@mh3c46uK1{)!?^)<^700vSPU05tD1n6#F^bxR)f1Ktr*S@)l^8Geo&PL zWaFn-E2;Ym(BRonC}@{T-Y`^ScTA}PFhyI!ACOWoL8Fu~IQEb?`3>Bl&crp+>W`9a z@&Gnp3C%ZG^0v5&*^ljb!A8Wy#>Dqn`jH&inq51oS*4-R_wL*SEBV@zdo}fV| zAO1_%8Kt>S!(eo+qSc*h;wVF;6v8u0fi3XF8ykbjmMuBM_i?Rre%Wr5=1$w0x#fpi z`KTjsty`~DLEf|wwe-+N^d>M^uod=-^o*k5OoNa+4$?~PVOjy~7Zjq{fw?PjGQmj~ zq2#4N^7V^m&l5OXZi-BY(*YM-w3=tK)} zkOh(qlZ_%jA=x34f^{MpY&R)S z>WAUq-m~xW$m1HWCntq#xK8?U{eeQVk`beoU3)F1 zBOB;u^(UZKTt&d>fs5DH!+nKHg?godfqavV#Ol7inHGX59K;tqKx=)$`qhEB;`Zj# zXsM%E*$>nUo?ur+1A>92B*7pWIy_KXUeIn3OR=IGw<-#ibo1JS&rWRg<3}BdYh~OG zwAL4_Xxo$6C;E0G;vtd!Y%OgBRjRa*RHy~($X4n}DD=3>YQxtT9PLQh2KWU|gP&lx z`T(wV!5Tafy>f%yt6k`UiQO7~fRz`OV$k9R_n!|mmXv|Pq1S0WdrOF zs~hW8cN>6fkyfbsPtYrkD3AykKVDX_;9~HC)hn@+&lX@SSj!9eCo~e=_exq<=|*bR zPWG`vE5HrBihz?=;`WUf7wXU=Y6V(-fj7vZ)}2~`TKzEIP>NN2TA_FSs{5vE*mhXF z5?8YN3zmYrT-5%x_^;QWYs>Q|NG- ztNLmMTKz$F3(-2FeSUM}ohz)+U~Bc4ZF>$P2wVyVV`IA~YD3$+?Q~qj)&1!wxJE3* zA03Dd83lKv-9EC?Nj)ui)pC@pYz11e)jPasHL!(x4cDzcu0Id7vEX%N#x^XXNPN+H z4Vw)=h`lx{Xr&5oD?K`iUMLobf}9r|Hb5Pp+ung-U;(@0M-Wg1f@l@uR=xY#O50=+ zvRVqXidJj)%SPWzZM4?&`U8(`wc1A5kL9RHHp!khTdm3C8lGSyp_N1Imv-I&#lG2Y z;dzZ%>i7eT4kE5xT0yVKgBFTn|LAvkA%d<0s1Y%8z=gUAV&Fw+NGTZQpFe`>Kfgzd zJr1}~G@CUfHATGZmfITJ8Zb_y$fZCs+rUkMA!=-L6p>^aEwF!{M-DivXzB}ba*b`= zcS!r8*aIFl-qEjr{-8H4LOHQDIj~hZN{1!qB4?bW$b&;(FK-c;6U_-B4=4NQ9*~33 zzg{{{Dhe@Ro^_$LLI|?r)TYVvhKk6^iRVC26mm2NLGAaef{b%}E`sW;s7l09&nWi) zyGwoBXNW!4&6NgTkFdI4`yfXnp{%$0D~>w`Wb&Jqg16*0i6x#jAl})Lz;J$CF#|VfAUk}Nr&CbChbj$dj+*kfZPvm=m=Kq%;Y$(k`)Hfz(Ae~c^#Lb-QfnGgq%cDlO`ASd*MlHPtDk~zu=gfStyz0 zwVYLCa=rVszeY*3=b6*3Gh!*2b!uyNPLg{vwMC}BX4fEoQMyiRNu!<`Ikw(}9E759 znkN!9b19g0YHM~*l6xZAHA-&9jl7e-LawX*weKuOTt}h?UhN1S)sYdolSqiw$sP*l zvGCLm9`1E)Rq6YURUhQ)N$j1Z_qBbbvGf$erbuq0>l_i zFl#n~WT~gtv(wgr$uZs=4R_%UqQ@bK$#vtlowkOK)1v7hREeBUuXSd4;pq1E&ZtYj z@o~R?T*C+KR?x=1P9hsBGPKgvzAfJA6_7ZJ2$;&oUWqz7DXjKhXE~$=eyk>ba3k>J za~CjR@sA+l4a^v_@4h8)uQ9-gmfxJL6kSND9F`B7rTBs%0A z{3hfe6vW1$Q8F(=QA^2fP9jq?t0+a)D0$}CH+B3eCU`sfT1TkmRSRugVIx*@)T5H1 z*EiTF%9Xl&-T3KMI&9ofBT-}#FgxmcHrs4CV7JU}+N4!tr_JC2eyTmX)oenUjW&1lT(+Hgcb)3u}Bn6 zLPNA8!9e29=?EyED)LhmoRf({a*cNFmFH8ibd0gVG1ef`B_nd@<9JRc3c)3?whq@( z06y(#hn0fW>{nkuA&F0Q=WLKvgE0eV6@e+x6wEd&&o0vp|M1or`tL+qC`&5`Gn4|! zFq+05M_wqZ2xObuVV{JFImtrNk#V)BpufHi}JDOk>wT<^0~|2Oq#$6F)KUsnwF1+)N9!2-A7mTaFfYOmw;7EwO#{d}!-PfEc# z@`Fj4-m_csP2k(djPHqjvsAtf^_x&{$v2bo?FzjVai==*u1b11vKSMWrF7Kom@Z98_Tl2Nuo3SnQ4Th_)o0Y|?NUloAj- zYERcd5jnDijvdj^fq9xl(T*gD98DC4Mp@C3J0M2Z!SoEBqc;x!^vmp`kdol_HU+wEJp7b%J^i%jNMszmJ^9+petXH&!i^RT=iFZ>M-_z} zXwoHjw{*b%BGg@ugZY|~9w~)@5Odjr;mg0XHAi%h{Lpi#--P$*yF^Ds1(Izf0x9^M z6nXd-5CYRH9!1(>+8}Zg5s0SI)VPiKco`f!UG)w7)2kpGl9gYelv?+vS1cc}yAX6@ zC+R>iuoN7^14Y54X1~=N!t2lD8vN(5M)m+krv8m^Tx`&nEiJGT8&DnPDywO&Y(V8I z#=I>x{Mr`5K_cKxjl{|qF>)ipfq~S?F0zVRai^sfXq9+@=fT1BXtGd;V#_;o6p`M% zeo%-!L|lCRR!6Aig~XdL*cNI~z-uY!*n6U_ZHd@miQf-V0I5K&u-ApK_`ULTqBd+| zMR6x$$3V8b2{Cdb@j4Q_RcCb~;*NH^E(6u~NE6Oe-Htl4m4Ept00NA-`)f%`6mC7W%&)8Qivijz&79wwmh0z(ZUnx zaX7X{)EGD2TN~aAeerL=@NMw65i#-1zMYN-6uV~2$hFRn$B5*u?m@oGzu{k%-nd6< z{9_M~cIOdn+6~l#f-Su{WUb%H9|f`2G)-fWP4{ovGkAA@CD7)EgUT0?~@U+ zb}*qwQ-1wClHv$K60yh62)3ewj!z~h+G}>;d-ToV<30Nd8x^4=)e18KAK6k0?Y)GwO(RL!M9sGtz`wAp!=_(8D1M5eHI8 z0HH5-Ej@~Z`hMIU7fk&bL?EHA2%)?Pg>IQq5jhf5B7uM!A>cla}4$({$NM|MpnRtQ^KNLd+VvHo1aUl_itOuzzj&`u*h&)0e&vtt~ zcJ-_PJhBo6=pjPLj|9kp`h*xoV1gcz<`$2&wi(oiD1=68DQUrm3MJQ0MkO??326{dtam*ATuTEA1j;xR<_v*|9F#`vp2(>~Y3?u@P zbdY$6&bGw?Q?`ka_T}e>Y(cECe~nnO6Xuh!iyut1z5$vjc6#=+`38v3Kbq%@j1rT+F#f++NK5+T)7AZ;eUZ=quFHk&o!Oj z)*m?00<|uJ6NxU}nrP{aqbb}j`KaeKp&t1QG ze%*pq-svoTQx|(7<3{-vG|z_5N(819i8JSwe;+7fL|v8No<*j?@qQWpWvT6p=L^6C zd!oG+^-CZ)h=PH=r;n`NqVIzT%q$*`IW}bZUO4i$18=SAJw!r|R4Zh}h*m1P{rdR~ z(Y%5!tsz_bnWjdEr291G*Uuvz_ttnz)Y<2+Y0vh+8O_Y-?F_Zf%rnUxgA#kx6Wykz zFbmDqeRPCkH_~y`ygUebYo$&j_{(0uX#}20g4UVFedOK8*^)anTY@!oCq5D%>M>g2 zBl%D-VL3uOnu4`9b!fLHUg3Yq4-m{$D`dogsZ_o2i6Z^T?5%gcdaE{RM2zTT#-@Dc z9cb@z9%aPe{rc~!7%`=D#{iCOfQ@8Wy0|9h+dvV3pb-gU$85^pGbdoMO2vQPc{kYDvy+s4P!o$gRO zcwk$pzjTT2PuyG9&+j*Ef5_-@Ecc=UWDPS|cR^c<+PX`Dqp`NxQv7xm*_Yjxq{ySE z&vZ1s769>VV}AYHn*SV4Y4u4DDDB`@(bCVO*>9jlIa=S?3bs6&>Rj~*PuL!yPHc_H z!Fn{r9<0lvk9q@a$52FTN8=ZTI>9kio+S=6;^S()4Y!CR}7eJ*e?2)kAT<=ClqkRv*{;k&j z=V%<&-b$S8iD23G|jGI{tVG37$}~@YuwfGMvjyLBB{fXUL=Y$VX()Zue1%g z5dZKjaR<`mBZ~HvjF{<|NPAPY*GNDiO000uMq(2UkfZO7n*!A?axft)X`?3<|C-He zHJ1ARx@`NRHTkx-z#r%rmbO3ez60!sWKFfEnn5sARfxz5QkO_ZO{f6~A`nNa)jQ{v zxU+dtVvdlvAq`ytIZ*FnWOrA{qA;nXoWTaYa8uF|?Szy;6r%eLMP~9}#S4Z*ZcOr| zlYqs{M@j*NW`Y@M7I-`gH}KYi9}+9_v8C17!3K-P{vBjsM;?wSBYL+TZ??>cGpQ$1 zujP-9;Brr%-yV)lGwe@9wykgw%v6LT)(ROhB1aI3r4&IEjA2YLQ;ea&;zmcaqurQa z|J|RQ_4_|O_a%ch+-e<>J&3@FdPHsB4pF)&F!v&;?pQ{*&!?LyJF&>4Pi)6$k0|i& zBR`=?e?Z1r`o{XUqhaR$g8S0oub_L=6#xDWH{_!s3vGj&-?-a$T!*9D0=R8^_^WQ< zf&MxZvFA2I?f(p#t=zLDusXZ`k)=bhv#2MvW!vM4y|2*fjr(gZK@t#P0b4}G+EC1g)lM&k}8wnoH-s3#AF zu+m7wYS~B%9I%bh?8mw@ist^Z;)ywn<9oD=RBYqx1Ap!kfj@Q1((&0yeHVMxC6`ju z+VhR$)F-%Lt&lkPia=&vnG$Oxf<(j-^F)3FDx$Ua;iD(DNY>Pku|0{7;4iW#vW{R+ zw1A=kiDwkaQ!JG_qV9*H0zM*9h{ypbgQP*Wn-vI(Q^5uWS^YZVi$>yP6>3Y2cLj*% znA;S?(Huy<2#zd!Xxz3Dtp0WP-G$w{k@f=-Mjvl&g_dTwTR%Z^P{~#AQ1~7lA8%z$ zbUZHx&uQMEb_@QtFMe#ud!T*!1SaD*@sAPA{ebOgjA>thExloD@7>xWc$iwz!ojjP zSoek)td*lx@_Mq}F@ zD-P2O%q_65fQ!Ks?zi#pX+60zZfYYwLfy|46PPGE;SnOvA=2-PsF~@uR#2GfDE4bD z9YnNIh-_JYXKi4h@Y*+V(gQ+9cG%ujFah{!J4taCubwOJ#Cn>xK!3r75`mL^U8%+4 zlYkeckG`mlNN91rKG4o)Prkxm+6LM-YJc(~uyhfxLR%563YY$(TCyT4{x8;S3nE`h z`IDFHN%Snk^Db*4y7oTz>UHr?*h(RLKhGVX?=k!O>!&?0a}O(BsAXzDn>tHBcD5?G za8<7?C-;Isilt5~1%kvt6fN$MvSb-1yRpTvcnkl*=67zu3c9j&lbq z7J4ktl6VovvlWF4ze+-8;*(Qa)CQvM%JG$4)?E;b&|-LHS;w4b(Zu%nWy7!tA>viZ zsYq9I7U5x$HWP#hp`vuEeL+|_ls}(1fkPCS5IaO5fMx)8e1neIsHU#Cb44DZ_V(`D zMNt&&DD=@s6=n)C^v@aX&)}vJ=V1oh-&@!U(!whhp)7d8b%4mp=xQ|Mso(kC=m{al zOpF{+P6&xgGREHT@w6^B)~idvdQJsPqRVoNw0 zZ~uZi(>+Au2?Qb6ij!iMdez~MGCB0YdNd^W_Sb?Rrzg#1FEXc@l^A(~IMnufp~g&X zB)Ac#Oqs?5)Ngz9_80WO<{e_c1a(9^gXw?@4g^2PC)T`s+mJ&Rfk|ZX*oMYOWw)iletVw# z0&KbM4SGX+%kwDqv)OXPZ_E3rT{Vk;vnA27mF?bM2s4GqGrmaM*flp2@OA`I@~B53 z>nygk!_pqfQmgH7oft z?vdUzgv24r^nW2?^o#Q)DH;s2(15?8DA@&peWSB}Tu8c5I^3N^+eTq4sVYohQPSR( zX2GN1D`-N3jL4a5g;ih@X{808xJ6`m`xI^pKsNo=`3H#vhughndLU=9)NhR$LW%#5 zNH!AD_9_Qb%-f?qU~=oVKajInFm298q*R(tBQ&#rb_{35uI#Glh2p{f>yGOo>9(&u z1lK(>bj7>(&VnUE*bs|TtOGsGSYnHV{utSCxZXhMR78ZhK10M#e(Dn#I<;xIo- zRBMo3hzjv4MAw=^)9_3XVw{Juzne^?8BZRm5b1-_*5jiDoO(D{yB(9uvE|v!MorYUmycs zz4WkITWb{;CYC7#esiGh0htyIwE{8colDaf}vvfG(n?yX^PLN;lNRYDZmypaqc^5eD=PVrH56#!aX# z$O}sxKvZHuZ#NA1>pz(a4e}2t6Y|13xgtp@Aeae)Ei?gRq>u#$5Qj)J$C@IuqgDtR zM`oB2!-_>9W=K6ulN3VsI$wjmxrf*`m}A0w{S(03L$tjy@HzO7OwTbZT9eXOy$WM6%JdD1GYv4 zJWvG^n#d!0kqsqV)?*C?x4l&~W68EliGSQjAaiYR`o1W@N2}J_p_4b+lC}fw9mwNM zcAq(@!v@|SrE)ZdT&SO#KCt@eG0(@ZUpV07(SKGyaX@FN6vEYsk@G-2nwx zE<#!4e!D-i(QFdisc1>04c}kk27Uu0aH3ooOFjEv5(8$I5nfPGi8Cv$3`6YaAL&5< z0i`KIKE9vfJ{Pk}O*4jG!ec3NA zJR?(p-)MBd9e16foi^>U2#s7ThD?kcQBV_-O*mK+M~FQeJ@c|SWJoRy#Za_;$5@_!UQ;N1W7|MdU*kN>OjWNXC>YulDB zoec;+;abzh+AbYkxN;@^B$tz~cqOlHLDehE7wW2Rzt+=7^dsj!k*g7URyJM*xXmIq05Uan* zFV;&Jc~zQc&K>%Pjz4O4UqA#BWJ-l=t-a2iRhz@yMb6X6vye<0ySqa1U)?^*Sx2NT zQe6M{X^R|D5@4nxltrz$h~Ld(bTz!-+Aq2q&1jd^%c@W|wDP*CWSg3du0~E~;pLt5 zy62B${xm|9FUT7}rA2P{mdE>71hbMP7)}rP3pSGUoXK7xYy0i*ToS) zxzM8KB>N>`5pCv@14IKA(+V86@J=x-iw^`JRC&wqFCle-DkQOr!plYAG45XNmBTa}? zYkGLJ+gH>gKQdt|et)lt!2BtKv15Bff`xLWpCxo{Md9ovDNYmy^nN2zn>#CUegoJs zhbV{>=_LClrU$IX4tqzrulCB>y0W~g(~}}NE8?>gfeWdtl$HH&2wgk!?lJ3AaT6%$ zAJgV8g_A*ERUVox-LC8H44La5zScVR)*g^3u0*u=OtZ7M8)_gS$d-v#-myYU@RRwu(5^}ymSVy&3q(R%HrcaGMkHR2E{WC3`<%DM=GRUogXYAQEh*j(s{eos22HBhaQgop!4>eH1HaNB@0ioi*nYILd5gpHPhl~!a~4BAO9my$27tW)qR6q_W|9ISP6jfaqS8D+H2N!JUBasg(VC7gdv#+ESy)r5yQ%S5^}21 zDBi#sMInn^Zhr%0lZW6vd}NcAztpl{AASD}Y!#|-<$xEfh*t_OoLoq`94?oodL^$n zNl%Jy$Y&`;S61LcYLuT(r3HzzSlMQMXi_xFGvf^x&mH>=#}{$vpiL; zMSX(=nPQ=omMN6Jf$q2<@=3sIL{3Vx@Fzf0nnu;MY9jH=ZY3qF&^XKIuJ}o>i8iCq zjQ+?t6yn6sCnjb}C=v5RVUK74rhvItXNsdj%vl1Wsk~*2azh8Pd&a3|J{( zI6%)wV@HWRPiw1k2w60MdZHWh$YDmB)gK*U$V1ub%`w{s8tTWRpVplCghl8uiWNhQ z*>~W{=tK%J_PCE{Ks(3HR=a-!eH?5n6NIkO69QX$6OKe96(Ntc;*9%v%Q`cUFr7%q zp?0LtM@G_F5CSps1VIfzp{@vxTq}kgimC>9K4%rrB%y>u7Kxw~a_G>Jf(-NjBtMVxPY1H_bA;K= zG=hkivO=ASU}mr0=&yH6??!vD<W_yu+y~V8Bk{bIjT16HVrNwAwwOQ?Rm=J5lKpgTxF920y4B)GC>|KnM zV1$`$B-s)VI*>MES5J}=?S00;b|;qkqZT&w_UN&_j0LNy?ej#o{OWtNp~yGvi(Pft zm$iC})(W*f@V*oQYt>rQzy4!OsQdF928pHP0|0|sJv{+NxC4(Y0yC@U&i3jt^oFTc z^!)jV$9<&}yvPCB(KaZMMhaz;I&{RJ6ykH#$Vf`aBTgHWUqmCZD7dlt0!7G~C&W?5 z2|we0kWsw<58s9T=%uy9p8TQXzrv<4f*iSEts@Zc@$=W(UU;Lu;0e;RY`MKO8N zJh4Uy7f8yI?3h}zRUy~?`VW5F<-wY(%bmaeJ<@-w(#Sm117&&U(LKc4oW%CWJ=LS7mqkkx%$gezno<7n=F?bBJ(yb2bFo z$by=NNa>k4V`L(28MOuE2lTx98Z&zKZ>-zyDJfk9-H=x$L?;*SJ-J}W(|@aXu*QJIma_`Xm!TYD0-BqZ?Y7i1b(diC?=&Q26oE2~H~{w(wD za`#*DG#8H_3&ae}#6kEOq8I9_?6_R{MUVVW7y44BxfQk-VibOvnX?js3#lim?QAZJ z!YUg7!1^Q#MnJSh?%hrjA8K4yeN{3z|KLe>a_L0i!fJB<11PKVv8%kS)pKpRQkRaW z>=hCOvNNdDQzM?UoQ=APHzRH4#Z%KSPM?KL#Ct2HCsR1zee)XiwZhrX%6$1Gm*?l} z#q;Y8bl2uTc;&8Av#%orw}EIZ!mTBML?oKUV?pG^wdVfZyMd5)Np4+%X7a!2SLZ8A za;=kvX1ygR=WL2Yxan|h+5%fFdIKb^-7AIysm~9K93Pyjb^_0N3^q ztr0nywPycS)Q+fU-4^!(F6)Nbl_|5rZf{K4epo-mt5#UKR$6P;L3WnKYVFOy9Le26 zCHestJKsh)R^fX)`=$R7t^eNYE{_ium~Q*>_prTv`Zv*x{)C0xjNqR?ItWk!2wYIK zCDFFh0{>q46*Crhsfy5rsCE*$l6sa8 zwDK5sg%=OkX=z&)V|z^m!8iyymE7gTqvLd7y393 z$QNCDn)<6Av~CKmbvh~gdXCodB>PCPe@sm0;%UZw~9x2eb3qr&#CP6?Cb$fQcglI zir!e?e*JpyR138Nut!9X3M1gX>}PjA{Y1ybzkP+-@s$+49IsdMdfJPL^<4Qmi6V4z zd@>>zb6wOORcOmXY~lHg$+dq>?%+28y#Xpf3kt4WgtDj=7om^^F9?}MPlB@0gajFh zGw1ov7`LZA037f09w|VjAUF|^Brt3%=sT3enk($jR9Bs5?6vy@Stw+c{{GFD-Pv=} z;Q92>yU(?sLxy$&-cP&E?^)Z~W7j==t*G82Pmp5)?Yv zFILY?wrqRT<%yeLL}3b22meWd$aH|h2q6{X0Vpzi9x-Asr3EfRfjDGQ2&6L;gp54k z2@rr7BgsOd5I7Rggs2nx%x?&BXdD4KM1cvCxR z97u6exE_rg#E|X&cBC0Agq(_$C{iCeZH6kuoO|AoDdSp9kWnOy-euvuav~1YV-97# z)<_((C?ujl>X}ABfsuKn@FcT;nMBG!i3B1_Mh!p^fjE-r?39s`^{0(}!G|c)XXao3 z@jNS(W*UE5jPK?o{6t!6=hSvFtVkDv9K#h?vJpJ13nNM=r>n6W9#m#OgdS7|N+fwS zXB1ueG`R*K;z-M;k!a>jd1jdjs6Zy*zz?VuR?Za*iNyK}66p?kzB{q52pq)c^$B=d zd!Y^Oh7Nw@f>sbkAeyZp)QUlUB(=ZN|X)w$Ou0j+NUQ^It2zTtt9`u#?=!m30Tr4$9#0;19MCbZyM zpplPX^EwF*W}~$K3ODn(No`-izWgiJx`%39(Hauk1KYARDOf8Q$6iF5Mp-H0)gWKuXt3f2%2 z86uLd2<)OWH-~pGLL*Nr0yFzuxbI{v3K9F4Ftf2YNSFR>%y=$Xg=jKj`QGT}+wNCG zpVUGG%a7w<=}tvjh_yl>4p{^;0UHks|{u1krg213dG1+_#ug`6jsG2aVpV8 z5Uk?7D&kX-XjWHZZjOxSL$O0m<6$g>+t&P)y<~huvmNFE`!qM} zIY?-PLOy@*`(vd8D?VY|xfS1^ne-zQ{5I_8xbux1*sANoZJsnZ_>a1;nigIra@m`a%9-l+gxd-}NMv1ckg4p(wQkYP7$5G4dpP z*(K&okWe%iYa~jwny7b;LS(@AhaLQ%%!ljDofU{z1{W<(@hS4*G5Eu5Kch&ZC+YtV z5mI=8A2u{&AEk!umHwfqQD^N>AM)!b6+!Q_*L4CB7+AVu^`Y@f)h38as}%xq%-{Jm zPS~6OyoVEy%si`(k^x%Xm9hONU@Qf_Rxjd(5uK=s+B)2zjg(XAC9d_J+4eN1a_fLIvW4ww@#i z66!<=Q_d(7vc_y1l(En-I>MAR)4b94xO&!^d4%aiLJqYt&GjkHq)HU&6Z2ey#)SR> zN-Jc%)(VCFpA3pV@AbC}pWSK}9`a(F~wr3AzYW2xW7@NtzkTl#iyxHt0oJkeHT zKrA3xPaoW<5IW>@r`g&HTL!Mv`y)hFZNP-V<(nLtC>KWCW;=ul5hz5)dc! zXZAn9zTNUKWchwW1-DGZJ5$@6eR=%qEBnLa56$cQKYSPXUC>|ms zi$DMkpdRf+*FX#bG=P1zEHk4CD&V0U8(Hxs6l2OfA!Xml@8lMK{m0vCe;qr{aEI;D zGl8SXoIrGDAHV%&Z=~IjM8SbZn99Fy;Y{ptrZk6I(pJF=6khjlX!~N@SMu5y`{v8O zP_*ef>`Tl0RKNaXOQ2ihBR+AX@lQK*H+;6T0jT;8`egZ{l-$v)wx<`G!&|SFIHTao zMJNki5E4^H9p$2kYI|EV_uih=M8J?Lju28I9`JnP%r=eZS~IIgwx@>UOgfX|$Zx7O zlFek0Gcj^x8#mDQ+<{*dkrPOsS~S&agjq==JWP7#2E5U2Q9){nhm4y+X;#I7(XkI@iIo<5YN4keoTGZWpTx4%N1 z9>@V=Pb&L_s^I;Kf-c5NZJh&Z#R1XBn;bVKZi#&m8!3YyD2z_>a1B7jk!r<=zCq4` zcqSS#tx0B5298_?nGbzpNXXa*6WG%7jlUl`@tDYUNLX=jet2j@SCrTCJJ{*?s z^d#TqCnFa|SL08=EYC`Z`d!aYfL+4jRIn5~kDG$}&67CpSs(3wYy9j5E}ft#ovp&* z`V(r(Y~a8C=g;}YT`9Z$$%^s*+wbw7EkxR`gj@(%jJjy|8*s=vbE--)We&ih2P=VO zOcPSf$N|Wq+odp^HeemY_KSkph1TMokhLGh%pK`TRh$1k>NIcn{=vH-J2gMqXyLVh zU=xSEpc+b176*wDnb{QuiWK$y>OR>Y0^#t2lWE)loJ%8h&;j0 zaC2@qDj<;x0Eg}-+Ml!tM)E2Av<_nA#Ry)gB9xsUWm+Yl%|(?cUAT)vT@4YR)Wycp z)y5H@%|(^SmDCG)R*Ia}<-pHJ&Pqoix9tf~@d1e`6J%t=q%1g!Ru2v;lOrQpbcnluU>DhT@7ZW(U541rkHYVi)ygUqkxwoRq}oG-kgG;w zhhINwrWd3{Z|ibeK#c^eA82qAu~J7(7+` zXF;p5`LoiK%0eP&s?NCxMdSpzR5X=pgi%S}l4#1a;%%QTpN%3ProFl+A-@`Z5~ASZ zP0U~wQOH?{Qc`J_?&ZC05Ms<6bLk8b?T^+9UNMG+2AQr+)p%{}mo@ zU)H+Fc<*PcZjTEj?v>zbD<$O!?GdSew>S$)q#AnLehb4N!q+{5^2br3M`rTboMa(U zimVW+cbT}K8?<2KMaW$B+Yc^9wv*zr;g#0{k(1HYXl8VL3zyco{xBu~V zM%k{@FcclD072C_N~x5x!Z$-<3`~HDL8Hh%atj|X-uqZ~(%iQ9-6Tz442UmajC_u& zYmwS#Q@4Z66H8SeDx4RxC}wed1k^s1s(VqvUi@PS6EphEe9mlg?-kom`Rg6suwMZ+ zzD8TWg?aJFXRcpk`5wa@^4b6iSd6X!U7+BPs=T zb=Xy8lpV)Ucp$4Li%Ab3d88f!JW!8WCjZWIz%v6A^NjZAExvPeh4;xCkIQ^rp9=Qf$6s78S_n~rjTzMki?V_lJDL+%zFsk~s$K@5#89v@H_n5T zJXgfR3bL4hwMNAlt<0^+*kM-8s|lD7<~6nif(KDisRo^K0~^rA1hq9n)gpvuR@G7O zMOcUB4;R#orocPp2uRpjP}SRXFW{Qm^H@kg+j zOiAv4Ot>cbOzx?PJtQCiPz-Q=S?m9@yTPa9XE#)l@R1^!|1cd zO8`IgzsE&@zwXq|hRvTsDz=^~ZT~&s!P)8s*A;Nj_di;eE!(zls+^`2v`HND3DL8) zI0Ke!Z}@>0(i5WNCu(Q2l7{bo?d>O@i=U#o{d8n2nzR@v=V?_`N0mv3SO*`|VYNFC z6u|gvGxZpF?t0t+I6WVUA01$t{9IcX8-jNknIoLH-(4hBnUTHo(J`+-8tTbM!u3cN zm+gdAoX8{wsqA*b@3D;d=l$u~%7_N#5BiramMi;HY}$VC3BI{t=V{>jC z%W*U+RL^#6{(A?>?2P1GP@YtL=EoyJjM3t)ssv^PDk%Az0o}Y-STSeT8f3ZU7r&>N z5Q<@8%8#+Ugs(=Uy+tFJ+BTqPBOED5BMV(^LgY&o`E(|W z$&l6vg+Uy8)>RbjL4+nnpi2QEHbe0uGQ>OH-h0umFFF15DWikmhh^ZgpP$3^u0jLX zl^jjXvG;+s3do&tMBFKSn^bP1b7VFTx_<;*M!_IRd`h&c58aiD;14;kDB^bDv*Nt4 zNQcV5MezZ{^3+;3MqZ@Fn{aC|7j~G}4tD~*Ikz2yg}JqlfTzHx3ax5$zZaEU0|Z=y zc?K!2j52TW-gamA{XT_p)Njtpn)as|-!XU*fj1)GMOmlB_%r&FnA4nnCi`v>iRX=_ zYJ}tX76qV=>H;P!72EFMA`2JGpDhOVCG#5OCSw%OM96&eqV-L+?JsJLijUs+$DY|; z{%vgz^YZ~2pBi8B_1YxvaVq$z^Ia_u4^FXsM(~8iRKI0kr}WIm-P|BC+o3@C#zk$& zZoE~CJ&(!I^X|yb?f6W-6q&(B%zvb|*KF5p6x1Q~5NMF;kiO>7l zjD+{+WTeGW_uEg57B|3yWV@H&A>$6vaxdw#ygti=oIBw~gX_XOJJ(3erp!Q}_w8Ln zpONUu__mod`<#dqL@+?uHv(;>&afqr`Da!m(Y%v1{*tOaHsVcI@$wY%9hntGkYD7W zaqJM?thgvEI{fb&GM{7^R)BZ&R(0W@nw>*`uGDF&A}EEs>)hjCO5|c z2JEafDQOLi(0y2bp`GLUU&2qq{d6oQOMKuQf;`Atvz+D~34wT#T%9q}B3%-;ghE2V z0v&^Q{ppfM(i$Zy_tY49F&WYtp)iO;&-##RI3XfbnV~p{cN7{ZIvBSxA5;p1IP|P5 zIa-VZH=EqiA5x9AsDL68Fb~Fc;fgA*)nS$Keu|E@`LaVZqw0=sz|O3wS=f5sLwPG~nfZ2cW~cw|o_)F4D!ehs1&K z9yu~hd*qbxCq~=OCho$V8(cF6;uZiLaCc0ieg4Z9kmK>DZX%P zLbb|@IkVQlsd`S(Um*0yk!MHV?5SSAoNV^Du_>d;z@9h?? z5k3?QKcjDnenw{B3eCTz{ux2pQ_MME1vMI*_u51Q`D$9@OyK4Q864g*<_N?ZKQ405 zlFf6@CsPON8ITzT=UW#XSPnLkA$=9jjRyhdGdul!2B%4Ut@%bim){Y<_T*=Oc+BJ`2KcHueH2(a_!8+PHw!z<>%^Q2+tRW`#F5OcF) zE-2XLfC9Y3=H2$K`SuWbiek9RHoK2e0>x4ulPHQ=F-HT2vy7r&Q~zFlhj^j3n{PA% ziLV{ekHl+Ysdhyr$YI!X+nUhO2)%7sXM7r+5cTKZ22jgY_=7aFwtMKUFo^Jc|8{t zOT8N1PLLR;6wCEYm1Ak1tt7+^ds8$ihDnSIF~6E8OW=!Id&71vD3;kQ+XWh}m;~I( zlPv)vr@*+iMrUJ`!sb*=z=|!FQi_ECgsC7z!%t=fH^hLnJinf@bnvGhVV;@8V?_;jLHSRo8 z4-#2OJ1zu>oHb6AASQ`-Qox0LPhDvc>EPC&!wkeX1@UdA+0A82yt^pt5aVi#32JLp zl~J{b5vuvDRLUJh2&In17YoGrw1*gnmQ^Y$J=-8=3HFB+r+%^~-WLIXvE z_p8aTSW3}>=9zCRJ>!=edTU&~lnXMUu%g|!_(TIl3qNmL2~1G62%$MjUJ#~~BP`p# zspFZn-xk9Ew7mB18RxCQ#GKHbb*RP2=hohhor}kN>F451eT$v_qLnT%mlNV~{T9vN zf5!6M=|Qb=r{3MXqh{L^lOCFl)H}MfCPo;yxP5VJlh6HeZ2?9o61It+rFu9ln#~Wr+vGb(O@6!okl3Jt-&`L zY(|5jexRQRurxF->F;cVJXerSdVc5DpO?1nvG=vA^*mvFkOiIBVGyuhEauD(BG}`e zQ$6Avtcqy0sn_PQUTo^@vpq?jE@WR=+7V_~L-dpjSua>5sqX|hxr*D;uVnAr z#iRzUQ4Mrbs%|z1J_TM>sOr1{QdfYp`60l{>_r84NS;+j#qy)`7=(MrEb`>OU-7vW zQ`-9AZw9_z~@m^#}U#cJlTEJv)d7 zK0RA$jXFo~{?nE%C7eA!UEkGgyu6n`?|xb=$ecT{QfKkto0xA;sgl=W)yTd^^pW|O zXc}5AM~Gg{N>4K>LTGbkwK1I@9Yi~>D<|jO1BSm*J>_5>7(aS2oZ^r{ zh8%CN>DBJS3L+?r30P}f?A(%6EoNR6rE+|-7L$eO>GGL~mdpe-o(UK4{4e)^bAHcw$6fqx0+NgYi@i_SC1taZBh zsBRq8#Bf*Nwpw>A$Gn3Zy=eBm{rpf?~CB z5-0JvU)f=CCbw*N+}AV($Huz}sG>MZ9fp<1phXnq@4vcSqZfLbsFI@P5%LV2()P!$ zzi@U#;3W`6o6A3{9c*E_iDDo{s9M{ZTl*UFXQ&^M%!8*Ixm1ii33ksW%9?0-NHjIS z;4NJN37N3RpvycZ?!Z9jb4tHtj#(+$mW|s=9|5kY@#{#54_tGL*KrYk45dtUz70I{R~m$Wf&OcH>E8B1vgB>I zro=~*e{P^VI1EmHin+jlVDqq2q8Sw_eGYw|=rjmXkqvro=O?%Ggl5LI<`I7k#wQ%V zrkXpobi9xB%GX@KrruMbfvkfCSeeuIwwrU?$NqW^08;3`cZ>t4VA8oY>;WP`$Z-WQ zjVB3pVg%?cB!yiyQ5Y?gT7)nH2JlTb4J@c0JB>QXvo04Vk)} zf1e(?<_56oiEAur*(r$6A zDVQs&#qanYAZ{zot2AW8nd(}+WBletjYpMwM-xC+5J6EZW3<>KZ>?4n`Ke@ii-oTl z&7nb1R#tbONucnJi?qf?Scf7Ca6HB|6z?cFvDAs<2s&D9YX(-jkxQW^ve~7 zSRzF()yQ?V=PhhPm9K_d1ALDS)(#^xh|Ndt0q64}aWP38YY!`FU$ZSHHPA_O00bXJW^>i&YQ5^{KBP4? z9T@X=bFkL9vvw*2O1&qIEFK8TBA3g$a!@AD3>2#gG3+tu!Pif?L#HRnPh&jniu}xE z7sH-9v*6598S5Gk0*s^4pvJ{>`t+4S{{F-4?>{j3vq)=GpvBClZu2Ra6(<0ENwu6f zz1SpL&8BXf11~mp;&jp}-U30i8t<>oYBUY-V$ca+#twmF1@xH=E)V4x6gv;pQSY?a z2FeP8g^LMD9;eTsHAcaK3TW7o2go6bv-~44E9Phph_}S~49(~>UQE8`RwEsH0QU`% zY!}hQNAJZS%HMyy{{ExOpR5D(VWz?JE`CcOkB+-A%3=c68iU32FU`CtN@bifPN$)2 zkvh^*plcOY5UFCNQd!YTpD`h_MpI#`g)$^{>%w8kh{H$P5M>@}-4)y7tX)o$#>F3Xl=q0V>GWxII~7JfcS!JI~) za1#{YHXS~2*V6NTuE&=T_N<9H6{*(R>^wVbO`K+@T2al>wmVfFlgItiZqkG6W?Ei+ zF`+4dM;I3?EGEUZn4>LJZBp%?S8S#`JqVe!8zaUuEKC|yoq3{4N_movpJN=}>yiv@ ze*x$47g1v|qi!;25q>^58-ZUaH@>KeDrrg^7`F=FDcvbiZ@fNeT^U{Y3hw7R7E;y| zxJkAU*@e=s#(Y-_Uh_8IwrsJatGR7g+$h`DI5GR=f^2dw<6dk%izn5}v3yed=?os{ zB9MNREkLj4P8|k8?_$z9u0BPzBGmT9rUIV5HJSsS0-q|hsu@keJivnkF*gm4~Cg^&?4M;a#2Xk2ze3c>Qip*0+Ux{ z97~PnN$O%QRCVt5p&K9pFD773#5bJ-GaRAFOWuJK!YAD*r~P?%v6F7mh;F}APy~&X zeiFdes2GFk$?Lh?Vwp|898wIB7ZcRh7*$amL~5ar%0@}OLbGjj`-wA8uf1jj?sAE7 zuNxKSNeL#t4T=#@Hrr@mr2bw$e|#_PT+l(c4x%SAU(F)Vd;hxG?1S?>sOeeOu^j%h zIQVy=M=OiTMdm$ z^};^^y$5ZHMaamn78)XX%pX5)@ePgHML$|}a+xf?e989s`_T6RQRF$_@i_f6={b)} zRp+_Zv5)B#KLTF2Q8fjD>@^aJFdrcGN~JVsB}N`1I9m})>bDxsSwv~pxmS}AakizE zCR60FwKMJ#;WC-#-C2&{jDK%w-MFq^R#BP*?fRc_!kCs~+b9kr)f&SbBt+~eBh^41 z81y(>5qiLEob=4hSwz6JB6c9FWBZO?Km|nM0gDszl$=G@L>5(_gRJ&(B`Q!WCga4S zFsw{G3wKkZz*m6pmue=G)a;+5NFMTv|3h2fAnqkk{NsXqKW^4*Q;&1FTCQa!#(-KO z@yKn}W=m29qlZ^-s6FTx9(r%64|yT45RixiYlXx(SR+r}A~4uH4ypmf1EX1cX&j(F zG@xz3iT!vUa6_sUTq3nF7yy+(YQKXy=(<`hVh`F6B2(sh#N_m+wHNgw2I+I=aRzOi zEbFJqyur`ZYn+*P_36^-@A%H(V8Ka>P_kNaSnj)SDXS*UvY}C&Y7P_0raCO|10yC> z$CuNSkOO0iXC_W4c|Zqx9FWf}UWfY+#p4c=klus({s-5hFR#>>U?o(o+ONbNMZqzs zQox98jh$)*BTsgGKqvAV0UL?*s#pE>y+GVHG~iyS*Frq#eICX2gUhTNa)TV~ucO$T zW+QtNK0cC-L?aZZgBaOyGzeWa21($o09i7NKsSsP9PG{ z72ruroFB+x{*``>zxV2wkZQ$mv3#BPdzfzR-U2sFo1W5jvNave@vCA4=h51}k2%*= zP?vO_lQ^;9B(-9;|4LS!loN|gLo#>jU?NU3-vDj)@@;aTIY&B2yZ>DCWa7DbnQoaX zOFm+`t+WIE@Gp@azcu{Urymi)N2Fh(G?{%JukBAH1xH5(x|oCBV;rK$I`RV2}o$k~LBv0F_b;l!LIvrMb#U_wrk+IBh$@CNI> zZEtr!N4rMyEwU-sP``xw5z$B2y5hQVCyBP%mcg_=*O9Jub(~%2an44Q@G>at0NIxP<`=;kvDT~I?^Lq0bn5#U)h3(pcoRj#N8Dl6Ln=7*s1ddh0WR4IA?yNi70g;GpEk1BPj8)gZsf zVFcb4pVJKGmj>G$U0z1M<~S#+dM&_~mY^;DnOl*1Ny+=!#;Dn=UlTzGJDkR6+sN4W z%rT}Z-W|!dVL*i3O9X1gH@Y2G|M}C(U%deA%~1$C-Z6k~*S?v}h%O`tU?tZ_6Q}b$ zsB-}-#U;K9#l4m0`0DTVcYp7ZQH5B4!vK3K>9#qvirWU-)&2_Kn9<>-PS+V<<7-89 z@pPwB&b`@ZX)H?L!Hc|P(mg5$uoKZei^fh!=Cf_cNvN~Jw&Q^@X74Htv1g<1ry!-H z@dV<)s?@@e?e7mvUw0*YZ&uH10k#CTY9Bf>Y*q`gfnB^U5HGx;T=focoTWgQZ39WD zmeZZsfGy}(CGmOv3z@Q@t?__fzD`>kXZAo|laHPvv?RQ`e5}MD$(LK##d||Rem|g$Tit*ei(n7Vy1^jm z=|6udVq%i(j9V!Lb9ge7V%_?R6@)qwDF$74-Y`YvP=3H5;NXlRVDkQ;D-#b<%4`=M zTmxQ{m~Vq3r=ylc8CjBX;GBzgAru3<#&T!8Dnl>82H0ODno%#Cy#fibC;9L}qNz=T zMo0n3fj%tY)qh4bDqiutVG+t&D`e#?qL5XG6d{-_uPA}>3N|Y&{`d%xr{pA2n3JVJ zB#(QuL{pT>rECAwhi=$K=@SZs;4!~qg| zK)|3{Gh;A!dY%E~y)M96F(miRZMkctYSa#U5fH+GWOTN}HrT~F6h!g{X{&q3^M(Ox zP=p`|Igkd5z+mm%hsBEa_z8zn<1VNzz~80_Rb(?F(binJzj}V!z3X)?Zq$qRYX6I` zhb`@)+))GBsy7!~5^;xGG01yjP$VMJzz*AWl8S8)-r0LOe4K-c_pw8GP)bFzC?!q< z>O^UJ8V&Zk99@knY6EL?D|EBjmveV~yKEPc-yPSI<_2=0GPU z1ux7wSmNpuq|Q+c-=VyYYZO z{va?ez~c9u2;u`*OQcg1=cBb|UmLZD$ZE5@*;9!r-K0}JeBx~(mFdF6*gqe6P-+r zY4wke6o^3Pl7|!$=b;@2C7fGe;ymP!lk9>YK@nP#THzzXHPN+)SN~`zwDyR=n&@Xj zOQN$AEKa-xAG=7ti#fqH(Y1#c7lAd=HBklPZ&_Jmg~f4gIQi5$@)!F{BnoRNYoLhy zk>&L^V)8%GSfjLN!u0rAqv=q^d5}ny&}0X%c#0z%#A6ZQpi7N5*ku#8sUMWDOcbmMDg?)_vC)T&HRn_Yg)*n18&sV`3{3JriNNEB z`s?3Nkv#fHLdZ$fxt^y2XH%GM(P$=;Gojsd=pzd!R_CKYd}*#FLM`DH%eBB?Y(#-U z2og@rLo)mQ;E9Lg8~(6+$@BdWu0<)$D{(}RLCB8&;ooyF9*NRw(1&ab*0&?rSo6hv58|YKtvawbGK|;ChOoQ{C z1BkYq>z_K774I>J)xmq7+leu|c!?4|FTzZmjY#f&AJu6TACMenzBJPM3a{C^c8-J( zoQ)T#aalyF$GtAt9PU`g_2l@bj$tI>B}Wm+R+A}*Vxt0SlN|r=v|h#)E+)0EgU3!6 z0~hyglCJjZMB(D!>q6oOF?udtDE!z&&x%$G5rfm4Lot9n>XrEJAU$a)I)F;SZnUTO zhR6x+(}-q8X#nxSO=etkDAj~)?De;^KF`w5a-79> za+=UvTN_iq33gc7}3#J#YjiU{8lIFLR|}h#)sZ>AR58*5FyScmQotqcww!UB;u-US|f|atIf+TV(@%@xq z&-AzR=L1VQ^@bq@Sq)deX8_dhs)yfm-_W1Z=g4+0J) zI|sTuON!n$}R zHf_iY4qTD+WO_gsHZ4}0*I(h?0YO*vRKRC+?ecjPOEv)o2Yhs(E@6>7loC-SYO2sB z^rLQq#E9I3Pz@zqYBE|On@4O&CjQ29peS^F48Z6%+oIeym&&0yz@yD8awv5g+WJT} zDPExqyQ1vCOx+RR9jds7kO&ycMnyX+e0~}o+=T*cKG5fP^ondsg&+WVlKem({xRrn zx}izGv#}L>GTUnA2TWHrSc#FRk*g7!4C#5C&<_9z((B z?a^$Khj&moVvoryxFCm0Pd1?eTXl>}CU$vN(O5xEm|WgneDIeSiT4${2qntMljBc0 zBiN`tlD&S7Rm$s*3*|wfX?6fAJBX$Mo+vW&>yRe&LnKB}X$~sgCNlCgl1*Cr?VxmO zJxj9!s|$A_2i&XcuULu^EiS|)b;CyBo?W-?2&I)c_yL2khyK1opa!bx?iIRharled zhO}TZDI!3t=7*NXP@_!Xk4>jjFfh1CSSN z-OzWYK8C6e^(Y{Q7I=ZR3$a7#;(HPt*Hu?+u4F>H$6A{Qzd{$=_TW%#q12PE4ZFA% z?Ls`D28lvPk8Ji;8?nRDNYSvleEn&i->leUmD2-E$!j;IbYK@-{cQ!UTK>Zdwl2O^ zAP&?>ZMBcjvz!-qJAbU4%P-Hf9EaU_c>X}Msz<{Ca?)aD!6wLt*Z`Dj=1b%1L?Bxo zt_0X`JmS0>whnZwoeI7u`P>6cYU>iVz8nM}Xo$rt@!f!FlM~3w9r;&c#b&N}B{uDq zO2Hs|ayE>n2W7z)O6;^zyR8Y4FP$(ubWjtzVON3y9HeijO3JchfQaT* zE<14V3vy^fQn{^1K@qS}t2K8kP|%dTGIS+kV&vrH>ikl}#)s;1AYo;vgq&FX_79tk z+Py8?QZQT5%k(2VN{F1yCb`9#F+2I@L@vt~Kg;WcxauclNG!;Q=rRe(02jp~V_UgOns7+*V#4kia;=rH~)nS5-WJzl+D z`*QV<>?m_?#5u}S@^OgJCAs#my+>UY9&m{czW5Er-m*=JP`0JO)#AnKrOVmWwxK9C z%Ap8ctX`~U^CD~jKSz?2cR`Y`zj$P2k|d-tQ3qJ0;I+%+I7Dk^Z_sT;2l40C!wNQ0 zBo;GN3i2SW#xHDL$ow0**7NhA_NZ_^PObK@n9d&qV0M+QhK^tpA5^d4LZt+8R~z^M zuPz_RV$g7?&)=*lRUSYvky2a=4&(U(T3-g}m0U^}f`IB^Tj5f$89c0(rOQgCbR@nL zcNWuq$58HIPcg>r=1oxu9bnU+U^R@0dtF`Lr`(~{P&T-en68Sg1M%JHXrM$d66EgD z^!IpRyFD3s8p+1?(_Iba0T47ZU$$6r1jRzYo$G4=dG>)# z4bW>y4=aT-69?-7j^d*IW-cqVy)wbY@WqMbZoD&k4UjKMrRAsO`!ZFtZph7QOc1yu2Oi;M!TU%AIDk%oK%t)k=n03yvBF%PpZ2vCe`t6ai?ZTIkJO4zdRgQ?j#)Hg zUjhPQWag5uyy$FbZfNLH6_{(}{|>DSW~X#9qvv0Ma51rHTqdIqAa)cJf4@3mW_FhP zi4Pb|lOW-R`C=sZO35w{UgzZMG&$tS86k0=sg$=CM9!|1+`RTgDO*j3AQ`=wyoL^} zl#rDm*_WH=^C(XJh0AWmUsSRcup0k|GmQu&qtiSF(tsHu52V02!BsE;?9sdjXUpOJKK;$+UHZlwrCFUV z4f1n?p&;`2NFXJC`h?h#(xty61lfva`$&co<`_Ad%%XWrow>^m0|-h-5t_82Y;mUl zYbevFBbd_EJPhIIi2oytU*I*3@BN5|AD1w_9qO;i*FqG3e9obNqoMpqy8UOC!Z@IP z1VXFg*t7rG?6#Vq*Jg6ZwjLVTYTpa;x^(3(FBDDK^UZ1jUIySGf`k|5Wb%9|aB;cE ziAD3APNq4PQDn}`BzYmr7Ms7NazZKvt`;v=FI_g%D^MFiFp*|IRu6;IaKbG+5lBY6 z`KZvAz&k8emD<(MMQ>Qjq)4$#SPhMV&)QHlaq4L8bnr4M`ge@gsmlTbe8ygEcZx*T z4(j^A2~=!89Cxgxz(m5HZ^U&HOicZ8TNe6|AjXVwF*`8aF<2B^u-?{z8|dWvz}T3| z7R1<~$aEc_5IUd~4CH|40D_4;Q3R6FVMg9?q+&Af;rxcSNJ1(FvSl-}b%9XnK(6tr zGxDVa$ag3|j#LJdwosva&l<80AcoAGOg*`wSN<^pIWUpGWDcXci4~$P&vYv z0)sF}Bir}LI8>r1lQhwoR9E|iSzswJ5d%eFpawn$ARCFA=z5A+0k3RwgW|ek8$jH# zjIfM!_4;u%Mn`O}ePHuyFWQj1X%rv>Vjku3^_SsZOYy806Y2NvEkx4 z*X(C^z&u%H4)UlP+*UXSh=6l7xqB6b#fTo*`er+JVV`w^i99iLyiyG>0?BAH3M@j8 zpAwGXUMJN^C6stjEXxbF0mK~xuoQxcPat(GtBK+}HhNKYtz2pGTLi%>-q2OgPm3Gg z_xMbqS-&47B+qx^`+&%H42W(kkHgp1vCa|l4&?wRx^3WqVsc+K)PoH?;M?XJLfm1q zr_sc{p`w-hvd<^B0mKt^Vqc`G0t}*pFVL`Lptn{(Evr@*V$;=XZC$|ACv8GbPZ)#` z=;TTB3NFYu>?Fia1fdZuFkn*Z`rR{I`EGUC*${!r8eH&B$KFj0ivX*b5kda=`n%nG z^H;CfLdC)5y>#*EgBBAOfdPp)VVb}vEx6MRh;fci%BzY_R-@V|lnoS3emmsUw-sy> zN^C@Y4@HAbO_*K$gCM~kzVBFQkcVG?Y-;+~vo)a zJLHu6^7U6J8(>*$*%OlIcd}K8X`}fsp>D(`8#dGWtf3IV0V0+as$EKfLD;Es2T^Zs zUeRU!`lAT&#Zb4UHXKBvL|aU@W8eMzpV5>4_)*!);uX4hh;soZ&_=BbGv@k0TF-OD7H5!O};f9oA!eZ zBG9NoOsR{wdi(lyjeY!iu{qxI=y8=|;OqCQQ`ZLU;zn|+Ppt7E;5<4ds8ytjYGA1l zp*?5zCfBz)#-W3ufkS9G_8J5M;!s08=*vQUegLTAy_Q_4p|7|pelOEsYAZpmsoFs7 zT;W(;L<#TEOoBWVtxd5+QcBotM>WgIiYQSPHzwNRGxC@Uh+(GwF?KBAA&RpOBtOhE zC}nr?=|?^jTK~}oiUqNSmaG>}dmFDOOUiWv8z4w4arhoviiCg~rim<<9a+0HuH1-g ziU5SwbMwb?Q)J!jKGA}GPBnm}3kP!Zk5w4S0cn_^GdD_XR}$hSO5S&@rbxz+G)#FQ z4}L2mFgERtxN?gmXyU3INz#Qub}UFD5WY8Y0|hA(0>~k1N(q9o`})1=o;|l37|9Ky zNZ(rT*w=+6GE@Zrr-$mdiry3-XBSCpw^MI4XJY_d-Kem`MbD zA&RpJea<^@Ro)#5c*22YG%>U~yV^ZOpjLeS;t+retf^-j34>Rnb2J=UCFuDgeV7`*bd*4!|qfkZsEvBYaMqHigCBM*Hccab|YVUrqU_1JPG zF(OB~LsMU>K`Gv%W3GXbtSh8i2psWW=V%o?*Nn}1O|map1H{gJ)aA6*z+#x82G=}2 zbNX-;+6*|?fSR}ibGTGcY<370n%04F2G8jXiDCKrwag~khyz-&`3s%g`|7 zQBvqljG`8b_&CoMuX2#qP(m@P(v_!;Y1@IjC?y=49r^m{K3o2>C*sBU>tg>0CM70b zp!kk0{<>kJ%Gu5j#r8gXUhiEP$b&_|o8YyU+clPJY}b%$=)c2mk8513fiayXtxF39drC{UHJ+(^Olm}}fC*>=5+B_4AKcElTC=voGVUP{8PuP*`cPaj70sq;g^xqx-XCwN4 zR{OT4@5?)UUlHglg!XkE#Y@iOQPuLx50}5H*vM-UB1gvg(0N=s9=G6A&)1MIyc8Nf@R!faUw8Tms z+tWf|s}~+65^Iv|)To3!6p8k4y>Kj0LoJ1JB+!P~wkz<4QD}yNz`bDiO5G_z_nt`) z(Z1P#p8lFX5`q8Q>i=x-$p2kx ztTKll@yDLA^Vl|uHvDoke&6|v!eZCIm%nWU8nto!-A%F62I#79(T~K2b52;U#A~c2 zezeCa@oY<&n?#^no3}xg@qh1!Cf}NRvsdj71mLlaMex0e(p%TD5sXdSr3??+q*cWN z542Ba`o7}t3;niGyuBu;%r3i$yirBKuSQ>nHyAjO9WX?(zQpV@%}^qV zP01$XX?e&M$p-jbVJ3ENf+Py9+#3nGu}cI-?>n}tRZ0?j6s^X9TfBL7>3- zR^kwX<3~SyD?qv$(IV$~tBi?5VgTWM?}Fg6|AP(&$wItaKSSG}kzlT`DggNtNZyNJ8nqsJpXh--?1sh~zyP>pG;kj$EH(2?ee^Z6x%_Wj3(ST&{e9&j_}R5P=GHU`ptyi_8{}l6S*1 z&-LOLs-1JYZr58o14~OH4i56it3Q2e!RrP#$~A8V1rrG2d*iWwJ31bwxHeip_HnzK5s=Zc=|jaV)qZrFQNPOphZ0s6U0^ zTaFZ>qH(?dIX(&&+S}b+=atNFO{0zX5zBa01HbnTh92MM`fc&w4acVaiE^y{@Sz*s zA=>yK{Ba|-KB=rY8hLCqf9u-b8;*|;_$yrT%dwf7=QW7VPfyC|B* zbt%<-EDC^XjxR#`g5DcPO$`J=rOa-jO|V%UTEjjXyEkw@F%mh{V4sR%ZKk-24goPS z%v4dbAwv!J+&!MYF6e7}?R*#cR$I2WKojo3jp#gx^+KNQJ#GB>s8R4V#nW6?;wcv^ zOM%BqlR4#u8h{%ayXDQIG&Jod=+A$JcH z>ekM$U)+c9W}E1fEf$}2$7dI@d4)1JsL5Y7J&@hJfS9(uu66*XF63?=i)d@q(b$q8 zbQ*FJMPe-8Sp6gXy|LBeSIGKF+*PeU3mkLRG2uK@wNw)k1o>%aDurJN7PksMjUg6^d3Yk&_)JzGh*pi_JL{C71 zQ6fd*63)bqT>c#<%_IVq?5WvBU^ACjHmLP1TH|(zVv&CvT{o~X6$i9i1bDJ8TjnIp+GZP%PJv!w?LZp6#Q z1$ahveS#|K!Af9@MJ&i>PTBInEADyJstr2^?R(buIgzUNMt>kPmAm`fu+3^-K21+Uz1_F9wCn|S%jEu zHD#WmO0uEMz|>TC3suyGY8D0K6PU4yx_BUTi&!Z(pv;k&61flG5nCjm(Zs^0kEz~= zU;<0=ciWK&n7X*K?XqP7W-tjp9(d_lCr|77uk4Ha?Rv0u-C*`f?Tf~-A-{L^dWz+q zC*rE3G!S$S$17#YpAE#FBG5`-w=HMUuDDPvUI*vrCA`_(9~SI$hMLI4OLZ>b+M#SN zJDqIISS+!i<&sN&b`hI*nIV}N*mHv`^DTak&Co>qG3tU&g*DMYPHOTz%~~m8`yDL921ISF+Xd5UQ=w)HIHelL2TG^u16G+Ni)9{g`sNR{Skk( zVV9je<1HVBk-ainKJ2Cco%Qj){#q!K0~)Z;r~SI!)@x?}Ol1+OwvW{#$@S7bj3(JysSRS zTlSf}(zNd2+A`{o2xeX^lsx?0`)1cB;2H#hlm=p>LXZPeceBr0ZdjHsETiKdTj#OG z(>r}J)^=_>b{BFao){Dbt>pvSDO3Y%*7Xh@vCB=eldc2XUNhrBc7L9Z51#;cs4CT2y=e<9lZ>J5Yi!;fg7tw+Ez@@5tT+j{@!mwCWCOxk0&d z2cK+#;_MUuITQUY%~aNycvFYNrRNOD6oX?&-})e88WUno+|HK?K;c+J?*SIEIZBG9ew z8>p=LIhx?D@mq`QW?)ae;}e{Ok-X(fu9-QQBV&U;r!Be%r34M!wSE2KFZO6F4dr`W ztFMhrE!dLp-t%Iivci`A?UzKn7#^4+2}1jE*t0#+pFrE8iX`!V74hjsDZp4Rs13LQ zZ^%S!b%otCGc~a5>rbXoEEDh>MInmDeX7qJmc?Z+PIsv9^k3i#h&7O;(E0} zTfe?0*mT(B%hoSae84bGAy4bzJeo$b!M_a9OPq_$`5w8LL&*Z7IjJ9z5_Yj=`#e+Q z9S%=olZW?wW)s~kj%UG_k#AU<4*botJ)E0OM-T9vU{_LbvO~mYA&nG; zQIrDXm^hT3P70MVZpzwpRJGh|N?=TtH`9?Tn>@&1Kd&y(=OydiBzwM@?90H++JnH6 z5<1y%(r)XY(b=zC95qpyF<ce&p z;jIU8!`Ih@-lyVJjJri z%`!{faBfkSoksiq(v}Bu#t#>#Eh>hB!uX3;ZTe&SCAD942G^GSf=hn8Kx1RU59;BYc zrhK+!;u~@xEky*Z?u5V6=MO9S*OvJpHavR}IM{Gv&sR&a^+_eOQF>tMAm2D3h}^lQ zqU;q`4iFhsC+6T7${G@km9|d@m4H7c-vp2N094JH_O0*w*RNh1~ zFNLg@YAO2o{)0u|1#cC(p%mzeo+ZC^yCL6^j%ec65@E6zFKuW+42Il;Tc!l{z)mbj z?#$J20BaK?cuufuKm?531BE7K$fpYBo#~@)8*$@iD>8wr@AOEvB76FrKJS9TVP}^- zi+bARIIz@Ra29EL+Dg!qdy0Tdo473-SYVGLXd9SP%iI0?579*U+s;%(lDVYaX+e<5U-#tCEW1jkYhoY_A!rt{VmV(kmZ~kbE2WT!w!w)1K@H_E> zv+$et`#cF+d$k1^JlP>)v-V+g;}2xwx6byN#$S>>99lkJ@*z*znH+rCs4?dv>si zKYz3=z@8$xoA@?BHWLL;8`w<-62w9rTLKcrb(ApHWlsc_sFm`qq6zKA>Bv!G z_tqi`ttS5gp`+X>6cLz3hiPCQ9Hb@$&k1(zLQWn46M0h4W1L7_wM(?ZBqQ?DG&WKQ zHD022DgZkbP8cSd^Ew62x(jumpe{mgJZg^zIFP4q)XkpIQQ#37y$glL-P)4vJE%S5Egx zbma$hwYPHFUzggx6=#|FscMM_4G=qr^oQYINlXbm*^uc@gQC#+7(h1Z0YMZ!-+oH9 zr@GucBm(X|D3aZorZ$*94s1niCGMF$*{}l)u-57&C2$J46kP3tfZ4=%vW4~l&w)o! z;4U-^2STufqJspJ$kP-YFHa29;TDe|;Nf@(BkFJ+R7?q$0vs!%##$*UtOL0Wcxl&N z4Nc*MOTG48=rTDDyiEAo;X07(MAuGm>ByJCzwU#QUQgodK-NQuIM%upSlZ)K!~G~G z#HAf@slb;(O4ma~t`l85T^{mW51^$y;8L$WCA>`d+ApVMx}L*JyWCG*3apLxb#O=B z?XQ$Lr44x<-03n%X}!>OUj+U&fa@`OIp)$ImwLIW_(L22V?&nN^?rG6vhL>gkBY6c z=j+A%{Zs!n)bF2<%L~wd0^@%UFUJa$2doph_Unu8`jXSNQ36)P>vgm;|LYYOzL)cV z<|6-d2L0z5vJ5LP^@O5IK00A4@OaWJ90=1QvBXR2Ai*RD>YUfAh`xuOxC;%Zgu%qf zv5FlV2YjipbXvD{-K|w-4|~Uf!#o9(GA;2Ki5ohtt~=})UjK0-0@vB~JXvda1lo{? zccI~wU|5KF7J+Gv<-`*66k)1O5 zfB_qw(8JT`GsU+=UD~rAV8R}_3psfJrkLD80#4CE?Vt_WIj>F$rveWE4($kACqyqL zC5)A2+0{@8Vu|O`)B~b*79LCx2ywnI6$6n4V%1sdv=Z?wb#O?+0U{6xbFMHM=5rjT zyU+vN^(41{O2~_Xn+E2HUE#siMLmcI#JBc6PlaJ-cTNd{ahQihp?egwDO#IfQ0M@L zSnR$&+j1w)ceKH7D;7^NeC4uD5u20afC)1GQlY4M+u&%4RujHj{Ofnw8o_%}s-WF&p!PYX_O5F0uJ-`!ugYGn#5;_@NB9rQTOaMDEXq>bQ zb)^JTz{A+Zp5PGI*b{*%V7K~IJuxMS1`Z8H)Irnm~%Vd zEJeW!BkFJ+td0|4QjL}8vr4oBC7cR80C=_&g4Yclg@zIY0?&e|v(#xN;#q3vxQy== z7$C+u74;2~E*v?q3prDQK^^1)aEX#rJBSCsrLMYRN~4HF{eZn^W>0j9ooVjV1Qyt% zXU$s{0WX@H4qJhH%Io{5J)LO-Ow>gd2exEew`AFe#J7eg_){fRY=!$)cOg;mKHvHZ zv86lyeP5A$^O1OxRT?npq4 zp~zY^6oOE695-_B5CNBV<;j^7I{?p;2ah;EAuxIu3XOwxnqWHK49%0{qcIH0;Irn0 zyflrCVu=qTG!^bjai{itfK~gpVE@eNIwJV@Nc1`sMIIw8IhyXY>^&g1WlMC~(>e$7 zGIj|Q+VDh1hu!j{ufXg-{5jOMiNfqM8Rl98DewfH?Ev7}xQ4AdIZoMYE(fXK&^i%? zbv6bmO#nM_z%OZsFIYz;^(dGb)AA?R#IJPfGjrVBt4<`8xocHqWC$7 z)QV(k$yi8|DV?+^XFrYZOJ$R8i(g3i$YRdCAVNRWaqcc)HBOjg$*ew7fH`mn8!Wi7 z8bYl-b|V?ecXp~iA*TAI;!U;AWV%d!qO_nHsx2V0h3v7-(qw=y`l1^pG)LtilHdd2 zdH|8Uzd4%?F5fp8TQ4$dh1UglV@DQ}#Yz^;2)1adl^j>5=Dl>kHCb$Jq8~#{_8G^j z0XB(D-`_Gz7CjC6aNJs1AhVDI)3LEH;%ZrWq7a#59~4h;3lz0YB5|+@iU~F$Dr6El zFikMLAi-(2F^gkgfJH393wu#^wC_M;i&=^i$zYnLusF2|$EXDua3m0?T9L4%5m7j5 zpjpPk-p)b`l`;0M0QR%b!YS)2+;xwQY=;rHYdJCH`hvwqr2OJ0>~0?Q0CeOnqk4D ze(MWZ78(*F<%X9JSr6i%7i`G^NRnESOf?w`NiwBfPo{?C*~BNhD6(2e5AKUzNGORd zm`Orn=dV>|fv(IJ6!vk319=o*<5-!;mSk2{1YxERcnv7+ZtV7Gy_DuwlpSkDAT6|& z9^f0vvj6_;c)q`#{nB6_$O1U2E%dfFb~5?S!9{s-trTonEP<+tEjXk3u9Us{muNu& zydHoA*NPC;BxWHjBq6#qsi=*vkJdmj9!dekXjxym%e9KY|A;G*r7TF-KSRjkmnKU2nv7^qlB9I)FSr#i6 z+QLOoULZj}+P$K7%1pAEW%J{6H^b6ixYe4ynM-MRzkkjHAr3uozqN6%VNs4azI``0 z55!@8x@aV^x;dn1Jx^|9dxH_lVn^16<^8w(_kzb^6<%v4$JrTAQk(ef`N7P=^Q_tn zv+~mh_OYD;E{Pl;kVQ7>IJ%g36ySyQUwyB$fQjC&pI=C5-s1r) zsFkLXkQvqAPwG$0Q)DX=_F5r1`_ z`uqFuAPJn~ey2~ZxAt71w`Ruf?>{HeEPQ8iRK-Gbd^ps;p|g06-P2l#XK^K2An$MX zd(oBLA%%kDX-NuXSB-=nidV3ZglH1~BYmiZC-Iq5`{LRIvxPY2#XPNoY?VI5|lQdcUz+ zFZw^JDz3R+qwNxGlk!Nngpo(PCCVs?b9)OyLP(O@iE7Qm%CJovYhLt+-=D2KVVp9m ze2|>ncIR^g^EvR}ai{1M$ZnR`e6+jaflF{rit;6^l`ffF6I>!o$^0aHs&Outk@vSe z5dUdyiERGWrSO&*iRL+^rE7AQB+Y*{nxcb^wm^v0+BLy7l54bO-Jel}TUHUAoNJ|1 zqKYlClWq^EZb)QMKNh#_4{wt{>4(> ze}7Kn3y}u?%OicFP~41j3GGA3xP%&s^4)0ra*sb1T0TglyS=}?nB#acs64)viMG;ikj&oL9vi=g(NoTC!?~sDFtOLE#yGvU1T>!_M)7%R_scf8nQ}~ z^SXLcJL^8%HfeHF!xmVJ(@IfMzGT-fHGIe}GZ~kJ^J0uFBw^>qS}CjSy-H^<%6lNY zs$mOs*E}kLmaw#t7c%c6*@|-3TCpo-l})gjZmPRl5=NGEG92_k=1t1pS1V;dn7^mc1%c%1s$u8ORBQOGGMyeEdNmV`4S3rn_I zu`6wA$SOpVT@{;JX!Jb=UEMO#t$)8nND&9$AtB>$&JQ|8&62;rX&x`YZZELEhfJim zUh6qHcSu(2VgA$3C81Lyn=5Z>B#J$;>?}zdDjT@N+B6$M|!q ziqE;_{K>4m`@Ud5zP=#DMfs9`NC3Hp^dT!spJTp;wc;Aehv-wAeh4i`FK(=cQqNzn6{S6#$50zQ^Pea z_#Ea1daIqzPDS~W)q3rdYl2H;rzF1rb5<)pWOT_?an0sb6P8Xh(GuG#k%D7G2c_pTp>bc zNLd%@I{s7ooXUr|e{AlS!r$M2-`{_y$uIET8r`iShqXdBH=OkBd%s%mXOD}XGQ}mb zOSC1u-SRrW-;MbDiJh`I*=zne^sne8x6gURokdu(SV;OE`in`8(|-P4jOUTN)JmI+ zTP4>1yc5^{A)0LmCbVCPGV&CE8B<5aH#T^pi6FtpK_Op!YqF~va$s#Y>>9HT zL73_LukZE1lLyc&R4W2kDib({7g&2_6la?$i%(a>Er>_j#?}{Z-rd?Pu7&|hwI-y6 z(I68%vG3&zv#cr;?x>a7t+Z!ptc=~wT^y`85td}en;b~f{(E@88Xvw_5?T=Cm&;90 zriSF%UXaA*%nLMQ>IiOpXPNlGf)XK3nlCMNQ3s>wusNPS1Q26=q6Sw(ON=U5;F=ub^cYkwJ1!Bx!j}R_IYPq4_RL9FwJ?^2&B-Iy1sqfWNyb@P@NrOx zBrKbKA;c1vmc%IJ1=}Q+O9ysfK_W@0k=MF0BpFdyA`VOosR9ya+05X~i6DzPEyY4H zprkSRprCb)#A_tl+YM99>l!wrpq0L`AgESaEI}No(QHA5B}sE;EFxLRfwdwrEne3k zQ(WQ)W{rdb{16Ltfq7Pdq8w5yg&YS0w_wQH0g_0OTG)wS& zM}ZK{V;X2AilnwloRA;dI;`~=lv#u*ND?YS%rU4ZDu5(o7hhsED|;<03!Bq%kfSU} zoiA9z7*N2`;IJ~A1zsURg|oEa3Rs7G0c5cfxdf;pA#yH4$&{xwSzwrGAk`37&djpx z1;>=O!ynhKc}R`Ja+g2QQlMFkNOl*+7R2PfAfiV?lEvMz^Em1$E3TCsS7rk|=;l9( zyv7z7H^pI7US=JMBafFihAUly>_WSCOV%eB<-lFxeH9C!g1)tZ@tEpl0;D-E() zdr=Z+T~ONH@)#B6AOz+H4m4wytUcs~%$uljR$J0VAlbGt!zRh{lE;CfNovI=g(W

    X3HC3HORWfzKvg8MB({+AN?a=-p=r(+Ad4A+lwzJ7)fZ@7>q6B)bA0Mt z>5umMuO8nw7+c7ww^0uM@y-LEv#>a*VxZ2#aF7W$lK(z-Z$M8#V@Vp@+bATnYC^>% z8I*Lu_+bFeq#e_DiH3{O$Uf>lgsbC?uh*h!B239h!ypp-}fv4B; zI+VdAPSK~fQuTVr^MNIeZ%vXJwn1x~V6zI@yoL5w>#ng3M%TIMdLd#FqHI0Hu&`^w16Jk=9hmhMAWq&SG^5yApI7#e@6+V_ zW*~mzQSYdgRcBgo94yXi>}V4>jTcO4Y!l~@0#BkWnN=~(2F%reY(JLoa2s2y`U9kp zoRs;J)QW3Fr|3FO6_?0TRAIL4{{H)CEv;fL#6RL|P{s2*P_3iBS{-NcQ+o!i9sWGF zc(yLL$y#y0k+>beM4Ldh2GJy$^*O65oXp8a@84?~TU0DaBnyl3 z;#v`G!N=iku9k!)eoX*OBR!M3}SPh|H93nv} zv|!c5kvBHOZmhhy5ZNB|-CvNCTXs&;_qn~h`2YS%Eu<)8Gm=etS2b*I*)`Beu$g8x zmw0>^DC$AAVpH2xLVVi%wFqOWzQ5he`|tO+l^7h?WuaLxE6D`DEv#6uB346P17?Z5 ziD$vAM~#Q8N~r_|nmYeY{xV4>Q(2#=2j z@ibm>7p4e*Yz#?8F6I>rAPGxzF_0?4SeYgCh0L22<*b&3^OAYJ9)yIDkOvZzgb0HB z$~)JJ5Veq^yf`<-+}v%0=38Pp*NViHnIz1j>o}rIf{+j?*BH<|K^2)HVTQzc#GLp> zvN)X%*NVgxY>`W#GRr24(48S+hQxWq5NPB%d&PpH6vNy3GdnyGBnw+QcP@ZqU34VM zD47*uweFHT1NS+)iS3eSS;ExD86hE*xK@Nn9#Pt@C}*vevPu?JY-(9Ugh(Kys7`esQ$T#KD**7`%S<%9Hutj)URG z-rGm*6%%@yUA>eEPxiV37AMih)|RSqLUT5-#pmOGL1rmH<;=+9U6uIj{cVb2z_am! z8_8m!EW$~QGh@likH^TYkDLnBCdw?O*KR%HX4cB@<@b}$LnZlsk78mYT9cp6CRmp~ zI7Y3>1b_Qrw?3)scW7KI4Jw$CjAFAGzcBb~-ZJJai`3XTdKrsI78Yga#&P373e@1i zyrsuQ18p@44Is?wUS}1SpA)iVQAJi8!m|`u!{iD!BQ|#-)rnthjkWi)+iIS7`A>V{ zfv!H-W^sKu2+1Uc5m^#8xKXX->=VXAs?QIibE&kjW6=2S`Q^XO^ZN#4>*WO-bc5Gg z$x#Lr)QX9b*@S`xUwFQF+W4+>u9X%W2G&(&!N29vU2n5ic!w7uvVl+XDh{d`s66Vc z1>BGjvgFu=)uPYvO2RB5eW72-A6UF5QpMo*^y=%}#umTg_d!2GtrfV}G^x+A^~mvOnC!>-*d9HuXQ6&0RcwjTI*MAc zh$e|wp+!v%k61fLjBBKN4UOyg;4B|8qO{X=P|6cx8T0CazX~kGn_YA3&X8;sEVL5q zgBlwaQLVc`HZ4lDC0AAKfn_~)tK#hY4!b2gki>AB9lr&PeZ_S2|kV{AsU>1m<;@QEx5-$=67imYmz zZdPfN-3~xbfiE42>NzpnllTfpqUWB2vY+~GvlmV(C%4^sUyV0;;G{**4RUszgYlBy zQ);`%lkXG>&WYM3Iwhw|#j@Gy?E5Cz4YE5IoH`z`JrLgffuil2?CTbE-KW)xlT-Hm zITJUsedwUwoAC=UZd)w7@ve%^zrY1W`5MYKvP)F(A^MQD$H$OlOI2}poH`6=zjmBX zxywoOUN|s6e&SuYLW}a|wPJJGO|iM2-FCNZjNKrc^RBgGbJdGO&Pm}@WC+)U;DVEG z?$0?>V4JoFve!;0jVqa>+;vB-e0EiwBg?@*e4S0UBQXs|*D5;VMX^f`CAlDsnXm!o zobwp4f!;ti1~0N~sS+4;>E6$>tCE+b^Pk84{==pt+>ht^d{Ej)XwxE8^PR=p- zdF}Y^7~(f!<%rLL=&462I_?T^3i7#_UVZnBaNk?FVCI<4acvvwj{X2J$COk5=J=R3 zMmn9g-u4!}BJKY8F@;nso}$lf`kwJyAn#3j4(#WaV#wU`Ig-9||D1`OT1A_NB;9Q1 z0Y(%`i57@0_U;Ele#`uXrD#n}U%ix*PZ7UoEFT)>Q>bqd!Fz-pv)VMOpSd}Jw}h_5 z@1e+tPJPebr+%8LA-Mz1=M-~<=ZIr~)xNbUXO#8au_G4%LF5<`7owO5RKjzRk5RK+ zm6G?;vNw*7$*2PRPb;NVv$tEG*I6;%Fxgk5Waa1gDbeW9-=wMI0J_?t#LT{N|MoGY zloE=Prewe3c_(&LmHmc%j>0;s0MW>#j{;upzptzsG~8<1MSb9!L!uGETW;WhyhwVx zVeO}Dd9N^G5j$0wgih+2{W_R2d&Nnww@xKtH-#<=*?drNl7N#ssaL{52fz--k5{o* z8;!O$!9r(TtSje1vob_Hz<>8INAf8WrMHmaJ)-xy3hzt0i^U1;CEDNF?NCO%q%cu@EoY0Fr4t>)L(#X6bV#`krY>NRWeW=#ugS zA{U{kwL(%&%1QE&B-J2PD^8_F@c@Yz3PlcUB?-?Q#y1bT9uT<*Mddh1aWJmY7ePSa zAWTbc5Ew&OpKP~+Q&t}1s*6{LCKh?oX%UjMLnzGwx$ zctSi$1O`8>5_=_>R4Y1<@eM|q^-A_F!#snwVX#NNVG`BncL<6%yV7L^1?WmsWMZwb z5GOW!n_zI_C>o^T4Wd$#JcK-Tt-jr1GEeZxUrveIqjl#y>w z`zh$`t`lHVFD35t3on<(38izjz6(Pr};K++sC`3G2W~@#(@Zo;JiQ=HRLiI^_ za~ORz%82dTf+zcEt;EPnB#S5oB?zJ}>~#j>Bm%(B3X?i5WJHFf8mzm_3JzFnV&Gt1 zmnadtwLohrg@{++V1<&kB_yD2II)mNLx(uI=Z+(4Iw zZsgD$j=7KSwH&Z3s*(qft3J?VJ`CGo6dqN)Dl7^}LQ8HCIY|*p+F8?httZ8(@#&~@ zrZMCsknH*Wu-A3soILQGE|`|kBnYaw)2FPUJiqzV$j49wVth2(QX@eWOhdV`R>+D; zHH~sIiGy2W;Apj`L6NA$$WaAPe%8EO%DUka4v1JQBQI09PD8%-~o}7)S8r& zNE*{11W}NKrN2`ksvA)4ypl>(Iy0o`2HDg#yxy4;Q8*v6u<=ugEqHywahejjF2ArJED!ISbvtx43 z!y+fw?5Bg3iT)Z8a*STLo6q0R-!aXvM0^~`r~5pDX*I&?Uq0@czZUF){n$Xfr5j%Z zZ?i&@0)-^NQSoGwnyG?DZ?vta^l~NwZ>fHYK4ode@dfXsek!nfogj@3X%rY0cLyDC z?N*{ld6FRr@g)e4i)sh3WS998h_ z)*k{*N|03N^jW>(?yz4bkar0%5aUzPK(e}Mx3+} zhurTKyRTznnh-)p46FbgOu;&*_bGONXqp7PLMh#^btzLgM_og*h7|(dfR}6#EuD6I z@+??)5yhPbKdh2{Wy_FthLit|T?Dfgp{TV&Q2)c{gikICIia^Xbndys$?2qNn3JR- zk*u0jgAgPs#L@F1lN~|w)So5qwF0PL%X20lvOG6SYPU;3^aG;XXXLWy_5AK-4v5bQ zzxABgkz|StIq-J-A8KH&un--20!+G36j`W_w+U#o|2%KkUi-k@G*vOcUM-L_+%zBT~k{S#)TfPtlvYsIXmVa?7- z3S9a*(VhY(+%WgtJBhZG*_{$4{1~o-$^&^_5%1c;YY}o}2OU7x_3JvyAK+IR=+|3C z+g5zMpp40_j^*SE+V`6qaUfq~9*<((z-GFvCKQEBKw^`f#!+b>1-vp1x`6}opb8UU zWfh1+%OVk2tj?>K=eVMMrRJ3GJrhFr0kF@-JCDLmv_)nUYcv4QbYyD9UmfeO%>|0k zpju%PI;m&uwE!J(n=yBFJfOe<*+eM?ggjgX7QsvvCaqMx`d}PWI3RKnno6|V`XX3( z!_dLt+$k*6Bdbvxg=&R`I8kS6C(p(6z5o?~muQa+E(!~A>F^>%cYFlND$; z!jaG@uE+-V6_DAy*S`E16OllL}J0qjgmNrkMKRMV)>Jn&+-;X{cS zz@@hxIS3gS@Va0F;3)^Fa|I`!B(!L?He@Gqh{HFSv^v9XTN}{5f&)2(_4*B*Y!T;L z!+^*VV&o-~M8Sm-b#kBB9p(`8Iz>Z3^*jBG#1#bh$ zYbk9}2sc8>rq6E=8YxV!bumxUL9^o3F0skkt?f*aZD7Mu(0pty-2vD^2av)b@wyW2 zeV{#>aZyL?7vzPqa&Hma{<>1V7?Ksc4X72fKEIP|b`C2& z0t>10Y54GStPpTBQ&R~x{h8FmtF8}5bPqe31%zmWsm4X^8LV{kxrBHYMXe7p&i zf~4+ufD6`&QF)2bWGYay)(TNMif9_sAO(_So2%^5uMjzjcL`3S3G0&CFWsrE)-Dq^ zfXKG+)FKqMR>+D;HH~r<$z#drf*iG0$cjTN=cxar&{Rg`tQw6Nl4{f*TKmESc*p^_2AeBdX)r2{dIJY!C;LA&ns;vip0`nt znaoq#Vbs;$yVvm7A5#ywUOFvQ1qecsQ(GUb9VXGD1JuQiWC}4ZV?t2m%VGv(&$y+U*9BA&%g-VN^~+$pn^i;MkU$=1EnU04pnk zI1NR@7|}$*MFBU644h5k=vh^x5+g?yJbMvJL7Kkd5?*+K1|g0|NQ>fh3LUX$E#)8I zS$aU^D3nBGDG^65LHi;I2%+N!fiVp9$vvJ$Ayy-XQNMr(6_0oUuw$TkI^Z;%1&OvfqW>yY8Qct>iBq7vMr2K2UH!vqrh;%19+htD%J`CftU2vqeQ%< z4^*reF!BaTfF%c#{K&$|G#Vi%t?>vbpwDZ5ZtlRpsI&vj(25V%HPmf8glZjh^NMUx zfH<&BZc@mw;#J!~Vg?>u(O^RrLSFLx9x}?k(*-B@2`f?~!CHGjSZvLI2BJ}K2Dtya z_VU89MJvQ!zZ_(MS{*8*)3$nTJL3;NUK`L?xxj7}*{T;Zz+y#48S&4Ho)bK4yI%iG zfB5t}<%%1^03o1ZiKC;XXaJG<1MjUGSSzy5cFKmXuj+dsB_5V6&YB7=x=(Fm@c^0HdrT<|T}?$2-bMLd1$dhZZy`7HyztPFkq6d-+)*7?Gze!Q`Va{Ls zSosUD%`QnBuvao-++VdZ`Jck4*~|YgJjmw1md4lS53em9<0RpZd?0dU%I1IlKQiuK z=il-RE3tupLd?;>A0%d?W?%R!8-CFbTwfcn1)tv&*r<;JqoU{J^#C1M{TB~iI!95L z3WGKP@9-+(gNmx%SpgQ>G&kLE zcu4gdYUey+mwOAw0F5&A`8S8}1%(1Xzr&DD2tC>i|A_k67kph+UT_^vH-J%h8XyXb z0&W1jjJqy5ATlQtO{zf%q99Mhijk8Xz*#jYEmi;yrbJ15kZ@9H(S{sFgAhcCeGxTu z#l!52U?ByRBzbbSBAAR|*%pNnlW4FWL==J?K&7A8?F$cx%u#I3Vp|-gdQ}+2jH-_y z&+j015qE$1sdXdqb`PS;!rZ6&2)a;ck^L8DrVqQ5GL-^Kkc}8Qs^H1b>IddYc1Gl6 zat_}5H5zdmeQ1(2^{_K~SQvSJlTb20Z#?l+?e3>5Md#pbwVo3`2O{T0H79;?@qiIE z>Lc1gY4UM4&MHbd(4cd!qR0{_sud^AkiA}!ww9z;I5{R~w+&Qjh^+mo)dF6t6EZFe zXn(|@f@eRg@67|zoMg8@UhK#O~?3a)e|p3F18Ekd5y`%Z%DUOHL4@ACX@N0bv?XIEpVyFGFZni^#dDM&h9+M8-h z`UQ(nFb*sl`*d;VAiayqH%`i$aLrJnKsAr}T%3fRiqwLF!fgNcz5jjh^52`Azdq zShX#Ta=l>9(sf!dg2@P$iK7B6WJC?tmtaMVazGrT$a$zorYmuBQHXv^rc-EASlw6Z z3X>Ef`z6es5jAQLMuxas9ZFxwg9=P4U{uj-As+bro?s7ehr|whm^rl#Z2Wa2;4d@v zl{8H5qrj->Ie9%m2W|j9%82UNopzt2SSv&Z4u+`F;!sx?1z3o@I2?rkL6#ngbqZFD z>}$B&Dj_(M<&`LM99jb*?xP+sfhVaG+2{spwT%L!-Xa8{Qk^KA4Ir1-*Ij1_J9d6-}cOnfcixd`tr@qL6^@dRhIh#DcW3a9a zV~e8{^q@9_8SGYRlwVgLA>2Hi(XAEF3hWb0b80+E1dQ#fJg~RT7D z&XwK<9dM24y|eTAdjcD^QDD@%AP`TiK#WNx=pqqVtdl3PR}56h#mD_K=gta~SBI?B zX{TS;MH0|=Vb7Br|JBO#Z>4ufMjrU>^$M!pr67MjzjbPpLR0)+wws(x6oMz)@AqIm z;I(tGA{4AvNQTkk@@Wkb$W|x~r-@58Soq%|a^VTMu(bWQPR1Q;ZQ<|)$$l+<1w4`V z0vfGAvUXeEc3INf0pZ|vLfff^{P~-%#IF7sjpUl0T~_R;+y8F&F(d`N)^GgZXF z4LMO=7QvL{|r#1Bm#C)<;ADaiAW*ly3&xY43pXrk2gSoGkc^5M7uJ%4-L zyut)vM-uI{VXcr7*6FuEz>{%eX^hS+;Mmy7-u#@b-Iime$lHcf_a?|ndJ1$-P}obc zFNVsAxF1kAWQDmyd(XM!ylRi@#^f6z2eB@b%p66dguar@pH_4e%z84>G&iYT4wH*y zKlkg&&&E?3F^MjD82c?qV2-l79+$^reNYm~nkV`z2r2Lr<%yjSDYBzauE`%s&pUlY z2`f8#wMU80g%*Z0Ge8^UyF2D5R!nh!{w78aCTFvKyW7dSwXXdDX?(7u*+- zr#Qeq&_86St_sGYZNSk7Y1>7Cl5jRiDw_QuD!woOyeQURZSy*oyVw?Yt2_X0iwp+V zZTAR_coguufMs&60nw2iM12^&`WUT#nprP`OJtF+bD(;+ALxA5r+$GI9AzI>q_N@X z+n)cbvJ-zX@z*ON+y0?>-6s(7`8?MNi||DM=nePD)t|vfU1ctRk!Z_wq6299Kxr*(8t3*)_XnqYCSiLA9cTAKTWf z&W9qEc$C%7VFIu583k}`VpR|w{C_l4yC-E#qn0KGYlWyB#QQdYMYZA*UO3O0uv0~L zqDjx+M&333x3&1+vA`(X0v>eGF64bU3hZsrXe+Q&#H|s}vDa(V#_a&uAu^kEKkRB- z7zOOCibgJ;UVCFiw_0(KCH97%N%Z_4(l!Ge1)$c(OSBEXK@sNy6Ids9A!iiZfin-O zz2HWWjC^ob5+#}X^E%i;S?z8`46;7Ic?LV&z;W(N{2O70t4=(~;A{7N(kNa_akBe2 zE|GK~dqtcPKO86dLrNFbhueGz=c=^Gu4TjgZt`*xa`U^h$pzQ($GfFD(Nj-68o&FQ zRii$l9eL{M_}6|Sttp}18#dqxG_Z|wSQW*KPUJ-t*%!3uz9O%-=f4N`QCwMp0$y={ ze(R$M@_Q;FvS$o)AgHH+AOsvmuzo#VV**L3a4c$?k{9VD0 zO&Zxdz&sQOos(8A&u_K&R(rw@BCAbw5iMK|2khfJ`#46nbWR9@H)OZ9m>p=gy^=r8>mryeiwI2Zi>{rQ#HD+!5Cwy17~zF!7ZRH?3qUEJ)H+Wxdxd_5$UF_b z=l=X%>$socKc(($OS)(fc3PoBqbsqa2uxJR+XP=nM)8SVy_f7=X#kBG}fiq87YltkI>DpbbFbSQ!&)?@T#kyT$8!wcY>qLqx5j)-i z0p>2PoP?uj5L#`tDE4$%NC72Do?>T7P{FfjRanZ1oK>R{ zLsE^}Lu+4n07p?5Z&|;vkOPX!Ng$eNQVl|DL>4Io_Lc9=D>z(%CnA+X(;C@Z{c<1# zr$Em^@47O&5c3{->!-{g_2uyKQ)kZL)YwVk)=6-Bza$ogX);MiYKi>emsMh~ zUlab&_AEr4Jm??WE>oyhjPm?m#sP5)Qqs^J&cXBdEp`RPLkB%Z9W4ir@-?cGe;9Up6kcTCtrLRMYF}!n z&_yZm8cWYOfV;fFpM=}U{*VT>;^H)*L3omf z{Pkye1gsT;S^tJgla!3S_`ZH-Oc19+Mr{F5 z)hqenYsjDo8Q*P%$Md(m;Q7ySF7s=1!Cl(GoqiPwNHZ@EG5pJfkkRvd@WZQ3##&$X z%eGi6P9jELBA6_9N*uE*ZgQopd02xGakNt_CDXLm-1&IOv@l>-^r-qMVGA`Xw$$e&0TapZY{U^yynf@D}NN)a|#FQqIXl)+lO= z+}JE$5kwcJ3zmA-=kLvKB2vJv&+mQWZw@$Drn*oh;r$`@8A#7&r$1jm_q5)m<*wx9 z&%-AdJO|m+&ivgZISIS>r`>}cl)8_zY1S|t#GcSjB6(2GuEAvyR^moGl0ps@c?DEA zIH|-5r7>nhKDm5|1kTBMQ4*psO?tZlZ4|ofep&J>Wltwv35oxR#eRwEW3DL`pdIXU zRxz&tOVb|w8sUBb73>$(b5w-jLx%hzq)%ZuyZiv2-`C4SfC@ki6nbfI!F$W?9QoDX z?{v9|KJ4|Vm@p#e;Gx07ga^F?3oJ51N_3 z$K)*KH8k636m-859=H>^d&3M~cdF;jQ;y_QBuG>>Qj(wB>WPw5tL!zD0tcvLf^z)(W3O{1EDg zPW}*mXcPGq>c^1YLw$<~-Xr4o?9*vpH$pkY_mDp{ihK(79Da_FbC!Na?VL-@cD3V< ziBfQh(rX$FKP-_Gd{2X29=e}*j zoV-sY#ym|Fn7e3B56E^>&MI;m*Q{NV6J$-he#m3E{vBw_MwW=1-P?9(&u3`u}D*)z8`UJFT3WG}=bQ z`M=)nXZCJAIr-2O+c==4fhg^I1GoW0j=BWrFRUBrNbE-hR;(TEd zJ=yPUAOw1j{HKcFQc=h$Ub?;OCdXH(m6#iUj^{FYK-($4K@)ACvRd&|%%8%~sR*3n zc2&5g@ble_JoZDH2TI#W1YoCA-fO?Xd!{+6c)j>lKF3O@sN!3Ie2(50(sQyQuX{H+ z6@gEwen@YhGUWGAbCj=!=afIkqMs-HY*@}?ob^M4!hT@Rn!x)->fS0TQGx%Ji^AuT z0{?U1yjcG9{pXQ6>-RBWXtDOh`*O2J>WIlF(t}w;6K=ikZZa(MxRWTlI zM38&~r-YZL$^C(O3V_cMo)eZht^3bszeV~M(RrerUEwXsOKYL|-(Akq;*aO=qqht4 zTPE}&)VSXRpwdat!y5fc{N?Za%i+1Lv~%D$nmN3|dxWWtu9s$KXwFho>0R?*!Y=*{ z=Oo-r=TKAFcRHU?-0gi%$nW9DOx~xbDBtCLh;zJx#B0I^Ky?FGMyDOAkj)u(5WQAmNKY{^^(BxV%@bi0#2H`~^6^Wu0xex~pedsm^p)xvDF!#CL9n{5jyiNF*k!wO!vjktjJm*2sPog_oQ33sUqQ(}|oYNC~U zx9wm@0EZ&vSYht4zsmmFfNe*qv+{t8SK>uDShTkdb~00M>GG<7ur0t&%@B8;K(*o$ zUikbrrZFrw=U1=5*f(NVwB4X>{l`gmw3P>q)sXpN>s;x-**pmZ7aAn5+XG{TFC3(g z7u;Z!S$RMa8pK|&NUF^{byT}c6hsu!1 zPPO7BZ=!8`H@l7WVB*he&UZpyJm<4losq~w#fli@!BIjVIr*zULB-Y{&PdrGy2Nkp z-5(3XoP=S%z1khsI}0H@(Ij5OliH}=D>%@V*!c#FV5K;b!RZb)F-OrL?FPwkb^hGD zetsvnGa+hd*n2AkZbHb&$ut@zS?h}bj*6Rti-IcNlG2dJ!@g20CxMJIV#e)pUCT}q7N*2%}a14ziZ7>!=N0tGj5_ny}P7_36q7Ix#*+zj; zuV_~aGpaPH!a`iwb#h+>3)xZB)7t`IM|3Ix(jf{-=_2ouzC}GPa!cdvfWQThux(zEJ)fo zh_)m!Y;Og4aRG=Ted{6~2@`I}(a5FU?-1EV{g9e%FYBhUp;#qiS_BKxUjA{Vz(r_D ztuQ4viH`g>YQ0#so;v_@pQs%IQ{W9$Av!T~a!KRec-_m{Z40A#C7xivLT`4vp(x0( zA~dMN1a?|k#X;NV#9qMxXG9KZXMUi9>{ObRWgFr3Y|roH8jaGRMBc{7`zVIe?zDx6 zU+1`1_?Un07X8pIF;e8D>u?2}bkbper74AmsMkVlh&wnmF(Uplu$K)679q!4VIfY` znerr=;cWu)qIn$MK9TDp4vNT=$GBYaVXy%kJnX(+5OTH$Rwf56jKm9PY`aikt5>ip z_|*>Llbw~5pH&1-fsSBRV&usZnP9OxW2HgOtKAF^>oB24WamH%`(lON7y0W1GU&Di zD>RA>D8LRnpuhlos@7R_ornLX+(Id^2W54jgj2gpr2^)aUoKp9LR} z)haZ>qqIZ&lIkFHt?)(F?n)HxF}aD_%Xl7$gmu*BO?yO6eb4VB`lD7{mJX);n2X(< z2Jz<#W0a=*S2qWzz>hGO77;HlQPNV6MR}jkZ;V1h$086u^IjM+Tdk*nv&vgyN0|~mCz_Pr z8t4=}G+Q1%sMb@E^=!4C6F%vAT$FO4S!4fM!qwnW1e3&5{*XllYi%cmlk@UQR0`sI zqNl`fB6B80@1bh!6o8!pZZM;8=!w>u>1jF-?8+2PFzd;DKORKQSBi9b&U9Fla~jYe z5wNZOUq4w;7po79veN_+n5Y9i`$ONqa9`-t(6&{HBii5{cY;MB6j^z*TyPXurbTuJ zndlWN?q<)Q6Uau7ZY=TYTZRJSr$>s`uvWrK`0KT#)MZp64yf0 z))e--Mme1Zmeso`cF63A2d$&N0)w<}U>XJ8$-z#LW0=7>X?AdI5S*j|z1hBam6M?B zXwv!1+kMAT3QPcY3?u@^{Z;fe?;zXysX2&WrO^Ru#K;p0IlsQm-B_Rk4@3+k;9P_p zYlVQoOK_rs5F`z5JG?^$mQ707Q!B;2%&b@0Z(C>Fo zXaccQt*{Us8IhgWE^km<_{xVIKCTxMwfEnC9FY+hUcGwcpbFPLb09 zyF4BjyP%kFsM2>Ng%nUWAN1$3qG}L|LlRJthuPPGx!ti628oBJFadaCtw^=P^42w8 zOcmKFruMe5VST?M)t*ge^U-L7B*e(kYfZyxOoI?au{Hios;^qn;4iNYzP9wUeY`ff zU*K9_xB>G7G8DA2Kf~)yB7f}qGxzJ~->bvEufjlIaQ*K;+t}6${rm$EQ^%uE`@l|ym!yUK;fp&X>XN?r zfPfrWopC~3F|3EAFuBsg+I2|}$bltHRsde2J#y&kBGYI>IOIM7CZWg@S|p2$pibE! zPVjTrO)%@pL?L)IM&u~Eq%W39ssK~^B>!7oh|3Gm9NVkdS8x+vUy224g-JMwM->4l z9aLsrz)qLPg9)ep-0j{V&ZWQwO6j+$6+o$!mc7~GJ=IYH#bwT1x>7-EqqnuMm%%wxYg-WHUfsebSt#a8rzB3Kn*DGjO>CZUsh zwr!Av7fQ@^BC+EgU?MH@kiE_TXS6a#)t)2|5of<;O{2Zmr0SyJ`8=xe+1CrEfRaG6 zQ)g+6Z^5Z2n+PP=Y2d?!+7h%P~H4gO1Yk(#-p4b^}c5u5e z#NbZJ^QgQ93MZ%J8qHtjNP#M(C~4OqvGw^)#h-xmOSzebPCuUOU^j ziYB+aS~(FtCA~`w@(Ju0RL3F&fr*32njsErl>>J0gLAc;wiIwyQObcPB}l5S{)Wh) z{&Aw5D5XG0!)xtD2j~>(ixmd$g(4>AC5c61n=WPyZ4wqPBtFzefl+DH8%*FuGo(ee z;@}N{C)NtiVQ+KXmf(UyZUxY{FV;E}?LR{niH;;4hFN6((FS$WcTfsRmV=Tq{oA?knd(_Mm== zINI~2&h}K>G#bpvPJ~+$KcVhqZ1)G9X|W)(<06Gg$VzB7?_{q#$_HE(Hc*A7+||U7 z^N;0c`vr2P7km-R3$C{PL*E~EH_(j@|43LbhV~1GgX!z4V*F=#ykL!A!M4Cwy$Cq; zu7+|)A*duuBM_JXJWxlbqcj^Jd%4uvFKO2TB#0Bqh@QU`{12+I4?XSvU zWyFoH@;5F@O2mj2!H2n5>g)4Tz5HAOZo)S}!c21D@X#whbqRB7KYW6cC&P;&XCdS+Z$9miWZ-=Ych!YTHnEdyGA^J5cR6 zcuSDak*+`>ie2u5$H}eNp2T0Dj9Ip@T7^reT9fON8``d?6Y?_cks-=0TbPAhNT(5L zs}+-TG7-qG$+cyJtYNXXLF6R0Cgms^#>4%AHA)|_{L0nr0NY5YaJyzh`CTMElr;3A>HgNX{M( z{s64C%hGb522BzdMr2}Az8yPIIvvr$sfv{crg!_6*|T{U|=35=LTmpm39@sy3lDr{{68zDN> z>TNR;osn9lQ7+Vq(B-Uf@>KzM z{Js`{o{8$~6a|FI`UrSKj%Krmy`6z}yAe1^J=sY)>8ZJqrofy1cxsag_D%{n_5J8$ zg#JP9X%98@><*=X5sl*2ueoOY&_M?|Jik5jwmVQobhfWQO(p_o&mANhJ2WyRITnkq3#BI`}LpaJ|65?sWsz z8LE!liX!p=JBmRgY!xP~NMxi+Ud4~)fKj|w{JBv~a)W+tH*XMqQ9)#@)?LW91@^mL zSBDcDFb=qrz`hy;eLw>EqJkoebpWk#nxx21o*ljIBQ3VO4Q!1D8vq+pMVyr419UOf zif-gkVG;0T#Km15`vjQ8Mnb-?SCc(uWwbx6&Xx+Qqw63oU5Q_I0V_Dl7wngS#4ep3 zXQe<2biu6)Hp`xW=K=p-K!&u_b{CSD++Y;1#K?|$$B2IiD|!hT}n#)5E0m}Znkac z*vuY;8f|R=TP-kZx7xk6+BgLES3s>8%trC~suYu0N8O2?e*Sd}{PPz1K?Yu6zXe4X z;chSwVGjljC$U#X)Zmw+T`%6Gf|C;ZEhAL$>P098mrakWiPGX4Mw2q<9(_%U%jv(o z5BqbYRnK>5C(e<-bSeeBswiE9W!LqRzUFrJw}FstBcAf4;F*e2;Q3YE*F#AY0ySgi*Y1DQaA`g zx>IMPQUI#L5JBX?S|d)W$Ve-|NJo)T6bAVJ8bavgrybh{u+ht7!lYU!^Q0N76G0Gq z=LWurxvP92pq zQ*OAC-V+j=^idw*fIg#V{USSTDd4pRF|uJF1-v@=!~r_!CFSQk^Du@YG^kbxLZ`T5 zc~+?CZ$N%cMByXTYeMjmhXVoq5asb^GtGfs|>7+J^ zaz}e)MxK%}FOU%RiuSN=SRpp_UsX6l$}vz=9v}hjfM%yGeGymW}d*A?SH3Zq0V z#Euihr}5TBL-sZ)g^$EMQ604px&zo7wYZYPPGP>5_=ZJjHR5m#w4cx}ITwK>nnVLB z(%JB6T{JF50hqWe)=KJ*cl!_w1tsb!J?xY&n*$*>B~XU_~-9?3c&@)<<( zdNKd}sY&(c&tdkI3kF_X0o>aSIQWV2xdl0yr<2~PEC&*%kZ@sk>GvBBR@l!A`+x|f zCCqUlPF5={hS}_B;h7f^fovK^cx!ZVouZ9|VD;W52M<^bIkW;ZCKGL|rQ`O3&WD3P zsL*hG(p~8GBxl?esP>D(#UCF5@+G;t2wW4rChATQ#H9r9z-`NS=dZgW$@}AQK7x6_ ziPeb;uu}mee}1E*M9z~Cz2yM`5E&-Q547WFia-S?_HKm=1OGV+o!;Oa$;JcpgomXY zMCAdsdgO_SC#r3uA;ido1ScjE0cRbwq19$xjHm`2M`0bc+f+M8Q2>X-NCDWuA}2>8 zpYC44;W4QDrS00ufx9|(2fyA%eVzl5AUaV1J4si^9`Jw@vHtvNOYZIImDuS?VAyvs zBHODWTO}*pN8YR);I-C3cCg+jje~ipp9(B53_H56k=pY z!OXQnNX|uRiUtw{s$(VbceM?5*r<{k3mobSG^_53pLm=j1+NgMYrr2urKj2#Ihn}S5 z_2q0J-?f@WK;5ubSe&y_l9oBT6lz=xGB1^m`nn+p&a?(y$#CVbKByeM6RYm2UWozBO|vq1;I z4x%tL@}EBg=!QJSPQfjUy~%eGii9VnKAq%gi!Xw`1DCU$*j&=fsY(_pLGc7jP6 zw+)kVW=Va8ILrRXb3#*U1>mfhg&28pSq-n#c-cH2qpk^F6TSBE)vpaAABlb@^qCa8 z?yaj6T>QF#M6NB@V}JU3iQ)-h*HBWR`Af5Y?E;Ox?K04PF(YK0(lQqQ){T8CJ-3s01^f+BwcOytQlDTTM0S)2H7J&;)j#eOz(#aKr&_^Do$P`;YG5pn8cT#C6p1jVC#WB} z-x5Vd_qO^rb?oA4TRd?@XcA`OdQ%-IwKoM z!2DZjFS8aJSir0G4PgwFj2igYmk<@0a|D5f=ze=C@ikG};{U_fd^XS5n?{lmLf{a!Tx=|`AHahN z@1^gqTW>d-tdtOpcj7N^Q5Y3DpmaI_9&_gX?$Y)KRi21Vs@*mn$#y%=0V{e9IBbi7 zoLCb_6Ita^{7aCS%}}|k793ib1@MZ z{_0uDyh;MuH19NY&f1OPiK zph!&kfy5})^ zK77yn_dHQ626K=I1m~4%L~*O|Gi@XSf$CUDoeCj43k|9jf-r~}IV9~?gM3;9CPAbM zK{HjaKHJYyfUT0fBc(|JuK_iPksS}%6>6gy5je1sO+0Z|tcXd-xK&`IXD5g5;I}pf z@LF1sAo7q2B9IU~C!t9xoJV*-Kq8hYMJTvJDQ&gJ*|SwhjKMq!Cdy=;RA9Cf1R*Ds znb(>bC+p04qC}i7#s&e2IIz|k^CX$6WY)<#DW}>t;EU^`1gj#i&ak@Z8uTviX)SSL z!9|KtvOFUK*)&-&Bi1aOP*SdebVHt!7I&Q#=`kS@2Nt2=S}~X>2?R@Kovcm-LCAq= zV~S<*-R{r74mm)bDImfT&7h3}Ua2H(k42E(9-xjDCMB$O5uCz-9ns~ET&Vv1Svs?~ zU*lhT6@JUEq1Y2IuMvM_@r<@>93kDwmpve$$kmXus!PPnQ`>(HXIzltnf&38#dw;3 zaIdQd6FapVk_arSNpt7gNE)p8fGLzP$8)P*JKa|mg`|%~Fn4M&Gw_tOUKIR=JlBZe zGm?*`qH)LyF!9|YcySVelqixA&7RUGPkIV!NIo1=DbQu;2KQS$=|exmB7_`qk)HVh zi>-}|Xh^L@F@=nZb^9gx`MxB-1Ui!z+*>?w3+F8BTwbUxb6hwM5U1ENWlx|2oJH0- zO;TWyi}6KenZJ5_TogIET^a7R6l&QItbMNk`KE)A7ybFp`t!YfJ@?mriw1upxS2i4 zJ6I8UF%byw%%oViUlL!W@Pxo4Un(WM;pB9nc&4>kqYe2<>QA_dP?Hd3nOpUQwG}~K zlpv{O)>!y{7W4h*&!j6WmiIGAQY5mfE~=Sh=6|F#_<$!st&o+oD1?dTPi|Z@$!)za zGJk-+icl&3<4?L*HR$A3oEXt3`=|$Skj))1O4JR2gGms>97?;9bA^DQXcX~G=j!>D zIfy2BD~Zvgy~lD62v*R_23{wyQxS5EOa~Ac93!#L0;ABaCFFsOPCMx!!CE1hopfZl zlffum&ME+-+GA;#19TuW;^giq6u?1qm4btIqo(TLc@=DAC4(pMfTvBpUqVl8xVKg? zp~W{F-Eg-`{1rePC_(lV6;t_p+x3339pJBB$y&c~_d2$@H@}8l1VzF1NR(r8Y!C3Y zG40QY3CS!1*)+_NZtyY?r4tJ76Cj8#^ zhU66@kVHe2CZ&*gas^^sT~@>EG{$K}a_ta-YogagS0}jm$5H5Gk9ca<8vDEJUZYE! z!o__bR7vQ`MfK|HFAs{ILu+x(WQZIlWDz=8Hf37sSYlQp;x@W$Ep z_i+pNmcQed!D|%zopm4_&?PxR7UFDimN}8nL}5uPX5}m*xiwa9HV%P0;jT28t-kN~ zCfUKl*chYEq_kRbwfNr4iCz<5v+F-6MJirB`Py+1jRK?A0p3|V-zItbw}V6t_twNn zbpQEt%S^o3&$sE%e>i{~|1@ZSKo>Q9+E>?i~KU+|9;4%^C!I5?vSnBYXR5=*E6 z>=;7Cie!I^w`i{PbA8$9pVi?wcKj#qR{alB+d2GYN2`7RI>8jNRwo`+6b7l)JCJI7 zz+%WlwfCR{)R=B#-b>>ztQ)MR*$5UxUR2blp8%>9q6C?T?4z_I$j)Nmg^*E={e>XG z$Wy$>&)|T*Q_Jj^He3`IU)46GKj?-hZ7@ny9#90C2G{D->@@=J>L?xxIm}3%ynP07 zP_#ne)hCD?O0Rg=A+dd2>Sm)!eByXAL58foi|GSK_4XoU@Ps`P8wwWb02S%}5j|iH z=%UD%K=d=}{q}n(3ZJojM!NL9vyCiJEAs$(*I3uJ9dGdaX&Y`Z%Fw=pOd?D1kAnLo zPrtrAeVygYMyM5n&`CYxQANNh=F}?IYCxqlr^bUsM^@~Rg9s86Pl<;TIgrmlFM%#C z3vZwWSRiGxnhtw)TUcNeulIIPLQX8=O^=4PX3-=ZSZH8r5?mpGoqF3mWn?G9%@;k} z{Q;T1$zDT;*%V_7f!Y#AjJ0BLq;Vk*fPG;$As7`sD8L0`Iv$#FX`@sK;2@DmiP%># zveOqiiifYWjOJE*?MC}qq>plTw{y7JNHD5R{q-D+jlec(Q%@UlKkIIx5b)^Ib3APR zc@BQ1J<-M?5S0hq=pdoi*k{K7Vpc;DpD*M~EAay|*Scu*RhX1gbm}A;yKaOMs8Eqa z0XRpr2rTB?x?i^=UQ84&PFG(S=rHzLh^odXx>|PpeDB2QJpx-h0CsYxN4of8KUYJZ zkeSNQH;Kkx^C;>y0;(Bn#boT9({#a0;pCD z8J&JLG%HWAg1gl|3XDn>H&Au02GVV{7exhdRsbh@!wxq7fumA0C}+8~zo1e-8EdsA z^wl;r8i6!c0Ds|5M8t_jV46~9$l{Cs*$f_Ve()MjqlsM{6<{KF4Z%vmgZd~iDtSFX z2X3H^Gb>D+Oo9>?N9_@*LP8RnvH|ckM$}|I$pM^2Luk^B`=|#5OyVGGFW_I5Z4?^C zl}8l;Cv{S*jqOX1y!tw=a~kPRNos{DqDc}z0x19{ZO>k73XlWujc)Ct8fvdR&cN*58xs!5)H*(0D0_fiN)_;=EOP8zM_ zzH{IGomHJhAc?L5-e?y^aFh+%D5_Z9z^gsr8o~y87DW~U!$uV`kb-L0!R(cS+C~YB z3{zkrMmDoMM!8dg05;kQN;^&_u+l`^NySED2_Rd>bQZDEL~W!p4$?>2K-JOi7=p*? z>N!BMGj^82NJ5lRz{RPK;{W}0sTD)4J4BNtegskgOsc>kSkE_Wn9hOs-WXRyzPS7n z34A8-(WUT_e0J&Les`3U>o%GK;)F8ug8JyI=~Uv$LX&&#nygjaAiUPh7`%bKGBpC8 z1QQ?auJHH_D(q>gq=wh~{TBA~H+u(&0vvPl3AM4CeR@`{_E%sJMIbZqG=;=@Mkh7e zh!tk%LAV3x>i*?Q$=p0%h#vm)=kw)Hr%cgCg8C6r+-Aiq*pqG$KIsk>0xT+B!2xSs7&u!I#2g?lqSGd6X2R$TKJ-{y6B}}7bRGgSMOaeu9`b2vs`RF)cnuOw~Akc<{d zQ~Aif2xcM3QY&T^g-{9dbU#PIQFv4lFe3gk(8d9j&^ldoh(CGJQ6jH3P$VO8NbK^M z0PKi~Vh8qGpx0gmF_H@Rf~c;s*GVugW04}!G1&E)SXvj>_?L|dv+3~QrZ%W!0MX4 z2(1m0SkVvrY!5J;?PH_Ap99pJ)jcZlAibY}@9`gZ+vf!~zUBG;cYhD%J=FIg@8Nh4 zum24@oWqUkyZ#0A3~!bGD8O&T{XO2#X%cPk+73{!1aIncSGnVnna=g^{p9@*-os!1 zc#j0_UCMjd&*bcQuh#d!@*e7Y*xrM@2YtTB{vO_2zM;c8(B66g2Z`7;f4$3J;E%KX z1@@akMX!7U(y03=;p(-^oBk*j|7ZJo8n>H`xXWJ&>oDRkoFoD!wnEyuF`mP@x4i)H z4M)F;!cG2C;fDH4MEqMgj_~z$j&~bTyb>FY+H9=EXk>A>1^08f0egMo{_|}@7J5@5 z7?rHHI+ks)qlnF_m-EfEXh?xtsST+Rz=O6H5Yf*!CbrKd45Pt}>_oU>t(cU8rNp5G zYIE#i10(K5C|C#iBaIMia?3NKkW42NBqmOhmPo*(YZrlV zf&DQ}6OO|dAi)DN`-F}ZqfTI_T45pv&b1s6k;p_%NRH|dvvfmttTobY19gshnX7`> z{%1h!+Z2ERR!Z>!>MS&DtNkV9MnmW=T^-jWwrEkcX)YA{tC=L!XwcuejIDd7P+ZG+5<6rrrVNb2kp^U>ol z&+ZihfCH&O;xyy0YYyY!Z3B%bIDdvTSM5ro_?UqZuy$5@G}4Ieqi7z}8TT&|;s|8? zLBfMOYC(G!qZDX1T10g1rKE)1AS{10-5U9loal_0A)7)-d;mcX9uWF^p5Ivc0Iy?8 zUiyGZwZIc(rWe$1n;LHyLok-{a>l=N1F(wUx*>t!{C zEni9I&)i11d?l8 zWcF47?J({BfC935>3t@>;6}u&i@+t&9Q2<0TY=R?AbWwNPsoQp@^!aC#!3g=l~Tfa zS|{6;8J0J!l|qnF?4zk7BD|w!qh(SuEApbLv)yoKx+q+n!+TSj(uGRP7l9#&Hsmat zgpjlO3Arb0PlQEyG0o;D;@)ql+5KBAC9;?*giB!a7u&6Y%;tE-a9E>SQ&0*`seYph zZI9_#0X|e$C%8EB8Z0N*Dv|%TGbj1DIYYjNO+68)K>1n}l*V5dFEq99un2HgKZ8)@ z@bkA-{z7EW+D;mG`)fv&Ga=Q!dQbD6nU)7S3Z!tr;z-pW9eMcl+rpX%en!6}B5=*< zmrR%Bu6_FqQX*}US}%%=DrDsldvUWa?(eZ45fc^QYaj}jsC)*W$+}Ui?TY|DqSV!^ ze~QkU=;{R7WeO`zX{v~#sdx8J)lHd}^%l^1((F5c3MQ)?vclt+glE+6O0X(%I7)$? zLTLw0;?K6of&6@@pui#*<3;^PM9Shpas-dm(A(`|nv5Be?NsaHx-1o11Qxq=(y9y> zg>^oCapR@$+2g|nauh#|a`qV&p-ZCfKi~CLe!j)L+r@W8M^R5>t3EqtV~su@RRkb7 zX4R{LMPg$?uc|PR0_X&VQAiL2DM)+ZAgtbq8yGaNH0lPmde%lgK#hdhK#4I>5)vh@ zu(Xi~EK(>>Dul$sP`RouO0cM2G!`fBXF2cz1~f{o9`LA7|DZ5aQE$+9wWs+yk%2#y z2u5Si7}+4*bv@eic`h&K;J?Ur)Ihq;ypMP%t0G{aQGt!(T@Ax%b}Lb|^?Y894Q4H zpvF`ofCt4s9Y!Uu5)?c14S)k{g<#QO+jFpFegc)WiV=&@6i%3W)X{DsAqKqFQP_W6UVg{3sFJkF}x2*B)DN)9MYd*%&* zlXhbo+0YK7QW0{j6&<$?*qI?n110b=0oW0p=JvHh5IV&!{zNR7JVWgG1PG)_9?U% zc%no;yA_dx$NUC&C8JR~9H0YrEOmgcY@pPP4$w>r&i*?55K+pi zNyyG_I|l%!00=5FQ_;b91u&{nC$Q5UN+-tErFZclPm(OGlL;nk=2&1qm|P+~A5O^m zcPfuWz){IsUDBNP^FC@X{<%6nWBq=Q76^$c^(0n&z!XZznK7GWM&w0nh3uDE5m;SU z*K7pYbhTw;byk4*)(;o_2#U}psS1~bFD@S)x;nwdiPzx6uUme4I*a!W#?Na_bWP&1 zYDB;9q|w#rh7XuR$Vt>V-{Qvewl-q$I)RM@(cu8w<9+l2qF{t|)O{SN?I?u?l4wST zEXc{?OBl|pt&{7%La-PwCVArz^W*gWtWV%kMPZPR>cM@K9bZm_Vn}TD30@tjCgO=A zDUXBpUMQj8;=7GtMZ`e|*iTm*-~nDI#1skIPwG&etdZ9m$PNOx7Lt0Mm~8fTj$gQ+ zm5INaZ5M)5cmv>=EX}C%sEVpR^XOF@ara8>BnEvH>wm$G9A0l|=U_j42GI%krj{9w z@Q7DLg~@7aYaYnlWn#(|j>(-7c{RvNd9tfXrvn@}03N6cFtCq$K)@spQYS(S3xHRj zEkG4GIEw*-SBLnJt}u2E&;jH}Z^V9> zPNOmm=%XGU`1w~v9&o?Wq;10~sY4+%N=s`xZ3EzJwL(^r zti;G!1uuS8(PjCfjHtwPZ31RN+T^3XH zX&ME*f=~F&2HH5Y!nBn^5H$in->jl=4QL5yo%i3`tcmEgOTzO7TqA|gB+ic!)lp$m zK`H(?Cr9GmeVLGh0Py5(!zmn1agYSSj#z77#QQ^Os`kv$C-ex8mblebPz4x_^Vl_g zic?MqruBrxKGAATh>q+a0)d*5b_K8p)t(NJdA10IPI7NIGe5E4rg4J4R|Jh@h! zA_^hPt@oVu2zJm=Kb2F6w(bj*`2c0nma|aWvMkwp5cU&@;s4WN#ohaDzowtM%%*x~}uQm@f9(N&T6&DJNJAdC@q5a9my2 zd0Ctl9^nt6FH*ZKnwG$Aoxx{&n!@+dk>?8vT5GR)GVF3NqvB zinw;Drqx8M&27U1z*I^~L}4e_c&1+%*bGl)*Apav^cyBfOmRs^Q`(G4&JCu0R z{%7Xfuc3a1AB!a%Nr|&5nfV76?#i&qnGO%_jB_0SnXMK1ma%D@`b1Nw*Dy zXF5+mpMeNCsZ#>rgoUORK@3BY)L8%={r5AWrL|-SWL|}{6``!PLe}j`S$Pr2CbXEW zlX_9QXd%vtCLzc|oNYb%cwt@mli=dWYp`y(Nt`Qk2KXCYlVsE$N}%mPmGs92rhxnfP$Jd$~TxbuAm#;n^2&IeJMj5R~1)E?T#ZJ($R&eA13VOd=-R7Ucm9pp0pI5iX zMivPKD)ibp^ysbZP=O*6#DxXI76eYh6rwOOHR%AlAv@L$66RPWW`u|{m!tv-Vde@6 zbKVj{<_h)F>F+d`BD$|C0*h+a$0Eqd^6!_fnJ8RSSpt3ZkLY|>JEm|vN6)U0jJu!KEv6 z6A*3d;WabfZy-w$pI%uj{yxFK#d(thcTs@ZCkH+t8O=S~UN9DqZ-1p4i^pdw4pRhG z+{u+H08eQT$bvDY5EKjADB!h_&(M8h5pt{*CSssQ>d$fvO^bT2&uJEW3 zFq;_zCT)2&#$&bcYzJ^+b*2EBnC2ORP_>8HL*y_?sF6P*aPF=E6Dj9*!l8_)$$F9l zrgWI-S4gN_Rdi`zlo5F`P1ck2iSuf04kF;BlPDo&$p6Dt_o>;p!L$^(kfAX{RDPU;zZ^&sACDokjz&vEzU=Q}eeiLSkOy$==v zC!K^9F$raUfG*l-Sy)#A&e}Cu&)hkT28~{{M5hDjnuzeT%TC}R8kXP$g8_Dl0B5xijd9|RQ<3aHfyX1M!AK%J3 z7y|4Rz#j5h5O;te=B^<+@>hwDWa6j*fi#Fm z)tJOu69GFbk+Vi@e>il`E!vG5*)Br@L}6eN8sw8AKBs5>YG=6vcr8MX9H9>Ki{J=6 zrR(74Rb#$@*GHm+JW&UFrob3zH!PRPvErnOeG()jM%3w@Cm(pjq4E4xljhL1Q{tZZ zu9a$!?w#aND@=l!qLcdkvvbDGoLD5! z=wuqXdL5^|!6;GL;ebgAIgmVMuiSN@kb{7eI&}eJTm*SlU6gK@dAe>!7vHJG1CDF@ zdnmu}pudC!zlFrVrN3<}AIYy>dO1<`CLHB2B#bfyi;yD+fRh^dRp~h1x8wUkGoBk! ztuPTCg@}VSIudE@_UNiTGh}(>zMfgc8~u5QKY#jsfnBjyf{Wv|q3X4T!}}8!5rIWD zYopblt6Yq;5`eDmUxJj>ikC!T4aBw44#5Sfb`51t*FmqUz3&vx#9ts;3jl}jL_0oU zaq{U3qU22U1(~zNh8z5qrV!q-R-7sWxwjoTiMshm&aZY+UR89Rr;C#JKU*adT8%@u zmhgdjBKRdg-^IUj5fmD_!yRC9qgu1Zrs@7?4Rle0Rf$($mtQRorcmI3ol0rfq(zT{ zQ*Rr2ps67{QbnT#UIa zLE7TVV68h?A%mI&-*aBu#RjiHn<$HYl8$7&jdM?FA| z3XIykasUR3qmWm!L;*%c4@hF}0qR6CzX43F6`YBqg>honK?ekIP)rgSVa0$+c1#lr zh~;Ckf5=O%Ki_Mhmw?UMDBu-*g6`z_0Ebw1{v56qvT_y?SX39)MPN1H#p8O*K@s}M z_|itiYtWN65`on<`*W3x@uK(M7?-5L20Q%{@tU>0w9f>7iQr>ps}(-7rK>$)RrKi! zB=2eW^Zo7LkLI$|kj4Q50|g3k@a(lukgzBF`;G8G5(Oh>M0M|x)w&c+qIPKc@T39vuk9u#t_6((XrWS6b)+8)ybL?BQD)xdsn6f6qCf&BoU zD3WqD+~6_7(f9-^po2S!w#<;_ft+=b)kI)XT~tkW)Ix^QFs4GWR!6Ep(t8p5Opw<| zhAKc12?cKe9Kv0L4@j7~YBo+RO38FGLE@^}I4tg^vx=l?IzXp&M{>yX@#^$2QA$b* zVe?{l@%TW-xRv$W7uduupNHmGUeo!e$7T(Ki6dqON=X;=K zbPkLrf(}t_g`qkUozn&P-R`%CoWFoL=n{nbV-)A(=Ub=JiDD!1sCIlqHLT|V=lH-; z3NVAZ2&uk?s4sh*|M9UG%CRN?1AeKqmY+XQE{GiPe7%@yar-q(L^^CdjHZBm1lP&!2P2JDB9pR|{q2tb$kf{s?NtHQ=mq>&}T@5?cK_zt}~J z(BidT8bq$ay8C4!~*@M?0I*3;^16uJ{T){234QpTFujy}{*b+86Mkewp)NBgc+ z+lIQ+Z20-pSIrYi=aEihUFfUQ$%qE3SN~H^*lY4Da;gB%NlDC?Lfp3ZwLdfyWvCcO9NFQkqvvj)cwit%Qb=1MgAHR*wz#7@M7v%FGQ%Fp|S zw6WhXlNBKkUX;YHlCV5eD+Y6rI?Yva2{*E{HEGT>$7 zz4uCNOcetrZMHbnu8HY((yo&Z|Hg97vNA8S&S{o8MFF{|B64uTmj>Dv0}FAobRtR= zY~MLC9TC5Dao>3!W7#ybmjXKu6kqggRKW28Y$!HANIH40Y1m$rkpof_wS$k>x?oY()8TN9d;LU}RUU95WOpMDS~DC(h)nD*z>Szf>^QFbMvxgeo5>UFE8vNhOuTsAY+qx$5={7|M)s{~ z`15TrcJ?3HjuP_^WGBmvn1byuZ7&%?A>8-)a2Sj1bH`j`?L3S>R5aP`k*pg9*ark; z6WbyJUl>8bi_>apze#!5b;m$|GFqrQ5phD>$xK$UFOvCd0tL->yF+seNITf0>4BNH z4X1Emx-r;eX}g%=luUwhQ>F(YXR8%gU7M?}E*D?yBEGddFQ$uKmM+a3F)k`s^|Oj( z^$nBQOh~PlKx7H>xvZ!Y4_gw#tI0YYEA9T*PzL%>+CbmUA8tG537r#~Cgx7dMx)H_ zmfhxN%U*gG`-$b`Kgr$3!gyR7tijQ*7{^Z!Qr(qk@@tZYlm zB!~lO)X}$>^1mjuw*8%19VEnG#D?Wnd((Ex%f@QY4-W~llMT@%(d9*;Ze%>#>kiYi$T=#~o!F2@xr2e-=MQG|F2PzcI8yc2SG2w)kviEIz-6LFbL?gJ07hce z;T(9!bqp484dUM?bHl3cPw^+1F1XP_L^iaFq{ z`Bd=5Sk@%@p;Hw7nRJhoh@&1!=)P1RxOiUd;Kh&Jo~!oMMGn#){f0khjJPCkx+Y~^ z-R`_nBy!Ex#BbJfCTnsIOZX+Y9+>|KLvNowC*+c_@7|h zYh4;dbFfTU`#Fk8E{amtT-GVMVkaYcy#KTNd9y`0n=EBfO0L=Rj`BHp1WbM2((7NZ<@tV}|6Qe8@qc$bkpFkX|6Sqh z{L)zPr6dCXqpb9$=aYZ& zv?Q8cA-aDwU5>PvttyKWm=^L%x{cPo+A6Msnv@`Gt(XG!>ARFhoK;rUqy$lYaSs%-F01XkddIub z1|(Qx!kUtwe>fCk=RyBsG?Groxw+XuJV2E?*^4CHKFgU5y8FV%lg_L|twCmeg#P!4 zX&pb;OIupJU9tZBYZ6b?iPr1ODtTl(Gm#*+ZIyXV9n%l1? zA>wRHRg{uzG$KyA?2VSiD61kTwW@2$%iB|PIa5SllF-8r8-O$03ju>4+4>Uh{yVN` z@t4({*;OWm*C;2)vQn=0YqtlzXuNIc8W!o#W4YS%d2S>W)c=g{o+jIUNeTq7NfBD3 zT5*Z4)9gG;nXcI-v75RS>Dp!Io+pf`$&aLOLe5T$=N-H+%8TpbaY8iF$?Blwm@hZI zoI1^?#;$wGFUpJS;(5Yqc57tOzc$;U`KO1LgfBhnK1;t9j_jpU$l&uF`H|#oG8IbF zPo4#_xYq1uHhK}tL9Mt3zIRXT5{jX&ZM>*l8rDGMnta)nTy~{Ni8y<$xCYA#WTz>I zy0(d2l1tC(>%tNls30lC$iDO|X5(9~kk_zjOzdOOb07*SYj;KDob9ZwrPV9Gk0;cc z(?n~E5euLB+i{4rCvAHXZ z`rDgh#!)l~5l0hE^C;O1-o)A8>m@tjv*H?FZ$R&&drV3M%|^jeJ*LHAivrz0@!CXTJY>&Qe=z!orH6kEjmhn##bNzJchdS zEg(UZS}`gQ*}zEj_4BXolzZRy|8`V#L+)^=0gq#h{l~DQ*F?$Ct9DA9l`y)9wVv;{ z?ezQK-{y6V{Yy7?24&WO9w|-IjUbrsxn}3VafeS`X^0q!#UR)PX6DY7CYSbf| z9uzGtazy4X_2@@tNQ|)(Su}NO;8{32JP&e^iF4Z1Uf^TWSMSD%>U=oH*@uD6dJ!=n zlht-?YWoX;9m~KJ}t7Fp_p8IbWQRR+51af zS1Up};6-JfAxdkow&(4*@NGkR5Q|seKct;K<&d00t_ep!XKiQ|_rp3}hl}d4BWTT#S3ZZB$7*`sjJtPl8 zJoIetFr(-3^RHK^hy;0mc4PiVMx3}=uLZx&>PC}6+X+w^pK`73cr+U3%%{Nl% z7Rq%sUUaRCQVuk0>UZ%snz&^V&8-@Qh@&m76ig<;qlrN9y2t%XdSBIliT_)BoKUdV z_JB1&UJ{Ki#lK2CXWt?b_!8=uP?t!iS0GhHT@$-`PFY;rKReQ06kZ`b&?;F0_ z>WydeJn!+P|8aZ9FLHdw0hLWx(% z@wb-!hSm{6MdXzEkzamz25dM6tTmulksXSWf7MEM%&xi4$s|>|0K~fPNg!EViQX8j zNx>qNgIXa6oRr+o`{rzZK6v8Kcdnt}_h$LttY1R`zgwL-0Huy$}(kyO{kg8uyDUar?_B@Apo8}4i(7+89faiLjKFIBiJ z4OWk-R$s|pw9sus=A#H^wG}Oqz^NqUs915zL4g^u$P!dr#uHuxO-eW994spwvHx(k z2Vk!L2+aMWytpo&C%E-bzc4No(0j(qpR+Bxk?1;sv)V!CL~K?FH6@gdvtHUO;u0K- z`ySobBU7Rr9E+wU4obq&ieM4MYeqS_bmX(su77L9tFIk&P1aQojVei&URBEKXTL}G zGQl;>yRml%eu-?CDgBatjf&8hwAQc9+w=Rn{4M+1DN0{b{gSQIFG<#Ql_QF^KB?Bp zJYb%vS0CiCakLCSNYIjbOMO_^`GTZE+0@OR0ZIXx*`ungg;F9(5IK9TxCXX6PjpRq z(X}peNpwv#DG_I1kIOEFnCO~_T#`$V{wC|rmY&Ccx4Uu=$FEDvOu_v(6V0uPoPDnU zBIL;wxCl)ViBs|dfnSH}5nK-xiEi(qPl2WmM%1WBG<$)6N@BwiIP}?Th@&4#Lvz9+ z6l^0DMGi^iC%*hAAZPM5Q_uWlxhf?~MGc$^;c$eE!d$x(3d$}rDNKp9QJOwBJpCQJ z{gUCnh1c63LGTT$1M$SM03-4M8e^?EsSvxIQw))Ud?09{WOnQpv`W#uq`m{T@s3pC zuJ8tr9$-|+!?X|XzZ;1+ZiE#@Q_r>+fY8$~KgNyh*#xWj0rqQ-qwoG)+A$W?#?RK+ z%Xg?dz~H@Yu&b_4Lw!Egt&!)Xf}IMmHX4kt$;1P8QgrR-nDf6nY&(hCQ3R*1OvQif zTxDvlIPvEn&gvW{`(2QWcZD_2V>G(&^nC8H2D~IYyW1t>64&!rd2p-bAcmthK8kgS zfdCkg0k?o{;2-Y}#2uB;$=1_G8yPB!@mcS1M=FIvP<%oAA#;6xG~0cxuPU-m5nYoQ zB+UC?*;n4B*g5kiRHeaff`w0{ibnpzAq&zgemtxg_}sIpNK_#Qi+pMSn}i!V`}@dT z<)XHb1){VDxg~p)E!X@kaL?yJ&fb?i3TFTDkK{_Ud`wPtc(Y=d= z)_~sDADIT;mZB1Md-ZK0WTT&d3@S9>Oggal+0vr3O+rc})LeWM_%2)>P@w9kw&+P&1PtUlNVZQABdH=+(<1#}UKa5>|9d3&&M|k1cY- zEv(hH8w`~5R~=(A@Rv_{AUcaPwW)8cqx|`~LPK_V9`$@~!Cc|_Y#`pL9mc)kc^_X! zyWY=}WkzEl9#H(XEpGOiF(DD9=&8y~qB&8@Mw~r$>yd=+#3^_z-L8IxQDQX8@5uLv z0@qMUXj0A>hNx0f`wd~ujuho*D{}fJ`x&&FmIqy!@>$Qt(6pTx+v6jxW*dFG7w512mFE73f9e-aB`_6=M)ps8AbWH%S! zwn4T<*|m{s^QyuV>~hHw#fWO+BpWe_qPZLUR-qT2*>Lcia%dJ|Cq!9^`K;os7pY@+4$RNn9tL!)I<-h|T`xP=uUo#lUm!zt~AM#Of4NZ}-m-iFzDGmdH+@t0-B} z7c=zT^mmg*9+l%ojBF^5hmGtoYu5Jjk1^cr?!fJseCXuQ;B7zuaNe) z?=^824wi&486^{ep#@6WP3$$LL#vH&e?So$y1`2pVK*&c{PQnWieldg<&odM<3i87?N?F%Wg^>B^s+mPXD@P? z#D^N&>c$+!yZRsbjL)Ms$?TKDNCt)2@bGZGRQ*nCdZ_(t(gQh2?Ah-SO0hD3px$KA z|2kvhc=UaB8Xf;Ez&45l%}iS73Vb`^H3mF~H+28kpZ@@VEYR^!?IpyW>&~}HmNLFN z^tVoQRxEse!8FSm-21lQ$o3DW?NKRM`_uofR1WK_r9={%9CN#rQp7|0la0of_I?+| zQKB7yIiRen!d--EllOtSg> z^Dld@BSe02J&AwkPxM%@!+hTTv(Ue6%*G(HQ>|!$Dos3BH9KUYFZ{a0w&5!>@i46R zJ}Ou3O!Gy0Jt$=y((6g8L_Fk4Wc2ACe2lX6!Jf=KO~ek>*pF4qLF0t}M)9ZRxFb76 zR7VP}0Bd>-spbAHBet?7 zIv0GQjXdD6@lPm9Z-7dc+=&4mVEX89rR!q9YnoS}HzdhcYj#ei(b@xC>)az7h#p7a z*`W@0T=pp)*_NWc(mRD}+L!P2CgfmtE}Pj!=z%5+MQ2gOA~b~qh9=b`GA*@5-SU+| zegy+>{nsw{!9V{hHqzPs@AGOyzyIL#AO7^&{!vfCb4&c$_Dun@cXkFH#w4Hdoco8* ze|!DIAm=QbaAhuCP*WIE*^$Aq>Y)erDa^MX@9qJfxj3gTc zguuj85{rVHQb0xyCb&HbVvx#t6&+l`00$^I0C%(j#z;1n0bJAMgeTJ?Z>aV-f^R%t<8HY7LeeMIf3+ z)5(lHrO_?xosz~y1UZTbBvp#4K?tIVM$OXq@Tbp)&ds0O`y5+SVkb3He1J1edc$k$ z1^H|%@a-J&v)zElKqs`?w@3<|Xbi|=3EOD3S<-Xdkg-iV`(I5}{y^ho+3%f3ea(KY zJ8C5xiH#YOaBhh|CebWr#?QL^4YX=^ZMQX`STxMAb0xE zA3q!9&z9t~ttbSY_6PJ)tjsN-?+pBNS zmG5wFsG^My8%zR@ETO{WoC^|ULqj%r!z7j<>PX&AHa=idz(TLb_`9J;LQ^=Pz?5eb zrQqslH&DR@g5N1ti%_syAsJ>%>x#zSMZi1fIY^$(v#NpvupuG~Oi@Sg*lD7b72Xgq zauEtvYpikPSP-RYR3sWh5D_;bHrxmJ2oAu84udKXqoZK05Cwy1sIa4_J=*rBRAI6g ze*S?@g-+_uFa{fm(JDn~P*p2i&F6_uvUcqw!5EPT_-K<#>m#F$8<5}z>`o}gtu_*Y zplbXC;>Ko56#~cg!wWM!(usR*MUdUchnl+eC-K~m=hLiBxB;*WGX+tK3@-18+F79j zPxK@1zZW~(-Jh#nlVZS&E@hE5&`Ur$(4+)ec~M>J>kdPmCqY06IZX`fs1eQ z&M=jTr|gcqr8_xz6b{es(47T>i3TGP0Po$1(S0UvSkg99g-T~7WEV>gcM1#t*-RcT^8yzp^#G2tUMtP^ZuvqE$B zs1YMO-23uf3I*~r4!h?c0y3P9Q-2y`3*dpo`+501g;W()X z8P*1%}RcNF0n%WyfQDCj3OgP^FAUrDnf?y(y%=^7h+ePB}QcD8H)rC?U4%clz`2+ zf7Mcw2V}+A+mh&z0`hJo$k`R5Ka!~l-WvxFqL1B$>NA}7((Y=X5t|c*94vKpWrd z+Wy#I*R|spihqwE|8>GI{g=vro1rN$?H7gG*RWRnn)BCmjSo4tqX_EPnCNSJx?Nu@ z`rj&Fb5Z0JS0Zgo)b>*1ZOfVye9QCU=Yr_hDVL*p!Lz-z(F6WVT!eCkN@-g<)|?Z3 z%k#13g6P*N*JC~I_Mj+7nlk^kG~}=O*I2$~3SZM@f$*UKIewJ_^gr@OnoIsX?={nJ zt%}HBQ~9rjb(uyRrMum0g}>(OLVMe&k?2la-g&P5_fjsrq3XUXs_x(O-TI$UAI(0p zHzbPaEv>eW{j1Wr6(I|V6@bm!ZFk=HjmYiz-D0v_^E1${r%^PS7lrDtve|yaBII_z zVdT;_yb;8xzib5bn&m!$*CPcAbZfdK+SaBQaZWU-BC=%HXmmqPE<{TpusSRqnmdA) z-BD=9Z@>H$oe0z6=+26pz5O?3l6CI?{6h)$J34oA`T3W6DN!Mw(v0`}3+YZ#A25Xi z`cc2>^#YyZhjyIjRJ?ya#6E73c!tL<@u$aCoD`9#cu#-Ajy}@P4V>FrZNxrm_if*` z6`^k2w>U-_>ASz{!jX7N=HI;s6&*Sj7J)wM7?1Nc*pY+TlRQmz-(XTib`D4|(RTH2 zbVHq@i0bUux!3Q8KL2mfw|owGJ|KGA69O|xWg7AVX5c9bk$dI-r_Ywo%^5rzjhE+PNRx8yIXPM(+F~8!hl!>swbDu>Wo!AfN5| zmeN|$nLB-o1YZ1x;C)M80{S_j>UA%RdZrzi;}N{tejD9_W89liDL5_(d#FG34SWw2k)0!oKoAY0j_m<~k-O0S zg{YJ52E|krIcO?o<|z7+vNPB?fsHB%MTRIkWxv_E9vq`L@&*rd1~niCL^hc~PR~|A z-2@DqXcL`tpF61{-DdLI_uH;!BH*YI=U&wT?>7*)#*W&yFyW1_d$U>X+_&+aCf5qi zB7rqAuv;(G&!$xv1D_)!DGYiTj1r9j#^||?f=+5p+Q+uF{Up1aC~b82tH(GO_H#pw z+(B?s5i+b5CZZubcvWPg1|&lrKwv;@G<;J~6m)QE^3 z{fO*@I`^4fGzd@jS46nS#(=3yabh}j4VY#ehje^EfqjD@>S|BZ9z{@m)dIWF`RAw| zab6aM4EDNr8rRn@)&6*9){o9Da6e9C4eU+r`P>6OV94GI)S3;0abOXMrqOgV*?MLe zO=C?YS*(@BSvVR~GKsB}1UXx7C9B4tB>x=$q`yP()T>sqZ%UkO6*G9W(q5_*Vs(~D zcHQAiM7J0=Rjm6S61B3ON%OkS2G3UC2!WBOWR}>blPTbw@p^&iE<^V_&QtY*2TY2{ zlZ%i`%+;~YRSGg=l0uwZH8v|EXO&qOl8ush(VxzAp(wRtFuM&f)ud4}*NRa&immCc z*)>Wo`AR}#+?$YJMB3i?@~f1)!lDrC6nQE6_2mt8N0h0xw1I?dL`LDp{@p)t(u5sC zhXjsPynSysj4TS-AXe2`2m*&C6qB&PG)?R)ANEBxX7)0lYf^-+A?kceFEhglVfTDD zuq8_)8!f7}&wTZY6nY~&j&Oss2|pWxzU6bc{dGXEb?z781NxTF0htf&WH(PyhLXzt zg#Aw3K@xTDk0m=Obl4ho7#%VS=r{DWzlyliQG}djj5^EOAEkG*^t}Butlk{@M7^#C zqpkl2h&)Bm+G!id&_B7O2nDMO!8ovlO2WvtPgC1#2(;_ZzijM5fic)vfbsQqYp*AD zZhhE?`jxme?t}Q-^Trj3)1ZAgzC074jwf z7OgY=RaR?y$z*l4^{MU-FsZ_<-=S8r7ii~9LhyQlEL{a(_qHmyS0HUgu*xD zM2w3`5)Gn;=joqoZJ?#iy*{D7vF`4I$bofoJZ_oGD@+2O{D#O=kR6F8?~~Y@cZV5; zourE+T^f7HA21PTT#&d~&0MD*c1+_w83~Z0@EYNt&+upP#i$}qeLMW3Z zGw?K>6`cfhYaCTuHpp7{LhFR&PjCr`n-1~~PuOqBGibCywngW8{U~E>SSw7{$!t`x z0&#G1it#S*+6MZ!nRNGa)!uku+#c3q15}t4(ulr$_SuE-rOn0TCX*C*vkLug+eG)s z5QX?Q@3eR$oR<-|`vZt8z7HMA6NquJfCGpkYErr(=Rg#4Fnw5G#6#ae_gl**3c5^;(s;uB(mL#m}=4~qODbY zKyu1f>r&>SZQJ?-cuj#QTF1@`FG>Ptt?qKpMqZ;ekwyK%`Wo8x;xz`cksWYiF|x<( zZo0cLctH>Y*9uY4#hQd_g~;{2SJa_7z@*wp6_GumTVK|c znK+qftSTjeY!x^K70$hB3R~#W-8p=p)*4+C5y+V=sJSol2kzOK#YeefzSzY0hgx#gn(q`^A`XLgC>=U&Q_Vt+$7>=Z3Erg25 zNzyOaITed4Op3_P5k(+~nl##or@bC_ALOc#tu|ewc7OQo)|%4N`#Q>o?5`BQR+Ror zOq>gPltRA9UJyE-7ffUcqK;&#*r+3U`{+P#(8=xLh5ByHz)|Ni?BJ2eL=8v-af}28 zuNR0!Q)h*VcIu)NEG~J5BvIt)?cvsF1D#9|7&(c=8pT?zkPM?~tcfJ^nwA0mrDewA zq@xx47X2|f+H0bQ`B+ja-Y&C8)Kj(5zd~jNzdqXOhDPOgaq5#zZC_@hWd17w=d@ZK z*+xW1C&7S4$oM?vF55=l<)07i{+!H{!gNuJT!^FE3G^h)R3jpGj7Jk_PE$vxxD!Sj z9X4X*DYEVD)-(s&9uN{=n(gULp53ROnri8G~J$m1UQuqGjcxS$^Pqhcn= z!TLg7GIP{;p8f88^>D2ANhWT#jOgKjA|B5_+gbc%?am~$N zhw3V;ic$(FO;0;#hndAAjlF6RGFzeaJ+{83TEPhiiCPw5+t8Vv)Cg+@XN?FvMS+AU z1#id(xk?y4&)p+Klt(t?sC%%TBpz%kiNs3oQ)3F}3$c;Hq=+T9U}O=1;3Smf4Lbc1 zrNkX7iQT8sQp=Ub@y~*VUJfJ=q(0aW&7^t<)I1uu|YXvIr#A zqzcdWm2kvve$i4Se$BIqsJw{by1rX6AVe3u-B$j-&o(R zR(ogP_goadR-~tPgnnQZY`iNCv?bV@1pOezG7Wc4?c8((;64`WKz9R1G;&}>HQWaY zA{!MU!&+e?I;yAJ69Q8}kJ-Va@kt-_^AAfzz)=H|p$;H0sOlJYN9-^obrhNCsn{79 zGDVB_U7XbFKKfKeg90#V+i-|Xn6v@#6cRLx^ad6PrpDwjLxndOVx@_DK<^-8!(M+t zAF$^IKt^{FL^j$sG-Mjo#|mTMF^Y`DDtlv{*T)T5g#uE{D=dwXMIf3EBdpfePm_JA zL~T807z5pL5^`XjOhUv#)n;2LG7?*X#(*2L;|QO0Yiw8n9*|^~3fymd5%RjWNg=e= zJ$?Gp$u(vC8l0YJ0OgyPfv6J)I@71vt*=OnVvBP>Ksnx3XB3NgUR8nWfP*4gu=X0U3^j^sB?M*qbNUV6<@suMV2ey?r z&;bMn$VR?yzgbzmkm>RBue-mGJ7t%EleyafHWso74aACjQ);yiZTAP(4Te3T1`1e& zrtrZ1enZ2uPXfdD&J#r-i7j*fLQI&9l1b8^e$k%M0S(kvbEme^<&?V4hOVO8q?NVC65esk&SA9WJ!Ohc&TG7=mE_X%bVAQ$aM`{qYwl`EDvBw}I zBf8m5q^U$zL^gSq-FR=W7BI#l5KW_L=i|J;v2!^loHYcB$Qo`Jk9vOgWRlT*-rBfC z@{`to4ei9x;b9}5mG`;ne@5(B1d$zU#mI%cl&4e;;yr$0y2J$}&QT+>P{sfSbl?L9 z6sVONyD@`KQEww}X;Lr>4Ym*R=%$nWFy5%`#5Vf=ioe_K^B-WNbNn-ofyXF)Y-0c$ zfd`@P4@+yEgho1heH82SC}g5Wx@(!Q6x)FMc8DMvykU|KBpWBqqU?igXAgYaIM(0V zoBnvx>xH%MMaWI}j*1m01$+aXqAwr&FQ9G}CZeNyYMnC1bB}+(*PlNlo}0d{_KB_M z_Y&FYff|h3MvUCal25HijHn%sKB^M&pks{ZC;vFxdSrHY z#719p&Ohh&k%Y=;tLP;MH5l#3?dYR@XMUH14EpJFkt8}N^pj%trdjEG?R*%Fav%Qm z*_;xM&@)l!Xt4J!+c%sC zQ_2QI?dzqx?o1Bhb?$Z<8DQWUc|^z1w|?gkQIUY1781slL*?faZ;MG0w1jNZr4PVevYT4U{52Vq zN(OkpRZb=f!L=p{C3d8VTRp11e78n=i3qNd=o-rE*A5N)J5M7`cv5ZBriz3v(I7er zj%}R!zY7W8g(B}`y~eU8`GVLnJ@I>BO=1`9&vPOe6Wa_9GYj;rh3pra5J@)T#bduS z_UW_sdFxM=jvsf0`&lj9R`Rk-H ze!$V;+y?t7eZ)Qqob#W3q~7w^&-e?DO^Hv$Z>p2%h8*lp(G;fiZ}jZ%OtmcZM%I83 zxheV{JRR{UtenyA7hR78Fk%KznQjTf~0jd)3vE`j%GJ%};d+*3mqfyh}>8$RiV zJH?LNaMZ0T#^gnZU4JQ)GpK!pF^zdc+4@O9*8`MBY5&F%kICjIiDE$8`au2!8N351 zZCj0+r0-i&#K{&Fh2*Q^#zY(NyL7ws_TRVw_U!QqX0rfPMU}9-o5_`c%PD{lw$e zX)K6494A=EFp=5=I>&-S-FNVLB(_5BWBGN?2lX9^9{>KmpV;J%N&sv|V3g8`A`nEo zyrA4V^j+Vfk9ogoD0wNE+)msru(x*Q?CGAr41SF`W!Xe&@ns2(M#M?i zZpy02Npsa+Bus%f<;*XI$C6cTyV^$>lg&Kl7l0GXWbMRb;x>WXp<2u*bF@A z8=YPeBXeL;3Z|3$-IUmF-2MTNXSj{AjG6nSW4eREsNg|1lPCRI!pvT?4=Sr_QYr

    ;R=eR!pj?$}ZCC?!Q;%EFF`G zA5RU(US|{a(XO?08%z)b`@EVccS!Cxfd@l37#r3Ha)&x5QxP!IPOSht_;*!tAE1u~ zhVC#D#*v6Y!{dZ8)job8YbX0-MdN+PDNKV^;Q^63*q%5_Zlh?7sKMG4n)CvX?K5VR z%WU?u7#9IonWQ7#KpZ^V05+j1rQno(Cl2O0;lDZY=X$qN`a`H zL{d#I3Y-Fsb;|WU2{BF!gjfnjwL7ReCrKsIMJcKVp&N44O(-fSfoLLGTa)M-s!bz@ zicC_74D6OgiJ~>DC9@=nB=eBYVSo$PN z4#bX5{e;S7Al=aBLpt%#TT~Cb!-k*~Oo1=x$s;=@LC*TZLzLcSr8Q+>U8);A6_MYE zn=E;4rTL?c=a)YJgsmKD%~8SRJ3QKTEzY(r3b$4YTti+XZ8=%4)n}zGFC)6NXf`0N zIU!V}%U1nkUFzGAQ~Fi@?^d!k{agQ8o^<#Rw@WUGLh`AVChZ}8CFUr4ib5&2+hC-S z1J0^hy_-dlM1oR44y>JtKLQa??!QWO)uxj$AWx>qmF+7~*G%4Kdd&#lWTjw8MZoP_ zOIZ|?YN~RSnuKo1Ik+$FwyPLm4j8hFtbs1U)qzv82_;_-g0tn~QWb&hnq8CSqDaL-x+Mmlwr3;8pxPosluPG6 zFH|8OP;k=*P^@Or_e85BugN9Q9`LQ-gD@%wQHpXtxpfz!7j5kjp;91*j2u-~6{Qqt zTGL)t^hgnvN?8-mD(fani(35{6MQJW&}36P^b`nQlTB!eu00~KM!E#Fc4!Lx)OO9} zl4#nps>usjX~=KDTR?&+#L-HL#at7Cq-y#>`ej&IiIEk`NKkapFZe*mKPOQsA@_aK zq}{-h^Cma86Iu%jd{&9O_C*r2DtB`}r0k2~h!J z3?czB6|fWxnrkAERFi5Df+%@Se}z9}3Q=aMSZ>KY1mETt+$LEg?MQc;V)th=4fdE! z4s+W{eGwO>z@eZZwG?pw5=ZOW0SDM@Pc*@lq}6_(@`@k9+-2<}j0w2Io%T8jCK4kD z^XC|MhNPmYOpvS;jIN>jh#dD>N~mza7)y}Yly;#3D_eyMq7gYfAfQhE9*VcO(NypN z7NKlQQ8WgMwvYw1RZGUZ`jLYPYBaLjbM*K%U_sMHlU|@Mj2NU%Zcf&IzzsT}i2aP1 z*}cnDqdtPrB;?2vo3h!rx_Tg~tP?G+=cF_y;tp0HpL=OM(nfZ66;)OhB@gN(p4hqd zz8CZngz6;G5E~b|^?QQbV^(Mqva`L^lw9ldS?XUnt=}ghA=7|}8r$dBA&pSMK6S^< zDl~pv`cozwR+@AJ2syK@+pea~a%-gS6)xf#|xK4>Jq%*u-9=z+%Ca}uqL!7<#PA= zy8k@wg{Y~^x$|H|9IQ=#0SiRcQ%L=Vy1%fLpSfSrKcD6L&o@-ypYhkvu>TCFGMppI zNB2LVk3aJK`3L8~00-59B&Y+&jC*hEU-EGFeVoHN($BE{49|1GbFAkskGli0 zV?V=k>-_p2e*X>1_jJHHY<;9*L_DAXF$R$=8pJoAzwrGBP)h>@3IG5A002UBay$S4 z0000000000000L7003rkWo~0=FHlPZ1QY-O00;o6yl_0M#}?h=YXAUjf&u^$0001H za%FB~XfJPdbZ~WaE_8Tw#NADE<3td~@jF#~$o8l$HH>9_GN-(gU*NF^3KG4_>2i;cD;@tbn@FpHJ$Gbp@>SKC)d70`)I`>YpC14FknX=V>)SR;7+T1qmU9TQo)7t4 z+Dc`PGJawScJ6fQNIg>+-Ve(8jhcQ_@hof9EJ*P>BJ$<-<1v=E0$K0f&7aNy5x9fi zTX?M+I1=9r{TDcXA{1kl>ZJIhX36GLL78nqDB3FDlXP1bzak{%CfEwYmKPU2Yx zlJ&LYeT2fwg7E>n`hbI0I&uVau7Q!*v?VN!=jwNfSUos+lO_25BC+C~E({E}f#%z@$=78M#Fqphtp6?zWMm~3uuV1!=y9nm|St9G4ACi#G zMEZ!ijFl1}M8zVPgY{4!<8&Grdaw(2 znd+na9_3?=en|<3>?gRqp$N_D#EV*HU>H{V6xwyMuVobjX^7;e%Vi5FA z4j$LrgC_AzY^G3L?(gUnqm2I$S&+V1|(N8Bv@%|1%+7bID|MTADnK&l+v_&wA?sl<%X%0%Rt(@Rfka>qsP*=5vbI^mC$oNj>Kr$sp6q--vGa?b|y^#Odd;`JYPNzU`)qtG6k?+}^L%yaG>(wi+oqpBpNbE_1 ztS$2$wRueQrL=2?;VT1KKk)p0;;!XEs8u;W9ECoM>8FEWJqc!mVrBlB-ctd=Xn|@_ zB=%6S64+gBz*yap3Xojq+O)xcOUe#{D=24#QajkphXEVfJWjuc;nGj#x~VIn)pR;g z4(R~#-i3XNbK19^w1Z;MMV9&c(M++@e)UH>97kleeAgmosf#wjHrMsP0HjA=OVKFy zZdOH|ZOUq9O+n!C)?q}e?}2kQ;!`26HG(gx%T2{1n?l>^bQ31zZQ_l$qs~Yqw`B?z zMX1V9VprpUtV^E??n?HWPD=&C@KKTV?Wb`6St9F0Pn}KzUYK>|^y{aIJm;sIcy(n! zgOHoz9{&xHwbj2!VvE!}+&yMqkdYy_Xi%u3Hs~wHFr7x~k{>9iP0KOBNIeMlbmo87Rho5IGayD$q-RtcsdA z?&7^*brXq)s7r6~#h|X-ar)B(yJr86>h=uhx~(9qSH6jUu1*Sc$Munr)oa|zHpcf% zB%bB)j?%58$iGiNc6jT3pm6n{wyH&y~S|1pxG9XtX zuvW*E4+BcgG};z%v?3|oMIj8IC9=->F`vrkD4mJa^ZUV_T$kR92>mwRhi}q7Dzd)! zl*Dt%e;BjnI&v%h97SfKpKEPaldyB;0g$!T8))e)1cJ7pISw0XE$zxzMb>vCmBTVh zee8gEr434dQ|j527o&(BL%Bf*p+Pq#1vGA zAH0=n*y#WQM+?DReJU8M^7bJ2n=6#qJfmje9(K^x&e@lA`a>-h<+cK`hT33UQDo(S ztQN_41lbhBWi%Yzm+&i5)TgP##%iee}sfv2rAs|Iwx&;N^9n@pWE+wSr&jj)^O_U+SOn z-RmDvXZmTEq_a~hVX%0KiE9L#FqCZZecjFm%2^aEWP_IMQ>paOuMlw+qXpZR<)T)H zI%L!HeWHCD6yMc9tLgW|jJiq6k1UFtzlQHps6-p+h&?!bRPtD{^DRp22#HsA@KmU! zEgez(9DzHJ>qT`Fo2f{54$9lKDOm;VS>rB+p+%X^=b&0_159REY`0vL6qjdGHw20$NJ!Bh*YHo(&l6<{*6~wcs>nmwI5Q^AA ziF@c4X-7!=-83@pArNwx<~w@| z>qMS@RkMd^E?%E>mh9?xFcMoSHtCr9*gi7>`@sw)AQTV3KAp0^o%ARx8Km>D)fAJe zX9$MK+iAI!7orNhm`YqNeKbUjqrJ|tT%h^@ z%9UO8r8EN1sRKThTZc_xv}NCY14yyR={AA7lsj8Lq+Z}K)RK|7A7HGV{ohEj47J&_kgg;3?9M3NsxsD8t$R!b z!d3WJ_6vy2;#}1T;d{(#wFl{HOh1hc*u|@Q5a7@lwqlVv?@2kgbUFvKnG?H*0mpSs zC)-~a2h90%D6)>?JN=}xt>xxQ3XA1#4e|1v9Mx-z&3

    ;gtk>SuFbnB({0EC~i)? z4y`-=wuIEb^HWScSH~TMrgSY{-0kvZ-~giA@}HescWwZu@sjH4i$&I9v){i(Vn(^@-WLQ9OOIOMPjncRYf0 zbE4$0%G7gY>KIo&!4vy4Jq@Rs#$k6ytS(bT|8v zKzZa@iLWweXwN9~fBMl6OQt{Lzfa;8MQW6BvAo>0IOM1Drs@mvZGB5NpD~*B#+Lfn z@#{{1hM^w19(BI4-}^#L*$dT;70SLjagAuRT2$gqrMlc<{Qh;Vdx+_WO$}t^-AlFo zo#rM5oQ{sbUO%)zD6>I8SJws@52=WC#Qapehj&OU zA2V@NSEh*T=-?R-8Lvjs~xZ`I|#*{5vUP#E03!M+$5r?i2gn~PdFy5eZ4FPs$$o)nQ=F|~Lq9*J*xuz_84 zgCj8gyu3evFid}qcAyx6#8ZLzy5d!Ei{e)jI|A*jhEUi_cS7m7wuo86Fq^m)S%{7Q z@VpK33W{=F(@7}bKd7Jf#x5~P@+@Ko+m7~4hPWxr`B9Pe&8PH0Ik6=L&?1(RIC;#l z$&fR(QVOk(5WP^{h2k1Q#Z!BS0 zSH28Hhsg}kt+YX5^D;C#oXn@PBrg}Zlev<|+l#C>E=r26)Fn0*7&|XtjGT^Xc_lT3 z*h`iaj4t`}75EE?S5`@f!5Tx8jbS=<0?`{IF+ynvA-2-?y;8z}Bgi&8P$19z^@~M3 z<{#;bVq8m!S8;@h(t@q+!v-YesUtd4$Rp*C*Fkq z8(@)hJ+E(V-tSS&l#PQgLfJ+{oy+wll}#izpNb*A(7C(B=V0;-Nj>`i2jV$&Z3G3r zP8^{>wXz?}{K4xfo9?#5W9IE3$sp zOC|RD;AZu&rqcc@jy3QIaTW#hQ@NbxqN{K*7HOr;GW+ab=%e5s3&r*p(rEYb1=;*k zmq1`ltkwbgE)`i^%$=RsiYD z!53vMaeY`PhMbe9Qd6s49W1h7zrVpy>QaYl?)Ps|#DeQizq9{u$u5`TWngD?j5%AO zEZM`eNqY(ds`qHWHR1hK+-yYHCGonq7!-@#>=wN{{nD3hEf>|LHM};p4{!uA)3}=@ z55~BS2IXxqbgfnhbg9)ES|2%iSXvoCV5hKHM?B zPsvKHUuXJbw8YMsP8}g{6FbM=a+~y2)~YcAcmHK1_Vh&#|6U;LC%u&amFk@#&Z*}B zlAHa0NO&X&Vr$*1$d{J;ATOoxhQ%3JSCmNF<k`LXEyzv; z?m`&=en5f0m#EhGjMbfWYxxWy8C_QpLp;BFC~jW3T_Z^_t{aYXb=F4NZZvfqceJUe zPXg%UOZkM_z-Y`lHO|_S2Ctlk`z)q-wh1{G(b8vV7JY6w#BdXyWXhiuQ3pL`>F6Ff}z?*7= z64v^-fMl{zzJKdN;nQz&5eLyU-^3%3IQ433RIG0b960?dp$Jw3rxwXnQ^PMogFwxM z7-l@kNH1XiCy{}dn>1GbZk&F3(?=J;$2&+;kk6|v*m7ZPf&YW*C{X1?l>DOh{bz89 zAU^~3N+eMeTJ8(dV(T`5>5fqJGZHLBkZ*0UHgYENh4n(&NX=st@-@n+m!VLww~Eiy zjOfrYJIY9|^@RSAKcT`2DOQ^+FM{4db={g!E7Hi>5dJe4$>5L=LHAldn zTkiVeHkzV`Yi<+Ot3Cty!g`H?dBC6KCwxX>8C`+S#O`c?{t(8UKCK8!;PgknE$vei zs@7vdYWPB35$IJdXUPa%qlUN}Q8z$t0h<+oTKE8$Bj)XC`5v&)^`j*Z^8iV$IGN7r1d`Qp(C;U!Dns9Fs85h(1$afwIY7$-uQimDX9r1_ zz-(yKSMPKdn$<>sz8a;*>k}|9k@1X>Pi*#Q6mou-ayA_bdwpuPa>`z4-+vYGQyf2b_4i!n%<9;>^*30)a<|P z5ouzr=fw|${ENE`TJPk0%keVt{z%+fcX`8&`{_i2yg}p>XR%qQ^Wc$`=Ma3;HGpKc zX+IQdK%YRd40IjxGP1IaJBo_NVfvvx{^oixGDQ+inC7L~lX>c{a zo?rOg8UKl>jifSbgDD5T;P)mQkUz{YPJi}5ekC4JZHgZrqJVh_@_MFPaiKb$NXz0a z)LDdQ6`Mz%B=1zLMdm&DOuK9lpLkprXm*Gax7J1ywPoM|ZHKRo_=M^{N*!9I^h1v} zK;HAUqha>Dl!p?&>CpE}x9|U?;ZLW-#Eu>gkc74-f3@^B>oC79G9+i8n5Z%J$@Y62 zslF+a@iJ&Sf#kBJ78m_GP3IGMQ*G2O6G(0z((eu8v(QlfmY~)_vSA1g@n0un0y-2H zBep}njsxERoPM!kzZBr_5~o_9v@ClCd_@}4X8$hOVYc`#%A*BkXCX?+AhF{1CbZe# z6W4daJK|D|t!;2D?O~#8t8A)0HQ0T&KqLFZ78DA`7UXEZ;}FS+W`x|tVMMk1Qx9w= zcOMFx{dC4LFGy7BIh0`0 zNg>;a7n0MCuOe<1TUcx846)6y51g(AH!Z*%sG~9 z>sTE5X+S=YJ|TIj{l7Hs|91-HAUFH9-ZWH4oqo*)Is6Ny&Iz=v+(cEo3k}PyPu7NC z6KlO}6|9gi@>`TuQ9?Af3Xha6;G3c(ItU1TjU78mj})TjIp7`1jcWAtr@dAc#Tpax ztZ|ZF0(2Z^v7JNWTLsJ`Wrk@-z12s3l&^}Hvk`ijul7Y73$wrl!Sa)tW}|Pp8k*p z?5hKt$wzfE)VdPdJGO&jY^YojC(0XTk73?J(yn zE<~VwUX&LQNbcPRJNgtz>^WcS)63JZ{_ovJ9N^jFPN8ntEW6V$IAN{hB4c-#phpho z2g_}tYvfS~B%^zKtq(<>>YGBIqe8R438W=hMjUSeb6$cTEs$J4RJ1yxg7l(_J_P^w zp=6cR?EiLPKI1hCM4^!-sMTw#BV~p2G47H6L2{tVa{#(|w9ul;XV6_aIK8PW-kpJr zM+(ZQ{t!~+v+5Pe4Z&q7=4pDH-}^+c<#90*HM82V>mMPP!{I@~5omjK*&0{l8RE4< zpq5`D0+P|u*zgtoZ8`l$eXJQsf)SbA_gGW6mfso0mj$ygk>{m2&VNJUJs^t%@?iCW z!jZSkLSy9}IQ&VwJWa!vTsobj_nAm0OR{OFG%}q@K-qbJVxcoAVVvWeEpQQouc0eL zhUYr7Wz6q~e2K5b-*9`w;-2o@H?S8Q%=e^Ou2bEG`vD!Wh1L^gRy*$-zauh;BoZTb zuvDL@*-vr$t+ypmofSzxTe~_fCQ@5swVpuYxHbJQDGk)2hg|w3&xtn-Xyl`U-n?m9 zUWL3iuzNN@viZh^tYiGldUG^Bfyse~ynsJK@0yQ5L2d)e4hH!UTI&+>lG*_BMaQR~ znozm`7eYFgEb;2+@}>rVUaxw~@pexYH?Iuf|n?NTT#|3 zl+7wWBFwz`)nQb>rAAJ(AFwdtOuEdY$SJMvn!Tw?AYf9`F;74 zD=AM_I3g;;aW0doxVD+~)xU75E}GOx{pPe{6ePn;~iL+S=V zt&asgrPFCp?nQZkzmpkL`f>W#+Ws7{%ShIOb!cNFiDmB-YMq0jilbakYU8>J*=NQo zCK04EsG~&ol6xRKL|{4C0KPcmn+|x3tMO%|U5>7fP`lg_OJnoe021r{0b)TqZ&e#M z#r{Sz@L2p2A@Kg2rGI`;VygS}-JmMKG(ckvKUKcJ6A^Z3vk$aZAWJT~sYMyTd|8qc z19_wTbNu4ng((P`oWl?V(OizU*271wy^Vnk8y>4`jWH_ zQuiVV=3FRNhr>UBLO~w)^vjo}PQQ4eSu`(OXeGPHpxNV_qHRs&4`vG=4guX(tx>V& zguDgKOY{un)dl+CCU~eHq2vg9sa50)C0P0`z`Bv#?4N^jki4}ftWM337Dzt0iF~#| z51axw4|A&9iVp`!uI^KmA8d`vvXFGSRgjlk$}1fc<_ve1bcL^N(Pi@->Ju;rqV^F* zdr*$Ghe0t1XQ>_>(&Cp0Ht&~d(SGB9XM17Wrro>tzAX_@4xIxnW3`nwo;Q8p{qiL> zo5PW!&HgilMrIv;h?PvhNB=1rU(KVKvk5y(24zFxCMvUX!Uy~HqvJpyTpDQJf>Dw+ zfR}qXtG_{X2|f8($z%`SPR4pEbj23s^n2~klBKurbR$n5J?*w6Z6SUVmCyF#r*2A5*%5dct*p~6FiZySQ*TCxRw#I+@JRwh3MmX4C z`}E6UpDtV8<12Fd`3NKrp9{(+tRA}yzb(VeFqy?~RvPtovtUR6aoAHt+@bnxhrjIC zY70-F{GDFEOUrVzXuIf}z6Lxt)jH++=tgQkE95K5r(e9#TMO9_n!0O+k=pE)gKrw( z-H2-7M9qGsy6oSBc(C+FY9FOpPk%Q1IkYyZwKoyqE_wvaD~hl~C3*yMV#n7@af|cs zEP}ot@44ZTF;<|5W7jO`ky*6X5rR2~kHug5A-ySxi=T}4R(qtx=Kv&UzZAfryi|>h zFH_jCPceb#_va+M!y#^8G)IF-PYT#6>13becj!j>iTn^9*lr%%NDlJWn&PeH0_$ZdvVtuK2hv(3eC_RK{Y?sk^?QwXDFA{>5dl2O+l( zvgFkFpTX&uSqnAKRU_Q&O^WmIqBSbsetlAxy4M6quIxji#z8F`kSsY->%hA26S<3u zp=jjG7Y=bdfjtbiPcmvagh&1;-=uzL1+^4QhT~@vpR8@Ywf0B@2>L5QtyWUBE(0W? z4XM$;HU6OCb%6?Z3YdM1`*nfd6xe(ERR(ZskR07CIL+yo4tpR!13Ik2OYXIw6`TD- zEgH$w*3|61_7*H=z>XdQ+&;12We2nO2)jgG@uTS8+Eq%$QbJDf2V9qNlf3`p}+u{_#u|P61 z=g{dl`rCyPpbLpF{5FLZ<7hN~9YQdtCS;#DuL*LI@Mx?dlE7cYo!fFE$q_)m zwWv;-^i*dxSy`-@uW|Ur);hv|@r%Qc{FtfCYN)<|&`4{?igQj@UxW}dtC0ZN)2l5R zXgj;Mxfvkerh8!8${G)R`5Rxg_;^zcwFGFZa+7Il1lmryHE}!L@-#Uj-!t7)?)j|p z!}w{AWVRQuy0v|QnFqU3PVVrL?AbHR3VPozov>$h=%iAT>{pUeBjn-_#8GvxsT6faK-XQpo#beg<=5&?5HwGlpz`m@Z6b>j(M}nja?2HH` zwW?|E%exBLlv`ill6M_PvI?$SMitIIL|Mc*9l_&dB&#gy;HcwTrXepoYMmTDQ~G$H^RsP{G=TiVf)Ji0LVnXI-(Lxf%J@*CaC?{n=N`tHarj2X!TC1y z&$YN+_}{vJBD@K%1QMOwqUvP3=_VG%wT^in*p*XZSC9Kzy)OHH=UcfrFVBRMyLP1q{vL0x2KhA&Ky%~w zI*q^|gokcRApptelY|#B%G{~yHKV*Ppsn@bhHdAnH1oFzJb$F}sB!sU24tRkX^Ci8 zZ5V^w%!OrU_Rj?LbT6F80e5qu%pam`G+i*ejpbGAAhP5 zIBEnVkRVw`WQ$xS#RKHGO=CdEnC?B*!l5;}D%sH9aU`wYsPC!`ahM)PI_9Zl5tn}r zC5{=Xm=!K}Y7dzgq3pnA4Mjb2P!c3{%>FPBIiOwp!3eI4hv^Fx|a4{ z2tp)XfFuk-(;l1OhF!PVIo*L@00?7Fi$$dVU=c|@7+r7vH3G>ec9zMRt?;h$Qw+ah z;7C=XW}`D#=IXObAsA*pxns5fl82!uy59B+LRQ%0b!#mR@Mj4y=QnCTTK?-;GpHnXDRs)!mOAF2m7XUK1h z!VtdXHIG@vJ5wLYV!(j63ahG$Bvu42*ZNi2qZb!zl6jR2fy?s+T(};W3f~IK26n!s zOKBcG26Mfmmxpot!#W`ItseviIa?$Z`I#<%)eVdERWQwZ54Ak}sxiH|XB8$Nr)w7H z*K8cWRY3B1vpwqImY6hir$XhqejYCG-Q}Ipmj)zV`aS3r@-c&G4v!c~>=3e(5s1Yx z12yTJ)o)MWhUu8qawi6dtUhzqc?skfyIC>>^&jgug3n@MIV0671 zNHoa5tgZ?&TS*lzP3?C1P#GuTea!t#r~tBo8z!Z$haSjlV2`9Rn1|=Qum=>d;@` z+|IFz5yCa>8{fU_?|{r|`ZWT{>pMp^ZUICUg5z#pmw)I?4U?@)QP_eb0ltrycNOr4 z?8kJo4f$>6fZmZ-+|>9TIytfrYuLF?jiee1$@zo2H!{$JkURO2?S~a@biYRU($NSs z4+T9Zrr6FLWwJ){k<=pwyTi*Pg3A_9=(0al0WU)(2P{4p{9FK}RU}ic*X(@)3~O9| zr%eKNj)!#sFV=W@_&Z(RU5I_#wiQTL?*-U}Y0qCu;3u|SV`|@FGM%a-+QJ?6#M6eD z-_+btAs8kf;xJ4dmK)Q3Yp8<3(JjGlw&_uyJzV}3aB16R0O46dWV@lS#$zrkyi*Pi z?YtZbhgjB>UZDV_tRuS&MFnCr9^)HBpM$?M-#cojP_P7W;q})Y;k61p8YZb3j#saV&AV zA~^q9q6_mNuNsx9kH3|`lwKE*Y_3Nt5qC;tm3}Q@byj7u-SQQ&Ty_vZN_38^Przp_ z459e)9zbRRawzIEkmGKV!AG*_BB}Qcd)?SXWv~1hi@0A>4vsquJmy(shaqTm97)4Q zHV%%udts^#qLGrt;2*5>WsMx zf(Ft|Da}mXGePE6&4uyVd5mH@LC_dSRWh0c_mk10jyYM>IpZQu&k32=izsu~ea?lK z_d;+|70w#IzRI4f zG_^(uuCMWeqIz)tb2g5xsCNNGGZ`;`5w>a>NnP(2v4-MX zWu9-sk6fOTFPno}|JS%IX_YYqi?LDJGdu2_lz<(p$o9>b_t9~uOY9FwRz};-Nb@np z&Ant6z&sbKQ&Pzz3ec@GYvo{iD?)`ofZW2Cx>p!U-BXPaqTuI~x|td#r8q85;!efq zE6xMCG+DOdaD8*-vcs?`kQ(7zY=ivq%H1j^L-=eJ`@@~R{)dL#X)pbKFNl~nCU99j7Lq@xI%RKktd={+ z@m$1?`n-sg)ZHT@Z0s>anvAPZkA+G1|6c2DDzDS7Pu{s|V9`j%Es4<~En-c`yokb+ z_PGGBfO1XVOSlt45*>HY8juQuLe~S38NIo@j<#+-)guQ?;{mv=(L=BiK^Ac?Vm%SN zENuYq8u}b2U*3V5!}Ou$4(kM6vkB7VW)V~RIK=f+O~y8W2M{$mvJJ6A*RAvNPrB7H ze~@XYN!862PblB%--YjjJR{_{4?|W$U(o3uYnMy;+_FEE454sv!RZ$2VooJS#Tdg` zN+rdb5|Nj|2(*!NGe+Gab~R2{#B$l~l)&Kfyu9LYXSn=X6&!WzaF}L`1B97aHMoB6 zJE=Ev#H3Xo?Y9nCCuE*S{Dgqy@n$hXetQu14&#q2FaH`*T$oj4=T)5&Bbk5J2(h0G zJX>MNya?Qd2T_nl^wr{mmKZTCY}ZkY5azB^N^L|DBalSR+=sIoLr~9HZ=ReScNRv~ zZ&&0lMJn!NAu2+{lu#{3grP)v0hr>!A-!Z9XhXZOr5HNVx&tz+vD;F>Px{ejAXzLm zA_W$5XbB|E$nMZO>CL|xA~&Ac4Og8zjy;f-eV4N|aN!s|W7;TLR&SC6TzA6jo9pA1 zzGMe36kXnzz7t3qVN}JS|I*aDvM0wXP{v)DdqA?_PYXyMZN_pbD9^V2M*w4)19}vT zp=z2bVzNrO3yaDF((94t5_SUJZFmxx5)OK8qg2^PfrIN?A}#HZH}X5YyS#f0^Fn!* zgQKcro=5qr$jPS@C_Ob2kSr?hFf3v&>dfrI!w?rRZ8Zd~>~6A+gFCnyEg6ok~Od;h*=`e zBRFqHk75;h<`}lb@>K(^mNI>=(ia6JFYJY4(cEdZSIJJ$TfyX>mXRD|oZ2(m9jngi z78q%>EiUh;{J3!VRRgb9GOsf379K{)>l}F*CrrOy=G+0vH{}O~DJ>#Y(@gS6R4z{8 zJ?I@}YlvC$@VrIU4XDShhakWjLp)7ugu|vs;LBh0lVtq~ucnAQ=2Zc8n<-kk&pZq7 zMibM*;yNwpqM15$$WzbF;*g#vO77O3(gTYcJD?|(9xEVy&NKd`u=md9Ra|j@o)N`&y82j?uBVu4(Odg9buUE8G$-m(z3;0 zN>HMsxsQ2nUxmA{ETC ziv-w8u-B+B-tno9mcZnK7Iv@~{X%37cCz$zD2ow7zy+25ASwC@;N6(I?PfIaSlj>p_eu+g6~&xOyO z9qy9Bt(?*o@@mNl9J= zXD`nR`Bv#xGSvXI?riiPlGT2XPb$c-8ZukzUoflWA<{-NcujHD(6c!N@RA{HPuK&= zHx9T98-xBrbZ|2BbMeBZ!u+w=0fJY1_^ z)V?aS%(}=Vxa)OausN)D571LA<^0nmHZztU+M@+gqGnQER~2pb6`QzB4j2jcKd*sTLdmWw9IK_dp>MUaXeipAx9#O_&Q z|H%2nh+Xz_OXPc|&6HP03h4VuqiESP&d_#gW#O zqVhQT9PnxC-;TBG_ucC>I$jq?f7s}RN%Y8%rx@}wA&rqzUCk+>)ILS8g?%>5H!6?C zsa)zUnPPZKDP(u~yN)R@DCOc5!H7T~1nTqlkW0tgNfLzp)u(ca$VCh-Q&PvC?k=ya z^r!2a^KpmtVT@6I%tc*6-vg7&QW`^Ol?p@5pY>bupx8AmpaisOQJ%19j5L?S^r(&* zq?kLT$*!LYXPd}*HQOOc0n`kG?U{Qe=|f_)T7ujrC>KXY)t>-%hj^}eC?PgZmdsqpe2`e=ZZG~TX^<#M1x zyrZWLQO9OkD?9>u<3ZJjxqzq0R>xe0LH9{8>XG>y0hwq16fmWkAL9DHYIQD5$GjnVL`ca3ef1t!@sV*We(1A3 zez<_?$5|r)^(6)cu>Lyt($u*S+(GjItWHWP%=`V|h^`5a3C<-Bp-{IUT)C%dPzRU} zC1co?{Sc@y=u^K-QCAqVE;A0%;zw}0CBW{=NPQu@q`&GXT;JUFa`|(KU1Xd)bFsgo zyn=`J!C|WN3j%46jif5*FaTA-L=wspKpS}@xYeMFEkR5Q$I;HeI0+R1J5k{(2 zLyW-YX*C!9D9{&rTm)BPN?LaS$;^uJPV&FR&SkTa(UDf~db2TCK^OgEC37vjMY_eZ z1ej(qV&{;pNL6smEg=-M8&sXLe?-V^ky{OSCWS{;dO#@@N2u0UpI8)9l^be&q}(~m zgI0eKHDBIcEub3MDmkJOCl^386hQGdoUed#v1<+9$0B_Nmd0Kn^CB3%g)MXid%4nn zCcAAh1KB6eS`Y0Fw#3`k=f2LDFj9>a*5T@v>rrsf)rZx*`&{%llTCnQLjR-G4_yry z%Rn6r4oOoU5i&2LFzR_CIqqr+l9fzrBX)5V(4*=-891JcbbE>9T^5ZF&AKTe0qbZ7 zwvmi5s%1?*gBo2;& z$QU*9ogv_urCzH6*gMg}nMUkdlaGNk6ulAH9L1d7P$E*{Sa8gcc@fyP<_)ARIPTOy zqE_H8n3bua6dD|<4)zQaYzJ*@s1W;Z#CC^!O0Mg=c2WS3F@~C1&0iY)6gj6;;|=z3*=mI2%@XgmZ)G9UBI1*jmSxR)y3IqV#F>xi=@auU^Dq`6tu z8y(?bwI-a}De24ATMG=MRo)b2p6Z15`Oy8385k2;8bOM=YuFRWJQV4eTZ;l%l~Ykx zxLq*!%^LMHEBrzADj;+9+ty}Gsz|D_A$QL-omNaI)v4gOg0l-VWx0>JTs(Fvc2eBM z6Z#U<1u{449YuBC@s?4M3I}XSMFxLRbxH+DQS5a?5^f}lgHqN6vRLu$4zTC>YiGvd zpI4myBf1CkRiI+^uH*fg~~6X`(J&{(3h7 zw@aNHR0;@yWHm%g5VY%#Y{Vi+!m)(DfT2agMf4b113iK**?7$6B<#XHWjizLpbw6> z!aaH*nTAbADLTXfYGgGkdY%h%t(k(+L@fngid+kUrXtbe6;t8mpVpD)7FL@s|5zJR zTBLo))tnzi=9%N9E)J_|6co;TbN7PuYOOP(Jj=d{vD2~<)688Y{exp$Vdq$*{4~gm zt&xu;{6XvUB$_kztkMSsT0!Q|M}5+H+h7y=Dm3>rw<)ZNy~~59-AOFLEbLG|uECKC zLjIvKIJ+LC@Q%%gxgd#FXLO8IYqkzMb4%RCvljGvE0YbP>R%_2)QHF*?3&pk<|JC^ zcEO^hJ7x`=9&ryz9u~ndBWW5VzKbNAgT4OilmVocNzjNFCv;V1oPf` z$^58sV@RHFfwIV>y&zOcR$Trf7Q31JVN;H}t-`e3&rSs-Q;i7SM!zmdw?Jw#PMvvG zb77=fHM-^|diSnh*TID+sQ~JuM&B}uIRoRA7y@c4(CGTPm6p#5GFgx`m%{4UE?Wx@ z^Z23Pd9egh4~{yEDC&63NLEs1KIUH)kbGii0j`M@7YAa};7Ek)QY#W*&=7EW5$M7) z$b9CR&xOf5#tuY8smIt>IiZ%tI?LXB4X!yj~^8KQk?#>|af-a+m)I%M;6qRiYQN3t^VWzG(0d=9~^m*MT0*)qU{-n zQECx6OlcYfNM7#FVF*^>kscIu3cRhOua2Hys>#XDW`lgf0D{!(!X6#@T4l?=X$%1} ze^{5_!;BanaSC?BH6i>g9Ckccw$O7ld> z`Cr-o;DF%-7(NwtmUEdklM4ZBoq)t{nWQ*oqz92)zcjE_ON7j|%=weDk6K)qJjHl8 zC(Fxwr2KpRUbr%TRz;TSBNfd{qJ3NN~wG&3Nn9N^Pq+5vA&%(S5AF7L_ zCRFj7QpHQ-Dkft}_2^XihTb7r9dq%|pYbZ3E-r^6e{i|8fUq>kd?34=qVO;F*tp$8i+mKm}PNo|2V37oPUG|mw_QdnZDCSn|cHpv=4-4lSY^p~n zfNY31Cxt`04?reaNMY!OLfX6?=)eHco8^#NP3-^{Do zA51Zz1`5`(<>2! zm?v_%dcA<~M0DNwj2FJoRksXHGk%4^OGa}a@Gykf9NVnEO0C4`7^Iycyk;ZL zwSO4OQ@sh3H^!{~5l`x)jZ$cU%xc`vbZW)u)rwr0{hX>o74~_`U3XUXg&=q8LI9~k^&#e@A?Ra>Tzd>p0_Q~v^oMF3 zUC_KENs(Ps)^r%cBC48Q+XIID%!cG$hZez5Bha#rS)D+N1w*TJ zP-Q6NIYjP?lK{82uV^0^9&?TT(zuHD7`nc>uAq0x{m@VV$$iMc#g~8X8zCuEa^!2x zRZnsG$E13a)22X5T>n!ke&Ef0i4m1S8TIkF>qK#AJr=T$qUM%PAWzwBPWG!qH52|Q z78g{wH$|H4!e>jJxeCIok@xI+jdXc;yGWf4%JO;CIK^0ea?EP%Hnx-0VE&xBBI9^1A4v_ z`z1%oRLpzj$ptgyw>IoUlZTMW5nJbdLtz(cs7?;aq9wvm;^aD&0b?tHB?`$u<%iUz)*~&qRLcs}KHtYD)4Ohi-*J7BCVwrY_)p*;xK+S@E+-MW z_6vgQ*99b>J?5B;V<=2M^JG88Q$sfspT5g_Q+?_naXu^p>DSD;Sb#Q_mrfc8)bUnD zl4+PsuwD}j;#;b{cc}^^txAO*khq|ogUmht5d!-B*&|sn1IZ%6QPJgnZiYf}Cso|B znj>D_xq#`IOTitPixBc#>&QkYR|AH^yl;5oyUL2bF6IB$ESp9@7fy!o*_zp2YG=wc zh18&K6=DHZiy8Svr)p7W`xN#aP!XOA^_+)t!FVM?K?0X&#=S}p33$Syvisl;g*$fr z+%Q*uD**wd7?aVYON7Q*YoY>6Ef_l~MCeIY=J%4`G-9|Qu)WEY;5x<_*1wJHwv zZ+IrBr?4`E^76hR7=Yw)O=eYj3OPx8INFx+00C)U;*|A+pPnD8jfLkcQn@$<8iB+j znQS7}{2P+s0!0Y8?# zuXaV>mmDC3SVHUvdNE%wmw%UV7((%`5})bg9f73Q%W8>{N%Yf!B5(1CFuIiP3nyTC)tR-}_1k`hxTOzya^cFib9beF`+3a!n%B+a_08=< zEb@wj68Gq9wE6*3+{IkfJ2FXB-+`oxT_c?1@=qWgfJD885H>^&`6=zsUK?+P;SNW~ zjI_?5=AS=7;;?(*Gef`(jG31W@x{?58L-_|=MJ9Rh?^ozn}^UWE~) z#$jo8sb{5(0`(^fl3DJM%K zLbizXRTGd*{jFXAFg!QOBOf5mmTX9A(|e;s`7k0Ti#%)^9}!3%Z7L7LMYe`qBUK^L z3l+YLK=KVI$-Ib`7|9|c*C6%K5|X23DI=!I8-Xs|8^}7$^ma~z)-i+3gB_BFBEeu@ zQH-wtnp--W?AIHC9P&m=4dz9xi9QF%+l?>gcM+4LWwj(zoSfUO*~mb3HeLQ>J^?*) zyj5NV0(JbEj5HhMHr+yM5jU-o6y61OYUy_2Vf0G_KP&TdI)1(#1|Y%OBsJ_)a+@Nr z^ErVbEbA5GzBcpD@(fAEQ@o5458h26kBmGS$ zEI8Lc4R~K!j8FcVb&jM`B-bxYlc`w%_d}Try>}gkQ1hfdTzUCj1uK^4ctU2|r51R- z2ievJ;>#5W^X)vsLtqiVG+;CraV_zIN5as;Xf#F z7aj(s9O~Vv4%}?1DL|roP&$W`BkQv&eJ_FJrQI^OBkrps-GUr)9Zu%DQCxp3fqcx? zM*E2E?4u4N>ZW7H-acej_*V#{K;GE@FjG!RqkDxw@@Nx^Ig*)Q7q~oMz&8tHo-3&p zfNH}YyxamKY4(D)i1Qia+m#>c{9*?U^QV9i&&M4z2X2p=i68=;O{JtTNWL=hJ8!h zZHOdWijD`QWe^Q4X+#-`+v@ibrIEv0928tT2rSU~8ky<(Bb_I_6eMIFgna-E0DvEn1@F zZdrB`eOOhqrzzK;+6Hh*_j)gn`UQH{fFCRK7xiFWs!wy(PdGjYp(BlCRK;P}iu&)6 zUEQp}hQo@ZW6?-PgnF#5Uj8FCT>e$!@~|uY$qREn&*4 z0}=%5F0#fJFdeE>BrAcGR@JKRc!uo7s&~UOY^Pyxo!JO3*9fy^F{5g1i6%RpeVt(; zX2~v01&^x(R>QfK7##;}=ScTy%)$97kZUz!55XZ>Mw4>a*M2^mA! z8tRL+)`>*p(}c{6Fyb>ss&UK~v5L%G*oU20IK(e>>GCcSo^&y7(wP%4w2O44(hQX8$GyeH98K!wSiKt zh$J=He9RH8_*aFIrjpDxBi%x*QpV?X`tIUSSO-(xV#%(aJ#V1VV7%qmt|GZeH`UwJ4v1o+h-VMt041w z_}w4A)$bl5zrCCz`g_VZX0rzL%Ff`YF?}4-*T|e8^TyC!XGqNqNsu-gkNH`7Sr<={ z#+XV^pZUG>HNZ>esedUh?+hf1;q}wVqtM?}+9Ymuzlh-E7MW|psRj;64yWbZSq!?X zWx27WHt2R3@I%ofc2)eVjwCfrEeWQLvEE1Y32)z(qvP)iClMb^UyFLL)~_Re+8W1R z*OHCN_1ghycNSnve>1LE|EsuC4Qr!Df$1`|K#29>63-sEr8@xT_X;oEE3W& z&z-&~AbF|g!br6ua;;oLu)hU1Wgkf%=JC6HQttxPy;?vY92Du^yqWjPA7;9>H1+I5 z`EPS)x1C0E1mI_FW{RQKJ=IWMg@vCccZrj8HaB~hOI|E=RS)#c079~MlXE=Z_f^l2 z0Liv&A@ugV7KbO~y0CN+=y9euKkFFcH4<`dpjSe!rMJp85old`83}o+W=*Eb*TQ9J zYkU>Js|Ib>#z#b%JDJGY%>_BH3ily?Diud9A5OomO^#CKy&6nBJi9v$>^pMUnso{%Ts0uvF$#riHFt!kzi#&<&!d+3J^ z>+Eq@8Xt##BD9kl$g9Yo3VAQKf$kglMdy4CP`=xX!1$W$B%gJn`AVYxl>p_tZ82~d z$6AmrcDOO4@i*uMV@-MLm}vN106n_G2sAnL>w3-Se-MzocPuF1$%S)XhP-D1TCXL# zCVM$Cx0AmTY;AGxXFmTyHd3PQuMC{ZeuSiV7W4!5VVD~zd+b2o4eS;c43dz2N-WpF zM9aneRYqAB-xY|*^vy>1Cy;d|iyY4XKIket#v_pU;5`3~C-K}@0WU&;=}B=AEAgKR zf47%0{GzkG5`nJ$dMM=Var~@+IDJGd;t?#*>a2;C)XpX+nF8$d3?N2S_uvjQ^`HX=oT(s z0!ZAhp&?2@vNGgCdx2EK@o8sgy>!9(Kc2YX1-4@Q57e@H;xJ-wQ9h6kTDD;58Dp%a zd+4v}i|EXzZ@`c}BW`hug=J>ytCCyhLKxR27JSKoNqVLtx|NVTdEMk|re3aHi>$sdjc3?Aq_=*)sW0zJ*k1^MzTY|7684})dEoJ(|F z8pqUsBDn{W+R9z220M_MkxYr?qlPJe&AkCZ-z<`L#oG{DZIR67)eXAcOF1k6%Ej0} zpdmUVum`8mw>!Rv(>!vbKidS#?b>f)*9x?(+KYj3h(Pkx5oglTythk@A?LfEhSz)w zWU&d{dnA(q=&`(&&A7$t*|=X(xe;}{ls%Ltqs8#+Oo^Hi$H&sHXdkMC(cVXUr!8Xt zSbKy?3~2%e-fa)Smf00{;E1CNHH7yM``-x$S)v=jE@4wO?;^mvX_0~c$F=c zf5n32N<T*#*9z??yOnTGmcV8Mw(G$&f?N8*dlKSL*I zD-e35!PjCH=5@$aHTM4RHcVvmCh(>WxcsdyW{6e38)BT!>B1gGqc@N&V?PV%V6Ni} zO31aIdlz_U!+yH1ZnwS$-0i-yaG*tKy{p*UjC)Q8^(AjxcKE9NxsG9cF`$c@eZd3H ze@}P~nc{ej>w7pw+gm<=3)KIG3DkWcrCI%w^qT52`JxdJFU3)G4x17l12IGoyet|_-BQD)QPMZa=wP&DMemKqABw= zfMm5O?*&9tc}83}tvu1&zC6sAhHXHu&eeYY7CK3`@A}+7+YdZGvL73v+kIKVCFHUF z$Tv)MZQrS_5|3_;ei(;N0`hWzOCv2JVLuP`kJ5|raZJXKgkL^?RzUK~!T!eV&>;-; zp6&P{M4!3;Dg()vUD9u&xX(Wcc%Co-`Q92Z;JEPx9Bp>gmFh%oz<^nJ9`QN-^avx6 z1mq`U+b>+1UgY^70|Ci;pT9jyJ|-R}Pe(I+x&3Ww42)EL1y@{6v?b8cc(C9EcXxuj z)4034ySqD$YjAfBt_kiQEV#RChVQ*uYu5aMd#hF**=N_Ov!9nf8-F?>JM+2Ig|z46 z#n5p)Q=usSwgs|i2d*m(1T8_{c{1I1G4>|(Qus}0xHLgGykVb?8^JBK?}yMP9ESw% z!n%D7qe)$y^>G;SdW>)DQB}I>jp)N7v!-T)HlO1cXvB+1nAM5y{_%23a|<%6HwN~k zzUw)#c_x6jr(b}(y|}r0&do% zF=Whw@dxE^6iHVxeln)_MUH}gFP$h0g7Cy%jp>&u0@N$7Rm*krA7{^&RFxWsl0fj| zmkR9I#T%zrH|RRqDC=X>UXo2hf&DiUfZBeTnSI_SHnG9(?dKG*w^PPv6-A-v2g{+E z4KDTPC^VFp>l@jpobrFS!M(+`1uFZTXX5$kz=ts+brJovgEtKr0KanpvVY6mi)mW` z+r}ZDfX4~NL##>u#~*(o*$J06xs8juSTPPC@g6gKbg8Ukdl?YFwiGJYi-TYQsfCa> zNHJn9&+JaqB;QQR9v233N)W^$ERoG{j!V zidpn1A**B!T|{FWjqF=czit3XV|Bx1P+o5|VzX|4ovBPT0(>mH#D6C5l2KLuLb^9b z=e(YWME@DEM-2Jg{rL*ym_&$4s%Pb8WECpNJI|UGGU|~dvhG+P>iN`76pyRde1G(= zq`&`1rIN@ALTzw|o{B%8s|SFQ@Da4axNceF`hNQ|=l!r$Bnnu3wHl5Ot04Ucid7vSiRv~pHkV6pN0{to*#q7*?ssi*CM{H zZb8~^I6vF|=ncZ730okV6h5PIGa0`~{U!{avh9=Kr5^(>DC-JF1J6Lx&$XCXEWlW& zli(D@M;ck19#Z^{zk|YpRbmupfCG;PxiRR5y;)SChA*jn(=(8oi*>`?_UQ19IVJV$ zOSl#%#2OeMP|q&9Nye^CC$8?+9B?6cvLzb@Bu{dnPeX zGPXesX%9O}qm%{d>yf&Z441$a`3S6D*=W5%vfj>IrLJ6VlK|d=;67(hReuIx4cDrR z1)un6g3EBQi&DAaOvLrjK4O+gSBn{*ia{UhX=%-l9YwxAecB$oIi3l_BCbOtK^H7OR+!cmVx4o~V1V?(mo+?LHe+8bcDqkR&yXa$# zzMsmOrVTj2xbsf3LpPoXO+3zASZDqg!*Yqj7zX8s{JAn}l&w5D|5o5of*LbAa}L&V z)Db;rpSGQiIFe^^yfH1-rkej7>tf^v_8_a$amuf-?4bGTFXynDxD6M(iC)<0=pbZ0 zbl96Ykm&p{=B9vsV>wI3O4X}kEL2X3J)P24kZi+Ql~I|=Pl^qo0T`&alI z4+aP;hKZP3;rbwm#hcs|Wp@@gy#2@g53^J0oofVPFEn|%y={RW1Y##TrU%2=gV3|m zLavZD8(abz@==E`+I6y`liE#Q_4orXYGWJcof$MsusNHa1wlZP<-TpVxg zY&8`dBLw;4#)N?5{0RX5_xC#T&s<3nr}>Dtg$%D;SL4K#fHZa+I&NOqq5TJqyy4dc z{Q2kQ=H7ZW)yWoH;`&wz5mv87P0}qN&d_S1brpYM!L`X3=07V-9J8dw-Zpl&!0VRi)+8^~ZYJ1Oj$TVFz?-H82zZ|I8QUdXbb z4j44->h%ARF6d2v_~9-f>@o@|l{G*6&m9I)$6LJ*D5qMpY77k)C(nAOWw|VfYUNjk zX8Irq+T_;LkU(T1G$2WACJP5uFHU~Wg20=7S1Js=AstV1@$;aTm}mQ=!J*IG6;{AE zZh|yh3cn`C58JRab-!Dv_mo!I$a_grPl3GscBx#y1$$A0^D6X-V1DByg^Qm*s(eG7 ze?)AsHIfsb`K2x@>Mdlhf|dN@8m!y3@f!uv6l-uQ(o2P(@`RznEYe_?C+f!cy$ITh zYJKNx9UebAQ(TISM7}+%K%|~BYE{M&W`dESOQHI!r-tWDMXO~=YYb8@##4n)QNI9M z6W)NpqVs_59FC{nld~aKo+N2b5~*L@?IFS zFT6DJRspj(#`Geqm?b#EpIXfFW~a#z zxdfadN(p_~#Fi6;um%}3KWFp>@qIXR{uG_4S*$lgjhTw__*@sg2~i^9kUJuM%Z?8a zya-;W+0UYbJ-OH;1B|8^?BufL^TEYB9pHq&UdY>j?=k<^bMX4=NXZiC*ixU4aXZHm z>tj*gy3G7<+#2-v9`D9)n6}&_va_98A5e$+BTZ5;8RJLPp}X=xSGmk~V3&LwwDaKj zQba#N;?nuLT9^}4)CmMt!V5w9sp4*{>Mq<}Wl|ZKhJAS_@XkKCdI_!k(C1j`@|U-o zwO3B5Lb7fBurblkhzlJWxYC<33z8mnoi26wBXUUXFDtGe zqochq9g>mwfBV6rIr!q+(h~WEuU-uS_P#THlvjc+c8G@o;x4XnJ{b2wK1>rm5xHA( z!BLyY$RjNW#!dFo#Ib7GUrl?UY-iovhB*}*iKT5DwjlS#mI#u7Ossx&kB|{8BOJ^+ zzb)|=b4V3gB0!Zalp^1{D?AQC%7k4MNQxc-T#%8tov-q{zz&BzcAODn__{(1+$XhiGPfd)s6LWp@*0|=R_E!P=XG^egpG*3^| zs8_L;b=;VVH_ymo2S`z!ng~P-sHBtX#t|j*xVLjyNL!N-X>Oz95_u6Qu zEPNMXb1QXz?d zj$y-|pF1}o{eb)x^5-Pd!nvW0lf?}nf65`(3x9nun)e%Ej+IOiW!XxOoC!8;J4hV2 z&;yUk=S*~p&|_G$#4R;wX?81`AA6t+31hIrOVLHKAyIYL^J5hRkJC$OX?1_);8xBr z{;lr7gA|`<1<`(|L&^Li&gW?FJwLCmf(Lp~kmw`9}+Y z^8w9D-`UwTW2Ef%c||^ZWnDbB#1)7Ew#$&S+90pgPBB8~50f11FcM_z)FbvOQbb+) zbb|uh?3woPOz6qJuN{_J@WR+il1@c5G;6`Vl0jnB@4@a&cBZv$vPC|^Z$A=Xvk_<+kxjvn-h@}{qrBe zwWWU~Ipr5oQo4TY4J-@M62Bp7(#lKb^Eh3iWin>WUQnRbX%8mp{aIQ|Atdn2>juTS zm+L8{#r%d566}5WddWKlg;w8B52$H9`?MqD26?R$ zmVeb~7PQ6n*RPTVP0u7R8~`^$p~lT|4;XGH*-P5&Ai$zy#cQ~j|7-GPV%m25RzaiI z@`N~FtJsS&FZW;8lZ;zqvAVQGGrbO^^`Qt7_*G@*cE8V#sntf^Vp2dQx7#CcW?sv9BZ44PVW9&VUuMaT*g$ z@Put=H4=fz$X4tp^)82h9nx8Td*@^A09RBY_RgO9sn8Xu`h6dQcr~^i0b4j+V`W}q zGv8yJ1{2%>4+*J1Bg2c$f#@+gHn`Kh3ZgiGCJPdL5yAPHvwobzYXTwT4^%L(g&jH2 zz8qfz$=#QB4Wf}wLev(X)kU8zNlTj+Tk;6BX&YTu=yc01G9$i_wCD0EtlSffM3Uvr zsf06uhzebU)&RWaLsHH__@X_sVP7kT^`5nk)=mFKrXp)AH(nOSGq?Gf{-$|0Z}Yy(da2d2qK*L@PnUEd{P)CbNn(J{{B(R9Fv~)g%Rx^=LHYBM3qUO zXPg18Vy&nvKw;_!qGxNu-XJ#rzxDEe5+Q`VY#-$!I5odPZ(E)L8fc^A0J>)pRxB|=U!3$7S#uY;RpbQbg@voZ zF6);|XgeGR@Wky8;|&Qljq8|uUDV$aMue*qj=0#3YDI9cIqY>`1wjk#W4DW0VYfsA z=efMt?j*G*`7tY0P2aI)Mq-o?DL)*#>VorcVO$R@Pj=H0q^#c;WmH9!Gbcu?Wns` zjP=}v(G2KX2MjVQu|!B~nDkuC+-?m%6!xItF~tX)pnhZER^8uGVJvJ6o0a8s?XErUsq|ISZPS>*pv?sl)@A$w%6+S#Dg7B{j9zGm+%4-X|%670ou+a$^{T+ zu_Y&;w#%pHHHBG$AX z2BE=eV_x{7BH&YzuAmE!N)Y32T#8&@K9}wl1pN^hBqSHUjYgu#l`YMu&Q8ps=YWL( zHHkspZVIvo>diBa^%Eg%h8}S~JcQxUoehy~ua6z{X98~&mq(cr{O+;JGGfOQv61+o zBof4wMT;1tbGG;N=j$@xl&$dmr~=}TWZ1Q=kM_)K3no(9{7#G?OCOy{hZYt|93U!P5)8Wob$1g>>VJUl4PIy#@tQSE8W5I@@ykX z+~7z!_}BhPeT6vE3YgP6V`D)WIJwY<&Sx2g3`=tXbu+<5e3UIYMg2#I%A%Uk%)H;} zBD5>E%877!TC6?*%?uE$#^TsJ)lRyndmCSVxO_%Vd~HobNf=FkKY7>f=<^GeI+G>K zGHWy=<%f2^3AUW4I6HK48D}8ZMbL}5xCPFE`+)E@Cw5K%ku11??Sa>ISNM=cN=>LT zjJdTFXJjz3N&4(OgZWpQ5UV&>m@nz)n+2{8bj-`3nD0oVNaP2QMOw|Y`{>96Gh;Ip z;5F#UzkQ&tOEH)6!;~D;Igx-N#92u0=?Rh!2R=Lz3vFV>gj-KIVy$X&=cp(H63UyO ze`>Qj{thrW!Ydx?%o+mlI&`2$?II6*+YJgDS2J^^k_VX=^1H{SUH#=Np1#SG~abSq=N9BR#cb>i5F!-))Tr1^cs>ya_{+Fyq-?TfbrX8Qq$C`K53 zfPrQYLE89N>tPT9X#WJtf*pX6=R|UraC9^Fi(Y$!%OqU=E>W|w5z7+XHUi~ozsv< zGK(Bj9v#=Bfr5q9R`xHqKjM4epB0WNj?+%?Ow*c?CjeoNXXIWZ69x_PGAB99VAwr& zw2=P2n4~BibYE$yZs!g>*9i&tQU2VTyN*hen8p&hn~I=RMZdlDJ6!KGR2R(Zq@z~u zb=mtG2n3Qp-~Rb}&PnH!g=u{xmb5=a+pT%egZ+kl&)Qr&=D*&9I2}P>velO(4(dvs z&Eyj|EzQ%tK(y^iLi627nWS0jwdZ0u$xB%?xfzR-xulx+Qj-q=Hwa#-; zKW$T;J-oI_4fIPzc)=?zMSOL-(04AvD=5ovwUt)04L?+J^+`=w|f4%ZK=qdEY`4N8bn!Y6Sd(jQK6@?q_Ubd7;2#(F- zaM5YP?%}TyiXH>49^7pCldyAbIyruK{cNk5;&+yeUewtu)|n zWkT?!;g#l`-mOuF0#^-)Bi#^FW>l%9ljRyUmTy87**>dAirti!zF4!{{nU$>0!qe9&7JO`Ga0GJt%N>uL@Yt<~enw^C^ zY%)UH6Ljl7t<*)mFqkYau*rcG*JGgC0hV#q$r1v|wK{k@@K{F;D2dX*98sBXi9(+3 z=41dGDr3|FR>Sq!-5;}ErYskEjZq9D{+%%)y=0WkL)s1u!Z6-vfY1tr84Xwiu|yer zF*4?XuP9K3NuQMNpua@F)JTI08qT0h31vhNbqmy!wOmN6+5|czM!}~&3{MBK8vkcI zL4NecxhW~JqCvRXxkxEx$ujN?f67JrNWPem!=5Inyev&M$orMHV`ZQ7RMbgo4h!h38c$^>fb)Z23y>R-Q zChTf{{NK-ACT>V@WfSs7b(`81ncqjm4e>P`(`msC%Y(I4PKt}CvR`6Yo;d%mNQ2F7 zm#RYYg!zTvr66SWO%1b6gyg-9cXMHu+nuJko85xYuMt778tU@X~h7zt23& zZz`YZ>FmAitI`dAU1RJwh=yA0Q%JT?2pxCW9gnqxuy;XZ+jv99QiH^s`*w6F0)9>g zvNjc|$%`={-8b;IYLVO@f(cpu_|cG?FzC;2>^*qu)g0{<_#Hn0eC$&ztjyc`V``&xQxwS1_c{pa9`A2Ng~{+5Z6Y!~uBCDaUz>D_(cjYZ z#p9%|yP_ae_#Xt3Xr4m}KMK(8BW4OeyTUQSMDGm$)i>;un6;pO?8EYookLE4QZc3CBflqdoBJr!%0I()JT{`EvWW(#qc~ z&SI?)mC={jdZGpnHBcQ6YwRDSB=n}Asb&k!{w3Sz=i ziwO~=YVEU(Gr(Bo341p6QO~LGRXWMj*6#M z^PK|s3l=<8d|+(P?ES7Z0qH`pgjbcdyjNK93=jevJi-5b6i9856+r)!}JEW!L+RBIS6E%JT&qX#m|#tRAAL)dh{|l=$ZjWbq1>* zVUf+>?56KCek6_|aDe8b&Xn^C@{Fr!6}J!?xzE(ni=W4wIT|LZisHBKB~ja#h|m#H zgW}hQnHgXzu#f2u>x<*YAhg?O%P6U$SamF=Qa}lQff3OMEtM*9&S;e|>^0D}+Q*pS zw{NtuuARiK$Pa+M+@6hl^^Q73ztO;l#e&|e_ATOrv|j$F(wPx3N*(UdqSuWHA(`;Y;-(+RQ97FdCpT zbg23El2Td=d#0%v-<+Voc?BM(wrtrZ z`51$+8$8bg=vK(#5_7^#mPZ)KLWlZ?vV~M#H#%#S9Pw=Jn)f02L%i{nOjy;K44spj z&3_N_RWdM?fcG;ASuZHA;}f5b=5Rvt>5{u?T>i%NdhRnf^OMdNjbbGVPzd>s+<}g-HgB+W^Q5SDfT3RwA*;pnoByMQbeYHGW&buD)&oP;pxPoGC-%Q1tVg(|nwjQ#| zoJElSI(2~Q-4_m$!LX}}x=Z5L0%B?4No7I57uUt5Zoj5$V;(eMlfu*-v!yh?$lOwz z1~eKw_eD?Zl}NO&ek5bq7iYUk0ITR-@R?=xl(;XCF3V|A6|~ja&hf;dn!~j*h9rHj z)78ulu6dp@k=#dF$Jm>$E4<^#b$%=J8`V*koiV{qT!75mqi2SZ9My6OY+ryO>H**G z6}sJ&_>ACcs@2L#XcAohhROo_%_1g1N4({wF`_?U9+1D zICB=PVvh`nN=9RJXMklJ9<{lmwA(yEuye3nDzgP(qqj704=Byj}4Vk%@0u<6LxZwHZ0kD75F)O#(4=_YY( z1}2gPoFRX6sHo$Srd&dl$!qa~GXSh_#S&K_5-#+|h8*%)&5_%Mn9Vd8IEI&e8S?%* z8P`Xa@UYU~LIKs9XTB5rA2=L^iKBN@o}+8i@>}u;r&z+%V)nh<;=PXfv{COvpC~)uefp3p?*3aZ%H+IW7%IhY(bh<03<#9uOQ=S0XW8~ zkA*Iff_2wKtIXM!U7&zfYrsQnu5XDANN;t&oC{e;KpxApSE+CP8#} zJT!e}!g67`_YWu<1vwWHc78v>`ols#a(YTz@GI-PCY>y3E6(3Tb23Jf>ikX0Ztows zkwU@tMpEO)6WM=xQ8arx(KLSNe=>PstR%#IfgZ9ErK*M#gEke8bd*;5-a?gxB=@}? z|Mutiz0d2sUJ`JF{li(L6`zaZ9E`gw#({}-F@&y~x|U@y>d;nni0 ztQco;!e(DnNmJ?nfmx?erHIHQgXyNKgsR6f#Ai2t7Lg+o#QiGq0LeNU=mJ*(m?O3a z$Wd-E_%9dwwy8c_=)pKcc%#IusrEGi=(Lq>WGKOUrIoApx2hXdM#bcQ5f4{!%-20%_*uCSv65KSL#Id@i}0va?u%nNlot2zH)TtUTON>x6qkdSx<>Z!zE1inOxD zM5H*{xdSb^e{V`&dil1rTU_Nl@F6QdgDfMog&Z%V;XmKE{cG|-llpffd7ryJwxiAG z@z42+4fjV&bbF`ZkXm;&)NGgjiqK4BYWA3^ephLeRoUpilUeF$QN)Gp{FGqSrSFS{ zg4S8FoxrJ>p8bm`- zKEsA77_BAfvlc>Poe58L_(p9Id7K)}J-af5n~S*@tbk65!d7ldw!|*Yv;rI_{x8A7 zG>qPHCTWmr>o?)xScVD+0a;c;69w4xiXNEAXc%adg-$c23DW=)pgd zRr3U9{%`vLCeys>WdwD|s=~3u3an$^(czZt96exyrfXphnyi8Yr}xyc@&{x0fl9hO z8ujpnjW%@U+&TUlJ5fBXSCTZ=3h~@2`N7rqf~_gYdE#2Zjj%eWt$A0G=oX5p`US*N z#HN4xVcLM|Q3$e%1TX&$SN?6MH{NjwGON3w5uM88Z);N)QSS+iYZadu8Flm%={?nh z9SRh%OVS9Q3yw+;@q50kPJW$>58#sQLL<{6-s}yn80AW~*)k2$w5(fzTc_aCTj@!q zCaQoRb@*b)nqT=WHoD$Ezgo{aGE6*GzsK2LO6P(kpJ>^iA%{6)ql9>u3>BHk=z&`d zuFKi)Y^rj*-43(QYL31odQzi)E`Ge7Mu~<%gl{WJH1W8vvw@fiH76~K5lZlb5Y0F> zEy~>HAqFXzI^{|X{Dvd<0+uT#StYtAOLI14>ms+M1fd+#l60Wvz@Vr7A zvvbb11T;{v6ZP|3Uv(CK>~fc<5iF$80%BER$-&5dG$P4m{UUw9J8Fk))ObHI>MZ!W zYS7%s`3EN3m0wwvP*+${D~_;|nM#nl^&D^rnlh$eym{{mM{Q6mc&14-InksHVJ9`q zRhcZ!R%p4gSRyXa9KME;yO3WvGBevbtEFg7-sR^49z1iYs*FpKhT?yKgli!CV8j95zA0fXPsX@B z5AIl_=zrQjpaGiMEioyjf7*lybrl==7&K4r+Lj{65yA0Hr4fHpc&W@L@kd!79+@O) zrd84P>`@n*{yPps;azsx;(P-3KR&#b3QnPhAC1^FD7|91=BbG$5jAEQ#pQn>N*q2| zLU}>l0|D2pbYddig+W!PM0(|)vMX}0;XrjGx=Vx!tuBsV1!~<=M_vB!T>VnfIAZC% z($+$wP>~LKeXfGr1G!rvZZp)k3=07yry29S`GUIRyHAUix~l`GQdq%Y#Spfv=vIy} zIP!ZGMdU?_8Vvz=_B|PN{xc#q+nXo8IIpBu$}dWUyt<}t80E%m6U05PLLpOoNY@6UdFiiQ%WU=HbxRKyV~e{z?uM{9;Zv|{DJ zzUn9>4Qjr+ls!HzTVo5hV%bu2NTUa(9X*P~L@GFVWSqV!QdZs&HJCdjHJhxUa@FK7 z%;>`93V~oAvHXKSZ4^_7gcg5%D(NumI)um&jlu~8lK%~1>1r&4ZYri#Ne)h2ZdyJk z3=_ zRIM}YX}39MLG)^&w0f2ebvVXgc=Wk>@tCZ7?Ja+ujB%acnPo6Tc~Wsz1Ti=kX&z~n z1$^(_=mpX(KEJQ{ohu}FFXz0i2JUJoU(=svbJQ``St*U$7;y?5e+sk4Z%y8(ahfjX z$I(K^rH%>Ci8iTVl=q~sg;(5WBQot6kU}kteCxE5C+sw`Cw7_mlz~aIHlwStax}mq z5~XKAKM~||OL@!VEOQ=5&(E~(Y0|l=v6ODRLf1EZzk?|Z%R=QNKb-Fi49~n`0Jm4D z>24KWKFZ%8WTlYaho*x>n)#Foef>4jC8rkg-X@qMLu4o(ihf@{`UCG`tchswXhBla>q*g}i zi~=S`eRw}sL!%vYe9Q*b8u|3+pso@Sf_@Z0HO!cJjOZ6rzqi3-EdIUPqnoJ2jLznA zrWBo|zzJ*7x;0!7~dk z-;;nQ@G0MlBqjwQjq+KOK^#pKAbq268`2}-}hb?QIG#HEo0%WFE#*P#3 z>gyuF%%tfG_mzHq{Zp*k7{#Q}k;C*-BFz#0k+&jZ=7OU!ACQ+(sB z&^9U}6j=w){G-7C2BP5n>5*)vkR5lXYTid1CZ7S~W2FM_=>y_R`9d);ly*pth$3UI z>icurcudx*O^T82tm{BSwmqSh=fu04Wfw}^*yUU~R@^3s6;k22fv!3{w>#obX=Liv zMFs3Y?|93%(;{^U)69YtFnNZ zve$DcJu`4R!B0z2km$~z{8oL#f+Et{1c63(No)wA`NP7(1yxG(2ZtXI!{MC|%rcgv zLgrow>;tVZnr1>SZKRZ1CVM5!UK1O5A;0Wr7D-^)FgfBK|D~(KV6Mdgl;$AS&{A>kwVy0T{ zv;H;oimwFHW`_E05q));RFaW`k4otkgJd?zkP)F`7;9Dv`+IKL{LP1X?S2LYx9S!5 zkoO6SbrhJlF#SoDp_qPz>^9bMS(S}xb@fn=sMAYnTOzGtmZY9FSETEtKv`wM7U*-2 zca1%y*UderwcadCA9((ggFI+^&2@069G<(&%Ic_n$#b4DfCTfT3LX~zbNpF0taH5R zg<;}9?`uQBd&nfPO@|B6PEOR!Jb=+?5Wn$VbxAFYNwfVjlW?cDMuqibEuedv|08c| z=V>inmPx-DByy{WSUv|7lWJ0on}MiS(e8*+0ioJKDvP$*&f2z9MgA|do$`M<6~1N! z$L7ifb|ESbe# zU0l}Z)f-0kos7%b=Ut3Mnv8LI%bx4ofKk)vZr5W^KFnbY?VnSd3a$MyZj`lC=g0Y@ zr*@hFos`CK|I)LoNY*g8V&!DuuMJ=!(61v+QXSXz3_FDmANc@+z8z$N(K*X83HjZh zu%h%{1nY>)A)e`21!~M2uvi?ZPv&}-P3e+S$y%s}yxS$7X}@|&WNC^XLfa1W`>hGv zpBQLIBG=U0CFQ190&oS{fk9_#mQeN-jd=Uc*iRbi^oe!=5(Czux_?33H2}5BpaNv5 z*F0VP68M4>sHM7H?&NodZ?RjjuxWCW!vY~+9Q2<|EMfn}n;U|Lx4NZOV-Y@%H?FrL z@Ov?;(bvHTba-C)#KqObZ(HW;O0?Q32RkklIHM@*G26MDNcr}+L@wyVXFs#IUYv;( z8zFa9%k}??$D0DwXeZ`=UhQSBT=(pr>}TKlVJ3Y_|0-EC1a%X3&V!MVHT=R3nvqY4 z;*HaQmiQTUmZrGOx5`u$-INo@X$vy$3uZaYZu7cO)S9h1Z{mH1S&aFQ%`no43rjx5Q-a1x`(ZC^=I5xdLqNhws2 z19#(&wyBjLzsJjU93My*%r!b^HqF0l^C`)$I0u>e08B~!w3rgPPIAFA^_RksZ z5eMzNgcbTTIm-*4{AX#ze;{xJ-x^e4u4T;d z`Fw>|G>M46A^*NF;#w_U3loHD*@N7C;eTepQ7ri!uTJ*`-E1;Y>Qu|${@v9=2xdDGiRlzi}cWm zA@L6+^55+7$JVvm3|bk6&~Dr-?y7R3ZWrC5gN3UDvbE~&++mNb5s$iN_Flg-uoDun zi}L5Y*6>m=v+*~z%74ZPgX^uV;>3~av+#gSC4;$IZ$gNMNV!TCB%8Gkrt2u##;C>K zM3CwCV6?eL7`VtW*2L=-8NK#oCkRFqtCiKlbWr|^VO`rsx0)B*Wrfkihq?aqV0!8g zg2K8~q(t(rfOVX>A3eGfMbU#G8^lC%WcIS# zX-Y`6KRT#mYGEU)MTK)V%<_kI*%OgS$cEMqkmZjw8{7I<;&OOb9*xhmRAfPyxP9$YSfHmo*>@TbGj`A~lfUQM|7#L3xsa z%q0-9nO-LTmWl91YI*tHEoZRD3Uc9oFT=VrxR3_yh?~79|}Cf%Wua%1+97Hh}x`4$G32(r74DiV>6;%M#e+W@}lfln-C!+ zQrP8V^`>$R*|KzsXL^o`L#90yP>z3545b>IfhpAHvB;q4zscWJL&GoS=a3$>%3l}x z(!y1^^(b}FLzE@vu$i;VSL`3_PVq3`Uhe_mO zv-u5$FoM!PqK-CD9f&DKBu#-@Bsr2`a=cj!l1W8r(#*U{FK#ay-YLliN-FRS<=wz0u;Vr0%&atm#*C6$T{K!8amf8b*9MStj^bHWu;M#uzvw-^Dw|l`}9b zQ6WC==g{5Jp0Xxjq;Zx*i)>u`LDtx4cy5GL3?)Q1G(iX7P}A|m1@TFJ*rI&D+b|u| zXCM}(enl;D&fvK_NVuzSMvqM0*z*rK_Rk#mquY=USDq};E|C!`X3t*`@)xs!r;sq@x^LhTMzs;|Vjrm>XSQepK&#C`V>ADgfeXO0S88jLE z2?lM(GT1w}$k%u=7yaadlB-H*U@mfMSU;gZpY?;fP8HBrT0ZWO<4&m1Z|eCl5G%`z zxL~M=#$WZV;3~)(eDWThq{<9I_!{K&aXmM=(ftHc&2eqpA$PG-;o16OW3%70MfJg+ zUUa1jr$;;$)CUwCYg=v9pE5bw6qp*ke3y4X;fqb}!8V;=&8}I^*b+6&YQTgt$BUC; z-3p)A!AZcNSb>El%TlEs-_m)m=E5=!5JWyX8ytHmXOJdf>O_psv1W1^?G?VxmqYzZ z_zgVaq|Spf(p;EG89ub|p4|+g5KQ$f{-gZuyydMLUo5}N0PfqSpVbJHpPhZ=Ph*Ef z2eYHQ;XnK2r5{Wk6ES{_y0Yu2xoFvnYp4HWFKRN*F$_YO4Il4p<-$eyPKR+- zrb8g7eFgcH>gMzW1rYA|pvXsrL@lbj(+&;JmFwmhBfSbHvCSBJv%T$%*^aBEG71uI z_O;(zAdbQmj+II{Y|FuL9_suVVvHV7o`59ob?E@OaDvp5DM$mDXTAHi0fTOl( zAWpe7gb45QuKvOzQvr#ZaQ!HjVLmPNEhY-pkb13%oRA;G@;6sPNT^D*Dxf8`y?QIT zwAgsU&YU0j#TGKkRxe#H9;83cObdk?_5>+y5E*!g+yoJ?r3Ztfatplaa-wXjCJv{#d zN0*xH)VLLZqif>tf$jI`rDa5Vyo_&E4g_8vm!po@@Repo#}Y^21@HPan5q)tYwHEL ztJSl+0~@&z=*-30U4Kj{6v}loAF|dlRAlOWiC?Mz*bT%;^1Z_2_7aw!HNSPrzv@4! z3;=7~{PE0;rta>llEYa1vp6VZOacjahq$DRI|^ZZv`7cFp?cOrW6|bUHs?&&QR?!H z(($@ZsQ@D16Ud{g!Jfu$Za~C+GiSvjU`Mp8~LAtuWvO6ED>mCDa>YJ;FAS%$h8b7zx-Sq zxx^*NtX|se9zDq%iUCAY_TQM>y0P<0G;;}Ngv{!Ltx>She}6GuL4d^nLCI3|--@(m zMjBO>m47+T=Xa&`gcLgwxFRxL+kn$jPqU9>l2d5xb_-NtK$zfE>!XToe zyBz)~erKfnGq9fCd?r{kGhes3)ug?t*TVI~?2~3pO*(=ZJG31%J`7@@HcsLXpnxZn z6mm_ji2|k|3>hKqU@d+Y&2pB)Vyi*-Ds z#>b}n=yQpsvA!PzEEsa$)4|?^t^@{o)%tNI^HEQ~aJ5|fmFJQ4RtF4;_taZGcze_n zyjv7a0{IeBY^`2`p#%~jq*?PVhj6Twip13~DJmWe9WZjjoUW0pxBtRll#xW8MT6|g zPP$8-L23Cdq2`|CxTq#DvS4%{2!m>NKA{N+Z8ZV_fX&xZ+*g-&IFS~b;P-&hIKgJ1Fk3CzcsnHK3I6lQ)@*8$t=g+ zPX{OYqLklD9>t&tcPMP?QKO33=Og>)aUHx}MUz{ixAs>y<04a6qlqi+CWH;l*zKMw zmv~w>qzL?E8S~wjmu)1fzyX&~)mY4;+O;j*TJ2AYBj~P#h+|`EC2sx7=_1rF6`F{S z`r@G(OA!jBJVPb+kUG*s{&Jl-(nBl#vLfu6Wbzi5t#w$ushlxjZK20XL-+yfd47P+ zTmV=CgIhJLW#NxCOy00U2+C>kVV;zQRTJ7TB|^_Q6NTAxH457~FM4V^os1UVSr}R5 z!JYg2V_o%wSEoOk^GK^Fr#cVawzX<6<*^>FlnwUmHy5@Ig)!TEV~wtDl*EJ0pQD8- z!7C>{m=Ff&>_NJ9>=IO=w^GrDcTTpBiP_N(q6Uxn-AtGM3yMCfscw9PU?a)A-KR z_bHfY#GtE2a+{cCFRrzU1t7$4$ro=7J1*7-pP<`~erG`PAPg#u%AlrC?&4yl(q~GP zgLZ*)G7SzG>{7u3R3wB3B!sSRRdhroy`WsrbU zQW%H11p@hlDB_N?>e&V0e%f?DZ423_#fp>g9mJP1QPWw#qz)l{n&nbYM(h9K>6@eD z?!K>MCyg6(GD*|eY@EinZQD*`+iq;zY;4<38uK@OzVCYfowa6tbk9Ef?0xRJIO04p zNhv|cW5%?`<-LdE?Y|GihfF!5Xw3FUd?g|{Qv@Z!d_{eN})4hmB^GDY= zPa>OOjne*JNn_6k%iFI15%I&G@J?Q(qaHOB2!cKW8}*VDx79yQFAYQX4vZ4bE-V8? zBhN+tmwG)gC^Ymdov>Y`E5mdsIHXadHi)xat4PX0lO9bOkme0PIIc8VOvVuUX0`}eNiEcY@6SR4;9eoC zd{9@2TH!+~k8IgvmjfvU=WcoR?;nWt+*g|$@?APF(~bDMRpPve(DkL`kM?=nSFgS# z^?)-~U2T6OaWQI_jB&oGvo7Ku7Ki@sIJ)Jjet+QYd#-u0`#Z)nAY~WU2{h2KATtD( z^O@_VClMB>4Cibd`w_}AYK*h)N1D2-&NLy4XSeIN%Gx`nb z5ck`qGy+eJ7TlVL|3Pk~D0cVIyzkoX!$b?bnhfL|gk zTT^qI>GZkPe6iE$a(mpeT<~{1IC23Z;Xwk$4JbHxdbvmQ)Chi;$io~?|DY>8xHo;S zvLZ|r%B&QC0#g9a*dFu8J!q#1oHiUbRwZq2I{iDX21r@nJBy&z7uD zTO|EBpGS=$gjOK|-|EGMjEw=;Tx75!QYC1mcyjzYvhO-6VDhlt8_^UGJ=j#T@x)XK zoj=oasr(_$<&ZIB1-O+V$dvhjn~xT(;^=X{aG2HlyuMi)w{0!%-*4!Pr! zJ-_+>+z#>sY1`2*y23<}%ALs{oB2~;2Y5pP*$+2c9yNDgDLG0Ud3 z^IKV1*HKv4)fJ^JAI@gzqK~K+pJ1=n! zSP8(vIK_|)d@up9>BkCoN}wkkqf2r9mn&Ip3G~r3^2M#bieDm)c+PxG zjE)z%`e(!X7vNP* zKL(@hC2nY^_#P>Y`hcH>)(t!#VynD*Oz{bqPCI+JSk$`Q(r@zGqk!D{z(2n4_C2`& zd_d5CFTe^{M@9)>e*P|w!wIG?&yoveZ0YvhL@=Ab=V9XDQqq&wcfGxNPjPv{_xQk# z9wdDr-E!qP5Y3Hh$^6w#64He_r&3M@s8CHlU!WIh4 z(qvHxSo`dOmN8dnp%NDhQa#9C00NjNtN=0||L1pwBEya628LU7Y-p5qZD1w9 z%_nKNMQ1oVa_rQm*dK)gMMMD*FA+R(_w+;}Lb>?OtoE5l`Sd|0fXf|&WU;-8^j4B3 zV)WOQ`)Bu0Vur&_3eUf&BtkH^jvfq0wqV^Nq>G3s@4fo*#j1Fn;$#ssr+qM08UZZ{ zC)hf>|D!3`L&G&{+Tq4-CDZ510)`fy*bp#c390h`?J(Z`}jEY?y0-TO^e&^Pyh ztA2hJzJQ0OTxef}*rXoZPVh~EW{YW04JU~IMZtQuz(%}~xn-n6W8 zt8XGj3=aOh_AwVxM-~(aP0h0KK_c>-X7iZkhM9 z5^BI-Y~jnU{o!9YLx1J3b8DTHNActlK_wgpVAOA=_ZVEtXH0JQvirs<#FDe;0~Y z+moN3Mira$R+lv8VQF=a|L2x0@uZB8!dL(BSmbNJ^Q~k{f{}pcO0pCH0B6cPYv;{e zll%@5@p8IgZD>qUb6cET=n}^uepI`y!2gwIbA~O&=CY`%^g;u|BEBJe2%R|{I>?Sl zye>CRBw;Lo6<50$xj$@lz67G1je#uJP>dCmq7xjA%yW*r)fyCA08uUg$A*h(S}vR4NoW^p|628liQ0{;0W17* z)UnJP?U{tCx$O>zrmEa~4@OK((A^@ILL;z=AWtKCjQ;cKZ6hWzEdIEX!3vQt;qh0{ z{9;1TjEYy$aTPeDoepjm5F>p@pw6!dJ|XuU>1+}`eI$vqfr*RgZ6os4qU$f@U|%Q% zH|xWWikHuv7GMOQJUsZuTQcNo#>}YKltBew6x&L&gZlX`VMoITV*N}|vf6$m$3%RA z$ct#emI6)@V=@AjLJgCnq@>Q0Uf@Vy?>l%SY*WwQCH}DGH~=D^dSXzPOv=V$b~}kI zZy_TWcZ_9+(#It@P0!J3aYC>>27J-X6r;TT&5H$6)#lB|D-IUp`meA*!eh5?5jQJ}(tABAg5@6}g`91&=VruMQ4Hm6Z8$c9nVbO0X?G(z$eZNYV476g7ex8JFB^9=1~3Dg zLT{GrhDTQo60}ghhNMd}k<0FY(E!nhF28goi)6QWRFBTuMd3G_U;dSwn;Z@&$T~yC zhpW5!mb>WpxG3bHI!$nzUeD~a9$ST6@!iMX=`mpG!SD*b2h~RdE0VN$D!?TrIPM9) zJBL)Z?r)FmocW}oahj+FB15bTgiJ)BrbAZHSNvG!CF_D@zf<*ee$q@>^KT;$hHkH5 z{GQfwwwTAh#Xc0ceDQ2NP;sGkT)rz^~cKKzyn8Xn=U6S4wUhyTksyjwbwMSh9~Z z$Gj<>rj)Ja&ECXFI)*oMunf6A;Z?3V4Z*NDD3p%STClOT<+A6_YuU_^Y|Qw-hv7h6 zxI-1>f0C&68UTCJ>!lv?FuV18c#%VYMVnb(OBjsOCvHOTy38XpU2LT2I))9aYuQus z#0u=Z{}|topej*30{daSMjTVekRjF0)j_ts`;M;~1k{upAp0)MuiTT1;9sDa0Kj}a z?I2>V1sc+rTeC`D8?9{8Qxo@kms7av+guQ?mwq`u*ATHKoE) z-669%@4Egrh0zAcv;ZlWmF<(cvahO;WL5Vko<5n)4n;t<%*3q=GT^It!z%k|46b6D zJKT&RyGlQ0%}L_;hKKNW2{+JNsYrvLdEX4&PIeB^M7MwA`HR_w0$x5bNZJ%;NOd&2 ziyvh8(MaHsFBG8Rat|i~gqvgy=e~tG&O($bnP-_n3Aec1nZaD|zr093(ZT(x zE*S!IQ{|7X(J31bTbuBK{%RAWxvp~L@kl6g9vw5=)Lf``@aZ8eoW3ImKGE7#k6I&T zj?PRSWdH982VfVwHT>s^{3chU;P>*!pb+C1!6j%};gdK{;a*J$*PiCQG_GE6sJula zt8kAZVx4$Ial?LVK34flW5fNRn~@U9~C3okG?FB(E4DJ#E8P^oNI7@-1kvCeQf@i;OuSwHDu*XV$SXb z4!$_VDvw!`O0m%r>nlYIW-=><+1K)qVnmp*1nL58Eb$65N`_za(p(<|d+yADptb7A zI$dj<*)%@j+XoZL(`~rhlA8CXW$4UCJ9`SLI$rI?#6Re8Qnn^Ao@}`V$7;*bPNX^ z!EDIqv!pcZY7l{rRwFNFb0scn4aHLi>Wi%t!39O&&pn@pvNZ}oX}q@hjnoKM5(1{} zrDFk*2I|bw42N*x+pUi3ULK?#qW#Y{0`Js}!+X!Z5#P@VJ}v09Wsv1$0U{S+!;m9^ z&F#f`TG>*;k9M7|p{=60wOO0cL@xZM;q#X{HJy$q4ZU+kszj(y_G&I;Cp{lq&T?ZMxcMVmSK z*E%|g>3juhu*8Za&V>6SQ{mm;WKa2He4%rB%Fw3= zOLtL&-OQB}QO!5sXq1EHhI3e=PA9|;pN4fxDg&Xos^F2H3(_l~ATz^xpvW8(P;C)e zj!QAfSm;9e$vZrOpvrfjHOG9hO!i2Jq!Bi93(UW}B%np%0MST}IC_8tR`3B91*eZ= zEuLnYyt~jlBKehZfxr$%8y5@BGe%*IbBEbXYosI}{P4DU^->n~#|CA>e^(8gjCEC+ z7}#mafe^`c0d>3=524?@VhYCH#-cWVoQ(M9To3DHoXK|@{LQ~(u-!u##P-Wq81(2t z1E;rL2;3bcI?$<%;C$3syD9YiUirdOV>Jcr^sIMH)BryWAfEHMm36ArNu+xBhi0JU z!z3|l7wC`K3Vl3nQ?`$C&_adcRLm-ig%}Lgo9#^vc5>3vbiTL4#8%#TjBI}4DD!=I z<_)|L5hUypHhi-2XYxc9bfmqmhsu$_=$xP}w zGAsW>gThbjlo_5gq%FlVJNv){{~BYXZ!0zaJKz6_WA(X$*Y2+@Dy`h(Ec6p|*X~fd z%-}Uk7%tZT0`yPzw<+_nLtS`bQUmv1ni2rf7dBQs&~IXfVYm}eq>Khc<9;Tm;VJsyb*ts;_q*^ zff+K`KH?bKQJsas2~jCD#Ui^cyAx!9Q`hw?NAxBkxw8~0jz!O?#3O|PD3tqhs~)9> z1qJBqa?~0+Gf?-1U^YY5KYvQHIUn%jFfH1uyNoN2kO*tFO%=nNel}c1{S@i#yG{hf zlxVSj!c(`YQ!)$ zepGS$&?2DVgI$7*kS3hl`V0l--xFo7nM0uzds6W+5QFgGQe&gruFEQc_8)JkMlqHF zfQbeIey5=Z8nuK2%esj!vA-os-}AciAG(RA98#zz4tn5*T_!>2ND4NBbu$x(y#`Ez zL=0LG@Fqv|IFT#uL}lpNd}l`>FEQf7hc4g6x4z?`CM$ znC;D?rLj6Z6INYFBU^q2kISa(l> zl=y9`lMRI+6#c$t&|@{+E)ox&)$iaseY!ekRu(T4;5a=d z#LsY2l+HbNL7s{)X?lg>-A{Z|Ek*E8#2ZHi#^tnJ{lvn4(C;8bWT|S`C6%Usw9sx9 zxifok+5Mi#fRk%u`|mRW`lWUXix9ac&zJdDBqB?&KG!LxiTjt)fNp2eGzmQZRBXso zWDS*+X90sN^hbYCneCO5?eeut zW;BciX(Wg~ab-<}p7c1%ObjD*YGo0DbK^J2pH1C_#R~>sP$cN- zQAW)N7x`1ZhK#-N5DBD$b-5wlQp8WD;@R;;zh56o+S~+NZMTT!3xvBG%-Ycs6e}Qt zha{Thqy9(p-OZ=`8~CY{#O)5GtA%Cv@ql=9R*XN5B1WGs3#$Yinv-8>5a$P%JKQ z%B`?6=aS3gXk!@}*s?iV=izpd8}>3U1Lh#&wMuB(AwP~vtFqq|$Z(YbH4K2))vl`x zMiZO@@kmct9(LJptYCOP-IZA}9e?T@Vs2GR1?3=gh-P8-tvOUcUOBWsyCPA3tsz=9s% zxn{XtekY=o^`d_S9ucWUS;RY8Fz_)3a8H(nsf|?oe|=p|cJ{EPFb^980YR$%Kj^fi z*Tpz9!hrOCnt0rv)CS_1S6&d_*u!Ij&#Z9@0H3i#I9H({y_II5$=}%Me8aAOV~bsY zueCt2XwGLGL&{5>fgyKVx?dj{!|32-vHF{AH;g`N14&c8@r<}P|8&{G60-vyZa+l5 z@O>Zjy35v2uIa$Boix(qUI*CZ;r1lrLHoATm9Q&DZ&{y}3}B?&7~bUZY`hv*wa#(t z7M7Mg)ZMho|7I`W%_$$e#R3p36y+bSa+JQFkJ55xL|F=`uP}L9mm=QM2&R~O(d;}@ z`t3=e=i9PM`{eB$sVkKOcN;ML+m`s0u!)uosI%LA*IcYRhwz*qzaip1b*=}4_#VtF zlFt+SfSK3K3&)Y7R~>aDDRJ{ctlMl+%<7HKZ#Kp+<~OtKNKn>_gZf%@`J_imuP~q8 zNf|`6X7tVW(wNW)4dKANo4xA=F_R(BR?-rm6UZ92?G^3ESsUt}n4l3ZpLu)ejhv+o zVP3w)!#tGk8&cFf0$Ju(ix!#2-@TXWSB2MN4&f>AR-`= zRi4PcI=jR{A&{O#xDSINy&BMJ`+5*^N7qB0ZsZ^1nueP9(o=6q*1yd6|9P%c-)e*x zCqYb|bdBw8z1AmDyG$$~qePry<~8TgvW{ZMtLx?Kqe2Me-_v?#rHx<>xF2xHcuJu> z?93P{7IG1oL8a|6!b}D#?C5http21kxJ<=Q3aHmI_qa7e7GAxyhcRMb4DF`>GP9_d zY_01v_1SXJ(cuoqMlaiFpi|tKiOx}u0F;{WvB>8DCQ2ZW#Uvi#B$Gs(4Xsf6p-@|; zi3Q`P_>)-sjiIA)uj=5v^22EB;}qczYn81xW{!69n1dP@YnU#`o^cT(yTJL*_3bH6 zPr&(WUyE3URVA2P#eYr4b+jgR|G|>Up&_olh%|K=C#6??Qgr*i`^SOGGzF+e0!5U3 z?xt{g2Tn#6P@Jp@N(RGzQ{sDdssG0siny5nT$meg>QHh;@Yg#mg#L0bv-iX=Jf^Q- zZc3i|4&B^h12s))@swxak?bkX}%n{i7wY|CYW zt*Jt|#b<$4_QOZd&neI%djORP@&29vM95hXoAcw4?i-lfoI3ifa}JgBw$Ouoq8|?+ zcNzYJFLyDDoN4P`jWY2LH5C4juF$W5Y70r3!gJ8yVV~Xf{G&nC8yA(3uTY*gw}~n5 zA&eGH*GbaQNf1Xh9#w?WoAXB50Iva3GTp3wXE;GjP`L5jvx3nIcA;)1W*FQXqW1rGk1$9qP+M zmBLC@f2CNG$z&$-wc)}L7BHn3Z=`HCN@J;l zHa7laMd9%E_eptuk#}9D#Nqg8n$!F;ru+5dYCLG*6Z1T7-!Hf-Qwp|iP}vviQ1&R}SmHQA%$MSz?k0vM$xuu$K4~j%=;%CmYHs~pc!+gQ=i1vjb(~qg+xA+np zYcCIday;eXzdMDI%Hop{6c^#&#F$K5uqO0*-Oayiq7!!gtdqV#3^@Px>0tTaoz+pr zwR1%Enjd6tTBfNhBRXk;IW;X!5NqqPi5ogKGM^o(|7XReaaTbz)3gQA_Uropyud(W zd0f;F*05IirzeAeBtBA|D{mg!dgn(5V|du<(;UPAx)FL+>#xBuVy}iId3oYszk~n$ z+5Zp>@IzPc4esyX3dSWJkdK#AQ84bj>g}J^RtHjNv+zHZ!tpne7oX*-qN^y98Ko{T z2K+)cE%tEj@7H@RBcpzdb>=3E>JTsw^AW`d(e0!<+<5x4bjkB|eI^}!@}2I~Ar5FY z+WZI(6UFY4^`ecT+uQTd|AUzodffWw89rPwX=`*RdE5QR@l$6fmc>QxO$H!R3j-&9 zQ5>OX)!=vS2a7sGe@-ENj@$<1oZHakA!;6%)UE zaqKK1ifxjtZpB<)N*8sCkN{skPShz%7yCli$G_?Q=10DcEM9?w(wFlD^KC2P$ZT>H14?v^UhyH8mSz z2kHfaC&)43DsK%F9~Lp&Zlkb5B@^OuDqtT_>bE?ft4cHI@iz` ztx!M3{CeQ)3=d#Y`GGL%8k-SLKHTCO0^K-R?2II^FC?kz9?GXx$)dem9G*v` zkOyI(4(y6pOwZ^I2JTHH2_Ad@JH+zt1sq3FoiER;k(-QkWERu(un3njsQn~pdC$X& z$)B_;`26#l^hO&s7GemRLz(6{MKV>#l{ELG;EgA2_5~^pGs*4grICzoFW~-V4pFNd zR;ot4lSb{;VAX)EyS(Ma;&aVaKIik#;ZED=k1DW8xp#PNekhy0DQ!58I);*Nw}-0T zU=Q4g#ZMxkPR127_<)DKsV_#l#CQo+kNF{IrO@Hd2uxl=t3kt^86s2=Ah;%O>?E@_YsF!=WC zL|y}K^8>OPkSv7>y)EA!^C`M{^VaRY^Wfu~yby6%B;w9eM$A*kb5dRRNqS1_N?*oL zb7%K#DeM|bubF$)XsuP{&IFgiC;Mb!eG^ZxqnQZ3>xn3qil$55bFK$+qx`6I2wI)} z6w1fxz;=hI3ur)Fk-+gAp~Sd-c*Q$$eCg$^SeAhkI2P>ixL=h~RV~uw z0(S`lOKJ)EyR?S+$OPKX+rg2Q{f;ajM!F22e)>P1`v-NdMx4~u%?zB-rD2^Ke1$#!QWbcq7WB$t^Jk^OB^v~cSX=;d;i%}4C7;Bk< zT^8IDJoMJGe)*SKO{1w8GXy7rAYKs`mr&zq^<6{LnFVxH6*JtKI_pZg!}Rh$PhxdW z2mT4Psebg^9N7-(Qg2RWAHUJ;-?FKgUE+i()fZ(F=_wnGxDP*g(5CrNXI^Lcy(r;P z5(0Yr3R!!4<^J-m`X^CCWyK`7d33;2Q87YrTf?o^#Hi^oC!Ln8N9zMC#oyuVx~wF8YlY@;9|h zgY|+=7v2RU1?C5)rBDQbI0?&dRU%0j+JGe76lUBwlCVe9PJp_>=fH?TP z$H^=tTPW8UlNiJXJs7Mf|7;eLXX z8YXk?bLGWV&z%r4ZUFqUUiUmm>i;-HcyW#t2_a|%d*oIKCUS>bv7}*YSms+$7|%LG z6cT@;RFWQpxQYE-Sq>pj5fMOj37xStg;d47ZUaCs;L+dwWn<^@0dLP}3LfwI?A#)b zj`XMM)X|wOu?UQaLInb;!eHP&9zylEeZ#3UlC)_U$TbhAzRg1B-DaT$(`r4U_+N2O za@~YZfhCxbHcR61Ob#?Ctp0j99k2E*uJ6TMqI}Bi-aj3GAOHk{$8LYO*rUKn=&CrH z32o{4o{(czqCo5RwKlRVE@)f=(e$Iye}F~+K(atE(+Fmq6-vMgMd>ukCAbJuWY!ma z)BHf$sHdC{bh~@UH6mrj&dW+oa+a%hdrv6j%x_i0%zsWMdr{=ymOGJis^Qc&MKH4z zvn>hyv+)%9)ppVjhd`%gv*xvX}Z8(~zIj zekit4BrbCyHE{wYJ$TUsA^@Rql`VzY51^?7BXNpFFW)vi0yrz-^OZ)E#Pmc3s}iUQ zkyx4X

    2EjUX+50;4*aZn%{wAUPu4#(!`^Vv#99I&CmhX(V=jKdho%=6Eo3+#)_} zk%ER28*%RY9SDD-NA-Pv6R-TpmOvRiDeRjEokM`|>1dX;(g_NZ6C^nG3Qe%~G z9ZY1m3UwUIfruyllQ4vZ#2=TZhoZW4ost^kG_kpdY=!_G|K7`d^&w*{<8`lhtQ7(Q zb4?Y`+UhQviP2>8nr-}M12-huX4wj0)l#})gEt3RJj#9(g9Mfhe!Gq}p`2UNQLCrg zuo`2#M26}ZrRH4VbMe?dZIx9KsOq;7?GBGCH)phckN3HaT5|_hcb>wysV3SR2Wn2UxY+-# zB#7Xp24~db@jBS5$M)K_k75{F*gVzJkdk5?B@Igt5 zdq-ck##8LF^J_Z7-M52b_%9jnTx%bhGkB8kx9b%RZ5>U6k%H-XbBcJ;Tk&Q^k>{G5rTi%FcbyFV6k?mG8=Ho>vIWk2c zJH3a*m!#qP>zKkaCMThYThjkzgeg@niF1<}6>ko+G(B<363zx6pZt{-F&0GK9l|{} zZdO^lp@B}GxD?hcS1F)zO;$!;Hmh-DTdXV?eFnHm@6en;MPyAt8T?j_>hED#hZfBg zDqe)3-yAJk0tPrHooZ@{j`>+4A}qVd_qoXE|5r! zDlr7F<;7%qM}GRFcyL6bEOw&4&TVB28~$Z;kWWTr8;t9`U)2N>ikrnQ#0txMrMQ9WY&V63> z7$hkK>djd`H^U~a(ULeOH;1lWTi02H))+XWZxkbe`eS9i!7;7~IxJWE0W^aZ_BNaF zHoZgxL{+EH&U+FQQEu_!mapirT1V89cC6V__YxXs3`u0n zVaT+h!=W~RAo#$sAQa5Rjir~dgiESM0bVUUZ@oG!gqvt|(+f=EsAwc6f&^=LU0I%` zs|bxyVWk+Jw|~nX5whg+_*jSkfq3MZzc^oD;8||$;mW|H{WBX6r3{|`ELH_66iTU zzidFA&Lvm{d1Up_I!~`Mx?%=2gE59}nva#}`(wq=i;<^L8r1R``~Q1$sqwRPtiCBERh4d{wdc$dK>97Ex_DiAC%66g6Fcvg ziDiEGd$)+x@bW9u09FqkpY%l4EOO^~bhBTTI-p^p!X=Bnsg~^+I7N@V<*`HR`(j=R z??_wH712d?3K+f3d{L-X2>@d`G6&TJ>r~tP=j<~0d{%zJDvYL}p?kA^pAdt5LgFxz zBCeo&)qvbHsJlvg65s?OAe5;rTp(r^{9B6Y4I3Yk*K_)#00pmdMcaFib|{xddF~3c zW`J6WZj2wO?Wj5@{4BG@7m zpC}-1o$7s;_e1+#6Gcfkv;Z#Xfq~SXYX*eO0Q>=-=qJLn9xqbEw07gh;+Z7t}#jAG@ur0NDvAVxN zTwQ$b35_d<7aC5x_74hq{(y@GuHBoa&>l1jDP*Ys`pfp{BAhxx!07!Bn*^hVimv~c z)?kIzE4rFH_P3E#k-i+@=Lu@*gEFuqN}_!<2*%`+i<^O>HC`eFYIjq!@( z0r;b?wdm(-9;nUkl&xlj~gxE8u`;;&l*8HX|AM4|0;U>|?!Zd0qD3pao zZTa5aSP|j&y(&)UzQo|aAEC4A61nc$@!*!?%8NGBY-vjWwlnaf}epfg;1bVnm8zqG&jW#qpGqLxtmSd9{^ zT%pcZ1wHdA^{$k`GWpJ1z}MvT2E<^`$&ty$ZN6H3KPDXfvCg#HyI)R4xAsxW@1 z-B$+P9~&*FaRMeZ8*fb*mSuIuwYNJH`OS$RlltT(^lHz z`i8ij5K&`s1iSuue7D;{16YCxwz$ul!uU#8+-aX@Kcsd6lw|zG#J(kf4m-&LY zd1ii?X%h0|WY}!VFc!(E+e4PH0X^6*E6_-gToSiXF-m@i3WKb3Z-+S*`tc_(5c9eK z={5v*U6HnQ!i0K7B4wJ2+Uv&t>n^zJ2Q&KDzZz zByP{bF?jaO8JndoYVEEhL#MdEGXh+=BiIKs0UyReGOFvg*gjic*4s~BQi`S~0$Al{ zENkZD#YQf|s{bmhg3igv4K_{8l;KIvt*R8_45@W?S^4$JC1hDM7|qmvi&H?+o^$$N z`T2}Wv}(t=4k;~4%nYd``uDfH(!QWo5+EPzS&)e$WVdG#&gmF${Whul;NBm}^_Zg9 z?xrqo?Ag`!FA){LrKG{_(HZM|;lP>kM;eSQu+hU;CteVnZffo~^62Plos76BA->w- z6kzl@qo9-hW|TTHDxkA>z2^=?XK>etiLUq$b&Si@V2a=yqg_N3w**9zxx`=`8qH>A zlgSzlxpzBo@h=BpvM$!)pGngk-I{2I!fy0%MT<$x4!hoDwPOV8tQ9v29wEt;4uxXA z+zTn;z;*kHR$)wva#p z35g^WnA;0}69<;TNA{jEN|J768NTqHNoH0K8!l<|{KQ!E_?J@ znLqd__MpM8mgmy;v;3<6X#}~LU~G)vg`b6PJlNJDFR_sQT@N)D<#h*zKcWjafuhgOs>&PQr}% zsu{ZVeu%-~#idmL+A=bbQTA{;C-$)ZgQQx>@oY}mD`p*{7w@9E1qyPO37#V+?_=sf zIU82zX^8=~?QHBm=lGiW*If*tTYn%Tj5m0tBOw4%y-FE|)SYG-f#rCQw59k??@aWO zpn?MJdb$9Y!+7TZE!ueaD4r;?qB$NiqIR0P8OdP|@@UoHxyV0l+s-oOxFkyA0KP&Y5sw8EOF+F_TPHPO_C>+bk+7#VE}TQ9WpPCBFr`6f&@T^JbWCUsEM z@BducletG&UFgiwR2=8Z-kfl2a%eODvTeLTMp&sxh&gy+XOj#(L^FM2A7^XY$Wayn0Q zIZ8+7Yfkq6K{jW8s70x2BE$9d{W9`O6*Q8x0@rXiP-t8r+iBQ$>{+ z+=y<*{I#d2w_RmC*>X4$Gce+an0SGAE1D4b>BYw7>cCjHOU>|spntxsE;Cs>a(>-l z%guy$jSAbd!w&D7VQzJ;DU0`>XgJ!&BEZ9QTdN`~w*L(h@$Mg|g`OssnzP?r^<9gT zev}5)ZQ()mY>tO=iV5*mzE;TRp;WOdrA?pv`igmnDC)q5Ntsh-)dsMNgj#rn6JHC#O**agdOOmYl%YHS`tW4{eOqlYvbsGf-E(^mAwxV6( z`AXGwmu^*jdAKEUbn;RpgWL8K!mJHGD0DW!nzO@<`Dum#FCd4ysMl}`^(q?xS?y?d zht|!oSyGW+dIA(q5@ZR<#9ks>z({s*# zJ5KO`K3!k`Y}CB;z(k*YTK1aI0dt91zszf3Rd9&$!*EM~z@u3vdF!FN5z-3FD+Pcs$Mcqd?ez zu{(=!v7XN%6}5u_G-;x6efKs=u&Vx~4DrVv)EqVUV)bwK8@DWdbm8wLkPJ8@5NXu0 z!pc39c)#SQuU#?TBhBd6fD5F}Enxybq8(lx7BR_m_OdsIZ1FfYrm4icLg^W`BCWDUWS7xc>W6J^Cb z6?~d!5wkp^=-l0}K{mDAkSspSv@2XQd3Js`o=a)?_Hj0>pWyX3-$|CJsN>Yea<8Ln zY%Zn1cTa_YHqFxd=IO1YI8zriIQrTAy0P*2;Qwg)%BZ%wu3IEXa0u?!Kyh~qPK!g) z;%>#=-Cc@9k>c)9++B*h7T03Mdei6q?*C-uWRHE8%sJOw2BQ=Nik^5)HDS;9vkc|? z_`K`9Q<rg76kCcsCBxySVaoiBPMsjW;p}>=rKa)zR|H8Q zMogo*Y&(32HB1x3fTnK#S8|)N;f>?_PsMzxr}Esg9Ad>TY;+&_!@RyLSffi$bl5ch zv6A~6-;`vwlJ!{S`)v{CG8Ha?pn;8{&E-*f_r@EY<( zH6ifH3J=&hx6&gLglqaNX06+|DnAu=u)5xOLKci2$wO#E!@D0he{0_&v0bP|@qN5T zx?8CGcvD{gAeT#UF#@hFKIVU*$cFd2GXvwuVWx@M&9~FH(sji-a!rNtx1Y55o1|Y| z)Wbhj{25D^tTTVlpu$L=9vqByfUQgug{m=%{oLSJ93*(voS{=Xd#OU*?)g1JN5c6| z$~$W9Gz57;IlHh6_Yvo{5xuuyi-jT78dl*&A^^t@bwO}xA7VF6Mx9sjQCn{!%fzUUd zmWZ$sD}J{e={ZR{zsE)`m%fRh$D(BvVG)(jA!_O>EVMui&VjvRXsJ0#LNNX&%Hln{ zv6Fzs^t1VRuk`a-N6NcTuJa7@^xj7dA+iT%TlK*nKOn2?D62L{i5KX`--UD@3q@0L zm}E7n3>m-Tsz^)>ek9$qMFSMGRxpnHrtQ7LBC!+`4SudzJE1bebAIY;`BV4#mPy*4 zl9on8|2BJ4eSi+>$*cC_*OMeuyzf>(xQ!gv7P1%(B@NY*Tq;HwF@iOd5#+Q0y^Yl> zc_!&0Aj-AxnM~1u++WJ8`;s0;)Xdz*yfZSonb4< z=r^1nWd_*HLXqcr1y^85%kUk2!$gGNM)#CfDK{mqRBAxCuXBa3tnE?!DIwv@br(u{ z#I4cB{3rwG%m*8HkM!a_%53^d!dJx;j>C>|rh!CjXCtF~HwX3Q(UO%5M%})itJc`% z+@<7QMXkGVf>@LZ@&=_qLxt|aJ=d@g>pe4n=rcLWn>L<)>T{agG#=uwiEkMAm%Xx* z&t+abE>^F-zH?OQ7x={bG~_?N03{VWF`k&p^Tm{PFP0gtd-L%-C&cW48Csy`hT1$U{r=WsiWT< zTKKEmCnm(JlU6%_>OLX2`g>usBb_ZQL*8bu_1B44fOop-IZbd|x;xGZ7Y;Gs=+e0l z{IEf!y}9&-2T$UJTG{Mlrx}%H%~!o<=x$x*&f>j`h~pD_?Wkmb)sGQpNlZMSxmruk zsMoH?voEY>=OZxdeiY$6y;DC8@Vm*Rl;SK6)3+$~5%Y}}sIT%n6IDEK%DJqGp(@gF zY=u;Vcp#1uFuEnV<3$)9_^|las;c(HB@D6@rEL@%b+&J_#0eT=;BB!?Jg1!6ca3)< zBXFXFkCC`K_DIreO#VV#x@=C*{wo4m%uBA+D54dLsx2KoiCGM7{B%nF#&G5^ATU#y zAG^RO?~3`J_6JM<4)r8kZO809xBczYr22})zM~`~-Q^|H^js&O-3&(i7r~HXZA>aG6 zEVY{C!15>Mwwg089!M_8^)j`#b{dho<3 zmGX3WcX}byBZ(-E$7i3PJlfJnG>cj@A{=)9IXy{XVz7K|gi0*?a-2gir`eQJQ*KkjyY}# z%i{t%+pb2_I;?TxCL=>jeMLjrnC%9Z(Y48<5wM0h1rQGM*}ssZ*0JLAA10yQNPoah zov5h|pfcy>G{&x1L8E^>8l`eFX;8q+qkF1Gm7T_{;wy@$*TzLgrE!1O9cJeIS|W}Y*j|C1eWD=a$eKpypd7jld;M%Hg}mxoFY}BS zRMU*;)j{XWa|cunF_d(w`a2)4OqQV8+_Yuxo)Gk3%Xih(nCo7ZN0hUlHX_qw2v8gM|hGekRM&xud2O|hI( z1Qf$<8C6_=?w(rEUs9JAA9P;E>iNR|f zd;@9=gX$v;&4yF=GB0SoGH)!%;$cKcTM9iVAf4HGg|Sjrp(t-hGlRn*yfp3=d|Sp- z-hQ6j11AmUDBWmp=fLL~^vd^OcdXo)znM;%o1dP76o(94Sfn-FUqYT4w6Mp6mg!J- z1foqLbkTTC2n$xVPTHTYoePBI_<|!mQ}TZJz4Kznx8WBWSsKZV+lW5}+J?5+MVBD9 zDnWe!`IhMSQsE(B&x97<3_~e~QW@r|F(b(sC;84Ppz8hvN6_?Ge)jS#kF`(--}>+~ ztHF!wMf0#lu>{9W*VZ6im#Stkky#H#>B3szG3x_J+EzSwAj}c4CVH=czc|ZQ(O)<) zEG|aJ*2fSi|5tvYvv3k%qmE#RT&tAH9v1QhI4U~vlQB?nepv>1<)HF2q6dulUVhV4 zF@d{Q9|=g8cTnX*7~&5aiq0mJIV;)Byr(2}@DzDqon7k2A50{`fAUJ+$)zOu1V&2& zAL*V#nxF0dCWNxjTfZJ$&Z=K|u-tCvnth!|iwj)Ua=F&{M1a|-r40F@KEKuCeYUYE zP*g@Bmp_IbwPnXJF`+)@+PxWN$>_1b;@MaopQbG z3+gG#5j>{=l=zt-d&zAB!`HG`d~(p(<@4Inu5eU^tbjpQCXugg#N4Gz>arHn^C4S# zF8w<>je7mrv0KwuFI=J3+=Dw!try_=SR7h1aLTLm+-;gKh()*jf~`^-(!p zY5p=?ihe5BpCa%HjGvHWI7VLMUnBMs1+xI_fw+080%|G!*r8_;N;;1%Pz8HMAJ8^M z{obWOD0rY<{)%=CD+qjSzlz*KjP9=hi%WAIWJw_M?ounOLmGR@1E7Q>TX{jLUbO6o zsc_i!5b&+7yF31TjdqMr2GI=0eg{T|XD~068inks?%2-Xu`!^zwK@D622XaGT&kl< z`DIu08^JJ9JzB*sHqhC|T`s|m_RRMz9APW#9(r>?5S6d)5@*{A7|(c*_tj~&_NzfI z$YDq5x_{f__yXdG*msFUM*Zz{pL-vdI}*~*3hZ;pI`BL1e5K^bQTdJ&`gf$$&~Fxt zM^G`p4!&gnu(vInLz)G~)Sf(Xift<~z%_u_t+VnWtvu!uGOm@|0~RN1Zyv}P(_(8f z4MuPpHtm7#$$kDSN zQ!td|5VB30g87+cYL+(Z>r;chiZqHG&hMa^6+&6#|J!{C_zx|)P8>qRT&I=tK1tkp z85GK)43cyf}Zyjvxq?izvXPdP%`I? zfA_t)=CtA>h0RBb?^L_CV{5G(B6~)`9)di*Bbze|3RY!*YZ#Q+Szs`D_xHKtQDCU% z#_uoQ4VX1CvABC5UDPJ)OERoVUCh8V0U~h8{oaVRCq0bS1GO%k3#vgOk-s)x5t)n}IwOSTqzecVK<5@p3 z&&r`R=u{v}11yD6*Js?b9Q$_X-%-)IU*-ASi71!mTV#HhxVE`=7r#aMrg~2Gg9g?S zmpuZbrdw@!i;mkZ^DJa}YqRSOb(Y@0Cg(uFpt(18l200xY^4 zg$&y-Zqm-yG`uc9cQRQj4qdlhvcB4y}HGL?mUs*{Pir_F1O z4197_8p&&}dT4IL$F9eoj3)iJsBuLF3&9mTA?iKHS9@~@Y&y;HLVuW}Y;juN$*(h74Y_~eC2zkXal#m)3i)@5Fv%CCGRl!<4E z_Kg)p{64lL{zPOV*%v|WDEmR4JAr#oAo<=Pmh!$}uZ2n2bo&NhT3j^C4Qo*CI=Wp? zWUVtas+cq(kM-3AclOs(g@+&B)6>#Cl`#VGb_$(h@w)CR$V~sW~V@O_-WDg`5N9R23J( zf00njprVt;TRaA!g9X5KP&|a(iW(fyL{Wg}`!#PzGpai6Kmc4ufyY@F7y&U=Xc-tm z0w34I$@MwD;EoEmiWG7OG8*h_928%I)IqhcuDkQ!%ASM2wQk~hN``IrXeU3qh85D z(&)+9v^R=?G>vFQTL>RH9m~n=1z5Wk9fiSQ&1s4< zdj!qP+}>SHCvZUGSs|aObr0Y!`6$4dSuAaYUNDD*O-V&Ak`K?dh(8K1lV;RR&w=Ee zI5N3HeeRgktW-L)9d^G~!R5Jc@L`xW(U-gR?aw>(hxC;-5C2gA#*XF(g3l%50PA@k zNOU&6Qi7UrN%3dL3D=A|r>3veZsZv?&rH#YE|;iYHvu6V4owYCpU$k|BsvulR{><8 zJ%K=s@lbQ9Q*8}@@*Wuy+UQxaeb!8ri$cPo?ImT{n}cMbZ*<(N8{yseV0yqhZk`cc zC%)d5>m~^-Ro%37kNGU_eHN}JA4`PBo{NyWSvCd|>KAdlIKs%wJhpy#8NUE2ab@qU zd=q2V7=@rVMVwz~icF(%`~(tSYDq${)&ao`0L&idT+Mq9ZwfBGD2B1m((MXpof{6U zMydq5@)LM^1)J9gg$~0!Aw4rPg+s0Ta=uisL%W!LFZhBJ^1^ho*bUZ_b-*gwKrImT zkyGg`F>D_PJ9bMG@O3?Nim_W{$<8@l{{{w}KNUYTTlu6up*CF6@4+S*?7_eISiK#I zSo)M5-7~~*)!!y4fh=$D%cCjwtw1jFXN+TGiXbE!74tJDoC2*`jxdh{#d#&J1_+)w z_*kJ7&GIyuUUwF}-!4giX@*ioAI#?sm(wHL{Sn(HgB8mQT&l7LKyVZyrq1l6cno@d zbNl+1l-<%oc=LLv^iZQ}BI#;{bY~IpmWH=t`*V8z_xZxn?B?1>KdtCP!hDY;s7OgE zMPVr71A1Ow7E-L{N>lNRM@~b*_pJd59=SlW%!LON8&fCK7|m-R?!Nx}J%O@xF^>1d z$tx;CUD!Vqla^5%)$VMH51Y7OHtC>?^gMw6dD*m~*V%*^U-`D>;9?sA@14v)btza1 zfHF$fwO?R(6N$opPYz?D&dMyCB>QD?4bXKRrCKvb@dkQW`h%dfh9O8DEbtyi={NxS zbq0Io`XLYBV`!*@NLW)$XA=vCvb~f*)L!~ey~7|5?U)Ebw6IAp1%CQ=>_^wCg=<2#o8M+! zL1lJ~IMiP#J~HCpe($uCQYDNhY2Tw`=im{^(DCzv|By;w1EQXv7+y?fb8Q?k3JaZg zxxR8ATVM7xvV9~CVMQu zsYb4IevI^MWg)8?sJF!`mi8?GQ3vry%xpGX{9zbw$@A)XlYL6q^kyM zR-?Moei^Jj@D)rOvRwm>dH!7PF+o;;a7mz!N`!=T3VcjzQ0di@oH%@?8|62G{PzbL z<;DSg2yDM73!8xg5p$6JA-#cO5$Qrw`BHxu_~kqd*~YTJ$zSFFMa#lJM>2%QEw9xhIod*EAPgwV+%Sg)K^u0DQJ}E!>gwdy%6QFL4boq9|{;MUh`waPU zwT$AK-Z_7B2I62NZ+Ky#m90Rsb|4jaxd}C=8mZnn~1j6KLrwN3$bW;Tk(J z`8hi$@A`1{{p~ZK8!bAm%*RGris0sX!s_$>87W@-3;hRK)Kvtk*YgEmPTq3vV}V`| z^G7+)ui^ItuRVYisEd0Izcr}p*fdYQOePVxfR~ST;z(~DyOU8eE~Hb=G42aYx^&DtkWF&S}M#_UXeEfR8~^FCtxW>z%2w1&Ux2%mouic zxOF_lg$jD6VuaFi7tc@ z1#{8um1kx+Er^k`fr^Gj1QANKZPU$5d9ZN)eIn)`0->>u`9_?phm?{@X>PMK;SPttiH2o~@Pr?vQoZ;W|WOTebeXa8E-@ z+sJ3C#tim)Tl;?^!A5GbPpp!41>YG3v zRXc?hmz#|F#%2ypwK^=bA1qA12?X|&G%3tbvyw_4heDqyL!jx78gcgKNig3z-u(Gh z?9&s?I6u90jem*Xu1J&_xIFRxV!$Mb_ByzNMre{Z!x4h*|i63NLRQ6TMzoQeCdI^Y?g>7+EJA!d@go?_4 z5)ahN(#iCmfD@B1jye30+Ho#nkZz~&`7a=B2;COh3N#8U z4VP1y8oz8BuG~NSa$~;wpt)a@m2RB#_1Z}_UC+*|zqdag2Zp1uGmTl>-n&QSp4`qm zTc@aHPw_4wtLO)> zyDzr{KY}A&WO>_EYH`f+SQT2XZ=cN>|M4~RMbE`>STT!3vpUdYqHyMQ>3*fX?-k`5 zQKkGA;sQtWuiH9(;$%R0D;fh7O;HW}>mI4*oUE}#(5~bcw(`C6ur!w(@&Y=&do1m} z3APjVFpYj#{5uUIE}nHZJh&}%&N*=R?QLWLw%4`Ca#&bjsOYENo}~nmWT{B6 z8AL``ULbG&V*b{DhjF> zA=&MZt@O74WtU7aIOY}jWljhpDne`Z@Cv__>QZ0NDs9Hi&RsD`V~B3{d!zd;<5A&B z%=GH8Revf|t>NkG>D%Ii%uASUXcsj@#UK5H;I{>ofyshsTsvNN;L!QvI*_dunuvd>~GJDcNZn4EsR){aitJ&ks7nl3a9;~aK23DtyJq4WkipPmmcCO5h z=rN^FuQG(Indpq-sOuNRHFL4qOpX_#=VZl*TDX9kO1k zfONY2>yN69n-Uogaj^_Lt=X0-E`O~W4c4?dtWb3@68-D==3xX+*~_KN5s|LW#X@= zL)2=2KfLF2JxcQS?y-(X%R>5cefz1fw>xYGOmy$|F~D>T)ePD^9Ye<^O;U-C_ROdo zt99s7TYU;PqZ?%fO=3!_u59)mXp=Gm^PiU>IS_pQNVM-=;?)B3+~Zlw6je$okr*CJEF@W*?h?*`bo}^Vl;J-l>dr|FvawfiWRfDTHnYI5 zNqaoB*Hyv;bPR>w(?@%=7qo$m@U?n$5kw|fpO}s%C~H3@de81j+vO(;VEl-Op@Vi> zjLu13n_ZmBeh?uSQz8S|I#an7Z|i+uQb%k=Rhr#DrF`}0V8_YCA0?)fOXKgxA4lpT z>Q9t7gl%sVvY#^n{{$2uQlf6|S2$L)N<1EHq1rjnG}je$GV?F;9{FT%6q-uS@(bwAa?+%tl>?NmpA5Xt0EQU zaD7bjhg}&T$4R3i?}MRagc-t@{yLi^ZU%S{v|!)47wKE|PRJ~)$6U<+B3`N~XjR^M zC^x_pPC(kq+(;Z+1crRNk^j^uR9P1e8!?cxFIu@F6OlOvz$EsHe!xp|B+zh>s)4dM zo}m)(U87DBj3TJyjo|isz?}9 zYZ&IUdBMq@Z>)4rZ_)e8BiE#XsMVnMoBRxtz6Zc)w)PYEHQhD*QXpF)^F%C5w?Nmd za^NLKc)UJ-*VJG>NI(}YZg6$x7$qcxZo0fQdo``|{(()XDiyLI`~{-fPlR89X63p_j=KKs(`QYMaY-Q8S%!Ib2hn!2bud_mXAh|$d$$6)v%D1(CW6G zBUY&ai!OWyD<&Si;eEtW;G%^WR+sZfXbDl-E>ZbkoeIjK1?3j`-bXWOxPId>VS#KO z6>ANjSeuX4D6lth)$>(n$D3CngCq{2Yq0cvUOgiZb8^PdeH{fU6wMg5%ljLGnhmpJ zoRzt?+CAaihp8h^r|H^TUSn%=ySyNr_V%jtE-8^{*A(4DpAG#un>4g$Rn#H+oHH5^ zOOY)><9ykY2oBKjD8zQmhkS0mm?;1@>->SMe>iqC>A^2FZ`nInWVaI#Tk$Cn{Gd?W5X#F#c0mC>z@=isO# zb~@aZjMnOvM@`*RD@EQO@!eI-+tx#mp_6Bu(s#JY*7~!o)Ls|?@p+9nlVlO&V03Ge z!y}>1yRA6x%kfb*QMS`Amyoemn#?|xH%a&odwnK$WKv+U8hC3lBB5FhTFlQSzGO%g zA=;4e`q&0splikD$bQISO-c2X&VS$-o*q>V389LQA82c^f>HwBC2n|(zg+5utl%6f z-^dH{&~f53#QrbaX{ili%`tbgtA55iB*9=J>xj`_E_|FlnQR<{28g0;tyU4h`_huC zY91eacu6>Y0RoLjHrT&-knE!9Q(b2ptd&bB3ky?5>TiQN@#mzR;}Q7(<{)9+}ewjZ4EYs7cU>C?$oT8>ts69;r|L5+&K?oC4p$eW!$(RONk3js#L4?5nqF|0qV zv%7=BiRPh?Xl%aYY^_X7y^PY{e6xj`GMui^j*n0S#GH4qGEJa#LVJ?1=5&1zKRB%zGwJakWp+Ur1z6^~1dLJgU_O;x+CiQa zND`0>gKq^G+&@Vo+cW3o`D>1EgM9n^38~vpmz-=s5WPWKwc7cad!C}Um75h^^hlRX z0NTL)>qByetas4buKz@wamiB`QddtVP4SJwwoQ$(3_;fi*wj37s`x-V;=xyvace%! zTYW@b3|;LdZ3wE+fL@Xa3GOo>m&;_L`#(0f+$XEnEjH(n8F5Vh2XMp>*J{o1R{#A% zuyo8msL76T+}Hs&Ow%dU^2e6($!LEH%|0ehl8b!T6api^#cnIAsUNx1Ky|_p;QdV` z?a#`KdOJ$IaUJ)-^4kLa*=0fdHIwcN0C{|w3W2EAD`Rl?mDSJdJJySQ}l3v5l;8l4&F&sLD?VpiGCA9)Y>0$cIqS*u1MM>37w?Ec$d9p=_c;d?K zWQv)(x|ZM2o(uov@Lt34ks(K1w!fsxEG{C1!e#;FvMv!HVNPngF(K%RPWfmUzH2W2 zMn34GMp|NMz-*+!@4F+q*>7U_nW8|7BW?50VTy|*i7p}ovL(>HvEqJ3>swAK#pPrW zlgN3W-)sH-Ob0-Zt}Eps916!vIkqeh4lF5bUz%YpF$wQK81LrdWxah@7~a=?DVjgI z#~|?*yXo-@KP!VTnD?pDJL5W=&>1f3!~JAJf>j)a$L|pSouWhd-Dv4i9iQqulw*;5 z(fe)Y@wH9u4m&mB9ZaN8-~seHOR@Ly^vq9GRQ>FO`79b>j$L2vQV<4e3aMVs zxi1CHUK6TUJPt{|uh{A}C?v|_r()4mf~8bDC8wjC zS*Q@*#m1A5l79MfM1<#&chdc~~EX55aOVw6x%jW>JIYSFFDwJZRy>sREh zFVA~*him%>PbUSanMdnO0lmw5<_-N{GUbxYGFxwzk^;k4IqM&0!AI%Kk&dka942&f z3@VkS$78Yu#l7Ex_h9#sK?i>dIwZ@SUeK1~bz`n|*FsKUy9Xbz;0)YdesrGlnp8Lr zPiQdlUMkevk}axXpw4s@(TAi77A1M=re&pnC^$dQ4T%wLHUM!ztH^teTa)Ak!(L`s z))L0}T@h%KaA^`?wFw>GFa4|M9bS~`!P0U%y(VSM$= z^2ttYHsnc3sKP_85_vLxR}$gXx)b5m((P-JFm3FuG_=K_t^3F1Q~B=_joA0h=+n)K zrvIjTA3*`0LAzah#^7tmQfIni9zT^&m0sv2&e$&HvNjv+2N_ww_jEyNrzgvqQ$Pf4 znqQm{r|&lA5BTsht;)>!(;~0=W4-)3@MvYWug}OL%x6!oP`u8!&mQwMzH}oMH%$}Wd=fI8)wU}>YH@N z+}WKwDseoR*A_yNh_=SCa~-tlHZULLj&rTwV_F~=nuE)(nrd)@O|M)VZ%6dMwwCyg|ZtK)Q{2xCBncaAE(Hk@E zjA>1YKkb{O)(}TqWb!iB`A(#*)$kz&Qt4HXny~fofGc5Qr;Fn4%V}8T9bfL7BBEqE zF}ibWN*hq4CD!b2=b(+fvE<%`2axpNa{wi|1Qf6P2F*W>a6+f{)GbqQsYk zQna{H;z#ouQPz7fs)>X8vUTgel}$oaCHb@+UJuoaQ|q1%5xKv>mpPfL(#|axwFy&% zgq7706ZO{uqB`fheYemFUbp6U25e5(dDnN$DDp#EcFe5 zigVBiiJ8yIQ2bv7>2@}+0(I(sUcESf<#VQeQh4%(*dk_E4=sX`&_p?P*84ub(BtI0 z**12`(G2#9%`9i!xA=|(<=Qg47R8^&73~c#M%9Kw7q>cQKZVaQU!o-(>+eBf`I7GA44f3+#A+iQHlJqX8bTXS&I?BdV zJu@Rzq0RbW))|eW!d3#!3s)8`qdM`=(Hx@{zcM5Qq3P(qrkx)Wm93p>56aZ29m>uZ ziW~01o7eR|MelJYoPHBF+5v7Q_CoQh095~;&`hqepgBLu^UWw$Xq1ob zY$GytXSt3Fcnu-*XK#dCMig0uz4;zb@mb7(39t|A%K_CW2|ZsMsfPThf(|2gci9Dv zxGG|4Od9q2j8twe!BjIb^h_CA)GJt4KJbf_^3tcldZ-#87rH=>1h7lfj6uZ5!0pQO zu$H%8vE(wv9!`}uW2%D-0`KDGAcYDzOkTb(hA-d44Gwpu+q6D&F@)B*{vak-_OwT0 z$#1e)QNyLmqo(It7&xE5 z|G+ScQA!yll!w+as30M$p=#$KT%+u6KMj*QqK33Pubh8YQ-5N|0@x8?{Y-wOKYzG1 z^TT=2-v{X-wH(~Bi^$=iog_5Rz?h9CngJ+OxPE@ecsc1n)@RjSD$`s zt;!BgBQP@kYn4hW%9AXJ47?bmhvHw^zKUO9SG`-Ct%JW##R;OzahEDsR?tn1+tp{H zWda+9{!xe6px%tkptql1uHQS!O5x(u*%;^1gBZ-KWC?CVWgJ682ZFyD=Ng_FkWnjV z$2d%%p_yCz=qqU%`~G*)KUU!}pC17GSU0MNN=!^TXu>{``j|3ZM;!vp-;wPJ3*tuQWd= z@$Fq6Q|RunFXLPI6jVb~)Mi1%90`#Ahca{HBVc*GlKsP&wcgGD3%?t3XT*W<)XLM) zeXbxP)qn6fS(lO%tzV$8vI0iomdP|_E2 zXO%05L_%g9ptPbxg&1@k4f$B>(bmMsLgFRl`nAM)wnabHO!x&0xstmaLzPa?9}J{{ zDmIJ$t8h>T$k|w?SCWHUr$h!T6R#e>CDS=7JZPwovLshK_oA5O9@+Nh;B}yEYyQ&} zQg-|r!X#YKIU49}EO7AP*NNuaPvf#kmyqbiKZs`()`$v*dhuA1Wazk*> z+kG1nYi<}I@k3#zfW1x$m(e)PC0rV;jK-x7rZN{gyY4`zm6!SVn|BsB2I1f$l zPCp0vy#^Q0Uqu3C0;UM`cRRJ9vS~A0Hd1UlxLW9k%nT-1d!maSh+1(ll0K@O39>Lp zLe*gs!o|><889Zz!V|dCp_52Qeo-asyQ8um9UAg2puS$S8P9kuy@^&B9-SgF6$-KV z2K^t@|8VhBes}o?*^G57J2WRfy9-V`gMSKgzWGaPIOkOC!4Kl*iT4>wGiz|nltC>3 zi?&q>wl-)SG5@VAgl1BL%G%{1JF{2wAD^i#0RE>2F?h0czOKv9H)de+Jib=`>&UT| z!rzx&nfLZAyolB14j7Dk4(^?bl$$W`9!PW@9y$2OC@}D7Jk6&mYERIUcUoQ@kcg!n ztYjqjncbPXjrlfJZ1SpPhfV**l(8}W6^)~hAFiuqRkBk8gXv$v+bx?>#?nX7>+yjA z-pw%~UL$1iqh?H7Ng2xfdV~Y*A<)BlI;GSn5`qz~=1l4{QzD*A-<8Kd8;Oq#l|Vb3 z&1|N<1D6Ap^=?OQ*7hls)u1CB{=p}0J4UZ7yDg{mjCZ>guNl%+*lYyQN-y?KoCZ`` z`rh+0w^gotse_^7t9>B<(`JtIBK={QQMvVSxId^VckzsY@C3?~NqP z;F1pWjsIzUsN;uF8KVppV5Xq$0%C>-TzVmB$Ps!dreq+S2L*dqVtyWZ77r;TQHDLo z99niL5o!fqcsLy>kW#foN)igt zOoU40!Ab$dhDQKKaZxjZhQ(ISh8JE<*Yxi-n82z|bn%PFdZz<&PjDcGipCaTbf^;J84vk_CR3V$pFt-`Ae= zKk{$7`#Wz$lvD8ks_8{UEe5ZD$r@p8OaL7mhhGsKHcnMD9apWMv0c=e9D}8o{9ueU z58rZTy-57WJl7Pk;TnX;?V3rA1|Pm@D6QhR`+J2_az+Wv&A9rJUpl#>I5MDmcD8i*6z(dzfUz-^bY$*d)!p>n?O%K zpYk)0jta%iq`ImQevj%bG&V+KV_ru}X&tfo1pe(#ykxFLS}W1QR&^*Ouh;s?!6)!2 zi#VSg$Mo) zeXW4k|>m6;~^OSI^D= zZ0<<;+fIBkI-R-XxWViXVhbeX1cq!W!%{FQF7I1XF=XD}n=*5EErt^CpkVM6V?6ZW zHq8+mPeI+?c@=JIMYBNlM{U4}zEsc$nM$ICezO6$P$0mI@9IJO4Q1sfXTX0GD&j>l z)wK5^ik?1{z)TJZHYP4o@kq(@VAyO~yqw(wC&+p!ey&-jTcMI z7m%QG8kz;HaAC^X#;p*q7qnK3_wTP~V7;uz>~()aP9zBN7)X*hcNCT34>{uFe**{t5(d73tCNiSJS&fh$|9WDuF=g@*G;cwRL zNsbgKuPeSAYLKPnWBn8E1YB&jCaam0!PeU82AAGKXxXR}++fJ%<0{1Ky-Ec^;bQf> zYPPgm&j=%RUDmX?hf%NbD*HHZ3p^2G3&T;l*-ECv@rx4s*G5Z3rS`(S$E`9b8s-TS zLe>Q%%ev7?HODmHJ0UK#vSY5QW|kKlZ+496>%Ko# zp{Dx+5}zs85U=K!#$LtkYy7V--l+?X&?4Z05nYGizo@Je@5ed#45d(Fg^Q@A);?6$ zrHOv)8Z~|}4XIA{S~AYqmh*H$%>lx^CDODJY?(p>Hcl8qHBs~S>a#$(P@tozYb_@F zkFA!OmLDr03=xg#l1O*88z>|OsXboz-f(o?)qEvp&c)gt3UA6Lb1I#DV@jXpctP9K`X9 zzL_kdC|#vRSR|JGPgWl>!ubj4?G8iy4Jv7~Xo9L%Dpj)ZsR*J;&`IyYu|Fp{+@o&d zEo8i{P}*|@atpwa1*Du7Q3r?$hh(h$)3aEPu0^g#dSr$7%y52sh(o5_;(=v{`|B}L zt_qE?fPE(yv_EC@cF8akRJ_|Il5GzOXm85VoA&47qdTa7(Y)4Nwsa^DXu`V>GK!9_ zI8N5JpH5%Q7w5Ad%boeo&(&yDR$(KnqTE@lVp9k8G%jZi*PPZ{t3oRTJ+{#42uWBR+NY#Jc5JB%p2bgb%39|e)eo36FgP(X= z_!Gw@7@7P_$({FDP0_(zNrzyR)EvVZk(Q0-{j+o`Y%Z>@4EY9{S$D3}RCT}?jvl$F z>J{M9JaoQEjZPLPlo=(`*?AW_ArZ2=I&#p4FjQ(5pco~P8F&N7->6c&1}x+c-iujw z1wv91K2znF{Q4F`u@|H)9ggD{JjJz)nRjp>d#i#k$BNzmWB8n~3a~1rY7o9T{=hh( z_WFLXzHD>s?GSR~gWrLeq5n~#zDB}TyKxijx&3=|UxwfG^?Ky=nj!u!;dN=88eZra zJR>hVsf94+5~U5iOFQ2X@47cAe0}wOuYC6Tit<;h5?C-6o0w|t%LDFRi!W&V8g->d zhjJALwFxVv);>98ggbL6yg|+xHg%>QSnCh&xg`07$j1<)gGe9oF81ofAZAGKBT8(8 z?rHZ~_{;Fq6~`#f(znojS7C=lFKoD}<)03l>5ph#HF`SZeWCu=BH0OS5@K{nLSvJB z2Jube>TtQJ+-XW~Fi>kTupc7%cMIMNAzMwMKTbH(MZYC~JoJA~oDjJ-g3HkLtOiHo zs`02Eg50L2tUlRNF2#f~@`4V(jGjz}3=(Eal3U13g--#W{u0{L?V4j_gFkeenzwhj=e2$ zYJ__L{N-=f>0UhO!H2G5g*{%tSRppqh}DMT*6a!91u9?s(Syoa5z)P+Xe($nIy#Yr zf^ZozB+eitoOn8@+&q+-awI1m+Grbvpf?|UW+d_lwX^$-aGVn+e2>gT?{6#{f)jIM zc9+zaFL}JmR^GAy3{lkI@Hg4zoR&3XqBh|-54TPP^Er+VoB&gDxL=zynfH8!^>swQ zn7448f~t$MmP(mjVoK#Q&K7?b39jRegRQBgTb5Cz{SEI7Rc|B%wFo`KBtfd<4HY@TMNMMat;*k%L2 zxtJ2p${gj{3u?CY5B4^y?MYbKT!zp`M&)!16e}y*_OakFZqGrN7unPVfbeENFUoc> zQ7rTfD>G;FnyJ1$=o~!#td(~X;t%&K1gGS4-IV!%I#B$>De=sEx$2Xdsr2%J9xkR+ z1k=A@vxlhik+4aetc_O@S1RlRORH4m?8QkNHp$eV#JdpOgP0(u_@-2;t~SjZf7A4e zQfQD$;8*5JE1nvogQ;EUX+6m3oZx0-_KKZ`Op@4VVt2gbC%*;#laB5crm+sKRZIXd1+OH@3KsJv?0-bL~!=JE;XFg4Ks zJc7sX@FE7C$$t>AyTTeR2&oy7+Nul27#!byh^UG_BIb(<15oJ|@Tmp3{f3}M^W~2i z=hKg46-SoOjXAY-!p0~)ce-6X)XDDB#=0u2W%7#vO8`*G6uWHve(sAJ*q z)EQNsy}_qij-|SZeOPZn_L;*sZt32x|MgQdWJk^b+(xhY%sc(e7O_p@oUu~&G+~Xs zM?e;xxPl4GQb&}?e|)G@I@aRY9+H2h>LW?NzVfrpql>cLB_<)rBme>RN1+cc9RyM1 z^vb9n(Vyu9Q-Nlqbl+wD55t;p!`&4QxHnfn=ZlsNsL>ysx!u*V@3>F)O*lY4;d;@r zzpuLA31}5ky~Oo*q>$KK;i_ zU8;S3S*gzlI`S?@@L?!ZSCuQ+1E%d6e*F87A=}({Qmd1IqWoM>5S96Tqx zpiS80DMhv}Q7ykgiY??GgpKy#0nEPb$LWaz8q$fq9Gjj~4KRR@B(@Eeu4J${n&%E` zZohmkNs1qdH3Dh9`ZqHjmZ4!@Y8|RilcGi$6NO&RGF7-ysSh0}mW>d#)I@Mjw4_R0 zdOR>7FuY?P6uR?Jj`B&rxUX!mm2XWV!ZQqJ(+J--nKYy|}7lmA2Z3zOF5n>8$ zddNqT^k08Ts*K`KP|nlT7Q8$sv10p%CG<^LtEBu!B#eRHZ@%4{Jg7g_{ql`#ImH;!NEW7P5>vaLP zH>~^_LZ0uGGmbtTbSRnn0a*fBs(ft9zVsM~t)&VH{G`Dx-z|Smm5>BmOA%!n?^@$vhT&eLeJPbN4_GJsoHNq+*&5QydA4@+!7^>r&|i_ zQo;bn?1VTmLy94^PuO#vYz|d~ND3$G!d7d*@>01z)fff-X~CMtkf00|FKPjH4#eH` z3Ru2vdyvOPFS5=zyBK&R+E=G~eeA6KUK#%!JgK@9*1zPV7AXFB+s1^RgP{dya^Or1 zxQ&djvijkf8qICCPtb5%ajl>zj@S(_cfht@60xm0s`rqvZW z5bCspAuLS~6F&v9o5a0ssIXp|RO^2yprLt6Q!g(O-9;(O+isY7B63rwkga^z%~F*@ z>t8$@qkApa{7TKHU`Woqmh)=^-PEAU$8YLL^F2lG;RpLRXRotQtrH`kG4x5lE4?V* zp(lkXQ(o<1#f;_4bCfPihQu{$;h>TW{2G;JFuh@i*Q5t-1bIka*`-_oQrk&9`u0{? z<3+l>rCsu4RDIPO%OAG2IPGQ$ZiihDVhmDm7|79JJch?G>DPm{Iga3X;uR_l;)&U* ze;S()B!Mh<%;l_Ni^S!z$w zWxwNdIiV2pG_3d&C_GLc_!B2$%8+hw-e_qX)9e9lP<8Iv?r%_7Gf0kN1%^~gs--pF24ttqF}FyV)ED(eRZNP?ZB--E zEQi{>&7Lwx$Po8IWCiNiJ!Brz1?kK0E`WzOtjyh9WrKqlNAZP$(6l8rF8lT;Cc9MQ zu(=GJl_>x8F_758c2htIj+jCp?WwG~fWKjeDj8M9%eqk4SeY`-xHdoRK0zhnTW; z_o~wHj6=0-GGrrw5Aft<3! zYL9ziR#9&y?oHt^(L|dHw-niY@n|gAC$vJ^Oc^N&9EXz@13i{;7J9^v z=F;YAh&Fa*?PcIU^$ZhM72?UCNa7k`h6-!PNho@(!PPoCVB2DNKWNb0;qS$retxGxcbV;6oON@%q z_NgX-4zq{hQ14yhEt8%zo9OsVA(W;FtSgEw7)FceUXdUj(tKW$l#I1OEefnzey%9C_VGQAB8Dm z4Y~-liom&B(*5|#q?ob;&j7lTdM6{&kaR|POE2Y;W2X`Cl z%H1U#)5p-w^z{2kQp1DdL*`rxHun?XT(phr>%F=b^2+Xa5cuqWW@N6eyKGb+PP=m| zuBNGOdimy{GyKZPl6OECn&>kS;48%i@A(Hs_}cMYG_S{1sB@_@L*RefV89L_gf4Fm z#N;*TgT09`LLI0=aWEA}R|VgzH!xXJiozc^SvTpq(5rkVx!;Zbjys4Tx9jqm@HBrb zGI$hkep(zI4JnTNzHJTFKKz4DrVd@fb;Ro;iy`}>|BLXd0q zSO@h&R6YL=*^fp6vBQg1%31f3jR-Uo5S~P~htHw}To(UFY&t?x06FHz>@?sY% zQJn--1fuEWv^$3XGS^SX6k9&LtEH^RC7$)oEU~{MOR?qqXP439$fmPt{=Y7WS#iZi z_G1DYp4)-IlY&`??vNMn6cSvLT?wG!{Gk!KH0*OBgSsI$z~v%#R>aTjK_GG-w6ryCT70bdHQ zw{)mWYP!;hzpBK;2~2hY5lIXvliDP*?xK^5e~qM;B;<#K=O`t;?n_|{<(^n>MK}v4 zMB@S;HR(9evjh*(+lSh&3|}9<6TmeJ1xv`DG=5TG&9Peu997>Z^2dD9O!{^aJFy24 zmSej&hUO>Fi(T0YEWwplA>0))%GU(!2GU;d9{Di(zm&->O8xjiwT3*13>bcCUOm(x zLai1I3#vVPAX@=SW{TgC+k{CEMYDq_IOFoejGN&%;1}ozS%L~RCd=HxMbR^bFi`88 z4i(SKUKTn+Ds}$FqQ9gZP#__~ga0>nsaHU#(kz#9)(PPeT9H95;H(Cty*dFEe6im&50RC=#Qc_kux;)`Oe?>^Lx{ZU!`;qhv2B9SR>!hL(}S2@#VWR`K}!7 zM~W5zk99G?g0016rV3KT4598HRTge}pDWcfwL~$Hjg5#*0OhASfrJQ8k9F^%BI)_E zvHpRgbcxj&RdTf%#-OuY@Yi5UR(aN1UmAJbN<@$Xhqa9&K_tj6Jvd*aR=5SSp+m+V z1pZ@=YO)Ags1$!0Im&1l(pp}X4Dcpt|AuvpOJRmLeTo>TKw{z>Ry|bAn^LRX8oZKa zPRBuFXZNSqz(-b|0HyQGKS;lngJ(~ZEbuVh7MU8$E1^%ZcWk`H+|L)dxwu^$=T0m=4{FPmz#%ADa04Zz>|nw#8ap&^ zBeE>vM@!^2t=$4jXS_=xl9A*9K9|{3a|%KoCs}Cdjy9=@lpr1ngQ3^x7~%QK-b|}l z>D0GTv(c`WbaWwhtZDo)j&Sh65>PP|rxIg(+pmNIRi*+Wa^68gzw{al&~ zi8P+yMxF{u=1|zWb6Iq3Pb#H`Xx;N-ka15-*h953EBl@UniIO5fg@%nQ{GK#%#y8N zP>}bk=s|Ow^^<)8PJ{DP@{2>MXVxj=1g6)}CT#Z#)TvxPMR2Qd?;dSl6$*o$L6d(i zB&=Hlm`c@>q#GEU^tWI{DlifRvff=7+>K86_15UXs=Gtm6#Kd{B=)B*;25HM$z(t}lp)HSce(@a%CcTIX9FR&RSsF;yVSBDsvKkA2KOYtp zQie>*(pvQ$g^8=ONOYT>=q8GbpfCDfX(&hIls`9Mi9Yd)lbwR;01cE*&2jfq^v8I| zp;`-kS^>f`+FDuBdFtW1_^=A3@|%qCmLh|ACWKa4Hv%KkjXDU58I z`{bXnp=j;+Fqh3&ppr460yV#5BB~+gHCY9-9c|pMoD7gIDWG{_;sMM4fUNkAuUly? za((tApVb2yubG`AG*mJQ*x7IgYzO)hhf+f)KB!; zlhcF}WD4A$y@=KTSQ$+4+J`x6B@|5uTN=$#hc&4cUiSx*1ZBWZ7|?CPqE_KMngcP| zi9@j){alMqQWiOqvLY){glU5xr%>?5DV$@^8DucuCV4dW5%mjPufW{xyBuEg)ha}o z>`Mh;*g(_~hO#xG?t6hBhNVHEhoD-)TTlq^!wzG|MTb_O z$XyVkxfRWaD>Zko*zA~+Q(-!e`^Q?r5#5xjU-DqXoxhoXTC5`PCYA~=S!nswU`HmnnaO1JuQXv}_D~Md5!)X&I!&>Jotx z9olqRb!QRaw{JW|`STpv`VZLz2E1trs$XQE5Q6UtCuoJm5=(K@AwSQ-;ED+*Xa!k@ z`H9D_^dnEh$b7^mR-l|o!I&O3J*~C}9=kZA2;FxOs#Qa*UQ6^=>eru>uEgUM1_s2O zKb`mRPl$Yjh2B`v>+ihicWWQ;$2Z#>9B&DuWCZS4B?g$LRx=LMcMOkDpqKO--$`%i ziRjOuhq$&k=36(NTR)JM<-j4}K>j;KU0wM9ck}<9puewH7B2QC4$S}WMlk<>Bf$S! zVSGQsfaG>N@!xHLeNdr;g3z`?fS~qc?T-Nx}85p7hglsSb|;dqIDRe-f=+xiWAiQi|T5< zm|{=bR~n|NAUL0Aix@qe@lQ`5PN@!4vYf{Km$i!6ScKs*R?6(Ga&;4B07=AON?N*> z-){0#@X}gHuATJrbAa;tT4&7sKoJryhkvEjz1Y}5gCNLaH^=D6c~bxu17J=;-`QYV zb?iVCzWeEPAR7T4XM@)_je+T6!5P-xoqp3YdGH{%|3J4|POqzZRBFGU)Hb z?`W1^OFn6M)=3VoaEk_opu6y4$8jep*T8dLKl&HW9A$H_N_U!2rW)*g6GcN|m-xbP zEMxBnTM|6DDX~i&r%Q}69eufpK^ynO#vrr`be73xOi(V57lal+D+ZR9nM(ZA6PMJ@ znEjjxeUccyB={JIf``v;O5T(N>+aZ(b1b}HBBoqN@a9iwedLNoV>BaVU>d;3UdYNIM>2uOfnv5CQWOg^S)85?~Y@zM4}MfMSwOe zJc;V!8in@fK5wt2g67w_Zve?n%)%WO=eoi%ocb^Xspr0MBYbB|O=4os<|F2@#0&=O zK+X(7qGD_=PYkTXrg3qHF|!w1it2eZfhDa2>@^s}Rr)mqygM{TN}GqB7ItrsS$2w8 zZ1)99zaI!RD~MvQCg(Q|@OZf)f?TkW|`W zvxLj8q~)+BftKf|x~|q#w;3$BAA*xDl1M4lc?EcSNup^?lzi(I=`Ps4nMV!Ww(dWw zV|uvMqGrUI7(F&a68>^Mlp$zeFDT5u2`($Wi=h&U;f!QBPh4P@%+Q0s4Y)zPN)&Tx$&HhJc?ryV&`MrH+ZGOl<`9 zkRxo_eUaIab4~vMcsFp~f78GbL#h6#xWkLrfq7{`>30bUdfmT9tYY5HyIU~6kz32* zWe?BW(p66oGmZrpFzP|*6G<#9IfZvp8x!fCv~c{DkjywK31}s1Ybc%>-Z3CHoei3M zd?#cIA?`A_?|)rJG(Q`rHV#y+g@^uKG-5paifSDpQK}!pk4|#~;Z?zmpiO){U6%wV zPb1xO{7#Mnc8Sc?Mv0gGNx zRU*pwXOc+xPI@O)I4Eu4{3<_8v2;){>qksluZRW@*vZ z&+|e2)0Z7+rOpRhGQb|*=H84?m7U@{_|bS7x7rVkZ7IImyhC&7C=Y;OfVUG~sJ4v? z>({)w18RoujgE7lc0WP2klc3(GR}ipi|$2>fk(_gsF%4I1lQRjx&33>u1v%l)5PXI zFq;QO3l17AZl{(tsz`HR(JZAl)P&-HP?zr7-lKzIsOkWLJ&omQ7+(1&`i52|yY9LG zC0}pN8^E;cQrp!J4Lq0?(2THbF(w_um(KgD zRxpgnf_$jg9@G1x#n`$_=(Rp_gTO8BZ~$Zxzz^s7Mas}W;2W91d|}$Iv-#Ldb6*t% zV30!;>`(#g?&4n=gT8@86QZ+e@p*uChFRggZ^YkvZ`Cx~fI&TF>&EIG{&I|A{2H`s z2mfO?ofuTUfynXTApPqv)r-mk?yp5*GYnEGi_DH3iR`dvU|VhBO7pr4{x5V>XiM@H zAJe}))IvO4AbfhW1T-Ftker2yo$3v#4RIr%m1IW2G}4RF8k-n*MfzY#P1>FD}k>qVcc;8Z=vJ*&3k+>(q^9`(3R&JWkFK9uooJ?UoPJqh4-7R@q!TtIpj zi5o|UCiB2+Jsk{!sKkSeKDb97p%4(_Qu`94A^SISbNCJ%<$szm75PQ&u)(qVZczPV z$xwQGln4t?$)a26#qql>q~VnEHsQ*=PZSj)GkqRuHNUZ3eYh2CJ(9p{s{g_uNk>ep z_Q2hkwpwQ|Hp~NB*cuZm<*cbC=hTQzYBgOF+iSE0K0H!6FBfb`SWT5S*{lP@VkDVR zbK^y+0{_m@-q7$uTGiCmci7zI%vDxkTkk_jCluM81x9FdFBz223I9Y%8lwnjpz^Wq z@}A9p2gaVC*}SAvh2-ofV`J;aS7;|TcQs-To%|dz* zm`#jdbxt&^TFswnZ;7)LWWYwz4nRIc+15SKntWL&leaqiyH)dLvdhtRaU0iTnVIvB zE)w8g;ztSfrW3D+bc=1j8FU@K#1jWr#uWkIq1ILBY2m@Rxl;PA7e@B$57EKO3KL2n zS>k(B03*#FFnunZw?if!=`H6#^PCH+^|ML2Lr6$u;}e^9Q|UlR7SI!+Yc$ns>9X58 z^R16zFkNG+ExdIQW9+_&&WsQ_U0XZj{QjNxXoqj^`9}UZxM|?r+wo@970DG4YZdl) ze^5|vW}6fd?AN$L=YGy7awud|*Vl%OhA{Rn#~&k22%-t$TVkG>zdDq2=+!}P%kF

    #i zs6ku)Ik|ajDFhIhxFyILE<{uT86<)AG~>y>6Yx&(0_n)cplJ8JLM8T=9e=Jj-nF~K zE-86%Hmc^*#QfkpI6KE^-l^#fd#UBEq8jzJD8t8JC);`?B!P8Bb}ig2d3>6<^8U6* zEYxEMC#M$t6cRj*D_qvqxg1*(u#M$8#+hS5E+C@(1yk70bXn8AKj2&QNb7qNvB8ay ztnU(%LnOe62=W(vdi-JS6WeGTHWS7w_$CaLLN-rOj?F~Z#h9!4>P&jM#m7ml%#3t< zqOSHx1TN#)4O_sJP|WyGY_X~ScGF%I9fmnH&}IFB2tI0VxW7w`CTwc9fu9Emlp1Ak zH>o%P0}4HCXIuVN@*%#swA3YWl&HirZrcjKs<=eelR3b&epcL#$kj5h7{-BMb4ZVt zI2KguU5YzRTn33Ie1|E;#{fq|1Lj98w(P z@l&~Ek{QgoigE=kjL;G@wd5Eca3@R?M2wS?N_K@Tb z{YlN|tOf^W!dgMk@lB+b4iE?7@R}P2{4D)Yiso1sH7qR1$X0S*JIL(8PLG3o`M+dy zkS4Er=V#!`_43!E+%1uWzD63?E(*?m{+0vs+u4(m27#SrlLukB@u}`qDtM^NY#kUw@K5z_MCb+$V(R&>lH^QO?ofj->!&1BYFjkfVkd;QVb8A=oeR*duWH#8o_B8e=8m z>Sx)P3=_6{B)N}2elK@HaFV!=t&?=Lo>5H@_~bfYDGgb`g*+C;rmM!iO$D|T>>@hN zaqg2oWq=%GgZPOUoGbMh$sumy+tP=-F;joNnl1I)j^C;r&ruEV@~$LCJoYVbZrzFP zx~_&JOE5(f8Afgh)x??R_uTf}8LYtf4aHR{3_`N(<`yD8<*N`(AWGa7w!u%+Odhu0 zm-{d?`Od%|)!VX&1;@C(t)T{%f}*cEt4VZ?4SJaFPzDRuc>7H7=mkP-bS7dl5KBJ+n8nP<3E|#WD9SQ zh#JX0Kj4s8ADhY${p0;_T$`Zqp_c#1J@<5E;dg(CbgP}ll5w=qA|nSkQU6M3>RvYP z%WkcO*%l=C9tK|iX8OG#cZwwPN}%e1VFlcpiW7D&Y9?E=qboT9?aam^AJ{Ujeu&WX zONHKkK@5=W?lXOQAjO}-{IB3L@F~(d|Yphvu$69vh zM8#D-KjHBe>T*unD#+56*_^+@t6~&bTck?g7=96J+tgy})dS(2GQK3>CFMd@;g6FZ zsq*M-{+>I)&l(jv%v4jh_lJr>b2|y)w@H$8ESaEg(vnaW9mnk5A=~y9oi_(&#HV6N z-O<@A%S1;nuggW~*L6-`jj%2FYf`rO3;cBO1(hFrj;RsNFB8AInx4rOeW6&1{Bcq9 zCPqn9n6LO!w>ueL+ZJwhX)F#yGDwpgPrGzB+=$6X*Hx8aF_ZP5E-0#%Oh)r$8Gq3* zZY!XZt(j#$tW}!EmmGW{4!st^7Uk}CxixWUR*;t&^kX*}AX@F`SfFP%sG|*4ukoxJ zS#8qFQtk~K*Qz8oA27RAVGN$67i9p|wAa6n;1$k&T8u3*oBY~}lHqR4SbAh@WM6hL zpWtlK+IPKU|CXogbHH9s-7?||SgEbnWw=&7MxNwWaiTwkl{u8=$P=$h6fyQ^ZEX+~ zC-nqYwsayXmD-JWoqJhxLP;nxXrsHJ`1^}L)eQLDmRLFO+}~;{?fX8NORNtuVY-4V z3c5}EU(CUj0F!urOia$}(j!(UPiDWagmhb&O}trqiXXxZG1K|m+s4gpehaf$m10|o zs@!q3cJ0&`%QPwpT!COAi)cUHm+WRziHuN$(LMt`o57B>#zVdNJC7BFbrPW5i#aJW zM6en|z`Eh2HG|f>+tqjGG_S~UMPEJ%V|2cX?+hChenfDFg3Gkce9>K&NY%+H&2>8+ ze~T?7CFuo<%i!E}vMDA&PO7g`+5hvRxQ5hIn4g#(v114-E2PoYN_1fI*l$+$pt80J zL=d8tTZe6{&z>v&)R+Bb4#(T?j@scjtO;xcqu!&AI(M?+b<3J7!HN~o>uFN$U6K!2 zWB+-uh2Ga-ldCRh)1vIcchj6AaaOcKy}71wO38|Or8zO*6#Z!aIiN~A_$&q7UJw~0 z#O-PTwj04zhd00)WkgYT$*`h&I>!UE*=|=BRpZm##?GeQ?-bW)lpEXaEu*TDo!~4yB5E}RW{SjYnL-*r7+mdI_^4CS0X90zp}@rWSn5;YFpyXsT3k!-A*}2}R1-Lc5iVe}I(n z{RbT`2DH${oBtS>Owy+b3X0fJfZrSys;Flksg>D-jypsGiZ-Gbq`r2 z(6o0YYhFAKw_Z}fTjiI*ERf;CskEr07IE54wY?k2xjNklSCt%NR9)`Ke(a}NBZwUz zE`l&kq@0;hBg3hQ*<4}^Q^5OsIYo8a~qvn572LhVv-kn z|1&m!mhA2RMOc?oa}AqUoX&2aC2*NMeU2mJPiZ_m=Dtszk6FKqFQdN5HCy#ZVP4wJ zgEN@RqU;=k?Pg-|l<)Y*qAC+RK3C@m;MP{A=U4L`eSDZ-hcdC*UP`0!}OL*7o8>?8UuJE8W3NKwzx zT5^f1#}qr8`IJ?+3UU$ou4cRK3B%A71~@+?7A$-Qn6ib}6$Uv@tfu%KJVot!yg$#V zE40F#Xw?!>#~9N2yK2hBfEQOZMYTwy0c{SJ4?^!u;dvmd=0yHeUUpq2VWd>!U)JVr zV_q1NW&o!k)(>OmjYRDYUYZ=pjA6POO*jY+1L;&O7FJI*gwadcT5S&};Ewm-Au$Lq z4SADXtzjIj4f+oHn}1S6OkxU310%hr7l^Oh317o60=URv(gv+Iw)w_~>|ke^v#)U5 zC5pRT@RUzHk_Ftv9j~YGwjtPM6@kjV#O@Fi|Kj_IXeQM>cB#CS2Ic}kT!GA;QO&Xw zY!aWyGB3MFW6b@t?T4*XD7&Gcvj6N>U1nm$?KhK_+kDEiq;%Vej-9p%q@ z0ucGbl!qH%((j(PM~VnGi?^TKQS@x&j*w^h>JG{5lVA38gJFCni+b1&-%)< zp}mauoeK+|$|oVI!&b1sbodsJz!}Px#hS!tH)KTKQ=0e>?#gd}%NNRYdru&keSr;Q zxv<)9-h2+Le&+eV+rQcaEbR-G`}xZ67`|vt0qEhVUy?Aiy|*h&NLh1J{&;CWX(6mh zh)1Do{M-JCp}iQ~ zQK~Nk%|wLcV-@^F!a3wg?^iq9;rxPaDarO;e@h$adK_V~X}SIL1%~}bpu+oIYa)5m zR+!2s3Uq{lvE1p-&}f8Eb3hV8v4Zf|hN^oYSH9sR3Mt(wZ|7r?I3y#8oW1k_rma`+ zLH?ec-9@DW&=bdkv4F9LYUa5o4Q1+*d=lKcDBPj03rHw7kTeFOpogwE;CCB#|er9Vrh%fL2D`cxj{HK0luZkA*;b$}j zq6+EhvC^jt=k4Qm{F)_O(RODjY-lSkdjBadRXKCXFt4QG`#V;>>YkYgtD9x9G@QdZ z2UO$SaTC3&k%pL!WN-y1;-Rz2wq|3bsJUfNsS z;HAnz`3z_b7plg>P?jGrOzJU1hY%m6Cr!RY32k~YY)XfWV~8El7pvo$o$<1wptQkDl>c9u46XhLWgnB1dv*@8e@(wGruz*BObcYCJ zCL9#xo)XLuIL(aV1GI6&C)lYgt>s73Wnul-7sH@fG2^!h9Vx+xSMNDKN7zAmGmopJ zD;DfrN!=+{B?x!Z<4jEw&8M3f(SL!BM?Q^RM*)_^UM@QF_Xln}J-l)#lPz}~z-(-6 z#q&@dkc3C+?w)N-W;Mmree{&oDzDjaM{)Xmk(ZF0M zDjbx}AXFioKsh>2tAQM>g+6Z)+%SRO^7#5b24W8V__C>n7jA&-B~2V5`uS`@=EESX zxVB2wZ6|J*P?ze5EZ87U-xeD;WJ<~Tz|QG2d99J5qs55aK3=I%x_0_cZVAV!(25{9 zj3Yr*Ya^OtP|!QUx*o-|V4uof9c6cdND*KVa=$27O$FDxPuZ3f%!P>XJoVG#6`)W2 z?{0}o=v#@@46W?8pZ*9zQieV%eQ&~eV(yfYIQ4zBr2T}Z^u*YEDsD^sB&|||LG!n7 z9V-~mb>dV(l%Qi-7A}R*2b~UuApVP?u#iIEM9#09e;OaOp%R7(We9`^&xFytIQ|l!O(EX0t`yk;*LJM?{q- zjb*R<1>V{*E_*; zU9xJulgSe)i6=orEJ^NbliW(Ml&JYgtuHCT~7U^Er3%!x2<36vruqvMt-{ z{h=_a#Ueuo^_?9a97Npl=NW0|4!;DUqv+oXk^e zgap)BDGZh9tk^Tq88J{q&^EUWZ>O#nE>~jd7Ma2Pc_Md%_%xO|ccIh%+EjN zAR8@I3f{LFh-{~R&NVQ>_b2b{Nbi@22p#ol&u8zU7dp12dvsUk?Srw_3bzWug`^P| z*X7E$fLyD+)?MVzY9$|jmtbh&X$s{ANBl61_5lae{G zwQP>M!F<#q#*eq(N^=)wRbPa7j^s;5Gpbq}8UQ~v3~8L^=g>Gs3d34cuvH|jp#Quh zC1{nl#JVy;wH(JV)>9^EH!WH~g{~fQg1f7j2~(leMU_=bT84~DZ|Rr+wGBzY61ndV zMvE?ng-%Y9#ZV%mC1(k8K4R)1>+AqbO85h2rMEn$$5C(34G#YXk6f9)Mq!28#DyS2 zIZc+=1l$>0oD>_RM;2JVlD0x$7=)z;xh^ynzG)m4AII8?i(&z?hroQ4m1t~>n+A@f z_dBH4st`4Ul?yyw+0%zF8dwU*)ubXsESj=n0|g%nU+^Rcbx%RXF{C{e54tFK?s8jP z__#0i6Cc_tmvOl;iFonCI4 z?|!q_8=IC6-V4oC3EhWS@4u;O^|6FLDvWDv$yDxUT{Is&4P8PFmIU2@^?!Aj7Y3No zVMlr?@K)2H>73adU&@phFG~chHCB;p+4cA-1!+CRXGd)EW;M&AL$GYs9X$CnxgAIH z>0V5lU5m?!@td`s6$UB>X1NAT1C!dR)s*p;<1d-_;njX`ww`7MFo*{;|D_<`)7h`Z zn_~(iUV)j*dD<%vSs)k>?5PqC<-Pt(Tt}?~=^5KNTBy+#RB-TzPx-FV5tg!<&f|XR zS0jUCjVU5ID@A-?lo#w(Mh)3(w~pFp7!K)D%qNFih>&ax8NDv&I57mJU_)f=KRH)M zT$6)mwF9edCU`1hrY-oztuboUJIZc);-@{ULDR8PYc z1cSua^pXHHkH^YD^|Sh6UQ1^iibc@Lj8Dv1;-djxybqPwS00QUv~ z?X}|jk{_?QA9G{=Vl#dy5}^Eu0_EQvjSj_>Il}@3fudO(KZQ4>pJRRZG=v9!5|aE| zCm3VZ?{%@VP^D2h69J4OgbwM(IHc8*r2Tmmo@HZNVWy~lQ#Zg2Am4)C4p%9zfKogV z+(`jRL0&K?oVf;FQdyZ_-}c=Vk*#!^Bx?qPN{~;mJ3D!^hH2Dqim;p(Ezp?BAS5tJ zIFT-%Su(%y2Z)QN^1*f7g~7qUeFxIM-%MSEDa7ft*^zv|W{HEeArJKmT^7%_w6V1D zc&DD3Z||b`LjWjX4UGD|G*P7@JWqT0aM~ht{WeKVz2HWGDH0+&;UDGi0O_otoEI(J z6~DqvzxOFt=NIGTtPo@j2307sA5m<|5pb~upGhcz#n6p#P%)Rmno4z}?zY+9;u8hN zEYkumfGu^X!*Bdbt6rMgr$tdBkt;dzkeOSOP0+J7{x4gaRJ9lTn?d1ddRpl$nxBTk zxRKj)s!vo^5PeO>FD1A!taD}`Sq1eCQE0zAAor=!s;R<0iD>*3hlwD>k_$5+3)`oX zcQgSZ2QWnlQA7avapU=3k^o;&tRyTw`7_!(;+ZOh7X!W0u9q0TXcFj zpA^WX%@-)$AFxhN^AQh)Vy4Fcq7a-6go#c_&Frc4e_y&y`mU17HOxHK?Wq*sbzFW1 z&4NpR`n@hXyZ2Kv9%bNpMxtfPG`DoF`(+1bjPCrR!m3 zt6F0{)*83znQWG9JGK>vN3^lac8F34B!};UjQ+TU2SCzNkPs;Ji{B+bcL&3LYu06^ zawbG?o2H1VSIws*H?=T|#tcm7=uW(qYWFF(;G4P=#!Em=E9qj&(MY-XwqX^Ug~t+5 z4V2l#O^b%Ik7Yio` zM|MTB`IxyjVvw~6!joN4Uojpi+#5D5x0sr+FyJG^Eb241W9J7>{TV{^ARD)ubDDu+ z80)qm*rldQ!$cI+#kmq;M&NI3R3EX_9#I+x{c7xj;%y(gb#=aPm#*{WBlS}@Rz$<- zHj&t*zZLJl6CT$j>>+u>sfWxq8?AO5DY4=C>f=dmhHT3H$snWh=gy9@lkVOyLL_;C zc-XiZqi!DsV>AIL$#3fTzYmLKTe&!3!;w~5Sz6P))*4~lRK;cyV%lC!>ti|Keq=h6 zj(JWO%kl#>(j3m$wyvtNWU4_-Ip^>-)e{j&?ai7y)aLEYy*x!VbC8ENqz4)9Pq>1x z0$o&Hp8E7tQEi@+*#sk%)VE2y-Q(bG}epT7#_~g zTIL8h`9T|+AO(5$rqitk8#w+`qFTA$`r#nWXLLZDgUno0s@gDJ;Jbp0?Uue#wE`Pf z7O+bSe8tkYXq~5lmCM73Og@`l4LvF@A98|_u)FHKCtjK1nAX9M82IXv0|!&LOWL^O z`e-VyE5@hiO+$Cd{Cf{j@|&U0)WZRT#nuan?x}f!vuerMyEs8!&}E-TX5*}cwIRRS zpj5&*y9Pn0H&rF!3{!#CF+xliLfFB~NrKudIwd#p<>q7UMv38>!RzkKgKw)+k^#rC z{mqMxF=1Ent|##R$3vYcnjnJ2MzD^07!LZ>)1EEYN-a}R?Mo^YJB!ChFnj}qI39Ye zOE8$w*2Y2K0yHX5ex8H-l!=1vhtwD6#ne3$_rBC7xkq%V_017C`Nhz1Lk(Wv6Gs5n5O|>ug;gTD3eJxT~`Iv^$FtT{=%0wsjf` z{GFg=A@p~L8uLM2T%&%aJj|d>r`1lQFd2AvA7#DP=`TC z#tcs~}SrshmBiYQr0*x`X;^9^NTC6FYkj+U9h&|R0Czx$zvt|Xi(f$h{?!BAWPO@cCO$`gE80D^hNuoQ zMUbsHKz}Rctb}8Q_8Bk$I%W zq76dv&XJcdy=*K1z3F6SA!W)I&ZNrbGsR|>MYmg}0Ul^g$^A@IAFt5H(w&P~D38 z@+6eks!lB8gy#{#@5f2RMb8Ow$FULU2ZkQpr>%7X%_Q)3pW&zBb2~eO{V$0i{-5j2cx4k$499B-ne_1KDD$6x9GWPy)kxqN&%WpVuuHYdY=t!x z^JtR!(4xE5C@(f>Eum?G*}&8Bs=tgRTuc>`LxdlruE#6HDV!`p2FgDHm$1kUD0_pB z_rylA#WJ2$0&Mpx_q{-seG)m0+I+h?WiEUU^zVc2==RJ4tSSSgP|fY|Z~h~!Fpja& zbm284_vJHhAKuTZm3Y&BY``>hRV$onl?t-iR1q+uV7YXrpMf zn52-+BtWU0>;la-FWs3IG+S}X@0&@aY?f}4yIhW9tI{pFPn7VveXJ$H(`nC1t?3PO z_aL35)5d77_e~JHGg9A1Z`|T>B767C`a-oB?82LSY18{z_Di;nheyi$Vag`Qham>e zrgb`WFNfHw*pFAVLPfcIIbdN8xmQM7%yvs8nmC97p4tIa;n3l?YJ_%;*_I1Y)d#~K zCix}HBPC-d-3=x-_iK)$(XVx3q)N~r3aTjut;twfU^!$Cce2@DY7AOIKM%>5JqLF# z092O5qgk7vVl~upHI8TJYOPSBk<7p!(9GD`zUX*yGk zPo%G!L!BGdoZ197if-~4UU32@<6TTX;#4!nnrl9EvC_H&1R=)L1pvHn&<9y&B~E6* zybxN@cgC5T9^i;78|9v1SsHC2Iqc~~+OS-*56KW|YV%RYy5>eU%X#)R`k-=Taq7>N zAn4|E?t$Ohjj&B31}M{8!gvKDMYh!6CVeAGdQho zdbkD?F3=y(x|`r_R4bJ6>*OC$i)4E5`f3S+lN?y3KX|(9E>P?S8!bT=Cps~A+Cpj& zndU~=RX1$ih&ZFkA+SyR19QAqNPyy)2TCErZ6yMZZI4=*ox9g!-9<-6;12hIFjypv4N= z9w!Jmhsj1;1)@*NRNDMp^=v63A|pm89PYX*nK) zQYpYKsQW#I%w@&GBr6LVa(Sd*3Dwxm^e^fT+#oXLXOg11FJi(+?c`Ozqr5zUYgt2d zv?ivFuC?v&NzUchW*cM(`K{lDWO~jhEQNT_Db)6OAvbRK!^ij%;4Hg=K=yGp_myz5 z60%Yv(KFj8WVQt5$+kb>ku=}2nS!91N@?pjTM1deX+y}V!Cf{iVGoJL3@G|RODB%8 zSNNSDKpvXMro?SpD{(UamE>fR1~+ZaZj-rhd09+$lXhhsL~%H~b%g~dj^^0ISf*IP zmKcmEE7kl$yo=Fod2QPo&d!URO_Z|VT4iy2JEhHHkG8?z301b7aEPzTjvOP{r=}R$ z2k=S_hhuhNq$nqr&^8U-#pi_*$jgMCt_GmUyI@z`hcc(2}SP4T#8kNV;aMNe!ZSDA(N2Uq9 zFK&Bg5@pJ#bPA%+-g>4=LDZu0|B-3-o&meo?{$RF=0w6`h za)Y$z9tJ8n?LAt5I&up)FTwqnN$gws-d-cA=?VdAW(hZl46cd9YM03*1+}cLSTj`e zK`{}&6=fDgwX`MLQ!gy+HrC=qS)I0)L%(zel}(WpD@`cl&H(3eby!G`EJY7fkcV+( zdWOtYo)OZ&#`Hi>$hR4*`v<9^^#+H_z0UYC=NLoJZY<)cUwED&;|hBx?XoD)e(M0X zU7Kh88$v=9n^K1R-q>-MPBr3c;4Rea3tobKU|9Sg|s$PQQmkuGCIQ<>M8`^{gZd&+3fZc;_DY-Lw|2+LRHcfKVXIS!to+ zHCsY#ps#je%78jIwY@l~G(8!Oo9PN6ncz5yH~{ro8Dh&7K?AV>Fs1j-OCy$7l4cn; zV;#PQ)gRD2@myuTz9e|jPz%y2M7T7y6$vO|bwG#C;JmMyWUY#*6kh%bbW&IqoQJ>m zz@9g3!8MFq16swPj4Nz1{WxT%Ls%e7Q3frJ!T3U_jS;>ywj`2;kq~PgS z^-*`o;yth%uMm>yYgd@`SX%t5RTlFY`AbhUg?vCAZZdAKN-{mcS<9Za(Hl!9qIb2O zDRC$1P!F(8@9<+(ND8$8^hu{knfQPh51AE0GCjJU%`UbKAYNehIP(FkRd2yGP7oX> z0eZF)5*#bGru4Ne)=?j5CDup4vk~th@@eYGJ?R?omSyoL6^u8EZg{rr6?3TK?6w@K z8&-M6HH7T=XyTrC{es*y+{oQdI00KM6Fh!f^;zXJDf*)LpO5Roxohi*&$*Tcc!KYQ zly4D_nzZB^c-Sz!bQ6`jNeo0L0$7ZdZ}LQ!Ya}TWciv(C_kfzbebRz_Z?RnS1h=PH_%RK zr~eey&S=j4&UNmLqf`%Y2Ig|ZKLcU!7D{b1^KA0(ajHfDy{KI{OoLdSUH7^!eLVBJmhRkmJuF)g7+bDZj- zQGZ^Ju_r4OAq&lWP6}Qr=T{I=3i1Yuw;P7IHowf2ClCa8i+@TGbX4t7ijj0-%4(+T zq496Zo?K`g%c1$lFEmpA3Pt>ZOY8N$D_UPwaH2L0aY z$7rtkoUk?L!%xlT2a}K*;0#tn+|JPu*Bf6@S;_H(vV!u!^h8#?&&nI2=UxjJ;_KP* zKlp~1kWQvI`GJ$j#qclY&NSOq-iV_AGfQC#p&$xJDt$Ncgffs!EY_)#Y3=8iZe^{@ z*}DYBzPO>xT)=TjY`rHZj|jsVzZB5v z=B{>A?X_iRln}VjG$btonF?Aq5?vMuBgOIKDMRZhVLp6PV9*m6s;1ySLpx%}LLr(b zQPDM(>Q^1%X7y_o19eAZH=7iB{Mu0IG)xOCTC40N#gQau zI}-Q7O#1#aRz)G0L&7izfduw1kwa6lflBhqoUe#O>vz&q5fE#mknpcc+!g}E_N1-U zjspJ?D2YzOZHL1h4#J|$6kw>beZ?7@LyetYJ*Sob8pk9mF}|ay{Hx^tK)+|s0>M7c zg9VC8?i)#9Sn>Q{n4EOU`Ck+H(hgF7Q?OX@`;|bJH1Al(xZZNrTGAE0>#o55TV`3( z>P4L#cKV4H_-*+ek1m@nzDYU?etgUe_hyEYv#8c%sGAZ`X4poojvbO_F*eIt&Z?Jx zdR5ETbN)|w@h=1>iOec{y7UIy>%r*Ob^dUEe+2gzad!wb@w*O6_5G z*R$U(>h*M5k(@V8uFMxoJzZ%SRqZZHUleUZW+x`tuelb{4IB5@zU2Jt!ft8OsF1>*qp{D@(|NIrPN#;_f2WMuo$IzqGB$NO(;Y$P0lwXF~h4gU2YST zysBX^Eorva(jDc8LVsbSoHgLO6s<^8)1_;Y2D6eL81z&;7JrnV*Eb(?%)PJ&7u07a z*C{Cs2ML49=5w`qUtVv^Xg^%|(ScBy8?%WVNj!xZwK5{~02eX$^k?T^MPP3_CD(Nn ztq=A;nA%3-R^3y3kgfmix65|^%B zQ4DQ_ek+5$NlU-xol;&HSFy{ZErIJSm5tI(=vDeUv$*l9~!s;XUf;|}xpm?`qEMIL(=FOb`4O*(5ci*8s=Uh11+@!34k zaH%=JbGa;*b)e$SW^B-k+`p@f_x7`7v&P@iUp$V2Kxs5s8I1C1+&AFeJxLziXoYQL z{N0NBCT+B_`^@$)&MtzB2kwp;g1L)YT^BGTGts2m)GWrASX1!EdH$soY_K=yUImB5 z?o6BqFnd$UAo^c$;R_^p!_!HbE7}7Eu|B4{G^@~OA%Y=fYJRt^&Rz2S#i@cBnoFw0#X>S$^9j8BDGteb(>?g#VxUp!zr~^`or~Gc!HN)jvt>+XC3&?z z1vbUDAsE(w&sy5Uy@AG;@S#tZ))Nb)s#wxgTcQe%=~Ts%1q?GtHOv^Aiki(j;I?97 zMSD*C5SdDAv@e{gsQnly4Q3%tW@U_O_EzNDbuJOlE~D68x%P%(XmU}ipy1ApyxO!_ z;R#DzELx6kGAY(Fku+OUw~o(_#E4djPElPepJ0hM@Opd2EaxJ*vSq+{@Zz_`g+*el zKD)nGtg}|3cuuZ}7lBqS2-2Akk%6vj(~BQsv-Sj->i+8>p;Br18~jOTLXEL;80~X(%zuxkvD?YN#D?M}b!x zTT4I6mBctn2Wz;}Q+-Ny^U%J~rWu>y&k^(0d~ z(p=|dRwU}pe=XayXIq1=z+9J=ue<-lHz_VYflt^}JBpeZ z_k!naklMKfbTpP8=*b<_|{9RqF2NBjvqRwr7X4>!Zq0a)za@0=sFH(nu#u zoeCvBl1_c(UlZ({xO|eF<6fehXO%#s%JP|s=APtxg%q2D-mwR%f!Gc>x6<~@w~9h+ zZaXnsWqZiha@_c2Z<*EDD*vCXCDB^qYOre+D6ah`H?O|TZwjVyE$Vaa3VG8@XxtUD ztzz6)+n)6_tzC`ZWGf{(X@#w+a^D(s{lY3HQ5*LVW$eNBZbo~PM;Cva+093_8^4;#5UI0ExA30IvRpnRO>_X}!&Qk1& zxmTt^R50bXvWzS$aWYB6jwSU*)Y!hb<>D`ZwZT0_h5JU@xBO6O^pu^KR_UV2f_=#M z{@INVk!vpfF_Q~*z|d2gL$3DcGLI6bg=;aDWS}SOL!LFRiuJET4%`E~50;EdkVO+e zFkhJLfD0}b?bj{&jM|ZOdarFKc#hGf$Cj9AM*700L?Q2FUZOttv%zG^nIZ-+u{RLvAHu&# z!Sfy@M+x~QZ!LAQ0xO0ez{cxg@lC+}$~O&Ix!;sa^qbPwqa63UM(iQ^(4hC%M+5g; z zih)E0zk6quOJXM06;u6vgZMETdiJvH-tCLtC5h>g_!Zpx_%A6!_B2H6q!QG$kdl!rmKT)H zDIb80as^GC!sJRul{DoE{Q?K(b5i2InY@=HH)j&zP7gN+Y2~z(KUCK&p12P6XXk6$ zHw>%kAhTSupf@phE`6|1AlcW_$RTeOAL&Rdjj4-Tzeu6Y~ZicnguO6{oICPr^^GTEZn z41QapSb@ZHT@!pe)|Yg@ zeQQ-PAWp;xUUlR>1Z|CA;z?a>`Hv;W|DE~(ZDQQ5;IV?NhwRSvnYW;{fWWLwkgXuIlAFDtxn{< z34$_tm0B+yf|3|F7zQ?w9Hk;*VsGUBd?--xBK}ga`l*zYJei!-B)?6$!X^W5qI;o7 z%6kDt_8}Wl&&9JY@K_6j7nTza^g@rt5)e z)`oBiVwLFpTfu}^y)?@Cti`LayWd51iP7XfoJGvq7?PVz=yqxHQ5OvQ#)?Q2%yBk_ zeBr7;)=1+vSuQCLgKYVnh)OatS1gLV8}|@p+Ji%0?LuY8g!kx|CJ4vNczJ441yKYvs!jKTMo{2sF5qjqkL z--Bdd%NyeOsPh;oc!PlK3GFC~--A+MQx18x3zaPcjeAg{@Y299H8EiGMBz;psmP|R z?^YsDk++Ry`}jn;L~-k*Y^4Zg+(SS)fD&x+YnH^aYijzEf02hd${M40c26XBA?N zEKZcf5?s`El~z-Xt$4g-4jkq(YaRBW^b#?vL`<>d(D+A{goB))cBdY`I+n_WK1gc2hJ?11@2$*WWSHWr3!xtCV8xttSK%BW35xS261ovp$rRt zi@0P^%6+I(JI1BFVKr)79jHzK_Ejiyz1|G;)mP&-0*4?0@Fwj4HSq;0xa^~fRKzuiA8TPB!ICX+qjH-*EjgmGG{uRSc{xKQ2A0L@e!=t~w+7ciH;mpFLQ{W>IsBzmhKl*J6X%_)TZR6w`sS zY;z3hIe@x-M#5if#{Mc^D?)42knlZ&7E$q}mxVwvQtF!|NTed{SWw&(Y47A%B~uU; zp}?>o>L_OK*juT5lpVugYevLvT%AI0BwURS>qy%^&p?+Q104=;-y1?tU^Zpf8f8f^ zyZM>9lr%#p@)XsUxa16-ok<(bJvt#*UM>g20EVx|P96@gcgFRrp2A!sizW_m zlUISUz=l{n#r>e%1aHl*7Z$&|R~6>m{EsD#`aUIJaz#K8|9R=mvXt&NqQDRnMNfYz zfu>q9!gatGL1_$|azv(OOnb>RDzPZg2G6gM;0<~(pcQ+x%X(S)D0-aWfLnO7Q7Sb$ z$35h8cgA<{d(+X`i0#^UtIu;QBKfA+9cqrP=Wu)dRxBcv`#_BH^#tJ$tUJvp zqWuS0mEFtiB8XEyAY^h+*o_U(&IYT$M6P5wUeS9K8k@wpnj9Jn`yC$z|AT5BooRc7 z$lC~h18hyI^0} zf>Cq>X7!(!i$QYUmR?7{es**1 zArfv^{Hu2LdwNb{oY1^!$y-eLyqZZB+?HI24XGy1NC&q`+_@yp`}Zh!=*s1^84hkH$` z&FH;0asP$PMMPaOYLZooyv+lM`;*C*^GpfC(>aHdGYmtB+(soOzr?erxXxQ!+h*lc#(v{4Vdu|i5Rd)U~#%c8PP$`qrnC8Oafjl@_2@7KD{ zD<2eg1J1fl?KW;JIBvfJLp(@jlHzc`=;ZK}X&*U%k%Gi8Wiz>!7Rzl!hWyO_+0B97 z6C-B{G*GOb5V&eU;ptgKe+c6KTk2ls>k8B&?I4N=1sD#Sgk(2gQjQsFNDJ<32r@N&D@Q}^Lh@F$E4jC- zu}RS? z{3@zW0V}_7th<}f>l3h>&9Y0rX`~{}^@812;R<5rQkp%i(Uk02tvqU^z*`|VxR+2Qu(sPc7|{+z^aBKWVk z263;HEx7*#$}Y|3fnU-LpTYlvvcs7pR@o}g=i-!qP&C*u))M+92Hpwv=OoTHE3*o> zXIrbn>wq{8!2F(;zD)9}aVpAMm30(YaX>Lp`pU*-$Tv5v#q0_SOuOGT>eNze;~q#a zkqY$7w+8GIP<@Z~*qpa18|;%nd1zuJS}o%t@DKbaWVuZc`#D?Y`Ev%Z#28>w!E4Al z@6JR1SUg%%4NN4!rP*wc*_C)y*(Sv*Sd>w8E`78zn_eO=*(|#OjU&R9Aq&BOFY3jR zA(1*Iz6EOR&ypPvZd-TQd}Nhfnslu(+E!rP+miZCRR)O^cx{=N(8;{0zH^-KU%cO1q5O%w)|ML?V@b%)}(u+Nq$YzjSeEG0DkED;0F^P0IHKRMvn ztVP~tU}eIlQ!V5veKUDVDqJx<{4-yjyrOVz7-Q$sj%yJ2dnUc9?K*_jO(Ai~J0j$m z>1`1AJ0k4Z0N%9778BELRE<d(pFGAx5cf&}^pGkSQJr$0 z3FO-KZYGw4A&4`PxPl^3LazbQQDDd+?7mG~pIw@CqJ3zszXK4_q&NpIT5NN3r>NIM z4tI~TCZ@s<6zv`vt*CdLdKI|C6p9Cp{1S}FT-1U;5U*g{=G!!y5VsMaI8uzJ+}NAQ zjtJbE{yvybyqII_(@r84fk;^REMYZDTgTV3b)Cz3#~_01YMD2B>PU+e*jLeETFM@s zOW#@+^#h3elYIicm$+oJ?B;jYzk&ighIyRg`4G6CJ_lzS@tAvbsZB{cNfuV;G>}~q zkIVCeNa0n_j)h{YWa(A0>~OGqTJAa`4L`b`)Un}3i7)-Zb3O#F*40GF&9CAQN)%Yj zrQh*30-uApKeTwq9&#TX`qeSfjQt;|mNEWHupj*k!%2-hv%p5)1YM&}JpU)}x?@LC z(+(fB)-2D|ea=s*-7p}CUj=5|l`PMUjwNsvN}<9d2zR$Ljjmvbuxt?z5&QSV%z` zcn`aUN*fn(zX7kId&!}Jl1lCt9cz~0KT*~o_Qnx=)2*0;><0QFZ}xD7p*8CV9$168 zE1lV&51d`E!^_*yb=sqP>MmJd^E+9FOX8i{$?V1m!Jb<+DcxRv0;UDJO%O|>0u2ll z_7^O*nM{3S9D zt7*lQa8;x^#M{`~ekgP=53%QvQDz{zQIthVY|n@TR8*+jvB(*V-{i;wrgQo|1pIa4 z_~1r42(!s0@FDmQi+nJCClrLtW+1c&Eg1F65~FgS8!;fF+$QCi_K+QCB==`vu};*k zk(X6%eaI?t{yTj>Y|kuD;?k_YB8R+DkCP$SI)8AiqR3u&+Jo4YESO`q7QL~4E3mxL zin!$8@_Te_g>5$9R;@4)Zg;sU0>w?0s$5|E@ZxjfPd*Yk$yHa9rphIoI+W^n{3TaFY zZZ=m;p zA7FIztkRx0E-&$l5wK$qp`PNwmgo&Aag5c;=8sIyD=BAiNq}v(MZYq}OT;Cg%pgWw z5(b(`Oq4P1$^9AFU~(2ZsjXk*(4h^eyG|Ip7A{>jfD%%|7ni;Ge;lJF8M}`oWB5vyxK1n z)9*i7DUuTs)tvWy2sqCmockRn0WBYUmYN|B2I6}vT3~|#Eb$qLr9%#b>}ZIC!m7sw zlICqZlH}MT2l+l(wpDhsi74L#C!=quk3f_dm5D$s!9fHK!6R^V`=;dHn9H1LcC0cAimim>R0 zLFuiYXG*5``%8NZ@&vD+v99}hwuTwX9@Sez9Wbh|A(tHE9)VR@_S_-%3fUqFCAFNtK=5)jp@Wo~ben)Nkw5|) z`bKgyzLBl$1FeORf%>&7a(eWAa4D@-av7KEYb|!Umu{`^DagahORUdg7+)5=2^V>s zHM{vc!>`zXw#c392}jaj{ZDe>4`nrMVS&b;RM;!iq|Et@K>ZFv0*O5(HExE(MU8ST zi*32X&hLZNMc^tW#=05>O-aD4Nge|q6=yrDX954M%#Ne;&6AjQgy}z6iRDQ1KL~fx zvg(J-Z2gF9=R8G$jFe1_%%7Q(vixr5#VD0D&W7Lx_AQe$#COazB@&lfjpfqmRsD^Z z-Uvbr4!I#3uuY_U68 z7E0#i-^$`aY`inGUTL`xu;{#z4-_G@(u0M2d(tIlF-^`J*@L*4l3LCO36#Myh|*I$ zSdqsS|59As5<9`b{+yH-lOOVCkD{V!127ASjS)?(sex23l75ykstQmBUtPluzcdNF)!jTC1yK2L|qUgMc{$f@*er z#v03Q1nQDv?5~tPGz-ZadBeQS3f@9AiMzDG5t#YBha8EUzqaD#gC=pE^TEd?duBJQ zXg%L4o~7;~M3Kcn2f<88O(^ayJ5u-^Mn&x2@B!dVh4&D#o*U|i9%khCw?4Hn+Bm6*YbzF72|=tz8z^en>@}| zOlbTSIpk~}~T$k*|#UFJzQv(G1%Rnx}M@ z$z|&u-O$9p6)f%iyNdbkqb>$<$gMdH(zL9vIW9SWWre-kjP-}JJ%_z&)|->AH5L*t zt4K-Av0>UY*uDv?`ex}Nrh$4|-M=(vvn4*vuyXN1af`U7g8gv0m8BC?3e9XG#R|Ey z$Ay+;wsgiQCimebxACRlh?pf~&MJw*OIlN)?n`T8Ec5G$N^BxRTYu@p3^%g6(7p*{ zznm3meV9DHH8G{`Wnoy=n+19q_h-v;vL(jVxM?yeu?hDt^Jh!H5b|swc_ZUC*&twy zmmtn|^_|Ub>Hk=9P43BLx@OLRJPerCt6qX^9@;8NR9*#^ZxV?$c|17+R>!4}TY=reZ>oF28)4O>_>+?taL!wBzXy&6 zY937#EXF+wd%WbevN^^w3;;8b^!e`&H7LK7q@<9stxXHwLoc{i=2xkbk_wgu_Cm2q zR?0&ldQnUDg;|+c4kA0^_>SL_ddf-=ife<6G&_{oP;oN$FPkWuzg{-hG2cnfay0t^ z%QeJBIg-w1z? zS$i1{ob55#IC?M&5gc(STD5?P9?c7DYLSsba>eBQ6=I|$syrR3doSPhm4g&Y&E}Kr zNugIV%P+-HE)j#hz(CzcF2k^AmPS%5oe}>cykNN*JzA#rp8VmYff5#ZHszoP^VP*z zLw-X6y<&`SIbhPGU{R(^WH+11Z!tFX#?f_Vzm2%$lVvxbOq_gS-0wkA4h`whAfL%w zBo?KR$qx7eY?%%Aq||BBJuRxYF;f)PNjb(&nJy7s8K9UIsf`AlVz6r=QOVi)mmY+B zI!NjilYUfpMeb={IE(J0Mz6dkzF~muIZ;$2Z_GgK71o#e3kaAdWzJtf@3wVa#3g_4 zYg2aY*P_E&ZkzgvO;u9ARzsq&R@j)ameayR43m6nxl`b^s`~^FFD}jQs`zb)7$_z3 zFSj|aRk+p?iicD#UQ>&a|4qoRsJC{u3W$>;3dnqc)G7K87|tkT1i0U!&V&1~`oU5k zyxBm}Y`($+y~9X5002TOOJEJyTK^tpi2lyoZ2V zB-wGEn~9h${+L+MG1ANIRn(t25Jv^T3j39V8zWc5s3}j_$>(;unV#pRr_qe$l4dQI zn!)iiy4umgh9Eo1$XC=`Ndl5}i{Z2A^}&=7!EYfoGp_6Qjh%CH%xbb?I7aXnz!DjD zB%-{B_;^Yr*H_3h*lz=O+%d2bEBDnit|L)3=Q^yolnm67kJ?W(2xofWNbib1EOE)z z_@U{dsBDwC|99l|6mo?J1z1MhM&K$a@s7S8Eo;M%6eDD+Puvu@ql8kiwj%8*?v%7G zV=Hg3E`<9Ls4v3+t4ke_hhBlMy2!gEuyp4n?)PPONy0?&Rd+NIvvA0-CQ7a8a~t-Y zwZgYkoX#zqrXnwo)V=XBT^2Yd;JSE5T8H~%N!gANXiZqq{kMvcb32K6H$|-q{xdb@ z5@b?m4sVS7E3jMzxFjd*sHf73OAw1YjL4P?TJfN87z2J-O_wyAddj-XaII-uVVSR0 zC4Sa%eNuffzpq73#v!lPG`sO-b2Dmfy3NLl#=_q0k3iA%Cp1~c)`n?!)-pSrn0cF- zDN%q6NoDPU>E4q1ZR&mP*OqxEHc7!(5!vK}68Ag9514YB#2zQBv?^n-;ilq}Hr2wd zz;?`5U@Mgt_A-|goC29B=(Eei6;E+f97Gy$zU?{jJ%nLG{TrssjPHlh%oKl1^jI?d zejVHHDexoQ-!x}yH{hG6iZj|)isFwZy&?n zoo!(U&)ZS)?D{qI@E_B>FgKMl#*+vCE3nio&%n{eING;<^y277-m8qysJ+MdjMyXa zE!?o9mkh~aVxqt%VDlmrRihI**}}crlBA8S)SnU8q39Fke6%t-fqfCU<(yjCNQQZe zor%qyP^4n5#YQqZ+`AP@afSrH#Y7@1fp91Z9G87n#oe2r(b>e|P2Sx-KoVt2e?T+t zH`_Ei_U72F-keKPmAY{tQLqYMzMYASd%mXVk8>EeJY!x`a^qH*4#C}#;V!Ub>VMtX!Rxp8n~f**n&1*~rbBnGY=)*!|y=&E@c85$ILGcILb zV|Eg5E;d&#_idrX5TG4j$B{GiW|1v5V5wQCFf)r4^5mCiQJ%L+dBSyro~AZ6vY*qEIy8#h;Xo z25|zzbo^cU;~9af1H{pBZv|#5Z*>^fjB(Anf&tk7+Y}Tjn8=P=@PrGqp@@{WobNU$BRZO$)xBm%_yuT14)RdP0uSt* zblE6->ecql6}qwJ?DdnR7M(u|nc$25!PuKE`5?0^5WRw9mNx3_Xj$Ses3al#h zS20_xsj!E<4Xgyh@bBy-Edpi=y~^FbQug47roAKg`!$lx)f-D1^*8795g*yDOh6NDfcySfsHEc zQbm?+2LBsOweu7W+}Kx{YTSc9OF{^OqJcMU6**&7Y9mrRm$v9|*dw$rJVA~fF@F4E z^K)q8spNb)WR}8JydI5Nb)*0W|0$zRQ<3e=Z?#Rbv>gVe2CN5PBU=Xz)PRL-OG` ziUCq?b>v;^D6R?PprgTs5m{v}8G`oF4PYBCSn4pf%M>qAZ1@_tP-8+cGE)R=-`@2# z>0T3-Vwqc2H=c~N=51J!5;U$fxe9) zu#2npP)}J;ia|9}5J)}g41!~=k5)Xz)fgHbdy^u2!3rZJ*f7|KBdSv7xf%Bd6X)}v zmri|=9dXbe><>!w(o+(xbQzzt`XR5x=F8Fk?_muL77sxSpjmjToLgX!+&S(cYfL1f zlAMQN`%M#yTF4rmOFOPX-0vwsTr!x-up^>i^4ja2YuA^fYJ z&MLdzomKc>I;-p?%vQB6+wbZrh1@(+5p!GJu;LG#%F)U_wMY~?*lM>CsM6H7!Z86o8%5Rp?Y6?oFsHvKYnP04Z5qLs(%~A{efQZ zTColy$K=qtSfzFu!S*&wpd?K;ylZpAoj9%bKKW8pJ(_q5jnvDLsBAvtx!ZmUsSD!TCK;!C13n zWa`_b#(%k{R8Vwm!UY>SO0VUQ^+1(kMWn!BjXOp3&u@d$P~vu=-~s#u{C7nza~r{* zAhk;-b|Gl93i+*|ic-7o6}NGlvO(^Um#Loh}67WK5Oqf_0DEFt-?yJ zP>9x0Qmk#uu%1AnHLyP#z6db8geQDSqN4Yu zH^LK4-BC(MCsO0@t84yK=BKhFFqH(tftk1od`1AuB=_GrP1Jin!QQW04g?DM55w z@lhiZKM>b47ZFHu%BNK}_QOALJbL8ju$y9>a)$x5ErA6{mSn!v@5J5b_8eLh-~neGi;XTpv)@{xN`@P z`A>9#KKI$QVOtC_W5d2Cxo}M!o*qlkTah=YVZdE&v+N^?JU8u_S|wYDWni00t^YKN zzUsoqa=jT zCg|Amij>7x z(C1fNOPB#qeEon4P<(ik1K+?yUPDH(SCi(0OZcek#-XGgstg@6&RJk?VB=?=z;S=nw0r$jNvS$&Akq z&(RHYSPbxr0}&sD(6HwhGrA9i5>*ZHB-*Iq5f2%QBY$#~Hc^K2SGnlftqd*h{gScY z3}=~w8+_45!~F6}`__>;-C1d{^2E06>Ew!^o58VTnmBD%^ZMxPGdjGx9nX{5uCi`*K19pw%m zu?+Be`IyWg@+5ZvcoB?}Qpee!8j{~wVu`xr^9XZHN39}nyKN`<6USeUmjqa@{ ze)qg*O8?1a4+s(|SSPZ?M8X<4>Yp&t&ndJR@7^(|)7Z(LMzIfQo_lBJvRC3vh)S+n z_MYy$5eE5}j2kgrZkfB*HE^Z~+%I%h!ytKF;*H4avr_Y=vK(65DltJ*r3$T7$NqGda{(Wcm3j$;Z5@wj;XJ)%w`I!si{-tmOZdCy-PXOH5gBHA* zQ!KTPJd8(nHC;BSxGEsZ*j0*kXzjj+c&la|mb zG40<`*<;qFsnXkBKyuk@edBpoJ)wTaymEq=O}OSI#s3R3Vx{AT|6Tm5lE?4Sl;3r~ zC2FTXgSM2e`U33N52#_=z5)Gnl9c`e+F(%%Da7i zAB;*NY4=Nq{$`0gw5iBxDdxJhVjxO+U5?wZ`@TmF>c!g0EoywW_vGZOIw3Ga+s z!r$Y5*)X<{u5P-rUX1g(m5M98+|9YYXvdHw4&P&&->9JzZ!@1EJx|PI>R2WtbguD^ zQ5I4QW$wt_o4d#F?{!l`?f7yGydl|b+qTZOuGwul`CNyr6e$Dx(>U!E^XLY}jK&)# z*M#h|^7HnsMQe||22Xz(Da+!aN!to}fGz z{kj**kfJ`7hRr-@r9qqTmZOivR_#6Cjb!(ZZj2uyx2V+U@WArcEZ@_f)Quw=TVxH{ zxrlbdF1qO1rXu?$Ei!c4lam_aaUYp2C~}FuQ@wR~W6^vf{?cMPXI;YVq{JGQPVBbZ z-L}0LDN1jZo}0Z^Hw`xzY1LQSdS!eudhePaR}CkXdlbj0x7<2?hLk!+)EwqeMu>jQ z?1I^yA2^mGvaJF?=>rHRdU}u~aRhll?<4y{X2)6GH0`*ALT2AsWET7~^@LC1yh?(y zUB+#@>U@Cg3gX^+k_{{1{KHD;G)^uUujFnG*BWqyBlrX0hK-=A|@fmVw~q zAFf0t^GY6^!(vc42fz9TtMoLUgBm1?lmq542vRIa9$!@~s44 zu>jj(k`?;vo}tf1!8(!c8FiEzXGs0)$oXM*ajHe;SgT;0(kOE%qfuQXZU;^tQ06aM z@%9dXgoP?QmXa1U-HPL1+4_) zJ7p@GoMcKJq&ni$47!hHSLY(Jo9TpBs&?bON_h%8L8j%ofMyY=xOMh5u4_9HPaAJd z39G2&E!65sZM)^`bm%GPG>;{eZayWBCr95k)@&t5nXfE)*-JimEFPW{B^oB&K}-40~s$!<9cd_64980QrJ&PwI_YRifmzW9jU078?%XrBqV;ZL;X(O{EdvPJAzklng8Mi=0~ zHc`-wB4Z*)b;hRv=KVn)&Em8VCs+K2hg&S!T?st1GKqIO=zNuMqzqG(iC9{v`Us1X z+3=-NiO#-o_9lM1R<>@?jVGDS8XBH9X#C){YQi21Y5L<)_jB_99^0{yXDZ&x)YI6` zr(?OGS?)-Qyi4u2w2#%DHLhN~u|FYnFZy)H&iUzCrf6cG-;w)^_(4@_8hQ2yUW)cn;xkOdsQN|ogXI8N^D!v!3UZqjHhe2*Lk*B&> zr?fcp5!<;BpUt+42B&KpKGatCvN*Gd)7s4+WQr+Dg6>73tmkKhFkD5th^i==((+vK zH4!YcvS$*I3}3-y2}wyNJV<`B2IbYzeC9abB068zbR#3V&zT1a%yXZc2Ie(6Ntnh5 zkZy?Ryq(OZB{L_euWn*qvQ2f3r5v(`4T2zfe9^R{aC_ce;gaoGS9uXO4{}&GsC12U zSAB&elu#kKr1)2$q+0KxhQ)-t(9dPoB?76JL!OC=`#>n3_9=s*EGGJda$T+<9rA4O zkkL-VEWRfwsSE(mDc+iPvLN_&FJBT4i*ur<;N=xZ?c8c5q7aaHjxF8&P$s= ztu(gkj@-tM$YDg!DX_kfa}il7eCBdGJJr#!LZh37EfjiQiMeB|=H6SSK(hol+&CI^ z;(a=MvUu7WoUH`8mAtycqVJvW1HV5@^X%tcJ5xA%s)5WDRP=5Zr#(%lDfUtdJvP@6 z)s-P?Dno0cn~C*R^LSORy(_E!-lD`sqf4_m;8X;}u{WIB{0`b_DMqs(mArJoHj(Xo zPNN|kqCA3pT&E;lraj^y^N}%~5WJCbx#ZH{W0fJft&p zA0loFre=bi>KUZn>v68{X=u$iWqXHbe-Xzv)}LzgQ%N#m_v1g#;MyCTS2ph zCArzle40lHYhHq>XOVUjMN{n~|265O7%2B_wE)!K9hRB>!AXP?LrYsv0Z-p})blFV{h$z9r=; zwb>}ONsa7n7cjo=J?QTYJSa>0KD0bTac3Gy83Ff`ZvnGK{T6===@`blP$gZp50RN9 zrGWS)NS>sT@X6~9r%*N^R_UL@{t+5xWgQJ2pkIQNG0KCk<JtLA)~r!j+A7{FFl0kP>OH6{OgHkbQK$Z^s~y zFq88!$j1s%JtWQ+C;ZsSJ6ptB3307XcP@7-tysnT(02J;Jp3Nye2F(RYUI`Pv-YDs{P-CUKb zRrlA!vDgNKIUhk#@GK|@WbiHmZVT*`Xo^JxDL^$WS{%2NaDx$hM0?c_5=(Q?-bmWb z;lQSDF2qj671;UF40j;RY~-urLh3YJ8>yvuz^_T>67YfjXt$MicUwVRh8f9Yiw5)+ z{EFVD-iRX!=A>S+E;IS67y{{3IfG}~vM+K9POl!XxgVbIrIdwp^CN_3gX7!&nI?!2 zvA9141C-+C-u^ym*OYRIwhGNJ%2H2rebI98Xk8iH9#m5 zc~Dbg0mLboRqDOW5K5vA1y{a!_r;tq9@0{yjzbt>a2a7ESOiqU!_E3&+j|#Mf z)_B7b)?$1E%Mgw97ygCIuXDaFwTG9F`OnRekage~v(-loW!RjMScT-_M#|*hxZPH!Afk>=D@;KRgk5)) z7H)8Ni+)d!ls(K@c2Z~j^)tnSN-?IbQ1YeFCQI_4E7ER>42l7r22Ii|T86PVim@0w zft^Akw0h#PCS?)OG?9`RSZM{|>p6QElnvmECO@}6afx7twkNeizmBOCRLHVVZi5Qm z_!*CEy%bhFSFRLt3VHyW!_WcZ=Vnx1A6PfcAK!5t$fXHKcv_jelNvB)ok=(pSKhYb z_biJWpx%D6_(l3So~gyc#`UAc-R_^QA9-il*osMMR3EMRie=;tnlt$q`mT{;F>LAQ zKBN6DzmtxCAHpKWpM{+wSI8_`+w}&c><~-G&;QLnTa58LxJyI^fRQ=iF#c49>Ft1pHOek{!T7 zJ~BYlM)CtbNZK-CG}q|?drvoWCno26SS|Vg5_l%DZ}{<%c_9BDWOQP$6#0wIA)ufX zqx+}apQ8J*>pPINTWh{|;*&`2ufyeEaZqlQVug(!k5I9$Af5jksTtV;BOgdC2S;K% zL(+-FZMCo~8OC}>uK2}tFN8$^d;b4lV`|IKgKrD`URPLq%x{glv500p8@m7KBWIsU z#%9Fw@5$~iHoiNNj`&UY7t9?(2CPC3liY$Zw2PL8I``N3(+vbfFZFXb!y_h0z2vHtSw zFTc9{=ZXx@XT9A*8jCM4LgLahKv)i5i-du*jdz}1cAwikLY!LlG(}n(M(ibRtSK6} z%qaluN(a!u)Nx@y{fO$UQGaj(l9D_cB^f~rsa8m4fVEGjY1kJByt_F&8p(LtS=F{l z1tzYJ)i9{4cSbCYX#n6Uug{|ji&oIIoK@ULx#8wS-VsmSXdJ^LKn!xo^4dJhTwEb8 zMfhzwYs6CByKAoyiUTR$UnJaFO%9e`Ha9nVxW#uQHelUl@b{VLtNE&VB3?jXo72@^ z2oiBH0eDV|xfIKn9Rj8mK#QPzgg%1G-*7BfYZ$7sTvHr0NvUiM-5~X8h7Bj@ts&-O zB}V)kLMmf}o%cO9w(OFe7JFpbofKWjmf|~MD5X>5&M}*j6)nT0+tLlazfdn&0bleB z|KuLZTS@t^L>f|LyZCr*g!2rKq?o}$_?UVMEfU+sl{mt|8@pH_Md!QImMNBo zSrLW^NstX%3btryhWOz5Y5{6l@5KJyI4;GM-B(y%u~I39+&6*8iwJbrA2$u+XA71MnIRb-VCph&r;e_niF|8js-l)SiDrx93(<* zaizBJw*>|vF&9zL(aFW;EU`42p!;$$cIcEG6u}B773c9WE2TP%CMQ`2=ZjL)iMRm{ zv;yVDqm#K2zDp|G#n^K*(gHrqZJ~$37iz|EEb|#w%R0IR8jJRZClO}AHtpYX>lQf! z*09z3suf{&dLZGLO-p5E>w2f33>Q#6%4%2KvbEx!cxm{k|LoV4#WTd6xCLzDPH)eS5~|L|FF3;8f*KqI{^a9o;L z39k&aIXTGCwI<^}+(cFBdLNutT3m|nxH^$H><{2*$%m}|h~^@O=DFzVvM&Bva6GPn zKrkqnOA`p&!SNKTPi$|DyLM+@oj?PgbDhyUoD{o;JJRqXq_~^+Q6L$M@f1|J&Zi&^9BX_L(jknEZcBra8(;yfh-K|EoWUkHD6eh6SzQDy0floq4SIJ9$2sF| zUmtw>PD#f1qEFE(;pTsDXwBUGl<#iwASNv(aZZ}C9l*T?^B3I-rc6>6hTDRHMjjo2 z>s&7axiZa6F^ z#c+pxpDFgnuITQxnG{!+v3MLvX8?pxH79RQf-{)Toak@!pajD)M5>i3P&ZNcdo;5jJ2!A}lW&om;nw%isN zjp{szWp#kyzcowJtUrRR#0La?*eRHwwvM|tDhH8(EHF9)k?42W4|U>VP}IB&ucqcaExDgHR5 zzxXfb`LsLnm_Ly*Z{g8xeUi~>)|q_O!7cJiyHn$eacA_oI9r~qs6Rwsgbc>Fr9vdG z@Ty$eRz$uPY;;~?#7>Kfcba>bHI5->_qU~}hmaCCSX?jdlXvn!kgBA7A)s{;C#O~! zoWf5b@uW}rk)A94VwSUDCtFp_d?4X?z$-nd_ND`VLu6PF@ep*bED)RkTPPZ%^5_yH z`3V!&IOx{UoCnpj*fN@(;)$ie142st3a2I9webb4m?v3-O2LR^XGusaoBsjm6h2gpX2T}H@lft^C?(%h(Y1We6m zr`8brIxAwCsOX8MV~8)*B6id?#?sc=aGuIcxa#OArs2fJACqJ*O%3l3n_)+aov~A| zBezZJb4ubsEDdKGovbZHb7qZADFK&0F2?vj!twGkU;kZ*__dZvAb6}0puO86%f6oy z#%$%KKnExIqC*&iPS=h!a)XWSse|B@5jN|2z>`Ielw|ylDURH8{mMQw4z4uD1BZH8 zm94XOqOm^oNA82Xph^Mr^;^J*f4{onlAK)o+ZWo0VuImht;Q>g=1s5~d26JO2h@ zsjO&8x0CR!jvDX8=zEJ10(U6uMu$Se&e;d4>}MQ>)0w9>@NvDN9$s_1J6%j zT4m3KQdcqH(Yj@0)PS&TQRZlV>5V6k; zk*cmi1@xpe;>o_B(mzmqq9C51-MeIs__q8b!jn)W+*|1531fBaP9){On%XZWjBnej zS}`+H>0npj+q#xTwtu)>l>{ASCf~gkT9olSFc`+N@29F(E&Ty{!A=WKitbZY^!fzo zsazKWw^y|XK8G|}Rf5ky3qH&a5m(&zUsiDgr0Q*foq~P)AbcoSxUD2( z0q?ImlOI5JxP33GieS)09yUQEX?7Y=#2U8RZE5h)IKFnr<^Tehmj}Np2|5b(`)5irkJFxXBCh`ZK7 zjbtaTD~8}a8wbI|y)QBT5$zJcNMow~OO_${F&hd^7SdW`f!V2RmTAf|iz~eN7aBL{iKFv1iHF=!I(Xu3P!Gp`P_*3xg^RqA2n({Ni$7u2*mvh6?9OS!c3+;J=ncXm1%FLAf4tzT zWbmXIPF{oz_O~_CZ;3vjemTRw=S%$hD`rvy8;i=e37D#{#Npp^%%t?*YynWu+#BX9dtat^!5pITVS7LaWVr| zjuGIwRmxTaU{Ce{lwJ3v2PZS~G9p@P|Kv~F&Na*vvn%#Yb2jMXQsAUKmZ~9j3c7sqtlVM|-*Vzes zi-xxpzk)WWpfw+TfRtNMCQ$^u3EOslv`G4B z$RnW(Yp^R`2`3pls(~rK6;5h!RJ0{IQLg z8ND8WtIvFWn4)xhhKdr@9NDSby}7Y(S|LHX*24KWx$;y(m-$MzK+4LpyExO6ike$P(h%T)vf=SOINE z50E=FY0Wd^28l~)mM9M);oE_raJH=c#oc|7*6clEYUEB!NXb%ZWHljh%+=lA+BB>@LX@(C+w$sT2nd`RxvMx9&E4( zZ>>zbw29%bV+G?Ta7e4lt)M{&yztQnE~WVhVT|<+XplyDE=>c5P)5ik@K#F2B$4Y7 z5bmo@=dnxB1#XQlfWHuQ)jRHa%3Ks=Pxr{+-rX2NVxN53KtXkZ-6^_r`Xyj_bS)=& zt0fuDGclmeypNTL1)x9ZE{dstFn0HkLYsX3CH*CZ?f(#@X)DyKaKe7gT$dL9ky&(p zq08JBB7l-~AO8gCN4Fs3ulyvGcfR7da?kpmuG0Lu{zRN(+Et&(%^QPVGzn`bGi70WrT#hkU@nFwOtDYzS>DBPn6|c zSwdCo9LO`)KF(-Y^9Q`poE_`n@I_gPM^CtQ7N|#?QoYQMIaCLx5!c6j`jImCvF1<< z0Eedl8r-X%V0+aoEMa_-$Sa^_?uqhxxdMDMd`8xX0sbZk(>oE4FMmdC-JCyS%?rqy zZ%|4|IFNaPJ7?WzF+v7n0sMKvt+60HH5D`;o+p6{w9tG3Eb-52=@0ZLeY z`qN}}7M*Rdq1A9*{B;!Zlg>+}#Rd(UnEH^1Z1di>e)2r!=LkMlfd(=NAl#eXq zA^l)!Eg!wyus%JbhJ4-V5wdBUQQH28d6VH-NXGx28I~~k6Hj`crBl*Qxzj)+OWZ@v zlW=)vKRE8WUS>y1{C9S4rvQ@MaKFi@SK#u*J7ayGT5gQ{Z* zm-&Ex*G;dX)QPp?qN!)B!JRe4PMK+Nwg+{54yAOY_#`er;-lhd@jam?-?2N?BX(sr zz`FQ9@T-3_(^|eY`*S8CI=eiGo8u`NDj<2%L*MPX3*k@{_%>t-H34jkd|t~myAt~T5c8Qypf(;3z*T#Wx3;)`RS^|ycq6QFj~0I+WaP>)Ip zm6!RbBm}&VcYh1_pdQj4$>W2P zEFl^GS*7xP>C6J~pC2yfy&B2*C+XGbd$@+FQ4~|sSGOfl6>^zjyCh-(NDu`SN(cX9 z2>PZvQGx17|NfUW=XMr>hajsQolK51DClri>fKK7@&Cr<$>Z5d3aig#B3UnD3O*UZFUc=rL98 z`1;D(NApmNV+vIrn?6w~2d&vNK2$>?j*fnRrzc%g>X?ws(JUkJiO)=x;Vg~t*swvi(ZLY6) zbIU5>=yDeC)a5eww5Eq+BsBH#geHFACKOUL-UT~mJWVZJKM7-6o}@`#Hoe_WLNXAS z@{#Wp!L8?%q$>n zDkrhazCbaFIFgqa3kfFb~&Y9Tx=9AS{lrncG9Fm#ZRI?yhZ{q`;dg+*!`Vc;C9znJ3(Yi|aS)&kF=E`Smw0?@@m zDJPDhNiQVc6*mIj?kfp|G6Nt*cWuIYTQSquRzfkQuON{U*TsgQk*b?Ezd=amD&sp| z6Y-e^3q;~B_P9(+2-s%XM^_Xwg#6;WP?i_x_$Li}M4tg)XV5*Q@dVhBm1EG2b*B6a zOF>4Uci`E$E>NwT{k;{+>0mW8z95gb8*$%$ME@8$m=@S3t89`(lWm>8{ACH-|6rHH z^%XAz>3sCFkc{2WL-c4Iz9=OIyFv6fI)~u|9RHlBwHWxd8SvMd8jY=7W>fnmymM1B zO{T=MN0U|&TL}*akFWBnP&Uq0GaE4CK|vb`4DQN{3UnB1%dYZ&)PEH44`V9`Gc50oFzkdCjy z2IurwG{^%}+G7g|5@h`3(xj~2n*WuG27Q4wv(YsS(9E@Lkj{lNvH7kH!RV{%_2}B9 zE=?a~pM1-Ty&67@pHM~zJvzUN zKmv3K8Gf0MHZtra-ox0TqJ*SQ*q|C}4$`qk5N7cO_%h?EnNLn$A5r}?CjIj$utXjB zGXEO<>^X2=y)IGpDrK4)tzm|JWwsSddm$-EDZLtQvoh2iV#8XlnQ!_%K2C!7l3NLL z)5}py(-A^>Y|Wa$_8JbRGQx3Du_J!1=)BD*g_}MYw3-U3l3)vr3Jr=0ULj0b0ZH~s zTs2FEbtr9ZfS{)6@7SG%q0q_+@@I%*aoO?Jbx%vBZw4 zfl_`t@$gc`rooe#71%#=v%fcaK=>Bq2{<>$LXV0wro{UYG@V1duXqooD@%70do1Ff zajxf(3PMd4aNUIj%|x6ZH5%nG0+?)A`B`l1e5#CLcy)Spj=wkk#$W8~d&545KR>{L z47@=HuxJ>54Z5oip)LT*3(H6&LX`+d$4mCy(2)KZ+$g0#LvyGFPMiDzA>Ty-?Pg4e+%B*;Dl!n}lhC4`dH(N4U(eleC-O0UC;r(f0lT_nI-C%p}sFKrXWz zNl{K|A3{?&#zZUz_G9@wFJ0*}2XVt)m*D!>kQ!Velx1|#7f&QZ&2i%~a7x`*X~d8# z8bt#&D1U(-EC;6y8B(Z#lTe9t$0iLynI>S&RRDHg5QxSWPm+JPx6Dgntq|J-8F6 z1mt+MUGz<>#G@BTp(Fq`9hjWn)tCFR2K&o9%h;J^C&zci$L=rWt~ znj4I}kRHw6Vp>OT_Q3ZH^R}!x$XFLc#EyH9mPFmT^y+ zO4(DL^E03^;vsF;ntuHURea2IsE0s#pO@Za@?LSA(?r98cjQC;=5Y_}VcI1uI}@cn zth0O$UzDZFq{j+t^Yr_Q`#!<9MKcovQO(kkFZ2Hh38o>ru?B5eH_5Gp%x!o%Uuj;)SF_%OJ$x`cd?-B;ok_nZZj#sAnx4QKq=iQ`-TReZsJ55- zPokDK`DvSL-u{OQAsIKn%#hGDuVtNdSW6pm%CCpy0>uqW@ z{w$RBwT3n1?jw_Qj)YS%p6p&(Pv1GZ7+U3A`ykfFi9;R@R_Pw{PArF^3l}Uuv5#NI zPh!nxN%p4IsKx#W(6hSVJMKaSHN4aXUhsJ0P|yGB1^CtMonVae-s}dVf4g*Fmy9^nZG5%{TBMm|IQ1i|s)e}HSgMI_pZ~q3E zPT;Lsu03c-O8TDcHUvksH3n6ITT7NB>mPDD5wFrcLZpR6EmrdnnnV51KtW%WqtxiZ_aFX`LAd-;{;7iI?^qG+h>CHP z4*z08jkXfRW=HLjg+CMa(@z6RIoLok6HkVP^#MYcUEdQ+e1d{%jz=fPOrGgc2YN8x zvR$QZfQ#fuuXENHh!7gwFeAp}j{Dg39Cdc{dRdpnDC4#a^}wYVl^~-!Qc9ryWA$LB zK^%ya8s0fy4S8~x2v1Do4?wwn`e9kpv&!0m^;Dj54oTsZCOCH&Si1n4fZM;iG{E(F zcWu!2ec;3+{MfSE^U;^SjP2)ab$CG|frNSa=;Y2m3EX=)p2)XHYR^n?Vg;Fm=r-h4 z9jO#2w?eEPXG*E_66Po0LM@%KD>7Z?XI@2|{U#?551+6Jaq3>e@&WaGFz*(UIt?NJ ziY~Lm$Pyj#V6qRqgeQtS8mWF@H|#}r#!gXBZhq@kPj|Xp!4Q%$vpC`kHZTjmKHqSm zQeJXgH%2#Bs7|Jo!=i>iD~^YZtHA6OH0u}Tnv4H^TuX;@z8>A%xENxE1d22p^xvH~ zaRK2=4#GzadW6~N9^}E1Y{_ir(%0>O7$B^j2TG=5*19P&Dq0OWnR4L`F0=kdsriUw zR!}RH(i8JoWe;*No|r}h@3Ytgx(o(4jmJW$vE6~6-H%#5{l;~ZIV=l}K^mg7(O1Bs z&zdlPqM|;dDRJCvAyKy=4!cP!LBCV10dN>Rq2@B17C(k+X@m?EQ;>&x$ngxgZX*bo zb3nb!4yu4%aH#_nDZ;U81Jp=Hc)aQfWEG?Qgjy7YBcu+#-bW;R`Vvh(U9@;U5!Mke zAi;+Dv@UaJVmaWH!q{VCRb$?UCBqv_@LCOZaAKdHwV(&y{f*E+nyyz$-Dk?VabcHM-55*5Z>IA!xb>+J*AbcHtGKLE+xNe&bdm zgaq4P!|~)3WpTt8?6-)<+&$DufxS(sha2be94W7QB9GXB8}=IAXG%kIy0i2@$#^Y` znLe7W#ncxq{_?v)C|goWxUX>IZ8**5wKVVL8fr7`qP)t{G?;(wx@OZH#!IThGc?e3 z(?`hmZEcsWv8Cuz4tmEMtK+e7+_bdeRElmkw?b(xopEczXRs&CHCmdKkj$2&QF=G+ zl3EFv*EBZiAyNKobEUs4ocA8)5O2x1K}cmYxy-wckdPHVY~b~7Cn5b{k)}|}8Lz8P zBJmk=r~^P(g;$AiTzmxJ+T#JGabX)zPeS>~@JE+CJmvb7g_3nxh_JhM=NHJ3wt@k) z#@+yZYH8&%`%@8}rGsD8L*iysF%n-*Lpr&r!LW%?DaVmn##%J9CG7AxKAPjxeu6f- zQkp_BQdmtvE5<6Hgc9%1UfpZ4lMm$hdy7GSiTXcO7s|1wj@OVocHgX_ed)CqDxsEQ zLph!`v5jrNeO*F%@s-DBK1qdOy=O4ijfY&H6>(K{yt0qyO;66aOCQ2Cyj2#WL=sXW z7O(PKJ&qxH@|B(Xx=Qc-pZQ}Kk}%j#{y#E@v00us#Z^!^UxNA7?18KG8|w_&maP0m z!uCHbVcu+@wCQDr1k-8it_Jhc{ZvuPDxe|c?%{GhSK;!2GmDddC?2FkrpT1fQ}CU` zo)T3LoW>`R*CqB@z)2Y+Q5Fo$@8Iwu81(;yCnkJ)f=x25|jU=cfGrk&^R(m@??8pyDHs@3cLEcGF! z5PP8cN&3*v$`qZkBW(Bx&v(W&I7mD}t^@gKbLe1gV&=T3J4Fko;%I~3022@_1$p$Q2aY#q^ADA z8ExlFn4a*je>$c*7?~2M@4#az4%O?YFiWSTZ$##i2GWjy4Llmpp$?bXnU-;_8 zzuI4UZ}N_~WVN$l+hjkOW&|5Wjh|5cz3gin9D;YQVP2fDi892N$$2E{h*geb4zXiR z$uZLGGzWZ(XPP_RYVN3+hR%2oz&mkic!iL{KIlx`XbeMBN~Z0!Q8A1; zIIVLwcx)CanG%bETRS+Nfil8!68EAj=4U<@!tZb=ZHP?@Ah8WZkn!EVE0p!4WdgnE zqc&SUNQSf(JHXCP3s|95V)tT0TU5wEQ{qymw8{@q{5ziq2=1Sjh8c31cP1&fwG?A@BL>XG3h)0Z^W?w=xs@-H(S2eXfNS~AN}=Q? z&2<-?GxCH|F5%W(AsG0y5AxUrr&Wb&D?#ko7F?$xpmsBb(@u#7gJRRE=R$d8i64iQ zF_dFPq+!h`z*Qbn3;5Mf&NuYi)6fqq(<|*KH8yxQm*G zoyO!K6YaHvT{~y2!;Ne4-jNXpnliDmX-uIG?^xA<;~%&P-6@Zj_M4Ru{hpW}^3`a) zuCgx1nIfYPsBGD^j8t@8SjJ<%lX#@L1B;VXeY|4{@dwf>PH5$QMh$9!PpVV?L_)Uk zuMmNh}9ND)~nf7#F^V9?HvzLgq^ULe!AW@yK374XK68=P_&R7Q;_Gghi zWBfp+bY%L-nWB(-@R>Y@2vd?lt?Th4YBcxX8bUA0YE{DcBD4=fJx2dYgK< zhx|m!ljEb}8`{HjdDt5EXUH7?ThE^cEFqc6_(xunhYTT^$liT{0QK>2+Rio2Ro#f9 z|1(Qr3Q<86L@ISBo>9h;i3M$y%)_{E=O#JdVXsvJ(|(($uy@ZF-omBLm%#_#Fml*( zT6&suf(2)i*ljGM=Xno`GmUYtwPfU13V*$FUCUS;9dPCMvRS=jiAyMg3NXYMCbuRE zC>9_7@g%H~GI|2R1ONM9WZC{Z{44SpU)fP8`3f{*tL%aOHq3S%{B*c*d~5wW+q{L8 zK}cNG&0>#mGew@9py(+pJ|cpVHAsAGz!Dy$_B#b#mjL433ZbO+9P20Q=RelM*@au! zAyu+$^gEKe;CT}*gNw*K)SuS{hwHi`WhGTl(gqT&M^_6@tue50F?@U8(9`p~kP#I1 zME@y|qn|h~>S85B#sup?B1K~Rqgbmgf-}oO)W2dond%qQ=XnpRZ;A4z1m?~_QJpVd zCfx2#-u^pzY}swYW7L`yyCEZe(QZ+qfIcyVxV^Qzz`TWcBm&MK7 zAb(l9?SJ{z*wAm>K!R|20Q*QRu*Pwx%c*EYbnYJ}G%m4+_IVgc`Xvr1FEIrBlfSnm zCWVbIbSBc9^QaSBN0j$RK)zhv-kRo`6f~12OK`m`ln2J^o4$ zcPcsgQwYrGM>w{+q-V=a=i%JroxCa>#Y=5VxsU$UBcqo znQb#zmazn|QgldsB#WgjhBgqkMmIT+(H$elSFTH9o0sy84Z2V~py=@C%xa3q2ek&l zb7Vd`mgWiHkFjHYZsesC`k{gQTz28)WgHn98e?(&rLeS6Yb=WGfPj zlwuKa^0dBmaH);=zSlmvxd5mGLUFXK~>r ztWICWw8ThhU8E;@w${jbHm86a;z3MhaK-d)7?*ze`$PRBdN;7jFYa@#q)oRq?QC-i9xVU%YJ{T>d^_k?BcJ zw)8pvW&O+QT)d0f1u%;Tv6Q~z`9MBdicE;dxO*TQqnGTRUwmOtK{gIUX)P@rx0pz4 zVrIc5eFwQcLoPY*for0lOx*0oti`y*6y3A&F6E8WQlHeMG`K?TufO=u+{5z zsiz^Qv{zE}iJ&;R5m$J!G5~}?d%qIvrmI7E;=*fC6k}4C`{HXo>;_5!m|WCFOjCW* z)}*hDu4el7rcD`RFqsP*xgJC;kr;c z8U~|s717G*^GsIkLDK(@3UEz|`iJrb=zS_3pd<}Uu^6f-OWJKqmxpKer*RlYEPot@ zNyw;$k@0GuZILrZ4#`yUbi*@;a5juOf`Xb!eOmLh2T4cRv};vwoWg?7id9Sb_^DMm z+@?52r_R+XwfJI(3}KOj&|^gOStbgHhJghX7rVXH4%2#frXEuF_d>rYc23Z|;6p*Z z6E#re&Adywj9@{qKSNK%Ps?wm>{~AqUD854^%s&%;xJhtU-Eg0Ict^jP@fEcqSRB%z=iXCPiE_^5C`#a%!2K$aN|#u3XyE8sFxIWr)@^ zvpmtss7+-}N~PjqYXy%<(qF_jTfl37YVfe92>T=BV+8t|=Zf5hU_R!-49E9WeLA$ z?EarvdK4_W_~`2Fqf1CFBmR+i0x;n&>;#X1AJZ1JmQbg7LHMsu7TGw}yU4+5PKCa% ziKux}*A-oKjmuwYLi=+Iq0uFf(}{_~hBaXyvz-`xf_LIgze#mdY#lCK?M6wLaEA4| zh_@u`xXc^&#k}B#MfyU&hnAe&4dfD}N7PR@bgGwGhhyZ5#ef`&tCJ&^n!>3{MfpHM zEJ@b5^!Z8B8jLuR6DGj3=3_kb=L{8*d=)()_xPm2S}iZr50bc}&8O!tfo+GisQqNtUi%MUUqR+ZFB!p7L3Eptr`Q8BT9cw(jki^r$M<4$*Fmf*oLygXtzWB)u#!BBDCe|sErUbT znuCjttWMF{MQz|TWAdncOp1DuMXn_ICQhi9n$waL7Tt+Y3c<-Dz9Xuk!Uf=2(~zd`!X!MYs+}0i|?PAqM*d=(t4D zMc|Cg!Ra3hH&RsScm3RH>fK!U+@id!TVr%(c#LXb|7Qf35i-YW=~;0}x3f^&nJ71< zM>yo{l(?#v9K$gw-tn)w=O-7Nl&3tyu*&wQ?a6i4!6}e?uJaYI2Vf(b2^YrLI(V+t zWX z|KzjN1LVOgyO(i-K95Ps8hLHxCK$6sHmK9HVSGk@IlYA)F>R&wNq1@zVsBbk%~5b5 z&zmh}=v>Ev9TY*<=PL2a%q*wAH2Td-e+66nGn#-oE z#cuN?IT(vM7Y>9?76+veTD3$N*9;Yk(nmMXFBxgjS`aqpHqEK%$Q@zyU+H0-8tp7x zt4^G9+48wv@5#Yk9`uuSpJq-9h&Vo`JjAsih5T@&U2B}vkTOAM{%CYYsp{nkOXOiO)TzDS;~8avS{@;nnSX|*LnmM0tAA9#|y zh+}!+Dg67fZ%jBtrxmTc^HxV!=j$mL28wDb#-z~=<_d;A zWx|OaFp~Zv-_93FS`+OMH0Tq5ByIn(!!G^fG1lbN3`acd`bU=CxJ4JNvpn-WZ_-n! ziOUtj>H>X^b+=C*hD+#{WqzRyTH*^qv3K)2n4>S_&F2+Cn7d3`6QfY=$%{a+yZ1Mi z=fZ??^bD|N%tmk43c zzvaKgzeML|mw=L8$0f@^V!OVqP-5BiQHBvg=tVeGuh_%0fg&W~0Ee^f*_VMr+U6Ib zGv;IMadXg9UBI<5=RZqt^@_$FejHcNE!N9_&t``W8}1l?kNauiH-XJ1z?MHbfI9SAVvk#mT?=B z6D@d*$HdeoeKWnteU^a)efL%E?=VoPrX`so4uf#DDzS)wiNX+BpXPF*9$6zS>4th8 zJas#8-G?K2srkThQq{%a!bh>U(|LLdVQ;|Q*-?h%W&lV1+?hft7|Ienbfg%I;Ls}8 zCmiSGMwh!wP$Y)fVa~G?Y4tLOeXH4#D5<(J~hR&ZM}wIV)7hRHE05}WCnS^T@C*ETaWEghgWI~rXu|C9s8KQQ(m zn#-TZ*@p4Hb+i6DCeUb8kFJAYsqs%5c5D8|Y9=Q*CDW?IE>~;82`YcmvD4ZdKWJ4G z%S+WcH9vLnfTkxgY}$jQ2TOag-c3q5n(-oLOJrypNIt?exu_Szs$iQy-x6D@A#HxR zLU1wmOi|B01*fKWoO!ybC4EKrrhG<4>AY;I+RfO6eAp{sb&1ys6JART~!*9QfO`jcwoA z?T>5)$GN&XYs6`=ruG&^@$FKgIBaQkj`P`g4~mAHCcV&rqiG^1>iN(TouZmaei9sq zoH!(w|rhHDJ~1)Dp8b9FAB*{p~!28@en#1r*8U1o@aG{qIGALmq;*FgaZF>NJ7I zysoJh3fRG@Z?0VMM075Kdyw@15fzDjj*+IA)nH#B_+GlQjbqP?yh~&4a1_0ay-$=p z*+tb3Ei-Xj)M>3)5Ij~{Ta`Y@-!i*RW*7eYVk*MI=}Gb|Uf29dzAX5~fTf$QiT)ahB;)1XTU-Gih*u@;e~iUL`DV{$UR+*5xnFCUNG2GTvl zk_r-1TYPbeCE&3f6rYeMt$GH3u{sniEk_(SG|*U_*b?j1u%vOBi|P_z;K%4<59+6+ z=;n_j?eLRR(+9Hu-w@sU>B}X@>RJ3zsC&g@tceYr^V~`;7+&Ei7%*Zkkq{KbsJEpsEc=J}mg8i6T`ol&f@o=@EA=3mSmujxV7qG zTIsL1R;)6>>!zCgm=q-=1F=A6mrq2bkz$^!?i?XsOAM5X${xDqy6!=Oiv*Y_t#5$D zQ_ZCS2a6U-A410xJmpZRmmpjT))bo?cfFtf=;D%D%;_|hecxGuxgA_uF*|v=x(N5hl?`>n2ov%?8Yj4q)1x5qy)vn*~xm+ zEyp$xqr46gflEDH-8;zpFQ4e@NLgQ0466 zE{8w01TILIpg=P1rG2E&stERYBtG;M8B7)k0pOm z)V-a;p+JvBkdQsZJE>w=KsrYoBP0kc1cRB;)`#PNu!m z0!H{PTQwX9lHPD?)siL34aYXn#3{WB=>Z%~0Xrtv>o#HkXL7y-N&2R!dxP#NCE^|= z{XG@%)Uhf1BlIn^V2qxE1;G^cD03M+bz3G1rI;z;41(fIoo1y_mhzxOO|(Z6*(m+T zz^D2o-ie3QA2z#Y*IDekj&M8}3#EuF4P(rcf*2#&EuVq?fhp}lVw(gm?RLFLIQtW9 zVsz|RL`ebme~2uF+6I!5sjHT>-CesVYq3pmrY3MT7H|e7spYB%bSw>07odccXab z;%_fC`D=U$AQx7gaUDg3gZ*< zCdRvg^pz~g8YEav&NIo!27H%qK1Ej(<8CZ{l{J}wmRw(y;ARH2X15K{u4WeBn7-=U z00SdZ$z@&)VnlORHc%|`h4P8Og)o9?^k+e!BYW5+Ze33{m%)hukzHXMNTwxv741o#Z**NTMc7B;NBMSh zs+z+qrN0Dwz@8jj3wD>sc&{XO<=68~61GTGRbqkZp2MHaK>0D6&-tSymy^9#;y(sO zmMW=>852*J(3-r+OR%7n>H}Rzjs`r;pM0el7B#aEU36o~zJx!AY?0DWp=EG#Olo7&PngQ6>_2{Pbop!-ypdeeC9e;j^Y9rdwz^8{=i&@ z?k*@wZ<5rcGPc`MB(B6qx@xNTC3`o|CtiZ2zh`7IS;qJnt1A##{0GrP+CvMMAn~q_ znJ+=ogLuuVDIlCcR8VXf>|hkcco=Q7vLbp4IUPppp1Q2V#;@fcF81$&1Asr4ELHFF zF}e=jTus&4pBdYj$7oOryB%8v+SlwIza$+;P-w(yv9&lR$q*?Yie)s{GeJ3NfDbr4=oo2qnj9w$%!m-xK!*7M64zp*N8J1iXM(jmI4R zEU@JNa*_X7(Xab%Sr~`ApdlI*G^nASMAM2s%M@M}RuHb!C*oGH|0GXC=VDUx$7pg3 ziowiB*O`tkryq5430+WFsUMid!*b0oF8XG9lxn@fx?{L0UTxO!p4R(6Ue}wEYGRxy zV1L88dW^4HuQnS<`Zr^5qLo;Se$&_{!$SQZDn*w2F;hN{*etiP+DIY1sT!O-%?_Z> z84^eV7!}~|43dr_j_PeSR?lkHKwV@SS}|ow8ZJ}F%e2WidDAQhOSZ`#4PxkA{GZwx zB>kHiNKJ+ulez6XGtX+a4VQbZjZ3pHiW7~|s&CgcrOCC~H&8Ia!PvvAP#C_IAc15G zPP|pNDruEg&S$jc0~EZW>LRSw8c2FGV6N#5`jSctjW)*_DbpDg@NmrKcABKQGgad^ z$6Z^mp=gL*Ma}0eNP08eY}eZTyfsAXVLBd>Yd*$Ct@57u@ix<|7^Tfe3?$vszg(AC zJ-J|#@SFIf>j7Ki5>2dOI)kJ)!yJCnTcRo%)_Dj-si8kqz+TStmQFQ_9qOt zpr~%3Ag9*gvNtnmrQ9J_q+~?T{ohLn*V;NTwAL$0`WuxdcCMvW3K<4N=c3t92$a<{ z?dN1z1GZW=Zxe?878LcyOs2T#K}kAv#<<9#aWfaJUa`LUy@c-2fbGX92g5`;n9g(+ z?96;qLsIN*wF(!!h6ak#n*uW}a*>&W$r-rmuT?+WI$TN8H^pbi{ClyRNbkg(87SaN z2*3?O0Mmw6(D!e~#bX`pYQ{Qw+ z@0OFAM)qdd|Gw*!*MWjH7_>2Fnat~Tj;+AyP*DGSko5QMYBEr4D#ql-qmoSIDOk&v zPSpy7mEy0YAiL_@SoHn8S4lZaD+6)!snO-ZlO0vn+Wu2|!a)kH#F7krT^q6Sy%yQ< z7`tWBS3xnD{{+nYqVyR5GqLLq{;AuJEH7t&(1}>nOewwEzR8^L(bD*Rb8ybb9H!UP;n7RhM6Sk;KMt_SJHKB}FwA_HUL> z#N$0vef{0@Sj5Q zPBT?VJ4w2^UW^{oC&3R&I4JR6U|sKXDM#-Qh5mu3WESvP-t|hY5)IGa((drD-CmZT zeMvW}p9Oo{;i|ZFiQg;f?_HtXSI~>pQS?^$^HZEU!tA+v2U( zrMoTAlel@z-9bsp`j|D0&P7x9R|!o0yUt{iNLm|~LH@VS{gotl+DNgZn1@3dvOdPW z9w_NE`@Nwq;~eUk*L5!gvFsHNzS=9|q#w$?8Jmgr@|(h`N^iH&X6(&KO!UkU8eJZm z{t?+k>T^gkd@6fTx=DWQIMt-214I5WK!`jY$@%~ulp1X|rlQL9G7V>CG<5Q}MS>|E5N zziyh;rN*fd~_5`09KOG;#E3PC-hfB7$Mzgllc^*=@o?GDMdHv9uAZTe-P5!CsG7!JFI`Ps-k$6I8|sxT%)cOglY zL9g@_XpEmqJb^ckz1JU#Y%d{)@QEb-xk>d$E`#C1b(ogbJf;U0j@(9)jvnLB?K&+{ zOtmm~6t5Cof0oCnjTGfaZOf8*sHsPc@7ewY)<~;~^Ax0dTE+mgM5jxz{tS|hcn4d( z@5Z+Jo02*EKbEkhHxnbCeb|=7t@#UAVpid_H=OR&dwRm|q#H+1F*n7;(wm91`G(iS z#M0K)h?7>WJASN4>axv1Z$S}nYpZYo0DN76SaYg)o>4DhWrcz%-GahP#LN&_*c89B z)zv_;nl|9}X8PG0=%YLhJ(HN;f~5b^a2!)BzTGfbVJI0}p&yv%jkc@h+qqcTbrd{# zD<0!j&fpF28i=JTn*J+}#CqrWp1SeC`)!5dSM$Uo&GjOE#dt#KsNG_o&lH3I!0Aeo z{%38(FSGe)c{V=AW>?yxv$=knY`{imEB2RdT`S{!B}spyjTDJ@zmCj$Ck49o_m_v{V0 zzGL-)!b|!*=&Qgp@S7s3lj&8L?sQK@Xw{7*U524n{GyupPbBGo*5qbWd5p~(@x(UA z-i}tWrCef4y_l`S5z?*D$TS=(Tw>*1TlKt>Vo!cA?kqUz_iBl{7w8QJ z*VJ!qEY(72)Qd%5bCYBLy@Xoe4F)j8|0?AIK~ zUz)zTH6?9Cf63+`lfM#wUiT_3qkO7x-HiJ(us4hU3!CRglKxGlr?8uo!G(`?BWbhn z685GqzW&6zYLysG^x3FqSwg6cKS9A9et`IUu4`r7!C{L<%c?qU|2vmzDmy8b!&3Md z5ovJEW)~oLk+SqXdi{Ep2}k-pYyG5AU?=&j8{@0cYV40(q~A~mDua(%P>gOU_-hsq znWB@aNZ5l|~zx0BXBh09H_(WliU$U6H0Q7>d> z>Rq77RwSIz&qTcTsJ#r5c zoZVzjjMMb2I%!I#wjmi69xV^UZK1K<$R518y6|T92y{dSw)ub8*LNxdg^qB9|K^d@ zMRvNo6jcP5%+jA>{b;q~NnDChhVCxd|AaKV!%cAx$1iOP&RfxuZ9je0k@{Ol*U;w* zuP|EhL~czKTOB77QQ`Dz5T?G3_Jm*LR@hM)R!PRvaVsP3Bkkf=Lo3Ux5%!VK#haH$ zWy-BBFm)bsZdtnd*sH|z1tT>>)B>+=-oW;m8Xim?^XZ(kI?9@4HQ|V74IXpzLWSr$ns);wr{Gh%v547 zp&x?;NN)Zu?aYwRQ=NvHLKm01sg0yZ(9Dt*dI?e>uy{y5b3jZ>lp@m}Bz>gi z(`F?USs-Ipj7d&;fs|05+ZWraGmmiNJ;V69i1lTNTw*2B+WN(hikcMl zDteNXC>S22$rPwF4KxZAn}!aec4zf@2~yyixeSkyq#l%Bs^M9aq_6Ux`i8&b8dXJd z`BEC)L}?`#H(lHo|ELE?@b=%K+tq%v$B5{t?n_2NLBNke(bK6Mi8XcPW<58IOYDy= zqYK@!o)*!#gm7%bqUnzff%2)g3(+2%tSk0Ii(R$$?U5wCN+TdlIQ}3GC?f+1t=YNw zNl5xCVT;f9ZBP6}5zHm23>|_5>p4w>nvS?Qu~q2v(sXvg3|-{l?c2(x`UlL?Zxict zFN++?ZzqT9c~i2-9r@VybmL2nhw%tSV!f=1HL<_aZde~-kDwrx(l^>J4JN+_1w(L; z$yAJy_64*mdkW?_&1q^yz-dXX ziY}Ytco9~2CN9Z=HTO%=Ih9POCgR+_9e>T5!kC}l?6%vGb3>o1rX2)f$46D zz;uGZ(K+|B2W|}FSg5AyFhz1vuVy_zTJg0+?6bD=+l}brrIreK>OiKbRs0e7nrhNf zk4N0<1zjwDY~dlJ$BE$%0O(26^;F7J;Lc3 zB&{FAR-;>hRs`x^j*}u=p?PkeCI>CSh`y$ajhvYFLS4dV{Lpan)DdfR{?s-s(jOa+ zvpD3M@ct|w?t*l8y-)OIzsby6az;>eok_=687RIqLhJ|Il(BiE75aqQ54pLxvd>1< z`9p)6M;e>uYE~x4X%QHG9w9j7j?DcVVY9 zTpO`9(fpe*UJ$qd3Pbn62GM4D*v&ifR&^9jZPTB5bkgsh<>efL`9RsshpeV}xlNbR zEbKGGf?D%DG!^P799^uay}(ze%$v8r#rzu7;xG$wpXK2-QhY6TXyhig+F_e!19L&YJq>T8L|KVNbwk+dfJ zGr!r0ss6FWg4c8%9g^FY-&&>FsWVlI#LfA^sre0~--D#1Arh-qy)i7Q8kU5hSkL?e z!6L|6mh>Z&n?WrZ|537NBD}S77fH2<^l2$vOQaI${fnh2Hcf8w#dvpryHt``0V&A{ zN=sq=fqk+IZ6gPYTZ|kAQ%-7@{$VQYq)0~3tg9OlBz>g<$Z$$BX2Hz_!N*)eWqOPd zIVMSe5xoQEewE}YxPCA30&i7BFR8FSJOyxaDM9eUo&-nt!;+hSq?SzS=fqm`M`M4a z-UY>xsiW|pau0IaJdFu#N;_7q9>c zrw}eubJ#Gt_(~=cz*A_%%D(wyY)1Sxp}tAk(F(^jxH))ClKv`@*i0)u1si84cEKk% zQ*^x**|#~O+eMgdSKWJk>&?}vR=o$l*q}J?2==7xcMDE>>=x6#ZFW4lVXwayJY{=B zIl>lIO79RkCP`rG%_FhdH+9vb>mMT&Ybn)i>>?#2I_;jJj6{cUyK!p1%Rsrfx+zpv zC>dEibZA%Y#mtoYCgJDjs4Hm4S`i_x2vUEL>DQHh}M66 zEfhfNP11#)x*W~%cKC$_my=n>_s+Tv*uV3~sLP_SlD$cwF`CBZrGWSY2#p7j^gozE zjZfmLRC6Yc%en+q{4^*i-Y~f}Q4p*2#9Wde;~8rFUgA$G{uT=A^MIv4CVMcYpFq;T zSzz(+sz>6bxj`TnXzg_0^qaV9PoZ%LF4@i63z5Yeuq(7Z}>h;CQXi0SqAne=@DEr z&!Etuctjo3qp9$iB!#m9;3PD2uU_}W^v$L z^D$N)lY-tfN`H~COfFPS4|H`?3pKcbg6Ro(5e8z4wf=H?mUVcC^fe!2<)@_RwA$!` z8T&JrXd~7v)4Ss50O}7p?YRyZ9lJw%$aslzw}`vnxT3JfVcvhBr{h$crgZ(o3WP%n@-Tk{rsJVzM=aHjNzxxmUlTjx zs~!{6p2W(iO^jAogtrtVwoT(~2rJ88e$%Bl!J^X-+Ss%B?L zev2&rUBr!ZEpW6V=^qqNV4f>h3ShLKVG@L|&Ffk+b~Wu{?VI*|Zh2MObigU#6j@FU zr`bvWSrRT}I9jQd_*T4_R3y!IV?p9DhBpg&-VFzcA4~M0iyAWrNv52vwWqArj!B0< z&@P~16?zcA^BF7ncZDs4S)q9hZQSwx1!Ad&-}p93vK~y11&OCQr%Rjt2v9v!y53&* zV1EPxnGqCSPJ;`@m1#UqpR)9(dgQl@X#Yo~IA%R7cdSpyW2{L*AQMI6 zYB-tD6Bdm2hE`HnF;HlfCfL~xpR+2=A9A!gghR&nR3N2~81y|;?`E?xt2JivC-Ji@ z2$!(L!ZhqtmSeJFUmed!HKwNcI%j`ZsFVJp^XxkBx~d(;+Lf!e`pI#s{unEdX$RQ7 z`QU8gz)7p!B8$IB+bpas-Z&kTq`wIJN-c<8O$7vrE(5G?xpaF_)WXNuWUBcXE8ml( zH)*#RSdwYN?>JOXXeSt-~Iw-JG=v;ic6p0=3F#>y#^cN11>D^;Z_Mjdzi$5}@V^X+jlfH@`U|kQI zl_p&7>44#w2J0#Mw!lg~d|JXHTz!qyv)5KEPfF>g&=Yb;p&Cy8I@=g-LDK(dQ(WY( z(0dAd$Xt_!Q#ET?xBpZph7rG1FJ`-^tYAqKA2h*}0UM)CAEU`nunv4%L67Oy2Q%wG zqZQ>?uvdYVjaCSMk;|V-EETo_yYwHU?hVBEMe9B0LmfbMp5`rUK_1MVRzAi?3bLy< zy%MM2!c)4EVkk=8F_W9C=nWpz8G1{8j8{^SUG-;eME3*cHgY&aKk%9T)$|OK{>{#y zChR{7ApZC8B+ER%iiD2x?q-vcr!_dQsPZxO0Dg?O2*d)l&DzlE7MQfEb;)Jb=7Ggq z^`u-?)xfBivF4cdBG{ktbChz{Z*b_8^JGVwze{&{k`XXR9;A!UuRvd!elE5hQvg z33`0BiUr2+Nl`z^Vn~&FE*$o-Yvf}+rY5#)wDlVBKBviPj_n{B&GY;rSGzJAd@yvB z%tm50mGY)FPb~6TrLXxIE00OxrVXc|{_J=vwE2_R+5@qeas7KM)%nKxJ<+Qy$v4N2 zLTwsxj6IZZEHb65=?UL#fA9GzNh@!l>Rr6r^F2v=6TDp2KOuKz_$xh>Q?*Gyk-vUt zg;NfiW3j+Xk-uEgaSxKdQUQe4L_dgj z6)&`$(l)8U*;m#M7pFy1E|0J;1FH+X3EpAgBK;!860sJ3yI4s{2YiL)QML%`famIx z;ttL;!bRXQ0(+43ASPW0_GgBr-XdXx?QWOWd*ehQ5pOR29ynxhFNcs7GPQ zhq@FiMI6XeH7VO`x{f7Q1g^gpOv{=~(MU6%-Z&tVI=kiT_@3hFKM(dt*z5I={Fn4i zq$9bgn{rBy`zG59@sDYlm%{MHZo}Ly!Eh{R(#SK&zs2< zNjYiJrFS8^qq5WjDgVF?bfm<|On+eH7D*8_yU+5M^xXcF{6+twZu{T4>6m5Tc$m$V z*l*fXs2P@2MJmvTMpfM~P^j6{W4aoa%Sfz}3Vftsnja%9hAFs|ikDITI8bn6vW)UB z6tR8qHF+dXuOd0yx^4x2R^Z+xt%gInVK|f$7F-_8u*eKuVlOZpRu9AWg-y6bne-DC zV)y%a7aMTgmOA!s%Srd(sUl%!p$slIBT?vKuwEfsS^qjLX6cKJPJA1U?=^LEx8w-s z$g&BBK9m#$buQ0`QcC?8TalAFqIMaLZpT}R7u>4Rjb`62^!0{X;)&>p1+oVP=}q*| zD*Y|zoIsos1xwC_i`0%>;n!U0ki%V2eEGTuDNqtm$DY_>&^O2X{>Jkdi%uodD-=Nm zw*yHZo%nanF})^Y|NETk3E@~Pn51yzeFC1mfi7pNQ4eV&9BU5MHNThVC4X zv8KLbxP-VFv@<54+N^F5E$R^@Y_q{9S+UAwch)#2aF41koy5W&h0*?x3ls3AkO|Sf> zZqqok7@TO1<~bFKu4YOnvM!PH4Bss2C(}ArN-PEHW)j`a#Zzl;1I2`Tpm0Vi3o%nG zJoP#Bts3d?fmmMU5??;$mqucR2YhxuSlr_8E|uJ-9$h(vMIK|(*~NmgLd6M9R0gLt zDRvwJS!LH8X~pECHeVyl6VJ@vvf#{wR;OpNsl@DRDvnT86o^!E>6ZwG#b3!Uk=5@=H(%+GfNZU+K5-GXDgx~_Eu;ntlQp81m&ZK#$raN-yf?;wj7meQKjbDFJ z{tNa6>joMS*eiOH-v;)h!_osi_f}_-4{`}z&>Rul%@y((flCaoqX6?x6*3Z6!JF?S zQ*ap)s57!a#A%MO(QwsRp+q5HGlv2Uam->#2~SgFws zH=3odnxhhj>faQx!M#*ibo+q`bJ&T~@5;VnL|sN%I3P&X*!ua~%fsKC9B&!Q@CSij zMVnX?u|lRi%4KqlSg{~|F$xt}J~5TT=N5D4%H9ZZn2nUdMJ?!XN{@AdiE)RazCX~X zElBz-jAiH+ z-;~&{MA~Y+JgxFB7vPybkRRhMCkmi&0$-8pGgMSvcu!V`an}L+T%#E}nyB7ac)}M4 ze9mdV6%IW)&FGre$DwJxhP)NEmm+heP}_s6e|$a=BW&`M;buiNIxWmn+Vl20MCay` zT?@?T1o|L7wlD5RA)K3sSNJ_T7s0zA=})YMUA+gzNL+=dif!Bn!E`Jvn9Zb4F#?uT zv3h^yF)~Hi9wc2{6gs^pX(itO*O3YYH?NNonx0tx)l=cZpD#Za&r;yZ^i^ut7RB`y z8POf`67|Ge)5)zA!f~YZe=KQb3OBA7K8Z~$hME+liJk@D{U@1g;-Y(|?L;S3?@7{| zMB-*=;_U`2f5$XYIL=0I5ZV7%)DM~QdeAT&lccYL=i(2IyJM2{7kN)Dn3up5q0%Fz zrrsfoKgqftlf-q&>C>v#=SM5C?YM6heqpO)vAVeKQIUTUo&r;+@R8#4j|5K`WJy0V z=?2Et_=|KIHFckIp#Cg_%f1Rp|4G=0 z*;latnYtl&2nxU@k_%_j&(u9}S{_iXM`7!Q6VfS%KU_dJSKf`GcECbGNY0*JjOly=n8lO@Ol_+>UA4p89FCW8-|cQ1y~Ls%bpVj1rc}_ zek*|mx0(?yD)<f8SCZ2BBIEt~5$pKYgvO z5e9LwleTLeYkwm+apDkjm$`J#!@%p*J1{|Vl2gbFZg^W2PvU$F*I(cB@%1eJzUPO# zp?%JgGsR~c3^O@Jj%RQBEj^Fer|$WWJeqO^o)RZn8{WKO3o%+WVx(kZWFA5kC`Yt2 zF(IHa-nThAE=&=Ln=7Qyk;0S1pZ&VvgGm?)44P$|*e%)9u{~9f`5Mu$o2s-ZLJq1zg;^&Q}po(!1l7&}FLj&q+5=WedthFfYrzz*yrlWyE zWsDyw3Q1w=krP@R+1ZJ?D#iwLum!0n+39=9c*>%2QfN}`z}pT~f0cI=gj``r!xn!e zjk*K`V-+}9|DlL`9nf;=l6Nekz9vakn;75C4LTi%`W8v$qhQx!k7f&O5iyJ=8WIKf zRhl@mPG`mA<#Z&ebkU$jM?y-OGaqfm`=Jv(Dunu@qc4y5q1z}af<3&_O+M|KZUX;4&f zzXwUvH(Sjx6eQd~d0_6hz$vB=AeU<3Xq2MaZZlyN3KV$`-#)Np)dn}W>#S@wZO4SAJyUt-Ez=m@sw5#u)GlO*5gaBNqRUvViYUoDLR!8h`G zg3S-p?OL`65m<5(UdzI6-#XuufY{;N&xhAwgS-ex(Y_VLjmGei=4smEp7&@3)b%Y$ zV@(FiXmGN(B!6ERv{wux^IIEvS*)7F06b=!({<<%#1Et!Fu9D(mX(5#tT7tDYT2%W zEM@?)rw)}}a5aA2g_cGIzALq3TQsKoAcZc3EwG`ka-_l$T&P?*F>DG!r7K%C?hGuJ zU=}&*3jbWLVnz8#oukG0sdC{MExzi_Ou3~oXh@SeyulFdEy?vYNjB02<`#_iNOEzN z*awmwkZH(4e9Pg;zG8A{u+LsW0$SXm3+fsH_pe~l$j=$qiOC3Ar%p}fN6(ICL@SRR z_(Vl1^2Y8VRcuv+tsEG;K*xMD2V2#=^d(!t5Uw9wAXRQq>1;HvT6yH5;4-nTzfLMS zqv6s<=}pYU1|i_c17f)UR?=9)du07#WqzNsMR4*0F_^H5!Db)Q(I!)#D{+st+81H- z>`3^ClE3jh*ybwXkzvR|cGY_6s2Y=NxO^qBY&Ba%!k2wGwxvJ+iJAytjR=)DA`B^A zG7c_G2F`znlbYRpovIEgp$`Eim&2SPgA}MejtoMZ(EeVbeN{7hS3-BLQi!gafIy@N=wFMuQJh z)M5^2@N;Z1QMloMwnfC2YM~_@*OwqyamV z3i{mHiuk5Tat6otjmmxzYHR|23XDMaUGYQq#F7b*#$M;_2jFIyS(M)v&gB(*>J+Xj zFGDKaWV$yed9<3l)$i?(q(RdbW&GmK1XTI3Oz*5L#UQ5@x&DCcM84zMFARonCk46g zbL(JvFp=MBW^RCyluURPazP>IorN(>t%__(jQInl7|-=EBc2k@t9kOGg=3rL$VM|k z-an%ZWZju?;XXeM-*V74lH_n~bL7irbz6a{+cxNJqbH9*JBHjkOPrUspIQL6^|!5c zZp+!7tkYIH8pFBrmLBzL-R?s1Ct1nTs{_H#$r-Sr`VNl!2Dm>Q#G6SYoOk#XH*dlg zSeX~3P8v-V<6ESDlYtx-pf^P{B0&DLy$=V(LF8{Zi5!!HRzl7~5=;Xefl~z`c}HEZ zY^M!oT(#cghk?E@8eT4F^qmQ3$`5ZaV<0z@tBj7hFmZnZM>toWbF+ zOYt1eGMWi=Q8t;!9xd`@Yl>nFReV##l8$>|BF6*gN5>e^?Ny*I)_#?HYpDP1H)Y?n4vOFXF!V^7mGsbR60kk z^WY3`F^~K$$f@#}iYiA#16{H2iu`{4Z!-^<0OOQjg$eR49|9-sznk9G&x&lPMDhy< z<5vawekm~gcCHe~ZLZq-x{u_%MrVTRgZP@ga(Wl@aMJpI9icqG8|Df7mtdIMtkYO1 zP>i*lxwO5@`9&cb@8ZhxvVKO1*5v)ibYi3$e=Wb)rTdm2#4PM$rsF<`Hvy6CDrWv7 z*4rlz>nJ&bN!xT}DP$!t4xeOz0?*`45(*iVY-bvk&nw4*UMh`frmPg@6_a5`#JCDv z^ZE|qmIJ#}c;cVCd?&NLYLgtc`T7MjPAY8UwbV`a)_DUBkc6CN-8x(UD6#c@7IWx{ zr2!*kocsB&C-qv1BLq_yX{?>zr6<>)O~bG5z{q~rTJo5ywHr3U-wUTtn8u4X=7+Jn zHg#7);ZnJcVNgx$iRe8I zY!F|N`Co;|X@sV6HisBNQ0NX*3oa?^2xcfr4jnqWQ(`f)YLi`suH;Ts9~4ZNyVXHE zJ8YrU0&9>x>6lI`9a|-K7FzZcqY48G98&&;8=}<9P;33_AJD6^MfOuscL5wVsMY#E zjeCd+XI|CV$AIfqmjAZG_IIa+V|%XA_->JWs>C+xa<%E39H(YBoK31-+#k@9mzH>| z)w`@w|Bj`qN{%}7vvm|D)L+fb(V)VNMbp&E8@oe{pD7J0vI}IdF{m8bBgw)TEARKB zNyD+OOhvC|JQw{t#M>^PE_#+%Q$N$|+M(y7`|Hm#kOIH_W0Dp)UIaxW4^>CO zDslAr%p_-1@PmiMyUqvJP_@%hC#$0WpN$~{diSmW<;e}lg&q>u!VRLul7{=XiySZX zennC5GRb2_Ik7VR8jmFJcqF_vF_wx=U;cAA^DhgDx?4+wpMIbk-w= z&w(GaIG9DG!fEPOWOs1!N?xkMu#>AvQ8h2qQWgFvnB=f>H10Ip7J52di~5%AXh7s9 z5MvV;Ob1bRFjI$DXc*vf$z$e(Mpw#-MK@3`i!TbM!`0PVaQ_J?NHH#U1NGJ%Wm3$c zQ{e^&P&edZY@a}N%NU;h@*Ryd`XjnvglaVp!>7CvznyLqp$tStCo&?f@#sxw4bYx#&d>*+K-Z{TdasKsn|1@KeO71Jk z`N|Y`dKgUPNUIjd1ZtQPgLQ@igYq zYeaHfSRzP{6#BEsJ9&rUEKNp>^B^aPP(S=xOS~yJbTpktUY#LvZmW?sY`4H`w}Hnb zAVvV^Afbp43>`7YuKbhm=?Jmd4LVNIWmWExyWgGNw&D5DjGS99P1})m%o)!2yTG8; z&m0J)25xWrGV&P{_p2PKTUva??=!tgxzt0LEAaDi_p>~ni6K$X0$1ApSBO|VamC#S z5itOCK#RYqs}?!+$G@AqK~-Ojwph1$eBT@tm$od!(L5i+^AR2SSEO(^GKZ)B{4HVN zr}WnxO7r#Gm$4YD5eP0viqH0DSf1hiEHd*`)BV|G1ZPSs4ilpBp0K5o3w-EyhUDo$ zol)uo_b|qDdBgpg)(_l9*Kd0gM*yX};X6(}ePJZUk@9TRJs+dHk$|dps5)U~!Kd49ha3+@_KMa}pg^w5)+FtTkwVq0r=19u<57JI zgKRs$=6X*fy3>-fLz7+rN4BC#?%QmpTx2yKYR1?g{TeSI*Q!6^?Cn{~Igo*-zQ7@p)sQAN z@XK9(X=x1ak`5#rSkq~;{a(g+nbiF-@+OkO0#xczgKEv1TKkiX@uw*TsYkkQ6PWK5 z(rOS=`L05f?KWdTG-Esi zQK;E;j9xq3q#2C7MBj0YpWt+EKa>oiO*~BH{!5UKd<*W|q#zfZhe0uN&8EW- zCBs1^?`z5qCGlK&(_XZ;6!xq^fa4M&Xh@R?F)`=w*o<7`X424RjA@!`AzRQG&QgAa zZ8FysK!p-z5b(U`;tg)cA3d?A0Q5 zn!~3lijvf6+7CjG(~WJ4VoBOb9&O48D48rTAlY;3_gGED-a19pj=Gxi4Gfy&Hnj?( zh;fU#6U`F8Zf7YwY}0Ncd^?Esn%Y-6o>^XnV|!dgePhCS3P9N!1JiV;MGHzsIY_wp1RFU1x(Ht-JigCLH$rUzw`ZBUEzsQ31)?W}xW7F+VtYMhQUbef^20EDp! z4p@_`LMHXN(;Wu#LH$KyF<_+7nF;f*_DoI5&+u`dVSdfGxB0R zFS^uac#?IQ!oV)BdN7pPMIFVho|Rm=jpfzh$(#?Cu&Lsjv;TRdXsu!Wya*aU{=1}u|yxmZ&> z_=d!DSI`@_pp#@m{%V(O3;R&anhOjpjwUrr)Dp8jlYATB|B< z+e}kU*#OJua3ne4v?vUFiKtdzT!Z*l6&_NVFuhXLj=DwtOT;F~56k~X#Ag;QycrhR z1Mv~dSQSgK}9#<-_$`K!lk$u-G87KVj* z!K&qPWHxD7QL3FBF@?&xtMGm=UO+(>FN#qW4BwQ=_b-vWyjPSe5vu;vOw&T{4@k}~ zL~kX9bs+~cIkHFO{+J}Sn8RL)`wOC>QG-`~Y&CB+itF+WPlFJU=^sY6wfmgL|U)5SK z#l7mlJ!tDPF4ez;vvTMQyauY-Ph;&=JLZeh&zqS~3!J3-w7yXgb+}zg4nRu!b=w2? zXD^jpXndC>RoqSzg|ieYnSvbH`vr0-03$HA!okNDaxHBC*Ge(^7WZKf*(r4AkW<9? zZ-6V~3)3{oPTT_tGhHT5?$<&-K$|$hzS@+jr$fNoQHmMJ7o>@VFelWEr*S|}B zLgjv{eviQob)v5+73By~pyg>31;EizQ+6onZJV+KGGN!Xm3@~{4;$4Q=h+VnQPfOr z6359f*Agr0Z+McbZ-88P3OP>Wzlm(&uZJjF&SzdsV`EFDP#cTBhkbQg2$_ zp`?r2;ol~mPDyOBh_35kHj|fwFXa}}73G?K2l)gM2g0t)__aAYhr9K+`JC?*k%EBK zY5p1``2*Xd7&U?@n#5l)U~5v4cU1YB(t<1ESvE8HTTLn8z9z|)N`_&R7>S=>ln+U< zr0*%nH(11d$uNil;~s7bb!d~M>JzkC7k!-}E)t>eA?Gl($%=58`Z-Y`_h(5#4!KCG zf&$Bal^n7t%Dbd1ZSrBPhHP{6HMJu#lE(1eB&j+B#?E+&@| zNn?{ic0kVdFepeP9q9C1_Aiwi=e+i~vZ{@DjM`CoGs8gHV!UI{N?$I;Cxn7yQ;tOC za?Z`O$|1G+%b_8?c6oTN{hvMV*E|Wum?d-g`!Gl`!*R;dL7Gn2{ookP`M0($_nh)tB6+5q?UF#$qV;x=xJ3)RU6{UDqu z1%Hwhj}W@uubpLfVE{wyw!JYDpL0szmr&FflqJT-E4E39Z4zSZgJ#DShV((mZtHAG?n9&b63r^gi6 z$JA2NEwKOI>?r6bK=Kp(`KNKcsnTkbn$-Pcf>>GE6a!J~0Wi%cSbg>UaCPV`>LR-x zu^yIAN>|(AEM#XR*H}6?R3#am08Ks38)ze}mo2e)P;1o|+z){RdC)U=!{lU!r^1Zw z{RAz{SEL)V-!M6^d%$1$CU;+l)yI<1yci}ozZ31G&ub*@!dHBO*mJ-0C#Pii%-yW% z=A=cMced}f_dUHKn|YeW@a`6)NUVlQ*TJwXXCSn|4YC1^=$hZjSGN)%FbQ;Vkdo{El;agt40p|NVV{(jA(s#^rsI-p? zW>2L{v!20?4N@{9uV-4ek-;x{`(|5 z>W1P(_LQ9O!v0|vZ)j$<%r14P#>x4O=0@}_@jh-J^$Z3zSvPAWzLH+6~Hwn_EGEv8wY|lxo99T>&ox zr_>eTfDU=}FvO$pKd?aDyzGHyio}hV|HQkm%tNs?YO&~iH8IztrP<~5R~*`xH2;Ttd zhFA0sXcQxApW9(BE=x}#qo)#wuiVzFA2U2U|5MirG)?~iShYg-@O+z_5A{M=iFv4M zP2O0rebk=jzk|9li@#!QxzA{uWebsbV|&AOi=QrpJ?ww^$?Z>XGy9{~jKSR*4O|*L zI~mDXJ!*3t`8BRhk0O#!$}|V9iDz-QxrJ1{^^6mo$-`Is_8g}x$0_{{#7N;xb8{H*?QZZl+L62LAb zOV?m>`^+g)do)gXOV?J>d4|iXZhU zcZ3*VT6A_H6_+AqbP|%W3(?acoDQKS7OA8#Z*OTvz?QNSg$cmEGhDd<+}*%pv^<>Oc{J9Y=+*+Rxr1MZb@!K-2(x(E}h{YQGXuoYzj0-5zphoLrlw~Y{l?hHf zY@i^_m>xc?RRRi9Vwqjld~F=}O=<_a?n25YE*ISgvE)~cDH zM|5}PC)X5h4&mHJ&x|!{?mLpPGoV(@wdfw4zw#yPrQvo-W4-dVNQ4aT=p&N=AS7dT zh0Sg{L0HqlQJN?e)01Q=_WF;R#{;Bi3LQtE^&6UURvW|H{1YXuK2v;F3R}P5vWxari9-J=EjI2# zGPt}Lwj!(_hG;5lW22-l+rZkJJuwBw*t8dUy+fKJ<#CS>>IP4`)?S|!?-jD3#6u`1 zHE3RJh74S`wi9?4vNgg^;_j5n47kmwf-aJH3Wou_i`vD&GyZFhJ5YfI)p#bR_qPq%YAhYP-A?;@ci8~<~o1gnAYzn2S3oP?PK=tm4Ge#P! zuiaRsHP(cuE!4*bR{#fzC#K$$BWb!&6Ij|{wvovs6G%{Fuw|MHTw7JNwZ*) zy-tsbLW==!-M54da&4(gf@>NULP=JLGYv$D= zE?F3^zEQ>mwGe3p@8W5sSsKsg_3|vjOt_U#t>4Vje7o%i1vuw@4Yl11U-$_j!NOZ{ zp*dJDYy-blykov$Am01kcOe;zhm(*@Io5#{;zH=XwY}DJ7C%MjQ8c(*9lvlT#d2Wb zlWf2&;}IZbQpFpV3NX;q;PME(ui_)6WFbBPIKll!O#Vc+#rZj?kxdNtDFA}WHf3uZ z1rW(Iz#hMDygnu%s@)(Z4gkDG@QsqQ@%Y$Y!i88??*^r$e3_JP+~v*n!pd<4AdByv z|F$MAE)XBczW0eLPb}R)1KIgB#3JKKNG{!i7MpfK_7LcO7YgcpLS6LK2kZF(aIFoL z)M+Jk{_JU4MRT;M2Y*ub*PutS?N66K2zP2Cgf(3{1eK<5A+?SqtXD$jqFZm?;=qjl-D!BgWFxLPn48Se=Z22hmE7MVh}SZ5V0zOVlrT zN7kP(UG&ja0Jul!N5mogH7yX*&LaCuBdMEgrqYcNiY`xs%V|%6hCSd^-0gu|6J$dVT26$k$V`Kh9mq`a5fnbX&Fyc#vd>fR}fCkE7%>u@Aye9V0C!_ zwCg$+d~v*Cy}(RiVcDs^x4GnSB_#GFgQc*hzGrf%R*7%fhQ5y0jNEk!G#Faja7d^J zTm$>>OyRb4UqX(T{t~ocYpz%Rc!`XVq3ri?Jr;2nI)wB|b0vjMZWe=_6g0bRUlN#7 zg*+($yZB1Vq0ySsk?y-tFmodwNVY_L1~mN##O+XqVqU5@{nrNeaJ|-KpHv7cdt*cM z`#PfmfqpO?-x@#S>Z4nhzJGcWH~wf(LRkJJMXx9OpIJFOW+ufS5W*}5>Putk1`1}s zWsZ&2yv%tZ3V;&?`MwLucB#lGwjoIVc)Yv9AD+TF4!!;>d} zpC*z$l)AG;+yi2`;`c&9r}}OWitq#($TP+9jdvj#zjX_Ba=#AYkp6LiQ00T><$rXo zGgOsu5d&CrJiA#Izwc@Ea~BeOrW3&?ZR`Eqg@W#Z{a5xRsb}lf*MBEt(Ue{~5Wn;` zpM)eh@rF-gwFimzl7eH77=9{UjxY7(p)wZJCUfaniUx?gKS?yBLX9kDI2fy(C-^{v z%W8-^UPYgkVk@7WH@Z6!y`t~ zpgC@Aj#vF`9PbYN z;2&gfYDd6Qe#wdEhWl9HEIxoksIdNPP|!2m7I>q&b40I2KvMpwK!`S%&IbHd}P;4*7VX8$SWQ`;21-Kq? zB&>ST2{cdDQn8`PxCweOhP$VEePEb?UJ4m#q}-4-IuAaH-N@atU6bug?k@TxgsLuU z1!4hUc?7JfcT^+w39Kgwfp!$$GkW9!xp?K2& zO6lNdAt63Paxxlz;?zRD@Hgk}b6ZC;eq%bsTI>G&{N?vw{vhF(=r4b)@&3#6m#4ek zi(v1O5|I7N#t7#TQ?WB12iYK(`qN zp(&6iE1`REj|aB9+W@Z^Ua%~X*8q6{mFfrpPu{;sJibNlyHF(F6DJ!WxU7J)J|;Yv zqu>VxF)um#P4uTy_r<`O7-iUh{bRrk%mV}ycYs~$lP88)dcH#z1G9S;qu`XH1>0X3 z6CcOLp6axqZn(mHyBmL!Z?r}=e7cIuCUTPC6hpigT^ih~^UH6YcnZ#g^ra)+*%fac zMVZ&|eBoR=lJsDGR@7nwDXp{u@Z9YI78l^ju>#cPbb>c6D@B0_DGQl^6pGaaD^;g* zG*SZ$+|vl*8akoL%Fd!^4Mh^g>UAiE)Mv5{+iRYu zh-?|tWQ>O_t^)2y0e=#QH%KoCG(@JT1*_CHje#er>xz_41SB>#nFxhMm+fIR8$pPi>t2 z8!d!cWl30jBw5uDefJsl!ppDr~z5Y+Wa=3A^w%?*I=H~UqYn3 zf&P#RC~?puL=tIq^1Lh*f6V3J8c=rs*MLqbm|>=6e-aY3>RQA6;v=xYgj4eqptTbk zd-jwl1e9o}S^U|Ptg`y{H%8?*c zIbgsZbk|4e3Pi}*DTJhk*FOe$DpwqVf&UxOPCr&m>oh^Ib5m^v-bF$>0STVn+2gpT zF1`9$lR+0{QVZkJNCpyLKT$f$LUC}I86mhC_L60wW>S2CP{gfe73;5vunX=%TDZQ; zp_ZswIpp*B97`JA(g1Bno^paIfaL0hz?DAlEcaO(AE?J+3Qv9(- z_wsnJO2JIwIWWaDK4^T&iy&ospcG_0k_O_Wf3E;Fyl)F|h>i+&U-~4rTsNS&JZUA5HSm+T z3!L;lm96wTxR<;>8(-$n9p(dEI}0qn^T31C;<)z)fU{UH5-#$`OV-kj9O)W`AKXQKev3BNj=Vy@b{}Xny@~ZEQCL;CUJVrYDyK#cpk*`RoB>D0XW}RF;s0|5W;!} zg)LbLge1f^Qjs_r;hjmwd4eZrgW&th0}%W^c7 zW|^)$xU!S3B>vJAp3RaUt5(fI-*cYopLAxLm#hUFzDL4>IfwGdp>(8(b_5(jANWoY-j67N& zXg;xwjjhT3E!n9Ui`K5aMO)%6*>!k|TYqe_FW7F2-%=pI1^hfnW2cO=H{VU+G!>Iw zNMTUy4`Bo0h{-}A9(vX-Fg{^SL*vyqiY!+=Mt5YjfU}HyNb0nuvM1X(FwKpl^9}PH zuThOX4Lb$?X|jEg#lsle-B&H(kA0bBv|#(87W&b$8DL>2+0ZsK*9n^%3$_ukK;1aU zJQ=s0${`Z2X!k{*{kYpQZV9{oKCUT!ku;KS0nZoifl?Rbt}X3L4d%?hLTskbM04yg zX&0`zo5PsDhD;k{?NbZbdyf>m%rvw>^G>3TAKmJKz4DG~jQM)SXn{=kv@R`Zq#aos z+dkVkP7TXMTyb-f(Gc4T!__xJ)qYQL9gM9;*n+3MNB2|Jz3CRZx&Bh(w1w@jPbW>K zbG}#YZSHhg%t-7-3N2#Y?<0%f65j9fP1*xf*hBU`>lQo>E`)D$$EPu~`tg@>v^r)h zvF%u2Fu8CX0#nrG)7Z`~^bu=Gmr)Js3jz&YM5||AeBh6Lo#Pt9HyQQayd3|cZK-~q zl}=xZHK;Gh$C<89`V^h-V!f}W9~>*lWx~wdgZTe8=$@EDpTu7WG&-^;$^D$c`gk3( zbRP>ebj(ZFhiTe^xVh)054s1Mmmh>jzvjimAGLj57Z(cM67aqZC1Uw1=<^Wti(U`n z^i{&EkNOzGDRzk|r9LjpG3mFlODk>_ITvVOkkWTazlvC2_LOh)7Bsr43pDMiJQuWw zb(SsQ9-Tcg&49-RmNLj4p3eaGRZs2Kg)369nfCY~Hpj zb)Xz8MB-s5HDqdq+b41u4eGbi+^L`+P@iU6oFVA*aB6GuR{Ox2fq&`=ExwEtzbQh*4MPtI~wm)FGe;aVQp@|G8;(vuuWIBqyY4x^$i<1!P~$K5z+t zwsvmI&B8DcepdfjHXekS@nQZcPv2-I4oTDYrWe`$)({c`B*fUb!^c^@fR+@keNPyD z=LHL~+Ez^?mIcIC1fdQ6198pBtidIAcui`QZ(0~8@!6<9L5WaV-1^OTDlj`zaU{B0 z)nYdqD0xy;VK$)Et=M0FK&5EzAHeQMmlKCzz^RLQO1cWbRfHlj$vz{+MC=E$F z%5_5maEBbw8rXc3(A%wv6iU4c2aKDiIn@B@rXjnJX7E)>@Ivn=&YQ335L9sQ9(>ep zPre==8cp*VFdX+0bVo&~*)-wE#o+g9q?bwnnY@z&LJN{XXd?1L*Nn{N1j%hJjBf4C z3MHG8#Czw0ie^m*~gOS8huY_JcXV49%p=+w^Xh*mTC0?xaZb5~U zsdaG57JR?4fSm=j1~$+ssC@k3BGC=)uYX`E3lwkaL)#9kp%v99P)h>@6aWAK2mqbD za6I!M9sRh30RZKs1pp5K003uYa&2L5GB0*-V=i=fbYz=NmV-7Bg!j3nJd}lE(Ku3* zNqm`Xa)w!D=Zl3_mn59LH&%Vs`UM2YmJ8o?i>J4;tJCuSd)rXXiu8v(GQ~H&TKp04$tRNqEb=tzp*2?>*XIIKuImwkV%=_p0oNd=# zMxLTDszF{(->L6}7m_wo94M1)be|6YvD<%qon9u^3qBL_^V}!;!YEN%r%YlF#|;;h z##_iKV&V+f1{#jaqguX`zF6WO)}l>wrg;4QceYj-d+g=bqZPTM8nlgBj1pKm$>NZY zxLT9O1+{wgSW9c+pOw=ohMT9LNK?;4OKx4nHRT2BSi;vjP(&d#I}i3?e3<9qzHj@R>CTslH!WEvRqB2 zk%y9wC?LOos?%nJBeof}BDs|i72=2#8Jrs^hrX2j{#l@t&~Pt{oGibi)Ua)tle5Q5 zGtawSu%I;g{m<8fCI@{vmY@))gxkPcKai#dS=8xk4L3#Y1_#Q>Nmw8sW?DO9)7S(X zZrk%~I!UV2?KXojE!T>}*<>!6WqHwA_Zdi0xnnS={&E(Rq)_wi&~C+mA!qwY*)YsjceSOs(qh{;R>+69qD0ftNWH z+K^k5vC07Nt6iw2L+PLdAGEPNF0eGJ5LX5g?iBC;r?QVj`^mS3a$-VJGv_9I=MvV9 z0#lqS0~SnVI7M$-(zdDT!PS*r`@5=ZD@ka1HXqbfB%yfdu)uG}xddvygf(nks{t*I z58D>mLR!!y-RM&Vwf4ySFDDC`+M#MH9Aga;P4X^H^<`q0nO2l|7A7B?1CFjJGO%{y zs&+6wjC{EA={_6zbXCzU;|a?Ej2QO-Z)(JIdPXI($ki+;7q5eT+B44i)pMrXYb71A z!wkLuauTEkGTH0%mO2R+l*!f{@30VZ!mZO?o!H5|Fl@iysmVxppSiTc z{;=Lcap-}0Jdu2We##KMw4Esgg+a2usE|(9R%0+%B6rZ95ABKp)#-Ph+(Z_z&N=h0 zPCjiJRtJque?qFJ*pOFx!xAJqB)`cRzyHaetzpfs+lB!$X_-bbXa>2-#2!~A!8T$U zSe(unL0wa?iJaL@V%r0k#Ef$DTDzYI)y?~_X-fFgowV{2HjI)V6Ce}Iz_c@r)Jq&~ zrjfU&Ip^|fdah<(m?VbB*E&Gap!i-@B;L_T9xXu$NViT59hM%&%EOQgJA@Yekmj%Gf?!neI|)a72@}P$0`BRPq*TZ8tOeUfbt9Njr?( zrDxU)EF`6}v~|~21}vSFkRqX1D|Z(6rU^5~wWY0qT^`8NNFIs?zGq1u<1*L7M{RXq zzTrj*tp;J~oCm1sal@g=;+$jw(N1mh-NM8i4r25alpDibvD4I8-hbbQv&;BVn(<|= z zt_2H5$#KJ>#R}51Kt>Zf zC#?2Kp*H!I>Z$I}71^*N3-xvQHeSqPPFr#dr7EN`Jf*2FN&%JGG2C2jVv#1Vhu^S_ ze|`VGmK50@Z+J#~?dpLVwyqB(uY9&+cg$Cc-M+qqOgpsxzUPecY3s1xD1GEFtP}d+ zw*N&~CdIC7yq`<98hK4!T4xWGGhpK8j=VVKAf0e1SV}xpDO(UBD$>A$bO+u1j_v-H zo@Xal_UW{of5AShC0k3#)zfvqpYZ`_YSEG&fg-7L1d6hyc7Dc?WC=GULtS?{_3Lpa z5cL#dTFyjpnq@Ed=DsCWO^@A%8vlGMCfLONFsL7Px=DnV{7rC8} z7dALowO^8Y?*%QjI_dmtGb@#QD5wTG2~Mr&9D0OTf}Cp4MD_(6M626ph~jgk`Ldv^ zbf^YL4R-nr!igp5nYIta(yXH(&Fv(1 z321>`C~)|Fu`(JVXlE>=pr&&y>gGVsrye#byWR^Dgw7^TN31RU!c!B98m0xJt&JQ? zOEym*at_>3_cOhr2n7QwVMS8I!>WGm&;4mRIEM)__~T6O1WU zsfzzcSo9oZt^PfE6uZIpS6X1@s>hZjvExy`R`s7NMja%1AzvDX#H-OeiYP9jQnk~J zM&u-m6{9cjpE{g99ws5>6lVs?>thohnOpg3EA3vnYGb~yzDMnh)IncLY^OS=naznU zU`|_T6BZOL7S$AIxxI`I+d6vN*x>Zn0`DJT{;)H<%|l|=8ZK22JMT8`jvi8!;m#>< zPmmSYh`j%iyAPM`d?QXwwc?s3vm`g~g`@`ey)=zh{X1NZeYLjLV4sGQaKY`ua^Z4i zT+K(ZIys&XY?KfEM{xacRq;2V<*;YbBY;vwC*Z`Szj_n@&vC*d! zv$jKe79XP+A-bg8G_@K7{VO1yuHwb(3blXN=>iZY;uT5?#hgd|P2mbPxHqAV?7 zM_^MntY{9UakbRHK@+@?9WK+l*fMpJG>ovDirA^!dOQp25>dcvMUC9uo+*tBJcb_|q!fLP41p%+mCgYR3nGO?33KPfO07o)RsL)z8S_YXTQNh0ZJJ9n{<-PTNb^SU6eELT%b z<1=i5A%B4))JDbAaJYWW3{Wt{hcc zjWc#goYaTu_enC+B<{SRu#U6RCnej4xVF^S_tiZVe5 zV3H86vXQi5UU0r`H$!~cYexLFqlDOkg)`gmG>UDaOsoytEq4+wC>O57LIjg$P&;v3 z>^(c6Rkr7%tRc5x86@w$DEl{gh#JTgXwBX7!qf8n>ZV8cv z)2LQ7F=+SdrV=S|Wq!tbfrX@9(coxxcWa6YX;kK%pU&Ryx~FWR5+Yn##$Jx>l=Gz4 zQM6CEc?ya&z2DWzo;!JA+&m43IzXrjM*Ph>XC4m{yFOW%Bo+Sj6gs5FHKqg_E z{1LC6Nj#f~A|3ZR+C!EPr11-eW5L>KC-EFNP-OFL+JFQ2@8d$8bBH<#7nBQ^&bC+|<+a-3*=TXoN$8jsFf8wXp7+j2DMY?8 zYiO_cB@QQh8pJ){26jY*TzN&(Pj}7bqV&W5FCXPUfvV^c9RQhFiAli%=@A@QsvNxy z>gK=ek!w{ao)3)meAN1ZxbSC2nP%<^2@#oybsK<5GO=6`b()D)ab?!!!5fGxUo*TV zzT4dJ8EPes9pDeL$tRxki{{v#PQ_C!P*R*Qa#Lk6*&gqVO(D+5z0?uU%-D6@t?=$vly_nvciSg%xdIDM&;ZO$ZIP%d1qe9fqnJ7VE9 z8Lv#cQP`FdbG{<3ELT%#5{eQFBz`dD!U8qb-A~SH|%- z9$~Zed|(52kftSg__)IW#nK!iy2^m1)ANvrqC37nN;?!C*aB`BSO&A){=9og!tI7) z*p>lZWx(P?eE)1)P7+6sp33C{WU^wie}D1!)v5gFFv;yXX4b~xL?JK|DU3^0D)Vb? z^8U-)s@22Cy(-v4pLK0P;i{lAz!7Gw(kbbcSTo@Y3###MCn{l-eE-u%y4k0H2ej1% zgb}5BFC@=JUI@h+B#rDtJx#GI2FRc?sCKFf$KI3#OU^G@{#0Y~d=-$LkL_qMsT#JQ(+H;5V*8owW#Pel279hVP}Aa<5+kJQ zbZpNC<^8ws$`aJJoG&S&SO^P*s%Q`)T^9#+X?+t|CansGmq)lf=%i?fyUD@yh9LUA z7e(;^#FZWJOEsxAQSD>rNYm9)JCN=?$|Y3id^Sd-uT!|HA{~%POUHH$$s=Do*ytug zE~ehk(eP(AM#mKM0Fn&AB=${4ahF5vz<&5|0z|&g*bUFQnX_D+UW#?zYwh&@i*$_G z!5IH7z!)niv=qL7bK!C|)eU#t8PTqgMqor=6p!yxmCBOOAVNyWicV~r$P#-IkMp^{ z6Hbx~E>~t58yZO>>G)b5-v5lYjp(B4IKujd$Cvv%z{vNUb~Cmt_|E6dfC z4}+_#-exJib=9We>z{@zsLZnF7hGA~7+Di~1{ma(bB}r(* zK=`Z>G~f(lCbq~{_A7=p#W+B&ZPkA3#<_(4(<$7PQtGtg?k;SL$ zu0LFuv-H1CF>mUNr=*tKmAl~bdL_hoFM0q^93^_O(`M5(9zxgw%Z?pZx)Qr30i|`O zZJ+{F07=$i#UT%>fX71t+U=eD(%8=FZp9%xX;1_sf^|G?w%LRltP8fEj2l`?prCpiFFvRzA zoM!N<1ZWr9a41}PFE<)5=94>YK|-`E)3YoOHGS<^BFT*hYhW9DCE{@d1)et$^G@VI zKe=e~0K15jcPzz>&F!UJ865Yhcol(&TQjmpwi}N3V~FK;MBkl!MHK6)lhF?c%1-iL zEbgy^Gzc|j$ItLB=_D4fg7+|-z2vw^Q}O~%DTkAO6ESQ8=7o@4#8(5yJs3y6b6UyP ztR1~ZXir4dQPOBfZTs1rTQd;ra=%D6U(jk$BSZ$b`vXOK7i~jWZ00s0qt)If-$z+2 zlWR*)o;Jl!wh{4QU^2$*IyY_lW7?95u`6e|?fC@6U+O zGKup#a&Y}DrhlqJydEu^yL`Js$A*f%hmiN`f^X`%EOL7orz1}Cl~m{GxK_F3iz!ri z%ivQX&{m=~0R7{=bV@2u1^wR4ZvSG7e&{q)XoS}Nm?7`zez&OxRUzxJ;*fiB)t2Wq zjN}1j0J5tpuuOQ1cJq=Pz=MNIoRSnZ@rB)+s$MpQU1pIa1kV9~f62&I| zR)Mkfj@Wkfmwu8|$;O9ZnQ2yGtPlvIb4N$CpE+o1v+`V8DOEC-o0*;>u_YSzLf-OJ z8ZnzTsog%?ve7?(nw4yX?2xOe9#ZrwmZgbQ`m#UgK=AcTD^WJ0bo-qaymS$&Z7qs~ z(XS@{DBY>{FIKQh#|+M06fEI8MAOsB>NK%@i2R|dln|ZERFS~h~P@7F@iSPDjp4(WmEy}SR z1`qpZ@q{fXyedZPa??mAc!0vi>44-f^zegAnv_l`!E3qT$m^0Lj_bD5!TVRODCyt<)+(o`0gXKIOv%}_mtsf|0Jjw;q_AhJA z%(7$7Q}9sdvN_7GK{AjlgKrdy1_Lq2h$!Vbu)n-Tk*DI{vGqCmhT^<2xhteftUZ)~; zT}g2rD;QIGT-r;2O64tvUm^^J!-C45K6p)eLU!?4 zE6(v)3aq1}`>*mqBM-r#Z+m-8$#N9OWY4Kw#V$&DA65)Fwg^m*2jI?IhuU&!7D?wV z*!FBC**G#?Dg!)hB*5WKmeoONTh5?_x1b=-b40v9XzQ4SC0{E{8K+9l?jWgyI3e`8 zytL8tO{Wj|-lhOxcf%x`<5x+o4R0qj{1xG9#`vjW=)+t6Ip!y(BmsTe{ zbO*ORL{2E)Q6+c|Nc)5`bDl+UfgK51E3CB~Xr{VOU)TE~um|!$r_ho0t$krz8E|yd zKi6%9$q9<0h|JO<@Y+m5QiA;y5*k@vG$aIkvtr=4q`h{d_EX;$CD$H zI*5@j3d0~0;$s*dRseWh4p$wZ05mb64ob2*xKGt#^3^lR))nrCtlu+ib&pC=2A-!Q zHeulK=MAw1^HgWB@$rYvny z?SDMw1*<3l2VY&S-4_@5v^8;f6Xw^FR0cA(GBH!vR^h zaz8OUvq{cMJarA~M^41k31>HRwn;%M8a%EEH3px9eHd)=oLr&s`7b7Xx{tfLfB1gI zl>2bR)X>?<9@VEue>$+W-G$#am_6S&$HHdUvqk&qivlg@W8fFRZ5BdjmJg9XR5its zL!%_;umZ4)XeUgq1zLxN*qSB@52rx2PRP73+lpXZumahJLLe+;`61;)S9LkzMB;eo zojlgL>wQ^igqDH)YOJ~PK5TX9FK?Lgp?G^wp{Ni7#W8VWxY4TwCso!z2FQbj z0{a4d`#QcQX_Wo8?wqqn`t25rRGb2(gH@d`jX2Sq`I2j(3C4*U z)@66f+l)fyP`azc0^*l}Tw%abC(RmA?X!w)$qV0iB)nD+iV^pauK2O&Nce@VM=eJn zvnL9eU-WmuZ4|#ML@tg#&N?aAijP3LV%0)O84^1@7`QR zC$A8H+lW{mgTEJFwRj})spN;uKXm=n{m5FSCVb=tVM*qUQ58p-m;p)Fvj5Qh6U zM>y{Xjli~I37)Fod(B*}JH=P95WOyo!tOF`cJN4t8N9>@Jp%N5SgDMIFVZ_oFtf&G z6O4;yuxua%lolwYa0m3zy zvH2rFSVK8v*zB-LajqZ>^wqZ*B(!nhE9F#G3MIc`N%bY=DaZs2e}St|ZStbSh+i!h z1M`V{Uhaxm*?rl4#eKzn)qRzv@;efJ=dk$M_1{>Y(mnu(6u{{_%PfT)ey&Z32;mxp ziZEZ3P!Yy83Kd~^;2PoKi8wW4P)E22xF_~~xk_WTB-{q!_)iS^uP6T}Rg_y51(WEL zaEg1q_T=yv_{rg~@RR9hfdmd0!Uqhm7YKnh)9;zKfhtZ6PgvrV43O+-?`DL+ryZc> zs5*$S7n?ABQu!PV$bZ>7mo&$5BM9&3meepM(IQi2AlWrjm+6f+zJOQW^~KE0h(w}h z++P>skHmu%MezxOPuZF<3%ggaY7$QsVEoxR;D>Ku^J~V#Q-wB&Km5AI$00$BWI`p& z#JLRc^ly<6fBm-#<8>_H>&^zlw&+S|H-hEv2DkBwR_Qdk3&>k<HVLKd*%d2s zHetzjcjZ{*GV?JT9i|7#gCfwar-}};q)y@`PLfR6z8n4Kdbyc*X*!qemag4NzO5uR z93s~p%3gOUyZ@+*OoDi?GFYCC$g?P&d6hO-GG>F`L zGEYC~j-?pK_F#-qLZ0G0Y)^AqG7sWu-d2p|M04H?pHq>V@A=wKJ#RbtqZ-V+sa08? zg*Df;r{N>GWu&z-*d@@};=R8sms?w!CN&e-wt?|(Jesjm+B*_H^p>#$4*b4tdk_W> zaB4{79V>x7Qh$6gyX5^?w%uP{>!iPL(hO+ZC0+n84EG12{_vxTKg@%FuABaL`|Y+Y zhbLY37zwvsx2Mc!=(gNsN7`NfjAVanYJ7;x{O+AV7B3pLBKYfHC5m7VxxZW7xklbD z8*-6pYz1!*BCFr-$U0(wnrH0Ce7g`8gkX6BCtoYtP(2Sr7s7?yL(qTxWbx+;=Lv|OC5op@FU(%Gd|7h^;UZa z?U;zK`{DJCIf@O#jdTM1y2?%3%&g_dC(Um;mE%~^9`Ga9!OIcjUjck=rP<|2B0m%-1@9$&T-pG$5W)1X%ocQ8>3fleS=JG>W zcBHE`K&oG3EaJMv+-=|bYk=s4vav|_l;wlFd~Ws?^zf61B7ME}OPW;#weZG^3xE9_ z*ew#-m1+X=g>r#sBV)T5O z$GfSEgm_)ye}VD7*1%7^L9)9cEHaa`|X5^bg$%}y|-II8kQS*|f=Y8+jIbnxyK0 zwMZt^;%?<^fD|#83zsCl*tdA)sy(iBq>ADNq2Ha9<>-JO*hGao0+uQRl*H-zomr}- z$^aeINL6jjW{U%$LMxKM_frNLmF?s?dEqL>mv2VD zxhUx4pG!g&;ID`%Gq=e^8-5Z_QK$)(0YxuRu22=RnFZ$VkG9z0Uq8v?EsJPD*P#a8 z9tr%`Vyto~11%E&GSZuu%O{gPasY19)gN{{nkbzE3+=M6g z$u^0icIy*T7o5@ zG&(~%^iB~*+HxaY-OqLF6Lvv?ZY&|&JyjAa3tPit=A>)oxF*sQ^h-3!2FM`%pkT0Q zFwg*1256DAiF>0Vp2F2#Y9ntXN$VIITX+@g3=D>Af!j9?~^*G6jWI`qH zlEBZG=LXS7GgS%rq(FWo+MxpY+eVo^J&7MC1GH!zXhl+3WjVLRjCY1*za!*pUue5Y zLou>3jt6sQUcZ?+&nA@OoM`(p(Lv2=lifmhY>pgxTZ0tYaWqEY6wfOKT*{lOj+~T=AU|_*!)_!HYr=!^{8L%*glauu-Hn zG!#QODagJ;Wiu*@L_e?rQltaXdnRm;J61rHz`hTDMF4@u)_%o&{3+MukjYN;|nlj1p!wLG@TU|#Q@9c%h&3$+3*!3e2U ziSs0?lBxtt)vZt1Wi}|i`IOL|hrlx`x}g#vHw3tSCRvdrp85bDMHq&#PQU4|m5 zO6W$wSMi@Zrt+K6_sdyw<&+bp*DsWl6Kf@i*_%9w*YL83vv51fs`Q|T*C1Ge z&x)h^aMnfAP3Tb6zXpJbu1S`F(!c(NBhF%*P*^x8dEQJ0G$*;;7J^VTb!EgTlG+0v zLQ(1;a(wJ;4YPsu7GSADz)WE@0P0gVGOo!Kt}{!UT{juliey3^%!wwCoQ(6@O`*)J z!?66e>><9m2-{=^lBx+kfGc&3l13c?-zE|*RR$;t(81GWchz&qURdhfn;WLq#Z(l}5%}u)O7IYkxu>V+&O&wm+B9L2O z{q-My<3uZxLKHadYk*N%>c1d{l(88x|L^E_Cq+78FK&f4p%l+m*>*B=@{%=PcX#9H zp-%ri<)BEaCbWc3z_odDov+Sz)Q%Z!=osc;qE!0qXgWKC!G{2d4$Rk2eD^GH-Ue8z z4A4Q1l+%bV@=ljXe_(evJ89@dln;R?u>s+RqSy+v%qmK?R7uDz-X?`f5l!e>18o9C z2llvz`F{evB0jV@cSd-}%^KtzD5^9qvn$~M11k!I4>f1D32Ct zaBNSmZyZ-pNuS%kZ{N*Wn5RHGZAye6kt|1-JxGu$Wrg;Tcm#saxIK4Le=!pEWjUAh3|hT6CU9OTQ@tc-63 zlQH_rY_gnPX9UME=-CF|rug+BN6_c8uLGnLHDkR?1Ii;+1}JIY2R1Z|S3MKi+7~bL zHy)7TF(RrA&_Pxt#QK$P(JL5qcfmdc#8&n#MH=BQ?QwQD8p%Rwt1HW)$2M|0Qj-n- zbBTyO-&kOtFimyXJQ> zn$J_OTo^9T^C=WfT?ZPJ6CVc&v};!i`g(GB&f!CW~P>zrxAzRGO8tZ%P@RoqaR%-RXDR z%3?9l9-;%SNPvr(Fp3_YGiS}}`oj;iaVLDAdAM*axx$P}(9EQPBa?26{CbR0pAepMDT@ z>qTA2mMQ~uP#fe``Mf?MV>w@Z@Ujrg29CWZYc#DwaqiM6lB$Ht=>(;ww^SiuS|rip z&JzLbGkHc>-+gt8&&LQRls225#k=|8^LIBgjko&BDBZ@!aEXs-MKbWz2bn*n;`N)E z^K3$yS<9f|GJnbI=vl(qKQ-$j;9vCsEm|4H&T|+}i`e^l9GUk@HNaC+b--FA6Lzve zxp;VXU-aD6q{Vwi;%S}34?4F;7O(-5#MvcgTL(lbxaAF|wvcV1NT_f62rq(A9;u=v z>eivhaa-DiGPBNRu7JZsSQ(&2t4v%OHb9EBuod0!Mvr5bYax1a~6eU*C?QTgXTA0zZAhS0^3?CEJ z4x3SvzpMyRe>@K&shZFTmMVm-i!Mk2#BAv%)CwSkZ3hTf2SFL)GO?SF8L>Obwxb3K zbuwK;45>hvcS=L#8Hx0Dao7wqY;O&TW2aS=95Hq%AxM!7yRMDb!LYcVAbN~+7L6(p+F1<7M>nCAM_atm` zOU=mrZUBS6ebS)E1X6@x49r5nas}(w6K#MLq4xP;t9X`Sw<`al98EOVIKv%0sR9bf4A+yrggPc-B739at3(xoM;ou%vy%?AP=Ev>MBJH za{mm&pBIV2Jd=h?kyK6S0DM9~X3mEXvz7Ame9VDtp>>RMQifSur%0*}Sd)5!5$<_C zmp-RPYgC*$hVie2kRP$V;%B~bX>8Idq5+;Yp#>cuvV+=<`jS*7SgH(Al21IyBy|w; zxKU?MF+v+qp-!??NkBdSkrMseY7?yk=K`F8v)w~_w@}|%(MtwoM3f;AVl8QZ_X(>+ zmo4j&E8Z&u#z(&LBko2PC0MEu@Bw^$tOI$w$Q}^S<+9>=!?NJ0SVcPFI0i&XQ(#RbHk;3n(sMTH+q4u^|BE~*Ca$&xavgtEi z?#m02`?;VF-SBw>P&L%3MiDCWm92FDF%>oe zUZ*HK5Ld>(aS!8*k}68dx1*JRoEGf8by-7}gVJ4nBb}-P*5XF+oglHBkkF>z40-H6 zWCn&n!QUE*AXSKk+!qF7!Mz`C`FL&-X%F-CB}moR@CO@hDwMqZ>pMSR0pE8hhDAZ7 z4|u)xF70Y-M6i=``;yhGl$?h8XWFd5i+LT+IfiD zUo4vMp8om?#vHi9Dz#BN^3APT7@S)nAe245vIrV*t%!~g-U{Jkx{k~y-O9~4rqx}~ zNCfEtQAnqtMvTYPZqkAu63%G-@DDS_+qg-r>UYxty!jd?#{UeK<&d@qd2LUnseoQr z7HGeIpLfY}$Jw_R@cQ_1C1W4fx0PPH))T^ zT(P$W^A=;`_LvzNvDk{5x2G#oQEG=`s5SHm@ZJDmfk7j^L)|0ypel_E^!?GVh=t7k)&GAdr-%@&^-_=`V*AzyS65o^;h`Q?kF>W^btlgLI0W zj7Q&^!dN8TSH6NCl+)?5p(-z;&D_gy#@_KKk*KFwvx}t7+}+sX&6shKp7;A(rETJD z+dof-KVMh54Tmyqxh)zE`4s`AqR`#nj7_#n;?5JTq?Zh6Mp)$qz2Ccwu1HbO6;`2G zy}%E-Z+jLvVnjNy|Bzc@hPky!>_FdjpDcYUnpP7iE7;=Q+JgkCQto0#Pgvx*+y@`$vvB*Rh zh?7ZNH*SSBYU_yo3pdQp;8(T4o*IGqA zeTZ$+BI7RR9C(+V8d(q7aR(h7L*@9-oIVm{iFQ*+UI`y%4)97J6QdYZ;t zB7ae(T2Mm{G0j=uo6w!!?S09|>G@4O*=*^qyC-dvh<1CoOKf|1@v|>Tj}R}v zUjNVEeiz-krzS0=Eqkap^1S{p`!&|Qv?6spBDqQXGvH%+sI&?5enY6tL|z+i2!*0jWqY{5l_QVzD}yET^ll3F7c$ zd4_EJ4*GgWeeu6rd#mg3uSoxSMpSypJ(68s_HK^HCXiRWj}Y9=HB6Hpa^5JCs)X$z zL_vFQ{^=s~3p28a>V8~*{#{TO>i_6ElO)M?BZ%&GOJ*~Y2_+d>0>Cb*F4G&C=>~uG zcXcr_!aV}W{*qZ0{CQyDkemsUs~ltNq6|*Jmp;(r5u-HyJZ5e*C3MjsRSA9;esb#F zM&+IAoA7}$v(Bc@hA%T@B;XbL@kkmKPcQb;@}%ah_*Z*$9da>kM5BH^1 zF*#S0SF_ZXoY(ay{>`p{lF%;NN?)qwT@g!n+1$OV`$N{UsDVFtE>5SGCEy>Y$NckM z#m3d$*`+3EQhy!n17el*N0t6ESc@rpZ~XAQzn@$2SX=s{-RV4zrJsj!FDlxc>Qc)x z$bui|eid~3*Ok##J-ID4R1!w0klK;+>s=3g%Kw>`A9?#!@`< z?n(0>+te)Iu1nr!BULFG^^qrc%z?sG#o?-#(4h|o3P!@cO)M7>GWYw zq!X^Q>yzn&WI|2Gd`WJ0QO^SXR0w8{e`zt{QIx;kd3dTFxnJiPw`TuK3qkC<+zGIE zS+v#-rPu_3l+s-H8%ki?fXCDmR`B0NnT<_}4e%O@ku~5s+<)P@6@oR~7fVX>^e0lG zsOifRpT<)vQa>9_k_nHAHJSHr;gzz6N&>SwMW~1$6x%Q_=gr;EvLbCJFGXsbdJsOV zL6$dHbOZV8Xn}i?I|z5x!1(NORK)vn>1;5c1&i?4>B-_L4-K60o5Txu9sB9}$&J`R ztN`BNdi~4wXV)oRq?-D77(>-S>ff)ux#j(k<8lU1yF2G#tvU$O9fDXF2(7OOvYt;n zFmd`SQa$r7&u&tb5n=>U18572O$O2pFQFH6by=hOL&ejMl*Y4){a@p4;$DGrKp3l# z2JzRfF{@zU&t-pYp)KHa+I{SAzQ?o;oga&d!f+gkU37Ys02$@S(xo+;=VeF;gS*Mc z!>8e}fA3S$TH^OFL#(}Oi0$Hhjzw3x!_GNQLM88(VdL-4SNNo8`1D$Shaf=)>4fXx zn%DMqB!yEa&) zwozXy_~&bE^xr+l2e;si+}c$S)10p#_J6e|hiGqa#;zb(Kd>Ci%1k$)_$fjoIxg5F7p`iu`i=#w+b`tiHks$!95|Gr8r zMmE3CI!J(ARoXNOwglfo5h+`UR0r)++0WPfn8b#my>?p(2PsAeqYZ*!hSPAK)3NRD z&19i0(3gvB1jx-)>QNNCXz4HImH=;8Hbtkr)v$YFYnFp31m$oIB|rx0z&fD}Zi(2> z(=;?}D@Ld!Xi_C{GzYgd{)+aJRnSl6E3HJ9ptY~X66_5P^eSqLZMpuI+iSJ+wRrJp!%$ndQxBxZMwWVP6~NRf}jZIJrWonI4Pw zP|-mRZ$Yb93D*Jj`A|>1b7W=<>0xas%9%8o&!F_q`Mt20T zJ`YmE-2=zs1yztLWrbD>!@SW$)1!2!h^ws~4y{v`E#biJdf3}i2g$@((`Gm7ye2+x z$wD20M!1XZN@)BkiBo^KQ46a)IXeub-By{+oTZu*P~~Sy^Hb_m9_e1yFTUKzcz(sS zG8G8&nPi`n(sJQ4LGAN%XLq}u<|ER|=c zh!QYlQv1SI27%XravsUeNIkKI!eQNAY#iE;*H5Vi&$G7j6Vxz?i9&-uuQRX1bVHSY z?F*tGuZD9FExIJ^#o5k>Eq7a`njA~Fxcv$yp3T9% z_Cv6vEpTVEk@R|p{Y$g7XrcT#5#SLk`HAR<^u|^M88W!LIW0;=ES5?tze)f#SJ8u3|F zgL|kXC<*P>yG?w(<5rbS*oIATLAd+vtoLy#qEVf0$%s?n!dQ#tAGpnB9-hPry*aibdDVxMY1q?)YH@D2= zP`f9OqON6=&fIS$O5vhr`-eiH<2@j?(#$# zMN18ty(1Nh9q$l#>Os{|o7Kcds8o8k^1{MzhaDfUz4Y=l_YkG5p^~6U4TN>#54_6+ z)KR=6rD4reH;_G;6DkRrh2{@g{bbm$=_|Efdj5DKMdqcNunrPssRj*s)gD=$rMnQA zb6BDsDO^ANVST>i>*N$O6tmJb+`}-PF3!w{@IsCAQ^QqR@ad;v~6=GZNKTTnq%eKFGo5L;6 zI|+>0%T54z-g2O##l3K#-XscNxd&CDj|Dy3Z4~)*r14XBia+E(P?Uzx=gvt*<^vj)@yNv@d&**nBYZ3$v9@Lst%E7s>(6a19krYNUo% zIz^~#ovBd5Rwx>2sN1@PD#HHSCu|q3M*`BN-Y{R_&IZVLIlS90;eEpogC{Kq%FH^O zI?SmX4WB-udHu!65%!Fc_FV$8F3}P<*I~|KxFW*D=T+a`gLUT^K6myW`}B9h==#@q zy~!TKz-Ls+=$J6M?_cTs%)HZ_k2)xe@M9Ed#;n_{&k5!+Y-IRRW_dSrskXF#?X-dc z(DCq!=3zh0-iOu14Dv&hX_vDL4ZjXJ+<6}kyLcG%R{8j#=Xc6ifki(Ru)V+I-pONB z?UzbwEz17k9fjcRsyON7F?*VvzyCM~H;Szlh^GC`XgVqSyIX&=na`_??>2`M7wpri zlu14mY zBbx5}j~wBX8RR~p%&fyq8-RFg>TF{CJ{P|2j#jpW7F2SG?A(+nl?De2ve`OhJ<=i!^Rcl#cllzm4qV*nV30f)emq&N90)cK;DqNE|>jFmjfr97k~Us z{wDUpM6n;`_{V9s_Q#dBfBj8vH)&TY>WTGf0oWJu%QiEMpsyb2D4kT#gT%flH0A^* zZjRE`*%fJ$#40qS(5s?ZL8=gZnbGjRJoZM~N$o}1&QAJSWG8-#mM!@8urQ{L=UNx4 zc+xNV@ne@(7Nf_@lJ1EhRY<+$DW0gMWwX>@5r+USkY3dP^|Aa-R{NLTlTGd~yp`MB zLuyT!VxVKu0c{Z87Y&aa`G)pj{mM34m(ZevWWop&KBe3OS~F5l42#rm(jQm4izkPt z>S;wP6s0y(PhW>87hW^i()#mna+mW;tT%~?b(9u|tyrCH*{@_@%2oAo{Vo1X)dgbz zJoXw`Cv3(z=rX{QwHfo=RSuJTT~5l1Lhc`u{VuGIt>Lu-`@)G`kTS6rC2+)9vV|%tkvzh18zjh~oSB)R8SsGWOaVeP*dl!ne zBX6EjzxYuP9g zssWYIP;HBJQG8?t#`c5c6=%yZLOG~Pt<(m6;Oj0lQgT?{Z+;*Lf^~s(_AioMfoF-~ z^xan2X2M^oicYT2{GM~_Mq5+|l__dEyBuB*l>|*{B>qg1<6DynWoDgCn@sC(M(EB1 zfR|y<+=j^krjy_7@tfD*eEr?y=<7Y$hL5emUn8P9<}8nXJjN=N-S( zZvXyVg@IT?)RmH6YCt1EyQR3fZxpF0w0S-fL25aN{Yyov5Npp6*AEPC7lop0sXKmx z)4A-cBxq8Xfg{XH#J6~RRxH@+mvRj9?L{zr1q@6A`IwE)rp|^VscWbxX_EwoT8zARXerxdvZW$B6fKdu5wElba;alf zN0`j`I#-~}ytx|foZCh&Z07cnLwvPH`2GdJ3n_^lTSj$+2cuPnfr!q%qi?R!?Mus?*EX<<%EXz0 z^HT7Mg^s+D>{nt5e_AY9^a;uvW3cQ(L*Dnn)(-LeS0G;YJ8JK**>Oos!+Mz`a~56Z zwK;RxtEX8{eAM7+>hq^dPA9hsN4VgQMcA6lN1O)J*pd)zJuibr6V}0z`^x&E_P!?a zb2;yUyW9qrRfai^U@iVZw_e)bm=oQ!(ObDEI9}KY8Y8@ z;eFz8AIr6HO_=e!R5S~>FZ$KrjJ!L2w=Jx_v^2~5XS%=_p2r&tjd0EqMZ*+MPJS|e zHlpvgg|(SWhwop5@L6TiwEJ>@bKCE3_OI6dV&&bB^87S$y18|y_31<$D^0T52+Q*Z*Sso3;wDyp(e)~f$!~+`=SIXkG2=>yx>%9679r>%Yir|_dsnDOGT!IN!*$1Ol?Ac zn785k^B%6&ljPLRjdec5==rX1B{6&K1N{>go%H<+l%wx^JwU--r`fbH(W-CALA-OA z9HVfCAd|l?uTv*gN6{_L9=H!p@}PYLKU8#(_m9F$>^vw}5Rl~xfA{Y{R-q#2Luz}e z*h=b84085wM;mW`RTYz?RYe6)J!eE10c<|L!qA zaa@2p+`cAX-yiK6-$tBgNOVQ+6VCD0hRdBo=Jh!%&1HnEKH?!~*4 z->m-TYeaCr4j4nUhl2-+PFyE$;FvSVvLo_}Dj#^R#~8b30iusJP;%MnNQJ9K-113e zehirX_Y=!Dp(LNm__>xmOvLw*vlu`6l+28NZ9-!5yB|G}n&|3?dP(ar7_5EiLCZv< z6IbVJX4p?nB;g7sYtoDgcTv(7+6k#qMDF**a!c%zpo3PKc+P0RBDVxlqCOLQPmrYc zTq^9T>*zF%O5>Pi4mG)Yl$34W_y3fN@BV;&mou}{@ZgUQ$M;&AdF!F#YB7n3RH=h) zL%m-Vk$aUgvnX4r9c@Z^hz9XjCq`UX2|xiN3*hMd!+Z3@^RsO*^(h+E6C{Y`_yx_R zf;#AnV>Axv?JJU@qE52k>$0W6ad2YBQzc=9YElb&uiUyMM!3i$XroBz5ugE;z#+U) z<-9F>TMj(Ygh1KX{QqvM<9F!OkF!;z*3`{JBjvkVqgvRwoX zlfQAZ|J$|Z_`9TSBj5pkAIGMwHBL_x`&gaYq& z6CVFu*kwn`-9AYa?6M0|nhNpS)du`ruYcL`g%L;fw0YX)lBYbDdKKFjzIroBnz2{h zWoe7+ebF8&I>kBjIUy!gEM!CrdnrjzYriJGT~iLsl)E_ z7`X|}K(F5&up$+TQfuhluZoU%0BaY&F$cEL-Tp;yQgqPW##_ZB+_}M^-Lf=G+k*5a z{V_;%=4V~>iSs27%gri17hSB%e!FfxxV|ueT`VDLM33e(inIImD90tX{6f5SX*B4H zw0|uh54-AhEPBcwx?Er-kFr(&U4ca^`LM)ECGz!koiko=$bLmH_^{r5P+dbsoqV6I z3~r&KgJfXV8MjL_pry^+vKk*_&P-GhY{`OF2|hU%<>C%PE|r@jqUdCrZNOu`l_-~m4g_8~IcJR515YX%mikUIp-x;UZo$Xt`0`ADS?oGUD)Q`p z!%dVXuLes7dXX*iA9CxY*A0NHFy!w)@C*-Y+hOpG3U1yrdYi3XhoI|At)d)J263>T z!5DX3mlc?6hb=iFc=MOLRyL&k+2UB&|CVPtT-uec_HV;66-$WS&G!8#ZdxbKVH6$O zA*hOF3n~ekRFfJAtBCWfQM|l8A8Yb)>a!<^5k5-d=wH6Rz^nMP>`*LBK~jS`;LZM* zwOm1`%{R+H9?cQ^AQ^~i;>lWEcBI~C3&{5t!)$oUc{UA(OM9Y%?Nk87K%?06MiMbL z8x}_rG*wn1_A5S`ZlBV?Oe<2MFoCCxAWOoc4DJaM6m@tf zm-zh)SQpiaWI_dtD$si=4XQysK?Z3c2Or}migd9wor8B=@7K3u+qRpev8~2V!-;L% z#>BSG#zvDgwvEP48uOj+?^*93Fl(K;&wVzp{n<7QB452Ue;;7_{cKe8D^M}SeZf~{ zs$_#{%*^Eo{wrJNDzCHHF%NhBYR-{29@5=_zW<16{@&^agX0C&OQJ3z&6cpoFv8&X zzi_H-Z}cS!|F64dE*1L?`T$ac@am1~3GzXHeD2iBn;#? z4RvD`WNW6B#Pq|&9${Uj19__nn!>DEX*!9lD=D%Hz25ga3=4n0YS9UO#E=zk%4@|P zJHIx&M$nO_N!?GiPT6PlMdUrcI)!?MaI09Pt#w-nf=Ig~{0?c3$uJ{#6Lr5tne2|@ z=js*-Mm=D3FTR(@tNnSGU9w+(=s7W_N9L5}sVx(_$?uAU89%0tt~rmk@ryUxKLQO? zeg&JIP=8&sjwVYb+QAR6Vut>XntHLn9_jEjtEp3qh7hp(wDGaFlEzpEr}yu%!*6j9 zcmaQB8)BYKo@Xa|lwY^@ZltAA@=WR_Z)y1Llv6Y8!B8cbC@f~K81XrA?7S@OaRE&k z8xP6hDMOPEa57$U1Fd9jEru;7{ZW5e34{r{l<)QQuQi<7nL>W9{*YV;J_ZZ~VllIw8Z)*ek!l zd<5l0#DAnBk34X40X84qP1pd+`fdLHfP^4qqktDwD^L#)unv>>qD35#_HW!us#`^L zAJ4x>EaTzh2S$F4v|ciQl!?+s67UkZp+sM}E$VV^9Q3A~}*nqD_!k|{la}WhuX;8RNjR@LhX!hI0m>3v6!(awx zJYqA_u16kBoO`*2=CDHHd4S37#gIoVuLb)AMV^{A3!*w#V-|JGJ@X7;;FqBA)hWFT z(O*X>LYIQ5_}aHZXMkoy-&3bPTlzHjh9OAwO*8V&|dj5hv5O<6w9TYv~(oQ}6gk_EoZL?rYJkrh_QK!XF^ zQ-}eYL{m4(dln48B!~!1NdYcy!&zK*M5gseN3Xd~#3?*R=p*C?GU6=_ccG;v+RWu> zY)L6K2Pg-{LjeOIPYFsCZk243?dL)T%|X0*vzgbj;=!%4x*>cfUz$+b&cHu6e+DJ< zp`}4PDkX>#jFO|H*Yogzu}~c{!}D1pU!WZNqhdo7!#397-q%Td2F4$9sbdhp2_tA} z+jC#jnl@up!Q1??#w`a9sS$@62H%NZD z!cm(Um~-PDQ97x8-*GdJaG&Q0-EdYIf2h%moti*XteZ+a_>NU63o z!*{rUau%sojM@56SPxF2zI}4yKr3zKRF!r;gvcpl1Y8Vgmpl}Jvq?kpqU}c>L(lLA z7BeA^##^8;$M$x>taJ_CD7p$rV~BTGxU_)^YjMnHB^yxHX#9cy(lqaLr?W#DMCB+S zlx39Bxah&)#p-$-=l=MSMNsE$ieW_;f@dKC-xWo1>PQp4MUV{7vC_tX!SFVG8?D+JD?UtAJj@@2IKD)c4BdhG}t=2EM|4_10uCvj7 zYJ?>D3e1%Q+mLLBBs}*r1)d_k4gI#5O5$jG>caac(x)!PMOYa!>%w9k(t{SE8qWTw ze4?*_oc2ZWGtjliIS;lI|@axz$%Hi|7%My3fbX_0F zG4gG^LknxmfhN5w9+lw@e}2iHsHgnG4%^@qps*y6dx$ZNe-$*>f$SPorB;X6Sudbr z|E7RyR|Fv(9d!nGpDMkdxrCfslXzBW_NC=zANRWJBbe zV75ZF#E@$yaPJB#7DU8&H=1(k3Jf0MT2y5s!Raf(`Y@B~SB_!I?9qSmmOQzH!ym`N z8{0B$d#t|{^~Mxj6XZSRYeH1!P&RZeI5aS@!dgR7hB1*#fXH|q<@OR&1&>fN1RXVE z2huBq#t$bq08oN%whXe463t5EmU@=MNP}^3v*Of&+O3%|&5?$0xJTBQL!24SigZj0 zq*R#JY*}*ViajdxE_3AO&;6RAhFMnHrPd<2$|&X1#gR0-04g}g2aBh`0;EFGu9#~b z2TW;<;E%b3f8~jQNkd8r@D;m2kjSb?zP?hmz6+?P4efE0djaawcVQgbp+RPc-Y`l%b-iN1Hjr1DQ)N>+|F%O-H5e zv@nM33qIIOsow|H%`Vq+t%Kj-8oELmzz;pYa!X|J-fhIkGe0esNCF}9g^p>PlP+I% z6_t=~-H#643or7dRWvu9At>$Ae#!|;JRLU6PSvZ9;?(0k&h~i@M8P1ZoU=eYbpV9LPgbXe1#~Hq1c*Ehv+j73_G1@ z6c_{u*L_7O6$JIRcKWuriSA<&MfV@?M=^b%WVyC@=$x0UD-A6Ss`bnR1i-5RQ@=6+ zh5^0IE`<+$r|Ca$4{p>2YxB62Zi5^KS4JRSKHJoh5AKnY!-Vx`%xHCWYd1o8kHds< z-<~4UW#={i3sSn0w!_()y7B#79;RAckDUrFh0UG@(jM3rZPcE%xs?8g?uKz-K2p;( zK%ty|dVMf~pz5CcAE$D{=aR;x0Uz{IBM}#~e!mzEQmZW~gx#%zjH$o3xmH+ypNMOE zxM>%ad`or2VjA)4-vIj$)HvW9TTDLoZ^d|3%Q8w8$4Y)8w>dq8t{MIjXKNNn9Pga6 ztmPcAREhw{Iy(b3Q`4(&uy`JP|98oI?di_ASyZv_kN<7@Mb}JF{Y>B1m%D+zZ;tP8 zn4ifyc`1@_WGan8#P>2Sqw$S$E|+OSX62sd0pzvmH5Hb|e|E;}j2wrHY;Tr}o|Ma_ zp$+K?PfAIbaA45N{kq44YMnl>LI154ccvgPOvDMGyrGYk9Oo+Fy{I2O zFYmEfnmxDjubCl6(7>&>a#7@lTwBs#KGUiNBxF4k?AT%%L03{RVz+h~f@?YAk5O*f z!6E`@>1*h()m8Dw+UBywDP+CYLiwumw`e%^dWrI?o!%J6L94U6louCQ)-cOA3$8kS zAnuh$L#hxpgPUGvyrY(AWh;t?js%ehG-_VV%O5{W10X*#NJeuT2?d~?_ZYCPx|s>5>pT!JR+s_k!LX+5@>(Pex7Ut4Sj2_$HL7$ht3%egSS?*TmEMA-X#O38yx z(zTSSFn%fC*ibHBj9<;J2B1exEmF^O85F(3{_Y*j>tjLP&7&Qi9kHkpoZw(F-$@t# zqSC_+>3mkixLM+=I)cR3ssw&L#m6!));FyV)Ojf{?V^3G=7pP|-xXaxou3{ppM+7z zJZ=qic!Z-KOLw%uIpEJ9?QHJX_CGsquv6!C57Znl|_MARYR=w z6{OPEru=x40c{!ZkB$<%&czlch}K82V&42k)tF)cg!cdNL^F-ZXfolJ^|pdhP27H$ zj%Rd()HWe|qu_vp-8SrwGBG!|eY`RybBF3b&+N#3zt@xqqObRX61qAzfnC<*Hq?YO z4B4GXKhQmF>)QJJC|sVU$X)oBK+$PFr*8mzvxs~X)r(>1rS+r6^#NWC*Ws@YS9B-| zIKeC&-iULuHT@Cm=#bQ!+T3iZ*@=04aM{Zz<_AIJ0Zrr>T=Uh=b$q|YOZx-~3M!<| z!%~QIvh2WsWD#9#T~bO|*T{3G@*wCxStnlBr1^hYB~JvN>!$(aQI#5wzVpjhj_lv7 zRRN6HKJSL&CTpp=X8;INQn)P>ryx9`LhwPa@Z6{`XyNA+V1s9;v$*C@z5HM3Br$ya7 zOT*a!*;;yB&%c~wZnDHb9S=ufTKl2K_-pkl9sN6ixiBBx!9z!-fE<`TizMUXX)H+L zZdzaT7$%#c+VkinvC9LMwESB8w5tJ%)o?r`)lK}OxhG%j3lX8mMI7?nr;Tl$(Pl$6 zXeJvxM35J#;i;z~Pn(*+fL&5F4VC0q^7+>Lv0 zvTiwgoKVu`0C^2ue;bs72DYa>F{6j=u&mTpKv@^0&92iUNnMwgjk32iX0#Y&Z-7Fg z2952(v~yi+jp5mSlsX-@cdnGl&(6!)Z4(N=fq*?z+`0#|UuBoY`dBIvDhbBTb0 zN^fXN6DV$NT)#3iT(7im8)TU`8CtY;m~8`g1RQloNNH=$q!YKdIIHQlZgE3c%kxCs za;wWUK6K^?TC)4UES({QR9V*>*k4uN5Nq={-0jSLhPdH1Ol6b(MkI+)^~m@vF}uiG z$0JvNji#rdTgJiGX}Y{GEbM(-k)r#c&H$hBXLcW{UxF6)et?SX%mD24_2YfWq~3;u zd7zYNB)t{TN1knASm>5BGF{4QR^lWTpSVdFIe;>gQGh$Q2AyVeUax!K;}m8Aof$F+ z_>f7q#&~;~B>6_>2dPn-*NGhMOngTTZAu7;XeBC~56)8oRw^$xx1X!h<1DsluS+^P zzP&y-G_QZ5mTR!Y5HU~^pqmv$AW-HIU=(q|F+fP8Dy8L85GcckksJIOZB$bY>-UAb zKIPzU2j(1LI^Dty{};l$u~;|?P80w5ILO%!zYBFsfLbn+P$zeyYZai~%|HrYdcTud zyB0gXo>#4;^xa1?P(Mauw~YSyvRj3Y|QOeyB!46|EWev&WJh2h&m?5OlNG0GIl1! zI{fFNaUBQ!0-y&$x%=2qdgQQuHt!c0WwI|*C;x#!cUK$PmrXG$hqR~WX={#=TsyQE zNqESG8*D1$vA$>fuTiv9%m2U3iR@nK(I53s(Ztmps+a5Jv^s|__Y3OOw#)co;rJjI zR+Zko>w&9lV|ixkR>y3I*v|ITtXQkQNm`Cu35tHZ$04IptP8O%gDOpQ$Az*CLbTQY z>sTXe0ke|s-hUb8w>bfDB?w7k>CeUYk|Jc~^?y`X37R-PC;?82T>q<+R7bSJg68&(M{$V_73umkHlY@L&#kQp|}Di1nB?Xs;{6hi64vBx&m zSA(I($P~>6B6@UM0{vEmBfqnd21NkYR=587-3&b5_o}xS>9oR2(*6S`UQfW(-rbVN zJ)*#tB|W8$Buk4F&$AAJY)5EQwF;!G!5kf3a^%4;z#cR_^x)fQ0-)Idtb0IYaf-@ewl`>jBSi6>~d<|No z9%44V0o~kSzH4HK((@&<<1cOqs--ovilTLOSnx}MX$^~%jWIM8P$mHBl+5_G6WcS} zbyF5_E8Vy%=Fin@0i-Z>LewUJ%0#wz?9L?0vbN!VY zaL>BC^G5cAp4@dR55>L9|JJA>Q+=}Tk4;SdUtkb$JmM{+6g$)6zG1%qb#o9->q7Ei zv_MMumq3MiHe}~`P6=E898^7*P)8RV!eYoh5Nx=?7rhnHEY@5}pbVK6!Z|bfC)x5$8d9Z|7LHOu3*LXXW7B*z4?(CeLB5$IY@h5}hhV`WUA%eq~=7QR6 z0&MI!m)7o`xU&3FoC4yIqZEmpT&YcFsQyS$CTTosQnnm!3%&)p@?QI&=^240jR`=V zD-Jfos6PC}mjDA2s+`~8b^w$`JLT+I@1@?uEzfTZknaSOaL;5%T+Sk=X1TRJ9pDiG z`26~A$-IH=E!^MS5T29Q`+Po9{OXp{FSo`Veg^yl?aC0K`sVAI&gD21=Evbbo`m0=KBIg7uVd31Op<6=rQf4P9&{O5K7z4B zvHSU{?&YoxvX?fXDmz_ENCy3f%@gbCpuofaSD5T3K*CMLCzJ4PRW({2$ckh_vMmmm zu248F_72v<#w(QrP}7H`jz3AxwkS$VW-GPmM#lMz1?u6*62_XKKoE?VPYESlaAc6l z@Q+yR{C6)`hERGY2(FjJ3)G;ZGtIua^(|^?@{3-C45_5dOLShA?!_4DJjC78Ji80! zD5vNYz9)TU^QOHHA*Fv|T6}w{9e~-Ob`_4!8)P6yP$a!D!&EVSwZHy#fv?8Q9ez@vI{`}{41qJyaxy*B_{_WIHJoFmE9 zVv3lVk0H-}EJ!Q{qpYE=6y?8p4>!m2-#9e0qScc*_;cv~?swTsJHB!|uw(s1wVU^I zZHIVNd>IOLs^Y_<(aZ#M$PU^sXO5m4P{1c^(_B=aHvL2CVnFu|%&30_3#edu;|VyA zNlA2JTsKqNFsSC>o9rC2JuKFDXvP24J%8h7XPQLDnv^9~pTy*cr6|-_|=Z4$cnlrKBWsDGsV#5!MC(?dec`hUt4L#{vK( z%GH^oP!VbH!x?Kw3*Un z3-B;*u>|Y!+ITN#?N>U=RnE;2Q$w>BfqZ47DelEWMcFt#eFY(#749pc&n-E&GNlB~ z6`NWAjgfa#e|-!=!Lkqb!SzZ(ZeiwQien8N{g%_iyr#BsXis95Ck{Pp^-)X^Me4mO z#OP-v9Vc@WNE?YOc)A0B_(vnd_^kcTJt%R{ES)-Eodbs*s<fpw^*-6jtaK#GB=|MmzftS33ur^_}9 z{@YWR6sIl>Rz@W&xf)leBghJZ58MF)i z6_J~}$heyHN`}v~t{EETf@k+!2J6Zp67|!7h!-Qmf%YEd*eTT8OUV{i(Q{FGj{0qR?18EsQL%5`#2)$Y_6XtT62%9EVw^ z{V%7+ylRI=bs6nU@xxtThOeA34{d>o#_5@8=O{wh6^&wB7a!g&JySYqYB?t`BPNrn zh^?ojaijGrk#*za<^HCr7%l6-*=l{T@%yNCXA)=hlJO zOwf@uY(78AC?=jbW*d1I2_?ELv|w>DyZ*F{7vy=K{c$crKak?q{;&H9>Lv4SgPCl+ zeRJ^+Mw%bmZ@=&vx^Q(u+bFRa1NUSOW{i*f(}{%UwrB?-1MeG&vU8_p51M<5V=%kCaSG zK%Q)JmB@*cGs@&}(*g%i-_ZE`7F5AzxU5*X?Sk}(Yh`w>nmZ3a5p0-5N4qpagazwd z1Yx3rkR9#(?sFnG9)BdwE8v7@Jb^J14@Fbky@ zWN%e!xh(k&uQt-;q(2+ zLxUKI<)W}UnSgH30K>Lwj^Atq8mWBqnqjXY! z$eKkh{F{T%ton3|Q{zV6_0Cq&h*r+7gf-v}+P=;mCw+-WOlaAGZj z!D6LwAQX1nKGwzl&!$)tZ9{FWEH;u~l3H40I1A9VqSun>k)#ipvHs99>>5M4)5d`V(Pb9sa{DATDTR+A6R z$q2lV+3okyTD2ve6{ht1x}?grlPmmqL0yt^&p0%31FHq5_gvtzOl49*i5mBOIhLZ5 z4c1&Jz7559^JhrQLIh>=<{W;DbSTs!Tx$@fsL_YpdovjlUFWc9CD_5stzy?POtM6BKW}NVN`BuYLqMYc^Z_G{#1!83 zA_6{kT6UT6Xyv=>Rk|dt7fzXBA}j1WuzDUCs&Nnoonvvm&7#y|^jjpHs)CA4)~Y7{ z9R(p`R6%C5n9&)^T;zqm8gv27{*-9#^cAB_;s%xNZwsSk~xy1T#;;$Kq7cS(4(vDN@4R%JPB35LQ)c>$DCaH>!&3uwnCL+d@jXe5!hv6a2Y8k$82xW@;1Hg zcA7C;UDmD3<$Y3uHdzkO0~}2&b4cSJX0l`LHdu`Vj3j+E6(cOlrR6POcVf@p6eAym zMS7b3knlUxAGc@kSnTci8MK`luWW=C)PRa0Aq{x#I|8~>a%xsu*z0Lfz|#M-)q}R# zju&PuRQ3pl-p_t|;XN-sBoFd#CGwMVaa-)G^xU>lFD#Z$V21g&7>FJ7J5j=8f2vz% zIYGtT!KCm^KlMP-S+VWPLrx3^DT9<;!{;-8g}m4{Sya|`F)xA{vA?~?Dnk?e1cphe z;%f+HK4^G$XCEF-*%m;*p)xKLQnz-!4$^S^IT+G*Hz$R#8|z9$3X8K|r%m!<;V&#_ z75Vctx{No!&OL_YhwZoyuNm&C4xc($-+)M_w#6X*-^r|2cL3J0zAH7tW=Xu=GhXuW z63k^fmV3h%<+HJoCx3qrvjA5$vbZK6IL?wX{A$QzWeUyGsRStSORK|BmMM(&dMIdg z_qs@F<}8jF|drU##_O))?vG&nVWMfmO0fnFVJ8K@^BX8;)9tD$Lk z2dAr~IG%CfJFNnz#2PR)q)mEn>`q#xyx(MecoL}~Xh0E5(PJ?JxI>8|jfIB22)xgS zIm4`v)gRVKlegwvIhumGFk3{{$o8kQRKZET9V?)00K6&?(omaFN0g2lT0k@C$WrN* zN4z=l4YdolhvoG+o+(`=$oUDZ!d)Enp-EH~jd3j2SHmuI#Wf6Iy5;rIF|VD9X?cKB z@9BDr1K)pDcZbOG*;vOq+22~1(!Z#bsGu(d2k^J4w}u0Ai=p5Xw>SpImLW`)!AS@w zZsPR3mhDn#YS1FL#QIxS1!Jzs8EWA^C zkamz;MW+(Umoy&9R(0sKoBMHZn*)*y93##*l z$p*rtD&9_dwo(c+i!pzCM8c1W#cOxyV2!xpD!Qs zo5c4{wFA11qRP9GFZT9)PO;Rd*i(PO)qzPOnJ2I9zLM1i)-LB*yjK*&7#FWLXH4W1 z){SFPfR;3OwCfhXWdsJ9s7nI|#olgjCvak-?~8}_l~Dbv>NB0`!fv(}8DsK~n6 ziOuQqX0cMxa{1i5!+%dz_EAJk5EUx3T6Jv42;MIVS`v^&?61i~?Mr~>!X>0aDHR$s z@D8iB6CoV()`?xSQ@9J&^3jZewkn%gmc+V+g?PbX07vkS8NZ6eRR9f>A=sx3*QZ@( z39- z>9B4(CfilT+0G6@@80{*{4Bk%$tqsbfhbwQlt3vsmP%;p%yz}qP^tX?;3C4xZW+8Q zqXJ8A0cmGjp8LjoE6E=sFp7JtC>C$*T_~i_NC~2p9-H$G@Vtfew%4D9Sgov(o+*Y<7m@S;jcKqigDHT=S(kp%6;j=@i%BN2O1cTtRPHwobvQvj^r;%GQe zNGeR1R0E0{#EhQqj|$qJem&ORdmdWWfZMTR zs@Ni3YZeu=1+c0a!qbItG`JHqq~Kf(s)qeD7tOaf?X8(fcHEXbELUr5ES%L38%F}r zi#>$b<+{L1HLLvkBV82oi)imi6Rc`y(_NVwYjVX#<#HVYgrG9^2RkP*I0Ot@+kvxH z7)mR`u#}O>8%grWP)0&fbBkRTK1#t2T5(if`9_II>Vlc95C`IrDf*YYfdHwHj;r4* z@c9$pILFjV1WgTgy#nH?WS47y%t@lkGh#YKBE55@mMu%Y{>#SF6%A{qZmTO2wM%gA zrhz_NPgPrWi!I}G!A|pH)5)u8;+z8+E~3nRewauIQt-u4+#5)<^0_)I6aQ(*60j#? z){ASR%R&V@!CtpcZlfStAJA?CjnX0jbphWCH>CGL=ICQTgt9%7c8o#j{zhl7bP_VM zyr(IezDS;Ozq5&u<~Ny?9A!*t8udnd46Fei-J3Nqfo<6EU-6Xo;E59o!GnKzbIrJ0 zR1~*k7e!iu3CkKB6+D+988)obDyWpfK@zC3QrrqCJs#NoJgjJ!fBQm`C(o|!t?#QT z>%SxW073nPXH7!VK~GY#qtoznU>GgXvSLSr8+I{9N&89MSfA+#slD^uR^UZJ895$~ za2P`cs09WD+Mv(ZQi;`Ha)_oTh>1?hNf1X<`$Re(FjIhUab1qHe>AV|(WMFZjV z*R%FF0O*3u3Ms>;1#vdS#gG3W#!_K~q(8Hiqx=ztFhoP|=qWrW}XgZ5gJ-1SY*7Rg_A6Osp*2{*S|iiG;GsH6E` zg2kRyqrIm9E829xG|Z1Q7y`}I>E|^dmm@)RExnSZ>ThFR)X&K% z= z$)$D)a4fVNI19%5N81ErtA!i9+eUye`<4oHjZxv%c=>_?-mhVPE{!IbVO*Gmg}|VQ z{bWcBW5RinR6&!_CtGZ@GWtzVMF<@WvW_ZYk`)*AA@l`v=%wS#;? zP*VdC-7zrIXu-auBu{k^P}dg|>d-4-EWG5*Ul2Jf+}A%O zljdvJ@dC6}Q*8AWYL)dyUgYRe5Px59yKT|B6kxVTNhoJGG3U2N!iKPH68I6#^$fO2oj%xuKC#;QA zPeHIsiyq-}_I&Nm5nG+R4e-3?CumbxJ?Vhw1k~ z=cpaGl|Ya!YFDbk{BH~9y2LH|O9iXwIYTJjL)s!xS@Lp18QMzJvjTLuv}=t$i-ep7 zxE96bOpY-6YRz*i1$6{orR5`1njnsJaodi?H!}{#0-~9@ z?+xo8YtkpGu~KTtS<4at5>X#oFCgcXZnyO;% zJvJogjQ$K8FVGWmrcT>xHUUT)MSa8CMZW)=`5m~iv7RhL;@@$RlFH?XS!L$!;}z{% z3$-a$G@yf$lIg~EIQTxA4ba1uC}|~Cw6f70v&z;M0{XYJ5k0o#=Z)Ou&uPlMD%OAD zwt4X~k>s0?L{85Q<9x86%Gxhpt9@HJ6mLHN-;fZ#7UaZSunnf8{v+ndCI-6}dBS^e+Hu4WC*vmeVx&mdD&=IjdM% zgT2@d0D8TL`P|k4X72SC>Dt`ScbMFnQdWZm>yvF!{uC5!u#UGi-dQ1Mv|vJSF0e*y z3YT#&$hCL{gXoBl&Jk4ss%sRhVwS)3wQlmpQv@p5Qtjj$d$4AAEz!j4bdh~&n)|`n zm8!jXZDz9Er$A(>V>C;E_>i5w^|^f<@J&2hjaNG@tl6W<1?u2C^c2~yA`TsBV({KJyCW*ca`*r=HVbs zAo%XowY9jF=~ealzSJl0XimS*nJ7u6ysavhpsxf@=Pc`K?mmY^j$C>lgEmaZ4V2{N zwj&)yths3h!eEz2tEcB`Kcd(@-Y#{To!-{erA^Xwy$qxg%Wptcu0KykpAL- z)Yi6hluGg?`~HuOCxrkZ!VnN!c>WVP?oG2fn@hoQn!Z>dNWiH>{m2_eErgC z4D|}G+qxEk=eXclgf_VYpVRHw85XuNyU`s7L=!3|uP;o;0jp_)v6^&CT_5(jIP6pwiCLYOBmO5udi8fJk8`Q8DG{w1?(5OCcjq=R$F-)CrZp|$OoR7f{Y-Jo+umgY^W zb@M%rnX~ElDrB2z<-U)1`J@Izwb|SGIni8vC&n*3i0qg$WD?rTT@b^!j@?#c$t7A$ zs3R1DAEy}=Y3OVBHz%=ZS#VA2Y9hl!rb1*#+ToF_I%)X$da?G+gF&f5x!FeOER>CX z;<^5jVellmOl6ZokXp@`+@g*{_Of@+H41eT^8Z2s5%mu zzTQ#l!M`;D(QJB}!6^yI{qLTPl)}y%y{dG}PD(#wb#qYMYEj&Mh{(Wt#clfe`5UaD2C9MP&9-p)cMh>@0rsjA%wn7mF+IyCZ zElygCKY7a-=e`vqwY(hR#L%j z(Y~=DviGyAnXsN<)2fzCV!H zK-k=Yqp0^8`_kvuWnN%4EmvcGh*l|$`9%-{Jn~PZOMk|Ga|P%6=9iQyw80e248)z- zI)D!p=20=5^7NYobgE_w-$!<|S*K^)*M@d$U50U+FQSMukTL1A&yf!36AB!_gyhE|FZTCCPsr@>|Y z+?f$F(0Jffd2U8n7WX$`n62C;?{P2AsT2Plui*;C;)Yc@vvAKzq^+mdXM{ymTTc&p z_>(7@jr~6;gZL=?QbYixl$=-$k>$vEWMGw{@S<=JKqB*wgAiP4VeAb~pMUhQCq-$PR=x^RK6~F<9#K!Zv3d-RFn{5CONKzX;9!e zSh4RJ5f+=)=l1n{b~o5!SShJ}m;~5+o7ET6P1P-~W*lfeRitl`=!tCO=c;)K!IB&; zfv^eam{3vZ8sTH;-&Hfkx$lm0c=g}pIrA4_aPU}H1QIER$?dQTU+C>CWN7%fSk(llO)1$Z5~4k77KcAM{Kf%u zT7Ect<7xsFmAa_7!fj2`GEwY=j*EVjl);;U@=by9EWDO%=ustOXaDPPta>4Ws%Z+y zyDSiIx(JeuyCoO0i-oRRc70r7w-xh9XQ?k`i&JARdP+kKi5bt#oJ;F6HSYeBF*ta@ zxX~`-{Yna6;Ftub;96Gwc%F11tQQ;beQ3di z5rLN@{ZcZjMdLqlrW5<<@yJB!A}yp9cT~}BghHmyAfkR;%b_rEi~d|kn;$m+$aODS z@&0;9kJuc-l?V| zG~aH05&p7!45EuTppAc4Gzx|A)~KKl_9`;mWB_wlwFZjel!Sa#;_Uw;>6{-bYri%= z*>+8sY+IAflWk*iO*SXHCZBBEHQBapyWaDB-#=jgviH5$y4PCQ`dt2+GX99GFsD5t ze<+{(H6+IwsA{#cYN~y{c%sr#!rD5%{Na--%Uwz!<=zB2kFCb&WP+v&YgdA20?nXQ zi<^}qt+epP8$_e0zx`M^2>tBT%;=nVs|P`)1%Hdk{OX=`DQQ-h{d$M~Zzrd676-KU zd00=WGuMeoROhcXUMQU>r9mMUbD=P>anAr>dt9$QJ3Dt!V|8oH!WY+2WnAM)DkD6` zfZr}_NZppU4pl0WA>A~^1=L-+j?cEZ28McG_pB=1n(DY*vnmJ=nz+%qf%xTrYG_Y>=4fR z36V62QoRCJLE8dW5VM{9kC9ZzVLTtDlq8Gm0^<&Ws@a{4vP#AYrJ3FQ$Y&L@et=_um8ss02^ptXp;lRA?}esU8TEZP zlIao$wJ3=aNP_r!xGrGmP&_WoNWP0ky9_>_ZZ_+B11o62X{S4+elp*dc(Wlt{71GW zLdCz902|XwBzCIii|gfUN`n-hOah1J-zIzU#><+oJb_0lXge73XfH7@t#GqqI~B9i zqxm+PkYfLox74~ToRg0PH!;x6T z*>BK#gUslNN%Fk&#XpnHBnA`4>FPKm-J2h4w#N7+X%S&hTOwoW0l`NB`XEV#H z6K3!|;X7D1oj4MA%FMC`a^I31hyfhwy;sK}X}B2%EF$oYzkWMT!g2B8BQUkg9*$P{ zC+5Qjttd`}Q2|_qRUJpctv(O>Eu&~5shqEXk#wgp(85Zt7vac`VD9+XF4ezzYiL}( z>S50-mOK7sV=(hhdd?5d(4!Y$mBnu_rDCRz;qmt!Mj&bwkkVM~Y-=8RU-k<6RiytPYc@aCs z-EH(;_2=GYW8dEPi;nVWZD*10af2ttd#JiNTaM!E2Xtd!dh~h&&=j1A$pcJyyEpEw zXxHiPB5b_%yOm5GiNWNCyO$kEY!9tguQ_4YYkoRS*&Wgx>DUu9Zv3ne?C-*E&tt35 z!<+if^O$Sahc=YhR0D&Pjh)KA^XztfzIIOOEDvMf0@UCo*oO*d6Ryj-ovf&*+4xH^ z0)s}8Bj|$vcO!1%irG?9oY5WC6YM+nez2E?%aQ9H!Wta?Q|$E=>5)!fN+B{xN)@H@ zOk>DKh#bYdl20~w7^RSzt4KkWbZV$ai+N<^!%1`K>NAh| z%k7uF!3)(gHGND;EMc)^4njXhwWla!J~8zFYsSNtT)Wmee@#rjcAi<@2Zc9D`+n3R z9y&dpz~8Zq^lz@Au^1|Czs>mfIiH8wnwdXgWeh#QWe(dX8yq)3te}Xfa(lY7Xok*{ zL;5|!qGJz#Q{j=NkC^U(JKdTX6Q%YWt|53;CG>OJ$~WL1`5Vl@HYnnxcl~AeDE_OP z!s!q*W(%-kTXL`{z6z=4bHBprcUi{h|4u-2nH!wbZFgC{W1KzR4WZmo*Gv`2E~_mp zQ>u40$Sboe%@{P3?(|$QEq5b?f~K6kLFs^) zlKrXkeK*-CS&XqUW@RzW7JVFe#8D$7g14O9O-a^Yw{i(gmH=ddNAiEME?N-3LZG}6 z0Isc7{u(gVASLZuZ6yA(9gH+cne$Cc=9{MqvyJ>xoiKJ`gcZ`WaUHSwigX2IG)yA$6pvxSFnI4@RTm;n2CRp zgDbq1v!nm0Lbu^7s~si{=-*~xPEWn6Z>ME=wV_AT*`1c^8(4`M2aWZ7jI&zgY#&NL zn7Du~CUSzrP?#3$F6(b6G8u%DWC+Bmq(-%KeNNQW+MC$03DU!>&<^Cdacl3mSMdeB!Z?;q8>zI zF_F-RJJ1x53etJ9-AC={*F9DR+bLbtD+zsYaZ&dA1;X`-z z@qA{Z!1sOvHP8Z8;j74cFCFf4{7PUoL}LM zil5O4qkoXr9JKl~Y>=%ls@ad>h5W|XvohZKL z1`o}C*X8?sT=pAN7;&e&cWuodzbegO(Z-ri4!*TRmgQRlHMpP(wWD z=o{uUz7C$#@)KK->FnIpCXr$6{8X0;#uSO5{mwRos2p5#lHex&O>l|WQ}H`qnsA+M z@26hk1%BpndmXY$!t^$de`suM{|;}$VpT;m_ThKpQR2&-u9@A`ztEk5{##Voob*$2 zmMgP`6KKE3W5QBkx9#)ayb{hmx6jgilQ|VrGL`U>;j|Ma1YHSKFT{Tju8-wasg*Toua|hMjARLePbqTsn4BegbY zW?#zV-vAMQ``|uYBIf+jWtWKM*guqHPnprk8Ahv`Kzd4~bcaKGI6!>KD7ojKdw;{^F)>nTJL!r=d<@Q1&_VzF3f2nwok*JF+BBcciOc$$ zXbLtM(X*wgjgf~C)e@%>{@B98loFl1hEB-wGLbJY#8t7*@|f^QaB~ii|e8zebb!c3&OR*_eo={*BLSBJYX4hY~pWwZrROXv#8}e>7YwDl*AY1a3Wzwya zW$JsXSpr|6)j#w7)Y?qMzx@o?%AVedG%$2w;e*9{2gLF^xIrP5wygx76(v|`xsMiBO>a+bi6z!o+8e~W5nVgNN%a~< zDQt0Xun&LpawtNU$}6uaC%AaXq%)tGT3dV_gA|WcdmN450j5~}%~U-NA=Y8L*ZlfR z(*JxvE;O8U{kYyzz5A86|AEHH=U+P`fqcMT?i=s@Rn*neBOj}#-z_?WDAbd_nxELl5l$qc4k2a(s=4%Cy8GD zf%%7z&>~GB;bI84?v0yN(;)*FOL=SbbP(U48{)ORRQD&aG5PLC1Crr?n~}va&WeA%QKu0N9IGX934|<(xiM== z3q6w4WlyQUG|9dai=6_$ILaK>)&Db`n^iPIYC9G@#%RLpWly@@-J2 z>|^aj&(RVojuW`lTYbxy`*G*B48Id@Vy>#7>V^4Jf>;ovI+ZFR(?(ye%#e>Zd%eS> z)jFTLK^a)?>DcT9L1%VB>n|d_w7L!SU(Jnsi|49l?L@Itu$(XfX0N|~>%UROB@Y>O zYQ)-d+#sY@je(K*ZDFyRr&rD2dKR{@_5f127YWx~h0b%0n-fX#A<|28@td#W- z^-tu5hptnt65{jk2--tzQ%9_+p{)39dJL)`?bNGr>XH8Z*XshV zbFj zvp2ZIN`!jsCVE%}9o@KWP?Vo2$L;R#3{V}P{s;CSnO|H;xgf<@uX;s%6Bt5E`G!QR z1>kc3WyPT>!`AJ)r#`!FVYsQ|edQCn^l8^-?4ppeWunN)kZ6P+U1Of5^#4Sf%cBM!L!?px z`a#kjjs6?dH9}fYyE~-W$EN^tS8;nS`oSgj)ZN~4Qc%A%;1;9&oeV6)bl(U&11jEO zm+~@=7N}%@gfverV%B?3Q-BTJ{DAfHEw)wj`8c?VJ;-Vh0AJ2q`l-J(wVG$6d;A5l z(WZAfeg>-whcA5Inpz$mGyv=-_wr9cyqHnfHoGAw!wOGDLg#p-&lgm&L;TxHo}}(g zgu2&=Hbn$fKAp@Niy{LrAa;Iu$CXuV19)wlV{v{MMr6&IFM*Jq9-0bxiBYiGCLcfgv8zQ@9FH< z%D~*7%&*c#S#JGS{bQI-Xl@F=WgJSLF)DzgQHui8!8XKChcJbM=?DZ7i6^e>m>2^y`o$D6Fa0e=-b=toV^I%(^Y=e z{e233nnW9_!dU-q_k(N3C2e)vwP>r$A@)FGBAQf5*Am=jiHYXQivJZ@N?}ilTZf{^ z)jEo2Dq1$C6{L+)?y;+AqVck$*(bM|JZ`2PTqjDVTY_aB27`+8zeQ>@P`BUJ z$uwl163i@5HK9VE+R_5oX40auc(LDa|^ zZH;PzGh;sUjk?vikF;g6_*8n+(1FgDO3Vkbrkb?k8dP-b5b00ti`U@;4N%B7pxGc}WnIN2u|} z{Bs~@wZPgtwqQ_?2xUKAZu@CF=aCr<<8|M6 zOBQ}`d7c071heLicT7oGsPxNeuKnj>Uz8@@=kpSs4IAC{R=rTJPuD?TPBA#Erb=yX z4b=`(sH;t9@Ha(NVM_B#QLa-hMvM(KI=|`j`Z1LeesB(ky^Kd%0g~zt2CiIRo;w*I z{VdUOqR`Xy1~3Fo_08M~E+)-`5-d5Jc$*ahB>G94iCiUCPRTuN z5f}VNK1y}wGSX-k&K@cc^!#Ap`u+)vzpog9lLcPQ=f`+~@RN7-@Q-9?EcFebl&T>6fe>V+#J~i{1WL)aK-OlELeYA_g7?_+%v-a^FGF zMe;bT{?xQPVW`ePgY>cd@u?g5ls#(j`I_3zxU^+FVmG4kdbZ?PRfGacl7JL8A$ZgT zrF>3IpI4V52E97p;)&Dd2cxGsel3}x>?c}vIJrSl{ENkZ(G3O7UbdaoZ48ZI`zgSP z+2=7+2s87-UfC?e7>W`8KZEl8uCAU^G~d=~n7tW8=0}aLaBBmv%$z~HW`<1+5AC&> ze+}oPNSAp~WcJ2PxtZhvxUJ&QYvFKI#@zQFNz~R;k`c+H$}yIY;;x6o+fpSi4<3eK znT1mOGQ{fNBB+6FrhH=!;Dd<=Vz};445U&RdipL9EJ`$7!eKBDiv)q$Z6OPk`%SiF zd(oS3R^&#Wn@RskvnFGl|8l|!`Gz)=ZIB3K%bd&p<|KQoViYqM=gt1;8#=!!Dri=_ z{gwhwjbf)e*x3I@4Kd4^H_o4Wb1@qWHnkVZUW%zyxE#{`3Uf6wrw2dCOG)8r@g%e7 zh0SGkr_0k@=g0lwaL~W7vOxI`dC`WhfAUaf%2ap+klQrA?R!Hr^wL_pUvQrwr2~}b zbtU*&VpJD*R_`}(LV=c55@HHP*@gu#mW<~>n;AA_tsQB}Yg#IatR?y_kyQT;`m3_y zG~!kn;p!>}N=Y|TZ5`e{(_G%{8ow!pH4@aEOvmsTqRi%^t1<;P!>EkuXYMVD{02$Z ztZ)A~>xq;H6+TLoRFjU}cFg*WEQo7Fo)b2RQnX|zFe%@dKB)>YWUI@Tle2G<=+sD+ zO}I*CV58)?j=%=cAAdFZ39YM(DT495?Kc?QO;i)#XHJ%f9s`uX=WD=KvZ51gxaQ z+qIuT1c=rVc%kW8HK%{m{N{B_bT2YQkKH8zAbNr*ww^r0+82&uS@A{f^30Awb*fz! zwpS-)=_{WD6#%HZd zJ@Td2T6I{ubz$R#K`M=VPk@(_bsg`8X=q?QP6kpz%1rpr4dh=I?6L(r+JvC)XX5Y2 zQx;zXuPfQgM_+NdTLzj_&w_h{DY}u7M9}@prP*$zl&CDc(ac$ZE=2TG4m6o{e*0mS zTpi_dCl+^!T6mA()vTFZF9VZO&FD^}hZT3bX=26$Ax70eyw(SAo4ZJFWm=F4+061U z7taPF@ORB!tuSki!f_6mK_;XnsyVCYPX1Sl3r2zI2!>jRzA>PtPNs~(A7pA`p_=)@ z^fTt?*RAe(#lSwX*8Oa`lHg_NVt$d5EnpX-^Kg1)^v7isvhA;YfX->7=9y#OxSp#- zw)+B)QrpcTKN}s=kZ9qU->0i|wqV6d%F$gsCxSpKosTIfezfsd2j!vInol0R=W%mp zfM!ge3yJfPN(_|%>g7AjNZpw8AbY)c-TAq_!@U>n#@{!oKG{R=9PW3Jvr!oQn2%cJ|ReS!pfGqbjVgi^B*}SSfTh>TC8t$hk(U zjEzP>2~df^@^1w-qDqQuege=LU?x!y`cIGbnqn3p?`oJPTda{Iu_wRCR3-m>Y~_;X zl^n_Dc^HUb{jU8%P$kVSvw{{lyoa3SGkZl+s2M2DVHmAxv;se2VMlWH;nODwRlimzeepvW5u$~Mie^GNwNTa?0G^0m zZqszX+BC2sn@bU~x@nzSfUP;##!WsbvllNBh6T**7Sa%un?;d@DV+!@6^e5&QM$)t z$RTyo4{#8aLVU3vidoV>{-6}TK;}|Mu=UIUF(OOb$djwA?OY4n1d{6ZE$Zy9!w6R% zxLKaFmrcM!L$upd3VFII+D)bPZc3i1H@r5O-kR48^a@4GDhmjYdY6VE$larbkZQby zN4E_PeGKfj zOGfbDCd-6xgabw0{T9S^4RYc#b^du@N1oNYO^C9BGJKM`~j86nzr*m zr%#a?5-^PoeU_1Gzw?7%(6CC5&%n~ zRq=+cJFpU*TUQoJdLJZjJRX6mb*}x04>-<$tYwLQBLLVMWxAY0Pq;(93V+E``VhYS zHnIs+)vF^9YsQQOep4om)$Yx9%%}nrSR7!F61>s&Z#`}PRW;b+CfvP~ms<58L+*8Z z0TD+)yNQ1i6sL3S3UwgnmMo`iZI{qvg|YO@(IYa8S2qqt(alOftSWn1jt_QLL~Bw$ ziGLK+=DY0rd34Kg4+H`Jc^11CU|U)Gh7!LM;AnvHr{G&!!H`{oU2r-j#qN=O;KjdN z_Il1fuIT2xeV$v``LVv8BHkH6Ywcs1R_WPryE?{KM4h!+{8lWULA))_H8$ws++AE7 z*f;e5AjJ5%Hr1;Lm=dRO&`FfoOvYR9XB1Kk2bxT+*ytyA%6z*0%iOdic@?E|+4$1! zo?idvNqz6~H2bsKCg~sMqRX(dbmhPVA1<&9WNezJ60|*IY<~rzQjV9KzP{o)lrgHCFGAzmAx9Vo ziunJu(1DJS-wZU}e&j%zB=)UVniL#?aP|E`JU>jh0v>R1MjmCw#wA-LFu&L0(Mb}J zV_f!X_Gtf*kIS&q@Le@k;;>DS-^`Y>uj1Cl zH?iM5ct>4g|3Ob#xfkP6Xv&AU5Iz5XBc_}84Aa!nMI<2yBU25eJ*FG!cie&sJbCw( zykIxhPtQ{Qd1nmA^;Zndj`)r- z`lV#IThq-gd-Tb=aBv7mRIbYf`77n>hcJ9UOaS%nn}|~9^c1)T%P3wc^?X%Fp?~Jc znOSM2^4y}00EOsP+HD0lstLVxN0vgZ7CF2tByBHpoLJ~`d3*YPIT$(S1%6__`Wh^a zh+VJ}rVEu6UM(G+iwL*|n#CwHRreOd!HMv+wPog*Tz*z2=Ep~ zFd;6QWh%o?E$A_9LUJsMSxQ1w&yCLMGe$iuBmRbTt%TOwgmZ084W9@%J)UA59Hs>^ zJ*CH0(aXHkIA>AF963#Cfvdsf0|5tnX!)c)U;P`Ckr9Io&lFV)gNw!yANb{o#l*Se zi{oAvhh>|hUQLF}zR8&i;!TsM9-0{4edgB6hptD8Oy!#|+nDhAD`6AX*D8w+r zyd@@o>%@0mCfPz>*t?9eaP-r>%HA}wN=E7k*^`qeieY4MoIZ(?NJCg~we!U^tgIzv zUe`v?$se&S^vIVF$?dJ1p^{}^GiDsvLs%BP8<=lHwY;BIZs%mt}%1k*go=3eX@vc-52YTFbffu z;b<#)dnIXy0SId6&$KzMW--3rp2BS-6B{ZRui@=|ApAS$>|bKS(;yy@xWyv(up&hu z-bVWaX&Tm?+Rq+T=4Hv*8Lf~8euwH;Yf}>JF1WKV9iB0=h7_Zu?;YyLd8{t(_B4MM zGW2#9P!2ZiROL!e|9e@1{QIbCH7)FzpnuH zqnfqU-=)_xJ=g?B$O(q2>o+w^cqK#DM^c|&7he>m4SR4+P-p8=#6_AkYQ;mxA{VF% zMFgGLlWGTIEPu8Tl^ELzWuLFaMp&RcPaORDSPb3-u!qWKO_&Jzh~wQ0gtE@dOEbHmkHXTI z^yAx(S<5_Od6%CV^l7fPl>6gr6y0?oJUBtK*ZgM&dE)SgtL$S0;5n59oBsf!z%m=W z3BzNzoIDFv)-kD;PVG$=Wnf)gc%l%qJGmrmscprrgqw=n@f5VkoBHW0&8|KF0|Lx1B=J^*1j66!YWx>OPis(Gm@>X`34 z@~ofc#~jmFa@^Ns!<4FfW@;z6dbNc4Z;Wnv>jpD^Nz-sfdI#Q_wlJMCQP4TGRw9_^ z9TUA&yJc>{fg&PRwS5bfZ3lJd6xJCJlY_6L>+iiteh=2I+&S!B&s-=*-p8zL(>MJ5 zCv7C(oT|@+i6u18g4#;kM_o$N(m; z90{u|dGC1h9p}|&AkBKlw|pqfx8b`J{qnjHLnX?#XPil zJz)lTX{-Am3ivJkXEm@ONk~IaYT0fxq?%B(ROzsJhu9CnJKgXnwzU~;r1RWSurP>} zsQ(gv{M$6Wt4Mm)}Z!|E?SzvEHxc0B$S zwevNHMDVE{SgU0TuiMIzZPMRA3gWSO#?W!k{6!&9x7bwz8mM2FJbj|rTD_b-@Yh`R zPY6Rc=ZwbB2^d7IfO>x~e6+)^FdaXl#!?)61E|L3q-k(Qf+t$w^4soJ;R9T~d;uO+ z{eo%W`=p&U=(Q$LYxnK)w#t~V?ukcT`%Zl?Q7%a(B($?~PNo;5wofwEe8&3!#mnI^ zz?_=5NCyv$E_*uXzZe%=g58N%*70!qqi6KuemOd7@gOfhAq{>LMe`igBx>c%yx}c=P(mdGx*8!R!d5AMuU9G%!w=xTUh-@^>_EW-0Z|;iCTqGlz=|Tsb`; zK>KBzJKixNVPV3TQNK=fg6;Ope@XAw$8^uhDs2i~A;{~M&AIFv{ElM5-eWIIERqk_ zYMdyD6DGgz39PKE{Y7}J3PU+*m6vnCC`>a_3d_3cbxMCM&|&RL`$CLtn} zlv2{;ez0R&`~(1^4fk)h*+l=&EW`Ka{X;KeHlMe^4nmc!^Rq!byW8(jYLMnZ)WAA= z)ighHJ^zUVeV=t|3q(O3p4j6p{CetirZojzmG7Bj%@y;y;7TFXyqTPMU(_pH^u}zp z*KetvRXfjkaOj|L1*=x4_*S!VUS>d^*cS1j8GxakcLbTY-0T36s11P+cje@OV-jod zb2K(#(ytka4Qji-6Yc8X)uz9AJuq4YRb)TZHRM$9$eR{g_Bh4Mwa8asEcFTqF#`Mw zfI7UR~5A6Iw69> zH!@jf!rjMOma?(qQVeWK)3rb?dXFZ|Oy9&D6d7l=PbI`l<8!a6rWFY%x@$m~Z#|nk zHdm@zN&$TdfV_OpX5JIdn4$Pou}iYeL&_Bcj1WL*5A)B9_GSmkT3;A7J(YL93%sf# zU%dcWP~WbBN5L&Nm-}!AqH`pBWBs}nx)aglka4tV;NMf#wR+oxxTlp(8v!Lt$x)RUt-lX8)`?O&(oAYmgp$16gO^ zh>Z=+U7MkVN%_RplL|hpK_U&YM>{@_fB3|d!Tp7M$&T@_Bc_cfuQD%*)c%4c{+s&e zWTQb;w`UIQqIua;j=*RG*inWI`%`7l+3cdi77l1ttOKCt;1JT zBpZN$p62{S5}pZH%p6jQiPwgf-}g*UVAB&g3yp`xTRDB#IJOxoBjjq$stwbTw%va0^gH^!s#fv9rOruhGBb_UVZiN{)A)+L`F*dG?n|fr4f=5v?f552 zKEyIQ@<#NuxMVt+^83=8ZT@i!=alHEfVpvw_3k@4ADi!9+W1;~!?OsY^EynOGHVvY z=61nETJ=Tyj#b9Wuv`7F;K%qsuaZ<3uF737JH}m>>ptnec5Nxo_VL}ox-joU;Pozw z&m|20WzXITGCqH^c$JpD>7ULwBYZ+)h5UF9YA%qJ2M0gC&rca7>CHVF<*jmmq&4&T|T))9bE2_nA&%tKa0aO2Ua z;F63ke8?ul3EFt94CC;jf4F!~QO9EJMKT|ci3n1eW=sigI#&XI@aknHe3DcBknG1- zR_RxAA39lUq;ZMQvsD$=EJ>Qbj(LQ(J}*%*H9ewi{l?2Rs>$e={|R{+mLb3%rKl`5 z;U7ay>3bFYob{2lY*3o9N~$ui3Z+al(MYDPl}NCuZ_x<*7%&nu!OUrJgn#cYi5ZE! z0r;_)hh76^rG#W1lr$asPmVa6dI>SyC3#NiB2T7_w4LXPgtTCI=kyK|N+gFiu9QaX2sCVntU65#3NGN#fyBD`L0>%NU7)LPq@9UcIu$ zk-{N;(Sn4ZoZwzMd1qcUtSuSil$0VW!4X>1Ki2c4=*7AxJF3~WwJnu8VWqv^jq=4; znFWNP^=wRSFi3Fha85%W`mk~Nh?xYYD%jhgYbv?lH+65k2~T`3im4yge&+sQRfSOn z$3eupD7N(GHRtQ3Anem(Ao{1x6sSq#RvB%n7G7>ZQQQlS1cJ;L8r8L8icM_@z~+mb zPAeRQAq%4>*CB#T>#Ttbn{ekj_bo=keCdmN{IAxHwKDSjoKYZK3Mh$V%#;T{W7^_Z zd_f#yEg8}V!l?33s^T!gOgH*V7x zZzL#4Ri`@9YvaCL3pJHC!PdcN3O`Z{FUvg?mBw44BP?g~l*ELkC5mKS{G2p-*c`Gm zpUj{<<3&ut{R0JMqTH*g$&8%}ooVD`Vb!A1@y8C|MG>urVu4v0cYtg?)%`>>%pfE< z%EK^uk-=}j>AW$(jnEoyYoyDL%?BYLKy-2}Mj$&e^Z2?~oJ3mm9MhvF9gf_Y_hYN3 zCD)n$k?OQo`+f3^=IL@LMP|jd51O&m=%2gyo2FCg(3FKJfQ0@gyTU;_<%LndCNk^U zpO}+1NkyMVB4oo9&I30HB)KW7e?&#+`F8} zn&3)ISQTCZf!<-$rH4!IjL1IXsWPY)Pa8*O;oAy0u}N76z_bLp1OmU;T+ue`;e4G_ zC{Xj1nCaG?7Gawo0NQh%heBfOcT#zT(e_ZJX8Tn?v!a@j;PRu6kHtCcSMcSR!WY+D zqBix!eM$PzFR#ae!zZ6N<uZv58LiM5xk7f!;u`K^CK?Jp75p;h?0QLyx(413R+h4#=!)ijYU&f94hJZUA?O$q zFljwP_heaIFX{hDA)Z-A?m@Y>Evhq594=uPw2QCk3)Y|}y8l!DQRwdWxTKAf=Mhs& z3Lhd}^brJgN~fywcpmr4tETCEEiRZxl`#2XSTkZzOW1q@7!l$%G40%Z^! zTkl`#C!6+AFu9Y59IAgBMUnO7pXA#nc-Dv~O|o{`=hld|BA4KU&f6&%SSiTQiu+f| z`il$_lV7`ZU(!5ed0XMyvx*#>oMpywP^58Gn*5N)?c@&gE=0ZS-^Dv>Z^YF%*7eyC zvL9C*Dqk$AFyAmxPHRbJLY=V5S;mRHcRQboAwA04e{x3s8qwANdV3MV9FDhoz4>4qLPYLDUdI`E_VOEv`%{^54t29^Ci+S2(|{W-boZhu^SiX8>h&i zQ8-AdKg99pBSbMsWWibMcbMV`>z^u7)I`~-TBA1Tk?#G0UiUf2CPWtPPw$Nczn*~g zV!R?8x^*}x@NV3NGs~1O>{Y!zVYeN>of;r^)h1q}QhAvH{AvrCry2?NWHE>i;zlKY z(^O_Rhkm4Y2R_|1zkF0P`Hc@PyM0a$o&%`uj$3WeSL*+?_P-8#J%Egy(Yr-G+#pmtnTRh_0G-XXJY+TN9Q9^jb?d%ZFun4K=q74SZ&FR5YYHx% z-a~>47jEeg;XIfqCt3Rh0m4wdObvPH&YaiqrNmbrsE^&8T#|Hxcx-r?&`fPNOg zueg1*fb{S;Ln9b5nY|*U8%i~fl>ytleOE3fZ5%7Ex1r}Bok7eFEWu%-e2c7PrIf zze2DSAEJhRiPD04Edlg#7Zbn=MVf!G$HBeFlmH&iB(9x3((fUl!vU-uV}ki3b7on5 zgS;i#Nia`eroZTIU7@LT){3c_w~o<#JW`=WPS#tVZT^|UmG@WOSCDz#b=!^os2_Tl zt8WF-C0^nj-G7$Ulke2?Ho@UL#JP16)b0IH-*>)OC>P%&CB{FhD9s7T%96rBE6iWo zw|By0)$&|60#|1VzZtghE_4IJ7-LW%g;ixzb@5vOrpM6XqbkV~#~hWQYN+uNq$vr6 z{7uo2gkac?`E+v}lg?nY;y~$UzS9Qs_md3#`D1O1)EXe7o%-I($-pW$g3$IiZ{%zn zDIb-R0Jvtz%FCT9lBki#I)mDdP#~naH|+t3w+(OpqWA4Tl2+Z z*em&(ej?)#^f+LMQ}yjzT2;8zAx1_31EmY7~FGtEhKcDbGF*Ji_;{N2nY8XK(Zo*O4jQZ3~ z3}0ac8blWgn?cc_!g*3SQq3e>e4X=~tZ{v*p>BE_)hIDSXaJSaSb>3m@fZ9oYA{gD zFF7i~3(f#@1yM^eD~lgS*Kas^9NySov>~Kb)k9l4zRg zCag0nwv>P8{_b+KNW-Nha7(wCbDHp+ey&DA9%RpNcqPkZNq(&E*Q8&Q*)**%y8N_A zpYl7o-o|0ICD4(=KHGfs>b{tuW#plua4!|3iyy2^Do&#=$e6#Z>U9Mr0rK>J(yU{v zDf2RR_lqjouH9GohNaF6sE%#$F=PdOCj3UsjCsz0Pu6$l*At@l!w0sIkXJUcoV$Ic zItGEHyQ@W?n!COhVN3wcP9Yj^gEFu6GRF|UzwcgORiI5~yde&+Vk>1YG7sL1i}IY; z&<2MsLfzPqxr~A<8q{T;u8?s|2d>>71r}chBY;L^aEDjvzJFlPc=+E4c_pA7wX2~1 z2f23Yx6Ts0!;59zDLJ2&=dDfKk8YK}s)>^8TyEp#a7;)9M0(V`m_zYV)d|hpmVZB( z1Pa+9GC7dZzkxj4VO{r8^pJo>IwLl0O`tB_T;*z|){~Iwlp3E_916yRxH3AW%ql6T zYM*XvJtyc2<>W%I%`6*wKMz4_AplU#$@*Xg+0O`sA7EKA--5Of&+2XtFrcUQq;PB# zehLs>?5{qnDCdgma2fB(X0^Np@AEJjjRu=w?CXV5defeGjPS`3uXpS)MOQ{7&3YtE z0>5M&hdL`>obw@D%?`cS?$nxqR>|@W{X|)fHO7SWsK4s*(g>b_%+3+EIqF);O%f*_ z_1(a#)8>s6k6SLjNwYd--nNTy`1qGA-aFgFbzMd0D4F=@dWpmmw!-|B0lJXP(YDNA zZ;@Q5&+*px$%8oUYX-BxDA7(h0Ldo+QO9DkEGLAyvh{f;cgu88l#Y3kI6~Fp-Un#_ zX_uyQyW%W(W1{<^oA4e!34v6+(w3j*L)3u7gJB|AP5Abp zQcoHrznULpja(-lddq8K9kn6orX}0vlAjdl@?F;QT@?D#%74G__DVOW$GiB|ib8Vv z|5!Q)_PW|`3&&}=8#h*CHf)l{wr$(CZQHhOHMVWrPR{Q8ojyn#Ds4 zn%SRb69LB#T{u1Dj!z_dV%{sont`E$fS2u&|B4s98Z83(OAAVGdU|_(WP@LgqPZ;^ z-Yd~(O(uP4J2(Lu%6YrD+Cd`TExpity*5hXqKwb~Xrq6nHIb2_Wn9qAG+pKt*lp3u zMY+ftQiQO=`bH@+Y>m)DR^1aJH#2xSz&BU&jK*_VO0G$E zE$fN-sP4sOnou|YXIc#hwEXrP(mIz!$6c)IQ~ZiJV|dtnuIU;0|HfjdfyYI=5G-f zICT)7h6E^VQ5YDU-0=}ZqAc5YPlEiuCpx2tLxx`uE8fIFS>Q+xQH%r8DneJ`Yujsh zD)rVc5#Pv_YZ1Q#Z~1{|TJMfdxd1Pu)hdE}wwZCxXi4-V54tr@Iok>40vG}I%`5sU zj3P%RwXEg2h^)OR^PX_6UP}18b*^N6V-w$~Ql3dGro9AWD$tEqdGvKztH$%j23`ZG zCZ@DiTQ6j;iwEf{!5`)|(K2<}T%cnuWu%gr)r3@`V^@RDOGN_R3a+UW8H~*IgHX;K zAQ{k&_DP7ktKKmFp-oy7XWWt8Ab{ysnpdw`38Jkk5B=z{E@BM%9sh^J-G!t8!od~# zQ*lBrpmd?dkPXK|Z0?e<5|ty!s#Q4e^Szy4{9p|F-7#1dXZ_^ywD^bAR!fM%a}&6& ztrgzD9w&3@a24~0!FF!AyjH3kIuf)w+YEyC<0&)RKtv(o#(P}BabhgYkwaz+=A8+I z2dCW%wzk<#4-#7D4JdabV&luW#{&5ar74%=rl#9z6%Oj`*gzkpSZzG^E)l5M?Iz(! z)0vk|ek#_uN@<}g&g z?S%jP*rp7m5}{W$w+Ly)q~UrvCmyz#I^}%iDA*q)yq{Peoz(f&%C+71ccyhAg7!+i zTDYB0>P=%?ZRTBVA;I2g9>x7HYW1Lmz0K*gcybq2tmX-*jp)Qva72>)rT4kimlZXm z8}5=F<5$}BEc8^Ql&+**9BuOs>o~8It@v$jeON9a%U#6Z;nojwf=lLU zxnA5u(iXAvCUUqi(?>`l_i%dxoG@bwrH)TVTX$=WVce-Fa^VD}8>C9NoZZ%pVxcNd6Y~8>PfGi88zuCm=dv>SJC^b!y6fifV&#fp#C{{Hu%LbA*W) z4=Zm&#Y~ot5mwN%FK(#7(3;dDR`^zr(OpYoH;|nr_9Q_qYHp*f(^zDCi5Q`3sHaBJ zASa^L*4Iec7{k8b(#>XGne<(%1K^t_3>&>R8cZd3azkQ!tsCKQsYPoBe&-e|QGz0! zIF!Dz#W$0C!s6xm*?HIia@xPJRvvRZ1>q?M+0hxfG_qlqo^h4=IqmQ%uI`qh*DY|d zKj(k&vHwDgwG0IK`yAzPZBL^uuU1XmB%R9OlU1J9AP=~w_8*dOt4m{?P*SNiMhL+5 zR70~fl?V0X4)kzIjJWJC!P9zy8Rnm={@EdlH|=eT4#eEzi3NE9_xs6#uEspM20e5f zAKDmR-d*2%Wf&=lDX$o2hjwYGt&09&oWH{!Lgo;E!Z>EZRi>*-HYCUNhd>Zn|M+)x z2t|>~pi?n@GeL(bzR>ZzCb71;fBEkMAE_QlHLNvL#H8y<(}D53n1PzA=TJ%2wQr`CM0A<~lLb%fOND0>|@< zsRrIw8n8Y7`&6CGI5pz;Pc%&QI@YsPeaFrzeMqr*kfOSp1WQ23K^|1k)h?XjF3Vjm zE@!FUmjU>DxPWmJ!dx_a@#rSk*|zHMf;34UHy%swHj(>XTK^9laAE+AP8giXD3xj= znvG|cO6!^n<1*JhY2}zj6=k@^zc5G7DxW%TQ;XA4RGI~KR_IeCH%#Do4wOh?^z%y=O4xdtQu zttZbE65SVRPozm=w^jN#qqFgao)g!{x`X6lt`?mG3z4?MxLBmc`UHL9)rJi0Tr2`5 zDjlrpu9qJA(#rQ{P^#bBzKziv6OY}rCe`Ge)uu%eulL9LpLH$2Gh4vlU{0JO=xz&# zcAL)83%jGRpxUz)`YA%qG=8A=%!mK%Lvvyz3!CS>xddTUS?W811lS7cJ zB#6ly0f|23WynQviFEf|5ZbVrw8gpmqZ{!yDzj76blS?@W2S)9|>FeTFmKON5 ze8C(|j7D#7bq%eOe@X;B;2WM*qK)N!s)n{h>SVMTx*vz6)EaFtdi8p5$_$n?9 zoc#9wb`nDL5lDn@!{cM7!+R%0CKLKc8~i0WLUX{C(mRw;gpX*Gua3)Zl#t zgvgj}d4hV`-xxwOy-`+7*Hn^E3Qs*+n4!?%&|8ROPb$2h`9Qr^Fb-Rz4fj7 zT&h}0WNY5Q180N7l#Qf;c|{xk1h2qNZ$|SM)gKaczmD-_{HHU3Dm>b*pfzB3=Bl>@ z=P}tqBMGUVt1k{CV^%P808?e4?Hzh8H$~`=1>SEK(5n1=l7OUtGmK*_|Y@LJdFCwP1{L*s9+0Xb;3DI<#AD( z9PrB3%yyZCRgEbu(yI={wf!UgCRMBW#$QF!Ykxg9Z$WCLk{4}hDHl8?1>xT zK4L8IpEjI>tl!GtTGN+DRZQ?Wh^FXG&^3sCX4-3FHl+`PYw4QH&rNUy!%(*NwMc|t zM5-Z)115@Qa5Z^cae+%v`qWXR6uSy(`?aS!`|o&7N*lcNAU;2;kE-4dt=SnA7uVVG zuLR0u(M>&v`f=f-K?tt)yA)T0IZ(FRtAi{)3nV)CL-SM=rx=H$n} z*3zdHvEEI{hGd9#E>aM_;8is^@_0IIZj|dIsO5ln*zeO|)nl7qgw$0l;a2$V>QxRr1ldiTgXhm@P2i6E(c)!spMp*K#XF| z9W9$X8^{Z8oN;Ej%%;T7S@Dg^%HxyO7&6G@gaSM)KUAxyQmC`AD4}-rw|p zTKY&kYi=Ae=^wsF>;jyB=oZriRipVqNET|Gq%Gwl=kPxKGaMPA;o%G`Uo09c=(qm@ zSuiZI0I~ugQ5P%n654hAZ3AB@KQ>z0v_C^@DOEBZX3@7G+g&PD9ZDn%Uc||bw5zQa*Rl~T!MmQ~TS{oukMq9sGq~$PIM)8 zcXvkCb;?oPSl%|{w`G6DeHmZh`7TSfiq@(K5Iz9GX~`xE<*gas>Pqml59_R4j%X`% zsnc`m;a{aDWw>t>S{MM+__S=8v+^vp{o_wrMFk+TBR0*orsWMYto9)%4*nfheCljqeZjdq z=&8EbEIEYd7)p~8hy538Q#H7}_vV!tv%lizmPgTqMH1F@sYmDk1_%KquE(b+-IbcZ zLWoCuwwXJmmHd}96&PFeC=fmfA^ol2N(KT$|1-}`QrGWrpoXH46HlBUx;9zGP3 zeO}CG1}vt|>C;`&lh7dlT}>eKTn(6TmW+|Hxcs>2T{Q-=Nw&RV|A;Ig&zxm3dp}RT zAdl)z{>@A$6#vi02ZWUr^$wy{+f>47*;@0HfKW^vANC-SU06LQd{g$D8itrWv6s4f zivAeNYPys5K5xFu{@`IVWP3oB1)Q|B(<(AB@Z%>JS~^aQ4jLcl=EoE37zLC|wM9GEGo($XIdjIKeh%#QXLl!_LTy!% zt)`R}cXZFGUNdq|UGrG{o7_itBC{3sc2RRr4mrXb*vs{sg-rE(aeswo!Gs4rm_!2Q zBY)L$C!*a*y=-VXgqU!LKEu%^p7RDK&f{sv!(YU?I&=jqCI8ln9}tjd{J6q9cHJI> zsv5iwY|sv%1rnK(0e7nV*t35QnQH&vXS>4L+VB!-4vTTRjRk~tDt1f){iF~olG4tl zsF-B|xf7>Wr5UfkzX}iF&AfMYV-eB{+5Xfe=j~a7e^#)$a(|V5ghC5;gnmUJqa`qh zJCBq@9OqoN#%a-waUMWd74z7r8XC>4tYl*!zGg;gA+lKN@c}vlyx_b8E%S z$CI2e^!}*)Thy_(F%Q^{HbgDxMIdi1ck) zHT!nQ1Kea;1_vhCy`Vxj&HH3t{qjm)?|2*z=nx0)LuZV?IIM+eq=k(yR3oNjqy&z} zjyViflzuzlx*4kZbT3?VcL;zrWB0$xQfiEq896N!Sl^GE6`IQl0Ca8aROwk}a#G@cQ? z;;p1bN1khjV_kjDR8GZbciFZ9f7ix1+6Bq_=jG%NYr9yiC}J87ah8PcrNdO|?^GTa zd!w-=YAaLI7gN%q_e7&KMNzow zzVLP|I@(G^X^6Xl3&_6kth*beE7ex*@;>)&UqcJ}pcz5G?!kb z8URhn7q~maweL5XjhLL?9eRJ9>hnZUM?@S1d~;kx%K_gW#KwpQPdBc#^wAhslFle_ zW9w;49Z}#pg?U1M3P>mS?~;a`-hMvPP4Y;WbE4TeaKi4w$h&a!UQ@fLAK zu_mg5@*modzUJ}+f&W=~u;zL6la|v8fMym;49e?pw(`$6WoS4E$2JFFBHO=Gy(DU^ zXtGa_(8YV7T#IaT<1%=A8rS{Xj&&svjxrOac?=;do+8h}v^4OqEkSH{6exL$5~n+smlS&eD4 zjhV#;wRY0^>mmX&ld<+Rr?oi`O>M7DONEQ8;tsb>Iyuw$k>nS4mZSIG`P(L!<}sei z1BAhq{x0Ajylf0s6tL{R7gGEM-&~NlpL`E)Z}}4CpLkP+3i|$;Y`q7>SX$sq_1}!& zNl#(XX(WIhWuF*JO$wXoQ#D=^vUc5QHl$B)*W=FnOnB8}9a?RrDn^)>4ISFJFh@D+ zK0oS6d##OMn%)rnQ>mWX)!oZ#L>}XWdGBFyQvSjzK!T~43!n2CjN}!tJB%<)M}b6_ zoI68EIgcHSy?K)qV=Iv#wTnEFB#L{6Y`)lbskb+<--il)*6&3xPiaK--lay}{he}f zSL`mnO^uvm`Pp1?mArxBroNMLL1c8d0m~y1ut2gs%Gs%}q~^qVSwzq#J8>o>t|M)y z@|}(@Ve9L6_k{XZY7K+6(ibmbR1qz@

    AM&Wke6mEDA2^NF>YOo$6UNliAJ z4I_`xuUrb>mi0w4DjZ7@he-LE32@D?<;yUJDN$D!bNK_z4si4{+~Td>nL0$Hh+0ct ziD{Z*#;@)AfJy?dqOrV_KN`PjWHVE>fT2NuE z>j}}PRl*X3?zwOSoujw5d|0y_=B&go^;e3a{1#ibI{OuYi4(mUK&aShN<%k)V$L7^ zKi)jW#am0YSB_hV(FVAR`4Uf(3Zx2DOId13;iH><l2P-2}S2(`vjf31|Iz;ARo-!~s~ ztA~Jng>h=@b5mpQbudG{83`&rFA|* z+;pJjM3NG5?U?Bsk%GCg&^vlY|9-qPv*$_zlqVhVM1iB(%LQRv#QiuCP<*OXUhq~W z&Zq(@tI2+!$}X5QPOLHs74Cn6y10!rx*`-V27Rk_abT<~{OeNGu!Q|QBn=zHZ>mK$ zr0cW`$GSE(k8_Z`?aC3nR3Z2&`lXz?CRZi}Sq)b!Ri_iIv@R-6%9k76hBL|vXT<{si|B!-mb)dt8IQ$8kbVLh~uSYeTdzzIjeM` z02d;ZEVI+z&v_LqnoQ<_?2q2Cq72R=|4Ujx?Hb-JfLMP1;BB#r&ephm>NW*37!Tsm z!kV4L!^hyHS2`xM*;~WArZOHq8sxPfjg8HUglo635K^Y&JDjmYB&^b<<);*Iu|jDv zC~N?Up*EgN=TXn=YbgVGrEn%f))XYB-=(rz(NfK-cX5l{NQ>oxJ7^Ppj5H-FIo0M8 z>{Q*u;PP!5mV(`g^d-MBT$`6bm;lX*IsJ^1^MU+fqZUO(co5^n1?kOkmX=Q4-mNH( zwL8@~6`XwBTV{v#3bV3ufS8=phFE$@8`gUxjpZ3P^;sh`_gS{g53t(3K1`bhuZDt7 z5z_h4vw@4<#X!cp*pZQzAmk9&)esZTZ*wC=`JBO@&UvavK#Pf0skjsuz+)&6L(B{} z3~)b~SHD;Geo!L}khyP|++z7oMmiF(Ho$J1+2Xr0?vuW@#W7uL&=FIW>BnBJkdIEM zs_t5;A4Ah(>~=sqSk63y7gOkk1B;jdQ^1}8`s-+%pMCqFSk_GGNgqcxVK8e<+b z^LrS3D`8PT)^?@?_RF-;h0J58RJ^r>y^nIr6O!Y-=B%%WIp0nRS$(WfyWyj&=gXJW zIHm_LXnTv3H?O-!o(riszW^wY|EeJF2aOk;5KH}dQR<3Zu}kXbcy)%KoxKNf zm>l-p3o}zV;(cAG(KqP~FxhHe#Ok-iwtrsj8rawDNJ{(aD~UlAzx$SPf%Nc-71!o& z^}71jee#eWIWRZ?=F~Acx_`I(ED?4hxTzQW47Ufa7FeDb_BBnR%ZuHgw`q}mO)`s8 zX84(8?pdcum!kpenb5j8ecY=)I7eR+X6{N_9|){IC7EajKE&B|I}EFX1H!cSKeFaUwvYc{7rMXcTQ;bE zx$S4Q@Ypt?3|rq!NhEV~lGZ|@1MvW*!)E5Um02#4iBCfyjnX0YzudY&b*n;cYz%fj z*K7T~L%Z_nbnn?-_Q?jT*=`=cxy(97DF3RRWS8g^Huo?SLz$3`CR8qIUQtQIdu% zn`0Efo?mT(FT!)Cl7V`+1EIsOV{7jnr%!#jfJfjlNb_2XZEv$c!@@AziuT=}53fAx z{&#<+0N}x4$f=JAawaPlGBVpaSYbVsi}i5h9WzmC!)a`FT)cjo#zVA_+SGkxC zA$Ks6lBK8IuE@2!+8WT89g+vfuVru>~!NR;S;?h5x? z?X0!7JcVWk10{yx-W>i3e&ndQX%3Rj!?ffwYr&ai!RnOKZZ|Gmy)v7!L*7Vxr{s(q z$~Obl%X$#9IvC3Cb3Us`A6@-xElC})J>}=&fpXskC8v^KWxeMUn&vgqQZ}tt^2mv- zm-0;_;w<7nP~iYV5pfDS1T4^hY<8T0fuq||i+bHno=qkM$YasSQ)Udt@B|||`9d|Z z4*!8u62eEf0mW;tUb1~Syil&>iC}X5R+%Uh{@x~Yn^4$C-+4j zAvVJYkO9g+EC7S<01I(r7UE}yKk+n|@?p~LjSd-kkIgRM!^@#%F<87CNA67rjTMq< zzpFs(&)aw4irg}D44!u4ja0CL$(vz7tBb5*ZDtMc9D&P{3xcD=T!Qkg{_9(fD8oW% z?@ZCd6#7cslNsVR^pZ|3S7vQgMw-g|be3Awk3M(!uye(Il6&2?rxa!g#vFmBJu@WH zH(53Cj-ECeTuLZc;rA07r(Q8pLE5yq$YIYUsh}j}V?#rHzf>lGslD#pdaC1(^Ik7W zX;@UvubfwY$|iEGmsfO6nE@&5iYHe<%0#JS$^P&TOc@OYidTULs&9V~qvhsYbc;LQ zY8y&EPu)C7!S9a1n~;Cc(LY<{YwSSFVdBc@u6tP8MTLCO$w^X{K(3IgmA-7pinI*z zDOm{}Fc!%bpMRgX(p_h`Dd*?-l{WID#_VUR7Q~+FJ;I++O zS0ZI8W;n!WPwlHckBvpT8I$weJNWqB9b1v1p%8igacD3fAb}0zB$wDHf3*R2v+|ve zNX4?g0hMw7Z!(}d6CioMG*uGrX5G9TyOQ+R_!&HXN@o7MPYFQ1z#)9RYYJ+Nb&d4F zl$GhzdW7gL{DYxg%u!n8|I{oT0FND3B~DtL z4uQnvqJ2NvpZip{&HNaG%lVMeGTnQ@eobPoDV`sZ*S44FB(bNJ21b2$S82>!3gV;1 zM%&{a({KmDW&TU!AkhC@@Io?Y?#_i5pa9y%5LhdDjz5Q=Y4o90ZbykhMd54bc>aZ? z$em&Y3+3$gesZBk_NwkYaVLYLxt`F8L_oUVak{#wBv7tGcOZmiproWrKz||BH>}+! z%vUGCZ=XWuZ-=y2m8zfudipxqA^?~S$^T_6xGOAaexmMjECuXVgfw&7Af1XlpR5HC zcfXc0Pv~2N_4#uSl!JBG9b@f}@3;B7hY4PL8T4)UgWg%%S3EJ!;_KU;9h&w7+s!`; z;OMFJv&=cMuQG%>!laGH6JE;tVhaJLEHiNXdFaQHf8uHFt`D3F3ufP&kSYnHX`4y= z2dUiib0p-QbN9&f4`KZWZ%2FhVS)2`h#ROzo-10&;Xp#C=_m@v!VqMv@Q^I;W$jxb zqKy7MqsRlvnd`o3^p+nX&=1Shn}Db{OQQ!T(T?ha=nz6!;5<~Oy->1>KX5vy{CPv+ zWY}IIKz7t0O_X$y4=1P?_(GT$5uG+KmO=ymUhZhJ&A8yW4+O0*J zEVe6{JWss(Cu4;}5EzPIZFi$&wvC0s0(cd|0B@jGv?ZN{PT@d(fc2YwqMj)TTw192 z3D{%ZZ=GM?M0UP?+n*HGQ>;MdrJV(OjK|AI6^kAF-dxaIdzk=!Df8HglsNcgvFy~= zqjo20%Q5S30gEuy718`bLhkp5pcICwC4Q8QnSSNa+qn-vN=;0#;X=aCf?NyNI|dbO zjhhoe^={vifg4Z|yG3MBky9&&*@@OPe+(9c^HB;i=;E1YQxrbBb!Z_#8Qv(2Sjco5 zkH1~)B)*D1qEn2^0apa3^HcpQ1a!LUS{Fx_=WXE3RIFFRD8a{#5a zt78~Bp?BmN)Kx{ukp=!H%L6TdQpPfw^_!6icVZT}%a7qBtogx4VxSMm(PZ_N zrwi8s6rraml!63g_x|nbB+I&$;5`3wn0n3YS-0# z%i|i$l}xC@ZC;G;`l`wAkPG^d0_fSdV$=eH@063^I$RzILIxk<^m=h2Qz&0}&n1GW z{V5xH*{edZ_HGNGe8)yr%gkdV29gj9ctltRg6H+YwO(}|syoq5p_K%Hz1l0LHXX2p zAx!npsHQWVThVX}=C+4&yXoq{-Ml5o6HpGozV`EZWwp2QJ`uo{qB7;>-{^LNyYBP$ zO#~qSS=u?Fu0)iS3^{^zTXJoP9M$JQz#vu$UWtQxasX#Z?rScO(~;U z$x32eFWAAHj<@Wrc*we&dpU9O;`d^Z0g`WaHibsi?2LT1C&BwOe)zJ82} zeh=qXhfzYgGQm_IKb@>{1h^*Vis}5qXk6Pmrset9g{}_-!rFJ0qp*gj;LPdzDUM1u z@sfKNC;;sxz-R49?OwM|!Q!{p7GM?Z=oTvk(xj;c_R=qe3^zi0THZC*6lpJuxgpYg zwE95!KyuPMy~Wgqg>+1CVziEE6X2QWG$9RZyqn)0+4>etr-Ni==-g*Xkr(?*`PG{4{*qRm zB8L0T8zp7o1R4foY{kuKLoD(2`7DiBCnfUC+Yp-`TV<6N7#@T7!N zv}VFCM#}Wv(o_I_zZN;*sRAZ;(ATYwGwn7Kk^bB;+g+5!R8-yRB&2z7>t=Cq@Kin> zcg=ElS8#>D{&`gkwa_iixr|IBqMPXL#)nr2&ZXMiM?v`JSRap_a{-G@ss!4)Nk?7o zNWq=~4UYVgidwO7cD}(mM;ix{C4RymwIMhMM)MnRm_%M8e|c;R1691jWWosZ7+iU( zZesZx+9vnB4N9ksHSGNnhj{}+e9@CJ2T3vpXb)4)-hI2C5F5XcBfpT*{PT^7!8P#U zP=Qrlj^`fE!STZEUJTM#6SW*tXRS;al=4h$}T(5+-t>Y%}kU$Oq`-MTxiT}?7(a;^Jfrqr(_#6#bUauS|B1L)Aa!5@gy{G9l`u7 zfk#SPW1-{6dB(sHiX@3YH{L)otnAP9@QIL9$o7w|0=a-NL;5~4v-ub`_Yw6l+0rn>v?KGl>~*P0kozZ8t*_@qA7kECd!**{T7RWyh@m`{L@XQ z4OPKDLbVl~Hbi_B6yaxzT`aN>myt>ZaV4?t9yXm_+Y&!Z8&|@h(_r%4S~1ATtr?1dR299|Z*RLm||2ODwh3G>2e}aZZCe0Xdd6P$7ZSc;#;8N zqn0{iUS`|`w_@g%pwFsZkm(opgVP&ucPy66t6jOai7fs)!z19mv1_lA;@F*_WtJ{6 zuucVN6+r1cWki@P$EygEi&e@X;*X5QN!UswaEZ6Yu-{V*UUg{U7U>j?1xQ$v-biBn z7+2Gu+~tv+Fgf7lXL-bA$s+(sz4y3N%?yAoGxRS?u3 zDMEgbbSlcQ!vb6}V4O745PxF;=!9SJ5hS(PM`7>5;+%Jy4B_VlG(V~Q-Rs^@ERubj zUSbQUD|N#6x#Zx~W> z7SL`c7M)bx*q*}%LQ*lncb|k@VFh}{Y*b9OD8PxPnF=mb&V$bf`U-8pl}3BRTuo~m z*=dP3Q1RlV|Gv!(azmN`C zL2K%!Y$+rv_`7FwUGjDGbj}X>N$#>B6t*5ugjMqmsTvswRS}z$V+*|kXr@nJmPjN; z*A7ts>%?Q1nQ`QT|HcjTVSY-*<}&9Lx1-`Vfm#4G?ISwe?kqTD?P6K95 zDolq1h;dhe2}U6Qr%ZkhFrg`r(9#GEq|u> z<5|ycJvq&|D!CDchUb`MCRi8b3S!ORHr_Jw+?1q!BxkyBc5zT#0;dMQevmo=4v z;H#>~Ij5gY3|OTHKY>o2Du3*q46i@v-(faQGa`fByYsb1>fk+?Q)>`6)$zyF8J8yT zzf!K_I~g67ILMAG=4Lbj8_spCQBZ)&{)!B%!o(fJ|E^{zgF6l70EVYhC~GDTNKAbI zRw1LP6gO_|ng?E=0xD+oyPP}}=TI!S*|aNr-m}&$6tt22Q+t!utMVGd>tWFz^a9?8 zpD-5wO1e}HB7+aGQHmn$2Hx=P{1uAhXAAuzGzOSu;HN%9J!24cMa+1JG4V|(4+HEw zesIYm*f3_nWAj9!6ar zWr?F*JP31NE8hM1JqVkqv<1desC2jZ#g#6<*d@Q9XeH9;dsIY5fh??n6U<+*dc<)B z21x*RAt$WJ8jAujrI_^-r7517KCW^s02a6po@fCSw^5||J|)AM!h6+emrPvJ^Y-oZ z(2)4N@vo4t+u`SX*P)vKsyYZAXvwZ*jrmXPlUE7YBioVM%{@o_!JzToI_5ii*|>a= z2oLXtSj6+rLq|T_rfg%-Jn$Qim~}%w67Jxrw8d|gB2l-$7Q`^+SEXdMESuh)@Jdq% zrDsD_JW{;kApZ8@9$7jeD^*1WK4h34c-SZmpjo~;l=nq3sW2F-7S?9^; zsodSvU@@BczuPLZr0kqcmX;_sld~9Y(#G$FVQCW$)#c4`N}-U7{S4byS^Nvhcjj(x zf{|&%)+$Xtc~0PFl@oxCkppA0Nst>U@Q)1-jPH(Hx0@ zjAA+}(vWW?eh1pMNv=3xvO^>6b=>Zkm@%|YvEKu1!nT_n_A+SVEhZ(Xn;abct{7yv zmPTg_3)-C|LRXRq!jl=w=r$hkI!J)(*&SJA&4Y$Ejd6|oxqV2YT)X(T*$NsGkR(^MIw#g&G+3>E1(iNgb@G+O_z!a*GFDyQ`#F_5yHM369=_I}fdyLv!f>+Vig?oy zdi|1yA43y9g{Hz&lly>1( zO;@EgYX6N8>;-aI=VpsQONX38Mng9F;x;SkGLf`7pDCm7POYSsFwY2i;wmHShCgOm6HmbnRD|fjZ(r-tv^&6dgY6xs1S`xsji( zYNoLN#4eeLg9z@2wPqO!0+bRW6|&_>1y9H=wNoQgfGBN(~}rh2?}Bh|Sj+Z}ofYC~7* z{Oy%I>xGsoxrsTMyZaS zXF2_a-%2ff^Jz)Lyk{>Hj$HC2;-Ls%Aso(DnLEjIg!cN0z|HSiSn zyg#YLO=j|4NVIq_YXK_|Wn4yTR<;~TY>|53q`Fz(5k|lA+4Yd$kL(c`qeqY@yCf6U z>G&J$cgby{Vh#0QMc9<8*W32J-f|LVvp6`ji5KDp&UjU(JvkDdY`f*lrq?7#DO=>v zKA<+9H8IvzWJ`=q8{ptj1fL)Iva#k%VEM%S%@VY(D^{Uyj?p|O_gy`r{9OeOGhA+% z%F5=eJF@U-V)Na&L&a+bMs-0&HOlNz6isoh)`G(P6iUuyU`l=&dosBDWHm^TGn%Ie z@yS2wy8WwN(Nxe}AqDjAxp`v-Z2_r8=Khx*Z~c@A*8&;QT*nFbO7$#p7&s`$`Th z>0`5hxv1?&Ynx?VC7EZCcgHAM1mKr^-yw5N=DhY32hQb^e_IR?`~xgZKti-^abaYL zQ{p zAO!otJ?9-H#%UV+P|*{8x-dBiv>>A8JF2Q&jozf5F@=xs${Fwgbi|V597(tZrPZLE zV6YAniTImAv3!QOPQb8std>&m+#HwWGIAOEYw@RLIqZk3)b-JwYzVB}$#!N|!jU>x zh1P<_csNDD^SNlzrX$XslT2BUR53!YNHg<+2lUt*=AMH4i-+kETxsF5jIM4MEgTp` zq)~~Hqw(5a5g?>g!~X?++^TA&&vH#7e08f;w-)ZxF=64bJzYDfHThfv;2Vc68L$9}F9#&de( z;s9R11ld}E0&TB&GXMEj#m2EL>t{m&)`z9C`OfkCfFfP&F7J1H@0hEF-l>=$O(n>X37h-&R>X`8*Lt2!TsMbcbqh#^fT13&cZ@MP(rkKDwShj zaW2JA%Y@VKxH_&vd`r;7zvPl1%gV{tSpe3Lngp{bg33$Oity)AVdYhQ#^e^r0_Hzp zPIt>fBK?lQOjp-lQ5f_8n?xwc6z6y-k3Z;s{YP_?ApAwmbDwpf6(5W9iR;cS23$hx{0iV9{+k|V_uiD%RWutgZ%*a^k& ziGIP^y>X6`ZGD=x%!E_TVF9=j`)?n51}$2aVvGBSxhJJD^ga2rgJBQB3d(E!xXbt& z@x>o&FWub4$`gtwrHAt)!V?vLH3?KHwZMfL%b;pfe{Tps*OEVaqYNPA#hlvBW0wWg z7a*N;jMX}Rd(!|ug6y0$(J&G}J(C=gwgQ?NoivFR4PUIW<81;8v%5r%psYt@gGGL9FlLJ2AG4Nt7Y%q-iQ>?mMAJNONtpsEb{M1fMnB+P+J8>B zk4k_2UZUs{J5tl%psVkz(m(l1OeecyzSvm_OuQfVcyynrd%r)@quKhR=AQ#8H;JXG9_Di=FYRGK7`E6UCuFfkq4kS0D4$l{g zwIy6_HjmYMXSg#z!v~*YgDDf`v~1AKORX=h|OJh*rb*tp{Xw09cJ@au$CN$2pS*mUwiFJnN%Tc&H_ zos_p(aJVmOf|q#U{JAm#H^X?rhy##bhcz$KzAB%;`Hck`DtW+pHvH>7TY!3mh0!Y%@Q3`ZkzZ))Xo~|C^wl|@|vivJnaAg$g8q^_y3;qasXa5nH z{^`*&iSWm?2)j2FVyZuN;N;}&A1LO*u{@9qq(ba~(?4wd$ltVX2rhN4SY`voki+p+@1Qdh7gdQgfiP~xT6lN`QTBP5;yOa zbBknf|Es}po{8`#8)!%M13x~NIkD=0^j@_gTGA9E2XQAIKZkr;e0+OMU{!N{Iu5md{(`; zI6>H~ki_qGpg^!{Z$Il_h{YucP?a0uBqI~dV~$@6G7+-U`ahb!F+8%i={C;9P9~bz zwkEc1+qP}nwry)-+qUh=*YmvR{O>Ehv-?KXs)d&vYB6V@C7H2GoThc(3UpzlM2pn_ z3Fa~Sv3^J3SA?%ab3d*Gs_aq_t&yLA2{$BjTMk?TEa!(FR{$gxY~@ghrTp?|f1lpY zAesdKPi^r9DGY>iMIq4DCr`IWLbR6GGfg!o3jT!`YdcR;(fTxQ>ag%u&%xbuiC3HI z6}PtZ#4m%4ulw7O;g!d)V#&^u8YYxtl@-^Aubno)fWfyHzPfI!nEz*Rfl|^nJ8D;p z)iRGG>LV&#k1-&w%*+uAhRKmPMu@B3x&3GHAOr7z zy(@hOa`JkaPjc=jjgBPut6818k{)<`NGs#$$5#={+2~FYvin=MRw6Cg4JC~ht+3g3 zgCt3<@r_UxVPfpT%&x;UYU%jl7mwT#>AzStdOPMR>>-_~ELzp9Q^q+13{}pIn%r78D5b8N;EbC$Sh@|6f@QG<5F2g@} zVoh8PhtK>ob^gl~8c%*bM;TeIJPRvOde>I1Ezyx|ByUF638uJ25Q!j1)h4az1AvUseG|YXTAIa0#xk!m zhAjqVF!Y5TRSH_U?-UZ8Vd2d0a-H@6T1z%Rp*=U>d=>*F>fiyPp3A0#ESQWWsVau^gf*g z_K#`aky(WPKIJTlqFKHE72X#=htXQzqwJ8!AqUyss9DHFzNd52xnf-|w19FcY0^;} z*=i^NzAH!MVmW{9hmXo%9m6}*W=HERf>EMBzPmi509SgM(x(&u5HASy^wDnH0%OCz zlh^-i`TtnOW(`U`T4!NX#w(>@sAD?982Rr;F>nt@YiRsg=f|?m%4yTYy3@XtD2|jq zJ_v!O1)%A;9w*POwBy0&OO0|W6oU3>&{5go)Esqir@)M(8I5#y;0z`TY4DYje1{cA z3ZXR$=mhunu5G2brt`=yycQtUrS8bJP@)*~^4-pOEubZW12Gak2OwAN7U-TIY4}{e zR&HvH4w~b#QBa8Gbe1SV)<_(lI>9|G5pwaWfC(p!I=Vx$)IG%Ut_SlcCSBp*OeZ@f z5BI9Eklb|~`#7fkxEB9*IG+BQx~Zo}YB@0si{+)gz%Wy8ewQh`Yzb}P-JmhgqR#=j;Sg(6Ec-nk7IjFvs`#_A?>Lq`pUALQ)~&=fkx{F(VcX`; zZIHYgC2zX{W0bT@p%ld2#;G_Az6?xigI7Qp?y(8TI(u|$VY2c+7{jOxf|@Kkz2#UJ zhThj_Fi!6fU&qD64^c_8wDXX=l!_Cft0I_XWO<%_c#Cn=oOKUf(MjkVGg=++5(Oz@3(1lp4p5W3ZurWjw9HY&OS zX|WFW*i)(@+Ci$#XZ<@E*M$z`IsxVfoLP;?UXSiJ62P%OJ4ea!rE`f%V`)YQ4iEfJ zWqumm7d77^(ho*W!$V`}kAejBm^H`@HY9!N&ogKf2ebY;raFSAMP2a|v%XE+Q5 zpFwTOtN?JD8bu_w8ULo@zGf6<^|JU&A46T-n^2(D0Gr`g#KMm zHvRRoFWUHU^C)N|6S%tIoxT|O1OR!&XiHQ<7yLQMmrpX8U4C5%z#5JgC>Pn(dy#~X z@-}-s#A1ek^U(w@DpVb08oJUgIi5VhIm?Tn&^(?oKbGdl4uycQ4}jaF2{4F1?Cc)| z7*8Lm5byYO99e8walxv@cEO^-RTQa7z7IBul(fJHqvn@U9sEXFeo4CtWAohvrbfl> z7!|3ip(4~E^bal&Oa&rP#+@Z_V3(lyUI?Jr~`@ zoCcVNuf~AlBp71JTPQF3|FAB14=ggFF_Y|731SS|5cdxC3`^hB=%%G1!8zsSyI-US|He1DWdQdkUDq&FvP^zN&u>ebP zNXJ^M+49p_MRJgxTOAbhWUFM0#Cm-(| z<#NBOmRBuzWi1W+zdOfbFJCiIoNAd`JTQcu$Ed*9j_WlyixuX#FZqu|JQE42-r|>z zbBA5fkCWEDh8iVSLL>TJD+ zsf=VERt##7&x+;2A#8@wdPD2VsR*I-O1RR5O{xHdnl7))T7N%FP>LZpJG+UP~T(7LZ&dv*n9>&;1O*7RHQS_eAC+&4e_3L|z|8_9FCq8Q3TNi5wthc39sW zA31iTe)W@{5;yCH`aGXHYNSB_?MOTUYGX{uld4VPg^Ms{rU3?uE-hCfv;w#W3`H)4 z8*Q9)%Vy1(GTfQxzibp%^4fb8F13yO3Rk7(+^iZ~iZ&Ajl|YXN=Q>F=KLS7!3%lcA z^37pAa|Lq1dXOcd3ZwHKcvqKV>j0Bh@M#&!YY!=cuwD<)cB+Pua! zpZxI}`2a&3mu#<@tmCAzi@EW*b39>%XY!(KiPZ4IphOYu{bYxYf{*9Hhe4}F^uK|v zj6jN3VD3|~gR{g&=r|DS8vL~Inoz#FBdB%U%NGxtN#R6AVz zmGiIzv(|v1hF0|(P&XrzAA?T8PhL5Bfx(2%CR!S5&NLWHZ`q#WkevjJpHsRCF4L^k zlI|KZj?}*)&A1d3JgHG|CJF*YQ$kGL?XS#}ufpgX-tB{Iv3y=0-l>%%a#rPM+GIwt zP6@#`*X8(y3pJwd0#Vn2wvoYB0mp{6m1h|;fUKKGi*=$%l6M;J4X9iO!SX+->>xKO z3INhZkfg`875?oMloCKs@Q>Z=%!fS-<({0#e9JL|hH?flj@|&mm4jp+kT)rV}8RBvt3q6RZYj=hrVYocJ~i;2Xr<@U)&z$ynQlf}sRnj-}2XP@#0 zv<|8U#i@UK;PX7g*P%!N7rY4GdiwT;Pl3_Qz_AWB?acLpP(OeBW>-u$b}{S#Al3vI z?e6PLx*$_R*q6)^;fRaI8)fF(%)&?d=I$H8JFM@X1QBz``O-1otLT+P8!HMu-bp)k zhEdWDTL7jJ;h)K69Z3+8*2f*p_Xd-#DQDFJV73>C{W`7f3R8HOGvdSUKrEgi9}~cA z0YrWfnD0 zi@`rm4pTkHKA}21H_9!P*yt)UVU>$GevY}esL2Jf<*dcvnDPcnx9wbh+um26KzKX@ zfabva6~O3RMhlWH@I>eRx;&xvkGit^Ml@!Z(S>+tt3W3w?lVf?X3yGU2={;V^yFDD zVV|#r<&fiAqgO&CJHV4HO7?1goVF?CrErLuO3J7DKcT1_T{JH>D}U#NNAyb+J}|DK4*7aSFHy4xY`mKxCZ`lEx1YLc=?Np{&}83Be5n|Y)>#Zx|iJG;HfHQ$+1P1d3oYSqMbQ^&8?3 zIB>5eVOMQ^p4FG=E5>yGXXkn-5aJ)shBjJ>CSJ6i8w|nq-_ToK^tESUGuQmTkI9Pc zpNIb{Hk1Eq>QvH%Mqz{A3op+!L4pazbZ1M^d9I5^Ptch_xE0yBYF1t8HlbSSo$XEf zNp(PTg)K(Grb$Fi-<7=(2gq#5-Rs@ii*?`lCH&1dbKx|?m~1@R5IGzR$>r*N`?8m` zKjOehhFDAuFj1K@-_Z2I+EceKO;Lb~gNR}fnsgSj=f9`Hm6y6!0QglvG6&#VhU+|| z|JdFX?9|N7zd}I8wV;`TJQx)F6Ne*j>#H{ehY-)d^J-FxjrtxaoD5;{uFqcPZx9POsI`z*f8Oy$n{i@RM)X zpbh9MZ-C`{`f03%cG61=5H0AA7(2TDJ1?71>F{QM4)#x^W2L!aeYX?oGk@Edep`gX zW#LvOyTdm^-iR*dz z!LB=J$2AUs^N1oz1fDZ0fjGszaC8L^8ittO&C&I?=oE>VNE+*9io`^1Dq3(zFOy6j ztNt8tv46DPr7O31#(So-VDM}!yqTbN@jh7D7MmGe!wD23GucWVQ;Z1L(60Z^yxelU zAL7@#lzj0KohId0fdRbMwf*yc$$x(3Vxi5?7!n;XKvLRO^1^;#$*Q0e@k>w`9MW)` z&fpu_d}LDa*8=h@@|Y{Xqj)^KWa@p}d!5V_@CFmEgUa-9Q^av;C9jxZ;I^?2noB;c zTC8V3klxrWgFRm-g-lmWC(Z^&m(G?{8cB+N*z_;7^v?1H3us=g#~f6a2!45t$jK80 zzgjat!!a@|d&QWM;4ADnJb+hdsz}WD#4c{bS_oK4gDg_Ks7`$xdm+kP*2+Ad-#Oqa zHm5A1RB!0FOZ?E|BN>#B_*vrQr5mIUj)KUA`z2SfEsj$PFbs4 z|Bz4IQg>Fo`>--;|JmL4kCyb7HFi)((`{+I3+#t(YppNLS}zE#v~g5lid(jC9ys8dut8lbhJkqDPuI zg~wWxJ>M0_K%{)#e{QVP8~m+LQ&&Nh0lpl}PMsK(V@ zJRI&@({3jnp3;0I+9kdW(R9WK0yP0$xmg4%sS!ksrpN2cndpu8@cl=^g(8ft65Qyo zo#@)dt7J7y5v~J@uvU-^8RN zGAQ4ji@iQs&nA%35thOXZM~~dOMUxBwo6xyb4jAP>N7wBXrDCbtxo45$lsLn*6$&e z8MQ;1UKswwpMRBD6JE)}yPd6EMYlX1~C7?Dgd$}?`b-V@yj|I1{#YhRU z*^p}&5p+iE3?A^2TtYPVaUZeJ6f`i@=2 z=ai#RQS%g6jLZ_0$)NOuYdME34=4_(5Mr}w;VV-a&Ma>0+xo%urjO{ikQ9#6YE?E=R)gQ2;Di>2P=-x| zC*r@srG&n|qk6GXyE8gZkp`zyt_3V1Eh!NQ%wlD=K{O#(r(kD^k{Kg5Y6qcK zsa*bOCi@G>lbf{J-i*i*>}nb^YK_!pMIgG_Fk)v0MNgFh?p>BLI14u=EEO^}2xlmP zy9P1L^YEoW)y8U&E7HG3C{MH`YLHI$9){aR9tuoeJF%yx`E~_@n(M8*x<7v_1pl`|FZT8yg3>P! zxG%J!nyg^I_F7qm z^9>)a4Zf$SwzzmIpL3{D~4B}ht>zMTbl16f>HUTW@I_v`d*Cq!V2IJaYbdxP^}#h_JbPeqU~J#wU6;s>w) z;rgFYk*aMKBYMi|A-C5kyx1zMP#EtF>oGZ9RSsZ%HY3X1%5oV@>#HGN+?s z;I`ms0z)V*Nr&*y9I_i9*CzHyBAjpC(6PfGWJlT1+c)_KF7Ew=;hu(P+Yes36^`GiHa0(V9by{*AZzd4|z$@{T~I8XMeB zT9U4j8Nu^5@K=Eh~hi@8K;3mBc?1BljTW*qhSHH<#yrvH7PA$r<^TB-ig8$B*>2UWr+LzVB z34V0Ta@e9l#H)QQ+!jH-$QE+N4g?KQ zAu=sebi1e=WEX&)U|{`nzx+NMbuEB^ceiJ(ViI#+ElG9*qgObT8q%zJM6pM%z#VzH zAY+J)P73kcsJ|EEj7fCNr-X})WMbF~qZC7RFG*L5Io5g>UECe4uo%v6eXL6rK>Yla zTCI(QX*}L>EhlrBqE>smSQOqg8t%( z5O0H_ExpK1{|It$pyq^x&XWE&t}QnSPak48#vtRZ`g{8nYWsLvocpN|4K)`{o8}EO zKWez&_1v$%3^l`f;Qsb2+#GnsvCQ59CtS^lr?I7PKZmBhM45CkeeiAgH2nnRTIA8& z#O97(-lX#>XfzaaVrnA)aD_W2Qui;Q-STuYp8o>?>(6wOuc&KX{J;N9{n=&B9+#P7G(#R+7PlqrXhv>OFeiXf|3nQW_5KIN*J-x=QbSbR1?p%8O zye#aOmkzPu!&ZWfl6w4nS(um^QUW*4Z2Gq5oO1sYj*s51T`xSR^*282W+Yb$VfcN` zULp1>OyyH7jT&9wSLp*X{GHolX44qBYM(}B=#`?IE9 z6_Gr}t5K>SvTTvdip*JMl{KjR3_T;y84Lco8W}mtSP-W@_`%SJP)4h6!s(wmR&bGDWWcj$p1JADmzm97o_5g* zIeE{{_{ETp_V#)ZAN5n@J6$?xU-s3^z^&8n#b~VaQ1Hm!9o@46Q_?yv@5@zJ?-}+qKGi3w$FGy)R zig-y!5T7y!z{IaJ(<~(q&LLC3>Lq-N`;>mM8qW#S;8Ut&#K? z?yV`@JZ4YhChFf*3p%}T+b+Et-ByU~`s>R6GLIJiYmjGW>Md5<6Y$&cl6nIh3{> z(_og4C`Qh373Fw3XCfUbS__}y2Eqa@iQch2 zHPOpm^tzvGd-;!vL$}QyCMOeK4K-y(kV%U|{!90I7Zc~lY+Mq9z}AmI`Xutw+)Zoq)WX{ zq|{6gyfHkRe|8nT2|#fz?l%EB=-14M-O?&;q}VU^C1rOl zi+N&$^8J{W=Q7l#Fydw~#ikH>jo`KQ@8pcQ}OZmir?j&Dql9FtO~%?p3$C0 zM;S}=u{iZh1 zCEhH&y;M0~sCSTPG+;6bC3#M&++d9dh*j;w%JuG6TJg#u}a{AkCwdl_EPSl*PNnoK+Wyysf? zqDQF7iuJ7$Uf^+2!2GRaTIJ7i-$^SJ6O5RBfKUPGzgGR$YOw;Z{701kJt%7J`uuU4 z=FEk7*2lu1)C*>_69vfJGtnzzZ{&6I$$FVgqk($gb=m`wuUEK7>83F3sM7WRWmePu za3cY@V^cF)E3%Q$lYPVcu6o$;gSNvNzijv;pY>4fDD4X&GD*dA00p0ui}sdeDa2EG zE?ph2Rwlyed)1&X-}4))SmqDUc@x@Ht@`uL6>)l^KFb*u0| z?oNC>*3U@CsMEj+U{x~S%jdz1B|~$2LiYrzvT2??(Vw{Gfp(3f*TVnaI^SKkS=hJ$D}-)kQwEa1cwt%9w?)alh>$adih%Wgh!Ux0JK*+@TJ-n zO(sx{bi!HO=)3+Uo#K3h8m!$i=3=il?}Mzo&{amJeovOe zZ^;VU4+*4&RG;vBiu+uhMW$*{i}lWnJM$}r_zA`wQj6o4d8Uvg=h8@Xah2Q&d7~2w zIC0p-kw5%*E0QH z0h~*b`?8l4T{SR2uwf)v-pqf3_vXOAf-CLB95$f*PB)qgCgB0#DV%=$tJf2ge@t)3 zJA2Zgj0)tGHjtPqQp53lY2xvJJgaKu-;sk!AZ&529W?j+HKTxNQha8Vxo91I>u+~V3^~G7(sf&}c=7X}3zbC6bH+qYoCU@BLFNgwyqLo* z8*pzLkMe1@4DSz$9VF>V@PO_Tq#051yFx-{b<}68$_Ce#q@$ z3>8!XGXZj*eF0C6q(D1SnC_%?tQNTSAW{5z8%fPNXgYZdcGI>#l$sj(jn2d|XPTfA zhB=8G;(hDtAEx~$4hP<5QRAJRldVi7JKFVD1W*NQ6e^jH zRlF1}lU$G-ls%G-0DE3)M=)z`iz4-S>B$Yc}zobUM_Eg)4eESnF+iY`q&sfDlC|~OjvCE^STu^8d z+H1ACikIw!L_K9a(zLjxR29t)3Lf^CvME(^i8cA&zc3OKyXW5ELR%Z94;9+W*veIg zT4zyGXLf6QO}RI9rltBma;(D&-aNL{CH-zxa48;zq|U(+xV`=iRY(D z6=sLd5rVA*4R8j*hv_8Z*@x;n1fH29L^WdH4@&Ne0_lfH@?*7A{oFC&P8`0$37g>c zO>#m{ErI@X6+OKFJ_f_tMJ}gZB%A@)8N6)yEnwYVO+kBRrxt#O$y=^A6G6nHF6R zS{T{MS0K2PL!OZ>cNXkJO*VQR29jn67QH^HwXUM~1@_G;ivZ zSb`Ur(c;qYT30L~lB6vCigMLyFY@Dxrip!`h%!8dKiWJ$ab%p3e(P;uG3D8YS?j>P zU7NK!3H#dZT8^8E%&&ix&M88bj)#H!Wf_C5C%;8QsQ!T(Gfz(7AdYIldHIf02t^9* zm}hvCrMZFFNJ>`ym^zq0qL$cIi1}gx>x?dZWPR7ukuyezJ$6m-JOA8W_T*+1OfKTP zr2k>1wW*s%49o&hqwd^EZ4g7XiRw7WVYLax3|ktCFAHqoaiohgypzDI#42RSG_b*w z$6F#U)v>c5a1i~;J~guHs~N1dQ<^_=Pw)7coxOptoFqqeu+Q=_oi3_#kxz9o`mN#r z-BL%`J5f6``vpg}#i07CJeFBCWxlZaIZv7-i5*DaB20VIdo-svMhYv~GL&g0-poHv z6^IJbDsy(@{@bwgZXNVqk23==67KE^g|K8XO(?k2B*=vOkQ5xrJ*PbH%;n$%w$1ry zR+V4#eS~A$`?CzA3nx+@`?az@D?MQ34aZ0U+~+G0*IW6X^hsK^mQ3zrVQBFUma%}d zYT8+-3mvvV*k&pA$k0DR^V|Bv^Yb0%_G8`^x5p7vQ}PwNdgATd=WnezqagP|yEles za-z@ok(pyl>ws^U#5cR@^9UVp3LIUZxts#b$Qj+t0=M8aU1MralW!ItoP@@0czKs> zjVWtCg^OY@&-6x5aeVV{cn{XFrvVNAM-IDeurSDiNP#2a6>;Rc2FlCzJ}mHyota{d zwT_jkCP6BU(REXgXJu}cw|IwZTO47e_Uv!GGm5t;^Tc^Wk;tIG3W?=04ef3{JUqXl zc4~QV>p#qQD4M=fS**EzN`w`KQMlWwzY1w0bTy<Twg~ zpO+C!*j6dagr#sy871}C(QAbYGr%~mjU33L2ern}fz^f>75ENz7NXGP2`!VKqiUgI z6kw<~7ICJ&FjHHrIUBo{Hg4$h(zGGBOZ7{91R1x5IEE?~i0ESw$ZIrW;Q2m)$gX_v94?k-qVfs-}LlnWOoUjf=r}I1JbCgIpAzCXyDZ$_3sgQ`B zb8aa8gLB*?vDw-2mia4VS!VAIl@^(P7;+A9bRRY#Z_S8EHDLA!?V5K)3^rNGsZEs$ z+PBDby`l~B?*nR~>sKHncjkK+;UK3!%W9-O%JcZ)JaXC;IBd4=4@>1Zj6CaFItfDOugvkABt zx$6QnT|u;$_>kqsLRG0ZPlpmL=o5sS`~+0coSDgN)SO^s6hsdgzXxk=E9M^WMoH1y zh;G#g$A-)bCnK&z;$$xEBB@y@(N|sV<&bMqMl;U&9OJ}052$@lkM|F*q25s;TVdsF zh+>LB{l*L+e~ePaG4%$@Xpq>6kq5R#Od}6d=as`VhlUdW*mMIi81bu+P6#(+qMT#X z4q=5%S91CE5!7bg|T?0#a7IK_8FB&!kW4?Z&jgn%{BujaTs+xWgR+H;Ewgq z2$ZUTGd9M)N5p~Pr_T?ACkMlp$4Lqz!M9f;&nkj#EiRV-L9`BPQveLO+Y?JTE-Hv} z@>^_U(~XEC0t0Rt??(ZPoq6m$Xxxck4ZLIXcSJ%RkXz9-KiQJsRh@{2@BW{-q=zuZ zKBgn9z}o{PA*cbu3E@kOVhrWLfe5hSuI(i!WvyY2Vpv8XnVY>ytEwC|qK_pZ=EzU6 zr=!gKQDXH=a>hA7$F0NoDSl|g((o8`yVv1)^feHP-855b$AsSndFSUfm#!-HaNb$>KJE|6ifN zwx96hJPXV-Z6-5*l3$GcN-Z+VnD>{lQ0;ESa6FlbE$1N%SyLAc8<40M2l&F3T>|Ha zU7=gdVzJ6lZLVM>d?;}%P;w9@E=hxkJcU7Hnju_Mc+P_SJJO826&Mk0AZO-j9%rBB zA!XchIC34kp`yHY>iq>-b16zpvUCx)APbNNqybDvCugQ9{+6`Zn~6eLlM}YR62SIf z!Frcg{Lb^mrYRk{=kI$T@Uw6D0IE`$=1d}>z&UOdnR8DuQkbuYL?~6Mu_koQh?HNl zf<$10(4wp0Y-PkC@JME=luq#T)PvIkSy2NKg-1)_Da+8EA?bDh8HIwYDHqfFLiTSj zK+yVAxgWm1YbGx#mw12StUtKL_N$~|YioH1{1x$q8(xw9QQ|gt5OV%k|KQ4JLVA6M zK>2n!E5P#7@I-bsI3B?8^lHdZCMa=ub1`m3at z(?H+b%G`*qHnRk)otL=uM&^k|-bMF8!KhD4gmMl_t0er1mOc@tg`PQ|@f1ZP2w_wSlEYhS^}sA6vK0$~!NL>*FapGg8ucgBw0uz*3!iNmHSDz4H+{Y{Py{3Jmv zHTc4-Xy-}e4FiN@+65e!jvbO@QBNic#35FH7JS!SACgc<mKAoqGWByr!@z*BlqGMGV3HrA{}3)=cX1S*dn?JeB8%;EiF0|p^V>u z)%f#P|AWo?=3O(yR=EyXn|18?@a>mpq?bkXwAi3`yM+8EZJFqMS0u1;U0I^()MXA& z@yiWSFanLx(b1Oz8WW0)24qHHoRZT#CwMEE{cGrZuwMz_2b6(5n-fi*c1Dq|0&+EY ztJ5xRBys#%m{8O)49um)nvv%B{J6QNhb+ya=B2yaiFAQ^Q|~01prQkM4-7JvP$R*7 zUa3YR(HS<&NQdnu>%&ypnb~9yp^B-p0fb>K0oj1xa*$ zQQH`Jb8(~Wlx+onogFQMb^SFBrE@7w#DQEwG~0-h20 z>^CT_7Ktbfd3ZIhv3HR#?7L^GrBh|3E%(A*i{RwHe z6VrYu{we_bgTz{TLhOiGnm*o41mEkC{Y(LGlO9Oc@Jl9_1#r|K#*Ius*T{x*l270h zp$hbHTzeN8`OlWJpW+jd&-}sH6+3|=H<&>#;>gc(wD!8)?KiVZ;Fz^Uc>!KG6hbQQ zV6Oy|tPr6TUYsL^x;3@}X0n%YP?d3U>deJJ(rwBPmV885hgc`JH#)e4As8jjRs+31 zf9xds)<1KlTV5(*f^$gJME)?*$~ZyOvdgiCW{RvnAl`oRnm+68QghEmB^n=R^lIY< z6csv3?PXYKbT3+}iR3g9X+u4EubZFB!y?c;S5 z>}Gun-zz_;Zj<(DQcQ)ywN}IWASWh##Ei&aF`r9V^<0k^;tMRK)(_@d85Khf7uD{#a1T**BMR8O@gas5h+2UUi;Q=BG^suwU23jBBGc_P>uzGEDJ4xR0OUf^Uuim3m94Nd~NJGMQi z0)LjL%jy!Bqu@6CEtSO`rAT4pm>`am!WM>exQjffkXT$~S&l7&bXuU)e7LcJ^Dx;9 z&Ptva7j#3SQ(h@qJ4YBqky&j}dxNlv#LdgZbTZEx*#7Fzr?aOIJONL(fIx&&Yu2=FAGnwoQv4L^xE?_0&N;a_bSoE*MV@CLugb@(_ylHuwBc(!xu3jE+ zKUK~EC3M5d*gh&H!@rjpX?W$mVXN>sRmN+e`&)6sduZ>r%%v-0UAT8}0GE*M&$B?0 zm%e-%jUW5mA-3b#@Q+{V%qEzQ?cz}X{!qtlAviB4V3QLgeGuX}?ITGTg z^=+J?XB2}W;mbp|DLihfRpIRFVwaPro1gZbEXZiBC#z(TUrd45L> z1?1&vfv_2w-^~PkpmEht7N{^kGHZDvs4?>8m&)!s(ZFg}sJfV^oz6vbAr^u@ty)ux zSdArRDn^|@#YCB;CFW~;XH7RBE4{NSz!L{%8~*xtR{B|=rFy(Pe9~us`*>fGmM+Zd z9L+G*%=7BJB)L-To;d6~IOHbcv$;JY{Kf^oRBi8j_Nu+LE>Y-E{U9Ty<)V0r%~WCo z%jF6nL=B;aQt~vzP=wzzd^{xy@(6I{kSgPglVT=A5BPl4b}Pf%(tWFNZl zFADtb)3(TQ2l%DvblIE|*Sg%d$n)KKt~q>V`PuAac@mK=-hs>aWg1z%lw@416yfnO z!f(2BpYn>!(L@{wB}C=EeUlg^rYlJ%#V3lK>`*sXLBp#h;4S=*EXAyX$RcnXYa3;H z`LYcO?9<0UBl4p9o~gK5(f$MN5?|WwO-`!g%;1=~omgiAa$5jZ4)Q6Xj2RH<$zHVM zw_1#6Y-{n)yx3cZ7GYKTlNS4=Q7qx`0)^d_W+n`B7#>$JV>Qqm(s2_MupE_r5w zyd-w{a>h@0t={{A9ITbBW86NDMeG4O&k4HGh8|L7wq!9&dJxyfsc0%VviL_dA=HD2j3YsTna@0DDTT1 zAMb*jQZU!Fe@dGEob6{URV`yOM~ND^h_rm(k}ao6tn{vJ4s>7=#rb_2vv#;uE?}Tg zhfj+WsYeBI3{OsnGE~9+GeOqL>)b3?-KU(w{xU60Lhfdn>j|CK+tKBqgePEG@k=_Kg8g8K~<$ z&mgakyUNx_9zr9f1H*GvamI$Ebs~5fxoIK^P^r3I74Wll!+$-y*b3jW*#+JN96y0O zIv>oEK>@-*Jtkr&dxOv($vep{yni>wYNNgMSaV2FZLVSyB!|EEotYs~g0YaZS~eU5 z-4x;SId!Hq)-_;6go~+;Pp`sq&whFfC%KQ$uUe~#NHXS1v8aY;PXX}Pb8D$2O#hy9r({Nz!BeF}GIxxft%@zMBrsK6jhx$2=3(vs zAccqKj3effi5Lrn7WmAGns1!i2xdM;5`SyE_xNv2;yfN_5EH@itK2=PJ&cA-x2LIn zf-2_!0O3F$zp1!HE{%NFD~=CRt3RMlo*Sd4xwt>Bk3_#X*#QWpU-ur)!TsVeQlt`k zOq(z$V`=fZ>{W-;g3*Rjlwsk( z@gMM32G6^-2umKlSBbojC=TjWoa!L{M*350gR99zRuLNNuM2AQD!q9BW?HKWgl>pP zYc~?9E2cW9;AH1-QismVHWH7$Mcx4+2xvw0ha{S+{bOkgU;?nu5n+7&#VPosK++kL zlJc^FILEQO;yI3uq>{J;`Mxq6obD05=y4m6dEb^w2GzQ!oYTK-ok^PHx($T)@0QXN zQb{KTrAesD&dc;Iyz;IuW)TsDsA_-Rh4=%c<{>pwQ(1ZnA0~4n&wxW$&{fFEBU^wt zwV4)>)&XT3O@WbKJLYq;Pge=x3XJDT9p00wf&3X+EGYU6D1Gd0S}dSi!FBGz|Nhmz zE&)=3+`oq@sdLV9kq)?AY(s%b;F!i}2H#8SRP5$?V|B;VNRNEjbpURXa#sn6BK~9q z-%F(4-B65@GOb+&fK`_%jog3+;%C8bM($4UwuFtxE5}4NfltPQV|De%#h^1DDQK2^ z7Xlk>@rE$!Hfgqk6v(;^aeG;;_R_oJcmCIL;Rj{9_?)c zK7BJghV|h~qM0ftc)>6dd@3YpkrKv0m@VGMU%d#kFD$+>$BeAil037)rKe8uxdNtY zr(UT%n8B~A<6cmBl!t43_g6@)k9&`Sc+`Z(T$8Xk<`7>93(^a#v28$FN3*ldXeHD?MnkWWFsGR`oD*1$6&#FgW_ZHhXM!x_0o~Fez zntyF(6_4MkSb)@qt@!V!2ee@AD2Pf~1}Y$)*}#~~p8e{>bih``Y3nM?h<05hXiOI1 zOUkFGvn2Jc436K}JU6S;ad38ENWS2zz!;)Xa#uySCM7_FDr#+#s$pbaf(s(Rt|ov& zk*?aI5?W#r#_gzQ$28SiTTkzY7d{?>m?c$aLaL>ltNBc5KP{OHXqD|SsZNUc-u-$r zOr_vmF@gI+8(wZoMh~sI=ag$=j}*Ny58}}ap4r1Rw_7KUvpl1r5csw?D>%ftlKae? zBX^7Y_G2zO>5t%={PcQH3|-`;F^EqpuU_@sAMO{`Hqp)7n+GR_M2K9bVI%REXPqS_kvENGdqKQ2WCQ6Gakh z9=f1$TDRVgQyH*=Q#A=*e(uG6sr?0h?a6LM)=X^bw< zA)SpsFTBIy^eqEnz>jox9w3df2T{s`q`8i2a zqHkx+l)P6VYS$$|F47Atv8#2J0Oi2gRhfNP32g1XONoLls3?>p%W^AjV+KEK2x41yr)TsX*& zAhzQ7+k>+&&C+0LLEMU?f)&OuXaTorojyr>g=$c1r4JA2X!C$xZUUop3R`FkY=y0c zauq~fx-xGbeI`R|Ief?*m+BP|1TjH!sy(BWMJmWBLS+r~%-5b)@myH*Zr1j$Fn-n3 z5AnFUHPP<*KmlEm6qq7gt?d@jrKK|f`>Io)NmtudN;5TN+N$Kv$0|z3rwqXhniQpz zv_;q4D~3C4K+$f_K6gBi>grXp`YCdl?{?~%EBzB2I}y|0Oj<9J(mCUoi-?2M(Zw*g zNk^C0U9p79c^W`|?0G zM1gn`zbl|}#s(agMkxzyz;6`L-Fv!OLUEq2IFqEQ%=1I-|GlM za`nKQ-C%Z1&N*0CBjtVVS??F~>!gu?2JG{N*+95x24-8ZFgg?zZ&(QED+;)>#UYxZ z|E+<7Y-HO@6j(_T2CvwF@mdGiAHpZb^tJh2kv%wvu5tH9Z-BUj1VW=c1q-hop95q7 zRP`h62L1viR{}r7CfDid!uFOfX1U*+aM+6_Dd0EO5@+*K1Qs-l3qHSjZOk9KIN?G! zh$|w|KuP8Rlzv_9|GD>hODd0%7ROZkY{I3?MlrK-RWS_LL-LjPbqn~EIdIP%v4FtW za^ZOb`CX=$rB9L=M2T7K*ZS@*aRYz0Kk=Z5i);jDsz*aSTD~-XwWFB;?G)W@hq;`$ zs?vIqundhKfK3W3{6KBIw@^IbQ~sovBy;v_f(Ld+o}MNs}rWqiY@n zQC$v~^FJ3snmvRQ#0)8v^{|U%z)F5jQ(>OX#uuf{U8h5_sxc9YlOZ_2S@;y1a|XYF z)g?>P0Hkn!OOT87!g65+@^sft^#|F4q=2&=c98(zQtGZ?9;~&qUPPfNwRDY4r5g0< z590UIJaqfdV=C--l}s=JSd&E%l`>DqM!b@~<#uKp(B1AexY~3?M@A7>zMC(VzR&Fi z#{&eZf%Q@3Smg3=K^JhgFK)i2ya0!KW|gAUYJ{%Xv8JboxvfL{!&wj&(zZr0?(vLV z=e9S;^xt#0jA&f%jodnwd#`emWw4kNVHIs}UWsbQeDkeBTzw-Lm68 z)wQEq1$LTdZkzTLSMR%lFE__ze;ar5L{BKwBu%bt6QDt4bw2@R0&K9K+M$LOL*>e5K{FJ#8GM zhn0D7&tM(|(>+tCfA~rTR%$s6uNuQvD4yK0m<4R6jOL5qxuN}x(}p3F4^CE_$z5JepE)pGc~OC6o2sEyh6{V(0G#66MS@TWEl;+N8^9K88-hBrT8`l+~k>w z_0)4`iYSzgs?^eTD%LSeBG#ra52BO>lsyQdQXWU?{WcF%&Rr`YS|k5qA7xtEHsuxM; zB;Vt-1Ii}b>BVGT5r%;L07ssNFKYC835Z06ay$eN_Er)+KsBLUxDHtnTW_Dvk| zAdBNsp1k%ETxseQWBw&&Qv2RZ%=~Zun!o_sT-Els2%=IJYGjNeROSoD9Pgx2QIu9h zp=?y8maammP;R*-PpXGC3kUX*d`fA5v&=HIFDmLu$l^f|m9kJHA4S!mE)PLe7lW=I zJia^#Vzz0mJnuk8A=QOnMI9LheDuKC-`;YvY3(Z7scyU4fvW8#RLn>k9L~A@$gu`U zP^`SgJP4w?U{`zS3RipSm-vesZt`BcN{4H(hC-Z>667KcM89kM6GhB>AoJWN17&0# zO&QJDHHXt)6mR-=$KjZVMf?{Esc>a}v>y)J&Wj+gbd6bSOCbH?M^E=4ri)WsyR8;D-{XYi;TkQIB6S8Boc%Zw)@4tnBaoWKZLRrM@1(;;^-I z&KH@CtT0*D0WIjzb>OJO;gEW^$Pyq<_z5ZG6O)pCv0fY(F(NafjI5W5vE$t{!Ele;0S=`7zXNhd&iOr!$-OTWn>-A z*g?&ESiuAYFLHN7MeA5(mXY;lmciM`G8il}x@04Z-rXWMZ=F@w(MQiR;5cRlkt_+to;OOiQ2)KL&=3Z+A(m;`7L>OA~WMqrU` z8IW~-LV-_7=Afx|t>VNtmqunsIE)0_bj(c0?QED8=|@R|ad=AJl8&hJQP$?O2SMB* zO5w|-q6-swucXk)kB-p-3RCRt|7N1!Y_0w7BzlYeEljk&js%XtfM{{(VjdvkM}Z<; zwL>Ksim<5-C?m7rJYo;Pan@kaLA6uxB_F7Dl>je#OKGZ$hq)a<@DUkLFe+t%R*K(r z1e?n_KU7FZMefFN3K@eC4oLO8pyT@!eg7H;jef2Z(g{e#jSfL z>asN(&Eigv2JNJv-Pg%m?^nf+tsj8y&Y z`1|=E4_Y^iZDcZyj8+Lzy)m0aOd5|+c zrL>r|#q42veMIf>d!I-sCE6%s;&`~uGEavQahOlDo(GRojP5zDQS$N|W21?p{uq>0 zCh&bD7@lk0U3A*sZ&R`E{BB!uw}|352kv-Sb8dX5@&0A6PT|eTkt+<}T9j_T_cDj& zy+m~AM~qfynKtVgNjZSstb!-A2Ns$cZ%D!L*~rmUI&b_at#>Cs?5#4^%Q0i!B*~Hg zFXnMrZdy#>uEgat&MLudiIo;#9uHGq*7+Dnh>BNnly)zR%4OdVZ;q(D!#-jB%M(&= zuF~O38W0!KVCs}VLr47sVqulT4jX0o*1=E90kTn_kqZs)W5P*U?<;d!FDL}|^W}R3 z5N`gmYMu@Y7}7G6+Wf!rg%3E;C0v1|_1lJjzlMY)tst9pal#Ivb#@hSByF;;Eag3= zZ8T957uUm96SzZkAt{w3@+JOQp^3tBtGv6Y%WD@j7+2VK+meVgDIo7F1ui4Y&FIaQ z(Q!IxYcSKFgOjC#sFbB^&zQ?o(&m6)X9DY#=|CY5HOa>eGDI47bLiSNGT!!Xal_a5 zzt0vrXA=dWoBVM15a&mW&wp$3iR^8@w&Y6?l`>CNI!alCebWTXa&_qSKcUdKGl zvPfHRSGt6^G29_yO*yqd`Mw%i3A~-cPO8gmDrRc%g!(!P33D${M%K}kF!6Hjkg0Y#nWM|iTR}*x&?~ie zowkc)KpnUYT*3Sx?9IsC-3y~b>nZ`-Dam6rg^2AbP)07JsWczC<{oGH=ZN=V@wtq) z8jOl%99%7GGChJ`RPnUMXopT~lti5iB#0d(StMUnPkg^yrLvq@76A*4(kW~;`T%NL zyGnot6%c>>$tEE7>LFPP(6y`ixNL6x$!CxhPbVDQG-jWwMJ1EXn+~dx`FPEbWXenZ zb1HOQ`G_w0_kYf1N@wUxOx~xpp1MhaF;x4O_0)5qh?0~0Y977P?_ZeyTA}Vysw`HN z6YiPHy46qyLSdwkVHApXm2}aSt&=XDzx}!&u0TEy_NPrM*hDEySJ9wC;tuH~oADw4 z@9*!w{`J?tMbjDVuYd35_1EXG58hjZ;H5q{X_Zr#{Z&s{MG==Ke#%bey49M;_Ru%~~rMmN^PfGbAqm_sB5h;}RiNZ}1-A}$_|ri`Z2BqjJ9C%^EbG+mxdigt$! z=VVF4s4A81QFUk2JfH;ouN~dDtbu#6&ap_2&4cHCZXF6nspiQzv9*cJ({9gG&q+d5 zmsQ$`Ihv;yd8Nsz8DCw^VzW>|BZvTL1^MUtN(9a&(y zD7Cs`r{wp)UD~>@X>~SnIkZ`y*C_oUzhd&SkRtQ`*7e;}g zN_JPJWLNaiJWMm%h^1-gT*-_!o0N+bsOvPd{CKpcAe?7uW6LQqew^D`l)__qcdO`L zD~s}^E8##l7^lcd4J64d3dD9Fq!$+1+-#Gsl7UGNPTc#@mj#VU_M`1Y0|a!A)(sUb zu@K|J@5rp?HK13fo|C%JevRK;>>11xu)lMAGg7+cW7lrKCFL}tXgA*DEOSXxtRX`G zGF5dahzdatjc#BgRMR$M)jCJA`u#e0Wnwd2G|OHdovXZxw9jt;k*JX|$-dscpB^Ut z$JF30Iq5v*ylZV9t7!4n*hdac?F0OtIZ$q-11`Zi^$t%k(2m-HGB65o=3oQLz^EhJ zu1PM+xpDst1{hZ?1|t_TEvpH@KIVW|%?H%Z{uWl`?Mf5()wOs>sJhD2T=B6T9T=-t zYld99DuHwGrT#K>par98ZZI!Q-&}Q9Ci}1imyH1&@HXX50`#IKuv$k4o!FChIR(TI z2ou|M6EUwMy9@<%EVIaiSd?V$RIBS*qkGYd9Ba2>aK(sJ9vXt(UeWKQ} z23_?x@!3r0GhJ^ch4+0j-PMycM2RwY+=IAP1q%4Q zUNn#nxQr}e>>?RZgJX<*(ui2xk(EdX7db=&?IIaagLydf zNi<8jjJ!&foIPVgQCFXd&?{4~J=3|PPUi~izhlz))lNABa>8nzmYuPlf^MPKbd^lO zQzbNA_eZ3vNm3aNi$dn9SjTn^g6NkZl(r>Be8-)6}ax0@6S+8zXB6`)aSrM3qu626j( zj8VL4y2@F-y)h>PnO6isq$!>DS^Psy?M1Ull-*EVU3P?eMt`&o@@yxXU>~u%=~KtVLOxHLnL<0^}kkT2~1`(ZA35l`>j+897U; z#>xFNssA@y#w-uje`fBT`h_T*bPd^$BzpW3;9(wQ+H-4X`CwADyW=3vm1>`-Gn`$Q zQ`W!yTg8n;!6kGdm;|8A@6-n&nbSPk*`MrBs5Za_=94tF@b5G1?Qcm%UbdIU8N=P* zkJgX3w@L2fYl|f6wwaFp%t4+PAfsFZA!}V_Y0AaKcDx)qMddl#<}Og zk61Y+=FSA7KMWZ3+S^=jI|)l`fary#Ret$v-M#;KEP+%Y?SabCNgHEe*)0&aVQAN* zR$`HALgqzg8Y$?J3Bqdw7o#jKyjsu{Oo$3d8Ac>tr0Hd8%95SCZl)AR=R# zLNNva&uN=>@1!jsicqob>Jn;Q1<spUZ6rzszFb|_h7ot z!n1gKG~Rl*b~#=&4J&h)eZ5L>n09wjxSSWd|Mb>vJaiep+GIll&lQKuxA8|CKjDsN z3FZ&@Xid81uXC83{%=D5%tWR5VGsXf%Hm<`@ED1oULwI4kHg1reE9oVV$KczW`g+! z^WEM$fP(h!X{li`;5F9y}RXymC_UbD_LzUKdv78k6fT=7r>Nw{~JbPdP$97b6I;Se|u<=hTPC2c$>;``69$uqb?z9ERstqa6md zO1o!jKfTm3BRV*Y?3lp5nEGONk6lhK}tVZscN*d-w83LdT5BeMsD5$INkG7B*=( zo-K_DK9xBRCeD2Be#l@Z4_4R9-~eO!BO!lg?!AzDvxB>@7d-t5HxB&1mAr62H>~3A zr$}&%zuOv~XE<~jYkj!1nOru>V<>HJI}H}+07ID#g?{9IclyIF;oF)h;Yu5caPiYW zBsR&zIu>i;SV_{|)NpLWX|(pkV;@8R<_>f8$8CY&d+aj$oPYXTKP`SnBhlpU?T3}S zzxQzeUs-3E+&BnB;j_A9*H=xZNG_ z|BeO2qCv8*y8}_~qXQ#&(KAmAVerfDcuQRroNZ#4MaaiBO~ikO(-BCc0Yg4s{v5dz zlPtG?@Xmf*76e-n-zV(ej5t?nY=Wi%m4eVMBO$fiKVz*H+7ZY)9~!XGj#dmtvlgj% zZgXckr?WYHNYyONwE69f`)iy@2i-e!aGjtkO>oaF6;s^@_U)WTLvi?yM}eA3%4*oL z5OyWJ)uj+IxE@$2);JI~V57OE5Kw@lR296`oc4fXoQ?xU-KQEahJ_IQ5XOmj-oV~I zr1l||BT+9x%B!r9c+K}h?oopZskv-3e3dBO-`5YJN2Dd=g{iax;%ztYxIg7YYCZ&g zRVaIaeNuNoZo;Dz;-(O~IH>DO5+TV0aGgk@?jvKxfGUpN18p;v)7DQu0fr$;j9d|` z?4U5L!sY-R+XGZnQomU%*U5iw`ZroLHRVJqG=;XoHZ7FMpvK&x{6}uLaEFdoW%6e7jiJVw5#(3K?@7;2Hd@Gq9{myaogMpb%l8TKk$Z(%C1c{$|i z2cg{ymVi>$&7dP4ZRb3E&Qk{q&6BoFt9vIlLZzi16%{{hn!JnsI;JN@x!Yt%>Uh%B zZFE3Eek7?ut~w_56qtjpk%n3A0C^kr*uZ`=(y?`@ww2S!<{&PT2F8k1<*c=kP|o&D zStDg_joD}tV0S`=?PlJkE)buIOMTnD9uN46RNj?Pt5dZ)HXJvA2VQw#P zb#!obbS`vwbhO&rmg+VP2H^Xy)rWKv#a3}-D$6r1Pv0HMG9IRVm}rd+Rc^0p8i zHUjxm zb(U>2<*+y+u()e=wY3W-am4{~B^pG5pE6wrTcj~wYS(73%nbg@C`9Q3931b9n)op< z3p|S#0s;B}u3_8q6}xT?uG_@?+})k&LQ57 z>pGgPZ{25@lXs9DWA#D{u)J!nfoK?*hxKxDcL?Mx?vnCgtxg`V zR|0haW_e~2aI)*ukLi1|z;K;YC(r`omfH*BoQ5ut$1stLW&a%4`~FLGBWom;45o#qvfZOLKaI}a!35HQVgw!wJ=%aRTCkLqD+U# z7QT@8KrNw$Yf?qVT1{0DqB1p&4KmD0$@~z%+0}IkERe<6R!vB(nS*87HqDmuF=>?@ zIn;ViIiam@Qb1G?EfO6Q<(zODq02GrV<4=DEH>PvUm9EBA3|W!t|d(hX*(pmON^Sh zZK7y4vnY#I5bs9KK%yW*&8F?|&E_c_QrM0-g=oN>$go)8)U$e?;Aw~6Py8C9MJ{Bp zcc7R0`mDBfLHhz3=kz}{wF_Z+q3Vlsh7s-*1@1ZoiX|<_l$)n0a87Rl4vLy3H+hQ>1b$&! z-leYMR9%6pm=JOo2Z~+jYFSf4a%|fdkQX{b!~k7Nlc~I z6FAILoC)s&7H=+pBP`S#Krywo=XQ1R?G4(TJjKAvo&uN;$w4durw$uvv`1rKQ)f2@ ze#**zYUyle3OsxS%&9`A2$(W>IpS$ zCp20<5coE_+h?HB#ew=!a(>r+j+b$RM0fd%dg?Hq(fn=QtO6}NF82bwLS8y^ph0Nz zv})Y~ky`-oX27*K_wRgt;D*-~@}bdVx$KXiC28HP9=n>#s`|YJIRLa|s{xnCwnnJe zLcK}AJY43qHR)YOnC7I-)yCMWUfM2w-+eXP5klMJH@FCX?8;hz*W4mx>fI+`-@T3$ z4uVC=VEg|FG{d4Qmmtpo3OoTm4qOw^FjN)TPRu7Ne?q@e|7!EzTFFQR!b zKsw{2n|7!>HQo^TE;*6$5#0B@+5T?|M|m;lw13hmG{D+0-5@LmZ7Xeqqz%_m_M zyx2B>UZn?6KViRaz87hK1TOTLn=YZHQB>SZ0%k?FigWr;ArG}tJZH_N?k-GIXj`Yw zBW(xl1^36c7hVHvW~4o9`B5+7hI{N^*vkSNko5K%A|bGKyu8d-gW$)B9AuA&0<<95 zG+BGJ3N#_`#GwJh7(4f=Tvwp$ngiWz%uY|F1^Vs^9rI(^*O3SW93F;ypafAi$azPr z(gQCm1D?hzq@6do3IdB77a+0Cb6~4mj|-LSs+O|Hqy?B>X4B2)axK@o3qDXZ|Jduw zu>>Fe)_TM=!QBA;r z#wA$XHvltO1wB=ju`rsDJQFb6jl)L{Y0VZ4*3r^)y$?yUBklwIqeR#M>0RGy?VR*4 z&A5OsTaco&@tlMarm+-|ZjeVuaY$BR5^uS_V1$gcc*CWRB`MJ21k8hc>%90uIlEMw z5qaOnCK+%@ZsJCmo=IU&PJ{(mILyhnDeThO=eE7;3cWI*3}&gpH)xaq?~ObhsSn@_ zBz|bA(dz9d#38J8m{iu@{8`t+h6oYpGdy?W?D)SJTmC0cqgUdY%`yQ`wG%b=S)pRn zPwqQP=gb|JG*%_#s3;Scv$RNvFSBiHsP#;JI|lB6*b}n>YdxX#m=lnwZ-5=GM-CJ_ zw~)Iiq^=5fkhXha|Mr%zKoq3$?y6-9c~LBZNKveg1tn%c+g!8+{@a+~5{N|oQw5mx zj{C;fl5woK9MQX)0T*}w8((k5vu$s6DzHy>fos`p@o$ad3QQ3y_ESf)ADyi%njDCb zqFPH8?Aw0?0Y0j2)anmx`y*tlaIr*nOChmCv<4m3$$;ZS!^p@AqMB9SSDET$YNI(_VQd;!LFbzA(Y zfgtB}<;6wIF>BS#IA6X4QI$h5QZzI>R*RM}C;2`aaNiE-a!6}9w2s+_p9}DqEsT+T z%I(#Lwwd#@+?5`P)Ehaa%^%Iju=|q{u-++Ou?Y+{igj$tRv{c)fAwPoDQ2W-O-YXl z7|9dlD_N2rBNwp$9_TohA<=25&S^u4Hp&x1*AIUoy|aCnK=iDq#cN1xne*$U_+O8VqhCUUxE~0W`=Z5IiW?(GAB8K7vQ@Z#d_tkq8%d+@sKUCWzL?mBWelL zt5{btBr?F%Bec^12>1xr+VwIDe*t=y{0sQ0?@M5Z)o4L~w%o&xrm?ME5WfJB{FJ{G3b^qS zx~L~N>FTLp8=bX&O{n$fL_wd)3~BpMRkm-)f8c1ohFYI#e~|R%hwGfYYunXmJ;MUx zj4y=MiE|Pd4Q$S~I>z-~Lmb*R$lmBLZyuUXu#?Vsij`Zc(&kI= zF^b8)ei}dgENk;cPOw@9!>$yjL#$$%znK*OE`gEg-NFjlDTW?xJprbkm>rv^&s^Oy z8iec~_v@quVd|O1K=EakWWhb;RpJ(UEFZuEB}e`?=ca-vXv{ilJOr1%=5Lm2G>M87aC&(P;6+cph41Aob5LhdDtOr>7X= zAt=fTwZ6`_>c3jvhyr2{Ii*D+OO!(*#6y<(A`Z=F``NUFTF)sj7eHPt`Etl6|0pO} zO~3>GwYd*$U#1pF+Z5ROz0A0ua(ADE+vX{Xhh=52g%{fM8s>|qC^+P70IZ6(UH9Z5 zJ@hR$UbF=d5JNo1%TY|yansZrr~^7-)odOU1d`9f()&Xs_SD5yONbWfIr==rnGJH& zv}uX6JwxvR-q6rjo9qW|4Qcd#p7a4g`j&EtuOv={TEAm?*_2veu)QJyE=owppub5C z{lJd^hujWX=rOK=IuNo9oluwz9Ol#oU&>yGk)pHB>6LP+Z<^{8f-3sViY#Z)@~^<$ zA!2~}(vdu+1LGMve*rO#(?!aE2RVy@;!g_ws5ahqNDvLc?3u!J9LjJ_g?tVziOaQY zg|7+g_B_(+)0n&&L8}+Q4XBWH9%Vz*HApgMl$)ZkXmVJ4M$hqa2*Y2z-Hmp$HVg*f zYc(Kj4P$4Pyl%PrEtX_cAZ_<^cFtx!uR}?~PcVF>T~`H8SFnmfg)n`Ob!8O`YLX)9 zBbToLU+^^?E3O{+ssGOHw4oWvR?q7M!zu|POHB*JWQ+!G0Hn_~Et4xZv z_oenT=%)*@RlqqY{J8>)k}q{?L*d385Emnaqg0PDo zfKgQJS@pnsr5y#Y34(#2A~};!8Xhhw<*1=%h*2nes}Uz*+Z;twWUCM{_xbDkmwQi- zMejl~&f%s%Rz46?aJ5g@k+hOq`NdEiy=q=?4EPImSP75@nAK#1Iv^;o*v7 zg`AfPPvcx68Kf-0Q|?p z36WuAL{MYS9&Y_63g?b1qn z1Rb~XY96rhr;3Y|?N#XO1`6lWgj$HPABOH#0(M{G%2AK@;F-wSC`6 zmX+M$&Tf0P5b;=cX=A2$NSOuC>hBQ%i5nypA02Ubo;S6YSXXYu{J?uem)azIYh*22 z;G2@^5nO4k$;(me14{d`+Sy*MU7oAc663!DQ3v0sqbA>mO4&;nYJsRo%L&o#J2%P=HcR)RlMfaaM|2UGYAA2u zrFGN03TcJ7XiEMaz{b`ZCs#YqHM+pVB($4mz7Kg0YT4V=MX|at7-MJhokV=&vApbV z7js&a@_vOdT{UJPJAg9z;ktH1jNRv&ryCVE8n)=lt@FNL8Qo$6&vztKCg5SA-kxEG zvUS(QP%NeKjE}K=?Y;&}vCfR0WHthcfF^KK%hmm0FB)VZ`23t3F6NIHX zxX5sbHgC((`9sJ=BYg_?#w?CkCFgH!34-YXrEm|$#P$z_7Sl5PI6eaLM*+dB*`=;J z))xcD?&7>sE(5CN?OmPAdgarF$Yuy-80U~+#KW4wKO<&_dIDWb6}%YeuK^JQUP}sMfZ4gmLY-dm;?RO zbSSz5Smm{n*18J7Yn6@T#7v*+E^|JCMNqb%fZYC{m`{?Au*T%Veg(+U;veS@c$B*K zM5_yLLN4AVi4gXmLnBK?8&BlNDjTJ_>EVd3;FILDTU~WPZTo#`7Y38M?gE%Y>f$>= z2`*apf3xCbAUX@@z(a8Fzbm45$T700u3AHRgVvDqT7y3k_6#f=~WU?QtbD)!C{9+P-?(;H+F?s<)5LCyz zYI4;S9d+WonagWE^Z*BA^5$9=<-D;9h*YZ^tf46Vxx!?k%}tmz$xzA2Mwq&gjk&1W za6=d~sbmZwtcjHg!mfOb7h2r98gqc^X8gV za?wGF)LGc5d+ecsI0pq_I`k)3`lehq+YZ}G_|3XP;OlM+oA1+l0GnP z5XW2UZ;+;1yog(=Qj2@F)Ec>dpky#foq!06vNEtyfpO`8b6<3%0Gx(cXbX+nRR$IO zeIefozPAbIV61a6v7n}f{)#mb!>~xN zf(}BlD>#|o88S8jk4?w0l^jL{u zgfZQ(6^_%j(|$OlZ5UUxor_x{>SQ)%9+SvsYF@88zC3b%FfCV)tGFZLyd4uPBSfdK zc66-A;791YjUAVsJYt@P3&Q6#LOr~1{hi1?Lg*T^9`1iGV5Fq9KOJD94C|G@YhV|7 zm>J$Bn74N!#u0LvhKX)nH7boR#j)$o56U%S!-gelnr2%o0Q{=E>U3y3aC{v8eYQQ7Oh@uTFxL+)U|^}Fd4LXt89>pKy*?&WDM~wn|5~x{z612*lCJf?|zGMvXDT# z2da*WA1khFQ*m_{z`Q9ItvH7vHWG=X&je;z1(~@6ly%-ZShb#NunMfAftoyd@Q{dY z<&tx(@Na5(Q~CL0$T7``^VSKAF*@IgK=iKze@gZ>soq(=aqr91PQ1*>eCJBkIeI@J zZDI&t*JBH5xnReH#Fid8Vhm5m7pIf|^|M?3Zo0IXa#J<_8n17HE`kB&&0l0pZrnw~C1 z^}_{2N<)07G``63x+ z9>_P{FmLzdH#X*7WJ`curFUd8U{pkfv>3grxQHfJ08T1Qn~8boHBDL;JoJ3nGstN5 zK;Ubr)91p+*sfIx($WFtz?wWg5p1%u8u(j)KUJhFfIG>UmVXBH5lTAu+e^kdD9XyB zItM!GwFh?asS84BkdgR3fiL|C;R-%0`_Hw?6)z2wt0s(#a)FSHecU5oN;B32V^sQc zg{do;v<4ShxkcxV32-&%Idl>$We}|-GG^-CyX$OYMxlH~UO0MXNNBEX#5r_lHp;S4 zu3e#vSg9kb5fJ+G=$L1u0?3vibn(-ODH$K`U?@c`pTQQ`tt zj|KmFZ2Idz=l0eT#0i0+EczGHCO1JmmOrG8Ieo%B2bWxI3}3f@(sm|jjv6r-J!=7? zP$+~`rJ7EBqnslbOVGk@wX#S!>R7RQrOgW&)O83P3@HT4AS&Q7AEL&U9eX4Bf6OVRH5< zly=a^qfXOKRn)= z%qme&Gqh?5wW#4Oa$sy+>#afdsTS`;N;j2^k+%r4V?)$h z8&Up52Rdaw1yJupjuIt@P#-Kd4UnH7m_)HlF=^2b&d{^# zfqcy&glq=MWKQ!Ga4uTP_exSmjuXKWMw8*T($|Gw+wOB&h5@1tRx#2HM~~{9k(YceOfchQcaM z3T*0Q>=P2L(z)?f1lYOe zTgi~pT75w}OyF15+g#OGi(l_)r@-faZUAo$&Rx#4)C0z*A zq5G#~mHN|!w^qXRv7YHSvAQq)Zg^7TK7shPC@DJm1355 zcP3=s)Xer^>R~j}lP%9Io_QJocqU(@QZ${qRe((^t&Y&Gf|0*8Q~~6ZJP^`*lfwtJEKSH}M*wwi zjF05tLl}m$;52QIVM(cQK0`!TO24EYs--L9e}I+Ir+EPKBxFbh(MPWwH< z%dcWN?CD)U)BAgdH*4n1RB{UY=e2o|REi*opB*g>r#f{Z*Rg*_Nmd2JrgK9Y`XyLlZJzeVC3U;-f%^BO^h6gk7T+ z^&X#c7a1#u=}7FHKziE|FZpal@5xU-3POQoI!#V({1PT4u@SPi=4n#00pn|{{B-iq z$ii8U75dcRdq3H>bJA}7(%7}sM1QTCF#S{VA~{f0@)3HB+o9mw5p`!1q;y}`#>pRu z(Z6!bzQYnjcPM}$+kp{&;^C?;yb4A>H9G_FODSP8;}<+)dD60D>rE|JFqN|JmDmnf zfy^)5wD;bH@YYg@t0Js!^si4|aiDH1Af@y8UzpO>tD&&Tkx?^D1(NDMfx3O!Lp_P? z-!zrK?_YfgsdJ-f2Ki|=4@nITQ8_{>kj!)N#g)xWt@hTN0+AYpVgij%oI|6stWW0E zfyUMCy!&e{H%6=?=%?)Gi}#ntP=fTmyeV(~EB>ZxKGlE#|sDfl4f93GMJxBEPZMY4XOn3Y!g|l1(t0q_hgqfW(kx z$>p$i`6}##`NmGNPoO^B^)Z~-4(v9%86cj;fW>5*nvnmoeA8gVpQRkj*M}CVAqkJ&t#J`>sg@h z|A}C;3ZGl0@Wq@}iO`&-@7at^=Ds(H_pHsCgvFI#O8kzH0XM(ei8Q_t)@+A;1qsmY z7Z-Bj!>Gi$9w#=Y&<u?o}d~D`X4nVuQ?!k4t zG#N168Q<#3SQC=79k%|DIgOBas^%C%W#GF)zt_0Kuu~aDZq;#;z9--hb;z&C|4x+2 zYU(y2Eb6&Ymg0oWpDDz5kk7YwBk(soV*SYcr*$r&9c~INpAy)uuR}K12l0Yesgr7M zP8{XmAllPJO(@EgjN1s)1CnWOT*fo`wHVn6Zpt|-2KtWtO46uOsdGZ!J8!C%du1v7 zFD1?8)(aqgUdTOjnvh+cd=cYhjRasV8kMyX%0)+h-hjXNi$y1^)OaR~APi@|9N?E9 zvpP9hC68y89C&rTD8-~x&2f)#@q&ycT|iu{=U4Cr_ardPtpUlpKJS3K~B^gh%kJI>;3hl$y|l6fbHG zDhy~Xgv=MC!nsaBFY5BMU;#VY;aEc=vv+_@diCU**Un~qHbwm;`;Z&82#d27xsqDK zb~sxJ6Pp2cYF~i*lp#!z6N$Ei0kStn$jLO#eGluHQ!Qqt9po48wAGk8DNwVy1yJ|1 zCcl_@;X+1(wcFu6hv2gvYlKAV%Zp~l*z;Mb1M1$JtXMDEBn7rrDr4kPw5%I4w&N{; zx{De3meAaSl#`ZTZz0(BoWVIN8{Oasp zPl4!C)TS{&{*9z=qSNqi?6u&I6cTyO}+Sb z^kNy@4qBlg^A4$#l(2-XSD@Bv`M409BLx@Gflr{O=D7IOgxn!y)gl zZHMB8T;<3MqhCux$_{=AQL;`7nSSOia|faRrY0#tl0}mj6p4`emhxvnv6lgbE2+uR z31=Nbe-=QM0!SjV-{@BO6tbbdQw|DUTea_Jf{fyfzt%;5A7|#Jl|vJVMcUzr6rvgb z97jRl3#fYs-B_%M&|~r;Q>bS1qrX_5`C_FVsAelFMK$6BIXrqus`~`$fmgR*HoQQ% zulD|B?~<~WI-8K+>zQzw1-}t6)r9;5!KS0n;df>7a!#G;7&1ck0SVjTs(EHJJLE^J zV&Eek4X|s3;>Q5{$Iev~AelZw$fjRV#D2Wbc>%P;5kTF^P!o!hKLETIy^W6+cA}mY zV}|LWt{+XDy?RvDi3D^4Q1_9s@(IZ;VH9J&1!S^op~~m9u!{z}@Cp)11NvLYHlZpz z$8VfN@o`vSLnz(?sB>czE=UbE#yO&R%0{47_>|sl1K@YvK?T&TFqjt*)(GZ6v+)y_SVB zo~#r|Dr{&lb;piezsX$hd1S>n=f*Szewyk&ibIhA$r|!+$GlQB`+^~hGEis2LS4{e zH|r8r%vlChEo)e!k!Xj_fu_(|1B;5M?l5)p>)D=%X+kpdnnGdMVNOr?k>;GeNTD|7 z{$158KcQutV+K6dcFgR)IfTS+)FoA0yLxR@lOsSr>3FT=66;%G5AKa32M~Arx|Xt) zyggo@kl36<^WK085`A8utx_xvB#2UunvnKY!uYL}5lM}A=p-UALY77k%qY@BGRlAm z39y(&C=Ao&1B63@>`e1O<}4)nEk5|QiR&*vmP~1%wgl4})Lj#jvmM+3$#oU3d2+Wm z-EAHP8aF?m#VdZgr_gOm_rA^Nkwd`_h`o`+otCgJw*F$8*h_gc5GMncRn8VASyN8o zHUB(IJ3u>%KNC7>k$JKmP&G?HsLmo1uL*gm?21ILaz4EluP2=V3m;qLBA@r_{!!-D z?qRq_)gG)j%)QEfBA&Ad)#BtFqWG*i=D=z>)Jd%!A?mc!|GC604(Pk^M(J^~xS zh4w5G?QjI7V~z1FUyw)9E%wPv@*yENsZOisncaKf)otg~@1@9GpUcnR`?cG!{4^m0 zFVZd1|M|y)2@=Xs3YgMS<~%QaR2d;lAcrE7Br`53Jj+nVC{xrD43ko(>6V}RcK~4# zux1X)FF@{h@YAGP{BMeGR$@Dqrg&@)7nMB%A@oN=A5%ih~Mz*OYG>jp+ z78W7NtXZ2^#OcuC0U0vt#7|os>^c}BiAKpOWFZ9wlmj1%TytCnA<8wY4nyWqGC>wj zyUbfYmXP&s3@#l^^1g8%0Z2}kzP7new*{^eXjNKuMC#h%zDld0H$Qj1veji)^D2+w zMr#q92}hS=^ZmWdk1QJ?wvgwAjFQVgvlK83YPVo6OUinhmmf%)P#8BWi$>&-7fBKc zqHvbp1RVwvlaoHxDq&dd*D5M^-oRyfwXA$5WS%EGdSK~Mn}KJs4n^$m{;lXQHKI04 z;6SWerzvoqq+ldv4jIEv%i@ok0$0`Fm&}hj2Nx`ARaho$g*I!}wN%?dKrJSbN0N8t z3}F&Uw({Q->W%1mDISo&}Vl~+0E7zm5JO4`XtW}3y&LrNFrTjWrC)0!un(Fn;&=f+d^ z(`9{joloA?tkd>2FNhL)({xqq6evYaR*UKvNN)g~gj(bXa;GXUbf=zI@)d$c$ZHEJ znvP*|o2R|9d3j_X8#T$WJR-Z-A)79b-uJv#&pEmyx!P%mR;~1<@Ji3OvD#*of&$?M zZM97yeUCEMBGyW70i-81SW$;;_63PWQ88&kJ~LrEoJJ{fDy~=TqRbdYX1c+n2kOjp z_k$fH<{0)(V2HsYw+g#1%dSoNB~N(JqbQJ5tH86pgBdiJAMwRiS& zisrgE(TXB$G!giXxaQCfH;NQDJ2wGI*k97GtY}4o=$ZkyzAUpBY|k4V$^_BLCWF!! zLta@Cgl-kc32jn&%*|L-9{arkZ~m=rCOZ`{>7sBYV_}in7$6Tw{#w;ZK`eaMb)H2c zlzX-VLMbc`2-KO;k*N`4RPgh_Ux0*DNW!vDpOyo4Dlj;C5e|}A6hCe-OX_p15|D?` z^G~bQ)V&nG<)kUQzw`z8f!!W6Dde5nGzN;UurF}cF-&F&p*NLJ7jwOz;977FHfdh) zrH}rsnn59-=c@LK=+zh1xRQw64Sq8q+uXZl&anIh>XH(&NE4V3g#1frM;X?_)Ck80 znAO@rsR?Oc@d1_MB3&IBXHtFQ!X8EzBB2v9yUOV9by_q^07V!AX^}%G6Az@xSD-{Y z2MPb32Imih4+d%rF7*uF(B{y>uXV zvO$ag-4>Z;+gDX&D8*ipED}PDxxAT}0E@xI3n#h0m5}fsf=PaKI%0g1rzz zo{)lVT|CqJxYbrlmDNd|IBPZ`?@Lh14vPQM$_L_0cVEDeAtS8~J$T}|)vyi(nc*`? z!qg~f8CN!0Tz*0`Ct(NEf#XcL3XI`_3_50lmaz@yBVPr_Vf8nX5IQa9=$tbGF+x5J zm;&)t^j4RXEN?q#^1nocq8I$JdH`h6QL_oP9aP_^%=2Uku(^&|DT@5X+r6kKZ^K{! zzE&quY%Pw$Y>9HDfl=lQGel>(HOzYszK?B<%k>GvF5F9C5VYXNNSTpN(m z?JJUI4iI7`yUJ1OFF=RXWwXLwh;II>RX=_CcjJv-6wgCAF?|>2ogJSUTmk zW*#B2IRfSv4fer2yJ6q>;od~%1izvAH%JqN)Y>Jy@+irWt$b|)N` z+UjsPK zEGGCPIvT`}CCggAHig~3!3Ie8WHCduBtvFb25pe0cBxN%MBLM*-yqe^f5_pF!a8HEf+xNA%W4JV=RbG_-kXnH})V;-RkV0wK!ZXyV0UW13DoMyLsWKvq_WGr2l`5+J5tT0Il4Z)R?zn> zI5cCS@p+w~XIHY$XBQPz!$Vh4ALNPMkzgta1R^)-Nok0fhTO4gh-NFvvz%*Oy-Nm0l9lhEvJ$!*w0ELuI# zV~NPp1g${B_h3zG6RMNjDC7k(;bC*JIVBnIKwr(Un^#SLl3VpIq5o z=+42pWIiVu(!%d)$!?=Twpfbmga$?YY4AEU&WAFM261R^0x6Cg85v_;)V z=C#rQ^RH!9;;=^kQVH~PT;S_j!%<+h28rvepqMmc(Ae<6r4rTx)c=o-eFl`T@qPK#HvHyis|h zLF$-X5qOwgh?V)VP)3q2KuUrLg%#L`BW4#rOrj&SKAcN}T6LOvAN7_ANlNGbS#AZ$ z&0J-Nu$2T$EETKQr55{ zEQ#zCljCPp>bqwEYSGQ5K(^ttjZTE5wSzuXrG-^fvDv2RGOI{~9X(f#TY;o&AXjUS zdYqa#q5mYc06Aj7XiefOeS#>>%K{V}4f{SKbXSs_O@*JIQA+(~r+vfUH%Rm$--iC0 z)j!TM|J%}|D`frTXXpLG7=^U2z?y}8exx$4U6kTzklYH;@L96N2uXqdCiqAHXt`cQ@BH}Pdy?1Uxxikx3S4vji# zfWnI8$XDS%Q#^EBS^DWDDS-4FLSl&0o{H?7Rjy3;Y>5vr2X=xDX*$(9i%Z)Xg#fFZsqx&i_RG171}Aj$~!%@3pL2(tJV* zvV;3?kmkkPD7}Dp-HRmuBV=CEt|_$vCoiFM?c`qVr%iO(xcH`Yk>2xJQ)n=@QO;aF zxOr{{nkwZ^#pa_6sWHaJocYfBc9&bb9GaZ}y{7n$A#J9iQf`?mq1!}8lx@(~CAP};?||9dFh(cXe{Xo zk#D=_;;;JJ?o$wQzKFbHvB?$5brpc)ML1UN|2yt)zwPD=j(kPwg9>nN$R@r5Xu=q4 zYtX9uwXroGesO;5ki2=zb#WYVlvPJvU|- z_e*8>3>l!-ad9D$+TRA~MO+uyp##_E82OQ^SW}MIRm%QW=Itky-LV6X%Ge-r(!24G_okV;gmTy@I_@*faeN)4Vp}) z4_B7qkh6>T3FHO(sCFi~Fkb;wI(t)99YUB-K)XekVIL1jc_Egs);Ec3AKYXrHk*JOm(&SsUw4~|*0LjC{RL@K zCOV{k?hayj%+pqG#z=!k@wU5wJq?sv)E>H$N%4U&v6s=g{X4QqiI+{h}@&?>VD zf|CtF(PiF;RB+iP!RUyu0D8JW(t4S{$HeKJ_(ZPXYX;ijQU~@t)h0WRP_WwW3dsxC$XD zXQ`wWh!qQ!6*EL#^cY=;6*Rnt{}BlD-dm%G6k5kB2=Nv0FL5OeZvgL3mEC;nE6REm zOJ=vt{0Vc-#jazirwxuJF?|r2=aR)sx(yFu>CCp_u(gcfYZstnV>^dF>u-!mcJkyr zUzue`O26xHp4&opDOKA{)@{$Tl4kR>1n8RU+UT6|8nk}731`i<4pRD{ZUtDvm-q_k zYw#f>_Tg_}$%kBicao1n6Q3mS6EAvxfeJ`!@>ug4THJu7@OsavMoUQihEiZa%~-=F zuIj^*Dm`H48y`bfewB1wlKbG2d4B;}AE2#EFc=xZ%~o6>zhV|B2*fH0#dDIi3~WJXaxvs^xnm zm>YUpv;?xlaje&UUs?+oTVt>4TWc=_Z++M|lij{H$iUBkeZUEJy?zkD z)*{5+(#g%cW|?1h1Yy^$-}Bh<%Y_W#*zuu_@zfp`C+Mf+0Q<1@oZPmwZcLz|P4p?8 zwFF!l&dC*VP_!F70A1koY2hPN1r=fmH}Ozt+-E z4O|sSKrYM*FxW5oQ63K#B}b$H%=s*|g*Mr+*rJjd*r>?Pf0z0iMW`(ez{)Vk_*m~8>}ft$&HOEwo9 zv!mgSAbbL9;wFP!^OCab-;B~SZ(?Pk;Rtpm_u&nHTjFH*zF%$}3CuK9q)`Dn(1Qw% z;S=zOI)et_EA9GVA3neYk#^<}+<2=(K4&g=C1|KfBUj}RPh4tWj!2?8B$zQ_A~Pm%6xH@@+~13qIslfDcjl zMw%la4I-c1sHlqqq|`tnq?*i@kd(4cXW+8{`>=_XGCN_qf-j;0luLe}$@QTM`k+Aa zf-DE*T&NXjvdgFyFe=Kt=3tk+p>r`RpsT5|42Rqb&~!-sxM`tnyF4^skfzLzS*F3I z=MnO&HNc0Q5@0@QUSho-3DC6U43Whp4wj&kFVG(z(9=1Aufn|P9aG2q)aT~!lMFA< zp&v8%1(^4f(ZzV^m+1F>efsKXI8JAm^ZQ9j3>bAn!!dKV0HgPppVC<%Wz4D zEa8+fS^}HiK$C`jde^USK!K_q3p<$~+p1!+e9XGsGz z`ZE$kRqlfTy1yHIHm z(tCcFz~>1!5azw*Z|3bFf7a*`ajz$mQld-WWoFYGoU?8A+7D!{Lwe|^myq>paiIbI z4KqU&M;GP_^5ISI3oU!o81#E^CrNrCPdgn82q`Itiu^v8j%{KpJ(8(3_2m=BY;S=90OA3#yeGLA`CY`&&Ofr&m*|;?{K|A&Sb5S!B@#->9j&( z!y(6!EP=0*Obm&SdZeY(EPAbeE!a;De4`b~u>|;I@QXYI_Mvm>)>rUbDVWa*DmkqI zzN5kh>>a1|i^T;H5opSP#EPViL%RYm9D zNpB?e3qsC!F20J~oLrI4Ntk!MHJ^|Wa{i30)zR=0sWVIsY)W^kU~YgL7J38z zMDj)mO05tqZ4l$8irH1wp4#Ajg*0D>`qmEbSrT83{qzQWqY7WMZd%mGFcW!I`;it~ zCVyCOiL5Gpu;c^SJsy@i0F0J=#6mUrJ{c6r`M;Z7L6ZUv3qKXb@AJ#`;nU1NfhE6! zuTk3&ErCr})FexOjbo;+=FAl@6W-~P`z>X<->W9S0`|d_UnE;XqT$~B9nVVLcR3?7 z#KRPa8j!e2p%tjK1w1!;;WF~Bd=esXqBeE6Jxg;qEU_v5-{r|(BhMOh$Hrg{Bl~+Ym!F(EA(-)K-$+?gVu;!0m=^q4-v5T zzbzhQ*&`&!E7HpX`~_aLJluErSSA;($tyCuK44k>o0CEwBH~6l$EyYisSSPvEc0q0 zE)Zpm0}vaYf8h)L->AQ@UvA=E^vI4&S_xBO{7p1JAXY?|MCpl^kY>OvXU8Ztv*QXN zMi=$DV;ew>t$S{ok#H_^9pE`3ZDON9>l91IhTlX9W*}MmfB_j7QYVxvW{sRk&AR6_ z=4>a9OLD17hQ{AcN|5skPOipd$&4}LLUmxvi*0}X{RuJZZ{hjZVW;C?|6HdBI9^GT z2`5WOe8V;SAQhtqOH2?gNx(~uwC1oCprH^|W__M*3j_Ms5igbYH3FWM_7!Nj;8|v+ z*5Eot#6GApYkm-4F6S!niYFkOia!d|S|`Tb2i3x57Fo(e*QyxbSD@h)YRj4k$ut8Q zYigA{;^}JMNAAPl%>c-Ej<}tskQef`!YNTsIYXAfi01@?)X4#1HnBsX`@p+VJe=Y; z$Gb-NG?2lP*C5B35fWSTlp_eG>%&5V;ZjGJB>lA#@N?huKGVvtm%!PShKmJM|w-B^2>8G!*i?(6&7IscJ~U%5$ahnSR~^=lvN zcGe(2N+%d}Hn+h?eh$DWu6Ep#i zl6n_I%kN<$E$(AnMiGu8h+oTjcT8>`z>ei&JervbwPkvCBS>$5Tm<{%JK8>gAWEM*XbT&}hpf6Y!^HFcP=HM`^Uh3^~BhEy281 zl<5Y^&nMKFo))4+U1B|pAS(2+kbMvxCZ}L2`#oDbr@c$5^|cLEzd;c}MgwoqIXE0e zpUeP*Lp+qWyWwb#F0*;gFdR!My=4g9#rfC^0k2y0Mp;{!fyM+VeZQde%l7oPNXrgK zRr2wy;<5l;EGjTPDvZgl7de+zJ{H$V3-HQs$q>78K9DcV4Z{g*liMXG;MLqejQRac z;W@vcj+<5=B_T`xn9WDN&22y(T=UTkH7NVq*d|uWgJNNJrCh8#eyStX(YWNSoR=un zzD$b8)M8fGg-_B-u4Us;8=8I0_K(ae25S#UMy^XyYkawBGD4JHV64_zxo%lg_#2sq zZOC1z%}0I?Ku6tntm$LRkg%@=uq~_;*Y6~|8AGy={|KOogDO7T(g9DswX+{^e@1vcWmh1{*8 z=VX~IcVX+x`#O$y-1gS%jZbPtV@^aHe@V-a1RvQFaDqJUEdbY6iY&|;J|6oBwe%|~ zzXsS8Wde>TXl2Q#NaSP3P+KoIkR1}Q>nU{VQK|*73*xez!^jYIpjjNq&aKx(T0D_$5)ec$tOC5mQ zQ=9Ry@K|zMA)U4@@*1s=PgTlxutcHE6;v}f$7w;TPAi8c=cUZH})dRKDOT^(-xAvB-4!RVD?e1%;3;uRwuT`~ngtsC-e7 zl)LYHwVXQiCXtVpfa4u&LUY4#A!|S#T-{4TWq_FSq$RpWR~Cmz4O73}B(Jioe}Vet zvNW9zB?mkDixr4!Ib4gCF9<9iUAqD*j;{(|J-Jvf%1cnSSa-27I1CrTaRWG>5Wj^S z#>AWy!eH-g~=xmj21 z!6UBzi)WFK@<2>Wh4k+WygDuM_XT*}by?)>u0ub!|lhioP#I8GRr=Z>R-C3Eue zENVWo@GkI=->dOxS%8*_*-cE73K|(#c0x547ck_*(3OqQc`L{7O0hd#x=P{+~uCe?6#Go@RdE?&257mbRg-rE$p#PlE9_ z0LgwDTdmEHFETV+Csgw^Q1;ut& zLf#UOlW*hUg6Nke$XeYd`Dp2CF`l!ymapdLfV`>s*mH38JGNqem3bi}xk;9zOxGr2 zkn#`bPcBwbhCz{hWFv+d|EPVrTBJTwCA-lT(xh5gu>Aq9W+jC(za$s8b|=sNWLfwm9?YfV_5uK2jhvs819RUW= zRuhIzK0XJZb8z+VkXXwl0mmDDm+)43AtSl+hT~yELWjaYJ~m!iiu^^l6ogndJhH3% z{jF~mAxu89=oEl)@o|N;FBFFixmR9BbxuBB`KZf7&rWBEZUimzf}0|`%$GuRorBAH z7lSK%`voc_)V_=-_$c|w1RSr6!C??RCO3-6M<|ee)Vjp{ksgWH56Lw#pJ)^6pr6?D z`dV0eY-8okjny@Gvyk18%^5j_$Z zxeaH1CAqU?JWW8Z(8LKP8-{zdZOo7%ZOYp$KjsPnz8sEX@=><=aRuPV|ISAS-ZVlL zM3l@7)x=JOeJc#aDX95tsdheffOP8sRb@+!2+#t#On*-7O#ndH5uJj*je_k!JVkm&1LN7G5Di zHGG_M*O*O~raYb#__bi`;AG-K>Ld#iEN(XO} z+5D`C^_+Y{k-+gjD>1P0Wzur6K3lcQE_`nC@eJZ07@dzF0TUe^vTMU}fxau{G4WYA zpA*nEvSYB=(zMjFH+ke`Eid%9%Og9qX2141*53A2dN@3`1o>F&R>04ELPSN1-z5u5 z;}q05ze-@!1j$%nbSY=6mfYdO#^fWP0KpO!@s!BVSP-|r$n{Zst*=lWh7J}%Jfr#f zpQ`2264-Rk{gc*6uQbHk(-qTgrhxE9Sra931VajId%YF*8XYcg^c_L z357X-m#iQkJE4=|A`IUpAi7u%4UWxzFL>WE(ShnZ@GB7g-Q@4VAOatEWLJxnpo=jp z64a|SE2p3&f-FpsCG)6RSg{JSD@6r9s+L_rGfK)1)9L{E!X*bw7Ss{y4a>KvE+~LV zuvAI?y@H(FVt$o*p&MGV;g==bVg)uSay|pc`>a0lo#1MF1x0r_JSGgULyWG5RsdP+ zkn*TJCnR*e^gq_p9^fna$kuA>Tjm6Vk{que6B55CI~@O^8B$iZp#y485MEb1hrL78 z`sFJBcZ67tsm?+o$uG#fDLY(E%y7dtsG6VODGE>~RBL@MnI#bg)eVwMmTUuLR^kXZ zBof)>#%;KPB_{?|{xi;o2(q$P1(7Ac0+WyZ1DlVg=a~2KIr}bjHepQUua)Jmt&+i}j4QMaq*U;G;He zI6`G%#oLs*3=-4CCs^i5)B1X!Rl~!lwls4b%!jaj2&sCvQ=!B#{Q>6Zkf^W9GG9p8xvD7VBY)2&8`%~ zV^Se1+H?ZMs>lq+ItUW4kcHVzlOnL96sYFMV|P=)a6ua3Jxeihzdi_QQngw)EIzWJ z6iGxDJSGJ(h^oWc)CjT~644FYn!@gj5(L$PC)lIb?0kfsFEKtvcn+v6iscL(&k3vw z-zC3>N;R@^RBB(+%<$f>PSFx|pR5&=|~1B~`0I zz8_g96507)XGoIUKT2V7KAI3!i5c?ICL?*fo7 zI%Pydg)VZ%$e$w-gRv)EgtL#PbF!eKf+Xb0t2&@E!LaM^V1jClk~p3dDjQE3&dCCn z%z)zwa>6oz;go(>1PStyRgyOoaC{B>$7ox(VSG*u_euON@+-uA&V(xDGftUD zO@7YGP?bcVW(s^I!$oZi@UvvBz@mhfV+XiW9OB-`1cw%Kg7Hur-<-u`aPT;)5Z~-!lB2<$B@q5&&X#X^5G4KY6 z#WDpJ{w-8zncsk5uE4JD3tS=1d;JZU(Hf@()sXX9q>&U7(_to;CH-v4g6o9JPnCT9 zY8b518}M12emSAhmP;v?C?NW~nNVaevP-s_-Ko&Q%up z`J8O{azThI*ycnhY(MsH$mFAVf;0)_rQj=xp<03PPD@ZUKeI8Y>hhR`*#!e$zzoJV z3S<}e%}XXWR~HNz1Tdz+N}`Jrkf2Sh2#_yqyuQHC&E;oQ=c8i04WPyJ1;MyBm4@fFq|?#X5}d{ z{8u@(Zy2^mhP<*ZNWE{TM9Ig)k_AMPEWJ3q&Es5rl*~E0Jl-3Fm>BrAUW1mRiOo~rHJR#K@K20J{rAT89PC?lQsK#I*fsby4 z&T0BoZ2Uh(u2FX3u%HhCtxomnRNKpbUudx&>QC;eW=Q;0+p!jh_;G#IHZ=^?4~%p? zu|lFl{VTp4&c_vooDcmAg0*-7j=<(R-I3QjHWS28fQiUT;$2YpawDAIi;Z>dY(Cx_ zsyX?{?sfauoIe$ROc*~@b(tYhSaH#!mRN<*IT!0Tn0mC(_`A@@u{nUuMf)%N2B@1$Xm4IY#)pywI<3DaMfg_mammrel)lwd-h+iex z&wi_1q3vyZ)gBK~tHrRgidD@=OMZn?Bys$=86h#b z!q!tThEvWzlHCNEMW`|EE32aUc-3@4fovonFNBl@k)Y_sC7C(!h6OdWk^}?4Ky~3o z<_wk9IA5W^^S62hU(}#>mK&V`X;dKcN3v|MGAAF!35IX6Ow$>}9iVK3L2kXYCeJwZ zM2p%#i@!MT3Dq9*^*-qi!(YxvOL`3!1kIS=VX6*iZODrHD#;Zi{{!TnqanJ%_)jx0 zbVG9GhV1x5;&@KTd|9fOCH@}xoE2HYU^*rFcm`S8b$~$w9(7UsNRU}QD`FlL^;Krq zCb9fP6-LWHnL8gYRc#=Of7Sp)k`e|xne4WH`que_5z*c5>*?t^@7?>mBLd>02ubjs zTzw7LsMZkg{6sjx6VYJ4_}_k?>ICbCm9@=>K303nV{+#sEKm#~I#l&Cnfnxo-*r}? z#h}*jy5GY0Je95fv(Oc5z}Tfhx<&Z_@4=2GJj!s6nyxIcMKg;D|1Ib50FYj@>YrK`^TG;<=T3w9^o7r- z-cnJ=>ELxtJmoGtAx$|t&QKiJ7k-7pjz?cNs?O5#4KjLWg<2os8d7mUgEjyuf~}>V z^aba51R{fGl?=sUJvu8`BtF2p?#S%8#S@bwJ_op?ua=xw6OgtziVb5Ab4UfnOEKe{ z`xq?V4cYqpS~ti9fy^XsVmaVV2NBrNJ@bL8TBl>$P@Suua=xX>W&)&|I~(L__X4aMYJk(RPy=yZ zpxg@sEP%+E>%9i#wJ(Zx$=Fl$eyt~^zSj623Jfnpq8G{9 ze;M_-`t4+970N#+YiwE|(Npn48L#>Bs_rYbyX?`%I>w8qCF5kw=6Vn=!4z=%M?f1N ziY2TUC4R8m@w+YSGHdOo-lNU?8F}X+3{$V#z|XmEh&yvjH`V?U+FxNC z7bqztJTh>)nM{+)P0OSj#&m!I?le;v7xp9oc|`u;TYsZi8*uda8;M%HX75tCpyFz4^RSXv3I{p{zy+x;_yD8x5i zH=>Xp3GrEF;%yrKy!k~Yt0JAUzd6jk0@*3FW4%rpu;9HbX%TZ2*$1GZI-fTar8LYOSdb!ShhGcBX)n zgKo#;1S@oNu3>!!KS(;Cz?zR)craFzQ~FPMwYT>p108__ALyE8)nQ_>w2I}~3~(}% zO{~c3n4^Lowkp?C0}O?Cj!?PJDa|bm9J()XpgZ)>Pk zVKvL~mp}|BwWwCX3!=5Ed3hUtrU^1D*{1SGit51tr#Hmn+lN@Kj~0mk9m;VJ?Gm1G z2)HHur-%49Zxeg=7}nXeY63}|?2@T$&7&=H0`nCoe~vygzuu!Q(buu~q>7l_eu zt539srlezESKgOV17Cj)wZ)?chK$Axf3V}`#pdhzUgd|nqQA|L2ioFTE z28YI{?yF`|zOe6vH`Ggu)?CaQg9(uoAftM{X=VvqLbF@^bHz||sGRYZFf5ylX_5Z^ z7jFLpsmcv66y;6@p=fwk9mHHYNA;?`p)^S2B&9aWf`+?5=}j4BR~4j^(P(W|iN#Ww z750gaazHN$zo}{9fmbp>#MYN2uESQDcJ4O43_d$a=9Hu|+5y zqH+lsof;pBAkRkGr;`huY|L$4cf{!lImG(gHdxsB2o&0?_yM$T6A)X}Us_=C6QY5h zO;5f-=3ZH>JS%MKW(^mCwNsHg1e}z5U4Yq$LR8W-fKE^>aj!$51M~_w9f8%$Ru!nt z2T*Mo1?+{aB15D20Me>Ppa6@nPzDM+FVKo|uRweRxks23y=CM33I|%c{0Y9jWm`GBuu z>LB;DeOHLuYxTTv{e+}A>lHTP_+A00Cy06nxPCG|G0a0KLLyZa{SSjP5byK=7a)G{ z3t+~mSk?Z#8HF;552CU#y6TX~!`M|Ju1`Ok=7+N0)p<}5;vexDIXasHWtcoP{q9n+)ngNw{# zQh!!G`J$ZTxfjT |k>(B>Eh3xj`wdX%#l47qrv(PTI#%Jnca$Z}skOYbZO-cjy< z>cMXoUasY8tXxbGxZPXbB`R^C#FkR@HFXIDwUhFz(b0ONmcq|htS8rl=~I+sR9 zWRKfnq;j+yiF(SF6@9c=OJ(yFNujV25GnZ;jw2VdJf_#QHfALX22}?egtEs^C>}WY z%ClJp8k4aMtZCfn6@2)TKA{S*>X`a8hq4n5N;#@ykV&t3z1#Tre;DopIH|MPcA3RV zHJC~N0%Q3me~mJqF}V%$&M7}yg{-*T6zG+v&}Jn)e*v=y_X_4Y{u|y2A2rcUv&f_> ztyhh+njGXPws8?CssSg3Ay8k>@hbTG)-VdJ zs)607jb`Vi;pBXDS+t_PP){;CswWObF@~~TF2;5rWKRnux`%CDovRNWb{^Y44}SxD zTEc1oiIjBSPOMl$n~n0A{waCW-{T{?uEtHPJ;`^_fj$GV5yaP!6s}t|Xz~h;Wf8{v ziXqvG^>pox0>5%Np&ACcQsY_sk9dfUcP_1Z&=FWQ*sN;(sR17$`5(1j`!?hUf2lz3 ztH4$DFWSy^-Bl9^!`F&&1R8`ChORbO-*#p`AX%onho?U_^S-l<3sDIkqB`@t6dWxU znKrp5VRMyVVP8wV!v}1K&Xg!SiN{(JOH5k2ekklc-!=EKq>6XA49DuhB);~nH29F<d z76#lyNmH7r4jJc@ikHWBJ$f8XusWugqV&gB>}OH-!QqpL9l3G z9#WSzkvdSmKf#&8IXEsKmbcwZ(_h^~@lwAl!>?$e_5e#L0M8qPVmpPU^ddYh(wvJu z^9WYm!jXr_b`S2h6+@3w_r2 z0Z|z+e-tpj+oogEYt?0f=@RT-NG4}-OSK7=h8~fIQm2GipgSr64 zj3{g7gU~9{1DRokes;WdWoGa!PdJzKpfnOXl7UI51d-KgSkA%Kc?N&sd@mBqjzKMM zy$O!*vm-fXs{CENmb6(MAHi0tJSPaBA{&f~c)UOn(r;nv95tZ#7p(m-YR>b(yo04* zx)iPvwZuc6%&^;dY_Xr>PxzZy2Z&gx55P)2A4;do*`Ug;de!o6$6C+s77W6vKnt)^ zqbtYcwD z2mg`yFOgFE8`L)oRM82F+Aalo_NfS4ByT9=T^>@9mrlzV2SpI+e-e*G7=&BH7R8tm zi5z)2p34fAo(C4QHw+7w+a1_t)u`M{N>pJ|2cv#mV5DpGK*XLs)ok|A+hOM4(c>{# zb2RW~SD|4EgD2?Y!BZ!t?mx&EZL7p%wS0#?+%pcYF8fPim-ioXSr^sDe=mBx2(Pxt zTyT~{CwL~X?Tm!29~iCG#`6nD!rBIg0XP)h(UM_&J^oTE;+7&m8HT~^6rM)6 za4i_;!m|G?*VE~Fy=%i7TwFU&sCU_avhYJJi5CN76bWIM7pcT%7$znpY@`TTmNC#a zu%rbUtk+v0^kgW#WgOo?ID`2`u=To{P=x=cOKSEE@;^sF!&fWf+) zDTed12>Pt*SL09Gm$lDsV*SLlaO4lt2Y$Jf21n_Rpt6&JiwELN#L&5Nu_r=M8~x?C z5_yTwwWLIGzewkH)Dj?g7$>ar;NYqW9=8dx-lQHQ^F_h9CIyT%vBWRnU*kQM$DxP; z?guLE4NjNy9w)cE)c_h_q^T8;81riez1%x@3*$-xPFDze+Cb=Bpf&Oou48`L1*3}j z;4}w>Y5XnyAdm-=V3UIGkz{(NT5>s~aEL4scl;1P*YYRlcO{vuOR*Kn$z9+S2j)R+ zln|*3dAE_~tfaiZ18ckr?H1y304v?@pO~^fMc~wA)4;{1;)y6WQAu( zlsZC^%e!!kUSs>a0khUQ$D>v9u{F|#O*?s4cf%Gap2EjkrqbS^$$fS9x$@TMt zynNQ4fd_j8SBHI3+^58)!E_W4iR52|aws*=HkZ3cz!Z&>oPPTEn5A%=g~Npk>;r8y z43V82QsW}+Q3vBN;o5qAvM4U3L*n>D(#USMwwrhFe9=Om9h=iQhh7*%^` zTv-y4Lucb(s5atJe;E-e%2>y+cu@B<+x0KQq#@L@h1u>|&sv+v+hUaafhfaA2tEns zRlcaARd9KET3E1bQ<}ZI4vsnutxg99$l?4G6t%Mp)Zi590M|aSJzQXj9TUKq;*_-- zc=628Ue96j)N=^NZZNG8Y+1v-A?kCNVYr^ZB>Y@Mdf_`jJV0*O=4rBOpxCuw;Tjo? z3mMa^Uax`bSn@RiSx+7!LHwMGcS9jzyCy7Vf5q00;75|@m&K)>lIzEi=EA^Ra4GSs z{Y7}ONZVpHLhvHN;c;m%?DbcMo&8;K85v9qFWZwo2pSwy0zYK~_fs+NYaN}&M%|iT z&P+|xK19s{P4CqIQG{o zi%XSi-@x}olgoKt@lv%!9w=)RQX@0C-9lWr4zWHR#?WHGqJK#N$H7*PQ8-Pkf2(=Fq=^}cKv?GOqeU6~MkC&M~~tMda1SzIHZ zHkk5G5DcHOX$y|(Cv1XffeEoziFbEu)ROZ42C1OqK%1eB5?X%(y+w>_vJ0mI4TydK zzmt^JHHkRT`q#w3);>~m!6I5(zixpPci`B`ZR`Lp8>k|ym)MLcSmdVys`f%OD0`y^ z?HD^~7cq%}bu*gV8ICDl(Mpn^Rp*z~p9z=u*W6K^UzvyW*1(>^M5!1Qho^r>DtSt$ zo3oXz6+ECE9LO@vtX?O#{LbR zyE3k-578bM()Yp5g~`~w;1mYWKV?fYuj)Z@-x18ZQ>Z75xsbpiEEHq4kBON5wBV*; zX<_y%7N}nLp5ELl*csv4Q$taQYh9ZK=j&n5F`dthO~l8$LrZ|6cn zTEJL(N8?Ok-4+(>0 zQ6V}cfw9ZRV-Lr{=Q}3yMtT9w1b06`3A7BF){_Z#xd2E5dp435RvZhhJ$lVj>ezDO zc)_xj3dxb2;2-p(=;@2%uzOeJ_p))R5ik;Wsxia!c;O3|>n zprG%iF^+@Ec`BK+lZ4{qQ2bstzRKldX|8Tl`i1JFWd0jcov}S}t>C3FppAIiC3)8t z!=N3mH$THp7t&&-`e_g6>a@nS2PhkK`4NZ6otJQYEDl%s6RaiW9e~IRdP^#(aV?KS zJ@@RdsJVJBcDS}$rM@qoO8ZwPqh~k{!$es^a7iK2X0clWAN+Sv9b4?DKx1bqEysPQ zCA<|B`7)i4)V*Qq2OH|WWGeC$2f=?-U^RyHcgmiOgs@!KEZuPi0i}Ur@QZuCvr9{0Z^*lIkAm0quFGy4ePj zo?6PckkBn?+#_x46jbvMK})Z18&?UgE8JbqMii3~9@y~CmAcJL4k3B)7gY$mlz^o* zMV7`9#IrfdDaG%+or#vSIu3-N)qubnj9_HBGdE8^jbyQfbmzaboYSfLN-QBX5W;3y z!muS$fp#<(QOBWLuMPO!g=*Fgj0S?j3Nr_Vy7gZcQ%GWvf_h!7SfvT(Z9JRYx(YN0 zrtahx*d94+jCANCYWyb7Td5C{kzyFjE52<*PKS{wciCW1Jz~IYqIMAsahK=oQ;k#AxtYoI;!6C(VZ)PxyxQGtKurD zGsQs+^!w|Iy=j`WLOQCbX@@D$+3dy)XK|9iSKMV?ixtLsRG%P`!pzm`bkuQE_o~3j zK{n_Z@S9f4`IqV|04KmL^`VXLLXs^^A#I!y8ldg1eywj{w^w_TQ1X5F*1k~x+zMX^ z{7tLv#dCT-0@YM&86X+D0g_SfXOW6qZ-Xgtnj;yX>tet-`~pi4)LlSstezPt+#OT} z$O16n891nky;BaX*2c5R$>A>~1%YH0)q~i8awot|X^iB?lBygPs9)is+s?1=*I(g@ zByp!caI>amZsSZH8%u;Sx4J5O&Nn10WqpPPe*fvA7;K|U2f;MGw_Sin%u=x=_HmF@ zLkT{gjpp-uQ_0f`|s6(2At;mPK2 zT}Q7n>U>DaR0W1`fzp{xNZR(lrM%P3-!QGOFqqD(HJJ12*0SeHQy?IzR3I4%FhaTs z^(k%2R^TphrG93qIB=ng5uF|(@{jl|E6h5@3vdwp`W3S>L(XMVEJ;f~owUA!syASv zm}lygxR866mAYLZXLSr@epDcWF#&cpG7=f~Jur}1U>GaqHY&^wqZlQ%k_PWx@AzKH zkLx@6y`)-U0`0vIlNkxBP$+Da6ejAfH2LT$xw1mMcUnoj;p=QM#Caa7TrO1>TqX3+Cv7ELn_<@g{f8+2GNlpGFJXVcqr=1q$j!lua4lWUH%`4g0-tM%@OlY<%t3Y33 zr9oM4LIO0hNS(RWhCqWtg2)%J|AG^+HpFa`&KZdm$cOJ*H>sDrB?twpBIP@ zm8A#n);t9B2>h65#VMc;JSShK9Wjd~1Xkhz$sOe5wowFX-_rN8K1zjqYhTydU8ib7_rv5kPAdc3)mq!MAIu_~-BQRGg zB1Ypj-NN${gYhE_3MxR|$#((vy-p2)6(ZnNv04fONFJc6G=-dB#yLl>#3dd(Xag6{ zQy{uwYhcbpo+BBH+Ck%;B&0!sO+(2BZ9J9%sX_|p0ctrnpf{X&WN0Jpfy7zD;P?zN zZ44;JcI@cS0uEj^gF!<0!VdEF*k(y2FsNTQg{o-@;@U@P!A zH`S2NIX7HLYZIDHrq-Ieb03m8>#D(kmOocu>YNr_mh3@Rpb}X9x#|)~ErLXa1#Do3 zqvZv4ECQmY!OS%U z+CROO3@9gHz-(Y?!jP3p4rv3JR?I58pqpF4w3tq2T9e4LyA_@|oP9Qv)gFN9)-gwQ z#_+YmQ>E1Iv0I16X_XxGQ7$X4FkWE_kS_SN{@oMUGh<@t*U`>Rb261IuhvFWXrS}# z+SwC$71OGq8dU<()iEn2piV(Mm;}>oCNXGvS=wlB3M3(0iMv22A6CsO(3>ssF)UjoL>SqFGkkMO#Z(T9=H^K{n60(g4)C+wO&@A@I(iCqO+$z$u8Q-&}93eNG`~ z3UTu4128&2>)ZaLteVg?9K$qI5W_qZ8A%unN_O|gD6VOm0Xz6wk%o5)lsl@;;(JVhv?sgD%(6Yr%~-EMP)bO{&y=_Ezv}kr9E%UYMhR8NRhMN|9#k>Q zotu8o#_{_vG)QWHrPbO9Y3^4t0d8Z32>h(5AKP#Ww4*$aLkey~_fQRvPr3723?<+3 z7>I7z8=Ui)=5I}VmXNbD4r*gqEv6UMQ{qZw+QvPh3YnrDQa&oMo{09K&9|&!3}iMp zrH$Hi3VMIRI6o{luL^8UyX+;PP96K12^B|EVCyoKtS+WaDn>V|&mm91_WY0gzNTFo zNPAFzwHN|l1_KV=2Ee#65*dpcQnen2V_`B4)!MiLuwTmgb7=z1HNPrwGk1<{bn4K_ z)_7xGwNFEfc^?|a(FY$mWTQA+=`i79_6S@7AuBCmAcOuV1L|(;sbs0B4>G=CaSy|# z@(3{*BCr-I1ae2&3F+K5oooSfMxb?-YoiU?VHb>$+NeOPmjnYs&PN8un{G#y8=I*b z&}bK_ob%pU_lZ1Ag}N>99C-_mN^0_|NbW!!%4BIK_mD>9HolE{F4`6oND!}HJ#+2$ zgk+uoH?XsZGoQLFDkven0%qA*(2*)Y+Tf<7EgNZCOo6Pu14{{zlo)3#WiT%y?gPXX zIrRO>o0$UR6sW!-cSymgFErL>f;Hoa>eh9#Krp91a8tuq9d_xf0TnK+Ep0Ag30h@S zR1;Gm+b~+vZH%)4MvTLQb20wZ+_ zxd9%GOz~(E=mvo7I?Fw#Aaclz9@}{KgO-rozku!jbt`1G2Vho`kmkW4k5IxBkdASl zYO*70>6qRz5Fq8csS{|UUe0AF;AH?YJBp;O!?w$U6q4#^N{3`TSM(WQ{Pw?VA= zY3j-SsJcW>8!zmr=V6tR%o8~IE?H3l7WMv}_93!S1g?~zNF{8ek&pID{_VSE3X>(f zx8aJWay08dhg2`Z@Q4z``3tx~>JBl6B!t;UE2cP;!t+l(E5%+;>Fd{LHSid%(0D?GGL_}LzPLDepcOUKNWHxQgVL4 zuy-7DH|G^n8`Y92FrZTmTXE@Apr<9O28>5EmR%{((W*9q4UP(wfG?G2xz_x)$YV*4 zNvi1*ZAh4Rdc`NyUb$I+!YPdhO{Q%;Br?@I4-~VY)t_OL867>W$&P>X=jnS63b!o6qkKHPeOdlay+ktswTltK2Mmo>= z1-+mL_dM7d?m_gjw*l&{uU;+9fn(aIPeSRPAEEB2ddxNWF=c18Un-}G$_*en56}e~ zJ!J_Z9)zJ7M<1mgNqSHFT+ubZ z=kCy<(}Z&AMtaQ|ifn~O8`|4rq3(TvypNphOXg6}laL;)1yD~Tqii8T$On7RJ}|gZoCBHnUMBEpI`tV@?72%L(W^`AUi`F-=!>2PC+;JcCAgib2gA0no3?upP@hZ#bx?R?+-TnE zF|$}YDp2<;c$B~u#T;|SnO=GB%-PIT%nIp&$wx?A0Y|$PD*6LVwZq)u(e+H=9nDmc z5ZVZRO*tC?WgWYvgyShqK=O_exaOI5mKk{^+NFn44AAfDvW6iqMSJ2GwsG$pfj#8s z9ukf(#52j>N1+ZYWpx~G4QT_XRQ)H@6ZXGwwQMJ)JS`!xvp+Y`Bizs&N%%@D zGPwhZBW?gJ&LcyITY5lB$`VGo08C5rskT$Ha=?&06f~Nv+2J`096B6jW>2H+^uTVb zXW0pXxAX;MH$9e|Yi&-+`mpo`Y+bb15mF7jkLL*_yr&BD0{d6U%-z1-U3$|tn!nQ+ zXfPTvXQPB(BWy>brO4ALw{ZgALlJ>Qonh)o?xwCX+l%IfZe}BV_TfnK;IT%A=ytcG&RDd~AMDy+FNZKL_C3Wq_7OhaUYCY8zPs6C|4 zD2H}bT1@qEHin-oa7H3!hEX;sTrn>*bwJN!#PLY&ch-o&lZhbc%(0*V8(Gm-Lvv;l2ejfdq1h(e|}CG!5(^N^LwFP*+L! zVbUp#SfgD0>Anp5j~w6hLJf#~5V{-65)NtIdSe@bx5^{1)L_$S2>1qbgUQDy7cVpzJ#S3z ztuHwru#Gjy$xEu9&t})|dARf>)!KN@cERVhrrSLa`b_dYWU+9vuOJE#r0^LU)4T*h zAhF~h4my-~K7c%xu>);R#e!QKHvsB3mUCaaNI819v!zh_SLCt{n6D1h-Qd;b3J-`3 zoP#{WRBO*_Nxcp$NWN#sdRo`uS*-ycDxM9fyRG*ja>Z1gQA8Vht2r-7e7G$F zd$})h;{mK8SkDoh{My?s=DcwN+&UyEvN1xpa~5Y^&41&0aGV?9ec&t{mhkjwmoXSW zLf>x;c|&ZY4}S4~s7=$A5j3-g=GOj@o3i?7=OQd z=dSeP{11l|rp0*)?YNIsAf=59E3SVl43Mf(buQF>hJKe(<4Mq_D_*4DuC8nc!>^d$ zsi;k1=oIK@jeug5u#HB%k?PW?GOUy^XY~Z!gp}IoNer-71ix?t?<$4eA*G+u{R*&9*pV!^^w#yf= z?%sQxQ+h?+&RtNSooBOnQR$Dmj@2ebH*@Y}V5(JC3Av3GGM=HqoE17#)L!3{1X9%Y zCY8_>*dhZNsN|B>tyG#|@iEsiK93q?GO#PDj6YXxHKIFKdd4h<)&w70@Tas|O6c#E zzexi03u^!*ps zR})B01+=Uun`Xu`Y5I$iBwnzMI>(hD(FWb0lDvZ&srwvW75JD&Jr;1R$WJzt!id#? z-CTQc?NpJ&TQJzfOXns`S$DGDoZD!8^;ZS%f$656LlJwTp%-)$=|L~d`#nq$*|{`MU%&#`dDKTs7|YrF zRNCmwp*SIQdP3RXXaL5o#~4aB(gO`f&^Q!%A#CH7rqJz3bS1la;fg%Bqmk`@+%U?s z(*FKg$9qLPK=3pBSGb2aTzE3H3%DR9i~0-mLJwp)Oz~ja0Fu#vqWX{s!vUUit;R#c za8}VP&oAWvntPgxT!0a#N^?p^IZU6!t7dU8)EU-_ey-o?x$ClET}$ibz}p6chgl8# zz^F7G6{x#_td@8AMM2DQFqgM>r~0f7<6jh*9OOM*yw>{?YXyh1>rZ#l-b?_=9atRS zxjs|b7b*d!HaeYLfS#dL#x^#qucEW+Js0(M+NHM!BIhuNsdNG z#X+4_b090*Aza6+%LPnf1Wt#7{5=IeC+bf57f*A32YF#=;|)vTam8ogYWfLaeTBGc za}l8Kf8sUd(0DtEUWl||+N-=_10B+ENQHaCychh)h!;v5ogv}B&_f?0%NC$)IPf`wphe*=8kUIE=fHk5$7D*c;tFR=2n8VAxg2U7rY>aIu8F zV6FGPOF3^0!;YAL<7d&I{ddu7{3x8|P*`{Bl=S=J@5AT|b(-^!Uf490g|r%;ly4&12#k6~Hb=pg}m2dcgVvb)^9koDlIhq(_GB`hG7 zpHK!xyfNUPH3EtehcX#ufoPaR5=TbzvLY>=$p#5gazt{(!6|)m2g#eixPE6o{@ERVPy}qCh_@kd!v=6>D*Krv{H{fOA*c(GFp0UY_+6WYY#7 zFo^NbD%IdU6dLX*_aSPMcM9A_C#0M17pH3L3{Gev112L=p9Fc#tR?DH(KM@#roc!> zax^_~Uhz?9_PhjEsFUnQuPO)2;QQiv7j4X?Ov*mJBC5}O1DZmr{C5rVK8}cF@FR_(R~)Ds$Q23=N@ChZ^P?s}GNM4WmLZ+s3r+3$n^(+c@@oJ3mdJV# z37bGOodHr(x4~@bKz>z7M%P&O>wM)Bm&o$%y8qK}0Kq;#l={gCsVifnutI@UftmF%3tKGdo^ z3viIaUa$qgm;eXo`V0e)GN-gLf7@+%0FO5;)phZ>qCGOyPbByW?t2*L{0eeI2D;k) zkBEky?4nhR{@%9V?)Wq^)w2PHKdV#=JK!(^%3`szBWbFhFB7!ea_Kd)nDl)S_x`tDAmqQq8vI{VJn<`e~+c2D;Jugt#_t zaZXR?0h*HcPIle$J}`u&jz`s9S?qgF<2ywgt!Gj#(`w7|sz423&Tqm41`AsIH*IHw z<|vN?;j;=5wmyuUwdKxEZnWpvi|ruEKuFTtvp@4ps@@WWh6EA^4E(LpME;J}F}l@T z0S`A!tWaUdM)Il@{+-)Rgw9n_@sFwl`$XkMzlei*tLg=R8*h(^7T;BoVcK-K2=Zhu zY5^;7*ig541-&@ig(`8_!Jm85F`8mBawXHMws>(dMV?+D0+h~rvXXHTgWRDsA7r`J z%_d|!J#P!THR+D0?z}-bgch?p#t)F&m-?MIiz>*Idnm+)qQbht9UpM<_@=-1_82MX=BgxB~N=vUhaq@k_5wR=lu#!l5H?(5Ozi zIAwkUU3cymL5|SGal2EEqOQtq#FW&DC-vp5$V02Ov+s9k(?#wSHlM|GfRr-7;RMxa zjOLSe6;?be7CXP#lUD<3GekK;>(ij{-gP;ZQmzIC+G*((;3O7^a*m!!!OG0`LJVv!}R^)kG zhSXCXqrc--Oa~|zI4c&u0EPd|wHf)5bW<_BLz-TRCrtd5WD63p{L~ZhWb9XQ*U(lo zX`BCD1xtGJR>)Sehc>M4!*BUD5x7M76DI5A-*VRh+*!eZ?-N zDp>T6e3pF*!Vv~=JOl8YFV+FWo_2$-&J@89>#Qzv-_dQmn7vjK|17@vJ2^H=q& zvObk6B@3ByM_p z4(EztMHWwchgB=Axu|Ec{I^C`p+W+KF<#x~>wDJ5g$1NU9Cl7hg5?0D;Zh_w=$YNC z`LCk>ch!d}-GC3$y~4!!Xu3}y=@?{vf-T>(Emz%*cn4&^pZ!tL{f6gQEw$8)ma`&T zXEG0u790yqMua}N{zR=Q@><Tmi2@;ZI#Y!^OY8cWZq4eZ8E}$$NhpSApTrNX{k$ zwABd9N<86Ysc|s)B5S(|7J~FM>W(S>F-B>#-TJevR%~1cc|5=*>c44s>p(rjDMn7q(FG8h`F{NK2k)I zgX#=gx2{=6Dxng(b)8+=lfJBA%8C1VQDepY#B zjl(lk(~60W#BCsSd~fz%U1}x5d=5PAf%t@--=5AheVr+oes71mQgOsAA1e@b6i zxbZAUrJtz$XO;VDs;@6sMA|ta@y;~H|1G1rKJ}^sX+8Wt69mhT**HS1X6nTTl`f& zl8Wy63|EYKy1L)g!qa=#TcBb(g5DVAT_n|#Z#f-A0<7r~-1fVqY`JX{=$l!q`kv3* zqR{q$W{Ny*Fh)~QE4k)bhFo>@iGaJ4oGUn~rbUfUT12g?%B#9-v(iXUf!r{Ztfi&o zIrB56F}i7s&(J^2JT1WNxWYcV{ZjfIkYnacWd;60$&PbXh<$+M+pIYKM6t+Akp#*P z6Cv**U;;iy@{3J){0?qdYUbDa14%R_f-*T}-T}%9X|F4+zF(Hu*BhQbshxL#yr10S zWp9C^Pz^1$En5sn{-toPfjo@IcZ~RA9lR zplaK-lbd|-#z6@S3`wb;bturr_`l*h;Q%7%(z`HWdm&R4kk2$jO5YISm3l9@WlsW0 zP~Js5vCLUd<#24Q;9cOJg8U?;7o^NPK-rNF!XkU9){C;I^F5o7s3 zQ|m)lU-U_t;hQ#m-OW+nf^_J5AKQYyRU--U)@pBMM{tK3L|BAsEq18kM z*k?`pt>M2%|8;X6RO^!u7z)ztTuB~=dL`3ukvJUW0B}H$zr|L8@hXg+JiL!ujBX$y?ealxLEKKPldR%_8~DYtSjEf zP_fqMLdYUmduvuCxnY4-oPS{Yd(%T>b3gP!@`a_9+Gj@lwir-Zp27RLInNM_W5DRN zZ_?Jq%~3ZOLqST84~UL;;0FctS8Y42leY&9rX)uiFuAe&4aUW>N^_>US|B|e)iDlOtH+gWh$6GhW;#n~1neSWJwxHm|eOifLsX!ZyB#S}gV4%nAjr?%^!K|T@k1MZ=?+fq4v-z_ zLdBHo7>)FV8YMYdRT-n-biN1P$qssZBz0^yA}wx^UVz1E_$`dJdUPY6T9rZ`tug5Q zP|%g-AW>W}%}^b^)DlQ5%Jq|CB95SK&iGW=L0qu zl`%SZ!3wQbABDmj(``f{SM?R@1u{+Qeez<8MYGb>euts7qZ0Bl-a>s;?``(V7qy{; z!@GJ#OvsQD68D;&)AyWGkNpE#yPGTA>A!-*%v8H=2_BLh!o#xmy=ta4T? zEJkz6!6~P=B#z$HIaq!c-f)5NLM7;uJ zowt>s$tlseoMVEpCyWQmL-rtqp@%zR?figaX$gl;9A2oj0sE*CcCwCev7F)^gC{pE z4#Y_8oRh&{eeM@n9rAjjz8myYB|)u!N^N$+dIdrq=7*4-(go}{-cQ)>_t{@B>r?yz zks%;UD^InQ>r?hKajaG$bchDJuDnMvw)Mvu;}v|SuE^|kBTOC3zIJ#;h8LI&o=5Wz zLY|(71xy%vNYq)({8)>J5$1#b`H#-24UTR|=^N^WT06DmG(+Sale|H62sohZ{1?#V zAwnC**aNQ936DChD<%&Vc7T-LaowNzSH9gGmxM;z9{Dl0SseB2*idg!?pz?eq2}bK zcfqs<2Zy6}hw|u2XkP%?pMKxuE%Suw6r8u#$Ad6hva!U&L9H*|>Eq3Iru5Jtt{wHO z)Y-m3Jse+zzN5Hvfv|H+sdK>CF#?C3bLv>y+|f5r4;Xj6wX(Am9QJT5Rl6fq<;4`m z{Jlja#R&#AOm0IPV|5M%I_6lM9-9YDZb3R|UF1V1#DiB^#%)fF`=ySd5*8dimlpt%y%-iG$Nq{`6%3{EDRLnWj`c?J=qzn;ytneeq#@?Q z3iYhe%&#hBnz=iq0eCr*-;Agi-c!Uh9jSo)`=H*68(f|BfV-#T0@OWw=NnI={Q^89 z@eJvd3LOJ`wH!T)yC%2exKpek?J8pnSc?#I#{ zOW{$ZV}ZG|wlfX?Q%i)=@pRsZS2)WZ_odHeVn=PH8T(OD4_~%V0n3pWZnyb}YYsi+ zl=S1+;vGXLs7OAhzcVtPgY z$$SpF_a=BL-~g=;w=OasBI=sv$$lMqsBoaP!SO-sdc`VgZGnmL0p&G~SgZOXC!3+F z&4&g(-{^aY>sgVfD~P!oO=rb=Z(b%}QVOQXlY^MQwZ`EYc+<3Osx!nYZxrR6G~6Q4 z>X15-Q&IUso;u8ggK@6kd99ebvx1xz%NUPrQb)Kci0K%g{ewQvYP<0nn+mY)hp^D* z0j&Pp#Q;y3aB!+Vz4lJ9OvK^y;5tFQ)B+BVgZ9T zVA)^vJ4CDg%Jyd7RZ89l(-_YxZg9dWb>bOMb+%Tp2mRvl(5l^t!}EZ1LGs`h613qR zH*uoy17OBGmdWFBnyP0%v9YJJIOZjDUOf~HRHYCWFSykStK^kvyq&C2I|DR#nWF`Aut(R{kKY^r|zpl7$$|{TuMK&yxDXds%0k$+@6WsvW z2D>7Mqogm7l3fGS_?DA_ZUaVG#jYmuu)^clO<{%f$*oVOraOkSSAi60BT<23)@E-b zWIaOxl%`f@xzHiV1Mt!@f%I}BCdC<2`TzkRcLg%VA{PkXnLNdZb*j9gT53W4HY2lA z*=IucKq%cY76+dG2>QviKYdbL&x*cEZL7KYI&{Y(5H#r6+x)fd0X%LtY%)f1!@?I@ zHce^Mb={Ozd|PiOJYWeM)oMCG^ZVoXlwdkS9b*ArtT0CNL*-#QKyfIH7VH0@*?Yhs z7x0|ub~9qLTOorA@^F%W=YA^*%^@M#e8#2)3h(tV9EHA&7Ww4#^{2FXf}lot@u1%` z8yB+quVb`A#qtF#u0M!N4$t0&72zLApIY(9V8y0XA%B)y7oe#khU^wVy zsGL1gIoT~&>eCfk^{|7nEpGu``ale7gm0QU-P$ZtHgL;AvI`&&AIUz5g?7s?M*ba3aAkr^* zqTvuM9P|p6N2GbD zthAVp@thL&q4H`Igd7wmOgh>;>i{iM*>pj1vk51t^41Z~mYUjn*2f(wT##Xf*hG<3 zmjaI+#`s#JR(I};$GN}?O7%7)&5A;dYCBVhbfjBqTOTGb3u}gZ(tgb z6y7Kn?ob8Vq~T`0^^7r@FHj_N=PF}Vu5z*h6LrUWQ1J6!&Kc8lPDuRjxnDW-QI~{b zlv1zh4Ng|$TWVw^YW^oDA9rqgog-y3t!G=#iXx|2Y0XTaET%|T*Z0iX?_B9gzkQt( zHZi6rW3{iAY(=SK1b4L?ratqvn!=DAV)wa&kQ0kT32num&Wb$!0f;%dVUZuvm$`g4 z!6z5w-3g1L<-)n15eu~W(ZXe@Nz5sS3lTDQ5QRdzvRpCq)gz_aS)lGCHcIJ=KJ@IE zq$B(5-1y<3d$K^NTN|_a8Te)b%8?ky(8Sy5RPsnGcdZe$m zTA-UcKGbF$g=(eM2a{=@-g+|Cy|`Xkn~2g1jBI#AX+FJ5vwr?q$o${=O?RI-(+DGh zg$Dhls$xq1c8JfE36?Qlp$@GCWs)0VDar*(Ta8*(_sfMVKTHR0xy&$q(0O)CNURvs z*_g-ZaJEw1U==4Mhn~wsJ8oNXls(>&1dDdad@VH&r(+jBg1yEbzOeMUZOAj~RB)c% zuq4j|fl?S_0 ztc7$oW(v&oV~yLrb%DvZ1KObT(2=tD28k$JkvI{y8!<@_N$mS2XF<#*Z zmfQ;lCwcNVVL@`-D}11Qrb+{*9VwB34fzG5t<*w))yi%4QvCmPzS z%#$0I(BxdIrh=v9aq(bFl*ed_JQ-+pqPAYWYR6NsC;W@GGeL9EhN19T1t?g>h}4p2 zT5i;H^kSVzGFy`AbosuS_x>ldWDfy@QRrb4WFZ_Mn4zDVBb_T{DoA2%f;?AU4GD{0 z;2#(XIjy(@OuBJ=1wKzS1M?O{L223ZCyc=)dZAo@Gq=7w|A<7xut@ZPZc%G`mA(RW zPAwbEFqqxrbAMq{Hq|LNfb2Md@r<^obUJ2INm9@wkLd zi>PCP3#^zk@Q${D+NVQ7?wK?uCV03&<>uCvM)o9qf}9UoYnlC=gsABm;@HoXKK=pJ zVj!+`HuOeyh0eMbioA@jH|Ud7S_}d`(4P@)fF+8b@!nP$U^ZAES~HYKy?{xd zv^kCco_wIu2)6g&$~IEb-ju%2HRMptl~L6L&hEakIdc>}-HfmSk{l%_g2ls^4O zTq)L(LEY;>u>v0Tw7*z4`kh>_H4K={8rW;IMD{FxsaW=lTbhZfUcv$VVh@fedaKJEL~SoVU0XM+(c~>V>hu zJnxk7rjalXAOu%2PSl|q{epdiX@@w774ZU7EhJAkBg5dde4sYko|=2Y7vLi>zMo)4 zawPt>l7ctHCdQHJ6tL*)T&T`QG7w}OA2<7xy>f4NP*D{4#IZdT1=Nv z>TORkCeL0d5NjAQH@{)g#@s-(z^#R7&PU^^gQ|hZ!xMeNXe1hDO-^3Y)mJEwe?N{b zzxOGOWJBw$bl{(0h4j!a$CZU!sPlsc%wehW5Ews-Dwa67S#P&z)rZ-#vx%C1xMCS# zzTa9XP_UruhU%{lG%+S={1O~E^n&o$jJY1n5Ic*om zj;Nqcvzxv!)@?HT@z|k_L>Adx+q1!jC#qb1Y6$`=l2<+hBrOZZ#F>ITjdAB@&hq{pZ2nc!N|jj-)ilYr=oW zL3p*4-sHB@6*|Qrl4U%eWLeff^64C4j$h4 z4RfHH5fP&Ol38Z#^(0aC6AtQM^X4 zGhxoBQeNcbCIYj$_Z57N>WsO0f?L!QmSSZ6Hc3|xE6ujp+C3{4B&RriWCrG~u%vvR zSUMCXPg7+FJsX`pE=X?SjUf*|qY@BygVrKYbD%;8Q{$_XY%^Q8kY`+S!xigjIGEnH zhbked!$IfoHB+Ciq-J+haqZJPM;^XMeFtM0ewAht@%R-ODdt}5A$}l7Cys)Te;7S){R!9jFZw%STw?Ku^>C<8xH!SX!BgT`a(y@W+v$D z7rpv#$l?B4zp@v&TN(`)_f4Z`9;--TS{lW95y9I8{>5-y-&dqEM^I>GyB(b6-;njr10Jx(LKkihSrl_VmqiQh z)NWE<sWa`!_}Euwf| z#U4Ng1ixXqt|Sd|UFVu4c2V2mYs;kTht?gA<=!?IlI0)EsEz1FK1!_dUwvlcr52sb|aDj;09HdXz zTB)tH_kfJTCyY+Cc~^PB>`9=C)3=5^{6kXnvz-*bq|srJ-ODsu>isT}q8i=rUj!xd z)wP4-a8%^sUx2##@%(~QsT#h0j>QM%6}D#bPxEJL?w6G>)Tfs-$cR3w^Qkl=#m3)W zwr%E9tb41xr(Y|>x(OBrEc2A@=Mb^E=frGGAufm~sAig{F4hMT5o5aj+lw zl8D(iC9GV#+?*!h2Md-Da~hD>okU?!i%YH-xZ|_~ba`VsHw$42S^`4*ML`Sqs@jcM^ zKZ9L5S@*!TM5sKT3A=;#Da>}U&-0em{C3b0b8~N;O~n;6H_&$wk*y1V@Q59i@l7g= z$UhF1hZf=$`pk!ECYa})dEp3gB1mvK%$kCj_Sl0JF(AiUCeRLp&9l$U;LT#&Z9o@U_T#ZnZiv<3N2 zyV_6cncOlGJIzop;3^4Aor4dMoIaM4QH=Shwwn9>sK`F7Rs_*_?Fda_i@9}=Hey($3kcOqoWzzU8ZYh?#2j0>Qya$EO*)xD$Vs-;f{osJ4+#_ZUd->Dr4ejLq3-U^F|vu(g$a6o-n+6BogucVmz z*lM59CplI{<7VWWX+A3QaDf}Eb6-;$07a*Rf4^T!4}G*Pb7V!d5)lvjeI!pn2*Mj@zF8{%uo(=TcOy6cjK|jY zuox(DbBrHX_lMN(A~xvPg^0s$l_$eOXK$0*Ky(gykuyxL!1}oq?U(w2MUO3*Pw@sh z2jx0Cjle-MhM9*1`9QwHpN9!kaT4gKE5%Sefw_uAK++)U(;Jk$$iIrZ2Hgp>qn@ph zzCqcZjj486w7}@;6N)|&_DL|eFkXSmcEO264v`0U>t*G5uo(H*h{pe9^Rpt$Cl)=H^k{5aj*2|I1$7^> zqsBCzU0+#cZ`G?3yAl>X(`+(g_oaf_(u~>81hcTjba%|Q$!vTJ^QQP6UwQam?Q`Wq z_EtBF@9-FJ_)0ONzK6JA(d61E_oI#=;#5;Hu#K=@>-fD7@9ygGWcqzG% ztC%hG(wrN3OI2!)#puHetE&xjmm8PyO0G6Sl;gy3zh7`R0cQ6?V6Y4Fv=nYwplWd0 zrwPRzhtMPKFf`J)u=%a(#C+*HRUR*N_a;#oH-OGiUG0tc1Nwwn zf-B~u^YE-Ry4xdYGy@-~Pw&{TN=K^K*~Io*1uIgN^=P;MY8h*vTA1s1Bv7S2!90Gi zScrqBS!x;o|*|!12 z#6Wr)>uZ+EF^XGX$=eceaO7RkMkfRaQ0wLtuCuyj!?WqOt&qd?;`8&eQFudpErz=# z6!NOdDnZ$I00olZ^{evRA9csS}D6x@$pLK}}J|jZ$%2afkSykt}PU;o#DVFuKLje@>Mp=uW zVt(yK4ar`k7#umNvcE@S`H7R*&7!PiOtoS4SgyS&Hr zZ&UsT(?awQjc$wwHcC@2i%g0p3nW=nU!7^qH=5C^oEg&Hrb4oo!UsJy2UjX<8Kdeh zp`bDpH>jg)^_yo`86lB&zDJ|5u}KUi^95TZq1TkFFI~2Ms-w%0x8$;)gMK}$6f>Y4 zkbA3R+y~rq(FF1rOhLs0d9I{$u}$TVsPBf7=x*KI=vaTL*?Kkr;)Pk$(Np=BFgVS+ z0dUJG8>Hc!Km!!l2HQa1idU*73?;#2ZEjQe6lU!^-D{q=6&A}Drw?t^HuJ&3yo1i0a zW#1P4T|(hYs^*gUXrLiCxfb<4{UwJwSRHeKN5O(`bxzsC56mCAPCbCU8Pgc8JhI-7yrZDh1oUoH0pu(s=@Al3Sy#iaXi-|z9OIBP?+prS`IZq9 z_l7b41L+&M|MNY>M0-i$=ou2%1!~=g53ns}1C-ax$D{|qUB9x~?b8^q1mr(&z)C2p z$-teKgBHjTsxJZX8|B>|DJrfl7HfXZv93PNst&sfPpw@qe z<4XWO4`ZG#UD+YtwsccCmkTqO6neKY@`av2elL8%*#P9t2#Kt)D4cRxpkS_tcKDCB z+1}R40L923^++@Wo+?Q%lYvFG_Hct-7T~7$06cKOwj3(vF&LC?b8(9sqk(q;`9tArr*Pq@iD|qt{=?)akT3ZJhrZX16T;ltpru z;BJ2?Eas;ng&&jL0Jv+6>W1k+C@c-ppd)#Vh;_QI1|V4#rsknu9|eqctc&Jz?HAw_`nr0q5bSp`)jj(uSjf9*(?DqH{%^LN83g1(0_aNLC(D=B;G^CCd!hu}u>o`9opxIvIe-RcpMfjZw=A zBoAsG7@)AYXpT{JPJ~42Vi;WEx3ce`vg(99yhU`&hB>422LjofukbnU{^UGhB|g##-)t?L+7k`+i^ z>$(lfBq~Ofj7Z88wOX7 zu57IbP>oRZg`+lA$}zVemL)L*N==%BD{TG%INoM)zmN!MDy|_UvNfw)lNH|OCcwR= zU$|*cXh93mE`LGpaa;>BPM|q-01{2yBLG4y_g(MazElRp+t$We8sY~4`SXzZEAph- zVV&l@YAJPm{SxSYCC~t4{I-JUTu99?v;j&lbpEU{vH=Qxv;9WhCJBDecp3KLUe5yv z$pt`?Qgg(O8bceS(4P~ij`A>&ft}uAg9lVCDg2%=*9(#&uaolE5|XX>14?wrl$+u; zm?fX*l=rxm#v5wAOTb;E)Wk$d{rY7=3Tr|UvLztxI>vB!4Ju?lEDm)!N~^ysm<> z^Z@dgHb8-NC`JSKVxZ`-YJD1plG)0?gk6a6Fu}o!{&e+a0Vs2;Y=a8PTj2{mGNKfI z_5ku1!ve_)-wTFw0(m9h!fOJ}nWRjByL_8?Zvk-l-B#Jrybof==X*n|m#UnnNov}` zs_+3o{;R87)HFt;LGF4fa9Xzm( zVlGNdV^lAVf15wU1fd%~k_{^xpp5Y}O%Qs#J{dmLnj_s;d7HWGjwvY1f5>Gq0Qn1( z2RzWxY|dPqj801{;~wbCu(LpVoLnBGt3~Bc!q?HpO_Bg@zZUfRtDoX-r`h{-aS; zn@XTbEFUW%({6IGem&;eweFNNH2%=AHieu4$rF?Wodz2>&%-2_!tzkU$XjSMxM#r4 zOG~PDeV%@g9LnV37nDdX@|KsJZ`|+qLdv?7D5kk;T@j)^HV#gTDkx~9f+FbA@v?-X zTNXA|?ggmISz8|JTAC$#uRwzdpV{=zq)UFeR!6p{I;BJ+w%^PqOx$* zs#ipIk0C=rPgT$S@`NzB`$hx6NYIK{mP+5N>}O~9r@K$BQI0aS#1Dw7c%jrHwX(qK zpg2|_IjPhGpqy}R@#3|b`>qO)wNE&X9}<^sL3?UEaL7064~vr`V{i7bx5Xp{atDu) zii83j3I;v|5@)R_Xf#~uV|03Y0!qqKx=$73?^x$>x(z+g?dLk>5IuEZTj2Lbf#EjT zB||Q;0+P3YIJ8=!Y>hGj5fj$ELkL6h7(v%LJlP>p9;xY<3eN@h$$q8VanFyCGVk%Z zL=Oo{amTHj5jyvIDTDi3+UTxVNbpqU+*42T@pT(G-03eUIuhNnGlY3Q#0a&1iPRz= za)RRP)ZUU8`%C5$nnxQU2iP0WHWq~8E)I{s@+RTE1qF$=bT^&tZHIpj+0Ok&ao#>$SBAOU1WJT>NVBa)$%PM4wTHun3^&-V(fyg`%FCm=n^M&kH101alh;5+_H zu3RhD^!tAb6Vw$#dHE7v^)EX(312@!#=ak3+9$0Y=&=}@Ad|}X3MIm&kpQ`N5N5t~ z(o%*~D}~&h8q-2tmYh#bU8Dcr$g;qG(Dt}=vO?$a^5 z^ADua5c z|Ar8c6|ysjesU+5f^?pphWFb@VdSeR(tBkAg%_d}(g%^dV}&C7tKFBvn^)aW<*`M` z9^@?3X-iqp2K87%b59|Z%^_!Z`L5$Zc6oZ3p;mYL6Dfe^-l>6x&HI!Ax8(aVJp=A@ zGS2h$uc)=*Lg!#o8P=Fb^4U70(1q%sQ$Vx@kY7?783Md$)N{L!^FS}>2K*R5) z0GhE=LkV$s2@d?iUxk8`VO{k(Tl}XBd3dqMkd4GxRS5%$O|LqHjEq5*NLj0J znGb;ORmUJz%2N2qC?%BLfdUc#Of%SHNcm7nt4*O#73%I8P;4rJU$m!iXP}{=LOeIeg@#k-bTcQcRo?Ov@}~-XO#B(m{?L~hSuksb5<0gI-))4ldr`BM z6L-|jSf2Q)ZmTUGDD-JY<`9n^_D~>g+DyGs1J;GMw9xKrsP#TP0oenGc%!;mN8;gk|p2mbrwK z?^8= z9U_Oo$A~#^@z+vL_d~Eqt!%(}l?S@$tbe`gqA&lNf&zUfgT*=r4(<#Ea0}RD-NL<; zc&tDjj0KQA4la4Arm_~OK8DOcFv?2-$*~06ltOgj`$d^_PA-nTu zd4%Zt1ZMDMmUVnH7ET-{$fl*uYApxiJ7rwx6lwCXfM15)FoJ zF{%Pt54u{JL(8UoqI^45!;obKTLa|$W`^;_6v_bzK*|Vt6WMIzp--Cv-ptH5_6Rg+ z$c8?doB=evTLE-slL&d(v_kgfr!YeagQph3r)0d##pXIjG0C-lO|+LX*H@$|gnz7o@26G<2cxrmauzt$VXGiw{|1rGoDPZxW$vzKpz&eyTaN>e}=pZ+(>#`t(!k zy8E6nx@Abky)3&cDV_*@x)Nyku1je*tisO|m*EVIDz*NOK*Nn@qmvnM}0GbbwHyLxNzU=n0 zHHuDI^Y(DZ)=vf&YRVeQv38-nH(9`Ng0FT!_cfz13g0CQrAj^ zayYEWC&9h7%1w~&K6RQW^$55bNowIg3lDqqAgK&_@{jDd#lia$_b3lYY)O-cT1bWh-) zYco_M2bVUBwa(BdlQR;`gDFN6Hp<};qQePv29Wn_j~<#&;#e&!%*8v#dfgzAfyz!EoDHq@QID$ol!`$B{{Sj`1k3loM+<-S*7^u29VZh zQ`S{bIsrJ6DUaM&gDjF_-a+Ipq@OliGEaHm5h~}-vk+KQ`S{; zn-41I)tvGJp<1I)n*dF%dVhe%rf0zMH~9tMwm2aT_hFXJHuuR^Pd#x7^7h=ARpSZC zZz-QpZo$f0zjEYT)FI5Ssj;^k#f!x`2=jY2$afRdZ;0?%%3wjBG*g7lt89CS_lW}y zZ$8hVi=i{`py-hJyfvO!CJTKsIYSTby$fSVW*IA+eqy8eX1ZHK0!5eU44~o7Fq*Ki zbOwuL=mHI<2Q1yOLSd0UZ8jPDWO56j!E9e}M5^wU0Y`Jb(9S8f^nfz`RG%S{=r|sc z2xu^4Ax9iOiNw}Evy9wjJ&1g z3ANrPzOZ$WP37F+tET*kK*R5JDhu5w{wRb|Z8jibHTBjS<`rxSQNZ2#O>IxDC!{*z z(W{2)luecHeRBI9{c;MPpr1a3(bWgB@-!`F-P0V1_C)v#Li?C)joDM}lV82aJAj{( z4+ruu$u}K*{3Jol(PV#`o-}EBTXPpWX#B z9h`sbo5;vL9@uQWl0VC{#dqZ^frcBs5;nv5&6E`Xlo4o|=RH*&I{1F}S|hAEM4Q~s z;1jV=pO^v3{Q+3br%#mm&27+6kAH`Z6g@tnnKL_4J4-U8##fUO)=by7uBM9Io6LsL z#z!b@=?CBsY!ubjq~xc+6I!PjAgfH=%5IN9gH4#%@#jL5@UK1*(m}goYd^lBZs)NA z6+m*YevJ=ra4T2sCqti1&hVGkJA+mreitAaXWt`|D&7JLf3d|`P1-Cn9xIT)Ia|tx z4vVR8AW6`~|CC>)68R?4Y_PKz654`{bb_(O0Lz&?l2KAm6lokc1zE zhugO!(MlgNz5QSKqbP1-d280!9-ZgL+!1HhJiS6y%UmOx~#? z3k?g2RzMbcgkl1fNBu-?NoL9%l+QI(*1J5FxNqMY5g9;1Q5#v?zVhdK^PvCm$ ze^acGE8r{8aIAJn^WGS9W3?1UGmK7c5C`o@T%pJ@e&&_Y-wbP#x@whcEoXOL)=|8` ztgl2FwN?&(1KYuW66$|bF`ntK^Iz@n`T*brq43MG)_}uic&G%HqoqatS9#vZSEDbSX|yvAXhaq~KmF zYlS&{wZHj%{k%4f|J~&9`su=S#_O1sJbPfk`0@d=AurX8j56SrIlnkUHVn{D? zKpx3h0ojyWpHxepa;Q~;OpTWUIgs0u=+2<%cISPW0$2~R2HO|p=?UnQVyJAIAZODl z)M}bT8(pzaY`&C%OrL<(eL$JSQ0i;`FT!g6Sk8BPqaG8=0b_V!;$y|hSoLD}@ai2v$bvex4(uzteNH5beWC3Y~F0}d7pjW3)TWZyVx8z`- zwyt}Y_lw6AlItVn!IoyJPpuswsU0h18r=9afrd{qw<@CN%c|B8@|)?H`x6Y z-=6$2{-?$Qj7Q9&AoS_oA=4(qyRis`T19G~t^^uf`Ar(dtJTm`PUqnWF*+b?n zOpPk%EzV*0dblo`w8 z;RIPo(grCVG}bmufk-4T<7hqkRoJH^Mij(D&F>XhnL_6>^3^D$`OflEEkK%oWH`^P zs+I51D5^XFtJ<^qjbte>F0@IY(#9>lOIph22!-#1N-SaAY@Rn=lj<7SEiHtuep{Y? zU|B1a48D8UyYmWHmcXs3FD1N0zT2OLq{^eUkr7-%;mzOW0o}{XjN}Z&t$1ivtOP@? z7eQVMwpqj9TKS8z%~>mwki!hb2My)YZ+n4KwKYP%vUa8Q)0QF(Ee~5v@UIL=dtS;O zrnY+lWDVK>IPX=Tp?`%ccrBAcpVmNq5}!j6mf9y_f#oo3)}*xxmSHI>d5Q0WyU{^+|0HWFq4H8S72rP*JhLuq zx>$i4M5J!4}6>_8=pVoBP>q7G=!WL(m{61bYq{U0HX6>NCxP=aj#_PnZNaP+m|c97B*fhph%S;~)U3a#$uO+Z$g zTB7%bSg^_$l{bZKlvOo%5_!Jr+=Z$3iGto7NeP98ot*P&W0XthQh)~G=!=iQPZ8W_ z;%i-{gen-dcFUmBC*^y!i(z0X$L=FUkp!GXP-`EISXCy$f{I@PeY%U3Zi#yUq}L12 zdq-c}J;%_536Rf%eflI5WEH}ya;VjwO_mb!Esz6?-W53_qPWVSQ5FVcgbt7_%&i`m zmBZDpw|D~^SK56oEkgFB<0X1v$TlShyD#%mSWK6>sw^zV#U67bnbck{UI}3qbcfm} zz7js$pc}n+g`BSw#zT$A+J&O>sR9ibv1k|Q)RX|ta5C0DeKr;#Aw{u?1NUjuRz>Y` zP@fQr>ahZKWnuN{7QiOUI^NE}${gmkPwMq4-!u4}LjLdam-LjhjzEK%4q7FF54CCS zPI#|65QX~`R>=80ora%TT@mta;5T^!x*JCWWZI0cma$J)n+#S{{#Gi# zh=C$xv94(cx^Ea^xY`(6Gy@vG7)BEojz&Yy1}L@!O$N9&B4qERkh5v+Q*dV?JGuhq zw`lX4-UWAqBK`|Q-UK=DTUh$(2LP%ZC|V*X(6A|AY#1PKLSpeyb2hM0P8e|+A@70Q ze9jd<$vWNwsD?K0p-&GB8IVl*%oK#R-a^ksz6tjL8s6*-c$2);KeR?sj2W^Et2_;Z z5##Sg7HyqY$jbLxL%s_9UigS{giK=by+S$D1{Kxd`x=Yx!T4%_K0_|QH6D93 z-C$h}eKI+t3hmiz{js-9f7nJAS*_7DlaxLkF_a+0NvSWSi!ZdkN|Dk967FTpEkagpSq15c2{Nl_ z_2=s6mXUPXS!*b)(kJD6ooHD{)yl0?V?|3vgsi`eBb~*@AW#Qn5r)imdiI`PF8e7- zOy+!*U$6YvDg`G+?UP8WFO)z8=q7wkXn+5E?YL^)>j$z{J@(kWv_8H2lmkUoQfTGC zCe8XXsJxi&x)IlDMQh0UT@sRct0H>Z9h)P#Wx%dNJ}0`Li2Y=`@Ks9a)2$=LZ#w9_ zSA~9ZHK20_s<=?d)+nvkA1Yve6WS!u@X4Y0_w=nR=YxGq{55_^4=fXJ>Di7`=XFHC zTVqJYE$1%=NM;D$lk?y2e2JS`(>^n33$^~Y%0IHD3}$V6)??^gD1Ns(EHgeaA3AFa z)gp8*hovBG!fqLmVM|LHXisaP+NV8^InZ;9vbk_wxBS3;UZiN2TR)jDwZ2)wadbU& z8?kB%b+b0!>go#JRhG=}R^El*tnCkc3iDN#oT0FX+1fcoD6X~M8Sw7E(KfyrbejNG zISycJuv`2i;jeZTgb~W-wf_)?;Cc3i-KBwm)w0q^vF~-evIC$H=0P-FXx2H zkgWoYRS2#pQEEa|k?jfOG`czkPgQC3z|t*bkGey0?@C_rBm^&&t2-jaTiXE0ONHJ9 zN54--S0ith>@BSz3?07_dWEQWS}-xzav;dAWN(v1Zi~?ikT*Y^e*OWMX;?>JMB8v) z!k1TnyLHdo1ZXj%&z!*Kbl^>jnKOuFw1vuhv?&DhGhK9&{~0o5{W{L2Sl|p^YRHq^ z#bC&mnD?BKz`h-hi+i7Ak}O}-(6TAroFr&Czaihk~4UI zo9nV1b(=!c8`2etZ14?KR4%D2y&@^xHnWb4p@MHi7J_U=x$;zWUtIhPwf;8m>nsXw!eJ)t0lkvO>q}T;B`s()QY`IPKS;c@c zJ_5;U$|H1%R3Dh!qVXlw=;Z*YSj&`ZM6o7j=QZadgpj4H%AW#!%@7LO10m~skfRu7C!pd~ z{yydvo1MV+sY=8p99&kTm_0p5`NOu@uhq#KGI z7YGAUrhkYfPszbxlBgF57Fr|l%PU9l%5uh-wtFJ0O}}8T2%b(7L-vBV8wkpgdWT-Gs;n7(hd{F`$%T;IYnH9jGB6o(pUE-c^q)v~={b>w zTD)@ppSceEpYfkb6PBaOXJrhAOO2y9 z7M*Nul8XvxyCxL*w5(w>8=9Xsz~R&K4J@?)gbr7tqsoOI4ey#B=m*2s#pa2jIVT)5Nlqk}Gx6wk4TxYk zO?A#OErgOKJm)|ML`m+yRHTTUK0$OKM|qDj^D<-r&zFp&N6@8powKxWaFVIVDQ6ET z7n+Rcw}fPmD%V>n&cC}(^ef9}nuFn^f{9U;203wo7~fK|2QZ*M17EagM5;!=-lnd3 z9p_I=5_x7|tpex@h0Q^AC#{kNr4&oya~HLPfs%kKuDk?kAifS4W(#OJonmQzP3f-A8ok@~f$pb@V6N6zn?!bOchY zFQ=pIwm=9f9&|9d=OA0;O^_-`4SXRa3oNy)e1T||VvKUYY?h@mfNKzy=SG@Uu>$qZ zFMw2)q=42KtMr>?GkTC}7(MOFOX?H;-LJr)-C7hQl53)P#6z?nj|U8zgJI>n`Lzc1 z@>Z_XMFjhpT<;N1>w>^i&C3~WHVH7q*!oH}EM|NGM-wpai|k7MEI}QB5I!=Bkygs9 z@Q?OlnezmQgfM0!*_^>}$>bh#r7s{od#yhZB`2G71cC$3OhNDqfu*!^qroHr&Vu9y zb0We3lrQ?FRWq6;Gez0wVu(t{xKF*9%4_kQ6GcFuj=xmu{aW42Nb)qujNbS~8BC04 z>juxc_`z_Iq=Ho*16_OR=Z%)DT-gH2NmNq&YS+JhtcNc3#iqSN7)JjV0-(K^tv~E@ zDX_h85OmQ)!Re6npAz-d$wXr0A(DH@^0)hf+XUDQKXbIO4iDRUn$%*zbS5TlaQI6t%e zYB^eG>OmPgvY$8QIZ9XQJ|PTO(qkXAK76I`NtESK1ueQMC+#rr-%-ov%%Ba)UDBH{ zY?M!!$i?z}JPa;K>9}Ay)mq2Mc8w6EV;sHcl|}NvAM5CMl>Trc7YB&K?PoV5Ov=1$ z<+7X^jO!@I_n9UoxJ}ZdXC;E`Q#Qxge7jXHnn(z&3zPB7HQ{$KACwFjxT!wDr~9pwtJm3sC12?YiMm9=gMg0t{i}!y1l{CFCfq7eSD=VV{Ql_)U|RZzP+&l&P*f zBobZ6deOds&A?zmw2^&Rz*0*-{xw@qfmA2e%7c>E7^`(-Czr{Pt1O!dTGp`LKMy|i zjcf#3U8m_2&p^9-5j$2#6|S#Sm4;LrO_LWSuRg;^>dCW%X0dY3f>! zLDDMlvVhgC#au%;WO5*;i?+jRm; zNshOGBEZ^(f#_s}-KNRp9>ai z!AUPq_@dVHoNqUDr{JG|##4?U=NP~tQ5FWX=j?JR)d-HiD<``R+-6j2|BN#viHjI>ruY-HA^FJ= zR*{u{xZHlGnT)1}V3`?B2$0vyavS~k%31QWNR=)u+a#aH9xoXT*$W;f`3z}$8cY<6 z$^g#g8%Y+vFa!_}c~KaCCLU)9KR^du5Js;FGz61&EwS6$yxwkGD?g{NI$aV?8I&hr zOWe`q0nQUsrb7;01MRvAN3X+i^pN&W z5&3{Uk(=f6J&3AxAiRFD?b?a?S**&6wtCXpZY;+BvV=)3Z?#2%Dm1Sq6O+3kA^lR0V+RJ#_ARV0$qzJ(^oj~@C z)68p>J+~qd>JYm#q$+A2p=&~~{S9nO4}in9L`ilNNZ(aB`mF}5_A2zluK?meH?hsyC zAds?+lBsDyig-99=VUxz04U~Xs&=Ug;R2$HqwiCG!Do^?BE|-})EVV177P3^!tjN0 z)v*)`z)0d9rF!%#AI?Iun?O3|4d`CF0wEj`?ovfgp&12O-Yji>V9IBMS0Xs&I{HSZ zi1DN}`fJHcwr_k5?gDbD0*1v_Vaen)r3@M($hU0r=im@1gh z$mg2KL%nLX{3Qhl;ViOe0L!)4X;OJ=I1PoVg8P|5XpoL7@(oXB^r8a}xaXEogjADR zQ%)!;CT9F$Jj+3|Nz)lIre$eOjsnjYkYCUdL=BRqmo(BsPQ`K|7#id(w40zeN>xd3 zjsT}BoUW8^UCApRwJys6j4*nsUPoV5u7j`Tc55a1P(ii<ioaw?vy z5bOz3LAC+-p~%jaarB$y70-$dav>22WS^BD12EFoj?#TQFXi4%pcuvI{Yr97IO{s~ z%*uy?PCn|jI0$m4U!H;o1vf|$dwY5C_7?)zRUTRH-P1ha4D5GVEAAVrfQ3q9-YHTUOi{#OmM=^NM{ z76>NQp_QZ{MS(&#M5;r==&8yP=pe=h9iq9Q+!GbN_F3>8%2W87^^+Hy<)uSUdL~dEAq&#jG#`t!QPJ&Gvzx1tF&H}YMY z)9CjWEeOL#yCaZc`Gx*l3G}>(wqT}>u1o5>T$*XCxFfJ^E!llVi1A5Tmc1Xoh}=uB zF@EIoLefI6?-+Zon?_pvOUg?_xNqjo2rOHXd%uuL)85hwO5cf_*P$td9%&P>Y-MAN zN;WjBQ?NUN>`ISO8bzR$Z?i0$$#xCsHj~{O_@PO6IRw`?*=Gi6ZRH*l*=v_6cujg3 zCa0Ji&ZH_4f+sMw6YL+BDmFY0ylXC`it=MqEqT|v}stlu#- zt-S2Jg8@OVM|6v%4e0hj8_*R=9neGnFGs#1$YYON{XIe_Ps+8n3%>Q{62^yuM3+6R zkIP>)eJAzZff-n|@ce?(6{umHd#YFV&??vT?*OEc&T~bD4!D_srCUPSB(GS7%OYp4 z-7uHs=%m2;Vr<`%tTI~eo8=oa@Ry(Ww51RTA}H2}*SR)z*Si<;sE zP78&(L8{0$fV^M@PY2}BRHB{b14FC`7Fa%XCD{s|M3pb1{MfYc86b`C>I{7$=`wMn z2=E79c{+ns+=qT#YBkvl0Lv3^l*WI0I~OfSbt8&?tAIkPSQL&_>Q4Oi8P@{@#-5&= zo2)fcXYVq&0lzTju{GJa#y zV0B490Y0}%u@;W$lHiIVy+Gj$Qdr}=gu-XE^LG5X0ua zSfGTb$YHEmC~4LGn~kANMy*U>SMlkGmJ_uIW~~F%zI9!pWWc^LhcSJk%s-(Bl{@)f z%cT6=b5-fK-e;w30k}=>60!mK@LwPs(pA2J1d3J|Z*Ku9g*W9;(|1vd)SN@9tBk)q%bJ1t3HQA~p`epj zA`%L4gPe_4nbwM0SJEsRYynic4Nu{qHGc}^z%RHU$p!~8Y%;-LIO7;-5?dqWV+;Ug zXmw1GX=@pb$$%^^Dns5Gmqj=Ok^t}Z76!;<)N&|_j9&-H<4wZqnB2}4imo_cnO`;E zOxNd2KekVydz~%ighnvu@P(_jGQu>bPF}GFii+D2vZ}I)Mlfp)ZB`gUVI$dpWfu-K zspts_{wgEI7ksTi(+0r5!4sGkKqWmE@Qe}eb6M~6rj>WY`1|zlnm;9=pYWgGhx|fn zxcV}v9R5qx>TUUm5SA4_C4}@sYcy#0V52nRP%w0?FLfy-MNb7T=-aK=A|(tKKvN)P zj|gce-cVlsn<7O;JAJ=PKM$ zuq#1YoNGu|2p#g{9Rv6FUM?BO#Fz4owK_jqzsP(kcMho&zk9o^=>?-_ghbA_us9Y# zcCNe*&h`W?dZ|uB8`u%v$rVNe{f)t-Sr_y4*8uo8_~)Q+!-g;>BY%BNuhp(o=#s+D za^>_fxfZO|x$>E|zX6yJsV{rS2(&JXT4qh+6goz5@jI7il|s(H2bvTR@)>Ay@Z}t} zhQX5JJAlCxT4ZB+#C{-aG}1@tN@Ok_Yvn6$DI0dvB}>onU9v$A(?+#ALgZImwrTSR z?To(n+?i{L8`|DaF6*#!L3m@3E{Gre7ukQ;bjcYGX0o+PH#nDV@*nF9At|IVyvdv$ z_zX0?Kzs|84YquNW&q1HrVRyL_xG^R?&{AoxAYg0I_8}z5OrEZ?5(>8r0DEvtKGf! z%q}&=9n*&JJH&2Ezx04WRfNn&q`A&NN{knA3(GOro3+Vs8$;4)yXeMi1YYh#U?(l|r+q#&&! zExkg50=UWY_d%^PMzt=OGlnv4EuTzCr{u>g@R@K-KO@+Pq5(hN zfqkOrb}crPo%)@dZ zb8alcfcXQ+YxWOCp@jHHz(z37f0>Zks6~Y~rVR%Dl~=qC7Ix-1Gyh!eH2o>_E=ciO zZeh7%`>=2;fSc%!yu;j zI>gEdDYGdi3S-)=8f>?hSpgv`to~aOmSIDRI2yV#-z*^A)et7ZP9l$weG^X)+nU#waP}K3wZ!DWMO)(K$Aj6 zqW8oXQ9f6oX@d!By%>TeZF7#YJpBJX0lrX1TlDg6Ovw-Izm^{nE(bv41T`D9|%3N%BWoNq`Qf35mz!zla)w;2S>eR@_Pivu_hU|l2)LhopI`=tDXDWf5;0ukKPi+ltG2*Zo z>bILQ^`^|I*(fS}!wF{85qrvg1)3CC!m4xy_>hm+DmUn)YLRK9sjrYd^I9EggXw4F z$?w3l3~fx;yzE%$I8uZX*ySIMVn&L`LG+`*?E{?i0m#Z(qiEQHj6Q{Yh?a`NH`2}K zK6driRq89yQ2Y-*_IkhXwd`e5yeL39M586d@IdNrWQn<}%U`Ob6=*sEYcz@*)Y4{= z%6%Lvpk>D6%|Md@U#3=lic~3M8dhc;lUt(+vdJ+(e(^OffEyw?R&LuMjQglIgEb*V zUP-uWg%Xwud6O0$ha8&o)W{KVakMu#m&TV|Lfg2N$}SP&j^DT}kloW-FYufhkUHio zUINi89~S^k8{xkk?{o9z?431-@#gl=2033!Sx@)>yr0%d4iw)hT+qEBKQ`k~b}k|1 z&H(4#T6wteE0hp-UVFaJo3!N)SxiP`2Km~fj8L@uumuax|HG-sEaE(mNwgwMZq@cr z-(Uzi?otru%_7u5aZ}o9+OPuhChzIiSALDj?^H^ZqT3A=(R&$iaH0v=7{{AoL7ikR z;NM!IYtA7Rg^b>6-g3~s|88j_V>;&S2$3E08Xa3I-j0F1ojliJqs)e~*+$u<-P zc}9ZW4~4WSz!_vMSEz)xD4_p|8j_^W=L-TqSZOVcP)zOxDJrr|nqq;09oNON(Imtr zL<7KKCpJVFPV{A`+ks5t&&6p_<`ZBYlTx#mFIe3q<}A-O$E_P786_B;)@-yr4!RA? zkRW;YUc!y>fu_ZmpKQ`P2*L+Xpj$9V&l)4LMY014qKPJL1=WmQ)=VQ zxsItN7uoHy8#Dvb3*nglDplQ-d&UfnU-1s5u4KYK$z%F?02?GI55v6Q{LdE3&A37~ zvS7)nuRud+i}Ti$*PruR$JB{q<(ystMnD@_2$1QbXcFuW=!W!??4gqagZ1a_nr}^-hJNPsnyzh z=XU z>iD-t1a34Yey{f#^5!{IgyQP&*k^2aHomPX8)iUy#R@pRA|KMDQGA8xa%z!$j`&># z;tWywCsi-tlQwCoILAQI*?0eQw^ioOZD=p{8huIv*=b}Qt4}i2@-9R9CXhIwFI*3Fhep&+F;w~PCGfY`910B zqN2z{E0DYnj2B3Gzcr8P2LUA%-Z%sHH{bdSGzsL_3N*K3CcHB zeGZpEWCWVD&+u9%QYsKp$ANtG1$6jay$K zbBNW}-p@Ds8%$5~v$SI6z=j;+E7WBrZpEEX@PHQI62DY`C+s_4AbXdq<+Z*8t-c2N znd)AE@_JDIqf8+W0(YrZDr=oUJ{R6g4m4?_uRxX8dETV}n#~~_U|Ezh6mHHqrZegJ z1RpBg%1!ATX*!X;tubo_oHu}C&AvjBCv})GZXJ8u=m(OQsxvyvFVc!Rv=@?@X5ojA z|9Co%sjqB-@&5qapa6>AAm5OtF}d**rb#Q58FE(MYgcr);A>>(=50O5AhX-bjSEbv0|uB~W4(z*aYu91Jhj!1NYcc98Y5QJ>(>sv1Hw~9XX+}fCa zFC1w4Q?7Zfn?w37^2P;*pD@3bj*)*TaCsZAq$GP1{unXmpW&hv_>cwTy9BZi6a*=g zRw$v(Luj?r3`1wOq1aWP1?~gf!qUmQbe3V@%?eU<0b<#Sz*R3NWU2>KIpa0QFl-1z zC_fT}!kw<=N7DL{=0?+Qdetpgn|n9=&DaeOwszK7HW8a9*p3kDTGHtJ(T<(<4e}4z z(H_Y&LMlID-XwRAv@a58cBzmY+v4;E1&}(6klFRo^aG^7o-k>hE{Z_{H_Aov16`zt;gGI zkX1>FTf@e9>wW^;Yt1k?+c{}feRbxVF#axCL0&KKsg-x|ta32`2Yv(hXQfH&P}-Pe zX9o4Y!b$5lBtzDmLn5bEt(ijed&>ybsLiY-D=UVKdBe5VGv4|N*)vRX{tQ>ZSDM$d zI4_}AXL6`xg5&*Xj0*fds^5bu%L?zbvBPamc3Pc&P}u_EaxZHvVOfrY)Cb@uUw#;x zH@<;c_<`|H@;*cMB!RnDkjFxqpHZX?kUjs|ux!E(&qqmFTPm|wZQc3`G`#~;)_g9a zKPNkA`0A!5^ro8=+#YSewT9&#@F5z-SE#nV%2hTVh?XG~Bds-Lh3{ak$`WrYlIAvJ zb^^u!hU>Bpm@$+?^PU4gj-55*aYR29z?vzv`WJBq>a4(++-3JI=T#qBZS}#Id55A< zwGI#w%5))p1)6>fuDT#TSw8B2XVx=2MO*$)z_#3(L4JT!woZ8k&qlHPkmT>a0_jNv z)O@bHAs&5&%)Mg#ln)@=w7Wk42bv^meZ~Ozj4{1dpd2VVKLFVd6YW~UQ!6^oETxra zM2H$RN%CHk6eNkPHQXLR+z<*|gFNL+ut}R01{gwP=NV~oj*X$PTME(f7Kr##Y!?%^ zwM5>8A?G*tJb;E^*H){^1avcMv-M;l`EOGFoXeJ-3rr!i^Y>Z?=f@fqWjj$FAS`SR zz;-mQ#A1csv2G&e~i&DlhovDOox5_$|V;hwCDjLOCsN9Om0~fi=Jg|lh zmgl}|q<<3%+{UEYSD+!(4WUG5`BLRF18rDBb51R1=bKz#+%2!wv0&Y}hL)Xmzv9ja zaB}?)q?}(X(DV-a3at4tz@XJPu%L#%ds7&bBxwabu~6UA{h-c>GI|N5(PqmkIY^zl zs<$Ia+-h3yRWR$#taX41+Q!HwM3vX7hq?3}-^||kZlT08WsA_*2#}0$Oh#)xfUaxv zLs>T|E87;7gRoc|G!_k#uH4(#O3!$-U$u?0*~^JfptT-CZc16JNY3FIG`&_RLnwa{ zD_@AWZmlT3|I7O^b>}_|&hjUI|feA z=6%i~lnyJqyi1_^4TayRC$Q67K$sw(@P2>RGX1;)YhwIqayR-6nG~c(tt_!<9aC>8 z>k7iv!-im32C%z$Xoc)~qqP(la**8yFNGB_YTim%lvv{%l{yJ#s-$3}R{Hv_bElQ7H|H62aDxZh7 zDr0=+w8~Aw5onT3Vdev*z2u)%psClq*55(_++a+9j{G4SMSZ#nZ+(RV*gIAqDu>2O7jd8E&`Vai zLna65l-O1N)2b^Y$_Y@q`XT+_k}m5uX!UvTsjqs_ptC+1KQoe(=dF=r4h+T2KmS|+ zPm|`S({kf5Tyq<5F5eJ0Tnjrtg7MN-daXGy3)Np0hOlya!g#0=a)^rjj0tWS1oi@j z(wZMnPEvsC9rtN{^FPG(A+9y?s&nBC^y9#lVJTt$LmkXS)EcX?_8UVK8j7d=U{DV4GII;J=Di zAX}MLjX-Oy$~jPUYV(f>1_K<^ds+fT$i_&G74MC1A5q@renQ|6rf);MkVf$pY7Udg z;TrYckQsH+qvEdZ8+_@11Lg~o`^+#Dgu=pB^_mvSuhm|QB!x-N>%}JClM{NWl%VI5 zahcXKZ&Kk_fJ6DvV8}Ab_oOw@KZ4L5GSU!oUP)Z0L5|#3knd+_f*%r&i49k2UX!d> z^9O`wCEQ8pMfZ0z$oU;WWCMN}$uXV3MZVxQDij|yLSluCFzp0IIE8kZH^T9@6FWX1 z@lBYaTuBK&CmG@fl1s?TPk@CeM1>OCYy>zs)cRB67u1R{7}WZ6;67xPJa@>>Im9bO ze()wOUf=?qe2A}Am&814l}~Bry%j?N z^)ms5I;P&Iwf0)aq=$lDHp#l>oInFmw6UZ>BPc`A<&<+sn$Nlnuq6pBTA|2Jtj7At ztMyg(V_Z-#XJ#$-9NL&{4ww60iC!xdgLMG8JcJ(1;+?Xxh%BC!wko^*c&5+>=Ucen zuXt(va3+EKTEY{`%>uF~E3}MIUil8wuOcY5j>!TtO{dP*$f2>JrXC(c70NwGhb>ZH zeLwimf>M17xvZqmmn_O!q0sb+_#OQF8DE$u1nRJI2CV$Y9bNnV+>wnf`URzLKLEX< z@9XlDzqjsd#s^?;Sou=xuULohtYZr0nenQ~@=@SJW~6w4j6+}n**8x}H-0{mQ0l** zb(Jz~B454G_xU9T$H$rT+Iu{4oI_eC?2Iej%DKbAl z1i(ng%zR7=Gzk^iEk&_P&LQW&ni%ybpijf;_o6e&J7 zHB<4FMwAi;4T@LU6&N)1X=mJMQkt}RMi_5~fRVshCdnujL-~_RFaSZ3m#a1;bW@IE zvRKOoETkKfjk86l)hMs8#F|TEP*f*CpUMJQ9p%cXE^St*!3ULtop;V5ZcKo@$vSLU z5DsDt$>3hrac2V#G&$Okc9|3B)n}Rm8I%y6wu!W}6rK@if-6R-Mr)as9%~f9fi)=} zG6UN56YxWz0L}_H8#J0WfCy=qj1a}T<=IGsyGS9+T8}V7W`#Thg|w&;`zt@KDZD1Z()&uWKQdSR$7*cc)GCQINjCmnklmFm_^X_>0w1%EiCPhcwEQeFN?L`?2c;Q`b!;QON(Lk$ z91|zA)91g;}p^W7M`*3UAupnK_RKiKv z&G$`ns~mV!-F4C>Bcx4Ah#R+5-Z8sG7&^@ObM;S8_v7^YzMgLKM?WY{ZvOe{c9=q2 zC~h6n&i)2>t@0k{=AWo;(9c0>vx|QO9vyT)l)m?Um=k}AxH9B?@U_;r$_02gIf%V8 zsJ+pRH|?Havbg>RzJ=uqA(fsh_jWD)((jjjM%YDO$m}L7A`_IpfiP?asYBvT?)|H) zGNhi_MHl+Dl#nuax-Oe>fsT4e zmyWJf?AAYa{<-f~0PAl1gv_r|rG$74K4v<^vUmdd#l+nGJ;mMT)m5&p_)$AU$ep!# z5Z*1q5OV%aqnGnU>X(O4KKZJ)xBT6*@5~{ehB?h&g!6=_kUO_`y1t=nczq|saB#9m z-u*6r^HZa&Ie%`{G06o*j!odlpEejy_iV4hzSB;R1qV8439)zGckM97V~uasm#`bf z|Ald<2>GBC-qfj&S&oxq1J;h%Srh+-s`G+a-BPT=+ydI z`IDD*>9mb$H!flB4dzb2vD`Xa6Yb`E+PNa6qj9Hed?&5v(`STif9o}c+`F7HxOaJ= z`o=y#V+u4mwGY5AltXl~3flq{!2HiaQ01rS-ge1AfE_7=$8#e8oLN;MnVc+hh+g6kc zOa{J$9`+h`%pn>>GT_D!#qVG79i)smmZbP8Y7QN?S^0r+1KD-*QkIZ~r32&5VnTys z0I{5d1o+s`Yki?5)V~iczHusosC9zIKOrE?;+g#}X2=_)F!Qx!NM)C`ZcH21xd86A zCfbBIlHb`)sB$s3UbGmK!DVDXQcQs+BRfo`moO&&MRTM1p*P4QFC^!qpy}9P%^Q?6 zl`-AIvM7_q9EKuj_iVq=x6-K{o$2-fWHEkfSz6t!Ytz(;48I1cdA87lR->6c-^}Dm zrnrP`BsVr0P)h>@6aWAK2mr6Va6CLc?T43% z0RX-&1^^BK003uYa&2L5FLrNZE_8TwWSPO1^Ck>N_dTZ%iNhD02Fs}sozuKbH+hCx z&CV~@T1Y_tE`shA7_ftlGZTLQE$An&If#HR<~3B0;EM`K!wRmqO>sNFbJp~7eL{=} zDX>6cK`KR*QjQ)gtqn`j$hd9R-nw2u(Za%q7{>Fx@8C+SCn`NM$P6A!>A4NeL(;w@ zo8JmEFhUlhOk{%fL437WXf{7lHte7@y{(S~hsE7u(Af|;qw9&%bS^Qb6| zB-8?mO}>)6ywN>uEDdt@XjSJsYsZ#-9K7^=LGCO{dVWzc!MjKljdESLt7{cTDVDDr zw~l@`UxI5`EWjf*uzIv|>5&Xlju2xGw{0+yfZPsS8$)7&GW4&gp*dHCxC6a;AtZvy8g)P3t7Q3x)`$PHM*vNALCg zW=D&UQ16b%zWXsb#DObVP~1uxHTB*Zi@*!v-N`E$J^y82fg@(#U05K_x<{ITBE(r?{6tzAHInW5>kTI3QE&%Mmlvka35lrNun1@%b$RM*5JcPG261Dp!gf(CGa6 zL>diBM_B*|@q}P$%vr zPL=xc^q46&EFc3l&UKR>r8w5L)08~_F(jl2nq>4s zNn}FIOp|D@_GSQbNmx4G#qj(o1rw(g)Kvue(|jC%&u~Gy+tN2D9~j#b*r=zbuN}#z zYd4?~HVjljucPHTh!fJ%(UVm}NcS_!fh+a6h8#}r}CupfkRfbxUol2oDjuj52fga>xtfn-8qKRX*7tvzRVOI#i1WU z5glky>?lrYb?OK6-H)+BjHc{{Br5iJX}<@kAw2|*?AjYz*53QAqL$XfYh037!Uh@? zyW~NlP#07|CX+-F&YWmSi(nJ#%SEP zLU(L%d@^YCBcsNiLvH%;aTA6(e+3?ljR#ZgoTh6uEub&l9@42Tu-h#~P`PN+B84XD z4+jf!JU3+Jf=mvtYG*!KRFzgPfs25ez=CVBC?4V9P1dj&U;#N!vQ^zvoBVOUH%_bf zt2?jZQ94+vguTN9Nt#rO*Z%%WYxmbzpvec6zmA;2zjzt`1@33^!Zwl5bpL)q-#L2RQwz?#yidPk0iIZ#Jbfwv?}7LR+No)e_OjC6#9{t#P- z@%jWUHZAv7x)lrCalhz%|5<|!YJEV9+{%#LEtD1Ic~CLiz)a4^ZQHAu<%Gqjg{K&B zEB(3Syq|BP-kLQe)GPdfhorwQ%3urE!(~M#(=VhxlokgENrxh%6kPCEpc|sn@d(lZ zG-2QcX|8+NlWSyNY2S4s5HKYPqId57e!f}1>ihkgi>A=Zo1|k9p)`3&i`0$+nYMR& zdOI}0%lWQ5Op09p$m}y= zw4ev3>(f?d;(K5erJM*Clxqb(!YhF;xc-23MC>3b=FhNFTU{-|5gn*gQK}{AP1#YK za*!*u0%Rd3EZ4-hY^gNjzhs+Bn(QVFh1ZJPr!Xlj_XqOrq&AaD)&Q75XTNYqJ*$nS z5fXxA(C9yspl}xkKd3FCY$e<%Nap*mKCZSze?D@c*G*B~a+V}&GfnqgWEM)l_LjyG z1ep)a4TJR4D^_(Q=LUBh)&m{|38Yen++Z9%@WLl26c$c9hPx$ri8-tV}F$tyF;}0b9r(2SqKP2`#t~?;3 zf?q=(A#;itIz3Tb=$WVTc~QO3A%CHKg{-T0&QgrG;6w3H8wwIv;XQPNQ!IKpB-Hd% zg1U-VNg7C`R!(nSGS!nJ9IfuDCS(D1YhRTgKV?cNT>aS%*QA$f1x~a6vpDB_cuK_ z&EM!3qO;sTEkT--wMQ=`7J6KzLu`$Fg;~j?47vWbAv+;vK4-CHl|^7tYi6B9e1B)w zcSr6$R#_RVqE%XhUp`;C(%kp={4od0R({W0GvwVn2V8bN)$C5Wgt zIq6d*B0oD7gI9Xmbn~^53y$rA#Z1z5l-rq7Kfjp#*RqbbGIB8nD!9uCmdD>_HaZ_w- zOoTl0?={BA28(I_7`$5@$5E1?CT=X zA@?^;ZwbT@DwotnsxV6pv@E?$&oF>cW+oTf$3;r`2(g(IrIiy>CJKAls_;dLQ53~R zsGMN*SA#1{DQWNDMH&|eYPV^-jTptLJ9~MHzl22Hp52f{E2He)CEwS{_92X}QM#&P zN+*}XNXq` zwec2iFh~$FksvS{0FX9+jOPJf9>nx?c5)k05mT5DdxQ?PB=QQ z>%9u32|2|@U{Th>&0r;c1eGsUNY1VzdA=6#5_b(xKZ_!gk_(w5L=fz(;%ay}~n3-l#U4saYvzs0D*xH_EP^X-m zm2Jv!(jY~%786nzxsTkr53D0D^S-*>%iUG0R>#M|3+|Z394ZsKTMp0JDkQI4IGI~6 zJOn73g@WZ|95d~PJOG{UDE5*z6+j(}o;#~-8!;a#i?4(T1x=If&;xUJ)Y&{r5jHh2 zOC25$R%}lYwF)*h;btX}0mFPUB}0XLbB>@{6ctwiO}GkAA~<>u4}cR*h;tHaq`FYl z6V#Y!@HO@RrhR2oHZcho90M;ypF?~%yR)lW+3@|hp$x?#ZWQA@K1zpV(4wj< zo)FI7c}dXS`ydrLM4k{c(=5sm=ZWHVShfzFrm^va7@T%kfZpGqk0I_-jAf^&a@)L{ ztZP|KAoJK8cwt143)^43$~kT~->d$A2Fiaul`&lG1e&-SCx+#uXHc@ta*w7APJIup zqEP%uKT=i&#Q+5`(epu=1Z_ zsABlBGICxRi=agnQwfEQ3n;Dvw92x|${3Du*1OUm2QqM1Ww5e-3o0&OVZPd~6Bo4e zgir?UFn@xk>kly0|3Zp}R|HK6<@dKYBl~AMKgKNSt3uk;QWUGZCLH%!6=Qmhh%BQ6 zAT*8PDz{e6LiMAa7M0u9CJUv=P_`MkVcVf1cEO@JPk<6JMq`IYU<2`C^m${X{y8rrxh4gbYFmQP9JP zX!VL0y1Cuhpe|v_0KfO=N)9bujS~o@sb!zs%>R)%xrAdI=-ds9n185}+USrT)2`C4cg=>=iQR1sgWSKgbJDypJ#nA@*tF4HGn|XkZvQ*5Rq3Ow<}h854$PrFeagb zX0P)5=f2B*JknUehCJehU>bzq@#(uV3Go_j-E=y8V-p%*7!b~nD@2h336x2Hh z$OeI)fwnoQNy&l8ak87TBoL?q8?YyKCg&`&PP%;mSmPag2+RvfByw1aJbNa2QKo6# zHJmy`df}4(2#mf-bX0=2LOMGOMFVzaedrrxFlIeuDWf$n^eJI?HHa0Oc3*~6x}glx zjN1E$@9Z||T$#rsQ&S(!R0Eid7ODxe6T6j)1ZBRmGC956XX70plQG@Zo?&h@RsJ{{ zQ*#ehhu9P*GZd|)t_wNw3|2LA;9XmSj~5}fthT@3R56HDJgE*iC(B_@fh?S))df=> zRlonPT09Dd8x2%rF)E0FRtpGfF1Kj``S$Q0Q$+|fRGiC5n@7oG&J;)QiSN(A6W-Ij zcx_1pt>iWxY2#rXM7yZ&D)y-~p#-Xi6h3~1^`xVAPB5Ro(QN3i-X!Wqz>(=_)l=}C zNRaHD2G17}*`%g{b#au(3Qq4|DDu>uO!X=|j~)#>b_f5ij>EquBt*>Q-R1d?>6*JqTReau^K8{SQ&b^5Zz#-=X%t*HRH7% z&tpH@b1mHqy86!k#g|VKzj{gC#g-2$JJq9_3Ulm*44)IP&YPcZe8fOiqMhy(v^Y(R z9oJ@(;)X6>g96UU?8M|$=$1gBn%JH0cXncfvzig57Z?D6Dv$>xu;-BxxP*p|%!A-D z1?$K?YN*l+`Ns8@Hi4?51Th%OTC^ob2Q?HH?>+&;U+3G@2BctQAO^vk#kE^F`v5a2 zy_og-J*LPRqSv%;YVAcY$AuE$Vt3Z1o!DPi0Qi@*wUqxQU~noh9X z;6NP6r8hGn$`;&E9SoHqW@wB&px>XVX$A5t*ygxg z;DW895q_6;EFr9Gfhe~Sa%O;0J861g=GQ$}NDJw*oBS+3|&H1^uNsBt>@`&ymg6dVatF$#At#tbMPkGzEA5}?1Rg`4^Ie0|1 zsOQuscF@U&;BYeSR87#fndP#dJ7<^{In7BTS8Rvt$uM=9msbMh(IHtFIf zDxe#AE$tPVu#`|i^B@}NQRF~FBNKxNh*J8r4>LV`=w-=+y@8TEOC@>ids z8=Xk?h~rW3h553ET|%MlWxJI50@NrynZf+CN)ur2V+5VQ&;Up)?Wh#fRbAO@-|O z^q6FWovNGJtmZ1-o|SEbPkL}zQYbTZgNGR5_oot7WiPs$6>X`Fk0!;dD$R^OR`VRk zw=yx!!DR3%lfN?t`5(1VMJF*;eQ)NL3VRb2qoTU1CYu{~uf*j6luC|*uBu*T*Rr}q zZa?EVS(SKt$daUWC3L0TmfO)22viO0!3M8$G0+h-&@!%6tRwkNE$p&Qa4s^7O`)vT zp|RsIs(_ zk*_J#O*Osc1oMFD_Zdp?kV5N4Fj#K-Q|aBRs}Itq1;Ng*BkR(;(|vNIH;}-2dDO3aldY>X8xDpWE-jm$KNT)$1d z2faU?2$esxH?Ua`aF*fA=@ym}DoDOg;i@hPl+=v~_hTxhqY9*i8nnHCtej%%k%Aab z2)e4~5?z5PJ?n!l*kq_~3rf|^l`C$l1 z{}7)_4~v8Prj25d<3{k^VaTKRQLCf|2Y&GoF$XR0QD-ummw!5VkaAi<%400l+AjrA z&oPa*KLlMB)+>Zf@B}*1UYN?3+^{b!)(pyiH5e&J^UsGvW#UWTxaAPEHgJ(Aq>#fQ zEOkjBCCnWQm;2r6th13kZk_TBzwF#~+IpZoR|qFl5|Xi&b{HY(2I7FTE{?_C3U#$@ znfbipY+NX6aopUt?3pbjDv?11^bC(_H%nz_qiuRVJ*Rg>;Ha?nLZE6W7XXlZx9NhM zypTgTE4wQaX-PWq_Q@bUS^G0!RBxAUf@&hWS07yrIFCH$>B)WCN2ZIY7uBHRGg((X zo5^@5}R-Ij6~oK~~?|3wrnG|1EQ`kQIEe0mfQaPXfC@Z#?s z{QgYVkNAdaRDgO=pz`>7kCCo(yn_v8}o&c^`G`bkSLC-y%0 z-=8l0%eX-J%NH?2+js_olXXxIKMe^kbQ}Vr>P+he=VW*}$XX|Oru`}_Bs=Og6wCt> zI1dXK8mLdzUSxwy+F<=gH9fs2Myp|okI&zt&nOcaM2bAITTKP}N-~m4ASDY3NoP-D zBQ#B6PAqf-!OIL9y?rY*n>;Ox4CE3zd`tsY=WPS~9tLMhogJFw2F{^$N;V`7r9;XPGUQ7!jKJ)(u@GlP z2?&A^@f?3io9=grW7|?h9}X!k9GX_}b7~M{e}({ui<&9)c!=~|gBZ8QXOK>jL6km- z#t?bywCI9#c(Wj0L6}Ol#4yu|tC(nQQ6tku)KSF*>Zp<9Sio&Mt5+f?HHEeUmNBUz z!f7F}t-(QGJq@mp2|465&$OB7R*&2l{dTs+h}E2C+a$}b3q&fYVB#P@mHUlkJP36% zF(s$JNRT~{DLJy}3GSo~0?dkeh`P>*DcQL`U>$kB2-+_aSql^J;^vX*B9IL~Qpa(Q zXVy?-X^c;=(wv>TeF+8>8T6ykiJTPMvM+Hso~V%i6EYAvzJL9}6(ZX6C<#S$pa*^< zD~~)TWOXFOj)@16SEr7L4uim?<>1=l2f~T}E_L;Gd zb{OE}ct;Da*BNt`qwhgw`{EonE5)zLA96LlD!vH1s(O`OrOo^r7TOZXNv`jP7EPc0 z{tP~&UE61b6MG*yHgd?`b>Y`fa5Oe3PlaxOYPvc)LytTnfzP^x$Q`lRa=L}3fXMLv zkvP>Qp@Z~=GL?7=;8Io%I^ou??<&Yu4sRfkl*36V=%a!4;}0pu8d*2QnN@orXYXOa zR4=NBiqC{WRH!lI`=`&KLLwDihp99B4m_nWAv3&C+N?NKo0ecZ;t<>B0*@vj$dw-? z@LVzpty0ujiKR_gP2(dO0tu8LKQy?4<^gG7 zq$6ZsqVjOuukr07v6b^Q{Hc(y+Z-H?zH7)BkV2t9E?X5R!|Ja9OeSg=NGNPM9}*G* zS?G*lmT;(d$qbp*grZS8b_)n%$leiqjoTEOx1)dD12vY%RIYYBDEcP%tH!MSVF(05 zx*YgXMYv*l6FwBB%ue@zZ27fv^N zOcnvI&PUy{{J6(!Ua{9X;XRK*g=>-Rg%_!bBI!Q87uH~k<-D}wIGx6gEjZlAJuL-1 zh?7uO;&2Zk8*LO{lSTj6+j5)!nkD$b$%Wk{Np^LV|VZmKEVpCV+md$NAKMe(!|K2Szya} zR}4T3K2LWj;3M5-ZT}e=(1q8eaZA!V@5S3<;7XDTXCS=KHF3}gY_t`L6vj2kd@(xT z>iCV$MJRY$l3h^D%#+ZW=d7vx*WY`VIqD&z-vLcXJP9Qi)aq4M^ba7xBhp*7MnCJ_ z8yIeCHwtY0Bu-W(;F-tk+Gf`W_3k?Eqj(m25uW$H!2)oSCgfK6SRUOWde{a>3Y2^{ z%H(l3h_O)UBKC`7C~>4MEd?|wAO>ooB-*2DAk93!DZWaX6J~rFo){BR4l$;A>jSF^Me=}j(Bx$;@KBO?B)^be1HQXC}g*a z5F!wEyH#?Z6YUNs#o2Kc1R^;$E7YMS?7$86QV83CP{)1Z$DD=Lz-xNQMk2FgpJtmc z@)epM6YD2LV}|&#TojD~WoITxJ%>>w#Qh)-HE61iQtKsb?Br6|mGxy)e99Z%-DQZ^ zt#wE1?!|G0u`%kL#m)H%cQt$ceQABUbu#2%8VwEBc3MxOA4dX|a4S?EbI6Cd=U$xA)hu zwiOZX)FL6`nzQpksgrvTe%{*PEdH$dKPe2SeaDAd+*4_IzuAOq1`$O5*O^oKIRX6cM5GEZMyten8~m<*tVQ!;2i$jJTbqAP1vV+&F?zx z<8?0}aa1xp^zeVduP-LmllnrukQ4vnu==!ZE=iPz(UaKiizy*o-KWb+4kTt}+0&j4 zv)`+jtIn%WtA`8wQXNqW54rR&T7l{2OdAC;1N%B8=i4^o!h<(YX-bTdJl$uv=Vt?6 zlbcT|42KVcyzCk_&;(?RGGQK@`u}7YF8;XE z*!poyvi&|(vt|#Ja~Yl<8)~xmcS`cRxLs_P)&)Ub_|xYhX6}b1eEl@oYSnU9~SK7ub*I1pHk-pB}dy}Cs|5(^_6_#A2I4Xm|a-^_!Dx9V|-HgDv##L z>Qf5i&fjUE&q?#-wa#I?@1Hc>*x|bbhn3Twi7R#Q3)}wDwAkb(_1(y<_#*YH=qe-m zEvNu41rZPlc6Ri0a#}9%qco&9^DX^By@KO}>hgUSxdg6{70{#ZMJPdKy>QD4UMHd8 zETNBC-S$1cBQUNDvLHfqs?Li~*<5*dOL1JyNM>(Q$R`Vn+pdv(Ln^;5E z0tT(E++GPVT?Aj$n3X7^>ToC(Fle2SW}b6oE}|e5K!R<4APIzjs|bnNdV^^o{5iz^ zRnnxRt6lRnVoHEZ3#bUuTyo=$610Fo3>=A5VO0BlO?+jYkepu+0%}6c4$qmuD?uqR zt93MXIvX25CsYa?_ldZWo6Ib9ReY76dyKmh2szrendu_Ntb9(?I;G_RrG#{`wUw;> z5H7t43U%*?h(dh*Oi?3!$82~7Xh7RQ2XD@sl0&(MPwi)DWCfGFn>5j;hmyFP!f;r- zrP36l!!IJoe?3t`-h5k()u-g<@%o)uPWCTo)o^+Aw8RnYJz~73tytm08_1hNx)LD< zt%XX7o=A_CIH;$k1cao(dPXZ{-7BY32eJPeSSO^3Bd1Y!%PSRdktW4a6(W+l9mbuS zNZYQ0T(#OF(e9MQ)T`F=)i;n9P!XaBZ-!rgk2TIekUX(Y9EG67n~a)s`1MclMhS3f z!olUGMhS3fK?QBmhWknk%+!O68~KwK2%VW`aY?IXG|`+{G~@#-*z+MG@7TBrNGLeA zgji>#bWun}m7qMjEw?bGH7$vf^O+4IV7b$#hi((BLG>es$gGVg zQV;==aIOn5{f~k{1q>3PT|Jd7id(VL00MF1SqtFBFW{-8rvG(js=BonFB9idpd>qm zH+Q>*QMa^?jL=xA2+p>FW-pCkk#sYK-NJHODkzs4oc+|=d?9pZa^e4Z;0hiS^27qx z32A2JKWGd{+xw0EA_lAkj{e9a%;%xBNI~wjR?bc$X(@eUxg~x5NHbSXr=nczx_hz~*#(@04KQ#P2@Rm6@27?M zl&ScK5{M^U!3vzS=X|R@xFV7P>i2LGujDXpG|p5A&B(~3BgA@Dm#EH6lc>dyPbCHp z!$w^lx*f}$?bR93GwgB`988jpHjK zh_>%3&d$)C?UM^5|6andQmPjLNMSf^xSu`uSqM+DCfS}fM$FJU9OOX#bfBgQk!I~RK{O$Q zy^)%0u~(?Ukz{A-^sMDt;j6etR9)*5S>6g0I0BmwBPozNA%S!2>R158flU=ehUd-| z@lR@+7*X`5;;Iu^eq2Icb%=vTs;Lgu`3IDiKwW-a>`3o4w4AYePd{YZaG{}z(*yc( zpIL!58)hva5Et5~XDb}ma=QdxjX-8;dJHOnYZPe`0C`zMVx|I4(gJQWv(QCFi8jnw zTQZQ{lBNWZ6WzjPrwX7>NX1rN<9#o-LsTJd#h-7LmI^pYD#_vN@9Em{Y<6*fONBrT zk~kgw8L4!9DgiU2(U$!6&%V=`Stqu_-YskaiQ`6ti?rzA&6#Zs4Iqh9%19R>4pQQ^ zP(ft)^;cYTL+H$u1#0QXO$js%>2_O^C@mMP>C?1SAWj>l<%B#;|N73>6@d%-AUpEb#4zG+IaFaA4SL0a2c#aKIU@_xO)Wg0% zf_1{#A4T{1RfK)@pOy-^NSs8%N8?EeaM@8gSPQ5KnP(+{=@%h2YKjBi{(6Z9p8ffQ zGzmaS=K_FMC?@YK*J#iLk)g+)Ha*N*5I(X2w3x<^MQOlwi1WRD+DOhJ&v}8|X)6b+ zQFhCvpl~u1gCy}>Phh6#rxuV=BcZO2`<~Vvzb<=YqbCh_)v18L{?@k5tP|42k#p!L zNE0&ipA+F^cqfi^dfoiq3dl3dB*w%#GhGBj`7$6PR_`}r#N=Ca{cZT$L3>&%;G$6^ zN%kNF0uKmgjahhohqdK&vYnq~8tUK;L=3K>xvq{(Ic^{=AP@sbVlB+R*)e=u zk}Xcpv!oGi_|UUQV9tf|cm$ynSK3OPpalfVXuR+bRhGC&su*T&n++`X0Q>(uGP%x? zOdhqY`<-%4?SL3SgD2LRX^vD~+8qH+3lAxXfJiv^5{O1yWk~=oolV&t5QOa>DN!r^ zXuY>@3S0W1u#%3l9@%`l>_XjwTVU${UJ{I#?t7j{S zCNqv`@Al23<#0OgVTcO~?fj8KqM;!i-tiLjes+MK3!NP!9QI{@M_k^uUo_Rn!S8se z+}_87(sIEH)&N^9aGiOID2RYlf-N@~4GLnT*~L_%f@ngXSY~NAG^qxGc)}Ha1rcz{ zMpZQ}Ifz7CLHYWNI6*YYVcE)3!Cu5g;`9iUk$r-d0&^LBkKGSSFM^l1%I2U|X4{Df=t?X6tMe0@2H_6}hfX3D_ zy%U2KShHMIDgEBe`y#41nt+!>fHga6D~NdJOMv!^;)@zrMHeYh*s7+d+3>U6vEQRV zv*4MCp=`7nNPh?jrb$e59=ihJ@5@BzotmbkgX6yrsaHi8iJ9V`gl{`ty+jJXeilXw z1msaA_C`ZzrVw%e2XXKQrHM^vM1lA9#+^EL;lE?Op|ae_@3^4!BIv5*>Zk)Ix~7Jh z1E{}s#tx*J`68|%1hLk3I1TK0Fl3JNKJhBXMa&@${-Cze%v@rC*4Yh?&sQLE_XeL% zNMLN94_pt@L4vMB1to6Y{W_2 zWI~}7T0kHM4xkuXFD{_;qMGp$JowH#Clbi zsLo8YKpKAHP~W2xO}3)?2Uq!Uox25yCtTt0ZO*cVf<=yfujsQtgC11Cpmjo;SyE^K zwj1?+!AE1IVFR_#QtUf^7&)!x>1Psf`412>nuga_ zGjZ&CVJ`8hK=)g3xoN3@i$;I!nNE}~QbS2%IlQtMZM3*n6IrMI&eqHaj7 zpT&S)5N36&VaP1v2aWJOd`hw|MonWS^u=!N(r_hC;a+Qx1)>Rg=5-P}GfJRd{&*i#ROi(FyX1zr;QVZ>C}>bJ$NfOCsZb<)p0!1DPb$z&z*F%&6Vhqi}us4 z^C!h7I{Z<@TN1m~FcdcYo!o?EJnw{9X_5-g3!Gy-OBUT3Kj z64;AFL=mMhJ+1w3jNShJ^>?@T!QhzJ@2?TYo>S>XP$;|XEY5DypsiGnpbJcKzccBC zG&9d)xOfaoi1^oEhT+umX}Ji#8OOweWYOecL!wEM7aP3^qwi z1q@mXk*7&_Jk~b{mK(Y<{g&L7{o8_St;f?2A}u#kBS}l_bVg@Z$NdNOz;R1>QUNDv z0Tm%?H8E5w0A@H(GS-k2G(ZfLL@gkYC!W9lRiyybxO3{(z zggoRjBzZSAQGwdlzC<_h1B_oUr!w&xpC z53{89j}64yS-9)GR5t4Er4M?}OzbLq-D}o`#_PvDcn}v2qb)pV?F^X0a9TUHnixJ^ ztT!@s@f^n%ySh=_=WX<1TX*8t1ut55C!WJF;&ZFxpoyUF^Gv?Ff% zrumHoO-lt4;+&b-PZT^T_{ObhrhLl`ucgQe)eigeKquL+Rtv*H9$RypJ6C1CyWFM*yzW?pK(R&eQQRxP?+1& zx5W1)^pxZijfRVjOloSo5cZ{cD+OSd zmu1(WXjS0KItO<_%TA*^p7St6gDLR&jt2JkA>dAxyC2e?!SC&2kDfa8dDu49e0mE* zX}Mqp(S$tlm{^?S6@wyA1JWVs2y5$SmI}CNI6dsmj`Q=_a(x?KD4WuD*9pnkzF!9s zPb^^H{HZmdFPhuka>mn8q{U674dfe!(sIEHf>#1GEhR(_-NI1V@`v5sNSFxo8ivwx z!bp&S7;LjLdgCo(XJtXe!J70*eWJB6Rzp9--0UFdOldDpE?7Y{Ax}Iemf#2dk?C?? zxA%Tk^i49fb?2R0)4Ipoc-r}%LN^*3C^s6L$5+2_2;uL{!EL*U2-!xRaM)~l4MUtD z0gq+z9C6Rr&rlRH<|Yzg9?#elICD8YBRwNMIr{)P@AF04R;h3O^|Q3ZKw%M_#37WH zWB9?+(U=#)mv)?2`~|-qXMfx#$%@)XDg`Tu_KA670gF~7t)``d2<>_NId%%eX>YH? z#?(x`9(PUNNNQZD^7W;1AJ%#=)%(-GANR`hulW!a9m^qdkzYSkD$1%)mywm!n>DCz z+p>Sx;*PVkHoLPhnd=YB1y6qcken|`SY&=ui{<->p%C__$ys#aXNcw(maf{CmU$~^n5>|W}38uq*~9mjs2^@Fjjk2t=Z z8`=*T=kdb!9&=E5C}h`gRD!s**MGxV{JC+6&AupmW>8PF5{DVfu?O0ms9U+sCd9V1 z$4(;}s@sFBw4w`dkmplZyNUEd+$=COj3@eBdL;E8hK4l>6Cn%t^CW5X+IUGIp<(W!Y7x2ovx|o$SSijxTh4;P0zF%XGt1!u-xX*^B<_Po=Kuxtoy4!Ipx$u|PZj z=7g#+RBVC=fjVMPPn!B`?h0X~$%8|D2+m^Mj%6&v8ecTxZgf$}SL!0V99{I01^#F}@TYfq2721)c-;&%TDY!!?h0Bm$r3$eq!E z9eo@SArupqBG@O!iOHE&?N^H9)>kEF7YH2*D0`qytn74EmlZymDKlhdZpXF z_3e~j{Si6I!Jpx?r_T~lzek`&mc>C-^JkESod%;E1=w*j3zV%)K+Cp~wa<%y}cJgn~kcDB#8yLlet=D0O}IocJoi;?}c2Xb?bZ!CNK z3m(Iw47dd4LiOKXa*k`y*_&aJ=mZ|!@XjWQjM=*{l58hxQ{KN07KvKEcQZO8)mssx zxIVZu$H)w58*klWFtaw|z{jz@f}ePdQKh73jdT5?$bddU977oi&;ipF#p5#B0GaBm z;)Zd&RWKXapa;sLNrr?9>4Bfi?yW|vJoJi?K5?{M0w>Yrc^dwG>&RduO5AQU;>>h0 z9r34!AAzdzeg$fr%gjF7KXIj7zQ-o^X6IYB@Mr<~Jy3*&qmT^g*`qZM)w&Cy$_m_J zSl%62jPV_|0Lxur)4nEQRv-r1gG9g@er(ZaE}Xo{#hJbO1NCZBi%&6~fB7Zpwt>sQ z0Bd#EM4QCLQXB51TY}8gG|-ES_#AuH)B}q*OQCQBj9@-zT%KRSTU($QmtslNNqb>F z-LHrabcM0Q_383;+8iU?*#Grq1MTk7w)QIoQ}qU&&_ z(8{9Bl_mf2?6DHdiCcn}mP-c12X6_qGn5ooO`{1ZobWg~xg$$;!{rhY?AJP(zcn$agTAb`WEKH^6?~By-HGJa+uVI zDu)M#e(%T)xxS!V!{qZrKqfeX5Ky81JP0sLZ_vZA6bpugLWD7)PJt#dbQw;ZRB;(77sX!0jN ztXW_IB+>i#zeIM}x)#7D=l?~dc#K2z^VBi}H0|6-VbgSUungj3h;m=G)=AA}H`Qv3 z{GIOvu#*bIFdc0((Dokk*S6*RA223F<=xU7jK3RwwiRK_oZn8X&=WRq7C#^q4X~LW zQo@0h4j2C+qh_=ZhT-_UVkf)gG)K5UFJ9aFV+5uUP5e4nbDf*T8QQ5Js}U&uY7f)C zZH}+QngLC2<3NRvr^#PW%K$RHTe`uMkDFMtomZ&DU_`qPZK%zKVc~E zr6eGaZG@u0rzEoALR-KBd+psYqBHp$h$`@a&gJ;rFNVVPgocTTkmlKOsezWy7PbI8 zz!by9;KhxrBj{WWCLIZ%kHV?;NlFLyXF$!NztizKbmi_JFb+}fn#vZwwLU=gTvQKI z(N*q{KiGg6l6nyduASS^>~~CMgVp>oEV9GW8!G85OTh5N-jZaC5!P?Zc9{UPC&MVh zLO%BBi6ue&7{G_p(iOb()Q4sNaDZQxAWtnf**ZT_}uj9F`(@#%R#F20r(O+h*}?SBH1j?jeVwS zvnR1{PABVD@^|Yd@Hkn_CyXyWL@)3EP5y4sUGyOY=hsPAtY!BR`COZ&dS}WI-lAWB z9tn{{rpH(tcG4wi5j`6-B$u%IP1wR13PULRU^uge+#KTQkwq@1g}J&I}?T7T(+D(pM}lz(jRYu~f|U4#&S}UIT+o$VJ=@0>Ed^8VsNtbWLzfjE5bQ6V zH+SAc@5g2DLjN5oca5mS@Kk z!pvC4=2;n%OS~H46J3cF^b6%hkB+gJ&)o#s3%t&0Oi7bQsene`zn$bYOhl{b z7rjVO2s7`q!7|>j!2=k&BtTK*awr6N)*dRyjCS74{_2YhsUB#eMu`6}<7vcS=g0ey-x^-0rOm`od(8L}j1LAF^J(xEJJMp?q^#jZ z5|BT+sBH>EK|f=jfJ!j_(mtM={Q>*iDm`z&Y$WX)fy-tZVFuR-*aim6`Q(0};j6>2 z{5w2ZwWG$0Gc47DZAFvGb6M@XKcIHBB^!Aln6OJ&%kGlM?nV_Y1()45!o!tZ^*ySQ z+gGD!+m1DXl1{@-C+cR$e%a^hDJh`44r68poSv=noc_@mh{8P^Ct8LZR{ea~WbK-0 zmoK8?@88O{qd;ZfNzXrN!*({>I*b_s%^jvc<445hE)a-74T;iO= z-omvj*osi-`5W9q*`bFnUS@AZj+P#pTF*nz&?S`Q!LK&h0QzPiTcE~B6Wz|5qAZzn zObE`g3DP`avOU}qJl5A#7)Ho2{1F5VOw&$2;A4}md_we*vneqQwFMK-mrd9h2wQ7a zunKW|ql`@$Qh>2{Y`)6!fw|w&K41#geRol2OJ%Dy0(AAlda0`jCd7%y%yS_smh+c# z&H2d*{W;;Im_Dust`5^~`s2X;v4$R_19FFPV#Y{eZ^#LN z6Oz5wbV%sqVJW*n=pKLpBY+YZCdA|_y8_iqMm_d`&WcYs6 zP)-s1YD_L1HBPh~ZabjUFB_4ieW<{;oRUCKySo8RZkD>~Xi5)|d*yDpJvPO=hkV~z zh{~IV_GYCKTrhNT7@?jMw=BbPR^d=EkWJ2rIJB)ryY_+!e`{kxn2m46vz_W4vpH{N zAfZAObO$-+h0`a=PW*$+eGNNo2J)aQqIFP57c4hVC77ve~}A_xk^#2OhnK*!wg9yM$V6^ z{q9dM7XnVk9=?k}kL_;1Q^>Z&nifE~vY zt$FHUee zN?>6zpaO--?>nYUMV}~=%U5xb_133}6kf<|)Ry%19(rZ*aXMJ%Jz!M2g%2&nXM(Q~ zNX|eQd{B39w)wbREddl`L7#US=lExp<-?&j@b}}Lc*v2s3%GGzYqyr~p?A-_(9XT( zgC>8y*;9}haZa?^Tzff3^(K-dLmaab97mG=yQFN{r5x3weBwJ~cpa*urUa#TU-t7R zuAuI}Q>%GR>G8xl`X&wy&Bf#Z+vGkl?VQBqf4)jIR5c&7_LrR_K3$%oN{}e-XVrtm z0uaBwy1D|Z0(4g5f~Fq;${XaP@QH^KAV8PgOr_dikFtH3M5TtVct(;~a zqcWD%i=0y$2cw`zbTlyb-wP_6#*NkJ-eT~O;lS5h*INh&V6nL-KYnIxw`imwZpL2r{8R)0j~(qWpT(oByX7G}04;xYdPf3|l6cldI~7B$;gjbS=r#!iHF8 z%~-^l2ac#8mvCNXBogz^>3zc(9l#hABtS?3{*;Bv6AAV<4hS6y{TALXa(b=ALjm59 z2r;31pd>9^f(kbSbo{#g6@VZ4vISc=P(~BwBpF{cx zDkc36djsJI%X8FA0%n~*_55e29DUDvefjVPM>N}}@}DQptD^aC_@7?0g245CkUQHA zOzjVk)IE^dO?kS6z!0(cn^iN1_73It_` z{~T8rz~Hn8Pm(`W`TL5TTZSI59SZDOd_lj>+J9^anjgpNV10B8Xu=9zehwX=2w6B( z++cYv$2KG^hA!B;1e*7M>6-@FXyE1JS-8-0-Tb%{xM`kp`mp&#*!+;!`ke zg1h%nN;LxmmC1zd4!z6DLx95P7|R!G5lAFH*Dmb&R~S1lD&!xiR9}y1&*0>B?m-m! zfWerd<>()BMh*C3_AWxOo2J&T=MMCVE}&9wJLnZEI)b zxo(_to9{Q>xZ>{3e6D@;fN2?HqGf9Mdi)LCjez_3$lJCTCJ#*iF~?T%+~RD=O!dQ> zdmY&8visd*=oB_xfgyA1?aO#<#GO?7!RF}KChIDk-n@Fhuf4BBLL5Z9Ft6xJ3S@xW zYH&Z;TlTT1*6952fHnjQt;u2%5&|WM=mas8aee}y>?h|^6U!QB+ zT~-h|W%QdUAD2;Uu(8S~CaDUCmOWyQC5bS@-J zOy)oB?L$2Io0%C5iHgC$1W{0{Eue^|76pzWErZ>V)^xb6LT0QuSgH(#sYluEW!`|P zzdp-*Wbbf$d9D}`FvLlP7%kA!u??cL2@%=^v~L8z+eR3kT=MB&5C36&ZueMr;KsK- zIqOrP`ZXN6d6daVafTv|R5Neb<~jx7WRpcNghQ-0n$@x4qfA8CwK49jhY}Cmj_7#xPV2h1y5Mb1JbgjQg_ht1lf`(22cFpi*hQ8x@mzU8X?^}6VL+nZ>!_?zCS%MKg zT(Rh-JmLr~W`Fdcq|J#K2ytb_f)|+Ftltcd&W1=*V$?(_ARHg&i9Eb+U_U#f-bB9A zMsf1MgXzKiJFtwXtR8*H!kt?rWv@wuIXSO{FShZqB0WybjQb}8Hvq%_$=`JxD6aJ# zfmS&@FC3Q&WGFMBuwn7{BjIOAEVu@Ttn+9`J^RqeB~Anmw?)Q5tSp4lE`khRX)fWF z=<>>%dI%90taU>o*2fQ*z8H?i&&GAl=u7x8Bqo zZ!V^HkA?oleftM3Cg_XbIyW}{4z5Lr(blF*Ls^JX2cK^Jp+pynl}Cq0V#>DjgeX#is^2v<~7E93l_Sjmj3yU;xd`7V}XU8&fWA;`v@O#*OnrnFnM8DkaX2T0PpJnTRZpo*{kWkFxnbiQUOeQePk!Z9Rz zZ+IC}_4W$###&LF?^@85)<+5rf%dcjx_%__tb2X!H<@|;P=v}%@B11ETIY@hpK`eJ zZ@nP7{N{-Iu`tBxSli@*tLJV{y6reF^id`ru|XoB1~gQ1s&cg_l;lb?^EZFT7*XCP-;Hd)}ju^Y#%mcTMP<#4B}=Ng)>-uliiFP7~OOM1f8k7T*_ zvKpsDEbDUXm^;E+4kiX7rjI!e1Up@Nj1H<}MrgVsq0eYwjOye^0{%lwp3)K(uP2tkKj?eU29Fjiz{K# zQ+|>o{d-yM5wFGTiB-Gq?4i^HIo!#!*35E_{9yCtuR&tnMV7z$;ddd&@(WuI4jZ`_ zy{{a<8GA{tSm!<6K*U1P&mdeD!aK6zrk(z&#Q{6HSQkd3~LeTpuX2Yd@*kl%2Ml zQ`}cOU5;wfOi}PNt{e+qlf~59{9iPg4B4iLGNMoLJ1!cy^*&KaVWxLG>l!3TcfkDI zUWSg36uAMCzQtYipk|m0EslvBcg2;(|OG5P9)zBusH48R_luv71ff zLxq^sHdnHW^LH1 z0vnD2`zi^Vo+JDhU88V<#Pxj!3hMp?^UPA=3ne=vM&AYM8EyNW8d6|N`7(mU$xK;{ zNHgecpN#>bhShDft!skf>qp0iHEs>cLDb0hcV?VyX{yqt3KqaAc=gtp|(u0ap zUhY>jT(pSw5_&qMQh5?3T+?~*t-pu~BKS}#v`xch^QUY&6GaHMXFwBXG{zNH< zFJtEFIdZ?uWz#L#ikH;KXdW+h^wOKx;J)*1v)5F8>SETsKcM1IwawYGQdZ5rDBXTl z?B}>_h0yvWk?tMFkw{pJF2#=$OWmW(--Uz~jm?oQZX;wAN}P|0O7_IoJG5yB99^8L zcB%OU`_&k^)kk3)Jl{JP^{?LLT286 zd~?7ArDFQXZS@;)jl=`)IJok*8bqv3;0%Fz6;}CjSR~e+IqB{8+Sj;F)KC~la0-o+ zDayXH7s~pIM6BwMM!Ppw!pHbOPH?YIv$G9YCeqDQ+EwHUWL|~P09$L-AkoJV0o4J==TA4Qi8x#=>!&dZjx!+_8^0k-^>cGN| zxL}N8-9oRpmBL(9F7f$0eDY8#;hUe$v&;Irh6iU{{N8Nm`f`%Ti=zOl;2cOp7Aw!& zac{i$--coofkmW+7se2n#(OlS;#pAauwmY12M+R&_rugULB)Q$voDX(B#LC!l{d6b z^N$Uvqju8MzhrcI2U+wUN%v|j>qq#>n6p zxC@zJ6~&}OkrS2deSL6u#IM;A(K__I@Rw_uK$wgu$ zMA3E_ylS9zQ|{ZIbAs-30xRp&6W|&G&8FV32@ff(b!SyER`u)(BVv2$;Tx#_xgV)*?g&xX6Nd+ZU|*VI7{);8_uEX6^{XpwWiQO+#W0Q~@&Zi!PCsNj zl@#I$a>C(364-Y#IYK@wV% zQ7OEC>ers@F~R`GfEY}y!G)H7BYK(g-~ga__#mJ@Q0aRF?UWED@%R8yWN=@ACc|Aq z!bvC~el1h4m8(*oz_!XSzo5WC#$L0C;(;*OfEVRDGD;jCjgOKq_KEmtKhyBHhBS~I zAvHK`X@()eq$bmQXAwt9y9!hA-&v}59kRdH``#FeV)Mzwi|`bDuvNiDtBzsUj{Lh+HE{+N<2XUEonabh8U{dc$E zZ3q0Wp+Cm!DV18IRr}f}n`Vriyzj;twt^Ymbt=w1GT{Vb_`OO=*EOy1CJ8?ymc)f5 zm>@MHG-a*VDk((Ks8kNwWk(2K=fbsyqn~oflU{`H{k0Zks;6tF6)lVKMhYrwA*|+CIrBveDNdqO@@qWyzzY#*Wyo4D3Ct`E4%NBeoS zNwQf0`^zVv0#jJ|0%2W~h7>%6LG>DZbSU3^_x!KTnMqW&yh0$UHe6U>O3_szT*CzX zkVtkusw0;v*I~HWfC!8eUvJhk5=JnnO_XSOfH?&gWv4i?83RLsDLZuygRCgm^G?b- ztr5{hJ?-W+>r({ialGW;S%(5eHCjkeq5xrNPf|xkgna$1WMXqsEJ-osBpJDrA>Tn1 zu{DkL7ZJs{1f3M4Q~-82%YNA$E^3JE4q#T_HA#dLjBb0qjrR1;Ef`#K3_?ph+K9G` zKgPyfPXo8lozbbl1mppA^w~n_%rknhFiHbF*sp2 z>LL{MKnPyg8?cgNa#nziAC+Y*dUtkJ`>$nH2uH9LbgszS^d%B{q7!wU32qDF17T5Z2@IszZ^<0Z5($)DeteC5@{U zg7u*AVh|$3v2dYGLu|~X&OP8#obucbbRiEHCRp2_-h~1s0=`FD3%I(y1XD0X3_%Aytl0ljGh&*60wSp`u)`KjgrS z1nDQJW`D5_Q(m3fK7pSCe|;PytQV~C5H#g);H7C$fNI_vM@i1ta3V7K(#_7Vov&jY zqv9G4>kbgxV@71vcoOT*Mk#^%j|hYkzh%Y!`^X17?YPOON0G9_C6s+zu*VQa!~3`B z5~A#$68X^+2L}4lDho-RG#9xY`1=rRlyw+E2S$H&I{!@6J}b#-MYH{qtzbEDa@b&m z4$betmSEiajbxsKv=7CSj11)IU3l=b}p(=KQ?tZ^aiUe zfRl;J2tvcsbl>e)0_rSlaP?4i*~Bsd)~6*)OnwJGa+Vm`?lREM!y{ zyV1-%ZfV`*-U`-eFP_JaQ+t1sbuGsC@|VxbQB$vo*4sFLUNy28lGU*@qE0KY9(-^m z?st|>iP3JSiY%(rj_Z2!A!(cl>;I7Hh4M%xdbl@^rmgtY(^SaO&B{e>({Ut!uPmILz{N`5R1RmAI;5`qm+~F^_ch8vL-v!fG>}wbTn8{s-hTJT^6Q7?f)=OfvcU5s|5> zg)}=Fl`{zbOz_}ZNCPP~ns~$b$uQ^4i?@iwT*wb|%;2?JC@uWCtP$IoG*o;tNyCFN z`qdtL!7|51bqq^Jrv41t(On#xox)-4Pb2DWa;8i=7R^+!1>(rwU7yB2W)(UjN8C#l zQw?Vshc%g#<*V3A^7glt!rT*@;G6>d_eFT)e0gnPnfJd2P;n741chWk?xNK=`Ft z-8~mkWPA+uJ_c+{3!42wKmlClX^N7?8I& z^291h0}CfNA;}ZuF3eqJ_5WJ)X>Wt ziQBc_lOB!E2u%69UzP%P~d=)WX)r=Dck5wiK%4*3rK6Jel4z~Wo|AVhLuo# zBgprt_21`Xb~>**7RR0;cjN+=5{-95r>2FEJVi6{rnIWf$sIOD!DFy9JJ{Sm_D#R5 zoFW3`OdM;-+zXX}0a{8Q=35Q8MBjPtSwN+73V8oa*z#- zm|;@~CO*pjz?Ybh;lrK^MxtI)m7c?hItlbYGesUhX9to{S66NpXG21sZg!aKI!TOu zz`)}UBP?T-p(3sgj-7)n5riN?->lztZ@Q*T=5yV;3jeKCtQ&sFg4UIzp}WvtPujfF z7h=*)US!c$x?wZ}mf^{xKmNwRe~c;-t%gX_a3HTQXDqhjv*8PEqL&We zdZP~brv(|0^$iIJ!}cz6tSg3AZkiM%vbx!Yq8+|_CYunWHh@oXYf(f5M4f)Fkct}4 zsI2A2HYn+|DX>xlWCzT+ML;xy1WqS8HDY=9ms?L>gR8%35P14El@*)Zcxb=TW9~t7 zr~elu4Aod_dNo49So2R~=|HV~0sgQ6PWgw08H1NPaLouIyZS)DwaI^|X6%p3nhOrh zAqE$Lzu`91?qhg;pAG_3H+>hfCYzt=NioflWotl6|C1S(x#BH z%WC%Vc|NGhzG-f7E^^C95%7UIJLDMfR|U$^mIq*65xx0e6DNYpN3t_F9|=Rt7Hr4} z?BOKd1rp6yykex!emD~AOL4|xx>)$2*J4QQUE%%=ED^^Dz|#H%BPSqCIKJ~jeg1hN zH9Yb7JBQ1}py4N%rGa6<=hDYV|JM5>8G8zW8qo*ddLnh`v}Ur4Auj&gDM2E5HNP>U z1hk-D_~|}UWHe~@YsA~#^Lqs@G2Q=x6Ej@7rffvxs8JgqIh-ySQ3q?Ya85c~fB_ny zZ&3EzRazPc`q`?He75TfTNE<11#h!#cW$4QPm+koFw=rZ4lon*AKs3>HIN8)?^ zqv(Vx4+Xk?Muossxfz$3qJdIa#~oLsD=d*99)Wn?bk@a!Wk}Fd<1If`NqRMf z#hOwXO%t4_ZH_SIYz1{Gx5N7zOiIfTCp#Pc@)8l8bdduQ2w;uQ7}zM0UE$ee^wYQL zPrcg!Oq-VVuZPu5Vb@3-oT#M$a~nneSd8-CF@ zj;!`-+y5rB(m@(SlJhM`WWf6e5pCj^7a7||0rE@8sHNBaIXx$q1HEMY3u(M(L>-pVSXpHJz_EwaeM$f|CH>;mLK^9!^5y0x`sff$>8eZ8a%&KRv5kFaYqU zWg1uRmllD5sNbx)e)NmGI~iQ#%6t+Clh*x}^~{_*7*_a1b( ztna{3tsW(;r9Rs%0V-*yi1Iwt0URRzX-qn%n_aALBha+@Kk6=2GH?L64V&YO4xVKS zl6nOp50y=5oB-;&wy_7Nzvr+LIET~`u4`nX##sLu`!$*H{9Ie04gta60{Z9UdfT4l z*VJ$4xCC0@P42b091;;**2tMSU%$1+5w29B|&fz~LuFQ$SVE`b!UQUD1yK8V zd%LrX3Z8Czs0ggKHGtsI~eNEvINv zm+aQCMpWpuv~0-@n0rX9pdr9#ii;#%55Nf&?|&!8 z@T!|N9eT;_<$L-b6s3D@TPaWlZH&l5BWQ>I>Gm%~51llaF-RneG3^8_7Wlt6$mTKY z8ti6s&SIxu!>ODUSWox5T`OjL%eN2V^jfh-mIBs0vNm2LTNIW-CQBU;JQ{jyn{l@v z9Zn_{(fqgpDSx?H`34CDcAjkP!gV%)N>A%olmBMSW+^*l{fGIJfQ|GYz$`g#poeQp@xpiE4o3*Hh%Hf zf%Ep-g8#3M#tg9;s^;a|y(w)JrGXpE%yyQ!gGTeX`GfqTxwqHV+_8Zl+Z*FqdRG)T z#`a=-2vU5@DUz0w+Ir0|)ULp?ANSwgPcSqqn6E4`VTer~wA}fLu2?ZSOX`af8>o%Z zp@8SaPhy`(5M38=j7 zH?nLRg|4ruuo`{WD{P=^kUUU*oy;lQEgpCzq}%yQ>O>_AsclEXbeH{kvdHD(cRBMH z2XG#t?yXJNZ(J(j^5kDa2178ZpZoJaz|74Q9>RUvClxt<(&!ej;}{ybVZwz%X)wylAL6i9YS_<}q`buM?m^MZ75Cf3;h^eaC$QyMCl zrVlyST&;>7jQnY@XNH@j^o7&9Bkdrm+G`tIE;Pz_&_v&mhdSA$ARfd&wh6_&0mV?k zNz)3p2Rh%%uaaCTvyKuqL!&4kxaZY|aty4ntsG{?<(?FVN2Zj_P)UuTf@1T#^r@ON zw7`z;FRuSJa6Ji#y&)H6I@*RTG5j}^nBW5{g(x;7gvy(7E~?PZuakk&)1NG9Fr9oC6x+S zcjIZMz*DXT^MO>Zh%)Z`2eN>Vk32`4OwHLWbqI&yzu5_Y@^cCgW6qCiWHhI5a1s%v zH#;tNL0Pl_DQ!sY3E$$|Gl-%g5kuW|Q-~y@OqX*v3f?wo8b&8uhU*v4QV4v3fj^Md zWygnm9Ed^;ZrlvezIYE7PULAfJJ-c&#Wy=xrYv+Lq2?xAJp#$ju&qMH$y1sU{kGpL%80CIGaFBnuYm`Nr(>u!hyEoVWk>8o(VPj}W?atDZ9 zN9fMGP9SEoOD)a=t>|d?*4N*ODq*co*Lya~6r2}3ue-Gl66uoHbyfzq19{Xc-!D+C za6n38dqsi(DPrm#{7D1%V0Ly2l6qOnID}Y9gNL0%;I zM1cI)`E~nR#m4c8`ga0ZY+-Q&d*l;I4`y zlEM+`eSA`6HT$5230nIY61k#bf(lZW7P_er_s2qNxdoI=9!Rw%O-vM0W?&46$CXUV zjSrvd@_wv#@PMn{L8T34Y4Rw+c;g76xlZeR`<4O474Kv$OOU-CxZRT)1S_8ISN(k& zrv_k=?mn1_YH6^0ek_;I<6L|odAo1Hr%`dwn!5k7ZgJQYpbRxI8M?#(c$Nmsb(ldmH?L{ zqvyKi?eRJ~7~tFCn-%=P9&Ji${E9eU-#i?toxMTJqXZ)9`|P9D6E&%Jn8hlIX0 z$QAb8fyQp|X=#4x94bNCyDlCQjoWzWbVGgo5}8y0fp0V}M;R|i#1pdfJ|LgwL?8Oz_wWA<}$o!K1nz@q>WGwK_fGP0s_n8-rL!DIG z*C+Q{{pQ*LN{rCElH%e1>rOwBf^74?HeJEBte}(0FVTfFhIfQ+*M!15GY5spKw_Uk z{x?ue-A^SNKU-(6KH*cfHp1wxJh?ti9JOpdR}mNRK}*4&uZ_r6j-yn!KGOM&!E*wx zWSE7OK0W`_1I2=={GGK5(@w^XegclS_t>BPyl`~kAJc&v0uk__J-s5lhF83FIn53c zG^!^zQCwrDutPXBh4Ol<`12<#_d3!&(#i${09^AF{iaW5xHQJ-m>%6-qOD>M^!o;n z^&u83%clEq-z?yJx1|DN`yXTA2{rCUgoI^y%o;N?v%MZ+T292jzeBed`(S(uz(f6XJo_U>4c-Q%gGwo(OIo#^$kz!($M$|nD zf;`AtWnEzRIUq|Z(}ix>Rq_2kvns>Ke&!+d4Wgo4DG-*du0X9KHabErPxB8zi{Zc` zLqqC`f{5kH$~Xa8SB614`y4e^y=i|ZPp1QrxQ0vqsA`ljr|-oWU+vK+TR%=y!Ul5{ zT2J5;u}!H8O%B43r!8IrI}}=!H7NQa^my1U`jk&^D!(Ij={iI0(}i&A)vR*-?~oz% zENrUJS^T`;QzH$eXKN}KmmCUzJfB|+pPajcC14fXhYU2`ESf-7^m@YPZ>Pu^3IkkH zE@i3v-sYr>!-(KgHvvCdZLYBN=2P_*=S0xrU@3JzqHdJZ@3_&)mVN$^Y7TD?ED}e+7 z#hdqB+q;KW86c5Do`PP?I9=LY-P{6m2OL5>Zud`@p#SElYkSDDJ)A2Pga|OK?B)Rj z5a*88e58tSqk%aPRhDa!epe>SRRIQ)*H z)_r<$7V7iM$+l|r;+Ke0{mRu3Et_A9ZuZ)BgOZp;)mD?DjWmSnNecW~Zz-&Y^Z^2m zncmR~P0PK%1*K4++N_C1lk;(HgfkYx^^JfC0{{_w3q5lfW(-AsJ-ee)N|tnoZt`}> z6r+8ZgZ@JV?huLdrwwOXaRs4(So~(Wb2J2WdIlg}Gv6I8cM(T;Q76>2)?_BC#kOTo z3MovzB~`9tSk8E zWr(`QF$deEI#)OiuK)fdh37iXY4VWc9w7!#X*;+d3gIfdg2wZ<5!4{f=u%B-{G16bI9Uidu&G<>_Wq8t^?jSg^*q3g$tm3U`LgVwRe;_ctJON8-3Q_0VHXHf8 zcmq^iiX=O^P@R#uMyi^oSBY_@r@$l~<;8l@3I5q?SFJj$zTAe3?TO4|+)@Gr?f7WR z54A6hh_SNajH6`K!+c-qg8KMrwZCh15~!&n677W!^i{$$BAV7W7?C*jE26vtx_Sdv zdJBrv)hHcmvdrU1;9WAVGo*NaL>pPF zd6a2;=uGa$h@1R58UujIF8Fbc^kM2TBF(f+Q?fyLio@#DwBn0`QK8|~WEWqM1llH>w|=wwYmoE{AD~fu z^x}~J#X-m`oV3MNQ-m$7m0J)gQr(CluTS18cj<$VXCwAWhx5G zB1xto=8f~0v3{^d0on|8oRcEEgoCzBnyx}KK1TAL#%z?4XnTSb7?jtq8V6Ce?WyIN zbOpC?U#7&&-&LWjJ z)tIh$Psa~tcL=3Dd@WPBG$c;GxnI9|MsEO>Ws;Ar zaaKSXsG--Bgj@0$@_rzxw5t!a#;Veui;+*VPOl3X4bl|5hV&r(O4JSQop!}B`~V({ z701cavbus%2vL`*IBJ8rSOTgM$dOhXoUsPq+yh^yg|wnCd>4&qRXF?rB`5y~y4UAv z+|+Wf=84R|ukmwW{h-14VLE?dwd`5>SN|%sv*xgd%1Y8``fK z@z|n20!qlmbEXGU>>M`ko=^0rNj`pKl%L)ELr+*WgvJw0o!FXBnwz_ zxG}UGgp|f#Fk)8HS{9jNxx5RYj8Wt%6(p62$?BcD8^lOK076AvbAl>_dGK~czbtN6 z2D+DMCeKO;VB#6du!`^&;K632{6;1(|IjwxOHkyp1F0pQu~;-^MF1XX%R(Krd&ZdP z!zRN`W!y_@qKJ2iHow%V&V7apAbSXxm1c6Y=zz~ogY!FJf+uXfVk0mGqb%B;6AEDE z>WZ>q&zvS6V1DJxlDnygRkZRSpoTJ1;fb1ZTTfd)!1ej1(@=g6y9Kq0RUR92+hWjb z#6?|TJ~t|_y3Z-cHCS`iJIFC=&6sxK0xLX%^e07~GO6fu(n5qV8M>5RshaBV85#sj zWFGOnQE2~=j?Rs8@G5PQn#k)14;Y;&G?cR>%R0ZL;2{_)FRFPUPW_|HlD8aGlt#oX zW&U_{!#AK3zh3~#>p%tkcUJTC?$vi$=chjup-VRCh0VV2bmLs`ZD@^`3ZMfMlRkcw zg8;-6ZY?gTIze+;sarE(CvjdWKPXX$C)?k_GiEO( z$Q@9E2(29FGXcG`&lDQBic(CGJ7-O})zx#eOgJUH3%NwkW~rull0@`2fhVh3ja%6h zNs|#tc8m@}L~0SE^lxl0uNcUo&}YV(;bDMmOpioQIDYJzCm0L_VTBvk zui4_*-@qq=de!gI8fN+pnDL!f-Q^I?y!qJt`ynA%^{?JxP**SQKTx*5hY64jOh$TCapM><^0Y# zdXzwGrqfe>X3uJYf0lcMiDAd`2d!a({v(L4&~duG@R_Op>GqBTZWeH49%$DH4m=Z> zVi(~nvBjpxzIc!Q0=e>4ckR#{YERt&_a1xSR&UL}ve*3_pNj|WvxE&2CIoXY^O5{h z?L=~}&a1+0%*F_6>a$^K4^o*R5+f!q3^iQhO6CZHNP73w;NiqDl7TX0i1y>Xntt53 z{xX(+6L%gfiR$HbhAO71VH7q*IRP#c3M1KtP@K)OR6hdQgg(5wRe99Pxf!B7V_fD8 z-Lrf2FW|xUN<5o9AbEO%F0-$#^6-5<7Yq_$o?k&J9oy4JHD7kwLn?e^Q&roJkjqc; zy}Q#V6byhbav1tkGB^jAQ>?~2cBen+5Z51fyYZq=;iM)?cqA3I#m;?xqPV+}{JaIm zSVKJI)x;gb*n`2pV(q09APhG7+m>3x?a=<$zHq{>FvK|tA}&9%9qLYWfWWHi8$~2z zV?QKm6d>Yw*>WSwmJL>AUp&wN>wD=R8}$EahbHjw2q%^$%u!1^SWm%Xim< z#c(#^Ttg?dRvaE?-J5|$K&u=(M;&Hy0ucqH;+bBv?0^2CK!|n1v$N0F_~zYJzsKYm z8ZPnOh}1`zh;V!-fe#FBK+-q`#G5Kxy@%JW3Xu$nO=waLO#x0;=wCSkzk$y;)B>YC zNXCczn$e`1QP+n~2_Zv~->lCrihuNVvW4aA3>Ug?v3bGdgZ6o_ILO`KUk^O{bmjBm zlsbdTWJyj)6%%4miMYl)e1BTA#b(L4)PT}07DG8J?)(o2J~5;94$;MVXA+Z=^C+xM zZ~(cxTp*<@eB50$)*RjSaNm@(*T4HA+}73VtkK| z;8)d?dWLz@ErnbzN)GRMEVM$nz3&Gexamc@8nN9do^GH2PX!}mEy}poPKuoXrEOX4 zRF4{?%)6@mWJYlFOl?X5{tANNWdzQiqdDX2s)cfcf>1b>P?9F$vJCz>(ms!Jqsl~O1X*J(U}0aF?7; z0Dqd=c`*@B&~muRpI1MQW#Ff#`|)jnGtCdg6zZ=kv&6k)q?~)$v>Cha257wq@pt*O zq+(r~KS~>Cve>zgA379DXKZXv`ax6Fz#LeUR=|MvfW@>7?BpQCVBEXwS+vkF&TJ8P zDS=TkFSy&nI+Kpcg3gm0#y$sK#~b^4=0ame_wW$K8CwjrEwM3WBT+q`;&8YkW@aRA zY@1NCbkSpB5w-|4tFmFKAt5+_t%2=Tm4+o@p9Fv$HA;q83-Y;hRWQ}}~CD1LaCumiBfYyRF# zi6~H6gc^&ET4DJM`vfK;ou=Wo#aUXR(@_tE4!u<7Ym&S{`3&5yp+xtp!J0{niujD1 zJ#`K$rJnFC6qjI}7$js&5~8fXm~!x0wMXSjJ+gOn|o#ok|}9>UqUSbJ3xt_ z#I8XM*f4mqO*b9ObZVP}YK6XD&EUpwk%e@JUB>|4#}x{Mk{%pJ!xi{;&FgX)w!v_A z9x0{4T$J=T(rCzmg{r1~GEGm#{e9L1Hd&Vd{ij-xtU>6NigW?Ge#>tDXv=tdt z=~KrsMDKDd0{q|E!-CY~gh43I#0cm@f|eUJ3d3@{RRTb?mO7*7SF9+&ks* z^)+>w)Lkgq(aLd2`HY5-qmHw87na^z6sJ5<3VW-;RV7HjPrHebheY8mSwl=_gfdu| z1Qo@dlbb?ZV5(j10qr59s!BKBp!#m%A*V}Zotud)X0#lpP>=I{*duCOH7o83oi*=0 zgx3xpJ-(s7Q?_kUv!j{^ts1@)nw5PvSkCu5JQd-fE2xj5pk?tKHYa2l>{;^XW;<-< z6IQ^C%7w!47b}seNR^d=6}Y{fY#R{SesM{8gC4DM3J__}?Nie^EDaoIR7fWULl2@5eV9X~nSs|FV? zNhslT1SUNw+zT?NN0^ZLf$mM7s2UuHY1O$#(SGjB3dV+RO=5d(vMt#XTP5> zURB!jzU=_Ve!yUbUb_ud+SK1^eHgY_bCO+;bWye~AW*INf!pu0YGmGwQDRu?5$6YL z_@3X!ws>CiEtx%+p2m*?wA$^qNkW{vu6Vponfc-r-o$yBZ>O2*IJBc#M z)!Z1z@3|5P;z8!%Ut8rrcJQp&k_%*5$iBV#wYyq`W;tOGLDvMbf2kal)BGL{+ETVp z3df~@M=uC#qV46Us`ChUQa${k_?WUsHLAZSzgVNPs=fKf>oS(^@8kHF=Vy+*KPzHK zwT}tc`S9j=ude`gXw;iXN>`(sVJ`jcTS4#FHT%hFxhn6Ik@xo_UmGjGg7$D`Mfx z5E!pIqj{15e?*;&PSr;}PiYbVCr*z@`EOvlc(~J1BE&VqO|puDOw>s}5>G{3oNBXL ziYH&d8&ND~Ak!2AMao~KJk|J4WdFI%bA9kx9Yq8aB2`@@89S74OinFclL(;OpwGy5 z5u*g=(vAi~?r&*9J|~vCK-zO=)~kwuInXgvO5@T&z&I^lLeM${f*XYrYZrMWpa#mY zioS1_+|+>uoH;GMR{XX9V3K6w0ZUdw(=;lvgt&~Vls+7GNQluhLCOF%8klA$%2i%K z9+|VAIY=!*`Dfdn*ZlK*Ui;!1YibQmZ|-k+7D-s^2aks6{uk2)e#2YEO*eiz?684L z9=Z{=;`yJqp}W)Ii^4dG9H2u-$gKn@kfmgnry98TQl}>CGoE+iMrx1Piu+*c0nx+HSuT&R$-FB7fal* z49ng;&-qdk?Dns4O={{qk-*XUwWz_v_AFj6JjkllS`NZ-nQQ;+I!APxNr4A=kcL0> zYK_C{*wTwLTu`@Xz~J{hK~q#9Q$u)t$ZXbR?SqffL_cOHxye|8Q2c8iS&SYpEEv^Y zD5|ds=P0Le%o(4;>M0c*|HjhC?L$`ap0Zqim{x(SNl0*_st${9rF0s|aM_GQ zpKq%9lDpfpmV{(J#p(P%K;seD;T;O*+BE%d71a@&;w~{|J6^iH$pzE;&k~)H%3sy9 zd-_RcGMwkbE#~HJm?ln);@c3S#f{#MCzCdvlp^haRLp*Xjv+;jn)J8KP_Q23L@){v za&0Z2 z$+l~9t;wENp6u!Ce%|jdT-$XX*pD6S32u5*UGv`xLW#CQ+WE*_{~PmB4&9X#_mX6N z&i-I%Q|*Vbuvae(d_R|N2Bh&&Dk6 zujI&-G{`}eh+D3lpv6?!X7JFYfz>>a?x|f*aiE_B3$?j=Q_uvE2U|oF2>jV{vuu2h zfQ$6?qLljbP)r0FShob2>lq~i&6A{z(M2}%)Z!oFHu!1Vgt(IY1<1{yC^%j+s|e%w)+>^Fv44%(;GJ?qi|OT=wbQjoQ9_7zh$3#K7uYp26NeERmUBNw0#%vs@# zH0jbGsHvryALC>Eq_SDt4C={imd2UWwQLru!xIrWe%WL#(YNY$4S$jUr&Q6?-jdPd z*4T>n!UDKbOY%QDS)%`Mzt8SFs3IeWGESn|*uC!w(H&RSHfnwB>;m?4CGLEuhEAG+ z);dLL>jnq+MWuGB#C(%4znkDCS^9+@V25~UE=`oWg2g45_k^6zDF+QN%o&A8@|iH%Ut(3Eyj>>a3=im z>slO|`zczhKB{)xkRj2f<86ZfU{#;p`SbwfDQ65X^}~jM${lk9-g3!zeJMEjpq(?t zLBoB+1le(vCRPDWx%Qk)-p*Haw3>qO+h}@P1e%bCPS%`4 zm>;sYi&w#9@PluW+(qj+OUCZ>Uiougca9!%&-B-wExV!q!f5xp8mea*ZD|_@w6lUm z96+!OH%z_pwh1glY14>vUxlx$DF2G66&Di00s>Zm*tfm?e=S`4kV)a+U(CFO5PY$l zg5Z2nVd6>EZl9CRF%Rt?Fmenn%n8h{`7dk^4G2s=}gSrLPu0SD3DyYPad-}#d`usu0@4wU=F6|M*K+tw&HkndbYmh8U&)tH2 zMdig4bLJ{TX4@tAzkmN|OT>N(3Db31E&U#2pU1?gNSfjPum(@0D+BzA5l`>}#}9q!5w{bvN!GsL8ah zxLO4YEkjElk_AoBYPYZsb}V3Brqq4YM3E2B_1q$n+Lt$HY|;@$3~ap@XW?W_87DFa zFjrrI2L*d14=Phj&T+uKwfWg%~f4ALz z?WUtU+%9j8G8n|EBP3w97FC~9io;Gl3E?#g)-{D&6LPQ0oSjo6JH7UHwyftDBA=(Sy72wD+^P|@TW8U(ISXp$1PUW~SIiu{elUiM{IpP_#w)Q_Os<8t47(rreg(qa}U%wHO z4;}w|J{uUUU&s_GD{d`K{bNTQ7TnhT?BW+8$ZU~H=QmS{6u;#^JD5R{c}aY3YkQkp za5{9~Xvft@M{t3I94KE`Ok-4@e-+6x!}BESt_X9ChxaB*LHg63RNGj;czLJu8%@_C zqOrXVcO-?MwA2&Ep?`+&UxIHlNWdIeCv3M|Tov(y%A5Q5ZAO;!u87OvQhR!s@`RLx zDujXlwfWSAOS>4QWB+dOP#suca$XoqhxTNA9ifpP9JSbIhLRi7TR0XBPOpQ_dAgqSYH_|9X$t zabwie`3(nI9yn2PPxAQZU|1_9Z{k|^0_vdLz55C5>E|UgU1Nusa~+f*tb@pS;20@< z{2AAmshi zm;>nyAY8un;RRwWUY$QJY-%)T!bjVPhj&G5XJ=p2iBz+k^V3fK>dRy4ZBlBKG^i<8 z+kXl(CTvMB8{{SUCA*}t$~E4_5D_ts7-%&CX?9(xgEVw_6@)wzj7WTl&t0=BvsftO znnnamfYyrDtmZQXJ{iV&iGuZIyqr~6~`(RKYRM2XHkS00SEAfqvoCG7;g83&cD zDc2SZ|@AiPd0a(mW-MtUNU)YaO?$goBLCsW*a>GBY96utyx3z7S7uq zIl_WPhY0>+NS|8Q)JOZyEb*JH9HR*XN;pGL2<%Liyr4Dg8x0$S$Z92!a;A}bhNeg= zje3fmi__h+-Xb0BJJN{QfRfunm_(;zv6C~XU9c$BaT9W!tq899KPcRsX;?MvxQ#)v zu{p?be^Hrh3qFNRFHK088D@n*`YMVoFB~Bvf_+5MD@D)^_4p51qIePZ`c^$?Nd{&R z3s#d%V1mY)>DQx!dU!WM;g5{>R%gQq>zH?~P>!ze-3AF~<30x%-E9ArhB1?54k7#u zq5U&FdKKiF;x(A~^nb2>J&UG&uYAtrxP@4+VO5NYp@he%*#c?D#91aIHSU0&{YfRi zD_?kjnv0Id*G`SsnV(raJYX`aKXf4Cetiiu6-h<$2B;Xtk~yj&HP=U z0-fxVXsH6JbVOn!r4VR@2*yr&&zCSyUFkaMgByZGjxn-`q^phO94{CQe}xmTwq#gg z$>Sx3#rz2y^8)IBPHQ zs)S>8gN5Qkw5)U*-Jk}DewLM7cyd363<-s-7|O9VbQ|muoJFr{=ob+bJid)-)@VZ| z&KvQpy)ABIpu0EB?BlVZm&|JXpy94&2mhIXYC8>DF?k4alU3nqBb-kSs_y&oG zz8#Rk8lp^IStu;G&0RVoW2<#wtCaHPcqR8zlpz~5r2$jfj5bLh_j$Z+$b1NwN|qT~ z)0i(%Z>7`0p}8i_KH8=Db+&`cfVbR#(dkAx(Q+%6;eP^%lo?1HP`yOMEV?2$Pg_Ac zH`Aj^+;9lYzY(+}4<~}cNSn`=ga+WL7XiaL99>u$JH|H~L5$&oA)yvS?P<*Bx^NmM z0TVh`QZNNNR%;61aWBwhK+wON=yUE88RC|-qY-RcV4MjSZ_7A~uqlIvg!$4x$=p3z-Eo`qn7ODHDKu)S%79l=<_KY*#UG`CQP_E3|?1IJaFHqWa7OMr9 z8Z?^QrFZjAFS}WsH{qyr@CYw9Fu`+?Ak8(>3ZLILtszky%2#FVl)n^Uh;4wC!G~LYG!;k_D*fci&*0(70l^1JM0_ z=o1%tcQ=Y<0J`SKV_6ZUGY6KXoXQxuoW``>A3msMlZlwSk9ibB&tT&L3)3=$@L5sHZn!W)bsr?Z`LD^!Uvx8`i0}Jw zEP-nVg&Ue~jFc)vU(oreC8coaeMiA^g9*H5=T)<3_dL}%es|QG+6@BCU(_-;zTqrb zjibI&XuN>SgCTUl)N`AUNg@8&A~QANu&%i29F*ZSOs3!;(@Uj z5wRYt@S3Y)Bk;*Z#5RbFmA$?kP9ryw-4*f4s?a`N@#Ff6%~E+wF`_V<|xe_ArFs{Q<~Hk2z2aI zUaW!)G|1KLQ{h_)S2q3g;!E|$$f5ic8r#3FFswdQiG~j{6GJmQvDov!DFD4EDPD=@Jn~Viu=H@R01}ylYaMhf8NS zU{T~wy!$rLOD?j>6%o^g$I>q3IyhIli2O4sfv(#`w^hPIGQ3Xk>o|-^{=2LePAW9s zh<$M$6rPfD9#o}Xl}W>HXV+U#?;8)UT zIH3p~(o0u)T1Tj&9*`wd|2&&3Fo6=bZEz|R{JWaoo4QMs%iCx-;-(_?<9Ty z(!3vd;e3~{$q@mHR%U7XFmH2}s@I%nk*R!76ZWT&ORew0`g*(TP0)-SiEH+m3w(Py zdYfMAe%eo?7`1kvzWIEy^Y}{(OiK0I->bdT_|BhLWnZRYE3VTkOmW=fPx+|Etx_W1 zYt*Ju+14vm$)XCDN(WOXx$Sp`Mu{!#m+SrI?sFw;F1`_y+g}QS)c6iBbjwj9EJ8;mlVu8`h!@`Wbz(tAmIm$fed`yP?XO#_vlA$D{{Sm+0T=B!#7hL}vncuf~3s{(lnqlBG% z<}XB^TI<X~6CT%`{=j~}PmCSOHmDO#+xka6pTxBph3QkrieVvrc(kA2dM=1{uiTLa8 ztD$rC@u6mZyIOB1(%_ZnXP2pfg23EgSE^u(7kJ^=YlN8kFF#-{H*2}yq-*A})6TCV z01FSD>w#9siF~W4S8c!tdNu6ELL$AvmrF*%!JS#w-j`7eF5jX;jyef68F`dIqRwrDS}cTzWh zQig#*nO}zB*!97;O~v!_+dw>llbi2`e7CX{Ar49_Hz!snPt39B`5XsTJidOY*$*9N zUIyI;VLfU2UKrUKnQ$!z%Rdn!HFWkH{!(A-D%UkUWVrrW%bhO18&Rs4zUQ!=S}l*@ z__OuGAnPqJ#HT#Ht~{>pnmq=VAR!D)hS^3|Aa<;a=+lX`X% zvf!8>2Xlp~zpa;VS}3lM03}0w?b)wRLeYWBsqAGgZ05y^k?7OpTnOUd_&eh#qB&=s ze#b=~-{UMC@MOx2V}&3Ve0T{8T(91K(bf=Qp$ApA5Dqp{PU)EB)*VAMh*r(SY2=s0 zo0<~?Y`v8bmeo0WqOod*(FvdQmvH0N&zRbizDhf*=GoJb8k@rTz^Y51{+KcOfF31+ z7Z(VJH4ZYdFF2~+zctC-h$A2rdgVD&O`EFzGi}VZE=Uaci_kjQrdc&Ix$N*fs=*?d zdF4Mg5euSjDeT`U2;k7^jWgle2s89fdV)e*tt|fY7a#d2v#5A29Ik}ib!u$Ir{ZHt zDCH-Sdo*^zEmv0bw$EO9jOpuhB2Hg)-(^5YPGiCOR97;5tymlIbrI;^GZ9B z8sB+$S^1X;tY|kpr!SaH2;^sc@%L%<=(&K_Misq%K}ZfO6s{Pg?37|h^keEyc`O2N zLmQ&22QjR$X^C$XT@IrdhC~FY1QFM1rnpO3@`{CV8q?rb6o~JTu$ONqDZW3XK}Ofu zuR1AOPIj=Ng;~_!PAncm%ntSC{Rd?q!AB?$3p$5yUtT_Mq;P)`n4l1?v-2UaNe4C9 z`jFz>``bfJGT0c;;B`ZL?=s|ed^~wko)S}Kx1?Kxn1uuT>Kk|X=R9fm zeqFWI*`)%(;QmmLt@9t$w5ysU(Ez>T1W^7hAfHqOtaLE_8bH#Vc$ba0? zxGTKaY&gwy*{f!Hgu}VmL1X#tK)FPv@}zlVB`HnaM7UfeZ`m4PtkkIARul?WDxL&!BC^_(-a~h&h&O`ft_T;6D!E= zExJ(hK$Gp;9{o9c%NK|GE1~t&F|Oo9;%ba&mIYtS>Vvv7Wiw&i_2w+Zs1OYTS1ln0 z@cWAra7|q(0&JVJ&Cs)ahR3q%wy}m(pTVI(Y_?v0Ei3HvT&n)aINsP`vOo$d&rAN^ zQ`-4h=yHZ+S%AT#t0ioZ1ar5lHV(x z2~#-@E1ZfaE$aO;_)YN4M6isoOx;kOwS|G#DC`#DcIByg=XqsQ(fL;0Nxx!o#wS(9 zd#!Yf@+)#ubwTaK#AFRsY6M?kZtP|KQ2V^^`@Ir60T>FPCu6Nj_yHtrh~E;AuCiE&onlci>%H$cM=0eU zpY-Sbsw-r!VVk&rgk~Dh77qC+=pIKBb-MKZX^h-n*SDBkAktL?^{RPVQs15-ZoQ_P zR^fQ33}Z`^FeazbUH&{!?=}2omX?FDig^Gru%7xJYjDMO>hbcAh~O-&p?WNvvo*2u zlf*7(Z8_=G{dpfgEjH8a&&i`CiJ<>RQoD$-#*^5bTRVj~XU4kQKV9*@#JnEEQZxY& zabsmP(i#FRfsXRE)m^@MbFZbp_o~Z;8on|`VmfQPr$W-Z_W<_bfQeMNQhPUhNbr@V zksB&1-fBouYN+#D6_H$@(|2P%B!LlH!{>@f#J!)53zIijpC;8OJLtJC8W)X#z9DClsZvPf+T`7BEIQUrG)2IJfFRzVT zQH?wh7!5p{D3WufHU?9bS{{%aeiOi;yo}}{qe>igzd8Bw6CiLTiKgu)eqA ziCF(Tb*Ka%MHf_%5M-MYCXH8z%C7m#wh96Px{T7z&^hIM<42iWU?g^#N>RE|V;RrIR@=1I&BC|tQEl&u`hPbg zb2}CK&kHG&*b`)FxOH6-x@5l^B`f_v3Xwo!^{#f)KWdvF31Jta|r39}@=3Cu(V z=Bwr}Zoz*b`AT*WMl@$BGm~fPk09gk`0iGUXpl#j%_^+#%Z65u0rB3(a_t;w{|VY! za9b8EiGLhZVz2xhh-CRvU=@x1igYVtymW7zRF`0#TT{kNw7R z=^hvDe(AOxl>E~Ne2qkMvr_eX&xAp;LbWTxfz*oF4o14F-zrxFXyP71G7M- z*R;;9aT@PoN8T2q6J~UIsapB9CW&_#i&spEhoAp}iU~3aR+f96nIBMHBmJWMAOuk= z5Js!b05Ob?&#Qma8#IY!wgij~_y=Sw*B<#zLb$JgQwcz;ao|LOiM7-K5trj1YB?#) znaI7_IyK3E>ZiZZ(h(nFOw@MhX<1JyDgV>guKF+oX*zduQ7!BEK9x05E|h1al8enBRyT=D2b<}DBDsdNB5MCf-QNy| zY^eXYfOYYBxSh%WD-}gHi-)gO1?93o3qor8eEd^m+sKDyD)rjeETHn;5t((5(%xsn zxib%{^WPfkxYbLiWu1>Qz{o8x00i&(*08$^t)40!ggpKF@F`)vCgnpo8p>t7^G3y!}Eq^`(E{9D<}B(xmuRAV;8^3}e4+aTfr1 zcbIK46V@!0=j}$ZA9_&|fJjD>%pRB(W7)D`Kr;@;u1dTAY+9ka=TIC%B>rd zDgdM1I`us3uzLC-Ps{x)K==L8J{agd^wU;d`JV0UDJ;vId1RPq_JrAsD`Qy5xULQz zOV%MoMpDRHG%_my9i===uYM`SFkBIrQUjrwVJOT1E-|7z>oR@v?#k1BL1p!nM}5?M;E?vGQWD=&bL~PkTa^5VPv0=VxohP~|bfv^U8ubB-0rlkJzvA9*bmK`5VX&tQ`6o%$`p4d?J+gBO0c zLGD+CYr>lTC4k1K{d(NO?ZVC{HF0}DT;}#UZjR`JMmG`TvqN7}o%UarD(h&~!SWFR z_hjDHAPlg0QiY2jjeXhvHFBu(a4LdKo%rkOPWO|hxkT9}sn-v8HeorhRjSRbRM}`L z4$j2S!|4&AG}BlMXE0R^I|vHqL$m919y!ySdNd=$dq=(++365XJ5&1_h7wJuJO@!8F|v<{(f-N5j5+yu+rCV;dUh2_B`!s9O) zKd=Wr{_%?pK&+d#iF@GBUOkwI*qkFF6|S||&~Z@5@c^%RR8ZV8SnOUnp4~Y%|MM9+ z;2pPNCHs}vqO7Q@^k^2aadY~2#&Um)`~%=Bux>qZ4!}KsQMVaj4Dh`L!m?4J z%TFvW_;=x{vd(mSf!mxkHBazqctfG%8Gq*XubbNB>oAk$cH_6Pv^*T)aMcApRq^VDRqFxAqrd@IaXXn3 ziBm>Z>jZ)8f2DJ^0To{2pS;LJeJdWPi$|N8xE(_r=F-Gh(7)P{Rh+Sva@YNWsrQQM z$^Xm`AlRvaJlZMU_iL|c>#^BHAi7Hf>6iAF7c0}Xe*QSsdOWXD3;=vS{(IUu-~4y{ z@uTY>maJ2`;q3z;FLtnkPGPbwPZl)Ykgnk^atfY&sP)}2;EWzY{7`;Pa(O9o$lJ;u zbfrT=rS=@KozH8t8l<>dWyvHE=Uj_R>iNp&z-E~`c698`%{AqHR1w)r_HBe88Yx9iEl#Y45EUlbWUCSX|D?`n2*;Ow=Kw$}2 zq2^7?n)4pDXNUB6~@W-ZIJQe5Y0E{r5ZLke7T6q5&v#e+QX%u4qIp^$xu{7bs$;!wm}mQmV? z?T9CSm7#Z&_3XULmNER)PAA&dw2b4nDoY z#3OiqH|5w$nO`2;Px`vz**$BIn>)zfe@_$}-8wp7W5-g2lmJXG&_*GW)1#JfM!^?T z%zb87yF2;4q2Gu~8L~MAC{mup`M%(;O_qAjwsPAuWfX;Yd`C4&?Q0`80i?zcCb7|& z-0b$uQ#1UL`F}OzHXM6BVb0>D_}$Q;1I)v7Z#|#|{$+)iw95APCA6yJbvnMk#C@-Gv;b1lopEwuJ`w)H2kr zko+1oNG1q1iPRFh+PL~jw6h=cCqT>Ed%xi@bNU}H{&YvvYNd^tR(8*!rRI2*cI$q$Tfn^DkgOgUDqoT-a~t>Fqo)OwB|Jk++1Umc+qH% za$&X{$^CKi&2C$z5`wQY!KZLjFaKVA`N1ZA4UUy{o^hrb424p)sL?e}<20CLg#fCy z48`vBCCs`*aGfEM@{O@_kuihmb!|6y;%&gS7HUx#9~9!b=&=>v7~s6EnZvTqRr%(*`R^U5ztOv(npJG4p$#WA zO{Kq#NnQ5pMUrAsq5rd+j$n#ak3y|qPAq2)oC4d#UHe0+=iE!5n{EBff;e0wVUsfm z_t3R|(k>mZpL-1c4q zXO^Tx{$q)flQZS`ChjN0xcb64pk-}OP7i8Zb9~WkX72mgm^`$FC~q9z=Fl9IH$cDE zx9j0`vSN*y2>+MEQm(#=_Npxk!oRdDtdC3Ez`8Pb?w|2F!6_MW9*u)Amq#YF7{FP= z)!tEB2A+_ns=1HaiV_qHda73B`y+f8Eo<`YMCuh`lLZEu1h^lYNt0@sB^py6H6**% z@Pp>{#!{c|=|X+_>cln7EN$y_~XY*)r()yDeMvNH5D4GlpP3& zCS-Kyue$HXX?{4BkDs?0D7+7PEa^CSP+cUe8hfG_?rZOPp&02TQ z<58=H*`ax7T*>9^GB73K&cyB*u8XA`v{h3$Ju@=YdfI|{% zt~*t*b4z=F;~NfH^IL7>Bm-1*tGh=&^BAtBD^cu+zC2`#5N|eK5;QS0huu^B{%Kj3uNR zbSxbSOtlzwFJ!JLnEwic>oR&GU)Vk+c)AKGgRJFLn<^^SyX;F^fJ+r3bp~Qm>)jz4 zLM~0rc!_hT_}*!$U4_VLWT1^kd$^<)Od~VUe|Pxu^0hxUB<+@;F4ukH>&#?^bL?Mq z(hQ7cBd7SOVzI_IQbyc9^}SP%^l``221`)Z_Fob6G1ANv{}51IJ&Eo|cN%kdN%q#X z6vptcmU~r`h(b*Udkgyp`=SkFv63(Ha?+_v{f}If}yJDoW9M)dvAx>_j!u@AUO>56(o0UI29KYRe(E# zAvpEX#sbX*a^oGvi0uR_zNI%VBCXe;WItPs25+Y?_5(MmiH4eoe{sLBB#OUy`T~g>uxh^{Z?!GO=_srE4?|aBTIVV_1=E3krRhih5#laO=Pe$ z66cHYgqQzs$RpCHq3y}!iTGcly(NYiUy6uX9w!+$!Hz7TU)tT3QumKHNeQXv%k6#@ z>A!8G-rP;+Na<|drgZl*^QCe7mhO2fW+X`GuX$l`J+43 z_-FGnx{S1K4#gTP`TK@BcHQ4ZBWZsH=&}Lj?iho2BPAvE37=!BRm9V3iLmNff_KJJ z5{=5iJ`+i|{yf1(p?ZLHIL>_UkC zJjhS+M%M3yA5ZunK{QsoEgUp2!)qx~MCsV?&G)DEI5UA0C3_xQ@#Yg$rj|KKxr-Dr zczDdXj&lun7rCFJs}&>+zuOba*Ne0Y=kFQlrGLWun75Yh1~m*|5MNAWp|W4w*ym;| z!fLD}cxHE-ieZ06W`9>)j0ho$XsF$k-{FqD0-@`eEGbL@;J|FkSI;JAYcN$`)G19( z8yAotBO>7xnEJ0l<=3gDR15ISwx+SD3t)Jyq4D+$F-OdQUL+drNU4})*o{Gh1 ziXY1ovkEPzsr&Y4-9V*@M1Jo)(?2?h4d4kGCO`!=adfIj39k2s-)T=o6T9JsSz$V5})8NLlU!(j?N*qBLRwT@L3(H6amO!U&; z;>0Q&h5ZR9|1gVOmsbj|`kY{Q%i^Gl57r87^?ydlVcd?nzV?VTabhG5#dwHwvr7~z zC-1;QNwo%+;BD0hr(WU=Tgm`$R17TY6^ukL*@0Lk*(Fly_<RRb8&qBCtnf${zKX<0j~fDRxYVS(9lriWuyuXtp~Ec;ZOz~^x*=RG~$A%pk8HPs*&l5BEeJn5k||x8;n)vmL+Hzu9UK8ZXFo z`mpNNlk(*vd5J3imT4uxfF1LJUMxNvyfo9Q(_nTLoO$hN9@awH>4$1awSU?;(9}i zE&o#e49tL{>{E)EK9SN&cAkRC!lBad>2*6S`ypNWcJ&vS2h%9z z^m3mjlzq=4=vrY7XcuGO#Ls6E3NTD*&Rzj$GhbaJW#`M&yQSu@ngPVZkS1#+ZvF)v z2&C_uVtyq6o0w!Zoe?>x9z1=ier5CnN?^C9@$6xjz5tYao43m2Cd^UUbo)y_Vv4;B zQucQNYw$ix{l%NjYeccrCiq@mQ8JnxH)+Jc90K#K9vP2?372 z^#7obi)g~hk=U{wep?=YK3i%`@a|<@5^&1@dO^>Ws0;hx4x4Z-GGf)EKPPcy6&W1< zc+)sc_h>s0+|{v1>g$mBjU78UG^3O&#JbRIX$TXGfy>at$~AP3^G|32iK~&aqd0Ib zw69%jl@ku*3S)WH-?Gf)2Pgm#ErElh$(1T=J z<9uM(yuH?EZ_gQ1sQDL$BYV&C6Hp%6-<#s-1s;Pd35sA9LKGsh%C{J{9va_-e~O=T zo#eHNFPhE5KWAVdfdMFd%R$_=)n71clLpH(rTdOC@2x9;SRQ;6@;cjDI2*wx{tJk$ z3yF-)x2a-*p+7gZ*2V9jVG?PQEuLW~nnLTaC z)$DyLwpG0)yP$>rR8!XE{{D@~T$Xe|6TqGMQ1dG?d;uwkmR&-cN|@++X;ot1q9mW^ z*I+tC#vbDs%tqjxA^Rl&F+YD7;=N8{F|O~#+>tVA5oN8cHWYL;9bKSRI8yO4*)AN= z7a$-5IwvDP@s^zl%gVMKag-8~EW~TMnf@PY$p8Ejki$5NJR&k~zyAYyfHCm(ya4Jb zv*NQbE>&wj*%2l6hs%e@wKaBAcE|R551CsKo(cZhfmF9=LHrHqSl1|<;iX`O6t$=EiF| z!EXCd96{)s8X$>IRQNZaq-w0T)*j9`H z+K{~#0p2>gu9&R(7#Q%8YGR~ zS&V!vXbOsN%|&GA)z)cUTEJkpd*p!rtt$*O^~~}XS-O6jsf*~S-&HRB8{{qBCoSNV zRrxmimFBid6~8(QHtSz{mju4QMoUIgJ*qPeXqp(+5``h4`N%s9zV(*&q=F>|^2PX; zbfpAWGbyAFw>$OpVR8~^x!r|I{Sc|qtl=eNMTjf$0uFVpYTTEB7bD-=uia}9r4)3O zJf1}T`O$6qozvn1AgNtSQdX8t4KLlvQ++^a8C!V zkE~*regvxFXfT6nTL+rt78agRme`@$_~kF08SlfY?AZ@12uun6M&XAsG zl%NgP$D!O}q^#gei6;72M2qbtVf7{TQ8#YWc~Yj}FC=v&`yPbq*QmWe4^Ltqfbg=M z#hlibLpwJM=w^gF4oK7cyN>H-btIUi{W=YCsxhlHzu~eD1klW9 zL#wskD>7~YNUmeKg5JTUO2(WCGJR4ErL%MylZIic;h2z%T##HjP;$#g`&C(*q>iK{fmcg$Xq| zwYWBincq$rE<7-3#`-5>h=0`cakpo!G%;ruDri{s>Wj+Xory!nR_a_R+kN zu+ksXQRndsnW7O&1YvxWv;dmyu$s;CK;)_+O1@^%&JdnwwizGI z;{$5x(`-5Bs;mGQ0tLYMHKvYi(CFi>jY*{e5BZLYT%h z1$a*Z$3h-IfC2WcU(Q*!7Zf01`IVg#?=C{^LeGv3ZjFed0}(qiLlj=`Pf#R2f}12& z?vu%U&llLLd=RlrKjqr;N3z(A+5Ewdb*+n_IFga0I3xe6g$$pRX`_boZ2N)U=D_0J zQR4CsOUDpX+c;0LcVq5G9XY4lclo|d5s4T1=9)>Q%ZFs14R_bZ8-YH(a-73`6yRLe z)&x_C_j8uB%nH5Dm?i_&$eg^kMQ>R2m1Gendp=eH&^2?OF zfWEmSz8FW2Q;#+cs$& z#s2B5RTF!e@=_ayV+yAGMC%%N&$}r)(ZRZysEd8DMi{Q0XwRQ`2cciF88TLNoc&8T zAi-LT7>O5P>rR8Y5E@ZszD3I1Ifo*-%e;f(pWO@7X*owF${uQGZcm8PO zHw$WUNO^y2D<_v~6zk&&WgNY5r-@)n48BUJ0hx&2VWvDTsTx#V}BmG?Qbo65M{ z_kiYjUEA?Q^TSpjE|4oS_O$Y9#MEnqDf^$-**(cJks?s zJXcEHd+ABZSdm&eP+>TaZr83OeFcH@ke*rPljAb&(NW+JOHk+=QGW4imvc(Q^7ZQ_vI zB){sXwrG|owqoLKo;k)asOA&>9MXiZfBOaOk z7?e`@wWbhRGHoE*Vh=wqeBrvFLg^*}Fo`z=SEqhya;-hdF5QI3|JE&Jj#Mx&D^$Mf(zS7AqQG)9P`;_f%PG!M^5 zwl}$a?(BQ}u6%aR)rySGyB5Frr+tMwe-Sr-g+X#aR$0>zRc6uAFLK0LPyt#q7^?Ej zE_%zqBrf&?`zCtHEFy$`K^I}Fyc>A%!N=$N`+{_A{koUBDU4~J_R>D&hw$~WPdce1 zeh1;V!*=KhrDTY~ps80L$9>U!9EM@TD#ohB0UzRdFqSH=y=G}D~qUxSus zl;ilhK9`ud^5YjATEZzlBOzm9i-nZ303_w-zvLdBlX^Q-TpcLr6 z!uhvEItXR|hIgDuJnq zOY8)`-o3KEK3}m3NgB-DTREb{UwUjvI!76CWffEz$h2i3rs*~w8mie);B;ESqcdHA z^$~UUC-wf;Nd|qyNVtK`9XrsY0<_~NW<$cNqD{%h+SoL7w?|tOJ#_2wP>60R2`>J& z@4}yquYx9mF^f5(%6~+rhweXCi-tk7sWazV3S}^N5&cZ2CCM*^p=v2HXU+w!TdZ&P z#B;WzWw&@TilhMYsrR@eWzeDp*{IKbqqgv`5S($EB55CInpjsxB;gm(T!qHEJ!o!u zv0swca#=tx3DntX*cbRyNrz;1I(-&0e&nIhnv9=h&iVAd>RPJum>12rRXkd!!dqu{ z;+p^eWwH2Ev7Hw!{Am)x4tKV^oZvM}6Kt|w-cM{!{Ug?{33-{6kdayUwycOwv4fu` zR{Rt#rlvCClFqI?{iJUU&ztK04rpNIcuS5T0pryik#Txl!3j1yP6J0)iGuO53LYa8 zF!W6SLh2G&RG))e*`c-QSHcwlSMJdy;M@mU#+lNb;FDkqu8zj>*mpTaP>;7yQ+etZ zpCjN2cYFIX6f@ySMA_ji9m`x0pjlxaPFy;uFH4Y#4Qzfcr>_%c&*to43YmHS-W!FS zM=TZ+rQZMjy8_?iMsKBvuxF^KtIDAPiEvVj0#ubrR=MpMqkm~4-^gvpqm{orD7||TMGq1fwk%Uj*ZkrBMbH+WFZ@DrDt5v|JnRe#3NX53@@4@p}b(3?A zyVTPH?b2LdU72Y+?46o!rtj4% z>Fcud7t)JeWk*A8^wpbpUEX(=4;?aeQS9}d6GrjrxGurdPqN(>FDtuF#(V;Yx5xzT zfOPhcr(M)b(jK$dQx}Bch>%dS%%0-_3= z0we1^gHx~a;eIHI1Hm%iB!0GWCKnRqL8n3E(DVpvl~_n6SHvZ#s}>{ZVKrMW7p8Z! z>}HW}>GT=4sLoa8!N*@p!M`;?5rsO*;#ebl3LCn<{_QV}JF4QKK3p^2 zeFVzsvk@#-$sFoZCv+7E3)-)}psy9@pc|27pfKstk6WRK%ISS8X8*HG0c75sTrS7% z=Ax&+9&Qkgob?I0VUGfoM}EKV!B{cyak^aTz-iOG(4gpYU_t?2DI56o21j4N_obC% zXlYg8oFqpnjMhHYVxTnuGvB;V{(6+uoHnFP=Mi}W10G;0(Z>PhOnRcKJTelG{uxge zfCRp_K)M~$meuuJtMsb zO{!26F4SJ>%}^on2_E0qp|VfB#-3V*Kq-khEb~S_v$zPqpW2V-b(wVcesC>Pz9#Hd zjzL)GCjLf2i7^%YpFl)bMsd@TcD%ZXm0OK>En78B3FGNGmGI)ZCo#}A8mfCe)df>4 zOMzi35=tH19j`{at&?)rL<{gg^`-fyq%=R7eYVMtEguO6v|^NXlXF$O^=!kbg71YCO6Y3fLSRE3xB z7f0cgf~7QE5`p^q>7K6(>P?TX$uR6U3Kr3!@e%S`3GC9K9Sx$PCiODR4@B$Ke&>$V zQ!^$|bSfEz(?Uh-*be53t9VL*enXOQ_N;MUsGD+KKlh`hZol{Vsu~AHwyNZw`VwOsb*Wf}>=25YLdt4dTWfERur-s4?zR*>WhEGx#U6U8 zFIq@8@cFQfg1J(TaQHCw#O{M=vLNg%xcC-)hpxKgX>%G<~m_CG!IpGZi`01k>Yt9Iq!JCuo1trb7eXa5`OjUICh2nB<;t3 z;zd@_d72kdrr?aX&p<06kJk)!uX=$pU+p)tz?Dj>X>fk z@aRe%Y4W|m_GHX2g@(I}xYvBY>UxUv<=4#8H((CG`)X|AJ8nPSx^K@}ft@7gX%9D= zrLcn3wudSGIgz?4*SX5?%Z>_0@w3@6wj7MwcOPpZ-;a&ZmCl9y`a}4jqeqw}@mj*4 zX41PevRb*$La=s2aRQP^+R+i^4XHnItDHMqatZ}$)#&NNs~Y9r-3X9Eoxdr)YRy0# zo>;kNs4LGYZUdf|H>!%x9;!0Z0+J9q*<`~d`2RLXuk|Q-l?LgY3AiT7(BTMp3MA-A z)T2CD`*atyX{|fnxAxSzGmt?o`dk-A`>dl##cg}m$=+9N$l%3|fJX~KvfmDqpROf7 z73b@_aF+nPj2Z*Fgtzqty$>f%NcD$fG{5!J{b-|3bye}STM##G$Ebr-oC9i*o}v)XxKQ8AlLR9J9sA~jxG5$5iFs#5hr;yv1+Vx z@w5!vl&&}r%H92{`W=>C3io?8@52_@iS=$eB|`>IR=@DHhxMFw@SA1rF@nxo0R;SX! zoDx{-^dtv7C+u)?BzV-%;*-ud^YNnToKcUvq_VuDb8XyId7<7C&mJXlJa#R$K6SPK zA(>dGA?A~82q=w^JwP3k<~~Ap=68`(avwhE+;t7I?Tsl=$Q3Q!QV`G62NYjf?B2RX zr5LL%?2R=WE+jvX|H5Z*V&%gAQ}YxyjL4*Hk?Bs=DQ~5IpW1*}X01%pn!e=TSN?)L zM_@BJ>-}@)bok*Y1+}-lNJ&$2X?fh?=eRj9vtuItNZrZu(;pXXRKw=-@z{Z&q@9RG zI?^bmOF1o4s|2F?Ls1_~-|tIp5S0p+7}97j<1FcRPCs6Mz?8$T#W-VcbJixZ;muq| zJw%FOaz0U}-M)Sv{V2evf(TKdo$(OXMZ9%hgPmuM33_}BKOweJg#N{1VX@-kf0i^9 z^~arj>7Ha3IcSK1^ z+{+6(m9kO7ShCYLZlCz&@s{eA4k>L+@%Kxy+bECbQ6>3Y@$+uDr& zz7(AugMrfyqn}}^G8=34xlA@?m8YjdMLdWy2kq3bAo`J)(>7qDF2bv|g(f<+W@<7$ zv2t^?)0q1A54qy)^q7R#p0Fh_;cr}h`J&po4MF%UItZM^0zzpCAjuy+wyBt4T)J-B zc195k2(8_~j?D`%Vz0P3#bg&CIJQDt)@;>4g~geUWaaB(EB-m1XxLjeJ16jK0A9cI zt?awhmgRw~Ymy5{g93olf{d5wSv(QiH;0ZfYIhpb52=QAf6ik?^tU=t$u(nk@$O<= zF4TYUoWg8rYw|2X`y+aKi>2SxDPa%hXRr^QzAkJnt38o!3FtGqJNl4hw)<|D*50W=ad@C<~lG$*kW5T zutR3oQ!Oq8MnhBaYGVukr9PXLW{w@}=*LZ&5mbi#$MIWhMBsl$WNX{NyfR_Q+MNDk zoz2;_MyghoV#cs^9yPYfCn(EDgi2S{ts_2xcSww9+k=wacM~uE)07u9Yu|i+z=bvZ z7DmqOET&?1L40&cefPI5eNo;N610|K6vbe;K=;auSw!(C7CD!eD;BCcw~L?zTYO+w zAt4e`etO#YPugGme_D7<)FrYWh zk||7Q&yS~zNwtjAV~+39EQelMalruEp{hJZQTU*z+U}` z#W8x%sxGY(`b9G`=>)VaBm1x%XUm9BP{{W;a^q|sT3$Z#{4e1{#^XeB#O(#N-Gkx; zx>6;C-*J|!^6jSS$R}8Ou>LPvt^>;BV zG+~Zdl_>Fl-z6bjq#*!ao|KS}bWVX%W7K^HDNE>H>-JdL5zYR~|pMhzK!#;pbHPD>Bo^WUAFU#YyiW#hbaod)*X7%(I>+GHVX)WH>@`GHeOI!+(63}*|TK^mhg^GrwTZQk8R*Z8YMH~Eq#p6RcQxtt(f#8t^E zkHn8fa8tQ=*EZqv+Cyg6<1iEUk2cLh05G@Zc4Ez^cKVivYp0}^$B#7{%rrzeB&s@l zPjPWgA7Wi^VVBAfk8|YgLU4^;b70I5q3ZTnZfUV6eW{p@s2I$+J5dIdX0eFTb0Sv` z9uJiRRyLv=52ZvWE~PpppIj=kG80Y3EkM}SOc5?2i10K$v&v$-_0;^DVwf4GIAN(& zyBcgqixH+Bb8(;0(@Ny5{(5~03`hoRh) z4KGLe^we%XAS)-{H<$L!xpf@*)T(wwTWONA&z9eG8-{i~4`!YfURB7MFD>L#Y4IYNyXU}n*Ehw0lsc7+jlDE=#`AX;!u}pjxFZrcfqd})!?gelr6HuLcgR*uG&U><`1Io1|3@LmCR+;c4L^cj-@yqo$CQ4&9UYCUj=3%dUSA z1(HxF>yzmX%shk*o-ZXD|a@cvF-Sgh-u^7mK$4$e$lt;$*Tt+D#~_71bLE_^-J;-V*jtDtyKL_>9J3$~VSNzZ!F=)HJ` zR6@%--d!)Avlt)0X{3{#cLRkc-Sanc^(>=5Ew=Tes_v*Py7PS zt_#u{Db|y?FsUej=2Gb(G;96$dog4lWL~f}GXMFloWW==mK9=aN{CSxx?QjbKy7nx zPhIN|3XE?FKV8Dczxox7Ur4ZTZzFhT=CuvFmej$+ZH$f~P-4!Swdo0@EgIfHXoUX( zxnlNqiJXtwRWppfpeslvJISTNxk1w}7e+MFabSK0dap*5+~}4#R?Ho;ZWI8TSTUUv zhq0lXS~Lq6pgCn@U8vfVzmr4O(UF;jen9^=_J}+D5L{N_`?%TRaaH=plhTK*u2P8P ztZ^X)T}!}xRX3vK13Og`6T($yhzv^vW=><*Mcq2=9`KX@%q<9esnmk~$?*{@E#=~v ztXsXT*nj*$M1A%`A=0r=k(GD2pBtsc=pNNRIBY2}HD!jU)QqxyCvEJl^5 zP4ZU|gybiMBj;K?w9#&Kbv~ANJbTMVt`m%i)rYb$8-UM9-!jeS)MBKK;{2;PFep5u0-YC+CS;Baouzee3w_^*L!1 zYJ53xQ#pEzUudzW5Y_Y|$zb|ukw)-q9igtjsUkAk*Vd-(J^-%c9T`DSI30G12?FggeJu8QlIu(hX~`SZiwhLPrW3r&W&>A5r0oX z6jp-A8Zx?rE;tFBis)$`_430}J!0FmpspY=yhj1F|5InwLu<&)KE}koCdQCK#@6#7 zLVx2Sx?PvrKuS|)J&p4kE8^OuwavOAu=(*t(lZAWAm&K!pGz&X|E*6$3oq_k-CaoH zJ;q3|0v0qBC`x;u{YLXL9&InBG;EhE*gn2ds%eK$B>Ly4ZHy%90^{HqKFfxxL}5Bz zq8i&H4{tE8c7$xwE(@xF5Us5^j3HZAAtgUTZ3Q0Vl|?pJur+kB9)-(;a{!dTb0#Va zHiIuBZy|bd7kR)E8~izpW}udCNbb4tgdZ(ub#L1|c~xt$nU@Vn%d@>+g?)fJFFUHS z-D|)IJmjK){(3mS_ap2-`aXuQLbnM+e7tSbCe&vXiBx{;ou(#T1SZ4TPsUCtlz7%Qy4#0@Ka`dNft2X=}OiF4QZA({9S zbn@rjXMcL&Ii25v)hG;U9pu_g*%&NA@gRFn*dV|Aou>V?P6^M6BhB19(2ma%7hAr> zm_p8GLx`UHNqLykaY>I585jN>+gZJ#yW(Mb&~J}TWZecuP#WIL=wG&= z(GkqHgb8m^Lr>kK#FWf@dWyS@ZSx@HLdbn4CeTE1=&yeZ$Kyz?cPlL z)Cx@$iuU?1oQqy~?}u($)?;j1-jO^AT@Ps>Umzf7sn;5)b5)%=f_VoOh4pItH|Z+l zo3)gYGQ{<~b#8<8FV0&UF7}ThTF)o6VS@jHV+1yx_-zU9;5o^L#^sTpk$S zy`#=CZnx?z7!xZ_-2J?`J5yS#v5jy0ba}#?nAP*#W0R|c&S%)0{IM1D4k#5wf&^G) zSP;79VH6l;P_I>=wJ;(avSr9I{foSE%CwEV1R2%so zmjHCwJYbO?XZ@}IHSSeEA4nJ+(pdOp_K6X-AC;9O3lnIoX7=l=2jN zWLOqXz#wZ^*e8)4$)IK1PKW3qPhb$zu9D&X?HZ0JAMP1W1_ZdJe;8h$EL*Sl%8WrY z9tT2zmU$T$VicF1K}o~YrdRo!ZudTC;MSYR)#%>4{z}#F&5?^2SKSHS*7hBxn4*Jr zS~~m%Bd|5d1HcXlMtLKS=IS+$$0C`hKWf-Z&fi+-`z@pS06g*|3^pzH&6AJj6ZdM; zKJP&0Y42BCoe0G&zT-rkY0yr0_oQvXx??I#ASvbX6lI$-X*b}|`6?iIzK?DtWnfcX zxh7Ytr=D_NR8WTShS0h1s(Aeq^mn-j?*9^~8>tNDCKxriMI*SU3QenyX=4wkYaW@j zv^l<5aU@2CjnmUAgU>gpDs0#cV7i%ExH@lyos(o^&Kt0KRzYFJXqYJpu?C5i6K=bq z?Ax(szQ&k!L8B9#SH!ktIBevK)&kq0AZKA!w!?vU;!vV3MFl8r>&)HyO9s!G?kc+b z)kIYAe3YyxoYMlsx9cMixJ+*JGID-Dw3R?+p9~3baHQAQHjoE_k#|f-_xox`!D73T zXCa}7+ceon_H7WHPB3c2sh9O}9|K5)#UE^GCfSqRZ%uRE!KoI{AoII5zsj$X9oLKN zrT%^HHpKgH*;4Yxkz^4gh=fq{v-W3>_yTG1YXbZDAJqLN3CGg{%X;avR)<;=To&sb z8l$3K6)ol$e8PFa4bxDf6KHCax=yrIMx?uh9OXBOoq=nSEVc2r!TR|C>h(HOiMks zeC6Hc$L)`g0Tou>rzX9xG;w^>GJj`()f-omPcJ=lM9C^GPZ#*4% z#B&bhXs)Oj9w&a6ab1{9{^c+l&W}GLk)ko*MUf<@8xCC`4N6leCY3e>cw&{~DD}HqzKKOWY0iHu%#kMU-{pw~l(Y6EV2zN5)a2SH7?M zTl)#aQ@*}zmjWPC|IGQ}#p{!{@E=oPve3a26t4!>)$2QItLCn1)HB50q1PRYl>B8_ z2x&p653)!NKwUn`@@1MBmb z&{8ZS(s-^+5^Kze5_YsBe*A44@9+Pb-IA3t;PrZPY{DS))}Fsf%tPaUo+yZE=> zUhSUaV>LbRf(-XNYFu66GiY9IKB%Yg&J?TbuJkmO_zC@X{YynB4x?vpmN^bp{Sdm5 zkM3%w7@nDXeIj4oG0nxe&!~O#w*cl}Ys9O-!@ZCKJO&1=c9d&rEwt3hoQuDHA?I|4 z?fuQ03S+v5q_6uU$YV#5FyNM5HV=+arQWNL=63cQV6^PTH1f6qq4i#@UWos=mT1=_ zrn{N1q!m5OA&6v|{JGb0-dG5H3MhB^y1p=9+~l7;jIW>1w6r0mA{z|_wy$Db?kU~z z5i$BQ*>J4~yMGw^OY2VO${|I?F@`qc<8Sfj0;mw-BAbnN&^u)djNxwnHQMx4{kcqZ zLX+c>5Jk3}aP6mn@O&i!FWO2<6*qLRGY_ptNQ&M|3vDKyC37@f7fXj2c&yl!2?(bK zjOIPHK?B)aam!3?CqxjQ@qVL`1(ZU0sLxDg;i|+KqiE0sxDV&pr#_QX3OCWr`M*7x z^VvKMUR+%~;%>0-LT=RLg!jEi5nOZFIL;1E1Wp;q4gAHPay**i;BVtOe#K~~Gy+&czll6;CW`cxq64JJae=c? z)fj~C$@*6T$pf7^o@rJDS{>f*KB8~PT4K=d2+cc3I7Gh{nbFZ*+?%cnScQC!C_7~E zp129WqJj!Ue6&W{-zL6kDu_AjsM(zA$o7x!oq_lrIS5GrYZomWn~yt$IAM|6b*u5L zLS%?9WE2=i!|I0G=o`Y`tfQ5s>QouL0+E*Df&3TmNz`+?sV+aojm-rbp-dcTUh2zNa=bu@E3?a*?k=xp)=&jhkH zE$7wDt>4|$Qh3Gb!ycXyIaXqZJl6teDDSa^m}07eOkyZZb9%sG2*IXogr)&Bd@_V} znFyy37xi>cn5Q-8Af|WVT7-EpUW;E750POPaBM5L*Xf&`|m%U|-Bq=AWVb ziOM;G4{4Y_eS_d8F2Ai-*>+#R!Vwq#LN19ib(ZcFH0W}kcctM~r`1AOUp)<)K;lD3 zGwB#^YbHtkO&eZ5XN)v*QBb-2(lKhmsdZ0HnP!I03{UKrfQ(*d4WJo99Z>OjH0IQg zS!^g*0>i;-a3#^t zEQtr2M|LGu{c`I3&i*#inR-<&f7KEP!dm~Sa^&Qr!;AH73VZTE`mk#yyDJq$`o;6E zA6iqfVzjkI5FPr=c!O#?Bd!%5@qrzVv zLPqwsOP00}^?S3spH z;ejShS`uJdqU^W}PfPd-6`>zsIFhrn;57T2E*YDC)I0Evd%0%bIgfxP1Fb^GB;J9^ z*T$|@R1TaQ5h6W$P`AT9ID+c8?WMEnPmcx%Eo5dLZ(!?+|HjqA(d}@zZ|FF&r+^Vp z4x`h^!6EBNkp^;!4(QNKc6IFHdYBYEIQl1$j;F?HJ^Kcb0NC z7{<4X74fPf7o`+yla+fw>=hHLfM9Hk&`|4?(p?1yL3naKZw@=`#!_%Y87Emw;#qwI zRi6muEz91OPZ_BCFN%!J!#{X~h$8E=K4;6H0E|qL2p-_JoJP$If_p%*|6ItzG%Q z4sK+_##i+cpz{!@h6B!q*F`}yBiatJ`0p4WJDDFvf?}J8$n6ucE}(N?*YGLv!)sB| z>tJ`Eer1x!CkWaHrhPzfO7~B)7S5topN|CT)H3nyENf)yfy^Al2aFWE>ik}f8DVrj zYmeRZ7$w`Z06j~@F$QXjPIPzv6b8y`Od)nJg93Q+4O5>r(UBgGAR5dql{A#-38tE57}oX-O-zCWlSRv$>yU1z7rrVVL&Gk^+57sL^_tu-tgsLS4rN zAyGvJV(MI}kq0<3DMOIqbAHoqCsNlBTigfN`dw@(r`alzd{RRI;JQ9$-KQ=ma+nzi z`d>7nAZ$AFnF%nh&8+`E2z483t4qJh{rV%eDaLcQI|flx&R8;}VCxtty^`(9&h&X? z@<=ITK2v-DefF=mNjM9nGRkqVo8bE-rJ0;wNWqc$#X6M6(t)OS;5RQm@0lq|keH(P zZk{{Y%5>-U2^eyZFMEHVYFMBh)8+p@(#ND1V>>;0Ydx_@0bwr=7Ct8s2e=d92i-Kf z0ueIW0IFu54I2cv_Ph^JOBgMXf083;l$wT1>oZ=y3GY4VUiKR{Ka5RyK7v^fl!!`H#IF zP>@z`!)XD@(EbrHkoz~yKatQG1NDqN%4s9&mun6&2(pvL943EMgf|x@9TV-%VRO{G~T)=}O4u^u=&v|@`)pD5#xn0tdt93oM zE_ErFp2G4XQ|r1$U1itXW`As1uLhN+6GZ?zf%)p-SE!n$Erxv9mDr5maAZqOMcjW=f&8Tkvjl#>Lw ztYklv+WK@niybW`j6ewih5jw3AGQNM68fZ}%i@)w24sCw#mWV2L*u;TifBjGXGpHS z$pgxoLH(B&!O9>ur?rchOTY8S0VZ!mj?`9hC94Z0-Y*OJA9AO9!=w)Pn>f93tn-?K zy@9Jkl04sZ4YX$B>CBnqLgD=Xy-c7q!eaiiiH9!l=E$*LElXE;gMI$`XdgCmsxGIR zOzS3j?cEH4;zy9<0&5Lx$5|A{rb37iq=wVdH!bEwx=G9!bcwz5W>YYm7r3vBAfj9J z3pqWy(Jmb`IO={&IoxJX2b1TU4IC?udnTd3U5vATygb-wz>n6^SmA1me`-wC-G!Cd zoXL1MUd{ExRU|{udHwo<3Vs6UvJi`SV^Yy~p|SY*5lViaO24;G)yj5ONv@8~(CfBD zti14|`@>Q9<<*@xzyg}fGVSY^{P;yO1*V}nq)2@BKtqSXNjDqJBJ5*i>m00Vkc~g~ zBl~%;Z(y~^?0)Fs`^Bdj{qbk)TD7x=Qyn_n-?i@0|KfP2Z@5Klp4t=0UFRQT@$N44 zfWAn(6()V}ffSg0kLT|kyK}ou#asR#w2Ta5p0^7N-t8gBV88?(snE1Ji5ddWTn}Xw z5I&yANG3e4w0U_R^*}U~uWn*4MG+2S2LD6~NfV-bNGADw8&vCt0u~TWsbJWY2(U8r z51Evf;~Ak5(`7TmfM^T$@#uM>V_;%O*0>mz6UNIP;aF+m`=uR8e|IO!Q{D+h05Xms zLvC=$7LpA6_}jp05+7ZWiHsoRifM681+%ukG`fG0r4jJfiR)r5BSb&R=lSErMBnna z%t0R~^L)(6g@oQVDlw;VCZ~g1%ZGgvKBBPu-cL80{H|ofm3#bhZ+2!WU=(6ul3bVV zp${&Y;We zM4;#JZUMFb4Bj%%@sbURH)ZHlSaB~e)RrQuK0T95&rPgISt2o0rqR;Y8_{%JN18A) z8f&)f8@g44R|1JBlhy$fD`c@D8aLz{wnIz8g0Bp4`nWT{K`3tZ@H-&M|7f6c)ohxu zXVj{R!hQpv%7C`AWovhjJqol&IpEaUp)4WJ| z|MD#QoL@r64cj;O64$vUEIhAgZrV}h`F^kb*OIf}N;Di;!++^O4&+c#r>zH7HJWU) zG3zdzo>K__1}SOV)1Aw(4eDDBXJLFXaqR@aKmf_#KY0#ZN#6%di~~WK=lIA9U`Qn* zWbVw1WqrJ+h>@DidwQgzgFA#^lZzyy-s9LClGn8J$stYu*V2gs6}Zh$vL%y2+htxh zoddaubUz<4M(%TQT7Gi2LLiX+WOaGofpY~mk14mxt?{Mww~vL-Jd=yj zOqdix@4aMpZ^?d^E|>j$VTU{g_aMKa8bkH0XYNiSLD_&9t(4sfsERe zKoA_T!9OYqNma{VUlGHWM2$$^=N=?J0kOP4V8aYtD+z8qKqRQnv457!fP*L%X;;@O zB@20?Vcv{OHC4HJ(V?!d<4pd^BIOzf4?Y7=2<>pG&roHCIyt(}8O8g`)$%b@$q$D~ zv+;bwwrdU#Z^-AJqE7Y-2Kaxu)@g`QzJLdLEVj_ZcHi1I*yt~0v4*<;iyHxi-&2wM zBwJup#mx(H=Ww|!WM^-iEi5P5v0r?iUOQ&I;gM$AiZFF&bYOnFj2Wh|ID7|_s9jgd zWSH6r)4n*f8{2v9$%f7b`fAB}&h8G{^%kG(6d6U=UP%bU1l7Uhp1ihUuvbpkk9ulu z<0bbKOfNBQbnIg{w1O~LAL8 zwpdxWFwkqZ%cy12yiy|8ZXP6-6xok@goy!3*Hn~z0UBw4|t4b`@Z*0t%^ewX&TKh3GJ6yYZ9UQgc?zE55uC4)I^)CGQA z{;p${65e?fvJh**uCpw!r^zZ56zuTM=#oY!(wxhuQ}=*4D}POntpv@G%REawOWZ#L zF3d6GCXyM+;y{gMiCOfk%uw}20Wfv7dXkWyV+g^$pwMO|fzt_%_3jGJV(7bX7@`V% z9P2t4OY~4~`r>6A8)#ockf~r$al?Q4dT3NYe)s;Ja6RZ@a=SAGzYzOf z$5>1Z!Wjy;S{(?fuDuXkHt;lS_M(%Tuc~Nq9o!vu#@> zpdkO(MZvqG7JR^2k_v|5oh?0)ehl80-YhU)lF)tQwA<2-?wj_>pjc!5q1wnsEbT%b z|0;=6a`Lcq8abjfbmPs@)u?>}e_;?kkUnWdsC0Lx2^X1a*})-aT3Upl9twOpd*Vtc29;( z12MlLur*~Ps59@4QaiF}qCEQ|QXByPfCor5W|~2d_~x0&*F))H%6Y*+G6wt)P6*vs6>a5_(jOgW-@_d$hul^ zG#K7wlJ?1ffs0J0v}Sx+y-+Miw;swgo!`#RuDT)Y8b0geTo(UawpCfp2QD89O?&!! z8k-Vf$;m%~?JZ{%P955@bC#8;*vIVdYf9?~k$7A{ius0C3X3|r@*B|PM9>Fjq5U9W zp~|35I!90I*QwamsZ`~1u|G_(AZW7@3FW=^KW(tKf&oDpmAj_H!tC=PA|aeeze^Z* zBEtT$CQfoZuqcNvbn8>fBCWSS;EM3gg%AfXEkNbrThiEt+90MMkqeFs+uH|NOKyu^ zdXgf&j%1myH~#M~Set)&n!2lSaj)s{6*oOv+6YUQ0Sa3i)lGoes6~6GA-Hn1Z~hs} z46E9avqNlX$U$9ISMIs71$J*@eZN*puA8l{fLvYIV2eJozFD~vOfAKeCw;-(TX^C& zD2>)YUb%hbc`>bEhqDw{!BiiEoibgR4zNLmP9<&NQ3(keP*cJtQg5j-Cw2UY>K6Xl z$(k(AK%qvGO3}A<%+D1TU(vm1EqdBitG;09U}ZwJ1+7w;1g765G%Gf@UPc{`_qrp6 zoQB@P9f$RE3)@$+td8Utv*RNxoGvyEQ(*IM;OJdwXv2iAnlnQI@Lmftr&R0!Q;X8c zwIidiIS?j76LgxDZ6j`x*2oY84c+aVH%&x@T|FXqfmoC9w?$UIVuvWpxVAvbN=dZ` zix!?y90l8I4E)yc`Z{e;s%FKh^6?J2|H+$wM&}t^>pyWoOR%-Q0$T<^g7KNR*2lpC z^3eBT=yupKe8W9|sW1p2PBRMnh5{JEIr2Bn{oKoLu++7jOyA@`=STJ)pTWnA#o>#8 zTj9mR-|J5UDw_$@O+oRp3e+v&oQBn1?lVdWL@Dyuv(Low3xi*1@z~fh-Y7+2z8cQ* z_b$4!uCCm}It=N<;F!9s3mYG5X!2!rCLe#(0ZhWiM3Dh>wnW;@@TtR7(b%3$Qp+w3 zh$Dhl&VIYzsBnuu3z?|B9Xz5TMdnRH(waMJxR|rkVHhng`9SnrSRRXoTOF66rIQE1 z$LDNWYI4zZYbgM<4`U*+TqW!WU&6y^7b6^SUj-*o^+J3_K3`OWr5RR0P95~R(5S2% zRSp+nT7;@RLB}NX`MuJjUVG|bc4HOzYAC8z=qw~NKG=r=-3T*P)Cq$5_M-ymt(WGd z3TN}MZ{hB?8FNO(Ae17=6Q6o*)B4Q6?H39F5nTE%Tk}S!8$8v%+mrkM;<>`|BJ`#A z?g5P+`v|(En??KEs`G` z8fRiPwvBi0-}C+l=QDGibN1e6t?x=~Nx|nG^U8jU+&K9SO+UN!Z1`s9N@%UA&aL;& zuJac|F;yLDq|80QxD7R1HRO#XTE zNoNY|7%g?Iip2tVV^-V?JCi_;=C%VwS>3tG01&7CY_d1cqZ_B98g%D{qg^X`AOm%a zZ~UvRVPpvU*FA-q-4id5SRs79L`O(qYlpW1DU!-CO|U?SK=7Hl)|Jgq%cU&0CyUoJ zcPs6pu@>&DBD(AWjyVy<0ahD|p)$PV^kgCjx^06uU@t}iYHQVLObWqNkG;`YXEy&= z58Yn+LK!tjr#QO+;+=X2FE5rDg56hUxeE)`xNzCJ(8SO|{R^3jT^pCvk>1HY$xVJ> zLmu_B6(1qZd#EAef0dGEr^uy=)TH2nO-bjM5tA$7WJQFY%7v(z-oeDW=wT%nm$Wi^ z8W-P0kAKX#mfi-jXK`LYLHYl{qVEw+kA!SjC2VW>UuN=igdFV0of+?3#32xNH1&19 zOf@v;>pH>b72&sc{^SWWhc#_Lf^_WKCAxSQ5B$M?7pXi4iOLr2U)vvR?@V&a<`JE6 zT6KrOdMk+kTj7)C7opNY5N|yhB#lkqBmtETj)7k^uhMxHud@5H>mHs{SylDLvI#VS zn%LG6z<%RgX~kvj^J%S69*MBpTJfg(f-uEjSO;}m7Uj-5Y^m|a#vPx-0|bBcT-f3L zGb6<1vKgS8Fc}4woe|2gh$8(cH6IQls)o0|bow9^5P*TbmgaTBC3b!(_Y0hV*0;wy zRw*60+mC{f)g{=!;=|9*;S(ji4#Uf&r_Z9QCntbI76Sv)XMhq?=ma6wwpm|=xiZ2y z-?=;8nNZ^Fge3{pOtI!^A?{X&ZtRgFna( zJpHBI=n7+`=v_{!3MVGj6q8VlG5u*aE~{PSJwpPK?~CANBRseW%)W_>Q^AU_92YFRPBvQ<7}Qzk_%xHR3G<|5z=39(~O1i=_)G~Af#tpn^=3ezO#~2#o9)<+0;XoLd)Dw)J)Wd$0Z7OqzgolqTcICFQ1KLbnS%ISw(HRZ zkp*fCB#z{&f4I)_L&hRjeYu+C;`}`&j8%XD^8Os%Re4pf%a=Ts66U$2Khp?>C$mv1 z8Wbc=;&Bf1WSP>=+BzZF3UcCUxhg#cdGN(0qIR{3K)~FSc+A0o(b=6Xoc|v}c2GPw z?h0|Y!@WTb@a2{5SY)3~-<`ijJ@8WSuWk1VMDOSZIR;@e9#>H}c%KI(O0zK&H&fqA zqfSD4DsKy$hCcfBmr3ykNc{f76+gzGi!mEIu_wusoQNaA4N4CU~0 z_nrsTqc)D(cF+E#AGIe5Ade;a`E6e!A;$zY%V;_}?Z7x?JuFMa&t?6jOR^go zCody?EG8p=*lPBdg1N&{kVmK7z^1rOH8@0fly(ihkpzG2$ggj+G1fiZlENF;S3nX> zTC#ZVb7U+0`!^n?K`NL0&LnMm@)|5$Dkvd%gvoTY0nXha@GRSTfV3cztVI`<8SbVT>m63x(~)4B^qXy?uy-OS560 z9mOxY2wjVRQ1M1ozuI%%eZo77>*j0y^4|oblG}}T(0rh#&Z+BNE3|8;nbLd6Gv3ph z;r5{K2L5|8_ozP7g34GEV$7^UO0w>^IN&K&`Vq4EYr6N9U1Uppa+#2SualR|+Xd;j zm_fwIw6s`uRlIb1B2NCTXDHjp_d%BIY&ONHI>kV5!dI*iSVBD?$f zhBU5Fc9>Uzpvu#zcTk}QQtOm)7k|+r3r{->JM(fsi^%b|S4h!49 zZ`mjLTiJGe<&m*-bNt4WtKs&}1PzqfRxoiKt@9U<_xJ8x{@xvZ+GX5cxZ}b@2~cn2bW~R-laW`2>rm3@d3B3S#xjXm_$+_ z1wB>vEjcVWvf>sNkwAG6L@vzNS+tXg#ZEfinZI_0jjPZ|pZq^Wq>pySQ*}mFwF`~2 zBzO@BDy3Ono%!fTo5i2*QQz_I210VDA-xBP;-B!VnfRA6wHvBlW|3Wl|{-L_G zlY^sdm_Po>Zg=0NXE~n!px_!!d(Y)}@>`w|cZ>+^>_`|4zrjzE?g!ypLA}p|8Fu!! z-1c1fsh3n>BXK4;*d$M;)Rm3*FbcOFm2s-!X&G;l9m7irbz^-OQP#V{zm9CLYlxd% zXuDDkL_uNsMc~;Lgqp)5hvr?&|2xj~@>^>C9@onvhOhEItvS8FDidzWb%b@D4t@1s zgeSLeOW|%g2I{GsHsR`yDitQ+rd@DK$bI|Rtt@NG#weKeoP}t=6BnQizCOiYy(P^j z=qo$F@pOz02o=0@peg*IZw$RxB5$Ywz2tF{O2~NFrqZpOd+KCF)6;S;0?m`h&5!$Tb_HO_bs_3)#Rv->~;OHOsReLL6D-C&}k!5kPtFS@@$9%b@u z9QWKgk1Q{CU(cWYt{D`Lw%oHJU*<%Xa4=rl8QQw=UqZXX&tb`~SUN7h)KLTv-~|@t zMCVBj66b+S1J=wo9Jq0Xe_-F^Po3Lh;|3WE9NgTxSzt$yo2vzCXG@3|9fzNDjuPOJ z5Myo;)xL?FZ)ka+NlZN$k&uQLDGFBD5fK6maaBVvD z9h&4Payo_APR_|VR%;<8 z8~1iASei_wZ#isVVyf?9bu32+D?`W;%P$Vl(<<6oo8{3;SdpprW(-F*jZ(Bo&bUP3 zZPX2KPEKn_uRE=_F#`p6g5BxNw%)e8WFKm*0aDt!h$%wey8og$AaIiv zl3viZ%?ek#jc};tgTDJZ__zNG&ESi$?~G*8hOu; zzZ?<-p8H;{uSecKvmaIe)+l~A%X-t)|8xpdkYuFz(JZ!YXO`TNMNEHLjEe%TtPC(M zOin8XYp^)T86G1H(Y#H_hm>CC7qi=|e~FUI8$kJ5pz1QELMK(eQ#56IKEZyt&3Q{{ z-PXP)3xnCp?q6RfUAR&X;kVAhEhO>&UK4+DO466JE8Cgj(g(d?fS9ru)(rvExsSEH zlsc=)X)G?Hk{2&+eL6~h-9YD9=|y6bo>?vLozMiXFfmJw_-l@)lnvmGJy?}qL@R!dmQ(Pij&STY{L^sxkn`iezL0tP1WsQ@IBLbT zyJo91V0B4LX4BmOEIrX(h|(oVH8C;2Q*a5cIf%4>;zt zYYQd2tud`0<_h4x3=+n`jHzGVItS=MU4 z(XCqlp)GP_oDPl++^nnGh2?sk#XdZpntE-d-Mn?OVeiC(m$r&lMN0(0)uy`{{WrH8a!WV z+Iv&K`Lc!@%E;uF!n@+$E6??ob-XeB^g%u2xTf z`~5Wv^Z1RY_|gKu#XP~dLJKOsDvyUt!=8dMU$GTG9^4K`dB&asy}IO3WC2t>UX@XT zsnhPQx@oL`QEcSXg^SoHQj?YtIb!_P(*c94eC}~10C}7pFj1LKHSBKx%#(Skg02EN zS??I!XU2#`M_6Q|i!@wY`YSv55gmzbe+#1E0&~Ue$e+9^jI>&SGy24~X2a!`?db=j zE+&jyJ@Bb3DF1os%}0{cJT;CtauSgQ$%VoMp=v%c$L`;dmoSOad6=^rV%vZtQLoLN zwJNISa(+;51NNgHkC4fdu#F_r-Vl*`9APr94*RD&@~B-&>C_+?$&D0^{q6K4OonC~ z+wh1#h^ca#(z5M3=dj5awj1vKM1CZM6CqAt$;iwCTIUm)iA*v9vS^8hf8CZo1sHUZ z3a5`;B#LUn@%`Rc2uc5IO~HB9gzj_$U&7M1nf(fRWF?HE;eSM2FaS@wr!(JN2Q`O= zi6oX>r7+8@;#_$`Jz)_D=#ovwrJ-YA#-zspZF6zuso# zj}(PrDt|aec6F_FGR@hD*%L$ghghA%1QEi}~_kX|)q^tyZI1r8D^zrd#n z5;6LTaWq$Wc{0>m>xR?Qj2+aB1)_%i>K;3`^TySsS?7Lad7~NsTK=1fYUqWnXx_&Z z7e@yS12W&W6Gqyf>YPMgiHnRzGsaId1nWebLA#)Mp z2Tz-$(xd_qJ-?DpHn5Z?;v!FWCh!Sk5yD&boR{JIRHc+n>Ms3Heb}b%3jp>f?*u7H z*}mg({pY42C@oyfARyBs!fJaCN~2J4x?y5~KOjY4B1#G4xx}arBRdRtw4Zk9zZ0D> zSA;CBs_NSyq;Ah_${x^RBJS@5xS6ajH0w)+@?7?X;;({PRlHlZd})T)xv0ri27f=v zf!-^tr4#F}r$Ov9huOs&G>cWO22M*eSAX0kgu~l0r215rAfAB{V(7Tt0L_mvS*|9E zM}+xE3Og#l9GI8mwd%3cT8dBqgijC!77@`9^RYJ5 zPLkcMeM}C)Sl6st)xjZwMLb{wI7B51GDd=mN z?q19K^{VDpD>UN!TYHfRZ+8B8*VIQg)5V@&_-~)J>!hQ+a9PZbASoiMF4IRW6W3Ej zW+(0rV7unLNmwv1El@xGvG5FyslF}cfFE+3B0`T#$YLsrIp#}^EmSL&53AiV>p0X@ zZEnZh3SumRh>4_tAj(#r(u9(3Y0M>fuz56a4;Zq4k`ja7h4B~sB2mp z1m=iRiPT-*%sFv!fi0^p@%?RSR3M>)89Zy#c)0aCMT$ZEqcW=$$_Kw|I~da+{l`ZFnuv;vHat4hG}<)cu1G~>nQJN+KOU{8b3xE ztPaA#h7*~GiW|TS)bQLrLmj5Bwvov6w&97`A=miwBk||mMz)C8;a|wfYUf%8vQ|~$ z3hi|_^%3Ir0_A|m`e>LW{p*M^mk3#A5PM;V3xQUJqDIh9`iKl^CceSA8*A7SDAZKV z;`FhqJG3AE4u20(Fp^mHX}49Z%jIy1j6;0xH&s=BoDaF4;ssJ5?p1OW30IgMbsE(d zg$#>85|#)mF=rAg&)f_Q2JC%!aUAA@RbH4a4OTj@4F5+vtc=xE^x)S?yY56kZZbyv z;x&m&I*tQ~uWn`HEj6w0h}pNS&Gfh5SUH`yJxL{D#8n2f&8;~FQ20Y{id&Kzj z$6I!H3o8zo)&nKuZ_FEO$suG*rQcWey|`iC2sW0zKMSXIjNKdCgM-`Wm2sG%6B1$u z|Md>62>#newbbCLz=#Kr@~L8$GWOvn)`9AUe#b5)Cds)&)#np8RxbJj>UF3MTyWAEG+Vr zSBDMyAAj7BX@+3Hlyz8_zF(0UuMs8-J58-Ki*0{5&bwskUls*!-y@9GZwLao>^(A8 zl+#&4zi@5#uuh!BTeO~u?&dqWG2T`m)DhP2HF?UHxGB@JX1O6m_*t4)H zXXblozwVEoO_PdU{Pr2M)?3jcYq4~(+rL9u`K{_z7SKAxVmk$`D=G{L zh(VKoTJ4X0JfQ&&e_f@=3^Q1pMMc009@!4!gro)1iXx$tug6K*3|9__giHZIE>f+2?fUV zxZBg4Sfi6oB>g*5wOW(<2XuXxvBstKMBgoUCoU^ej{z9g;eoIoa8V35%8xVh;CF^X zbg7sKasY*8Rm@9E;XH}}D;HSPXHF6#OM}X-?bxd=3yv1|d;hj4X-gL1U>iPW3c~SF zF;@YrD`s}fh?8Qh^67BL*fY2Mf9ZS|D($Qq+`VrB{+FuDt>7;(jG)FzIMf%nTKX=Z zeZyx#+FIWi?)P)O9TpYmjo{p*Gc*Yj{91}d?f_A5A3=$*@uahgx-Ufov#vYDxSqtG zszX{#Hm5u`&CMuoA(GjaWtTz>-p7?1U@UqV!=}omXeJoC4bl_qdXF&h_xiXZHyE0l zLWht&3vW9o`oU+(g$l+h;p@xv?H97v6sulRad~M?AnVf__g$=GYGRyIS;K+>%oKff zYBQtTG8MNhEMQeEB@BjFcsX;sk8nG6I3HF*gFXb#tAy}D;8a&4a=I*ijF_D!G>@C; zE%5c@SDBwx| zU;?}D5(*KV!9+yul31Pg=&M__we3CdC$nK;3k-t(JA;!LAXFWVaVMLb=m`T*?oDEs z>g!|Bx;E0Y1VDW<%Fa*yNEkVmt4(B?bS~ej4MO%|~ zri3%7=E<$za8OJaTC40hoEn^lkP@#Unu~i(_02r-b(9jjk9i#86c|=d@+;fg@*nbn z1`J<1zhQ|+=#XY zPdzGaRk|QKP$?t8kb=c59D=!BpdTTfz=v2v{tm5Ovfu#@oQ4<3JKwt-=0< zk{q3ZlE|BFGpy(BFt%+p(Kh!sXIIizn4LozlA?=-CR{TDrTQBSwM1hzi|MRj#xKg` z@)>)0tua0-g`s2U9b^Q*F7y_?H`}T($ZNdy8^*9D(sJ1q1$MC^DggJ{IP! z`=38d$;`KNcbv_N7?j{-PTZNmg- z6v7agna@h>SGRlEugpDLGRK3Aa4+L256hh@N^7j>Exup(Psz&fRHqHJ7-?YQJp0=` zn^;U-XwaND-ST_FejpjphgNfD$p5KU!nPfM&63$D^Hf=TTNXCjwo>AGz*~S&1-XOp zJP*;;YD8ZP)w2^RuC(J(iJ+r@dn`F@Z9fl~GQp6~6k07$~7pcxVsS0UXJhHFeK%(A)LohvVEj{#}^Pk}0a5b@}G6O7*hBmUmEIivP)GTv5-_-emcq9+j7X4h(A9>H`aSSgtL@EmRJ@4>@;Gy>m9qSXbZSJNpLAx=%V_S zU?-Jo^>;m9+k1}Odxs8p^#pW4rw0rd3kR?3!4$U51>z{EWAcqK$kq$98tn+MM?oPO zG~kY--_Z;1hhw?=?ro`(QLzt{gNFpt5_H6j*AR_1sKXOxx-)xI3EDXua*vq#j@#n9 zPD8)AkdI9L+B7l|7yogWWzBlVdfOf^W0DYCjQg2UP;l6rjNUBl^} zl$a1g>y#=_V{U6JE`P6iLMQAmM>+R^1oL&y+=Vy@Bu>}(dGO9Lp_HhYhvB18Hg3J? z{4=%lsg=L-QTC4ETNuh6!r6ju2zzIDsi)E^YQDwm$<^fpl1@MrW6V#xyvSUr!sswd zTSSr6^YeEsV%8maMtJt_#G9rgWA`L$FWaK}vv~g6h@aVevv!BxG_DTS;IiU^-EFJ8 zn?+Liy$Zeu454-B@#q>=`WVT}4P~%}&Ep|`uk|%sUc@#=+YT$am1 z3WuNPfP>N36QaMzU9wWnEzK7O@Om%ckGtogs2>wef!!}2F_9i2#Rm2?05}{uA;SG1 z$H{79j?VLMS=EH?YckltJx9T;O> zc*5Nf+(>)kd_f-aZKYOFZv-rzPM>Cfpk5&r-%h#5s2=8hlnAw$3Gp5cKj<;GT+Gkv zlS2d%u2<~pJZa31zci*)a!JpUuMLOhfMa2`d}6%Mx#pJo+?~^k&6ujN6}vAN9vRB! zay!s_SWcW%EdL7_3!B=!1C#pFV9h)kXU%!vYWEC}UO$*!o3CDt+CG&m*l??R42#d5 zN6Jp8*na=yKemuB5wxn*NjpLMJ%+5K^=LD?j(B_sdrL%IHXBtLMYFuNG>&6xPQ0nt zxn&kS(}<}X8;6ZMwrujr;;$nW%tYwU4M;A)_SsnR3R}7NGaO{O6}9`Thda=gYWF>b zxO7}9_xR@TINM0~v5&BN*~!O7Q&NI8X1&H*8|gtE7v7bv>E7dK^|L!;i+v@n`iUj4 zube{CoJ1aNoo%|~&nQYYJ`*i2@y3CrBKhwqed(Px9F>&&r&7+jaTWCXU9uT`iEa3# zarz}L=iz(28+`N~J3+5+Qwrf)qe_Lhlf6FpNUK-9a+(DQuNNkng(l&nEhQLqv?3k9 zSFK^gu5C#`xH2i+-yZE26qFCIl?jR)DUi*K&J`Flg%@|Jm!S)gz#e@XYi@_Kv&t1} z`E!_S*rhqvK&{d{`gYHZA$pwW{>6F!Or;4M*NfyAD{S(MboHA}}k) zkN0xC_B+Sed)LF1BggGb%L(OJ5v@AI;VEYCe-#}JovAym8H(~sS0umW#UqG__qyj&NLe$mhi{@guUwxa%`(0~){Q z&w(TsoV6sjBs_Wt(60^IlRC?kx8a~>o|Hl1&z?fE~G)B`Cnn3h;L zUtRkAZfY6u7O6Hn>>y{0qbh&fCYFF-AyOEx=rBgV?-aGusd=5tNZXIFgm`A<@c-NK zzLD6p-tg2UpabWosz%ZQ9gCm*_Ng){v{4ah7HVKjh{b~*%?pl9=y?NhTBD&>Y9H!- zTm1n1Mj04Z_m)O;6h{LtFYA)LzN@)mRi}(iBA2?~g&dca*tGz6{aRXr-fbeo6_CQg z=6}+I9il1%=k}*?iDYo!2$LUbE>rc9t}*-U;O|X=uu0N&;E7#R1yB1s&5MbM5M;AS z^KUbCQS9CNkf$I{*@Q303t?cH9u9Io%#=H{yn!P7K+Ufj&IrGq_;A@{cbL_ym*em& zZ`zS@u47}eoJx!K!4Dd-(5>T&bx*GOj=`@j=}fCzsg+&W6tpo!EQ?FMCLktqD94sL z+;0zOsokuSe&MKI5CV`l6-w(R_1G9`rSaN?((b}{zv8QB;xJ{tX(vhpD2f{1W;^&#PZ|H*Ol;|THNMo1Ino*+TTXf z8MA0OVPBI)l(6@4zI>) zm~{x+KXJ0N>>y@fYlgdO*b`uxM#kH5X#2S9NpB-gLA$W%ix{hnF38ogTChCubZhHH zSuw+{SL%m4?lYj9Fm_WlaB%GzD+<*0)REr}eJMksniQ#9o?_ee>k!i`*X@!q1%LF7 z9g^l{-Q)XipOrt8z8s9%wF}0tfUmudTU-nwxTrVWgGZ; zLqf4{18HM9)yV0RmZ5uZ^b_O|30E(k)^(XJ_&)KirDn@1BeTKd^Cg(R^2l zF}sJdqjAi#2{n=JY<1F0FysXYRtizXc#kBGsYQXbq7MwryxCgm@U)>3TARFBv!L= z0zpN={JmJj&>M3BrFQ0&d8N zzl|n2IqYyi^r}JrLKti7#cyO)LCD%*EfFMEBm1{OW&XZAFy4&Rm#Jk`r`=1rmj*;6 zNo)+~^&Eaexw3e&*+3y`jhq1c_3%INDSFk={E965CQPD*wm_2zh_r>vU zw@xz1uYHo~w@|23h656t87P685*WK6fUis<4cMtlW8#;h`h<(TkJdpm-LF(z3(0OT zL3hE}4$?nNvH6v%oX2U)!i@2PNNwRR+XEusT*cxt42_r-NHd%qPz~4&N3Qs%ciXAJ zrAx?h-+Ldqmzae+zWx{qYCnujc$z*=EM z$46PJBS^iwhgfrx(sFR0{K0<5z9C=HD1x`e!6*P|S6r|8?!dM94}T1<>31J!4`$gE zRDm?}+T}a@r|nS~KR@7CzM|E%ONi|`i>~|*Mv#lb$=)yuW%oSa^Z7$Sj&gZsWZWmB zAz9bgeAvX9Z1=9u4XyR9jWp<~!CY!Yde5P-#K)|as+!b=)_th+b;yA23^q!6JU&%tD zjW_a{sVPG?l(qrTa9@Yo5d6AGA(6VS=1Y7v+nD19Y{8Lk`BjFve5!w-Y0|%`H<_gb z70XTS$rBN3DEvn(Jk=EOAi|kx)+C{TC2pXU(;KO4_ z51i(@sPCgskah)LIipbv@H>icR!gxF*RRuC60F4e?QbpwFe(}PGm!WNtug&YT`w`d zA6euzjNi4FAEUo{r!jcF0^<^XJpL(Yzt64b4WZKM@nZH@ZTvW)=Pf_Z;mcf2lltla zvs2j-K8bUBx+1u$A|~`;A&$#0+&8CwVweF1V3$0psDWmZ2w>16{yo1H7bZBj57`?} zjQdoWx?5G{o z7ps!_cMWUt4tp69)V->L>G<$UwZtuCXBiWdyj(OsuyDzrZ>?g@&=K*GJ$SSVOG~eP zC_M-CTDX8eWlPTV`vn9348`mu-cKXuP~84a>T}41ZV<34*6E-JQQzZC zfX3hz&ez6?b@y_%8i{8!^y(P0XI@{db6b9VN7*5{Y4(HVY)sEmpS&%o0Vp7*YNY%y z)>68DJt_r3c$e%Ncaceje$;ayeO6+7y18}z&4D*@u$&R6dWlR_fq=5b zU*2*}7^Rz39=$P#AL_7E;W-}(?JlBfRYP@LutTYO#e4r*aozaj68M+X$Y3*KRPn>iNV54?czS<(m z{*+jmk{)9pD zK5OnbhD)WYqJsxjkUq+TF8o_Q5L;wT33tB+J_ooNI%Xb-lb$?U7^{^o&Z5WH?jx!{ zd^meQ?D_|X_PTc4~9IWB_NZN<+D+j+(~W}I>$4^b^>yRZhxQJ>kIDklJK&= z<8`LsZ5&^%3(3M!tYZ+ebE(TQQ!bcNgI1pTnxv53SkO@$OhBUpjV3xQ{dI)Srf^Da zqHWU+HEt-|2b8k;{VFW;O^+yPGz;g11ZI^#40E8SfbCwet#1jR8c0c(H=#NO5O3Ez$R3=YoNe(1{3SHNsu!r zXW$p~53clX^54+*OMZVJEwaUXK1*VDg|UzI3hK*DLe>n+0)m~qxhAgSLfYd#PO5Yw zrxIguY<4?kJZ${Rm^No3ps=n}YWNzsj_(luN;|;%r*TsxRZC4EB4O^zvP>(uA!`%w z-NUmv&=XtC;fjIn0tt?jKju^WtxX=uH>({@)Pn67m%4VGbj3)`l>U0(xbex8gAv&C7mk_@F-)RWbNZWY?ov)VP?ufZ=w_)w6!pM##hqdgW}dQW0=Mjpo#bVL&e6kN1a zRtQmK)4d~kFSdRT38=qm`wa*g)GSyOi5 zrXvKWj_^#(@DUeh{k{Brd6k>`F04LVd*j-^;S)LEY}1a(RCxIKM-XlmJ-w8o;KGWJ zPblVQ6_q&$B!A1KBnb;4eo|$Q_<)twg{j$?>4PDCTV?lnK^MYv(7ampVT3ATcn6;@ zGx9PXhvEOK?hgwJd^o@l;(PDTV~;W)X%P?9cVaAj>?A^;{~dC(m4#)72D5>8wOy2a z0YHSX{TFAr#8Zyi)9k|c(zj9+KwIhT`A;*L4zvd=@IG{e@`*yt+I}E?jQVBRqE4|BkAdqOyF@metKi$CC z{TaqP4M@Bftlmd>KfwKE{tjt4v}(hKRCkM4Ej#|p1}mJe96vj%pSJLj;Q9Dzs@hj` z$fW4+jxL0*=#!Eqv7AhiVT|f5^Hs9M`D09nHvlaJ~=@+(&T zcn_c$^K_b@OVhNa$e%3SS7$UIsW?K%_x*d@@7m_r={IA=QpA#*tW^)O!d}*0gh?Mob7{v&FQHlo6?J z<3V(vSl;Oi9!7a%?W<$y2wbZaT{)VJ?>7BVd*v{0VtP*%MWygZqV%W=0Hia6=tdNA z&{K{>2VXbL5z#eB$1J3wpp%MY^+v5-iesE}{G7L$BsI89UZMbH7w&;*QB~xzcP5Zu zB8ubY{D}4qU~g|4-$E;dH&P)tpwQ7yJV;eIuFue{IDMXIn7Q~xbi(BxdmHN)SK<~# z68H}(*21L&od>i@*a^!m$Kq@Cy73Ta;h+fQi^;ZIWKW7&YBtR(%%4aeTVLPH4=Bj! zGqD}6{cuod+ZRmNAQupQxa+TMebpDRwp7eeARB8ifb-}iI+6@ zJ=i2gVehEQRLCr#D7<9yLyyd^&sh`A+;>`%((q^CV;$W)6>}oo<(JBi5nNH8--6@( z+3g>tIbY|Hw5o~AuHz}S29KO-r(}Bf3<{;^miM0rHVEPDJxp_cS8~j7ojW;ml^!Ax z2_l3kzhX(V%eHqBKh1eKse@F281D^XFe0 zTZy9A_7KrkW>#b4*s0)^GTUmu*w`5@I0ZE&O8g`eS|f5&KEIDi9B-HEH4sJYciA$!i;qsYBchpN+iCDF zNsgM#PqQ3=rvxM(QEElof|PiZ%C?oeiJYzV2G2E0j5&Y1hrUe8;|a4v5i_5c4WC?Ooju58j+^;d%kEfds{ow5+_ttz^5*^=JIpY_%_cuLP|=j zSP+N{x}c5aXhSq-fi%{S2@$+HHEb0MC>=@E`OxZ2oPwjnt@UOKiUWVuX-=>|0DUA3 zxM));g(rVpq>%UsdU;XX^`34O5N7dFs==>kuA@#6)P_i+`3`;JmRj9rYoo&{SlVFa zMc*#lHJ*}G5rY!JaUH-~v%JY4D_sQt1J=S4fTw8j-P>F4YMn8t*a2xYp_zZrh~SON zEQ!hEUXmA4^+w&C;?zzFd%<;}dzAeLlWvxbVxf+dt$%t$p+IJJ_|TaMv(dv=N@y^V zU_3{;LniQk=j~pXsHp1Hgk+RL>_=ppJ_6H z@0%Q`&78+^K-sOzQ-B@;x+)lS=Kwwdd&A!hoX zHpYZjCNh@3pKg?L-Oo6^Yl+PEn!Q_tgEL^(?c$eijc@Kft?daEWEV-jR=z4{*}1>H zU=}3M*ZSo8XSPpCF8N6!@j;3hWx6As6_vG*OUFv= zC((X_1Lx>j)BPVq)90sYWyB`%Bz@!Zm@QxbPS2mC<@Uyscn6@|Hy-l<6N8*FdAk~Y z8IeWKo$W;Prf1P|!QB40TBQwmx4P+l$M~``ZHc4QYSZYBK1qc=w3wUT`-ta`Dt?X) zYuDeh93VdaZP$iw0QXoBzswAoLSSPtrgroMSry&o?=N{;(aJb~FX_b<7Fs}6*E;Jc zo;Nv^2`#8Ehn%@dKd_3%lQ`iTmX(@sA}f0kGJScw$T zT#}G>{&<;C3}s|HV`W4_TQ_hRrAz#7UuJIlCqZV(IKtjhhfuF0MVT%i*1TM+(&eu` zyMxYa5K=YbZK$6qtCs^s{A#a`_Y)k;PTZH`Vi>ZPp{Lq!sB_1smnR^+^B`WrTYcb- z526_S3y7Y7bY4B>um^jDV@B(WdfbIxJAZ&%^idCDi+uW$G((j4Z0UgRH)18{d(gAX z@)kpM=Qv8Rsjgv@_q~6%;NIVjnNFjE;a>V0W#qLwtJs*`wDE$gNzl6>D-~_>q6t7+ zyNTa1#^9S)4J*rK1ohmBg7SCwHrOaQbG5@87C|3E(o^%rvu(#80blm3Z8~VGnbHGm zdZqBcau*pqucz$}>BUc}Sq)V3c}4(WfFr2oDFultljyoaO|+NiQ-2Z9`(QEfxf#_0 zQ9>cQB|6heI)@ZK{Z^uRCr)BgvbWyl#yxP28*(Q~!lem>2%t1{vNjl1Oau?e?O(>d z_<^1($A(nQR*H(B9N`<=@Psa`&n(Nkx|^n`$=3= zb9(!c`B;MwH>N)*ImFsk>H%aCk)xt34lUge_BIkpeb>LbU*cNQ*U`~*3R2Wor*0cz z#P<#<z?_mA-{Sv3UXt1RqtLuag3ZJpVAh40n30u2qSeY?ZE zj!s6=IxA_fst)%cVZztB+>OsC$*dAa^HaU4&omv)M2u9=e2jJj8IqWvx^!YpjXi2a z$a`oPBUL3e+Ic_E4hwDd`qtBbWdQEtF^VzQ9Yh?=3nZw0*g%4lEa#7GQa(+^DbFK% zey;!ti%U|McyVtAs=*u3?Evs=bx_~OwcRfjZJpYHu_2NNJ$V$fMy2eQ1Ba52W5?-hg2Ub_!b-R`{e@xUL zh!>aSwGs(@knw1IOS21jQk9U~ZjBVck7h1(jyO+-qQ$Khnr}?ptDB!+@ErE_@X7my z>)c|FzrM8QubC!LRZGo+Q0CLxYN(2qIoNgNz!2Y5Zkj!Ab&3#4VL2no8$v~P$|N_6 z2u=wq(AuQ;=4R(-)f&2M&|S8_Lsq1 z_pZmIbMIB4h|oA{HI`r#RY3)-BZ=j#NE5r4D1C>P>H$tciqa_4^hpr|12E8iDUR+# z@6Y5Kqf)qT53B5T15)S7^&Hi{q93+y8Xp+5$*(L(8Vp!#2%#2oJN`Wsv@WXo<}p>_ zqcZ<3WwM~MNU5b+81h29mwId`%BDn=D}Z`7@~SzZo9QSN5XMEZgUkJ5 z)_kH^{*Pd5kRy~7WNo^r`JjU}Cv;OoV)03JF}{U5j}lX;AYK)WsJG9?_u z_`Cuu_VdgBk5xRM#p$FaUZ&in(R#-$lmw%pc2%PUNCy?v@K&7?y<^zf{uN?~UuI;) z`CsXc2?_$8_1dFk8p|-{`g}8PdWCk2)Qal#azLz>sOtaK7;qe67OP;+E07WE+e9y7 zhT=cu6lkagaAJ_Ue33##UWEjOpAkqK9@`l70~yVu*f)t1e$B8FjTDTYT*;q2A5s}t zLP;7vMO1%toNO$`&ZEOY;?p*9=f@)xs}S_v`FHFSw{XWauv%*fWk_)}o_L*#5=UPW(vQk-?T zSX|(5Zcc03hiYJQ|GP?hb$~{jIf#4~9L<5x76>Xg0NhhFkRQC%t=lz^T;?#M~5KKn?*v=9I_)bQ%z4XrC}DmZAQ zSEIUEX+z&C@mlC!reR&Ym5C4pk8DR>sD^eJ(OsJku2C2`a2Ecj!PRv};pP7E^VGji zk08K(0;NrIv7SS22*?be8Dy)^;KQ|ze|#H%o4o7KmABj@jxrA6RHJBJXOC=$5#JNG z@S1heJ$Ask3MY$>UBpbWP1Q7or!i#tWa|ByY=U?R|JPd?-3VdqV0&`u#J_S%0r*c~ zNO>yJ2Rm`LMk#b)(r8%NepHo{auUIj)7KwC@!me zN>fL(XO#%6&KaDVrYTWNL@ShQ@TDqRnHDnj;>h%ZjPNuOkLRjD<;nixZ_y-5(#e)P zA-x}%4Qf>;e(yKm#v6=GX~rja&QCV3E|;th9`0#0YpVU$#j8G7BD3AjY}<{dYf%bO zjo#vI?0a#WDlR6onG~t@I_6QHvXeq?(?Zbezskm&w!|lseqcH(`L1`XS?- zT&49tR)LFBpub%=bSfQgV@a=t=$s*_@Nm@$Oc68fi7nJ{sO`?;0?=3-E;nlRuf$Ch zkrgJh8qQ#()ug6OfRyEsdW|s=p;m>8ys93Vc)6)|-KE=XRVwez3;abt9^ejqdXl$sh!9{GGxKg^g%r^I~@Cq`UYRf;A;tktSaV zN{c~aLMkNFPgv|#$Rzrfe!F+-*zlpa{dOKfJS)Cjg?8#ucmsy-#A-Ro!TzZ2iEhB0 z7_!%;cs>bWK6@ivsa&-wzuznbvC;|3`gSo8xfBCceKgFPKG3k_4+ws4gKOgwC~4gG z$QZ{%GK?4#Ed^Xrr_0<2t+2z#2}=3OUDqqM#;gG&HG-NHF8F*a<*uzsXn^(NLqK5} z+`FUCn{D{8WC|e zTDK&B0f#O)0u0W5!z+4YS$JZV-`R17w=cecX9Mb%W*iIPFZ4=1pjlp(KLyHhV zK)P!@whCzoO3IPVu^ACK*+9Z)&{#1PTY6gu`h&CNGzMzBsFLI9xoArxT${hNuppfF zi1u1=SO3LtOR{{NMN3xsp4-z>nBH@rA?_U(4|PXUM6gQ>K_v|lM5Byj*| zh|IS1!QZ^-vvixO1%0X3Rm0WDg_`M>GmUFs2Yyi0TMksHkAsSfWR{W5!sbwTfR@7A zo(u#S`>2c&uL0HUR|l^J0pUIV<;B=y4z@K(Jt~?|jf$vZ|J{!-)kYcPu>PvEq6eb1 zIzCb8W_pfG;xAEE=CaprHpkjDyT5N?~W>BsrQC#M*}B`N{KTsm5SES zW@WUaz1)5rrs}l40YHf55oP%pZI_0^us=fC$zT8au8-3Cj$qmktl=^9=Zxab*acjQ z^>P?RC76h)kwjfg!@PHB#(B8*!D>&!4=C{zOp@aP=ut?b4jt@vYOZVJCfni;t9Qm| zKKWa0e=llCF``TUW?LcFGM?rNUY1DQ1V@-U>2UTYbBS%dF_9ww2WR|%V0?8p!1sKG?M%|OxDb26CCZVG=ko~5;^M9+77eJ z9U1nb)y&-e@8PF*_nb}V?Bx${WVw4y1@vACU?}z7?TP+xa+qu#YEq-t7b_xqvYOx4 z4$GxB|E;@J4Vsjo3+!@91GbkHy92Z2RpHgQO7yH;i|;<~nIeQ_qh>Gqze`{G@wg9m z>v(jZTgVvioG!?W)BT?73UCbT3>iiu#HJ|<6wL@XprT8%%UWNIIPWEnBHv%ULaK$5 z2abrf1mm_Yjh5(pV8o%PumwXAWl;7} znQVCnZ}YzsY1CR%CbT%6dJ(9vE`um~j@`TAFv$qrzFF9x=gEK_KqI*Qfl!YLxqJ-& ztDKnQL9W`x@;>96;}~?=r;a# z{G-^r@^&_AHaXM%H4RNq@ytbV`I}6L`a3~YB$a!^VKuW=MvJ(~qa>oX=2gkOQNT6U zB#B3d2qi8Ff>`TsrZNS5pI~nwdWJ06^nqF&9!OueZ2s6{+ftBcXB|F#iF>7crD*0kTcI_wQlBPv6QqblH%_*9ZOJ1?Q!PNq7d zs?pw4I)CQkGzJJ<9Y|R(#h@L-lOSO7>X3Nq#PLqWo_5z0*ByHHsW|qW|$i_^bpl|&Jw=r>$>F?~#s&{Wfo{hI70PJl#pcFGO zMbp(+3}vU~_&w}M`YeU&e(!Iu-MP>=2{Mg4BP#AAZ+!BS9zR4JufV1>_&s1$-VbX6}vu_&U z{Duy%#s7*BLF>HP0Z;i~hmpce-!2j?<9!Z5%@}`cC(Vy%BZ?kJLIo(%R`vZ3{uc35 z=V@_YDy5YU#ppy(b*bjz>w**=C|!bVF-$!uhd-$Cre&ukR6L>9G)l{qjvC4Z5LsZfk% zAfdlW-}^9bACGd=@DKh@IS^cGHU&{7$e6aQQkLw*gVU|QqZrzZxTR@`n;?5rP6Z^S zeOZZS;G=#0A_cj0NOIQ-xfBa%V$?F3HPcQ`L;*V<{9ar<_yep{>WC_!gc!^aL$&>1 zsod&_Is&FHcbc%2P?KLz^0GsD*mJ#+<=9D+R6yb2dw7)o67h12nSudKNel#@7>6+m z=vv}s-xH}%-)2~ipo)?fjXxnJo};|UjvSi1K1j$V+~dsI1z5GT%dwMYdONw~O}z{i z+W|QV8j<7|;f+JSYJ;<`unK1z=4ib6Lz2<+JA1>d4|39>G^m9gv}L%_hw|Lz&f z(Z-Fg_Iro;$+UgfVAJ?UztQCli(a*>702qC|3A|!qq>nM!BE=-!Mm&P8dPF2-%_p6 zH0C&xM{od1lJz3&O^D#)iWs5}j)X;xoE2YRLA(~_HSIzeQR7qtul?^1clIyWf~mj3 z(?^U=uq(}saf#$S2-aJN= z)Pe{*OeIOasP2#I|22;0Vbu&9~jjw&pkNMt>07~F8$2^O+1l2IfmT|H&QVyYzr z_5AL&An2|v^X%*@3e`blp9zXY;%jqt(U*s-cHEzz*PhgtVn#kG0t)K00(y_hd6Xgq z<5_9SAVkKF*-e30W#u3(yZ&vbNT}$x>7qORbEzzzCWDJS4wX>G#6wAw;=#FS*7}FL z?jvBp2;_PGO|S#%gj%O9$B{fug!#k-X`Wn3eaSOz`KOSgmG$T(vduJ zcPrXT;s8C6@9O?5&rNGhBg)(Nag!5yg~FAXN_Or*->cKT_(4_byvXOEJNd;jWsTt= zrNHQ(Us0SSmA)0pL?#jDBp{pVO4X~GJQ?(l4YGuS8&z^~wkps0IL`xEuYx${UmV5l z`_A^1QS8>hCMU6$oOhh-OWVlqWpjR%=T~<-gR5w(_qpKKLQ4$O5GdeklvPQ zdN?m_RxAWBqxC-QD8kNt^OM{1<=8*zCJt6QNTMo_&_-4B3u)jEk-V=C1_rU-w3bY5 zAA_s!Vpc6F1!+vlV#2zTi+V%~f=}jhN~P)y5FzFXCYaxz;43u;e4O5I zcWb8;gKY_jN7pevH%!U`cMh^@-I$;A<@NYmwP;ufe!ybGyO@()qYIwh81GRHUZ@2Z?e6W7Sj}^h zCWyStz+Hqejga(JOzo?xV7 z)O5Y~TqKt=PUNTu6p5-sAynT`Wo|vfd=_h(^cSJH8;pA(jJm=5EdM1Tz;IaLs`1hZ zs5QnK`dJ~Pk8i#y5libD&mthe?B3&8?jgkcd&$VT_Am+AqNO&tFL3@YV^de)W|-_( z2(Nj3JnbW-wpNAm-d4jh?wZ2!=ScnE6#zZzPeP;@ssee_i1H?LL%L zV?zxY#oM-f)XNyIEIQLg#&Q~8sCvv2SdUU&dx~sn=TD#;qeV~zrDWi77o-x0ddl?o zAxQg%d7rrZ;3jsCZ<1FuUHUG}k#|c8Zp~}98Srvv0J7rW`aF!+gKd{=mo~7u5Ip(q zn}l$n+o~wqop2A%eY}}OciP;uOus75?d^*DHwlq&G>4qF zcr+Jttj-mMqTg~oZ}ciwm&`Q%#!F~UdK#5;1C?>y_#Ka|S4T}0zEKgKXM`#d+UZO7 z-T4M1CTL&RmFRE1Yseqo8mNbamiKoi<%fW{I5k2ol@}n!UPJ+=)W*t9eQs`0~HY~#Jftm*~$&|mm&5wkD&66jglUoh2py)@o;69xUW0W zZGJop^^eFJtIt0)VadZWO`lHRD{qX2s3Es$+eIE~48y34%N z`0034Iyrx+<~YSvL!4Lq}FK@4=;9_l;9-oLCc(UT(Uy_u(=l7=Ghf^t^pt z@7}e$$7{kc+(x1z3xEZ3p7dAGtfNtJ#4~=D!K=1Rj$6LEh z%vw-t=L$ShUx@>1XT8evYID_Au3{+kO?&hT;`!cmG#i0x?Xzr|M;qfg#1$T;zR(Wc zMs%L}C1p9~O^4dAPu-V8CeIF<)wGOK`elLqe5hAOXQ*Jl`c+xcYSA3AEkc zJ683V_)fZN7~hNNBr01hp-iuBDtn%;MnVTbAux37m9AwP7hQ1EE8QIw3feq#rNdSt z59#lyUbZE z)s=3G8a3(?cJoAP|CAoJSuSkpi(`&>MYM5RpRF4R)^NCaQaK`qWf$F>Q) z3Nmwnn>}uCORmj%uG@^$GpotSbu@X+SE&yy6A2f3vnkVK zz&^_#`f1^)+dL7s*2c6;K}H2t_t^{Yr`mG*Uk#=P{|@13L=djHH%Kezigf$JiJC$M z%BLjumf2m(k}wC)&68R64iU^VDXShk2qnUHPMPRPUH92%4TA*+!}MXzsC~HINIzI( z8~>K*_K9?A!zcK2%Tv}2Vy z5`3F>yG-2V$>gNlX%<9UG~)BzqtuuB zQyov^SnD@GEj*6{V6GqEvW1f*8BSV)VEGg`*oTi{qS_=Gnm$+rVDdTGsy(*NpsA`; zunt`Z!ziErft;MA*hWIqyuP2S&9sG(vrnLBg~DJaRqmj*=vFwrqepk)#;sRzH(&PL zXt5I6GLXJ7jyQ-gjj)ZFQVY`$Nd3ZKhy+&u>&Zd>k=H#{xD*m%*pN!Vb<>`Y+bHoh zJ`qWc;}3mKo(+Hc`1AoeR_{IKV^KXTCG(A_oTZ2qea5Btd3?1SJ>L+Dmi`uejW>)(4Nr@dEEjthFG%mmCcCEbq%5f46jEtv$a%4(sh`Wf8s)_OODi&7vx(fOl@{Ar^25B#hEIvaT4;q^;`>(>+Wr zF9Zp&+$Co$z~kWd*~DzW2*|(|7f8i>FvJZ{n?CDeL(=N}@PVV(&ppYUgD3a~Hsc-p zDXkelr_^ptCof#M=x4bcL-)JzAPuj-(5Y2gf+2zmvtyCMIuFOS6dEzfut@zpGJ~=C zbs;T6ta?C}a73}1O!^+zC?a(!;;M{W))|GkrBvT!*t0qzO~`YUTPf9AYM9sFM5Kq^ z((t??YgT=s_?_EmbwIY0-3*I8_R!M2RQv}aT~s?p@o`lEy@Z!&MEAjNc9XWbSlioi zlx=#NCdxeJ@>hHl8VRFty)tHT?9s|`xQO^}w+q}D?LGVB`O?|7SD6UvZ4Mgz7%&;t zYNeig937Wq;tYD(Ym4XaUa^?cWej%V1Zk5&Ki(e3hcQBXX1vMe3IT_9vP>LV`L7me zCzm7Deb&`L<T9R@=4z-vQTt-_SmL+bTe2i!&RMR96#ND8~P4TXw{6ywvW!4MYP?Dh(&s=%fFfO%2Y zq{t-L;A?~$!eZ3nl6Z@RFL8S_kj%^YEBZ;l{0fEf!>%5kEcsJoPX-tbBM@lghdsF6 z4vFbrLs4GWMV@ArxfRSFMhFV@&uj9%NR~z#6-1?uM&D=c>9J86qJ3QWFH^7WogrxJQM=d7A`$c!Em7hdiVg1HK>5F|H1cQ$8^Kn^`fZW~ z9fr^$9C81Ns!~?Dl!f`ykE%{d3h(zuHwm0y*qRCabAU;T^;n=2n}YkCz6Upwv()c7lFm9(--iyePCYc=#FtnK92v9BIGo=pN{9r!%S_ry&5O*ZMXwsRXV$xb)0 zHY6W>nzcE4uRbg+i6-)M8u`S@m|+tQ5}fWzNf`|fQIOTm)tK83ZbV_2U&?G}0Id1o zFtQ4XdyerOB+mh`gp&Uj%4}&j$HE-hMg3Andv2Y74S@hwq*pt)bhpI9q*kzMV_}m? z7_6P`8x@GeSass2z9Fw7QLy?#S$_$8ZLwIl{OMv*#;2tI9^)h@Z1@3SU81Lr7hOBf zYtDQqzk#f++h#_IIeE)VfT zyUH`wfY}d$PHJhnPOsP`G~`CGC;(sy$Qsrlywn)uMjxA+E#cAjinOx)gFrWSvmR@h zGZi4HBZm0{q0gY_n7FytRf7nJZ`=e)a4uIe!bUJ!mTE(h;~;(tJ45(MROE+GA%7Hm z(oU@p9YW@C*jr^6v@=A-dCED0Eoo8|Z~Z?<+et-T=W5OTt-&<9VQu7X5lj4d2Q=m? zb%}$4q$Q=s%xFfY8zdQ2^!s169p3Hn2v0FeJ1;*=ZKJbh^tmcNij~LAvTGR>&1mEX z(;o3!`4w>I$O+Zh?F4Xqj&IJN%vz0smmt5_cZRQU`#_6k>WT>w2jVqy%R%HC?XziF*qZd02w zHF|TfG^cX;COjh~UcrJiRbT*+)FbLnRos;Ckv%oco8vP>jlid4`#lD(?=oo=Fl~W6 zn`Kdf!4h`d)}k%cZGK9W&|s(EC16~HK=Wz0;gVze)#zbZO5AR1GfY%yR|xr%4`Yj8 zjdQq{kb=&r!uOmXtub2sGsnDHICwU0JZxfg8Na}w!)64liiIpftH!%lz)?c%rpF%) zA}MX~f~>!V=9zV&1lGhLcCI-p*h|vwrXEDm#prOi(sH?#352(1ge^pli5&Qxv?kl) zj_`5GKEWf^S_{qN;?R*M*1OCCUH@CO*{6rJUz&{%l&)``XRFo?&WoWfZjR!tvVLl+ zasuC|${|o*_}HZu#k!W8j>K=UV{d*kQUoN|FgAN2o)7?}(2wp3Zt5Ey{`N+n-J8H+ z+fi1FmcTkwg1Ry}AVNM0)32O|CRT1S4QS8_YkrrSiEJQjq#rcZB$k6hLN-V|njas9 zqRdWa@zKb+h~qI^Nz8gaT&Rb)^4?CuL5#}E zTNbzf`Yd&0&ooY-?uha2(vQHJRw8tYwyJ;si0`WJ6V)5MtSg5t5?rqZa|NZw&UT%C z*f3O`^50*`es}c5HmYx~787d)*GPSq4IlmJgX@6K=%v+X4{K081#40nq{Z2dqXTFrj64q`19jS5GRv@P zyz^!FQW;=v27hrtD+Fczxa!t|ug;QT)lBV{RVcG-j87$epR$#34w*VQiy1DfPdJT= zWxb7RaFQSK1hJdG$UPX*x5z%?)NxisB8rVGpMNQCL342IZxGPV~~2N7jdujBc(jyIMvwv@D1kv zv6090jdLqf5a32M(18?I{3lRB6SkW$=8AzeII(rH#B_YAM#|d?oPBZQhZ;Raolc@f zYo1_M@$+_H>MpImxxlfEVfeED7uwZmHB)xzv7wU8E|xL-*4)XkI8qBx`62{5zw!se zTcT*J%~9c{%0W4~b|`t!F$RDeY&mz&18>TS^s=O!d*czCcRaQtv489}8V||1O&sIG zes?GvEH4S8jN&z0nLT=SP-vVg7tidA(8U75rH4Tbs!7n6kIO~KaUQ3KmD4g<`&he;{Gxy$Wu6}X<+-4`FOEu#^~H{;LiW1qH>&MtlWg4CGzo;CC2@=|TmzBWQGyon9TD_>ta`9y?#^ z^xdc)XB%lRHA>w=kKr`&sPbvv19+h(h@4*6K9;IC8<0wv_b>V=H#DYsW6s%4ZXD6p zV=h3pAVAS0I)i&2f8JMw+UBpKv23=KU5R+YUp;!*bJT1l=IIZuM=-T}z-P4lC#00$ zNm5APMztTxwALRmEF3Y zUu{3|>M^Lac{&fPdD{2&&cJf`D2>p8h;D;>m8jKPtRQdN!Mkl;M&x{hIDEfJx$Y>L zIr&Jpwxt%f5_%+$U4HMc!OCI6VOFoIuryM-U7!`5`SsZ}+Vj)8Ml^+rb*ViXG?=?T zoV#1}RAOj!v0!F<&z)%Au`#J4_2&5G1CCC+iFGg9_PYCOuen;-;M6)Sr5|cig@{G; zoNwYqzDO#{FF(;)bJVBYvNfWImb2oMIbYy}lNAJgI*sISEw_4qtYDa$iN{lPh1jcy z3jEV-A%Z&ZSUQGp{tc;NO>k%-8ZBGYtn@;ZXw;h@es{Kkw+oifR+`Np` zYkS2v&Da(52{Dsm4q!T&ik+uGN{pyTD}J+2Cd}6WB36Wq zM*roZ$psV+1ipxN+g|@=Qu}Fl}-POAG zKw4VV{ke!ByZmJ=?q-^ITh)@v--xAq^114T((@`{oR&yAL&KizpZ6aKDry$u_5!S- z*Hf(%!||zNthbytHE3m;+K34@0gY6Hhb5q`ycTmkmX7a*qk@r7ld8sEYc~`oogNlk zzFyEG*@4>4?=wouTzj@7LU+WDQfc{4$0PDctiCN$*TI_G>SKBoBnGKjSHUKZfCg<7 zXxZZujtKxly5_Knx@NcMld<`zOw2KJuo35M_iC%;1#8B+PU6WxMSGdZ;%pY|HPzi& z&}63;F@**Ly@JIBNwa*kc!A?Q*;kWnN9HT>coC0G3Gv7`^{x*?Iewh5Jxw0BbISz! z(WHqPwxtN4AI=f!WkGES#{6XQLm12@f2v2Jr64J!Ay75!$Ou{$C? z9l-7{)-^a*jevmcQ8^Y240T&Nf*_E}uXJm!)ck}jkW}!-eLM()Uy9DpLaxJ3cZ#2j8ck#I7Vq8yyo$ ze_VuO+Fm-8e-oO$w-JnA1*Fd8A8@^RtJQ*1+ zOMD}5nR=zT?OhEo_tJbq!>%@i44k8E6>GKO{vjw8wVhOK5oIi&U>A|Thcu$pWtsJK zZsOS2KU!vxcM=Q4v6s5Qs}@Z{KJ6qw2xkt$JlqtT>cnH|ixvZSpc;lpCD2a#m+*O- z2@pu(0X_b7<{8;7sxw5ict}!lftZ?4lf;LaoOewkYQa_2Se;s=G&Nf^VU*e z)YRKMrP>AVfcAGo{(TfrP^ziW{yc`jhtkx{%F(rLEG$x!W8zKxBW3kF{`9Z>)k_1V zz#6eY6N-oK;e%Am3Zb~hcjWg-=5Mf=>Pmbkq?)!6!=y<$O5Zqc|3u#|a6UbGz>K?) zIQqzs-@(c`&tI&|lf=Wb2G606;IOHH;f2N-&M$K<0ZX+<^J@K+JMubaksbPTSKpgs zRXE`u=zzeAC!A~rJQdYKg12g#4>k^874fl2T|YNtOyd~i0o))q_L zHaIP1KH~S~5%`lutT<quF=b9m{`Ck^ z16Hbngp%^RS(Cpsf-4rhx_$oDZfOdUKZNMqnrr zraA2K!!P0~bFi4JfuQ37SgG+?pzf+n#VXo5IdTrryj|CHw|wj>Gi)*8cCy)~{qt^q zNw!akw?IJgrarYySAxzic~<(6;r_?H0_VZ;iErp^ZM!e`GK=>gqNdb(PB4Q&eN9@v z8LUG*uzXd?`T$?p$wKfvgGXd1gLawe>n% z>LMv+Ih7QK=|UrSLePXEk6$k4+k52cgN=7_XwL23M{`^@HRiPMPt3iDt${=0sv{7- zgGQ1d6vy#DDjT04}7=5xLUyS3fEJzsG$HmB<;WsX4woh1XdXX^jo`bwe6oW@Kh|Vi3FAHDh`}SA)DX7?~a3Vd$H=3e3&^6J8Vz>}V(hZU+_l^Co*>YYCU&WqWiDKvi;QoK&o+$M}? zQ-rbCe2X1TgE@y?pkB?iW$x4vg6-ckZ}8q6wp2G=lB^P=nSC$|{`Q7xPRagll@?uI zGaiTwwi0FmA1~ea`)MZ8O0>AwNv}zq5I6>Z58)xE6@y)46`}3;%~C4Foc1V|JNK|z z=Jx?yr!QGdoR0z#1t#Zl0TI$^Dn^mHiO;{<#w$@8#70iHJze7&9!N<_fgrRKAl9Ge z8>uSdpya7A(I<5!%s9nu4g_>bRSgo)-f9)Hd}pq9{qNZ8-ydTpqgcaX<=AG<5RlWB6dxM6>E3;erVa3<@V>ppRWfKYMI&jNDSIq7Ig=6#bi z3tkfv)1>pu>DMc6)Wl0P-tpppmy4C%V;bfQ7;(o%O$awilJ%YrV3?F$w?SX+^Lwr7 zJl|pY*R?6DpDx8SBRRbr=_UQZ>aFmxdC2zRI1gyqL>pdScuKjRu!q`0T@qYK7yOi- zNt#EfA#QZO6xZwY=Fv3X10N)>8RA0J^>s@UvRDD7x%N`+%22)cV!Gg$Vyq{-n9JI)JWAiIW^R_+Xd^sm_{*+PE6`0Cc)D|%dlerM zJgvRPhs&|Lz%BP!pEST69($S2!~*D8JX(`8Fm5ON*gLG_fM|~??{Jjwso3PV-s=8h zuYAX84;C$7nDyfnS7_Zsd$yoxEv^ z@hVy7a+(h1wu99e%KRP&(r?J}b#0p^rQVXnKF86;TTc6V#mo5PfYDCzYcbQAr8&8ws>u$&er(>=g!Vt0 z{;k-$fn`NxKkBF4e_ExFD$g|p_qQQYQ;!2SdL(`$k8phZKuWarQdo0mUfYN&s`xBI z+!)(9A2Sla&pD47qn^>4lMFn8W22Mai=9VqmTQyTi4pjovZ0K(RdUTlg=UChXJk{L zc%F-9l1PPdr9n(s!4 zW7>$?TL~TMWo$c(rb)4~EVK|M(#cy*#bSzm=@L`Emq2J+hX^`U@uXq2z2YD#akQow zRtErpdjDF##3?0Rq{#sK@Xq@}{x#t#BaP)Ve-*l~E14rX(=g9AE*r2dq-WWQFz&%*GbV^e*DWuofS- z?0@rC@%b^T5}Odya+31RyzfXi8!P@EzQE}(YPwleFNJi)JWeQGyn=7m-p}Wp;@ex} zh-OWH3CAOtcbx7fpJAbUKEYo2s~n4j)iP>Yz#A_eE%Zxiw}&XazD;U;Q915{5fL`X zY;FGIwXS(3{c>{%^iN}R<5siXq+2x0AA<^{W8Y{T=#Z4kj@aN2?nf5Go&=HV%f9`b z5vFMkZ7zaUR`g>$Stoj`qQm#@F2wVZovI;ZI+o{PXj7jl zV0a?{(pWgUOWEma;;>H7F1IQV_^4vSKZ)h>u!7bBWS+fliuowZkKuo7DXgh~y4u)W z6z0Y?$o0(yTN=m^baR}e)kNOlUHKnTKjijFrsP48YQE~8ETZf!^g!0+`wvzC>W3&m zf+*GkYfd0HR<_2g^aHhAl4VXxDG-%(%d#-@zq%61&^nd1Y2DnQ`4O3Lg?R@X#<`JD z2^)|xw8tNI)8!Rkz6OOwrLf~+fzRsw6BY{|kN8u$r7lZ7m0WX3?j)?2s=6Q{_n^C`}%Lx+{M<+z|q3Mmf^p7=-`oWUmCmZc|9Ik1+^BweCZzk z`sKgT|3A;p#o6A)ncmsm`7B2!^@JTI^iV_mfVT2W%a2qt5{&Ha4MyYmA7x(lNg3>z zswwbmysrsak6i5^mkhYOWwhgt91{g?AFzq2V`krJ%pc6Ip!)Au{LQ?D?T5T2IWh`@ zzRA>aE_pkP?KPzSGvY6O4c?~S`}>9?g1WIMLK}7Vs8EC4Fb->`{13$;>xF4x8_S|FSxw5vUaPr6 zV$F6w{-~>IEyZIuoaVp|AxohRDK`Rww3$~Iaa_&BLaFtvW%c7rl-P=A_Y4V4jSL@W z7bSdGB9#OhSez2Nk0H?2E%y0HKjzsvs5(D}h?&nX&8Yg0}ToA)9mp%2{2sCr3Y?a#8R3W&7IEa+Vx#%6=!*1Wn_NPWj z2~*S~z3>kM59FJ-{`<#25-0-gkCL{C4Lowgr6E9EGl$)4j@T~2txGefD}D1ho9YOx z0<@EWi+@~C=VqxN%hbV8%z20)T*I~tQ6Luz?l?)VKym3gjeprT3 zwYb;Hh#RtP%#h#vgs|+_D-RKsO7$1iQ4P>zQYpUBMkGRZ-= z59S6^#4UH-8 z`LAtzgxRG%8V{ob48?ucL^*V-n}qGkY<4Ct*lwCS9)>p#7V8rAMpLkd!V)b5tM|IN z;+w5MxH)8_w)5$>Y`;iI)js%+;2HH#-Th>JDX~sUmi^}45@05>xDchLg*4#`cAv;lAZ>}sus|DWY}zD`_IE9-rO5IFcu`g4 zQp~~j?Y=GOPTPyS6oNO99bhPomMmv(c|aQu0vege7j%-dXgI%(JD8=5a+qfNUpItZv(s zDR)+>A-=X}>?n)pG`4^PRE~ZPpPb-s zwH8dPiMyC5KXP#^Z3)MvR1-AfnAzxTmftjO_?>?`7{_hPG}PiL)dl>T3N}Ad3Rc&w z!zZ*@jwO@{CWzO$6oZs!%cH-Gr~lGXSXM45^AUgRK=ESbT>s-OrnO$O_Y$h=?Aku)TX1-PEx;jQhhGpO>_NQ66tw+OFqD~i&#N2hclgaz6CPyzlOtF;5Jw^ZV^- zaP#1BaFOm<>gl67Dv6uw-BiGz0hBP{bfPs(eL#FnSJO{D;P-;Te}4#RgjB&$M>T=h z&$!x<@pU_K)LyKp3OJA+OLUrkC!(KdXVN;{!g3`MP&Eko5*b1-6Y_B{cgi{nIm&3R z>wbUG1yDQOxoax)vNGyM=h&2Quoa5uFy{v(NeI-AX8)e)TVvE`eL zfD=n|5#Lz_x);95@QB75IRL&xLK4t3aQHHUtMomjw!o>2<_6{0YjmpMEBU>pK6GB% z9_}Ys5&^ve?wQscC8$>fk$gY~$I){fp@$oye0MU#auHHLFkVM+qIbuOaD7x~qZ^>q z9Q!i_JmWC_T2hbTD^v*sDA63AQTZ&4$8BQZE`lD2Z9e_kk{*qGv96nO-yP&OO26Ng z+t2anN-4z916H?z2!4@#v7i1}zdv&uqQtIBKGXz=T*hd)E3G5mc3a1f)+VN77Yp-V z@UY@y48eh%D3X=pnG#1%j0d<8@_`EP^@#JSvR9>%G0XvNfmDZDiYm1Ez${O`3GL1% zJOfmsX&+)w$Chw?nyJRsiMHS@K4+d2ug^GvY|^J9J;A(7a&<>-ZDD#O+oIde))(`Q z@Z6=l-EqT6SEzu*MG{?A3C&)~DR{566OenZ0ijW+_gicyu`_P3j zOCS0`I|-W1-&p8DN&a<&bQ%A$MR2O%g+lD5P-44vRRBK#D^);0;6RE+Dy^&Pum%0X}fCD{8P)-j3ln_RgD&Qk+x@Yc3|8n_&uPstGi^k&|W$an^;Ns;BuNK2T5fYvgi#N?YG9Z17t58FKmb5z_>} z3{Ef~Hw-KA%^A30zBb0~`+-xUDaL{D(JC6_s1RW2l_o38P-HM2#^Z*9x(evZ>r6Z)rRsKzp? z-8~<1JO5d2^YOFze9mjy&(}^nmpyeHwr*W@Dyyp6i&o99Vm%dh)D845Nw3E%)DCaM zQk-9nFgW$RH@}|X@T^!_K;p07>W7Ws6E9Yj%TV@GqITJC13 z5yK#IM(Q=KaZ`tnY=QJgCA$2Jx7%CPVa#uGC~Q+%1FG_JE$!OxK-QhmI?8<==sp#k z^a7pw)7Nck^KYq?$n$FX0SohqTC@x0!;Ig+IZ|PwZGn{5UJ?WM%=3Ab7x@!@Vpd~Q z#ePi9B9(>@W-7{iYHNID`(hGSl;07|-}*D45^ct{acoO~I_R5YiMiu8mV6W^Ywkz9 z8}SJ74(mp{_SD21& zoQ{s-=^VTAfwE;HXXO=FlLRbbvvrOI%ZO`0z!48PA%6F7 z$;-5L29Y$Dkbh~0_^sKqlo7ssz`ejcACb{k>G@Zf^QpO1n-6CMqPSSugoPHt%UqYh zE#xP{7#g}i<9(HUAh2_2(L_sgPLi;J zx@wNOyK98=ac*ZD8@CQd34}Qv-jZ6ZSeB*>Z3OzN{Mrj7z713EJ02m47B&{a*(6r} zl%2ZTku7)E}DonKbrlJ}gF?1@o~N40?7c7udtB*_+rgF7mON zf@$`2!_D0MJ!44s#?13;(iLeI$wb3<5#sG^9h!=d#DPu)NkLySVat7EMrcq>XT4JB zoAc!Q*ZbITv!vkgclE|r%uxSkD{q6#(^Sr^z;WAnEmZcL)YWTklxCTMeST#tEqWs~ zJ(|lg4mPaZiQ_JDS^1dquXo3XNM&R5Zcgt2+RACL^%ir?fY)w3hJI&Y<`DIN!N8S|m_uo2?3;lzAOdUxu1$u}_D1rJP%RpDK#Td)*7^n2=3@E4{34{@b{pUuAfG5hEd^LX zIxMr ztsISm!F+ULTt3Y6w=?&b#62l>E!x(^iv3QZY%!g|#zAWkZMXG{Twk;TFOTBG^z!y(}OX*IZPqQ{`VGgB(1^AZ8qQ z6mx{zjkEdS zxAbeR-pa=gmL--?gcsvjeV=Gk5Qhf*f`FboupU{@+O9Jg`Dhzl zK9Fe*YQCKK2o-wEsqqlJ#61ZDosp-CFLuEETIt^)c812=)bC78#_u&t@A}NZwbC!; zkTfq7KXTlJAeq+q<>QUzU{fiiYtSAgY|(Hbt+V61Yi4;v37Dlsms=~_%Wl7R()Ki< zQbaSaxWh*N#%2g@h^+jF&<3)CTWaMg7{h{E zP46S>07+u$(>;ed&r<$DY)|5~}8dKr@wq6)v?(*+=iA(;eWd zGE*s(At{jtw*>bL5=CmGB)uF`h)Gqp4YywUMH+KH-WzlO8`b8cOL9=+5a@xIENcU9e8>QES7Q7=kvt1(8FTo##4SveH8^F=e$Fhr?JRj*r)W1^+Tp^M`#wPoO_3g6=2D-wooU%% z3YN_91?GYel?8u|goC|9zd$}W+kZrwkTUtTV1Uf)$OoL7zGR)?hqr^B`20VWbg+;4 zlN6#~KXdRJ{u_`UGu`+1C*Lv;5saHV4fbDWHDOsA+?)j%)g zmGLwt0Iw&MoLaN(@Ou21_yauF#%%YaB0790;^aIsKivX@+!;LQ@CBLd)(97Tjy96G z;q7N29I!&7Kq$B)2J5WHHcaGBO#lW;CFVupmKp)7njqF!Od`9l$BqE&x4>tFYaA}f z1(vK|Yj}@of&deO0X50hDKUR{suu3kXXm%EWVRgT z<4Lf!prq;*;5Nt#A}>v+^j4TsAcOBD;gxa11OaB|${DdTmoq6-GE5Y(&k-L4(9_y$ zKYXLe7FcwSy>)O6i617Y0hcjTiFod)-Q}6C)lXoRUCGj8c8ex5%WGBj4OgZF?lO-Hr$&vAOCn}<|U_Ieq zPr>bG#=w=`o2$UkF9KNBco@9J^9}f0v%$>Z%I^lo?oCdqVFr_InODy)!eIX$_(0_v-2 z0*~^}&IKtzDHERDq%@o+8A`Cdx{Dh$huN$-{YaOYkc+fvz<3&TJAM{e=74LuBHPmV|c(GELFFnPwFT078+c z(e4uJSg8x^$Uz8B)n5l_!6o)LiTk_Am>0{?t8NH7$uMJY0v7Vv3=&BeCX{f=^^rzT zOa@Iz28{br3c%_|VS%Q%(pGpzFj7w_j8x^3nIT&R zpJ}*E3=`c8Dex6a`Apc!#uBGkTK%6sLN)bx35ekss=Y!EWiT@1scDR#F&~V>7dl)# z@!K(3mkAys=62b(TsF~Os|y^3+*cLJG*B1T!v*USO6v=jMb(|zU^g-zZt-j`M(9Mx z|Czu}oM07YvCcwc)2=inTPU5sY2YUf?u}2`;ad^Vz4zU1tycmC-Z9QJ2fW)RF)YWE zL*1OVDAuTeXh%wACZdg{7A(SGsiKV?cJ=9K9E;NT+bauV+mllS7hr`?O-xMV^Zk?a z1v6qUj|dxY2F1FeoUmG|C>0*_kw@!6-8-+J>OK{y!8w~##X4MGa2Ex+O1^V?c+~5K`=F`Ub=X?(6 z&#_=B-YD|YJ8Y&IT*+X>IaPlZX!*2I?ga6-*0=>vP&=n;feDOG>nI1qoD%7Nxa{{# z>H(J25j6DbFBeKn3t}}Rgg-b(I@2Oaoh|D`8{Ozcb^ZIGl5&{}2verZ0}&L6E*z zbJ@?WA2k}FDtaL9jMw5>v=!bPyq!2A)snf1u9i|!#0N}X0l&+SBTy2pbGChIoH?bF zD?;l?9i^f_VgK$aKxSO+!eEa9UWp(XCt|ihWVcp91groZQ$J5<1`pO{nx?nb`H8?P zO08ZtvYMsyD+EG#NmMQfJJpqL*QCL<#{Xe>CaRA|E|IXK`$Sc;C(~H(>5(Bh7x0x6 z=73MGG8w^>n*fBk?oC;moyibYexeCrNqPb-Sy!zN49xt{V=sjB$nSKD2WpW3+3hoC z@@qkOi1L6^{oM5bN>0fr>oK4vqvlQ2({6g~+G~|+W-f6)#e})eioDe*yJf1=AL-|p zv{C8BI_fiWcw2_fQzWzpqXtKLEjdJWI?$`ydSeP!%#DsDa2Wamw=3ZY!&i5TYU$-X z3w5F{Wi`s(6{x{CUtu7a$Z5F^2@0cN|>I9XuOpcUCI*}CD<#nEPMc^s8c#t+~QADOgVcAw#sA6ll@hx z{m}Yw6koF)e^c>zMB=D~*)=tHQP=0tKaIw3_o{RZPIonxwTK!VhCm6A^GB=;I{Ts; z@MU;0M=c~S4Hd^r1BEH)`|jpWx42{3+bAcVngVl}x4rH#=V>9&t01p#W#h@H6zKsM zSFqrT+i{_!Uxmu4c}L@!P7o7`_v)4cup*KUZ%OG~kZiPe5I|sWrig|jg@QBGmoqb` zoPnN`X8{twIr+x6%$PE9`eGczF0{I0--Ks|K;=^5{#WPTBo)piN<*ZyyseQ zgspAtmI)6)rez8wF_q#y32+Klv=G{if>%(z1}t0=@u|K*PCW^qmp>25#%P)JbvQMk zls`g}8?3UdN1YPu+?9)60j=dff#=6m?}WG)B+98|j%2(iX~&qfd64>@QbRi~lb9)u zVnD=}HrXT)tLX;b1y7|IK?oA$bZ=OFDUyPSQH3C(liMq(!U9C`WBfwwnK~An@>jvw z2p~9yYE@vaPKNmxCn9h5D8t^U2_U3;WoNTOff~k*Ezoa6>#kh?$h7`ijerQKj@uHP zwh>3;?z;ZjdT39xkaWnl7K2|Il&+^V5}Yp$EX`XS{|j*=GB#kHX{7^g4gBljCA9KG zulos_+RA=g_Z};l8oT{aj0>ecCaeP}(7zpaf_@l;T7c*w+1i9w&KWl#XHv5vdSJPgslNy*DJGP-}HPBBGk?3s+fdijN z%01)Bc|#O|RnF!&eNaaOp3_~3owG6oyCv&wBUOLevQsgKd`5th?dk*tDNv~ECc^D4 zm{V*7I?)8(M6x~^&rflUaK)ctUGuGUzb2geEKIN_oOUdRB#y4fT<{!^rlDDO0`LCA0x zy}$%a3E#}fL`&2g{Bt#@0joP+>fsAnnfi?Vs*7R;CgXK#D+{E@m{9A+{cfobHhp65 zBi22ti3$*0XZBBxZ7FZ1VR^H^&;Gr@c8${#d?q^~tWZ+I6L6I~rQsbABPGr7MKuMC z(~z}pgqN7mSBEiaOdUZlrZojbx!$UFIJlRpbzq6dU9b(w7Yq}}WL(ITz_!=yYy}oN zLiQe1Ux#m7`%-%zDE(pd=dlUct?+Or;7@kgTnnz+C3V|ZcUk)w%u$58R&TD=0!qu9^sQ2T0U4v1lE+#R?-1@o<_5Sopl zs!TsN)SUCjG-K9{<12*dN2;t+{O;F5Dx_@A$98XxmDz{$Qdgi0qAk7lr$Z zKiEC$@4#k5NJ-G^kzySS(}ZWtn45Cme*}hD7`kcQ_jCIp^AIUd`pDOdKqJ}X9M-(; zdazu>@XjXQk^JT3$E5}V!sY<2}2_@Ej3D?9&~0ZPuMpuJg( z2KcBk*~K5jOr0QKm;X-2eiY@Rzi#XguaI7Bc@Xi^X=NGhH~BTzGE8kblZ7(&5zeC< zaTGv#ye~hGinF`WBxSSTFka`M^2*5HkzKxCB#f8H`uTkxWKW zb#Eprq5&SG5#~#pnw@|=^~$EepiTTr3f_Z|e8Dg=m=<`wuPpR9H|%g2pm+^f5klBMbB8;M_&M3IG*ckakG5|DUr?1EGE3Z25x&q@D=FW0Hb ziOwYFuG@x6#B4ST`hWy@V&EbvGhW{QMhM0s1<&brCd+gi8ho=}O;kuQ(F97kHNlhf zLPL)bv5nT@6t5Yi``?lSJL!$q06Iztem2Q2JV(~KBoPBMc&t_EKjza&*q2ovG= z{u~}?AY#YVQURS93o?h%@k|_Aq*n=+Qt;Ci90#3IU}t*~N7fRL6Pvo*Ult>Uht! zKl-;B-rVa9wq}tIUr2;g0HobWrPiH%l>P8t2tCW>CSYXiq9I1W@g-Z-@El1h1FBvD z+fJO?4Ow3eeI%0fSo`Npc7b5#s{1QICt`MHQ(%Z{j@DNt+nZ*MsU-&+YB>sSW{l64 z#$ST~v&ejUIgzKN$^bA)VCYN5F=k=AV`i+Odg|YXSyh@3YpZ3IV9;J4$HXWlFqQ$t*8RX7zg1_AfCfxyh%^W zH4#h>?kM@GIDsxHE|f_>&^UYmMjc-8mL{EN#%o$uAKwYy%4le)=aN?|cKE7bPl_d; z8-&m++tB?XD6A_@$?+VP9Vk1Z0~k3MC=18o4v)q%#JBHi7@>FVUS&%=*yp*s@#%Au z+Bk^&y-Uw=VFsK<>1|Eoe1nzw+U(+4zS^9|ksEI_%9IPGdxrUr_i9z<UsG zB{JB49e-=JXEyQN9`K#Waf}z=>afTRsR;tV6tx^xEmZV;5>HV6Ymi zM)--TZYlPb1z0#H;q}U3G?r@dg|?!gWDkk1iNm6V)d&s*@z=oETZB^_viPmDCv}Lw zdoiW%Q80%jap*I}Va_-i9r|V$uK`Vq!5%|T8VA7Nzqad{jTcPx!KsjrmJ$ckxGLdP_~R_&2{eV5GP)oxo>!ZCdrV*^ zItz55X%hyz3}EwyvJT&iwVvlHw@p&v4XVWWtGB0QjBd5eXkDn{kj%mDl+PT`V)*)& zo}#K?gm6V4Tm!^&HUCyQ5drmaUs6%1ntIrPWG*Yc$PTGv2S54|MHzz>_E`2j? z9G0>ApahHmI8+pI=uBl_8rM2=8Z#rv9?9?A_LRURwKhS=O7V%%>L#f<{R~)pPoDLs zV!eqMldy3>HlPK))g2j@q(!FrkN zXm@pM3frg=KLG4G3r&ENDixeBMGXE54n7VuyDI$OhoDR*Wtq7)Q)sW2vLR!aF`mOy zX1HUoR;wwTK91^XiRV@?(9t7~2lrkZk~;i_!UN&HC&x8Bf{F5J@yx$;8f!*Oye^f* z&vjV`j9UsC;uWD$%CF-aqc*zIhB%+(kku>dmX>*=tp(-bk>4t#+7-LC8_p}!90|rCPzG2^uC%Hg2;%zwdwC#Sa}4pdX|zon z)>B{fnc_9^RP0P)rXrJUtBq6#EZc8$e@`2|$0`^2uHT+&(>P`sNQBHz`E|-mU*5#= z+#}FEWMHaIeC^_ujavtX_{t-!E;ysGo^BcOzz@!IhNFh>YF)+O_AhB0O0w)OC%=o7 zDB(KMR?$Epfz8p1He+tQZw#fM%}(2w#-W3oSHM1Z%kq@>+E#eZoOVAR_dB+8R+$&- zF!s29+o7w)w0>o`2);+dN=J>$Du_-!TKERb=Yg+EJtPp-q> z1z!U?zvHODDxw_r8SQ;k6XB>yW&s|>{C<2IwhRREa5=ZaikgeWrxO@OjwBeW`$CTIf#oF5Bk$AL#JA5B>p632qdRRDO&i~X^WqAW`u$}S&tbH7fpTG&QTES;9Y%+9 zKILHnu@4}t0qxeYq}S~6_(qU}Eu)&vggJsNpreSl?xMbfY(lleGUqTZ%~Zb zltg>x7CY2p45=h&-{z~ecbV*?K=5%`sfN|91A{#Lwd6ALNbiKZc&$dTGcsx)z`K@B z9e@DGpf=q9|Dq4z4kNtG2sDWPDL5vn6lCJ3jI$%omqm~LJ@F2$r1%>Cq{^{p&b<|o zP52nE-z02t@f|RgtbkZqWXJb~O2AIo3FuhL*SBKZBPi}tfm5$WRKpzw)P5Ku*aWNny^;Ox(``cV9 z1WC-*3cv_j$Y@(G%M^J*9KRBqfp{&CRee6=C-JHc-+lav)aI7cM%(E-)adEQSZ4Qb z`@l4+Rgmo=;}YS23Oer^uYmjF5~l>?d0k)~&$Ai$zk=V?H#uHbt9#UA3eTf=8s>hQ zuoDNr?A7gWy+ha@zdPN3@{#4r~V?x1)8YKoHiJ z+Nqk;;{-S37F*sUl~ipOP;Qut=bQSPtF|N;F9%_4Ss}c4+XZZNU-9dyGC;D<_W83} zbr5tR{iEfCDd+wjq*kl%znnX+dgSCczHEzOS0s6;y=v=hshjxHsP=)SlP)nh<|ej` zf9$pG=qFUB{1Qt~hM=HWPtblDTjATZR74JQQ-6J6ad%2ZY1eewQdJp|4)IDLz3bnb zrLfc6(+uiL^Ss7+XG>fMbx=?wT51Tul|DI(cf{HHcxibR+3K85|7mA_Aw9N0B+Ufb z0rv9b8rjy1nLcQ9gF!XQD-g<=_-52rEUwvna;ueu$@E0P1w1pYlzs6ogr1F063>9N z4j6U2(lleE_oX=BqH=XzCKr}D6TdZ%;*JL^;u;(O#`k6ByIJ4zc=tVCI^-I=aT!6u z5*E4mc4zR8&rfN5e?&4h&MQ(JTj709zu`U!_hAdxV4(XP?@U2Mf+X=uU^uGA3cww> zkvaywBelBI+|VY!WxT*M+Ny0SwdIq%_)azsQ>o(Hl;jINxD83Xm|-+o z!%@MXQX8+N&d_b$%z}K`#5|R~ntGcQMAZl(ltpQDV%gC2Y^GfYVOIR&=U^+H@V9P+ z_)dt$o>Ui*KzIDf>40cY1xn$W?P{t}Aan*M8qYhmJ?&KK3bao!6xmC^VAPgwwdfw65sB}O;17DkHl3Byx*E5HzFktdc)7Qpo^D%=ox%E zz7N>h#Z};a5w17^hVB+#X_U`W*+3Ejkq0UguL%1+ML~&{0>_z`s3*cPzGeqdMx8WX z%zS1yhLn71wPh-yD2t7~b^9X2x#bkLYW*{o4(&NbBLpgXDtTQ`3g>34MRMb)Ipe1( z?`N6#`*s_zMW(6sR_@GB-lCxsdT{+@Z4S=VP|p*kj{}&=OXL_MUe4iVZF64ZFZPF0 zwJj{&y*0(>ZhwTHfi_-N@oK*RCUi6UdB+FBd4`7d=93Z56*jgq*(}g2 z&t?zW%z)~e=15D;R4<`T^uHB6mHi^Vnfe%B)Ny+ZJsiWB3B5i5U86|qD{8;1H)+&L znL6}PH_7>mMFZ3U6q_=}3uADp~0V3UbeCTFpQP8>MX3LMmd0K2vU zOV}vt$7V>2!AKY{K1t)M8&w)G#*2tQ?lSReY;M!`Wa99w`WhO3*rrjnb-k;bBci7w zdxiCQ1kFpM?UB*O%l4!L8<#ZnwClmW8zpZ3cZ(GIdZoNtBVz;Xq&6wcls^a>44foj z{vFiHBw`Wsw8Yn`56%lo9gCDaZxI_+9ZABYh&9ecbLs63jIvb~-$KGoZ4$AFS;##t z_px&R1Hi9bOc+6}1baJDJWB!UU+fXbf!yJH5#sv@p{E|60w>~m{WS4VW#Y{gj=jqO zi5`ls`aoJ&4(rT^13nNu%`7-uVQ)LflH1%c57YIE9zG!4IB#pB7FQDpp;6eVWMDIo z4OIvI)+Oe%*}ub>Ona4ii8@4AVWciLj1eRqe61MzO>No{<6FW;^%_8lt5wA}x3Z7t zAkIBB@zuy{J`(!asE!ke%MASUe<0)Q#8B;v7s?Vi} zfwu``<0P3A-zI~bbD4YIxa_Hq4#tnfg?peK3>(k^62?n6BT(`lAP+9`|M2%S8*R8{ zMzS^ENLX}y0msJZjq+++cxO6Q6+ZN-``Dag!6W`N)GFVHgxZ1@#;4lir7>y6IQuj4 zKI_5=NqbQTLZD!$9y?pIDhvp7U&>+zCc2nq#4E^5aEG8gDAUR^u%5{a`rRGHb1P4) zd_5s=f(NoRUwgGvp~n$K*Oof(@Sti*?2_4@qd2&jB}(RTV{}Led^MA9}!k9g)`>hluw- zk0B1E(@-g6;;=-Ac;;?PDOKOl5XCo-YVq*as5$1K$|z}?fI@AjveJggS*f$imd}#e zk_Z=qpOck0>Ph*jY~zqA+@q^T*pFmKaxkJ$kr3)e!Zl{bGnj<&Hz8UXWMvj30&j9B zm%9hG#<7Y2b0~F$A7$z-U54aDQ_Jp1fsEmp=h7q7bo9tMx^>KBr{yG2*F)2S@r{hP zEM#7z{LZqX}zdVBw}4m|EmPCY>lXg`PS zzXdvsxY4E#Sd(*E$X!25$-UfJBA&+tc2+zZth!x~&YlW%Eq9h685+uU>J;41#fffT z60|F4o&l;i%qFomT*9&kI5|^b9GLH8yaa)s0Biq?L#JOU3(DtVmW$k86-L>@VE2^y z>bK1Qqi!HW!PysmaK9q+Kzc+WzKP;z#c^!1|1Evs3M;ays+!zRZp+?%Af}^hkh{3T^u=g8XX5u-U zvLG^h8Y%{e+jth;r{Z>-LI z?37%J>GR9v0>>J^1?+P3Hi4w@(d;f>D)yn*Pe8mh3pu}xbv!?sA>Ws;aSsPd_|K~B zBl6PAnjH_?7||D~jbgV`$DV+Kv()Q9F+GIC&^d$ueY}tDlsVxReG|idq>z(SsuFpm zVS9Svwxc<*Q4oKhBuZ8fX8cvi{m@ckDC2GZ97tXbbO^K^LZF~(l3q!D2HX1>&mSvC z`gh+cC|rjO_(0MRKyN8h036qfD4oot6C}0K+mkjqkx6Bg<$!8%gxDv@=mYJMUa%A4 zx*_HnRKuSUoM+>duoH@m#u+RcStAoOI>sJ%4~nw$9_1yU6lm%dRUOZa?S4d`~4fQ3$HYMv9Zloh*UR&KLpWO$(L%fkrc1vh}QESP>s(%_L0 z)Q98%1cQL+PL0?J;Cp-(-4+y#Bufb5Er@Wg125w+<4- zfx%UhlI=9Zt>|6=7&yX2c&XZ3lzJVe;t+bZ<4E_QEODzqR82qwsFnVMy)#)(9|ywt z6J_2>gpOH+Oj(Vm@Y`_YFei!}lDX-{=HHtoFF=yX>{Au``+aR=jP2N1){^V8SWfOp z%+XIo<)OHdrqdYQ1O1?^!}G#5&uilHl}=%mPWN$Jw^HK_7T_t41N~rw=Li*=0z$#* zsw@(RLT3fWEi6>cQ-@zWWzPdtsoAA7Dn_^Iv2#+Hpmb(gEG(Bi%qf38NAenZ7i%Z~_{d6O|P$^rIyL=QozQvn=!>5cTC z!Vm|p104HD33ch(!(x$fE;$AC1wydhZk`Qt^@}m4_d@8VV*v=&tTBaXqyvm#@82`& z9)DRk6!}*aRL747@E@1mNC5?6DSYH++JG>6QQK}f71*HLrn9KW4y@c~rRd1tF`Tf)$pc`tQK?Ra8` zCA-);-u@nT5EbN%Z~PeK#B2ur96>0V=KmfaSSGyT$nz?xh?*Iy$V$wIV>)j?s~=zX zbygy&y~3>^|8Sc=*bCg`OrC&P_>~xlNeV)^XUckkr&Od2`$O>p-kEXy9&}e0#8dbX>AcgkC{6L;z z4_+zK-ZsSCe%~^t>!3p(e>^d4t#4W11GG?@bpC*|-1q3MseIdJY@p*1Ndd>*WO^5( z(X&?>=LjdbQUSaJ0eZw4O4kX}A>;oj+}%ijme)@^*KC0bxcc;}C%_&BdK-E|AvuQs zSibUzz}a$nNw(jL5h@Vt0n0(@EcX~bIw7pN=Or;^3^!9IYZzDoTENrRMRTfVKdTEs z=nY>FHrZtgbIEjl$k9k|k<1j>W|V{6%yn7#7X#~3;g+wC(Co~t0Bk^$zuYEISy5eD zZ;qR9n%M!yZeRfaIGf%r5uoicoqOhvX&~}B=#R=#Hv|3yCY>u|dFDRl13nwdZ`I68 z*m0-zb2;}gSu(B2*L{PD`f!zBCy&x^XxOKI_4+?&cHz8tRgGn;Zn`>*b3DMz$rrg7 z9^a-&tlXydLoYpsm$~%TwIkoTB2l1ECoJp^LKs>c*>o=7P9^D+&yVR$Z9B?T3r$61 zx|FH4_imU#@TITA!M9~1orYViJFNO8h@^A;3*h>42wSQGZT_peUBAGF&u#ZIRv#dL z-i{8Pr+Sa;oz=%4P5d^)9o?E~>P3xaV&~e-K<)I+4r?&n&mugpLQRzy*6B2pbeuze zN>iTrk)qHa8}H8nQPeJ0xuv|?nnrHLL;0Q!cn?*27e{C(G#rkBEjiu=57F&z8AfXi zrOx^@n{|0he_6bJ^WFxFO;mN22~ z80=H)ZXHPJgAM)6y({Amgq+M;F zB>)Qcf^ClD7xW>Ww@>L!={YLAfagZJa(%Td4-0=)LzS!*scpE99C0a9e*)IAG+jEC zet+2Q3yaj9#imT8x8}A@CmrDAPEIQbv-<@B1}DS!+vFfQBoGaRyBR0gdM=%q8b>uvHXQHXpJ<)$CYd0;;i7z()!O z>Fh_-W~Eh4=lEH=-iHYEjCSjq-PAO&1T<UZ@qqio3|- z%yAu%fK57U&j9M^Szc|EVy8fteMKq^b<%GCZl*w*@X%fVBms_^(dUg*9&49Q9dyvB z$EQ^~nd#Ci5+0!f134Howe*7KnOP2LBh$?UVrPUCXca2a%9dBgAQHPWi6CkVn2KJx z&-+f-U9aBYTXokh6{+aHlX^W0H}xirV>+8GROh7}4h3*vS5u#^gUnY<7&;hO9J=Ae z?zW>%{NM7|SsPfCX9Y$|B8Yzr@lZj`tVeh`M|x*iNdz2gm;xBZ&IrfA$~+e~lPCz8 zaT-A+oqdrVBj`%C9Md^|O|L2o+Cs`QKFpk1u6h83K5H5jvL6E)r0ZRJMa7|bw>L`X zef|=)UplYc$N<^ov~rSQWqTC(_veHxfp;KXA0l1H#7^U8U|>2!xFa}}!MoEr{-YtC z8=z|*SnBHhRtN9AmjW3d%&ZKPG<1M}l>e;mU9kOSg@2`SyBpSum&_Blg<*_klw)v8 zEf;{vFNgVDdY9;-V)!*|)30n^kX|&7FzHVmo)%yl6w=iTZB@XJX4y6%5L95Rkj`GH zajGDSEb`gakH4pd3nXhc8%J^HJV_lX{s=3#T?a?an<_C>OCr$sTj5U}ek?_Fs}fvK z>Esm~r;ttp{aksb#;K-@W>BPcUV-0j-(mek-H4Lvi^~Ydx)~?JtvT@{;EYUL1={zY z#ib0I(sy?IM8{%op^+#2aTGi0N`X$l+R1L&xvJ&XqUxtwZyi3_K$({Or)zo>y8Q7H zOQoUsd5Zi|SLCfI?WYT4;7Ty!XCnN?4rCmfO447B`j=gSm% zWa4FE%Y5cCJI^aa8;`iO<;T^Sxy_hP@o#Sq%P>+Ls>B#Og8h$RkAw-KS})Lg$~;0|7F-2lxxfa)7kJ;gZ1JX?*JO_9z_Tk3yv+g!etE9pozh^aFm!_L z1MV|oo)oV*DGvLyM!34-IQ#!{vLys94UtiK|g@PMQuU`0V6I9KM zw6ZUr*L(0t5FPivV{95k_bN3iq|4G6Yj1?KKc?KeCiGO>8^J@Tw4;)NE{F*gV5W@p zt;IB*<*BGuiww+a34yse3K{Vc(uaPZk&+Vjp936D zOZT*6Rcl$%ovUhZ7drC=^6E`pvp9Gm8rNM90{UUlA1HLbqDo+a9S^ohowJC04HcAF zu&nshy}i^v6Bg){W4G$52VS+Mt0cN5TiDjr@dlwjbDl@YjA)!8_Oyan8U*wsYt5~4 zGF`>Vz8bSWo;BJC^*+oHLA{`dT|#9HA~-8fv{p|$P3h7}&Q~?vHS{dMP|St9g!jqy z*k#Je8Vf|XSoF44;!Dxrjni9pmw8;`D1TViO})&d*~(GSI_b;@~iKaYtLVyTMz|y62%vO$j^PX(D?K11(T_$X~QybG8jXs(0D~EaRgm#px zagsoN>*H)U^66x&(wPP@vh_5~4SpaD9AaTV#48xvbS)EYX@1DR&0e1>*Dce@Tjwz4 zv_IZ$(=ReULQeDfHk*?1)`XVK1|bY}#UeZP4$?;XDEM@))}`Tt@M8usyBin>^Lul4 zZOb;D|3>cmS@WwlXU@JrS-3V41k9W%C>EKFn2{GXZ>|qGj1@)+94m|x9}pZWAIF;m z1`%{pb|5aDB0)Me4#%)jows3VaiqH7k}$?DlQZmG=&?rZS=Q2=E#)!WnBJR$vEW+F zD~n)I=@kSJ=e3;`-phGRpn_XAd)I6nQyv51roB&LE{O%Yxfx{pOpT2y@F~9;IvCh6 za05f1`z^jk(Rp#C;DZQ?aOCF3s2HOG0MyqONXmfW<6$oQMQ&0fTthwoMM&2v)T(hh9bSo)jD$=Ht?piti58K0Y zwEv*P@j#MJ^xw@#)?JH_Ew`oW^d@ke!0{|`GRG*fn#-i?D90OmKC_3eQ|c`F7@H+@ zfSG4VW}X@q=;Q)d<~E>Uc{GJlLKmk$xeVp_)Nu^v2o+ggJ*L+VO9n(Je0mkL52CWQ zjnY-QRi%~sR=WPR5TH8tMw?B{+gI!EAZ3-Jt8|Wl6nmw9-ERf&5r*i(NhL#H1q*GV28%$ZLX-y%(vfwz+ znN}GEZu{W&bu8?$_Qh0LIqFrYoGG2#na?eO*+% zp#hU_tIthWmDKc0U_Qp;rJmF zJ6E`L85p{`;KW`cvi$52Wya${;?^y(r_hsuv<=9nB~GV>^P8SRPyCt27eTaVGG6Xu z3~Am!fm}v(zBF3$W~s|}0k!*MbM{bmfWrG8sAR!VbtoIva6|Ein$>f+)>i$a=qi9S za#?bP5H*#<+Ayf9SlXtCqi7VF#Mdp36%?fT>ZgpfivbkZg7-=)GULuwF477p*2^Gx zbo6kCxpB*t!A3x$C4)iijBo^I(<#p3g$U@_5m1Y!0s-`qaW?ub`W${u$64@ml-`X+ zH|3j6U|^A@I!;8pD^L?O{e%F(j~;au!t&-ln0p!J@ueVI0U+7H)Dm2vqschFu)$1QH@5l;IH6?NX98P z>fwhn+THAq8-FppOJ~*@d6xxO(bIQ_+1NKT+Y&y87iE<&RyPKf8fVG%sL-m~ z=Vz*Sb=N7`|9`e2BWA2K({jFS(l6dLj1#&RRL#nT2iQZ61!rt~N|&zB`;p2=e(f)C z*PH?!Okh@mD&A0*E2^lrEUzud$JJZeXUu+C8>Guph$b><+&EF1(?C+KlPk)s2?j_I z>%h`Ul!HdO#vTfCiY_RmQ~WYn&5k{l$czpz+3FtUcgoz_ev(4&D?QqOU8aIw03`sl`b-2P5LqF*WHz)s0pqI~=-= z8~QNvH4Z(N(+k`@PKT0RVeqp&zYcO7eBB*h>MC8RYFwLbl}_E$wy1?XoOH`&+7@Gn zah5i!XNnz~9{P-3j?6?yhRT|Kr5~RzSo@9SUmGnFGyE|VdRc+=wy&c;Zf)Fx-eY8n zJq#yRZfUx4MnOT&2E?1r9yVr!r5VnbF6?NNEWF{I8h=!I6eu%|4GS*`KF9@Y9su4r zoo4Z(s?gCMVYIfde9@)%%x|_-{X}F zrU8sl!R9(VKR@Q}w)PB7MUqY%=M{z$MEy}Uq^o6II2yj(hOutf(a~^tA!oqo&(bi3 zbp4%3#fS^=rJZtE9(<;BivLk_2y@eNu0)p^Gt#xd?MpwyTIy(Q*lTU6PG|e2O_w2D zkmYriUaL$SV1BC{I;D-NB~(yVzGi$1K*HVf2&5BgTafHFu5>lxz|*20TmO-U|MDJo=seMa+T@NvBK3V1(sc)H;RUu_7XAC2RJ;<#^!`M}2~3m zOU|E*H2g96Nn$4%sYuOSrE?>|C73Viyk+atmCLc&>=w`{jJ?5b-4VPve_&nv9Ym%a z*6D4U`KU&Qx;pl)gCo_*bqm+@yiccW_zZ5wV3;^UGgjD6>6Y&DtPuMoY%>n?+q(Ij zTRHz&xbNblFgm~MiDBIm2Ih3?=Jl72=vy_XYd}DTt*-@k2QMmTI_4-hj#EbN1de!9 zSM<16vF7Po&+&qKAo6JIBk;dw{Ii8eS9zqn z5j0d$yV_?$ zMmn+oaX{O`SdOh7ox&QSDx}Mpyn7bdvA`07B-W87og2Df86)(R&RfZAL7gnIZlZkY zy~9!kJ+2 zXpqikeISeOg~v9pQ5;QS0uOt68YQ;b(M4y<5!-Zbl+%Ub;N50fhdQ$3E_3_g@H@&K zX!B{yrfe_FP2)lj$b`J+t@}YPDyFv{aE2J_pyIHW{i!|VxYB6zGD-&bgkGf zhDa$30FzWFE2;MZduuVbxPt~LjBG7^%Xy5F!mkUS z$BikBFZg~MuA~hF7<%r%ILQqY(F)S_^dZ!%cAtF zqAB5cK(Df>xWM~T9y`vPNhTdvcXPIq2|3DKlP=GpX~xg;Y?^z1H%L_Jv>zn?JIy8? z|MMI1pz*(P-P`o)Us}1@pVK>A$!#ZWj5;XdK^M!+zBbEY!WnoD!!^q2c6W1)4trN7 z=}hGtGBGq^lzn*u21LyL|)qP#Jg13)%|N63ekj!teo zsoV6_gP*40CiP&HaC1M;KOoy(aG5|+--D^qMl1I`{)~JgS70bjtIQk!Vb_pS#Y|;E zjMK`Q>@w@dsEGrYPU6o_w2?7$vgy>YzE;*beH^ELHe>Y)!0^_nZmg15z?CUp7S_)qw(<5%#T|N`~gYyc&kl&s?S1b<<%$N|pLf}-x5kvwA zsmPYxr}GV1EQUGk)P-QHm!VkFHN~xMJb|-#F)M^cbUN`J?zwhg@GA3f2AmPMZtQohCC>8&dp;w z#Xr}jx6)s(8)qx_JL`IYo^ZuCxwWnbQ0i<(S&~NYrTMzaLF`y5s(~Al_pFv*Ld^}L z2=}2OrDhjOa zYtVU77-=h-PH{??tDqmpFOLU?9>GG%*9_Rq_;epNv>Au02|yZ}4SVA?4H>dOvY4A^X-L(}5F)sMQQhNEWz5lb4oyW%}b^}Js* znb6a1l}nKPBpbsj7D&_>@TEVvDZm6&aqAw&Gn1wi(yY^h=0fw zxHdOkIu|~`z;j^)0z{-0r9~hw~$k_P|Z6u_Bd5 z1Qw>PQ!21uU?>|^Gt7Hc&BI7V_&Yx3Rx};spGfB^I8%lAxWm`_`!g43h4WuQh~nZ^VFOGZHTfBNfrvI!Zgw+GiqLKE8f56`{BIh$C3kU)2k>ZU!>4C(H1jOcWa%br~K`MNxo1oGEj}wJ2y2 z&>(r2f?t76zXWC!nEtli!rv)8EiCJ{F#_r2fl*UpvCbVy=G=3p!4BmRB65tKNWG+1 zri(@PT{^mxOCUwHvh_=M^V`mmtd(>XdP;6>nStre4 z_ybO7AG#TAaLUXsxTiJN4>ojM92Ue5hY{>A2nU4&6CztM4R$BN>h#_F-;<3L0b^ZZ zY%Iq2gy);OKK$cp9sbe7`(%~Dxb$OLr}IPj&sz3Vn)l4StMq>zQBBm?Uxd#HjJx!+vxg~1kwMvc^}@0_BblB zMyBTMVYjG#jUTMAe&>F_ahWzIv(E@~%eEPDt0yK09JT}DIW+JbwxKg1R#k0?w<)Xw zWXJW8rN!qKpH59@p>*j)h4uDuQ+IS-Twv#kt;Zuz$xv{{=Hu8b`7k0bb_55n$J&3J z<+=1v@%KFg4ZbtV#gPZQTzmXpRCO+)TdJkK#+z#ee%|OVn{D3c2${?zNk`^8TyA*! zCE`(odl4~<#gr6o$u_LojOiG~gjEk9gx7X=G5r(+#$_@-Z&qjhh#HQ%NK-~#z50Vg z-BU1Ipw887_&1dqaF*ygUNw-8zsFnO={|ek@#i}51#V1Xe8Hg1yWM>U*5lD(YMcet z4AdPNjQD@*Ynz(GPHCw69n8)Z$h{`BB@W*D_#YsmFE}d-f0c`Vx-7GulAK8M&R9|4;e?^n@hxHTQwbOuy;i_>W(QX2&=I@1-kBIf+kdT4m}{6-rK@2;`G zYD$LttJ3dK>4%mNnmN&yX0Y`T8g~0-9Xy{ws88pAFXG2sT2~lt48*AhjDIoJtXY}H zEYygq{i@ndX=AGwW$kcTS~XzjFrC~E8=SC@k*_N5Gad}Av$4#n>9SkZ@?oa)$bxM+ zgB^~EMj>$d!2xMHvF8KT)6Q0UJj&SuH|Zz3XTAW%dx~ru<6|dC7v&2}-STus=v+X3 zNez@K?KfKHptQHCPREZMGtUoDT^;10Fs>&p%l;7i_+~jA$kGfGuo)-P`DUVIf2|-L z57atqUe}^%f3M`{(D(+Ty7v6q$b?vW8|?5*^LefFhr3sp)t^yUjS^DbWNE zeEO>{zdaQN13(&BT-aGW{2zvHN4BvQKU^HuVccY1baU`qpiixi*F0~e^3MVr^R%+p zN^qL&*bQ=kwQHE!HWuo9GF@iaa7-uq*;JkY|7xl^5FPjk@U%9~GAAaa$B+BwCdK=N z|8ZaQwGJ7oD0c+{vvrO?M7A{?@*!`K>aoKRPoe1JdBK-g-`oUsP3{%iE8qrc#t3W(kB275@q7`W1mH-!5vjx(|lP@v0tzl@fg{U;pahp6_}e>+i6DjiiylP#XV@O00& zlh7XnfkIqKkF~E#2AZ74LZAC0fNin0kLOWsG+Q1;f#!iyV0xKG+4^*B zu&&CmIeFWB53S9HHwO>;rMA}RYZmqCd<&cE-6`^+`KnW-9aN0eB&pN0prKFa8@|B7 z+~w&K86i8TSDZpHar%AnA{45ykv2nS3w*=Ed6A2EgF_|ys`i{#zpMx zmOdTBrfH2H->)a|fUkzyC8!x|^^%Uwtf}|rF6ZiF&Cpdg8SJl3n>{(fzh5-v;LO6! zk=X`a;(4T>lxA5UGVSJ)*B3lE>!Z-D$QfsLu0SA8KOC(%>}`V|EuGN9< zJBQS)YEO?)!%JOrZXWU3KjX?((@udydWe|CVwec49&jzpa;mxCnCEmPkTPeSP^dTt zU{x_0GWCyXSR+$<3EDSxif!?mD-@++gPhfRmHd@`OK3zV<`hn*J50QV>Z%k{VGw^`~R>yp+NvG{@ z?8EBdaxS-{o~B}-+u2IzJ<3U%^t9Z3Z>zlj$iSWRF5bn?h5a?F2mE0ooeN)}pHByX z!gVE^-t3JFkX;jS4EU~&gH&_PrQ^`RCmg@+BWvM$BH~5a<1XwEyM2*L=eBN(-5yN! zF|K1Lt*S4dNv2nslSDIkfjKxT=pE1Ni7u0YkMif&!hKxS;|6`z&_HaBOQ-qtrO2Lp z=ALgBa^litrtVTtc$cVrliAk?Ob*63tfiBaaD@$vP*{q_<3qMdmq@_fs8p4jy@cL1N^h z9r|>N|Ng}5DqXS%C$Ax$uL`_y46ZUjn2t?+6uKH?Ixa+dtv>>vQ@^$2W2F>8B=|Xs zn2n|}c+#Wj6<`9Y3Uc^}2MpbFaHK)*HeuUo8!3fPcLQQ3XK9!iPDs8@=N@XJQGoPo zs(JPy{wv0MxSZMKQM>Wv#uakaZ#5)VM>h=(O)ZdN9EY}z}%XDlA zYA<3?x7&0^-Qm2q?_hI?s2KtconFeP8;R;4(Yg+iuQ({H^;r% zrymWmo^y%8d2a}Tqj|RPtHnjJt5LkA=iMs(h@Jkv92WR*YK-+ZMA8T-bTe%hR;F2g zkMtv)t52^D-O9x+sBrd^cikFX9HH(21^+`+FK=nX50M9^V>AakaXPqV{CZr*u+z0! zr)qah&!I9-(MuIh`pFrZru4K8k?l5}_FXz<*Q|QyUJhHOp#}#EEko?ggJc`KS5D_K zfoVWln-O^I*1WAfSiedaD$A2|vE^5X|2$t=B*f>18hTbhbvOw=L8#WE=|~wqLY1H` z!=CaEQl{rQ6PN{?*xl2uUOs99Pl%Re($7ZK;8+?uMyw_m0UCU$dYm3mSyb&<(^1J3 zpk-4spMoo@t;Er$qmS>ptG5`@Ya^V4Uq6r-laiJ&~`M>4@qMzM9kE%E-$GPq7IV3_$)Hyq0R}LxH=y=_%uXozC5102@Oi zD~C-OF6_pRMHVdLNg0sVl0FZ)&@exbY?80FC;H~ zQw(d%GMLNn6mKT~6j+$sTUXB(H}j8@fmFnwb(u1?v%av4bnNP=PVNV*-18#)W0^U7=h;lP$|3Wu&WmZ2KXIjZ5q5YAK7hn zEW0meB2F1BsB>Ad1&cMKyst<`Cj(`FP}v%R8OZ^!-w8|^rRc7hhhu@$(3%=ZV%JM+ z91kR+<5T9$fYX^BH;)%i$GEQfXI=e}JREiw`{+1zJG)#PkFKEr?=c-ajy1OXX>o-& zd^$R^KRP*GL~{nSuv|@jiXTYiJ>q&wdSX9l^9^TB>9rKwGN$9anxW`JUUoQ2K|1RH z!n$QN5E?J;i(;cf*DB$=b%)oqdvrr*;6Y#e=f+SYbUxjZbZ(<9KKR_#PI9}j5~68X zW7j*JlxE~CT=8I?ZFNM7`^Xgfu7o)dcCmnQK5tA>7EPWwg6}Iz@S} z%OdM&82fQL&p7_kf^>PbpcvwESn}_7HjaGfF|o?QHYDjt>L|!qA4=)iGr`N+P%BqR zXYsRQMvCI=?ZFWQ&zG(jaVQ~nw}g+9X!aa~^Y=6zr^FgN=)o-Gp>U1eFSEm@QPGgc z%ET^!a>t;9YpLN=NOk-sH4D>PdCG>q;W9Vfd}19sRRc=Y09*|iC@`?mvBjy<)aUUy zHKBYn5d7v4cpmHt!;6R+X*ym_d{O70_W{9eR_ZeOj4+G%xQU@U9si;%<8yw81?wKe z);JfSKw{eENATLT*2__k>nwIS#kV2P%py-?uQ}RH z9!IQpSl;kcw9eqI8F9~M1BMubBug0uDZ&bxe;?LhoMM~Kg83&%6IjuE)FtEApz|;4 zyY$Oj5Z9@uW1PeDr|7h?v6Kp50|Et~E~ITbRxiB#_Q}HOS<&x z2%l}#Wh#T?Xf=VCSsPYoft4cOCQ5IFu`|w8jOoOXemPVMySYGZ*CJyb>GIH!t2u5D zaqeMTyBe!k0EKjlckn{wtb+-pi+ds7rMGo(D`GE?!0*^RcnZ<9q+p%(QaOoBSof&z zZh(yi+Qp)DSItL|KR&hKO155}alY`D8?06!s^+!Qxg&__z=AK?76uA#3r?qa-Cfww z`6Zn(BXwnZN;&g!l3t@Z!8I$oCu(+E`6m&-XU81E*%w5sWibM;^a5duqDE{U{j*#`*`#rWRoA z?I!FjqH)pP!c+1&=ZL{OOuk^!be7nZ-)mHz@tp{#kAiKFd9W$S{);SAKQ$yI} zP9eV=YRyAnUE$e*+&`z(e{HZ0Hm`iPZb2P=W0|CTYj7x2 z=~q>yOP~2O5N|ydmRf4FkIw8rNVtpsg%4tSn==nc=M}&L2=ig(^QN;Pu)awTh#x78 z)e3Z~uN-y@H6K)kcn zM$e;9kyEwjN!9N=x%YO>oNqHO{GFilovOuKY?TGsr}n|C!VL(q$Jm*I({V?x;YN?l zIF~sTc)(VjQJ%30UfLX!m7%;QOed&(tMb!cjv`>4eO40Xi;8J76MmjwbD`QAn{FS2Hw6Swpe-B|E?QFVS0A$#0UKg{I?H$Pr9wzeZdQE#pwwe!!De#}eZio-wk7(K?X0<`{v!a7fSshqYTY<9ft+}H zwk|&acRa<5_JLO)x9N4|M;=CA)=*|%Wf{q{U{}zVXISqOf5D#vb`J6LY<`QmY^*EL zcKV~4Gk)NpbaI^3)HO{%+A-QngnI=|nXYz)^P!9r?z6J{psJ;}B^$4(UtBep&+^w4 zfV8ramEzjQI0CV7O(%(T84=zERM401INDy<7A#D%x;Rku6d7+um`2NzPHs|`!)AmU zEy>l;a+K4Ac}l1FXX<6urHi05d!eaBY(sVfb~es)nYI48?kxB+M|;J1`40u_3Wm(i z%FRnc6^LAdm5LI7obl!UD#}ElS`b4g>Q$-bT|qw&%SdjOWkRo%zhu5A~E(0%dg^8 zKI%C%m2pMlyAV%|KTbAgeztC>Uuex?wORGT9`J5-Mr;RiY}A7VL51uKvOT`bl(A)K zW46$*nCj03e`pUmb)cvUH^BOjpe;C^AUpUl+q(<#Z={+c4c9nbuDBZzKTJJ<9kB0B z+ta)JS$z36{N=dSi@J3t3niDXV20jqX2|!HQ*)GFdxkkmCpVMMaO3%4V_K~^*OVM9 z?z^@p`(a9_?Z1uff1J{3tF6P!9HbxnLo74cG?W`_mgy^ena9=I!j%#~FzL0l@R&)j z1KXD7oo-m!6wKaNHJ70*78$M;)DMx!F05?hpQu$kG3Ej1mM$pl^lq(sohz)&q+`d4 zA}*=LIiYm9Nk_KU$=Rjy+CpiCa>8eXbkc&C$21Nlo!pC>&Nc##T`7@b?Ir`BS=%V= zSVKco^Ga5?XbM$2J9(?trrGsiR&%-eC2wM@8ayysu>Kti8=2DCn>}GoO|;WbHgRVg zI^4^Gd+Ymx70SYM$^M01I`O1z*+_{u`w*Gv zuD|e$b**e1HLfvno-@g-=MEiW_DxvYSnS@hvpejW-!ou2U0dD%Xbng;B;M?G} zf95o2e4n+kK)Wc+9P$nQsRL8VZbSq4GaZ%&WY0a&BoC388iW#2{fgVAw_6UMNHVRe ze#zCw>vR^;_9>vK0P7jBL^)%YZF^ZL;*|I6~rAepw9qvMA8Pl1-I>}g^m9D*O z3S8Tc8&chM6lxngJWky+&vvL4{ty(Hj_`m>r~MM5A|y7WOn!-Iue8?p0wB*W7VDz!@Z z4V-WoN=HM(2#a`8O>4eiPS=GMxGkOyv(*K#{63t=x;48-nYy`4Cp`m7IdhA0<~wNJ zgMoSUM$I;K^BABo>8!>pu)1lM7#twK6RMc$Msw;7dS2K&_YjFQ~#v)O>+ zHQh{Lx?QTS2MhldNR3O@7KXWj@dKAm@niln|HSy~sn!#ygBxID%nTL^^CY7ZX=3it zpG8{rle3let8w~+`aSJ>j!ZJb%Cr*w+<`J&h= zq{~KIIOo)NlP^u|u&Y!xNc?i;5;VSClYM9Xz@!se9A(G2-RJNoL5L-r#iFzy;blQ} z#@XVy4Xcq&$H4;WSp5dO?!mwelB!YN7^PvkSLhRVoPir)lvL?gOpUKwZ(G&$Hn*DKR_Xi@tqt@%l#Lnsbc}P9ehTYqnoz}#kjB(- z7N&;##|Y>CF6ePCQqfo{{%;SlTj5AfcxRlN8)-In>Ed5(h2GU3BEd}1joKnInNV=N_)Tub&4XQj1GwEhKM1RA&> zls87nGo+*IA)N_3j#4rOt))M=G_ZK(3&tn9T={=(uY}9Ow&}PblJl7heX-}^*|<{d z2GV6nTycW54a==zaKSH;bZ&!^oY|vr%|j-cUl{jnY#K==!I{l9t#{ZTMxC@CLAy6A zm(I5-A~rUHIW%+`!-+aR8wJ$Z;nDI95l1X=rYC_0wN0lLennS+uCpXOgALJ7eD4={ zv##b_E#zkr`sT{kdrT((NDTc1v} zE$X{i`*d!|JBq%JtYyTRnr&20KRQCNTU(INh)=R@b|{fjS-IOPR%DCW~j(pH1tyeCoBQx>~MYO{X}`U2e9UTH^+@ zk<_ayz=NdFz3a*k9B!$4KSMA>T~B#iw6$?|<(f;@?cw+`joX2|2ZmeGd;em2UP-nu z%V_ueG4oPAT~CRmw*gF^WGHsk11~c*pOS|bl!hDk8Mo$99~C;^Q!A8y^Z?dhVE~)m z9L0?3RGN$O+q3PFnk1>|BBb zRr0`GE9xPq(kXt7FLyC^;Tc-nXeus(D;eg^KDecrXRK?gvBE$Se7P=$?zZ!BY@E@} z*jU%~CJ)#>O5`QDU(KWLJZEG|GjY_IP#DKF7i?&uPoiGD%%qxc%5hbAH_ceMn+uD=>fG6qI)HIBJ%{+#a*sK+HCT6-yI7^; z*c!N(Naz2>MD8{+%*;83b?=b+Lb%@1J z5&Pw;OQ)_txWWbIce=6o&Wnj%y)zJci!INOBM0;L0H*T=cfzd&uswH~ELaf7jV|w- zU-E30rQ~PxPg3cxtf&vJUU1feH)6bN@d(Ic^@iX)@E9RvcGjy}7-p_T*{y~tkJE&z ziSLFOuN`}^@Lz$AolXDOzMhYu-7Tz}FRHhA%3sbBGbtR+_o9VZ7ASq3PoK-I);SM8 zk+oUWt_B`*wOk2ZFy_Xqs(9><=9~dq%X}hp)&e-o$UAgU`G7>0%P6Q}jI9sE6?t7=Mm+Xx~a<{^fWlS4_XMOUFo490kzSbEpc0l1*XKSq zZvyHxDSo1KvZQ9qv!bZo+3Ka|bn<_hf1|PSmenaBHOc3n^K7AX{;GkirYlXWCWc+W zwoEy}r>tsu8uN6DA5L68=GC><`^>SMXMoHFwt1~>I6s8LVhbG3Gv71IHO{=TnBPt`_K2!2j;IYuvtutBp z3O{P>wH2hx701w9-xKtdUKNYdIkJA9GsTSh>1AiH73$BO7M_Ny>5UXj`J&k9h2U)P z<4D`_aag2NlLy3-#9g3hD-r7mZi|gmz}k|(47X`XmvM^ET5{?gHhQ%*EI6#vahf_` z&vX_F{1W53$NpdJoy(T0FcyaA{VwOBqNEUsiHmIMmbY=}phhlhP^V^jv95h10nxI~ zIeqW7iv5584j`q75JK`pMw61QDvSQ_|L>pn`qencd3xNz{ufI&7D`Unshhlw55O-F zjFji=M@r|o%-7$;-5s@eG@aW;db|`1tkWy6pZz~qo|(@^f!6HJ8Y{8J1l^$*qpEjC z=1JWRs3SuLv2agENY}dr7B(YT-RcEp=qb`ksXPUx?$Bc0+=Il*zSvfqR%r6yiERAy z%zb*PYdk#@rnYTXVI9*+cZu(3!E_LYY3kt2whBIck>k$rxPAq1)IF=%mMUGAT^qVp zI<2F6ywhTINq@Wx@lR+KZf9$$ z6xG9#mgQ=-e@+&k9~d(urezz`RS?gj_`9ig zfzrj5oLAJRQyoAIHU)9a%>aRVfqBBN)7g!X-U)5}v^X5~-h!A#!TszRx=B0|TUi*9 zu2v(4UYO>r_o;KzWl+*!NMTU+_F+ z4Owoix|8oH4%|ae9X)a|v&L%zUu5`YgAHW2(p$psB=D-@-@rH%V|u5z&l%9E@juMY zb`3MeOw_&3){F>5-Dm6@&oP}))1|v7gIQCQ*BuUyV>(3yoN&DFQi)%|c!2-{w2b}y z`{C?59@=!NK8>lUkp@u?xY?G-Qw%^N(U9=^R1uw7$Ka1aQtIjJTUvg-m2uA00SG&P zaNZ)?bxa?QuM^ecCqSm=Xo1y>SXMsoWtOGmz}?pR>XawhaXVV(?(R z0%$6fWCS-RbI|f$G@asebg8zM`4}91vQ@fF6NSSi|1E6ZL~6T9t_y(o*w{emS~Z7l z5p!sHIT~i6#&e*rogX)4-K=o+M0;$=WQIU)KDFsgVwa;%(Kye#7f}nMK_OiT=q?|V zudPs*&MuSB2pQ8kl4*EQxRRkXp>PLBeAt^f$TyC4uozXc=3NPZPa@y~%7AQ|UTS&V7%GEm$uKfZ&|<*j?8Ec52b>tSeOy zfVk&WFoK<=IvWQbIwzZw)Aefu77D!KXjv#g5&3OaeKGaX#DR`}Vnu+oGxf%dm`;%} zHuQMtFwipikEqh+^;d@Dmc_FGOS+P7@lsa_tWwT^X9mmAa`lhm4dD>rkLbz}2UY8o zmNk7;+e~&u|A@v6%*gS}m9cRhlgkgl1=Viq5*fXtO^e)774t3oY?&*%;gM&Av%ccqK?1EiB+I@QNXSvt4H z|B$X&mHTsay;b~(!{?0b))C*Psxi@M!nSnMH(Fn(s~WuaaMDNiJR^zp?vJ{SSfSM! ze&+s~Q~X2DzG}SLHSHl9v3;@n3ZKzQrzLafdSyKE7}sy>qxCl0(eaDT?XpYMkDXc> z5h^c?ZI)ynNqtV(+p`(1$gUYP(E`|Iw`JMUSRk^5>`-%vp<@QyZEc0?P!A)db7byK z%li;p-0pN0zP1>+2XIP=-y~MTgk&I_BJDlHgR8; zJj-$>U1zMw_rtU-;|69Bc;m!eR|*sP=xW`KsJ5*(OXg_W&^32VX9TU!>pF%mnv(CJa60wrBqqIe6%WZ} z{gF3+Bi)ghm0BDkD~@(&x{-Yy)4MwsrQNzQ*+KrKato9IU^JoqX@23^T9@DPO+%Mq z%pt}>mr1W(o+({Nh)t3Ha7TUjnu@=P%H_eh@h_p<89K$#Oq))MV4Z7f{0Yq&k6kcl z-|U3BqpC#%&5j?P&dwDG#KUB#-B@aVFE!qm5Ieym$6*R!h3hwotgk9?a!UWE3S#UU{>YateRPgK&3PjG zvUERKfNW#BD(h&9IrHj6ej)8=GMj?=q)HOG3k_X(`ef#q#G84~7(9~c8>Knj_j9J# z=H{A6Z+>!a*V40&e!@80byEC7)rpgovo|YAZ+8>U#ArrJ?~HbThy&!E*`*WTfe$(} zep38Gi=Os%Q?g)ZDyrdLsc-27RxDl~ymC(iV@B%zAYI24)r36o`eT&Wg8x!61D;xE z>+#U3rn8l8M;GHD%)@7oW_rlRQ|P?Sa{ZDy;{?2^k83%Lldg`yqZtLGkCqRA;dI;f!@Xnu}m zAFcd`-ObR$A|Ot$FVuZFIb5jk>U?Mh)5#S__USS@yRjfIbuXj6Gq_`sa@)BP?snYO zcu@>?qRqZ|SGhZ)IDJ9B0U{>!BjU*F&Mca@461(~{BcD35J!iNfyA`wtY7zeMiL*x zSbC`I;0W*nfNl^=0sb;5^aKzbYp%-^f4NV+smv|8bde$KZ!^W7g#BeqKK8!p;E*nZ zQHynZL%OJyvuv@!k41SzX)rkhLC>}48A+V$n68R5?eP1!HM;b%4C%}`4}6oED+)eJ z?1>xK2A2sKy$D!Nq*Iq6WK5^Xe3c*Ysk8opANiho1-OB`%cOH0@eK+T{z>DqD#HjC zX^81HAK>U$_b%|j1;xxj{Sk>fXI}O^$c#=4yJ9yyyD^(^2)Ask)`gfThXALVyaK0nDg&j{9uGK6f}PI zDD_eE`^~0P-r#L((kTEqv;f(+1|ML^9J5-NV0f5-lR35rYgu1muJ~+1#716xYBTtezzPnk+>}ZUDCMR^+BN?I%7T#>YdVZ_U(6!| z1gF_@fRVT;xfMrP6cN64{5qE zK#ao@8AYxD99@7B)1@liDSnSHD@)ZYx(nz!r!(0&V1;avS;l=A>W=)|cFPK|q|Dw+ zj-~&U)?mNfq4EU-@!oV94AVLWmx+q4XTfu+DGZeb2DzEuHgs-8$+FJ6h0u{;z+vC- zX^5GsA=({UYABShj9sNojIz~IS{lN}L8$}{#t^cnqmz9N!^+X(4xXKQ5Lt1`4U($iSqWjv7I@r#mP z`D9b=2aR^OWGU6y&fdZ{{bc6m0B&LoELyt7Y~jbtp{uAp=ATbLW$w>p<9Dp?kvWw& z>Opq@NdttgbW0`b+EBqwW?Wm3wWjrBrXIxhB?tH&H=kMx;_|*|L2%4?q+grT`B9Jt zMc;xr*!hw_MaB=7>UKHpF~Bs0O%ZpifWOMbd;HK0BHq%QtK9e-_n&m~>)@CmU8Zne zTQ`Hf1pzOrUJecEQU?%_)m%Ax7A|~i!6JxBZ<6k<0VSJBf|$+>5b^L%IQ%e9dyx6%#N4lfW55Sa z21aRA$>zU1>hmV_CO@AMeX-a{G+1}frVr)N?a~R)tJ&+>FuUB*-aX%~j0e-@6rZA= zzwLOKz6B1uRpY7Am1g>M0mJM~0&Fk>V zw;Y*f}0M)mqiwXN_v zjZj3mFh}dYtD(a;ix*GlC=X=PJx5-$pc2G`ShkzfRcB9|^mkq%XR)6(}DlvTX~+yH5Z^9X4ffbk=w zi(uoa)Kc>g>q-V&x}HpxuHRBuM8Mc=tluiY4NO$-;ZqB!baIr$iRwjMChJEQ(1iLy zv`5v6W`Z0n#?S@l6@UQXXgq8U8thC*lw=Htmlxx~ctfUbjVFi$s2*GRx9I2 z=!xoM;Ia)z<5fq15e$y zy%7kK@oT)z;M7$I#lefhL|-|wxp)>3VSVcx{Y}euiF4}1ZOFXWSQd4%wFMw>`~bIN zx*|3fED*FV5IAb!P3SR13^0bkjc=>Ie333)Ug)TlkN-4kSpa6o(wl)3wwlV;3V2bN ztDPq5p0%^ij|2-eLORFHSHh<9Mj(JdIz^(;1`t5iHt&p`Jg}>rDNML9y50jGeAVDt z+Aa9o6fDp!^h)vq&oe(=JhNLKjnDG?}GCg zbv1LtpM+vB+;Nw5r72yyu(>!@KTm)_r%K04HgB~Z9+S@q8HbEL<9jz(uK)_;Kl`(# ze!xltFuD&X*ljEnSaP~98n2+*BghD`GvuXc0($Yv=T@Dm4SVgt$Uzyezb%d92*wLg#f5MHfpm&9q7!H(Z4#rV*}L%-jF%(LDdSRD??XVCj^BGt5`P& zy`wsvPwOck+3Rn)HwV^N*;Vpdc0NzmIZIX*oinQ zoTC?onf9VI=bYZKGG$`YRjkYDOg)1;XkwdwDsmOSJE|Z2NW(2L&^t%u{xf1a|C(6GgKi*dBC2A4C?%(pIuID{Dcpdn z1*JM89yOHH`5%N={=aG9&kHi%Xx53!u8Z++O&ffngW0+O0_lPfd>!-xe~7k2Ic$ud z>oE*ccc->M_>yUEYA@%E9~p%7$8ye7*%|>qQ<$p}5IMM8fRWNgQ7&}Erc->1Wcl|> z*8bs8)2TKC&ZKxDa#a{SlM_)3qOy=)yk_2-%$Wi_FeW=%?eoSTscEUONNYNwf4s;@ zb5m#Ff5Z>zBJ^26B-QHJwi;MH3p;lkxqQ!OyLL3`9KXRIPPvoTz|CM`mY7-pmAA75 z%>3}!i*2ngC?aMm)S)}r(&>Ms_FB#CI75%}+Q~&+9?!X8<41Q3nbPG3%eb8w!|Eqe zMp%?|a!hy`3zPZ3mYyY@;=cecs;iX}-aYHlyzOYbYC^A)-bMhJB06qClf|b==dG)?wfRqQ-7&+S$aP3DQsF=W^MhtO0U~nd|s>@0fgwQzrZ|x#I?#9IUbAS zV}rI<#bg5PUZ)707)nhDkC@h1AOYP@fe9fIyyt+Fa)1Yl^tmUhk;|`7Zlq>lG+~>)2VCX zgwV7Y2+EH7DIss2Km093)O4Zde4j|)?|rkT2uJ$dBN*!@s$DR$p=L7Fy9ayCcIlmP zDVQRr(>KN3#JeG#qUazvP{2~K-Mwf%c3lKwB5J_P^_NVIA&$dKI(No#!@UNpPw4Kf z2+R~WNRWF=BSWEC$FL6_^Wa5w{v(p+E>k$#&MKrUQm6y4f&tG&JG|g!LD%bOJSgC+ z{W{_lLmdYKc8;5CE7F|H=CZ(ER0QT~rse4}LT@`jY2ka!zcc6R{$NER(u zQq0ktJ;OdYos;fSBXUd7xgJ){nj1LGcpck-`XW=!?adA?wr=apC++sZeTrXiKI7+K z*U}6TD9FGx2kt&g01vYT`e_=v&+s>#?2p_V1KQo{(A7wX_=5&6i_##Kb7jQF+(O%Q z^3DLebC&^xBwPLu9 zo%Da+am5}dsY9~#Q_N>zvM4(Wdthrl%&|Y$f?X?!|P9cVHU)`u8L5 zyuR=+=_kEO?5O|LPs=ViRRfRcQCYeOMb^%mcHL+;4ytx{ORQkr-bCi~PFmlKIO+k@ z;~3mr(?uw z8}kFwMKH!MK`a<>1seagnd{alxmgjv70O0wu3@BKgqt;|Q zq22(0n?r44d`w0WH?idHtYn$<3u$_?WT@VQ{0?d|$2SA;$4lOs2)D_4vM4u*Bs6tLUBfsbXW*3G4nZbY; zr`ep~Oc{HP+OPRPgF-CXtXB7m@ay*Lp6)7au(C&5XMImEB7EEyg9lZ4=u#7J-7jML zDFz=uU&M43rk3l%+)b|jtG&@~H2AD;cp{hzM8gm=rc=CONud2@x;zh&B=|a=GICiu zIn}VkkAdAQsM37rmBo8JNNWl8Ly0=Q?N&sa!!S|l@y*7^i`$*X}Wx+@fJE;kNXi zPr{w`Ao~~JIcDBt!#JYuP^U{KF4jKO(^-A`Denz;B~Apkn`$~g0(vZ-T>nV|=gPVQ zcQ<_G$WIXu2FPM}_$?7_;xgcih?<=%P~U{~)=@RQ8<%(o){puq&{-U=_ z?Pp;f)AhwV?J!a^OB8VMfMO;*>G`htXF?k~e8Wf2-D1vcy4+91(A{ul9jOJDTEv39 z@{9GP*m8?OELc!d_49-RYYtnEi&;-mF-J=R9NAEyC#03U0w|Eey=cLXv{B6J6<`Fb zl+N)<#F0&ZGO8A_r6jamM2@X~O zxA7lNSA_n%GT82s*eKA@*EhZL-9<@KM?G{=_9J}^&O(td)9F;tOa73LoA6gf{DfXR z^8*KSW*i9vK{}OU#zJTgJL`~!#@CZB+S6r~PD9Ud?NE6@c0j}n!nsC-+5icKZAMQq zaA6sHis=-W^@4)O(W$=2QoD5SQ6s${hA~|~(=Dcc@UXr5rMW=!asYzhdb3694Su}R zAkF$CVes^1vy==6JW-~eYC3KWt9(U#vGuXH-F@6puuw=RtHF(2Qec@+o`S^)6c(Z# z&09YWEq1~T3q=3U#P->oV_9&=QYTp53)P>#Q)WYvf~N?#(UQTf}ID)w)#;;y*TdnI>h6<74^FC}m=W3!HyzDf@=!Na)Vi`gor4}hbX)(D7T<)t(5>0VwM zLv?XBitFu=DV;kqv(QkJySrGMJg|SZF(cJBXSa;9^ke%+C$sylr4`aC$DEr-Q@xli z5aB5?)3_m6#?;y&{d89H2f6h^E>grdQ$ckO-;Fq4etPfNI0JWKx+PdslHP@_uhLIq z`mlbL4t1w5GJtWQ7~-7tc{{e!sVfbtT_#G#?#k@n%FKTW&(qYWs$>oo-LNOqH__4) z|KtXajek~m>1PZbx|e2XP@8pdoM|G)a_Xl+r#8LmhlXcRs5`^`=@awU#ajq31kDRQ zNYqF^U2^Zh&-v$t8z71qKtbNz;5^Id(}m!>(;4?=Wfw>Ifxm9J zeeuWc;P60Ml=Tgs+cZ{Fa*TP5^mP#r_<%^aWVo+?bc)aW0Ga!Ynfx-ErFkLau#Ag~rxH)nWJ2I8B1((Qo)V?!#FukV34RQp6EVg;(~)wsf!MZi2@t zt*PqqQ7--Tg6njyGrIIHhQ^9q;1}z)`}J|&+6)!ncwF}7^MDUh_-=%C6uU81w4JR- z8wb4WII{-sCTwl1^fRiZr;7#y|G9p+MQ#bB@8WW1iEf!L^0#c-_xgfK7qHi-`jbtaZ=ru+9EI!M73xiW99Jbzz3W~#&s`p+&TeufJBIiy;ZaiEFDf=bn4wtQ zF34PF|E(BD2~I!NzTqcSiNiJvOE};yfBos(m>MgJ@VSkzTyUO#TbtRmEvL$Ol6556 zg!;${j(d!|X}~G$*3o|c?b4Mk{cbYyz{bSgJjMYpL}V@ec3NsICiiuErlrG?4a6`H-nEd0vWU*fvqI4+)$DsrFNzSZHN4m~& zhe4;X!(S&P_|({^x2j`Dl1|$t>9CGb@Kbg;S*LUWJPVrBi^ZpYm^sc55xaEKRT#Az z&BKsRJ6o#J^>EVOh&Q$E9_n7+WWV0n2%KEU9IJGK!)~OUx<}26jl+cb0qwa@r%0(5 z8&kba*r)4#JAegG-Z@hrsXn|TzdtzcA!F)dwlX$K_P*c(LEn_ai)rD&eXWpRpmgnR z_Y7Fx*}YD9n*d?IH)iD+nl?x(LU(ATa;~)L#0lK1@aKu#-H=ZA#XO96LT9Lw|MDf` zTexWP>5~Vf3GgG`Lddv40vsEbZ6S=BD8-`)J}pXT4fbc)Y| zok%*jU|h+@i@QuTt~ZTm=4x7RGQ%R$ORAAYA$V4dYvV|CMEg1OytU~>8unbeG18`& zjdixNj=2qfuwBnacE6IQq1hbL$rE`RcY}Aa)g8X~>>IN#To+z! zj6==r4gn{Jfzol{NZ%u`+#?JWY)i5f+5-9Pmzmbp6GNziN7C=9BGS!d+YqOU z%P^%&H-aJhoSG5ZL;Ug545*rWhQF)YH4XWWW22`R(3$muG%9AMBzQ+dU|6~IuI86D zL{Qu}d&Ow>Z91s~yVJ@-nwi1@8h;?bR_e~~kdNsi5{IzDEk8tyYwf#Gnf=Cp;@@y; zc85jT-BBKgj!iz>6W7Eqa0JL?ZcBS6`OK8*g@zb9i%X}AeB11L{YT@*_(oJag;IBj zBc_v}2yM(ihoKAOwxqL9C#1@_CU^v#uqQ!k&M-03ySd~ZNjfj2yLqHgA8kZ!){R#+ zH$V!u>qbZ?Z&s_)GV>LMvg?sJSdKgE@hH!xr#f_Yv65Wxb8?gc#NUsscSrI>kQ=G9XE5=y!IN zE^eCp%YuCgo^)e77}nNhlgY+qenf-pB-AremCpPtrtg1is!eI|R4NRzKa?rj8|Epv zNu3x3z_!(hNojPcoS3N(<7&sb!K0!`)sC1Y2mQ$MwLP03u}^Zi76 zLKcE|6V%M#P4RG0z-+;_O<=bXM&8)SD-H^SD8=obh^3K{V={%L#>JXBt(*CaP7 zD47;rwgC#vET6S{IoSW2&H0fAGh#Vsy3EnbPyW97n{_r4|J4BM%B+INO%>O9(R9N5 zp%XJLg8NQ4XJyxs`{EW?X1_%LDE*kh7ACzFrp%w?f};~J+2m!nj9Ysrznu0Z+j|DS z$=VA{&fJ-?&y4^1Kh-e;wwAC^m`%aF#AAog%}?inXtFWp};Z? z1rN3`y8a>H4b)I=rgmPuwNnpEHmsv+(k_ywiF7G^fQc!c@zWwx*mR2b-DSbJD%1y8 zGKdL&gzDfH_*fh81q1WW1tG7h8#2cWQy1vI*Tm2{>pXKeF{lP#>tf(aQpD@CmOEpa zXLNfG8|pECYuIsYy(r8Tx12GIIRjghIg`(rPEm{yU!E!M4$cdD15QzuLET*87R*9n zfRV>-IJflmeai7;i)uccpgZzY{-uM$4R+%43jM(?QLm`yE~PWs>RYPr!sZn}Ou>QP z_kXt0FMH{XpL;oR(A0MJ^At&Yl55Oo53IQ@b zkGx|jhQj=-@bV13Z+n4WQ$PJCU8|Bo3_hn9FiW^L*3ahxtxx=mrYm!fInSM6KXmu6N5ld?Cq(TZ|x(+3r) zi31^6Q1uEh1WYk{lPJ@d~*y|Md!>+EVZ zemvf`P6*F6pyXvE-*dJdr0cNZQne-Pd=acy>IDW`Q(^QSZwwfRR|@R#S)7f1U<#K% zU35Md%xP8(OXaYLxRw8WbEUrR%fxp%_wiR|cTJ2#GhOq(3w399oN_zu{Nc~|!ODT> zfh{>*@3=hMBk&IiGTDs99Jt+olmp+-QG_Kjif(7*%(b-XQYK3FcMX(gvP_s1P1l`H z@ju>Tg@+{MQbJ9BBd4-8Q}0FLo*IFmnIk6+{=Dg`gUbZBxKOAy?P>yOk=*IO=j1M1_8S9JC#B2Y7u*+&uklS6<1m5| z8eoKN&IN#yb3s3nuC?TYbE>Aw1UCp~7b;)yxCQ_NnF4b$?Y`-P z;K4bD9$VYINtR=}V7cD$R`0VZ)0xw2$zc4%Mse5S7W@K1COhJgkwL#-%GYW;G4^he zFHK(>T;V^=+G*kq3R~c6RhTa@ujG9TVZu{m)HyHo(~XecIIAYTiTl8VpX|+eOTuOH zH~7~1Bhtpy$G@|8HrtKjKoowWc_^jPF~LeH$GYL1@HQ;H$ckexre~)Yo3^QvN+29( zIz8RtT#2jbd)1WFV^QnfI66Q0Y+;M!=hcR^ zY3__R4-_7jU9I{tv>wdvrIED*fAB1=&_(N~Xd#1^IEG(BCpM1+LVPjJ9oBP=<3X-u z)B)T=4e5YCQisLcV?Dt_8M+YND0$76)8U*6hw2I}4 zesy#G!@cs^w9C+b10_PD{z^MD@HW55>$Rk<`q#D>WM`?(WRW;QSD_r)gtYG7qzuSpVU=w&X@Qn_3_nUw$-Z^| z=b7WzY;Um8)~+<3bdbjZ(2F2#TO73XTH-PM+w^qH_-^}^EROG`r!~g&H*2)E7B}=Z zbs4FOnfi?J7=C5p|MD+#N~q4zGI!#5Xbm8|Rgu65#W64urL(rQD__k`~16A=9D2*XEN7FkV|)44Fhe|vf#aH z7(6GvIdoUDO>bQ$SQJ9qX1-hs^<;-aaJ6|XLEBiZyhGJ4{euk(`DMLjRlW!4CWV`X z8pWf#IYB&z&*9S=cQ$Xm`6qD}uJCxunu#(ZV?1Z>ReTH|l3)+&uMEDtF-xyFo|@T) z#?qR$DiYXLWD~UoCgv6Wd^|O+W(y1Lg=voG*{*jqYF-=+{G9kN`#28Z@0iM{G@A9v zyI0?6E*fBY_QW5KE=oHC?p*eBzVTvyhtxVe#PLh;PLzM(sg1PEotFdnGv3t}rV=VdrHx{taSSz^0=$EPGE&U>ndsGC z&vDvC@`qbGmO;M^__^O7@qxlk1+?FgP*`irZeJL$!?vGT!|*NAj6!T-@hn~BJ%9>H zARfa%0MAgUnMc;U*9TaZ-om=?VbTIEtu0h@JY{1VtmFS`T7eI_?EA|op4JI(kDO}Z zZT`cY*J!>OJSA*x2uap}M7+2q$1^?5!{YJ>_f?EqRtZ~M598_nShn)26)G!C>j>+p zUq|s6{%v7pV{$Sy405RM%=27^`AY(1^MJXU{j!fo-s~6Mz0Q@WtYMfd=F)Px{u$To zcxEm;3)q>TEfU0IxQxnbisYZjJOJfZ(pnH>wO~l% zN@_acNAIjG)xkgpe5u z^R&1DCQ%$yDz&RT9O5M6A=C@RiSGz<(O~xeG6#}|L3QT%dh6F|5DA0Nn28d_F=U3wQdrenl zkZpP!Y%_Cf2isUAiEmgKXPAX0QjTScBc}N$so^g=bD}7&TMqlLikr3Ec^wX2%tDk#i3Ydgh;>x3QcCAUVvAG(d_*}HGT+A^U!xq z4!)oKlT;6(^q4QZ>#jaamyxQ7+Zcu%dSvbeVM5SslH^n)Z7?(&C0=*p7_?1y%ELpo z*QdqBH`gXw11iLeiO0c0NDhmHZM}gyl2w8l-&-kxt&jk2fL%qy8f>C?Tu&E|;Z8jF zb3Jh(t}?u*utI2#M`=MSWXX1K8(SD@QJpa8Mm&bBeLN*`t%cSaQ5|h~7Nn#%+Cl1UG`gtBy|bPtA}YaGL`PJVCP&tHqb zm%ar5WOlWVKRjAO9365NhHvipV&TsS6*R3v1Im`Evzd{xPpF^5RE{U)ow@+a2l#^@ zF!SJ+l^3&#e8j`z0Y%y_)`pOTAvq<2 z&?<7y5DY1)qsOP1mj23zI6cIX2cysqk3~@U-VZ!a8DWv!R=nfB2=3v|Xd^8}V_S^2 zEk+@mv*13_%tz}#De15B^2Iw!lmP2UW`Akp8`7w;bF|-^rmG@m48sg@bgwdC(;S=+ z^12h{!`Or2`{pPvBu?36bvQ|lrBfm#@~DKe^A+zC#WB3gvTEJn-AsGm^g>7=1ak$O z$HJ=nZfD)&u*JAftk_GwLBoL$`!DqEADM(2D_5?IwiY+^Hc>{rht)71!@pYM=$wDz zpCU?p`V<~4HH9K`tK~LPMkut^I3B}y2=5n^wN{zNcq-)Kfi1LXqiG;8PwiXt0V_)7zpKb%6`!98;r_;wvvoxpJ3@yJ*rXKC!?nO@_$>Dg&#$qulhn4PtMYvMOq`+J#m`<)JE!jTUzzY_J$Uuo;XWa2ht)+vdM8FE4uA|9l zMj@6;1(t4$U|Ygs#+%FK_c@isWB9fGlr@w54Mk|Xg~IgWwLd=bl_J7`V$X6=*CJfc z4!PCa)Z*6w;YO zJs{qi4UChB)VvT9fPhcbGwi&ZN&h?Fp$@JzL(1i$#fzpwuZ0hmRnjYtW4Obf{UMWY zpe0Y$n}HOX%uuLeuky4Q+kjzb6SWzamDXT|AkYiMWB5yWVsi0~_xZOSSOs>Ous^wY zbalDjTqelGWyD|5tWvD9cntSt@+1k?F&;Eg#>@O7nNTCLnZuA7@1oTV(x#h3rprdr zhC;{|YT*ixr%j~~AQaln!);u{o=0F{?d?!VTUZ@QF*dkY9FO7SCLdnJAb6SRpTVck z!pEII@Oz3<4@ltR$b)q&L#c5LI!OC=zi$l^dqq4NxmXP=L;_erFTm?kqT9vMF+X)? z0Q12UUl=Mr41)5UWrLJvvhw_&Y||`p+vZ$e5f3JqG~aYNsF zXB{O0)8vd(*wtfFyfG&Xs8o;A7aGT)0&Sg17~d4akTwq}m4i9m*A~Zcm!9|eJugL_ zO-PAgfx5)A@K;LECCb^Y2sN@OBp$=2-lTX8|MQYh6+EcJ!po4>uu!78%^ZTt71GA6 zycXYUrz8*}@al`fLRWjh-%!4)c)QtWSLGp(IXOGj&EdXQa^78Fe(7y~^VlzDvRY4{g1O z-54^O+d3$}K5T z7?0s|O)9@c?z9sNtouRK+YpA#11uE=Xf0dXWEUd=KljhkQ_ao}mJ+TZo>7+!J=2p^ zX&si8R)7R{6{R2^sV&69q73B8N}{>5+UQQP$#ncvB%Z|bcK>?d%3JPbckp0{(-o*Q zb0w~*mHA(uWeA?qAb7p`5gaX{!;(@S}9f7T+|((A}yB&eze>a0%{ZUmJk^XNLj1d07|_Uh4i5qTWt7fpq3e0rXiSRg!hAP zJyV>DNF5F6ID}h@`;Bg^x$XFnn$kT=?@Nti_yvML**lly4S*=DSJ!8GXvKL`6@Ki+?U?G|0wrhJ+_Y19V}hfWMEkM3H8*D)w|JHQP4m=)BN zSoh-q8Qj(Ocq2lPACXsj;k&!@)!Q@pCo6T^LUewyT@10iw1Gl{H}wwW`Rg_nP$eE$ zamm4)Z^hbg{M$B~lQ2E(#Wcf|xr+@9%3afq!>tuYORjTw!v_rRQl3Q{NfxXp0x1r< z*bR)p+~&MbCXdyk!QAM9a~Hcpy5)70|8IY|buYX|;egLT45M)epLy4PJ>k8KL8>vg zIipY?*@4-M(LnLLemFq;fkQFs`!sOwV*mGlrSI787+CkyfI%>+9>kPbaT!=o3_N|y z$iGmbK8^Mw`9vtxz=+IcsE6hYPGr_Da6U)fvqan9C)_fbC@5r|wngCphLN-ldZqUw z5i;%jWS43QcF<0!?n%-$@G+9oWs@IaNcJODq&QNphM~uNknR@Yz!w~u5eEj6>&Xx1 z8-}xYsS-vq1=O)kncg=bpJ6pHkUJchr7Af^K!$dfU?yydhJv$crO+mvBTx&BxNIP~ zU8<|0g#l;gV^Rrm7TZ}&$F=N#E>pHv@x)M^Lmsre~vwyWVeYy0v1{K?zuQt1?6v~6qEBi}@ zn_Vuf|`7Q0?GR3G7ijsw0`HbbXUqwVV70by6wOB+Fcc9%IUp* zh^#i1MKL0GF;Q<`Bq&uK=cox-@f_uD%DT~ZnQRO7Q5DCbqiUL>MJVRzsUFoiv9>eZ z{ZZ;yUW7E#1^P_w0M4TVRL)zmM?!ydqepj9VOUBWveNi+?o+H7L=i=isB;zmP1!BN zc}mn5MrofAdVi!07S>UUDCK#l%X8$vyY8a+pI@W~qy+RF{RgsCL-<{RnzjVwwjd#M z?k?TE_jU@Y4thMf8=?PKWCS@!?$#T3%@Hzw7U|Sc;`KUrbF5`gO7(bRBK^~(u6ojD zLPJsFkf>U(llgI^?Hohn-iZAghY*iNzntC0Fuh}>th)V{^#1@mA>D=0kC34en0SUf z1XHQnU1&k>c?dNiLQg%o+h2>(yDMftqDEU3Dq<+r*k`ORS$}Nyx-8twp6pPX`IMFC=K=CD_61Yf=dlG9*rIV474y(M!1hwr-6an4KgG;UQX&+}zsh3&0w!ahtMR0m<050%(3 zKRP>lHriKP|EaayAJFV zm!1a@-j(Sg?u3T(fG7U}=~u^*e5oaVNq!9*(>Baue;NQ5KE9i)K`-5-Y*v1otOgrx z{rFq^PbF6Z3H-kEwrc6z?Y_p$Nk5KeEh*@JRfT{*xv)H|rY*_S=$O z8in7le=pA<0b{`3xQ=|_c3=cPV=IMV6yS;nIgWMPy33YUtHZhm=mjUkJYPtYN*MSV zrd~$a4i`vWr3=KA=%zWUs-_dxvmq_!xjM@Hsn+lmV!hfzTFTSv7=&XCKUJnWPLn1^ z(^4P6xC?5d>s3trT4O@mVE=s>P=)_(KjHjDN+_cneihTK`w@}5G!YRtJ4LI9c`sqB zRsK7BvLbyo&*i*WQ!<(IROMIPmM#h8xqELV;5g3AApgf0Z8PgS^^vRk|Dv>z7X8Wp z+N8VMQ4+q)%|@s=u+7dFRu~bS-!`IP;&&UdBeG-lBMv+&bnRYR_ZHY)%#4ONA}L@B zW1C_Z$sRQIjnPjRZm6%jwA4 z%tFf_QPr6c)_PM5VtREu8`lwrTd^O6-WOV(Sx-Pey|3D%BoX*c_|D+?RdCBbuj$!p zGs8Q9NVp%V8Yv0pI;?VCfc%!MgYeJYW0D0@MmNV(!f>Mr&p z>V^=0)tHdG{1bJnO(Vu(Rl2J>v#YfUZ?A7PaunaJmfXEPXvJ1ODmT{M*xS~0J-dXYMu9wbtsKp;)h@>qyFMLOS2YPOy2@e2QS_^RR2l3^eAvbq1fdAyXnc<TJZLb;^P!Myp6UgW;_D?{aOcw~LwJ$=9q`U;o1FBBa zlV)ub@rZNe<+e~J{ zqRLXf_kyjv7L`~DS<|m*nCHi}!@PDXzvKMWmE&Rp457E8sBY^=1 zcl(%D@h%4|q0GVtN_sDT3h9WF?XL3IA(lPwTCh)j(@BYFwjil>BDU^*z<}hmJc~x) zsy{U}%4=xpr3`}@;I0#@3Rnhr`7>N6P*%=FMzws+P%wawfC1$Bn;z^T=f+@s-$HxAL+VDYjgwZb2#oqB)=5= zvQF;AOFC_TlOMZV@loI|G$;hq!>*@nlY#EC)@GKC{qN$-;Yb{tJ`-g8K9f5CZH&vB zJ>ftKIq}_!{z;yT|F=)rYXLInrZ*-1Sij`>*@AiN_vSp!eQNPU=`Lix(!=*f{HT&X z%Pvp-&jkNiVy$(dGR_b)rtgtm$A)z;i0H!8Uuf)iRf^hmq2Xgr;% zW*SoBE^>}s=lLj`p@bKUxl8E)RY0o0#}h#Wk>?pvU^mvi2JEg(gW4AX zVtn$)%-+i#Ef%SS^-c5~CZ^FQ2=P#~9YeUd!lUz7^68t+(1c>e6x^md+EqNHW#=vj zQ_0G5@-2u`3FS8)CYqSlVyz_-`lI{M?xnj?qTuA-5`RSQ`VrD`Sk;olV<9l!Qb0*+ zR$$iCl43K^xuOnt4>Q^TO{IcP%R?w>4NkWnj^V}76EAERAgqz;EGb(sV3Uhi``Q$s zyEj?aM|_m6K=+z5Pj=-CPs_y-M}b(cgZ{aNZM8|xKbRH)B&)j-x@&?}qS{?C9M;=D zTekk*M*{hS=d3dR>u|3rsq`rV=`_2~;SbGt!BCsZgy^~%o|U~IPzy?eBVDK!_)s!` z3!?KU9CRyn)(vJ$g`O#zHP67oH`irGR@*)ZH)RB8XeDN8cQmcAPC`DTeDB_r)Le+O znCPLI=_2Q)ih>`AChdns4PFs1X}B#n825rA(C{M|(ZsU)b@0WVe9_8SRu)Ad{$g4i zOPVS_JJ*ekB`hf2sz`SOG?gkqrMCYl&TlbYRVv)mgQc*d&_gI~R)&1H zSmaMD_&|n2tljGrY#_s5*elgNIgd8&0@HeP z$)k|Dp*wJwqi(G0^*Gs&1M2;+;P{3&8 zVkwMYMMtv>yN$%|4c%>l?-)(v-cBItE+QWsw4y2l;lGLuzasA$>#x23^#pdFc}`F6 zrHw@GOGne6AmHwzBYu~vrygj@hL<#XQlS8wiP^Yo)KEfM7@2x~ae9ZZ?M zk;`SN4DCeAfT`e7jS7`xDsjH#L5V^jqe<%$ivETIEj?^YP7(DjiVbF9Cy)riT0$Uo zZ}Sj-qCdON(5l^p01^+O1mB`%hALxsM{;(g?O5H_GSd9*VhIQ+GX%wkx~tvI_x+D$ z3FR8XBW!;6m7~8(LDHL**lsnw8JmM0;DS*Jv-FfO&GPpR9|3cumP&W86U^26J>k~f zdQYq4k$FJvx4fBA8Dq~fr8y#Pe3PB+n`Uv=+;T1kW;bxu+p@pUtQaB6qm%G`vw@Pf zPjeo=DdRDJdjJv;>|lBgsG>J09?~TXvS;`95yCh*@j}Wemehs2+VAPjbw+p$-XEsl z*5TNN-HyJC7|>fho-kTs&vaykV7@6}3E~8{kK&~ah4Q63+BR3zQ#JHhF?$5l(AAfh z6Id^C;dX^D#-HL(D}MJ_mnT~*YAw^VB{|9-a2mOb{e;~MCKBoy7IVGsvs5E485EBXYRi^WX z^eB^uDE?C)Z7%M@8ovwax+lf-g+0dEX~Xp2%TTy$5QyfEtWN>hIZOkOhrX|Ll4?YV ztRg@v)EG6UBqFYX?2j&MZRV@KJbw2Y^b|^Wu|w^=G?h4LgC=K)#$AF^jh7aVB+W=a zl4e2Kex_9^=rL~!`iE^Vb{wUS_@xZ)O~_hPx8GxR7UdAk13j$W&3N5dA*1Spro_D* z+|9kTG&O|?0*!=`x@)~$lb*<$RK?3*-fzX8q*{em%OoHLzf*o+_Y~O!Z2aSnM@xZw z^^muLbFn`-(Itu1CXy*=GxVhECZ^OX$l1N^(cL_U(eef^1R&4fQY{N%i8vr#luDty zwt${%fl#{61cu_|cd{cJu#W)bvyS?!)W)u|E;yS)Trkjtt1=w=TY3sj2Pr<|hYvW= zW@ELCJ-BGWqZnVQb z-PQhmox3WiZ41poE6l5IUo0+@v7JRUp1t^bApH?VuYmgJ&YfNINnP#Zt}X8 zv6Mf@3!M$G8N}A9YB;md9TOxC?{QzVJufUtvn_O|Oi)fvM?)6a-zoYmYa>CJ~{g@3a zi7;DjBuaIV2tn|oCd+0~h#Or`^JI_X&d-s&rF>KKx=0UxvCW9_H1GsG2at3&sa@dt zgg(x;H}KPx!KyPBVJ-T3JM;cq}&a${t)=zW-IeqZLi>M66(kk3@0daaUcGV`mj zoj?J8U~ECI2W6lhS+@9rA?|by%}5Y>cKpQg9LDg;KVgAH*v3y+!i!Pe-(o@Ck^9_X z3cENnbMm!E6wSZOOYt7}4uP`r5@@PY#(9lCXH4=-azvqBjLj@)f#X|;oWHeZHukjY!6;1!dnyQ(9cA(>@F1V@Xz10-D zBH%);J%o*uwxS?jEJGRhbrq@8x!IAXfP9u1s z+iScJfM5I-j#n3_q)AXk4KDV4ZNR1aO$1M#Es{@REVfoJ27v?nL~z$GR&>ZH?9nkk z7XQEVVlYo3LEew~%6P)# zgXaS5+#>$7fW1+KX}m2>wQ{*$rJP#Uu}v(i)e67L#h@m?T&otZVPfa_VpUleTEpv$ z%~ntbZZWaiRCKc|b*8bp4yo}t42E?D7@GM>93OX;ViouG74k)}9%Hk3u?xVPh^Ute zzgH<*vm`Ls^@ON~4uq)DrcuT7T(MS5{I;=gZ(tgH&KZhr$MMKTZn~vU7G}%e`nSdp z^R&bxSR#0#T);OfkLOOUVc|h{;Hdu?LWUYcZE-|3aooFp3@EAv<{KyYqXn#kv!+L% z22Og03=1mrvUb%-`0;$Vac*WgPDzW)qy|GB{| z?mr_hffYI&YYxUhru*lT#eOXkQ7L?VIV3jp_jdnzYvrxo1}m^$pn#d|wiH;LD-=gm zIDp%#z`GUVT?j-5R9!}`xCJ!gWR9&mp=TF9RNF!A{U`6+k&-*t0Z<%~tgE!9<^Ef_ zq@GZ5ZQK1zv3}ftEp!S-*}`QR{`;Cvsm=l?q1f-ATPknqHp^fogaxW09R}@UR-oK0 z@%#N}=i~bDBMVQf4-S&G^_6Nq^VY57WxKUHkf68vO2_CVcH3^S2uTv!WVvA8ZkWqu z3&(98>PovnSSMw8|LZm1zi_99z!WHi9g3uIq3%mRy3Ht8Mcru^7b?K(Yr9lzrBh=F zuvGuq&GH zb$NEp4WPjR22>~CUV3t)d@?BDk&$T-pK-%h4LUfCj8Tk53^#&WYAj|)HB>r(zixRG zMMW)oY_1g2IW4IoHOu_yFn!IKmP4wuoY}S`EI|o_X}2zVa#FjrQd*fAFq9G<5f8gJ zz(<`Q9qn5ZgvDK46M-=CVK3^exSm7uxeZmJOsee#;7;zd^;Q!4{@HgM%&9xfVqc;S zW`z^m^*+nG*ZZ7kMzZ8tzf#|uX2*|oUeb2swju2yVsib_VZ(kYc>k;4e`?wD&VlJNHvSAOC<-#???b}{9dFFi|H)3da5%4cQDJVc(X4}0#fy9hea+x-_(nbY3? z=l0$z)!OXcZmC~W?{m`amMPialLu3$L5Xs<6K;>FJp0`fTNkt;RX%ScM)iff-{1%IDWX8_@l0|^!N_SX8* z>Lr9;e4+KALzle*-02Q`sU-`CrIvPgg9l~13P;|{RvuEwDDvp=O3fA1sb}=lTHu`; z)dILzc`sXe)PN5j)6r9eNIRv?HFV!cqpG&9mzs-CM(k8Rx~-dfba!~-)Dn@PZW4v% znqE?jc6>2Q*+cvm_N)8=JDGQi3Zv&CT&;xX-^Eqk%v1)lT63squd)&=(tHGX3=URHJ`4&@H+;9O*hz`%3&(m)3%=>J2m+~}UI+5GgK(GvCnP@W@T2x+FFrfjBETsCK^Z5LB=UY~hc)2S^-ue#Y^)A6>Y{$JcQ z3t0Y3l-@7Saj=&UaexmFFL1bUFSjA(K5?&bmR~0RtjYV0t4;rQB9(_&Q}@p!&nW)8 z=v)usSQE}Fi=Z~Qw3R3HFW;L~L|)2+BL*x!x$6>}AS_TQlM@S_iF=IS+k|*a`^dag zsOqy5Q}?UAeLZT;ZJXUaV`g*ACk;EO&1$5lP~6hW(9^c1%_&#jE>%wcMwx=yOA$Z~ z&tTTvJen9)a0u7^)2JQIA}VY*wFs-ir55+RT+>@ZOsel+ZaG0dr59heJg&Ls4Le}I zCYLwTa)Te*df7+E8NRu;ZypR!jAT3CQuAKp_iSHy68i7cM_Ll@Q)BCo`dfllzI!Ts zb9Q+2Xh}LOGL2H93xa_gER#awcH;A-WTVUqJ1L^P6q^36A5GRE&C*)cPW#fZ8&gsM@r+@r+h6sv;tAtfms~ld+6jm|X z_$x>tm?Z!SFXEB%R^5QE77b14Mt*=t4wz&Uxo8k1I7(O~Tsgc5Yo@5#*@~C?u2O-B z8bVQ99cZvU1;K9n}?l`AG+Lg*GgpQwJrtXlCRnC&RIW(-kcKnrK?mc_wa}CMjtNw&kpl zX(!68@+_8pE;tF=+ck~y*)e~;@PGvC%pF9*0(|v2ze|0&I76TutjI&6Bh-OxRu`Fx zhf4~8dq;K|ha0LSoE+RC7SR%H8iJXkwmP(73oMQiE6bP4o5$PEJfdjWs@T|IfTq8K zsxzqZL!9d8bpt!r5E$Z1ky?y^jGYdi#W9;bx2jOVt;IA%1vC%+b8F{;`YXBD+Vplt zeB5~I{dZTP4+0KJ)7#35a=sCs31?zeR4Ek|zccsw`H zWqI9#w6fKq%W(fDT}=PsD`1-i)gt2^jy0$9)k;pYwOdF?okbXMDV+Ty7?Iep7 z!yQPDov_63ZONDmi0Fw|rVQ(mZ&-(*#*}6;O0@Bbd%5zGA$XgKh#&}*hbJNFPA>%Y zWg%Lb8E{e)Uv@Eeg@(isba&BhO_|CsRUSK*aer0`L&sGAnGc>h$DaKLM3l8)j&)t+ zl>9EH>7@d`lD%s|s5~+@G}X~2FtY-csr4j}XszP-c(2@et+9k7X##m_+irl~soyH7 zZHNzW|8iRdq!bQW3GG(EMTKB3W(W)sV+f6FJt_U&WxYv+%$f<)>%UeyXFvGrPCwEc z)f_8o>S}&-B*pquK^Mz8aJvO#ApeEZSp#d@1yzm_x~1!s@B}qWKUXuUo(qU=$9&6F z4VRS^CN3f^Mc@B$O`cLc!poKrb3HxCQ(DBs$xg5#-&QthRqD8*TUzgjA_5zt0)pDB z*wT7t+m5n)?PL!rXIWqgT>^LM_Nlhgj&)8ODKB-n+Zwdm<`UVHEba`%%i0P&=vGy4 z{3PSbEVGBqBtyU!RH1|@O(u3n_uv3nKr)q)*WhfHvT(`+F2mPWr%N5q`={fGZiq(P z%>bbcTAd=7D;U@cnyW8@tha1T_}<$)LFM(Y{3@?rXqj~daghyLhxfO3$Uxk=F=_>7 zZ7-oZOoI37Qg1V(+5_Qmm{n!b>ivt#!AKLG7q|C6lqlW*Ei22mWMgs1{4U+2Z2BOjrKiS%Ci7)ADzF0CV$$x1Q#VbON%iB2y-${` zhc6Xup5ET3_?=x-CvEq^Ph73+eX*4K%-`X=_nA)yws7}Xn1#N|VV*0YbsHc22NDzw z0o5L$3doI;(5m49+*XCARuY-h4(6k3t{o&aClAPK3#g;Ir}}PrJ>9H3I8P;WpqRfn zY*oV!T8Oij_y?`9Ph^L9(y*c0v>sAd`~i!nxu%|0!3EV&g?(I995b9M4NiFznHFjE z+B!boIO)PvE;@Pz>opwui!mOsuv+hblY<|x=>A)MrH1~V7F4BAiGy?C{WJWC6Gr+! z*MyvP=xlMAUf*h4+DW<#+nQ=2mw`18#8iXFes77&VA~SWdL<@|Xu9Oz5_y(XXNT^A z8s@ENKL@Hm*Ocv0x5SS;ozBCLsU(}RWK>6|8FeCmPoi6|KtnQ30o1`$oZFU9%-6J} za~gF2Jfy0MYE2;Dbg#4vzT{85C)eC{1#6v37xoW$gELSllhwC&`p^(6+eLyaEP7AV zHrBOjWTjd|29#~Cz#%m(GCXHA1Jz+eCkMWL17kk!WW3$Dw>m>v+f6$RQhCi3o`Jc5 z1X)8AQzTsJI2bM>`HECq&4Bs4`H>9LuGHui>`1NOnR0a;@yKxh((nLotAcMW53Ch3 zsy$zdg6>bbm;p3s7O|?SW}q0D<*rhxgIZK`1@rrho*vIN{bOdS7S;cJIi~IA^}-|4 z>DV^f*iz`EzSj?tv>{#l6TyTTLmVJj`sk2#&Z!+IE`YP@FsV8*2G40ORc=PYK?fCL zAJuL(&#EE*4~ei>>nv%vvwYOrmS<@vaCU95_k4vqv<2td?0jD?ol5w45Y^F9eTx~W zPzL5fG%Pz~Lo_~v0R_ddtqzDVVVQUhjtwu>DRuw>5R?ZVpbn0L@43wg7(zztP&|-@ zjC2S~@SH}5{Sb3*d@Rn|F@&lx$90$lPAt0$d4*7UP}?Si!(k|%Q~uton#%uiT+@7{ zpZHBK-#ng2czSwppzB?h{E)5HAuy<|!QQI5YYLL}l>aKHlN?VVL+;XIpmnn$J&wyz zUi9Hwk!NylDJ#c@>a8HgW7_Qs29&2RU5Q2wEtw_aIr#tx$~gEC?p7uQoWw3st04j- zIUlIA7OEr0 zt)RwbR&)R9_UKR?7Khb=w|4wap9<}$#*}Wn-Nc}VVCHDHm|X^~YMbec+iKv&L@%bt zP;ILHI^J>_*boOt5|4MO)xX^kYBp-C17Z*uQdU77f-%sV9S5(eqFkZE^4)}<0bW@( zbASQWh=vy<9)=9hU_d83pNxxJK&RN4rw@*ik4#F8!&|4s9Skzg42(@tS|De zF3J;`N;iAIIu(72Pv|+eZcF9nc!v)4b*pmXGyl;IF&ok4kg8ZWD8`eNw1};#sJ(xx zgRW8qG?2|bx+e}LE04cwPWMkq_aTv`bqzsHRqC@;tN-msOnEXbacHKaHNYJd|#AT{C;Ik1&rYe*qGgtEpT zQYRXrQG^5sFjK|)zR&8G{v@b6j%2Yb`zq79gA?}!&R0+@W_{!42GGD$G<8^Z_rJvO zBmVo}6UwAg#-_b5KWJHPeRSbB&($)L0U+pN-qvqADu}!+fCC^;*kK5%8W*hua*dmM z0}QG#a|wY%oFO9I)v8g20mUghw4)I|*vLF~D);7rInbI!NZBT2hfv-QLgOs1Fyg)j zaPH1U=mrQ5`uRX8&qC)qj;%OJ@j}cSb5Vnl&|iLT#RZ?8z%zu9stR?fvy#IJ0sFY2 z-0~?6&J#i~4c#uzFz6D_DM3S=5N0m3SSK-UzQGz;A^fcloRT9TM5+nxo|k>);g);Z|Mzwt>ckYXn8&+ zj$>ZZy7C7@DqFd%e0R0FUQUov`Tpx%p$NxK{v>41q#nw2Kr*6Uz~-B?q|h8!xB7_9 zh0G*E;lL6!r$;9#jtk;cLYRL`n6fj!OqYen_r1SMPv%*8@JI{tkv?&GeeS)Z2;rCa zyQb8buH;HCb>-D$UfPZC^v3D=(c~-7jI%1>lE%&;b6#qB&8_;heR5jY6bf*!wcUk7 z)u~l#6@V(}@vy)f)KkNOJnro!?cFp@N^fb$ha@UK#KfJBZv8!1{X%svZ{F6_xsC5t zN!n`8?bJ$8g(18|cDkZb%crvR z`hbWvt+YfHT@Aepa!oRHJjjIMutR!ud`}WxUj1k*0{UqSJvBW(zLG}ew_>li2E#0( zA-By891cNHjRVj?Z_9#DuuO_(8?J9Bnc%OcYBn&_RtH2QgaO6q>aN=Wnphd?Q+exc zI;`A!y2`xpJ0vlL#VgR0u()`FjG<%G_=q@Ud>|}7f9LFF<+ld6n5I0B>9C92E8MA8 z_p;2AHeGhnJ8^&qxzEaKE;I!@$E5&1I3Dx30Y18-3k}cXt{$sxG@2-ETJp}}Ds}o) zQah4_k3M(g;!rWw;QQY*C+Qj8!%JRM*ZA$5Y$#9saRG+krsPk(nieUjL6mifHt}UK zt}+t_SD3ob*$7u|ttRb#DnHQOyO-Xat&h#s)UWr;1~X?9ze{>~-R^%%vETFwH_xM= zdaTRZJM%YJRNUSjWt^NnJ@MI@+k3b4#Q9`5wDbGtoRp`oyZejh5jef*IIIf8(bI#r?8AeTtik)N9`pHouOh8|ldxBZwAbV6 zwKgtmG)5JQktcZrr|Ek+_pmU&e+gU@6)Px}iL0=Flmjzo75)i@#*G=k_)a?^?j3#^ z%#O78M02W>yd>`AXdhABIb-$W6U- z6{-F(1FqY#;oxd;5!{=>oz0cBsi~7o?AQ*4Ykit z+H%M?=h7j>>U;C?+rpYa+6q9(xo~=tLUot~PJA7^`Enci=vx)e=ybl6fx8^a zfN48lFbq-ls*l+0z+ZNO3%=>(KKxOq^38)I2Ob;S=4v;{TqLj)d+8uXV~#bu1%-BV zmt3(ERw%Bl*|@Z`7m8!_g%6}+?F8&qevo#GXVbA=b=fc0 zJeIShZSjL?liFs1E*9%HSE$g%zEktdK?kTqoFP!hWS1qVgYb=(n2t<|K5lW#^KWOG z9nUfr4i1TZ`Yt0AsO)BuOk0_oqMT#>Mdsz5G8i^FNOighpuIb11~a+(geMq~mE3Xm zl{QWNQKv@-Z=vmgp|^7?D7P3r!SREwAF;j-6}p6wT;x;d1qN}O3+{7-wcqXjrQzYA z_C>!ieCLlM{l#BTAs?#$y;n7ry+h{{!+rYTNk%q7Uun&#Pe4NVq=J8jNU12sEYCS>q1gIgHDP~u-o}3P4z(T-Z7@Fx| zuz|G(=J*R~k2iP{pPGX9J3SZ;yJL z+Pb*(ww_lj6JpXm`5otid-*-SK6<=-v!kck70WjdKK$m9<6rN;YQC%!%0M2He-o0L zpRMy;__mgB%=j+hQOmgjtslm`kaNHRCal4{I~OMiZa7d!A6J=4e#d7i?dCJ*+4c1x z?Sa+oDi7K()!8>1Te<&xqY>^v^8oeu&;BNBYWyrQ$s4Uyz!&*hgHP^B?FmE{|9JT_ z#0^9o4rYGH)r_Xzb}GAt5(F5`b@W_t9fvAlBE4?3$eA@e9v5%?;N!Q*A8A8FD~9s@ zFYX2$5ghqEoYRst*;)O{mm+r2FWlSM|H^Bu+z>@+b=5qHYnlYkOg)Z{=i#cUsElg& zMZHI-Zz;>a`g3U^byYK&i%RM5lF#}KJJ}Ftt;2}S-<%TW;#9Mf9pDYnEjS=7j%^Eq z!(kFNc#BJE@|--E(vJF8R<&NT;tV>=F7op1mQn)0D$Fn+K3 zkiL6=Pp-F&Y4NwB=iiOip)L~Ui6?|$n;C|dTi=ka>;yzoZ?>U3Ok&$b;lw`LhwiYG zxL0}x!*PYsUqNRGE`gcxQ!W+CNJC1w${$s0XM3aIkomUYcG-k!C#ecv7N`{Sv#_}T z;zU6igU=9L0x2gJvQ^?=(`0+*Kwi3cpdAEO2q81tP{_C}2@O8dBJjb(m=bpbNYl)nzF))<*O=vsoO0Tz%ht2b?nIr9j<9{^rO~a4sv)Y zG$EPwO5+mrp`lC&IEfljvPS2O&qy0!e$3N~^@hDOiI_QV1I9g>FP z)w<3_0*xsaRmAu?@DmWWYii$}H;ioY8jTWIlB?y^dfp5=7_i|c<@S&Ug)^0)gu!$a zE=UC~jy*YXah=gXY_*U-Mqsk5!q0q7e8Z#He_KAFvh6=4#Q0(GS#3kcS!!}p-Y@*R zpAu5+83tmI-U+#+ze&Kv*0khTbB=nFFN@6WnK}jcU#AHFI(>+th)Vxp`2h!-yMS=U zT#RnEQ&Dsy?KZ<8xlin~E`Y51>s#I=%hy&RlRfeu$n(@M#@S{{!Vp3VNIRZDdhnimJPO}TY}eNc;OFS)x(n#B~Mut+OP!{ zN8d{awHJ#)HNLxzr<*rro9D3jkiZxyy8#^xskZKa8S^~-m`w}|)yTgBsCk7|j5WN# z%@|vkofYU(brp()OWKn30o<)=2vzL?%({asN{O~s=$3{*v{6DeSFoh|QzwB`f$#50 za-5r5lLRn_tz``B&2+#p)&mvi$?GL!*;1L>%pqj>zCmU}k`{e=LN_A>EKxa6@D z4BL$#>{^8V4I(5%NZvm&uWZ7k*DvNZu0-s;PuPK^by_QXrkCN&G$WzjM>tlvzQ{Ij?<+$t^)uSZO6_PB5j9(d}u1XRKbx`-LY*xvX{W~w@6KXwG@(>Qwe9B zwNm-jdu8b-zJ$LvT|<*GpX#E>7q9Q|a%~laUbltczEDJ~Jyu5vP{KD*OL@Bm2T$K| zg*xDchYsCJ9%H>HW292rH#W+m5{+YnA!;D-G_e4WdZt2PjZpJ*PcJ=XEa0%-zm zR}F8IWfobvCX18o{9;kxCFfE#Lw|qk0tg`l2)X^}F>q4PN0*GVzj7O)3uIqaJD?mAFYHXd9l=%dZWoUxrduQ63r0LCuQd6%=Ru&>@HDeX4D*8W$&=QF$UU%hu;5!r%Xd{j09a%5eh$Kc{+*RK&%G7??oL8&($+BP@0f>!y&HEp8qjmO(hf!0Te}P zf?655z%t4TV`v>1gEt7K4GV>$fDQpyBx$f2xNQ-%XcX&KWC_TY;s{jG5Y0jEAq31o z5!gU%L`603xa+#lvOKFSyj%gruIgSl5UUyV2A-Dme^QUs;~O=_WGk>iT38}kXKzYn zS=4AsKIVL(Fp$kuv6=-mvV^{&cI{A0LF+Qm(PI(|^ODB2wE zp`L$=xU}_T8$x~75{QDO7uP;uGXL|BPr9Dw&`7O3i-m@={d7KpVvG69BP)Ya(x!Oa z!Kjz9eoM9U$2^P?Pga^ z>nJcpE5tp+1vmc9{I8#O&FXYD_nCh`}*K;M+F4U@9(QGsTfbDN=wdzs6NdI|9 zh#{-&(HVw_dtJ$J2D+M{X(@mD#P6OieSo+2n){0E`oYcjPX*}=gm9uQ2?353O0W`l zU!6~2{vm5rs|L*G647~3wlgY4c&ucBi&CVZ>yctB4uFmYB0Q4G=gKB_2U_b+m*%{1 z_ZdbhRVuXno&tM#h*;f?<@H7xWmVbUvplk%Re6zs=HTrRQNJACD!&TYWc-DB^+}JW zr93zTpP~wLuT#A9SGT z+F<(mT@@|1*{nd7Stwr=7LQGJS+P}vHLwgg#w`wjiW?}nBQ_HQZ^ePO%(zv0k zB*~`1fHyxxRa|5~166Hzs8F0`l(EWA{4@5bS{^6nb=6}k(_~P8iIn`Vh&)=!hgHQ; zpi>5F^DUtnuiIaG?z{ zQL~X*G`IuNZSV1QgW1vVjK#1k*1>g%;kWGvC{Qb;NcR2xgYIzq<%$xYW%9kuxKZOC z)F?tar;@e~7a1*2)E2rMTAzR2(KM{gP`xrwMEX8 z?rrJtI-Lb~#c%6?txN)NkhDFa?tFK1NaGc59`n)l@^)=p)p%fFy)f-NkGxs|Giz*> zuA$(H2UgGv^6=2@)Y&CNlFv%^w6NL}nmwgzm>f#b7+y-GPiy26M5B<5Yh;tRPY9N3uNMrqt{LnO}2wc<6habw{3TjQsy^P^l)z!I+?@ldeu0~ds=44F0$XL z?{cCb@G{G?+*YO=Cp&gnc`w#euFr>q^ch^D(;XJ(9?q8Xt~}Lr3F^S&R@#D0RNM@p zGON9sqnHI$Vtaw5ZHZ$SxM5p?RzTfqcAfHpHsuaG-uFiDUYPlIqzPYO(*eXRY3#Ot z+s2+O%M*ybz`=8jqsV$OtNC52jVOWPEtzhKSkk$IU+~tmZS?pNU;MEF;rz_--fDQp zSMsBGVBM)ufRmn;9Kq1Ls^32Ec~48iN$WI;ufD8~KMo=LdK5MDm>BDnWM^uxstj_( z`Ta4&CR)o?%U`*Q)u_~KV9PVJF_qXEwiP&ORFGEG019}n%@a3I*2aW%4hzb=I^mrS z9VLe85bg&Q{_(n0Ojmg?m{q5OP2$>ZfNhS>Sj4O!TC&k{nw`>d2(OH`8l$}iZvXJi z>DN{#UCSuvpRV_uq2c*=H%fHfkaO$fg`%aewhMf)F1fHq0=|XA&OKjDw-0PX*x96uJ z8Vxzvu+jNtE*XeGs(>u1w<^fL7QCQyPj{m`B-AVysF!SDwxQ7pf~w&Us zB<%Y$i6MpFlZHZLn;g(|KN$U@<5FgeF-1K&;tXaTr_D++g z{~=PR?j>%esHq^d{>Wz0;C8;lCV~S|&r!M$&t@yQYk`YmTO9x$sf3JISc0FwI!AUh zQ|))Lfg>Gn7hJQ03rs;{7UwerS18V7e#HUM@dSor{)HPmR~rOIh6qNtQi5x7n%xy5 zWZZf+5e(Vk95jZnL4d(=MC5T(h}eVkkYFrse&QZH;*dgiDO99+RT~73Yr&w=eFx(c zRHZ8z+)5B&aI8?y*bq|)2GUAH-G^$UP}-48aLvK342&28p^Rb;LFaCW$H*4Y+YGAC zuD*lLfq5NyP0J{I7Nf4I{HMB)DX(c@9(g=zO8I|UR~rtT)V!+xrZUus2?tTeH0yu~ z2l3G_mxElVMAKGE(S+R6An3j>q#cA%31_W&g=fQ%wTwJ(;kZ^*Y&#uz6Xx}^Mn%X$=yL3NbSdMH+#uENrP)7I4E;O9tzs2gDkCuNpQY*{F=lD z!5GN>T$VoTQm7h;15R=7z@otU3Pp({FZ7N7ZK;`r3}T@>L{fL4)`q5-fC_^r4?G2M zChvRN+0fushZK|tED1vu$1S2ucw6bI?Zi|ML*9V}PmN5Y`&r#eLsYtgLWN?K6%ZU& zqnpK|(omEqxGZeCgZzHhgU`%BYG#*`2{J{~^sBlug@6Vq!YlmaQa3dgs zs$Y6S%qg>vlh9p zxBVVXG#`a zO+3s}uZj3}0UDRp)2OBfz+6uw*k4rCBMCR`W)5`Rx z9p`jKs?=5gy?xS9gF{U7Q@{tU_rzO;1W#H=KNKQi(xk3e(whgkTF(L}b z$h%4B%OvNd+FpjlS@pU*IqoU+cMw(35ST_Kr@=pEp?WuP&5l%7F7Cj9>ylog&%2#Ne82Va zJvNb>^a&#@k6g!)0k3HgW#oi|k~@mfvW+2YD*r9zX-4Qd)GFwb#5{i^n-6;Vr-a;Q zxIi?_#i(WvUc;9Hsdkv4s$l|CP&l8zDQk%b512+Cr4DC&2mmY$F{hB z0);~3Xh%X)F8`;uG)ditaNwlw!-~I4AQH9KJAGjf6s0d-b)Iw_lJIP=NpRFr_h#1|=`pB1ct4U%DDN%g?AHo7JLNIZ ztM@hac!s~a@zwdwj_rI~99nTiqT2>EO;~2e3Pr#i4N(B;R$uV>Fk3W!Z&cJI)84Uq ze$&P={fSAo{E|QS!#mp-`n2ni8)%l>Z83Xo)sVx!ptQ}8j(C=4_xvG6=}3MI?3I=U z6&6|g?&ptwS52KE@ergU`16WTvvWgQi%U7{Rq{j=##$d`VzX59$jJq*X;jwP@>$a6 zKowgLAfz^qZgj7lDD?B&Rd$*p)$sEb(-k_&%0ozTeZcA9({p8U%~gKCQIt&BF08Zj zhp+%@Zz6tHYBs)f&#(^+=q8y5jD{h)H)u74(;@f1| zi>!>E#Y}d6u@URRzvux5NLt@lq^O4_ilScmy}wt_&)DANgBlAc0q-R-Om_(wL$cz^ z7ONJ}znpwn6dn?|*PjfybgqmD#_3 z#Sqpm+^PcvhF^W5eYJ2Z4jO54zd5HabfSeGOv2TM?V=|FD*BdQW$ikwREAzD+JG3W z87TdCCQJnkBFmv2f8akAqE!L(Q*fu|(|w$6aO6bH8WFHY;Ej+VeG{|QsCt$If1^j# zIti8kQJo)nqi8(I%S3ky3Yunho>2;zBg;6@N+oKeXdI+OmO`M!Fm30-bH^+nLt+W9 z@9X8dR>u(KbOUppEj^!bb*k7((S-aEV{<|aad7>HueWwxQoeZQ-2ghO&gH~^SHXTOdEbI3NeKNZcRKfd7b%(?%cj!wAUwK%|Z4Au^$ZzmbQ{B3gBe<s^Yq{oQ*}AvJ>$9y@Bk2Y3K653V^N4Q49FpFWHgN8hc_ARf4J z67JuCPSv_*G;;9IBcx)#T$7s+3=7|jV*ind+2j#7j+X01Iuk|Kw_YMJ6_fY(R27f2 zxs`b^S_SPmYWDN*ouF3#Tj1}@054+Gzxj4wKQ=W2QZU?T81< zlksHt;`*l*IYn0g`t|M`3-=fQt?bfR?j3{F6m4WA>+v*O@*p;-H5+Y@0dzBDrZRAp zbKf2XheXyh6=t`_G|;ZF!)lJkbc^Z-$D<->_B|%^wlXXBS0-y%&hWF*COf(FPKH%( zd{AZrG1Fiy*`BKxxK>U|ayiAIrUK3bSLVT-0&#9}-de>n6AGm{dLj!rouw!V1`3a1at0qwk-W2graUCZp#2@G57Rx}fWxE~7Jjd0+K~_qoePSF)jWKmjXQPB}~} zh{|9VI`YxQ=w?G#DMZ;bADgI=Zin{S_y2}uPB~p{a7l}i^n40klY{h!LTV}|AkYdZ zqtuoRj`Jc5O54O|6MjLC}8~13YP&E#}5eBU6NU_Bi9XRVW7P>r`IWhJRIDV!d*;b(ZglBKU+H*o+o+OQCMM0bWV!oRqHB|u ztx^9qfGKcanJ^CQ4^MJlX0{%iB!`F z)G7HTaieG`6h{Vlqe-nK1lY}1WqyB8wy&zoq4pBlR&AkLabrf0ENg$%+Q(e`mHm4G zfBkZ~FFXj@wObsrGW#gKv0d{(2BiYNSBU&_;IcMopN`~3K>NxN=qrQ~Y(qu1-#ZmTzG}+qSY{Q1h zGPzmf5^kF=%w`DzHf`w)V&Ev@$0hGn}QeO8gLDOwx09nG1gf90W$$Rk%Kd3QOltzkO$BE2I#BK`dsKU46J zV>z!O$ANohTFTlygh$6j?Ng#K?06r`g*ItH!5OGWVJJ<)9PG_g;dKtYlxFF$46%FQ z;Y_pLqRm-fr?L~IuazI`_E_{CwsS%-9Q6_KodgleWzK~=F=FVyPCQ3!-$39$Wi)#6 zd1la3K!Ahd_>TbA8Uk2G1phO)Sidpynkz^BER(&b#+6zu=&f&t!8qU)_qIQ@M&BMm z;smk-AOD?^0WnPNI)Fe0xJ0Rr(nbPf0+m1^cpI2O1PsN=vV&tWaY9%JJb*w2cnd3~ zfd7DFxqB#tQQ}dd1U#i6*C=a=X;SUMIP%vMNuQubU_1{oHtgTmB+qi2?K*reJRsd1 z<#gG_UJv8m*ui5m6Lxf^u+jY8{5SijUlKs8d=B}1|Ebz#1mT$CCl_)$qS@q=4LnZd zjx%JLap&iN0xD?{`Q!cloJwlfAT90bmass zS-(>7M5qxMbfOBOfYPdiW)4y!O9@b7m@PB35zNn);XFHotyu|;X@5$TI_BV5LqC(_ zyPWEXNgsny$(0Xt)|LV|M`4JL-0z{WhovBF_U@f95OR}lt{jaSh6B0;w4w>-Q}_8^ zuC!?_0?Q=`Q#30KcA`20{WOM{34uS0Gu|}-ucYQn>Tx5rH$p*+;b3k&=#c88KQY$D+JqK|}6TECkriA2x%OU`J-?Cn#46@qqQ`*KgZqQHb)*PCU$NHaPw%HMU{4VFk#sNBAgW zp+5v^Aa5mKL2OdLyj_L>d)oD+udupnN4uzv+-|pyBP2eOLsl70#MZ zc26U+p_YV+3)bw!1IP%Yyjd@nnAKXq-R7BfUQnp)T?Pay0jUmYB#3GXh9qsVh&^cA zd@1o_2oq*S%&mwlF$4vAC={3-M!=HhGC-cJ?N)F=id-gH8&tZiU~^i=dhr73fRK852LYY*DN#M+DhIe2^(@JkBbh&~;D+ap)f`htf_U{<>P#>z5 zpPajp;Te++(eMgN*+aqTISou4Ayfpzb;IhJEBKLT`B_#)H$AJTgXmtfgS&jaz3mDJ z2BQdycHFr@T!>ZWS$@8xiv6}PKAXe-Z%*1Ve-CKof4Jd)#m|=|fTyOObCJ8oPzZCN zpKILY9Z6ANDHnxlgD&6ia|iXkT=e9KPV!!(OKGk{)l?>h!T$-rLkh|hQga)sOg!hV zvs#73;4cZIhbUHE-iK#hT;1w%+Yg?&_kW?7r+&a-w5{&yIOlRT_LQ zIyCd$*VF2i5unE-UC2vdaDc$z?|#bJ>|3i zmakHz)v=a8&YbWp`^j2@)qzj?{#497sn40udho*Ynl>44t+V&Nw@Zh;`HDUr4yF$0 znw9p=${mhR!5e)8mGSUesLc^SEJ=zbZQKJ;x$&sJ-(2#=TPLITAG`#Iv*tNMDyAZ< zkpBsp9p&EF)jb*74PNNDW8)#~fRTlBO~v`19Ca04raf@Rv^(>7vMcE+h2TB1I?$!x zUAo8CCreA2)u_BChpG@|sL3F!{rV|@YEm)S6(V)eJ&BbP{Y%EZ1o?^(cnkN}ryz>4 zSRSQjwYRDs1hcz>#ieQ}bk{heZU#~HRS_qa&Zj!brkgnmCK%r9>N0oK)Gm&szQUjAn__Rg7~O@=^-Ao_trt0!;=((v=DPKorEE|~DHT-9JMMq}2&b9&9=jTZe} z{NDp+cb<55&vDAcb>byX<8LGWbIpJCQ$rXbn>HkqYvxD7AM`d#|FO54vGq0Vo7W4B4^V$nD>R4cy@3iu-O6 zHu-Cr1RCFtpvEzd2QB%HTFoSMth*PGv`;c#wb1|wA z*mgsTYWNwX?RDRCy}ZGmiQ5^riEgzxLk`3_#tEuR+FP!q1azN7mOtEem-ku5rv25I z-6=x|D*1j=+54P}#zl=97>-XRnO8RyI$gmre7E8}c2tO(9T5!o6I9~@sCe>l^V~{A zq+R7WyNT|weNdtYly-gtM=HP3NfJHifE*6+H_DEYg!Y>AAwO3)ZFUC~3}{v1X0fTn zMv;e%T)04?wwv8yGwk3i*`Urmw)4IO-Ymy#iA$nK=BDocwvMc@Vy+Cmld1W5kZn}d zj}rv9gSpZiBtjo*E;1q!sv(9zP|gRYs=NWVGBe<$jN8G7mM^8@iQF3<6=w%Hoq|hX zos(T)Q5V=2?PVY_Ap}Pp{hCuSmmp+`LWhUjobd47V8~c)Xs*qxE6)zEqN_`H?&_=G zJm2En>bI=4maeWlY_n5_Dnj2(-8T7su1gG>ypwZxo|AojD*C8VsJsYR)NP5`_E1-F zo@=s>7%gfEJz(YtkOwxaoD=#F*%yy)SIF|D{Rl*PRzVTMafgZN47TqVuTK5}EnrA+P^t8pVd{LeEm5RKIzz7I{LGyMZlu^DlwEjG7QJh zvItmJUL`-wSX|#dtvpG14ll5+o_&=OUu%_Cjy&;%@V|JDe}YBSzpA+@MgLx3s0w9L zZ54ove2&}dBBh-P$DFvsBqY$iV)pafRO(}}TFHF_9>k4cpFLU(R}7Q^;=sM{(EY>VcOVK{gccF}8Y-iHat zlKkhaCIn@xJ)tg3fkuA+b4%JW3BBsC8p^XrvI|dHWnJXc>TnVrX0h%9{beA0b9pcJ zIcEOuvsDNq1veyNM%;e()g%~Lrz21 z`XWon9Ab7uSt7xrZc8AYoi5)17jcC}O1`1nzQ`!rbghN(HN-{Cxm{u6rA%#K6U|CX z6q-hC7RQp+0W#kWclNfYAVoM5q-LC`3i%_w8gJvem`UhVp=f^D8vV)olYM= z#zqsd`ub$1flIRQ`hhcNN%fLnj#e_!!3#R(NY_T2Fyz@+zPWmOa{UV3j)_tEIKZh@ z!|`8~(JWM$umopCZX1oS;6!-^V>6|VQ}7&cn?>Xx4Z4Xpz(841$O^OKL?JZDK2aW` z=1DX}Q-OS@1j58oXdMh&b%#|-wFn0;>JAYagJ9$2c0AZ0wU^-o_YkIvi3}l%Mml z_klr>xn*QTxJNyM=!u(!wg#zR9STbHFIE*&zPR@49rR57X! zH4=GrMqxaAsp;Ln!$$t&A>E-AYa5@K`n(jqR_4e zOnY)Q+lOw~c5W9na5@D+Q4XjI;{YmE4{Q$jLqNuB)XUwqK$w`D&5#!`WjA=C+CB@} zrqDQv4wJxj4f-wY&~;Y43u6O_TRp3}f&oPnYzDL%#hXDZGL_m1%yB5lnc`yRhmziv zc%C&2^6v-<4|=J4za2BTN(%K8Qzw{}tQ_^bMSu-ibGCvfP$RiqK}~iKZHo~yw4&w& z4poVcACo#H1vQBb2x4{XakPU4gbp>H*8|W2jCAE6m#tTcm{CHr?l?g;?Cv~ZBlO!Q6WP7LiM0G5@?^2h3^*&wB4h-$ zeZn=;Q7yymwqcN5XhO`fcpN3<5>$hioY7P0y|63YkD(8kxxyS25pVh-&I%*okq>7P zX^SkY>}l0#lHajZF?NhRr&(ny;VA7v!%2vXtL8;6!5a3s0JkL~%=z_cR%*k0h8MQ6 z|BiOfVh=T=MhhXE12(n~xB$aAEcB9EQK5z--!@sQs8Cejs*)avd+JB3AA}G7>avnq zszV>Jh5DEfg|{7Y2j>FjZ@a?|n{$QYk&hs5e?%T?9#nY)p-$p-VnJ^)2-J&NKm_Lz z)%fmS+WNp&CV|Am>bYmbj>-*j#$8!WMB5{hlC0dv+D!bUK3j-3Ga7$7_!?v`Mi(2r z|Dcy-=yr$RDH;E|iZKro!*5x35W8{TWoEh>h(3ln=rLPyXpF~$pK-rw6%S8CoYYgG zTqjpY-9p~MRR<$9I2;~rzk*A- zy$ZfWE`AdcvZ1N_P#=qcHEc>LZ}hqP&s`^CAP+X#;z!LO(0ZX~q-h&h4XZriF0FpN z`K@dC+cB$|`w|alA#Y`!PP5N;$U~1ccir%nUda7Z6ASv63W3sV!7Ioz*8<3RGoXiKfV~6`VMaRIK2k&8b7sW{4i|AbR9Y4R^sr zjJM6XO7{fio%`j)*y=F({5WW?X+<%^wGoX*{9K_JwuuTCfnQdw2NTV9#}{%^)c)@d z5WXEYx0o(^O>zvTl#hzEq|94C26_@fcMzBZm2 z{XJzI@(OyzAU?N|cvrIVX_KD>)W(=agF6^;BYx+7j{__x%dP z)Uz(_3Pft`12si0KW$Y$PR&s+;i|O5qe==`$I}Nj6woiNe!%!e7!BLIHjr)WREZx@ zGjVAfphF9k`)-xy=6Aw_Y1PJ3X+(2$`jS|Aqt~zh%}I91Wa{mBR49z&LP%#moinQ* zEzVUp;BhqSCp$rS9~p>suc^(fP~Y|1L@FsldW_557c%$Efw`9%^>1EIU-Xs=(t`h+!= zN%bUIj4KhZr|mxWdE>hbvYI;xvx_&Pb6X~|h>_ineEDzyrxR4?hJNm%KIkFn6=Ry`x!D-~9h-Rsrf_E_b`sq-dIw}?*IJb+M zGrdT0GAEtI^+Uy$_Cz24Qn|N-o_L6OZ*R~c(~%6%sJ<#_*vf`E`F8h=P#yI^kiPN) zc-am%D9cvBsOkktv)fL@6)k^-y4R&hOMv~g6w|V)YPodiovdMJQNTd ziqmd%GvBRxsMXY)~8k9ZxV}b?)x2;OWrd4xT%8 zq!f=w5aeJgOsH072AoxeDX=fe0B5Eh=Q8cv*uy)`X&KI|9kOs0*xY-DdIDMmt^=H?_68>kbBTTK1CFyrqXyQCpJ{s-?Sq z#d{LkQz@;3^7i47%Y+FhQPMUkep6`CIII7ZRYl@jKXOl#K;>@Utmc#)st|3hQfb|2 zJam8e7-oAiu#MksO|cW`(k}2y54a-hthjwR=o;SjYSfQbKX&RiWtXi69*)O@20fDN z+w}?uihQKft%Jb#kLe#Yv#rZl8i)Q>T)*Xg<5?WtLoZgjXk|h`7eO>JB&!3dWun6v zQj=ioYDN;K4plu=W8ZmR*(V37$u%J;TPGz{tFxGs_c;-_Lm_Wv7ExyZWrk{f4J!C% zxk%4Ccx-v7b`CyT4RMEHc_y=HToiW@!|^$@ChYtIfn!zvxPn@1`oA+e-C+}!QCs7@ z8|{FOJ8aGr*|>uvcX5MhZ<@Sy;9R9ImEaB40ur z56gI5VrACaMWQIZafkOtrTdG|A|Cn`4N*K#MXX&v@wMqbGUuPJADs$^?j)U2w!%Bh zZH#Uq6P<`^K|Mchtvo*?lZ+lIT41*oMbJIzs#R|oyKJ(lI8`Ow6m9yQk=Q@+x%tP- zvn)@^Y!yH@$jQ2H(?%ar>`{8?k5@$c#CayKVAK$Wwap^#u$3DFFHVV#E{mFk3K}4C0=54snhC!+ z;Vf@@g_s#!_*R7GwkqTSOQ>EM!l64Q9CCZTdOAF5U1xZ3mG^nApPu1M%3^7_w4|zs zuJad8atZ$WWkO9&#V9)@C3K)VsXQT?wM_Q3>A>PD>l9%QwfCVy_B1P;g&$&_f6Os6 zzNYJ@(=0se^z6XJ;aOZh@>ZH8w~uRIf#nlk@E470-+>AU{0 zLqgl50n-e?Uir3M#QL7rqh;ckS&6p;e-rxi6ns`0UXl-p3{k`>&Hva>%N6F|xH^ ze^lN19-6OWGW(s`ar_y1aRoIy+X_W&R&!H*s{)i*?QT%P!hQ<0vlvwp5kZYg%^5Xk z+S>x^;C{P9tAWTU%h9DZTNR}DtD=~t7Mj_Pg9@|ZQDgaUfH^P-0_lnqs*Yu-R%VV2 ze8@0lhfp%#pXn<&#U^bv8zBT0$0;fre0>I;Vs-=fWyOOnX|)?%6zNRT(@;H>MV@%V z3(S%DB#I<+#0q6nybnXRvIxLM7FgoeSA9lW3g-GLpm7n@lqajfP4&%eeF86`IUb;F3>>@3=*<_-*^kj$1V(w;MJh^yEqVR#3oCQ~~ZJ8%}kyYZY(uR);>;6h3_ z{1^Sp2Sd+af4DnBp3C@}TP{R2Q|q5p9sL)4slzAuhmF7a7D947GA*ghW_4Bis*z#h?Cz2@Pu$ZaX2ywae}vZ2 z&~V(7Yu@MozVsw!L?*b>Qu^(`m?%rKnAnUzwTJ}U%b_NnXq$r3I8zqF4j#(A@_RB> z733~_5ouL4%({ATk+D+$^sH)r9tQnM@;M)#NKWAVmj@5aIQ&Vt{_~=C2G^O=#-~Pp= z=~w45t-xp1XvKXpgTYR_h^k2hY-uaBQSR8sFZ$DMKS317y2ev7q#a8)3V(C`ph+Ux z|43qZoJCNQ{C+uZ(&&r$`fc_EMiq)78qfovNVBCokBNk&^}F6j>(#o;!H`|?lUpc@ zywydIw$o+Jfpav3-MJwe`}M6Zo=;btcW`NambWd`=Y-*>$&hQpMEcSY*-B$ic-7k{ z<}Bt4Y-$$McCmEnCTL>R?TJyApazxhV!l3kGF*;y@PeL8^&qIk*t!~^cOaBoaR5{_ z%l&ZWGjuq4>GYdW-lGr}-cH zue?aI%xX$PC9yRXwHsUU(xpXha!*a}q}x~F|5$_*lqTUmoyMw8P*(@_yV$V=Us^r4 zjqz>Vhvwo~Q($J?;Cf)EVR96m4+N&2zCJDApMBPn^uYG+K<^BNs8Cp7LUc$$Ij~Ha zFhrm<+o7tZxt#%ns52HyCd{g{!&D3!JZp5v0f9WLm`G~cgY2*#X3Oxpv!-I`KB){L zJkGPy3S!bekR6I^jXEARE78F*)S4V>oJt{o1(gX;OB`B7h?1rttGkyEhf}J~sZ6-| z>4kQeS!p{<5kq?!@1t`j{n`*#$~%2?lYzTE=`5cIbkBZ6(CHTK7}9Tu5(ZILp_1Z3 z_Msc}VDBg%iv4$CJI)2Q|3(RsbpJU&#sN~0vZ|2BA1W3~{mx%1XAfl~mU^C!g-H)T z@p$sB=9C;NldM*e_J|P8a<5ntD%Dhs4Cojs_N2gNDw&sJD(aUdT_76rfcPS$Q){lQ za2%<+uNc)7n2j(wjp7?`scO#Qn2-kKq67Ei&gYTNP4Pbi@)R;*nz>8@C${|=dJfIb zztX1f+5E*-p?vq+lhMl@3T#uDha(vI&}O9%eB*0#CZLrt?~Ae6UpR&}k8QR+nTk$2oDDFclX;bo=&} zFn#mbW14W*yhw>~h4J_DhHW4AavR$)?3MoY*U^kVDr4%CfPc4+dYs8|=K+M0HfhOM z*RLTftsoniJwf%bi;%zR6skg*R0kLGXx?N5sP}y&&1%)OqVP`9DDVzE83T2)pCqnQ z*1UQmigB(`7(|J)$P!eYpfc=|;jO5x8iTgqY!&G0(D2dLF+rzGhu{In@o4-`jykpp zASh2raYF@D?;uo#;@oBg46z4>w}T_X=1iOHLN+th5`@kulkTrFi*B3QD>&VXBDFrw z<9gwY;55ZR0-7;fKt466*s6dm&2LFYop1oB9*9m-t3%Bpci2>Yk{vfPYM|yIaBREd ztrq2m2oqYA0}N=31rg9QzBtEJ*&(kmF=gPY!X&8N!5$zp{YH?GXFBKD&_eGPN+)Pw z&>VgVZe?a)nI4aH`QSdBlS9gZWx}3Zl-8ZiE$yB&22uNOg8C>beq{r*R}U%%_q4fh zjHrCvfB1)~SN|!k`Z=^dIkZsWNl!9A>;64S#wSO4(zxok(NSJK^*KpTtNykFxX<$J zdM*bavDKGXskiHYbzYZsJO|-l1EvJkvXy?MAOF#?>BmP&Z~Q8U!^m}n-)OLmZvH~` z^xFE~Av`#4EABjQSIqgzaF5LWS7DfG-IlP_bQ>#CK2_NJAKlfBD%Uq)Dr|%M~f}5U>a5^ zic9XT1OYnF8MZl_HW#%$Wz}l%Tu&X#LN2ud6ZV=Max_0q!8wuNJdq{=^^ z+CK1`=j&(q_-6!kKW(1rwIO%qZJ#-La(j))Q_EX-iO1jN2G~Mmb~jV>n&ljNZI=nB zEiUPCmh2L>P41?N2)5?B!nRl>q+PSVoK%Y64l04A9Jc5AJcG$P!R#_*#r!qODL5#@7gmqJT zT0Os>nh8=1u!ugye zdTG7Y8D9=~2ZYJ9j}0y|u$=1Tr-DrRWg#kold-fB4!g)7lUlF zM3J|p7^|kDhM%E>7|nXrV_H+;1t6QQ#je2a&c!k(N4ZNXT8WhQN2eK=tl0E08H1?q z=mRMZr^?(3M&qp}6^7P#jUx{vg4!`N)KC~GJMRtZh591QnI74E{h2w{SyAWkS*JbW zvyZPr&#rsg*g1N6btvLodD7+yE0jsKIthf$71fDFNHTgm!0ahiLuz4+lf!OA1yiI_ zhWJmJkn%J2CusK8Bnetq18S*5OGFlecYB^RR#MhLs(t$KupXm|&q^p?a|(>>`6zpUxNsy(G@nA}-YF{GOaV@*KZ>`(o}<_0Q8)m?YNqp`COLsaDY^C8Eh)`1kJ)e)tH^Yo=lb4}F*bzANGm6SrP%uqZN3eoZRzNU_Xb8t)$QJ2n`XS`2 zYJE9eaFrJ^>YGC=hV?9cc-8-+^Tk;X9Mx2_V9?OWnnUTnxLcYjOn0faGEL#fgq-av zGwFNgQA4dNcbaaRkA^AfB5B+E2A2;R1`551x`@20TbU%zVfR@y#7WW3=PFxS^{U`G zGT`dzuxec8fcAKHRVdG{=WOg=WcA@U$6q4dVR3z`z|l!bGglXHNgf&1WaSzc0-oAB z)k~GEUuT%~HI7~iD_ly3KiLY+|ext{J#i-3}oBrbDyQ{$TT=4{yQj(Hca!|^YY9kn_WaeSIjm0ni*Iq|I!EFA$Zgse zdzvtpMQDdJ90?~`W?n=3oawxJ&N1YKblW z_VjlbbtiWHRrvSNQTX&X?~;2C94%pq^OAZg8dzxrDs7X(K&O9icGOT!+8lg;@UZoS ze#CSYf%4PU#euV<=0GO}dd#4BO$PkFNr;+Ch@OIJwV`mrCE%W1(AEVeoP=k*n~g&3 z361u&ea9$a4e&Icvl@%y;ZfQs>exC9#|SUQBha1HglXcp^qAE9lEilB?=9bsA8@J}W?RL^GQQs4wz9!1SX z6-}ukkPtHs{;3?b2ZE|0ja?Dv3Ri?H1dos^Dxuk+G2a}&Ybn|$6B0$&Glnae&E;f# zD}ai$Q4>~W>94y`w?=iP5K(EEMyM6FyGQGw)}y1Ca@$^xrh@0d1>vK00@^=fXtRXI zHYiECLv&DXJD{P#t(I^e176@Vd;)h6JK92qt7w#ED?$gz?_9P;@X4aC@dW6-Q7$64 zQNUJbrgx3MKE)$b_z1tlJKs34%9Wp@GZ*NYKhB^ zd4cnd%^^$3VtI^85XI2L#171K;KbfxQ+n_Yq-m?ic+R0nPoEU8px`(@v#YMTao&zC}*6*V2Gtbd( zwJb5U;2}NoMn_JzH8h5J$bpOqG@qzpQ7~NNSFZZtUF4f|Wl6Bp%CDE%q?H^%|nHy^H^sp!hK0K={uk}sOAW%iIy$d{35Q3!yKm+2##zjcytt4@;V%(!h5<$&4zYtbE_{0 zf7s5XniDvfs}%=8#}0;v!aFsuG%>YmpLCsc87oU&_?=oj2XLbNUG(r%lkEbXWQT-` zkXOE?<5$`v^Q~qO^;y+&$^C#uo2>_?!WlB#4Gy&rw6KGa=FVXG!n3*eJTuH`+ zx}Rj0X(bvD9N26C>>XY*H;REUb1s03c4a-3kohu+3T09U%n>nIe!V*DI;XRm9a>w0 zaNw%eVBXx2`aI^lC)H&;c+5H+B}WUt>4VA$KAp*!JR#Q5&pZYr@uIH@zIboKQf!#IdD&xc06K@tB-q5t6QsRxal{gG%?kbX**9` z{?6-G+h9RRu8yInl6XHZBo`=TTe9k~sHcp-eoktic`09=nXiuF2!aXo%NQ3W`(o3FNd?|RFSW! z;X7uAvZy+%(=2W7mG7SP-G$#>^tfu;30=>V)d4w*A70z|@O_4k>3YAr=Aw-uocG)D ztXp~Z#IEJRbQ660;UbQYz52C?HAwDxBj4*pQ+0BuR|*>Dajw~^?T%A15O&8~c&9Ap z$PQboa%5gn3=Tb)FYkk3=1!_3zde%m`j&h+a$-^_5e`s9$pg$Gwv;aNXL z$7jcyVV;HV_t34*YE4;T5lc{B1T5;d#9Z^FtL&^BBGgH*8-r_NRgrX3dQydgNye!Z zjt;BFRpwcKE@Cb)y~7~WR)jAHmI(nv1dUcU1P0z=3qikxp}Ee#dt$S~X;ox(wkfr| z6cKW?q&@%Ro8x#`A+#HHZigNqsocS>3Za@S7~G0d1qXN0IqEq3e;PIiL?wjcv>V;3 zIfG{&G?D>yM6d{7W%S;XvYny8zaDps>bw;g*w=Bydri$qx7TH`u%uOQk1BsyO zNVQR!a#ySl;OVKR8zX}RX}-#m(z7j~Q9X5O5=EAlzX$79pm;yN{zW~9Mc6tHS%R93 z0tajYs&BOjq%*&>riwnHRX;!!jpo0$+Ul&dBo9D_yDW9zJmf+*N==KasBaf$cOyH)k<)X-q?k#An^*O zZoo6Bx=2B}rii^@!by}Asp;zPVv2M)zNRf7d+Krr{p|ep7uS8t-`|*89XymhZySF; zt`vxroBVLiH8r!rZRZIQ-E*`qC+@1-HxJq>M)nN+gytvXe&XIcx@ZL^u{%!AN5ffB zGbb`_8!+*dYA0dDkCA#}-GmXPt2dbg4Gx2c7J*Ix>l#VMC#VP=r#ly%+}!SmgqkNs z-|-q%!t*cRBWHRt2o-8q8kSF)jl3#05~$Lz3H=yF-a&nM>-j)e^ey;NF?6D_aE{Y$iL(TiRz=f} z7N9TaYpy$`b&~y>E6t0nlnw^u*DV+yyG)NIf_A>SGrEsSa@I;Aj$ENANffFy4pqr4 z9UH|C2DHBgQSBYrqgl5zAX`y(yks{>HeFmCP0wh_O`0W#7Cs#??mJ{LxG5zXyA4Vu zxTLexroBD*_mnfEmP?npUKn;+?izYzHB>R^V?5&@TQ%nxrKU+w&Z&rpp3l#CN{gtI z;>%1(xp0K$m!w1Y472c~6^`o?L61r}yn6MVy4<3eN_#@%Ycg_=lq6J5Wl}v&0*xK4 zA&qtWh_U8_Y1_>Hz`Vh>1G3`{Zja2=sv7>*?nAarrvxd=_qOo|20pS>va$UibjW_2 zkV#@mX(xX|tAsB{8+Rf8^QAg@Ujb=e-?F%7!Fx2Mo<8Bp&T$hI8YcyFs>>uMEUizf z&q?INTkQBef!G2lz^#=dozSMd%FtZV+|QDocN~z_Kw)@*jbN%2LzOb98eU1cSc0s3 z9ukEexUrN`gV1*tNFN;kfX(>B;RKG9y^9LP8J)O9uC$?{$;ZX&a`enIWM=FAS`Yg* zT|Q{E$6cJ|tP0>Py9C+}M<{JSjaW0EU{!UNP1Kg&`BLx$-suq&vjpS^_titlOw1L< z(=PJN_ERKPbb-$c<=_Zsz**)=P?19Meh%5nA^>MOr|U3@1Li!a4uo1J$#~9k`UujJ zLBDyt@aXzGeTh&@O$WHQSMG{DYpCWKv0ou=^pS3z<7^JG_eYl4YlO1O3QrE4rDvAT z9n?wzgLSuu<}5=Vu!Q0)Ze@@32TY4(g*0=9RLjpvPEb|1es71ce4cCvRLR47fqWc7wmBM&MXE%)ITq&ET?_S2LvvRq zLgxTYHEN`KOS3}tK=|ljxhN1^!Q)Se28YA+_#Y7}ilvYs2$XRB35+trf)ISG z#Y95{7snJZ;Tz2A4n|a%z&`n2{RPV=)o9O_jKv=(#_Yh~MerbqGU!MZ)>^|Pd6Po*C_6o%i4N(nmlpw(14#9N1T~((k$`S*e?hsz>kUesJIYEEX=Hx*ciaCJ-wF8PgmtY{* zolvw=k)_?K)68dGI;D+Xv?kgTFX`4t0mc3q=H*BiOc<1K5?{ZRDGk%1CRGJ$F&Rge zP?Rp2Uinl(^VRPuo8(cn-zxTzaaKOyiVaOXpy*3wtAlo^`e@#{WUCY-22u z%ye_gkSd#=*r2(yEX94NpV@JDl2zK&q++luWV04hJq{*^(hqmx!?^6agPLXSdL^ij^7cmJM3vQt_qer^(BHS z?@(iz5JOz&keZqG)Cx>9<0LL#2>pe=9Yvk~U&TXBLR9hs$p@Qe=EE2=Eg~7U@LC42+O(nz5btb zOSw}?o6HAtN=1dwE25tF7anwG#vkz7sqdsJ-A32z-R1Gv;QsYlvwKEA>2Q^*S|n>r znpQ(7t4XR$dhjL$*C{Ar1m$qoG-0@L;zz2JADy||NBgRBVO1!WZq9ZOKE6Jzjz5Oq$`Q!v#ySA1=CWi;nB#~AF$Jv9-()M&YM>KIoC zSx#3|5wo+&vP@$1gs<9EZU>)MS6)b7^e;J}MZzS@U5xq=%_f5g8f6dM1Z!3sfi%$& zqo39Inkq89CAZn37)1?}PzyRFzdIYcg*Dqji96%W;^B;xQ0y-?oHG?n42N>yPCae4 ze7E3Sf=($|qrCH@VIy^p0#Gkb@xv@N4}qypqNZXhC}K>(JsG{yTX!aS$kIfi*$_h*YhPnW>c4eb6N)UW(9~Q#sSyLo&K^j1S0c zQcp)|FNZ5M*d3{KMp`aFQOH|)v-$cd7r!J0MM4I zd>aoeXO4(_>yHCW>0A~yc}kKr+T;nwBhD?M)R#H}+5CE;PZTR2W_hBO)Kifq(4}ho zp)>hh66&W~{#q$f4tX0J*&KO8-oHhYQ;lS6UZgZAXPNAhV6(!Do@GkZ#D z%iQlkO^I=Y(xNrxmHds+m}$`4aGaFzG84NJ>yZdpsI+;?AgFWb_L48 zXjAgMWNC>k%@(=fboSqq*vAh{8!98zk1I@KJcC@-4%_PR5`}}`3wP%`|K`tsbJoA-LDxX@(~O0iZFcDWSw~hp+u>BT>2*DRfVb+1aKjfcmRqOb zbK=hdA$)i8)7O0Ydw?9;2+6ac0zT`6v&Y9pR@bzV(rGX0kgjJ>|05u>{f(`<_|G<> zwhG}m!M1@s9S>jYk5<1qv2~f2B%H5bzenw#9OG-_gH6J08^3g)2|Y zvvJRXd#W|B8q>Zy_zDpodNTUGBs8)|+XQp&_tY<=vCvCmxbwC_#l?eZOS7ZZ+qP`k z=pH}q$j9w1a`B@>=Z%xYDOKkbR3=R5qD}!lq918KLpFGlA45z&d`1R>I?o=Uvw0F#V{3_DM#Ue(9HN_%Y zd6FF#M~7|EXiC2ywnunxrzW#Oxa)Yp9ZIOw?*qfJzTfyi{cp{81g4j_+UU(jemU;1 zZpjDv*}h!!qLx@cz@;53OxbL8NW~BxB0({GNc1}G<0-NJVc9(;i$2$CReQN^L0RYFVVQ^lky_y}&O z5Vb5C%GOGVmOzYa7qcNBo5Fp~H!-pVcj`30>A4XJxwA~uX!i*nD;V3dF8~$=Yr;o*p zQk_DZqBd92Pu7pd5u9Y2GQ@%SxZcQMcQeh9=gLAAKoWLQR8rPZgOaKd6)U)Eh!XO8 zGqmDTRp?3K+t+W4eA|-S$1cw!N$J-?)uorX=z|0*>3v5T5=adifK5M9{aM1Zcb&o* zu$4&wPO?nd+B%7KitLk`irGeSoa09QzOU~vW~4Do?qha&AFacSh2fCWV`Tl4Yf0_p zJ7E1UOo&Qm)a-Pmk7Q{;wW-riQSQ(|{B_c0rz!zEQ^IitErL1jQnA8O7~hH?k2LjgTGe*GMfiVZd9$U)@# z3RU}-@Q|kDOG}eT5r;tu2az3l+lHzscq#~Iv4-$~!uyHhd(d8>Ut8=FxP+X%l>;fK&;o1!7@1etk?G z_E#>4Zd_TIE*Ha|+`Q&uEXS>5!oSIRrf+56o?xFf6Yr)$LIIkfSRgKpjzf@B906`@^Y0?l?(e*K0O;HQbnC|d^4(WGxWYFSpa~Xt9DG!1!`3lPS;(fP57PwqWXeJ`IL_G5^h{kf zexo{Du5kgfRD-|W6Bb<;GMutIHd?a#p$alTkcaO#dc&PeSxIfk29ZB-Eu|o=40&5^T z_DD+`T1Bz28cLR9mNcNjER-mlpr+RTWW|kB#+Tp|;-vL78HSzf!kI*#RheW>Cq1Xu zGglaxCaGI1jAuH@I%!@Xv%aLW^J-_-R}HI$7Gs;xXAqMHCRYh5p~50yIed1|$u^fR$wSJd-VFl_Bj#q* z-J>lWjDo*3xX=nOD)b}#le$1v&6^}Jp{rbsY6=Q72YEbt{P7o*YH&&D;x9BV7RD6x z8$zb|J9%5mX0+uBi*o<^O;@%+QlF|8yvb98g_T?i4OorQAqQzDsi7gLXh*gEIh0V; ztPrV1T6y5aGLRi_u@51C$_{*o`&X?VOc&CCXOPlpD+Mx-%rY~edp+I37? z&-g4`c`*RZ@^O?)u}RrI6VIk&>af&pAs?0yq`f964eo<`@2M5}Cyx_;{ab#Q#AWbH zc>iJX9qIquv4>LlH~#r{NfuTGszFRegS4EIl&+an*Q80Q(h7Bu&{84?GVR;(_w53e zg3RI$^t-}BLEGr}`1t`PSD+ytZX)QR#Y)Tf1OLW9M=25(4JtStYelhx!q-0qJXIvJ zG<4fb2qk#HqQJRr8S*#!gi#^5B>FA+_~rW;7T&?BRl^F!(Q`ES&;f!<;Oe;7u)qH4 zJlGFV;_4E38GU4q;V&l1kyrU3yni0-8&%+VYx@E<;$XmBp@f{0QGazP+6bXq3D#SN zA*UiSaC^!qiga4iZ%^2wFcb@-4Uq#?qdJuX)?}!L)^3Vc-MYm-pLU{TBMn8s0%cgJL0| zQGvyGlDO&Q^h|2B_f!802GTjFmsJu|VAy*EKux z#t#vzbb+!joN-pxLl^cBKdSPQ%H!Fl;S{ z6Fb#xbqFI?{cPb$KVVJ~d)u;KYc^=B5`u$U64EGVMDM_kJt)PTI(-hf9ajz)sI#H* zn0hkg_eW}oOz5vgP;)AbJaA2eI5G|@t;G3FF6@PKSu*W%A<&X-P!^r_OmEwvOh$&* zW8&d)rJ9s5xCXeiDjPCS0w%RbIaF?lsGMO`n03QB!!X(NOvWIs`43*hKbY_b@8EFn z;H*R2hio;{1vNwnwbwF5g`m^vq^RD95ofqCPEvP*FmO_P!7+jEqoWl&>Fng&$rzVA zcG8p8;cUE43(xvB$pdBwW>s3BjF$yEFU}x7N4~?T$|NexT9zb?Q#`V`$+w@pzTeux zMhHwR?R-H{ly%nX;c%`Hls=T?2o(q3a1U!%?K&qob9gY|Dtt^$sPBt~R>8ZU zuP*!T_5oEE>BzA!tvDjn&mxZrsNmb1fvJpQ717foeRwXj6Q)2th8|-@-a(;eg`?6c zwN(MZX)jJy@Yh2gR+vN@RLw5*)z#2BP#(PuEgcQ2`JOKGU*Es}x}owNzy6A)`F*ch z0ihU4_>c|$mfvYj5N*H%Amd(CAt=-=@Lr)PHAE%4zhVNLXF`;X84Oj_1A5Jl&2y(E z(HTd0rT(_3rc3q4J-;Dv6h}%F)t?ll{Pj~h<3j$BH%G$2z#LeErCNnp2Qig&%)=y7 zDA|s#qep6XZ27`@jJdSOl8r3CRz@xw6wQ#WEFKg?NOM}50fjb)qaKr0Q+;Eq9~LGV z)zIXSB5gsb80)?e>X8OvtF2w(+bSXJ2)Obg05_>9)`kE+2Vvkk-xvUWke{0pd}Qw(bSxC*fP6U zxWP353L*88TCc}dAD>F=AaXF>%Ls*-OmHL8#TGv8F{46#Wi^Z#u3>b)ez}sJAp{+8 zN!!yp#Qyw^3x}Elvm+9<3q7;27vTyDDzk(L8t%oQD$$x3YKQ{7^%Xy#o^-i2xj1#j z?LJpE4+z0yeuM$bADL#z#S;QYzafqcmy62>I7&M)#K5>Ap10-<%kGh^{RG^D;X8BRpozU7APUbF6Q9IJ8p z(5lN&GbFWP*wGo|o5SZA-M^5V@aFm7U*aEsJ~QcTN>1aG%Cnjx5l5LvE`!+S zOiQY!?NlGyXD8&WE~!q&Idea0bQu-)Z1r?@UUD6YChylIQki9)r4py40UfsPav{P&lcElJzeOs|Ga{qpUz% z+!Cjt)ri^=!jG@NoWe|~z*Vk5y=HwsH^c*2y+hY7*D`*sca}r+9fAjUFCl6UZfh`( ziEx@I22#T{l&bmQ|NyXjLwDGK};uWORs50$J^txr*$d3Xk>&HEeWyT)AMM}nUKqgU>tbBBf}4R zXMml4<>#(LBNlxzy0n8>=#`HxZ!~1}E4XP5 z&LtSrz=YgO{1EX)tig1-W8$6ysS9>ib(B-S5;P_&eM~e7bgFbQdmXdMi?t^S`2v>Y_(R9l zNjFZY|IDhI%m%j69*M_7biqx;K}Eq29UPZ8^T~>>9bP`=(@ApG+3Z!$*+D#8d6H9I z`Ok8-Fx716Kt&nbWvgjfi@|cMTb%8f)N!{YPFP{(GV7XW?Ug#5xFSEh{gjj^wm@k* zIK!+el-X#kQ+@k}U;lb4r)%0Av!xiE6ii3TNuet`ewwf}Q7|gxn?h-px+evs)v4*D zF#bHel|vIro9s<)@rO2oAreb>yUItZLA<1)wt=~_gzhPLDoo(4-_jCRh4;1%@}n(7 z2ANwLMRQC-$6o@@b7?V zsXz7tR}6yUT(jd|-PU(4Lp^{5_14pKuFf?($`K{xry%l8UM<=#ca@JUL68gJDA!R; zG1Q$O`T`@@5UmV66+WPS1t{WRfqIhC?QG_!!vzAV5EDPz(>dQ9spG*#2S;?G@iVN> z9YMNL>rljd5ci!G7iMeVG4w9EaZL`ZQC7fIoK~YD?|?j}wK6q#1B23lrS(uDq~R6f zDAZK6utPpPtxa5C)3zIwO(KYGAH>SLURt*o6Lk_P5 zrRwbQ)Ou3vo*&a<$n7i7wggGLJ>Z(5sNAhy zHGrCfK=E!sJ*0|lH9&*`t1^PaY81KkF?dx!0NDun5`W)Ih_BC)kE_d=zS08}=-eIH zjirx!6qZxV-eNKv?nOWsKt7gUvttW4%Gztu0UlV{jeFHvXP8%W~d_cT^Khk0^v4%vJ6>ju26t~Ml z%W4?(1Bl-?`Ax{7+!Ir#@wF~6at)CKYb%o|u#mo{j_qzOwVJ4R0MRg;=?a^w_^5SB4|yv#<(_6ov(#gcw=^fM2Z@TF zXI3e*<{wL2S!GG6lh|n>(q}w{OVLF zuV#l=4@b-PjmZ5tgf#754454~LWW~|WH`Pfip$UPufn=JsJMed%?@sT{WGX)4lhS$ zEO4-C{#+ z5CnocH5E{^5LeZ}ZX7i< z!z8AteO6P^HIIV&>Ovw+Vv3r|#JSAVtl_{`RYI252P2NxvsIy-tM)D1cz$s<0P<2gf8C#1Jt=F2UY*<+)y*WiO>JD z#cc%ls2;I+w=4S2H#>d+ItRrof#G~QQ)P9bZ!Ws_GY~sJpx&WEF>%b3Gw#(nUc2o3 z+Z*eV+d3*_QA%4F`Yi(i4amMIXwZtnF_Z&nA9v2mgiR=K? zu;dN4?b+%FxWQO!XU;(7J|VrU+6%)i88ea6!%)feSjySRT4Nw{2H*P zGN^nT#6A7*bjEa_;gXg~S16ZC+8^lBw^H2ec4%#*G-peW{$C`Myb`6t$vsL6mf7F5b_{U z_=&Q37oc0z;7BtfqS9$oupcIMfq(s^3r6LtEL|_&P!a=SS+iqX8S{fgZIXsA?H2(#?SZ^ z6>0lI800|JUz@`cB1*SPoHK{N7~8b6xYsr%PY&-#+;Y^@1TMjrLo zuUVCotm)*u7^o6a_UcnRSUwr;Kr6*X2S+zox}=;$71gtbZFQhX;|`A0hBjdd_7aKZ z#ak1<9c+gA3uEi?7$(cT@@KnmA5`PASoi@3$8}RJAqrp!!K0<{as1d}Zvn)Q#?2X) zX-!XuR2`8>o^jh0pKWO+7-3~`RQ>t^i}8m8IHA*CN+gwwiBLZsD-`E8BA^S~1`)dv zu5=dYLbv+$N!vVB2jK8hV~XO*`iHtjyt%1}o8tb0g_)EfcXXlQ-2{*&z; zaDWRirVTU00({L5qtH2i=T4oT2X18$f)zg+3U+LZpj@eS7{sPbL#gC4h;?Mp{6Fhc zmWx01$lsAl+gYdb>Lh&i>T5!O5O~|tg@a?icx#36nburs$@f)O7s7WM`Gs2hBCD?p zOiOy#=LXd1D>VjY(UZsxAN+`ZwZz-kr!F+^3*4`*w#|iB>y+g$ySefxn&kqkc1juNJs;P0{RH20E5R96>RX~UKwB1<8K?Tf%@&Scrqm@5c zfM?U!!rA@$c``p=Q+@lM?u!pfImcyndfS37Fmesi$|xf<0zNp;6D~m4q=D#cS79OV zFsZ$`^i%JwS2y&MOf}!0QErGzM}i>P0Yh0L%Xhm$On@IcbwnkeiCKWC#S&55*yx^C zB|0z(((oKMTl}tQP%6$f_-WY4uc4k4(E^+ zCNV|jL9}%c2&0%Hu;Hr#m&>bH;FRzVuZil5f4+oc+g`SvO>; zIns8WFwkY(202?DUL0+pgg4KYchJsW9_8n^A3SKvcX<#8=eXnRZXeXJ(LtoA$WtH2 z|Bj2Log-ftRQjKedA$C~yTcz{yT*u^bo-FU-)6TT7ox4}Gw0!dhrYfTQDk^_ItceB z4=#t1XN9w@vpg^QSx@4;5_18Zjq@y@Ru`?Ov+5k_8v_c}y4aj$-eZDep^ozo#p>!Ykk=vo#GRj)KwK``#cM69V$ zFi3BNh30#yXUopEXRp<>Yp39_W7cHj4C(!%r?QfpOo9*uOLPwWxs{WnX?D5LOp@M=Ij>QJMHxw>*Eny=}?pNJSTk zB3Uv1Mh^b7XrK})DHFd3EcjgH6$pd^9l=Pdu_?REnDt&lON(+eHW-9A&X8IyG75;R z@b3_~7w4JK0{8oZZ*YY18f6LK601{e0wfE&6nmF_hv`Sj|rD&OU{ z)vOR^wTf(8&3iF!h>YC=+B*~*qVryjXzral1Y_Xti9a2n1Xjn(W$;T?!GjDC(d#c3 zRt4IBh<+qVQuMiH?hNt42|^;CHI?ATp|)9hVN}J1vu3!{!KbEC(XoYPt=U2``kg;l z?HqJZRhdh3#&o%a7$fvKaW{CTgOiJRBs~nf_ZG&#L;V^sW^0qdBSO-8n^hX+IVl~G z&Dfq}QvIOR?8JlcVds%c2-{$x=;iL&NheuapPiacC2r|d1P(He&a>sEgw@m8IT!Tr zQU97ms*_yOO*Hja1SLma6TwqN7V)60PH9!pbi7;+yBrilY~;J zZgi)r$TgSoAq$)BQDGL;Z_B_>`#I`~p$vL!l@v9XB&=CNgjJx`H+hE7WhC+^>*$^} z4;O`dafv{9w0^khD!hQ(R8Uj9o7r`C`88altl>Q=paHE=!LC8g3aH^DDSZ8MC{Czk z)j~dQ?vQd|aYP|4`IGtwg%+LqUke{Eox?WZy;a%Y(hI@2zRh_!acvB?E0@r->T_Z= zWd|?Q)E2{+E8I@!{jfA;>6tzs(kDIr}8JKjcrSZuzNJ&+#@yDoKUiDL!^we zE@?Jg=@!~=y&*C*8d^{+sM+J7IPO(BYxwnPA#hHFMFMI&3ZVpr;p?}`r{u&h?{wau z8{Lkzp`9O4={Ipr3Zf|acCu2NNn$8FxP=qb%m(x{jk1TAD6=OcK8Kj#a$Wp82n8j0Za2Ng3h5pC zVSJLXh6LYSv=AI}kjKXRZywt=Cp6+-ju7Gh?8tjF|7zgHsFl{qS>76>`QH}3=QL0%1!NB8=HDTBgm8if#?KiiN^+V0G znj>l1Lf^;8AMmR8F|}-f&<$}`aFXk+_j1zpWI(yV>{J+&JjPhvBB9{_%hLMnycqSs z+37HA3~8NpuTDK%b18B6Z1$$IKPPeZWz|ky6}c$fAy(8tS)ttkU7&?PmLnM7of@LE zTnmJfSquSX$Ym&kp(L#p zp*9!<8pbvajf4Jlfa-`&x}HL`av5`|xf6O@+@LiL&D{fg2z1QG$rSjdz7^eD6|{zKifcK7n{f6wwObMk}-bPEwy z!VNlgMlj}E>fA-c>L_ug2lzZX3?#k(fXYDimIgpk=5tyw4(w?(xPw8fMzkP;6`Zoc z*FTjI3?dm?C_8V5SzGjjec9)N%#?d(A#z|V!Ctt&{S#_~L7-wZR6@#8E_4(b$F|To zibqW2(*dgE0=Kr!>Kx0Lq_ah<>D7T(tKqBH;nnj+KHHxE*I^Rtr;!7-$LBb?+nYZB;@rxI1YWpOy`oCjp`29n>)5W145rxA!@M>Y}?1 zaS~7_IZf^k1Mfq`1A?`FhnfV;D)-sAOmpn}P3Q_`((Nn(Pe!Y=G0P6KJWqdvS>vqE z$@el@F@VVI)RXRTHeO4?lYT&?(4iC0I+fAMqnKiX`LUOitT-B&dRiw#Ukp*tN>fcW zI0zius(3dqYBn|p#2^^347>*Kb%+?sdm=b;jSOz(0+X()9$-KxsF7h38An;6jIy27 zWy))p8Pd3Q*n(mQvC19{II03m$SuUDPNDDH{2T)1LKHxd(AU`$!S?WbHK(1}5#T?^ec1Ey8L2Cm{Rk90_8xzm}QgA(G%msDM93rd=1vuC|4 zv-xj#xQEEqmK?bq6PzYdS|9bXYDP)ZJnK3eFF9%|v(eM6ahB7vY9F#2wn%)Z*J&uG zU(;$Ia1{eJu;)rt@=dc>nNB+9zf)hNVOj+&?jCWnx&I|iKS6G+3Ze!eA=Oo(yE-*X z_)txIl7U)ra1DvdpI52WpJiW%#}$sT#22q=d^bTtl0I<1MjrWoF;u>jq)5?;xu;vY z${OHoRnz~z?+Y@>H!{r@<`HTcZoT@~lCA<5xW{m(WjI-Lw4qG+p*>K%jh~a)mPLI*3M(sG8m!nq+ul z>NPR%Tjt=oFJQoLcZD#d+R8}JTdDoXfUM;Bzoee2{^X7Lxu$-EIaR*!6qMxmy>uX> z6#kVx_SlM~RzO|yTyuf!u)xh&LwYL>iizpc->xu{yB&%L4-m=Av1R#%i~<+1unJImp{oXf0<^0$+(E;=I9$Su z6674=j6$m$572}~g9|uRr6{fV43ws^TB4Vuwof#`LqMYfi=n6MpkYjvha3z>OL`n& zpJ`tw;j_JI(7FRS?X@`jTH#x1f^?SBrw_&W`i;88EAXf~%KRR@a+Z)vQ74S*NQfO1+XfW7Req;BkPEox@3h|N>~M#ZrUEC2a(@T@;hW(^-&5D%lB!Z$ z6)43m)s2Fh@#u^{=m(vvY2Xy%qfl6&1X_*C^(|l1@#E)`0=c4vlBgu)=i~`##0NcO zFBf_k#DOgt70T#SK=sBc(hX=>AjS?HY&3d?5=~OEZRVw(>-NkQW#N}hZ7YHWF0BJC zF{^Zwvu=f=`q;v&B1l+tBZMe`gQ^3MKJ8wiHf5woCDwhCd@*Pa&s!kWK_n4hKY5iD z6MWGTYG3ofD=dTJ^$@b*AZYImsk=aEX~c#e5C*=CB1)hYYY2l^23`l|`40IQ)g6NU zU>O=`MN8#I84xhU8dx>WznncQ!4Dj7dn@q3gDr8Z{tI-<>RMTM$%d8M+|UwIPPI zTP&fuqg4%hP>D}dM~I`R&8U^Gj4g!XRE?^bEB9e-Z4l3zS)@wG-bo;gBDe=~Jq&e+ zL9{Z6t}*>h4xOsDC&OOtq;!&2d^l9UXXg%QLytLU6Wy9B}jN31`T5<0flh7c$_ zXo#<$D)kH&oNuE-6{n>-ItneMyQsu%`Op9^mmnwuS7kTd>7Y)LFlY6P|p_cZnK3a<0$yW%50?ilse8`qqEgv))8&58iu}mT02dI zta%XV38hlIj5Ea9K`~I8uy>dxooCru5~4$@jy!r0?F;Js!&YnvFr`f>lV3lLB(wuU zs0Bxs>JqZBYBkl(iC@o!@a)mOPA8$v9F({5|C%XQZW;i>H3(66tRri3TnMVsi-?h zD8DNQt#iOHOE4WvdjZKHhu&{%x)uA5{NT^2?%dw0-%}w)Pne+S4t0Af(s>&$iHE1S zB`R@@(9v6V=>rYl25aeQ8Esw8aCE1L6a)J?D-z#flC%rG7*NjET*e%I@T6yTF08{O zkyXC!dd!>d)QpjSaG0%=yu;a$=FM!zGR`KxmR|r*&TGyNCu2KlJn09-WVj_k4dF6d zcz?Bgal@FB++kETj|yE#qvWi8Q}i{~Y$%W93A>7kF1g^o*~nnw(Cux0f@AOogpu<) zs0&P@4yr;KRGUSCWzaYw=#ICI654sc4zIhb*+cMv%aKy zwo-X@UNg%3L+;+&EssKWywJ`C-suB$r=^h*TbGZ?L~70*E}a>~Y)igMy&ARGpV{hg zb}$S-2Zm*5tB?p~){}}yc*FD|KW58r-dBWz7A~psC|60G^bb1w1YV$qp#4^rokLv4 zTwta?g`iYMPB^FR{oGiT2aQc$~ zPm|w4u9QRKD6)z19+G)FG9F7B=83EBbjkOBqHu`YM%D#r3tSc$`JhQ{s=k8(HQ59& zU}VPEr{Mxdtr%G99?4L`{+9Q3Kp2>&5^9BIP!-Ccnuwi-TvEy!-a*0Bpr2F27}2T^ zeXLpA#qB+Hsw#Y0qnc}pvXnRpO%^?etzUEHOeX9qeAXC}WR*zO)OcK6xpFNt`m z!}<(yELx^X(2$54z~!RUL7`o9aXd;?rmG3vh2HOQ)RgFLe3uW_6UpO&NZ4-j+fXG! zK!xIr!L;&)A0Qza24VHUW3iM!C1w2pdMpcDHE9E#(4-bM`H16u9mO32DOspFlV1sh zo+A5{6I~P#?%UU=0~Ks+(OiR_Hz#>0oTRSXcm9Ej8p`w7EK>bJmw}l?Z`b`T^#N-t zs`NrAgw0ZD-L=EmNb!@M3K*~&?L|pSKlXr)pB)#`HQe=8J* zg^x#y+@)MN^W`X?hHy9D=)pmH=P8^f_vl00F}M?dfPOONI5?}vWAp{mY6-PhzD=c$ zzfY%$t^@s)#Y=KKMz5G>r@&;`zTD;6`Jh&r+k&9rJ3`O=qZ#wFvOeO`LdZcY40eZL z+SZ}a@B&73C{nzGlXS3})Mi$w4ue2vUQSa}33PxlZY2mXnC8R<4)fir6B>1J8d5G$ z2h6uY9CI+JRtB+;`RVX@lD71-7jwRhh%uekpA94KX)l%gBL`E|9cHEYtT~vL z%LPI(?F^xwFz^^N&!T)+W7g#)>)EN3)U^}d1A_H&g;0}#S9Q9SG3vjJhKIV@M12*pB6*D^xGoM zm0x%LxxE-E($MV!7?liz5)OY5Iz&&S8W~+!ZGy1$!;WX&%2YY-@PKUrJ;TjjE3ej^ zyQF^f(9BYv*O{$UXM=A;&rW~Mg|F7yuKORoaYIe7x1Fucy*1t9YwsoO_Pp-2sOVOu zTj$pl27g3kR;`BK2CPs9g#$mA_I{G%R)|yKVA&XD;nZ2>K{(neD)bY^e0;VG`3_4% z2-zEbPw<)T>=Jf|^{mIk5P!pURxi;N%51cg&MswZC44ddVAWxZZq)lQt5jYRycq3$ zU*Gk#5)sE`N`4HxA;N9sRz?-OOE}{K^KjP>`K0e3%|9m{kFkHrcZA)cZWbNmX7co6 zb2g%&Crmu%wpSfPPW2#ekc6HT!jxDJprOBh<|%oe!~(a_vIrrjx%6l4LU))XPKrlD z@3iy#apoNLYj8h@Gt|5HeTVt0JIjCo-|p#lYuQ@(U;-C!N7l(%NUx($@|eY7))EsFvoj9B74A`Sr`84)V*f zRvyRfMSelm1uU!r`6gl42%E-UEl>5tRZ~mfh7wc(i$V!HsMM5x(cD(LZWp3&S=6t8 ztKcVykVOTAN*Ca^A}fuYYD5zeY{ftwnjs-D@uFxnlZZC(NlA^MQsT$ESb5^&c z<-8}o;Pr7fxD?f6<7wvt%s0&Wf(@}oVh}A zo=TWKWr*GVyr11NvBAhlx~>N zt;`x>JsEqoBx^dl)q7IKUF0x|BMkksK4m3g{m_S)QQ9ily%P%K4HEo#z)>AbE1=TH zAa4(9A%H=X6UtKufe^7K%mo7X&5)ACS);?-584n!_c!VsxL$xou8nHA8CZe@qux}0!bh$WJD9+808d8C@O;v>(Ns&k%PzDfxv4SI3xI;K{ZFj*YrqfCM>zOwTQ+6swbg4%CxgKu|Y)@-I>=(%L z3x&d58oTzuF)=^D;Xo_LMTY~g(BCvL33*j|gGH$o2SCHsz#KZJD)I~{`=8F*6rAq-y2bZHwkksAixJxq9QS^=Ql8rc44Rv!ARI?4RKpi!YTnuu)!`59PJC= z{AAeV7c|HgqChJa(xs2`s-bF{fWpH{{V!u@v)m|;h2bmei;~-?9a$h!aO|4+Zf4nw zS*6m8ne1|7!}&kL>8Yvj>*#%6{UCz?AwW>7uXpuff;kk3{Iy)lw9E$GMvnh24qdF! zvEHjhpALA))J1Nr=iLyR-fpe5r8{wN$;o5rW~iyVs_jt**|IK}sg=nP_=3mi>pj$} zg~{g{QNSMj>(CHd?FgOvs2ry=CKZf2%X+Ad|L*o$H_HK?; z=e5YKnGa-WIy}R`{l8GqR!G#7M$!8|+`c~a6G&v$pS~Vnr(3^Rcqx;~g(H`#NI)Cd z)Kyep+R944fze#vI%_STE)s4ljZa7iBXr5YKRb|?cQATs*{B3(`cwDO|Jxi&6JAT_ zrxQu*-@OnC|K%}v{`*+gd6DTW6~2+;I?T{EUYfp@GulLE`d`>+ABo$ z(o`)W3Yw&r>Y8$yt{0a}q)1D1*Q;fP()rD$nbz9n<=EnCX)f1D5W6{+Z7aPrl}l%V z@|QoU6Z-32QC0Wp6jjUlxlMl)TS?kXf3(vpg1RhaCeg9k6A?F%7ZNgGD-XqzE zTQl^8r~PzL^N)PjXR@-z&zi5+R(ukC=*HCrb=4n$M}~HEYyyU(+nV=B&QdW8fZxd=YK5+2tEdAMA%d@9NZ?M8etGGI*+ z)To0jYqPMp)5>IW>8fT63!0ieSuf3$ide8Eze!>{Y~M@8%Hj6VfDS}^q)d6}Uq;Cu zX83v+l9xn9^RcZ`H_%yEcu*@7VaMAH^xFLdXgtHum(pu1WUOrK-Ss;iIy9h%p#8%P zM`!8DqxSU1i`%bf^*V-kIda~yoIq}H{@$JpsQBzPw^AE_wk)Sjj&;BlMkCV4gI@00 zK!qT;E{!qg8cI*HfoQt9DB-o@X?OE&US+;{x+O@v0{;cN2E}FVltv6_Dx4vr>cwS? z6kWyS)(R>->t^C{2bXdx3cw7iU$`+o3LbfB&(2z&Jj+-6ueI>Ymv-@?5%Jz3nv*96 zF>_wdFstSpR@(y|^%LethW6}uDufB{G9%)%!@Kd(+`>}l$7?M=z20(nL_TZxjkOjx zfA8(anS1VC4@W&~OBwqyHW~!{1`5 z6Y{s1V?EMGRJL*`5ZcJc*c0@l1vok@9Qasi98tegH+tKFADv4*^B>&+=U6)3Rj4E; z`FkfWN$Z&?43Tdyh2M?Z7o)r{)uQB3qQHk8*DX{**V-O?bW(o}M8)pmv;e5EUC7R%I&2}+%{r{GElTs@T>8H1=NB}Aizp?+>R+yTQ`;q@m3 z(u3cduZ7o@=G$G+;Zd?&HV3@|ahCPJp30r4)n(uV)G7`2$&hVHPofkI6|TPVXsB0C zL0ZXGzD&q+hVGw;F~haxUM$eX^2uD4t;Lo96!}{%rEDX8N=GI2AVtngXQA0vE!5MZ z{58Ba4J4a97Gp}wkoK#xm!`^NC4E$(@mV)({jvDw4QaIwU_i)g3F$SnzMex1Rgz0} z4QeGpFOi2=a?n~rV=keGDlK$gP5;_09vyL^2dQmsZa7 z4FOJJn^yI|ZJX0~Tz`H2XXT3-F@BdDF0+0#L9J6cagtrq)4a{>ebHC_%0o7AL@Fl? zZjym?T>ZH`Ib))wC9nvX=m%~}zsi;0SX89FMwABEVj_y}#mZeR)}o@$G>)8PX#?)vaQnn!QLjIV!DtM;mFtq}J&D~i67-vL)prX9(o zeL*p>x_%FJDp~h{%E#E?7Lw}o`wE)|&{z9&b^cHPP+Y=>Qq=k z<3MzmVAB9;RH!Q4zy9odhDANT{!C}qzhK)_vAmRtc0Zc&nfawi@(B<{REg+s{JnhE z+oMc8YaNq(4^CqCOBfa$GxHy48UV7m0tYWLwkEo6JS4*hZ)&(?)>0*Gw~fUf-8IHo zvNt%_X6gzZ9C|f{VbVb=8}sDpT<0Y{pW?A;+I(6d@`$D zOA@++EVs+wt=tQ;LYScQy&d5E8GOC!D#B=w;E*L}Jy3kn4xNnl`y7Le0nl0&IJF;G}CAS*is zG)P%nrStVgA79)ef<~Wp&L7OKdST6Q*;D?f)6O^4gNI=0F`s4q);yKJ*!^3d#+v>X z@qHHWA?K();+T5;iLdpAW|@dI_Ka6sk|+1JW%8ZoHuZ(eRQRfGtKZvErDM$ZE`}{r z@gwB?|H1)a9*DK=u8Wmk{rLscY3Z^J!{kRobSA=ZzdkRQuaD$h!C~~Zet|0-m?{}g z%Nj7#UR35>?ojBV#GGfQaUg93VccQhHh`2J+{VOn225}n(yfp{TR;%Bfe(psps}*r^9=$VxsA#H zGe9iZa%tfHP&HMLUR6nVOCZL{0wBn{@xeGy6`~WPsu#eTWDDKFz%tD$EQ6=+;HtU+ zRp`P~?Nu=ur9P7BYy6?RbsQzOGMRH;ri;$_FgowXcO81k1nt0Gc&*!E9n#~slkb51 zVL4Wpwfw5BWL+6vmi4TQ4`@tP{_=dcHp}SIL3SFffY6f`-)`Co)ZwQ#{@Nkh5#An| z)i%!G75Om%jecyDMNEVZx@p=2L|Q1PN`d7yPNS2|E693=%azt(YL;`|JA~BoM>;_t z4M5==7L1XHFmm*J)}?1^0(%A*#Z@mB9qne0vi)I|ptU5($?lrHzb&&=P>`P8xBzN1 zeO)@bI2D)l>kRl_V8CWlzTkN(eKdFwn5|XbPJsqpxXL3e32wc?v}tA5rR%$Kj5=L9 zFCfsHH}%7sJw-FJZo6z*_ab{z5$h~6(C+n1UrjZ`qx2d#poQMoYk;+;AZQ21kuS&W zUih*;^j^90eZR;#iKUxmm#Yh1JN)u^C}>Gz&5$(=P_2g$&K*XhK_3`1@kuhUkCj*< z6OILY7cLCV9)|Te!&zZu9C4`p3*Z1S4=CF+xCUj}LSG?iIyE?T$WXJU^G0A^CPLON z0hb;0nJMQ%sdgCK26JYtBeek$1{@cAPmy0AKM*$LC&j;a;V*Xo-tW+IgwIoUw0st> zh>-E`k;{M3=+?7bnuZMj0=RRcnxpu59N23>6cU%UL9*?G z4w2otx^SyQlC#Si3QW>+Tz*EW2%*j)Q~c~QRSwh7wJkq1>1<=t~#rA`48kFtf#tFJ>7ZB=vhAF5f zd4d6YqPFI^d7ut0QHs)zd>|%$&$Vbt4hwE0V1hOjkSn2s!htI!80$3WGP}!MT*^J< z-5@l&;?ua3^k9N|*3kY+w#+zQ2V&M^)Ex%;`W^Jy^J+-7lBVheTasIpKrL|{00*)< zhY|G-3rGIb4(ywlI;qnL59kjQ(y@E?xw+b`3XrWFyK?4lkAVuVIB9V@92KE}- z8fX|FS+@)w{uiPF?=%6lUK~;$x%LiPAvC)DY>>ecA&R)b2Gm^<(4;SPks7M2L<_5n zW~zfr3`zT$>yJ=k@R^UilZz~AC1?mPYN*~q zqsuU356S12;bbBQN|VW5!Br|`1D9wb*0t_7p*>9%@o}a-NhII4Qf<4vN7_MulgI9p zJV655T8=YpSwnZ))7hGc*kARbeZFv|#fDQwHV#Cq(?E-xH2@S5by_8@fF|$I1X1iN zIDtHI6Obc1B-q0NRtS`Jt~?=R37DxS-2=4S8+eBVyBKNBvC%rhz!B*=jJRX4>4I(j z+Pd6me^JpzAy_y|Xi21g{G!WxFQTDIXauOLOW2{Au^(n+2qUl#@KO<`A2XlwsKK7) zy;(`aE$Hh*pw&W=y)@wo&;`^sP=}T&Ap1Fsw6~yKKuWfP%S(Bj`6E|ndF%K4h^=U; zJpIy-^2(!u;XD~9pdW49I{aVDD)V>bq&*Sue}PGMXo*%xfJr}Wd31>w3TjJ$p)WZ- z?G+BR^9TKs)9j8Z361t&-byR#A*_3%Ho%^wxU>I7F&Tpdrh!`~lGF8d#m~;BpUY1{k0%tFvC99l4Lj z(3IjTE*l+MHlk-5&I%*rh<8ZoKa#9jw+tNy!~|DJV5vSQd)(EH7r?Bc4TPAnr`RiG z3Y!Mx9cbe@bx1PV)g|vYL0^An2ZWY%@@XvxV_AUCUixdT%9cANLK? z77_-a^Br9B9vb=tBlV0>N5TQyNXNVlaAa+tVKkUVqaVv$;lSGH!@;A|2f|Ea1&)i~ zWzWfvwHfPjtcmTh!F@!`=+}Q?9IIn5RkpPxo4)A!DwDQ^NALc~>oz)DOT=wi*MN^C zPtX&c{b(CjhY@Qg*(ZV#+K5B!ShkOT1m7Xkt`2w_<3E@z8OL{%-UPp*wEEN5VEO4~@3sHn7ePf+1pc6xG?zJRePAgJn#qDD-o(+Q zd%SGWA5mX_MEvBJGgYxvYv0#*Sq+;swws2 zGbB`0TA|5}9Gpt4BIr$mu9BXjwj)Kblr`6Bs{3y_kF@02_pJL{72N;93R{9bY6a$A zUbTeI&(x`YgXyj{<>zk8mUZbtHKeW(dEHv!bzOeKCVLSZ+XH5rlMbDv1sbj_oYHRS z9&AZM);+*_U4a-R$0XMiB)l;S6f58YL0b zqq4Azu)KV&Bcf{nO~eWsdQvUy4#J;JgA=&ussKgwX5k4!b(4{-!DLbvtgl3nWQOy} z!!AO9cJ&oe=a8~w(7&43mhC-eAB=fG=RkY5bZ1)p6(q29`wEcI3V@Df<$30m?TZ0H zSp#As-PeL(M6FI38%(1i-S%)k7=CW@84Ct`d`qDJf_CR*0ni8R(3pi{&FGWiBWl6f z@H$ob3)_Rv2PfzQ>or{Fmpu?~??bdufTAxePnB?>r5(8(Qy72!ws(vIR~U#Y@B9i1 zEnN$Fb>u@lC+HbrfHsn~w{RMa1`5e+^dW!1ejW3P2wOJOG@+P%I=C&Df(vGwzb&Ve zLWc`yf37H7ABlO`F_@250rvfZZ1p-ImNEM4T@fxK_?63${A9V{N>fixb9vAM;%>P( zmF{|JA!QDaz@-O7Ztge+V5HeZZqQUbV5JlNy!d`qnfd7+YAWA((Nsp?Tt3XPq)E+O zc;Dq=pN<=#479WXQENv}HNiH+hOkQCfbDosk&$Cq(d@?Zl%^fuek~WB^mF9Baj_+@ zLeS$e+(EWu*|U9uo?<-WBbiIiyOk+Xv;}%JD&BA!9baYH`|LXQ@GqJ);fMToL-*ZS zx=A!aE!VXql^Kv=%Np81J!o=>;knGb0nDLW&Z_yTOVczOY?^))>0YV^rMW2RvX#ko z_avv%S!pPLu0?}tp%rwM32;U8RTs;yWiL$vOD=ysM}rMk?*1^+6wAH3ycd&lKnaaf z>ZU>IA|5gwtwJx&R8@gR#lu7-=Z0i?=%&`4FWeYC8KrWuw2(BpqtoX4-NIJpwPfIR zWd_aWCWg;MQbUF+A?a_>f}ydbh+E6L4N*PC9hPphF$H6WdzAB1Fv)94&`V3S2S#mq z)Rv%^ObcS7uXlr9LN%Aw6>mMGsE9jDH%W7CnZ^<-nX}1T57)%q^Vpoe#!_3p?wo2! zgshtbhT_h7AZE~hdEh-_U-(GY0pJ1aEF#iJNIGm@_tNkfqpJWzaNdn z6}FKer*7r7A`QU}-i9=ibSh!e;F@+x!o#d#fGN}XOYSrbwQZ@S>WX&3&|B6g$b=5j z0PdcG?%e4)e`v)1dQBKD$p$%M$Tx=!RrB&fcY9?gtnEQFI$Qw5(($P<_%jA;@Plr0 z*8|IPXwqNmtMey!GPi*+Q!69((lTSfGH0FB;j(32PN$4x!agD$)`NNb8~)sClBH$n z3HBh-)|T_Fw}T^dZHGr)f&*U4ba1Sy;Vkpfz+^~2!=0Cs<+UV86%5~kK8bVtpgny@gU=N0ct*`)OG!&;S~sN*8=g zHT|zW59?Erq6DmTY$g)!|pA}zB#fEPeND&XI$tp@9I*&Zx;QcLUEWu#`rmc1g6 zLh+_M@df(NT2yToN@1;34sP4yOjBVatTR8}Z0<%6jlaQV1#+g^aVxB77hz$D8q)d^ z#f8iqFCU^I^;&;6{$lbr(gu?lwBA(smf_DNxhSD3?FfNc77RF~T6#dFI+Y|N#ZU)2 ziJHE(oa|8|)vr3uKVHkaZ;Kj*R#r`B9%8+>)K%gaFN^=ITG%27+K@GA-YEiG(&}#- zXwm80ZVe>KZPS1jFKRJyhjoMgCR=_({=zI40cqc+dlg0JZ4*-M?NKDy9T({8*0~J3 zQTl%84?|vhO@N$;nzFp`=Wh>x+(Ck`-xPdtkDdBXO#@)wqb=+b{^?TIzJM#Tq+V^Q zB>CXxVreedLh@IcG*~(dxYAzciU!MxYV zIIQOAZ}gT6$1YR3T3FE3T1?fMC*bfH+Rft`q>tBfrtRg5=RyzcA$e&lY*=oqT#Q$C z>h^1|S4bpDH(KSW`$5AS6YbC?5vpEwE1v1#b4KXIHrL^YeTbj+zj;%h=xL9tci1~S z0!gkwK+~gLzWz{mo$!1D4Z4J1AL5JMp>eop(6DQW9Liv&TAPM)(}(G$b_7J0`*JP3 zQaP%7HHFYZ&L;0*iZ5S7uQ?(~%xRXFG9P*26ceq9Ud~uXI*-^gO5@6SDm@&T95%Rp z$<_17Fd7JR7^f5&ith6T(K#*%L&`=9fE@SPQ>2U)WP%Z2;4vCw75Gi#o)@+aFvi)` zW|8|34%L1P(4h^CFc19j-$KoDuNc+O`LWebCksh#HS{tZOBWl0*>Ou;QfhY=fK<`ptwhCAd^Th=GYB+Cy5%+$tW`dHF>$crQQ zq%rg*mr47I19!&*^UvF327s1vOo;)oWeulO#{F-qNRip_`~EEHv-|dqRlKz9()C^a zi@)GsBEqgR)m0caD_R(GlgN(eqxlim3>Pe|_!lk0?+9Biu}k-c-+K->eV2zHl#Pf7 zP$6>9FHD*~_&;Iz-O#*jq{oD2`EFFWb~Xd`pC(RohM zk5=p@;lY#9zDxF8m^brmuJGi1Qy4xOheYv4#Ix7GF~7~;p*@@UY~A5G^JjauV!ezu z;IrAE^5<5?6a0*uZ0V1JB@CXDBVN}&x)`1nOpOOH>l0)ephL@uFlFT7(u0GHx@KL2 zs*h^IjSkJUi}12U6L*+AJN-1Um_NhExJ(|sW5l9=uxYs1XHNqU4 zwy@I!LZ=$qn`6P=*4@g>^*ToBZw;yoRQ2`S)t?p$!kt~I=Lx0P@47?yR$hr8K&C&_?Z+WqLzoC_Z_m1dXhnAs zcltg(4aF(~e@^}ihV^7p1Lr7$j^`>PUx(%zO*I#hTh5aX;m@CSCKaxOv!6qDZ*;2x^ICpI-$pD0w zaW}@;*)g&qsMJ$xXvlyWBDdGvA3hC~jS{>)mS1>>)vWEbOgMlJi-ti%m~Ol-)6boZy$y=ZYF*6eWX+Aqp_7K8}D_X zX0%qUG61Izzk#8eKO@-{_LPl38L6y;_Lo@gGG_1eC{1or*C(gB18t?NjU)RCp~18t z`em&8umQS=E2pX0=Uv0BvMs|%I!U{Q9E_RT0A-9jl>_#H$Aaxax#0Cs!G;F|6P(Hb zJ=2(NTx>7xuY^hS?dd?fvk^Ql#V4{1ma>B}QTmqd_ip>v#%I?rA|mEj$?)}0x^p`^ z*D`X>U6bC`Bl8TGWqa&u`__zAH2Se-Mt^C4u?zks;;$urzu;km!W{rk8q2dqN5_L1NA7U0<;i+Zozdkwt>rcH9c!mDP-}Rw~^y!Q?%Ny?&cYYX0*H%RCxU(;JpYuL&MS;VxJDP7lDW0TtsLA^{l0 zhfZUg_=FJ1-hN=?vJVvOyBjjlZRFxgx&T2v>D7}(r-`31 zaRKPkT0S?1ygg>0aFPXD!ZEZuM;WS~JD$npdO z^hCV#1wz(sfD;_B58PnNJP$A?_Je8|fCKhn*$1MNMc@jd$E9Ebgdxwkc-oXfe#i^# zBTMcuj`_#>TEhrD=Esqa(RUd5vyEic2?uaw8!if`9g7@SD({e9&De-jO~#-bT`G@X zjDL#GUwqG*DRS8)8-DA*CpT{OqAPIam%-&5LBlz!zp40s9J3!00LM9A=2SU(T^U9J2cX-mqjZu@|u*}*F?@KRJmNn~B=@~IWOZuVj ziiWWuW~2uc+rjAN$#_aq4~7-{01r-6 zK|_S~F4^sn8GzbD)8Gm!^qg-AxZvYrp69}ewrd}sLf`!JUlT3$ty-O$h-&jrb(o9;YO;-0?zT=}6x9|kh z6IDk#ioVeY<`LDS_nMQ$l7SvP2>g0Ccqu$uL*cXOC07?Kn3SG#Gi>thaKjlcZ>Hrl z957{m8vyD7&(?IqY6qSV+>Z>$9DcIP<_bsSISn59DM=eJcFk~}4LlgfpB$a7aQf4d zRyZ2ZmBXWTEap(iQxQ1Q(-O7=LO&GW`7zK__;h)bHMD^cGxj?UdkoN_1tN|V`X065 zyLSc;+IutTN{Clu9RIb(lt^L4@gg|q*$)pHdrcsd%w$BzKa+g4DGWpyU`}LPJFo|T zPQFyWaGikTwhbh3?51c`LByvx5BYn7E&?_1_$tAjO7E&;KNN!=*#MIrFiC{TiN7=H z^a7YQw1MVKHNZZV6Wn1ygpua|fxH=lZRG}kj0D{|FEz~S5_2u7AK($8pd~#goy(zd zlAxNhY!F%-QDFSGFg}x^p9gZs4+4?iiDN>;yn?f>BHPD_IHznhtuS`buxbDrYNg}{ zglgZ)Ib=8K8x2o;KgDMHuI{YhGI>+zua5v^1s4rqQe)BpENoygAvPD#TYy`9Jw73j`1suhL1LeH6QR;r$Z5TNt7KN`Li9l!_n%au{}UX?XzVa z%P@CwO_OkqaksNw(~su+vs1iSIa`N@HWFawD-0wTgkkhCceIaSo)l^-G1Q+U;mN4a zPJ6aG{NHB#i@n0L`<;i+mhW5HZO;ziv)5pHGQX|jHx-Pt)aZU&pZ?@LrMW!U#rKzN zep9{Y${nlb`_8i&nZx@&J3d?YvC^>v9xcFUGuCu=`?ub{D!#MF%KN_jdpp|E?*ATR z&!zl5K5yIS_`a*Z$1d&faclV>asRVUTlpW6f2*t93Ghhi1_gY5j6^xzaZy7xmweU@ zN*fKqPlwTW{O^hHr>H(3`x}w2}xtpe9UtGaHW^CC?BhiR21PN zn|eA8fRXBm?SO!T5hIjg;eZzyqkRPjM+wofb0_!e^5wt3?gJTh)x^s_>HVI&&Xd4% zt%=?=*hlr3E*d4UJic}BGKylc7B&}vn(DU~G4Y{45oTQnXqh@>)ZZNZ_2J|n%Ff2y zNN~V|h^p*+w1G8bGF#|t z)Glrr2X#n{Lo6*nv_^POTd`Vb@igz0TwA#D0EBHMdV8{s))V*481MoKYLdBtq~n%t zcHRyMN3KuC={Ze%a@OZW-dwYZ&(3$r?(pQbCj;=wYR~!N)DUJgfbftJ)koH+F)EWyVHMm4kgUOg1FkTjH2pAo2K+00Q~e1pjNVLi z48io*?m-gg5rK!52en_BH8}c+;C9{2jLB0Kw`UNlmP1C2$U?BdAsB*Wk znxN;PWLd%Xn7Vn}*M~~#Jo9s9#ygy|-ctv@PncmZR`JgB>{uiX)mqB>z{O^L%~%dx znSbtk^3vAgAj32dxM*+!7u^&cpF~1aLAw*H=|_VJuqs*h$+@edmhP%1iJ@sYM`?v@ zf4Ciz4)IC$(2<6}Y3SO9RNbf{liRbdA!)a8Ldbd!EyECjIny0n@(DDw?Z&|v_+j#* z;^J1d5Spp(@=C{;j{#&o1?##BV}$`R;^(h_Pnh+obVWWBgoM!1Q1me)gMVQt=rsW% zjMM^alF8nn2gq42=rc%r>A`n!?PrgmHXsJY2FnHp`&yS-KOA}@m`~u+Y*H(<(A%>5 zdVYn?1)Y)&_GOzy1eLsdgzT+y&_anCaY=xaS;)Df}tC&QD_@*V?}G0wXC;VkWdC#x^LeRS1n z`<@J2!P$fMjg=GHWp2;_FjDO!w-Lu!*{;F$GGIUCUSUMqxKr8o5l)%lZ3jFR`P(U| z{YRN$t*ul+T1~7p`bH$v;nI_V4p>;O``>%*MFM^T97*qk{2H8!3VuFaHKlo!pZu36 zDc88iZK_lQk$g6mr1WQRdnXG^6V*BR7Z&+Ei_(Iqiq5;Z%NZOMl}%=GIE~=&)4=mI|H9 zG!^P3uwMIZq8>cK{tNcLB#)Lj>W~ogMg9V!h+ZZ1{1=R=(Zt}Aqz5y}AW3kqp%Gew zuTQ3WxxB#{Sxysl64TP!GKIoIn%{)0F45g3OIo7}FNG6vA|1R!j{ zf9b^LqO+3oo63EY(I}iiOA!t5NzJY-{QBhdTbX(l@v4C{mRZ$;sOsyTg*-qavR^=> zX()ZFA$!sYEkL>y%ypvK`p>mx!ZP537eXrKx>W zu@@j}x-1VYE+6XetpH(W_2g!&;IqJ|bv-E9_rr+ueidxhaT|N&;W}VYoVKEJ%|n_ zthdT@+E_FA#Xr`Bj9HCHz2K4WFo{zoxYGI&+0{aj@au!aD~|@L$kgry$T?x zYBF@|8o?!PF@Za^Tv5{F3#b>;BNhZr3G4b`K@C}`T->M34vF6#&mQ>LYPOx_Rak^WtW_PrmsJy z|9z!eiNae`MXgIEbqHC0(w+e#SDu_Uv@G;O|De&|((tyg*-BpzQ{KNQafHHY?V3Sj z1E1s9qDIHEMfz7B|9(PffMS6JJh9%jBWRLYesRL6T`soU4P2)cv|RX5hJ zd&gJpwe+{e@}0^=Csyb``Lq9Kc3D}9wx=xNOdHU|j|N{Kp*+dHiA43BxNG7Vb&X<| z>AYMNq`Q5a(0P3nIz7EB-}d#Raxdg$;)u`>#@BB(_~gGqO2XgZnC2*jp5@hKYVH5% zyJy9aAEQ$_S9do+gpp!zp_|B>N4~49`M9mQ;6W-U84wgiSg&x7^7+|am(&jsxR)l4 zO^|+!mA@BHe>^Je66~%zM$CLuQJ=1O-I-f6U z-y7vzsM8d6tMolFi$|EI%HIYIr$6@e!F5(G(=#6d8snZ!<~0hMt|b8qJchmKTJCx< zTKEVa4yI=@sp5Hssb_762|0RuoSW3(12B+0e(j#_g;%p64a$9I<=t}%a zmER1NyCuBq*uEgXUj1*e)x!NSid=N4%%#lbQnr1-)_8-gpk+Zz zrLn;qb@J^z8qnR!30@!8BU6JDWJ z)a#wf7AG&c%jg8Jx9x$^^63MJGI4UsLK`ub8XWs9?H-gN>(YhRa^_n%7Q438kDuwX z>0dG>m^(61OqjKCg8=9#*$(44mIVR|{k+8xF-16@II zt$S(4(m+E)cj9{|0UXiG<&BQ|Axq0JC8(_=>O(@Eoi7Y&re^SzXtdGUkR!Lj3p@@Q zn$QfJ%+ZR%ITv4b2ESGA-|!c=&06MVjdn$kHAv%p*z@AxF|V*Ckh(iR;#{%(+~(Ac zTH3OWvUCQz#(39=nZ5$S>J{r;H^0!&T$($1uwvP8Ia&JGg0<5Cn_`{I_Hfu9ZSkmu zzBM|PZoIbNa<0v)QMy?DvUoi7Gi(rGU-nj~;+{KeFU31? zp-USGGuWSvPMyZML)0p%deUbEx=9yw0d#jTa`|N z5^W=sYp&Y1v}HO+OW%-Yv(!lXMdf^i(gm$-ZT}$w10rp;B$w#eWP~9;3d+_Ms#)`i z=9lbra0=(^4^G(u1cxqjQicT#_-r7V8R# zv&@vmXfV3Y=vHdp}wYdF4LfH zW3A+lo5FH8xqJ6zDhH@cbf$FyJtVrkLP)*uA2 zrkE9JFf~@(=y)wZAAuZphff} zN#FS>qskAde4gZ;!PJ1pD^dlRGv*78Z0(PK`wjDjJi%14EtK zLcYr~3v{#)P$bR0cP%cLWYalF;KO?&NA@a(MZY$zy=5C!7oMj>NRLJcHJg0683pdm zSfx!*A2EnogVKLie$d(gVK%8Zz%P&eQHMAvbKk;6=`LTEhiduCWy*m(sj1TM=zmZ{ z_%QjB>?vy=OL7{=j`c-2m2Vb;i|VR{0yND}?Hb4t(Wou!GM`E}mblPzOb7Rjqr3C);Xg69=+b749Q3$P)#!gw34pQ4558_S`m>&Pzm zRvQSzPn3u1@hD@BKyrzOig}wXv&hP2FU~o;d9l!UF-|H~HvRpr3mPFnfDp9hoS+7G z2=+bR4sefOH`y{Gy74Ow`B)3nogUQ-wFw3A6|l|0j}PUB7zB)!4!}^IH7;sqX-deq zV^q+2U9e_#sm3IB6I*Yo%kP)>4h)KW3~4x&Aj*;h{AdtZPXV&mk4J=1+O$TQ@a*92 zI=FZ^Qb?aM&U`3Pli4D06eDQ#R>fr(i>VmQ1}H$i6eX_Y`3z*af({ca_S z%oc{o^m9^+sb(d*XK(mr!|?RM5_h}u4R$(}Fdj8nvyqlvdW0!Rog8mTyew^^1V91- z*@)VA*-&@-uc?rsJ}Iro@F=AD_w2;uKwTgX=sQ|`PcfL zP$I>E=s3n+PJ(RcABt+)tbkCA+!H~q8}o|*A@VJ_LJ83!7y~z$OdLw_@gab8JMCYQ zYEgyU0uR{`o#j1&kbf>CLx`xA&|@~2#5WJQ-IXzWe-$EpX`z{#M$a7vF(!ZO?bfw* zeBF=#DoA^rlLmW-Bcj!sElli|2ny79=}oIHwgg@GCC$>skTHz3F8dVP zt4@tFIy5}w5UeAPLZy@HgVerd=uiIat~zuI8kGwT`&Go`;4UhnV>R9+=HEOsjqumo zl|CH8F?{~<;K!#3)Y(VxNwu1+wi<9lQr^H@`p(m&X zuE?}3>*Rn?f}M2tn`nquE=)5mv!Gna1}-CO7ed#Y-e{84pyF6l;N!3GQ{9K!Bi3f< zO(I0blPse;1<~uNXI)S7R|)yah_Xz@YKMVn&><|O6}b7C&1X9Wl6L7r9e9OhWIHgBakM*C)xM| z($CH+4j#Oc@VDRBewDHD|KV@*e*`Qr{YMC%{OPRbCz;L#!gS76e{m#Op5#+{yHp%K zak&xRDD1zxsUx8|za4VN*3SyglFx&qqcnX%^z1t*i*w5pjVGQ*MQc6l&1#u%O}{lf zD>%!`H(gH->usD}`dgALuWBx-DkT&sYD~`_W$v+KBt++$N^lmGP&ytuR3^D7Q>4jBxH1{)ah@e?dSdcmPS za$u2I>GrNB6$Sduj8#g=_X*8~5{=rDIc9}OhhiR|WTk^jfvzNc;dai53!Q=)_upW$ zIV1TycHh0_Ut9^lIeVJK7cS8>fI^7g3f%>56n{~f%~pp9s{>gH<%XEDg?ng}kS8KF zELKJyWocL=eNRS_d!#30!mH{M#i(Za_LhhNeLc38Sck^g)1+Xf3rodNtOlN=JS;Wt z$p{6!IqdctYBYe+Tj+tT8?1=nYb)95?<&gDX!We!|8LdXgFZ$kpl#~PJ?O=c4YT~ZB^ z2E<@YLsC7Khr|$R8QGsKm=g(j9k+Dl`yk9_O(X?2?`bldijf=xLM03?V*)zYm};Hs z{+3xE)uJ<6@VJ;F&QCQ3-d4iQi<BlnqpY|f7#+^wj|=nCxbyS|g^x`LCfr-IyVep|oeg_L?qd{0sOa?gFwPb4 zK%96Oq-?bi+~PuSi51;FRC`H5)vzQqbl;XHLR(G>$T9P4s`pe3G0l$DG);_*3^5pu z2N&D>+;4n=E%)7Yv_dc)%uJ$E%?g+lc7u%}^MY4Y*@3!bm(^42RQpBp{?hyAq3%oz;UIxGW>_>^SUJkZR8!UG|-8k|FOKm z)ogPQ!tBU!-`mt?M+C;w=<-vrW_8VC5fpq)r6CGznq1EK${%JgU{nID0nH|1eAOJ& z8=WMA(oD>+fT7a{jJJ19L^m1?szc50T8rc3Pi4<$zR=coq!=z}HxKb4NS%-%C?Kld zY?dq4cn5_xD?~N5rRc?ZUteCJYWt@lj?`Wh8=_Es$ud+;<#j!H7O~f?fMBo|roUyW zxqQ?t)--B@uPs{_V$^vM{H!MQuW97hge-sDq)-d}>)9#Yd|H`B@8F^H}LS}vLkCNV0Tyuu@ux%9+gjE|4s+hl{a^waN3Jg|4LAooQTHvxCu6=Ijbv7Ah(dacM^q~fjieg= zjXdEl)3SuPL$IU`0io=MG<#M$Jq5Fr>AP{MzU*h=UWRpc3u6bS9snI^A38C>gfrhE3GHVygF z&ECPNW+Q~zaNKKt7M?3P&7(w2Ch26X++P#s;E2@inj%C^#dP&FXuu`5&*VdK;YR|= z?Rd2Q`06-d5=M&6CqHWs=&1szdc*b6IJ9cKN> z#aZ@ra(tGvtm(-icfCf>a}LPzYeL?`OuWh$Wxa=H*Dvdo479y(^SBqLgF zaKzX=2GvU7CDlQtk#jABEUgc!k1>}t4a%OUh3@GjaZq_+^XvCNLyRTSB!*gDpo zpfNK4X(-Pdr+3qP&5nC21JBNnFY)shV49MetJ-X~I3zTzsW=YQ(^KMNmg>$pRVOr} z7Ot3YMkQIA$aywnMb`C*5agII$DXjB!{Y`WtPtjE7eq# zx+Tz4v_D`KoabcT#VpOC2&0hx7gY1%K%;m zfF15rLnB_n-s-LSowI$>5hVNi3bi?*!F$_ZK@Ke8Y4acuMinu?OHIck`X{LCur>pipcPI*5dBi89VQ#2UE@q=l)w!LP-NsViSqNK%%yE!4Ku0pkWU_=Pz=aA5+lvcL$O^wiS zQkhkK*Vk|^P}Nbup%cj$&eW&IqFf9r6r~mbXgE8#uY-a)_>#vtyqm9lqte3!_^jcZ zBY*cq?xXX-XRo!Dv-e+;w}0^fe)E0vba?jIRqeAkRysNl{O-l?uBbU`tU^bqZjFWh zEHi#J3I%Ew%Lie`Da~TD8g*+-y4;ZKCX)v*BPSEyK@4em{F*FL*O#^Oe!#P5esa|B zp8V{vl7$PurP@>Z=BZB}uaI8Sj-dt&!sIY3@VD$}Iclkb(AGH~9b9YFXA%FF$o}2s z{)TYe1{&2mxxTLvv(1hO!H?W-^Ud`}k`H9Ms5~+q&m!_5w!TiIULU9W@iA z-&$dNG^o4;0efYU#N1OxhVdJS?9eK&>mQA?czp0{1l%54l~TUt7szb!U3bm}fv(Gg zdSbTE4v66A*E}<$=?+ehAB^I#Hnw9|k;T+y$@gsx`{PsjsCXrP=OC+E$Tqq=_j`tcxyY=S{kYWZ zFs0evmdLnq>1AY)Stv$#Q1To0s%0K<7Fm`rOM7b_MeJ3*^c$JpiNKs64n;!wrAWia zCla<>Lj`_72Ex1(D}I<|pN?uNN24uuTKSFsp=YFyKp~L}WU~|81Xqsh z-~2EURKXI9;a$@34ogGV4^Pu5!82{8%wZNvq!O=DG=$`-dZ8V#|OP)e9S}?_So<|CzvY8AxMf%z_@fT4 zsC*)hvTYVXZ7*nnDFhmRIJ_)*KTh!xLbIXo{HBDvDqLlRrg(Uu;aZC+vo#yF*$BaL zOk$`@K(R#%D`~{pxENYMJ;FRb=wDh0)i*6Qpp%mlcm8V5fYlk97Fo6;R-KnLuL!mk zM~6n>TbeL%+;(r(a*E@gv7~96ZD!ND$-slw>j1Gl1t$ZmPq*`P)+mW zXAuuyTYoM!4Vtb5zN+ZgBhQZk?;s-An|^w)f+p1-dQ(Xg#7~oOeS8YoFg#JXPH?|A zPqHGHn}Xl@xca^pUI4NwFp11ntcF@RM2ylTO4T?W#DA@H{#8bBTFtqr*^$RUsf^|^ z%2q>qwscy@cNp0E2NC$&?`e`R!9G3)zpZZBfjTX;U+@BCd3|lWQmX>Fn03#rwwf&t zfQH9b5Y#{m;u;k49A`Cv3KuY-pCvehktge5;L(uH1tzr;Ra0pEwWtA9pw%e0Do~4A zKqU*~ZiJF~==UmiFrZuoQSGJ$Gjm0;iyA7hkp7S~<=;wPcn)?Nt3J({1FqVEKZ!-N z{XN~;=5jQeOnJJxTaim{%P!aPta&IY1X7iRYBl(^c;L?|1zG-!~6k z|B{ae2q}E^Nk%b*Dx;{SOW=CHL%s&0ru*8Y&gVp{c>NIXDNJKmXKwqNdteXI2Isy z^p)&4&AfPnL{q?js^E`>T~Zw-T{x@0!^STwsuXjyIfLQ==t%pDiILG@1NYHM*LZPQ zU~-mV-WW<96ga59$PzN&{xqRs7pMZwtOisl>TnBaR6z4t-N|i7NnO7`es-B~SYy+i zV>)6%bD98yAh2O@hhT&$1g|K>=3#Up6y;yU_5_7*J&UBT8U&>Q^S~&KFuj51Bgcz+ zljQ}>R)MY#{&Mgve1l2g4rVh7wPMzDXp>nqczh@=>Ux7|YKs=7zH9#PvII35V@thX zz-(2Z#=yiaN1tH}G`E085ub8(j5OS?jaxP9;1oH`W-Zig#6dOgi0s#*mW$_)&JEqS zSutrZ5~5FUX~f%m>T@bdL&}O{l0xI}1Z&zX8t?pD&}-U7U|LYcTVB}q8N?iiN2h9l z28#ofK##XKL}zISebWQWa^>YBOHeb5ZB^`A)K&#btbmOXd2t6ZYZ0sQa00Ov#F)%# z)ZJ#Wx*mEAY4&R1Arm;x2GxCk3AC#iRT2?F%~fqtI~g^#tJ$hR>sOczG`2^2h2M@A zr?@N-R03zmRu$1K_t{UPLOE%xn0P{M@(xaGain4^PvBS`tv*A|#_j4#FCvqf}jjsg9rBnw-B4w8_!%BR06AGPue*7+ZH239aY9r-CRX7v`Sx9^R+ zdlzsg8f1YFHFAnmLFXHrSqI(s)koH`Yonu{6o%3fbRmDLpogvcLc^$Q$j7G%eg$=i zD_`ESD&62=6MX(4z4HQisT+E?YTS2eHixkwem`Fcow)Tn^D!V8GI#$iky?u61d6(0 zLdD8>J1N`o*5rpnrZu@LL4eL1Xbf$1H1M2Cqo}#@SkWNb(x}^U=RwR+j41`xH;50sZC&}~I=J_KRU-O0Ob=~O}V0D2^`dNasxRR-mS!P-Kg8-2)3%p6q zjw(M%Jn2@RWPwRM*F?urY>Ot~N9~4>&mg)%5()#ir2gX*4s@?oM1F&w1!<=9Dar9v zU2knc_>JCozUsSh?&ss3s18@?zvM_n7x1z8f-8bE)K0YcKz~{cuK3+{E{0L6veZ?(eoM0h7KnVmo#7v zruJ$gqMR@yppzbKLexQF@J~jbjdamCI>OAF{L$?C@e@S!m7cB#E`<6SN_me(9gm+{ zrSb(v%M4SOmz`Xp(6I>|E@{B(%#+1wyVwqP{OigClS0h=6GLVe@3Q1MtGE*(S?_dl zpc|2XfrESn#${%r_0BQV! zuh601R1|p8j=DPdh|pEYY!p9KA=Dsnq}CcD4_KiLYJ!`oB-6^NwA1mEyg)V27nNQ= zeoaqBjKfzAlS8=BsCy{yqb8*4L(z6|LC14fzlK;C82P3pC|xdtC$Iio@DuEFI|$R0FDfBCk=4@r$W7v2ljM>R#okhY*2nLu zCI%UNuZU(7I%b2Kf{G!g+0eItmZgZhEK@a`)c^RU;OT0*s#TrUB(aab#Bb|FbCh&7 zn-C3aHlhTIzA{W|Oy(_3<|>9<6NX+HI6!s6|1%(51di03Izh=3Dtgag8Z#{C9Wj89B764ldyW1#@Cx1LHE$?@!`2=AnP*XX2Yq|5_iw^rIrdMINRnrk)s$ zs4x=@fOlxnCijwC%#b+777AjE2ub49B7Y=xqiNI`W!x|3ZwhpZDp`pVng5+N+MTmo z<%tB;vBSd#BFop0EiIA#(O#ItyE~;}ye=5;(3r-AzL!M&fUW*uqphq!$FwF&MzG5D zy)K#7p9c1=1D*C<{2;uB;rZYy>k2!jdQI{cP(n-sIW%fx@(}PFQG}>SMI^vL9mPcV zmYdsy9&_Lj+w}F-6e3T9gd}m|sJXPI^bc*__7WUXEhKt(9tP(vy9*oi*!3fr(&m*X zZq7mSysZ^jukHHLzsjeCdw{F*xvHPC0>NhNL_xQ0fILB#mIst*nX_m@IMT$ZwD!uJO|13UqIlP=?`2 zUD0J0W2=(f6(r$2$MYQ8A>rMr!Mu{uX1&5)>GccoDS}o|FoP0ZqZt8d$*$K3?FvDd zMe(alaHn2hqWSJWPEw~T(eoM|rjBX$0ZwtnlDV7Ojk!ZOoqCmekvl-c>OJg)o7w(7^-{~E;o@_$6T;Yz;P+qAu@Fz3XS*H_Z7a5WZx&6`gWX!dJtCGAy(ot}ENPn%)vCH7)TJ9SueuXFC?gM_pb6U52)YPVcGT2NIeKbL5>X$9+yqnYZYBs=eT(S-wl?; zQ$UU<(3l0J@P(QQ3<<=^kQj<&t{~B7LL)xh3RYASuw(0zlLSD46BuNn1fx&}&0jRJ z0)sC`wvT*5{TTTTN-8<1Dz(h3iVdkZFsZI>v;5|U`YmmhMu+bD_%ih(b*;FyQB^hRnG<=)YzhR zm_Mdv1l+*W9+BGbF{s7If5Qx^Q%f(}F{Dhk3hlCB-H9@Zq^2l>i50MC_J{&2Y+OUu_lw#r1FRR2*5c7BI%7Xb&cU+l$m-LEE9W`hL7W?0 z=1{{BCNpNLSR>$@QQoa;sHpIl_4Fi@*4;6=xLkg z=qC7$`MXcaZw|V%c4+hRy}a^;9386xcludAynY^J_6%i+j@8#fpJAnoA!=>KpMnZ{ zLh+a89wG4qs^hcp@7tsO`paz_zS%YJalP(Sw<<1T3PXOz5ipgt9s9i0iS(ATliNfz z^?=j!)lqawu>yYFV2U$$*8gt;pU^#VFHUffd8f-hcT_d=!N{dAgG)NI9GwS@>LK1r z-U+L()Z2!o?iIS6=waT24C&1X_-5tbWUJv|`BBF`pHW6++9|If?x5*X2YsKgc-%%& z5iz}~3~6sfkvh)6L7w2~l<8pLF~eNa!LkD@-K{ClQTVY2=~9&N1BNGksz@0A6-oBvW3FFRq?o|cSWz4O466rscN`bdDH^cAre`yoQ5@L(z z8B&8=8J;;zjWvFTOB{%%k|Y2MR3Io5PtSAM{-)OtmfSFjEZR-aKetNTWaa4zG6R=9 zuk?eNh|1@|q@s}leZGsyF&kEJmm9it52XYiiAe<2e@FTnn&NJN#1|3>5W_YxOkpIZ zk~bdYss47`AX#PL53PlMrLM0ZdzDyOn`?ma;7EQNNSKJbFw zNNrZ9keIK5MlZ-JOKJl@ve+FD+wyCN&;%kDb-8C-8JQ*tpn8H)C_@sWokDQioQkwj zj4X3bS`=E=2MBB#X&IE0`c^=OAykd0z$EQ+6*Y_vKcy<>^DWF6YHU1%1nFF-t82JS z;7CiLf)*H3FL?!BODXXh=9S8E!Naq~babTKHplIl)<*4hra^rUl8>8atr#%#?BfW- zvt8n>O@A&U4@|mOv&&I_9J`TYC$MMUd7HIdA>mT_ph5aTkcsKWk7^K-VGW}(dWMx( zl`gergOCg<>*puHX_RhIQZZ5UjCsboB)%A+>AiOcwrCfi_Cr&Ym2Hz*iN07yssT)Q zQ1Gle0;mfVOd7!)pDB5%RIwFbUqTg*fE=ZYRcM!jzdOv3I<>86r=;@t5?IT#?asMZ zB`c#rh7OZ)=@8KvVRBxwWpa)ZK=fULYL(eClq_InWYDNa)CdZTCY6iAB*5RG@Rv}L zIIkR0v)C&6Iv5o6Y#bgSky>#(jyu6i;2JwsG)Y>5tf(3*fDu(JWjYj_s37>23z`%P`X5QOF{dyoUNwwRm(NZ^h+7sMCv<9AwOG*_&*6XbP28hh)!^1m5~GOGC~NGkX#mU@nErS zlG$LE8GVb=*~lO>Y4w%WlR_szHuEz!;OCnvG%?FSh_^6u@(kms@eWE-@*LtghL6bH z@?o1mo6-r8V&M>TMAlh8C6fFz&IoidD`q0KXa^&7k6uB*d%<&r%qIB`6Yz-0 z#>@P1jVs08gP2pV%T76iqkc`U`3&Z|!cHA>qY53~xM_N(lObwb6)T)26cmtkt?|rl zKIP;DXk4KoUB0Hw%o+aQUj9t`quZJ zOyPWK@kO##-NVOqdIFAotJ*cF}=RjquVo$q^KKY-qj387)&j*A^-C5d`h$i zJ;P4K)XQ>EfP0-`pCR{3PB^`REU^|_*4J0ojUFyA#*!Od;y@wfbI_qPac9W8OU;zX zEg{3~Oxst*eV>L#kHDEKPo=CXnQK4_!!yj0AfDTK1e{ZcweztdhRVlJXE>dDDVvlG zc`c3zs-=XF(5AG1AnPe)Iy8&{{|0VVM?P$-;&YKJD$mt!Hgu*VEGv5{yeq%o zZtv;&)XiN{*OGO?ZlU6O4x@{ZJDz*4!Brfbd!HXsQoU+5rJj}cD|OW^n&6`G24)$w z_WWvf(k-ixz3KI`w`|tlI?TCOIUe-eCn47ry8In6Uz@4~*%N(7t^H*c8 zeXa`PPQdAO)R1@1LGG5VZ5Ed{XyDPYFX(9FyZ3MZ0S|Dd4ub4b4z6#;F-wNjIo~~Z zN%9t3SH79~>p#eTR<8|5>o>WuGjwTE;RfFI0A3hjN-XPO# zc}q6F?Sz{vZzi$+Z$_|^UTG6Ex#Tn_r@} zQ2GCq)_Hv=?Rcf#tYE550DfDv#Uy9Q1IotD7EMle24+pR&avsT(yfWn+O%nR0NHII zH((gqrHjMX86(nIh>pjmuzS>XOF$n^Q*RwG7)D!snUE3dLY&ozK9$$^o6{I~!RS&8 zEWc25_@E$pKs|MU=O$?E)g8Ia4XRU-jd6*P?gfWwFy!>j_4htSVtr|Ay`G9Qvn2|O zDS1$Po`G@FYKb*I4YYjmo*!Fe1LZc~jGXS9(K&#S@3T$-2QXEbW8a{}6N$oo2)I)e zmZmQGJwd_%UOiypiU|uxJ}(E|S!7O+o}Z(YQV73CR%N-@!IIW(AMW&GxwTggUPSUu zFwLU26hxl6n#{~Sl1oXTL>i<(-0=#XQts9m0w{7W5Bg0fbh#5I5`}>BxGOr}yP8EY zL2dyqN?;Y7nMpu8q!G9gSXp&6h>prkS-ywzl|{l>_hr{%P!8vpo{aMc=0k{ ztj$(0GwrV4VynP=*46$cRwAg-rSHo02PUYw%Pk?`^>^0?shpWvNw4%o8n&PbFA&8k z0|!dy6`&>Qm|%cd;X)d0Ju7KKE*V)fhAC)h^3y|3TPRmY7@-v<*!S13X{V-kxd{B5 zK3-pUA2hLRR2G5Q8+<2zuW`gK7~@-^Tnk;fhW2IHoUy(vxgfkA6mn#Xa^&H>p2B4& zzSb^zgUrryee#Fn4Va{L%&PIjX{^gDkH)~P8N0<=2&yZLD7vPz3nt)aYvbxfv@Kf0 z>l?|1)}tkrBQ}dlUX(KXdx1+W9huwieSEf-AfLQkAb$xHQ^&9LtTGMVe*!0n_<+=fx<S>x`6Vi%JO zN++#VNgPF}>HsI>!pDS5jYDD41SND4eFn4E^v z24K+ooUieRDaKZ}I0Y!APV4alyMeI};h`zf-EQS*S3D!5Z^3olTubaM&4Rcp72~}G z)bY{ch1uy;1g|&&R^DAxM=cVBwd{)Ji7B=>#)9X$`yQIH6b!Pn+>Uplq%!JUlY`bV z?39LVbN9h#9l+M}0M3%%oeh@K;H(2P2-jk5*Z{BS>-}@9tR2zluHaz6nKb+agwyuy z*Y)sqU0*W!|5);4p*c4*&aznH$Zj;)7}#cb*v!M>!Z{i)Xv+hnTY$=&j2Mo&YY&CO zl2h6%>6CtbBZ!euP6>d{Uv~unSAQ6)X6zTu48)nFj59|K$?{QIfJw<2TE)bf%F}Zm zjn`8fS|@LbG_s+?P-fQH2FbyHuLF+BH%g=Pdd9($1#OJEj76F}x1dbqr`hj8UVivUpQOJtgKZ!#=z-MzM!_seb|NWgm;uV( zQV(ih*g%b84E$~~lneaEsqq?A@3-$Wgv zN^$;C;n$M<)^dL@cgJo9)Gthet9bi4!OWMk19=t2`{tu6j zawI|Ztq*CLS>sM1IqDi$ii1G zfVc!W8xO#x4@M3HULqDU$ddj^Cmu>Ng-R|x`UnS*8TcI=_!zR)6ci<|02df*m4}+@ zw49WnEdVjvJX)=UKm3x{D(j`A>T{f_bjJ$vOjhKx#Fd#tnv>V0H3QCy4N&ri z*DXmUUq=_dtE8ptnjy<`XNN<>d7450SRLT&KDpUo%Lo3MG$*fVcbd+k2XrHQd6UxS z?0B$NHwM)UkI7~$`^l_W$=gkV3mTGwq?1tCuZi;j1j0S6Fgn7&k-K{RlmQSpkUpWI)({#Bj}(cv4WfwoO_OeNl6NTg`gR7rwC{-s~6)&>FT|n z*PIhwEqN}z*nBZ(+Zen#kJf_9mCdl&MfaXX^>uTt@`(A#pwa_`yHGJEAd%9(OD0Gi zUVp{(^>;U3PbDce_#kd7KB&$00{13^nPzL444GLG55~Hx%%|V^8ki)ru{q$T0w+?`x&$~g56*gxFy-SYgH;ZEV3-iC69t3b5?QphpFKk(lcAwq2N@btGxLBHE(Tp=0>z7$)5Yq?4(71o_K-?H z2GYo$FV1cngJBhG;jDvs8`_7{0>(mvv0kcU!x*Bpo_}1dVP{}o|7b3Bwa|8$d~wE| z^Rz_4avBY`xTEhqyP(u%x%>k9edpNjoMX%4Z)HEf@4{ZO`Yie_#9!KrG+rdUw6B8nMC!BuV3pHm1M0G z=_uK)KsjUKpqDCZp^NiB8Bue6G}wYQT3^aZCb0_D@QP*7^LFd$FlyuBTr;&wg7GjM zY^`hDda>{TZN1m?THfGDhc?bw6n3|@v4gLEtLPx6NJ^JCr2&)SQyBISgNcG>xh}z2 z$RJy)t%b3Zu-acoW`;tIEJY{Z#34@0x-Gxu$dG$YKieqNU4h91WL&V|oDbe4Fnwn6 zmpqr%J2Jiyjjr19=ijB(0WwMDI5$41bo5Z^pI!b&>Q++Hi(={u$)&@J&df@Z_9qh9 zyQ-7i07@dJJ?;TnG_C+Z*0JR-0$2!|A$N)Zs2e4~M9}rs9~>Z0fd#sX`K*J%P0J|{ zBqX+L1P~M8jWxz#z9y;wNmD>*y|NO8(OPJ9OtDX2>1PNovDU9IMY~hbh6zDj@z?Qa z3myn3FNz6j7O6vz9&onogBXN!=HJ-Fcl?y$>9S6KsYfKcF83-QbjTqp^hxi(^$?`+ zhRNMsSJUeoHajKfE=`Dt-8Hoy?3e}C!zGoFyaAiXkW?6><1Rc@=<+-WUBAARY;Bs{ z<5LEX0l|`E%?4y81MMu%GFOacWdNg-3mrY=y+0IKyped+bfBXHfSrzP;mPc zQ=m6sB9lpDr>UG27Hu--idYX#gtuI?vT?pT>1yk*&S`W8W=%HG1KLnMFgb&&aWc>k zWI$=PZVtK;9PASq{$V*;w5`F;0$-}&0WSf&v&O%m_Du{Zvy{McIACBxAWBIFHMEbi z;MHl`4fSIM9?*^KWtYK|oepOiv$0_uDeIwVc(y1UlhNeS!Eu219mXoYEKRM4z$ptd z@qc`sOLFWs3`N%p$E-G+66um4Ri$^6VFnqwoI&E5Hx|(ZZ~=Cb!F#^v@*|2;^P>+n zTKU-=>k~cuW7!&nd^%Y~fB$*mYY$Syp$8@xJv-^_dxGwF=Rh?(eckf|G31$`$I%DK z&kIJ3yG7hnjLaY$TsSz6-r|{`qnv4SzKSmiesRaR$mexiJu!KD&ONK#&3!^tsVH{J0SMHXBON7R0L}AbZ)1Te;GLjrhCZsK`IA|NbYSIY z@oPS+&^zt+8alA%2`TXY2-uiC%SxVN$?_#e40R``L!3$u+6v8@}28`r~>6B@lO5G+ciCEip2E z=g0veLDQDCFvJ-fVxxtE(ew6EK8x3=f?IOO;F^%=L(Oos^5HOK&Cpf>V*vrc zi2!ZTLDKg*W^mlIJ#GFRVte)AjHWhOq1db8%X^@d&B`Ht;ly?n}+;F$8l654G{fDhs2it^uSF!0P$?Q=qm76ZFG$ zKlfFSWkDAz&S0+*B0oRDpN43;r+_uZVD`aFj$w}E(gPUt{_=DAw2tu@IDq$i34xV7 zwbcQWhY-Nor_x(KaB$7BTmxEeKkeY^xMl!Gv)9C^{+eE1FwTMXwLBZC&eoZNGkV0y z!Zc`h86Nsguv~G2!JLATBb9)AjQf`62)^u?*26&G=DbhA{c%~@1EVV#Hf0v{I&E^uIaZvZ!yYH#UvwK&t)Knl|N(q z`Z7M4qZgBAoB3Z&6b?4pjoJRUoWopX4#E4#Qz#~CF-^_S9;avTeD-iyCo}!KTmHjN z{I3D^KN4*Jp8azsp%Hlw`1b_)*?m3;W9BVxpGzeVx$A}Ak7bC*xG~7Ig7IL%l76|y zLvnz`=`U^!Rclfq4Q7Y^G5#`-zi&yzI0L-ajFv3!k zRtT52Q5n;77+VVbRXlqAGUb&3I6=TA#n@}ykUY@^BL;8N#`Y9YzmYIIwsSx8MbR2< z6_JYwPA1ek)%yN4@$zEwwI*murLY2e*JP9`0$ldJwF1b=4n_w!Icdd#@IITn*DPY! zLY?2ACWi85^@9o?HiiAhwHXCd&15*&C283KNtw*JtU9E-jVh)^FtB zQCm_-)opd4IsDE^g|uM`40)zS;5vJtEc(amu|ToNn;x1!iwRDvO8v2{`1bokH8^j? z|7~8Ap5Rw1k#j(%3D>|)3!|ShD~3_8rcKBQJ8@AO{zBlIzaFg%z>`pV0;yeF1JHd0ZY^^o#T!I=u83_={p+x+3KtQrJ9{2 z=_0UzW;`Jjtb1Kh{^svF*((JGrw3JnS$B( z3HruzhGbJr{Uix*)V~O-e{A5%r(c_3Zs)`vaATzCw5Yx8E=D374s~XQ$ z0D2^l%9B)$0|8yyCWK{x)WDvA^UV;o3*IQ=oE--`385cjN%8Tec(_ox767V8pH~Ju zxe>H&tgUxa)tFVHW{z8vkLQB#9%^=4DnXeetPYN9L46K^kj4x+Nj1~H1IDQXWGCeER`v+-kU zi+t-%bk9aKat$cUP*Z_#$s02{xk4Ys=?dtriIpQmk;uD=qo_iX=C&Z})C9d_hwP1g zq$-I13RnYB@wkyE_Hfbyw0JV?0PO@A7fFHGn0)6O)QZ=%1Y%Dw6sdZgQdTM+H}W*f z4d#hu?yOv)Lxn<-liBOyLADE{hTx4n&2ia7I3m3w03q2gdt2!S&X8@(sj@tcfMfW$ zoJH5_e>VR;Dk^^pxVks-k)OV{1E>Vd1-cL4K}-%#B$53R!rG?#S<)UL4+6`P+_~vD zhdVtMs?gb#99Pxs^!IN{GNKhgi?G|gUlz?n{Olw_U(o^Izp1{HDP(&a48iyZH+zvWP-hUwny)~V14sJXdu2N5nENv4I<7gNh=p-N7N&w=3Ogf57iP zF!eA0a$59xDmZc*XL$8hE(;1?UH!ubAn*At)t}*LHN2;aK-e{#-eQDHJfa!Nj?g+DcyWO0@hftdXBQdk!F+L(G zSd!Ley8g3R^)<=sY=W2$HzEB zfXo27x1*RLy|x-sA~+~7ey{II-ZwF1)y%0fN!@MQHESUxgDh>Fv0^ zwp}v2dW<`n>U$x2B$StSoMh;$dsFo4tdcIGr2+mpl5 zzEGw?w#B(0!oeKi|Ks~#&w zDgm=6rZu34lR#J%9z1pyMq{=V(n$c2c+5-$5XonUG9t&utkMd0Yl~%2=oN}pe*ZBJ zsvX9SHLljljyx!tMS_Dq2PE-9i3Ef+qKwAuCkTfOApQ5g7 z;^^a|ktT=v*+FUHiLoyF(REPoB!w^hHK7rY9&QTHKIdqnMTZv~;}~E&UO6o+dP_@M zp=*Z5%~f&sSCgEa?vqJSzgZ00AJCk{sUpoHXG+tAg*Xw0zs!kyN418EAE?gn1y)LZG}8&G3*l3rdM zRr1mLaNe+&%fp8S)vSui6t;Jod6m=27i6*YX(o(OH3M^>h?Ry&#I?BL$$Ep_!l?Gk}9n6)58v z7;#&&Kf>$9c!EStza#Z-i8p$6vStTIEsj`quOPdj0;@3tF+@Y?F-J!Rzu$hvN^)>y z-ej@frEdo7cmcep>JfvN;IKGI}q$31N=LIjoSYZcrrp53|>U9F(ayyJbp^SQ2 z6qr5usM2$TwdV%!DIf#TZ^Q7rhpO;K+#dRIu$BN0Pxut!Owsr%`8F9b*H0&3QdQc* zD8GMS7v{+8+#pV?$1?=>UPM@zp9_ZQziv%3`TKeweed7!ltLqp+$j*? ztfHFg8%rMg4+JP#G9C>8$rJ+o{b6(`$ODl=ikeL}xJ;0Tvwh0OZ2Cle9e42jfB=k2 zB^nz|EOP@m9PuQC>kb#%#`q*6DhO7k*@>A@%^vUMNk&qhC!~p6c`~LF;A7m;+-Y{$ zbF9rp9-%q{bAUSmQ8zF`W~din0W&%6H!7zIXaPap$?MgD&nuR&l85XydGI;ZwgS9n z$djPQ@dOaapNdr{cwLY0o>Fnhrm-A8j23D2#1!ywDNWqT$pU?NjfA}#0hOH2kggc6 ze9mQZ5_Tve`z?h4D1wU$uKG&^LQ%~QP*V9Mgrd$Dfjd=lcqgZQyk0?|g&ee)djKC# zW@(Dpvv+z`u|Jp=rie!gj2e8;m3LYN#$7Fev5+JHi8iK6PG^<9qP$)e`hIv_Jos2g z0r(B>WC~I4WXhQ?RkN($2(jfHz;;xg8l%^&liuC{=y|}EO5iCvgIphzUdPeP#o=f=ZPezEDi-^0`*P_KgL{kFNn~EL2rEd_OqfiVWx2WXX}-O`l2305uNVvhzdwLJs22)U$wP)7 zEd-!|n4CU*K!}F&;e~z>f$-{8aI|P}HYC!QDS)R1wi~&?%5C$NwcUOt=>)+wdtwTK zQd%$?l;~~G(PXQ?zx=En+&J_HepsxrYw}r>pdUz7qp8|-_neUX9s66>>Oxx8sM4&}SQ|ad<81VO&izuu4dp#%pvNu`A>&a`(ftjZ8H6YUK&C!!?zv|ysR9Un_ zTg@h!hFlifcUk#JxaX|UR#S{5GVT>R)&Kt354^tQ9G_NI1 zhcvPDWN^^C1rOVV$HDmkjVT*|YM%Khlhf8<;O=8I?=(BuFr1h*WS(OS5AQ_bDqEt7e9hR497bqp&BOGPZO#B$b1`@E$*}imQ9TpJypuP1cLpIX8XD{xG}@9W&|9<@x$@_LczfT z3c=e+tUWCZm5S3Qdvyb`+On=>Y)ndkU*c1B&o znF@)%C0OhkJqRouh3H}X&b#2r+$dVOArwva4vuCns!*d%7taGDkLX-OZ!;mNKq6bI zMBszihxXBKBqkrbu@BBZs8WCslpVCy0aFPS!@}6=*{xGzEH&p%G)lob%Ck48#h?uq z##VBS5opaJxW%H+C3!AJrP;_cQ#A0qhB4*AH1izcn2o1A8gn#Gii{s49Q+(%;@392 z^S*~)+-z_3Y~qMSo4psalW#kM!x7Vc0?wtJ^51ENMy2**c)gJ)2E;wXPDO_!p5($m zEYNM!PU4M9Jgc@lnL3I|9R3Ya-I3UspbF$_(lXmG>Sf6jlV_YNurRKNhXWA3jiQBW zizYuiQ#8~lJT$Z3{D^cX$M~Y>pa4^LHBWdqs?EHo)#Ue=C1Z;@Zi^UwisH2V!`Qhjxo!esc%OHf$}_cRI3A1yQ>g7^ z{5Dx;k=0bPNV4;bMGf8jjhtK6Ip+I+ERWN){wlkVsE>AhBkeO zPVy)Eomkd5m8@F6o&8D0Ch6Y8@_CRUg=2~*qlRYaZ`2?ph4*l8Wb5FmzdWRv;HDgs z;@^@>n#b+$Piq$W6iudgxKmd*su!T_!$UC0+iu^vw~2i4V)A{Xiecb=Z}@Swxu5(# z>0VN2ndZ*uX0*^pn@{v0GbQiDNnJ|z@{l&iSzV`CzUE06W-s^EcwzmfB^+boLDNAW zSD;V}c@ z!J+3=bB%B?KA1lj@ObmjLW;{Q8hu(%^@v}SE2II$PmuCy39+(*Rco(~f z+sQ1v3?R^I==*SvgTw`o)MXG;0>Zs!*aql_t_#{`hpb43BM92ryI17H+nI2Hx=TaJ zx}1e6I3*1=7c|A%YD4?7 zmgw0c0<+PbgTob!Vp}hSxLXDdYzb`sSj=TOnK#EVIR=J2i{KRVL9Jd&Wuf1Fe6p{_ zA#zC2(Xr1oCCU-ZK4MzVJ!B`Or$f%F_eh9%o@6R@(hP-9mb@`l7N5XO7AgQE@RNmQ zyKcu8hILR5KyOFj<7dxE!@+R`BCq~w07M~+ZEmPJp<7XoAP$2sF2fc;>p)k&uZC?l z{4r~&;JA9Rg~cfb<2ZEqYzMl|$!9f1{|b`N(B+Ta#2&Oip}W2Pt;(MkN=*!<>nO89 zt1Cnf$%%G8c>Z`R(n8D<+AnFa_VAi|828{L86<2=@AoXC#HYaWTWbHU)Wd#37PI^h zlCJiQZNV)6yS@eam6mA>$?~q6R`2yao+(G6T3)svBEPYiMkr!QWiILR;m96uh z`U4bF;I6_F64#PrA}#-0TvnY75r!SH)G2wuUg5!eHM}fopj<@^!JW=@eGGyX z?n}<}(SN(BfhBxvKc~=l6E(LW>5($}SL9Ft#H5G)< zSSxkVnOX$zB@K|CWt<2JG9}|YKpuo?ns7RW+-a;#IDfvE^QUo4px`h&X7GEsL!_`k zoBS4*;N|1DB0PrzzJV3G*5qyd2krmzgoE(sd_ZsC0-jc-AZ#pvGeBp)oR{l3>~ zrRPd; zb9A0X;7QJDYw%*OiROF!3~+}R8PieLme@z+O8IlY-k|K5i{ymS+7~LPNmzHkW~N2U zxk>-(#qXqHPd3)puUdPMpZ29XRfCFcyL;UFwm9#LuLAMqE#?L!AB7nGS>xSa^%UzZ zZud@d4KU8R@m!W~0}2EC9cPhAF6v~4%cd4Om0EhtN=v-kXZGH}6BIG8>!qCcS?wN~`xf6ll4&EhU$Y2UjYBc6=(ocXAa^+GHEt7W~)dvh!PO`Akud+7DL zJsBmNCHIc6>#S&&C&~vyuL$7isS!q|G#lkf6Ca(Y1&vD!Sn}-l=sYbws+{f}Br&zG zCpj+JXskI*r?A9Maxp@=bBfy{w@y?o*HcN#wg)f`<0GubUv^n7@}tdASuLyHZYivC z-^y~I&Gu>5s{nqd9u(D^7B5Fs4T+6PRl^P}^lPa2_cs5%{devcOy9zAzlCL$>Q37UXn#56 z$zV8gu=)L|4v#-PhvXGjxIf#3nCvjCG|SbbJsyRQz%675%o6RKm?o+H7}78I7QotM zP?HF=N~OXWT^yRB@T|l;*1_PQkHO+uThD^?hm*g0W)r_Hh-lN9O(KT`eR=$rp+Hlj z92@^JCt-&^^(}x~JxY7(u|)n>&Y${4hgof8>W%n8)%YXQtMQ)f$|7p1?N&)Y!fvT7 zuW>*>ziit*7P&f$*XkfW8})v+fkH)_9OkyBP9 zOVPf@0uU?eyI9JZ(%?!18Pr?v$2R1>x1-p&xhU`CYH$hzvQl6L*@HUC8LDAr4SJ$4 zIis&Hp*^q3e=|rc`@fU?kIM`3swCHW-{M_gCpmh*sxxM*Ce~ZvV(*ZmVtd1RIqT$- z-P}F74>*avHbay@^4MQsh*>6w5To5z}l21>E&B++u|uYB&&S83YIF`82#CmJx5(# z(B+yMs4O3$?uq1T`b7>*-IXIGsFHG#L+WCizlQuKhpJhHbksGdBkQmP8!d@7Z^Du) zJ^NpOW2L|Iv;~fKroT&_cQ9M#0qV@*^*#4P-Ls?bZK}P5ZzcP^`yV6H9D_~!PyQi; zY=V+!Z(0`_q0iBB@Z8#S;BqMJ@#lRByhj}KoM@7VxLNNDJQ&B)N;=465qfDfIpvt7 z(rnD}huEi$!;`w^bUGBbIl1?UNC&NFrh})s(8NbAnasM$zQ4$L@MuYYd3~ka3w(VK z^1D%`twGW+hLroCTQ5#uNO`l6l9ANHqFF-Csef``@$t((L3QK3>L)UiL!hGMZGW>} zF6fMY71Pfc7bELka&K~xwynLw+O85%ym8q6=D!?}TH7F2!>xagTvbUT!>X0qd26D}l!lcQ{yDH#?=#Ks#fhQqriqh1*(cIYDd zAB7&d;sCj$^QkY9s+Wplt4A0?02WsiN` z#Jly0*dKxkUBdZuK+ygXThD0wL27#4Z+MjIkQ?u(Sb0sg@kb473_Xo|)9uTQ?Vd|+ zVjs@+H{-Q!VYpMs5?9?(w11X!Q)*sw>gI(q8J65(I63x^&3GpkxKk!3P#h>(jSJE; zEy{Y@FrnM-O3X}qn3CkW_IXz13^56f+hq98C3SI^9%HPBUGNGaJ;#)VZ4zx2(w7`c zpMYvT2T}&@PHtoh-->zdljD0X7}0S-CB7OlCIVN*R}-0fXv*x^L#AZF16cDEW`(;$ zyt7-@e{rUX&g@zz-_+W@F?|5{J+tEFD(T>_5%SDLz0(jb%4x4o2hg{=|$&$ZGb zubZm15Qi#{RZYjNdDrk3U4*@FX;QwUrx#k1?dc^=G5!Y4oX20M&v`i1HOjUx|L7C{ zQ%u_mh{9D|CHQ*10`22$=Yrl$eZ5`fEYeh_*H|)|#v4}gk0tyF3JZ(qxBsqd{1$bP ze$9z!-&sM)VJ205qA$;7t&cBtPT^ZfY*UGu=ia!VEqvJZPU3tbHFps*qKe<&#$87k7*G z5F_7QE!KNsbMHOB9&DSM8hsIwCDH60%i4R!Btr7ir?kgx&K4*13HBavF4DVUQ&45 zJM!B0vY)4@O|k8P;h@6lG#ex9rJN&(aGXlCUo@13_}R&nCI>r1tDdo(yMDJ_->z@K z_K@1rw==xqZ~0SZ!WptgVE*iLo4|3XtpZttQ@H_6yp}N2`)KIk4j6t3Qc2 z$T+rXrjG$~4j!TaKWG_j3z1_|+K>J5WzSWwGU_XQh#Ch|SO*!>(Llvu<)>uFG-&3@ z(#4h3J^(A&b>s;R=q)S|fx*}i^=dZ^L`fUUmV;`yDJR*7ZLq|s!Rue&cI(MtbL8zJ ztzFDs$z?On{ zqoZ}9qak->p1ou7>8R-`MS5Bo`Wh@WGQ6h>@IgPXhf1AGk0%+2I?Lf_RyE9;y~M}n z;@L;Eo0qts+)Nqn$A)q(-n}8SktJ{Mtt!PdfY@*y08jRA<4l(8LI&3aA_kwxbB5UK z0Fh{cko7Xv*9V-P@X2JAAhJVB5S765QW$t6^OJ?dMxzAzOadjW77`nwt}E*1T5(0q zR_Tt$B^y;5fpWZS^1-q9o5)cRcKabSu6j zo#_uMI#E_9*rl_X`XIkdxZ*B-YvTRuIH^hWDnnmrme*vh1#jG6g_kCkY1U84S=FYY zKNZ`&fhJJcRvZz7(a_s)7kN9p|FJUUYG&t7%9BLP|Sa@mg^oVLJ*?;n=`GYlN}GGi!d0PU1?fpb+xe##JIxM8H?wSe~o(Pl$ zv6o^8#VbkR8!e{N0OEm}hCNJ|XEV57F64RfVqLw)Qp=gx!V4MYs3cp?kSPtk=D~&8 zQ1;ZdlF0rBU+%cH^6sI%Dt6sGm*kZkOPaQu?DtLH*?qZ(9BedcW*k(~K<5#wkiOT6 z;3QgxSO;ZFgOPpl_5y#ev+#A1i$_qV1R-_X4>3}u4*RlY2X11K(e|K91G!NS+w1~&Sv z$MxD@vUH>CMxI+lZ9gxAsQtdieIJs$U~;v!g2^qY#exXJ6GDVQnK75o7X$uWc5w;v|=ckmsC?8Kh1 zDZLF7Ee~Jci2K`t>Wpdr;?dB>N`LR9fezBa(ncmLDIo=-+xADs-wn40Ys}mrOEE@j zA?rtYi@oyw*>~!Uk(Me}`la@d*r5kpXkfAJ)6ReTL<>f!VS|!3ZS(2DlD}Vgf^6SH z+=(B*!#k1i_98!xbmjJ)P=ji^hduq3McK^=%S)%WH0`$bLV`W5*Kw(Y#R6i5o(0V% zgw(Pa#bW6yDafW&lu9d99yo;lT6!%?3#w*sq~X0(0Xr0II%9{BJS7|S>(cS@GeDlW z^Q_v9$!&OD>Rsu{vz+p&io(*Jm^2{MCmN8Iq_I22vx2p0lr~i=mcEjLw16T5ugM@Q zNi!Q%0`fqmDm|?Cwk?%vq2#eE7Nd_3P{_)EF8dh#q*A6YQk0oA42E$wy3n9~`Nnm) zrS&_gP2X4W8hzyLoAf#G<9Fql1`vo1(WBq6NrV$EU}=J(GNH)g5am=FD63{%Hisi; zyPu)F&>2)V&!d`lr8m~_Bh*)ivLT>e!{Su%oF>t;K_6s1dzmMp%>&1aDPwyI3t6Z7 zY(C*s<%6(qDLTeN_ALii1yiE%44msS-Mx)WSmmNI_j)1OPkc` zrO`|F*WO1{EyM!|6dfkV*)#bVc6_5{s1rFvcAvR;B!&PoO4Lu}ppXi+b}wQcz43y~ zvyE*#`!zhfzpABwa89|6-@r+Q1{X58CZoqshB+FP)##cnc6dx_kaOD}%N?tKUzjX;6fqL^=y0)2LFZr{q>{_|M(mRQeh8z$x z%tSnR-|Gi|$V~F}Aj>w4_FkzLUg<+m++UC@ae98kPjI6nl{aX*jZzC}&EB)!A%tqv6R=Tln05-y*X(3-#ZVbZUhQyp3{WCSE2? z1 zWwJVbSxDLFbTV?uE{NAlCzDd1XY%4qi&h_LOAgB=^alOx zzo*c{a5@bL377{~q?F^m3XA6+S|X&7r$C@Q&?OjV4TG?Rw@b(aQ*?vRoO>X1df9^ z0QYmCiWF|`jq^$Vs!Cc?u?6RlG~^aq;|gLtAj$92KO1*L7so8g8prRP!1;S{hiP3dfbzFAT*{9{0cck5%? zc2N5M@l|!yQ=1VS*8tX@B!5pQCMR-qLXJ=>Hw#B6yoc2&8th#e+}HnITM#o~IkE3^ zrZstb{3@k*4zY$wr&$G_^g5~RRi3j>#p;y@^cE(`Ug(JivW8i+mt(Jkwn{JId1Cf#td>WQ6c8xCAA})la6BbrL#e)TSb|LR3i+*^vIhY27K{$@sBu&OGJvgva;5bMI zcz^YEF3GXmFch6wEzy)&`i;*m76X}3=ISfi>sh;n}y-$210$u*lmF6(?tKVsq zHM_KDi)QG}VpaRVmH=VXfEkOTJ_S*gt_pmnqS&xQx1R5YRuWe$`KE`($3yb}b(KNE zg=4v|4~sQ3Q58obBr>#qv`iDWg^&HLH(VviqWX17GL*ptMdAf!iG1zI@djf^=ST({ z%!)c+nD5!5jX>WSRxFSW<;JA2-jPuZb~mk)*U0?$Grp8Enf(0I=s zGH5P2FX?D4BRktLL7g@$nQQBi`uKYdO>6aP2n?P-4J_?mvQ5(73IiJ#7qD!(dw)yZ zK!Wbt6us!Npq2#OkH@}UC2gQPD&;j!Pc&2X1MiDP=#Y#ia4LqpAdKal$3)Fe5Znnm zch?qw4p z9eDPLXuD+CcayE5crPo=iG-y86~+C5>+_wv>*SWwk@W%+aN%E_J7EeOeRAfVudC2Y ziJQsscoPK|cK(1{viQ5ao-!kuQ*#HPjuR;AnYW4NK5q;vx~swDnpx+cSZNrQvVk4-j{V<7@Y$7tI6T3TfgM=cV^GNPIP`ex_BSCpP z+|UVi>(?M8H@`6<@$LD~O}>F8wzMOje~O9oo5cy8iXkTIn4KncMlwF2&KFpXx|2JR z5ie53T8tVnr9%5fHIlX@1L2hqntGwi7G5^FMiy?kX4F-9)CKcsElAOLz9*5XysW>+ zg58zJ8m=6V8H|hkhN8RtD)^iIJm zsS_XDjc*vT@CO@=3p(YF$q5~wpPpkF=lU=r%#MpA-~S3Jq*LeW`5u!~c?dwOdV}(P0jGSw8sq@y01reHVud=#q7{&8FrmYwi zIgbm@ms-$eRG9x)Hyot4!wnkLhGVK7HO%pHP@p7vQ&?RO4K=6VtPC)&=rt{W{5f)?Z7wBfl6jmY(iRJU``3 zL8bkQRApKhY_g{#bu!Fwe>5=Z4$Y2AR@eg(mDT)}+C58` zWM{x+_QQ{ zp9arX9e_G|PQCZ59Lw=K*+m1x#jBBL6sCF(Gw#`dM`2vdl}mQV;>>G;iQ)uavUy2z z+R~=;`~f)`SdU#4d&782Li%&!}a0&8tnqDbnf=zKt}!ig;JK#_~-24s7uC^*lMEpczydF z?)fFzuGd`YaaC?Jx#t9FNPrv}$kkA%jVNZ|(YV?No6Jn?#q_s4EPhflu!y-+_i}B9 ze1>S;(8x}*{1ta+7*ZM>>Z1`K5Gh4z%m2soLt@{mCOn3PgB`K?zbPM0vBnjh2uorMoV0pXDn!08!A|d%?e}uhRSopC}Q2AP%JWsnq$jCMME{upC?J3lTlVk7R|Wn$n>Qs!%xG4osz-x z=b}h>=|qIa-OHV(Dd6Bgf12P+hR8@!$t-f&Fe+Pd-1scnv`<)Y_wC)Oq4V<}W$ouO ziZm$Ob;vyTloE4&EM4eEugX`t6)jp9(>=xNO}wv{9co?0;Jwv^^1cOCI$6(OUyOZN zy4gY2d{+^Xf{3|vyH@42+pz))h>2p-Ss)FvoRS+xS)zyq$6}$7ZY?gYe`I%3;F|q} z++APP-i5NO3xA&_F4g3OYv&BJ^b26R;D(E1@GoF7_Eedkb{mf6hYsZS-o}Vr2TXzNazn2&OIU+-<1&&`k7RYMo z7a~SA!KlAvuSGTAtpCZ+5m>J*iHGR-E`Kx$Em&OO&}G!m=P8NpR0?U0ol#N_Q>?Q-g9b@qkIbI;0BsC1cnIoF*(m zVvZuFlp%>5F&O?Um9t0c)CuH?PnU8f5`~qOj%Ol6HWfbxP4T{?la#=rlp;T(cu}yt^x}83k1!|EFpY1z!)jq{w5^20{I8*cQH73*dXiJ^g_;f@%5YTGu$q<)YThG@`L4j>1wO9B44tUx1{Q0nq>1aX-5>%_omft zxbb5E!8G&icAQ`kB`7UXXHqCI^OQS7iK;J1?WGqejdD~qpY_)qHbbJdWAw6q|KO|V z#e@Cpiy@c9XET&+bxnZ-${n7dCkSFpl99Nqc@Se>3amRemzMQ`1v9jCh-#0dMarfA z-zjib)*g&&IrPtV(cQTVI+VV;`Fl<;YbvT!NPGS=QHcyUFxtoBW%-7NCqyLYed1jG zath}2bHnQ)KTE+^EGizj?37xa630yj_gO-c@d)bfVCPc#jbUz$$7=L zxBR_i;g!;r;SZd%ToXtZ`3yZBE8Ai0TVHv@+4!x)gr##pa&u+;!Rxp{UDwBfNe24^ zjD~qa7V^0{ff-&cPEZUBWWyQ=$XRlmi20Y0>!4R?P+r!^5QOcvqCp~gAD=pPz$M^> zF1!>!au@{WD4Q1wsD~SwA-cKsnIa4C2FEaIkVK(uv4PTJ5y+^g6^oFK9Dq8etD)CR z7Hbx=4LXt>%#_kq!IE^O`r^D|0|l}u(=WJz5SQ~{W$Wb_0!hrr(3Cc)>XgWR<^u|7 z)&{4@BNif~a1;_s`CM61-w z*yLupa;eyk$N(v_8j z4n^tGy_*5AIgw@hOvy|(L5f*p0V7V4ZFft0U9)O8OH7<9|8jYRO!p?&SrC|?ps?JZ zwC-U`SMBN~@M>Zo<kNNfI z%Hj<#kaKNdqLjC!EH{6YfAHDDvS(DCGS3zjc0uTZqImu^sb6Cm)dglXG+cBL#yX&YRVnZ5VKd=$K#gt$!HixxH(B?6By8TEN)OtCg)f&uO6;+ie08_RI&Ee zIT`+H;K;lEsBS|VMN!_;SaKDyVfp$FWBLzz1rWrVdyfsbk6=3mQv&{(NZY30%eV zW3wMqN3q94mW#YB%w=5n%&lPv9M*eCk9J>@3$Zb-+Z)I7K!b~RW8cj>!;Q~BCn#Pwwnd+&cJI+!vdaEm`2DvEc}w$*zo*~o zbi+((OZEbVI`^f&%0gzzIgD`!a7qCSWL3K3H&OHV2oyvdlbnbJRf`L9YzYhPBXVnB zjQizZR?R;r4OpCaS`+aFF4NlI(|WyKluj!k~Tz@uUzZ-PqPD)&w&rhGM5dZ1$U!k>f{kOA-Bv{ze+cnp&UNfydS zw9pf>11Y4dLett737XLk=fX$O0=YJcybrX#Z3VO*KB5coZc*ZA(e}Jjt3?*8$W?<@ zq~D-m#upi0k0FmqfOhy7P)h>@3IG5A002UBay$S40000000000000O8003!pVQgt( zZZA+v0|XQR000O8l)P{}Zv4OfKEnV2qiX~J5&!@IX>?(1X<=?JZ*_EVb#yLtcy!d; z&6eXt42I!7=WvlqS#b->s-RLC@YS$n!HOMgZVW8RY1?tqnVxQb&LQ9PR>cj085o8i z`1YGWfBE(sfccfH{>^EA!S|&NWwc~lecclz;$3tb`b;2&mxD`(u*+TfAJ+ax+WG8N z>p!Hr`leXxlJ638b~%}}UKn<=yWW&sRQ2ey%l9cMZ5@bj1ILn&4<0+Zdjji{Z|F$3 zQy`@!x2n3+w9&rcT@inR#p!DT$72gmyJ(3ZrGsX(ozJd-DvV&a_DF}>ptPphB~o^M zr9)(|KCX0LLUr@)l0LLnLwzBY?DhPD7V&z18|1sOr6ay6na#i*NG|sIOMbjGQDIBb z8EMmmb*b5wZR>T@{7TRTS5cw@9NrTFO2ihdb$2lWN0ucXkl}J6_8x-ER_?+>bg}UL z5}c-wE*ODt?zN=kSsjI{Q3@xaemT4)jr*IzUL)jem5Ov0n4AujYNV4<-V@j2?vDH~ zt9xaMb}uA_`gPVv-1X1jWyuny`d&c_Fa7U0QDLhWRF~j#dA2}Hwi7`h#9ke;LO$+& zVRHNIa_{<*?Q&3-tUCBuIJpmukr$^;tND6t*4UxKmqE50Pae~d_8|w2=YPJx3r%c9Uk=G3>9L}lD*U> zK3~%Z+s!ZNiCx=awSKSqadhCT2A*gMhwB@vTUB61H0a?F1YkjP$5L>piLBy?f5$y*1_6X4Z8K>#dBN?dk@I93d*>bpi1U466 zHN+QL@5O3sa;Wew>I~UHLe^cS!nF;Sy{!PV$7=1_l9G|J`j_wfykAo&SR@ERLt!0ig%yWj6kh}Nf3-OZoB#?4_=vfK$@guJv zVt5a(`zW1_-O6alAq#L0Lv}bwJGW5vs5esKgLGA&wSnw2gSyoB5w%9Bz8&^$w9mFBeubsqkn`8c-TSQ7 z6s##i^&L_8KNW4DG)Mmed{3(ChYT`vnMWvXuphPh`2{wYGMcp-YCBCciRMKc?i|i; zZE>L+rZr>9Un)+UFYSSoiK^xcLGl}7b&K$uArELBr6}$n1j;qPF6uQ?b_CyZo90%pSftm^H1@=NBd_eCN%kX11Yu8FDspZ(UJrc)e6LVwxZLu0bf)DLG;g8-uNNe9Z}b&q(6c|M{B-W4#+&%4mUo z@5)_Y2xWJ-rErAOwahpc+cwN3IML*xm@UwjI-~JhbYP1o5bz7iMzQ^QUbOkXLMKac zhpYA+e1Z9`sP;w2Ne7P@KgDk}G75jjajrA?o=`2w7iB9Oh3n4A6zpbuutnKI{B~5u zPOV=s5VLWqbC3;qBfkk%V?fs10J-MV@k1-SP{{6T$9ca8HeTFp1HLI8+dJ$?|3MCq zRW;EUc-qA?+i&SnZp+;v_rz&B$Yc47=|cT7C9LmM?>N2*t@r4z7PiP>6yMa`e#0(nKTp=#L81*?h$`SuP6G_1}) zG+^CC)t6#Vs15j@i9IrU_-P>V*nqzBUSI@{45*Lb57LTKp+@x~n<_J81FU9R?+cD4uPsizHh2(lqU}rQ~YKn_#MH7M>|K9U8LU_(K(i({ykh zo5h(js9N>{ zXNyeLjgyAcw2RVzk=0it6o;)PFaB&X&YQsY#TSj@%Z@xEneoFicQ!B}>%O>KEPcM_ zYYo?`$lem9Fz9o{-T`^3ki)V>P?47kN93g_?&?*P+ghZ-O9RLehcxjR0~nUzh$E)S zL-*P73(=9#b0PFTlyu|K}7H8)LWh0fm zF;fEeD#2iu8~{gbsOgIos=!vQ>PPqj*`!XWvlx6K@1^E%ed3n-diow@hQT-e&^*p( zH#_y>>KgPtosR9DT*M=&^-%IXLH0;56xBJ%>M^2JkbC{J9hi*b+d1?!d_;A0OE{uz zqxnKU);H(pegmVFnK$#D? z97`7=g;15^>#MqYN)f30kX9o{>?}&pg}rj=JvhLeZz>?(olA}?1JotQh?bI-fU7jq z^1LHTo&6c+oyZsXvA$`2Q2%cUO0{i&&t-mrV4}`TU(gdppQp(tO3sBnN{_nK#;Q`z zb6uc+06AITuyy4BXw}cm$I2E=>60oz)-S9>sMe*l$W89BpF$sWeM7w`GV+%n9#?;m zgd908qIlIxh2N7Vc7;JbbABubom+u5YKywTG?@gd_aY@qUbfj6TK7!E_wM^o)Lo!M z>EE$cv-JIEOMLu}=+;V09HM(+sbeovMhijiZUbw*xvW(9pzB`U$29Gtq!iJ8p=VP4 zxGdbgBUvLZvX5G6c$nj7Ia1$K;ni_DHP$Z`bN;woBwpVL__Be%+-)S=KYugmR8*7`R2co`DOnEMd0+roKC5)+fsAlXdYuK}PnJna&1SO}yu5kZi%KUNzmZx_ZQD6gi;1 zF1`-?c7_t0(=^iq2WlcKUPG25ey&W)+2u9GcR<#!uEvg?$Od@T)#z>()v)O^p;&Qm zR4u%OQnu6~zGSrhY2FMexoY6@f1b$zzNzHw)oqCXUhdla;x61Ejy|HuH3)Ka^Goz) zM-1|1rz%ZWg#((VT~(FB{hSP9U|msiHzRNY)u_`V!R~6fQ2MfBEqPxTVhdd8p0n!L zO1!;Mc_^jyb#_kg@XngP&M|=Sc|ZzBz8BDvb~ht%WPn}77ejn-T~gZGZ^#>JeNx>T zjF|IMH9b-7e11;d>)2D7lyWM(Wgb$%tx+2ziy2DSd3s&1p?Ko^0R`dUG8So%X1Qi~Uq z8G0S)9X0Z58FR$E8H@|6F2ZmvUh1C~6o+?z?f6Nbo8(!Ft$^c;4(04oW~vSJ{bPOe zBS?!x>efqR#R~P!G!kyO_)AM@;g|zBE-+z!+Z$9O4!o1XL;J%naahjGxSVMhQ z8k$5;$I2EhQMDeFK6c?)N=^Rz0n_u3cWo;UZqBYab&I|w@|!skPo>k1^-i}GtoCCx9^{GxNPO_ zUoy~7vhAFx@S_x2guY+$W37kS_tNN~qzL^~$rst}o123hL0>=X4o23fey46N?8@h% ztt0jv-$(J~4YGxID)re?09m7gS|e2VF{0G3Pmsc2^t_h*=0o)GSBcZ~On^4o-O{Oj zcu=hemkPtj{05TQATJ{8l8=36mmipQvhQ6jeV>85xjIOO4V96qmloMY{3_ZR1=Jtw zUk7tGn>@>(e>{4o>XF$7)eZylhe^D?5zLNn@e`#b!Xh)(CcXSfI$6FJ=Sb)Zd_v)mSDJYC!W z>8GDMil1D>L8Ym#Pu^z~DJsAtq4-r_a)iLyYXH3snx=ye%8Bwjld3**8j-3um*JD* zg3`l)949F$!vG5PdeJr2B5|yty0QiPl3_sB-St@VDsh@_-w0^HTBEm+!ck7s;{q)Y zo~@~s99ilGYqZKWpj##6dk4=EDV4mmYLlB5N@in*d|R^(ji3B)_s01JIUDSouzK_j zr1Ml~`b3Biu4TQny2IB2HgYBp?t+pqFL@hm5vzvyruCuEi-hc%A24iSr(*UPjambg zeFQXksNp;M!myLwJ3CD?WMe;mTXi?vbG#+C)pne>*d*KRt9B=U{$fBJDEpDw#M5aJ zWnaES5C&DZI)DB?qfNel0WS8*n%-OgprZ}s4Xn`j`^4@MSZh?!6sIZL$;i7{K-Q=} zJcMM4TBCwReaj-Z)eejB-XZD%a>!y`1bMFZQsFyq>1Rvz$=}p8eW}Eo8+v9z3VXe8 zVFX^E6LJ?t{2=`Q@a*&M;`RLD0lNA1gFbln=B{&)-Sy^xYK_{`E|-0+w+7JXs4bv4 zL_R_vyFe*fl^vi>JaZq`P!IeG^StHn`5A`7YM~`(c$u@E{@!VRfk1s3DbJ0)BPUq? zt^Gtc$Q|UPqN=Y?4Nc9$0m$2Nmom<)m}VwmN4gMItuUpnVl;W+>F-|v()R=KTqm0o zv1?1YFxG3%krIUKeL>axb+a$H@o)&V&EMx z&#&7r}LsaT%e=QBMN7a!Ktr_yXle%S0)eiT+G7{d`SLCx4EK&PAB(? z&7OrbkZzpa9pO(DqIKFvDU>rB6wWo&%`f!8@4q}+A{?n3GYX{KA)b-7IyZ~HD6>s~ z$(IP~d+!v&vFlALG^}hgr0g|P?$$BACdassq{rI_$4PW+oQyO($h8x8UmsM*p#n(x zD{%b*4uC_mGx{+>YDSDki3ZX`qO0E3N5=5UJOQqCo z0dj5@t!0J~&YMVDJz@|*k`%Y)FA5}hVKY>uPXw4^T!(*3=EX6>WvRZ69THfrCdQG? z5aZxhIuTAyAqYv!wPS?wLa6P^5~?}Z(B9g?b_K<0;3dU0@DEscKeF~1p!3;1Q9rwE zz_Ds^R3haXRa`9rp*>@Vj_}1!R>mV&Ro@vxa!N8=B2Ey8??_0!Yf%Eqba*T-8PKcnm`UIq9h#nG+*ZM3(ZL1Fn@if;51OqaD>1t*fW}(M?Z3!5gaR$!57g@Ecn5B z_W2A_?jFnj!e$6jcbs{dA&xwn+Zm5=mXtmEB{Ov%Lc%w%xF_XK%+Mg`>S@{pD51LN zyeYimUL`n&P(!)2at}#6kCHI3OgMGo)9=5{HC$Q!Bz2JZr)TJ#;jtfU-J~513wBNi zcWm}2Yb^;9Yrc|{(rS{V`#zId%E#TZO2R%^?V#@?p}apwmM3k_uoe?y;Jk@qu-%;$ zbz`+!DK2{*4xvG6^&7Y6jVk!*N>~-nH-z)Xy7DCM>vbl6B7)ORg13XUZ)N80X`mAR zOeSp$_=AQkDs|O3av>c(q+HyQv_r7=2sw(8b8C1kfu?&VJx-yc10N)%Uf(cwZlzOo z?(V@c?uVk=St%(ZQwTLPo9#n%JuB45r=f7W5k~o*_W(tcAuCgRgUNUoC=R?cx0QiB z4DSah6kDw4xQ9)O%S69$iioX0XWdAcV}0&wQ_G+H4bTg*Sk&7HcKt{35{;Bp_sH z#=FvDW|x@M>o)TgB^ifBQhv6W6QF@JMbB^%&ZzYoCF(69vYBVX#xChiVw{u1f*tEe zx}Lpbgi;<$*`|U@v4$&O(%DZ2`v)W}I`x{OXB0Nulv3_IlDbAbnimSQKE$WdL0T2w zwQSC?c2~wza&=CjjEGBq&Kex2EtPsGFV!uGJG8yCNMe)V(PuiZBc}e)19xuSNOZM! z7Qd=%idB^FA!T^d2`wh7K~(q``a)ktD=f3VW%HITy2x-D~tA1n?EVdWFs zv89iHDt`ZEGfVX=R8sB`+((2Y_2^P59$d;uIGB2U*ED{$18)}SKj#Qt>$=bgv$;(| zKx8r>8CNHT$Ds<(q#tKYq$cVmDY_@h`OCmBA>XB}UHyRggT5io7YZLPM>+F=Na{Au z?y=A06X~3~R0`p*Y54vo#XQq6Yn<`>Z=Qj3coH+FZCMOj@%8TwTjyw zJUK{Rrycpjbw_Yi(mi6cD2mMx;HAxqn_kJ`h+3 z@WN)OB~z@%-nPf_k#2%*3JQgr`) z$H+Iz9nxtTxBoW7pG2S0=~KV^uk-#qU&s+CCask_L^zaCyqDTO4<#w?>N|MB&e>zb zu;i&q;_9GqMx^4_aHNh;WA1AoX~7a8iCYWldQ^DKwMIsn6db%QNg-@vPtMK1|FWKd zcprL^AZ`(d;Od-w7VW*j!Kvmd{?tQN3F)q&NH;{O2aI~e4dj8hS|-;o>=6ly9i1Dn;>a;vlUut}($G>kyLOgYzyWMUSp`-S0O!AQ{Kl5(XorRS6Me z6{+oNExM6A{YAyyxPM629^UH+j@0CBVvgF)rb` zjN;nh*ZPrT^jqr}`Ubmx!#H0~rxdGof$lj=xLCQQvyVPF7Z3fMmGm`jR>nWqY$;0Oed4@w z&l*X)+6Fr>q+{2K`r@NHF3BZ$XmO>G$qs7r%2dL$0Fy3V9N{G|PKi4d^UrU%efvQteEW;$%gI4;rQC^n9SWP0QQv!I z%!6Y^q2(`em<*yV5r^kx#GfSIj30TEaw=E# z{2YB0AD~l)2a*~tw3_=V$avU{0!Y0gKrWWYX~N$lAQl$$8lluv!vdad_bLcPNw*{}iQ|2S-j? zGgnb;G0^Zxy(hPH)t3ADyFnV&>nyN@7fRa9W}X9On5#wqEz^x&?@2i~x4ZBPQm@;H z)w(su_(hsMJ6GaS-EYjE-1nQjoQ7JX!Y;{mq#bpzH zgg26D^1==KXF@nXJ9=q{ppN6((tTyTgX|kldF@Zv1MPeFxJ*2c@WUW;VCVlPS ze}l&m?jgFKIX)9S`D24jN+Gn|nk?n7d%XA7_1jF2GV}TXg+qyLLUrpg1Y|x5Tg&Ra zGKT>7JsjiO(?qBTq>qB{YQMR+{#$xreK5sc45vqD^*Ta2k#;D&Gt>^%X=srZPhF_JJ3I3L$XpqEh!Y9MvOI-Ue?CxN`_2v zEM5*)tDfLuYfn=%-%|8;2$^)K6BMc_w$ROioZ4h9f3rp&Dn&%s!RMs4dgw}ds1@OI zsvgK{6&bc=Ra9Eo{kyCr?J^_5q}8R`3^9h_F>u^iVS$xO5Q<#Fa)}0+x*9`@v8Gku z)_WyXpCyQ*@l(FHBZUAL=tkIhT{7vRGv#J3>j^iTAwc2$Vwp}Ghft$A#v0S~B1Dnn zsk%K&Y)R@xQTWLIkyJawAoqQZ81EsvpQSd-@WtS^7k{V^sVk4Tmhu3Fuy)6AT#G|k z4@CP~I;I;^TV$wIh3yxeCU*cy*DKq^I~3hI+3NJ9ZU_6fgNkeCp_$EE$~4uqwGF;F z9TFp~N4lnn$kcl{QiKMA70QsA`|2zpol~~e;Ks(SCrOF~*>@wYhIF3@P}I23`%b#D zfz<0hI6u-B*;>;L#Sz9&EUg#Ayq}5gW{c~)v1PRM@g9;CovYGK9@n17;4xBMJA}3C zV`dJDUA1V9)FTGUq)6pbqiUjz5gL_6$AYQfy0a(uDSsI;!diuYV(?hhg0dhkk4jOn zM`9frDI>Vc_n^3$fr8(Nkz3=&A@jD@o52*DC2)~pJB7#GOd+&<%Ri+0!QSWyR93E} z2)|7OIllJH+XK|G8md<~hONoQeALZ!Yb8l*3b$>$0bXWE&Rm`?S~ZJqCkc~34>G!5 zmrKsM)>5@oAH6osJw`J@Yix&7L*9-N_OAek(zr0&f9@4_N9n!I6Is&<6}m2@QHJl;h^(>>$Qrx z9dd%gV^qmzh%q)(_A=}q9IV#Nd0$KG17S%?WgQQ2uJV7Y#9JQ(iWE3yc&y5YHjtI_ zu9{1;4BG-_V9Wbdl5K%0h<-ovAhE8`)%QuJzZf!2f3er1Ta80WvBP;fwZMn+`|h|r zb{A2(FUzd#prJ}aik_#W)nj%T(47Jt#AL_Z4i#JRgJ18@yVArQ*4%y zYIiP&3`y@H6z}~k>UAieNNvnmfa!FqF?{Au+B6FXjAC!}z!!^k?|@Rdr9Yx6iw$h=f--X6r$1$nOVr-iqKqa&$CDXFI4=hs4JXR=F5&J_oNN3W;!<`48IHH!NNfH*l|$LFAxH20h=Nn% zlBv%$47CR~&W}FGAIL0WF|b;V3`^L!?a+7l`%eY&Hd6@Ak|MHOX*g1`>~RH)E04MV zDhjrmbLk{wd2Oi1r}uXMdEl5tK_DMoYpZzM8b z$Z;Ywj}K?GoYZSLag3;ImEed5mm|mbm2?x=aquYN!riC`{VYxn;bFM10>!m{|D{IK zbp&UWGPE!Rn1+Pci*Q&lK6uU#_KvuxBwfdnsouK2%#<1N0allA4^Oj(2UxASc!+VH zLmfO+5k6%9v#WIFj4G}kOwldDmCl0o_amtt6%ETBWcjgRrRA!~aJZ`Cz-q1Al@_P% znIb&q*}wlfGlhVEqKK}#u-PI->mtQ>EI`ty4@r+NlzbZAs^dGraswGN#Ts&df8$ zle1v^51;e#!9Qly`9d@78`6BCC=*H2)(2_6`Q(VKlSiHzNYovU30&%?ahg(GSLdKy zJxz}x7kg<5P_MX|>^Rr|V4E)@7n5=D&KN$4$-_w5<2Li`JG{Q7Te?|2E7pB{Nd?JZ zkd1#t;SPS0X_zezqz38k!D_7w;+A6nr_0``>?||m19Zx%LkWd6AmbPUs(mN%6G%nRMBc^vmrnlI|RsQ&bem)Z@U+YNBzXuvdikcvDwqWWA;{p zqRnhpvuyUH@K2eH%3nP9`*9nYJJjem7-{A)yg^4APFoAZ(S(2lBD-6kH(Ic zLUFNrKPBlu(RS}t%GYt*c#@>M9L?=W-Iuz8)a9f#`@b0JAeF3D^CtqN{C6!k((SA~ zi?+1qajSs`>Ph40i^H{TEhmXb{guUdXq_clJFp0zrp=Iht)X3u@>e1^+c+RWHdcE- zbE{@9rKQ-Lg(vrJAr$t(YKQ$!d_T6-9tBF=n#T3y9SR<iC`)O%b-x+pdt}l_x3CvM zif;nTw?edLX~qkpE^Hq>P0xfcL#}w@}`X9#_Allxllsqpsc7NJEXPv3n7$ z_UQc18A*4uat|u|8RthH9G0ZVU0ObkG>Fy8-9H`q9<268PeSq8auIHIQp2kKy`)O?yQyXdOBuJd9w zW&rV5vYhnqoR9b30U=tFW5?0wI8*q_nDfI^H{jMZKG-GA@o|hTxP{yUj!W2exSGbp zj@;r_BexaRB*(nJ7jTH?ixaNZqBIb&Pa&l%iZ}Ks5WntL6ltz4$a<1rnKTWt4deeX z9&X6_zZsPHwC|DRn5s2qO8hJ-gckJYsb>H0GP1s$I}ei_iXRys?&znik4|pi(UDZo zYJymY30aq%TW+1WKL*M@UkLv;>aRD-_)DR`5CV!Zp0{xA#QHl$Pp*?8dQAC|QFXsW ziB}1-8cxzYVE>{A-bdWoU+DH$on(~|SHt&{5--=LiHCdXt2N2GA>OB%5}yw8Wu%DN zOF*aidx=AfoL{X8;@L25yhHs5!H&&IR=cKQV|Ln~X&{~q7?i@Kb&!u5Ip2d4?-y0? zabKhxvU(=BA$6TQhet-%*Hc>ksxjvmmYVSf{M8jnTYbxao+#`8s)(&K1lfmuQ^vY+ zo{y)33&W%@)xiIgn2@y%-|nx2^C9#ezOE6*Nv6lt+~Li67Gzl{l^_nH(i#+Jmju*EQa z9gM6HSHnpT4|@8|07-lw{XtE#?38TLDvEIg!efF7`s;nRBc0lkAA({ zpA`knc^RJp@mSwg>riLBAg4l^{Is&lv|kAN0Rjx+(}^8J-u8*XJ81h^NEthP-Y~vW&Ex zn<g%m4&vN80PDSz2rgr9f3=}aG5+TY<@xy}t*;<@ zZ^FK{|2k;R{pw-dQ0TH6@@ap$Aq~-6UDF7mmUO#VUZtLpsoj?wM9ksEiTZuvz%}m1 zTZ(5rJPtzEuezCXZn^h8^d6Lsi;wKDyFQ*yS_Wi2YiW^xEmm(r??D~K`|vPw_8{ba zaJUDuE-m-`PUyq%r|8&v?mFE~5L<4Y!f$$ryO?6$MCysnbVackfz6CrEv`N0awFZ`@&wD2JRvun3gcqCXO2B=#hT4YIDY<^^a!9>!C3 zStnjAV)Cej5RUOi?2Y1fQdmuf#9P7H^3@3;c&wQO;<1`RDe-1;L+FWHxt-X5;bC|s zXxvzOp<`Kk(jpO%#l=>QCzFw!|%*IKjF0;(~})-dCHG z9P7vKF*v8V^??hBO`{X8D1&EgXVTr6tqfNPp+%Bb(>-JFvF4ORik7lGF*%$HS&t>> zTXU}UU19arrKU<^^9^Esd^94vi6OpPG|$U$P4_b!Gog4GuUAucD#W-H@nMyK&k8e* zXX}*DPE^ruP94OSmn4>oJ5%_N_=f%v(-~kk1?QO_lENWSES8b7*1n*$qMR*b+zMqq zk140oiXm)GduQE+GsQI28d0TY4iGJKUTeD6yDvst)PgAl7eU-dHup}9Us)~aPnU~F zMzP4DDydq1)E#r-M^<}-xg2D$aV)qNlrvfmEJy{jf$gc7;B8VIQ?Q=i?%frH;Dmua z-Uw)4Mgwsbp{!P=uHP{bKNK1Ks_#jP;z)ezD|FF9os%>}d{))Dc%0%&jD;zzNGr-Y zuM4QBVVP1~NesZI9bn!0bcd#0JO`!xEiX_f`TFe{vjNydE=~P+tcJG^#fye$mg!>l zPl4sFeE`EqeJR#A`t&^Y@TWii;d7~n&*SG`OLQIb#)1K?LMXJ|!<#WW?Y2IUA%2+h z^j`cYuv3l=A)EaIn^Plk@puM;)wvO)yO0f#vRl>)PV}jFrXkkYd#ui86qip1!uZ@( zBS^5~HE|ezC!F@QwISt=)i`ygkHqHLSO%ljejZlSm2kPKT+;XUycZ$#B#t8O~%gfoXDm#kS5tj z^Av(rid*44A8I3kH;V}cv{W!aUxlpO1V4HnpMG_46#+UHp`>P*-ZUbC^b%n zIWI-yldTtVk59xK&UzR@9W4)uOMTBu{Vsnb|x#dKHBeK@KR_ibM{wOA?)l>Mk zK+l%vcEzM>oH6Uc=Xl zu4@E-w|rZXI+SC8-t!x=QFtcs|A)0%97#R+1^szK)_Z%%MygxSYsEF;&(-;GZae(^ z2jomy+nY8dHi=Q45W#Eek!$6xDDisXh9Q&~VMxO+xZjx|?n{DO)r>+O24@Na`u(DL zz7J2!U)Xp!dB%;{^z$FQ9zO~h#Dvq$OoMhB!Ca^s(W`_Ar1Ck8(E%S!P}U6B}i z%j`rk>+2-`%Ag>vziFL3)|6A>JRjE;gSz=tnxxh<&6H{iC8;$M@Y4KWtnALZcilng zPA+xA5WkGqnTA-yJZTQaw*|nitd9)sdA&UZEqf^DWj*n#+m^p53Vg=p^BBs3xiEg> z4c-LU;=OR5%0QooeO*jo=uq7$p88@OIAx{aof!Pw8!%f$RP~^F_DI9VBdT~1yPau> z7JQ%>Rj9MLrHFD;sx8;ydB)?o=o01V2d5z zfW(8~|0HHgY;7PIH$#fGn9~iJ>y$I9-p90U4^2{I@-QS`wWhH|PbkG$@bhn$!AT=U ztKL~R4n}p>HT$A*UsBapE}&{g?#*rZH#qr!Q;iQ3DMX95?h}(XgKSm| zDVu}_-o%?0zAKoc0eIC4+@~95n>M>{u9*_=3Ww=?9!Iz8SH@e4)-)jNS)rV)`WLSc zZy1eJpx(oITWN$r%*d}RQ#wg)rtse__>H&x_*~9AD}^_lXP;D`d!9EYo_^2mC+IGN zr;2$rrapyT$TKBjudH$pSl0e?LA+Vx1rUOJd?r$m-kWE4Rx`$EHoP0}dkmVyA{hc^ z;A5Ew^tqA-vz@yFyF@oO_}|5QIUgBwe!7KtXhv!E$an+Zt?5@zL$r)(YzBR?=3OPx zjio+1SpfY;pw&e7zpx;Om!!5ROI+lH^4QfzgN#OJwv1OAuLJf(je@|%G-;KOR(N7jdN zL;3I&)EfJ_g@4qaG>!CXPN-5V=O;mlPuru8+Kkfbsrwai;Jraweb0ZMC{iarh?*}D z+(&}ygBWPyS_1Refx|AQtltlcaq<{DNkgoC#ettC55On+=ZRV>3g&z^+)~spa}pb3 z3a1|1{%*{BI7~8?@C| z?vH^vx8BEoUG-5AgwX1HfwE-IC+BY|KDqgyrUH$V!tGkxrIF@_o=aV^gKxLz^F+OoIS z$op{Gi%!q8dYs}n>-yZOua37}OyH-~2_bwPtcRF)f!yySpPOQ=!NYV`C`-RqxrP2- z%#`?xUNT8&k!|tV>LFW!+)MRX_7;wfs%JGptOIq^?-b?yTQ|P}pRH?>M}r*q5Br#g zRiP~Xta5Ip`rWc;{Lqth|Bjftj(V?Qg1D~{*dv>6g=&BhmH~(8t{U%QGE{;lIo4FG z@U{ThB@~uLjOymChUUaxuZV82Te%yhmVVbDiNAfD8@zlQ;$u}mk#yAqvK}*^dcQ~) z3QONBam$?*S&#W|@;sl~K>evuYCKb758PYb98!EzuDlh>cBaIK8mmo)Brj-wZgtI+ zcvn*#*8WjYPnK_3jpd+%9Q^mtu^g9Alr5-H)oL zU@90E07G0R&#^EDC)x!(=Xn=K1F~+NvpG6JHcq2Uen}&6RsWwhDE`{p+AW%P099fu zWbFG|RTLl|bEB-Mra;l-;^N=bupQ}rH>X-Nf!8z^@eXj0*soT#3S->gK$CdPlz3PD znkkywC59i9*{~snKy|ZWt~W^qSK`5JNcMj7yn?9J^=pa&STS1-5SQigb&?Wq=b!(O zmM53vZpz_aZ&ta`kx|uyP)g_-?D;)A@sLUO#+5xB=DZu+G_ICan~&GJ0bA@q^IGBrW)Hvr9<5e^QnPAwpG*_~d9pac4+9s@hMCx1 zpY3Zoq#%Dnzz{~$0K?#s*!*rB$12bV!QsQ~f5P@MWu@>SG{51k6z0B&x-JqAma3*3 zN-?KfM!PF%SUBZ7Cn)Hg-I|2+yqQye5C+mOwIC7~haEr@Z^Q70IeVlVf0XKh@Mb~p z>2k4(Xs6H+<60w`2V~ut3mrY0-ckNMSyfFOij)04H7nyaQdrw}%MQR*y75DRHm_H^ z-7cKxWw4h+UZ_ai18=XCm25@To}VA^QN|C5rgt<&D4O4@SCgr@HXgq9W6_1?1XGN)@(=Pl+MJ>In zHyX{%mi`CtWP^R<3{5~T=a%F6#1}BincM<=Pnsy8qS?5P_*PURFBORTK$qU zWkt)$0DY2s5b&{mLtl=b3Nenr7RF1#08&IDMRQMTzBnmteR^)*ICd!NMf0h1VzVBZ z}wngs+2; zb(j7fi>0V@0tbt+F#4SsAd(rQaZGF$^`PFUYMKdn6Ojs2f#7h|1VeNey_JIsBFYHN zCC5)tIl2Ojg$6Fj$bFgKQLrqOj?g9f6?ahB3l7By?8_L00;#78bQoJxSc-JrA2tj} zZuG7~Gbw2Pf%0xk5l2?55my0n&t0TUysOG^qSPK#&L$O?zOEz?zsQI2vS}PsNAW(+ zbIUZsz^M0;@1+=gxIN`ei8n!pkW^9jITC-%hBQD2(K0)stIyxNz{Mhh5yj*`!>{Cs ztmaghh6C;I>TWB8b1a&A6!*d#eR3=Z@FPlgPZ%v^AUo52mO0`Gx+|e%n?ga4)@b1V zL^5oJtWT+@Ie>ag6bv;QHno}&A3b`DCLNrIX75A7;X&Q^s5REdRejTU!D82xzJDaF* zh#m)^j_8mT+S&J2%UE{RjfwH2EAq>CvPQgG&+*s2HjV0?GJ=fqxZUj!adN{tvJv6q^BV$3$C1;bMsC~U;8Jesvo z48ZEHx|vdR$x#YMG^WC-Cv~sc{>&pY4(UcEb2%WObYI1Q^3?H2{WXni691Y# z`d@VZ%9Qw}t;so%daz4;oO+iK#9Hmj7-XYKA2~@a)9|0uc-<)A zv>yeHkBrjlRpSl#`JQx@2Qdxoj=7l)RxBk+IQ{BPoySt@-Xc~t7l5=DOZTCHcn3e+Q?JQ0{z}(*Ykn# zaqJgFYN+nRuDDMeUo~ZYaEd37G}ccMQ*`PgJM0&%!g$48A{3xF`AjLq8X0q*z$OaL zH&pdn5t+^DTEu81XDGkKHTlIQ8K)eI6~u(bREFt-qp42D0lBJNYqCKozgJ%|TN#o) z&7NK2-pgK(Z^`)K$@t?Q+3Q*b5@AHv?JB~bpES<6Y)C~+_IuQ>TzYOCw zNini+H9>q_lX_8)tS`j;Rp_fshBzrDzUQq~^+tB`Mn!)q2NVR1$e~s)#xSW_0@;ac zOr#dcDLx72Ttd*K0#zZ66O)3xIQQ5}Q3SKLagxpp$7afWMvB^;^71y+ndGB}PIdyFJQodv zF$Gc&y_nz_rH_8dqiMA7uUoQSv_gV*O{`}kROpQ z=Pn!<(121S?oA-)N%MSiqM1_7CIUIshj}!nyp_MJmnAlUo+!{1<5{8VYMAGk2s#vbJGw8e1Jh??L{LGpy#b^l+lAr^MC%xKn}b0BBu|{?~alEca>L}Kl-OeP< znDcI_&Xa8Xqj1V<(j;#2JA8u}%_wUbsGc&UxRGpy!?0Vholo+&wB|I=#eXT74U~A} zIYm@GnM?pV)0?W}EIuN%2)!2#xfoh7&s5KK?)Efo^%3213xN+isZ3let zGGIKDf2p)xQnx_-_r$3J#LzNvPBP!8bj2K=-Ij(LV>5;TT!+=IRlr_Nw9z0C*N(wR zUn>&36Jz!zm7>uw5;s%a)soz=NWm3dYDy#WHhxfeFCigCb5CqW4(2*2W-k@FxG`v2$I0NIBCX*JR-S9yog%Q#g?T zYYl0}e5_`wD^9GU-7H%>Y2fvkc;{SwYbKDF(>>Lv>_)viNpa3crbz5HiCNdgVfa>1 z{oZI_Aa>X32C-X(Q8}PnF@&w&aGp<3q-YU)VvBM7QXJlJ z7>>D7FB?1k=YJh@E&U!lSr~#7dStE1?icum*=;l^*iyd$c;5IqK$ot+5S9fDX&fnM zADokb?^r;2>BOcfY*n9Lj7B!fkvPxmk+MFBoMQ3tkd&4{)svo5e4)5{LP;J{1tHXW zCeRw+7QvW8Yd&sy7u4do0D6oUFYet^H754TDk%hSrCN1N)Iw@Z9tO-y6I2J+Ai!SN zbfZx7+Dv>b^SCDEOf~gpHl%LK9=uUT>1w6RgV4g!a4lp5#1};K{G?o56`F~Mnt761 z^Y5BKUe2#fII?aR#peL5gi<@Z4_ts*>zgDo3I4^Los*dLz}ZQOOC&>ZHo*;ey|U(LY0`3CE9OEU%2cqAyuvD{B7#DOrD&IY(t%b3_IKz!h_ z^LWlTLeJ4K&JCQhzyShhq0=s{oFjIQzVo8eCa6+0_(>$O+ z>`PC>U>et?Ky0OZ{>48lLNAYp4ecGxuvk2sQSO z)#Y|y4@Uy4$0LH`Jh$AQNOCOou=naAQ8I4s34!b*v>301gSY>_>FrFHBw91yC{EX_ zPeN^H#^Cld0Lwr$zY4rJ#^||bioPNBM(x0Ni2;Uzu%=EP9R;^B9QlT-`yw7JdLz=n z9-Q4-n;{;nnNXhO1y#YbEk$7WilY;Tp+hzszupiR?oth%p=b|fpLckD!XW*JSdu+#^LNiUH<=~{abrQD#&$}X4%vK|4 z8t=tk{z|9PtU zzTK6&6k}`u2=b=vHB=$%p*H%H>wPQatVmp^%Or}j*>QhET7_+%Mvu8F@iwm4l+`MS zjn>Rm7ZrwBt11awsS{)KNf4i94XNHSTJ@m2kMU|(% zSW~H~9KeNv;!)TeSutCPleBm+Krk)XkRXSXRY`oZs^?zut&j{ko3!vxG$tt#JE7rC zErXaw;Wv2MWNU%Ai>yyQQ{rPlyyueu`6ACFg%!oQ87RaW1GQ}w zaTsdm&_V_J+EWgXN(>z~t9q<>0oG$A-lu`O#Qm;(O!?G_t3rxaK5mp1xkDLjP`bGb zbAW+8Fh&m}!t@u97~Nu`#2XtF1_m#(WfkM}l|Jvu@cAEf-HI4vGojp*y;RM_OPP{O z2;(bZ)eoq}&dbG#*-gNwO~F_Y7r>BOu{NU|Yf2;WYVgc?YejR9LfMPh zY(Qt?YE=(087R0SZk^N|ogmG`UN{VoBjs9Bop;vF)rqUGDX!Ps{Y}^F#y4P^=aQqL zb3$BCD8%cTcw>W+AqQfse$6*mJvF?cSj>gj0$Biqi}l~^dFvYt(W-NTuBQ~;)3A$R z?AJtgQ+2uI5Nf)m#JbrflU@8k%7Q)i%6hRVTRCOzfU=@zle>9>}wYQR{=h8G@09=;opi18UK{ z0K1LU^yv~^IphSmfXj9wtBT2NB1t6i?&kRQL z#keM_T8zMZe|W5!hG>x@j5T_*_~xA0tTOfYAYYp@L>x!!8|31Aq0y{xb+1W5u%|X) zjI}OlychR1Q`dqa-g9#~f$a61oTOjRN!(Mt?$3V~slGyxjB&G&Gs>ggDB0tjKPZ>; z<$d{94!EQw7O@bSp|_CHmDsFmn&%>d5VoeZ1~v&uk1>``sk3`b<@ov6LI@!05!QN% zsq1Qt7?-*yaVv9#>-Fbfvv+)^)J1#OSPz_HYe_jDdW0$p9-X+`i7TX7i%_iC8C(~+ z=j#4)oI(p4yck#$w^oQXQMFbT9b%eiulwD(UK8H~^D*0b>8ptEfvWdD5C4dy0a%+c zhm$lL;zEaA%qkMp_$V3+cmdwT%udL{YL)KQh1%9NuHI^cKZz;zKJ(fJ+7um zC^fl%7}-1kxmTnkF-DJiv-daC*b!T-DLu4s;oz=XHZsH~K`74`UkS?k-KKE7%zejW zWw?M^-JJgSd^aoHfv)o2&3Ig*cr0#_+WsT4uV(%E&*N!=xDSS`(z+Q{U(b1N=`Z~H z(C+2+4lzLN-E6Aer)c#Mpv0%^w-j|(1{%_ExM+$n?t+W*q%@aML*k)$D)6Uq>bj)5 zFN)a093Y!}CvHUHzvQ`@ATB8{XEUYU8j8;YuN9pH++x3;ZZ%PLUn}zPOxr!V3dKXe zR0<~fHDXAdr>Ms>)PLb@PbIhMigHhxdgS#rGhVO9Aok2IeI~k4_}x5NV*+kH--96D zdmmM0jO73}<{|wk(SfZZ+cFt2el1=r=c3d>+?(dPrXcs8c%l5}xuQ7j!Fr|qAf`~i z9b*`~w?a$(1eYTgOj_m?0;TvQh>vT@)_Mbo8^yE(O2)Vvb6$pv;D-gln0(U?f+wrk zbr`di=1_dOIPLG4FAH%&kL(_yMph(G145s~>awDtZo3waIGYTlYpvH)v>4$^ldn}K zF6QtCg8XiMftc9q6%yRwxP3@*W5(z)!%%Ir7=TS31WGr{KCyXlrXk+r=ih7coL1K$ zHYwPcGitFz>#vCkh0QWzOqMs4|F}VueCIavOx4a*U!5!OaVZCMoh$vw?;j=YnX~Y3 zX7t2cie66Q=YGx!;y&7}Nh~iH7ln=AU^I_3u*V2m!~>J%wN~b~Ht==ZwS_*XvrUYu$Vg^{*2o@fSNZ4e{j*USMF4<<-YJ<+qxG?3;%* zDRB$&V7R7W8RLmYh<%O8gPj+bR;BDQSJk;viz0=h#63_8R;%lk*dphxP*0ar1m36W zTGQ1u^GEU2p_oH3U7c4{t+iEh`#gUlkDn-eCouFd@V_VGblumA1~SI5k)P+V6+v8z z*jv|zuJvt!q;5%mqYc;$@}@S(OM9uDPlQb*Ct zKj1ufeubpzUYirVy6{#4fjqNTL5!_N|Hk|_a*Y=Rn&j2piX+6O6oU=(Tm{`U#FH-S zx{;#%rO7aVpFPeTB*PDvlk>U`Z%~bIA__aM3)P zKSrLCmaw1E^Y-~4lmo8tp0ZjB>Rh7h3d1|9t@l0j#Rd$8WVjf$Fye=aF7OwN2;xpZ z5V_5%THv5bZ$w^e@b45uv1y#toQdB{j3e=oOEJwRp?9}k^4d+pCCYPS?u=t&nL^fQF>P*s1P)eg+$sc4YM=-qONAcz2 zZy?3qNjzA@kE$Oj_4^zPN3`#l^^_vUtj&hK*{RIC#J3g=`B#Iw0J0p@dt+YQX}w6tc7VLn!Tx`c)f=%nbr@qQUNFI@IuI%9 za$&F~lwMLSbtxD>5y}Bsi-J&*A+dcsfu;0CfBr-d195Rrg=m2IM4Dt9hG=BniY^p> zCEsatAw!C3I1h@EAXp`J%|!{>6hXyfMaH!RBdYHbFj8161(0qMZ{Pd8FR3f>13rn- za5ZWsE+GbxeiH{H}DX zX|$O7BHwd`PriK~RE~mJ4v;-Vl54TQ_*9CZHw9xqo5ZMv5qOxW_naxQ6^1hn5cff< zG#)!|q>5riBk4V0NslR;r`|OZzaE)Vt0Xn_KN$A%$8qwveS=SqFcx+YrVzYhZfgSb z{G`IKIq$5xF~;c5O5jPr0dx`{689GWqV8O_+(vEy`mInADj{7&$taK$^J}uqBCG7O z_K&3tD2h+1)iZgXW8QlKQk3j=_t-scJBRRv?Lpg}#6+3BOW0UI^~=aHJ%WHA{qGCP z>^+#V?@WTFnhclBokjc9i#0+~k3sU?io2nxSPHg>=z+gsvFHsD{qtVl-wcqmT` zC(}Ct`qotwq@!+zxkhW+G^_il~ z2F;&M>O9;+@NDOA~08 z?Ixh=oRmXo-DPfdMb%Z(`H5-SHxZ<{u(W!m5@gWUiXw9oBR}?oT#h-SltXHhG!HL* zgJdRP-A7T`R|x-U6O6!zWo|2s|0#p!@x5!KxbJHv2yS}Yq+VIRYZ!rFUX%G$$U0Xk zr&q+yC{45VT|@ih&d=t5mk0JLO{8;7l=+J;SjwwBnl6-D>ugvyUl_}?Gg*!`v{GdC z8qrsR;hCwl>PWM+j+9z)H;0{nb0A3Hn5A`@4TsGVl=*vI3hH>ckM3i{?o~BUl#3_% zFCklRox4G`pv8k>KHnki<34)`;bn@y?b<-| zUg(Y3inlK13#)i2l+X%!7tYay+|4GCIiI*R>ulM@{qB|~-5aOrB)2YQYt@Z!gymTL z%%C~V{e^S)o!~i&%03DD`x*)+ZY{xGHqsXwDOn`qf3ej)6mt&29oe1I&iB1> z%;}_c=b`uLFUWe#PrOyR`?tp(#o z9b*f@ZZ=)$u^W!nBkRj7cMs}`57nFl!6V-_g=eQyvKTHKb;KSixEbBjR4DUFW@$CL zOL6N;odM$eBHo3#@zRvjE&{T?D6-e=oyFry{4C-(-RBm3Fin$Z2|}Z%|BJ@!20b~W zr=}x;U%O3XPF~@^E6^;Z^&b>X(`JDx9#{Y8guWUg@;jl2;&b=NO5xbKxbMgva?$nl z-xyj8>Z_t@`d3y7bWgGB>mf(#hNU2V zum9aOZS^N}4wQB=3wiSDn}9tSi$@lBDeqa;JrYBDF$jyds(Yf$+ro>OLcqI4_k`DL69ouoNyutL z93WYwq1#z?8$SjbbFh@&rLM_TK()nCT45YKC^i>GR_`qKwzj^b=!;4ej+Ld=5ZP)Z z-Ftq9s{vA?c>(h$~JO1Q&M;D;_f{Q^!9!Bp`Q)uSYH`rxzBeE`no7H zmU;Xao11lbt4c8oa6Ck5QB(%iK~BfzC)prhDHDNEpgFJE37eQAFPljoG zb;7cB7IUT-O4lbY3Y~iQ7kL)axu?l2z}?qT%0Akkb@d6m*@UdEOW8&KI))N(s&$)x zB|sPF@h--%lmn|+T(8JwS4m}Wkdc;?@0dH&-MLDJPXSB ztnQIa#W-lyj{!Q_N1`hQZ$ka|g})abhjgqjEy&uk>}~IWhoQjb;tt{5X#}N{<~R_) z%DX9`kJx>!$a@3#$U0B|X~PJ=_p!rwO^W?-mu0)-GTXm6pbdM|g_8Fjq(x5ZCI1Rh z7{p(Iw@3H2u-`iJ);zrDJ0YuQIT-ovTvqzzb{plcqjH6SyqUF43Hey38XxETre=A45Mdr1cb5BQutA zI(5xWcH-Yv?H{cF-M6^HpXWkp<$oTr4Nd;Lsd->Xb7t|{DdjL|es^lwW49E6oDb7n z#E&Y4@-nF+>pbNPrAIUVY|UR8^st$hqRg8C((f8)qt3N+Q&w$t$CTdA1dIwYkAnJN z%9p1l$N!}Q{q=WQk6He}?fU!ssrq&f_xmbQ9>YHTANg)g+|8NGTyqR^0d74)O0N@n zskr1>>1n=MBC7;`oFIJUY%2P8y346_W9q*x&>YilH3EP4K0?#9FU`p!r-bsn7($D$ zb-!;d7wTSAkE|`(U5Z(tDTUt?Tqq*z>12OW;fqn$)6(T-sy+hwRbmKFBX@&H>%0Af z=*zILhvS>(LgDtfB^7sWx?EaxS@rE4!XGF}rzuO8CC5jWWvlwg7Cn~oNY(dpSUAK1 z(l&bP%w=9EoqB|Bqv%Q$=ID088_AhU6Ygfpe5j@@+rSXc-E?F^_F(<4htg`I%!d?; zEf~_VX45q7R%N+`Ze5<5;&*Fr>aiSlr98b{vn)Nx{(O(zT2c0)?vXs`89^bYv-Nrk zZR-A*BBfn8InZUh$!Y5nnw#wU^+x~wa_8_}#kBRT%nEYS`jv@yo1yy8rE-E0ZYZA7 zM4($6hx`4+xgJbmErV8;ia~1MQJgCIT8k<;YgGynMaKU8uDfLwsh{;SC%tEm`KnPoN zms6{9?mKCVoLbyB#+V4j@`l25Odiw(JxucorNz)&WWG`eEp_X=Y%S3&r22J?vr%@N zi85Obr3ww#%4?2IX8*?>ahhxp7|jDnw~G?06FB=OxIou(D+=f9pB@~VyXqd;C1OTZ za~`X5`kHr0%_Fkz3WF=Mn>%-Lsb+az6J@p{Xm)lkjBbu7bGhYTs4Ssc0Ml#&ex227 z`1KbPgy43jv~_=X^JPe_6c|r(=V@!%3X6K3YBZrx@+f6%RWmu`MyaWp_1sE2cpXip z>{eS1nq^M^D1Sa}Jx%5;O_Za+wGC_*=$@FHOQ4o`cT*E^i_V>0!z=a3+EO*ktF-Uh zK8J3l5$-08$;~>574@IedVnE0LlgFoKvwSv#luO!&!Ua}-J@^Hmq$=KNyeX^P9Mam zm7${Z(`b8Q6xda7H~> z3WaL@#I?RCst4SLs*6ynzCl;@C$uRUdjm2~7Ja>MhH#_a;>SQ-BVhVzffYC4riZay z28lMYvt$cmtxC!6>|_HJm$ut6`r@O~?^PDy)pfsZe7DyppT_{T+Rr|(kwT4Ig=aDl z@M=J{3z)LZ#!~Bkue7CBj0R*S_VVB2e|&y}3y5h*Rb7{dz6Peu)gJSTa&qmMjV z-{Io}?Arcfqz{;CaJT`(We^)aJ_bgvnMg8;aRA)Cbik$o05XU=Lh97s0_U+NMzj>Cu?Rtv;ADRkg4j5qSX;xSlp3@=3oD?-~$c0DEcVW zuT24xdri{S)Kz{|Bq&wA0YY$dQ)j-Q=q@M(4>1{#_4gXboX*cRO(p}eDT|u#(Cy5+ z3yg6WYi4#2(ZUg+D2k_ZJ2?s5f1Ja`+&PJ(N4X7Z6_MQovL1@MW8gHkK2?@&urU{t zqVOZgbE0rV#t@Fv9lAk0CKGi{Lto=Zg%}{1;*mF;rp@eME3s?{cxyk&?UuzjRu%&! z;7%;VcS$fi9isPmj5*E89{))aNajCw1I6@J_K!ThK~77K+jArEW^n~Um~Y2huSr?f z+bo!pRRQkA%Q?9GV`WjNG*PIb$m$kIhhXH=+GMbQZhc>U77u=<+`c4gH_wv{eaj)V zWtp#4lOc;qGMg3H_r^hvMAlsxwY^)73xGRVP12!Qy+)RQzd+?XmlHodJE5Se6+to^ zCJW|te?t*^%9?2*;W<=TeRr5z5!W?q7d%8*fg3 z?w0y2iiwh|G^KY9I>=c!t6P=&*98h?ncgUN0_D_dvqx2r6)SE%Fk3Lij~ZmSFzICF z|1NF0*`Usd7Y|0M(O-;xCGSA4V$?Npn%1MeeGX~-X`FIeI~&pv%12ZLr_dT9H3LzvQfLvi+vP>$`) z+$=kf?jeL0Qayx)qXBx;0$|-6i`BOP!kAiRetwxkSx-1(YI(TQv;)e=P>`1e@mdRh zR{ln%>dzGuWo|AIBRz&s$Iqj_pU~%FAAtx|t1b&JV#1W%(gb0S^oS1o90c_F;+>#r zI_Xn^Kxz5!5NJL-aeA$NVLkG0Sqk;7pR2Xb26UvEf z5T9mF%XI;Hde;P!`TV5Opq1SgctPobEu&G2NuO|ZVvoF8kWJT$Xn-DhnRvy_!8~Mf zpC~P8MEghJWLfnF&_OINGVrn{{nzWPUB!H-u9^*jAV#lciTjL0lU=+l=t{xj!&s3w z#8iF%AU5ACe++m9RZr^vJ@|;gZ=L-k?F(B(By46rU>#q-}hb`8VS7QESl3 z(SRv!Ox>9{7R_vJ$ii6WG7GLWEvS6_`$V<#&#tMCJ$<6yA=d*sl=d&hAbyCrbNY^ zFG7**_4F5zw}SY%%f2)8n5wxW#Z9w$Lp^}Is;~nH zreqbIH!O3g?yJqj>ye&0Ckq3zZY^v!%un#R^8x~14c(a{=j4^#2EoalOEq>V7FWFi zTg7BF3>T>;Lv)g&OqOgcd)iND3j@Zu^)vx5rzy~Cx(`y#3qaPwuIbm`9&tzURy9W_ zMD|$Ie@MNiX>*3!_3by{$97UrvM(cXRSw3uW>#cmJq|bU$KDqVm4!IIbiw{INNc0Y zQHla=p=%EQrvJ0O7miw=_c!>nUHP-4%7mqg!>uYa1J%Xnk5~Ws4eH@2Dim&7`%)1M za1pobf_k$E&v+v~2FN3y1f~S^DDe_dEG^f%If>g@itJ9vx~l}l7UIl;k+QFb1l1k% zrVbLamEmSwKoQs?^TXsNYf|U-b6B(~m!~1Kfu}joe7&M+0p;?_(EyRRPA+jx6Y;J( zNa%$rxr;()6$#j5P0Df%&}DcPr0~YDiyK6@aRGsB9X2Y8GM7Mlo{0nA1Le=B7@FA%xX*OokZeY|g4)cLHu%vUvHZSQN_AR_pV+ z^$-W~8cp_9#$Gw~EjS!Pk@aPFSXA~!Y&PH}r|8w8>RUzO5EJF~O|PKZYAXtJOcqyX zmfmCF$DJaIo8}PcEDQwV)33kz9Qn05m1V;S4w8D z-$xjM*E5Ry9p11!LQyuS=;T!qzqT{CX(;B-2??YXZ}zMne}teI6Jh$|s&V_&m}a;5 zeawpyvjOLgO`U}q752~+ZZO#=3Kp9D(0TVy$2m)UHfaH<>ep_+1=QD)EY zh4XywYZIsrvhL*yEc(Ax#Lv&i8|s{?Ij3%4$;GaFPWu?dLtC(u%#Pfns#j?WLaMKO zl)c+M3rOcNpgv;g+G)jusI5FuJx7Y^zffUKXwocm4XvD*67eHjG&^q? z33%?ZIYoZz*c>tP_R=itnIH=A9RxZm^D1SI-fL1W>oF(dR(lus;5MK$+-P3JNbJ>T z_2AGP-NonlnYz@?^MhdHpC%ZOu)v9Z}{eE!OhR ziFmGNRgZs(T2sHCZ2Yo5oXFbZ;o?E;&ZD`9m^@a@A1JR7Ddr|q&$vNuiBtIXmauGjgw zM=0h$JE^F}@&0J z-o~;fgxgS`b{=DFLCu@TpwQH6a~BHX>*!}gdR6CkW=5IIte8>@nO!_6JTbc^6Y!(8 zhC-Lc!Vrw;qX)H}G(jm#5uf!mwQ3?r?^fp4O?>Jb;b37%?FK?&cAhtV=A{VIli{pr z=zVBQh1r5Bd16yebEvjjT{MK?Ot5EYyD^+zSX;*OO+MODMFQD6?lc6>dl3M?gBu z7Whd73ORf@-Vw*a%_&1hik|-c;74wDkZU>V))#+5MWNS=MtN z-M+NXa{BK-pGA(_kS+Z8c)JR~`UouLxTG}aw2L+>vDc9|U|r92rB)w*cISlMizD zfhj#Zo6{fj5Iq(&LX0S9`3O2LliP`@S=?(<0De_Fv)h@a*=IeHP+Cmubxzf~0IpP? zMwVTq^vr|Am+AlI|JKlFxqA7+;GY2SEDFU6ompn*l%u!cs!bHy<8!x`99f@<=4aRM z66N`sK*jTq5T!p`7EG`5NGxSHQomV@&wmIgHTTfUnRzu$m4BXpZvRB7nx-`&4czMC ztm^5+?dZ&rveZZTN8tE*P(8rVS6&Q?sX7D-<~H8o5$Pk3o|yKA5cVrnowM!c4Rr*` zE4d|Kn|p|@?vjJQC;MFTRcm&JE}766QLAx5GK#NPjE3YSpnag~=87!;sW1%w!fyun zQ_3TS+8>4+P_pp1g=Na6IxPTh!m^JOc}r&|;AZJS9=VIm=hjyOX@TLxYic6k^&&Ze z^${qZPGt6I>x$ms%mbTU4hUg3jycW!U$W~e<^?cx=I-aRLxD7hcog-BH5*2O9&6z>I$X(QLcTc0Pi87n= zoZmDBw^LAC4PyRRN*7RY#WPKl*&t4cX*HJNLgi+unA|;b2{i|URMz{XdQ|lF_^sm4 zpWx3Ue;&X7UgNTW(y8c5VYksQB7~f(y9Llu30|vHn9{kq35$okA<$Q6`L&CF%eSEi zj_dCV1=qES!Z*TX7}83ZlE40FKYRqd3|7&Y7TO%4yZFz3;&P;S`Qqy@ZWPOfE@ z3|RDAzM^^%gS0TEBe6%;!&;9-ZoY3Wp?jk6yYgw2LjB9MuhH@QHv$O?>0o-Fq! zUT+ve6L5E^Gf8t%lwJ9#w?v_(?mYxQ6`&MiPiOY2b3&J;6>sgtl-46bdc^f)%kDKZ zH;-lmY7@vd+JtTWvq`D9xJyFDhg2`L6JOX0eEhlQ%RwqTICmd#n^G&iP4s>f?$m`$2x z?jeMn+R#zS-1d znb|0n4oGKGHD9RP+L?=caCc9LFqnN{m+Hn>bj?2-B?6ll{Q8@TE}6T1p_q3d$-J6M z*`4pRKnQcb^z!_MTueglXH+M|)Z$?*b8YR!emzkjZgoYOi^B7A`fDv=O;Ai}y}03Q z)ujk!zs}q|no(TEbTgJUQ4TwW5ImgnzCbd6<7(Ys4I{jKJOu*PoK8;;xjZX1+)#eQ zl$HgJ-<097$PA;0Y=x@Z1@RoyU zf%tYv`7kSmGmi@(Z6q?Ac(XB}>c$3&uawrF3?RrBbcGVUGDDhc`5VHP&AUa@G!I*s zzFD6+Q)fAWeEI^0pniw?GP}CR&*Rr$XCQDeP5u>Kr4EU1Mzh(Kbm<0SgG8j}K9fPK+b>l-143V}M)pyQ*l4&LvToJR-JRJcsTh%6 zQmUuPX&;6??Yqugr(8cG{k_HolS|Z0>6Pr$=-ZW6hp;B)WMM!d_RwWXV^xP@dcZ!e zXMaUxi@#Ye$mO}D@}nXdFvhie2*JDnIV8|QmJM+eq!#~1k)EwfU(JT#9Ax8;dSojs zrmN9#WG*@7K6h^+T!jK~8+sJ4_FDoUu9-V83hp))^;jCYC?*gGLT zGfmTOrCS@zhe>ay5hIpkRTl$xCUweFsR1sOo&}lC0MbNhj-q%yTyO>$fjuV5UIrX< zdJ+Z-#2!})7WN+MrLO5z1ac^oAq%0G81)&6;|+T6L3k760$`mDf%wPpm{wOnK~HgM z_Ap>dTlbgMS!!ES*L0#xRnrYjlzHQN&AlE_(S4%czSP4$^7~PrZK%hkA{Yq7oYq8; z7FFF2q$a7vqUM-W6=|tTX-%;A_~YL1(_cV8fO>0`Zz~rn#UIX7We&mQlmm6e@oTC$ z30b}N9CK=d*y>!F=P0Wa6G3%-vfn-JXT!7u)~%7~Eq!T~J08D}_%5 zLxAGvTR}SSU13V*8>)Ix6NE6=W0hKL1xnoVaXVV>_orsp{KV8DE2Q(b$|AFE^=3XZ zmh$XW=G~_3onx{blAini-xZ9&E!$@kPN(&<^-&1CR>kd;zy2OFbCx>iLL6(@1BL{3 z+tmZO62(|b6}2ROUQ4IU{A^nhtUfKAq@R53C?V z|4F)3q)&W&9_iO#D&cD6t_jN~E>szOKtnX}g~qE=TUSKcdBAVv>t3eA1)TIG3lhf-dq4yrA^`g%YJ zrWn_f%8P&tn^M|`sz)wsV={`dl(qZ;%l}cg?%pz2GC9?sBS&Q1M#}NjO#Q|MOBo>T zn(GnJNR^!doVpe|V?1>(RVc=yUny2FvFk2aknKdiis^)~^;^U-r~OvJD1K)6#2qRy z7?Y8W;)Eu0ze7;U{N*L1*Y6{$J~?H3V#<6T{sHEG&-_YpGfHTdy|HgqnswkmUWGKv zNlujc(T~)Z7A)l$l=-wDk;Rkxy^-~i+lvMp6-+}yR*T{cIn`+22dM`bt}7;E4<=br z^SSMIr*T2Wlxl?=7L}!lt#f5(KsHg_`TGL-Ju%PP;=2-;u9YjX;@4j-L)hv@yk1-> zpjZ{His0n;MNy#d&reO$|6RFCZzdmeOlKxTfD|l{n-tQq-m|(RF{D>D8|1rn>d84} zR!HYvD*<=2iMJbFi;TIl2WK*2jB7JEdt}|$TG^0t+?Xd*3He?_49MNabfNStI#ZUF z3K=t-e*L3L$r&)ERxUPWXO~Oa*Hs2p&*&fR3VaxQBX=%dON?q9oxs%r#Du&SrF7~+ zewXayM!8X6MHMMmGF)W9@PU5S-z)FfK{^JZEIm!uq)m_>fqGbet!bqKP94Moe+=gq z7`4^-l_9Il{jWA?e)Ha?Y)sD16_G7+rGhi$^ku~8W_6DybaL0MTgyhJm}yP;F?ggi z@u@&tyekmew-ZFLOvBri#LR&Y!`9oH*O*_8!s2npC$?} zWOv^Lsl^+jY1%ACQ+8g&9gx+FT|yoML}U=}@~Ht*FmbmMrb;!0oNPCsd}^!*7$(ZR z2{aU~qONk_A4BzsVxk>?Lw1%={rU5l$dJoX_0;|I8`R^HDg$T}PLq|vK27SiEN@g4 zc$w)+bG)tGZkx+Tbq6s~X3s<(1{7{KkzKdXJgy~9R1{t>GQTn!3b1=kOsR$HE}T?s zyjH~50B)jPv?@k_{{#1_O1X)iwt|oiS9*TGuYf|=Q zm($h4fRV&Q)qJI{IhhRSrYOyrXI>ipk2yQkvE6dJPzn)hZl$!x-PG6&GL#?igQs2V{kAuGyH5 z<#rx!(p1X+gsyr7-kqiklomsa&V}lZO~kwCkyrPgw`C(WefX4|U=Lgpd~_NT98_L-C|Yz?L~RK?sLxBHo2k zXJNm%XqWvMP%XrXm&+rt?Q#f@xDllFz=uoDJp_;PjF~<3NDOrUet{tK+ZRtu|M6-w z=R3|h?L(wRaj!{`PL|mdXSG~PalEhsaH)sLYGQVSG|;)EDm%uWz~46WPW zOVFm~)9Ic?54k1?rsVmIAep_sOHhpIk^Oy>$BQ@92q#a9F`_*3TR|wN%VR$yzWSk} z3#C?lGdJg_ab!Aq5$Xil+DRcijhObqZf6dmg+Myi-ZXg)wo!wt^+;@itXm7e>s(Y? zm)y2$T0p$k4paiL)obLG<2J-eFk3>a@X?~re5lEt192<2VvHV6Vz7m!+d0IvkE$UZ zC{74rJ?65paWnv%FqwAnm-%OPPlT+8m@FoU$>Wrl&m&Mp|A{VEq>AzhtOrP{3c(2q zo+rE!o3k{5Y-dbqSHmm<*%u$GgP5bm0xT-qAZU^KL;};~;q-NkYf_d!5L}s_q7kF` z&#GlQW`9A6-V}i63UlPueRHYe1(05erfF9Tpe!AX9kTA?$X|ckIwz1;tDB?BGXwkA z`_A*XOeH4|Mb?)!5y(4(6+0n>N8BiG34TTLh3&;gy7RV%xN}+uwM~d z4Pu&d%C^Xcd#bt{8vXhoE?EGV%pOU76YA@Pbkg_Ne#R_vi1IYb9BS^K5ykyo;t0H+ z3Hswjr0&eKp`YuSK{2elpZi@?E9W5YCq(9E&Ei!|S5*B*OqBWiN!`xu&e8)1YYI92 z!N_H|Ljm==qU=MUc=f2VuiX7U+pjn+UxOx7T9Z&ba*y2VPXFZYT(TQiZU8#ZIawrB zgi1&kQG6&+iMg5#Gsq;FW!xJ}6DW#*S^ngE-qXDoAVt~jw%vBS?Vtbf?2F2Ws)ba| zlacl1j2>9ZX{dfNP_aEbOl9&EN+`%SFoo*DJR^tT<|B!zLvASKR0owQ`m;z_%6SQ@ zg*b`bd9tcSSrS99Sq^&}@ueVrHSZ|r;>=RcL&qpHfOTab>ue*`tz=4vtsm(7Y@V8;N>JfGp5yvS7`!z(gVd_?(GxA6wjLbzc&HZuL`+H*5DCF+XDRCzpZ!6V;NqH#~-4GbYHwIZ?- zALLL&+xE8YROKKbnOW7>$z^jdu zt`w$n+Z%OHXTD}p&*IW5;2MVl$$>k0;t z#$Adz?0G{~ug~#DhZi88d{k~{PVbr0oc7XR9!EC)FlPS+X(DE}AS{JE4Lubd14sP) zi)G`)qL9*ZBc}L4wwZMwShmS~;xO!&d9td7ED7m?QuhH`N~yN%iqa5!$DSImX_I=2 zUe0{U>@~TAoV>)OPT*k^xjeU20Y^-=*UFb(qV;`bJi^bvnkX|Qt4ad)I3t1Ldcli{ zvrporVRSM;QCY`~M5-vB*;koedMe(anG+=^4}~aD4@J@}R>W73dhQRSwIhdM9-P^x zY>08GWNa^0#1>2_kD#K~U1z%cdxe_rB`HR#>s;L8a`x&E+M%uesxqTqTx=>cbV(56 z<%}tLWSWenR$5x&dUeMv7C8j7LZaf8#oe3x5kLQ7*&0=IQQtoDj=J(NI4OWU>JB{h zCJh`7I<;uN>l~0{1SHGT z6Ho7$`5+V49I6OQm@=zA&0*yPEdP`ht4#7>K9H+cHeAzoj^VmlHNyQlPF@Osk7K6`0MZKtA)ZH9>lwYs=xoNfp`r zF<>c^Q4ZJC*3y-I=(m@<16!OzoKVH=ftSlZQ15_@9 z+G)jbaW_@O9>al3!KQ{uofN*;#`{QHG$YUe?IkBK=AOfcvl3)7q1NpEd(53r`^M(X z$og_lMx9q5v+5?C1Vw9glS%*MHSDTrD59UzK0acGW3YM}OdPsE^*+sEv zoS<214TFah{fDt14Ji@VRP~_nFE&bzgsS^2UFJE99`rz&cbQxIdSODW7Gr5mBFXWj($4Tbk|SR_F@ojlpK;QTs5 ztmu`N#QSqENiFeQAiHkiO6;{HHl(#!R|iTt4b@GYkx*(dvhLEE+1)qQys>=B9H{eX zz9{4-7fjP6HU5P{DVPrWP*}?GUbpwdJ8;bxM4Dy2$-J7g9@@Tx?8giAc$Saw-W-_wAmjgjMnUpuz z!_#o)RQ-77N)@o~tLt*8y%uqtD)X+YatL1ft@5{H`<~CBxC{31x0BDVK3%SFC)0(} zX2<$M*pue%-#c{Q>an7~^PF1f%#YArOdcrLwzmU^IUH{Z(&1Dn^Fivn;mke_ zl*^N_*R0KYScnXfGCv7IIb80#T@q5ywd6g&t?sB4!j!86ca*s(c{}lvxv5!yPSIm3 zw<%M9sTpGp!RdZZ0P8>$zbfUCy0$Y%KQG>$xCKIuD$+-QZ1cV(gtrHRUm$@MAw;QLljZ!`ol=-k9(L>rd zv3ewE&qDmg?d|G6Y$!VAr`+s`!?1}ZDMFg+gVrowS@kUXaAv#%pB$6PX$si~UM{su zc?3#L)el9MquiIjg!kFk#@2Lo0dN==i(vIwsV1gte+H?G8bi@ zhwmx6pB|^nGttwtP<0=a_W5{?{R0NINKPtc6FtZ8h!#uvK&ZYFD3APHpki7M?d$iZ z68fp!nKetzQnq2o&TESM#{M^{i@~$c_jPbCO5vT{?etJM3`hH(!#Bn7h3Ft|4ctum zQQwGbCbtv0Jc2TNQ+1sNcjhxA>)D}r9t7<>7naE}O|=i%MVVrt%*%%K>huj=CZlXO zWTzbs`fhYCc_uiQm&ZDaD=0LG5PUzeL*#kpg zBmVm$cez8)4&{YV{nu2X_VrLw3x$|@TNvZ_L{*urPXc)E&x9UCmZO|%pv=3>A*Teg z7;0XrcnM4v@v2f+e?edLI0cpI`uBeik;4>m3PRQov>aSjE}K{qRXwOd4*NU`f^^vX ztLN}t2F-HR&wa1L<`F25{N|trS*I?P`LMGbrEY2%+1mwoL47;*@Cbrr%|LFW7>m6U z*ewXDjzNatym?H_cB+o(e_@Q#{pCWzoxU8P@aTVCkb=B248vis14Yg0LcwF}k-=~q z*<@J={WvyQ%tFKHXrN?Tk+7_TAw9Q~GCO*sRe$7S4-}0 zW;=qT6InNrlX(NuEQ@KN?4{2M5)&2gSBNpzNa^exis>}i?d%~v2^xkEbqz7w^KY?s z9`W<kfv&Oeq~%HVAV@Cum;I2KzgUZ7DELgFz*ComF2(75m(>6{Q4B?XGpC zQsnVkQ=0{^pz2ADS+NDSvxZ^A`?!7!zwm4N?brV>-t-qPf4cl4|GM?#4GawmdkBcf zQxP&xdCf6Roj_5hq0O3C_cO#uKmTDxjVU=p)eW1T-|1W)LDOzJxFlUCQ}}w-S&yAu zEplCCaTkIz)g$^G)71Az+YdfED{fZOXYwc7Q%|Gn@d#qOZ6GglZmNle+PNTkYZa=l z7liW8q7T8VZ_T9w^YRF_l}zrk$od$jE4`V} z5YtjKlJjLrSc`Jq9Ijw3p@^vv9qb7@Cf2X zLh?ZmMZBDU>rL{wS23#bZX8BVkCqLM(eIn}j4)8_Los_G<`vd{Q4ip z8#F~FV>|Z60LBY&wW`OSl*_vzbf@N7_Sfq+Xk{$HOgt(;x|joWI1Hajp%4yQ^(=1G zmu=;k_CY9*{!kF!flrU8I7OL4-;Wl!`DB7(yBNPO4_5g*iuDmN7eDep5}+8M=g#-YNEFdd&knXP6}4w4x{9j=+5R1~=GQ!(M4%15W=V90l1i=vWStDX<# zAN$qeE4l(E^VK+yHy4GCV=tdBJ~N6}mf;g2*feuxu`a-W03I{KFieIJ4svT$J;<$z z_cb~5qv{2slYrN=RQDX87s}ipuJR~-rE*J}leZ8LpRT^0qU*NRLrkYdnZIh3N8NK; zHV(sbJnEGh6qA>8dZG4Z6d8iC=}m3s#v&(EF{+q)9`y$(dIQfNBY*q=;ReS{38U-- z^pRf*)^CZoQLOdRD#BznP?0F=339lPB}acWhqsk`#zPSY_k8JEw?u;AtpR=qldY%#DR+ z9_?Q!Q$O^XNRVojb_#u*aQSr`UpUQW#JI=t28Iaie#&%4Dq3S0{!4<`vqe@f*NU2D z75?iw=PE82{PDvALzsN?$C(eMOoT0PaAxv9^^ziV9tN>pm=WMFFK!6S?WzN2}NL0M{&jOemsw zW!9X=jPNzZB~cD`r7TAR_Sln_M`lpF5?4WL)(cd%GT6)LwOYFr>}ATnhHfpN3s5Rw zxCA?a)#GL6R0S=v9`rMToW_R*ci{8mf~8pW3ADaM$Pnw$UO<9ZM;NU*fUp-P^-z=! z7cIww|5F$n6i+;i`U8*jr)sWJ^O@+roNH&<#6X!hg|TXWP>M(OM8EZGtGWl^G1?6% zy6j!eyw2j%Q4Gm61Nx*E%_~H4|0{@!X)0YExC8G`Cumn=5Nt^6aGfh3Jr)TRuN`NQ zBC8c+nb*U}Yh?`D9g8CfBwDT&WZsWJe$Pe`G;$xj@;M zKnS~}L~0cRa&u5BQA+nqO?y-YEkxz5jfNmj8-WTd#GzT7dId>8weE|=#~!)7oS6?wq~`Q*gXd8XQam_NdQweRow5&)lDVe5qO?k znW}_W3t3Nwj~A9Q5C6vct$zd+tzE(t7`dkXu{l4c9K1Rd-PLX(AG0)*Aw7zx`m90m zj%l9WJ^%jo$E33>$krI+ZpC_(QtMThWBZ4t`;;ejNBI|rpleSA{Uz&utq$cZh)q3a|aZU0 zfygzb`PT*9;R_G*17%bK4j*%Q*94Mz8b0ab9!wZxHK|hT&FZeF`fz_$?;N2L%s%z1 zqgw-TRr8LkFviVd4&9g3I24xh>~P#VZ;l8s*9wzwc+aU0QazvNe+Zb;qg0`6L(fcM zv*}~n)CJP;2u#zmy?9`tX_rF)?WGRwdVT}2`Tl%;7$1s{79-P zF#J~rv57IRo$vn<8**z>;I(rIHM-72AcQBC*<*Uy^c-IFaOgYon$jv_R^x*eL*&10NDaR)f2kL4TC4QE< z$*NQKl4^FD=ZcRky3f1WzXWrak=IUZ6}PTce+b`ZIZ)>P>A%%)rX?gi{|T?mfK(N$ zpGl9+D|IL}jwIpGh5)JgOsKvad)^4d>->ydUa8C~|Dx)qDCJ3HuBnqzraHFJ-J{RC z4&-lg*G)$8lFP>TFWErhNZ6Qv7!5h;iL3hEjKi>9ot?Y!{mdxuo>9tfrMk%TOJufs zMG~va)+k=3Bd^X0?P`*C9|Te`J;u+(9a%jwgc_>fE?cAQYqCCx9MjyMWy$PTxKMghkvEa$do8Fs7Y@Tb?20&kxXN58 zwR_dxyAQ#gs`Ov$5=dcsdE7C6HHcR`HGmJZrTLVD5hJ@_Q9N3L7eoA_puE~XN`RaDBS?|KJbZ0-g~hw60`9L)x7)rMKi?8Cd& ziW>^A)!MQavc6O=h$+-6ues<;rpARb8A|Xhq%}_LUxmN#yD0}(s*3+6m&qu#^t+5P zy>|+op3?jG_jqMmTSpCsmk7F?NHL}TNqO9jw|2Y@^otyRAzuuY$n)et(XC5nOPVw- za>$)UUvx4K!*Uf2&|Y%F;zK1|vuI5fs#{FSOcN+CuKe8Brc`?X=3}H^3lR}l-(1H-p zV@@t#bqkg~F~)7EZo)|+)L{3L`I7oa{rpEwM%k77ZKN82TwKS2GF#2Sl*~6{4v>OZ zT8W!Os}tI_ohZ$E;p}B}pHLNxB{wQ)<+BoxzN5HG_>w8QxC&}~kBXW{{4s(5y1YR$ zg^|OsVK?69Z!XY{7@yNJ-uhqYFQ))0m^Sqsn37xO9fi!zwou%>R5FT_!qUx*HxP@f zp^|txWt-yV%@mQfhPa8{#+#9#G3PSs*5%X?+X-YCMz$AB`H#ht_*_}m!WegTDsD=+ zfxYha*?;4DE~rcTt}{3V!%fQ%k}!?}c0w@(Og`P319isoK`Mpn>0eX!YQU7tWV%yx zs=-j1(`@@h_8*&eB>uwNi~rfFFaP)Z-<4ng!+3*>v6*=RCARRXH`(CGY7##y1Shhh zc-}C^*GkoE$;>MoP@1dHbhrz>1yqIK9EV>SRlGjBBh^EGvvY1;Vt7~y~hju8ngmB+C?dk~BM;`TuwaVU_dN0riMa|d2t9q&0U=Uv~O&;SF~ zwl6S$-d`su#5g6UskZj_9P8~gW!aZdSe-Ob=3P3mrS&`vo7gi4|7W%~y^U-Qmp+(V z-*wI=%OePQ*FC1S1xE7`re~7JUl5NIHjvy-l(HPDP91e9o|6!Gs+4Ncv~m@bAySrD ztGB((le_u@ysnR%w8gPbe`TX(i^tZH4H*yR+&JKyUuT@tR< z5t`MW8ra<-XTq=I8mzoB+vDO62ux;3cKQs%j80BO?5jnS4(wq_uz|xG9O1b z1I6?Lu$0LthihtU>EZqFz(;#R)+q*yEK7Au60{zB*3&DYirE7%mq(z~bk(7#$ASlt z8E^q^yaI9!^7#4ZKoatF-1!F=SGoPCc3L)0jJzDFPTB0wh#O^FM$gt&bY%lIb7y9= zPlbF^XSQvji>ZLP_sm>fmR19Bm7Q(16sAN9GWE*0HxtQHIi;0-tH8uw#$Kvy**8W( zar>!v6audq6!6#0(~o-&gGYODFYcGg#Z_3w_>%#o{<+|7#4zD9-kQ%n}0Rm#$Q zA_fyTpB1542@HeBWu@@GdNS|ThXor<$-+J)3viKKP9lV=8=*Y1Xw7pqOCswO!zOmT zULma`zOPES2qy0X2I5D6_OjVFM{*(;Dm7I-t{|IOl6dVFYB)Oz;pbm#yHwU5AOP?4 zTa#)AHv}UF{Pu*s^?FJfW47=mTkYtVW@dW)?J1hrQ~@9 z@u2XU6R7Tr*yEYHDoklA)moWrJf84!D2#Ec?TMtTS>b{yO?`zBYMV+Swov?{bK08N zOFyYzp85_ccs%FygkVfxQbO@p!aA%SkK{)^K#z7f3@6hzh&@WxbU@G5zRqqbc7iOY zW-XK&hr&`0_nB9-6JtCJ`=O4OQcNqN>~^XYwjrZ$fLHXwW-Vfm7>}J$Wn1k^4ARsJ zZfPe&OjCZ){Eh{s*6^P3p3~tmf)GyQdacpIFuavUl z$T|&QbDdQ8fy1y_UaNBPV35YknVagaL)F9HM3vBmrbjETzIET>3R?3>!>~2+zRW2j zH(Bb7x}|2aT4Z%g#sc{G9=>IL*$%%bhWK3vze7rf;;$> zLpZa4s(RmBXZDKe%!D%KbEi_R&)uQC8$xW+QTFhCDbw6{Rb+p{x2%WmIX!a@;am-- z^r1l2^)gm5v~UlDSP4OfY{a~$hrSRd3@mZ<9R9R|8>gAPU zEM;5%?N=ZDZv586bk_nwYEewJat#Hpu@>%Yl1wIEZ|*t8gVJpcrhIubcS~YQHAFXY zI66NrLe)k7{Oi$Kawy~`7mTTn9~PA|m1bWG#OM*K2sD#-=T6Gk>1>zrAF_O(^9fv`F1uK`E}*83ITdoeF&7(D~Z2uKmRfTA@(U*uu;{f3lt^b zgEU`|mk!}ML9^_uuk`|v)op(aeJx2%hMcNEu!Kj~Sc#ig4f3o$WI;9eLi#pVa|F<% zEwZ}Bv~N}O5hx(*z6!N9P2Opxfil-xs<+EniI|Vjt7e(X;z|s5edqvlzCHW!5-9ncS4NE(O&S@vljvD zK@DE=jWQtX#)G@4KzgKwfdXNeN-6kW;0GaZ@3=%0V9k5FKs z%)4~bh0>GaYF*o?PGI+QA}c{V_3(P^NhsU!Z!&iFmF32#`u9qiFkEy*2O4$g4(06 zSN;CPs{5Xp(!r9ohSu1VLUmgEDpsALqUvKN_HVop!V#w@4GVaEn#ZDTy+N=v4gWfRH7&ASo^!Nb|Q z*rokx3{X9drJ&Sa3rjfItBw-*pfLn@JQ7#gSJGH#ZmM-&_Nr$F6|zU@V|+nW%DZQ^ zOM>?DnB#bZ_JXQb9B(MF=+lx*6=)5A?!4FXPd|@$m6a(n48taKdqLU8J4V*mgES{A ze>{N(?>Tv1uLRo5V~Fg@VdEUUQ0rZ(G5!3zsqebcJVk|%WImu!y#y^hyjXG4YwdBr!1$u)Ri=xF_{d6w@mM)mb2*9 z>}H)G8x>F#pOWRI=W$MS?*&Lvwi73|;|H(>wbd~|&NZtD_(iQXI8kt#JmpMJ4{P;k zE@)5&X?Ml=X%>GjurWp>uh_3BQuN~=*(NQ#UO_zyS_25GT2YLrenzJ2YzluxJ>Puq z{_Z5tj4__%-V{%YUsc*y;`#bQO)(YxX5hkTfZv*lLd~hEi9EgK<<1c8U|p)wu=C)IuA*vdXt2WzS(= z8d3w%gQ@cnmkMyUR43+YrD=MVsoR;0dypargsLHL1KG47`9cfxg2ou})7&{JY@K3i zt@>0ipxAxS#O^v4)?>QBIUET}i8qVM7SFSAh<(vm|K9(b-uXcWcHR)0Qt3*ec(@6S zpZAL828NhAvy;P{!X~xm6{$C>u9R9}^9Uh$Ag}#-M+eavM~XG|L<}M9VogeU7m6`H zEeS69p3u-;qOKsZ{*vV4s?)Sq&TEY; zP7{Um7+6mv4>EK{^$Bmr7*`@gQYnrC*3UzOg zxjsD}PrZ)`L*mrcA*QxeV}LfgBTdV;p?rmatdHrP0M%!0zuTt=kAY#k!+LhX^@@V5 zue1B9&|RF41njX{hLfGDM+(*LUt@V&LpB@elDP58O5vy7IeItZl)WGdhC@0(Om7;q9X?7LYq{J5ABuQc10k~Za(`3F7C}zvBVgm}{ zk(g^fp#g)7`K5QD1|A`VdfGLr=t^O;>5ywA%w7yNvTp2yR)IW;9sFG(%ZOn%>3^zb zZytAW*J<2N?|Ghn%|?R)tA)|OA@Qz8x{#gRL0f&Us|=(sPRPM*pf)};)o)sJexkEG z66CdyM9DSs*WvVct6sN%Va!RZJNYH~44_Gtsc}Nv?jyRfdUYRE-Plk`SCsXfBC;M* zp|x0$S)y+}A67 zvx#f^zb;RQydJa;F%GG%-E}CTHgoD$`FM=JN6v&&M-dv2nKMMKtvcx3Bk**R{*C_U z0eRhzq@2HQyYn&~l30-&WPN`;_K?^9{r3SHDYXLdWWHdG9>!)(;?;yP?p=?!PGsGO zxYxv-kITena&@U*AZ1ezc^^`R+$@EM?Rn*|La=T3p}GrdW+UrKK5;(vn)(JuY~%Zp z%z1~8G!m+J@AMbqoXalf!!lFiFT2LUC{K>4{yzk9t|7l>qdI{fF&%>-p0iHIA#EDDn9?f2F|dky1ZzQZI8Vb#o3W)>P7^t4D~#lb$ODF9FQC=BYsT3)NR; z&+D-%cnsGo1%g(uwDPjMMUmd^TUNzG6P z!Ilz3tYg+MV}6TkGkOmlu+@nCh>6mnr|H4I+`s@IrVzFQ9psp&N^H?M;hLltt@nvH zZd(HJ;;IxMfjK;SA43gebOMJ*06+3CiMSQE?V$*zR$>n|af4FhRKy;GDMgb!BWP;l zBV}Js3}F{-6-te_^$YaB(AJ9{+W5TksZh2vb(>kYB27|rdGt)(*13ujuNMm9cKR^b z&zJBN2;oqs5m|pOa7^(r{6b7?62#4zvd8q5LP1l22KYd+2;qgC1o2xzSx=VJ^sV-& z<8^NeuM70OGhcg%vq9#1=?1EwktFfcV>xd|oeg}pciJn%KI_4jt59m33UgjBD3~II zU2s!{QscW~2w`8DQ1+!~no|5KoCMKhdS8h*K?Vporg+G<-I{++wRJV9VvH}+ z=V{tFg#UyHbhk+Hty;@~?SDd`*qtAkDDfAK@$9bgg5v43uGK=5#LIa@RjU|ZX_zJo z*6eH|%6i5aJ=!;f@{Myx;F@U;movrcy!9*;4}GP2<;2jowOpe~pp7-EUz2q9t78Mi zS81GI>=C)4W+|MeWjI!nQe8o6V-Rv6<_#D^_$TdRu3S95kkq{-`j5^wFS(syMP z1F-!C;Qi^ECNqZjmDrmyfdGqsfXd9j+)HF4v`8}&&hdNO3v zv)qSlJ&xGSMOjM@Ew9x9`}#j9$#>cR_WY_7@5{c1|Co`QcS^#}x-mt%$f2T}6@`vb#O8mM|GiXN$LE!s=nl-Wdytx7;V%O_!=6@N2EVs|`My>kb9t5VJWuMudHSI1E- z*cncB!)ZD@&};>=TckGD%I)Izj^GvX(}P`UK4sQ$y?RYm5JIgtM7)nQ$55{$ zYeE&X$L18gT#onn5V)!*SE1I0Gxd_X&m7a3KYWvsJw{VTaU0bM@wJbn{B<}JMUSBh z;vBL)z@*6eY*3Krwc_Xmb|0CdT6_|>7850Y7E=)#Lf9&?#T6LiTw5EdMX`v^S8|Rf zZcc?#<4gHBdiT^*L5+8m1g-iTa1Hd3aKq?@E{a=6;$3v#iQXly$&`;oIqr5sIa?3D zRp+dF?&w6Gol8)`k3TJ;+lWmIT4Q`o%IXo<>W&0SyqW!(IzKtZXND2@^cV+Ie5CXJqt*uh*ygp1(kuNB19ZVgBQ?s$}w<2E) z1ox?$jhqyI&UL~VYuW3#cjw|W^{(vFGku!sS1_r-g~A-U^9mp}!rnLHInUixLEJ|b zsvgQeKvjptHHI+n+A8d72yo*W!xInuEV`=R&8Na?+Aav?xHvzQq#*|Ri-sPi=}<{) z^xyQr>Xk2pv^4{T?-z`~Z=TD)QZT}Ck0C`*-3nUly4u)&BW@vnHnnx@5!$Cg)6+kNlA5hBXRi-e zjI)9DB+t$5S4P%H%F~lZ;3voOY!t5?-ZdrOXS!024q3f8xO)n#`tj#}>wi;tPm_6Q z+xP7M*|ct&rk@=5r8>w`5YKyC1BjYKSgS!+%=xrE{#sJX+qfE2H1+6TD)$)lm`-YD zL)#MXm+m8zxHpm(v&Ur8!N+N$@ZA{74Ghw_a4Nn)_-Dc!*3XrvSp<1)SRS)Xlbt?Ztryjx>dGleRY8e7rOStTh#L(|}(+0L*}0z}ql-Qmf> zw#680$p6S$YfO~bG8zlW5U6?SoQpngsVFW8l+E!OQ)BLc&05$QKq*^v$ePAovY~-b zGrM$QG6a-mh)x(W1kV-uo0Nq;?gTCMHGfv1+xhaYQ;d)NtQ8{UOxHSHVN5bN1%kK? zbH(9B-G&ahb`_=fszV7idsIoW4q0m~ubzGHKdFi0*%Yxu)^&r_iNept4aXFpOf|kO zn)dPOPW;T6^B1Rx%%M*s&!&kIpAPyY1iRTVtv6!mI2(Yg z+`&oumza31jP39UWPS85sF_V5yH(b03?g6o$De0M)G%1rPX`~Nb%NqFtrn502Q~9M zRA}2>^-0Y00u2pja~uB(ov=#RVkeF%dbR6yRsL{mRf=E7AYX;FspaRD*U|{So(gFP zWK-*kL*M_0gF}i>B8TON&ib^CX?nzd_V_69&o!x4MRwWsE`rVLX#aD{F0F#yjJuh3 zb5$zqKR`oK{X&+{#{N^wit)2Jj+hmtWOqq1m&l4;i3u*o2=__vzo6VM5W?1ilSlRi z#<+K4FJTDDw-Fj*uSAW-kAD?~u%`b|(notd<4{jnfMVKjbEfX>0O{HG_o1k1(BzMC zz4~W9J5xBAFvFJAgaM1^*5v5c#K$qAeEIYgad$2Cs z4`W2B9y~ff$peFB64SsZ8dKB~-DMDran9Ku#HQYvY;wS5$R2In*l=C3Mb;OQ`V{LR z?%O^L`i#WYIaBB9OdWEqo__qxbLh;IUo}Zb7JYvt>dw>j2$bbaSzu3&S3meFK+8!z zjmvm04GhMH@wr4+U{4$!t1pTNb#1;uO}4e$p<3lyFW%i$DXiFh^tt>Dw( zuU(gN3wM+o-futtQ3Be*q*8PNYKp^+?Wg)$M}nVM!XX;VBBz3@(xBozQ@8xG6+C;fVk6L$nOYAiwH(vhk?3evj#6ir4 z#B2FmD%gJ4H-i#ygdM4gF?QF!0occA8)h%n)#%bEs z{v^kXLzwe^qZn7y2p$XCHPd=$s6=s7o~;&1*2w)zXOKY3Lxk zofLNF*$`jVf5lE&6T)odT33{=Ci5I=oNIVwPsqodCaUSgsxE0Q{=!+si!K!3st_p6 zjZ))Ep_V3DiXc84e%qh#OkbLEcUYH>QruaS%vHmvM}jmbOHFdz(zUuv{MXcPHQDV<(PtH-9+{|kDEJ#>QwOYR zEcuzU|2b>#x0`<~VJXbJZA2+X1L$fH% zn#61$XQJLf;Y5b|&kBhFLU1=is-DrsYt?R2#<*VaY;4=JjB(CqrsnjB4?UqDehrYs zU!0*3*AvFW32A-82&We$UTc9MubqSOHjC-9 zA0;OOHZQ15ymBnJ>m6OWg*#HY1>iuvRd52kw>#a%YeN3wxMCYU-{%eW<%2gMrl#=jR8f z@PU$-ah})!VIx*^V>DcsBwm^^Mi1ixCHJS3>%KQY2yQYhsPuE?Ld~heGotD)oHqg; zWVLCG7^As05@W7m>YT{>e-QlZgq-3RXDG%;jrjb$5jHcr{!$tetGUM}`TF<4;gU1lD<&C~<8ZB=uN_ z>(JJ!BAsJ(7ys7jk6Fp1huJxMU_3Vg>+?!6$9MApi{%`O7*HzJArLghmV zjVMdMs6oCH{#iR;o_NLoYLGtiSkw+uGfDTlK$d>DC~F;tOo_c)!RF1%cCTeh;zNh| z5pS02_v`HLlpm2Pb?bpohQ0~}S-5h#!Rxxk!X9Bm)<#>HNVPR|-T(+F++GMv~T>zvh+U&N0;kGsS*vp$P8DW5w< z-2@sg$P{XgwZc}&YSGX=`H`8rxy|ih`Y?7*XyayN-NkECJnmBbrdd4(UvT4cx+--m z2*ke+n*o{Uxp^Fk!0p@}#W_`KAv46eGj%nI_hCvon=`c#qvc>6DVwM1C<1O%^wL{Q zY; z3ar|S!&W$3p2qD_E^45$N_>TQQmk|C4VvWiSRc|z!86Xmt`yxvV;1-@XFU~8(`MnH zcDPB$%2!UcO(HMT~fJEWZe*ycT0DP7C;)J%l1za5)lmGmXGrC?Q2pVt0zjY8j5C4wzR9R5erX zs`aHmI^=uThj;cyA+FBF3j6^bvNgsN2?evR3DG{=+Iw^#nJ$n&a2}-iZ?SL+#_7(n z+&V)l{TZ8~j1xwM_z27;lTLKs4fkKbcU&MgMHiYy$oew>5*5<#!&+J>1oiLUAq0$7 z5ki=AV`|=3J{2WCR8^8qaDf1=-Gl;UExH!`__L6Zr;XW(*(^qNCfRs&0vD%(p-p9p z<#sJd1#-vrN&!`CRT0FqqG@_(m}|9NG;?wi#9b7oJ6hnTs3m90YbQe_E*_wb=YFc& z{YH=rqoFe{@4gN(pcE+zrRPQ6Hzhy*?gj?`K=(YR5x7%iu8Vwk2mG3(Am1ya^#w)E z0xnt!3#d6T{tC4y$tk(qz`)d$Xd009JZ?dXsNlz+mSIi2R(FSE*S(W;Uqu8(foRRCBR=WGYxT|)&Em|i(Uikl zx+cgo6Y5F2o!G1=f3tpBjBBD~h+pI*>~WUib8`k$VKM}W=A61>`<};A%AjZ@V{*z? z7~^^|bVU;-UO9CJT6(;rywC->@bX%eb-h3%u`3s~$hz~ib_6Fk)h?-OqlZ={@ffRs z*E1P^{Ao%){L=?6VlZN%7;`e_LWL0A+*G^7rE8Hf@k&EGKv`!n@S4+FvSwTl*_2)S zgrgI9nF4ZCts9f^$Dckx2sJvlGeu%A*$OY0xw;x$o#t@mJR9pqUudiXuCY>6Kn5+0 z1*yP(D|6pdkz!+_#Ki+d(^UquIQzR4IaBn|ji!|-J|j)je>;Tk9H9X3_*)YHMkeF^ z7nEB7o;EfF5cdrQV?1kBFJd!(6g6A42Dl_{p4I|j-Pmx$b{7lcnuMGciR+X+T(m=d z@}i-EmOU`LDXWJwWd(kug#lTgnfO%=se25Q*#|k1ch2SoI07$IyP|=@M$HRxQniXs zoJagzuc;;AnpwdsaljboHm8fYccN)}r__`oXJSt$irIg9!YVQQAgSxE41=BuoS z1zk^4%nL#qM)YL^acdM#Nv#dowi{PsTu)S|0i>}q(3QfoXro(A>?C((GCNW#GZ1E*|wt z8OGuaVhT=-aW$f<`DR>@Ax6yM(H6QU=Jn)nLVB)FQwqQ}s>o->hp+Ye)9(XL_h`y3 zjdmiITL{m1Bb=t~BC*v2&AUMVEcE?WOy2^^a-AbE=k4Iu)lzkTpAp#NDH5-GG>H?c zm_6`vc?3$$&b{IZutU~4rV_0I6@-9mo8p=T(s;c~3Tf-ny$9rAJ_GU#shSNG5_^2O z#uT>^QN_b(NMS2`4LCnCOp+pk9OSWtvwa z51=Y_$oL4=n)5-YR8dU7562#4Z_INM?~f(hI0k>7y&jP*wvYu7s$`g!?FHi2#(>es zW=#x3UrW`)If&VSA+fJpU^g+uV{M(V(&~HMN6O6 z6rrtVUvy4tSmr zRd?Z}SeiwBwmnY^rBHmSGDy8x05KU5Vnp@~(5H+t(&V#$ zpB?Xp1XYvRv;eumF~u)hXA{4u$=wTPYLImvsq+$7##T_FP9sXTB7RpN&QFseU6ZI+ zG}ULcS%8ryR8Q7HyqvO@fpls6Ge&6OBV7`1>5tTS8}$jN$)Cm+Sd$ z!HSPWon3?2oTLh4taTI>e5em`2m7+7xw1uc!c~An?RNGtXfB=&AmjBZ;{Gm4lk6+Sa~sjPAUjdax@U?`xX`Nn zeKQ{e*4W;`Y5(*b5?Q|!(>7F7+(cg>5KWD-C3dGc8&&s7aV;HOKmJumnD;4v5e^7p z;|&ulKFVSNT`0aEC~kJ8t$onHP=`)z>W$fn;$Bgm5Zy)R~k2OPR_oz$HbHNA6;lV(^+MvDE^CP=j5`+DQp?JFXczwu$IqwEHb+vSVhvkVlqIH67 z{gQ?c6nFjuT4d|!M5+EXbEhDLt0yb5&Ib8b^~Q`osS~acLQQtRCP?Bh&QQqPnRfGL z8qXdV+t%YqF%8{T#1>~5RExPlpd}AOB~&qc_^Y%BN=;WCvhKpD6pC}EmXlcObLkGi z=H~!SaWzepcvnaK_~(n+UwVJLqqnF0_vsGBJBD)mNVzBmuy12(%_tzHk|D0BTmAvm zVl*=lmx$4cOhcYCE7qfmQtW7)@ZpXoaRRFcvYV3RQu#*QYO<|@D;WLKpJjDPci`nx zh#$yJiJNo~Zdx)Lxk1S#gi*}e4KaFWgF4{~k#e}rTNL&nZg0t+(HmurC|39Qya$C_ zVGI*~SX_m$v5F{ef^Hw#{b}-LPF!pQH|dXT(Yh36_64P#yBtiv>1QmCS7!^{mP(Bs zmL}h!H|q}+U&iLH+{>NA1xe^p2*#136vO{A89O#1v#VKjSVF&<~v9_Xa~q8 zb-KaFJrc1Ni48dy4jHd^_XR_na)hx|wu|^jO{V)VD7O$m+&8RYycJ%rg{=WD;x-W% zb{At3Q@^I4!1Z$67^zP6pwmCoz;ejht!kbMd(ad0D=KAMN`WefUB5h3bG-vYaNcZ> z4aHcDW8w8mQcOBzzK85C6kwOCS&Vj~QYaek7(!U{hVlsF z-Oib8eZ3Zny>$OTgN!I8D14OP=zjxHO9KQH000080F=CNJRL`0&}mcw0AP;=01p5F z0BLk#Y-wR`FLrNZE_8TwT-`x->%0vG;CavKA`uC3(9%Ro!fJo7ro;A}je*ME=b9?V#|)5yhnfj)9*k3{3oKdCG zrx2iCZ%t@uuV9!EirTX?fG&=HYNz6B*wY@yZr($qx1@WTvZrfLbMlsq_P~3PJ?IuL zs=#9%=}gqSzRmtr(qgp73|y zQGa6E?DyXx?x&^)7pJ7>to}tC@4AJaLHr;fJ&cNy!~$+jjGX=W!W9!A3FRJDfgV)> zW5;p){>Q~;;<`22zAe((u0GdkVJ2sG-8d!CV8AGl9SLY+lmxse(G|pXON$!?s~*%iB`JT63=TAb=E0B=kXKxXU*32;pFAbFdXFZw>ZHMrSO0i@9dr`v$%&yLN4*Ob zk2m80WJ5MXm+fU{gPld7Qb4(KIqbF!~sB z`{IoK)buE|>RM7R>L!si(b2o8wYaE5$LVc8$kcU`$pm?@tMQ;xKefWX#B}#ISbgHry|bc^a9 z>sd$;Ebrr$G}GYXUCOg;T-0D(-ASm7DyWJ&CGjCGg9d(oMm2}9+l&Hu`l=uq`l;pO z;9}dXy*wp7C#Q{yT$G|FFACz$iIl);66R^L&HTXC)IiMDUccCAfI{EjG3Y;?n+zBQxHZC(YK-<4YqbP0e;2afJbeRu z9bD6H8#`%i+ezc>m^*f3+cq0D*m2{=wv)!TZ8x@^v!D07uJaGpteG`)&%FjDPfSNZ zI$hyG|ITnao%x$(&*3Ddn*&Lmmdo-7`Dm_N^OcH!QSOiFJ$P($?uq4pCLCJbR-;Xn zK>&QLHJ?2uP;<9K>5R{ObBSN9q(j73LOYe8;yIJSUDk`>STJboX3Z&nf^7y>*>bm* z;NyJ?+w@9j^c>W-;PLUQLmO(6J;TbGXZ%%ED7f(kZ4{b@N^eh1*Ji^gXjNT4Eu_^k*khDe2|y(a?XlFYKY%=wd= zhDP$?OFQefH2QSExC1_wqg}isZafT*gZx9<2&kFTY7exuxK%RnzRQeYz5PgY2kwSj z`h*!F63jl8pF;Z2isXSAE*ld$s=Lx^TqALruqiL4Sc8(xd!p=3%{f@is~a|wyA~Bg ztqWIl!FrEUeRh(pp8LCLScpA?KErA8+i}We-U+iRb}q`L4r-~&;29-*!Ab+CSGKzn z%GAw+V>qvs&j|}ozp~~3-La?oUR2A!ls7G0#$MB}F~Gkkt4D_($Oh>21uKQQ!^oo` zOdf}oeJzJ=)A=9Jr znx*!eStR|S-!lqHI6RQT)G|AN^7WgMZ-vmm6!bo-i^R*_{T9uNPgM*BQprq63S*{s zbM@N*3X-#Jenl!TSCknau^MY4(JZi3?2`pWQrmw=a1{Phfz$Lg0;hn?JXVDG>~YA+ zDW&J4*s}OQ=XeMf4|c}Jvo>+_^`z4z-{~+$N>d`gnbHBsFtDKNJBmrH+fEtnRZk}1 ze#^siA^{WobzJKzf1o*>#1#rKiY7Tj8`{RQTXk5kVRiBd+aG+oFX_xakNh&7_`3T} zAoSc59PD|SFUpJ$ufU0nU&!;XUeG@g=ghBSEIe8j-8+xwGz%%igm_=Q!9^zdN>4}R zXxkomriyZY>txVg8Djv$Q6zl8#Nth8unVhAFa^29*P96N&3oc{j1}pyoOB@OkWrl- zl%TV|$;&eGt4~=96{hGZm6VWIfX6Q^E6$CQ(cAGYb$f|roHpF1TisDmo(OF&?9~$s zR^_xyD$5de{(G|bTQvO zjmTh(SjWft4(J#I=RWvQHXy+6`s8}V1xxEu<6}+Cz>L+)h-G)+@UH4~nc2g8JIuVh z%z>!sS_C8@Z}-_p(-Ee~hjQ^WQz9flEXS||&%1o4`D1|R0e;r#|XkBnp%na>ZNMuOjtUT_&hlAG(6sI8%NSpVl{t%xao zj{LIse5jW8m|-7$Uh@=!&ZLd;?|=MqIC`|fbyk|MVh*Tu_3@j*@4VM`Q_xyyfA_8O ztcYKlR=iow;5pcH#mzU~rNg{RlO+JJh<>bXR_lp|%|=Mg9(Ud1FfeSx7-?hYAn8w{56 za?GF;nPJ)iIy$}fzc1RO%$q3zQH`@XwOKvG%X2SRo(R4FP&GUqoehlDl6e1hnjycS zYGgenc_o1&Rn(@Zat+rR7=V-k36i)D42N%@q*zrOp2RUF_Qz9vXx0zJ(HpUs4ky}! zATK3une&Y;l4;5u6k^Emf3k0_FT#=~Z@w@lGC%CvBf~{H#G;)a0jQ$)@DxcinCxH= z1A(BsuNm$`;gD=*d&4TF)0ciS|79~LCZf*0#O6q}H?t>(hIIKf8L?pl`bBL1_3iO23cpkp7nQ24AqGn$zPzy`h?KvD;<` zpIDOieLl`fCgf?x7Dger=wpZ37AeefL< z=K9|ph>ShbcBFtoqF(xP1EWLkSTZK|kdPyCw}`?=aCM5{$Pg-*9y&2$+?S%(Da&kh zrR`%}U*>g75P;H}%R53fLB$e3yXkF!w(pQw?+~#L#@VH~Cr;>?6s|1q+Lz5uj zSev+AYg96$F*-^#2`%~UJXexVpWS*_fN^NmM*j2n3%!B<8vgLmn^;8T;PDp8A&A-8 zjb*Q?X;$u?F%})iXN5~fIT0tw<7Ch(KM#t{E*U2%{v}Zb3DmDAy2{A|T?ch=BQr22 z8bW~T>q3tjL)tLq$9DA!iG)xQN?3a3J9}^@`&0B}INOI)#Cj(j#k5wl6 z1P|+PNl!~H1-8PTzcsED%Pg(aY{{^MTlx;Q6h3IS_DI`?J(^l1KS>n5SM{N;nv8bznLf%m;~eGlktzV#_=K3}j7`d?aC0(%D@OrH*W!A-0%P(~uYL$*B- z6V6R+@^47*qt^N|y7hpis0VS@;2%)XJxLX#nfe&7|4!IwUY8&LYwbwp8LQ~Ok`!TO zPHS7=Z`QhXj~l0!>jnl5VW?JwaiLZE(aIeHzLYHfQz0(!`TgG&pjU#)0onV#j32!- zVqzFk0RioT8f-Vc@_~rL%1J$6fluoav;yq*Q@5phC7z4{(*T}89h}8$><2Tk8mw&8 z@a<}?(K;V|b>I5rYh(0yRS1dG2c__D^z4&AM1TtPH@iwn86oCsT!}SGr72jgE%jcW z+v8sa@y0LFvn$H06hrjR%sL`!_8G!rot5%ZN}h7xEBe84&{>olx@H_kqmp)hVopTA zljo!m89S+12|=~<`f4a2)l(rXI!Z;&;v;z{3q-#!b37s$th!px|Nj-ED3skOo~5$$ zI5eY7jf`^8c~AfzqYB2^5m6}x*9!OvK(@B0J1F?eHwvIIWXmjo2AYTTt6Qp*F;C%G zLy(K6B%tjw?UUv6)7x*%ClX^K%WUcyZHwR)A-B!Gwrb(Nj3=kE(ncGCSV;;e86361N$;#2nciMv5w}#nugfhs z%t2d>wApvr6=y3SSR~SZJbH=u<7Nk^pP2E(zpHmuKE+B@cGW;)$+2!}haz8h)m<=K z4H)^%Q4Og_ge2z%2zcmf7WM6Xv4qEO#O)-{0e=s&Pyxo-avz?jRT9|sD7DnG&vHX zJexy#afByfha`ceCgF$VtfzH}e*zy0h4uXGS`iyaIA4o9l6gO6xJTTK5o_Q?}&gC`?;epLsZIeYW_IEYY!#c#f7dV=xI}Fypbah_^7& zF#99Vyqf+nE-~dIWR{0CVukN4MKv9qth1wLZkYI>R@EFd^6L^=XJS<0l4lf<)SG_A* zlKEvfUmyhqDot9;TWlm6GjZae&$PgMErffO;BLVzmIvt-!tQ*uVZ!L9L>2LGv?D*m?Ze48oIZa4Rktijqd9 z6Y32AhLr#({#Sos?aZGT$RgbClK*AMfX`oP*nk)Q7r)Kzv8jvCNFynlDzt8sMDIXg zclfd}(|5@PZBb*7ZvQ#)Ksm!-Ff6FDc26N&l=Pr;Bt)3FdYD?u^$ydrq$aIDt4Nu9 zSrFw*MiCZqtkq|F}C|Df9GB=l+TO9lcCe%KcEywx2&s@DDMy+kl7?}C*9<6#sax_$Q} z9PR$mATWpi#6-!OX>qY3O4h*^GYOqVp5W#0lRP)Rd~k9r+>5plB4d>MI5))_Z%c2S z7&+Y)4|KMuSN`4-5<7@)r=>xp2u*5$CeaH2GGZ%l#%KSL_EP!r3Ht`0%|8re+J60! zMfF@j9?Xuuk`7B{;VwU94{xA$fb z^K|3xxqubb&g7LkZfdqFW;W^%4sY2@FfGY}k$nAZy+_<#x#PErfKS$TJv#6#tZS*5Os(Qc7V$t;@Mtsc5h!rh%*?8IU{LLY|q-Z zv&14jK{U2wScK$;_{}sjI#%{S8pH0?V4WjTIUXEly%E!Q@=O8x^uPiZTKnit`-B|y z7_#1j+IVj6)nEzccV(?eguF+AyU2rW ze`hP(toomFiEvLzIillo2$tO?rVxAa`B;74gy;Y|BZ%F~2G%W?S}6a39K{i#&gH$N z4z?$z`)145;;2p4DXsJ3Z5VZvtE_`-Y|ujzfjfoClMh^#{Xbov;`L?&aW99_eJVm;5j95u_2?HLSx!7ZHAE#neTNFHf%|s3g|Z&D3YLxhP3n0T46U>xmG$ z-I%*v&Dno;PllpakFFg%h*R}UvXYDi5CE!uglEmV* z-;U(4O){hr2gfl3j}k0+Ls8BxH~3mt@lv;ZRm5HnB)LOj3085Y#8~*;VrM;L1;ej{ z@jW~%%ntEO*2>mF7>@!GdwJ?h9g986#St#VnA?Hw&@|qXB|jsfTcC(&qff?&_sy6N zuu_+nN5+m-sVxE7Lekc7p@k0nd6=9>af`zH#es@B=JdYfnsCL

    Kh1m(X}E=wQU?-DfOWtwK_RQqCu-VVMj#+Mi>W zmKUoVTE`i>`20gJ_V;otbDd<=INoy3fRRTJ-$_e`gFEnZC9%~&d^}Y1Xfuw$Lc;|y+90Vtw z0f$j3BJyx4W&#Eg6VWtGg(RS zCxK;Xd!ahjwBm-R4QKp&JP+jv-8liL02L371L5EP|0RB<%#V30TP3X7x=XVGn_o%~ z$$fpZdq%s2a>NVUV0>ulHBOzBdW8XyL5i*fX$AA4pMvxlkKf;4v*VDMA8OS3-3>Vi zQ@Y+jtf=cg^!OcAn~9h9??OM`840ld(n`2lm+NruRan~O=oEMM3;K^Lqc7@*h*3fh7;5<*Ss>-FE+hz#g3bv<-jW#e6 zfeUzrcEid<7GaXlNAjqS#qS@z(6z`=^Zdfs!l`|Q(dObUOUw;e5XaBtpx1aDy+{f1 z4!YOl?fGs}@CcCNs`K*)-6FgE8xb1BVNQaV1$?IVzL2Ynmb{paT?7JG+ zQ#VE4-;?i1C){+P-Mn0%zM`0W)AXyyqq;~qD^&I1E-M&O-ZjpjsM8wrpqrZb;iaHJ zfaSHPM}O9CiK;7-h-24&`QE9+Ka&si1)astL-x>$=*;99K6+ z!bQda7JrZ&Dqp}7dZomS=GD_u$ci*m6n>2s%uhAcT9CB3$!uGplxDB;&e1y6rhvGJ z>q2$b&~eQ6*6@*c6@rtdyDwu;KYBnvL9%M%%^q*E9BG)DU-zH{C1MR5U?Y@TgkatZ zzQBs>iNS<3n&MCJZqbr%dX00S&`mir(*5I~l>RzCc8#0VI~%D@On|xq;b8A`YlKhezu>z*uyGfZ zUh%9?%2pdJuM;@v!1`?UNlSD|o)|slA^WAQ9C^ZFEvnGK`jJxZqm_`+ocrai!V-QC z-2EmeEfaBQRVP>W@!LadDr#Vt_sc)Ezg~jENiS8$ZQOL5(uqYQWKrIGoo6HM#&vZ< zWq_0_^|d*uf!nkIK>g_Ve`YEDH4-%SDSu3)5tclYWs`Ruc+AdaCnymzxiO2mZtSLv zojvY#etS54IA2AT`<>MDSxuyb3!ew2K-O8Ok6&~uxc4m}^RdDx^parV5IaOvD9~Xv z3$bT(&?x2t7Ay5ICPv7z7#t6I`f>u{sar;+8k5U5c!u8Uj{=W69`(@gb_^ zrg`S(na!|S0;c*Y0jLn=td0KhlSjgd#Yx+^Xde1C2(xIDv>y!wY{$4^Z|v|#4$-Hi zF0?A8^c!yp8fN3ORk`C|UA`hOhh@b`N3B!-OWAa}`pA`Mep%znfr+tsYlmrn|DOJg zw3TEf=NtG7T1bdB%y7K`g^C+^_0dyy;bAhSbzjm_+EBPQYd+Sh>HBOqrtgQfG23C| zJ)Fn9nn$Au-^sWibZMZp#wN?A??UjWi|EGUSnCFT}sHr+mIHUK?IP=444W~Sc)}3j^62)(@46eT<4&D&( z0F*sCgyl^IQO)pT*lsh}0$wucDU|dI2PJ1~w~jfQIm2-hI=cLYwX^Y0R|LZ(?u8i% zVi0GZoH;<#IkkAx1=Hs3xTGS+f4Qo(?SSsy{d3C8y*GK7CsS!tRr*=-@Pf`yi5IyT zELGBnbas%Id{{W7XGm{j#b}?yc8O-_ea`iV;5%jloEov$#4Xsa15bpDm?*muvg2 z{0kgPnfT~6ff!!9osO|QO(YU0{#GdyroEX?+RcdrSIJ7WT<*S>iAL|cE+~<;nAtq( z;#}1$1PQZAs$93PUHw5s@OXv~WM8Rj{*b%O2f;g3K26!w{ijIkaK@87CU3Myie>bL zU<~=FZ{H-Suk=B^`sRGhRf6H?_oxI0iLx4U=<+yV3D$~*>=L0aTo}W^_TpTbD-UtT zu>((fy5Y=nr@!3ch)o@FE~#@DWr8wVi~wAxt80?jbkls^AIkt`CoYCV+4iytUS;dm zT(Knq_-cR~psgD7d`=x#l_2z8s~+R)nW> zh%@_rJnHPb3i+P5(TvEq{xBFrI&o%71iS&wgI+V=FeI{0NXm zu%I8K(n*kzzu7nIS%YO5>&;ahxQs#=JJ5-5MmkRZ^N!o610F!2ZIRE$adRwj1FKQb zuTq@i`Vk|UENQWeW2PC6IZ2o?v9Irm`G(Pn!2hnl8O7kb;B|7@n0v9dBVl!!y&5`T z3BU5setc@w{&#Qj?t~?{!gPn8wQ>c9uuuD1qCeaIR&donex_=LHfBmp?(l5puu_iCKFj;Dz9J#RR}c!K!38eJ(g{yx&iWn-cyIHpM2E z08g&&3huDrj?JTIqnv4fp>GZC3J7gK&V!Dnj%u}xgw|RqYahxpVFcd{3MXEI%4q76 z-M5p3Zk3zO#S8%f#*(kMt$;-*9yZFHh*qDc*J>qwlk%I22BFz48~`7TZZRXZ=NW;`V5JKWNHk-ZU3I!rsWSB=gQ(tXu@oUl9Nc0XN2>;87p z^>@XJN}0$*a@nkS#@5~Hkq*_nsX@QLEZiL{pPJ4Fh2RR0xQui2t_&KZg{Csqi%z2Q zjdA|A^T>IbZKE%goQt&WZ1qQa!D1>36Q6Zb7tj{`n8z! zJy@$*gJP^U1V8NCh=;i6&2{zEMLl#09HtQq9%YlsSKRL%>;)?cNCu(Ie0WSzXJXhE zOH($4trO4&Dnu&}fiXsjt#%2P2wZrno(A+Lt4X1_24tyUrt`$&L;((o&bLRLb_*>B^(@AM}m zxMRv5zfxcnCYf(V0tjrVsKxuT#XF3tPG5)iB~XaQuS$Vra2l(3!5;Vfgdg*mG)1-$Mbw}wz0N^tp6uOEgH9gF-9F;17hb=U!Fg3)ThP6YC=iel8Zh^UE7ccYb3Ei z-r{Ds>r)iJtuTkVjs!Hi4k?3VylE|Brecd-m`hx(V9s&my4FBjhmFTMqXX*}|?zc7)Hr-KQ9*u3aFw6$UZkOylT#gQ_u@PdVZ#&cDRgL*n7;jRezE87_^wz3}-E!LW zeA2F9O$Xs>wkp>y;5Nc)uPtR#oWuR-HGRDpL63T@>aX{5aEz&p(BngfXj(5H7Pl&T z&)eQ>llX_1wX^+6=QGH7H6@>?3Fl@{jHYuxLdPzJOfI_=7jZA5FsxP@(W(ILma+T3 z6#0bU;C-5{9x-3rc;>5Fw2@MO_!7}zv7n^|X8AUnY*Eb-c`- zzp9J3v@j&L<1VH!1NziIQa=DDR~YH_c+7(}8o^eVrXZ-q_lE=4Q-vIOkGZ)=efnbH zH;L-!KCv>@0qeKsSpS2zN<6`*xWb6IIc3kiAV=)yCrVZ0W2q{7_2>h!rDMTbB zS+Nr_MAymMESW#q9)gRxvhjSfvt6bKpTe6+aJo97ax-wC?GkG}Wv&|ayZr!FeGfjV zuz$nKJ3a+VY^(9a&>p^ZrH8b#63y6(?cqK+B}K(P!vULlZD%>ALA@Q2Tf@ys;c!sI z>_eCyN#9ZU=pYAIL^oz3LmDtsj=dz0l&Nr-DRKOh`)On-Ll@+G#A#l z6)@4SLkeVmXSe;lRjsx}wL`y}YqA>9%wEl5V?CyGI9}Ue>A-Pkc)LiSTmB%sR2=r8 z*zA@)VKaKC!jL#ou=49fYIsSSmrV?Bs)3Z++GjXkupcbMLJS$JyQ2;GME;a6mbuL5=0nT-)#EeV7{O4Y-@)VdWs<2vYj>NmAAFJq`X#r|K3Io(8>2F?f zcGNT0ZMjXH!6=|>`naaUOxp26C%-%7nqI#cyfjgHJlvjj<7{g5#|WZX8_Zj(yNHQT zS`(FC13~#zFBhP%^K6Z))<>Yy(5AH`RnTPVrB6txNcLMnbN*u+vc!O9A+4FL9Z<-0z!13{_8CKH7o%L;$}>#RO8w6Ii+GJpY0gB;@ubWl?=1P=?+QqP!!KjuvG zG~-9RmF!Eu&g0R7z$|&Ws@$I$p$2(B@A!<0u6OgZe*R}e)wtWkpG4q8>oZVdD$UJ0<+fCsZ%xe8Q<+*(a zR&hmd;#NTDVYbxrUWje4Wt+$gV^NM*sQcwcal@k+LhDCGf@S)dpVx984Jt4T2-pk1 zM&c-+lf}lq>VB-Ybps<4NW|Ok3Z5yDr6vd6EJi)23%Ufg8MyipdzErg`R_E$_bjD- zW%tb!qwQY|X48vofe9$rc&A(K3wl@BQ?WKGe^Kh*Q;qB-Kc|~T^v#ATKN0ti_nz14 z?fCO9*pu%P95PsI$(K1eDF0y^Q2!c*WAy)gZxEz@_Zx6R-unEr-f%tl<#F_*#8<=R zbZKwdhTxuWm{S)g!~ix;Y;8-WRL}+2SiyT-KjeN$u7u zv*8;_k!AfCe(>ZwcjtXGebx!dMiax>T)Et`m2dc;%STF9CPP)+sAM6SjMFqm0(Qg5M z7E8gk~SAFgp$XY%jDxRo`t?Zk9a&hE`I{AVr)R zF@#tv&%gTF$o$G80NDTJc-1 zx>|Ew;!OUXZCCza!ThhkGCu4Dplx+W(8u(F6MIUcsDju2`Jmn zjC7G@!(+{U7-z0< zQ@O?Q@;pLMOFRI^)XP-$YilqgD#UP@mg{%{t~W?OM9$bV>+F>lxOQ;&VvOI( z04HRPtJK_G7l>!(iq*X@HoFZQ5DMeI24WpBDeojVx9C|y!Yo#=^D%?BR?@c!3p-Dm z(%AATihtXxw6+3fKE-`=??^@&g-#1iRAI7*rh_>mY~hiSfm)*}&eTUI!L>MD+6H(2yT-ZatTmd@l0b#xQUvx?b|Z&PoW zTG*+&;|vGeyS2PY8z(N-Tw|)~U)qx_#hMN0*(eKBHkXt<&YzNq-{#HNZ0=G5#uriT z{PI59dl@7}XnWCOx<5WG--e}^%WxyZxe#-1=d}wi?hG-m6THvb7PQ`K=rO2_d2;-M zt+RVRHLnXFN9&*1)9h!PG0lTFSKK8R0`-numJ1}@5kb?A+lBHoJ`*#MZaLQBthblp zDD!${7#$4#SL9zw098inU%QNvjOK?oO5c7?($C2>4BG;ttgcIB9y-jwbI-LEMdPDS z2SO8eheG*%{*11@K%gix8FecM1awh0ynoOv?Xbbp^{Sb!RlXFcM-WOHsl*3K#4O1b zWvI8+Oc<$#0QcVqV45~HICU}p%h#Rfk_tybS-K4ORZOp9D(Q7eES!3Rc6Jv@g(p^H z=YF59HDkHpD%%W|nKi7Q#6gu)(q%g&cd7lFK*(b8MJQ}ujDTYnx6;>swvbXeG2?PR z?t8ZI%Ydn;xPw6QylM^TUgteLpY$c^&99nBS`GVYdf*i86{nv!v>C!$TB2*Rm?7r@ z#2$hJDc{-Yn`bPJQyKQ;HEt$x@bu1t8EX#FF_2mJEvo!`I0WdMnUf)$D#ezhgz*7& zv<0U$-faqJ=dy3D4U!f9i2$!JJcecdpXc|e?O6SSThAEoZHd){|1m>gmPflg$i(rV zKrcGNHW}_lJ6uULZN_|@8{!Kt3dP-CUtp_j+uY73ry*8HaYHsn*!2wIa+1|Bs>5%Z zE?VvnY#0`niqWxk4>2w?$#Xpw!TX5#F3jdg4f}zX=cKzwgCkTg?b|ZOvimA<6;I=; zitRCnB&byut!HaOW_4(z39p#07iy&K)dywP91u-5?it~Ol_dctG~LI@*O+qYWbaKc z@d?39S0TW4RK*Sd@&-B}esWy$5T>zYDc3P^*f_Vj9lSU@QH<6Mze(&QFVWxdAF9}D zkz7<#AcQ`J8`9lo!qEGoq$Vgye8bPHmgzWe%lxkDm@Fy_@NdxDV-k3k_qa%D=-2P{ zfjL;uOs5W^4v|j#&%SMC&ct#VJ%PT}l6zB8KT6FQmvw8d>pD6wLfKbMxa-du1(!Ke zgqg31*NRo8fhcyhV)65%z`2z?-hOoW9WgV88%iCbYFiPKH#SBI?Of{hH~9J6fou1C zX4L=K)w}hC53Q;+ZmT|PEo*Gst_J0Cy(lQm8ogD}#_XP?0U&)nN;l;Sdt`75kM_#4 z>fqVaxmpd`;z`6YyajS@uoKFC7Ucwl zTn{!wX)SDsiK$99N+UmMBF1tA6h;itMV#a`wZln;aLH>S#8zoySM~&cFQXg;;d5-i zc1gG6W0rLy5d*Y@Iws%Jf3$Xcig{qk<3tr-V_ZJUe3tmC53P##qPGKlQQq-|4oPvj z&G0c|8-aKUi`aeYgskQ0()wn-0A(Satk)5yOxmF9 z!6Qp=R3YHbe?3xTM3sD{XITFEZI!*{UrhY{LtW0^HQxFIk8G#GX<$ofkA#AQQ8_(O zme=hm@l8)j9>Kk##C0e|Kq*T<>uJ(pvAsYLIyYK{vj5ynJ;e=aY`3WOOxC1^HFiXw zvm3>MMs1;UB)f1+rfnsqhZ;@-mrL#$Bw+qj?SJ6TR(s6h>b>Zr`5T3Nfz2?6m9u0f()&$!vjxh9JnDsvV3w`kA|zn+*WR`B z9o>MY)OOTSDq`*9eWRndh!L*Y^5kIfU!W=cyzpF-g^T8>suadc;a3Vk9bCgD%y<{W zwrYI#?4~F->r}`ohYjLrdAmn7nz{#SbnQOn{ABKTJ*_TcJKEGD8pnHN{n$TVx@n_})u|50 zj6DdV%n>92*$1X{O=>BA;E$BJ>YxVtFI}45dDh+3D8v%k!G`NiARWmB9r){ zX&s~zc0z0FZo|X5I6YjF&9K>p2-R?RTno6EmPIyiq#)Z*prvXVir)>JMDio@W*{$Q zKA^n7wRGj?Dnp8~#2=v~bY$pPc^Nmi?3P-JfZDrUHlMaV42gz}cjop%eDO}I5;1|R zwDK1cT%%e$cnsRAcW`)X!_Wx5Ddq^>nk~TBZDcSL^##t^mpj&I3Glt%ss$W12zI1V z-i9yy=u25)9tfnDYj5qrA+W*0YdZsE{s_P2d<$kE%y3=h@RnTf^ z@Zwx;06XaTb;X+L!D5ec?-hFa-sF;%TXD{si!;tJ_NZ@{!s>aadEaQ*C~t1(q(Qdw zKY6z@hkb8Ko>c@_q-tO~3l#7M-_|@2sxHOf-w~lFKU4I|1*-a9A8Yi&%U2(4u3Gh- zmIp75x=@^v*Ep9s8*F&|QN4+{()J$eh7qi=irAS{;H0?ZJlR+$BH@+NGAH?4?d#VI zW77DBE`y;CFL}L7b!Ha74kNd}*EiuyDH{ zorgJY;=5Vti#1fMh4i@LQ|r+?@p`I9bc5JdOaJ%^F}+Dt036%1&x?GQ$-b#RQP6_Muk)5PPeOy_~lABje zHG5Eqf2l&Av67D>?M!phOL<^mkk@_VvJuMmUS^hlBjq)*@E*>}0ZOJzvDAT=o5Da< z&zGGPuNFU)@dU>2h*z|>+=)@3OoZ0|((ONb`S76Z{CeS_;ziXF4sflC*PBb9Ipl9a z;(hyoMGKGLT5#5s?am-Q`^vPN4+|ar3;$}J$uXs%La46UYFb4@A0}Njk-V8w7~`Qo zD^Au0C`xfJj3|5{)phlyFqgekXDqKP2wOQOtA!Gccg~OIr}5uhHmb{zQ>7Iqqf;`} zSj*T=IfM%ty5(ZEV`essIfvOrUR}9xzGrS{qS&p$K77+u`>;G0V=C|057_QvBI4xc z-LE>h**`pDuDpTh&Z!We0~iBSVo#aw^Ur7R%DSwBnVLl|OBYw(UI#Zg&Pk$`G>J9U zRi1At_dK7)X9kObkRspCV^-1jV+;;mxD!zS{G3LU5=TA)%?G*ATLOj68A;1nfWPp3 z^Z8!cF2^gXUlZidVTiaK9Q~$l`v|hBJ<2^^I~_ltK4?7ZFITg?_hwS0KB2}4*5Dfv0-lUG<`Q283tGzpXuwgl$2V2nwFpdyathrah3ZcCR>B_y8v9$S;6QJ2QwE z8leI}3Xw#2iaJMgcLjOf2-$=rS55X(SUpi|Xf3o58~!VY95P9DR}PVNMw-_I_@|qD zXF&s&D>QK-TT(m&mapkjgad~9^KsqvK$+y233N^?b7y;*GtCcQ8;FECv*^DE;?@Jq ze@$_vDVnH-FIV?hh~9jianX;|QF$*&lshFzewKV&%ZEh?yyVSk7=(a+Zj5xU+5f9! zw(%Oy6+jN1Ubl?5FO1wzicb`?g;m z@^3S|%7=2fH&*1`@!%0&K7P196an4m%r_6KTSR0t`Fdx5Jg&H6puVHDH8;Pp?xW~G zCADoJlQl@$rtfo3$i`jP&QCqtUnb~XXmr@w7b&`UKJSOGS9-5$pr&#!&pH+R`p!{M zY_e{Aq#R{Od>%b^ZM>$SL?AD?di$PGq4+fu>`uh%yr4Gmzx&GQP||rW>$@Qr?!ch> z86zs?|Dbq5CXiN$f!5#c0k}e8?o75m%RJiMqSg!h&xbTtIAdsTnWWtE?K?R~er@}EENJ`~1Dc-l;NP5hKDWQljeT^ueJ6-{opZhndfe>%lzVs- zS~;g$%m{l6KQ|Xjcx`T5Y3$G)BI2q&sCh5>RRn1Xr=OcLL{hnN-5$UizP$B><}f5i z^p-3dexi#WhlhA2vo^n1Z$xCjMDjLt=$F~W?M}>%YAP}mjt|FBb$$G+YH8!XZ=;y| zW2_Ef)7h_R_motAYX9r0m&~zV{J}&z(F}eA_$~S4#Pzb~r#5c>s}qew{hs}rIVx3S zO33(y>t}X~xPc{jB=a$O2lps?9y;i#v9Hg!`E}!|@7(#5I5vM|5tUW&F>Q+6{_WxY zlE2K$67}<`l)zuyYLEP)$!om>E5yN1%{Erw)-rxUsQ8Qk~=bn zi}G7a2inEo#?r*Iv2u*+Ur$J_QVlfJ@Jd;x*CYqh47rBLLpb})X@0@lc1v-crT zG5ABomMnC`y zvqcuNhkk~7zW(8@Pn1bhl*rDYoL?oGYq3CFm(87wCjyB{8(@O5`|vEiBp&o{fJMA) zf_yCBx-*NikF~@8_vDFmwA)$fde$zVv#@iQPgAUqyjkB6@7JdZleG#wM|#5*_B5gF zt6D9OUi7r)wOE8-;*U?Zep1$3W_*pv0V+MStKqKc+N>hdQZ&s{zkBm@urC@d6$%;Y zbZ<3U5?M;u1q+hnwfYF%)4EojMGr;e%z!h67=|g7rE`e&BtNH#rH}fcTWxLx38eosjh3#Ci-Jm z{doB%a*#wRUsr(A>jkeP3(Pl^=SH9o*H!s@&yg5Bo8M;&ect4Jxhuf8J+{ndriuCh zg3glIR1d8sD5-r-)p{uHpdauqXC$fn$nPlAsEr%Q5-g@hPmdM{Z^+^~gH&h^O(~LL`GkI#f<27Eob+|!f znT`VWW_qI8AG^GmE{{dQ^Rz{tfzn00BY%zMXAJQV)8u{EWYIr?*XZO)^kq?#pP1McjlmwD5Dc zV!Kk76s~!zjPapYFGj|}6_)Epwbbu_2hO7>E+Hz>fPUEn%CO2(MXPkk&u65UF^z1y z8!-<*jo%zRy$Qn7CaZ|Aqq{x`?a`A5$(P=l#lCkSOAE3i=WB~Jc$K7={=E9oYvWqj1X<&;Hu^WuxG<?A3Kf`>xi+bY(@r~9lV5yiul-!+wR{l0AE4pLz0w)(-E?aGKe@kAxgd^ zxwnEncnWD+vXVw8vx0O*03)AykD;niD!>s;*D759`IWFsk}j`@4VCfVd3}3+Xd#=NwNli|0@VD=EH_2dKUQHE$k4I9}JXfMLT(D z;a#fKsycj0;hOK{i#1B}Bfy0NIqdu2z&V993Tok9swf4MLuQdBg**9T-bk{P(%Xly ztdoWoHtd1)*17x9L|whwCDphH zB~eGmMj8IWRPdY?=aOo*tP}AHhi0%d!K+P=HR2zOb7=Y-gmm)q7?+1lOPZ{MJElK@Rog_qO#6udo<_dNb86+$i?M34=#ql1at^fwIhb6=p?0pyTG$HbU_x{J z`NY8*h)oO|T4h?XB~`3S|B#`dYE&&a^ypM8h((>U`RNY!g9nEqXt5}r|c{U+oYe5Q+f?9b0kWN`rSPNTW*84FDDd^8;VDU7Ea?}iJDeUo=Ce)$i zW#p`B(~>f`gw)ik^de+U!du=DKTD}f#`Dh5C55eUCtuQNJ$Wn*x`fm^c@)&byHu$? z(x=#6$yOqMv{W97a3aRuxh;(TT;cU^dgr~ zbbN?bF-j-;{zp1%4({Z+l+-@OioAq!RnE1K@C|V@!S$6EHF&-oyfk@iMpok9$%`dR zh`Lv~jN%6c>;YqSaj9d>+<>SGjJxOwk=8WnU}ZXffs9kn~kUi=O#2G_JV6= zO{AYs>odg?WJz)-O)1Q3PGL>Q1RvHoO^f*GK?zHf3^XEYz}|yq7F|JeDriYSW_kdo z3*LoNiYzE|7YY?2^w~OTO5w;KUw+Y}jmlbOuVqWC*dIv_uYjVO!Bll6go|S;+}c*~{^32y%4Lru&|3El`_+o~I;Pk{{xb4r{_g{ z1wYXd!k$w|SZXLXa7f`%Pz&!;q_-+{_?$Y5E-75{msGA3U_U@fIKo1tl|k`#0rlv0 z;NK}m64qezLzs?%$fOSZXk99)2Q39%b|EIy=oC(E6OFU_}Hx4sI{|flbW%bS@L04jmtEQBt$>= z=@tFJhxNcY@s0tFeYiT)mK7V7waAhxTE(jLB9}C3DPz%EQgGX92e&KT=vwgjGFrh- z#Qk+zmR*-N8(J0T1>BU&frX+N#J-){Rx!V6Mbi|%u}H7It9D)TA&s`I@})FRFqae@ zm9@x66-Q?pnYJ~A;UjF)^izRTiglLH@;QM1mt*TZr$awnVQ&8s5xPenh?a?WV%xe(UQrS_fRzQAp zk%`e;r!6w`bAn7;f`Xb~%)r=vkWsLvcd24kI2B%~L6;;Mh`q7hDF(r<0`Ouw$0l4l zG|*(XJ=f`yuU)jW4_U zm$$eL4_ufnM5}a4MGWU7!oL6QWC-ojxtxc#htn!!#(Nb=*x{k=QDi82N#U9|GM19Y zJ}$tQHhKQ2&3VW=hk&;q4YVY|FJ*27OK4fz0X`!TXZn{3!cf5K!wCuBl3%%;U*f?c zBHedS3~Aj#5fmlp4+DTjsgCz2*gi0$EJV_o##ZKdMgd; zzdDTU!s?p04H31w#=K1s{5LnrN{-P@hes2{&8sjg+9nZ4f^8POqRhvBc`Msy-O)V2 zum=MzaVgPy3*l)shPQ(7ux5eXK@lFZgs8+G81Q^bl9Jk^??ngM4s(9j1T9T6(1<9l z^(gT&(CyQ)QRtub<5RD!#!^zJj%rJ)peMrd zRW@30h?&U!bIz@U{N9ao*~-5tWr_!w4&C?U?qCQg{r(rgwt!}U3qw3C@t_FX7WBls zF_caTY-hg&9J#3pez}Ah3Ju|D_)o^E!Mi4`)xlYbOB6aTUVN@ROR!CSUFY4%-EQjP zM?{l|yMeSV;>-KJn!1)}yzu*9F83WbDXfL9aCbfo(fxf&fNVP@Ns}xo>iGTbIb{Lt zDGp~WPKNCq$!#g=(5gmiJ@_R_ksBIdn-pwW&>Lt@1uY3cm3R12RuCsWY-p9e7Jf`{ z3B)}5qE&k9MW<4h z6s~!zJgaf4WtUW86<@4YM?Zb8&lCo9Y|6i(y96j;bikAVbHE?HKqVTn1Fb!k7<+`a zS#j)@u+KiNvfGFCVwbd{y~tD`b~#OnJJU;unO#eXc1e{^sW=Q0dw_zTGvXnuCtlKm zHNXq6yZxn)_2Zk?-QZ|gw(q^&ga^a!I@@OZ4PV}W4%6XqNS{lBf78?RzA%?~+a4W& zh~xayw#IKa*{+Co$Gh-1ym|0?$%q(0=O{f1xd z9aOw+j}D0Vk^prWh;ss#M4SeSp70)VXp(`>AxWBK4cXY`ez`*&KH2y!I!prxR1 zwih%YZg|1^7hpw{Hka(Fmhdty+=B^2i5B<|S!a~oIBx{u_f+MOBWg@f76iNi$izBP zQuROi3cgsD=*A43RIR4J9t=Pdq$ru9wExuB!G)3uXA%Nd2;60YPC)&#uMCmy5Xy(v zovGxFCCdcm-uV6+GXBz=RH{xqgVWPUmjLL`wiWLAy3B6dC`!d)NbDMD6DtAdaiSNt z=6DIoy3@I$23lYtmQ2#QavxNVF~u_Ak~C+<4$V-@k~Hx9-@)dH-5Cz2F83cLP2*W~ z&ZbpJ9jT8GB$`3Gq_kpQOd*2c~Qj zhy09W4bs3A1ziF?`>swl$pKZDro_%=gxf%k%KXdFupwedfH)P9LX3hjK}x~^j)kmM zoYcwMSYg;Vt&Y|j7$1a@E+J{1gsP*oa@fEun@o6DkZm%d5Ly=}0~JatyVv3W4J5Zs zd`?@V%y~RN3{U1d;%M%7IJeCTz$B@Yk=oFwQqojU7=c&pXn2I4_K&wWK+`&)Z9*-* zW67VadEN1|^>Ng;`(Yytd)(pU4tGnxA9{y!ht~*sya_tx{p@;_ZSeW-{IEN2n^5*l zdN(oYizz@uO7jy5%R)7+2CPc8%uJ_Vqjc##EHc^`0Um44GUf;@FS-7a^z0>0kt-zVFRgt*l0z!6H#4a_kFKB_q5!bEgjKKDog|kk?eaz5YCe`MRU7XY@T1!y$xrFrn z1@N_cmd?&6zBW(fB_Y_}xj)`U(7Y+2YVLtAA)3$J+nZ&p3gpkJ3}c&h2dM^5(glS3 znm2KhT?8IFV#%Q7;$Vu$D%nG;1XT_0oRLV_!X@|; z=U9=j(JLChzknM>x;Uwm1+`{J*aAANuM5m7b-`xNT>>qz5P$PVZ5m(EDxR*!;@)in zGcVH#r6HFPh4P!)pb9a_tYXjaFKPVRG#UzG9x_*>3nk$dAHRF5z$Vn`t>lU5j{ntn z@F9EIO&pobJg&)Ai6&`516JO<2-orMQV*@xImrhq4;fOnD&4l9h6h_@-hVh-O>q;y z(CMj{$-+4Q(kMADk*?N$+5($2KPOsM5Np4`Za@MxpLfhs%TPTp9bh}I49IZV+R$=X z#$Rn=yDV%A7iVlQEWT1PxCuldNOpx7rF8*u4bQxp1YuKYsxF*tHA_{Og>B)e(N27E zQ1T_&%}AFKGGfP7$T%=Qq&`j0fvHq+z^6Q6%uScT$X>{nOwp-hF2Or%YE?p)Kur8UGARy-549{$ zbZbiCR&}9NozRTbnvyPY$n3`=Y))`sRmUz1Rtuwn7FZmy4Rl_CcHHPhrf`;e6)Ijb zXk1?}AsTh`@49un6qvO-T|zQB3b7Y&Kf5?Z&YTKqYz??t;bju~!z5RAlVw3{K{#7n z^x-^*(bd>$iW^RGc%EzNj5x1K_}BT}R7cAwG39s#->ewig|a6LlCG;MVJ7D1Bp-o& zrWk}}-(R%89R8Jj_Qto7*9d}`A^0T%$F9yj((`P4q16zjDxu4S0>IpYQyW?kGlkac z{?)b0P50%7{eEb>WBL=`<-JNC@Jnuao%z=BX~thS$OsSZwi&P_+a&N^omufFxeVBI zY50U4wq!}DewUmFBu+E`*UWCYuR1Np1q8z8|- z#@di=!pJD49~AmFd>CBBhAO zqk^#30L&gaX&@_FQ-|s~BXl;N0=-nR5oAho26#q3iQ62I#l2vkE zoCYRYc+HpK!-8AzuPy?gjlFYux!P?#fIICoHzPv=Ql2Bv2vYdGQkFUWd&iE@%eipwZ5ZMGd zw{a|jZNg>P5Sjsp>~*gHq1Z{ps!q)&w&vMONZ(%s9CE=%?zTxFmJ#l?wpCqCk{`}i zcl>behr3qCRi^8*8vS9|jrNBri@9VqOUpa&N{WQ7EXPtiC#^M^PzYnB*PNE#)d7bs z9p8A7nZNt-EfpQnG7bb{+ZJwGqo_-u2AU&|A(-)GgNgrm*7i+eY?Y&TU!>1-JC}d#BDRcVVgL; zt7Dne4#zI_Nt0g&Xx-3XQ$h;y7qU@_j=fYAlo2**{PZ#m&oPVe}{!A4!l=T<003j)0l0@{~HE3+TWT23VUB z(GF547Um4tP_2lMN5E#^Uocyj38jJzaujG+Y8MB-)Y1JWMal?#WpsBfsDWi-K-EB- zSZyQYIqrz;o}jjECKb5r)Z7;|$Cm_}ByXtdl*+_Qg7VCA_Y!TJrmzA}KjMdPrS&co zbb?JN4p{jqHKI2CKgBE=HiC{9nw5HyCwm^ zpC40Ec4?ZB6)*~#JRX`7{up4wI@g7)3$te1N_~>|z3MJi>1-+nA$pdbvK>s4ng95x z<-%a@aNIF*=2<#^u0z}%;!xGGOJHQ9Q_02(UbrPSS=bh4O~>!H27BHv$xpgJ_%h<9 zc^)cl6Fysllm2jpuJSC%|01d9oc5G zJ|*`s3+cqV5Y~l;4di2O$!k-$Fqf>H7vtTVIn7+_>J+)}FXE;36Iiv2lRB9bd*iIP zveKAeFArB%=f!J+3plmkuSMY2#7UjZ3FCx`mO|?4fQbiJCoGK2mn}N)Y7a{=PxJQ{ za9kPPvp7@@{QkFdm%!q9dDbR)BlnK}J}ud!`UsVPpX?;osXCzO$nn!-FfKKR5qNgvopCkN45ktSr~asyrl;2c+`RqGUz{a&%8-H61Ff4^Ugcy z!*N>gn~?msuaM|kwKY_SSGo&Vd7N$G66~k7#2+amc5{p;!1x0XWPUumL65R+=Lc7c zCI%?E)VUP@!LBe}R%5Fvi@79>1{%>c_hq6=?^=DS_cSIo1)8W;C-O28S=!|8 z6&FeK)5^pqLHW6)>t$hD(=go@E;U;Crh+c=Mygl>xr-y_MBT4wf!>$9jqa&+GeV-ow~xc!1J-VO_{3VKRZ<+`Rdk)YPGtiM+cv zOtkQoHjMso-m8m~I$6+FoJr#Y`_&N7E)Kl@L)Rrx11&IWFRxVxpQ9fyxW7+Zx1~wE zvu#RAn~CQR%VBaer1xss z*KBcZ)77=rby&l!Oy0r_A zM%vi=vv&!!1ut2RhAG6cwkxydtPiORuIVJJDPg)StP4jC=zKivX;oo%9w$Tt9+Cyr z(CIR+Mi<0wvjK{@C)&isp{bD20@sDYeM+>6XGHgScPUm0~zW?&n8$ad?%X1_%E92cC zxDYy)Z*jf*u0e_3u1}kTT?n_n^1LXEhM9I&k&7x6atj7%G5fci<3DO62CP;Uh_db zg3IiV!^RQWGvUR9=r#Ym!*uuWEu{NlcW9fxX*%x5+n;bxY`GtghsohEQrieP3;{L( zf2|Dcr4Bt0oJ}07{V?T+YilW1J-h{uUQgR>=y3Z8f|w=QARRFo^2d<0DdirDd>^__ z%-IkaR05c94Vi=})h3hy<*;s`N>Qp&OOqh34Q)^qk8uyll&3i0spY&UTWt$hgESEJ zG{?eOgG(-MT8oChVqQ#?UlQn9uf)k6Y!kff`-{Y;E>xu&wOdA$W_>=bkZqHoqzjw# zd!*S7pJEYFKxW0b9SazzaM&zUbJswdSd(X4bL`?&oT_bJa0zKI1e^M6LUG8TmkC$r zJZ>3jWHM$w%b$mV(i2)0+9{fn5RF=%fyh1)6*5k{U`+`X`#;a2a9JPM<3nGpa@c5v=%P=42if0*37pFo}>hN_0$z9u^U6Ktj$tXAkqLA;u zpjM}fO;SRa36>qpgzv9vo~$q-sq`b(xBp2-d~WmNd_HDe1zmgmWO!5~sH4k2N62@4SsC)OEE90L{kR|X4)+eMGQxI1 zciDF|+rsFYx6h&DqFW)Nta)di$BFFO+q+&jX?u<`dpwfmePHiM z;c%+CTup!7RCa-k9a7I`kbBHi?(h&B@|Yr2eZ3}@sZE0TjG#qt>oT>fQ+904u?N{D zWTRq%$?||r5W7*!)T~ZugMZi71XQm4dDBx&uL1U}yuA%dI+}EZl#E)2@~-!D*W9O; z0a@~ZEF(TuhyK#~`vg+`>&$0)>So8FWAy#t4+juOIeXO+WJF9dFjG3z^OXXNi_pL> z)akw9oOGe&!A;^I_xl_GkAZ54xI@TM11%6ECCg9As6giX>z39n-`YDqO!%jKj;c>d z`IcWgB*`tW_c6GD2%3_7Ok-#K%JsGqqC6P#ck(q>n1LIlSwnGC&P- zyX}4;;FpL&XD^_Xrea??+rr;}tqrX$4s#ZXmwvDx`i& z%^IeYUskfD#Vm-C-|Z+3XiqBuTzVl^2X!jho4XS?BWW{9=IkfG)!R>tF&L9k=?|qM z&y9H3OKbfcSh}Vgk~Ms!c^iaOb`z&9aJDzwEU_e`1bA4`79@f18f<~ZG1^;~g;Cu8 zkRBs{jv&uc9Za&UM#EqOpZDWwdW)t*@_-TF?yyU}#kP`Uz|;EBH$>i2PVB`I#|fP| z6w=EakV+4&ooFvpr^tPO4QwS3?T7*~NU1u(93&{|!nShjwAD5i%?#Izn?xFIN5L`9 zAeC_bp&M>312)M|CDjRCCKv%vdw10~a!lwyG4`9@0Z-I&BNBJU94>L>Ng@1#Wun6= zRfD?(uQeRrHrX_Y%b~R(AsP$FFXVB%%8m9wl)TBHk_De7U;EpsHDf}^sKrMtCC9{uvOdcNrdTD z9-1cGM)I0)pTq2uyH0wE6Lb71hlu2_UhQRFdi$r=U&tjra<_rFe5MOWKB$07vn+w= z#Z2C$7t*^CkSMuS6t#vv_cjTrPgSZ-y@CqKwMx>3&6!6?_@z%|jl|U;zH6`r;>zT7 z#ql`G!;*=Qi+hX7<&ZsVw=FVxHC?yti@c=E1kc!nLby=FgN!t)Oh(+s{Y|!T8GKk4 zhy09WRmUD#EP!r&6c1MrcX>zxH=#V{j{H^St>2JjM6N=@|0;5$A5X`KWjBgcC81&b z?3OxWY8&Hm%lXtgRVUzJxW*vI{gAP70Bl;Yfxo|?wJ~vOLRsBy>Gk;I%YdXu{4CX) zL35owwmaZ;{m>EeQ>de}t)>i9cZyO`Mtn)27t~3XcT&j()Rbye* z&=?OU$Zq=h{%eS7eiqXGd>_O_)u~9}E$(vPi{|^W*@mA}xH-u+;Hgc9mh%`1l@Zg3 zb>|s^jP7o1;X*bcEGZ>?-ufoFLz@jX>7!szQb(7Oz87^2z~ttPsEExDaT>i!J(Oxw zF;n?NwsdQ?tw4XD`nstrV$$v11YAF=HRKJE!}KbY%?QUsos5*HK1*cL9qT^6>Lx7Bgao`+&%iMW}=f8H&yIQnzsva0(Hue-6Nva{~ven_{jH@sJ| z;|ANXSvNlQuuTTGt$aw*g$-Pu0qE7W8vzR{n?T-2|Btf{t%{qIbAfB9?t=Iz`3c(O z!@49G%lu#EN}j2sWc|GHOxWn(_k%aV*Jg|BC5(|jWZx|?(l~a(m~`0j%mMt!enKxv z8kGBL@cxqS5^~wh2}{3Yy&p0{MzjK@^dXhmOO6R$Z+Hmew&?^z3cj>azm=p^yH%eG z!DfP_YM_a8F9Q$j$hC&L`^W`!p$@-G>m>noM0T^^PucAHQpRNL4(_Bq%PH=!12rsskSpVhUF zAi2YF^l=6Pl?162rH*>cB=#+Oo=@Y=h;$C#?(6!}yr6x)N)gyK;m4>jchgz68gN^e#{yCNQC|mk>+EVCU1?rW3n3 zX$mf&igr>nvbVP`6U^cA#sQlkrg26GAEnE#gAon!fF?va!~v59t{PZ!3PY2|QO(xt&1V|^CL&=f6BoKQyyblXt+^tI&aAvOd zp>w59Tr&jT%QNmf-KumUVQyf~ZkGgFV3}B|5u+b&)FyuaMX>6iPRRm`WAkj=yta!| zh~9jdG<#($#F}m4=fF4 zvvJ3!z&))HaHIn}lU=Cj0F1_qIbY2%Mq|0$pDVV~dz~*BAA(;UBbOv3KLvg0(=_*$ z4V;oXRAR+t?_kg4>gNyFWwo}NGK~-H#a_rFld2PvI2F>%HzaA77(3Z!@VfZ5Q3IJR zPj#q{B^M(9XeL*6>=sz68(+C_-Zl<#aFYo-0sWlK`O-iOEE5T5^x{bT&YWY{KriHz zknWNU#I5keGLcgEWTd1M3Sn#{NOJb961ptd7qm;llqm8U4QFtTS$>@^xHvCVy@CUV zF`6zDjKBeScNGbTnA;$8!VDYha7?B@5=2eQ=Y* zxy*F=FIo4N3cs1|8+}B;HRSVZH6Q;ab(!R2jSB|QOO%$2ze6L%#_)HGuivS$b)3UpF+{gO> zm)sCV07l-cK$+D5WgxB^s&5@$;$a$etI{7Q>xlNWj?F3R5;++8{vD7)Q!*7N|2)MF zj(Q^voZr?+8Dl*t!4rDebR*TRq!xVF0odl97VM_IY2&9KWKNYCXq;fOYZG;=MJn@nSVMYV&&!9)U&&O$e%$#c zpW&0dl#3dthCzOlVyt(rQfTvI-yq97JJq&k$lk=3L5Q1F2K6wgWio)}u_yCVuOX(B&-ZW32I4NAmhh8XcRu6mlV3g` zj>46-NV>}h@g@N~TahC6;deC|4vX5NYux(>jXg#qM6vV2pN#$Qfd4l!Ob%|);MV+n zf*wBv>J6Wikp9ugT64fB5G=`h0k~-5NqN3oSKX9{l8LtAB~|-r3eZlIAI- znOv)ceUpDK@QP9KQW&8JO|6-5TaDGtD&dEugfc6q&IwEDgrx>eF=R+wreEYlk;!|N z-CWnIN{hT`lgc2z2Hd)8TeGi|$!BtKp!bEgWJv*X{gX1!giaU~DV33e#8;VU{Amaz zJ!~~?BQFn|=9Zs~vyxk_S(nY`j=x6@S@&xZs|H0_`xO}1`4OMwp)b$-UCh(`wX=lB z2DPL^yd31A?BTcSYkX?;QaIu(!VntcgCZDFYv@bbSD=y}u1doKj5t{bj5j3qPBt6t zcc`luh6W`pkkJG0zdSl2)}?lYAm$I0{-@uzKVaYWNnY8j#5ZB!Dzwyiv+Tx0o~{3u z@V)@o75$P`3S;j{0kLm%zj~hHVV#iK$Ezqbp6UfJT_8*KGg#!Rl@@v982g6TYwKjA z(%$fD%z2m!O|k24h)xc*2)~VJy4OJ+KlX`EmU!x%JZVZ&xCf^1cTw2~?OzRVorM|E zghCQwns~ijzP@=OukYWYc|=Hrss&6r(7Rw(xN<-|IO^@T&@8DKV(EDrfb4@462QR! zDNn`hUL}(&E%KxWMJcneB*ki)Gi#+q33d)tir@$g&EurPmp^XkWP(!`;7SPtlmp_S zg*%5bx+sA|9Om`?S2XI;=q_rVqmk~}Ss55ZrYsZ#%&#wxCs#@spd9dpozy%FM+hN{ zRRcAV+0Us#Q{rN;;aJrv;wE}#%o z=p2U^`c*wSYDHu#nZ3)2CLT6;ynhQdsuMi*{(VxG`e|D;Xm5CLB%2}6-3G_aLQ|*~ zv20AcwU^A+zPT4dE1P7>QuowJEybmfuFu=|HX8YNH^lp>^Iq6)Z!O{>g^};yf%rlg zjb!4^tyNS4rre9UNAua~sk}_SgWS7)4)jKaWg9jxzArnfAoV1B9;FBiQf{gI1QN#qX_mW zg)#>w_`mJI0$65cS3N|Xx&(oD7N#G(HRkR(WbaiFgv_yJR?-*EhR2}2$z_+-C0dk4 zb86z^W)x~OOW~v*HaXRJstbsR3|_L-la|zA&TOP}D4BFxnT;}J$T&d18jnv_FBJ9Q z`h&oF08NmmsT2(RXjZZrQi>Qnb4?mUS0fik?H&@95{1-4_eM&=Z+l7szhy#sQIh63 zqtZZ&FV)@S>1k1KR}Uy7C9-q78E8Mq5>1+GeCp}tJI+Yzg(@Q@vkzXxG~P=GUpN=c zM)t2+5h1Qm$zPj|zqPFN7|Kf@L_A(9^~1gGNM+R5|zz1ozfvnn=SpiZ0=?Zj3wgzCt5XNkOK>w7uFX$=Bc!uglG&5 znrO1oriUasVFC1b@^K5Dp(a{{<9ye>&=1J%38WXQoDjfIgYbF7^pT0P58QZiY_ueg zA!!5Nf2Jz8Pz)Yug(AvKKh2_fEYwP{AT1JqaAp|`wt3Ic%)^#yx@B@=ZW@%}gd_}j z(u87$H-+2?f7RoX2rPa76^TQ8co`JI5rV+81g7Tkx^ts?e0<&S;(2m}Ad09t2O+Y@ zZT=;m#wwMEc;4fFht|wo=gB%;{o(Nx1R;GL-w}-i=SiNuC`D=wJ;WobRT4`z4t4tELBD!%Bcw09lh?aMRzXna$xx*hQ~`VkmA4Mt zR@YD42C^A*yxxRIs&S&G1|>M*hZ-zTOD;5Cl;m29gK1g9+&b5wAn<5_29_q!`7M0M z7+(Up4e^7u!Ek>{y}rM(sYx#GTqy7zIY=`p!L`C1ArV$%u^nE=jcWaBsn46XtQiKx4(nbB$~ORk^+eL zpPnZn?stJICj`Lh4#q2zt+TDek+KH(vcLy;p@QZ_YUW|7M9btvrId2Y*7`2cpoC2H z#iu0`PnuB7a9fro%m^Klqy1J2f{-|CuI5Sl?=CkU{&SIN?(_2Ae??lQ1P8846K%}~ zE%Kr)T5`LMN|I?nlSGcVRtTGLAgQ#>_irf%dZ8(X1|>Kl3B1@qx6n9wHCn_J>#)DZ zeN1q3_Na_d&HH4o7>rm4Do&mdW`e+9+4IJ)HGIk7DS?zGuzPfa7XQ0R7A?sM>sUT} zb6#geFEV7&oG(H&2K*Z+@Sp^CjZPAlxbpK6(g*bZEAom#FBI`WYaTr+A%-7Xup}^H zM9ain5H)dHAOe?-*dK2=+pm zIpGL&U2=v0;0}%KOfA)vMl^#FH4|^Tqmd=uZPTeHoXV|&C~Mi=OOql8g$L;{kk4;$ zt&Qgoh+Ws=M*wVvWqfqOf$3aM6%h?Qraw3@wU;#HN zOJCj1-_}NG*v}gJnSOQLX;6X_qLeh?8I$-0OlUClB*johK&de>C}9EaLeP*Rix$Kr zI{!Of4n@4q}{c+_gjQ{w97 z{ilTnWp3gSatz9B3?cE&Wi*1cfAaJAj?YIN1%Fd@H`%S*Fcg5-3Q4exh5}rY@@u@B z4m;@R%{unRY66#}a!!r=UB;5*#LbKRm$RKn+gv44C5VyIk~j0v%Egf>LTbyMVy+yS zk<~nR)(v|98ySz9!?`DSm_n60WZ=n@GHIP1PjcM3h4?5XN^SEGIV}5nTC(i->RhvV z;+=^=X*ek6PAQ2q=3yQ_m9ltlJ~`%+2PBXw@etNZr4H_p4s*Q3bbzL?v-y*MR;@fs zzFMxPYq3#y$`7JYq{-Gh(mZlZe;~^xh&53ujIzr(zxdn#!ey08aJ(27<-|v3k!!J5 zGHK+(Ss1F7LK0yfcw#>!L#BMOxP>AX)9peDa)cG?kPdU0B34TRT4YABXQ`|U=iSSA zAMR+@qO7#5gg7P0JebbE0x3}-dx$9m*w%bj+La_I>ZqAL&P>SO1!+kC8TNT_djI@K z%OVK!=(#F7jyS%hp1edg-a3Y!cyhH##xF4Ma{u6DZ-S2TA@sy zf>=8eONRxl1`;7MRqhm(Af9J7h^va0N3jBBA*l3ZpjHX>PzD~>*9=iBx$N<#-}1ms~ivm>hAJNYTK4=Nx*q`Di2ipqM*H zY8{Y)%oi@pwH-D~nl393SDKVb17AWz9D358u)0tkz>gVkhDZ`P_p8jgVjmlV5sEG< z0aG3*K}^3LZ8l52_(>XVCzXJl$y~Bf+GO(m@9?-><&3N~AXu>*VLw@lsq1AL$80Fv zAq~aHX0@8@L76*5rPDexmiU6=DzQ*yr-6fNoy$2**9)!lE?vGz9b~EQU#y$lYFjG{3&Q5_5Ak1wZ+Q^`Q*ir@85w+o*%fDcFLczwv+#~*lwS} z?XNKA(<3yh=vOA(aS4yiErye>-5 z_0EF^jVv^UPYqRu%(cst9q)h1Qz%J5v0xF^vOs61d>&qu#DE+yLg;{WSYVY+z$YQO zu&W~8|3nHR_1sLAdSL(uw!_>l1KNpi77G5|pUvR&2>7e0oo7659~Q+|7R{G!+)cFvf{stx?ynl3*%y?83t)JbshC}v*o(z%&q zkB~JoQ3NAuCD%bJ1Jv~$;0TGZcx|>9OLQ2tdFI%rn0nTHZagGP?z2$h1N(hav4(P! zLmZVJ7GT{VL9G5x&M2G`gEu>dbQ9Q?4y7c+47KAbh)Nd&Wt}oLxN-+p)bbWGMBl?n zDfIrYMXiL;&88B=xhHp+T4&+J!vdAU8LZU79TwnR0)oH?dc1$P{3WHGZU3C^?L;@T z>`2mrRcQ<5L#l;L#Zj^FdU+RG*9i*=A=z`+SZ}vfPH`b-i(jEu#J@E{E9FX|c61Ag zsRbF4JDxPq&x7|xn8vy-OV`0^DoM9!mpKwW9`Ctn&asS z#~n=|mnyx~Y9N*j;deB^x=qEyl_&<4z)nJeyF|u1Rs~xMBT}-E6>@ytDLed_(xp_X zgB=-f#t&MEcY&@@4l1Ro_dkO&#hI>!uf=95$F)?t7QPnwQC7Ov`5e>hn*6Nxv%Y_i z{&U;QMO7MNNRZ}P=tkA`qzJsP5=z^%!MaezHSG0A=Ycx6k%7dM(y2o>H!6jpzQhPW zB6Vqf{|Dk3^3jBPCLR(8c>_8Je;R^u$1XalRPPt*2x{x@%|0HWPlP+XStfL zg|EeWxe8mL6?1dWXZP`Krg=x+0>I@uJu9z4fzb{PDt*ln{{S}5&@+;rBcsqYA_=O8SA!2W&gsN>fjFPumG>71$Pvp^b{oi!t0Ng>_=6;)=EE`{AhM< zxN2kJ?k{UcS0R;NUP6=jr*Cw=F!y4}*fO;fsn4?8uLj(qoLGHbd~iY#l97V6NJX%x zKW(hZ7D_!Cn9otgLT259e3NnyN`!f2p-6nuP^{1p51H#+@ub83Snh2)>t|>?r8ds^ zf6@FM25Cw!%RD4%!xyPEZxl0co}3Zfb6GkQ0fi?ePznd0*|s%5=P)9prxeHUf8U4T3JAfFp+oJ}d5* zvNPV$I3|Q>m~-S|W$Wr0xATv?pOudKyrv zLjoIuk$A+bx7X`J2BoJ`wP7BTE-N%CAYQny)AxQIJMU)2x z_nnbq0n1(Ix{B*qwIXrOr>H}=n1s;Hx;k=C?%0!b znob#53QuK&>%`ptNdtXzj*ti}zJGh(Xjci%M@7)e9n7qoa~A|5O{FVyNa8V zU5i~xkx{J6N>?6OWsrybLf}M`JZXcr$h2N)!-bV+k-_I+kzG=nwQy&pA)Y#9c*=&( zOx@3m^g@H%aVID}X+STON$cbe-D&bJaNqU&-$;KoH@J%_!zvvHWCqGQWl*IK>9Bz; zoms}V^9n027^TvXgfgvyGnYy|QyM(*V$j~TBMVIZ`0yJmkO-;^`Wye*t)Kh5kJI zB5$4#PA%03eR*uM(qrmDRem({rZEX|k2DVxkJ4tQv_)q2TT<9HM(^Qh9k~`HK8*@mS8R4fw)wUdY2Z zLOe2Oay;Mvc)o0J`C2|x7S1Z9jr%>3Zk(G_I!FT+QCejCKEI@?_;`?-qsFu>G{ucI z`5tklt({gMU;N$jc8g20w8a$N9qAkK%WS()NX_ff=E45LpkQu+S6%?cwfnSmrnAX5 zpI@;-&X&bdsz<&1MHfFha1~m=9F5BBq&g(Irz2icxf#r5km&SjyzIXEL~ z%iY>c=@+kGO$RB0TKct%XP-6X;%6#_MH}jRXI;7RduJ^ld~exWsQuwTwm#dn-$ta7 z=+@>MFOqfMMFX~QN>23=8|g{>$%S&JmP=`Kb#vabCFiY;<1^NFia)&2v}S4H!?Zuk z&71#P*YxLSY_yAV!zR{(DQ05i`yW7%en9T5mU&2A(Q#g_veJ-swa-MiA2su})t^m% zH0$k4DmXr)_iqn>?jB99cOJ!>BqbrNid89x1Yfb4u|_7UnVzsjn1?bWqi0TB@dORo zGWl$m449{_l$SG0l)edFDz>?Hocm^rHT`O5=VU$~5w(amWFM3_al}lNYBp!)C+Gea zNW#zk&gxhBCO(qS@|k-(F}10bdrIU>%z=-a@6VN~r*1Y_@kqev7s}v^Ix7#!kaayN zR2eDA^KhJ-FIaB#(awDToZ6a?)J~KIL6Nu(rPcDo8sg4gr_jcptIzF4o>^iOsg$`P zk?yB#f)@AgI(d~!Lo#HcosvMfLl#YHm4mJYTNFW}*UFi&W5MGd7h|7e!NOz&2*E@ZfjR}iU%uA8i;+M+$EIvB&OK1;HtscOC~%Ow!2;} z(@zT9o@9#j>dh`KU(MH&uC3Cw@U_Ub*epLj7rRig`Tt~{&6cA^427Rnjny9I;F6;f zwdAErmlXRSxndW-BMu;7z6g0V_+fj;}%2NcwU)Ye?D~FF2DuPiRlj8%t+uGPndE zHFwpn(&TL7)R;TJRms`wv^aC@hu)3fRZ^?t`|m`YDnnbfR`pkflNJw`!6RngO*Y-> z|EgX4%=mG=+g!pop7J0km~_N`yS(G;MP*W`3m;oDOgaD*Nbe|H+SfsG_J2@HRfOxnA48TQHQa| zV6=iZAOCQ24qD~9Hvi|ky(IW%ir>mA)6s46;N|-+x9@)zkDA07Z-`<;w2rKRbFwv& zM~ZWjBq=D8?=Qeha9n@soD5ipiV(kc{CF`}kPqeS$_`i;93~mQ1Y1k6%|~o{U1BoXT2}j^vmxG_(xq^X{YCrL3JsSe1x>eW z3eAByDh2J5>g)9gq=+6F1MVgceAeSXSG3bso7yfLC3r(A)IdqVAS(vupF&RHV?xu$hwi+7Z=SyI(=CZ1F@6nu}cb}VXWEZn1|gms_<8P1J+ z9{0L<543_8CEMWSIg6bNrBIE#RL@DkIvXj=G7UHe>L;TWmy?2j26g5x0+~D~b$01? zW*?SviKO6267H0+bD}rY#6DYIFeNZS6O0S9`!HJQoGa#JYey)?xGoCDLpPH!nSnQP zHHO?}SKzo|alla4Ox}(Drx@D;`7OXAMP{-wbW(yzV0Jc&Usvkx(v`bN$(-zGb!w2e z@h-_HV}Ya|PF*xaW_G+pr$mojXKul4oOq&MZ-={_412OkLj~9VplenderX?mo^qq& z*%^fuNMl`m+_L7tfn%^$>{6%=t>uT&l6|6NaLoWtl>!yyG=NS{Ns^?X+S-2>@%Z`o zQ;wr9fCS*N25lR=qb9T}Z+t)URCy5pd92@w`14rhvR}>q!A6$&{k729Fy%1Uiyv|$ zU-3HG&8iXS@`IjF-uD`B8yU!Pec-bBWXGaO!FsLaU8IXbup>#ElWm#%5oO0soEF^= zYh+yP)VSx;Sc|dZplnz(8EuxoF1_re zKI;2x@t~cI8}9@eWFW5!Uj<-qD1{2F49Sx=P7=_QJn`5zTnQ~lcd0_{+DN{?LUEM4 z)C9M?E441(S(ATN9N{46z`o{jkTmlr})|S4nYu#ZyXcT9D#1lDVR(aeC$b?Ir zl6$p+W<)M$qG1#mwa+IRFRTJ9U;uVJ$(c)lE|?SBJva*7DZ$lN`b&5^6*3SP0@6%} zrg+D_Df^;*E&Sp_OL8idLIu{#rc7WJ3q2GZ(>vx$wCx7; zKB8aueWgGJJ}bSJIS@B2FA<1SKqSW_-i0@Pd|*w0Uj&wcv+pveHYJaNlcnDLkx&;lI-KZfMla(DEPZI2_jt^!^E zW0hRtcRO&=2UasSrrg-7)Cup0p`$&Fv*kE9O2Xz{veUcv-p1CD8~1v9NR!dabo9De zby(RYrd{RH)yb*Uxv@0X;*&Z*wA(1d!V00$`*39$Dn)&IGK!17zY?$4EWfKlPae3S z-c^6agY~Dl7eJ#5_)Z{ zPW})lknUnrQnF*iRsj6|yI6p7Jzf5ER8hRx07Y;)yowMmxNoK&XJtjz*+$@)vH!J`X}XeodLBtQYD?&L@}LYpgH zVgpRe+!8oxr^HdI)}T2vc1o&DicW5<$&HK~OXC@QQc=wW)^dqJBFt;z@aSJ_5uBZ` zSIzhL*8=t!{Q1d-HCra#UbO7aqll9vNs~Oo8a>DxN?<)(d@x!E9X&w3V$nT$+;~iv z>C_YFcYFL6$-B*m_Mj$M0bVsdk>5)G>B)78}=2US1479tXyNlDCX}6PLbv?4Hl*WNB5|6VfZh$vo9ql~3q^O1cD%%8 z$z!b_@IX3v3N2JyEv}LTd*Mk9N9F)`z$t@vDz=8)_^oD2$(&r`owfL+G!`^b9{W@LUyWxv!XDWxCTaLyXNn6rCNy1cVvVCCjwWC+@R-g)DCHaP zG3UI?#zlDAP)Wj9w=XqO<3a&G*o1;5fsGn-V*#(l2v)$LodY8?A*aR+&hS(tmo6AO zokpQ8a;F5Gu)rmlSuAf<<#?n}ePa3c-XJ2lJ*u)U+J} zEs6%C6{n=g@YTULLmBQ>+Bkkd^F8?WTZyh9ZtA^EaId5kW3W3?+zu>p=O*5zkBD3{ zoKuokrW-jWNfLT@m%v9oYuwAZPy;!^8s2wVV)VF{1?)iyI~P{>xM{K#apA7TIy!5~ zyjU8IXP(ZRFnDP6RrqcNnGZJC5|g0VOG{t8Ztqo=%QYZon%hKT2k za@<5R$dYH!bUWPJC#gMzx94z}ka40*p(dUbxSq}Z`a}1-B#?L3#beMYG%nmLc1k=G zalsQN089+GK#7rj9|8E-s!S8D#on+gPAY68+4#{!vPuFpVNxN|U8l^AmpsT83~>Uv z0M=!8Fh*ae^gyvwri3^u<|N}pKWvr%lHJ)-)E#pX<^p*>7v*kszPoEzYydDFs9neD z>vuDgbaG<>Pp2dt(?dc1XDQ!Z%U_b6h0-3W&7wMc- zbQV`X*7Gqp#-je!53%J#=Ek7h(+C$nWD|@8uY5S0sr%~r^N5zw3fiAX0_xSigreO! zNkBN|4;va}nK>oN*|{ndw0545b$SYn-BO&)kLwrhiX7?w!ZBHxQz6oa8WoL}+LRKf z#y!V?@sb2T9B~ZedmdE}#)mc~XFM#=jR5Fhe-&5I1Et}hlo#+J_-a*}>*AA~lH`=e zRiVbTnuaY1}Jz9=Fv-5qE=ZVJR)LyVKA1kQ~Mb!4$q5+_O0 zs*~+7e!Vya@l7bfIMF3AGo8r(BkK&en1o?4`m7P+%sHi*ZQ$r0%UAHll=3x6^@rr% zBpnQ^j14wEW<>2(9nezo_B^<8;H!8K4hY#$d*i*so4c_?-8DGpO`I_h96c@2Eco(n z-&KYbx^&;Af2EDt*E@`?H>QSERNZRRFgwuNPBS$ zyr?SV(3&5rzuE9P8bnNC#`pvXDt3lH_sKmd{K7*fJN%j2trJVZ9D%e{FiM>B8ayTs zv~Ky4&qgh=Nn-6Vu@jGcZX5S5iS=Q;iEX^9Ec&5Gi&O>m2}X?_jRGZ5fssSz9aoo! zp{b>h1#K*7!>96KlR#u~em%I(WWx>yBHKOre69rE$RV<31i(7^)u?cw^h2}dwu3D? zYvLAY6qvGdEg~+lXSg7+*-1rUw`Nx7wM|}JH_rB<$HvW}iwQe-lM9u)2UMNN4t0-Y zn}nkxm}=FqO@cWPr!cURS%QzmJ-Bxcw%`Q|xm+1zp@e6^4JAk?Ka7n@rt!=PP8~Befd4n#In@37H8kXH9mTmCB-9_FB1jT9u)@G+;zD z1M9BY7BOB-l3^7vqby5BlHk6`oXK)g2nXVyDNKN0>BporgySXykYLYER6{>91yxQ0(bKP~( z#o8jA%~q4uuGKXg=E$1J{hS&92%rLP`l3KQ2{+?pZIMFRx+F8o!dYaI>mSvut2AC! zvi|-BkFqAeXpx$0u@A!~{P!>C*0LlTXG^O!%gl)-v4Y1}zh`by!S*H-Sl{UQ zB05d#K2iImE}-*1{7kvM* z*|{5KuDfP!Wl@vGa*ZGEgg9Lh5`iF& zt0RDlh$;PC@7NL>I!p_JwG^D&tSYYY;#wOLYLtbuNEU_EF1TVXt3by+_5b^a7H_L@Xs5(E zuV7q&<;Im;&w3gyhJn1{>4iv$0(D$B2YCyAn`fE?Vt~Zf%ZnW9uFmH8O(rRzcG&^x?*b`a)+Gdh~Q6jZ5jpiB(-e4G_9_7B)-f*5k$XaYObT_?*6 z=SW#Ot2Rj*Pa-_(_ncZylXZ4!fjy;70ySYv`LmJB<#?~_VdF-|i4`2}`FhYx2%+u@ zY78)PcomuKRb<8~6G$J}=Ez+fu*wjDVAa8?&B*a`^s;u08$Yei!539ju#&pXD_YT| z2nCx3G35L9O+o}cV4UAUum+#mN*6I)QBKy}pWY~&?`lNbpLL5$h^n3Xk-(8Pe zZJz`V!?-vjkRN=y&i9*)0y*$*7=P-0>;}k)$d7^A$MS6UH@vw$OKbX7=w`VWRZTX% zNw+3lXrcx2ps&(pfbj(Rd?=`Kuxao$dfwR9cOTlNj3Y<8|Ik?ct=AxZNb62cPp&>o zp-Pj`{rz6@Skw`|O231Q#nXOI1qbeOJdNQ8inC5dG{{evT8Z;ajdI?=M;s$1*aHL zjk}}5|F2^+^Y`MfI`$k=iq|D!xi0&;iLXLlH1mZo@}^FRS`3{Q)#pGDG;)fZf=(*z z7*9iewI^5Xx7bhpe2U}oI(^|XqRjv6r-fS*+c85B2?qi&cQKT)o8 zm+QP(tV4HGsao`ZYQPH^&yF!W^MI|8xCobkQomkP7g&}F(4b$|NLJ7(oGcW6+m0^1 zkrKD9Wc!9%hwb{48@EEJ&K;Gd>yskrdBEpG*`Pw|JVL_H__30`ZJ^jGfwz+4U`wjs zR_<164Tf-th9q^xI%%D%l(r`)d{(eTFHawP##OT9mIr$SefVt(=$*o43%O6wbxK0D zKT8Fo9vSd}HAy`e7_vj3q#^10g%HQj(9CAFJb(!Ue%2cEhf6!1Qd?&?;3t?bm)Lb+_EDKjq47K=Gz_Y@ z@N43e5BbI9e4qmZnt?rQOSXv7O5_Ees8r&%nrLf<4hghelVZkv zFEZbVL{oYe&=5BoxS&%4em6xlP6g&$hl90F&*d8p$&^y}_(bI1(!IrdlXE_KU`6BI zK-zy#Q12MjrLaOrzD~2l1b5VhxW5Yg@=i+<^yIEJArU8OrOpOJ)OA71Hz6G_*=d4% zlS}1Mm?rnR5-3hyWWM0-fm<10*Zh68f|HJKG@HOniMnLqF@W4Cnhk1zpeIk^5DiJ{ zcoU3=IWpuiK;=f?oopF@gAx&)dTmx0D{J2*^f|<+pmd{{51+|a#LI5A(E^z}Cdl$U zUQmeZ>)V_*#U7b9sRb?qGg;B7Evj6;(q$8P;i%b&1$jBnYAIgS_Rc<+{eW6M{kIeT z@%;nKD{2*X$Rnd7yZ$_}5TkhqAELv%10bV$V)ZzPEu%mKPb8H=pxi_B5+hj%VlS<#JAPwGb(BoHWtJRhJ&gFGks@H}5R1_-aT{!N zpLU4ICfHA~d?*#m9af7!(7WRG@PdpV$6*gGu^5J+g5}qNR(9Zwkysz6Zr*X! zDh}diQHnouRQ3WjqUFOe#=y&}ZfH@X{`*%n&xrTllN@i~NIOy|n8t}2zGyM*-qJ#1 zSqL&X5;NLvU=r<#)%1S*R-B4f8(6(CDmP;4v{U)@{R0nBYUDbL#k$IQkO_;hX+XA(TutMle{35MFn-{**9QDGmhx-CtDn$Lf(U5=#`QPRc1QF2 z3mGhii){6$ZPNDmmL2R2B^O(b{~`)TIgpr4r`8?Oww|ySf0eo~tEHfN9-u7C%Y0bj z&1)Z%msq@Ccszuhg?Mu`;FC;Rm))|`0VJj$->w4dS;28ui*v(o*xw^IJnHa$>?uu8Jr7=Cn_}R`jBvM zFf)3;(&GB_1W%>I93{IsZFt?NzC>Yo?DZ(yFgv4X@c%jt-)#8At_Mu6LA#)8pP}_in zDBgTTqcMn4xy4S6PM4eObY92Iu1#LhnNMzZaZxNA>X1N-_z*aHFnWr%z#CTRzy!A` z3Sqv}pUy>czGN^4PJ1fF%;0r_+E9a-ku7CFPwF_Ni`U5^#i2@_4Tf-thNSC)RF0ev zaI8^@w?N&`=Gu@WPdoIJl%y4=j@vT%Npm)eT^CHTq(ukN#o!?|+J?$7M7iF_&UD6p z&d%OvzhONULLU+bt(bWphCi(+L|t}tY!DH<6W)8;P9>>lt#ss|cn~mjP~h-jSin)e zUf#GX*kM<2FMhQx1(eF0kJERJMN`u#6t$3r#Z0N>$3>ysLRDql6 zW|=-{`kJ1SsdDpN_JS$CQPNLPgafnVo|5P}&L`0^uLVT0Zi+*=`)Up#c1>5D8O=iv_2u$ez~IWH~vfSG~(xFBTKHK(Ui^Mz|kPqO2c^ zqn2&?{Rf|5H zp2WSEeY-b(5__-c*W9x_4jUSHckM{mh3;*)f3RxAeH6Fv-t)dyYd(5_{ngoG;AgykXpH^R5Bw%wd zW!6WbIgm)scMP{ z|5y-m#YtXwbamB47jRI36CG@bXtyFzp#TRYpujFb;iG*$wkuw zMQUVhcT!|klON5&&!clSi&r!_uh;i)3wwV2@B`srSFxiD&}rLbcKVI&`}F)iU6=g+ zb%A_ukcSnjYWZkn$)$*+QRI@7l301yrQws;{%@u^H96qZ13NoMAELyyl%HU z4@c5y22Jv$fQrm7Fz@(5O(@+%9C-g7l1kf#n}bc_(QbrT7MW6T0NjM2F>qCyAeKey zjXJFbjfH>C5Rf01a&L9E?MA*?>uiRk-@lz|A!IQuRx9GRb$)Q$sTw!2Xq_zwA#$JP z2(>sFVP|j)V&JNNTxBD#J6D5PtyI;)7HWS1$#`fJM`NT!(uI;y)lkTTpS17Xys>R| z@;Z*@dbFdeNd`sMRg1mDNf0Gx297k)ijHetk-{{E{pFd9Zy-h+9@lG)@kh zlu5mDo;&Zd+2uAlw&O6Y4sBO9vdUIvdA|RKw2##}9nRsmL*Ga(+->w~w?{?i}=4 zV?x@(%L-YwD8)W_yZ6ibb46UO9nY^Xpw|ii=GKRm$4?6#x(i)gs4!BHcBg^ye^2l0 zN(SFy{LhdZKDj-Fjk+uTVWlfI1S5+AT^xguSipwtweha5Q;VeRXlI>x-Gr)Bt-gPI zbIM|ajhe+K6gku+3n8BjV4>>i=rUvx_?r~WZHge&61C9?3DWzf)liCbPkl7m#P8hw zLG30^$rMdiN$XT4v#;%3uB@wIHv`4l$a16R`4mr~sxFT~l@j%p=EN8pmVg3y#Pri@ zx8{pqS2QatAqG3dLp{0$uT;sE`I0I@bqr7O%76{K74llE0}o`!hGUS&`(J1qJ0hBp zOAz-%(lyXCs|4vj&R z0%leyV!`7PmULrKiwm`mgg9EI02}NpyQHc?yb_`&u)GpdkeF{(3s?#{yl?yxa%ng4 z%B^4c7*DD`+lr{A*W=+gORQ`WgWF5Z)uWS#4D=TElrpf_ZNv9|qB*Ied%dW#QM@jK zCE><~ucKXA$?E%G-n94MfT)4j_pbz{zPP!^V8cd;tqVeMZWW_^ zn{77gjUaZx8{o5x%To*NbhNR82MxK3$#n z$I&+R#$z-Z1Tj*swC|<320}d!?R@DkJ4~J9dfNV=zkFBzxr#;MennlLS7@yy*Wml; zwtxRe*U5^1uje@~Kd!P^p+{p!6E!?|JPpfJA}KMF9H=zaZj|Yh(wve$#2PMzM3W8E zMuR)U{<05^`1HvGkjmX8TNMZ1vJ0xQP+Wngh{l^JhDRa8N;_GuRJb~Q;VBkE9_+DE zHE69A5U{a_AXZN-v;FY6Lp!B7rBI_peQ{V46w(VHA1sza9_*o=0y&X@Uf8VARw=-a zBAyNTdP%)ejedt2xfH^b`=Hfiua*{t8L5#ifM+xsya|C8`$D#yk}13=aBum~RE13AKWz9sPOcVoAu_Sk#$8ft3Yg739%!qBzCOvkVTz> z_`vl8ajVheJ&EX^Jgwk3R?tH$Aq9y`Xb8UINyVd4e~w1pjNKqsR;rfvLdq~blH?B!;KtL^4! za;hUP&whFx>s?!nXZAsTTEIv}4xtpgj_qiI^;7UQ{5Q*nc%x+p>LODb#Amio1lpKD2Bg{$^v4CuLGW!KXt+r_=UY*Bd^`@j-ckzL!H!PKpL!;0Jl+ zAH(qWs8>UK-rS9wI3(3*Rg-w7wz}TG*e6@1Ku#o}j=E?Sx_P-Zxc1q}t>JY0((s{; zVeSUJb}|kj$4TON2?aQyohH>-_@p&1dgn@mCS_8M+6c*(UvZo8`Mbu$Kf)DT4?=83 za>gCdGSt-wuOj8vw?emW+?x~6++#;*6IWjxCvBU(_q zqi)mU)^Zv9(Y})hmjby!phfqLhurtqKu2PB}tNr^gzRc=^)GSc5>1*zhU z@n=qFGp66agFP|0!4er4B@{VAHNgQ1s3X3J#>&yvuo9wB6R<|E8X63>$Q%?(NlHUn zgS~S~pg{pn*k`9pv^(WA zq*7X^8pHO`z;U${7b;#CLOwYliF%`gk$E}XD6uS(4F@#QX%f>91mQdPvk}go`M%zBhVnPP#SmisjzR?0Hgdyq`rU@ra1MsUmO@g0!qMsm_Ac zinLD`;Iv;sv`2Fcppr*iAN7jgT=%9U;y3?iBliZIo{a(=h^yAAtR98DIk*&s zD%W+oP4VPbWHwKpE_Aa_SDrp4-8-kpq&-*AY!t%BE}^R&ItEShq)aN<;t)85;{p_M zQlj1{lWIJ?Qeg)da$L_9aB$6s|63l4sMddd(G|@Kty;-d5u4s5pnCR>!O%)69+;lk zcc&ZQJG=;(gF%0E{6{B$bb9a3`*wVH$Eh#C5YIn$XaIi+w>!n4aQ=oA`5}JCw zsQ%G4zIP{ir%h<6`}p|CYjjcrjEGUpS0@fVvlD|Dyrr0ILlDq5)N^we33IXDk5Opxr0z;bwn=BaHegZEP*>W-jVg)3!(p2G_CC!j} zqE*BrlIlY6(s*i>p|isQ2Cby*VB$@oDnZ>OFBJ!JbWOO9yqbd|>#E6AU*T>JnsrTPbJgdCER-l5G*m0( z)piL}T?5F5U`zaK**JI+C=x3tA>&dOtzxjJLFM$w@iV0k#i66}Mq>!5)v(cmFOEtc z*x2j)w>S7@G;2C}pp%ji$3YkkLS$bgU{4PCs*I+R1HB+x^dq5(SX9JGF+tjQXYfa` zrp7e8bgLBdS+hc3^Lpi5BGcNv!*^Xm{Wg}V!r_g zno~9IjyO=`VhR~5PtHlQCJ(LuwF`}1T=88 z4Hq<9`J+>G@mi1m>~rHB$RB-Pz^?5>I~J>OV-V|j3(edIb@4ezG#MPU7c=Bt<3Bn; z7A@N6^LywjNVRO@f$sg=)2_t8jxa_J0VHQ%%#dhfhk>DXa>Dc7+N7 zI~8^+qDK1Qb=AM}N&eFxiPy_3A<9vMRRTH&yCcRRmv|^*!{@K;_n)ELzE5(U$cp=6 zWpKH2S?qU@j9kR>NnC*Psi%`mBqf$bG#XBfA>o+jOjaQbr4%(Z{m>fRX%mLOnl64| z!=UTOxVVzlwXh|N#m2VCR>W%YXudEQ(F~iFA{2R(LOce68rc#wg%@Md*7e@p+<1D> z&2qD*Ipt4VG-6V#hd(k;EA)?|r!1F0+3J&|82rIB7VTFSE9A8zxN}ON%syyRK=o{^ z4}>bRt<;3Gk(9c$Msh$5_>}#mBwrM4oDztaPuEK*Q6RnRoPS?g_O(9L|a+^o|l-CgI3cDk8wmYWrx zU*MyWqj?Op2d@A6(}KM=DiUgfVIR1R?a8eOu9SGC0X(QVmSb5k+q714?vZ|!LlY@T zd?R5tL(xROe>*xiVQ{dfnoQ!LHM`rI1{A+xsj?Z*k+Bq+D96IQWBh!R9>e>ixx@gRHwVK zK@P;dZKAGHcx#we#7cmAHUxVPLSp%}9;@+BJa2FbpB}muaW#L~x|M|sJDx&`x@x+0 zNsk*fd6Kj7%GeR`uM#7BZG^-f9psw@&bu2uw~$0qV9~bzPsjHTM~Zu|(KFzK4;r|E z-7B|KN?~uL`0t3Ks|skPCUkH3-e@+Q5~z3i3gb>32u3tX=-r*txu?y+-Ey;r0a?g_ zzVR5C9L;gdmf%#;WS8Kel%#ZOZhsPFlVOFd%7WZzOlj!E?DfJjmKq_pf_J6SW4#{_ z=}$2aE}lErzC14`)g>}IZM^`K4b(Ow|y7SUk_F4)BB%qE;Nbc-v)TT;uP>NGB)pyP2rpB<} z05p{X60qwGtD_GJU^8x?EB>q4F%ci~8frt$Qko9}Z?KYi?jqflc= zu4KIA(#;kwx4Q*9ecYZp74->299MBZx;I=zw^nSS{*APR&4@S3Sjd7+mlPdk|3yX>f<{! zJAo>ImG^J7RTc%$_b(GS_8b)1wn%wj23o zF%PeV*y>GH(hQXcRSl0&rACuHDU*6*$%adj@L;GVv?|y;Ljxm5EYymIWoVP^j%Cpz z=vL`k;SYHf?(`5pLczreZqg zf#OA1_*KRu*T`#Oq(t_Cr7?W=koEnq)Nhv}y654!dgaD}5<01>k?HWPs{+U|B;b<| zM*5r5=8dYQSbhIOkPja?bb#vQ1~kO`UjQSuCe+nC)=rAV(yop0_m{J;tENv%<}*7x ziSGSNji{Y0n{-RGojt@uEe0XBB2eK(4@qL+<_<>eo`P7U68OPQzf`fLCYdg^K68~V;Jm` zO^#cFQ(BXAlioQvC?zSKsvJIPs@|wDBPDVX8beF0N4|dphjyOCZh%fN4zl{>_Jd0? zi`Nr@AEQOn0=?&KD3m*UHi9Nnk$wfSp;kKC)esyx27wY;70S=z@xBvsp$`Fhd$Mtm zhc6t*e&r#h=rHw;r^`uRs|9<-T>y3g2WAbyk&j1k7vTLH=v+A{zyNy360U{V3qh=+ z(b?eEXD^fLth|GTRxxNr*!;(%(a#HhQGgg;5sNRi>$F_uTIkp5>g-k=*XcSWM)DXM zHmrr)mD^_T5jkb3;Yr0(iyst^Pj3HUHa(MttghTFefIv_LMk><8~ zqWPdEv`3?LRd{E635u@TM*rUn`md&6P3)V@K4{dTqwA%*l81E5jT;+ekuNHD%gy-{ ze@A|Rgf~Mx?Ey6E>k1X}(5i;U7H33V74jAArBD|awr=EgD>B8dAxMpEKH)J0n{P76 zU@Q2T&b!sTQ|+H7@4ucuuk2)X!RMfvwP;r(d*$PFV0!G9Pi~gtbwN;MNpMP_Cj-(4 zO^Q*icJa`{b$jw`MmnzYu-6Pu*{B^K-W+A8N|Q3F&Yc$w{h=D<^&y2*;;JhLvv~bF*dfEz^x>md&i-M8vdHI^yF7#p-d8KDT8LM&KsUI19?K_>i(guJ zP^FvsW`!j(XJ6!DD~-DBPckk#8hw1oqSmg0sE(aJEwzzl#t^L>))sulxGxcPgj(eL zUm;FB9^u|oBXm-tx@1s*9a`6$>Z-G8H!gB(_~t_Q=Du~8*_?ED)mt|$TaiDSxrG0T zN2?W{=$vRd8wAChq}fhMN=;syRLf3>BPH@B7}eo3Z=X~oR6Ru?qL*Ny7nU`q{6`|}D-k%V4)S)s<&Tlt{Ai0>G95tF)qI{O^* zq}e)uk!cR*$0Lg zUj9?+-MYs^2pPRr(_&?LiY0ehY2}WlQA?wt$@;tpf`fuW|xAM*>Y zR@83R_qyMRjl9-X0c1lkvQR)BJuYAnQqC#dlxU|Ur4aI@>hh0ufdwdDeUFB)B8ZLa zi_H3xNJ=zL4w{rny>Xr!`x`nnH1T--&_b)(W@Y}F+jkFan4{Z;va`*CQr`F*KP2LEwX^H13>n_!@(x89$+;)k|R!>f_(mkzc%8kH1|d1&l6e^*71o$$2cZfl~yz;imO@4iLS{8A!)%V{lT?Io_UDs7oKt$;hq!}8dQ&8HW zLxz&>Zs{15ZV-lMXaVUCkw$Xp8oH%Bzw7gUKVagXd(Pf#ueJ6*OB3CX*~xCJwQ8m- zDvFLJqj1Kp{OA7)Ombl?V?g34|3$;}o7?-*{Van+gY_b>Cp2$G5Nlp3MElfw-Trt5 z$GG+jK?cNfI=8tz#D1LtNdh@=vpZLyzL@y(DARm8=^gB!^Tp)QN$B)Bey}(xxdvKk z^PSm@j~&y8m4GLL^qt4_ogE&Yyq@<@jd#Z+*n1GG>ro=g*x$q|bXO)}G(*+@25wBS zVtSnyve47$Derv{+arI+4`8jTbvWL`_pOTOpSef@=|VaD2ZsNOt!YJJGDv>NhTVWf zw0X6e-&_PG@cqvRW4OxleZ@Na|e_A zrJp`i)4+{>`C_4A;niZFa5=*5cg)^dY$=DSW|5cfcSw*r%1#oij#;Vkc@tSE<8Li8 zl|K6 z@WRY!A8JO~TmsRFU~4@31&e@`=vnyK%=?BHPj&Hd-7NXiA~1mS61+;-YYfg40V^<#u0XibkE`{)l=Z) zdvBd(%ge7md3!4Y8>N0t6>%$9EmAzZ$;SXGzE@^_oZq8HeaK7L&IGk~*xhCGN9wa3 zF@dM{DO4xEA=5 z@^bi}5(jXxOkhpNHW5#Ujir-TuSefQv?wvD;m2_|fx*f(e!_q(qU6tHWY~^!3i3Br z2Ry|Cy9ZSVB!k}spX_MlTmLzIJ$_%PHF%=eeE)DCApfe$m)lZV{O`T@Tg_7Cdd4r2 zNrx5<;ndGAwt~;d8lx-uzNq!QOA-^ILAS~jplNl{#CCj#!XHriZ%3a6uQL0sWA-L$ z0@1PkYU^|bb#EAJkzK#gvnm9(0JQ59*RTwSTRwOF_n}S85L5UYUwwWV>?F9_z!r;F z_QqQ2p})66l+Po!(=szY8)XxE6DUWW814C6?RlRp!50Vm_*eJOYG6$4+b^l_J+!I! zNV|G*TvBK);mZDE)OXK$LS0%ut(&ya!|#Odj<;mVbhAgdNZpv|1(f>p@W>P?h`s`epOWOxgf~V`|IFxy73kCOh`YdXZU2vE56QxRouJH0_QUUusvqnQZ>GeC;z@ z*Wb6+R}**>Nu4B0su~V|zMG*pg>MoSG1|9V%P0Be5@}35ob~+uEU4qD{KwhYXcd~6 z;f=u8KmLHoSlm_W-@Lf66fbjj?yw-QcUO(8UH)7&(%WM~_{EqyIN=L@OqVC+l}LH@ z6jXE{rqT#m3!K6d;)v}3C^?tV`?jdazaZssfIZDut1@txj)ny@M2(mQ#SL4ogL41) zfoazcT|FoXsq9W}Qp@9bFXV%Gd&J+vBlFsXA>;#jwl~X|5QB^4Bz_AMO{sUuXXyVWNU(==nvHZ%$v92;Z{NFCq-9DzA$I_0dWh+Y}AOH zQ2199*3p8{H-c*`aDX3(q4II4O@+7)Vg8#H2NwtYGwC;e55IKk0pW50nr*hTO=3Jq z-C$6!vUtE=2-Jb~7r{peyF7_-KWV|muJw{TW{GQuKJT6S(xTs6f) zF%tdWeqy12nxh(LgZLf)$7kZW?LJi2HJ_+%f2z*5rT_S*1Z6@$6Fah~2D;?F6C`O2 z=^pYrep5?bm6zAbOoS#5lZ>Z-vO^T;2);q(q&5ug6^St9W9*P>Qj|*A+>Sg$r|zAT zUsaX4l30?TqXJ!j!=>zkSSTNg6N=EUsNbB}!hG>2xqluI9$8(-#xEx}xGR@NQnp@O zTGJsPy>cUBC{m1=%|vguT33 zmvKX5r90MaS{YeJ@fbHW&C^ec^<-3GDNGB9jC@#lZmAqiXLXD3FUqqyK$;}J+dWUM z*SmG^*W<8M?5NQ2z?{qwjorqUL5rh&ZqF=uFI$|>Q+xEqEpGLCpawI_XJ6ax*pM?v z+)f?0-1Tx9jD^Hfb*%ZpJbbAv z{h&}dahswJs^Z6TS6F!y-6W?*+=O)kj;5vCJO8utBYRQf0`vYl+k$i#-aC`doPjdc z+~^<`uKe@Fi_y)nm@=PHP}6ceexP4BsLbhzarK`?K<+W~q&S$YSIc&^SC!!jC zZKUk%)gvA{H1MhUPQ^=tnipe%TaGGfpiF|Mc_ty{rp*`G5K6H{?uedQ+g^Dy^AOqo zczuk2TKQ_6GlGY>S7OWm@tRtUnz}o4X0IRRTsS-p3^Ss?j))%G>wd+=vm_IzugIVI3Q$WjXjB;-(}PSP)|Pd z+J{VyA|F4ncV{m#K!qfE)4O~STW={%-cURF5%U%v5HK*urM>K!)__?r z2^<=JHT%|{eGZo8C=b11jH=%0^Iwx75p?>1%K*u@?<(yF!j^E$pP$(`1Q*6IM;2vv zYG%tcjiytPj^J_3a3Dh(o<4MddqHOq$L{H2xx+`#o&=nzyPm&$r2JAEE?lb@cdLC% zX5;Tv6}UtAXy8U>^(R78qt~%46y{$F1C?iSnO__`3KE`9UG0AL8G+nfryBqajQx&GI0}> z{yG<1V+VoJtC+=FEW@eSk?@5i)*JU>?Ipvdz@>e5S7rOAz5}=^K z^-+mHpy(zqH)ANd$blNE%KrD{O9uUCjWAG1ZbYlsi zj6%#WPK%z&P)WZrwMj49+>ay#zKPH1{puPf-!h8(#X3hcojS;jBRvwMySOj(-QS0% zAO3*I-Q^;0yJ=fhLp@bX_9Lzt4EoAGD#W1R7-jkdCft{X!;lX`fN++6q!SnMg$kn! zzIm#sp<{Uj#>%MrY_R6iiMi7EBr7@VXrAGjFaZWA;G5#iP&c&M8&J8wx^C^BNxT%c zh0@kXF+o4egsWk@=)04VZ^a!K`?ogWb***h;cB{2w5_FawD9XslRhNmgb0=6_7;SG z#yjQ;sS7-y^Wrj2I0Qk8>XJDWOYicE=EiR!_K?AmJ)g3ku&y~XfJqWhit<}%`q<|G zyGggNP3S(C@O^D)TA^plW0ZolR3TLO{XF$kRt@b_HYdUq;Ep^&nIZ8Q2jBhfQnSim zd^{CB0{DNPT&P~vWLy3G-!q0qF`A9XQ&v6k(@mXvh%dSfNmFlROdEVj-ht z`wa(g#r#85&C@$lfpz7l3igk6-MGuj4QNBJETW@)SNHHJC6DYo{WAVmkVq4UHq5Ee zbvbcXPt*ekv<#}mw{w5gv z`&a+65LTkh#5b7q$Kiu|ZH>32MeY7i_q`&j3S$HKI zVRm#O?IyJ8KcBYPUyW#FRVu_yzKLdoGWuSyOyJ^|;Gb0!JKXR>{=|3)@4s}ukTYDJ z+Dm-iKhtYFllbLZ98cBw9(pRKRy18Ftqq{Ge65=5SF%#-k9BB~62Fkk@_lp(iLB&W zEo!u}Na@DNqSgaC*||xVLV~o?H%%zOz02@UxiH&|4$s^ZTto9?gySLK_=H|VMnhK* zo%@tH00x%}Lefs}9k4!|r=JJyex^R=$l8Hs6dvE&2&ond&YFz}dG=YhHEO02Ij@vH zxyqH#>|!;tI;);jGnr?m$xPXhVjW{i;qtyhGvzoIX!+3Ggc{RDPJ_NP81<4`jdTI+ zo$=uN#uAK)zRQYHMw%Cv1Fi!dQ=TOdNH(ymZ1HP83@;{*f^dZIKH$)H^9)yX&IEy9 zx-zm&kgcZ0f@;rlWg>vRNzRqe5rKR(2+tQ{;9y&M<$AI_1hEh(2Pun>*Imu=hdtPG z6=6+)K6gZsy(d(#g_*9r6P+kEJ~l&->Fha*`n@9%!;O-1Te?l)_I!QqYjJ}@1%HiL z3>3RUTBYrNC#3T2hc(mr<%+(`c9cigZw?3HNR5w!UlVPk)Z%%7pz}rVml9Rv=wd-y z2j9s(YgeEY2&+~D&ke&~VLMR>s+6rBfI9QC85r{dfV&okMXPuLoq~^8Z z*s9!y8%Mp{2)UpZ_g8AMKu)~duy?ww5X4s697W3{0mIaou4dwV2)?-$g-_;*Guo5zWR|=C{k9w;a^f#i-;k% z5mGU``d8!d3tSi!!!nLetNS zBpv9xu=NI2$=FZaGvUnpzh<7S!B}Jq`}mKf{ePpLjPO$XR`$z3eIX};`{L7Kxze|_ zSP-iBG9#vUQm{`Yn46Qa1ss>Ok3 zxAE%y5d+g?K2*46(o@DdQUjHCE1A3&@8A6h#~mnTsaUQ*ni z8;4w|90D)Bkt>kDZPdT2gfi@+uq_j>gvrj(N8CKA-QS=|BAFIB^s36j_uX}veSh*4e5$=vM;ClXbn3Wms;o`k-f0b{-7r1p*Ri7 z*;%&5 z;1eO*35jGI*Pq}X8)0`d`6hI`8NWZj zHi=~3G@;@-lcuWktu&nLaij$1Q8M$a-etqy z=w%c;CMC9eO%@@M{3kug!H}mi3+u7J{r47Od>^&fCxrrVZ~s<+76u&ixqHecg>&O# ztm#C&TKsdg!iZ!Nr8pAM1TZQ|FY^#vh2QsnD!dO3wmH-QZgr_bHN>fKnz%!r+u4^fDg7;xaCh>n zbzwCh_~{zUL|Lu_9Ah?1u`EV^&f?2^ zgC^B>MuzhTkMYg*LpX>t*>UB&KNfm}9dQp9_!BY3UG5V+LVTBJ#;4G?_A@>j3+o=@ zVPH|)kjL1J>NF)Mg;4u)%2+gQg;I3nqY}CO0fQeallCn1OtzA_m&TsDy+2sY@gNaQ z#oTt3cA!^`fR9wg2o!tdAjT}`^)gD14m#3?DHWNh|lhC#hZu75U1|gR66^f;R4N%^MEA-k(mO z+|`~(ndemq5|8wLCfJC-0uhBU>8lYPc3!EWn5TxKyY-q1uD~P_`12{?)EM?(Z?@jb zeZw2qZ;-jK$@`W=h;bB*Zxsvx;9^FE#~g~j#xi-M{5MqD|M`N5Dxez@)=FaZ!hGjjY)&i<#ct>Ju6-WteLt2ukNO0R%8tP3P7R45kC}e{S4u zkyDP{Q7_4@UM%Tc?hN!#(fg_&?fzPOR%@=FL=vI9{qa-L+mN@^D#RzNQ`1BX5eq-Y zraDEMpXbDhkNMK0*^|j~HaK@o1T}`+W%Y;x^qb+G=B#m!(x;7X{NY<9_xXdsE+Z0y z%4~^i^N#EgZXK;e=M{PA?=`lF&oEQ07>kP1!rbvRrwUR~d9HdaO>48{DQ%0wb;68d z=AQje0_1u}#>H1u>8uh!VHri>HV_mqi0eZ|)fL?rA$s@+A(i%1#X>H&ZMAGwizR2P z`i8QMKva{2oUQMamw8OM5G@?EFQ?5n@^4j~e;DeS!6n!Qw9%yPVWfZJ@<-ul-i7jj z0~M7)4b%-R&N`AYj}%{d6WKufVoJ7x#QWP<8u5=#9_?8%nCI8o8KpBX53AhBM4!F7 zzf*@b`+P6L%`{01O%fON2-Db>PNI>V>vQr9^~smDO+0$fHqbw3QJUbJgWfL4K!elb z-|Vwmz*J{3lNH$eZtE+NQ;9(n);+Vegmqz7lD`&(+i6_M%XR;Ltc`*8qn}zjtQF|2 zEiO_Xy86jeUgy^m1U&b-t{bL@2<`ea@UK$Nb@^1@pC0l?N-rmzH+6;CCw%pbT8I&D z|FMq$FpKSC?cn|)5;0}T-e|EIY39{06->b}6|pLcSDwC~{Kq>Loa^*C{pIhyLfy~e zC(gBAM0I7}(4C%pi#TS?CCx8Z+6VQXSz|i(*lXekA=_Fx(}Q}EGmdI?{F1EF6U$5e z47w=uuQGp#dJ*=IdyNxMnY9h@&x3z)W|kZpGV7tUGz1$3Q!LH+Oifv_R|YYOvfGQG zA3~dI+{(%oKS@^RFYrb@KWTvRWezKs3(|%NMZW!8*yA;n+WeWEl&fdd5-sA^Gi;+sv?9j6O5hG@nKI#DP9a)xhy0~@Vd zRPS##$IJ?(izX?9B1I_yBmAI6hF-`1^8?i z1zin-kV-PSN3iHmYVDk>enY>Sr&CVtjM~SPswE75{bXyKBpqS)&F-ojW}Di{B!Axi zP{8>oP^JaLrJ!)bmUSki9IQTRtVvD;0hjW;MSmHcT~^V zubC-uP>5hP-U_*x1pcj6dSIDmmHWoeCoM3@&2A0p=_>}VIutLfXO#VtSbn#7Ch5ck z0+RT}vVDn6=rw(RuW2wjJ&Oa2)0QVx=@-Z`Me^y*a$p4$%L`)F&#>!TiYTk9%v7Hk zrmHl;pATsCx;bxTFXO?sLW%?D{)Gx1OD|HA2mA@O=lLd0Z>27!-Ds5S>k`|p3MQ>* zO~Z#Llg;7^Dl7ibGDo2hZ^w61GX8LWXQ{9f-IZTH^{MfQy7i_LjIJzwbC-pc>ZjV| zd{VH?ZDzd!6d7b1X1_~c*v(2iEP*=0$UA9>Hlfti)r&PM?BS!SJ@tFla)gSOD)~ys zrt&t}TLeZphGLDP5X#pGPRN~M&%x(Luf)I)cYFvv6zudUifC zX?bh>GU7^-^SghD&2ZOneN4!VA8Pof-rBn{m92rFssX6++gG3$EDwL?ZDkz5(-)r< zGgGIq!m!YPYC;xXL1U6?nvUlpm(p7J^vOj#zv6XbQ6|bi!n3b`?I$TaCkmw6R`-v} z%rj1CQAP!`0>3^p3pbC>t+2Txl)~GKFE1iy^%JxK51#RqQe-)NW>;B!mdT? z(3sloS;;n4^U-Rf_74$QU&E7qM&@LbNVwm!l1)n>ll7gEb$O|3?m?Qpy6CLgTtTzb zoa;)}AsDArX61wTLr2b{?8)b@HA&E)u-;RWT}i?CvB+R7`E3nl%#W}RYe1hgI-e6% z^#CJlewI%$r`g6qrPdlSy>{2=6b>WOI?bIC#s+MqP69dB5DLy@*Mz8Pd{)7R@%T35 zK;^MOW$I#py5A*z6jPS)hr+?frl|)oB@ZPEpiPC*0p(Z@%0MKcW?1@z53ea5VCZyr z3fnyL9(PZWzA$e#YaB1P!y1j$%*#U6cXchBctA&%X)_@UzDft}@v1suTkRi45LnDV z9pa&|G8j-4F;@e>qmosfcJskS8M3{VNlH)w!2cp5dWHdS}f{!-u$_CjI# zCU-JpJc>+W>>1Mo01uGm3o?M*e7$+Y;2}uS8mv6|g{-6D{2%jtUaW_T;mM!uXWTRty5kUi zCVn#om<+Z#L0baI?+?Tu4Uow6aPL}zRo(0;){8!ml=mX#(r(jiBZl(7;zFfrch$V+ zEdQkqVPAE~8qc|IJJ~7niXn(uc+#vgbjWhWJFa$H%|1<<*q91xp=yzmpeERs3s@TT z8Hq>aNnc<28QHBy#RRJha+=xAL;j_eZ8m{?qVRpfpVC+4rtWLCqK}pQsrkn>J7?h1 zJw2noNVWL!x>y9bj#)4hXr2Qr=G5^+CGrPD$G@TaDL|VAalL%kMc(kYexE*C+au5?4q8xhwNyAZxTvzAZ9tdZ2CImlogiA#ov~@~qc-r| zI6tPLNEIGDR9e~3syz@^)a^sGa&}wRazIH2jWgPc%?Hm>7hhj|(z6jE7N6 ztRpv`qmU`q(&DX=H}zLs8>oW~8_(NLU8d=+Qmjd>Ky z(@9xb1X)R&aYu$uv7nG}A1 zt%A~O6!R!HS-tJU#}t7-C!{g&GasqqeLoyK-L7`|O-|MjOOGjmidXb3@FaZ(WN=E$ zaP0ViSIAyPtUmx|-t0idQSV9ck7 zO}@^_41GgShaN`piD=P*{98&OCwPo@E6G}eT@qB@(x5r`-3xV zRsJcFmmREQS_sHUuUE&MYSOUO=;k>nrUz_#YcmK=w3I-VbF{}xU9-g2j>c=&)f*f4 zn;sE(vXXsrkwYXAF|Yo4dWf#?$Sf)7peT^8ekgvK;&)UP5`wQZ&-&#gSBsn2aL_0E z77nZlPlSNoYmtDsJ)q0V6#6YACn~BM=@3XprZ1~S?Gd&>tO?PdfxY5s`k?hrcGU%B zcQD`k%}uYm*X9r250e={(E=o@5H!LL|6;^y58)EE4f*AGdhDcNLf-D6yKl>?K)-fQ z9r97R!oSADW?*ZO+T;z{u_WJT_tYi;(92jC5|$fi$QPIPv)`UhtHF=wo;T}dWtpZC zKXXWqi^f}V@RVRaC!$D-8FY2bbMO;&-b=T1fFkGSlSi_c!FAxGv=%Tkx!?YG4#md) zdj{<-dAD8F5Rz4`+}g>J_6i`hub1tN+kas_Z{7L9q#XfyQMNNollQNaXjI;9L_~~< zyrS%~-Wteotr;g%NLcybf=jLGNzcAkWjUqg`ZM#%ZWl=p>ryXv=u#TT&{V#6ve($8 zr2^w#r+!LR1N(ZnY}{qf<6G6~zY!c8cKL&9`*syeDaJM5kB{?+4d(l$kxguNwMxjE zrZ%FXP?Ac{b3KxjX1xN-S#y?pyNCYJ`=?>KDgq_dfAmi^PP)%WcH>`%y;s@gcJ|pQ z;ymE(X+*Rs5~O#Suhgb`B7#yfazyV8L27O}Xnd+d zWF)T7f=alH`WQPj@zU0z4O^pgyh;hPp6t>~X~P9>$;0w_{}=_gT~Gnk_?D3MWOBjpTt0k~TK*xe%N_pieppbtrPPit zP6fKf>V6fWsB93HeAm{`c&Ar|w5u;$g_UZ$p&gH|ln~<(TMPc}cH_n3Sxm#^}pG@gjhNeQ^48 zx{9!d{ve#Ax(>SMb0`|Y-e%?I%bEsO8_AM9AFHQ64FB7tkV7M3GzF%>^fBL3n>e5U z7OYGCvWJoH@!KCr)Y9B-8pq%3wT&hx`|zNlo+B}gsx1i&Q(2XDPrY0@czZNjccwq) zB*CS|%jzWBDD^qC9z7&JWYQ|clz!9Y(7{gd;ddKn+L$p|Q9*r#daG)wA?B?We>p!+ zbnE4Vfzu?91uVP~1CdIBOXxDs%j*Hy4TS`~3UPD(j!aWONvW99T53Ah zO~~gn7@W7SONO;nB(M&mWFKJ9T^<3#V=o%Yv`5X+|%Z*t5?o}Hu)jP%R?gQ z4NfNoZOAVl1~=> zL~0LE3rt*E-UwzTT)n1}lFs(C?&G>l^Ay8vy?=1yWs`rYSoQ)-B1wTtF+kJf|A zuwi*ueN-dhDkW7~*z&3BT)U08B~m8gC0&2J3p0!M~> zR`)_9MFPBYF1z#-2LHG^6=J1+MQZB1EeXWvl}Uj*(eQ>EysaiGuxHy4Gbo(befh6e zA&!}`<*~t~POEw_w4>GF+T!{{LHN;Ly_HY+-2xxI_aAvabVtmB z?)yd8JZJ-CterRl!Cb|F4b0z}Vb0HiWp9nV%Sj-|oOFt!c($gSI#zRFjI!G^GAAS>L4Egv|^`b0T!6_k=d`pP0i<+X%eAf+|_S3{d{8#HTjIY<5 z3@zrmQbl6gAB0BNml=1btRbOzEQC59xOHe>Bh|3w>7TYaasg$bI(t0oKNQ;3Poq&t z*jdkG1$9x+dU^6PCLwM+iFWXX6P%2gNVWLmF`R8*W=t^PeCgVnvQ5yAF!o(uaS0-- zFpBupSZ8s%03ndS_QbH%G-EtR;hXjIS~-j_c&PxO>iS(+s{)sx>#!NxOL|*H9Hpin zr5=BR$&9VkV5uJjRG2#&Yu)&5RwW!0M_+J6DJ~BNwP^@mH}{jiD2qM~o+}u3Soy6Z zV10GbDMI2xTJON0mR~vc=qlYSf*xtUz-*M3PTfsaah2ddbx(e3inqiIy(M*1D7Y!s zkxGqHU+tX4x?!U>Rd0k+9wwUp$H%%oY~U+Y4t}J>J5iMAeOcJA?jwrk<~QkB5)&nA z_eYCmRc8_rt6dqGAv&{mtvu1RH=$~p>>A=*;>J5N5hA|nMgG}rIp0ETK09vtpcOGL^z>!qNQlDW;H3;I$`#JUVP9Jf3)M2 z2~Jch=zd++TCt)SAQUKzVZKzSZP`dlDMzg8ks%!ZVJyH&A)C1WX<5#2L%(M-DgS@9 z&$5-cX9nJ4Vh7O~(lNksS6N_)v6vtsD4Sr0e+)l@2q?b0%AF!rr?x8KHBiyNoJ!+D zM*mK}F?fyjX-%)K(_cSP*!TV@`IfBe6lC~>$&q!`7K7e{cHFcv56*#4US9nB@WPzi z+TN?XuOuz$o`lCvYigG9!IO-=4@bWXCwoIr53YK~){|>3lUwv>e;T#jlkPgH&O=9U zdWZl`OeRCNjm&G=YQ=Od|4)onxFvpvAIXEdYm9?EC@jl$sC@Y(FMg<9|HEFQnw*nV*vXyKZ3SCReWwl3K9#kg1hEvxDK|fp zVGp;=`?Z!WY)=UR2pN#tYu0Z zE!3i}*6@$?sgw5)r2^ZW@T5)1&)_}nh^LGV(K3j<9uR?fjj0K~X*e9SFEKFKVwyHP z-uPy_zSj0Oc2-RQtO@N+d3I#>oqY`!H!urP`=MG}f73>q;^ZeMMFU*yt1f6Bc zc)mib6)TEM(ii_VIp>f3Vo$-aTfWotKYXP>b|DEpQ}S_$^nTU;GuX`5}He=O&2n#UMP?c%R* zv_647LkzCtga>do{bV3+l4MmSy5Z$@SAEh>$zQB#8Yc3|dZk>&ylXLLKX&v_ksM z3dieM)znJbVkZNspgUy`0h-sRpyUVXJZXS5qjA*92X(-{1pVmU(yrq%2;AEkI=Q1L{ zu3P!^Z@|@kQaqWsTgX|?y!svoFu+IESLJq9xKuD)?#y3Jy(Onk+FW#W*&Ez)^Z6PU zYrMN)!6O#|6FARS1Y|MHs>v_a@2_2~kWDN*?k6o!AMBDAzRCDe8w2Pfe1e z<7t22Z3=qpz`MpApRJDIOZ9ws7lo28_`(3P=r(71Be_G|SsN&jxJyccS&h@QdK$Xh@U>~Wr{hlJ#(+G#?wU?iS z|I^N}CYw(-RYdaEV0SEXO(mP{f?a_9RdpK|T>QsAcggdAbTfGF*A%CZ?*a><7P?DO z4ENz(Xr1lWElfa-FEU*>8~pKv4!t;Y`Xq#oLO}WWTQiEX0uwl)@pOyyj_L~T^iG(9 zHkq7GF&m>v@DILlfW<6RbGE4e(`#Qx;;3ls!!Ki+i!kI}o50cRGG0Hn#q0__2SQpQ#YQo?0&>97t_OaO+8E$%S=|mFm{o@yP$7;#)RzwnYia2x?tpD84j$A@_8L`qzgcm*Mn9IsD z9nJy9P0^~Q;Rg;R#d(me^^{E}!V8cCT#L5We$EcMp{ia3;LRD#y!=7 z*nj;$Bj8LF;^211u8fyI`fV_B*W{|}(Na+DKO$LcQSEIu|F;DHW{I?&Tv z77k}S+rhh=5d4$h)p<>Wamx6B%ImtwUsd{Q?z*z*Keo^c3Smk(Bb?$~2y9WL=X;^> z?)8@JZ`JSU^HU3Zx>BAHyeS?7hYm#thkP7JVORQE0R6{0b{L9`T{x2>gwmXF`ANA$ zlVV*R`zHO1VoS4Hr7WIB5~QAx?jfS5-n0?$X<7FZ$2==uovr75B!7}5o2e(WJDeX| zoYI67>ygO+m~_loTh&eQ!pLynyv21(act4F!4e2Z!v&@#aC@3`y7q z*SHnMIGp)g8(SNX=l0v@Ko0sTj1j&MHyLiqy@4vd@65Dik%FprwQve1@2obgE`p)i zKP3FZ%EckU{7fgQ)%y;ECv{hMlEvWkqZGeG-OGtwxVy&k4z}71eQtOxrcV0mrvmf&jxbUSbFC zak)kM+tOE5r9X?+>jkBH91<>v4alSa?)2Eal}0F(vu3Gu8y+Z3>RadtaA&k(^=t{* zrn#?hmId>9(QwfQ7Q%mA7ckjR8ZWcve+P@%FC0& znMasODXC8ndW~O#g>&ouT*yNvoQc{rK>)p-9{w)riTMkf>}R$8uyH}O44piJZ20%ygI(VLx|eEtwDA8 zliK4Gm&_9+To7riAmzCi{)7C>x2egNc zlOON4A}vUjZ?-SFvtKCUvBoTG8=xLM?Ww^Tkg_qU^z7*+v%f&v1T6cm#DFZ(!hv;= zp_V>gJiwKC)IU}54+WG8!xkF5^ZCWE+A6C=>!GxRWZ)^0*04vO~v_^GzN;=tV4D=Q?@Y~b@2whk9}k4B0J>9Tww0S^3FEJx9M~HfaevCcpEwKM zupM)a#{A`{2J2&7!=?Tvg3`_N_zV=csyNbqNCOCN8ql7YvLue89)-QnJ@kWy3QoKW zZBM3vd0!tE-ID77E5rW;th8j1u!}IV&^YxIyH&<+4SDlcm$jRsm?yRXr(%xIye`lH zR`{Gn&%@a|u472h#=<6&pZ}{M)P|tjG#SvNt_g1;uyTSr4r=LSt(1I#p^b2W=p)0; z0ZYrCl~N4|SD}Ns8w6Bje}d@h6EGn@&i6Crx8v|*wHp~r&tmc)9Nnz2WqwV|rol5Y zJ7)yMl$~4}<-3)wjC^`oUOzlYP|2HZWkzqlDU_OR*iSuqxZf;qaNnAD{vAlVZyb0jI(ou{~|^Y)M9KMEa~ruD~->~L@+}AOrS`0-N{n3 zLGwjzELpyzR2U1$&59(5qp7Ip3>@a8#sf3A`6sX6Wb*%q%tzZppbX2UGQg-4sy263 zquwoxO!4wvCi~0Nl)};CSS=+iUh%dF>&YWV8gafNzFG8LihM!7dftC1E^QlS)9%+E z31bYc<%nTNgVkr$JB+~ePOsP91+~^U$)68fep(U!_tb!)L@A>jr}qpjPAsDU7khlM zIte$T^AIy8UsIBcwhaTvr?bTGOXjHma#C)(nt)eUtC&uztZ8ISGzO|Fo9imB<*NhT3*=e!Tdwk}1IbR|__e5H!)1MveS#rJfF>`utXf@b|! zSkvAv$1FM1F;}#f*4`NiF_N{zVI^8JW{+*H`O}5Ao>yU6SO#Ib)^CQh2G|%0*Sl2d zqYmqH6@!$(oFbM_1Sm#+s3bg=oEhp*58M38Zsg-%?k&77>#ZrPN1J( zMEzBIeXj43*Ea$eMe~Qjexsxkq^e@wB0c7DOfc|hkomE}$j zz&p|6=pT3Ua$>dQB7d(h0~x7$Gfuo>`&pw^cfCsw* zlfdl%v2@m9QGH(*7Xc}i?viehM!IVlx>E`1lmRJbF|X!t2ni?oH42C&Y8 zFDE9tb;ZiUz}#%#NL>dB^5zL3w%hah4K*QHR>-Mty$ib0v8gnGSv~T@6ZeEoJU85s;!C3;uF={NuH|A^(UGI*wSwbQR$@)-D6kWSzz-O$Vahe9y+_vjo zZ{2B7uU(&EIiF`27vV;53PET~)NtxBhRHz@4!LPB?-;m~uqvQ`T}$xpXpgl%xCW`y z^xi&drOX~%hBYZIOl!df>$?E<@c1w^8iekSpt`ApZeMp@ub8sV@5=~BHW0T854?}f z$;k+USBf(Sbrs``b+`IA3GUDD2Q$fzy6X}`*ROrdYe@{YPsd2!Ha(2^p%Lwm{?=WG#LFUr{Tm%mC zo8C9y4{Iyb1o#ixwL?oJOrrvlymC-TIq;{@S5Px*#td>FuRGhO?qpBOp+DZIbBKn7 zTa`mUk=D;$i2C*M7za{Ty>m3C5I0)C#&7vyPk_75jWVo5Ym{NsE!dl7y)8pgGc34J+0!Z3n0I89%;d{Y8*p#87wtoHSVP@ka!9n!i zSqYP%MUa3mj2u*SLSTg?FH_+1ks#N&NDjC=BRg!DQZYt3(g%g<*kc;z%VyEuS|2>M za_ckL@OgcFJEo_-4fxNnWX%g43PAm$k}yIpnRYURk}(D?c%~w%ALKdGV!y^fHj;~c zQ74)rSJ3lSVYWUuJ!Olr0%G$Fw$F_-;f%t|9-d$s(ti3Y zkYxQsJ0oDJIMOsfbYoQxZ&LJC;{(7-wy-D#1&?Rq3~CjiX5+mzeIn2rFd8;|q-HAX z&F@No=>j%}=h-UG;RE6!;K>Q5zx?{R$a-K9(do2@gT*YN)GP3DO_j$ck~K@hfetH< zeiV@xt217vdf8u@DnmHp*a3scrJ61aV;t+RjfN*lZ_G^ZL1AThe&esVKxPfftHl+GT+ki?vmVu z(zMN}q0buu{T#2QLbr3J0jeNmvmS48yDlHD05vF&!eze=5gG!uG3kbj>{Npn`12I} z+yK^u{=$xtcs}*7N?1K~HN-<0gKAbqs%=a7Sg^8SU+#JfZUD{C>mzOgIwm&fS!LRZ z-`Yej-&LuCdWu;mam)0=-Vtyscz(CB5&eVEBXvH18#i*W^fv;baTL{F6_q$sG>sGE zMemOAE@&^5_vxB|M6?uzqin11i1eR-bvgH!koQk%v1TeM96&_^URAB;3E_HFHC2BV z9P@!fO53J{o6{(x+X8_vpHU#^jwDgzCH@q1h2JZ zElCEOj8Yb`wB%Wcia}JGhF39w$`jb84c_+aj+GF`W7G@l>)kCU*1=HGInsIsinzlLZtVAIn9YDdhA2*#C8RaK{;V{c56th?`a6E&9% z^7e2(CmOn0tW;0=K zf4FPz5O2m+3xH~TkL#>1NR+f3Yxnc*PRx#asV6^;PWkM1RO!B{oykw~tp)XT@jail zfpSR0McBA;w)oZn^G10rFLL4prJr)8KGJ|RD{vMhQ-Go}@cp#mn@CVARJL8eW*d_P zD&9g7|0_0&@+T0Umk58hfaE#GR&zIhar8bgOI_$~{HLK$f6`YCr2fbR+^$re2qd^Z zE&y$#&N(~Up}tV2GHOUnyVN3eB@`kg;6F)@{~5V}g8X@_Qwp7zvmZ&Bz#vJm~R?+8VE>l6em}u0u6m<@p=tHsNke$M<5?Dpqlq1``FtSdN zIe~2&LlI$9r$0JeHYg7BcVQ~UQCY{kZY{>Ou}>(0?h30Mf08Z0Uqb{Q1LJ`+0;O&? zdm{h#d+CEQ4XPxETxcM7*HA~5|KeXWRAbWGeE*X8u{DAM;U2>=8PD!-# zT)k8b>cE&zKC&Lo7n}R;h*U)&cv2!I0s)>SQyEZ&c9w!92}gkQponW|=9mGC6JfVy^F$EnG* zb}VZmq?4&BQoMC;_=?;6JvQrl}azm z4muX?m3%@3=&$JyW7ZOlNXj|sOi!h{Dh-OUy;G9rX;mf!xUN`AQn@P6`QM5~gQ(x= zcg4l^95RRHuV>+P92SDZs97JF8lZa!)}qw38mIR8_wQHPc=|=yZB8Y=WAZw2mC`m% zb*6Tr0{{IxX6RAkgd<8(*tG~8wenwyoZHL55F#ivrcfT8waQn7J6-G_Fb>>sM{bZ;L z3(0H*{)ci$KXq_Y_vS66K_=xgn~=)rItro9>yhg``87H!;qM5b56BdvV4B??aL)4q zYwlJ212f}xey_Q`W6;1DBh}cFCL;W*1=`C-yuZNx1k4tW&X)(r4-9s!#^hP!*$$SR zfN8%GnB;2;*`@kPMVUdwxEtGQqrk-sbr(x=O4`0+-($OfpiUSo19n=q0M2P3qy;SY zg+{srPhwWj526y_%k|$cVR<+0SO4m;!Z^C!8K;Gi5h-vn4>-kipV#XF{1JAuGB9V~+>&F{n_Yu|1r_)K*e8;x9(PvXK_XgwRmU8ymTL?H~0n zgVo5wfh`r{$JC($SRkg2Ph~(W9BSA&ynZ1AY?A+y6*<##sj%5P@2^TFlzC?ctd)P3 zTkcUK{T{BMMYPFmL&C3{LO0>p+F)#VOXBh=>lM>RJRqK$FN+Bzt+Wf>7S2@M8DD<< zcr_XcZ{v{BH}^C*@6qxxANx9g0~t6wIHj-Vf0+0Kf8Y-UqPx6u?o|iB641LraV_=v#WubS&3BU zDK4NBmUMw}me|X6ZeiHoS`*0$@6$S(r=+|vD1rh*nIZ=-p5)!SQN|vGg ze}z3EKHqHy*Mi49;@`f}Sz|J$-L?besg%FhXBVfSjh-Ygep*H(Z*wN?x7^3%-PFRb zN$X`~Td@rvw=d%NTrtUlEM`8#@}$dik2q6@`qKxd36YhmAYTKK>ff^AY$O_nzsI&{ zs6#qokjy@ntDW$=gq<-P%{L@zkZjRCYtkFd`^yEovMaDRnk(ZhUYxEz_N?%tpyG&f zoX)v2ul~f`C}c?^eRNX8ZA(CrJr@~`)8d@wnf92>1M=LHKaCnufmBrS2L#o# z-@u{{J6ftz{u^2~!Cd8-=VGGebFsmJKWz>Qxj3n52=%n<+S`hiRTE?CpqqHD5269z zfr{G39!r0XX#H|ojPbTh6hx&VB5N=<$-K_qICK3**p$%JOs+<{)GPTAub-m|;4O+j zoPF1DAy&m$UVvbcqMkDf>NvrTj+$u${gBD?JC-ZdNqg)39%3k20F8auL~m+9(!<6E zV$oC=q7nt`SWwfEs@5`sXE2+Jw=!A%IteJ{8$MCRP+Wr#O2}Fo&;IV%Kv= zHEj1EBNGh-+NbbvniDa`ZoU#SY99ecMmwKlp2{)MeJ@t{zcWE-?f+=)kDlyV zSmt_)1UM5DkE-YKth!sq?G;evu-Q&a0J&pi`|_Re?v@T)?{MR@=zS*waEZ$lUTTnT z2n@rNpyn*VXrYUYA0XNE8Q2?>F7xk>_o2Oh@;KbeY!lmK#Pq!}N1HA!U1J^)v%csKT! zn9ED|WPPduga>ANAWL4*w<#*n{dS~=H8KLq{mD(8Xe|MwjABHJ9!?b`P1S(Z9dwZm zU(7inyVKs>;#4vy6WmmFrfrP#k$O54cnAOP{55)}FP|Wl+_dt)d_bg9mfYm;whYE5 zrlU5xvNgi9Y=;VNc9&ai=`gKxUI0ql>Xr!&CKg$CfU8UPKCkO!(Dk@rz!9mFtp27X z2|J-!gQj=STE?+|L9Ze#+8i|phknpD<1|l(nn?C9IL|`B8a^xOq`>uY1upo*Q(&ow zjDvA~=9?yUTFgJb$uj+vvCfv9wq{Z-N+bNUy;kVBpN5>pxlbE&+O(o&bIWZ+)x;oT zyFd80?7nWTKX~i|n2`_jxJ0-ZIjeo2e>iO*7h7Umfnjd9=L%ibpByk!4h7*|=revP z3{7H_#ppuyWNfMWO(^BKdzFjLx0rDWv>UL9h&%U%^`5N&=n8Ph0LTT}x;^@DD8^#O zI~XA&w03=AiFgbYyR+~e;4sD z=`z4;aW+dx{09trPDnbo=Quq@AM5M7q9g;_GlSHu3(iPiC&CDC-IYLkSg|l}t)6+d z7&JT2cM8U756ku&5b zFTx9VZ6an7vHc~9Wx4f5FztD~Yp6D&%fEN5ZMCNodx=@o{I zxGJ6%mhDxXq}TsT)a_OEMB59p1e}7aFU6dCyd)^v3|>4(DUT&hv$eW4 zar})JN^=XRo3l7FF!EoQItb$6a*-8et0sX{O_2dSn4!+xW14)NPITdo?{``q=JQza**6Nqd`yr2#jKJGRkH}fzmPP(y*s;-O^!Ga^&M`oA0bgOM34BvJG_{5 zKVE{R_bOhWbdEJrVCio!1cPVB>|gAGpfv$eeO-mZNsZEmjMhBFtERC|*$?Bd+;X>? zO<==EcQe>i#EF)r*jnhMG4w&C7^qX#HWFs~<*B06* z$OBfYeD}0BZo47{5x`Iq08Ykju8^!nO^R5C|GW&9Nq#gt1S=rXDn1SKpVcJRu#W$B zy@vZ>zZ12o_Om;O)RGhyV!wwT;2psaq{aC2)a;{Iqgr!)^;BMek_yt^sF6XNBjk_+ zQS}8+D|9!V;{OPuA=Ad~r~RbuhrF&ib?VJ1v3#dn%s;e+8Q-0|f4cR{YXGk(!X@vC z;wk!H%$P^^Q8moao)9E+|I1`w6B1Psb#hrQNE7z-G{SYxXj_E(qd{aJ-bev!>|XA^ zh|~6tcUW_y`~gBbrk67MIb(cmr%g=UdgO%S2*T?3P^w_#9A}xrp@!`Tkt%L|Wc9_k z!Ft~Bi3|`ifNC}0Cn)CseKBi?k;N%*IGdgYmup{Oi&ATWl^rW;p8^>?IZTyGG68tp z#}k|o)|@L?e6bDml}9UAH?Ft;P9}uxz222dMmf!WWr)$9dNpEV<8s8_+z2--8O0aw zg+^9R@{u`h_dtAj@XK*mt)h21lLL&GU zeyu*UAMOb`ZQXO+^aRBecWiEqB{o1U#cjE*`x2IVD^_+Ie^gE7@LsiSL@H@FaN3}_ z*-zv;Cg!@N!E=|I;WEv#X>`|^903^N$CZP-8yINR;Ap-LL~a)gfpS72l`E;2ODxK9 zw0sRKAULKtvjRQR<8SfM`r6;zfYgw6aB*7Iicwp^%e3=3l=dyQ8&X`+9`jQuSIWof zx~6fU%g7rF^aE$3aZ6JYsp|T)sTgciuC>A`2oRuG0jEr$b|C#pL3RULRPrC|;&h)? z0e+?IFyLmo%Q||;seh5Lt^LApbj0YjC4 zpc1${8{l+vU@w(|L(NO&$nGZ#yojcJDF9NZ1jQfr5)IfRJ6)X$8JqY=k-{ z0o$sXgJt$0w6pa7ZHOHGZ3zO4RVd5gSsz)5&ni6IM_Rim zG5*j0aK&FH;(=p$>)ntRY6h7B3w{F^Et(6hUmntc> z4xI|vNt9=PES^fnGh|Tv{6cE08mu*TZ6WM{C|5MZ4{i=0=v*{%VIF;db$|2kc9t+_ zlZZhEa~o@y)8ZCy~xrcK<)EMMQnf5<)l#{1LVS4s|LLP zDt;8LTmX1;ljIFv3Cm2(+znCK&HT{3j1=9Q-1T`vGMjqnZ$`{Z z>zM3E#v~?NvFe`1w(6a4+w2Tlu7CkU9T<@^K%Y9DkhdN-jTXEa-czN zw`j^WRF<-%!&(0?jH^KXAxFxpmB;uit4gFe8SArt1Ht$*q@JTGl$m0O{NGvSHe*P6z#JEpJ zR5ztP8c?M|4wRWi2T<)V%ix=jfJS6UA4{wM2rkL3jEFUv!cALjXs2FH*)D*rHAbYZ z1KwUZtk2nnO)NmSpBl7buH&hc1Vn!3f7hBe=PXP5LKZs1RLky<+t&erdXj(`LQ4zt zp`|@A3~gq6@+?$21%qA)c~o4^Oalw{wjguRDIIXDYnfHbYsfEcOP~~wM)R8$S-2~K zBRpob5NgOM963ACp|F_S=?Ocv;X4YX#41DKO= zbHUV{``$qrJKvJ-q_O`LLs00oAKXc*cyS5T@@g3wAh@`RJr$p%(7jr-{z!k6{!1z& zeu2U;=sj)Dx{F?1Qmc*8|*_0(*4rX7O~}%;$wGZ)y_O>`jI4NsI6ZOAOWlB1C+#fiYb`Y*JAq*7&H1sV^dUh|d%p%GfdX-0i;50~;Q zG*11uVBURH2Bg52^@dC4jXUF7v;h6Lqn~%JID9Z0^mF4iVG_dw95+%OMHrd=q0v*uWh$25C@a^d!p=6%Vauzryv>xVlx zNS2}>%Og^byIH;02b`NeUXU{d4j(z?G09MT9NC&_2{omf^Ktng7HbhD1P?QC|6kV# zY)zy>lMp`rH-FdxwhRB9R#17xtcZEpDQ?yTaPa}!;nAhU!A*TN5a;@w$EKHzlw?Pt z$k1G&>0%Si+z|>)gTrtS5Be}waFW^kOGy}0D#{U4d-yCsX4Nh?jR|#sy&uRvi`rI= z|4PItxbjhgfieh3rq&|Crwu&vlK>dX{U#i%oniUZc1+4MacI%eys}F^Dqfgq0V}#6 z^RKVWR-}xDjfalBPP__WeZVOE!$>UvN#cRS1XKwAKHL<(CjqKrZ1{Y-c6P%i7L-?T zN!}o~SEbu5dUE=KuP{}8>pmT`N;A;FH>1BZQqp<2g|-T4`UQ)A8XdUCzaIN*lwq*^ z&hr9>!wFmrLQ};^i7vFMiF1N)Um1r!pupSOYZjMrdgni-M5W*_;eH676Qrq(Ii7bk zv({tN2A!~*8Z$M;h8`-P@-xNo9GM+@;#lz0$;5z6CmMaNtGEo73M;mr^7Ct?KVp3_ zPgSn4jn)3nCnouZOTI2CwmY}ujl7%oZ#Po=TLH%kDxMiCH!2TPyH$*8D?zQZ6LxJv zd2$juSRLPdn|duE;UBHO&E5q8hqr?_!oF1V->vW?W22!z7Uiyib_GI0K1;H7t;D$e^9(6QhQKXGZ?|-J77cQ5}W&XG$lI1-*frQk`Xeq1#EiL2177)0E9;a`Ok90?0b%8qyZ5aF*s|)Au@F)(j`f- zB^aNpgODGUiDbwAW(GKX5GBwQ;x}nxsWacQq$8LXMIn4OHT!1u-`u=;a7Du~Wtpc6 z{jKdwW~J2d+HsP-9u>*PN{^l$ml$sdFWId{M8;ib7ET#**m8b<|F3MSpO#7t;osu4 z+nzMLDc!WFuj=*#p=+By8w>Rx{_D<>o*?CJCp*e(I3S9rL?WBxZ~5aVF`jaz5IB~k zq73;05PuEYIOcJ}!nDb&ZJDzQ+vE7PEzKmCE9CZvqH~97r|7`H{8(Z>FXIX%H!_{XS64j#( z9cmii8w55@$qk>XP?}_3=3eLVCd_C7)DH2v-J7OXV9%3T9vETOL`bA z-!uhK!%ONEfv9FZUtG0(fc_~qt2ks7DU{mJ0syNWTv9CJ!|e^0%K$=zkl#&!f>Q!a zjHUPaH zcw}6?bi3}r0f>0|Va0(S@mskh7^aF=wvp|DFmYf!*5a4q@oVBfL^vl@3(XgvR{d+4npK>-fy1$ zU{p#eJ@(=N5bo7#7jq_|qV_G^if3r14+2;j!t`#FI5gi}Eu&*C7)nw^kbk}5r=9%t zLeaz28p(_D;;brXc0%vKpL*b_v|T5Y5G9JVES!-jXHlUXLIxJ7A6fA19;=D^WT`gy z8((tSCi6nI|MOMxMEn;9DT42-Yiajp?$0L@EZ)_nOd5v`2Zzi38!L!P03z;n=y)8B z9?wJGq$HcirR{0T5)!%T`Z`4i6CPiyr{OvsJRY_vt3CV;Y5%W85JBOuN-=bJ(|`5T zM(b4Cl?WX2188NKMvLvLZ<|8V3;qn}w--1d$@q%$enP1CAtwnShh+BO2oW9H2WOxB zXN+)YqgwT*{Gt|vn`?)>HRQ_80SuiRs1A6}P;UP^P*BVbRZHn^eic_i$eZ9L`%*}!*%sQayr?P=Jy9dtdZ7vn z_6a3A&J0-0F+a}=;ADg$4l>X^|Kwljcf_n>44N3Ysn-c3cC|q6_SyJ(Znq-FHPJ)2 z9Smy&%(=Ulm|rZ%C0k&m4W-PDbe0`CN)P|Gw9i9n9cw5(6g*%+5n|tJ&!=d-Ekl_2 zj;4uaj%U4(LYYU=sbHcv`~$aYNAwQ)TsYqqEg9K1aIT_vevtw#t6(Vpq5vUnCik_b z9%>a*@u*eYqp?*O%^(Jo9JNd7`UV!3On|wNuT)YAAybelrFCW%wXW!Kv5*?pmc-k-zR{`5lgtgWP&TT8u*$*-A5T_?t04a0gBNuQhjvQ4|yB z_&Iq`q@NE~yAjC*eXcMKl{LwN|EH2R(AeMYIXqdJs^jAxr&Wq>ILxH7+d=)I`KIMT zDCuLrytEC`A@O4XV?YtWG{iY3ZyK+TSt_Ffv@j5>!#KjT0^rOOolV-=W>r73zLnV$ zp(PbHk2)ybKc!9&hMH)$=j;Mm`l_`y)AM(cAEbcMhkJ}}L~bz$Or!*sW3UQ-e{q>g zLVPV{IsO_LkXa^1^p~?1i*b zf8Su-6uqr`r{fC<7O%5?a7AwO%x<4P&^yRG$_|Wc5T)RZAw2YTN^`Mmmz> zpH4dc1;v*7XGOn^q)0nXCZxU@Rl}MF8^8C;tFjb@=Z)idPEZu2%DUw>DvSRRefRaQ zAUQFR5AWgio54LFE8kf5i0!8mL0~m=SzJ%j?-O5|zlvehGjysdrJzaQ8DRP%ambH~ z2p`W!i>lI+!=3F~PM9#M%`xO4Agw9>cB`S{O}wM5p^@a2$O)G+SGbiZki@(0cAinE z@cyFhVybCv=i;W{t`>;xayTC|NjctHR~G%ShBW$P7dQ|UbV|Y1uVhLw=L)xeiBlQg zYw8t?c7n$-7w&n8GZsFpGY4(*ajY3ptpCRiUg%MoQEr$|Z-We}mM10ZwPLsYF2I*w zRy!GT9Kaf(=o`0i99M^b%U`1?4h#I{Sse(1*wjc~kU_}f|;7+xUwKm6f6`*MN0 zrewwj-cMA3L=EBJhPm(XD+H9Q|C&fZ4eLthnEi{AHdn6;Ggt2Acb#Z!#9jp}R3e^> z6+-XY=vn9JHc08kok8d7ou>LNc>2H5o(lmfYmd%w1?2dO8*fQDCQFAbG`G)b}b`-t;nSV-Y# zRj}?PH$C6Z>?nS=5(`OkVN3+JQmd^YrqdkoY7H&3O~4|W-t<#AIwd&+-@>BU@Oe&(XqVse#b^oR&Y5&_rX zBpxN!KmWwRmR@!$B#>*r>5M`MkJa$m$lv98B(DqA+P|yQMiTmM?}R5rG3!r{-el{K zMKk3XT=>3LomWLMQ&i2T_t&>PJ2|bKuX*=8Hr6SDfop#D8jM#4+ZED1l^v3yUzm^u z3Bd~%;0r~*X(6r3@ktK@4REWYF8%k85bPq3%jhV!cWVLFQ0cNXsjCsX9l*S*3RndI zaN$3rSIrBY5@jwO(a)806#J^W+al_IvjbSeg!k*yO{X_DFv| zuRXebk|u^2goooZzvdtz*U2X15a*6FtEJFC{CzM;pXa)602$}jjlD%m{LNgnF^nt# zZ%BF+zKC`z^hVOz{*pPL_k$%a*%sm!6a`Df5Q_A8HITmSG8@GsV_=ZpK1I9leJ59p zOLW(Xiw^hy#6WaD91w~>IWECD95v$`a=8_m97e0^lG%X}QP>{lb4c5+$+EU; z^4`%RH*>6>@IyrecTu2&fZS2k165bI@Fy^^X#axL1~dgY2DMX(WPp8I&&lr z;^@P>PpG;H40o;`&Q9N&1N8*Gf&;_<`W;8g{nVF=0+VVRmcrbq@oulYzPo7RY8ftH zSPO$~$xEg-j@9UqCPaK*Eb8 zPnshK*5!kGe--+n=LRuky?Y;o(AiSh_dw`0b)l8JRS*%hZ$+_l6p8_!U^3_HD5wlhQP{(w9%9cy|eN zAJ`W#T$~SrXov&fKQ)(lEZDrZ+wM#4uo=m|!ywDdfR8NMTKq_^7>!;u#n*o^(pc8o zUz1%`F&6H`Kcd`(?jdN5H6Y8AUgBaSXyhWvRCXbgRfDKCstbZq(=l8_MnXesBkPV9r* zIE7>hVjBR-_4lz3!g)2SZjDnto|WLCNy&pNA5D}S%cxLmtsO%UixaK>Rm)ifwb^ZE zH)Ed&?$G5H2|uDs%4I5x1T)us&4pxbMscbxtrb+QmR_ltIEUq8vp&jwSb0ZxPBG@) zu)*)})ziGp7^nDA+DSOV&jz6-4wJx-(zQA{FR6lO{S&o`uON!B#oIHp^B9TocY5V5 zwuqWp6z)r<*(c|xP{*$w`j-4kmCnj}Ng%_~A!F7`K0!$&Pc~O;E*-ti0r}7tv(Pcw zxlXON7va(=<>Rg%^#ey%1I8g5@I`Dleb~|GVz7?iYowGRU$*jwM51b5sC~Nu3Y*@} z-fs5=;)c7&wH#q#4XZM(9Ydt|9CtV33eybLRTkavSri4s%%;o5V}A~X;^VtWXU(FiSVrp;*+2=w+dKVX^6m9F zy4{9>f!flex?X-jt?;*sMH4p9VuTv%^4AQ8g7b8?4ql&d42@pFk5tTC&CZ;oPjA<| z^echUds4+UP=AM!P46s3_1f6fSWjjle>G;V+pA~}3Pd+eZbiBdBpJMM_cUKmX{}9( z#BSJjjg|^TWDTT^^5^eI>g73|LW@qPq_{eG8g{iw14uIKbt%``8IFza*`(J0c2Lqv z7bm>jT4;Se45}hOVG%s zzhq&=uu3lJNr=CpuX!s5yh}5B3{C12S+uWzoJq3#d35d73`8r$H$dq{Pdc3_A2Re| zcdH$;|B?}nqbqwuD*Td6OVsJ?4cS(?lx&XgHw7`q_yRborLaVMcg3!Su_L_B%6VoK z4tIkW?AYP(fe)%h4eA<4-llk;fY4VHw9Cru@Ri1xzfl5Tp-Yow1leu~t8J!_&KT zO~SRxH3=r!US{L?Q9mudN9SWfO=BYwjf+3cW3R^9pyEq2i*$_yE1#rTvhvhO9Fz|D zi-ZPN;l;@r$v-xzaE|>PRtO!k&rTqk7^z0QV*X@$XcJ1oZ2f0Yg-1FGWn|I#JjDtU zL(^zA%o6NMztVp-ggZ#m(cg*9LRBTZoHTJIG369Y)64@lDs;N5ntFY#R^1zZNqq=p zgEwnsH^1S~+JVqfmNM%Zt3y97(bX>*0u{+pDOFyQF$sy41-DoBE{q!u-u&()&l++) zi9*0QNg3gJ_M|&cMYz#MuYP$X`2?eEM9F;{AgtOYv2$0?EK7(18OJ4EH{^?rD8V@m z4p|9N*tk6CO0=zEytcn~K9^`N)tPQ3PGNG!crcDYZx}aO2Pw0e$+}9{^)9vshVw@Z z7L6R!f+oHVmraG;7M%|-m1`DbT1mBZ=dT!QN2F!|XyXYomYw;^f7rq1G;h4OeUl#f zY5#M9${S*YnuJAI)YT7tPkS*HK^n8_l9o{g&sckuSUsr1#=tkz&iTZ}OttbBLh;_` zNgmw{2U^ps@=h(O;5~EDRt-ADaF#k85{r=%>HlR`3PH+Zt)0T8T94$G5b>p*@<-u3 zq-;k(iGhz-;?^PG_iK)0(d0)Fh=RXTIR6E61p55#Gp0#)Rd9fSb|fKe{xs zCj7%4JsVNBRWS?3KtYAg@B|+(1_GMkFRrFE4%mi%+7F0M@`1mN&^u{wuU|;s;$^6% z9aou+5}t~x5H)=>Vd`NZn*~KlpbSc4+W*O3$*27GmuCV6HL*ujp{SWLNu@VYJ(Cvd ziE#YR9^Nohap`P5g4%H-;%YG7VUoT9^ao6yPRJLY;NO6)rR*0PWcakTz#E6pD#(Ih zz%mFc+t+5EPgT348OW6CJ}R+-=Y~Kjs`PT#T|78&7*N)W;KZ~a(RJQa6}C57yh+9A zT{iuqw?9{1XP13q+N9*%&X;{wz35lnYP;p)lWX9peD7}jc>l}%l3BJ4q3}(q(%xs> zBr`~UGkieJ3vE@98iRT|LYOU)o7?F)R&%cy8XC$6q0UOHjSp+Q3Cxa6Ewc5+d-f&j z{Jth#Zl+tHF9%XeIy20<6IniL@?{zq5f1Z3qSXQnOb18GhXF0i2Zmm)Wixs4cBr=L zDH>h$65pSm1sb0(bY|3hY6ClQxwUewTV(S?cMO~F9WLcV-w%$IBXJZXFl~bDiZ$Be zPTR}>^}+Dzg_ipAZ5~5c5HC%2lIsVXr%5HsORXKvSH7F`L}``E*7y;E^#($L^KjJ- zo%>?pR_e>KHcIL5Y7ur$EOY*u?r>7DH!x{3V-U3Hjnx>7J3{^^ULi>kKh{kwBCrAF zs!6|m*V5d^88LE)f z#ze0m2%OQl$%HPf<3eAgqU3lP2L?09p#6{h-BUu@+F9~*oyD4w=zNw2Wdn<5GA_vh z`EA}TOVMo0_ZZJA3AH+!XwxbmxEHKy2OJSf9c6n69&W$>`M{fLZIq+U}O~?#VrC47UOz>bcQ9ylDf+aM%&sat2>NrT6Dgife85oVLeP4FoqX z$yiqn1^}hlBkIld>~|3c^@T5|3%Mg$ut41!%7!V{rhSpl**@_rDJiFa5adC__0dFvNe(J^}xIivMr#wxBaSc1`bXqqk|JQZmZTi8r>1eebXhQ@*g7&=_!*V}nH5;MBK8n>;5l)v|I`&<}s z(oSxYP2Pb(252o8$Ej=#`Lm0Oo5*+=@!K-kcR5J4>wfIXTa@D8gxOtm=yAE#+c;zh z71_C&Iha7!Ntgk^;!*C4br^IUh=!nmL5Fg+y}<6Dj8g#ACcyp`&2KIm&xmxZLigVu zzPulIv=~*`Ma@Uk{^AcO5-5WF$xgUkOK@vOFNH6D^Y)RF(o~%+|F|UFTe?yhh6Gjg zoG*RLnsL4FP4_@6i{~Kq?#NsnSQgp_T6+7!BaPr1Hl|?EB2XO0c>ak~10C@0rR9P; zF%*hK=X|AFbt@%tFM1p*KNNEePzE~Sn+ta5V`S;P8CoT&f&5j-hEq6y6z;~9Yry&4 zloHFaPWi!pr9?BvEQ_e3bFqt1Vi_K-Tcijl92i4E_V07XP`6~Li$2%hT*rM`gD%eo zf`_US%woU%y#zvWGKxu2E`4*6)#g4cl2R{=a%cY6KNOUmXr$9^4cV#$w;E7a>s@HH zOUl;2vv2ulgzbaRL?|rGse^F!B1bH4~2DYnxU4mhy)XnqdU$G$KK) z8TtbxGAve3MgQ@cux^;QLyT9FN=bH}@PX@H+11mJ_b-3f7ZK(&@tG8VI*X|$ex8#- zBtEblOHMuAhF;4UE#f&1Lr2I?1n3e~U6pVyijU`34@~=hyy%7?aH$IYE#jJ>MctdZ zphBeQr;3CSZAmsw^(TKS0nZDEk<-JD-CDaf-%1p#e#8}57uoG;XibqNyPC@Uy;x_s8j*R6`V+%Fl_G(Y8+M%viJ zmX!8iBP1(wAk%x?`s`U5KyjErstZh|kwENZh#=#WxNU46&bIUaB+W;2q?%8c$VO|M zQ7nzsj_k{$QA|V@pGDFwe}@1PRX$hRk>J<6-{OMGq1!a?v0ZYM@N25g7K}V+Ce;~pS{XDjDu5y z1~ui&3E~?tR5^d=sFJZeNI)6wIfP;(C&bjL!7W||Zp*Kx*RiYtdLZ;FdP zZ6rMEdGF~kGGbJ)C%>lzag?z~80txqX5Ru`H41wWhRb+#ic2MB`(w&KjM9XE=#<4o>f7(*CgH+;!9PCMj-HR zNsde2C#?%}k3s0|Oj~LO=u>iCNdF+BpNojRKW)iQQiSc{oi?GB~b!g=jn5mmdSvy~M2oD5TZXI6u6G%po zWr>vl3I5Y0WI(J2D&Lwi1R*;9)`X*kP2x4vAf=_J|!e5H|zMy%tG zWghL?EwXK|>%=CVD*3Zm#tCv3?W!p(1^n348G7H%&_1!v^J3KV#)XUR!)0hb;_%2lFUu2butq4P!m5TxgM^S;+(YLmaoDu=@)l2*;xWj0uW z-sJXbjHZ2czArg73)r^mtb>}3m3?XSS!9>|tJw3x8dc;t6~YUf!C1h-oXl@rW#1Uv zgIR*8%xMSAvZ^On%!H$PRW!yM#<#VxGic;9IMWK^uriE(?B4!rk{{$}%*EV|PH@Eg z6;qiIBHTl#o+3sivirw>$*qXMlahA}>)BP1@Ad2?9DoME)7ntiCoDh7r%|1>>4zwO zPo1}pRw)HLgHmg9xKcNxs!!|pHw?-r0E0?13E`FP%K2@O22X6mTd1;Ydm?jgiSekrpcj^2pi{^ZW zqqN>obE%(5-~vWq%A06tqZfrg`40iHC{5f$qJkg@3Kjgi+{8aY{epK->TvWaz+^46 zw<*Ga(#16Yp!tsU%2M3*iYCR1Fs7fdzEj&f2(SO9tYT+-ZZg^OQi9fi4q;lNR9KC6#M} zC_<1ahs>kLWPQ;Thh(F&h%X$j9(PF837Kd;uiWPmp@>+0;c=$<*zA;qIUa-%^e3*y z)~GVj4Zwf0(-M|a%+)D^5xUz_fhFSmH!4*z@Fo+s)Ik6E!8MZ;O`uK*o;W2rVG~Wj zlYsSp#=$yQQh`MC689RDItK(X7tEtmM7&lS3VsK=MtfFD@WAW)KOQf8$GEe~cq1P> zY2bDnrvpkRO{h)QC7$f|v&bwbEnZG0P&h&&kOxi~e?4(gf?SG)M8)C1-mi4AESs~- z=J=3JJfqb-hmES3gJV)DtkkWdZ}hOn^^{j0ZvBDB=(|+z>j=72f+tQZKZ;z-!FgI& zh|;1g8u-HYqjJNKWuwbs!TSAopz*D8U+=0vAUQ>6>T9wa#7IHL`j(mt=}${S7EuvVC1&@CCBIb*`_Pyu5~1W-x4ZpidpNc_Avz}{VUE`e z9~u8Ps6z^=rLYLL=@%s{z(~m?M-l%XrCSNn(HSv&?-UXhhgHrjML=t`gqsqo4T+5T z)vb;!KG>(ke6a3f=|--S@mWc?EH_TvWXY0pODaulo6J=%h0`+e{qIRmS%4A#VASQ( z>U9f`eyjf2J+Wu?BQ&q2(sAC;_~q!i3)|R@C1HOa5i>J$rRjFYJWz2 z{|A){L%0L3x+GIJ)W*OwPQY9nR}L6LJ1>eW4-*ZqvI@zPfw=Hl{31rr zQ>N~gtP?y{WYW}Nd?tm`dCHcmq)%E>gBckgK3siy@g7kdBP#l{Q^Fjb5Cz}}i7-S- zG@e*%k}$_#q}1=Eqr~asYVK4RDag4M8xnKd04~K`F}oa;;D8}2CxoVW%9a|r@s~!Y zvHpC$JWtGxk%II~4EpC3QOYh3+|r%8Q-U2azyFS+y8)dO5~v793iA6;pf&8Al&R*D zm~TJy2)b~~cu7q2c!`c)XqQ8(%TC$eu<^FhhZU-_icDdx2(t6$ibp(W zOo{2A{{|I_!|h+*xfHGgH;SpdIf_u`F<~j4uvBMdIMXt9!cvWt?@*)q)Z$Jb`E5o zl&KSz>I?}oc5YNTAql^)xv>}DaDyuYCk4zSw!gSWw!i4c>Mo3^2K@5WBY)h|tHspW zb!=ZqSL6P^7P?(p_`x3YYV3sg^qW13X70AsByB*=&xC7VF4G1O_INs<$?)@)*~ zoiw3K7G#7!0Y#Ari}?N%iREEwex;DTK$> zq&PXIUnLGc%r&;Z|8$8$ShZO7f)81L9wYws9uI%y|L5yH{Dhz5?aLaCEF0xtrt+%s zr*(!+e3qE((J8{4pYdNLH!hw!{tcB9lU1HA**c4Q>0C#~*kjUHWMR)5le7m|BgJYP zYIo6FH(%`(vE4`D#D6Kj8Gi z2iD#GYK~h(=bHJ!^_Cu+_K*In&_MZ&c_Y0I+3x#wZ|~9X?k^mvmi-;=F;4dR!5;te z|DON#{zvj2A3VnMJvJKSbBz8T`{O-W?bANwEr0Xj^YC%J$735q#?Ud^d(`_FL;n&V z=a{F&95J5n{d)f!F+QFnc2cijc8(}KW@}vE$-7t|sqZ26pxcw$V1M1|>kSj_BdV9y zWW=-a=Q|%`Ja5(tokGLSPv?wJtzPecG~Tw2sz7(HOYFMG-sdNEU%2_8k17-bL}kSB z5%sVd`9N@ls14{i3vum)C7Da29?Bm0fkXGRHK2ELyu3fCOY5{Ki{HQ9{#S`Z>@kl~ z$LO7^pYQg5+dtofw~Zq1qBgWkDGolz{QQ*aRr*tJ1O5~&(5;4S%!71YVt$zJq1J8t0{@cM-n>f{wX=Q6y9kZ(!KH}WAdhkLp>*>l@uBX6YNZ4_ z#*xi+a6L$MSjp#R%8qdcjvG~gYwl&y;B57V9`cAZ=`me@3IG5A002UBay$S40000000000 z000mG003)pVPR=%UvO_|Y;9p~ZZA+v0|XQR000O8p}cTB%Uq??rqTfbguMm;8UO$Q zYjR;>X=-0^Z)j|7VQy|OZ*_EVb#yLtcyyeYZI+`p5JmrImj!xY8KEL2$>{Pnn|AURBm7qgfoQz<-buT{V9nDDApSMt_SQ(;j>) zt&G+?TkmB$v3PeR5F1ip)^o>oGrA_Zvd$O4Rc44vAWACCu2D`Dof#Knt|MAEB}WI@ zf5a-lu>W(e!^b8VE<;|FXgRZYDgx-98?#gv-EnVSO+=yuCS|Z4k>Oo4UR1chQqYWVv&Bjz^hEY`7uos#t(h-58l4XMs zO^r?oueH9{RJdL=^*0)t0MSgAi`nnGPq(yCtYnrdHZ@Wvk}3$5eyQA#V5uxcB~v;A zn3T-Xoke(P)FU1gD&nYY9os~D=q*=4Xp|Fm&Yq-%dWGkPCydUgmFGneQx$(-F2eA;AiCWJ^X^a7Cx|E*bCoz= z3ArXuqJxi!t(f#1_f6puoC>oT^EoK)J7$&Q!zXOd+nvTL6OnfEdN=s{d+OY-qIcsQ z+2sP@Oa_(6i;v^}g`5~uCC_KhDesc~-L;~HvB6#G$6S>cV}}6m_KKsa6B^BxB`TgY zH>w<7Y~vXdr`)vByUGV3Y95PH8=mY2*LR%Ju4CCuG@Y6Kr~*i?5*nQ4m0~?;ai&jM z$#6zLeoX2L53|QL^Y{9e)myIOAQzb%P51qi3-Onok>;^z%>~z zv^Vg7u8i+jR3z>T=}63tmxICyacs09TnpF|4f3S;g$`N=k5RbfH$^!u_TJMDknb2- zX7k107xTOe>`6Hjcijwx!&%$&1(`ksr$vPA`-waQ;bU$C?cj}w+EXhrT!h0$ z+Zv%zeJn%`Gw#k9n$_L~$NPPwA+_joTh}>uO z(?`|s8~ty_nKHyv&|qRoxmt-%B@m5g;oz}L&#^~Jhvc+$wb175smylPvOpez>VDZ4 z6xRK<;tYst()Iya`zn5TQ$0!M{IadnJNjc{Kh+Z%QOCTMtYOwhd-;h_@g>u?LGOCE z{?*3$t<9Jb^J-n)*KZpahn22`wS@@u%wgLo1jL+J#uCTRf~S|P3*wv-LQq|IdCq?I z)#A3X%tT=|juA*E837NUJZhlhd#`CkaL0P$blR`W^<%Kl=dS$}i9^YaO{4>4*O)z- z%cqh(^uNJtIa1}a#xHY>=~YdPFjIf?5yvp_d@PH@^`LiwJtlkNox`i zC_ZiNowhc4JldkDds0e}dTVtt(64{wF#DHyGnnY@z3PvZJ!!L$0CLd0IpPKT)1vi~ zsYCdvfLNG4dhz-@9Cw=K58>#ARa0WGp?9r+e~%5xm`OYas~(UW^SGDWEXxSTlY*Zq z`&7H*5;MjAhdGXMPDk&GfXdg2k16|HNaLckXz_8wcXc9vsGVWqbFb48k$L8ABkl_<_)D z6prrb9Rj6%O!SKvvjB389rtBk^Up5iE%!^^UEK*xBk^#>R9uUKnDSV638RykU!`0_bBhkUd@vtoR z)9M;>825a|CpuX*G$)hcpZ?Q9`Gcc_)%jD%6wVos_=5eK>nfXir@;^YPPH4kbNQ?( zYcH@3Xp_$#M-+}8^9vA1@2dOK>{mIbA0)=J*FDeWLnUC9A|5r~An>m8ooAna{k=0l z`eu=1gs0Ed3??)@C{!MWv0N~~J4odvP&5)Ah31*66>@$}`yJG`R?CaMp>6g7IRjrP zvI<9)2UP(iSMuouLyeZSU163Ysf3k+UgvW+az-Gis;ui=Vpc5ix$TA9{)&)xofSL= zg9i$vEx7W5l<2j<8B94M6#UXq5H;LbQf~IwU$&(C9{&#dZP+9pHA1zveTTURbnHQ| zT_*@Wj@n65+-DZyTd>upCsOuM4$Mix9;P|`z7iR9g&e2^J+dC_7C%=I*4Hto$iH^+0GgYw2ZkC^gzMgXUGj^;;UG}dWF zhCCq~&m@x}FHR?1n6*Z6HT5RTScsfq$_Q7?M3do@NDNgHATP*9@NRHN#>eyUy=0w=3*f{bEKpc`43gT zsU!|seh(blA|KtFvUs#a)rIaQvwh*P{n7Th(S%qO2u^hkJMo`c@BY*S80AnRI#pmg>y4!0_qtZqH@pXO6eknN&I3+m z8aQ}VoM@@AkNQ}#6#Df~teHSGR+^DNm|ZnCF+y3GEBpx`l&}{qXsX+9=B#DgZF7uh z;!GjOd@0>-JqK%!3N)&&eyKVYd2Yp3w=j^Gt3bm&1I3m$tTJd!`>NfzdL z;~S8RSPkUZ>(QvYLC%|5$Rs74-Qh1IX4(82++t+6;@X?09n=6S?t{Cdrnn^Dzi#k$}*VG zszMYLRtLy|vY+P)d@E4^r>bA|AdO7Xl^Xfz6r~lM4Yw6*8)u!lh1s%3(8`Q*Tl2z@^=TGbrT+!cJtNB>~QCZ(hu!eR2 zI5fAqr|s=zYk*zml)u&JRCuZH^~@xmjZ~He;R^ND0_EMBl6Uf?xr%C_%zx;Rwzd3o z!_TU{!QY^-Bb(#c(6pD-lhjK?g?YJ%T{%ce~{YpY}jW8KWC}v-6T?owCbT2bx zr%Rx*2+vFO574?9p_Cy7Fahxl`f4INqM(Vn#;l@c{GC*$CKO+gj6R44#oQxfQQ=u- zwpvog#x(YnjzA9A%i6oIb~PloK8=QxX4M`(?C$@HSFjTYjQjOvK7mKBz%SK7RWtTF zqFNh`y{AXnsy@d0jK}1ISsV~rcDlk;YrVEU>k5wQhZERjq@Ruc8r88%tZDz*x|qSV z`qk$fNkd2T3(FT8pA~YYv(DUhDFRN_e;#xJLRRn?8w%0%4gdokfLQlv>MC6I!3d30 zo%JFwuM@ii zuZeNLlU08sgMP>!(=#Dv5=df@#T<4_{d@_iyovZT?UVAuDG7x<{X=Y6gM@lESc{oe?kz#JVyr8uG zWG+x6p|}RhEY*KtFt8a0=9rg8Ywq-b^keDcpEM)NT~!$gPfphf#Ep_*$X2Vzas4JDOceBQ@s1;DPue2^jSW&im8? zNk)O$*3}n3AmbX(DHexI^1-LCwyVu0=Re)4RJiC;kjAex6NWz`= zdNN2xSwuD#?p2iq&EI*Q)2jPbAoI1VhQpl$1?3AWi! zUYI35PUigau+9_BTNdMT`n7^lp16+Mn1+@V~O50WiX z4`|oE|1NY|`c?r)`0nXBoc)oJDFr=3#+HI#jR-lM{STIhj)!3arwBzBdNuVD{FZ?g%xPF3;Zd8XCr$vI`vDOkZEjo(K~WV5`X!FQaT)lVw= z1)71U@XBi1{#=kJx=S~dIDAq@N12*eyXAnwShZt(nnGHHLl})kGC0eGAfOb_ue!OH z8|4O)uvw1=9tmdMOm^9C-MS~*zUoM#1DUnyH(Zb8X)r1`N+AzxsB3m%=MamyJlu$O zIE0gEE}kbce)rkc=E-{VVE{k)a`*zy@ zKA@-n9+3QF#?ITl#YKOWQpKuhPZH3c)uEG}g<+8{ZVER^;kf)G=2Y53sWRhcCIh)} zUg;IWYJD+dlgAKlU&9m^YrbW6eXvKB+B zH_2rUSLf<3mVWsRr^vb5XZTXFWpcylT!zT)a})z=pv_S}8^9(Q&XUYU?$B7}o&dRa z`wIG7UilE>GjSWxwykBpHA2vKk`K1-2k#(PXEW;;2BJXbjZ_w?&INU%DBv?n zert?fcuZ6xin2JDp*thjwy@{VaFO^DiOrGxe(_QZTqUM(!pBXS#YwKz8*Rh_*RgUj8156Mm>cbyo?^yGi^c1*^HV zf&sb^j!7B;Ugu6<4zy{sSRr0DcjINi^qu}H?T*xayc!=_j}j|Lv6F@@^Cl8j9^JiK`k8BSVfw{S6aU)Km5pqWJKl3OB zSmlYzxYm@mFp7g2Q@%W%YSozD=#>!W0DDA}~6Dq0$5BGU%=jDcpzBFMd3@pL^Gm>c`O4OXva1teamJ!6N8^o-su10aII#czC)} zA(ES|5&$W40q}my?z92^&Y62*U10wm{m_nTxBywUKV~GTwb=qehS9gn7`U$##kB3P z%LT>R@aZ2q1?liZfKRN@E5(iSBU{b9y{n@sEb@`Utj@Z; z!Ke7<==JhiecltC{Y8qtb8?9rer}qE1e>qT3WXD%(le6ux#2tJaPQ|4Cx_w za!Hy~cQXOzn?yaMSp9)3~m|yzCy> zetLsv%2L))owG_7x7GK(U#hY%4XPjB;FNg&A-?oW^Kfgw7?np97uK>RTYwTurN%_b zJ8RC(h3lK1LgX{_MsfeqqLLPal&j*)Yt@#Cqmya8l)Zj#200Om9#i8a5+K1lNU8tE ze#qS5#pJ0z0Zj6^$Ac~+nVMiLTE8Bm-zgaGj{_w?lUQ{9xd znstZx9Nj!rKXh`2y@Ew0MlsbTQa#N@n)t-Jo!5oVaC6HgH}nsYJyv6jrZ`A{!vJHW z59`z898Fhd6`_V^L$9#70hdLY&coH4mmSV~)(I(u6S}vQgrNpxkH3e-e)tkty zV4BJX4~G-zSE#}_Js&;E-9Nmx#)9ZQF>hUUg4ASaFDf~*xIj^hJ^w2`)^T6u>EjIY zadZnHxV2FI;4VQ)BwMU{v7YW8!N~=;Tj@vjQv_!ungdA&j|v^DGI|M!$#GFh7vN{?~^aF8iMY#G%%@U64*M)!sAb~euB;64@^=G#8_UBM8QfBHlXH?V#1R5To z`J$=uD3Z@m?#`K4>}3V?^f^fLJYQ4Vy}~OCIR$KBfrYC?^p*6$OR70@DhHORZ)&n2 z`nNi}YMd5co_=xhHnLITkm8hoJn2Jv6Uf?GTt}AKG#%ulULVY45o8LCkv{62mz1XF z*0PA_(0jJaanaQ5SR>KseF@O!8+#%}=Qh2Zn;WD&8T8J!JfKW4H^~&wds)8y1k}46#KPicWl?}WQ>S;4 zaS_X^h(r~XvQd3m698lvzG_+UfuLI&-Wc=-J0dpn@HRw z@SaWqRfy$nmsGAI*{B2S(s|q@cVc6SCcvZxc9F=ju$7J}slLTBb!`Z!jG!=kfmv$Xhi=Qy5 zqPXFP9^R_k5};HSkqpwOYK$-w>-LAYpF!r9>sv>kXptXSC6MdhrmTutY1q53=oXc& zX$#pk9i1vp=_$Fr=KyY&&rK%p3S=!+Mf^P~uH_A*o8G*n4CgN8HTyR_eP;c6D;Ynk zJp6zS9mwqF`W`QgQ1y|LIR?oP8{3(^GsS1B%d;1Nta&H5lzoxWuzrFP4X$_y7k7(a zA&w2?0 ztl1y4m$1YBBYLdQb&u%)V+$Y!{jI~yMI3vmldrf5vtAa9_XeZ7S}DFL!Qs!ATrf`fLVk`~kwlDs0d3@W; zR$kl8{(?)sjC1&F`*Q);tFCN_0Sou>b$78j;?1#(f|qwyX*-6)PVp0RkFYORMoC-2 z%DVh?ac+DY4-;wlI-oDqGSEaGpGW~oY`2hMGR?TNfp#~s!j`vzd$~w}3~4~K>Lr2w zq$!UTu>r-0X2V(lGmT_Q3ndsF??ho+9>Gw8Tzfbg$|F5iZju&g-8SZNsGT`@<+(XF zsQ2u1v37&^a91b?G#sGira(pfD@g>t(u(Rb3Ty^r#wQd9qd4+^1`rD@oG!fJxsvQ) zK;}KCp{2O#>j}|#$|M}j)+pu+7OpezU_dj9WLjjF09G{KUD&inA4!<$_y(Ip^ZR+)B7Fr}X(!W*lh_sjDwzT<{n@soj1zs(gIb5tJA8rMSP zBya)6ZN8|TK6IwP&>w5|uO48e03 zIZPY^(r|JDeQ@}AqGXO~D4F#W6pcV&Sh@n#re9Kx=K@QnI&v$^!_@Kc;HWvo5Gs>+ zJcB%Q4poKc5VM_kEwkpe`8`$X?N4QO zD@3N>zH#S`GRF;pIQ7%z;25EP=Z$iU$jq5uc!w|S;0n_{#0Gq{C-=RrynUN*-+$Bh z_UkVv|NY13xBt$m==;y{<~ELR@8lV04(Ns=7-sm=9RG?Qr&s1kt2z9ph*}}x{6xom z|41wDsdVDaRgQ@oloku$%h9tBvI6#t7aRd2uTwLsMd)}POK(1t0MA_n&$K@rs%;0Ht3q^ecqB7#r;(~81 zJEyM2wTltfzkf6&ncq(M2$T=(Jl(^bvPWS7&C&h_4*@@rTRMedluhRexc2dDZ(k^R z1eoP*F9m%En&hZkqE*1;OQ^tg0-*J!u>#2Ou_Uz+-*6s4kizVh{1j^=Gywz6w^$qb zm>yxlLxrh+B5N}-ORyOjkv%FKEj!q#yBi!7tj)@`nAmH&iWB|&SHKLS=HNlcByxC_ zr~p@?gDzFyADzzjWCr&T={}=RDWg)?oV+h4hJ7)6FjXfacDuac#`yVdv}$|n^|44a#iDP7mX9INs%t5S|PlCF9|;o4L$ z_UL~gR(I;Swp8p}XO?OLU1vH;lZk|WM#mCmDif&Hdo0&LyA@DJ-v>9xRBm0=(*MLn zk>jO>4k!1PUMORN^-0kbEdr`cvC8=QC(ikl2}J>QY=A2T}r8)c)-_0c~q#6Fl$J^yLn)VOcgi~ zQ{7c8_(>7@w@J;YRCA4+sq>)h$2>HqhAW`)I0F++UdTM6fMV>m-WN;o#JC6l3@C;I zx^cX?I0I>I8Ub%0$OQr4%0@KxK??|8=pDB55q%&o2;4ye#Jg4SN-$0Y7e5R_)Ep4a zKhh|Kgu-$4Ey`mk_=(PVP4GQ5x8Ir9s5VBqPunOjU{aX^D%0WK@z2y4LPYRHSx6=< zn0%}@63!u8C>%>g#PGLiFk&jD(pL^h%oX1#=Qh+_D5n<>=-+ zd&BF~tYIda7~c7jn@NZ*Mlxky?q#7>XLT4|^mc@(46Adc;a4}K20JNsF>!78$~3zP zr#z^e1e+#0H;lzA5&Y5_w}u_V#})A$b|{|X4V$C~|0hljQ$0pZ`ld5s zv4yGF*+6hJJ_zXQ1p(&IgZ)WByqpqm*8d^H?`fV*ai*pYn^IjHn+M2cS!vH>68F*K z;ol}({Va6mdKF;;$in{p^WE($ETSwRdATSrcnGIJnvN@QOfAwKO_buvWu-dxk?LEt z*B`lJKO0<{)wTLdar%;?I-i&&0aMmL@o=3SaV?&y+)pL=K&tCQ(r_(`VjEy~e?f*s zzQObwKB<=}3wXg1^t>NwJ=k~mhd_}DcG*K20C|ijS|Qi7fK)jJ-aH{Tny;KG$HMRt z+HLyp$a%Xzrj_^1JD}3~?zZ+CY;gTHLqgb@FT8R4F>r+>63E_UAK*s6IoHu2Cbd`v zIL8Lf7V+&XU|YE4Rf?NMFsu#|=tsi~RG_+oME)52Wt`pmXy4k%_6#a8Y#qdO?tm-5 zfN29@&=qtRU!?+08u6sQg72ACDFHzLntryTjXaFppEanijs8+>e3nzc9w-EzbS zqEvohC*64#c&F1H%lr)(rJm_o*SyT6b;6l;W){oep|=tI^N)J=l5aB)Wa{hD@Vj z28M`2*70$Qd(!98D)LyX3a7d%wDPL3B0i+8uP6qZOgdhwX;fRQKu)NFFJJUD5zUYE zZ%!{J9oFb#r)owE`n`iuosV|3fsm>f+KY0GL_Xkl(VDYR?voEWd6N02pE$87kEyzj zhiXTe+5~sBM{}&g*7}0I;@a_DjjZ$09R5aVcvE3joRCr(X=*v(R@-T2IcfEPT1DBuNa z!}AlEIyk$9p(3;w+p#9MGR3xwV}q0l($aGh&(am9v3KOhQ6`BC zbs(t$ZHfYwu?3#74n*oaFue&?VHX!YD8{9M?Hj{hZ{rt&PGJi{6cyjy3K~2KhA7NX zdRU9v63Q{6&_C=@l!_q_Dmm}FvG{J7(it~Mu`X_wgG>MZg#iNKYlB#GV47$micDq> zU}^RZ`d9%O=dMv>UHUVI%*7ga&1}UB6s=ynxHV}9b2PPhL4hjx64q|53pOZ3fdb6S zGw9lb?$dcJsN%_Gr6anA6b8)j4bdp40*fRoTG0G^P3PVn6g+Hws%Fch_G$(m)(*IJl2(H+S}#glFKQrh zEU!D((qCHDCq`7M2&JRN4i1ye9PvQHvj_hB2NM|PkLjW-kn68O_KScteCA3K@b0)k z!^o0Le2J!rqL92@i8t&25Xx6NyK=~{#A%oC+AQDXF4l=ft$Qn zs)GCFO1xSBhg2}EyMD*Q$B)<^s*)RAajFS_Li7})={T;=MZwx|ZlE}?)UlZ|L@1|} zHlc@5C?EScb1)#<49(nNJj4Q$Xl|J5fP1(i$>lzpv3EJwG@iFnG2f^@gKAyQVIV8S zjACAiVpVdC*)F@zpiop`wPHi{irVb_Y$dQg%vZB2TR^aaw>Nsks?z+3>^C^9xMq$W;rLHp$s_cX zWrjp`khvUiMX9BfVzin%AVM{|YN|pdrV8BoOax1?1`4zC?A#+cWXVrW%cV>q7kzEz zQOk1m>a}GcYqy)0vn$HK95I}7gpJ9#{HbRh($~n{65*I%}KZJagS!I@VruF$V)xT{0g2lp1|B$Dspaesab9xdh zWfvH0011&Nf{CHem$jeDlkHmd*C4x)w*DUPOnxu96z5(jwz)iZiQ0&T9HYGml_hzdBxVX zc-5mcDw6*WWcs<_AHhd>bLt||OBp`C!TmeJyTd7V!6#d&4F5C{xkfJa*%q8d_GyaL zHWIKn7H7(Ek89d-ziqX|QX%1+$;`S`GJA+Bj>fd~Ek3%=sZU8>rN$t}CSa_YX6v$BnVIo3w%>K&WVTgdVjV-I;!&!4o59&%}{aI?()bFJ+tEHNS< z<7il|_~gcjKl)AdOA2gS7YKKa5#B;qAEpzyE)#8|?SelJb=lVwN@c8dE0Q`iDI>lw zhk}o{Qzd%UgCrHNTJ35f^<jNH+t?*Owa zToWCWb@PGD_KD`=n6Q3eyi3p~8-r*Xjii!u;83hKCIzES;)^*@lwrYXyBk~_E1qbG zVjI4rF-Qpsct>=?^5G`MZ&)yb7nPlB&Je{OEkleV zT&so30Eu05o)3VVCX{y^05h70LyFieVXfmBuNvLd#Wb;-(wpFnO}Uf>|8+- z4&SH_o5D);-FfW2HA0Ymg6i!J@GVi9E%_})*97G_zz>%pzQI1R0`M(Mf-(sKmqcpI zT+?VidHNB)OR7ZJ1P5yk8+|; za^p>QC8L9CYm8T7?(SRB*=f~zpnz!n=(X+e1=1&*9=?o3WqeVsI6v@lMOHlQ8CCW& z*2ZQiI;@1cp&Fq|_j+DDT^l^k>mMRU7^T|yDRKvIOUB}E7>|&rig{~P=l+3Gb3+j{ z8-Rx_EkwKur6I5$_=T8;cE92JQiJSB=Ngxu43^r816WjL-O3s5hshoeX6 zgLFaPxIuk5@_R1pat>~UoBIeiAg5RO0^O03yvf?^uunHmuSBcQcRmiKz7|!gP&7}!9=BbP66mHH)3@owXc*EkVN_8*LLDtJLz(RV9 zpvm8+QcjU`f?WyAVO6M&epsa8h{=CK5>1YfM_j`K_ydC;0`&YFXuOEm;l$x)q*3Tp zU6KyBoF9a{XyoC_L}-qICO4H&l)4(HaC7nHC+`4=m%{j+-78>^_)D1?BvAIG9m69s{PQzA&sB+c;0Iv8lYASeNlqMH~PrY z1*9t;Ms6}g7xc|^3o!A#!)}rHy59kJNjU-#!l!Ju)M47NP0Ig}C|{s;5vvgj-!WP$ z6WG=Fhl6FN>3_mEDMcm}Gi;pkJI`3QHF0}6=V_O2(f^oKyZt6?4R~;xa2}B!n>qh0 z*{bBp_P3+cDC<+8H*U?3eS0ZyMG~^`be^tKk;_km8WG*0a3xI=wHY?r^QFVOCXv2< zKELEd)p|G}?q2{|VeiBOJFTLk{(ztAN^mo5y3ux?MFscxkkl!rZJ)H{TssYmYzNfg zE&u*igqv8Odn;YgBo;X#^TM}!O&caYQ^$tBo5{C% zSn=KJ-z#|nGfVG=GfOcKJqNFRJg&nr z9gYWC_nE_aX6??cQ3=YSwhsHH!|XnHhTUuDkZ;oY+Q$}1%B#%o({*FW!Emti7q7M7GW%^ooRJ zWV22&MLkFD8Gzw#`6Tlm!+glVnhvUjx1 z;{WFyw{Z(Dar+8>AGN1whV8yhwz0$L=-Wl|8AUriye3|6YyRi}{TIS&RO`w|<(eG{6^)!<7YBgAU;O|3P;X492SKe;H z{;Ti3(|A%A#?988oV?;)yp)j)gWM_30eueMIyoEKAzmH+^@*2*xdw2Jl-iEo{u86q z&RWd*;wUlB(xVb&aY?-&PZ!rGosjlI(}K`zLObw>#4d}9OA4Bi$di-ep&8z%Fy%Iz z=@KM?u$zDX`Hb{Jlrm(tmEVnt0y-W^SZ}NAENnw=?k{LOnYa(OSuEqSGw$J_@sNJi3T0G0W%C~VQ~>@&SlPRhfT^) zJ=`YLGvvT}Bt9Dbie}vwa*Jy-%o?QCaxqYIi$Vzxqnu_UPcKq$djz!mP)_=n%Y{a- zYGmIn&UsYDzVUX+Bt(}w-gCV>*T|D8bEc%Sh6=KI?#K^}qDzRbA+!3%SsN8U7|vkj z@aXi&5>M10iq%L6rCX|zkxS# zlr?6krxCaQ382FYtY?(+is(qTz;%W8_%zI?bFWYyDME!!G?G>DfD0@VcY>u>kw|FW znkO%aTAp}ZuLURM@BLm@v1|#WOiJiwK`d30a}lghTSwv@m=uJP*Qcr0!K;S{7-QzR zlE{Jp>%b0hbF`nh@K;HgLxv+bx~hBfd$mhASI#bm4mm%dHk>(~B$E_CritP1QUmU@ zfMYHPI2`s7fQ?KB4+SwT09)!8Y|DxA#l)DpN_X~j?0`cQM7TI@beZX5JuOQjNuO@{ zEi_1!Sp{E_Vv#9i<@(tFk6In3b&D^)HT_tvNu-1%)RG_2b!GU;lV{N)DAe4M<+UrnNaQR0%OkA$Gqo@sox#`<#hAy*}0= zZe@UT@{sJBI#{Ppxvu1yPqgMuI#U<4;D`-3Eqi2UKn2x|w79+pT zJ8VJB<77W%E0dt7We!(fyA~I^iXGyZfE-mn8mi)oo<=3qaLYu^sT1=;WtXxG<@*)x zVr>&G^dM*f8M)C~US#LkIc*&eiKR%mGMcCnbjY78GB07y!_6IY))u&QIR~#doUgzk z%js;b)5NF}v{d6e7B_Vp#S@sDx&v{uPYN2aQdv5f;dOCS5;+CT$F4fz!lJ|`hs2a+ zA+c4~plXrqFgB*7~M3*o}9^iat8p)>!& zWsQga5wC96H}O8pEE8QFRY19GZ=R^>`;W@)y!V5Cc5S8v3<>fl7KyY4c9E`)!7nVg z+*F)nlPL3W&rlwMbLO$V+_rpd%d#!ouUWR2b9dUg+bGi+f&v>CN`!+sbxl8AG^_`> zeG1DJ??LA7x1IQVE*>BSHl!F*M<(tz!YuS@lWm-Hn40$Pw&tar+dKY`wR78b9wwsj zJ#XnY)6~?li|us(dp`{zBn~%7fRGT}@nU!_&(ulN%~`5veKT>=q|MQ%jDnZ%BYF}u z*HrtMz?-)Atw>Y~&$zW4fs+m+K75W?G6H7_-#9inp!ssS_%o_|su$Faz5D)) zmZOcpK#rL(+^cM+`G_Zkt^Xx;xYnV1_}gvTtqgB}hPN3u*g`l7T!zaYEyEivm)e$Y z<7h)V{D)-Qp6?^zl&N{n!zQ3>ohCgu4<@ zkp;4%l=4ITOy^_Rhjg1M3HHkek3utL4)vQ)aIr*j8Fq5rvKI_dy3Kn@HqZyVRMK8u zC|kd($YL2S#PcQz7g^HA{{1)IVdfdePu)t`dX*As-!11Rc`qze9GMo_9*OgJ)^1#m zPNl?daYiEWfccU@uXbDReQL#JoseRIu3V8%-L8JP__Ln`I?b>|xg0IJV^m_;*s`^C zlmDTm`R1I&hNrW@S`5!_xnot$?a9anR3H^;(aY9_hq>`Dcl-6YgjSl)HbJG}{2CR6ozTK`u} z#d+OGGFk+ylkRH}%QWuX=@#){N#gb^A8D5GihU>0`YXcC6$5>v>(iZGdCTp)(GqHT z1}ZMTUg+Pt<^3NitX^_Q-tv*n`n7a;wKp2)Dpb9jgzvNxe!wm?m{S!O0pl!{k89>X zY#PnQOD!Zn3H8O4DjjOKDMi8~c$q6TM6$|L72)-YDimfVDQH z0-L6TU1(XO>thcwE6wVI3U?pF?1lWXwUS?B7=M`>hyB8w_m*O3yCUuFYIA+Q>VIU_;6LphN@7P<75(%VUFtpY3A>L zyXHP(?&>Yg-!HbCbi$tZgV1y%e_%;-> zb|+J2O@r~~Cz>R`czaQ_ zUkyaD7`T=ckvj!6`7Lq$SK;gW*B2OG=t@gY3w3X&dSLsOohHU=CsUR~%a*9`Sh zifNl;Fa~F>eaniaO%=pCS{jb&&!y=AAizq)x=7GNPo+%GMatwwI>i*AK{DhsTm%tf z^-=Fr`A-jn6E`8OzQZCC_n;@q0r-2UwObuWW;jVFvz3}i*=E)nV&HR_^+)@}*v!v- zGcACMh0pexuL=Dmzdn9){>j<3Pum0;f@ahyHaNR1R!V+R!P~Z^ue~^++kR}VW4du z_i>u*`dNmDS2ns*jq!)+Tr|Nk?+P1{+~m55ln$!*_E$k|)lnM_nf&Bj9aM;)Czp31 zlkZ>Pi|^l-=vH^i3GhiDct>*Xyp^-B;wzid@wz@@qrBh{+l6$5kxgXvl|^!h^(i?8 zcdm}}m74ggW+X@Ra1nZPc(y0`NvH|+5$i%`SKP5rDk)@zHKzhN`<0!^Z=i8)b1Z4jM-5UQ@kolk?MW2K}NOeGujdg9^94VHh*) z5qP-Z1>o8*ehMw6+DvJw={cO5X_Ke+aV^QxOiR)}uBDUklr9qzmh<=DVh8?euAE^O zn9|I}!@s%*X8kGV4M;9ZfnNL%2xE8-qMoxS$?#jP26dV9M3|T zH?}%zDzJB9L3{@1-kY)T&t^a>Wu^_Zi;MLIgrb>C@db(!y*0n1qK^^?l+u6DGZrrA zTektjY8iIAzy#;$EHutf(jlKDkk0tQ@}q|@l9vv_l`Dx?H3J-~I|r>5osW`tQ8ovB zo!hIfrGu#0od7)>4&<%J#VWHdQaD(eMuKl^qinkXosZtB$42A%SCG&uhj4b808_4> z&O^cq@Fxd*rg3wk-e5166eI4K-~E%h++83s&HpX2avSzm2zAwG+!qi=y!PyZ%$bgX-kJR%%f$Z||R{rH^B(@Uv( zvnxt0cir-Hc{m>*aa@GE&jEK0tM!z#NJ@RcHrxtWEccOv@9MWy6!Em^Tr|(0b5h2Z zDE7{&!(W zG8t>`gf_T}cz8tKbiUE1KI)0w;RVSK+V(ttW%g1jrQ1H@xiS||O7|}>1rDD!UOP@=^=(vNlzk7>#*U||_!oAs_;%sY`BkDK72pUJw2Y0{t zW+Dt0kH5ng8o|Wfmd00IDGL+Jn$z?`wjQH7Ajsc)d1tv?`6C(MFZOOcjxLadi1fB4_RP+ zGhd>=*R4G!1m~Bdt(1(#fbMr+QUv82Y@sO2b}dpgZ7#PHB0-rmV8U0rS_Xe*V4JAc3`FUaWnSnlof>#Xr%Cg zN_LKp`Gt_LDqfzzH84jT)SI6osMNmrI*cDpvd-y*B$+GMpCZ#4>5S9cHQlc`DLX{2 zQXyRIBx>4Gz{ZghD;;YodGsXWfB-xsQxasB1xt_Y+Du>}r#&wsM|5XODow8JkN`*- zaub@u2U`+bVPN&gFdcMhgPTQ^+)Ncz;S9R`^I(dGDL-l8mh4AnV0NlqSYt!7Mo?p_ zt!n!F?>VFg*-v5sO>-3La`Ns8E-EH!)I8Zu46MvdK*j~hU13kY+mmpVATs;xkfKOF z5RdV8DLUJfX=JI2mKl|rq_yA|G)$ZBkqX#EC$|%fh^(p&K0qoI6OLg=~9Zr)wFKB@{YZ{ zp%f2TvAT*?grw6_)mc|`6fj!x)2PGqx-n1ddau0=;br{0fR0bL4MnNAQQXDYsb&`` zHKXKk7aJoqezQ(#I3xbEmAeGF)IqpFnuo17`~=7J38gOt~!6kkxGBZ4@^r|IFvVGZt7ke84L4EKjUn zyAxOh_0r0|`hm9dj6jOyAW}Q%0A5+WYAWGV@rS7#0{KX$+R2HYNAZXvcO^q3tiwQ3 zii{np_cW5M5nps#@vPaR;k-Wj@STR9QhGW7u+kSp4ofr{&F^ola zqu-7oDn&)-v+&5!OZD{@cpp40?c4av>{_yGF3SYW+5cpt)1L-v^0vcdc1_*jC^R0? zlm{C7MV^#8q{Wv()^O4yJf-H1r%rXJKv)?ej6cHs(c(cPI^=DNXD>g7wLm)0o!|FVildwWQz9Pz7C&cA*dF zc6n0V&i&@Q?|Z5C7Y;u!opanPcOs*)@>gA9FL@>e_BVfz)%Y2;g$_!Yl0|BVp^}Y! zQC_odsB-)Uz3iNmOgmrSUA_&m&OPixXtv85o_#bG|GIpu1m6X-%=-oME!?}nLs(Mw z8hf}<_OX;QR__o*ReK!E%-_+33!SS2?TTy>+2rH8v**V)#Mc4$cFZH3cH9SHZZyLD zw+6q#w4o`lw`2UCs^M`Z_{2lTzjA;S^_x-5Tnp}U@|a2YnTlycUqdu(lEjIAH| zk^Q`4)&mEBu1Ao_VvXVFSHz}3bK;G_VB##LdLf0h2+lS~CwFTjE10JhdgkJ~ZTzYa z$=FfN{c>s5Rk+Bx4%Nb#-1wKvYB zHK;gOl_b6;w(wKe!uY*EjYaYZ*J6zSa~vIG=0)OL(r$3OK(78KVT5$Bx{a@6dTb-v z&0Ala4R0c8`I7A{qp#35IQl~W>!{r~jtCnk?<1^=S+m6saL3jUWOtk4>Sl}pNBr3M zcgOd}Y$Dsjg@}IeuZmWp+JfIgtUNU5F1cWl>axnHJ3ej+eGZ0W`|b!_WtW=;Kzo1M zyai%RIa^`R2-*K_zK>sS*}Va5OiOpXY3H!iq^I5yVJqU{r4)vjMW(Ii!3*9}6!UDD?>qt zu3ce^hvDk3@}0kqg>ej)ryB;U;(*(rmPf{i=>B&giTA|%hMUGbehB3@dsb{Yo|NJS zoeOWXNI37j?qr??2c$UEWx;{V_O0L&gzyKwvPX+B(Fjyp}uUk&&(*pw{iYC0u}uQ4x1R(d@AOGh3d zq;ltDkIm$#lwV*LLLcwkfPMGl^wwYRD!S0(Xr)3PY^;MeAx;Ii3zx!fy)A6gLMJ1^|gZUD#)AgeHGBl-9S-b z%f(BWK!5)$GknmTQ>0F`WNgEFMk@^ksxP9lIM*L0?pQuUU*egmV)Z|fw4(q(HKO{j zw2yCTX(=ILzJm6=_0-b2rFMXl0u;y3AFsg0kMurbp-XMqQ zdh1+$!JjYYkMTG)kQUr`ns-N;-(sF!YW9AceFT=iZsd|^@n}nVw9nMit)+WQE%!(JH224~{cE4j#ct7b z$VY(_-Qp*LpM*;H9B3rP;iRklz#_;o{pg@M*3#t8c0C08+M4RCeVoh9N~!2P_Td^o zelq=Ja_!?Lnp>ufm)ak^`Nb643LA!*@I*o4l(y8r|DxN!{~|Mjji7SSQ{u`0R5f-@ z>C$2Kl`y50pKulF`6MEzVilQ*vyT&C<5|NciHO6JT?`~&uox0VM_L;Maik~`zJC8691 zE?x+xs*nVW!O~PpQ_hQC;MCeRa~8@62Adn9nUCrK_QeKZ*exj11Ai63#-wWO#ltQ^ zGBo=8J;g>hq?1g-H}V*d;AV6*7Z5(DXSohs&HS9-(VbJOTh&K+pe3$3;O?S|1O=@R z+fR)WM^zC*!MPXUV-JX9&r#z9eFT1KKoU#=4#UI|HlS;ksFi+`TaaX!Qi8u*JjDre zrx_J(bY<~Rrn$I6&4On|Q~}d1*g^u|&-#im7**j_Z!1?LBH^v+(AgD;7j9Q1Gje+| zCzq+;n%43dsykIgD!A4YUW}}ndZP{9N}=9e*E;M6*X}M$f?T6_&^vbyCWj$zQ=DCd zx6ttEg;|=0jeLldYlDL1V6J!(l0}L{8&OGJ?Fg-&c6FYx|NQ;u72s$v{QoPIy#_ZC z&Z9jB{g7s>C^Uao)P}-f=B89A?>Flc|Ng70vv2LXz($?5OEJO`+&-C{e2FSMS5 zzNMVjJ77v@SxyR(JHTk^_67qBGk5Mp56>w86bev7%7V+?Z_n42Q_w(!I_VPFQ;QVb zqOmmTOsTtBu#WNYfXevkN|I(n9@Q(TW$gly*)&? zh=N->h%EI<-@+pK9kCa$y{7-0nMbiRyitP=PmiPn;~I4m*3;7;@2Q~2!Gei2eC_-o zeZj@c6rK*><7iBwLA2O^#Y&5De+k|DsbH}BRLvVB&0B5*Zb^q!l3N`47MUky+>}Ei4$B$K36q1kA z#_kQrKf#ma^7dB$;J9$U%N2_lRp<{XJ#Z9k!>R3Jjb zql4h8Z?f5;5x&g0BmnSaM__jrgNsCb^Va|H!!@RO- zWEG^z@aM>_L}TiiKOW>}%A+JF@N+11lT8CMB(_sT{#Qq6bHE?eJkM#Di) zvfeIqBCSd+l_f^TB6-9|4e2gsH@5p&+4|VdozD)t`-q)~cTqbBA7kIIBOXcjb7=YU zCY0h~cI7wAW%J}WI2+iRQ~fcc!e)){I}?#6$&~D+0z|KlanAnB0esEc5d$7iMzEqc zy-<-ru(OZll1OJ5K@U40syPodF%v&^KU2y*<@)+ntZe{AwRmrkQR#4%^&tV={W!~- z700xQp>zT12W+A7^%MHwDqwl+^x)XDT^)h5W#_`1NiSHyIDzifiz(I$h>X_$$%t2< z;jxK}xhZp4e!8{W0)E&vyzms)Z1p^JlHEd##Vf_Iyag%PT#4IsAk?qcUv4&VlYKKFp~0JR}ZO3 z?2@bLDP=`Sl{18QWz@juctaHXroh8yls71jlk13V8J86E62G(}IUjHdhpNjrFz%gl zPHg?CLHxFczSM#5me~KSI#9{W6E=f@T8J-SFejjoasAG&>fgtoEAVgsg*W+hlJ5spy)(KWi2!aPYFyYA=o zNB?Z|vr_H$B##tsM@GRkVQVFu+GHIs@W``FtM7P=B6q`-6gg7p@hk9n}S?bBls?AAwR;PA(gzG%2D^+gL>+JAIqS z#&PE8_#W!s3>N2R%Y&m@B>qdU!rp15+l(LWw_U}Ao2vZCDRpA+b&`+hX_`f|l)9B+ zDx0rteLT$&ai~9muX7llJ&}6J?+hCgmLuAG&n3SEhKqKj>ID%)RI)18)knn-3D^(m zu_+yhN6j8|WU)6mllWLd;@dPyRRZ>r3Bv*bZo!MCq z47hHXYRVgaI;hlER9St+c8$eYZHc;ktp>QF8fp%o=M=j88QA`e&KE3S2PA>Wjn(tE zzql`-pb|gBI0;@ZEPN#K??L4X`~0S~i-wIOvh$WSX<#i~x>g>Ub4%Edhs++&01Bpr zzG=2ez9iO-y4syd&Y$6a#Vdn)?5CD)G$&yh1{w8(9D#gHwyt5_$=7t*6YGJTTgWVK zWHk)E`!%JR$WtDHeQSsh{hHAURz1vR{Dqz}-#Pm?wqrtyuvq>L=_cLgjad3%frt-+ zS)nWh-;+xwUXh0*`M~v>bP3!OpU_Ot;e(IVAI*Z$Y|3YV zh)Jc=YyBI{8MeBMgxB!=&Qw?rbCaO5xClxxWpcAAN*lnnFYm`)a!7-KseHzI1^n<) zMNH90=KUn=G;8i7#fkhGMRnueSz#SPAuZ0-)dPuSB|eaBS%&kobvU?zhLigjWT83N zy~vsmLFM zCY6$9@`^Bbho4nRfdyeN6x=5@6&C=-qY2&%rLgKhr@cM^`gE%(lBXxv=nB73H za_U_q%&9VMc+KB9UIvec=6@Q}TDC)EUA7?|^LrZ#Y4(K&$q4RRRQ)^gD0S=d7H0T1 z9GFE$S;zOGb3H=2rgWKxySV6P{tp$&k*+?SZIoH~O#_r8>I3u|kD*ai(9(VN$n|iD zHNU8cWF-y)qYUxW#uhI_f9h^1*J~hCyENSrPPw=CiJ#51<%QG|v_0Z2?ISI%Ewv}V z=#WY?ZCW~=BovtXE1uDi`RAqkA$dJfQOe5Jp+f`o~9wHS~_qK-*(aA3kP ztYg}T*z0_dWU}6iA4#GP7_f;XKK#rKg_O!3@DKbeNJ2ryotlbY#?mBzDQ@dgX{OTs}eNEc}qi>G0_tqY_|ej_PSpF79I=SYN5 z$WF;O<_%cW01%i9O}j6JTDmO)3GRIDnpLpRDNd@lBs!Hs6hquDK~gX3OAC_tsHlBl z3?z3HgI7%|c)|uQ(rq}3CC+kZ>?rqU74^)jvqguC4L~G!e=X1nE@g7_Al^2pyO$5g ze7rG*&NO$}n`D(!VBIE}uP;)5E0e#yjpsCpqTY&+$%)NjK}dxL5AQ-6#?B0X|Kmg) zM$m_DJu=E23@QPyEFj!mSO`m!ozj$(i?dP?xjpeF9k=%8OYM|W<{O5Oj*d}6u0Fg% zc9&Orq!@i6SK2S%*WTtD5Xwp3#z2r@_Qv8=ab9ojMzV?s+cr5$ku*#ZoqU1RfRYg zRHnVU#Wss;Zd-Hs(zSPx36GIhF(1f`_(NL(Cu z#M!`4okZ8Z+u)bG602H?x#2%2iO;MDVk=_8ikq%!!>@SjHu!iTZXgMJCn4L`58_R} z0q!HzIZQo($YmNoxsu#pAf*AQIeYKyf&Uyq;yjV!DU}YQ!qSP(<*s)_nWugNPL)bt z7Ned^4?4qGi8So6C-UC$Qja^7bJ1vi!Yr2~N14P(CZl7h{V?@qf8_geo-|NIu{sxx za+R!{(xQ~NxV*F*8Cg!O-20NeiAj)KgYa48teLB0CoIiYvs)%5xheQyfc_sgSr6)m zu#?RPj!!YPSm`QqQ^*7!%}>xFhSZZsm48D)l058T{3!h~il;4}p^78}EAE|=EM(s-8}?HA40zv! z%CxQ)xuyFn?ep?|ozH0%G6z>oQIrC%*}L@z=%bkjcZ`df4@EDuyJ}2D8ZA-4EsGHyl1dyF&ft=m)ZB=aS@RfmI9UmFyfi}IoryXTjC%6vkjJBDAUyUodp zNj|mG)qz1?_%4#6g@!A2`53f|$*3?IMwSoPtZ`aZ=T3 z5In8EDsIQXvC!75sH(q}Zi-~+x=1JrUE{Qqt$nyKHu#g3bJ+_Gx_x$#JQLV0j5M)R zA4vjrS0nU3u%cY=h&;adcw>r&Y~*W_+bdw|wB_d#e(D@6goj694=lom%bid-x`)!O z#IDud?`(W*ewTHjR-LIwA6_y6572-MO+_cdPF7+?@5R)BS68!aQrjK?C%JW)UFpD+ z4{5>bkn}N?-0edoA1N;>>CEhuMLO7)4;r2(&i~w2%I#<+A7ebb8IJPUT_lU2b^%_q zw~?IU#c+?M~r2k0cC0Ez-d1f|DQe@G|+f2BdR$Qbxcprn89?6IN zEz3?};=Hl9t<`%|I@Rph!XOIQHQc#D^w=O}pW&XhO{jY5EE_DHarhc_H5udZX~2f^ zRyQS^pqobLD}~8^f}>4QeB@0BT@1Imom?qc9~wjEI%=W8JfL+RM(a483*9YCy4{41 z@Akg6(N)3)_C{laXOP))jcDW6(BbjAR~zqj@8hh>$W182Xf(e@c*jQ6^A<4O(cprJ z$M-$Zpvi8BDw(0Trlu^B^l$;H$E`RvsvQx&Gk~5hZlOVQ+Cb9xa{+^oN;D5aBMG*z z>*okW@y~syyzhPu>aqJ8)`x;mq?Y9;6Fx0ceM_mO=CAGJ0*$EUrF7~N_JYS6#d}IG z6LBE`dRdt%HFIu>8APAg23(LX(rqYRGbMjU&EO{*)=&K#RADc8QU(09(mo`p#>p|? z#z=nh0ux^h+Vl_4vl|$(&3PlFlqW)#Kz-oZ)DySYB?JlznFuZZFZADm9DRAgI!x(S z@?LRPekHVo0zKqKifKx-B7|G>1>VX9PY7GC>bw;n=MTBTDZ}(>al&ns@ja#b!Xsn9 zMOwo!28)~%+02!@oa;WO)wsKupTxPakKIzSITv|C-V<_soMfFPfHvtf!r0ONXdh`0 z`5z9+g{{?+W?)J)p&V>@wQ;7^5*5%W`c&UflW|GQ6WDOo-^{m{TkkUFEaBhPN}wt1 zVMUsf6%NzAX_r%Q@beR93qB;@T?y$4N=J)X zv5AR+zyATEPWyX5U1 z~6OJc?;Z zVP)$m&h+7GZCbFlfECG23G;k$Q>ONDR~R_cXETBnX!sgO`WleDm8;}RSOoVo2TU>% zaK}7(&Sb5^q)#f%_+Area0S(F`Q7NN+a$$i?nqeE+*f^dE>l&|po}_RW_1X&iJv*6 zF*YNk2lLSv*V5clXlX%Ogtw=-WwlVT!9?iT6uy*>z!7{5o|Dnn{lQa$#CC>(`AswO z_us<&1~H;Ul-g0{mQyOk?q_6&A~S*U)la56K_e3DhmRF#>6%j3??TZVLbu@VP~0Bk z3lwCpoMl8}IkBk|Je0b;-!6%5yW>Q#ufgTHM{q|AK&mOd*X-{7yVsR#`|zUr(+ek% z7)g2Qx=#N}{e1m?(ud4&aPPF&MWDLc-z#d(hhn2M(n;jjl^dsf)xWDBedgCRdssZI z{X1GJ{vycH5tf_D2s|XaSU>PACSw5@A`R4ZFMYPJweJg-Fn@${6kkACOWo>M->24( zVT7ZWDdIVwh+6NF$IrZt-p`1&gce$k{oIy)K@Vn?lfF?&-7)aVE*F|duKDR?cSp6y ztM6uw*n4Kx{gUrW<|!k*hp0m~u^b)%nmnqDa-{o~td&Np!_omx7#B$)G#TBZ){rbS@WuWkoScu=6=XasPg`g#(FQ})HExWmUGCB4qQjf2=a6M=7 zbroH$nzY9#9DUP(v9^Hz)+2xP0|NU&*(P*3z1^gO_r}tPS=2kd5|0g%ZZ0`vx7*Ij z_aem^>veP0$0jIo?cETYB&2iV>jr_-xu^MoT-8ZwG76t%U^R?S z@Ml8~9x)cE4?G%}(Q^sE$=`oV)L2D`@HSw2!`47+cB&Q_Kf&I0F0wS}C9I{#|7P@> z%3G%wC+rB#g z$)x9u#91T#K5l=^e>qtzviDQj zIM&D0{3b518~Jt#Ix6ixXx-Mo2}?dsz?+EilfT~zt91W2!)y_@k9|lzMrPTq`sb68 zfzBAZYk21H)b}1omM>r1$f@PU<{cF@G9D z^?HBNbWOP+?t8baCuTr|`En0b|C^Tfhfy%k_pJt!RoWZ{;Jc zwV-GnUP%#xtx9)?P;m=vNU4e5F|@sPaX!Fe!=MPAkX#6ER**H5@|>DV_H{+ROH0V& z1!m5Yp;vmr@8$2mfwG%{j+|}k^77>VqORfHCEvdBumwlf7aW;qV`Q0c?VrrQIGsAY z;r7?mnv*3K+!$+sPZ@f1ZK3EN;#Tu;pKp8*?vmp4bhGq+xFe7*eykQ-xeo_dxV&?1 z*6)2gHI4A>bs)!o6>)Fow#Hn~Kw1xfq&|a~`{0mc(+Kd_J93IUsFicv_-ibVM$0M4 zJZBLlpggP*ootpbe19h?a+!CZVMF@-`)>hR3Z#mBefEX1;Q+L{OfiGBhS}AWNyUrl zU9$D-w@3<~i|{^voBM$zH}?~k(V~bpHawl0IlHJM(!r6FP#!5)fQJe0f#`(fVitnr z3Q4m>YFWd@0R`V6fHO^k4KSJJoFbKH)fbw*io5B%6X|MDTnx@Vy^{+r?wq0(#u~Hh z#@^-K-`gy9D%g9rSB_wk%Qqe$>NcMEY44RW__fBZf8p@C-7l= zu-la3+DJ?PEM%`B{pW#Y8?g7Z9RkxhUi5`Y^f+PQ;LUKZ7P7%Q%^ka^^>!cLcz!*^ z#>yQZRsW+YyN5_l9@p4!eRdsD54FyQyM5cs;Iw`i^O5I!$Cj%XZ*x9eG1L)3&6CSp z%)3RS!QGZokY)bOK%d{$ktd~6jrH06>}@rVKj8NY#Z_0A&h&h ze;#C6!h0v3Wq4MOun!z}e#UQmujM)fjX4FC_Vn*`du1e79>*mRww7A+}2dKtriL@Q6H z4fXuHYPz{~vWVnOrmXMrWe*jZ}Ei2O(du|krxn-4rkDprU%S>EJZ@V&VShkKYXsw;D(G*c*%VFLR!zh+*cy86nTIWT!=5*>+Ig`rSMM4jJwDg6PXmDIt z(C0#H9aYJ)oxl+Yu$lO{md-6rOEZGBAmm|mK_% zv86=w!{bFTnfTeDG}1Mzz94_w#GkF6qj;0*C*|RSMGSNMI2U2r9u;tbDa%@#o?Kp3 ze4J5-yY;>V9?qkDt0IIoTzrwD%2fo5zaXJJ&seLW6?(()4=L3PgV7ggbZ&v-2#d@< zCz+r>O_`b!Gu*NMPdK^a%hR(rh$DbD3XXHmt>~c{=}97OK3EERUzl)Gg`|a+tw%wn zKJ68?xaE@9xw;3o*&{`mvN&iTIkpxc6GKNEeVnZ@fq_cNuzvBbX>Y2L7bFqdkeWnC z<8qf$p;Bu4h@_Q&C9u?g-I#Ft~_A?=Zy+ghvwK!D*P39e#5B-iTBYP)!0` zXwY$(VAb*DwtNDwihRQ*tH^0xKF9@_67Zv%`7Hi^l?Gq@Axrz5e#&nvXNT^EPe3Og zaVz|UmCT?uICpO_$q(3+GG-8%J5oxp+1Dn;dD>4{z8ZxPcws2ycox%A9pgpEKvu*X z+KCx9(PVeI_=x)y%yp3pl~Jh#2e%-gt5%ro5f@tMid)JkhAU=yw7mtj-PO&~rTtk7 zzsqf!3vPx_m3l&wX3j`b1y$jF2@*-tpkygZXmJC|(S^?rUh1R&Z<7X)_v&H_reib^ zi=elk@px{rz&PV_Tx*r93#3fTYBi8)JCUNp& zh5OSU^@bgz>@pipvCsm;q^C+U7W+VQF!=4)_Blf@nd`kqfz58At;rM@F%&+)mDwj% z_P2lKM8lUEbkZ_VWqp}Gyv-Gy{w3vgAz?kJDfhtLso}j|Eb+OqQLw zr)w7bv1G|Hc=>HJ#8RU47RqGVOr|Pvb#J;bD;vQ~mGfF9D|mUr zZ&o-5aL+)w|$86@@bZUb`CHS$+Hh#f!oyXB`3AI1lG4 z95j)h2<-4d%AR}TK#{QX^2L>X;QQSBeBG-mzC6KRBc=gP2)vFfd8seNo32itLxR6! z&GJ36G_hTYQ2?=xaTCqea$EBcCEfozZe?Q@*%bkfU~yqe+rUHcP`ZtL;0|E3A%k5GOO-V$>njP=Lup@{hBI3} z4iiZ%F4hjVHFgZ_NjF9}6vkepx2M!>dzLLb;i*a+%8+_M-w&(wkW9=`MK*4B-JYwd zmqC|-_jTmh6}}$xrr7Z!dFgbO++kT!Z$}ncx&UiHl)o-Q#R=LV#U1^C{XDn7?5lmQ zEq(mt@{@~m0cL6DB!M>5!eoDTvw@cXtA{mI7Rg2iY3U%hS1rAs$voU<8wZiga1!?? zb8(D5ofPYbPp&w2WUK?)yA^Z3KDZY|=PG1&)vXr?OiL=z>TuFIkQW7>FOK}>0X4_&0eCJ_F@^$8=bV$OZOBq=2GNltkKQu8Yf9g8!*-BpK|{J~2{h zgqCxDOU(o%Ha5S`nD)igT6TL+wDp2ojN{XIYtB;gKS##IV zz;}#)@sE~!OL<-kWZ`fpB!Sht-UCw7l2Qa@=L1!0^#m`qYoVlWd*|-Ph^~^q+oy$X$h48$o3j&z$h!amr9N0JUlb3-c41fjX-bP6KNh&)oJ=dm=X3U1&di0(pj zcBM!iejmRRm`X|)g$qyCbiUF>B)>zWba@575dD?!?hdJvRmPicEl?Ej;HkKmQI@HJ zTaw!W$C$I~k3!Df(m3oL(HaK6^{T0hH$`hWKsW2^*xT8c6KaG;WS`mXZguwySWnUv zMTnGm7FEv(N#qUUiD_Uol>EQYXh!%F%PH<7_**g?vF+nGH@z;y{f!LJb?Jz%OU# zg6Zb{mHSBn*E(abGp+@KHLXm&g6@JtA9vkzaGg>-$}~y-r@D1!no@fd;|9LdMQCB7 z&KM{xcIjtXipuwe%gdnVJooZsSzyAg!>R|%}0F|>qaJs>e!QgHR z>RCZ$7z}t1sC3s1`;g2RJCT#M2kjnygh2)P!{dt&AX(7|U%qn)safoR5J8_ z@0x43yu|`mnzFSwclW&5)2kc#fv)oFd~KYNT+v zGJ8kWkTE~O{{8ozeUVA&OKG9Sqw)d%bILl{I^6ndQ|?yES#F#rc_>hfa9t|{hd?U#C54sBkFyn@IGUHp&X;8;GQ zb^tRkjW15Uj3U)<18kf;9IeII0E?iVIo8GN>HFf(2~FlLqK#VBvjHK@Uwzfr-;V%a zo@2hYQ{8!G6Y$ZBeCGR1~w(4&BI- z7IGGrhLidFV<{W1&#!)@P~FaJrJ>E0;io)dQ`P_zCm!6u?6hM8d6rD@s=e2$5ugs^ zXDv-6g$pVJYvi(fw!DeDg^2F zBjpEYw{9OUUt>EeaMHJ-!xfr9+rL^^gbYYgtqmsh1j$eIvO)G0`wx5| zwj3hSuZ48wMFzMAfe7NB`MgZDfi`xhbSo;Q3JN&r1h>sICszbeN5Mn>O;`>4n+4~9YV3znK?OLgFm+D%Y7Bc*u4 zgJ^YFe^VKO^_e7Ng^)$7tO>b+uxuyZx<2e=I zp?Wd(aYB_{O8I39s|=LclxuMI<-H@^T=Vu$7?}SBKIfchSimqyB+!w(7awQ7f^_4K z!mkm#@7*uQZ&@Q^QYvH?$#gS46;F$zZz190MOaIdJN^n}#A%*fugxoL5eX27NUUM)n1!{2n>n~&)HQeeto!+BfzRU4jv_Y|filO?nl3I=t!Ak? zU!3Rb_LKQ1vuhuBxzLshi8NEUA{lUhnj8gEXil0BHw{6#E#vRM==SfwzyePx!{+o+ zZvIK1jm|AisTq8|cQ7Hi+%;j|faGXm-OJT2J_;Pkp32er0D;EMSIH#FpVaky_J9Q@ zMc9YyHu{1m0=`*#7vV|G0_W=!C2xBWS+v2jxNiHnA>cGO8wF+_=HxPUk~Qxq711~4 zfnmPn0VlPDwHqe8nRcwl_pC3V7&ARWQlI~GRkT=D@$!U|@E|i650E>jpvdnyn?=vw zK_R^r@kl}t!AJz!8iZ*-IjgX|Nvk|XEeC{Q{Ah!#c;|m+zR#Y)igDgMOFyry;{f7LleJIjqHhTd`Pknf3wvvQ zij8AQ+sgv`Qxb?C2WtgYii?ZcJ^CJ#E6n-u(N}8_h2{K&-50_ltA^NkR0&s#XWWs? zC(pu(N#-e1) zY$WR+&!(M#PgiJsR1>Yki`yY!|H=qxHeTE3(h_WJsojjG_Gv$-w2%9da~Z?Bxa$?aqDTg!?zQ1o zUntAujrVmA9Y3l`^*HTMu%j@EJjn_HC0!$jE9`XFx!9rbGof6cG|yS)PP!o>c-nO@ zv}lH+6!*}f`m5g*KT~RU+p=8yg83qTY9>2AZi1xLGvSIGl!`A#>FS@TqE#qquZay0 zU!A*)*ArZv`&Mcb933HWX?XKkB=b$O$IH>k)DmS%8*Tt_OOv1}&k#iR{7#T(I=m{; zmm_(Zo}_3`R%G#W2X-~{f^1ZO;}bB(k}S|kGR!P$cZIk>zu?)tBFl^3n);>4O4}rf zpJ0|nBm+`gG^MG@B(bS15BZW6)8;18W=ag@C#m9Y=mgv%8Ou~$`A~95(MnRlA=X#% zA#!+XVL)H@$eQH}9Bn}^>4z&Wl5%Maux01LM9PF4btCB_Q1Xx@Q&-8uOPsPugjpfG z*Dd2!mx_G!7qmcrwgrun%+ZGs^LXnw=TIR1eQb5ElWK7;;Q634{xv5rIp-B_u##wc& zGV%~~a}b>4%v%#40cM^Cp7#?>=b2bA8dWD9_|}~|V584cL6TiY>D)y#DCm7k9Rt8R z?hRmJaKC^fzEdck8W-pup>l)X1}I7yFDcyaSP`w9*qY=7f6;HtGrj;U zxn_**8GDoeqK)IN7WEm*lATT0xi~m1zUI-Ex-lBkzEV(PbHo>9dqPEPxMyxi{=nHV z<@$;>?-TIYh^8FOjABOC96r|!eP4(1r*bgCLlXD0SN)lMQTBRo2g2_)DER$WVS!Zl zNIDli#-)R)5zQ;O777j0kNvbHBU=wK|63o7K^W( z^V4Jb*5(0T5Sg0#HDKMOt!ZK=5}r+)2CQ}d`|rbTQZFS;Mn-|=+GRn`7II>sG5V$1 zB$&cg(Nr3o$AtQ$59bz0fD{N~Q%eX3Uh4tJbnmeh%IrxRjL1bm0XblX@NXEFX-&L2 z8kT3CrIm+&u!CGvd`CN912C7Sex*p)=o#ZM#b@a8Pnl`IeEc^ozb0!fcKpML)h7E4 ziRkvZY6cXe5*hEcC@^#TA$qr8W>VOijJ-`U560hUtkQkuozflD>VKxBphc#Eleay!{1J|2{PYqH#~N-c$!ii9>j1S=r)EBp8B zi#3*2hL`d?%reJkp2f!&h*y+6_CWI{GZ1{E*GDu2SP$DcaS)$*go1^kH3t}W@-!rfZR4q5CP>4N1Ti^NqjY+g;I zHbDj>rsMleJu3e;Bb5fd#rT5R7U9gzMjWXP@FnPRxT#D6l?l3H#_;#wfNO#7`JsMk z%PfG}Bt>A_n&@p~i4I!;yO_u%P}!P#3D5-@lr?f(1pNX57_x^L1wvl^mseR$63wkm? zbFAMuBFoTPR8d6){|KZ~3V-*G6?rJQXPLOE$)bt5c}I(cH5E-5=uzy{hPcwM@mwM5gYF`X#Rp)tdgsxAet$`#qO;x6brM?o>}S86d6XgxDI!Z z$KU2@mtKun4AN{{kljo^Axk69urDPz7yE``7w)dqAlPB#iXbdM;(35mLL!Wx8R0PE z%j&?R+Phi)TL?n#%@hpU0s z@Qxv`cR=IOPtcg0i4^WH!M-f)pR_n=w>>IX$&V<&_IMy358t{euLS&p_B)JnQFyGC zN1_~y?&$L;CGnS3wElzXY4btyA^(#Bty(`2T{@|oVomln#~;6lFACaE6CM5S$@WVR z$GGldjN?_eYjkF>uGj?oEy?58d!3f@`b?v2fbRH_hf~Mgr$gmXI&H4pI$A~S?&%Ns z!Xwjr_?6Y9=zhBJ43FOhIde~h{^E8Y$WLo-D|q~8wvGX|hEf?={zZy>-E6-B3lvNO zq%>(${oL$=#7pJBK^&3RRulckxAQaRMQxREG(TiM<~(uV23I>y7Q=S8Qe11S$azI3 zNE|XJhBTvX(8lfk-XBzWwHdBnK^UM?s<`!1&9NFW53leH{?{J+_g6-ZB*i(8@W<|7 zkz4hmZZSW6P~S;RlE1d*d}C_WO^FI84W)(*z)+kDB(18bvR(06MTY!wmvOq-$e z5X{3_@}h!SI5Sqpv|l`qq9gfhPId&~z7bx`k5^6$!LL$@(XTGpGNq?9X_hD`bB$zN zKwnTMO2Ll-^6;atDGRCg*|v=)7n5EU0Fdi7=Lb8);zuDA%`xeN~zO(vn>PDRL= zFaiCHzrE2cp=q0}*;TPEB2p+H2mx?yKZE{MZ&9LFxw19k)s-eT<(WuA?Xt5eOTy8; znu})}@Oi%AtE(Wa){J#sK}cEc1F}SGPi7H)n2Ngi$rMS@%KfVTO2uRTuxLpEGfIVK ziGTmq-F`ocWjjRg9RC?FjeA5kNPU&PV9xgI*)JP0YnuGrG)+we)MYhE5G~|*2WdjL zK!8f=m#t_U$Y>>+=^^`1^%8XqdChYX1k+Fb72BO3QoF<&*gS!@O>$S^gfet@KWd3D zeht=@22;|H(xu3RcRg61=V`!e zHNYYUt8m{_bbH&TG?ymq=Kz-1qqIr9^w+YqQCjHZhtj{3gJUO9_XjlOE?0aMZ6erhX%3}SIGza!^v*WJ!H|8h2IWZx-BhL ziw=?ya2AoZcyOTdM$M?h#GtwH<^#1BnB^hyRYYc}uh3e#I5Nql z*?mz-;w8h>^3Zi_l4eM4f<1w0X)oPDP0^8=!0v}HFpzY?TMu?4k1PxgfOLZPT_8}Y*<)A%R5V-Lpa zqzcPEl<~a4zW}s6WaWe=lSF7=qIdHAO!G(m!4?b?O8L0Mp_w?dBo|Z|!2FLln_2SI zmK5$OZ1ClYSc)*(zrLWKyDcB-_8>#{-Q4H!xi`TFvvLDz-z01BhpU8cgG>*QM(`+; z)K6akUN;#3`5AQXRRS$9?kAchJXB^Az2WH~f3IlU{^8KwL8ZeQwKR~@M3yEjFw7Ci^DFl}Y-FjY7?tv4eWetv zDlgDdp|#D-!qe{j{m(zjcuhJg-o6_7l_Jo-$E_$-!52zM$>0m~VX=b5?3A-p+=ZuH zgLp7FirmzVdbQA^G#?h1e1$;kHkztBOSuANl}syBog;qtNP6ZRNrFkhKhg5ffjSfl7i-_l4rT^; zHFI=9NbBC=$0FsSNmdE48G^mReYt6CDm9zK!t1jsWC8Ka?EICW0vo#et zYK88(DNj|}JpN8(aYEB}&rtlX`ufvNhf_sI99yH&YjCq-N;F>z*Jo4V@`br-X;B8#GcT-ch;q ztGh`!8VKSdkvc=eKa~}db^FK*bjJ#KyBH==`fPsPjkf;nscTxOn3!wb+gb=nN^|y<7K7cL{NrOwTs4Dr;_6lL`5usr(cL1c7 zorDudo#nH~^;2*d#-UoqaHiAX)3z8&AclvBp=Q>EwP<#Kqs>JL&FZqCnr<}NZ_QTB z)n-pAGeZTPHsFDu!l%gh&?F%7h1$TPai&OwiN2_r+>AyR>hbhHvaL5u)Uu8z=4m%< z{n5R@sYvik+A4w~bCX4y1f&al&7iBLG(cPuVB243Gx7op(EhEoDjS6Znd`Dl7rl#t zZ;%<{Z@$M$^$4`x_V7KRZESE$6Y&#tpCvS#WPzr+DIbRKsjEyBfzFWdP9z$?7aSD? zcGXQ{;ZrBRKy~CLMoZe>1|Zp_FBax+1()gutOWS?KSb}|HS-8;39D~2%@999Gg{;jCg~HIjRjy1+b8KWVG@4yPb|#(e3-B` z!IXk@(O$WZ?BlFC#Q#ZD;$xtB%+R|O2Wj>><{ZN)e7aGr2PaGEn644R{q+g2f|96ycbR=uLV-BAu z)w7>!I1i6`N%5Uy#h1;+{D}gr{L={QakRD3Di{N*0ldjIkgBLPUdz#d^tBm{L~aQf5@eorKOcCCBzqs zKl;K-Rq(X?_4i-R6BtQCQ(m*afUha|`IEEqwQ6fnTY?~QOV27l_R!emk*uvhm_=>` zKKv5`Hj`IDQ$ZljO#pGageLSXBKhRwcG3{P&i7ZzKHu=SJ=TrP1I2SoysfDJ86&g^vD`noKQ8{x@Vnr>`VD z-vbJz2ztjcWULO6OoOM>Na6s&PjnCIND}pth9N%NH@YFQ*&yJ<1sK*x0^pGk_FclD zNw8>#4*TU`X4mpL!Wn{(i4dzAl&zdGyh(9_%xC#Ai;wbcF$G%kiBf1&~=%B3wy7{U|7 z-UArvX8|x$iZ;|FA5@1uA-?FB;41NcVi$M2;6|Z*cY$<4s5mdYuBYw2Y*hIu`Dr2W=(ZVA_kp?od0)=&Qt)F)ac z({BG-;}DjIen*>0x;PhT&6s7k;ir&5Wup2?)OOQV;`9VQ&QDNb)`ujUk}@=VQL`7o zr@Jn$!QcPdEPv_!nhMM<6(60e;5|R|hbxW@A*G-Oy+N$twh$K~-H2=ZTt1p$kQUmX zHc3cRlhRU~E4EMjJ5&2iNcxQb4as$pR(|{^h18b`@`Ej2SR<}JBkDr|Fxo2$;2I0& z|NE~d;)Nq65~XWC8;Qw={j|U%hwcy&A0J+uA8-HP`k!u2adg&TavYuGOYy*rSHNR&L2(3Wzu6OZakobMQz7GegQr(geYu5dfYt zNjD=>dZa=j8Eb?=-prFlM%ppvIdV>;c6o=EAGQ?Q*8QOha-Fc9MrofYZXmCZB(_%_ z6Uyo<0gvp2Pak3HzQWvX(50YWbg>%B(; z8`@4?Cl^_ll-{i?GhRCC!`YaIn>X5N(wnJ%l5RPIxJ-0nR~^)aY$IZJ54m3iZFx)f z>v0x7<{4VOcDni)bL{((aqI7k9xk-GQ>E#;f2t|47e3?g9HGH|$lyyrldGt~MigD) zL=WK#65Rn|alQa=l#8%>E7?mmyGV{%H0MiWXCFu72{sqR7vKkf{4Q}is_eOgPf33_ z`ufdrzhG7p&T%83Ut={fxIs`CQ5}^+;XAm&Mc8pf909z<(pz1ng;X!y!2A0z>X!ug z&1TsBv+E@^kFj$C zcGGvR?}WH&){X`Y9D`c~P-54s%MTC~>#KY75~dgYNPFqDiMz@H`MkOv1J&KSTfKB> zn@-?tK0a%B$m$(Tbkk#d=%-7dr4+tl}hU+wLtqcSUJ0;QrJD(J_tYk6a~ zSIvTfd^(p!@^YA1x}t#O;D3oa$54h1|5R3Hl@K_0oVuE4c6RkRc?+&6js7y>-X)_D zQ5VCF@CZBt)tG2`{nK{bNLyGT{RmDh>=HLh^EigrPR$^m&Nv9I?s zJyTb9Wy^MO!!6Y|8~I~Osap(P?3cw>tQV&5o#Phj7AZ%ak&n8|E019#&+g;Tja7}f zONvp}L*$YqAK5=I5-)q6$2`n&8cwh&UD@F($-0YDFG*&#DRs4P)VCh49@X|9E%Qj* zQ6-=4Q49VQMLhQ6OULAL5m`v}pXyy`Zcx3-rW<9E?ASVh9@-mnSH(xk$I$A622k`x z>%#H+cW{E$FL^A&x;n;qog7#nGo_@&W*VffA`43u z)bq2vqOQY>k;d#9Y@p=toMQb{GIUht0xG6bJK?_nLNd>`PF~?i+OF~HPA>l~`YCou z!HZI?WtDnz>L_>r=W%^y0OH9#ACNi3lb1zf;^RLjKcC(&MtEdIisbhb#+2gX2}fS^ zIauCD$1lmZaU(;Hpz(^EX!U-$d1F!2C)t5ukwyoX%})GrW6*8p(M4+%InH4JzWHb?%sSU2w0xddvWnCw^%Oa~iND$R z{%NC=mGYlrwdPY~6CaN5UJssK1I)L&(H7BaB>%*>T($25)|dJ@lq~ai1nmSHp-&&b z^|Tb`Iq>dE_h~<}t|3t)>${)*La41lGvgI`0e_%LE#r+IET{G1Pl62%!O$(rYK~nt z=}0#=!XO>H+0mKvUh(TKB0Aa5puxRfM-*8t>U8O&;y~=Q$i7HaW+i{(>eM1{$#4X7 zG!!Y^=ie)9ShM-Thkf7Nrpr;;T-Jqu$s$`(M~&pOU!SdL@rJoF>8xGv$kY{(EIQ_c*<;sb!xf?&M(G~AX9cZ+#gOK^HUiGp7 zznlxr=Cq|x$s`Q-vNgJMl%cQmqmR}*WBa(7f>-n5m7$&@4_sVc&5ny6BTu45;bc7b z1HwB&>+5qJvVSLRxoPJh8a;UVC$UUBL~CHYaD~PuSfVwF%EYNFay&^vRP zgyJFsyGv6q8G3WjP(IuWs6Un!k#T4&62~vS=#PfX2$-jY7$w{&T35%_H(pC=mMD_x z^2yFXV-!}?GQd@7IDh}!QXXD!w`yw-t|%abh|~*Wh`7}gs*jbx>{o+Hc$U(Ynf7b% z#^&=*TBpE!0SAg?n*HjdyyF!nQBs6KLJmVdLlxakYF)3f0Bfl=jGBdoI)zjsrr#>Fw$#awNktDX)`VIHrw zM|U}VCF;V9I#un6Q6%c1IB-^xI66Ci0o*f;zlFQxLEq1111ZUK;53K6m5zv3wme3z zdq6ho2%UPYAJOw)GNM{$q@i;IjS(C-*%2B!x+B;dlYZ~B<{SNYvapjFB6s`@RGg;B zZl!}AC8U)d`jhQ~GC(VfKVxt+p|XFycNl$)<6pYF+N~6Y6h@cW{~Tm->qc0e^FNjh zo+-}wRRR_QYaJQJv10t_oV0g{JWcii9EN}zA%OS-N;c)>TNmNq2Gq>-}A&`VOY z)9MW%Uxn^O>BZGROV(Mwxy%ZY<=|tyAtFb&B~g&w`wV*}`1n)2VUbw@n6x_AAv3>p@go^<;U}#yCG)v z$lp0ykCDs~Fo9Z5M`8~WB)*@L9>X?{7pXp>EAP~b!C#cNlWF;WX@bu(=)pJ~T4$>rM8 zZD}&Mw6@g#$ZPvtT0$Jh@-?*7c4*q92|DJ-xBxBvs-c@8p?<(r%12J05AXg%(+g&9 zqHvK2M*4uTyAD8wpf^jvlS=gE=<~K^ncR$M;R+dAUG7FLB?Yew4D3tEM2r*Ot$}tf z<3Rc;%%`^(M3LKJfCTImwDkr}{S{P#qgl}`i-4?59yIirYXypwDbsKm0)y!(6hwN6 zt#?T!*i`h}K;S^@I-3_#9wMuwZBs?!Gk)xI;^mND=qj-gaGw4TpkF*5aN!(Pa<}zl zF!VGDQYf`Mm9o0Hp#*hAdj7pDh5qe1-F&ncTy^K-9Dd1}z7=pCTxJ!YX4v#KQ{C!V z&Bk1mLyLJ2XIw_!Z5AHeu%j#gPmeT7R}QS#aY2>)2X+X&eG|`b5R52v?=Hb00)C8I z$%NJQKv!0*B^8@+cPnh5TvDYS;v=_$_~ThJDJ2?I!USkL(KGF}-1k8I6oHKtS-Oen z5wIeQFEEgxn{)6MBoQKSHbgYDpoufgWMMjz|A~2y7PD0WRShPxj|U@^OOilXo#T~3 z38Cop91Ayyr(D^AfHuM(JqkSIzS7*id;<751waZiyIQtn8$IH2VqrY_o}}VMv)E+5 zR(~Ynde$M5X+Bb@U!=t?Qj?HVoXi%$MnS*TgtHWikBbM~lh5@5n6~1gxdJ8#VRSHB z9}^@{)vyg^r@|*$KZfFm;o4#_N~RR8Xu&#sR3}2ODYd2#}_{aOYMtl1rE}ej|7j= z^&UhBNi3GKgbpcpyMImumd||;7ne`L>%NC>Lq(z6k@Ze(mrRtT8c5{QLXm#gA;-x_ zLlj?;B=!JDDH*7<_2L-tt<gXQF4$2x437s`Z(l$z1ZgR2b=t%Dy(D{?#A`%}2krk*3mVlx_n zMz?koC;1|I*+20W#?ylckVJ`HD@L6qS{26WUT-s{5*!Oq{%Gtt{Bw$>7=Q@n!Ck%7e{X zZsCYj1G~r@>*H0{E7oxswfw!uvxL<~&q2%Jd=tmq|85lf^cux~_I__b8?F8)lL2!LruQ)vaAJe?X$FmpVYhB zrxWz)RNpFffy*;&=ry?SRw4i|5$DJDN{-vkRL$MsjCQWbZT5Cq_vwki3YZA z?&?>OxkD1#-B;SXi`}M_ZS&_33fkkZT>i&M6T5gGRDknYe99iSP{K~zj|;yXQV0~8 z)B1o_GOKFSFCTyZ(+os4$9+8y5_yp@29A7dq>n3AU!}uX`~R16(c7_=)8(jJ1a? z6^hiyNRc?bao8l5baz;y?bzBrK0vl6rENq+21c_9Z5C%2XJWc8v_C)-B{5Pi?lU&H zB7IaIJ87Crim;enT0(wfYR5~duoK0(c(Ou$$n8m(hhyF{1h)^uJ3*i7gd(f!P%|M? zCNCSIT(T~+Q6#|hSqr5??;_!?J(*kQd@!GV%9qf^o9gdx0GB=T=Cj5xE*#7i<*7S(>2eUyYRk&_QSaidG%eantZF&xP}o zTG=uoNYqy3rzueaYY*ubeCyXN{!O4=6h2h(&n$0J-$ckYnL9m1u2hIG?1~7u$m+U{ zY>2JBKADyLO5PcnW&3F3wvB&y(C>}L0@#NTq$4|zgDF)!p;9ZdQsNCV5_LP zRO;~Z)=66ljvcYaICN&Vl_Iixy)mWhf*MGMv8H6sr_0sbB))u*crug53nX3ZIhM|5 zb7_+rqV{B`&ThX(_9+EL19tWP7K3qhMpnDx$#um7`|?cHIU{86D`wH)?%PU=Zr@#u z@a#|0s_r7Qx<2x0jn0?TVc^troiz6fJX4V4Mqocr1{djFOPY^@emVlh>qh|~>lzlV z%#U`yW%xt{&Q#%t%0 z9sVP-x>C=PDBlIlxRup5E-9^#$Q|QfoI-IrFC~#+#}QFGu|?M;cA(Uw%C<*C>+YNG z?t2&qk^u|f=~zoka&U`+mpYD_Z;2yAk!E$c zD+h9gQaED#UK*Co>lP0}yv>G3V2}jxFm`Kd2rUq!qX6N!riskmFKn^Nc${q}%O*N-zx0T*&2$F$=}eces5!(B3K8k`%< z*(8j-{^iz}!1$kS!twhxr}RJIFA2|-!oG^4wg{w?Wg)PJ1?e*dvsOOP|J>R#WnX@#}u43gdsj>jwkl&EG{mJFg^ zm)+C86Nxk_&9pYS5}gVy6dvCs+XYc*+ZdB5>SI3BQIypDI14A`Me_1ABG6o0#gu8+urv0eSKE3`v+BO=+B zu?h~Y|8XTyN|3!uAft=5PI!TMh2sb!=ZP6LS`>LrITH>81MNj`1bC3LoZcc&{pMO& zd!;q^n+uIi{&X>Im*XaUx#c@v#!$J4e)5r-?SB7Fa~tw@9=z!Hm46Aebd1(5hPfdv z$H^Gx!4qbL zSMX(@VPwzU6qr>)f=vt}21UCdo)+{zTp+MHh@*oXw?9X~A}jN)GMp$-QV)Dd*NIE< zoAaXb_rDazC>*Q5^3{s|HSJp~-vbW8ze2!G{F!j(%%n=~Blq;kC!b((99sL>@1cbK z=!o2gSCg~RK} z+wDI65JfTg>nkC5?}crxK1SNq^@=718ey@PIqgfdI~%&UlrEj3NbbbPj2B!obCXZQ z1iw0C{;gFF_)48iu+2tmBk zcZv^ym`XR5D>W3!#$QidyYnTm3B`fgOI1hnIKhmbseXtogRV*YY4S3HSzG$_2w zC}8Imxw-yF-d$S~*ChPNUtCMqme!VHOF#0>ySmhby#d0ubZhBDR-kWb0fd&)-8J2u z6fQWmkNZeXFD;340mjsqYQP^)o%#czK!t*h_ER%~E~l)J$kHlIfJ5j=Jz!2rrwaBe~Xr(lrW4cIaw(&>XlJ=(|{kVP5f}@#90#%J_ z-F-oWABC3HETw{b z%}>zcN~KNvWL5xrA$*UIj9SEkeu1rWb)`4}AI}L{Xv>xN2y7@^h9uw@a>}^Nk+^}1 z-0^`Ee#GJOM;NZY4UWK_hlmCIkB#`F5qY$M(QFy^p8IU5+zR_8(o9Yq^Uhpox(OM{=bUq>as`x>@nd?`=RmXu2oH;h3b&r1n52hrglhhrNrZ$ls0x${EWG(!Na&i z@2={L7?&K_SD9$co`-nq)m0415pT=RRtxVQAELYN(c#R-M8gbd`JuRQrf- zmEp(=_K_<H|=-p{5^CB+W? zyy?zQyY^mb!QOR^X4SBv+S;80!&B&A0{7VHfZA1}AkZ#(G!oB7@-wJm%Pk!KKh{X8 zv~z-C$@mF)?K#^lQi*pz?GF$MgAW*i>E^qQQoJ+5#w&95%93gh<&aPFMaPx7|h3XbMS2Qo!3Y08a^8C4lnS_hllap)aT9YEz6dI z*Ovedz2CL!mTw#@=>0yxG0=wl>FSGXtpr9?=HZ~c{Oo;>_5aX7BzEQC^Xn#I1TnZj z9aP+_Pk6ftD~%BSl{M&3ju*JO9@Sz!SC0FF2v=pW%l-wnH(^8EFL4RoeLaS(8{VfS zg4y&*v!fv1=*xi;Mf;^CPrfV!6n`s3A*?>oW>lcOI%SbOqQX(w4*tc3<>bbb%i_{w zU=-p0>u7M(***I?#e=K8$c%vP^oVFP^+O=L`LuUd-DX7iD-AbFWns#QY{(?7$3SrL z=(735F|fz)UF(2z1X#v?^zBv4V&k3rpGHQp)Z70RwenvgR@7v{aU_mVI&nGu#v82`AqspZnQn2)o~CMsf(!Ox;$R8#T^q%H-<4nzQn$ zAMYgg5M|Ft!7nf=(&OFp^{Ix3zyKD{^O4Dzf0lOWeFS@4Ksmz6F3_B~xpF(~meAwC zII!6{`1aWL(RTrFf-wCjTijM807Mp;AS(=N3&Uo=ZnTLuxB?Z)H1kj#G)IeO$FO<| zgfvqV))G-l^PROmkcZFH`#U#nAr*Kj;rlkXPzzM=d|Ti4j6Ku_LPwhfQ&E#(k)Tx1 zHuIM~-9(tzp?0I){VEx>xkw`tXj7`NmF_SrP2V;aA~UXsaur!%a)P233 z0&4tKV)7^tAZOt?I&WCEll4FT&e{=r>k2GCs&=a8p#NSir^|P@>61ST0ctUkg{=UAMleekiE^>Axs%zPD zZ&tzFQ<-0 zs#qwCOf<7d7@&9Z@2rnAAJB$dPQJCMHGe$tg<}j`{GAWG`_K*V>O2?hkz!C)e6qr` zQ||(JDBgpYJVO7J*vlYV6~06ekZV=byQ?rxuE&?IRiX`gJ!+llBrJG90eec^B@;Fa z*L|;m;GEf+*2_klWIoy?1!i;cjj=n+;0NyS(958Upx#yx$xv@pz53FZ-9lw%NxOzsLIE{DyYL zIPqESm8+L$+Gs=;vu<)*O}V?_;*8#z^=v9EYtYcfYkdVTH)GtTbwb5iX#9Y`|8;~6 z2H{pPSdL){PqU}3n_QnQyQ6U~kN24;2$+NI9Bw_5(%NC?nf#VL2bBy5Uy*f_2D%uXVk0f+MKe3c zv;)2nP3Rg>hqHdiUfy`IYf&Tl8NA%y&|UHyw$NP$tTIvLPt~1=l8DU@lWQNMU%u;Bx>KI z^q&Sawjg2%IgKDUM`<;ynaJvWO6|DdGrl08?+LtNMD=|W+m^{Y{~tQOj^)$z_|Kyn zE$1;0hoH@4ZuqAYpO!t;2$1Iq-+hgktq*Y1;L}K1mk5@BWCk6s40~|*X~+1QC63`$Fg`rAJ-Y2 z-6WyIx@YHJ5FWp3#e%}V| zfBzllFuFZs(JaMhEnEtJml~ISIiN^Bc+4+y-%q#avGWY|=;n7$%0G~D)ljKwMDo8& z|M4Qs26Q+5`$p*E;!{9M@Z}r=$#jY>!Q;v7982XK2riDL#{1Vfl=ONxLYtR!fJL@1 zL8~`%ilXO@b71%Dd8=>>ndBVWFU3#(eNbP=|JD3fFF<1+*R|u%%g3>S1$C z!_l*zUOno?Wd%Vl;h2PdH){`jBPh$M*oi^ra;IoX;_fROKl6_mrQm&HpK@f3o8|KR zsbtMTA@od>yZAAoD&>P63#XR0mOk5+xY_NB1W7Hy%kAUbQfMO00*OteKZa&c&lgCq z44hL$tCgALMGc;5NX!`-klPdq06$}Kf>m7@p8fsS_E7=$&MG6NeJ-)d6)80l^wUin z(npj`M2|QCqEckQ4TIo@NYa04!b^F>#o6kt8wvdfKSuIk-QAY$H)Gs zY@lR6pV`_We{0rmww$&ff(zI5k%9*5o>K(Zl(wV2a~a_Fk@D1Rb`oe%a-dfK){-E* zlxC`nmpuSJTvMDcwS8Rh&c#FV$ zYPxCyrc!oUBl2lPmN!lk83!d3Pa3Ms8$Qb}y$2O3QT=%LME z%Js-@?w(Ad!10DogUr#R*m$7k%x;ow4$Jii(?QeFbZ>yW0u_1IO1tmC_T3~@i!{1R z>=@W>9K_}C#ODM%*8=k-NW06v*$o~vNS0|s%rNlwM{2P?<4Nmjf&ii_Q0hB9XVuKx@D+;0f;&T&-H}OWJ;BsNLt z`4i)n&z{>&~uX=6Xc@T^x>*Qg-L_5t(vUvD2i3UKpSU`GlvG*dc87tH!n-=mj> z9^{jPW$$l0gyH%xQ%PPyNZaDhM*VRGhH4Dd+TkE7OuDbKnf zU4+FyxpD9m7ai-(;Dq}t-sl)j)V;t2FU>?xNf~B=M24$ty5T7XcEgo!XW06jWUx=wmo}Jcz(6HOor+6c1ZVSM8*ljFnuF zobxajPIxGKHc@2Dq>ev!`{z5-vGESev#My)P?aEeU%bHeQEIp56}K!Hi^qKHCf;0Y z7GOSyhA;>1_tGT84=%oU_#9g$d>d#Mz2~Umqu2;dj&hd_E0lHL^AX%c58rx*+|_o3 z&X_o|DCx3J4JzLs7yV=(<~KT&3iX)kio}8`Q)wV1WN}qiBuQBp6p4e-Duy0lG~lra=Q(@Q8)%+`rzKa4 zbd_wjcF6zIP%5pjioE1qV&_pj8VCvlTEz~uYo7kM!wCX^=bSJsE zYPjcTx@pn#t1~CGK9AkuU6m9>CM9pcijqXOS+`lEd&D;s*>>#8zGg^O)(tzc>n5q* zIkY(uwZ6|ZXIEfXGz|c3L$uEWpidHQ0suEDHCi|06ys1~=CEThkx*h>}>&Ld5MKMe$+c&Wzx2@!e|k=o=h94+mS54jO#I4avF4!xAjvp`56_MHNSp~tm5pgg_ncDhI237Z zkh0YQq-S}dM{jX+cgHP5{b)U^p1*0_UEljz&^MBgvyWDHPp7b|kob5Euu&fUPgl#y z@?j8Y#j?N+kIMk9d<85HYN=?Cx8by#gXoKWw`Kio;N_0-hwRskX_1GlkfvR2OM5 z5Y2{k*0@u2VEsEM;lRc_d=^agxHE0tRJ+# zsBzp;o&g%+Ymqtq*Eu@-s-FCG3yI}cwqTY;ahBT)-A6&OMxI)hT97BMIaVjue5)yW z_U~egV|Wk6(dWMUXy?KPqAvkG%Qe2G6cp7IiAz@g2W#iH>po9J@q6CVZKkPr96Q)f z%YQ!&NL&CHAc2Gg;_iDfvX*D+q=%2Aw6o^7CWoE2IXaI0c-*NTXT&AzSBCctYN@~` zE-Bk1kBJkPGUM7WYmLu`x@_Po^t7MZrQG{y0xFykKbRk~T#UiThDQglHu?T(o z@6`vu{6->$rz?=2tVp>?bZWHG5+dvFykMG-F-v6o*%w;d8+Rt4V(9cbmcnklI(g}n z^qiK6^u%2b*6w2+UOJ5ux?ziVc>4h5we>Xg1#@&IprPi zjWT+OAl#i>6c%ZXj0hL3@|?Zg)@x)5EbANJO+ad<43O@5MQ z=8V`;KONuxBlX@KXq&R4KtnBh5UKRhMO>>iJ_+ur_gwmv5*ea?DL|_AJ`UsO)Uqit zJPj*`i6VB$Aosg5P2eG;;vkRgEPi-J4c}?4zyQhrk@z@TLkeca7vtS&$1+pWNqNdO zKm!M>A6`f3H$;zikT0YPEs$?H;tvdQqsvwjylpNhPq@1Ibai!u?_W$FC8rGNouBqK z4C^K`$tejSoEc^lR*M+8YVUo12sfWfg6P{ML}sf5gd1hE7K>m3G_{;UYRkRvm-WpF z#%=hzK&E#hnPGI*auafgz*Z)~x0JEufMJkq82ouMjuclB5`;yegjuTOCyH{fDH1K- zU9AS(Y>lloUL-06y-99y#xT36h!_WoQWj~c_@SsqU_f5vZ#mP7=N+_E%^m2LN*AA!u4RI{!SQJwl zmH0k%G_#0R0PLC2amP8O$xM~`74iI1QNvAw5qoV6!v~waY;pG??rxO$;5fb_>fdz? zZ}9GPg33Vo5q6vEV`rhsbHfmV1Mcf`v&v*imo<5)8cAwJAN+JbL<+i zzI=nH0BV<3_zl#WC>vHCZhn*dHtW~+Cm~=u)QH(@iGCvGrY96$L}mQe0%`tLaqien z@GW&e7A*pBdo!n#?I$Ww?AwPRv3DJf)Ntb^5b*Ke#%CQR@4`%(g<3WrhfaE} z3%l1%aw8N1DDmh{u6vcpg{a}%z}6x%Q+!;tL(A{>DU^JLcBo;oi3$`i>)b>9XuL9~50g zxGkVe71*RSjZW?2a6)aIMaD+;O{kKe;uEZU<^BG_v-y$6V@TrnBZG$YEhIKCBUQOd zFiMwaqUt&ca$cscGsQJ^)uP>J9qsN-2OFa|>*loOI`dW-XEsH9Rn$_wAm1|R2_Tq3 z{RZP+n(>_IGp7Y*;^wq}N>}y6_Uhi|a1l1oJAV`HIOJ2}-|%cyq+7HvNNbPrh}P6S zEoIhm5LB&W)HRPbX@^Ndi?1r#BKHj&u{@+e>L&PSX=tmTWTIB+L}3L#QkO3&7dQLh z1(rPz1LiJE*EsDIk}g!-7d=2Eq8D2D1Y65E8r}QhvGajv< z8~S`+eQli3u6RMU2YQO^Fz>_YN*{$%ydzNharvFaDf1Qj`!L9$NZ3btWi}>ljH;V2 z=!fAIDLB2z0_@f5I-^R}g$do^Ubybm8kYHFwuRF5x5a2%&c5lJuh~awjI%aRyswV6 zAxNw))9LK(S2UlG37lWM!{N5OZ)u-*b`gQHNO&72$hepqCkV{#bdsQf?Iu(m0H#2yd5 zcPW;2UaFVoOU0@Yt(C;)v=AN0n;a7E#ZgyMokYt&a(zo~o-fvvJ@XRpuu`8#+l*3 zv!_J4F!CSuI6FSsu;nGlg72muS;3`3A#wXme}Vit!nrBk5@0|InqI_@l`%s{Nc&|{ zB*)Qnp(HMu)JH}cd8@1mwzY+CmS$wjrP9VtxPf}btf(KlT|#o3lZb~ax}w!h48BcO z6Lc+OaHSI-H!Un=wp1JYEt#Kbgm}uXFD?47*+s(4y@Xh5c7O>ID1&dEj~V|sGPm4r zt@E0FF8Z6el^KcJBOo0QC#*cTv;7>`lO40=@o<`;oxzb&b&@cr$h9`pSDU8-1BWLt z-BoO&=Ipa}U)FH(?-tWPv?gBuBizF*lCcZB@sX)gv$GC{9$D)()sCI^iK|ULX1;_) z#=%@EB^}RS9N2qmIxM;9(|P4QHN54XzWWHkeSv~xy8!**wMHqN4FQWfz#>h<&xK5oyT&awHqXHFdE7e)=6gx{iu$8<$k@CL)kCGnpl5U~6K^Bd#)!qx<{f z>iw^j`ft&^Rz^^F4BDPBTtOvuKz$O)`+&PC0?Jbfl-`U5Eee?lX=dO{7oBoicTQ{7 z(xY&N#1e#5T!i|wAk2cEAwcy>PA+%DIu1J<9ZJm2SP_#sHu+#i-wrlg7U%N+=x}*U zG%wRLSzjM=`4|2s`Ivc{08P#KT1ISJ_r40f%MeXmxJ9VJx24E3Fy$yKF1pO(me;U< zm@L`~)LYBeBbE7iV^MdrN0xNfFKZv?+|JD`QZ}EGZL)_$N={>Rk2RY3S zz!JF>-Xor)(so%_Y}hDs)o?>aQ02!p=!#*WNYj&ClU$Vf_Fv;Mh08P9-78I$+8`}_ z;!Wjhb@jV1X{7^L!}9ZrYNMRezCq%bXPBCP`}nVbQuiwDBnz`Vq)?(; zQYh1po~h6#^de#C6Z%Q|^pToEpLm@lwD_X2>99AL$Db%S{={q#=4azb z<+NX9Q|n{9xyn!u;h=Y~@GSzEAoKF75+&m#F*JMOrh7TyZ2U#XP0%s^)stXp`@_-qw1fo=3HWTTmzup;jzK3!sJ{#!6gaY_rRbe$>Jv{rjf!aQm?)66ZW9DTD(*EUm%K66qHerT{{zaOzsOJ_)i$FTaLDPJKawr1)sY05^=8sY-y zFs?WJaPZaZ4A_XCDZ5D&--g?|X3zu)U8b}g;*$j5(iQLVSHBJTnpPLwrl+=*x2I|A zup9h^A`~-os-*F0BwE5JXwXV2JT{_x_ z?Fsv2J+&JtQ5W75dUiPE?86_k+EG$Z1u5O}WOlGD&+Q3&kGd!LieFFg7wGoQN(5JS zM*Ps*TI_k8K)d6Q_SwIzM1Swl{{5SA_M)_nC`3V`>le_z|E$X)YIht)oP4zt>e8oQJ|(ddb7-cQyVed(4( zG~MfAuP1u*D?L}Li`*uUxw@8~c=JQ_?)48j?z%l=Jv{u&RPfRhxZ;XC`)ylCw|#{^ zXIp+2sYo!}H0oxdT;)C5*3C?=O|feju?I$8!aZ&{ zZ6X+&Oii_rd2fy`_lLmy`ELH}Cb?&(HzrVc=mX&*b{}hb)ssUVC*!;u#VkJibsPLw z91dZxY&UM7s0^w&sfC6t#j&J>0X$K7Ek)ApuLEn16HuJNQerwh_V$;C*?$4bBH`y^ z)v}X2mWNMS@!7V$^~YMamPW%bg4_N$3>4Jr*}dKb9w~S-NjSTZGVdl|-H>HoL;{Vq zqy1`v$VkxQR3M8RL^92jpmqg8UoHd|3n#&by3eU5$$iNnKL~@wW_{%1r=vtjrWES8 z#K*-d5>19RPTiIFAtru>r;|)>0!Y|vZ%c}nMFvK7Ez0^!yc#Rhg-aQy0`GP#J6`95 zVF}wIgM#Zrf_vH_V^=oEEZ>zqWVG7$K2>oG(lbAZYt|6_prkdMVSeZbz_4+w*uu_D zP!vi)b9vm^>Et9W{UoC+jA8Wyp$lKDS6UbgikL|CSzEz@fhd)>sET)avX4x!45-A~ zgBuRQTLPBL*M!jmxm+;chylQUE`yufR;Ky<&^(ImK$f}75197<{SX}X*$IP#Als}& z8-Zq?^M%AFiUNPT8N*3(Wh^NoN}y(F!3qIi}-JiT8B~U!}dnUEQ8BS?Y+QKttm2dz1OLp zlX%AKI^Fk~TjxyT`^3Bp|KM=Xw*OCS-LJ^ql?RXh@|OAL&Cj_~Q=fX09J^WL@ZPXq zH+qn(_M83dF^6XomSlC)G<5HyKNxmKBJamP?kIb|D}7uq+54FktK3NFKDbi-xqEG4 zp(nD;Ub^Ka`jf543Ai(vXDt#l{5JM3rO+*phTW#K=Vf8fROf1U)&@$?Sf4JI(4HMw z)?&F8w=B6l{LM`$ZR$Ry%!AKsroRBc8<*$4apDp5E$xp(;zx;%@MC?XE>a$c5!A|R z;6os=@QH+0$_(tkn9D@=u}|_}g^|*_407?kK?MvoxIX#FnD%(&U_)KGVHRIVv$Oen zSqPmTL>G*g+<22pvQ4H5Tlc6X$)sC@=9W$izsS%29Tk_)SC2Dr&*|;cF_G3`m(c#O zd%{|z?3w;iUvj-8m_F{=a<9*zq1@&K1L&0zECkLBWPG4cxOf4=(A^7@@c$cPG0~%B()=h6% zIfubg0Cx<|c@0BK7e&d>;KyfZ#a=M}Jn=?xlhgJWwjuo@oVP!>4cqTJEZd6W z&s~Dl0zl`>=>jU!^dzi>N*)*}6-w&3jR2W_Z5m0pafH=6ho0~{%uBn{XHCN?j3z5tWhVcqr3be@G*Y8p@P1Pl# zQBC~Y3B$=Tv|v`scJ-p^ z&k}u%{f>!#%x);t51Ja+0;m+>L5)aFjs#VV~Hvm;l?}QjW{?L5Uwtdj9hbe+<=%M&jXjkfS;ph){!C+VWLRW**Abh zilYuYeG(obNflZkRWbwj@QY$GhTI&#{wy-V2?UGLv)N6evTQiu>4N&6{MVsr!SPZ2 zXpR+v)!>Q#S`J2Ar2Ci}91bC7)-~_&CK;QpW+cZ_m2cL=7A>m}u}Lhm*?*^~&c{53)p)tNcU;_JRQ*?Y!`g(onk;Kp=0aZSyEGpfw%0Rc@ zSaAN}@BH@6bV4Ztk(#Nvgz@jWdf88C>$caQ3%MfT*z==6V5Q&`@hy>Tf-R7G%=#F2 z2dr)Dxr*Fn+~VyQ!8;7Tq_~eQoLrRBV)HUP2GpH-2CcW*%{yjyr$lxN2;9z22-)Qy zTRaQDE(2}j%WRZ+=g=mYbt7a+HrCo50L_%hfaAI!i1qW?RFHKtLQY7s8xs0*x59$ML**q3y#c+3-rKO(R0Y!Jv5GI7*9^ z{j=hN0KT>B2&xn|dr8D)8{lhrCuMe#P^l=z16(Mq24aps1|dtV!q;KD?PnaMidC|v z!Pld-mI|7lBND64vLF^6&; z)7b^6NT#V?4y~gdM`_EJ%pVhi%vENDG$*_pd&EKT-_k%t-yOf&2xT}75(mbK^*n$P zk}0TZLNLMdMhtF-3goBX6Lq4=%}+G$)t{R>hH}0hV@1;xhB9>$pzevlh#Hy!ls54h zh&m(FB_Opy5@kuoI-3Z)X7q6OE2Rx0TD zEX_dj6D|~Y;oU45k9-NNdO@O~UN)f%N|FKPNh-%4WRVQb340hYW6px%gj$ybRDdF6 z5tR7-6&t@!fylPf0Jug$1dO&EeWSLIX4fU}V%E4HisT2P5<8*lf|_LETsPg}i*;)c zzPrG{=eVTASTW!wHnI-io8af6N(CkXX%Qn=@Y4p4V2NyBpUC*UPivwj@6ZP-Sv+u!LVc?)M(px4^eS}38hi#v4&X9KoP7DV!UYfUAoALQhvD*H`#X!F>O zs=B;Rjr4eOFl-{?-T0>3mI9e=_ZX*|Z1EzOhTP9dtfxpC+5HHa*X6I|E=D)&DWZFA zny)8V3eauCPwKydQT&qrNt&Yh+UFJLBRj+XY$%9*p5t2qntQF*|2)Dvnqe9T1EW#0 zV)~XwtZ$;2PF_Oi2gU|TTd7~oFKq6X%!VvT+4-PkV|knZj{JCRBj$OG?i)X!UcFL@ z5;&FGW%U(kMG`;HyRJDkk%aqIudPNrR$S{D+n#&I4i1Nu6{+^zzRugfO!xPtdha29 zEY^8(WtYIK7>_SjU*4d38Iz)Z!_OJ>JabDv*n{zLJZ!zUvZ}2dK1ILlX;$kB?x!e{Z~iRJ^j*VW+FFf}=^=$u zC4Y$j4rJ`@#sv2Fv!l|Hy*+GpvVqqb-Sfr=a#lgExk-^b+J2=n3nBDfrVWbRAdBZ^*GiqZu*1mIrxGy6t z{wo6fAPiFrMFJyA>;Tgn2^1DOnCq`kSdS40h^lV1=x(VeXFohfor2rXVxOod(BxA? z$o8pz`i;xPtH`&I3bpQ4q9z%duo}7&H!C8ayAcN$G|nxiyqx5oqGWn>POcCu0q=DX z*aiwodyVMW(kK@a-!Qm|!0HO1+J)z8YuG$I=z&3^RyH%gdrs4f$&IWo=V$M~-k9nx z21>j~GT=*OfrMT%CgDb^lz>uN~1L*qG?-}Hl7(FUAypUMLC6?s3&I;uABaPWg zgBcban0dS;)D!Z+A4VF@-tZ}%KH=1)FO_sq9ywm{=e3~IF~!-ly$`ikfl=L~el|QB zU~OY&j}jzMPEB#zP-1@<#sU3FJJ$VVrZp}ZoX^d-SB=2s>N39#{-T4M1p$xs5VIc; z)|@o7-9vJj5DMf61>ZY2ml1rQXWvT{$egUr0D+-^_9_P*}lKch5sT*EXdG##h?@fRD6Q!WZWQo?OHdCP;Q}Me-(Oj=igApaAtRrwW z+=v~YV06t=koqHl+1fABLaRmt$ ziZ2>a+Sf?8nf8A?WrEr;|MXXcdUXhEY1%jOaN|}oI|}tAc_QEm)Xn9IRUo*yh{4VB zh?UJXJ{;QrO!;A1aiY6^@X<_PjqbIu`Rz2L8%q(LFt5I8##7=n;jot@&Dt&|HH23UTbhYlkOFl_5K) z;H6H^Mtgii4Hl7>lBPJW_$alxh}vt4(kH_M>~6j$jnNlE6b(EE5c%5W(%4HTq^LnE zp-`)rSx74rUk*A^q-jVkW(~6#)?@GyPp4yddOz3`cHyp>!stcAx3DFIVAe+xWpbS> zFV!WyGb~3Vo@9`GF}{nY3=40p0O?4h~6H~TdS{s zll4l{Ol7sE$Aoz|7i+>d)b|IKM;yoA8DCfFU%Q{z;G#L~edOMalDSEuvR0>4m(pgP zPPZf5SlT|J$AFOT2yHvJhku&vccb!MRo=UG2LN z8N3BQwLZ>aSIEs5-M_h}KPY;|RWRtChC)2K6=ssG!3|=Q7T45;7SGqUNUcR(?^S}H z1@Oli`c)k*n`zE=W;kZDO{B%2VA07mc)3`dSmF^2?``oW%eW^b?zgQH_Y?q* zG%iuX6FaQb56tyFY~S4Jv<-e6(itvq!}cN0+uu1zXuJA(;BMSXK;Y%>;ubEL>?$$; z*y1Dt^)V)lTihnqjiX?58n!>b4cmcEw!bq53f{XsyP$~Q?gd?Zq-GL+0n7z61&Jtc z+<3qs6qiptThU;&BG2artf}^|%_m?xd!rt7n7a6=wVe-B-qJG!k)eVAvN#-JMl}rZMJc$y$ zhOhVlVc(f3>(o?qI%9(BkKAJw$qG5UDCBiUxZzW6u;qUGJ>+*7i;_4IZSV(_);pq> zf087Q4`6E8{+?p6s1x`&7+BOXabo0^9*L49YOIWG+MLvmpTeg@76*lTT-5=S?AIr8 z&9_^;U)8*B*?d@#$c2&bDT1ykEQqZB3SgaiLP{JHb!D>1gotV@3hSByRRTk1-u?+6 z6C&Q#V_RY5vE2S0WpL}App#;oeiu=offy-nZb9R)Q<0Xd&?P&kkS^Fvz!}@bPro-d z8G1wko3@*>%ak`MUU8oNVhiEx7Oxa5>D$M0PpPHR=?($+&k7mO;IY!vK2iQ<1~)vP zTrV28e|7|%?Fl%1OSJEp{a_!V<*^MgF5E|S=EWvrgM6f>wy$-dpzMW!ZZeN>*EQn- z>|X(IWesYhzP&be!CY6#JGWjCDy4M^^Vq;CC)bQUoqRPCH1L{oXh~d^5k^$sCQ*EB z57AFitjMc!7C%ZU0%91uu(mPc$-pM4?6dCWX z)&~?L{lTwjq_(0?hroIa14VWiufDK_G`0K%$tmRs_!_8^83Ht3(*?0~`I48&Gk_T! zA_gvFCO@L)1eh$Zl5Yez~S9`GM<9%xfHO!Z*9<%VJ$- z(zbF4HPyw5utr_xO&-yz>X=PBlP>(|j${0n&irl$wggQ?Cus-35Iskx;jvlOA>9G< zDLdCeYr5@imR&;cR@KdESl95$F1TOa&)lA#b*qQ44}O0SYALPUqdv;h2asPO_T2<7 zQ6d#(LhIa6$L1dz&h64SVsN8iJSemo>>4tf#1RtE9uJ*_LwMNA*i2>^vx{qRZZ}5v zD^QSC$-4id>ry1t^eca+sZ^^#rDV*Qv|NWkv~4BXCziD1O}d zd2|)oIkpW8LL(;{+m=u;T;+n0D0m^kgKQ{b#~ZpOw{)dAw@rQ7VU>PfWEN%eop90r zoF7_afLUyo3-9q-y+pk8^PHuVs%h+air-Q@Y1NmHnQ1~v0{MjMO|BYGPrx!$qHWJa zUe|TRn&~qeO($Vv$K9+C6Q3grn$wSSs+#DyW^pT#jZ-S2(xfuJJAYcMthpr;_9W$; z(nzAnuTURB$Lab0l~WuV_bL~{>XXJVg)b=Zvh&Il;D z>GjPO7uzmq+eokH^UkdP($I%Q(2{u2B4?J6tF7ts3KxmGnf1h7Y!1B#VP_Jta8vDe zv46CBwhy~wdy<8eR>dG{ry!C)J7e45^^)N^t$WkIneNx?&tp*N@tm`b@^$L{M$byz zN@1NvG38PvG?Uqs_&TZcUqaHi5RA9T!BJe$;4Zh$Vfqmy>ZjABeKY2;lHDA?zLz{M z$Thj^!df#pk1FCO`1o&mj3Kg@X!Z!L-Y(9}w|2MG;0jKWechtwr+O}f|FnBU)@tdj zs5eh)teYbB#RqhUVHUSOiuzNk`%Y^mp3*kMgQULVdMBLokMQ{BLQ}pmN|LGOM6_`d z_2mcHpMDekIh8hstzDq8COQ`L#63@L!ym=flr_C(J}IM{sq9py5bq8__JvDKq}W2r zEoLuOi8nKyM-5(|NIrX zisWspVEhp@oN}7|AnI73G2x0y6KLNkEx0ZnyhP4*Oyix@Ek9fJDvln!t~c8w*Q7|~ z;`@Jt9447{tFdA=lZyL8gw&Mva!LGPB)lyBOjaC6V}~Oeyh-Qd0E406fmE}VjralA zlZ4N~qdu&Xh*1MJVn%3=jlU}5LRWDX0o{3fbIX*r^Kc9O752+m8sU@w(5G~?xU)r zZb(PRmeoH@FlN7)VWaN{V<&0LVblL)O8t+G_~ElDKBBS(ZvBt>eammhG5vFX&K$Q4 zOZVQ*ENji)m}jF=X86j@Wp5?VKW`=f{P_N!?Yj|Pp3}S~?>V`24sHxGcE9XD*V^%B zJ)=}{vt`-CUpFG-2eX#?$sF>0X~+_63&foN;t_xU@Ab;YTyR6j&ODG3?LbMxH*Hs2 zRPRO55?557>IV<)_)Sf4e(qd~cEI>^sr6)-1~Ft&HR^;P5^pkIc7BaqbkDF(21}bQ z75Tbqw-=o44w*44TQ9Wct?$HcZ+wgQqqj#FpA)_3MN4Hrv#wM3rGI4YlJRK!PqpT< z+O%4Xsf?a%y*zC2=lb4QS3EsaaHf3kyxVPM+Lg&$bMyVbTdQ{FBqn4?+!s)=+?PxGVc@G z7>cH>_ad|TvGQ7{L^&w&jes|7jq;jJ5*`>Hi_A%4-I?VROaA2IfMck7lw0f3zS|oP zn_A*)BjoZ*9@l4P*031<7;&R6N6Y)3o)IQKPSX1))%S=k&5H~#&tA7|%ig5yeiPKo zxJkyxe#tyilbaWxB&yX%fo9fhXx*cB%i`#6t@EXxsS+fcXB%V(!;TtaPZh&ds-kxO zuTFRN&&XC{`cD=5IcHC5h%G>uzaN@Jh9# zex7&ZDhmY7inmePWtlpwH1f&%ud-*B_rD*R@;kOCRA&1#s$;6VvkYtA+s?x}9ZdCB z!RIN>W1dLv>5G@}*@Zr-UH3oxy7slwyX1F{*Z+p|@``$5J~}u4yf-Jfrr(A&?=p4I z+-`d!xLJxV`hr3Tp>e!%}AVVwe-Px%evL3qWrcTdzl*50Y4(--2@^Xo0$z%^^yKO?dHnvqT4}FeD~WktI}$Y4>HZ*N>Njpyru$?EH-4T#uVy~`{sZ*H*bfc=$%r+-$@(uVM|d5HGvaGjx1X21_MZ4M z!amUF-0?F`yHyFoLV2@!?wG~*5q%cC4W_JZhM8fZKzG%~+{6dN{{GBM<|T317kiiT zKkM_ZkJ&x|Za|U0#x6_EAD26>@nE9ogDpKwlC~4n%Tmk7F}(bj*z+i^ zlKq5}#1DprO&@LaQqA=z8$FQ+`D_;`{R$E*p*mWE2tlAuQKu3Ke!)|ch{x= z=L}c<6{U6(dkfbRxN!L7>{j@7LHM7BvD9~Lox-ZedCV}yo=$n(;juuTDcyg2!V3DF ztN(UZ4*w8msqXCZ*SwxSKV%BEI-fs*h-Dn%%jJPlZIbvLC9*uSTf1B`Z(aQM3=T%> zfBHMy^!({BL7!|)2^yLS_6r7&3*cvZJXmNp>h=##5($X`LpnKxauS&UHARM7yQb#Z zC}JSsPX6DDv#X9!po8R(;rLdYW>6}i$f~ViiIT@e%FYD^i?0wQTIJQB_f`7V&_`fH z?+JUpW0qTR_f`|MXU-mVdb?+#TDMmhc1A8AjNSV8gv7DCT_wcNsoqapPg&hM^S0?7 zeK{ohPo|v$eKgA7P)~6_GxlO_IGKg~j=UBi+pNsB^aIjBU$wKP4iYap$aq2h=ryUZ=OE#up{easl-3{9sL9RE|nV4HRa z^xLB`9=u3k)bnT&N|el)-KmYo27$y4Iq zUxijSLteevS4m>CaaVpGf0JzE;j24C zJ!O=Pm>te1D;YysPrh7zLxzfy)U9J_t@wsSp2c(aHM>oJg+T@=vR~Vu+lB?h_FGM- zZ73Mp^SD^e{-?1w~vT zD`pp&70Q`9q^U|KhNdTbiJFct$>VU}tWKjwBp=CY_Vj7=w*HxCDmOGzjvB;beg)ku1;I{!Cr-$53j6G`n~ty%GZ^3Qv?EZQfFWo$k@Cp(O?9_(Nu!7r%jE z7$}Y^R5t7RO5Z}_D*W_2#{IiqZyk2h{{ne7F$^uc9jP)w-iP`nh3|3FckyG(+%*U8`5}?@hTVrT4VKYgR2i|3tEvXO&BDT`VcT^E3k@dcmO*F{NQ?vkjUVX z-Uhn7coG!ZsTs3K92#>v(&F;esA;KUc=s}O(yt^sTV1`r#FH?!3lFDTbD5jr`aBN> zZwLV}$BaQ@)gTg{5>cyR!!HuB;E2Y09xw(soY;_diUY;@h?7K5NZ1F8cP=PcxX?nZ2|!aNKSvkck5J5=L`pS- z-Q^wQR;RO@-{xiR{{!3N!1qEev#gQad|q*B3$7G5w!jyc=AM@jTFfo1$9QRNk{IU) zr(6kRnkD}rUa5N*)M8oS`j8l zd`PAY4_$0nB!3J#;C6Z+u#K)W@Z<;4h#=7aGeRPpn1SAQS z`YmVL>Re#tcUmwwwsk8Wd`@?SDXj=;fffmP!xX6YF}V$uB6-jV&p`szOVi7%xryW_ zcpnqx?3z)vTAXBT&wMG5_WUF8KA+B}Z#}o;)0k(Sf@b)0lP2E35pjG`>JQ!Nmz?C% z7lkKYk{?`GAGvmq%-!2Eo3b%i#Uo#8_k=%D8PFcc5s#PkC*MwZG+#2?Ne-PjmC91D&sczZJ17+t1R2Vahs`I ztlP9GLPFDgR3Eo6VsIy9{8wpjzJNm)G{wX^PmfgDWV%ZJ63iC{Ha7K-a1}p4Kr%)J z9TjSJ5sB)Xo+X4vxc~DDt^<7jl)0?&Tzx|A!F@uGV?{^qPFF7porNv8De{Kym7~Kl z-@Ap!Ut+Nt@GrF10^HsG*kHymd%>5Wml`V?gl)kuE`Z71dCFXzCGS%q(O7=fbW3BZTmymQupmow&A)B%Qn;v zew?{O{*b(h7LpmP-;KRY7Uco?IEu%d4iydfZvC{yUqttd_|tE;;ny3w0XK+%3)?yc z`9WGpsSqew0|E|gfF}vVDHTFD|!B*^-klbZx$LE{t(teVpS55sk;m^5qk>- z9t*XqE-$#(tIUJa%3?L)WhyhX-eI9Pgj(y=q!Bb+R#2wy-9pP z^+Ck)VbzsO^OAIX7%+yBDiRQ0)D6Tqy$Sh0Rs3kWwZbxZi3myJ&?2*Woiwmlg`YPU z4AnIa!Uc}bwQzN_BNR9J4Qx9YIDvf)J))oMKK~>#A*6)w9c5S;CjkcAyO~+I-ZAlq z#7{O!I8xC6fGs;S=C*{p!}{Q6dl!O>$X+=GpTESdD-1gJZcfMOZ-V0~GY|Y~|ASu- z2M^qTj*sD-^usYgh^DMuj9SugUX~U(XG(B02InROp#(cl&_$>}dB@0?7!8ILC&{(@ z)f@Mz0EgQ`dOjH>^~yP$#WVCYmW>t+4kCe?Z=P_iS8grA~xUvhm zjm$%W%9#P(*&wEb&si`y$iQP@;mI2i+=xRJQTWyMCdOcjTQ%_fsjT-1Furd$JE$1A zChS)(MUa=S?dnCT!#l#g@=F#WJ5-G!`E|DFzWpF(PQG`0qp8<~z1D61hl`ulcdRXY zbzwJ6YYpK?PXw7JH=46n3FuSQU%u{#HM`IvRYS(za{X3bT-1>ooQrt9wY%y{HCHY! zn9+CB_Qvyl(dy+TE1{>-I+)=j;%>zEG5uY!o{>v8DcP9*I@eR8+y2&8io=^U4;-)Q zeyj7Jj^y*f*YsU#&sLeu@I5XwX$^97dFcKw`JKUuO=5BSlBQ+ttsnK`i_)ckc)gle zhmzq}yt-`Ui{2M%Vv-moKTM98&8&|PT;JlouN)4N{}S1c{I~qe>FzSBvm%)HRTe~@>&4( zhun94?BD&aV%NW)Vbzyc>{Y&A63bz3A9*BRQG$w?S7>!qAJzi6Q-rE>gYrInOFcx? z!uz-3vCMXDaKj+2)JgKr@Lt8umYZ;Hr_npoq2oRc@}nRHz`-r2wZf$^GGx1`mJ2-V z9x%qbk85yiO|x_AE@6wj66wKz@he4@K?IchvV7Cb;6`G$@Tjo~zgqO;lDJ3o{&ZVq z{CL{_PGyr}-sG|k0kWC%X&cVlFr-cVHXv?4->@ZR`x`Jg$_$mfsSK|&u+XB@rti5E zPDwkrLl%tEX6!Ab;-=CG=K;8K^$VlTa`%zz#PyC1}Z1 z19~+y%Pj1JBtASI_o_+KzpDB|S!5zsAE*8uKF8X?OL&5irUuEDd1q&|#BVohG?2>3 zUEE+e(8ZrzWu*S7X$v?6JqMK$+v_Ni%#q}H<+TK8c1%>Y~=@3`(=zj`?hir^m#t-x|2*IAK znMoX9AXQFSFHm+GTsVSO%Y07GZUk}1wB_C0;56KmpfAb@E1~Hrth;uIKIf=E6OLN5 zZ$GhIm|$zeuc)usllAhGY(LGBvtJm}w=lM?>yE+Y3E_-FRe+qKKHB)2q6Xe1T(-Yy z8@AtibK@4S+uychd57Ty#bqjjKz{l?^tQ=aAlIh#y{6z?8L^NdK{B+RKF`-ePI+O> z9($jct6Moja?^?s0{^ef+;0_v~vlMbUNo9Sw z=DuYlREaE&9@Nb~l6c`tkhawI-t?6A#2>j^+z@rA-B9fObnv(->CSFFJ||El|IwwS z%MuNvc*_Kh=tDsh z)$PZ(>qTgMjc0AO;9lhH-SU5Ll21nq6cN87&q< z^NR$AqZAKC#S<5lwt(wS4gX~A%yu2-sVIEUTe{6|>J!Hfw$t*Tw*i3!;sOZ}Vv@Mv z#mHLTyG}YVODB7MYiBrVo6&LXGg`4)XLa+VrBXkL=CYKkh?^Kb0EgcOEM#^F=ZrWD zC1Jhd7e=JCg@pmblA>aE1yO#2=pABWz)`3a7a* z-ry~XF`v~K+uP;l`c3^(>mF2wV``FQDuj= zq(Dh{=)DGf-E1Q9DEgSfoWzo{8f)Mm_V2&P>{#yi73a}h)2&RfxDEfB(-snc%;~ZX z(>83Wu>FnOuq|;uZ-Z=u--cxykgMBP9Q`)jxBI}f{W*t#D}r>wAfZJb1$KCE?+hU0 z846>s@w-_rMeEf*!MALXhC@K@)lDP>#Q9y2Soq@3tHGSOBK{r1Z$~&65M^O|rOD`y6 zYRV#&6mS$Gq-r{5Qx0?a ziXViM{{GwM{{B1Kv>;?uD|_4MM{P8h{8%Nu*6B_snNk+6cz02GEjkU3TT0eWCLMxe!qXYWRO&k# zv&8Q7%uUY*c1b7+Q?mbQtE_je%5hMVQakb6dN*QOqd87t#O_jb%(ut`PHt##z4Q#< zQZT3ed7IU*svEYVX^C5V7sl+jtvo|vtc-Z90jQjM!LUfQ`p(GZfdMy21oXE~z)OUU zs*CLd!U+N=of){&RBOQ8tW_4H9kSq*Sr7Brdv3;teRQ={L@UmQ*bT@hS!`llnHeY@ zPPw+e$|&WRypXkMC5s;p-hVZZtw6zlji4wTQ>GRLQn^Yu2?2__P!P{Gtr#4`Ng_4- z0>!Q7M3CGiRdVEu4#fN%y)ddGwPLu5qu#f0a}0xvP?1atjB|@8Bo*R1&t~-sAI6`s zLKh1^!N8NkHwKv<>fBy~IR64o{UEBFNZi6@H%!|QFlfu}z$s-Gcd#8P zj>MH56vr)_VHT#+QaKl1slZ(&P;gbx9mD~0ps$pg$jGa zaNWYTvD~-6v<-P1HvS=`xJ5R5&U1A7QF7BZpweDCiQv}&WZaq)!Un#6Z;XxeC|)kF zgpK~>ve}lOwus*o!jiu|%-c}TYi`o@E+Y^Hqm>o?>p!vU-l5X3T6utye#GJj+`xe< zFNiy!vDYo0F|3Q#q@ck<2&!4)SvLCnueKmu9);%_W! z8(xdV%bF{27bFh-vUs26!*}B!P(RGCNL1(WDmN&n#)<35Nb{=);4^l=+B4Tdc(iEiN;gw5?GDafl!x91K&I0qYuf(paiJy z7iU#vl6>RRb(`$+qrd-d8-9D)P=a@x09)&%jq)z4XsoZ|&(g%Z@C+g^gg3)2mtO%L zSaDKh$~9q3d)mDLenrZilQ51B8xyt`3=utVAB7kDyIgQsNW?^?WZ5S{J-b+VXFkE~T%%Y56e~km&h~O{c zv)kz6&Q)u{!AvySV;L{OU97jGclP84)#3|D&s@r-TGPzjIW>#&L8A8mMa(G@cmbH- zaMu4Y$damJuW@^5F_Po*isu^tl(q5LCoHoljp)gu67?l}Vp@kI_<2d$X16<7wUe8b z_%M_peo&ZBZZe!~wBhkneMtD|8}R$Xbp>sTVVy|5+ZQG=M*Fi2CDf& z=q+%4uq;?42brEArJU`Xz58fdD(K?kLBB37;)pmphqcD1!S?aP+`2_c^L8fMhTqN` zIt&?vhYyf-D6@+sKki@HPxE;j23HZ;RlgWfQyihFEw`zRZiZk!R@0_b3MXX62K%=r z1E#da_c{5vr3-(dIg3o2u%-ia(KTSzZOkic6S=$y>qlFI=;nEFPT8!Fw~%Bo%W8mT zSXbZ7Qhv}z_>f8bHowION=3Y<%zv)K6-$Clh$4~VRSG4vSO(R%Qa_I5%20;&4qC&| zzPFz|28G^Lvhoi8QfHlT8tsfb`;?T6zf2QqU z&cbbrgfESNH6~zTdmzU`;Uq}5$G-r-Vv4j4OGsR0w9^8SN#b#9$eYD_g3UvcERfZQ zE?P$aOera#GWZMmuTR9vFQx;bxp6N^bO&I>>Q&O}sa0pKS>yrJTc~`c*#Md)azl4< zd@DF^?@;!f)l}*~jgnhLDHDiAPtUN)-8m1D5zz<46bBWFgtU`yH|p*<9Cu4b#}X0! zhLF&k0AQAZy#hAJ!mRzQRr0~MBg)@@try!-^Eb)d8O;PPkR?^`lt)agcx1))IQX%1 zqivXtW@(g@tj-WBTsn*y-dl&4_(b zE4I?7*tDnrJ8RSctxI9Nns;aoPmxnt6jH_%?+j`R5M}x-LHAZQrG5gD%kV_AiwZu* z{_*(USf`Uyvj)|=R~AYS4{9KJIsz|&2r{q>cyoSwfc+yL!yEacU;C@WVfoT%$@Xoq z4vCV?2Kp&kanu0+%veXGuRlv`LjmMll5uF1rR~w&_W6UW`Ind#JQ^k$8mBNlLy9_X zE%gJiy-HAa@u9lj`bBhIy{dh^ttXfu0yDTcsbFkR$ehmE@d+F(Q@KTa!3Jzj1WDGts+B)m|PsFc^~BT1&PZm&`QuQ;OF z;_wT8jq4>P|6aGHhGWw()Rn2rExnled1wn{vEE}G*T~e zQSyDMY5ljUu$I@}=lSSlXHRa_@35z2&2{IszxREL^-;Rz+t1zFgNUBdo)#_f)HhjA zFOq#4dZO2#=s9iwO7bq%A71v{?oE$l_G@SP(T^5qTurUsetRFA;x&9F6|n?v4PM9_ z90a8-N+Mawf5lGKFnT2xb6YQlwWHB2`91RWx}9h7&ffQm7ympf^D8~QbazPW$*d=| z9e!LlYCffz)L*a~)Gtk0p-D0IgMq7tPs)Once&cl@(yv=us4?v#_##-tziXCV?LcR zV=8MLKJb5n$0h}Pz8Yt-PgrrWU?|gP(psl)IaXy~B`Bs8mDbYWhKVDavG${;d>r0U zRovn;@dctiAMy1(;HqR6-R^u?{qWi1x9qO0%Mzq|+2v4&LYLWdC~ffl^fMmML!{+} zP*2jRbmF19TfRHW=l4C=f8d_75=tggUOL&&#i}H!zBj0;Y+RI*?q{D-rcPRn+7sHP zU{Aaw$?sX;MLu|6*R}Rk{}$dXx42Q_up7lwSlN4)R=)It)Dv9){Ssb2Q0d(f_MCRg z&=Y*CGVc->S9Xs5xE*{Ly44!N-9LXZ<@n8f&P}Q8t+w~~oJsrtZ4b^Z@p4rEoYZ&k zdg9HmwcltzXV$p4+V{^sBU)ayPn8vQsGd{xDYyE0?{V~(<(Tk0ZzrpsVfULm%U(qG zKD(!nqdh4)G_&N@zypmD#Dqa>9IoJ$I+CnZd+Hz9LEMoXqjH0$r zd~#VWuasrCZ2TySDEN8d>>Ot&V!n^$BX#v${=ds2kuk%6A|Kz;@KI)jh+sQ9_Gnx@ zDBktsU0f~tUBihFo9MTSD%;auQ_|Z~tUYPQx_D3P&S`;z|TfuOzEP6{43>q55sMwNdac{Fy}r_If7V$^~? zuw+VVSAJ+qO6BA-X^@uSXpy2b#v~)e>XRi@XVmrU#Ezw?Gvk8j#XeeI%Oj4$Yfimy zg|=_FUqrI46=;<}Nh$BtF05F_veRD7VqJSaW7x+aktZfNkqk)^-U!FpCDomCn4ob7 z&vc4HNwLefjEtej6o;co2CV)@7*WV+KN(8~p=&I4r+8#UiGy_D&q)3#w(Mt?)9GI` z4jKd>C>dvAj(%(T+Zox)rDW0){>D4Tuhp0OM%j%KG&P&C3aZ+pxLK>@Ao)4deXj;F zJ2vtr;q6F24FA>`oTOf?%kweQr_go=K3G#cbdfMh-X*TS*5?G=8iy_@yoE?X^xTu| zP0b^fS*zc}wUWRY2VJOfDHk7q0w=L>V({O8xigZR)Sl_cuj;*tjHSg%q5(?z!AUBG zGZ^$zUCZpDwKDO}So;rt2rz3gm&6^ewfo23x9FN5v`4`!RPPyK9#ca!A-$y|{vi za*SlNEGWd{rb3>Kv!I^2Ij+{T&d$AMK1O;q`UQMOUXFdFIOy}I>=BaWgJ1#_Z`SN0 z?;r*FwbY|5NejugN)SAxvzN(h+n0Jjk?%~!mq=X0@Grn4)YZ?_yC8|mo338HOak{U z0lRE<3uE?)TB-{En{IJc!8B9747I`6i)xiVnAW_BRsupMB=HKV5|Vt&{Fws#er;U# zlHH{GfH*V|ncf2~)Tkmu(@ABL{6hayl0;L(a z20oCmvrs<=Y12(alX%MGmSZ^{qK4CiI)u*J_3x1Cxxs?gK3E`i<bV6fNXB~ybNRSi~OU!m>PBmJ!P zWfc2`^`}&H%O_nhDeepB_fvTEAwXPQ9A2O)N@*T+1lA)2@o|MgRhU$xG!U5-CT_<$ zMfG7YFs%}OQ8Nz)M@?x`h{F-saEg+Cc)s;Q$TB_awCmvGI4)6dE;Naw>EN94vqoPm zBl(p|eMi^+FEp!r#J@1yT1YQj#^n)i!OgmhXxqt0(gFhZlR7-;6$Z(jL3ih-_qs@Y z09LCPd>^vbN1x?+bTB%C$aK(V@?v@tEi+Ne(s^^JTJVldCBG6%-3`-Pjd8)k$Dbb) zxCYmAq-M12+$?Wl%&<~=H|Z>9OnVE!J%fG`c_U{j?SQ$v;>8?`&5UKxJAWj+{ToYk zov3`C`i_Q<|8L^a!NsX(?8@kv86`YtvU5)*7kJ;)5zs|>G>!)XYO8VlZr%*Ti((U3( zb=_9QzL6x|#_TzK{dS{@9>+dn98C4gafPNWbizbvx!d-9%fI}$)$@Y; zk4=U1xlDbep4B@(CcGtip}Q|_JbJmOv;w?g$2-J-`Pa60fq!&d$&aa%AN~UylFW+u z=Y}F$oTep?-JqzO^?Q!C)JFnKHEUQe`Mzdi!Iff%J~N*lPnZ$R|h{RbyZA?woFgpAz=elEoX;Ub*bm>D3vQqB1<`LA23h z%>FhZgVriCW4koHnDBnRV;>)6R4S*{8}b_Ro$3GTiQI0q=PLltbGV*snIp-dx zCtJ!s$PwdHWGlsM7!GJp$2z1-ZEyLe(FPPpP**=eXUWv|b|nb4CZI*5yWCu8I7q(i zN1-V^5bX^|P#>{$U$<`#F|k3Sl%~xi{Fe0h-%ZH5fOr?kj0t8!A2No4K_onDHLxl9 zwnyt0L#063qAh_psYZIt{g3TUWQ5+=JVV(WQ`b@%P9Zgi`JSlnq%8~uP`a;`wFKxo-E(QWwcvY{JfhD?I!0%8abQn!GXj#N&c5vC=p!U3r^gbi!8@%MF2Uh}Ajuzzqce9`Y$7T{(@ME8-h@KOgVXQ; z0r9ZZ4@2A)kHDp3gQP^v)%X4xg4-sl$bLWl`>&tYFGECXlM5s}*HqUG&%O2%M~KJ; z(iW@R;}`#_36E;f=$4(JzA{w;g*&{xy-ixW-~kat#$EJ-icl*fk4tuMg)Mn%vQSEo zYnuXFJw!4@k2~7X&9ZRZ5}KrW*-2Y5?D3RI0#u|x@bCAUWT9}H)z4kHOT|GcTc#RZ z8e|cp^h{rzjZZ(QIyWvVsB3^M!Pi1aX;RIq6{@?h9+(N40@sCecjZ1zSb31B9&Q^u zQbvhT6y8!f)6E6OI8tn*gYkv&+v6S)m_#L0!bn-~kStQEtbqgKN5#=&pyruU5M|oO zDtTu!B}t&fK}F&Nu!wKeynxEcSbOxGly&f_iBsG~mV@&5AH8IV4Z+27P(QQNKjr14 z?)Oo2#G}wOi8qxv7;4epVQ03A@ibF=uwO+Yg0e( zBsyM(R%J*^^Bb8MPu#YQCSGH~Prx(N zzvn5dT9jzRL-CO_U~d^e_wHNNmKb2-Jm-$q~1$o%`I_IGo4 zNxRWJ=K8bJp5;^If1SVq_$6s)o1TBnoTL`&yilUVO2~DMzIvf4PO}B6PP{pA>p7i$qdje)aQF zcqS)Wi$dgVq7DDidS31pVs$V*lDiVf216>3(<{$emaLz2rgt%E9OV{<~PwdtsG zTH_>HP3yo&jlS*))+QN&j~P+W@|dwdx6{PrN>vOg4T^Ss^lJ3cusVE`@7T8D-k#no zYO|zo9WI8AI%-4Q>h!%dT0c>e^ecbp>JN&(L8y8=k!HjN&l?FTO;4Ktx#D#)dm*;_ z`BWwTvxGG~(ldJP*%STkI^=YB)WT)J>ifNl>d;_nVs?@63{7&Sij1n$QG-g5d`wiT z{~Dk40`0d&aX4z8q5U?ACDC@jM7?iPCA3%}{>&)5I6D;=j$o~@A57i3{K_qAMfz8h zVi(PJ#XZhmvm2VIiahBc(Gs=6L`lM$^T(S)i*Zyrx#@*ebZ4Wh&(TYue0>uxFu~1x z@iJ1Ac)innCt0N*LG(uSD3RXke zNmOa}>u|d+(@yRpmzTTty#2Yz@Fn)tf+l-mBN;T@&#M}=2d(&>FokfYlapza^VJU` z2D*&FZ2`*9ND$^*MLw+_uao4|D>%Zk;n|CRM2w)neg?owqd{iEK3{lYPP@uh_E#nUp^b5|OOtG7kcYH8>7WLl0Cy~6v z`r!OTE?Qz%_~uHP5y>x@RM1U*%J1IR>!bDAe@|%B+?Knfa``9AVEC z1SIdU?)cxrk(~-DiK$qIfWB>1iums&>L^hzRZ`xL(6P#Q%lxoOaOboMn;fbK@bzjv zI>PD}yd{V9lLttnMTRzA+5X(*ws_ixv&)D+1UbMJ6L>+X75Y37?pVvOZF7aY*wM?4v|?;VGAHlB^W`*9*0Hms*~Pw_>2@ zVR4I>+)3ZH>5193e~7Q?x0Gb@uAf$Du@Goof;-DBu^Hy>vQ>8Y(_M&HkxbC_?!brY z4(HX|_U9bH&0E-hg>>0eB0^?p9V;{pDypSOs6amPR|u|HZkB(6H(xqw5(QEuK9(*b zp}WtN((nSKLDm#D4HBOlztF0%;-p2?yC~q`-0%^`rZPQgRNzhN4$Gc-e`^UhDv4ZP z2%q*dtrI~cnzAf)-zwREZaUwco6VFed$y^392)#&3CZIi3CmN3K~=b@#_<7YR;C;F z<7rOYP!mg7rGW0s%FackXR0+n#>7nsee3Gm$L_}=9e)YYHAMqM#Qt$u5%#ez~=2q*?5M4MV~pcNxQTOl^~x=~sO;iT#og_I`JXrB-5A^a;~yB?%5zcc@<5thCzM`r_Pgsjf zJ;Anu4`0SzZ2V0myrNdhuSu||cS*~pv>0TCb--nT4NUS)YQk4hH7lVQnm%%0?x?6^ zr?9+NKGuB2G!y#S3Xkx#VM6mZV)>wbP6d(S1umToGV7wM8%?!sHM4`klb#bg9u>#Tbb^L%l`Ozj`w6RN9)|k5d><%yt?p235h-K*Y2k5^y?s zhCCA3nA8i+rt*N^^0OxTp|VeE&59Zk@D!>+5-)im_l{NISR!`>|E0iIeH*idiS^#i zB;hSrqa^WxwUeEFdcw=l-Bos@%E1|7Mc=c3&;IM*;`%Uu|C^t6CR zEny!k#lmEza8Q;jD~UX4ko*Q^ct_Rn@(g}aNS7yAami=&DfJ5WId3kQ)&^)T=@q>M zgFAs8ynLn<4vNxa0*iu;CWTS;-+{nuT;mRX>ven3HF&uO`x*(_`T$h`fZz8qofsjg#o7ZiDcCl@9>_yaE}TKYb1Ly8F6-$s4q zi#CU&ETY_BbA;_Z?!NVGjD;||O1-YW;7W>ySENd=riMHq8rUkC=c-K7r|ggakkQWO zi7C%VuzP1R`_`ZNLom@h*N5X{LA;?rSCimOO1|lPxM1t`imd--|GF4G-)mTYw7Bih z4G8`b0zVN{Qak{;joW#b(&Vs8b8K0yLmTtkU7b2>hcn6i#W^KR2XsE2J9@1 z+A_R4$xW~6(xCXdie|UXF3%uzwPuQwH+XVxq_&AMV3`AkL2%U_?5nw8>?jC6Iu+h} zcLw^x5afqVzf#2VCk)uSjBS{t?&Qr7Fo-W*G?h-Ny7&V*&xwjNS|nA(OP1&*+dR0B zxU7Bxez^h(e3`q^&7XbrWT|+YN3lTX9x#fq_?m(j@DCBi-B_7fvX4UoUAP)umyr0q zMGUT>$57CDGlOs0;TS{$WFN1Z^D;rE;Ib_;vM|qx)%#&s{|!)GNbv}$Jrx?weil;U zH@0AK45M=%?N&*qz3J<}Fd~(LNglvDm2`1nt(wL+5oTNTDte=`XKdTf$KwS09;>EK z*?%dXC4@DkV)iPtKRb4pXestJX-nrk|nP=*6bdFWM%i0VZ(} zd=sYZmDWrZ2{1oi1*@OkDWyO-UwtGD-kzw%ZxPFVl?U9?C_!CG4bo4j=mC|$O46hd zB)o!l;|x2y>`$qoRLLY%dXy(BEqbX6s$V`fNa3J2iS+>mbWUrA4kkNmrZL5MyYU)?ni$*Uo3UKP-lnPZOOW^Ysvm?GUGeJg)X0)YCIxF3M@3dAEZOhfY z;ABGRK`V2BZFP*C&z}rG_-9{&AG&L0R`9b!)Xl9V<|>0f`^ClgERy$JyRm#wU4yF+ z^pgKM3x)k56TXgu*Q*uT?$aCIOO$MS;+)4^x%vfsldXe(z&FS7JXrvzl$bz;cLVC| z<2eBsigT4!H^?Um4aTE*$?vG#QdnnciCC#3*_4SsAeldlm!n*u^(iFOzj~!0xJLU~ z{rj)BOqEzwoYS_J4_T3{#FkUd=!I9k-rWz-*4f@?kk|`wnf!{7>|JIx%x)T;y)!6} z+(b<&?sN?dJ_0}&h<%7^$ZvAb^;0b-RW2~I!J-+vV(^BWgj`>7Nt9(-im zQe-~mG)cL78X2(wES$||ujQE}PmoBLv4_BL%&PA&UZ^-8HJL z9HguhMqeO{AES$)oG2K|NqAq~*njDBb$acl1$by~j@~ZM=@{4s63Jg!K1wXrRN{NI zMe;EwVdV-Lp;w+P1(&crIVB0wd}3#)W}+Jnf`Z77iW|_YS78CjE`1W)^?K%8>fQ&p zA00&Ywjcg285*Q$iHM`L8SR?eTzl4?AO7w}iG2aRA?<&M_32$o_~~CJTI7sfV$VE? zzK)x!S4{Il;Nu!nWxQDf2Q;jht39hT)t~>--JSk8-_riaZDZ(nI|<4bU4}|^Dg~Ml z3M({&T5!(LS{Rt~Em@1|dg(hEz-_7zV+cc%9_55v}DX2CWzed2MZ&1s_>; zrFkqJ&pDNL%@&{k+GZp%(HoYZ)!6$284*g)%BDB z=PTm4{{1)1PYg1;3Rtlo>;;PIyB7UKi$f5EZNTV)3^tmu(~2Rl1yW_U3@wkvSc~uP zZPx8BdfNU@+px`uhZ3(*O4CZwsKt`NQFDjb-=W@Fb1m|1ViMn#OO{sQV~97bg3dz~ zZyijS%l7U=ZE;Xz7I_s1zc$JgF=9*yND^+!R)K*jo`+C-r_ABP=Q=+|Ag>+}foOc9i#m+iSU)srq%| zQzjXAG1r}35ay*tfh6A|PN@X#JcvAq>V8UzYDMR$kQPdd5_Y=!xy3mRme@jRbQ5`i zRuTK?wUBUcKbt;bd*{TAwyFYKdYq0SB5(wIa0S#9{W^DIy_0U)+3L>DN%w;7c5vSQ z(l%@uWky(M$6Gb>-DARZmh6Tf0N1AwB~$Ab2d)I`n5Q$+JBy?qN!prQ!2$8IlIm&?u?raV94P}x6btU zU-MfiUYl{U^N{XA}i)08GoX-@E+&lQDtIA34DR!40IQW7` z5>+iuSBiK`y)Pt@{rLxqER^Ufwd^8JRR;VO-Wf4vVVf~8%HF%P1jFe8Vl+!E#_jN5 zoqJ5j`%}r?jy}O~{RwNug@mG<4YGny5tL#=sSywZr~iS$o%0XD&3+KtCz@qO4X((H zJ{0#C6mIM?gGcQ&X_+5f#G@`gsyb%WodY&0nn9+fzM#mBEG@EuTNj7DE53BARUdi+ z`-RpC*e|H^6_}3Wwhk$UHzT(LP_WgslKq3xe|gMdi#lYgWVuwwMZM;QdHe3NNT!+h zAoCiE7xg??WdDHnsu`f-%$o8LBAe&1XN z%WMYCuCA7zG0cDe6?u6I68m*-^ICO)t`|ShE^DP~t?C!nSzovZ)*#&|Vi=CWhKhiX zN=?2%e>fh4CxpP@E_{4I?x8TU$ax~_=_BR3iw$uOqvuQ{-r}+OcDga~7`$L;)tM^r znhJH17TY^;V0!jyB0=Zu!{WuTN`S09TO6T95zALEtl{*UPqCqw{0b6J{9GBsS#X7W zBw5Qrz6FX$>!#HO!+!UI1Rv%RQ?UxVaOJV^>RNPYwaswCp_k^o=9owf+(vt|3&asu z$)uTmSd+a;Zu<9MDuj>-S?aS^iKw3#=-1I12o_(2Av3NNoR~~6pAso5SmLHFzra=o zb_!&WWn$YCah+$$EiLS0c&(|~wV3WEVgOT4X_wWiWx#JYHI*==RFp>vp!*go23N3l zjU`rIu64YL_LQM1d4OmR)h>>s^|mmv2Sq4`kP>rgc4sJy1|A?$uiB9*gPU!(%4@L* zym8lGhm05`o}pT$#Rz~;hIUsdxkc`;*p!#;@3al)Z5X#<-iB?OAO8q3I}C1QtncIb z`cA4p%L{k{e}9k+KKhj{07^h&)XVv2o=`980cd%B=q|}_6#8F(okM=INcJo+x0E%I zW?m~ws`C*=1hN}H3A=zZn`RzVySJL;J;Npt%`G|YRtyK-ZcxzvaN0E5&Zg9@)tffo z3XsGm*rt9*l8vEl>0wSmA_{|S%0`MeE+;Vh^;-U*AL^P*BzzcsP= z%8L3l#S7ml$@8=C{q}Lx;LpSPhp2dURjJBA;<*_l1@Yoel-9a-N02X!tO^R6?k=!^ ziKDl=HR~YA&)($3_D|I0gYuwy9HD~a6_9&zlIevJ7KbnPg&;*@HAOuOW0Cv@SwBm5 zBW(XL{~qg`v=@>eHttl;ZeCCaWS_daWoIY6wmvwwn~M+NbsKmN#fz!#cQ9+FRuKh0 z7szRzrF)i9zfN{*Ri6%t;H6J#&}V)ELlWW%6J74x_trizwJjm1Q>pbLMoJwmwNzg3f zHI2H<=hV0?K0p2w-$Z=D+GO>Web~}iRljc5;bHhF=+)R2#aoy1tdt)!=u2?#O#{Yn z!HIP+E-cJ9*N?D%I;BjVB>Yc`FuN9AZR+zuWqoMBh1iea)guWd42~n?SyXC@jr<}n z;6;KluEC6-fT7?5OD1EM(32Uf0;`!Pq{$G>V#5LAkq9*L>_) zQb(O7^O>4+)iNm#*uKs^72irp*{HhZ4f1_+HE3;DQCqJ* zT5dJ;y@2XpCC2?%x$7C&GX85&L_wf);iF@pP~GFvraF6`Xf{2jW9_B~SIw_k)+6zO zuDqpc7~hf|a=X7hb^B@K@-x(D^(h*b29rwFcGtRNw+G!8+!*oSSyHb=)a`c{ONG^N z@E5CkEcua4iC^;5nn*k@nKz(s4KIn`nybDTXWmPve%$+*NTr+BC|mbKVwu#?GZ%OE z;j=AuXV!Q=tPFO}?)d4tWhIYpuP$`cuIb!HdVSJIO;UFzm7POfp^q-Nro{f1|8f*&VJ?_cr$5yI=Qf;`2shry%neBUI!JX7(ElUideD zG@)-VDz-=Fl6n@%zK()Vl+;L@z7qUK`Ta z461MJ*}hFHy!!j^ATTF~&RUG)q+~}Nnk0F6gDHO|ZT?A(H6cLPBI~TZk{uPzT4~%a zWfvXv?17M|&-Toe27IL4Csk&x9a4Yn^WKMae#`OkZE92Ryvtlf6UYVfM2~cxzIAkYN>RQ&$zv{z}!*a;>dD zHT~rrB*vJ^vx?UD(X9TOrX5_TQ+Tj+!j)m}R#A#6UuM;9#?-Z%q>>*AG$3AgQ?w=< z-DqAbL8u#i<|)m*sYGj2XP4qZKbuEY+G2*6L1u9BH`e}Ec23#qW_IhUF>c9~`_cPf zC-nICdBXl%TISZ*>uCU4FDjYvzSY$);ptMNadlKY#P$+V{s|?WRZ@5b zZXs-#M053rMILlap%om3L2`q5#)H|;9iOZuaVzn(8TDN1JFA+3|0XL^Dq2i^DU&DYr{OLn|u9y!RplK!hhv$cdQsINz~8;=z>EDU7a`dp>cGW+e{W}l+xF+S;k*rlL%3`~wqYA{-~P7Ae;8+WrLs|Gy-9$?M-DaM zOl4Py$J{LV4c9!H6Xff4`+9!-qaS;>3A%Xr@#-*~Cq#x=*Lh00g4^43k~iL7MV0fW zA`vm3uQjC%ESS_|z)}#)*~LaRi{t1R8OfPFa%_~UW0c%q=wf1>Rd_9yf0W(!=Y}58 zg!%{I8wQM0$SW@sp_|}!o2<0hEE|_BeQ)0l4^$~bB+34H@O2sl3{r6uC0GC_L zatZPiFU{%B1tTG)@)5q}0bJ9;!a&b<;3(Cp`kN@FOgK9iJ_2vr$X|t$81=!>o_Tb9 zKT^@&Mx$Bm-ly4{gaMRhMy&J&qx3CwqX8{z^FMtUSAsuTVl>dQQ*{gO#nrU^n%tvZfF$oTA9l}(JrCQi)}v~ptwvK9ab)$*C^0|!JbF; z%*jgw+`|$|b;ASPIEFM!-jBrf>#j1UrTZnDW$<;Y5&bW>l=$A;tGUZa{Z3H;qgyEq zeDX`e^ZNP#yyuGv=Z0&&DG1UqJdTrk8~JWY~XAr6~j6B%LOnX2*TfgMGQS&CGwlK zxBoV5bMyWzkVL(N1_gqldVb3e|K%pJ#Ztu+6GOxL6tS0WCt%@dR}SG@aFasFaVxjZ z=j{)J3|qKtL)r$M28YcI+xIQopF88rY~aNdttmd|N|d0yzf#cDO_b6@(fpJ#t6VSY z*oh4u?W^C-lGeL%zl7`=?K;~MljQi|H4et6`nW;et)Xzm78K&ajv{%l<|2j8Brve} zLYm{96RSmOX)%NEZV+{~D3 ziU5hYfdRb;Z$XSRflW;r3~qc*rj$vgXsWivl?{q^((0n{b-N_^C4>f-5bx;QR~n7B zYCVxvACUVbmirc+`kG{VB9^;7Q&Dj&IZj3f_~J_ zbVeVKQ?U6C?Bsi{Fu~1ClXxJttf`h8slt#l)s8OVBx;H5bf87SvL#j!nNHP}YosOFkl z=P>5dSe4NPprQ(!t59Z5K4m`GeBqnq9{^eKX$T@&GkmmvO>*fTJHjW|8r|rAae428 zi{0skXixBgvvBnzH#XN3!tZU^14WV#UIWtG!5?bpix0ZOiwNw>OsWp zU?90qWV!qb-)?%xRYAqavHzdXiJD@!`e?H!?D1yLSg}e^@J-h4d!?&g%1+}w*K7Xn zb9w5nzlPjXxL`~}PiXbo?o*z-V^7iD?i*<9$>3slEWg`XK4yOQR(qqT?Y6F`@_IT+ z?%qxupELcItS4T-{_^tumv`T8v6gi9DZAS4nd8^l8^7s^-al8*E!G(2zsT{PvwOR} z|D3RD9X->lb@bewTl#z>oVGB%^HaHQ#$O%OV5Q zu|<*m3YGM6k`9Pu8Tyjz-Iq$br8c2Q2rhCwN3Ca38B`^|LRHEKUC$JLg9g^gk|vIw zd00-j7PEaDunc!DGyUzfp5hi_uJ1;cF-Y;5bT#h2es3zfZwv=;uJ@)<zWN2BAaF9?j<5#Zu+D~9xsEuMezubvWbbuHv`jD6?+H5&nYVLZ&sZUb zrL1z&tMwsJ(hLd0yS=(&;`$Rv$}?U@l>sLEcJm4@4v{w!qeDiro2Ha95+Y5)+ZftA zCFrTaF)5)-*!0r$Cb@%-d9UomEV%NzG(OS-;PmoQxn>bI%lWDv){aO_aC$o=^=b5K zSVpF>lz2)>-D&lEkg-oGu}kDN#J>wynI!=9coyx7GtLe-Y9wDMNlHl(7+rfeU;q(AmK2#K1DJ+3fk}4yY=4Px9{U7R}8hbhC02(P^XQ`zjazg$}Hc#Tvq<< z7`(K|dL5*k0$~N2`y)f{fCGC3J+#c&w+B#C8vFD91 z%%TlY)!FLmzc@bgP}}eo7p#mH$<8W{)ef&j^ZpV$byJ=bmBf3I8my=nFW{sb^ny ziQfEc&!N)wXWRFg&lx+l{qqzL`06Y5ktqyX0t4(}Sl3Ko55=TjA-cQ6?rrn(VXc8+ zx{LG7XrAY$BcRBWBhj+vVO=H+`~`^WB~s!wUAph-)>-nProXaD&ua|DHR?oqO{Zp~ z@PhrgN2{e4z^d~2msSg!)`n!ThKhIK1l;QOp`jnxfI%eh#MO4jL3zvDu_-Ft1R$>L z<>q321^zSi4)qV#&SlAAo`}MG-cpG>j>fWNBspR7JS?DCPz4k#cK?gvbJQK#Nd|r{ zRpUP2X<`69{Eg*wtx*FuWAGczVvE9H@xV#Qyr=-&Z$5=5J3i8f9SU4|sCziuI7 za=sJ{D?naDg$}4=d+9oRBH-q-% z=Q(eh{W>$xAm=7&Ic+)?&Gy?tT3!wj^*IdXB-JSKc{#dSFu%7|{lSnIm*ro=$#t$u z$Y|&CMu|Bz!-6J;TvhPi_XMWi`s=en#UNeMyKrSbY$P+ROnVKVo88nUnT zugG-wf0EC8vJM~&ygX668>L-UBr0fAF_YC4TfQ3QMRTZlkdbzQT>7&QxCN<;mX4nc9bQ3A!O;A)Rrv4Nf8ufju3~XmY z63GX3D=PkXSd9A;+!eNdv4kCT=(T1-w^|A24m!F*?Zucd?17LK6Q!;bbNEHQWA=F4 zc6b3>LkluK#do*}%ZiSE&3oTliZjWt(PFWLpIZgt#zLVU=!Bxn*!}1- z&$>Osrxm;HrPJ3V3Wv6D#GX^qyAPv zV+w6P=J<&IZBqe0(y{`6`CF7tQo;h?^*W0x8aI4K?1y*TbYeKk0KwFL{{HL`t_&^@ zRKYQVR2l7QewmNNFf{a>iZw1r{d7@w13$_kJXfxj2PHpw7BnJhFLpJ921 z@(h)MuiT7|#RZ&jC?ugSfN+!WgiS9xjeZbFTKR1=dLa3QN&8;}o}7!&;Zu-IskR>8 zTj<0vr1_x2$g`Ky>Ko*}Fce;@avUfZnX#fk^57im8O@9Yy}^HHl=F3x$azd?BMhYm z*Tg0%>U`AGu3Bqx^wIKCnY8T29?;AdOG6#xUz$TFx=Kyf==ocw*=Q2Uulv!9w_y9o zP*%=i+qyejM(^D_;vd^A84Zlst0yox*Y;&bhzz*0BV1jePA)n{eEA4-+QD;;l5qSX zK6hwgkdFKGt?gvC7h5GoKz?2>))vzniZJi}=zsd=xy1+A|T;$bf!`2?Jk(rK9kQpL}(J ziXW5Ctkj!)HQgr34O5;8e0^*X^e!=_Zz?5W3Jj8uqILS+6|}qi*}g0srQYR`N$l&t zC-|%DR)2Ec+f91USWQ~bu$t3sFDUC7JY^0WWq_p6q7L&!=IbD79X|Ogmlt^crq3uu zaxKZ1M4DaP^0AqOLqbit(rQ(eqK`^%<&{jMLAX+t@JjXyY3wIy=pw3ldt%=PvnMe^ z*^pBR03M>0~ z;~>f`c+gyLnbN#f5xtwGJ)o`bmPiwWigE&P*-vm8EI`t9^7EV+SU(UHf&>_>2; z6Q+}7O3TPOQF2u&DJrc6;GAkZu0#Bfh35Wcs_*=Zm}KDS9~gD8SW z?utwd5~Wm7xD=TkDP16_-ln2{mmm^LgNUxwK^fJ@B*x`K$S(mk&k7GA;1mxi40Ru8 z|D|+urQ)I^e6}giN<51jJr}7Ag9sf@<^*)X%4<L%n^Ednk zh?8gz2Oq-7_!1@@^9XtM3n_RZ^flAmBzi|ceG{QFuDVQtq!epc_xX&T5Ho*XUHPUGkhf8V-Q4B{3Ag|XDWW7k}zn0MzQ*HmD z?&K!JGs_;?NbDu`FA}0nus>V9-Bo873q8}@rKO$=vOGCSFph5TQpBO-CNGUBf8}gk zdHs8SuVVhs=4F;y|CE;x|4BbLn_+tAKxyXQufBBNGH&zL}OE&MlNQsd#Jd0^>`1svgJdP zd@#E=^t&B$i$gfO86t7sP6R-Hx9%`a^*O?72+8~^f;lSGHTvCW<*3FYcmY-Zr4)ru{Qm`>k_gG^X)ln9A-5L?F) z@1rgIaM;>4GvL;PFr{nQz>f?##t@e@;>T)HpD6y8tEp>=; z65G7lB$uZ_Zy?<)&Si61Cc{mX@wI=)7JH{g>KE-wcyGN$Kov^K1Qy1Ue83mJ@pEGoHMUtU7(aTl})ZDLkIK^+lyM+5}kj{qJLx=b$< zaZOSem`A(A-kf_7A^(MJ&O&2&j?`b+dbVcwyvY1Gnw3Y}2Oq?aytK zY*X2$$99PQUbfrr@|&^+=S~P7VM53ZyrL&;N3QdWC=B%*a`BR(oQoT;#n>P?H&X_oWMB3=NZvh##7x>5ybGp<@Qpa9C|eGgVv8r?HOZy9LDt-8 zO0x`J)ZC?1Gqc1e6q0(>BZ3xTk!0IaML-$cULQE2W8L}WLKioKC1Q{}rDTM9tWGvt zRz91ojzbYOo`UGc7Rlw6P~@bnLc6=Uz9^eGch{QCb>E+n-RJVuon7Jm%GB$grbY7MKVlq) zk=>H?RB-WU$2wZ`)^fdjYx1nA{`KmK*B6)%@0MLO_Dp{ywC9fF5%m0;N4A*RXQH+_ z*HJX~A58Wx)}Fvu6n%3cGcsIn9@@GTG`O&D zpIw;+FnAQ&gAxOGqhLavxOnUuk55uNq2c(a{3X?7j%obbx;)m|-5j^RGPLKc%9f1L zT>)_TYMk6QowjM(rtOuTw?7vg(sR(G(D1=kOO+OaY zryLcmrVfk$@`orY1@o8Un^u1|^=1BmYf-|!>}lMlEBk1pUdrqmVep|raSCZ_7*tTw zs-ydAhONw$`3Qir%C<0<=ynR?W3%%|sYhLo@+IZ&byij>rjm`Sf@&>j>tk#xG5fE9 z4nJB=Yw4S7So&+Xa)=G~~^ z(?~KLT|YGSJbPX_TJ!7uC$-87^Z!oKA(`>RJ_uCMYWlK^`o8;#g1u1)|4t{VuPIC9 zgW7j?rl89w1s?j}I1bL#h5wX-AFs+RvHZw}Cj43$=b%)dn?>wD7aED|?BC2at;Y8h z8ZCXZx)KW}h?!9(X9@oTZZ1y}i{7ulWO;+$liiid(E>)g+M?utr-46Cn#mWXAL2UW z2KCh5Oc^9lE`?=@s93ecNoE(#Tzu3D%%2k1)epuqi=)le>|(*g z7M8e4z9_4({Aka;y&RKSrBshkQ{6o^@+}VU^2;BdR`M$x*w7Jg%ZEWl@{jQJqx`szb;I;85;{1e zC3vJzgVr!vANJp;CKq`yu_r`cXl`+q@C0q=@Rn}_ESY2JikZ9YR^WG*W*1|NQL-+% zw0KRyAeY*ZjhaX(b!=ruPhUx;rjlllT0?sLT7C^|w`jwEw8CA#xB&zEjYd>21v>ko zQrAi!-RUHu67_@)3W2(gkRM%jk()-E3FEeHA`V(|A#lh{oSEmy0exwW!_O zlgAV;uk;?Di>ok(7KbJ>9n|JZoW<(QnDCMh3)ChYEUYoVXa?h!f6rD@6iSNf@=`6S2N3J4ATxzc%#)Xyq6~1561TWm%l)1b#yQ_ z?I=^t=JcF3;L*LO6Fgv}JUchN<4t5#RKZ*Gc@-A_b!*ijJ!2(GKPRjRuV`#<)hT29%XMdN;s&c*&?PPPxz!l;pcIL zJF2OG`jyKrNN%uv5Rr@OdjId>y87@m6WhR=tBt(MAV>ctS*b#|lLVpfl)q?`h7YF6 zm&(O-lq}xNlorERWeZU?(R46)S^6gNN%@tge=p%ELGlZwlgiB%eJ}n#*gUzs>Phg- zmbr79m&^g;epn$@Q&yT9r?eQeO2Ig#V7x2RL_?m7l$skICuj8PL z`HPB#1}`!?SC5(2sz8m-n^oA+>7Flah;dx#5>l=5%;r>#@KP|azER8DeVOGUkxCd3!XjWu(SMMbz1+y+u*e<9CJJU4H1p^l;)Ik{bmTsK+GnEJtPEyN3Ktr0C8Pf&-?!kCjq| zHVfU3YxU*YplpISFk^Bgk)cV1_@#PLSZ6*<2DdINKaGO0hNTtu4C^-CepAF@3Jj7d z{vy!XEfjQ}1}G^)s+>1DVG#h@L#w#_t+bQOf$*HG-IN_hVGABha0Ar~C1n*XLDI*& z)U*erSf{6%HWH$&y5e&KIG+s4UL+_!q&8mT;C%i>V@}##$b0G{QSYrdlm8X1qac2k z*g+&4vyChVGq=Rd_Z4eWwy=HYe)+=)a4th6Gjj!V!(IItg&G+IvCLj3g>t?gsXD|* zlK85{U9K+b^UjvL1oS!~lAjq4hC47Zr7eWhH=>;DQMiuLd(z7jE=tz7=%+cizG6#C zgj~wX0W-kC;bFA_IB#Kg7$*d9a(5-qa9YDeh@?U*1jR^9!0gmxrvO9 z^Y2YOvJ@)yCKA1=di}2>lHkxG&&XtB3ga^dQ`uic6H?4c|XEAk`K_r;d(iOATvx)gRMI3(2 zE^eCMw^*g^6Kj^KqEb+GM^0Z{uW-pyymYBH)gby&-Y`jyl#(|29j22Pwy3*oe zK6G-vN_Zy6ZSwJVElQkQfmrKI7YmHbHf`@Gn)UzAL+2$WQ_jGHM5ZHQygE;q5VH)B zduXw4A}%8e*#`#+0TF#cQtv4Z0NgqNd_b7p@K^zPOK+N_AZ9_lNr2qXu23a!g8$Aq zz$&oz$J{R8YcUS%q@`Rv2-{t^zl)E92iJ2;w*4uU^I-55g5s>Rm(0W4 ztXyA}_jnVWAj}RiGB_7ZQLH?$tkp7Xkwy+GBDs?;*JtK;z{Q~!Uowa5E*I-h%%#2- z2`UweE*GiyE%G@bO57wkN5OqP^qN+w2iP{N;;I#C(~c69v~dR5uk#boO2iM+d`eLv zN=(5soe*x0kr%_!Z#=t)j{-O+%FMT6Kv_F%iinGZqeupHE~h~$Ir<>qEYZ1^k5ECD(_!+PIGtg)ph7Z6xy z&g0o6n1a+z{5D~kgy&o44OX{>`!;=J;tj>NI>othAFu2aggCjlpHnGqUTkroEG9Z!(T^sn==YXayQ%;#`g7#kzx<&B*WBVPkx(U=o@C5^`Rp!!T-R)Fbk$Hh z`;E`U#)ENA!O)Zy{xmni=)X7aKi+O5f*H ziRZ+@QFV)GK2|%GhB=Lr4by1!@(gcZ;3cO$)04-X#FM7rN`oX50lz@PEU^I|z;(87 zd}zzst}?M!Y8D>}C9FAnAy>xUng$LPK(>-S25ZI|L3F3A9WK1SkL^KXpbTsWLR@-m zGruOrnX$e{U5Xt<9BDd+xrbSd*?ZCdq*IT}A*7Q?8~|;2IgpG!jxIu`9`N>=Nf*YY zMP4r}t~E7cQ*}~0@#>U}5*ek{EAf~}YSFq$reOzv%J|eswMF*k@`k8zdnNmp*}ou4 z?j{dCR)#*nfAi=LGOWc5-QY&m2D%cT5G}+hNhZuLdXzAWdWM=rpV)w7Gg;?ye{1h< z@?WyiI*dJDs$|o_%|MS#mx*zP`_Hrz7RJ)z$rPPz${0N>=xaB_YKFfEt(g` z?B%H6o8U@_6?cp*WFu86wb3mF0wT`)|CvnB5Ez1w`q-Lga%HrtnT|G3Fv-9;y~Wrh zzeje`M+$?xT%6D9-0}iiA^OI+2_RKOp4iMxq6LX687Kv?E!YYAoj34Lz|x^+7_xXv)*6g8EF{= zQ3l4$$hq$_<;0OSi~2Ed+mYikU-&5~^T|XsuTUR%^HQv6AFPfw@XCcPq0DIe7PU7Q zjKt`HlGe6F=z$ju5{H+xji{N?jxPV}6kFqW&nL@L((Uv%o!!k|YWK73o%U#Bk3-qDuIc*#tqEzdPlzZ-Z3zN6010<8GeX1pSOqZGE1eM-7kLzObnBB?xCEo z>6l|{EhsjEL=vwT9>5lH(LtKt;?g1u0C-_Q8`h%KB1)b}yZFl=3xv$x!2tJ@3t@xx za*?O<=b_)H)gK}^b^8rUV1N1RCN3jYxnfv7}#4OIW>=f?C9wDF{sf_B zQar%TeN!Z2)ftmR$uprQ$Vu}5M@j_<19P(+bwBYE5rCBw@>VGzmvxdh9M zt{PfLU!QHMS>o7ScBhLAp~yDju_Mi**A~TMjOoiERs_6<2~$MKbsuq!cqD9LaT#%& z@;GFaM*&$UucIocYAyC>rw3%SrarPiVYB__{O1hEhc~0W`I|R>i z`DOcqpd8csT%vo$-ddKq77Hb}h+aXIM4?4Kk>_hV|qc#hyXM5 z%O8V8a~1FV0;EeUtDq*^NUYm(@T5^9+; zxlAcdjZhNN$@;lsVsC1Xfq}7y$lxAc2vH(OY*2HT69~T}Q{37gb3x+S=kx08A@A#2 zZo$nosl`i3DHGS=qXU&SP*GGzWhg&IosG|eaMOlXVB0m?o8Si=L}HT)@n0NoN3?}T z&+KqIEUFJEA`vS-3BEV@H%W#T2RXUgP<+|X;VO&h=^vT2MCWvE8^x3^v^b_JRs&`E z9(^3OFcr=&EzGAlwENI$ifMVxHD8<9Rt&8|1F1B9j*+3XnDVRE22HAS@g43mDo1&O zZs7fYj?(nOg8`9USd)6G3GGjjH}S;WqH|G8PvK6ReWez8vqVDq#VbXr4ODpP&yygn zCbNiA-wPC2pw(|^7DWn1BOjGAGiD#V!#^~>c{i-*<{7ga_`i>sG7~IHAk`LGJ*ABM zp|UOEbcw6XO7`FkP49TG`Nd5Qtg?WHrxqiH;5nG>NV|r%fy&Uoa20jOgp@|=r@;P% zL2JFHwUF+5(FMfOpF?qZX^9qnNkIn-bG4=BcJNq!W0e3D^nPf}?pX|H$>ga;QNgi$ zzlCo^kx2!EnC~-w_#`dXhwPXA<&Tp@^^{3xqYWs)$IC^|jYgFP717GI=@bsPAIx!9 z60d^h3woQT8LN*plSXZ|u}}4_YWCv8d}Fo9^2|+1!pDrK6qJ0+Mn?j=oK*r#Sw z$m$tdV^l8_opyc-)X0J28lKkj0zT>yppI7=k2dez^!$%j3{0bik7{_#C0a!? z&3&6iiY*R%$t_}hOY=Qe6$}+_{KP|KKLaFd#PWko|OC-=$GFQEWi+EE9Mg~3>Q%ePVy_x zG6u)K z9wZ2S=JOSM*m9+kmbaKwDg-VN8HN^}%R9n=d_{6ku$5GlSbJ)J60&5Udvl>1J#uvW zvzuJ0-L-BIgG8(1uoxyvF)UEtXz}2y0)0IJKxX_hfyL&s_F$X?XT|lF<07^^D+2n}LGo6oi9N(j{EQ zxT5o{|8JTsL;n<~KEe(yE{aG&zNrj0<`~SvAVKBiveHKxWm5VmmCCS4#09f4e*Lqf z!%?9;=^+hyt4=%ywvQ}F$_ztxK7#1q;{kmf_3%$S356j`cvU+HWR19YeI*?)j=YbO zO|>!%W^#+?;f5}z>Yn8Fv(t+rQc)2f_nW>+o>LlOsg`JPWH z1-Nz4rh-+k)^91%-T87(+jQoeE0_ksSUjC1cgCgZzjvqr(Ydlg2$D6y5#%~w8gfiv(v*TkTsWIep%WXxn&r-TjCmBoKp~iWiXMI}j?ur>6XUMikR=Gq(yHS$HdkO};yX@}75vR=ch98#E zsy4G(iq3nabw_C7ZJ#US1z|*(U4%3<>THi1LL66UMooqmg%Vpli7%i@f=U}+MNP4r zLy@V+z;I4cjfP$PcL8O%(aq8`MFK8G-k5>ufM&Kg@B4$>k{xJNR{i0D6|5~Rgg?!pueRWAQN-h71IaiM$l3-~)eBfbnC z)5*11A?NF7Dbz{wCzX=~>c#p#qG6XldP4GTEF)6hN9|2jS-Uiax$LDPUefQr2LXLu z-lKi3Eit}FEeGt0#eXd%OFul?fRjUux76S!kcnYPD4Zs~1YSs!SoLJ!@+?ntl36y6 zBL^_w=WnjB%aXguE;#;WjwgCE+GxT{&v?9Pul{Lu?7ScS=*p9|7+u}fg@4PVzx2F( z=4p+k@}Ac+bBgJAevp0Q_#&ckkf^aIQl3AX)NY$n-#oV6jcwQ5%PhOe`C$bs-RzmS z6);kIcdM`V*ip}HvfDqjIQ4PZ`{3opmc37r)lfZU_hQT(LwE^6Mkr5;k@PmRtD4+R zU$@hsXjJ!+eYX;CE>IuazK;K%W;Zm+>&cPiMp=W4Pbf+vxl=XFzXp69^}gfNtimdY zLq!tWClz3qO3zs7yB{gp>gUlXBnV8M5Xi8;x&c2QvtF?I3euf!kAkW zN=3XdxRW-io6shbsb0R&&AxZww|uWXu>%%CPcQwbL;l?ok{N~zsxgC$YV=OVT*g*V zf6Igg9*3wS&Mt(UWO*Tm>G+fyQ^@ccCO!UmEw=8*9-6e^K8$E3B{Yj<9H@1vQrE%D zD>C5Gx(1R_9~t(0!9o-RJxlgx3&0en{y<(&jIO{=2rW*MDLtSNkidp@q{4HjEfIQH z7`0H9UxICR2q&QKrCmD-3cX-K^@ zYudLs@8ips=SixBH{`dFWFHz0FTSlIEfd+UL_ATfl1Xm}J=DB$Cy#!2$8^?O#7c2(?AM=j{nS>?pITiJH|D ztYnV7kE1IFR@r104?1_#zjl_IQ+#s2*szS9Jvv}Cb@4rC{Zn@~!%zMlQ&?v) zPPu3wk??n^fbiByxj3^q3YVpXeVqx(KSwE+DMlrJ?DnzQ9n~ajlmwi0BtRRc6iM}cI zQh@eis+}+NwXgCDcKc_@lF)zcC)xSqKCZq#AG2leb1jX78p)5>+8|P*bZ)F`zlaBI|E_QjtQ{oLY`(>Ey&AEe6Y z&rgz0LprlTfn_+T)~5xFcBrp@v!D1|L0_S6HnH=p&e>KGH&bLd$OXR(8c(*p;iPhxqQp9>j#tST#qNEk)t1wRgDf9p8tlbSkY5!g{4Db> z#_=eUU!l|wyHr}V`pU0ZY~%HOz2J)M{q6Q>H%X9LrBc5Jm6OX#|4OVmHceQIA)aJ4 zT;t28)lNr|OqhO(Rq_$yD6zg$w7H#@pW;pORe#TkK`u>hLe&ocJKFVvCa+0`BczF9 zhxjxLhrID+jV+Ppe=9SOEZ@=1{_J{2y!IU5Gg0!WR*yZ+EfW46#Ohc5uU@4;j;4u| zbB1~;rUpOxs>YHkk`>tRmaobjZaan?KaL)2Mt%jx;4qx$(cieE4 zsQh@YG#zACaXf_7qSji0nd1{f>IN5-Ea5Q@qdAnayd!Rt-!UyG{V|)jy)Y}2GJCi+ zwq}1ndAnRaz6`C9SHn(W%|r?B$g+FoYRYTEchhgGUaaJvz_z=4q&%8SlAoA(e15UV zVgk;|QlD#~y^vvw1Cfsi*n7EXDpMbhOS8>5;at}&2hO#dV7TU<{D=m7Vu@6@yKlXv za1!dSe@xxi^0U85j48D?ggt8=*B&w_sq&KIhukxE8N-h*phoz!d4(qBCXx+PxL^hD z>gsZZoDc>!;~H7rQ0d>g)yv7*_nr!(QN)8UR3to<1k~b2hD}` z^Z`@6NXGxO?F?>I!pEY>g0BzESMA(jHkGQ#6RMfn4}G(9%8I1$(fRZLrz7agzl)Q5n#EHQTDP@xW58zACd+naU zV0Qbq$}7%hsu{Y-g-v3}zx=VAHGhsQD$y<>)%E8y_6zH02dt2r{0?$w7~Fi&9%ji@ ztb@$=Ng~($#%Dn7Eho&P@&)zu^l4ZX*jMCw!sIHV4m?dBWPrTlp**EmsC6VZ@Xr+2>+ACPbhytF|eK(=u;GGb@BY9>h~z&X}0YhjpSy1U2P@aWOcF= zH)o>S+eL9?FQF+#&uHuUEG-rly^uARK2nej)7oSG@(;Yj!}XWH@Lw>Q*$ z?klRSvCS+9mH1$p2k02SxbEam>+AuO%M=MJLv|O%Hwo@8#RD$RRa32gF&of*Z+u#- z(WLi-s#I!w5a+U1Q8_lj}2lXh|B0Oa#%=of=3(-r4E?bD0&@E61Aj#u5 zbVP_i-W{aeC`dVjgdU%hX?*yo=KOsQjRyIh!WwNZhWBWMVX`%eQHF|3TF!S>v_K@wjnzs=_^^lTrt`f;W&wxi;eDTNG*>jut~OW)c}dGr(>8lfeZCjRRwu;O1@G{`GzPbMC|# z8NU%nK@2|bWV}j-R{X2`FMs^ykFXNL7X66u#n=*&ToAYdWz25Ne9tGJnxYhBQsO6S zD7j$@rntHQFRos_7_o${n`wvAIiyE-#l_mq`TChfvYKZ;74HnzxzlMyfphn}bDpJc zT33n$>bTyaU$}k8A-6eE^7$%Cql&%aIJyE!(YHnFRf?%_<}v4u>=kv^)2gZXVmM*A z12X|vsX7p`rqIJGyDqmxuV2)JRmaiJ6zzo7nEUX_$Z^L^TD`}%`s4na`kU(9h~Om) zbYkF@A*oae2VlrOR8%;EaHoWIPHt+E4IV340%8l|R@2`RykuySEuOC}RzzPACt(bT zi2-E}fXaZ=+bcYTa7*D;3s$;dlF*_^92!jVPl2`T9BzX3=)8ywqDmb`D>5-<-FAggj@n*^jqJB==7W6@Z zH?B$Wb0Xi}*s_&Df|twFK3w$f2`-k6(OHKIZyk@Re$m)GpS4x)4ep!IQYvt9xCW0z z2@soBUm8S@B)>}$N|zx{e7b4BmKY`A%6;Jjs?)0yM}9}W-0G$ zU|%i)Kh}2V-zub4B;$EL%;KCmNmZFr;!ceC4)Xvg5#=H-fCiDKd7Yr+Hj65qxThp; zi`2SdP_7bQ2^XED;Ab{zhPkqzS(0xHa?@RLOq^94u!Uana-mrmZ<0;>zg$vk+TXj# zp(P0Hio?i2lIDGq?DLn?8gyEcK(|L{T z;qBmYaocO{-e&1hw&&MsoF&-CE_#dm&M7|OEa5ZTQ{)OS&q$mAs4PoR;T{~bJ^s7K^6ma>WAPDGtmjpPtIQc&xwcV zXc~4jk*=ur;mu-F9TVNS`9$a%x zRMQqCrokku@Z79yy_BidBIyrCMej=C#PgjKJ;&so+)@~!UaHEF+H!1H3y4yR2+0=} z)Mgzs75B2>5>kb>kP;8&KQUW2S?^UmzJ6`8@EvN?2_3)z1{op3z{50^2T5aW()cb? zJ}$$j9=c0vmTPrrG5~}BBpJkJ<<#{KoqO<7O@$q(j?I2WQ+Lsmq56|tlU%yPeZD!X zkuiVqQ429Nf$~S=gjV-vv|*UKsw+en4uD?tx0upECz6}41f>m*>NataXLK=$qtQ*?{~MOhg1bGnraajvcHBVw0(Vhm!5#;Ib(n8-f1rNiBC$4Qszm5cz3!^ z5V;tkeM9Fwv7D}Zy;1Lp?GM+Nn(?wIrSz)^#rvI>fGgVWZKPF8;2$2A5t)??va1pl zlPvGwfsX9z@x!+uKi|yO;?r>YSCo`)E+}viy*M1)!PJApRnE_eDd9z%<1a;>kG51u z;``U~m2gZ`@)5-)#_tec1`)HooukbkzUW576FK|tzd}>W!%ae!a2X^M{g=vsSp`#N z;N=zxJ$WmX;v@0wc8j7R8lmqtt&Tw5ISu4~c>-hCuXNe5605PuL|`|{q{65LceVrd zjF4T6=PRx|rCvqiOXfSgC}OXvWrnlKg9nIg^kp6qR>d#N2aQ$rLs7ZWrZ(udhZUF zU@_$eN1xvkEF`iV8~MO}2g!Tc0{TmY_^)WCAeZeYvc0hD_UAYXB%vV2EeIy;>|TWd z{qPaki8~?tXtXvMC5s1X&$vV@^CMe*JzZf$?`MQ{&CuDkxNon;#Nb8)BOeFc0;i;F zYC9@2I&1?ah9PBY)(WaO_M(cn7npgEMKJYZ+J7`mU^B0jR9tkD(+TyySySh$>=zsa z75=)2UuR8+@1n$R*gNNM<#J8uNx7y`_qX^0StHfEaDjZ$goGFo@C+X`<8w{YmQKv2 zAm5PLNt3ddlCXXj%v*hFk>_9%hSu!4H@Z6|UL%w4Li*(&yb?1IZUy8e;x*X}{K_}; zT^Ne6-m>~LrmFezX=PVmdHcb+CvY)Ek+khvlUbO%)g>S@}uWFWO zm?f*&T@hVxc%;5UQ)aU+a>mP#m_`YZiNZ`}pnn$@McP6JX`2?EvO~H$r(HGd_>=-| zY*9GWADP8_APGHYkqljf1AJ|N?)1waA%c-I^0=X3k~l$fOsDSvDhwRU8njN5XW>SC zSP$Otq|=oc2>i_};=9({(F8 z{ww2O5P4b1ILMlnyd^(J*`{Cq0B{lUBsgFV9Z9@-G^ik4l$!3JytiB>BwdL2f?_xV ze)$vPg(0jSihD!V+BA-@T24NENqySMu~m`ToYp??F5`}$X5z8qKQMaD!@WfO!uMfpijE;k(i^^!OcYj><~`C`qVcPXu%?TLPm)W5O4wUXIiNrwgzhn!Y& ze*Qgpp++3_82=)Xhp))A!>c3AD$-QF$XpxD@4_ksLbbaC{>F|{cue?VR{osl1F-fQ zEMZ@wp0Q^CJ;i;1;cH`Qq*b$^3o`2S=kWF#wG}aOg z+N{UqJL;?(w}54VY@iKZtB?N>KD*QD&s3ENIHF!)$f1kDm4 zDd&WbDPj`l8jlFLYN3$~DK%SyBQLi_xTH=gAk5DY8Jvr_?091a6qFHo3M3t(WNKwZ z$ZxSS;OD+za`UN5JksDsN?s@EWsQ8+!ew9J$2CHHjBM9V-IuS$nd1LB>59Z{I&^Jb?F?v4kQ-}!ToI(&qUM#zjdm;ze!s<#=4 zoYD0=p&1@8KNxwhAaU5`VvD0IfHT7><$)lKxNW0ohdJulx>`A=>WGq$t6)TE7j2ch zG`b$7vgb)sN?9T6Gi;NtJunEOvaep=AjP(+%f+9eqqI2q23{s8-@ya;AekC}iq8=a z*10F_Yh}K$2RmHv>wxg4`rf^!?TwpSXWYP<;p7ALC2-)VPWyiNkF#|EY#`1lfOx*T zSV@BDBAKB$ZlfbR)Tt6$>dZz6wHXc!)9}&(rHRTZ&-xa0_hS255Xn(Q$(O#U$G55&W0%tpE=h~Cl`kwogL_YPNcXq8w@xU^^|?b zdcs;z_ms$ff2tK_u)_!ZBRBPs4sT z-&R&A_7ofDb(=f)XJ>nE36334_YCi#y5%vVyR_Esw6}up?b~As`{kI|u_OMCpIVQR z!M>U|=Yr9hP!Sgf6d`pNQYwVmMd~8qRnfHwSrhRjYpyWIbg4d6HN31Q^KOUq5}u3T z89$y&Ud;*LOuPVbwH=|fqa{3e@@^91z#xd=9xLSX5-yUv(HnIofRFnqanPS797g0* za(Cx^W4qg<*{1SJcI=_4db$Fm##e0Pd^CVqnc^?vmp@Fz-b9kNhe`5Ld7dLKsVR!1 z8&t`=Rd2pDO#xq7Z)6 zAKYP&$;AX z2jSvw_EF$262C+BQM>L%D&XLzySfWsNh0AxVAHih=H-~-KvCVh`UyG< z<8n=r6h}rsxB-xcR7`O@LY^-w+-;IbR(ee=tX46M6^Nq^6`{5R`4%sfcuCNk=V~a% z{!!6Ca$#-a&zYt{G;?8G5P$gtMKt!=J@9@7Fj?U3;j5zeckL|br_>^qS`s7LAf{4R>Kv{>GlxCvtINKZ_q4lo@MB!{6L6xDr z$2p1i?M`2l&rg_AIA+)TPf?<(E>|~MF`avuT0CFT58#@gZrxc%1V1n`RK&uFQuuOB zTlkXmb!*IP#1~(z4#{x-&U|vGV8W_vUQwll2L;#d?}Q1377oDiTqPfI*e2PgOD$XU z1FkCok`YIQuZTEHXajSqfkXxtu8`Qtuz_9`zWNeG-jdzpduN8%8b7$nl_v+cTWNna z^>d0HA4}+73y#(DT`;4UQwO{Ey_=d(If)m11^55F9t*!MjmOWs!78!alrl@Qb$Pvl zCJ&NdwfDzjskH$Ee*6kk&(<|x2-;vRCQz{bNvoo z6WR*wxK^TQ9J~}^|EReoqGb0p_S2)eZ%kSPpKaXps9(Z0TgVp#{}myVjuiv+UqYQF zdX(7E6hva2gFqeuUf1zr$U7fkr&&H*?MG?F98O#1{{pBCG-_-5zzWq5& zE?ka+_A824UYZZ;Q2MAi`>#+QDT;aso8z2Z;o5>Zzx+{%u4On_8X-70kk}f_pfnN{ zy!VO{6f#x!kX4eV6|E}G+<1^B=OCVV!;K9|U)7#%i{`n3?w=NK0Zy+6Q=aY!!PnNf zs#(;T5z691RZ2Ru>b%OzroIyH=?L1iRa*KklRW=*tSyRF@6*JlrOS1j(5@*!zb^l~ zR>H{0LU~ZUB+B?t+RkR%K^ls}^ZS-*bKs_g1oPACeI5snb?VF)Gub(Z5ZYdKscV(9 zzq11r3gtJ1Cj4~{A+=~`{N96;6#9$lIc^!fmGS*FdGCsBgg_xd7s{c+Uh+x#s{!|q zBZ{s;xw?@ol-G~^kyX5W`(Wbm_{+5`y!-nyGddHO~|pxj{lqe+i1UHZ21p z+&updlT!A8Anf285ltsBw@Isa@O^|fjR}<==X}d zhb1}Zp*Oso_PvpqNGvz+kU-h6I(<}Z;l5KMi|ezJ3~Fc_)cXk<%Fs#3=-q3;3kYwH ze}c6^UfLE!vfafiHoh=9M2_W)5)&%eJYn2aV!SKc2YO4!X;GPsF@X`33c3;ex3nrA zAimKDkBPC;q++W^k@#V*;>}7;tWH!vLDW8MoFu3W1ALMWdpUfCjYOlS#)*;|G{lpmcZAdZ0nM5%%I4OZfDY)UZ@*#@?R zMqVr#Y~!_+i5Pj+#4#|G?5Jkj1ko=bh)xWNRUjy3nP?dx1rNPr4xvFCMk`KLSzYgR zP9a#k0Ah$b4Gr=QIiuhq|DXra(lnfuA{4J7VuJXvL4$8gzJ7|z*j_8m zFNF&ih@qBxKaaYc?TZS6I;h=VR8UL5tH^F**y3i1_KbC^x+=B2RPXdzF#<=lVj^S% z`K+EM7IGss2qt&#~aT0|h!x!gfBNzo45 zJLNYyz08{KU$pBtV9%NuWKU>rv+N322B*bIJ6s4)0!hm6ZF!l7B=B}8JJR>1LbUt? z;F+mi+PB$!R5Kbc$#& zWaz`<3Vcp2;r%jKdVNQp!aL=q%-R2?T%mqb%izR~uIcEs%2tDQ_3lnixxv(iTpXN9 z#Ub^1DE{<*(lO=X`xifqLvHSN2R9s)8y&d?@z?HVhhec1N#?c;o;(tGG-b`~j$H2- zFA4A!j^Ut^x3GAm7{ED&<)xaNXl!~u#M}=Nztr4>l}2&;k^}#Qv03Ra1t(DgxbcdF zoTz3R8aNaCRa4QTbKmDQ5y4`i+l@5Wn7Bd=TO9%K`XT9l^M z5T|HdII5M4W$ojvr6qIaqiR%87L%%i4i)GdZY2;x@+F$mq1FhLYSgq; z0W&U0CSxtshgFnz2tt#YbKW!2n~H)9PQ6NkdzL%k9pAy#e9Z*)hzWr-1Y;?EM_pN0AwIYcuM4m!6!-t7sWPFgH|h zlLqpo#QT8Ta5+#}d^uEbS6?NsEq*Fn;inR2a%mJp1**tDX><>*Egv1Kqc)COJibjG z#uhwHKyRv5hK=Q;YG-tb=xR!(D}4n>to_An3As*5DjzCYJ-@1KZ2MVpmF!(A*N)jS z#PCy5zad3^Inj849BQ{3+#o=9FP}1*kMb!){$%- zgo{;fAx5HBf}X?0Qvmd!5AkBC!A#kX5PVL6A)1>8@ac;1Li{xkm4t|928=M)kRB@X z9q*D}ObOT8;c1f!SL3Sq8nULC0Dt_xiqelM;F7r*n_o9!e0yED`OdZYUu|AAt#r*R zC>$g9G7YVAx>K}-SIl~Fw6)~k-YR7ZUaG@M}lHIJVf3VS;e3cy6 zO(fY=crn5hsJndNSJDgN0!70dn%1QSvPwg}d(tSs`=S+krZ%u4eN^Xts){Nh14y^z zHd4z&tje*V;&Wq#k#P0mwSAQwQN7A=GHNUJmSaoO+Y>06t(~T?Dum#!MhTE}FlQgM zxw(o)6NLsU8Q;BBiR&dWn%1W!a}ep8^^@RA7{O+4Th&0cNl`=~tWc7o=S+x6Rk`E; zwARkt5N(S%O04W^rzXUETZ(9am({U`rk0;pL`LCG^(N;R;y+&&tj86v_rhz54?t z41jGfYddo<+2+wKN}*6YRRb*w8yQ$V1fwow--2OqX;7l@P7|QiTR3SVlYlT5vJnj? zAZdl;z)~2kb#O&9t zkv!^wf=?eJz+9Db6%O6ql<=i2q8!9r%I8wP0G+ELl&&&=R1ZeS|jRoMvsFnDy%+wuo zJ+7)?o4&pWboyfx$zz@yC$%YJWUFerS?T#fMpGwzgJjs^;E< z7O@z;ouh8y9tdYRC|4@UwjFK|9ZS9pR+3qjfE76rg(@l;(rP(5sEH_+$oz?MeVXea z3taOum@ zB{w*U?3ib5XmI$)`QDQ2T1W4WD;ajMybpY0abAxwB|UfZrvf^vF-2puPrmS?O0c!l z2zY)Jq{*6V0`g^T>5)Q{A2$l7E^?&xQg(xEB7heN7(Y5FQA~i$HGOJAb!%KBk!|Q; z2TP`a%&~FpabJTvyckltI+Ln`&*e1@6*dG4m*8osjHybi!l?6unnWq8HiDzJVFP}7 zi^em-nXIa0Zs^bY5(NPNEktUG0+XsI`kt^{y2CYnyMa^tp36&6yTRjs@2Ebw4+oS5E%{Y#N?p6rdPbhZ zD5h$TpGsAy^!cT*>6WK!`BbsaYuPsy!2WGeP3xeOC7K(}-s`vIv|^>8clwvGH|_N7 z#NA4bmi>FVt*XvP8z=eyvGMe^VHF)ERlO*sqGqyC7!0D^uf@d{E_G*x;OuD}{;Wg` ztJP017$c-cVLq!AIBI|?5ZXZ=?s#iZ_>MxqCnrt<8PaFvf?NMBjC-r5H_g|bzF+Fr zgXS?Ea~uY}%u`GZJUxsf;UaPaqQ3)E19R&T@pwx2PvG=F2hSpE=cZ1N>O~_%n9oYC zQGRHFml~8>7@XeWqQcJa0Y81)N)8q|3iII1D!$FfhQ$Aly{Pps9cylGFtFbk9KR() zqvNMBzmw~RYyqF0c(!z21}jiZgAuKgK8F9m;BiCxgT=>df73)$2&3I!;4=6RrOrlJ z`!q9=CI-@f0~Q8zcFgUIY(qKM62vC{W$GF7d{VPK1BD&=@TTW8#@zF}w|S*EBg=DY z8Za$quCI~st8r+`4~7W~S&&~hk8=V&rsxmV%HP4diBfnbQNH;@;b`C#Uh;9pf;FxK z=TV-Eh;&nJ<{h*Yz3=61AML;C40WeZXxpD1G;90i4~7gykNfpu(rI1wiz+*YBp*nIZ^!{L}TiNW2WZ?9;N^jXS0AIWT>pT5Hw!Fh z@Us@$8sz0Kblb=R>r;eQcl@4GL%di}_`VPC&dP$;$y%#5DzV3!gJ@m+`j~(pO4$<- zxf7V%KZ8^W&+0PRL$kFHTu^wxiK+Sc{tgVWyy&$U=u|X zfbS0iy$@_AKLKPfIx==YqWTPB2iDY76ROj2@*XA`eALJiDLj!FsK!cUB_EIY*-cGZ zSP_V(qjI$DrK4J+Wl(c_(mzQ%o9$R_AP7IJJZi88A#o&OpZJM#PIlR4ofnJK>O!>m z@#JQ4r@kryg9q*a`kObCfUl}k10HvUv%#2C>}`m|TG|d?=&;uh3VEb27wpkt8M%{& z$bCeEe_IE>r@Ry-$?!&Q7$~?bT-;~{_fk3EN%=|pql**|RXU&nLH~d=dakqq_3)*) z7|H&mF5pM2ByoJ?D*qb({rkq;dz~Rt=pmLLVRc`W7;CWlDuLzizk*oXDNDU}VjlNh zgxiR2(I9yX&|cjVe75kpkXJS?u*A3v{aqRmrCns0aa-b{f*Vp zpj9g7f&ZOK#d9f?x?t-P8ZAeWpu-^WK^5Y7u70V?yN=sbz2q?{0tsq$u-Yrdj~cLF z-KG|BufEEfdbL*tysPd(p4FP_2lp_A)^uu!8iHs~ZwBV?KPo-F5^ilw&YK7O5D51W zT=9btr*<>#xev9Ps;q^jUIm}Vj71>X4b0fEalslFnzZhxk>G^Zk^X31G)cqA4LE#u1%+^)L=BJ_2rRapq5-7OM>U#Fe>FuSsE;L1+~i>XsV!mI7- zdIKH8qt607h6pvUK45k4CINaZBaz+%Fw(#Q?;VXiWg(JwMZ1X#Lv`T=32ji_K0&{V zmejuGcpIgTL~;R~Yp|@|n6!b8G?b05fXH5g3um+erDIlv)?_!T;3lO3e-rmZ79zKS z?W4FbVCgd;uQgb$(LDtgs7d2GQz-D##@HOU-owURz@Ddqft!t~JtCI&7Ipk7%-Y@~ zQC@v9W(%M=9^uWTE{wAUKo^Ejd9?G! zj1~Yz33NQysmg3cl>{p~LR)aJ!N-`9Q2=3QIxVsUk*#V8i3L!w2Pgu`0z}8EcxQNL zd!+qfO_xDjw;8XJo0lb1IB{*<&Dkr3Ao1)1_gfw1q{$ z*$qfV3ZNA1DY^_U72;TR#G8lA?UrINmK-*bT_2l|$pWBte*;-c0MG|{3nI_tII7TV z0eta)w`z(TE$}C;4HKpm%DW7>e)2U^*lzR-@Z=L#utiMu20i-vIvZ9V^0l=B#X6px z{EMbk=hx{9+{08TwN1$GT#s1hg+=)BHN``S-jZEN!y&^yA_cCw{6EZ(_tjfv+<0ft z%x9e&P1yrSbRYn#_!P^IZxL56bUS?+CrSrSZvac7hZusCuKZ;Kx`6M0R)B-$-xGMl zX$@n=NksNR5ds%RH2J|}lyJWwYO!0u-Ea9GLua(#9M404eAlerR=2?;!Jeon6|O`w zMaA!KQ67zx`w&f%I>hcFz!?Dli7#LTqc?f)RVyXJiAb%4kyD6t6IUO0nX{Hug8Mgk z{h_00obo&eihG71Lw#Vnnjl0UassQY?Ua&*g=a`=^kz~s_k;;=bn;211@{;Vd7{Bq zOEfn68AeKqR3SRUf*ZcVsqFX*4H{@V`JaToc#7tQb@d;z-^m!!d?#hE%tW>-H+oAn zYMqDzD3nT{Qi%P$h39mkxd2!rC8ewL79cuXfL1gpvw`5R%!Xh8{fUwuh{8t8k(_Pi zGo^;$^9`gIX-x+jynv%}q-VG%{Qo^G%S67p0`$KIT-5^uiqV6(3l!2;J_sfEY>0#R zs=p=NxPxgk^FrP#CuViSM*f6`8^VJX3{!h?B$DjjKZ&xfgf8gW8#4%u2mm8DF$jA? zyqqiXeT3Z^O8b%`CS(u^xFBoA9%kdUMqe}pA}ipbIyfp;b<0wB82lPWs)rPKpj>r+ zqtwx2OsGKQE1<-A3%FPBLcvPOOakQW8PR<)rm)uuS~6OM;g2dS?-Y}x78b!6r%J0U z8syc8n9xJ806bTpIy6)s%r&G9s>*}AGOC-(G0kUdrdMDP;7)-RNiz2wEC`XT7YEUZ z06JU1atXoqptq+XZD5a45n5ib+0+MuZD9%^q`o^xuFXpygeFz{Syx=@}J zN_b5j#HrKua|3&f@MZM>T#G|ab;1iIg^7P?35QC)&p(VASy9^pz5=fWJ#5+J#U*1r zToDir&vEy=Vk zp+f-dXN+Mp6Ro+KxLZtyq{CuY4@RbYfSX5`g7x$Q`WcaT5BgVvY#@~z8Cj1-#5$M}|B$?b-q<~1(Xx>I8(qeL#5>yT3x{YL<5h6Vj9tp-7?IMg6zK`@-h7=bWc+`l) zqt|bXa4EV?aPGi*6X5lUiX@k`KJfg45a%VLHh%p!L1(GEOy5T#?R4pM&`L!#SN)=Z z&*4?$uyOaaP)cW{ieDpjnyK)ck{NY~GXaS{CW!S>L8w1pr1}#^UIa7XRn6xb3jXGt zWw-#06%=U&Op$VV9i)E-km>I~fe2rtdidc=#h5IhDr6BISW^t6f-hX{Zh`OCnM_lZ z6ejfgVHTOmZ}5nr81CDN#BTHo1Y_pSNJAHFVIt>kg^AJ)92a_(lKP%ShS@$;qB?HA zRIntPo!V^cn5@!IO0@e+OC>*Wg&z(S{JqKB3;#5kEKp9w5sojLPJQY0`?XS-(b$1|ZZO-8z9AQWF`32v!`hi8 zJ8J_`_&vK6R)ZCUL`lLo@othzRi=kjB}>T0LLYS_gncvD|I_C?&2X{73_=pdr3%Bg zdC;36)um?d7Guttddxs#PG$t)(!cOv##|phrs^KX1N<$@GdA>Xk5%XpHy|gC9CWA! zGoa+YWc?r-S@F$5lfH4hI695NC;Z?6zlkUL8d2bX@~6}6IPb$g%QVD|g)dOu{@?Jx z_1(@oaR?mJ9tNJ~MjT2^BAC${&yiw{#ssv#tZpEZv7_@#B^S^&r=w~U-C}ydLSOAb zJoqDoU|15uVCHPM4|(~4WYJYabA%J1AYNt-o)D$6*qQse^&R3csN8Y|DC({PBA2iN zkHQBr==LnpcuZxU~Uh1G2V)}`|I-vi#Y zMuD&Q;fwKA9fbq1R&R~|74^q*B{OviEc!u71ieDH%#(Z*?@f&&g{6jE94{@HW%I0D z@d_FtzkgrV{&~PO^cBac1xhT*jA#O;nKt4{G+M%#8J$ry%8WV`EbePxkHY#-Zf;`T$U_#6^74tE^e4xz7~>({xFo(yXH*3O zFD@v2#Y*1CAh~3wvqV|^!vvMgN(ftG;c1?Z5+qXiT))JzqABLxLqr zpk!HeLPe>22`X{!0oNi-Gs57$gtjmf8+dB`QAO2>sW!hk9$J;@b^XGfHl&1H~8 zeoi=6yv2~WWi5{2wUVdWd2=%b?Q@~eoPA|(3j(S?v5t?wps(O)tOXaE>)*K1Wlssx z2We_inDc7*q^^`GbRTdc&vG|`#aV(NP_Vrwhzk?z+=q0EcpVLBlf`f4`0^c1HJaS( zV6qdG$4uZ`Ov%|8Q?=(vl0)11ifAMal6J&kY!y%(P@r8&LUQ-8eaqoppNLW{iBxA$DM)YmI@4hApQ zX@qNcbqeT+RT(7`Y93L|hm+~~stb_Lu|P7%FPC$~MKlnTz=;k%(sE7i6OPJy4!lm2 zb)t;G)sC5XS&?jw=zR?|ML&YvU`!HHuq0ZgMhaqGm@3HrB7`?Rl;+VC=u;~_e6+-9 zax;yztA6!3Y{~&wQpZ-OEw$`}@X(_rq#O~xK;}P<2~n=efR@OgN4Xq5saZ^^(63>V z1}v>&JhG>?ixbEB5@cfa(Y8rr;aGY^Kw-x}6}?A?!NceIb-Jkq9I_U(4|X5iKFs^D z>;vBfhW-D|?Sc8e56pfa;y&y@zIfx|UTPdDO-i{?u+^L+rK)%11>z=?eHQh-5;{j* z`Ic{IvhM;qi4)>Nc0m`WM3&!kQY0gSQ&GPNls!dD%i(nYR^LuonvpHs+wRPE8Pkg9 zk5T&TfNhUf)#In6MjryG$9YuW^VyPx(&6|ef-ne~yp++1Nei7hsTqtnK@IxQRr6u8 z;!K5tns#v^3DllHv5m{wQfHF7LTD$iF3Js$_y;+!to0<=Po^H6E??3#$h=bvi^}(FHvk<>x{P`oFn{{@sbTmA` zq^O0_13}~?ObdsC;D7%vSj^@;?UDO6`qeY=efDDTYQ;BpNV@Es36u=To3B}|F`-kk zRYW5N)oY@#P6((z2|5C|;75hj+_ZSam{ z!m_!*{gZq8swL<(r8ko5E6I_`ds9~jOnipFSG1i>DTXuVJyIz8BCeJ{B^E9T=PoV9 zCl=HKgWg0ix`AxnVoXpd6=V%iv%7b zNJI;rU=|{Mqm^W|*}T|?_8b7eBW=0ilb9coBg(-qkVP_uMpzd6VEb^7A)p*wO)mCLM(e zQ2}SKD-xw#X>`Gao1^q+uD0V2HY43Wf4v3);tUADAL$AG)(gc5y8J2K_~<@MAT9t; zlc=*5oGv#+S_EX`iSmsBmkC5;<<$fMhoUzyezb~#gvj^sFrwzDSSn`*YoVh+vNo6{`#&pT$G9ty>eM^5Qxg|1NpSzi5HB+F! z&T1cneQu22QtET_c3Jt>4?~}p(@dXC$48GVrFWE5^y1>$0iMBMA@mw$=4w$}>~qLP za3KYhu~$R12rLvT#U!Z=X*Wlm)1D|LTTuBEEQj~MU>~Pkc@?1`pocAVT>{{5Z1%Lm zpvu02vHbiG?=ntDa-jR!;;^iym@r=#6DC0Wy>gNHOkQ4lft)mKSB&MLhRKcZu~5k5 zQB$Npm&@_)l~?kwFqm|(J?I~S*LJ@xRr<3EIFdccqi{+r>Qd^Nrzlwk-aFo~2>HJQ zMQF2*fHi?@9>DnmNJ<=peIzG{%LHW#(+N?37uIfD`kdqvL9i%=sZnjT6r=z1RD08G z%RLCq?O#{d$|+ygpc2>N0N{`hLO%$Co=CB5AC;a|E--b1{v0rbA&cObDg0%eKPP;7uefsKM`3gT zQn{Ec+0BItTyN`zuq!sCU_W)GGA`eRXl$GAJ#6mK!Mj-)yO#3IM|ojAyt+{@3w1hw5wb@HN21~tQQXKrn z*U#34G$Y(;wJuck@ky0d zN-kP44@#aeXF;J`<{{JF7PynH%tO_Wa~U3t!5 zGx3thQjOlxc=oxF3l$&6REiwQa*GVmVylQD@>f!y1l~w~jo79C1{Dau$Kf`=L#l|$ zw2F;V8?#NeiWu@SX67edR*k2qwJ!jNV1fSwi@5M9h{(aQ@ruR#gG{M<9g%CqgW7=G zi%$|L45~=(_(t$d;7aJ#3dCKD3FbhweN>i|HW3rIg+RVC;*%2Vmk4Hr;N{04Yo@9M zsS%$GRBaL=(d;Y<h!va9QxtZTY&kuGU%g$yTK8AUCPTtJ)8YeL_je9gB8 zQf~cB9J$N2&CWyF9iBX5ixYVnG&c+1Q!DQo$y3O%#GmF37 z$@kNv`R6O5mdurP@RZKt=vg(h9A&mJ&RPPYhs6a{;&@W5YT#M7^e*VzeqkQcqzdM~ zo0|4iGbu*f=FAIGr4qv=5R)t@7XS(X6zc8c_O;K2_^AIdk3HCZSoR^@_wd-)`D0(( z=f@ZOKVv2i4#83tF~OM7MpCf7rnCJ1OPBx!k#~~=9wunL3(n054{zW+g5|G-A={YN z3`7hF7V+ue_CNUhHzomP0$k7&QV9HXQZ!VJX?g{IuJ@WPLU9CG#ELY;AY_g4ifNk# zDZN4g$z|~c#naz_NAy>EjWGrVnQz5&3h*M|JsueX5bi{wIak>mY){!)Wo`koBv3UN z5tAwqEe8y*$%R^~hbV%>H)yT$s2)Me)UjfJ%Wfb4oK7W-eG+%mEv03SEmMGnXsQsY z>XxCKE6|4ts@5pWR?A%&cnxm%^5+rHAYTv#>X(VxTmE%hZbF&Nk-&|Jn!%AGU*z45 z8O0vWSH;i9WW_C)6Rs(8L%(Cn#d$}Ym|$?qfsyvTVy?5*s)S;mL7hc=;_?S8<#n4ig9YiTFF` z>q59`FBIbqCey*+fB$aFnG#G4jud|XnQ7q=VnIWtqH|>qg%ad$Hu#4-$ugMReM(BjQ-KTPPTisF5Ukvq@-#_m(vRY{TL4{M~plN>E~OhPNn=8@~3!XnK3OJhejyjXY=`$^{C_NX( zaa0fs{|kftyU{H!Bi2w8?NhW|Tt8@TR{GX!iSz1(Jj4Ww;W$zx@^591t4_k3y~I#4 zCQWC4G_gbG0oB__b%RL|Pct#txIj{z2xIQXLyjeDM{~gTIbR(AfHENZx=_#MlnnZI zm>%W6wx>8akkm;7p%GQ1(cmJk8ztS%>8H#TM0BO9O(NVt-I18P+4xhJO!#|mCU0Fl zsn<3zI&J#_Jw6~t?Mz7xdNg~oH zj3c}9YD`j2(<|})*?bsG{fS8~bWf%GG2P0bIiea|ZYgiMG!{bJzlN=@+S}3D1WM|+ zk4C8O_s*plt|aG9u%4l+vu0U^h%|@a{43IWP!fs}FGhXq(l%d-#?fySWC|@!hLKdD zGzn%tP&yfLyx~f$^9u+yq4nd^th6~nRDcGeg0sxyO%~cmk0|J>Uat&#r`!8A`$45o zVmrLc=-1NPY>FM7FG*HFM1^&%K|c>q+46jR;gapWjXC9SO#`Ho}I! z(hT9~>9%cNT|6i_6xph~Ky4B%9HY(YI2y#Dzh?CX zjnmYWrTa{w8ZTsSEcSWsGt0t!M9x0s+y1xjv&kzMoB=fc6=89l3 z=8U;pY23-bqVq*Dj*U>azu6%!&D;#Hn=z*uCzG4e+aUETrTEp?mRd$ObxYtjNnKly zc2Jd0`Cl1J>J2I@g}+L{;L=k_>RO0HOZIoXtdvmB`B@@TyEbfhU$7731@wHX4yV-S zwlJ7QhKF{yrNW>?_GEQB@R_;4*s$c zRm2sYQc_B@5Y9hW@>VG*piuk0IUt;$#A;HWoQlV-DOl=3p1GU7Pvh#b&$auzmhSJ& z|Na;sZ*Q{MyWyJCk8@4yzTT(%eZ9~3Hx75gamHniIU-jOxTX|fF*VDRJa`}uj*}+; zNf`G3JnU=!|Q@YR*Jc30ej!Pu_PZdq^)O>` z2lAIZT9mr1D=wYGfRh_o_067&3#B({_vPP3l!$>`zyZD*+~R@af|GwWt4u5xDE0tN zK(fDV{(_U44-!QEI;CK*q{k<4A{t*1HJKZN3dfAFA|kPe-+v^=i3e19>>*LWsN0^P zR4L8mnJl?rE6it!6hxoouM`(3))sJNwpkUYZ2Wvt&%&RnmL;=C{VxCxPcpp=V=_mr z9nRD_I+`f3$9W!#qaWWdv&F;U`{q|R&$!|H86A}j*n*|RG?^MrsNb1jA%DNZ>&qI)}mhVAWlk9hseAU_1 z=T`L)i4_CJID+KZhIed0BW36ssU}KXMblUzQC*)Mwp1Y^!4+Ltu^U1|ArEpju{kW` zNd@9)hQ^>D2wxF2Me4ty>qf8BqlTE?JP~)`I~72z<7aPHXj}?3p>qh}M?DryxXFC| zo{x%9FfL=7U=|3`QWUB_Wb5NjQ+HxalZY%dMwa^eV4=7yz&um@o<}o#Y&XRVKI(ur74-L6a$hipqA4lQ;Q9hl_&DYq?9<0h3tII*XVq|9oLX3+@ zE_jm*+!pkY<1z}cW#}S*IBXo_`iO*iaJ&bsauoNt?8xmgKGw&iazJi`o}`Yo=bq*C zo5zL5pQ-bo%99VnqFD;fOsPN9h5RZ04Z*%0c(DHwjT~kKGwMB)W(E@k&@x021<1m9kO}n0*h)t#5!rIZ%NCt+ z4-QD%3_xDaU!PNq`9haKsh5YY^|*zb{&hS~)Vl0Fc$z3Q!Y@l6V)aQHN4oVnRM3&+ zgVI$qb_+FaKl?PLPs7#Vx7%!MiH#JWIMxfH6LAm%I-1$GbeM&1cm9*hk;$X}`MHWW z%UU7EEbydDW^WmG5M9o1t2F51YfAgF1t9AW7iIpd$~M zX_Jk@6%+w_KLPepDQf?1k~sGafK7%h%3&)J%>W!hD#e%pPh*x(VIhX~2nFHE@j-qd z+bG7d87W3=32ou@n&}IxyYZ9B`8CCU)R332Z!s{e2zU1tYbNi)4DuWcf*Goe$#J`& z3^(jlfzkxPez+}Q9Jel1ZTN7(0I_Z_F$Z>;W0HxBv}gDYf)^tldZ4EP=F$t?;IVA5O|P3W{~#D0+yH`V`_y zq>|Z5PpOUM49S!zhFD#mzlM}^M2T9(Vn$%(Vc#{}kjx%$w>?-w zNM;)cv+c~D2J(f~B4F%?~eqkwKXP0@Pkhs$Qm0JP$cD|1E|h*A&J0jG#i&QT`f!%4-` zhmpgRYV>gVufx+##|tOzmQJbGrFhHnNp#ah*>#@rWni!fQVpzOuDf8H3jfm=++intk4{D^UCQ=v4Ykt3b9WvnsX6#7oNb8a*@ z*CnL*xh13;LYJ8@8C*X7iN_5*U#@jY+`#=+N{>D*Q~FOOuOT{R81EN z_kp|j(|4Q}N}xYFJGWiuX&?&U^OkNsNxkDku$`8FKM{xvB#@A}=Ed+V&%{aF{ezIU z*L-Vo*lC*P;5g1?cH})TVBZVDja@42hcPm`mxYt}vmO~c26(g@Rh$62-huNh7)%c- zc>z!Hn*RQCMMc)g>E!D1m3-yAiNooaa84}4KT&!d1Lph!_yT5`U|jXV9sXUW*##0@ z^h-p0KTx?E<3aNF2jI<30PR2v9LYaHrMw6^{|Z$o6D^7<1z>M7gS74z2l7j<#Paj$ zCmxNg|1F8t^&NlY_8(#8e4>HXvPH6 z^`5v)G%Kdzq9?3w@>-$(nAPtWt8O{!kh-s`REomG6lyGs`)F4Y@CU0NI6hx)Jpzbt>vEQNz>6B{Y6Zx0a$ZX3iR*f|H zK^cR!)RS;QO$TB&aZk>PEXNxQz(qwgM?qXDGvtKs5JSKMGH)*E*p-5b9r7vMi6oDP z1N-=4id&b!i z%LM7lbqRnQePZD9B>hd?g4jg~M>CkuD}a380`N{SBLL9^81oylxyru+W-Y;>A=VRC z$`UR_%Q;iFz;vhCAbLj}vD;0Ni-k~r8+`vfDV`*{hbc?937iprY2}pdyO~mP z4}T=8F$=CfMoLfAk+`P3rsne(-j4aXnc|?+2X$lxXQ!lZiiE?fTm@rFRxlf*cv^Bk zxf>{?ZQsSBny;^L%QBDke<7@TV2V~CRlb^wl;L#+!^pW75U&+(9?l+=@`Na#b^!V~ z04$W_8RVJ+j0#f_&R+n!2_!k=0oJZJ3I_BrQBMG2vBf>XXP-^BT~RZtm{I|Xk4Okh zWu7=W$iU4hb~q~TjDhZWa9R0#)SL2P7VVW9ma)-@C$G z4JRl8XQ0A-f3XVlR;iq+xKeRSaGtmf{7jL60b6tB0@}FPArv2I65bu&g~3!$;n7ya z+Wznv*LE)pcg~@B48J3~Ic8i`uC0)zu9*Ybrhot30*o zk7&N*i{9mBq)W|?7pqzF@8gpu>RO+5c_WyjebQoDX-{GB$-;JNWs>5~;wRQ9cZ?eH z-I!|p-qUtV;A9)LZ*M_obEge;!jSw^rI-?i=MMm4BC??WV#{Km253 zy`_t}@>lv3<&gp7fh1iWG(!l;Pw`8hkgNovMB;is6x@1X{2L@^80wyTiOnU*Ww=se^9x2Q~v&?Tl}g) zIek*6(t;)5HK&WNteJu3@82@ef+*PofEchPY33Gu9Q*kR{==6S$QM!2c7l9UM2f3NIXtDGJ(e4t!eq0aamn z(+LdDFob9U$eI9pcfmv3Fx%S3sgB;b{%j`jo|GQOOGKjtAko}mRJV(blob)5o*4Wp zH=o5V-&5S{27l<=Jy~&9Te;GU6(grh|iUo268;tQtCqHq-%_HqK5RjsMjufx${Gk2o zk+6gslacr^Gv#6B{lUjMEr}{(CYk_SK?18uVgbkqesg`9<1x4oe~M_1$%LvvP?{!p zm6g6i_DW^AwDeG5Go*RMp2JgStB~v94T3!ECFoJB2v_@@s)+TR@njfX#d!;&(60A^!ZZwdU|6@0M^j@o0pQC7p^lTOK!ErLF?0T)2=pCAJ4>A358IY`jN`djKBx%m$#Wu`Ec%fJ+I<@GsK^U);2clb`XN1_4EMQ5g0B(fKBruw6g1ih3 ze3=MJu@YJXN3nOj8~d%p^9aCImps$FdCJ0EQz2MV)U^As07yB0ZZyDrM=qMFW?DEi z;Lcx;Q~-%bQw8v0LFK0B*G7(Wv+G&3j0Qc31n`){Giq~0F;oHjW^yA8xf8VKZ~&xW znnW)4NhtTA5pDDY--IERm9Cg^ByJeOv^~DBm(6v!W>;J}4&wcJ?dWL|z;~xax$|nO zYsWqrxkU0xZW)AsrRF=d($yL7Npc;?hC~D*fI>9O^ zx@X|cT%dHlr*^$T00#quMrT% zp1_7$JIneIqhm&Vd{7(jX5!qm{R?-!4XH=Hn0&Cx<8R+GStt+x zxw)XO{Xa$z;f*{z5p~5&_CU4=yyqU+eZ-xj&PNO;OB+%6-m(k~;d;>FiXIWw<6G|N zi6$YZq{ zp}9b=o=gN~asaP_UzjLPm<|Csx=CyXP@Yv9>xbRDV|H`Qw zVG*&%A0g2pcms(u2TS>Fz?Uq1@7-oLmprE^y2#ZE?Q8zi_q7;QFWzjAj(CQ&qcz4V z%?e85`KuC&=XuUPkxYK0KwfZjnQ#Frpfbf#TqlXNqt`D4&BrMMz50UtG6$p9n-vQdElbE@*Jg;NsnQhGiEo!v;j^ z%6lClpNN0b1S{RGANiWX#T^r)e&&lQw4w_sec%D+O8yl*jjBvZjS4%>pi#~4wBs*L zM65D#$$PYiI$QNzJr=05HM7F@5K4Ikam^oP89tkW)gaEBSUP$WR;5^t$x+-`;qtVi zm}Ixjzu~^w%hb}SNLewH8J`O+vZez^u-18rsYyq{8v0jGDS&Z))M@VqTx`;%r@n{jYbylV6QUU&;dDpfCtjMFz z7I(JasT!_NBv~50EnLS#M01f8D(ce1qZa3e0%G5jN41+ik-rE|q!)UVQ9@S5H4lMm`80 z4OPHucun6D_3S4RB47T1=3Qhl^>!|}Lb+)MgJ+5VE_d=0WE&SZ?v<#=aSKj%_mL=w z@7sMh`Tqvg@oEPNUyrE$V&3SOK(+VR_C^!jbH|temP8w+Vdc;u8GWMa#g{`OQ`vkq z<~W=t(w%&%*o_$B64JWutlo{mI`_cZ4aa}D*JSJCTJSZMCL$Q_s5{?=YNtRD)vS95| zg1!jn?DUlvn#F?!uk1Vko%o(bqd@&3MEi3mrM1B1>S26!`$aPyUO=VH!M3 z>^*lgu4_+ag4V9M2s~xDQfc@*c?pJcDk<$Y2NLAUT|w*8PtMZ8ecRp5cqRJDOnysw zjN1Ff?oBHt#nX0_H{hl!mbW7ptvao$5zi|DTbKCHE$?)~3pNwFE_Z4iVd$g78DcyeY!BVPD760p38J7^CTYVp~h7E2^hKE-|1I1_om z@^GLxA0$sW!Rv^Q9y;<_9Vm>CTZ>N#MAKV!w7zJ5RgC&EzbYChfhs~cXdJq*#Qk^X zY8eqHWly=%AaNmoRO+E3WN1asKMAG}Kl}qwO9KQH000080HM5aJeYfgH~lgK02#Ok z02crN0Bdq#VQFe#aBpaAZDDS1FLrNZE_8TwgquyW>ogFB=j>96PJ9*1EhDuPc&mXK z6f*{FfQ^xsx?A>xDynYW-#PlREX$Ie_=X?;{`H5yfB7MV&)@wEqyhBNl@C_u??q4OpP|w^hf&;~FY(RCmg+MME1R10ugxcu|scQRt=+neN0=E!HSaS%A z%C(W1{ZJ*i(vSN-^S7 zc)bX?qDj%v>P(0rr#h(_J}Q1ZK%8KXH278%9%k%01a7k)?vT@HP>Ca0Jl;K4$e}p0 zQ2dOO328YY&Rkuz{U8QS&E@ep>lboV4F^Px+2U6@BI;GO@8k=02_MkDi^w1cY)MYH z>qnv3T&-bG971-Z9%+aIvKV2cdr+J??7WKL9%~4Tkrt{*ON1lH#o?HqkI)=>67FA= zu$u7#oiM_Mw$RwJU6BVB%X_RA8J&(4qmxz%kcI^<7anp6!DECHkND^TH$;#jqekT% zzPVrG#8RVSb+_sWbcTttTBaC+QK5*cT*Cq~#%ppRPmtrBgn@YQ0693P-OO3lQc8-7 z6}#DA^H5}@n*9u6QF{%cvLaTHVm{@df;748tX%G2jvL63V$z}}py~~*S|SIENpIQw7^D;u>FK`{q1 z*H2FkQb;j^6p_r8b-=L9Lu>c1@L*>UXo|Y?ML<=S@n~Gwc@IQW$k;JHjq%1Icmg9k zrkxEXw{vy-IIJLt#*?6k6=WGoxgeCQPU0$7-_a}N>?|AS>gXUtcM9a_SkDOMs#k-t zCmdGt4RZPhQY=Kq->^g_J&}eW6Hd}kif>>WoE{8^N2%M96Dr8PJttca#i6CgT##%$ z)o{Ec486@2^bKSQ>A8a(Jx@V$kjySBw(VlPQB8k^kSFl~S}aO7=h_UDXL#E{bzzxS zzpZhh6T`(xu^S0_fQ)Gv@c`{Zogkg!31OUQG2{+M$`MAON$&bQ^bC4?(&t=IM_}zy zmT#IAVax(!J_ae@zsy}gPIVAGA6`mS_C(9+hG;EV^-y%~R)|n+?7-<6J&W2Zb$WM} zI$dbivRk|%BSlw*495~V)Q({vL`v_lSsYFdWG5oS!U9rSOJf&2VwweBsG6Fvk2q4w zIz|nKD!au~h1R?+gmuK#4DL5noq@^&as(+^3pT$z1jjB-Xck2+ni{iWU!1NSr_jZwy@)OK%uTDIoUdV#&7DAO7MP&mSX~!$N z&k}vLKXrT!A@YFL96R^A&MSZ%83Pe}JW{i^^?Lw^2gq4Ru1RS^bJdPpOEJNXw=C=? z(Z{KYx}Q1Gq9TD$ttf?!j<*c~k=FMvtcLvA7_fq-z;>Cf+I*x5pcBS3!-ej}_*6tY z#$@Be&b{9R2^M5ls^-a^n$f&^r-I4Ls&utd{I}EAQoY63lo#qZtf>E+`u(2%yCf+B zt1JnoB*DD36cs}WYGoX=R(f{W4)aO3I1+R3P1TcOyL3M*8fOhm9{t-73Y z$Qm+eP-BarN%4d*)<*OL0y&zUo{M)i%bnx^GN+Kt6vh!o+@T_Zlpc?Xma2=;RpC2X zUHdSY4jJ-*GIvvYy)QX`4%S!~TALXaE>1*_iI%}xL$*XqAU~uj&=quw6Rht*d_qjN zJhrQxu+(xeuBr`r%t{M#gb`@cbXlQVjHt~RWRz$zq(1sg?diE2vjf(mN}d-SPPgsu z?Wn0lxNcn2GpbxbPSwa7cxYEE#S_9<+U=;dy+cTGqLx&I@g+MCXgz?eG`^+90Zul8 zT(kyirE014Y%;8rzk!Ujv5FVJ-C*;-TNMkkmmzZ88666FQ@@2pgK6#oiy25GsNdHF zMTUXqP0&CVb$~mgi-L7TyXg~gqy=QuN9zz(-Tuf2MLn_3mXM$qVflRa@#S>AA%O&9 z--K<1eMg>j58ECV!pZr$F~+yx(*#X^gj-Em&(@B5zh=@K9hbGlW94&>dMs14i40_( zQm%PaTY|3U`R>lszJWI&|JzSk8C`477}*|0>a1dD*-DnEO;8h!v27-#J(JX3LbDhS zF2*;sJ;)^DMiDg&-3xIIcQ%b5kMs%|#31*6+Dr8u3vTsD>y)xSt_(Mh9B0|}9dcqM zFWw)70^Jj;S^bpVFT2#Um|(__M`4@~q@tm|@SSX?n~W`NCSRzRR`r=mHXqX zJ{^f&=^~Q_SgZ$_};OC`;Pj`VeP8Q9h@`*SD6+y3I{9MMtGrqc6uZq)Naht_6~JpOq4b}apz02 z_p&%(&^VTnr}QoNO&iuXrqIEjA9r{8#RD|I<&`Iphud8f+bJ5#x0kaHKZuT(gFgw#j!DRm1$_EU&} zX28gJrIw(Ew$uF6Vw8{>l6dZykr{ZsP6P&l|ly#dvcI0fVC06JlW z3Qp)h%MH0`xt$Xx#e#LJwIFZd{*?%4GnefwkBILx{g>ev+w@Y5I6I|dpAQ9&8a4D8 ztYS7YU$WoNfk{vMG$v*QnLs$;!qP_Q@>EZ ziagG^A>)ye^Yp%r>^W_LQ$y91au5f)|2&yb*v@=AD#Gz^=aMN=@Aac^?#MlEN0tO*y<|ky5Lng_6)Y}-Z0@qDvf&W8 z$3hzJKZihHKgXI#3Vg{2x%~ZC6H0i6TZZDe^hI#rMC7z|LN28ZA`Q_Z6xw?%YTrps zt{TEa;TFg!0}to%bFYgR=&B-A$MOkhPKzplCcR2tW~u2kGf3f43$gNoTb2RpG6z1X z7qW3J6wiD^wrBTg_H~(97mDe}azCWc&mQQk63N5b_vK_#%5xw6_l*;?a|Rg~td8Xo zosYT4HEgJ7<|kYd8)hV06U9^C<-n5@*l{`c{g@ja&-N3|R4F?v%aj}z6%-W8X7KXn zHV)Yat1C?DCy9?libvu}O9&T5%T(isZ`Ch&U&}zcFiyhz#v^jbBSHg>m`-r6=BT5F6#FJU(mjk7?q1|`H0~?Yk4I{W6DIZ(Qwt?* z4xlAP^?%+v{G4Ta3f07xB7|8!K{hyQHxkD7hKdwrMjQHGw#0w`eiA^tB&mu8`JH%( zhlcQYg*Lu90gI#?bPm1Uu!Z}VRN^9Ofmac$2qO1UYCX&D+#sc{M zv@U-BBm}!p5K4F%4QQWDln<(GlbjNR7f7)XkSAvd|J*lXV{C5Y(I<}dzkkaZf=1w{ z+E;3VzvnbECy+&cszoE})DyAwO&qLS(hw~UUuM+-I`2A;MIUsw_F8V)D_h@aoX}a8 z(GDyNme7w!2nGy?I;oo#)I(ZCCLEvb^N4{M)RFE|%a$lLU1u)p@tv%YIY+zVoMO)g z?wv1@tKG_j-=X5_zOK4ZmvwYt$&ay3)KA@?MrGVm3e{ba& zP4aY^Iu(!V&<2(Ivp~6rzzPhSq)!oM98v>5f8q0yhe13ZpUom4NC%*n+b8|+KO}Z} z50%Ss;?ETHf$<_o#;s6jov8fOW4ZOvN|pjw09jh1cr>mFX0!o&xQq2skI!HDd~RX< z79|MeXn5ocfrQhO?de)%!KzRjyLr4d=r^dYWZhQbS@#^+MT4w>B5DY$MOosF?HeyO zRs)Jkz$!mF8T$`Vt}BdrzzTARns|(z_g6ST&e|n0&Ph!1)x*5EJoYIT zTC~PTSXZboM>_xvqnA-BNwd{p=2r+S8|66YIO?D^;M{wB^tPuq63^f^@SQIT8^@Vlyonf_XT;|YKThXdLHPVUJFGBD3wh-d-v7Q zTO=aoi0ZitgPdQJE6yUVY2 zY1=G?%T1vof)vZTD$9@Zeu`arV$P1V7y?UFQm3HCN$B|2>s1g~8H%f$6b%^JxUM`2 zitJ^+86~@Xgj;hi*355VBOqer1erizHHnqpuClZOm$xVR7IQS8JLx&O(>f zuY}y=sJ+iDASE90WriNO(r|&=!%-s?Ko0I{$y_!G`o^`89+y$G7a+vhKo-quY%wj9 zAlTsqEuXBH!uwv0X_Bxi+aNl9m&~*-6eo6#EEDOjXc1jVX zz&%#g@=GY>RR~vwXr@INNgF1%Ug(=<)L6>i!w#|-(Md1ZEmTI15JVjo{Fo?gV+##S zsDU_{B#FSrJ&M*Cp;Rr((d;>BN9<+WDZLPmkEo%s9ZjF>uLv?B(>lcvvKanyxghsI zWKOz=9##v1+9W7`$#vYB$CigI*n8L#Ee5vjq`$l5d12B+O-4Mq~=Tnd6(1WciUnPzqR?rg}^ai-j9)mlZVq*ohs;H|P( z3TfaLFt4!pr*iT1G%ul8fQZjrFKOPhp$G9yH0H_aG~dS65T!>?LC>WJxfpG+!@k92 zbD>jJh?)2zE!p~9xhjcNjkK25aa&fo%v4gW2WD(8snFh8w6V&2sMLwAO+(aHZH_6_ z1F%eG!Z_*9aSFK^uhl6P>mezTbS#NO-cTlC)en*fkO{URY}{`eRv zf2LW7uS>L1SS*BQ6gn&4;k`!hLtN5qW0;0*B@XAnYrsiia@+<@bmfg67M>_g+D+2} zaUtj8Slel3UZiqm3vpQ~Vm#S3+Pl17!>3#LHAxG)Rl`;>DxBiYXk&hLE`?jihNjQO zM7b;Z^UcL^oAr?2NIg_&w$X~`xVIp9&^||Siug^#W9ROS9|`@m^nf0R%SQetc#^#8bOS%9nt) z&|HHXR|{>!-1$kY&uPBuO9uS@YoNEGCHk4-7v%pZ)}N_ z2kq{pff1)vJJJp0rstv*%RiUuxl?(QA>R1GHds!PX|huk(gyH}@Mm2g0%tIiqU}m9 z1pkeyBJ-4;#uJh;=5_S!Hm3|uQ?l;sBJ`c*%r-;qp!J*HE5bwmi_mhSjz5AGPR|ho z%7S^spCIp~;31m>kBAOOXl>$KPkG15JQ<+)3f2!$7>v}>HUr$$*Y4kx4;VXP%^+`k z*QOlgP`0>^yaQluEYQ@VPQwWssLI~$Mfl6SYYwci5r8sNmWxzS$$R4yAn-PDhnQ2&ACN_V46ass#r1V0^vt^hmjs2 zO1q6%$XZ~w-EiQ&qXawEj{EwY2uS^Py)XTMJIGhaQ4Gd?~`wN`ZAn z(eCpQMa(VYQI7RrB&oJFKqThs1i*A^RwNC4?|CKcEmMPcUCb7Ct z&+z^w#QpEKPy3Q~J7TK4S#-2WWK6d(i7TAphmy4qXUx-8dkq^BINTe6D(t=RKmas4 z!Y?st3d-#8RZQc!0=~lwff_Pq``Z6-y4Bt9dv4zUZ2Sz`S6~^Y)oqSDplY}~g3n?q zcqUehrc9^66hd-s1tAYuk<>$8B=Q*XnX3!EAGlsZj(4ikJw>zmC;$i_;0ndTQzSPU zGt5guq1xm`a-^NPAbTS*Gu|b+eTj;&@A3+UvA7G&quwqt=A$dafF)rY< zX!8n$t(1JF_{taHQRrLN9)}pSEc#%jZxOu1U7HZhBU1d^`xeQ~9gS45Wf?J}R ze+hx%xsRi8Bw@Piv6)}#M)^&YRS+K^LaiFPQ!eR*J-j}8T&6(W#6QI536A#f%)$b1 z6vdArOjSeOX1Krq?EVk+^!J}V4$ypM?O;t~AIfsQ%UiD(OLS@l<+KN;a!&&kzl`ly-#W zZO>49x!2ZpDL(sG$u8zC9*k-;7Zf{0y4U7>Q2wdiGFRo}u9- zM&);CfQW~4hZav%1!+{r;-=7wP#Mm(tq6Qm9(0~MQlJTj0^wQ$vo#7{!j7O1a@wr1AFmUv;4aG5>~Xi8*v1x5ddS-8_IcE|*6y zbPtu^;`kw7XXy<-=g>W(O{m;7FftuP1hbru-ML5WJ$z4UoT}r-XZ8e+13?f^aM6aO19KyRrZ$p!ZJ7F0)#L%2)0=<| zMt_kLDdJ}7RCS+QfGG>2n{R1?RqkcLEn#09AT;a~i9tIYd>-{Z(2=qVa0Rj$YZed@ zhhRQ;*cOF3m=D>ho{)?)X^wiA_Blt*QemFExyPH<00Y~Dw3ZatT@puComMsq7q#|v zQ4zSFW42yA3-&bD2v>3p=H~-?YoAN+O4mc^xgf(wb);E766`zV7k$lU_XyKdN%uqK z!ixzV=V8Lzj6LA>xEA#Lg+*lbt}YwnEyS0Aulo|rF+Dyez3Iy$ z@^!#cJn)n3A58E?%Hs=Tp{Tv=4n5jB;@a%E2Da#vC@bQn(h29V zt21JCO)mGXhTO~(3z7SgoU&n4SSWX5NqgdM{6fE14D%%wl_nIS+Aj0{*GF@KXoom- zDmP6uN;>)%R3;Mts^+l?hWFrMZC<*{eCRT6$t8ysr`Rd*funQXQVXYy)xeJMRa5pz zZJlFPXmL0o7~y?R`EA?5!z0Sf$Ub5UX{&p^7m!kI;&TzlYN@-d{t?pspeHHfRmUh- zC3BQJl*OPh%9~xiqs@WZQ$?{%Vk6b+q)U7429;Fm^lptZJXQD<16*xtDXWi@c{1=M zVx@2CVmGQl{VNtC-}(@WcwdHJaQZ40*oIYp$x`OP0S*GTiqi`!r!cv{h0Rb8^9)(A zz>F!tkeDTKRLWvoQ}vr_P1{mn_5H?>%Sd8n9OkK_Ez36t%o9LAv@$%-ED68uX5FVs zDZxdUukw_WuZ5{(y|7&9tk68PI5>p^J%@!UXEKiwZ{R5AMpb<*lG%A%L=2Cx+?bT( z8d^LU*R`=+f+|WL==^~qiHZs z6}zH--FnlUb6?F9Cp<`VYNo%ess-miU#yo@eIE`Te zrm$7%PCf!O9nF<9Fh=NG&B2yhrs+$$X+7irXT9o2%W_{dTH14kOLPY#%j`U!uRRmwy3BVc`UJYg5oxaN^JH51mb ze^&lIOATuuau;}3nkowl-u6w#e~%6&qlNF^6Tf|13Tj*}e(D)&>DKSg^tpeb#Za|k ztd(|;9X-NJnQRHIqAEUS9cqf0jNMS+pg*#R(Kj#r5A%-e?F@Dm)$FEq6R% znqVHp;v(v=s^UsXq0!KsD4$tR4389fOkXv5pgL|FLll^1vo*^gfcoz1{XG{We1X6&JMJ$-YMB`YpAZ|QH8v{^h2Tw3srDC9=toBCe zQ?86%0$|ugn|9fPC^S;{aWeW6SoK%obxWPj@eV0Y2Oue9deG8cm6)_tb6EmrGqATP zXx|+rSJ<+^Zu0Baed3TODf1dLWgykoUC7NsdPp5>XIX%AGvo@2Pf05>G{PWiERV73 z>)}P#Tgce2l_+=j#<2lrEg^ElM0f2&0!%5wKO`TvubHPTG*dF~k!pZ;UPler)*a;z zQ9E6kqS=WYD=?Q0b$3AM?H1H(DRU3i^JgOJjcV(z->m>&^=&md+o(X% z-r#N#={#=CVH>FntL6GomRNSwv49q+2awT|xUqezM`IrwQ$yDFLiBighp;?o^u&a^ zR%vdxMavM|(Zv++T4iG)>rY8}yoRp1uDvyXCfQE5q_>3U;xkH>8 z*B@l9vQWngjuVMnV#58#1ydHrt!ki-l$#S}=SapnpX{7Q^}tAuMRQP4&n@bfInzgq zH22VPyzAD7Wjiim)~>i7Lp6tIKtjW`1XvDo@;!r|Y2RdnxaupxeI6|%jWFfiJSc;cyfiCF9t~EtRkALn-ig?VJ;*YLs`Wv9LRn}LlVBFg-ARx8 zMxr!VS=4%$Hq|#vut9qw{GSd&$Lpg7hlwY3*8-`lvUuP zx=y6{4_)V$>^coZ(SK&?Ty=aE+ftC^17tXSLGeKqQ($6b_frl~b*#O*B`bE0Bg=aE zCw|@ppZJd3^2)`O0Qo#*!H2ie^NPrU?On3*ii|_AKR_QU`i;s{KRMyB&i5adpoMJG zo_nTTCH%_$q@CCp66UfB)TW9<67;T6F}un;dvkdQGmJrt5K0$b6v=XL^vhe;ymZLf zhYICKQ9QdtT2|+ywv~|PLH)I5hp*gtkBuW6&aXc+o*N608?#TJnE=Tw#yC~~hU|$I*p@|TKYubM225#VhI*rhUTsoWkp;5I&tZ=niy7Tns87CRV%(msBOMX1AU>^G}&3KTIqq%2?{* zkd3PBjGi9`e^bP4`RRFg|JBm}`qk-EQD{UoR2m|Mfw_{zE566>Q;5*`CSoVc5+hb;piC!BRtrmml_xz0uEw1+RvR~B9 z+{hRoXh2LqEtjb#;-gix=?L-QT$-1?U+=#KTi&H1@9TyQ0o@2;TUOEh;5AghFDy3v zhK!AWC;*fe=RSaKL5R%v_jbIuT9SlRL|5XaC&YM=X&2au)}hX>G8)lScwlbQ5PrSu z+bidaOY>VU1U#v+uf4bTas0HjBw>Hc?Y+I;2mdpwu&qk#-|PLi?6kavO$@Smq}O9n zgK`*J2E1_chJXKoa4o+;9tGixlVhvz4Ud|)A8yNn(-rB^Oa&r=u4p(jv7!AC%vJ`1 zaUWflgL!CvgM z^IFsD(lW>`Jj;h+9U$t_yLeb@Bg-4b>uCnBa51w*NX1AEKM22DsV({`I4=l58#ZbZ9?Jm8&mCpDNK?rV2aD>EiuOYS zp;}%X^eiS%R93?0|9tm&tAUKxcK>)x2F_89BDvw%cWg`PDpVAbF7S&7AnLJZo_%q(`}L98h7IBhb^rN`(ax47sf8s)er{=JSAb z4hRg9bR!?Nkr1wSkle#SUrXYD-GS{OoDX+Kij>=qwsSUi65*l&_^l#L98gh-q5_sZ z9>AKe>>{B~BoNe5O)ypt@HH|dV$rauX_qZ1Cx#tk7{3EI4i=qQ0j8pYngW_P&O;nS zB`#WaJcvbR#sl@33)VUV{CEHsPd zCKXcU!Dz~waP$|EqjIJJu}h=vi^B084Y(^~&yNl$g!v^Pd17HI5>gi}1Z}i;(J@#v zhHJ4)0+J9nTBbq8G?CDNc5KT&RCGx9Y>-;Fo!1dn%g&<{2Z=-6EEERoE}gB4GK8Sz!6n^I|=gMN-Av?5MCK0D(Y$zm{$c$DoEfo|-g1IEpkl zb@diuZl1})jp`K>25Y6uSw2(e#F%L|mPU$9Y=kZ(x9 zpOD~%1gN(oJaeHUfFr&w?`_BSc7A*R-QU}fKity$54F4WE;i}?w_sb2#Qgp;5_Cm? zkzuBJh2MwQ1SYx|C9JEF%Q{&D+z^bGe>Ro2LbLFw4n7}s=UN2auq^{&B@umHd2nCr z{$&oNL6*ss6y6Dg_|27-dpyH;oko3=S6)DQ26u8oPR0YYQB&!vDDOe%0jcHN*%~2_ zu$p|vk0&+$6vSatAu9?vQ`EO+#;uF(vZ+u}cu-dwro_-BNur&nv@(l}s3%j)na2q# z@b}x6MI(j^LAep%p$`&6j_dE=plsq>buJEx3|m*S|15a0w!4a&UlPCK`g#;GGL>ZN z9*1|HL4Cp%9TAhQbLQdDkL4#tg}jo`>(qY^G8WN9{oC0)5Bm|b(=O-u(6B=)?JCKX z9Ey?yKE%nrgLS_{q+e2~YgYC(;nmDT0LLk0LaLgS@|qmTh)Pg+kyl`(83Oj{nO4*A z41vep^g-P)V1A+u=ltdv_u6|k!hy9$u2w9(aP@0rvpZv1lyJ4t=M?9tZrtAEb2Ivu z<12w%pLWB<&C5-6@3^7!@x%W2f!Z36;o)&&(+Oi#p!H9Lvz=QQb8>n62SqG>(}vTl z1NEK%a81ehT?tf1rP0HiOVaDYeNxVcBPvPZ;8s2g2i7{CtvVtWb8~{v+`p(_&ORT@ zTEmL>;)N?(ASdUbRzA$wXOjXitTx4+C0(t&ewY!xFE{7traOE*Idd8e6R~bC-9vh7^CDPI{Vz{) z18Z$JSzhzMd{ky{r8||6lvqsa;%c$aJoYnO4ZD2Wm!Fv}ujb|O96_6Z;HR%YF=)JB zcId-O_wbFG#~iie(87`fyQHWepZ;Grv!802O+LKKmk?zII&6dZE)u4djp5;T-!SnA z5>{LoR|mOk{$FTCE`CuUJM2pLq+kw9Rn_6P?V=Iq78T>3MV0n-K`525uG4=lF*wJVBF}5tdm-2eo+w)O(gVPei^|{_@VI!wT;Qz*nsku zf|)G~@8%&o^w~(FP+y-3gFCKP563}ZZKDP>4g}>a`;d_EGGxVKI`sPIUo8O!2M=L+ zGX@AbVqIqyG(j@nIV{BM4B4-FB@XC5MB5MtZp;o8R3@DL%`unNc`zMIDGV*Iro`|i z`F%&r%K+sfVIkAvklfe0P^aBN7ejKJiX(=7xtrSabr|GU2}(3^Hy#2{73|@(qxDK1m2xt` z!3hpiDn^J54F4b}cYYbwAsTzj&cS_JmJ{By=-fv5IapSly5OEni9uR+6btKa`bAJ% zAJjPokt3A}6F813*i&8Ck`G_3*6L21e(R1Qw5m`sXnou1Z0_i^2i>r=$sA?95hTs} z$qC17Jl>rRzkgp&`B0Md^R!B}lPNj0pspzEP54eIIl}6uHU!sflsLhSjBSlXv#A6n zL;1+76$x>wf%9^>>Ykh8)iqb=-Sx#Q8S&ek{>$e(>+dzVc$8O}-9B$Ur?7{EyCP$W z+`H;aBU)$zWZGRNs*=M!kwUnJDH&MQ7pbbFHkD*b2A+a{Yk{OZSQ`~n-Stc=R2&jH zc2M)5)tONu2F>1{XjglGs%ZOZ#+FFJBGOnM)S>wDL_0wrT8;U$;I5Y@q%s);Y1_$y z1zvdZ4K@%yr27O^IpC*;4cl^)as#+;N<^DTOHk?Kjxec^D(;fYHm;UM;^w7zEbq`6 zAErhZEfzaesAP$1D&s*+ywIw`fWj1cV(j}$YIP_kJDVm45=tsVbXB3kKxu+Ria2to z=r0o=CDTss8UjZmhoXeVSqzb};9$*&74pbZpTm>@XtHHRTGoS_Vr|Kk0QR#0HqEed zFN+iJX^YOK;A;f-4QmLa+Q^iLyrTGGT%tx8O*5{wBnJZh6desaHvHRIZ#QZ}T)la0 zGt+G7?qT~+ZP&(V!1ex!s(&JdA-bv%mS;9D4z}*FJ8pVU3!gs)&K8vqyX8y1Q}O>_ zzV6OJtJK=}YX-P4lsJsp^_i}ZMmWJKEq-sx-|2S4PvB~L4h{c=K$^KtMjsc$(sg}t z(}zi)c9|V_&EhC+IyL_HEPKJx? z8)2PgitC(d4~ITthC_dV;m~(-TnJ zL38Lr_@p2z!Pe0f4xZZhX6ws$fmTCBO`{~7E27Zbgov(=A^W(x16Jtj zuF@m#QpYlJ9`Th|S(TX1LT?K1+~*SGerGOpHK(LLW6K;3na^Kxymv)C(TxwwJ0IL( zT?AonGjEYmH2%)!6#t##z|K5Y+#ON$MiPF#4iB<(Po6GQ6mmE6&Vq0j!uKAYcFYO5 z&pxdDK=ER>7lWS;+lODu?F6S|xOx9zDznwUSK8b$K)jxXLySHPmkcC>y<$lc1}ZFB z+?bI7MSqQhMx6(1m9DW4!+yRy6&9~D)%zgUA~D=`;NZS%#k1DCN-`yfqBKN{N>Ww# zQw231MTvQ824A6)`E%JIg9FZ1-Za{}A&xu{vwJs*v&p;QJ|JI|s3F?}n?E>!_goB1 zB2jz+LEWCW4kE33f!jvKAt?=s>qCW1ivn_X;)wHSx*=j#Lse33oN}8WCCofU`<6B?UQ{zyC6lhFxbI#l;xPqJ=M$Kq|rV*{a<{W@A5pX4NB!S6f}MSDr(LS#6(9@#Tf_RKGgU$nT4haVp1!@4r?6r=KN_{Nt4vS|G*49;a#MRmVrEKfC^|8;h?Tbg-q2ySepDU z0;z=INp^T06S=`(Zg7lTnY~gWLnZaUy`Fh=jrc?>dZNR|loST*PQ^4i5EC+Tuw+qm zh=+3NsxS4lZGuFK$jr$TOkK|EaU}p2k1$2&g)wpqq#}m9DGyW0M^@Yecp@G-;6O%0 z;fsn9SIw4vzk23nAZ~=AyedQV5Ia#}wdR@Ex3Ey!S7@ZAW#+}((w_8^eFZ4nQB{mh6B-&U| zG%MoBRb!|j9H>e%=;TCTAIsCaL}8EmG<~Y;rz{_Z62g><(Sw-!b1-bQixd{T_ZzS; zzZ|v9=o1SXN*&WqLhLv=AmOzw9Z;5*SidXa?nMGm6)Fnd^hRHm`*6(h4U@E2G81jb zgG!i+E}X>~3}bHQ!RHPr00{E0pcQY+>FxdTN@isQ0Q&5?bdD8)Y=mW$2_GV2SM zl^eNtOmex}zUOOMw%{$!*5*9J((n22-vHw982nI;`yfjgDb%<5Zw~);5e(n}4l1JG z7t|G@F!@P~p$`=*4#}ddRt=UfvM&uGrm^2s5GkVG6F9r61WQ(7%yC2U%M)2~2P{tQ za7aPqNM*t_GtEX1qdBfipSe$Y@lgdwBV@Ryg;*k+c`=M|#`9XZuI-HB#niV);;ygH zs8=o1M{UdVF`3$5==Kn@+d?qD=*hMg=x{YM-ohZws1S5t zmZCaDR~0G>JFOo^Vdcn`z4?N@PV3jE#yBQU;bz+oK8lpLDULB$BC9eDBg=qvtoMLN5DKkf4GB;J;<5l?=I z55pJ@r!!kYG%&MKU>mIUu3C~Q6(Q6ml>8jqf&$xcIFQotgp@2@e$2=Tg8RjYW#Zi( z<%heXBJm$CD*x&H-z>;hC;HDgv>g9u#7{KBAOFB`#LG=)x741`9N)n(vXo~cYH326 zcuq468@!H@9>t)rrnuH|MRWK@n@w9&KftCT&@C;(|{>xxZqvialB+(UvECjN84l1k~-pE!? zQX3U_CR^WFEZXhO6)Ez3bk!u0 z!eHg>5*Z`gK>196Is_(z=hJDJlE5#N7*ItKz&$P~k+R0>+fm&pMmU;4_YcvtnI;D^ zq7oEdWEdD}21BM>=T~ySqcC3u|42Q?dKd8%soOTw%vv`XXfl!FBRJ8;ye4e~?!O=$ zVBFV|0TqUyNCaP*dEUDZb$8ZxwdPJ-c7>HFm`X5C@Z2~cH2(!r5k3~tqH?3Q8rFI! z#=d0}=Z?TzW6!42IrNG8Fl?9=5Tibns8o3kfY>q?Q5XZFl`1vGV<}i&kBuRr^olS` z)%a`KB{VA_uMXsde~}qQ6ATs&2btm`HZBf{fcjtyBH5qvu0P}84&K8PwcFWu8Ke|@ z>`O@ib6c2Hh_y*bMKrIXKk2a(kDv}BM=BF~3LKB~0A<=)c9D`)s5m52#LiBhU_dRZ z4}wg<^T9S(9 zSDUXE0z>L4Y@j?yPE;I`+IWB(KNSa&Bb5o$%#jA!F;kZm{Ge!LvD_7Hq|voD(MH8V zQ3uh0&&+kApB7%`uXW`i+EkLNxOvlP+SI8r6f~Qz%Ns>Dz z3hO16lwYVJEaw4{LwhYt7EO5#K)z-mAE1OoLMl-FVp)$E9|2SDDWD-C6%s(Pq~uAW zg%)gD-HILa8NO54qZr!2QY56revT|gekp2?G8Knp)OwJ< zNiZCZzSU+)2WwlCDH-6~R;Hpb`Em*OfSx&dMK+9%a#%biugQsuV=l8bK)57KQ7{|J zaB{P_qv$?9Oe*5QDqp95_|`Tcjh@d1KpucHI@EU(UV7ChT8Z~2Ceo?V5I zPr{ZMQH@d&JDIf3%CYx8&dp(yB-_$Ba$h8AjRGZqf}Fj;7rF(r$Nmk|r-MD2zO`h`^+{ers zv*Ts5Ah8kI?x2a)@{s8VsITq5VvMQJW2rK1U8-F1Uj{w6$Z}AAq5d|Usl)RfC)G-q?=c1upZP* z6Z*T&I7lP9XLV2sLa`^cq@)V0*oT zk`@lBs3cPYXk`(ky+nZ*zYPQq&yyPN-ODP@fv`|f;RZ3|yFOf~EtB5O*q3D3mXaQ} zSHjcR%pM_6Mz$AvCIW|{tPMpTB`ch$rGsi>o)15K6pcYtW=<4VAHjjm@u%eojC{B`DX`B>W>8MC1KI;- zw)MHqiQ+_2))-WyEU}}M!k#C_`e2p7ZZ^IqW1bT1))Q^0ah>!rAq6FSm=8yBqfOr< z8oL9Z6Z+MsBlm*4yvV{`yT_6*!KNM?=w~LzuNYT~tBHT~VNu%@UqnXvk(__h+mo(u zl`FR88`e|bkx_E{ob3Az-DHMDJTeRBO}sZsDvcIdurSBl#V*F33hZx7<6+Xw-$@rb zg^`n{*lB4DRgxvF;goRYU#&rXiYJm~{jZKD`(!lS3t<@myZUCc-)lRMPv@IZg$VcX zefd>^zku$jy?>)~_{rS!ewf;dsA>;tK~u9zIJ;p}e;63%dvQeXH@i>TJ78T{yweB9 zwv1)}C5~~gt7}on-xec_L;4BTU03L_^lrL1=o`PZRyjMjk;8+b=WnI<>B(jNbj@pk zUE*>dmOLLcaQw_aLkb7z>jpgcGwbd@VjXvYUA2K!#5gGF8?0bfOH@5cUkVw1tM$on zCu$7Og&!lC$HKlr-&DSHw}u(zebBobm8WTjRsU_qgFtxa-p8xoUiowN>KuzXb^Ncd z4iZo4Icf6mOA)7@_GtOrhN@Lu-r<_BV=U~L_u10#$ghPyS=YFaR!C0B4Zup+Tk#i` zOuOlLP$2L6#KQLt-j)#1H`<^F)}2@mVBw=gV$?eCcfg%W-2rgn+y}PK0ZCYrz%VJ$ zK}{t&kt#O>Ip?If(=Q;*VDDA#%U@{jA*mc$t?#uo&Pl3@2JVXNFEvZASU#vVTBQ;G zQE{DY*xniK?>~7b8T62FuP?E?gb%VI=2w&7vnjp}E9W<1ttWz`9UsPkV0s?(+lDZ4 zKt-e_QlR26`F8r!h?Q_Ln9=G?gP1X|8ijeGT_-TTyL3x_>m_MO5; zgG>tmwJT_2^Y33p-~Sv56N#!|LI)~;RLstgE|^zSGLYwH&k?^yp??TFw_Vp^A`IX2 zmToi6@`_^@+v%d~X#gPsS4e=65Zv)%_@9F(*_(sZ%zXdYIj4!^IL;T2c|p96=d{Y9 z_RXUZe@bix(E|(jM|MOTi+}xb6NS5aA*`?vX2sxlC{Wf3G`JIdY^WUrZ6r2}tLh}G z%YhRee1kdmn4$DwT#@7BHcUi&czAkrb`AEE%|ha&0S@pXwzJ#BqHrTbS-d1;PU@El zq*NPVWAjPuFuM9hB8_(QH-DOJp@p(x%(&sdDo9X+_O8+&kuOWSK$=2zQR4ipIN^K5>=fMZit<1mhQED zVR8u}8E>dn9*I}oOrqO^Gut$;i+EW)T{IJ~fCHqLGJDUNDHL7C)_pN#A%qisTP8gu zOJuvT!SlljO-N6{#$73!$6i;i8s+1n?mDNPP1^%}Uc?eR+q-!aE8~~8ka`Vtu~Hdn zj4hyIgf)xSdI9Gaa^-LNv~$$EX1E5wXq8xFqYK*!_Gsps`mX6;FmgUVwDO+7!&Ufe zF%5yvR!c1D-Enyt6-@gwhB$@{^BhAh!?ZDsdE_t#B?dr$puamqiZ zTsJII@8N-NFo27;2X*%Tnj}iKOg_)tzYzlUAtfIX{y`7F{X$%u1OvS~hoxTofKv10 zNWaqW&9|R|HUryHQV~S4*|faS1?8u~tJK^ckXO^=e@L+|x2{3S|8wRi?)>g0NnCs2 zRN*gnLi(3Rud;DIDVSap^j^#onmGGr#8pwg>hlqCP5DvIv-&mahpz|iyRg^jLibA4 zuTkBK*I0Ry-11$+Xby{q>W^#OJD)noeY^bU=y^k28q`aImqNhW6|ku%-HrVl6D;)u zJ3zcEPh96-XQ1TnyZ1i@DgPYy&HSI!{8+Z+*CCg>tM<3RCBbV7p`_WBHy-^t_T!AS zfjdy{*-RYqk0T|;M`juW~R79e$veHSZ1y#B`^ zjq`zt4d=xMzZJoiEp88FW8w8`#sv%LL|M3KPH1*~l05V51j$3%io*k36JO7frozt$ zu3nU<{;4NcOVRddCQDuvAGALEtP9Jr!1KzJfSq zQ|niC-iUZjb~saS?tL)W2(N+*pQV0(g>-zeh*@1Gp~kjHk)7C@;KXn4&8mNrh+SRC z3bQi5tbyv%0HqH5LAc}s{`JQ_3dIcnufKgH)-h34hw(NHTU_D3B1xW+R^V2u7!w}S z>I%S#^wbQ@>O!Ruk_v5@t;z~1CM%8uXHQ9i6Z}5KM6Z0??)NLoFG@c4w~Z~OPY|AU z0Qe=L0Xv2e_-+&^B~lPcM>s&U_-?Qe(m?v02{=YjNAj|bswO_G8w>E{IcE&+mQtD` z9#>&^Bg%#{J5+`>N|CC_J!ZL;A<>mqKJ}V<9=DNsW7%O>Jv?&E1r8mZ!)G=mR>T{& zEhJ8YoeiuW;>vt9*l#VxmIX#CC!C&?Ayzi%+y=10Fzr&K2--^BN|(90s#n!c z(ynV3g0``1$%bg>WMt=f7nEJ<)KQE+I%N~Z;v}w=I#YYt_sKOrn_;Jn{HhzMITEyZng?0~D)kKoGPw^D-M`C=G_6VUfuj;)B4^fXOWS`y#KjY_9 zAcc-n{Y5lUhwUjeIU6INRD23ORKu~I|mYYI(K-}8dHQ($+b0>7}KaQsRjtLrs<;gl+}vco4n z6#4y2kc_ahQT_-PjhPeNNjx@K#!N-s7G#2zk~+@SC=vS!T`VQ@l#RR|+agWCD#*aE zLR$7|7(&R2R;A8eJd3K0atH}5H@r@IVYXr|D3V0V@nzoH%9z%ECQWj2G}CUIrSYTU z2@<;pwja1`;n_;55AMc2H2&M#J+zUIWmhBAXuxeDMS)VD@X0=X1(9jh^(kypd;~o` zUdqh=VZu(3c$b&~Q(CDRJ{8D(WuVM1t`dL4_LAAXpOVU-r_LSt#s9v_NQm$dxF=^ZdWXKaE|?EBh{1N+-SRig!6e z0Wni!sO1TNBt2C77axJg!iEnpp-NdHYUB&OOLeQnL8!zEze0jfy%S?y zsl+DakQdvcM@OX~1I3i63TAP&5#WoBe>L|iHTRdiW_>#j#wHy5Zq66t*nc>q;6w$2NwOBPVC zZ%kb!*2_;4jQ(yf)N~6etkG&jAgj8@{t+4ploXBfqKWT@eSBugvX=A^z^R>DvFGBek<;k+kv3p^Kl)fn;_ zYR@(@m$T1E*@Q#Zpj5yKdZSWTkxZ?*G|TCgQ&3hVp9pdotBf zqfqsTtg*#=VYC}0VA;iYqHL5WmdAt#g3fxPu+Wpi>Q=#$WaTm!{0v^C{L8H^e+~{3tmnVv`VfQhOmlF z7>6;zf?-22c$oL61<<#EuR5)nsQ(b?HVw>EXo(inw$s2>dg&!qsCIDtwh`pK7n;1hR^vx&x{Zxb}YV2l~=R~RUlLvfqv zL>cN9ayKtM&6;Wx2z37-uFif$+C+DCGRpEObpcR?jXA|ExUrF3X%WA(5zao7eE*nU zy5lf~Xc2MYw3OtHH+zaRHeuLMMjP+Vo{rIR7r`v-ygrMN!p@$=!Vi>Q<2Tz zM$mYfKuXp8R-T4UVCCvjWkM_8GvgQ){V~*>AKn@h+G+?Ie1?S#kF4qT^uk)tI)(c^ ze&Sr=p__f0=M=K;**tWobP?%13F(5{HF_7g^Z7vJDs#1@laD6ro#MO4I+34Caz-Y^2@L7~DfL9Dz!2_&&qoyj7- z+(6MH_9G;`J}aV$>tr7P{j9=(dv9EYrTDN&{!MI$`_~`D6Rf@mWqn}7Q?iKp&Q1g- z3)m!4X91|{ntIe`Gs@9GyNn@031OF-UnY={72{m&mbg!r6jtG#km30 zQFdV{xiK8N67Pi)y!;g-8t20=D?2d{v7cnV32b=Q!I;D*$WfQ3hy>QRxsNuMfc*;gwXa?LP?Y&RA zBFVW?o^mV%T4(Mv&{2@kMcl-qI4qQoNL5*iz+kiSXaef`Cr#kc#wLW$o-#Z13QCha z=p@;H1-rAs6x8DaWn8KAy|QWRJ{EG3=pz#DW0|AIc4+Yyi82z-0SsMiDU$P*A|Z!J z+}k|E#(48@HH+LsGNDy}z$~-$x3Wxml_&zzs0;KhBa}t#Cz)>yyI5Q!?bSh!aB6D= zhuS-bO4&I|{A*E9c~UhWKb>UUk-f6dVs$;gF)E52wH~eUvHP!o-myZ*%4Q{Xd&o-S zP5XX3BAZ3*Cy8&L;aRe>9FpCN28eObzKoxl;H4jIr-fW_<%y|EO!)fN1j-ZJ64tXs zbxHjEQJ-_nFF?j@W2&`=j9~NTvUy8Dzxqy6lVSQ;EdNJ&2%Khi?T}PrXcgdOeE>EO z$&u=M9~;uum-TOfKrMa35&I1{TQi^^w}jHF7T_zk2~C4d>|Ep4*{3Awc}XbUF}8N> zfVPPxbyOEcIk@HMGv5f*LrCJ2Xsad!li17$Y^Tby!0NmX&i5Y6ieDJRZ45MqIEFNa zJcf}8zjX}bp7jVh412rDY2dhTY}&93C9(Iyz8)N1sjEAEXhb9B#a&72{g?)Oh}DpD zQZ5ayvU)s1D(tDMYvwzjhE;J?zOi}WCY$L~oL0k}nX;<9c4G7z zUMPEW4QxGFfbkJ0KxadVR8m$K9tyXx8By#_*xsCWCKYQ4mPs!Y7cr-=H+*(Rv8eUH zZt_LR-)Gj?SIK8l@xLC zvNm>g-l@<1*rjGnvFyFlrb0iX38C*X8$U~ps|n4b&0}i6D)j6zBb8qsG3jp@YlI&x zPVQ8VX?4=YwmLT#_^3im73ebu_)S?IcbH0>szmF2#^oVAfK{a*O%_!b^GMc% zeCs3@0;{iXAqC14W(?&dAR4AL5*kavw6VE|S|e3veLM!V@5Qiaz0~fN*BX_x66g(^ zu;T&U3J%8}el=_kFbf+}m((qkl?|>8{CNKUlWfj)!nrvp9_qr`f=pDr#AED(Z52S;a(`6S!N-2Wn*8#ya?Q} zTmns0Rrd&79>uCc#vFSLJ-$fO?IR>mHno5KeX@t?#LXE0Tz+R?13N!IQc+4x#ined zNJlU#xY(`TvRVX_bXn*mP+C<+MfP42Ze^=1Wz6V4b6~@Ozqt5J0;MkSvqNGC>1YE$ z9~C}kYHh-;IO8h`-Tu1mlf-iR4^1Sb(I?-CEL7oE$}Hopa)#m^fO7azYL3AW z6+zBT_7Yb_wNh4asR%nE!!8wWAVRCw&QycCn|6o_`GnyLF#~J)ZL%>@X7_Qtn<6Hl zehsaAly_}4)fiG>f52u8VF}`hnnELn=h&_Ab8XPD1a65-2;HeMzHgyU;1DfQ<`G+z z85Wj3+-d>5Sp%OK!d(syN6II`t%YZgs~-2-rJrK^HKX-oc8(pfb9JzWDJ6ohC53wr zI~Z-e5Udyin^(vUa0^mn4U7x1FDYg^c472m;YYGkC!wmLqm~A^$6QvT?40SumjqsV z)@393g-u*TW+<(|b5i6E5I~7dVcQGmEGZJYlu^#XKq6h2=gBwlO|Y{oxYkXoM$(MK z6>Z>(qlq1{kK^Tu6G`8Rq76`|G?Z``cQi_NfUEqP7 zJtThWqG*uHTcF_dBY5O@5PElXJEE+GJBWtf>_bQ{I8NbUx1!?J2@l9jDC=8VC~w8UY^hS8yDZ*WLm5N}ZU* zY8YEk=tv<}r6N-*op@4}R=K)B;2Z~!3#i^OLE49a2Jd05^Z-!q>Tc9aHpUSw=o5hQ zwrirf$psj_1;LkLGKS73d}=_}FzhC!4}e=-AC$k&^YnTjw)0`6WJU)oEBH&LQu89_W0nJm(DC#@a7@xQWudf zqFt4LFZvSiHOP&?Ia*vvH4RCRo7cOJN zzY{Os_{%@W?@q%2wlR$4b$_;D$M7+JVZkGgNEIA2+eYeA$?L&F-hZl&4TvJzJ(aMT z=rIf8vIWBa{S`opWKNGnO;lWS(OwmP2wc1N_OzW^Kgs5-?^}65UbDLBMAgP9S>O%F zobSYLHP_hpAc4a2N!VssGN>xA$~PPp62NthVHKyViaV}8frP}(QCf?f7d5#@b!sQn zJ0}EMlkI#@!_a*bo6yInq0j>+g}`EG6XHSw^+t*5jty8}5`IwK1rjdmAY4Bu;7@)L zXdE3P?jbK>X=rQ_ON;6c4UjsoDHE;Dv#-j=u}OpZ5xn&6s*x1OA}Pypq2fzk&9uJw zCXiEhY>Wj>>ayTHR0d9IAF&ePMd@IQw*Y%*6V}3hqYVFel$^N$*C11b#oEJVddIv1 zb6`u<#5WTEEmL{2;WcLBT)#XBt_GfQmqR3#Qq_f8xa@5beX^prA=UEvt&5OCorbjX z*hK!OIVstyChYrF{T#v*lBt(ie)V2V>7`rM8k&;Us$UgVOV<1Ft0I+F05Hv8Z8-B~ z)%fulifvpJ@r*d-4tS~_LsQ&|dxXm-MB{4b?Duz@vFXV=8)H|N%taG)l}MHX!5;`;~`F+h^k_*^G{IUP1@%;+EogHl4Q&90CU_9b{!+X z#_-+?K9u03y|;`=3}d*#Pq%L+AS# z#{aR5U*H?vQWbHi0}~r+d zi(x{@O}VhonIurd!jS{H1TdK$L->HbMX_jmkCKO|l@`LON>t|E=h#l%$E8pzku^w* z0o56+lm+ovo#|-U!iJ@SXo zj9)aoMEF}XwEi$tf79U_f1PEiQ&9Dp|MI}$B8I%H#l`P(ALV7Fy z$~;ZTld2OL^7+k#zZ5Ew7;IgV9CpUO6tZg^KXvbwJcJYFGvf+Q)iTDW8C%3AbM_a- zJZ5*K7V72$e*(_bjTS?qdcxV&TGF$wCsaC1;%`-Xz@9gG9PY|+4OqgE}gAQ9tGb~roHivMXV}8>JRf+Np z*g4*`zm;K;=ER+a{vauPAntls>Y=C1oX;hawUgM^09uC?x^s_o5!MLw612zY*J!&a zu1(0-nDnK04i%pSj&>K-CjRW^Jz~4tb=`$)Hs1trtQpzbu>K$!C1SrZCF!B$D)LG7 z$#uqCB&Wt$Y#NoQD|DJrC&o4>bW~q|a6TjDlZbQ?H_}3?hcof1HQ4q__n6x_BM8rEp!67gg_s@rQ(0NbScZ$9~lXy#~>6!}H2kb6zfjpm6Bn zxOVg#5)JWMI&<@ZYiQ(ulDxd&;c{X5@CC@Hj2$`I<5IXaQL58YkIhvxe3ssQ?4K9L zZu(ear%h-^CHqWEB3ziaLsE}>Cz+IY?`VB~+!;sHE#@}k$m6UDaXn;g7nYRby-%Qg zLarrpT~CR=6H(L3zLwm5s!%q@N^QiMQrU^mWiGmAs?^L&vsF|2%-7^fC}Wsv6MQl+ zsyNC`eut32@nH+}dE~q8ql~-e`_U(t%=m^KRd|h4P%Cvbp%KIechOHsCyp0kW7LMS5^lx?6(x22hA|C-gN32QzIac;>I*;bBIePHY&Fp^(w{zU@Cr&|s zec*>UKaM-9#T;h7C+6!Yull*3>*XQuWy)jE&}+$;Z09PPjGj--Q#O*;)%MPgMfst# zi6_;D37h7}h$3P>lYX|^wH@pp_@MI$R?GHt#6BbBDfd~&<}o=cT*v$!_VZ_TU+2Xs zPkisuChTE7t9#@b>SaC9WYJZXSF}CgeSUk)(ca9s1me@>PYYya6_02G50|*|hvX3y zwT|QG4X!QLJ@AE^G2aH)@O8$RMeb+SX_>-zMD7CQ*Jbqn&pu|#Cki3Cn0%Ng15C&G zUw^`JZmJy3&^Jmss(Kr*26gv7;YLq>BiaM#7hx*O6C-(ruZGU!m3qQ9*?Rw)frBWi znD@sI4YWRisH!N*JWa62m!_#YqGIAIE1hJY%%9G5B|WW}l$JE6o<}|>R^xyDRfQ)k zG*xrr);2EvNOQgWba1Vl%pH7HlgZJt;Gaq-wtC_GA{?tul+XMu{4{CPSj4tb9#g0@ z^T;!)iu8R76+=DOzK1Cr8x9m4%Ix(l4E!o} zr zJY8D_BUN!nQ~ym2qG8ZIsJc!QY6RDiV3*k7I1+Pak6KLjUm+#HlTE?Bgb}t2bAzpP z@8+fR;<%CpCPXK#?sxstv=nBx_T)P}({U+vLK9l~56Fxv&IvbaTv}Rxj-UpUqsOzG zmoZylOB{ZU)^?Z)4|~CXhr0884$wNAz?LezW5=lf`m1hgfVL(#?w=BmDe-3PHRJ~0 zSsqJy6IG*19L#r0;-mOR>Q#5D;@@z1M@5`;6ruvN1|?eHYslR^Wh43cv}+lsp`kng z|Hn4q#TS@SasC{?+Zf<0hEYK|d<_`x8*C=nw{^-7E^ve$ZvJ8LvQUoM@MT^CQlP8< z`hzswt78LG?E;lDAST$I4W>GwDHSv~=85c_SXwE4LP;`8YbCSiq&G&6815T&^W0tl zf>U-j5$8dsCoS+THg%0MNE(49l(ZnZ&fehInb49_A&MvDEtqKsSj{Fl6Ks1#N=pO& z>mQv%Uu^Crvq#aAf#rK4_~VX-LJElhv6(}qw{(pkKQ;7CG0BMioBbODzoes($p9@k z+W5sW>|-bxVj8xOeb{efxQ}5J8jf3l(N{i>`?gaBq<&PQWRzws3mnxvs#np4fAS>$ zXy!#UPvnj#FT&G4u!m|S)84bT2Fi{yv#BTQSNGWVIf7l~OnW;YkL*ugFT4;JGT=z| z7dSH2@I{ybW?3VJUHPD2VLHsY{7OLc9LV$3 zCTJiIXj{PV@e832OReM0(XTN0^^4^fOBlbfu#pO1ToG8}kpefsx+;QP7jv0?6Dz?E zn-)@+)z|W5;^Z-lfBi=6zkX9Wf>ndpe$9cm_^Cc;%7W!(bi}T>lu{>rkVYvZvvH?Y zc}16?AkP}b?L_QzP#3B}>r7>rMFxnT)8GmLp{Kf6N!(qC$d@Mbk~n$1ka#)3fJf}? zUqLkL00jQ^mw)|bAU2j*9%GRmWwtp~-yks|D#sKV#? zd=^Y|!*HX8Hne|sAyaVS{iPs$FSD`?QpS#-&J9Qzb}glg?-H;|5Adg2&Tnh9JwsMU zi4?63<<$91{@@Uy6oP@yQ*H!R)UX@m1^$(IJ0uLWv&~``f|revG`h!6_P7@Clj0Z0 zcMQa)iESx98F$H0@&fl{;}2z7T4P@kncX8aNvwo>Z12hjv4#~NQbex>GchhZV<$ND zVPl@M(RM^E2s9cjzTwx<;36eJ~Dv&{5fMY!fx}HqJ9hsFOGefANYuX)kaeIR^MAVPZT4^nzdV8Zy*Q;$Bp( z`2jSpdg^tZ>lab`7|<{Tm=FG*CS`D&&inrptsOt8k`5h)7=eHNx&s0md{$`!WyMAl znotT0!`)jONuE?zdmL?gRn(^ZeB@{iy+ViQf_R_!uitf@235-D7r?Q@ep7nz6pk-8 zV9dijW%Cl@?f1qoR`oW1aJ*{w@!RV#W93FB`7@dO*PoMExN?MyU>yT8kEI>*Uw;_x z_OIWf000VItgNGP1`sDjcK48Z4awdIj|9P81Tf?r1Hj(GG)&~kmDLwb3#+GwQ8@!I zuSD?1|JNVy9|tF*F%)}y_zjk)#K07Gj)TiWl}9a=B^Sk*MKNo>dY7^F4O7CRazqT_YDEsmi<>yHA$}&x~&SN3>LQ7no zFcMU5VhOG;<}ir|2D$)(Kz+Y=b);U>FpB!k;!{CRUXQD6rvekIe+~~ zI?9HDve*Wv3fn|WqUIaLHhIOLbSg9rWszthrovepCAiK8^Bei-4Sy>Qj@YbNKPQ_= zGP`i%W5qQOfSYs%eZ}s~&t%0kkA1~!=&ZZgrjFQ;a#I4t8&%y6N#0L4XhL0`Wa&Yy z{5yoPJVJbnI=L&v74Rx|KJNB#FYH!WV$;3JIOLlud}NbpUJRkjy*g^AXBXi~KFN!2 z=f=QD!z*__W)@58TSwiYE1SCue>{1PS_8~$tX)U7w-hfy>+|3m^XrO7{rd7#?1%B& zMWF)XI+i@TIERW)Ku^4`x{GQvlD8Nf$#^}HUjig%MPgGnHD58@xTsr*f%hnah*Wl{ zjFt$Ya3HwW_#FVTS9=i*lFym2WVaarqNEeG8W&JTUU-#@c~WSt$JD2Kp=l^Z?y_HE zl^r^Y>^hY$)9ftxF&QYUy_K>XHGvO0UX)a1bt@fJQPM5ti&jAS6>Q^%1xj!D7cUV{ z8ja}#cQ>MfAkG{Toh4;e5GQQl!e?Bgm{-9_=JlhoP)#f@gGP3}buF(SW($<+pFBdS zi*0an&kL*=Q1>CUkk|}|&RlHCDqe_&m&=_KIX2)&NH31X7cKA--a|)JJ2wLLNZI^C zleojoMdYgP8lK&&-miXHp&GDPSHyVs9!NStJ{$Lr`tj_;h zP>p>`$G7Io50Zv^u8`vF#mGz89tKOS(^`EZFVdFk64+qmJ8MpK!hB{l*ih}o!sc59 zqLifpN=A)#}Hyd$pu~|e+&I8+P!d#XbsBIY$CRPLb6O;s8hiCm+#6AD`mw<6TGAE z8IsRnnM!ew)PImRCGU&R1JdoJO#x{1A`6zvkY{RLhalxxYVedj&bOElNc4a!d1fiU zvV))3z6QJtg@ju8bakm9$+2sfwQhq%Nzk<~>K1L)4i>th8`P_jQ?pEu)c|t5Tj_ zmG$v$AN+KTi<959pJLK!d`uGBzPN#)h?e+UaVFyJh7=c`*41Ox(V>ea^h!3ljSa`~ zr6~B$54l4^kSoO_2$ge@9&B(;0^nZLd}b)H8_KkRwA9G)oz&GHHl=T(MK&^jX>hfb zB6pd+x-Apdg;{M^hk~UcPKC-#!9-M0o*;dBn7Wnhqu4k3Rc>+}Rkh;*pfb)LShSxs zT>@it)*bfAhQwBE(?7zCl(1}tDon46id`b!v8lHj zWGFt#IBlWzsk|Bip~~hKfZ2FM8+{adbW$l_{V{>|6iLNidZ}lg*-DC}*wi1fW0fycv&V`m<@0C|9Zz@H^uCuQ z@|^-I1z3E;@@FL}Q5I3*>?#u<;X4+1%J1ao>Bl2T#T$_KA|69Z6_+l(C!~`gx~RP@ z8aNt>KN@`J19HV6^(#&bfg@Vb3b-c#)^)C9Y=zq?gf3#C`#U{9@X1MuePW;tyRo^E zb*~P!;Br+%kTlI_Z{UikALZfHfc)4rgq@jdxbc9}ris2bRuee$DpV{H@TIdm^IoBC6^-yr}U? zmk7$@o46hxloUT{0;jHQD2qd~fF*a>2(wXAw}%WWF!*wj`NHLu1+vQ${pv|I6(?Y6 z@7zBCzlvEMnb+Q@OwRPC;C&)k;8pU{y5@XmQtttb`a}ViGANZjm=E0u6EKW)!tKoD z;+KaD+;u=ynMEZw_pXl2AJvJna-<2(s90jD6J%le64Nl?Ou66E8+?yXN(u>E)3GrZ zZc=YpUWK}d{(&kK=1LOO7JfJ@u{=}GKi;CSx_db74kretvz6R>C zBloNFRC%uAsZEe;7=hZ$5bz^Z?zGiecU9w03^G*0RfDm?J_9zjQ70y@3U!i z?|s54);>ykEH3wu!%CQR#}Jr4V)4G<5zvy)7@Mo|fV0Gb-nrD_m7OCdIq|*%!Xwnk zd?gJ@k7UNEvjs<-9Vbv`Y?0LC$ovc&YH%j$Fsp6+@_U%E@TrUee%vhY<40pS z#xU-obHLDs8ENHqqa@$27g5E@vtw|LZMZv;yef?X7xZ9tqCePls^;~GGfCO#y!S13 z`mD)+2>G~8K(BE{&Y8&xCpNAC^hiIJxsb;`a6&*v7k;R7%tl)9w_O3qtVL@B4oNoY z8v!IMK^Ty8e8QHIvO4KP?IIehPl8Kq7GZlL3N)ulD{((0S5ZabCd7&InWe*-bENPs z;>w{^N}KRu8F2wzo#=$sd1fz?!M;Xy5xOv)t<_y$1YK3V$T^Q!De^VDN0&+NY!*_N z&2NhAVE*-IMY(+}Hp`6jGoZ7H(#3>hBZzNGivm_hNsh+{h6iZFKpEEDvBPz$>Y93t z3My4H&ckux+joS%XcbpC9z9_t5`bVHZ1BCx4EmtOATIFRP7OYV`-k|d4oAG=qJAq> zHMe>aTg9Q&2--u2D^e$1b`1Q$9-wp9_Ya+_AYTj>D`h8(7IpK?wC^M~sas6PmBDgh z@jwOUNl6{$2@5GcVJ)r~5-5zH11_gZkrWR03srSXSe>}gWRespE8xx+%*A>5mCZ8> zY*f|VQaHYh>k+f^LK8exjpC+6=JR4$%S5@aQK6eE7yaB4xUpGCT%;${H)VElRflL< zaB}<0!nlyS%%0G?_*jtNm5qj~C4CgHDr|Z}EExwT< zITk~1AFrgoh7c_kvqF`rE2KCt7eTJZ&qY@(Gg#(?Nc|du!$K3AQCG-olgG?gsrl$u zu|_6rMImIau8z&Jt@N7l4}Kv-MIy9rH4%NndkCAcegn`{I$~Q)WLiAsNtBi;ii=nA zxqOGPo;XgXE@WGFO>uvA#X^>`4#Z{isy;61l+Qd9^0JV#X8It5Bg)2brjyWI+6DuZ zVjjxbQ!>#aRCdcD-v@S{xp9v+0Y$hOZ|XZ`C!|iEtDT4*O4>D?3VKekso<%Mlbmr} z%v{eiNuC{lHX+Ko7xS$&0TL(mSHkUyvMSInb-)_>#E24-@#fpm8eO>Pj7=;`L$Xg? zA-Bp%-P6kC6vCu+0{=UfA0&y+bf#=b6Bebh<+|Y0O3L6GHYbnL%8A-R{e?D$Nu&_*>oSvne*3bkkC$3HGUNk^40e}F5&wvGZn91F_g<7%D&eLr{) zHVpEIG@z__?KToY%@!MMi?XI219GtVB-oC!X`!7t4ts=5;&d#0Gfdrb993~EPp2nk z73Q0He0TqxqZ9m^LNkxrx+=-N#&G-!^u>q4OH3Bap)U-S5?p2z>G;CLxH$V9zp*Z3 zDX~k$hKGKwLL_d1g}9@(l~_E)E}~YkxC$EK;$~b)==7FblL#u&T(wSBsEb4MdZ!mZ zSj2_JVsxx%YFsq?7tVmh9L3_*L7|1rX94$%f#tC|#80XMXxb99-^wG#Jx~a8(dC3q z7*_$*ElzdBhj15nR88DqZ!r91LBY0%F7qJT9)!Q$Ah3HUr$pk|?T{apZ~R57bJN2$hxzUZNb;VR@ zIUz1XSu}2=>fTAzN2r#t;hxe2K0z*&SCR+IDz{oP(({~R?j^5+JRjWpBulIZC)vXh zM*_=uc@uj}ar-1;%I5LNd5q%$Z9Q!gm7GNrN0jrxtzm;yiW3K4l+`WfIsU6*XhGo_Ko7C{{b_KcEPfA}XnGtvbLdtcE+a zE@V|4U=6*9s!^ppaW8Xxe&JZ3Q<+~TkWz(DFt#GoQZ~O#AfZ!gXSa#PwOoj@det`7 zP4mln+tDAXon!hL;!6xgnIB@coJYIt7!T)C_bI(Okq5^7zc2ImbKyDay?uL(pCF|8 zdCsR#+&u8o61gl^p@-O&2<6a=AXoZuKmwCiv6R`rNSsV%C9zrEqPnVU=B?fq3U5F; z*$2`Q(8b*;tHT9pVxdNRQ@NNYg%oCNry=lNu&9YuU0f%~KalID&08SD=T)q#O{^)s zpJ35RoTQaiEbcnjMfl@LPpqmaw3ib~dVK-oH3=!pn=bb&H_M8%j1dXA_uh*oU>|)^ zSt?~kU1?F@(t#6r7rT)8EKo9E&%D(&g6R8PsoVIS9TrgyWp>D_-XpdL8yk!YI#xD< z+73cH;*?O^af6*8V#59;M$Ah6qLCar!%LDjHr{&|l(qY1p*`V=z)55R<%wDXy6P=t z%d?TXY<`(wNmYEz>jcZrg=hpUKQ+E$DA zPa|9mH6H2U%w?GS7%0JLGZV#1dC&vHgT$t$P}$Wta_9;9zySd#kG7rYgw=VD)nOmf zBm(%^8@m^8a>cxa4Y*NOw~#<(*I{><%!bS@#GtQ<0pm*M>rPZzY*HHqETu}uN-1gV z6$VBXr)%{Cfrctmh7mWvkW)6K3E9bW;z)J$JUO-#Hc9B}npjd-&1)Q2A14j=kaR1& zD5-1a$pF_)<^CyA3CJ^S0}DOm$)j_(JaIM1C!*~9Mcbw|;u6f$(}Zk<@~-i-lwWTiXpJMQ%Zna$Z!P1trY$V$6`^(X%9AFcA0&LEj!tm z75W7MCu24Y+!qhBv_@$uJT=89u*1Bls^i7!_Yc^Z*vVmgR5lB#%j&CnNoZZ2NKts7 zYJwgyE?Q_$ev$bay;1rpXIvU(hcoj9={^Vt;vr4YAhQpa~9oHKp751q>Ay zifV5iwOKSo8ABcBK7Ik_HU@6&7V#<_{R*g< zR|T7&vP3h!v>{b`2yiu^avQnX{s9(KZ5&?dJLZLP&KQM^g)}P7;xo8^61$S)I>AG> zR=r|6yl{uDlvZMcxUN}}!5S@fw<$m!)5q0`PFS5k96zbKXq{Yq(F%d$rFqOwcqe#X zRijs2on+6sv=QUyn6eYbeU71GxDjpQdnuVI(qcZYP79qmyTE)*>3tdGLSnPHs*a

    z2k?NZdU$C-Dl_Q(sSH3mT34@0-}0Y0zSvM^r#&M!c5Rj0RMs?1}H2!3wt zo21~2ELzxjptlrtH~loMCwO;sqA5?f;eqE=H9YYU^hX_5ACvp^GpTO{n2hvrYJKvH zPFT-86JC5-RCQepUx=Rqw&eP01e4SIvSzW1D$~d*A8)_E6-OZkJj17#O+80HA)UEi z#5pORgkO3tv7cvUQ%rQ&JHAi{>HiSB1 z(R1825SOW&Qnfrc!hg;9>uBBcFQmTg6L!jz+fH?J<=>{%*pW9UucG`p^hvs0B<@l5 zGkmJG0j{Ykg#^5&uH$`heUC6Eimj>WL2|@QT{WBXF1@}(*kd2Zr>*(S&V3Upf5)78 z%&`|Sue62z32d@EHVo)XjD2F8#p2${iKDnBR%gxKRL!O7AsRg@*|RcH))SWSV(8UAkq9Fz1`v`S*NUs@}6`e#ZsElx5l!#DhZF!5TCn~ z>RDN?4>Tcj(oy27ZZU0MGk=PnOMyqVnxu~;&a5f(RO%d75=l$Y*N9c~C;NhAZm~<> zJ`lZVhZPX|Ei_|!Y3QojS=xS(_8^!S4y1+w3U(p!Xfs0{EQZ7)SN|lj81XB1v3RKM zlu3oY0ZyWPi?FQNqk=QWpPS7qFZmXF%)`+Ek%*Sz3Wj^(FU$j%V~67#Qa}xytA`CE z;f$KbFQ6C=OG#V#IFVr4d8X-xQRIdxEeNrD4LgW0dN)dn@jfAVjIW^WB;S)YYW)?K zY#K}CNRx?bS5X$qhG=B$+$ZM=KCi+Lg?$EkcWkp+@g6g_&cFT$v{*-o!2&cRGY<|4 z@MdexqSqkaqF2>^kRk9L1)nvpDfZ;%8uhjp*ZAzqFMf+=!OHZU4vE|ehns)0(hkMpHhC_Cg(SH|3}hKGm^f$udz)3 zA@bvh<@qJu@BX)Vo2`Vd8J;Qp6dK#G{TQ=0G5;<8^MtLv%zupg-u&Omum3(>ZD?~% z)z>g?>wk{_82*pbn4gunhOOhB{}QI!eopz8_k;fHU+vU3=)b4@JXQ_i$NXPE9VK4F z=kfPsWD((gzPhC9GsOwdkwp;m@^q#4Q^ z;VzT3#J`MSr+VinT2|TX@}AI7cv-GJteL1^WT$-9*D+}P&+{c@T|QkUHk5_3v>Enm^wOG7|Gy4&D3QDh-mk?eEFQt2E<4E_&d1qZ$ro|MD{o3gIlG&@0U0)|> zJ#k-UgGRN#`4H>G`Zkmm)zZZS10P2pr8bNi zgy|-_;bf{*R)ETpPrcrwI?o)D!=ru_WFd0$e2wX=9KGQ&5>zXkj8!ksfKUrNY$|0q zExmkWB72AlmS4#Rv|(--LPDEUC0uqH>sp4V8vB93V+`vUBEhVB!w&vno1(e?sr0Wu zD9TH7`ehySq3)CAyU4Ddq%SLaM9bP1;1zSuWYRtuYtlMOHGOUxYOzPK9IkwV`VMNF zx(=b`eT#h#skaUm%JD_vXeQ-`#?&)~2fAgNx{`Dd;(_vrlza^B+1VwowYCpD)ZiP1=GHJF^%*O>RNnvkBcM`i@SW)UJph6m z8o~Ea*~OLABNr1}qr(&X9o8Y9D~}88NgYJp!ggm=OW)Yzl0Gsch~gvtQ-H zcV-e1)rC#Imame`hs;giP2NHZxm{JIRZpaddb#l`xgdLuy==O6uDL2bo-OEiJy-41 zkQ-fJ5NTj@Rc(Id#^c@}yT|z7;}UmPvTLpZx<-8F9-#bFsQnz_L+t0UufjFX=c#M> z@)Ga=NTU275{rFMW%*CZw(EY5=Kqvk|LOlV;XjRY>WaY=QJFebE&0TkIdk(*Q+{iE z)y)F_Y(fK8>T+qFV*VUDPX>RO5&J1X`4ZZ%A^W=aPk|+@7L%{innHr3PwMnR0}pxE z^A@sxk3E3msb{#{-2W8x1^xL(|L2sS|JnbglQc`dUip8HohBsjII2X;55vo!L7#oQ zD#w>8t7f=L%0C8dE?&$qZC|T3Exp;Bveq3}dCEQPbrJAx^_jK$-$FAVSA|SLlgfEV zYAwh;`k&#t$$yUd$liR%BXx7}uip(tCZ*qcs;+-!m?zLOvGic0sHd4X?vaIr@(D^>A>KcA|=QF81%eaP2=L*)9fu3 z4|qMzHT3hp%`2C$fk@ZDPh)!X6c6~B+NDn!FNz!6Rnj#YLitujCHI-hM4J$H%342f z?IbM?B@*9wR(W()mg*%|)&KiChQ_xM&mj9L5;4E2JD2oLdcnix?#ZZeH@2!M*S|9K zF9dnyr)%7`2O^JB>Ml0!G23-LR=X9qSfOWV?HYL%U&ABzHJp~y>&jf)sn0{nci#1; zz+){Tn3r>?)b+?~JBOapZoIFt>%@Mpjr%$6Kb_G~7gxjL`OnpMKZnlw>VD>H%6aS> z!d0|>Y(E7~JDb0URGZ7o4wFv0OqA*g|K{u5cHQTRD1Ogdy7e^mj$;?w>E`R(fRH#{ zAOS)`LgM0kF|y|1N%#ZO?yTP$yJ?$b=ioRF-vx4YbhXs3-uLZ4vApMh20G*PgB}T= zwczF3cp(2vX$N9~Xc^OIXj;@&NY!e{ts7@17;eu|(6z=HgH7afu7mVzBs4if7Y;bd zfw1YHR63{+Nv)J6l1dT9o_`TzcOMCN5$!z%qxbpfHXV^fxSf_uj;F5tagf10g!Bxx z=msCre*RmwEH-W@=!}>TE1(`>gru`$5Jmw2;LV~`M6E^}kZ0X{3VoxK;exv3Pzlt2 z{(~s?Kb;Z(oxy;b(O#Al_A@WkDQEo8J;pizo!ap1ce<|`Q?br|pf_GbO&!|9$ly!` zm|DG2iHz1}tVSN;rKXr7>x>%ieq~t5s<{ih7TeWSu=VRzH|WmP@1ZbA0>_dcyebE5 zRR-v%O`ee1G4aqa@Pi;GMXyo-6bk zod+hHj~70@a`;t>7*V4${{$lB@!gOcspCDzkNxGI2@e|8CWMmxi-gf+j06;eo zu@8j4?fuYO;Ek%2^ek}qA-ME~C|wrp$^68R<5zhSXC9FxQf8GT9{@~{J7~VCk3^g- zsYAIl&nASKR95Cn5&BgdYpq=6g`YFw7JBN_abJ&c=i)atY%X;d)0U$Ns4W2EP&!MK z7|FByWgiaA*$tjtws&j=3IE0*BB<`hZd&^}8_byb=&t%CLDir3uYxCi{e; zIb>=inQ1)F_!I;BLg<<1r*-9Z*UXFXQ?% z&Ru@n6Eg2mI5tv6p@HNi%8LFyIB@Exo?iS_Kg2t_e*E3Os4a)yLu|E7z@48IcKFH< zY6tB(gx3L)euaqM)|doweBo6qVoT$Y9umi&Iz%4i2*8+x3`OFdO#28@qz@J`{P|Cr zm>Xi{&;rhiL*$`}@y-X0K_Id#o$B-$4Cbi~n2rR-0Rwc$VR#|K9pCqTta9kvfm1(` zW62u*@gN!@YZ(BE8(x4rUNop-BHW&f2#mzi8+A+ZBlbY8g#430BI)51TIBm#G&>G` zhElWXY3MRb;Xd`rep+}*ty-U`sMydDa7`l5CLjQMZ02(aW1>#=rz}w)1}5eVysJ35 zpUge!S9ot)X{cb5M(xZp50ah!;87IFk1v?okH9Z^|G>*S!VS$?bI^F>6%eqT_T%pk zeaJP1y%1sx8^=+nzNw)R36_>rO-l&bITN^Y;Afx-N$a@r;1RGo+w;K){G+ygV=6R6 zYm>w)sN6zX6`Nft#RDS#TdrS|J*OxcQVF3b8Q>0wLe5>w$pKfcbPj8-sCG@@$cCxc z92yhgonM}L5y`EdrANIQ`wn+Gk2kWm8&7m#W^~fyZ%=6x zlR0lw@|2D3VF_#P@PzbM{4qhrQ{B-nEn1>#HSBnl8X*^t7u^DqyeUBhhR{TFXC*2M zSkO*d9S0{2o7LNrlr)NIal$bVJM>)?*om@HCZ@NgzD?0k?39)>Q*+mEw2@qCLGDA; z1geTn8rw)#tQ6YG78YL$-@M`#5O}K($a^iKl6W02x!LVI+z@i)*pGO8{I8C`a32y0 zvQbg#hu(QbyVJzsM2<=LWtSCU+C5=;Gxwg}oPCC}FytK)9n&vu~#Dm5;2EObX2ahdk3QjZ~4TuV)H5fCd`b0K5x5;1zU8 zcgIL#dUCk7$j|gbkth$Z_YOmf(TW%WdhZ>mC0?x^iSorYbY{M0F4gm;u$)aZJ5*99 zCwUIDB|0?AfretD;Uq~ufQ-s%Nc+397nE^ADrRKr&bRc1ozJxbez1FM&-cu=vHpMM zukX0FfqH?r{+^RPw}*FnmC&|Zw~8D#3w=3Ap1U+hTe z_6DZwiVf7Cs{c_=U2t!b8@?rJ)Kz*SCrM)Q98CyaMHd_RgSy&BO;9q#+nI^7b79wt z3Yl`E1&O$>VU)<};rQCesnVr&-ji?Vs&yaKHlZgqo4~fWkcpXS6Wzq`Jx!>^sUP?& zB!0TDzo5_Y_dH(Tzj*xO!2@$Zwj-chG)v>i+|oTPl09P* zPFza&kdF-&F!71?0YCrQ2p3FfOdzGMM~P;|!!-_%@T)^Jm8e3{%%Se6$Xx_Q^-+0L z%;GAY^SNZ9C#B6D24tVEg@^HqnPVnn*}8e3Op1>5h-40%qef$R)jk17WL~q65RC`^ zEs65(jS%E^GYPG{DFPjbN0G#+34)$8$U zcS4M`K_rAb?L3*QBemXB1)f@Gm3iCm$-hCDu;3z8cl=1YaBQafev*pzY;2fks>PI# zd0+;IN3D?oKV^iFAtCd+a$Cf))-zqIMDkQ`tga#SGf{ z`{JuV!v?BN{!e~|7k`hRh{G84P8q-Ce!m~#D2m5lI9}WFI(`iuf1#D0BIuUF9n#RO zbin;ts2v)qg=|U+BROHt{rrdHdGKb4@QQuZ`wGHpA@WGe&d<(Q&#lNI%eq3+xg5~- zd|kP)%G;h>Xz=Nac&s@5AEe5e!GRFv{Z5+ng#d>)WxUc|kM6*~Ld+zwK{^Lao%@1p z1X>YG%@Utz%fF{ch5beoiqPvQttDmfNQI@c>`nBijB6m_!>a?mj#pdu4%uXwF%Tiz zBgTyJ)rA`bLvl)@aZk+7NMj_1L_<{aRiX_<^5E(_wNKb@JiRv($By}NY~+^X@0fYd zLsMu7{azvC2&m2xV<8H$G&*J}E_A~2VTkIR4v6V~L=ZI&f>=s`(IrwbjbyZim71Hj z4mGU{=x$U@DvuWYUIos*LYzS5gs&W?T@`2u3^FYWc(jG!o0>j^fD0cj9B~P)La*Dx3tVh`a5m3-C8JAJoQ8M^9g_?=a1fR$dr&p%H1@DY(#WM zGRAqRb1{@f>D;3ewYfMwR&nO>MtjR)SoPa9j*gG^;dNcT=K3NB@Hj)@W?;0_V6$zz!oH8 z76{=AF{s1$dkER|-4f}Y`jX0|Y7fm&oAkYVhu|v@w4178*~zu$2M&91lCtC=REr8f z&Bt=Ak%wL~qT&=Cy+T?h6-Eg-MgXiUrsh-xeHxp@jZ5?{D*$DctR?au;EThHnkf|_ zpQ?S*u;CflXn$Qttt6$~&;mjgL=w^SGTn;N&8Fjwn$E)Fx!N#6IXbfY|hoSI^?fm7V_LUfNG z&aNI2|0p}fz|^`56#%|m6s%3+_#!N>zX(~XGY!PXA#kLSMN3e<6GIA7AqLe%rD$#; zp^hL&jRuW+iaYE#hr9f+f#0~}I5cdayY@eI?8;b04Q*xLQ$+mv&*oC6sPs|V5N()d z$1?eX@yu3V*A3^>Tlnck54MAfX%zS(Xl)Xy-$}*>@@M~9fqf0kP_j$T=Dp;*=GE+4 zYyJ+pBlkl=E9U2s*V5toQzDK%7Cezkto1t)=N&nbz_7n*S;>CY!2eguz;7beOhq9r z9dxXt*s2}<(;oHs<4d9SxH|bJD)4)k*u{Q_BT_m7wu>t1ivgV(0q=lbARYLjoqrx* z@KWi}Bu!HwlIU$$Yzsw!7GBf@JH$FjGfOS-hL0|h0~MAoQQS&7l7eI^&sWf(RCvkP z8aY_w0=Od%+0TBLbzRux5#w#P*?r z|L33o2I|N>LK>!Mh68UwVi=-1(s7QcMYctBrXtQE5wDKss^p2Xsb3raF+-ZdzouZ8 z)b2`c7&a;sQ(2S~H6yE0_SDy0*Dq4{k$mOYIozMI_(O3d+UROI;Ca*y;Y*-}};HXT=6%*$=M z(^dZ}RT`-3_#tt6yWDwU#`?=x0@p`^8N2;<`qb0C%1uN*LFt2U&c-G(zb9Pi(nsQW zjvw54N@<7stHomW1fF>(E6O$Z<6{oJ{1Y&O(+?TE0srf97PRywY;&qM6^+cHjGGuTd)ESk7oU=P(Zn2B0MxlkzQ{+v$jRLLpm57=?ezS9~ zNDSzFfxdTQ7b@BW2g}dnNcx8UQyEX{bTY%g!@K4YuJ&khzxvuDe$}2aR{2jeB$ZS&l1dRhCRv5Hz^Ofw%4vv7&3JRr#p3^1QnnDmd#3#(T%KrZ0ZQVN z*b)9oSGlnrmN;OAVURCGd@Tb|i$sFTSbYpK{EYJrF8s zm&B8Ig}^-%M3!^niiskk{0KmaomC^L^g-#Xh{0h$$R@N@#MBYdkdOgeKWO^mWNYZb4J!=`h%mM)QsX*943 zLv%!)QE~1u(Q8mYWxVOs zbFYvu@A?G!L`hN~kcAhyk)|3Ih9vQxv_^d;fgPXy!h&lDNTVstcpkQMe`|nE8!(_c zDPYJPyc%O{L>TM*WVYO&E=MKxSX7x8PJ-$%8ddb$S|T2%;&DyB$``UuSw z*Hw}H@S8sCFP2{{;rI)W2gg1LS~x^fX~c=wkjUv)SULw>DQ6hevhq>+=U+?w`PX>o ztv19~zx$dd{dCa%c*S}Ie2EkgGPjutRlGan6*!ckLaNWOrNV|A^_MSxE7fN}7LipV=tKM1q&g%=f$vJ_ibO!O;W-52#s;!Q=pKD14p z=^M>jTBq>MCyJgODv2iC=*2&OR?*Q6uFl$&E!myC2MK(Yo#1D-AAqKU}OK2oiCNkxB1USu+pF`us72jZl1(Q)XY45ol<46 z`Qb>KUsogThX=MfeeD1$nYKz1m8DY_9Ml-)9PU5;^Urc&R0Ymg8?iDg+hg8v|72^;1J4cx|bw5y0ctYIva5SY=WLQ z0(&O96?i=xQ$?- z{4G7Bda&!*Kji;Mfm{hhE{6>&cl1#auH4ee?CsF7^570)JgRW+n`et)D&>kj%!d$A zIpu9RdcynWYQ>sY=x0y!-)`VV910>l-;;glj@1U52jVveUUqNdP!Q7*J^_K(!rSrp zJYEOhkH5p-q2+iTJJfjm2s*S@|=^J&RVeJqN|lf+C;59R{#9isC&(Kn#@mf_`#64bbngWvNT$z@$a5<0#bq5 z_BmbL9q6X)dGbj2^m6xItKjR^=$@>g-6#pPP?niRYxxg`;QAwEc5Hg;CsXHi-4Gl$ zOwo$=QTdkkAH3CmhjNE8wgMcwsYFwnP?W}(<^~Ja-mHsH5{przA}Y-YmhM*~AVrB( zMC%JXNOhP!3|XSoZHs1GA6jv5(Uc5k(FE%|r*@c9N&U=S-jOJ(z$-*j>~loTS=uR` zj6VG2KP;K&fo>j&R?g%Qx@e>}G-YcIaCa{25cnWR#)W|hr3xgpTG?9x{iL=isMRZ_ zD6pk~pKXfHaK`5DzCHC>CIj`LwWWUa9rkI|7-8E zqF7dL&T(7wzR}6@<-nF6@_C-cjTN5yZ?i~8$u&DBkW*3AwQP?IapxPg>tM-|8UsEd zIuT=AXd`YKMA02DY6HKNkh)ree}=ZfFz4DXY?acmbPm0rCzp5oFu7Yx^KMAoi%N%8 zmuZ}xPtP4)Ej9JkcBt;Wa;sY!=kk3}^F61XtHNKb7w0{CX{6HKag(y!KEi)-WVY?F z?#_jK9$q+7v8pz%$=TNYqa(3zYF_o{zqfdr|E*Cr(~h336Kk)7+>P4R#Sj+NtXd%0 z0J8r4JAfo;0`@K!gI)7X6eoXW`_rtAHL6Ql zQYper_JW#y)q`zbMmd^VVmRo3vl}leOz0RnC%kArieMINfl>4Dmsv67*RVXAUyvw|#U`QLORAe!P-m!XiNz@kD$q2FsHV+>4g z>_ZdJ6uNvU%MP=683sAks~nd4rs0QTlC=2(Ub%3;*~jY}X^EoApsYh+FQRX9u#HLM z&IU@W5$2--DQ%`ww6DXI0Q>!^K>qK6o}c~SNbgrR)19n7Ry+vbfCP|R zR-91D@3C+*i++VkIUy;XrlHjjf~7m}Y^u<1wpS)K16rFMN`kd*OU&4d8tZxEwycx= z!}bzSXp_a2Nf!HWvlz_v)X`NDF;MS6qHTCPY@K&Ig0-hx)P)b^v zDm|h?nlKb>s|rT$8N#ZXqi9zzBFS~gQ6#a;bs=89YRA-K&;?|J1KbR7K4tU_;bDw^ zZ-c}vIw4(c9Hm@SZL4xn=&t`@^*s`>EL5@UW2Ou_HkMgz>ry9eDr8zxSJW$}MXe5T zuC5PK`Xc2*_KRugJND%SE1D$rwldH5N!EiC{w+0l zNaW}w*_vMpXalf04PR=TTwg=9sYF#C1cZt@9M?or^TroY#-qC@Zsf>s^_jk-%{mL^ zDB9oD2V+}V^>_eh3DugZVPB<=WEOWYl=C@!T7E+OS_iS_$kHiu?VPQj5z-rv#6Bl= zSlZ~4sO`TvQrl=L@F#1eN&^mvw7Sa3)k3q&)=E*I~cV6acNfp03A1+V59D$g-e- zn~48TxYuB50aw{QZz`>$h*3n^QGsn!krKWj!nDgNnA!|JcP3ReUW2VoK|p!zwsf^i%~TGsccmz$M@-E3U(o z7$~Z~s4yg}nzU+qO(h2GOa=7A>isE7IhvBd{1SDe!dllM+9m&bQFhYzHL24@KJwNU z!fHAMwwD7j(V~@cx@TZz`>LOXzGcBLMj zdk(>Vz~J}}ePmh|n@h9hKTC*IOf`{~$UyN`M_RO;9-RI84+`}29~5YrN&>4$QHiQu zi(536#1ciQm_8|7^!n9AbRH`1H7J>@+| zG&xvTDxzXF>LMi!L_2|)bkV09UD}VOGZhq>2_*E0s+M?*E)vCjttz+7o!z3PP0w{u zJTdhXb}HtY!a}1}+lKgsa3Bx(b!NJlc6O(?m9TkL?%AG}i}S));2tq%?Oy?A;69J# zVn`kS1GLN?U9EqgO>`YB+dP!XTPTpa+OiTynjI`fwLVm$DNQI!R#U&i)sb8Oe#rEx z#PHJT^}+In6^*3ShLU{9o}!A3*uS(|qFk7^eA`G-9vS>2(Dt#WW)_UG~R(k1c;)}XcuGR5FhWoeDMl@bK z4$3WIn`Ri_KEV2Xbi-$uKW6+bwQbX2abX^-^}dAS8y(u!O!ba!GviCJ&xPg*fBK>2 ze0&;9=#|>joVDjQU91fMJX4h)MdEdQp<9Mh_hNmvs99gwaK2#G+cKPqv7gKF?@B|R zUtzF>Eh+PJQMvPF<*9BK%jwKMCGW_g315m=e|?*+$L4)udxG9x-|kyAFAL!6y!NTT zz%@B=N`77+zC%7?rZOG1Q#D+dJ9AfqTdww$z2<-W;pjQ$wc0TGC6} zg0GI)wiPTmD4&QFe`r+C=+i_ll^a`pgMXq{2ESsxFlT^|ITUUvt)6 zGjvUrv+c5}zoc}d?G*?xU+(EBpXEse^@ zOSwtyY))l1JKT^tucUWDUH$0QGyE{Vi|Lu-rTpTozxd2_r$L(;84O|e>-RLZ^q0N;H?>$wx1 zurPmZI-!(v+Gv<7Y2zb1^IhVA)aX}hVOmMut(~l29kHdT(y;(=&LBQXzNAqbDUUgk z*UPB&VM+|z^I5oh8<(}Ln(YYQG6=UPnI8qO5Vpt~Nd?D2icO2sVv1Fm84HsEbpWP7 zS-<5@CjfDvu7b-1irD?riPNG+7R$xxwA|_~GnyT&)@)hyWKlRRqJ?7%Ay4Q|YsEkP z<_VlCsLQ5gkVY8FBau^|Sc_q8PE^i3$9wUlow~qVf8Bq}Z3iCve-W)B>#{SCZr_WgJ+SG;bWqE@KVA<-64CGC+>9}kII z?T2AykhEK79SMy4>|mU|;Pu2HoiMn7WVaHzv$|l}ZL84}wy1>-Mw6gx`Vn!Ev{521A` z36yARiD4=UG-e8Jml8&bd{s;@)Sjg)mr8 zJzq!?-IjtoFZ@seXmu;zxu;87d8@~+bhQv`H0uO5yo6i?Zggl>)i|D0Wur=_?-2M2c} z?9JVty=YYK5$~?~L_SoYa)F!}u@b6EBBuLp>nuDyY~4&>FR7cQWP8o2ltqP1+XPLm zlmS`mZXp!YK7oV^6@|2KAiWg{&?2jTGG=aOsIsJ5GU==%^mm zQ8^JQHY!GaD2c)QmPoZgv-lBwARA)*)au`PpznRZ=Cq1}jA>0_~-$C21A4HO)I8 zcAOnKkPw<@g$4`VlOJ4NJ!!%Z&0r}z5L2SXl03tmNHC2)m}=>@MZvmi&V-5rFMDSE z`%NIF)pVsIh~Msnn^(+wm9i)fV%gh(N(f<5T`f^mTNIFS%gJm^%LEddTD)2wG@%G> zuOU#PDL%y~e$D9nagg9-$syWAxrtk7p(2n~qA3~ZTC2NBBfW(XX4B%PzufFP1ok2s z9P~^ep&V8HC-{a1<~4s%C7VfDS_0X?W>&4M11YsQK~q+{ZBb#ElET|2JtholOlUrh zN{^vXblP_G4x&di%9CD$6jv%nLqM+>7|&VX5^Y9S7w6_in-gv|Q|Eoaua?*!Rx~0f zm>vpyb08+&cJH^IVzPI*Beod9VwSyL*;o$42Id>l%2K2!*rzUD2hKlpA5dt#V+xt>I2S{czo?4|BHSaM`3 zLxouJRVQ%jE9Doo-XaS%)j>_64~B&bYt~s0u1U3s?#(Wc!0O#mfK3yndvA33*Dxi3 zuGD~CtE8-|Rnf{?gx1xlq^Fw&&WiFyezLn=_B0SPhZtBJ2OYttv$@Hw!qhHfQlY?y+GX$EN!Zm*p2tc>y^q=U zLqgsXNu{uo_7QZGqOf%!aqeowc_$Gh3yXF$0j7loCrk|b`#Kxzw!!8V3S}mrB+Rg7 z4sO^~iy58eO$|3_%=5bagNU{h6+Y8-q%&KcL4_$xw8md&5|g!FSx#`m)K3`0f{|BF z8Qzrtr+?`Co2zt;xw70`%qm}(<9A7++}$p0wyg?eXwxMVHKqmMR#dq z0$0*PY`hrI0syFoN~%&+A<;#BR*9yhKxIN#O3MUtYKFXnHG>7OjQ;+{&aKdIv3=8|8e-C9#MS!wq zbpHoN^V$S*Y7;S^r|FY0cbGexhZ%=NDx!m+m@%eQjJ~9dz7nezXe?&C_2V#~DH=;7 zjd7NH4Pdc5HYElsk#(WM3d?fKM<6k-#h_V=XMtlsbCAm}<&?W_rac`i1i)idav%zM^L#q($~*Md)N%YXV*?4E~Nw~MZl&^@>e)_NiW%Dx_uq!|RQC&y>t zEzeNG5ecsw!b6S)fh$5rkd+qj8W8F73@VkNw!eEOYDcUTC6Y*5pgC-fK7kQkBLsf_ z4Md+&z@B&oOt*Rj)KAnnL}H<$qCPDuW-(J4S3J3q39TI+gx$Vr z44Yvm(BMEtq_N=CR}#3ft~qJ7Ibgf9ooXQU9b`feymVkZMjgWe*lLLYJ?{e!4$5g! zAyxc9;5%p)4CM>`1i3LSE#a%~nVckhHtj|xbyKS#VL;}uC_fn*U(r9_Sk2a;GI zUm-N;O1X2s(4y;pdUX!mrAA4=d&3t(sV7j{oE*lr2G>COP45v7pjS5S_Jwa zzkbxL^d-@S?oQ{>HL3lJugO%>NZ3C;8G3kqOpY2wBub)AoSl={70gNReZTWLgAVqk+}Iv<$4;fNUH# z$yKXYo4m0llf47J!+i}0{QS>DdC~3n+6nroJ(Um!*nTfoALvha{2HN}RWRiB)?tpf z;*CNN#_jmKJ&%Apzgd5Ego;<}N5t!>c6@7eb~*Aj;w7h+PUMI!6&&4>{rT?#NEF0O zKS4SNx##JGX(4vFLj-{1R?M}72~+*~_mS~Nk=q?%EH)J?6VQf^4hSJS8|3%$9L*8o!QmD{Q7EKD-?T_|H&)hYrFO#3e9!w$$aa6=NGgSu3biFkZmD%J zd{JkWF%ZvHGL>Zr*4lDi7;S)VupaFKvEokfsa(8YEJc3!dojh0@hC^PXz-hgN;D+~ zo*DRO&7ZIznIoSe3qp^iQdr??MBwEKNE{-m6jqfk*@1}AFl|WsDyB3E?f%AS(E=x& zBjLyNLkqP3^up%t=f4gfR3G2msP2(N;7ElF*jQU{E);{pqH^`gh z;%z2%C6qClq|E)^PPkld_VT=(Kvg)r|G=LDwb2<^U+s87-@oAJ>Pn1Q_I&3c`-en% zik+|?*aC+Lj%P4-n_R_2YT=k7iBjp@Z6LBO5^t0#X@+E!%tl2Mi#CjllW_xu)Ak=# z`Mv-}J7yNEM}C*5wjnQ1y|M3#T|+Y-EE4x`l}-Tbg?}KZm$uB>^8CZd8H}1q_>Ln6A`HBW;_uq$m7lCIwMS_DX?#0i#aqF6jaX(0n$&tcH9NoZ*CcN&6k z!Y>diD)(nKe1?S-@n}os)>#w!e71CFgPpJe7k}U(T$|9aBWf!X+Q_jp15%NA4~?9- zgQD0+q8v}yg`airB>19mKO@#IUZS2E;URV;5_qSa1z(7%NKA|9_#!|?(283MkP`3@ z*%_&@pdFQ=OVpD=uTeDx;hC;u%+|1GI2!Zn}DBDo=Qlwf$O zIb9o{%DJ%lxW)+t(%FhWaUH;6q(udF5n{*X>sD@ z=n{9&#!42igh4)j&JN+bdNDg({EsF+3pFKYC_Q4e!psjY&8rAx#-6Vi8mOp0k# zXwb|dN-3_pn34gOqj4Xc#@Xx;X!6byB~ml(0!tVSSn>j|9J-P}DNhnOXb)x4iP(Ps zVzlZ~SxQ<>sThq31e%i{_Fcv+M9IAnki=}LF%$?rBt|lobdq?}z5^k&Yl2FY#2sC$ zS{D<^v6XNrYAjE~akTu48ecR@^tKdVz?!BGc@{zzZ^tTN zzF`Tw3bQ5h;gr};{47v41MTancTeo;WoC%r$YD=IFV7)oQ5!sgH`=(t=<2#!AG8d1 zjzkp3ei+rFf^GDxrw?y>Eru9NpW_qVxPtP+wMWEyU@=;8A$yH#pem!@;z zr~Ndu($0Bl2Uhn*N^i>1$e%U=&u90oF7iBD&H1Aie@M(aM}4~zCm9)+2>6mnMU_9z z(ehtp+68)-KDg>|-ce_5op1d{v@#8eR7@iY4OJ_8lZaT^m2}{P!%8ja-QBPlPl;y| zr9$nT+CtXEH!Y$`X6wS?i&Q#PCRd`w@W6}~#*pno=ZE;-Wk3Kc@Xnr=;d2GIpEOQ5 zY~ud#U${t=u@;CU6{8|JwNbK`C}{afv6*u`;JTnnOMhf<#K zdE)y9e-HO|Oz&&%n;J6He`pAQhacB6X(=%t)Ev3BW0!r1Cv~g%W0o%O^|2K_XUp9a z-g)Q0XZ2+5{}x`py{|{7+(G41i|@%#nbICz$au^x1p z{6;hiT{GkQHXcgrKYhM@ZQUk%1}Z&@F1cZSe^1#LrF^#g7?)}L*2YtEN8Tx;cbi@P zbuu<0^EGpwus@yJQ~bSs`|2h0|JYM{{_|tz^1*)j^M~AZbKA874F#XPPSmIw^$El@ zw)6$41MNwFWvM^^RUDMd0_GNF8696!4;*8*E>1V&Vn_rdQH3zX_#Rt*!*Xn$hvk=) zHFr8ozq3ME3SJ96jg%?QG^MDtr;lY<+E*%FO{U%7y9HA|sWIc}RuuK|m&7e@f4O=T zSDG`0=a1%J;T425ffnSPmW!c_!;hE=qF2{q*QQ{<96U^Ef?P9nPqC}9N^i8cDiRsw zXw>|8>*D(l346k%6nu04qsvi5=fH6guU8NlUa7R8sStE85+ln?VrLnr{rwx2QM#ut z(auM)4rD6PkegUxwp;!QTH>Sf0{v$p5h;JY2=Yx?1@qBSm(c#x&%ehvJ*F^@zoSuM z4=qYep&Sq+9g)TnQY4NQu~1+s)H^_XlL0@^x*z%#TEN>fUi`4eC{$Fs=`DOhGn4f+ z3jTqRAL&M1EFC2FZDU*TiX@Ru!8r(19}-EWs5a5Gn9_viG?Q}zU(^A|RF4@vo?ICV zY#$#=_^e}DU?IMb@eN4op%aQuaZgSN*2yF?Pfq5&liB(Xr&&^FW47MWA{)li8;-{5^_ z*y6MckU3!7vkCgCZu-^vzVpAQsay-ZMdFgi9kPl3Th2bONoh1GQ0wyLylKHe1A`ZubQJLJ27>RbI`s3ATAV(!nd0mc_?$gET(MiTXYoVFjBFc zUZQZshD0natRH?1wIHg1Qow^3_YTe+sIlz#RP^89O&7O8Du*JU-Z}IU8qaQLg2BgX zJ&bw@7#v7q>(Dnzq&67rJ#vt!^i48JStU2TLg^5+^g*!(ur|{HIr5OMpH}dS9B_7o zZJ3%yX;nNvZ00Mi6R0po%f+@kd=VpMl@OX!H*8cCBN@!p31(?3ixU;+9^yOEXQsL- z{>_G&TR>l7cV!~UMv15DNxx&!b9?g%JvAIovb7w}x-x8LZdCr)-B? zo>@br$y7?hDBL~=Fcym;j>qMWi1cMSYrxukigKH^I_Wj`;{o}PDgXWFdqXURuD^xa zf7m{K^|{i6G~=0n}s$)ULV(p-J=`Z zLwlmpG(+i4#VOL{=F|-_Gab)qX?OY0#G6mjshsoLLg5+h2!GDp_l#=>p1MA>+0*C6 zcS*~YUQ1o?_w=M4aGX&%# z$dv^+eYOp-Zv6CXW^CQ?24kNN*2oK*$w8_QeH@1yf3sU(yzekXsVnFTkK@D%R3_qQ z8xP6T8nze17DD=>23|M>VJa%olo--1%9sS;wX^hG2Ls1M8B(gQ$TcB$ghABg|HK)K z%6ufFA<(EO=xq9s#4Y7S_;lP*i>$<(yC0V$96+f4_pyt!mkvlEiF!@xJ$KEeuWckX1V#J=vUYR)-1+?9myH# z#Pfsdi=|8CgJUXU2Fp9sMW#9^lsov=A$F}Ul3h2@J_@Nh=-zGt(AB87e6s<9&O0d%xac3)sVx*m7Do@uM2 zf>v(81MyH;fG&GBymVRyG)dZw+@%O3DP0%$%&{+ozGcjqT+yW{^COEWF%;~1|sukxGMePVth}%^a zX_Z={W?YfgYs7IC2_H*gi8g4v|=B z3!>#sR8H8LpZii}TMd_~n06Av7Q=v?+C-Vl?oynlI}KviFXLw#FjPz3efeSU=Bl?Iv{IxH5CX@6E)VKxp_ zL>kMp=J8=#!%CwPb1l)dbLPb%QePRUuwc8uFc70#9ed)_wy-4pdb9 znLhAe1feXEiYP7=2z5S@P#*MpSry(2DN>^x&pa#Dyb33T4a3Y#=%8;}Alj<^dj%>m z1rS?WO}oOcpbO>7+9^Z1R!b6(=F36Ap6Ms3PPbvY4G<#ch7lE~$hhV-o=o30XTXha zwRbFSH{J*!NqbV3IGnSZ;jvuIqWN0v z3=kf5&=rPVf4|y(h-~j|%hTj}t4vf@$q|RhhqsJHVoZgapkAW}OSb{RHB&qpf2&+o z1wZ;wky9KsF&I&aq`1|#P*Kz9;I5_*X;?AWLKtcWQ3lUmBaT!~=5i43>FfT*({=H4 zkW-$AyP5qxJuiFObK*q}{h7i-=d5>a_T+^L1{bGH;{J5h1&rH%k=Ln!zi(oYuR=OLNlaiYW&Y7?Rpov=*4U_7(c*UxmOa(21ae(^S} znB|6$4P@m;C+n{B|NMGQ`jtq@59y`Wu6`tfU8$(>zp^8~(X@>eqbW@&O2r9jV;S&t zyVX3)2W#EBKqFch`e?WpvccpKB0g7GKPAh^T1J+9tC;`T=jXZx{heDVEYu+-Y$7Gn zhbhtijnA7VI!RJze&tXkj&BT*4xZiB-_vHSiPK7PDUpo&uOBf zT!tSPBc%^h;ptv&7e6Q45{V2*r=l`p&2@VzchmbbZOYhr8t$9zAh3Bc^)?Aj#0fOX zOMTV#9Qt0m%Z{@x-BZH=dpu{qZ&YixVE;jLIO|5`>b-&|_@07m)-MM9m`C*=v;Siv z{yVREEaLy3)de-Cpgo%LQ5&8F-H2UXRH#h2;WlJ-zIPlS#CI4fgC-Os%opI#e_){; zO}jvgwzk8p;eEE+s_sUM-1U2S1$hLZ7JO)x?ygtc&)z1JY&(QY8Av*M{&FSen%3KT zklD3IhBmv-&u~YDeJZmepGz2_zTjZ3R`^M-WPsX^7)?zrv=hP$p;J-OyXVy%9}^j6 zLIX#b13(=3?Bo`5u7$nCCXu@jI7)gUsf0t;NKAZ;u`iKWsHjYzde`I-eQ^+O2pwPR zh(JPoQ&wsFqJ-i%1&-GJ1tu*LNu`Nm2PMS&kza*SSnkhUYrEl~n=YAsgqW^5^wq9E zyw?(s<8M7)SOQ7faMLXz-q&8C@p#b#AxDW+SYHywZ3vA6rVG8LFV#{=Qqi4B5C3!@>b8!X%MQ!x~IYV4n8P3ECy!^WGKZR0uoAq7n%(5Od~0OWh`HIDMg2e1HD@_XUV6yE`i3SF7A8 z^Cfw;ktP(S6Z~@j`H#bD$nC#iX<}0>sXO)gW*N6z%`1egDBZNM&$S5*)o(h{n;NS7#0PQSztV)HB+R}aRhGc+^yCbK+@kX4*BxoN5vB*b{e9`x6 zwHPCC2)()Y&+$9A<1aze>j?e$HU-UOhgJ+>u!OQO*8AESenPAqRw~eb3*Ue{UeCe* zKQ%7B7AWe|@%s7qfcvu#Xyg!z-5&2QNf9Ah$rrl^hbXK?GA;>VAg&y!u%Nd-Lt0db z^~*#`TL>FNr!5GK#!xuKL@$P}7dET-7iEZ4?HmT;n<$&|k8_iva3)nPG-)c00N*m5 z4{;vt8Gm^ILcxno@J>hA9}$6ec$rm$m-t_!mJhAA*Em31L$pTVUyf62l;gg{uzvHXmtI zuN!fAg+-uA#7}e5q6(=vAW#W748&tc7^>=(xH$>a9@_7o@oCNztDxI~*YX9_ZH03)yD0i5e_q;Q-keUE?k4E|){;wIFt`81TVhDxrP!V_SH-(H|tLDZk%k&ZC z=2lPadlPf7+m@)S@yDN7qTKV|6N&vdU+1>#yiY{&d*0Hmr`c{CJJ?P)|NS;dT!6Sh z0tpGh9WO@K96SjpeP3q%*4WK%(=-Riabjv{=Q!Hc&caIB$XmZG({>>lCP2A}+WoEK zmR3nC^HA6R7v8EXdUP6=QLCBn&_>cC?=A&n+ZXV)vA}ZjZ<4XJ~@7De%8gis+dW0;=9r0l%FRFG$Qoq8fd{r)JYH`(%y7BLss+ z0_jauxJ_9rMp7}`I)m83@h54+ma|kx)t&McMkxh{p3A*#=Z}bc*-VkaYdjU1N z6|fm2g?)+d8`x_-8HuTJANRLc_&Vh>P7I1iynFr#aqSDiWI(<+0P)3;wu(O=6 zz?lk>6oT#V2-%bc6v6$bsoW1rj-6U7CQeRZSxXDk{-b^Gzi!25$x4Qg^?>9a+rpusk2WueBBh6X~E7{ zosDXJwXKWGdRPsvB{JC40Km^$mPXyUb9?P=oDGzy*b*E%$`IIYQg#e&mS8W#h*MJr zA2J>8EwYB)^!`b4p$Km_+2_f%MxiYf(K=Y~H(ekjy9E%M;<0GEIJrF;Xrn}c{j0e7 zHkYgoDyiTQj6 z+tvS2cG6_c$3}uSOsBX;t3uNC=euT89oH7_C+Jv9aMCJPKZH=vfaUwkxry27obq|{ zetwdEa?j_qVX9}qbT0O>8l!$EzkCu2E%AWu!yr$s^sbfIv84_N= zM~^ViFUqD=K#>D_JF9X)vD$C@Z_dU;l z_dYB1u?coJ9g>M}5wT_Q4qfK#(phEq3i5Zng(8~Xg9N*2rejbR9_cOg;dbVU{KlQT z-|ei)L4qw&iHi03cCxxh$`fpKX-{C~Plejd+#jwn)BeB;%lwaxT%Q%bv5&1gHnB7J z6V@xQRBl$g!ja{_)0=^>q)xEZ1)>uf^EKXFMziC}{&OaovsMr8y-F&XA zVkCu@-a@F9BS|cfodYjDYF$k&6ACfw!8S;C3m4QHeh(ZRc2W~wTE$u)z#luman|2x z?i>c<;GQ8!Y#|hgMG{G9PaojNu|Vi(A|0|(uF%R!#_gy4~&tTX=lLN z$ABXjryqSOez!Ogqv$mu|7D{Fq9PyVzia9-< zx}h{zJ4@{pRZC&55}&wZPBVPLxsbZ^@95x#;$O8sKzccziWxofa#t5IYr{1bX4JvF z-1vC|7c{0#91u)yhg zPLY~KQlX+?w=E^wLW!sBR3zf-dkuoYDK}HgQmJ*g^F5rsY5<+7GrkG(9nON+`Ja{g z8JALVI(@=vzRtIGex;b+=YQO5cuJ%!kwma-5*kMuC*k)f-C7|y6FW6yl6z}GQDcEH zE0!p(A!2SDF{7KmiZmC(97*PY8~9MSW0Hr7fcTjW4BYvhhB)b^4_c*J6;zLCN&wx$ zGWy2Wopo-LB*q7Y+Kji*djRP97pT#I_9yR|_Np)KlvS_d;WHTyfhr6?4vxP z%f=IO_T4X;kM}9pWO^If0)@fK3dT-Uv!5naUEt%L!lSq$lA9-KZ8OY6RGV?2aD)o3Y1&09x3CnsL_1m#PWrd&U%n>lh7?P6&5*NPXD#51g9mv*T9?OAsX)g5AZZU)?)N2vIPm-x~{Eb9?bOcNa5{oI73Ak3fnePOZ zAFtEPu{(aqxHcy$&ie3FB+gAQ3l$ZIHlZt}vN-jDU)Ni!_rbbU2zO_hKp<@OOfAuf zq}C_JV**ij&g5Kx^_4^m^%RWoDGc!k#K_0zCZkDxC?6|?Pn!%rLO3FtcVanZN8NK+ z;z|#>ZtT96cy;$u%9C+o<3^9e)xGA#XHcGM zj@@yD^=8)VT%fFl%CRMXIf1B1HAFwq!+!)*J zBaLh7@@x!CV^M-L${Ff6%YiO2-S8)XDhGS|130F>GN22JLLr7NW!8p1;?Lkr7nDbS zyMKhd-fX#9%9L)^y(7eb&r-SObBOo_Hzlw29H_v&~#yzv$=6teYZwm#WFc*!4yJKi6k&sUL4D!(qkCMW@h8ln-DS*#5d0~JxDdDb%1==0BnKO|&y(EW)AwVBesx?KS7G|>1 zuE@7g3)Lf960Q17YuGzw&;`0i&wC$7YW`6-!349^g*ekrZHTI z5Pq0Kb%_f0HwrE|I+0^{oDVPY%-jy$6W15jJmOBrBI%?Vz^H{(q>Dx@Ag{)6J<-+VcCJ?Br@DA zIX@Zq>F^qJjT!ujNm%>MgFhjgW=owxpi+xYBzR=WeTVr=)H|cEOgGci<(zaSk=rH} z+x&PxAta*>Nk09N(d9T=xYVKed|vh9>MC_1PG( zLlPI1Zu{sqOCXv%^nznhzP)CWOO%qsBFP&;@G4(6fmq;FM{az8`5=EkD9A zU%BMqgYOkn*rlT-m|Lv@IqbXAIXP)PZ2C+i8TAQr9_^NQ0dityIV{U`b7z(5*BpBH z%6=>OC6g0%_uijba(y`6ey5%q_Y~==g!}6ssk@4l?^IM9m$!tEXoR^sYQAne>yi2Z zNT9;9)|DDlqi)Gh!n||f5QYlAZN-HLlv1;X;)ZY1R`zkCHL<7nE{HQ9Tk^2JvhWRB zP+AaYD-vH+S8b25uI^$O!Pv9@vNixdECUSf3j7pW0#+bE7xqSFk(o#nVn3;bO(Llj zDA6`p;Z@^=4w3@7BiD%>`%t5h7Kx-%qEQpYnWNB~x`4j4e!@sj`fz&nex~Dzm!lpU zctRexbGKc+wMM(YAx=waxxSN+b1f4+TbmFSQfO41BC<77hv*r0MsAn&0gyL^j@^e7 z7MHkg6>vxeqP8mWswkj4Ik{Y>#k@HIV9(;Dcnpb{K_iL~8J@uivzcSzL_^K``srq# z19+-g9mkVH;&$QSBm7d#f{EBaVUqb zgfM$j7{@UHIRsUG>)6P!R$5fGq*CV>>%p)QmVl$?Z9i<>F8QNfup1|GdXPNc#WLQg zarf66-H}HYHd~uh7$k$s3t^og4M662TM>^&Gt(%@`@Q?_iCUr;qw!pfFP|gX z3O7O+qK`ybDCeMy$xXkx>&W%91m?)+(!YzbJ znT!U-iHR=gR}_#TY7_CE9HX){`h&AX9-ekwnXV?$-F3FbgiPB6D@yd5^q~v3D_a4- zFJrHc8pVzNYKOluK%eA~U;QsBol%o0+i%Cu#Z;~NpfM3QO$a_Kx=`4cVF4%=IFn(DkA9;k-{>_qlYW|J41>F?{<>56t`oE^?@u8*< zg{N#uSS0y=m}vT(G&Ku8Z82SgrT`l$O^K)IO`q#|CuS8I=$01+Xa6PT{V7FA&E8> zGHnwq)lCP(W{Ys{G)LvIg(eQmnvBq332q@$7T6BkDKt6q01>G)ii)d>{C3r>RE$zt z6bCC`e#+0;6BF{?;{_;JWM{`seoF7$HzNLtr3 z`L?xD+#nKTPpnjiN@%G&%1`NTU!nhds$abwa(YTWuv>iOyN&8=`-Q1teP!xHMVFy- zxtew}-Q6&3{sQ^YI^RqB&4ib(C!WG(?R$cHPQA}Lc>yS%bjz+eNyD+{`~=@qXejf9 z--CLubsa|eUa}{;zfI}naZh^3wp;ehoN`YcX&ZD)Vb2!no;n^q#q{5k)<*JQ3%h5% zqmkwkHm%p?&IhWF9V~rLoiwQ#^zVYoYUEfZ52Z%MUeW=%QZ%JvBwc--38qq0p(20} zU335=lgpD~YV|3Q=+!Wz!Ja1-r2{4V$wYCB0nQ zJIr}a8|fyIW$+mt`-Sy7gJ=8)>Y1v&e=Xt@XYPg`a5>Jd42CA zY#IJF9Z9`C%MnK38$2x}+SBDx}!Gf)f}nZz!21ionw$y#vt<06<$aG(c56W0V3 zwzG&bAT9VMMumR|iQmrGd9mTE;IvT4p_tHqB-HXwP{Q zi$a(`B}ee*2Fkk<-$?xF1kzY5C6Fx(^qX#X4V2_ zmVf?ns;vUOA{@MKjZhv(27HAx;>R}5{~@Ok%7pGjiiNZo{iMh9oM_{Ky4qoV;ODmIuTp(~P#HyDuzXRs@O}{zA zc_w+vPuT+=k)bGR{oMhuQnKPO<<#Ss@gl#aw8104xUZ*xaYXAGPy*eU%~ zt0M=s!hQ#$_-`73l|!!uS|5nNKB%jr%0fkAB-SReLs0&OL>hfX@fz9)P@Yw$f>=>o z6_<#Ge-beq4!nCgdBa2x0kvNcJFy%+ zWZIa1lm@0ZAC zNChz++bOhgpu$pn4xe+&3X>4BRQ|#gio`-)fTeKg6`Bg>zY+q|0Oqtv#Pa+L>d73+ za{51?5vX@m14+_qzKEJoK9ayjJQz-F=*c9hqOURAO&5A#RdLHluV%kOxNwPA_7}Y` zbCA(@Zf3m6JPvV;rQ?s8wD0apz=bMvb@7r$(T!Z4c88-*bGW2zj05W-#yWbv_*r|F z`>wT_;rrQyn+mDodzVC+aJ$NE$reI%LoY}?Hch2NYhu9|XzD|flBKjJUF4g6V;WZy z9a9SfUatD!-lIuYpOqSmt}Hbo@G@yJgd$pG#m13w-@-{96YXD+fBs?rN`-)X!V3;e znIv{d<3Jos$fj8Kj#Mrt(aNqPesjRfKR8eo&1Blr!e}k+@8f}ApD2}RAgPq;*d|K`=!HQ!!^7)11cvbOy~$>8cArVuR0Z>MSCZa z5h9>CZDQ%D{PBP{RafhmLp!3ru#$`UcYnj-p?%+hx_zMW(Ug=?8S?b zB0UjoDl|;rGtNrM{}~5zof^;&2(`~#Yi&6YJSbXkttd-r>KA~--5g(QQyi+m}NV0 zo8}^}tBhk68YIJI;D>65g94w1GdyA3h~p&LrG*Z~C8+?|IZ$EI;g5i+Y7XxRguSQ= zdPiXfWO?i$46*C9igG_PIBQ)UF$~xeYfLeOVKk^PzNst#oWej?YAToRsG6aopm!^o z^)B@`ik|kxI8atCEN@cjtaV$%K1jG|t~OH)49M$?XAblM7~1W^vT~#3-BB^WQPcsUErU&| z^Pap!E^(Ucqf$0=G@GS^KdT3xyWb^UmSbp>jT>9{c1$6ZPYYoIQ9NAhY@w}VI=$iK>PsSdg2gq-eU)CG%w!;!0o;uXN~e3%7l9g$w?hZXEs%g(RIU%Eu@sIMm9-PHI3Jkx z>esMXx$P6pm$3Mi1j|jDM-~6>XN^V}7LxBP^q$mG#9as}6>6T?gKb~hcNkM;c5)z% zr1gma?tD4|(oUPe9yn4KDJpWMQEdvMIY0&nY>g+#12Eu7B4yJt!D?g!6FZ(Zw^3uR zdOtq69Xk{o)*w&o^v}Rk$iH-4khn6HtCMlRHN#hhuFM5r6w&>au|^Wjx~k$@>#X_a zSgEKO_!q0b@A8D_w|ZG7#=jYfGQ02eB*35|($XT(OKnZE-?BTvW|(EE+o_)i0%hEP zBGhx0`QSvqo%$VmSkno=a2jLC^${3JVk=~7qm8W3a8Bh6q^EL3m{x?$;SoBt48+DE zl1gFSj;4eUGd1)5q=(PvA;?NnIs=Y+n3!l+Q5 zaOE2siK8S_K-{RE(J2B8U-Nb%!OafNV2VoA!tuqLx{4e$>u(7eIWILMi|%TUO&$Ga z&s8qyY6jcc}C z`kV2DZbs&-_gb@Jr{c7>>zlmxCD0Uh@_VBcHH9t3=mRK0jz&SpbN%InosUomUBYNp zIA7&NK;9Yt0m5dyX+mcz5+mnV4uV)=42wwL)97lx>dQ2TV7ZT$wxBb-zU1dfS#XOa zqIQbp+1>WHNZ8&Mgf^%kMh92hwUT%G`!{Rlbu-;8)uGZGEaQd-FiC)lE2xhjn4c!dLpNV8!O!NIK{Z-j8i%aNQcq!2LxNCooTJ6 zyx<(IGoqwgc#VZR<*dEskSEh1xoy`cVroY2}Azjt_@C;u*b=w`ezjkqtu~_epU~5ms;fv(( z-F&V;|7m5e4WV;LBswJWagw7Q48Utss~8#SXxc_ko=<;JgAD!E56Til@8~FiIZ8tA zuMe?Ttb6G^~_ z0}{okQ=(>e^hd7pN56HhSQ;#?pSmn;->*oJl>-%(Xi5UDvo2w^bLxzRzDF&Lrr%)<1O9n9OSc>(1|fbY z>|W%rZV0P3p-txVTjLzcYFsa$FcU>XTuY~E-Y>`Xf^_9} zG5luT;%~S!-n^3ZZBSGFQ}MVX#qCbk!PztUf|r`D*2~|;FVRug02|@e(5rtaPihY$ zc|i6(b6xuKfFQao9)2#*c+<3Har77Ru>V(=FX;Jiv{;F;+HX>kjv8ig_7lQpmX}zc zUq_cnBA)hHbOcgI(n;g&rlG(mOp6N+h_!feMRV z0fN!)ZYK^*nExl8;rpD)`}|Ki;|*o*+-O<^dP(b$WRv*du}iud{;eR0k7U{=Sn5de zQj-S`6T}xMgn@lzfPeF=;ULwwKxf4kPKC;ZMoa24E-7*m=aqtTKayfmiKd!wDjm9U z*ob9EC85DuR*8?=qLZFtz)}%?ljs?mA{vPB(bdUD2RtNFF}3-@@E{oWj1bA`usJtl zv%370k=QxNz=5Fc7+rC9jil805ZjEWqbHr@VdQX4V_~UOgnB0xX&Mz{Wr@}a1UkN@ z=tE6~{o|Y{QejDNk+PWL$>!9GSsd3+gA0COiV`DQqUtF{p|tRAe`dS@Z^B8wRd?D<s;kH!&I1qds$VlgdYGqdDM33E`N781yo1lJ$U;>3hchSgissk!=c zdfCh8n;X;^K3tM$l_y3)g97&Xl61H;; zpOB$%n;)n_R}N@A%8`^yG?=N@1yWfU2B{S2UhDGa43@EJl*}+e!5fQdOJ}H*B0*Q| z7=;*(I-u?npSY?jEtXVfDjUB^YvX+4$FjPl>&}4+i|Tk2%P7>2&iI}3B8A@^zC?fX zk@lj3*`SlQ{8fCA?=#f%e|VnZL1%b=aTpS*K-Yf87zvSbI0Z69|^9%W;(eP=-;E)IhFn9N| zy6D>llHP<)&m`Zt`*u%c(xz=s$?nDdxg5l90V2FpR*5r#`53R%R>iLR6G8^IE-?nY zLYNAxTsn`!xTl^wjF~Nc06QOc8c}ib>;R0Or~$s^7l7LAp9@C?*MBs)(C>4oziTCch+FJUt?ITICjG$lFp;kxdR%e&I zz-%(p980u zFd4_?=fkJDq;4DwWziHe3Hej^)LR}qW>A;dL&!?<+6@!MM5fY23}-Q_5HxWp^cn#C zK~n;3SW~G*F*M!`6=4q@GB^4#eIO#7_Md-2_;Y~^YyDI}BuPSH(-KL+QxgVjBgldv zUA_VEEJ^;9(Vvy9u+YNIGMeCVPVo(}S@?D=lCqWCzZ@;yG;Iq7NA!`Q>o}1(wSXUC z9jxj3#aa=MzU0uIaFuz-rJI@hp#uJ)2CWN1;&6RVGW;7|teCd>ldIf}30Ma~GKZMt zIn&0!+<6K8YW)eJmt;vF3WwCAqMI#tyutFW%AUIJr9Imxw^^cHU_kafa2WJ{XV_}t z4`9YW0d`aq0zX^F?ZCP{t$lF!{m8F$$-FMLWg#5d6aW5a+4&20YS2E$BmD zJ^P_%j~?XQAZh^FA)5U9kr-Kd>J|!Q=dkd@pBSaRjZqJzfZ99>%-ZJ^ zcqCTLOSLofx|#AIe`aieSN4OWJ(C`$Mb*(&Mv*5 zF-g~45EY4EVNq-n(NDda(ar`y|AyeEp7o=k%?3~Z$%E9iaC|Fowk-nJY-sDt?$6d$ z+f}41ka1g;Kh5*LSK0Mk3_#5e%I|)VRnXf3;NB#$Lo#MMfm1t4)Hg0iTTa((zu@Kf z{ok`%xrnsE%HJ${{HnC{a*}nuMUvPd6eNbyIsMPyube0n@x%zBj-df0&9mG)Vxz3W zBfBauI1C?THPWKsL&~U6zftmUP`n;6sq3oaZRPW69PoW?740?P!GRB?<9NVdrkEt@du{Jfh0cYtI}(j zLz50ZuGppKm(!bsrR_nD-9-$pJ9^g$`}T*eH36_gqX|Qos55xAS_YtV;H2!cKK1Ju zfFCLnBP6|xillRmmEKCnxv$;BIi+*j&Ue*9keDKw76Df+S|tt@Qq_8yqj2E^AK(K) zI;Sb22KJ09eqwgBU40BOEy`3T^hqDeQB7JVkW-t8B|J?x@?G73W~|bClJ8o@<6uM) zT|EZYse**b5M8H4Vn{`6rjV2-WB6b>ZvPAsd$pCqjc z&U7=)oiDJ`ISz?bROR3VW=GJs)H#%}*WA}%*mNn7^1-3YY@X*tG0`wZ^Mo-KBMdn% zqic9>33wBU%-g=y{09wFtBy$rS(~r$;1pdkg94#DIiPXZ19j#WC_xYk6 zp^GHbN|04tQLR~Yh#Yob1<+DMg;Mcp!EOm%2FTe` zsP;vH2DEeNlEgY_%A+cok=~PJR$EQYW-1fYLeB4UWx5$J(h)e_QnS)jdaum5 za`D8OwCYL?AkAF{Ck}+zi9U*%faJ%dFB~X=UgV(bb{|MiN!|3ZV(5 zMN_?0N&OH?71z2el_-!F=*Hoz9>Z<`G>>~_*leUy;-nRfIm+`|RF7Ku4UfxV?7C8)!&bL6DHZ`sy2q%a*gYA{XI7-i_=7qgxK z0C$Pz@JWR5k|Erwh%SUieogY=(8~DGfZM~AZW&Kt-E^{9V`n_38!Dt~`Ok4Q(29^b zL}FR%ZmJ(9XV*wdSk8j-$??0#|8!1R_D9I!j1T!?;o3MPMvXuO_0t(5IcCl;J`C1kvOKsRMG|V&%Z&%YQ;VzK6G>pFqIG*qh9C- z>Vu6ONtya^(o1{)k)Yx!zZ>U2Q`dUhZOs$&)^kr??kD%8w%B=sFQ2JRoJSRHeu8Pq zUw|SdtK^nP1a&({3-{E^(HDj%{FD3pyc+uhp3&XjEoV#OmObH!w^XLyZ}Z1q`(|-o z>j@vz#WQw$zUTCN@x*_5H#yw@vR;O?YpY(s2Mlic`}{A7>r3u$>7Kg3m3!HlueZP5 z_m*(x;~5=bfVXy@)qddqli^EkUAb12?&46-NoF$e!$Uk8rj-MwsZ>ByM$;iw;N_KXj2=ea&Y;g$NH8%OuV zfB9bccBY{V+Ox7*xF_|ga{nWFU#8Z$?wN0F&fNagw)~sDy}5hVmzNZ5H0EF2I0zSC zZPeNi$IXY#`7Z*QHYA3SCp>b9)7bFi=5gZ%lBbl8dT?{sz z?)o4zO^FJtl;Df_I;Zq5kxYw#Yc%K!VXk6RSp)`)#)Y_j+vYM_SPjnt%28joa*!iR zkUaA=UYTI@t|dk^dzBdU6=?5IFB@hH30ah>b4M*BDo&o&*NjkP>F(!*g*&h`&TYjn zM?c5y&%esy{LfS5fZm3en~T8<2lO^zc!pdX+6L~9*v3ZNPIeauGWO)0n~};3WwgsF z%k_b1MRHw+nk3{_6_C&QEhRY=@iL$QV>fxw2mxP~dSW%H)Y8KEEqiCqrzk>2Ar-E) za=`k*Fc1p@Joi&IornHNNQg&SZHD+Yvi6}urbU6rhu=^g&G0KKAitH*;<8y%nsr|3?bjid)8x0qNhSoM`WOpxKe>x?=YF_niz5|N~|GZ~Olm-jnxCu~cF(?{ViDMo54YsgC425HpNFx5j)zU8VO}_vRes?M6fUU=hDIgGs zBC$i%;Yly;H5kzig|o6**f2e)4c1-@6gw1w)*%aZd#hV2A#gh%4Yk7xh}vbH-!_tn zpOq68;Wj#8=RidTE954_KUt24RVbZ*qva_B4}(Y|wK!=AG%A3|Aq4Bwc(Xnb-2X`H zJiHpp9fcy9CJ+ri`2TPti>7GCvf!qIh z;Qs$9y3Xc^3yo=gh+E6xU|k-x<~bSp)|@{g*mG2#xSO?mqB+ZBb18XsZfLnXuRhPP zJrQX?^htuA{0_ZeYo*tf$F-={67TNcOQng(lPk50;fBJ0vot;5@`I;`5BBcbQl4nE zUFYC!RQJsFPy5f(GU(ej4KJvxt2Mjjjk4SNOf}cKcxHs_oPD%8%lI=fEu&ATljb)| z9wqT@_qTQV6IO1N^hB+VH*vO6x+i^P9xubm=Cu4!3|x4R`n8ipG*ySD75N)=B1e6Z z)oZqvnRg;UN9+H5IYDH`}6_RKUbgcnnKcc|hPEGT2x#?K%LWm@^D5m}{OC$p~q^(yFI%mfW3o z{XXuVu8HENUof=iSHfY1=k$d4o~TE>B&1i?ZJs_xyXUUkf&Y=_mJKiacgsIDNl51} z#~+gXpeK|N77p=f=|Tjw_@K53MJzF-$a{ehyzNMA1<3>mw`L85%# z9I*~b0`1ZEwthm`CWKHX%j~=oH&}aOb7)RD8HHN|VyD8A$_gDJv@&52ncQ`uMrA^+ zi?J4Cr1GdWwtxPv6y_aMDo2ODNg|sp?*=QMN~8(vOm0%GaiXQQL%O&ROUFcwqaOsi zn?Hlc=Wly|$yX`3)kDeNC|fr8U6Tqd^AD(Kz-{3NfVd z1N|n6O{LemFb))a0#3(>in@%*pPCAg+7@k`G(=_GKsl6gzD3DOe(IvH__8FH$I#>;mQU(kGAqKy zL5|@;1EZ;e3WrE6L*koV8BW1FeJ^`!&x_?F1MuLUU*WksYGOd({JY|ZBwJDwyr z5{crNM={Kb#d3|KJQ`Fm6|2-G>P-P=`mo{=_<6t1`d1f`FDgYk zfw=2KKBCT#OQa`FriAIqeMUerl1hQPXr7u%tZi59s`6FnwRux2PKAaUxpUVGy~r+_ z-0bExrBxpW2c8UQ9G*~O*xY=Gia1hv;G(MXeu@-xhM1Qx#Qi5N&`#fJ{PfY-44vIT z1N{jrrbl3r=B`A{*nwi5P3gR+Ir9%^OTqH(yQdQgkL1j^)GQrQ7CDTGg_hXn*jt&?kQJb59SkX2! z-@Gd^Mjc1V>w>N*+2#A>Yb2s)>4XkS@qo4vnu^%Qub45a5VVBnDg_nqzGL!BrCB$q z_Ur8*Zb9MHz!Wk;zCv4)5N!|~=|U?)rwkb+v8Y7#O+~+JZS~{9IaS!M97y7p1n?aJ z3WvZkl8PivET784D*Fb|K#y1?OF ztyWqlkW-t8PdQB&GQp04(&Dr2dN+w#^d>s`&FFy6|1D<~V^|2AKeIS$bHoummFpj+ zR{Bt0=%Y`8)&zP|Zk6J+E&bG@E|mw4O`Fy<2M& zyk{egkh0$SdN2B~Nk2rn=lx=k<}3NP$G5)*`9|Y>W8S04{Fda{#QdO7!war+D&IWD z*fq6(!jN71-Os<&!)`RvJ70O$;b%3uYdqeWx^sT^zTC+>@Ju6f)E0RnfG4>Bl4ty; ziT}*_+y3S+z>HIRcmLz#O$<$9D9?1~Ze}DB#Je|Ynu}A5fU6bZ%^FzgfM5gqOQ!-E zEI(AR(}b{zD#Y3(b_ixFLS@2bLwv5UUqs)uocj4yP61QuwU~B*cr@&F5|9LKfd#z> z6*3hgX<>Fp?OMj4Q|(AqOXN}e;B(gvX`%gc>XWd1C+KjsW(#c>hY@b=akNxsTE^pZ z-$59m*Rw^Wk*=n@;d4W?LxEmO_MzU?S^17lr+7iSax;_4BG`z8 zY+Q1%#-T#2dP`7)S*Wm}hTzVDS*mp0!@_{0eE>W8;{W-3S$XL|_>e>_LnkWE-3F)i z%+JwhqI6pvJP*Q9%o)vpbP?M}b?WL{k!I9f}nd`o&>LESfCXxb>8T z3yBWGcA+}cDUrHpEeE_fpa&hpn;`tH3NnaZd_nUDg|V?|v~HZ84?R z4LgAn4HYU1++9l@7g|qCVT!6)@`4?*QHE5s=TER3H*zX5NDPIQB=Qj3f?Fs`B6xHV zfH(w+sfmpon?&Cs;H#HdaC0g!apFutRt{YvL5jwL%aw{4Tn|_?9oyxaG!LU(6}g5n zAO56Tcp2=Nl6(wYV1exHetpm@Q4~5FYly@A78O#(rkJr7m451=hGIy>@4p+@>b zRL0{Re{&M0NGwzoeQ zT&So-0$>{l9dH>_PDpHz(BgT10VD)8t?lRZ9+n;C%`V&SUKNS$ z+PD`mqYM!R;@zI0)IZYbqt?L&W56E?n`yBvy(bXU4|YOEjdL#!vcCXD$qvK?VMW+D z=mM{W!&)gT^g)sv96v2l$JngwaNT|awF`3j&LOq%CE04q*cYN1@A^U z2Tfb|POvV*ZewYIXGL6!6J4n&*qe|cJwTlUNh~5wM2d_@- z&L7x~j9+$wJGZj?nQpIh`t`Xe@NP#ur?cQV|KsegpZW|OzlKB|jZVzv@YxbLEERr& zvEfyVVRmKEnY*_NKK!!yh|AbRIi2BxWOcmdLlf;-g>;j5Gd@(;HQUt{Q5mXAIpsmd zbyOjA>c(E$95y@l2Bhn{GWWk1##vKZoaLCzJZ9!7x4XFaF{>|0edN9;x^P-dX+ksd zznR{7kYafgK5`fP*0erMLruMW%ie+DZuMcop1s{T=h^#>Z~tE4&qd_|-cC8%yTlJn zhdDZe*6`OCR&~RURrP7h^QFmoVQb#v2oAA?0pp<=UD=?do(+ZtsH)deQY} z%m148KXW9l(F9yO~rLcXbmUwC#HAtcgneWA;ADj@~`lbN-9*lx>@C z_59L==dPWb|3~^Zk9iW}52o}|y!AcUvwl7O!Cu@xk>3uf-V5)Ig0}s*XZ>|@6hrN1 zXR&+#0U%wU_n+K1Edjkvb=PJ|$C_8;pCef_zuW(|Lj9LFoLR~)h0ja*Duq4r5nQsck4^wPJvyoq(?AZ4Aypk^A$sTf`< zI(pqy7DH@gy#4^3K9mdf3%-NQeZ{m2wh-734s=G|d!vyi*b;_`q|ikRWakY*d45TJ zP!^yfI>O6RJnKCbNLwVPGj>dagI)B6kzq823X3+-0o$>e;uf(+-7LiGfdV%m7%1Vt9%a~zL?*d4XSXPlvnH7!8fR)3LNGb)IIiP8ZL0{;16xt&L zC&FrV|}MCHoTXV^2>3#D_9=CtdYboX>gr1#BG5j(=m;G;R5s7~Oa z6~a^A{-Yv3F@@ek1H@WFj-aozl?Otf%9_v@%P5nQsf>%>?yjq~)?Tv}K3JcCnq7@BcI)alt_X2@nFr9WO@K zK6u9rAWgh~YuQaRX^xI#?-A9HpjsrwISglVQ8KonaVn+Wg1jamp7v@VVihg#?}FP` zsItoN&o5yo1U!dFtZ_j&YSAD&7uB{Q=nhOjal-%b$lCr(V zB7kZ@#7xvJo|ZJDG()d~P4=os2*?(L!Ld8t14cp%p}S?ZU*dGi3h_Rm8DXg$X)tjc z4A;A1Ex9qq2Wsw-`y)V2$+9RME(!T z;e=<{kW#~~l#?9MTxR8;5DPYl4HIr8%5ko?E=BacD<|pR-!+c#MLv(O;Fu*{G!REA zBD0c}t<}3uRGE(*p%NvF7Ej(JzKunvBx5_3s9?CYy$Et;`$Sp!;08$7|Rd3 z0Txa|CytbY#LVHzu82n^E{nS^i&Ak7QOlcdr8O!06?&IaF>D-AN*?bDR1IVrRa=Y? zYJC9yus)_8}eHA80RC-5Q?OElr=7ICCjozbjUQLX+IK=Tu~8VJ9##4InwfHP^ZqYxN9tZ?o7!ZcgUPt1MU6LOb?{ zjB6j!Q$GP><%r|6u-CM>oNMeX!(T4`?%15Ae;HGHd2OOoJ{2X^l|S4}l{+cRi~q)} zp7C5zRvG)@zjo_!KXBP?vWC!w=fQZ*+9>Do&v>I^FH(y1{cVN_;p>JcJDeVPQu!e4 zR1svqF56ZRYuM=i#YE^4niyr5Zk#NUUJUf2$bRQbDknaAo2=9n7gE4NF=fe$SwqCT zH(%uec_4YmriT+=@Six*Yte>D?j;TKEgTRVRSjVwP~#*>8j{5O*U_kV&GW(aM32{w zL?*TUiWgEYZK|KSCaYR0tsMt*>j$AqnIY1{BCcbLxoKd(0dfqO^Ga05<0Kg6HK`R z*X;~(4>n7vpE$&{(0~SttE8kMOSIWMiBl84^jLfma`voS9$(Ixo30UKNSJ**BIUT!2?h?X8%aruw z;fAh_pC}{6BL7&lLMJtRYHhK@9NzhD#Wwcw)=TcV76 z!jl(F#7U?(J?E+RCZnlJl#Os?aWwzL^G^?ZYCd9?H&N^(t1N&r z8vQ$}oro0T(;|LQN6FsNDNy$66&#V4t{Bkc3A)sB}k>0BOdXEQ02XT^>H)6Sdd~Hu_!j~ z{*rq3M|J*$ZE?$gx`1|O#bb&04*BRLPlDK zTihDbDU3BgZ<-x5pAD5)b<2oSUWZN+E@f9#A&D3Z&rD1&uz2^+rG_&Ds7osv=2s$q!t zfMQ=FuhtsYtt%E?BHfTEak7Nt!+;MFNcJqJ#Zd}qy%=c{b`7c*lAw~z??_*I;|eMd zY@ebkHphScwlXg?A{off=`3B+U7hw{EWWV6$CvI9vZg5y#HujvOe=2pnhnay)>nBe zJwv@xc)ais^lG&K>TK6f;qG)+_%3(+agJJXbs|Q+Dgq|1fs(#9%-ch9vd@T7Hd1); zK0N003Ly#LI)JG)&Fh$p6A3;w*6@<@Z?t$=9i^b&i~w6Adi5)2<(HGLi}vEEt1zckMKB4yk%}6(%FN`SB(V&YUBc_EDk~C}himjI# z&DF<~5T(=%crGN7DhIv3iWxV+GV-E^W>KCS&WcPfeEVbS3oV*W@S(;;qPGiudDLX< zH24SQ4pk=!a=I_Ri? zL`ZYo5Xv$((7u!pV87K69JE=kNgtKn9MoU9+RJjJ|CBzrSM^6VYGJdN8XI%;_&V#| z=Q7nvnCC46)ygy=3(+qSeeZ)RoMcW>`FQMtnp=O;a1VU3nK6ZxkPk}oflO36WJwp! zT{Tcb&x(rh6tYsxmf1O4Mr|C|8uF1skW4GAJ1QsHms4uOybD<`8t!#29o-mv{``r!YUmR4s(~^$9uvU1yIze0MXu-b<_4=%D;_<+1oUpXs;zKWzW2o^-8`7DhA$2lS9E>bB(EF4g!~ zf3Dp}h88$Dx!nD|Fui!=t(fkpxnPKrs=aY~RMHra2BIwKLNbe$6RFk$Mmm1Mu}doR z-Z;T!u|g#VN)ob$MeH2H&d}nTL(=RnDQVcu)@Xw^KzwMiDBEPi^hFOT+zKanEiHl? zNt!j-K@y7JNEz!j-i}U3ZQ>N{vLFG6Z8&VUU-N1Tn;XUWH3}2^_IqR+qlmLPx!*V%yplUN1#C zK{aN)i6}I+{A69XE>x%nDU<`MzU;j!u}XEItk|RdyE;0$qud*c;k~V^!QEV~gSpMc ztgO4w+3jkaGk3^p%3I5{yBKYC+_18CVLB`OFWu1ty_x+C!iPj$#fCx0&UpEdcKKpx z`?%_c>Wo+=yM-(}wr^0@uy7J13$IUP5iu13YZC{4(OsSznbFH*zyqf9*fibxP*-WU zdOW0FZgSvqjXj0c5qp&zO;`5JSY2zz#cbm#)>%!Nw%NOEeu*^MzK71X@2qpibSpGx zStZ!)`gZ*71D9PzUXf8s$4-i+@_=tP+sb1O9h<87Bqo1POqDE0#}qgTNke$NozwPH zqU@^xrr*Dq_7&=SUZb;*I~g_ag)5otr-#Lr@XsNsc3;`*SxXR;KP|QVA`WdAs;0d| zRW)|MriR4Zsuj)M{Tq08z9jB>fu9y~_6)gYHR0pOs?%bM_uv}0nTr0ytMQ{8R`6EN zj}4;k=p~L1!@d5L#u`qNqUE#@ZM_!7Y|&m-gZ|gAQoNTYS&194Y(J?gccOgdEp$9@ z54}{ikE&f7K<<)asLm$NCm`rtEM16W$r4JHSR-{M+$&PP2zeysl3e)rQ}cYYYt!xAZvPq~e*7fyed)|;BWL|Jwjf=ErG%(M4zLoyZFWlPfAR$DD&C&Ilr zLXkAZr`Z1gRa7!jHY`aMcH#JHceuTULJNE|-JZ_XUP*!Lf`;!D? z3b6`FU)9D{KEr*`HYPP>00l){(_8L7s^^bS)XT1SYkoZG{xczav#=Y%_iuh%)9?bhS@7bLAn+Kyu99FcqlN*v=FGN5o;i=;Qo3fv&W z*nSFEvQ5r<6mVW@h&imPtis4-DY*gVnGZ-?4hd#!@&I8~d|*Az?Utwgf0sJT`YqqD z@?p1od0|;+MJgkA?q~u>TH*hA^Yg!&_Qg_l9+$=5fdQ@>hW^rsMj(nccB7*iHjVsx zpz=|5Hk35ru2oTbp;CcY^jA3#nT012ZHTNO1A}xjSR+=%HBbj=$%GZ;p-|DzNC39 zg*^*WUmH=F{LspjsFzO$VwE6b#)y?Ves99Gaat*7YMn8aGpw?Y7;ufbDpW#(?6xmr zH-BPUD0AQ|dr;zpvIhAzz)pDVsbB>gMvDe#@NNyXJQH)zd->OA&H(yXCNtQ@RCF1U4)kwnOJCE6G})k@LkAy@H0IiALikl^>W zNEyWPNNtNJBupV>garw;UNV6mrLq(0&~T|qnRTYg@(12-qQY+~#VgpYsWRr<43>AK z=7L*vyVPD?C*!E2{NoW~rCE8VKF&A2-%vvts%mX8Ijg49+C!~NX%ga?< z*iIFuecpPnFspX?Eo}32z1H}8x#mHiCSjKs=3ytA#O1>}R?dHFnv9s&S|~lv?*V?cec2jSJy^;cS-AaN!g8~ z^-0jI>Ll?}=rH(%H)MSBnP^%Vy=*g?!s6)b1_xY2J4i!tFAs;!Y#L+Uyf3u7jN?C$ z5x-5O5clSyH56-tRjwEL7$EN9F*yK!$;iL4MRpTDBK0R@-`3le>{AcOE-%;CP zWu+S0_(9p%8}{gXp9E!-KHBJTnxDHT!#@-Q`i~n5mrRqmlzc~D5bM*|6knja;F>Di z6lcrJ)nikn<+yGNGG^Z-C{I#f$P6p}54)Kk{cQE1#eUjZH#1@?tvn*R_WzM9RgG&n z78>G+U0DunE>I;pt9B-Pr`hx_$$a%($8vS6hSh{MQL z&5~~`-61ySGLsd#kq$N$?cu^~zG{l}pIY}LbKlhZyc(V%pbuDG5wqi^HuQ;5T*`B5 z6Gy!uKNWSU4_Vw8W7E3TxvjYwHZJ%qQQPBIYhIwV?xOOrwyNaj!8xw8@{fJ|fH~>* zUym1a*J;C~cG-ikBg~tVmw~N2`r`9|dB*YSh0xFKVE@_o5DdLXlv(?lp87IT%ilUT z!(J10-LHI^o3pq39|ra0i#9dIR4X?Z{EaSc_~cnenvL2_mmK~4clkx8P4Dt5T+4tm&YsLon{v5-skH)-KR~|AcOUqe#i7IUYM%x%2%DP=Ni8;nl(40R?jOVT=^p6_GsY#x}X=4 z>x)^1mA)Bmc6>jYvy}Te^h=o?C#0D?n`Xld{Q=tyP@>_c;BcFRl`HK z6E}Wb>UzA@yJ_714sk4=qb)R5_7JuUPS@?Tb@|BVETd4m{DqO<=z6XGBvI2oJCv`6 zU!%FEtKqlLvoqB%eb4Zvow96)obCAZVUWIO`+0h@eIuKF8~^@Wj{m2VM;DVlH@0bk z56z8QR`esA^72qF7v^LvIbgy;NMODnp*XG|x_IkSztZ&@cLnim*H62Id2 zt`;U^UOul9oQ=6mj@0AorKU$^lZ%7ZcW0iRHEF*Xq_wN=_^{({>elA!Tdtnu-18d2 z*_8QTJv#NYnQ70pdHH70>`?tr-DbmQI*rGpo()ej$uwo-PVAe}_%>v+ZKb*8&)Cef zmQwC`r}5t%FXc^%X1!gDczGSk&D4D5K0EYZtoq-)so=L0zWi5{$fl?}dG`*GQ zYYDG%aIbp-{9}f>^(%WJ{Ic?LSXGNp0I5J$zt6@+TILN|ujo&C+|wh98&<>X_nwpM zi!$4hE;dfNuK2FOwYS!s9Xpvw(H>$QKu%dPcQb2jJM%Nt#Uf><;_*sSDeYP>7F{2= z7MFN&aHNbRANkim_)+h_{*3Ei`5Cr?G>J&k5fmum*1%~u+a6ij1&@*JRwBnTry`*t zEw_NsZbTcPOJ;w|-N%mHjEO-iSDcm$l5xzdVHa}`Juoz+3sntdF)Qe@#l2<3-oH7r6G8-)`O`TK>Bp)vj)Q zg)}XZ*Co!zwT#!&xTmcN-SEc8->vBz$NjHc)-2Wx-KAOEKBy((@uCP2JkKLjU6+_t!c>>i;Qf!_VbE4G* z*H&iSNSpJtLEr(VM*&sf~Uk_7)ra1`7C z8zIFLc#DmJYHw>0Y^5`eHVwITNl8O)fJ4*!k%$SUIpSC?*3l8(wd{yLLKsnx2Ne_D zk(OIYda!PoWS21ze+gmHm?g^K*Fb#%9$3RFM4V(PK{a6S1!7ZT>y30hvVQU_tOlo* zmJ5<|2jXQOjx~f`VV4i%2!UKjVlFSuKeo*YzmencyF~)Xs|W1iH8v?F?~^%^BUUdf zD_NVw&LNTpaq;(xK;J!pFT~EtQjaKuA3q)T$#V*84M96IXe|MlxEtzENNb*IQb{86zz{{j;&NZ~%uzi>`3 zOy}Zlw{vQkkDr1uLHoEShEDrYvgY%Ziq=B+Qb(AAW z@dkOoCc!FkoF!xD6!pqFpK5_D)&XYm8N&rp?Jg>17q&>QTCoS@v+WhI=I>;PUrD)j zb;};IQv=#1E4XkX7X(1*?AxHNc&AM>NP}G1sL;G~4*0DI)51yMR1EG0-3j}#sUIYS z@BG(qIL@!vxt~IS;77!r*=VqTOVFrHBeUQ z96x;NdqKLeEvdyQ<9>j!th_>m%p#{MXz%5^vYB;~V6(*eNns~I4NZgXln~lxXcClF zTEkhDn6(g|{wcmrR^)e+msePP4$bKmD+Locq;4wS1$P!I?0se^v><0#3ALq+*rwTR zoIHs`=aq*5K^X@s0r(2U2QHGbTogVmD<}~g;flWPzYY*_f_06#Dw!pj{3xryE zLAJ4FevNq@xyNwAS4`y$F@?;fH%zj1;%uv7AwWl(Flm?lWK3D!D0dA+$tVxdhq=%%Tq5B+WmFo2HHGEIW3QCFa1wAi zI(9bsL3C(3Cp9yN7(!A=WT3}*ktH*W}#tN(%SpQVsAtkQPqvN9t1R=AyCKYQ$3-egwuwiZV0;cqgh1uhS+c z>66!u#vc)l3o3?QGAWb{Xdy|+y)bmD7UjS~!UP z6>SLGsSd?MKJpTn^E$Gz6|0BbgA~cZeVavo%XDW&lBOiFQWiL>#m4ZEj>C-W;8Huo zT6U^GF@ACSqLd<4=1L(6{Oh+u+^^LD$`?c>7t2~;7fcaH&k`9)(yBq^lhYE^iNg=Nv$k$6mTA1bxx=*8licjgfx<*4+%}en=->YoI;4GE{2t|(_$#As~1l0 zp>ovJ8?cMS4y12ni*x@eMXo9pX*Tu<>7&6kw=NQajYo0AjlEz=QO&uf4V+gk^zgaW z_{3KZ(GOgd`m&n;k)IRNN^__Eimy^-jMUi0@u$mBZ>n}N168QvdrbepG5|XgUVFzg zZV0(c8e$&MKvnYjPCpay!wF>$I6m5Ny|~bLg>#DMbbk2!Jut$;No_r+cut$#@3z-D zao#EV8T(oGSkCG3AWmaG!-^@~;KXN>mlnZ^6UrLGgIiTX@o@q0gLAhps!zh_)56_Y z{u8|n?*phJD`{5Zm+|5BC@BW36~fJaeBoj!*6$99^*Hjq$71cEXOk$+1|<^Xa?<@~ zXc6wDR*`Swooy~T$XCy*vBYvx6>K3G3}8W){0(X9q8a+LVSe; zYL8St3|&^>3^<1&w{ybtsFLoudIKD_gfliyNYZ21z-`08Up@RBF*c-)U}C|uRDNKm zZEWSPL5uWA78{^FCE~<)#-nnA(I2!jO!b?ZJ`#qGtt8BX#fI|&Q-6x{rus1Wgu2Ve zeni?dBx+8LvWg!OZ^5g?=thD+{z+?f z4UQkekv5Aopc*v+oD>aEsv|vzfzCh6;b-|@zdEO1o){KX2>>3_Q#~*)8cJyllsRBA z7;pduY+X{4fQvFvT4bmlVUIV`Yz(I5WChwQ_C~^ZItki2(Py1NTil;Fq?Hr>3beB$ z2K>%|)+HqgD@Cz<5K+w-;CLSp&RUkH-Y?whp!k%OBA(!rI!xCkEeJ-ON}(Y#eix=}Wa zI|(-l^6XN%)4q?napMZXqmt5_^n%({kG$8ZPRCg6vSWNyTe=0=962RQ91>-TakWSQ zwexm?g%mr-Dk)rvSwQuWc^N<;St5fbdr1?cBSiUV!3PA`uE!=pMkkvE%?iu*z|@1J ziFl@K2ok=+9vE8KB7k_K>Wqt)B3@}uBv=d92J>nqH!^E0yHX0>h&0e+5o#QEvJ$z_ z%7D#bqqIzdM5VDftz$1$tYfyH&=9{UX<&((QJ#f9yabg)ey@N1k+7a{b;(L%d=pL? z>0Xc$Jvzt6>6@}dES^Ebx(=)(y(H*2l=8yI zcT7Q+VkacFW$fzZh7fNtAo8pB0~Y*_wUZkA=ZFqeoXP$EruU)ArrUg174~%8`tqKP5%_~DZTp<%9iyN z(xsquGxU=iiM9h+9rEJLI)Pzj#9Hd_o(&%bK8H(=4brh?GJT#?aXb)ht`WMN1}JAi|Y^7NiMPV{7@OX_tASRcRNGKBPjlL0Hk8-6oZ~vw zXI^4HHapUl>m;}zN^!h)(q+5whgMai3U8L<-<8`X5kAVjX&X^3_)3|^UHfjeX^l)d z^NODH{Ac~{=kFhxn=@PHx8<6*@7ZZ;UB200Kbkj}c_Fkh(yY8}otH}AfN{Zf+|4a& zJPu5s^<@Uf?M77vnnsoE`&{w>0eo_NUm6j9LD>oNcM5T(W zEBBDb_hIB#p%%7A7mhZEhB{!x9zp_qA}S{LejFj=|&a8Kx z#vx7QX|-jj=__Ngkk1f+mHZ(TsI~H|{m(#aH{3 zhoP-NR2Nd}d`@%jq+E$M#?I#v+qC32adf*2L`nvuU@F^YT<_iFe?8k)UrSsY_m3NJ2Os$~6PMV?sbMA7qD425S{1PbmRf!9{ zFa=I9_loI`YulJ+z+KqFvh* zA&8J*FNnAIncNAnd7p{#VLVE}zt zI6zA52r2PG(9V}qHqbo=ovkvf4)I$~f799cD$;SMieu4&anYupv4iq#?+V8m}_?uDROnA$7;+=yOc_{@{S03*o#}JoBqK+1TKCsd1k1iu|(LV~5`xQ6^gJ}y<|pgm*`L~9#BLaP);y}!h~SR{tdp+%%< zJr|OaE*tJIG~Cfu=&`HXM;G^TA@Ot&aTRZ_L6cipSXcneY7a>673oeK3i9$38Ks=b zi<1{+4h2CLw1$S1et|Rwq=ge4CR+=c199k-bY1d81B>2>M~!>Q+&v-h*kRj|4-gW>9X$gpH>K`LDn5JbuC7_~R?10=k!X+aOU9 z^xVst6#ntI$2o21bXw{BThHm7>3%;aI;VI}uXBRe&y6$3bNZb12<7|>0m=QVo#BRw zlB9A3a{S2KZEzwdO;Ud)Bp1{`7k%Nv06T<=9|VZ2q$-+(eg;Yj>CVYQ8ZyTbn!U|B zODT=HoH_scGm<~8P$40uS3tn>aUb9KR)`%_%%`J}NTJ6IHQ-S(kBljFv>ihYHPrdD zrXYy6tOby{>{}Y)omdu5R$4wX$TO7OsH;GSc2mVK%&ii2CK~`*MClf}Z*UVmt`~G$ zj+rK7#2yxqsEO-H>!84v(Zz?-1J9{TMf6B{vYTDPpM zv0D5>e>x_%PpCb5<~v2|A|BP3(Jud7YN4%ElK;hJrmX5{S_}tCCF@sRBogC-hoXw5 zbtlTsYo**=+BFF@Mtu-MO|FuC@mO}LoG{Ld61DE6>(+I4M$>auXCWsZ5>a!05DmD6 z#YPx*5AVzkwFT_oE@iE`K*tTkcS9VB!py9-%K-UO<_eZm2fieq7rH321;*o1I7J0OEB9WUKU!AjYpe8T?89*I+p z73qQLO@ZTwKlu)vEJ1{nepBLfm-I$;KtA@}q~04r#2ZriAq{x`zra*LKQPfA5Pl?* zfdAt4IH!0{II*3x=5RZw`#E7rDrQ<6rt>E|V_VN@JC_bC5_|b^9-;qnPJcf!XEn@RT4fsxU0ZaIN!R!E?Hl$xjYP`q5fG%b` zW#`dxg3ospg!8@pMT+;?wA1UIc@1o z_H)YTRBmVT;skkhIg<|g#`JY2=f?Iq|H?Vlb2|B_RPvef_&{=XQGQm!c1~#RTy8}8 z=>YYMFNqn`iLw7U8C$vr$_kMlgWhELCUlBXUCYl5waI6(At1=pLnkc9eohUemr6XU z#Sg7Os=Sw?VdgA()@~eqHhQT;Q#DY}{`VH~QXX3!*GB`+CBq;CXL`qUytF};2%@Th z`GL-Or<4Bm+cP1|QUae6mG$tUN^Xe3SyIv%?-C1lmFoPUd=ZgENS$io>axdCJFrvM zuvqll1vQ$1HNzSDCp3bM2bQ{rU_HD*)l#BG?TEE3gef-;?T$gxB4Z0@h>uh%;PtaY z_XUZx_yeJ-3E)9l(nXbNEEPkSpv@E}L69rjRZ~N;P1+U44P4PYGdB{Bnap&O+=?kA zq_@&EG|C_u;tKRB$6}H5T0zolSqWM(ljGHncW2D+cvqBsQmJMH!Ya z6*&4R(A%(r^ktuVmJd(I>vt!W0iDKMOk8# z&^3@n_T!x-#E=FwC8FeHCc29;w+^5@u<_tekd2eCQt<(4^l}1zcMcye#pxP&b6ol7 zS~a<)xD9xcp*Dnesm1XelL6m!d>G#)qu|Ql@ik@{bHx3`NhL?5roYZV92&l2Ig_38 znPR_)2@{@!v=b_KadkrLe3y1b{8*>nmU9B8@Kw&e`CorMs~`ULw@n_ja8BcOx?T2N zC>-3+(&zUj98}W%oEA)kUTk0!rbo=AA2W>&=g14xiX=WL)^O4z+`G2th1gish|g)F z4~HGqevGkGXW5`}YoW14b?nrus&yNI#Eui1fm&o!G7hm|mGO$fe6d_7ZX#-IB)HJ4 zbVYyfVd`$2^Xh>Ibysdz(Vrw*2Rm>Sd!@GX1+OTKOV=5tcb-snk#(TXD-(;j>p;k6 zcx8fUY4ZcZoAd&5-A`H7b_<&!+TmWgK}`SmH$&%R9X5%uH<;kW5P(ajdK{S)&dh-v#aEoL;GrEPM^R6H9Mo^VV2Ty;vlJ zkwsa|LNA0PCJkIdpHn&OazGTvO7t*#TVb4y`as>6Tu8AL!iWolU7!IiJgI@kKipot z=#HJ~h+VuMvOFkOSuaG}fTkoHS?A7A3}kW7%#3-z10)B^0~S)msqTVw<*K4{)U=bu zJYaDmAXQ0GODe^<{&YZ7k|q7{VHiLxV@iZ5UHurSMJGEU`vj7=f&rt9i>7<-Z-4d5myyZMfV*1 z@%_fey%;V3A<6Wa?#}!0YoWTB=%ICC*r-_&)hmsAv{_?u#Czimb32ns@*IG19l+N8 zPA}9;Cy2*NH+dBh;wxnTGFN1B{^r?f_A(P^;dz@aQacmvcn?r_wC{^6guF0|F56~> z8H#hxy^~;}q$Z!1yv%{)?Zh;RdR6|hPt2<V~g3 zxAG7#hOZD-6jQO%H_=#Wm!`rcy(lY|ib5{@D`DVd*_d&r8$eFk(AQDYgN%yS2Vlja z*f0nr?=CxikeijatihInkJ7k~ zQx!MPp7)uRidO|Q?Co4{QZE-Vaji~w^R9WLXd(h!RfMvHf! z`$6&#y$h|2P?f$JMSX~PgCbS35xJPN{9n>u7K9>q4kug^Tq9B}_H{?=18C5gDPB`y zsv+~?%DEEQ*PXL{x*n0Wv3|xz= zj5f8az1Vf16FgQZlg|Eozyo#(;(;yM3|WsUIWrL+EA-0;Ve7gGlMpUO?cUAv9@ zvoihD-c-yz?WUD#yLjG!!oBI8%gKIT|t?vx$t1>2QxCto#cN3Z(Q!t8(8K0E%e zoGD+`|NKa^bGth_av3i6)i3tn_{-9ZYF%7z{Ha(rfc!VzP_|!Z%2&n9?y_A)cfqY? zU3re&Ji4OCMZB+B@zF2hIV&&8E$@w`7YtK0;6M@QYX;>>ER&i_#=OpI+VRZq#+AnZ z-Dx8k!ocNnWtv33s7YW6Ty^ExDJhm>#gEoV`Hk``WgcfIu8X=6-{g#W578CRbdZ;> zAz&`fmz>pD&S`bbmLG@nbC-+8BZIhnGbmrI8Xp(cj@K(uk96_SmQ3gD9_q{@)iEnt z4eI7*eK`#`KGUG)G@nk)<<2RjRg!tWUAU#s3e+g_ZO*>aaWlKpFQQW(>U`Cu4be!E zyX|+RD`yk5IqBmKH*`dNHz;3uxrln@=E6HhnZ4MLqq{ZMja%)40f+x<9?rc#C{GTW zbA1~P*9~baHyiVR*L+NU_jKTCH>kd43^=zQq0vR!IO3C)7MJ>Ji0i5Q7`Jsr_1XNs z_Uv-P4ei&oyV&x&{nhyXD^8pERvgD2qpm%jjsr+M8p4_@$jm~&EbsXzr zQSM<)WF^Xr69FT=G??rP6`|;u7{b|RT1w?Qs4LS|;Gkr>di~L)zn7^bTJJ&dZRYR~ zxR}za##!0?Y6xRqb<__zPZ{Gw(Qk;4XsgeeOn6`ZX82r)a^p~8I+3B5jH|9qXU{{W z#{e26Uu()r??|$19C@VJo3d1NsQ8Sv_6WV{&q4=wystwj{%zR0!uXveM3g|+vwOVy7MHXjj|!~9qG!|1WsL{ z#=?3Jn?Le72*P^PU^#Nl+FZUc)YhqZk`?y&!k?3XEDcP0-RZ6`gG53g4K&fiHB7v>W zQ8L~k*nz+WsY(_TBz>V%nmc}=fW{LCU$QW4hyX4z)s zDlQQI{mzz0w;Ss#(^ZUF+OrYnm^f5irTOPwlIYg`AAs`zpp=RXMRnsl^2&dr^Gu6m zU`w)THJe=00qPMKi_&WZp1_-9&Ely3r(=a?tL=fibf)xQGvl)SzZ}XVPcCC-nL^#a z6>-CQsG4On?FF%MQCgAb&KHl0HXB;c%)RM3&`Ef1(-6s?!lg(L1nHZ?i5T0iZ^}U( zy6$(JF)hZ`sI^DTzks6L>_hw6?U4(re5hsY?2@r>pR!J2OoCWtPIciy_C&@-C5S>@ zm(~U=a-1IPm^s*&MEXC2;X+H!oshLX)DJO5;exy4uv=4N+HGO3QMSw4EO@xg`H~6 zdF!>vEU`A&()H#@7apZny-y%h{yme^SmlKWsRTzPh2S}nBc4|9_z2;yHcgs&g4YLW#0KU7YaW zIZk~;nco?RI9jKdj+9O4UV6tZEj4%jWl8b$f0JjM2I}c;mG)6&)EN#fe)MKrZp>RB zAm7yDa=^jXZIK3KrR?P8c;j{)MLNewyFemZ1}vnAchc-EE>w1zgLHGI%+Jn+Q&_ zI*^f-JL0|=P&U%s7O5JhFrt*>&E$ey(7Am`^senVjW2g)-z}XVMm?BtxiSqQPlrp{ z&FKS3D863)KfG{)cglv@5Y;D6!^I3t)H1k-FrX`J8Z!wHpLrb{-r-W6mH}kcDaWQ_ zUj|S%+{gT||10HXfO*wU4dAltD(u=C8*F2e8D8znK$_-tfnuLQ9gtC8EiPdl=0poQ z$2Pb+4YPG8%FbUQnUE5;pH5=Ta^8pEz8M0iO%C2^SX3v4U3Xa>T*paEpe{|Z679=E zgD1=vuFZvh=ZD9A651#aSk!yzWtsEk!QSjZeSi<^;@1A6%5@25y{WE;Tv)i%{3Bd>?ur(ve_|urN`|3vAthUh(iPk^ zM1ia2f^_BVV&-KMKB6?9>outD)Pf+1WyF^S9ge$L!&a zKm>ho!{N4Pvq&3`WcKD9pUh`BP%_OQfbpG_Hd zcl{4Dw(G*%J7VsOvhNM4BIjx8_dd`R0+aErg)wxaAtjOo#*7UhsT(s0IY0}dt zQqeQF4mjaVWR=cZmG6ol;`941vuxc9NZqu_(kTm%Ta8)TGUEQ+5ci$Rc%))Kipy%b zrCLF>XEEO6Q&-0x1*^|NVy_X*kk_o3cKr*rxdI#N1c-skjB zNMY#D?}%AJ$_j0a8&!*Bz>96dJ|yL$Y&gNi#FdzBcXDpbS<)QW0R+MzIQC@21+wIM zy@4%RdGuS^nO00sY6uCr3{oi$#Pdu<>8b;S7JGiO*04x%?Yv zkC^pEMRY+b9g!C9f3%eC)JXos^shf}@IpfRA%ql5kE(j<*(?>RpQ1*>zv$D*%H0YgN^*-z|{s^rzQ}Vc{`UKpP=V zapjN#LO+umkBy?R$EV=Ik6D2!{E%!kdgCZhQb2{G#o;vC<%4BwVwSo}sFXD8_-Nn~ z`XZjwV%WM9WoPY`#|<0`NGe$-TV7|IpO<(huHx$C*|~p|JYo}+N;bq@>M0^^YUI|5 zp(C|#S&9|l3tR;_3hJ5D5u}qABem{d4wMJ3*vw|tSjrCsDyufs+~srVg&xJi|1+SAXHP`H zP15@pA2>{u@?f;57GUoY1fqvvPHIO#`s z;dKqc!a@R_!-LZ|NszL{$Li&RBwX|)pj|o%$&tsAl|i_n`R8pwAc43*0)#*yalwm`wGZA2M`_~y ztz{?8q-hS0W2Zit@Lw3TNP^fhN*|*Z9Or+;Pv)IS5xbipeT?k0?FS8fhXB)v82LUw z3gQu$ljh@1C?(2KY12h&_eRmgKAebAA6SEEi4#aEMT2P#jUQ^7nQRsK@wC!DsgDUH zbl42|IV(|9Ds%0n>rTeq%I$el-S!KS;QSwPY&4pipy6&z2rKPGf|YhEiZ;uUwhIwZ zJDrP@+n6}0O#V1Gx{6A#coQV*U7PyZ_E|qnTbGN9M^@T1D)5wRT^(CAv?bUP&(FKc zZ79K;M2h%c4ebN;7^r+4O>m^FfRn$|7bW!@Ma}RNjW#bgEX%|p(RAuV;X9$0MMR|u z%_uKMxXcr5G$vM@afS%nmN;%3wao}eIzd{;1afK<@n5QFR<_O!shuo2a&edT1Njb- zaulS+U|6(LiHZP@0ZNN`KM?KXf}~t+GbcR*0L!95vT`Wj@D$xo8+W@k)qbT&#+cWU z%lHu!<3D^)JSh@0U&K4PYmX6j991>QYX~ajNs$VEg1t>SEVkphGG{6lqeANddP(}C zG9i*;Dhm_taf~-8Bc18!Q7F+%LXHwY;&b!+!BiIwcs#Jn4y~B+{@G zcN2M6R8*r6SHTKP&ME*p7H+X~Rk9fGKyT+WkCI$gfzq})={zOy9otaer9j<0Mq4gx8UeTc_ z4UV$aq+dXTHlYj28wnv~k(g8a3Us34+|ij6y#~2;eO1;?>Cse;!Ex2OhQ~4?iua+S z(VgZ*#mQZ)t>O?+M+QQ4iZr>Uw=oJkdig<2v}@3uReU_;;0Rx11V}q~qeen2T1hEe znt(d3cBgnjGM07SLzlEuF=!J=GlvF3q!uk6X$Vn~*j3M>sy{ibPM6N@ z-Na^gk(QgFo6_&rjUQ-nJ?P5TPaKu_AN|`p4DT)6tw{OR2e#SOz67ZI&Ua z&R1#IFg4~7vh%0PA+eFQ)Q8M)r4gtC<`=SSDhTaC)|AY(+99W7dh+#@5f;Np8-8uV zi3SzLH!6Zm)!Gb(Leu|UJIkSBysj5^A16{nJL5qe5vNe)BxQ04MWgCP!{aC`wXVv? zyH+F8UX6(dM=((oP}fUs%4^Gewbszb%+Iw(%a|9rE@nAvVq{wTfpFnj_A~O{=r7on zb@-9HBGaERoZOXR!%SKS5G?1ng55+SZz!*K1KC$vY*a#UtuMs7ZJN8Mp<77qWywj+ zc7aHWn0r!py!C8zwYSIMevAIyYqx^hEhGP|-Id#qTfu6*UZ{)u2Z5^VHaEryVa7;8 ztAr9IN`HHXsVvI7Eujr1qDA6rhW#+D9@D6GMJ!Koa7^!oic=)z&&iC{7G7aUG^cI0 zxE8XSxGZ8gnmXEyYsbe=8VKphDM{KnY(YcF3YiR~t)45c(>L`?8Q z0Cy6tF_p#0$|lMPIKAXZKrNKRra|nS2zv!%r8E~%DMnJ5&Y3IJ%xZodl+qdV8^r0g z30>*l>KPuYasVw1ghMwJ>TL|#=p@vmfSyW$cv3wfDtYEWBw8e{lCD$~P|(O5sKOW; zh@-8Q?CVZfcTlsRlQs%<>W1F5@ZTLO;_VFH*cY6$nyRI9Rz)fkqIsz-PEw%eRTpPJ z_V2JrDvE}rgDm1^!njO`AY9K_qzQ$IqJf1-3~!`W=d?pBfQ=vYo*jfMAEtWl)9w5V zsFpJaM1>QKJ6H*0ZG+m-2-BgfghCNVtgW)ih{6=O0l+Buro z$jM54V;!d;Y7>3&Rm1Zu*V_JbR}x;pJ8E_BGI-f6{Hp!+KbIy$zN;9i{OdCC1<9z7 zVK`$;7|WJ$jyFNBWM@VFpAI>qiY!t#%J48wvW8CSyOO9Pv7kn)w(}%Z27Qb3;~8>z zVpHAR0DXFBZ`FJnUSj9qZ2~kkC$1OZM|Gtl>-_=kyE>Y08=Zb;pRJUnrL7 zxt?JSo1{C3_7ygi&-F~U`mBQ(IzkDL_K&~uYT*T> z{DSvtiS)IF@i-@H^-M?jAs|prRK}Z_TSusz@PBheOvFh(633#~2Ea$f&x5h0x0p@R zShopXh%^+7;e`tkQ7bhi9LAhTuuJ%X#)Swdckdv*uLPus_$Em^!XEZS%}KjybYlx` z9guyX;UY(s1@Q;n6x2})OF|rb4o}n{iD2)Cv)DiWa;8A^G{b=ZW&(lw;Ne5_DL&_4 zUWgsdR?TPxe+v=O3d!BA=mvqrS z=MUksP=C$SwH8e!3jA!(HOUbl8Ygpuq43gJmI>Ukr>lj~ONVRiblVJXsOC;Tc(7S= zXGmYvYJ4<@9{jk$L|vTi8-$2pGSPw;qnDOJXRxnmW&9tNh84#2p(*?uvX)R_Yo}nM z?wX-Z50uMgW~qA_u8OgaYZP6k9DU(Z6J%n9eN3+F%)5zL%Cv5DuBuZiaY9;dOgB+3>LzSQ(XMQSDHzN-$w5ynraE$*ql+A8g4T??<5f8BJxE-4=DEj>e1@yG0kZD1^~{IoyPMv;4^PMMSlx<5`L49n0`t5^ z$(>5sYHQqm9p%Yw!K49}XGqJbtK&WRx|5?TyoTv26&=pzYVnKm^7-zKP~`I8z59CJ zz55bBbo%X9^zu5dn;5$Pt}eM!*`}M&O>d&=o*X4z`z_0VG`qX_>EBhMtI_I$UV`sV z`xonY$KO6TAMwZbr)mCsQTa=aF${& z`lxhS;@z|vYuyc6B*i0Yc3L!$#WJA_y*o|FPVQc8_urvge2art@(QRlotVmEtofC8 zt~j|XQfa%LpY+kbK)d5NZ5g}89ZN7_x!qt;5u!MWqQT2)7&U$|Mb%^%q7iN*vfitlJx z>wdYQ*+S?BLt&6XS`>+oLGh+^f!ddivz>S$n{Bg#!;BMFUc_dRCdg<~`as>x+p*ou zE=05qCENM%MB1=YvTF_>;1`PPnT>3@&9_z4L4Cm7!QAnK3Lm@C6&7G}7*#4>st%{w z!IfL`wOk!-M&(9V=UQmEXcVu4qI2RLSC_@wf9%RKUEcG@6#w|U2?|{RPYazQ87~w3 zYQnW|3pkFqM}lVhFUJf&yxg?UAuoGguTb>a8wlrYb4Li1_6hsUCR&YFH}ihy=we)u zu52@;_i|+`-=rCsEBRJjP?@rBv*2+wCOzYww*@wzJm+H62Qte1?xZ6z%Oe^^x?#Iu zpUfZQ>@!dthGcphaH11udx-8B%5QI8Z49t1+YN77$hx3n0Khr`D z;hcV!Vkkr6NHhUIWfQe9k)+fHprm|;AGz>^HH?sdlsb9yr22VEj8dVq_y?Kzh_7jp z&@LcZOA9Yl)UsGZUeQhfyrTy6`*BXSa1sJ{FN$yVE=lz3foJKHY4t4cIRo-p3ttjp zE&t8vaI{lL&=Lm6uOoF_qNcJy+s%PtZHySvYr=I6&C@mW(z87PJ0*Q699_7!Z2}cW zt%VV8^^pk|EIKnc2FmFzMY)v#n&z?^RR*I4f20ab*~gHFtZh@i_W%In2YpL!|H&TC zzkoVh#KZ{|gv<$UKeYk$j-S~6kDnvO{E|u+(^N#!SFmiew6$eRZ_}fNP54b5Gi{X` zW0#a9q{X5bL(=q)0y2N^{8^84I#)(g8`F-8XlfF_>Pw)fabSb9!fw2Q(kneJ%JmG? z8gSfVlI3(H_@sy_5^jnz6$nmWSP0e`GX@P@KjS=*ojNC(emvv5@`tRLzK--w1@tDQ zD+GtAdT1D$lgi@M0fQ5g6j>P)r7q!HJWcDPj!=GNZd>Ju^Lf$yf%Mg=Bx=A^77Z_M zj0*7%9U*f!Mna$TOeHbXz&q56TyW!r3J1&F_B3iv1pblR9b%<6?1Qm_UYUl)K?S(y z%9|OYgkDQ}f}W>{N!-W@G3)MLh%$nulKG`>q7?xz>=K|*k$_#eU-0<_!R?#@Bjj2p zbS7L5WW_CQ#MF61?wA563mUIuW46xvqkYv-fg~El5yfCBT3dbS61f?o@Q36BBuyIh z&hpCmt%QWL&(-}<)Ak4IK3aM!J}KuT*G{ItXiLwK@r2PV9EqDLGT^2R&#=%{(|T9; z(zvl#tpmB3!o8|<9nwHnomAq1$E`H=ci1TV|C8&twCm2s5|v zsF@g^U#T#}WKX)wH<5YoKH*ar$|idis6XTQN<|lpPTyWkIa8jHX=10|la}5>OOGl@ zgPOQ#)=o}hYRZ)XibLW%sZp~y1BQSQr|H8hY*nzI6>G)wX6}SzV`)+D(uv*+&1WyBj^H=t`4<}q z^h|pwH>TohB$@*Mwu?54Wm3RsY|e?=mC1$AE9UuMWTm$TDhexc9q!cJf2{ME8RJb( zov~1}i1)0f>F||y@Q2Dj{v!Jme)Pu6X zLKeG1qUO{u_^J8Wq_}+@UE1y#4S}K|S|ov{fy#vFM2yKo*Z5&$a3V;BLv0~sqfAb? zj{U{>$8Sz&P#GFRC_GM)N-73zqFlCpLiBH;#BL+Tq`JS^^rE0W9!6%KN^0hXP| z6>DHgVt>@mgt0`olhRUZYJkj%j4mX2q;Bv{g)tHbRjDi--yt-HTx)0e;K_wlP(YV1 zX(WzVn#O40SzSOE{*Bt_$TO^z0|Mv#<2RWae>;S0U=1Cy$D|KV8uZ2^%=E9+2#OXg zq+r5;Q%84tlQOdH0+8v*oJDdsto@*s=w4aC>6tQi8E{U6BPyahL;o>=`_CdXTIvUz2M zg)Z2QlYPQ|;-p%Dav4P9>&HwaPQ|&?>4Bq-=g9j?F40LDZv?YOqF2f&L*!xJwMNVR2ib4e9qsq_>g8}PB2OD#Urs&d=1FA&P7hOzM(LV~TBb^E z>K_80b3){XI`Lw z#~<&B3sPQ*(BT>ztoy@r82q0yeUq%q=VStWG+J!`aChF5y49%PbZ6WGtbr+T@~%fF(6cs<)Fj0ZZULsw=}2UejrHKr zs-#>4K+f1Accqz`j?L+bvz$x*{kUuaPYVNA9#V1t2O2K4Vqc9EHlYu~khyq&J{GD2 zQSLYC6VA(&*ZFsT2-o7|u$<~2zs%#C+DVjNFM(1LvQRjc?-B9|=XdgT{)I-IZsAGC zKpn_cVk5AWZvTW+Spc0Rt;aawAHTs_9kHaJoskNkhGGh5d6Y~!M9OCjEYhyQB4(~6 z3#t8_T6zLU<DeXH zN`OJf78ojKtc}GtpViX&7fLP&3}HZ%I%wyFiiT%u&m#?1dOE%`mAmSLa;GdNRs|qc zW?Yr1fe>RYSVa&9GreI+9crb5AmzW$Z(Mlh zLs~QtM?ME&mA=2vMVvJp>-qOMr*nQh@sc!>#Uii}^&u!hQ>}OgF6O<-Vi)jURjx8q z5v`@TcMwIq0$zs-vM4*4^UNp;s2VBpB0pD|%Hm|rMcuepyt#jSlIONR&vQ@T>2?DH zk5tufn$VTFUk~MBkrY1EbO0VRq$bD3Fs@#vTA3$t`ZYMD$nu4f8uj^z$qraVFE~3- z5D(SD5?_gO1g@N{I6(+$93(-cB;l273ygZ%4}7j1tXZ1~8XRAti=hX3;3_EUCVk}f7rXqRv!qQDh**=b#1c#*3iTagE#Ra+$X$YVEs;&Ry&x;zxBKL`9 zVhw#FdYWug`bD4`{K&y2PN{=*sNuU=Zmuu$zJy!Zn|Gf-y^FkODe|rM77F$e75+1a z?3Id>HH~&h`NIz?wEb7NFTHbe`WqF-EogYuDs3jy>sUxlzN-I^Inw{hY6|~+zlr-C zxLL6n&G9`Dio5I=F-SssTJ)z|YAh|3BZn{ze`aOQ<$07@eFE0eeSbq!j8}RRHEH-E zR^6yc`N2sHcKxC*ajHK+Gf^=yp*!We+o51+r=7|XozNj;m9z!y~zmgDUq>^sjcCtBuoQ#`j5&j#Mh* z4G6?das}2@q7yaqhlEc!J>Wt`LhFbr)|wcKq$IHqeG~{WBz+Ki(5EJfio`)2zZ10y zvYsm^b}D4?CJmkAN)j};^H}|yRYGdSaBK*+cwai`jnj$?{8Oera=D1#qlL7P56 z8#%&0(k3YnN0q6FI+HH+A(~*#OYizaWjgv4;x5zs-;95orBA(4A5&U0 zJ~M(jetHva{-rN1bV`AEihToyw53BlKQju9ygvG2xKH zu}NA}1Vm~Y9_TogS~tm0=T*ei@n~$Q)Dy9ZEo3bzv#UzaA34yjx`e^8OWM`O+1Nn8 zKv#89K^9RJYb@8WchyZkDI2a6$Y`VDD?oDU8X?S*Qo+z%E~!GyeegPQtVOn8TJLiM-QB8`^71d2LLRUR;57^pCkIY*+x!(l`zryIaoNH9`#VXF{ z@h;Ex)@Mj}p`U*Du;1OBL1wDdq5C z^44F4ntA;`4l6Mu6(f0yV5&0|>KJ%L(Z9Hw>6OZrr967>CMuJCoAvQyqdQxT7Mvr$ zYzLGp_MaXX{wJOLHgEqFFU~12(!*i)hH3l9 zZa!~u=ZK?PIfgoNL07a9T` z31;Ojz_F%I02~+U5=lcrTnEd{NqFG_hvwiih+~(OB#cI@7SPtp;5H64c+Ja?2k5(!Zamv35?*d81lHOft!%iq} zvd|>{(~Ld@QdPg%55`o#m1h zdT@f#b0^r_<>lBmYGQMT`*_$Y^5_;Xg{Vkq8XmR9>7}=#Gz(??)|xdSj}BjJf0OGD z{NYRnrqI6-s7N~aiq-K$GO(jrG=a=R3plqsi0{tqmYElIMD>`7~&?My}1bzkk`S&=d=Q%Csw4Kvg z=BGbF+5)Dqa5^M?Qx_Oyu>f!fD_bC zZ~`tfskp3k$!m#TQ&DmJ84hjyFvm?B7Nfa?=G9ZB!VOYJqG_#EO6pVA4TpT|`^9a0 zEyf-17<+mR@l=(%N!Bh^s!lg zhW~DLzXoU&(=$GQH2exfX;2heLt#%o{1qM?WJn>yCd*2lQ*B+|@IW%7dQta|vzglw z0kkCx51e7_D~Hi6k^m0uW_1ON^O0WTeOC5zXDXuJGQ%G5!!#OH6bZ3Y85Ys5$yiq1 zxw~lTIkSkG{^Z<<*W7#7nB3gg4@&W5r~VAvjs{q6$-ww7SNysn|3_|qu;UO~9;)3X zB?)FGvdBMcvyUb||IbcqtJ`+b8$Q%!cl=P(cj<0ko`rk^`3B+5;bi$~Vc;@yK5^=f z$CbaO%v-`9+B$&><4B7|n$SQ8HVE62tg)Z&9b%(J5A_Di6|TMrKyPvX=zPy)k&){9`Gnj{-9=2 z4XHB#*OvG_7h_7pQOdZ;y0f`c>IfI3&+b9o`;XQaZ9ZSS?7g*oB zqPwJKT9)yocy1%WKYn8*BM!LP)jb+HQFhh>Wmu$QgyVQ9i^#5l&wIV6>B|ciH$!`< z>i$B$W}(7`uLZ*}rT2n;mK z@K2SKv5HI|!WWvTnS++6%F+x(1-@k+cH0a;Dg6h_%UwIKSFhD$%r%;kijgm}*Jd=r ze!<;KqaT&2c(?~;8^>izuNHNq=ISeZtKz&nzOi9$JK^hYK4*GIMbsmQkgqCJG3nza zyMx}GO!>ohbLzFUw1J#rP-8wC9T)1rcsz9{axN~0VYv_$XE_br9o}EY54AQQP2cjd zF&yXT4vSQbQk~cZ)?raQn{_1vqq*+5HT4hIj0fe5y8imi$_GExFdfrN-=4sZIo(?M z+b~VV>HZNmfYn`+X{$AG;fwn6H@MYF{tx|IN6|xJz{?)59&sqs<;a1|?#=XcEg4}lQ>FuuG!njd4v^I3T^RM!%?ZD>NFuz^idgHh3jyC#sjqCWUEPa^t zJ;|K^x^MYO(u~jT$AAi)n{nOOq|+Kxb1VaGziPIf0`(^1ZeF&-z48y1jIHnT@`j69 zRukf4_wwBA&4iv5O@1h8SGw-p59IeeKS!D6b%$3=hpBQC&91I|`2y&LIKs?Yu zx=}GzRv|z9K~!qerspoHn9&?%eVr{wdy5od9pZ?Jq%l!*qT;LvYBy#*u3LVE1*3(K zYzg|b+e9ZJX_8^gbC~j`dXTqApLfGPPmgadJgd-l*$h4elIY#ur-ZN@4^^$|g|y3l zfPS^Snxj-A4V$Bg|4gl)0z5vRvK4MCega1TMIgj-=ivtO9r`S(o{b-)yPO z?-UP~k`gS1NQ!9vtvJlHf**^%2fjE7g*a00SUpD{iRtR~iz3QbmFcdE$=aOEwMs*X zMA;%0q4%)(AauWIB{F6c)Dl)X>0De4L!ZmLIG)z^b$(b&sWZ|9ZuVzN3%0OXbO=t5 zOjBG4SJln6Ze=LyeFCabd>2LJ>&ql<(agcfHseyndbTcRNLwXSF*Q9|+y3q}d%kmv z&t0=Hzc%1=@RgwnztVxyVH;gxk5*}o$X()A%@k@>ly4`b|K#<5Gq0DM_Z-Rma z&vje?bN3u3cLQxbYjRN7jE^)va+IIhHss#F>g=Cl*9%bVu;^bKl$6e7y|6%}7tIsw zM*6kkcu_7yf_=u$Q0tI5s3;_w@Je}`!p|A(eE2u!JPdJLuWUazIW5+Nbmt_5B9WrL zTPbqEk_1-{L{f0J*%Fm=ZBAXVjYJcFWWcd%=pw4;R}DWq8iRC>IU6p4_+@1IPsT|W z6HThck(;)gtO7~%*U{3@%swmzU6zY(>hik0SyJO`N;bWVd)AojZo9M3t#@@MS2W{x ziE)Ro>^VA+o*TWEMa%w-Lw#zfc|xW#nfIqT46bF2A9r%Pm>q~7=!_yYrSe1r2j@(a zFU0j+NBcJ;(#2aEm427sRNO#+lQ(tC)vTUq!WuSe7uAP~+H|i!Qr@_|7C3W)D#Q{6 z(?WpJ9qgfeKmWox(Glwz(m9Q|pXu33vuZ$lR>iH(;kov4{)KZoZ259H*r~ZPdGEz}esGSg{Eh>mRD>w$GEfjjjAL76&}T?_-I^K~KD$Do=NX9=mFL%} zO}LLUO_-jmr2QF67aWZO=a<4Mb4w+Jd{P~OQ)>P~FB`|EL9asFPg*$tLgXY82N}l4 z(QVn?AoOJ~=V6Evj$Q=SNX$NhOczbr;;b(*W4wt`mTr|wEHFqvVC7^;N*W5sPnO&) z{>I7UIND%Z>vwt=ZJ~W@>=@oX%(?*`B7er$@~dZMq-`3 z0iU&?DusEsyG>S|(}CRqR5*FmA2`1F6&E0WP8@3~+z3oY{YN?^<+oS)S+4nmA)g-N z#tOAe8boiDBN`hws543Rnu0?Uqh{&gwBCD9UQu*Swo}=MM>ens_F~q9bdWE z{=nx0L;c5J2R>uR#Qwe$r?m}>VIjx)G{v3nj7qlM`kneOHWkYt@(;PV?ZQU`9_5?= z;T8ru!Uqu&ef)J|$J7M}H4ShFre{vC7a$_Ryy!j?m?KG)6~=o};Q&~RP_V2upyGV2 zL^LUrP)8V4I3)fSKTt@!hCzv)%8B3@WU)+$@bKe5FH49Eev_tA16gbgt>BpVJpV9J zJd@Ws)pNpCK|DoVeu8a>0TZ~)D(P2y zA8z2~`cJqRPBKEAsmnF{)k@5#<{ zU$e-rA)uyhezXnms0xnL%$Ul~9KBNF)L^bFR2mb!3)nCd(+9U!dDhM5#`~^v@H}t&?iT;fZ<6+FzVt5QlAM32h4<9E)|oL9vEaOdfjD+* zSN3K8_zYQM#tEVuFQhah&RNdQeLsFdMgwZsQpKQ6=###~dgawi4~0|~C;!Bo@u70H zMs;apPr6|(3f!@${%&w@3$DFAr(1qi;^yTQiL2Sx;nKU;cB>ta2Q}AzF1tDRujYQM?52GoZrL~D&UJgc z>)q^KOx>LS=G+STkNM_b2kgE1yLZt2pUm#AcH8TQ)!p2U+xO|sxZJxm<8t!{{#`^& z;fcE>r9=#?SyoE~Djd$4E%rwp;t~?x4im_!T@bazkba?H!bd@dQzQ+c2@p9%nmCk- z#^!_-bu=H@4ok$>${U%Ie5Om;p`UgYcB1VYL4gC;-sdo(GO{SpOG*{PLThP-x5CN zj77tP+5&tb`NAy~VC6*S$fTjc+~q5igv%a3fVmlOJT^mYK}S9RyFBAXuOX7>dmB%6 z{Be~Va@=$6CuR3${ghi)wR1OQu9P!}x*=pNjoL6qdFJD12(@kem?%QDw2;&tK=pw1 z;A`Y16r^-!uPfU5sfxsqB@LkoJe>5FQk1+Hh@r%S8pWcP&?f;d+6DV$-iMv3Tvfk` z9QqJr&UBfBp9>4(1ZgzVazVPVmDc$iuG9s)20NlcXqFv9RlP~e>fMB`P0@GUMLeV% z5EVz7U|uARW?1wryS{RMUBzc+VHcU)Y(ZbNQ5M7@TgfitA+~_qYvt63Ql;Lj7AdHF z5^P86RGfW9y9V@*t2pFsNl`-sb%pefLLb|N@&bcnczxLcmDCmLG9{9%Czuhw|n}4*B$R-_vRcw+@0@KBDsO~4z8pz zSa(CN=v>RlN&l*^pP=nM-QaEt@Sql!?7>M>v>+2|H8X6IQzg~*A0o7+2ZU5>8aa?t zGqkELm+~#S-Yk={5}u^ZdGM%@sY^PjO$g6tJql_jJ<~{kU(Qmad~>V;tj}{l8@eeQ z&~N7yOw=YI_lsX*9QY(xxUG37l_fBgsMZ?V z7Kw=php&*kIzv(s=VfRV+<0t@kimtM=aGl*0%Vl<#K!M&!C z%Hq^77()39P0?6yk$#2!vAJ?nfv|Fe|G!D-gw-^yG75hz)ktw z^!p^Yr01l6Gj3(%*N5jScdP%K(Qotl*aGhHdo*{s-)8ck=*`(~h5TaR->h3XJD))h zj??L!XssSFl7=GjIHcS{d_l$KuiXUPbuHcVj*4&OB+^27Ww(DM`IN*!UNq9JP3 zp)o}@E>s60V8<<(Lh2oZaxouyAVxGHm_SZV(cV0SB1x&K#K$^Oaqdg#D-Fv1;^8{r zrtM{M_pWc+{%6-pw+X&t-y9MwBktzM#3vJV2;$_2@W@PS<@DG(%R+^NltrGtfaVn9 zC!uo^clI1y=^eRi>2yi7t={mBdsF=>eIpzj`y}a8Lfs#Ya3B-ul?9^t>X6Z1>{C%` zP%*A85@l8!kzRsbUJkgc?owBM4-FYkUGVy3(~U+`3?W^NjmTtJ8wl-D5i2KcXux-+ zDEo$<5iZSPUw8STi}r>^GTzklzOJ**6F(na{vb&UheY{Gk-8l9P)J+RI#DrRDU~i| z>|zNG`((F1MJK$-G9iaYMKcHe_B;18KAij^;N75N)|f~ZXL}$ss13v0^6a%+liq!R zIn7aiqRyVv4YUoC%9@%J%4jcA28kw0H}xV94OA5DElH@Q1e>n}2^~R(!E++VWL(j< z4qWr0ZY|jMAZecx6+6eHJ!t}4J16uU7IgzzHM~};-Zin2-a}%;;nq;_!UBOqM}^uD+-p77qd%Fp-izIsVj27T5%6C&fE{~5;ebXp$*IVfoQ9w zJye=k^Xl9-rnG3FGk(zX4+Eu)AeXmJ9jJBNg6g21DJano9C{*+$X$+7w7}h=0#6UA zMzw_0M19BspY)B13a6)jor_$~P00TwLedmJQ=z5i2r674mHMPsJMg>i2jCxnEOdri zQQ&Mow~Qj~qAMs?;bgqo**Ouf zbJ9f&B=~QmY7IJYFmP>QQ8$NT<GTeVW z5YN!Q#oZ)Gq8G%#uaG&ep#(+j!wg%!z-6A!Jq<8ob(nTeNYWA&n#5EVjvrZTI|_h1 zDrgS2t@$nUkdz*05X?t;ehId^QZcNn&q7^PvX_rHaj4Wd9%->i#YoD0 zkmxp+ac+$E5JkuaUcb*IV~QkcLC7;ii^P!1Vo{3VAKt!@?3B91tRXEEND19RD57w| zv~YqUHW(uQT>we$95$R4>YW+v{e5tu!SO?HiI`i;%UCwVEE}XqFO&vFiR9x;tv^ac zsF=OZ~yS_F5bF{9(F#*6*=7 zUTNzNI-7wk6cK8c)W@_Hd897nEr&#Z(d#9}Tu>1?k1$VER0c8q|79s1GT>fZbj8tX z)Hbw$Jasm-2LP__)#~u^7Lkzu|1PYMZ3qZCOgM&uh9Y!vZuR+Y`;h(r!K3o;?)}lg z|H$``>ar^wKUmB8)SpOVz~LwW2}ycZ4Z8Yw)m7>V(S-J6RF>)N*4?fdTJ`Lf^zji@ zrSd`Tjt=RfrZ=t=El*u5oY9hG#=IPlUuD0VJzd z1IjBo1`#wk5%-(Jhd61HJ~IWyj*uh+-HZp-4~k0iZkdT1X;a2Aj><)#my;iO+;}yq zOyIXDP1#A%WDdo}4`k(dG(_b}mzCASfhznY6vvyC^d8yg;c*dKdaLC961*X)oaA(d zZ%pS_IQ=c1(|S&*qpcxwvWND>JtPb6VH)_r^q|H;EqYcCZD{DVC>l4#6L_+-HbmioSS~CFqNR7lvkrW*%2+5H4;DwilJzN9zA)H^Gw!lKA`8W}21m|moJ8V4MFFi(6u!m51rDHdG9*ol#4Wwm`Gh`j z?UipbQxUCwMyqJ)?c~JkLa0^83nhu7HWDWeLO;!=7at(WyjrO%6 z;fkCSR!meRjfD6`TNLNbTC+d$?`BMBo*MYkF;pZ;3&IP@g1ZB}!272xE0;4TA&8)& zAzCDbU6+|H9%;2GbL|0XAC+`5SgQ?FC`hF*SfMY%YBB3rNRD0D!t)CkaWdnh9s`li z|KRrRq-UXmDddPC z$)h&xhs=>UXfJM8zUB|4CgU+P%uL&NXKxy_gbV zkMto{PL|LuN~1F>rXOJzdGhxtZEf$?e=xc^q;KBb<;<2k4U^XkC9^I~e5p(`)4pG1 zGXr|~8hx4zF{=w@?ckcPtX!&gqgjgv?9As5-;UqxD&_c}OsPMKQ_ z2%QrusOw?0*}yV{CumT!SU>Qby9tL8!pj8KvjsVr{JYg}OZa5{eYmumb$CDOnV<(G z&#)m-+0GMKrp99Dw2xYdX$+K||48q|X<9fOSi-;*+K(JYB8%S8$ea#%c@(DRtmQfFG$R(EF2FMto0)7s^wS+X^D9B&DeX&xfb9cNi$ajskQ5n|DtZq zCSi0AsfZj20Y~l+HAzw62VCnT)-OKW{}@6>uoN?YOTs%hE-P3SNgugVQasuM^0EF| z=$)joUgbay%33NdlFG2Z!W^^~e2?e!I;V4k|Mc7`Tf>9|DVEXCX{2*PWC1#UBCjlI zkY}S{9dFgR)}cs6z>Ws0ypg8qW6tgGiHY8GkhgzVNOuDVFB;bIM3b$r zaG-GHYs&-6Suj0*L>h@7hGBLrMS>hMk-gA@?JHOiz5~|!t8t=tcEGiMWh^@_oZu+N zFsLBDHLf#6jst1tL~^q9X$RamiKL-$6lJ1m5cdn0fD0qnS&uF}Bzs6o8Xh#e&lAVr z;53O|&0OpOhZNNdp+_$lCz#6VeMM3(8vWs~=v~LlxXEo6?-H&5@4M1Wd&ATD-t@!$ zTe}>$y(Qz-J<{Ta53eT14>Yu?-Oh#1F)K(zGecIsLvo13pbP0kQZ|`&BMljeMzCp+ zYGAN+kj&yOK`Kpw-;^UM=qIk2Rw@XCB!$QsVhb5*#hu{I!kw^Y--$Tochx@UUq7ca z{&4<H_Bx_PJ8I3Mqn3Frm|lkAQ@- zq#YrZfVww9LO`Qaz!TF~;IvagOu071c5G*$^zI0QlW*Ek_9aP68t~#dkT@AXBD|!k zt%K8^L&p-nLc^?SsRbc-qy;%E6{KAQcBKcwi6OiL19|X#>f@?O>b= z@Eg}E9q#rBSwlypBI$$2ckvx zVrGq&JnIw2#7axNh-{1}Kx2wl&$NidTMJHbo#RcAtD%@E$2m(qqWWvDI((!{-f2|V zGnv@O1*eaG!CawANHC+WeIhT?dFIrr#c_3!XQ{s7TbZ1Pi<*bxPT2?@mI!MX)-G(J zt~&Ag^X}<;q-Jj0oNa{pRe!=5;=Aaoa9wRn#kVWvTv#5y;5$ch#dEpv*Y59bZMIvx zckLO{j$9jH$BhV} zSA0sr^c*&VI8EIFr-R4zf`vm09O^fRCh7+?73x5uHaIpZFDqd1K+~+LE+x8?jPB|B zK2PWFE`n?BzuqMd71)d2kylS#YeQf+E}dFj&9)AgewqC5mdf*yK#dz$e$`P;4FaWi(LfB} z#}+<;Kjq*=UiR&$SxWcnfNvM0q@GCl7VG?dvebZ*wV+x4CEq+A7XkZmgM7na-vm z(uATkENa%S;Z5D?hor??w@4G3(J)U7kB)YN#&n^U-cdD<8X6zrFx1RQ8nkJr3CeNu zE+-<@&m7Wr<*ovk(YV+78GabM$yu~(#CKOIdPz6B z&Ez@UFWmeV+?s`sA1p?4DicwQz{TCWQgrnBFALu@p^I~q-~KgHLq!B5+LHYaiy=GVcW)|FnV6Of z(uKd2A322hrn~AcqasvzGtcIl2EJiY-;uH-tA0$MrsShD@?Ca!x z#!1~{LnXsQHa5!{00$n?_7(`tsC5X&?e6U%y^|D%>@37=d*qt zDH`(#8lE*;C>?L$xrKH-Qw@!%ioCJ6_GPnaz};-Zo)9fVcMnRE#z+&2l5T)sgUo6Z zx>72Olbg3Of8DgoeRput8BO0GJ^p96yM6CgOnrYvo^Fl}j_jUavAXB4+nVRiDc$ia zQa5$%*&kBxe0bBGju#4)b-)nI8WQF8#w*iJ$lO`dNEW50(Nvi*OAL)XilMM(**6Pd zBa_8ufFq#tk%|@EHEst+yy?xOIAy{iEB6C{&a$5J^${RKUDnDqb7b1ovSpM#@UF(wmMYDzDsr zs-{zR>WW&Z^3k=d>jk0{DWO^7s+iesO+5dP|E(|clf zvf(uE3H()_(z*RLA=@}L=xf(>9H47z4P~9Lbq~=g>Y6u+8|4Yo|7qIpgm!}Ite>a( zZ{EmFi=W4!V&1^MiD=3(X!>ls#IKqSS|5V>NcM`cDZ;@BNgKz^NzFcLuUo<;e)dBS z>>SJF8^+1M{Rzek=xX|K%TMm?tHZPqY%->RUyPDaqOMDBDGt_S{OJ2q!s9`CFzVqB zC}-AVfmA9g7x1nKlJVmlxGi9BsAjy$kniXe-l0=ew z3q&U}YywRaLo`c_BDCUI{mNZUF~yZ;y~r&oI}8ApMPOKlCxcdJeOV2cv&@X{>dg(N zLMlbInQFnxQePrj<-x6?W{%#cc~^ZFH(ed>MM#CrQ7P%N;Km(7Z>CR|*9$)Eb3$TA z(~Paef4OjSB=$EbTbuXUtZWa5*;c73N8If`9ol!J@VD)slULq?VWl`%BI9JzWC4iFg*PAnaG5B&U_nVzNTzY$!n(7abJV~W!Ef*@gKF0Ywm-l>m2@V zdHY&f%C=9o@Gf!JtlxaXu92!0_X|W)#QKGXsTK_tDhh8a&>BM`Wz()uRM9z45QjuU zouK^jP3S`3xRMOCuWbvNn!v8IQ&AeML@(9jdqSiOmdRIaX}K9+;!9>u^u&rA5iWiR zC6!1DR21ISlm_(N|0$6DUFjvArEZ4IS*7=cmnk+R$;`?hy*Ye~jfVmE!BlirI)Gpxi|ZuZ@!3Y z{#m!Z>9paNi=_0iTpgxg;gZA@l*V#}&P>f-%Uk%7LC3@w^--y)b?C#Ia}M6LJCP%{ z*zP)Glo-jhOo&caYD=Y;itdf&yF6j$mJo(wDvOeIQ&OYFn+i_}aOD?w0-FnOzVhvr z>p*`!^W59n7S^7jW_1fEuBeb{Q|O`t;{D~=d~{VgsyyiX=;J57El;Ua>t-yQmI;>I z9q_V*#}8|xVj4;4H7--Ob?-4ei_jqjU=JN6?JsN>}yd6&k=c$|;V?>YrMG6!lb=|#{j z>?{})7tm{g40@jOz$%$=D~n2Kzm&+d02Q?bFDQ4vhpZ`G%Sgmhn@Y%<(0i24 z$z8p6DPEH@-##6-@GSVk9YV^9C@cQ(Xn`LB$6gC$M*^`)iI7z8RD82grJ6~L8R zCjyRu_*1EvI`#1S3Ppz`vD_swcLkV&}|zpz1B12$1g;B4iz$`7B4)D8x_Sw z6JC?_XnXq46`L5J&=XG9_v**4!}!7GfIF}wa67{mFdHJ^5x$iYhsTjuhQjZC31O&o z^!q;2wDY^f!?~GK0X-!_OUTfLzC(_nRGSJap$pI-;5!Gry+7Euu_KPDETZ-|va3yn ziUOZ-G9Q!~1~nG`t~rIwtMLR;c4K$NdLq-s6!0&3!|H+Mc06#cgA5Y+(frI+$37%4 zLtzN-lwU19SArRYOIA$jsbaqzp6yuPlZFRTVJY@UwIvZmqm8*}wu>C5Kb)@!JO0YT zzG+-CWi*0JO8{)Jh$(5#on3 z-h4);}!>|}MM|lgKyS0oX$CIU%aph})RD17ye~RINV)Sj+Z!N)XrwZ~3by15P#uif3%xZ_oJ1l%DH`zKiy z(uGt8%Q}d)NYn*)i7VeVGt6w%F4%=JQi+h(!=@wgXeZ*ovDSQLX@0q8sIVInvGL?e zDtv*?k&2oX_eJtvLKA##c}Op8IAU}bn-LmUH}>81lfyF{Kt zPmo85d1~o9>{au7Ma!P>P$5&T^QmOq^#{Xe36YGXbe|GUi2=``Dpl}Izx@eOyC6Vu ztiUuVn?7i1X}`OjiX~oYIhxxg3`3pOq6{zH_*-VK)oj=eq|*<~hsx6MDV+}A`}E)t z9=$ehU5o7PmkNCKr*vvE|3ibxzs5eUgcO+8U(YIaacai{BG_usTXr~g!B!V)&Zz8s z`>|La1@|Q8lrmmgrNp#m?hY?pX=T9XkYTe4*kLe^MYz0Fz0nv?uu4Miyaf8V9&kM$ zt?5$_j@EZi94>rb7QT)v0YCdnU7Z#BC`{f7jSJ>L9dH!6R~h3jkqT=QeXkrhjzc09 z(@09K3!pvSiGVAIl?tomHV*ijFl;1Z8zdgH(KM0~6{qOv70z%$uihC}Dxw3jbLbqA zs1K60R@u-LAT1KbErDg_Ag@%ei9-iL>T9s<68WS>@fcMIw;>7Dhn*0>Nz0s>BPrPy z9z0a2HL`La)LFb-FJK-LWw<%VE{vLP;;a9bXq8DwTL5b6uA2T?kG8`j2G4!8DvRM@*k@^%xTef7BvLVr0$78A70#Q-+{Q4D z&8<#41pgyi7O9TDcC0N;?E=3}L7P9WjZ4(_Suun95c<^2fQW6q3Y7`bi3IVol!m2r z3B8C1lA@eNaFkrRYc=pa;TpeS|il3qkDr4jL>whk@9rsMyK|HK}}jOEed`>J!gFoFj@H z8%I=UiKIY9VWG9vT4Wp|%e8ZrX3}Ex#_v>_#{|$DKQvV?#kF8yAbbLv*kxa-uA^_K z8}F2-sZYp8l;d3N=R5Fz9X4}_!hCQ>MIHCrS4we0e~`?X+5Stad(LkJvy|LqT{CGd z?|$!YOEl<`*+{n1p3$LdJ<&*J0`?5<5S2y(Pmv9=i&Q3+Vj3;eOeKL+I~%cv6Fxo{ zTpuihL|WJsC>5q}T1;tX#!;}WSw8Bds4uQze>Q=HhUh?)o|;Co)`LG_BhIBahezg- zQN72kCvBi9WY7v*qPZxMifNocN{yAax)c<#KdM9^F_>1Me8b)Mp?sefBs1e zfU`UlEa3YQaz5dBz3`?R@sITKmKXdZF2YJ?w$(l6F3LuMNCD$Ld8q!>6nLOhk=5Fa965R73} z0Xc*Y-8oQJA=3uvSV;Fz&>>OAh>_hDB;mPVPlOZ@M<1c#9c1$z8X4FHC$oNgyJhA{ zT1|wIIdsIv;k=#9l(SgbJ8*bNdorJvKvs4ckI*DOtNM-@(Xz`xdTqrF&L6-jN(_x# zv2Lc{9R@DY6p3(y{7CA21zK%{)BtE0A6Bna&Q%Uu7^1a6kCEtdgTAI}nb1L>@QZ~C z7T)j(xO~GfD&#>;CDMdqGz-bJOqlg$&tsgTVk(PL9|YoHtKjAU2BH>)(qbxgIszZb zGmSG8Ji@>w7ElZe3rVEr_sLmi3Byo_X}w$O=KE+=bbT#6ULog&I^~RA{%dFfM!BP+ zre9r$yaOUv#(Q7!C>^m4iBv@8X1gmB4C?NoA?{qYEj)O914>sNtOOqFBk$jBH}AU= zO+?33d?p{yd2`TzqID1nnFD=9E%v7lnJeMpRn7ia@Z#C zbujovQy3rEK|H6Qgjk|Vr4?Y6%3Ja)HBA&(T?VV1V5L5hynEb+8}jt0#bL1|24dqt zg{9G>_HM@Y%o=W?_n>CHN%Dg;gTtFxs>m?Gy6{%Q6YstivSw@sd3X5x-Hi)+-uLeC zCY{yx2sfi6!g}gbn^q^fU=v0wInxNwBZt&(hQzgC8nRKgvMK}6x@n27?w1<0*o|A} z*Z_E@&>u1qJreZ%Qiysk!A4^w(;|TGBu?`u$E|LqvLH zJN65YH<>-sB6J*007vUg4HNJ?=?mwK{mq$!+*x$N&Kx6&niN&;ZNEp zS7rAU1Nn@Ku{`BTo36QS0dh39a`PmBVkFZd;3`E}r|BctqtEQKmR|F;Skf@jK4t+G zr)aq3Q2NFEc&$_x!!`6_T(Qr?B>TKqw`>cWFWDKIL~Kq|6xJ$ez7eoHF~J#g;e}02 z{UISVW=M^pKV|Hh`Nkz>Tu^SzeXXZWZ!u`$a`JIZCHHTBaMUNr95kW^Lx&U&;U^J8 zp~ADssre>cEP}x=+EgcY5}T<^c&7F|(wIIHV;V>Q2t*bY&dA=BFgff(=THLl& z+!Y#=KPklHX@4~5TZnia7bIpXDwqsY&5&r~28oeZ_9B4c!$!#H;nH)_nQL{iE1$FQ*eLL^#M zR(wRtgEhrS3Q}Sn3_z9{Kh&6XwZHutpovIItuyG1e_(8vUN3qMHK?q(quYzJ7O(k! zf+$%otdvyH1xru2H6vXW+|*^>~K%Guh!0jz)E)OPI2# zP+>p=k%HF85b~mf>l{f%ZX8IoveWqhfEurpjZ5Zn^a8Ke zEzkUL!L*3cpEQuqj-PsT;R)Rgd1jr@tk*ZJzPE$JX?u^D+u(#qe1|M^$H5heQH5BW z#79o6P$bhLFjQziit$8^ZxWRekkoX4cinxcOpm^A(_q+BGdV=V+MQ%VKlRVb6Z5N! zM7ak2TIdg9n-y_dF%53Qa<_)Aw1whSXqxmkEPVE`)pBfPuZs`U zHvnJKOK(kc4 z8hIoKDN|dO(i`;KAEUNgAv;jc_~P&)l^m#DurqHI2@6QkQt+1w;rlLRUv~7WU@e(? z2dx~W6el&N{X6OVojFip5o2zC#(5*HtS4U1o7Tle1;EAu+ZY8Z(MggE6`aH|+ZG6H zBPckJH;LV-sM<=-@@^~HT_Xt%QJInmG!Pj}lo&$0P>3JhPr8iTiU#wlC9!;{_IZ#%4ghq+1oI~CJChsoIXY=Is20_oi^{6k{2XBT)#B$Wc?-s#_J zAr&SviKb-G8NT!*#CvCI`!3j(Sei+uVszGYgH4mVArVatM#YMJrf~68Od~0^J^|ejHQ5keMM>IjpPei7`z5Y$yD6`?_*A8K3G*DX2TW)7jEqFuz*W$dzzQ&if6Q5O}F zhT;ppvUJJwjE&oTOUjm~)WnuBH5o5S9Aal#IIa?R(kpvnfD1M*a;?9QlyeBzymrRrvj10fFO#|Y z(%WAHwrj$;4+NwaUs89P-kKu%S zeC!yTY{w^GQYH-JRs>Xzyie;HVWnu}NROpmV@%Ah?)6EGC#Erw_kdq*AB$dL-J!qLW zDyDX@4%52Ac$1SRu~GwFe5Y(0kM{hEJayTA#@C^><@_APu~1=IC_8lq`3rZ<;Yvnz zuSc$(?M^BM+Bi^UdEq?hPY{>~MFBrph8rqm`b=-!J;^pv)>Z0Ryl`PzC6Y>sM$L34 zxEAR{MKmocWZD#P*^q|c8(vc>`@W6<+gHAHbEK`$6MbsxGFt0NK zz`R60T6rM8>K}eZsqlVD#2X^?wgMSJUAR+bSg4rB2_(dg(^j6!BCx0TE;K}b67DBr z&JsWPE-`*sRt~XpHzMYhifNocAUO>Z#MRshp>3Xh&_*YhrQ^()`la9#biQLtaa(fX zA;bQA(wB}hevK!zUsfW|B)r%E;mb_e6zz9^S?3a*?dp;HuaF1*yD$Hq=$=TgG0hjf zUi?Ab{bl*}D1B_yeVMJ6`iB(hnz;Xog?K*T#S^t{H*^xOt@Wy>{He4Pc;LJYh{r)b#|nTAACu~u5P*c~eV zeCyW3Io=H2oNbS`pwf;I;XCqFy0ckJKFCB_vt={Z(+qG-qib6Quz;iu03g`7ZuY- z$f0P~PG!wCtShItR!)m40er&>u16GTm3Ak6qBpUuw|mDWg$&=`tlP;n^v*foN{XpF z&d~*}=?-S6hTTrkSJlT6(-k}OkQDBJ7odjT1o`?}(5N?o4;Koo_kI#r^Xm7_-*QXn zT~jLuDk6>LO)Qqh6EJYMWG(DCl3*H~$Wg?eKJOg$Is<==e*4?TNQGr1l^iF{B3sS2 zOB^Z$Em0yB)>X8=Bt~LgB`%>)@C~(OD7K({zuu0_8k&HO;tj?rvye}C!`6gM3&SQc zn!P^_GAj+r7u0l?J(ew}pS~DAXOdeVG|_?;9oUbN7@40Vt<-d-cGD(ZW6V@Nenh(gf=#@eA~VvnWmD;OuJfzR91l@@1k(GJ-QWh1*>2;ym$t`V`J?REXJ?W z!r2JT&Qxv=d#E%*8Tb4`=xRE1#}JUwj|}~-?Sm{o0$(C>{>%~*wH>KCE4CSIoUMev zNsgYc`Pj&~w*J(?&?WUv0{|})O^IPpbE4uDfyaM_ELA$CsOlq}D-dc;6nN zPV%O%kmXfP_~M?j)z)r=q0Pjb3~E_scBSN;6ZaETi{I_Uf=0e#MZ1iYqpqVd&={Yt zbD0KLZVYS6G}L@(v8Q}V#BbTCkrM4XTO-`FZg%7Z`-zbP0SEE(wKvD@X*KhL_Z;{OlkQV0$ie59c2r&l4%p@ESZX`%*ao&Kl{&=^z5;M zIDv$)kby7dIVux-Og!C;CpMxX9WOj5C&KPq>gie8ZxZ)be=(J)LPf!!aL|&TlgKI7 zr*&sSMkZ=@(;e~04ELwKGMV|Mu&EZ&%A>G4x4967jYVHJQ51RkHFY>?7QLCSj)!eA zCIw$|p%Jq3N^Mn?cUH|%wV^iMSd~>pdK9VQ3(k&T)P9nTSLewx*WkT!8vkhqR$*6p z(}d2n#;^%c5xqhr#Z(q2t1wiEHB&K-6ST+{NAtUarKXT+n_#Ivgmx;bw&vbd(28Tz zmT9f={CerJuTHQ5)#pu*hrLfc+^fQ1eMc2+#T2Pbh?Yys1Z)P>$Xz_MK1K#m#26Na zN3kppI21LtQkf7*Q7fS%uz=NChYFdt36jD`Hk{~!&Dm=25_c*JXR%Nh`B3}PT|(tR zFOd(i>a1pteyAlCzAD8DR2WxP+jZ5Ac!JZ^k79{p8c7JR%z(!gMFc*^czMGk4XkWRRR2Fr0f5@g~dU6s8Q~8;+SwFG%OfPZ?)-yk~Etf=< z17&m7cS84!H#}KMqv215E|-S$*s98XqFuSAw~?fN!V0y!j$|QB%YZ%Gh1+nG$+pl9@w3KvhGL!H-B5@hf1kcx_5i_GRwp*`JnNiN&Z&clXl#P zk2<5{$<3@(rjK5aN>sLT>`&r@*&~RIzk(e$3vd~h|+Hj#9cd#`0i&jL!eBh z;`GX4bhoRV99sgjrS^;YAv2n7R3=0xVoWBtK@X9!&fezo@wi|&uH}W*jk%&27Nv#o zIjYe%T4yTiWO$1F#Rur-lWyL(-mTp$AMszahVYDR-tKl&l9974p2J)=MC`X&`AS*fsU z3kmtZ0|(?o ze}H^*h+#9`s0ga6Y}AynG?x1HphABDG@`=loxsfE66i+M*w=U{?Dd4>fkzmKJkCKt z;}u+_6_Q31cV-00xxq+R*WdmbPZPg>`v(sHfw+JgxIo&3j~5;f0hiz zu6h(H?U7}0{Lxl0P*I7dsPX3Ytl@EN39yC+;hnib3$M2sDifkoT29E}n|cDgLKvoc zP1EdIwWKnw_E`|0qACs6TF@Q?%;^&tD#HFnEj>@#!e{}S&@##}Wn(#o>kYP!ONA51cB4xdAAGIu(&WKt@PKZcF^-HWRbP=a*;^ zX$;@k8-33I6hjWs5;^u2ZaW`mweRzP2#?NEIQ~LhNMcTf%EVL_<}Yd;F!0RZzy0~Q zKetmU=QE}S;muJJg}HY`EFrSAfYh(;k!mLfv}~Lf&Y!qjJhd~q!M57$tX6vp2FK>~Kp)KPe(sAs_0j$cNbnVTrMgYz2dx1U%nS2+eYS-Ch%ZDVq};i_T$SY%k0Wshe69x~g2VJJ;~@{k!qI5yFCiZ83D^ zAP2ahuKl-fh6-#(K<84^E`W>qQUfQJSj{7>67hHC0p?!hfJ_p@VfqJ#L=9R|{QQzQ z(gIB#aV3s;J%GwV+JbeT=S0v#N=(z?@&~zqhQ5@3deRp-ke_PfuD?F z-PW|3pMomJ|50acM=IiuEu50^Ks6|pp+ZIBO@Or{;%zl;fGx5|!?r0WjwlgJZG5~A zNEvaXrh=*kkI1))3DR0Zn`TqNWVM=8`69~eaawlYNe1+~87gY+gDa%<(NGRe3*yS* zK|hIS?Pd4O6tM9ZQww%NR>p15Av7^XM4VNrwwZ(J5<}sppPR8!3I1F1qpSAy$c<%J z?rcUS{BoJU!y;7%Nz92}LLKrGN(vJ~>8OTL!c_PiT$zf39~z72p)F>q--{)_QP)NH zfYw4mKI0N9kpP3^kp_f^0Xd;9G*l=861`MndTHwoHj$d-GaH_HMicI>DV5>%>d+Pt z2f{ZY{)B>5$74n4R3L)`+V>S2F;G#7rjj2fC?A1?!cmT{(g&pi{yxJW@ZkO*04j+5 z1pu6zkH`5Mp6CC^`FNd=^OeNqe5}92ll}JRQvx0<2Mj+m!M;}J_Z+zYU-wMSNgSq; z1Z*7SMoUnaIH(DI*M?_$go0ROVm&aI^bd|wu;1Z;8>1LXdWLM26lk45MbT1tnTo$Z z$f*lr_vb{8wxTK`BUd{oa<+C0&v@IRr*KShwK8MV7`v`=^2R$$i~T z`hW`i&2#LIVb}<*9_Bj7@g|1O-*ZZYlyG~KMV+) z5DHE>%|@cE)Q(kXIqN9VmE{jJx7N)K5BPMkgL1qXGKVAfp(dwIZZZ-76?l>)HEFIw zp4WLWV!OUMSq1Kc+!MXj?y4VZPWKnJ*P4}@&h#S|yBS-rj3wsmNVE<&`Yzabk&e`E zri-(~OLcnD{qD%DUy+}gS~vZ8{ZloLH$xZKuH4lm%1X61?MNaCd}hYn@lUbx#7j3r z?rtyjClx@|-(q?vmNF1KcV#o;3aiBsnm{B~D{+kisVo8mQkw}C0sT=-i+&X}=x*(a z`rs(V84u293D3HjZby+3ga0Gpm&Wf!*UP6~f=fc?8s)jhm$ZFc*$Qfz@T7d@OkQLI z)^y9r@0Hf|QmN2z<~FNoeYx?bD|-PSZTYhHNlDp;$Yz#8`F;GjI#Lm*6 zb@#ttJ|xg#Kj^z7wffTH-QJ7s&3CIWK$?_{e5dBAe!;ztyL(@Y^=ebUpa+w@{d5jkw~3j8GTl zp@4@mUtMx@v@2^5ZrdJs0Y=Wz`SP#nr3JnwIIcTsY%|%k65}E253m%b57i}syV*0Vd<^$P^pO{OIStLSbAC-dTg&i^d6UUqGF z|DQFwO(Zz5qj;aP?|ALHakW zdJn-Y@@e900>Pa}UEuhJZXBqvBpO%R(eX>{yO@TTjyr0J2gd(+jca0X?^Vy(HBQgG zQjtcsv!3O+dEHFK{agLE7U>LYZt##h;!4O9IEA^s&RA}c!@409X}#FI02&_FmAiTrs{QIpf^w9a%bKa=?+!kEfp1(A~1iYUJq(&p* z?Z?;Q?>|hrt`OV%9B&?7G^2T**3uo{-sGlT&G5BIFNeD$vqNT8F#EY+r54?k=tbYP z6nA_l)ilWp{Im1(MK`*m^h9?z7hL6j7&S!AsLf=>?NXDGo)~GGJ|<4uXXTdOiy540 z31#jtZmcu;x?9oQeev3A<%#n@&IWv`M7vV0M*J!qP^=7$h|PEL^~qa1hrXVIJq@Do;1%CAU`F}+oI>5j+XfWuoM%owDAohjopbYdX! z+F2KP`2*O?0M=L5W#$oISL>%1*q!oqYORV!2C1bJtN>7zL4SEi=YS#7`m6E@NGF4n;JO1~TDLSN_qkkIJL&=CtF;epp~ z%1O@hyhaSM()uRB#)B9rqj8cEX9J#D7s=DdZRA z-4Sy|O#2CMJR%3VMzmp`r zvnQ-eXT|1_RzVp+S^2vz%4ty{(IWmW7CpNdTIJqCj#A!3!22~9>+|N8tM$@cS0UWw zoegOVhPdbX%2dR~<7h&Ahz6yQ;7I#~T^F%2g1|Bu-oR~T5|P#pg$6~)L`nvSu(C*o zYh>I}Y}zLfD00ld5Vz1y*@#0&+^DH|v#)sHb%-C(+N7^5xP>zoJf!spB)uL%MKgl~ z{-Oy*2{nYckwx<=Z(RFwg~ z07njZKi=p6@c8Y|5W*CLZ8?$fpt3?*sgGY7)DgHHBY=(-jV-*Al=ndeP!@@lqa^lF z0v4=g!8N(piRa&!&;MsJwwmXb>ZFp>8BUA;0gus-QyzFcs6Zki4uoH4c%BdZg}?os zszbCarc{jjBjq=ZY1dFf$kWQ*cjmrnxv;Ng<&E3T z(A~A0#o-_leh>(bjmM!8LoZZx_Jyn^1L*HJH)%MQ3z1@>-4@GXOr#|$@yG5+%5@z^ za|NYthI{D4i3H{JQ~9t8d`wMcnns`LavhTk#mOTC$3lj+4Z+d8^5+84i4@Ne9WUt? z9X*Y^K)}`#3p`!7)zNp}paAs+Qg&Z}X-m6lsWyNpq&qgHe zAO@iM^&hl19f65+1$zRHf1|?N@xtj4c}>Eb3YkhB zqHPEuV-TH)5z~h+g2T=WE4C8&j12wbg6*;;HB+1-O>RbbosLv4rZ3dw&-c{*>uLo) zzTQ2F$pbutl=2`z;}C@@*(SH?HGV@Z##~eyEq0pf-fNAJLEN~nFsL}qV=qtXUa8pt z^e|8=N{PmNThTehl!}qxPJ2&euObaB&Mz&J?to^}=z`Yqr1};dFceChKw3!aq->gJ zYTIrYC#SL)55PzSk==q4MJehMHII)}zz2eLzv74BR-5uXAw!0UA1Z7=A*tIN4v=cKP zNe{7p!os3shB{JFGg$G{o1hm1=$>d@JQYh}o+52DP%X5m0M+Khrt3%D6ItLdBNOIV0iEM7y+2pfk;1u7wgB8NVAM{KdlRVb?f zQI@KaREnz991`CIZAD^QOgTL`;G|;5BW#Z${h-`5DsV9@5NXB(y^g|nDu$MNmpaSA z!r!cf{w?D8F3V%Uymj4cwe2UaS+j1TsDy=Y)PSq#yJH(joP3Kkq7oJHB<=ZyNJU~K zQ5*zrl*PzB^p4}LwYrG&uzc!ZEu zz1D%7 zu?Mm3h$FN4=3s+*v5~ilZxer!>L;`m ziY@j{LSH6S7zVmJ3*qbKG~4-+iX2E{VM!yAfoy-=WG;EV(i6In#FzvUt)h7E3<#7m zHP#~0-Z;6%&Vb6quD!B7Azw!Kod<0mmDh_SF;jh4saV3v-quy790G0}9yV+>yGSf& z6;?^|SvI`XwO5G~MfYVP}<}>E>8bWfb@s;hKG|Blbr)>9d#&KmU zNN6#0gPoTe-J3XfGi^9MLWy@r#r@o%-V>i&om$GxpAfON^OSudJz@6+d5WkFcehch zJbmMKb4Tm$u2+XWyP}`19JkZz3)?WG?zQKMC*<&)C|^>%#6&4bhz(g1VQ%mfY*{wI}44*FE9$`u(>YmH(FQJmQ>` zd_u@ZPlkcGb3pSa!<$%gt({>Dg>|P)7m8#&TEggkYK!TEjyBB131rkq%EO$UtTdm& z4m>21h*t2rxQSo)g6=Bbod>?__!}t<**NMLn>>2+@^6;dSH#GHBo+u^o+W_+d2x7A zF^vkXGe{+FwQ-W#Nh3{-x=nzS8S8~}_zocn>$$m@^U){$*otK9r)Jpx6$br5$ew|3 zsFMQwvGPvtw?D0nmyYk+lf^WWQZwxWvabg2RkZIxTJd0PlrXRqfAjzsh}H=HS-9=M z5+y$B9~2rLt6*0loutHF)1n_PVjdE?7c{W%0b;KJJ;qcmVVV|Gn$U!_QP53_#&7D1 zMVB8UKi{DZV*a5VK?#q5PhBAs!;gMH(j#QFfiPB%M+sSh(@zeeJ!<*I1=1S?BTJC3 zWcC>e!M*n(L1xXwS_g#C>N$a&8ju$ZTaxF0(fPb1mFvVG$Y*SvL&(gLM6~E#6|!rb zKtic36C!Q<)l-?M6Ck^{!((_GrJUW6h--qNjqt@}+P`YyTv<4#7$Ts?+D&nq$h^H& zLdZgLXM}MvXjCk_e}(K=22e+I2Mv}Xd#*FSSjwwHKPkwlIK1YHgJ9F>DftFEckZh2 zpP6o{R2IQZ)NDmBjyvLSf7-=R5q%TuNBoP!ON|{C*OkL6X`KF>b_2|sWi#;qXG*H= z^6Lfm3gJ$b8xs|kNDPUk7Ku?^Bc(o6D4+4lcu(B_ka3w1XRav>%V@QI3VQ2Mb6Yp% zREQOC(F94!7{S0kFf$`)bcv)=q7q)N&{j!jz+yjYY7^F)S1QwX(D5xXl4%ie?FvnF zoO0mt1(cq;F2QE69f1 zuNG4|9UfTrXa_DRV_1UY{QtlM?OOq`G?^0Ev7a2z2c3`CfJ>225JA)s7j5fp#*7^17U)a3G=x8?tA7R%{_a|)DoxRW3{{M)2?zkz-$he1uuuF|1IY$;ptQI zWi@uW#4|W*okkB*@0N-ud|1K%m3`qGdwXT$b{S}FIrj0n?#THV$l1ANZ%?E)WyM&3Z64(Lfpx>3UCmf-Vs_Q zU8v*R50K#(fD5)h*r%sR@P)FWr6^X{4Z@e=*bo7XPO>ZGHxnm)p= zh}U_+eq~fYS~S5m)qj3|H_rdx=l_65$S;*h3fg;5-4~w@nxj|g27|#$cn(oec~zE0WVI)flUcw>Q}u%~+Xoqrkb!+jq+%LLXg>k4=*RQ?4@ti}Vx)XVDjd#*IwMN9qhZ|7lj`pddWGK|%kPd9 z&j+fcOdLvG*bY1%Vd3k0!lgK+vIxorAIC`3T%bfzgQgB*B+xZOl)6{Qp>P`O|vGxFy+U#j`( z@PA3sy`FVQ@|^boxo2@_$6=q5r!gVje`HqB893mZfw zT{aSBzQ|xEDrH?J(e7jm)%qF?xZE`fZ?^Jc#GiE(uE;9cni^ku7Cctj`c21`oN=lN zPgGR+HbZ6ZTzKVZmHQrsy;o!dgQ$_#E;m-sotEMN%D`Tw8!pnC4IMj#P~=38I3*Rg zg`xRAR6Sv9{N`0UO8ynPblMtnSF>c75MHXqG)^F+9&6jx3|3pLET(8n4t+ZBR2+O0-i2eoLXz6|m6VD@ghX6iBvj&%sq%TyEitmlgDqm`b#hN%xF zY(1@NtrJ`D%I#9+*pzUmf?;(k_(TX!I|(ahiZqcdi_YDK8x_MJ!yLv$TB6Z9oXF4@ zN^`Bb&Z_>_ZPZRb&3uMZV?rHg5>x3#MGN+@4kuD<_2GZ(evAoLgD-IyV#{ir)?v7M z+W#&&u{X9?jSt_bJJ~|Gc8G(j>3HAfu3QX{Ug$MzzSe9+`1QE`%)%TNXBy7cc_Ux- z9)dGbHq2@CVWv`!##oQB{63v&8vhyM{An0sJ&t57t-fUyOP{DVTM|~AQ_i9tF+7OI1a0hD`19pBw^!_ zIg+yf)MNtRIE~e=ZJ$+IB}rp3G>e)U6Ncq{d!T*Wo%N;S<|l!&m}TVr>#qV07VfFcD1{mGmO{El_+fA3yFG$4=Pb+w_ z*Frx16^AX5(IBB=DZIr_nx#c0l7g2E(Um2U*lOi^^axsqvr+R( zi7y+P(OGKM+MZ|bk?HEREQiI^GIV^X2_`-;vw}*?#5x3ylI3*L z)4T2J+n6v&aoEB-`LXk*U>M<*J9_o`$?4X?*=zYUqh^N_Db~7y#LwG(#Wib)0#fvk zMibXX zu=!N%xpJaKy1j|5l=K%WH+VQvaUR56shK`PaJIdIdH*U|Dw0#XU^k}X6zRfVkQOJJ zSUk&5=%!yegtCYAmg&1Tu6a(o_TH1vT0T@l8P_CQ*!wMmv+0|!$G@%U3+L{bitL*7 zJsdLLV@5MRli01&^$P0$NO#Ly^Wx3pphX&zJZD2MT$BDY@SI(fwA?W8rb)?^$l5A# z;yVoecwry)T-g?sGXN?135$w)T2yAD#K+Mn9Of)PR0d5b zPH|@SY30r$1MAHq2`Z+Ml%#64ZM>YeTv=A@hVEtErc3{?*?VnoP`fA3)WP2pPooXd z-B4Uq%lrdy5;(zfB!_0}`G3XsBx8K(*Qu{@26S>eWhB~&b)!wSL0gdcN{AzoSm}N# zyjAWiET-2BrDqrZq?&0s%jdW4=i{65PzfuV1{0~}No9K2wAjAe>cpO|oc{wJXW<5w zFG4)=DRBe{KhVr7^Pj`*XCMxvo-yHp-UO_K7-@wtE3Rx_DQDK&Hd8X-57NvlEyvN! zaR)Us@6ZiboYuo|XO9U_jBMNr{B~fwCS{c~g9AmDj)-OjqC7E^A>XKTGvw~KKMpsP z?uN?E@+ElB{5r8?VBEkjWIzAM6Hj^N`h5z9xrN>F%3CPu*i1jva3X;(z0JsGCABu` zb%c!o0#kWb$gxR86J{O+^Xm)?m7zka$-#e_n&?iK>38lqe%e$>;?sti9!WF1_Va_O zsbQ7pDo*JEj}*_y4_G=MXSK%CQLjJGaNuZUod4-`IOhiI{C=JLq_~yFa4MeiOHrCj z)RlgnT6eru>A-E;C!9q`!(-uDODRXrjQ1&@^MCjqp8flDzq0lNIWVl;?>@gf%g`Xk zAreG7`YNT!@TSfxaS+QlEzlJqb9iL*=usq+5~T*Om6@&qmB zLoB8tQS6eR8CYp2x=2Bt{ZlJf!_%JXUwob0k~1$A#qWJfGOYA4 zO&|iD(Rmv!t2|v;rB`12VrHM%pnt9J8}@H4=tI(-KF~D8z~#{>m0ivWMYz`BMwlcvx7yhwvj2Hm3#bqQ=`8?3C{3% zG89Rp22f1lhCBgIMN!XxqRNbxKN2Q%CZI(aad{d2*C{H_`OdXDk-5u|ETU-W7PSHM zE?-`bPGYXO>;rw6VS}@~?)MO8w)B6nDlhCBWp}zsS&}o_ro13s&D{5o(rHJ!9`?g9 zS6e!p8sUk&sNw7K%0Qo@%Cbk`6nrS_^fx%UA<~Vi^r*rPB&Ac8P?JC}XzJx38}^J_ zg*+8f!Nag>j`WG7S^7xY5ytg7i|`XrW_e)Ds81zVhKg6KZBG1M+fwca!^z52#0j&e z-#)&4C^+j>bZiqy$O~C^y>^T+p%qT12Gg0t<4L7ld9jRRMO`(1fHIi)F}hGHY;o-@ zlhuPd%k(b1W@p-i=?CLOE^|op0}hHPluFBBnqCyWnhegjcD{B2FWxicjG$Q>kR251THWjsR;dsUg@3u@M+3me4!JQb9?{4J>CiZ6-wIs@B3G;kMRCuc+Vid zMSMrx-ar@QlA=g_=FmHKA=egSNoUD#2L0)8*71cRLaRbpR5Y=v!#>@GfP<3=4Ta;p zjCJlLxPnq~aQeDZW}tC%3+Kq;$0>cS>?^pKtLh7SVfXHIrcNN|1Sy2 z;wq!8y>{M7XhX9wkAyNILXqbEuRkfE*V=Re{FeK~C$du~96%ldS$B+AMMQJ5UEd7v zZPYD#I%$e;phA%AEEKhy#XSquGu>c30wsdr(bJq_I9+tdpIS`HtAol-=#xM1XZpyn z*cndFNI4xEV6iFi-sq_H(r)yXLkZL~^X6F<`|8Pv`MX0m4%c_uZKS?WX*-xZpU98B z%-KTO9N!GP?JwNup0#JT1OH|8)%ou)L$?2}_hnlD1e;g6Hs#zr8#=G=ZpCY#VGALy zTHhK8`^w8OHLFA4H_ARQJ5%o771O>J{%!5n{!#rA!Q#ER$}8^$sSZx>4QEETIN+4$ zgypdK88TtvVxy;g)luJkhIf+bFLFY?Z3so=M0+F)d4|KN4qBJ^n_x~^ALJmafiwovTX+e?jU?(EAi$K=`;)Lq4mkMIoITa}wy;tL$EHe**v6tDit z*TJZ@{RF-pfpuPDRR{F#zfZRW+&oKxR*;b^1B}eP^BoY1idv&n#KKyn#Gnx^I$^;w zdBdd)FWebrRo#X4korqjU#1#D=UgS~4|Zp)g17X48TfCftd?~O`ipMbmbMqMkJ}#6 zA{0DpP`rf@dQ{3B*)V{Smd>dIP4ml)C`!esk6G*oWrA6{8aLq7nB#}U?}hwHx;cX>AzDN+(yTB4(o*4Uf7RD<@x5Pg zcl=zuc;7g7xz9!3;@ma57^4pbUO7iN>k7)#l@cKWIEND!EXwDc5HB<78rz`DTd$ro zjJ$Y>6Cx&}EErezGPdvB}y=2+p{7207D#cBR(<((1(7Ox3-V9_DH?E4Slt=8S8oOo?QZOo{q`pmba4mMH6MWeN^||_rX!!_kMnN zt38HWLkJNQiV_u9M4aIHIEPZwY+qk$f|E_~ZSN-ZG`1T<^~|}B15Re9bHd`G^~ruk z=+>bt;m)h(>w&3lnA@N^-e@p}7{DVlWheHu+5ejWuFQb>O zdJDnfCxpi)XlF7bO<1N)L+P-HB9vfpOi0HxU-h!zmP?df>w>g$TCp4}Hg3CNa@!ls z97ZR~f)P{La`-;kXfb^-iQVb^u7(%X<=0!*c24TkDjS{?rdN-s^fd1}Pe)om<1qnB z&!_(+sY`_%7lbp4^HzQ^${;<)uQ{7CBNPfv?bxM<#xT^=*lc-Mqdh6Qus!sfo5d?; zGclnUr7s7p7*~b~UO(eO1U+gw`Xi6k+-_T7^Mv;Iq^x`HuCPgzP5QL@O*q2@@@vkt z&4>w&NV@iP!bDp{D(M)Qc$wW%6oy3@NS37*X>ANJ$#b1}*@nB{A2p-&)mhrYm@Uu_ zv}k0j^O_&+&I$K)CiJAScf&|vd27@GG<-qqddqcE5gfD;B#J9)#iZJvL8YQ(PZjrb?aW)lCdANoxT{efT3h z>YYKakev00c!V%xoB*X34W>0DMrf-+l^dpVtZX@V3A3b^qmMMHIdwxS>DZ;SfC2ON zn=-S9L<_nI{UpHMVmBBHIVuc`(&5i1lICRKRI;5(>NK6?I?`2xE0mSvCg4gwwF{I@ zdiN1-55Y$`&uvK-Dkcwk;%cHyh)xiEp(t!#r&fzFX0I8cmcL3&8v7-fPhM+ivSfBmzlj25B5OLLqfg}J2{cW$6;;urF@JVZ@e39f&qp|Oudg3?_x8`(k@{}fBV2c6p{w(Yi?mPe&Kom` zHgkXYxo2=4&t}U!?D(^r?H8=Rdi(NsZ(oY9)Gxbh>9nr^b@pO0PJj_LU{da5sC{;1 z6yXUaBFpK+0M|c2&E|JS zCt9@Q=Ia;<>|ANaH~~&Y@yE&LeC3(l46bG|PC#3*8xMl?fy^-m(RaF0z|}UGh?2I<%wIV|0cBz;2Q_hMDTfcXN|{$}*6Wq|O*1y_wGR5cV9#@Ngii4* zgkvbQI3XMhqL`49>=;C)RHobB?BuTZkH!wJL-sajECR)aE$8GqV4>cPUdRjb!ksk- zXcprH81)G^9LPx9BMZ;_hI~%9YKx1EmB-HJQMBA_RBfDn8Cnx#5+AkH`f#nI_Dth^ zXFs_^H*<7U4U@XU|EW72Z1?r$6R~S==jEO^^0M(>J*P(GscJcprOwGLABD!PH{{TL z-JfA_*Y|GZ;9{=`+fARw+H9GgFXp;2T3siw3uZU`WgD}+fz@KkQ%*N>!ZEINte&6c zf64Qbnq8vCg5nexgfVSZM=$O#({G-(JzE`n%SycFU`t8p7Kg$QiV>}VqxmIj*&G5N z@TQ1PSg=eUO3geuTsWGKI0CU25o}n&5z!OMNBA0v(y#M{84DY zp>Ry=I+5ebSj19l2&FH6lIOxs=WaAiVbj+~oB$*Hu-|^~PgQ$y0*r=&#sfuxCo?kl z91wU!i)K8mOo?++k8uKwP@Lj|aL%=MR}+W8K$#FRQ3w%bf?Hh(B~F0RP-xM>@(z>< zU1@$nND;*;VsdjrH(n;|!;0htfr6rN#0fC+Oqz=#bx>kF6f9e7zYOi7htI_m;8Z5^ z9E`o&6SKNag?pR;r!uZoru;<2s*+99ElO8Krli(Rl{VCNMlofBW1AidGtQzvE7^*E z>0Vs#5~RN(;Yyv^#f4E++-H%8#;3)h&?G)>nr6`ZBrQ9{;8Uf6@6VTR3FZ_na!Kle z&f=H=rEFGF3 zWu^2L=>%Zx?wqq$3^-!tV#2;d*Gt}>F&OCzK>*QWgi}#;Pj(^`#i>th(QqiFH~~&& z;^$HV#VIZb=hTgdz=1NMJNavFW?6?jZZyQ}V>-3P2`Cc>QQ?nl*xFDQS7H-{z%+*B?W1tWB46kp#t}qdu+(cP0uIy!afzCF`7yn=! z;XEg=T()LOAAuvkYCfMpb2X8^R@G>SIByTs9GRg+YD~`V+fUNP%=7cVziQ!(O_Zt5joZqdMY~~c zX98Zn^USHGpsBhdT6BWqmT&WUS<#neKetWpp>!edTRkyf$)mboF+t4X#!VW3xZgvu}pC&2V#Xjp6pbn*Q{E z_rCQq+^rn?s=aZ>VxAcL()?9y_xw5gf14Tmg7 zcHd%qvr_k7{yW(0+8(NhMF>3YeqK5W_4{ad8eE|`%Y-i0JnNTncfK*)SP?7RL}efY z_b3uL7Q%vMavx|a4wOmFsTmoy*#c~69TV;kik*|dsSHwDCJ!Z` zOnQz5VVok$6c4nx3ZJ?-J{{Y}sT?lGf-t^XboRO5t*Z_)|H_^a$3;fj}R!VWg> zbmUE}Ga80@Ld1e)a^5*^0#j+Vr^%sIee$YJYE2H$c};BmLYA@b37f`$8hxx5FT>Pu z^gNPh&#@ zL!b&R<-?*o^mx)(D+Wc%i`0gTJp^R@{J08~Rav>xjfNFSB^uTe4a|FloHvXRQS+Ff z1q$M%Y%xxNQT9@_w;2zCL|u8tm9dGoD3nFmtSV@qa71zTGCe}*Ay>>Ul%Js(AsbOq zp_HS6TeDo!Pv&enZyvsk7ET4E=oI0+VsW0c-v^i5J$u;cmi7s;d*c(eCAc{h>uHO; z(wLy$kThrrWddC%sVLFF>vmjyB6+?yv)DAsbkeaPR&FXfcgHzh`npG>S(qQ-sa@|w;q4ij^@s*fl!?O$iX~2%1?%15 z98NH76QYyn4yC6rS&vN4o--yusi7FrRF0e9x#op>%oei+3>0HoZyO+BLqkIh{{-pnTV=^(DLU-$hXV%W41Z^xe{(f47Dhyyc8+?pZ^$2!mN7uQcFGSS%XLhwO+Tip6Xt6i`Z~%&U*%m3)%*vvWASJWUscE?$6Xh$fi7F zNTf~c6c@zg=F}B=6&!ng>X85L`D^EH``hK_3bT_7JQ%q7xMP0@#G@?p$wV03#HqxF9Asr>@8!(-CD69kXK<_l_1qG{bwRGG_?n zXb}n-MadT_rFl#f0~904vje?}Tr1ZGuR3l5s~RqTP!^%<@J&0$1UQw6T+(^Zkp`*N zy@3VQF2f=w6sNPzMHFd2C!$4*m{61+7UKjMc_Esw<4sz>yRnJB@?P}6d!KRt#6bQp zV=KZ3eK)q-JU2ViPu(p)IPKPBFE%QkUPrw7{4m+wq0pwqU%jLG1M^G&Nk?P?&H<%I zh3}O>vlu5p$=dOnG|(su=PNv;RLmR}A&_UOOr;E^)u3~6;XDMI1{8(6Wy~2ieu>l= z#VKNPbLxgP2gmiaxmz!k)ztT>-P$@-GS`QaSuO7@=9k@lN&7zRzMW;=$?40rzcaIW zelq@_87Z#*GxSa7P+a@3Vl(?_*9YCty6L|Qx4bi?-PyltZ^!-%-coYEOf`Eyq^X57Gsxl0@r&9U4?}96!?l3(VXmIp*t(W8O2!^?xMTe_uSonQws;& z_5I1ceM7qKo6^mFlPvzeQ9NTPc7qvFoZ^Bo<}X;qkJH;;(EKv|%j;cU4s;b4L~*gR zl&a`s0?L9BCTQIz54EMSoTJ$P`nw6wC@xUqCg94JF^6JvH3Vym1~$``o|9fm)Cg&U zct3oJVc;HrMB@QLx)XD9lgb(oCT;gQGo+G0_<r>F3NJs^X6`inPnYh5{$~dEIX@d734QbY zEuhW*M#J(245572Ds#03U~(9km4`)IlHfbF z8I)7MR+FCL=Ph%FLPu85)`Ulp7rK)7a9{O{gct~wQ z5X+sZlN7F$3~(xrRy;Dc^hNO-xOZei-Z>^{?PmfzduW)F}_nVb%27sAiwfDANg$Zjx^Vzv!W)66ENuuoXzit2vqv&bV*ONUTcve z{Ye>&LsFe&&cte0M99}6S)+u9MRX9pIQ^mYUw`@$!Lz@g^u--1>x#;#XDQJiC10UL z4SvJ48%YazMmi?IsFaz_XKCU)CozPh3xR`vzsx8F2WX?PluhL71vFPbczMxJprPcs zUU%Jk!n_DZdO!Ve0;5(M(rq5=5wgUDGQrn#(|urCwoKE$u;GzSn9|9)^ACa-nucc% z=5YK$*1%s}&Oy>JzC;@gPWsSSl2ZwfD^sNQxE$*kAo$lGjUp!~8lpuoq;go)B0L}Z zadH;>5}Jl^r?=l#bdBQ+hCjeP;yh)#6ECdPL0rfdHbKR$D9DPmXt0Ez8a zmS+}oKztecSi=B8wQrv;2{fcYFs_g(UR~18Ga%6eCwFP2l(hA;P#?A%F4ZHfYG;t!@j)jGduUDodt;CpC16 z;N)s7sN7FN<4{p7t`uR+N2xD8B%be+LJr}O^a~sxU4uxe4IuQcin2^%?2%t3Fdp?> z@YF(l!AEp*a!X$vzo4OWJfWdzZ0TSc&`=~w`3ENv8VbjU#|WkIB_z#)+RB}TB)42k zbONJY;AP4I+JnzP%w1Ay*YM(vZ~jLu{dzn{0&9E8!Q{#PiCc$ayCc6(_qqsr^K>x! zFMg9Y?>RoF3$L6rcOQ&%a~A{t_+Irlw1bUZLyYgxP!`-i^?^*`GjNF%!2v}>)M$Q7 z2SX|xPfBzzf$kn?>^4<00xr>YAa{l#S+czn4oO3|*e&B0dQ#V)UW@*yt)*CN6NzFm zLaB8D?z%}$>PtsRdXo|6tti-#bhT`3LE&Dc14vOr!<7!F8@REftfRZW-tO6BceiH$ zH|`YY1NlnPwXD4BwF2muU6jSgf3757jIYKz@Ta@ln9~h^gtfXphNWA-ePUBq{)HT! z=&sC_m*K%Tj8C9V@v0{1K7c8QB88iz_7QY_I;DKqJpoRQaioJiGA!P5#ltp>RmvL6 zP$Q=1rGOcIf)|vp&9PHyI&xM-NpHwQ=&1S5l;|OWQG-yNu?TpytW*vG+UuMmZVAJ+ zbR@q^xSl=Xxpfa6i(0c}+&kBNSf{guTXRpLv!~lH*uzlwq%MAb`oZCp6vbkM(6Fdk zGL>KZnjMi1Ev8<1+lhLFA+WD~^A}&OfsXk5s_Sx2PEHkbHBXt8aj;V(rw6CBU`%K@4xu|OYgt){r7nP zQ7vV8|Nltug!uFQN1We(_5Jrg4%ZL*`y7(Wh)mH$AK<%a(H4rvCQ*l67NK=Ns?uQ* z6Pl46%ANZ*qxvl2L5#>rgoeV=LIVm-tm=UD?r*Pb+lZK!U$|<22xwZaEah6%t=dE$CK&SP_3Zvq_)QubNo;>)a~8P6%pwu3vDR z3)1SMDSa3PHNMb=UeMPFeI=w}og<10sB2%rgOb5X{?{MmLb0Yyt4PCt|2-2>Mb0A( zde-_M5~OcUmzF<5K?_Vd{FY)2p=jij3^O8%0K}*$79)&OITQy)76-TT?~D-|3P7(#RIURz16W^m{h)&E~~^!1y^_c0r9I+st>0YgmCXD zPR_bVk}i=G2=_tZv)=C%Pfqy!EmSl#9Kt2hD%B%On!Y#=N@;+xe{lMDO6$M=!Rg=G z7g1XXg|}ba6-3@O9OSJG6Cf!fYsfI8mwE`chCUc?AsDoD2mv`d%_=gtcD_}duG0Y* zxpIfq-5qT(|6j&B%T}`sZHMcIwlh>iJDA_p%yr#2V{Mmd8TE>a4Qa)QMWAeA%hScW z+6r$&HmT1WSJ^(6t0A1eEXuZZj+?+#@PajBLKnK)!4SisJ&!>QXox6E$O;(~icvb8 zuwYZZ9BwwFWRq6|IsZDU540}!J(W;C^r5+HI}+?hztfLaOD}?paX=A-LB$J7^&XY3 z!H|ju>HLD8@v1>r6KJZr;lzaQ6!={y*D)NcyeBkQJkGnJ($2v48z})AMM1)`vx#!@vGP$fqB-h2nxRPUSEh0^i|bV3X$% z(UeLQz+qpXeKpQ);hYx@}T0N$4J)S#~}s#-5g>I;p5zS1*8rl1>>2_edJeyRL0_l8fPP3e`VYK&0M zt}3D^=`X;4`t*S5M7E(V%}Za!uns4vYxm>MD7)&&+%RstZ1L`dT)b?`C$fSL2;`z+ zis>2z3*1eTI*_$D75$QC$R(^Xjag&NXCxEc{neN%1B)8hcQo;XvEYD; zR1PPbEsft~%pKJ(2;&?TWqlkMe+Xs&SdVZT*6Ukt(#bW zy7$f>TrCIu@rLZVT>^cdbtr#Tntl@zE{Ac(6UBLcl>Tg28p}l71DzEeq0jAbB{g3` z_DpA}m^;0TxGOAj2um9b$Ml`3hMge9#fm_HM5WG*JneKp%cN`ia-&nq4N3E{GC4^2(Oco)dJs zpKwS-icqpmFQ3mb9V=rK&6GVbRE;tLlXz1)FJ=5C3$up8Kr`C0FRZPHT`xv$#{?hP zTaE6t41VP1KEah`iXuQzE?dLi~Cbe_@fzT5z z)rc)a8 zyB6{tTL_1wHcXT#yB;vbU3QBY8t`_y@K5@RU>uUl`#_HA;A}D_&@&E26os$raWnH7 zo(XMcaT7&lZQJAOrM;$@<4vQcbFItKnsR4v0=WD1xOI0vJ_B{Sb+y&>_YYTh>v`Gj zmd57DcSun~vlP-*wH&M;97ngabG6uZR%Ceb~@ViBO{}4P1i00ckhJFoQ0_8JlRT{CMG7*4yP2MIkv9tUSJ;%BIny zyz|pnY;&+#+j57*|D3!_%8fS4Xh7QyG!$`StA{ZXeOIdZG1;UabE)%Kp+;{3n%xU< zeG6;8y*94uDg~LD<|VOF{Ng0sIozZnU1Sl%ArTxT#5j>M7^WZ-ia(?LNlVp8+U^Nq6a68#FSd;>swN2pb<1CmZ+$AWZrw7 zBaCeocKLhm*Xw60o*0L8;JUsY^k7X1n5f~OX<8LFWA4}S@Z%|4*9w&7&$L3gclz0&aF z)Hu6ICDktbruhrr^qn^_?yd~bLM)=zy$8ulWupY@|I;ElA=ib;!>IZK0?uu zx_y8gAt`4aAvKE-XtwL*GlXLC7JA6jy%PQK`9}pU^6`l*RLtTYC>DgWyujw79>f_% zLxe!n&^adjNMz|xD@ddm!Nh&GKbS_nTfFnEdG*UrqNOzyNh2txgTmD~xj`EArE;)7 z@Y466!J5ZSV#+uGxi z^PRljpXmF&jGymcz5j7%q!bb-$`Qq42!gN>EkdAa=p6s`w{mFF!71%)6JDWMgD&#U z0S>PmSZ7XR`Z^hUtnJysETM1`g?|#u_wxVsyU-Z5gxprPiRoaxr7w-8pa|A>OjtaA zL_bw3UT7%2v~-jd8g8{HMebMGMAMPHRHIE;yuqY*A&zuLQCT#$mEwXh_GQ0ncFGV= zhsA05Vrnf0P2gE`gs@)15?c!Z=1;^)1~$heI@9JC(rw)M3R4IX3KC1u5Sjq+xb31r z#RFwh>xQWu3u=-2kWeC;&{M)ov`nrKr{;RP#G>t*%PgvLS-H5_Il7>;g{!p}z}=Pl z7Wb@H-JL-w-Cqk;NW6Mi>q=7S6^g|ejCE^wP9ii==8e8Hx{~7*#bTTQp;Qh5X;R=g zz96cPV3Q5CWQH-$5aKI=TTQBAcakdQIH!Uxnm+^A;;G}kWr#jQ=!RDx3qD(YQI#ev z|B-USrJ@8nr>dCmZMxnk^;X?#`~XhUlF;?igRGmMfvz`Lr}CQ@WMSasAyF(I%9UP0 zaryE=sK}D`&Tj&5wS%h;8H%K-tk|6(NO!qPITXqf)ipe8v*~5q9tDj;PGstV#^EzuY`;?1 zUTBI+Dfqa(?W57R#p+6(A|>U95i**ytZs>%AZrMrId#Q|2}Nmv=mbHUw-bspzbByb z8KToHG%VJX!NT&|^{vN9nL9UIQz{%1rJuDvE%wkJ^hg=U>Yz+@1Mdz~AK){C$&~Z; zlQ6Y3-*;IS@goOK(?-v9OknFo)(}n4SSCa#DCYWH)M)AXoFxm;DApzgo(+7J&th;= z$+0ifdY^ZUlhZMgrhKAE$|uUBifA|mx`t8Bcp*o@fj&^2yW$rFw4@HAV^D}%rL~~X zq)r1RiiIixonmVE7`WQBeyrd(#st~eu0QHS@4U^i9<9l^->(NnNg_CCnybVjp=prZ zil2nm7v`gz7=35}M^Pg@`8G-fG|2mBCh%Et*F2YH>T>ZzUDK6&uQt_cF{H;1Z4q9I zYhXjhE@9a*b$&HzBoquarFo|>m$t@dz1)%RO^j^-uc>MOFu|ADo7mR~yV*B)xhLOz zU*zg~JF?Z)>m@TY^tt3N`#v#EG0;}-E_`yX4%r3WHJkB5i|ZFa_uLDjEJE*m%&~V3 zRS&f5_)d1J-L1X$!m{nPXw_F5^7^yS;f2OkVJ>q*-_#F^X@C4|P7A^KJCvyCFIn$; zeuMjJ@NdNFqdxAn4L6og=4O3rZ_#dPkJoPOE8I%I)mDgVIXcA#Npm#dqDCmnw703y z@Xj4ou{MgG6M6vn1`^zJ2wothvya3kI^$%B^}(Ul160D^ASV2r3t9Sf7Uf^aE<5Ry zzG)Q3nq>j}P>?{!T6L6Zq;|szg}L66xKeY+R1wjf?tw3g-Jnw5oihm!AvC8By$!X23blG+|A<3)8MuCpeP zJcEzaKIGiPe;=QmR!Y$%4WYd16t`a6Z6t{F&JtByr7}$Wq|%FtVNb;bqJq8UV)D~3 z{oK%fd^f!BSjzy~%CcQucb$pry@%%a8|z#4Gl%~+3e>aHo~eu!ji1tp%49p7P-ZE* z-#+!Rftzz$*Sg*=_qHs1*1Fo(lYlS48Z}OJ^|3OVsv7ZF&>Q`_*H;b&%X;#DXT)u) zcbN_|S}jfmD)eeVgq>wo#_)IwSyN(FbhKFz#&|B=P?T$Jbb#;;;4Xb@i`TBx>9iT( ze$N-m5M{mCs45oGjsz8*4)4i6)@)3nGUbQR!FLhLxHX*4SDGTWV8!h17pTgiE42{r z{V{(S+cnW{_>Qx?-x#|o+i&-_ZR%iMFqpijJX#pj@Xz^WOF2Uc+1!)MtUPln@_?{i ztvTBs^GjY|O+O7ypO!+E4=}L>+Fd^)?K$g_Lpnb*F6#PatqXfZ zvwMClb$6Fr&q)6>1N$@uW7GYYW|HSuNZ+2*y1Vdgqu@FVbIOEpaL*sA!F_>jqMLdr z&irvr{YF5lzm#jn$CXj0bS!Dqw#fbtE_^Z4Q;2e{vA20Vs%1ZXm^*bV7( z#h5;MH2I<(!4A>Sa8AmYNDZTvk+Ks{D^0A`Ohr!iHY$3Vq6^9Oy|6ukUDd-fTPUMf z6zqCE2{eQc|4QY(iA6N{8hD>Vc8R05A2LmkmOkv)s)Kq9_K?FP6#t3w-nHNpWl^0v zn%FdSJWBVhUwCtn6hR+MxumC2tqbwOZTe&!QDha2lv$nCaPw{x7 z1>eEkxtbake%)N^SZZ4-S?Hx>89fL@3eZI@?C;QEo?n`!eA4+M<+v{8YPgeiWJZ)t0 zpLWmb_FtZTzTNiU&+gmrXV3ZN`?62)QBCeAyDVdHf+BaMEFM8}sMw4CKuIF=2b`uu zQb?dFnF{;*#ogZj>F<5O_;~*h@4xqNFutw$)_DKF(I477{W!sCM`j)IQ8_dl3&n&i zO=Nv&e9~qV=C^MIsr`8e@!KlmO8X0^AEYcf7q1fkMV|5dTa&ajaL2Qx?hzUa$Bt~V z6C9k-3ypSUvW}+=4w=%zve&SFz7gSKmO0XiG~~S;tigoyLuWWBJvq7M5E)QrL^0C3 zT!0@|GvshsQF;X5oI0bV0~B(!(9$8u>7ycAOotN|Y|h$1z-5Z26LCQrj>ER>85nd1g?t@7i@G@^yOH{$#2r+3BT*JY1N{csU zxqMfVal{EQ8Ul3GaYAwK1v$gDW%A2*soP%BxYxa+nJwLJiuCJV@PQT=S)9|?g1eu} zu`A2fM#{43q*h4JXCmni-MBt16H*VN!`sns06A zR5ba0n|P%|SYBjtEX;$_&dHNgHr~m<{tUu{{-~+>eHgt^7#qqV`0>u>Bb&f{6UVZFs=`?=|c%fTX5lvtIeDn`zVrzP%@5{{V@rf-td(r9e#zPgjDV= zcmqWCbQUW1`E>~|wELtJX#E>H0k;YHyz)~dbp=UuPZ%AA@zP$FNE|`ZP&ne2pQ-xK=xT8J!h|8ONk^I6<*KWlq|rO0a0C z4@0`s)Xc^|73Iq&>7ih*HJwHH1DUFGed#7*@}uT4MMaN_Pg;Md81*?OHlNXGI8De< z?Z)+-8Pwd*n142gWgtftY1&u1tNDYWkZ>B-Vl%caUu#mQRoV4FLl$S>EyX!B^t;|{ zll}_f7z`C$;LPD^zZiOvf@7=l;Ge~}9WRd@hJwDx%xqiLo0pPEeQ4nl9vpzj5O`B&)RkWOUJxP?KR`O6(W)R;Uo_i1Y~UkPm!ofYlr zP|9d1!e8f5=o){}gnCDDiclWvRwRn_yWx20%`84?hfMS*7vm{v>bGDl<)%%!g>F=f zm{!gt-=VG(t(|+i(V00#qx6m(p@1?WDy74qEHn!aiU*p8hzUh$0?j~3Ci)z_rhKC3 zD089OWR03p(xCww#s9G%=@}>iCGy&hlbD4r7PKrHr7GU4g_tVw-~^mk6L)RO5+!o1IBc_iW3X!k!V_h+m>Cmn7lfH_@t~JzQB+!z1a8!#$z+;>MAzBFoD@LD|utZMuNuh`c z2~t3m37cU0HqRod=3BNbx}2QcTDabkd4>pv!9i!zIpH6SldWFYGDA{OAm-huMNUvS z3`&us2C5b}#F5J6R`G~ay(%{{HC=PY_=3r+9cU^(YB?IZC^>5y%TRp5=7M+8`bbcz z&rW%SlFgDPJZgE@)}jwQpfCGQ=dJiGnz~xv|7~CHK{Zp_7i^-}7n*frra52eN;I-c zswgH=d`WV=H37tlDWa+1lew~fT<1V@KwhnF;s;Xqb&;oCOH1s{msdc{nIAI>37ww78C48QF9)Y??Yr9YHg zP4B!$+*a{)(uM1gP5REI#U8J#P4U3TC#}T;WqSP%NQrZP>p47R0k-{A{9r;6x{}5| z7}lrrY7~nyq#Y~mDU+FBQ*!EzRXd|$vDcolrA_o4t@j1_g5CG>4rQ7+Cvd$mifd!* zOpld~X~lxyglzcu?FXIw)zV+fkTl$pg`lBmYz=8+%lSljJHqKJPO$td$w<5=yrq;m z{Bv~W)1A0<6TXlmgWg;U=W0}~8)VxcYj;etfpxz8_(cdf1?S+4RKOsCO$d+`K zqKXFybmq@NsU$y?zL0N-PE?!YN*@lmvA#*|<}bemy%jjLi6(Yy&ZlUgRq2o4e$+zn zK5q*;|Nm*{3?|)ZFJ+GU`x4LeFA+EI`KVZ6r=PJ1Y1JSHt`w4Q=trjs|#d0 z5Yd*r=UmP2dPVW9@|yfX=Rb~D#FId7K{;Uj>rX|zr~wkY1m4>h zeA?F74Qx)?RNGZwWM9VGSncmrPGoZAKpb_(74B zX6XdQTDy>)xpHQv(>3ZLw`U_y65yH;1;qBRPjboIAO1G5}~1R)R4*%4A34xGo|Br zv3yFZ)AR>V(r-a#_C^uT*q%7E;ltK#a&Nt{XY6ey_Pm1epO&?>+TC>}Bnc&Qq#h&$&<=r$HbEz`@Efk2 zcEqJq-!ppGQgR#1m>ydxZ=*}9hl_3Pj7FyJoZN5#ZD13UMXb=$;RHhd^)d`eAwegh z!!kAMt8fO&@*9J-TrCcUxz)>#Pj~ z;rqU&Pdp(G#!hV~Y5yl`)r(54RH@hhimf21H&dYsxyXo9yd+ zBN=L37>xN`bQioKZ>fY6@;UC4mv-7Ad!iq3lv`0c^%ibS$a#qhjVqpQQd-UoHJeFi zm8bCthQ%bppquKT^)xALRI6VlmQ{2M5=-Jj4+*_;nZaPC26LNCSS7OeY=RzsWH#H} zQBOyV5*eh6n5xL%u8!}zSTPl^+d8u^Ff%bMpT*Ck#GmumaIt~p&sn>Rb53~&I-j{! za_5v@cz*iNEnyXoTBshGcB`KyKOY91={GBK znBh^&XhT!H2H{Tj2Q6s)*y(Pb6_}7QDF|!kBV)!%eq5jVe3)XIk0v-?mHcxuvn*)D zE%f17Gs>h({r=YjjZ4j}zs}6~M>`$L$>(r#{%L+D)^T2-ZG1Sf^Ka>Dd*Ff=MOS2#5Sr0EG^*EHp0jyw=1`(hLYvfyHoU2u2ipaO2v1m- zo8~;LN0*r%?ACXhxrAnQ%eHDaBz?~)AvD)cKrxAMuv99GtJhk(WhIwBE#@iKq}if= z9(U4g$CjR*G&If%WZD?=!6>SWb(ecK?d-UlPd_a$P87G$7M!pv+dTquEv9wZ&{j2% zXE`=RejhK#=DpC^BI^GVy2M~WGvUxO#$TA!_?qTqPcY_?xW@N`tjlC`8}F>R^9PIF zvhOT2MK;aYdb&2(FiY_+f?{`tfgfz#=CC+!^^DihQQSXf_k$lf-J3l#>N;n?(|tX2 zhq)2fSVHmUT4FY&FGf*8~$k%vq?3bqD){v0KWWi|43oKWskuSn-q zzkdI#MKt{>-DSGe(o+#y&~EiA#OhIp#G)M zp%`~l-V~cf?1+Ch@#hk@`jOg~0rG!Rb0b;vJaIi{3|CB+x>nx;E9n2)U{K^NNw5Zu z+VreqvzCe|dSgIR!?)iK`8tM%LlbC~U6^khGD~O|gSP%LEN-DFG!x6efMS#r7GhG_ zo+S#rAlL0AmVJdiy!Wu~f0um{l_O6MF>R^sF!pzQ+yCM|;jxFbPm5t*wBIHNPo=ULae*9RQm7_rVY*0r@B_9K&HC&0p%E(l+8JP?cU<7! zdi38tCzi}I$*|&t$Z$vFZ$~kZaAnXal~RNozCmDRKrx9h$e~0>Ka|q(0BJ0jU_|X6 z(hH>prm}w#?=b09yH!ra%jmqG0gBsa8uAtF$YL`JWxoCv*v@vMEjZ9jzJS%RyFNFe z7nVTH37mEAx}kE43}`0MB=-s*W7t zK1%iBU31Lb2w~+<$ETrI)7*rb)?q!uk>1y+W=Jhf}Q z)yDx$<)|@SF6hiy3oO!`owF#`%Ay;?f-l&)qOl^1ppiEW9HfCP8ZDchL$DA2FmsG3 zj<&gj0eOxgVhPqmD@GXbhl25%pGR4H!rWX#=Y_~fzFc>eY1(hKfVlBMH)IOj3!XAX z1{9OGK3zq}p%sP3AzbV&*NBh(FJax|egnFNuxey?M~XJ43*E}VUA$fP2@x8b2;v^U z|3U%S!l*0qfajPZ$>v=pzL0lGGI?`Er+7j*4}tqtPW4v!{?hqAxT*unft`6uSy2yc5Bw|(8Ob)WWizpwjr z+o%29t2ZTo9࣋?=9^ute~j9dK*7ukt^LaTc!?SC>cl-o1x^4h0;*80Ow{fD2% zzT}>GC7Bo`?z3glpEFP>W!Im7_&IE0O}mtZVM_v04!S=hv^|u4Y8@+7_eIt|+CIB3 zw`Ut)yyCp0?}@fD^jm7!sXzDdZ2O$YZuK_=QaSMF9Y@C=pQVIdUi+(j`{7#%k>QJ- zh^}aK_SiA`6|(4JKa-UKOR{1ygd#3MWk_5Z7OkjQBE-rvd)KB!`8Na#YxNZxAd6jY zp@rUIm<}Eqr6#*r#-+K!p&O`jM>DF=G3kYG$X4c#312z%@4u?GM?%T1euI*fjmR2X zl^t7{agmAi{r3iL{wkCF3cJ(Aom^3bz!32j28kzA2TW?jqA}y;xCIB^HWHR^zvvxZ z#FiQiU}PrCq?8toG2sD46Q6%WoS34}#&FyQ5I5K81I)2=+gsSXjE5*fT>F)dkm zB2+*bwIqyBmqW0Ec`qqTs;dzjiM9D8zlJjN4Y(5Z!4D@da0?4!>g2STfV$S!kh}7; z4+1wtfg4Xu(sXs3?EmT(LU-`yiS+fs?mBqz)r5`PNyF5i^uK$I;?c6iiQ`|W24jy-TfVQeuh2Y}C0yY=7VZuPgUJ6Y4K#vkPCE(ZdH9E#W& z!zRLSBcU+1Bn~o#tBr1nLfcTH!Y0D~)M0k8#tfgdCq3KZiiTushqj$3as7PKU*yUV zVNz7vb3JZWF$1mZCD(>b&^slzj9!deTRdjuQ*^LFlj)Z*DEy8oZ6Rb*%`bhuTR1}} z)e>D%CSCT6tIG{D5n(lc=Ti5up!Mn3%D${UaVM?3ZXq?`I!Mn>nl9b5tCrTb^+K!?C)MjUT@sq`gW+`FhQ6+=lWtFA*gaKq@`*f94AX;<1I4-! zn&@@xObs;KK?cw0UGVwVh@#p}Ao@zQe4b6)Cc9&vT}m4bv;$(3>oGl(d(OAb{kgLn z&+!PORvQ(ijzXI(U2}v0_d8WTOw*>j&98Miz7LChPbK`ah?8dbqR5Pe@uh8^CeAcU z6kbsH5>(pg3WBxo6Yg6mRQ?nu4hb)0E+lW9K$0m!V-dN2!-{6#!;~5HN`Po`mz|Hq zs@F;BPUen5;>`h}-Wiqk!{UVMyQ_=iI~3=oR%z3kEMe_vrd?TklDgT>-Aeg|l+)rxt$WLfvhB1HDz&O# zuu5Zi@(tcL(n_&OzGAMuANfrx5=gZSyc!}8s-Ak)97E8?KcA^t=pmICzPS&y`Qi=B zGo$%D?YQYQx7UI;eY(fPbdCRd->mKZnekytxQ>REIUmKE<|QAxR%iN)>EKU;Z2uJ5 zTUhv_?z!Bj?|i(hBXb6y%^~q}!)QJT`00-~&|99L62q20@5%XwP2>ee+h@OpA$|*c zC^AI`WBF5PCO(6$unoKExMPwgQ(0VX$srM!AX304dz|rnYt*yMnek!T+3{ba|9U2W zol8qSb!E@34Z}I(bs%?{6E|D#5k}fCCXQva_ZH{0PTE&I&5H72;&cPX4_s2nsgF-T zkSt@BL2hbo#s8gA@e0|v`F=5NDvLU)=#m*VCk$5q_I>-p*%R|vy*>%eS}O&D6Y5qa>E7ulOHl6 zOWZJ(J?I)owDbxCN8-UB-j{#bE`C5`F^TH6W3g97=GvbNiix&37n7qVTLi_eNh%Aq z4}R-jD2!~*>Kvi!?035NktAA z4lhZ`^!*os7(qdHC??UB`CCF0T^YU*sbJ)fgh`mF`+>VVx|(7VL9jt4ChG0I>9q^d zGBe-YG|GU}Z--dwLa+6!!7;p@$3wss>48>o5` znzMgHeU~dM1HXTyOXwYAfCj}Rns1{M{AsSqUe?A=Ag5X^D>X`l4I|i^*tcFGS|wXM zRx}vTLvk|lPUE!Z!vBXf|1-Lx!b=yDj9y4e3q zmv-s7v9s4{d&=pepI2LJEk1k5BvpYZLcX(%fnpLt;FjDg>yozpw7vg*|8t-I*fD%D zTrxr-+4Xem;xdDve6JZH#bVgYxPmYMpg>>0B;pGje_@NMvH=1u>=7#iib-^ZLsw{& zR2J$-OG9Rc#LNJVMWs>FaunVC)#;qg<#4$Xv%Oa(42gn2lqa9!rAAHGQB?{e9o~dqJIDF#pHq;hEWM&i<6*O!6ZqOIWUw( zB%+xlCX7&wxleU7FC8+#N}^~?g?;~v{r*?hPhs=;mBaI`=)GOg#1Nv>asY}UOw)aJ zD*lovK6}X(QSpWi*^sArGXE(;4h6*!FGn_^A$pTXGqo+wB^+gHdBeA&;exK{veiXt z@OG{8^Vt+$XzVla!yQ|~G5-u}UOoNo&CdMAJoI~3WYQ-mguc=}wxDw&Ls(4MF!anQ z<_x@k*GzY1;lsgUW8W$6^exg-&{$NO$>Dh*oCtE#RIQDt!W?N|xq<|S!pM~@3@9pm z5J@nVSI7b@gU-*K>j0r*(T|qoT(Q-hKx>0>o%vF?uXIj)R8-D%KO3(WX38H(q`4p; zkWtR;cLO{%tGqqqO(ETT_rR8#1Ym zLg(9JE{9?l0QAzW!sIeSXr-IwheEU#-DYZh<`3>>p1!p%)Iz8}_~z8bd7y`I<# zc~!8vA@$G;+;Ja7nKqvdcVTz6Ze(6lD!qNoC$rvgi%#kvNog^GDK9e=yJ(GC5;nwh%hP;}-Ey>kufYUWL;4+FY1LQZo-2#{nor`A>M}cx3!!nVJc2Sn=7-#kA$XTg6KA z4Ny(@NLmaP3a#Y@cYi1ZG0-VSU=i$HF&U zuYBqM8z|uav*#6BtJ9gVv*OIysC)lO^pC|F`ZJI4`C4=9=XeBXJ3>s)%`F#N2gg&;70cH{-A0WjhI$m<_-!p%r$|@wlP5@?i074B>Kl5+WY8r;$MC zm5b`wRGakB5#EB$;5ai5`ciJ%HhI)K-B;#MY4>dJa2P)Wx=+0hc5UDZR{6QnA)=o7 zNHoOfWhBf5-(Yt>BFjwd^FcR&MtE1*A>R962uWjvYf*50gluTBQ<}zLZJKDJ3EBZr z(xz%;-ivRC8BlQb@n%1r5AfJMEsye@8O5C5hf(v!@-K#%MYnHdfSx+Yw~)I6QY74= zi4`Wrw7G&XDBGs<3yPf1zCv)z%MDTt`UK7W$Ur^2N+E4Ig^bGO{-&zvbwu zSt)2Kd3(68n&)xI@!3xJ72@u2S$WbbG`fBub`wyq@zA0$C=27JF~YSF9vTOzjggD# z_RCv2s*+#atMmD5Mhe%c=VVXjsqp|P>AQf9|CuU^lV8uf_x^Rph?V zQsV(oT97R_C|iVUAy`zmuD)bBzWix)SH1Rh?gwC}DigBC2vw7z+8EVjh76NJ?X=qu z{{T=+0|W{H00000LUVFF0000000000000002LJ#7Y;SgHZgVeCO9KQH000080I$4o zJPmkp3Duzh0B`>S01*HH0Bmn|X>M~bZ*_EVb#yLtcyzR!?RMif4nY6+MfSO15*D$h zKo3aT<2?Nepgt&B&ZOPlbBKE{DLIo&TsO^h@~^-CH7)q-Us%W0=a3mHlTG z<->r>`zH`!R3qe~CO>pa;7x54LsHj!c~f?nRXWJMQmo}$%jJhEKz!<10bX;gvUJeIMPlW{}e3sEV(9P~U6Riw^x8Bg)R4d)>=FQ+{VovJ1*@ z^vD(wMw23qWAZdm>>&nu9&qWsF z@(u}lYEh4@WBjA!1M?@M?A^1Z@ieA|a%mBcLwG&Y!#={3D{+1x64XlG9_Wa?Yp_%%7xH-AepbCkD(P zD9GoR2y5eS)tFe7Cj1+m5?xUx;$Br&j~Z1zFqcz}{Z=^=Q!Xg~qdXzR^63)p{m%Sj z{w`HC5;sx~$0$c9nM&`UR=SsS%J<-&<1FN|9t#1dd$hV1RU%cKr^d4Ku?(==Z_6wg zj-f)%O{K~jc$VE+UUMIk|E>ys7xwzK?PPZcIb;5wD95wpPWf#2;x8B{iVj_q*d{U5 zvWsc53$IwSR=O)oz zDu-gDj2{)rl^?loOyWOEXb5E=iF*@9y;0w;DuF5`qZsVz(kg>}Y%&XTP?2i{Hvg)s zl!;$cWWBTKpfqwye5?{u9m0Iu(>`?r=nyyNGFkIsXd48!u;#o`+SwHFP{%Z)SkywS zA;7-*@l)ZjQ|?80ogBd4O^OOuln;pMIdOjP6B{U>Xhkh61w@I49euail3a~tjVhlr zRrZtXGAQXU2yG!umuOmk8I+~kg{U(ckjs29ei)uc&W16UZlB|X>EPcW3ilV>z)zSK zTF`izsBbS$3oeigik35u=v6X)$7wD)z;7&)vIbHyjUdrNawl?lZ%%Qxm|3Y)$3|ka zUUhmGYv`n45A`UGBXElxQqdaPM~ETS+*?PS(e}TAJ<3vBqz7B$#Ot(FiL*((N+t{- zk}eu}(LFf@vT_LJqiz%0iV%!!G`u$A@J{MCNlwidlNcY=%kWat0$rMeGL??cAM>TG z`2*#h_Cne6!-F0xr#0$;GxFa0o2pKRY^{^$&w0|h79|^o#!Ox#U6ob)9^is`ABoNL z2!h_IM@0u@Bc9N`AMxLnQeW{G2Mx;PlUSAN)jDaw66_IG@dU$b;w!N+hv~UDwgqwc zU`gkAhXyUw^~}at5DdO~I^VHE+lr{WuG`Y{x=w7VyVt`c>5>ys|!iS_Bu0>VDiF-jItbw}*|DN%uTWVuumY zYG}+wE!3oFCzU_y9_Z3k0z#2vM}1?;F80*+89Z*7%g)A%Nbxy(v3$7;;|Nk~7?Lq!{q^JK3Bv05(^R|r0LnuyM) z(tAv-(mMu>?mwEsNn_R+;-n0|niRrxmY78k6G zA#RP4vbh+abu>FA83M&q+q>IGs;-GY+Me2{7Y(mBZdnh&xc2NeIXPS3x|F&a&8&y#rUl~#rm*{>Ao{JGL)Jvg_39l z98HN$?Wztry8jbfN8>$t1YXkotAfn&Cq)!hVro)~LdTvrzX@}vd0sk~dqpGXZ{*2YNCDzwWm99Z_g6DQ^#^D325NMsxqB^GH;K3$J+6U= zi((RV^!FT)^FJ*vbGq%yh>HLzk&_L08VI%3E)E!mO9NOz=9$S+z{6 zvSe+)gQx?3DW~8K5LLe_-PP^ijWSS-;INglo?&c6F8j#Jmn25rPm7$wufV7rLQ&;2 zl*Z&_4fuFg!if1aZaVg{k2>HfE{^F~M*Sc(TmX_?EE7`fw@Hk35w17qB8i82$2uu` zlbxnfkrkD_DX;uhQPO0w?Nde-I zm6ha4C3N|upaY{4n{<-QH7$aoY(>AShM#ad4nCI}hqq6`qh zX^{M5PAdaNQ_jTusIi>d@Iq1Jc!_`0CeEKFKa|xwA1LN8CHZ=yfloE|+mYgA%Uu4T z<;E{%a*gy;Q8Y=}YgE^tP=3gQ(I~76qmo1!QJJ_W<*)|zXU7<=D*N67Mg#F+P7y9G zIE}lgWnyKIGWit^`oWcHfdeaB0SydjmqXhrBW6`nJVEs42&@`Yz6X?DrD%wW*Uh+s z7l;m&n$^jzEa1WqG%iLiEpMMS7>U2rxEQ%~S8%+SZ_WAtplZtHsCgBVj-~qENf;Nu zGz47vXTF>0Qp+Dh^=#h`snc?|2<$bc@ymei`k@V_F^Rff5>Fm<5Y`MuIi3NzsH=Qn zE~lz_irYNVPvEjZbTCB~T~W7L=T5Fu!Pq3d1ma>`;@lHUK+Xpja=VixvvAo{ImUO& zf$o~=LTM1V2irI?*}J6hc2LU&f6J~_XnbwW?k1B zBj(aJf#S-W&J)CU*7HPOsh6iW=4}0@G`5)Tcufnqw3u%Bf{034Ks-!Ln$>|x{<{2i zfoWYX@yKOxw@ZmtHHRBn>Aa$yIvp2kRtLBfTVPDGggvcoGXkq`hD+);D7^+4$N6ge z{|+oSV83_!c+FvN&i6AIP&H69*kAxHe(MR5Zf z>3TIsQVDM?E50WD+kWvIM10{xO9y4+G!Y_@ML)n^)E9*Vab`o}PF~T^Z4aFYzA2aW z2pNX3l(fjElz8v;LF0-HCVL513++D0*!@u-!6v1=pNX*+)QFZ^dk90}y}f6*@NqZf%ID9D%$!pnTDw z$p&z-S-crb(*t8GV;ZrbSg~;fV_EF>2OX;mY5{lay^LV&)RLRBi5&P{EF;82v9M?3 zq0&>OQw-QTq?ks0F6YzA%RnseI*xsBXx+$K*$%@V6e-^ZPOJ@r>_y>411ufN?qD zq)d!uKKTOu>|tBrLeGHUtrBWenM(rZ@pjnt$d(Nau7#TW6i3YA@N70@j$PmUqqSfMK%9<@-bs7K|=@K zt=EI%sBy&@(^D&g9SC_-N@H)GOicx0ABFUuX`u^^wz(SguA5d+utF3%`3bIfi7T(r z5sefhkXV%?(_oZF48UGf2sxj|une%VC^0JskdNwz_?)qN{W4TDv9TzH#$MGAooy<` zUOX{CyqX@LNJ*BcRtVk{n{w$y>}LgNnc_hx$LN)=rpHE^Ks>CxaeDIPr~}ojJdCQV zC7&1p%TgtDmvkaLs9o+S(tv`T*ZpWr&sivQbXq3y@JBt2Pi0y0 zfG48`w%_A10Z+1Vp%L@mjn%312@py!dvawTSLh;1OL8AvzIEdx#omLVqHSmhrJ45v zK0CKF#$GwGNm0kkq+iuOyz^+Ebpi1zgoo*BhlApVaTcm0v1+Vd#lVF$lHylw_X>H{ zGD5uOt93z1WDy!MreY;9s&&3FlD*7lL>InyEX|`SZzSIl2i1rmYWuqi8h87W!3yDa zZg-0osqKZh9TdZ25>tBqNz)X#Z4AIBjHZYIN2}$XEM)t1>)0gF_}Z!8q!N~2v!L_} z=Db{uiYGQAo9TC%Y@hB2uo9&);^Ze#Jdr3Vdi*X%tKvfESK>VBOXmwmjMFbkz%G!* zG?%E*k)&t7ACICs8RQAqE19aeO@j`M$^oS*m*qk#jd~&KprW6Mxfg->UDzf)=VTp! zKul{75$&$^8;gBRbDu_BPf@@`e^1j}iU8T|+U9XVt zvxeESKhAbOg1DQ;G)2b+<)zsmq5b0L(_vS&o_OAY;nJW>hoSrWH;Le%gcW#>JJmE#8d ze$TFF*vaS{F_#weU+V9!-5N3PeWXsl2OLq>v?xa!zBVMDgy4ed)=^e!px-zeCg9sc z+Ygv{7dm*sxb*e9k-RYnRkS1aD2p#?%bHK})a9JAp`0^^Z&^?lFQrax0k05)?}@T^ zM}4|ke~Yy3{NZ#7Ja58so}PQ59HY}b)5<}S z#zvHFr&A`_0RNf6fbvo4ng+E_A)du(5#N}`PpUqVs0Sc^P_ztojmP4{CND{XgQ+NX6Vy|1-I_ToRiHOlI5ZtY3zbS;GH7&P~+NK^IKE5v94~*O4WN>Y;dU zKw#_2U;y95dx!F! zke84p@;47q#7L(CE?VOckV|3>wvWqdc;n5e$hSt6=8h$vsWI8E7=XCBX~S}24^7}g zFW=}Omwu1Z?=ro`Gf7LMn-!{?@XC-d>;0ePraSn!RZV z<}*hW)iMQTuWMXl_6Tehwg;BPdxaEF&IOnE=C^%8f)@F>M^W`FDydZ}UXBh{-U%k-exL z2+lUeAF#%nHN1;hhhT|YN@6wogV}@Z;;NvFn4IyNgf(;`DAyg1sqI5Z}*IY&I<; zS$4b%~4qlK)kbo9(zGSIl1uGRXV*c&|Ba_-aO6T1zS9T7w0ulpfyJI z#gKR}x}vl+R@*qp@A3v>Q%cQ-+Q`c*mn?(0sz2?b-{o)lOu`z2At}is@s-VD6tL&LEt&FVH$@i4v zE~Y6c8$}hsfw8j6Ux58Ct_RFSX(o1Iy*MPJ5UX{x4wRlF^oLm)Z*Ppq!+W6Y&ulvy zE+~s55bw{LFk)gW%BEzz!@w;zvg?U4CV9`b-smyz9Z@W14UM?l#O98Sap&@Zl^sQ` zWU#}#0pm`Rc#i!(0<|y{l-|E8kh*={_TLnJeZKBZF3o~yF*M?CBh4KNO|4Ved#4Q% z3UI4NY@(+5(PK}Pz2C?f&52FFs>x6qvETK4rV-dmk zO>-BNb;}f0_r$7SwGn08O>4{>0`>buamVFqj zgQ|WQp#EMr&mCxfgDs7>p2%unoeHmwm`jU}(a6f^-$^;VA4a;h5R(Ccn-?Xsf$ZzR zmUq)fq{afgkAh+`0uSa(#O5UMWn~~E7c2NdnZjpX8cpd8N9h@~CAGQ{TT zEK;8PKDk~L?$$HDi*Fn6P*mc=UPGGW1>%nxJMzY&_%fu4(^Hxp_>Gh&dX$L+%*4Dm zm9$=tG+~5Goy61f80TUrH6Pof%);336)4zlVi*%^{F=}{6=dV$8!MIO-7fxsb%gOk zb6!#A`Zu__Vsf?2&G4Y%r0r*=EqzBuI?yBb=Ixk%7VUI@Oo+z_(>5n6=2eGMVK9Rf=7w7WfmWT3M zHjdDwU>80r-Jytv46hM*DYN0$i2TIZvS$u-*Lq+C_N`>r7P-u|iQMf- z{eq&r8GzTm(?mVW%?f{2>I`GWbR>1kbVZW@zq9!Ml^)Z(#p!XnI?_HNZ%LZNWdF0( zYJbn74hBemXOvoodt~XgIK3k9>?9gBU*d)|E2+KWPbBLFjZOo`06aU*pL4Fu%$@2E z%_iT6*a2CwGhYp^-AST(1A)mt9ZpLp8X_&->a^j=WjbILdJN`^QWFg9H)dAe6n_d( zn&NVSLg-_jH`s)5~o|&X+moN zE=poP0Su1JaTH)H#r&C!X@YaRNL?AoIKk}K& z_kXz+J2DZ3;%`W9;A9TIBH)R`0T_QhR7dcyGwpC zOpwE2`X|;oc~2>3zcVJ_V5R_HxoH+gdfG@mj=N3%u`oq?P8oot zbUIbSNbgc+F~*V*-iXqBpGr{nfdSYeIRC;(KMHv&DlUX{ut0rsej~|?Bmdqw%b&X@ z4vT?g$yZ0!3&|K~rBeZ)ZlipT%q23l`(Wr71Eqg0KNvqa4quf37aMa(izAmJFC|Ru z+D)Y6oxmJ76BN2|^sokyly0ysaVnI9Z^g^%+$8)lMn7BjX8PcCu;Afjr``o9Q5Zw) ztT5nrPNv{)d*}3z9KGz#ZER2716N^gC*`T1os>^G8}8fh=PZ`Hjp!5sNt zb!0g;7dkKBM0~p5;@{55XZuNz)+O>BVcB7XwEKo9`4|Aj*kt)96?tws__p`?ZVVrM z15U@x1B5w>Y&%oSWg~Ohxw!zzAIboPN7skxV8KYs)(1;2!QBg||JS~#@G;Ag2i|Wz zUqdh7nf!a-YQ=ENAt&uAzVaOi&1D_iPzWd*I@dFxY@PZzYJ?5IMM=zi3+)vZ4=2p6YX7>b5wGB4x8Mjan-E@`x107C%YmYJhk z=YkMy6Advq%1QIOA$f-TzJ|z-=BPv)Ane4aN)pL({bmq)(}ueX>PUsa2TScS@~OaV zNEJiHY+E|)!kXaapP5?VQfZ8oevmD^y@PG!63e~V%!>Sdw6$_qG|D$l3V~m$Os(os zJ`U59bfC*f8XddavN^;t1{7xpvH`e!Av#-xLIgXkk%vmtNIl{@;9b}v(v!09kL+GB zw1rfZL`@#U;t=^H%?XayD<^4|nm{kii=CH~Y+N|W3!wa@M@L)owjJWu5!2GM)85Zy zm^}+G`}JdRwB{1L);-R-aWsT;vcYw=eBr}%K!W3rydtE%-!t_%9_!(_-B&_7)$$tY zW1f7|0dgcIQjxIvB?F`->g{wU$#!as^n#Cx_i0p)Tl8~OYV6SGp#j#?0X}Ciz;Z41 z#(-nxKXrT@nlq=nLz?2TO!+bWR~dHA0S)lF@YiRCGb!7!@gg-5QmKlaVlXtpv|&7w z8ep?$yv33mu4~%m)E_CpvrvEMwA#8ksda+8A-teM=MhQuYX@-GCl1DRq?K$uOgYHr z_9alhS7eK@Q3qP%wc=O^ymv*(yz@;tqByb;W%5R;d2wM|-r$!BeWm*ZY*zSQOjk&i z>j#GoNGGa0#hs~pVhpNrJP24LZ5WMG=p?67=%{t=+EGh@O&ic-TBF`RQRzRjx%~T% z?s`r?^AfqO*0IH~3rIPsb>j7$qancBI_V6lV~137_5q?4-$U9(_Wg-Q<=xOYHn%Tm zK-xMO=>_#y6wBT0@$#&+qJ<=C2!-LWmRgidMyxnAg}}w(OvZq8cR@Md9l|U~7UR)j zC*?Q-tCMSI0Ux7Q|ANsdh0a5XBgNb8UlSh7j8YgoH)ths;XD84^#O{*^hSAlnrggL z^cYmvSZK0;w{^4~glC~IZwi!@Jg;sOE|)!~voJY~2FNBxQ48K)E3@hbszImGGzCYk zC2zbm0W6S|I&)H7-y%$)@)z%Jg*oX$hmbl*GA~CR`*QBPz$eBq-{#{qE81W@yM!@S zS|)6OyJ-)dp?ooZO?F+cJ{tx~X7oY*ZW4+q+DZ%#>8%Y3W<5@q&$NTv8L$OfR;fRM z#P&?Xseq3$Npu`76>>-jZOo+W+((Mp7%WjU}ZN@Ct4LD)n(egkl=JzBh&g3<6$b_U?r z3L6n>U03KNg-jT+$-3Z1aU4i)$?F+_inu7r{yeOpJ>&#;q`gr6m@qx5KY=)IYwIt6 zCd#sFj@P<6ck?}B9I4Ooe-vYLAvHX7&|4;}kL+#2>}-zU578MLGox2d)*+nDD z8d;B8^h*72s&@8Ya(ckE$^u#wEr%0~X8otE%Jiw8dJw9t03`bf~O_XmO!0#M+cow_d?p^rU7NW@H&GU3RK)~iG);pS zMMoPcvU+-c2QNmx-|e7B~gQ;SuwK}$*c$5tQe&@sdTW5t$IM)B51;F zQ@I~K*9wL685N@Q^)dK9M}uo+q}BRnv?PSu$I(oNCxFGw%W@{Z#GgK6=>;xLSwEpQVf}ry9(uCU7yz zC&%4QcDECO-wWS6eJi|~);>z~cT6q%jafdDbsTk-8U>~oylpIX5ljA0hi$1o=Oq@E+GV`ddQFJ>HelANZ0)TUdzG|qy3iRFRI z1*mbp*X|U9Ba?#37Mf|obeI30(B~kpt36RpPwI4B-Q9Z#T|gHrx|rZ9QJaui+ak3#s>VQNPeuy$6!d+6&*PMA+4*VQ1a3~SeD`!4b3~`P8RKo>jt8F*3Jm(nGSuL+351gKp zz{{K|hNlvsv}EPu5mJ7a+#c;n_FI``4WKRgc+87k_gp`V)jFha3@)8$XdLt0uH+9ChKCNnB%fakrS+ z3cIs__< zqdcWR$4fCJdDYPB>i3AW*p9D?fNvE2PHm?iHaL=Sh{A^n(?`WjvWwV2i^rJtFmnt1 zF*-*U_gbUlS+3iy)2xJ%N{a7a1caR^eP@1eWE6|w{0Gl^oG!toZz8j0OkW7)7zxs$ z*x?*8Ugj7hOO+UDUfp)i@}>UBF5smULRvy{tI5zg{$Y(-N~96|yUe3GIl*)}6nHuJ z(1bOB=R}&Lh*IUHWx37Cj01)_W{?ACnVX+Dr-|bGBdf_w6K~GA3~*uh zMulk>UXJmlER#G-2iroRwBNF#LSS{Zdt}0*jiiX|E9KB_`ZMZ{U%zS$sK54!)8j}c zHjKaec)3&wdck8*UN<}(x4RHS2iuglc_vvmR=lUlVwlE0_iYN-V3GlUlJG zF+{kf>r|rSxK-8D8=#4gIn34MCe(!1J#8A~XY{?Y3rbSh|NP4U7uv7Z)=hC3ptVdB z@2&%`-3FtgY>>gbBo-GJcDA3$Z}%9xzFOKxYFpkNx9dvxf7Jt2DE+p}<#El5i)`!; z=)x=zhovJGy|4o59j_~f1Dwo4zeGAlCAum{1Mu3S$X);BG&s_}8ye@YhhS{G?E-ME z4dDg1_ttq#0N1`JMg4YJ4>f^{-?M%pAK59$_o~zyHzeTWj(zd;v$PQ9eF8SYUa>w{ z4)OAqogz$7)3qk>-bao*sBaKVrMcFMU%$dm<)slt8Fo;UBGT0~p7IltQehv{+BXAm zEybM*+oFo;z}zU>?nndb>otY}4vv)ep`dG_ltFW4XNC~pKou`KjZe;Q(%(CI`{U3H+1!`#8^?VuGLw`Sm?Bzm$vIo#3r zC5Oh)Kv~!q!`ljYy`nSfCDQSZmh21=Y3Ck;x`&%8#BshJ?Ne)GDcuzs8 zWUBzn-VMucBBK=QBK21^U-w8Zi@E~vVPkM)E}S5~FDxgrpS$DBL&k-CZ3X~-p+WWT_K-@y5PLOV?dd}LS}LSwvMl48uq5!tdGa*3-=JBa z90E=U-UA6QMqlp)Na&JY>X(Vn2soxqu~kqUexxKW)ha!yot_rGhCM)w)5PvLaCbcW zp)Qxvi}GSXUuzFCG?}|zOEyHFl>J+z@=v=vHtD;;^aLHt%fHaMzV zCTk8rQhV$RUA?@03!qujYuqPXbWr!ZCQL++@=~2*n4tdU8nE}Np8#n9*1%Ebt*Gmv zn&`8rsM|R1@kc%|`922Uqh{-ZN(b&eXk?GI_P9-RpXQNf4AbL0D(L`^2;)G%k_Qj7+Pbf88G!{HEg-O3GhY~IYe;3B3ZytDYk`JR-xSs z$RZiAdO?J)vJHjAlu zX%-%%sI;h%l_3^BW&v+e9}kOxq#lZCrvJdYZVqrQ}=3T_05c3?POZ#ABCV{VNk?Wqrei+_X zT=MjV9G&mq#IV-#o}81}zOcc0*dHjLB282N1oAGxooiSOBqeV#^T$fI8jReSY`dB^ z-k&)XE&nu*D9iQCZwT(999D1#Y43`+i5DG!Ca7a*Yq5V)=USyz#qHzT9ghdIea{ck z$MwCC0C*QV!BJ~AVCn})Yc6q*^DevFUce{YG0jTA+eTjvc0)}klYfs$Co()L)*HjR z2#&jFVb{yiK!c_&lk7E^Z_l(B*-&i4v+{( z;+R_v>}(y}4R{U}Ij)q?peN!m)S~Xxz|R~R)3FN0A)VFv`B3Fl`zt-WV9p6$8n%=} zqOZs`A(wwPm=)hV{MB&ei^ zv~wILMc=Pv)Ptn^f8=^xsJS~K9M+b|YDi+n7L!;6Y}kV0pXRaVP%We;*opPch2rRI z|Haz5t~ajR0Pz35B~8K-YKl|=&~EbdB|u#$S0*0s(Q&tU6!LggQG12&zy&j5;rObG3XeFQ>)3_%+KGg=+@NQI=O?hqvm-=9F-t-5a^>TbfQp}k?ia(%U5Wi9cu+H>`VVF#r9aVKs_{*4v+ zaYQV#>D4a#2U8#LFX!bGQA#-P4g=7C;waag44D3^IdTEA5{3iQYKW9z6mYZn~O(vp^p3m!P6Uy{3Of?ems{+ zW18b4ynhOL7kT6#{R;|E)#&0I3(J3Eyy1W5=;+FsF#i2e=|z~S#f0e`r*$t(UXC8h*~laCr^PvGR^|9clD~-z&dcwd znlc4^%eH>H;X}Z5DPZ}08~rDh8;~k&i1L|V?Sh+&Cd#kQnnQG~)~PujjJ!*WaTvuS zQ&pXB{YP~Fb9eQ+#Usdoei0Tv-1jah`vE>v2V*13wRf%~CuHiSD6vzxm|>kEi>h$t zSO?=r6zY@=&{285M zz?gG5?@<$*@NQBF&|fsIgAo@w+5-8!_k)yHX{SzRV8x&_N+VG7&S^bTkRVvl4~%YtBpQBHo(Bhl zwIAo35qL|S*PJ#8P_OZl>C^aeXE-aG})&@R+CHSIXb_cVhjhra$bWThtQdJxK)tE3aE+Ycv6R@@s=rV>w2+Q zj5~lPm)1JnYk$F?CYO^So3ICxFyQT$(>cd7j24uuo;pBF`496iDYPlN z+YX2-uNVvvd+ne`mt@~#are8{W5aX&n0;VBrq{kZ*MD=_DI)cX^`B2Kw5TLW) z>*Qs@7KUf0rgHG>2*05Ytm7XWHNwysJL!P$$Y)LpQt)_9@gwjWgmTz>Dg1_i6{q38P+U2|5@6|gbvJ5ecU zD#`z#0CbFxL>>?E+5vPSLt2wqDvOSnciBMVHShPR8U`RWhDN;at27uNprRvq{6GO} zUgbP!$q52<_WKT|0lU2~9q;VD{*-NUy_kbplXjyFf5h4Lb0pJk3}KZ&A4; zg^kf6slo;Dh=&1Ka@v*=Xwf;EEc5FqpmTJpGwGoCu{yCL05!3gY|#ukK0PQ{s;1?F?) z98dLfi@vJ$80okHnkn?+srXUr=7I?v{mKRmpOs1Fcff4AK-i!Iw;V3*9ZQQmncLS; zT4EaBbJ!0Ijd@XOCVeTh9KoFehqM~#RQg(NF}c*7Su9e{sRf&;r1e4UUd^y*b2@H} zF67sHW|CGoj7uFPZViY>kGZT5ksO1?6Uh8>ls-kCoYfsrel&U~g*6BFH0=QDn*XX3 z@Y(l;vUGYJ5i_OLz|wC`zXeb)49DB#D41dSZMI?exKPf`0%U$IZ;I>~8-1Qyyl~mV z`y%v9^lB|7Sfus+LkQSxD2?eTCxtI=D0E(q!VhM~cog1&x*Y*}lZ-$E#-%U~qnpl) zqBD%5iaUTsoebe;#wP0aq|sqI#6OFYcFcPUK-yyNT1LwYy?~U_u=l^#8Dg&Qx>PUc zrDvfl4;Xt*Jt4_4XlFY=onZg_bz3Iyni@ysQ}je`@n{5=7WYg`y-|8{ex_py(7`1% z#$LlHYMrkNaF3n-5mf;Qy=~|~Xv~v&%rO92?wB0sv=?dihgg=|-)HIvmzn)o#I}+j z7fmj$wb))m_qO`p`One_>E7bFDL|)83BxBuMdHf)y<$LV#AkK%^yeNm?s%<9JrqLGz_=WbKus*Rv+h4}u9|Lf zXFoVBm2|u`V(yl~;HF**xRL2VPz{E{s)r&$G$F8P)FGXlB7k*2F{eSDoIi-Lu+%Rl0JT6$zcbaEi~aES;m_de zbId$IWhlH8LdL+QKXQi7wr+ zU&(6PqdyNrZl-;!@ymp1k^9~vZ%6UD{t7uAH2PoSea<|e{aSW5@m zPmJ4^EI^0QnR4n>q%s8{mCkTN#N6$_oGO8I`mUHi4C&kqam%m+63`a?wn_IoBaf=+ zQn>PDfF$Y!2kk%}o28Hjxnu(Fg`90$fG#vP+NxfxGj6c2K4{DzAnU-(E&5WAKu4Y9 zteA%P{W`^uJ+mqxuvjRfB1vNeK85mo#dDe0qvA`aJ=6C(5O-SfTBvUzII3t@bb_gR z(wSmq(g{E+a4`?Zh?7f8nCKH-yxQXt=hiQjn_ncO{v{%H(`}X0!J29zw#_#HSk&D5U8nH|o4K7^>n-n@vSIK@vKZ=&1j|Ug(beh-T z>Pz`pFUJy_D$!n;+&^k&mJ{n>yd*#<0V_ALU#|`$ixuo>1)0 zkef5BCit#QAxD+Ypvd#6`gXcquN(}wFH_uil9NJKJ6;%@mkl<+4d@UeqXh+p&hU3k zE(J9!>hKIv#cl$!zUG9?D3KL0Uf#d95)jFb-QnShT+rqz&S$xQFT zBhLK;S-G8gfiW4vl2k9}4dBN@ezg8i5Ux@N-Oa|~V%h)nrs5N!X zkit^3I;V4eISN)s=zL9%c+~p-0MK##fzs%6tCc{DSz5%Voqof@@PQ9wY6NN?DEq!! zjhRw^+Fs0BfxEYQCre(d>4ko@;-5G;GUX<|6^rCTCm!9jdO5&~mqO=j%q4|m)u|T- zq?{}wsNnwJ^M1#)SjIyPhD-=g6hAJjFL-KA2IsF7ADFCevDYUgLudp#+IYnL30$ET z#rJot$}U~g1F7`2*8Kg#K_gFZe4aU1I9e}hRh6HN|oupu?9CQXp;nJ~ktb_3cmYg)maHGPb)$&(NXkQ@uubk96cf;HW zX?6N~Ws=dBFQ-~3=AMgQ+uh>VlpR1O^vC^Y#iWB#R1vt-1hmLLi(C3q_MT~-6RYO{ z$qe*aJmL}pE?9|DhlQ$AF!*x6e~29rfLg?T^WOCX$dAB#Bi!E?@dGD^;TYtwdv?y# z*+5&dSiT5bCx%}vG1)wIDk4JdK`4ING#CCrj;0Gp+hXIWFY5Gz|H??K7pIc{@ zMKu|mh)Y%{ z0j$O1^q761|4lj&Th$F{mkS2x$Abd_?{^1qw6CH|r)aC328$`PSp2g%66hYuLd&6e zf{ee^d;u~9BhW!CX2Zjn_6;^lqw`~n8|BARg;IY60`Qj2cZkwzJc=c!mbg9WXA> z*9?xA%Cv+mq3i%;8hiG8&yRrAM5lcO7Krm8R)V9ZNUep#%5@OQ)` zC>T>E4r5RGNsyN458ECYfP2N9r~O|0GX`SVpaV&XSt!p|e!VjpfIH1QfO>tzwB-|G z{7SVZ9h?Qog6HvE>&z8N#~Z-Dw|YwrR=}hr1U^`y!_j`bW^tq+6n2+f4DY&~;K&5T zW_)JaZu%0zC99|mD_8^EEf;BZ7a*&fF`$_5nSuo-Q@)$Hqo99m(eLN_V5>6cWbr~7 zHBgij@-E99I$j}FayP_&glGZrt`>cZc|_7hd7^#F0gUoX3Q!&(Ej0nX7lv9-TfcN# zZR;nIq65?w0F_seUlTKl<5Ru9qW2_>tTbNUgZ(I1<$@HbQ_gx7?}I z{-57kel*;G0itL>DngyR&V6!;VW?@7Bb24zzCcP>rO+ z8-QgI&>C&)B*WK~b85xKKceQK$YdY@BgE*ub#$I)ve%yD3vA zHo(pKM=SfXQOkP-UbAU*NUbK9w%`%xWzjUFNbH{dWe2WHAn|InKwqL1IyLLeD8Cm* z4LJcKHFGbF7m7gU3LA(!$6R>b7fAA6)MO7YIw@R}F2Dx35x57?vM3k>^tbJ0%Bp=Q z^L4kH9ESIL9G*||a`=V!KAt)dJJKazbyPP%QA0F7jmwdCCtiSaJ5!uDj9Hb$P3l=e z?z`%Ca}>-wCvsrQ0^-7{sCsodPK_bd30elbJ%t z9v5IoDjhMz6Gg|5YuT3{zUt*XCK(R_dg}&sA;PfBh77JmbG~8WR(^Cq%fhgItFkTT z5hL>6W$S!fDz}FZlqV2-T&y!es)t;Rh1Zn;oieSMfo?grP-Z{o6#7KxuU3S-hI|Ma zfiHtWfYcv_e{lJiW$^X~eY@ZWG<4RCE`^q39RVs_{q+Y!z2K)w+)?m;c3fjShS?kW zD|vGK*3#&kPK@gS8M)ug4NhpcZ9=`mAG}))qbOdkGU=e~%(rNoFda;8D%`54OVZ-R z;_AcDu18J_;&w$hgBgZK6r8m124o(L6S7%=_Q#f~5!0o)r_g`ldez_g$qhR&_4-Yl zZs0K<9F%xdmKETV0I{oy{8voQN0R_mYl7oK#|YSK%4AM_snUXa;XtOO%mK(8J5o>S z^?WC&3K?bNtmBX_6dUJW38I{Es@tKr;v`%cAT6S^zUT`f6$Pw&A%68{^3EG z-mi^(eAt~AY3TFpS`AOvptyp+9P9Jer>*6f7P+p6%pbV_*RkW7*Ps$`^&a!LC_ z9;S9V?}3{O9V}-C_-8Rs$mS=IMZ(FnVV=Qpi-^7jfybrtOm8VDCA3nKppU0e+7DsU z5P`&pD52v}=+Zpf+jGm5RJ!S1^zq=i(Rq|^O-W_R#v+{{@r4$$OQJPyKz?I@)MCcB zd(!cVQ5|72?ZEV7XD(z>_;1QXV?sH`2z=?O=afT>+0hzujtIOI!3e1>k_UXY8mOFt zF#!EKS$VYza-H5N8Uf1&BNhz`DH zfSZ{7JCU0+9Sp%_KdAj&n9fEyRqTo0ocJIqWHIZ`r>H32nvCoTZ|4$fXLQg_E@^BV z{y(GD{SNdY21w0~z|tZua;e`q%b1M>UXH<@0Qe%W3a7m=z4r`>-zx8cvSe98F!{gb zP>@GkiSdb{{Kuh_;~OVrbEZz^hH|ifr~S#^@&n`WTal54aE%MYjc^gL#{J$1Uf!de z3;o%6hzNsf`vVvLS$2{O=q)BApUHw#?%%37dMBcST?oIZVxhpDZO< zLcrDSWzoK^{6BK+NK;N4z(zv($(iR{+_oFXaVYxUe@TxTe!p=3Kr&8)?<_aP*uoWyZDos0hiUS3rK`h&^K!Tf7xu@`Y$6BTn3 zRTf9#P#z=t@la}_!(bv4dLOCU?C=lbz-Ie!w#KiVQn4E& z&YNK1UNM4~cddL|arkwaX5eF?d{BU}?LP~$EDf*c@^|Vd+~{3g3WT-H^1GIoGCCT% z3SED#sc>tM<+UJvI(P;CeZjO8`($Y?I=>Wf_oby7__dbY%H)`FsSrZk>N-T)$`IF@ zPleuTPWd+lWvLALm#wmOPQzanC+X$NGRyzkGWg%Mx#qPB`n9nWyta*SnwR!KYVH1= z5FY3DNbO*jMM&Kqr{5F9!FQ!5Mc{*{i-}(N2mL#<^I`_Kc*bxn=nopo_oi%4q4@u; zNMh?H9~598f0pzv*z19`t5Dd<3c*-)ce!H#?sgG>a4|9V%1ZFE2=7*K7#GKb$v5Sn zC5ihzHws*q*2YC6{*WbMU5X1fN90(ydFmaZkM!g?cM8gWY9~jqdDrOtAW=OOMq819k%}?JuEw0HEQdOaV{$P2_y9T0N^H>vGfwo*Uq>^7YWWY+` z4~T2x^Rnn!J=M?+NwtQa%BS`;I}X(hlM?-?x_t{x$u8O@S>B-FL0P%vp}8m^HUjrM z-5yKFti(L3YQEs22QW$n4e>4Y7Nxozt+=d-OYt{QrhH~RqEM)6YdB?eq--GEdroTX zVCo?!-qrx`ToNNf7ABoaT<^Ya%Bp!l7l0a_N;+---Mc(u#q;|VM-{=1%HboXMj+9G{)IBCYOdFcK{Ldj!23?41^p2*>KioLDiI-@ zN^XPc^1}HQF*@AiIlC>q?Xt6iFxiX6ZxM|sCw(;xig8uf3pdmLent}TP zRK}oK6M_3JZIFuTqCi&85UWTN48ToU%p*8%Eq)?Gem&y^-s)foX*$@R0ybOSkwtZL z^&v@1o*Y&4r6Qjq8b3AyHKTcrM3k?#iD}M~^bJdHCGfr*6!!zbg`FCRAE<~1Q9dfr z-;~!4!zizMhkHf3Z1A_9z(?<#74im;9bvDKrCCNZlF1Mu49Bt^EdCZ3!6j{jbb$zW zHAW|dx1<|CRzM8;kE9}X6Vn8gZ`z&}G$>G+LagM(E}$NlFSwNIFQ{{dEa|S-F~X49 z$yjSjI(QcQ$MiEt{3p7)E)aKOjE(~W>n8OqC&9VAQDIU&8A--N^J{<`vuZTxL%k$k zd$L2Co52N#+1e3_l=|Ni)j<=0J1yyUu^>5pU)^;#|w185{@onq)}SD@&S6Ue72x z#GtUoik#uAx~~5OcdJ?xVPJ>e-Cgv$T{3AL`4_Hw>RMZ(33GNrHZ`EBd$%LHACy+9im&DxRuHA?O4)-fKSbky_;KsWo!?7anF!L z;_KCF>51X!o|wm05}O|o1}(P@0!*D}4MgQ4O@0MyJPT5PK=U3RT_D0SdrcFpsLeKGxXt323<~XoJl( zIgv@6U?O1K6cqJx>9dz#^3(wDL|Ug2wi9y2m&S3i-Y0F)d;vo}1?qBP2hiwZYkZVG zpdL@YzQIt=yea4-L^iKW}?bFq_KXKXps?kHEFpYaB-AKt${CGKd(pd zBV?5nJ_`6{95jOgxR*jdg;#?gl~(x(iOTXoQrBFiVt5xPu*eLQU$tgboP#<3D8Z?> zrc6jF*M{xs750`#wB0a@Di_{0X%aQMu;F8wMGF5^m6>0PkuOHWt6D=;-c9R2l$d{Fba- z@@T=j+y$dG+fegG1JTHT%luL7Shd0T0m?sVGys{T4h7IQw-vcdU2ws{nr-q;Sq#z$ z^v2gUAULVz6@!}^fowY(`-{drDArwl|ZaYq*%+Wnc)t8%yxKQ@^8V= zEAfl+C6Q`Y$U6W5Z>1midWFT268JqwgZ(BzfCyIK>zomjT!4Qo*@`&@H0DV=}l{LUS&yfntcqy!2Qi1`vDT{f7 z2D6fep1?=%%p2|wsrtSKwh|i=vg~_nyz`WY2KWQBsG_4_#&w`r^3=Gf^Dm%bl@7{< z(N}p#pwgftQ|@>L?tL>LWU+DtZ>Y&NVNjswUG{!dKX6EQs_lBM7?!k!x#9*7$CDO) zo5osVbQf!FmFZ$|1F)5olt_&!m%Q&IC}+bB$-IKr_^}aEw+)J61KFvwRInd+_Q9~W z+X2}tQ!`DGTFKj^y3^Ex$&6weM}Ars7Xqs4?6tw$#b9E}ycp@KCfs ztUwwnrz%m;VeqoAZ#t0bypXL6M#;G z41CuT71IVXL`PxY<(ZqsnWg4a0W&K^sXwyvs>CPW)&TEZBQ#V+jq~0VjBGSKcls2k zoTyb2psY3E-ISnwpF|WpGq_(Qq|BJH$YQQ;MI`($r>l1@*`wvM}h$aFIMmp_bDc?K4(}2 z+$+A&kg_1PCMHgIvtkW8-^*}?EdNhQF<6;nryG(@ZPSN@oF87@jc59XoGg=epkzf3g`J7wqHv-)tb2rYcBCjKQ=lNZ0*c7 zSH-Xc=~Zjck;xmkDFJU?8gWwJb^tf!gJh1*_md6La7moXu-#sJfU*L$r2DDrZyYu^ zqU|({JNs~Ybn26X5ipv^p6+!fi4HEaN(?}zai1V93NF4hQ-o}O@}iI?ZFh*jl;#=X zlE_*`_Kp!KTaC(5aZ@B>m3|xD1#Oz_JiqffVsIhRz61V+^h2+o7)Efx3SO_~6cQav z#TMs{A+h=HRDOI<4e%>Tr5WL4!5B=WjLF~BY``her{YbCUbRMm-)P+Y=xv=L_b&WO z=y%JFzC&dpLjYDY`X<4WtrcZX5z2II_LhCzD*j+J>iDU-C<6Lh)N*ym>e0eg|p9$@~~GYRQc<0v}6xFPMO2 z>F>^z75X6jlgd;XG%hN`fxwG%n)W$5xSNl#;*s7uc{a=65||xdT(pvIR#v*jKF;v715C&Q!8m+EasdhwI4A<06*#mDX>}-@fwSj^mtVY zJ=smCVvLDo#MVhEJ3z+c=4Yx7raq8eXP_dnwjH7S*r;b4Tf!_-N(i zFsRosLY93qt@REV%}=VzE=E+38`^ofPX-!*kIi=IM)Num7kfs$0(XNc@jUJ=W$U%@ zQl9xxAn~FU)6h-E6n<9vf*7HlUou2DYUMPixD^yfx)B{cG!bbLJup^1Qdo}tLGP%! z^6M)J>b(VBo+^Ex(Lr22S!w&5k<+Cq`!s)OK@*%Y_Jj<6ZTsAQm{dz1ah|M*u}l-N zwudv~y$VR7W4r21+BcL4tnl}6k{C-~2cyHdsQoU}w#m0zZz-yx&0{bCH)Uylm<*HK z`WncR=ul90-cGO&j#kJ#Co$(Vn-!V}w1}`wtQHv7mX3Eatg1u?b>yWNqvTaBl_SdMt@N%(B!_{L-@U$9}F1ssIp< zp1@J!u9r6(WbpE-0lyM`;_&{U=9*Xv9oyjUChRr3S=IigRcq4zc7ks7SDAW8hrtZ4 zSur_s!=cR4d3F08-A}Dg#(3N&dgnfQHkNH526y{W24K^;ct>hXH#0*%x@7s=(!suD z%i<_}+@;iZd87Cd`Ztf@pu8zKT^%9Z^KCikm;3?lcT#whJsbZNOV;n#O!Z$&bvgP3 zskrpPSm|#&fK3Mk4a5)RPo(YAEU&^V`sR&81Y^bMkgMv#2&|%DT!vX*S-3iCTvi5m zUk8xoqY&6c%81uDD%rntl95Z+CKZzgNPeNB=aR;;9}muAGJ0_3kCv=}G^mpIrhMi+Lb1Z>p~?_D$vZeU4KKv&H=2O0RMeGydZ_*_D7Nn-D`YeP zf0m*TCW?y>U!nC5E2BN1sWC&`}y4(x(C!N4HkbWan7Hv9Rz?61w|Q=RDzT9 zdU?rhJ4f_u`{3hNN_Z{y!Y9oo?p#6|Kf01z*%=(E1_kO!h4aBz^ap<_B{sr{1hsMi zKI%=$OL-OUppw-$MP0wtJSy24%XGmoKcPcxZ6gg zP6m7MS})BIRbp^{Z02AF?nTB53&xJLQ-FU|B2`)Otg-)qeb$Bc)Lpg26cSapCy%ue zqYJ7D+aZ={w1XMqRVBcS5K3NZuN`=Ok&KxAsKsE<2S)#pYin47@qo5&8VHrsr$BbM zrPB?7)FoHWYi>xYs7MhK^@W%3yK43Jm6Enk;q*8Pcr96$_DOk-xcoF53Y!&MTzsw- zc;~y|U0JxNi;(3wz$|M$`g_8DRvAV?$kJ-B3`T|S?;6KQYlq;1Ij$2NzGKZ(bJy3p zUI}fvX#**E2Q12Bj;F&JhtZBSKyDt5D=x9ZLvF<2LTj(gD4)vCo57w1_0$yG-;1!G zO@~=@{;dsyDo&Fl58V1ZxLsAwU;4n5`60fEFWos0bjG)6CyPVU#wpcT1(mbMWs-L-f21lw99=lir z7&>Y0-=pxZd_hq)#22oxjKHcj5>M2R?7^I70oJxkd0zwED5LqI%(u#i#<5lJvP3Is z0@kuHi)v74CPz(tgRE^$o{Y1bfsaip{wSWBc602faS7{kgX5)1#ihpg0XAl7QjUhc zr>MFaAYRN7Hb1S9o7C-GL8%IOt%OTd`VEvT2Vmt}jRtA-Za$T(i>)9HZ))S@c;B)C zy(25jtsL>p8(tHqJ84Y;Cv$Z64sEq6u8EF9s%5%Fqk>bYA`Q%qNZUjJ_9A1e9q(w? z*wJ*Un7atCxZA7yCy}yVmD+Nb6jWoy<${n!3r1xFOpcb)4Y?^V6166Up3f>Tg{gD+ zF0tLJVF`K#Z^$RWyJ4Ev-rfNf`BpW#uoK8fHPX&=YlJG&c*E#oZw*jZ&5i+Wn02zd zt`y?V+XgZOr^+jM&9uYO))S2?S?H!&S_589{Rt1pLEByNaFuxt3~teL9SLLXEPdQO zmb`BKxKjg{lx~Nz1|G|ekrBzX1LP~8+Cq2%f? zyaMZiSREtIiEEiIJAgl`=TxGzl5eq!mdvt(*R&@f*VadRj=wma!|iFs$leCusP&C>uf_5;kb zQY!uf{##+9PlqGG&Kl0L;6Wv@<$o(sA%!t<)4WGNLAes;`;-d zJflhmv9F`+X3lVZ>S8?#i^ z)qd_@3vjMN3d*~|WvI5gA`KPK$=<=!rBnb_pdo(%;iVisCpkEK>}~z7w~OlXDqFyd zGsJ5(Cfb>OWvmg+xZPuHZ>6q>H`VH94xBYeX{wt1^bFuRXK-w^Y^z zv>Nz4*}#7VA60^h$0zymuqnB2M}AhKW=f>$fa$#r(KdCZoXga?t~pU7P`1KS=%wb$SD5Q^KJLVvNKHc{Os?C@ifvsqIMAY}*-rMO<8Ux!VJjG5 zaj%NtkW^sc?}+r4Z4Hh-5%baCu?8V3HCObV2BaVL-3d;R+J=&^ijKmfR6V6ws>n^B z2qaoiMt%7Bws!Y*o<~QY1$Ium56EapA^mA(U^g$bS%7ORil-Olmp-!S<=JEWhKZ>% z!vyNO1n7-g6?ZHVxD%rv4^H>0hl`==DRm}p1eEGg1JTHDDIK-wLsw^g%}QOvD2=pj zVhw5h3f4FpQjyAakRdL*S7(h>SS}b$4DM#7a69PT$-Fb5F_8+m5wf&0rM2bu!mnui zA$8>RAT47mS#5Vi^Wz{R>1mD*Lo49sQ%No?CEZ>N@M&h8iXW|z-pQ=Z=>hz6YhZAGJh#|X z$ebZJk1nLgcQpdcuWc4U%BQ@p;X=JpQ2O}W>9Sv%Y9#%&yc{_k7TBrIV? zfhq{v>v{SWKz&fM?4-MUj&ScKMJJxL$)uS~+9$5DBCHeQ8&f?IKbTi^j+8pEVV-^& z42o#Do9Kjli4n4#cC)y_LRtbJeI~ynI^QrLnIXm0r6r{YwlvV+r5^e=!0jr!uqD1T zF9JSBGK~h{MOiG4n0BE2B%Q1fR+jo}9w!H`hGAU*x9TJ0V?-EJ(Ig$`!89tp8yW>i zC0oFl2%X4+r&bs;(Rt0m)ujGho-nV>7f}a%s!g|MX^EuTmx-?2PM#9WF`kKoh8W=ONC^vCl3JN1(|Er^v7?}JmE!^Qep)^d`h3rcdB2K)%?07%=zS;)$~Bez#+tj>{#hmx<0hGTW+mqYAT9 zM@~RaUCF03j{2|JY+A=fX|#?vV0>5J5Nr*?zf@O{S|jCnu)K45RRiH&y$<14FZ(`^ zb(syA2>4WAVP7fSSBV}Nwd}k5EqG=k#S~ARCSX;b!8#r)@o{MbP(FH+U%CHEe3(+a zkRqU{V4NiJsc7dN{C%gS!aEKY@helf6#90Z z`$kRvt8k+MNfi~NqYHr(Gv;54+;}VA3dDrAN@Qf^1QgK6w-o-t%{2mBXt0%rL~HYECQh4*uqCh$@N`O?MZ|HTIBbB}C=w8;5(UHI0z81h#> zc0OGGEZ~1;#j`H*pb!J_h48*cyig^-+>joc%Ls5~z7_74?A@q^DVlOaX^Dw|&)bQ; z={eMU46zm7P3xzBmb5qz7RC42K1D&FoSf@!KlgoWJ$!sn?$?eRN^~T1l)nqm?5B>s z4esf$sdtc-$jay_i$yH9O%9fjG`41!dNXDK4Lt>wlt!T6L^|hl2Hq6W;3xoFEk7RP zziPbF>7dXL`ux8CR$7Tz?m}q=?e%C+FzMknV}4)=cjR zskL_jqeib749@QjY}ye&a7y#xd``o23ECjQrc_m~1^Mr??*w3!+4BWA7ei~m14d{T z&%}e)=t#u||CI-*#a4Mnrvr%^jT>~bD8*rHJU|wAzt0uhxdW@ZMT}$X^ThOgmrjxs z$B14v#fCFT$K4aFJyi8A0pB-EHtT?!rl`>lrY(mZz+02^i{h2rkrneb>41;!Wnn*9 zz>1a4{9Ud9c^0SY>^j}G>=lC1ls-yyyhA37z9r-=sderyHtILvhIUXfDt?$p zQvUg)@91&9oHsZQmp%dWg%lk+HkWH+Fj6J(;w&}ZDU0xaf2#|zF)x-g$>4YqnsB$Iqyj{`z;NppX*;_+Ulp`bD?2#8IQ8<3{cspYj2!;)iQ?ig{F{;pRH? zjuEnXs)Q`fQb7Uu(%m(ALsm$lS+8~KPq3KgmzvVr`}yd%*k4eJ2!TqiL+W=BU}wGMbE=Fv#QdINnWjE>f-#^!eJRZF%K<+&h> z#V@!$kLWm<;VJ5EzsS2RUrOPWNaJO=C0<>!Rp+uW`r6A;f_(5)xjZ7j;_T4{BO9fR z>Jg%9GJr8<(*flB%B0GQ0Q{4(0v!jnZ6vxaodU2aD({M35jRj)P6{@_qAcbWQ#(oP z`}(4zu&+i(0F_D#FbhOxxS{kQBzp^2F#;IoEMg?`##*y!FNDu4WZ`%t~qnmL) zPRn_q+^A2*tdp!5ShbD-H=3t-L%%Z$tH^&~XbIe`gkbecgD)TlJb?48X8=A5Nka#s zk-zZY`u%%zu=9fc=y#$&IiC%Dd1w9V*=b>GkYv_DHs*KMzskGskZ(9BvtdY&mxf3* zDW0@b=d}a4)g7`K+oO65obQi3&m2M{6XXaA6v4W3E*LmoVa!tBrEi8+yY3J{-qV zgG17q9REWBWwU)!^P9>U@~=wjBl7LFmS?=Z#U!UP0NoF(>UKwPys8=RM{T!uuI9%l z17F_3@J&E@E75l3~LCmJq0il$7i<51V ze<$Rlar)$VjKL@^fzNx1l9X)4mC&w?*<&=1#zc#N&!H0g3zWxt>~I3WRwrPD?n5a4 z957$$=581*J|e=n+R0%jWv})S3fF+}JICm_R=!YlIQ|^f?6M$jX(34%q-0wZ{-}W6 zQ3&PVOJ1n>|DW!TJ`3`HtBi@<^_|3f>4#5S-GL8Ak4MKU`K=;$U!4ktEg;Krb8~)| zy{B)H*pez!7W9_v#%jp_)EOU|J>F2R<6q$akq3RV_+B&Oy~tZcc2KNZw11g6nP5bQ1767NL}|J)h2sWZifiRI}0qY5tq z^?5QJm*o?Ik8X)_bTmIO%*y>01|&7c=mc$zv zJV|&ayAi{|Y|;S&P~#ogEXw3z>Rl|^7WUzxW*-0g`>((KUw@bRa^Cl*K^eHxQ5Vlu ziOZ@?t0Alv57CXttucNe$-9P6hz7hbLcheD>g6aHhp#hcoRDk*B8i1mjO#w12yDI$g(fv2J-#8*r4|{vb4lRrzP;G`*^!W zl^@;-w3ruXc|VjfKI(x$g}jCiWPeaY0bZP?*={K%s3VS!EuyPRVm6FMQIfChomqgZ zD@#^0>OxDt;sN|o|4#C*KYvcN=QLl5f*aK-M3sC*zvW;27rT1hZYYf~%=9|YC(ahU zZuJhLxk_i)0lC$Run2cJ67wglgMQ!7{UYDPquH6~?jWk}23u649IFC&?e5E9{0L4i z9K-N*i(YCn+|tt=I87E8$XBpi!+9|Gjpm8##FE?Pqz6WwTf8RTjSPR(Bd}^RI2Lsd z#%?C9<6T$GeamD@d{8k5gNvp#s=5;ZjvK>{*loE3y@RO6aArGVDEvt_aNnvj z%d(OE1$qNy(}p2M!XZ7hryKCWRic#h^afxRULBCw68Pv!$mE7*qvTl+*D0?C=*;sV z8SNMM)TwWk*D`++@606(NLppY{#fBJhI%>Qf1p%iqC*4&a4Q2smKxD?g@2{ORI6n9 z5F6qS%vaL$^=eN3F`Y0rG>CHCKxmpyn85LG;|zAxZ2=>YZ1=JU%Ew6b3jtqj=Q1wl zf8sKlZxG)ZG0|cDYS*byxN^DQTVV`~#XM~EIxZOF2a=d3lz0do2n}(PgAMpt1iVBm z$|}oATIHQMRbmw{O8(a&*BnkrbQJLWc62x%jAUv%Wm7Swj_@}jOB{uN+BL?{iV?j0 zmo>H=f%0!^x~g;v@)*B_y)SMnJRP8f!f%-|zz^BcUZdq?TKZ}_OsIJ6UhtFpA);1io+JPHom<0NX#!gwpz zIw=~T+9k52}Dgn%~E-AEPGUZQ%EX`6jb~+B} zqb%baIs8&Uz|~oW;~U9EJGl;K0X_%2;}%2yXNvy-Jvh!6#-Qlvn&YjonhXJ;S=|$R ziyc`S3Gjt_P9f=O{bSvql+gbyS`>ia>P-Vuh_j=c@<)9dCz$N#Wxd_-zvfE`E`JvN zC_G{v^s*(~8#Q^Y?gQ!XayI6^$a!?Zh=+eB2o1*@ z@Xv8HqfqtZXHF4WT?npB zSrLH0=+9$6SWM8lV1E9VT?edAh5VJRAI2v&${PxKoIN=|m@riFXDt*k=XZ)}$7`%o zg2BZqxfJl_b}`2fr2It!(qHUzsTP#hc2o!HSkd{<0>a$a%B?nRkywrbK1Zwki71I{ zWyptM=z-qqT0l*GKXE05do{_y$@%`jh})Gy@t-2ykAA#MFg7Z;Rp=dk%~k2@j4Yp3C|sNUYG^km@Uq(7Fs}W7HFA}h zB2Yd?`n~an@!Odk(f1l+aD@*(0i{@6BJn>IJEY%)oD02$psnSgO`t$J!*)< zSVczxpQBa83vp=VdnHg-p>G*4M8(AKv=4FT?X*xntJG(}&R>NeiW zIpF@)sbd$;#kq{N>|N)Sh3TXI*e|vaCS5*sz~Ex5kBq?WvRzR3vxTa0^O2_L`y0;J zZJisCaGER=H3H=2jMwQ6j>GDl$P%(?Y1tQJqW#ujfNXju7Tpc!32~QRpQgu6k_pU!5X34zm z=N0pnbY#VJH9%`k@sfER;C6+ySJ%5yYxn?J=Aq+aCGQ)#$7x*wH_X?>dOJmBiI8`v z`Ep@LM)P<9Qt%GgJIjf;b#B1#IuCGeq=U3qPTQhnIjU@rc+IeP7htVn2jo@6sQwhkb>lT-zB=HYrGecY;5IW}O$0WfAI`Uu-WeS!*Kzx+wD0N0Y?hr3K>Bqt>A>g);ANH11BP1(+eYOxCEG&Uxr}@o z0a~)$;!d4zN8b|iYN>I}SkIA%Ct%$2T%pq4QjwZ1ffr|~am{=}23IuX10KN2d7kS) zTq`;X>UHC_j*FF|$^u+H^N-UHh;tRExUF*oUe)em?puS8D)fbdhAk)yAZfOb^}~!j zPY6-#Gy&L{MTH~KA-3y&-+_+yMcmjmgY*T_t`dPOx1CYv7SBXq|8J4jw6oSVbw<~1 z30cgzgib2_u4#QDq~o4$(M#PamYJmRCY#(}!G5xsR)$!WRqezpB@K zxj&9(g?VC@M1SSKvYW5l&57eBdi6R{!7IE@4_P%Bd`!}x>Iin@A_U5oJMfPF$B59) z5!wl{C2)0nB0Xk8=|Fn4`*$7aisNuBo#sTAD&?IM&F)TvK@m?#+)6=m&8!eZKXYg% zuHynOHuAb3)_^=Z(!e{gnReDH*(|(h*?%b4iRroJOF1S|Ej&n00J>x1ux}unCJ@-F zhN9fqB){dug~S#+KsQDm$0&}p)=3Y?t)~c!l{x8Q8{ZoR@73=ti$-QE|Vg7_Os>n4(4uZ#)5V)xHzcWH#!IjsmdNR0({vk_@5J zMa*km+qgqoBIH_coD9$ymclYff@v4e0_2++8`3X0?G%IWTSZ4< zyI1Vle=Kg<9n?_He8x+%8*kU1DsL$bwORsKzfpYu)zA1YaN}oz@2^dt^{fo`b*J|} z6K}V8v~j8w;3di_9zbA~?$J~^Da-8_oZ@E*66SB!xCF)h9(S!%;v|a-A7WJSLn#t> zy~M>d>Bm#3m-ESG(YU8)R5t)_wPAE*y1`P_*+e*f}O@G#P;M!BMFrB|3}86@d3fzX(pQimhtP zq7p20IbZq1h{Sio2qa7L(HnIhE=!t{r4GuBv02!y2c|fvaW8R5_GTx1b2vzq*w%Z_04jxtl{MC=0Qx6=r zfP9r2jQ6|Rb|pH}-F_at-BJY6)D^_=Nm_UL#&`tP2U&K}v|%#XUv&kxj>!d!6U6vr z@WZEK!|+Dg`2hZ;q~qe&Hh%cVplGN5x#qES$j~WMpGl`Q02A;zM@QAh zbbqE=3N}FR#(hObsq|?)#XEr(^WrSmM|YGM76JbvvMfc5myHj6?0~rS(-8Iq{;VBz zShJ%+1;O~N4DUi1KC3cTM#xgD;W#z2q~Ssjh^^Cq$6a903ST#r2}ltqKe56>N+@IZk%xg-spS9Z~~Ai9=3xH+>+z4tzx2X zTRh#Omsx@Jc63E_P&Lwz*ua1nF6GM(V0G!Mi3BJ}6ABU$=V z2-08NFeFAmvtA{H*6OY@forsX7#^~sLw{T_2>Id+m8)N8>TX{t3 ztrgG2wi+>hCrSxgBd{q^R!_heij}~Nv#haL5-sJcEAd{v+%@F7h>8-$Q5!Z+adScC z4Zuf1mSzKdseYchPG@ja;(Y~`+{zH&czv%#$LCGV0=79E(GCGOTBppIboxZ9X1JZ? zy~_T?&|ceT%{UA`cj^dmE2Q>t`G7(raQ$caaMIgj{WAYX7**2=Kq`UV(p$Bh@n@gG zjZ>VZCBU@+NQuS>`5;NQEx!LrPkVV7f_u)^j9)RHFr|H)K4IE10UvjGY>Bx)hMZX; zaTnWb*D7&1F|K#U$wYRG74^Zdb)w_Jj9o8HM0eZZhie8!r$AEL=D1@_q^1CT_Enj? z%4ibhbb;LO)I(+gCXLedbN*b9kHGqp=Yh~EVK7dWz(@ar+4wkfd0PVo;MH51CxaeB ze}OzhZKqr5zvFYRXY>^v1-wR8P0kG);G1PlW`lGh(UrG!;@Rdsp7NzUrqPms^3UJc4Gfhktv@sDXZx)NZg!%M z^B+h7cs&$$An?KK5%61$vvG{YtUZ{2OsArMvKhQ%~by8X*}(Fh8CS67b)Cn_=kS7lL8hPo$){wrrpIz46q z)=G@`WtY7oU{IY0vZxrMDLsFZj=V#sbiFAaL59#0xcVC>1si z2yh$ol`wvysD>SoM@L!_mDE*&DOV;wSRA!Z3vU?P<-J+4{D%5W)-p$>d_u`aIguTb zi8|9W0xw}wfD0E=VAo4r!%W?khInaFrpmGkxLFt9u!BU$u$Ny*!3Ju$;-zCxK zd=%b{Bqpx3Z|*#7+Mch=jq~_SxY3Rv$4K?Q5X5jC6HWzB7K2@$pWiX7!w@A>i5FWn0Cy z3@`#MMbS~%j^)wOUJ-|Nad zVfmvFTl7FVk!Af7rsYR0XW6GmVk?Y`P}+4RwFF+AJ=mhgxt)n4AZdS5$jK5}yC2LUkfdfciW9I~v z7YDS6-^eF$nGRNn?>{N|q0)uw8>a!dc1xu0ylIHHLgpQq-!(elpADCHC>t-3f-yFn zE_sa!__)J6pid>A$^exw(+NYv@hf-eA1@7BMJj<8XR&Db*zjDz&JU)pi)RDBml?ZW z-s7J5ee>yR(ih2vC|s$#6!2SQSt@?@bf%TK4#ry0Ro@ebT6jOYjOJ(M4Y*kvUR#12 zt~4G6d|XG!Z)Jj9B_Snlcc_#8$0(+36yN{K&z7V@KP-xlLQPo&yhfHrP zq^{NU&iLWR^31It4ZSi2f^+z+B` z#;^!@i3=rGaX`pYtDz`G?D4O-1Mk~baRDDH#ZAX~%;vv~%BL*qP+9_?_c~5xI>f)g z%dcEIRm8E;=-33@9gO+EQsS@(>9D3o_IFo5$0VnMzsu45zz>1po375(&T??VXqJ|a zz6GAPP|B~0o!?5zs42kr(!CWs0!OyMXj%x_Y%i&e!nZ|^n)L%XH}*OnAbfZJAC(hZ zA%Qs+Hb-L_Z>@X9umiZ2A?}xUOB1$9dKM@YPO#D^pG@C9+cG$YVbQ{S@iY9}SH-C7)(bTR6< zntf8PGw+&!kIIRb65J1CZk6bp@@o9^M{|41e3^LXJ*FpEb&6qw zeRW7<9mc$7hTN*JM7=lZ0J~eEu;kf9Uc39e3?e{F(xk z{|}w`Q^cd3-~+PM6*(!qWEo+}_4gHP2)J2VT>V3W&oPSrh0}>s)L1)DLS*eg* z2f4A)w$r>a~RX(a>3h*Z}3-sx|SQo3qsD!SQ=y`{)sz zoL^@Ah~-sGqU6U$yh|nU;w%;oJ4K8@y(_tGAX_QMBPhh9fX^|@s(YhiQgBp??_2!= zj*i0IDH=$b-Z|~$&@zvX_R2j@>&k2(WzL{0`!wR^)6~xj1T%q9c14|-I+Yz7Zz+D1 z&Ikg09f@+I$w?0vwHouc`jsV(7bcJ%SR(}^*)wMybY3;}CC|Pdd)0XpUW3_khpTLEfoDigvQtVRivS zh+5$Yoepv%GN5t8J082~$dR2*Gid z?+N|v(9C>6RE!%)A^pt0K=c{|5Dv2=bnM2rnEGGT=zL$Y<)?@%)VKyTu>nJ;k7=SFVppU!RybA5S~|PTMG~e7c#e_7rV8`M90`s z!q&?au|v;!{w)UmM{`eqNnbBFD#$RjgsR^#clbEfD;2dEeBa3KKU?TFIN@(XZ}Aea z9i3W`A>K9avfjXGL4{8&s?67*JM8lk@CdO;QX;S+%uXIbOuop7I7V`taz z9B)xYGt6DXp(SuN(%Zcqw46GE!yB`FmH^Ne($_>-YoIEtp0HbvxO46TLB& zuHWLuTi)Gucj@r3tPn*}*se+bOPjKzu!a7%@V+bkTN-61yBN}Fk^6V)fD4OmZr^A{ z03jZ>~i(in`AdiRRKR>Q|>C zmJj3eowP4X?hlf8J>XS8r|gSP*f8GSI9-zh@akKNvbK+|xqof@)}apzE`F#hCFkH) zzcliUr(=23OQ-&Zfb->C;i8T+ZaTW_haHeFv?G4yjGz-Du=>N)3)oN>_xp?v_{?73 z`RNWD>?uc`pjZbTL$O=ukpo7Z8}Nk~qWU}-&P?1;dQ;IAt>ea$)d6@B2K1WUj(8?Q z7WDw!DxR5qpSZpPxxhS0F|9KJSLJp$8=~W3TS=oJf2OEb-v3mdYWcyrz_N;HQbT%Xc3S8$4X>eYetz!rc0SYX$SD((QT z%B^C^Xz~9(TmX{mSW6n{>_3k+w;VMZWv3HqCpDj-#MWlPBmk?nklZ89Y!-$&0rnhS4Mq~>*ja@kSw0r z?vP@_V6s~_43y3FjsWK#qGiH-aH-^@V2MUHuNnDbWF1Gv)&kVKu@*Nfx>vj-Q{NJD z^*gg9s`X4MXmx!hQcK{s zJ$Yy1qm|o8>J<;U6b`6ey)xo|E6$}oSnE< z{Dq3IF=GB0MQTirw*b1IH}NgvYDe;(iT^K^YdnBYHGM+vcRnC40zR&F<6H-E{=tHz zrSqBr&R6!3m#B)ZLM2kW8nL~Z6IB=fN0xVDK6*SKxy7A2hG>ZOLE|m{RzUgWf0+}v ziaW{opVhljJvlOAn5C5`m(?5Ug^s#-<=c+BF7hsK=u>cBUa{nL33*&{bYwNWGhV4O z3#`u%cyvh1;_k9XCneh=UbE|f&54qSsdusDbv=RrZ;M034dV$T@NtI>1LW2^lOcsx zM`UqS&2H3?!m2V({UC>rEN>=nSq{iSeO)Lfln!LU*PPurbTJF-|QZFBahAj*@)K9ul2u z*qIH|5};in)H>3BTI{}|y))vlEnn;C!R&a3?@O2kQl?q;o5-cy)&chM=;p2;b^y29 zP)0}Qc~+-6AO|<=u49k`x@B-)#Mu!i<$%=niD~Zf7Fz-z{YFN!P6TC%vZypB`_a4_ z=OKu@CL{#bDAYNbgKv&nVK5ouPOktU)m_m6!Na0HLT505al@D}wkE@^X<*Y1oLZ$K z<_QP0Aqz&02}qEvsu=RSBvwL5k8QnvrR1aVik|6gID`Eoaxd-JmPK8=%Gvyhyt zWJ#mtK+cTmHh`}*p3KFk*j8hR9oD*CA)xL)w)C0crX=~YU#}n;MR;{O1Y6JN)&up z=rZWILe}765k5|V*?f1t8tGs{6Ib3A`-u1Zno0VaAyJKcN>Zy^l+LCl*oCrYnq9kh z?-du}bXbo_pMt=xPpvZhv=(@Vyf#0UN*I?CN8x*>v?be5?!8)x8{Px>DnCY|HPW*6 zaIw^SE?S?A{q@XR^RZK4M@z6-_P5moRTzvN;oU;-nvL~~YBjrp`E!l#Rbxuajv(pn zepwa1Sv@dRm)L3OBm)`COxn4g=8tyrpZai8hX$k>zyY>DQ9;;e^8OIo7?`PN!vIIIw(l9L6TTNJjIF z5wDR)Ow>wDGN##LO@%c8VlN!%;u*~tjjiQ9Ba$C4kz)8+3>ko04!E|Mn`9HgUWI;$ zLP5>&r@VI_%?Ok)QQ{M$1*-;!WU>tqaC4&o#H}LC&Q6hoouw7n4%p!QMRFBBEz*nB z#c`+}9qr0#wpxB56J!l=ag&TKIGEw0jADL~3TaR!1EsgL&d?wyB|K`~Z zNY_{#atm;NyjNmr!D+n&J!3JC?tx;3g64k;n+0M7FXh;>C$h z{wd1bHu4?cHY;%c#s8#FWy!J$pLiZjFfV4L@J1`Jn$qhks*WyvMx3m~kLK4&a7??U zhBkVjY%z75F`NGs3>wM3lb?Q8+LU{(?^*nGYIeccn%n>_zLBRUV{RMqqZ%BUNHDcx ze-VlrDVVaj=^BEA*(+0oEEa1ex!EXLtEwIwln?su7$o9PO+;m4Gs1>5_x6}+0u5-(w|2Md^+$P}NOFpvF#Nc_#C^V1d~y;@97YcGfbY?Xov zhf&lMMpb%>DWb=%in%?9JbLZLu?gICal$AqY%d0I;aA&d7Oe^m7A2^*XGgL09`ZF% zIz>hMb@p531^iyjt42rD#c1AsGS`an zX@Q}mVjqmg*~t58iosO;XjZhJj%Y=>g#l+%Dvx$pl*cz-bW@mAFUBk2XJY!qdpCXS(5#{@``Vmz_ zKS23*WVg}Dv7!vceUx068!8@&sj6SF>C6${6KSX<;L63t%CZjw_gX%RxVZu-W30xA z;usxSU(ntPBEbK_^<#B)`FfK;`%Uox0k3>JjK762DU_VoiRBHopQx@|O6CW2# zMGOX9RXUJQq9ZZqJ9Q#7eyUPo)#BK-TNHzPMDrW074u?1t|A?u$_mF0Vl4UCSmBh| zoJZA`ow`{toJ?#i|0NrstiqpQ0mGTO(>`=yo7_)!(S#AjkDA-|6V^Ow%N3s$0$f>! z(UCgJdy?_*XbbydU&20bh(Rp6@t@NW$5Uo8bUHPg?0`bz)`IneA&Mts*9BWon!3FgD8;H{kPjAWDG;U(cl|OLVik zPDUS98G4BUhc{wnS<6)q3W;`Rn9*GNx$ITVh*|g7ORIJk@ycf5N*Tr~~BD z%;|GKLsIsGIir-IDLB7T;-6JqY*rSk3_4KJ7Lelg9RtSibR-&yI~G-4I`KZh#w;p) z8p)fM>n)=jfX@xm?`HJJjlqwOLn_;~luOpoosCxnd@p%t9T*%R{pmRDoAjrs1m>y~ z|1Ti-Lh6;sLp&>{+6!={&4ARaL}$lReq*etE91|^(8o;_AOmw9DA0|F`inlWw zQn3vx7@sPM%CZ1=Ui-oDjTyXXr2QS~FHq%IoBBpc-aVpfA9vZ|6S#AjDuz;l{)(XB zim2lRFZPbEO1&dAeyYeeq9_lH&6|vKPo(BuXePM|fPbt-idk-)bud>_9d=$RxGU+E zJTYXTJk^$dfKP5y{Ma+Q=ljSNuiJd;xB<9#oiExSp50fOaYU*K^Jk_0!BSTo9B+aw zTVb|PNa34aA1~LIBT*{+^h_N3I3~n?2fWo2_)gg|>;ruAJ_F{_oM;npw{N?)sSD#z zm=%7GbXxO*Y3E(Cf zuNU@-0Ddg3C<`E2w`ak;WsOccR7ABT+X=AA@b#9Y6AZvt-Q%qk{bW(TMWS96tn-Ml z*;rWA;RNv6oE{e|bnGerkAV4drt@qX6CX#DBBE(N0o;_uJc8p^H^``>H&_%p>`0CV zIug^>#}&Eag?`#D)s_9I>;U{qv!mN7-VSWLDC7pX>}~wm6Y|ynhqIf2_oOXUz>Pi? z?)Og@?-5f9Tc+1`Xm3rc#+aHHPU+cS$m3=VEnXu)+%hp~>5Rat2}!lhx)1QlZv311 z)Ok7vzC?5wnw2^k!=CLgFVy9xcK~k6V!k38Wb8x-meh+4&`V)HfjP|A9Jj+at6t%YM3=&MPmJ@pu6=mF?n7(Oz)$8|@ET<+S(nsT>Z(6IoQVVFCWt zhJ2DL%!VwBIbjwc|y zJ<|L=y4%l&eB6mnT8w#AWyNv*Q%4eKh*1x)F2B!o0s>^|w@uuXO{1HuLjYFw18i*n zK50u)rB_ej`mrM2O*fHr)`9Bw*D(lwNxZa4%(wXkW8}Z=2;d+)Z6Mq*=8OurZ5jJOR0h zXZIP<`U;fqL^^kqVo~fPJ8b;e=-EB{17nB4?)86y?nlr9_-Bm}LyNS90m+ogCNXDm z6t+sq3PpgAh@YA|1o@Wz2>Q!5Znf6=avW42uUL=MvETtiBJFOW-!avR;lNWdI8sHI zMV&!ev}Z@(IU$8}Uq?*=`2TC}x5gNhvZJmP3=g9pacPlcbK$K@^NHwai&V13?8v-; zpMWh5uf)@_(~0j8KTX;B$>N26)M)q0I^i91g^b5u2dyT93(ovVf6qhUUSlfR;>7G| zcf{i;kGQlpa!M@>c}&YCVrYyPot$sjUPDZZeHi7t_Q{43m%A6>%aQbipq8=mkqT4G z->IMX9s9bZPKk!l2w7T?io#p2bzW`Q(EyxV#7@hJ1^D6ljKRWj~3{geHH%{>13&7o%%9=)&hhx;98z(d3WeIU&J1in<4C}7 zwslBng33PyV-<%3R3UB{oyIFF=o_Fd$0z6;D~7~r)m`i-rq@-#-Ck#@NVB6VezeER z!6|hF_}J7xf)K-7QUI>1ucK7gv`tiyP5@R76$i7}p$+;;)sRQzBfws^RCLHNGy-qV zVqy1ptqvLDbB|R+#-I78Kz-X~D6!sk@xCIDNUE}=_2cW~%MEo#$7x0JW9=Cvt?DIK zvco*}CY1b1A79|2!BN-^e5;CwmL8!R?Z)KLgfdoTsVMp53kRJq*J+;H?~i|_W0ElX zu~uCvMCGK2Y4}mg_?h3BF*e3joion*A6`EG1yD-^1QY-O00;oDyl_0tAwY_A76Aap z-~#{-0001NZ+2;Jb1!ypV=i=fbX=Wlmb1DMMgM0a8JA3zL9vh=mFNyV`cUVTjFYv@ z*}Ehm9u0o=cl-YHAOE}_=^y{JD=(yrXt@@1CXdU~KhhOfS8_hm^75?G>ZHoFT-T|) z)-l~&OlOmATw^E_#Y0ceHio0?PfjCa6OtEXAJ9$rsd+MSwgIJ2xei2*GUYZ^)`TQisA zJp$#V%pZg;LHyXk5#U}~E631}l#}|SlLG0Fz^BGUFiZq9@*StgM#>+mOpEa&*SS-p zr)7LZG9G?;^c0NOYS9j-m8#aWZfCnE1Kgg`w(cIVqflQliabHsk8I8eIbt?2{G}oI7Hp?H^J3DErly{@|I!s+%v0 z5F{G2{^+EH;G})K&0@_2uU*>sh=m1x78kyqkgNyuKMuc+l1uZ^|4M!bxF{|Qx0b6)h)?Bq zbhOd-SmlTh2e%qsg^aZi8v&J&y9bj|4IBv#d#>4r_Agbr3(g%CH~v-fQ0}tz|E&yV z=j9T1hLy>|7EVspfCT%bg^=92keJwvvxFIRFr(m89aSY{PW7L0aPzI={lKmEQH+IS zmv6P{cqb*^)qHsmrV5D(APr-9?6(#M#g+?Ny`~B z^dmBj!+yEG{yXhg_M8gvY#nv0=@=i$i@Bdy*s`7FFt_&h9GhPKxAEzCRtC*KaWy?t zO?FQH%16pc%|6^8VJ4U75R9-xU>>mabG-{@&Kj@l`mJJt;6C|#=0dOH|`E+^%$6i6biRZ zYc;IlxJ&!JvZ{OYrDiqKR6@9VSUKr`vlaC*a=M^++Cy=lm9u84v_sn&5*cEy$g>~T$k>=vD z`=a8>VS7=t$#S}RS+Ax0qT-p+)459bp_Qxki^GY+2U*c8eT)A}-Q#+{_)2nx`jX_l zkoQNs;F~GeBR!H0?QToY<8;|olC$qj6_C3fQckKlJRS*A^M}=F#OTdnng_6_UKG|x zAXhZxMc+ngrR1qyX|(~ZI*y%rwH^lT=Y_?`*KANxN84JtDB78OsubJWaN})Mux#zH zTg;8qXkUoo`JYrVAMKX*Qxgh3FFgI>Y}Fdr#nIKVrrz5lx#^=j^P-*_Pa6eKzQn9? zXVT31QqLdH;!E0)6?rmMNOR0@)^9bs3YqZ+japYq>;4M;akZ%@q&~>*iCr0}{l&eXG&u zaAWe!QrPs9QwhN(i~DC!hy_`1nv4HzF{l}HI1KT*Dw}#dhi6sf%Csz~+tc%qE8iP` z`4eKWR!v=U1-!BIsiNRw9SPBy=FraM6?Ci7m#=meGS`*j*Ys`W{P;a0R=?fu;zz$d zIvjYdpWIxsWobP@$06#{5UY+2#}Gf(-*htV!r5v9YlH)4RHkDmQDh9Q zOHzZZ$V01TH1rh%%$O=<=D?vxcm63;0_B9@dZQVD)kq9^B(o%~+sC^a3hka*>j2lI z9R}l`Q`l4#>2o{JzMXa1*w_B!dDxOfY1;+gO)WV-VS2&v8xtZ-4e~Ii85Q6gKeB%0 zZn9|*yf1Va+i935`||lp`z}su(ID!DeROnE*eeJd4xB@d+>biXnJ=v_T2u|XGHp0} z9%_(wfNVbMgbD>0KF!CyxBSTM2pyZI(eJu+&qxFwiSWjh|noY$DTkCQpEzCsZWilEJ=u8!|s2L3?%It&z zycI*T?eu5n96hTIN;yH~k!=G@3izCPPe^`+K`nuWLqjz*|EYu;85lY#Q;fp?QNa!KP`Wjgi-#r^HkU7hX? zUmw%zq92iIyl=k?`&83DQ=H7inZk^!LVm`g{YWKH&JY8&6our$4vfPIX#PV|3v0); z(^(Pc9?gxfx^>bpz(!uw`KvvECu6Eg2zC`_7l$wWWVzpZxB8?g`a%m!w;txMX=sNm zDm=SWjlRXp=k4r}j5l=^MQLyS2>WYII%UMhdTy9$(;aB_1lgStOMa)JUn*a2xATO| zqSgN?zQ_G23j<0~%DaiCIyD;qec%K5?RWc73H`L?k-z+OD{*>S&5cBJKXwPYj>UWa zlND>zPOu#|i3zcQ!1Tz=AN&fjzrQEu9Gif{LQJ<_6{9Wj`^ z$EKO)AaMfCKRdefE>wxgP1q%EAbH&yqA6{i$)X|X~;V*{iVk;%r)U(kW&{lji zdMj>AmRW6@>22~+oRsikQ~&ffx%KY9S38~WqPTsi|3RCLqLW5xc$IxA}`Ol?p$F@+!d?OE?!fE`Xg_Lw) zLK@bDnnEHC;D>W6-zJCF5f+DVdyG~IvObxywU+CcR0)fl?{;G`rTgq0-F3;_oAB|i z^5u3rw>^tiS!`P6HvMvrXJH(F7xq>CC<}j{{Z{#M`}QrrQD)Og37H#hY1uxaa;tqb z*IVaW4;&f&-FaSam+zvS-xV&7yXJ&Z-BbRg5~7nb#X`7h*xbl};$7SA>^b_-${Xn} zFjdb>8a}Hm$HaUkHyq|wgeB^g2rza1N^nw0@mKUeC19e7}T=gStujyjH z9_fL|sgjFh*=m-gu50r=7Jl~`-Y=(m?;{WGWKVp{91d%p|DXka^nf{!aX6PG8i+C{ z=Y~i+pYl;YvTf}Rm19W-rb6_sB!rv*T9@Wo5s6t8J=f3ijTV2i<+A2d(xUBF&b%JV z6vBX9SCG$7A$)H&D}y1=-l`7YO7>-e2_lcvsl{{MhQpLu2?KIn!I4Fc)|Q@@^Y-zj zdHE_Zer&t4d1@+OMO>mUUw968Uy|ff+HGpLhq4!k?6zzv_m7}S#q)U-$JUBEvl>uW zN9#Ei$k77|F~sPN<9x@eFRciG=C;QXH&f4}3Sb)W^55}WoZj(~U?{Y%AIcOzmT$LN zOv!bn4d7&|kkPBD2Mk>DQz142Dj~5(*4{uosgg#~fCP<<73+%jw(@zCHXy%D9|$qv zY!|H6D~B)Ikw02Q-SD#l${7-O-`I{GK$(}Vz4SJt7M+wSM&ZBdyj8xuoOhAyisG3U z{fJHD)iO2KD@FU4?Wv-$$q~rQM>tJrIioOVQTwold-z9}i-vV=(JFydm-C||Ol8X5 zi$jAMX}ML}0PqIxHkI4wx+5>nEIFx5&yVydQ$Lg`cFE>T+Etu7g zAsEqm)$=20>S-C1Dq);HwAC-QaPBeHDDQWypC8BIk0pvPlUt1%8~EiH(Z}^zUL{p= zVc+2{3D?|h9+c%MrY&L@a;|5d<%J3L*=gWU{~t_H4Dr0qvLmlnOO6z(Lb$!Dxo&H<+p2l8i6h4+m!6ZW8;@r^c5~f1>1|S9~PC~5zi%11f36v9p z6@Qa2c`#K-?}C`)rOX;o3BfR!kwi3i^*pa|!Aj4gFpJs<^8s5fN??lDwX#fN0IaHc zuTO#FcVgfCl>SG3u`6=hJzX)~c|B4cSL(IkV*N`+lcPuK1-zHJ*f_+$f^%Gl@%YCh zU6043Xh6to70BtSh=MfFOte-Vhi$J6I}ruVi!aM|m~%_-TxnWb58?faVo%liLOfbk zhzijI2Ciw}TczTQ4rs0`Xv|I3Hfq78gm#{PN}Tpt(9Y<`{BEKMl&dm(K!swCToe1t z=^1lBpFE|jFKK8g>b9m8tU3bbL>y?_d`Ww9WY1g>D#Quo=MyYhoxL*6F%TU8=iUEG z;uF36NnU^4RFIu%4xYx6O3JSUtBX!b$Q)FqW6UFaE~zgHVcBX{3p<_Sp@`>EK=i*j zv2PnhV?iV#Y=A06P3tzTQwGploiqyDQS6A*(-I224q8}GqF?IG`=hl0%4fsnQBzF; zb1oi&NX%6y4f1IJnT(dKLXN=5kR6|DpoTn|JULYnJbi3gRe%_fZ42n6OtBCSogZwd zaU$vqp+fY4fxe!zwxMjnpHP^xWVO3EKgvdA)gEAp{P&?_lAD-n(;x zP@id;*4p?;v~8Lsw48up%$jnYRGEfjq8db*D5CR)&<@Nt3@Ca!_LK$OwEtyJQ4wh= zYP2q(4&q14V9#h6+jbq=VU?+7AJM5}ayh3NC8t7ReJq>0bi7WG22rLEC17L?VC&E^ zz`P{U+k~op(kOKutx|bs(q@1A1rY)~Kvb`XcX#nztP$5PD)4>ePbp=sfcc;S;jR!h-Z46(Q%~L%# zgffNbMiM@=lhx4;Q}ncKyeS7dMk={gnD&552&RCYV9|gCpIJ*dPiMIEcoZdAO1|>9 zAXEUK-|79QFR6=TOS^;JXKm_;%lq`ff61R|^m-&;mW`=K`dvb`f*psM zv+Wv)lKtWf-ec2_Xqx|=?pA}BHa3MyOrUs2Ofm3>|3Q`eQ}JJNxR$g#dKS?NYi*yz z2u2nKhbEcAu90yJSeA{cr}K&MkuSF`|ERNibPq%PrvFT`WfUb)K2s?HtuD$smy&W< z=wKQVSI4uhs|uuRU`rJ(J?od~ty~pLLR94NROFg^KqaJ{Ar@pE{haawv$75|Do_sb z4>_)_DiBxl+Vie5#UO{QI)!~`KXTDYf%pVlDo@}?0}?b6I|XTd$^pYO3ZxJ=0_MzB z0$ZZCGNE-!|A>WQgD?Zz6TpsvXzm>LNpJMOpW+ka*P-Ac6iK@}pZ#>K9fwQF={BsL zl_|tCU?f%qWlH~uO}k}G8(SFnxfH~;RT~MaOaZbQxoX!sSj;tdtzi2NXb-^%n1RgG zv(+`A62j48Mh)`tVhaO-j-T{f^@OP?ZlArSiqX}VWn*few2{P#pAy2fg9xp9AdAgKb z9s424TzqeHb88rQOASQDM z+HWA05S0*253`HIm-Ny=b#AGipcbI$raNrz`-tcH(fD0sm{0B6UXGs5Kq?_BAs7iW zu#Js*~mS zZ3t2MD2LH^tpmkaa11n#I9v6Wzf^}g|8&>lCpV|+W3roF@hIxqJbJ4a#20+44ADw- zz-M=!o){1ujqr2+J;z6b){q(Mqk3UV!aI(?1!t;mwfr#Rhw;2S&8m(5cUOIj6To@)dA z{p^-@*Re4rogXpUyQD>__-B1o@3iH}V-gMgBO=pUb=%rIu%@A*JuhK4IeYiimls;& zM=^X^Hcv&Mk=q&Yp+Z!m2X3(uR?d)^{3n$kg|s6rlP{HzazlTMfB8MdFWQnG9?OfF z_SQNzo}%yK49#6=S|?SeSx67spgem{-RSF)x_oIlzY3#oDR-4{zHSvBMu=e?1&pZQc(N3FWY-iA*U6bG|w2cWbaB7~&}zNZBIK zryZJ)?h>{BT%n#@J+Awh|H*{%^BN9_P5ZowY$3PC%Hz!-AR`+Z0Q^ejDQ9u5OHlMn z{^2OgBYoD-fkI;-cdGm}fzB({wSW)LID|wV zCx|jkmdRok!-3sqm4sTrbBdg`AUT^LuBKJHOop&5kZHkgtICO^3o>gjnG$foF>jv@ z-J@5MM_5A?%3S+>1&E>Hafhny@^xWvXASP;`Kt8GYuMdV;1weHCN}GKD zUpFW_k8PYyOfHvok|1$8M_v&Z*{w$II1`+BUBGRGC5ZX?_J>Xd-ohHk%s7^s&Is%X?H7XqDZ7D6 zS>~5n_4;yf=v!&u3$~F11A+0Kkz^swIaUdKGKv7A8$MJ!HWQmFx|^Gea_K7 z`wu8NRCZFL2^Xph-_VJ~T6*j&3>O5v4YFln=Z$`4x%wP?9^XuSE~4s9Rz&-I8>kge zCk8zHQAKY>Xeq}Cgb|4nRH3Wcn0IeDMK}$=R*T7ANuuh89Mx7r|v!2D_4EUBLM?f~(6lD2l4j_^?wv|Ig^Z5PjXCt`P$$QF(>D5{$mV4Ks zTG=)y`i@X3ZCc30co7bnaq!I3z_`Ff};Hgke@llo08xagO;5_s;ZGtAtvx#B1?ciQ0#y zgANs;QR<7Zi{L}s*}rlfG`hpB-ifw!GMNEn=wnVq(k;p{8>EHPW| z@Mb|bH-EpI*#BVz((($LaG13vi^@;%4Op>-D{FkTcPn$WJG)_B`kI z$!Mn%aOAS759M2MYyy?2b?zuDMM;2+*tIO+-y>LGhNXoxis!JYPn8wUbQ9b83(BBj501r@lc)bU|t{f zTP6(FU)NuF5NA?4&4heaBNd3#=)icOseCT@OWVmQBJ|sSi;A%|jjt{`%o_*#-VvVe z!tqrCJi-5On^vr-k4ecT|6V9GXri(D0DrL8uSPD*+eqj;7;~jj0Ka`>Aq}gvzpT3g zYARtcw7yV>KIt{IU!RKRR-xfmO2nSfeO*H0kjxjDb{z19P!ko!CEqbV6|& z^9W$38U1*GR7-s0{%1&2Kos#h%vK*GqwWt_j222lj!J-W76Xly_6^sUS3CXEuBFK? zN^)?4szG+SrK^Q&~xfA1`lBV5Y$CqVxx%0Nga zhvMWwyBFLERRfG$F|33E_b8UUDKsqD^@jE0DKWkXV6LHqsX)qo5SN;l4pJ+AI09Pb zCUB#N*!(cGQITPd@QmdN5ZtBHt+~46 zrV@)h69QD*&RKdwP}A1aCOKs}NcU1e$Cg}QdK0mn!VF|Uu%a(b!V7?Y!FZQ_!92)3 zDL1Y%u$ffKjYW|ft+1VS(BT-bzU%+ac!;x%88V;-v+|~dONS{^=PzE!Ze*nV%|d*~ zXi7n>43fyIy%_k|=Fdw@Zo!oQU&Kmh%(dj^I_JVYAKxlW@E+yfysy2h_5r(xNc@#4 za3velLZq{ z;38lW>S{c%_7Q}7@6?Q0!8rmobH8PV<|9JZgOE?Gi`6FH8(v3daL-7i1AiP{-iJ!* z|Da;INMU|CxK%Qgsk*zewo`|3tL3Wpx~}C?@p(V>7aiZ~%AZ(x*dvu~B|$S(>E4LX z#leo?A+eg1=CTyZdP*T`VRMxufTbM~tEGvw8`HX9jfh^EJgl`n@-5s>ew9GV|EJDD zHXau@c8<5m8nCtf$Dhm&UWP|tE?*NKQ(RZo)hiD=>bAs-zY#_sv7!wi!asFUtpOzk z7Gw>M13I@uQ_0e9vnA(ansy3k3S}YC;+uy7Z z1BJhu!DQu(L<9D#z% zWIh=Q&LOx+KY$+RTvyHfL0wILf zZ=XSH#+wVufqTg1)+dba!a}zMoA^qItVmsJy*@xvKmVH!RvvDL_Mh4#`>ink9{OD! zOk=;h%imPKIZPA+M=%X%6t>|h<p2hcyTgih0JMTg+}LId+@j zDUc`KF!7(}B;#{9gRu%gqM2(}X5~hNs4$Afq@!3oIzZ%Lwl5cQZS$WQ8HcIhdeOk< zwqkyXbRSS9#|>l!zIy&>q9o}1pyng2kFXM_*eBa25`EwIT_m*k$L^Owj{`LtM(Iz^ z8F*o8b9*#d=;HeVYYbqSYCf%5W21jR6h(paA8trM+#^S9bp(wE=|(Hp-`eV;{HB{H zQ&TwnheNP@W7?Hh{0`ajw!aeHB=MrSYo*|gZhU$?J6z0`!~Xdlmu3PMR{p8{F7UG6 zO+-=3|3F2hi%;TYFx8`2aMlPQkYp}#+5)IZYS#}`_}oQ1n4AqCjK+`3-wxbmehZjk zcyqQ?#}iEx!Qw3V+Hyvw$SrsxREiNI3}q0LH*Mafi-IDgVE(>uc6+%RQAdjH2jAqg z{BfJ7DE|`8vh&km8u{#0?zTp{Qk@3Uo-k`Rf)%(RSdr-hQxhxbWuGL3;|ifFF_bwT zanU%&lu(535E9Ll*snIdC$GIQ zT9~SDHC}M2?CI^u0X4WMcm`L2K0MH_7g^`EdqE)h*oELUA6toJ+3}k0+e2I5{avi0 zJ?8fF$u&l#q#6g}s-Lk7ZT?rq%n09oa9;b>W=4Qx7rrpwU=60U0yq-a?gkq85kdc0 z!I@-&U$cmwg@BaB24-_4#-YY2d>5$(FAj{%>-}9|-;&7H zf$y|ycNI0c%~A*U3O5)S=RS8x7WGC)xpv-nBzl{!jZ{2%)!(ii*pPQCe?K$?zNjyC z^vp#~m*#KItF-hjEGBJQl|l`87NBM&V7 z0YTM4NQr-5M=JF%%RNnD{OcxJkVHDKWKE7So{IC9<3{CGsmC|sLjZ@HOYpaPfgnJN zHXitocQ7l~ay`Kwr3bKg@%y4X|CJ3=_6JU_IZQLoRKWOKQlp1*jAM9rn5pdGE)Dkf z1AJer5CZn^wuw#-PM8h3O5u!egY(q4e?VNcdz2`&QVMiEK27@r>@wZ_*6P=Y=Gt!> zItxh37FT6Wxx!9ml>VNV+gX2m)X1IJ=p-_KsG1adg?ERzadfDx5$-DA6gFhP)ySg^ zA*l%jJrw5BvXp+qnE7B^Xs(=WjpWCE5KRupGME#t!9MbR`;_821N5oN0_N!wwXC@x zZ$_jKkuYqaz)$7qwAqHIAlD50;^y}4rF)^O;cTJGZevJe8oKiSiyEhM>v;mWJeF!(y5~5E#!HlagD>!Dwpi0d$w#a5>uSHX9Y4V z*m3|-f;5}MiDL$NYJJ(ExTD*0)0Ox5`waEEmE6tgk&^Qg;Xv;Mv=|AGxY!MN=2teDLk!o+S(GG>==Cg)Q$$g1uC9-b_=C)vNIuN>|c znjEh;=BZ$ukDr;MlsPIH`1o#2tXd!qpg`ek>CaCDdge6 zL#h1%t;>g1b#yC18R0C*+;weGTxNZ=VVQc8p-^qGPgMq&K!-Ky`CQ&96qH!`3K@bz z=#Yhi$e@=%NTJ~fW z7(Rp8?}%+K)$>v+xUwYy7HLqdOA}s?{4baX4qwTUHTKzlXIL$iyKQF3hQr42ZTV_-md1@{EU4fFxq4ig;awBzS0) zCY&ZziDsLd!8>xKqRzzbe5ydG`fZ929q=Jqz7F$o_%^@iP5Gmf>xuBm4l6U7KtTSQ z)!X!pHi>V}!&GRmACG_3QX{pcqI!uBMSN*6o_Pb@Wwf4q4Rn>IpKtMZF_9*uQMWW) zy5o!Ze_`KPY!?LMzE`2WwYh}qd=9sN zoVu3{-^I;w7PWk=5?yIUo60yR{ERs-=xH$U{${M_ z&?3H7yw=UOK+LiKH(_l#`n~)THmz+)H!n$nleDe5EO{QJRiIr16RBk%u2<& zQJgYlF7XeQ`M{)~6O1&|K-xN5x`I%~K>w3l0XFFiaCwhZzgO4LB9EypP}`fO9BAOA z!Vsh}a4Vo{xexMRi5&C>KPJ%BzFU+vT@k<+^;`&+mKA zddGhyL7v#Y?Cpy#G~`=s#kRAmBJMki&^x;u-O#He7W0azGyOA8mF5g%GpsDROo0GA ziZyR916*~#rMwP2l-HEEBCq_GiT#;DBB=)yFTxn$6oKFaTOy5)f0oKUkguiT%fVSayA zpj;_!6WFopG18;B+z9N=SdMgGmZ&MyZk8SM(k_SC()q2JxyEOKKLWmYwD*zy7k6!r zOjXQf5M+_+9s>1u;Y43=s%72)EivkbgMIoSn~5>Bf_`PS9u`<@Gfol?wPa^otjan( zf{GQ-qhHsCH2Idq>3`g~k{cWi9-6Jf@AR0JTdK)c%M7%8Jb;PDuzsGuhD8pB#m#^g4`p(t@TK_`A2hg=|PpYV! z^S%uiWKU8W4>w`7vvK3<5MyEobCz^)v#HtJZ`r&|o^f2z@>4e6Cg^}2Ib*Qa6G|~> z{l4#Z^T%gckT{XLh?DCc(;~_;;wl>i9Q+2Hhucl^>N5XT z_GrvK4fkL%9M$((h8|L3H1RqLeXQIv}O8!vdaZ>>5diP1}%C-$&6 zdi>SzF{O#JEhCwS5fY^ur6MnCl4_@O{-oJfT~p??Zmm1cjyd;hZUw`$n)03?dBiDc z56(_J2%|?8!}{jT$kXU-59XvO7} zLCljv|E!=DM$^ga#tkY2V(W25m2_<-b8Vhpo}}etdB%2Etz@;(_1RTUTJlwgQhmYX zJ+(K$NXy9HexQ7a_`TnS!5{Ux+~A9|6nmxxnOE$-Z{?P+ks?$lTw}BYk}tE3V$yu> z<_y{;*48#5A|1PT}i~6(3ov!Mse$EjQ~9HN70POnPzFOsP^fNnEo>zI=YG z(1eeC_3{{FNnJ(e#k9f0zCnNbO02*m1nC^O3OFMh;q*;vvi70UJ|0&W-Meb+n?jWv z*L6x9_Wu`>lEIjiv2vy7j>Wj(D9w{Mc=o5?6!l4mr!(P*AQ3(2f{bIGw%i`7yAWkH zCIag%EdE5)KkKQPLLhr2yCu08R3Q@l_v>!Pu`Vj)t0_c%DrAT<)XP2C&pW;5-H*yn0P0M8 zR=I?B)lmCHF4*oQu*X$rDqm^wS#8ieh1y;$&OJJ$Ac!WkN*Iw9*FWpoNgEbz@YtRz znX|5#*YY)AMoZ53AnINS0y$DwT$!GFg2JN?u^tmU{`0m`y?@0iS;jl@dMnTAAv4Hx z7&P(b)wJ4sQ_CIc8>iZ*2H9YfRo^HAFV&V7#sgQ=ElE9bz`N?ezW0c0+K5vHE|8J9 zYS4{6X)klA=X)K}9~p8<$4H~hHgzpEfIa``Ia+2EXi$%Qx*rl=qe(z8Vp`|1A#kQG zu?*KzpW=qcxd45cqs2H!=&yO2)qlyU)w21E<~ib*wX}a}>eM^yCjj1RV*jfiIop#g zuoigpzCLfwd|y$SJ1g)qkR&DdVPi#F&DX5OsYFFQHgCpJbH*1=GT%csWdBu^vV663 zwO}Vuu!v9=TuZMRi7IQ}(sJg9X*h@9xvvp5K#^o_-Z(GMd@yH}_umx{u~FFLM7{+& zDiRKK&vJhk;AwIUm!T~Q277t_bMs6!tN2=0hg5~BUeN&1rSbz*j`Up4oCN*@_dMLlQ-;^m^b5Z%91MtFHD6{e4AJMZ{hI#-u;<_Xw zsNK)oF_E6`6bn9h&9yRsPihzbreSy9Uvb%M>dW>tc_YDzh8ZFVS1PlPE1FWynyPtIZ{k7d< z^Nl^zxzr|F`HfrwzB4@eE+eBY;>$b`KNSph5IbK*8CQXl1yC8_NDk#>$}B!THD2+I z7+(~m%HW|9Sf}{Afc&f9F1(RiL%!1;4~b6obTl{wBTXr?Jeiz;59&Kgu%Mq133C-0 z_db^q?02HKe6sYUXqMW@#&iaPzco38$_qMwa`yVJ1Z2rQ`@zScHE!i_it1d)x3->##08()j;3=jd*^5}01tmSQ+bWfG_ z)QW1YCpOSn4&|tgBx)q6dQa*}prbfsdm}ldLQI37&`ryN_PR^LMd49=wFo9lrPm~s zs3JE6XEm5#EiHL^%hG{uYE#*zclPS`W%oVb+eR+k&B4>|4S)^d1ovS1(<*$EmWatnW2osM@8mr~6;5x22Qy+U zK7|*FdgI}m-r#u2vU(`b^x^a+7F$%k?hc)>0n_OHa+-|5Vj~qdi*?$s*3iT_QG*!3 zRR8)Pc|@agPXnzHb1lgQBh+I+2XE<-Y3X!xxI(YDwd{+; zRA*hpGrmue7sz1Q;ccd>2SLt{B7(Qis?Y&cq91fxlaY+skHf-Z120d!eX_qDc?%Ck z2f{rgNA}u`vnw8y5iR}ctP?~NF9sH~?5^4&5|BA%1zhI=jGd+EC1`iJylbgaXhD4! z6egTSnKa~6^p)VT679LL9!y~mctPvFvUz0GO&t|pMrDt;hca4|W?&0QQ1;x~NtR1M zWPAzORUcpzkVIH#&=s+3cHMuuy|6RudJ6=4%2E-*oP-r@J9qPV^5=9ctKC* zQ1yVUxj27aa{E~m#$@t4Bz@^^J`IW@Vg)@c-OXMmNQtint+=%Ss$odb;WS}TDxjbm z?>GO~%KV1{xsMhp#ZcyGn3JO;wiuP7z`aydszFo-iX{bQtg`r9Lw@NC_T@!pA`!B0 zEYEgWhJleKMQ~kR%am%^b^fK`o&3FOaLbkd8u(&CaA9GMMqti_W-Jg*V%7@}?{N@U z)?H(_(xAexKE&Mqh(Wv~^aMYY0XOw_P52m4leXgAfb=;3RV)UnjveJkXX5a;1vQah z20e_nrG#D0v=wt?F{*T%V%vR<<=B%Eb4iU`C#XxxxlM%mJy=V>`n z*>klo)lZedlpt#eVYrDg2(kJ2{YnU)@Ab>-G!zqNVv-%MU9@rTmb(V@$D)u1wjg89 zqOwpx@gkL$0zvCWSUyb{bw~-+cy`xStEN(Ies%R(?tLB{trc)Zgxk!sk!pBggKxSE z@+d?_Qq6Lv?EBy_jvY20SRsea##{dJ0hXBSpXrV$>oWdsrf8zJ!t_8Pj)gD^-*DXA z>Y|F|Csw8m45Aw^mc|6AQrX-;vTuUlq|J*JJ+T{Q^)`3|CFlTH74W_L>kdq&(j1G- zwKeEDwu;3OGed{=NXQn;9QyO91$;GsY9BHD{Y;x4T7))&mhNswR$SI=q*pnE2cJJw z=ujaQ?DDw2yv-~d960P;KA-1tu{*Gr*n`G=pas^6=kr8|d${ywT*Fn+KzemD4$Px| zP!w&JK+HHfq4)Ohi}8@NMa~YSy^qkf_x6JqNrI2_vAGl7xSmJ(MUahO&E-N@v#X@E zdagbqzf#WAEiF+Jy>re*8JEjaWWlcCY&)@!!{}b5 z%jhvk;8d|LI#;;Cz664R;}Fj3NiPH46zzcUA1Ats#jO*{F^&gK8YodAtCqrntg&X; zp|R7JTEXrie>i6_g`meK+%>eMoI%Gb^XJ5>wG!3Iyp^g%LgsOuCI4^=#jV~rq_@G) z#6IDg;qn$#>LMX+k?S@njmkk0;sy`->0tHOX-(J%TgWq-51cOtv#hK7%K6Ulg6@3n z?!;|~_DyrRzPdP@`f5N9IC_`vWIIT7JFnoz8B67iylS>*ctuEed%oc_3K8Xt{fCP4 z9|LheYCSVeeWfQBKh{)zNqBvieVnMz_xGrUY&^|pKNy4Yha`cC^%TBOKb$;lW>$4W z`F{j-tLTZh$k)UCF7D26(*>48h+7@Bm99;W1B6>uSv4Oms$Un+%Pdso{+K4a8gQ8- zO%Y3AXoZNu7?z^auhY=5uh@)4Po7zZGSZi{1&9Y|(b_ov-atTR{p>R8a{!-w8sl92 z?Xz~=fZXB!)hl7%T;6t|eQF%^mymb3%kWaik& zze3t>nAb$xiQx#PkL_qB_n9e@3pWC=q(yA7`V?I*S3%-fA4)p z=E=qk;pvL@DOHL{Z`pHjast#vE1W z;h^h7%M<)-xO~^p0CupabTwEMR>e~*qI+GB$d9dHJDDq+NrlXlyED43q71)029Byw zS4*nm&Fh!q3q3hFfhamKy_#9aB9Gr7`S)kYk;N`Q^{yp+h5_jF((ijXWaSo)Vgm3F zR)X(8w#cC=;@^slbX|b}jyDi-$9v9-dV^o9jgrVH6>35`9F+dz4ylHlh2BB9;6c9! zp#XBHG@zs2q4gVW($5SPh2zUl%9q;x=#IS>xyR@wap(L@JQs5*?T@IA_m~ZIgT*5I zlFG}!#Lyf<8Z@jNlUxkqN6pkITiITKN+10+KTW+$Sh|)r8=;R5LCb3(JX2qZo|2kk zdr}hr#;{Ry!m5$2ka5S}DSwCgSKOU%;o?}xn=GCqBNaovk>Ey+TNIT!vIZG0D{t;I zs~QOPC!gX7%*+OlKL1g#aEn$aN2Y}yDnOlB#DqRJFC~#Z@h9sn)B6Knr;uDK^Zb)+ zKd>u2#8g2sv^02(XL2TQdt1QoQ}hTkBhvZGOckb1V~L}t_IRFh1Mi>g-7^9#+?*M8 zVlEzvXU}nO6sKQRFAd_#24nu$qrr)mJIavuLd8}~X!n80coO;H9E#$#=sibblt<_N z?*n+nUX>P49?fo`_CvHrcVkn7dB=?lzL&JNUDkkaaBWUZpHvdd8y<>2MJ;ogFu;Jg z=gqKDo<5~F$v{Kleh2o^676bUToY0Em797_q-L4?KXD80EY2C{UW%#Y9|f_JDtL~` zF0c5}Rz!%3vY=WRG4m*X4R-4ppxl6)t|TVb2#tV%NVO(E<cVc@FTH#O!vIS5Zu;KgeQxD)r~YAP@6^E^N(g`JRXkHEC>I^7upOj3yzWt~%j-L>6q?Ku zhwba6Bkd^sH96Qtza618N3KBON%bUaR|7h|w2^!7?w+zG{N$gCIRI+1a+P8+HYkO5 ze(kl|qH(5tynC6H-DUgID|R^N?b;dC{sghZChb_YJP5w~FM%6pS=oyJIF+lXGOpx& z343Kg4Be7oqTDJY<*v<+(ub0b1C=mq0XT?}iwMAE`7ZIpQ2tGJuEqR2>ducFe>dqr zVWWuhUI+lI+hfVnPh$5x%4=UbDIbYx9J!OPyA0wd`mAUb=W#ogsi2++ z@}Kca-VTOa=`LrZ4wE07pqWgn5Xb8$+Co3|0wvkaGf;<_rhJmH53f$PkqD> zi@|9q%wIU(TefMI41fc#8M3G6xw|VI$b({g*+++i?5tGD^cmb(&<&%CBiz!kPr_x~ zb_0#K@zx&$D`oaiSDRYtu&++X$AnZ{mJP8$!th>)O?tbu27PtcJ*8%?O> z;ER%@SxNk=fDmzym_hYt1s}>lt0hnTseMLlOjM@Fx+v11Mmc%eo!97Zo=3+_b|u%3 z+&7ZB*BolQf4;PrqboZBEi%a1R2bcZGk+w(7g1~p77qWST`cL&cgQyx?Z97`j(0ry zwki$wSkZWM7zf@~f6c=uq(;rMMM2D`u9BwsB~|j(c;GlMK~KmI59~T>z^oyOkvC;B85C zcPD3>V(tlAC%7JIiwMCM#1|(gO-~tAdozn)Ru|F0gj0zjCoQ`$*a;1&xG=Hs96hV9 zW}{+`X?zhKNdaUDRqCauY^XjO$IF^3+0<3`bYZ_T91l+mnVVue)8T4~k80=0)s85} zSnXK!)aBhqiqM6+`@gWRm4${3>NCIX+E^Kk>%Ib99|v8M{(lbBo$7XtJepTY34{&F zFp;b2%RDddI5Y>+){RcMOqQ3H0k)Iaq)}b5l!a7W@aQf0OL_D2Nu+;p89|~?M#vT! zD3d7SD^C(mBGH}eEE?3UbS6_K8KEi<{WC^0AUL(VerN1J(p#gwZ-CUbt2smwHw|x~ z>y8V*G_e`@A8OV)h#Hw6bntSxwE-Av-1(KJOx&NPGFIaqcKSsYYEqrCl60@^2;5?3 z@Dqs!#wWcb0+tlTyb^U_0ah2J@>M;!9ufr@LMr9ow^a91=A1ognfVCLzLm$fuimR$ zzuegJgeEnqchy$0wPv%8yeJhZF2P%f@lZ15s$b@6u8Fa(3FfgJCUi1dKPE#@jVlzj z{Md%4M)XPGdj3&nPFYbVLp|C2_~@dw6iyXI*Eip|=v0ZnIOLa+ztnz7O@&EojxZ^2 zU8Jty^08<6^xf=B43^S69QRSyg%t5Xo4lG|#lM2X_sVAGP7waL$9ZU?O1XnwP)87{ zg=(YN_#Pm-mkgC-e>2<2&0BhtIe$GZ2l7nrPbH^C$r2Sx5Y+o=3eil(kY7}RTBTS* zX@Qtl?JmiK=-985TBe2hBL7|?utGZ#^md#T|Du>JdVLQ59dJYDz98<$9$pT=^QkZz z0`KX#u+qRp+M}T-R=eg`TONO-K9x)4&E5z6)WCUhFOc=UEAz;I1ECbB7YkU~zR!!Z zMc7QUon(7O%Q5B3|K_g$X+VgKOenB_H3|hVN^4a1t6yXhlELgHj zPxF#uYn8Pzd;rh;o1Y)AgFt!mi(*mE9I!2N?T$4lzSrY-9@2sCA{HtN)VP|iuGZ}} z3H-ii0Ls8p2CX`dbj;NU`i}?N$jot!I5iz~iW4ckG)UcT z>olvMsdbE2{Q9bE7Avo2yzo@bCi$p%wt!1Q`DB{dHDT{S=Z~`kXj19Fh*H{3ljww% zuSbI)M=ai)BLn9i{Z;joA~-mm&$3$q9sxh;;lndFp){H`(7Ug&z?YW%$>MGZt2Zvi zE+TiM)F~tTHAr5o#JExqzK*dHFWgc>AI|f=f!S-{HrEA=C{^HY?Oo5KAF_Z9-%}{S;}7{#l(d2f_13b&aJ49v|o%!&o{%!U*1Cd3a9AvHz~jsNRlYB8K>WW^^Y zD?rz5rCho9*U%zkSD$FdMR_NhVTpu%)F3P+GFQb50P)lR)lH;kJREc}npiZ` zx|$r1phm6B*mU$2cv$)F5#9DXsFytf4(O)iM`6oDkLoGOqLkuqOgyHG)=_*-?xmuTby*)=KNm%GCQn>$c zy^lx#7V~b~Rc3~r?x$ZKwtM&qw!X>Blh7>Lp46dDFNlEc0C6FU_?w zcRhJJu4(t-lcm8TIyXBF>Av=;1BpyL+L-qf!wc%OTjv*fww|SsX48 zvw~(5z6_JRS6MLyZu`~*VL-QQth+5$m@_VfNRHz&v*gjyPKfK`vPQm+>WNgc@{Od{ z_Q5~QTsPz#njo8r0O-WOpN88iuJDSm<$ai^smx0TM_|J6TPelPDRJ{qgUDSvYq?{@AI zR0@3$gHJ6>eHXuxF1Pdg$sq9ug)IJkYGS=5hWy-p{-q#{l77p770o4I1f)dU_+CkMWvi$PJSX`s`qe z=~_Mc8YC?ySO56g(TO26uw6#B;5%egmiG?z z9z~~E|Hjx-Zz-`St^S(S$rqbpT$3M`ghfuc72SSS8=+lc1ho!44reb@lZ(%CatCp1 zyzH{44y*-FozsM>$|U@9doQHxCd$XkCanaUPpu6iChRL6_@uu)#TzzZ6V~t4B38c; z#nUZf%SU-%=6TEpu)Y_E8a-NPkP)b)G2>e@o@;X<@bc;yHo1PWIa%4FnO}(xDiYt( zO~ntBZMhcOo6<-y#BCMuUdyHeVe_c7viarkH<{A&jG;k_wNn{9JYO~|{NhTIXMgac zE^BU+qNO*Yb?fOk)QtJ(;=L^?yQEw5Q?`?Ue0TIx0GVBIVrzVlr(tfZ2gY1pX}f#x z$l(H&5%p?{1-ql5X6hWsBtaFV)&r~dp^V#!MLCg2S+&_#-rw6fDMd6&0C$+F)~i~Z zJAFhnmtJnJ&3`zK%dsltYd%xw_~8p$2;}`}vZ%xccEV3sq6~kv|Eu|m!gs0`+oek- z;`m+}hvG)c%?8_M8YO7&3ufLBUD_^*L6b;zqf|x>MOE5(M=U5rdqG!%bdzWhvYXa$ z$Oyd;BJbYM421nTeU-GL$c;HrT)Ttg+AG7NcPcwad=liYfRy29{<$THJR)10lCQ&l zY6kunTg!PbmtcLGJ`D3!!d}>k8b-a&GPNq((HJubHRs`Y@b{K;hRClvHP|G5Hi?n7 zQGZev+h9i_U3}gD$HV(O)|#Q8>mdY=$l4*7ufQ*>(6Ky%o56#hvg#lCDj}52gG025 zywgmOtLbK2jiPcQSxx$6Lj%Qf2}LOCAC|q<*q8$>x*qO&_+42KSzlvr{}eVbA%6Sl zM;^!}-TRfZc)I4k2-k^tUD7f~7(al}YmD42q^4Gy zrLD$Bkq7q|uB6+xUP@V8!VI1KtgfMDAC=D^v*Y>$dyRB%v(>=8P3sDfdCejFgUqQ$ z%PrWOPw*>wArKk2g0xskkS8RHCEDj|grfdS+sK;?s)2e#bJ+!9VXzr4tRl5N8Ot!` zLeVc2!JZjgCwbEpBeyLMzXkdGQou&guZn#v^o4j4G(h^AFD4_df+qtzP->utN#2e*q z&Fw+?NU#4W!q8YY2i8F|CFyvYs|Bk4L0vYvR4X{DQ0yt)6_PS?8gYadJS>74)GXoi z?#PX4%2a)polXCD!({mt4Z)=9HiGx;m;bPbvW|ak{UQuXpN(=Z>Fy!pkWKJ9%K`71 zJ8zjBN}5wzVjL6yQ0u&biL zL9v+gs_J^)Z_V%BeK9;RNqb)!gfYrgbZSon`axfv%JGbV!$ix=Y*$Q$`@#ljPY&%^ z3<1Bv`;_S0D-$s3FY2un{3ZLHezc2tLqgRFoG zV%E6Pr}^o-Y`|T_>y7<5+uYKXm?*&&gXom-WbkZZ@m(&>yq9`w5tzG9b$HrsX!Eua z>ve(ygVxH)f;2&^kvZVK#DmtwfZdDzy|c-EIRnp}9<;8aIP+~uNmW*Rwt*C&a2LhK z{4&v0&^|4U&m}c8oG4c&jBe+waKc%U4Z(go7_lOJ$Ffe_MO)b8-l6qq@zo$|DOx4J zvvm6tGHi5?1@9$h0A<7$@#Ufv@lg}^fPC0?Ov7L+Jly;{iwL3g4yug-Rgj3+& z9pgGbr`opTN7PLp` zP|FO3q5el>dP1d%q=@tEk!a%crj=s>#UXz`#@bfe(I}GPSSCEWszqRU09c5_BqwNK z-}T@D&VkS9R**&Qgswz`vws~==tC3ds(Oml_ZY>qneCO|^W@gMM7ls-bQZtXisnyp zG{0iV8{WEP2sf#H4lyQ)l|Jj(lzRrVum^Cx!^E->K6v|v+cgzH5BHz53|A*l{g5Gv zV=XXD9Wm~EAX`}U*z3xZ5|s~D@AEr0%LfARBZn`a2Xm?npwL-NQO-}(u}*e_e|-;c z_}g855ovT@Evwp?c-;<81*V3gJFHC-(KOeilD>i9pX>RSQB7aPP&1^7fccd=HKDBf zf^AoPPH0o5ik}%iuE(}94bIiEky!S?f?8)+h0l8&s3ql zE&!@*)#Un}A?P(=eN-Ann3*Ki)|l9HRPasgn;~%9l-Y@?*$VZqqM#uSdPY<&-M$Kh zty7gIDYk{7u)0n@6exx|`r{tIUNeS;Nm55B3Fy+f&KWfm)rDTG=WzdZ=4*k;geg4$ zyt^{XsNf`5Y{r&es}MH*JG|brIDJwSR}u~_t9z~o2C978z?7)7p;r%@$ZTH-?7L8$nm9K^W{Nk}8$ zOxZDKgY5sMK%OgZSB0P=O2EvA(19=_;WFJ)L*5W6AO)gqu+RB)scFCz^Fz;ndc{?$BF*(m`hG7vNf335q!Wz6={ix7i*9O{4iJ_> zwsGg(CL+TaY1NsBhe7(WWB{TvEpgC}%+4*=JfW>mDL30ukPU#5mgl5Em2ON^r<3=I zd#gth%;G9QYfg_jUH^HG>TUso3^0ePA34Pv!(rYST84EbzZ@L-K@rHbBrc3C=>`b* z6=uQZeI0y+TuTPvLkmg=(TAp-CM8joQDi#hd*@j)&!zvutFMy$iFS-LvLcl2f`e$rv{|Cz6W`lL5vZz}KNVuW1^`iyo91>4F>K za3PwQPdl2}>>5Q3x@F*BIYo9e`1RXp`6)7Q3tz!G$+FO+-G z7T~U6;Uo@k8Oz;e885iQDML3XQ1b>@znpvLG-}GcP`+Wz{k&Y_+`5W466n22#_Kbz zM~Mj-{1OO$O5Rh-Mq5)n^cdQ#iiw1dBH@}1hwim^M3E5yEfhi&YER>=VI|*D%A}hX zZB*12YGcvr>kIgv8G7Gur0J4UccBoo_y270o5s z=F7mqiKH4Fe*PZ-4?*z0izum2u%19HFi=j!llgVjTdIuZ=dC`wZoSDc`L3zuThLb# zX*)q_KzUT5G{+8N#;YImX`;e>_MVq1wVou70XB#^JEVM_Z;D=e?NxR)vj(r@t!6Q1@+0vT|0271H+qbiT{AybSsjb!>Q!g zQ6VRjXC603-mLheZ<8h&z+go@)32CJ{DgB^s-Ip@uZ+XCO)ME1sYv{>O$eGwdnV%x zA(7rnNIWU9@mi>@m4vC)9cGxQ!xMUpTl;+?(UI4TK6nz>G-p`KxX;~)|#{mOcvix%e ze*cN!wG?`~N_N5SXj7J{tMRuXBm*|VXgzv|^RndIl9*!HLaT>aERo`&t4BQipUL&4H^5LHE>iL7TB`;mxwMcEruGHEj*YWQ#J zhBlejR&C4rPV-qd^Rg9x;~}bkd}=+TpfmyA#2?FwkW37q|2j1IEN|0}Xv~5g(3L=? z?=--5ob!rTs^U;%X*`@}+a}CRD8S33Wf_Jh)nHwC_1-eHHQQ@}@gS?N?xzuQg zREd`5Z&-)OI6<}KjeJ=>-6y4$WE?Ubk|D);?4{WP@G2l?&QisRwP=5Nj4|{F?+a08 zu(G9O01qdkQv$YvS@}uz7IhORUnzv2u-;qHy5{y|N_HyA9ZWVCWbNB`5Tm9Hu$uXxz@C~Y?mVJgrM&|-U@ zmfuwzwhPm4!KYwSDYI~P&Q%;5oYx8{1YuXP$u83&*#(CMn?a>uir7{&6R%=m*DQUU zbTzchEc!GVn>gx8;ptF^QzyhmdIfZF^3p46-zDR)gL3j3|yW zBqtdEAsjW3ol0_{nrsPP*wt>2MnO=~QBno=Ap+st?_^mK!py`pU>NuY)bfRZ@})Y( zht4On)YGMjD%Dz=ZK*Qr3ARmw>QXpldotOc5vA=Qngmf#U@%$eH0&}Ql0z^RT17*_ z;`ww)4v7xmd5yk?@EMAD95{kLY{0Nh5cUEX@))UQ81t(ZVGmy4!(OR@_~1>LGE0^a zZ~E;$yNvH!(8r@4FGOPU1{bDK8HBQ@o`7F*gE5(pJ{k?9)V3{E!xJHy7&rx*xG7ND z4!*iyJ*vl$U=FD@eW--1$wY80&SBd2byP<^O_)3lQeX(14Gcmjh=U_B>@Q+3k4JAG z%D(5ZKOv*ru6_hDkT&9vZIYSw1krx24otM+Wg2PSH9a1so)p3^0h6s;?g*)Tn|T#| zz<0@HX&i~S$3p4}Rpv}zUuNIJMDyz*>G%T^rUF=x>}+b^Ov$7IO{(#YcuOXI_8Vh{ zFj;t)KADo8O5WWkfPGE`PX<>l1j%np!Y~;+g6O1;Wg5C>thUodC#CRMfBGPfpfCQ5 za97Je2x*3syO4xX%k7(qDIR;UVtg3J3u1Gez+`eTrK0D>!A2@wrPm?JbT+M3O_#2bZZ>D6@213*T$2}MH&Yqd# z#Q#R7-XmBKrerdD2YTNYBQYx=Z4*dI%{e9096G_HV&W{7a$qKzL)69h8y}Su8qEV4 zJ$Q8+B6+Fa>Jxtvl8NC!CrrVp8`9ba&f&0an@5_mEZ@p$halQ?)YIh4?ieQfE(20B zvwRhCMSI(k--3B#pqHW)bm)^Q*{P%-gyPYOHd1htB<9mofolq7$_PrnZD=Uh4lO4O z4mfSw67Th)-o<(6<^B3f6`__d1p52q+P1@*?K;1JO)X~07k1m^RKtE+7C~WwhUc}} zqlg+SLb9QGT1QP~7&1Z#9zx}Sk~Zmw>n>oo{6>h*-UNy1{F*k5ntApP*!70AJC)A8BNTK6~XD-|OT*xE zwGW|8dEcULIQuX*{-!f%4evKkeAtE$z=VwKV5zTT!>C8f0!kXe)HVs{d4<+93Z)Pw zJF>JeOoS@P(;Ay+Cf-UCe0HUr6t0pH0tn*KQPManRN-6FN$IcX_xFkE{C+7kns*G5 z%%VH60IUgR*n>UvDQStq%HD!9ma)^G1|hH1$nHnldT$gh8)O_UR?zfIiUe^~)E1(Y zXUd)9sThi?^FM{KvKuQcpddb#ohG&3606K-KVs(WHA8-6fWK*QeJbWGR~Fq*{!7XX zN)E#uszS<^<^kQ)kAR+;7)8|WB&Xx+sLPtDdKHYF?dAVeo$Yq(CJ;sc_brJyv1kyu z405VIeLd$4a=X^$?9G6Xe5f-d~vY|DLTbau}bPsV2-bgVxrqcMg~al_%fqmbNtUv3lKpPr#xI zoWU>63gR{%iL}9NxrXjRKPiQ<+M;g#&+`a12I)$nT7z8FKQupwZGg(^0w(bC8x>Gfm`xz9DJ0DV3`-~P@>IS(ztFnnw}PAnpmpm z0c949;M-C(Ub?<*Dkg!j7sJO)T2jy!w@&*}!ls0GHCnyI1~Zv3%eKge3%d1JOH?VR z>N8=>;zBvIQa{suv}*LRvv@Ih?npmMb8J6V)r?U#j)0Ms{UH7I6Nb@Cdyw@aj%2-k zY^XYzrkuTj_RoTev6MeRkhbmT{KvIzd*DcI8J6jJ>2}EfDaew`!S8Rn?YrJOZ$bX( zu-kQ5^7^ssR!&uHo!FIVi^$8k8g&G1O0=S0?aF@B)GW@>lcLDEv^9H9WHI*e(x%ra zyzTH0lF8w@B{P5)_r#LZ6)>{b!a6duEmW8-EwFie!)M?Mv7mnWcq_|~G(qk&fOZS= ztvVsO$#hvPt5>*@B?rpnK&?t-(H!l8Kn|K1d+Q$0CkB_WA7u>A-H3^?sAXPV&-}Mv zVS0>m$nM_`#lnS$t)tJPR&Gd#>wA{Jv zR+96ycjjD?-^3#^%R*Z;O82ZDZNf|6-`6`IWtJC~aG-AEJe=_OE;YdY$ao;s18urK z^g$2TQi;mI5NwhSroqc|^A+ zF0U7RoP@6da-_Ow5~%Vh%#+n0kA_MV*rfP+!`m0%J#))op}>fK-mIKmdwa0d(uTz- zjB?6~?Tg5_*|O3e(uomr4!8}zIU+HVJEhJYBdDkQ@S~6AHYw$WMIAKbA1|6Bd&V2k zuEr=;9p+@{hB-@x;~Yu|enwZ%eFXF(;Ch~|^@%?oe>~Fr-T&DD92x?Ymx% ze|rD%+QXw@7KB`m$~@A@&c=WogDCAmnlhCfaxKP;$-wZ5)mvgb(*q^7$PkY*zI>!C1k;OLE&WCB`&C3n%<{doqzhrR`DUeQk$#OTfoF; z06BycX(s-XjQ2vtj<+3O1%s>zkVA~zmFlvA zxigR*dbiT;$xv07pja=O&zWFId8LRf>=*&$CF2$g)52k^Snr|*&%>p^b6wqf57;exd4^Bi zl4aWXqb4t#*zMkx&Q210v7*u|Ile36JW8qoO)OxZ7664OOA-^Pi?F%0UbIpXEK`+= z0DlqkQ42rPE$w5q{NO*mYdKn2gIVYZ+LY+6O!-9&;w%k|8sM3B|Gx3EP~x^Q zQq84-*2;O@Vr~Z`wSWaLGCuWA=SV+^S1L~1_Ok60uCuJ~8oztG(Xx9EEP7#jqi6%s z3%`%_`{tg!*{lU4?0U2CQ9b?H-`;I1>m~YT?^1dHOKmFc4gZ{>W28FMcw5e;USfk8 z&HLYzflPS);Vrd^6jC+{#~u}d95hk;tC;~|)yxyj$|&miMtpO?JANET#ez?0-X0i% zuYr`q{m`H0Inwtx7R@CyDgx|Q#@@Sn#rDN|(adu)cBNO$E8b4S^XV(Tyn)e}gK3^R z-+%t$YtQ=rm$rhjXfBzN(H5Z!j3{aLL8}+hU>dQ0;FeWw8v;3KVrdVT0c949;FzeL zm?;tbKC6VIuRab`&HM*Uu7`9eSI^g_7}1m(1%p2%(&B8;7+W9dE#=E2Lzx95w01cT zj78*S8eD4hr(ux=GyFqNv_<4)TtUj&b7CwaFXJqI1VxO(7nDYvHH{EeIJqCnf)P@$ zkOng;E2AI>P3))SQpR4*lxbWN;@n_U`*=Z_1#|o|kcAQAD>{w&+sAQ>mri&b9(qwh zo4qZ*3oVU`?6iH6%eFK*{L4TVM!-l-L^1FB^8NiUdCLq4=2<<4$7JjnnPSSH(j@2h z1E2R*F#|?&LiU!b-)P;oy;PPm%$(m`nTG4ufy-HAl0SEotR8*MGX`2FyYCMJa2TUv zIOnePk%zZOrFK6_KQg8{=J1i48EAw)wtE{a+*H(uv#EBJ$>O8WJ-Kw#`~&~Iv*lis z6CMwb{@fk^q{?~STV{M+AZy?vn*R1>^08(n)nVztpp<9e?sI#ZuQ$EzWh3~bmfK|TIyr0h zZShTk&blRtzA3#c&zzM&m^-l5Y`)|Oa#kDX%{h-$l{(3NnG`f z&yJGrd_rl$t27m!^=1x?^*$AmHqx-Cm;Oc;U@G2!#k zfz?C4&BCt5IM8`>o*A_G%)m$MrB1yUf29KwD7WfYm8nw$6?xeuSsa1|&~n&Z>MsJjg z%ZYEL5wFxXd@PCxT~TdAII#bRDEZm}@!EsVvMnNx}A z`OsDC`R18g+WMjj>dy3Mx{@oO`0=q!jZ6#|7J~Lmp|mX z%w5&rRI%tYp5C5*MB`DBMIDaq3}j&tF*F$%gfV@MITI5jfE>c@XhxnR)wjIf%{RPn zYw;RDGWzeJaye zg^b%%r6xxfO*m7%rCv)lYuhm=TnbuFOE9|Y52N8CeYxzdd6*x~!`mZ`yjZVg4Q6y6 zte;}33}m9T2dUSou7mM4PTOgDzznJ)6BT9@rSGh6S8q;ud^7Yx(y(@Y?6;4(v-_J^ zu8gisLJ#N&^+zleW1d@S>w?#olYuM@qHIZQ57Inea2(!BoxQnK%mBv@i~xT$ST*Dj zu1B*V?=bY2DG`%NZZSRY$9n^9GEetZ{pfAWAo>#CHT~g24xOlNGkDt z-ZaX4W%37O+c7>~@cqAzrdI@V(8RUOkxIS=jXF}P6jSyCx76#_ahpx*?rD(=KW`#0<20$cWCmIQ>hla_L$FDfz4t7O z3H2i4kcU3Uxr8OYdR)^v8w^vvhg^Ob0MTE>#a>N^`j!8c3$0Jb!ANtaM*BW1sp}`C zUew;owxpjLmVPD}awtoU0kcKqWpO&avhrl4T5>|@X_SIsdywjJ^-(YvL)v5ZCbdBH z`)}ZpCPKL;&7212uEYr1l+;UH=Q9}<&z^7Vm1=v}xt|A9otKs}Z#x6o(LA0WmgtiK zWeXsO@Th4_Fon7@7HfR&p>okqgJ>6~@{?4zSCJjd)$~ z%|_irrS)2-OY-AbJA2hOoFeQko%Zee?n{nk%%FkrR_S?&FhDfOI> zni*)0mB~^19Q_IE-=5XuU|i=0mXyuqi=odROCJzNIS(4fB+ILhHH*2O6{#&_DKn^Gq_2KXlYUPO+Sf(oGSi^? z*=9;A9*7exkBwv7*rI`r?>(T2O)I^zuVxb}fw@^^Oc5%PTTKDTE zZRvCN4MAy0z9BMbI^o}mpZI~m&SL?Unp(a=hTiOS!kQ@K(G!RNr89g>Ef9lR-%2ab z?$lIoHo#AC*Tp< z5Cd_L;1e_LoZ{M^?d#pIpEMwuD(;x#pd^}#TRj~(-=f7@8q;j4lEdZQPiLiDc>|>R z_f!|HZ^$AlQn9Vr^=^f}t$lB)sk~n03SQQFmBZYI7M)bd=F@7|rH^KwAwrhnrslSb za6|$DmYmLTCOlu6ZlZ|o&I|Yc+Np{5=axR60>E%D3vt{?GDP15Kb7gxVZ!%Ro0SI1#x8elZf7|Wr&)JPB$42PpX~{bl0u- zM$*IHW^Md3u{#a?7;e1U9C!x4@2q43?yjUQK+Sy(<8CcOgjNOiSK1FV-w+J`fk>te zm@NXIq5x>c7+j5lkJEgI_>3I`2PB=a3Y(H)7)Mut>26IR8H)2ldOd@hsDkS!pr3dT zfO4hXOGap2ctyZG%RpTI>n(hyhw6jej?o~JX@fRlU159Kk+gK#BBP}#H=$5)Z^ol!H=B^fWF+cQ%L?jCIh3@%lZ*&n(g5+sJ_h@{ z_{%>L9U6R9O3s~SUZZa^F}GURCav#yAzK;wiRHtcJq=>G%UF8FlPCn-wY{%)4mz;l z6RiJ6sWKi#&!8zcdC@1R95vsfqBoWsV}{y3slnxCbzmov#UjwJ@>TA)`Ip6HO;;0Z zi;P#e8f2528r(APt4$e)@%dGX5W|T z7aqBIt>iLXjxsM(GX1J-&=*_(xs(!o0tPP=IJZ@T<_*blz3tV0}3ntC7rHP;{GExP-pc~H?!Bd70;{l`#=-@Xleqg?t`_I7BT6()d zNptwDU=8*P5yadGKF9q^1U$mk+L^uzp1?vCRvPz3GeR};FM8PB_0DgNy=xv zpTUVB7t9Ot?AD`(G!=Jrg31g!6fjh>1Gjf8FMOIBut}Q+J>&KStRLW0`bah0Rsc@q z2$B3vOZg0{+~hflq@B9JXUt*1?%i4{!%eb7X)jQ{Vdsp%6WF9ypEIW09rO5+xNrnD z7}Y@vSH&vC;@cb1)6tvc;9q&DiL%b*7Y_%{hq$z)^&P%>zpO_qU9nB zfeNnFDw)7+V}xg5B$*>E@m%o9R4(H8=m+b`0AH`aMD#7|e5myH1Tmzf>cDLxDuMeJ z6jQXfm^4fCV;I5wO63ygP&|{OA+?QjG9(f4Lpf$N(Kr4 zPl6PPZw!4X2jYN{%erJdQyePmTv{+@JwNXc6=NK@_)4$IkGDuyT!vTZ_^9KUZh8 zCMO6(;rqTNmF$!j!IChoZ{Lrc#4x>B^Pdocq9Qso?qRzgVvZy`Rs?Bgz?&Q_L#E%; zD&@08viznY)C4J-<llh(XA3U6k~422slqV$e}S={~kRp(?WAw}?Qv@PHHXA)YeU zai`%`?h8byVN=1rwKHR*jBceD`YJGQ%*uR~1H*D#p93v3H0(%qt&1iNajUr04LUH< z3xyE7zgA`}Eoh3i7l@?Pm|!gs+or^vngpT34_%OE!fD}<>V_H&fzYdXEQSXVS}H=> z?CDW&KM;?)oJXK2*_?Z4HbHK)gO`-{QtCVhqGo<p$P)~qB{G8Ui^3xYy<{Wmq6l)fjZh zL*XsB)rFXsxEho=AV0)T*u9SRhRCSz=-ye21oz21ThwG5!FR!~unP0LdV$C?D`sv^ z;j}fJ=XYvigl7lA7Cx{neVQJW0gUD{eHY3K2l^W%4^;SY;sf!(IM6~YkN(?WI|f4C zP`CjP4u28a(EJtMZsfirS#0xl$20^q2MRA*^4Nv!T<=iR!iFyS7zOi`UENTkZ`!rO zlCV5e1Gr(eM=~SyKz@jwui%=enTLQ-tZC+C% zN=iFq!`+XScKMoxe>{!(etefaQ&8Qo@VP6wH&u7Ri@Po=_9{poKzO&ua>{*}(c1I7 z6$RhQ2bsyRxB>^VvDwmI0PzYIQD5XXJ785E`C&2gWFvVtmQlzFgHmw4T`i#Rqi8)K zi8{Z&)>eYZCauBPU#4fOJ6Ee;4!q4J)KgHXeF#}x>19JJ#YA+?jB!61LTiqcG09bN z7FH`*mIUjo$x=>@4b~)Y>`O!U{yioyxAKoPS&FMZlH)~L*Bm_jdK)4`m8en65h89F zcf}v_4uu^M!piW5PQ#;689xa%^nq<1 z6J{s_P+~M$abUT+4OIGg0J}fb{jhmks(?Y+ptP3~TeBrob*uS8+>Y?s7;CcqtMxVqN3vftPo}NH=PEtXQ3=rIm9hxCv*U?H%BC&=x3)K z80A_YEG1R&-(~tZ&7>wy+6b7k!!TI6K$?FfUE2S!2$l`e@e?DHA`^_ul~kdRl7i|t z6uhXF?sjrey}`4H6UsqWUWrMacvBQe*4hN_Zfn$E=c8-`MBqw@pJAI#EpRKQY=pEx zlvc{HUNX+^8;E--KzS_2R4`?bCyuWxg|H*+$2?PWySeJ3a+V|21-~bbctb4|T@(bM zqd+)H9N*;FbtL(TF#>=1hrRCy^YOcvKjoQoohtJlx6gk%`B;ZsS!+(TS0KqHk3trZ$jDV zLc75XF~uv=A!ZnM4sx(&s4kbKc0 zZYet`mcxru`%F2fEA`4;()U!SW`nWNTxhMLD>-v1*6)Shd3Y@h@LX;ZD$Vgric4@ z&;ztL15@1v`rkF`%?a!|-AM--o5OJdt!pdqIW`#0H%(&LA1+m&|Ye+}Y zM-4X_)@zQl&*ov04q1j?BUOVUw^FTiNDv23jSYbsp{vV+Th0)&^A?7YDg;XO<76Z- zA>fwHPyid1_5!(w$!)!zSd8#yMdw>9Lx=^7nbKQOsyo*^6y;zxe9GY%SRM&G8iF!8 zT@pk&7%OLj9r3v!guVl0XYA(Cc@vSY&%p#H76-HqEN#Qr!wgz?TtPXo9h*ObpA@AJ zfKAXKs=iN;P2eZb;C|8A&_ky8-I>NH=|yakGQKY6swDA9eUusEg*Yg5sR{980QZLu z^>)ND0Cjbypd82#q8;Pd=xdM!Y102Bho-#o0FS;#>z(r^&?=N=3)#nqDD+u)o0^vd zQ4U6O7rlK54rR!6ND$>f5Z>@!WBBik6rcc(Mtx3uW_ppl|(!d@!ohZp(1O{u^A90Jvu zrnr@s>ZRPLvZdvqa2zFHR_|U7u zc&|JByCYT|X_>K^A!(BDk}oOqfa6^|(eNp>=YC7ROv7xO(57X9b-p7SmT%Qdxfb2` z^e*mUaZ?_9mS7GUA?gy7;-imYA90&O&am^IOyelt;9NM_-grIIV(0e3rWvpFJ}HYM zJBLzi9+O(K(`F2n9Hx}rt}Ey$|LOttL;J)VvtbG?&sDNpl@M=gORU?bBYJqtp>YgN zskjlZe`1nBM+RM{GT+-u|uhtL!5xyaJ>uI3;$ZJiBXX4v&pR z(Hn|}FMo&XKX$-oj0{z}II>eoZi2!Y`s-9kwU=_EpgF2=%uN4CFo*Df>FUB+f78g0 zdbp@DuDYJfa%Mx$bjJRly=!A9U@ar*;=hGPQROnUO{=l+y^K+^=pt>JDq>}Bskw;D zZ)e*}`zAr&enxKy$p9YuL+U|oPjE{*Wqhg9dwY5_8*HtS@UkI8`CM-*OHKS^0IS}X zQoqWNjH}8b_sE}pUjD>u{;+t1`Yw;VsPrnI)F$+P=bu$i%bKFZFTekA6Z0CJCB!}@TqxJ@kUy7rsa#^%Z zxg^s#6E$Yq-)a`JZ$7bN<+l|IdH_lg^*VLx!GQlEn*=s*)|e#g)kEH^>H=4wjz1 z8T-R>FVh}a%y^NVngx+9OM9Nc@|0}o7JC{FJy|M3tnGhxv1+p=l_eQPEjP&q^Ja@6 z%IF}P@%#sJyKPV7IQhmJ!Q=Dbz2&mpl3|ls>fzEv zm1-@YWFfV*lfSk|wyZWDm$;li$(Gu84Hmhy9$}D%C~`suLNb7TCF=pRDQZO=%*RFR z+cqoPt2C?dRy5^cqBzjm-)UrP9s1r#W{8qEL7!{#e>+AOwH;)qg7?02z) z=;u#rh?Y(~YvApCkbQMR9x`|>0o_L&P9-)=iGTUtRpS_;>w1puV;P%$k znt{=ZkO!dMnhQfRU={EL6*-ypAg%Ewh>RRe1&~;u=h>K)d4S0C0b?YSiI7YTz*ogq zns|aeS2;0qYKFbmeo_VTUJdJ>46}+OlbqBxw+}>PrW)im7+RJnlp;q^au_EK)$lE~ zP;2{$MM;(LOXAl`6V7+wY6L1;`>u|w_S=R{x~FzVPOIfpm>Iw;N16hqJwddGpsOs{ zD+sn1RuA~Z^yWW5mQP!rRUFwlf*7L~y!q~B5vBr%Wvwz#){>YF@HXrOw!S^8I5NrO z*xm@qK(yIv{F5MM9|GCY0e{v2+Dab|(dmYc*BS3Jaa1E&6j4CqL+w`e!9>@A*is|K zs1qTB@UkpI{_qz*y8j0MZ>3R6zAV~~U};b4ED3@OZ`#BkX{DO{ndy2j>-FC&)g$+D za@%Cs0Sk)vkEn6#vZnb;r?+Psy`S=y(bB&4&$rv?Q7uL{pMn_7(vr!V!U}R8TdK!t z`zUArP3JC2YGP^k{F73h4IzWj3DyHRYc+WzWH=PG^^M9*FS*2;3N}}5)n-dhwHlvd z*`zuY%jruEyW;)S#HXs|AK|M3ug8wXV+X%CPrgEI9IayYOWMTj|&Zw3R0i9=Tk8W8;F}%gs zZMI~D3_>Tk@*JS>Dvl_XEHXlLy76kJJ}C!)ju4>^pApp)k^2^8>rc^D2DBc4GG}il zuXH|go9KoMc|2^CDnc^BirbjB;FY~oDFqE;F{J^u%)gLx%G%#LyIqAXMan3mRN!gx z5vBsT#WkFnmc&jp5kzH5CZn$^fUFfcEq~7_*m(Ith~;ygj(WJL5v{IMGRaL8?p}W& zpv#LX**Stru{9y6-*3x_P~?igAvt7R zqHd)uuJ%2qGg#nnIb$xQYVf*!*u6QFg^ZZghDeQcgwf^*t)d zK#Wk!-pXRMmyYPil4Us5D2Rp}2~95E)r(S^8-3CaRQ4;60gJ4=Uex`Sw^#G6i>c8oEkLVtga;{rhq~ z`}p~R?&&F)D6QmRJ=}D?MDnG!|L{J*U&);9g}};FMhn{fZ(F2VIus$yOenzlhb@aV z8A4qxp9o>rgKVNo8-z~d3t_VvF=F#-V9gJ%OSNT1NG25ESXD$3V(yvN%Ou-ee^Z(A zRUND*LNeg9&3XVf>$GKAnUalysLTVv(Lp9Kn5hPRoT7V0$l!FPG0Vgl?tO@w4Jow> ztXocD4hJW<8G{Nbiv%+Slk6FRJ0@h?6~a3ut&amH82ntBSO*sEyu>K=pelj=!#V#Q zk}0uL%iPFF%(e(bszXU{|GT#nA6pWlBGnRK4`fnwbx3x>ZvEQwvsVMYTHWMj(GY5h zO_?a7H-HaNGT6A6Y4jNm2Ydh6!mAOB45k`NV?GU476Upaw)5APGg2NzU(tc+_(4bpswf)|%jYhR>_q2_Wkb08l=!6y z!km_Ggk)j>7*8q$BL|`}B|C>gunh=nPOidKU^0Kxff{!WlCyq`3EqL&sAx;Md4=weUaVQL8vv_XcQ9^B@1n<$ZjqUcL{3 z`==v9Ct5LV-%9J6tfBDh=Wp}pbex5*HxtE#BzA6-X4ySc7K$2nselb^wq%41hk~U& zK~&GVI;349*;SpGut=N1ik9Y6_1zMKC!$moA3n%SZ=R#8NwmL9=2_9qck9AZix?Ck z%^{hBjlu@dn?sGZeJpDl&$5Ia5V2H?iICw?&?YtxVZATnM8l3@ADrOCL=d7tWmXAh z7n>BOzyQiD;&Pn$6}2p9mhh{=?e+Jf$==9gOYk07cjt64U*OoU{B`|yJmo_MVv!lo55nUb9? zc(-68s=5rPPRh!6GQvm9=O?JWRq5B1^&oNK(yl&r^i9lKndH8mD7IL&0Gd39+nVd?3_P z5Xzjrp)QjtnY8_asG%iE#y3JTF@eI0D>Pe{UN7R|-3mrxK3VyVB}}OU$jHXbBfW*~ z81$6kknD2CZR$$yMW=}miT)QtGJrntH%%FEjB1D^iE@#9JEaLgk%V=J6L6k!*?iDqRw=Mz*IT?rDF{<*zMiWQT(1ipk_} z5#XG;oe_}2;rk* zSQEusA2B>0#d%ojlo7P%B~@mb2Lx{snXOF}@ww1BQ`r1pc^YrozlbJ;>&e9HQ!Gv%v=7<>!pIE%KKsN|s4`O9uRM z``;aBPcR*}WJE;PEcO@a_KN&DMRnyVlNQvoFROyS-%&%m-i_Hme~#S|2KM#vy^ zf|Xr<3GBr)8QN1E**Svh;^fZkiV({W-X`Z6M~#fD%1GXTDLUP-E6@WNOa+kG8c+`x zU+LEt8BEEf4TmV8(_oL*VDScS7&cRZK!$!dlLuqNablugBQaR*} zunij(X&o&s#4L+(S((zCiyE`VQ;=wAyY;^(hK*%qN;V3Ds+I-LeI74_WPojod$q~@ zN$Z%fB7>|4IK)v!l^QECZ5Xb!KdD*nqu?Fc(0N-u!lzt@eSwQoxL0AZlHu=am*nUC zDYhUi|C~RDf?$5mz+x4~9_P=}H5vBt-1QWx^-S!;vGKzbX7BaP*2MD986#N;LjT+T z+tT^7q?|TTEFUsgmndwnwJ+!u1X_Rgzf~~7bI7v~v$eG3l;AkbUI=M_3p#2V z(oEi~4DH{l=Jt)QMZ#Q1+Lu*YNhtbq=qwmL2ajQ|X6W#4GCEFpg-L(7l9A9NS<+v^dP*rglI!$*H+b5FN#qjF9H2hl_$mS5TQU?EOI$)nY?PHZ%mD5FrPkZ#)h{ zXJXsrV2b2RV<6wH67zwa06zb_gz&0n0rtVfmylfG~U@Cy*HeVB{wxnfAU_O9R zSRPC-)UforX>U~9?TO}GJ_+nC%j|>B{NU6Erq3aUvJiOYxUC-W zCoizjdD}HWvP+q0stCN4g7x2@J}{>5e!r{}k&uEMlIG@nhIzJxP)o6=d=oa>=0X&- z*D8I#-L2yPRls`#Y-Y2To2gtUPK^ zD1AW>Do**cS4TZep4K5S84lm*vx-B>Xzxs&rO_sU(<#F+^V)khmc(2f3JUT^bcXN` zp#N5Sm69*zZqVy-snUAo$hV)>AUr02m4-&X=7nL7Cd^C>$5ks>bTxL_KSOTIw`yoy zj2%-cHcu+V|9Tz6w4-^ZT3Ufgb-ar#;;yUIA9xX<2C`F0pLS2xp`ftjowta7RmbJ~ zkZ;f5#n8KoefRM(^ls-_X1-L-Z9{Kc-jWU0IBa=TrZ~{CtV}!PBy`D6CAqzUUbg)t z%V(MbGD~x$>Y~PiNX*v3g{2@{V5kc@QzgrW5if*fVi41TeT3P$`Ndtq=tETzk3RbT zT;Yc$9^C~dr}fX5s=1xC$faBq7_S(fs^Ai(MOW1A3HD!yf(O%k6_KTZ_}mDaR%WWf zDw!Gs4q)~sA>OmU3s;*6X$r0hh`!PsIaT>mbtkJ#$}t?dZ)P8<1b2*vgQE6bzqB4+ zpz%OddGsbwYt_YWB~1&9-Cw5q@#@Q>H>|7pPa>IHQ$?g@$R+tQb_$b4`AD#0wuwl& zH;80nIIbFx_%Li4Ru30Ew5S(BcCL~#r2PDVotvU4%yQb25K9MgAK)hyO8IGoe4a{B}H=BS5@ z8WB@6F&tN|;3~uU8)QdmPjHCpB?8@tII^=IE`uzS4YRal@)4`|hR8CEqbx$svMX#) z2JKb$?Kbp%QZfF%_%!#Y)S3ihBM)01VwubGs<59_hH*`AL$l}zG{1LC+*bbz;{8sb zTJGb8>YQ56pOpKrLqX(opsym((h&UqZm8%4QIl0v!zuLuT68ccvupzST}y>&6$Nqa zg|KNK63iidU3a@iF+!9QJB`s8X3uS9xg^yut;bbpm~LjfWloieKkJ$1Dvs}_Cs$^-m$t4QIm)IT9$+;-`G7aO#sl9!vUjC6Utv;=ck(wl~ z!K1H&zFm`?lovvDg7pCW`W7^D<0M-x;}?CJ+MR^W@1BdRUHjZBy_bCYI?kx}!o1gm z+TZFj3r+i$OqR8%WLZ`#@ZUSoUlHY}?*8El)cw~X*#+%Am%e{lJ?JBC>9$!G7VNFP z&9&qtsG1rkLNYN|u(T(L5g$CQ;~Ls*dB|`mXxByv_v!pMyRnzyP>^RPptYPX+c#=S z^%8Xxm*YgUB`rdf_Jll9FKb!)&yQ(F2;rl0|C^kpb%i2-N^e0QJ5zPk1A-x>WEcmB zDg^hFv81!93RJQvrKNGuhJtHqxu}HCOW0k+;U%8EUFt!tqI#RR@*PncTabdNbe)E$ zWPrypN@kYSAd@MXh^-HNEa394l2M%+->u2=P%FO* zHJ3gdJ^qNw61{8B4)jntYZN-&l+H$#l%JXYfCMy1%FFD z@!NB@7F*3uwA9Fc;_u%+OPi;bq+2?%Ao$@PGqG5c)ZmsBDiuwyDu&S?q7+^FTW&4O z?L7RFZOQ2XDpMRPf81tow9=j?_-|Y$x|a7Q4a$an+hmyirUNJ+>4rw5rw|2|JCa&ovi4o86ktvN&X7k z>j7+uY@%u+2r7Ty3S(oLX&jW2j4y;_ptL85`!}V5?><58ZxB;dgtS)n?Ms#Z?&Y$P zXoEPcPvE7Yk)oF!ZcnneU@AkxHDsePuvY-`6!tcXtWW-KBtZ=g{5V zAvkn*cSv{V(A^=@Qqm~W-SJ$0|M&e419#53=j^@K+G|~gH#x`K>}Qf}i(fh{&&DGb z=mcj(kXwHxpkw3JMsJLc_vb~bq1gXvAY#Z_sE!eoVH1x|Rh4{4g|PsjYoAiC+M-@1 zF-xZHH@=Y1Wd#bD>rvj%CLXlpcFK0yGdr?Ap`GhnsTHK*wOz4Un-e{Jx#&7qMhSmz zw5~uLJ_V6nJM~d3bn(%5y1Zty&#HzDdR%Bgh;_=2ZrTM!#GvSTBh%%8|EGv5M2r98y=1=g2;3p!t@>`G@?{BoO#@#WQ$| zHvRmR$@J}gG@GI}Xe^J4wr+@=K$LfDD2$hAW-7^}{+?x<>>KaUUJ=3=Or>gw-P=-Z zQ{xO_f_dBdgx+`igt=)#9V&=}W$N@*B%M$ZbOp%YJ%n$tio}2Y>QYyt<_24mN{gOhgiy;v|E7rh>N7uE^Fh z0FeGu(I)7@XtU;2rttBqM14CF`FEXY$YW{uINq`OSmW6MCgy*eA=8;CU%zgNYgB7l zQyz^yl*%xjnqX6&L=PCNOrk+W%60tWimxc3;rEf{zzkM|j|*m54sl(e6zfezN%2zr z6et8aX)lWJwxuij>0TGn(Ji6)LGhY^EY#Yl&*xL|a=-9WJW`+TcwI!O#O%um)yLT_ zWo4!z9=LPB8)=JPy7L*HST#uYA3C9h1P6wuixK6(ilj3I<^oB($ij2rlAX@s{g5^))tI=Y!QF2_sG8v ze_tSR^X^|)07z1q9_Rz*C89EDCEatwO;Q3J}!~;+W!a|NBnive?O?Yk#~m^bJlmbJ5wVeRi5bm zDiv-+{>j8FU_m3O_jEvXs{VC!zXvYm;LD*r?q>b0O?V=7?+B+D*QCdhP?nln;_ui^ zZnva&eMZgZecgavo)Uf&+Zy^rMA;u#iBTst6;wez9C4FcD8M`lUkkU3Ir%9Z+8kHj zhvO6Ok>$z6$^=_^27Mo9lY%I#$~GI9xCH}SMtPImLrq%8*vDo~Pa1nPLRdEK&bamP@aa!R8y7V8=)o__A>=I^5N)Z8x_8sl`2)Z``Gn;ERXn56>PRk z!_3F3vh=0DEx>Rr71D3`B=hL=lKs5%#P9r)ZU1O85lN>5DJm&0Db2$SuKx*lNu>%h;=F4SSJtx?bk>Z+dXU)UB)ZBg1coX{RJ{;2`EPWWG=%q2fi z2Vx_kKw+{5Zmk$-gQcnaop|{zHRJ16ef_@M$ee_5AFt#moYmx&1~uopHCrMY078&B z$=c$dh4(q!_vwHU8}FA-VJa6{N!nCAK&F^uN5kh{oF$=CIg^3n7OOC(JUbI5CQRPK zSVXnf%`j29JCRH8*V)i#!$^Wk)OR8e$w*W?|n9hby9Hc4aCl?9+5fNf_ow6X=*SlJpl{|MrsV`Z9XYrDQ>BYTN^%kIgBTHgZ7R6jDhPQ02Gs1QA{(D zag~Qd47VC~4FCI2I)qAG@QX;aTF_Ez_1+is;>mr`*+;bGN23xVobUO2t9g3ojc zZtzw{>}_mxhcD`FAF=`5(`>>bRJSzY7@8vEOqNzF1Kwx^PUU6YR0y+RH?j(TbAbGY zre%yWb6A9)-#l}>t8=xULlA}h@7>Ll{=RxL>qtB6pz5QZBZ%&Acw^M;Uzk_xD(eKf z3v(pXDazp)-fYj97lXMubgz;vIt7PDp)6&xM>fj@QeiJxIWJ)6R9|p&fuhpD z3A^B+ox^xJGqU0pYeL@gyc!!Lp%S;60=`xn&~sMrl2kp;onz2g7TE4e&9v*9LnE2i zRpqR@IIKG{j!MoREIze5!6P?jFv{XJfzghuqZwcHk)9^HQYi^gp-#$6f)vBr1hFMt# zN|9oaU;`oJ;+pEmVY%tw;tQioMFFQ*sm{a#mMz`FkVRwUTdY^o+LTLL!8vIg4s5KU z9X&jedFVQ3Q8-mvwwX30R}7@9%nz)=^CR!dFQ}1ht+A7|Odn|H6ni%Cgpj|@n`s4? zhw@Z|$Ll%+7L0B5Fq7JfZmDG-Wt#i#I?Bge9^=9Bxk{5qv0xf3X!X9Ic~tt@9{Lr8~@O<}*g2 z?~>_hs*Olv572GBdZ?j0rJWsCR^xM_$c&pA2>VXMhaB)ScxS`6T?Hn>FKG#!6 z6suXx$f%g$A%5yTrWhz<+E&J3?V4;~=z$bvqv6D=hr-M#<22i!$B{GpF1HA-r7t55EkOi>SaW4Y3RlC3~?O``-YtSUQT{ZF2-a-PWKG2k^X zZvOSbPw+W=Vgk=P6+B!gfvMY|!L0EE_nqL5v3^`?M8l{*^{fAZwvmQ$ z37aS;5}o`h%6#{IVf7(qH>H85{QWV+f z-Cad?)|V{rVjel`-wH0&aH@Y1 z`SD+sHZ3@sia@dxy(6FyN_kke24UoJ(}5pOUPqQoedi=nl0wQMdDfJGA9LEo;<)Lr zyy(@R_rYkP)L|acB@VZ?3 z!lBgOA|~7Z^=ta{tXH2a>?ty{@t4D1+nk`ujQ>6@A>l8~X|Ux0Z)zx@k$}R-Dvt+9 zzGQ9}suFxq;4JL7xdFu2K_`Bkl>x-E7TkqZ^in!2OT?JC|=i6>&_J?7f#fipij^l79ZL#(`sFa?NZhV4YK8;O^W zKl=N8T=31iL-eN=mj@V=(D-ItX)qEzk}61DJs5=4y#D#U?&k?*0=_=q%#3~cFkgV0<6PC$gD zi0Yc9dj2E|ob*z*zMRrc5aB?s zenxDlT}BMBgk)&YgA}z1o4-1-Q76f6GDBzYCzglCE~z5xR32}>kgsDJ^YmvPI!iVJ zx|3!!T~)6epB(ED$|3or+;WFPyY=5V*V%l>`wO$ih~phkB~(nQ1)J$O$_W85OzA! zai}&fw1gM=CqP;WhzIFDOk4aIX>~mo`av$*q+W4!9VIdzv8oucxFgxy8F<5!H3?f? z29_UASgo5V=m(xi`Pw_jD7;-0VK?Sm0&BBJ!NK$}ehw%=ORMorrCTvX_xM%S&KjYa zB>al859Qk?s$~{*N|AHh_v_@vdfmF2U`QO(4_fV68WsV1!4NwvEKb(Kkw31^UjYOK zZXi=x@?N^|xbW&%p0M1x7-}gDNz6Vb zY6V!{eLb#~TaqLN-#4#dTI7ZYZ^jwa@&2^+@`{crAoD0!?%XVv(OGniOBpes?%-B7 zPqZEP6_M&oDNqIDe%lD8U|Po>?tot{RDBqH2^q#%a}`}rbnKCeR?EDdyh@Z?F((R5 z$$Mz0TGS7F3cY5vZDDA(6OA~;&TU1sO_T0U)-7Q?(uAo#Q$P5cwYzF6jdR^9SA26G z$sH~r>)^HbzTG)P&O0%8_r!Om1gnsrwV!O=%uT(L_4GSp@Oh*o}y=~Cy?$=+t=I$E-{l|ifU_&(Xk1PGF=gObRUOxYl<@rg9 z1&s%h6LPTB01OyoE`M_+42g-R{>DxYufRYp@#8t7ndx)EE*m))OoV!Fxi%7IGof1e zo{gN0WvZPD=8dyMQfNF%c1$0G0IRUk_%7-DH#0gQMk2P54wV35%pbj9fSY;SC_@f< z$bi#)=0XfKs36yNy^{pu$f8ywgIfEPy5 zuAG#^(HJ_BV$k5$oux!v^QZ0_9AoEi{!XduNX^`Gn$`A!p;7j0{Z0_Qzc*zbY(3jd z|1so(0oC2_7c@z?Z6w`$Me&L*-o?ZKb-4YkTpz})wURWv?`O_X`**gh-#8gA@Iz1l z-#VJGviwn;x>Uu*!O+lo>wTN=19)q)y$0A+fCe;$i6Qxg76^YI@CXs~fTy?jq!kI;{EDucEsW>k8upDV}?k`eɡv13OaFg1zt;`=;GsC%mgK% zY8D)X3lJ3?anrH`e!3YK$M=lv?mop444*RTfS~|83j-%v0rRX4Rd@ zg1x1Yzc@y^w&x-gL5+~84aI0VwMEJ&OX%kPlLr(B)Hf1K28x>IK~iIm%;Jc8=1OQEM?y623ZQcRQqMYlsO+%$F+6$@ zq!6C@ea9=v$?e}G+agCA?yRt3q$W`hglo{$O$auaL9e0jsV)Rv)Dw=&iB&rK+ik>4 zBOm=(szkaL?@`|K(RE@igry>fw}E=9Z*X3WXsu*@h81vk2#x>c1D9zZLV?zPL2n zZN%0iS1IsB0J9pBGC!I=han8sNF-&3ip3P>(&GZkPRvna3c_$639?k^{~b7@3&gDq z!fXg4zL7P3;9zd@OWl%z@mzAdBWt-?{TL-c5u2Gh4<75^*2de(4_HFj`z4^Tc z>fXEHTZ@;q2?>8AqK=~;fdBKs*sX4;NR)bsDdx#LYQqv^ z$jCHLQ0MP3hG#+K+TOFBi}h}Ra$@A%cZ%|fPAZe-zpe)lG#p~t>$0Ko=@rI%FSja)Ij^Zfj|~S&yzFGBsE*jpx@zU3LZ}cUpJ%&2`0;qiy(W z;YT3vF2kU>yk3^mu6#>~1b`6W^|m=Sko>w3SU1**-3986+)oF+f+N<|iuW1o$!s znx|GDU+b8!WLWAHUHr2k2cSqrWK{rnxsBT|Uq8H(dH7t@Th*41OYNH*IpHL-f|hbP z9B;04T?o*SDzfR+2HNVCPhP~U?r5B>tm#kCJ^JdIXnn}hkDPJV5=isQ;Zi7LZlHPKexxfo zG-{PZl@w|FE8@AnL7esYSZ?OYOY)nRnz(lcd=#I=NsoHP>%73LVfn^&KtU&|BVv6N zdF*0Ih`MD(Vb8BsGw+Udi6fAj?~_W@I_ydom2Jhv+U($#yY4Q<7e>G6>R%i)1*hEl zi(zz%6jzRdwOH7y9`3*49ZEG6ybEICITHag=w3#sov3(d?66uuX9jkTEYn6Nz5#o$Ly{!9<~tolQQTN|LV6jY1p{gX7)?aK+_OfcWtW>nRKcccJx5Rv{df#<|J z>gtd3jz;hxl!UxvR{4A$cc-}J!##gB5>PNDzAg_O(L)oMBbU$)Kl(>X59AxY0!m92 zjAdHDSvp3SS&p|Gux0%Wh@fVb$W0nXm7UCGzosUvB?E`g@;N*k7ZPRHMoMbJ{>98+ zX?Pt>0*=Kr@|+=e(%<1_+8x#zG?4jyv{rG2|4&%;*%m5s9Uvw{aXVUw?yi(b5o+ zII$Ob9>%PXZF;5&RjTkB)$-ukJ{`$j?>3psm~)Me|A)6fU7Z&!bHxvQ;L~U*fc)Q)`2uCPypzGoxXK12 zID{<+zoWU!_%i82Ti%MY=$M1pmdF9e88-6!_{2;Z-~TwwfFIF-ioYa zKco9y9cc;ySDx+nuzb!xm(3}0_^CfhDbovi`qjir39nIgteHaQ*SK0sC^lka(IJhj ztZxNjVA(qZm~M($P_GpDYq(kOuT`E5q;H&n`*K7B^m0Qqa60A|3BK)P@T)X1c;F*- zd*msog|5qYv59EE@wdjq8=N6-sU+}I&j2AKR_b(yav65V7|fwN8tShou1!)ddiG0e zi4Tf+g7q(tHG+g<2_SDaT4F1TWI$CO^S`xq1V~d4^c??3xwlM0q!0X03t`@hi}R^y zXmTP<)`3~16jfbVWvS+vBdI#+ttkYqQ0>4_4c$-;(UMtYAsLH;n!da0IF|f1L@TIA z@^{4+hVYpVrnQ-}FD=1$i2xs2HqhB1j9@z5pZ%^362$xc!r&t$FPbOxlEHo{-kC%P z)13~CZje;5e+aa)48JuTMiFHX|^d7LPrV~VI?8^j+Ji!YQ2nmSo zELAXqJ@KE8a9q0IZmqwUV@j ztW!MFB+Ur56%kNQ{bZl!1lXJ#Z?nzJm!T$qv$R=x7!^jgbWfQ>RdgF%^~^1A^lNW5 z(!WYN7TQk>$NCy=od&}cD)SS2Sni-UDnlNYIW`iiWWU_I(q1}|&F5|l9jw`!FX8{a zTuG4p@E=VQ;bn$4)AKZU2f5I5N;w6|k^H{I*!J+06x7%Q`J3qEjGNSFF!ugSiKz?! zn_(ff;_+(O=et?Kv<7eOZgp1X^2}c*@O!tLWoUOfL!+!`J=F!b zFAY~6bY1xj9D(35oprajgxm3MLSphkx})}=_ScT?9(anwjULk*)<)AUmH3^Z`+yip zwtj+~MgewKH&#hXd=I}*|DOjg=U`NJ?e+%C#?KB_*3zD%kzbSw-Wmu)9OHlpF5gjj zmrjU;${z7PBWx9Ady#MoQA-*P=wFF|yjIPHocwEq4yjskG)BXF2@pf&Ak7Z1~Zd3U_3hwm9tgQ-?t; zzM?c#nJ&uxo_uQVDh`ZXnU?=L9?u+^jIJ%=mIX5;B*P^^f_j-{zU7_)CrS+5bo?lv zWYuL;c&rPVtdU6Ui+0(n5wi*h1f=_HEq$UgO4ep{IWm3f#^dhtp%?s~+Z+f&noqteed- zN?}eva}i<)annb#OXx(;mqA+}z8B?QE8doGbz8{O(*Or8szKza49A!M9YBf+D`R&5 z{++MAILYxr%lP!^z7+ab)bbE-@&xAshF;DU36A zJJ=(?pQQm`fAPhN`=uXv?bOJe5n-czVNP_z9o-mG@}RVJDOtX;AnZf5K4K596z1G6 zN)p+q54^-BYf-YnbrEp#c}pqfGg4R6AJfU{ELAP_wtjZdE%UNa~BGIo;yQLriiN0`~@sc&`to~jQ1wbRirZ~JYt0BKL&Z7LXK z1cZh;f4C<5C6%7pc~oGaF&7DP{PMzgCyndd3-*F@Mii&upXBY7k<+$vO_|Rt2C$5U zpc-ITSEAbu&9bShfmD%EGJ|_P+WgB>J)z!B?_unzVRU?_@g?9^XQ*HRzRL8y-6;F44j-OXn;u^p)M^4@RCVTF=E7_-27suIiX<1VdM z2_%te3Ri?o6ZYl49gdSqAN*|5Zhc}3;h2(Njz1`!J8mTVRr-Oc{cvT` z0b+nl<}EO}MNQ|(wiSI@w_Ds{FY@YP56Mf8#&n4;kde7FPWRr3bPuB|jMSoVqXk*P z{2jiv`9|K8J0`=Vd9Goq7(e3g+Yc;I-U#aI ziJDsqlcm9z_{4!aLIx?&f7gYqPh>Eige6aUyTxpC+7fvEJ6P$P`g^h}Eb6BZtVUo=uydLpW&x50P|J+G((7ixPbQIm zV#OIpSq$PCEvT$F##L32Ja<OJ@qEC922B8b)3xw2Q%af|ptv z6x*ERuNv2P74GXp%f1?%G1Z^z89|aG@Q?v7MTf>q$K}Vu)S&=(t4;@pxLAPxJ1DRP zcJmGo>JW9fBgt@Y_Qb{e84-q}$N^dFIRFy?BubV39ir(FIVIh*W;Jv6>sLc;0d~p1 zean^16AXn^jX(s@l4LZ&t>hA)bVjdndElUT7BgZ%1Jm~YCt?OL@0Nwt+U$*__&Eb= z)54@qgBI|VrHREd)q+om^+Q6PfjOf0tF)@J~rvJ!^2$mfLz!Z+@J9rv7{Z5V3+nOSd9K?u0)lL#Ow4AgQ>8T(Jj1P|IZ5!qil{o)Apugc3m?ptl;!**Mt|U`Q{ZtlLG&0yIp3@b6iKyqh?vm>9)%$Ui&^nQ>Psh zWAv%%MAB@diXkS{-VeSi>_CZG@XF`6tCy3tJkj*i`H!^jm`Di9e4rJj6_YRrmRUnS z>xBX6x5`;UO2uEFBfrGkm~7u0rhcQ6^3rH?tF`vbH!Gj%>H*Tm^Y=^Y zU)xeB(v0-V<$P2f=dQwf=mBKzeTLuU4D%1%ylNsyI*7h-r)7!c|b5Bx)#-UJJG>r|W zhB5U@+n2cGAKSRIe4>jPGhvgU9je7IPoZC4N?mYXSYr^%e0S1(+BBd_+jxc7Ki4Qh z0kq!bKZ$BIjWx)!^O#smnt+1aolx;RFwe~QB|Y_Ft8VQEl9$3c>?e!-olWV#gs3w3 z2z-!Z{+U$^PS@p@9e$l z#EwddSPb>Aon1|OQzpf5Et4AR+`M1b0E&`ta=zJ08BMgFEtEJx6F-jCg6qY@_# zAnBBP!DxnAjRLm3(o}nIhk?N8JgJDtm#K;l)UD?D_evO>LQG_$^lkiz3*09-T%QKK z3VA_hmMP9(B$e*5ZrJ_iFvZ2hK0mOgOZhcwb8PBb*$q}O0CSK2&Up*0B4$)XRU3Jg zZ^i$-q?)cx0?G*ziF}RT2IRzIqVTPV+Z{ay^N6zV);cE{dzSKyy|YP$6Z)oW4WWvn z7W5cr5ci-9SE^puKz|U5=2wSb<^|$&CgsBu#kbOd86V}KnPqX@K(#e;X+Y-o2np$V zY5g%UcoI6Cn6ZdbZiYRuN~;nTu@nZg0P7lN{0xw-n1GF1z`XS)oV(0|Gw(bGcMSp| zRL3??VXZ-y56A4&b9}(xo-^oS+`s#@C2vpOtQW$MQp~Aakv2b|9uuw&^jIGWp7DuK z(Vp~3VA6iUd$`Zq-uS^JB*ctGrK_Sd=*VJ+r74A_1=k$iHHT>S8b@8f90x^+-aaw> zu-h016I%#)$h?Vx-URQsyP?6Xf5o1l4? z2lrsbA?|0Fv zD&H#TIepn`*`45uP6~E$eT2j%{WlH_TWH;-52-xFjIrAHnhL>P-#ossyy zDTffP1>h>s&2Q2I{q(?>F_yay`KMn|9jy;A3DikKQOUO`40|8@05#S;^`gU^3i@c4 zE;6VL4n}od6vsM=2kazsy-2^2(}U!Yi+id=tBT4XflzZ_QSip1+s~|LiMfo1li9JM z#BirD(-CT{Fv~{Z+WxB3A6m+-wz9c&X=4s^p%!4(dBekjJA4>i4E!%^f=G)D6P*ed z#{@(Yc7jMJZwq2i88 zNdguCp&;&EwtHd7l)IdBdRxJ3PYaGl0Ipd?nHj;)xiEp!af`&N1tG6A2Of{i5@Q5( zp)2NTEW=b_5TC9iCz<4r7lBuX$k%P;g@M>S^uLB%#wk8Ne99-QKsaF6(;>ME3NW`e zi^uOi>r`Qk)cI}EY_*{YWJh3!A<$RA=&3c{{}V5G;%)Gdr91V^C$B`}FI|h^c;p^9 zg@@u(ZFMq9sCgdecW50nB)jkmXTw3@Ku=v8SPAMMKrlV+IHF0!oc{FwK?}HCfP2qH z5~U0f?0TI*#*DUMdOayZ=mD6jzK!iFnI`t=idd8wW5qlUb>F-SfcXq<-oRZ(sNUXI4 z*B1Dx!_I>@abJxxq^txL^h>f6m7=C>oB7~1WW+$INf`1h;ZmlNnh-c~)K&Yq8Po&` zxIyAmAEx>AKx9 zq)%Q(T@I*guI`krf#|fogSUsJ7J1F{MvW^xN<$mBg3(R>TyK zj;$%81DpjM){I}KUp$>|y|e74(Hi@dVb}TG_Gx?jumeqks9~XJE3gDkW`QDugS3qP8iABW3$27|!wI@po=Mtzj=7{+=F9?v zC?-+t&%sv(HK#k*-aD>U@*)2eTVRjVrCeRx=uiPmM?Eaf*q$?l!*LTChM?LP^bh+X z{Vh}r$GroNvFr`aWJe36JyynDn0P7+tvWwmQ_;D8R5E-wPZv~_%hi*@A?vp*)MzeJA6_Cho z1v1=$%P>^-zgB+k*iYM?<6>HT+lH{e2I|1AhC94di0T4_uenc$GeC4AmY^2#;zVoo zZ`TKvjh^6Srr4vw2(-EBZ?atc_I~mDy;81s^@c#o?bklF^uU;9k5mEDR+2K{6~-?a zHlR*=Oa>ibj*B6xKm50yz3&}butyPqpTOG6I5pd?A8wShLaLAIA+E2^aGNke*lC}?AD*}L#DlX}3c4=k5#l1Y*rngzER$2u zYbNmvz!VC+(kWm5G>?Hd+9jU{r;40(6gXszM)TFz(1GcSBCen!R9?x3W&Aydb$NQjV)xzZY|KDyC6v z;rAHyh`EB|h_)$=e4meYmvzy9ZMp?pyAzKX^;^Dbm5jRV&ab5xyrampTUI}0{q;`T zd_!Oxu|Bh_rpo=i$$yl*{8Tr+G$!;G#z`|Ue}~U|&~=Wm0gURyX^|CkehVq@Zb5X9A^^sdft9Oa?NqoN37 zX0n;?^UyPWEXv|PKHJFvdcu~_X|CAZiv7-tyF&M5S-&@NAV%?EevVR^FfgP~JzTjhEyjclql|?RU3M=7&eh!oxU|;~X!@M01ND(&37u z^;-959^;C9W?R3utz4MId%c$JQ%A;)+$?+EG4ZUzp1dypc{+2dLfj~=sy9NyD`@<~ zJbND)O4l)aTAY0|BL18IlW4a}gFSz<#D`h`Su!KsFe2EQizyp6?GNM#A`KzvY!v)e zrV+{{>^Cx1U8|!VT5HS|Y`B}!cGhx*h4_ZC(BNAEfbCzh*22E7Afp;j%rGazxw+X& zdK5zG@Nf1tZB)QiB3?^fM?rtHw3s0x$5zb6DMCtw?y$FE$NU_gW*=w;%!2<2EZd@f zQ$MT9#A=9e?JDaT zDzO*FaHQuLT(V_9Ql}ZcZ1VF{m85GlV_yb9Fx|OuiXSE)sIaTNlNC$M5`XZnI=msp z1rB}CSNwp;o}H9*@NPC8UG$TU+pz%YwbSy9^9OlnzYhaPfEki}SRkY`Aw}UQ1hGIt zN`?jL>%?qUkfF0VY&$x!9r9;0wuL%mSCS&`)YBUr5_jBS9gSe1@$?V;SYn`t(6HLd z%>9Q_kr-vCKD0#~WRf}*;<2iMP@s!9G>9L_c=Jh=BQF)b-kZ{lWHVCy_DxynPfD1Usmht+o?cQK1FYAa+z2ItY z`+-JYS#m2}0H?N!rKwQPhU@+os{AoB%o0w6=5(QKpghUtWxl$ zqM^E{MTzbP?VIgV_Q5m6Lt0S!h!hTJv^ERXsgG&i+73G9%;s)$Eti!Mp0QDze?PdJ zQNZ@dz?}$ayi<5)P7FJxhG1`bx19fY@p(10E`Lpu2MT%~?0N3HIW=@n@0ey8?VD7J zf-iIQ#Tl_aoO#PM%s(A>_00U${RdPrQr5+BIpPISy?>7IDYj6UtoqcVP4;YHQa69d zG)5{H-JBP;^HQ$v;1Vy8gY&#NA1ATW1{Bjld2R62j>2hGY+Nty$qiE~?D8 zs%DOjMeG>$hb~x}t>dmv!7Y$_x9;c>(1)n(FviYSSP-AqNOK7>=}=U|z6y)FG$$PJ zy1%*6)LBb6KyMK21yq@m9Wj}Z>T`kg=c1l+ zpM*VP^-`bt_!p_U+rMAsIAansA8l}=X8j{ca(Ha(?Nh8hDN|S2XB6@i17^uS5Wx#O zrD=4pY`u*lC3|V_Hh7ok*c|p(ezvoNFv}%jp!F&wjZTR)$R^L#V}Bn!ggUN1BZr`y-3C%*#L7D&;ftcjEMW{guAPFeELRt*AGO&72GlZfq^93C%q_wS-eN+FWM=AuypgbNfq40pKTd>BT25&_gcPsI3sQ3OE)q4y)DPk3MrkSO&(y`RpW)WH>I zrW>@(hiMWk+wpm-N9RO7x*68#OSmmAnp?%Zm0(bi4Y`PIS%lQusYi(!ZM)YG`FGBj zrFktapNkBJhw%aF0O-TMPsE;_VNoELlsS$>oWuy6nlSJNwb-{I;|%!)uCQ{FjF`+Vc55Jx<5NfI%ZVzJZ_E zOqX^vFU=3_kgMz13>&}Y`iWcGWyn?0-0r&Y!YFW^gb~@}Vl1Q*eVCN5Lxnc*k>B|O zJiAMH`&~n%Rm7=JZ>~?G#7z83hb>Bb8ncZYLj#r*Kk$O_tsr)3tFHUY?byx*qOFpT)h;rM^#}_ ziA$Jfcr(hx$@X#}1o>cKZ>I7J+`G`CkfJwj7b``gBaGxRSS{g?O^LWHu$`o|^kOtc z*c0ZbekQ#T2PW$Ye9Cx$>(t-3fs8HM4zKPWe<+AHqA7Oa29!BuXlx<+PIqZED*sP6 zp;-n{?GZ>H9&>PaeT=LT>4CBVrZDNkQ>1x5Y?y@ej)&IQe@Nv>Wyo)RpKn#3_!Q`N zS;#BpN2~Kh${6{z`S9`%EC&h~3Z!08<{m>J{9=ucA;?IZ!T`nS%Nm|VwCwN$ky}`O zuR)Dfvy82>?3Z}w-g(O#{p^WcTW8Fix&lJQ`(9IzX5(w9BrT-y+v1$j%iD3*T<=ro z{@0Z5xXLGek#dCtdOIQsJv*)!DFFK{U8vL?@RU*U;`|;SJlNyXcXJgVs#&P*5Zc9Z zD1EJ#ududu%n2U>L6CUnrLW?jwRJy(O{U{Xl9>O%yvOD|AEZjN8$0R)&3;2su8@>y zvHYRni{%MXl~lUn%}x&+Ka7H|V{EG?0jo8qR%S4RSuG;7^G#gD>yko=W0fL-L8ovYX*8&>g%AQ_Z& zcyvvCTGZGhphk2V!icCAL4Q>EBgMC#%z?J~DFDsFW!^~8YI}65(T5L^K3wHkYzCdY z)eZ?{qFY4dIitdm2%V{Qe^T7kPpRrQDRXw456?1?-wwrZYKd~Iu{SGGh?wasA619i zWGEau#)`Z16{<Gsz=>^Jt36!H7$s5{37a$7sAhE8 z_djfVGOuC+ctS;4!BLtDE`6_DAt&FE!){nYiH~sk{--xVW%7rZtFuWdhco| z2ot(E3l)eihM3w_ue6ug4BqQRaHLH=c21;(yb%G>MHLfH2SxL5_I}XQ za=&fAj`B&=@SFtK7z_N)oFo2Boy4Bz1xDt?#yz7T7nh7Q<(nchH9q*@;nh10H+xG60Atm} zAU-QkLFNy7H597uI4L9#nrohB^8*qx-8dw}l7{cd``7U9nPYQJUfOHDe4Sj?fNFK_ z&jA=_2P()L^}Wq~vZI>y#MqGuw$U40OfKhZj?5feEQC1=rKeytsYFf;Q>iANurryP!ZKyWJu`hsx`# zq zC!syWESZaepFS&K+8t1P|NXX0;Hkg{J-7={qmGGRy`9rP)Je49!Cy(CbZ;{QKMopF zc314UO)(3!tlm75=09MtC}@W*-gq=I8{>(N z5f}0QbP07_S;F?%!8)l*YxuzhgaPXBQj7V?ME;McZw`*@edEnHY0xybjg4*Fjh!Zq zjYf@aV`JNmZM(6p#x|PV)8D-_H-BW3ot>RM=e&5{kDi9hFm}pR8oiVu)5oS!rG~D# zXEVQ>VNT_7vJ4!9S%OFae>i7OBV*v!1iA`#9~g+3$Yp%Udofk5VEj>vt0J4MBROBh zuqi2B(F00_xFgU#++I2{t^qi6ZWv@`*&PLain=JiqMMc=g0zg1VKS@1<$h0#GGP-& zmDV5<2h|gYy-T^mBTf9$ms*SYO)=iTXEi2-hDXkg>}Wk>o<3gb>@APPRFNR)-p0}4OuP#qajY7?%#E;R0Kljx zsf`w(====b@{xerM}UMVcp#?k=T!4k)NurE=BOQJsb3-*Uo`H>0=XDcvDzRk#pDo9 zp8?NN$*7ohDJCA>&{lwhh2Fazw{`p-AS|cNto^H@wsSV*569H{yDE{0Ka&5Hrap;` zKy-{&LwWjy?fAQ4d?P)gjr4m1k~(=1Uh|DG#vd98X2uWxa3QVPbt-Zgjv6n|{#&PP zSwD4R?u389p_q~aC)WUI!*qLmr#VB99#s}99oq{GL5xl z9dR@Yj3#^t2jAV)J|iWD*Oag@2;9LW16Qt^3ex{~uSjaS#g|l1{u}HdmB#{N8X8tm z?tYsBpB9cp{9I;aE%&d^Ttrk3{AYdfAccR!l%iUhjGfX-HhSMFV|?TT%33kfBX52a zz*+g6nnGeg|JPFXv^m4nmn6pur%&8)t{14#vnQ>VXI_CM(TfEp+KyzHlQZM?sH|bG zNBmu2%zmb_a_?pX0z_5D{@5VP3Lr-I{h++qBG%_7Oo_fWWdQ(^%bJ7N$)*ew2ttY% z6K2Z5RJgLxA8>Ue;+CpdYx^^ZPpP`HE*M!UmPh>Sv=Yl#;v>!=i?l?Ei05`)rk5~d#ybmM--b18=+K_|Jzn^b`jIOmx^2jLgL&C(Oeb4vBl=kRc16bL? z!z#9Nk^jK(n4NlgI9BqAD3TCmV40x`(2B65Ut!R70=9tnYyzTw+9DQeKV?&z_bHj~ z!4*m#gkj0^Jyrpij|C6$JW@|A3$q(cWLo4j52bWahSl&-V*OtU)w|ViFAKfuPfaaK zP1oF@v(vCDE|jwRtNeBQq^SBMh6(wG&qjHZO=~E_M^phV_j=-D$kJc;SB1XYLn1-H zp)#IXdCiVdmDJoOA~`C|NrdPX|8m3OvTtGRapik5(@p*_Vh}1XnNpiGt@P#SmGa*2 zV#Z>|{v#>ba+k}wqhP&-6zv616eiEYlXRIAl}?o)ZU0%U40is;bWO(@NsaJh&hnve zpcal-k`V;03^=xE2b}Oi)N*|Z9y|3lkbe>&$%`~70-K7|HbG{+@0`yXn_7^GFatgr zAjp+w6j#;}kj{j}xvIknlOTYXh4CuueFj)+wp^&nQ zqy6n>+kn{ZZh2?@VEu^kd*cj~{g%97sV7UUt)1!yxI~F#K8k`y_Hk-RMD;&MREXE5 z38a+Ka$u?j3C)@xXa9;O`0eQtkDhG#Q$IDpu9#;?dT0S{q^*xD^B|uMzmY1Ca=^;Z zT%gh~E`KfdzAP`JSd4I}M^gk%i~$Yflmxb%5t{BMkuC4dznymvTAa&Qz!-?;4BFF@ zcD+qjSf!CYz%o>QnU& z%FI{9L6l0m@e>r6oh`qP()^c#d*S#r3FkHmSS7l-WPgxftu5*>1lwGQC^+>L^z*B5 z36{O>MBB2IB%AKgvM3@`}EO7;;Gza<#HfDvj6WG#`U|3z23 z>u`$eXw*Tr!XK3hC+?_F1krJ1v66%yNG~XBe^K>k1sE5HUgbc~azk(PJrl=8ak$&A zC6tT!Rj(DxW;HlDJyO!nX4U1#N2)#2MV-W70C@uFv}lmo;$a%}ZfNcu&R<*P%UH*a zLhQjI@_+6qJ+)g5-VOPKIyahB(h_7&13)Z@iiVt`&7bz9LPgia2w+RSKgpHn!C!Z` z|MeKG+)Qm&p*!y~$Y=j94;Y}O5Z%XV6y{<1+}7Fi&ef-RP`3gwon)zy`+q^oo18fg zYkh#VQ}s zAVEGp#|Sp;?9@gOH`!%x`fF=1e z-$?gAA=_>{BbP}=4+`YRfJ=+@G_=^c#6$Ijv)DRCq86th8NLRvm7NT*X|zr0WXm^f zUQP(IZsrfbe?typPRUMA;)R1&N&wU_k@Qwkl^ zRQ&%%8Teh+7YBbV5WZJ!_f7O99%BNbjHU8KyupMy?8T#03L<=pq#6Ho=JayvBLKA8 z-~;D@Z=~%%A>X)Fa(cy?0j)et-zfS))o(3eWl2dbqVDexzz`;I?fFU&s7N$|I*utW_*OaiAp7T(r*=*1A`(I$w6$RW@#ftvW^lSaR(g8!si zqsS@K;NLFJ0ff&#uPJzWE`;~?`=|Icc(r1#u2khwpvqVK%xFDZKSFxq823Yeik3AN5Jk)VOubnY#_(h~J8iyy0YjKWx#2EBtcN8q5LtH2si59vO zbM=3X5|*%t6+l=o(|b>-MnU|$CgVLzBdY{8C012pxY3%m)h#Px7O-U8oebOcc{(*a z;e3yo}>xpGuI$tn`}^y_{l5cf@75zP2Xbp;dsRiaG|l_H}h(KU5JWisQ^ zh8}qk$)~v5Y49DX38S+_7bC_v?K~K3%Z+n{KMr6G=^Td@{A4P+aK0XN{+`3KelE zNIL72ap}Fy2s-h|e37~Mmyiu@A^SD-JAztoG9en8)0$YoJ)Ctup5WIR<}5q)ucL-b zeLnr-_eNb5z=}G09T!a%8yIjnP;*MSs~quomU(BmX%a;?7QmgFAS1*sqX?i_lw3ev zyc1AXLwn2WLTSqDc-gPs`;dA{GwY*vqloHh$wySPUEZU&mEQEXx>Z-%l|8NEcU zqE=REyo9Wx?CJj`Y?$eTJ4Kgm>(Fj6U=yz3$UJDJt3mLYTHO%0o;Aok5t5tjyZsM# zR+#tNGi^U}5(OvJcbww@X|UJOgHe8(LX`|vB$qsA2ZbPBg2c61 zM`i^e17y`3<6pN53m_zi`5+RhfDIP5eharEQcr~kwzufg=+6yraJ+r90tCIjHLE(}46Ay6Q6G7io-r7w`YJTf5Iy?| z*czT2nra$L9VJe5eHw@~{b6a7=THy8XIR5CQbXn@A8q>3U!lsWRtC+1|AG%xePKGh z{408P-^KO{Wnyg3lvbW7$*N3R6OmehT7} z09t9q`Ar`+MPIqn#-yTswQm$*MD*%ZWcr&Wnt)&Hp9M?)vOh1^l;Ltd3Mi>^{{a^8 z#`%r1PV=S4IQaV3>5dVz52*4^OAf~=DT6k}FxyCW^$e5oQP!6s42T3o6FmRnA|XEf z;T)%$o+a9M1}$d*Tr*4`JE$b7+qd)Mz_$r$FJ4=${+!AZ>T#x6=4+@}ukrx&`OmjK zNF5?9#US>;?$qCh3?#)-`9^9%^04EL>_2*sQhGG-ih&&;dx89Uy>6J>dtuOqQZ=p zDqaL$w`K>bN~hdqfalYjz6zGdl=5mLsh}#KPgr%nZJ*sDgOLHO6+58w|4#c^0uvO0 zQz?i_B`F`+q-O$q8@LA?q65sa$4NcH_mwKqiB8YR?Fhx18VKyrDra_6+8Fq4bg#zp za0`h1zV;KwV}*WVc?BrNJ1n&^ZegPH?Ka(iQTr~}@w!`U{1P{1n_II~U%z@&B08$4 zhdg&^ZeR{%sR3|mKer$lR`AW>ypO`bZcn-6Hyxifq&*#CyqvdAOMVZy85|L7WAXz) z48K!V#;VRo)7t}j!HIx-)IM$E-?Q`d*M_^-HAJSEw<+{&fOF!DYEs{vj2M#|W#JtR z!?;j!$wjwLEa(@XT~^sYY-?);JXC-A?FJO9X65^#YN57AJ3RUOSg}p}O4oGa>Eb^X zM;tz}g%0*&UfvTO(>NTNbHJ)QC%HVu%&~&PRE!pyM+&AHN7)=n4E|93!NCV)E~?Ld^_X&A|s{UVDL*_FskQ&D(bA}O9D(ESOA#h$T34C6)<#vtRbGoJ>^iU8mW@f(dC{j*aR!_YYX z)U2S<=PJ^t{^R6I?Y0NIVOz73oQp-8PBqi?S+?p}1A3NNf~$V%W%7KnqJW;Xt+h-! zE<@he`0U_541QMEwe&ja5ACuy_o4VVaYgm#8G_%iDWLbU*gwR?9+*PtNF!&u%sbzY zIEy~NkE5-!)e-7$RT+W@^bo2sqj^oqTd>qW*gn_*Dm8ia*U*}wc5s?&f&rFm*{uI2 zW#C?hT-t<3+^aHbKf$91kaHKlSdP3Sjg5d59g#xu|Hu^pwSLU@B)f=3~@o%-u-;t0De@rUr7Js zt^tgI1dk3lzM<16^uGUxB&XMrVcUFjuB^2sRm09=YGNYbM^%mzb+Fl-f&h>`M>{*5 zYjx5bf@ki~`{JB}b0jPUwb$K`Mm^8{B~QwEIT2YiAK5X~vD3BoP5a|b4R@=g+88bx}YGN};0DMT6yjb9=kZWC4qm7{gVlJnUEqD0rF!v~rg8po0f9 zM5HARQ*$9+D2dS5PHUKW7Y@wLd`r1WWuU?6KdU~VP@tKRU;iHluC8YJ=_i-19M;-$0vPi}Gr z-5BhciMNw znC+4$B^j;hg^IEUCRVie6;AfyVH6Nwl%?O{(l? zjrvs2H+64rp1C#6iD&TMRo>vtPtcn@E@|0g611X0IDSmpwv_^{I@v|3T_~(@KCuVY z))=<&)9x#ReU$B>GPah-EL(K~`d4WV6M~x2{e?@FA~{#2x(3+6mkist>h|%I9YGpf z0Ah|hQZkkdD`1ddzsp4cY8}-4ImBV;3YLm+S`6=8Vv7qzVN&i_vFRY>A;CI+l91#Yv!%F+<2q;4+zXM8 zou`s#RnjR35}d|UtUydlSDV{Mws02BIN`0*N~F|(KxKW;+p;_$)&SYo6iV^BHPnW{ zfZx9*`Xv+(w*?7~lngnQ=j$nA*1Gd(7p9=I!WyLWugX!(5|!lXt69Q_@rv#4ZT9Gi zgc?2O7V#BfH+0XL4JQPCPJ5J)R2t`W;tFk@Pl<1jIW|j`-M=QB6Tr(k5KLZ@(%P1ca|C0Lei>oz!O##aK10n0IA7 z#*F$&y=YV6Vy=#)95S#Bsm$Kr9-t%~TsQ~FVmyhRI4)b4SO;ASRoSDw1H1G7dI)G? zel8z3$ot+S43}sy?o-ybWggZ3BY`llCAw=ymi%?&xRJ`y)zQAB(`ce(0#n2BIJ&r= zzP+!xE1WoxY+yE~Xt{|$Z5BZE9iGKPRZGTYivI1~7V&(JBwGntN1m1P7;9A#wWOv0 z@JX|}AI!KWmc6hN{y-`hPyk=I-$ z`N#lss__$|_ciRk)^r`ggUwU*BTJ{h%0;(F?zeblf4W5ewGP_pAq@i)Haj;-HyBb> zhVSG31?uz$Rf?Pwr~Z5TK54_QLWW-_T5ZHANLjOV=f>Jt|4~3a%50wnFP;EoY+wM* z6PA<{?eU&RIui6haySKNDaZ}j-N5xSy*w3<=g7l&XRkqB&`$tu-Go+%YPIa*61Ftw zzr*a@aj?xKacZY4S$g0K5Z{>p^Zwy|>SP#)+w{oVkyEI47&XkqFW>Qkdb0oFdd-le zOh_f>)b@#-;R>FgbS3ze&t@;s;`zO>A$CKn`$s!rGUX`tI67%sYD~QbN@Rk~|5bgW zI~SE2X31NMjM@SHF#xYS z41!2q?P_vj5y`aHY#gBm>M?1q$#zX9{h11c?UUJ>LWnT|BRo=>qzJIaLfoZH(BJ0P zB!1vv?Akg}{#;Y9XZY;cucc=no-m#;LEJYXj7c_jX{I7xa!mtd31CXW7`quP3bqV~ zfA6k>%O8$uSYzq3@sy#G#Dle^4UKamV1Xdvf+6$}YmtPjy0r#YO=mw4V2e0japOMWTFBQk&8s`Db)ySy3$n>~ZgW1Bp zxbZQC19n^96mdKUZWc04P6ps$7YHN@&35J>yMv z%nMfu2wL5>Z6LBFcz8o89vfW^<+_(q9HUy93_$gvl`wY9ju^}ysW}P}idZR08?>Pc z({%~A897D+-{1NP7bx@o#S?A|f?CJM!>yAf+GEyARBYJZ*y#HCa4&8HcPDC*C_=h*vMs#@jU`mq%%M_nV_&)!BSDyCyX@|1COY?h-j@Cok_c0-fF4`CsDkiIleWh-#KI5xCE|$8Mac)!TuFT;v z(Ty?V?jf*H$wTe8#eH-7h3SatN+Z=>=zEjFa1<9`$e=BExkqbG1Bf!` z{Za?7-27HIWGwauqXPxNTL5|4cj<3wsaMG-ad~#?Hh=VM`N&E3ij#@H?hi-i8 zX0Ux!aykR8V@IzCuvN0mV*GMn1VOrG>SaL>k{9Hl65vRWKnJjnz%8CZR_2kg%xI8N zg``_AN6~|XHlNq|TIbaNofSxjb0yS>9mhQR=y0_Z=y?vw#^jBZ7pu6ex#`tC&(TgG9tB0LGgx9b76{5a4 zo%1lj&=Tasm;m_~<|M{r$ zpSB%pn!84<6}TN2z4p{F-bZkuCDjd@h8*$piFyDG2HdBN!QRM1!UB6hm^Ngw-_euBlz@>9 zBqsLFuc?rx#AFqScrKo%Mh`BJOQc!Bodl+K#F4W#as=9wY-1qOM3SWwX(NBInJUs+ z%ZQ=172cNCqCg6h=|wfu6LN)9_X<^5t(r0y&@IauIu7gK0*-@JZQCpvwcb46bGfKk z%eX_A|0=Mvb}?~*1xOuh{tN>rl;FRgSM+V^nB>+dKN9*rI;rZMJ}nH69)N7{ibOj~ z#tfHFozM7xPg`vOJ!8#>l*a2wYQI{me6D<_tr`KDd3qMEbaUF3@nF#7e&70SkAje8 z_N7gn`P}Y0j>;a6+UamFJPr!f7GTwSuM%is5q2p^E6&OSK`%vnaPWQQ@pIRhD#=)8 z5fHPsF-%)Miy&4kRu_q9jwy9vugr_<3)=#obbYxiOJ2nuX*h2}KJ7!lntG&8GFu@^ zenFH`G!w~~f7R=4=5E?t#)z@B#o{sj)vy;?2X_;0PFRc_q_b;Elo*0y218WY1u0ko z7!2C_Fd_(&XmA_!;XPb{74)nKgqRAzfoB1EhVX-|+i)+XLQOe#Yn@9r`|iu`UC!^} zQL_O@%8?s?yvFyEPu@gfE_mITT-9*p^@3wlNah_k{u8t!ByW7E@TF|O007fD|3CT? z(6jqOuf7j&Ie%+?nsrPd6x0-AKF&VW-|LrF=eW-29}QKS*bl%SsYv)YU$_38zdF@d zsqt~w#}m!|3RFy?W<|1G5eK}MY7AQWW|h-1U1Tj$7C~=U;`nzOQ*K;Hb*Pa z&-n`Eqbivri=Iu#IKl#AS=1&~YG9VtCv=?~`X3;j1b2 z@ftvYZi8<%cfC^?EZcUC#SZnU2wYfPqcP7AAnfyGP~Ib|xP=*RyBVA*bt5cFaeE{_ zC8gWS!z(&bzpJvKH`XkmU=TFfOT2C>?8;4wzteeHii4tSFjO}=~ly0M&9*S}} zOl1!Cwg)x@6Kiqux>l`QW$&HA^p5tT?T><%u|yb%{WD4#Ez#gd_Nj7T8H2g%aL+-! zhLrIiO}0g&rqA+^N3+AnbqG5Q!3RBQBl#&OobJwf1ZYVik3@k_0cTIm zH$T_}4(eQwp8)T*%9gF0^BtApUm4Gmwl53W2JM5_*G_Rqt`Q$I9yQy|_3e9{Uvj$5 zAKD9#1L1YvzHA-4${gVh{^=9?Dt^5j>3Ckcj1JsAUEch?1rFzAv;IZv;MUlT$1XXf zwbQ^=RG*Q~&ox`c`!&mymjV{V&=QKWNVkn{cEf>g7WP8rJKhA-+83T2eB4qta>lXxbV>bi7)p$AXX2^A28rWJhf3`X=SP;H8ijWsb-6SUVGe zaBMcqn|SG(K>H*9wWUp28wd)vSl-w^{HWUM4?#Ln1hzR`(vjfdMI z(JXlaDjQkXYw!8lVw#M6_q=zJ0K?{eHP!R_LJb>-YUz3hO_$^MK#R_q;x#@P*e6eQ5CnILb- zE~e7;c)E=SQHU9oMJZixiB!{iyrh;Xyd2phLaKFkwVT`opLG}dPf5op3wl}ytWiOmQKz?#q`3n%riDfIG-s{N}}>#a`?X0hNow!5+AiZXHvRe5n!dAxy;r?$ZQ zS_;QOL2`-k^$8Awfdo##XZ2Z&-p|S$V2N}iyhT#(A{$eWsmC86Y9%Qw!_ zuB{#zXEO`;36cjcaa1eX$Pr8?)jLc5lPyK`J&6|K-DLHpuqyzuf}>bH46?&haMHF+ z!28*DU5-~Vru8NxVIiOe9!)DUC024SHkXgu6=oSHAAAxrsm`CfM{H`~p>`rJ(+??1 zr_WE9d@jjHHYlE|>){oO0++xvuClFgDn1%Io#|}i)X~3I)I9qfS_}VS+96YW@Ey_A z$&RUS(l(<+w}r2|dB$A-ny7Y(!-I57i-f^1{SiiFpanzx?YONZsEI z?kC37tpHeu>evD>IRrh?L6sqbi_Z;}c6uyza} zw+Xkqf20b?9c;LHZE<55=n($Ce~S#3dviQ8xPnLT{^)-5dsLwwM7A5MdD_fYlFz+) z``){lLp}7y?lh9!dHjN6r1pN@_JO4*B#4uAQg6**SM9d8q3*8e)r1%E^u&fGxYIKj%AF1 zG&)aM!fu!RFOc1-%vQrxF)e5*{DibZtIvK9D*%>YZM9|Zq6=>Of_hnBV?~VEd7Yv% z7r3s@T2q2o8M>0`rOr*TcScG&py?)87GqJ9m_;=_8g{w{tH=WajQl8-@OyRBZFdS5 z3pL3!nSte+%EU^Af1q|BuMF=?8iD(kY#bHQKRoIF``A^$KPr7DsJ{LUgl*Eh*l9Qh za*_?ahH=FxTR%R1O}xYB>Q&gZDNG2o(V^^A6_D7VXdftz2vK2as6SaoS8%WWCg}66 zdiUwX_rB3vInkUG{OT+{uO%?Cc*MCw8QAL5NJD<@A8W9Q3m~JKzeGiV1C#%2pxmi{ zzGCRq8LdI7ZP{v7zdV)dXW|NLDbG=(o+V6`A!j4W^{@Il?2s?S9f=YU?;c!d!C6d1 zfbpw|VBcA7(JH(jr>Mvhpn!bpgx{+`?~W@jI?iUsOcssuyAFtWgqSzhgn@ha=Rrh(}0+s*81TqAOW~@g_i{D%-~z`xqSST zCvLK9x+gkb)D;ZQ>Bmg!lSEDFXLfL-SpE6GcG`P~#2BG9LXDTuqn&n3r^{k~gW9K8# zrQ6DFZLv;#Qa=5KqNp%*b5_X$p>VkZbf@suI)7%Pi%Lh8nAbxx|k@%v>HaZF$09zTLB&VMi)+%q%CVJ66d|7CI%kpfu1=5*bnH`^VM_Pft8XSl&Y zZL$?afaH8*iHbN3pG7G`l;Ad9#od7aGPG~l5H8K&pWv@DSER?=fo$dJH+iaT^>Nt= zLSAzs2Cxnf*{%E~?Ee2&SdiAx0u;wAZ~YoF15RmhoWu%GN@2xy;AsmhaM;KiKPL}9 z<473FXTuByj`knS$&CG{*5^}}&fF0iNEL#}vH=e7?~E-iS8?z+D6<;kt)ztc>ewvRun_X^6wqavPq9{qPyU7L5b zmN7XV0F0!59Lu8wWFTi`6{?{%RwbwdP=j31gdP# zZwt)%*Fk8&BR}??a zn$*nCYv9lU5Z$QMEuVMeVMdC{qY+NSJ~jurp;O*IoL%hXVhV&&yf3>8CA7(+dgMqw zkE;!6>*L5d`}TP-ur0kTAKivrC;eAUSr~V?zy23OO)YCM5x7VQU%dOh`FAjnChrD} zev5m$)>#?1ir;m#b}z=yb`kW@g!>ox61`LQ1)b$V)M#BuB|end0MzQU1gOeE)Kyy0 za$1K*SGjYz2`yhylSC1Oz{HtITw2;ou1N_Vl6Yqu%X8J-btc5A_Pkr?TkG@1)5gJM z2`64`uSdiL{|H$*^TD|KpGN44zjVQ)*5^|?b@-QW?n?}Bs|p;sX=x2x`DWZ4=(WCk>Ba2rJ5<3RX6U|Dqe^js~Qbg(yVB3N>7?ZKPnf%iS zN8f3XD6bR!bW~b`i)Np9r*2Hi&aKh9v&UkPy02kZ1I1+0xT}f;>nB`46#u(r{D8Eq zuu{EW5idHLlYEAeL>Cb^F|Lc*x71tf#h~Qi-?zTj$N@SgEmG*zz0{t-wR5lTmg9en zdB-rkeKY4(Nuxc4LvK2!tUnN754HFyM?3z)e5&a*lK<}IBWS2UEvqS(Q!7B+IH+4m zR3J{0L^#115H?Z_gT!CRLYZK71P68%QNmaKuQ2wk3BPpMh^R(~U{-H_gi$K7F)9x3 zJD&>a2%9qt)`nGg(d)iPvDN(Vbt}IaFfFP{GdTs?WZrgfmn{;fGLn`cG-`Y-9TS!^ z5_b5$9+JokUp;?(vpGlvufa8tM5pEvR%GEO8~~Z}i6z%i2L__zq(@x!8uGuX_}_Xq z?aK;KVno&Z7z4am{>bJ1`zp=Bg#+vD&TZ@} zM#2p<|6dS~fU+PeTDYVI?DZhI;Qsh;eh7(&ekByN|0c*;4hKEH6fybG!N-fPs?;<| zAYsT^NI5|LYHH5I9Y$zuA~fPgK?{E>0jD_tlZESaMMe7{CPrm=g;WF7cba0<&*}|oK z{uIX(Z&ckZRC>Zq(N+X%m?BO1W=+>%cty9D7J-@*89DY3RRo_ zFtvAR`iykiPPv{ya3S1Xp&k*E*77q5(OW{fI~BQXY9km2K>h4-|>st7%k=IgNMglA34kh=pS@) zQ%gb*JaTsjWl`~^){u%zS;&I6y?jk)E2m1kpPaVE$fGo@7e6V}|A-YWmF08}YT(y{ zcPlm`^sr433qSG_bt+pZ)K!gSjGsojVZUM)3TULC*wPU%o6G|&yL?>CO|W%Kb)|95 zeuShG&Fo?DT`sZuo%D;$1{7xDjAg>Cw_FVxLe4LHyVE-Uw*jE*-tM5jkDx0W=-SUU zzw<3z?op_OI$kSIx|T<`LQSAX|9NvR#g%*s^j zi{@F>=k#(mJHLm|7u;vtp!21qXp7id5>B<>_C9Flre#C3){*RPvy$x02WqB2H$X2j zq)|UZ_P2)gZC$uTc?w<*TsYFqMRKSds=5_9uS1X%tE5^1$qfX2lP>v-6&hJ1{z)j! z%*sfCMs;Z(vHYoYj692=$&lUoQF3ecyJ+V9)hT@;CrkMtbtclOnKdfuq_TKYIpGA9 zmWzlu1$-{BO4XS9JbT2#?Wa{Nn`#fp{Pn@IVz2%Id%mXz5I}NHvF5U52ismnsAU~c@APFoB{@S1FL1FZ>5C{pCOD+h`?d-7aw(|3tV?$Dl&HcDc z|GwIKRX8;5a-X=d0Aj!hl!f$p2o!0&MGRY1Y7ikbktU2gNFi%fYDhCFyW>xN4i?iF z3Ahlx2Z|qN8>_C&%~(YGah!VdZX}{GMqhGtl?r4#lBh+Pn#(dATG@d~OCLz%CLIGl zNl1k*O(_WUa$>5|(7O4+yi@03%IBiobX|JmpT0!%Z=e+DE>^QNA^MKBSoIk4alLuz z`(K|}$8Wh*h04EU`d`j|m*2yWqY9a_AAxM)yd1PE3{vMn_IYl^+x$Zig4{(Ss)}DmKdLa|8v2dQnqeO~JMeJD zY57VgaR2%t$<<1yK8pw8!0b1_f03m~7Zd5Yfb4z4N%FlaA0jn{YHajUow0^OEY z>ne@Kk4}xZcpLCaJ1Y(leA2$jsKbm*rr=FFLkedchneG271=!-#XeNdU@UPi9*_XP z_BLEz(2FY0CYQ<)f$7T)=zd@iX-471$Uv*c= z(wzWB9I<6Iy8DqXvVQawh`*kHY~}dQb!drom}fNdGmYW}JZJl}B>og-My$8s0Bb$} z)JOQ->!rKwH_Atv+S9#=7I5rF&hjEjQEcq^7RAi8Hj`F%ruyI!95TFnmbv)V(yd=P z{-K*uGn2PK%QHfL+1yXDAxudQ|J+cB`8<&UUX+ZP3-Zt;E#-R^=?#PpSy&n)eEqt0 z#ih}>qonkwKNK}S1f^o>at%AX+_N0W#-SN|jN z@L8%q`@BqwB1aQ%naXDMxFH)uRH>`Vwnp(yCH{F*MoA%wRVj@D%W1Qjt2FCB($e!U z%M*y@HUo5oQe)}15{9cJ=1UaboJOD7)PAiWj(%IiGCPR}vPKskr?#dHmd*J@E9_sh z++S!mB(MI%MQ5P!W<*L%Xah3bsY%I2!y{+Ail;qreRY|ah2f2oWf2l7DOm4~MPCtg z<6W(N4SQt|N2f5~DkM;>v_0k4;`{Eb7|dAs7g(1z{ISQn(nEjtEU~=g)Av3w9Oz+J z<)(ja_xP3b0ih%Z^$8y0-;b!1Bme*Y_J8pFIdve z)u*DYV3~z*#hwo(y<`kfV|u9m9ny~xRpdKfX3)~Iv_14^37!$t+{+Ge94NYF*H~M3 zlp>Thy&vz(kRLq=1(%zWtO33>2xL{VLn@rp(0_U=;J`^8h9f(lokzS&?P!ZaJJ?HF zFi5_c?n0x91whSoGTUrzn5MS0d$X+i9HQh6BgiAeRMuotYlDyp6iR$(dtwNj|MS28 zwezXypm--6%2zmL7~Y=@9DPV2{+Xt#H{5X30S)m7M+HQ2Pc`=h-dN($C$@y6lQ`*{ znpOhId8O=DP0TUolJUC9J2EX}7?`ruVV8y4!LUv>)XsRG|OBiJ&;x= z(1)EtdI2M56n6q~et+@LG{rli-gLohnu2z%K{E5l4=$MG{(_r^^eq>!81V2l^_rlA z|K_(J20zr%757?F5Bg=d^_i7Hk>T6B6F-jVY+Gc9UaiRE9yzMeg(iU%^ssNR1kz2p z_*ys6vMT`t!Z-fc#ty1NA5M|^A7r(E2hYCEPU#LXZceS8Vn6c=_D0?0pPT<6k`6Uq zL))!)cmh#m+WQjq`;(IvAsfRi7*iR4cY87Y<|0RN=l|)h&Ni_#e>@$CQ(yQ!<}Oel znFRN%5uzGWtDjL^72$3T#u4KCoFK|K^(@lr8l8MTE$Y|4`S%;|Cpgxd^QjK)t#~PY zL)qeh88zbh?tw0>Tq5pQl9G+<2Ph8;k7A6k{0zB`5Q(t??|e}BE`g`aP*Z+GyVS?? zS z+%E^HakI^po)H?NzOVIaXe4Y(o8i$)I)aGL8!x*XD`p{Y7+;F*zLON*d2>6!2ccoW zzI6E;`V8GG_X>Qc+)h3&D>Hx^f5oNQn+yc5nWIixzP~hG=?w$Sl;$ zo9<=IWpK%=X#4s2Gg3*wC{cnwHNrhxM-Jclxm&a9)^--=^pK@uXDGcSsuCOqbpRRDmNG@-7t^=(f3z$%|8H1;W$R3&tJl+^U-Qu;C#oi!xq^4&v`Y< zQ;;4a=(wkbl95eIroF-KhGJ{} z@4UkHtXh-y0-;;lmTw#=W3-#r)qg%60;87y;1DD%II3FU(ddqq$6rwU$>Tz4$Uk?5 z)|qgbz6L@_Tv2nLWBJP!0{>-w)tpOcp>V(&ueA_ln>+ko%gqkxRIY?N#!$Z&HeTwk zz*oGxd1((nG$4YfyM}+j^5>IF4OxVQSl1yWza}~Q_{k@iy84@>>Oewd3^{nPpfk2b zRrLJ2f~=;up;;8-D@tL`q6JJ$i=($#kFcBqiIvqHe9~E%{;K(>w@mDls!Tgy6?R_m zt(rV8&ADG?C3@b(gN@av{3=0)R5mayYgUzCER3KbO}`K?y2|RHPsCzRXrJx&-&m=V z(Rl@ISsoR5@Cg-C6Bdryc2R9Oh8*mvYuv1qPJqrO(|CYJAFrU@7qCohJS)9YGOOsK zIW2PrLU&##|4(w9eHFwj(WSce9>!jUt-w{|7)Ci*0_=@Wx)1uApJVu1j`YH)UvoJx zTL2Ky`}tHbR7J<&dq^8(j#xM{sI83fubE$TGHPD$bVf~Qk7rEjuvb%;hfcD^0snn+ zp^Wp)TX_`1-+X@92rVSgSl+fM@13g=w^JuWx8u1khT^&OA<(cm*RxY_X)VPvC^N@e zMD|jKjCFZUa_VIUEXG?NMH!d2rfGwz<-PTn)g{R(x3uRp)cv!w=4Z-H?HSxo*NUT` zwA3iUU0WU9Mfq;lJB&867Hw$n>CB-q#h_hpGLxywWuX7lgk zj6T-vjQ*OoelOf`=06n1oMw|rnS_KkKvQ^-N<9-azva}T3=Py zCD@*5HAvbDoqzP;WGvz?e_uO0k1VaTX}hTJ47xfx2_271Zi0$P%GE(sTE}Qn`N`1A zs~nagCL80iGM`UAi>xdvzmr``qryJPZ3o{Gzy3&T;HTO0_dw0OJ?q%+7ZqiT3)?f1 z^UlS6x1T|XXz2^2WKSI|B8I_#>kFGMJdXk@t6GF-feP;bHKNtYJqz~?>;G2Dg)LwF z1M$FkMYrXDl;vH#on*SsoWeY+#;MCZN6mL$5Iq^~-*DiR3bo{Sulpws`rwKbq0De0 zIrfw@_MHec1oM}2Q=lb=E=D-uQD|19Y9cOfHa;$!w2bD@RMDGS{A@F*L|L?OI%isHJ@gSMwjuwVRzVaV z)KVguT9dYy&QT~NioKrA?5(BqM}dpQ+U$(;b1M$js4c$Nnf!t&_UFY7#-C6Pc0*{m zP+J*)<42a$pFb5MX;e7}O5uKe64sDQm4x!B{Bbl`jK7MKZH(Sv^J$4i85b_l7X&!njBZiA(`S*~qQ48=Qd*mN6?*y0aQFko*Wh?}(J1GJS6RZsN)Kor=BM zGJ|V45&a)9k?0G!5`C!J>NzAAise57Qu>7L6>}Td@Xr(IR%OY17)tz32`M?x??gtv zeYrU(QsyBWiMFE92lfUF@&)?QAbW)pQYFa&KXg7+w_xzcVq=C*_i*jG)e=O1roQ!$ z*(;_5WMq@@(b4Kv_F}0$m#;8>s!}gq_j}ianCXG@Go@OfLv@&GQ>3(^w`H#|@-^-P z4y|VpH4r4%u^@Tm^{Q``pOqL&HDJFlX>c9(w#gYtu2d8MKHmA}Wv|CDlSBGgk`saRIchD91mFf<}3Lu+iufdM}75n^p4eGzg+fcuS3&ckN zs;%V2fpXm`hIs}2uW;YyRdo;R3AxUC{g~@n-G+Xg9@Hd*0wUjL z3^_0FU;k$946_@>fgpTVdDK>9i59QburGU`*)!ySF1As(6bUe_H@ojms=g}X;5ab> zftctH^`>C6&8s1AZV)d^K7pzR?HFNd{zHJ6K}MC&KPOQm-b1}mY5P0MKE`kG=#*=f zs#*2V-+QM9%tEW7=CuHF3Vss*{0LXhA|_s$M|Vy677Yeq9x7OINcTi~Zn0OB&w8$1 zn?Byui~U3N$ayH(+nRXe;P5ra`t?1!f8`HVz-`jSBetXP*P%c1I<)=Qvqlx}cR;J0 zYy(oS$C~`EYM+{{^#ZBbf>xd1eDM|B6Z3KBd20kNR?KDcv-Y1KAw}u``~!Z4FL+x; z%3`lO+(OYOhEULws&U3psc~AtrP8AvDI^)`<36J-Q?0=rf-s_VzmH7fLZX-SufY z!|IhXL~%A~6@bKb^XB=PkSHHiANzp&eYB`YKZ>nc!PP2?Q2^cjDJMd4=c^B$3@?cC ztmVVlLGcyy=sL*_3!X={Pz{)s#6TpB8uCmFD`PP)62fR`Hx@=CQC&^4syAcDcn7bv zQSaW;s+hyVTyZ8qry+!`Wd@IxIk`?|bq0rAM~S7FGVdKIkijfbKWou%=JU5|c>|+j zko5~rCbAN$mtX+ee0k7A$+xNAG* z*0EoeUrJZxt%!`wLC%GP2#V^3uYy^X&3XY$sc`J#ogpxdbr7`{Y3R+^)!)E@vQ`mFS}#5gQqF1zAD_#LBh|CY1N-@R@c?>*~@ z9nUZ}^=jeP=p^Y~1d_rX6{tBX$SbcnEu=6fVkJ==lvKePLspnam6M%{cN60UB?{4y z2Co*^N_7*@EE@?jB2Es><)gVN$cH1p+6(Z5h=T;ShndSp_{rs&Oo>}(DO8i#6<`vLZ`uc1X z{IJz%>%l^-q!u@Zc;@AT+6Art6(nuT`j_%y&=yls%@1Ji1T?Zo*JG!dQo9pQFS7|6 zf|&(a^#KT37(`H%ipm(ju0xrXn4p$Y-0!MD;)$lw+gpCmA*e!l0Fm;h&%q-K>kLjo z-fOfpT2R#!c*=J}{Pn79aLFpj@VJoNIMLsI2GSymm70}wHfIfe_)3G0Uuj$oZDE2% zm+4VTr*^*YxI|}%mW*~(86>}%ZHZzVy_2zIoQ5(Q$$e?M$6{@OdLa=j+69>Rp7pMs z8g)-^WJ9l~{yU&;yG_Vxj>es_90QF-f0~yM?Z;35z0pRTrRd+~O)@-YNeGmi;qu|jOVeZ0BfRoDDxFf^8{RGx=- z=g!#UReV4+KPcLd^!3MaL%ro$4`9>O;@$y4e;)es`e3u2AaF#vd_Pc9aEkJ&)8eh&bd1*HE z9TVnd>M6~j1An`U{rZ15(Jc9!8|=Mr1zIy1xx?jY%=w!k+TnrvC#@wNY&%PB22U&I zx%^ayW;{mtVYm5>ZiArLIrmIHH`ZMOS;JM69}u`@0v9_oH`e>Mwksog*-?gIUyLBn z;l-%i=3dC1%f@GsvNy4%VWMnn*xz~heD?8{Y)dOp$S~CmZ*7U{=LZ@o+G}3#t+Gch zx^O+ld@mmcMXBhGQZWm$7~qLg(R(6!_JX?YIq-t=5*2p#MBP!L4$vPLsttJQvx;@q+oA3;S4?XZZHSSl&Y4o;X`vun= zRuerdPml)!QpRC8SetT{0H(=HlKKV6z=qFKAhTXQwr|~gxA_@y(O_~Ge*j^D2wuOV z33Q2W+6(E1{EX)Ml}JRYdOs>fX7PupJVrhD>ziApx6^7No6uP1XlcwMX1Xtk7bx#7 zp}7t{OJG_8FQhC7_d@Tqcc^PTM()xkCQ9J03)i`2FNR#VTfOY3B(`0D*?TufgWHA; z2B_z;%cmEON4*2-vN8+U385X0MER(4`!PlGbAi7|74#wpWmr*3FD+F*>M|Ao096zV zgGRTthd5d_)U!nmS&&rS7&41*RPEiWK{cwLtF!voT7G@~Gv$L^8m%mXU&+1|k8z19 z7m^Kp-yr;Y^ARwILgX`h+>pP2Ni^?8m(10Gz95y4m?*_qXcF-(HYF6F0kdJR3GZNm z%%3f?@g1Pu|K-@grXw)%KV%DY;vqlBex%Vmm+Us>A|+kTtFzE+>d<8upSaENhW-HjOvJmEA&z30WI%fNW(qPZ;OoR%Mpg@=@b zpI?ssw9PX*p(*^*4&@C)~QFl0iJ2~JB4ER^GW^E^&HYn=dl zTRe&wLh&x;nx#-^5}Avl7cK9GE#Rf*qlUp)#N13)Q1ys)K4YGMlhwBElWEdxhz|_( z#L}Rw3e>y}pB>{We{e07kDFoMxM!dWNx=G`%^d=Zdz9i;kkb?Y2eV&y=!$p|#W<>W znT1F+7Y!mW>EoH@H{DC97mU3E?T>=yej}Y;5U{2}<1+!L2l2{4-=OPLJ_7fNw7pAY z@wC_pAQQ~w^RD;kPP~tLw@l#T^Pu+`?D_LI2|q;TX5w5|xY4#Y-D4i1zv6O3PdNvp zk<2_N;scB5`%REXHSWxT>bKd8kfv$DlN_2GdPZzw3ug}0Xus~z)^(nvcSHI{kM4lA zU>>8ld)MOteTryk8@9OsoD1P9my0WqrULj$sz1qA21-anN*c zOZ#oZe;g75U4Tb-#yX+Bb-XqCX&*2%2+~e~S^SK%h8uw=`ure4?_dXm=K4Qp zY6#>fk5|E?+vi-)UnQ&cA}`JrGSDf>fwX?^F(m}LCXenU97wO>_|HN1Bu<(KxyNTDd}&ZtQC1V|-${pA)*33ZzP! zu>OQKJ1V!Pj(x?`ihWuZh7d?-P-($Q1X6*xnz`dxyJjUEnZRyJVdLf8w8J`Tzsb51X~l~P+-->)=w z3}Zr>sU%$;MoS1R=~SMNMLLUFN@Lf*D6oT?qp7{SZa0MA(f*cGk zB7{J-T1{^9At)6lst+rWN$7`7h!qRo2#Ay&O~_PSHinxMzyS%4)XZ41mI|2_h1ycA zVhhr%*pEQ?JC&iY5dHW8wYa>V1Z~Cd%QfNph>?A{%}2P)#2#&|8VR!x9q};KY%0l^ zUdVJ-cajoGKC2_k2gJyPXPQGG#&7=i!fW0HzW)6%r>ze7zbV*s^LQXaq?)n%=zsAD zKT&ZRXTIZqY@0n(zjkCd@#zA+c%++9^fvr9VaITAG9J?*4A~u?4nAyj(N}7fh7l51 zX;`vA?<&}v^5u?HNvMui_+w{&nNWPRn)>4L|3Jm1Q57=pN9Z)5f=~Jg^R&S=6&?!N z`~)NJm|8$>uQcy90p45H&dmzfB$t1gx3|Os+!Ni;WZi@i~} zCkS!xT;6$Ibdnj?D-^nwlJHi%x!krzyu2W*G-)P$w?%fT1&2GG!WxM{u z4qF-PP7_yr7=hNE5e-?OE_XqD20j(b*C^r zAR4W{sEH?lYde(<^BWYR$Wr`z#A#ddj2~m7hocs8W*8s~<;u5%QRfR|^u^aotPQwk zgmT@0haW!oTfdC{p^)E4ZSl0=8N+7Ad1$$820K5!HepHjnCME~4Bz}zU6Qee)z8^O zYM&V&=P!dj>U& zPvZ(%nBTE;!{=Ez$|6o0T-0L69efK;JWLgd3-H+N3vWP5Ob-#48E|{~ zF70lJ2oe7eRx(%ly&zL+BM@r#B`D6RH*!~!w;>I^j9cLoPDI7spnf2JE<-{MFrnyf zM~trutSGc2fl$I(o!3&H#H$q=^7ojnw9h!*BGv&*!t(I4ZqTLS-2!}^ZGKhqX(Y|x zt58{aG2aIpPuKifT{Np_AuYk3*XUj>%32mEYAR6SMpnkW@*{cggkkim-7z-DdIx!?$LB++dUo49vLQo;>t2@yi|SY8&Pe7(cjHJFR^^$_sL8q!Vfh; zbZH>SGo6hS)>Bes%N)To)kZ$3KozmRwXGMkmomwiUaBfy2WyO{<&JYS>-acHh9Xm|2Tx{kjfhLX6#tnV3fHOTI6F~snAF#3E#)JovlSl`Nh!R#2I$_fPyu?Do``;F#Ndq z)kS_v==0sF_%vRVT|s0~b&>1{xfQBDU=7&O2tnRKY9vSpma|wI)z`2q++KF3F26@- zT3}5Z-(69*b7SIlUrqf4rKr(+D721Wcpv-(`POKuP<;qWg~`*Y6Wo}|CExD=|AA}P zJLw&wk2(7?r)r@Mz`e^#b!SiN@pvh)`f|kbNm8%s4_JUo#`>|M>ME)cOA=G9K<1qV zF*F9aaF{2f79qdLv!|T}vC&nd69nxPY?1AHza909eV#jOq-#Q1+Ia%2Jz(;~;9i?Q zev5*S?C0#iKs9ORY;pEO7ZZ%K1K>S;_87b;G zrTF0((Xr%ZSZyUdlaPIQmKv8Te@cFw7W|)Qt`8CSa5*~unQwD&NlDe0a6nwwE2O$W zj4!bYKJ#nvV_Qc$DQrpF3NGjCR5R7DKl%lCcgsEmgdZx_k;;A6E)url+6o_Tnh0gb!luQx(g1Rd zT}@3bK?F)|12U73{-|~Vs`%*Fjim{)dkhWhqR#F-NlC<-#=l!j-KmIF$lh$Ga?3Np z%Q8~MA6J41!zKvG+6t|KradL(GF&O(2$Yx)_5BBid*1|o?WxS~i;Cqpg zU0q7wgHl{z!xf^r@`F#1iLChOD^$W=h0Ge=Se4RnB=Ing*W}Zg`RtGet!8{=&&TL& zGo%W7<3fvQU;(zp)!LB=)X!Js(|B&mFi%@hzfB@>R=~}?QZ_7z)yiAdkMbm!gmryU zs|y4(ALkn4>+K!=DBg$LR{{J_qh9i*!8c#&@?iDKXz;>rWjsVw*8Z^S@%yKov3PZO zJgv-qz0}Du@tM^o-uDA)kww!__K-=&wnE`)v9H0!@MO+dL!er%M*nlE^G}5Fxj?k0W1Ivk&Qdt#gC( zU-630 zW~mpXz4lM6yv*L^8GrGMUna68Ko+3g2*WaBx53&Zbm=7@v~bGHDD~|sTb-VYoKv=7 zg&f!x7hglAg4GXLAgRC|I~b_>z=ka5E5Wa>U_~95EYjSPNRmcEpj!Qk8oi50wN?*J zq`{hP)Hxq?uF6naKrPTWxrvr4qdHL*;lnM0ZH0|u)Kgy`ZktR6GE1qXBiGyt9)l31 zcPc(Xq6~o}Sv1v51qO%*z@J^B;1a{c)wx=sR52nIJTF{Un`z*RtukX9fOHQK7oR~U zv=!#~x%2s`zWI7yX7p2~Cc?1sHwhOeo-`r!CiyrAT`8BGtuLgqxxVRF_JdWw*X@Mdjig2xpt6P+lBw1zB7b>tRDo+I;WhuHf|pd4I^XZ)LT!b2zX)j< zIigIpc2#zGnf1t?-9c`uE*l-@0Y1;AP7cD=>HwI>2W1dGioOh^73re&(Hs3aDS*-iuO+>%{ zW@QNJK7r`Qchfeh&s-ZXqdB+9>PtO(y3fFMsN)m%Z(iZ?Da=n$in&$at7SORB=8i; zqyt1%7pmevReB%a$1*{{cXrxmrCj-hquTBMBsGJ&wN3Q1(Pw3sai8t$B*S>=ZLilN z>#ZfJ9tWpp4HUWmk@^nul19aq!L!UaTa{Uaf}Z3qjU4E^kC#0Y!4O4hfrcf!!K@we zbA}i4c95BL(`RS7-^UVMDdwA%4cH^)obV){(4Z=d?vXDRxe9m>RD*m37{`wMC6#ar zxCR-1zisp&V$193`y@LA=A&Q5g?ItDke*p^k8u@@vjDvmrEFLXYwekufD~~NJ!Qew zr^HxAT=-icduP@rCV4T^j?x<7=H&~j1@hplKyS-nk^JRv1jYI`*|heB{O=R^M8EjG zxY|>O5D2mN#|4zZjb^GJ%vfi2iIPGIMm~*dsz9wS>$Zy{7_vZ&0$C>U)|YvSqYxf3 zDn0jrJ1-3Fwv0OOzDxL^_e`-qD;D>^HXjfQgHJ;~r#TMa1NupR-_gJccAb4UsRZg! z=U+|IhrKs#^<^^z)MMSKxOK#v$zLYcNPV3ZAH>Rsp$BSo6)0CA?=O5 zAdN?;ssb>G(j3>|gKCjOmfq9@%%Zw)Ftyc1uOQuETKj^NT-$qXxI&B_RED#P_w9vf zyx|LQ`4w*9(|E>3@3~@`?WkUa*m}w|50I)LeZqQPM4;(+avq65v9a9_QQiFDjQK)5 z^Iw7kJ*XY$;cqc_DpfbRQZ_T+@WKR>n3t5IyPoM0eYno}>Qi-Juh3Rd z=Obhzi{Cd#dZq!e8ELUKja#q|O8taHF2OW0Ecbc=_N$kkd(kI^XQQT$@G6!)J$$MR z(T9Id*`<*IQtiQSQ;UY&c|jTgE#RxW+r-ANkWf!mcY%8=lJ=K?=B@*yhaFM`Fa zZ9Lk@nkKF@Ymm`Yn}mxccKLXl=uNV(GZ}=hjdaMP|19ed{w-dnov$t&J>)(~yGU*j z_}7^qF1>9MEn9sIbmXR)brkzn_N*uN3jFwCBlmHb!U0&g$I$!ulA>PN-ADF=6Ve`a z3sI|t^A*_WP@G89o1WtTSFzyjk0yvsL_f>omtnAHbBL-1*0^Gsou#&jznSJ&U&K9E zTV>I`0lrqD?GyOGJ>?FoOM{Wi(#6(-y;sVi3PKKV(X2Ws-0woR7f_!$cl5`v?*POC z<-WwYCA`LZw&j+MW_dO85w@3PgHM~ zi3QsldNSDN&)`#IQaKv>aks=~t|IuU9@9S4^Rf%C)*ittsq%rcS>XYCX988uJ|EW-kD)7LG4RIlXTREjLL|7t8I?#v({NZx^_GPWx7_ZzPN=M>UCm!)87gE9dFBZ>wKMA1IA^V zhImcen**u-EwH!M=e&W1#(15b3yi<78KD%efahizyILXNTuvL$4d*$(;=96RS;4^< z*yKj4l_WZk+1;U;TKqsN*QjSl1wW`g>~FGZA%1L5z3u>8kli%B>0pfKuGSas9-l(v z1gRm&#G#7FU53P6iGA~XM@QRgva46LDB0MS8U+6!oVecS%z#aiK8pQSLpHCKS8hwYb8_?e*4gBbG7tzPetYKlASopT_JqgZ}=*p_Y1E{G& z!QJn#(dG^r)(w4&IL~)n_w(6K$WWG8U2WpjJp7pk!Rpqe=woaUXMf98Mf}((WkX$0 z)erv=%FV~W?=lF{I6Hz~b`!ZXbs#EK?ft1)1cn|U7O-A5-SiNIL>3Kjn{Z0253Rz` zSI9olRrzeuRVUL*^-Mq&FX~{}HcJq=t|SvzHm6f`()It{>NK*Hz;)fGR1K^#Rgh`53PsL@DVV+1KvrtDSMcfPsd(!)o62Um` z#23+81y)wMc&jDqD|1b`3uS!C8K5^*2}Vcnj#xcd0Hj4!a&dFbkxL?8#53HMbtxXqboEQzJCRFoyC+*}s& z(?dSf&!MZKo=YkuQsFj-!k2Y&U=?36)&XMeXfN4~Ot?4Aq*qt56G?O%mV$fO926MS zkygk8KJ=iA?3vCkEoF(6{a#p}B2HCv)MbqCSL!hwn3oAP)MJg~PGVmnv&#OWncCqv z4-AtF^(}&)N`*9ZSVjDxU@g{`=$-~A>l_LazJ)I}L>4@fH-Z>jQ_Z}h@&VIyZSe_N zQvGn|u&Jvv=~#Jf<19yotfb=#JOh?E;4UxG_(>AZDipb+`HAJ83oibZulwNNb(2f4 z*~hQn!xeJE8=XihtHM}D6Vs?Ryn>-Gj9hi5*w;sPm8hwi$_?U^4sR_gG@06pfw}k+ z8vWx}DmeaSJy7O)a|`?GVq{>yroBM9A^jG)Mz9m><^i7{2bClbELj8!<-ZSYl^dm4 zP#|uAz3gUlqg&1V$=sP{xvLvde64aQ(`pI9kqUA;`$^W2@7Y+oCYJ!?_Unx2y}tFk z7f*kWpoy|hlQ`^4KI^Du(E5I%*Rd2epMS8T)VwQgp3WdtMMM2q%OKn<$h1l|H^@fo z8HV8*#xg$TD#Trx9a=l62je{O>d1U$k6W1VE2S>t&L8mWZhnnvE+^7#Ylh;tGR?>%3oJjEDj!FDNA-0wsDj1MIq3Bb}7HU z0bR62x9H>sGkPqeUcRv2XUO>pq0-^9br16-r8Us!i#;p%P{fvwTnAPXxk|eM)(AIE zGT#~-$XPBT4*x<`PE=~p%{;JZ2VX7HU43ld66tRkNbmTrrbLENr9;hW?Il6r~ckDmq~PAkW0Dy7zXob*DLg73Hfc>1$n}j%)5{v!=~^x z2+(`h;5Jud>XiA7(Fgf^@4df$iWiQ4$*zsIS?x1jU1uNCA&myqX#5WI19#hcgZOYQ zrq1Lrx+xKN=GU%U=;g3MMu(hpTNCoU#hNnyr8rZ+?ICLc+dk4sLQghe$ax?6oA^5W z^1I|t40FrEojPLm?M^8=*~`-6aD)Y7R>V*=r5kjriuM3dOF$)BEsklYLvM-}dqry1 z630|RP2w6%duXUd5AV#~)(3v9P4Q`gI!}uC8V`iXWxLYPxd?EXbLLWqT|p}P4CpD* z6&qxsdMY^#y|xdC6Jx6@3bX}kR@|T_M#QebaMF9@5|_et64lZmKcL;$Q5|+AE(@2+ ziu;08=3B^GZ9b-16zKE=B%3BJL07^jyN+X5WCzbnmBM#g!sr@VDr>`ikrcxR#69u* zc^+795xJ`9VY|^IDDP4%np@wL(+;G zK-$;w(<)S_mY=abMQA@NuQ8VKnVXZ;y2@$H$Ys@=E&}8U!mxym3YN%(5WqgjUhK1e<65+foLVTt@M$|{OiH5w* zRq#sVAeEci#|kV^xJ1#=@Bo7ruYC+!s?vY3nte%jb;ThENA`GfQBtqU$h( ze8kpb!`GCkL`_Feh%GFk8c@s0E_JtHKjy9dEG3_Iy+0ZI^*e!B;naJ^;4o7|VF+igMg&XO>YG z`|w?-Gx@~e>%>n4>QRM)S9WcNFpeF5_8h9YSZsq9I(#-h+;zVkrbY{tOJ~a@snu4b z=Z^c}jK7a7Xw$VVonNO(Q73kaL;CvczBJcm*%yeV$nuC58yba2sElmuvaOY>)%n|aUb9R2l}JF{DDB0jyC}0X%ONu zAi*$@-dkP^)0kUYD^X$*oePyboE1ujC|I<_GBO>c*U95{){k`@g{s{acDjiUkPjd# zX9x`_jt)>1mtfSsKbA#M6lso|;0Cb?(aUGhHc2Oz+geA4saL30@6gbghWWe6VPvkX zZJ6Z=E-Zs6WUHshYYW`xWscX>zPtA`dwBK{bylPWyWcqr>3RjK_z&35@VJQ-S`*4o z3&2(k?=qU&ouVvX_4Mj;Ki8y-%DU%FD* z0xfea*sDDe_)JvcR$=N;nRFe`3T-U|W9n4yaAOHo3sev3YgC}FT*t6*rFA+PED{9DK~%Gp=hg{CWp; zU2gS5Y*=H$e}}E{{*2*%2YK=>h!22jSQK>le>5J|tKZTgm>Z)v!Vi2=(C*cboNbUSkXCL6dYM{?hyO zPYw1TLOE5n8l6>b&TqqeSv0_av2{;^y?5WVU+-i81!gV!?^r!!=Y_$L)My*}8&3NM zp1ZF_$<#yizo)s(Qxwbk_!)(Pg*uf8 z?s%pA)p?8~OJE&D>slBK9Q#)#A2_tg7&a*g8_yBio`2;+fR zJ^+ukZL5yPlw{Sr%tt*+6NP)IO1?xod*q@D1AXNQ+CU4jy+#`P)dHIJi98%^5UEa+ zC}bGvuu|M>g)Hlh(Sb81g=IKvEaNHUeP;t?8heHG33ts;$_=arO<$){dbRs(pat;( z()T@A31Y$%*b2DUPX6g-uG6zz-?DNxP^ZU(`YKnImmoxQd-x-2ceOzo1Y$c@d6LeI z1eGNWyk3Lw#>MQtav4Jv{~3zZljb<;ZB8&qou$^3w!}q0GBh=hYI8wR+LKmFQco%a ze+h9fo6B%g7JV`{A2{I-kxltgKahlOFs8)XkV+m{S=v#jEJ}~SfM!-9y9u(@8`SZb zeQc2FQJSxSrL!#=ZSz=&%MdD`Yg3G9eN|!^FKKMJtLdbLv|^LysMuPkIM;ZFlpffQ zh%6{iB|XnHSe6Q8(Mig(FT7{{gmu@xzo<-sV>5~JnaKsI!RR%~`b2Zi5*>=&^E7Fp z2JC8_&mg1t`>V{GR9enWXoJX5ixkuXw>%HZ=Q1A)J$l7Lb;4GZZr#k-M}(Tv2!r2sdGy#oogxNe8h*`@2u!5cNj_X&?^)a;L#<@uF|f0 zB-ZJyz=KM3^BDBvNIKEkw*)w)A0~%k9oZ}{FSQPVUKqyM=7LTkyK$nCoNUTTk+iWa zk?FzfsS|7eIMCkakvMnkJ{lR<>6wZ7k;GI@h$!s4QKd=I(Nq z!V4#@6y|&}IE_XhGUbVnl#)pL@6N0T0cW&B@AF36GdLUXWxVwFP_b>$B?t-CrMaXm z)0?jYoU6VK`bb)ZG_qk>W^33K^&~j!q&~x76w9aLGNr1j{I#Vl!J?k>5@!e*?sI8Su!byAUAb=h$-rLmTerZHdtJD+rUj|W0YB5kT17({l!h=0 zjF2axBn7!N*OQGnRKXgSH@8kxJimQyYSbMf$TuAMbhaZ%Z!ljc1B-Lmb21_fJg+|7#cz? z?CP8nLHi^{>=o{iJ^068SyCum%kZ?^b3nxp*qmY+)uat-QKpf=XQbT$MGVOZ>T8N+ zyfzKCvJdnJ+Y_IQ(}xJD%y}N;A+`>s^TeL(M|slaN~t}DsrCxUbqlmpK=`+_){|1l zhSInW0x3VXwiJ%kNdJCk9YsUkxrV(p=M^fT8Yz)RnK2dCdZn?93O35eZJ9B2c0~;N zscoQueQD22Lw+aNfX#QQ0g5?mOj?`3m#9x8ZVS{n4-#8}ewpNc3uviYn^imjuigpe zsrv{`PsxI_-n<@$%Lxr7s)N>jiA8#*uB^Q@?y1pSt;P+mL8}!Spsg%ZMB?}VA!k{` zFa9Zf%OEncZgb8A1Kep|EFrLj92>@#Jb|1K6@6pDc#jRLnU>CkfP|tIa97t-yxc2^ ztXCCz9(+JFgcE*}$oy&|{?tcm`K7{47o(>lB^H3xc#$G@pQJV1QLBw;yRcYcIC7)A z%7Y8-S~H|im=>WmbEV%U270*#=oh0FVVXuu(5A1Hgb*a+&l^!@fxISUS{t{fE2At0 z@>?g}WEMgFqd1cw;RHF)6GI`5Lk2l1NaQ8|J_2u?>&OL37is8&`jd&xDIzk?^-*Wbjdi^4sW4B@6QNFsE|--i-TO>+!}Ix=^^J!gKR1*eK4YvzAxQZ2-&T@E3X5{ z+08S$>nS|0gK-|*_!Je-=skSpQivCZzu3&_f^6=kbg9zWd1culMoF zA9-pjupH_I*@(+O;o94DwmjtZkU`Fe0ee_8*A%!*?uz}_Sr)c);`TUqQ?QH8 zQxT{#AkA8pE&H^)$S{-_Ov5JCN2}lQ8K>z88`Q^U`lWUE)ud8mn*kcN$HnYl>Qfxt z=ny+g9`vPGchi=z#Ojd`*4ssG)dxO79?oF5I!{tI`pFiQvV_(I^sS{Uboh*tpBUc( zyF7PQzd^ces4`k@_mFU|Vj=oP&fI+TMi*uno_kRn&g)4W4t4yYCKUL7V;>;R_zuWf z)UPbJGP~3Db+3c{^(&P0BgQgzu3T6>Apbq>&L`y|Hh1#a^&b1^m7m@4`QiVNZPXa^ zW2R?=?lV0@U7th@=~Xc9{^8tG+xfIbl%s-Qg)~O!Ka$wO+wUZH?f>DHZ)j2WX?$A_ z<$Y`8o;>m$We*w@{Ff7%UF;Sb)a_N!0`6UV+hQEt`A&P6Q5T_G+krnj#1nmCsLv33 z)HS~)$@bwXu+>ymfnAqk(RHNj${pR zWi3)SFmQWr z)hU+I&4F|m;Ec#1u0m^0q2Psag0OACQ)E4o-evb`F83T0zK*6DN}EvdJ2V!gJgewv5JwqlhZ49C~jX7RtB9wK~rjQy=!1*9%JbEr^Z z>@U5A{3br0)LmDJv>97#x>GFUzihf=mG^S$7&t{X{PnHe&-31gb|~V>eACW=KC2PR z@k#J@;69rx0*xs6{O{%sYd{#|KJ`8f&txz3Ix(7s=Dfk4=8+d^rmHOBTPUjx+Gtwm z5?dmuQEsr&->pJdppf2K=-7`TheS1nJoHs>x6LeBZqhq*c;KZ~9Yi5^S#}i$ZsJwu zBER`f216kIg&g+L_-rDqh&Xy#Z0J`j>qA%vP*KvdL!<(0#? zu)4_j#?L^1<3kdP-e~ZO;FaD(PD1%BF-=paRWz27p&{hVgrtRKC9RpYw2&In2ANB2 z`~Yv;x4_5(l?pZ7Q7tG6a~<5*B6`yjcqJV-I;HDXP(wnuzQnX=-Y%($Zz_Oz;XI}f zb?1hu0y72qavcI4xR z*F4Qtsd=b#WnXiKgvPWKr}97kh8(Z8gxte=11YSjk>)76vMcPWOB`ZLduk{O)#}aQ zSYsKVZ;Jf_d=zagkd@Q-|KSF@77>|&Iur?L#xB*!;uq*qmY@-aBBgS<*SX+ob4qB?Aq~kSp zddxoZ*};9z_x#6#DU=cNE`io|e(l{dBa{|H{yD6N8?rsD*O9fMdg80lbfG*~ed6;p z`xHZd=~vw1@N)pUf$jeG+iY2-TPuwIxV#Zk1Nj=j*M1!a54?HX6NH5Bn;r$xf$AIiye#^4{Kq3{ z68FeDWy~KYV7^Z66X6L$O%I1L@17bSKdTP1!cP_9NQ>xDV@iT&tROW@OI8uADVV$y!2HpkoWhNi?RAqhd<}x@pk@!vo@2m1XgHHE$Gc zvGJ%3yHcJOn4qRte7*+4_y))Hv!SsSg4ma3(efF_ORC*czn6hDc1(l#x-YSeM?x-$ z7Hp(*CjFkg2L+Xi)GEbR4se$BBrIuoqJ5!-@j3)-a%uq05JthjCn#ZALJj!vHz?_0 zVkuR|Vp+1qJF5A1O8@vfeb0)?T3`!RkpO`}e!o8Fg6HaEHC`kcrUw_AEmlKDNtS&H z^$7a{GF_@SbbmMCLH38sRzN&N+{<9RPLnb(6lxpnEd6Jr#rJ15z=nW=hGK>%Un+a&NOx&D_imr?E}J2uVhc%#brP*yie$^erCup$ z9Y3Asii-LyoRMBearEP@1fymxjwNJa+1Q#Euszd5ZnFd3=v`d70iE(Z*s-f?CAqgt!!qQ0B8$FDWnWyDkzDjyhcoVf|NC^u2 z!f(nm@=1u4k?Y^8mcsS#ca)m6Rw=f5^Fpsj35j)Co)zTMT!96U%ZFwuJuTeed}1w` zbrH1!EzxgBTakCkp;8`~v$noq<+2@hPNKOla$jq$T-sTY%TcWX{fc#Bqx){enBBzJ z6a53Fz(%Am^nA;`#xm~Uj--hN#yT%T$y2>x5{IPu#yZ?;D1|Y@7}rUWc2s^u9fS8W z=}@N{ND>FAO8mohjdOWgCzqQ}v3t`ro@rbBmm|}@d z=2d$TCzII-R z@9>KCV0EtI@56mZ*YnLf_3yONyTN>mcOAY8i|(ymTByI|S{}gPmW$`tU~6}n*YCDV zuj5h8a-)MCo>-XU=$DWdi3`iKDAjb&f{pN&DHamOhEPy=&ar<^F%&dHs4p?%`rvv- zAMgFjH5>UQ@tUFF52y?LyS1|rdhppNlU2VF+UseNm$0#93zZQ=!ZXO?glY?(!PXQw zZ;`c-L!r*8N4UWN)Lz#Gb%^4u6e!qX$WQVW>NAYkA*h*O6`dcW?jvkYP>tt2C{|tT z#w>OI8e8?{KP}T`@`eC2$`A?5P|{(EvZ7`I<>9jwjfjIoTDj&O;cX41-%L_fJ?h>fAJ z@?>wJ?`2IZQw9F+HO3=ks7h^_%fPRnOJ^-|XbHnR(88L`=$vt}{=kktZto-!Jsatm zq;-LOK;7Htu1hLxd-v&w3a~PRY;!=7YAuAkew>GW>O^ST6F(d8^4e4gwdL7OY5A8c6&Q%Dhzz`9t z(fkYYj?eS9w#DR*enKE$d3=EMmzlGlQ1f=AY(C~OxRqnix13K|e4X)R33I%!#paHE zNvx9?)y8Fet)IKnkZK&y3e{>cXi2EyJQ~p{yP3->1$Vc)D+~xVzJPTSj43HJsAoz$n4xk>XQlJXF%`H0t!5*pSKwV};W2YvmZyb} zIf&P3;?i8dmXlW2)?SrItL1k|efhfqe%R+b+HG1_Lu=1N(fsB{gVDVFg~Ltk?!iT&fQsrj(eE<_p= zjT}5H%L18d4F$QfG|?z4Es627K=7I?9Bu*EDnyF-&@Hg!c(+!0vkmGKM%g7ivsHLX zEwlwv7x*u@M>=j-Ts>Y)s-l_h;r zY3-yaDl6m8HDI4g@0)O&9jMn(oqx4Z<18!o3RP?4;O{IqDAaqx3|cA|+uh0E{|EZJ z-B{_7%{3B_&t&NInSeDlsMBG?>g>ezV&&`2u^l!y1lz1D(;n{(X|Kxt6iSh!^0TYG z+9PWIP_5xWjh!Azth8+iPjS$c=jtC(n~}r74n_6;QtK5OhG`-enLx(CiP2d_d1bqh z7M7t`9(iy=J~%mJUDGqt5rFPnnCSVwN`}a*C+jYoKNjhy624N{U=+G*vE^jM+7Gi| zqustn!vRwId~iMz50qTX;EpF&snuod`6P)N#X%v3#VF>i*e}JvkuM3ALTeiBrayRg z^M3&P2Au7g_A{UztPUuDdZ7(Q1C2(}8x&NU>u@Ad;Jre}+nTVmP0mu_fqmgfG~dGh z<{BU>#dIPW_pUrolM~bjH+-Oym8ffIxvTS7!*mMXNGw>Zz!pwm57o&&Gzhg2EQ=^0 z2v(M<(=8^e{#>>u3R@IHQCa%cJ=|h`P5xGph;P9W%s_P9iqKhsj#?CHB$A>1D)x?@uJdaMX7M>IQY|JjOk^0FsU@;ZO6t2;~9pvG5ox z4VF-_L#TkyJqz%(C_&l3_Dv0n*zrm~`w}ru5#@2(4?IMcAX=Z5hFk|xEsv{%DE}NW z+98k_8WWKPhK7 zhI&SOy40nvKTjj;!%!<-m1?+MP+3-r5u=eGb?t+PLwpmZ$PIZ-u+SIiiR)Q;CXgT> zVKE|UItY|5F0AM}WoQD6C}et|!o9{a3Rs^wxxz9IFG{b`;8RMK(jY6~vGODccNhm@ zd{WX&<&(ENHQBS1Ct+DgD@l7Mi4+gA(@>?J6{^Fd_}T*HT1TI zt+UJbflI_LXmkYiCl9>qtjp*`(n-CPW-pCcjKdjH%w%YHKGNSXu)4JL8S=)6q)9a2%$faCqEaNr!L7)dR`TOGH(^nbZb4v}W#pVG*DzPOBIsqN) zv@@}c;$xAjnHcIFQQ+Aip)$_`HV8zy}R+ zQqD@73>xj40CG8;p8zFi#~=7B8L zaJVQ-3w5)L(&T#qzr&xrwBVdlX={wz`y2Rd{-;!@j{M)`+88Lg?%Rst7IkGho<9)` zEhtmBl#uthk<|_f;VslXVC9$R^B;c&y7)|ge@dhS`!Tkp6=Ukr+C@FF=FZoVjYIIn z#^Ak<8Z{!857>nmN`f)$Gq83ZPwFnRe^Vuu24x)^)|c3zKF3(bSFTO8>w(9s$PUUO z^CfhAgD>g0kNmg9b46)qR3rO~Evao`y04`?b*NRp-p=kQ7dlaMS|lp6DmUS>kk(MB zG!|;aJ7Vm%bR;ITf68VKHW$C?9&bRm zK3y=L*hNnv_bYxT_t3Bb;u8bymtglt-$OZ^nR^TxjOB?N`6N+>K?mQ3YJhbt_LrLL zTA|2iw-1UXJg=B2v0N#-PK~27xYmO}L$1AUzz5LEoHdr@iZ0@5j0jNhMSsIHp}Ff9 zus|8l@i-3xWnW?${}>^cjn#hrsmpO+=;CjYwa~h)fcRU>%R0Grhx@t>TK9z?*Yy2A z^?gRFP+Oup@`x8EmMGfNt`^a`N?jY(NRoKkIg?mkmYT87JP<|s`z<$@dD2@rA^eX zb!p20`O5jKy%r6SF(kM16btyRS@W~`SY+;|d3u+-fkZvyQx~-M+|c?(*9Oh$@a`+S z%uU8nSm2-XE-L6IwwPwKU2~x&IwPX@OK2sYqGrDP`L;yI!(Th^E74T*pF4s*!t_;zNJXfHj==?L4EbG(4XQcFvf1EUjwVnS6tOZS_#YyFwLn3jF#vD)cY19eQ$WeOJ|1k2u3J6 zx78v&pfcyP!!$@?d53M>oJF?ww0Rw)Zq}wT{2c6VqvFHlFkWyOo|}FU)$36Iac+2c zjwcxKEi)n{-Z?i0XKrvYBi}^kD%gAG+RC(yV`g3O7W?y|zxkJT zuErRLr|37kf#6?A%QG2=w+m}L)KAvZE41_gxP@A-+z0O=nxk2g?qpb$yX|4l0Lzn% z&x!QZl8T^fWsxpJ!T!(!zVrOT{^^51f6TU~2OB%B2Ad>$lX6o2M>o9MYF(s#q@AMb zworxSVaeCs70eAE+`@E#4XSKg(Y|cBE0zJz3QMT_ptcEyXN+H)VC@QqoR5`P8#c4} z*)Vqrk`;l<&AENhZjgoN;c1C2G0}zYbk83|@%#0Jyn|r~JTy@lvQ=5`x)157{|s%e z)6UF=ZGNp#tzsOGSOQ`*gRYq+l$q-w8Ye_#p*3vM=5Ag-2=4r2 z@qW^;z-m#v-=PBc5m_dSQkb*qE6`sj)(ha4_KB)_8Ea@R>DrLy^^4mWyKS6+UyqIjsmzJ}OSgnODX#IG z$Z=*)FST4~OV0}K3xqrv`p=#vdV+kn(XU9$DKnh z)|R{u>^RB-AIv5Z=si<&8Uu}wU?|^R%Y)I^9_D4a2SjGoP?A|!$Oy5Vxz{>N{Tl2+ zt)=Yh78_L@GsFSvU&2RLA7NlZQK0-Yte~X~3Y98#t@kAtsb%1|(0q$pY~Y_cd;l;G zERge6^)))Lf~QqX4X6NBp;+|?*4suM1u~(^bLMd^g~3**5a*)%u=Dtkl-8O;-iWEu z#HuWXNKU`}&$X3xnw+3oU)@|-MCWDB56E$pw4oNL3S32~=YwHjbs0sW4D0w{u1U(w zs)a=d0}Ia+SM;aHtUmC@0%M(r;edAW)mm7mJ$~ zeN=q}bq{o?%rME(Jo8*PcuKdr9^w`d4*+91fLi=CC}A+PH}-4xSuw9NJV2C!p$tw? zm1`UhBpsNFUnw1kzKsR8Q1^hMAsuU|#{}v#x_{;5t|1KOnx5p=Y=22_Tu|><)W`tR zu@(l|s}!82Zjex+rUS(MslbWDIhPBVt&5;15i88o(CA0 z99xG_$xOLZlJcj-Wr+D6Dq}2Mo+x!O3w?mm783(jD$k_BXGq8tQ{tL(Ulz!@(SX>_ z@o||s-Pu_YS=Vo+Pwf|wj3a4cfy(8R6-mqRN0pySM}Jm5Sy6u0&p~DRSaT+5Eb=b= z$6r|zv{Yka&S&KTf(^x7soh|}+T74bz< zTWck;@y3du=z;y6exwCR|8WtEjZH!o?Pw0o$>wf*Wrc{Kg?0%w3yJ2f!E9Ic5~jGV zp!y230rv_qOiBfkQ)tI5FSK9XTJyZZJL`ssI~4Wh@+@yR>nsLI=*D}*_2>U^S-59Q znO+T|iKSf0G7D5>msCmTje_=@A0<{Eqv|9@9^J*{vl$O_t)#b`YhyXnRTR2-%H;G! zh2nI%$Nmk7?j@Os#1dISw2@`}MCHyM3d!tJ zM~%O>QRODz1F|iow;OAZ`s8)EERBH$_X_n+jUW;VL@9yjOBysiHJviD>$U!jN4SQM!mwWoxXR?~&R=a?#%k9?)3I0U=Ri`4i0Id?E{E zj-qgH%MDV`65oL6vWhn`S_Ixnr5NNOoxpVy7-|P7l#(di7LaF_HjFW5saMVW^%6 zf5w1C@>J^#g)#F=dX=!i#73g8<)c>D<#ywtd&HfV?QN%&gPsv-&&Yu3$}q?;6u3jt zf~~oxr&l>Io~f@Z;Wcf`ps?~={GWegiIGi}kJ=dd`+=#jHdfgti_$P+Qb#uZI^PmE zBGjjbZR#kn*HouBV1o>I1sF=PrPY$R#*GEqE%bs73-n4!>xaSae_QlD(y{6zdacY$ zIePM|{eGpttu#RNL~SabdYFeGC)DtQKj`-*?o9Q9pKV_&K572*f=!0mSM1+Lt#wY{ zg7cw4Gw8S@?hO`}Ca3pIOS^QM*2Pgf#I}TL{s{H+DM6pCf5cHyY=s)%6CbK^oTQqw z8k9ZcN=G!7+ER2ALaQ%S21QhZo`YWJ5i$xyF;Ht;#}>*FC3OD5pM4KoH_yH3A>8kB zw~4u9tw1U;eL>olE#uNs&-=8HbZF9FVS$e#e;t76PhUS0>5l~pFO|U9NK<_({E04d zr9Tm<`053w28iAAdv90hf{9N{OxQ>;h`E3iOn#a*DIf9h~mse zy2F|NWK|8pC0fsf#1_eQw_}IsMA$FDZHadE7;626%SAs&?S%L2v%ZJo3K2u*3KYA6 z)bkyoDc_d5WxW_omFyZMx+DH)e62?=Bl($Hn8_!-=P4nIuVi}WgdHvo1?Uq-(BQUl zdb_geRh)Q2_Az9-IlUO~XdQ72wF^+iprnaI32HTpcQn_F@6k?)?gjg0@ycyMs6A~j z=1UK~t=R-;FYtQAQt*G-o_$|wQ{xYv7xwpAH}_#JLFZ`Cov%m4nPxoqFMS4Q5}m#P z?R^->qaEc2Q#I!jKi_KccU?Z09HsC0y{9_uv7Ta=2AR;tnoq(TtGutR1>AT}SH6gb zo4J)r5MSEUWlcX%d;n-sr)E$jl=?Q>5{YLl=W(`z4;(x#HAq*b6yu&4Y!MuPZuSM* z*>KvFee$_i^c>|}delSf7_#0DhVr=~dxI*lrp~a28XE&lVu?+-M)5{o=`XtQs1JiK zJ;dh;If~w?nT06xzx4(zRrCU_87b%vl%G4$&IEW)vOn}W$~TWk8`a_!JwA|%=&`4o zWFIeZtS-Aks?)3YODLiCgLq>JkxjU>zP|m@>oqxy{jV%e5*k-Sl>WZ;)lK`-;9+(obvA9zgaQ&o4wnKNZ$rIgdb+0PA~Cy$dXM^YSnG9As4=jpM)FOLS~xLCVtc z#+XAvg;kt}(hD_MenfPo&w{=uyyQoFUh(epP1#34dvX8x@D+6;)*<(0 z-t!X8^`ay4C^IJRwls)O+5=zJ*xDeiV6@hA;9D?8CThS|k8w}UpffBh8y^4|*lmui zJJ=pm9~qT0Ut!OP|8dZ7pFbX+k1o~vTL7g4e_ftc?($_|T%X|)qjS#wdN=!a>|ri% zz)nx71w;Wz=5q7zvFikp&kO!Z^o%%WOmU1Ww5l1ApB=w|T`^?=9=YH|&z2^8xAqdW zWM|6Shg)dp><4dNfg%%{#@aP>&wetXv4qJp?kLr&RFc2LI;Lr4djhRciW6PVgY|z{ z1(g=_sPJeC^yyddlHHZ`WjgAejT@-{U<)W3@~it2GQ*`%0d%$feMm+8TMg<<_KWV> z*8?1jI-SBx{?d)5wp>&BRY~XYddXk&^X$7XUZrQoGQLuSsGyc=_4mZRKfhg9NbK~w z>RGk-pzS;!^xFH4bo(v3&MlBdWDK5==xT*t?V$V@FqN;m%8ay#3Z`Qjq~q15fzcr0>v?H?)W=jMYVPwnv% zrs08UhtO$;_A$!K@_Et)zQ)q_;U6sg{{8{XL>RUHlns<{${y{8B~r&q3_pCo@==M~@AI4|flf2&v<`uqHg7+T6LTv0nt&M%B9 z9w$F=)=Fvu)LUqvC2C7jTAoloq8ut3-9k?mzF}2bW&u89zv8_Kl+e-W9i%!PFidp_ ztHF;PBVTx*=8#coi3VD!0e3|E&yT9y;uGq70u-j>L0M{dpIYeooI2FV$6I=K39b4@ zBYZ+tN*Vvt)Gw(-kMeWv5kn~!@!M#4H`Dml)bmlu3m#GTQ*-S~Fc$A9O{ZQ$N8Mb9 z?G4r^rg)5g@m;#2@jb?0V%Nv!6+P-nPmF+io&JAy2sptVG-BFl$~+y+c_ z+T1R-#}tLBL%|@lU!o4CkcvFKJ^Prnk23!rhUR=ksZP&;XLMspO${xc<(nI4Ex>tT#b?oOcyPc2;kD3t=G{4qp9UZCrVLQs*NC4&vo?VStwUenf! zcnwWK4H|cAkAc3#b#ouyHNEdO^lxYbUZG9f`2BIT)+R667}c|ThxY2JPTNviUp*la zpMmfnk?`K1dI1*3@*|M)UU9TenqALkPsl-sRHTAos)7z=b{pY{se^_wipw~isi zgiF(?Yr^|=ds?ck(PdfSdjL6WuchAtd(J(LZFF9LV(K`upZ;X5LPofah5r;|Dl!+~ zyku)IS(b@TmY&cYGuE0X9*Xc`v@^z7))w~jNQ2kLti4Oy65_k;ugd${ znz~2YaXLx%P4d1lZ`1uW+N=pL*gBK%EB>4MhimfU{N@&$`~TY;{Sf%`ZGMK(!!6o+ zG;X@j9;dW=urFn=q*`@f?~fK6VEv>fd+Psw1;L-%;j~0vl281;!0+x4tG_PLtDFw2 z%S#nDSMGhA{9Lx%`hPqvrRd3Ly;L!6<8mJDXXo>RkA2VzAH|-g6w6uSFYQm`;-k*I z=3Qc5Yw`b4pglqRX7SSYA|=#6l6?Bsw$k5L?6fK81s}rj@+%*bJ z4zttrihZePeo4jfS5EIR;IlSZh0kzdL4SKs;;Sz{)J`kh0c=5!1ts42hv{?HyXh=Q zD#EwSM0pB7@|B9bwrQH+RtWM_%0~S2lV-i$RDlM!Gga2k;pPHJ)*5Ngtn|3Pmz>G& z-Hb1oNlKXZ+QZCH_bNTt?>R1+mqwIyrnGNpD+!)ed>?V2zLu8g#XCy8q>B;m2&U;% zO7#zg-Z8}FrD4{u7rzz#EYO^3SH%hl1Q^lU6V5Iwu4)M;y9spHZTC*6^9;H4RTH*8PRPk)ws z-jWXYW<*h-@%-PPFvwn&ez^TMq-BuW=>IepJ1*rWxbl0`&e!&ypq+85(|!}C^#o8f z#0I?!=U}AsbtoW-&S3l;p`0<@UZcN|d+KL^sYAPjhC>`M)#=0Z#QZ|@%!Z_Jg%)Zz zgvK+0W?F+FS7(4|Yk@>1g`%tw#s zg_bbn<1{pK{1-}x267N}ocIiuhXF%N*Q+HxnXty*KZXuf&cSn%p#46k{wqp#`XngP z12RN`erV7R%Lp|>)pVb4sGpD(>Jw9h`d7k~Guup`8Utji9eP(vw@~oO2}(H)ezDu{ z6Soe154R}uvOrdvmf6VW2<;eColescdhG=LRFz(8FqLK>#G{6n_U627*20?aMJatd!;1jd|cZEo51CT#qTUUH6@!52)IM%$G zd@R}sEU$T!=U6Kcw*_57cwcIpn(hgXrH-&E_~FcX4c|aopO{OS zsCbP0&-J(&fNkZ*bOkDgl5mJn%A15k>TBv2`_cqcdGAY`pAd8>k_%H^`V+v9XS^my z*XLRLth_LX4DA`;0MO4+!GKa}Va@?zT3UJ*<{d%r`si{Av%tNX2Zoy{G<-1G&i6jF zfT7tZyF+|5rHW7Bvr(U4^IXb|R18rxtFvrD@@2n-Dre z6I`gr+UYq_#QeLR8N5G-K09kQL5^Q7>6z4#jU>s{uDT{v|lojP_t%cf4@J;7-pEuA8@Enl~?Tu*x#Z#Ra z@K7I>wg1RJ|Hg8G=~3$rm-wkyfrps&D>?TbGUwRT!lVFGRZ1%ZPsKNCp8zt^pknoA zfXMU(*H>6mVaVUK3(Hi(B(Ti0f=skDuE(K;RRILbs9}l*_yRCZe+<44sAoDgDZQJd zl<>Vj;>PK4b`SVMGn6Qh>hlTUkwHrN%>BZ-4vY*9a%JeE_Db-1S(KhHrfMjggbH%l zE!;q9g^CI-zkwQ}aBBGzpu5u0UmXc(e*2&AGS;B|{2wl%L~%rO?Q7c>wMUdUw{WUlX561w20|x26S~>s!cVtB@@Z*WfxWG7-C=b=I1i#JgRgi zDqlc8Qu`pS&Cfh4+~j9|n>6kf=(XIV9Te=-jkUYhcmewA5>8@$sSJ}SH1lL7WXr6~ zHe0f%o#6il4vmIHwvRcW9DyFZ?h- zdry3m=NFg_F!g-EXb$hm8xp+YEgoL;F7~0gE;u|;K5?QfPbY;2Q`$1LF*T1BLC!mV zSojlE_Q-Oe&{5zkG`}G5(t?KkqrOGSE&a-Ais8LRi@I7ZNBU=^%N-i04#k|$W-&|3 z;dTsq1i8Zw?Gs3KI^GJUYz)byMH{$B`7EOXv=bmc z6+0j*-npyFFDzfYpJU(NKoYHD%hN+~8qOPgw0Y>_^rCk*Z7cn4rGLZK6FT~8$X5H* z`4e3Iu?;<*Qt3~J<^*X99tV;+^PctV)C>OgaCG%M+W0#E;Qt2tJ^gm-G5or6g;cyW z4g~#=SAT-v)oyV2>GNQ#rGAc`Cn;E=+Qu@fzq!Y96}{Ze;nJ3EO%xz^m~TbWPPx7A zQ|e*mgAgz1VZB#mRPRDRGwtJ>Ez7E-bG;`0(w}E*^?zUbfpQ*uPC1VmL!}*VFUgV{ z`?S(wh|=Gs#vLmLe1vGhmfq#|@6Zws2;1P(dbP3q6G(OXgna_%Q1dhD4aFHUuUzm+ zvG-pT9yMCQSKl8CK4fQC{&hkBO}n~uRgBdhvS(lTbS$k9$I>h4EA8|Z`=y1 zzSnwk={eBL6E+w3QGia?GpDE@}6xYqIv#J^I(} zd8MzRacZD1lC#fl@tQ5L+@Nq4LTCzUJpouleFDBvnvxu{!py>2T_#LEkiZ0D~;WgWjaZtelQp_hk7 z6SxIwH~55QT}XteMQ9taF%=d68;Rb}zggi2{WkmPd@o{J-^cXk;sZkaJcx7_XsbCt zz~g{M<~;UiS8Pr&LGkoLOL-nWN)M3%v|nIa8T-AN_b1S@VaEZk*UfeN9#XA6phjI< z!Gf$JZt0Hofw+zK0hRM%Zedht;(Wp;!IrdrU?0Xc(XC_CDXd>GZh227We>EAb(U;T z)hmA9AT2?AC4au{i)#d5jr%-LX*~%g)epn>XX!rNH=b#brD&*q`5Ux>**A8D&-Dr| zz9l^^c8U&92b|T+0|I3_0J78XZ=!~_$MoWh_1Hacb(U0{Mo>2#`O7dsb1GKZ~EdyREialf{ zZ*Q>zrYnw|>hx(W>>r^I^7INoVB zCYjKqxu|1qViA?gWtO@LvJ zgJ`EdFrgR>z&2`=yM(Dh?Si~(DQGRJl2(}ZU~2^*GU4n31*Xs# zPvshN7iddIrs?OeGUWm>GLFH(e-O-RcM8z;2)3F zNV-eP;R0nqREG8ni+RW$ZfI#3iEag4Dq7-IianakF5#Z#Ti&A|p;)D*BYYG*Vx13u z5_xCFco`oieW?z2%5OLeKC#9sJd*o3@E|x#{nj9kPZfqdq&1cA`%tP}!zXf>MQ_%Vxs7hMBy$94N@3G!56K zjoEc(ftIp@(L896p$NF%UIbm+Q~HbKbu>)N?d#r!TR1^K3Dl#DP5 zO`>(M{-x7KIj~woGILK_?DQUC!cniGO+u9nS-{5UIyVk40u@kckrP}^R;SRMpBEABF*QDd)>y*ix585jcc@L_64q1-Q$A5^;p9+R8*4{snaOrp zN5Z->9BmDa8@WQZNdEV}LYavE5l4lN0$+5`OtTmbnV2R(O*d-o(;${v=Xtc-plwtf zt!FmG(bk1!4Y1WTZ18fa7;KW+WQ5u*5}qFVmp9P?NH?81EB(9|-UPiG`aCGTjGTbc2I6 z*l!Ud*1ygY`~pUpj+pk1wR>uJ%FKQe0tXC}$e@MRTl&JS|aK zcBqWIF7#zt4sbs%oGNtC-YT!9Iw`E378Kzyo-+ElFpE+@d%c9Vsre7Q=Gej^UqdMe zY`^E9^HSmg^Ugr^$H7bR81n<)gwWo^PuTBiAG6$`#}Alp;j`ES;t}g^>3KwB+i&N z8R*f`jH01zJ;kkyK62iJblmUj-+Mv^dbWK}hPr)%VrqF0a9KR?L|;$5`T~ahdzBKV z4}w>1`sYe7 zpn>k(OSa({znReW4ppqNO_z4(129=T)k=9=`dZ4&@beK51S{Rh0w}0nl<5lWKdXnPt?*3kC%|3^dG_u#?(H zNKBb?qNw?~{LX(0ME{s`hx6kSJ!uElGrq4oq#LCEC+$ZMTgDnpnq;PonS@%B+~ftT-z03WIxQ zO-r-RpfP@fWE>TmPA{@!Mgtw*Kc@bSdw@GFmXdmYR&3mdWf@bm4}M(ul64U0uACcO zcU60F_eH3EQ-6jMrjdOED&6NN*q(u9omkRs?D8SwD?npFm@fp41=BUx!`$0ru0-haZK?-d95w;6O`zTNJcclUKvvGcYY2ZB(TSZXL+m-mS3z&|u{1qa1sxEK#(1WeOd^7>c-9-6@U= zjl5+j;`d@7;nZOTjrKh#zENM`_;c*O$FGvg*2=QV!S{E#l!aGf z=1}fzwU4$|GRVkQL}RE5YBe+?bI=NF)tdt=BdS4^i=-T6x0b@4CDh1HqYVW_;R})! znlyNfM4uGW(2?Qqg&GYR{~;P0gd!LpO#rI+HMA$7lkQV3Em(0WS*eAr#qR~HP!1LO zZaiK>hvrclKHrxbDlK(-rLvkw8fswS)pcQF&6__d(sK&``c!f7g($j2gsrK(~eY z=e3Cv)XI_FKxr1eLQ}Zg2H8?$V!w$-YN%t{E6@7K`#QZL&k09squw^QvLS8_Y)8X~ z-S`H2UOdwA>W~oT*&~Jmty=c4eXCrs z+{7eRnqMO{HSr3xDyQI~(a=FfS|C*rN4tHlsZIjrNp(ZE%Cr~OrQB!9ofeS;ZOGJ; z3;{8wbucwV$XSsOH1^m+HvS6T(01!2+O)$lK+|ZgjQb!vb{c#)b)S5n^CUlROs%r@ zt_CwWw~ql)4XV&e`VFF&`s#qR>n$n1_!Y&c>D2*^=*bi=#T?LxnlzNF`g-WPe!DV? z*L>`4YxA!>)k*QTbwu%XYu@cac`5PC?|Q@cvNdF<&Z@WmkNWE8pu?&(HGBp0mAoX< zg(XHdsBF`j(jl7=AL;v+QpAu=RqRemO@c)sZ~X?jz^W{U$PPJgeV$Jox4s@&y5h0t zH&(YszmtN9;_C-i*%wsfW-{i-yfHj5`A)vaI2tsz>y@pD#;rk9cyUp&IsV-KO;9T{ z7>LQ%wpV0BwiUMixP+P+po%rNX*#eJ*@_t-o;rr6;n1Yl+LE2;;P9d~91yfuDx=kS zZjBY+>iVkkD@@qfMjoLMfZd99kYT?fm@ho(InTYOr6^sb2Pw^6r-Y^uLudZ#Im zdT7Wt4|=C2Qf)Tq!=0IGNs>uOKW zVZJ^28x8}aIcSr0k>}KHb(=%pE3%bQp|K;9K@{b-Oy#|D+Z1Cd8^Z%@Y>6eX#yFZN zRJKX9v6VALw#M4?Xo!O?h3($h9@C&X13kOSTLXNog!E#PUJ@!SH40tDraR&*ecijj zEo2@F*`Y?S2(9{Wpx2E}zuu}`;=MId^HE`wQ0=aHg~=eDz&+Drw^2 z?u9)M+S+KV88D>GTFPj04+~2hHSg`taw%*vvRyk{V`Zk^AyTN~R}^m>Tj^GoKc&Dv zu~brecYuD2E`{X+ZF)j(kKQ@OfE#C-aI_TF`1~=>I3R4paJo>fCsg3gxdqw4tF_f> z$DIzMnGhy{brG0ZHVQ3<${**c@f5+)&Cr_e%*GLo$YI%wD#&e$5xrwF@!lvOm#YgtQL9?)miDt zkPM=%M&#J_ZKx$`271M*u%)=Ma!Exnqu9NK>c}^~T)u5{*(<$;nX2epOLcPUS170v zLsnW-jDk2?YopOek5)Gc(V~qh+n#c5%qIZ>egDm>vn*$Inz=vNqx3{slF81Nj|r8o zb~2T1b-fsfhM05%#CnRu@2^#DTD50yLH0@o zw5*;&H;PdpLsQ7dUdpl8>CCD5#keM~x6}+#po^izl#i@V<~;|!^E>X1miaK3BeZQT z->V)VdHvpSutyvESP@T+_RmRURA1&<$QleZEmeRITNKw+>l^$>-dI!nR&Qqx zd?t;~SM+|o54m6Zk0Skr%SG+p1X6i*{@5F%kwO7#03F$On7o3J>r$2}X;BSc>#0sm z@l3DK@%Kq?)j!#5N>^^}Lre71@`PaDf(qW#=%H?}64LlnRd zj2lsy`%di@b-?$UI;NbR`vLE@P!ni_x+(T>M;W|voOvpmu8ZIWXk*xHy+EI`L z_Szm(o!*l#k@T))cXoUe{Ezi`$0=Rk7Id9@u1sfI?M`xjXG@Dj{@XiJd1t9kzfU^m zz%z~G<5pY%XF!<0FUk49Jg3StRr^rt*`ATIv01c;(IH_sgmy&s;A&>OJ-4=vt)o`5 z?@-u4t<`s)NfwqrWtu9>7zfSy+{$~sZ49>tZOpgZfi=-fOBiZRnjYeOX7ny&_|7V# zaA{BM)OIFZAmvw@)k3X(3Psa9%b}yu5&S_iBj)k+u(w*{ecKa}jk-($nOOUg0Fq&2MgFHatl2 zR!53VbyRON^gunIay}d>cd<2PhW5LPYN4!7GT(aKJcpuG)%zn8L0ZI+EsMUfG94K` zegof?+~-=wdVY184){zobDBeoTjM@U<2BLqDrq{hK@ksZbxkZWvgJ|nz~&-0gFpoy z8jl)ybdK@8MnTc(19Pg5DBjtcD3rjPmlaA*yotU<*#9xBJsmEg^YSv5zwU9k%pPf-t&Mncj?(lcv^(gWg?b!6~14(H60EALsWa5db_-o{ zd#}j0LJ?1q{O{CH!O%j9(B#BZQt+MOv&>xx5+W3Z7N%E{wman(d_$V6fUi8fPiN|9 zAUw&`OY%%UFvSC4DpJrr3<t0Lg<28?n2v%r;d8(* zvVY_=m9^ax)S7T#0jsIOw8TxNhWG;3JO3W#ywYzA4N&vO%F0$_6R&E4nr@X3tcgOM z1m4=WxUDZCsZhJ(B~(evDt@Cuy+ydE_yQ|bqtsLNg?FjevlyyDQ`kDP+Savh4VNbP zC{M$m{{#J9pp+w@CP4D+a`}cL1g(1cR4dFcu;}6Q_afIXtevMDGU|Fk%sA?mtegt> zTY6N5++n_H81)Jrg{)&tQcHOYNIK7?bs7~a3h>@mj2!Z)KtqT3NWTe!dj%fUBcX~; z^}|=PRM?eHROLbmaf5+j4|oXaL#-8ezyz;x@ixxEM4bL z#+bX6x3xIkP6bH2Hb}UgsXf2}MY~T?Ch<0RQqsxT4ot2nk}ntOO#3p-xa~uvGO>0M z)5=D~x`=4|pn(j*E1BEhAOWV3p=61p0?dQCl8yS_fC%5ob zw7O0~m2xja)1WuNVC!olQPc%GZ4TB=)#70><@lPnP~PkHmGyag04eRv<*4L3Bk<=x zU>@vtb48I!HMdZm^eF3C$Su9E$z{^h_?|9{j#BLvIUn)lZP{M*xeC1M9ez*q4Q%ws zeTkctzFVUE&BL0Je~YID?V+p4|bKfy(W-{KGWl+6D_)7ep&C`6owQWz*14qRl^C!>k3rTKk zu@ix<(y4{0fq%$GfHvj+_p|R;-XLH2KG5u7q&LVv7Erh;EP7@}lGfbWL8L{9Pz6zx zSW{xHA|Ih_uA@KYmaL$244eml(tz2}oQ`v#pVAz84B`iO zh|z-+kIE?lbKgG04;TPYkw5Gytmkk?r|9^KI@BTT7!Z;cY`VWQ=5ye9UhugKzEqpe z3%qUqS~#wqzDKs1b*QQ##RHJRm%VLZ6-enT(8Fri;>Qw&dKy1q%{A?xA$_*EJ>|Ql z+!{Ae?p9_uDZVL`a0@-}3wie@{SLc}Y2AwPR=$*@HOx<0^{zGd6;c*VECR--4#J1a9CVfSYz12q{fF}|nqnO5n6 z`bh*7^4Zrc(1G~qLXkp?MrH^fZ>f~GDDApNcf&Q{-@?6Z4mHqI&8C4ILqLz#9m?Vd z{Fwc*TdTlfjT7|l;ojnRgABB=?&6=ndA9C5mT>#RP)O$GYcA?P;gQT{^X;$4I+pDz z_sw%l@3C#nSBV*Tyc+J<-8f870;ogtdc~f;*Lv?q_|!A*eEBz^mux!jT|ozNI9-KI z23JC-T~+TZA1nI@9Z7XOC}>T~4!X)-2EB>)Dn_hi3R1I;ncEF8&(T7Eq-zkVt61wK zPJJ+FqXL?D+CYa2I!(5XJ1=}1d6FAsJ@O9OI=FcaS{qaEFW!?Ke*Ar*N9_}STwp_i ze0P~QNO^rcMEYMB*j0J2=khvum2w<{oV|O#6X1Dzyaf`&#x^7C0;(~jfZE_>1*ifm z-*&^qw;6t*o(azUKZeA1A=dPeA|hHv%9-Ytj?ih%Ra2AtkviYx-*cDB(1@&gm}OZD z{JmKfr$B%?R84$QNU0M4~XIxn)7WtlQ3;(P5)7&WJ1}NzVG%bs4Qv*wwRH2IF zR_IWQ0F4Tl;SbVEaskko*L>SOLBHA-ZkYRSX@`1s==d%;kvrY6?l2bAKg=>vZ2Gg)-<(pGu+b%^OpX$ve(Slpl%l4Pna0y@VJ~*pSS5rH0ZuocZT~ zk^Rr#{10~a-GwIKCEujQ218VpPKB=#YJHRF`AL_HS}x@QVYNQ*U#a*keYRwrRmf{K zbb5;Zh_9D&jgN2yz`sGipuANQG{E5zcCE<+*brA^?L7E(9t#}Vp%LLj81EE<4DbO9b-HUT6lf2%icPn3YiVz!?$g?6R+Z7w z=f4j=U7%!}JTtdsITJZOcB0K|X^tNFufUmRGJB9YX;+r_H zeSloKep|8ARL{A_F*00tg{1)geWAUr=y(xBA?8k>I8^=?0slduK)XnQI_M45p?=9Y zg)z@K{nNPb4dV53g?Jw2a0>8PX@65{3xQq!JWS;D?UEf?{IiNRZFm`B9pf5mrb7Y7 zQiT}b#a70cchPrU|Gs4R2zo(};i1;C2ED(DIYy|5g749HOX_*#{@>?Ocdhug(tzlF zl#9P!nkT)^=>=|L`moWEToONs!J}>wQ%z4H4`{xxo?D($>c9!l1KdC>j_>qOzRv42VDZa1Fbr~}^F?o_H z2j?ljDD|={;y2UnCe~GpT7O}SDv=>P+G??7tHCfIiS%$`kPhRDt%EHy_WYF^9HM zRg>l$q1IklC$UvEL$%zY8c1OliE*@xYOqIC)y;Ugu_MNLa_TbBq2;}4YoH-ELmw~k zWt<)5dvfF{Jg}EJZCIg@@buaIBG954--W0+Y6@u3NuiVd0Ca(Fa{iLDUJRfoORY%hIJPX^jw`gH;d8=Lt} z#2S5{E%22s)wnm>`R{1f#Q$g!YDmhc*6D>W{C}#V6Vzqug}I5OGbJ-U>-<8{J>^sU z$o2IDR!B-~Zdz+l&ph#WZT7KTw5r=l%YQEO^w_OaCBs3SFbEFllcMj9HQ-|4lh-Bqibj+VLvZWHIhn1yM9 zN=&VT8A)D0a53WVyAeX`LVBV-LeU3(gc@3BfG8@@IZ(a{v^$XiLTXQ-AH{m{D^YIg z3GR`7X=3*zCZB$ZP>LF{rLeMH0mbk5P{;`y3A7$isKrtFQI|l(He+ZJ@PS6!!FM_FQI!D3(>%T(3)F*1g@H7P&Cp;xpg7t9(UA1Ml*% zRT741?A>7 zKj6u#SmTw*Z(8Eo*zPHfh7aX=X)#A$!!=C&*a9LkB=M$7V#s=xJ|J*y=+jmU+EECneTFAcdR4k1#37WPE~8 z0=?u?4BJ9R1kIXa($0>w_}| z8p55qJqe%1nd1h110tas4z3{ccnVP{XRd9Mualjld0ul@wh9UGSkjf@&p)Es3hfE! z$BSVjsM>+_gV#NNTCV!AQcRSaxZ(7!3ufx$p3@&Nn(x< z0ljtm74ljn#3+_>Cj>n5QjLhrE}(1A)3eTdA(0%}{`^f$x9&ZN6wxWNK{dOIO=7te zGr%MK0J2V9Ps>ItA;z8O3+=rW@q3Qy_23i5Q~UvDl@ zh@zJn#cl7Vj0R2Bv;28mzY8bFe?|I1r0c~iq)^{LZt4Hv9>a5{c~`iEK4$+4e7l76 zCD*?zA*6kQa@=P>miMau;w{sG@Y!=quaV~rvsEL+6VLHTjRY3W_w?-P?>x7EkNX+I zylQ=Wyuc@po^6NY*$+^?G|dre{hP`%Chy(nwXH9(SNN*_x3Uk4>_rNN#%wpNSmpYF zfPaf}Rmx+}aY(i!vkIwiCLV)aW)Xz?Rid3^(E9ymmfKcnhQMN7Iu&_8^F(zi<;&1i zFEbjLbEBP8zW`pxXme0`rMzap1Jhq?p42gy?sN%Ao^(v{@8<4vF@0x|x6KVp*5=7S zgcpWq__rH$79Ypl(lHPXb_p`Ygkjw~k~m=8Jm5xWzO78VOyd^oooM43&7uP@`#MkG zb${yD@m}lSxj*zAed{ALuz%NiWk-B=V$c)jz3X15@N{_(nnx`?si|hqIB#>xx_ipj&UHVkTFAKRebNe03G92s(&_P*?&;Y{+%`P8eX)8-O`SA@DzvCT z*C(g9p37@5Hbvc$>viDz28M^xGu$2vuP|8=^W{P7V>w@76{;aUd$*mGH8C0Z=?52V zFEY{%x3!ZhME4ifmYi}+N1kstAVmyiBW*6%aL1Q^Z)_BbTK$62&h3xTk0T|374M~d z2Z%v0B#*F$`p(js+h5aJ^u}DPkU_UOSYAeI;*fTh)mjwK-!R#hP0N_YfQjH*Y0<>XSt>g>0+HKyb&(owNJy#g3NIX#&zF<6011hJZ zelC6hk>a%M9bsFtvmc>W0hxHw2^8;mJpsOdML?Sl1-I955N&}w0tv-X)m8DG<(8ae z)TZ;;DXbEo1hn(;zE~lxxjz?k>a@|exQ$vuBO|*7%9lw;WyKYeKrinMWNgtxO`F0_ zo{lNmQKS2$N6d6v~En9=s*|jKXxL(2lk30}$^|jUc60l-n^>kq;e%%NTV@928Ph z=g#_o!g{gLpr_e`Uwk<&SZli%NQZ(SGlimgM#%nXX*d#0XL{Y<+I3Lwx~$dh7^K#v zkbrcoRqQ!6g%WO7qF~P?)lfHwrgWluA(FAhw<_`t}>EP%Q)dJou)QK%4wgPN7AA3 zEqQb1>&(MMoum$Q^-zW{r(#l-DZd0WiIw*X+G~DSvVFoawD1j3?O`&2DZZkuCDsdc zziHxor-a&9RObsgmUZ)LL4K~nD9XQa1sct?b4!e22{$9&rY`MOsG&u{)wPR2+Z+9z zb9<78DoUz=P*+81)iIpwKp&xL_z_kk)p=D%H9Pntk$F&ht*eMWEA#)r@&SeICz>%g zrsxvTj3-z*<=oO3X$w8n4gK$g3&ShGT*3sXycv9e_SD(O?dfo6=Q^wTTYb;EYL8^W zTZ^pVALMmGj!lHJD2Z|h5eDd@QoIbBFh};xqFSEBUZ9X_P63~Cr+op?vse2QRgvqc zvISCH($0%2x14+%>ZpL`ofLj-q_NDXppDgg(nZ8Nbx>cV*hHdgSdzl1x=*!G)NV^B zr9~`_3cZFSRv>{~M=PV&Z58cIw+D23VWxl|IByt3+Hmh;d|@}V^n_ScfuC&j=O3vl zAJum!9zJk6TY5y>-yGM>pZ6=&=jopTciWe{Wp961@*5}qQBf|=NoB2U-6hV`<`3uv z;X;yJ0QZG$qt$B`o1ke{?MJ22MqQxR4WyzHsu{nymwEkjdZE&n!hV}tp*b;>ex^;0 zMjNz7)s!!myX*sv=jj1X;}b=SXjL7a-d4as+Qf^{+rU{{UMG`aBp#?mP{hpdw;d|?4 zaBYbT&5uI5GfA@9Q}Lp-ez4b{#F|>~P(M9GoqsC7Fx7fzL+U^M2p1Z; zCuno;&>oBCA8nDI7R%Wpy`_Jdyt02}pE9MIA^HQ_Lcao@t#D}sJS@1Zv0g5p#>c3? z=wZ$;pP%6#r+ZtNbU@<>l|mXr*@fJ;g|^pqwgyov$%R$p5)d<>CEk7++6a@<&}*e$LL9~( zu&V8$oCB|oK&19>n|Z(fo6YbYdL@F!FiC0ZV9PC|wVnJ#-r2*KoUBJ`Dn&fil1cE-8J|=P~J@zwv)y zNumXCG|?&os=29i&o!p0uK`JlEr!~SSZ~nGJ_0(CVZ9q@p`B@Ni2+4|C^R)xBePI; zdCgtm$I>D`QH8YkL1p|!C3|g$t{TdFw=q|Yd)^RGza|>3J@^=8;-Tw+fF87m$$9FR z+3soI*L8Y3f~w^kv~(c(&Ko04SrH*w1M8R=>Q*WZxONizQYnxoKKMJ}GKuN&n1SpM zIrSh4O%26Tz_^DWxhhQd)g+M%pr&-)h>i-Ec_0{b&>c&gaU z;?67ZodAlg9oo*2Omjm}f z$+e2ar4<3tV!@>|v|j$HT~C}wN0A^3s+U|8Ccu}JThh?fP)xRcc5&DXeODo|t7uc@ zaZ{WO2i1?$LDd3^5v#V~IdK!-%Y^D)angOjk^1Fc%Mf?Z@OIeq0z%4jdspaT(k>`k z8+Dr1=T#lmdX7)9LK9j+70o&c;6Zi4T_lLgA5wHAL%SOIB7y2h&8570H^+`r-snQ>5<5H6`fB*djxmdS+m^sM{f~(8v`pm?0Q}9L0 zwyJfQw&hsC{|+EM^5yc^gsNV*mLhRd6VlI(pC128biz(zC@Zjk)h?SF(*(v?W$Ap_ zXSEF;g1h7C5$Mg9Ww+hO-$-}x>{}^NMFWp?NjW1cnz0K`5>!=WaAmLC778Hg_)fAC zEc}u4ipA3WBbq13C1C4th~q4nA<$sEkV`?Oi2(I4`?($R{{CB1*%ua?u%-pVxI4Wp zN+J4j6uWFP6+PA?Lkw<&>;lE!m0rjrTbPW-5K;?+0X5iLd=jIAxS|U2gxvUCNR1QE zHFycmhKCwWkZO@;x-l_s_Fj1!r76rbr`AxBb)o(4AP;YMukTG(@FVn|F~jqXzyFc}w|$@K^sWt}FqpFz zNoN&mx@1y?G^@0(V1@q`Jw(-HumOoNIvEW3W-z+3oqqql3@fstnGUV=>(HfYH*+g^>CJB-*LI)N0CWZO*2!5U3Nl- zI!KjiTZ2|`H650eCsf|Seh$BTZF{$;+H^|qH-uQxlJ_RMd?IIXi)H~U?v5X}SNqmU zvvvIsi)Vo60!i)P2^c>KpNp1FNQ)$%|GNhK-*xKekpFA&T=DZue#S4HN&lk`{GS#7 zwaBuuZU0{Giqp@+?HT?@2b|9DKcC?ylOKFPjUmqpfmxbAVE?YtodiGshQAD1d#bb& zE9|qLHS;8JNk!t%h{P!B@-D?k%F_k86#cNu@KUN^LZjqV+r4S3jS}&1Xr$mkafF!H zuf+UimVCVJmcWsl2E_H`nGCJRbNWw1NRQF!0|wS^b(ily7g!Hslwr}VIUI8xhNh|2 zTAG@wL)|S_a1~TtAq&$K0pBl_vEpJ9GxD7=nhzg6(@TyEiZd!Dg#CUq7&pUrD>rAO z>jqMry*JnGgq%p=3B{`)CdZmM9qWZBTS=?His`o2M&r*f)HpIzVN0D3Dk~>=aIp<*;vMc zaN$%6TEG9yK??Tm<_Wn9F&aq)r1{Ro80~9Yn&l2?Bo)-p&&_PhfE1k5{N4ndc>ZY! zxy75z#7W80#{XF{EF(BahBX(z_}n8wM#gCP;WX?_ax=uZ`KXTX?(XRpfFD+G{=Lb^ zmM7RP-8U^e@?&Aa+%D)58s+9c=!D#iHW&Buqs23bBreuB8zagz4;agBubk%c!;);p>v3O|>o~dnpXBizqn>62|BztEh)sy z=BUVi^s!X?9XTh~gyx(vV9352+r=cZtEv_`r@HO*nulv6vQ0U`__R8Su@jV9q3-E!GrH3%%ccz?tTzV05%bdM0)L{6~IIMKV`)*oF>=zc%)2}ueWhbNekN0&)Pdt}IM?7DydEqdLyl*~%uNHcPp9hVy_ z2IP^)3USW4Da=V+)WxhR3V^FHI>c$rlEIQLg@1?awfWbC35}$IHn0m$@PrOoZ_J~S z(TrdHGmC~n+Q7WaBxDyz%0EP|&kJd4N@@)!GzyR)1nwl3U_H=Ak1P@Ep5kHo z>GdAG6BBEK*ga?5eY=77>7#p{hW*4zQQJ-zW3cb^uzL4+Sbq9wpO}^G<_(KAUvBv{ z8HQxzcTS5z#>j-mrG(xO2iAL_2Tzb|mK0fI#5tWK!|qPQ`UGmTE6IWh_6YQqCZYL} z#w=b`fai(Aru_N+w@+;J?E6o{;QqE)zMU1q$82>3-+w+5KeyfeunjvTZ4)?xOsXVz zkMM#_1~Ehu)Ajctn)tl<2Y8Oiwq+UCTmDRf?v3WVT}bYZ_)!fWJ>>52u>AD;2p&FW zaU<-fj7S(yfA8mhkUm>$*fb5CKfeDyqwTQ_Y$xTp+cV|G?{03sugNs^;}Mjr#Koru zFMMq0$gt+*SOx?SM!{tca){z+X4H5>4gv@7nI0}`lkOX1=p64i%99Z7k4EqDPa7Mo zMT|z$q0DDxjl?Rn%Y(bb2G(>|+fQNOmN4!6M_)S5Xf=rE!}lN>2+m=v`p>8^aM!=4 zFw%|R+QiqeZ#h|7mWPeSWt)!2_Y^mFYAG8nJy*yHMtD6WzB)~Il%4$P(UQ15tbwIG z6VG=Ces~%DCwQ(ip^@scHFp?)^PyDsHv!WnGt^L^ zOiTrp4S!e+0T_dkksnUO`8KbmczyrLQw_jX;3`Evj$AAJxTxT@-jwSD0+I4P8wx|M zsdrGUSGL4^Df?0m0#|Ma+gS>;>*FG2h-4pR32HWIEAXl^ItxC#oe!m6QZM;b0exZD8o^c`?$Oq+V zK$sit+9x~RLcFHjZ>#gR77>4$AP~WR?hWgFmP_?}lOM&g=7%&64aqokWS{56VE}!7>oq#lmz8{1JBmIb|5r2r3UKP)ndQ@o|-~0f*8cd;U^7O z{UDwUQin5>mpnJs@))-}OU)%O-;fH{6dZ(x(M(@Z!@45tQ17oS$i3xT5=LXzU1DAY zenyJOu=JJ2iS}U;K1~^X_p$nTK<7RtIa*NOOS!vPTbzNzA2}XmKEvoX?lL0!Qp4J< zeeJD%6?HKy>QnIrKOs$tCv;Y8ICY>-U<6A?UAA?H5i7WbaM)yOU=F_5Iv^GmM*+(IFi7P7baI=?8eC4iYp} zt2IOe@2DXSta&?|pV2`Yr8x+JAFyIRk@vR3T*@s^ZjX6Jp`>1ti)`x!*Ja36E%Drt z9}FJdE}MdFj5Nj>Va%3AR33R+`dJ3Krvg^oqJ_-Hz>o8PCy<|H_a$%JaL>TERLCIr zBxzckF53Q`ZIxznLiSH2KQdCNiV(N5nIZyV|w&=!bgD#+Q1y<`IEGAnkG20 z%Ly@0+ID>Z%^a*~P&efV?lt=IUInus1l7clmAo`73NLwr1R?PKm6yS)VR9EI1cmv= zIR1z`Mho`1A<1CCqZw<|-)FChK?^0Gl4ncWAwg)UeVofD1eL!3a%>NUIuGkzzKUd; zT`|Mq@BzI^dtekKfoh!*B!L=ej($c^PG%jz2=;hK$_SEzMm%)@2Z|%6rvBWzx^+!F zH#UcB7_Oz2k(Ud2f@7wp+!JY_RtZgCvh@tvpDFafr<3lEgyflkTk?h)CNvw9PNRkO zK+*>+7GE+QdgNwvT9`Px^9!0YcR(j?qD@TK@w$Hgza&8c;CyPi4Wz2*gITMW!czhvFf-fDp-eY z-wS5q3FZi%wa|7#3J6>d&$Y%UlK1U9MuUh114^(Bh{6-3sTNo^o;#3NW-osP-g$I&}=BmK(q{&qbsFmNerkqHs{h)bd4A|nG zR2%wp)w{#f_jOrQ`I@K3>QL@93yMqKaD5@ygGzDTB0E(PG?fNg!J48#(kizXt3CSu zQ-W%`z-TF?;JJq8T8DPbaA~%z`;~tbxITVn!c@#_gG^YrMaWVM7Gg^bDgGcKM#mP$ zQY`>G^{&6>8Ck*I*hOABNfWJVuIU{>oxlTPWF5@FGGLE=&WqNZc#bTwL55D-3?(=s zy=DY`e#FD*;Uq2O!~XtzUD3%ev~I3?e*@e>$|?}1RwQP0@My~mCNzw(h11dMvay2e z|1-VSoLJNcBI%NuW~Ks2Y65c>m*!^_NhkQDM%V9%#B*m)1*`~~29`h#v;on%bR0Y^ z%U%@*jPTF4@d(DVy(t(SrIR)KhpzKYa@_=i_*r?Ot{(jHGo#5Ucl+ zyJCP2s!r{ECcj*gD+Ha);kfJP-);}mPV8`%P4}%)H5U*JZEBCwFx)C>3F};n!V*xE%+LI^;k(u@0((jMVoU44EA!%dWf; zzfOO6U&bG_Zd|`Ax>g5P9HT&RdUVAA3ACWvvBn!uPw0o`6^p~(p&JHhCvGaONUg+e zwMu#k2Ju$)=X$fkyJsRqFb9%TEQeWQ5Vc+L5zM=)TMl#L!O-9|@iqGCNFG!%e4IgzazT(cVf1JSk{rf+GnVOi$V9l@ z2b`(Y*~siL+d5gD954EeL<4KbeS|guPCk9~dQ#Y03I?sRkV~TOE}8oK@2-%H&f3A) z=PM~XcmiGG5xv$s>6mBK6&<3Ahsc71_9S%G4wb;;@00=|!Sz>3vcW9rDa1=~vbSB^ zyagU~Q`RlAn<cp}I4SiQ z@emKcSY{L~1J^UcnMXPhayClSaj`; zn|z-+dnw%4Uw`6{t>MS36-Se`{{(AX*4?ljm^Ha9U13h@Y98!|Kyb)S_uArZ`-Cey zFRjRMkq+u=O_3=|F^_N1-pzV{>}o{G&uY3tnk~p&|H0kjYF1NmvkryAQI-L8}mDdHc~<@m=RVFYa|Id!e(gs$4b2z*U~+bUD(;>T7--9Y7s2f07yI!qX+GpvD+=_`+zOVkCi;{NY54o!Lm(MVjb%Ng zU-l22?qp*J3wQEy6f5rxsEoGMN@*qU((sDP($Z@HbYNMR!KVAcr4{Sqk`$>x-NjV^ z4-V_dnsl|WOHi+#Q|TFI@cs%q$N+TG4%V(2N8=kuo80WmS#RNCY3uIyKc%2@Eeg-3 zLH3cB{S`FQxGm6atq?apnkSgO&eq(<-8qwmOhMh?zNR}?Xt>v^8?1Y5w(Hn@Fgv0hTvlB zZ?mw3i?}K}h*Nv{i1(-VhL2sX zb8SK+sfog6NlCf2u>_?}&>(W2eJALN&3V^0VUup9Z2Mh2DOeZB`MNt?9*(sF(nP53hua5OW$kTBQ!5s@sG#~K zh6tW^jwl<;V|4N>k+)Y8IWVMM=qK8KH)8#S;4T?D{B&1v#3ZZ7fNPt?LT~80B+bs% zl#d9R=H-qA!B7j)GQ)uFzA|D(B?b`Ju{;K~ig=dhNe*joW< zvTZK4sj`GnIVFt5B>c&%gqJa!3b?K6wy8)PDbT2L(bnDiJO13i(-H{ZW+Z1LMZ5} z1d*;76m`e#98byol-I=AzU6uROOkPDZiRFGgjo<2XTuX_cnf~$-j`TRg2-#yptM{@ z{6Ll*y0+Gsg|t#zS+_5qu+HW=R}EuRcE@opDjMv1@5-v_y(TOxw+$}aCsdOg>8ZNb zZ58o&EHFW5klabBJhqaRRYYyDvE+q(@-3--zgoS)vgb-VE-#VVTIlPIcm1~LNGu3S z<|-4z`nV~Cwhx_-`d3l}F}&lcb`XC=2Jymwcvvu(uQye*P0TPX%bBMN|Ir#j9Cl=|+10S|yZ4$T!JANjW{@f40lbND>G0i=#^>Oi-4m1e5q|aO z23+DY=^X7DrM!va_}Oppbj0z$PWTxm&*JwzjM4n_X%5(?!q%q!R+`Cxc4L_y-9x)R zb0bSbrlQg<9(44x`hS!O#|e{w8x4&F3@%~AXb%rRg0w_%FZ z(77)o92R-M4=X`9Az!motqzLuPET&|LCijT1j50Uj$r1K` zW(X#$CnsM#&hG1%{0!z@y;3nYx<=8gEwano`Y!=&iY#qcKRQ`OE)O)`CM^lxq>wk^ z`S1O>gZROh+k;)|^9~EYKcIe&T|!%5Ka=z`!kfr`W+N);SuqUOCCvUhAq3&#J;tMZ zYU|fuEF^+jF$_vRHkL^EVeQUGZ7!nm9^r|~L9%H_GPnI+k9V`jrsccD zAA9~thes*TvR8Z~Kat{%>5q@KKd`{*S(a3 z?yXo2P4BxjeL!lml}>KRP%e7dyros3fw4~Cy9|PJtVreR-!y??S+)&tbgD;%9(sqUYc^Z#V|~K83u`V+rs#_3;icRj(C_*>lI&q%NBB|HP0> zgOs1aPelJ|}YsxB2eq<&645r;EGIWLDoIPzi*kdK3 zi-q8t%*WWTtG@yre{BQ6+_M*S||Lx25A=YXG7 z&@Nx3Yl3)BB&>|Ytz^d zU}0?(%3#b9k8OfT75+j=JoFixMq<}qSBsVpKit62S8C0acu*e80$tK!%f~aKjz8#7 z$V@Vk1XjluM2h3?+suh+u`)a2)zMTj#wOc@)4BN(Qw7B@L;V<&hubs? zNK~t8gZ@m_h)e}gf9=OiNUsgH8?G)OBqEHNNqz2CEm)W zOhQgrH*gE0z!+mAvP(Ap6eK~EcLK1A*(P+8T&d7m&Ti)w2Cg5=G#8sL^;ID1#x>Z7^-8YP<8!;T29W2kpVT%B&1N3LDZQJe&$ zW9tOgV=*+`jbx|{%e}DKGLuRjdi_X4yNkCQErys@FRN`Y7PGn--$uq1B#xQ);Mjph zpgRO)O@%}O|4|&t8q`K3mr)SP3TaK_AD5~m)qnmPkoTX&e4Q{S7AvRDlBpu7+M?w$ z^v<@x2b$JV(D{Y9;`|gR3*A?O+*@KJ0=3Mxrwv20SbxtT(yL1wMJhi{6O&<_yhPF_ zB;!KcG$-vWMlT-qb(AeZsLQ?8Uw$2{`eWB*&9*uc_)ZkK#5EY}8iqJ*n~=cTziTmxY4x&L z;?=ITIJSCAbfQWsTphd$(HPu4$j1whhyw*Ex%V-9aW$NM#BlWDD;|qovslWSW3Zkz z^Sf639~EzNITFtGKgDm2OWK9jEXJMY|EhVLO+0<^vEpqJa+UXWi8G`%*B$-m{C>Wq zIEs5;_qg8iQsLJq-fHHn3sKc~4AB&0ExM^4+bBl)AgN@Kf9NHzHRuh0k~~!K=Qz%K zuCFgDrp@8YM@aFAoNkGm4v6j9*xcbTbhp`>O7QKH#Sq#RQmIg#`6%#Sn4lDh-Hu!I z{0>ifC)SQK5i(6iW}YXVI9~P9vvU-qZw)B+!!Q#qu>@AfHt0-}1Vn5~3Sx?&wyPwb zSR9Ebtj>0ncC|)gs*f7M#>IryQnLUZD!Y3StF)n5mEU_PX%u5*upk<^qeKhK#-0AA z%&G#dcT92|L-2|k;7ROIsXS7+AN_qAbG6W(FMh&^Zn`uqqvitjSvOSQcgT&Y1LaNC zM4+5`A9N!Xfi@MywVsK2-~%OABmXc-s>BM{`13uizT!2zt0S+CyYKMmm<6X@J%zZR zOMOV$d8Gk5L>Xs-sN6DkuNTAqd12sFKCvRSh?piL!F?l^VoCkF9H=ScsbyyA=sT6BhZ$ihRuJ6CbhJkHD zP|U6W`{iPk^(kBb*%Hb+gygueQ>2YbFTuIwKQndueH7!V*gk#%Ui@lG>?B6{5k!G{ z(EJwoLyP?0xb_}*Tz%%&BVcvJtJje>*AV@sJZc?V-xPZ)xjk>>bRew0cpy zQAx(c4i#kEY<1M&eVe5hPp_We649VgF0}tjxp{3YrDKU^Dv0n%` z*V?&q1ieQy!}re_L`;(rFst|R9 zDAFj2dsjeU6B;0NcI8o|+Gv25wrdC`fup>qKmuVi8xe#1E!M;v+Uyta4)x0h?v%(f z^Gp0I$xmVmmI>?N%)4n4qv?^k5ml6V%V>;mQ^j1iAp5M5P~b^hq4S(;ZzT2NG$l11 z*1&#K+`e_mZ4@LbI9s%kSmBa0NK>58bZRL30IxqJS8VN{B!zyCqhPH4L0{vqpIdp`#Ic< zYlRFxipss_$AoBk&MR>3#8~Jpjay1!!YxX$wDA&9cexV7lw7gx55KdK!db-x{<@R* zqf}wzef{Mp4VdPa7Z6Q@yt7=dxCCp z?w;CKM?87ivO9DvT%0XF0(tS6c_U#50%hJGB+VRt$BUuW;%=vfl1%*?par8FBhF10 zPa4qKIyFMsJLJsB!S*7j_vBelp-im#nT{lm6vPvHTh{cJ#DN+RUz$d9S_5%FvDiI7 z>@1f`|Jg=CqZAeYDjc>pl~GGalUxtOi(d^|oy5%{IT2H^1fnf(d3PYEUs1h}B1sp$ zc|5SDFKWMb{CVFn|AWphc4Srxp%j%0Re7K`^IoxC>Vc9}M72S$N3GwZ$zv30l={jK zFhd0L(9_}btE4U)98)iE8QXJYyd{(}gisdR9W2Vbfkg}%S7m?#c{~dwIC|)$Wl}L) z8-P?c15vH2&6EI{cZU?j6fBO!6H>4^Y6qwAcuQvZse3|%{dA(FJ%VyQ+^myaagr#GQ9 z(`u*cdOw}-&8Ghlk-UbnWP3W*gKxa>XSKX~YhHh1cVI?<_zUY)5^n?K!u@wMald&a z^(vGJh_Tp#sQ%T3#36n=;jI~FphSul#|>cr-VcZ85~iR{E)FCjiDyOT*q$qRkBCS3 zz-+LJx_So{mFF}{u45<*3DbLj~cyM;c-?H-kx-gq^4srb$uNe@_7DRlQ9yhF`hegm#bnwGXeIs z9aNH#LTySWVxToViffer{MF@>bJSFf&CeSg)*mNz9ZDz~U>}1+H1u2Ur@^wi^x|Jz z+s5`ZR~r1S%f+L0&|Y(++RH*HSydoSMR3IR+dV&0!9JjS`H_TJA@d$YOkuq3`iO00 z4Htf8AH8#fXrNH3gYwbK<0mm&RCKAerN%GpcdIRI6jU8i-w34)L57RE(BvRNi7Cun zK|FIcLk?SDGa7IDV0S-K4QIE<-N)ct9^qMJw|EO(T|G9@8el2ElYCJ%>QEbDcnVNG zXkb3E>+L@nBPP{g3X;I;h!t>7vmth8@2!6ef4wBvi(7>8_MRo{zuRfr7DNMYH&-?g z1MD6Q(Xjr6Hk3)A#HM6WJN(j%5n;B!KClwDAzMkkMl#;mpuVI=fo(#X*&Zf|$WNNyBVwwbVwu9Vg&u9tTeeIS7ni5-eKp<|M~|4~ z%-fb$Lu~drI6EodBwv!B&@91Uk(qz~Qo?ml$NI?CY@u6?TY<=~)98jl+T3v3R!8g} zdw*vtb*-#aUM%rjP+yW|P|vkSuS2XMt|EL2y=^}nP8=WW+bUY#lc-Z_Vc%h*GR zglg+>j03M-5m6x-+IL9~1iHjDIT4eih2ws8;s$#^hu%x0mO7RLC8_+1PING5Vs-;9 zCY?BJDX(&lW6iV8g5pOhcRivGq z7LNn^YIoC(|aZs;T8q#+k7%A@{W>JY6BIN#Hs>4QaQd$ zf)nb36+aq@YU^6^AGKY-)8K-VR9ID1t0_itnN2dczIhWF<=yM&5jQ=%cr(Tr=;30d zOUuUC42$uq{+l<>JkHhq00XJ@Ay_T32N$<%F%m9LW7lMDGI{J#g41mJkX}h*(M%7f z$@fP*@NBv#x8B|KL9bpcSjT>h0Z(U6GCShMwb^N>j)=a?wtU=1+za=30Ah8?tj$(jU=?4yG{PXdZ!Q zO`=I`sc<@HxoR%C=KDEpJxE9ihi8s;?_IhZ&Dj`m0VkxEV@9>1Oez8;6;`#lK{@jt zL>yeb7fM7AlEbE~sW=b^O2;;eUgoVA#2cCZz=&sNe;tFTmNA|rO7PRB9ImLJ2GoQf%lQCwEDB<|=SDbf6fu2_aK=x#*u-)0K$tq%}s%P90~ zx*IYnh-w?bnSKzOpI`UVl}C{ZgsbT??7+v+o8szWd_ElKqt@?wn9Wqm%ru!6EUC_p zX0C301BXkiC0>19t>0={W9t_dS&WzPIZd+U7zy!1M6aQbr~5fZM~0|dw{%o|{uM-Z zG-b9OzBlkE$;5-+sNtdJ_b7d8M_fOp-qhcGxB8gMMr8}%=uEhtj>LK!u>~<6G<>}! z{~tjpMYT4-P68D&Wl%}H4Pcb1HUOzGRV9I%?`u9t=+M?W?I?v%Zd4qS0Q(V09e5;e zw4v#lRK___Q$q%g^1+w`enU_~a-d97(hejQ?TVzXd>>xJrd8o8Kdnwo$$^dXvPbxw zR*&&j?6%N0xihnN0`w?;-$-gIc;AKE<0qA3rX}8ICU!@>`-0j%D3*mmxCpKeX;g3u z@pL~^Niww8jio}+{Zb7v88wCYZq(p;pe&p6QTpR~W;op|iMncGs zs+qB76{~aMTcDF{Dv8NRPNlDJ2VzG*e~qaALYyR1)5NM8;JHav@V+KuQjbfT!~9*T zDI7SHF8wDRC=Y6YN~XLy3gD6C7Bqc%ma&|T9G%3V?`XH#*p#(jdBt&NIGwJcB#4Db z?`Idv`gjG(U+>k^)st#VC5T#Z-%s91N34iY(&NRZ7r)HpOvhq##XI97`R0wnd*{MP z&>LU`I2r|rK_gJjUsNV+&bVgxVu?K{G>~_lslfN8mmq30S2ycA*8|d2XlQFB2BT*0 zMc#jHLr+0<=3|K2iW2VHFs$$3gPOvjLTrH6l7_UVV(W5GqXd%-!SCpM6r1EnZP$+< z!yS!G1%QhYFk`@D0;6mwi8oS0?xz-DT;73e$y5}+W}?8RNT#^$Y;L;rqR~8XyhY+b ztr=GXOET|4I`P9k)$`AMg9@aP=?HLzn{!1;D!ds<*Kg?c)r;d^Rd57qOhFPDZAZ(p z(GZjeN@BHRSDlrcseJF-%xN~ntE;osBfK?Oo7gSi_h_9GcaYx_Z`3;lHLb7L*+7rP z`=D}l;SD7*0dR1x*c4nVz{H=~gL@naUz{5FWpdbKjMaj-cKAfs?bc6+Xrnc-xoFF) z^>U!3qmdG;Y(habuqhsrYH;RVnd!leU@$}-FRrP<=z+#azY?>?VR&&8t|{JYOhcPY zR0EqKRyCNI7Axw;9X+7XMiZ7gI|**Utg_?%h0}$Z#qi?9ongtQ9_Z}w>VE=Xn<=qV z0|{{>#rxrqWWvNWxuweP(nLZtvzvG-G7|K>4(}IlBZxtUBaL?}d<@f+UZ;N4NY0_o$@(bDG}cb)M~88cjjG^(CT5#)YOe881uw7*0#@A-pA`sI5Mr zS41b(x&)6THuZforDkNno_(ueqK%4a!oUt{m>k8aHbZjYpa{jO8fD%mOcN8&MkZ5F zIuhrn%ptbHd$Kg*K8iDyDH_-J(_>vgym{$8tq08^9`<=p)=B*pOKU`HWTzamgz*-m zh;cQ9mn~EMRkxNj2U3zd?}iU5Rr3tNcvoN{)kv^3=YAuIgl%!(qbmWp53>TKtr%e5 zj#bhYHm(VgAbsv=9WZA#QQsO6y=DT_%uKVB$TO?tO@yv=fiiIem$Vyg$pGtO zILCP4@hu>pA{^&OBoxHPwC_PwmGhG)TQK6U9enCN(XY9uCAba}Cobj93qI?dmLv*VG{5P1ef3tHZ;G9@#A30^*4LU3D!o zU4^%RK1A{s)#$_dUKgwMxq|qAs_4J#1R{V#m6r zeYP!cZr10S5HcCnBL!yO%`{SKEs5<)5z!{3REmOZHgo-cfVr1lW4znP_?vT3*neslmghVJu|L zKQ~`z9shgnW0fQnB!SftAKQ6q)Rbu3oEXi+5U*C$1~i2}9$Fyg6DGl3V#l5(?WWX> zYUY|+C9xp-3Bg-S-ct?s_Kgg*k~U%`-k&D8)YWjf2F!BL(rc~_#6J` zzh`;(bPN|UP5J!XvF*Zp3p^GU25rNn)k)ZwxwHuh-0$v4l3mAV*7rO*P-M0JBrf)q z%;cwaeE-oLh^uqn9ha|j{-#nLn}U6+es34EHbx6PZs~;SZm+fd(AWE>nZISoS*Fib=!*KG4sTn1&tsPwbM#lr2~*@*xv#6N@8O+Bq$TX|Xap;?>b=>tbbgbust@{t)?n!!`e$(T7l$ z>?`@ETcdf>7|~-5r4Q4!F4>M5K4t5ot-t;nP+KEh#DC4sx8QBw@vX7e>`4;0yku*K zx2W+0_%*}r`Zc>s!LYXRK_aT^Gqm5yKy zpD4%$z)nr>lbm7y@5M4?1B7HxQniczx=G0%KU=mWit2mK`MB?+TQmL~+xmYSHCuCv zp5HQx(CT`^bBrgFE@p=Ika4ykodLJVFi0_x_+sen(3ZMbc*u&fdjJ%=CgZ?vd{St z8)cfqNiy=eq%wF_b@%Oi7ZciP^Q$dS*&fvjN|5>CLG!(+S1-`NIbO9v{sc3B`pe zpCK{gKCgEGCCS8jF+xTbv{RByth`RPAXzDKyu7z>S%}XmI(scGfk4#S1WFP|CY?RS zp)Sxr#3U09bTr&vGz|Z^FpV_PCZ2m-c5qC_ET+jM$$uz0A4Dp1(%3e@9oRHG=eLDv zu@jLaU9st#yPo#@y@B|DH_2Pm=eh*^+~-U6s;&1;<9Xbd8s@L@rX;?4U)^(u@IwB% zNJHU-Y+_~aBvkoiSl;vFo6C)aRwlgmo)J6v$Ot(6nLiQDOGo_f z=`E0}$GasGqch9dXqbA!^;YC!@K@qMZAp?7UJUWc;O=kJt4*dPIU%v8JE2YVk7XV? zPV>=3e6czng2z}mrfX9kv&s;6MZ83Ld0B>+{jvYqK>x2vuWh*(mtpRNUDLc6J7Y|6 z|B+muLhdJJn5PEFu5ldc`aR|UkxRyNcPXRm(V`4i>s|eXdtbB63C;L_9 zG3=#Jv?bWws-n^uS^;ENakZgFax21w34yZ7Lxa(g{M#n&;WDDxgp*HaUX|Q+)6RxGt16{4Zd;H5a63+L-%Op6&aA_{>P7*GXhFr)@IZEz zy7e(dZo9MM-PI}x%k;|u0cz}hHiEo}br(CJ;}o>p)&;k@5(Z0ooCSq>fUA zhAziGl-$!8TN#MiJls{XLH8#!I!xmqaJjWW4IQKz#x^ z`m@>&vGKdZ^VY{ZUt>9? zI#@Rsay4j3VG0rl3S9zt!a{-KaG%GW3KDFCfw&t)GPz8!u3}iWcMc^Z@f4>4$SNiVJ%x=`yYd$ZZkM@F@G zPw#=f1#3mMui0s5KO04Q=Q0(k< zYy_EBp${qO>y^65C^u@~%Kk_~2o*hWCPmHv6s@|2_V&O3JxZU;-ICBEsJHU;z)EWX z^nEdf>V#WC`k#i{D2Lyq_bc8I*$`Ps079WUn*LhIMO^zP-%+7T?LbgG$@5)9lW9vhmwN~)eYX{J9Lx6ogbqRsz7YW zS7|yxHz{V`h-WLMD3pzaPADhVWIG`R*9nCwStb%EX6k1V)5p>JnP6052EKdTl#uA3 zB0-2S%TC}P%PtDRG+!O}Q5lsCx)+Y1-fgGK`j4-2w^sl0g)U4|+JyTN1J{3v%5Pa|Z6{{>t?lNpQrbvrY4Bg?3Rv5?-#q|%Ml zvo_X9GAy-*Zp85Rudc7kY7_FpwHXm7O2==lGU%(nw`>1@Sw>LrhDt8%Dy{~tYbbTt zwqDyp5cI+>X@EK%+=2PYWi4xYgqucs(NP+~D7CI;sPrR$N^3=K@;q~y=Iao?7&6#L z7aC<*NC#}&khZv#P+ka_%83H-`Mkp1gkBf`0e{bH(j&s`KyK=o-3up0BV*cmDdDs* zNiJ^C=G}MHom?YEH@@c>tMJwrR@nY>g2uWX6*?|O#-)7-8eu*e=SAPG8;w;%kzlO)|~l@^4S>&C#^}b)AOzV)Fp$CG{x>uOY6MMuIcB z$#{#Ur#FwkIK7^Y*>paXJAEr_8m`vr)!Wt4o6qhU&^0+tTu1!YgmG%UMc!Lt((%u> zJh1h9Oicf)#oihkhH6|gEvEDy;%e4ko2;~UjpC#5nVlE@PR1-C(?1^LyeX`IXnJbp zgkumYJnjaX81aMZ`~YJtwIkj?=>#~Rk`)Os17R{?Ur11k8eqQU;=-Zv$;7pCK^qs@ z;FR_W=%D7}JKT6wB)8`h`1RC4ohpg6t`ZxF1%J|074RKt72(K7=ax6%lZ(;K)o0J-SUFERxCUP9+x zwR-SeR|@40{lFJ56es`}-)M1J$wj)>QGjYL6keRHd{Ip*9mkgWSVp;38%n6%;MmNP zL=(BFrJ)nbi8UE7Rhn{fxQ`C&uOaa@&MA|xIn!o8`Wb#cT<(^9hS#n+9a)Cg;fk~6 zL^M!Q^JFB`dm;#Kg=x$kPV7N#(MATnAM;vQ1Tme#)p_?Z8loi5hs=oh#NwQH_5KKm zKO%ja+P5Iz%A;sL1cnR+S8R*Ikepb-afbkRK8in?FNUs8&sJcLyxiSNW0`_U}0aVwCkBX)nR0oOk+e}|=sg>owB zt0n#j=sl6QVB@FJ81?hsaER39kdGyP#-_2Fe6HL7@Xv-gvmudZx3tmt{Rqs<1mVXG z&l0hQbXdwzi_2Ct5_6y}lmPhI5JZXE%Gu18LkyTxN?k2q0!w#xK;;UdOn?1vZ3T#nqs7 zf&QF}=|H2PGgZ{0Hi1Bk%T&)pLj?MOm5g5|e{KTj3>1^S4K47^)PJ7FP;g zq~N^g#m;VUKmv3-)?5wtJkW@{Ds_Tab-9&o zBWIETbBN>6aCXScS8sL#>r`(yk^u{9k=M}%?nMc}u6jEL@Zv%YAc58)4^)D9o1zj! zHy3jKB16-k!^SZrS-Lw$DWeMNb6NbWB8?8GTGf(B&a7!#S%prPmgVZm(&q-(*Jno1 z2wtcoeU5T#Bm;;ca2O8aP=vtjQbL)6WCE3T=Gj-x36oP?49&Jl?VHdr%_D*%=Y6f0D2ZnC{$CdA+)FvU6?q z^|Oy{ZZ`2V0r6`yiEMJt=)v?$D5q>MMp8?=EG@m)yXP4^m4eBq`Az$$ynD%a4ekmU z=6DrH96SNfXXO4e`#MMJC-$z6!pD@8ZvAlN)e&n1IMp5IXFo4GrzJTDd`bGS2X^DL zF2Gse*vAGQ+2c`MDYP?*eVy=f%_>r!K$A2`Cg4eivq6fA(F&l^@XaA41FSAM zBKPy;QEyZ^Nw>OF^tqzt9gT?qo)id9|*(WnjeCjDPjA2ow#aeAsb^?gqud2}zE z67cH}wVl|_Awm6kw1Kzw+#f)pl|lGCf{pMez#I?n{Gz%J@}?ImR?90==5{Ot)LiO1 zfs$mf8Zi`$o1xOJ2vZmiB?tM@@6|<0mp+^?lmHBE#QoKSc@5b~U6vB7dky*f-=hF! zaUl+f2F0yp!u63x#5An-aj%1nFy0i*0RqLsFM=Tb%le!A=MVY%`LFc<%d7IzA?_}f z7<1JlvNGD1W%#?cCze~AZcpj75f9l$J%(vZQ3H?*hc>DO%ml^U3xf%jA;=o4hx@3C zN-peb(68sZ2IDO_7zwsMonEL5wF$&Pg4|30@DwYsV~-Pv8_0q6XQROcHWxWs1HPy# zsJ{UM^o4XE<@S_yz)tKcp_$xCEm*g5H%i+IRv^BhF2}Z&jy%eON-gvh5eMmnvf>v- z_;J6R`#HJZ!Z6aWnzO@ubpE2BVPBR>2m!7@bjqyq>hV@oW0kFhMnIwT;>mYhM3e4| z%pK+&4Wj{(R9=%xB1tlCu#kQnvXZiYCi`VEIrgjD<6$3#%`YfKU?gX5A4Eu=Dl~C8x01QDR9%u7VQ8yBReI57^$|$8RL%kLuKuGw0Rup7I2ySz2gmvx& zIk+mx*~E(>xD{$|Nc%k3ZV)FnOC|A?I+xc;h@hIH5`enK6x3q zp?ZV*a<5VFCp*v}vLSt=50Iz#!LY1OW43u7=s!jhb?{Ei6NqUrqZSv1l1m;Z|0R-0 za2zQN_Vr+}Z_;RmZ~Ood$)7xOyoVVk3f-Nb9-iDcXYo~{9{E_Nlr+?{6+boKB)Za z$TR~C>kXH)k9d|>ZqR!o5yV9f>7wbYe1%f*nTwX$X3d9lsae|C`YI0big zx%hX!uz8#RH%~m1yyDS=S7|HRo7MDnYtcP@uCezIBt;xdc6EBTVe-)LM?m~bM4tW3 zS$FWUS6Ce)XzYd-k|BGMt;5}li@2%*2r|A89L3eT)=|o+3kg)7Jb;*nwxz5(Cena~ zj5mIx6~-WaXDEiijbuk%N^409Bp1y8?WTni2WcEy{s>AWxK+w@$BV?r_g%8J%z$0B z&ZpW6K*@z&Bi5k?zbPs)6loi!tTy!4Dlar}L5){ZVCx!60k5h95v;V7HK|~^FS5{9 z*Ar5(zMdEtk5(Lf7}!urTn*~0nd?wga=ByXM|bnyO7J$sD=qjYf{9UKGhhNlP!}z% z#SHoRvegm1sN#w5JK-4w_M;8q>Y7A}c%9M^U#(oM`k|OFbmN6wI6$D4SAe;o9V1mI zqH#qfm+cST&6$@-1?mgqE&>kvsz{k!+{Tko8Y=>tO~448LlD%>CJ+b4%_`nKT?4#2 ze8~P=K0iT>D>V}5Q~c&oVwz|{W6JI6tR(3`D=y-y1|S!4Rab+?fEWKe3j7l!7 z4&oZV_x>8Czvy+_NQSBb+CoDVm0ZNty6z1gm#YNmqZRXpom%LPWF-qn9Q5^~*8hY| za*xIX-6-&NtlXKGBKJNxABF@fB{TvGjiB1;3~c5GDo~ zh2Gk+1h={dvIbd)LqbR##@`QQJkYbD5)%N+{{8P!{}QGNGD(dp>+N)yqSapeOMdkK zZ~cO`;g(UBz3!v~33YjH0QTTfg9M@*<|#>L7#pI!-tTZY$OMqCcp9~rwxE&=n*(Ot z61b@f#g;xOTCwO(F6=6 zb(N(we_W}0uqBmtGQ`O^HE{@|5|ab^dtV*pQEk9e{TaV#DT|OQh0DW>nc(-OfqC>G(Fg8QBN4U2fd}y#EVNhE>=vV7uJ)syYzD_|ynE>y#4qmO zQ{vzAd>kL89TpoWIVBO6|x4nIm5xG%-%N&`puXX(!G_|Ch|rc zhW2toVmdns6PuT-&9%gs@jk>OL)x}8W94Zr9WVJ<-?+*k9JXWAi1X9#hv1hgQ)b_- zU84RfO%#ePVJ6zj>_97%+11g><4EVbKlRuGugBpK#qpB)@VGtBFm=>teis%dkMg?= zL4J3^Vs5sH#TgThg!$X2Sb6tzEtPo;xCoD}sT)k28>TV^=PEDTEMkQCkb~nxoIHEY zAtdRs%0pIi5m$pAvU^my%QnjB+!i5>*>M~%ZpYFi^9xkBx_09C|^%`L18!AB}^uCQM&e}~UwE9h9_0q7G zNtBeg4ZS2MAGcY`WI1-VqZP@>#~5c&nKz-=pYwt-lp|e?E6xzZ>#zQY)=aECPUeNV zNUy>83i>U>10AvuV|W;rlw%)?D~Bf$C+oO_nPLu{UqamBAzOA@8tos!PW($IBkQ}# z7@eF>3SX_9-8_Tros1gY4_0E6(h$jW=qo;q_)2q-*jk5^)HkfC0QLkWP{OTc6JIB;uo5#5T=2@z|rf8ASM2Y4+)4r&uT za#0JN0lqNc&|3RY-$9ICf=Vu767Ybzu zwL`GK6r=c)h)*oZdO|WXSaNB!f}){rt_t`@&FM?@K~j%}kf)yRy+RTp1IR@JG}I;# z$mi0xi;KoN>QU`j5yi0>KYD~v7IK&>4wZ4Pxx9IrKL0T@5&Q&2U{EEaBuR{R*N}dt zP%QBp$L#CRf2B3tn5X`u{FDV{9rbmzM%;0sd!JhahDIr^s#V=!WC*nuN)86af^79( zm4q~`Zb=kqWWIp)itn%>?eJuF>Gm$ASDym4j(L2FSzurM%-YQ#Vi!L4PGhT6`#Fs+ zLc{fS^jB%y2$eR)43xYe`7=by-9lr8@zs{_aSw`%=kByWa$80r9)ew*f!iP2AH?8i zbHZ7bf%skkjxRYTm_A8e2i?E7SeqIxf%s5&ZiL#Nn-MQ?PsJ%Fuwi<&t0SiOK;Htn z`Z&cMAqkzCmy4CN(UY;xM=v&3uv2Tt-T}`5=d7$Qo%hP?R~fCi9;t)%`iKM1bai^M z1~=Zo5?l@OAya)+Z@NA)*LcAtLO+v}0r4auO|}zKa6fo`X0mYq_Wq}vl`ru{iWQ61B*fh;%&SpN5g@(Vs zz*T1>Xm!ihSI;w_?DMxgh;>c|X6&0C21m2SK+@_~!>prpnQ>}_*+8&*U9Gw0{gHv7 zdGcOD?H|HiX((O2CT4VPaeYN@wAeddW zg(AsA#bKVl>c%|{`z&Yu7$6gz=VF#BZmGAEiRDdQHo7oN(fQ)=Wk>;EcFT;ngs+miQ_P!Rj^b z+uJ~*d-}z{o_vWVVm1xgGa*AQhBv=%<)da9Juyb&MxegGyWZmA)4bKS)$vN~l1&o; ztvT;Jtr-Uv%~77htnssdw(tTGb0{X%Wb4Qd^S{{Bn`H<3H_IUpYsMGx8p)5~y-Af9 zn#C)0t@E2gpYrxQ4*OBTp1)VPmtI0#?7Jjt7p>c+eMI5_45|i8vy51*QmyjB`amod z-1I1|-LET8-JC3+8x#}j#4Xt-gmbGe;$2#NL$4yeC>!P1yAl}tRPoIwx6O<+E4SHj z^RIF^pr7{;f8{7t8o#fW&M{!GB=u3T-Aj*G*CMr-J{1y$JtHJ}kVG4Eg`X=1kJo(7lMK!&p< zbYurA2MDnqheM+(9)y4Xr1CEijI$+Ad6hj-16qJtC-xn8KxR$r0Xm44K}fQJ{y^-n z9T4@;6CIA?y)u%^Z1P(M=T%PPMcmX|flZjFi6w+1v!FkG7irp~JgR0i z^*>(2J|zsZ8_o?$ZD8#DextmK)t5O#JM?+EjOee_n58TSJkAVRoQAWKlp&IAVC<3I zN+#5aTe5E&bM=$04fwV6VQtC)m93H?vujh&ttCIPz5B6G*)S;guGG4f0EiQ3JWgIK zbT-Y+VTA8D%z$Wl+-*P^1WC;L7H77rM+W`7f7)2q;ysvl|F%;_bka_%vuTs5vQJKa zT0RbEy-tE)F>P`-^Hee8+I2HyYqRI?#ba6``w?JH?q{7h;bdQnh5ZQHThjV`d12%9CtWtSiQxE$6)mzj z9R`YteR&@yXW0pYmsVK~l=e|rm0Y5xo+rs%z5`6C$=pR6$eYFRmK33ues#al{=sdn zxR?=e^fhOVH@ukGfHDX&A(C}qOUfl&-ZR78?EP^Yui~Zu^{#oo`JO>C%#X)4fPIKs zX0a%3CVAqJe)&am3e-$^sVQAYD3N6Ef>%tG;r)_+*bNh$#c5wu8u`+|W z9+ruf$828LxXwCl@%$P2bc7ka8yIapslOv%1aaz0*E`rxsKEh$97ht2eEqeEPl+e! z1>prPXAG+Qgh-Zs=CT;UVs&;1r-zhnW(ZvsK~fty9!sH|IeM%m6&{KIcJ1mb~+pGfqyFEeB18jf4{hAgO*%nUrbq@E*65-uhsJzp5VW# z-ZvUkZ>`}nD(7?6`<`O;$2Inow>7(e`HiSG)yfVN$UN^NtRb)PUVV3d|L+R<@0$PK zNdL2@tu@WG820+UMcz)!EWU@Y2`saLcl90K&leN}8Q=H5D9W|7NBJ(UOgs4PWxWgE zxT@86+peE41q4BQ0pu!w?ZtI6-Qg_9r3dd55bOfqf4leM^j*(48`;_1)%!2ea)4wY z+hXG_0cY#*$8oUwpT8OPpK{g`DsY0dW5OOkzKhrO<451e?vw$%2t~(*FVd`4JaQTx z)CQRa;y|Kwh90e$1@ehlT}f-0`E2i2X5TKOb$0=k-9>*d*Ut`?ddXodzj}`|0bPi= zs;g0dE$2ZxIZOBNoc)xlT{X1I?p4ijo~2ngy_8-&OK+-YFQt{El?z`uyVTaV`Fed9 z*n0tmTySzWjNf@8?r_)5NiS7l`Bel-U;0cljs5`mKnK7580wU2IV^21{en!VS>iI2 z31PN6%)TXaMwj7?|D%t<>Uqc?JV*Q#Vr^^XNS~(?KO;z6(uTBsNP|uOzRT*M?yEsS z_Gw6IPKY!A+QD4d!r6-Kfyk$lp8zu(&FgN)My=If$^|cBdEJApJ7}N|*LJ^t|J<*i zuP>JEsJ|M>e;8>iS9$#gkWSaZZ5Q48te+R@#u7q}v|ogLb-q1iFVfqYKtd7F9JK3G zTsXzK8%|EWn76tX?w`L+A#nTa-9|&s(?z^*Fz5b`ab}-TO{e_sLC+aX!|;4`KHB~Bm-ULLN;wDgPnG8v&MqgqJ=#^CmF2TL=}vnA z>r%JcjwD>zj3u-reiaSGfDu*M18o3Eb)ALz3SYgz3GHx&$M?VT1)qNLGF!jPei0|G zxTyBR+a$ue@u~AVLqOFozbYq_NM;^GI->4`>>E1XU`mRvTglw|IH>2w5-#dsT_9T@ zFjWMr*I~bRNprA#p0SU!xTtG00$jvZU0YXU$wn_ofKs^{c02Buz4ZcGteti5=G#5$ zfzA(>5Z7i9D2-{qV#B&#@a0JG`1)k%U@Rf7N>#WdTMe zdi?V^`HcJQMzY~867G}tLI-e!O;lwfpCiZ=HmuDc6Sl#*9Lt9Yf={VtnDZrn${?Ro z-eF`XWP{Yx-+x+^#_d4!sMbaF>yg8k-o);-b`% z!$n=2Yp=duzq`X9t=L_=!R~Y8C1WydWGvw#p%Fap7A-^h^@9A2XXOQ!m)Xzn;&S=lkB18{Ukz-@z7Jhj z$oQFQM7(5n+X@2>g=>{P$tz=XSEO~PYpZq`r1|=kD|qf|AHLI>MEk_5gN&hqpE1XJn*>aNdQZ*bQ*@r*7Obev4Zc{!P2WT7DFQ0_&;=K47dvc~w|{@_t#AQ%+lXrZ|1 zEPH7Va4FkfWOvgi4S>+)Dj)786gSzNHI(CjhBG5_wFhTrH@p>XA#Kcv0y0h%&gnb9G)m_R-W^HQ-T}~1h1>}JBw0x-5zinWvL${_wHGmDD z?JNSv=NZ5-SO@Y57FSlgG`3_v6c(ILx#PA`==QzKjpdC;>*cGN7QQ|z#QL0PxBJFV zhAX@kzSiCBr8REq$6OzeYd+oM2qOU+&;nlAcaK#e8#=b%!SH^tgo_3=bNa>;W;E?6 z4-y0AULL*ZkNNz%j*M?qF1JX5II!XmIb3*5L{@o|fBp<9ilAnsNcyY1$Tr*Hz5;9* zZughE2=l*xHEfQDQI#^9yj=QGU4Kw12ej+s;R4s+U?fU|Y#?!qZoo#@Cm1|Aj-eXR z9DFvrHmrd_V)*as8jzp2pKFe&|VkfHJI7TY_~kjpMH`mJlji-VX=}XOh>& zfjm_m8Ysgysxdc~a1mGk^^>8q<49!8QTBc{#@yl$E6oU?L~bq!-3Dnu3or+PKO6CC zx~`w8t5K`$10WavYSaTPcfCJIM^OT0Y;hc}eV^wSwCnbzMWo}2y*_V_9MwD!Guvdm z5Ax3hI%PIccT79i`1NbUgt}=~4}$kfatk=7mEfPuuyW(|?=mcdll!-jauK5i1HE25K|I zjfS?0^IQzv8MX3>TTG*4r>3Cgj!ni$>V+2QObNzXL%?w#x8&;AqVM|W*V@!j^E^Rd_!z3|d)%{>=&$}z?a zWAcpE7JUnTY!G)pdhAE^fV5t@I=uO|YuP?TAKO9KkUf<@We|Lf^0)N-OvZU&(GMXQ?kwSQ)(9lD zIViQo3f6SLl~97T4?< z>I4|XS(FxAWna9}Jynae?T^FijyYP*SA3vuYt9WnM4y`d23u0RWNpSFnM=g^A@MU? zo8_x&$xN%r685#P-hYd@0FsGM#Q*-tygso8ke^9=kM{cFSE`Tkx{GOo-2aHnl5tvG zz(xQ~vh)$J5pY%lchi#=1AaKL zk6~>FG0@!m+3BdWA{Jy&%&e0!=W5S<_s5_hO~Zyc0BChZSKqReEGwQT#3n3rj@fWY zk@UGden!8q*)0?@g%7Q*`doXFz2e-GBa{Ll17r4S4V;_^_R#*eo*3waNeftJIPATzhg=*&|^`xVWw zA(J?NT$4T_4DXj`UUSNu4A0UmEmu02>$xY*gp;eSff-~9a;@i3G)Oe0x-mU38-z-*d zZq=ZexlN|ZzB}YhW0>#XlCXO~;o2*^@s4R zU=O0dZEvI3Px<;nD1%?k1>#Wm0T|TGkzFasXJOOh=prnk)E%e8iGZk^R&`*|qJ|%} z?#x^e(2hH|c(E*$4OB>gQQ3t$apZPaQV+0Ij@byqT2c{AMw1~EXFjh#lVO|iRgZM9 zq7CP}heeW*-8ks;Y$B4p0OCPCIiFqxdHG=VZ4LOvA+wwp;8QjoQZt;>vGeQc-YutM zCixb87H(m!xwwC^go|uJ>e{Hkmu60&($}3O#8pEPAcNXL;_3<{z29!|CbCnSOHl{k zdn**EYx@OKw5HDsweJZcxvsZgX?T%D=3Lu1KD z{NuqAF4~o4Yc7xtff`^A(|DzCI1t)8{C%*7zti*jDOb_c=efZ}x}GepzZt*u9&y|< z?an814(2?j<>CHnDBQdBVk-g%rMivFy>!vJ)*b)PbK^7an_CG*KqGK#kEKxHV$|N9 zq)i5iRrbY{)#+ld4{C!j;}Z~6G#L}O9C$E=*F^h%Ktmu7-2Cytd8rn$u8k#xS~-^` zO)eqFsp+opRqUxGTw=as@AvR3y*TTydDAL_2DQb&o$;G`vW3A!MUx@Pt+WS@rD=Y# z$;ijJFu75T563(^4*T`R40Y~}(9 zU~AI=b19*b!!<9OzHV1>=g!7DtI2vHXK$kRI_<^rdpE7Igo}1HmR$VduEpR9gvxv3 z(YoCQlK41_yXn*K>X+8VSi(gE8l%5^@ddeVNp^;dc8L{V&+mWb`uX~Tpu=^bcdgy* zy(lb|(yZ&olFhsn7q?1@i&p754rTaXpVCiKBjBfUV*Amc8KS|w@B*VoF_-==n8=!2 z5orpu)%npYT*RTu-l6qhqLA}DC2g)d%YfI-=r}D)5zzFhgC;CwzlE~J;~L8<{+k?) zB_yDk&lS=8^PZPsM`Icvf_pyE{iBQYVq;k-?AN5TF&ds}&I~vDJd$9^qi1#|t=wK! zv(=I{hFk6Hj`Z)zOhAb{#%>eT)k2%Y3p?r8(u_2w=%e*-EHusKn%})RZ#cM?=I|$E zHcIXt+@G?g9A;f|nBkbdljF6RErb3t`}$UQmKAol za>nj*%8J$IsHP>3&0g4BkQ#Ak`2{hjK6wKsV`RAS3;4jV=V4{?E!Hv1C_Vurynhwl zpft?|W)bl^&&;6VfUME%I&qm$(=_^r-c`AWdrV`#>cQt$$7i%wWEFoQA^$4Ax_10M8RY}H@s~wQx@>S0y$i$kQFE>Wq z(PH2Zb>f!&@DOyH?kGSGFHZ z4xatzmvWWc#u7$tUBL2e2|^0l;NYq*uj`-DG>X+NAhxf&3od2*y|Db{et(e84Zl`l ze_#fWA~qou_QQjX!LpA+CiasYqHG{=7*gk*C0x|CQTr7Y5?fTOw`z!o^N(fJUKEz< zG5|to)^%e^@f+No!IGD^7{w_p4LhTGjSprI8v+S1OY(FtE*e?{ff+)QnqxD<1}Y_2 z2w$wu4vP_Yanm>Kv*kRfRBWYH)#Xwf8wDI(<4(5I@x=qL)G4%QD(jU|9 z`0-$IYp_JC=zicfE^yOvp1xt#HP5EYn%J;5V-d_wCj+5j^LTQ{o)0|u(Vy&_dkGhz z9vo9k!+VI_b1#oxfTg$?Rl5i)&4uah;uM)+7klGzPS`v zgbKlZG_SG~eg{=u8%_rcMF7X`4QDkT%@C>qY<9p!LL*SBw`;c|0!eQCvV8RF$AjB( zqXw2j@vL>><5@3=tT$s>G!zca2yoHR2u6dhuZ<h zx(z6Ud}4+3*YBTt{cKw=!P5U;^_t49oUe{{l~9%(wpcFnD|*?h_njqNWD8PP3$0rc zgv>KJBK0@67r4k4q^?G-vJZd^Y=g2RN(MOvPK3Nql=jvyBk}g}=d^u_HN%INqt&UE z;gHJrcs+VSgm(u;TWpn`zKU0z*x-1B2uVOyN-PeL+|tB8)5VSBHRNsI3~fS?J$m6J z#O<+UHvE^bbIooYH-hk5;jm2el4>fAmU5i^Bx}h3Y%C_K8x2UFoSBRIssKJDOB5d< z_yr4v2J!1alXvR91v%;1hq7f-WPy_>wCwa6RNEag?eS7z1KzzF0BL9}+2FY?2^zE+ zY-C8f9B3?)d=E3q;kCw8u}ZAealqw6PldSoI{7EKZHA>mvjUc(N~x4~Zr1^wIN=|- zd=@5-kTC4{*8O@e)ltwPBQuzr^L}r8<#ZZ~C9dGjzRrQt@-UHT+wt*O!o&@Tm*?pI z7ilYYG_8=@)L0e@T-4R5+e&>x_lv9*U@1+ECA4r%e0TB2K3hSAxzwiqG@Zr@v4L`Q zuHQ1quc=OHcIsm|VZW6#qZkcKkQu8h%c9R%pEg1fDVP81i@qi`j}hjar`WgWUsgcy zR(Dt2w)fcYl>Do_{8a@6|EH?{Wu5+IjlI?6$!=D~VTjPiRV%uq$eIL4EVZn$P(D45 z+%L1!@~R-2=c5wQ*pz?7KYsVzabExawqNDKVBPBOYTG_yUK7ZypXL|*l1@#tlT>EW z3;LI6YFFE7^Dj&-t;mkG%o+ToBc@Q_(z=tC%i%Sb*5B3zu3LppTnFQ;o(?kmdb@Vc z3<{eoxDz*LjJ!(LJMP_mIay^17aw3v z-Fj`DT{K!ht4I?wWxsi!?flI>Tk&i~X(bmkAlT#s*K%$+Dqg*eiH*z(FU7@&;Ylt! zI>_wsVk>>m-7CeKe3ohzHXG2PT1l$b8A;2)H8I<6vXW2l<2O4_!v`i|mD$CruiLY~ z+`OSKd9JDB9lU<)Tv5nmYImGh=R(8rDp_-l7>%Rhfi)C_jlu1-?U}^62+OiG{W-?_ zI6EF?wZ`6kJoqTu5yU*5^kU14hm3(u2F>MD)ot?arVcRk!;;`?Nkx+(12ccvUaAd< z*;Kk~S&h0v_YM$rZqwVn71zWMT*arcgt*#6N!)u4;>o|XoMQ&x1IC&DU!rl6b^%~& zdFn$U+=7gO^u&K!9y_$j4wr?Hxi$5Y>8-N4ED$Pl7GUY7T2n7s_e7jep<`TI!BKWd zda1RdRO%kUzHV2`@9W>v3a}K4Ht~*Yd@KUx*w#kImMox6R+cd86HTiWZAooK*`b8W z6f9*4a8(z#(VEhp%yN{a8FrJqNPH?|2^XP8<+f6lfwcmyB!_{zw)hE_SNPw5wPIyi z6b{v#LWF8fXr#DQPvP=`=T@CRHz`uL*bFd?6CHH^2tufPA8>be#qIozE@nQ~EM0c6 zqdo6;EBj=MJ9VwD7Ruc+4V(9Tc=E7oS7?*<)fWbFi!THWxOI;?noHSx!gh4}0biG# zLxs31wblPySuW>|02g(wRC8hV&uO_!|Fg96(-5iw)?gJEBp`@w_q`1&7R*pU5f=n- z=b2nXdCTYQVCnN|i=JHlK*PkY$ZVlKc;?dc;fhlfr?7IOxO5|kB!6{hpX(VNK564v z%56Re@hyPhJ=2K%$mGRl{p~a>I~2mihZLC%1hd!KTG-g3Oan=4fqAPIeKnpn4Bu90 zGMJpC-433Ap?&n5GjsYJ>G(Csb$ep3Hkqu8(a&c)*AEM<<<7R-Zc9?svQp8Wx#EXP%qq)|qVC~xY^&29{gu?NmAamblOR+bHd&J(BV#Z+ za;32*PnO(`Y0O_m5?r|$r!t^mFq&Nbu96HC_G*j11duuCdt37p=QEhRg@W*00=k+5 zU&Za`|FYC$gIoly`=zV*;3I33jb+_K(Lh{Ir9SGVt?}N5ydepNPr_-eC;QQb`}r`R za^7Obd%bRONWhJ=Rnh2;YxaG z+!`6n;-XXt96Y#fm3YD2Ki3YYfW zpD;%#BIT)(0!iALOO~p=-5dekhSQU5h%N_hnHwiHzu}-eX7_0{u}C^ zeIA0M)v>J|K&mc#xs#r!ug-ZDT3Y$>(6zx@6jq23YCDaV$j?uDp4ge~TRrmO;jcBX z^RtFm7o84hw6nw#3PDHhWJxtJ!3Xi3EhK~8+OGs&6U{&t9J3p0vm02C799NP?!kHE zjl>c7rIzkDX=5~W&u>~7>_xU8(TsSZX}0M88k+J8_Ua*1lJ)-c`08_c_p`EVR|L7G z86q*H+v>KTVW;t)BlFw)Mt?6=wzsGv*KOKuiH!GOy?M+*USiCg2N&)o6b@Rd1@PP9$AM`f{=l$MHMfPuIwc++1B$rw%S|4Vj$55Az zo!ioAG6u9{j;acnpUXq-fd&=!b-@!Xb9d(1 zCc@H+LSAs70XC?^S_X1%XHb(ev_|Xp>F{&=3F)gG3*irrd(n|0>7eA(o3p>%7sOs{ z(U$=77Sxs;xP?N{QG;$prA(%F2N@6}*EBld5Ziz~P8gn}5E)M)g;{VrcP+L>;zzzO zwg_Gm9RqCaFPd2!qQ2}sSRv5-N-*S+aQe72J0t$gCqpJ@ql;e3*`z-YCzBiul}X-v z_ZmRnBQ*@6S~o{oM=pbrWimC~bi2iSIKNZ=KBS4Ux-zt4zxX-_I#>?Coc>#3lig&U zyrEkw$H>PpWenw%!M2R-%e-x}C>knO8OS;$eV~t`GP{!Yi#yrwIJ`l)?CP1x zGmT*6n&w_K&47H0?rb3pI5|sWiA%H9CodY?nmr$AL$kL7ecL@H^QCZu+yR1QC7#s=SIeyfNbLLB z_+i&J(C1R)ds&TTp@71n=EaSM)*F_Qv&O!kM1=;}1y+tD6dL4@9|_BjaPf7_#21~? zE=fS#)zA+d=8HQQgi3%q_;%mgtNgrH>+70m`}us}=uj_OmeM+VlW~OlV{~YvEzbZs z)TC2ykjb93M-ezE6@m`cNkb7}8~>PTSS7`*udT7*x)Qf#z|#2P&+wozBk_Vy0BT1Lp88@TQ^4P|y1=zsqxHb*%Bp>T=w6Oz zGd$ZyjWNF4dfp%wS^}Vrs`wan$$7E-lvW7q<-DIqhd8inK{aRxn4`8zZACfi-e74Z zgu==d61qIrHQ3W#(DZDjOJx~1ZP1;!rqKsD2HNb$H=hvQ4A^9Qy2MEXI%o$Z)rLPm5QH1g=QKX`iGhkHf9N9( zSW$~v2avEz2dJZk{y~tGr6U*Lx#;MSZn|CbJ|l_B>|p$SJM3?4d=IAi>ZiB#!at_pu{wH7wz35%%kHJ2kC&w^t;?v=N#S zu%m+n2{Z1c6Hn?ByE*7yI)Stue}b4f)e9fDRtnceui~*N?9yX-7QHvxRu_ayb>g#X z$zQM}$jBIsCdcLL_k?q@jSthB4BE19?7TrzD%Vr~wl`U}m|gc|kgRYLkg z&~w`%Xl&Y4TLEzawWSq*%5IIeeQ(OgZIZmv9mi3x+ZP6R9cN4WYp>C#Gi&AJGS}wi z8&|QeSGj|wQvXowDrJF-+igX_7i>VtWH7rrTAfT*<=<HEz zfHm3H)@I~dYV{Eur+DEN#3^GJ9G-ojD&k!16y~|lh@(3rEtDiIA#kv!(It-dpIdx1 zK0XeX^^)_az{dwm2psIvr4{A#)CO_iK^hwnWQBD6HtEg3*A<;21xsm5AZc-GXMH4^ zDB7lg%v(yFGp@d1p0Mdu13Af`M>Qy!W9kw-!MY;psDr7Fx&G%9+Mu5o2kn3V)zob* zW*t0&{b_R{8>#GR_O)HLb7cw{?@DHen*qK6!Vu+ z@o_2yWNBh7;Ub}rcJ5AT4=jl}%AyAwmu|)q>gxV*A)BlQ=Heo@>QGILoP)th|=!;y>R`5V<~R- zR+LtrEL%gOG*Pu{Znz-`q7GO1?>8s zK91umZ&=Dv55LuzXKX`ZLBmrz#Yg6p=kuD)_w|n_o?vADC=sES#84@f_CrszdV@%F z-*8>mP*~6=J@hw*CqgekE0kj8gZCSx^QHgvrCmsy$PLHRcy9woOXCA;6VBE@4Bx_& z(K4}Z4^%lx@Ko^yYj!XG5Z+{HxYmSEalFXDQkxjd;-aqAbGSsW1Gh1P zus>Y$_cR&{wfpL7q45=@-&U%hg2UyW?c4R=f3;#+D4_6o{ld1zf_Md|&{ndZV+c01 z&DEN;Uxp+I`8tQi+5Hg9qHw6z!6TP1SO*AkleGi1W9^jvz<-IxDHh$HrLWX*l6nfb zHy%ND+Rp6Qo|A#S*gE-KnK_Olf+@}WJ~F-^MbgD&?+N6$tiFbIe@~E+!VJq0aKN^3 zwcI$6ZYJ>O=Vp{I;yr?lVe65BOn%&6aa%IUvkJdukY7{HG;RicOY&vM_?PMalx}ZD z9T2J=dQ>ebLhocm=jTKxBePYyYaG4Gq5T-d^^A1r&Rph~;M)b7c!U45u-sOvQJxS+ zoiQ4|#~JW&yj|jEyM1@T(E-wNm+JtvTi$3uYfwpIn}ZT<%v@0Sa&Q6P*Y{~9E)=+E zs0XIyNJ8RfuyjB8vuDPkqDuhmqQei>i;fO5yE@saY4u?{rtH9WVEw{o(6@^Ao=0k@ zZgrm>E_=3RRw%D8hG{1dCR1h$2@AC!{M*-0v0VQa=p{I6JRjxsXcLy#BJsDY@#poA z1;h@l17cu>S)HnCcMt!_Au3zf~SD5%w%(m`EYx?cay=y25J8pMeL%fOJ)=wPxVQAX2%GZ{azSlK9i6wt zDwli~SwmqYv(iBpbk^< zODyD*ZvpoK8!7H30IXz(D@V@8iLaI88xL3$?ZW+mPFRo6uO)&Nlo_(wU zZ*&V{v+Hl-vY>+`YEtcJNj>xp!(}UsPYWTU!+~{VgyFgb7H7#=USj@Ga>%MoryJ-q zjUymNh7PsSzJ10AgZ5qmd`28`vC*k(D2J*}7f;)WfIaaUTxKbq(5e5uW5{sm=;~zn z9D$6oEBJd{9Y35iDJj%FfcG8mnv;WjXBj@O)7 z9>+0+hJr9f^`cES?mhb#^)7{_x`0}(DcvS(XbGqv=DONSnLQ{M?o zgoH7ImbC*i^RdU%uk0Avz4ym!0b_r%S>w;bFB{pnOBm|_($4|%%EoC*IvMH|+Hs7>Db$kCa4qc}B0kYUk}`~e zp2I6?3$3nZgg?*@=-IQ>WF$#PiIiI&Cs=YGFhr__{r2g8PE3|gNa_P34z+@0ZP@Nh zAUs21K?l|W5!^a;(%@MF(4lrR(pGEWc`Q&OUortnvJ6HOts{qM%)044%J3RtGcAeN z(R~f~a+t#tPS+h^B*k;-gd|Su_mc;kgDf538P>H!&z?&FI%ua#+Wgpn?wj{F1Xl}0 z2klgY_`OLklMzf-M~Ar*Qzb`2e@}Au^O;YEM)>c)a;GyUHu4vY_FNFai31DyAr_zU z=)w@ZpyNQ=k@M?Z6_yhRJq1acSOYm5XCqz5O4MaZLZAk4CTDyfc;FSt87D*N^4NuT zt0SA!&dHOD8?z22sb-3#qs~UsX<|*Zj&18VyQ97YI@>x~>#n~LJ}P}S7+jr=Os>u@ zw(D~etMsT`sR8lQ+c1{ zYfuDl86>0p-cOOujd-k{_6dz@ekQI47$PIaCbM;tLQUod)_wkNUB}J@KDv1}h3@Wq z&dHF`@lYE!WoS1&&)H|G^OP|@(;V71CYA)pO``hP@`GA!TSuNYF8++LWVTEb4^ocI zoX*h2;ad@PZG%J5PO(7tJS{^Jv}gq&8@iXp*SjnYYq?YQFS#VfKLUROrhHj z>K_P_G_eM94#|+w<)GGM==UCGlz-tl)bn#Yeu-Y%afFYI;)^l+d7^PwZOZvaqPHXv z6$>O#9X65t2t8`w!f%ei6EX5^k4P~$N z=6EfLXiYxb1udU=yRL2~A(4&a3@Od`66%vnaj8ati(9@tLP-)NYe&d{7`YB+U{0!V z5h@=L%eR(6j(g&Py0UNjV5~8RMRvY#$8phG#HF}G1B?*EvdyjtUILvxP8N$Vx8xL)ZM8k8l3TK7%(ReoH>^Xk!mDWn6t?2>Ie z8Ys(h7~$jC_TBM2jvvxMXcsLV)*=fAS1k>WirL9vr|Gz;G$kB*zCA(Yl%(1rAL$jz z9B`EGAZTZEI?g4CeeK+^%M8t_g!VgBEzL*KG#GG-1DLrrc33I{B>5^?Xlq*16~Po=8UVtkz6;Iq22rGqz@v_?CL3`t(&=96 zW(dnutK{>B1FIW7@AqEw&`LTAA28=;VkAk&P1cc%n;e*f_BkQv8V+?ZKEHH@mN(~- zIkJXhf2mT;km&LCGV8ZE>ry(&fLJgX8yPg$ar@I(E?uG3QhB_SPL|Obxq?4N)t|aI zq&3+B4boBIxb2n%8Ca7KtdqguwskUd)fX&%{n(CW3b+rG0f)`ab+bQ-`3<`6BG~Fa z8Mxa|OTxf4AH@7?2pQss@w|RUmgv%T4#(E$egRwxr8~8q=6mGoUnI5l5~_vx1~dkTOU0+cL&9=mF3V%h8l9k2)nH&sCf z6$6@#l6-=R&m5bW(~3hp*p9@TVv zu@Dc~PvGMFRW?-KXKxTGFCN}tIro}W4$!PxK9h=IFq#Y*xei9j$ARM*u#7oImeFV$ zBi>+8basRoDv9lO#GMnBxv?w)2c<$>-ES`4AEg>miWYT50z2yr=K3uX$O5Ky_zc#{ zvd97_b*+D(7|kbigt=HDzc z=+EKPg^vnKTkZ#1QLpm&DX{IO8UZd!H5bO59D6Ik^0VzxlJA=c$%A?cXL2w*S|p2G z0n2KHwMc+c;nI3@a9IpE+Mpwr%}(vp@Cj6I7}o8S816NbO8Rq3hc?V5(ocwy>tF`f zME{GWo6jm|jiH;Z+Q|9nNywOEZ-YQjk<1P+w$6UGI=ZRKwxiuqc2xWx56g}5IWyr6 zzu{_9d!Jt{g^>}q>Ua-vzNC-BgkiaX2R20vz_a&j=Q7JYr0ctwyjw3YgjYQ zKj~}sKGWxx6LOz)a^p+QZQUHaHM&7(|G=x49^_ql8RP)%zo$CIxqtDNL4HerpFaN9 ze_i$aWHHRp|E>Ie+B`w>*L8m}C5IOHwJOe5PL+>a+I3@h)gI)7UNhT7Vz2qv5Q5)x zonnpAvwlx8#XO>VOS0J<)?ZSaGQ*z1@aWkg^exI;kYA0r^q0vYzeMko@2A-IYkI!T z0n<9wiWmEN=JDuM^X~B$)Ys%S&{sb;IFAFnZPP}KFKx1C+V_{ppUPh&yl0wGbb=bQ zI72aeWDrB_&w-}TpOLf>ye5{xnf+@s%PZ2E>GEp;`6a?HS$)s+m*~COklc&nbt4x2 zCDI>7W`{SAmq63!y~}e_e@T#$KaKJ&7?+*BnqGdRI4%^%z-)GYzu~VTeoHmOT5dPU z7i1l>{d-yJ-yo**_kMVje+}jL^!LX4k}BjqsTt)Ta}LJI@&aRK(Q{$;5WGeDmRKgX zT|=3rk8!u>Cb@l|l590T9{aZp@_UM3W6ji`eUeFZPRW2HnZ0^>3*MS&2G{M$H}ECe zRcb4?b19wBL6VSIJ8Do|hEB)#Vh(DI81`5BJVQ&f4~WLMB9NMB1A@#)K_p@_IvDnS znS(q?VQjoyJv->&ZDcf4PYEr8jvDl_9q0y=iK*89zVG`aEkr1 zM_J*bt{&HNYalF(z(J|eXC)arIip+7{c(f1gM=cWIwQzi$QY@J=TvTU#n=W#kR{{!dqxo%GxW}G{7 z^xSbHpSk8B$ljQZ>W)wk zstY7QOSR5O(!?6bZD4YljE)X6xv8#}!=O@P6Ok3{b%pmVn^_XunO!X|#0D2_Dvw)@ zQD=D{1f{rs=ot~D1A;Wb9JaLsE@}%s{iR-e3ff@b5o!%;ZDJJ%XYpN4+1N)8xu1~L z1?KRzRXcSYjuP{jQyc#uC?^U4JkcnVe3J`=xzj z!@5v`R_Js48|bTxoyR@q^W?|gA03`lG#N6mVlp+Ie`eDfjcv~k=)_7d%c7_iG&~M< z)9)O;EMHmN<3AuqmdRN+IF6Aqn5&Uq|H@vs+5s}4$M(beQPc(tO~W@~bY-@X!CU7& z2@P*IZ`s=56C7Y63>3BT%Cb-*1gF}MN8O$Sdfd9yI-t>UfYEI$0SM)Z$=N}&I?hwR z1(1kxZ+`agEud2}_Q|euP4=c{`dMnf;FjSj%gC_V)zQZJf%i;%q??s}b~(@SY}tEM z^p_CwYlz=cjZiwkDeK}`c(xM0?!^qp`5L9QqTA=^FzcV5{xYpptsROWSvx|I%(z1M zY}MHzJrpDBXzE~WWYBCCI-(9-lQ&r>Qzi#VYmQuFqG#0w3xc!*B-0vT4tCW_Z~nO5 zExwdbNbG_PxoCUsWe-B(d}3M|S0~&c3}%gVANXds0b+U@$tcCATw=f4J%B zA^SjLR;w>S|QqZ2jqr8UaG&^F}*A>f& z?NDOREq&d)gCJQGEwGP_@)nf$MDU*JTLk$f!h6Ok7nX6mNHQi@C&S~fDf+;oJQtQ} zUILoJ>{goTd`>>o1IzN#FdxtH7AmGNccL?^hGh!!$ny7iSdw)pL1XRqL}y;+cXNFp zyQz27EpLWmTp>0fbTIxFWH8-ZlPwhuKhbgySC|2gV|JLVh2v|lVe6^H?FfY=p`(&` zM@~@eZ?kfhvm$9Yn6ymeJj(3HIrx>`3~ptILNXW;$vPnFc|pd%@>^lv^P^G~qa(G3*z(42aHs z)QU0WQEa$ctWE|pTkVz~l+JKdYe1itz375UA_Rlcfh}3f{eG$k_n4KT8Wc)%Ue^x? zEMpECjNiu4k|*T5Ltfvbw{jmD*4=Yc--rDr0<->?ZZmm&K6oSZN09|B;YO@=|8^K922gTccy!A2+88wF^H#uToZ)kfyu2lu&8= zCo~WQX@C*f{X5L#)`3|)(C#z*P>$Zu$UxX+ZD1_nBGlIWTMTw-y=wpauU33u^?|+9 zRGM=MEdl5toh(Q|`liGM+2mTw?n_#?pB18A3K?totCEqp0I`o%i^*w z2(k_yVO=|vPDs+knrI!_Z#E1%*8RNQVMVHEo8c!P%(f0ZSA4|+zWFQ$X9TxX6-nCB zl30Jku{dqg-$QmzB<<*+ooY}{5gQshpIosE4zNuH zD@R&LkauHX)zXThF7bFKy68>MKY)i7+fk~Uhs8)8Er3w8$+nlnNGHV~W7Z!;t7Vm< z=YG+4T;&dy+GJ;mYGtX393&U+$~t>MlR zF6zKaJ|Vah62IWD&x)O#iGgMI`+N0JCTEU}LO=91(*AvWEDu>5v{iTt*2e;I77*Gz zm+dN1c<@O+@_GHQzB1Tk!Cs+8>qkYCLAOv0r~}tzF3XJ#h~Qh!kq7(9aAUBfB0~%r zI4knR(vb8sVwnxSZOV{7PeV?8T#tX{=)(*YD?3Y1u8dZph6uz^o>$kFw}7kvH%O~m zTHz&J)U_Jnt0=3ypN5_5n; z6Kh99!vniPC)UAO773W902E57Yo<9~HAsC%a zrVg&oGul`RrRR7>Joh6Qs7KuFeGN22_`q{GNMnmQO? zXu9%Z1#ofkExToXhl(Vpw$pw#%b&a1A4lQ!w9&lO#mE~_kGVMr zMv^AhK>i(*%V;2@i{TNbEFaxI#W(C614;0EJ~!vj+Ak62ET5U5DSO4wL3R~iPP3MbAo1@$Oo}R-cRB%dzKYeTOV)u(O1Vx<0pMfzbScD_7=EnQYd6J*s1yoXw7M^Xo~I7mp(~Ct+8-h;omEtuUAKjcySoP~P~6>%6mLs$cemi~ z?(R~c&=0rZ?i$?P-Ca-mk8{OM#vmDQvi90*&h^ZdNcQcyl-oul71xy!hhtna54$u@ z!npGip@$%jas4Cy5!2n!G;uopK5psdDn_Taty$z+OT)7|A43Olu!f7vZ5Lxy_hVAw6l6u?!cTRW z`g4HOUQ@$_+qA0*4L`HQ@)>x*V&;*!!|Z=Ql`~JCjP|i;!MbQGrsUgq~4W2af|!E6BEGN_D$V56^wYT z>*`mln(U9t&5A*+OCpgq5rvMYUw#pKqyo@hW^4`mt9LYbI;29)FUg7QNN5 z4tCoy5=U-OYVE8)|CBuJO7*sRSvWL~bG{!E^HCN}dXJvNCc=gJ!vEp0S_v;kc2mP^ zA7HZm5DvMN3G*-{1sU7}cSPN5u8A$42b%&1YMT&AXH$YMbP1&1{R`{ZtLCAK;%PU# zjv?V4TDmdMNVWX@$4) zWbO>D2nclEA58^tBL(htz%{-=Yd;YHgUcsnynSw<8MW@ zd5QK?<_v!-Vh&vR%4y&>u#|dUHCU(Bgdnq!sl)V|nM_b?j&ikmwQ3cT<-7O9J$cJv zuw?5%sCc@=8NoOsQW&O}=HT&Do<`>HKH-~hEk_(wUWNblsb6{->zC$Cqp)d>B-?=0 zOd-th$*SvJo+K2dp02yld)TFiB9p!#>W30n`iRNpr=L~12xVWpSbwGK0NygdS4P`F zY>OGv6Q#zJjoNzb7s>yyOrg42hbI>$Sv9n40?mwP+VMs`tdUa(LD>I!7%8@OfUL)+ z(@R3jIPYDBlnxd$E!09(^FniqBHlPYo#9v`SPYVC3alWF8LZvoh_q#m<3Tx{6Rc|m zz*vXkoN1aJ8oXokyZ`eb_Qu2f+juP4#&i@WR(t zmqVP@^8ARH>cze}UjQOCQfIe#Yg*sC6U|moI!y!iQKb?EatlnWnzWmI34Xx4%2n;d zh)&C4J`5)r9z6!7^2G5_&)AANzl+$I1VX6jG56x1&wO}!t=PlLSd2J;3FW0`erh@I9+DFa;X_u5kue(75WMg5?@rxoq~ z!O##XaR zH^k-9^p!$)*?XSU2YffJ&6vM}UJ@&MYNdGc107mD#6Rl10w4hqol`9t`LdRg=|k-N zQdQtVIS*A~b@+8r8vey9$=HR@L7;O}2DyDzc-==Hku>`TJ_=`ZN9IGThsSa@oob1! z;AI?n>l&maADJ5jub&BA&Pgdly`ti72OX{LYgt1*we)k6Ko1K9%%?)>+rH`n36qc? za0PdP&vOV)7OwWi`m&ZfjV(dWKBy!_I?>OX&S?A4W20>~R5^i4I+$88V+OlP;LSoy zm?&&rBepb?JclGI#2?TwzTBN@#VS2LEFn63ErHmnF|O4`|CSYWEB-d~dM<6%!pi!$ zXjzn%iXf2SlF^io?{$7y_4ha#&O&g4xMnaC@H6+~6a6@a&seU+WNb!udlt*aTrRsB zvZPPb4KesNELqoI(ayflXH#6PQfOMf8exw&MA(1rB!C#%=kxPcO7QavV#}LETp4fbDF*&lZf|(G{cDjDThCFnd+S<0nU#?E+0!M zCZhSd$O2}EVVZRmW#gY=j^;<$Iha;IpZJ?@f{LDR{F>i=vYF5#qwq=ZXRdp|YBrw3 zE%notPWF)9i#|A2TPFiFI74ko>QXfU_SS(jCQ=R8`mFM*4h3=79~r&g2K`>^1c^bD zvpteTkLh~~`&XvvPvelJvKIZJ1CY3t8^k^$rzPt)5Q&+0Zqe_=6QGj(gJIsp^oT`f zvS?JE1GtG+d4?N+P-u7V$SaYlA?Eie4Qx~4$*=lb!{id?ui(+*@YG1fLLrj?$vbPc zK(dLuB-HE?n}>=*hv&#Rwo9}3MX`vpO^a~hnu8Au@Zp}pYs52yp>kKhr*iW$zzdEj zVVVH7d3Ia>W)&BDJ`oPy7N`O zI?mgzw=z;7+Q&dV!x;FDQ0AlZ0r4k(m?En@_M(?RKd~nv*u#~>H}2%!I-H?m@oYBj zXs0x4OR@;Yrfby0tOdm)W*u~q`7EoMY58;-dc&sTv#t~gG8LD z+mzBoPqNz!_b_^S!NhAGLs(e&q3vLg`_q9#&}dD?^>?oF;C)CR`Pi*?mdG=YS0*W^r3K!|;&jN?J{lL&*qwK(e9`F^J8RYNX;B=sk&u ziaxqQhy$CQsB%grG6hY2McF-3X0hBhZ6Kq9#!#^4)LVCS_UE??3%ie}T^5aUCB%dw zp2EX>PpB`i#z;W4NyRR^ud!Ot2rY z_$;5GhNrvHZuks20!aUJxkUWl*jgLXBPCH5^rQLMi?J=3>zBq<#iGgNnTz&dND6JEUoh1_ zFMXdv^LUmHQF%euNa5VAN1GtsGd3y;B>k)2Hg_`3AV+&wrv%kLpiL$d>EdG7QQhJQ z_Gq?__;U3Nv8c%tg}!( z-%~o1c*olyP5Ph|JpJNzfSs$7vjmQz`$RCaI>Pe2sUTO?h*{TYr9w0w@yH8Mc>V{% zrCNQIbuZPo&%TF_gY);%MuggrK(4L+WCxGmo5w!0@7isQB52QoiG14U3=n#L3VaF+|YtS40}y7sqV26po<0HP@m&7?#5W zPYu2O45raFC2yd6=60Aj|0w#|y>3+yY(M!b<{$8CBOG?kBWzBRFzN{H_6l{rjNbn` z&m!-v&iP2IV=6b;i{Rkh-UcaCe>kq&m!nF=uK1Hguljl+SSHLZfwZQSdMkzxG(J(p zE`jjc<^C3^Bq~Eo&U|1&!sHI8?_`vgqR4m|$=oas32Y>WOthR(zkvbZ5VJnIEb+>S zU7~=J3EAaeQBk2i1w>FR#Kht#4YJWA`Z1#|0T<#}ZRXyn#>~kb{>6_TuF?)$n709J zymEV-ebgX6+Yy)UHxNF)g{Eio)sF*rJk;Z>fb*r_ZQ9Gy&9Q zXfNOPpGD`j+swgL-nl<7WnEl<$Iv${UU@#GLc`7{%Uv^WoNlOPks`$eNMWU8X1FB* z2Wd)O*dz~o*6h8A^u;?U+Ho}}w@3+;{6`5u+EaG*S0oo*uGfC={aTqWk8TxGsj+@F z_)>pWGWTRC0g|P8Az?a(Ov4!8F_=Tc<5~n64jcw3vzSv(1lu+0Q&DPM6K3?!9;4EO>yqtX^O?&jBAq zLk#Q1YldqJo+j3;{sBaCmm_^iTjSKhX7#9BQBQ83)-otv^0G0tBR&eKtCLb`8HCjr5LqzJnFw%eY1Tq8N&2?dqOK=Us%1bJ{(_LjTM z#he6-ICEf{*cv2WU|WNC!b2ci!KNE~8Szc;&Ypfv1xVJI=KAq;^h1I>A3`tV?n2yG z(TqX~-fTn;X?}aZVOjbU9H~OIIYrjs*+_CiH@o>*nlj58?3!%KNOoQ>Pf`0VRNhvc z_&NA|VtlStr~?^7Vv*w^;9)4sYK>Z-W-6hH-X-&_y`9~`zdNN z`TWe7;m{xBz<#6p7+J@4i0H&0CA5&F@tNGm33*{b_T7A*Y8PsCj`B3U2k|-#F=5#M z1~=cyZe++ExMc%i1?j$mIyBmzPcQN?w_HB)S+RI`5dE23+FC|blslj6g<&Zk zuy&xX!OwPEkL{bdU{mozVN1-OP^P}|GV8rw*`713&otVY5gCA`zliwS$NoZ))>>+s zgVmi~C#VRy#t=G7j4>r`&4Z}~UkcOChFkMjzgp;C_~>%~#zpR?AxsYvy|HC(5ettq#SuU7VXfSH`o6QsR-jNmfiz!G z%aZS#Hfg4WNY;&Wf?QnYFrE)bC_cjR2|{m8SxntYo%MFL`~1clV8H@d#g$`2ICA@g ztscTO0X-2*;VO;B2A#Hz$9v$3@D(V&AZYFQ{fiDw0Y8yTQi@8@_KlDti&4_lO=%p7 zkD$4DXx>tsEdFeFjT!k{kEl&1_&2A->Ltl8bfbRpRZqu@(5qQI4u+1cW8T5SM&M#F z!j9pi;?6PP$m7$;aor$z&8j(+)J zY5~BTIJ&;Fpqd6Yx2i2mOVW_qDvV_Udy5m|)}(dB`(j==LLLbvha7NH0c#*eVj`YZ z9_xmxK{{TlOrRtuVdwb0_N9=e028%7Kdd}K^jO8kpwYKEGZLznhVh6MDFhBF(Rowd zHT-+o`5e4~jkWO%9dG%HW}IFs+%!~RB_ksZF1nm>=YG<2zUskzv0CKQJbdKSKwO84;W+VW3pQL1VBudxQ)Nw^e|yORsW!#@ zkZr2w2RfbPkw>B30x_h(NyO#u&Jx1!-$!f3kRm6ms9t1o%6mt&=rMP2OP!_L@z$uV zamf>Nnn)zlD9}g^$V{XT7ivuC$<7~Gp8MX>$c$OO;5W%G;Nce7xdkNVK6z->go!~X zca3I5gfy2ULZX0x^_6ZA??>^vu8^5%6(w!GRGPR4hazHZ{B z@b%~eTFbn$l-vK!9Q(h-1(#8BKFdJl=*wVh3_DZv zkf96Hv#h+@@)xfXi%^HN8r`a+q#|wlq_)Ywr9!vx0J->! zk7-C$3-Me!r>&rb7pA&?#MrZ;rr=S*>Z3W@ROL(T4F$qBi!sUNjmZtr-B6_^1U-59`NCH>I^>RM~Gb{mgW{1eUpCgAH*WJ7_!G|2 z6ay9v+RMn89iC5#L%DJ7oliuHvg)_cN7o+VU4>OLw5R0;Zoh^C#m+8OgA+ky%MEG- z1KvZ01g0S>ZowniLpeg8Po?Ln#iQmx@bbiSUZ)1-ta4ByZh^GBliT11=!dedS3=#n z;Fo7}$;O5>j6(r~g}ix#HP(IrVQG%{=$y`C2Q!OKi*t213%pYe^MWrK8E>n>N`p}A zMH1zxK;1>{zBrqo zVx(_NPZ-)u6h7iCQ4BY+gS-PtnRsB(Q#gQU7hBcY!|i0Q5w#D!c=VT5&&nr6Vz7Vg zVXOIS@fbuiol}m4S7JjpkR+q&``*gRrkIG;o(BAttL5)Y zwy+K5McG=bXP{ZC^c*Glz$K}lvA3Bzx8s18jpp*ZIVtNeG=KT;`9-BA^Fm1*izjaw zFgYUETjeb)WI0H~to*TB47R+}I0r8pJuMCd%M4s?w5*R>m=S+TyeT?Cl1-8Yx!1WZ` zAVNxS-G1+TR~K39>Zf$RYwd}(XW}DSZ&Z1B(g(~5I;#ML&h+F0exCv4Z1quacEXt~ zD8NyPUpFg97gfpa{F|UEBH|oe!Lh^YMMo|_%*pT51qleUh9ua4h0jG)eytDi4e|EC z2N5>7>RKZSuzLV%Y?lRAm76XtD+PCTm(Fi#x+xS!hjdbhW6-^8#Y-nn$^&spzor$?0nh}VYjT!Qq)^h?{5YB zfj|B5)d*c!V_-EG#l5(J;ugEB*P5L0Ed z@dH@0;Kqkb1{Ch;s)KrLtzDo}j?O|=h}fveK5;sUR?-o_Af41!!2T<pv}B_A1;@%sY37OC5d8+pWQZhb z=9$KUNGSTmV@G&~Au{C2tG>2JDiu&X^11uvJWvI4(2~v@Ioc#5Ix&xDLrU?uVG{RW z2wy)wqGWYYwOBOF;|6*#+`Ih@mFFnQw*L3eMLs}$M05Vhc(DW$21_I^d?XS#zc0s< zaC_cg7gZ_xmE7|DN5d|+zq%^ozrMv6q23j}G0Cv{t$@FY39ytGk9M>IRN>kFD|bkk zL`?RSDgED*y@dmA01;FOYTVg*ePtB0V-_ zpX;d%@Ef@dQ=uN6Ga<@e;E7PC@4X31W}SRv(h?Dc_~FE09qvm)f34#j4n0cCCIPjJ ztEAYx<-Z7eJe<1rep0+vNmUsFplmOjY+bunS?6!9P)@B>+kKlfsRU%Rq+xXYiC5py zgKmFpZa#zHQyott&v0O7ElbV?;VmY46A7O)OCsWzzS4cDC7?o8lov?JBm;tK=Ma?% z{NiI=9K}mvEySoV_rt=)H5sFwqwvuu0k*Z+DMqX72X=B273tYD2g$TV{2T2XV90|* zGFkw-6BoyBqT7byHu{}aHcsk@+tIX%p+;q5m z4wHY)b~8wcePhkoWEB|vo$X-UPN|AN=tZEZgMQyuC!t$W2B8T_Z)76)w!PL>vLIHh zglBqK>E1(j)-jp0)w$UI$Paa~N*8Zr9^H5M3w@C4KfkEwTAL+3F|k${TF1=waamH#2y`qh=h?W5$E8~!qBZn1PauR}2d0fF!nETSo9aJqho zUV9rHGtRr@I)H~`{p!Q0favkq7u7Y`H-C9fgAb_*h?cx$S_q%s`?+j}_uo%ja&yGh zH_)kz94Y8Ol#OVMWTSe&8VT`5H!GJbjgf5tWC-#Fe%95nnQ%Pfb>weMRIZmrLCiwSavut!=$WJD+56L*yRF zrXhGkDw9n#!SZ+@V7Vm7H4ck(&Ws8fth;2WX5(5yQ!zYryA?`PhDL|*?kWW z7Ap0VZxY0!FE}e8#I!C9-N4XXJKlx{UUs8y@c}UE%TTzw5Fvi{ilht_on|!k2s-v9 zPt8;oK}LEtodT%&Ej97>0$0pi!LBhh8Cn5R6GyJ&;~zR$Uq;1T_*%aeaWtlvjN?=p z2c8^UeO+sG-F})_xU0$4e7)QQ?7@< zo6%L~yMK_e)WX&j82yuXh_cfTD#A%}Yh{^mB+ZSv#zzuik8Hfx+x=FEK%pbUIlY(o zNd#V+O_>DOe?5Q}#KA%6wfS%H5GP;}!AYzKZlPebyj(-mA?Sd;#yb*Vbdf6@B$tONr>#p$FlB(m!<0yoKhOwD1 z?HGNngo|oK(Lr3xtw#S29gb*kqZ~{Q1?IqE3yytwlOTOoB>R1mr=qh6SrC$N>tF4< z#!nnF$ehoZ&J|#mT6)CoAI}ZQ944Ov>x0yXv}742PC)Qh{`}rDT>EG^&srvy6jD7D z;6snWg+eu_6?__`DHpkd}-mz ztMd=V(R$X4!IOBqrPJ_YC|`yvKZfSSF0M7QZ(3uVt$_59KCcAqtX?xGAPj@Fb%$0L zYRCt<)-yTn$0CF%QOOm*e84;OI00%>SfTLt3+lJL>} zA1)BGJY{#@FZI{Kanug>UiIF>*wS(NWvU#}qG|DYEdD$iuf&3N<$%tp-68M`Dpuo$Ta8N%>YU&^&r-2$jmFN z99ADh8MlaKo(oCj{x?o5^)AilDEQoXEfi+15YW@I<^@&ejHLpCd@9@^ zt{8JS1c0n^Y5V34W{>YGIrh#j@6#+cLH?pIV@nchU`?96^IsMPdpK!sKgjHje%&Dq zzq6^QWN5fs(Ek_1I2+*N*QHo3v*b!@hCF2TR;_8)7EN_Q`Yfna7IKjgw1bJp?Wx4G zriTfDEww(eDsR71xs)O~yxQ+cJAv>Ja{g;yE!9zGVX!N)BN~@!z96ER5%JvapEy$= zFyVT-={EJ}*lK_zHZY12fk)>|i3w&lu(J{cou(h;4c=ud`2vzdgs~S<|HRlNk;CHlI9f)vT#!5U)V6xWs);1j27lIF> zYuQ827G-awre4d$>WtMF+3gqC6DGVRk$gMRp&2jgI~hxn4=gxa&l@QV+hm?@>=W`B z5}|hHS?_V=jo9{Hg_w+EkqYYk&!SS0uY3SJwTcuKm!NS)n5Zb8e6TS{K1IimauJpD=QWJmT zk}*<{rt*x2VbndHSPRKas3yn%w z>R>>>7OPmlXBGwQ0~krWzlFmaZC9PDA|#8;CPr{ih2IV4!`LRJNY`+or>4NMPG$LB zY`^TVMN!~?gUS-lA5BLnYZd=)#N*+pm8*v>*`3T8f}UEc1_L2J zn6jM?L(R{H!=1pFnZx<*gF85L9Pxd5e40@cu1igL%3)}J8>+Q2PAezL9EE-xZ!T(1 z{dd28j;w)xuzujFljhmEa8Uc7#_LounOzDdOMrS=osXY|d{6MG&2pdg{ws#~a!qZj z3z0tnSUnAIBxXCzQ3{6?813&u=1-$&1EcM+&mr{FqBwQoQ(`wluJ)eWT*6(aPA;x@ z)CdKKMrhWMo>luPn2ydJCH{NoPMz&ScoLxr=1&6LZb*REshSA`er_4lJC`rz#Oy}@ z26UTD4cGXG&7EPJ$9x8T&B6?N(m^1|(WS7j_WHvH zvr#;4q^oahTNTk}J6+i!iu6t%%3|JY0^-WjAta8StTyZlH!6hJ92@Rn4?hbU?LXYz zZf7lgO%ES~_pfgjLwYfU8Ohgaio_~`b@64A$A(R+*gM(@>q6 zm&(~-D)8Rh6CWnAy9PGD0)KqDXqUC=p7K=zcN*F)%RGG+AJS&Ty3ydP87nuW5y+ud z+8#g5Zn zS!*H(H*OlfxiYuzW(yu*x8G$U_DN@8)b@$CV>{M-0=w4*RMGd49|4U{P*%hjoQ-@Rcz zlzbBY;QP=YLAIsyAy(4#3dpT}n6{Rx@^ZBNw`nW#OM+*pT%Dksj z^M5_Tbp73}ZA6A?XGCX>Mw7mbvc?XgnF*POl)_Vh>fx^s2b%WnxC#3UW3W{b_nY=% z8cVPv_pC!kO7KVZemA=+yu3}S_H#21NufRuYsA(Cn?PR#gIU&d!Mr#JH+;TJW!hB; z!sms2xhaufvHXv?`HW_dWN<^hJ&i|`{asUczMcK7FC%8J7i)v;jV4#C==@EY&dStU z4jyElTZ4#TyAtIxs|OhtA3kefm$aQ}Sry|rSa%cLw;LO;U3sC>VLFd?^K*5C`*@>2 zSeQcq+j4ZJw>qJg5BoPC{X~9YGaJ{^A(c_r0MxKv`O+1#X_UHLNf41|UrYP2J7o zt2SB2r2QX8CQ_Nd38F0eCF2A^prC-f-VGC%&J5ZZNf`0albU+xS3z`j`8sEBtRoLE zE2D{}L&JA>dnlXO+_&8!FX)_F?~UcD!?*QmFx{DlG zzwqT`NAim1g<9^He*QomRI?I-8>^N6WytBFrgv`&zo!sV`t!Z{s6y;ucXA~vqz%qp z(HXgtdXi(Kvj(#JX&nc2h}jlS6g9I&-!r^4M6pL9{-6xpR6bgr!$@6ET6IOg6DB#R zucZy^F}c0n-@PwFVj*#Y2= z`05gpUD1lZW)cgGpCFy5V#Ti#*HduUZFpJ!)#zFybK~XDsXBZ8Y}SipIdgFRA8>Jj zB=nWCC;KXDGfy(7u4x?WVynTJTxuNZ7UR1Y_!Q&2>uAUXXLyqJMS{|jcYN{@&dKh6 z;qJp_ODCV+2#sCk$Y#}B{0``i(&~kF46P);{c}}-t6!%V7=8qunu`FDavhnxeElq9 zMG`;WT0IqxyWRp5-nJH=r-xUf*%DyFllhreWb$>X|dD6A5X<=U4%Ue}LCJhXx zLLm)PN`U9;0f}(+NIsx5Ccizb{hJ3OlA@i3Lml4=sZkP>SUVr!lJ*@#i>uT>_Kl@i z@UF{QkC{3`TE^Z-3t1Sq7-Y1NpzrDg!TJ?Qxw9R2x&YbSE^e>4KXyW3_)oWwd38VVa3U3#`{$X01S96YT~^Zmt5 zfe)=ZWHdsLv;sCi^p-CHqUJ|1uk#CKjP+&m-}%sN@rS;l^@EVFN{v<`=1n&W&^N?8 zd@2rpqRslNZM*Z?@?76bWYX2Ubkz770>x~|uS(Mg8pi|i;>fdx z_#Zvj{b+R_`dBS{g^%qFwf^E5O)PYmj`sPMPN)6Xg5mG1y0_M_Wz>SwqQO1N+-YP} znj&79KI$qcVArk+VH`kIyi7DX+dVU-!F(NzZD#u1bPS3MwRy-lP=E`_5D0J)Q-Hrb z<`1X+AriBDqklG+hPWFXR*rO!;up3Eu6k!OsL&t-!O~b>Kl_v_p1)>_mFe+EOQ?W`Yp5ezlfR#)$XEnf!yiQH~crAlycIat0GcXc6T3f$oSGtX3yI2?J`dy>( zSg`X|9Sc6(LY#l8sWeULYgaXrNSMZ>4>bdXhl0#7u4i_bGwyHtTK?FQeFZ?tSx`(i z6xNWa zqD@v|4#x1|d!ksTwm0{R7M#PL@(`VMaDAu0TV4955xvYi$Uy>JKYvFR>H7XkhF9jE z3-2t##9?=J+~-9WxVZ(!esLdy=HD{kt9$gZY_sj|=tT_uxo~~@jOLU3T*zkif@j0n z_ho)!I#P@O`=ddS*e)oqe=JKB<4m2-tc0z0Bj9#(D4cI_;7>70d(grZ@f1-H(4M|lT_mR%?gO$RemvWQBv zfhpdBwB*+6iu`|mmWn0q`E?5476$g;gwDz@aPr5>Cd_5^x?qne7W5KrYm7$alT?|s z*9Xr#gM1GEq_U{&+>J-X(-%1D;BYGfez#$Ls(W|j)8Okl+c?#{hZyGUPD;d6$Ot^HjzgY}B4Zek|nGK#xtjMtc*y@Unq*E$2?Pqut(mHWy zB~T9@0i1OS_%fe>>RPsLsKw&Tzxq;O1je5wFQXKayikBUrtxZwgtwMZG!~q~usTO# zy6`STKEtXO*Zb@^``PUo2Izbb9RTgYl85Hp_QoB@zQj(pRN%yFz$`bLowGTHM2?Ru z@rx3Up7oK88Lee2icS@65wMDw3FhSB=EKJyZ~bbQOOa81Tb!GJ)CSGQ1z=G7Iz1T+lKmb zre=o@GCcHN#Q~egF16rk8&DHrhOUS(MPm{wig_d%K_S7y>fUQp^YzA9L%Wv8T@{)0 zbvEFdHeJwr$7ugE@E*ysN2CT6u+kOwu6Ec@+%ku$83-9oJtcZV%J?A~_9FDaqKBf1-kN38UG6@ zZ!Q(zm9PDxO3g%QdvcYX=v29>FmTyd^?CcbcNP3`ktc-ZX~b-upj0vI6quS*q6@#h z3rxJ&Be;F-d~_H~O4D1`WLNvFG{DxO-e2pi=|^pP!IkedYrz(DLYG{XV#lkh5G=++ z(ViVT;u_?-^!Pi++_?3%_;g8*)eCOTw)<~s!N%q1)ef(|IS_P*0jH!{nwz(~84Yt~ zdq|MeUsRB?Jlk}K+Z+FaG*k^sJVbG`LOvpMcl3=PP=qqdUFa>{?YZx z#xbwH8mnMx_a!GLuB)H<=m3!gbNl!yUqhJ|Yi7a?bI#vyo74(8{?isy`=HDSf~Ph9 z%4YWP#FL=21V+s*iC03%6}oK`mCUp};J(1=Tok#XF_vlE5Fh z9L^Ozik)XX7GQ_sj5aoD0~ZP@k^Vy$hvQDRgL&6?=yc7V^j-)7%mEi9f{*Dt583Rr zrgv6>m~gyv15AyE`XQOb8L8fyvMc+m2w%;*wtQ}{ECrul|FDHM8jDw4AkoyFkS%BI zH=Xd4@rIl9B`Bz4KssSyqIK1n<(NkX(#2r(ZtG#N6kBUE5=VyblIOLp_K3;bPhqM; zVjU#;t-U#%@2skyaTTOr4;5rk5y3nq zfP8XLfUbq;gT9C)TCjmR_N}t2{AU|Dnv4A-kWK?>Fy_CN^+b^0>yIMVkqX|^ijehg3F9CfJC7S`SB^e5t zXq5>QY9;efaKD|4I28y;z;MyT6+cZ!Z5GfeZ)r_|8i!^VLue4k??XU^46Iq;x2_ZX z_oEjv}@6=#JxAWuytyb!VLri4t|uz1AOuI z$yQICz6^TO80N!si!>W97_;krlreiL=AlPNkH}AubrwL@dIUd0!EurupVLK>7?%@MOA~Y+}h%ER&@1R)FRvbLJ-!oEs~=D z%;af%DpV#HC(TkAl1w$M!6#+?HVp_veSFhgH>`UAhsN>>!H=<-A0z3{=HciUw3qAT zmta4%#yw_w;U(7q_@@gM{WOt!RF!B4g?uW)saLV=^<-qA6=8mmRy_Z!yEVGBEQ_U) z1(M0cfM%kC)>2iLBkiB?$EL;}OYC7YgGd4N<2PlS9*Oy!oR>B&X8Ps5L7PwiG@=Z& zxIAhLac_s;7q9Nu#VtXS?xbi%Yo*fzGtCqu;9uvBc?uECPb|g79{C!W%g|%uiwu}f z?6$4~M0wMD!bI)Y!VEz=!GaX#-Y+fE9$`>F16=qtPC)2lB{Fqab+6@;TU{0W4(D4z z8{Tvk9~5X(Bz>`>PLU}&KcW~Vth2rc!7wGa*E0q4`ImGKLlgfmBl9x``P~V5T`v z5ArK6!Ln3ktkl5ldtbH=O26>3MyqV&azMus+Io7?*UT>|FFVNqA`z*>&%uO@`kNI= zv#ZhHseR3!l-bz5Mn$dTpLv;zo}Gva{fbU->H+b|Lwq(;1Zo#Pu}1uMIO~A5igHXo z!n?+Wg}!}0-$6LmfN93x)`)_>DO!T3gSMOshy_nm7bsMkg7;nuOF<>zwM$Aep_71Q zAeVVbu_|IXi-2<^L~--or$M8`XxADOue-ke6gVlZBG;+-$GD$3(*IySd22b*YPcF&yL|(CB~53eBtH+<;74>uW6>wFoVTcCh3|u_j1f@t zENMTfaY(69kK?z*j3T?)CRi#|8!Eey5s}O&9gBsu?NcrH&0cP zI`AN-u70-Z*V@7tQXhVKw1Xv&huyfeYAVrEgF!kG$VUxSTpU`7t@@D`6`)h0Ytt&= zJJn>?NM+6JiRN*1FZ{)C2+;ILLe-R-K`}i~dWS`++cC#mQl{-YbR726=`A-P4`6Rn2$u1UXVlvLhHD4jl29z%h z@QFH|>k5i%%tu`39H*z?JF^DXS^E>Tw!wOnW2xF$6`S>-5NhmUe1DRJhb(A}J5=pW zk>4@XXHMa`>X1dhFDl>3XnJk^(*6A-(`7GwSu!dB3bOI$npfG?0U;M*4nL_$&13WG zO(*#r{ByAeTjVa(F^%!{vPOR{*)7;(plfOC26ABP2)`iH_hzDXMOSdjtht;DdGbc%PcxEP;qK({1JRmwl8=3U{|u6UD>tQk7&U^V9$sfv+5ylVVU%ApIo2Aym+^CUsL0p& zI&Y4z@YCtEP;o|VW;2Y9dv^H=JwupsVj5JcyTm0r4PxccI)~*-O-=jcLvTPQ_mB*w z(splu^%(r7U!tg6?owY?s*$5-?Q?$`za#0wXA=}~#-h~3i+;5=;U@x059~FW*_)P# z;;t;^O~^R9)jAs#HQGGAuP~#EZe+)QC@WTgV@-N+nwJ= z+%HB3fWgGIB}Lp_9CJ$;Z!4_PVIC8<=D^Ribn{yoL#Y`{|NF0r0Y|5eza*0}04dyr6n*JU0X*$Gw(TkOHn)3c)$PP*^tR?-t zRu7jtaPI&qChyu%U5em+8FM^@d0?5(7zu4dn($B-332b&7Znre}0&S**Q&5%YP>b9x&*rUjQl2FKMN#Sphz@3U{E-kmrqAc`XXQ z2mAU{v#iKtdUc-=tv#UT?k6ch?m?diWn`_nJf=AVUu)K({dRp%)gcoO;xdeJK{TzZ z_N|%C-zAkJen}k+C+jF04N-YfTWf2TQtZ`B!PH7amHO34l!i_i9YM>ZZUz3+8(cXQ z*7QMS5_`?U5=5}#wP@uU=4N>#$OLE>`?oH?6B|=nD9BeMWwDE<=<%Iv>(+@;$;dq; zZ)>Yl2a&P+e*JZfr_A4w=bV1Sx(%P_7XK@>BElx9N@!UYAE7n)e*nQiKEEC6YSj3B z6k#pR2yjtqK6Epe5+2;vprIdn1TJL_!~h{Nx!++Nj+@3`Yu(|}cSHKmU#mFRZB4?! z{DsWV*x7Inswse_tq{ykY2t&JZlp%#u|yDLW=uxO?YIs2g3S!MI$UkLSe;$#)0f=; z5Wy~C-U!+7KO5wKwp<@HhZXerS>vs$^-`L3U5;Dm4bp<< z(8*6wxJ#CW6%^~j2T=5CA>yi3>3M5sHK>pD@wdUlj1|(ATWOKi#ZJZ2tE_NkudSD5 zaRC()B%7?A_8phz}iDX4c6-E(WvHFgD<9 ze;&W(KmS_cqOQ$27>|y+L#TpK4PcMThC3v*VxKVc^Mju(@ZBjZT*S3e*I#Nd8j9C* zMk*30J^%MA=(?ZtF>w(jHr&NQS>Yl}kWu}^`C=fT|N4Czq(%~8K!1<5gpXO(|{p_$4&a$q(ELz%D zCv3m`_51%OzvTvHZKpK+R#}zO?9@Z|-+K1yvF={`y}-m)I8S^sX0sXW)n7M_=8w{# z26qeUxE7kh{uXSqhUf7~a$JaD6aziz_M#j$Kp%@Ixbtc8V_ZV>xGz4H^Fn#b!GC&n z-5YwTZKw=DQX4o(10so+=fxsD6lU9sB{SK6|2D4K^!pn={Ui&J&-_VPJrR6PulY47z zpU0So=-R?n@C`LKxr1X7(kR*gfM~cZp0_Agzbbc=PMv7xh_d zGDQbn%u14cff{|*gVE_b_%OLaSe1Lwpr)Qd3cGy`l@KB2_c) zy$ zAZiKFfZ=e*1qaH-;xxiBK}?bw;WzUkDpB_YrTl}*(_F%jbbK)jYjnBgK1c_j}XFjIQ@cw@lL+Zv=T-%LO2vUj}S{Cy6Io^G2P>?%~N#S8-F1#jTcb2EP1dl1%NO z&R9GG;{k)c;%7kpIBIJPc`$6{U~zDG;waXFZf$hJf?0=~gAUC5`d?5>0|W{H00000 zLUVFF0000000000000002LJ#7aBp&SWpXc2O9KQH000080I|GqJS(?R5?R3j0C&Cv z01*HH0B~<|bY*fcZ*_EVb#yLtcyz4X>vH3`5r*OasmevRfELk1u%R>>(%4s@VK*of z6s>U%Rm<;r0m`1Nv)M{b4)D)^07&6KTp-K_)k^qj$+7Sl)i>?Y_iJ2iuvVA$l!e$s z_XytYeWYNtVE5~T*;XdlydyK&LBBTHceap@oF7MO;k794Ht&|F=%4t7K{qoEH%)eA z8x*JNY5|Gn`^{97#X|g6(LIghxoX_k6&pyfcsK}EEhtWJEf7+V=uS?V&34nH{xhn` z;h?%?lw6h`O^(0+Xz4LpmZij>R_S>IrXOdfaGEv! zx2+x$zY{ebuZX8i<7L&+#y<#^Z$dDVdbK@mY5BVl2-NG8x~U$%^%PLLm)<`BHH{Zq zma*0c<+7513R&2o6yBX$HVN@$t{nJar%EWuTgR|n6xcc5{t_# z|7t+2?+Z9!O?3Oo=Lu_gQ}Q2LNssmAOPKOCrPfuo0W56sHB@-CE$;nlo7u+Leb3}`Yb=$YO;X<^U0g`SXY1#A65sKq*%fjn+@nNVIK zY$Lx{e?c$`@o1Anv^b4&P!Dmc9T#HyTgiEX3jOx8{9m!Z1$);zsw3Tj!c^1GO4leh zOvX(|Fy`|Y!>#3=R{-E8uo7uNcdk4gohll+TH&!|5r3XX3*1!I2mz61!=>kEWH z5w=*3ly^*6*rd&>sae_k1v7yK?ZQ65Xy=mc^siQA)rTOv>(c5W-m@P{kN zy7(lnUg45QN#2S<|EB*0du!VAC>1`*Q52Ja!*>zkPU`8)XUKADrl3ELBJn6{8mA{<^sA}iX*<5fMd@JWGS0ilS!cin{3g4IYsGkDg2rbkT~YF zK43%KscNy{vJ~Eud#df{y4!;s28y`4V|^xp`zY4xL3mvwLDf~tw(J{96TdFDdcGMA zrq7jP!@kt1FPDP82$y`U;r)WFyNmT~L7`=B;(fb;MQI$@Xf_xU;=DUwA#A6#KCli# zG?sOJFmjuwChI|H0Vd$J+hWU;(4Vje^1Wm#mO`)^ZGb~p&9li^>+>|_b$8SM%xSTK zOEzt=s`(tYskBnok;C{ewVmv9zyHiHSa+suyIhLNe>SfVT%f8&m>n_X(%j{YHoDHm z26%)_BsHn9>0cHSE>!iI7IYzqUPeUeEWlggR*clEPTQXm1}$bPt&YK=u*cNnb}Odn zie;_9QT+NrSMxV;d<`MkH}``>E0Yag#4gD<*dlkJOXigHRI;6ID{!>9ubXYam(KVY zAOn4;chJEi&mb@2?w$lWm&XEjAmHE;QpsdF?6jwZrXK9*DT+d#kH6C5fV`pZA={6T zO78{2>=L^S;TiLIMN?9;DjeOarcLdCF*DSVK-MfaS2fso>QstewV35D7A9y}1bBYe?g08{7K+)q35*!Nf3|?z}$ObNXFxW=lswT2wQ>&r0V`)tGNv2z| zC_HtlpJl&lG(IRhZiyBM%`*F1;Mf{^tYa=2^jMjMjC7PnNg-wSg0;g$tL z>dBiF=quZr7-CTi`?|>{6frT6P=M3>G8|`;6)0edwL|3#4V z;n1E2*(IezEGvar2if;yF*U7J%uBI&pnNA*J$t2JgCW6k@#G@Upy(;3ELI5*7A6lV zw{lA`9gj@Fc16CRZs^eMO@Lz6Z{N?|Og)@f^bk|w=2dRsaRW`%GvzW-)$LSr+hy%t zqQ}1)2yOY^wwQ$&RXv#?ZdJBuTbQ!$o$|_WLZw5LwprJ(+mB0$9;rOc!iFZ}0W|8r zMO_lF?{Dh^!B+GHO{m-FZ~@k4#Z0_i69%KEm69_tE#}zJT_3R^a{dyQY)Fg=#9deTyF=LMX$pg&A5eIZ7VB zbb%auMp#-;#h|-v;)hJGt$jAyAa~R(P0Uu-&sZa@J3%&()g%5x*C`+dv6>6G)wXeT>kfgb zum??l51#%@)%B%42(k&2SJhML{vT4NGael&MRzx9gA2tX&0EN{NlgYRC998KnPGO(J6x77vw6E_d@&j&q2zdv_OeZfsgn-x5w18TW7#YbdOf~(a8b=EO zgdXH>=fY)qUu4;INB_1T+5W_JeINrX_{pDyRC{oT;H4bm+03YB$wvQuEb9k|z01Je zb(d0a31!W)&>lXnltAvStSW@`Upk*lycxInPJN9gmbl#X=fUwm6*YbHO8+L^k$X3{ z>LAJA(H6%j!borHqb9o9Ng(Kd5p-$)Wj*|#v$j4LK{A`zT~I2AXhyVwKnD%FWEVLc z!dE**UW2T}7wvSVNbMPQtqH|QYAncqjVAvw>GE{MoP0O|M4uZ#TN-AX*ewvu7HJ_z#F8Ef@}Ki8JCy-k!?X8UIQuxox!nQe=$ z*ulR2@Ab(xsDgiDz5Q4p{9HHNnf1?pHre*_=MPvPo69AiK?d&DZ%W}ozx~L53?N2G zz>o>JpPtdom{ijb)xp^pWz<(n(_Zbit3bzFTSnPL z9d2xV|J6|c9>ug#lyhxAQvb#`rMhgP(Cc$mY%UY(VzmYdHjW^T@5X)<#^vK<+ zhbRxzrWQ8U7iBb+To$y?uTKRw&^KeP`}2aV`?Ks1Rn4?p%2Y#n=6tLLL-XR!RJF{* zmF>J=)WPZtOvP)vC*bB)3R@_2B)&$b*E{msFEPaOb>Rb)-8-2f8Thj4?V@c)F>U%n zCU{n1PdqArvm$Is9-TabSHc{(!-A~62bx1G?UGN(^Nu?R0b7yr2qnxG(N}1HA|vk? z<#1nQ+&~Fos3mpM=8h*nF==`gtiFpQT#~c`26Gi;iAj zZ(7dZzP{7*S+b-_sr@y!VnwnQG znyhSMF)+-d595kCm)9&3Eix>oAcy2d(Jf^e!={p}M7$tIM7485v0%Pu2_%_8_CMqa8)R5L!%|M)_y*N`ibHy`O@y>Ucv%PO7~m zLLANAs)NLFGePf?zZI*Vzbe3Fve&VHF)>CSy{b9EQas86b+$|& z%ixR|$!aM@lNE!+VpXE^U{h$INZg-QV6k}gzhG(*M7BZ<>F+Ujmrc~P<)|7-@L@r5 z0H;%PyId?51UUprNLFQWMBPrClGhDp7q_6`mbt5D^(8}nfp~u;$US7UM|r$gpiN18 z<912$Jk$ne1ATEZ6V?b`#IuL}$$CoB7bF zrjp?YPn7qj9)1#sj0Yln&{Vb8Z;Lx-M_{s`uYCaJ_li^1M7+5-b)8hiq&T@b9!2re zkY0m$$~0d0AE(Vn;kfGm6T+bgI6$|U>s&6`unnkU&NvutBC@%=Ap>7_9b{YatqM`s zyq0XQCmUGEoRGU>W|tmB&vU=ZFLRlW(ij{u=dz}Rv?uO2)3Q4<_(@YI0=-sQdfhUF zo?41xa_3mVxdMzkhm90kV zLYlVL!j>_j90E@ucEnhG@sy0U?r%7BpqoZx2dnnVG`yKRsQYt8=az7JU*xH$EXc!+ zCjWOncKGzgHxxb-A*9jSkpVp++CD+qqUu(f#?NrqSg58kI2?=v32E_~iEFuet5NF+ z#!SyVywcQbK#gYmSeK@xCdZL$$%mUvJqG3u(*9iQfOb&E(9|LS#R{kq<`JrCe?hh! zPbddcX?)hSiSn$fTW0EIKRM4%P0zruyP{hv5ck$ZQkD9tyS$@bnviv^c6k>1%{F!) z`$g&2;pGDC(ebS-?Q-d$d=nvUF&ps%WeoJaAV~BKaPz2Yazr_Vj-YH&4{tK{*dxA9 zUo~nv1?%`)J1Fm?tPhB996>q80M+DSTlKFDTOUBY=EVj=A`3ry5_b*aq86F{bS&03 z3Y6CfA+^Kg?s5T%$EezaR@nx87jkbP z`c-}zePP<47NBQw5A5MvGu*9kzZq-YpUJqA4AK>X#jn!*hWCqlE*ZsEojc{#VsjxQ z+RnZK>i$SI?T;0+2N}!lm&v;oU#e+$)cvAVEf4lX8XzZQtzP@<&vnHHd_$sQ6%pF+ zUh-D-1?OdXw%Jb$6yXz$4cpu_x8k%f5qWr&5@AnaK__cKFg{xLP2&mu#|cNJpQ)6vq*&saN5{ z8`GxN4w>qUygS`}!NF5xlg9h1!@2Bv5J?VN{_r3A*9jR(SDvg zC_S!F^=%GR{mxs4!=0w@M0u@EeEsr_wGMY-<`QPhXp1488#^e+7^u#talIN`NIfkO*NV>aprN{>wA3vxAoC-o?Ki-&~* z@wdTD;7K)k6dqMz>XqHk8G2N&0wImY4oZ(o+ts5K&j3fA*_fI^`GgreyqT$&9Ne?q zw6GO_8YQIBc*fkB1d)fUrBfBIS8Gij%v;DaQYrELkm;G6;c@&@qfH5x*HVkeez}9v zgQ{-j`qmw7LW9`xts^LB*Scp}Fpt5$u~lk|cOkbvD9kUZMon+1m@O0zqC+)#v_G`V zC7;k{GvF;jZkDqz>ZmWV{n&S16N#Vm2+C{N@2d?T6IeWa>r6aWJj~>ayOge)>s+tC zsOOf#YfLs51hJUN$h%#KavVX~LQ}6ZbR}O}HY18Tfe?HZTh6|ik#^_o8z5i3kPqr6 z@oTwP;*dOPq_D?AT-CFL`4GdGd=T%?3yS#wnTJ?xE>P9t=8G~q6F)!9A?=B|gHz*a ze>M3+E)TC%vd0F>7;~4&&~=No*j!3hi!d9}7x_m{se^Ke3|~QBrL#cQo{YU3N3tTw zt}jZrf61>x!D6<}WGq-s-Y@EA+Fw&0j%tW+d6+geBxEl=LGA4j#ig&U$rtnfM8>dK z)gzP3&TePou2ElB_nS|kb=4*$+?3a#XJz{CE$%j>45}~6=0!?8>&0RC6kwS z??(0o-Jftcm9{%AzF5^Gle^opV79n5VFJsxF#YFoe_gCIvE@fBJ#MwEvDjQt9+*9; zxB}FJV2kh)aq{}8Ci>=1Cg@dkcvID+oMDUNQA@VSsAgHnFK)g-6MtX$Z`$rf$!!~k z!tk@w6fB{JKotbN**tw~fRsf^_U`sF(>?!3N=cix$u!L*!Qyx>+k_!_Z^#bnBG@$o zeY0X6aCp_ArIFB8Lwz7C#@opu6>*>iHj4um2Ya$wZ@wU{^@pmvYxc#LPEVmI*CLpbiblRqv9hqU>P5(m-(XHj8fjtm5Te%TIO2mTH=IUg~dUj9mFQYTi+qY20@p4?tvX20S%YLVMvWYuEO!PVqnm! zyzdT!?~ zk&~5tF;^t@YGT72T16+|JfZj**vet7rCsHo{B=KSU%Xorc}h)w+r<}HD`Z#gyIJwY zFz!(UvPVtg9g=!+8ynp&h<6I3!}fk$kp11`Bi9A7)=Sv#46J+EPTNHg$6Nun$jN&1 z1wF6rpJkgIhE&0W1SejA0#~Qn;!W{pP~Sk9xbh?5UfTun;o{J0AKr|VyAFlUrkmFf)3i`V@Tqa z#D>Rw0<*RL_YOQhf=%8o5aj+sr{^&uVR&E&vJKc`c?9XP1Q&VVnyhHRU?JZitzm2e z?VjcENc}bmID>f8TI90QQRGKe-%wP zw$*?qAY7?O`r@?}&++)kK`w?614;PD@7_Pu}{K>_*vFb5pY4;8gQkl4A@gpr%@C>%M&=EOU3JPpta z0>S4YN%MN^8G!I00&$IfAYADD0UaQ_H?npY475W|?9dvF)I@~+Gr>J9$#(ID8ft}{ z8+Vn&dm)H}0`ftSbCWt|U`ML;RgfMMq8@fHazz(R9+HK%k16ivG`zIQZou2D8v5SU2AQe+e!+|ZBr-KM@ z{YwJu!Yn-q8Lz-V4 z-U-8>wCib7)HQs%6>`B-tr3M*5-B3~Kz$iO^W$t%i2B47S&+WuDQ>V39cOi_|m+ zUI{BdgA7Mg4d&@7!tNnkY}CI7V+<-7kFtWVB(FXK^w=@TCaAxGA0Uhv9+-oq?7Dzh zXAlhb7KaO2qZTm?uoj3ycL%l{EPq~tILaf-1hTEfP?IwTcKgz4K)Z86t)L)HwR3C4 z+;|0PoXg4_1uriTi>{{y;)}yZf#dnLVmsYe0NX2BK_Uh|vq8fEM?KdA zh-0(j3pE@o)QcA&*UgfbH_3f48dO1gl%WPwLvduwy}tMHV)3~UxDO#@UEM#+eWeeq z$l5<4tmtyz=IW~!)MA~1V}q_h6UV7*nt>fl&?T%C=K?x8)FO~I3A)GD&pGf)sKnU! zRzvtyh2;*iFJx^b>>hqR7UOLjVC{On)+8AY@@Qhi9JIBF>(U3LL8q!NVBxXLtq(|d z{<8#D&Re}3XH36kbuvDG~K@RG&Bl2raV7wQ9In8IwO6t0F3xNI9I5bMo1 z47Dm45A>xj4A}4qIqxnPREKXaVo0Hei<-1pKE1LB#`=B0=U?59E*Fi-A`rnI~NKZ_7U|=EP^#rkuY6OnhP$OzH-Z3i@U_zl45O+$hP>NbgG_9)Nr% z$of3Im!2`Z{CoIk{tbZl19bTXRL4@u_^E*5HMzBvlp4L6hKm+JmD$g_UZRFmzR4$k|YQ)yg(8-1|bH ze*)Aa2y#B$-v0>}Jp!wQ-vD&_#%sF6P~??nM8rCAR7tBspUR?f|jY7cE!6bztHk zhx-8}M0_6hdfitKa()BQ={v6_apKS#SWo!f0xO>RMfp{MAm?`YqB8%-$nk6Z@)AaU zqXHZoe>sxOdlVkNBT1}#m73fN17Y*7+I94WKrc}vwOJkLk)VaXOK1gc8oz;@s|v6- zTG93oh+5?5OvrDbgzhrda@04H|Eg()nAjJhzCbE8?-A0=K@p2|*$@-La20CNx0HZDs{-r( zYHTRqfq#8#r+)(pQGcode`dj_Kwli*D(f57fWo{~e7 z40OiYY`q7991jG>pFoemNXN@kC9U~82){8guE(E1kAQq~iDzuU+Rt6_{ESh*2FI7U zdsD1MZ=w7G_Ck8jZMz_NyhICa7i4>);~TT>vRTnb%uCRKYy#T}v;-4wHN3|{ii0)vxDXVFpNH)NVQ^ufm+&Os^&YBxizM6$ zY>{hpT7iMxi2|2KG~9gsFekCHFA#>Ocx9=QSIwHZTKoEM24jOCkebXgLRrZ!ee+0Y` zzInWVn8WDZE+~RHF$Q)Ks6k=0e%626^PDU>#G65VgA5LkIq~Qw1Znd6mbvRku%~JR zn?<6;rX0wdYCjSUCJp0x6I;t;OPp!~Yt`!vw&S!74K-Yw)uA8;jz}vg$*CO~-hq;w z`kW5!0~|Q6K0sE4sH@`?c-)*I-qzCGztF8xROun98ki?NAt|13|qm~B9w#ynZ+d6fy54!>+-nlByjF`qVB1?i#R zHo!Gutau&&=PcoJ*m&#Xze`Cw$R0JcYfYX58wWbcRr_EoNE2cIN}hqcw@2IA*Hd@t zV#^m0LFcW@4B}usuUZz^Mm#oo>XM7~?i;i(^x<7=bn4CoX!xK$APu<3HotwrV{bsX zon@{8ap=2X;;JMSWrqtA)wc%V*q{!)P=)TBWUu5Y)D;HLt;=$fM3zM@IRZD~-H|~n za99xzS6=ON4fGTN*8@S$l@<-`1p8U)$t!*_TS-z&M=-T)RC z_W^0pJ-R%$#0g@^8SF5i1*m2%$f~T3yO$LmYMFg6RO?x4$hs^bh8%|Em`(#(y9@1u zR*lnHKcBOxC2OD+guJ~h7n=)+8ZZ`0E?pnTTcTkF;r=dJ3sHGs80ai$8G*i2Sm%0u zF8*085^{ckXuFtr1z~?Tqc^EqmvAA6pc)kKr@e#tr=4vsAgvU5a7!u=uni-RgzGuk z`-{y5f;du;;ia%kqF}XIfNEvEG)agdIoRW?+gx7k;ES6BY?mNsmw0Ti@Ub~zs>!vb zH5=&FqD8_uRd8(39pE)EQbVCKSJ&ied$!5P#qOXqey6B zMUbXe$l6G_dno-yKFLi=0)B|VmN0OvdYw5ahNt+!*(Qu#ax4|MuCUp8yJ%tGaG^ca zyV(@Uiy5lelYuB0m&4j*Ag_N4pLkr5zMCDe=2}5r(DPZJg6-%F^1ieULT#R`H{W)& z$u|%~xzwOPStidyn~2Tj6V)&TZp96Y3AQ`%_S7A6zzX%+VzJzOfxoEKW_3^vdVO=6 z4YXPI1wTo^kxjZ?5brg~;POqIck}dOHOR1nu)9;6IDrGUOOW&PTrRfbq#!%7_GzE6 zEE96Wqjz8x7Y`(ZQCHsfabur~GU0Y2vQA`osS!g12|!SCO62s}Q*;0x>}gshF$ z>x(5{kX^Gnj;j{-1;NcxwhOIU9fZf1bn3e1Qrjobfmed@5+ZrUle_4jULsI%%Da@=AP`#f z9;aDQ9~v;e4A>051UYZc^JW)c;9aFQtAo(%druz*vGvdV8sfJzdkSd}2rpa274^Iv zcOCv=^LeEYu;P(o#lX=Kv1_;Vb+`}e3sCwvZIbzICE#h5yoICgkoRAZ5g5cEVR&EI zWJ>Y~UU8d|w^^oiDJI2D{s^`ZwQu2VDO?0}a?T(Qd>x3|S3%H(7Z67b5f3^I_8ljE zgKHsr`67kM!G9KqU~8FO_dXyMFP@@_f+ekgs%1*nGISZcWXs(bAy#FTf30#7wh3sd8>p`@NO#J* zInF_D2F7jDjO@^}6pk-oQ#fLe&8EjJL3CfpjfWO7L7coi{IA8RT`9@irlpWW)a#p1 zgBk=^JGw}?f3FZ*gCdWF&tsBy$oUoUep;QjDS8?_If_k)$c77AB4{vxEe@XSxqmll zJm&F{ga2|K<``IC0eJWca)a(5c=-le7d^^qU%#IUMu_4S{i63*g@N$Pck=mXg9Av= zGW%iV?^V7Z$a;34wd-xOiMCmM1IpLXIK39gc`?@3XL*9d>(*%l&HOYLY%xvwfwda^{Xc7Z@5-4N!5(}Un=XjI!R)Kgs888GqBUP z#6XzX=?lTJ-P!inWA8SB)e4jrhqULA)rzqT)nJ~gy7=bTSwCUI!Ao~9=LyBBePF0K zOObC@TM12q^>5*a%>_izG)P(u6xKRy?4@4{(uxfy#m7guP)+hCKMycl$rqwJ(pX-> zb_Vq(9(u5Euq+^tUTpj?A=-eiSSH(>FR(Y&qD6y#ub6m65Ip*m{jY7X8K?#_{4xS1 zb!0EwCR@Myi?wsnZX3q|=(kcNEMZN78W6Obe*KmJX^WDaW*=wjdoMu6N%Lx(j9aMC z=!7ILY?s1=M!1?%d@z{DO%VajX?6ac@-EC5!=`+J6=3x8Q=^n{+(qn_ zcsw)epZqQN%%Yxm6eCvETXs|Y-r?a$+-$?`23{;@hEEY=dRh^#EvUp}Z5ufLJ`<9B z-@G0TvK&_IXtvC9G;2&iez9Wr%EAGtXLmk@EbS`qDB!6$93zhgrvD-q$Ma7LxA;vU z{V=1$^_xoF`BS8r3V)mH4dps_mn4>}UV%dIE#;Qvfu(m&@gn6M{ej4zuRtmn&EfA+ zNP2PpA4(u&8y=qwd{w6>I~_3ulpiPTDq?Rr2Chh_EII!zf1^EcRmM%h=(nTIXeG2NX~^H1Kca}_f`1Z ziRKn8$7sqwHOjd%_uFynUZ6pQ?<9)FGE z!WiOiw__k3gZwFG>?JMo$AEP^2e6aEpT$lcqbl*BGJ0E(G~~_IA*mtDVDuO* z=)V;n#&oVUTCixW5XG)BxHviN8O);cMwe{_<*dZtAcD@G><&1X_5|*B*y{-*+DQ+S z!YkK3b8x7|#tEXu9bmKCQWh&?mUfbrzbn~06%-Zvs9xc>IhCxDWI>G#(w!IN+8Iui zN`sqCBxVkSVNV`pltrzyU76ygfP2U>n$Rqlx|MjmAVSXj&1_tn1Y0ymr^;Zq%T=Y6I@JeSH@j;{mFtQ6Fz?#TaHw;DcqcFe1&I(z;*8L1a>X zt&UoN2Dor3{n)uWSw{gMW0aT~A-^(Wt8NRbTXDuP%H=NoVjS**^?cx_STY--#7v63FpL}momc+xjA<|d5TYH$g26Y#KT z+z%L3t8t3v71&}&x;HrvrviFK#Bs+ue<`9hLCzZ49(9u|O1(`Ar2$jv&KeP^+ACZ% z$zH*&>IHH>1nzaeW|$#S4Nyd57iMXd%t}@&|s#*o%SR7P(EF)ylUbQ~;z zo3mJ)i7Let?QU$hIwbY9XT;qU%BtS>#41vFXAVv^8zIpl7L12L)gAe+L6Ak`jf~`4 zt%)tfO|jOtRdSuwU-bsB;9m7Tp#E@vshokEBJSt-ra|;_Qs{;ch{ljs3k2?wrIl$v(4Kao zMa08y$2VkY0(!;sbruoc+2Wt#?&s9gddpWp;N~nAai40VLX1-?OqPBDw^;&rlf~0< zI22Zj0?5RBy-*atDj$C^O%<<5WW*|lXH|(2Wgp(L$}50`H6mnm*-lbS)r;FUbviOS zWRE#(QGESj0IHl7j#Y2igIfED zUiP{f(I0#vnhMX0rc|zqLgDB<71k#y{yVmJf^Mj{Xs}8D50j(qCo}HKAyy;}oKc-v z1{Y)AN$kCRc0n19DDMdvom!Noa(*K(pqJUddv8U8RBLsWNgt}5vW^q ze^bQd?=?{2g36<)XXT2dro`%BX#VY*Ca`;qZvd$*@ailz3>ns4r9+_ zph{moizTa~``w+$3f93XpgD$aAgi257YY_nh-0wx|D|(btAybkz*rk7sCYhWY4?RQ ze^x}-tfCWhc8p`K&PWBKmTn0}o#f5UMHO%pEQDF`+JxA>@fEAbmry}2n~$jf&stg%A8b}Bpu_401rMn6;# zT_{?MyB$pOIqZ>W=QTsl$E^z4$1!4R%AX9f99AW0B>m@JuM=cB9q_2FS0VWig5CVn zdcSt;Z%4FD&M#VJo%Rk2x4QWdbTEq=9RJ0SRDPH?_wGPZMaWqrJwHoP_T-=HYsEyh zz$sVUi)WBy;Ak>GD{qcO4KT$+q}$CxM4e(Vv;SlW5kH<~(PT${c^B?7f8WpqA+0rM zH~&~Es)53#F*eiR#iEXm!YhE0$R^CoD^^GEhIc>HYbr80l@-X6-K|@W@%UsQtCaIO zAj^l-;yBb;9QkUTSJy2={3{`S@Sv}8Ixp`?Ar288hvxZj23a)qxAt^Ox|_3%egIv^ z3VBhZ;NFy`IJn?WX>vThqG*wl*9(<-Q9mm;C!9zNfqjjC3i6fN&EJUb=1sZ_YoTAR z9cHy6O@rc~B<4b)M)nJY5-k(?4*_m%W;4$83ixfgPElilC>97YSTT|Y&ZFeDW+MI9mW>qkFj;PFoKhF;H!RckzZcRQRJ6aImK4L%_WNks-9?bS%LS~ zN22~UD6Jm?_e`ZbTX3Q=5~_B5E&x#@t&`ebkEwkDbaN$w46#5)N2e;)=nHp)qn=0G zwZW}a)|P!avs=fAux0Ee7HKYHZc4@8Fx92~_ z#s5--s|GNmMHWU!+DOR@_WWhBx%n8Te&xf(7RmoGxZWmkpDgN_p6cW{STLzKM*3aL zyVaCMy*QpfL{z5L^iZ)qgOK`*1XEFY`Kz7_#u~Sn3S(YcKQC?H<*zwAV^l>)ULzSv z#p&5iJ!Gl1IGRUiK@D)+9cm!iecJC+ID*>_egIibqE6{P7%NwoMGZ7N)DFNKV7_=#V;BFG#ck+j0NI4hJDoj`H{Vg#k~Dh3p@uW zmeD3gNyvx9Sh<16(X2uj%|@8xD}ZfjOrb{0&%l3+D5F3Ytrh9N^A^8#-hlrS-hGK0j1am(mg7p_ zlKZRUf2#=e`|4nmpE^R$+Mm2QntvYfPZ7l|WL>vvN>7lpq#H%oK*-i(Rg74fuPkxn%l z$;&wkTiU}bzi-|yo#Hnl6U(<|*W~5zkvJeZ#)#v>M*Gun%ZHnPQm}q9WVt#jK%$Ok z)feN-DRO1K!Q|p-PS1Uy4iR#0A!ZDFYiFDnu@df2N)`MkZ-0KcdYjOZI_}8m)kR0I zfIWFX2o6R^Vi5-sFrMxSMb(IjUf~!|%VLrEU@5DWvP8ilLWnBZQx^4nI!WtJ^BYNa z!uW}W)nt@Wz&-NeB;v&r@Sf0}#R46*IA0tuc29`A>kYE!GU`_1yCSxZkn?a|;_5q8 zMulH6k=5Jw$enR%jz;IPMOy$h%VL3UimiGW({r>DRf$#E2un)glxG5)@rJv#Jt}`J z0lxC8fE_WS<9A_x_f^K`^6Xd*GlhP93EiU6J zQqR!m7B{G#o53=j_{HSGC>I0o)7TK5DVy`+*)SJC1ul9G+-sg?z}N0wGi zNVAI<*d=~5&lfRE4M&N75s-g&QK7dDIUfvb)e9cqQ8nW~qPKpUwZB%5j zo%g6(j74>idnKh{q85TRLWoTedhjW-pug`ghc5IWJ=6XOOBE<$_$=zeyzCe3uY^@M z*bzx302d*PW*5S%OkcNTFUG7`qzSl3mR_>7+AAp)h5x31VdWhvqhbOU4ZmCnPDB^Y zGq*)i#XUjx6K=z#T9pb}MqxE6T)YzbZq)EgQv_QCBXF}U7AJx+LeBen-4EP^`(+lh zm}evK_a21abVstt%eQ{Lkfc=TL*;61TO}*poYY{P*!fpcIHhrm{VHR|cKl3yKbG=t zL{hItw*pB^GDkG;n58LJ=f&vOsm;LME6}(y;tluXnrOD#5(O5J7B#{fV{{8TQJ{ zH@fd7#)#%UyMTJ|PXe;M8qddvvqEy|2d3s?PK7m|JN_~Psqsy4M)JGK-&MgltH9{L z5noA~#(4!3=0)SEh%Hti>6vJ5xg}f50<2LUs;BZ7PSK+1ss46DaIO|z_Uoi)QG@(qp06aMP`z!AycSE7YcWWf+&A*~z2*~BXquf23%(FL6OivANS9e! zW^rwcp}Eh$A!_BU5>SH4lRwCmsdnQ?37}hTx^jXhn{!{w7TphK57MqjB zDhq7AQi_M%Hl-ynT3}vYYgV}VLX!(-aQrDSbO)eaMjX#mHX(B*=kNlQwx2NkoDqT1@2slvlY(tDejb>?}`v+ zo7R-Yirm^FB{~+Dcf9Ht*j0H-2ml3io)llFve_j5A&YDI7Z*ge`b7i1NFLg8b!_0EnutriLrl> zu0|KHZ3OO)xZg*}c|VuvGzk6CPPkvp#{Mpm-Mt&=RkB#d^t4Fn-lLywK+>uoKEd&+ z(mO~?&Rm*&T3gv~F|B#mPwW@t?P&ZMG_h+bC0Nn>UKw&ema$N`>+v(cK1u{tWmW0= zZvl?6R?Z;mM&P~eL(~kU6^+2nSu7%&l@yws9HR;N7||?E4(U`XHu?pmE#^dr$Ud=^ z08p!Cu&}FsMkBC!N8S8-qkUzbop&Z_!bFFfF`8E(ITkzez1j}_VvbF~Ed<9{jc}zc z#h^t--{i2xs0H(n3SE!x?AP|$qk+DwZvEEs^<7{X9OGUz@1=jf z(8~9{WHAY_#c$Ok#l4fl-mu8DUe=ImHBBYO3!Bx!PSoDuj`eUUc=e>Fr9 zD^orQ)v{dZ={Q)>DE%Jvu*$$1zoAL@#S7k0Yj#nM(gZxr_O={Xn5b2Mm+NPFF$p_c z^yl-{QKqTVFO?z0CjFG~U4vdZqwExK7=Pr&t?Fp(6Y#-VER3j9^9kqy#-$Rus3cob}`QfH1s(=HM zR@{*hEU+>hkQda`+YPvSR=|$?4OJot4vr?;6WBcC<9wJMhF5(IQ4h3xjS44=8jQ3X za3)8n8I6wQ6%k*_csMo!<1r3K*G)Y*^vb!_>dK9Wmm^X0_QB6?hrQyDfHk7afBw@7 zC&C1xfx$HwGfZ}%Top+88b}d<2mcpJ`7oCZS%%#M;i2`%Y#~kfNLHmOs|iG%oT>a$ zE5ry8&jI;;8qpHtlGe4ixeM&uFxIQ1T}HeQ(`x`a+y@`#EWPy4e8aG$6m|>fr)cJ8 zWkEenGrMg;&6wt+aSWbEA-P`F>(gZoTig@20O^OM)SuPDmHtnc?dZ`rx_SowtN6rdIHq7xt z5yYI#rZ@pxgcCs-A#Z4fZtX!9>1j58-E^V(NUSB5tHQJM_d~5Nnt`iHF&lxqCk7Y# z5K)UN6{&d00-P6Qoga=!FWNwvaVHLY#?NZRyzE9XE<4qmCB_%twf9ag(x(o zr^V`GBCL&*GQg!|+0XV4bsbwCoTUlq6#OAXnt-n(IZ;ipS6Z7e;$flYuG{BGK zOLlzjNv|Q*n+qpKr5G_U?{S)-ISxvy2r?RJ@9;)|wV9f8J_JU)^yXw4V*zJJv0ohV z-n`eE+7oPUa~g`As2X@jMHZDTJKb)Ta|Kd=l|`Q@IIUm=>W;YIuZb=4in1JYPO>;H zbh)`5#k5tEBBbbgpavKjqsFYHgjwUan^TLZVF*ThB!@NT#Udi`tFrVouZ}E?`h7!7 z#(978#9NQpgO2gK8cko|_)syZvJoa=#@7E7j4f>?m8_T`Mzl(yc&&hrG+<9w&3i&B zugI;$Y)qtH9fdKlGDqbGqqEViX55aBc;Bx?u^7?sCIPB0989aDU18RiJ+bNmOdmXo zx)WbjUU1uA`2<#xF}wzL-UyenucKN=$oc9bOyw2%P{E10xOfOu-HfJ2B(jiEz#2#w zT7f+tYjr#Zg(kNi!!H=az8R>ELBESP-T`zU)>(QLw$jgp=loaU#Mb($@0|8|(2`qZ z{I(KV%_bD{H`<_yahSJwX+_??QEpn&);FjYxRSkx4J&k%THU(wV|2&yKANNitAc{9 zqWWQkrhxO@GIm4GhgB1eBadSS3O(f&i7Zj@5GLc->f#+q`?nF!0+%m^5qp`X$){HW z_sD$}hpRn08Y7??jNTNQFk-LK#(NXyWmr%XaE~mlW=?*Wz<54b5>w0AkDGD?c(i_^ zUwWn#EH{(my8R3QcGh zm3^JMxG30)LzA0(kc=nj=&JI9TboAdTec@yK3r8$%#d^m9D1-*=X@#s*tM3OZa4R= zp66JFj-1*rj)PWkMy01?)6Foyq1qyZ=1jNXyO2IOBw_|C6qVp(i{Iy=CSR*PSbf>typ*W5&*MLPI-^y+$% zg)%7>Vgw$&?PoWr6kf&WZ`NGMqh5X z{S0wGp=WoKediTuxZ;`kZg~gx%XK2$uBLb?$oW+=9IXz+v5eV0TX+Vb){DEhO6yPJ z_57ZUr$W`dC-A|toG)4(wSX4NJMds~iy0?%dNcu}-Gf0YH${Y;El{-?fxb5ax9D@0 zR{f3!Rj|U*Tn>@*r6;8M5Q&@1JKX%rG5ntptzewo-NL&p(Gq9^o_jZQa~2DH*9z3r z6q}97--pw$)sYq$VKqnGcI#V&!diD_)PK#xGD$b%uvtGbLe5r+@DzuIQn49<&G-tF zalc{=j!tDt&+fU$XjJ8;DGsyjSXR{ova~?;6aDKK+)T>s%yK5sXd^~EU#crnOpd}B zei;Qa&MS}{6VBv8Mp@MQSEpz#yVL$Q6;{3>zIFHsN;F&jQyhz>F|UqV3BN8wRs2L*J~^kgCu(dT$i`p- zJ~&GYSuFOvHvt{Om>sqlCFU;YmsS&lyI*x-8lMJ2kAAQmj1gOP+nd3%yPq{>^!J{^ z!_&*2OB2v5FfXU;ilF*&CQx_8abrZ_7JbgrD&lZr99CbFwpvpnr)GFodnYPEZ%%ya zGP&w7?+HsfmJ-65w-R3waeva^2(Y-PI-V)^u6dI;=eZJZz=P+dDK$$s(7DuBI^b!_kbx zW-;~-&0{DlwUQTig|fAy%HoE65!=vMPo7_EStvsm2XSKrO9?V_X53e9Wk*Y7D!XnwjeqGMIqF&Z&Xz_WE~ za%QFMh?T3Ny)Phn<2?du1taja+l$|?n@^N$Zi+_7ekqnIeu;ZszzWzinrOGnMbv_& zy5961)@kJr6k}p^bdlXSgeVr^Zb_~5)9I;Sc)**#>&IJtwWoS>3O0r-8M6tiCdK3e zED3vmy&3}st2oGrrazZ+*0lfaNs}DvwO&!OUJw+sGAF9ODU`Efb}aZF^8zl6wE#s| zZlF((ifoj#;*^*)f)S{hn`N=Mxhz&Y!j2f+dI~%QaB~)mh-zbWO%y&watA-VBaRz1 zeIVr+hj-7J58J#L)z+Mg&o>JElrf zK$fF-8L?N3rZ1n?Y1~A}x#gM?wamreNH{_tS>ke$0RtrWDhx!8pZNV5@NS>*UrV`FjfBXR$GltW|kJ zQiF0s`I%F2td(~Zqnk%VKgRgUSga}yV2pc3ROPL(h5$*DmVK3Nft4i&6&;iVieGeK zBbs8fQjz!6zcb>ec?a0OOMBZ}t`5WSjGlOV7cln0tdzR%OD@fDolTNcN9$|0&g5=~#ztJy8hI2yg9bj~ISvE`Ly&)5Vx4~xn? zISS{{Yx}SQy_#{ncsWy4cO$B@M#SUSD+>b zWxv>Q1D;Ym6(&1Po-yMq{w#+$gY60#>?|Pn%e||W>;F>f_)Wximed7ry zSLq#>s(yp$DD+{eK!uM@eHB~V1+mxPFp#l@B%32i_FgKx~tx$V$YK>uD^Oc-lZ%-9>SY)4_pmE` zR+@pTH-$rz7JThEh@b__(Rh83bF-KQul*!7IKTWgLKBXr&2YJB9Yq)`zzh=ZX z{M3Te5kHh+}Wz3gCIY$0q>0Zj(Gx4!xP@!O9|4ffIJ1^)hp?jtlx%(m@%d5YM z!j`xKg|hYmTaX+hC;CaHsd;ODd@_b(m1}=5{HIvWG&*K8o8&F3H|IU%tc5|f>Q~4# z?aK+r6af;g5=?nRk2SrUO(f>6$$6AlT5v#WMeg0Bp)3E;VrFqjyA-?_a_)8{u`i{& zXe>s@D7zWMm9j~$^uRbqMEWninN#jAY*oTvoYiRoKEyg|b9^q4Uh$m_3sAO+W-hHV z2H@Uu3_<#)9zeKDAU__A+09$xUd;?%E)r)g2G^ax36SNu4BaIjszh&Ir*5`5=z5#0 z!y7P(**7J&Fxo#}X^Dhl8BHWd7e3Yo6pocW<7D}3FLX_-BdeqRrR3Vi+YR_9H8(+) zQ_<1-!Q6+RnZe8V)$cKT29RA3C;ebcugLF0>0Nr|6w4IbAV|I+^nVcjaum}8!z+qb zii6g6B?I|Is~9H~3;zSjwa<+6e`hvjVf<7uHUCpoS#Z^OpbY*6o-I=I28=+y4H0`W zVdhbo&PC0KOBrMtHd)jd zARdBHK8A_cYya9Sy7g~#kT5lSVu-i=&{0mC<1^Q?sp=s}ohq zYEl5J?f{!c@_*N3FGT?g$!fKGOuj_*?FN*!`tSSupR?$ng8a$&X^~OJ;^abgcGQH! zC^*5Y4!48W>D7;SIet!Lvo_)(0o_ zVf5DTBFiTi)=D1D@k(p)i`E8SJ_YhmjiMzkelYn{$SWMZGGa?Hg9|NSv%vX>j?Lud zo09UQ;^P0ON_^c6IiIgzfxhoD*+-nUzUI(|+YR_!=<&OZj$6pjyaBh^5=&2poUQp% z3|>V9ZSr4b z&bv(9hs7bio96$vQ{mh?pqG}Ae^xi(UZ)MNr%3(mU*M%@LTVY4FOs-VCA3k*XdpTq)uyikWeA-V3~p#(C)x4?*%%Cw>?HEl*2s5_A5c zr9C0e=@{hADVp;j`MFS?{2*+;4~m7vF}C3`xI_Z3^>iG%Blg-k5xOR-E`P8sID_rC ztgwgoBD)d&*8evKMnztlR!6;{*E6;4U6IpToyfQ*n%^^nPvkN7egIp}CA$A0Eh5fn zwL<8X9u}M97Mz@4tTSe5m0~%kFv8=MkK{E_E>yPaKR>c_UNu4Nj;@w1y1ZjdQmft; z#p)oU?l2@CToE0GZ~cb-KTMR6a&x3w zK&t;KKp^6*D_JooQXe1y8W~V!R~7Pu0&olTJ`vIJiW|uZV3&p&BaY7ZyjPkD#-O z&df;z8w2ou1a6kaVo$kL#1;%Wk4J?q9vExfVNX7;Vnjg;lNc9pp%#HLS8;GuU2hq- zW$;p5wNw-+tZobr$% zxp!*mAE0Ue)8MGm-!oQ&UsQ2NGC~%Mh`aS>4C&cs;DfVR?3vxY24=fzonjR!oONg> z7@h66liFg$yu4y{^ls4J6jEt_jhGfF$>^dP4pwHsYVnIoViN=|>qS>RE3o2gNwE(& z!H#Ka`j^iBz9;a0iZB&M>%6$qsD9E`L0{1#yjOIOgkP?)$F{Jen5zWRd3?SO9RODNVcdOM=3us|~ zitK4yzALj|)Dm~f(Xl#zBGPPkBMQF&jR7Z$5$HAj>(4FLo8DXA(!zC$bw|$M_u4j7 z?u&;Jni!8^!o1V~7cK%ey@_1Q8>r?*j$TpI1$eI ziTa7L(CG;8@Y*~6Q-FKeX+=;3;K5)d74BA1xm$lt$iXV&-6AizjRkigH5;Ys z21SLUu&{+wkX?4ws-H|Tg?nW#mOd3>a^R`?i#{~&t(1Ic*g~riqd46D|@U?D8+*^dnErP z@3(MpLec$*DQhbk_8L80(=+Wu=!K=U$}$~mLH2N#0IL=5IK%8tNFJKmquP-N`fD23 zO*GvjQO^?pb!D-*ILV|ae2AF6Rs*ri*niLK>O?gg$`fxJe^sE(VwjvbOhz=$&qQf1 zrH5Kv-cT}|m8!WeJ8f49bR~=U#Nq^n-Kft@^q4fnz3`dhYPZK7X>qYhv0K~}%yrt- z38&P8>#{!}(;S=ZzWoBFN73=b{=PG=wB6022~*Z_6Gu-?f~E8%3vq%A)4?2iDD~fx zkjYShd5bHAXvRHx+D*jJOf5=0I+0aQ+HJSq9EfwDJk z*xFR|v0ISu!zak7YNkZyJwHJ*Z@Ik{({|Z|;&#F0MDC7|TFSviJ$5`h6P98%*Ox-s z&(U~s`uAw9P3)Xd_Tw-ORMYy7Y7!@p!YNV9mr}E#>>2linlz%^gRQQ6A|EX7J!w;j zDDO-bnN3>dD^CV6qNK{R=F}! zM&PI1Q{6k>CTAL^q9|4dJNiw*|3A!s2HGw-QF6PeWVVn8PbZMc0@EP*fwY_M!7s`} zKo0Q%n*wrZZYl>WjS;~_*>u?xWjATIX}SXqr;S!;Cl6LzuCE)<=scyIC(neXv~npe7P==&v&Q4$YyhEZF(aF!jzWGP(xV(+DA73c!A&JE zR!o}=&Wi!}wD)4qnDg}9d&+(&>b_Aq-kBhn=)uJRJef~U43}ewJG+dyXUw&DT`2MH zg!H}GxE{%dkkcbdB(VXVkPcpu^(mb^$T&Me-1vlM|)6 zs7Kl#le2)C=O&c>EKbz88_S+#(kEVJ)75}`PDMRZ6CLbw$}2gGx;5^$)c*p!J%HjW z`q(Afi|+>?keaCIxKJ7+C)oUn$;I=|+soF|38g#HR>2S`WD9h%(lD!n1p(iqdQ7f! z6S)($<9>g3`S#)@lpaM}CGtpEikB~BPYlgUU{zD1+RKABPKFuOOhL^4o~^T?5zH5K z-awYEQgTAmi5}bK1atO4=~j!?NhNN<;0!cc_X@EIGh3l?esDzznOhddK`NK>vJPCHcGv)!r@1$e99Rp<*}w~Gu;)9>vfgR|+n z(Lv5lAKMimGl5l=xt6UaU!Z~eor@vQo7lG5C=@mo`<7+-^9!~Mc;jh9Fu)0_#{`Rq zylh=ZJ4`9#gE4!B_Cvta0 zm|k|yFFO$yeGI+aj~kr@<$9>}#N~b|N;^>5^bZz= z9@yiZX^bp8T@2_Tw3sE2ZS_w{$3Yik5VvNg^1jvXsc?TK-~g!7U+E$ z1D&k<$p`y)rB*YhTa`~tK7A#I7I_evV$RbT1gAu@hV< z-HFBx@vMTaOSH&XuX3zGhC=xfLWiCIyLM~E)V&f0@AOKU-2$seg>FBoklbeoTE%;m zkv6Udqd^RCa+MH?vv-}$r?gjq$&D#hulSX)^w7fz;%D-`QG{{h1TkJB5MmF3xX!@h8}IR=bY2z#jm8aSp1U(ye@m9H0#l8f-vr!3-E4C zd*+*YfdrFRE~r*){8h2LlvdPT-h?;_=C`qzcfNHeET#9m+e?U$ypUSNCP-gIL3nhe zwGCv}J#lIN-4+qt1gQmg&yQ7ZQQZj_=ruh2hjdSQ8CJD_o?M-n{>rp*yGp2u*eb$e zzU+xIddJL7Li_nwZ9-|WS8+m+LpaH#&LD2=_V>cL!lFGBmU3_EwGxKj-Tp!KCJzeD z=kp;pYKWsy4~zcF759`TI+)$Yh<{*3X#x*!LbK44nVvH9U_}`n@#c}k#Y3=^Lsi+S zPR>MZG5aCs*ANjoha`9QUenmck_mb64Dlw z5>~NdCz%S`*xs-N9AZxNWuLQ576h(S#%h(EbWUx~x50U$m)1Q|Bpe4&1Y1g^<@Ta8LM>!Na zQ>q?WMt^`zRuSh!{FKC(L*%KOiXK*Vj{21TlL>lbf@m#!<~1j>R3{2kh~8OeV=8mu1Vz0LBT6dZZ?du=FhWdw<9@N3{|$|3+`!V~luI;5y7+~p@pKH$gC`E2VBD_9j1djmeU=jLB zMd0vMgy$D^Jyzy`bnl|CN@^IU=N1IkdwNYcYC+&#<|;nrrh3vxp~k}+xh@{^QWUaG zy_<*8e_Hr4XSllQ8|NzuKc&Fgqtav%VI7SienS1nNZOPTrfZ@!2BR$?8|lY9Y90@hs1bu-*f?C4xpzC-I!9W#)T;(93SobRE6si$^u76PhkZ zBR_34_8g7NdJI`SoRQdXZBN0x6KeL#xg86_)T@+N)ssr3wRJ7}cjY8gb(Uu-?iht8 z3!0zx`v9%-usy5d?S(V&8|sm#v@u+q&_|SRdb8N`3hHt5n9!L9F}UTW*zGLZO+6Bg zD++b-IQt?SYubbxW^Xc}y4fgTD%ynHqRJKtN-iAM8?O zcQ$>nKmE-MI$66xDA8`{IeH@-AjGSg~WOSavPEMnw==4 zor38QMa^WqIFUvhms~Yk*|$>VkzU##WZk`?hJrLRR`G#e)y!GQTTza2cdm~rFS2G& zg;2HC++B~sxrcfLNQ)OXl~P-My3Z&A>OJQLg}h@^8s~pzG)H=%;bwSp5l_w`9 z8b%X4PY8<_mFSUZj_T45v6B+= z&5S$#s;08%EcwQk>P)m*(HNa5-HFDHkurBDEM?qX_ew}+gCt-y zo8crt z7AU4W=#G!F@e}M*R@zlVG+s7NhEo-KOcS}%ZaSZx#G}(oq3q__Fr(au1ghEMgd%h( z+*3`2GFq`(Bqz-hnuo5G@|@{d;o9Wt`cCv zpIH}kbV|<4p(u=k)PjJY>gn+>PSnxal!$lsFF`FxvsH0o8mvwTk@9oO zbdQ3bC|{dhWV-olQ8*o}qp}&_v8b8&E78lbniOSp=D`)xD}R1I>-y)q-TvTXyEr1s z7D6zY7n(93O4Fu->1JB;iMgo;mt>#F{ zg4iUWuf1o!btl@YWMhG9R$Hne0(TQ8OFFwUzxMToluT9rS~w-@nTDf{b&lFiiFzJF zDQv!ih#8&9r6!sOZM+%m*yaz7C>A%6$s>Dwg3xv&ZWo-53uj_0UV5!Lk-~G!p4eS< zzfQE9)QP1?KfY2@zz1Y9>#Tio8_>>94A&ly;dop;V zVcHXAKb>pZk7*Q^@~A|;Z&@zhea9}R@5K1I@eCVhP}2hmgMJbAJo4Q+&4aVjOG`G@ zjWoxmQ0!nKv&8&4o7SRdd3nZoNjl4c5w=#eg)KsT8ot zI~uNg61j8jE{C8^rBstT)1WMmGe<<}PQa7(1Dc*y6~!%Ji>m>|gk2i#ZvZw?+UaIE zWnmAYIjUvI%U~2&QS&)hp86Yko58nugTNN2 zQ`!`OvsmCW#Z}a;WRA|9z(e=CI2o45h~dF`2AQ5C(J`Y_n*yv))pUl`YR)%qNjyV( z(TQ3tAg!9(7YK@E_a-!Y*Nw|5jY4Tbn>plV&3Uy(XB!leTao*U(PDNcU$aa7tZvMw z2UmmBGu>PNAbtEn|1EXr?Si=R^Z+H7F*$Jo?u9&@$S{@CLt8YHDNju_ctgOA(*aW& zME4WiK&&P)8j2GWmVG8_!vYsCXI|WPoN(hp`~!i~HSbmqm`%Yr)y0fP;%sK*8;V9B z$h3kWCCh?bJSwRLZOn!#nJzoBa{}^Enzj(b356`qIbAFkNX^_m(Xi3j1k0+KhoMB0 zwm?aAPi{4XwyMj?zsA0qZy=smNah>RXq*YS<%idH72IeX)M~_t96cQ<{gDf z{7Im`JKb=_)I>#}s!8b(%gHTna)!P9GvsE7D4Re0o1;I!w#Tn00(PJ3=4pO#0pn>; zly^>8%D6N7z=q(Y>`o>|Aq#_2-MlJ68bS2p6lE zv&Vw-VE-ebmWC4TL-es-i(!pTC(wA`%G}GGe^rYTkVjYfS4Mll zZ$hsBFWWN`8-7)jLP&=ohCn?>OAY$26o_BCmOlysx+wEg?L|`)vRc*Dyf#6fN72tL zquzKg1l}nsO3F-ID_jYBREvDtRFi$iP1^;D{M|iG1}th$)OYubvfY=3&L~#S+SP7E zO3nl}Zdbi-r|0d$HDak-oehvo$l;Brqmifl_Dth(C0NQ~SGqAh4iAQc+yDLqG07a7(@*r^)HB*V^4Rn1+ zg3TYxO2Dn^A1}ZUo@66hld}|)I$b;R19YnHHLFJnvlovh5R)WJ?#Ws!|*jhDf4l?UC{uEzyf3c0ovc@ods(W}$qn`@F?zM2H~MA+V^xmXiU9Um78~<)!>R?n(P2;!z;Y? z0|yI3mHr-?ft#r4enH8#k&t!p8GoB+;xApY`LZDaPuXHJBG?(jf~Cx%m% zIc~WM(q=JG*i^u{K@G@Lvvz|#ZIp&pLK!R+;ubdp*t=RWZH$;w_K>D|9B=!i)RW3q zlue3a$_wx@>{Gj*5^V}`;~Z^g8x9Yyb}A1POy?fgEs6n?Ngs5aXmSf&kAZNp3Q*KT zXz&E`+L_Jh;~B!&CLNu~E&0Y)bAF}!am=-h@edZYNN_t^=&)%sUB7nD7mr$0yvVfX zD(^z*(?VeWq1jDS^BmPHgLqVa=@N39dP&=1I#}H?vjJN0hS&`TSbuhIrDOeDRT>f+dZ+Ameq|Qj79sP$ew4A7AfDp zF7}*LbMEFIGPjcZ-4SYPg)rSq9@UpQwfZNM$A!4965InQoQOMYJGeCf5Wt*Sf+d)+`oY>CLvMRPxnn3gZIee%%cr25CV{e@FeGv7CD zp|Nk$9sB^wUU$$R{N66)jpr;=cZnohCt5dUCg6R1Y*$f~(GjJnJ^J=d(E8^WY}e_O zOdl!p7Qui|q%#fn?ZpZ6Xea9En5B3*1q$={;sfXV;=Ox|fw4i}3Gn`Yp> z&;5_lQBJ!pXh&X)-z!#`y(BNa*P*}BmZf?w`72mfJYcat_3F#{#A)R z^`(f9VZwKmrX}yUrN8)Dkj6kG6_~PBa>7Zd)qaiYrpcYfZCsovqn%`0;gmc`2N!xF zb)vY%x6TjFDbKHyj=h{*s}p5(OsHeAAwamaI9R|ufgD{uP`VS1o0`^Wh0Zj{I6sks zi3!ESzL;2Mfd#A#1zcoOC#0PDDKSK*&?jfa%)O)qarSZ&&xt%!zb7xWc**V+=ae_C z25`>E*(>eVD0{^Ob7le`vWZg4d@uDX?wm`s*dPWtC3nD7s^|1lR9fWUhnO=TLtu@b zDPcO6KZWQi$68TaL==WZ;G_NVSItCfX)S3tte6EW0`IT@Sf~roGjb7yXxY_F1hT^2mZ{zyX>co&s%ZP;%LK|`| zR#j;5jpogHO>ealn^u(WkY(7pJNi$pdL9DO^(TQE56jpD9EJtCYAO49>Qd<8&J3D8 zYmqfyEaLSIKg4ADZJD5L3ouQa;L&(#3l*i}wd=GHe5n22p6eX0Jl-}>-W zdu5}5gy>a6Bws3un?eSC&U2nyHI;Y_&AU75hMPfAc8-7=Gq-BN3Wb(exqzj>l6h*G zqsIavuNet^ERa0?JA-3=f>@kzFFaNEr-}1|43G4;k4}CUC73X+G5fIlv6emyWzQWi`MQH_@4KmR{h};P0-7on^K-%6+P#I=~3{sEP0K8lT`LYZb{{jrJ=lwV^-(AsO~7OJQvw51QIFho z&N6I@iuv;sHv2c2;We!$qd3D?LXG2s+#9XbG#j8MwZP1Sqpue-NuDJyq}3*a0;Mf3 z_+T=C4yt>Fh+=^|o}KMv7FzBB^SHbCzZkbpPMF_V4z6wrIb2%yN6JDiZljG^cUraw zuvk$Tlc$Ld5R&_x#UjK}_;O9a9<@Zu-V;c*z&(X_(>bSUH&W)o7bl9gMI!{W4=9hJ z7}dFE4`XI0qIeu!oh8v0s{x%dXvYh&c^&<$0;`7;Z4!8)0#2rE5seFpx$LMp?X89o zN1+@eA+>U2uHD7r49Ogw2}|)J6TvBYyyLm1)Y4zLSKAsIfx~V`O&4OT<73x9ND!QG zN-bnM1difvr97T!^q}eJM8lnzCe$(J`U8=fxCy04(N?1pyeK`>K(nEBi##Vd%s(Y2#MDEh8O(*S@F>!V6b zI@&%u!?KiT5wMycn4=zzvQ?h;oL(%mb7~^9KC?eyo#Q(%!1qMYD~kE{U=5d1C@-##no!Jhvu)9^ z>{xuSPAtWPf?IaS6qHb`7-aHrYSSqJU&a+qiF!(ly$t17Nv9*H)u26Rq&*^QK_dhiV7Rib${KCsfGYXUjOP7*Kyv1i;1cf2@J%xqkd zl{|%}xdnTu6Hckc+?)>P(4#~YA)i7`sihNndJ6qMH^S`R6NR$8$ZmcLcg#|rsxJ4aUX&>FQ#u#m9&+h5zI7!Ct*xsJ zrj2TVQ*zHP9hC=%XhIIn`p)$7AYuTamSU#Nqt^(2vVw06in1G$=@VI_mqIP=6S9VA zN~mr{X+fa{BefC_4o#>Y(dl=-PKBoHcvmg@6TnZ&aoD|u>`F=l5q5f5^fm%^gG z{AXkBk2wsw?4?c|CBvxcXp~`dMbj<0*hD*ipmZP4&;TJGjq+UGbf)8KL00d{wVZ0Q z3Lw;?>LGCYp;x^J9ahBQxpKWnX|+Pi=j?~?J57Ua3Vbxp|mK289&`j?)!V2mBJWVrgpZ1yfbJPdUuFZdUNJa zPI~J-P>v~i2BmZF-R^2#V18%RIIaRAhn7O87q#jS6FEGE{+EFo?@frWwo)f@c#7#KQG1nR$U@qaL94XkciR%Ul~C?g zv}dALM}JU>mRF$k9H{S4dmwk~zX;0p9>t1`AH6#XmZm;d^XZh#0hLB90C^StY#-7)8B*v-bp3CWF3(w$or9d4jD=B63hOL92`nK--@mhx1z{v^^< z<=-B&OGlxMbN?{(O%_{NQMdMTmq5T?`CBuM8zm2oO=!MCpceXfrUY{@{Bcq4O)a#A z>(hy&WE_j`=4?2@DSaQ^Y7W?h)A!L-${`Za@~TkdS2r9ZbE(NwpeS)`1lCvCtGYFd zM@>kzrTmpAnty8gJ~WG04L`M7oFO#xe`hS^uYxka?0aN+$}@f+6zFZFX8oxXmNM=V z%^tb(^e8O)7!rB^$rk0EtHq2=n&oACa8oXNEWuLVR-_Z@q5i?}E)xBw9_~EXWAOYY z7G#)OX++>hS5Imx?~EFctCEGhGwY-EYp+kn1^F?^@i@_OQ^l*Mc??EZn=*%c;AhLq z_Xs~MkII3p@_A5+1Z=rFVIGY<^(b#cj!x7|zo>}eMU@|x-UCay_q!neRlPE63wZ=( zJ}#TezcuMoRi3<7moyP-e$#@bJSOsV)|o9N&vgv{#_B1tDOCNU(#LbjN(|m>69#=% zb(f{Ld=dHEo0PO_OMx$nOo~Cjh%B$OL|Xf3@Ac!0&fR!e6uk%Vz5lzY?$|>h=u_2c zjJr^J6m69V<(@4}S0`{AaTJFh{ajA>pyR4ZqX$jj8CmI7e`5~ML0;&ha&-2{q51Mt zqsGIksKpIS@kplMw5d+Wp@)vaPJE$K2=2kp6}I^3D3F#WD%vVfG#n|4Eh7A(=7bCF zqn;9lZs1-=C+d|Gv@G%asG9>O(`Dl{p_m_-(q72HJkur=O3g~J)%k3EppiDs4^X0_ zTalr_hnrmmINZzbyWoQ zDXyaC*$Ia!3wiE|vYY5kudTo>e31yNMwc^+g>sBO z7wx5SJR*IH>mkTgjaU50GFFLiNGSo+vb7o*$t-woK`ji5vKz90iTV7*b)6&lZH zlXG53EGT^;*6u`BmpxH-Q=;?H^nGYI9b##s60LmZsVTdalny1pdJkexXL1Stw^8!a znnr6A$`_I7xXaC^5@~@`&TaU3m1I(9h;9^jmQN3#ujr-+(E#jn78-oQU`8G!O<1&5 zB8%iasNK&YzH`D-tc9A2da$de!9|;Zdr{`UFMGYm{r#0U)l=O}h7K?=sEFRQCK}SC`x@aQc`~FJXpSO@d zzuiPBuOg~sQ*B*V0u`}>R7dCIr_h#L1}PSbuQlcBt$-+M9Op7I!y zVKOFqp*3z=45#F(Vh*t`Q!nv=Vzik?JiD~=A!#``by;9u|Rkmd3ooAr3^cLa5X?M;f^$oO5}kunoS0E zR@vKu&lFctGb!y|0;KLlShNp=(HNa5?nJxodO{Ij7}XF!L-a~?K3m}%MwD(WYDs5$ zY4j=cm(D3mT`Udd1pJsZy;qe@b;@j>qi(($U^Y#e*#h@WF8)eotujX+jKuq)#J_X_ zR?D1d^UW|hGmj<{ifMO0-SM$xp6=790iUUHH)VODx@mhP+%5?5rBH{(yF3rEHNBT;MGT(E5lq*jb^?Y_8)J$pexcpcf1EfK$Uwb93$r5SRw{iWcvFJTD zj;E_aNIl)9bdzr)xM`(k$>CT!3I%Atx$K#+6tB!*+n9isL)2onN1tOs!t;1%dUsj*(08 zsHAT~=}aD3y0Mhwszh3QlSP$L&1KVMI0-^g%aFliLTPR%=nPpraQT@NT|JgnEh6w_ zL5snZin7Tk|?uwW@~qK2I?L^4l1UY<#&v?ppjF3(*uY8Yv*E%=2J2K_hj+ni;2 zX#xLGdlMf5OZ;)@j&*KAx3l~}Sai3T4M03PH4%8QOQv_W|6t^}Ojt_q%;TvlSRjXH zlos0EKUro1*MfWxeP0aSY4XZEy68(MknTiQf~dzRrGgI?b z-Q{)A%%ce9#eU#9OL$+-qM%mlkM|D-9h@nAXViFH5zmR*z}-`oaaF~mUXihctuOr( zFBxDhudP29W$u5Wr3Vn2%4@T}bHXy-L%_jf6rP)}Kl4nPA4NqUgTKz>O{4i&r4qe= z)oxO&eo}+F7hgZP0CD&96y2z?=V-b7m2sl4y_|k(xd(7KEG5u_Y)w3UV=CcTrM$K_ zHM11P5nk^?7oleB;ln1wY`+K_o`5^C!+%tdeR9;&`gh%zIOTUtR1$;jF zRk3^@gi8zg&ZzOQDx~l0XBGqAvxNGs5F|ve<&^#^P>(Mt*B_at9|-yL<-WRS{+WyZ z$T`)&iR(M#l;~-v(NlDE<>?p_##j+9ErR}4*k|z1UxGrjj!wvvSAIk}hTEx5r~-;r zUQJHa=&>hhZRMYdy%HU_S^k{`h<{q+n`Wv>zxMLIWQJbSJ^~7q4(1;jlZ*A>YNk-r zA^M5@R5?v<(a}}9*+L-bArRgNhj=W)t4E#%CQCyVJ{pVOQ{$_d90N?)juzKiR7 zWfJ%03nl%=^%4F%JMOQ0-$14xIgkFmfi`?Fq$zv(r`$PK5|i zX>^^$;$$@VoO$qufX3(qnLKdGtS!aerqb4l+)L)^SjG#g_ON>=!vq{WkayekUg(rT z&Z2IO=6Od7HN6QmZb06+UFWo;J~$g1sYHvYO_=MW%6R5aBfRfnqN%B^b8^X`YPO?g z0~;Vs*&;Ym%#(56Ga*d9^bpQl&UQyOs1s#B<@%Ub1MbO9?|0%V>Ne&!ts4#7RnW=% zL8IB}yURw!2d^-@(n|^LXWX-`WRSj4{=J%`QRoUjL!d%cDG$_^F$cO-*XNh zQnn`c;PJ>EjgoFZJ$Ob+EXUa`a3I(3FFD)04@++fg(jnZ-8dF8zY?2&a3|SB+uLE6 zQ<{VbfJkChb`ZWrCQes#S&ylAH!5osMgN zcl4YqAT6@iBCKH$s9JFB0cs&F^68y~{ke#RO+GFXCH5qAGlWtLO?_YF*Xa(v@;W?h zA{syj1&*h%waJNhe-F50^A)HEvtHgS_EG=6*?<1IzrPGNzMdeRe!x6ipl>SX>nhp= zb|Z+3P8yfv8Qxc%JYWqqCtF;B?F{=^+zK@b_qyGDG4LtqihU=W0gd`!EwpQ7-=MG4 z@je|+WCO>Qj@Pa>0~yExTWF2XtYPX*;*@K*ec2{V9gl#0L?F|jvoA>Jb2hNmB1a|A zPM$w4;WTSa2aOC=RTo2(`_SX!_`THOi#uvFAD19!D+(Mf)IZz5_8084zxAL0$YFmC zzC+O2f(|SDj*IV5)MKQi^YIBtPJFnKumY>+aUr^RYvOo)b1rOIC7952-)Iv-s#!g# z2jqBeM?zztn+^C*B}hD8h?CV-?7T_hJtmtlq6xOB8pJMU9Ck4JW;N-3*RXgb>9u8F zy@YT%Ug*5Dz-uY^hSiPE8h8xPte1i&_zETq9K-7ItGIb6^{wO!+KV0O;g;MzUMq<^ zPn^`_g1GpMs_zDRJQoduwf+Lo`FL^n4c!T(*EdxtDAL}m&5#^1z!rJ(+szlnr3%z@ zPHb_u0PV8PsG*8C{I1r-KeoPC3GynxjJ|=~Axy{XTN1Cj4;<%n;gQL=Ah&Su?d_;& zF19u*0co$z27%SXA;{UocAHVU_*HO6!U$|JhP=LoehOglioO`Q24kq@B<@_RWi{^m z=J~a16WADMAPYDw1`RD-Q1oC&zQH%&!l;K#f`t9Koqi0PA~E1waT5eg_1P7x3+3Dq@iY-6Eev5947IOV-y3>Va)H zJUsdW+5Mfkf~NY}4qx@dv7fJ;*tDkur4)CQ?6>3o3WM(uB%aImc1sjr6((!)jaR@o zkh685u@2M=)y-hv80Z<8U-{?!7+rRJwFjg>Q-4Hr^M#&C!r0&FY$3j54=Q>=Wt8-I zPv>?8I0Wh;9lm9)8aiL06_6hS2qd(?{Hs_qR0O-T9@!coHE^sUSI%MkQzk2jg-)?T zQ(AQ5x&nFe0&GQLoVC_X(ztlzwgK;v_VBxu^D_pJ$q)7mfFaZm3@XQ^=U$(*3C6!y==@Xkn^Xrq_nm+?R#PlB?H@8U|a~t*$)XK zh~*~JB4RWf)M{-Vfoo=@Z)U&TMO~@7$zk$+b z!D9y)TZfGEweSsm$*mCK)sqd=xzu-@&#u6p6gYbMHZadtg`)tyrSwcE9lhW|??{*? z^jHV-*edXYj*j!+1Oa+Ks1w5ay)e$_;AHwJPXtnxs|nT5Uy;K8JgEGZ^YS&XD*mm3F^~ zf~j*4hG+19DnhVFu)l)Mm;zbcf|&Ga^MY)(`a*X?V@skI;yYI6Cdk{3wyfIPWE__o z(M|lV`e7eI;vPfDih=hWAs(4+sl;kF6USx{Bs?6>&#Au=7_o*n1IjZ6FY+w)PwEE2 z!?AEo9`ct&o4`g)?)1KB;0ml>4KxXQ%lH?lO9#Lve%ibSwnE2dd0RRz8tZXEs#$C3 ze0*-d%f+*4%eG=`lYQ0D`HFp~@Gu0X-I;S4XM2JZLy=Sc`Lv+(@#t@-=$lp(M*ZG0 z7K@uN=J^?fr@I_h3-SeNVt;Yi`@ZWyVW9Wo@vRJS(04=`$&-VimxTIw192rWmOVM> z1<@Czs#5K; zm1eeB6E`uxm$?D!Gw^(eQ?jtR`v%reaa@q@q_YQ(AEdKbyy}^!HSnvUwL+1W>7q*X z(w&@xgNgglw4*jK91aTNA|EcP2UcKhom=hPZGbDcM6o90G;8gxT2bgyXFD7NJ>>rc zvVQlN566d1koYG6~3 z;oJfh53M9Vo+sZ4&BYgbxIg9%f^=7C5I9r;o@%AXGa&1;2~W?}SbYa_q30Gxh^MPU zgtZBB?w@Au&Ra?r?7LjSi7hr?=q*x4#$(zmMEkALe0*;5?7 z;C4fxXh}DRIZpSK{3mtKjQD#h>%FFdddT z>{{RVz3FQwz+ldwR(l9?ZizJv_6^j;TuY01`GUF#?H+G9UewQ# z;`b|vnb6@1nw#&KetUpiOFidn$l6L1*Tk`fo9mN8L2B%<&FBkq7P59%aR|`@#v&f% zJT5`g=2nROIK3}$ReI}5=i`wsLD$#6m90=;eN}|5P0VU8Z_BoxAe}bJu-W<%8}Ma= z5_(9O&3&@^f;8upVr#`J{e<#|IuYG=bQU!8ur8SPMz5|);yMTBwy0)9I(+(hq zqpXBK`Q|xAFE#RP_@RD^q+u}Dp`JHi=-AM;)%i#ntCM>NCTt~M z58ok)2UO|s*nY`iG5JnG;;ZmaZOrqja5UDT0`g6u6)%P!SKCATiK?%!HftD{&k$8W zT4e2?Z0UD*Q4G-vW%8YWJ3I;aP9K3?cJH$hq*g|J+)9U1)+Z@b!VwsO70X+U}iEfDhJ zB?#)Z&xm258dXs2W3iQ>yU`}tM&Mnrxr6N9g01=j|DaT}dJwv{)^pky>9|Eq0Ymq- z{|nGA$R_xX9gN8$`UZ7Ds#!e{sNJRuC%=>rg0ogI=1%uu)&!N$d+!&1#|Z zB_RD7c_OTx!>hi$>|(Q-F;ugj!`Me`MtBo)Zi#(Fj3)Tf@gRqTAV`a>Ug>f6;*tI0 z^ZNa0sBhrWoYb@Tn{llE)s8A*ewQBa@AX^scn#UIZB`JA>X)&F5jrpxiwH-Mjl~x#SuNOiqH8fod@G=H zH1q7ihOhX-Hy}@ho=b&((2?{wg@z_usDeBrhWZt}BX>Rw2ulUzEwZ-KxmJhtOcHWF zUX8vO=$lY{%f_vV=U9Q?DwXWDP_KsZ+tL>G&tvdoq5sKf3*&qiZ`hI`=VMcS5_=Hj zSy@{W)@t^k%LdUEYVZi+5i5|jR*%ktxB4i9c&H&klgH{LM|Ngtzz1<`VIu$D#SwZ0 zyE7UQr1LePvpG#kE!zJVmL1w9(G^;mP4o->e{~66ioZOOW&Vt~?`< z;`0FHsYcyEE_}oLYD&Bpg*^A70l=R`4~`gLMc6tOc~4XeWCb~wek9#)2GRwKFI2cc z<~8^YPZe}?5)Z9!NDaW_S@b*b-k#!vUs^RE65+;YM>O80yk3fi* z;?y(idl0^-!%v4aF0Idk&MoIa+WM^GT63XKq3~CxqGlPv^}kAqw(RRy;)}`UE2IJ* z$5n+szS{gMVHn6GO5(S2h5S9RG;lzTpu>tycR^vRXkt#r7EM;jSwSZ5tCY`-D<6?7S4>bg-x5AY$ z)c|RcwH9FwLqURCJ$!@2_sBDDemLwGAHZ?xA&}$6?N$MsDV$Gh{Ta4+jI2sF7GNBduLWQeYE!Hs3KLz_j zWh|=Q4d%Iqk)lH#TMx$f>$c!*l`wg{t@uJ^P9?vmgUdj*=@qBF(nQh{EgYdM~rnnQZD1bJ50mV{nuadU2OyMy~+ z7mYG5O<=ESq90@3K)<{S^}K%a!H{ngfkCQptpBTt&@L5&S=cn*#p_!P39uG*WExKdUNiRk)K6=aVu zn<+RL*n)iFg5UqyvcJL|755ly0x1Yvj)_&msCJ0u5?Fz+-taFN^~Wev=L%8-bN(3m ztw|zst!wirIQ$>AsVDp@r@(j?&yn@VNJt(Uc)TdZny5wpE)_%qLtsB4H3_|_0*Y@{ z^*^}Uy2#KB+}+$katqyK93fUK5I;sG=Vt^~!tT0{TcPgx$4K&)shp#%gT-vS92cb5 zmpb;15x7aX7wlsphYQeo=XUc2`TxZ6Cqd_y_&J)WwI(->KS+y*gsBUkAeAw2t&Pgs zKg(&enjq`{9%wUSd>zy`4CL{?NqTMX@Mo76B=m3yxEC+j<_buSataOH4E=@R?rKAj zv&HHgDuRS9Yk>5kx{1GaQ;-@Zj`pJaXmbzz*?&UQUe2zuhfei zKgTB_>*?w%@Y~f2?Jmjx8%fT0mHd;C^?ZfuC6Mz~fzEaiSi^`dJNFTrz@s@r$QIES ze8uVeCs#OIJEde{<@A1iAkUz-Z+$KtSFx`mwI19U!J5{@;BE7;6G zg#gEMY>J8(eKHk}r@8~4{DQ3Kt0ZrQF5W+xq^}&<*kIJ3gX3Fd4;(S^Ro0Ns48KkF z4anD_1Y&Bkv;Cdx5rzT8B1SSN-v-EE2l5f3^!O=O->ssFt?Dj-hoeLXob?+7&_gTp zS*-EL%ri(0Lr;*2=Y=2@c#o{LuFwi_jUF^%tAIQMaz0-=S{VdFtPT7*q(#T7?EVNGI@wz(NtJth3!gD6x6Iz^gx*CCO)g32?{Y707pJ`-P+FZ0hczX|l36W7wT zcEMpvQ?W|%i2654!dUV%Fz{PrsElUWcKpA*)&Kl6?5_dDAYTZ@qq|fWjU-nTLEdXb ztrYQ##g~3Wam2upj z#Rh!Y5yv;HtMluYY{DHRSPe;=*s6&p_zn=ni?w%4QpF~`ec&L00QAd(y5F|VtT4KJaKdpLwwGz(J0C@|YYaL*lFp$f7 z7E3FFoLdXFGRN77zJbT%5qLa@oQ13{30w909uE+cy8`RE{usAJ(Sp%P;*?$+J?`9L zTjW662-W@?G6I=Uj0x``*>d#_)A5AdOOTK6mQWc__K$smt62p-aiC|kE07wuCf3j- z@0p}iF>sBvo7Fe0z%AXnAWinb8`fA8|8+WobU5ocyI?zmm=ab{EA^YZf7D~iLlNBb zxBA)--*o@a%=;^h3rIjquw5PYg^uNtTOq>Qmk{LK-{cAJmN^;fJI>}EjmLSxCa9dn z(P{|ng5i79Bgl?)WMlP(jtq3SV&Aa>w*SPq_rk;jdW|#ZZy>>{L1b5_<=gVWk$8gP$_N>gn?gerOw0F8povq{1(z8YpWJ{ zLAHdOa|gj%70k2M)Ugh9Df@ymbu1N-7FlZ{*SMs;jnHL~7WI+D3SoE7`bqRq0DhIu zwXq5Pl}{e3>?obJKSkaSI)gmp5yWoSkmucG6KvPYmJ@rm;OU5P54x#L^Q#7V^(`C@ zgw`31;ycYv{S-NH>`TIkfxRfEwH95Q=MN^ffDoHQkn%L)q^&H|FW{SbfI!f z6l-q4V@sr3l{_Z#%riXe`LPcJM{sZ2B*^)EhaN=Vdxx`f`5*=D9j+LI3mt2rm^`@x zADq57D|u**_Bqx*AupTonW?DvqXN<*pPq2lC~KwJv$=V$Y7?}(YL<2A*e>8$0eQxd zNUsln6Il}<4w4o-3Ery7%`xD)6v$$qM;I4Z^gF+7R&a_T;QF6)q`1EZ8;}Yn58N5S zb~!G{N$vHe?|{;uG0$F_{NrOJ1Kt+*wX~2{x0^5W(Fx?ptQE+u2>T~?Twq_a8H%6< z_=-WkVRF&X`>9u{LyeM@3T-eH?jD@FQ< z;7)YG;tSGCMuuMX1;#L1;=Y@WuP3NWhE2vBdN`UY{v$0m@V;3OCkYPP<^IaEEsl$s z%Z>)FV6d1!EHV}gI&S;nX%{_(f;@xJ^FO=)CDZ;2(HD=0tSQm)K5Gxi#r2zg&P6@)uv41QS9UC~G)>0$LHcEdLCwv%tU#6LN_jrx;KN;aeIVoQhB zxe~@!_62!vI4*Cw?`9KTIR!FtJVKDO2kIY-HDtBeY(43SO%6yNxbv&*E8|=lAjo?{ ziwd>x0s-3#pyNe^9_f$vRcZ+>9n`a!xW6jnrMEy+ z5YHQq&sh4a2_go*%2VLjiPXX0pp_)gAbjS>5Xjkb|DF97>k8ztUCUz!CihoC`dm4T z`d2jq$BPskYTiKJ3#anx->s6Yf18s)&i_TDCc)Yi^sj2gNm>?tt1ZZTCDH#WbFDmw z&9bg@+&mlifOHD@pC!op;h8k^Gr$U8>;H|`_l2JEik$f8DDpRf=h7ZL9dnHp`0||t zU6B}z6&#ib&2^wpLe}#Y^3*;KIJR(;xEr~pm&dsoSkG4=SG5LyzdpIRdc-DgA?I^t zpc)45i-9`)kFc;Fe4(RIl|QIK@FF`$aF!lAS;^>;C>8Nk38Pg6Rtp=DSKp`yccgp5u=4eWB&OeiEjjM)Zxq78qDP+69$nw)j`zP9kF+5_@bQ*h($Z z)&uf>-FC)mVl4d?j-Bc|U*W5PwL616V@MrCM zaF5#!*;L>3I!rdUHb@|7p_q6NqT<-~I#3VDIgS+4X6b@$z&8wZJQC#WC5|nQj_p3% zJ~9OE#pot=3w8Qa05)&FXe_>fy_o02WBQs>v|1BVAM87ndK^>GbNPZ)b@rIUIz7Ku zb#d$6a5+5QW(T!It6wEyK9zuWDjm7wP96iBvu&mwwHb<_MUo!K`FLTUQFs44{v*Ul zCbGd(51BT&FNDPaHt43a$Grk;;(Eu5O*mZ%?BM9cNKKILX7ZhY4@bgjRxdijzR)o_ zONFjw!&kte3$k8NcbvcXu)mFDb4wI0HsJ9s7_DrIz42?X38bAxxQXFab_x6Juf=K| z#NV>PVduoV68KHbt$q?~XeS0X6G67H|F6aJpMMVcYbQpKooSy$+no0J&ubzCsb=-~ z&(a8TKyf`HVdpF7|FG__0mP6{nOq>Uo14HLX|EL|Y$^F0HHvt&)H_w4*C0o!9I7E%z;J2vxsKqP;ByTPchdfrb0CIh*+_U4DVZ4hcm@~@fq z-Aj+idO^+s>8*-CR1M?Y3i(x96V~mS9IgC+P35U`603Va@<#g#vpM!rhBwRozEGvcg!2z+N1C)gZ{Zg?gkEvDSkv+C?Jm zWrkX5!905kyE&~Mh2tq6MxeC`axh#+*$+jA=U3^yS3n{hP(&rMb*ga0psF<6fN+M zWI+Mf8hP{Zg}~1syviEVebmEElbMiRQg;QyTDK(aa!vdy!rEKN856e?1?(Dmdc9R( z2F`xs5rk_-)LJ*>XUY1WzsfoCi0=iXw8Yp-pCJMH^8q4Zy---Wr6hVwS*ik~dKP|* zjcQ1{(b?mEMABBxxyFMn6jP0oibWZhMA1_!!$~?R)w~;RLSeOlaC1k%do7GL78jx` zl>x#tlW@&ZAZzU#Kx~;(yPeWE!L20y$9kBA@DommIBN(|+Ic@p6AbkP26ICiKksDsIuMvl+{1+P}Fgmh_*p;IXWO zS1e-js~C4+^LJRW7K}x`HW&{Dk+7WvfydXOR{QR_1(d4Jryyr_@{EaVD%8^XY+AkU zsfd*g_yV~&@iQP2`hh4tYN^YkiG)>$G0$GIy4vyEAc&JiqIec`zJ8R*mGR^aP-{+j z2d=Gn!?F2?GQd0q_?xqJ@lpxUqRu}C&hjDRHT>lj5i(`{o z=iaa`P<71e_)exE}8-f_7$ovq~F`;js(NZ8V14bfQ~Cal43<0(jdWqY?s zjlBGzx;oAu0zxk01?m!|hnI}_4F6&B6KWsGv3V<0bE=UwEMAJ!DSjI%uuG8D>wZDG z-RKnA`SXXm;Gji51dNb#5G3r5e!yuSQjzvd?q(Xu)gxscj;0~k_os0z8(Q6Nz|m?0 zHXr+LVO(5{u7oLZOCq3)R`k%>y*p??7~RQ98=XRKFzPvRTwJcyqhj^-XkF({GP6aQPB$~uCYQyt-S?#tK%0WuTbDv^B#~|y2vALRQpeF zx}m<+)&wDJokVNq4dgu)My+|r_+6#Nt8ix-2=nYIQ*}#w{3?N50Ires8JNzO2(KXQ z?j&G#7v~OS0Umt(ka4IySaLVXaxjV+s;$VOB44)*wr*bU($0Ttg7* z-LHb`l|k;Wf=F0TiQ4@JqrT_UB&{SMd*3U-Q!4?E&#vJ-+P4d*SwF>Ason!wq{x_Y_%r&H0V@`>@l8ke$ zA|4X7-AUOBSwd*8)%Jn)GwSCW6USNt>J`iA;R|b%uok;3auCn0h1_xU(u&e4?#{#c zZOmag3tVgKg`o4fl5mZpH6H9C$V;s<3|@t~54@>6%}VIW@bJiLE=W!L`MtX&+{_i* z4?#k52}e}VZN^+vs%4s6aqOf0xv74DuzZRc#3L4EI`7ONAK70e&=EN< z9uM2!W1sZh)qc|b1)Pz(m_c^@P(O9l2jmjaxxXN+;UC@}{T>A4v`5;H|9R8>KmQE- zYYaSA)x84AD5$tcgng$lB#x(&u)4`DuSI%a3anP_3*t_c1U;$h`>Q|^OW%Dc@Yo5y zJT?)SYbzeAJTrL-h8D%cSC3%eR}h}=qLU43*96$>B)Ouv#WxIe4t0;~pa19UFaMA= z*^zDH*J6S#=J}J5wZGEP)UwvZPWxNt_XSxG2lXd5>KmrsLBhD#hJno_9i>x(Erx+= z@K{58ePQZOS!*bIaBx#GDLSA{!SjtKE5WbU1>1gJO6Fp9_u27Xpvx zvPIuO?&##i9%?WeX}v&w!*o1h#Ns6t9LdYK$bV%yuBKhF2_yD$3>JfLs8CgL^-9@{ zII2hCs+iz=OMaY=3&%SIsb=-KVJ}s+68a-{u1J`;rpw7q9IBALo*>nzep*cIQ4Bq9 zF>v3!ftVSnQ^Uy>SiJ;$eT$goj%5!W=OZA2`$+qi-~0LmJ@OjJ>gwDsaeoCHIxNQn zqfHP4d?%*Ku z=@sV-#}~ttTJbYt=oYLb6f@#zg6|aMc>D?yPc?y<$+sBl8zz_iJ&Aln zMgLCVv4uV(JPUL_KknQ>KH?LmWKKvJYVp}X=Nl~jO)`*-BxSYG(vx11_sU_qLZUgQ z!fG|!;y_LGNZhOcHA&84_(^TTamfJR6Fwiulo z?*0Zo@W&>s!0ILOQUo#64yB_1A&p@u6a>A=(F)#Ets)k%?^O21@onSV){k3YUkU@c ztft@MJ;|6X3DEpiAZK9fJoaGVQ>kx2@qjgOv@8RiMUS-yxdvl+R`FsDf*0AlY4K;? zU96b1s|R?Ww2#<;tujutdKTVQn;_WC`d%iyt?XOIxdL*Io*ZufRYeJCLGZ^ETN|x! zdb|ec$a8-0^A)ByBw+oduD^ZlUiKG_fz2sM6SB6%z|YLB&Jy-F$zTvuODEfawdlOZ z<3Ill@idVPcK9`a01# zg8*Cl#d2Jbw>$C;p^=HSD*24ZMmqqB{CJn{Zr}B4%g5}uaT!Mus5OWtFy`9?si!54Xp10IzJopH*Z8Q;7&ha>cdBEA2=@0$TRvg z+;@NF`M4m>M_L0PAKj9~omlGc(k)v72?v$jrL>yc!siDvr-Dtg>);J9+d zYacdb%f9-&|NR=^(*^Ep^F;w;jl-?lK7z!{fc+H~U*MBc&FVoFbPr3uc?I^;xrvbV z*@P`y5P9+2ZmCy%;UxAz)>_m*sfV1_?rdZrQ)iH8jA>k+hd%Dd1?he5VB`1kYNofP z`WKB1IR-o>#N&dz-=VSi#?T$oafimV z{;iPJ@)pEgkWKOhsb&K7^q&OZ+cwXYHE=6v^+>gOoG*yBb68E?ce9lc16qJD8*1A= zk21kmU@P?nsmB#LYt1A;fuo-uK~AMMGsyGs$KO2%f+KP}qQ3D9#y|vXcP#Y?mAji$ z^L1nI1e>50U<-)U`yJxs#2$Zo(4?hfb+!xGH#lPj>}zffPCGsy2sr-7I<#)Kiverg zlGH+ehNhb7)`D9Ut(DVz!2OwPEp1N=E7Ge|%Pn!ud-Z`jzonq5zB7nN*2ISg4_n+9 z$Jw~uDg&Y79#kn{X^C-!1jRCcSjk!x((Gq?yLro^+Z0qXy9u(Tfq~&J@>rW%fA{lF;{!b_Lpa) zvV!Bkx`F+zl*(7>-Jb5%-kPu14YUEyZNXEUAQD7N9CABul16>LKZ_e}d6k_e&&&L*TruL^hCXA{i#z&D)GuTY@o(QCAbV z0eQZ{vCOR!q_(|dM`Mpgbk=Jg`Y;4C^tC#%je9|2_3c8pZ!3(jQr<6jj<`{3V{n+~@G|#A zhJgDsS$)Ht$s%VwQ&9%nioI6s z^;A-^^ua%TYyXyIu#K#{rzYjVz0l+BiC3!s#BU^UdGCy8=eYptCuX{AhN}*3v)qTY&IDVn3S_%Gcc)GN z5F124q2!p?oe|W#&c$)qPEIv^{h{_-&3Ki>7f=44L6nM4-)n0+m-~Y(*?L}rU2Aj1n(x4B}~fdCl*pw-{!%q0R7OV)>yLnRM%MBetGv!v+|q#PTRrABEel%3zM!$_ynRZ$$aIH*iY5Q zAW=!osfo+7Sky)$jpb?!Ge436pjWqo5Br9Q-o{7M0D+L_t5yrvu-dOt zZA$gl7?gqF-KzrMSLXZ)n23Acwkbo2lrow`s?dAptdjc{NwL4Rtx$mF8sphS9pd6G?=C`|y09M+GB z#{RWzpmjT#a$0kkr6H5fW?SWjdf0h(N>MRdbf9;L_f4IVP?YtE*q7e(!gyVWir%cw z`E%IV8RLO%2+>0Fwse=KW9<=M!~7Bl<|i(eJl13EZxCQS>O zfMrO|@uvl?oqcVi-Q?sQ3qB))y%x-T7F9|BpA6#PSrg!*rRc41rEW}uX%e;zb3QD}770u3_80 zkf)4$|D3lZp;yh#dXqo6YXLFK)>~NGufEZ0ix?5i(;54(`8pn}tPs0?P%=YpsIjos z%LRc@HzVZ&>kTi?H4C?9?H%f;uRi-Q03SyG}FnCG7|*P}6Q&395b z%*Jcbm3NSU`nZkuX*+G#S6J7m(Ga` zN`%v0RG6s=%E#@n@1~w$G>_@p-45m}?sC}1vy-j20lg4b2n$+! zGA(sg-raA+ubPdQejBov3vChwrvOE0+;C_icBSTbOSm;GHW~y6H6HkAEp50j~77><|j_2yG}4)k5OTx*JDX%uxbtXD7TQ4ycTkemOAI z zDIcAA3PFM zfryDr!NHAJCcj%tjf}-)3f3hGjR{NUD>Z(Wx9C{B!&3>DD|l|oAPh$7oMW94_zKsx zZmsv~n=|j2hgEhtK$15<>2ZHjHs#gBq`LI=*2kD z<{lL%PFv4c=~$QQjSOAOTo=wwDoV=|)*yPBiWjJ0fBhXisbPXI8PHp&ZBy3)Ik1~E zZLlX(z#aSrq#kx-wjrq1t)#_5hhVahwVfMHxQ^Poyyh{t$+gZJ){8tyrZwotT*>g8 zCbO{{CU~Sq^=HRs#44zq&C7CYdTYu=DPM5PrSwfsjKvMpc}?tlrY1+Es)LL_c!X367sLDskMW5hqE^*rzM5M}_(K zHll5qXxhkHY4&`Mk^yu4fjP^$c6YpM>G@s7t7~Fa7mKYV2FR~X4E}CkG%5Pg@S0hn z5%AHxV9f^L4SIBut#G44V~^^k_q$=8SrqXSGjr;Kme1ibrKs80m3Nv^6!`ENZ?`h? zqAC?`RXT`?1lkZWrGOUYR5#;#Qz!$lapq(jV}$Y0bBp)G8m%+h3bzrVNcFXWEnU+` z`~qLf8ZZtxnWzk8S@)}HbxaAl1PilKD{-^|I<+K^Q}**$r%}FNa~GVfQ|8)jZYUXH zP2;?*d7?!sNPbS3ZQk?{#{6>5m0pf2V^btsS)4qILo*G!tjdM&DI^UM<=&IBy4|;j zaYHL4@7)vYQ{BDNw&#sPI9aWPL1}5pC34&;j*-|2&s1n}8Q0D~a#(sT->W;?#!hO; z*!_cul|RI(-OCC;m70W7;i@HEcjPAv4`*Bj3>AhHWcN4BPC=L?==JW*I?$6IQQ`xtHIk90|4_}~&)3GLYHzEx3IDZc%?u7o*7L-C;u*A*u$ zJiP0{zCc}L7rp_``~)=~%4P&yKc2Q(R9cXnvq0 zNXs$HIJ~MfDE|XToLmAe&9X*&ZKeW$@!Dq^)fRgO6udEJVaGpc0jy*?mfV#kbHCdoq zttBq#*4(Apb=z40y0yKCTkkRbz{aOgSXz!$lB9qRxAL1z|GaDXttv@?=jtdoDpOtq zF5scLy`dKRDu2&CXC|tkidT=l9Yqfil-}r#8>ztX!q>7J(FY4LqU{K8b94V`C7XT$ z(#=`JWS6ZBBKnLs4?ePGULQSVQAbUwizW0qQQ|aFp2O&S|F}O`nYTkcQ_~06h3i^(DmB+c;N+xt_k;w#r9a z^tPNbMI0kM*`YMKXrQVrHtM6u>_`njf-yY`<=)dy;gMRB{{e}2eR;RCV{@JN7^T<< z=sbOhmDT2!bCGjpwsBD(vcGsBBu9jF@9bE86-~rRz>Y2}R!rp;pWaULKTytpeA&p1 z*LdlYDo#j|djuJngC7!ullsKTQJV`m8vxtfoU_hb*nelZ(Y~WzioTQJpGuxqT2&3W zoN_Ok+^kv5a8Ck<6J`ZgAlrfP2D1&G&ml1qDM3*`(mss_k{yIt41jPlGO0Ts;%p`_ zl7`%J8cJhA722mLjAk!TY>aAH>>p;mUjFfYM|C8+OEmeUy)WJlvCA@`meWZQteld0 zh`(UNv?Emrp{SL)$hgOdyXidYPboi(?)ZEF#uFDLe- z#`AW=EjPwhLI=F5!!y85R>wPcy7P?=wUrJTW-s zc`z$^()l#P>ZT#Wc!Ee_!M$QbISCN4)P>;Wo|TaKfrKm)su;KCX2~l7)79L)+0|9y zA%9MJZO;ICx*z-r{OJ?+AUu{BwXa--&&m%8ra$*N-ltSFgymc{8WZ$LDNx7g3-cG? zqwk0RC_#e$kqoY)W>V=n<|Gdl1A{szHBhpoiM=ps_2ffL2|-N1x?IxwppGH#N_I&2 zU8=OZNQ^c?BW-JLk#Qq->=EW#OVg$rwWBtKYQdLBo_ao_b0$D71<6{UifP=PsOd=8` zY&IXQzBDuR5>9=Gs*a7LK4Ry(*-b=D`5*P#&c#JiRqm=p!8p?Q7~~UUNeeh1C)l5~ zpzI_KRu;1O`lXS${O_mtC4BH(^E0zYVP0=Pe&|*rvgE3h_OwG<`L++y7Coh66>z{_ zhjh2;?EYVebMko(-h1GZ3~5Pw$b?3%u;gXLVpyv7C?NgXFsESH6Ynr_6iO?vqlsAX zG#~)!#L6Neec_=FX}3n;s~4IIEI7L!YPM(zbKwcdICV@>WGQcqw1(F*|W^F&)w^p~qOxLRK&}xQsR@ zkYYeQ3bCv@xEL1A$l?;aO#0DyYC^NeKgkr^pJk#LKL`x{+ROlt-Zwkb>nucp$IP6` z;s^UBcv<&btBo$UH?HQ|!P!HWJ!9XyX;%MPnmxJWFHBV5M$&{i`e)wGx)H7ZaqAM$ zH2dVC;BW!&^E8~iQRd3Kdo9CNm%@gN?%Ast4%EiQc?6o!Yc0AgbCd&yjb}^!3`o*^ z&kDFoeSA=+(7on(+Fw$A*mGj1#sfPz(Ccz0j>X>lxW%VHM;R&kSi-F*l>d>PaIqJH zd0Z2BMgZ^_w6LV?l0pd)kD=VDZZ}8y6RbcJVyw~FrR{prQZS}-3K}$8Eq8LN!~B*A zkZmau<9d>As||A_Wz_f+e+31gIG7RU+tc2CBknu-N6|G-0|(npi4CUItY0OnnQs|% zPq(DI7PQHcGob@*T)uyUoe&gw_mK<#IS7%912;L!qU3WzF)q7PtAlzjg=#Z16*N86 z{A6_66ta709#AH}C~yW=UTHbC{t5kpZBlJgfVrYomoiH1c*ar$pC+SEx7%YYEo(XdY9IHr6j=AFQ3 zq)Oac7?&;f$8uGm`P>WaZpke1R*=^Ax`hm}^&`{_-G3gV6gx%2NC;DL+ObwRD-jzf zR|EZrHX_JTQ+$Zuk*q?n4xTl{XK2!VqhqP z=_mReFg9}#!^j!^^AP9$aCPFaKEZnqgaBpiwe%S=s|Z!G>a--b)(ko#4!x|-cD41i zJQfxrQ;!tXjmsiR{P=R=L-aUtX5%4X{vO78kh+nM<$j7|<1CxZ1G3uMlIr#7NhsQH z#ism5(yc>9?WJ4U@j+#QzU}>W?=?>$Kxf?k0dyQ%(5xn;%TqZdYqKwI(}-&dQrRbLrp2s~M9XsI1UmH=1MBuke&Ot`+B=Ho)KBNgfACrE zd(nd;%!aC)`=a6^`Vr=U9r-6llePE1q!`K`8=9Yvg6WL6uzxZcYm6ylnxuh2qEC`I z;fw`{&A!TeN^wT@)<~iwZ^F4HC;@w_whR}wj>5G-3Gej$>po#i;9%`K7+ncYm@nff zM2T3mF~T-RHG}(8y1$3E-rhZ4(NnO5H?eCnw++R5xBt(eS?`(F!v$b4bn`v_H;s?9 z@dzw7L7L~5em3Uv)M;xFF%@lGT*)UI^6}Ncq#WItTI)dY5bBNDNT`^G15-~G`XPsR zxmfjCP$*bB0RvhuHV(s%!|1sxdN&-{sHTz+0i?@K$fl6IPYbLZIAdQ1m=$J5_^(kwJB#eP2Yx2V!6(7rDrbQ6NwfrGb7|Fe=6)S+Z z-=I4NBlcK+5m6AYI=?<}z-HkpXg;l`c1E4D$8t}A^50Po-pIF_KI=|lWL4DVj?K3( zFP@0LXBZVewmCamfcXW(<~Q&`iUb!BlKnE^(Wf~ zx~gJ$&;xIj4Q<(JjQ5kPR!Pv+-VLS*LWcLPFUssR+o4%`eBkLNiV!p-IYDK=ln8orGnOqWRJt-VHt6-Bd(V z9%yN8)pK{tmz;c+aAcUp`aU1|lBJ(-v>|iFoVKd3G(4-8;U6anXtbSD|GVouso$oc zn5K{$ZbStYd$~G@elYR1Unwm$xB=!X#>ZLfz4F}!!lSqT;*f;RNM)=P(r(#10Zjko zpSFXxPoyIfMoP71mZ!08^gb!JyC-<@Not*DH{@>8H;Tx8HyGZ;2hx-hls;e-vlMD0 zbc#%mCX6^Ux@v1mh#eWR{-T_3T(c@Xtx;DFQt0O1G67Zd;!~Bvy||$!!?{|D4kh>B$h`fTb7|96u=ntmxg2FNuw_ z_OriNmcxpJSr629_@qQulkiNW8|Jruc75|Z7dB}7^T;k9g6i-Ovpzyq@j+fY6l~$^ zS7J@H@4UiV4_~N+jLE-zWvqCuk;x8Ja&#f^7<>E;zuH5~8S^d2zI2}GP)YpF+?F)c zmq{iwNlfmG`2TXXn(}Y>fcMjbOmRGSnV&1KJN+Tw8&XZZ1q#fo<s^dN}xGYh<#5Ek84TMuW>al)IuDL)`T9 zfr5wr!_mx+K5O1H=by;|qcX{zqXI=W#Rr-my1S_u^cl8$_Q=_RB54;1M7Ghf3BS`og5!{B(@7FEKxmV+sH^t z_Wkxk&A3?Dsg7G?>~3GAOA?72(Bm?kU)ldVE2<(N{r7!qavXSD5mk%-TL{KzTJhQ z@Z1PAHh!ay4d5Z3l{LBLBqb2}-Xl#_vlIHXz&zthtf7Qbk40+`n2tx0FDDp-mKGR^ zJw2j0;2(9%i8&k*tH9VaF|GLvit3QlYA&W*|FbgrBuLV69%X7@TS*&V-O9e(kSUsU zO1QYC*qplo;QWxj1(Yf1k!a?p=>Jw{waUnlSK~|tNP#fwdvL0GW7EcqGY9ONh^SKr6<5g6KK9sJ9F;QBxjIvoo>IPJ(lgqFD8?y~=5XQB7t7 zU5T3gXB@O1nPrqgHe!IKiXbWxrGaOX5&grp3<3u(4nQoy3^$ok(>dVtoUBZNV2oT% zm03|nsGK**GD(;v&s0D$cEk2f4z_dBY@sactNY1LQF8Ho!81>g5V|qakq-h|89@X* zb7nel^~X%Cn2e;~h>+J|EmKeL-sY^zQM`eOE!yk}mF25R3>w10BxYnh_RA-F(&6i} zupBpnGWeZ~b~6dftKvgQR|UZ5e4`{@{Sl2ITTO-7f%qrKU}Y?JQn_=DwJ%LDCcGA#trq^7&Wz|=AFd6j zM8b`(b_m%af&a%`UwD!koTi9U=jr3(zYh=K*@j;~-(UG{a;XYL4NDE!tDvEcpDwG9 zho@@6cV6bF+~_lr8waZrUP+6Am+HTwlyO?sLn+#Xi_uPhm~O%gbm$yqY9;9910 z4zi7!+SYm{AHPZ1Qo>v zHYE~}axRfM-im>%GZWUYkX(Q=mdts$40mc`NWEyIc-HSHaVJWF|864~Fj)W$i9ObL zp;%}-0FH%ADzI{<>~50Wi(CRc7^%jJD=XDd?KKxLW-@?nfvAH#x}U>zkm>b*-|FH`vyl40TL4zR95_^;}eOhh(Vh70j2h)I9tnR zyaE~y+)Egr!&Xp>#T?81?`Xh{dwJ_izcLeEK`uN8qf=i#1;@-p%}7iqMr>OL<|1FU zIS#q_Wx{MBf0jQWw7JyZjJ*GZadQg_sw|N@jVAxf>?(gyJqB(DH7YggFc=Iy-?(`F ztnxYax{JCOBstT7QJS0W!fe!;I$czMZMJ2?SJ-lt9%8V1Ojrig~|CcL`WjbLo zvn6x|r`=Br-uwp|Z>Ih28etFWVo1 z@4vksx8fpPE3Z9o2fO$&l||I{FQ#T>9a?WzOoxB&VO!VEq<%vGiM~o^yxlPn!G8&A z#!ust!iU;{mV@9uF3dTBzQP=)W-~W=2(3C6G3T*>caQj%UGAI(^+N+)|A|sa1z3IA zUfaKrqaKWW1E^i9UPD(+)s2-V-qBdZ#Tn-3sIh7glogz*M^Gz9rEhv`$CU-B+=Kn- zq}(x{Cb$_-+kJta%dIWBMM|F&-5CxI@SlOudnW4xK9>E6Kl-_tiN4Zg0-g2E&gJnt ziAMa;+Gz5fM#SEeMLJU2?rUW$jW$PbHAvOUt2!(5{Y^kz)tWN1$+|!PC7bY^!!lT` zP@S|WKO3~r$&dA%dq|f}IBCD3L;9mTVd&q{+oIz@r~Z$myk8#KUHKZsF;f3qM&}Kb zj_l|R^my|-KgLnioA4sF*&196LaPmQ1Dw13;0=p@Jnq%tu)k2n>coMx4Zznv*U;%{ z&AUa_^KDnw2b`PtxG+U20uo$RsT&T@=lWeStAoL@pKO0<^wCq$Pi~Iu))Gwf3-0#o zTd>q&@tKXkC{OU*DkFOhp2^l*^*F#1?xW0Dua9;kfCGPV07|<3^KHWu&y8*A3x(&a z-3y!>^l$Ph6zo=FG;ghpVH*IIR5Nwy&K&7aJ?Ac=+?Rw45=gwv8Nu<@< zuu)Xl;~fpCed^cy@*^;Wd8e{9=9W-M@B=PAoS?d6mgqj0XHespNM&+Fw%D%IOE@Km zgAVftqF?+&2EXFlK8xhQR7lr`t=VQ_Ej(;Z&vtQzV_IUy3apz@!Ay) z>xQx4INhT?p{Qz&wN0;;x*`a#ymkxpiT731BK?q-{)@sIX49$aLU`ubSzyRrVChh; z)TPp|t-~CK1FOW+?s^U&gMmtpBQWR`3&REgZ!x%3@}U5_g(@wTG}ElI8VI znoY>C>mavQ=eX(Eu)(_6QPpNFXh4RaBX{|eL*dma;$L-HX%Qxu!D94hMwKiDVXqp& zd961@THb_6@`}aBhPbtxy=j&o(g&2ZT07;Rm+wCeDq*~6m^PvQ`i?_gICP9oe6Z|) zO;42^<>34Ugj$#3=q!cR3nJmU%PJnI|7D(qUKn^Bwf6nhbQ?xofvon;MDU@LrOr;! zkfFwAaq!WyGd)?-rqhn>p;OF;{$YRm!>U;I&xNV#HO34=_qGK}RQ;_bEG{{vkkpZ& zd18*Cn<0MX$9hh@)Bz=qwFX^sPiN*j`h2dl+VVld!z7^={CL^FEba%vzwj?72u%fo zN{;NmmH%G=Yt1d-U(xCGpOf+9;#%EE-7{^n^$c-ubyl0}Z3oMSAd6VQEuLz(VB`ah zJD|az)riyFi*PruTB8ykzXu8PhK^?Nc|~XlR%fv0^bniGaD4=^$nzoI=I&}v_d~a; zfRm>N!2zW3qSO0JZvlqmOjwGGVMfGthnnE0A=%=vspD8aBF9To|ru@{-Vn z;@W~pa+jKGW%R`)d9LA5sI4ZNndIFEj3Lpjj)d?Mj5StqF)IO>&{|DZfv35Auf70pb^scP~q?aDq@xhvYeT`wZPbiI^G`!zX#;xR87E?43 zn{QjoCdb`*++PaMA}?9;=v#^*vT<<^xC#?tB4q{|F~NE=NXyLWIbu2zpvQ&uxbBjg zEVVHIX~{zO8zsw}T>5^=VhsAf^vN1CAM7<}-3s z*mKv+Tks{(W&>!p`*zL0+H&fG!ip$TI$!E4GM}4#mFA`LKYe(vckMRbYZ1HqJM|kX z)6GJy<0?C(;L)*(_wyLfiO9l0UBKsW;aFT^P!p%OLs-l-of%)hzqoiczWo*{6Hl|x z#MGScr|o4-&jDT`nsZ0M=a<1Zu2Yk?5vwP=uY||i@FPW#>wqR?uy>f0ys>2PTE-~8Y6P8Hzw%eLwC6v9I!75i?{On78NJA z)WFOCiA}G1K9pTE)>cc)ey^9;D_haJoz|etfPD3)0`aNOdqA_p$bK_GH{!9tZQ`N5 z*GJU~<+EawA4S0toot;B@W9qo-c4uYZ9NC1Jgj~kT(ndwJh>^yr<`9LX}62X+TbQt zy*&Z_vEflq(_YW&#U|B7NLL5sutdl5;4uU=amB?&%>Kzco>o5Jk~GYvrcf}_)>w*H z1Oef(>d<9SP(0wAd58tPL79n6X8J$c=V8)2paxB&!tC|e2SZNvi{lujhF(1D6=Z-)ih=e}$A#?N&< zJ9Bvu*45(r0N<`ERMk;)aS#Y{eUOXDw{D+dTU3cJFC-q<`A(0S0U$^xc6`C_d38o$ z-%;^Eg{zgoyvG|Wfi;K_GAAvJP0mNub|%fP3QmM~jH`;adf<`3^Sj&yfh;9*TH38KLC^#1=*4(;0&|GD7a{J`c6TVPR2TgWTUQ+#FVTONo3IEp zGWX&D;hGp77au1`Z}-a3l9EME_k2Fvm#;gl58EB|;CX_G>j&28HcMo2q{+W6m{(bG zHt0KL@OR(I+C9*WO}*;qz>|2^jP-O{x{|CTJMm%TksoIIN0%Y|`VPzx{nVQ<1mw&rZhuW9Hu2)<9cE{& zUmNFJ*`4=fVKT!<2qXelwtP*brxq@D{rK-+4ieRvIZwP{X(S8A@<8tGgJj{%O#(%O zf?$lr1J1<{w@}d`-o;OK8T_k$4RFPr-qK#HFy0-?cCwcKKx`%&cwY8~UCO4A)O2Tc zVl1SSo?hrpOr-6eG*foHcrNL;r{tLP<*mu_)hCOTwy?q zN}OL9#Y~9ObWqjay|p8jy+}3r9huc5r9+pp$b8Cjw3GFZ??)QPr?0F}`m(K~{gniV zUs!J>e#d}11RO2tE5xUQV6rhA z!MnJnw~yhe5`A!Vth%Uup=Yf^Pysk-@Gvu(j?p>JA*(|nz%>wb-ee|Qz1nWi56;)y z+hfT5ka)AYG;Fw`kl`BOykvD>f3&{6UuQO5YOPf&C*sMk}vFd8%mbMMN ziS5rX0D?UK)1|}G=PU3ADXOg&ewNimyJU0a5|Q3UuSl}A2LgqZl`*!Jz*d|eW28-S z*nv3l6{N`bQ*q!TkS{eZ&^8}&H=!zaHzRQ(lb6gf>}8;%51u}#*&qu#8uf{VbAZAM zHop3N%uEbi#KMAqi^dyt+j&f-uq1mUJumnW#z)Ps^r5A$xL zC~1+dN$b9|74YjR@f@yKLETU zlc^>T)&G~cAs;TtmdPpd{jNvYjqSi2=C}VMDQ&g4Ukm=xg_`Iv9AB>*{nIl(jn!F0 z3dd>#XwL2o0HMabgjNMyv;4a&2fQ(v{xFnF_ zbUS7k`b=1@lb8(U;Q2n2@4OuxU{Xl4a1@YGpC-9x!&UCL)%opN&D6oYM3tzk9$j!jeant5Gu)n*SSI!})t&gp_nvU7J7FlnnV5 zcpPgg^l*4yk-4v8W~KT)t`mFM_5Ci0LQ}VG*1aAdKX)q;(}W+9SFWBK5bOO;SWmC} zL7oX3ZQd_v1?`+hohDh3z@NMglB|C5UG8-(E7~uI3>p>pB*ZbX?6-hT3S#y{`C2NC zt|$AYe4spsj96TW)BdV!R1057 zMK_bJCObnTS3Xtoqh8BVj08inM1Pu#WhysZtGc*0erqL61%MMjcc_wTt=6PvyrIg( zcA+iKpO4D9Glbm7$*Kw~HXAIM1m?bTE#n;Kq}6O1i=a*e{tjoF-efRmyLLk9(*>ay zt0?f`yfWa8{_R|=?X6{rv5JpB2OB@gN2B5?AwDEyJ?%;TZI!`_jyhmFcHRs!@*C=u z!M7;P$Jx#)DD$S38jhYW&=KR~b#XQ+zA=_~!v;-(B+k5$IH7_mNB0>+WK zS7|+w5h}LIxt^GVrkwLsXbP%6X;_hNFco)s_m|ey$Q7tdrQ(>f)|OZ<*^V^RzFKX% zO|@#LK&_Ia)iNLf#*rbczFKnJ>jnEiP?ntblbX!q%9p@33WdBsNTDA=CfD6ocX4WN zWAr2^qs3=4J#mWLGENOgrUt=oHfrrsYR@ww8(iEcX?GiyOA)OfPn{JutR)A6Sq<$- zTyASx%2#>}FQza@ndY%0ktJ_MdUy0rW$tnL161yBE-V* zoC)rKQ3tbIV^#*0Xr+ma*`#F+B)8vg&0f%54_4ElSBx-x=QpJ)17zYlt; zLWRi=!s{CHMTmsG0<0LLt-Fw7DWU3l1e07eolZ`s z&3so;f#QTNKL=TYT+I^(8Df~W_Uay#R!Xf>eU@h3eIBTtH%}RIbceX(DTo;(5c&(h zsAbE4yzJ7+D_@tPfS*SmV1Sf}SJ%`|jq>Ox%v&){Q7&jnn)n@Vc1T-575R$(HB!G! zsAx7gY7vdbEjoC`k)|v008cg8|LiO84YJhbF|IeZrV8VLE{3pBw}10L|2g7uGGaUE zcb1|1VF}vr9E2-w>}ig)hgt;>2g|*HFLV-E!v^-?Le5H3tj2{I=3m7^-G*1rT2yZJ z4!$$e`+W%eY}=J$)!I<9BOG|y8cyA8F9mfSu&u+ncx=VuPzV9j6Lk4lt2GoWAQbkD z^`KvVY&(j;Ugtb%Ws--+MSC%;{=_#Wfx0`pv3$ZB{5J{Io}uI`>b!S0Az6l<%#R~$ zI$Am99%(Rd4A2S6Y37bZ(ax-vujs_!JU-vZ*WgLJs;ks>H4qLf7cv9+^|4-w2;d6+ zpJ}X&4aPiK(+N!`EH6YD2&7iOm=0U6NYTWnS8Aq#wsbg-xzj5^$+_ zQTnC$9Dr`5XUO3N8Z*waX;RJpt+Fq%Ci>Jf65i zh_DA^z=a7!ysc6hrOcqDeSS}Es-+xRoblaqvcjNsgyfoGGCHcdIs9Oy)%mA99xR_E z%?^T)mEGmR+-PL?vwN}tUPB+Y%zqm5%RLI&Iq|HCQtINNbWc*oV$!UR#HJ8fY~@-( zhed9j9=BRK4;l%Y<3*VXrioYMlB_3*cu)M=G88x|A35`Ga*%3_(X7C3PfOgwl{#17 z82Dqvlp>%7vs8Q6e&nX)_?`xttKeDJj&CPuEO~Fc@!`688g^ixw~5t2l#od>QR3C;q0NJ{PqWeLklm~%T!42e6~e#b&T4g)Sy?& zSo!{r?B;prVKND=bm#WM`=*k7{><%G*arn<3J6?5Z{IRsSK~=z&A`eFTnNq*3y%Kj z+kdb=eZ{}t$)Yglr*kmo^I+6Vg-@vgfw``&huy0R^TH}Rxm(tPtCbmuLn~c_9QhDd z=W`ZAH&5SN@mFH%_p@M>hTRR645vq^yOpSr`Y(-LnOnlW^QN`4T^jo}NHVwOCc-5N z#82j3K99#_F6dx+ceK;i?POA-qjLF|wTVJQ#~Xw% zbXOn4Kaqz|9-iaX+yHR>&DOJA^#uBd_`N*zoOZdE0<&* z!@V?fy^oe_``VCJz^{D_DSWmaG0g9#@N>aC${iYWLoSMHls!M9>>`slVm{KXS{6(~ z!BI*n-?f<_Dd9)of3HN?5kVi?_8bTN9jV)=v0u(QqT)XI`PL)y^#;|MVD7V!6=6uW zeTtFK=59t%jbS4EMNO2eIScs>Dajpy=|zPfje^3IHt^{GOq^oVnMUPv>`bZP(0eH! zgPgSP`a-8#XPsENBU`+f=-6pP^1<=^W_DcwR{T4;{-gRUEvuj*O1XVp!*(;|pE!gS zcA?FkP$s{I_bgM{@^&vMst4)sn8aD|8%t_sjjaYa;8M)bSYL4+KGU!>$5m&i^SOn( z!3zCb4^PAHvr4>nZK|y9QLF}i0uuy>bJ3n(a$(de+K?=0}^bzm&@k{A4KYlvMa}WM8bLb8Lr6qs^aPl)K70k38 zgg>_BnMs)(yf26ha!oiW@;TCAPmpu5hLE0^G@QbAZ!N6=G$h(q{kHe&(~I_JNqg4F zFXS0Tj^1965WuZ}l*;*rWW{Yo$;w^EPZdsWOPu43RO{{AY>r&`QT3B+w~uxQ4|$;S zqTn7~-E%`OXf)Non040{5PF1Giso$}L%=;xH5^&C1)yBNaJ!b5)Z;jv;i zRd=?so#JQHP*ZMk(%%p*alQ?lgfTSKqwXqm2MBx&(A(0LNhjE`J+rV$iWn3A1 zZE&AiF{b^(bCiPhM6bKzKEQ!vAy^q(KP?{zdWo9g`cC~MC~GLz`jb@?nOvePDEXcw z7reFjc|VOZWsO@F9w`jr5@x8n`PQo9gFS~$=q4yvt{ZB=tBMOp9n-Z6FkK2tM1hSG z)0MuT>%YN0JOMR!QkL{V2pNQ)n~R<@UlU`#F{u_q$OiMLqtY=3d%l;ribFjjSjIsjJDFSr&`g z4gR`7T4aQ#FdPSZvSLcFo}yW(Y{3W1P#na@W#S0!2B@n}B&8C1KA0uAf_Uw{hZ`Bq z#`1@9_JY*ei3TW&U5Zh2Lf_3VwG+iSf1*YBdCVh)KKSd;cz={yFgSppF6b*rZZ^%L zE8hNDFcZMxM5ZJ!(0^@)M?}f;+L=sb%y68CXDNM`#FTqi;#<^&a4qFRiqMQ7WzE1j*_w>-h%e*2MMpenJ=(B8k+)imlK4=+q9 z6F)Li=S_Kh97-qc2qe2!4N~6fEP^QZclL5^v!U5y3}Rs_l+@y65Lk`VygNN~3Pw&!qWok5#$icj{BV)a(^suYI0UzEld*YZ__i z)BFe1Rjk#;a&NHv>@+}--xXb9BnGV4?*iMssesHmuGKmjZ1n@-pQ^0YK@ zQjMA;0L*J#6vh<#7nduMIQGc;Z9Z>lWre@m-*>$7n#ELnd3ZN>ar?#5gA2ar3k7Km z)mH=^;|g^#|KsQ?quT10Xp0u7xJw~Ou;T6w?(XhIio3hJI|O$x?heJ>t+-2ZUcUD? zD>o~5&Y79L_n9-}SRxMR(G|AA8jY7gL=ZbKdF9VlwVh2JtqR8qS4@Dq8H@#|Ikn+1 zCX~_)rAlwJN!lUsp=Bj_CuUo6uxjG5+G7hTXexnvAkZmXP{V;UTSfb7OC+k|KTGW= z%KVo~^j(nsQ|*(KwjG0mI$=`QNm+4c3vYLq0)W*Sia)h{+j+Qc>`Fz{js?ZM zY+6matzmw=U=k9IVyT`omVYFZ2!st#U?}u(c*QnIx2p~U-@ozEuH^R&ZdWP&W0Urn zw_ddcRPCmJ)|D&j;%}8zsB;&`9x$CzxIPm#M9L`=svepScm=?zgVarX()EJfG z+cbR&Jt|7Ky852Jn)N!9YGaP~FTz=0)ZVm?VJXW^Hgvd^D=M%Sl6U_>tW_6l3$q-J z#P3?>EN7D+Wz0kbGNeIC%LaHhU%5hLsS!NGufVKtWW02m491Hcfb0%}|?+_~?R8ssCA1j>=DhD|w zq#oc}S<+4az!p(a!OxNUMNAZ{5ay47qB;a?uqTu}ai>SEz+{s3$6#U-6WY<(i&9zN zylCE0o`GgaUaS0*u|$XppQ|Ni&TcyKW%NlJq3SAP_BhV=pCZJD38V~fJP+w$0!wHt zZWB4^3KJ9397M7|qY^fVVSx;4vp#N8A*)H(61|b+E6icDYKY1JkQAAysmJOD6!3a4 z{E+ie7&Tg)z{?Wu@b6ti(%ark%fYu|^T99r7x;YGBq%hRe2#f~a`CW?A+Mi?OA~VG3iK9KJ{fU%PnKX*7j|~6NPAWrjgR3=0-pj#tOqiM#GGEhb zz+`o}8=3XTC8z5sq6u)6CheJnth`BFS9s%Y-Qfy8r6%hkMu0*!#b9(^ASY?*Y{zf| z9T#LFJ;<@I=X_DpihozvG=3jo<&fBISiWfSkG zw8GkSob;cMS(+mO^LJ@-31V3Bkh4CAElGA|dejX%z335ZU1cWkAV`@3>sbaIxstAw znPk%*dC*d6$+JAu4%J?2N}|O1;sso$@OH*23wwDeKvFJchBpds2Ly^9fvWUODtdo_ zlX_>yB;icvh7|s1Hya^gC7a97we&u7DO^7^2?Mobs(j_xpJ8uy-xDjxSoi^==80eX z@~xhc(+Pi%qaPVbP)TXiHYLFd5*3_B%*f!sCwHdAZZKXYqU#;K*B{8{mqdBby?AHXQk~%^DQFPlgKf^N3}^WJcfI+gcaJ zJVoXa;}DpGuh3oQ8^oN}JOc4tZ+=+o6=fX_5|u#kU)q%g@gqucf^eWRxsAxAqFilW zH9xc{YOo6Zzwv+%4>h)E#n}X4RU%Vsr0x6KzUweja;89)~Y zmR(gImXZ}-nV;IvM}BW@8yaQYr3(vw63Ya6JJaydT3SfNr&{BlBuqLshLB0+V&>8T z%*+o6WrMR}DUERqQ%s4rfUMY4K^q|S*Nve!`_kT1K}hJh9FmHtW-)cFDlZA&UEtXb z=xS{i3eEE?S|#%JM9?|H4)IdKEp4Jd1I3%$?j~djh?FEA58?-6=?l*L2^Sz_kErm~ zEh2F4?~sCY*RLF$DH$w9b!}SSU_$`I!*>qf?_DD@R(-!l3;eRPk3;=MLw$o{CQ#Y$ zu;B|&K*Ky%fM`w74xkA?jtElmU3Bp2Z(l;-W$Q`bLJw=+G!3bH5~pqurkz>VrSo8Je+=poF00aS;xiG`b_0yqT`$DxLpP3 zfY5d#LDWP{el>hzgmJVF5ImPC?Nw;Rs<$gMXyck!%mS4lNfM-H#kfW>QH1@sMXJ{W zbW7As?{ZMtEB*=k}pr3;Q_8oq->-@J!#vyMP`myg19ZS6`rb zN!cDzdi(7!H!RT`qJ$4*nA!I~7;0fmOfgh)Mq0guZgWMz89qR}wT%Kwy$mFNPC$7& zKI|yv@oS48Q*^F&b|e*dWTs(P33PU(=`Rl3yYTQ|8w3K{^)MG|qyMO0-^c}+W2vzL zZ0ExJb0go*-4yU>lj5`5wci|@aHn@GizKw_EH z<4v6u6TYTzkX2hU`Bl_}KUKMfTcKi^fZ7#NPJ*atwhKod#$1D5v7#I6o7U5|JaoqG z5xmOW4uZk5+9Rv!_b0;7Gm{2_>?5=X@3q5N^%R~A(&cIK^=B#AswoIpTdXQRrDR5_ zw9qFE@bmKuiG%*`q;z~mgNQVu44f5PrL$N^DDIjQY=Ah?6JRIzi{E#ctIXje#z!lz z1#5u%waSxm(kgY{h*^{NV4TKiDG?896c7lf31AI9a9^rnf<*HKQJeUd`vslY5=crY z6VjBzKGZyncuvGD{RG5X1f)qIGL`Q;mQdxy;++N?W zKQQ-d6r)fSQMQGg?Cgv&%Cp~E)|-k8mt*&)WekV>&JiE%(^;&Bf1i0G8kAQ4jvuw; zNyW^qYsda5<}Cf&m;0fVK$_ZI-;1=}FL=YTl%9GJ1H?c6Nu*jYilUZ@4S_)ZJrCIT z^;e63$rhN$8O_=syAain+D+sUN=IXSG|C*vUvg4H8|ax%UrQ8EQB`u*3ya9IH}&SP_!@rPVpgVBpru0To1;9kO;MG{$&IVx;pLQaXjf6b3dK}oj8xC6eczHl zu{=nsVQN=lJ4JUNa9$pKZ+g%#T_H78;yAC2#o|Mi+yjl)h;4MTWr;XFs_kv%%ne`A za#Z!pQ0PD)P+mU-S+*sRH29x zW}sNIboeW0ws}@)8jI=#5^!(#H0p>{Ne)5@=+8m!yxoKs3d$>_J6zUDXK4G1kgf2+ zC5EoNOf%8lhCV>VaTs^>oMyMj9OILkvN7yP<;JvjwCmlvsoU9++d*fs#nk3&zUvaM zR!DoEmILqcYar$l8Z8gVv+&=^Bz^Z^rj*yfeOC7FWp^ zqA{V@q$AvrM5^6XD7H+9-#gq^xZ=${jiGik6~vB~SP40x-|lG8m&`&Xkp5was(Ib< z0EGe!gI7Ip2D=jG|4X3?dhsvR(RQ^fKN|oI+H*iO?$>0WXYQW*98tZAEAEWkvDIPV zw1l(})505 z=dKN*8pxf|QXX$9fpI7eo;Q^y{8y}?Ka0gu^VvOVlx{)1L-wBvf5j29zDlO5-bAAh zW@?FD!W(9sFtGk8P(^>fcAu;|`2yv_JTsQ7y=auT)0gtrCN;;_!x5Ge9-DyFECpi3 zJr9002idAp`DdG)sW5^Vwpn2Bqu$BJ(1e{4Bp8k|of>z?@7h`appH!<`fpk5^kxRe z2K5$Dml|RA6eDzU8>^Bk+zib3E7?Sz>lvFBpx|i;vZqcbM(&#oEcIX z1Ah)iUT@sAbKz1){zC2f5(h10((W-o6ulf1`n(z(NGLm`-L4FL^*HDhTBIY$#ftX$ zhY4B5`~dSYjNOOyt}ZC4WE_QZh8v0O(}Rp4IrpT%YuWLnw=W}Z@iovNElW#&`|5iw zoAe8}pY7yb5&}v^TeZdtfhTHNQRP!qp7;&=~K4U$SJ5EY#s z=w?~5Jv;TzlI(0-6vsW#T{e~qB)rxOJiNqTVm!I{uybiRb-Lp&xtvJXop1|$_MHF~ z&Pe)jv7L$YXX@|BmzS8-=DP7@tJ!LgDB$*_4bFUBB0jWmyLqfjxPtb=BQM2g#;ZU- zp}lu7g8lV;1Sx>|RS|&b2FW#8=2)+j0`;;|d<})2;6FX zW=MjXFvkOhXSuKftI>C?(X>nekQDi_B*NT<4Px41WSV<=dvfZ2_1y+4>;|K5O;GZW z>QX{uJ(vb6b{Q36gR?1JUl`|O%#kw0#(U*a|Jpa7DzK_p-VuqKve?3kFQJ>}h{1BO z-$+K9k$>lz@~3C1CXvEQLil86W&ArLe$j5r4)C@qa|Df_-kf-Ocy6Ju^=segtLbDI z1d(lWKA5mv#NG+NB{hp!)mcLl+tDc!GkyYswVonBC1!JN*|Wx$a^bf~TRDJHAzJcK zoXq2HFl*PKk+>|f>7V+b?~7dwsQ5XlpSO}Rte(F{>Z^E$5?Lg5Akz0Mhqr#_QZ%^h z5{JxrkQtZ==?VHNAB`Reo$}JeXhHfeC59ZN3d8x=0O)AzH#Hz_8GhDxr&kQBLdM4pUI$R?F%ZV2UX+DUAveAm zjI5Xb$Hh?RWyk!=Wr9)vFV&#zIwS>zqaP@AKxkut_E~8zu!k{_#wPfCw>RtTNNiFPPO19z)b#*DzDkf? zJKJ@U`-7yzCMhXhWdeh=AiDySF~j+vL8*v&=t$QA@&y1Z;TI4S{g|7S#N5O)wNk9pm&O7zm z#-ad|Mn_UnT3WWJ6V0kvo}I+SqhCu@J51Aq)xOjJ{{E#ttu!H?gDW+7Itt7<8QjjiBMCqYD@2$w?7QTp~%YO$x#D7?8$XlgY7cQLfjC5 zuoB$q!N7uCbqOlDWhpH#h#hc~d-61Kd>;fG|X8H*w=Sb7=$vPgCS1Oq-LwL` zN#^s3b4gSJeaV9IrAC!sn`D#j&(#-hGEdT~%=Yv3s)>S^X!6$z+g^`+MZ%7lQJOM- z$btAjz4-RZHIuMLamPRkG|R}2D)~9a)%y2hY-x7cmu%oY>T9mrlf2gB?5F|iUISm7 zKy`cX+fRL_)3^9nd2^Uk)5-kZbd-n)OYjv16I0*8`fpQ;AnX$-vp~Q?1-7saPLcdMSk9uwX!uNAM|C*Y6u?~?@Z3K7 zN&0kpJ%Pc=On95#_XmU2sYH`9%m7-hQ1-vw{9kp^Ts_&}AdcY{Vp=6+8*3Hq zW^wcTJ*`Q}8zLHx)4&KP-y?R-CwjFASlECMGN1KC++2xI51&<=W5G`dH;-hQBHw0Q zVC?}sQOf_Sd?MRKN2bMp{wiHYn`^Z`n_6O04!O=g_{J3k#+=kxj8Cw2XAk*Je zcem!{Y}xfnFH8u$^U&hRb-N&y7sSNs0?}fJ?(kZN{Fal0&IF)9cKijA8r!SQQ6A*+ zz8TsHgym5)GVC-XO%U_6FC=Rb5sMY%lm_5M&Et?$G>H0h&HQBQ+(-c9cz)fj$E%pA z??|({X8J52~3jF8b2_DGu?WhRHw7cwg+7 zKG0T*>+NNu`3`vkwD)0E3l$nf`nV)edCaeSNS}$}HWg|J!2p6K1wz zFH0t#@wd`1VkdWZ48JY?%_nN?art1b1Z{?NWL-QP3Q>HED>nUMXK2M0NzWq4X_-(L3{?FzhCgOsS+Zh zZUrYk1Tiq6AnZ@CM=9@r&-zcx2R&oI7LTquXh{}*a~0k_FAuazN(mJTBu}qRmK~-6 z+MQOo7t=Zx&*~+;+74ChRG&SzKG<&2^{q)X2_(q;!?~(cmY#h(cyiI)+_+sh`oNOU zf+7%HVi}loO;d$hIk-h_J%YJBcNO=~$f0K_cG%nNkdE<4(=VQ&-+E{K+g0L8$QiD@ZAqNFn5KE%BAn803 zQ70@{w=pK2UE!82nBXjiCE95n$>sgazJz%){?0OHS%&>6=L|WD54gtGR>s8Es~7 zMc%arrg3Ku@8^c>O6ug zX?4z}Agu}$Wmy|?UMtM;8DIWP~ zM$(#4h{;q!!&x`#^*ilEDNRIHTp?g&xp_92IB54~yMDViKI}LxyNRG@hLmsZCUYV1 z_|uTvPH%+n-!IyGxDZ3+*5^vzmeKiWr0iCa#ALe5d?*g<@qc8LK$&hp;jMxp6TgOR zLl<9+CGROw|8p3OqN-w9AAat#*yCf07)3KCQN1CLqD5X*O(~Buy;^SyWBM{6S$eCQ zJ6i;2+TxT1a}*1M&B2Ej_c%Jd%bXMQG$JY*P4Hou!60MT(-iTX)bqCfq3~!;NDD=~ zE`jT+bYj^RmOOIU8ARoBbX?8IBjCVKF_q5+{&`YDP1)R3<4EIG($*hC+naczt4Yef z?hs5^7>tm?A8igxo>4-XkHj)dPd%;aeOTYurk57v1LRdFtWKs}tWLVP=AP?t$amUX zQ^?vssL9>Z46Bvny~L;Ormt2#`QkVmPUXH(m>QOvY7cG}qM!^l-u>-~)37Wps`?y! z5}XxP)1VZ=H|UU8EefX9NtCO`LrEp{B!$wAlArpMrPGPPetm`FJJ+3Q0O%UlkjQ3* zAYRZtD&|_>J(3`Tk0OKtuHR3+#ixwMolQ%wh$z^_CRO74`#WO`)CJ$RyH7?WpPERx zOiVVW{!M?qnkjXK1U}~{;fKQi)YtiefBfFO-I@RB89Ts8b}=^55)WRMwsIFg{yWA3 z7D}Nufi@S_mEVu6hi?a;2|iAvZc8Khic3szsr)-TOD}*@f|@@2AQIxO?-(~Ug7XH~ ztq*q5xC=VPZf0Z`e!nK19y8dJ`N_B+H>0b*U_Rfr}Ri_;2Z)#dW01m7p3>B~R z8as#xV!OnX-uYR8a>YI;Cf0gmN!WgYrkY&(h6SnL!(xsp`CV{OYxcXu=3-)`gmqvjAE?u1UDg7TaMc;x){uHAU2JNG71X;;V2+cefMuGb` z>~6a5*nphg07x&bzk(5*qTE*k=fTz#X>JzJ9o`D=MO(ojfV*bw-+zkBd*fsDr21Os zSbP%>FF;0|WDOno3OFm&F_w-i0>t*gzA>iEH^%~f;8spIQe*(BTuRBa?qK6r9ajlS zQ4uNSQrk0UDC1uUf6)sEq7{^9012s^djy1=!TG?oC57>N%FrrZEqv)HGaYGAJ1k`y zZ5J-Gcu|WS@ikFg`^c6meVeqlGww;f^eu*FTXkvV3PzOZ`Jz4jFpJ0Bny;yQcK#`S zwUtTb^FP%}NihSR6Y(?ktEoX{+<;(_zDSgE{>K#~4nrRd$mPsIC!&`P(dYv(_8 znX0zb4$sB-BR3y99pcrMo&K}vkS>1B^YwWawkl`R8@7z72zQIBQQeUoKL}pMUmzgC zvcpfo@iKgQ2xC;*9_IIq))eRo^Y{`@>a{ZBIrA}S?sDwCBx?(MX_Qv_M8~QH1?WrO zj+pBej%tpw{U>lQ;qM^>zEaliwL}vmvxeOzz`}G2XqF^Q%N+*Sa5n50{aAFoA6`nj zn8k9+l z8q5$I^(+j6;sfJ|W<}|TA}$(vXn|%bwG_c&vv6R_qA*1#{XVtq?bQxUyE5z$dIj#-5HLi(O?z+9a-2LKC1kQbVk(x)9>CHLa#;PO!kAy^v?8 z>4Dkxyz*d^dU%xGn##|*(%-@2eY<~GU@hzpxxk^zd4}*>ReRFU=yXlin-A=0?#O(UbS4PTZT~aau_odVY6*_ z)i7?sy^7Jz>$`>X#o!^($;_c5D%>qQ8 zO{6hxZ8Y$TuYOljMT?_-67yzIG25mAv|YzFPU4ohVA#h^p==fC8aap68+^v6<{I1X zNs-74=}@n-VC7$9cAzmXGLUN+_pa`aqry{15l?Xg1t5`w%uPMOYei=)lXyzZZ+-#F z8a+XDF^tJU)SL{ENX*x@PwxJdN>C{Wxr85BPs!AuUjNJUj?Q_@=;d1M!GKA+Bz(A# z@h>_ytH(@s2s=J4zeSS0kdg3^5XeEGxp2O9-r$pi*G-&qQj7RXa-7VLZIQ<_{`S<$ ztc_?&%Xo_XvS3Vv3~>^uaM=%wIpQMj0d*1IOgiS~*#-5JZ1`;Tk<6hGWC~eUnbfpS z1PMihLk$jKg!;7ASI*w?BE915Rj}1OQ13% z%6opnIA3kf1z4bf@A8;}2w*rT4&vhlZs;HliD_Nd)u=ml#T>i%!O$F8UU8|R!=h~s zk^OPd8#Z(?qJHC9f~o;^D~o*MmQqhOMjn4u1Kc(BjSM-)9{LN8E~r#T>PNrWkQ=vQ z6G`$}QBi`A+G5(UPQ z7*(*NYR#nC{P~N}%|qTxWQ4`|q5iZVJ5@n~cHF<-92i&HT8hX5jmJNw^k0PFXn?(Sc#JC8gr!L2=F^PMDDSBf2etr2(4wwAn=PFo$r=cw{3$vqpp* zziNNEU+ZC?W5^kKl^`y;yp$*01~WsWT^^TPfX*9`ka}Oc?2s*>hJRzfW1`Pw=M>w> zSwi+S+@&(9Z}qEL&smnOz=UJ7>SH~`Foyu%jsNXOv9gl_b|t0?bKqx=Fap8dF!!zFzZvbtI-Zz3I37?^db|A;IPo|b{ z9Yr>DE2iQXAWPXmxMN9p5fuju{hI~RRI8RX4ZQ)| zCGV$=Y}-`SQA2^R5$@eZ@wkNNCyaKKZ69QyY|PO~N^)n+Fm8@b=y+bSbi)4@Fis9@ z!x9cvga=@j)v~-(PbOBD7ywU?MT)J^vD&k4Kk&6i-@c3ggEkiUUBKmayhiZ>EtIpF z6zU&s(~%sf`Q{+)hL91_pEo>Vq;$qM;%&Kgvu!dBhmF%@r@)8L+vMNVpo9y>t{s zunmVNA>(Y2!%d)(UXVZ__qQHY74nH=cdr6BJ}!lUhHrpC zJSCGE;sC}5TKw~!$HPQ+ieNTz$#$WPJ^1imt)SUW;nDGDo91~jiy8i;{#)otiDNK| z1hzu}(99NElSJuMT>GI?!t1#}ZY18L7-xglg}%(OEW)1sdt9svT~$$z=pjZRLTJuU zAEIAblC&c3MfN>cZKo=Fhzn~qxR5ue4pR3Y+@LteI1}5Gyb~XTil0xV+_s$)X>Cq*jp=0YI5fd`!X_3E>-?Il)c2 z=rKFlB#TCgEnpw*nQYK$z03xjQW!GHz~XDU;&z3H+sBP-_|s{Vz(-A^s&tpLGc|~m zALOW`nb(FoxW*)NG*HyrXfl$zh#yQpI*!~-QU%>mGw07ybkwCYXpPM#nT=~j)jyg< zGQcJ9%dfx|n>M@ga~Wn7v|a|n=5EXI@BO&00gI+1RN@~%k4(khm~~Wq(QVH;09-?r za}4U&B4XhQ0)FquYKi0jKojca`yS*D&t-$hYJ$HgOHitO|B+s~&|@b{bm5~%(3rh% z6{ZFNtSkmG8zZ$+m<++A6*e)*_6JZb(SR++=%(mt+#NxYppz1z0igY?)Y++s@=E?6 z*x=Vjs{+|IOiL;bf_biE^!+t;I2}~cSilR$IfevyNzqEn*y`E} zBe+w)uZ3ko;+}M8@&RJK{+1ReE-?1irS#q{3m9(LbF98m!lNjF$7jkN^-hp2;WMn0#h=2^dbzP8@44Ej4y zi;yZD!4QVSo?Nbf#xMY;xwWo#kSk6Hq!&`u?#~EeDby5y%O;FqVqt=g2GMm4x&8(@!#=n2=49j0#S7r5Fg3|+Q(K8K*csnqAu&h2(+ zf{>Gj`E3Rtg-2SRzPeqBl7?@E2_$S0C}9zG?8Ft#E)nB)lB78#u|Q#M77M-x+1LsYOdR;gNZ2(HrsA-y6QKF45QSQqWySlq z2iQIgN%^y5l5Qdn1n={t%(pgfS$!WhVKT~3tRIO_2q2hsOiRamlUZtz$7vJIAUMFj zV=h(P>}BhJi0IU0)a2iF_|HbYM6;=QRY#~l+0#U$SjYp;DxnzQtbcth-&&t^48fno z^Z#Q+bT6^Ay-hkJY>G%CVGG+kAeV4*<68IG*z=cZ7b-WApu?VPF8&jRB@ze;a?^2w zwUwIdGJOBQdr}H69?!wpyjkp)dPcSN+}C9hMr=+h9@AvYXnjA=SOVZ^7wSmW=yjHTp(~=t+!{Ev*Sj!KqG^ph0-oCuqpG6j+cCe+;fKMg~oy)kH!1 zV6{dTeiO%?=LrMqo8@B$4Aq2^*>J6Gb9b{UNwE1A_YZ`R_IH_puH;+d+7$I*KhczV>Qj6My{5ys1bM4;awu|Y0;W6u4-&j4gSpY@$3{I5Sck`hly5V>-}Ct&9LO2DeUQz zQ+9+=S7b<#gpSmE@v~&6<}A^g4CQwl{dEdj%?flUIWaxrF8`B6Nah7PF)168M98m> z9lwLy6en~ev0G2#lPU;~=HZ5L>n!RK)I4=3wC5S=Kc?Xk`18C|{z=Hs%NIL>`HpK9 zFs#AD%N59hjXTzQdu45m__UO`YRuyIxUqpLPFiUqtC_?`yJckbKHB12u}&V={5FCu z>8I&H8jU;>2$a2=0UXerIQ6UOFI1y+qw-1N+PzXO+|;F}^-G1-T;S81VBgr{1((dx z)h~bUeH0>rNqL#R!ut)@M-v84BS1q#6NS#jqCN+83-bN4GBQJ;ZR^Ko`zGd&Gn(%xNxzMT-3K&(#gYBaCi97cGN`{J$;Exwkbod? zD^?Hr9gby1(y=Q(p%;<{ zC9*S#>coCTZl2N}lOUf|maY(i5^Qheh)P!3bK3m;&I6hh}^ePY$@h$ zH3eJL%4x_5C*rKa*<^&fZSPDlihGd+F8eJVS@xJfJmf3OU9otisF)0z*blsmd^u zlgz$=KVE=M1W0UeQEj0gg3bv$4EmYcjFP%A>7VIW;zb(AZ7UK5dJ3{O=H00#59GV} z%pOH5=+6P{7K{^4QlZJ}(@R3v7ij;m`}c%WPzFZO->y#Zxe|RenXiq=P|`?WrIyGx z)3*~+)4j_ocd>|fs73i5ko88??ROM}!C*WNcHWw&H&nUHMsU{{ewlSwBE{@&`}q7aLxw$*oP0 zrrAg5Z>JQDj=?@#d_(n;Yl=J9uX7*H_c*YEh`zYYL9t`=jBIpo98XF}c8F`R^nol8 zCQ!gTnZ-oz@zo`u21xEow@7#ck|=)so$2r2pG!@+;Dk!fGUBSGmF)yAJu4PTEnTJL zaHON;RDxT-$in4=M!;Q7KV1>^O{~T~rCWmBVa4@$s2pxk?dLreDDWRxPD_C;GzK6G z8-rOW_oatV`HlAEJrwI(V27I8DN#og4J@Weq19O|NQR##R#EB(s4*UWaiCz` z2@QE-{PnQAeh^CIGL5Vv;t__jy16#wg4MyGPP{PFrgRF{sEv57cD}49&aW~(8t)O7 zDBgax6oYj&Ih{M8pDYXCLI^Q>Q0VPwIs73&dH-4jC%9Vlv}nN_!H1C24I@|*OrRUU zJ&=M-P@V7}n|C2>pE93`v;Te0n`h}*wh(|u&l7K%2!JyV%%o$%1i5AiW^Du0>qDY7 z67?j=k)xh!a9h5E(b=grvhyUJ@&7(zZp#B9QiF@NWVkBse|!$=fQmnCC}y2{c@Dun z_4-h4enze@fEw*xWXK-{KTfVJu>d2my8xv>^=}@1McNmpwwizd=nq82Kvjn$bNr1g zJ8%><#@?lrL~-R;SY$l$X~HFFe44iY?-{QD7g1HpVh%A|&~up}EXO*?fqY@Rh?^Y~ zbD)6s9nhP6LNmMJK{d;0$YX&K2spNRC=z!E74c36n9mkLy~&cA#Oh{n79GarWSIr+ z#~nQmBRrCM9X-ihqAfu#>n5;qw*;zdI?T!%_{%&Pv_?q{x$upCE7#D8M>~d20oh0_ zmA1{~RGFW|1D6ouM-Q=~RVVUtgXe{lz=pH^C&kt-|C$LbIA_fWs8L^cK1*^Qzq#vA`7p;ZS2RpbZ$%NUDjFL1*psmaI}UpNcMPt zbk59}ZnU3#V&fcQj)0ll`UVlRpjFbPjV5qS(C*oC=`+oTL)yhpVm?@ym^JDsOd6$k zR0GocHu$7LQgBc1jn39AR zo{BCPhy9r)3u}i8D37+_v&C&D zRYh7j#ojffX!9O4^Vq2qrKsw+{n^* zK(4>j_iJm+ylO9F`v_U*x2qDD7%Wo{mXTrrYrZI+X8ROxU#z7$fVy|&-e{>Zrw|g} zYLiXZWgfDKu$kTbHci$0(ut%bSDS)6Kr{vH7$TiI`Ctb$MjPZBYB)o9{#1nsL>dH| z)fR(nZI;e`6Z)xPj87rOPR9nVgEVcT8uH>y+{ZRz$;g(M+c_aYFKP;bGNHsjqCK)V zg$jPl4c9E^8N9b!cLlnamH>W{1&@H?)Q5YNs6qb#M7Qxf*Af}2X=^U%M&yBz2zSlT zfW-*I(biG(ZmTb_#>&0ymw>XM4+l;nJA~;gOJK%RL#2mAD&tWGQTZt-c zv@P={9#Vngr6_r8&)4!f$rKO61aL=Sn`=CJ$Y5%+s?d)-h8r$Mj!!>J+a_u?D}%|Z z6*=Rp?-oK;-jklh@tna!j7^Il)vp3Q^wmp`eLkg8xvy>m3G&go-ru7UWC=8aK{!() z^vY1Yvru&1zIdSwECjQ$PtZP`LZrI0Q!Ov?ih8qTh^< zkRWRal zmkTW&T-<$s7m@!_B_v8-ulL@nR$9EF}hay@~Qvk8p5p!oR;SVP_6; zITSoMBEC?Q>6e!a8u?>kwueBA{Vx%lRNO=rjk+!K$E)#1aAo5}>=Z@3pm50Xu_{I@ zd$1~{;E#NCPj=!f^J6HwkR43gbRyxvPfY(Q_}mligT84{JJ>TPL51wU-_@E zA(1$SRxTji})H(HzPylu**&hx5^ewjHI9hQ@uEjGh)4NGx$#taLC7i z%l*^!NX`t;no+=|Q{+@> z87{J#4hC!>w&oeRcPQsK|G#(=SY2z!y{@$dgf}H)PU8~C!kWZ^kHM|^briuuj%0v9 zW+dvH8-wC5;?!R4Y>HNoLeDQO&=6roSv<)FMTQ8r-Tg6;ycJ)GWi;c|hK$g67Q<@C zO=Zrs=}ew%ynF$mgQ?!Cjh!I33|X&>e;T%jfFK4NNZ% zx$WXU`iPdLsQMqQnedY&ie3}EnvhnPEqd;l++*n%2-786^tzercl>vyj_ky`Pfok_ zcT%*m_>{Iwlo|XfFiz%r=h;G6mqjV*3hitsa?F#B-N2g@+AP40x^lBAU*EupIrU<;*uu)__WL5tq z92ML~CtIEK)4<~wqBlV}feffqK(lpr{8R{OSDrZ>Wd>WPuq zW|;z#!O3gePqKZgTLovE>zDM+eR3$h=tY z1q!h$pW&X$?mfS1dy^N8avFJv07RQEJ~eufONENv2V2Rfo(d%)N2_tc>5;%Ni+25i z+TIfb;x5zlC---DH5FW8e4ucqEnJY>KoPGJ-MLnvMxniakkv8;%)uthm`38YcijQt zkiS0oH_p1)?;4A@NpM4$ccnM&;UIN}p9c*lbp~F60*U1dl^M{-=F9uFxlpS??Ys~X z1EuE)UDl7yQlFpDMy$JZR8j1GxRs22D3xoPLo3Smo+PAop=#>akF)+Ih^_Rq`9`ju z4E~BCf=;~GPuik9i9CjTIkt8d#(qsQy_*=$b zVw=VbGX0PiEQt~cs$XNAockrA^9`q>PF!CKoGfUkIWb`sS)7F+hIFi>nqQf5gMEX{ zGUD6cf7b4t8C5?ye6WE|&thJ9J<8x6-@rp|*~da#DNKE(I$h`gV$_PT41SG=xxn20;Gl!v{ zml%4emAU!fEUQnABiV!@+_@y|!_5{mZ2KYZbgg@D-vJOF4&b#qkggrLm@508BL~uIx1gka^ge8>m&wt5+Pj&6H zz+N9j#&Q4?P|7h8mKCl$eq9Qn!7q1)$J;O9qx!ecr0uVMBy*f%)t-+Ry^nD4O)TCg zh6TNZApv?qqTvXkzXlDV9-ZH!7IoW4_D3LOwh*wP|6q;m$fPWk;FEh+0D|82=I@Nx z0Xv==aY@qA-MaSph$AyxXMV6!LY7#PN*1u7M1PjFY9!iOI#^EI*-BfzoeH%zpCKm4 zTbf;Ej*@b6b=+BE$wslwu+_0O<%Ko<{VBD%gk*Au-ima2V;8sWSt9p$ke$oGm%G21EoNc?9PM-}-3?2*y6# zQaoWcs;1sPN?en*3;Z%FCiDQ4UpPsi4c(x_Eb|3SiI!?n*FrAv;oFWoa8yN6FHeV= z4EWn{7QEE6t>C+_W8+d+O>XP86CL}Kd-!;c?3;`6)LG77 zr@pa?rnD9^EcT*`#ZSvz9Sd`n;}Aygu$0`$?`k!FahE{r8z=pB8i~yH%k3-tQ6+aX z^49Rl8EJSIsvqMkmrq;grW8jnm4u#!F^enba*F%-enaAYT*eed6hT=GLPGfBNr5L$ zg{-5*olR^L{5c@|E(L)*Oq`F{_o-ed%B{Y3*}{wvjH`z^T!5kZc8RsECyJsFl`J>N zp7=WI{kzx(lZftut)!ER5J>8u$tXitF@pS2!71KDZ)7g1bDW zn$Dhe@BVGPEXoUQ;doBgx|8utCZ9Z%XkzWo;@5ZZ@sK(K{pB4SbqF3gU=NiXq;)4+ zoF1|VL3|9M-=q$bzrhBM>Q@@N`&6)6b&!kBbRD6RgLoJd4g8YIb28oPYg^ZcAAoLu zQP@)xbWE>R7n? z^8|7?7ES_qlM;q~aTt?0$}+ZGOlDgb8F#){)(G}$wn*|~y*D~>_Jy-n&gF*IZ7kkT zwdX%}^_`3L=Cw1-nTm5OcxZ?Nbm*GjzbC`#M11&V5WG<&G!t+UBO75v8B4m*z(UDX zrpqo9au7Cqu`M%hSgtTycVJJm>w4Q_nQ~3*B#*9f_{)E1ic^i)&?8n!-a7taH2Ni5 z_kx>tXLADXPGFW{e`VejLxfokY$8?9_TmsbA7a6gpLh7NCCyi&|+$0;Wnx#xI5Kqpe za!uCv$}`)KP@Yq0qW()VA!aV=2$cyr=+^4MN-x*?1t;68=r$%u4qWwLlzH&;Wd4>ZYR%SSb#4c4b2%(?${M%=>5{Y~wCfI)MjV zV7X`_c}jqeE0BGNaeKoLc?7os?dj`Fa^N5g31E#Mj})v?Sf65aHwGsecVvrMXy(BG z%1+>Ug$DhCS98gMkt|%lr=)H&i4Ae(2I&HvU1=mw#8}|gZ)lUd{+f)ea=VDys&i{E z*ONCddgzvl(|`Q9r{K$JXet&oB#2}G5OHZ*Bg1bYxwFA^iiGBXsHj*_I|DDM4aM?& zdw8~99g0v4s&#j;k!p7G0ZP>yH8v9%+a_ z=Q_DzG!##%xe57@d7*3TwR!vcl4|;fxxH$hZ;sUePVJ#GAqT10#JUGw1l&R`!m=Xye7mQy-AI?$CfQD@g?Ol zgWN}`WDpWhDFvV}%%xeNd-Xp8tOK^nPszlS;}XYn8Ll)wv4B=APXE5Qk8bD ze7T520Fp96UP9EJW#US6HG zb;1ahOu}*ivC&`yys!l{{_g&=eB&4vFH4A1Gl4HWr(26XJjgDc&~+qRd;v@06NzXy zK2r&&d|h>S{V&V?4L_DqTik%hOR!tZ4Vs!mWzl#B`ZPc+E7%BregxWrauElWYZhpe z-?z5RcFHDMCcefECErb7hSP+z$!4t3wLWW4elBXby5Cv;GCXWo0!y+Ix_Y;>o6uz3 z{nLq!MUoezH;oa$q{|KSjg73wgqdoc^n=G}*rt_O+IEiC!<|`(2j2c&ZvV&R>A0}V zy;sXI>DQv!m%q>oyr=t(Ex60LAx<{Svp-G$%h=5Y_fW|}ZGAJ)J#mFSUt=LB4Abw% z#&UQ}muvOrjO_QKVTPKWbM$vAi^_S}aucOWUW_^5RDRyjz_=U|wF0$3jU6$cWWs(yejJ=XS@u7;8ck8@rs*{y24$#jD$yWkL^HRXp{8T%`E=ZRai!ckh%X zGzS=c#%!mVOQzetu_89Ll7PI&8>#DQv?ZbJQ*qz~gdCzn_nrEr&`HMfRhn6b{YYP5AtC}eFqvxOS zdg?C7zf3&hV|%nG58}~2(UEV^^!WS9u7>!e9H|CL(9g!~w;{H}2Wu7aXmytk_7+{X zRyQrdZ|p1V&fCzyc$Z`O>*iLao#djsPIE}sHTKco%kTv!O>b#?F7GeymTTo4e{s3s zMpub3myPPXZL_AlERZrW4wrTL@+G&FHkXH#(2_pn2^Vj-rLJv!NIv1|;Yd<+ctUgQ zp-6Z)Jiburi)IlZh%oV|yrU{PczTb7%GA&%g9| zNY}bMwxQDHgPRPOZ^TrLP}56-jUXdbau7=)>D+`^(i_+wAIXB4A>KiYN0aNL-$))F zl5Po5FIN^3Jyiu!djlZrmka>+x2jp{7jU!=_?^0nIiFEI-M>|$Iq~x9YdPT z8OO;$N(FJLkaj}-!t?nfJr3WFD_i4P8s>K0OK^|UO5{t;ZxN`)K!2A})urA=wBOs@ z$}QVvLzk_Gyws8o0lF#9Iu0*Q_Dg*`0xk~fQbHzDDmju4QClIX4`dWG0y^V_hslNS zi1G+XBbwCP#>f1lCzUM+)wdv*qxnZ3v9CTJSFRDO8pN+`4T)k(1v#@{fsYngzYvc` zFLvc4;vtnBNe_u!UUDX-hT-cVrJYcVHMwGq;HCDhnBmYVsHY`_k4zU(5;&zysW~HJv8}n8-~^jX{$HWK=xj9wF~7 z$qjuw%Ej2{kYfaywWz_Yv|F4e=PlR_z8Cwrd^`^O667Ax(#X79-wheVXN1(i^JvM2 zg(i-%et=gV#jbp4D^q*A$R#zRY=9F25v2Jnb%w7xW#E|n2uT(0dT}Csuls&0?15Gb~=Eo!DZ}kq*QWl5VaK&!xpj3V@Mbi zYikqo3~C=qhaBKbW)h8lX3tqe7R%8!=R?8c9EZ2fU5cIEPN6~9cDEzpqY8B%;g+6kIC2Hwcp zzYQiM=@g$3wH4w-c}b``4%#10E?Pusfl8X(^bp5$@$iXM-)`B9eO$ud5iyJRln#@2 z1`SynC^sDfxWx2aw!mzXtmD{!yJr#deZ?8E^(GKw>DU}?c+6rm% zIK~NgywB*Z!XlPygvptV#h0{bv|5IQG-MejCsZmq$hkpq5s>dbvh4x8a)0zTdnlqJ zWsp80O_DXmou)Ew^Os$D%R%Zu>f`we(5d?AGxDxP{$*uY1pNvVXSsI6gwY{cDe4g#$aQXw<&jTDbk zmlttgyFMkbZZj!0ZR;IQ_bl3(=C?eC))kvgqytmNZF8gXZYUp!{s5L2AvI-C)K(fs zQMDGBNC&1=${9Sc{Ed`BI@{P8^1Ip2TTR^Wg4U$20yQ8O;+=}>ZJvg+bko(p)n;79 zVSj$|j86gW=TEtAk75C71gK(%!+M|(B6fy#j8NOjg3V(jrQS9^=2Ywm^;`Nb;iI5; z4z;;mxf(VKX_4;o z=aQEoJ%GhM;(?SgDRYBh3gR$8knIFb+-Wn3Cx7YpB!4dXyYQ@}rtyAJJ)HvN%w9Y> zwMuwD412wi#T}yEXie8`LZf2~viOt%6{7V?8>EwSg8&sNq}mE;rJgi#r}a@k#^x>t zabhWN31y_n7^MZdHk@C_*yqlz&xN%87WNE@e%zTbM;ZKj$l7L^%e|u3*cvFlzN+|aqAjUB4xCL-4$n& zh-D+hLn`n>q8Lc2pxO#?;0!oY0uw2t2B@~);xJ&HTT<*}o(kauX4d}+PNW!k#8i(kWEr*7rlw>k53oK8 zWC}X(GU_eSddndCfreJf=pL8#_aW`#=w~2S5lpe9)HJ6Iuv=0pjUy8|@O^>Ih^>rO zF-iB^PZ*|kY6-#mM9N5d%G_XTE96*Wha*P6ip`)PiALO%nx?i=9W-E|)H1hXzm#pM zBFZ|HS&oRpCPLdd$BZuAsvb7xdjg7B*cor>ErxeVTUid@MJz( z?-km_ou;-@r|y`XNU7u?=LS(*A%0%zaCTnWj3aX1WyhUL-=iRHWNa)Prjn3x5?Ly{?tbcY1q5lBbk z_byHUKI9k<(+c*HRNttW8KYeA2hN98ez#Dqw3e#{aqEPZ>3Nb+219Blk#5%#Dy_ zO&KXpQCn&4q?ou<`AIMJe=9zt_`+t7h=+PA;K*quvJoG^xERU3pc^o>sTTdUAl(}(x!G8+jEu>Eq2S{unIh7P&BP+&g4-YVEcuP zd5BM1J0VS+vuNNARiTL`WoijK8qN%*#ql*_EmJ~t86C?Ne`&`W!7OWxy_nx+?3cBM zEX3o4_=WvZ)((-8oFQ+d`gVyG82&@7%M*&ofR#Kuq$z?=N{2l zj9Dyoi(=>!bbi11GrE`SR_w~h6-z{Ulmk-B4jH|hhvFCJ6tu1b&yV$cJv<4Ubau_T_6f86h)_xjuK1^x_(#hJ$S z&tXo)i)iP63M@6GR1nP_DHTN1koYJ3aH5^yUVOqFm^g|i_2X*mr*NuRu|@8p+ebO> zNUqEg!+(j-;%Opjx_qp(-`>u<5>G|14?@v+MF_HqJM1lGVRH};CMGzypxT;@ffiAa zRmEv1_?9tYLoxIiy}!bi-gb&jvH9DvjUf4gboQR*|5YEqoeRVl-vlR%JkKV}*29#m z%CDifwiCr_NxY3;`uwGzS*bAN6};4f4OvEo$OQX$(ka+#7k?as?gHs{6Vnqpq|mL?h3gO;qs`hp<)J_c8uRL)9c%Q=Fo#B=mrjI&zIX$OU@ zS}a76%T^lI)(*ksiu|ctx7+8(W}#1kBy3W~8KQ--sU z?N7Gz1ErMG9@tX_Fi}ti(LSDgDk%%tj0dT)i+>K0fElGX(vaydnX{v6TICi`o}H1B z14h&pXrIU;W?|xF#A-vmZVv?%Ekz987^zGY$+xi=G$!fxrY|-);6Rnk+?oG!VoOL( zg{YBhDiUtQVL*{RO%8zl*&}n?EessR7vY7OxevT^S=)P40J6n~+N% zFHg12;j{mG(fx|kOJ+)41hC=xle9ak*M{cRia4<9*NdQLgn9hpq3W_9rCeG0W6J%U zz|~1w+VXT{)b@!q0I_x~FQ|q%Jt}JE<51cl=}a5M*Z?dB42m6AF}o!+V=#0V=(A}7 zt%w0fkHj4~d?Qcc#>{3aPHv$3__C#{%dJ$tUC!^$?q+hxrR*gYhI!^9kvY%_o=O(f z>N15{wK~=}c~l3q%-HPUPI% z@bGn;bo`X%-_eims;H-jiMKq}lIpUxqGI1&JHFe~{nL7OXhJ-ia9KgspK`PqYM)46 zg3_{zh1wCs-Uq5==GcJPcwqTaufQ|yNOMRXZ9*{Cv_~3%FG{lJbo1C_iKcSPf-?0x zA=K&l+SJ!nFKJ;&WDXdib%j>7(A$bx9f{kKggV)w6FK54@vb!#d?auaUBkh{J z>FwwaLrtqp7*$e0tAJ8h>0dOOsdDsSO#lXlmsA*r+*{|@Uo_2x?Vo$-G=5{69To{{ zDF^%3BMmrH&#p~YelAIawLT{dYB^GE1dTY>ZG6#SzGM+CC2j653`4e8D+&)`^s37S z7m3UlaG^e4Fye1l@9?RA@!Y>&AB%Y1l9Y)(87v*Cb#**Zi+J|7G}|v`FUdTz*Z_(| zZfOsi{7Z7L+5gYBtLx8?!!~{GQsIF(_FcO3lTM`m2=NxXBo(!a=i!I)y?gu|g;MEL zHiG30RWYM0b1uUo{whaH%8INW%jS_$r88|1pGX7BiHsu_K{du`754AQ4joDREeUqD zF?~{+98XlOD}XyDs1iaLqrD~!!cGgSFgjA}x9sLgwmKns(x8a@;x<&@=Pu@<3*#v{ zq;(~6q`IIA!;oB7Gpa;ZSPSiWG?QQAS*oE%uxTaU#2*ciMQ!Bu5mQhxh8 z!F@N_Pkj4jQ^(fZ>wg>j?$pM2+c^1p6_xCM$dYymw*8inYa6$QR5nHBE&Z#}x}w|C z+p(llCM1)+D@@z;c`Np{Y`m~Rqg8%x+2os7|7;3(+N!^Ya*oc%E$Q_AW(VH`+$cIj z*Co|4ImDSo@`O=*vLV=x&Y7ll4IYniOU8CL=9GHuKxgoVNS>rFt!IfwjEclEyfKq} znG4tS7C^sX6hFg3gPXtFasFy{;WfkeNrDgMd2Q(xX@I1TMH(-v?p=|TC!~MTrnRm# zm+Dg-JAN(bZXNk5X_>$rXkgbHk|(v*@UPaDZU(zK(}?Xp!7QkSVaS@0d~{2db6Q)anZ_8AdJmN|1n6??2K}gHSMz${ z0(x1Ga)o*kY^v33PaZZHQUPB54X#))ATbvp<{3c32SLp{tj)Y{w4uWt&j3+rKj1rflkjY(z?* zL%O&gC8=q5=X4^)Lr#WyuBg%@4bYhBQYH-Ik>i}7sB%UcfY{qHHWz*-#*WdQ&}bEU zeVw+Uimp`-4k<(#xz^Sd9?~a_>Js2*hQ!g?RIxdCG}D2}k(Of!xlSBkGP1V70G3pC zNW=)UgZf4ONbhODYulxt@Wv?78}dJm1H1O5g>GHyqTdZx@r|HDsob`UEu(5V0gj@p zs1HfIfodDz|0@(U#->%ih~bVZh#!@b4OZI#_WXv@P{ga&)pNqq6+IP(bb>c4dfc+$ zI77cOb#GK++B|c5ii1@uvc084ShprjD5@>ZQBkpbz+7!v8ernt)sXEIi2;)miGhKd z3KAEIEK^2wH?N0u{W076@hEMgWW-V%v{BG?PMzcvGnfn~?CHSHj8|3}FTnHU>o z%o8~nQXO^KkS0f`baF6~)>|T+Wn*{Oj<062j$4hCN2s$ z6dw0c<)pDI>U-2kB&#q+PcJaGziv19Ka*$&UQlT=-{z9BF*xVX2N=n0HF9k=z2AO* zZ!hUl#9V@U4csy?BY1~P8Q2+Y8DsO*x<;1M)eghe@bU8K>2yfY7ISR5{UNZa;={+0dWVwaxBTbkT9%o#Zdu^m$9`8ciEg z2b*zZ`J&y{%H!=`9z`NE!CmgVbOZc&)yuLmBoka-*XE&If!{TOLtAyV-z$0=9vM}7 zq~xi7%O-8o4+^%!f`E8cuTNAJ8_?l%rHC#sA{0~)eu zjr0M(a}?>(=x8oOl@f`8ftr?0+ZT=QdBQ~4NRPZnw5~w|D&q9`2);f?!rS!HMF8Gd zDI=Swpq3L^#SDrVo?0bR`Yj6vbgCVp6Ulx^kCY6x8flIrl}H^ba}X!_`&$^o^!;4l zOFo~!a$X;Gx_fz?9)g+?Ma(Ep8)JBCT|JL} zMfI|X$5X`nmlr`b50&ou)EbG2A~S(jq}3^|dhw_)Z~Fr)`l4nBhSp7sxU>p}@ajwy zb^x|I`Iavl+&+=G2CR9tba)OQ9A36mBUOr1e+=1bWGW#8-V$kqa<7b|Gg6t*UzslF zWEC?u5}7B;87u(bvoe^y77}O{+QUKKW`zN2*`uL`Rj(jNS&Ibp^_atYYRGsA2>cj9BpS z(vI$F!{b=Cl&k#y;=qd+G2`>tvnl7@OzKd{-;Lc37CliHybQsl!6hwn%Rt1y`D8D! zc*&?UJM!l!6O`5!C=zKCUn*z#)B2O@>k0fWry=*WAwcQBm6Rv zQoI_@YnQ|{^>ytvT9F-R_S)nViGgucxzN3cW-*tVB}YT$FzQHJYKrIrPf!2|}$`|3XB1@_nGpIu{vPfhO_=;mlN8)}{-d<7{Pw9-YN!)PXS{UAb zygXX3K-YB}&ZX_rZ<&)LVp#Ljj+(Et_HIo>9Od-bQ$D*8UV@a=DMoK1rQYqxxK9%JEiurDgT{($8bs>$(`z+nm_gTa% zeE1^#(1^sj!yUlR>(cgDYcIE;zN9YX5UJFOe9PuoQMs3j7?{KH+d~-MzPzw%U4bH= zzGD0p-(Os%^8&Z)BW+iGczIw44L=${=23*Pry3FnR|DCZ7HJY11QWY&nW177CcIlP zn7w3SYF&XMkp`R|-e5@UknHGQ4OJMt0|=Ir4gRY(Y{<3?;A?Q?U27_VA-D3Rw)$c z*;jQh59z1lrq%+b0Sv6Jigv^VeX2hD#34@9lg&5M2Ju$UR_>$oTKTrcF(2>jLA*hemo=|3R zxfo+0{SBxvg@*=&g|Hi4Br*d(XJl+Pv(-p*@DH(X@?5%jd~|F!Qsvj5Kke>WQO%>P zZ4;7j_M3KdY}42+yyNj0PvdL^MO`Ek!}v=3c-aJ(_~g&D z*NW?~$3s&^J`TH(S3%(1k3D&Pph{-;$a};$0E?J~i5f%F+u^ES7F2D>BA!+H>A=dN z*yJ@dl?fl}tis4l{CPdxBTvGZV*?mkSD^gKoa5+`a$$H`dh$QB@Mdf6>DXnB#0>sE z-)X2D9_*gi$L{5|F&=3I{}#8uf9dH(s)t>*dy(wnBV$QVaY*&pP}8Fbgk@KKTp#)9 zX*okfE=g9Y%gu4CoNl!g3wo=bC#qzm))lZTH0yE<7Y_X&Sw^JfkYZmX&pBEP6TW>( z+=w!#t{e{E6Osc)@J#)MU;{c%5bxH{ZQj@?beOaKbNEtQq{>9$*wG_pB8RXFv=Gh) z9GI8C^AQX3$kW^jyDG-n{*L6QYTCY<^Y-|nh2wg>n>i&Dd8*&CATJTg)8%z-BQ51i z1}a_)jU4htY>z+doZ?BciIW^jYoz25PiGt^f4MBlurZa&x665Vl5d++v(#~mn;vCI zhF+%J6m@(o3s;xRKtP0*ATU z11EQsbY;FiQc?f?`sM6JYy$Z{9GUM z+QbfTf4rpPfh&dhIm)zAIZ|%b+@||2n;ctE>l*B077mz96ilO;(zk$}A(_CQDI+6? z=azW-x-cX%2l|AC0-DM#n;epF$64U@jGXq0a~ocyGNcnjcR$El#4DDs-3Pbpqx}`V zK8hE~9=lXeLwzdR^RJfdWl1)QIHfWq107+*Q*HC)ePYqKFnXjBOifpw`%6=${1We} zqI&b_a)tPq)`lhcqg~fP9jPutN(Ojs?p09DLmvmg-}1t?__tv+$A0AtFWKV9!Bkx^ zfYRGx4%Ab+V=WlaRvF%w^QtD}3Y6xxpFWQtJdoEwyFP~EYpDGSs(DTvfbO zRLRVa)VfX>R8C|SGYHWWqYlEDLnd+vI|f_*B2OwB9F46_zs2bTo0n8HIV7M<5zSbG zZze#i6PP>pD_S4z%2%sW$1MZ-SNoIYyc<40ez%-6hD7E-5wmcguuwqj8X9uTCV64P znCN0RB;T}~V+->jbgR>?2M5p|{7KB)!(SiGJ#;_p!coMBplh>!ec+J;(j0Zg04@Mw zQ0tM}Zdq{RyzuZM*~6!nE%iKMkl5(yV)l}>MoJE8U7eB&vNI$Tv4TG*ktcxxL! z5$Y;-yPVU|y%kpBVJOO)Dno5h=BcH$1N7af)DfAA>qq|eT(w4G2GVifO@WP{isw~I zs<}C`SK+ZMUmb$t;b?wZ*-E}`7h4w3*OqFe0dhFH;CeBw%@g|@UN+R0+rJRrZpSyk z0r=AA?P~0iN>&@KdZUQet4#Q^rS*sAqbwUXQ|SzEYkC}g-7dbmoL6=)x?Ew&D|R)! zNX^UC5%$+`gjzTE0+!Zx{WLJDs>SAre0jqy?`d=C-BC!32N~esFJT7ULKka z=;YVNk0W5-j;iOQcNXkk%E{5otg7 zPqo9oUC!AVRgs#d8@X-+YN-Q9jl>-_Yz|vm$)R2$DP_W_f!taZNb?PYp4tcblJpF= zJ|I5p7)_VZNwk)!E@RogEptYnGWojoiWMK>1%FFzyE*Y7k0|G)L6SP5>te58Y8pa(hzIseX89EJG(k>wz)Ry}CMagU$)O^UuTas_%;Obui@~M?7Da5ziWTS6^_%%)8{Mi_Ymw2Q3=iKa$WrJSHj1uX$=F(R=jA|dO zASK_;y&ez$!J|yvV->LF7|TYBbPEn*OIa+eRlaE9HYogh5q@<^nI1`Nu>V;&;a_;* zV5G>W+^RRnMsK}+zF5C(bZgJh>qQ-1ZrNmoK4~l)DN=9EE7rf>$xX`sMaf^yy+Omy zHKXDQqtEprUNWi;&+64sF*LR-u)|OB;`7yuWJG6RimR)4=U@5v`jC26ydDP9e<61@ zMPGJhtD0)SH$TNIZp26fwm%J=$KN-l*WbT%eLNmTJkQeVg~f}YW`ud*Ke#|AvaX&_ z)U?WkL6Vsx(txdX6B@e#3}TF}OUmxn4-5{)iDoZZnAiz0T7`=+=WJV^jw4;Mrpho+ zK}~f`7=&m!G0!Wvt7!IGP=AhM5Tc?=M*dAtloKps1~CRha-dHbg$qO(iR`G{8e9B_ zm%DgLkDd%#B+>w7?vjP9{~TID{K^!ZX@ph`!nanJpk_olkyXr~&e$7ZjJd0yF6RVh zwXTGv+ypMD>Cx3lrex+YKsnGl62m*H^hg63r^m~$2^U|vFB~_}Vk$Xc0Ja^d(vcmb zthMnSy8f^I-+8gG&S&-q;)NJl@Ok(;y{>V(z? z;oN|7f+d!vLY{H1L*q4ocY z0h$iEWn?RkN0Gy^peBTr$O!{BhGatPO6|gP&8V$LrU0%`Sn^a4`Od&9xBAWBpg9CJ zBMPF9$h69232icTiN+j1vJ8jTHPV0x>BJVP*O|w(rh3cBHh|H%?ujZLiNPX_&NSv3 zX~Zv5`5f8p)Va2GBaS{{Az)974yxcf8=@P?>zS7`0 zoBZ8rtI-y@Wh8%jdRvG7?<9{JEf35tR!X3*gr$1R$gi{cO;nLVoX9GD!ftK)Lett4 z=$cpgqQMO8?Jf0?DW5{wP!mEjk`L_6Q2ky4%8giM!l*g`?u9QQdDG~L$gu%hSE5DM zi8SQf<(wThgN=F%@M?WPSU*q`LKt{n1CH#~AeBHVLhUzcXD!0mc+k!;r+|gyi zAfFjt61;2-$$@@`%ps^5QAeZ!y{2-joG>OgRNfI&TuyU?tr?Q>N#_KH@GDYkOq6rd zpejJu#9TDhFIxBs;2sNXI91S~wv;1SBhxBDG5ey-Moqq$Z);s=^DAG>U$)y^Kbvw! zYrwI44#~`FM33}+fOW#4IfonKu_T6h7F4Y%Adb3hkz%fwbWamTX2!4~aX_G)&UY6k z7QMYlM(k3DON+L8%RnFbc#-VEBYY~VWTqg^!>d1lJH3bvPi}nTsD!zyAck~@p{C08 zJL{p^kyz7FGomm!hhR;0 zO!RZoprvI%7?0A-+V0&zm5SsE;h7a=4%mfdNm)y2?4GESky=;6HlV$wL*~JE9i%n& z5WflEZ8_okXVPbLTHAUESO?SZv|w9~f@xM8oYJ)m#!Bju=IG7C8!292sFIo80Ie&4 zzN4m90NmGrV*|Jee!~nQjK_MbZ4LLNoErQSzIbn{R z>Hs9bBjP>8D(J5h>by=G92cTi=+_YDY<5?C`*8lH-=9ayR9?ZO*53WYr&W zRaD7HEn-I26=>CnJ~rrNd^j|Xm8^o$Rwty}bm%P;d5Y&gP-SUGZem&_v1td7g7>oqJnTP8)RWkus5| z`mJ-)sJXjUJht@0l&0699;vniTwBjmBXraR7DkawwZkZ8%aQy(HC@i=46rRy@|2Cq zG3T|e;75V~96eGda!AF3r{jq#hSUn|>8G7k*y6jk#Y^^ThnI{k!ExFW#p|bENXcd(okTF7oe$ zZ|>7rG*FY)32Xx!b<_cA#q)q{B*qJej{cb77sPjGv*r07#z=*b$V|lfym28ZgQT0> zD(CGgcCXP^!(&47&3@5Dmd!CxrAJDJ_#Y40@a=uW11!SC=EF;ZCBhy@U+Itk7NB~k zgCR_uI+gl)H`2dtcN0W5uRZl;gN|iW3=Zi?U0NDnH2SBltJalW6*JPdiLcSog!I!q zuJZ9Rq({28Bx7rpBI-z{yL{VbvnOXyd#jmj8?dLPy_zVOSSlcY$ec3pH+9ED7#Nqw zLHuH(wq0tviPO{v*J(*v%4=)v?w8tU-?fGIR%0XiGo-J`SE`dTrIZcnV9}gH1~kU} z73OzW&aYnVZeo0wax2{w(%Ng|!K1OSPM7b7hmY3et2@K~9goexby8&A)4;x(JcM}| zP<7Gt#X86Tb=0`D?C#5c_hNU0@gDmhTA`jyB8!-XfpgU~QK5>V({zbUCB#*vg)eCG zQq=~~7(cBKp|Q|L7wGrbx8jo=%2>Rlo=*p!=YTQ)L{0z7gh7v11(M9{MvNHxX`Rx# z0!1Qoz=;2nbqDN?vqlhre=8Pai5i2;qFi;qzRk`oa@(i9op%8tS#g|PE??5)bf0q= zNX<>fk(!3)IU=!;m+aO*PekLRz6f46Rw#_AYei;lFis5CO@YW9u)sVh--^1JT*5ki zZ1zvfkA{d@venrTGY( zm$X$F_3T634h3>x1WYJxr%GzXX@{3o52B`x)vu2lc>y96(KZXr(nV9w zgD5%D&rH@(+liL~bHQBusX$~7nBbeZxNB(&jDSsvYb6uwB{Z0cEBiWPKF=B~&*v9y z`3GNI`%WXQ3}SjT*6l#1FeB5rf=0X)YFiwmek#(ATiS3n7F}tfSvoDp66C-wX(G{?n?tQ?Uh%!7DB zA3m0~!rv{)ee|KVvCU~vl#a>*280V21hS1Jo0ya}RpztBKd)^j3>n#<7SW*BMI;lB&Z{%sQ z$CX+hCDA#(PZRq9wbwqStHsKHp}F3vWejSbZwrm)!ah<<6KwvZskP66>Dbd~;u}?I zo*&kf`#DHtWhsHvq>EW<5qcxKm3fJ$EmV#9Nb{0eF(Q#e{WOwM(#Q)&fjL>rrhNJ{ zz}*#1*_*liN_wvFJXn!ED=Qf0@$ouX5owd)1N(RZYwmBtJW4I6)b?~yc6feRk(s6K z1XuB>v!=07<`wqmC9V54Hq=xac__dsc-0BUixtC@M|{v`X>gB{_fXrlY_g_Dg|r81 zqzP?9$PSEgvD?mCi_uWDykMcZpobQ&*Xm3fktUqNv)9t)qgRL}DSKO}Fk6jOQ_IrD ze5bacPnPdSNA;P;Orx9WG$WOH%Wj?n(OiTnkOcpoF!Z^nO8H`g*Mh7xrXH1K!5`eJ z+~CD9D9jd+Z`#dyEc1CJ>x{CkrjIY0JR^-Lj}pJP;BK#IDwbkwrWl>9X;&MOm810W zMO&U%uq{|fIQlSr(d6^p&)Y$Lf8nCZx=noM5aSiHi9wrU8|5?Ub6|nfe$hVbw}9A{ zdb>*|_DFDKJ3P>~OPG;q;)@n8sRrv6;_QJfjY}M!rME~UK1brzCvl476N6dWPUr#s zMVm*e^h~Ge<>A~8kBZ5h7(&?~HC)ml+J?wUWCa$6V4i~&S!t6fZ72SD_ClG5&;MY| z0t@=d|9Hu)7?H>lwJlxY|M)lSvew& zh{G@M;U#THB=XX@Ws6Jt>ABI}e4|Y|Gv1H0>QQ6kueXx*ne=T z&)AR*c{OHQuV$@_pM80Eaa7q7-z;oy+za#|mQ78?*HnMU&y~8n8O?oitS1WIr6CS@ zrU14nj7YAcb*;-5%~(LbIgjPi_OKCUKkw130!uU6Kkk_Bf#pV>tdd)}R`7WwA*qTQay za*21cyG!-Id%N4VFV}1FdyBPt{4D5l@9qcDeJkG_U$omd*Oiovg}l_Z0{iN&+jG%E zYco?I2S&hzd+j-J%gCvSl!#JWK7rG+q*O7K|mE!Fq)n%;YPw*x~$1r7j@focBDhn&z`hjZyH|q1DU< z*vYbZlu z%$>bzW;_|Dn2|^CIm}6J`esd)3B`!)f=!~dU6|zuWLNBHWnOGXH{3Fkb8SOpT_d*e zC4|c-)tmalz;}Orb+%mbMU(r#h+P9yfgBh@X}eTmCNlegg$kDDB{6L)sZo6;#w`o- zSx&cdFEL`42G=}R5g}h{;cmTQVsV?cwpr(G= z7AJDJz!v*S%lEN?*#~uQkyyw}7V;}36V<^ZYD^T_U=V~L?A zG$7E9b_-o|@|81IN>;gZR{!(WFkPss+I7DjoYvt<%^)AK+9bt`Uol;D5_HA)Jbh={ zc)p|I5HFt6Xqem)C2~i^rcVF5$@)D5d+`>dQO5ca_JY)G&79gugcU8%<&o`AS+9_8 zO}_hkX=uRQfaooUo&0t_$w4-J&&5mygyifGJ*iIBh6HzlBQRT8We|(W?-wDhs`JZq zgL(}nOC`Q-)6KW^27|=|rtusmnFLo`OcMZ?8XZY}z`@R%gm& zt`p&aR<}Pk@a~&L`kif)l-^09Km?3Q*YOtAh4bCb?Dsse@#mwhk-whJ@#%VcpYKj1 z=rN(-jw10~3RKZHieumy)@)lZDd{V5KbzH>G)j6SXCoN*>QSrawJ9Qpws{=(5njse z7zt*^HAn=$j4q2G!8S`XgmI}6a-n(hbHy>65UEk7ra5|v?&ihzO!Uw0*=dGIJJ{b# zdzd1AVI2C*1`;x5AS0mz|4rt17|NU z+VS2$pT2wZTP~6+$2q;u#Jj^CDOF0={V(F^Y?9<3`+~GK+@9xtGbigv;HaXf5Sl}G z7WkN?0-3_~CNGD=M(J!QBQ^$3bZ@3Yl)`0KgAL0LU?<}fms}iQ4&f@7@@)}<$lz&c zYaFO39qCyi@+mPmByuSoe8x;ttKZMifDh_w+7w<}Xd4I#sBN%4$h`Dip{Q^y%o8eh z|5CCFrg)Z|FnLI0lIXVg$k({Pj?DhOJltmbz6w55+e>RyD{V9+e; z6;n|FCv*l>tO?xFKl02@;cM#unt)s}xWhCwIlb$O`zCBzVgJLN$l{FbdEoVF;&oz8 zU})q)u@7EM~)s2 z&|arkrw2Ld-RR>RMlk$fkt{c~6_0;Z+i6aw#03v?yF3kO(8#K(^mj%wlK2AcR7LSY zA-!*LM|MGHUN{&F2Wc>TIjv$oNAmm7YSe`sWOY_2$K2^(av8L%SO4Z8_Kg0^a?+3L z2afYtydKQ_uI{A0cWIQVfO-a#rnCc-zz(bV7u^PUc)~t@#*s)ka4=~iM*G?U*z@dA zl{^qlo8*Jl;|lQA%e#F=lRHI7QHIKD8IWnkR^Cr%Jtm&ie?fF?zqD+1g#uE{JtjWU z>l~uNqm7nno-wlob|r_+_7tcvc1=iS;F6%umUOa74%uiu85smTOfM!WhT@pk5MtltErC~ghJQ^HKcj0k;onV6I4n9{ksv3vnEIO?_!#;(juXA2+5&EOD zIT^(iv*%7%{0qYT?%Z0;V0PsYVl5N1X8rC~pKogdQrWIzO}E*1)y@#MoUXVPV?G4f zWqSZrv;qGZUtr^LVf1-N+D4ka2E<@gTQKH#Y+q%_bkrAdxwz-Y%(d_Av3Q5kdZ3jd zkFCL)t1EMPJ}a}}bcmsAk?h6{9Y3aLnbp2VOv|0;A8(x2ATI7=k4eD-WCH(jkX;1p z?QS!%PqBdRRMhcc8#@AU1(wwATc_*kyo5~0V+8!Dgo1?>0Pr$K{+(xO(`87*leXzz zvAQ1<&~>ojnbgihPeKS1H^H6=7(uETXyNQGeDQ#>GQ}|>%HZBv`FVoj~0AL4udxiBau#ZIdL_k4oQ#2g<0*wqfnw8}un?FUfgD zUuoeJvWz7JV5Jmy30VB-%~Pe}Id|GBxNL=S;fLj1*6eS;2rN{z|&Y zq%11Y2qoCm99p%_pkRGmtl9G72cUHOM+=eSR4?jJL->MwKR;TL5icl}#|)~Z#dw`4 z2B6c}Pzso2u*(vLT%`D&F~|A5kw5*hE2-f?3p(^K#iBHNKCl}ZL^JK2_fh;FvyM8d zJ^$gvqdE=1{4rrTg}&7l4c!rk^q;|bCOMPHK56m#GZyx7536C`tc*t_Ymw!rcCC&p zEAwC50c$7OmXv4t!Y+2R%9wBERN!)YwYR|IUwg}O7-ze>r@lPdoPpcC@q+Pfv?Wf# z#_}2MJHwY6enSzScI(FQ3YrIJLNalOK)mgI`w{={#a*D`;4Hirl=*IsQ$!3W_KjF> z<_jZe;iQ2PI<+&^I37sHMRNZxzXg}YJ+Zm-#KLjxqBVq{)Bx0KA1|Mb@cUhiCXPA2 z`Ic``PV*Cv1V{SI7Wg}^a4~h2?TUbaQGhFeUp@exQe@E%Wx@UP!6{k&F_oPgM>6=~ zzG$$kc>xv!X&0{we=t0ipOXq4eA2|rTI$}aAr1W)>0n|asx}@FGCQj-ph)Y;5T z7Pb%PF5$q;Zyr)Opg zY7{jX-~I+=fFY9|WMx_PyN$)Ms|$3eorQ`uU~00?0s+iH#%ya}Q-EGP!1=RTKNik3 z502u(a2cn9o7utc>x6K;JNHic-8Q*)s<^^D6+rTYkM4crYT!mFoFHafC@A&r zLlVD^f#BhaR2Lw|5?wS-Sc zl($YU#3z#3Tm6!uY7q2XOQ*0gIiO$o)T7Mo4rl39lena_ZfwVK{jI&_Y^WH_p0dJ3 z$2$SI6u8}laIuFc{D+7|OJGSaVTrNQ(3wb9DGK>z=m!p#;Kl45qf@Ye(ye zpp4|(VF2ol0OIyfSxL`BXgPTsi+JPQ(_P@S@9Ln^8>dt;G;H4n7AQ8}2@y%W!;vI& zYcyxwiKy!Yf73-=8!{Po*XN3{%&R1oO^yMuWj)YQ(^-h9E<+n|iz&}*R>qJ?gWEZn z3`ce0_wQ8SH8vNq!Nph0%Ho4+W+?m$=4E4$X37Ye1o!oXXTBg<8z?1_HtZXT0hy0H zO^}dejuwxMP89}7oPO>S?YQi~<`w}dj_cn>^m<(}5H35CUkts9UWo3xUT@ZrqB~Mw zSLe;Wxe{com8(>WGa9x)7fB}#y8qOaD_g!7o;{QpGWjlczi7-}6`o^+23{4p8j+++ zN0(GgXM2i`tsw4*nHtBj32mNfl zS* zN1$ZY(A80X0}wGd_o`bPhy`N2-W7KV>9VK~0W6^|2H0+Kb1nKKU~v3sXcuEo;%YQW z5=|6(jj7^(I(|*qmjD?c^By!Qy%T#k}eb5W=;# z*p3bS)r&Ldyk#`@H4WB_RxjTUvDc$jf}%+PlO2xgeK_IbRbos)Q2qr5hd+Y+oKqB= zebnn|-FwaAmg0e4Y#4)8JND;DT9rzu&Da%sijzK@K*+9`Zp~lr`u63oBx^5~|IsGyo1 z#@nfch$5zbnS>)0z0ICuqs(NHT;j$7R(UoIU*aTK&-r$tEl`(bE%nVzW(99z>gnBU z0{YMHL%W;2BCCQ^5I*e#`p#@(#^QwSZzVBM z$H^SY<#zZ7@dYTqi^z!$ajJe27;}iU%kfV{9Eak-3qu>mfP1AcEJ!b)ydx>&P)c&y zzep7Xx9he>D`>Dwzg{aQddtxtv`nM;S(K0N7kw``$Y%+_3?(}fWaGS@)d*Hj`6nWFF}vq~x{kV1#VF2CZNh{tVp5B+ zmDkwFa2NGwkQ^EA(HFyC!{Gz_0qFCF7Jg~G1GEU!UgPl|M+D*N2RE$Y@Mkuyy>ryD z(nrlM1s=`jzEjcqg$=F(*d?8^Bs_lKeD**38RWEVtF%Txl&LA?JE+^YpS4qyR2*Hc z6_6*6oz1@gWrT^@^H&TLXnO=US~u>~2N?Wkw(hMhxUy?Q4xk;8xvhT$m;3% zcpjC#pFxS4+v%T_KhtaGm;GpMg5PC>G1sxXg7JX5(TPwd zY|jiX%-TtDQjv(Ig*FSj=rsOkdWCk`>y|GlxGWaKUOd<@I9tPgA;q} z{zxj;%aSoF60tOj{LrhY6B?wiKg+nIHUXXbC|&)H*r5b#o-$2F+}lf(Uv^LL<~FiN z?zhPGh>D1wBIKFEvWG|R=X)TAlBzH!)wmBx#k$>eRbK|KLXXb&&+PYl!f9$8MDP@s z7#23Dm`nve&K)(HG8Qwl!q>7T$9Q|9>!8h**p~O`FKm4-*h7U}qmWXz8dpx#iaGS` z#ntCE=&Ok40XZ-pt;sdRd#^)?+cl$>}?>{?62;#() zk{{e2tnE%(gNBFWLX_HwxmOM8N( zw87V64wL7^_HsfoWcZ`|7j#g1KC>#_t*Q7EFPyd%?( z!YN7;*Lj>q(zs=fl$i?$<8Y+Zc7A1WLtU*}k)E1pxrNsq`E7C6sYukJ$WkghG5kL= zWAz|V@Fqcw3GYY+NKW;wUs5U8mKduZG-S&T#zrGtEw!~qaju$pySSxX<0Hi%8y`R2 zaMd@|7>eO3M!yrg5*VGP=t5Zy1n>oTrjp|UC%Ft@*y(U6P(GoU&LFVDgB>nx#Q&*Y zy3h$4qiX0ADOt1}1&jvcyyf<#SKg% zsZ{F!U@uAWjJ{00=V!REv*57_Gn;aCtE_-@m+C$rB3{TM=^|A>BL5~UJW33uuVGu} z1$(0eHtzKUtgMexoLJt+VI{`wu88fyIILwq#twhQCu$;FX&w;Qb1qP+R+#|(h5Ddc z4E%m>bUisU(n3TaIQQtsSxS2{8wtq$>0hjT8me*7((bkLLdtx2gTX~Nv{;9#n2xH#Nwq0$DV9o?~+E0Kkoi!+BRB=Ci zN5$steqQTMit3h&*CmW+CFh)tbFuRD{kU)lyO!GUj00=Xk7QZ;P*&NY1&tO{vl&t+ z$g#sq5a29q+?K~ePSr5^3MfvaUNmZz_f0d3%%R!;P2=oo5BU%wQe~Ru7r+|9fCr~1 zmvOPk;KH6Se{s?q>i9Dk!Y=+xK}7D>d+zfKB-rE^e|X|^MdrNFv>zGdBo*&`&li&0 zx>h9CfSp=eaFRUbcy%J0G=Xq}{ftd;WQv3qkv?V-^dP}qm2Sj4wI0<5NO_f_Eza@s zPA}Qfr|cJ#m5f?kK8yFRjTE;mmQ8hhI34`wEw!_tw0AeYd~+WsNXVh7rHXdI*ILQbYILt z*nyEPMeJy7Z)r}_NH-%1;y%igPkZ2Yiz_s|py@T-h%)x6kQalO$zIiFn2rT0ZyJyc z_m=QYN;pD?81+HS?|MTWr2|=(d{h2fG^C7oyzh^n?aEOK|>_8mGBBlcy z^%;|w*ttBOBQcV`5T)7>fR z9kX;}?WD(GwQuf^$=M;xX@KL-^w9yJbzJ;2*ZYo$dT21tnjbJUBB^ z@tXW}9;*qY-=Yv#%Zks{0QaRnvXj6r=A6R`a9GLu%E<^_??Sn_rg&55H)b`u)^#tx z<$bI^z`VH{FnSWV505gX6qpoQ#2>dG`RxlRk5X?Q3LDC+uO%t<9emXQT>Jzf@g$o# zVVjSuUjU-E4}O|O+OCO)R?OHBE|AN>mpT2-OKkS zt(>RAVQvAO(Mj!%9%~Ds#R1qt7TO>OA`uIoE|Y~=vts=lbj@8X%+Xu}kDKtegM%t_ zHcTwj9EazM%d?xX0z>Nlrws6f%DbcFp|A$}^+dSqhaaz?!L%i|RKrV8gWm_IN3K>5 z!fhtTjBz+{6!+DcYFj9jqx3yl2<2 zB+%YvuJ%M;=YIo5EIPgNmnj%i$cu60KP>oGnZm*L{{k9>kHht2;r|rB)X;xn)G`MK zas3%@RD?oL?Y+%S4^Uq?Om&ut=SseT=DgSoh!GeMhKeE@J3by{cQOreIKDbiyQ-izxYt}(J~qGnw3Asy zrbv{62JE`Y!PTrw>*y%biho4~Y+5p4G{Z_}%mI$;OG6g^GDwCP#ab~Ou)yvwU_GSk zy&*P|>Cf~#xfZQZ-x{cz9@sNEW$DzQ74H+32?D)*d-H(!&>e((mH>t=X+OI255)j5 zc0|!IB6(_YlwjC$3lR5Z#xnwPwEs6K`Q=j;|AQ#6r#J3BEI*FrsyV7JtHN(wg(91X z;)N+B(k0l7oWLLjpeS>JHD`PI_k3^^9l!R|Z$n#6*+JGYX)5n)s-mWcd^NI*VtzmO zy!nrALq2kZ0%8X<+gYQ2-pz%G8qOtzRD6zhMxO$k$JQS1x!!bVi$F*5JPhywsm4+~ z{dAKvEeCWVB%R*J9&3g6cwPVsLtta-NrS~Ze{r?@K7CK+cl?^@MPkv5mh6j3z)u{8 zASM_=?HZ`XkNk3`ZZ?jHyu4j(;mDWC{zg3=;adgb&SDOBYYoB0sgCu2xaY>6aCI;C z_5@$GQUP5i4mns#*5*$|Ns;9Fj&^ZaEJ$mgjrzi{A=$k;hx*=J0t3F5^dgc1w5<@3 z;>A2K0e5-m^V?T(4o1yeL5odGc+~(w*v4uoZUrLGPf3fmtQfo3_5WfRGuEI`pyv5! zuD=?}k#s?H6OKPc)Z|RNzXLT$8|1-*`vd8rtOn=-06a37BEn+bDmY^c3w{IG$m8i@d-;*Jk`;~XPS19pH<+JDWH%$=M%{l}OV^UIz-+g%9-+&wbeL{It2*-?CtjB!Y-UYG$vJrvHdEc*W}4dFceUxBqZ_3xlJK|m@jKtWb^V_Y8B+cUfb;-4jB^0n zCPjSuxo+n#?IIE9cgDNu9jbb}{-x>=b_70<*}0j#R>(kR?7|~?P?{s)X(4+TR2f3Sc54dPlhn)wbqN$5 zU;WmBS-szb_vUqMa8fMb@+c?>CM2@HT0VpX4?JeS^dJT@3t-2c@M2EX{uu`>h%V#L zS+lfkMFM3I{%;0MrMp}F_j;QIJVzN~?W!-sULsT6P1Zzb!LUYtoCyv2BeS|hakDtA zrq@!`<#FG2eeUJn5>0%Aw2opaESbLY1>unVYf@fJ9Jl}$L}Qb5xKkx;mI>|p&5Qf_ zovxMY9Xx~4!+3s;P)q^{9BA>rk>qfP0CF#~MrJzsuh0(HB*|~Bso4v30Zon8}Es@@a z5zXgX5T`;33nI-#{)mm)zr7#K4)_d#=G4*y88F0Z0`0rI1b2qK7)200g9YIfFpRPk z2q`=VL!ZJIBrS!EiK$M5ov#E$?7jqv8m?|)S1rE8Ynga2 ze`xQ$=%*+1WeO1xPbEQqKf+t*kHE=TZ1cr5jBQ}tGAvZE;mYSX`($#APkJ8sVV|;Z zIN@L2K_r&2#WXV-9I2yza<8)Fbu7L2$AFt`NK)?Cd|6~>pA1;-ikoRnA zb%Fr)Il(Xa{WJMI~q?mmLc*d2uCu6Wir8!Vl#eP`U6g2n=nfAkYSuGYuY*uwQ zE?rHvIeg1(y#L1&?#QsGKB>vwz)QdUd2^)Gy966 zh%FO_&J)tVex(n@I{OfU+)TI^H4W$@Htna^uD+C3SDqrcP6ww!^#LeG@*J1U-KG$@ zl}$3lWi3do|ycm zhZir8c%U5|z3f92Ro2?(u`fDN(3Lp~NG>*Li@sjP3|ZwJ0LsK4$pywJI8^rk^ZV-*S5_i#gmC`pVQRtXP@GnYzsMpvWNLdgLu~Xg3T$#X)4jGq|lS*`4U%Yo@#?@qMEAKdN`Dr)3H_jsqIsbhi_x z#h9hk^gqe^y)7d6x;Cb2KtU61C>_L@I_f1DlagAYV7x0`{qPo%sz5@;noahdO0H;J zQ=Z2+g3-K669G_oH=j|4jqrL%8B=a8X(VGxNVPsmTDH3cfIOHXFEFYKp<&^7X{540 zYs4KkmC=X%y8ZwzYfK>P#wCg3Tr16luM7BxReMp@_5ZISZ&P7x2BwncKEIf-0HRO7 zJQ)kZQwvhXeiITO8g)Mfrluy6*!kzHaY8ot9UgXO{+UWp>IQJE3g9@>me|q~YX^&@ zA&I41VE#h4=GPjyrm&O?ho$p_4rG(o-O6NRv{Mc8j7=mgPoSjylz(nP~W z`BH3^Q5V2ly?4;3(=dNyD4l#j5r+HtM|t-2T2wd5;)01@nrjX5JaoJm*Gjx%z6MX~ zMu&feCJck!u2Rp)dCQGA+mgw2at>;k^)xgY)lC9(sBO4cEqFjoGIL}};3bXhg}eEW z9Q|}IpLm@oB1)Kcfu=J)5NIME4B)nMfzcWZBJ|q_V1?yoij8PtX~Nn8IO*|^j5{;# zr9^=A1msQ1AeoUiXL5WoKSi@z5i ziZb`cYtf6RRsks{^UMD-bdfVZD>9jH=hJkuj)!ff1e;W)rxM^S%|E$%3~)!fZ-C2` zr$J3YRF>P0Zs40v&VYyq{uOV5OLJAOgrbCcbis? zCbvP(0>I;qM%&>-H!q}=khYs%s$wt=Km}N2ygtbD`M%~6XFPhjNje*{Ioh?!zPPB` zUA`@)IVYEq%>tI$qFFlvZp^C&>zU@l&_0c){)JG({@iV1uNK`y!0^z7g*!hh&Ok3) zWDygp-Y+(AkCxLK$hgZ0v4g5RKGwR-Pv}0lv@Ik=0QOvm%g@#fUl8s;nB;mCTdAxq z*O-sg=9LtTI&MPmTdG?$A!ddVGtn~%Vc*({!Ui?*h3U%gJcm~K=>OU1;jcE3G zWkG{}FJZ=Dw}Y)yZhvtM*?w)8oaq8(nmymNNhE!JU5DzGKHTL@J`(^LHNX) zf3Qdj8j84s_YVu4D|%tMPVPyF$5J^hfA3XeC~`PdYd!geF)~_?QA>kL8?bi9(vOj8 z{B1ZYO3f{~zW=N>}ynI!cW|Y8gE)T~iFz+Y2g-FWiDqzA4f(xDK{WNZCqC2@C zCYnAQoSK9%<=I8`YWqu>9loOZIqY7 z*_K;8DjP^UM4PuB4@0{|`jVjZF+v5|@^0g?CDe8DY}N2TT)okYXJOd+W4fiiQ@Kam zjlvV5CwHd7HT{Y1`vfR`xXAQwT+-d9!0(5pM|w+9nJSIPqc3xbPP zn0nrs^g~~)UGEQKPN#s`x)a-IyC}vb7S6&)4K@pt5)#0@(!w6FoYHDH`g1Y1A$o6P ztdqw^{S(q3PM@pu&uGrp5@IHmYz>&+Z-&!2Fp|usKjp9vus*@R)u5)?g~~&l$>Ph8 zkH3pWlk(iK!vSwKOG&29s!+Slc;afz2lH9V6#6pe73b!<^a_&zCp_k1l;vSg`lcJ) zzu{h=G{^RQCSGli^8FIT_S1TjwvYvyfTv;&-!XR$n5l&B0UJb(0x=1pWwE!IIbZQvc6l~J@ z{4^?ZoMDSQ)u|s|t48k5L39u-C!MkKreJL7aPc>cxlN1V5e#Cue%R4O;o)L8!h=bh@?$gZU@Fn=hE~SfR%KlTk5~e=b6Ju_5m$Zk&w!an1hELJU|Rg1%A0@s z`t#Nu&SGmyRCn5yxW zh=6BaDQj9!06U#5IHf+dw(&_yBA;3pZtwIUt+_pk{KPv%TcBa)SbW6aFi$|Qm>nHL z(@0%cDSBIZ3elZ4!QOhD(A2RNuaT|d3M2Js8Lr%GxqHmLIO;I^@t@-Ns&dZMYws|- z>iqi3!loOUtbrft;#zVE7UcDM>WosPpgniD+6Sn>@tW^}r~BX!6_P2*p}bgl-6;MK z9~I9D@(qTSBDeqtg!?}swU4`>^6z30g>w`7D%Vx)#+$<&&wAXQ*myGyL;c4ph&DB) z?fPu82=N!&6={@M7Q_`uzOf3iY=gZVU;mwS@V;OC2}5O&Wg}Oi&Nrnk=HTgs z1j0Z;YyRTzwLbqL%v3ONJ?1|GS;oBAStJz}u)maIK<@*ilS&@4QlvxV3`=W>&;vp% zLEA>@!v??c?VWCDM5-A!qM&J(u0Dpz?SBgP0=N9Jm(vJQPM3r8a@sMf{);<-GVgYH z*|mkGD1t9DSx*=eKUfHr`WXG}hN7Ygq6&5WjJ(*wKAs*p-L(t+LF+BafS|-ONKa(R zLbcp~?sip?rp*vbeVxOm7?>lPn%)AX`4tNi5vJ9-iH=Q$3Yay+<-#ld$9o53$v9Yei?da9VI~I_2qLxMJ$ZU^2N@- z&$WkyBOTcHy0HT_=qv^13-lmUW}*@4B|eC)pbXyNo+b&i7gcqre%Py@T*PI;vERV= zcn?{d9BTn@Xg8frU{NlK;)2)@1u$lu)sknLlALprbDq(o;*fx-ro!<-rgGMwt9M#4 zES*zoA+Uvx0?{n~PZ!vr7Pd4|ZR0=BmgyK@gQ-Pr!sK{7t=pxdQM~i;`YD@oleJWQ z*yLY5)1LN!0_Q!*FGF+n90rqf3>qe-v@KTWd8cv_^E4G4G{Ee2VRFRkIH`$aF)=`viz0hN+n^X&Dk8UXN9Hq4Flr7sHDd#Vus+T4$2TdH?kzBU}A|{FLupq`; zpui3LqDM0JXm6ZHHrU8~m;eQZzGkvO1%>?f1C(Zo^Tl8r-K(X4K6u=>M+}F~NjcMt z+{2qJza$_&OO;lb@^R?4@dKjnH}+}2qS}?EbFa)K>NE;}pUfG#_=edCq|zYL_gm!( z{VroyB|yL1F@tD_6ZXKajVkD+X&sQU{LX+r0QB0!6y+tmZe2hfnT?%!hgymsVSml zItW?<7o@d8Q61Fw2OFDfNXQ%w`6If2LL=TRS&#ijg1J1A%2S8_d6Yy-Ga$BSc%|r5 zJq=Ut7{(KSt}jx$YFok0^g6MSSO{KuUBaA%a|RDHHF$Kdi73l953bL2nqUk+$ID1O zU^wz%d+Z|qjf(|1u1Stx{)}1m7j3+}#-H+qD;PmTQP?arxPti_Kz1pQmXcr!HXp>@ zjnn_rRb~VQtJ|~8DlQ@ZOUHs7gL&I7??nGFq@{%{aVB=-M=;lBcJP(xvC4QDduD0)**?A4~bNV_rtWo z1nd{C1~HErF>ew$r2R3)9j}*SQg%C8LZT)siUxnnhc{}FZHNV_uVwcHP^Yjlfp{@B zGqB%RF?=15+8`N3rZSML;1mPa9tap-Zu?@)PGi^1gv9D_kgybgNotrH4lSS&p(rg< z>cU~cA5ZO%_h^2wTua|ylO7%CvPA>d+sXid{Lyq(89qq8V*FPqjMD`#uH6 zsjOELxa<0^>z`I}ZceL1wstgQ4yz(1MkrMDP(0QJM2e6xc@=`il?E=$#@T06Q=5|l z6)3U$m8BUxl_GeftIrk5LvTk`Xtp0Vi3!50t$W{{o!-&MCq#V8pWzY{=5@8;AeW7U zI#8kh*M^pkYLy}0b%%bW<&Knxou5udrF>CmpC9Y9L*J}5)&&4{X$T#*3JY` z3H4~kQ3^7~bW@rMD?d}aQHT_uJARbP=+Eqxm{6H#%bKWBaARae zT%c*ryUFGLUZ5LY^S(Kl{F8bC)AGgJb)bbTIo+4L3A2rOs`8?sRSs>7UqX&fZkOB2-g#5W8!?V}hLWMQ zC$iFp=Rov!*6y*`}S&aA^7)Mt{xFG+-JCz>+E`oR=! zX_6-ki-jl|#?e;VmH%|@oM|TOGwwWuJN;#hXgY<7ShrL5%)tR_`NCLDz0VVEp~38j z;e3IXH_sw!fIyPs&zC!kRDsG)l4<753gdxfxZO+)jaRX=xjDK{P1x2RfE+p<?8OF(JwT@7BmOH@Uqu=5{A>=DUTS4^Hh{jSms-zi{aYtWyXGo|5u4PbY$#; zzMTt!zqDKWh58@#szb_D9$mcrm;e4Un*XKyluSprHKLf3vj@&XqO8Z`B+ilp)?oOz z7CaKL2+)EhcT>E)?u8?=kuw(B{NmIj;-4ExUz3itB2{i>>jlWTKxk!chW;e3%;bN z8~$TF+_xRv#)-S9_evz>0V|zxYqW$>rpTYWjwvr3TB9A{u#}tvvMT16s)tvl(@D*( z1_v~0tq+EP`eN)5-5}UdSGmmdl+M2Mfo7YE(Jy;r;isXQ*nof;<3lM9SFgW$70p-i z)=EYv$+2d48nF}vy$P;zG$Dr&8kDQ)i^vv^fAeM)`QRm~cnfwFzDheOk7DK2Tz;E? zR`RCXelee+Pc|He`5PF+u-iIzxOEEw-8%V#GaD0!T{I+%`6Pk*Tf+~c|C`p~s@Tctb;D z`_jCz*YQf!mr2d%s2dLO5JKr+C#;jL3-^rBTh2oI!3E`q;_#) zU%CA3)JLi71*~l02uEudF>c0=>v-_Qzzru|)A^reTdNzt$%c%_Rhh7{oSjlv%~o`f z!;fhQa^qHXUftw$jRDG>-OvxRR4Oq@dbEsSizUr9haSpo^FR!<^c~tqM&47!#pBrL zJ8G?h2?0DYle7+eJa0Q*qmO6g1zuCp)cj{LiP#c%7q$Uz(PZ3Co*7t{vD6eej6-^_ z{){V?<&U+=V}>UjeR*A0F^$G=rXNf9;R#V@+J(mx3qM>7R}oo!98ZiDCSL^cQ;)#YHj5ege%z+x4oq)-B`Q#s z*51f>*zSbMqpp{5;>=wDy&HRg*bnusslf9*iKCITa|LG}nc8kfUJEfBpN+|z#V1NV zD)v;-YjG}XW+5JzL6kugLB(R))Uf(dbs(bzEdH8OIgujD1`) z61dIp3umXxZ0!oOJQm=le0ChZn_R50A92RM4pT~uIVRG&I1`Z`D?rOYtzBnNU`pP^0Dqg_2yrjMhd^1CI&;@BUwK^PSVz}8 zBZkseCmW)d`R>q03U?}^grCGS&t0@8kFx2*YFJ2)@z4x5RjtXVr;+KR2Xi64prXml zClzkBHhkw3WsyQds#eMU{nyyOL|eYS{bAOh?Jq@g0_L7wQ#0sfsb8V{1MBI+YJ3!> z_6Xg9jvD=WEi-Em3?36s(#pCQxjJF0kN^H{dGJt<8oFG+&mBA|Jne{Lo#ZnaseV<*s57`f7fDO~*Z8 z({}AR>L5RVm20)&&S;(QjUDpn+aY_K?8uwrmK2dqXZonA?jauLZ=c|aaqjiwQiUjh z#G=qx$r%y48AO%|t0GYFWBH39(pimSH3}#aDO?;cmf9xO=Gxz~xjgj6oU6sgao16@ z-}$NHA*BRcHPPHIT;NwI&03?wg*>vawBw7UXZDaos_|XdtZk*bO0I;q50VkH$X3z{ zYl0x&>FSibm%{uZW%?uPzS_AEsdOBCt!%$dY|o<)#OKy=REp)(Rnqrt6C3k5RtFDO|`CWtlU;9DPOpfE=ES`6dKg)6+7LTxO zUXWUIl&@IWk;ZI!@W$x1VS(JmB9KNCPah_}N9(J18-BRm49d2(@W$^6C_bGGbufnPU>FK5{wp&d#t({5lkKmx;eOVO6 zQ%tRe1o0N_j|zcwm08~GPT9U=zeCJjCo-ea0xFIN0d8Aa?y zX<2gEcRYQq(X5tU>A`i1m6hwTuo(Bp(NhDfXms^AG3(g+`FvK;8BC7njhPz}@*6q>H5q;y$wfmzA#3WP7LOu6K5NAPu=$zV@OIylOXZ1Ij<{tKEvHz_k z(+?T9)hoOYE4{JOgRimtR&%V$axeETS$_1lxmgtbB?>=VkV8-Z(pTtMCDZue^ZV$= zPX`ntjiTJ!>AbeHjwwZKO1(noIXF^L$*>pjmg*uY2QNw`mD~HRIL4m}mCT~IrPTke z$~}|Ml(FzX9e}U6&j~MTuqw^wkUfo;WO{#dQ5JJ=4m_O+A4Pt~{d1PN?YL#RJr>Yj z-!wjgyo>S{Ru=4o#wQn1y(QJ#+Zr~cK!q5QA(6o8TMM}lWO>H5JbkJ4ieh%uavU*!FJsxbbT8=l zUvw6Y$M#)*NwZ;u;W+|W%Tw5Uq~R}kppf*Mf@{ShcI4P(u(iK#X*Avs)fZ*9-mOgtBOy; zq8Z64@hL&S-b593X)j2h3*$pDVC8AI>8+P*5h8;X@O!&3sT?^7KR(cyHLpam%C?TI ztj=Yd5+goo{1`WbKi-0sHYM65P0@2ei)6~ahxW-V4T?9!!cQS_2M})C6m|1=HNqMp z!8i(hTN#DJKZOG?u6_&qlHST!O~V}!vZM&I7+X{ zB*TZlW(U_2&1e0YhqqloO1)sZfwn*-#gYF^tTLAn$+z# zUA?8ZZyqv;XdjYB5HtL4;S}L*F3TpWC{#%9!{})Q6>?5uWfdcglXUCdAY{qnJVp$$ zREE-q53+MKtoTVI=m%gt5}!pJ%T`+OS)}GDeBA0G$P6?Cl|YHz7^S5eREW=R9^QgT zo>eaASy6xRpk2S0v;w zjG#h_P-4nB2>e+RTyn^mqBKmT)r+p+x3up?nwC06zs8-lQj7UGo~VY9LHJRFN)EA& zR@zFd7iF%44g7hGl2`ef|33J4*!$mq>3dmHTP})$CK-b3AEvIQ*1P>I=5w=rb4`!l z@@?um(hhd;6r%dnQjwCu(pE_2{*;E40j{-=3tGu0s<3}fIWZ3D%{8?pC@xGdAw|Bc zu(HzR)>Ef<*eEF^Ite3Cmeg!Yy{0x%4#>sWtm3ROrOFjl2tmrTg{6Nm^ ze?#E9ZmGFc190@Al0$~lN?U14Ue3KY3~ok94jB;6rPYhB&Ueb)xhMQd5AP-6PN$|%c*v3-0|DpE37+6qxeLwZrG z=Q#wl6U}e2pf|LPERQNMF3Nk5VR_!mOkz?KXv8;3`CF%daZ^d1AGKOsp0G zwKs@4+U4jw(NDdtq7x(ie1b^^OD-I4L&&mJssiT-%9K1!!%AC2V;@cdSXuvac(`200tZU5$Kp+KLonC4(_SlUYI4Z=ffNC8fV?~)!eoGLY_E|w}84ZAd> zjuLW#EP1^3eDi#=Wg`T&jMS!}sejXNWdyJOv(jOsUsDtY6l6bjN)tt4$g&5EN}m1~P9Nb4=_4qrp+#=(=kzHTn4*t0B`WkcLsc zA`@XUB~R0^(pzZfbZLu(*_1R*Y@1#$ss(-JLk1yaKb7Vj9z4QhEwvkNb5accmW5)R|-Oc(anDOVE?}S{6U9d*vB17mFR2MXt3_Odt z{gFoasJ|Zg^fc(mL79fGBE#9gsQu*8=u3K>HH`~i0UT1;yVK6$BHvt3M_G_Us52vl zNx=2tdCAHhoXvkECz+_J?yPgj`xdN{e z!j@fvO2O>{yp=R98XG@@W)@ed$dLR~l(wQe?8GoQ|DW6yZ|(bDRQ&`)5%9kDjsA_{ zA)e-+90@&}w|T{Vq^aGe)XOQz44@B7pUXzbn4)1JrL8ng&)eij^N;K8F*A=;&|KxO zb9kc7VzG~hWS|o2Q}bOv_dhR5IDrq%;;5R7h{+ln;ph zcAE3(Ra{I4_?M8OVIkbL=8=&yf|93=+cY#L=h+tUSFhX!nE~|2ym~pBry(VioNqDM zdJEPotchwk#c>?cKu*VtKNO4^9*-))95R%~$s;2r*vJu7$mkEbO+ya|YC)nX^>V)E z0UNcvFl0wcCI_ho!OlUB)Zq0372ui;DH+5}h{Ava$#DajnoU6u)VAqG<@Ud~>$D3d zEhqz4+DhqT3g#ir6R&MibSpfJzN~s|NXg^~e)^so3k9Eja2PfZv5sNL16g!~s6$h! zQ_y5cAu{EosJ%Q>&V73}QWLy#F51jTm}rVf@L zkLuZw=I~K}JR}1RKo95t@m)gHR5FAO>S^Nmq>-n{n93iPd@t#RlonLVAk`p#69l_J zu0s=eMd~gMW?QgeEqJ{`Ln@mZQZg8uJ$ehO%RtH`n~UTSono|lQLyvSm7;wYr~(+Q zQk}R%Mp^punuX+0&U_<<7(u0w-1Nf(qq0X1Vgy9pR-|MSt(Ciz8$Z)*s`pDqP7aXE zOIF}=ypTTGO@PX7v^HccaUf-YXol2ls=@&KW?45vGR5b*DQUqXBeaTY_>{}V&wGCd zPf(`hX=9q+X0FdPFymF4vm#}XTIEuB++N?#4nQ|zPc2NsKAql{jS!{qD75UkrQK=Y zJUmC@PkIQlInc+G)ps;CH$%!`xtI2>So9$^wTy~49W?!_d2m%T?%iKZ*-{lko#RQM zG-STSKj>utpYmiW#9IbTyM+8U?%s+>Mo4p!TxCjzRbtkqtuzG(puIuh@f_l}`wgIHxJ=KqabgYJ<$1)dy0DJ@MSRi+V-b+dBI+*xPMvEN!Le=Ar_0g5|tomq$PUMfqNq7gBOi#x%9i zdWAL79}OR*fj&BW2(n&aQ*Z!k&egMj2+1LXvh^NqzJSzBl(xF*BV}n{eflO>kIe{m zde(@@l1yPTf=yKEYLI6c0;?Bz4*~>uo;7&O6~?1Ug;%6xawx?%NJ;w? zrL}cRy{6u47Sg|e^P+!1bQw}NUNbD?pL*My>%o0$9*Y1Q;rB@3-JBUIJjLRJ!g3JIqxS1hHb(p6wp}FrtbrEDOGH4gbQq8#`C6gnllu4r) zr{K)STL2-(O&myd7!so)7-k+1&t)T)k)B2urEmkbAyWnONT1sK&YM%6nys;IiOUy*#P-fG+QSPH!+nQRXkD}3d%yr_z( z(dtEM>y&8gH5e_9w}&7zpbjj8*DA?x$M>}B--~!W&leW%deL}X=_{?Wk@_4&!t+0;M5^7(u0wo8%Csl(y1pbfO8OFv4(zds_*~ zA%lXSC#_!eGH1*t1z!#mU~}N_b}8LAd18Uf1FL<9_{L5@xYxf+{Q37^YUZ~U|7!VO zJdp2ie8<%9rFbBTx2KPIdlV$$e19*+1L^qly%Y~5@%HrIw?{!b{&*B55qtv}@b?gWVPxp59k0QZmSO@Zb=X9QM=spR~Nfo2Z6UfP)io zCk-4IOuS|IBI;o>a=Lz0!~MNcD7@eOyMJY=`3sqlDPxM#N?U2)mj3b(WCrjdlJKe^ zVcVC@BO_%v*CE$e`r$)|c$VemWEM4r1-62br$<`}86j#k{!~IW{GzB~5|#Zg8I))m zNF}5`r@aNOwh_;>(iHsu&;ILg7?bav8g7{qLUnm-=t(PZ$WjhVmZD) zLwV|mMT6C^LZ&>$NW)@eEoq9Z`^ums%cD>?DDwxJzk#iwA7>u~Y#O_fmeaefIE9rQ z1g)0^dz!Ij_c1uZAYjvYFANt^9z|jlX2821%$kI|R2jX?e@6CS#(4IKl zvV*YvJW%T}mMy*)5?fB9K`kT)a|^R|lpuF%2oN??#CKDx%|DwVa}P6in6v!+uJlh5TfKQD9_<+v{oQ_uIv@E9Hr0#Gs7?gx9)uwhBpwSa6g4bmeZu5IDlR<*Xu}4 zcp@^E(^{0fI(V4QJs>^5g>nq^?qngX@r@0G!mv|=AWVQ3Tb!A`x~~^9D9ejl>``VcHpNS`jl2#M1EQbGcL8|Hq7VId-{eZ@cRjt?U0jOIH7zWar*RFrSZ@^6+Vb z*M9EM*eiL4U?mNue^8>f{Ff_OPEpeU^_z0UV4}TBvCY18P9oD<0mK90-v~zLJX3zqCBG5rO!YHY&S`#$W$pOC-neGas)8<68HH} zB23eATF8}*lI2l&Ez1j-QTDR>giwR!G$~QsPQ(VO$@49u+|834q>HUY1mvE$UyDlZ zYRTN$G(|R~MHmeyyKf+-nEtE!YM+W2%cEHObodQYBk`#Rr6dXM3{KuZ-}bFw*Ms3B zIas|A79i8#k@uN`aIC(B!Ai1n#86UiGNwS>wSAfuTMDoZ(n+QX%CE0wIR%<4Ms1iH zhG+Or8GBcCZ$lhej$xv7$*(Ytw0ucHVk2y|*Gh|YE0mvWoHPO9V%kuiH#2%eTz(kD zZQLn6QBqDSM=UbM64=k2TeRWJwhX5+&28 zqa63vp+3~ySY2T$0Ru4@rYT5&Pv(lPLdwd}IW&2mi|YZFRBl>n!89WfhR;CTkMwX( zxf3py03U#C8MW_L$#;SXgmcOTYdLNM-kK{EuZ0d*2E8OFVXR1UOf#Ez(A9_1JwO~2 zB!ugT%JmD0z(dNI!q$!HEOe+@er7$TeT5%H%o|7(5Ta9@@Eqh&x1__I(KCdNAj&)_ z!X#q^(#@G`IzQOZ1jvcF3M*$o>s+O0WI)D5!zkQ0s|ZS8f|)~Y$jR3lt#JdaeqW|2 z#~|hYPr{lv(0vTJT59%ZSzbo-p;-dUllE?5q_aytT=v}Dcn$H|atflvru-UPReoVV z!0IgRu1gCQ%&nZvs*z@r?UX3LHOX%g6MmpUlB}G8x&911d{$j$R`~RdAA(O+OgW{C zj5X^?3MQ~TH6b=N17efoxhOwLAwSvgETslzi2F&)TZb~6zcFLF4d2uU^#sS3x%yBw z$`RUm#a9I=PX;6gh7H|kG2i(hV~h;CJU26!(9JMhN7TSx@fF#qV4Z_mHtOJ;hpw?9 zE$JCXHVC=C_}wNCjU3U>_t^&7Of7rsM?lwmH-|&(m?^bl{i!TJaB5GmE04_rhIDy$ zDv6T;JT^dk@1&F|F8aITUr7hC`&^y|(J-!y&(hd8P$CV@+=JhR3S%XG0zERbLRo&U zY4J%PrUMO-?#t4LX%*grP1i>ebSHQK?i3pgmXoaEP#))0+|L@U8&pg|^gatygT0&9 zp_?JyiWsqOD<$wjQn7iJur%4}TeY!?4j)w!Eg&Uz`GJk?q*tvR!?JI~6vS;wK1d^2 zGi9fOAOd!n!b_U+2+8%BK`w%0WpAfRQ($p)DHQ7&&ryyMrzC9}(AAPQh*-Xe^3+}M z!E*Y$geChm%F})JX>JseNjY#YNtb~+h2N-}PBCBwU z3XqoXBgR{iko%gr2Z!?Dd8FmI((()6E}n65{KK%p>i>ZV;GUG2UIW7~V%9ZsT8nb; z=vlB5)Eax`#z7x}>@GqjA86{bY^(I&4A;+Sg6Fib8s+2~NH}1KQT)utOF5Dbb0UMx z30T~^yVdYMd@kE^Ca_U*s348(ZplpCFU(=~@+2gd^yMgZOc(HgJSa1zya{nR#Y&Gb zNM|+3NxEU0Gziz3tZqUFNR&)r%AI-xP6;HbLE)?szX4m)^G3=>%r`{PJ0Pcum~1fe zEZJGKu-Cr(Be*_Pjq(WHlxHX69UWlXpqQkIY?t$IX@^}uH~LFhj!RLmoaC^{A?qv~ zDwFTL42Ao=WZUp4neYOHsTfHa6v;YSPO^hE#yyw(FlYJYifqVKXd6>_73H8k*(Bok zpbzyOPpH;V#^-6vAe3Y)h6c-N)?nRegy9lm6z%~l8KULUe6t7;H}s&F41x>#PE`q>8H7Zm~3oPPGUJw92WMl%&krGezn%} z^rm+z(2UkK;9#Fipq$2%w0c#(JcmySMm|}NZ7Syh?-~@(B`8@+b|cZQ_m&|!CVEfC ziF?H+H|f+ym0!m~x^~zIbF8F|a^Uchyu6I^!vyI0C`57(+-H(=`Y93`F#+Q@)9d0; z^G+d&d(hWxpZS;-l8_idlo#lr9N5;Q`~s1NN|P1@Bf&lh$9W?%{ke?F8PHCXrXXvS zS(TKFxD>)|{N`+ zGWTMEe7J5=um^h2-$6)Hg+XLfPOcf1=On8Aka<+rc84pFNv+BAvR3Z3v(GL{VeBs0 z_+C+-j8Cl{d?#k(PQ{@-8!5{viF6lXxh+X-J%Qibz|HfV#9OBZ`IRy0xEv`dmSXVi zlWzs9pnVGExRrXR(o)KCwEBV)z0XVH{h_%El%o_emeVeYC$&-CTFa>&JnzbLC&mCy zAe6-YXl-61x6X zRQIaH=k`)KeME3);;b*C=>m}DIEC8#aFGY4 zD~5D6%QKwTxg5PdObI>l9Xfw$dpHjmqa&*FV6d{ zT;@(JB36#?SBFLz$Skwtx6>(uU@t5W}H2A(UsLd} zt?sf&$OlOIF)QhO2Xy68*xCc`xkK4xVLyZ4lWv-Touub(A-OFmNaEI(*nJaZQryYP zWXU_A{3?8?xuFzPH`?B z*Nsi1AOP4WGf`2n7aZ`u0JFRn)xGNbQcfJ9b^@B%5xv z@(bTmoGpju`#-~=Hp+?6D6GGb{WX@yMd$8=yw4)>cBC(5d0cf~=ADBF?M89Gw)7{& z^4h40Zcyfvg|;GQ4r=s4q*Hn+G`z0npgtznj1uE@V>9ROBi29{*)r-+W_#uO?h@_< zPB3gPGdCW9tn^4rLDUF{=NvwQXj!=`31KC-N~h5lQcgh{fs~tfVuO-Jt~E6+kB~kG zkaTvRD_hd9g4JAkdD67fZU)y|3ZgO1Se{mmr34a2q->}h;XN@R7i)8>P_Ig3y@rof z6ap$=t%>nOu`|Vd5KBNgrD@q)jM~As3;VcLE=}1ZI^;K&)q#fUxVnl2Eywg02Zd~v zA2y+Kry^i=nsX3f`zuk>0>m?k%Beuj(w8wt;*Xe0m;DB_hAy(4#zvRJM`YNzSFxmc z*|n};8mG_YE((Lx_@ehFOTvc?mM3#fXlNk!uJBt>?yB4lm2z0?TS&NqZQB$^5` zK2H(sRv46?OGKs|zNu19HSIYZ0gRO6JKBqw`OA?$hI}0%P<)k%sm}6xzy~@kHKwbe z4gOQ>L|Wj`lpR{0gv8yaqde^WuaxCTTe>M6x`YcV&?n3iC3?X}wdf|FD%~ zTjmFmX4os%&B`e@v+=Jn>)yv6piN$qa4;vu%UIyRyrt(>Shn0KX(4kQrto@(EzP;J z?wTBcKww75Yjm`i$$*;!Guctf)m8&!8jWENL9&l*1ch>550am^cH0x+b_uw6ItnAyIOU6!KwZB80%tTQTDU zq}G5x5clwQcc2{iWY93P!X8>FaOkq?+VWn2`0-5dVqdd7BY&ysSvs*IyNYjBFb%bQ zD5sj_Uh}(PBakrnL4|3S$8%-PBq`0|84}v?UPv`CNk+J7)?WkI{P9oy@hHbCs3hty zZcHkt$}i1)pa;?WOd3{>5ws5YuBKM5S6PgKewr#+2RjEj{MA1En@Of}3RTQGl)D)W z*oN>*O97gly3f_N2p=Zs5URtp3mY38#gcW9VCxGRnpscTs{ueHNz7cHYLemx%nzHQ zQx5!Qq~{!9P6guYw#pEuh`I+8^5OQhPDtFpE6a2UwNXrpCk@s&u{;8ZP1cuLehmhu z%cIcqj79~ewdgbnxEhwiqC;f6)_ z4{Rirw%pA1vw=WCmX?C*UUebVkjk&E$|W&eo*Yp zlZ+3GF1|KcvOHcLd6{?86bNg45OKg{gu#np18{55V7XZw7EE&l{4m z8B#?aIu(*-IFsukhwm`=zWvNNDC8fpsSj17E(DKWg$k}w&DNv-a}|a72AL#jOL}Se zPyEW08cV@6105ha(Kb8Ly%#><={AeB%do~$Seeh^;>3aUxhg-$$xxc&Lg;gRb5=jR zdRK#b1>D_|#Ql|_FwLC6XgA)8k?pK#iU(ywpKI}rLXvH7mewso_v8c2C<9toPIcbO zK{|&i>Nb^=>qtw9B;7a85U;X4t~xI;`72PUlOz^KpHmMVJR8V4Qc%Mv+(e!OZAPe+ z@T$RAgXma8X(?H2SUGK_vn6dgz3ZPPgdf@0#>_MMn&sI{2xVO5!(JRKr+p6W>3(7xqMx%JtYHqljfoXRTEaCTVwR71rc<^kPg3{% zLY%my1DpPzKPcNXx5A^8CLC+>k^``i+pAGwijF6C!-gt zReLbqGqhnE2@4U&u9Dq5IZ4shq=k)` z1;d#SXwo*jcd&bP^;t5EKM6QdS-EA3tK+nO1TboAVxsuuA+AE!NYCfTBP!v~j|}fy zP`W1=-%X%dU!(KP?(Mp8q`COEd#Of2*CF=gw=FL$8SU_ZDCF>!i0<`ZFgC~SM{qL< z*-Fod;Pphx8=LyI;1g7PSxBpbzK0!F8O@h8NQR_4HXuYS!|Q!4s2f+#0QNT1W%zk*+Gh(86*+!nC|@h&BjCs;*O~-=(?9oX>j`iJTR4RDASZZ7=4eZCu!;$yI0)%Kyhe)$UsCU zkH&=Hj~A5+Cx+lNun424pxcIg$kNgRAlg_VlpA3d465l8i8)+%A1vo51$ zYmO>Z(Ej2PB-BL`UrYQ^g-6iD11N5S9|Vc{`Z5Mz6owMxpOgbgyuOG2pX!f@5IxDt z#3G`_iKAQdNI}+2<@8*d7I3;iS>s*tEmQ|g0x<4T1+kD8{y=MjTC^hNg+ z(H6xH?0+9%a3kSE71!K0IIjY-O_W=;4HV;IalXV;50qAgdz0WtrVx`nF^wgqkdvlo z-BYVRjb=7;B(P>?(U3c&L&m5E0g`eJB>@?EWE!lPX+s*wtwhXT9Bq~gF9*=iW-cg? zEVkK%a%s!N6$hLy;QXwe7hUO}MYV;8JkV5Y6W2f^Gb#;9NFLI*MY$pp8wzuVleay+ zs(w(9FwHE$nBAK$gHfYZsxS51* zp+pATU7WQ4kr4(NB7G4y5pfgTSWJg!CD2fd!jU)R*M+vVlS?mrnrWZ*>KM_pZRz} z=^60W=Td8CHgPVZ64^bad4nTZ*=d@nAzlYHT3XvM&A=2rsiLrt3m*0D=?}_H>INy! z#0ZO6Z83VwGP??rR7;MTl*4%yjZ+;OYQbqryDQ>Ki#HNh76SX%J{Q>&4|zs!5{O7lE=#sOD};(Ed=KfKjx+Y3 zlwi*yjD#7n9jtB6G=*5JxD!;Z^eqO_p0j&~Mr7hnu}7Hl>yYcBdx>ns{tGcdiix9~ z3dA)F)-AmmEM($pxS)tuHz_CIcm^j~t1|~;iG0n)12uenNVRp~cN?b$nsps7o zxvYSD&zZLfwF_j$>DV#&&I~0j#MK}|-;&BT5WY7zw&TTZEIIq#(^q3dwttnF-crGFsz z7)ZG0BX-Xp4)H#icSgdcB5ipg5jSDdS}-Pj%e;k@`SQcU9+(OP!rZ`SA*Op?$TW=| zI^TyWh6yot!8~ATpIEFQrPPkw8JFOR22r!F)bYncKq$Zlyx%f2u#te0>fp$IpA&8~UN62B5SveAav#s>h;~|$ijG=Tv8rUB#P2&=@tClVjH8_X@m*tO7hQjuONOmpRKw1H(Qw9+Kg z;5%DKmBEdKrB=-D=^)eEC`-Yur#BdHJy~lACLSd4=d?@PQAM5YR^=m^wJy@mX!HiU zU)(~BOLHzDx(FNUOPPmfNp=OsH8hQvzEPE3ws)@@luA{Uf_8TsT|sjjy`D3+1F>n& zl{bxUDa5W5k3%7uK7lRMxJl)dEj$h!T9~GmA`*(+kxbF&4t%8@n-Sj5A#N#LtWrEW z3V}E%t%YV1DQ*-afsPE_GpVAcFwNfQLF<2+5|%PBotwlpmwX{iuLq)Iq22pz*cgqa zW>rICGA^E=iP=3*D|MRFNLY)whR!s0PNvvqA>BL48|Mb?o(8vtJV0`kx3%TA&@CAu znK&xjEX9%CGwBP;vPFc#U0~ELY=x@v#`aj-(eako!Vvg&b3FZ*ri#@$Ytl@Wmc$}J zkH*rF2(t?_vXHRN;6Skz>6#_IEe5nX1jr)%BM@KkdBBCfPBeISEMsTh!zB>{Bd1dp<}%F(Q^A>Gs3)LC4W zkL-MA!y(&53u+K?XE82rdXZQj2;bVaa(-Fc+D#RdrPV$xrF&Z%%ZF?tEfpAcHztUq zF};FTJSR!~-NSx!K}VLnE{h-78pKkATgid#SRW(CiTkUT;M?`!sS6 zJBHbXZzaBR0&{{^%6c$4ElmO$HCT!yip#|YaX^$DDa_#!x$G;bu;`Yw6ptyj2&n=5 zXrV0BA-X4>ZLuJ8!P<7BQAkT10Nzs%^*MlXnm)uv4)h#mOzJqNu}u+2ViqPUTTYfL zL`wHshrwEtHk=tYq3l`YbXDi@>Ns!6k&*+qAQKSXPc5i#PvtK3Ak6N}vTgMW8T7JN+0;R>x$@I!Lv|tjXMoMUvgW)nX#2UxW_IsrYa+=j?&S~;~=&?2z=7sOuT(%rF z#0@ZZDFqE#c}E%gYvNodRbLhi(>(+wg9j%?iM@le>lFu{}mQCEWI7&$(O_SFWmhHIGM`0RWC}AOe8iZ!5nw;kS zstIAD(TaV0X7^04Q*K804%YvL%u|dZt|6xxZh(&%6%O1ZtxpN^kf#Vtb0S;s63yQm zNJK3N>@{E_4*)%gTMD36O?J9C|5RE}xv!0vt4 zg13Lzu+0OL#Y0vtmK$Esy@Vj`R#70Xfd!?(cmN)K)zc}d%y4Y>`g$stE_HdU($bK7 zMpm-0No){w_(8VM8}$3-DD(lLF_-`gskI}>(= zCLWY7?z)$>P>tXhX54Pwt2TkOoWxhgc929tVvZ|>s+23zJuhVr+yJ-oLemG|*BFUY z|9vrmpy`@POba{29(!ehFijjTq*iVUdI(cmgmFOk>MFL%Qd)#@X-cQXIaL%{nP4pK z5kMFfQjxe6Eh%+B7Pol^>t6O^+1AdXhHJnq#Wl18P^&`@Fs@*Hp28(s_Xo8!a%Ix_ z2i!Q=x`9uqOU&kx6gveaVD~%bEMtFU zjiHa+2ajds3E6B5W^@ZX@ zqYp&Gws4S0Da$R0!zv&06gXf)eDJN|&2PLF)_Q#pARJTGlPdWBmgrVc#C4hk=4e!g z9Wn7YAn%w1Oo+5GA1#-qe*zr_bgqxXL!bS`eg9AGB!SgkK0<0{wmrM2BFZ*12o7!3 z6AmAKr=}?mG$CE056hMu7AE>K!u3>6FXVcvBYA6Tgz8=$q*3^0RH*2th+WWui0(JQ zGXob2Q6bF4%fX;~tE3*t4(Hps^kHl>g-Zbpc)@}hmmsmv{oVj!%v#bKjoL-fxE_Mo zA=_O5otEk>e30utmpDlbV-afS!{01ps2b>=YU3uYE|G`093H27b7PrIIE$K$!K-tW z_p#Yv^}w`vciC_f0juYbf#uP<7dBDYm&G-6?cRo=1IXT(Oc*>}1J0mex1wRm4aoxvZg-;G&B~|L zyD|~dI~l0#+D;$K3=etEFo#OH=vBnRWGpSlfr>4;JO$nFMY6kyb`iKlPpLl3&yKR) z8T5=hWfx2z(YOu$&J_3W(94{e_fZvvjA8VD4&6(|vXTW0e1NcOQT?+rhH>e${nm;`QP90=nYAxMYJ%@67kdiZDqAkz zotxijX^OjH8s|e;d2;F5iB@U4ZF!spVV*rkxC{<6ANE*aT$(lzY4Lt8k`G&+K9q0+ROPSg-vVP?^*xoZ zt3z>B3rswmjbj%dZTSpHbslaLJg5$SQ3`O9F)GeEZ!P~Gl^8d?z#soH$(AdGdPRJY zag4Wf;hG}p68o)NPTSQ@%q`(+5+A>&6^Q;mas%+IkC$AwirCYs9kBVODlOW&w`;?PwHTK+8#nz!2`1ela{4A+NDgr>RrgFXjrO6K`@0#792%uk@u*GT zRZ8w|R4v|ZtFqSy;duzP9jAOcYyY>eleK3)_@M7a(}JhJM1;}lI`QWxg|o3YnsZ0z z(%$Y^9C~HK%7Srv)O4+NX!u6P_$k54{%}C1sGZoN1dpa6hyfRKtRMbXC zox{r9CB`Cig!Z44sBaJ+j*Grit)wfGX*kGJeQ3|3#+?@RXC&P&K_wHMoJ!?g`c})X z`b!cAcF(Jp_gPDA>^Cwd@$TE)`ql)hcMT<|lx!yv+hS6CNQxY7id`|5q&_qpJUs@c!7r zjY}V@oHh!hb6QzFF#rDqAI9DErMP&OtnA>a$U~lZ_s8cuE)?P0csH+qJ>6UbQY-sq29<%=lnT)r$M;c1x;I zZ8Toz2ig51ZdSjvLq`$Q9_)?gL-&)rp~C4mooOyhDFa5o?lFBI>3*+Pb}anz!SgA# z8I|l_>r4~J&Ow!(6dPJ!@Me%dsXM#n#CaqPU#pOX-5FV8S`y!cyUFHYH&d0PY)-cJ zOgFaC+cN%zkW6NFw<^5P(=FQ&evC0-(r^xg(f^O+=W7@LD3tWy3JYKOmRQ&IX=?|NJS&q}SBg*J` zvobUo?b2w3*=ObJSmKU!9&_;BYAW$Q$cFQ7DZ_rn zqp~Jw(cy`6y#3(%tAxCpy0Tj%xUH*`aq+t28{iAW;9R(!c=(Xy$FqJ;$aQDW&&O+L z^?Fv%tKs-1lAnSI;oYE#zYcC(9CRtQZ2k}(F3Z}NJYFJZS?O&oUv!;!y#6D+FX=7v zAZhqR9igOxb5mL4acFxWnA2{$kG>vjI zN?`>!fWS)g%h{!I543d&G$3}QW*(#n8g!Dz+G*KQtr32m_=lLnqR6&20;?CYRHML6JMko^|fl_d1dXk*A8JpqrVQmpjB}& zY6;gBZCorD-<3;g0zMgf!7=--3T&{# z`h!Tq$Eya9bGew2jrK=3S8Zu#V0bybUsR8=@ z6gMTmgr4*$7?R8{4g2ce`gXAV(yp2ZZz(D_t;CT*X)sDEcbb-lcqw*C69=m;$<%+6 zd@BuI*BK)MPh@9%g^hvRTGVLWkrTZGs3GMpny;U0NxMn1(n84~h|b)@LNqGDqGVz! za#Y;Rh%m%LYlR%ngFnu38UqhgG1t9ELwt)K2oXy5`;zgL9}Cl4a5*WRABEq5eFUfl zoLpgLw;oNYzNabTB#-Mf#H;3Cd(TZVqq`{@a;WDD0>!iqn^ge7edP2W`k7t-TAEY%TX35 z$FW|TSqbUF{9J`@BW74Pwik7rE<$@rAHs(IWh`dM|8%6c z#XAa7#J8;as@AuIWU zeKij8Vswg`Z4vdy|P0?SSuL~`LW6ksQ}vUd@Z=4@2}jH@sV@fKj!yhoG&Q8f(=BBq%!g?NpfA$Kx$#X*QT$shk) zd8Zs;+#s>Qj)DH*aSDWK=TN%J6;PZ}3h_PlV2eAd4AIW8h~9*XCIsV9<>%VH0d5X_ zvFW1Y;t*QW=QVIBP^se-7TF^`2QW&i`h40WREynUFfSsNYqrUHo1uch{1jOXfp7E< zR^Nj@54?)S55j9!dc)46`5|6yuE$|?!ZqLf20d)?4wfHQnqS5V>CFg?g zYWyDieGpG9JQlbHXI)=Hu_m6 zUKrUaym4_M)NiRISHx|~(ZL3fAD8^HHkLHHGK90>yhN`^eifyD#>6uOL0p3up^

    DlKKY4Pq@-0G*AB*2E{XvBw zJ{-RBaz!C*mkw9>Q0&h_S8Z%5r!N#Yn&)`k$Aj$DvNQVYG*B~Wydvg(AB9K59_*Vc zZ$IKk!{NHiC)27Mr_Xlo9X}x0=A8KJ;PG8aJAPm0u!r}hKkyCKNKypN-S0!cQ>=fJ zwwwAr4es^XZ1^=js5qE$-7hMe_T%cbYCddkv{-e|OKFwcu%n5Cd#9^*znSdq6$^6o z^;$*ans=0W&~#YY(c74KERO#*#Y^4QP{bpLa}Ba#Igwu*^+7cUB4Ru1l+SUSHLa4HIoHu%AvYZYylo})<8*5IN`6(`%z zerFn^&q~I{%_4~CbP#DgUlJ>DCd4boLT&~cx3X3_I#tJo`LO;VX4?634WMyQy8B}y zX&R;1b|WcPx%(iUzAVikp$coWyIC93?`VG3w9$`WBVkTS3U%0~R>a>`T8eb4?&1f8 z<=x>os~yHwCw5SLT|-Drr*jplrJ;z%h3(>K+@PoT#UDIt@@^~x#i59%-O!^*8Xm0Q zld@P{Z4?ye!lq3YZ-mtn_s^>yE~Vk)q>PeE|7Lzq3z?>|U6p=LNwN#N-^_ZHN2&Y_ ztoq&g;xaissMi-IzYHB$B~?z(2M1BSuGDzmoT49elb9rgWiQSp^~#9^;Ha!;I=$mA zs&=Brg|WJ;$|Pc(Cfg0(yeo7AoKE)IILA~hDzZVuc9%H*gp<@CqWpY7)%ex)yf!dD z^`IP+sA^Xk2YOzZluVvi)|2~Rwh*r~(s3?hkn3jj?xRQyvT_4MmFQUvdp1Npi6lNu znGj)_M}%rC@O#$cAuJd_#dTpC&yX(+YPPx__fD8iQ;$`Szec`<{B$nk1b-#FFZ{7L zZf_H-djC2h@InRR=I}?65C)nE^Hf+CN#&#vI}?TZX(?7vyDxSjCG&&!4rS|nI7=Lj z^d~*PggDXl6y7N-#;Tu-ZB!J=PgP8%Z{>0?MfJ)>bpFCIGEu0{Vmc0SU%}ah+t#)*;C)xmP`4 z7^rTX{%Rv-uTBszT7K3`l7*4Z&zAbNj}s)TnzJ?+JbuWMYpyfM?b(iDc!m%$1q`HK zu@;LJ%ASQzYkfn09;SBdq((KXE+Un*N*fl58`v2ZF+G4iY%uGc@E(Y@#I_#gc)0;qkxaJ!t-+=vHL(NKp6=?Sle5Y4UE%lwEf5E-Z}VKyuxn+q??TpOO5+RJDTX1Vd0ehjDRbUxK?C zdLZ5x1g%=3q+usQ2TQ-E`T3CSN+t0b>#E$G1wWlI@8%cSv{lP!)^;>}FUsaHNc@1{ z5kGiO?$>nkZzjgtsOm)tm}=11s_~Cq?p(hIU@2Spjv@#K!o9TN#kPGFc1rXElGRQU*zA@x$th# z{5n`=yp>e<3w~g}vW`NcN6j3@Rr?Z%yNX6N)!O-h#}keed?ySQ`EgOdR`Cq+tgjNk zBQ@G=EZO!?@N`2^ze0W<%G3QD?#f9a9P$W$`|B;rBcn{}%D6A{z7#=)HOC;YkY<{m z=S22MCk2nWo26<VTpatUM|sV#r{zL5xBU0Sg$CjD3~>_#Vy?C?Nw}nF z=VvsUNd}DCb9$?hh8VQ>fae?0kDnT6OvUVg>1cS1|l9N#FqG1|i$0|^P9A*|)A|YA}@C_OLJ7l^3{;JuL zwPJxzE^#Byqc;`CqGceh85? znh>J@8y+D zIsa5n%F?c~8K}fK0$9)eYj@7Hvy$Y%`;r>bnVuYslfm2#B9%1XN`6DzV*1{@2p;6B zNv<&k2RlvD+ngkq#I=?fp>|{;xU<6+pd_g70kX1qo<{J>n6~-|z z+0n4`_b^<&HPN7Eis~0}GA?4~(>ed5wky4R^_FkfYkqn={d`l^+LEEPcixr}!0eK( zuNF-HyLwA)O`viohvz4u5%`cFAt@Aigq8HIFu%0R#zpaSI^QozS}gywzb@NzpFU)W zfQ*U3A4IW8h$`F{Nqzq5-lS1RNWh4j^LUFT6Jxv^q zd7{cn@e3Ia1xLBmf62M-4T9nX`Dc%cj|N`_9E)UdmKJIzMO;b()i~$ak#W z83s)%*?Lz%Xn90_4*ei;E)E$=vI&K>-y2)lwk5xnkhf)u1%z>(|EpLm@neWPrIRf* z@tmc$3bFJ2rPLij4hSW&ewt8WZ7bp%!+r6cLgHZ8kc4>~g_MOGgpN#lFz-kQ6#GfG z>r^hvvw@U1C)NdLdlidwc)lXaE_=W?Bwh?{i<8s>vJJ#L&m!3NgdRFTuIs1BQ<^hK zkFq@>o#u1+UDGb%UwXq{*ktB^+02^gRtNJ4=}w31YDxd-Hz#n>A7{~=R5^;%%(2)B_1L4&L+4wcc^!3HK4 zGpeoPIuSzWT}kFtJwH~#wm4Ld9Cpb`ie$Sg(P&s=wUiKr8!)a}Lw43*u?g}MQ*8&2 zb)8sg?Nv!aG(dh9Qp*cq(8{2z=R}Oe`@&Tocr+UHwTkBp5J$aLaX$G-xI`3 z?$~HCLwreW`#Ca!`K5{v0c2xbV;awwst;QG)l?BLL~om#;#v&xhKEW#imEE6ZB=$P zHI%k|V7y(*h9~udFNc%ugzf^Ff0g-hG=HMY3znbCnRkB_Br7Q^AXiSxMx!CU=R&P^ zM!zq~iqMZ=rH^8^6ZYhOza4~bj`+1a2>7#52a0Q*Lz|D9(My@5t#t2j4mRx$8Q~ zm{qP3@w-iW`#ySARxje*{1&p(3+BI%Uv}MY=t|d^4Lzzj7&SN9k2(k5upiC1Fcd-` zq>)GqZ2`6Y9CaOY=aKoJ1y*UmCp^GDuYSi>Y{~p$eT$O&4Wza!{GL?9?~98f24qD? zqs4;IG*b{R(?`tPD+qeV6ylUY(apd+UxUS^mCx`RCk45$fVYYvi5sI$<2S0PtiVMu zKT27qff>n$gs!&%v*i{~ke&dCrTAYzpMYCYP zplb%{s_;kIR|%oYahs+>dyZAxKgG0^ioOzGQxJ{Hoz=K%$AJ{$FY2mAPUE>ziV%%n zsjqND9V!!;Y&YlOqX?uz|2d6CQ;(F(cQm#$zsvkV#2L2`ZoTWSC|%Enm7dlntfyhX z+gN%06a1kX02{Y3!|jcXU~0F(EQ}M}BUH%~HdqeY#{$zLZLeIBj@tYaMu>WZ!#drOpczr?g^U_!$`f^d{{#U_H?LCXQ zJ0bH`8XITy`eraI-9b~UEKI8%3!54C$~9co)Smq;^5eD9`O=*psQ8LCSc@z@|E&~D zRZ}CEAC9$%hQtoPh-5`r^+{K)V<8MQr@`iw-)#{;&VhFr;a0KHYm@E$OVzI%9;Dvi9HOntdTRt%HXm}!B_K(9qkDr%cX^Q#T z5j-^&hInNHi>n&eseV^AdLAq-Z3&~R;8xj~BEE-)RS@QX{YZA9d-XjDnbl!ohNs9+ zLT~3FA?sfvQ$ed(3r~QLUje2bO!fBZmC?fX3T&Lwa0S_J+Mrg|hPN}++s^sj1o@wP zS-y|;`aCFILCRLUf`)n#+f;V9QtegT^6PZ^9d=9Rm%+SUS^QdZSTHKLw9pG9?dOso zVzMx!D@fT}jZVMUs{#3Gq_p$%z8dXGZ|Sm!c`h1$H+x}5$4lfY$^MGi?mGFyP)=X5 z4}%)YkJbBuD*6+CHon%rWz}yM`Q_m4=7QruWxM=36xSJoFjgp??6xYdMSj4*$^puc z!mY}6OBxrqhw`h?JJk**WMv`wnJHd0dXqGovK!8zRZf_Hx@Kv3*BI)MUJERN`K5|? zh&C| z6}c1iN-GP^|Llh`7w0@sFY-Ojm|s|GJ_=I>-^P1@)vmHxl3cfFwI8Hw4e^IO*$wT! zSfXl8KX`s>udBH_Zj_7F1o>%BL-Ciy-b%Hcqc^%*#i25UUlE$4F)oVYQ6(1V^!qvU zOKV(hxn?0LCjPi7dvQE9pM`Sq@^JoFLvu+hZecGt7&k2EP&?F^Q&rw3Gig|To;WJW zQw7~b!_5X`IVtBYco;K3aDgsiEZ+Z(hEcKG1jRv4(}D6#hPg>!fQf`xJ5zBaiHRKP zOT<*ZWO$2IPO5~q)D$B2rUyI&`DMoP83oWds0m>w;+sjq=CvV zj7`8qSSbvmR}$ZoFHNsEbNu-W=r!bLK3fR$vG~Rx<)pOX-34hS4Zq9Vr?%6Km(fp? z+#g}Qnu!H?5mxOZ)CRZPV6S4h^DN9(pmE7uWRZg=?kD0NsY!sY1E+`{|NhoU6S^sH^*4tj{K}? zt(%~DtK_G()#cFcQWCCSQQS*ciYp!Z!EC2#Tzpr)Ci8Qfq)I73?j~uMiNh0&y?&?M zH!&IQWi-TVFm5zG8Y#P7#HD>1^3NYMgU6%S^Nym3uAq|$+WF-&4$3t*5|3Xo^6uPx zg&7^UDTi^J_-pk|ka2O=v0GqFcB}SZ=*oV@k~Vr38zV75h%0cQBDf{}dstRmv9@5V z=7Qgoh;M$8{F{jTuGo95chCxNToiFlWhdl0;%{aCX8`LDBTW2t@aVZ}oRLikACmld zWstnvXddO8XB*3UUG%7*G1>4raw|j`jXN_x4t9Y_$mDrtJ-KQ)baHifmGW~4RpXML z#rUvE&)-v(;gYkez+%t(T2*^@m)cr1G?{1<`MJ4bb9lxFO?g@>rupc_`rvJ~P#F#L zL`{g7%7K2>VYO4XtJP7pS1pK{{&Vz4!*QVru`@iQjT^vHe&F$OZ%W9KJx}I)!a?iy zZ-4pmEtEnWO70MbTac716Fuw*B}I{aKr2{F>|$J0=GigIdFo{A@w8w4`D>EvC5_x;Uc`7vT{3A#PF$ zx;ia6AgVBsR*lQjF9e^4f7cEs910nsIv_s+&4ommJK%bdYb!hO8?skA|4i|A&kuSb z3P;}F@aP>3;itI=@{3d!U`f?ge(RK*32scqaks=7_=rZaP~RK&J}DO|>ax?)Q7HtY%N;+qL!q{eD>tkVKpfwYxT(cH)5=D9~kRGd6 zxoTL-HRZ~aT1k>1 zK1XuhQjSZ?{Uvty1d{IX58|8=M>AZ3r!i!KZ44#LvO4`1q#8-jpp)hS86`u(4#Cq@ zfvgxgkN1G3@;j?Stln3KLj8LKud^WXRur_8#NA?2M+c4(^Yez#+!|%uB@@Kh3G!1( zaT5*#Y{fidwpKBa42@zMQN98B@!BZ4?raw&zZSVGVG*jyPj)ZrBIlRG%JZYNxX=G| z&@l}0oToZs;x3XkMN z?bRgLfwET@Iz}kz5e~`5MH0o>_q0szuP2@WMQ=&7oZOtoDriY%2h!;)trH;IRd!gZ z1;RLha!m}&*Jj1>Qu4An-;2qijZKQv5*`vy85cpW1Dy#0GR_Lk58{yy$~MqbYqo8NG3OkQU+^78*;ggN7Mm z08*4obySt;9!V;p(H+2Xiq!VP3cfGI`|)-(I(@*s6UooVvlv_TwUC?x4u(}Pc2>{R zG){};pHrh@G|nat1N99O&!X(QSB;cA3%-9io?m|9I@DB#ow0)+mFQn%rbXa~3If!# zi6TEtBnM@(U`%++rTWlvab>`fl!cUgcVA9aB9tgocno`eDH_iOdvYD<^%|`bn>m~fn|R~Ag#8ZtK^rt<$qe!qH`&`OKBqYgUv|!QCPA+hf}G+ zN)SbZM3{c`{1ic7CdQE-$I_pxmh;0NnqOL0qQPh|DkqdQnp{)W8EdCwK5-G>NCqJ8 zluX5AsCEj(4ynH=^WS}dG)RPTK^P)vHsB zmZFIBM`NKlsAe`quUq80>ZI&ouF6n{i7B`03i99mSt!hg zaBvl|igZ5TJHfY#ed1Wvk`w!$2AXEDZJsLXoNqJS4RV@G(B!HJCK(O8vnadhCEjFe z=D>4;=rts3TwJ+b6{EA8B4cbLj2kU*8OR6NyFQ6tl$she;zf6{Ot4 zj>vm1pfPrdTL|{K!Wv5sVj8PlQ?*ypY^kaDxBT3av?Tow93xCKcn68=Jjv3I-WKtF z54gq$kyxQ@6+^tTu|aynDgT3^At-KOm?gE!f_Qfg7NVLsuZq{9SW>w-YsGcSo|EM; zUPp)hTSWa9shl9~80rLkB&ft4f_l#)vA`+^w247#fu7uq(Stog={d-Cutg{rXS^Ct zNpb|sH4V{bUl|S}`lc= zKbVG%$PtRw$RlziBvRnEi+bx4F4#O)0E5zt7Z(!d~M zRSS_DE1I3RxFnG*8i_Z7V^+*MczHi|jz%Upk)6X3!`|X;{oTI(shx68$P_P#AqL4A zX)qbP7FbgPn|4L0MIyWfump?9kAep+P1Wy&j$D;!s7@NdrjD3?XY@DdRH|&q6cR=(7tlA3Wf>^)vPRw=rv0D7Eawq8nsMndF|3lrm zEH};@QTSO~AVl^U1T+mmGuGQUUL^jjyhwSxnaU0?7U47~UL<)uxu?oH-`5S2qHYv* zF$I=Chj9`gVV(8lCd1d7;U2)9awF|5dDlR$QyUNWXjyI!jg%53Xr`NBKYU;f<$YNT z?e7tDZq=J+n!KqWf#ekdM6*1_>KehZha5<3N|S;~6Zh(kEwel;|Ea`kC1InraB33R zCwwtuTa%kQK8zPFKR)y{2fJa@$zC5f<)^_=2IjJ}0y@{gF{vfS1vu8~Xwwp`sW-o~WC12=Z`ddEr<~j@DIf14qN&n3jqCT)A08Mfqdgq(yjy2{IR! zTP3H3IRTxBLBN2G4 z8TREBCEjR+;BCa~*4A9;mE{ehKd}HioSUx+D*YNZg>U}in5Mkxs35TOeX)1gCa4Sd zWDar--G;!eAn9_P%Z~C~SZ~1cM-w}f$xV8PX~o_;9$`#JPHMgnZF0m&9-Jcvk4-}p zE4r@HBh?f6w2|_x#NBygnnBjAnaWScXW7@P-Z+Dmnp`8e5fFN`I~ZnSGGPR-_mC}EMLLyzjh=RoNyT3g3%{$u;WwSDJH*aPT8p#sz_1bN?IWmHGmi)h z_vI-vgkoxqCKlh@Z;FS+wyhalMUbAsBl(GI5d`)C)LdszivfJt3Y{Zjf@obsw9`v4K`FA;?IY_2RsNW}jQRYjf6 z1CVH>goXU9sP`LBiEyDpJyDI_u4acQZ$NkiPOOt!(fdkyv$58UpdE0&F|<^arwC$( z;1D}2kC5(ceKSWXO`1nF>y_LXlyg{?x!7y69~Pwx2XK`f(^?`j@7Pos5t!DOKa;!2 z5f-}EI#J)~Cfd`oBi%CD55JUUW-~OAiRF3Q!JMiq_SxwGJD^59SO=zmcVex!%@A+1 z<{X%J$uwtnBq}mmmE)WmR{ZZ0Z(6Mia#Q(_@Pwc)2;@#2;yLsd6*AY!*Z`{fp-G64 zj?$W%`V(HwZ-U%bfc-kL2gT+WLVJ#>$%Y}77vtdrDct~!_i_wAsU3a^f1Q-rifXq8 zK5pN%PE9z(^+<9+p}3)c}mMkGk;#PW(1C! zxbl+T1rp}R_ zYx<4N0PUBF@7SqgA7vhL!(Eg=Mn>tocBV zq8S{Ru9N&mKAjBneN5VNoRpg32!_~Td0aH$c+x6=^GR=6 zjd0|2f@MuiAII_xCQ6N1ej1Q$MeGS$r+m_R$Ow zc584qN!rK+!hKKu^Pq&)Ss6G_lJAk+wJq6o)K&JE_<}$>r)eL-gB4$8+-2$4f?$_| zhdGb-HL}r z3Ux}3!K>-aNpmEx?ITGCd9-?U#589jPY)35fq}jemXi+&KpsicFY(Fv&fhB@5nXwy zJmK7S^^$b%9F`E>kbRnseUIY!Sg}J0vAHL~R~kxT+`$rwQZu0H`W!(HzJmn6KySw; zHP~wkn*r7q;yR@DGs=rAf6==90pjh2L$Y$C&>2{Z(1q5M&rU^z`nCBE@7k#fn};~*cZklaztg`FoNfInt`#Y<$}S5Q zD+uyt#T^OfQPoOaB`aw@l0OOF`O>afIf{N%*?2&Nqr)5dl27 zAT}vEQLh#}=*f4w+FFMWC~pmH))LCAZyl|*n$Ie=&MEYjk<)!RJ#&lSaf7tEla+?h zh3}KbXus!GL9UkHoK0BZV_OUEgnVl9NtUPVwq_mPjE4t0a(Ql!&n=p_H!!u*f8A<+ ztUTB9HE*rF^^W(|`vJ+;Z;1yP3e5DSh9hCHJT>VwZ33N**c!kikb;)^d&Nj*AgAW2 z(s#MM#ssZV-Wba~SYcD1FUlTTUSw+dy}M}4j=ddQePDc_c&Z%5rg|W_sgSVerQ-qg zdSEjVgFYla-L+t7JTw!IYJ2M0tJe1;TlY}jl3M+6iLkP@XXC~~vI%nF3JGywOdSv9 zPacx2)J^qxqtGlba!+hyIJ95uZR2lKU--6QnvH~QV=D>K;E=KA@f@z+Cjv>$-HsKH zK-|$cU(F1?&|WQ?c8?4Dz2-=mXuwaTY4b}BJhU6}QJkvXTHVWlSmCsm@)}jJEXd=x z5SGg1Z&YC)5+t2~$30tJ>v0Y{My03zx5WAgzp&nnpR@Axk(L+HmV)si=T?K2kYLyd zskzYqW0GOzhvyNdTh)b<`?&BO(#G^5dt`9gWi`R}OO;X+Y^&h%afW!CHA9DdKsxTp zWAO06DuO6a7xG#V9kM46@(Ewgoqc0t@DtlqxJtJcJnPc~N{)_~xsT1VY}!ea-7O}Bb!%9bwPnqynSzHLxA_f0dILS4 zbEXmDYNp!GH0}Tt(6&F94JT`=bTRl!TcfuQ7#3NBW6hELCxA_ts_vZK zn5wP?gk48nvwIwFazr)+S%W$~N4Nb0D(891YfUDP_?m%Oo-4JI8tEK6 z8j-Q4Js_oKZ)>v9Aw$Yf51wkefC94y%p^2$Ee)Nc9woCwAyn7q%v#xcjsaHr{AH;(_hpQ)ihyxK#uIMn1D1ShEO>!SH zUS*O62GWc`dC4lcU2qiiweYAs3wg++F|^-T9T8MB1`Os7IkNwkFqUT}hpF+dO!6<_ zNG3aQ?}9e^Wm+Fq*#Dy}PjaKhzrVQhI+o{%I$2?rEKBYv0oJgC=nLen=JMKAF*R(* z4U~Q*V-SY;coX;p^wvNYh{Og=Hr3qA4S4GlM0f<#Kbx*b*sJODSTX0J^@O?r{=~U686ebb)iW+Qst_8 zZxxfwK09n zWc_^;+xsRyUWB}zhNEHMO&%{&o-fM5-}Ct;%-s8zczNHhlKxuVrHHe&CXb(EFm_&2 z=<;NE{7)`yJLjkaZ8SB`LfLHa7jMYkLgzsMO37U*mV`zH)vx288+=K`+A}s zxiwj7Xt$>2R0TV>XyBuZt#6DY42={{xK+2v**TT?YYP6n2@ z-gDY&a6weY(COfh$-?i-Cl+)dxfph+F2!UvS^tT`*^7#`zFQW!5>V!G63^zAMm1bb z*V?iEzkMtBLB4MVx1~qEXM@NJH@!eB2<;KMEN9V$0P$=HCxWLAC?sbxE}G;mIWTrso-ZE7mVPtsP71t=|~; zmnrpM(VF{Tu&qObHpQl2N;G_M?56_#t?I+=W|31fyzaiz7+m>zv`)(-cX>8)|BUnL ze$}qh#o3kD8+tlV0t2-`W?SV8`GwhvRC^?j}RdR?p3qCH%&p*aw@NTX!hNbJ;HjR z{NZz}^QIx61)lO@j*=Bot=mqBy-ob1A52K0KjFOg@>+{=79EZ8^TJ&v@0Mx5E4d4@ zwW~CrPbRmK&nM%~cGaEsWU&i35A>NF1Rr6kaes#=>R>)u$31o-v=YgO^c%$&i+kN< z?`r9n$niopA6aEE);Gby<2St~<;~K zINS7(NaX3djbs#lg~V|`8=ejBm#5h+Cls64@o0%XZUw8c@b}3R#P(S(Lf&ke^*rsV zIo`^L9!OLKOIN)C?mh3>eC$4djxpV%^^<_GQsD972he#%RC?ZTgLHBCU@zi`I_&xY_TEZ|gBAUU^nB(TA74*O^@WRt-Oqr&f8j4*xcT$u=Q;f*bb{XyFOQ8 z>ke#7-V9z(l(M@c!Q6tga!U<29M8NlLs!pw^I93rl^Ohgy2wkUo(@h zW=ABPFHv4KJ8kKxAo0IF0E;8vO)P()H4?Hs-vlNJe$MjaR>7wwg*sl*YMS5&Yt*}p zuhYQyIjQv7T?@%a>g;hV+_TzYnn=H8qmFmhR3k^M#HDC<2tHov5xc^_^a$gAg;?HX zHdaj^fjTx#e-pZ!AxC{bKh_f=cGhjVk@5;;sW5~bLPh6m>V_SrZ^1`hzAJwkK>|k7 za|j6ck7WmpRv0E&rqcR&LpfE`Gfgz^vV(=IJeDVamQ+u)LmCnqn+8e@<56+QmF3By zbWHw3DX(WkJ!+CrdW8Cc%8Panc4Xnn6MOc(7JLXsEs$>_Dfk93X`?nFyEQxRO9_{;gPJe`Af z^fiO!DS|;1+1Uiki4E<@Eegw+sQ%Ald9G$i*02ZaGaT`t$%@zz{3JMJ-8^~NHL!<# z&DLEMtKQXOzpvT%$gD}iyNi{dzIkF%^QLmB!KS=L$cU6VA0BeWNNhmFPJ7ms=S$NQ zI~5aw4vDZVO1DH$oeq>g>11paUVDrxS`Vf>nah(@Ih1E0;QJ10_KtkbZH@HmY?hW3 z>hnYrH6gQ>9kS!G5f`*+gdqCz45ErUb+R5eUt&L?-trPh1lN4TtS9QefOBvUoHR#V z?RDiWdCi7cVR)>thnoAnCJz3iD)zBTUxQP52C-g{nx5FH@PQ7H2lf$Cw+^sFTjJNu ziAOaoC+MQYa*UKz$48J25UrLuk}EHmH%4SGuW2I~s6N!?oXM`nh_K$C<_hP+zQ+WI zDe7ag{5VG-HvnD}D9EXs}yTLGL< zHr8{5a+_KwdqkLX9=@NWUWiN{DfR@OETg?6NuU*XX8F0}%4`tj1w}_}HjJZ6d2Kd_ z&2iIV)4=2=!^>WH8Y+84#yC41n-hxFEw4A=`p+Z|!hEHl&kPJmTtN=Xi*DHAnJZEi-LxK(bd%We}WQ6*L|+83+l$^BOGuo3i{o zFsj3$rXa{Xf}6n2r4}O_7#1PW^4ft6pxknvm}C3jtX8eLiEJt&!mzU*rggfPY#R3y z+5FqhPaM__O}z+5>)ADFNcC~~aQ>qmxr)xFRJpg#^FuhoA2gYK6|UjP3}hYz&Ta({ zD!8DTT+JP)XarOOUFXJWeF17Wg|PA+ukgBld&JLxYy}85%N& zW!ZG3JU70BSY7KexTi;(63mY5Apz(~64nT|A|fmjS8Crb(?Ho(GD46s+EW#*{fNMB ziJBO2M^?()4!+7D{lH#5pFqo^^ywd9`BS^B6Gm+w8qhm%d7k85MV83O^0QUKl^$U} zo#oG1r>)q!Vc)H| z3GO{uUX^o%EGw>(y0EI-qvYGP?vGX?uJ;pRiW4HI2V8@;4*gMu5QFC9+;N&6br9dl zlI0ndc=kOkHZdIhiU=VTSd^Z%9jo_qkXwUKTLBQ(ca7NE!?9%o-<8q*gG?)y*TkcC zJ};PUHZY^)IXX=~mH>i4eZN0>XshgCZ?FnAZu!7S+Kk~ zEYG=`BZ9mKck&64H&^y~*mR?f=q2wUmneU&i8H}xAa9GZ(=1PN5nc|sMKK`R`m_;` z`)wsk?fRf)M5d1uhk=^xy_p*}a>?=%s_T@&Ym#&-)+vL42OR76qLZi{f{=kEo#tz< zDRZD3H&LE9jUAK6ik;0Y#YR2?j)C$HAeNbGYLEl?2*{mGY#|w8>Z-qvy`Xtjxbc}kGp3NNL+`aWwTQ$NX<%?KNn^0(RQCm!%Y zlX~S)4JCZTuWbbO2 z@0Q@~_IvBVglo2EbAzF;4{Zn{BtEPq#|jorGRunnpfcx|IXI>z$DJlgcM%@PaXBW8 z)$oW;8rZL;zn9jrx8z!JR1P6WHLlw^)w6uft($VErWtl5t46+Tctd!oc|h1xg>;Lw z3Uv=eGgwADB4Y4hs<{ZEQEU`rYo-ipXPiZju~Bt$TddW_FwwF= zC5*P4EV%MwvO^hhleFrBai{cDUdO849OSH@E6XyG#%<@*iU{6=vP|}aO73qm%NmxO z-9o*!%kvauW0EZ~Xix2I_vAWUL3>mj;w|h-6)cyhTGN?8lPOiF8(m&lW)jo1tICxY7W>wY8Hk$`Cir_2#V1gt%oz-0o0B9(L>K1fpj`vWMwZD6-_Qy57lo83Wh)|Rs4=*)$wVB|t!cD! zR2Rl3cPf;bJ4iyzI3#0_q9alT%tw7YVY}UNLB5EmiNOWr37e z19C&}*L(mT@SB`ax6F~ehXrpRAqR>PA~pthgvM-a2TPhl2X@2cX)RgPe1N^;Yi4sX zKR}O~?7>q2M?`sELj6g=ogH^;u`ZjnjL6Un?YB0ciAPYcaPCpX8z!fkBWQ+Cz{WJ$ zU11M)%OpdRRqrKUdaN4jvNeUri}_}F)K0FvPV1Hx2Xi$E!m@nKFDu}i*pvA|H7&6h z+d+D~%dV=Kr-kA%gd4o|jed$~JFWrsZCxyo^o$fNUo7!;R)qc`tdix6}_!j-TT)!;!q209ljVnznII zDT``5q6mtUE+k+F3^qa$VcH=(+zNe9V6G4BE5BxLpf1Ry{Y9*glOL_S)+_kyfypRNTzM~UKITDK+p$+km&qGh?#VGZ(Kvs=K;IjsVdS1GTKTgwkk+LSjg zMR4q|x(I6qa*Hwodmh1_#HOujS|3%|Pb4=RpRRlkCV!KgU`^{9ld>PIYc2ef12(~MowFq7r8-i<+Kzy_2uJH+|d)SZ%O`9ys zr0jdusK`pU3!-AZQZuwF8*t>L)Ri9FOu;D<@HMZ2r(+n_1hdxS)Vi$0Vv`b6HGNbD z(>Q|Bx*4^fy&}4s)_B7eB9lDw}>cvS7+AgocYWW1_FTi)r>DGMIbkoBZ z)9L~vl=||l;sK*$MhlWnY5ky@9s7@sPq(^QURAWLP)e{i%@{-=!7ILI@PLfVBs1h_ zQ@WJ0m3~X>sd{Q)zo_#ZU3B&lCYp>V zQYc>FYxC3u88z#Bml>LT#dicdg>GAyL>m)5&LQj{s+>BcbpZP=sGY!FJ;^ytJ$05m z7(BVInYYeWwO&GH&ssmQ*Gp)e4PB1a#vl^DRZHjS>ZzWCttUcsb7I8IQU2stB+qvS zHsI5*1Toa?5P1LcV(+jyEQ`|N6UEjqFFLC4^{66S*C(AwQ&;_Sz^=Xeyl8{vtcW)I zi;%nM&51X`U675~<3w_+4&t&{ROK}onQb|Q;M8D6a7%5AHb)*O@o}Cz_+c(2L@>Jr zdIV8#eNx>$HtB@08AM_6<8sYo66=~DFEg(GEeDN;@?#{gKC5?~jyc-RnROMIj= z75@>krf=vbN|Rn0BZvkBi3r^i?3It;xYLv+<_H3mH)$o4 z+jdS>Jfb~@^$2#ql*Z0Fr6!xke$C)@!1e=swG+U84K|bb;mTHs1`G$vQB9UWMCvWe z4V`!n)z)wyGfBP(Hm9rV{d%J9jI(3`(=y3z$)|PaA4_~CX3{k^gH~BHR>&NNI^|U1 z*Bmc}+&4|Ut2=38*ECI2*{(cK)`$(*ti18^BBu2o6d`7(mgNy*O@qbiK>s=P3g0zq z-Dfxar-VDUUM(rwp@DIo%*|kg4BW9-h6K(bx<8~lx^^4n*bj5LbAX}7TR=>6jmu#6Z?vqS%E4i^v5O&iWr5%y`) zyc?yt_qGFv@~k8wr?$-U4whE~)=M>R4UfY%*=Vm7yZ?8TuRYyF zdH!hBI=5^*SP!~o+N3N$1d{Z29Otn3$XT_#HOIx%USfUVjchJ6`CCDP6;exczjICW z#-0oI!=!88202K5hFwcfIjZC(hD9=^EVJ=RedlsiGuBTgl+^a+IpU&wz0_xrYqII{ zX(<>{wsv-dT8uOa*8ke|Ewrh?zzvr>;%y8mK@mY#z_(*o&L|SH{4`+RLIhOXcPbe7Yk-m;_6#2iDl}*Ng^&V&oAvu$yREpxjZX;stUqr$ z8~mh>PZw?CZNFOGu&Tt8gW*Vzv)%5(a1MHwSk^MATlyyisp@`-yFsa;yxkn{G{Xp5 z%Agk9=-24;b|fWmuZg{eX5~$_ClB&2`)+IL1kUkq&yc{D<*Cohn%r$J)3RJQgI`p6 z+)d;?#esD+5*x53rL-s?kYf-UVR#>KB{2w?NIDhEvXR@ME;RkmA|b2;*hl5@H-QL- zjkA+Wh*4EO0X{Veu1N$Di_AL`dVo3VLD8g6S)P@aG9+q7`qm_P>}wn~^^zYE_y=v+ zCxS8Yf5=WGN^HyzyBdyaj^~his#i*^r#c}{xP(6qpOH<773I&_jpXlZ_i>OnD}FZY z=|;EjnNk(LlV8ZW%0*CGgUuv&p6m(ZH_g-<)exrOzar;DR*o%JXC# z4GuJV8F_DpcMMgRZ*HNXzwWjw$l|sfh_H(8G_n3i724iKwl)|@_{{Hcvc zgd-~nmJd{qxPrF<9_z_D8!MxJY0aPisGfGTv(doV0f->8=Q@nltTaQi(vx*4IQWU= z{vpGquIyG(o;us3_<{_gNC~X5hxQcdK}BmD2eAC87_xQBv4ZU$3uhNR>H|{de4v_c zXC*-x(~Uts0=_TO{NDvXMR`8|p)ij?hhz_Y%{)T%2l?BiVZ7)eIJ>YPnC)w}?qf12 zhU0B&mbau5lF**br6^B(cxN5hXMAJ<=RS8TCqOi*3)hywBUQvrkOR!WD)B@P6=X!F zCK%C&ubKnOlWQgWjrbVU@Zd!&4j^LyBsW=9Io<~%%NpeV5xGW2?4>;Qe67?&A|6c> z5}TVsM+CWsVeZ-fUjYR7xY{lrM0JruiCw_tCj?1@^^>Fl#&K*+XYS}6hR;!6&SA;b z+&T7Oc6@5GfUz+W%cSM$q9i_SMtL(l%W_H&AVjk~FDv%LB#kL|YMQ|>Dny=> zJI%Hfy|&z~V5Dwo%1aYF*6@fSk4pxGapfsSXgi>xdhR&EJmI4Y_`&*QO^7-Y$#r^} z4%8_e5XNluJmt8|5I@6sFVnqr4R-KqLBNw^j}=dw*ar`?AHdO8-%c709aIjM9$-4~ zEr^z!la0fjGlv17?*5Mn1K9Ta|{-L__qVkhU$}4h9WpP@WImv368Q#Vqe9&XjMiml=nID7`|8StpgC{ zMYJbO9yTN(w=*9Qj9DHKj0qgRp9G7+gGsYh$C@6ow@DdB(he368x~n3)HvuK91i!V z&~^Trbs{+u7!k1*sFIcPhMCePISFqVjCI+C*s301L22&TSYfXvHV;*gbA&qaTa}%4fTp0o6WeR4X-}2yIVTv(=_dKOKzqS~53UvrR&&HOe*k!2 zwo1!%mB-upr3UWey6634qz(nb;#qRmcj(8#zJc6Ie6&7R5d?K&@v3ER?W`n7r->f} z|D2A?B)28L61p8-%}I$*u+W83Mbi&p(j30on5^imS#RQq+a^NqWg^$Bl&8srIvO*^ z6GDH882X7IVRD-ue!h4v?Jk6e#ptU6c>{d9zMf*wDnZzG)al?`n+lQG_X8}8|A;xs z5=Tq9$`L^ebqziHW}#;TorBU1EGDwkHzbg8X`5Jr z&~JLz@CI2U)R0&+S>tVj$ujYtTvNlrH?{uOwCEiXx@9=uGUxLsZ)ec%9Qfzhuq#hB z$z`fE)+}JVe~|H`{9Gkd@rlnJ(hP^a5kFRtWQ&+l5nuNE2X5gNiI@ejXL|=lsvJ#cFR^Oe<)tY zR)XztAx#IRD2@PkAK=)4`_hrm6%xf3!PFBWq9)^2?7bks)3qAVh8gvv2I*jaV}g4xOQTRF5?YTy2%Nj*;4nu_Ac=D&Un%&BvN}g&X$uWPP_n z{3XPi{}6q*k#rY(1e+ydO*WcLZYzF4909H}ksGJ0Y@ef<(dQ9aCm-sGs&PG$K_0@_ zTm_Z4eMOpsj)3)--a|dn7~l_&H63nhN9Iu~+x^&KUbnLnD?1FmApfX$0B1F8#|BK( zQ_VrMJZaH2upd^9QQ=!Dw-BT92v|)P

    1LsK^!ElYCVh59M_!II=$)z5|Y$mSrQY zOi4xO1-yN%2wfh*P;VfM#pUwjjFF_~PC`Sh#BHPBEN%j%IfKi=1MC^JuH5?Y*_ogX`TDl8e zAg9M#2=>G#3j*VDfmkDvrsFPn)lnfIAV$z4@sJim;9@j+uY&!ym5`?Ifp!a=bBBjm zg-&4zv;CR6MtouQNfy;cJIkUR75?)W)@20QPv`fd>tx*k#8j~-PYLV3FV8cB^oa5& zf0MKUpZ>Qb^g<&pPG6oU>R22>MrJqsE6CQTe>KVd)*QX2^-+cWJ(By#l(^R{ly5nh zeFuKmB&XC@&f-YZcOb_^3HDgi<8BYLm@n**CsXki??e2K#o#NFHNb!jnqBz*OKD$m z*WyrKx+}9A!P{x6YW5>z&TrOT$asLndZLG#yCCQok_Ju?cE199GL@sw8vIZZsjGMI z80{88k5dH+nz15Tzh(Lrv5C{7Zt_EH9wUhfBPt=&h|wdtuJYTOiG0nr_m`}zIp{8b zVza_{LD(dpuBQki`J41W3KhAYOby|qjgT5~4(fm#k-88>jeQRW56E?fWfk)Sn0Kg; zp9t=P-0b_b;+;5RC#4D=u?t!^EFqfpeOmUt7F~!1p&p)cwJ7#4bkr@5{7%ERJHS1nrWe`B0R}beuI-kl@m7S|;$Qbr&cHCvP1lSmD zQXQ;O1`!B?&nwi-`gBLi>wZOE;en)sghZyv8teyH(#+(lbO>tzc0;36j)0VBCB>w& zOe}XL!Ln?vytj@gJSDV(PrtPC)ZyB+5t+&#kUe5={mx2{$!gLzutDG0KNwb`o)7zp z^I+&2EX%Ti(8(h_BUP6v6@#y%NE09hmk%4^hu`ia(0Ex(-Ni2SZuo*Unl z!E>ti1%YEQsR>YCVx=R~VAER4li{^cw}StgH*%CMu`+6J!f>-l8+^iB^|z{+*k7C6 zlLQRQWUs=MaKkxG?IFkOv@DDAfKQ!tzJuM#Y&y*8BaR5`fP)KOCF=@$1eu0GIVzHM z5JR2vlI2g{h*n}Laf0LS3JLD8SiJ4atEjmKGV}2M@7$f)a^t!YhMyGzA+l|-p=kg* zW4(>zi^NmqiQ&(^n~f zQ$r-f#_RMnwp@8p(d-;fvNi(_e>a6`4XMm}^}_)uum{R&WLHZ&zeIUi)*(R&Um9(KJu1CB*_Sb6KY|e$$%G*YTHij35!KmV$|6C~k zjFh(o)3P^08|d*m>XNM0aD{OkFKC;q;e=HkZY@2E+9~gA3DQqy{JHNOrE0#sw(CnU zVpOF(PfffAHcd;wD$L$VavP}!WgW@q;(v_uB;!|t{g^@csyLWtVY)T-gu*iYvSy%gGCV<0?YfC3_-w8 zka;><%M*|^O*^l~Iq5vf((ZrRuuIc-$78GSSXbRIi4W{8TW6W(iP>Ozsg{Kf zXG*?P(G0St@z+KUE%f(o8z!=$|E0-_}uv6C5Jz4pqR9UEAI>SL8YFky*lFW~A2WvH;k zzr)HKlY056JzvQqO;XFgyCTUkn9Fli(fg2$AO`$-nlz3%lKBAfiZPwU@cpWS-03g) z!Q)wC=DxfD^+#;rMncj-?5s@<_r^;L0%RWW6wo}3F>KH5@CVrrAw$GtGz|@zhS(p& z9skPfAV&NEi@-}ZuvK*PBp$6de411K9=LOy)^4+>HH|E-F?J4ow`d`z4eeDa@Ap|) zi@ycpZr+%}2|E(im@o{htpu!sOcIsyTid8m~Hm^9&e!2yza;3e%Ji$fdy7bkrVJL*@JE<(qaw zs?cME-#&)qW`T&?pWli7hWx@HjhEs`Zx!ACzvrNHn; zvyL?LbWISo|4dR_UaB3G;YX1@ZrSRxptI#|55orb9-|6bvfrg31lPt>bW@LV z7N(iI^J~#f^m(y}@+}%|UkW=<(*#+YW>Bu8UeNdrkN6i$G~DT_iLTWS&a?4EU*c*) zSi< z>+x`i#x!7?$wEYPfh6@EJKBy>-nKM&Yec~DoOv+)030cgFbU|+QinsjA2?v2{fvYI zt~8@K9ohvwD7ILFtr0C}*SJ8aPF~Z8r+^FMM5TJ)4-A0q5r39tq z3|GAYo+mD#Rkyq`dKB=>JJ1+s$n9D7NHJbX#|0T0HM=AF;jh^YIds`&%^vSKR%Ml_ zsCW7Jun}%CVI%W&hk^B46Ksd9tq&A|2Q*l|f&OGTp?Pr~=TY7pf@6XkIv+5S3dd>c z_EVOBXfaHH#95+KUK3f!8xD^+RYVZ^kTJziVT2A#aV=23^*8B8)Wyge*;VU^ov#j* zHzkcAb7j1|#RSzFJKLX3=eB{h7kYA@k`}4FTCOw3RxK}+(r_n6G8Tumh{?Utxw!B= z6pv4*a+e!0N#LdEb7s}@)~M)``yeQvTChiKh`XuUoo9%1vh9FI)5&EbyICep<16v} z3woZ|cvUNJqx!B2SD9zN1>@HO9B4pj(A-TC_GBTGWnZD+53SW@7&(bPNj#NwxL>PW zL;3y%Cqm!?Eia0{SF!VSoJ?C4=Y;yW#K*jR?ZMu05Ez&5pzf{Vq~%$Cit;geh`^V; zMEN%Mi949gGFt5=B<^c(7$=qTqMT=Wo`n2-#F2b1e&i^euE-*Zjm&F(BC1|Klt}Em zcrvQm8b2D&snOkaE$_(hXkQF$5!5UNzHYc8z|yCP=V|zSNcXsM(rcng8}gTo(z)Y3 zlqznV3tKfc^AhE4EkHU?L>n?^Lf{qcS^14E#7!jQ zXS$x27Oc0xY_H^Qp19qutk!H*t|V^i)pV11t$_Yu?#l~+2zTTVe>h*EJjQPL+Z+QX z!=D+VJVPzA(R8s>nPsbq-`Kgwj0%Db6L(Y1wsUE1jY6xM&O4Gb)g-G&zl!;bSf0-s z*AIG@Uy%n#qB2h>mpNs59n#tIEGkB5(Sgv~@NL&ip0SODYr1Al$LWGzAte<}3h}2T zkG8|EUaC{77JroGWwie;HN$6Q>o${8y5{*}(a`!b%@Tv$&<0nD%Sv$FE2JuUhXWXk z^tqMSh9+Vp;(1rq5NTRv=!t*Q9NX@<3tqfLwKZ0WuO`AAr5lpvTr0;4>sHmft_uUo z^K|kViSL`KNmBV0Y&G%nP}L^Ld}!>?Gn2hr9&$x9lI)Kg8GoVuC7)|~JFLu8PrS0; zq%7A>lPYlTR9|9xvkc{DDBmV(J1}A8V}YCFg^HV>MCg@qf$}F?T5GU*_dh8$joiy$ zU+VUpz>OO3Wqs!`zIVCADq-pw?`1U~^= zs+oU`-UO-ov!IsFth_<54KI-UN=^$YuZnNluIaeBA&%2UU&&ZTI$0H|{F;_B&%N=^ zUblIcZ@r4{x>SAaTw}Ul)>&R_f$ROG_{{aHq`CmjSAvJj)lQv{(bA`aJgk!}vO)Hm zI6`Zo`3$qKJSZK>r$R}osr#x=wUChwO=i4$c|Wz0Y%5%>Lc5a~ztZwHjpK*V)*7UO z8q-|RWQ0zRb7XS5SR59D%MG;TPcoW9-=Dtiy`p@8dt;Ti)1+&p!>^krdDl)xKcnSU zU02LQgdxg1v^;wof`=nEWAmbof24y z9W=s3A2E-GGVdzoS819s`hS;=UacBxwZz>aj3D!|jI*Tr#&9(>Px?_c{V0RnvdY7M zl&&Wpuix7EsyNKCHLP@YMX8MOT!P%IY02_hg}f41`jb-Nxf_40(r13l9vyzHK2_yI zHFNVzGM<{2%X>_!V*1}D*t)@8bBEx}J^7iDPAqSm1!)AH3{}4y%XR555={D0HT@XN z>m=l_%?)yH3;KDwWQ0a7&!f|Jq?4s#|5e%w{1ei<7}t`1FDcrrR^Fi6j6pup@_xYs zE<06Afv4_A)ig55UAF%{%)VU;r%S-TJ}wPpwkqY%(ef|J&a@*9H-Cv%`pN|AH!x4S z60(R<$X5gij?=A zXhUdK$4# z*By6fRV@WRS6o9?+n;24<1_PmUM3e85{^ta#PH;wN_ibSDahJ_4gQ9)vb-nSspgH7 zVSk3Ga!lY}6A#8!?@xR}LDihhH9>9|r7BF0FL>?LiWI`Pj_L`|T!lz5Ken)`0z{oT@l721}>oo}8GS%c++5 z646cnk}Jq0xvk~-vfDw*+i0hS((t!AM&5V~l|QTGU*S)$5HHnTFX(cGgSmBhv4g}R z?G%=HVDou68FD*>zc(BS*q4{e4`twyIDLzSzU1<%y@*Y!s-xPQWnEzJgbtruzk4Lc zf;>exPvd750{7G>`+!}IN32|?a0j3@38dI7li@2e#m*0ih(xWYfEifR*Q-%pE_CsA zl;fuC%kh6UjobqHlXU0C=XL=IieECsYvL8_wQb4%MV8ilQmIFZ8%3I7*e@{I+Q5-K zQyjp#CY2R(kF~y_6vwGb>{Ze&I6unRA?_~BjL0Mv!8%UmW2iRd4VG|2lyA_DT!d*H zRlkYyH*T{Z7vfaym(a|UV$x$f3pz`$>k$Z^O zEbr97dOgvMg3}y=p;xh5Ij{WD#E-x)8a%H;bXrGBOO7ZnRVeUpHNCcy*#K7a(LX_4 zn!}qFi8~d|&~H@qt5D}&zW45u4_V%NvY!a`q>o)@MR~4OV34h%D=$?XCp89YrV8Un z;ggW>s+X54`u=|{*6XOqJ5N^qP~jL7>eiUz-Kp>UtIm_yseKK}MI2lhqP$D)Q6*~d zDHS>XH^;y7Jc!v2xp5vKULx$tb~A?}a_cw^h8~X7SlDi!xWUhA=RpJ+uM8G16jdjl zx;%DyP2;ay>?_m2#`NVi!lob`X;pg>#-9rv=DqUVkk-MZYl3f^oU0G*WXpBMN_;Cz zeR^y@E8&@Ol(xqCIol~>W6iBAQYswwAhGBHX$sns{ZzPH z5D^>+q`dRgO#wx=9pI6A`TQ}&Qy;j2guQO~4&?<1ns~KI)r?j?j@ZOwG-ime$8g8L z@;Zpw45!?lsgtBap6)VPAnI%HC{AJtPY1{52c$8(r1Au8N&3&EHLU!pL_BEbm>^!$ zD%``oiR#yW^H&`3o4C53_rjU?HAk|PfJ06W9aK; za<^pq6wWWvTp^X0lYLZEZ~{pY`~qLHGAXjHEPppqd)X738fKp5tx@5m+)={$jzYw> zY6)ZRb>50(=Iz(1t;Z>T-EZnlVG)*F2I}q_cD*?M({3G>3)&HUXy-9 zT+P{0xcLv-S!3ro-mO8ZO>gOHDJx-1o~q)GtZI-{wR84=#=hh#^Y=4rL&BtaIg+a; zF{$d_NyHQs)Tqf1Gggsnbet~eCrnGmB@xpj7JIm6yu_SnCCPU%@@3cn4DKT0OWhqs_{h_w)2K}=|>r)8s2zPJ9R#m9ZFzm6=Hvo{m(M{l}UM7 z6F;z`g~3~{P)*lXM!OPfom{otRuEYJTuUCA&e2X$zOjWkc5+oJ64)9%f7j)yyo?MC z)3UF?LbC=}7~fzmr%w4$1|DhrWb;FeNq(0Yf6~8LuBO>9>0;Cqn^9+f5qNRvC;b+T z%xXgP21z&BR$+fb!Jr-7rw~V+U3y;VYWWiwq zL}&h}KIrzkYP!h0cU*7R-e5M&5|0x8D>mM{`0}@YXIgFcJ0;uO+(l*j3lZd+;9l@t z7x?;fKsXbXt%6b(wSJ?b)&4rDRbV4I+Q(?u7~;i|;j=|c33wkzd+#kRB`3wfF|3~g zyX#y_wBtmBT_qjh8!@$uePk@e#ke4Xn5H%1!|-a2^D5jBS4+3Kg1$I^X=p!3W+#`0 z5r$$kY}LJj7154#Jn9vu1+rIZuB9VUxt-XKEE?EquM|;U0oMk5zx)9ZE7G_^t%GKN z1N+~PWH#ihRchkB1XVnCs=IxFp!^7av;0c$165@tSEQ z@yezj;z5B;+PSAC9N(~;peD%Wfwd@VslUPqPT&2kMGA7!55Lv+pAuIu zoJf2&6@t&E8ouu9$#`QKMMD!YYt_gtFX^K)o#VLHjjW`WwW9J;h0|Ih{iF%Ewljl8 zYkZ@EPsBr=5!J6-vh!^vBp6JfynqncJlVkK0@I{ePE|lvylfXMA%_oK0(?ACqY(RkiV-7fq67 zwI*&2i-Ims4cz<(C7ugDEpfQBTuV$#89shv2^x*9^y#N$e^tb)xNGF}sRUk9GgnA^ zhloDGuVu89Zs;NnujFc)EGNO_>NmtBmnE)OHN9hY?VtpsGyfQ!+jC1x$^I{9|AW{Y zKQJK%2f9jHlH2Unq*-u^^4f#?P7qY40o2(LQNB0<0757Ewp6!CU-{8?C)|9d92#5j8 zpFBfeB$XGHYe`$O%LP6zPQ~hR9B|b4#s{H;D%%d?$ortPs%zW-<>2NTT@&Qu*c47S zPO3RhC$rb>e0nS|qXns!uCcrdT^@@o9xi~IOK5|vWCgPiKB>ng%1f2BCULiH;e%dl z)f!to$OZVoU}zOS{UGs>b976AuX%Zv+a=BG+1fwg<=yYKnSiKsz7BC%h2v(?X@|df zjBfY~&5-3gA3?*Pv0Zi^)(^QE!Pb#L5h#?z-MnQHrb3#j*Ns(2P9TrSDR6qqn@u^Q z&O4phG#)@4$Fr7X^`|DL_BGo+5`$h72h$GT;$zk*XU!nDF#X2udhlV0z6O5q)}zov zXIoytMl%8JJTnld37oR z^nDQ147u4L5l+%)j4Ba7+6N~FJhFTT^w&0^l7Sc)%n_@yQ#cZ^o2P3ky{{6JN{9;* zci^L@+dA)6CnG=)uK7LT2q5kjEN=&bAcEg2+3Zzzq}*3fd6t>d1qX!Mk@+Oh;!+6u>U*5w9VMEO3e%eM%+w7^%OLsAcTP2zTxsG>MU zKZW56yW$+f_hXl0z?&m4z!c-T-fxhOWJ!g3j$rRRxVtCuE(|o{9PG0${4^vR-;5;g z7A-qZlSZmE=NVXuyESc);|NEP^GbYm4z{mDOanrXjBf8dCVa`7j^wh4AuJPDVSEMg zNg6etWBB^6^QzB65QGh*mv`+r!%F|8>^DwYRi3LiDOKM(-$2Rv9ul4R#HyOLO0)c< zZbVS&w+^S$k=&*^ljqe!} z#*(&V=fgUfw3!gykWa^W!oJ$$@qc+fhA|Cvb4s%@35C*V&ox0HKNK$Rz-i?gG}C70 ztP`mM&A=|H$j?Ct%iC2Lp4Q85)JJa3rHWTovNk z3I!jsQpKfxW_Zzb?YWtuK`x^_H)K(S-b8H2qj89S$SuBJ2%Dlj3+Q+?fOd;842UK+ zjjDHK*0~)89!Nu!x68U}&}NSoa+XuLNQPmpCN6T-d1glfBYduNWscLQ z!kuytc%wk}hLz=|@&gPTV64XB9a%7H8gVH>?@DKyAoB)sSLJ;6exA4<&l_0N+8%;e z!;Mz;JWUER+LcK?!qCnnHBOxh_PYb!oF~PkQr=GX-bm=-h@By&rU2RbfsD{MoS?R= za0kfnLJOoR&weGQQWnVN&30${1We&@eogfjyJ%l)I|8$-FMn$@LEzW${VYd ze?jL>%ylW9Jos_V)R+c>y;@x|fDj25a_=^esQuk?yk2Mvyh8u_l;9EkEQg6?4a)Xmlm{E}}cakmgbm`*`^ zWp7#)Zp?gI3bmgjXv_PyPHphO|KthMo=HCnYq}>;kV!L$^L|t%5RXO{rj1lyJ*9<} zXHD%=+!{ODnkEIIsVMKVD5jyqEpwD6tyhi9W6&&1@WAqCGaxtkKreJ`EV)R0#BQ;8 zh@hV(&vH*K2k71?5Y%s!LC^KCdUbpPHr)_AJ7hY>Al7&!Yc`8=M@n&CN!&VL-MfU9 zbcR^zZKuMIpd)_l4Xf_}+HRNR#;e2>VhlYBZS~Y72s>&ZA$Tz3H8hw{2T1u>(#{_^ zbcoo)Xz64J$F6Np)nnMZXZ zl96INWdu_412-lnGJH~8V$LG!eI@qZipCVDRu>qo^FF32VGjrvubQqATVhosbafO; zm;55LpHN=sM4KC|_>$7OW4Kv`V;s4QN~0U?(s^Q2wluu^qLzZJN~^sg3egJ^^UdXw4fIFV%bTj0kY*yZ1%PAhV=(bwcgIe_%rp#Wz|@LQ&rW- zTCx%!wt((1!mGem{)!;W3xH^xEQuVpH;`_gK|UiHkMojAdlMtTLzaKmrtYk@Dz3Ma z8vkj5>$hrJk~ZWgqr=a6dE1}Fjq5v^W{@Rwh4JU2j{{Mr-<6K-HMu8oFJ=6!SnAK_ zLD#vP!pLvLg_cXSfh1>L56j+4mGlYsu7Q<5NBvU%GKJX^L&^&5elaC`xXR+I3k3Piaxd~Tplgc4F!+sN9-3$u%c-Wt@o z9cg@>G@q-pLJCX_-8oK6k$K_`m(h92vrLBF!*#3Y=U&tKMa5|)=SlW9&y$)UYr8ii zqGowfI!=rB$G|iNzWfNm#PXV`ABldDCCK>E4v>h%+A;!-y>R=Q*z>(L7fqR9u*$&O<)zR zcSbN9D~0qSnn##udiOL)*zJhh$s$xz1#wp`f`4cZ1r2|uFW;hy193^yro0O1gbc%S z64Mjhk|(1k%En{>;l%hVMs?6_czDm)*DwaV5GS%JRK@AGAjpw!u&3hRS^%F%+1V-`t%4$Z(oc~^!JE~RSGX>VuJlI3|VCeh)#`3e`SkR4_Ft6JU#hTmsW zi-958|13~P^j&=8lZ1g3)yHhR_# zH2#*II%#fLg@k@G9nH}OhB|3M#I}4_X`R1JQDnbhhoqR~Gb!JhdKe-h>k&;ZYFS>> zN?fAD+BEUgE>+j$k#&*1o?Y6npCO7h98V~3qDkn5R5xL=UuQHP@QxZtL?-7e`!#VR zR5fYc%*{Cx0>>v&1zK4XPckR{Q2jh{{J$OpXU?PHM<8iZTnZfnXM#69azCVV^^V>L z!$1r6!=I7#M+glxb~>+jO#;MtjF52HZegh#5FRykKD#047~G_^}H8neEEQXhBBH57lBc zm&~UNo^qo$eQQIj^4gC&k}jI#bi2JSeustIQr^dlfw;RVm`d6h(pqF^?7{sJA29(f z4Kn^SQo3M=(Pk?oyq5*Vv&S<_Pdb}W>(5!KhKp9-+x1M<`D%j5P3l}R3DRJp215?v zlLs?;TSR$|Aoi_&>QYQ(f70ZyPP_ngrpWY%8D&6=0=F%{3d3#XtS5AUG^TOUs*a5y zYO}=U4IxpoA|;S4{RS!TUdyJUyo~ZJ)r`J~v6$@+TF#pZi<}#+6%qabVk&P|+v!?5 zl9TAGC#$}{vLxPtQnM8J)cb&qTc7?XVkSpt zRpPRTI<8~$qz3Jk)<#?~T}wv`?p>NQ;+h|!(Y3dj%$E#05fFjQh|SIPNNxbJ#4Ri$ zQ>Q@g9g}GPFyx-fYx+c*5fd|#=5`KxyiEH4r*&HdupBWA5G#Gl(SAla}2A=2GJk|88u^O$o@R(FmQt~seJEY*irF5_&qAu@5HsLF;Ty= z7GK9zmAr%eXp}!Ulu!UD7j49YOH1Y!?2Qnw&EYd*qsJ=g_mE;#$=pCVCxHZMi0`u7 z+)1!mMs0F}is^d8Pe$iNYDUtzlxI;dZ>MfdCvjXocxA#b4XYaLUuRXEPfFD&<=ci` zOiX2YYks&`n@*5R?R1|eC)hpiSjh3Tox2z?vqCmzZRJnd5Nz+*QsB|?FbR(D0Hi=$ zzp0<}Owu6M+<mEuH_ry?9V<1T25bqRoV%r8fnYB{Oh2$im?p?nxrN^i{F-64HOmLAjR0W@8lt>e zcui_<6Swh|Q8Ql=w_2qc9;R?4E2f(~g-2MVquwyAd=rpj0&y0AIKe%lJPSy6fyOkD z+tE9T8(iLuXiSCnT4c&0E<`WR-4sriFdolYuTQ8jdwn)m%T3<+s@6#wwKJ2_mppoT z^E7(!C+l~4oL=GTV?#Pj4Jt3E0zc+C7Ks*~{Zy5=S^0I^Q6d^!ld@cLhr?ATI~f^2 z7UfO*4`@V4<}1!)*Bwpi9J^i(w|OK#V+i! zzvyW?=6F_EHQ_v+DqA%<;i}l@$K(`d13};(A0De(iKq84vQLomF-MS!bRYH7ub%Fr zXu5u+v8xX5TA-TLgwb${&Q*!baey>uxxJPY(^A^oi9=SsJBdvXd6=c{EA&%!obIfC zM&oB9^K{04DtSkch)j26Htmzj2Ed+ZMyq!>5n-4Y)CXZu>k@6qk6zyPqblh#ce)F< z(bLa~z7Y2LOm2Qe;z`QONw0|}2^b%#t_GW!|F}$vkN#Ii6@LLk>>Up{m=TN8iFZ%1 z{0I!iAHyHTXeu}Q{@7E)nET}SWOxwX8$YnV$9FKBA$R0^j355ME&Jcb>g(Fdmz#qf|?JByHVuf2ASc@>?JjBI=qm)_O zp3K$>*4>36%iECDBE8|Je2XV{Hx-|}f%yuT1r}PvkR3AW0Rfbdf9QmVAs!6}Q4xd7 zHyMv8FM!ztj?+zcv!vM9g>`lKUKwof4g-6HLGzqbY|NLeQeJB(c$2Ehl3AShRpXK6 zZ#_lSJI(T<4A~CC<`J;Oor<^yqSQY7wF%UdK^Gf(IJd6O!*n|0lG4jNIOWzpz2;KM8eneu!hjYO)0|Hp*C6YL=nN|| zkXa$ee@7gP#vWssTD}cp5Is_m5t*dI_+^dv8)q%+ylEkbPLnIbaq<&5F65PpjC zGWkZzbA-8>>IwDb)rMX>N6Ad~V!`?|S+&d()fzFqNm*Jgw-x18ss;Wzas4G-OZk4E zg|%QG*wFIYicxh(>rb}pR3C!yWX7xaMjl-vZfi+ZIP9HQ-Bp;hmM-v+d73gM3tn6o57u+GSz8<$;jLyO&pgb>mHJkunzCH*HDfZ(CCzHYor+&TGsv38k5-{(ybD3JjGE;|x#)e&s)W=XQcbEe z^rwVXe=g0E_a#m=F5j>*zJWA)D$DzpJQ{UFj}5wxj2$^ovN~lc7#l69>zMR@_t z&gFDw<=g!_hn=S*ISC!kduL0mVnnPU?v{=6z6)Oc0IZ_Ny^r){wIsfm#*g+JSzgZv zG|TtiC7E@2mNHKhvsc3k$F`$0=|eg*wxf((t|g{3qm8e^U6mAsW@`Lc;1+u3c?URSm~s2|SHzh}jJf zFm8BxO?7*ahuBY{Pj1~;Y?8jF3i4>Cd1m9Q$dRp+m|QcAb;C1R&}))*dt|cRK!-3% z7W6%!DVpvukW4!u^qS@{l6c;a0cDn_Bgi1yAhBba4#2|b(!^X4&?A0*qniFw^ z-i&4nvsXMV`&%(gey|q7#A8w3sUQ3ii+F@>N|XVFjtbYJD=ZQO!YlFd?`PeGRcVPcC^#Yzdo>_TT9fA?YPwxC29j;ZZNftfg zPMIV_A~HD=6(o+w?rN0h13~aX(AA(z6}iFHWJh+*)e>04m#m37UozG&2z11JMPZS6 zRF6{AH9@Z1l^icG;r~oJT2oF!++ABN9Gr*kT%$zFJ?XZUY$1AH*3pPe=b7ba7!g*} z@RGCaXamMsCcQWl!gz&#KzsDVd<;>aNrr5Zq8Sw_4BV56vHbb(?#?8+ksFAjX9WSU zDqE-o4WQT-ZzF5rXh&#eYvb?^7jxxLl!)Tw_Uv$k_};@nip@zAo0RQ0pe{PbO{r=`nq2mWLhW)RW3B*YBW^yWAqLW9`xP>Kx;alg zJ~$eFd7@Q+LEfKyxQwLJx&wW8;c-9y?70bd&aU5EZ)GNPsy}f*`BL&Zmtjt(p9>t#zL9T+V~Pwqlz82RY~Z+ImRdoiocqH;U3Iqin*pdZT|+pF9=Br1Z{HYANqdy;)=TVAwOJt>*x<9n~(Y zRR?lneY1Ad4_PO2JAor*!>H4l1egJmH-VXh&Xh4kM(#{d_ni6CCbTNBHPgY@S2SKE zHB(&o)E}4-L;YdW0K@nd!f7JjH7IiZl4;UW9ALb9BZ`%F^wcJtaT@ed1p*F+V~&${ zXd-(zRIzz>&EczzpG`HIJZ^Z~snccXlOZvfdB56(kK(fCEl2zJ(Q~=8w69<0kH}K> zM4du1J~m3>^SsGwrnS zc3V@|j5C}JyI5L5JHtf-4>v7&>sY@8ve%6(??Kut?m^m-I#11I%^ zl7j&-+!=No&*J6I>XQt~84Q=uA??X7#YRxSW12Q$nmwSIt?D4!&-TeXseyWpMwwM7 z;!%nK{3b%nLG=~d8MbonSkDu_E!m9yz76|Xr!-q%b5HiMW16-RO!4VlCZKhV9TXW# z9kYds(mVL*Q#RovuLHl~el(){!!Dn?>`it^>e=`uvVB+(#GB13pCw@h-?CbDSmiA$sfq1x+!NV8F95gwM{`eTc@ zaWY3yCLZAkX5qY>SD#>8zhlHOo7H3(S+ExeBd9M(cZX9)c2K&<2|6nEv{(5c;XgnV zF}$ItBoToO&ccIWHUYv#xru$6&#pfg`3waww;c$Xh*#@|Btrs%%s}%69)*=Bb&RlRs&JfVXj4gEi=> zTV~r2a&A#BP18s5TF;1Es9#cdvgzi=Au>F6Tv1;%aY1Tyv&hXh9@Q~lTEAb=QC7`5 z492OIen^I0-^3Wjv=yEH=8(4oPpAwQaQ@_r{*#Y$=)+6`wsAfpoC#{5b`)IKW$ht& z%8@bjIm3fe&W6@(lG{}Mjxna-)C?6ftoEE+e!5}3e;r~H$;)XX6owsqhX14rP0a-w zl*A(fApFVYobQ@F_1nj*`OOwC7lF$Jf3H z$kx<1)>1~cK7_6{=PQqYMR;4{gaV?YV2b8G#DoG4puELBBAcM5<~XP8@T6VNEMyH! z90ex;Kjow9D|8psaY6lIfj3TQOA4s(}ns6}+J-~px$PS@w zPw!&7tjF{@m|62NX}t>BDb1knX^tjb&*Hp%Mg4umFK)XD&kvOD>()w9otkDJPy;w# zkt|dUt9vHZd}YGsbbDT-h+{_8cPMhN`qMh3Cq$YDI4g}+*VpEk@(~m?%||Kg zyE+C_y7}UF$%K|%E`lu9>KDm2H4vkY!i-19b76BnG-3Xbpz<{&eErqj&B3rc4;~-0 zz73>>hm*&f=k?Q+3;1OCZs5miG!VN6mKk$8;h#P$aS?xOrj5$_5Pe!9H@wj;AUPOd zM`1OcF3R-auVs)oa zk87#FzB|vqYxXo;G%jh+@Lb@#Aj3t2jh-D#O*)PL730uP&!YN$%ovuKwyr;F%sh(S z1w0p=avMc`a!(srld~^v;3(UcgPB@Q=BYb6@dzhlFYPHI@6eMf^qe9)6oaW_&b^9_ zJj|M0Ut5@oisWDtSp@D_oA6vmf^lk_efl+12R^`)vCoM54&}(==>u$r1Y4!&Q$L);SGd0QvEAVwa_DK;-k2=i zXzb}-bJ@BhS(-DdzV#WyMUg5;hKsU(;Vcz{5)TFEeAis3K)kKYWqB?SLcciQ+d!<= z&vpQ^FkQgdctG4meT5!lP;5w+KyqhBFbKqa?lL!- za2am3ehR%F7vY!3()ljxD~^*bMmA2(>{?`)c0nCkUH)0sx8rIbP_#yvr(L>R^&N^j z%3!%>OxT=ZrPZHExS^kO_jbYgFxG{7=?LgnC};p_ukguu5lF`6RuK1BP3 zVj&f!-$j$0bOhp|Nlui4ee#@9P8n#A7=4%!Phe0QN37NJ8JfTxSv>86cbe?t=ZpZT z=%6j;qEW^;7sQ5s+W9mrjR)_=G3=F|b7aZMs650@>C=7=lF{X+A{P+yS(KiXW{iPs z-&qHFj0aS35N>^mfMG1Ku*eC0-V2ty$G6KzeOX{!@+a|BUm?Ry^(`0VVQ$J|cHmHd z5+@)YIvov{)x;yxTZk5VHct>)6C}Qwg~=C)_E3~FNJd~6)VDK#$c6~cYClj2wEQlrvU41iFA^;@hGd%wEgggo3 zE+#Ra=Yp8zl;@6aWAK2mqzLa6B-K$ULq^0RY4N1OO5M003}ra&&cP zb!Bs9FLrNZE_8TwWZTP<^fU|w;5}75q^51U4Y4&yaSG;X7+7$rVg+m{c6l*6K9c2z z#pHaFol7U_D?jw*7w6~m?}z8#PhWmPbbIiKzUODY(T%<<0||BB&tC_=BJrd;RK6q2 z>{$%#*#|aCm*r7t7{ahc@`Y%gCe|B z;?+6}o1@PzO>sz#`Ic)?CQG7l&27iJJ0Y?~;x25imMwWlJjut@vLg#wCQ=tqpw<1- zy`8^~$lqUa8;h(u#!}uaXk;Np-st@K{E5Ag0j{|XoPWBwmPSRx+r@mNudvsQx}86> zU-v9>ZTzon)lQz*`O03Xfjzy^aoNiaODY09^0z(1Uy)QydW_{(_{#HlL(yufRMdn+ zZ}}b%op010B!gQ)8@?58MR!uG6B{u3Iuj0T&a3nD$VJy`8%4tmN#waoC)st+HQ3bM zVum;l3RUp@{a#vD6q0Xws-*LG)lzBc@M`q}H@Me3BfZgYk1K_+yiNh|GbI9Vl&L&-8`YtR~h;6jr!b{NKE(aIDc!mLbKfxhxa@!kWyl2IWRS2SrJ;09dQ&~;8`WG zV0kCcG*ulkvGj7VkdZw*upufd&=MQIMT*7wX`pKGLoKQqz&3e%*w*^3Fz~)SCzZFp zlk0y2I>{k#9(kfpNr-AVhr6pJ1_h@YKB&5~0|yn>S%|ApolG>i=ZZXktA(xAurCxx z21>*2gi6THLzFt$C6NO&W~DBk7_FYSveVGlR0V43{Bi6K1=)tWQcG+Sqz$lzTJ~q& z=#4BAsf#DPRXy>(1<%no*AP#dsIKBY)g1ESgC?w%EsEvbA6s;!^!BiIQm%zU3SO7) zMyuBWUX6iAr;qdR!HwEZiQ!5zP~Rz$%TGxZI;&tyY_vz*9ysIR81=jAMv~W}Al~y% ziC}p;B!fyDRR}AN>42P{5Kh`HZ&_$B!z@?iu_!xPo}UIBi5GQ()!7m|WrFG?R)-4( zW6I%Oyz9ZaII4j?6~LpxgK^++XO$?(3&o8~HY*8Hoj%BEdu(J;Ed}|!jSN{Ps5-l$ z%oZc}PKg$3m=~(sPKn$IiF?$g&K6ynpz2i3&Vx+s*$0#mii0w;OAP1lN8Zfry+5Ro zE(Ndl0mIHXr4KC6PZT$5iNQz(s)f}t^V^;QvGA=4RYNwYX5b)CjG%q~ilU4tT6w^h z{rUoSvrpR3%=S_dUIwbtE3Y&4T_91kknz;{%P$E}# z;52-brBb`JQKiI?Jf%*#Fji}Mymawpe)C%mALB7na9Th-X5Jp>Z-$&$oOPh)Jv*XR zd?U3qQgk_y15f;@Z~$H=TFjFYq8ctVeM~a&PVGU#^D~Sy8ilSEzZC0G4cn_x)GfVK zdw#8SDP{G`VI34jURc7sun)J}`FZbTe&oCFJt~coLCxEP7N*xi*NR_?b*L_u)wC4H zIt}j|v*Zr%`TUs{R`)H3YOp1aLKadOr*;n1r6?3dpG4PK!->Oj*`w4^zi*UiibLwe zx>mFVN+QohI?0oDB6>0r!v~qN8rV}EeL(kKDU@EUOTnv`ff|&BOP@Pl0s6h;0v;sE z_9Pk0RCWs0g{)Du#8F5PSJ#V|RSsGm8_uB;jByTiP_OrJTAf}iUaPtm?R8An;-IC< z;bp(Yc69#wbmd`wJ3n{-P`sCe_QGwL#bOL~N;FP?zxhl2-!ICTw(VUg@o?=MIq(8K zt3(>+g|b+u>r`82%hVAw@`dy7r{+ZNL+`y^2e;VYB%`#$QbORU!+&KTPvqbUHC4~q zX>*o%&RGXJyu}@lL3ey}NmOJ+EeO2=2bSm^AJU`1VOo_a6ip7PQzj@>job(N&R6C; zS?I`(O3IhcU$;VNRm`kZFsCWWz;nBn?1>rQc03R-61nWVa+EsBA$7`tWQ&T#7j$@T zO^SF@b!Ar{saX1vDQ*++AO}w<{89p`T1n^t>l6%2RV2`A-p1d+l%Ch z>M9e77HXKo5~9g|Nivp=w$f<0P_v9icJKw=rL_CJvYlGC4fi)5v5_Em^2Gb^-`k#r z)SBn7Qh4<;i5L2O_Eg||O8M)HM;0Z=_1&Iyt@x#wLo`(qrR>F=uxCfy;Ze<5Hc(n3 zg=FUezLBrScS<1+>67D|{rT&y@JPwzsRs7E8d=Ui-pY-F*5*{&`D1<7D6_s_2T=5- z+)!<$Wm33a&v&p<-$~8qXWwl{QN0fGYvqG<r>~yz)%nx4 zq)Lef8i}PA9@0X{-ShnPMxu~Ta!8#Oh|dcsVuBdhvtPhB=&SRQCF`ZPe7hnSOwF}4 z-%*wl5~L8YlSK-sizmEQEyc5tNi{>|Ajf!A(N-63c`JBAA-3qq&KleKii(UZtz20s zu>uW;8=sfLn1Nq7F5zVu+AJ&b#z-7uP+^2rvcwyR7uC@cJ7pqu5;U@zgp$zY;tjN47;e zSw652REsc$v1~gHpu1=vF9EkQXYP$nyO3##`C&40_u4sHMC5W zsl!%+y`9m7&|l*|4MjJSSr3 z1xIxLOeoHu`^SfM5;+)y?dhrW)A>4~vPL06)ojHrP^Rjf$$jwrvF#*&2=BN#x4F&d zwcBXN_^qU@13W%Z4*D^f0mdCOuckslvyxz%g92zt$6;}Qoa+~7yb947(4;1rc8TM#jUBk4-;8pjHXgS^WyF1%@J>5TDCGb3Jqor$DDlwuw*PmMyRZ2EAd5X$(^0l950_T7^5jlIto}Un zMY6F}T;|=DMUd5nuV7%yMHm!>j>uv`mhp7h>b>JO6m+tthJZjT#T)D?hE)rQp@JvMRUhuC#LRDTmPX!)7ecUy&H> zLY|}1Z{v5yATLz&*rWUW!(X_f!o)jSq=343!dum{%`ri;MMw5r4Ck*!y|)e2(nxmj z{Jj+h8`fxKp-8qssdgtF%&`^oxkP|U`DAU*6VjLmO_b4{%T>j%Eu#@ zI_~az{n1#wZFyuO1Y3w_R;Ww9<%M-|OT1JvycHUWdHz-qgL4d~XnT;uT1nVG2S&kS8!6Wk z|6a<#0QT0<{;eg(`WF%_Ts~+*ARZy*X4`|T)k3sT!yNRtz!=lmWDsj;LHx_r*=)IP z0zvp$dkoh@B50?Pe3E&Z%qnMc&a9Gbvek>lrmAV2#ihRL287U$Em@k26CYOhfMas~P zr*Cb$NEE6z%y>p2eur3-i0KTkSB{u}yU~o+@1&&d(W2vS1I^1tVN1wWWpyMU6bx z^z)TwPkK1*5`=VpJM6d|m?=eLKRBD%F9+A1yvyW|IjoLye;zDCmfnjbcC+UVJ@2^+ zL(lCYK&=a1u%ofk-_Jl_jIKNqZzVnDlKXB_dhj;zz2sd$dKaYCV{w(|??n3L|}FdkDuwjjHql%(+7?07YDMEah45n>!& z`LNQf1afh|N(xfaXfdAr;M_QOH{z})KC>&LVFNk)l-^8usWv|XRtWRxWj zd8SbKr0BR<1GZ9QTF$?pHWIte=t9U_{ZFWI<<>e5ZU3MOY&r{L=Sc4Pd8Gq;j ze90*X)rq(eiOfTKIFlOYaO_=e<=LX#B#6faEw@SdBr9`TBCyufl`TwLGZEJV*o2Di zh)S9v?@`>gY!G-J{y}}g`E3MdOiP2zV{V8 zRRF#Ul^d6)6LMqc5AqgMyTd)(m;etPeqIa1RB1mpseCm8q3!5pm*%}yZMthK0^7tc zy4(5rV-EQyJF-MJsocTyN?@9L<`I+@5k>9u;WgeL04Q;^in_Ps7RRS7855SR15@N^jaG?mrHlg8; zMVBNff*NE|w>q?_U=t#ZS*5uP3HMIH95)`LBUC3Wu$^DnqxB+Nx%E6aW%DIzZqf!^ zaXvWzVuNyiLa|ODozT5Z>5P9Fh0pieFwLx7#VJ@2la^> zWO)fstPU;en!{a4xe_pNy=~{$9Ix$S1Ya+7-!sM)tSei2N%b%_&?agRJb-=nxQlC2 zTQGMwb%M@Vi{>^VYIZ`VmTiWV>$&T;BGW#=JuCLJ+cw1HbW4)?OsGyd_AwqdV4bnats|L0p zsli1i_a6NnPGv&0I={u2!u1SX!aDIINY*ev*6Doh$Nn0~ZMyoHsW>#kyrlHS*sGIQ z`@fc}t1Cx_$9p(i`TSg+)YWm7+!k3JH$=F#3 zsewzl24Qh@=9C?{{8H7hR2no4YZJXi=X-MDVrmp`UInv}ayH2xy&2CGVUq;&cFP** zi&5}hsOKkvebOWe>Jv3+23tgJf>a{bl6;?GzDeMiG|XDZ=QX_ca9p%ITe(O$UGN|~ z{9396aSCX8tcLfgjerK%z_!LM@Gg^cnTVn6g0c@Oi38bLj__du!9c+rB~6kEGo%EA zDuwy6_+Jj$j&=pvo;S9q<8}yd!EBF9gh15BB^I$H?T*nQewX+iz(Ajo&QSJ9_5d>H zR~=eVCOM=DcvEPjc3uh5aN6kjRGdA(K%2Z}>ZtJ00>K*E`RODV`RM@I@iE~1%sQqT;$+Q60$=)1UffZogH9k_EKHmEG`BN46j#;tjlr7e7$W&k@l+atFRL*+oz$YPke-Ck5D${8su6 zkx`CY*#N^Z@$n5P?OlKyMLPm&6z$T-@X{ev9hwD#&TCu#?z`cKK=aoXt+AZ8J!P;~p>*ij&WN?niX(OY)v<(M zj*Kf^8r~1rPLG?`bmdK&pFqNSG8Mh#o?o3OODnZRN4N89ldID0d6xy#i_tI(`U8%y zzW*0gofX*9Q)+z#0^Y00aZ=jWCIierzo%o>w*z(OWd6FAic|k6c}yrXXb&k z`A;$-EvU9~?(WbX*_?DjCp~ruP#4z}q)si+CP*dj;&6UCp&Ozu*e6Hx7B#T$2wM?n zoQAJ?8v(@5L%f*m|h54z3aXnm6jTy;8=3O?SHl|P0Y&s~Ca$;FsG5`(2-Wyl7q z;+lfA6VU=_6N)(Aos^0x=(*ucypJNI{2`ZJ9ariD&o3*2-~+aZbp&06eG~o4lzvw- z59$5=u%YD=zudxNy2Gfwm>fAy1C0f~RJzOL(s!C41%Ik4%ofbiGjM)iimuF7SEYJj zd(XuX#DWN%$8Y?#P)6fH&B(14(T^3@KninqU?;qnHbf1ViBHM|PQc@O3fHdv2{MX- zeE0^~_*@PhHW5&*^qmRnxW^8}lf47qvpqFeo!|8P583dcK^`^VM{ynH&$-D*sZTEB zi~B={;g_?(9;^$FaFtO;8?A4q9m$(OGWKx*Llt8A0}Fp3>J(n#l8sQB1dVK$O>h$n zW|s*``()0v^GxW32pyo_`7T))eKCD;HJJBF-L18DeKBk5zILI3YbA~>ry@xLb)pSA zzfxiBdYA;Il{MHFl)9J_4Sd=4ZNm>{G?~|fk?M4LdzV1=%RAb^x?qHPVqaY(+tSE_ zVhKz~qg(e8+g|QW_pTNsfw>14k1q@O_3&Yz-|3J^5#w@8r4*iD!zS%vY$DzPfo=FwxIJfSZeUn;o*c1RJM20rLeiiFL-o3HM>o+;1bpa zBixp_P1=h#H#*?}ZPBQ{nFOs-o2Wru7H0fr?Dxo~fGU-csYM)8kdiR>z!p)PAa!DN z#GR2?oezRS8>Sk(2Xs*1WkOo92kU|+tMRW25y@-2;5x~ImgrrG=xx{S#|~&iOg5-e zew^RqwH#PH(Ff+ek%)UGzbzQdMEr$MTCHU=UR7CLER}ztE0_uDF{XQe{*zI>37@an zR&jq<6VflwI%kUrN1v8F{`(Zyn;rx1*naM0R zWGm;N1DbRw_b=iUx zk|n3EOdR5xbW$WA4Z&umi%smTPIJvIszp7u@^OAHhMB&LYYI{lDwQ|ESJ%Bp5SLxfCc4 z4!(OxKreTpqyT2HGmwqS93JZp^l;w=q?D1^q#^!%t9j>2Zh041)Zk=6cV>+F_f z*J&vHtm?$mtv!j=SV?oHpN0(=6jbdC3b>)T>ldS=wPa_2I%jKrl5EFGoc~OEHUB70 z68oR!ZWd;Nm01!PFWN{^1iP<6-qAo+w-ZI$8f>A5XD9>bZ;qXu^~7y3Rs$NpAEwD9 zR4jL*5&J$RpW1@U3g!ACF{v#7YnDOY(FSFOnn7);ub)}0$(lj!4Z0Twcj%peyq$;^ z>C|stJ9Al29$KZx%~2-=_?Y#mfixRNc^0UWL*1|PW9P3QHO3>SA9$P#qg znPokDdam^N=9~)_9gNY!FG?iYAWy6#no}*0g4%l7%bKJeII!q(Y|-V&Nwzb4uhWt^ zL>S(a&};B!gB+Nl9(YpN51Y7)8O+27&xXkjbmziJ<}ojQ+ku!0r?v}hEDRu)1X!sH z1sx(kQERw$J~^#p(T>RT-W7O-^twm@9Mm8Wp|TFF?IG{21j@64eHMQ1BGFFh!KH>M zEM^ACi>kp6$0!f=U6er_K}bfj)}eSul@n%|&kF}<;(p_E+WlI>;uIaA2~l+s*r>{# zG+{oWozOe4o$9GX>x5-XmUVDBu}Ww6()rQDJvM4t2k*2W)Z#p4Z$-i@i%PXXeB%O1 z)N0nElux(c>-G%f3LNOc*$dxF!%(JU0Ii{M$pL!L`l3RXH`X(MOGK{@PbKUAlF3et z{%-LEQUYH;51#1!wQl5OR450dzawYC>MMZuBDd;9wQG|PmErPlyAYTpPNKJTt={;O zQAXaK9v%Aov{@}@=5(TwEHpRE4qc5q2&RtCd}G#MPo?sicV@;d=yTT3o{h3kX>`i? zk@*qmS-a@M1()u)^Zh+yo}syXtHX^xxp)8Xyg!xB5*(L=EYC~IjI!pv#8(8s&9-u0 zbi6%B?8W>G&?u6sp0p53MpOVC|AR*fzJ+u4j7eUF5V?fY<&k6fvz+;yurr?$^_*!P zZ3m)clN!4Bx;x7Lruae$kwIMDFcvL6j(>6~)dOC?LKax5)2#qisGLzcoK1SO3>rZj z)XFK`aZRYBZ0k@mZ9Bm?Aw4s;SS>;LmL*|6qYt(dj_{gEKCL8RY#~(mK#P^3rHHr<6~l zw(Y>ZgtqwmEO9t1{%CDDBjp?~#bI3%7~b0c98{c)poSTvE{0J+1fWl?H#oe*`TF_b za#6l@n=wbQJQ*F~~@F_d^$fy+~E5;F&QlZ_;do>&ZEh2Xfpk0{5~{ zD(k@3(RSeLUu{+ip0e`9UqBzs=4NR!O$sg)rqs}Zzl0Q-jnJSfsZMApp|CT(C$8V= zuy!qcDRwYg$xUl<>_OhTGPUVytpx7UwxIPQ6o+a^XP{)CD0mYJUG$!0gP3N7Zgx}~gi%cD6ISaLfMh&L zg0g*LPj9^oo35eHG8rKzbl-BDVrwmoEH?|_;A(Lq2-+mo2?h5gz{+(0bTVC|GH?;f zR4Oqh3TheR#Spw>fR&!`)jB`1ogHk0oOvp?eo*V6J+1sJ5jr-=fm*2Bd;g?UhRp@A z&kP+`yFx5W1`R@&eJSv+96qELsEbXv68QSHSw)RcyIZ!oN)4rDW4ZfjRw)|Vgfb2A zBuhYT29st>$PkXrz?E7j8{~<-Zlh-Ap(VRiD2f2ciFNC^89=X+u+JG=s17xXry{V~ zVr$uh_vMD&`e09|M;XFt2Z=$y$i4;?Sed1RCmBE`l~rtqdJI|D2?fSo7DjvC5;*na zVw#m=YY%dxEJc^VO(RT8EjPadc*S-!kUEr1%j=UCt+-Xvz<*+ zkt(o#%J^G8&WCIIwxfRi@qz|d1t z=M#BH8`XZnqzlMtOPI$bY-EfqCYC@XXpDkeIG zk+7eog&OQy91wDiX7wf-`a>YEpLAy<)J`o`R#5DxfJRAo4{btOq5D<>yj*MnX}K2Q z=1(c@7BxRbLbUK0gfff3ddPHBYe8`k4=V3-@o3?#D%sNkgYrkDDgumtFB2b zi;67wgw37FU{7c7@di~c+a}9w0k1zp%S^30m7r@(HKM0OJlZ)U49x4$`TNtXAs`vKrEaQnvz9gF-e~TQtF*PjZtQll3XA z3nca_KrNvgtUz-4Z?vV();_d~hacCOZ3{j=JBv~Uwl%pRaD$B!z~VDVS4h2C0PLm^ zdS9_ZwteAbpL#v?H=LT5Cl(DLM#1g)XLnf+-B-mfRwWFuPVu{hO6Qhfhh8LXIj&5D zH0%-wkv(MqqaWvPsm!qZ1650;?Q4V_zV==x#g~}^4{jv8mLjBaLsZx=T z6Iejm3L&a=b`WMLo=oyi0Fhy}nzu=YXWty87FexU`Ud$5Y2mHKw^o8I_jOw5uvZJ= zm7-dhIX;fehl;01&*QOkl*>oI;Ki;e@&+a42R#S-$+0t!R%{STudlz%Y=+Dtcjtui zHyww=7GwNXbP2BBqw+n*@V(3>yeNBAtU4%yZC|idJPaOL0RE29u|92+7S3e4*&viy zrA?nfcYzp$c`v_hmb42d6)zumU}$f8z$RfM$UTNW@!8jbc0vcYCLMZ6rviSy?GKB) z0gFtZA=kZxYNJ?aohUbHGm)9!?HcebE!7Vwlk8g=#NZ9Z$_G+)rbJr#(f%X^x91@? z-5{T(0gU3IzuQZG7HW89cr8g~(Av>RT5rInQFkw}aMn^~4|0LrD8&JJ6MdZyb3Ke6 z=J#(?afmbtqgAv9#jf@r;&6NqjjL`@p*Yk+FJT1sTGoV$EH0nHMH*Ba%3~%8C<8xu z64+Us5aoeXef{eZ#a@4w1){u+Lx$O=HQ(hRyO;x~aXf2`bu5wf88^+RUg zP)}$BS@u(EsKI8lp5joWgu8~hzzQXQ9(g!+a@t^(6WfW~cgKfkduJ_;%>3&o-?KLdqnmPOwx4V$+wb1^v)9 zRAE1kUr;e{y%9E{#@Ir{37jiprc<$fA_S;mZPif3o>|jAVLfCG`#fxuuop-SU*McF z8z8zE5r@V-k{~9sPwfhu-mQ2EQUrboWkJRFBHIDCcvmmD31zw^%^l1^`jJ65J=7;y z3n|yDO6&yu!768n6BrFy_zd@_(uTD1zC zrF;Qw54{S7kBAdJ__iWer>;w}TGDZXr7|!JG{!kd>kJ&aLElS~cQ5E_y^%Lc@qqYn zO_RGu^RJ(Xx-O~54*=dkA-^xHq*t_k0+pAeDn(txY9&$0zS1fm8_@z5u1S)fYgG~n#)2UcB~q(N_z>Vz%yDv({Lg3J#K zsStOmgo36vsW$|+)8jK2Ix7Lw1Ga>RkSx^`b^y-M zfhCmzoc00GIFb3Wxv2}pWeV8fV_$t{JF~NFttvqE8^9o2aR38PTcV`N{CoKdn#7@# zKyR4;*WV{w6uG&y%UqWAEwuo&DxltUnHe+)syZKnro$*l;l9BNMV+uvxyPh4TG}k+H=#H* zchq08Yub;0qR)_qN$!&@A(Mv0+ohoLc0dOCy)1Lk=Y9{3FQlW49hCjq=a?{Hivp!m zj1rfU|N4+60w1x@2#UL5`?a(Xy-K~JM>>5T^7_S||KM?SUtr%ScA-~k3Wz&Zfw%nw zjjUmY)`-?wD0H>n7};kF_$)1QzuVElCX=N)Al_1uGb3>|>Rwzr6$Di_0mY|WB!k9a zg=`9c5lWp6RD1&2)MQfWyq(d>{H!C~CJ>zpz(QO%`1=|Ke4@O5(p{-_Hd0INxrYGk zE|s*0-ok1v?m-v{?zRa0TphmQhoHemiAtN)_jz#=Ch!hesB(a8_FKqiSj+qCXa0A% zU)TZcPtiHL@YHDh5wA{t9slOVe(#@pU^z^T(f7_jmc%6S*Tr(sMQT?Mz}x2pgbHk& zND`QsinboyXJdF_nD{@QrFV7~!cZsdGeaw+rr#*9p9z1;j0&NaElB4AtzA7JzAA!{ z$6J@dw9`UxNSxUOHlZw3hiX-VEoCEalA!g*lKXp!9l*sJt0ufz60AcTRGhq0YcJPQ zd(NY2*<;mDg_Wlpr%Gb*^;c+-*%;FGVx)S@pmBvJX1L*e`|OO=h%=}kB^0BcfRvRj z39=c5^S&=~z)b5~JM77^Gmiug@58O63YJI(M4@_&V+LTv+3 zE(WCx9AWFg&_?0(bXf$O@w{pjE@4(!JyL%{+2YbdH$k%>*sec{PW!T1`{op95on2h z5~wsSM6CjPiaLp_JQ3lXmQ|gi@|EjKWBvVt6$sXWmWmRUKI~naBxt>XTUc!N_zQFd zlxb9TWZg@+d)VIu67v_nL!}zqJ=4ifm=(+ov=!*y zB!Pw4!oPCX9x~YqiiHN$3WfWX^Z3M$=-`!hx*1@WR0k{tpD%`oZ^}=vKd#akYP}9t zCzH-tshPbRLDz)pB-;uIflFL+1*t4(^P+}`{g4jzgmyv)H=VBqxTAMKCB&<}!N*@- z%OC{HV$|0^Ixy7)-8utOx(Ky{L9vYj=7DRcI$JV&i*W1o7=?Qp^T1%uo!s!w$*p{I zMk>jmE~!mBI-zVbXavXXIWf`6#s$)QY<*$fVI^t;Yr+VjExtI>!ARIc0v|$JG8+>G zT9wVtoC()DcxwfyRXTXmwF5&&sl~+ymt^Xm`pg;JKe&G;TE_-z+|9E>JU#Pf%DMZcjH~VpsBFOiQakb)RJr`wb*6=2*fYL z%6HGdxt3lnTcUXu(lPY$c`nA^`^bQ~MDKyeLEk)`emvzb{^hp=_avYtFYv!ALL z9c(A`!F!W*u;&ay$l`;VXGX=cNa{@5x;jDYjeNy7kIAn;CoP1%VMN9r2XG910p@ay z{RJ0-UdCTaAyDVnU(kKE+5r`7f$}Ia&<9(fRklj^fznQizJq2-$Vf|-m9*)D$-ds5 z!*3JHJiwETu;^40ZNC$1&(|%}EmhVeTUe4_mMNNw;m5CKapGEU21==t@cOG0TdH*E zsnSU^%Lr$EpN)#d;c=`Z&+<`=hxpSMU5VF$dkfWroEww zvIsS6lzK&oMHP0D23R4RP+xz_fO^u>L4CE8(`#Y(N009|GV@07ZCldc7X`n5ZToUY z7CvwfG*}EiQlGTd0>ww_!4BC<4QQnaK;!P{iEZ#Yu%6;4a`WNr#OtEy!|UhW_l5Jy z-f?x3u`{JJO9BQPIccTV*+?x_Gimpx3vjf-j$wyLm@Sd5>{1PY+ZkteI5EP0xAzE| zr2J3de~Q=$=u^&4F0>J`9o}`94MmS@QU|RUA?!bF5VF0Y`_Ajg zmR;Fif8{J~r3J;;GD>2VK~5}-3>raJy68+Wottd-&2f5lBx*^}Cs#iIMh_Uh1C_>u z>u@X`+)x<~8=7I?15*uHL_KL?_Lod@LLY1=WSFmDo*m!1+gkCvHvE=+k3PhC#rxea zY}4ET@dyL7mIRh6lcZ(GN$mPT<^ozTGM~^oK4eYq!PnnGRj4=X;4+XG-oy972DC{MGV3ct2lh z%hF&MicpaT6%yx^-d6==K@YjhG^qj0Rv1)%5-pwR3Y-?&cVJC?GKT&FEg!Zw;#Cq} zKa)6)h(6d(IKpdE43<-(o+`9KrwZ<6I1fp*4tvsGNZMqO6Pppnf;h(L|2W>g5znAe z@XPe%cmB+rATG%e?&@U$?sDZ^`Bthw12=)hY6;(|&(y*QXOT35>`VOih-P?66+(mJ zosA?1_HJ){f1VECpqET8nZV%!VSY!DIKul%<;N@rdpdyKQTrjw?L~xwFlj2p zzVcjP&rN@$(9Ui=(;yHM(dCr z@)hDZB?FfWb(0RBWN6^^(_NWXsYW`1lPpU!#R+dh!6r^};_Gh=mPKmE+le({kacj7 zUZulq15f#ulery6eTLXM7QbCLL-SzhR`S$FD-pkky ztn-dNZVui}?)#GMH|eBx5btpf$Gc}FFPv5- zw_eVUF{O~>L1+PPrFF>5(Czl-T7X7b_#73V?55%@5S);kQCy9(8}=r)&iEM}W!e+% zH$knvZyozAl*L?puz_7D^8in>4y{urS8DC0TI%a(QZMDyhX8C3#o>kENjw95$ShR) zi?j~KJE{=l{>zD#%;lQsWQ=Ms59x!Mh*LshYUb)qxMCmd80YU;kpmpmsw6O^tQ8yM zph*74G5NKwdgybHOVZ27Vb=AqM}8`^E{7iR`S>S?xg6%mAI-*9Wsz&~d%%1BK)KD8 zi!G8Gl_p(O0$#sJbAhe10UBfvQABB*#)I&`%=;n)HvAFh_{bDmy~5&RAkbhvWan}$ zN*m!tVBwTYerkPqI1tjE<%A==c50o@(M_#J=MS%R8Vz$@rT1iQdbWeL8Nes%RuWVe zw5#Z%R;cUl0Hd%cJ7)dR)}eSu?Zq;tTN#u=^9ZhC^a_cO;n|s^c$KiPpYb#p*feRB z@)&4UCzRJ!8sLrq{(cf{djmMEQJUZM4(=s(j@G)#!#bd19AQb7fL?ub?3?4gLQ+d* z;Pva;WVY_DWoveJGR0t%)VY&-($Ybna$*kJ5g4@#)l&HZQhH9<346m(Elt9{A6V)H z>@pAVBT;@uZB7d-NQQP$+Ic161t^)6oNyI67CkJ z_$5@QK9x5QaAenzhWHK}sfWx0y@#MHPtGLtI=#*9^%M3Ot%LkP!F?10Lq>^jFo9dy zO3;;sw5?Ku;yGQwQtGv!!YU9r+Do<6-e&9N@hb~pDo!B>8}T6t zS^Hvb1{KQHoTN~r>`*?TPb?>N@a|L2a-B-*BArT0bi%Dyn5_cJ0=+`Izsa?*|MUi` zZ<0`*38Ok=<23uq{P~I1XXOwW`IRl_jCL?G&krP8p z7#u)A*Rqn<9&6A~h*9>?0_$axPw)rqd-(wh#i1&x^B^1Ki7nwFq@ry4pKR25THQeQSrGFLrBq<+mAWb5E)Hn2 z60}MuC0XbsR{~c-d^M#w&?tCAfLyQwwR}Ko$W=m?xiPR5N|gi)Sf$!Sx9Juhv$ZUi zfWgNg>GjtPxpe3umcPTo`Q0w7)T_`b)b~kN(^bBCmSvofYfhU?p?=SSr(cFmp^DBW z4|_HVW$s{vm0EkGZiUpS4*?iu5fmXhc@O<4sCF+DhibJARCPiu<{OGY6H1+p)KX<7 zJp@n`s!s!?IF$W)6iS_q)KX<7v8W0aMVmThOI4{S)a|Q#RTAyaO{G~i5BTz>G*Y&) zzyA+?{R&ycL)VLi-lai{h8{PQWs=}F-BNW~fCg!jzx00ge7JVP5yojb{7ongS}2;@ zWRMf7wue3h!gL&YKsZvWgqgy=w;!loj|))b!(K|eNFx=$$7@FLDu1u;>_u)0!*45+ z@>*^9ZE(>O$5rsJsWbyD*(%;sA#DOezz;izky)w=5mO{Nv849ElPCSdK`O&hgU_Us zP$aHr<01x*9?T1&k^NrQzB!rVEF~g*5BZQqLz_?>$~~c8rAjITjnb?`WEPnPP-+Q% z{i<{094z`~OJbEZQh3rrK%!1st85Ckkh!$72=FVUz)IVaFsCF3PP%QcKaiLG5@qAt ze2XEvN~$M}hhvOry%FyrSGn&E5e}aCE8@Bd@bzyp!x%4gc(Wr*{@+Nhfox^FeGzoQ zejLn4dT@>6(8lmSpwGuM#i87aNep5hNY)AI@PYR*ufK;hKEa9e6$zLOvg>vtCoYn} zO*y@_Q=Lb&4JxBVzC?0%N1aE{lr=W~18tCJ+ICW%xs>TVWKGAn;|*Gs;mhGJ|D8vp zx-1p|+sx7GepN}xnciCuwj(-l6v%d8|9bNzXFezF%#nckVQtPA?$pa~K?^_4Thc zI*uQEV}!GS=cfA52`&~C$dFkm<6uIU9UJ~EbPidLf3cPpS*@j-n+Mmq@a$nY+=rhd ze)f1A838*xZ1}!e4QK*Et7L~3nT3Qk0Bi)6HK_^dNzkbP&>P~F#P?U=d{US*iif(F z)Ck0r+euF7gKZ$IAJ~aI#CZ6qQzat8&$%tAGB=t4O;i=`~6C zD#t2Q>8j8Apiw}I23oqkvtI0xFW7emok zCx_H#1GtN@0UztOqO3XJ&x(r1^;80~aIbfI;28e(dCRx&u5$i*l|hAod+kg0D#D-t zDXurZlCIl|V)3}@)JpRb9%;@$f%&#>->Nt;P*JYb+=B7;xzPBGN2l!E|qh7Um=7oUc2cFnRqwVhFVzjR*J>7I~vaRuvdmt#Xh7CxFzrokfmV*!KCI-e;S33V%fmV@rJO5nN&r<5Tyvf(#st_hiyV-iJ998(S ze2~?`AvF%~o*PM#vm#2>rG_$A#ihjSHeV5Z zBh>Q+;KD>G6jCRLyxASm8!=NH)Sc-INu$K>PHR)G#wS5+bzV6C>TkB9PmRr*0%!XG z4kHh&ZP?2GLsRD?)U-1azEeuEY?i7K1!Suj`+inOUlObqp}3AI1h|Ys?}!bKwb|!=B4x3(y+GDa0R&4LScx-njM9O zLOA@0IR23fC3Cn3NA627Pr}J*X?INHY1D;L7&ypLg58y8N+@RF{p1uhrs2^mB_FhH z5)|sdtx?nPBeDHNd&0e(TZQyXgTFNT9}jI;>2d@!cx1VPd_KC4C zT(HYwwV<6rER=y+&)N;+sK$BWgKh_@lfm`7ui*2KDlq;)>K4itc?;^PQKGkh1inWV zGMq0HE-)lKig_#)X90md76|U z{5Q88%9qGrqUL<li-uwJi+s?h5t6m z(U*7>HsP?i6+x^X6e{7^hv;zlI>#P+<}Xnri_`bz{L97_*B=tDKaU4Xc8nYpiYAB9 z6hb{;02K3cQ!JrL#y#gp$=B7b(GD03#>WH7AQ|`g>;J? zNpV1s+LKbkH+N~&=Qe|WxUen+(l86$3c1#7bk)frZ{n;&z;p|oZ3EWCtL88cd5WZ8 z8g*;*97f?BC5M?pqn=ZtEpblRH#C~+9@Nq_JSl_=%3`5xJXA+RQ{e10(1Vh=^&5Gx z&6WP)hl3Tw12AlVAJZGL$?pWTM&fDc}T7jk2Y&NAbWRU7VuqLbKS)OGUXc zE*j)PhP{m|$z!1)C#t)mVokw!v& zA61Kuy0fsev${v>i%YeduU}oCmza<$g$jpzaOA#f^?*|li9;Hki;b+l;ZL4fE(GD{ zir}Lrs#y$Ag7CIlga=%%yS3>S_rZ>IpF+WW9NVChsW7fKOA4^n2}maw*6XoQwx+<@ zX`ly3o+Lrl>LJ7vRJ@Jgfy0vMUkcCcaGcMNcHqDuaVVOTm5}hfyaG$75FW}rkHQhe zSwqdq(|DXOCr*kSAD-x0@nMN|cuDA}a(y_D%;TWMvIR~-!knnfbCeqD&Q>T}Q{eE( zVS-A)b$CDn4ilP7_xd15Aq{h4v~hYPjS?0}kH&+xQ1;k!iZ$*Xe8~s*D!ws1-U$Oj z$9ync?-au2gov}qGah{-Kgq0$$8n3Cc(w71axUQmWvGLc1ws7 zd$@*Gt9zQ7gF@X|C{e?l7;PM%oYePw4YcQaYC`a9=-YZbrqJ@dQ&Z>T`k3jHHDtqM z9YTbILh9s@H~ot}W?SQ<%8wUVZ>w|tGCB&LuP_zLfwv%A(v*7g*p`y)ZJvf}3-i3} zXS~uK&pQzdWortYod(3obJ71N9TE=06IIplebwvdKY>lV_`1o7*+a!^kkQgA4{COynYg}$FS zj)>H=@#oAn|98P zG}?nW!I30*G#)AW8-YVxsY1c?6~=x=##2r-3TacRwqZBnDo(bE+9_1#U31FwFB{uPW-n?3>-DF*F9^v4gPqL5@OXKk+<3#mlOT_AtulESI#Az;8 z5=jw-#=T}^BU7ZWIWOA^?-~ow4LsU-{5`SI7BnZ` zLLTao@HA^d63*T76QwQVNGYt3&%45^yokSzxn8n534XG=pYHK zNeUEKo0`5@es!MIgObY1ys|8rzIGmKodog;eEw57F?v2K;Ex081}PMvP7HXT%MC{G z`Sbl`uN-y;7#8>SgsCe>)jN8HUn_6qbdpce5J7CKv^Z447h0H;d*WE*l8BcD%-TaR zNx0e;(`YfBHJxfr^PrV;>@2}sAY82OSJW&xfxc}SB7@4pvLFR>k^-SVu8`{+?Qvea zdih_V_6&_u@rIfKK3B_bHo8-A9Sh&>y9an&LQ9K{AKo8}^6LLv!0z8!k1%#J1!D(9 zuw;o)chi?S=_JqZZsu*Vg~C?lU>-M0BZ-P-iHPvL$qhD_3YXs_T=>OkI$YIFKVE8O z9dPMZapy-QdF3cfs6#o-L4o*SllHOXYGT%8XMEU6i?tKJ(8_CqSC-Xinw~h;9WjE=kmr8wKO5hA`2$HYYwoW5XVpM&Tlyp+^nqNgU~17wNL^C>$(F z&yV2KsrjN^58#Sk0NyA78wRe>f||?=X1E89r9zS@aVdU87;EwC)$%^udlgsAo4Z1Z zyr2eSyQQ&|lsYH~qlPWCFt02xhF)CNw4E0ti4O|qAY0@+S-a624X{pW_7s>)r+t1P zT*!d|9XcW+=<8!ul(3=#Q#Z#}b+7WJ)xB8XbGPZ>aezRX@KxIT?YMA0?39xfxS!jt zg6)^o!1e|uv&k*s*EfvcYd2^J{K85>IIRquHJpT?O>B!>!=;dkPq&al4{|`JHUTx- z0rPSjtp?97k-~2luQWJ7Cw(qIa=S@BMKX<=v)=|`ILOy2?=+^iQK84J(V*3+8Qplo zu(s|yKum895w?~fB>;)JvYiF0rhA;63+~DVV==K1_cm^91i_Yvi;W+4cfz%^Fb`Ty z)6T1ZH5l%5(^T~G5acu!Ds42w3L(?y4?xB2f@5Z-7M7%lz9Syo2rdCbhRHD-2Y6_w zBe}ifF6an#=qT)T)Fe&(MqoUh7EWBLJ2eW5px$|u`eI&EdDME1=o-SjrI*#ULa&x# z4+_8=0Gv9tN7N=r5-q67HQDJjZ4h$pfIcjyO)aJkuXFC;hK`@FE>_?mC*^@WpHt6Yrq|ij!{#Kf(QC(JvXgmbI}T`{ zB_I@d-QPvn4SuQ_{Q0hrp^?$U-JR$CkgIDkB<5CW104hz-<*)BO%`OwodP0MkK~<= zn#tKIpa(rDF~c=Lofse#P!`Oz1gR5V62WVN!*IZP(LvV6?(W~@7#DU$z;>;pPFJ_> z*2XNc9np$f!BN*S!zkuQ-6x%I6{2c%9qh=6P1NKV_3I=(DxH%KHaVr)w|ftgQUiJ& z2b@l+P1s=H0b-fy{vc~-=vylRY__c0@}=pyPr_tzxffg<1gaY%b^{Ykg{bS@pzVc>STR%f{XGDoqq$$GDKI2iR2t zYUBb=aqcEqqoA^|0yiv@b0mC{0`Ub9A3LX_S`F|q8i*Yfj*}F43MC=OZ zlxnSI-?1Kgg{Wy8)Drh3%u86T_H>#Sk68BrD`_$>XkoVYs6zKfX3i=1{LO;t)!GVy z?MU8RH#nYu0;s9e9?%A9nr|f0i<1=CXe3c$)6VGvql8`GV#?3IA3g~@F*;F=>xHy1 z623a0KPMsd{D@@Xz#cS~sATsX@{xmbQsl7}9#qJHr~L8!m?ghl4R5#S4+Ac3uM?Xp zjbmbGi0Xe>&HQeko8@{~<3>pe#H`sX-H6|XIvA&T;5fw-=22zBZ)bDW3HtW+(sMR; zya4S0JY7AF1pi?x>Yok0p5Fm=hZHK+a2zy2?fA_Nl+&a@K86!K`l87 z1p4sO3TeV1PoPWt6dhM{ZLjP9`9{_bS9Vnc2wpJHf8N>_fSPZ#UAmFALfegW@+>{E z*PL}D6U#PwdwxtP1SzCW9H2>*h|jFyIWc;4=!nt8wR-MB0SMIwg=fe)Rokc+JbxZD z@e5h2Q`p*Rb~=P6H2*Ru*(%~*p>X4DtC{LeS?2pt^QI^NODy zAcwM$1~MrA_BI{AnCLRHj|9{n*t7IB@TXTyckX_`KgW$AB>)Ll=p5qS`dl^mP8q8i zt3jxcs{+_n0#MUUMyU<=<%fM?jD-Hv+1=`sYMauYf19#W05&n4I{9`?6DbZr=xA>= ziO(rQyJ?$0qhtL1`Du7z^j3m&=qL;l=mRBf+>mlnQ%v_Dh?>@J+D2iJxOxr=jPxK# zVSqr9$CSQat!}r`WYVqEm~i*KRS$v`26U*nK0iPTeNX_3D})MZAUg@5xsn3|_%wjO z9Qn;|Y9^RJnT_pUg7IZ*5T5(!1s3=^rO>E5>*U&}G%~6C)L&=2*HI^Q6#w3a ztL;EwJtpgH_H)W%BOhdKVbkm9(Gj{!eHba^G^p0@wxj#6v|)&_0*7DU*ELz&>KeV2 z+Ay}|9%OBwQfJ$&Es#3b;iK(j0lnn+U)z{)t z8?`^!U=%)$j_TSS#6carwiWANcLF_sjN_D9`TYLY_8Dw@JE%}Him!FiN}W6_G>|dC zkzh&QZWK^5Sgno)S)tnmp|7SVzRv*jX&ugEhRy>on7YmQHfsSo0>4B&<-o-R@fag;Jo{s{FUh`|9DN;J4(rk0uFr9XrMh-NbESwBO2Vwe zvQuYulz`_)Aoai+cmmk;i%_9N)?i7hJ>!f4_I3!{25TK7blN?_0Sdwd_4%h$dr%OT zF{}o1k_Th;?j#g|ZI^DXDwLQ-JxGGqsA>&fMz;jqYH-&;YNfxA)bul%JmE%%7IHoJr0WT>yy!c=wDEhU+$R9qNQjY*E2i#gA zNz|RA5;Jz%gGnzgp8&<6Folvdkdq?V9Y&@lAkyr58jPDo=7roz<}vUo(f9lYX)+HC zb%yKxYQIpQ_eL12?=fHMMqayO%xI`(zs$C6EsN5rTfB!jgoN!wQOrazV zVWGfOLhxI)du(Eg3I<<}} z6x1xqyAL;~UnqGL4wfY9&h_~h@N`A*TBz`X7Csek6yXX>a1WZXTW#Z8-P^cKo6SLm z05bItGI@T$779=&26R{U)QFt8l0ytB-qB9Vfi;4Sl02wdK@SQ*vO*dZVTPQS{z9Y4 zggR(cBW%unHe~H!Q#Corbrj1~Yu^cq^$)YPh?gWzQb#dpHZr&(4LMNtrS+-S>-l|e z)3&!Nw4C_hN!L!Cq>e{btz)|D_Z+;qkvOqZBF0Xy$!s_(6$%tkK4=3L?8qMcTV6bTOoTDuuBJR)9`}@%%}co9imoLW%-Cgc313 z>C0;R!s8_)3%}MqC=H*+LarqVtI;hdsbhB-nHGmfq^oNKpg5+lCa2HG!}cCOyBYOe zT46E%m#uSIj-0ol@Uy}q-R49jI)K=j@!L3Aq$X9f`jbs6yMD2>hy#L}WMSev07y~y zOUq(^L2wF^&`NI`YCr!Cgfo#Yf`i*CBTn^5BPE zWOBlqh(eRQQ*nr37pe=(;Ifn3guXF)1A?<)fdqR1R$y?gHB|~k2V#f>h=YRA3kY6$ z3CKjtc>ZxkN; zt<3r$EY6z)2yC7vu! zje;T`pdc3WJ-=><;^s5Z4suZVuOG6>h5_eFklsH(dKYx8O>vVheoy0!w>0-+(*HyH{tCUsrMU~fZAX^!Nm9sNw}sSEGTdOyX*k3M zHdt^CjEp&Xr3r~Aw&3mgHPKSQ;y8V;6=RqyEUv#+p;NKbA!AFqO01NtFa4f08xglu zosL+yS6AeyW>7aLT(gF7;LOD%Qjftano7DI^8}y?XfKDT+NMJkg2|X5td3PGGtSz6f1Z4aQ3n z7rCZNa9*$ka|d6(Nq+V0tAkC%7qaI*fNwirL|s*)tI~_)t6GDXO#`0@b%jTKE@Wa3 zic?v5@VY8sSp#C6f+io?@v%@1 zlm#ic197JXf#(cR2L*+*Ja{swzX=7^iA5$dsHBAyxZf!#Ev$i981ps85V6YR<-|~Z zaLQ)N;a3Ow8@Wvj=|py_4lR5#A=in893M_&w*s?UHK=bS8?9U~;+iKH@%*~TYt08O zihGC~u54GCH5});4}zB|@~*UUOT0?C2&#+Zl{>_pj^NxrXl1nRQdaSxy2v#z+7tX} zuqwSszN$5dP}?YFB)XD|pt{IHi{L&*qeLMN2ER*2z=cO{)P5H_)gvF=UGeJ}5UH=5 zIw!OY)L@<{K~yI{$g$|Lax}sd!qq{-J1v-2Az;N|yRHv=LKeIRuvfc7Y@lPvelLj^ zA>aq&oorW+mGjDV6)o{9 zn-nBSihV^6a$twp>lNQe34tf z)$`X&UJ|iozSF*qWdZT$o`Dax_q!oK-R3%}C7vu!#T(0;?QLKNm4ha^Pf7}uNgae~ z$9O-`J2~KS+mtOujs#Ji{2<3XL7ljR9PFz-#zK3d1ur79`av~N2Hr>ynuKHsbQ$8v zA;i(0{K(SC^X(s?0~OrSv0`P)yz|Ys8TiKkqk-caeb9W%jWnCQHMit|Y*&c_c|n~l zlOE)lB}g3|I_*J;Qobsr*$9Eb|MEb++sKd*EU{oq+c?HIU+3f+5IEmis%M2GkwU)G z6M>Js7yIm4cqGUDP-wpD>XN^gZJnAP*#YfBl?hZQw#1Vqh-&cCf@+@Jop``bZTlcG z&a@lY+Zo2?c14|xgEf={J->pf1{a#FnrDC~bf=yRP%{8y6N1GlPf#P?XhK?$BaV(k z$)pE4dQZAPk_*8Xp`ozhL7~}7B?uD$R%g~p9fXzQoE?uC3Mw2(oK`myWQAi!51Noj zog+U~1Y1IA>}(3I^F{}!OAxkB2mwmoJVpEU99zd*(>7Kw9J)O8xw-`Me-dzi96}bP z3b8(uf`^+g_uf9TPoa$$>J7($PxvYLs`WPq|E`h1a^z(hx4!Kea}39^-iPvAPWB`l z!r#3M$5?t$3flUek|!m`2I|5pgs@QDn{&&0P#}IQcga9uMUtdkCpDXLD2BLEE1yg7 z?76Ria3s1YzN)n@cN5=>NO|LPQ9gf`&1&3f`=CkBuW%+>m{-;ivLFRNf^(V3K^oW% zGfX19m>%qI;d^Pgb=DzL{iG)sH8v{V?5JU zU4wj8GnfjlWn7>Wp=GM`)v`;ByQ_nO5(l?c$bwX-$dfpz1C=JIQJHNPoo(*@7R#LH za^}4pV{3_vtsy z&}bg)e#y7KQ}rW}JIBsNtH6ayI4o5OM$KlJ3M&uySi(UtTR>WnC)P=A@k&r+pl=Wl z3XB}Pzk}covRgoq0%0@E{y_q)B~c&)k&oLiP$73Wnvho1U|ulXH7LAxQ3-yKBTvvt z9pr-&nPh_X_J!)3y&Rx$l=G?!%y#P@>cSoT{G+%R)3s4}KebR!G|6pR*orN%~T_CY(JM~sW`xd~5Vh4!&jLbM3kH%B3*Ffg~R zjLi%xQBYzHQCETVLWw4^0%tTAhYDz0-g`tueYv@5%-bf~t_Q57pX+m)S_~B;6BK7_9kd!>?nNE1Q4%!nogo+&l}vIhA>R8%90Ypg2^EBy z0!t7@Mt3Ta8dDc?i>SSD4zzz`e!=sndB(8{Xz-W5zn}K|dp<`g7xH7l=O}W06EjyuHF|gpZX5v+)kg2>r1m4ea63%=2sGW}aJPEjrN} z5ApoEgc4t5y{PtERG^-JoRY8VGD+^HxY2GTgy)jYg1(WJm32UtGaJ+r8`_r% zf#qRXD#>PaP*JCS0v;-a5{Pj~{q+J&v=Pi$TwsJsq68PiSj1Gf+1zQ%LWzy-oEn(b zg?Zny90PKtVax5Z3G6#Jvp+SfIedjReAe_yHfew83zd)^l|# z0NjE>;Z6&Ywy;EoPz|A)XHGwrjweYArq#a(!)><=#^oRfTby7GKTkj% zg#1hTEC&@(WyEW`vUpQwmR<(A!60D9%9;Nq4hRHsBiI+25>vxQe2 zy1_T90Hjo;9Akgijc&Pu#B7#kHxDMueJ_nxPFKZOC97NocN5QF_rCMWY63p|*C>P} zsuOMeZ=D+LkI_n&8VvHpBX6{zyB}Gw5G3ENX_p6RZc!n1A_ut>$1@1KHV(c7<4$?? zBwAHng+N@EPsgBKV3LU(q(HS?a7?-%Y$)-auA%oeNa#Z zYL>|dO-Kv!f;u@WNzn5vc*#&FEZ8w9)gX0)pW>%#DOf;w9JdOE61Oy=I%TIhwSxZ? zzAANju5Ji>56+lj#?22HPdR{|*p_3pc1nIQI?QiOxNQo7b6O;-2ag;Cr(NY57d%FV zxb>1&A(Nl~34!xQNS(+)h7oHXV#`4_u%*Z-iB{GSkrYR;`8foL^44<=E`iTqbP;P7 zT8L<(tI{PI4=h%xmuz0MF>6q=aCe?7?%(oOtnxutCb#TXCS(P6p&&S6#s%KK@?3Ga z*~HZQ(WMRju=4pg6E|v!4R;3}Cd(~Ps7}})Ae8`Pg9AnsM>&Xisb=*gy2@*`{ibDA z+!yudo~uiY_5f)Y3t)CS@`UPCXi{2HgYipDIC#Ox!~P1@Qm~A3qCIg1ShbR}+v?B~ zd$71AhqRDRdlj_Q=g;A)l5rlATS6N zf`P2oOCWHZxqPBJ#B7F6OAyb5FH%Eupt+xa?>2K|l6ZIuP@^Nebw?ow9w29Vt5%_mxhW^w*^Enq z;bC+n>?Cfj-F?f$Oi1ErZugi@VE>k@J{ZiW+X2c8}#G7>!@5_wOe9GIbnPOaKcFA8^I)=;E^_c;wA7)D%_QzRnlz7;WT+P2p z&&LUg&eA5E|8$mrI)=;6G`(^=hP~U;>@DRHxbFm`W^oDcEKZ~ACK$$Q*w6Rf7JnDA za(QCn|HWmPU@J^+2a=kZp#eH*))kmS25RO(uxQlk<7s{u+yD%QVJrJEc2MkU%S{hk zv_}~w>o7K3k1UOU3@XXi*aZ}!?6v~ftLemiYn)XCePwP0@?^7(UOK8jXD)>oxLT}QPcc#H^V z#J2*%;9T&=5g=l^2wqve7TR@2jmEW5P&hZE=RaRaE9)Y7EPZ8E9BtDy?(XjH5Zo7c z7I%UNcXt+dcXxNU;1Zl5fgr)%odDt6`}y9#d(Q5hnYp&Rx~jVSuqu{OKz1h;uMW9$ zG&aS=&5eAVNU-Nc;^4ZxC?H^+oc`hOyR4)a*1Ev!>z6~%GZs1vgw4HU_tM?L7?=;{ z^XM*RbQ`BB_#D4^BO4%dDQDW0!&<1xPnd$DqP?aOqzmZumTdGdERHrH!9)3QPz>C4 z$Wi{ZIr~QBx@W7U)(@q1PRaI87&{OBb#!FP(nJsqcqh^VVB>zej&x|y+bKXxNQw&n z0um?;05Nbd6PU)WTup|YWN)k9H@y!em1PFZmomWju3#5@R_R%H9VFw9aEEpDZXC}) z*J)EGMniLu121;6^RZBczncC=BK%po5ogj|Em0&t;k!~g=iqO29JV=sH-5=I=C3Ur zWRvd>OhU6SC1KI?0Qv;Yzu7o-w!UkKD*6TO(2z7D^C0KKa7th<#9)yMgIWUkR|KjZY^aTfI#lBWw(XdODj(hbmE?J zGgJ!|WuhZGys#r1^X$9J>q=LS^zQu9l`7!$gtAG1NRe+%Z_Ar+s_z=vReqM1uSx%8 zdMPJ>5vi~rYO-FhR5Usy9r_&Y>^(ybhAi>24-iL;bn)7RgST zyZJJBFN3UK8@bcMl1Ao^sTg4Fy!t6z2{YvQXHL-r|5lE|FvPFB)ves%{uw6d`NaM3 zvYjz*b%E3|$}|l~)6o^BThhaX*6ew$67UWG_j3sP2INrmay0!U4f^oD&`$ipN8 zIzqCs`lJmUZu1oYU6@nek#h*r*9gnbGjQM4;n+WczZ#o`11Vak$83x;AIc19qKRBH ziLC^`vLD||a~CpTqnO<%&iW215HGM5F<5m&T}neupjf|ynxm|w4I;Cs5-r zLt)vtSS(?<45}jyn7M6G|j)Gu7vX=LypIW*oYa1#dw)Y3O1^8nn3MqQO1&4^^5!zadZAiupcJ?1zeaWjQ*!Iu;Kh}vGUEPs-Fue9q(6JCEE#NS+_s_*K^NS{$V z)pO$c!|02jbKZl_O~OI4D!^Jk1|q2D%IN{G}9!!z#UBfGQgVyw@$+Z z8F81=gD-*pD!^q=3)g5Ru)4f0%bx(`!F_&g(duZ(CB!i7X;+q zK{eIE&AY2aW-$1t6^x;WSX&lgcfQ$>F9yS?c^pwAZy_sh#b4AkT|X4r9>~6U{#y(@ zVEq-6zBu2pxZ&gCkLh8$(kFMd^L?J_P)J#>EcKiQktz8tD~n!}Ui25s*(G_a5%H-H z6;$yH)hdSP_CjV=osx%IjR20vf0|5fV}vA|>DV*cAONB2lsgs0cTg#W7> z1lth)xM(7DuO=Z{u5P>9Ulrqr^I+(MxnKspP^;-5h=<8HrTOdm#(sNysCgzsnj{2eFm>QuW|l0`PD=%tZ#1cyy9ibZ zT0_lsX=q|?UP=zdVQ8{08N{%6Z?qTsQz(WlLHStIskk{J1`v&K*(E@~$_zo>#GR7XKku3Iz{pwpW=gS$t?TcGz9bZT zs-#C$AHoXB9w5~X`2R_%@EcV7sI00@P6P3S9VK+btv!p~R`X~)aQ%yM^@|*~TjM%; zQEb}v=P6a&z%tVsOvEt~tqSii8=UzdP5X65#1!Bk0jSl= zBvgkRy7JwQx0=TnF)|+fajCFLdOKd)>+<3fM}PJ?qF{MNZ4t`Mw8(T~GN(ofoiU7X z5|)4Oufvn9g*aj6wsM9L0Q%U+R{x;tr=f^T4rX|PxPxOc<2s+03&!|x^js!}=7^+d zl4bZK*M%?~1{EKWV7iNol>$>WcEeIWJ7mG|wWNf%+}};&KgdIxx}3eoX0nJkd5a*a zD=QuyqS5_T?5Gm~lK7B()8Hti{$YcLT5;^8eQv0USO$jrnIR9rDu#n{iuer8sJ;=~ zBRRJKeENTv^9&l@bbQG0f-?I7EnqFkIZbI5)jO1sTp;Ov9&ggjCr*SC z+h$x4B#B`+LzSMF^aE{A?id;sweDY*kY%J9U}5dR%Tpd3T38zE8Qp}%4_B{I8tSjA zuoB)7D_5y}57_i(j}Bc{qXT+ez@@9-&Nb2GBn|7(w~sLc1h~j>2yorNaWfzZWA4k4 zptQfOe_XD`E-he2%4D$ur&25S2B!O6atU<;+OK8mAYI6Tg z`V=r<=KEm$Q}++5C=0tcMxxmU{eoG;XcIDlaSWeO z9P=EzifHd#cMwk0A`O;PMI!t!OicnhRC6sq37mHvEWb6NtRUzDUlxTizG$8uT@&KT zcnP+{dW)2-l~j^bT@Zg^=j7Nbt?Mgkz9+`f#?7HX6Et~Qw03sAQaD|w6xx@&_sUdM zG{aC`y3Wy5Ka3R_NTq>WtT}?V5kjf?0%gaZrL>w&+C69Cvyu}g!hslhu zZ1!d-l0Yjomdl`X3k5a}XOYB4oVx}|`0QpY^PQjhpokOutPZ`Y;@u1YSyZmMw+s=b zs)3~_W9>9lc+IHrYtcFmpYdQgowUSqtVN=z^)QO%f#syt60{d}@ZDu777p5$Gd<=9}Ya zI{2xxI3VziS*P~c4BHfT8x~1Kk7ZFt+H`7e!y}(0(=W>l(m11+O!DU;ft9FeyfhPI z=LqwHe??L?z8=&Wsw$b#@MHhr8H%+RJVWuuPKO%gwSDlqs+6wipFP7%YuZa^i z?&39{6fVQiKicFMO%}~YWS-wAV)eK)T&1Ukd|HHq%7;VbNPXBf(+Y#)gtrERH$e&aHHKVW&Xzl%pIrcB;;EdTT_tJ#*!E;IZHn@NZ5Q|fN2hmz~_ z@79&1YF9;n*)8PzsM$YaTl#jr%rbRWN#afCd&e(c!k;!d24+C7awI_|MXKP#j9CS) zS0E-cd7Hu0^Yvj`&ht;*Q~!cNgmPXRy$D}N?Tl9B*r@cZjAQmqT9_ZBRWhk+Pids( zEtpqG5v`n;3`?4jFMdSBo)o=Q?SgH|sDfcN5^PN60ZmX-8MlMsf}8>>0vDHf6x!C+ z-0D5^Z`mIJ?HtCxcnrpeV#do=E0CaK%EP)m1l{rYoLlH<@6K;Zwdf^wY z@Pt=8d0M2sp*A52$Vq8)`T}W|M(!g4z7m+@>J|Z`-Qpiqi@X1eDjpW0T-G2k+8~n( z(aZZt9^hzYIyvFS{HCl%y)%(#I{&$u_%S>w@YQo|;YBV@e2q`Q7pG_GY4-*27%w;vU(g zodW!taD(#&l;+6_2OAsEOs+NWchFnJ!6wh-d z7Dh#e^_|N*8h)uKk8>3Aws>AeclFu3P^GzfF}6A=HEzc-RJ0V+>PD9dupw z`KJdd#j9xw;4HQ;hSqTkLsAHpj4Z8=(pzEM;66%`1Xf>=RJiE4#g)IVpihDEEwRJ; z?&~~Z4S*%pVDHEOPXA7OwOoNee>x(LCOw@#5aa_upWoE$J#H=uW>&rd660t>zl|Ew z-9cVN)8P{8P%m*>TZ|&XL{d)ZDU&&H1H?t3VRE^;?0sCoI|c@TT`k_|=s64dFAxED ze)IJUW|!^a-^3>s)PCsi6?}(NVZ!QTCq&4#b_#9t56t$N7Fv}%?#T({bgve|)3D|_ z<)g=+*1=DAF*qXcCx#Ur z0C7?fDDA8?=C>*OqL1tD;!N_t4l9L+0&R%lvW!HWfry*&+dtal!PDx)Ll^c|Ij}du z)h#Hw8JnA`JOF|j86xvg9L-i!0BE5`4Oii80&+?>J z?D4_AR_LOiPgpM3jt!_j-($Ym@-KWl4`mYXgebpYLMucf@9rH>axp!nNgy4p=v2U# zxu}VCu!AaPKlI1|AR}cNVOGJ6u_4hdmPJYDo-H7T*^TdHzh$jYsH7Hr#der9#jaD( z;NZ)a!bY)smr#5{3z_n_V>IFDb0}1L7(>=e`CPkT&daVwv0;`S*DfQvHE+kHaJ6Hd z^J_NH!5ta(oTh$7N;8Fv8Q}N{ah5qEzbW$R!rYc)x59hw+UNeD9;EzD*MKv43qqAB zgvoZgh~nY8gBEQG+L8+1$GH+Q8anf@D5F^@Y3y>g!9AY&6#Pzs2#o~bbhw28t>Y9K z+a?O%6<2&J+3QLXEVj*%65se01kW5d8aNtn{gi+bb&lD~lGC2ZZ{TfQvE+FhCcw$F zB#k!INr}GDB-J0~=oUw0OMMGFfsD*Q4pQHx;1-C6{OptksEuNGg&KdiizkV*{0@Hy*Gkpb#+I}p@!c- zl^W~K!XTP@^}cT?1Fh+~A`wPgW(irn*f_nKvXIB-pooLVhO=RX#<9PZlCJ=LdwAN? z3|Dw}-mb%skz4=rT^W4p+Wpwunm9Klf=xB?2D*Nba(e*&(oh2#e-+FXK=<)t<9Z+F zQ#jj2l(W8~LEa25Klp4#e~u#c7~kGZJiLSOwBbuPK2psfcpW!G?u`qRlV&k1XI1W= zu;6!I^f_Fh;ak`-KE|I-*jNiy0f>|LiPyr8%|8r_Q&<(u+pd-1ESHBF;hM<4p+D1g#*l<(UGYs{ae9gwge)UjC*Ds;+$uZ1(0S=e# zP@v;!L}ZEh%G+B!e+|}65_jJ(z{fczY+Hypj>P3ePj8;(_w|lkJAw_>EUN7A?r!)i zWW3qY^I>M|P6LvM{%1@(1df~YMUfHGqI3Ca>Vz<3F)*ptKjU7TylUhk_D4<@d|=ps zAA+7m-X6K8*+!&U#uOENeK6)3J%_MkK5P>SUJN6Xc*tmlC9rdJKCL1u&YCFy36aqv z3_S~^6a-$qCLFWk;B5Xai=IT`@w*24)ZWF{MK^L2#(?RD6~Gc|?+7HrfsOa2ev`LC zNfAQJQc+QxGpc=ZJmKs6#1E2_P``i5p@*!JH8$X^b5a81^f!9Yw>{Lv0Wd<7!yzd= zBy)q z;QViMqr%#41)rf1u}23whgbe@;se ze@<5y_{}Eg(<~E$UZZM9b_0l%ohF7YI-~QWV3MVUeic!4ZTG1tF zw1vV1`%%Us!E~@m@`*y9gNU?9FaDL+NWZyJsrCn#QT}qqxJZ?h!c)^IhfBf%_!t&N zn%@V6Fdg%XvvTf)q6n6Ckwa$PIRE})52mV{z~9m%b_1X0{HCzNPl*f@c<4~h5aPvF zlme6D0@`4ZEky@sCu=h?3$*5gxXWmR8>+CiY0#mP)EeP5Vnj%eeXz&l+Tkng@LI?l zO|tMSU?rPAD*3zeHjtW{k1|-9#SCnR5_Sg?6IS3~0lvg2%JRQ`r&TIN1b@sDcAXUp zFK`p)7^ZUy`Hcgg_9{qFfhr_>=@%lFbmM~s2FA+sR3RxhM|k@ ztz8Ib)v-VDI*Q26K5 z3!A2m{AlZ_E_P|)rko|HAe>`=9gY$z2*%id+tR5_kHmB8Hn-S4nk0Rrux5kkkeT+l zMt5X?&7L0?C49>MbU%sI+y44l5EOtbr4Lq6l#v4l3e}5czHR?9FhzZUT4zC%Ko|*E z{9k#2*^sKgx09@s@IV%tSR`j5)+gJGCY6Owz4<-jl_e|3Tr9+RY8a67ZRzzrH%0}^ zKfD9IHpk7h6;+e-9HPU}gc4e!hCB_TPTjiG%98IIT?r;O7XXM3-LU-&q9x*x)3L}U zLPizVuAlj+9B$r_gHZc~0=LnXZOVE4IwQV5badzDX6==nrxW6#9x~H;%GMi?oI(d# zKWvyTHK(TA)Ib1@DC4{pQ3!mX&ICt^Psfp2EFcmG+%*C*a4tLC;( zLo|kHI!?LyG}9P)t>#*!F?4*+L&B)HLY^Q$q#n4y0d;i=={8^&(uz9 z$(R?@jM*}gwPu$&gcV^>Z2GWNI`CUjUE=iyX*Giz-3V+6m682o*pi@=t|(I8wH&vca}^pj_FTX994Y4Fy2PB|q)Dqo^vK=F9Z@#U)dH%<*A0h4>LOsMlR z-n#>MpP>2~L(#OB^pZQZF2=alHc(8~6~;v@sQxP0 z-w+!<+8lN#4XZ-hu@IxXA4Uwp;(o`vjH2#V&a-RN0yty~UzB?;_#RV8G4P%FQUQ+O%Hjq7}kSsz~@B#7E-hgWAL}c! z+!XrL{Vkt0zYZte!YM>+PJbJ1w?dQQ7G_cJO`;h{b%N5w47D~+BC@HBmfrQ1d{wrx zKZ?#0@g2sO&fGz*V@ie37G>E{=jzZ5wgP{!QrUjqI9-t*_+|n_c*nqv`0S@mk53%m zw^xa3pJw!-Xl_f^jau1I?qk zeN~gSCgG(`s6EB#q&KaC;lkRhW)nw$w0xHv$ZD{|BoOV{mYg1~%p5jWO zjx7=iZ;6hZvs1j@D(5Nw@BUn>F(`@I_VWn3Nmd6(Y*Ol%fz+sb+h+ROl%%xSz6`Pg z2Yc17)LT3$l{=35jL>Lj#NE5>B1`QLS3bg?rGNVo-TtMHzH2hbQ;2Gby9+4$iGkhq z5L-Qiik^kQNi~R$g3#vY$XyD^y#=H1>8+bTrXB=i`th?oMbQG-H=Hu0MaFF_jc)<= ztyLe9F|$a)1OdL&=pZnzBCm4BJekC1(X^)nX#@wyj5z*=bA93HmuxwIBGn{9yh)H5 z7S*UpPn!&Zb)WW7zc=BV#R%iX@`cdy{f8BcFyJ?eF|_ycUT&as0PbZX%P$gC8AMxn zuYrBSQ$}uSi8@6a(#BwMw7~Edts~-P-PB$RajSP);}k@6ZuOuiV5MrZx|?b(0rSav zD2(BYL{V;WD-GEWmjm#k)~;;WuN*j&3roa2#L6cNLvYsV*G!%E>J%^z(SX(M z&gKX=1Ix6M5?Z@Ox$@(P*fleOAVID&@$>3_EE?q)eQtPyS_kh70!%r7&H#taP|h4@(U-(H9PMs3S8J7%QLeAZu)P}^ zoFP#$*s2&7XR-7Ck?j9$PE4vv9Dmpuip+nH$xd{+tx7Ld9i%~F1y|XOm(a^C1XAoA z^NsfqC7x+Qm(>hG+pa;`sV?MY@8Z?SlN^|7M!f)@5bX3iS_2zO1Exa#gDJBGN=?XC z85-55sh85h=ll*c9hkTK^YFUn-1K}y5l5ZA5T397{9cjpA;R(K;W-;JDty{M*~17e z1D;D;{KbKMN(lhoRdl9cGgPv0R*1>m$F#R1w8@%@`jim6&+5OWqkdQ>=3fk`quDxI z4E-ZVgb<$lTy(2zm@&gjAbAR+6ZwFGkJw`k+t#=bd-49b ziFy2)D@Se-OF|0$cpZ4MANk`1BM%96RznVhxulfO)TBgYiKU7`8$g^6Qkd1(w=AXJ zMJVCTwqRzC4vGE{$e}8{d=OIJ{T2AKTKLs>s{%D>OR%3KcgFclgPr zlS;QP9&yG8DuVz=eX^Q`27SbmH&b)_agJ!Z84T4EfIv-t%m~^TB!o;QMn%uuxC2^+ zB&;Auhco0JI7f&=`1U;1{%WBFrhIB*IYxH>mp!ymd?I6*A<;mEA$;*J1Cq!%n~mx4Ln=;QsxP328(j;KppI$N6jb!d}8o${Ol8?>qf(i%Gq6mI_%y?r1D?9$%kOe$8lU z#fbU!%z{wNSRldxu`hFXcRaDrZ&TV8TWn&#l$Izww*!F0>=v%)WFP6vfFRtfb}AUdTT~nJ7i) zKkSzmAY7p7nyX!+ay@|gHcX_LopEe8sYk(KrQ)q>OZx1lMNs?*e@h}Uz8;4k59oL! zgZ|3{!zJ{4ywZT=cA{vopN&k=&rFADZsbfvoUq@jayHt}wy*I$`}DBUC88G)Agd_a zokfevfIUM@=XWR?tZxg+EC>fh1>d@$TWTR*AV~ZiLx*2_GEaNub=F1inmi^0VbIJ* z3YpfYMzwa|84`k9fF@`xWx911QCXg@lR%?O9Qd>Ei$DiGBno5t^6js&7!mQZp6yd& zq+LHX?%%KXZfxZ=gGKV#BG@ZriPzdwz%#KdWGS!$YmJ%hG>3{xXrGum)dVKc=$P07 zq7KGH81#+u2mD!6+%%25Sp+=lAsP?o5?m7map~0=9icJpk~WWJ&mE;(=mDHFvyzk zkdLcn8^{WCS~09_icuyx_OR3wbknfqTrWuGy%N6|yhB2UwtvJhC{l0#i$qd3c35oH2%bt za4**IoItF{NLR=-rU24h8f`EGlJ-Q)@h(tW)Blm1R`13yEl$oSs@ zPN79}tkiA+8(Lul?l6mlOvXklR?3Dpf+5V7m8G~+$jfqKkqoM_m#eZKl5yQbm>gb7 znY==W=B zuWZ`Duk9gN9h$BDsc#FwjS3wFmZzo@TRBxqH9(1n|C6~VN9n-NKoka~dD{A*#PYhE zC-hEH$eBUx*~0Eq5m#FX8jhLJ+aK=P4Np4tog<*-BKF{i{!R(OgxFp{ngDLLg)VN& zX1JVvTc_-hGj&fOD!lWBIePjl>$FTn_+W-j#Igk8cA8DXPHv!AaSIn^+B-$?g$gMpY?BY-+oo5jCosoYQL>7DGdsThJ%C|8o2JsxFL&C7=dAgR11>nxl=nOE`Gew3m7#{n=Phq z3ocqDU=#Ks;ulQ@IXXHd!;wCdunnwhK)7}SC7DXy4cx7C!}HH#yfvh3(a#&A2DB_x zM!w(q+pYtIotwB9xk_yAe(HNO$pG~$O_OmH- zuWW$laaJRMk>A9hfocHGI0jteN&HvRrPXRsCW(_H>>w>G@tT59Om5s_bD@}x1x6-s z3ySc?gMqay47%)Ko+?k~r5AJUM3PL0x+c=oJ9N2p;t}!Zy_haXq$o28!H(w8vDp02 zm$pd?$&1PPKVP`-Ce3RYaCmRE&MWa^3d=0XD*CSJ`}+SK-;2?LCacLe2MTYG#bW+a z`Rd9P|EPc(EGFR}u@_V@Z~m*3215w=sEP|q}$LZ#FMPf zd-T4+bVFDmZ|KB*A=Fe#D9f6jrA2B>?~$r&+&WldwzkkDGTJAhiJ%jkPr2pJ;0jb# z8+D??Of1K3ZxQ6>(=qYi!Iys_5=gmfoDz#b@BGtJ%a8KUE!RFY;NRIvj{)KNz#j!p zm4h=#&r56uITA?N9?2ADXm=F?ozx=_QVHB7G)U7;Y|@(bsSZlVPB-c-esA=;kghnF zjSy;8jBF}1iq~xC|5Bl1NmtqEnQfr30Evh77D_i zQ`VPYQ#r3$D0R~L&x;<`{=)r$0_FAQqtXSvJ7dWFz#~3dfiK7ohI++^oH2{NpH>!6 zPc4kZnX5_5Ty0$-U#R}VvH0!41eO@yQwYT0)`#t&bf06@Ji~OO*v`!fnAmH*D_Uml zvl`Y<&30+^8oV{|sve2tVFj8{VeTobJU;s}jy08Ef=-@ac8${C&Ig7=^*ya&hEdMX zKKkaoRbQ8?a(8}EAHrAXV9%!ZVRH+dKqQJJ0%R<0nH5s5y=Dd97VzDk5D!zA^S)|| zd1BQk5r68LTKm}h+tTe;EMR5l^n)3mj^jq1p>h9f;k)iPTo@W=ZqP&8vr+47d<=xA zHOcr0z5cBJQuVMYdD*yhB5DkZ&Fg%L#)sk`zLLei83W7@655@hBBt$XjPD>lIr$4( zRC>Es^S1`Bs-Gs8cVZ(desdM^aF>2Qi+U68cur1dsd)2WtzIgpzO8#H|Lk8uE*NOZ z`)&>BQrWxHuNaFWGB{Agt|z?K?>qdbLD_!-_uB?#qLk>+O223`Mxp~ta)nqHuH>#j z`2p$2!kO3i+U+k=O3mpZEY^p&+8x+6<-h53?SuO7%Vawk=zrsip2|RwGA>kN<~&JZ zaE_G|Fn~zHD5xA0FU`&9;f*XYu<1$RvchSy;+-ZEATzeO3I|k@{kFB>!8xyn8M$h< z=SpFv8khtx?V1En&J9Uv*p~eRHbx;|LxF8i0U}SX*L=|BjDlHO`WPFc*t8t&ajhCX z+_-g!I`#Cv5DA^t)rp&ubrSh0y_JQH;CZnzu&^V(+z7qotd3bAi#{rKHcYjJ%Z1N6 z8g+*}!vx^qCf0l6tMMTGO0A=|)*`?7may{#pumfz?HgUfoR$y3TY~NdWJ#r3)kQ6d z4*7!YCIdQCda5rST-Zo)0BBg;$$+9{`l7pc!{^n7IMJ%=tE`K&6fo&rl)k~yvk&z< zoBkNejG=}IpdK9j5LoX5ve3y@7Wef$Y4)QId7}yb* zeQdT)QKY6MiI4oj#et*t``#_d68F0l1!-8b8|*Z*7#dOdf(|mthd#&2mFG5%@RmR? zfu-e#7iwPzfL$d-U|Cc&fv_YM3Gc+DZZr{uDN1>W5F>j}Zw>T_QQI4NxQTvwKov~2 zSaJALNPJLWGrc3b?sY7dc`11-Lx*x2PNb`54QS?Y06M0g>n_gQDXuI{L3ll0>$ zB-zg*s)JR2`WXdN+ z^{}Nz!16FAO|ure(!1?AKP+@D=!723%M05DuwXN z4VF&FDV0GjN$DVZrFbzvA57Kbi+i#{c#5D*QG`ZB8ko4s#_s1PZu?Nt$B3cjMmR8I zI0}~K*{ht^YlLtA(1Pf82lM60riF=UX(nx`6T2nwoP;QxZ$&C-(&OPg`!f1xd5lws zuaoF%}6U9@|7VdkEUUPvMoE0ZquWhLm+=i^U z8K(*jb!g!yhl3sqSCyA*jz+(o=?h!wx0)$G!U_~0U9?y`wse>oB%a*7+_U=uhc(wu z5V@s46REasjb`09GbbH*QEpz*HkM!JY{Yu^*@3vKq5`QVq zzP-xCYki46oxh}J-t9h4wwtwb^4g2knx5H@_k%@iH@?@F>C)=v+q}=e5p|B={jSVq zqkgWI;X>I54Zj()@pi2&j8K@Fd631b436geu75|O$cb74ORvk)a;M-wvfCQ>MK#;} z7w*xQWEx7649r5&d;%e3%2ldsytA_+>P{2ys0;sU#6G-7_NbB;cfQri9q-MSN&n@y z7xHAgtT?*8PwT9+tZeyDSdnzBbmZ>Rk97c|V^FUSm2FVggd3RA`p=BIEJSx2ejQIr z)KF+`0sjLKMXnfY58wodMLwIwKDXMU6=J=r{^7c*t`@;c|z;S_mmui-f_@*Qp?D_Kac7XHPMs;V9(K#>xC^{hz)07()}n1az^{fZ23RW3u*7BU-N z7DmN%H=_>7`EytT#V!k9>XYtu5dfc?IW`M4@` z-?VkkZ2&CxKr}^gr^uj4oN@EN%Ka&`qu29}OfPM(w}qC24ALezrNsW=-y^)4cgnId zUti*s-Vw{qs8Zuu_A$9uLUJD&2Br_rdDjx6yx6*|xNuep`( z{FHm$Jh%U{x$VV5jy~C(nPEpMbtV1Df}$67N%IAgT+{j2Yd^3@cjNY-3;PC4t&{K+ zJ!@7M`&<@ZjThY09`un{Pr8-&zdp){=i^2|`tBV0eYNd=E0v=0f}2_F>R^ABXNH?` zA;a^%Y}Bma$}wc;P?ltD{)%yFtFNW8z|Zm$&^7l>Y<}gxoPHPfEHTptEximGWT)gK zY$A_LDPuk62t3QAZV@jnk3^m3LOc2mwU759`q&{=T%S_0&eV=XgGw*z^*Nr;gJ&N34!%(%DSqkttcFWYF6f=`?Y7Mv{BI5)9vH+E`O305*j?F8fJ!XPUZWIWsV-1evU zx$Tt~&DU4s7G>F4ZSANm-k!t%hz4UNbT%AA=-lAq<1+xVf^%_rDOJL`>FZhDPi=V` zPen%WWm*EnJfU;s!P(P&af`ltR6nH7t`R~}7w4}@XWafu!ma{(e-5Ngkc*s@ zpT3s1WaqQh5BfAlad+m`2atr(q{8&8X|NXlt<)Uy0VvjQRw+p}u;Cax)6H~p+Y}u( z{GRT=IN0*?vs1ZooZRAx#YTp0DM7(Ch;f}~6z8LIE__%Boo`HS^-e>l4nQoWBtwF} z0xavyVXNq%1f5gFGFe0%E(4?k6asu-q$N^IvxHnYpLT! zA*Vmvp8(cwbPmHwm)kyy~KCy}G$DV*`_M$@o}Vc%YeX%9ufwz1ovQ=9f#Lv*ghnO29B0ERX9X1$nTh){LN>>!dc>@960F#y!k76V61Wb$9q1x} zzMd`N_Pb>jZh7H`%=L8-%X3XQFOFj+38T)6K3JpE@W`|VfL#u62OXn+7+RLM2_K3{ zR_;g4@hWKZ?DTQKF2%r-=)~xCN-U4J1`G6;*t<8d;lhzny;vDVff_z8qE{+e9gr31 zj2?rMXY424y(+a24=bZm0L=3qc5%FaeAQWu+LmJ2DNPMM8dzLdvOMg=h3@?}#vDuJ zU;cghlEsxt7vTyH)-=G2SfEbRCqdg$0@wz^3Ih|sUcYa~zVW|JewiskY^?gCD!#2OyWHgjE6L5yW!j+fth6!F%|Cnc4JnmQF=7UOL1%RgeO*sH5@FA{!0OctYe@q>dOJdMbu_ofuXnh!M3mT*Ev z*`zf%iYhFFo+Bh%h_T)ty}9QS+mFSh! zFWiXb2e_L3;7*{7ouB_DcI#GpYM-I-bW+PA-kS@(n%h5*sd46 ze2ob@I+Z>^in*K}9}q!1O1#JO$!jW*RS!n(&l+vH#=|T(+&WC=_nod1hvOjM(k*(y zO-DF`gq%yQOm6_^oC|N*v=Zt*y@&fn$cfOQ*zWFIQ#77TpEb5~|Gr!Mk=@XEwKh9y zT*p0RIDt1zlD>zfq~~Fz$Po;0HSeD4JFY^#a*=&xaFy780%m zK=3yzw_8hu!ydyc*N$K2$cFv)o%cNFL-YJZ`4-)81>a`KSBleFJufjwMB$C&+#Q#O z4*|yMF`{=pDn@=2%o{orI`mDQfh?$Fjh-WZ4qZJFd+F5(aa?G`)KbpxE}4g&;_}?h z#q2M0LavP=BJb2*l#M~)89ua2lwMajFYid>bi|^Iwl8MB8L?lDjJk||Kc@c@Hok#) z7G_xB63jkuXR%WZ`nP{bsD;}YYUJ=W9$jyK$Lu)qYfz|{g%NLN;N(rVOW&z*Xtk5B ziSt;iU`8(SwcekE$SMas@e2*?ErgieFgJLC?WW6- zy+L#XA~wrmdS1s{a}C|HVS0U3c&{3(tJgStfxP*jRmy!mE}XAtXP=Ryb@u&r*i5e* zT=~>q247}G6{y@{V`IpVN#ip(0>giUEp}uBlKxHOc4)TsOF9y=25@uL`m)Dhm!JzxPJXy$&?84?dd&wW+h~OR5 zT9&#$94xMgQlOiE@AGYmWx8#c$K(T? zz8`TPF2iO!BDwWx2sj%4f#$MJH;JURpsf18f>#N@kAp1u$z!DPS{q5;+M~wi?Bj1f zVJ%2=j>Y;uRplCjQ>?LsJc3~Z3l7hnBU5MIp$vdgY&1DH#=L)F#t>)6=0^FyPVyPF zg1p8`4g*n8*PE`k_X`t#VeQYNpaJFwVyDEkTI@f%&I@g_SKc;o;&1~|C(RaY(}+qR z81~KBzIDFBqw+FvVW3hU5ll$)Ja5L*M_{k@?^L+Iv^&gGb)ESC0@-S}3#G*PstR;n z0CZ#7v?~h3(nJw3Fw4I6Ns!h}U}OQJ@xb1{wXaj9qTe6To&_kUrScDte8CH0XxDl| z9`j^+Q~TecBTx@WcB8czMFr|q3NoboxqOz=%?7@SY}o6+6;Hbk+q^B z@XTE7%@``OZ}1!EwWdFns^wfW8Ithh-bE1;Ek?{9!(tc5BOy%D0>bgvo{`j&8xk5- zv<-BY8md3Ig4?s>bzb^BN0`Z%;=o*WtQ`uGowmP^?3RiXTtC)M-l_P^r?al52{tQ% z=|FtH6u&d#H9%L^1gstMd$WvO0g@dP)p}dm|AqP7jLCKJ=ddPA>G)M2n)kp993f(H zXJoXl@b7WUPzO~MBIQ$XiheI2M!A|h&Yt(XD#N>WLT|fKj@{HWw%Y_CkgOSFS|LC0 zWw1eniZYRkl@^(W4J~ZtCqN7 z-8&)%A0P%Cax7(}6Se9H04j}Z19_LirUFy**>b$}|FQH9{&BY7)3McTvaxO3MuSb8 zH0UOcZQC{*t4U)wPTJURY^t(`ybq&>%K5&&di))5hOx!H6(UeUF!U{h_MWn zwvF0G&{P5#UIfPkHN+~E#5Ti0p_H?Gury0%74u zKHCeN3GMrv!~Z`Yk$mfa8cb|&sMQQ}G9~1Z^BSLL33*8^|9HoKr==SNg7ljn}Yaqq7NJ-~UA^R%a#J zbb0m0agW#)2d+B&{EX-!x?%A}-abj#l4P$NNmczLNK6s0A+4n*02xO5=xIOHZc6`u z0#Bz*Fx*2y)?(qJQlzlLD!B<^PtxojvXD89y+Ze;k*2U}w@!D|XDbQ_Y2dvGt%K*O zs$ebiMXS*9ySapS_p8A}GSq0djW#EJuVW7M(3QVBwjcY{TiR`CyBqw$xqGeyz>sfa z^n>|5l-@W0Tq+2HA_@Fb!pUWQk55>js$IuwPSo=*OjYI(w!SYb`P%PGl=B9u=)jPz zk&vdM-CtP4Ym6Y_MNX9aqN4quz+1QSq?hA&J6}BqYXiMFql!TtD{GH$;HK4Bd>aR$ zi^&~sP_ic%8H57OaZD_dc;rM-<-6f}Lf^Toi4(hk9%oV&`(MvKHBs>GHuY2Poj?BA4Dil zzvv^cZU17d{9|5j$LZUUf$~SQA~N^eYoN_}h&$A2ng6dWUNALm{qphRp8~CP#<$BQ zwrvsl9^29nau**eOHfda=`=v2EHMl>2#v(ZH8MFutt{6isFXlM2&3oJW8aXK6KUYr zPXXg5UzalAbDPzwK_(BX=W9E}zHtzgE$cpT+e|3`wW+2{FKTDUR6(*OUuTB96B+ns zxGd;YvrjJI5b=x=+mt-GTm(&40af${3o@7g&*aqhJL#ew<7-u2WU~+(E|!$g>>GbB zYqHY3ezARnlG!0a3@T~j2`%5O;3h29$xt%uSi@~?Z=CB7!j;d0<%G-|n+zw$SKGoC zi2Lh$Z$6@1E34v+VF%N)DYRwmwtzB~aXe2!h|pE3$=L1I4dcA|CZj}faXs-hcJPWf z!acXG%a+}HC@d-~L4isYgMCaH!Y&&gCN|n0j8%*d1BF`kC;}prs?M+Y&1+bAVRg_x zH>UUEBtRKd5*DRa7PB9EHtx%==le5k$vS<=yaPAt50RM2llh8=!Y13PK!E#x|J~P8 zJ1(r=sW0EtOs;xTuB=`luFHUYg;k(f7k%aR9*yPg(VEjhx2bF1S@+IOfUi@_!ds`C zQ)EiY7-UNgme8Pi7X9(nPonugZocxqDDMI(BmbW#qEdKQX(wi4%ZD1%E6a7~vML}e z&pEEPRWczNL4(22(fMuyGXdIGg=hww%df;*=%3h`oDSI=swWbax80rEdNRA3`o1Kt z!ffXJcqz~IkVRV&4rcvAo;*^t@A!aKlscftOi{v?z4TI{Wba?g8W?cAfTrvFPDEXZ z#+jDIG>5ypb{sy}J_UCj{K|kh%vGk*s}0&R?@ygKO7Y&E_ySNbF2W`_bKrPsg5WE_ z1o=*yaJ;PNquXY!U%VFl<3~%c)zw_wr_pdjT}UK%bDnG zQ4|sIp?Wug73_(f8wIGJu>pWWigafWuIObxk$rIJiC>=_E>ExscrV|J!zkbK=49KW z0iugY{e`O%b|j_+BsTO8FD!3>XNugn72uKs#c=Q76FD%=>W<69TbNno7D<#k1G z=YF&oYCX(4OS~nb@cwG5sf^ltS!!!qYp_eghd8VlSH&v@$fc~~!ARj)(!IyU6 z+!-AgpVy+j@6Vm%SKwq(e3*}Hx2v`UYDP4^87$Pt(79fy> zPOE+OEJ50NIND?FlDb6yb`}>7uC=d4R-GWgYRs1Gxm~+Px>?~go3;yeDmCY0wEZip zH}LYpRoq#DQcyxLbtB&FNHeBA>O)ne>NjaUI>7_s5^!2#(!{JumEYyOALjme5U0;V z!*P&SX;n&%W?e{{iA+SgTep50f84a0#uAwZtfnP--;U&irLSt@(BceZ!9m2j~m`Jn7Ga3hB9VZI}}VpIYu+1*wo}2A5%Oy+k@Vkhhg<4h>Sk*C1n$tRKeSWEdun=)_1q zsdfaeV%O|j=2SDyba`0Y(DCel#_CM)KCxjb=_*>naqFkt+7OOHXUd9_MpTVZ?)u7LGuwmk6b^o5?)!nZ-T6k=^>r#m^?-MU5u z&#?i(YTW6x?AL>J#v2^$j-l+(lfV}9YVGTc5@yQ9RZ~@IX;JDLt}98K!@co^D*lP!`eUb_Gs(Ap4(**F5MY-sYaZ#PpHQ?O34Vo*Pp( zS-*ySfYv9emcg0gOIDaHe)O!i`DH^hONSxs76!khl#n6z{u-^IjgV6*4~xoLy8wiN zUr?icvy4P6AoG$$$^~)Vp`@knO-y^XFG8?Jq+Cj6JA^epm#(Z;Gc5ipC0nJ#CasVH zXqzAK?+ML>id>V8|DE@(A3{N3or~Fec8~jdn(Se-GQ8ut7pU>0lMR#zbn<=&KE8&* zJ_dR^(W9`kBO;tr`VJVEY=#?5EHmW8dbKdn5v{C=2E5QRvPg!XYdd@S_t2vyqM|W_ zNT1l_gN2c;3o|7X5RVinBTjpkw+^0EnyXYN7EsedK+mr{ffghlSp`yLaltiQsp&v; zg0bqh3g9RI-`?`t31QZ5!klK37;bD{`C`R8MLe^J9FnPeDc#>L5= z9|gjvdW>lWq967#Mrz~~UTrwnv-%rm2CW64@LKQsG$sJ=XxCZ>Br z9$TYDV7j)q$6X_&?WAMz{==Qx1ViUxlD~guRy9(@RL>C0*3-^K=LH3Q0yqM=5-~S= z+$V{a=^m5Mz4yn3WW{&s&w6}^)X;9~=H{NI2{^<-vjK~3ExfVl;B3%D`6euT4t69s z-g4+Sy#1VI*?P(~G9OV%ET~oqMz4%GZnvi}E#AD~!t2QIL20ytyshoe-=O)zgy^df zIqze&2rRGnc1M!#HtD>7e?0SjYV_YTUJkdoq;_jZ&u8`%fB}Dg*tUFd=#Ucbz7UfXrJh!Q}4-rGUPo;hxg#&Hs5zL|T?ZQSZ3Pwciv#LcP(%*)NQmgp9B-TgjH zsfLgcgWc)hN2k1n03BD@2Az*A}St zW;* zVWwm3)AMK6!a}9FI?u6OT(;|y4zi3Od@F6nbQ2;A58L}rpDtmP2b?r(RaXGfy3)AOzLJD8L;$x zFX~^~=Tszj;kp}~tWN%XueGlRbos#_6iw4I*u1gvORr?i?}!4c#C0ipPX@O9U8g`w zXFqtRn_WA&7}2sv3SWnMRhlOV?^#m%zXMJbcsxw5wcd;k(1K2mCTIb zSNP3E@2!!*0NB^+d6hxhZ*~c1#jT^9q-yZy{hJK|1$FCDl&}r!*#Eo8|Tt18KQem|A5<@ zrY2sZVJeIWDy_B4vEUh}C%k_0;3jkM0r}igf5PH7(aBb4w3MAW-&xLHG_xg#29-5m zVe+m1ZjSchkj5=V>b5jSVYP32-tisJVN+7SfAw)=55Y++VgFgMY@gg=O&Z%Vz=GjZTBJzKUAEfGYEM(e8z zcf?DTt3fb^x*Daeq#K%M)aJ6hevwgXQ!NB}tRsP>{V$!~@ zJMO(fAjZ$kgDV9fbEs<7mGtha0S=3*vHFh9{@c?k3rpU!S?_%;t8+I?L_RgCfVkvh6NEmIB>hfR_XKw#p~ zm}=E1v7R{T6xP4pxPfh1RkP#Ug5C#~sndPg4IW0v0_0c9K(3JR45nS#!leIOy0~a0 zs3HRtohK-O*1gJ^L%7zibWeTdnL&y%!mqv5{_T^@a^a@RLjqM8t1Dg=}J8IJD@j;6}SdYjX^fzed*Hyf1rwk`hQ$~S$t&MdWs0T2`n=dcREn%YRkd2(PT3zHeSC?1 zd;kPJar(0`(YG8Kp9T#)cK z<{J*WAh1MKcf3y{%Dw9#lD4!9dKK^gvr{g7C&@w=**5UAK<}*=N)FQ zUHVBBGn9A1@Tsql_T|ym0xvWi>@bYdPwbzlAke%FFRI0!O5c=9koIXU@?)P!mu5o- zF$<-37HwW9Zoh#XXO`hv^v5dWVNtcgyv@~|8_xhkr<-00(yg_GGJ;4|Q62q+JA3+T z@txfHeHX=#7#g3|cJ#m%QT76pBMeGxWty|%Kad+DF$XyRLt}-lyeOhR{a4ja@g?7_ zf`k2A+r?Dk<5cS6Nn6|Dt7gLWg1X7$;6O<-OHg}i9fqI)tk$>(p`riuIV}#K9}cZ{ zcStnAV{x#gxfXU9X4CPXU~dFu0mzr%_8c+&@%{Ww?qe9}=jrugmClM{NA{ww#4l<^kl`8c^8G z4O?#R!N7Y{ulp?@D7qg(MB&zvSvQbR6Yr<*^;WvLd1C`(MWO9-+hfv4(f<2gYA6qe z2vLy{_vI#CrcLzUUFLuf@hq~nP`H)dEpn=Il;Ja*O;QGut1sl%$aUM_#qxHf!zfwe z`g~Xkd~@RwLb84EwB?<$g?NGo*aN_vG@`h{1&Q%1<1$8Q&=ahh!Oul`9Fk>owZv8>#)KL@?d&p%8d?IR5e>jfU?=X^yo=%_gow!cw3csrO1_wf#m*^WG3 zBH|I|4Xr-och(@WPal_$F|)M`h+_s0CDwRRSSV*hGnJQI^Sk&Qv=Tl=yw`QFDBy!q zG0diFFq0Q+hiP{6|Bf4-dOK{~*awLkl&N-m*TuGv;Sr<4YAW{Xw;6&gh5+(Bg^ISt zsfxK~9DyKFB&r-|9}sS;Kn_1zi(Y(=c`b*rBnBVqx8|F6||H>Zl)Z{oe7c#tR(p80iqb zcIR0WYxr2G7gu~8(UYrb!c9^MN$_O5T@p0ob#o?qiFulLsFMEL!4Ec;rreg&F6lP|RTggzaJ9Hb-CvNajw`hzsS%{)YweTri#ZUt5aj}m~V zDcyFTmZK>W@?SC7S%!vl7}G2FECtIYXmO+l!)v;n_+i-S`PHl!>QBQQT}l5CL6NE$ zr1+!`BXt*UdkEqPu!(j0cJ@)7@;2l1rLZrG7V-(%sT_S|dprxtufT*swR_)~u&LUC zB`wwj9uta9#NF(?(FqGk#@t!-KES6+Zq{com@a7=YsC% zA4CpG1gK6^X5uidK2DNi-pLn4s3Wwp{b#9uyPS;-J1$THH;N+&D?MydtR~qP0q-6IcjD!zlD6k zFs_FHJhd<^;yhw%eb#s#n`bN+T#0U^zF3w2B}p#uf;uQIcBMlJ7vMVTYK~`qlyI2d zC!$q8vg9s`JFN9IPFVMmu2f;e!9vBNC`Rts_K(1bz^*Dun<4Ji8M5FELe=O0$U5R$ z(?o1Iy^$*t%pjXWP3Q#BMEHwBo}@~st`)%Cq+-}v$SQv*fD*QVHwTAD86k78u85?l zIsNEvkXY418Rbn2&I>^8Fqgse_8j2=Y}hx7Fwv&Weq}Gwwq7Hsry;P^iU2cltcC1+ zExTAi|D_N-he}EbGsl1`7fdD6n9_GQ_=5HBG@kc>*R2@$lejGb?NPP_Ts*0v6}&;e z6_#IRWbR(VjYrP$6}WU#fsjTPNYtyzX|NAM%@#olDzyVX@OJfu-wkAU3u9!W)a9zGw{1J#uhZ2vF$Q{7lpJNcrpoZ5p@~PV=jZc zC(ubJGu_>tL;DJkh(F(cv+Bj_9Yv?Xipbi4xsN?VRrG5J@zg|t82#mLiX+YMvKzvh zgr60lX(u)4c8o&^%I0tJNez7Gm|z9xksd?2%q%SLPvtVw+jKZ)b$cMnDq+OC?RMz*y-849`rZ;74y4VXN;dYlA5W^?F+IYOZeXVH@6s1kQs z5`>WMV?sxGb}xpVv%a|e^h)DrN(fELFC<=1>$JG4BoHn1e8&QpmIVDJTsx!@qo%^Y zRXABsB5AWO6+e=n=U%4y5;Z;nNdxyIXs8mmT~2;qVgpgTm92U{F47;=Wu5PS&hC+m z|FV2Z&z1`Jx?nsu(%*oxifAi_-=uU1%Nxlsu2~|-!vw%8dVO`SMo=XU{PW6f#-PO^ zGYL|``CNi(Z7QG?Z(7vgNY=pl(psq^8MH;2%#x7JShvd%K9wd- zlO%v-^oFKc7fM~2ZLy~ok!%uDC)~=o{eTvuEt9E9lL>!6E$FL@L?juuLoX`2#V)$pC!)?CiX^{)Ajj!R4uc*e zb}_ddF-JikNYDBL1+Y~A!hMuf#a*JGwiSoTgfsu0TOZ-|j_7E%n1$jfCh8`3Pr{~b z@tvo|A>3`bp)N1Nia`{Agj(N|@F2BK_zokN;0hRk#{9Q|FZyZI#VyVLgzxCj)6B1c zc4N8(E9SrV9Uo*&**ns08#}TDRAc%h=V=#w*r-mj1l(~V4~ME%t#G6HUa0tEDRlY@ ziY)@nq!js;;dVeaCwo`M7uUs(!BcIV&J$%HZJ%GgQ^MzBcI=( z5(K*6Z!lY_&s6dJn4YHz8c5jT2px$Z z_e!el1l&2uDE_!7!taBr>*C*f)LP7$my6>F9Z+k}hW}_jfQyVBX*L)-sW-RW{ifnO zBa|33$6){y@` z+MV;pX7#Jy&#b{dLL=+^CF%0O%aMs#(vpZS&5iPHwZ%c0PGUn$+@F9G<66J>M7fhkbO(FM;!VN&9!!%uff=#Lc~sSU&}#$hP(2PBTP*KA0Uo?zZ9Spe zsmvL-xBK-(0V*~yyvOKkLGTbO)hazGQxM&26Ol2ZM?`xz7u+hTzEvgF0n5IJSQx@W78sJOB7GW1Y0q<4lq)1I>Uq#Wp&U=5jc-^qiTTuW znD2Ky4^CtjJjM#iMOVhN@|A^#NvES~ctQm1Co58!9LKo>c+esoU<{3^*mzEf*;17( zYpecp5$x2PL2D>6{@nde(!O|#r-J9D21Yi~QpADi*_R$?^Er=Tv^f$}pEyx7t_^)O zDZCXqKccZ*F^?$&m)IrN#Gx2SGgHSeRLQY4nHZVEd@Q~XlrkNQ_7Kd>S29BwTs~ar z)DD7#JR6;Kx83zgzV;FA8k?~Br`r=V_e)>iT(1}5q2YXn>76%4qS`L%AzNMZO-Er2j4+AV?yfw$d(`29aOL6)g-fJ(I3FW+`2Rhv@sH;^hHZ#uaH>;-hO?#|fzoJWxnt`2Aiev;n zO$;1;_du&_LFREu%|7e*({YlDx;?yrPe!~ZoNd>cxWuX_LgtsOS)@F3l}7w%Nn3yj z7t_L<(MoEg3uVhzP<7Lxdq%S@&}E_kT7sdB!O$Dj?XPB*ho+#mqbQx>1-7A;N-eYG zbzvl>!rZp~d6M`FLE8f4>P%LR&AEIOp-M{`;f*5=Zx$A^NAUshiv`5A~TNok#xA7BU3{Jk|ju{wCN@8HLI zyHogDtu>`q0{v!7+MzxTew*q!ez@1|;rOZAp2JRe!cMZbC(;hrRJvzJGr%BKa(xS! z=tm9I*{pa!3?W3gF#HD-sb6w7jo9(sEaiwhSEWMyyM z5;QTa z##pBkqzs&)28iV1;3HCB@|6@xnSUfG^AkCKMY;1IlzN6R@5^F+;+7wBZ8cYEyTdMN3j!aM{P_BbH zWZEknWC`1^D2=zWT%Iy^bLtJl#A4_%P)TlH6<`EHwL#98ER$rOn^kDrLv<)_fgma` zO&!alor#Hz7(KIZd_u5j=>J2Xq-3dW$)6z*}3L>1sxU^R~!MDBNqB4HF+Fj#1-t*N~hnC*pn@0eUN zG})gJXsvP3KzMhKI^w$OL2j>c$}c{haOZrV<5g3`#s4`&!cH>x$Awj>W2QI+qNMRD zYY_Kay#*PQH5Mol;`~YQCGY9)GxWt(`=M=VnVLnF^=M~?$ab`T2=|+B(|&R8G{{at)#jUh<;>U%F|;rX_bTEs;n9t{ok;s-wK?9x zFSIaR6_Qn!yl*|4H=N36iM%C-sU{+X+JEYBZIxwbOx7|k$NQ-E)c?}!HHut*=^F7xsp2m7RL~*6JxjN5}`M*ByC&r`RJbv#c!)IITO&BAu<|ZQ@nl~Q&R(sSk z8zZJ&j;Bb=1P)2S|KIa-f{dr9$k`PleGhY+Z${OGqiAGI&Vj|PfE^074jQ!m_jI?p zc5jqCOuJ|+d`@UM{l+DYe;Sc$J1FvJY?1@(_J+1-fZS6RmSq5tINE_>`SnYc^p;wW zVsyKBz=ap_aU5jas zY#vrv=^3|@w+*6C%ol?np{2N%B5IehH|-{`MHsMw4SAy=T@c$EU8DtwaDeeK11~5h zTK8BCxa)Wof;{JS`aG`EFH(s2p3u9sf}bZCZLaVPlEzT}z^#H*ULw=$-HAy3nJarD z|I!jQ)-&%9_V`Z%%{T6>n%*~K^KyN8elac7n0@(N3ZNGjNaY!8`5vd(oWXQ6f3v?--|o*^J$sRS?oZZj9^`a%p6Bzk^+WbTxA_NFySx zxV&N=K&In#eBaN_@nG}5No6<-+M>?V3m39~2h_Ogx{fYr#l<0(sGc-7VE4*8=mIC) zg>ov=d-$EBbghnXx{{F1B_(i0(2A4ct+B&REs3%K9i75-MG+(MW%Q64RUjbE`YUaB zN99yk=2|?iGJJn8zx_A!p&s+AejJl7k4mGT{stublTA1D9NB(?KgEnzyFNQFs}_@z zXcMiGQxPiz%tsd#F5zsx(4nx(thonwb0fG1yu)2qJG%fE)nB~gomwQx=l4{ZMdB8h z3obdeO|Fjc+o2xsbCnDEvd1FchkP1x0{arx=JBSN-Y|#OKTo#xf2;eKLKD5lvUc&M zCs~7>(%`dxTzACCi=-jdG>SZ3xF`K~8J#0h^|=tbQqY-LZAoHL2Z0d(pw`d!2!6@|cYqtS~AIFugZzVY3>~ z{=Fp7{O`VUCriNE{qJf9oB8su9-p5(Ov}fPM{Rm+7o+ptHN51v?ziB*!)}%f_KE%) za%t+%_C5wH9Em>ITb~3nW){gMo^Yw+ey*E z*k|z8tCJz-u;xtn(2ULFKb_Yv8~}YURIfiW@;)j0KXbnnQ~7uylH5MP5^Sit^IO@n zas0-`MSE+M?W7x(S2#pX{qhN`@3jC##c5@ zr$A7GliYw{$GkwpX0-{s#8qsuJ~-SPW`D_`1yIiyR6uAWDhc+Kz5Zh94E?(gYa-^m z&LCbLa@XOjN0uj|TbN7%0sm`H-G@sjlKMyNm|(>IYd{&u(8)m4vYg5{U{H$g%aJS> za0t0*k%(_T@FUf!^%Voj(4kaGuDP$&W|G#ExSFIZk$ssPp{b#BNkL&QV}iw$Ml|H; z{Gh-*dtOZcIEQ;=2f3oYK2KGJG`JMK1~=9rZZAn#&*Nw_wEB6vSF$m>f&5CC14Ws}L97O?nLEi6hFH-}2X*=HcA>7X!UH9H z`*foLoBPU1clAWmKhkdR+mleUf8}LeCr*Cdx1S^Y1b)kgz5M>u{0u>aUZsZ*wM=SP zX8mew=Tn4VHB9a3)jO@LSD4c;W5475CqC*kWU+tzmb>)>tPRv^omZjUBl6hxF_vHU z0P^3Iaddp}$qC`u>5wv)Zve5)gL^Z~&fe8A!nveRQT z`y^(zO1$?mE(gLs;y5Pto7s(>&@C@J%!NZg7Y`se8kLP#mD-*0|9pc+p*gcM8cx|_bl3vQXdz-C{(&v8wRLhg|MnAK(x~iL`z;l8 z?Ge~v-a-Vr|5huBPRzYmj4zHN@K8HZLP6oO33B7{byaL;y8%Hyrx3svk(V7mTY#k>RfL(qE~dn2b9yVkKWvj znNln}NmWZ$DZCuVJy7%cvs`~$VEGyM$VFZ0_QwC-T9RX#EXV}io)XYMqxXB=K1h;8 zoiRq1VUadvm0E9J0aT)N9O^8MxO>Xbnq~PxSvYKAG6-`^&H;EmSUAzWa{ZkNDoI#s z>DJ0JOmi1#hJDlW@aNmWT1T<2oVsHKp0aE}7xA0d>x}sodw`&4;_|4r$2y!C3Udj# zgCX3HB0#f$;$#iDh3c3JUR@GJdKvx{TgGEs6J(a2B&kqj&5y7}p zF250@ZJf%tNkY*A=cUrf$W2GdU1;2x>31~rL26}O7DvPix0^ZLqQg>il#7W6*2sDV0Sylj_*G`V06HqOGR>OYxU3=nevZjW zwe)#vhFL2rPGRvWptc>-nmrzlEgs7L_OS3<)nR zU&&$$eoB?W2vRC2r(p_aFR6{mM`~e*E?Yk;a*iZ7ey!5x&&}^K@E+m!EBVrt>1SsK z<&ax<78S?FqJB@SwF}~)XC>*nWVmy0V59xC58P3?$aosLpMv>xC}D06F@vqb7ar6L|y{eu-uNAD?(TfbK%R zBL$@=oM8s+eT~M3F0?Sa5&BOu<@#FN&FG0!w?|ZP9E_D;kh`R8@0)qNs~zuZu*N2`O3g8VSsxKjE^GE>QAsa>(4!| zumc!Wtq61DC$`j_q;h4ia&xd}et7K#!R{CX{w&HTM#A#sQcU({k zjIg@o*AUSz7)=-qL4)hdkPUvE4yHh?1_A3bhOD70KiwK_0i{$aHi^JdaoGb}8Jl}c zrFzb3cUPIs;-7_2)(T|SkZ;AwP}F|L_y5i-2*Ea=8HDvCr>okZ6MCgM%T0e={F zZqw)fXysGZS$jED=F|L;-Rn&>52L~mgcsO*eiOJf!9TEjzGWM|NH zlvK5}OCoGQj2`Aoa73`+TSRP=Eqyr#p6g5s9iE z8Nc^Y=sXn`TLCLgFc-SP>+3{}mYE_%&r-$@+X!BCkuuvt@Ha zNI)tj4btdjDUl=~-qp++!zl}G>LpdWf5OBYQ7A%9>ODbw|6TZxt$$U=I^n{2YN66m zXh?QuOFqUr*$i}bGO#6|ICzrE;!Ko2v@tYr8wJ--0%am`4ew1_l##v9*8kw&*q{4a zxk}$f$L`*neZ@icG^y_v$=vWLFM$80$u`YDX%6oI0p)$eBI{ek6sb0J<0kXiwt+Ae z#YdIjb1f*{zf2^F84O{z@N0O8NZAEgAF(-z>q}{<)5P z$}-ZdM9AmdT0cinDCM3aqU-D5*7gbLHjbkMUbYw{S4|0Wzah2Yh@1E~DME|(n)f)| zM5=UL6}|y{BNd;sk+DW!q0POObXl-}Bk_P|85%Xm?O2j0XjX6Kocg9UBOsr5SgUy3Lc9m*7RPIM zM6w=W3)p~3wUGDa8bQ#ep?=~xK?Ot38QO|hsayu6PFO=y*XqMYrBQugUsbpYU>{~@ z(83%oRPT?DwXM+Fs(}1r?LIPP&8Wo!=b{PlDHtZ9x-Il0F4=pYm66J4uyV`zAHw`= zF{i^d#8!y_eG39i+?&$2Sz6!MhylAzLz8B2cRw6Fv28UfMdwprtBg*}2sBFQJwx3# z8%m3=ErJ!*Tm2dm$i@+UuOb5THAuwg5AJ9Rx{vQWqWkVN^mHOX$@w5;s4fII6>2C* zmE%F}ChuBSy_6!Yn7N(mhHy7yPTR4qXN0WCcm=bs^gp;m^b44LxB<3`2knZ>kLxr7 zi{M(M_Z1BhBG)cfaShqtwrREXqsB8sW-~ww)707F(~Hf&xQaeg(l1i;1zxlSlNQng z5lRfh_)nAUMYx&;jKc`)*Ke`)7JB3yVA{WJO{{~ls*6t@vnh5KCC=`??t;STF9l|T z9Nz)tlkbTeLEWc9tUo7iR?*ZrS!6djwjh)|2e{)UQ0GFVO@LUa;scBcU z1@+IWSKC0@-6tqsxk1@mi_TD1XbanB^{ML?|31>=qd7@j<|< zP?d)8WA;BIszuv&A6i9f#5-{HH}|QwLV6iyL=;I8wu((1b$KYU4)goz{dHcCU6C4> zR>(C4dEpW{ul*uC>oyPbDivO)E6Pf^!<>~pLj6ACmMR|z;cM%BZ@#j)%pxky9&=%a2|0pE<6c?D{tX?^L9UaUE*nytBR@j z%C8n+Xvl+3dSwFygFMn$*z`t7bypj^NW?^hvOm{0pp1}7LnS}(OCrcRSn&5cV7;c@ zZvrb;*w(S8Q!5&YVz|YUJ~D&ua@nm)coi_HazErtq<#$5TfjSEMK%+@8T~~`R+IwS zrWT~7$|<7BGIevi_t}N?MsX|!r{9QgLXaMrK4)~nc9KULf8%>i4Opw}=925d)+k1k zo&E$MCJsfTObKCDmt5`3?%y?X=A^}*D5k%Ei~X!vL}p6o{&y{iYB&b_TE@{LV_-?O zCKUgCk4sgndua?FajO@Y-=*RRfbFB$J2Bfa`^R}j)7u3VSffTiEuFFZ$}3Pac1E9- z-ACBvcf*3Kq3Ueslmd}{tfU-`_X6WOFSDI2+9P3?T>K^53L9bf)NLXdfLlGnL7ee} zRd%C{gw)qi)bOeSSr6uOU(Vyc1gz%?U#46%lc09>*iYkL8ObXyQuW}z5Po%=8(NSEO3RIjy)aXG_H;V8o$)XXZ;Q6^n8#Qi|F^xR48X%v zM-mg!RpS**R^0Am|8gZi*l5=RxqY2*yC{~*Vd8Xv=&*a{wYRN^{r*tgdL0JmDXmK@ zy!;H;BG-8N)RZx5Y*00tl29NTL|>hRIOh*qNLlV_^M2wIVXnXaLUgxBPTjm2yK9Z?( z#*g(h|LJ}}q+^^dc9j+?RAXnTDa~p=`tOhJ%zA2i@sUaygHS)Q56S=A--A9B_?*th z>LNMgY6`d#q#wSan?bR#Wob|B`5HF2H@+aXE^x;U?Q06_EU@DG#42rgyY)srD|8WE z4Onh8wgxkQ*C*>V#cOCFi(Wq)F<>9?B+CHRF8rD?Q+tAc>^90`)1Ek@w>gwEqvj8( z)5#e-a^-?6=iMIN?}tv1BB!_r$?0uR4mec3jdoA9a+u-+%~W^2^RXeEmDA;H2QKL`DUgj;i5!VIurpVlZ$ z!vB6R^3D!jarx=GinI5?yhcWZc-UtlBdQCta*1)n`%8bHfkUK@B}hDXE`&J5(!^OG z(*L(c8}2-a{GLrcQk&7CNLTI@|4qj`9KG@PE)mFcH8|sA@{J{7TcvKDA5+TMqX+uO z7PmI%msN8*VY0bhB{4DkGwX;Mm_OUyLy<7KRlueS@291Qxe9wm?3lOM?#n0<9HkVS z-!AGb8`wv=6nR+i%QWJ=A{OE662(WZBKIdt!n{#&_Me+mRd;jX3ntt!dvT2_d7}M# zng10^Nbc4$3xQ7ONA_isvf+-OKVh(Q?NiTwdlnwpJ zf{-yVc8xsCWm{$b$SP|X7t+-X_40q+{79_&c}Z`oERQ+0ezXIX%Cj*|e5P>rp15zQKn;nKyuFH}{B|oI6 zI8zcHeEFtjc4D!HR9x4n*{`tvgwiSkyH==4wdyY-n(%$UmY9KF>rjO)vI?9QUrI(+ z@Q>i0d-d0rUtn<5rycqe?8=gJ6=IOtI@~GYRU6_2b6rKn?^Z?Z+a1t5nC?6G#euc~ zo|}l5`r-laIVg;4AL>yJxqlTIGRx1x+w37kfJJ1RU`POXPog(AAnae7ebIVC*a1_BXcs5~F?pBAEU@928 z#HouM69(+78GkvXA_uP0$tur28Cegh5)I=2+O%`ZHcs$3Z7`y1lSgM7AS8g*4quaS zZC&o?l!_i*rV7Zoe_tlXv(PDR9%lmno5ZC7CB~_P3`@3o`ubPH6oJ4`6CZ&@tA(~^qxaMJNb=L9b4Nr?1C({ zR0MhSNvFE~1@KnO{h>4l&qoYSf$d;jHzm|btQ+IZ33~Z1ra-(0=&`xtcJD_ z9drYH6&tiDV}L;)E%koPpMDB!qX~b`bdFv4Ji*oBJsz?q*hSlB{vS1c$@jR9`iaSV zT%OabDE8(exQ8gb*{21-OPJ_n;^;GK>I zrq67dPzqPyr07dLHpd(JnQa2=5Xr7rCcs^24}UkDXKJ%5{*)QEQaJ|DV{bDu9otV1 z0(qsnw)A+8RZut>UF|7VY2jSpDyzU00Ij(|0ts#@)}0EnBN<&3f*v=#HQ7%DRAs3~ znixX3Zi0Ag22iWGqE3dVo^}UyX!cWI-PIBA$EpVQdgZR`10sH*v=Z!y?Ymz2TZ!e1 z@g5$=iSMG$S$p>G#Z{xiG{QAp*Fgezqqmj`Ewq9Xn}2~1Ko;3|Ms|FuKuetl+Rzxi zvvTd#t#<0w%d7G+5qk6A4eA8={_oBQ+l?rD9x8=%eXO@j9p(()3RY&z?j3}v;WXDE znt}BWG~WA>5^_QD@TITGimn2v+}}NsQzA)@2EZhEEdwA4Arz(P!AzMR0xqdJ48kAM zf&_wYNXl919Y6Q2rtotky?3zJfxOLsqv;|#C%{@wEg3@}s_J~z!&tLBB2VIcqeSHi z4__#pa9m2Fz$^@Km37Sf#xe2YcgFYx)CjU9S`?q*cVW8?*53>97qL3)Z*IZpX+c;v zOWa+yso$6j#S8iv>}b0NA;bi6%zkr+vA}{2d@E3uDTH*pgF(x|nLKoe8kQIBoVKSe z%KX|tx9boTssh9#+IZnhb0XdAB16g5qIp3awn(5-?rD`DzDozxf|MZ|7QA@QtBUdWftnI5;4dmu=}3u#T(X_TxwQR61zlS0u@k9@=2S zKm&`5`VU3KeX`&0m_~M|L@sL#%_VGJf_I{_K z*u^I-*F_W-MkB&^3oD;R)1_PWBv*`x2~eQ-elMkSg1kboX47`}cRjTH%GABdWKM~8 z5U~OW;LlSAGW)GU!vl?3M&o1Mv(H*RLV*tlV*qeU*l32GvfJWyYjLGNgI@`K7#UHs zA}an1GJIK{z)LP_(~T!1P0Gxfh!3g?vRv%l5|#Rbwion$0?h~j4E#mdc`#|&+ilE$2b&HU`_lpyUvwf4HBn+u0m83q|az`%fL)A*o&P*6Lmd@Qrp%`&L$vI7lm7 z%9yO)^rBUM>Oe-;bl~-C@~_c=Ktan=ujtjCt3ou|tVB0UpS@Bw^pkU8cZ^3f$ZBCX zzD%65S52eiXi)VOh!)4Y+y zzuC+XY9?>shXSoD`*nQTLUJE52V4u=k^jh4^n*wYGDTObdWtPd+v!&`iNQptI+raz zyor6^a7)@Wdw_vi#()h1$XNsld+0!`{4h=@I%BPYJ?1x9d|eyrIIb;$Bj5j{GlO+V zqU&z@r#*+`c_A-9qHLk$@n3Kao& zUFl~3fPR7|{HB8YJ%>>3E48`P6#zm+rhrh5tAdl{c^5j}CzvL_r^G6|6vA;M!~Yr2 z3nhn7Q{0uqbH@nxSJ}Xj58%DNHS*^HXkna;qd`582ykvr7@?pXXgd3HOJ^jJG zHzXRejRJU+Yqw?i!VMmoiAiN68?e}7?GvQAyTVWEEdBw6=c5F$N@1;bTt%5CWK}cV zrB@1%i%t#E7*MEm_eAAyc*b@{x(%H zVd?A4v@+E1DK8-0blq5A%Xl-qdp&IDAfH^)-eKrH@NKa87*7wUBCr)0`tZsAHzl*7 zI(koQi4GS{8dT3h-H3J9AexK6kuE&Y?GeJM@7+b{dDD88CxuT!6Si2d#u^JJ^Hn+l zy$UCSXWF@VuXFzG$foLR3+E-gar-ZYKNNy$^nkQMb7vFYg($3P;-|c(%ewg!Dot>! z-KPH)$go9jM*s`meOO+q%@3rn1ujm)S1Q$V!j?Z)u)q}g!#OVmCy@JW;C_uFDfeH zeec_hK7Pu;LWe5)zaw-W#vJ!dx|TZ`1;LcMbW)pu_=J$#&Fs%eWuWmGKSz={J(*#_ zPe=d_2CgYmNXx%Q;@*1smfPLuAd!JX z(e>_yn!O_4;9x`~rr1I-T`H`*h+qzOmnC8Z!@1pJ44xXQhmXaVF~x(_Xrt0{WAJ== z{F+~h1b7|%!-f6Wm=OIEszvI*C;XM=(y{aA%jrpd(X|fm+#Yyk4Peo}p3FTVfp8#U zu7>uzE$GdG=uRf)FE@KX$CeA~MctF&&{PPSVwO{9E zD}fQ}>f!5`DKv%VZVC(yel>>C@`eu-Bd@X zfFy$L#M}`fODJq}M&5`!rRQN8Q6!!)JWUaUxb*Z!v6ACCu;Cbam9YXKN=1^{_%6!& zImYc*5E{%~GN#g3rqjd-&9@)-OB<`vJFwdGMpB zzVpkUyPJg8F9AJSzfChtodOv|fJ^-(VNw$-#c6K%RzS1A}VK z+Br;?ihOAg-nooKmHk^DM;>);*U#jhKB;>6bEV~$pq>^E@Vke{Zkk@{uaou>e1DMu z`dV+%Zm2(M(W-o*9VdM+Bf`zqbG1f=CM}GAOc!+;<>}z zO4}`IIb{BLDRy;cE%SNFU*O-F)6OiNeU9x3W=)C5JJ8VB4RSFyH*S^!~lngt_F+?IVxM9cBkib7l-fZqQDhQ;Gch!1yI9`6JPL#JK|EH3iN6~RyS5X!P0*KBDLTrE1Wx4ucNP)V{#;AtwZO z-9<59?#WxlO}(b_j|>@Xdc(q#wCy5)&E$fKHJMh7<6HD8BLbQ-b{-> z!PWYIDBsnlI&R3}oiu8@Ch@QIpTM7*zj%># zV^Iq|!E524L^g_3y-=vJg{B`?CLvOl`Eyt{`F$*!xnNW?nyxit{eB&Sjm2|IV#&?R zs06Y)bPa*Uh0z2%bf8Qzf1kf##wmy{w^Ih6`N`#+T#Vw0Xm0Nj%X2LZ3q8k1}veQB5dhV2g9o zH1=hP%kZ11ioQj`n^3M)(C5&h2Ems!3s#Q+Q&F6sUJuFOxAcl$e}4)Zj!kA0J+uj*rdS;+ zS}1nk+N$Z5!E2ZkyIok-fS!glG}&+Cbp)^lH{J>s&UKed#+8EB^vT_bAR~K372tMr zbAs*@@mH2sPiM@3*G*N#w73RshUW$U&L3`G58?d9HroR09qci@gVLs)4~w1F{aQRc zU-Bq=vBNVp+4;h0@XFUkV$?*nP;j9s`tgNq(KLyqyD43Wvsu`}qEpEoBhurFV57WJ zDnvuV1!;2FIl)hhkrZw$@xahT)@i_;^*gQKha5a@0_?QedcrI~ICz~Lf%I+c!i?~U z`fhgkp}i8|6lj(%61rpa#{Zaizh4#0Y@nVjB`bQabHNzdT)U)ft5~yCGqe5M#>=U; zLU=r4WKi(q^vBnlbM~}xZCHT))QZ7bux9drU~d%~E~khKB(WNS#8cD1N&KTu!~a9g z_rslOn`xdGTfJkEG0|WCyv(dc-<#MyQfrXk+>4g?voYh#Rfz&ZdjuN5% zdHvHXKG(RZUIH?lVNQu{Y2#uch3Z((J;n<~^eH+$iwZx>u=W4$TJwls#jV=E3oG{Q zaZ*!ZQYJl(E;#VA}hVoaIe4cJI2!ALU?;wq!To1BmBogRwhtNp5Fl6 zey{vRz8I%3_1QSeMLafrcM$vTV+-$?MX2qkuvKYR^LW%BBy;4Mel;v#*75{66xspF zRCUg9{gDX>iY^_Hf*(sT&UhRpzHTy*y%`%kOIt0)wp_I2oXfV#18 zUj0lMq%8iGfiRYN`Zba_$God}$IDf9`GJ#fyMq>4O5c|Sl6kl>qZns8onJ-#4C#Ck z#>`y&hLA=dpun|EM)d12=I!7E1-2KJprWtk#&La&RH4*V1YILWQ9XI_9(S|=(SNOx zzea;>H@KTD=M z$ep(^oLJ$1;E-qyhE=>ksB8E*?nV>Q(eChTQZ&vSQ*q!fiPoo{=5X<2#jgc_{c4(t z+wDo5wnObCIlVj1SaZONirt$?shf$y+I5j6RL$01pk;EtHXf2bFD^TzdX4QPV!p_= zq`y82qnYZ!k_^{Wa{hc7uyNM_Un)9chmN>6L)}plFGOH#4reV6f?kgF+ZU!R=duG? z4Ea$;`zAhsK5tbLpIRVgHK>r=B3AOawQ&5vz**zG3sRGnY zzEnX${*z~Y__w*|$+8f&MS)5-2g}v;Q{I}T{{(_-7^@8&$T|tew366U$P9Y_#*vtA;u_xS`En4tCBP|Yhb3;nAx}xOb~yVK+fU4M)83E!lIzt_>ipY zsojh%4oi3B;Oz`19Vtxyl}upFyYwr&bU0CA4^!)VqZtG~e%5^UN*x~SoiTGen`e@D z>CG)`hUOGtD{@;ZN5kHvj+9^lOzE#&LrTHp5HAcyVB0dNBK4tLDdnq;_G3}rf`zZ> z!uRZu#p>Bub$Vmp^?6Q-!+eAnu&|YndT=hW)8v#c#XNF{rBNk`XKGGFyGn`|0tUc%p7i+&56Omj|E&DXe#hZ=e;aTuL0ha&-oA@p*W}?} zY1zIRxhgFo%T?r1J=9Yedr*B;(M2`9`G(cLpNqdXO3+%nH8SRkAA!(82O*c>E%b&m z)eAEq<|G(GA8fuH^UH-^LUdJqJwzv2EujD^GonB+#J@oSZNWLvoJ=YN)guy8WtHOO z`grY%uRQYSWJ#IqNgfvAuMl#U_Ebyz9|eQkIyjpmah8i)tc1v`48CTjp0Yd`P7YHO z)stViA0PtXFV1Br(W)}bqq-SHs>3PAeu9(MXfj-``%MNtg6c?ZUhqXZED|UzS~bqn zY@2LYeT2M9uZ1pa8usw~b|B*=u(05`Hq^@~@fYLdV5`+ij@2U7H7VlF(8Ng%fi_L< zXnAf-G~(RNN3QM4nrk@Qv1zpM!8uC?8ZN(&P-Pk!LJh$%rsl2`*)n^|idi;(=s<^X z=^4ldyjYV%?>+6TO4L~EUYJylz5S2JiOCQx#zdv)A6~WQczwV@>kFy@mg)=ND{gHZSgKAz{4}-n zBYp3dt%;bEuh9{HO%#A|=!WC!ri?>_B2XdQF5NA(mg7L+osaynjgdcRn+0ISp!eNI@ zROEMx1a2Xp4w5XW(U_prE&mC^Y9ix{4=3L8DYF(0cSmE3^&ZNxXRo_a3P8tB*#7Mf zxukNP3y_8uS3bgwtN!(?_%XHO53!$E6X-Mch|d`@rTLmGCQxeVtLMw;ZhhU^Hn2aT zM6^ivN|nQNxJ7@ePU;65#kE;`!5gph>_Bq$!_^}W@taEdUC}qYAH93FDsma{1+j?t zS0^2~9;apy-=Mcb2$Fb@(5&4sybrGZn0kD=al~ly6*S?kUOXI};?MeUXw4`)qe-@`|ASn~dGU%%^2wW9{$MDQJnxraQcz_&aSIE8Q zE2wW?ntW*Q9ze4YqR%Oovu#VB06!CbWobqRQCuwaw=~k8C^qU5GGpSURu?N-3OhN} zDLymIB0iZ5zR?<9tH>4?CayD>9t=I=VPtXHEj&b9lCa3oEX;BSZn=n2v9p+8L?VXEQb~80X2%(7sVM=8+o_FDY{dQ@0O*$L~e@B41i@c{lVs8 zhyHJfGpBV2Fr05YzH$B}wwE$73Bi6;+`2i;M=q>xGR@P9V4yR)QJEy*@! zE~J6Hwpm?aSZ)i4Muo;VVBJfG#dGnI%2B4B7C*Bl1QcH!aWV&d%p8>;yIn=Q@%dRT zThO1wjPPToDH8{pX8+%d7t#oJvd1*b?aU8d3gS*5*l_o|s7>$)NNXEwcR+QIePLe6 z)z{zs#1`R-QUPL_<)w1AG;`a ziJ%{+nnb~1`rJg&kUt49ZH#Fmue`+T@S_AwKi7O-<1Y~7;c~;)vLyN-jydf!@UG2v zf|pP;E=|XRoL!SpwJmw*-ns-A)2QuqCOZqRH97+na?jf-%4^Aj!HTpgH`hgr`bc#5 z#G-=$atP0dWXb-pq7KL!_ZBV}Z#4!8^CfDQ0aNS!v8C7e_T!XfpMHXt8J`O!W>13*d}+%x?-)GaPFt-~$M}Uso@cQP> zOK#=Nhl#sOA*yG1_2mDNcfR>LRykie7jo8Hl^f#OF%wvCA+pI=wS=}IUGTFAfsY(o zroP#bV8(RZAV|DKLsc%TPhAy(_PO}CwqdJ|(xvWPADg9t*-ld;MJaXlN!`6ZH@XH3 zz1RB(vpYnAc6j;gXkR5874rpO_a;qshMa64zF6QI0}pvH+M=xy!*qdl4rK6KT2q@i z=PeuEt2AA66P{f{F{#MiI`x~eG<2F$Z z(cuE}g!3){kZzXZrGl8nMYMwHq~sItMH#J+#@@oz`aUFp=ayo z&l@(5Z?3e_2mL?`iszJoHfTjnfyQGexX->$z3v4}gE|5uqqpzzia$T*NW%saDJ-(F zVZTs=t&UvAC4ejnrA5&{R!*Kh`dw^JQ>6C;p~jHpi5q#fpqvbpv)^38s{r@kumtJ} zaNTR6teoPY@%%sjFw{gm`2s%qTa^S9ot(>30=gw5_VKB&$IrGz_@`OI$fM>=XIr=G zUKwhje)t4S7IH`waxt}F1D(e=9P5C}2^e-0>1cuxRdv0xI{)5@rL-O>bm4j{x6Bl^ z1!`EYE+`P_oUVjR9VAzHR~1btD7;&su79;~GpU}$^tms|NgvFWEujb$RzIe!@TD60 zhZ6W%Nw63_6#37wa#nPmAZM4+Cc~o0eML-{HvKAy-n2W{x{z$-6$0dK$M`NG>jp&| zu4Tt}Yy%1EVLmEK$+6-Y*$B+a_vtYo0z^4UGj}*JpALNR-=T9$DwIo;(9nA`X*Y%Q zb~K(R!>bXo-dCMuYtQAR91mIiD#gJ{M=@Mj7Y$LQ^H_o!^I80p@wQxl07*bsUx*@@N*3ULZvwdRDbseW=iN;=@)2FYfm)7Fh@- zqBrVj%}NK0jrkk+t)5u)B%tIui~6PT#(nO{{uCpvn3}A}eWIBkqAss*D7sVhoHOWi zaUM}KW1eR!Z^#3ww0Gk+Qr4OaiW^RU4A&JesM3}=#LB2ext2d;9^=ujr)~ z8ojdTuFFcmuF!+Qx1cln7xq&w3vj3`aUq(ys>3?XJ=)4Zt3nVtG%}oO9E5jio$F8O zn93Xvnp#R^N$L{K2;Fuim$vHw$-3^Sh4*|wOfXd@Y-LvH4r*48+oUw1M*g?>$QLMn zFp6D8c$AxjjSai@^h!RXBJ;e|7dA}Wpa7-VDu!g@CU;v7?W!GRoLKNO!9Ms(!Z++U4zL`uh@tg{g3BNnGm zp9ZG-te1CP67lB)fwUjwh!|R^&5;EZGDtGG0g5v{Kw-Bt`9x7l%YbjfAz2#;02OGF zm{8Lf2JvmuFhlo?x=3+wfHw(279~txxsG$imVJ^rF<;U)nc-_91*@O9QatKWexH<> z^T1z~ylPy0=Nqjx3ZKO<2j9MG=J2+2NxTZr?cElcm8;^WnwWG@4tmyu=o#Mq{`Rxp zBvAHNTPYm%LmBVv)&03fUqQp;Su=+5>OVHH7z6gVLjU#zIoaq!;|Nuv29RxAFNywh zro$qEUGD@A$ttDiuW{WA-2tX-^j=ZcB^syeGbsE|ksUG*!cIc(TZUzdm>KBIhB?XJ z-EgRLm8A6$Vkj*Hodv->Vb|9iYL#Vx9H45d3TZtFA53F4gYZ8D&K$8bwfaWC0mE%_ zo2avR;3ZT(6z51j?Dqkcl^vx?*xsM%i3ayHJ9UC+kbL*Ji{sa~yt*^aeQYLQJ;rNP z6bXCd0U5g2E{C==2D+^WHx`67Hd)by;P2(Y1&DDet)YbUKH;Z*m|f@iYrHS=XdHAj zDb%H&YF=!Tn2*i#!hmd2Z`s~fo(CaLf_75dI7)nWY$Ex1VcG3_=9Qk!;1Yx>G7e0( zgzb`IdJ&H%2#;j-)0<*Sq{s+Jb3F7u025W(I4cG*BP8fP5aT`iEVgZ~Z?W47iRNIl zc_t||@h+IFu>`VboUI@D3(SO>|4EMa_AL3S^mS^cFi3l*G^lnd;iiK*?b%27YqKZ+ zq#0)2_v`uAj88ZQY)D?y89Dxq#^(g&$a5i=D|LImyhZ(&;LaYy(izU@ToTJv} z~1H6ydj zwv2&BC5y3Z3KSY4QN*L<6b6B&YW`{LI9`b6UD#8D-;Nqy@mFF+CkB^POIZ+(EC5;h z4KvWppXWbaEuiZ9J>^`eZ%Kp!Rn_`(C&BO=134V)SBh>m7ecE)bGq`=VS6N6FK7-G zQep2EAz#&DPN<-BjVHm>syW4eIS6D##Q#s1qXIxGji5s@-XWm?Z9_?K-6|Eo1)>%? z1ZB;rtiOel%r{HM1!7Qo0P}jX0b1n2sdHWjemi(av-og`lEQ%x)uj?CJW0%$7&y^F zFn9QqFhU!eK;5v+RT%U&;o`Ip@8ACGO(4O3ywq^$;_N7u6T&k6Q;%HInOa|_7C|tl zC|3)b{2E}nVw>xSFz26Lf{rhQ?2hHnKXGn-$lz4Tn0!J)%g%^!Mx2qfj;wc%#^C@a&0GN^<_iodg>Wr0sC3B;k67 z(;%GrT)AXd13DdxDAY;(h0?`$FmOL$M7WMZbt+USE0WB^k{scU?qQ%s{tbf2l$y;V zeL?7x$=(jtja{N4{OVqlDi2zW8_3_x>ZE;!We{JkZS7KPYd`0us|Aa`cCyvu_{iaj z58P#KqAPrNf^YqozhQUeHgUzwe5_IjQ?CrWWrqpY>a({TFXlpoah#BshKjEK0xeU% zHSNdp7X0Sq@>_ZHLID`n0?D)t1)SxJWtn9H>j;)xkaK zBDtNAgvsYZFw}cmAw9A;#bR#z_xP^r-dj(zV-mv?^g>gM*`k<1K(_mbdeDb5YU4ao z>u4I^wg|(qsvXUwhi6r(y~O8~?Kmpl#S}ZdWhduy*xPsAHd*Eym8Djr!d>m!@>z(Q z#)_L$)n@{{;xgS0n2^7#_`ac4FX{K;&n~<0<;O-+>#>>c`uGK~y0VEjQik8ulFf&q zI~cv*{9tA&adSN9myjiA7i+UXau7#g#%67|{|9?lIcH4{(U;Q$$ed!D$h zY$o^fn6s|bq96_wDdz@l*#VeD=u1L$;eU7UW3k%A4)~%8QpbURUiy*UgZq5Dxrn(% zt>LD)$ay*GAE=HNbOkEd$1?<3MwB7@zymg`oXBd8v^SrS;bSR-wehB_kA_yyT^rY3 z0e(s;=7Lm%>8ziqwfw!YFbcUgL&sYdxo)Qh9by%thT6S0($*vM9ylUWIO4$uP3 z6!tISBg|oYEsI1#@(|ARAE~SfT#l)$uvXY3sVl|{b?II1JUmo^JM#foMh{U0-jk6z z7T3C-VOwtxn9pJ33De zS6P;gFR1m!NJA&3nCl+87ILrGE8hDGPdm;vb$(-k2UBDuL;}i!aH6P$kirwkUklbB zVo7|%PMMk|IZu;5+gg^(^l7|RaWx{X1SIA9vf&yh0koaTJr!p84}`L^C$(GhLzc$K zzoiy$)zqDQ(h?-C%+>NgeD*1I6N>D!!6qK`*1D<@3Av_H+R$?DYSC8-`dHhOIKcbSYYhN46@8y3kzf^h%as@eoRUr9$mh>(g+Z`*)S{ zmOavNj(-*{R0q-icg0q7E~dBbgDDFU)6r~iIbTK)x3VU%-)<^&FJB>WTqzWCzagRo z57uPISRcOo>eQL1yvl1JHXL)x^Cc=9@o3C9Z3%uI+f0B*J#K`Zh;s)bAix7ST|Ph?qaLIG3wH0J3l3 z7)JsqxS$KhQuMCj+d&OqRnH~3yS`8rzSZ^^P9%gSU&SdDS}4&e%c)Z%epVVA4$Gn5%!mnHr_A;jnmnVrcwS-LF*5%N_J^& z7p5bA89+YPfUwFFToy;2`Opn=!IKjCod%?|MHmp2kt0nz3k)rPNe2Qh&3$yVFSI)> zDclXx&N`OU6}h(6n)Rat0toWIAeTG(3BD9|^yL*)BA}YD6tuiM078v=j~A1?T~(p! z=g2`_#z9SH(+hrAgV$ycqWHZsp$!F}R_i=ecv5oITcpitmH)F@9u8Bxk7h`jivCA? zFJ}l(HztjMmL0^vJP%O#?_(VRZT~oqM^`q^Q6mI#R70Z7b>VJrJ$Q&3F}LImr`P`K zO#3)=izj@VKNqU(b#v6ORI>ytl*!e%;QLdT2%%gjbr}YGWn6lKzr57uA&6EIbYOha zSFi7H9;QI5KN`nSxLm@+bJxQ}eIBP~ub1x+NMeYqBj8=%r_Cb8MPQ3LHs6(HFmU8* z@taDzR#;{fiq%^#a#m#etFfUiFK4}_q<5TbcwYQc^eTHd7dX&JxTBA~``F1CBn}ne_ zxpVuULYRCczh#Gpe!VPA>JAMk7a0cl7HDY6@P2c5D66_xNkrR;cd$=t6J_Ufy+$4b zRXr28u%IX+oRrPyz?0pgz&rjs8=vIqhg+spY!7c^xokp`(RZrW#5gj z-Y5v5Yho_DM<*zy_*^@j96PomWy2-PFrBvZtv<#m=cfuZ`P11($$%qvuZBmgy}_n zYC(%utl>8O^Jj*|e4`U7K8UC*o5VL-JRXmFn9TUGqCm^!Tzg zAkkiU&PP~1f_@F}7p*ia_C7)Em(8jZsAM<^>C4-*1asr0su~`fZk>TXa^6hHP5Zuz z${{5(VKp!Bx*^O_U$KoZ5RYP&nni#RqXei?o*E@UjI~9+(5g4vKd%Ivq(?PaKO|PNCrVR?kkQ;@Fxcyp{D^-Q%|v1` zA8AxFiu|+b*<9zNH4PjyP)KiXQT-h!Z3`2sR-6VJ=ZOYVt~zjNJ6zwFRhul*sYe;y zDll0#x+dk?86JytB{?Enl$Q)k{u9XrjNR_XH&TPzrZp;v8kA-Tm-?zG(WmfOR^hBPOoz5SRfJk;OtlD;b zGj!4j@UaIxl2!JUy6BJ+`g_=BocAik*;1t9F-@D!xR1CyxoZ0v&#GLa%ucd4SyIRM?-oU-u!3+DH0D16$@U>7LM{A93aJ}H zLyGCbLZUSvYGMW8Lm}iKlchsU+1P6uKnDnO91UgJby3|ec^1IW4he^0$-@(#uMA{m zW!yI~re`5*i{(AZqg6t?45Jd527A|W+}Vlf0kfk}7qTCod+HELlHNgN3s(zzlK$SG zn1j`*&tP9vsz0w#n!Es3c0kJC_^rH|-n0-|iTe?&aHWkA*~MLgqIgo-3c- zwH)aGCjU7-pTB$kx8;TAPu=5*JzfQIVMF%)gshQl#=NOzT|Th{t07~QK-_qZ#ieB` zQ=7x>?-sm19iB`2M_)_xstVAecJNVjmUcO)rWGe2(w^N~b)73LKkD>F-3goY-x+@A zcO_nq>IeMwYCTq90_2U!G(yVdZh9`%x({v9#$T5Tfu&`xZO9GkaoOrxA9l2+vnR|v z*CQ2+r-H>`(v7`H{qMQJl}#i>2SF z=TdFh8Htrx1Jven-x~$GC$g>SFKI zj|qhYPTuLx28EB=tn{{><%pueq1TfL4vgX#E)rJl->Q{hJ=d4 z#O^_(J{LeR9_|=%+fCHp_(~%PL+d6I{`xwb-P-{vRu&Ux-wL{2*zPc9vl9yYZ=hy} zx<%;dqpMPp1WS)#hb=CT_OqmRa!re`QArKn+p?L?^omYu2F4Xe6%-yPUV#F!WVsP zOD!2SPzQ_zCJ%<>RbwseT}^S-a*kx4rf`p?k{sf2>-_|&uZ42WIKieO9rCCb6*3fk zUU+82egn}z3MiM;N5*X`aGRtNSnJiMs05hZbr*gFqzU?Ca@`T)NNm-(Xd`9;!_A^m zW%7azx~DC1>Am%eE;^~4wY~oDN{kdQ5%$KZM?m9Hio#(SME%wZSFSABw~(yI=%(xY z5zHQ~(am{tGu&RRGqk-SQHOZbg&1T*1n`@P2L6uL2f|+=#}`^M{^#trlY|!g#|tQ< z-*QYb&7+5meN6bQwc&op3di66!fqou0(0Yp87VQr?LQ=Lh$9+o%p@1h?fQr!N4?ZL zxm8wqkC}`pjC^VIe~eUDMCrdkj>cVaF79U##9OAw7;&z?0?m;RXn|2!gPjOy*US5A zgZ+poZ{KBSN`}l7)V9ooK*L^SGH1QE;p}-}I6XhtJ>)h;?*sS)5q~+EIpR1sKOwG) zZNyImKKMYN_PcE@f~9rF5i`_*?H0M?J&@2Z*WQv;r&{>F?89|?5S9K`{FrlP7;KH! zr2kYZC<*6(OFYXwZTsu37oE)7^mvqqsEqT14QY9c)rZ^5+rPK}x11z?wXVa#Lha)M z$EQkK<6QpcrxlmT&C+L3qg6s(Vl3R)I@bp}TKa4S;NO*DQ#qcWHjBynBLcPeTf6s! zjk^3Uw(X%NFKT1~ zE*@qMAJslq%EpT`m$9dd?RC{v*uhER3pw z9j+zn@zrncd(=xZb%hrb9$TXEv-M`;*5+!aii4&xM%UG!Xck_p9tl^y5_xMpi*rWPM@xZrNVix(o6R|v!7C_m z!P6gMgrJuG$c5A5#4=}w#%YB~$&ZNtP1})3#?js&?sUXp3RQwm*07Eq%2~7Iy@UKb z2Q*|;k@HS&=$+I3hmvZBFDw-wTxD>Epb4Oaj);y4n4?CSD_O+7c8s6jvl`f=dMA0(Mrl8^fi7N>dyB!=c4~%d(SDc$^b(ug zy9M&tAXFR<&p$sOS&ZyALq_Z|yKD^I6WJ#22WyZF@L|Q{ZeppQc82&sKkYuk*P=2( zUyXk8>~B;6SZ8fvNRl>*CbEJH6lFQl052I^N2}!W{De)BFVH$NEtCSrP>o6u56T2m zWzc~XLnuj51LRN{ph1m5c(s5lt^(Pi4_-ZW=fu>2YT5{rBoYPMpa)7Af*ZQSRl7tC z2J5b6%#ONj3D5a@>f4tu8rliz%;jYG zWK_@Ypfk?~o|Grfb}X@JbU2x$6L-VsZxot>V%~hO0AaqCcX$a^06I+Ul5JoxZo_(Z z>&aki`+r6w=jUl)baU7-3h=DhH))dy_z2|^gu^CSPB_!`ly8G}BlPsfR~j%=EeI?1 z`T1h+40jAWv!Wy~D6#vo7+wjINP}cRqzbgT_V4!Sgy{d87i8lD3LJLGD3VC~Z>`K_ zi_af!2o7x+zpr;RC5N1(IaEjz07t{1hG828pyzLtC_n%;h#?ByBJYphFjGRBYu;!8 zrWy`AUcZ=Px!wj#=t%4icFq|1 z{0EFQ)-u{gVixFRYy_zNzsFssP;dU+`AmE*&@YMh)lr#VMps~@)maIO6$XQyA1;l2 z89)!b(Tv3GvCjGypaYZxw-pcOjl@Bd3h*K=(V5W!tn6VLXni#a#dFKz9_ctH!h2TLn-;^*hdV13R6*6BHu z=!=uDuKmZ-SFdMV&Zd6tseLgh4V&p~Rrzd>FU993*~9EQXY<-P@L&Cv2!{Nn;RwzUTT`$Hac_q z>ZJYGvz`;>Z2r@2`(nP7@|krQ9n-Smli_qNUO6`!B$Lp*#>8#pg8qB~0yIblG@i+z0>x+K!Lwjc9bL6hDnYYMl|csu zL>)si6lsC9P*%`xx)%zqHAn$*>E1LFCAa}&m(w;P;hS&ZOm|!tkZv=gQMk2{1 z4Xh*EM+*9j(VqL+QOyM{a?NDqkC8E~qqn-)6X{_RB^2ZrI&EYs7VlI=rI4F76gNm4 zrVW%G7|pU~hdpH~z!l4HI-ecbM1ffU!KktGPaqC0T&K~12Tei}zt@4?>l-Br#2a2X zA3L}O$pGyn3qjHZ4Uz$oDxo7&M^y`@5|jy~p~|3x0;1fG1dd|z{7qnY)3@jM30B!Z zdqNij`)*(oJ}bgWAa68?^ND2#=Neg221VnY6u?_nbX6Bo2Qj%5L|qxDhJd?cUMTCp zH3%y*T}aEem<9LpK41 zqELP|O_qMkulW3X&F0oMo4^+Gcu+C8xR(ZDwSmjNTKP+Ho7}-Nxmj)Htbnz*)vHH> z)Feh(b4>6(d#qG0&rfjw`9?W$wbIsy-#}t|u_KS8AA`Y_1~ez>k9}SEY+}eA_kH{7 z(CC|q@j@;F@rpM#$(Jk+S^_o-KyP?P^_kBNGC6uL1cB{4y-|Js?#j(oAYRzFQ37R$ z!zwmj$<*Gi9sR%ipL_UdQoCrE{q;vZT>3w)NxE{Q3pw}?xyg9*-i?Q1Q5SK&cX{hKD@&cOIZ3E? zxRFPgM@A-Fz#AXuWb*t~OfOUyn~mxlY?pG6gnEYGkdRPsNCZhdKtWJ}xSbDE2$yJJ z3zFSQTH#5ywVGXN<3?FeW;HGtd&Ov_nlz78Om#8Y$c2;X!A)r$h>DWby3pcLX|=l z;0JbKowyM&ZiF&z5`}T#ty%HaUSb@59RbQ0r=4=&fLdO}OeIKj#bOOaQQVfayNak? zaKtsj5jV2Bo!QG99hS7;OB#5z#{IH~J}8ml(wCs)b*DUlswX!a#Qv#==ci#Jh`I{I zZSe?K(b_zswQ+{RNBKdJ;^TXPD3I3l|pl5&~N2t zDi-aP$gD}WU~At%lm=*!4DeKaL))f>s!@NcK!=q)CTgsXE=yjyvSH#S0}3@z%|VSH zPROvwMM^+*$nWHUhW?PNBsy9ZNr}t^G}T*>C=D1X-?76hyY9slYtNY>_IR5wCRdC? z8id2=2Tj5*5jN48^A=rI`I~KT{){%v#d%6S9a->M$LJrmT01l*Iwx?m)8WSCY!%42UP`r z6QzkbP7E(E#4^A8%CSfESfY`~ngHr@P%+?d;<^$vU_YUN!3_t{5RVFipevF<*t#a31^^ifsHuJ&63ar}); z7ltHhlL%OofLbUGC_x;gEA2pNh9nA*0SdCM+Bgy9$^{gv(1TVdc6t8pis=W@33W0D z7idiaYN1qucu*#gDuZ^{4582hNHjo$WB^k5cFPP}xenCUY@bt*iDU`1fs4D1^Wp!DA(MvSs;tgPZP{kyAUKRV1@dp z8L(~rFkZOC(WUu51;~xgjNxWNPe#r>8$b+!%`SU%!IY#;Vq{ZZHgPNvbbYl?td3%f z8zg#WugGc49v-g?!uBw%_YPB&Ow%T+@-SGYIA9qU9QQyvP$nUntDvvgpqo^J#&qH` zLL}dv+I~gPN|1#eY=#UzH_kdZuPBU<>TXdyCP3|XJU~xvd}*`->&BDNo)>F=e(yMv z*IXsKIJk@2>kpk!Z7{uaqe*H7_m)jJh7_o}W(b8AfWHBQx%hKb&$fXR4bUJNfYkHH zH3$3Mk->G;woodd-PO;&bl%8gf@>z+sFDtpNl3=2HFM&zxv0x-^2*ZVA+`i}kJkPR z6%IvW8?TNJ3zmO-{om3n>xj?H|eT^II50(PB3cNT_@N=+eJU zC-a-M(2UIUkHEd&3=*Q6u*bTwjVQ5rLi{RZ7(0}1441MlqA*t~kuUVl4c(wU$4L7k zK9K_L&LH440nJFb<=n`04N=!3H5pZJXdbDUs&c3&wngf7XLVDbzXI&)e#>5|<%NxK zTnO^!Sijf4@&I*EgB~=XIIaF$SD3N7`wJwp(jeS*wLli1zq+|dE>1NstUx)UN=)$? zKL}-t8rPK|&)_h*M~R> zGW+`c45CC6<%Bx8Cf`ZAnKTPzH%bIiS9TGIXRjV93BW!`07tSxw|pRlaoh+}Tsa9~ zqXFt95Vv{ByVLW>8D*stqINY=siqsdJik|K#~^}_n3Mlvw9hQ|lKCjR$*9E(DG2W? z!_FF3#WKHGI)J(oj@>zc=qMQUO-tX?G^6%nuW>bjRpqZ78t=p{B@6>q}`H-f0EKw2h{ zH|&%HR_Gl6Mjo@et`NKlFoTWBxa3Nc(uq;r$kyqWi?wwvBcn*k?qElveT~EWCe2D+ z@nexmI#5uZMd^e(Sx)HbmMab70Z8E}X4Ccj`=C&3c6;DOvKkeOHHm5S=*0)bYw+E9$AvEY8gHfgeNJ8$EqIMG z%$~yKLcj+l0dKtc@V`T>J}p+uxyLK5COdb@i^)oLbFdHBM)BF&XL#jo*?0NbRUtpq zm8*9A>IS%=m(W!6g)Mc6>Bbxy4C?|0gsu@lkrZ)yyUk zrGP$>KfnGcagW!^Ei_ZLR?0}O$s-qnzscL1Q%2^)^_`))WpXN14OWk|uz}u8Hjms~ zZw{3Ty#o`ua9cS~{BRVL+`Oo|Sf>qBueV&Uo7B$Rax>uuxxNDMCc8Rs+U28m$J8ty zYk><@HT}}AiqjtIWkROF=?X<3}u4A&eRbJi!&2+nQwkGvCWmR5Hw;nD0 zvRd(twjP;RS>BCmk9lLrMX06DVnObZ-fv!)cdlxbJg)hTjc&XagLiJGt4B(?iesh% zP*?A>kcmp|S}rRm$C~74HDHT*b0?Kdb@RIICi`Z9$dKX>G5#5^e=m~t%_CPIpA>Ro zlfJctzU^yANebCyd3XHi(%wDNP1d}eS>5PO?nY}e*={ds*~0a*2MV z{qp*Ie!c>w#*eP$`KyUvbO?+K#?9V$h}oLN0KS!f=82I`u__)UVn5G>GHm>Ti2C)EOeu;wTDI) zQ;({9GTVz;dpNFKduMrj-01xU@-98L&U@{l_4cEeKVE;d+^A*Jj&D6&X5{t^X_l@FRc=Pf)s~$>uG#gVYVgPxvYPun*K3DH9|uA>hqKr>2bZ-og_P!OMf@Y9jiCin|1j7ap%^3BcBZ0ARj`l$MpO`RxT@9 z%w{TiR1@|K8jK$%a*-x#gkLQfm-|chwTE)akUr9X0Z>Z=1PTBE0000&b8@6aWAK2mq$Ma6HVq)td%>006w@0ss>L0044t zZDDR{VQw#Pb#!obbS`vwbj+PwlIk`PK>t&fMK*H7^o=Z$R*NM5Wg%3B|7;?7Um11F z;3qJ7S6$9IErY?p5Qcka0^ffJyK;hWnI{fS4AYP$kss6TJX7wkr5vUr2o$=c77d*m8f}i0I!}zF+1v*!HvR_sqMmx?Y1&z#x_k?nP1ewT}1fuWKpG zI%s5W{*3!8g*E5UV31ky8|-Fu zD9;3foF+^C)!ePsV}W9LbGV&(v5^#wG5d)zi8^3PB|NkvMITjdYzEgWh{tPL8d8WEEI~Km3RS16ShD0OoRJl+TI3k_?oFb3K)L%Cuga50hPOCs4W#D^m zMt(c8!uF}zj+jKXWH;xDyuO4s7`l>t3LKuHDjptK*Goxr`!4OkNj-g)5M9%DbY!^U{yfKR{DI`k_W$` zQ@0c-3IARBj$lU~YySgECZoJoe^tkTNmn9ptM-^223tE$#9w8*6k`BS!7@EjVOF@m zPULlu=v%BIs_^&ncIK@ZMj4H1#0UCI(Fr*LZxqf!5Y+MLpVWXoxG|AeJ>uspVi7v| zva-3qF1Hf5|C&HH zc4jU4DkE@>v3)s#!prSU$l9%v-_`9rm1N$G$-Gm5F$pgt&zAa2t=qXuH!UlZHX0$h z8vRv+#&k~ZEd6^}ylJF|u00hrdNZ zm6VE~Av8QK+Kq_8)T#C(+Sh0e;I%cp_d9Vr^OLQ={}vh@!k7eQoAnk6y2*&Vh|WS* zbR6*%?Kq=?Qqd7ZlIVWOx+N*V6^R0jth$}6nrg|c?T4&UkY6lWg1Da+lW&n_0MD8&ioh;@U6<;bXac-y;pmxLUUBHy$)H8 zO$rwu-GcvX9KlB2)ve7aP@Lm6Y<}?QGtF5Y|4eX% z{XPF|^%s?3>`E}YH$>14g}hmGSd*V9G#gGcS9RvduS`ki8R2N&eOb3N&r3f+p4IWs zijWso70oB=D28$CEtzlnnc5d2sI-q0W|`e{>gOBt49a9g2sNtj{4rCApXPFc-H45{ z9TQc--k7cQOUZ+`vwqh)EBTL<*`mJ|??@PUsM$(RQtUE?CfDMbWolh+6t}Yq#{@rf zYc`U}BLpi}MNp$6G|*pasgk_X0sD)Zf()iSS;;NFDtqAS@aO6SD76|S=p=?mTb+O> zL5&iPd;o6ddE8)<==f0}TTR{a{DNLnT9iq&VALa;)ob0(RS8%N7o;TAUn%Pl!&KBw zB9JSJ2W9(UQryleEEG`MlHigZLD2fhtR@%z>&WxilOw3@k)H%5S@cWymuckS{t4aA zD|_#tEGFvdvFNXBMqpK=EFYrY z<96oNo&|0=R}pIjq4pEnd@9<5msL~fuj@gILwKUhU-K~C&eIJo`H7RfQgmOWr=Si{ z4==J59nrmK;%)KmY(^8cQ|F>YsYt+xNi=@{wbgF}*IMItuJYieW~W9YQ*v5+^lFCc z7-IWQ<)Yjuk6c9-+&$D^6ku$CEo_tfAT`z*{}J8JJYEolqYTBN)=~c3up7DTA?)un z>(F0oari62^l1V2PcXCE*k8sv75@G!hrec7Rb-3)IyQPjeigxpCW24{=OItjU)L=~ z6b^4Ine0BZZ=t?Y9y%3DQ47kL_Q=zU?NiDz*XN5c9M+V^x}6WJrd?I0MO2R!ooQbm z8heYLhMw6&Zt=kDtor)I2~&5VJl$R-IWkwJ$j2By&?J#SdWgkAY-OSrr-8 z1?fmmEy!jjaLdA>iUfna<>;WL7;5uikY&-L+NnV9L22l?BY)5N+Uw+1k-#HsyseZE zm}K0;9l)51e=g`|Kxk(x6dH5F)@?ygA zY(osH{zCobQFWuBx+yp);MKJddmSpna+wKD>5nUYv46@=!POod78kroAbiV$ApcFlmi zEd`~Q&i&Q0zu4Nh=pz65Qpc{y_M98^K#XKZcml4%uEt260$dChUd%jIwostC4n@EJ z`t9>X_j)XerXQsni#;?JpS+#j?Hn`?M&N3htme@~Mv%F)pRS-l7^=FzLTLCg^cU+f zePj&}Rb;-MKN%3bjdTFEk_gVKzk+B5wzJIhM-*VQuvAi`;wX{B5<+udepj$FN;lHe4^>Ut=1g9(9(9?7k|G1%jegiZU1O&=}tgJW+o| zzgc8=BLxLI#^h>ddlS4I_TXyV&b2P@iCEp45wwx ztPagH;b_eJz3QOsW{j{KvAlWF@Cyb}^_QX@g%$n&8wYSD9fYYJI7d+vAvufwA{G-V zC^W^`K6n6mSBl$N^ww(j*LQ=E-%wmxRY>7CI||<@6#-6v%26K@trKj=?Yv$61yA>& zB&FLOa04xdt;xa|Lp{XMM5k87c10&T)feJuN6ruq>ISQ5)d@U>sA-Q{N*P5%>@V>&i|b3BjBzw{h5Abc%-vv= z%tJ>YXPt}6yLht@gt}x`fr|d3I-!hB%|Ug5W^O`$mbY`K5tRa=I6`vj2E>ePj?if6 zhY=Rjc^N+i3Wrj;HG+($uw+yvR|PVj#R&dA+l#GTEbk&DbtV~{xs(GLtGuM}qRP$? z(&n_x{yGgjs6J54N`*IqjHb*}q5j2E*q&Ywf1esSViK(bPW_>zT(mDQ5*jFD1v1A_ zgD9^1iMdjM$l{Yg50&5A14C*6`ref%>aP zQYvJ`x-}Dq5{Uw)q-8hx{v?+OWHyE>Le|Qh4<$MUi0XFEY6U7E2+ACQYnaB%?(+|n z(+)f(v0}8KP$LQj_;$|{jRHM88?aY5^7tMkXU}%76MLW(G z`^drSz_6c}fXrf5_Ij|Ltr5h$!Pth0kIDzS!d3wc&67Z0taTfK-o#Vk>MA8cO^OgS zj;|b>?Cd%MOm#$$S`I>HEA%kbx*POnYSta=4h~8Impcm41`?39qCFwMH%@I2v2}!C zQGZM2>tXDp0(RuL!ma3bmQ_0lYLpd`fPWIWT%sgj>SbiE8U1Eti)d`((SpHGgU2NI z)cr*zMyRIK)R|ZPK(5!#-~@T7xsfUT)uH=Z&uecwe9TPXt%6X{+C_6ip>BHsLw~i% zRXnzV9LPQL{V)i5ZnO}PX?SIT6Vw_LMIF8BxFiO(jENmVSWB!)$S))AtAjcBmyJ;5 z6pPagIG;sD$P)*0>SMJS;Sg}hFgInZG0~eDPBrZ2_ZK(ZzXHxvYR7|E?!h}N9}gCM zpsc04+K&?aTf=(dd>I=CKa}|pnZV!sF9hw;zlu1BT)jWCqwMaHSyLA5ud2=n{ymQg zV%{Romrmf3HDWI66c8rjcH-N49uH(*==WbKtjPCQb$fh6+2?RrYt{%&)yXVXz(dG% z!|lv#h5hy2GgP5_JJ?Zf9|gSL^J=OxTLh3A6CJBaH2RCs;Xf!D^L9RsNA%UPsZlpa zu3_r0RaEBNS>cS7{WKaQLOVpBtn)hE}s3eyuVuTgFPp$YCpt^}=@h+yj|MY7`(U z>{MKc1^eMU8T^RJ#}l~Hr10Qv*Ir>i!19=J$FH2%HyG)@I~POe5aGxQg${vsO0reu=$6*>FO?Wckc_){Oi9#aW~gUOp()m~{YDVBaJ$`)g0 zRx8NpRh0qxWk^+~dw_pra`#3*&-OV%*8Q9m)G5Lus^ys|hu1~GsvY%L3ntl$&hC+# zp?YTCwh-HIjSoI`tRP3S(l`x5;An%F#kl|JOm2 zfxz2r%sN{QhUA9a@Ty3jLm+dk}{cV@aK9aM@e0Vz&da66_dBjs;_5?yd zL>*4i+ZQ60lLO(osnb&2&K|*Q`dqZ2i3$jY+;b zz)Mw1?IlsK06*k)4InuI5BuRhzoMAv*M`7ICSMzXG@{+VCx2%~3WL9a!H6(I>())4U&a8t_nD|7j{yFM=J2z`GhW`2q zYoRZNlt2Z=q;4_TYH*ZUtG@_n5e7lf@5QTp}??S3Ho!9L>k- zQ$Q|}cO!oLWQ0b!2T|Kvs|;hJ>X=L$;vOkvrWHg*w}&EVHoSf zz6o9C#2zwRkW3sQRQDH)xn-mV!JGSwEs!HWi#@qna1}a<)?OKRAlVj__M<347R`<< zGOK>3B=y-B_j=URI*>$lh{+A1yQ3s)^9T60nD&{~!BKM$y{Z?3aPc=1Re^_HaVNHJc$-UGZ^f3-i9sPHw(+28*6mx9f+OT+I&0L zpzxNlndlGZ&MixI8;GJ~6>?p=5?OLeC6f4;fv{HmpGgGIEA1*7zhpx{@>uI~_CB&~ zpy>;Z0aFK3@oZkS%vMPjjVowo-|a~RpM{kpK!`Tuex=1g%)sCcJ$E%0gldk)SkB^~ zkUmGv^)fx=Rk1N)=(|F>U;RcH>x}~AxG@JcO#W55U#aLX$ZsE#L|M`P2O>Ad)`Opv z_9c_BUW@+TX5EwISBy*M#`@S~+^ZdEGHk_JGWiVS*0Ka-9s%vYC+n{F633o_k-xz* zu+7`|#wHaDrpZ#FX&;Kd%I=wt?S9=3HzWBKNyhCj?YphyJy12B5dj|vwyQDCMBsVSzAO32xRt!HGPVCMxnD^g#=~4L zYu{-{n;yE6ZR*$7e3Q$Ce0>!@X0l%;P_`)i0hY6n?n9@s;(IN)enedhQvFmMTHd!n z^(%srN6$hT$@AKhuh!BYG9R#N<7jLmH7ocjosHXCCJCdlFUkFy-C}<60weE@fYn>z zb-#e;9q+qRseKl@Y{hV($A$SJU(H8au!8@A8Gi0ZHjRMauHvw$YhqfB)Wg2CTHfm@ z1Hm1$LHdj+*my1(`niWDxZU1&1?7K1?pG?hN*O?YW5@|SKgu+UMSazf%KobHGwr*w zv#K0E<~(^>ytRv+G)u|lXD}q!Q^{c#JX))B_7{T)k z-gk?F#;rR>{zrz;+a2$_7Yl3`v8Fkp%Vs%Cjb3dpp>EuZ7RdNg@phEV$ZPqHlX2K; z)5LQ+kkRyvo|Xr}^GuD~E2ExwJpCtfztV^1>u%g!*2{yTUC}?t)te8JMq<0Qh{122 zGR*Wn5xKLmCD#KUmK`HcHIAwuY20h{MEN_cLdzKDEfA(z@4J@@m%KI@nbNY(T7R2Y zUya@*KW&6mRxpI7efUNq9~ooajD7+CP%LSCAZW`9w4R%Rr-vjgYRUR;a?TpuS0vFM zv-KVN4~hJ@{?wX@6Fn(O@?xAk6K8E;=$y@elzlguJpVkd82P(L_J!h}pkMR+IRPr^ zC~+hGE!#yIY-R?Xwt{q|$;GW;@}sv)Y4cAmG(bYCf`1~7vHQ4REj+}D=>j01$qS;U z$qibe78Fc@Zi)Mq{vlf+n5e=62mNhFf}~6%33Ey#ok)ddC181v`u6GLS+S7^@Yh@4 z?bPI}4`{nqtOBW=$Fua{Fo^}@h0Qh-70H^3O4Lw~$aB#mS%biX zOC;8$Xp>uOv`c`mLe|9l(syc{alg(i(R^Wl%ivcDRItq~^d-wjrJ4qg4I@7(Inl3) zZT^dnAfMj_SSi`=rLI<9mUvFIZ=h1o6K2KFGB$?SqG015f_~Drq=`fsHpH|XLHk)^ zMD{E`EojYb-`Z)3k-r}frE%**;NTP*=hLiC*3 zcMkzyQW0->k4Z$|SoFHkcZobIY14$<9P*Atu%;5b4C#Z3HcNlwR}HA_YSDfdQ{Sn| zwx5gKX0H|az)H;&!DWDu&{rFY8`%uBBKeM!%vtf%0eB9H{I_1x< zK?yKP>G?J04WG9OBt(;^;5ZOWTuWPI4K4OJ(Kt)hc_vzr=LufecQeRD!6-7hzu5t7 zNH7Jo0)jfxbL%_g67@LuWdUCTaiY4rk_j^TO_if zhw;k72_3c@wX~+;wN(P$*COU4(?4ViGUEkIjt6?fiA3UfjXYyiN%ay)D!%Vtm0$?0 zh&6Sk@&<;pVYVu>F_a}Ri9|SkmPkkT3df5h&#;xmUy}ZIAV?*BCi=GWvdX@UsV)kJ zS?jw!*G-g{!QKL#*1^Xjit>VWD-C`1B4eiP23C)}pfhnv^hJhtAB1(LuO0$a(72T3 zOCW_N?}8+Z|7pR~?*hE+B1)L^9QUif9`@-XhqXtWowmaHeC2>7c2vriZ+b0nfV+a# zrzEar0sKKC`a!Ly8rAcgsB_UBV5-yLnn2%a1UTvl=(}u1AUv$$t;N;slqGpqOD=C; z_5f||etoEYStOwLALCbXztZzrfs}N4i9d|}81L6tL|+S-%8sXR@~yE7R+;BS8~%k@m`w0LEaTb5|oc&FXu~JZCIViK&4#Zg!sc2$u z45r~xU$*HiwD;XcliumGaYbNK>2La>|6GJ%c}c3#f4AMQv{Nv$6f#yQUkWu@lBt8X zA{_0TGkSwxjLQh55_v)Jp9RwA)|>);39TTo+zeYUfuJ7PnlqKzP&iF?zvf}8*W4~* zw8?EfGCd^i+R3o;e%%!^Hp~6GZ(!fh;fb^mf0Tj5&Tr6nYANy;1g*lQ_8}O&x_?0TT4nWke0bI!6NHVf9Wt5pmbty++;65F`HU#t7|rz+uL{X~PGs+T=D1)Yt@ zHamjn108?MFW{8H@mB6vS~;3iaKdx&W^E2E?@2hXnMkY#rt~loeKkh(5?qNVXGoY( z=GixlYbFw7O|#2DXq=XL1~1h2LDP{}M%RHMegFw{ALLU-<32P!Z~X{lDG}VW^q9!Ifz!5o+V>LLe``u zlCbY)2p*%b(OHcPwc)J|B(S{4KpX43=fWjMi;YA7b%o;@!KnrLXqGxbBfndv!W$Wv zX(k#OUy;Xj{wDU_XM~FcLqe>Rd&vE|8VnYJ9@dIA^OQAS74UH_^ffwTRf5M8y6i3X zT|vv#8+o*ZGv8`x0?D1c_OxbH&NJ~#Bm+(*H9Eq^Kcw$owfmKhC&2zTHk#{5yRnz&mWPv5hWSR59_;8W0ocGlyK6?kS5<)I`2yyB#|F*G4fS5 zV*Ut;M1b`1Qaxra5%-A6i{cV(5#!`QefME$&y->MZe_t;3Jk-^)V>HPjM6si8BWN- z?uhL4{~l>Yf+6J!fBpFo9ing^Xu-1(T>%_uq;U`P)uipHA0_r(c@d%C5&2N@o}Ft= zvuK(y041EHm&^z19^8RvWwhxbP7GzBmH@v5rqXa^v|{LsKx;+~LjOwY8?M!pA{RGn zLDS7KgkOce(P^W7C-jgZ!?OTWE2CBRH(rVa`YN;Uo=Q}30rfo5FB*T0k{<1XkBAaR zz1b$RkORUc{`^=YNf;yqn)>~kf33I!>hLf?HX;#k18KN_n zQF$w{8j`Fv4X=qY>ns~^%G^j88SO&u*AXGAoaJlc`WyJ&9yx33yQP6?c)_z#HY3bh z4rCUQ{P}IBnB1aKZlmOFOT-|9XlE&Fho7n~QmvU3iyJ#`I0XVf zS`x8u0x+$TzJ^xtvu-r;fLMtBHqYAlFUkG7F}=bq`U#gnKbiOYWqAK*-cR-oA4jwv zcS)y7)f)3tmIGXj1J66&cl!lOi-KK^rhp?;MZSu{ybk!XftVFmt?vKOw* zvE8q<9KfVDODD;ihQI)+FUEN}I&PT3v?@EPJ4l}@MlQ8P!e#5bEs{M*ct7b&1z!hU zA}ugCDg_1kWV{|M0#mE3AjlL%MXCArNOI8iaK>C7g{rPVn0? z5=LF0C1s^O24ApfLnGz9P1#wE^;r6D-_Tf*8azM5&_iDqFL@~^o`8f+R7lE-!Ct_Z ztnWnSDqW!O(0Ea#chtsf8dh3t4n%LG`sAP<_`|TG&47XE<)v8Fne^SpqD^8^lGhpf zt_TeNBi0}tL4S+=aI$D!XrMZBpz}v@d5UP$z%#fgbkKfYm7i#T6Hhge(D&T|8^e;9A<;p@BJw|cDGYM0wuQl=aambOx>m57pqMhr-6WYQ zYRSG6q#^a;Sxu6MJcl8F2JhKp{F#vP=lMtsE$T&^#`p~aO#{QMq4~%If&|(HW(&N4 zcQQR@%DXCk@^aRxnkV+%tTx(4{wn7Xhm$oG1>+y8M!^o$`+zcGJ%Gl2L^1Ntf_A^$ zue9j0dv6-3!EZL2G--zL!<>Z-G-m^rg@nQgL$ZXa8zE?N5g3;PeK!(;qBzLT=N z4qwk4s)v}LR%0&saUxg&+BXCpVSES6I*$Ze&;{eOD4U(k*Ng2CK=Z`ND*nU3HjCbj zTEZFp(%yhP@L*`?`3C%th|izLfHa(}!)hcNUs4ct60(j@b^u9)CIgH=vXOpY^e1*P zHWg59(xs>HXK-2Gw#I@cP>JBN2G3toPR1<_t9Rd*zAG7s@@LYS%M8J#jJ{h7&q;Y_ z1`MnHD$f;u8&1aZQ=EamM8|>}{4wzBk@e~hWxVSJITFj0I){eHBefz?d%pNJ|D#}mA;#)f%$^6!qXXOT(J$0oTB}W z2iArOZE|Z5m83Vs@S7@-kSw+$yiJTtX`oUN>g9XxFcx{H?e<&tytYI8f1%;etr-kI z3rpaFP*gRO66AMJC59%ATUZt4ClROw1zGZ`KowvsA?&!u~cxjV=StWb~5l z!W*9Bhau(If;W{o1}|h2c~{ypHK84ekvAG@Bi8ID94)3FiS~%WsAB|-ELt18B$OHF z8AzA}F*pHhVl_~2DV8v935=z2S*z1D)zmJ*(2|G1c31S`4(+c$-1`Y>tzHx4ti?)_ zNR@Skvc>m}`s$%PS)!HSuM+a={bWg16U@kZl%$g4NT?r1*?5P2CvrCZZ6(7&jL`Sp zXPTI^1LSB%`pL4fVc#9QWZz-FD6%S?a)JWglId^e&MZq|-3Y^L6>{OOzOqD0C6f5H z7s5I5dp42wzJjXc*=Fe58O~|`@2m0v#s&AP%^ z@jB3y4T+~ftLVFdFi6Ov{oEBynItOXX2g6kqtdoS%DX6}SwLu$tdr z1fz|TP*svNhv9VkDS%+KwV>zG`VNfKiWQPkidrJk01TK)!R|U2(Df{jfI`gUUOyTmPQWLzGL|IZ-L4TXNkOXMlnoy+gRDhH<8LxJM zXp?GW^eb!TX;?Yjh-RB;g~51b4IWz6d+`Hlz=2u}<~-O-qBm3hXM%Q5Uzhg(LU?$5 zG&#J4aRrG~yhXF4eYcb;pmdNk0!_IaV4|H>TF8sWQl`NE7Sx(qjuGt#sN~QalO$Zu zzfEDHf_E^5-bbZ?b`E46yG8o~(D=b%u%ML9dTl=BC3D6GzhHidvY59^BogUw9#|}$ zfQrrW{bj$u@IKyH&_heb6io&gTaf5LtP$!CyK(q;R$6Z5@!TMb1V{~ zO~rWLN8^jw?L-07C@xz9&qAyeKnrr3GZ>U?<_QAg3@c$sFh!y*P{KHY0}ftHwrG(q z!vzzS1*LcozM5wuA@B@z4*P60jeCvrG(2(JJxX{y7^{6IH_*^vFOl(#_UEQd9z^=C z!0=j@fNeM4O^LB@KoKU{A{;9cLV47+&Rwl?tUwNde9KVML%U$A1Z`vb8~W^MPUuAJHiL;pl=V?2TJXZV zNVKk3(s#mZaCI^` zOC)~bB9ZS%`BG0|XmZ)a7DK@_!d0NJlsxr9%y6|P(45T_rhpY`8d9#k0RZ_x2EWrP z>jm055@mSXcSpqFXKLJGL9^m%KOHE{{57rSsRs*BYTQf3`#MjL&aKQ(2_NipEF88oE)9YWC;{+jpvE={m+~XWt?-k+|HCZfqzKU zbRY~~aZ&WQ%q9m(m`{c01NPm4NL2Gg@J0F?&j%!05KqSG5RYvzUNo5Vf-!gm%E~zs z%`(P}R-&4v1aN_&Wi1aDu^q^2umAOr3f;i(FBZLjZ88u?@s+5nr71RbM;Lo3|3M(F zWeMb;$Sx8cN&WrhN4pj)1EUr6H(s!$gHII-{Y@?5Kwip}`FAe__w`mE$q9Usf`lrP zv`vRrBx-_b28njCRAlVP@+@th=&MmuF8_aHBZCaUhv99EA}^$GYcFx%E0Kwnv=PzTm&A2@q;bp4o(Peay3q* z(pF{COBD1s7??&OwN8+n;0ks|ta5nydVeY3Uuz3g86U*1#``RkBf0xUq&cPj=8{d? zr=fo}@bjG4_gOEsthDCfOi1SP&lxe@eVww|LpMeqpe}hm**!rXpxDc{QE}Cz`=afN7M`D$5)wN4x}i zXLhKJR=^*+i%jM;Pmgvfm8N0kL7vOlDEV0}k!UI2u(FaBEQ)>iKw#O5vy_lehc_0L z33(L5+nye>w=LX)(%u4rR*hid6J1;KW$Nou!o0w$kO!Kr9nzE!K6a$C*&S`-!fr-H0(OtqHpudOLOS|HVkrN^dpl4q6S4h0Eg6{Tm7G6>F_lyH*XRKj3T zDcRo&z_`ISvIO!{*nWT)OPWr>hF79n=&@cwQQim>)`8Geqv~k*d6dZso%!5lW1=!= zFqb7j85d}G;n5!2Ws^}eIOC5k2BlbGOxyG{Jj#i z5>8WQavzP4@cku$nm+ZN7=3@WB6)hK!J+ZlP@)2N0;T8&CyfiHJAUVzTYTP_~K$D&N({F?f}*ouXULZcSh zw0nk&0w~{`|GY<@ESSD42$?p=N8l}7jwVF-TQcJE5}dNJp)K+w$V5BnGs?EHZt+tM zhUV4ds{yw}l6K$C6UTy#&-wke59EEp7$S#8mF0nxuu7Qeax_!Om*>SWa<*vb5S*h; zcgOpm$rqcWT80dCq0!Sp=E5hXMt%n;a+;-|CFhJ1p~=wkrJe3!KXPD>VEhdEhUO6} zFm4Hq{HD#Z3S8BmcY)`vpnam--XY{2%-e!)lYy~aNN|Qp<(_b6^n1h{mqas=p^sgj zBqf3u@HWkpUL2#pX@W^A^F&$`R*hK5(`2pOy4r^V{kmdOD1HRYmmJPePN-#TS}B@J z069~GewUHyE%vt}?NMU#Dso#JQ=?zg&|t3;26>M`;KB2;^xd98))QECZwpkL^l=Z1 zqQ7M#&(m-qwdYx`%IDCZJzd%bJTR%PVBx|u#ZxKHV0o)(++-NXcG{gcqu#NlN~AM) zX!jXt&F`;eEBFeE5g$<=QBPbMm%!6O8{ND^V6iP0-z5hBj$-74D)}GiHK|~;WVmZ8 zdc}5asRGZF_T58I)e^ywnx=~bG5DADh>6tvPXSa!{*6GC_7E4ynal~Dh?nGhX7lD0 zs1mXI@KTE^T#$?tYhFk;R+#EUS;~)ts`^TgOftagjP2~gAiDh#h> z2}~+b;FV|H2A+H09T%Wg4Ux@XQYrjvB(S`;XbJYU?*>mpH@I{{SBeYxIB4){SFA=! z#=YVg`N!q157Hh;viurd4Srwy?y<)LCN%B^?{B$)YL;h7r>UnNRZo^hE(!v_mV&-p z@QS=gJ=4g>l5R6+(>#Y~pvQ)hw}qZ6V^3c*FT`d6{|Ly?Vq@H@JQz1MsK*;c#`Z8OpzEgn;!Skz*%|Utw zhxJu!AB)2BDNw} zd!xeOD}z3VO>g*~rAf(55-en3CnursfeF@cgo;yq_Puy0rr#s+IGd?-fot zfR&d(FIa!W3^taR^fjKupr%*({k3X2kas5k!2%;ctY0ZMhBf#j@4FWZ&`S4=i^nx} zcU=8|efM0-_v`a&$9YMz#ubD3mdGRR>39eA8`p%5p+UpG&J5d4S6(chcmow0niXkq z^e@?lrmT*G;h`>a0r$w9@xX?Ll7RnHDv#TPYS841MY-=r=ZBi;WPI_faa#lbs`cI6 zb+2vg&=W=fz}kUmM~iBa(XR}fU0`)63vhBG!2yjT52$V7cR;3~DfCgFZ%Rok@`~e# zNhwFSi+z6$YzCo~fCB4%hAP?j4QTYJmI~rPOn%T6`&*F~lV5An#DZAJPuO=W8B5*j z{%n~VK;J1_Jc$JRI`YOR=2BUzD~JNiqovJkvACNnjc3DFv!BR`vne1Ex@7%D-E8No|N z3o`J6Bnu|WuY$}~`TcbytfMlJqVI%(9s%tuBL!3Rx&#jGL&#mg#?2GK&qWX3$8?ea z(-cOlGO)k#QY4U`BP#eAsvJ%NQ-;q$(BCpShnxv&CHK7MA|u)ilwe669!Tcc=F3U8 zr$fRfq4-` zoosZXp_ap6Uw2n+#LFi8$jR74`TqJ-_WjkM=fk?3B=YwwxicR&o>$2ZyszavYc!+C5#1uip}&LE|9G`~<>9;RQkex`Zm6HpWeGJ4#!@>%Jms zA%{RRnm8|i=!x@kRE zcN(PcUNvmq@Z_1&%tfuKHsb6ceOK%<(Aae+CO1>LhomCA6`&pU4@73SY{q@wPbFao z^Zc$A`TiP+Kr@w_p_Q|Hc4swKVE1)C7g$cxcTZLKtHwtAXAJ4xX)asIFX*~s{PX&* zFW0XK(D6XBzhe3FYy?iUD369MHUdh1Sm9tUgODAJi}=*v9_r<{nf~+)I8kx3{}a)b zw)IgGnmDf}eQZdZESDk zK+_JzXE3zu=|8TFKBZDnwGkg^(91%nJCiA>5mZ|N8Wnxty;(Hi-%+Ha;;~Lw*cM3^ z``eMrvTN!2U5mvM7W&ZNSQlFBLCFB?Z?cwnHl$phwxCZB-t-2ICM zS}nmezL0PqVj3bf6^WLKc{g`9woV%4iBCR z>!cD47AZjEwl;R69TePS^MfAISA+4PxFz)y-(q!${6f)sFz&Eg4CuRA`B1@Jc+l5P z?)|CgyWgph;I)y}lAaUu_tn|8TpSEaKP5b}{??Swf<4$d&fi}bPJ{NhJxjFf`my}) z7YLNU2HHBsb}*m z8b?VuQ{#5~uUX%{WXQ+TcWZOu^fQsIZr+qLF^$&z*`mKaRsHC#G$4(FrrkDuG5q{> z3G}P_{q>V6gSm{>-*)tJEYnEs?@FS&NaUq_j4#EX^#`2PQd7Rs{YmNTk3B=6Qfzpi z{%Mh)@AIZP75J9>zDs+~iS~4q%|K}UTH;!Q9hh)36Q}mnrBM$g?@6TorXEOs7($DL zPw2`@@o-B1KW;UxBvgec%;%b;mF4HE{QbJu3Tli@>Y=}_CDBS!waaJ}`ZBBj{WTEX zVE(>dW$s#%MZf1VhFYg)1NGfFr6q*Xq8gaS7eiO1pz*&gc{!esMsIRhyg&!+yOrc4 zA!Pe}sU#?p8WpDd82)unX9vSomrheih5cH5Yur-G55;wf+6-u~Iu3nz$&SnaWoUfnF(Q?cvjl za?-K4{4K$U138rf8o8;BG|k$`i0O}ivsAilG5eRD?f8KIO_M;=zTXC`oXVIO**@&?X+?* zaAm)#I- z2L8SR9TmHJv6%dE$uD@{y;8(c*FDulyTxTI@}e`ZMh8D=T*}q-oyvWGBl4&}w(qa} z>(;Ute%P2K;Y?}rt?5zO>V5aVm7ic-G;mpSqE||=A4Mt{TJ8xw`eM}I(oa2(^Ba~7 z3!u;-ry%p3 zPrsc!4CyUlNR>EnVh` zhF8#mslR2b!2Ty7kM>8pfOLgm{Gx?6!y#~H^Zm8qFi&4Q!5=`Gm-`(8CW<0!Zx$v( z5uRf&owWas1=&cL8dk&HTHEcqitI3pJT$vIdy6T3X5)^JIh{#@(lI_dk;_ zrzrx>U?uW;&-{QS49y&b`%IKk7!v`-z}lD4$e3k zevzd5Ae(uD;5ucT!WtTj{x(l!!wZ`ScqRG*FwquWfKyd8(H6RNsoKwL9_Rk((zH+& zQPc{#Q@_7#LM{?j5M=K1`j09XC|n@XpCxW>pBD}$ic$Rt*sNt2NQ3ZFqNZsI<3JcX zyw6f4r99`4R+^g2$=Hwx7bG&y@2Ifvpucg^vVf^7FkIxmG-{p+?MB(qu0XyR39Fe% zc$Ta+zrVbQuSgj(PTyaZ5Gu&DoM^$mdjw4Wxz$q`w?qS;RY}3eScUG>7WHqE6Ad)UvNCyLYBE0PlGaFXAK^y+_jupcr!?@vq9p|Jx$=8fj0Y3jny zeQpx@Pa$|yiCmztRPD0DMhz=rYIVhH)SAJNN*dVTL{M@su)pztNK)S|B}z*4H^W5) z>2CtbAVV$^U>aq#%KkPRiuM6W!EYmxh(w&_Mz@K)q^8bL10<(FyFhF*qwy6bG0w@x z3xEoYE22;Cn=YxWVAeHwr`0n z&a&xOEJ&o%--Lfih9>ZlFnI7=Pq>Ft_`W-~Qu9lkBGDc=qei=g+3muzMDQCEgi1;@ z?iqXy*UU=}lBguXgV1B}3t=EZj;jQiXjKOGH(tsV=qn{DqJo!5w5|{29?3{Fk~B++ zD9M}bJ3-2+yZ=gQe1B;+85XUgdJYH5V4@1mAwfrJc%R$+{yLoG-C3ob)-EgXRiN`Z zd!0_w!yKO=-sl0vhSIWfi*hP9It56s0{!np_73(e(T;DSVQ6wYOIRTd^YZo25}T3R zVZ6^-j&YGN{mmw^DflQ2KOepw4>lwAoghbKN|`d?ZxSFsqbM3oT<{)$zgu(vGx=go zjY)-q@nTi*##N$lcPQ--O*Fg|^nyRYM-Z({BLD}ejW9=T+5+@TK`WR7Bhykm@IZ`3 z@jT~;aRsIxB#AVMg!Bu6XJdJ?L>TwWXz!ktOe4sTJrS#EcwT)V8$W0(Qc11?oZu{3 zqkok+n+Ix|&q60WjQno+9K8AfLq&E0(I(a4f!D^y6~SgDDGEO&{|HxM6IiL4Na!Vl zrZv8Z!ebKoi=w|RVR*M)=FIa%8fZSZc0^2SK|6g{fX3~ZU)kR@F*bwnzC;Q0Ik`1t zDz#Gcy!sGGfaDZ-ox`OJ{WMBx+`1!=Gu1g6H1Xa!w)^E3K?^hA8;-`$E10Syp#n7S zv0>zc;(^VP=FpAcZxYxPphM&5{Uk%$M6x9LJBJ5wl3vsBypo;mc_V+kjs#lRB@7qY zg|6pfX~(OV83swCIP5zuG(l0{7xH}rI&cnVS<-rPO$;UuR^$_TC7jko8jaVMmMBY0 z!xdBC1=%I}{*thUl%U5Nt18j&vPxHBom?Reghc~2t=#G2_dkcVsFzj#++<5qvzVM( z>Tl14Gz}#ctAIF2f8)VAl^Xq@5lys99wjzU=&M1-Rxng-%?N|_w`nXsq8aRfn*B`< zbTZM-YjxTAct?>QjgmZ%VsKA4BL75OwzTNbkAg`x7%Ebjex3I%`j=)^w!vYeWD}K% z3j5oO0!D)B3~T%@F!GUAXbSBvOauPm2?3T_hnmh36m==yhP5#Usxl!Nxsg-=SX!O#w+z|0pG}LgNPu-ngy% zO3AMxN=_Q(-JOc;>1`c@QIi1Gsirv?@}V$3dw*k~jp(_dCpQN})Y+V|eMQhh@jypX zL%5?9?hz8zVrY}LLbVGx9!Lj-50eumoTe_&C$hi=V-MviG0i(}3Sa>ms#F?a zQVYf(%1A@Y4i^l4-nNU#cTDTHwB9m-L@;$`S>s;9@Ej8Mkm;Fd)RJiA5Tj>4^{_qi zvM?U4aW=WF11+dUQ()XE7i;|2O|Aci(;Fc$?0F0&-$75h#l zAM7|8Pgy_N`i?4o7D&)or!2Jp;9|9(BD`jn7HIC z(7PsL@o#?6wp z$vfz8kaImhK4&FioL~yjbUP^i6zcRg{4-+YpXd>>ebr?9U$!H^#{Q;) zR&ibe?VplowH&{><6}#9silZ443ZMb87i`bp|!k#prnj5&oj{@-anaj74%*95Bb?5 zF)~7wh|%~g&hQRwXoOX`4g}*z9mTHn1D{4RK z$48SdjU8_T4V9zh#T|1BB%@wZDOhR&AaLRAd~{gQ?XR{8o_mbYB>+#|Va$ z7OewTrv*5;1EG}Bcbetyyp|Y$bElDuKB*-OijRkhDGDVLWz-5ZoZ$+&<4NcuHF+S7f}ko5MIL_T7mtxX+l#L?o#xII0RGg|Ph-ggU5!J1(F zC}}ak6?!|!K&WY^Y49b3iA9usw*?ueV8ImMU%au(6wdSei=K!^Jt;aDW>r-1F&a&s zAeu8CiX@x9TS|Ts+(_RY8yKfT8U4*JVR*OwaYRgRqr3zV;-Zr%7#uYV8&dEb`73^r zRX~{&(?KR(MqT7q0yL8V?JkU4)@c0LxSKbSqyBqNlsL`udX&h9HzsQ&dxI|H5*!4- zXK17#8#psc*jX|eMz5M^!5saK55ahyBT<2I4+Q#dbc{TCJJav4&AbYraErd%rhF~+ zR59|8s(r=wsLlOHp;pfP_oU`(?N;vb4!e@0PNltDu`mV^4 z8u?Kpe!2Hm$V5L_TP#IB5YkKqsNHA_Fi^2Dv=Sdn--#vr0+5eHaW!tBSNZ;O?@RuD zVpgjt&&>~ojI^yRTqMb61PPZ>88Y%JSAN=IE|4##G8b04-@_pm2YW4YzXlRLV}BE= zHG_f_slW+8laC_KG$*vGnhdm*MzimhoM$4TuL-;w3qrX?a!RPB5c)V+&>m?c+T@Et zBX{2;O)7FmM49=oRrv+!!Vi?empdc1sI6)1i(2cTE*7XZ9$TsKWUR^= zNVdgo5iMRE`k_cH7N}8Pp%Nju@J3|MV_T#KXe&7Cfk1P?l_cxrAd{m4w73SBME-_R z9&=h;2%BtYAhZX9=qnWx1Q()6D*Z&|;a*Q+XaPRP-jF1aJ<@R$xej5RnjaWWA`U-) zO1U@I9tuel`rEujyJS*GrpRGtVB%Cfw~xSOL9sD4dNF@?Np6`G3=V5NNf9|*52QUM zUP$>tY*lZ8x28WSw{?PQS6kKca%=dY3<%CoMKOJxsOt~Ayikyu{#1ha;ym`+aQAW? zGeYAZtDcNnD?J(S;Lreyk7uNOyVCO{uF5#C>f-`vUe2c~dPOhY&tw%9sOXuTHtx*0 zdbD&w`+CBfV~awlF)c+819)FAaY6lWXVqG96{IGkF=(zu;AH1;f$f z8`mR{k!Hn?BCC~yZl4yhTq{(_Dpa8Lbby>xdTh{hD+k{cFG$M%W}ivly^e6!D<~h9 zy{pqZQ7CWbN+A&_*aw32M4w5@>tku*gcf}&+TV6G#9i7CWR>8SOqT`EkScw{yRBTP z2fc(A8LvZ09IEg)(OCA;F6H!<#p8-h$*Ti3sFu%x^_C4X_J#O#RV9>9j)*76|&R!*QwfyY&i2K z7&j1GHQljQuToSwJFu);Cue9+S8^E!rT(^*V5%kC9o$Do|Ja75xo$IptygyQ%3Rpa&-S=X&WQq&2IiV}&D?=5wrQ$$-rf5rX9mfCu%BQNF{GX$b zqfma8XYq6fI+9Bu&eq=?oReC(Dj6siL-f_8eRt$|#&)O^kESEB#P^r{sF*lZ3$y|< zJ`Qhj^I{;YVS`aDxl^LG`KTo6%&qUxXC?_`fyd!05|eR2JjrLwQz_rao%_%ERa5m@hV;aFN6$umYPJ z)ldn8Gr}}d(cc1P124&Kv>%fJMw!hAx`L3IKd}-*0UhHkiMAj~H{xXn9B5A6Lq$$n zbzq_`=9DP)RZB%M7oH;ypgB+ImOw*;HEWr}LEkN;8Ux4BDI4(CmHpn}bA%k1zJtO; zkVG|03G8ph8slE1SC)#GJjh`8P$@KV2Un;wBU8%kZ%mmiVMvh#djV~Re4X$_(kkwc zS+HVGvH`y!NwVPuN+k)F|HtgR=fVs2H$O1pW7B&~iznjHE>OP!!-0yviC}zYpjk#RZY_n+ zlg#HH+5&&T0^MHZcdgN`G}=T9LbV6F{(my=0+U}E8yj45XQ8Tk!i!06ByES<1h! zKOQB~oD}#FY_0`pycn>e?}VWSZ%DN{i6mzV`4RF85bHbPWt;MPy|N!uI>O9o4T7Yxzli>Y&hrhh$= z<_uewM6U`}4j?k*QP`@IwVO)&O z3G{9nUUHtWC^!?nRU9Q}gjN&#PG!}^;4#XW1SVRQLRskxLCr?ttAR;{_MpiN=#60s zqp1Zp7+znMF??c{kQfIjOW4`fnVaz`Wjms=i$waR^8qWHZU&Ξ z03?5USnFf&J+dK?4?;)?L>}`IxjG>V(jCvy{5&1VL#LfIDa_}hv6&4VB8HP1(R-y zpz27#6Y|gkqQZdS7qu#RYVxMXV6s0KGE)(MSs0G0+j(KV7qp)a$2=TvXXCJN1S3C4 z4P|v0$Y`W5{jrbS45kByrMs_x;2!uud20PR4-VNh(M^4zPz$GH-VOQy-V`ZP$9O_F z^e6Qfxd&ED9-PT01%a5GO33Dus$CKnOA*-IU(_A!$Zu6pG!R7N;K^y!N_qufB>s`X zQ?g0G$1pFX)Rtm%+^@L<&W#2tDX6lWh#!Eah*F982lz$W&8#k8gjK9>hzBlBvWU}G z1i_UucUU61k9i0rtKl}3!no&&EEI0Z%!frJjV1=Q0$Ykc+8+Dd&Yf9HL6C}1W-LyX z1jIsrY;T!WrHfAl;aTCVhKDI?Z(m}0GOQ0|7mLW12lN-{B8%mef!r))sW~tdb1=(P)J~;0?mCi+rzGGH@UMI2m{Hz{ z{%RFN?Of!4=o31v2Qm-JUU_=(2r?D0_Od9s|#n;v4{!#}k?dJ!Uw{!Yg5Wl~> z5uqI;m*D3%Qjle!-`?0?XQi*2Xk{x)PnlD(sMA+kIFs;}L6%ipAJV*?Pi?RBP%?*C zAs}XIp}(x8nL#!~-)PjAA&2JMl~(E=r*|szQ}HmMOD^U~mK*Lw~h=7&SuryFWtEPAIjPq!{i2 z{A4ZLn!q6j@Q+?pA`d%j%B=-wb@novTB~-)TcP?26$L_FV299^c-yiJ+AY@l>w6_X zirOD&ze6Z(L7h2^x-lZ;YV@OXIROQ_kLQ-D9@wLkKNtP=Q51s>)KpfGi+(fmX6%t? z5uuqyXOi;ay|RUXK_1y(ttpx7iDcbbZfDjE&q;385rWy&VQB18>$7ofki3ji9{;E# zQIcg~n09}CbHJ5N5yF$e&20fbSIYnS>d?tsMGl;%WZpdqkb9OZfZ>RomO(j;-CxF% zAriJhZNF}NT`igmxqO}IFH+0SkAPp1f?TEkTA7UquEehyd0FeW=QLP)b5@FElhq%>aQA|6y46D6fT1LOR1^2`KgdMqgIyf=&x2&lGIKySe#Z> z9w`x~2_Fy;a|~uK!g{3sQYr%7D~(m0NwmuOKIyU6;uBi?Pxj4&;efufV2FpIA|zEH zWDBL8R;Rd~i)b`2LNB5Po|`3pH!nYr?(GHelLH1Jq+(# zYf4P&6LGmhku%CN#yKJQ)&AX3w!1e3^8UWJGjCRShq=Gjk=&pNG?jv;^ri?&LnxT- zPIH;+Yy?^Nz})VpO2*7;d52USA(XhAkl)TP2h3lL;FT;ZnsB&^TOcH-@qw)Vi@A9K z!JGT*st=J7!ac31zpQ!ywiAkx+?HdB)7-Z+*Gm)j*A<=CxtHgp$wUyQ!bTsAgsMFvgF>&UicX zbfln0=T{y642jphBuQ;$grpWDaB-Qbzgk2GzSJH|F-jeUnbrLjJ%p00q8w(G+udj! zgZhh%T|2m+IAK#MQ4WiWtU){S^Qh+UMfuAG?ZVsn2s~ZL{=Z~ibALfG3;20VWN;CV z^Ed*JHJV~sL${{TUp2^u%F(~APQ`S5*Thfv7+~irv+@{8;|P`h^$!lzU$#2)%7jV& zJMJ%aoE{*lMMp|6y1!Q5JS|gz{$g<_gA;PU5zU1A2@l2=gpy2FKH?EIg3>-6tj{yq zaOR=x<%9oB5wG_q~yF6^2*C9^96Zt!`&`kK0*dwfsEL$ucsR{54bPukSQ2HXLqe`IAAsmM;U%lq7Op z_8O1Rs%SF;X!iIycV?}2N?2d3EwzoeGcV!@kG#j%_WGDc{A`wy zSN03$KTndMdBR}S_k{Yhc@F~rvY!Oyt&PpwN|mNe5qMtx#VlOAzmCRaby9UCl~YWk z^+?rPr#ga|pA$Xx7g_DJ%=f8hYqO>#e(o~Kb1P3V5b|3Y6_C2yS)M1}tJvn95q9Li zS5tay?*X!w%fO9o4x7=pGmkkp-Xo8-z6^tVDXim))9lf{Ad}9dAAG#KU<{W z?qOS(y@=vdzUmt~30 z{KuFn?~;I>!9*Vf!lhj8=;Pu0_3GG^WElSL#`V1OoPL1glk zS6BCnFz{e2A8=GfBMmY*mHt` zu9ZCovEo5#4QLW0(HObdj@n;bEj<@n5z5*?8LtJRKqzX9^JE*pudr$b?SU-clT9R3vjo!qn zW0>lsXHrWqp}n8ew#rWS6kDtQB32)?2-7%*BAm^$?Gd=db2nc};aO&n$z|<*Ch%ja z4{*w?WpfK@!~MnLU;h|QV}$=uEU2%XYqcav?FqZvnZU0luBJRHvvo}C&OyzXoW=bt zG9~0vQacCtF{=bk=2FGC^Ebjp@MEn6@#e-{Vz1vOEt2&QR$jL}Z~Oa`_fwWhZXW)2 zmXbL%zg@^HtLa|LNNbgOwNLXBYP-y1ONj^^mYM%t-LEv+ZJA!}vG?B!lzZk zOvojqc3M+^8H^3d)O&C%x}BdJc`A=i7SUgym6Z77sq=xdg*TmkK?e}k?VPquT&+BS z-lXqN%#U?yG02~oT8dysPr$jy@26S z{q@;V$D3wn^9jM1dRHETo&jxiX8N8Z3w&xZCh%iX4$C}Yke3N|vB&X$mbWv1f1)7I zlG-p}1ExBBt6Shyp$DbPK3lUh8JYkSW_E+m9KQ)H+?62=Mu5GaIPpl(r>1TLR$KUep z%xz9(tP)gE{(zgvjI0UG5&DG%-tlG9L-OqJ7y`-_JASZAXcPq_(X9&k_~ z5Bks*QtTES;A^xB2&;00T=EUcD^ps@{#ruyuYYXXZO4DqyUc?_^I#WcPx#e{#oYt;EASF|wh?)%2V}|2 z%Zb6iQknrFIg4UaDk6}rN%0;1Wl0L#PGA3EIP6F{z$u`4bW}3!w@i+5wKl*jfFC_s zju6&83i`{UR5E2|b(Yt<@7rJ1$1Q@ad&%3G*Eh8Zc=YhThFPZo5}9&Il|Ai2b1%pm zWE9{Ms=t_$W3mzo=$AFPd%)glbx2mg4nkw~iN|QwsuZ`gQ}3`*J4o#!#Dc=Q;~oxL zjgf*mng^s6^p^)^24Yj%gL}97>pM*p!#LZ8A5*{4eT?gwAE)-z44wLc%+C}CX9eoo z5kiq{xW8^h1g_mhKg1u37#_0c!s|e&aOAyjn!JLbHF;~`CDbmWy;q@o`OUZw(<@kK^ z-_HDY&Yihb3^7@XslUR#)Shs!5%f3hK|6LBJ|H9Olzq34EZToVI@z*^ql!8^?FhaS z_t#mZO0uT1>&{4Gj=&mD>5Y)2j!wyK3>JaJB7WBHuMyHct&EEPqLL+}o10jxzt$rA zJTe&}n|GD4h|NX{O$mv>_k629(OaZSWr)Db8pD)T`gyM+w}iZ1T~YS4kRl3C!mg`% zZ>0Wekwf!N=#9Yoq(NOR5Djmvriz`62AQu!p08wEX}dQ>Jcek5W-2~BQ8Gypl&B`^6qd4E?pP27{=xe$Xn?phJs6s`$)2$fJ|*+8!BNM_yEaT?WPQqQ$IZ3;PJX ztP(-iY}bm~<2h{+`m05Ft^Qh>n&`$1z!v&+AF-AgvMmQA_%|)Jjkhz8A$gfwq&>N3 zWgZwnR1|96&N8cHq#gNXRV&{tI$3Aal$k5rlQ1R;{wD(^*`9xrp})@R^bW^AM=q1B zJ2H*CZ1wu(ywg|SnQW*{yY?*h;uUWREzs^cQ${8p^n#bt=QsShR36IZ7 zZf?pOTYT*@$(AE9Zf(nUX;b-vEf18-mIoXkKz^k^6dC-MDan1m6UAW8gZB{nt6HYa zJa~A3wB=kcaDPGY_x@Ipd?z!{PT^q!sk7dS67{&Zv;Eckvh=Ire1pVPB2yLUyo#5^ z=|HZw)UuCA;HM%-IcNnj^;ZmI%}t^eA=OrW-B*d3U2%W;S&%GK&{^qzY67_@@{kcs zd^?lO%h+G%zMXlNj177X`XtfFL7=V=_zR{EfrpMsz{Mkp`_NJ1Umy(icOTtfzJi9s z4p~K>f<+#r$Ds!Is(^nVjEW=^9X_bPL||?5lr2)5L!+6wNN;V6T*@n8_e_*D6bQ*# z6jM=Xa*6(GAyWl%l{3n7lW9tlsoNdJlSKqSk4@8QzLHsMA4BC1WNtcH`BmZSD!DQC z_gGm=?Y-n#^_P1JjG2o~65D%#%yY^9TI+UhDO8(&F5)rdb*w7$Mr2IalA;K#H6ZR{ zqdpGI2P1OU_}o?6B8l2)_sn$^>3%JEU1%u?Nfprjz)j~gyAF5mw2AO)V z0AGaWtRkZ`rS?rr?fy~+J&<{j2b252q|q2bYAV)- zN|VPj2P$VdZ<}IR&)b=8lBHTO?SL&>WiUd!vxr>#!GLTM6)7XXrzv(yF;a_RC2Je) z6Oa@L$ytouWH&f7UM1-*JQSdp2lvojiHycT|Old7M_~%(!z`t^4D?yKz_9^uk8fsow3w6{Kv95mFuDXT-%)ns5y#J5vIR z9r-_Ny(4@*jHVbiPl@0Dm;!=;VLDeQ{M>ZUoriE4+vk;=57qE!Z0 zsZsHi*k3io2)_1`Y8{B;5b{>~LG5oZ6VUnS4XJcy$m|V6TzBT%PD&n6Wo1ZDu zB1Ti_uit9fE`fQxqpX1nI22{J$f^Ty<Wx3k3r@c4z)gz-z)Pc28&cl*J5z1KEqKiQ&Sf^dge6a2>f!wo{A~;}M5)XeWXisjL znd=z-1mc|lS+41$-HmAsSw`fN;jj#ld%hFMW2R+9;I-~ATDS8KWLdZKJ##4KK4{E+ z_6Phjmzlyc^dvU6`s|(;@uT0WHujf4nOPPU4%v@+U+nNSRt|?(S<0^D)<<+7YuSu7 z8c&o*%lZG7`uv#_?2*c$&qOloxCJ2uY)(<_%{!KDbkW7v!LcM-2LSTPH&IlQ4b# z_w-lvc+klksoijxoA9)j6dG&&Jy5_PPsjecI!A6|(CQfX=*n`6-YlSdzDQhOCh+w{ zNy-AlYGt<05v&9m!o0}Wp0CpBQMWVeFnoL|RYZ*bp39(C^N5@_;zUWRa1Nm6!5n2qTyZm+`-#d*}d;}kvPUD1!kDnxAf6Zi*5!>2EYF91FY$Q{7Tj{m> z%V2#UtM{C?oOw~FRVx}J1+^j`OgvQwVm9jI&*=hFXx^-}QupXD_dG4@{gCW{hf0bL zoxG0Fyb)uJG1Sp0Ka`a8 zWmugJV|Zl?!Q3r_qE$#HA!MumI(Oz-bDd395z3A6Gv z@OD0c4_3oD^VnaPll!0u!>wW*?j6C;jTZiP=0{O~EyF|z%EqYQ;MBF>AQ`=iyIK** zmCR&uMA1mfBSo>`IG7a92*EtzKH6GmBQJ>{CB%=B*(w5A7<28TZq_K$F+wNnW^@{R zYeG!Ctl;1?z#D|$vajpKMK~q9ooXuDi`YY`z$#h=|%^3aldExWT zw120`+0>eNHyX#7o21kejprj5$=s1=E9Dprp|QYlC|@Y@j`)at}!zmLykO8Clh#>Ik;_H}hWxcsQw?k)q42slXubIjIiF zYEnMXJ=k_J3=R#~%IZT@iL$>A>JU!moCY)OOv%LnjrIeFM|$u$#>{!JJa9Yv$~Z8$ zAej%E5`EMzaNLJ=C5oXbzhWO+|J33 z)nCMNZ#opkBlg$Qnb5Cfaivo&8g|m(x47Gxtv&TuEvIK!3!$|rBiA-&*>E|%!|mK; z0zVy+n@p>zMN@*TyG+$FkT)#xUU^ZWDK5&RNvtBI62<*R?S~h)vFcR%Ub9t%a#WsD zzkpfl#SY6pn8>6QC?=P^R#qNwXP<}taX7%<_D5(Z46Z1%MyC`8U!qo?j30sAyCw+t z#Cr}VA9=9HeS|R9pNa#+ex=%X$`5L1K*(kzg~=vw;;91l*E%|6XfenegJgbmy}In% zxunnLSj6DJU0lkXi=+t6c7cKd+=^WGSaxbKJS%!uxZ_n*QYDH3{90~=fXlv=OdXrZ zm|WKO@lctuEtV~lyVq&0ZfBk^KV^#hsTq=9KNjtj7;0tKpdI--S`6=*{n#@cup$U5PQ-5q52ES)B<6mBk1BEkW{i{ z2EP?kW*&SR@ex}+NpgzY*~gTx2xp^=(O*lgh}_5EPH{W)TP8P^K2dJ79PU%t9ZK#FnU=$TQQ0xxB1I0S{xZ0~KA1T~wG2FhJ}mg9yq(vYp`re2aUb>W_Wg;Hl!fB# z-ZgTmq&_T(&2w*&+^Q9XP9iUI!uD7MR7YrFPrRO#7wgI4*L?3c5`)we_~-MJslUEA zGNqFH$nAeOZ)bjU8Z#eC9T?NQN&X0-bW7=8QmTvmyP0_$a#$2S8k4i==g5*j)Q5m>6 z;aF1Jm~LlzROaVxOabM+nwz9l<`UJs41`@JS9CjzRX6iVwVN{2Xh?3%R}TI4?UWL% zc1wb+`+XwUo-&)ZnB`5E3#1^UH?^iyImu6DoB6pX3`=IN+)-l|5DQZRHXCne{*@5b z>1QOaCRz7DQb1FL=Fh2iM)2#7+*o8^97cnGR->_6aM4HBYN(z3G=r(7WZojlDevcX1rVgc! zj+{B#oB~-$2CgDIW%HbYoW>qPa}V&E!F|k4ndjMU5m%P_%W^UEit}*TA-n7!6;Il> zgZsciP2@@g_YY8i8Er@NyDg8??aU>gyMr*e-6^w|Tt!d-Ke|z(SEUIRnJ40%5oF!f zUT#7JvG5bN%3uUBPpNO`FkQ$tiIHZ`4(L%hq~uTpoJ$>$tyq5*e1&!g9uAc6gGQ(1 zDP2)6Go^NjuWyHj$&y_>2Fw1k5+vJsJ2QlPxO;sgzRpXj+d0_X-8j8l)J{6dWH^;x zRqiiCA#|oB=A){^P~2ZEl*xEIi-kleOL?@+omuPnASqCJfUsqPX12t0qs+@bjhFkd z3~JYM5j+cT3SdFXV6>kWjg>8zL}T*70Qj@zY zyAO_GFf|)Y6P~`<42Ro!Abw&0b)Xg@Ig9=x8pM@kTLa_)XiaQNSY}zuVE->AvQ~}$ z`bF>1n|LCmfroq=q&v*vwBjSX@rLv)VDpKWBH-GmA<$}>e^ zEIA&rg|H+gnTG(6HQ)bs=81M5irQi+&gR?MOeR}pDB{{>XT~Bw^El@Ix=51R5z-LY zEXWg{5d16#?mdXv&Jy`0?Xg!~>x?|G^LFJND_deMD9c&QcKO0^fC27>D~obCbsM``Dv4DUyDQ%8QVJfm1M>x$gY9QV{;(Z&Wnwn4M3D6)2b zfChdY7!(HxPwkZtvt zYSpOB{bg!&AMcCCBeeq$7-TRhKsRmLLu(S1oyQVc>vo>*fJWI?9@v7BEAwG$<2zvoSPgnW)^mBnL)WQ-2*SnFnQeXMX|Z z?W`hY1g>2v&jeD>dXH753IA}QNAH^KM{=sl?5c;de zfTqSl0lWC`(#~y1Z6F4q-|9_VFrCZFW79UTd`PA8-k&J^S2Om6TpH+2BIlf$%o2oz zn(k(^X|S4+A+0?LrNu&IKv~LoO4L;c1H93{#Br$^n1oWR`*jmc+Tx2_Ow{iR7y;An zuG@uMAq=hdm-^ml%)o0W7rzpH_%*282^I!hQw+DuJTUmZ{k3Hi=_7o~DbI+D zff_5sfE*z8mOOJ9@#EXcuGDN{i#%nolwWq}nhKD}l}#WFEt*dm%2X|6rJ*SY3wHW3yu@S44{IrV6j@u^Axju#?}J~oY|$@C zX$o0e&nuJDo@7(b(3E{PU@}MJJCK>3!1{>LO5BGja&Z@s7At8JiG@r@8l3(%PNkl` z9-oC%%Vdm?;#Ts+_PIsqex>rByW?w8+_!N9O0R^?zm;UJ?q?vxW?f7s7r&60Dh?Qnr=bQ_1ZvaCfDoJ2&1<2%eaQ@()Hkohdnzv3mGU|&_zlAE zOhx`WdndyEx*Tg-nLad8_ZP7p`{&zxDQ`QA+-3kuNRVt0$M(o7N2?6QT_{qpWJ0zm zKp|l9R$f`?KxtEF;}_$wq*8UkuvF_E$*;twliNwZafZ}l*LFv#{|UiUi>0oW!w9My z7;JJ3J0DgVU%49rz%NK4{iW@l_t z!Z4+~n94hFi=_m_Z0BfR$>gJ^Lk2eMbCDrrA4rCsz*fBHlfUpS@IWAQDO1@SrVaXE ziQP*ZaFOg1Q+A&JK+{{9W(<`X$i*fDb)?BEV3Ox?zwQT)m}5QfEISW1x1Gn5yq_kgSx2rm@dA_Ky(@(lC|hCu2? z>6x)c`&;s7Uw(#ep#jb&dZW<7C4Vh!CSA>IdTE8Q;|xLBTx8`A-Za3R9xLsEJ|M5B zXa<}zd#I_K6tIk#7mh=7G$!iSzF)US3o-g^2ocyqfIKw5P!iy6z0212dEIG!7E%=r zBnzdAcSAu4Q>X{Yp4srW*Z+`sXHHiB1jtfqmO`aF))Iqql^W^- zhPTT0e-*x6PH}R*w7fPNz!_a?>JxSAFvLHh@~*S92eG(cO`4u6(}JE-rG}bz?V`Dz zv}ouc?fL-hUJ`g^(S<)DMKC*(nXpIxsOf{$L4cS)kqp+o@rWUgp{XBNd>$WkuBa8q zEsYzG+nEfNb=P>RSs(9qMc*(!pnISPPSwZTg{$KSYOdrB)HT2vWNQCHyZ-n0LfOVz zBs%3iZ%}KIPv(Y>}v&+bU8C774`s4!zr+Ej;?q0|&R- zUyrqBgwnNYp~iFOX8)ea@CFOsE+zstA-9PPY-&`qcBJul!S=*G!})eet7O6V?_!jCFO5|-*IcE72v)XNi zYHIIPa{IxlZot2iiad?`*H$yT86Zo|Kxm51_iGC^uhAQn7s5k8i(o+Gj6~hiWe4}K zGj&49_Cg|3$ZVm`;Hq=ECu0S5m1z%DnL|G8TJV_mgI|Nhlx~++LxxnN6pEwuVD~kC z9dSTe_&ok_HEm7&DDg@HtvF03nMw~<-@Ek8#E%j$?sAxmxOHf@Te{cI$*Da1Cs0cR z1QY-O00;o4yl^~w%RINq-~a$(OalNA0001TZ*5_2X<=?Jc5h=Yba-@RoK2GSJQ0NV z+_GMG&3py2J;>4kz2zW8z@AG0_rjT}k~|PGu6#-={aBW5wc9=RJNtG2+3$ND(hJ~t zokyy_9oT4uUQ>g5qV&K2+Ima<_g@G7=N|~!{JO1IyIr3YlltKgMtT@bpCel$|GZGx&3`lNWgk6i97i8%2`JO56_))pb~=b3EY!@yfhR7hV@Dl zvTev|)rqHFf?gnRqxCl>zJF)i{bw)VgHT~ERJ?6oyjmk2Dcv5VFtJbM4vPJqR0v;f z2v3pZOk{<^fBpS<31?bXd&zonL7*z(S%Wd5Q4*+aH=3)ZvRZeO{mO*X3q?+KYsV3-=$^`C;lnK8@ zaZ0lx`_P){E!FEK#8D@uzCpIo7skT#ua?V)^%pQGXWqH!2QnFPdIhCXu-s zxj6hnZ;S1wULn7UIl+g<@#=}y7g^$e{?^NbYm^z)64Ynm z$~|kMhV`s3S!+_1lJ0`8{$7ozo;q9IiVYnJFCI-Mp1-U?u@8XeG=&o1vM2`iA@+F)?_A&h)mqbTi-TEC;jy~ugpf40XK(DQQ0 zS2KyOslvJ-b7ypu`kM*;Qx=Uuk$7Kyw;@O-xJ|fLYNYPIC?j=Z2-^go)N2;+C86qe zcu(jrlblzZ;42N6E1zC0+81(E)4^;^r% z4|P$jJ90WB=4)uhB8!>VuqHVx^Y7EIrdnHMiRwqPKQI>elB_;1o=%@o7WI`~pIH3q zoa&)hw>~KMKQv#$w{}u1Qx7*)81vi{_rn+2jlXwYiC%jgfkoHu+i$W6 zgSsR${jQ2M^gR61RpPX|v(Q=m!ZJ<{t|3zS6-GmpFfy!7aHw`OfZ7|9>@KTJ^||_C z1*>85WkXtOW}qq&s_NJ_8Z09Th@|i|BoAvt_Mu%m-0G<|AW{=>)P(2-fVS+uStm8v zgT`ccN%d3{TrO1!?x4V>Xo1iv$foQ=)hki)g=Zby7WF!cGwz~M%H^_Bu0>zpUN5T? zA`*G2@QO|I6XY;q2ju)J5AfoXRZ>=$nGe&DOKm`;7N2xhU}Xq*xGK(2UMEaJrz~` z7H6}gC8^Nj9_gW)_e+3%wSYZl3cPrWWlHd7eZ(+kP8P*fRh8% zO!jhVgYfWlk~-b;CX`%B@-qXe610Xt?3qR{ypnmA7OT4rIog1!iqIJ^;`J9NU8J%B z-VYR??1?HYUI9q@h0SQL#ypWH^a%xorzR?hSlH|KePWM=N~X~#4$*xg1A<1l1+UkO zJ@HDwp#vT!8PQGJ3++C%W_#po6GWG?(#?wf1&W~vt#i|>Zj&!hWLwFKK2NjI|PD}L(B@u^$geFA353QaMG3c$NW|G{E+=(y0HfpHs z_sKyyu?5Ed%a5y_+aGk+Uf664htsebjn-hi#K^uZF;Dom`L|Ky800h|tCXU&vnsV( zqiQ}7br!b|FOX;*p9X<=_5xWG@B#q#6%=a>LAF@(H!Z!E&j|%_^YA5*6NNv`bc6c*tqfG||p)TnqwFik~C7n>t3Y0NgRZ|_7 zM;I$p_=3y#K~0Ky=wgvC&v@>PU0h zpoF9sh#wc_?IERLVoNM_Pv8Pad~E`DTo^<4p-1X#K=lch6cdUsJnP^#RFmSYG#_^_ zpr>7fIHr@;Cvmh1%oi%Rmmxg_75arG!)B8(2jOUGzW4eGo2?Lo8E=z4S}Ix;xu8ih z19M%_DI@s~KJGum_FKj0uKj^t{NeQir$mcw0;&PNE%ov}u}zp^56Cc2jfA)8#ClWo zImFt4umqnFNrbQS#hChAY^jWGXG#62c5H$3QVBb&-F|a)Sb)$Mmh8om=iBRKrpN*K zDl2SJo5<|%GtLX}XBrF!f%jGt!anWyCgCD&U@FRxFhfLK`~kfbNC}fT<%F%cn)Wh~ zC6eDa1h(yjCGJ*+AdcXv4?63>*e1*Zy$EnGAZ4rfQSzxvntj(i@)g&lji*b^%N`zv)x z4EeIQh%sV~#&UGok?(I(pnko~g0oHa6nw8sx_4Vupyt>X*+PVZ&lmM_K2l%IbC_=P zw)T1RK;+QC{Q%9A;5wp(Cn;Tfh_=r|oo(S8So`T){P3e3R~{ zF_0E*NUyPo)fDS5YYD1Hn7NtsW`b{46I!Z5^cf8lo2*InQAfN!-K4u-98gO230c0S zW-Y6{CRw5{jD`Ie>0BENQIm8RxFjIw{_B==!$z z;|HX~kwJymG18rCQJs93Vv9oVhgk4c{LjJ2+GKlyUNp_x(04dV*ZL5jB{e22DrZgZ zWl;}tJ?+C2KPFgPsG~2(7wHO_-kUj^nP>A;nbo(jR8E(4+Ju>=hJ>rQSDzG%3RB}# z7ST{87TJ(@yoPwH39cb1OmOKt=M%>`b(_F=p(kDYqA|Gjv@fUrvLV$cWKv5-t)jDv zkRq+Is5qHl<1A`Q{R&In6Iz0r5V}ZXF7(trLA?}42vbkWcf9oq+QZ9E&IHaB`hO07 zfA{2-!xKH7b$&OPe8gpo*^$1{m~0#3RMbr2<#AzQ_Cb5mIF{I=k=zSKNAiz7j(d0O z{bx8Rkbr%`>_)5f-I;OZDtV$0zI>llQHI>4xM&gl&G@DO7QXW^u(nXCP1c6Q(0yq2 z0oQ`e%c5P1S-(h$?12>1a$zrW^uaUH2VK%$gTOh4mz1m32`nb;1=ufiXzPK-3Dv3k z7%W7G1j@^-7dGa-oW^9!kUn6igsh~v9fazT)1cap*ZqwPL3R6u5w$@r)dia8!uPG8 z&cdH@wD5#Jpcg>rG)Z8qi%m{GR-c|PDo;M^a^8v0hBTe)Z-&p#fM|H7=!k84{ECXs zx3NtTD~XrG((o&emn~$e_%hnzgseIic!I7uy`0#7I6w3Bv|uIlGMwh5w&R{^6IFaS z8V+niFT`dN#6dlV7Ed@UNC8~pF~n(viVeLG*TLrzo*Du@R9KAsBR1ropL`qw+Fe$U zPwIt@ITu{^R*}qBciBfOo=+?Hx6YK<&XVdA7WN|Qg_qi=6NA<}g$sS6P=-4i&~<+ubDyyx=# zveIOG8CnBy#bGT0JxTOM<;iCqj=zz-`SF^1v`MTgIRp41O?;gd&`TR)se3~8MV5GZ zQcF-%LQm=gIDiYgSVaVTk{&2Oou3|eefhoo^m<0S6vq%S+UHeQ;HfsDi>@IECAbtz zQ2?JwCNM~dFt^GSe{mrM!q*j6JyC0~#bxE>JXvm~ycso$f6 zA6A+~If5R*IMDe?3J_;Z7|iF9(xf7{ z;?-nrh+NDf0fNpgY)DJ>gkD6b(H8mxV==MBfzu9n7$0r`s~Z3EEyYty5{n6Y0R#s@ zg!&gn@u#D5Rk77+W1ngSOxi0h)Y6Q`IX?H9w(EgMA}f;PtPQ=OEmkJK1L{Uw0DjOJxbz%mHB{T2cBOz^j? z4XHjMlP;gIPr^`$Tk1-20gi!)6H8Ddgp}s?g@VF*B!0D2o3Kx+{=gN`7O5VwC$c}u zJxQ0=#hJl6lJFtI3E<#({Id+h3Asci!Dgr0Epy4x{y;aJ447(-K0NO%}yHu@})O#coI~!4vwyPRH>n%ef`= zA^Xtk6O44h>UNnQvlrRKSoA=4x7fQEsAE5NgE_AcuZy@7=N__Ky2HoN0eXS7uZ}4= zqN;t$rstGPmWg-m`3@D?ZNd(UUp-PS!4op1c|tFsb92f^Xw0-g zPTORW232B*J*x*4JKwLb*mQqG-KYyt!?p+dAfLn+PywM&(l5-Gt4GBweQvhL zc?fy$O;lye@xgI(;)>a=rOp%uimqLF{))25ANbQb>+*Veau0e{Hio1&tBZVMd!i+C z7=Adz>qRY;kdV*TQDMht}KR>LqDIP(PuU8{BAucBe&up&gb< zht=p8sr70TS`z9M#RPxwq|+|NR+lx1T8y`fpPRKIy(DPZ_(PD?9e_xU?Vs)5{NCc+ z(Z)NladHE$ChPUq6HfoM+ulP_OR7(>o_HU{d*SH6yI*$3W-xdC_u3Jg!8lW|CM!?B zVE*;HU$?=d&f9KQ4f2PNxVGPV4LIikd*3qd)nCHM!YUN-auoZ-X216#Wk4^~=6s!k ziEQi>7zRT+4{w%$2$4sUYAo2a%m;0DMC#_G(+&a+zP>*Ugo~D8@=jKThZR|5L0u9O zowLb2P2p@ti!ypSBh?dnAswfZUMBndA=W0a5}^;8YVVON2^!iz!1U7LRHOO5tV?>4 zX3Q^>twSPp!nKpwRCPMxRqlDwj>@jaY0Ks%pZ=awtXyspj|NXs%PueFnPyu1g zz*`LI1yGBE^dlVfX|i>Aje`9ZbO>H|hX#$cA-zoSNnJtS>=>Xty!U*( zu)FEu0wjzHqH8^0Iftk%hNKoJ==DEhk0DlU(#*3x zK?THpfTxy-#A{39oLrm{S>y2O|{0{E1SCoW0%;$9;sl2et$@fB^PLJtggy{Xji~j{s;uzxZ0V;l2#jad- zG)N08F`@Au<<0FAg05hQWnJ>gOO?M5gJloHn%(wS2_F*Dv-xHV5u1#N&1niHbkPvC zTVLK`@m%@BCxY_RV`VShoTUY%wMkw+qZka9RH@8X>Ebj&+hl!68K7{?x&_J<<2b+x zj%yrFvsJ&g-o%{?e)}I!f%*GpGH*q^#L>SeGF!Xo6_grxph_ zm>#m$r7lsP_B*i(FiQb73X?8ueD7bNPKw;Fr-zd#odkTdV&L8C_6Gni1Ebe(tFox1 z*ze;I97ZeWZEZ;UoJ#u5vjp?U7DwFdSMxp9S`uqX&d|PFjpL?sqcPc|rJ{_;1$AhX zWB{KplYY}$OZcYZ!7QN{No6P!VNHTUP#+RQ3ljRr2kd9Sz6}Oa2Rzo2%d%0$1gc02!f9EfBmx_w%xSZu|+Cjvu%qLq?rKXeVfo^dw~WG_Vx6g zhT)&qWKEKZF6kw;2T4l{AnyP8FHqt;-6r{>nD`*>S9n#Y#hkptlvFfGIxS{=FR7hz zH0<{8wX@}gEC9`6-$PIX!G~r(8xr=CpgK6Uj`JdZ+mRXxy@>88zATdt7ZFd7jo!yx zkIj>H**f=MR$qEg;_0kB93V0d1mQgN+3$wexk0=*j{Du& zvE6?aXYKJ8^g5lRTJi(+9f zWPB6J)DvcoIi8&jcv*9**ASej9)yQSmavk%cw$UY+MkX%K5yu|$u7jdL6=A3PFP?dT9lx62-$ z>P;TJ%>Yc4Mu`S;i-D2JdJ3^U5>{FJ=CPEcFJ6qWI& zyLVzHe_MS`@JZoyIlVlv2b@oN-OSG8{pMHGP{2IdkCs0WO}4pf=`H~32H^Wu$Kv4 zp}(OeQFLgr4TAq+H`>08)<-qXXjLjl46At#!^Qu?2{`HF3?sDD!m09S+LoTLpYGn3y5E*y%w>0IWNU-G*&52`&(E`z#IX_F|n5+ma0$f%kc-R zC(F-UTqaew#LJUf!fF$bc9ZHX?o!=hl2__`LKf&{LTB2GMujy{GDds6tWHqb_*Fag z`vPYCHL>#kFcJ^q%Q_4 zF2guLJ2tEKN=3yYpHRb+dl|&if<@}-?j?d+O@d0H9z!#*W?)=Rnd566;Fle-Ad(g+ z4D)((?bKlRRRZ=M#KUSYMui&fe3d^yhye_%XV@&2l;M=0Qb zfm40rZIL3xD_~J9D!y2Q*y3*1+9K5^_K6zEb`~}v;Behe-=c4+dD`>_gW4cWQ62ql zwA@93OLLvHI3shlD7Sj530l^4$0%Mh=HQ9TrGjmHMOrH5$ZHzK!6r#fN+HVYzsO zoOOT%-H^aXEFJ>M_F@Ujc)1PPhj!_3tEVz9XbKaHRcTI-iSgiG(uoOKtetg|p5rYy z9%v7KhCE~1;@MmK*JXKhm+NUvBQ-W<&O&mk($|Gx9zf3w%-$-rFwF zh$#D?k#M|7FLgp-qI)oLN0!s8C7|~rt}Vsm5aH2GU6g|`{X-3-Ueaz{g9;S6^R1al zcg^;66m)zt;!D2-pV*Q#CW*bIGe!f8@MA*6!gAK>uvlUrLF$3XClq1+LnHDifn`m! z2Qoh$2UnAA*$jRgAMZ%6JrsuriACr!#HdGvG>=I=>ktKC^X2jTeZGE7=w)Gz$y$!kZ6;Caiw4iMwne=>xd*+G zIBL}_auibdri@$=`pak->O)wl^WrNA zPlyD@zPnnk*fi~=9q=mxve9_6>WeI~O<+yJ3}jVe&hDfd4=nz4&N{vJljDc;Gf+oI zK3DI_?+HFhfxQgr!>?1-qnB-x5$ZH1yF+v<6m`n4JV14ZW_3ZM_rHL8(U+ugzAs0) zmyO0`FPF9Ls_yo;5WlEGjFzmqos? zhd8s9!qv9FafklRYVqq#%PsNLUMRb zjRe&z?uFEPq}qhCP~$7d3)@I1Yujl|wtA`wE|)e5c2=NtOld) ztcCz2wBK|%DB{2Vc^`R%(H@d}AQK1m803b!} zRG2Jy;xX+jW5P=|qz-)+#3ogarT*5P#u`xAp8+ZJr3(>iJYi?T~c40EbXD8gnp zM=Fvld2E!+aXhF)%Cl?O7?$yBq`7UhldIiH0-)gCA~YjCRu0(Ht02APsi3xFTfN*^Uq~*3y_h{8t3yEwOkwFB3a3n;x4C zwF%ZAUm0>w!Knf~8o)LlBm8>WKsI(o1@a<~DEMMTfiw<1)j@h>J8|xArPA5;?6F+V z*NLR}!74`M$Aj&=2KW7HCq2mGFX|@u4|Gg+PdgA9QA}R8X}EHTgf>n%)ku$|$a8gq zSPiBOiISl|7$E_Wpop}G4(R>mQ^N5`!e$VrPpCB8d4c~lRkHXYYh&X>Botl8O9@nX zVFBYPn;h924HXApO#n8y#`CV595 z%@jWHRQ&G*%)oDI)_KAIrbfpmj|tW`l|e_!AzxSajpPqo3$9qUjcoIopgi&7eR7v~ z@u@3UCGo<5C{+oazf)}BTBSx3)=;3z%F|#2OY=#xFKL`NL%1J!|3lYdc=p0zy6P7d%s`tDj;U=1dOix6DL>*5FNo}Wsa@OPrS><>@ z*yQv;2ZdT52TpCE?JW{`r-fF+XhlQ7LZO^00UuJNDfLuq8N>-gGm$?GkdT%h4^lDor-dz+J?U}Up!4OLgF~4DiiR6 zWF_|H6` zp`C8O5=L8j2pm@a%CwrAGLq09XfIS*`ODONZX9s!6GkhnZebJ{$RLcN3X`!Nru$_3 z2W>+gHn#tjK@Xu%u^bQJ(Up{o`+}8>s?+fY_~Ou>$`jf|!QJfP1~s1CiiQMZO(b&R zIKGT8UHH)_WJB6hdBQB9v*jxr_{{2m%Olk)1M!62NgB?Pfi@M7ggrDg?MVwUZ}G2G#pSB3}{xvdXRE) z2TC8<>C#CN6>{NTcsz=gSEj|t%8koi3-?0wCQaq(@?IIa(p5HWKV`TK&W!N3zdTv_ z%SpJgp)oKTONRk!IgXT zdvTTQMbU%NdMX`-$`dmYTP3(k&$OL-0;U2n+<@@~3-%m<%D|>J&wTVk)Ru;e(R3MV zoW9O#|C=(}|D^T*O{qpJtxC#~&wN}H@LxAPjyYwJH64GMDpjY{PKZC!09%Ldcw7Js z_Pso`bT~gMgZ5X8>yu^p%ZW^jF=V(?=~&oLQt&pXS0K{>;YgP32XdId_JNmlGyDfC z&tcg?oFJY0Gy{O)8($oNQ^=)Rr_bT9#kaLWISVCLyRIvX?27KY`{501VgrgW( zjz^Mm5dk$sK2&M>zbxF91L-m`O(~?_tQWr1wjc%Lk=@0pCJe5~03p;l>f4l9um{VnxjgwkA{&rHf&SZ<1%&?Q#Ipf>4 zvUtl3EWSYr^BTvNtf{m6$_av*3L}$dBUewr0+?>*u%kiXn{k5_j2uNA_`y}aWL}UK zR$k5bBqK-ts%YeL-(lRm9AL%%Au;7n)Q zgCzBMB=rF7D8RgSzB*oQjVQj8a<10I{yz!mSS8^ggrr>iW#r3*(~E9TtKrokn;an= zie(jqgMQe8eUkEmR4fZNPLruu>TJsfNKS77oEvpOc>NLO1*upTY`mIN-Hmn$Pm)$V z4hjCqyNC@xSTW~|aU+7UKI}9@g=;b|=xw}cLzIwIbnImhkCTLEun7wKYmxxg1b|J2 z5W5S1kSK^D4T;%|G(@|N88m;1TK3wCv9W~{D&z$#hmUv5U4^s3(NYIe?lSCmRR zxlh8DS5A%3EN=PKKJ+s}8XG)>T51k{l(!;VngFIxa{cHB?mfYC05SD?MT3j zVlmub?aV!nN70(f3)19#gXwpInw3ZBbN1%oCc_|a0MVC+(L#m*bZX;CsIGgseQIN; z%7NOZzoa9=`Ir6>(U#joDrQGM?OcawJb-{1?^jLl*4O z1#E;?I|_Gs2pto+sGS;yBRSq~0)vw!02Qj=Fb8_gO&8n2IJ*ArR(pL|MJ<{NvAMuEKl8!{BHTROUxwr@?%Cu5+?JJMAx?FOY zbF>D)&I9~lc#H>n;K|L<=4s4Yjc4tI^G`EKb zPr6>zL#+ak_0FhMOT`R=aVub%UX!rG#a2^6cUo_L0HF(&M1laBXB@PB);ghRFv(f}*zz^2!A$KgEu z$@?Hd>?RKncQF&6d~`&l`AaJSE+0YMZ5Nrpz8&`;erYu72LQQ1M!(p`*lvNMJb{8P zp0Ee?R8BaxNDMLZ0B~wE^5-lU5D16iKvYs}#y>wENJB<*fLN9GmJd>=w^iIW4?yaW zyV3xL+9quf=}7g*S3pObq|$sc+so|$SHKg|dko|dHSn>lsazb=ka1^3auLLk#?Z`) zyF(SQ#3=Nr$34AU3#oqlc4k5CnHD1}hrwAH=Gq__UI4MvhZz?a?TLK?C1FN@oRrO2lT@@%oFoY`PAh|Y)A5&) zFW30no?0F~xmSxtws1BxrYxo^$Ac$O(3NVLL7XreX#RU>Hjnp8PdP7#KM>Q|kQ5Xd zJEFIsu`6q=5WH%lgRoO1%Y=Or%KV_JAJ4kc5n|_HLng!lJvziX0N~Kk60#&#fIdAS z|C13_#6WTegcXWw6hRF5_`rH)nr6=1&L98Z)cEoc%pOMz83NF$jg5Llg2eF89{>+Q zzPkV-3L5r5+35y5UYssFj3a-@M0p=Nfs~7TAzHg*4`C>lF5bust(08get8rsJ=8j4 zq&Qv&AyM$(4-or~;ep7IKD8xbUwP9*zu#+SY1%ou^Eb7hQa}Fmp!?50n|U<2S=j!ll|P%*@70F1;ZT^9SXdy!Y>e}((&_IWKF?(jU&t0!{Hu8W8C~Lj9gKLunpW5w1793G| zXAjLq4l%JgbX7#YHh>RXfkL5@+BhgGwl-~(yyLLX&etK9_Lh6a-q$035YM+iuUYBa zvP^G>Y3I>GRVFkxJRXR{RueTFdf3h~Y3K^}%hzQ#{C7(a~)*l9zI zIq(~rp&UY?d#GlLtqD+<_XIBvWKiD3RYq2Zxe%kYue)Eo^^mmVyprZvLp&vJ!8ex8 zb`dA6h5!m0P@7{AkJL8AF|S>LuMOY_l0pHd?4ieF1SwCTB$1$=YR!N+LEc3*`BdSB zW#JKwy*iN#$MJ1wbzneQ zdBMuklh8{r&d*@%s(~uW{9#8$w9!aVhmMvy#OT~C4)wX&?L*f_J-}NB`uW%hE-;B$B7G&^fu1a$rMl(66kLba1Va^S^;LA1RvHMW~D0`@4+IABWT&20TAaoThse6KQ5lxh$1sf;#1at|= zMU@l#L3Y_L+0X!Jr+t$0f;71&VUvcz4h8hp40E5PX(Y-7aV zUVH&M_0-Xdh6H0xt9|IOGan!~H2wLTMR`+5PnCC(XT9u0Pl9;T-QoBqTlvfOZ->m~ zzcZtY*G4U#*951&_k%L2qZj@Vx{Z3US|M^%8=|@2EYy>Df(FVX)$)UQ!afO=gRQgR zE7b~vH~>5B<x-96eZdp0 zD+}Yy1dBs);6D~86w0Z4f=bW}+f^A3zEU$`K=IQ%L%W0zP#??{qC&s)_(%T#i-au| zNx+_ja-iLiJ?sai_5id2v~2;1-6{Bk!UrOSC{M_w4n>t92H^6Lb2WqiO@RzSyTEoT zC_8W}GV7bKEeI;}JR3$e-_ICW1@ra*D^cb_JWUW7Wp9O&Q5VFH{kD3gaS zNXp-iR*PoR`Z6nvBWYSRTxJi~vjurTp59Dx2ikcF&8N%y@$*k3%Wt}$qY3uvv&n;0 zK69PD$e)$lrBT7lP|NnzA*ZgE?dH3DyRow zOEs2_dVm)Ppks}DG;sFO9F!qA#{;-%PrN30tw2t~y%FYgTxg;T_A?;9GcD%i;efMt zp|mu-(5Zn}=x7dV*N;JC!}AVchd>%+CVQRswZa@)m&-}o{narCJZpyz6^Do#g*(%$ zPk!|Yv==HDR}M5Ik_lMPiQqAZ@tvATYU4?#1`gMM|2^M+n6?|>_R56O9Ceq2ijH2a zyfT&Pg_!L$RiKjRakN~kd~)sRh|-37$B}m`m9gT6ABTRQ^c(pm`=-W_6UQjyt559) zd@!X-!k#by5^_8OlqXP2cqRR#k7yh*|9Pg9xY5y zwSq=WAE5GXB|h|2#&w8d%TW&5UV8o@Jy3Is?xYJ*Al53_TLt^=J;+wJqx{u%!kFM! zUCLdCKYoEm4Dkf7A}VA@r44%TN>tPr9L)@Gzop5KhSN@|%1J%IPcc9{e1iBBaH_%c zH`^h@aa>dB;)#{$a|50urLvj^eUr^2o=lR2OX+S8zo7YHn9j-4RiAX=&N^7(BQ~Kjw76(e&mZ*m%`N8aeKuqU zqsAbWm2V^Tb2ixwp65Z0CRs5df7;~Bm;e1&I47(Ghh~6)8l%lJjiC;Yq0u$ zu{y_9ek#PkBAw96Z8hk2Sza9Pt5FeH>7ia0#1mR!^g%W|ID+S39C-eOO*5m!Y-A}X=f4KcNyQP|+s z)l**W+~cZv8BUHZS$XRrmd}AhPn|Ft5T$~6k`%Q{9mf~bVywWmiCxB{LLY{d>&4c$ zWG=)ZpsXz1PAw-Ae73-|euC{@`9;_u%S7GEJ(U5rMFB^HD7pf^QsrG~qZJLAtbsj* zLa{7>7k1KcnbTHb;s9V&0-Pm~4M3B4k`y&w_*9r&lf|?cF=kTCsO<5&fHXKwf#)JR zHyi>3KWy~!Isizx%VK`OOhqGcTs*Nm@o`atw+N$@s$4{geL@xJoP9VP1L7R9s8;W!u*TjB?6hXt;WXJ71^b6c-&IM@ZN!1lArl>40sGlRLnc z1As$wk5b|$4g=Q=jpNuKPwgpEF7CxB6sRK8aS_&CIw@>i9DVBYdo)0!o`87(auAvW z^M^sl))P=Bk&kIAtGpMi?7qs2d0|<(@#@amLhWbeDC{%Ungj8KJxKztRLc!QZYA$M z5S;{Hp?6ZyfZEt?Wo257NSTX^d+^9#DX&)3WU4hj^uT(3)167h=|E)2XsJVjkdO6= z?-*dN37p!J@O^8V++|lc?KqH84n)){AE8iAm4Jbs+FqDSJ;@KpK>l!{B>L=qp1uyK z@T7|ucNw4UO?`rO%+cVy|7br5VkxE^BB6~FPBlV6Ze@>qxZUiJ^m9uct!Rj`eV1q1 zK}^@SxNA$43CCliGEMG9vx1Kppj-Je1&~C-KU1SBJ)aI6AKgS6qObcxH9dDi#3;`&gb}R`|1_Ul zv^8I+baUeaiyFhv(8fk$ezy-FBB_moMrxZdkn8HQ#Tvx5z))L>;G8BK9iY?1Ic|$` z6hwlAYo`MIOAAaJh%JPn(V^2rLzHgnIjuQdc}`#h+3*&$Vo$!;qwB#TdW(OU5O))7 z@AxV%K@4Q~csyKimIPQ+AfC{G7o;ObMpV3e5X2+o0qr3)0#2PU+JZyE6#5Yn@4SVe zRTPVCmwiYr+Vg{4t#ManD7t&~Q}})TS&Y4sK^{bfv6M%~+%Vy85~B}chj`P2AfErt z52ny-1Nc%0O2{61JOY#{=;DB$8Wn%Ur12&OzT4^jN9IiiVjFIs9?0XJ)kF{>=hf)V zjl=W;nj}e?Z#0vg5V3zJa?-Us#UxLDaSI8HR}2{2ZV5$g{#$W^o|o(0|K@kP9K!#d zAZ;dH-7m?)+Pl;fJdNqqDHI7f?TZ+{IwEzRKp>od!5osdF<`XRAwkFUw`>dJrNe82 z3S7e7jOoQ5bE{U_Jd9>y;r!zv6w1(83}g2&5L?I)fKF|kgq3jL+;PwUxc}_Z7(+YM z`s|`2PJYA(eO#>EW*?jcp`PgZHugY>!$pyH&#|cmFTl;iF!^mCC&6k3uO&XcjDd2t5WzTei{jkur zEsn1(c}(zzk6i9A&pzKOKxTZe8fqW%@FOkNvnzE(f@C6#DcsMgd;|>B?YBj&Wdr39 zf=Wo^gi}FSPl+6KL1S&%q15Ehzgc#JVO_L5D0{I7mw*4=gLvHONVSY0PLK(cMk^Wu zwu^*3@w^;I%*)3{08qAs_o;u-pZ~;vy64=!gUOcy&F^E1koclMI6w;sWFu_{OnFlb za>{VAZNQ5`wsb733v+I%R!yT$M^8XAOa zjR}2eMc@)%@dd7=KH)%Wnij}?fV^N#D2oQNc_r=CrA-xW#7@Dm03rjM2-?g*DwhDV zWBK$#a*Cx&S;W@Ky3o#^CLYlRJDP+>y}?#-9Z1zsPam7`N+}GACFvw1<-2yhbNnMX zMhz(wjz+SdRPPK)6GkB|9p;4Z55=7J?YC*D9W{xYWwE5mvuys58iB1PY9(U#SjZA& zwZ*`<=`Cgan5ANMkJcGS^NfzW@cNd5Ac%LvF3KoZ`bxPV#>gMeNz_Sp_Gz9Z6YZ#E z4#AT(axU%*Z~N|Ay^+JtJ!BLIOscOx`0Cr|r_>FCf(ut6pFfV9S%O!exU|s$B(z6 z89dX)&v(w&Tz9F`6L_l|yz!*7P?A}k97neO!&m0kPhP`=E}^Iwuqs$_;0;s^agveF zZ8)4BI)d&L_TjiorfRAM9PvcOWov)BzVMl@a>0FDvn_R{Xh16Wl6wDb=0ESLFO#Ry zU&d~y?QIgeQLzA$rdq(%!mJ-@0sN3;vR}-Qdn$4{iuJAKbSZj;@UBCeb4$W`gFJOY zIa(mr+i?E{s_5X+c1D4CE>tPpITs3f9-wM};DN`qjp95mlXG7r5A2I|Avff*moD>Y zvoB(CvL^aycyGqe-H!i#vIndb)CM|yAlJu1@*DB5m*E4u8^Gd$sdV&AR>R zk#HWDMHg3M|I(v9QoP)4s*iFz3}Itb2$Fnx(2B%vn?NyMgv>zsfl%&(=q#AI{CZ z3#YR~m;GA{97DH_%F3k7I(Nb-P^>Fe+v&*4S=Dw4X-dGwG{INl{x0X|@k*6HYT_uM za?~uSn@8KeOq-J*>AL(8K^dEb`qH};%n3ks`4&WGek&q3ypPV=k+Iz`Z3sq24yZDw zQwo{@aZg+*@84}WTLMC;pkD!yEd2LJn`d_2KF6R2pZ|o-G5Jl$5;>)tW zLod8nVQ_s&nSj>qb(_?cq5vKQlaNbPbLXGnz^g(~3auCU zvDD+d;V1*EOyoc$*~C%x!5FxfH^6wg{1PitSoMG_@p+0>C)uK+LQW0H^Z~^&j)VrFJ3&Kg zPhgout<&hDm1svWcbtV;hI`RseV{$K=+hi+Ig|3sWNUtb;S@7vm)_>TG%Sm;@QW^& zDy{2ZgS9cQZMbf6?6!sYLI6fR_f#*4H`E=_jBCCaRnzE`Ee!6ulwXFG(sr7d9{w3f zh@^g4S%}&+O&3XGpRfvYk|nNmAL0k=gYC&hf4QSQ?5O(N$uDc^27!Z3*n>3GQaj)f z9#)8akFgB9L5sbG<|Uzzw96zx6Kq1!#B373dkMG# zP!?O689#(PqQco8BB@OmNn%gnB8eJ=Bto`^tWg;?L_+t_rV}K|40JMj%dTGV&%>ad zx80HqaCwX`krQ#j3T*uD$6`%vgx%^)tXYulSba_16Phj($0oR09gi$gCcRVZaVl;k zWX?V=+oXg$+RK;!%gEEQ@5?IP_fe!j5T$5*-x*X7Jdl(59y1LufZ>iGZQZ>3 z_|P^xKT4Mnp1>}1qBczx2joL`C@xq(|L`dv%{EEx3D~j8cSS-bSn7mwv>P{nq4cH* zJ7QCT-c7oGSqsT(hEPz4@wDBFLq8Z>h*7g@{1?h1A#&)v@XKFbz;=9WO*)6S&fnyB zI6Zi-iz4y^Nyq!H1qF7uVv<@C+5{9LVskFXPL)iVY5}P%QhonSMWgjonuN}TqsoiM zj_T6!dCekbl9hOwB&a3%h=P^zvI%Ej6wMubbnm+(h)2(KQAVQ_4LurQl#t;C+UIB{ z37TLDd|I_TJJrtJX_w730R0B*7J~AiQ5;S|ygTQ@(xY*d&x6tt>}AJ!Q*7!k2!&B8 z7y}}=??MzurXOk$UkXLykFQIr0Qh6WMC+kw0)#yVbjgIK6FVta#tZ%XALV{o(}m_( z5fptP`c+y&nK+_&zh5#5b%@A5?{@1esZU^Sa`fu1dcXLcp@aca39-;Ul-c9d)IGuH zJ+OyNuhe_Q9NzaPOdSQ}58mYW9-j{Nm(|~{JbZU7JWTN!ocz!4bcUuE_lG%77%t2o zmhgAth%ah>>W62#s6niRMDh^q9J<-jOagotavb#)Q&GRF*3UAwuWs+#7Js2UzfiPK z>L5d`(o(f3QOkkEQ5c6oTT0P@oq%bZqy)}i-8G_6lwy>kp+_V5bB$#oS|#@=Y}INi zv**uh&~P*sN^+hSv>v~P<8R|NH($PIWEQO%ZVQ|lDx>INIW-6Z#tm>bD}mw*w_-;nof`;n}A+`dur6I zuK{H`Q*+j|9f4`PZqg^_e|0R^$m}Xw`_Y=p_HciJB69+F26Ak%es^GkTEKDZZ5fSH zXk(a%zg~Dx3-H{#AT9|YAJFZqYe<#hgpNU2fNvfr85(+NL9VlI(y0F5XqGe{BtR5u z2zRQ{elX&I4AKxu-4jMY(+M)kl59~?qSYRR#mA0Jo2^^K~oKY zaRg}-=(|Y;_;>PI{p4>OB^s*k2*TKz&8KyMl(D294PcwgAyuJot?Gl~e7jVeAd|L5 ztHK={*q3CW^AKFD06$Y@LemFIGCH0H8!C-WkV)Gj79?w89#@y=aX0OQY+{nfmOKjR zIzCfnLQleiKsG@pZHrittP>w(6NA{Ble--Dv1GE<7mW+7Q#=$OrHZ z>0pdfshbuhO+6amu#t+ap_Oe6dm(C*P;>2L=?#aNdfX!l1v#yI;^r@Dz)={7L0d{u z0(*6MGR^_6Mf*{s3TFQ(AYKO@<&cwlGOAFye+8c#0jE6@){=z51!I2!VJY>65X}Bo z?Y5<&jrMtT3B{5?*pHoeVJsmUirptTZ@N8Q3MLI(Fj)v)A@4(4@C7e3LZsLTS6zGI6za`12R*4e84BmoVqW=)l8#{`KIdW9u1O4 z<%;4m2hyo%6_lzW7Fv`LLv!9Hzk%+yBM4%oV4n03fy58KJg_h3($j4Vb)f;v(xQ`& z7C1tE(M>i44hvyaUC7i?LI(U>UlQtl0w~lN3mxuRCP-U}pt_}8sgi(ZL7HF_CUK?6 zqmaH7n+I$msb}g&I3T{Ap{NH?3mEZr*JV+c%-!|rEM0a7YxXVOr7I%`(dS-BXs!)M zA%@^mMx(HZ-|(6`3hAwq&@|}FjMO1M4*}zj{$avpyDl`~&f=upY|F^Q^~F4)(Qz@0 zo7u8DkpqCkmUfPg3ddUU9rOt@Nf%vDHfKXhy`2OwWxPCIyZ>-_^(@1I$YF!^g}RtQ zaQB^by1WsjDRh*OVE~?sNG$)|8NCr#rHm#C$N|{|5(mY8@QZ4MOvr1eb`-?=($N5& z(Uc7n)rg~{4kKlc$JQBXSaR^gha@GOAz9=eNx(R9t6`xmHhXYUn)|zy3uE9%?Q$Di zSdK=cAp-S%0;(Y;;6BMu;Fyl@9&mai5GKscYg^2u_F$T_ijLGh7vf>0erFv$#*Q!#b_@4{9*7>DhZlkW#Uog zftXXvJxjGG>(kgW=wRAW^?~wWTl~Z)7k!!oOMf8W6gwD^yM1Cbr*b7-Aqsu268q*i+CxVwGny2$pq9#J z_3RT^+61w_t?DGq+$IQrL_8JJ5xos45`8_P!y~h{kWu)VLgF(Sl@Z>D)CDE5x)_2W zesC%f*pextF%~);r;?O#LU?!@{?6B>+QzSo(Oj}S91XrBa7vP*wNt0;p{OmNUL@oQpNF*&r}pT zk7~+gb5Vn*3gZ9jw>! z(4MLUmSorbR}CTe40xMN(n-hZh+Wc1W2yrD3df;EgkaSG#WtjzDj_?SQ-Cpn~)R--lvgtILt3@`ZT|aVO`VtIs9Ro*|K^) zd1j2VXk;o6r!*n9Q8_Ne6Ur$|x^kVC5qFkjV#ZiB^k{(Lv0IcH1+i{lHenI#kh9a= zesOmJjgZx;9B%@Cc3dWHNvx8r6CY#~A5=7XIJ7sTo}2qtWcza6rH1%o02*qklCWt~ z=3#}2qX4v0Smx{qw#CgRxKToe5!%$EL2UR-r3uCBx@t%v_|*}W1@>V*$#*TMqun9F zUN)Z0c6vm*yU}I|=q6ZQZByByJjf8w4Qh<_MeQL`iiiKiHo<~MA+XzqMsVd!@MZv+ zj}ZkORiL9;YEjaE{to!;16jp(EebliRo34>-EM1Y1GG>`ExgPFUw5#`y*<6cV0Kzq%Eq9I1b(U8a^ccPaY+i|Hm?1Fgb zyC|cC>{RZFL`*5*xj}gxMUI=}aPn`Bx1Oh?a`(+8iMA8QUDLkLV2L?%_W zTePFxn`fxQU&UYOql0aD`w#3MM?q{Bf~Knq;|@7DNVL(s#QA;r8)uHu@+h;cdC_j0 z$Nq(PDNQ~E@vi1lZA)d!3qiUIj!FP!EYwk4K3Nr~M2A1V7)J?hHh~qZbPal8P5|*{ zH~@VB=>#KjnmeBeEXp?GlZ%Po@5neI!+NT8O=J@!+?RMdUl@Fmp1|R7k<^u>sV&K< z+!Ge-Laq|sIUz@M)Eto?1VM}xWi*Jl1F)A;yQFqql!;u0#rkARv+jefgi$T?<5cCh z%C#t9Fct_`<33R0XFUP7hxSx&0d%(wdRdhOWP)r0X;$3jB?*~?UuIu;Ze+a-P;K+$ z8~C(c0bLq&)UJdad=-Q(Os4WufoP0EQQE`fryydeNSC^zNCDR9xE^8(MW&w{J@V}b zvDk#7f#*iBJ+!B?THn63It+w@h*^;!AkO*+7JZtdx%*Lr;I@XNpV&-Zni!*Fe-y+p zifD+V7;KS0hKw>{pv;c_h2Uim`4);NyQ)D?`Yd$`B~mXfN~pF?Kqe8n-^LiiDks8G zq)tFRqJqu?g5L9h-|+EtYOKw1$xnzk0nkw9`}=pfY3y>1;_!_ij70Xn&j?L7Jutf$81?q}ha` zz)?bm5hAA}j3%D^qpgN$=qLfG`Sph{zj1g+-TtKIR`b_O8GY0o2EKBY46TBA_s~Td zjZ)keVV@Qr&G`c3SQXqujcG3@Pm@r+9Ohz<6JeB)VGiB4 zTfWcxs0(Gso7BUG!%M46MX}Ze5q-Qrc5G)--`}K8nMhz(r<$mqQ zsec{f*l?DH1v~{N$6Fx(;qOsgSzjA!}3?a zZZ3A`_?s7x>H%L|5t5zQL&qtN(LzGGAN#x?*YFQh?GGmRpKlS9m%m0~9G>N`a_oF$ zxEHMapAnPhFT787_z*<2(yAcRbjZng?5N91%o%^M?dyKo{W_!y1a&v>@SXiqDU6=# zivL|m>=R}-4z&w|M@bz>Q3Ua52#iH3M{}*+wp6qa(tuB9lH`F+AErNfX0W}*dzj8L ziIU7Kq^E)7o600MnyeGmCNAQtS`kFsC~U!SKi&;ab1KH0)( zswA*SWJ|avWYW|LMJF8%czCQ@dn#H6DFGWU3Ascp`9n7=sb)!Rp3KemG?H$3RX*T? zilvj(p`MIF@myCmDq92Nj->6@g|Q!Pg6TvoG2de+=^~p5Vt-bL>is%CEI({X!#TBo zYt@c_FNNWM!z>(;yy2YMC&M*ey2~?Pwp_FFvM&;Q0V! z%F!egIfQ0`>Uz|dVjW>xm)aMx7FiQ9ffl1o8Veo;fNQ)(EK1hIHKU$ZmXG8AN?_wn zH^UwZK1~udVdX6-y6|Ype734RZ0*Z%AeQZm=do%f%-m7+fwI^hSag}yqn`n_JtP)+ z+&oA>IA1MP@bL3x61UAV`s4yPUbdww;gCi$#Bx%w;ty>4bl5!U^wKmx6VMZ4Y|pGQ z8mTg(Ahfe9X&O;OBy|Kdl_WEg|1%k=F><02*$J4FF_wIKi4l9msBm2#^RnK5{uJo= z3c0(@_xfMI*wA&WqIe<*J&`~A~q;=VR5#l`fKYY%c6#Fz}!POVP*}V*B z0{l0NB|TGhp#^SSWw_?sJPDf*%#)Y1wm!l7c<}_cY)o(eWcRYZkYC`t&^E63CP-Px zuF~kDLatpxQH)OxbEsBdu7|d0`Ph#a^;>w{dm0I+`Isr%qTVogRF1X6)>HW`Y6%;U zxuWyS@!Ku)JB!!;Ica{ZS>$z^T1UnOV3zj`!5+)|oO$fTZ%dLT_WRs~)SB&sd8qEB7+zrRiu}pf z2~6X!pFUY9-c6+8p^oM#W6qlRS~-txL^zRz8L zEqHmE31wLDwO~?i`r!xX2};8D|Hbk!W-#TgwNGNt$=t@tzcLJbM%vk%N%>{;!Im7i z5URechp6l4+#FgE;>rHtvGtYxje1S%R0Ys-cOfAC$55A;%`Ag5k0;12yE4bS&dg8Q z8I@wGmRgunyEc=By3iJK9y}dvKKN^~CbkK-h|`BIF9+zWi|veT(5iJR>Lo5H3oqMa zt1iE?M_Dv%@(zlp$S1E(71_B(h_xpzz!HgAcN)EdxRFVDom%r>Lb=TRSIq}%@~8&H z?KjZS+9ya;GN=E-^O@ckv$tgQF^xGMZ4Z&AlDIOxHXsjqZ=b%YmN1G_lOEzl0dai- z=gk82g_HF{eR6p^G;F&dqE*|?AO~03yo$X!oKJ^R`83Kzv`+35>_;Aq(rMJ5W>w~@ z{82YIlXMbtM?(sKU6aafM#6%KYL1^;aRKj)_jZ;1BWy7V-8i>q-|n2Xt~Ye>O)tV} zm*Ab8J3os->qzA%S7ES`lP?2(+bhz}9wMohkU1zx*n_z4B;+S+AlCoMcd?>Jw z&P4nQCjre7z1owNXeh~(>mn8;EAdBePDGJ3IjHb^wF&0%tsDRCjm)`_s6cCydTLTn z;2IE*_P|lnpwY!@VOX6wuQgGJb?w0kCp~UNt!--0*`QMMoC=Lu(!eY zU17NDWJ}!>?##fQ8!}O!T%L{#9sWKLZ-?Rhjo+duGJl=v>6E5q%@Wxq%lV!b+kct= z$vli(z>;<(nfi@-!)d&N;h2CEzDK1ytG^9cb5J#2A6M#XwH!7^X*q! z?$e7iBiD=eCYhv@Y*AUMN0st4{b9HX(~sLfjDg!GMRE+9o~bgS_Ju5%MkjlV)2#B( z;v-2D*t;}E7anc$wMY|3Su~7nyEGE75*KS?n_$;7Ih&g&(`D?J$u8pla(kE&Xt*X` zCim!N^_R;f*ASlHiR%kvOqih5<1MSV-&&+k#K10hX>gIMU0S&2tiOyr+^PG+^(X5x zJPkeFn3iYbWt#nVMVEhedDO%+Pj1VMYWCY_J1b$%AHR#9 zl7`pVGq-g;w`Hv9GP4b<30y;>k}lgGv?rc`v!h&6tRVY|3sk65?8RT&nyxQaxzg|e zl)R2V)<;aHqwrT3CiD2X44aA{=3Z#TxvVCPJEfj^bfs^aDuf;q1-wbZfaILRDnjx{#_7EA?68)Y|<7;P)}6?+5};bAT$G&!C!WCGfLIGhkW@Ky~q2IDu`;g zRDWqfJhyRcdq*shaO&qD?EBc7bt<|K!U~WsQ>U(%gnA)>rk0zUyi7t+q~-bVMwOxz zzNvJ^{k;ES)Ki?CnUnlGhmFPO0i(e9mrhqfAJmz5*@@N{vlxykM|0RYCXIK`2rQLo zq}o%J&{>A_Ws+we)wYndMh$BrCHxhQ{g|YI`}tw4T_%7&SfH& z53vbt&?l1mvZH~Na~Xu{V9U6_l3YnL(MYQ%w}7USaRXq%$sLd#z^)85gjjmOsoNya zCSp0bRJfw@j`sC~ z5}|Kd5U%+0U;pOF-p|XJASBnyLTSX>Mm8QZ zA;~~jxmcb3{x2`v&j8z-OmHp8!JY|V&EHr-_V5Wh-Y8Li^Nz$Jtihd zC%ClAvqtppa8sliGkWAFmG=*2S6*#+**fmU$L{)bzYchokb9jbQ5H zN{Rl#)dY=F@-wOZOo)Xr=|cJGuFn)qqfApF^@*+pg=~qvk!EAQ z2+6gwP#O_cQ&<5rIoZvoaU|(pt-CxGi=bO-onqd1T=<2nyeIiGac1uwZ**uFQtC$` z?-AnjKA>il3EQNeG?QFOS;I!`8BZl`#8`Jon^4kpQeTN~tHONAC=<3xt_4}()PgMC zNZA9&2|c+daj;@05Z%bNmzL1+D0ix!3uPm^R+b`0Zomwh5!)L4$yD1_)=baw{9Prk zlLEiQbz&oBqGgl`+oVR)M1ofovQ2E=1!Av^(X$|(uqCk}+cU}p*NKfZ8^lxRQ)cqJ z8%Z{@7CaY99Ga;c(Y3IVTfw^Am}nu6b0gR=M^m!)nQ=C8YQiB-cC*3%{t1e=Xh}NY z%s8^*gM4wNpdZEjQM8e<&!k~8Qa_aqf{m0E#e>ljxa?4ejIa#9c1ZtY7QR0P#6#3* z(I`!a92qfTlF!18hy_5f+k?4^$No|)_QxUq5KZn*l7goeX_eUy-mB1f%0WWKEY@uA z9qcc0O)P!){g{jN_mg>!JDMK>t}k^hC}c~FCvt5MYfsavF{+`P;@x{n%onO{h4)tx zw}(_~tB~AgulTgC72Iuk8fww?sV3nn+dfL_s!{G-hW7o7B#n#}r6~oYnO2J# zaJw&$iCJR1US%Sa_lz>()QK$#iv?>!UnjW%k6$tV;8TAYFh0wa%C6NKB_}IYi(#gu zVR9D#7z`iU6~^@u{ah$9WvI3lo_#r`P0&HDuOt*qcC%3X>Ny7wu>m%MtdbPff!hFd z8LX?3RxNz^6wE=$xeUU}k!|q)8qhM%g=P8Ggg7UF^TZeOb({?gDGAo9)#9IBvD&nf znH!3JE%)K)LW%XE+6GoU?Hc@U6NJf|`qQvUsmy4WayJgITS;y@i&GOe;u2r9zST3EbxS~_Z zDx`BM>E|*LI}OApxE7SjCzBfq4TF_5*5s-Hi2cO+YQgE%($s5sCD2+I_YTQ(O zf;1w=C`G~6GG?yLtT?z6C3ro45nKy0xh2KcNr}TuqMN16oe_6f#o~D%)oQs@GR1Q4 zG3D6+#s!YUW}<76M#e|dBU8Hx2_1#(uf$zC(Ed;%MOV|#Wg?Cr5S!qvYK_Duup;2Y zrJ(CWYE~m-`_r_@qiJj$Dv!uaa4I$*^@F0gTWaDxs^l#3mX?GrfH7+z*iPV&%A|9d zi1DOYiZxO!9*otY`Q+?F_b+QXLb!z}2uZ)+CrUYk|G0LiU*h0?O*mdyJ(KK*HhNw+ zA?4oPK{n#KloCvLmTsg{6wA1;-g+Jvw!`y*ilN=4C7>!$ zldfI^*D@D&{nd9BBDzTJKRct&xR$&I9m?1EjxkkrkUob|4Mpl0_)FWc_k^K5nfh{iHXf+nn!`Z{Rc zRW@=Qy{P9x#u2ZWO)In!T`LRa)Q!>#&P8u;+of=1P_}8S6m)$^%{psVt6VcW8B0ud zd)iZTT(bNg<}bjGvlm%W>)N$ zL7zB?1i#A)ANcA*qLMbEYh_8n@_-6jHnAjYneR(Rbb{PdR7hK*4LCF6x^h^oTTnaZ z8)F(4PS>Iwy`#NU`d(Qe-{XedIZ{l>3Bn|6Pv@#L1yvlcLo}XBGw@3$&BR|BWx_Ve zwIB;L65EO0Ah{=DbC72SDuOnmTjhtWO5-twD%Cwj6D)zBpwL`@`i}zbsaS6&Z~vk9n= z5MNg$e#?}<8!;OV-)Ji#ve35b<(K>Y;DeRfz#kHVR-m3H>HN*8GQq3Mx z?4ENp;(uJ7TXw@X3`GCCOGHK-G!*4hWZHT&{peb{uM#tWsP>#_<^p_(ddqU6yzqa` z{uj!M`wjKRqpW~kui(EC4@Ji3BL1K06_0Y`X8#F_M)*pXgnVAIBJ|2ov411r`(YNV z;}0G!gXZnn*`=?j>mqbQ=24Q7?F;K;aR<%^-#f0fQsn;$%m|rbi*#YL#r=jFoPVek zAucvar!MXbxt$pBT9S;9nxot^R{QE@t>qQk|3b#P;W;?)5uckG6|6>(rQ<-!Acv>b zs$?JY_Gr|ov?95O{T^_QtS}m$J~QIn{s0qNM3oC^(@@4*l}Q6JKFZ}Hm16>ngk(4I$i>!uB_k@*#0Db6$TulhNR zs%L~fOs5xqo8;K~r=5UtN||Rue{w7zzx--XTp%5)3XDf*l7T{-hFc*;%bd?4bD3ZW zP6nq3n@{HQt$(_WLLCNgX+;x`HtF*d9e>p+=95f0eew>*hZSsriJL%n=&9)~3OiL{ z!xa~xa3p+HXo3;?(Gu=Cj2i*|`eounH>!j+y&zNlf@p$ylaPV$1kQV**)13)1K-US z-nl4)Fci%LG)$!i#j-qXGj6O=Ofl2|R6(o0ozDRmWin@5p9SNt-`Zx3+d*9Lovmw| zj!7Wc8lX;982X|oaO;n#j#FtaQ8Nhs>=ATs2VT?XL6s6_ClbTsi7o=2t=trf6#>dO zwzHUF(>u!w`VChDZp{pCc_qyykVWm6?_a*fPHkcQZ(-z7E*Lg(mnpTnbchLqZ1j3f z8U6hJ^OtXJyS_cEe^xzz`L_8}j%SlyFWR*?=Ko7$(mC5S`;s!}T7D^0xI!^pGi^(w@Vs*vIT_x*zvN*wL<#ig&eu zUjjvGJ*5NYPD33fys`RGq_E1Xd)%IonQ=2H+O%DuEZG%BKhhZgD0(}6Lgw70xq0@V zzaU2S!)K99>^`AY*NVU@RlOggg~9VB{?0fy;1*WU|KA>thd^f)H>IM&Pn$*fr4HDp zkMOs$;29-zZO?;&-%pXwu0hFJX_1)+=6(KAzS*MP#;N67s-XT zsAzJ(AX9#rIlelsMUMD)@dONEp%HCQ*9#=5J_4FvAW0U`(^2OX>P|Z~JrbRURSZzN zj~p;yII$!!nT-yl6>3tu%xy^&mK zi%|9HlRye}&K-`|%>tVWyi=n>*RVpEou(s!?F6%mN(d@@BlZOLNgO2*8*||RV`E-~ zW<*=GFqV-b(E7NX&50ItrDDVe`P3#oDHhCFRFrl!_)%qnfljs@l_MCtxA0`*fZ3^w}J)Ve-z5(Ymw?G^yW692@RUCv6VRoK!0uFTqVf z?;r&XY6%-?@ui<8rxJ^uJIEek*eQwL9YEg~DCubFgX4*pqAf(l(Vo+EF3c{q0>7(n zUwxu~2&oubG1u~ZcalA<3p*Zfs}7VW^^iuup-S=x9Zp77s=-1FlQ@4T$VKON z;k^bfUCBL(i=T|~tf&R!_7yy^;}O{Kgy@NO_zf1gzL6MzxVjwJCNB-$Vdn;mVZIEq zrQsT$da zz%J8`)Cr8K3CiDm_SHsJB`KK2Ra@O}IEkWGKiZ*z3ne3An7-r!1Omqd0L!CNk9y0|Z5 zPh?HRI>|}Q-{G@T2a7iaxKWyHmZani5(cOVMfQo5KXHs3Zx&8 zYMYZup`ts>O}BMsS%7O3FsMQ7c43Y#6k@5X?JN#Mdnm0N;+hA>V|@7JEq`ENph? z92;+*5;J*DuL5c6hB|cBLP$PPw2y_*suQklRNy_x5#^_XP846IVTPz9fy~blUNOr13lAdwgz89F1zUQPKx9 zOkiWtnV35>n;`s^vlhn#AI(9HDxI!03&UU+3OVnn?tw?eCwY){{m)wudlTnGoHINa zg*pu0+;)K&4Apjpcwv>(Rq^JQ1O@r`D*)Wf61+J;(>Z7I8(9;(;q&;$7sEFW37$_J~Fg|7DEyN1)A0FK^ z9nrZ>oYc6Yn;+%wn@~G!cINhlPjZ28CLgG%5MoiVBFE}usQhDrKk8Nh}(t+pkQ2A3tvU z5nb$~U7#_zDy|1)lS&^2UTwJlHuUZO&tFst>-165hXpl2SEz-xFswepD1nx~X_6%j zz|q+G-)T5oC2CT=fTe#xa?d08bWOlGPJ#TYZfJdO(&QmQO7E~J|I#Kz2bFyubEW})b^@g?>_aG~@8{+Zf3boz~ z?_BgA91T%3NiPI$!$iG^SH0xE3gUF0;V3s87J-Iy6gUad^J?P1<>mf|Pqr(~ib*Ao z67Iuz&xZc|+`qm{v#|7nd>O^93boU)$6kLG&0FQLvs+V^ZW7ispob5-Hz)bcRX{Vl zaI`zeknqZi085tyy&%hu@R9DnBo#d<)nL!L+_I?OP%pkwyR+T7tP;LH{vNgr_&^g; zbjwWO3CADdCMlo~+Y_3~g=UGE=L%YE#9?7O9XpL<%O&?eOq1u#`8@GvahMj|JBlR?vaV7H(zzQ#0aPZ!go_uyz5t;!mJ7n2Nje-^7~O0)sOS|T;rXp;V6 z<%Xz+py?t>>Kv7+yh+(Pa+D=Jyn(i2!jip9YfJv(1&?%w58_`nk* zAdfTx1_-hXE<*n*J~bTWx=FQ75?0Cr&i#T>ZaBQc1D|gJ8&yhr=4IE)uOt~e3em#S zt0ZLOQQ-O`3lwztldU98u!I4K`7SiFZ##g#Svsi2ZQxS?suro6f4aOO$|BGk+G5}a zMUCTOYJ?`do5}#a?H^5x5-coyxM_jbez+glmlv@MypAE!BwW)i;GMOq^>l@e;?^ZC z&MS*0g7uH*JTa+iQ%N3Z)F_2ET%Qo%V*yH)uswXxBb*%qpp=J64LGWl8?wAU6yB*q zWB)#Ky3z*PpAbD2j@-#Np)QL1zk7Hz#5|unD#W0LK~&Oaj90s^GIymq(Jxso9mf@T zPUCq)Y4?Ir?g1Nh`Lwrfi)0~27_2um^3fy#H9-n^Dt}8csurqk=}N#DNbPAz`q6vH z$qtW)&@$983on{*G*XVb=^0?u4K}D{+C-Z_GO*3eck#C;HlM@=dHljfbub9Es9QTe z%m_6Mn+o`9$EJ9f?EmBcRmtewj@KgFf^{1eD_}($!SUHi{9oOp2}4#P*$?(l59iH6 zlLVfF$vnO@cxxcOvUDDWIt=djR4@tm#sI7h^{JqZwrw<(Bm*3BD&ce+RXUx=x#=5% z4xYRu_|0YU-}zDV;2}lBnZUQ)0GzNvyh*b!am7>=iki4jcQ1!*dO^A2(a2kvX+pcG zCyW4$x`+$uFE|!!;z<})0?>qH7ZlWoJfS9iH0&%Z zxEG9a1-Cl<2K*lO40638-lS}!2=CbLi8!2*)3BVuPL;5d9(O`3>=(Y}hPCT0x(A%^ ziuD~q&N)K%N9c=Ci;RmU8Mik;Uhf$UCeNPMD?EQO!EG7#2+cP0VM3)kLNk{i}J zUHjX*S(dMH9D5Hs)k2FBcIg3;Wb!&5fN$GUSsi!YnGLZ|2M@bzP)Ev&- z>2XV>7~5S&C!ay10BnPxX9Nw!&ImlLK1NW}fPTnNmT9~f{-P&D328bZlX~cYq6gGH zq1mDv7QJyy?yv#v%)`Nf;0c&Ps^t>uygieAY*L|q8hxBVzp+LanPZb;+GHV{CF>3C z#zpVuXz9ERcc}nu2aE2hN;C=8R0~K&(d+EYjuZNuLAd0S42joCoVQoR*G3H2HOWV= zI=i1?A5xT&+63{+cVSWw*EPh;Ty3gd>NA8WA*b#n?qC)Q8OPm;ois}7@J2WDok#$> zn|wM{<3t|*w?1I1TNHf&)esA#g!H44l)|M$ESfM2eUvZ?bVqE`Q&AVB2~iijoJC5+ z}}c(>1-JOzw+Vn5+wrdsSRsPsgQ0W@Xa8u-To9rc1y(hQK-B zhlf!ZrKKVhqzPO;X>ys+_tdPX6bvOOiyjd4^SdLALTQ#-H0Y2s5!=yqai!qbr5FE- zm;5?%?Kb~APpOv{>9(b!5Xc<1V^`P5@s?2hP$1b7@+y4VSXqmni1^L)q5`(>Yghn# z6vw^Uxmb6VBG9Uo9wJqOG_@=`THq)N-0@UFctnxvU-D}u{W7(n+#2gc87l>wG9c3} zluMWnC&;9h(^cPbK^4+zpGPs|A6psFr{V^kWK&WTu9xIpK=x2OcVMxeYFiMOB{}-$ z$H7!7Nmz+scB#<%lwVo|{5ndioqgg*ZrB&=N7L}4HC$JWDfy_W=pTqP%1;i|lE4GR zGCKK8%G2Ft*Yfa>9)K>4_N+?!EftFi7+o5?wyBdBMcL+mQW%BebzPN$voJCThKS~f z2c(SxeKY3bXxs5N*N2C19T2PH`efu34S|(-TIIA0=95n>1^DSaz@i5oK}rbgb-Y=) z8u-_-?+VKK#;`(C%h5>Jv@h`c7Sxqn@%6EUdj_B}YDlB!rxRdRc>=mtYkEUjYh@;TkP?6;fI3A%n{CCnQkcdVg*vykB$gqgZW}(?e;~w&zx@v#jTg}F z{$IJajZLd^edAM6Q0*o!dlTInvmKeNxkf zcEiPe(VB#DUfA2+o2#23US(Wxjs&uz)SXfv)DGcloY*FC9>{Df-J%$_YMZ^JEJ7E+ zW|Ky_;XpdhglY%!D>{NESVGK0k0>>D5Q>HlBh*a;raqh5;t^=60>I86aJpbsfuwRp zz;2n}+d^5c(ec-}ld{S~LQo8#P+Uw+vPC+nJHb9Z7(yurbVo$Dqa>GUPzzYmtrbEMLoff$IS8x{qt6air3*KveVLOPX~^7#^H>Mu)8;HVPw z1bI1y=_w_lnHiDdr?iG_8c)Uho}rylU7}CEz!7&BMTiOYCWtK2l(9eu))x*AcbOm6 zqR`>dHlc9qA!$PH+UT=@NhMqv^$%6_`g{K63g&-bf@m;rgsY;9A{ry+Z;}u>xr=uz zsPsCD9(95(5>IX0(QUin^gqCcdbmH_DrhtfHP=zDh@qpj1w!&--QJ97?y4&xB^4PU zO~5CTU_1L_Ua(Kc529&D8Nu12hEGYwgs_{U7?pxAhLhO4WL;?IemDJxxz{m{Ls~4P zWx1eM{+h$(SNWV}`cXB(COD1nCQp+-Q9l#MMQ?vvP`<$%oyB7tetYnDb<6EHt`8Xf z?V%GS$qExkJm)Qq^+mT-%rWj8^Gy%@!pk^7P0ngt;0HIDz>KrAdql2zG+pB(QI>UNI17qPZm0L z$3sEx{4+QR(E+&QqaQJoqu??s za7XlhjJ}W^Ortj*<%byti%ko}HUFW-wma!WJ`WC-mvwyBZkBV3gjd58D#8A$30#W! zNBDjiUt~%*UOABu9uh?K3o5u0&KB)UHUoTX<2KX($141}*^94erW-w*@T)9cLGLSz zseF|qHCL6NFJW8>YaYg~&6?g&7Td(0#EFrk4c%XSjKySi8e72~ba!SMI;|-7KFW}2 z2)}Ic6$j?kY{$%hYqQNJu?xwgIGfc6)IYvD9OXE9(A0cO9I(ZypFaIh5SoV2c1ESx zo9ah@P~5nZJgP3VLNh#a*N108QJPUtV+P9pvg6CO*l$<~7ox{7O&3XG4?y!EUX&qo z7#ExKb~7;xPF&` zPItJj#h$)bLgrQfZGDj}L=WuqH9AL?$mDNUyHt3tB#?C$DF2=JnGImR8UI$;>z6|DzmRCduTp!JK{g&!(SR;P_(#&qI z-*}a?E@{@!JMQlPa+UTRjnmf0YD0NvB5@|KJDJ&b-kEu4S*9;!Q}^2(>5r2-xLeBm zSSI!)^dOlFZ~sreL7B`BCmJy&wH%Ffd|PqKE76PXhE4D0UJ7$JFRJLeT;T@cXvfA5 zrekx7ve<5T=d#N8MXN!s#*1Obj?X8$n5B*{+pG@j;AuuE2QQK~S;=j#9cA_MYzK9Kz^@iqr;L|w>U*#@3PH<;z_O`%LQip+JQN5aM z(L&SB&V-MRsxMMLc~&)?eooC5P0C-l4MhFucebKTXk zERWqYp)XS4OIjrIf>{!?55KAsz=V&5q=okyRhr&emgy7MT)&Mmq#O-^bH^kloRq6R zAiqjqjA@-Xd3Nw?i`JD`u_c^vJmUey{fmn=@eH^({q4VY{hPHPuHTtWr9)%(94%G2 zrqG})NCAaS@pg95enHcPwvziIU3fH0GaISg!b!O%AnVwU+;7lv^tpLdJ0;O6I9U0}vHev*~Q^2rK(9Sw!AgKN?6VMKpn7q7L#c5NrY*c^##K{DD- zW8b{m&Xmy;ID~GmzQlXJQL*cTG2Dj}>P_nD*I%T=dAAf~yPYgM$`?;|5@RBxo{)xY z;>x~ajdQ)B9_IPbsOD3g8_eiU3fwaHtlP>syoXe`Z@~p31)g0(QG~CI$%W6|`-GLo z&c3yMNkJ-6NyllsW%}7Q)e?$MI$9ty{XTx_i`d3tj6%Wdqlro>p`8-FYd(;Gi~jGB^KG{MJ&e-DIFTnxb%q5*d)6wC`iq1>pFMo zQip*akwS-`a*#4TOTP7K>V#Y6>Q%5ew_Ol|J;&E$#N9;^3gvS}UKX1mNj3q6hyRHO zZ_eXKH*+c;cC8`N!O=W$?c!Fi=$ygmH)9uumG0qL8dn z8ApLO4Ji|jMzSrH?eVvji%RlIif%nbQZqqQ*)wv{Nk>ck1lW55Y7lkNsuOpX{B#m_lnKL#`1UYKC)uL1Qb)Zr zn&l;c2`h;!?A@(W*tpYl5=U^cPQ)VpDz-7AP_d_koEp$m=PfmvaI{6H!JP9%U1&Ef zy3D9yvInq-Ao*wrF|fy}QY694I~8M|?UWwk`2Y<)q!DA@oBWoNT8;+#Fjm_ppgE$F zMxo|Pd~JZp?Uka@j)PJp^gIK`n1W%grXECvUC1p7aXRDp0(M7kNQ~X1y$-5e<@0XiZq)*IyZ>V zn}Z=RmZL#CBlAb0u%}fJ{NNP|z~ri;7e_%*p`06(6HGEt#GO(f)TU5AHi+0mFd6+Q|g0yY9#a!rTTC>bfKU{+e}L8O3?)S2&Q?})|QIVAligUnDgXaC3%!Z z!%KJZU>hcjwfgDXg@k&t!*7Q)A$}~iXb`9NL}=obfBoUOiWNaiMbHpbKkCpt_gmtm z18-Z|P^9~x`m%Ny1rc4{umAGo-gwuic#QP}h$_^mptyiTGNrVs5@4wgSf!}y^3)o_ zlOS?lJqe5DBg^!OaYDA^$5c&&%mOfO#8Dh};m@?4tL-5s0j&5cl0(Ak?Yhq^w5R3_ zG-Jv?L-x?70X-E{9R)!VubmP+CswcjTOY@HDSn!GDL-g9oE_0yfpWNr9IYP)jtj?! zehWcube$ru9F!y!0{7#kdP59mI@=a!m4+aUUsfg{o2Zj)5$7cx=U`=Hcwm}JfN{~1 z2cd_ILRgKk09F=|U#gvOOH z*`l&iNBzNaGj?NE@jWR7vrIBdIU1oO!|G-b6N*wSq|kTVcI)5UN$pT$pOb9jqNCdB zh2u#$pmT%p%zpsy-yZ;FS&~`ib38N&U7BG6zKf1Y& zs*G)_IGhNmHGKN*`Y-&X;i^UO1}BWf+(}Q% zO(V?*+gAJXKa9JBAvAIqN;vex&nkP9B=+E8l~GD)qiTqRT4+(iK>4FG;?mJVHci$W z+Ko$QG?k!^dY+DwEP?^&4>fT+A)``|3F5{|(tvZHu#!f(;jl0tnb34`U&Q9gn#iS{ zhFkwKGlw4t7Ei;CIn75MjnQJ(j$+3dFj7kb=Kz13G==(l7SN&BB-Iv4;?a_ZEn>DJ zTBQ!7>@NIJlc1B#5}PiP#6BT&ITU1!MDk|>iaxP=CZHH`f;Xt_SFloUFFX9)GzCom=$$t=K1k?;e44dX>AvF>9)BlerPZW z<$&il`HYg*sb2YgLk;Fev>55;Z9-|efQh-ReLslB05nFdU%l}Yr0??H)+b=VXyUv8 z-{lvE|*Y`9b}`EF{Am;C;Hw8tg()EXk4;Cs#2A6~L4f_VI; zJw#JW(kKq5*mqv|cpO^@R+bm;B6UGOplVde_(Jk8X^a|D0x$tn59h1tN71w2{OGyB zlFX^drjYJY3yk?91UwjhvRF@;{XxxL5Sh0tqfv^69?ij*4b+dX4lnt#1!w|@dKJF< zMKafCvCSN86AJTBY%H3{Ee=k9A8}`s+b-p(wuq=J-%rK>$9IT@qQFbq;0V0bJX(c} zEycC@pCEW)sGXybj^E`*k?&jX1O=6p5{j}UO<2fRqsK&W-_s(D2Hi*cB26>_`F?p3 zCP!2dz6l`ub6nqxl-T8*lk%lXliK9d^>I`eMc6IR;@y6a zJw&<&jb=^^aw;`u$@Bv`8MDjQqkbM$z=JW%@K;j6k4c??mWe1!qg5w)nt$d*O1uER z-I-0K)4Q=B=G@crNV}XCU53ND%k@I^&FOfU>;ankA^jeWc4ZVw)iz-znN1w!hJ)$0 z*(JJ|pE=TEHi@?C@VZ`NE{x@WlvL6qL_)n~fTos3M++P!U^V%XI>A;NOY&B|1dP*S z7FllC^tY^)?za;-p8n_k^|)JCQkyCcn-mwm9y3W33~*FQEeUbxOxq`*6(G6+)DLM? zO_cykO~|Rg8Kb%Pnp{kwD=!9vuLBJ9Xd&i`;kiz#{Qf17F;cK+Pf|b+u@ElN?tkI| z<-68|Ru$T9n=p!#?LuKm?n@R$>gllwqNTK7Qf`Q%X>>A{H;jgaJ$kBbi`WWT19?XV z%uy|L6u@9ClG>Dn{s1&p5>`^SJNy&0(CS}^|5#str7s8ZQLeWa?S?g8f(fOP?AduV+GoSI1;`sDi|z+Jagolqu@0{RFg zI`Tn&6JtrfaKzW>iTC7D(qJ6PBehHz$h&s=+1BaH4nOR{*DJ&xqD6zeCXl~}PPBaz z781C!4>TP&JS_IL3)YxAnuN0c!ylnTXwm{SRRSz^(?ybK2}LIzE$}!U{0C*w@x_E+ zzVj;@=)bRYGz5H7aVox0Ws)wki8m^`m>r=S+_kCHeS#0#&E2;f8; z0VtZ1SnAOkczakrk*CvWE_8(^Ltt)S{$V7n{|t z6Uq(8%0IV6&K3Hy?X6LQLms1uBy~?{Dv5o9CPfc; z+wG+HBD2MuV!Bbtyl|WRnV^%*DIe=a9#tnuk|pGXa7Qb^{MBQNB+xpbu^dSgMj_$H zvcaQ1CZGyY7wrq1CZ7{fiKwTxWj{ZVpTY0GO=qCdgo-u*M&;V)y_RZ5;*5Uu+@M^+ zk_;3@umKR1ie-GUZrW9-Ww4w+!c>^pxP|z@a_#`z@^?1CFs{CA&?h~#`L1fK*$jZdN=!kSa zr&AI;0rdgdFbezB1kl^mrW1Ptmr0_+_(^RjnkOlsp56^hW4($QRJY z4sF9_ly3V30qtKc0n;TZpqcAM5UZvv(l(V>(knz$Wlx&WR02B}*J3u4PM6`OyiCAl zz=^uhZdi1gQGXh_JNsdNx}rbr(ZY{DAv*m_`PJCnWPN)Xbabhli-$_c2q+r5$j>fl z7`9(iCBQ;}J4&h+O&mWerJvXOi(C}$z zpMYv0tzDCS*yL_lES>%^_QMrs9#SO%l|eeel2!$bC7DMx!acQ2K$}FJG-r4@nRZ>S z`9r|7bd)-0*1R6m){Wt_@Hq z3-noFGzrCmBoadLP#-CyfW2D*mRi&a*0&*OLt2R_5HkvAT3?+J&+;N_wFyDjxDrN5 z9mr}AMh%hFJz)f7LemM7WD|-mJQ^9tQ_wgypod~)Ntug=lD-kU2e76GkC5VHyv%orugPyFFw= zCZXdb--f{T!g2udHYN}kZQJEMwVsa0v+)uq%q|rgQP0f*&w+9n%7VC!zo?V$6^bni z%JuFVVy5_+J+@9>RC2Hla^y`{x`p>VieyM`}ZU*n&_7q|LGgP%k!6M zf|ZHvCti;dGN8X5#rmRX9z5AFJ*$}Q$E{bR#8Ab^i;oH=L!oRU*MUVlBBrHlm zm()ziB3)B0p=46l=Y0o8)Q}QzROl!n!w79^(WGeaHFj}5BX$UTbgF!kJ|PP2wxuee z9d&{j3M6H*GCrcg}K04Y6&4OhT(fon##7bXqeDCm7^GNy}03%j+T7_bnX3 zXcvG>iD5KVCXA$(iRT~qED%W@0Zk`JlG&u9#0ld}=&9%yFXWmL{n@QjB797PM420J2|ViA#~e#h)Qz?ohpmUomrS>B(ldu_IVjgV|@`@A?w0J+H$@uoJVol zza(T2Z8{;d&P?i|Xah8;*y@Pr19VSlw&;dMohyPMvTkL%A&x@9<_ksc$^IW=LQxk( z!0><=3-fZ39Nj7erw@xp2__6VmD)qRHh}4{WB+1ArEwzU-g`?WZDqkk%+PXk|KA=bq2jiO%JRea-`lZd~kC2D|sW28Q zmI$>ZjpFb;no3Q=QNj&Q1RFaBg=M5r*IM`RVb)qTFt0z(RTl~8dNuF4!=Er z@e|Hb{7+3N9kO#gNJ>~US`6WdwTV8&7xz%8Fa=< zg%5AWuJ9C+V3ME{EXg-+Xa80qRTE;#l_A{)P4E7vRVCrv2-q5lwuiP%=&49B5B{OT z1@loi`&L)addcb0PnlDTI@ty}q)jc0js}c4O6oAsX*;w_NJ||hXchL=5UL?aZr0#O zk(P>rpv>ZkC#o&JV^JF4u>*2FYa0T-0S6glh10D_sOGlR(#T0PhjT6LgEr6z769$t~ zvV*?kluELY)S>~SEWn+ZQZaduCRmsL)5vl>W&LUY*Jo2J0X;tBr+1uW_i*uB8fcUdNo~4F68i*Q zRPKDVG;A|*SeO{A9ve&YXM&QNr4~&>>;5{ftLK0&Wswmw!E1H@+Ya269;AdfcNAf4 z!Xb@ibrVWjgWw9ilWp7%gRMIpg&Qsz`9#}8dukT4DDv{y>@A_1z!uY-TM!#3TeGA- zVbP}j`h=AfTNZ}I647u2LwQs z(d+TqmZ>tKPr{-kFVX~?0D1@_3w|Sv;_^h;rDL99D8G)kqH0A|pKWj4Z?y}tJ%D3H z)Png9sf5wQ5pQ|X zg|;v33$X>!oZarszAksPn~g~?f5PxuGv9WS`;N4xH?+l$DhR*rRDLXU++_GF3iSDD zM14pP(A3%&VY0zG@oI_u>e0Hrtjo=0MLR>LSL!E3QkyQ4#2$d!gl2)7Dl1z*2{YRy zK@p#hJIn+%vfc9#c!+Cu6OPUfK!QmE%P0=iY{H;!?7*oLuLIFPQt^J++; z_cFO0zGVyXOn^3>WT1clmEY{8!QEY^X;l`D#L*W;)A^vJY zCn-_LYER7+PRe+1s7Fb@T+ZP0V6eC6sx5a3lHgK3eK1Niny4h0Fv6 zb*-rqfObhb!6p?=#0H&aflSg#wrJJo-kW^LDU;7dqa>4_N43ssMSlw!C83$qjv$OJ z#ODg2p`%O~M(iPxY)>o{*il9-^W4o`536m1{xK%^0;D&WeE7J1=58WWC|t*uqhg zHNm7TWP53JvMsu&azJUuqOvgi{$Pye9~vTi!U$l($r!~?4LLLWkfw_Sczv>k_7^O-Ygh# zr_@L4AaMUn;!F^Y)HGEBEOkQBNk=1|x)XXxw%j%JkQNxz`rw&hMzO44V728||@vXwJLL(vuDC=-SOi|o=T4G@|lu;ycIA)W!y z)TT1gY+=!0o}wn|4UK$;Xez6IOO=-7BWJ<-nUL9;heIP!PtycT;4R$C+1Y;>T`srS zyG?(z3ASkAC^sCD-b3u%lRlD(qaH-xy;GvR$+8_=1 z*nUTp#Df%Lt-zB!La}WmD?!iHoEOXAekAuvm`N~CLep@*(tMJvEE;!SQ{oPa%+)P% zRG6ZCnnj{55)A+HpJ-}1xm$KVt*@as%Q;A&?fUm^P^}VUzuOtI4eq<>%*w=3?TR{j?Mq4ZGoxMmWnsg}^CC32Nt#_oJKqb$?)&N2;tqj z(B9QH(8VuK?X5Llosh0RNbM`taH6$bNgO1ro5`YLcV0#(SxFB49L*L+orB*Bkd&~6 zNNVj#3s8%wK{#|S9Km+!cxdfZjzgj%x8nA-gi#hY<|`ujlr6;QO=_w)?4%(US~Y=t zi&Mwr_!2*+oNj}#tymKb-~6kv{?!9 zbbwOxpg^;Z2IJfRYK+BrTJggka(>C%<6(^Gkh5*#Q9ZcF+l-i-(euieHt0)@!erjb z4?^+s)^+kR_KIMP6cqDxT=7mF4yaSN&L};-hLj0MBaMu#xh0Xzl313eD_||db|B7voVfKrTI|BO zQ<|m<;Z$l5VG}sfB@76LK7mO%zk)WKkimbs^6)XkOFt+`C2;3Jr>P~$QWLrs z5Z3m;#4oY_G}Qmf^>Xtus;2@p z6;)owdE*`GfYw7Kwdo>BoTX8pu#C{XL8D9;YB|RSwd^h^jm7hL3 zvFun=YMQ7Y(x^H?CRvg>aS46YgReOM`ulZmX6o=jxbj_;Q7F61E*+wX)wbbKS)o1{ zhxLGxIxGlVFR|H#Nc#AWQ8>3p`GT$Hi7U;Wz-`!2s zfSSrNCZj$`C&;3G;-aQEl*utRJD$F#H{5UBI6W?KkTHf7rS=dO=fEd`{71}EWFbm| zwb%`drs)$#6Yz0L*GZ!!&WQ|;N-pGvZi5W-LhK>oN8NteBH$_5=s*p^hr|Kd+{C^} z7mfnn4&mb^X$n_TV$+2-u`kMM@nZ*=Z@v$4VIPIA;gs>t?SGss+ZS>i(kPhEi)4*- z{m!gIhozmao7`B*wnF^W=qk-QK^NV4lp79P zrv2ce>9`M^&OqJv*J#O|dPu{ToUFvrsw`@{xZe;J)97N(8V$emfgPI)A$GTE&MnBA zCG`m?M^w@`e~6I0lDU5(vl?kn)Sfg5ReAu*6MF8Y@k)A!J`WM;teH(dbz+|sqc9K( zVvoMQ(R9q&=SwExu0?> z)Qlyb^BJ(P?-oC~UZ$xm$1&1BAW``ZrMKWF9)5MhtH#~w-B_AYb)nr5{1_VrLjq9h z=~57wRTRkcKS1C4hbj8Q9WAT|d?fV?WyyO&(?yba>LQE{O`mW}(L0bX5Fna)v_A;$~(oAi~HUWJj>ZIJZ zm&5EjmCzOyyM~+_0lU40Mzl_iwGOu#q+&)FTd+?6keRbCewD(*0-bdQ4*bGFoR4Qc z&W*n)gfCrEdjQ9YI09yAh3-=EYlvmg;<8N__lYQxxZk)LO#MDum)h?pCtdM1lHGZ~ z8+4ksjXQD?q~qW(zu!34-Y)ey${c^(u+c&F!1yL}kuKivrs+>7%jN|?{%Gv`MEjr^Fo-%X~DDd$&Zrp)DRY zGJX$9i@hmv6o>J&0WH!M@R5*H_n@At1njLqXbl==m0}c3<0;+azxgC`5|&!9HP$9u z(usVA5;6>0eVm%X*v_c6PmrdQZ&dDlv}s1U;V_sg6s0|TG}#C0VI={4*icbS_|B|R zO&b(f5`pnc31Sc7o{5-g7+u01G+2ng`EVRXLO2A(oZaO(?X;tWX(~x^q*!KUt#iS< z{a-&P*h8=6Bu%jQB4(2{a84#O=X_WQya~ea`0${H=#M>js9m2eI&d9qHhoRdMMC^G z+-3TSoVQ7WHoc)NwhIeh{{-McCuc8aE=dz|+|u)m77ob?MH9K2C1=L(GN}4-RRqQ- zVmTW0%_tO}h!bm1U=N7e&SYE&Nt{KRW@@MUnhDU465`NaY`Zc86sq4L(kE!r06a}X zH53~S5f@n(YvP%JeKT>)#1B_x*lN%bai^Rb&_g(t;k!8iXL1+Z0SjtdoIEU}!Cq?w zv%puA`shx0Wo9FBMc?tAT+>AE*Op25uXqQ3^+p_)!8rj{rNPgzQwbNa|GfkE8%3Q1^spBn_!O!ABKn-QJ6` zjeL(2o$ob3S?hz#7DNl#L$QH@no3YlRfi%KeFN(zP+Qt`Vh`|%0kHQZa_hsljlXdj zHa(@71!Dian8oLBxE96%_il&X5`3)gzUdDmH`njXKBv>WvG-5MqRZR=*q`7C_f z?9M+-S#>yIG$(=gQ-iNVQ>skZlU5;axoJL0gMHv_Q;X^iQH|z?X253^XqTR<04(T5 zve5HS-K(@oeFBqe&(rSn+ghaBGppFnl%w^KQ4(V4aF1uIB=B&u81qBd7il6_&c!2* zy%(_!vKC!tl;j&7C()NG$m%ndlOyMab=s5KB$Ok%Sc9=TgP3yEbIoQ)aIfb^9!+Y$ zq29UtbVs|{QPRYQz^e`l!WUP>Q9_0h+Eg^3KVJ4Gcz6bUq^BwYVw=Vh5Kjb1Wu+$m zVV3j^(bPSm=^~kEixNZY`F*rK*k7I8b82VE^a{OSL#i#;JDK&&^ z8#%K)1dg7702M*%zNW@59mA1Nks+FwdP`#$uRgU?CiF$j)`v>y9@%@1=cfo1jG(&kA!;hVjwMel*-Aq*Jj_L0FT3 z?JcRN?uk8tHHaEClQh*5N+uoB!dT%e)5*M+3_iQ0?g>3%1b9b@Xab^Byp zRvNvt-Aph~3yDWVVyp=Zjrf*O>^hU%q@I9&6EPj)2tX!bpVTZ+Lv2rJx<~@E(?|8b zEb_L&9H&vbr1lBAsNDHz(~J_x2FK1QO#^zW61{#8%bxq9 zQNY-P0g&K3>ky%$hk$L7PAG|~9Kkf_7Q~Z+#TGnO5_Ezk1*|USpni?!S|13=ejWXa zr~fHJ@8&w8Bd9>oEs*ULW*<-7cdub^|J7KgFXWQMc_yS;YEcrGtAEr%z#a%>JZDPE zRHYbXAfoZk(VTtmzx;*q<>6=uJ7Q%@Q%I-a;6%`Zq+>gzFmcpJNc!Kn7}K2Fq^^PN z2H8^g8x>8ikEEuP%o6*AoZ`nqvl$;{L`o*c$PV#<%HydX&r@Yw@bN!2M3((&Mi8|)t)Dwvv zfrUF$Mw3ua26&Ywh0#-8&8Q>NV_;AJLzz<%u-<{r&BX*!QTPyJF3vk$M?qv`*H*(w z!BPcOO_cx~GLz3gT>s?y|7DDN#m)b4Fmf;t$0#oNCC>!28x~z=EMz^zA_&d+QRDOx z^0=A0ARJPsmPJPcRz$z{Jz*50ZLS@G&HCbS9i0*DM34qVR%T?4tADO0(T zn)Fl+z)S%{>LtVfu$H~03Z+xfU4T;AW5ObC#`w^hDuCDFUHV--9KIGnuZsNfNT1+Y zfoz55YTI%5yWu1$3Ri@uhLnURJ?S_>#z^tb0=hs(acN(SX3$+IJ|$PBU?NxA^@ozU z|B3#o=xYGW!Iv-Twt+Td3S$()OBMhE5 z;|B$cJAVryck?sLewd=m{u9-fDL);XSzdoy9tBp)&*BC%s!NkC#LECQ)KUXF1Y2jm zq4l0{rc+6>MLKC$S!_1B>BOEix=zGGN}SWK{n&tCxzD&8NjG2lc279Bo3lGN{o%~+ z_SF4u``yGE+f+jK&;d2ZopLI*hlEAXiCmWwZ4q(w5J}w=GKc4GWHd$CCp8Py&`~A~ zBgR}^|F1KlMWcY%!16UsPB;gXBxVz1gYT?GtOgw+CDKQeQ`<7#0T0h~7#{pN^>}hP z%|9=L#hS)D#Ju=P)w#(7K|L05(dx3}oFu_epgyEf^S0@9+yK&?Nf@-`7RZ7xgkVKP zeiKAyw3k)njmoGYC14aPCv@%6%Vr!VIKJtEWPO5?9-|qls|l!m9ddd$?n4c2nqYwM zt6VWAmWT8Sm@1LEFA3>X3>gS39q;Z4EeiOI9?Isl3St;#EYMfCE!EEbhNGk*y^rF} z{L-Q=w2uPXC4`NUt`3l?_FL%w6(Xs7LeoW(cxqCgfToC<%W)x&034JSW-@9M_DRid zc;}*bbF^@oI!Z#e;EztSoB?d~Al&RhUZd4EJ`~lcYDA;e4x@!?e8s-&c zjJ}jtm(;E#&Qx#~<4TxlPWy||(_J;>+z8e*!2-H#eK4|Kd!}kgTOgnlu`^0&)MBT* zg^m^?Gr?Rxg2+mrE6e}$JX2*CL^qI{%9JLEFq{A3^q|xKI!Apxn%a5V(-V%us6`2* zqz-dx+C!vG7-ixrhe-gG$|V!bD$z)6SGYwYbySs!#_nLPnt-;5x~MF+pji-EZ+>$) z(Gwq9do-B0-z52Z4|87eiQAtOVqSk6EvWb$r8Z6K30HGO4n?rN3H*YRc(eo#Zr-e) zWTgD+`R@A7%*o_9f@{p`F5evZB+M!dwRYPk$Rt$uHB3_bOp1Bf6$ceiRf>g#j*>c% zg3pc+Lj`*r-f3W!2E{#!{7npeKk8^GQW2ztphrXv5|O=s7?!2QT&80NM}(cKRvD26xbTKDLb5yxyjrxP-X0nB&nFJ0gRL(jvml|*NO-1iPc4n@(yGR_n-!*Ou z9P;$dKYH8zeB1R(?5U$H8WxOJlYk6@sEEc`=y2|tq=XZKlRCg>u6}qLPig_ZnGw&@ zCY~DfDiDN=pG>jZc99i-i+9^CLEtDHua+|Q4?jr{2%;nt`0hj~hy?cuX z*ta&ubV_0W64}P@>S0I;@hX5!x3d$y#K(>b!HW3p7e!qOWJFo!57MeJ_!wybpjTee^JP1|18wW z+}BUbjDDO{{G>85=TA3|hBiSAql`u=w6=vrq0Tr8m6J9pLP06BEf%2F?t-0GwM4Uo zaz0daFNAf^ClDuhnK25S449e#S{#21k-JQ}&!HUUM6O3LRggyXCc z8|WKf=OwVQd7UEPZDIB=i);Aq6hS=Vm#u^p zN$s}jjg8FC5Mt`fWL-@yNtT*0ii4dU4U&cf@B4G=+HISFVniioyeqzq3TkXg6*s%0-b*;>n~c`OhR$nOB6p0aBeh$5;z|=`G7@Kc0A-gf*>k zl%6=9e%!k51b4@!lFsQfnMd79bY=LI_&sZ8kSv zqSHscIXC^^I$y&T`9cU+#zLCMZdIIb1h#uCqIm=Vvu<1hESE@HmYz%Yuzpe1KVss- zlm{3LOI?nycs}k^mAsV#gxi1^#?qjv-%aqFJ0Jcz0K24}RH{JbLQuJ4L zG^G53@1@&KxeQG7rsiITNB)t4qF`rKNtR`33f)siNUNV3ST@ux~*q8ZdC6)EGD7+yj~{%Z>)+=A-hoMjZvhO_#<_p4%vh&66U{|zf_X{+cOjpPMQWUPCgSWjuA z+(c1jrJ=AW`&7O;g`eD*qA6CW^B(Cvk(Kd<1G7GsCGBed65EBiT3#$fm2DJ=sX6hd8&Cr~*coN}i9MBhH16s+(Ujh`fIjbK z3Yt?_ZEVGRCXw1~Hj*WU^T3~ymp;|&W|HsO@gGVnj1uTcrSRqkyj>==S=Oat(z=-h zm}05YG{w%I%99$hTs$TTBfo8%f)P`jtrj|sg%dk3Es^+(^|DNFdQV2V`>@FR(U!4r z6zM6vW4{tj=cV9EM%7=L{mx3(;#f@oppblTKGCZwsZ(LcF`i{g5g_O%_^Z zls|)=^qzxi7UZsCcxOCB1+X5_WJ$AgPvi1LHl(C+v~*3)`s~!D1T=~HfsT^WEb4tG zP|dYov_9-HWffuKRPT6H{FFtSPKjgio{6Uof#-GVxq&#d!>m5Y7Wo&sTXKaId^*E&U)2~LH>5Y(eTH8>7Am!YO2 zU>8goFt)48C;+qRS_)jJx>b%Su2q=a$Rl+`_o^mRtDb zK1FN4yWSIS6Xx}icGR?{%Verq>Z!~2)ILSJ-d(ibQae^QmoV?S%v95^($tSEYkK!v zMLbEaw9Q06sMwA_?VL7T9%cm3K;e}ff#Uo&As$KwEWpmlb`NzEf-ShRn=%UFmpX18 z0Xqgo!H6Y!G>B~hHqUqV(N9#TNh%ws+fB9JvzXS=s%>fPo32Z_tFGK)j&YZmW=fX8 zFiK+sY-2!z8nk4|lB3G9c2k|MpY&00hJND;*ZV+U0RyWLJ~z&7iY1GN9db@RL-0%r zeGt!pBsUAg$dt{5{-;)5YRj4~?>Cj39}P+4=Rw1*K4|FYo5915SoPcn%r7jb$TYO3 zsx0MJUg=nVZt0whnc1?N?n~=qtfcAP<(Axg_oWwC!UI3kQEocey(NmK9E~ zmfTZ(l0F*e_4p2`If{o}w!kP;2I^a`|Kr3D%T)K~57~bF$`|?&B2xvbNl=qrdinrg zM|`Lf+38=+{&c;jRc%|wk?9KUjPk^x3)g4TrpUBy+3H|A&1m_fUn}YK(QFFm*FQ!l zQ*2t(RDMQdW<8B%v>bS4YxI1C{MlEBDb34q-orBm`yQC$=@NFsny5wrZ>0c{ie6R zdF-t;JMGswZ5a>1O!yim)4Se$l<>hVNyl{^6F)KBva5>r($AVl|G~*+n#wIXvs0-! zW-OAoZa+7*)Q8HR{xMrRs2@vCDLRdNnr^)1nX0tWBn2-~J+Vy!P1AaCkQfNW=3o-& zfo$Wyo_Ke?se~WkgYUkCKN%&^lS;v6pbgSze_0e_y5OGDr|7a0&gEIjC`(%oh9?Tx zVPJiHX?s$iTKh7cigmCOR^)pU>E}kV9!K@Rc~+vWGR(|MHKZqJ6_+KwLE9<7JP44-L^E?@nZre{~u1M)2n2%O6s@w(7<& z#q-7X%yjEXO|kbh3_%}d*)TY|URx3`7@p`~Y!7%(hz58-S<<9W8D(iR z_`tc-wQG|)MPXJ5j1SQuwtV_Wdg`^D9NFiihcum1(kz6h-1J?={jKe^_cFGiqa$yZ zr}^;PhHrAFJpxLeflO`GyUNXN`CX^KHEa}@xCF)%KhPODBZj(%KcqpgXZGD(4qk5I z+jtzfUIR5C$(>?>`p{)r$Q>w^L(z4qg`S#2b|-FL-Hg5I-W$Jv25JvzkmspPicULP z>bZsSN`*ekl)90|z=rUQ_^yZd+PEp!h z%F%dJg}FX|RF?C}Z>8;5odl_GKK3?hUZOEM?Bs_13uLdh?3!?N4V-{`l`duKy1Cl1;&K)Z{2` z50w9SuoFKyz?OE2xu8{iA1L&7xlB`<`FH~zeD44|Kavms@4o`0q%>Q`R+eSXZba&ZRe+EQx*0~6v!D-90T!#KK?`5rP>C?oGX@MCEj!Uu|r{D8Xh^iY`6S@#SA>qp+?LJU0qfBGu|6 zq$fFV&G#i>lqs6osS+3=MU$3NblTCVoa}WaY)gtQt+qwN&G51#HsH&5za*F4-wvog zyRP49D(yM#4Etu3np8^sZ52tw&8~DM&wwV=xRZ4TVcdxUC?Z~#`&*2W8Do8rSDj45 zoKkg}EiHQUqcP#|+ph#8tyF(!SHhAV5tq#rwUl!Uvt-X!8W7R~F>}{6z`@uFbcP%) zWE4ttXi^_6YU($!8dmA}YWhImVcMim(J(%ZuPhGEl@!#q@wz-MOYtlOImANjkN!uO z>;IQ*KR$@-H9Hh7!KMLoMrlz-1C9|W$&nQ;gh#9UQP^x00h(g4%^%laKmwzrG+V}& zn1v1c!)R5TLD3jn5JXu=uq_}YhJk3(LXMNdg?;Yc!|S4tsfTYl9hF5@84GD!AZkZ( z9F2UbIo?tof0e2q@AelDMLr%k1Ut4|>Ik(5G&w6qnKBG|dVFegm>?=6>R*D0S=?U- zXRR;_IGQx*Q#_i7B1NYZopvDgJ0OWrX#lx?E$OTZo^?px0R(d@>$yzYc;9(_%L*nn`_x zmE4rDPLR5A#&@?F&-$h(TC$12pWHh)=e~-aC6)QWp zU+Gwm6Z%RqxFHB*C$12pq)!eq0NshEL9>){G-{tRnoKiTeGtQvO(iuae#n`20{{Jo zqxje3*$#bqfB(i%(~pL(ez=v@`3(TcQKmI3tj6l7(tjnadKzFtC{jNNDYgxcF+9Be z=z9L)T~++nsdE=ZpCgsJF=E=TFVuG21fgl5gp5GB_)~2QNYJ}MG-ye|ijFBq?-2fA? zDG`gfSG*KSL*+|-a<$)ml;7E~%(4G2$5@%z-81n$1zHAhFg7VuFbGwr;r8F}Ofqd# z*mWd3qZ)|gRI5K^Q-Z@T759xV`ds-(JRUXo^j>+w?Q)rh=2R_ctY0mOeTvG?hIrzu zb(UcadcV7-s(e`9#b>!Fy%X$nJn;Va;p$IfNpWeqE7@(Ef__w8#OIWaEK_7*N zvs{`PH38c8gZX>;1K&`ca&BQfGtjN4u*lHJSD%ybkxen3I*Mz?VPJDKe@HcPqCu|x zE;YvOWiS?^S+c0xDALH>3+;`WcCn6#eq?;=PsB*mt73tA8es9x7#R;!?Pc$$lb5Qr?Pz{)~VWr;NP*R zbye~?ELDw;S>44$6&znveT?c4lvSkGhhr4RVPFezx-a>7u+!8;;nml}eS!QXx+*k?L(LL3B zmfzVh%SKf}GO!6Dnv|5L%T}S$PRA30Lp+u7VUnULHl-+aCz>XOa?KpXHUjep;UEn7 z{!x>gD|{3nmvw*3B%i71Y*rugZEcy|bS#g?=cf3Y_e|Fl?UX4! zjr#$eefX~S5C!W)-f7pZ1e2SqG3hEHd{W8e+`{-QLAT_dQXgrjru8YB#!Y(NAmVaS zKS_l=WwTMJSUeb?*_Rq!CAmY4Q3x&xb&yyf2$v_-s5{YAD5qYL+5<}FqMZ5G-Idtg zi~h=v##B$GRP9rASy?_xs3q$oty4ymkSnCwl(d|_%9jvmt+Fk4$g4{*YCaynygy`E zKuE6Y^bw-TbE9#shx3e@%HDLn>6&6En>jZG>>nuumVb*$Z_CW!$|!+7ILJtwCMCp@ z5Zp(FFb>93lY0ucNNN=KK-P5)jxuE!H73L$h(*cW4E)4w{E4`a7Leo~f)z%^q$#Ma z2%`jsQQBltx0m4?gaqEDlc+kS5ivG@lV{mTwJH0w`k2a2^gbYHY6{c;8Sg5pO8t&A2Nvr7@LQO zAYQ#4Dm!_y(h#d{kZ-AIPAQ!HsN0VvN14{_rfm5_5JXP!rHn=t4IYi+?*M|05*S8l zlSR|eZCwAqv~8orcVn#_mkWbu|FQk3<8d@b0ZzT}jdtH!kX-vsfE~*eV|y2#}k3&qaZd5V1e+Z>_X`Q zZw^s#G!#)On=t|^eG`|$$R;~c5u^itI8PZcK8*@|6r!0krrE6r6daqFOv6^=O2BFu z6ui+L+Wd_f|C0Sniac$kkK*?7(8QxJm}6rc%^>+28>b>KfVJ&-SKHv%XY=%&YE5N& zpN7r7vcakOpOR~G(=?m1tQ;+Ulx4%{_|r4=8o6%6ZKixaTj{w?=kwYVVn&YQY*Mgl>HG0eKYcShw$1YP*SMM?7!yOl zI)`;ebRAsD%VepAHV~_2mx^%pbts~pJ*ku~ZHlHvWnL@~zgNXL%EhlDj62bZ0bJ8_ z7$S4*j+P?AcC77u@j2cP5mP=q&1u;*3vharf^f&#z&gG+cJtSDuaU^d{DrTd7;)k??d zpPC4+UKrB+v3c;m4)u6{ZS^~4tM6=%JHbIoSyeivOyx0fPiDtFD1N8N5qwW-n1_`p z+$w+Wjc)0UV|Qsp*C5L|{<52L+^F@NkV#HHU6eR>Azj6Swg9h@=_YQ&vDUkcAVnT)h^3**V1 zZpl4`qtiwzN2i*l_7rZtJzu{rEi-9TY}zQUXoB1H5JN0Vu%CWBJ^e90SL6oadqyFO zSRX)V#OU!Pcy4kk&>6j-QvuBX+4B{+7mf|V+g&$@JW#EugP)tFDA*Xyf!F>aJ!u;a zQ-k5g^im)2YK^y?1B!^V$TGR~cp2f_;@wQ!B-YqR{L!yq{-}a@jp|S@8^uF=`Fy_r zc+2&F6U>7f;=>=bQLgy(hkPCNV{WK zD-M5l1VLoeu8c;oH9BJk*s5zQQXg(j5K)Yo`_DiB^f#fW)JIxR;mI+R(d6cK_kvbs zQ%R1rg7fKeOgR(1yWNr;@r@65qNd7D^uQ>PtA&_A(Kw9rp5B((P3aHD(US_nQAYbH z_~#*K+6l5t&dNucQjWq^(GV~VN>>O6ZcM%zMkUsH z2r7U#0((Hg@fI=$FobPhO04wU;A~KoIGVF)Me%OHOAOTwLE1>N7oHAjPv0|P#|fO$ zgM-92fJU_FaUm}>JpCYe>nQ{F7(dBTmJNe1IW@Vb_=bV@z|57zc|m1E7$q=_(k6?B zafRW^6;S|V3=}2zNeRgoqd1YUD2KJmD1^_hQv*gOf~)f=$$>f^ANo)PVcdxUFsWu> z(}0i$V4-1M0j{;Db}1yz#jZaQCDy(E=&rRdW^e zJ_=0@yoN)SA?%2i@j>t&TdKlZLO?7lEb2RB^y^BDW>X5wxHRocO2E57G-%0lUpC6! z$7<7;sp})6U=>1(f};jF7B3W1n%;C3_hlT7e%#u#oVG7*maZu*Va$tbdX87bs+v?* z?4Cf5(SKZgbAYGq7Hh7VHs>i;ik{HXEXjrM_MF>wWvF_y?C%~vhBy-5;MBtC?VL(j zKuEUj2vilqh(Ckp23imJun-N70y(5Ar3SJhk6U~*WD>)`G{t0^F0-jLpR+zk>5RyAt?_rlmKQo*vJa zv{7gp5GOBB=T#`Z%I>@h0?sF1EVzuuWuczQQE0IgcyLAXI&X?hGg=FbGG%zxpIYW> zE8>Bw2v3W*^{>RZSN+a857i&y0X^zN86~ijnPc1Vb!L8nce9coqKB}DE}maI!*^g*2pU@543Ztu<@pTH=PqQud_4+m;eY(T6^&}$%?v`hGj z!Z%vK^8<=Yz4J%j=CCg-NriL?^dvSF9FqfgiV|FdR3mL9%V5!{nv@VrLIzeDMaf)g z2VS~6@$J7MUa{eu8rmr7D8xu0Qyvf$b5R8GXy4lOqfkRcCsz}MKaU0uk6T2%B4$g3 zD|PH1s%-(x25+X3vp~(Id%!__l(I{6cCn@|V`q$Hl;kj2?b4>O=*9JwCe(S4VkIS8 z@hv(tIn(^y3-74i{bAkS3gItzU0Scl>r@GpltHmhU=WD+Z~piaM6UoEul_Q-o-9&L zVG$)@!JXvmLFyolC`z6ih^vQb28*~8^^qKurb!7gqnw(IzCFNY{Hti|=Vj++yTaZMf`@7^Gf0k(=M@1M%knWEV;Qnr3JhL zM1ygPST3IQ(FosEe^uM1UBII{Ods0*GU|7~yvTn1)%wTvp&oyR_yAAf6q{OxW2uq$4rfB)n9_iB3n@%iH;n?Ljl4{6mr`?+@E3;VYvyxP5u z!Z-|UR#5ekH?BG0ek^z~KFc6`2v;5b+$dO!OD(h~N1@pstdEdR@>0tE`j7AHxTgNq z1j`X$umRyMsd6-ADtmB%<5Uzp`1hIAnjZmQxw-Fl`pML_N;k+$9s*+6lFk7#v3*)! z=Bp)Lq53g{_^mrBY`{B6)R_A4@ID&BJ7AwL=^mi*ZEfRH{N3287rn(11xG^|%`T43 z#-5ZZJ#7@X<^_-DZ#DC0bf{KyIldBmu#;F$n4gQ?M&0=9gER4AbyEcKXb8nizO6BG z=TqwlqdqSde;nrk5%+-xmGP)od}*;dVlPlU9eKQW1 zC2in~{!lm`!vY%YKE12Zq#-C{A?@r*oDsuEq4{9}V?ivv?{m>QKRc1y4E2g2j7IE) zuYSk?SQ>>M9{w230+>&I7Ht=cA{b&(;y_Kcjo^Hp{typLy{$h#AUcM4@XB&v>bv@; zaSnunh@JF!m>{ynVVkEF0rgc8SX*9a6hQ!&cCc zmSy<$ch`S!Rb_-3$&qQz(mJGVN3m&`Fta3nuIEzRI02fGX!}1yl^~sO1J-D8UX;v#0mfs z0001Tb#rrRVQw#Pb#!obbS`vwbnKn&a)0Ht^^=T^3>4CF3EYk0?J^#y5 ztF1eIwG4;aZrLYVg?YZ4rnH?w+i`gnYLv&9&*Lr5OlrRIZ&XuB`*DxDn#fL6psh=N zBaaGP|GZq3xaEOS3{cC8)i*!;~8+VhID z4*e%@sBARKuj1!6uduT8{1&Am#NVPc%`<2vzTakXOgEl-ZU-1Eh0F#fcufbCIQ?n&11L(^({;Ol)|Vnq zPSV!SONoTMPH-ElaBfSSl}hV&-kCjE?ZKh6R1c<=zeSuvzc%imX^%VHBc&-`qh@f= zr7~P6ue*cH_v@%&L}(RCyiV>>=6@O@iID{;5fsi=Q=7;t#_d^j}ePH-kI{~ z3umhRPiqQJ?}#)ZkN1ld`p}Pb?Qf~(KSXhcSURG&yx~XD30sM02lO%g#9L#g5Yg0` z;*58+=M6sFve%~EPw*2J?(EehUGPJPKFA39($QY;bEAnalQBi(3%x=~b&Kmj^c!;4 zqs2V&D79+)`|^+1-418&dl~z7I*d1u)*~C`m1^8^eHtZ`v|r6zDpU64XVlmvQkn9f z7H&^?OZ(81OCePF6iQ;bDLR<8xEnEdE7Er+IE(py>`M8Ccb5*Dw|Z|HPj^&K^Wyw1 zdLVf&?(^2VWsB%Btk5&{?=igPta9fks^SVQC zspd_`wS6KQnL=AJXU|U4S)>qyDt_e$^ZYEMcye-A#yLU|z2vDq^t@?EeP*Dp^`AO! zv9pWw8uHonH(BV(b?+gy;Gd&CYem}PWt^MgJbW#2-~71dZF>$IzUR!w)_Sb3vwhR} z*^(E~O1<>;rqM#@5?o~}^@)rULc&iW9o7v&Eo>0m z)HlZ~dF9_Tzfk_2j>~4SonJOGf8lGC){yVgL5jBNx9`(f%CA(8YxI0pix{_|bcP(c zX}-&GCNaV^Ka;!k{AeY-n4My+Bk&<-tt5?4_1zA0BaOZrN$+jU8W4-h$`9y8FpI53 zQ_KUIMoYuk!)FqcB?c~{{ z`Jx-dF|B8KnXAK9_V`ND<~r|akD8h9_*tJ?=5a(mQSxj)s%se$@iRv8qx?=DRcZ zRA;IswJ|)qr#Ve!z8Kv66o=ZHPP*N+ROUleON3bNFhkbqa!C;*Mai3=QH>T==ru~) zR@bndRTV#(Lm3Y_-bNm+-k6KjOWUL8 zXq}BJym=3h14_aaVj*uE{~o5azm=M@SDaFnrdm=X{!DikFX39cA!nL1Pd|?6JT)b^ zM4`sj*^0*@vP4mha!U8tQT$3rDyR59Cu7U726#23a78u-H8R}=>5=wRRZse%DV}bz zIxqAXFVAH|UZahXuXvebMC)_JegCuaF7U#kq}(7W5q+_KB4YktHMY7w&UkdL*avlC z{t2nHJY#%M^%#>?ymUfDNu%=q?px`BcOJ>nH!tz%^`*7XVioFjl$4%#*U{+Rr}-N= zxoeI?gg2M<_0v@A@?H~B18%+X`jOIEHRV4NqLVlS+OKh z$Y_Q2{pNYo>ngd6(>=dXKIYXm>&e`JM`V=|mywFzLQn2HiNqG8yg|R?`B#jRuf`na zyM8z;WhTpKyw%yPF^b4wPS!=(i0Gfr(Nw+@gVsDkDqPh(#w(QDwFtS}GaJ9f9CbS_ z=fA}~@+q?@Mx+&THjjNBKcC6AINsIRjtY7IHAZE97?d$NKN%^cQ0tM5%KLJ>=bcSa zKPYKqo90_J1qL%%aE>+w*p#%#XPW0^c-cw{RxkTD@Q z$ev_G6;g~*e9vonGP@P?xAa$g9VHzu^sdp>SV{+c(wyb!tj+a2uT86x)}Q7uE-G-_m!ykT7Ld(A^?x>xNq@lEIOP@A+XMvlJ4BrJFiP;G(98Pn<66Jgzqqp3D_fMH^!KZ6JcjOkBcz!cWcFxnGJF{BT8T^8rR`ojVJtyz|jDW8a(Sf~%;*{GmP4o%R4ziN%U8 zMs5+^C9o&TX7x8(;06tOX3l%30^gS?IKR|gS<@%J-MYs zTi|js;B@|_Hi}Yiqvf`n`g==>jd^m{Ap^c3r{i&B8q=mT-q?Hkm|@?a#9OxW->q=Q z_tvsymH2$E<-43jy7+p#t>5%EQc#UME}h{%9o{!om@SDF??Q!hO;S}~iu#zU5jUs! zDY|7SC&agW3K>iB`&HO~%#%weGCN6C=)zwvg+J?Kq}G}u@^$Kx-p*;(?a_`CRjF!X zddE9yvApgjh~l5E+lDD`>>EY$U0+!{qA9&kS54%9L^}^?L3zY#sv_dX2}U(vrMFMa zkz9R48S}r$U4>Vj)TPqy^Ye+URsCK+juFFIr;X!WI6AvPh6F*Wl5*x zZo^UEDTLhrER{*k--NHJlwV7mOKqO)XYrrJsOqNtdRsp8oMp{pjX0i`13Kg-ZXu3Y z&l2ZZuQw+@iEgl^JfxU&#Agu6!#vF6%p)_7q;nXBS0_iD)9szahPljorfcQQV9s=h za_96wWsg5lZi-x=rURbt2XYUb1*G!5t*$-k@#*QZ4iTUz7MV zD#uCJ@%Ubpe1ijXYpp-Z{K0b9>W@ghXi9milHbHm_g#t~RHGhzeKD%5WlMi*irMBd zt*NX`4Cs59q7|iR>y3@@i%*tm8Gj6uC7PdjHN|^+J4xrbuVr2~r2J&0%{kDiPouw% z_Akgqtd{S!h8~e&8ndTc+=(OXo;UJYDx&kud37Bn@jBi6BjGffcqXsywH@>`>f2H| zYDxz?wt0EJz9v(D+q7@1zeTuMIZ^7{`Ygkg_FamqG2NHOd!UU>(Lq{C3o}iw+l8sc zS6jh3yf3D_TipF>1piw72zlFBdMsw*cb&#Ig@wcNRRtKn)RK5Hk zOiXj88quRqlZ`dweED6e{ZvnGn8-@Ni0q>4sVVQ%RQfJKe_Xg~nzpk|Ru8J={~xzp zqaO)MXsxNvWwyRBE#DoFJ|Vw)`mUZc5Osd4HHc%XN1Gwn?Vzblb*OtK=?do>xLSR@ z<<~H!5A8XUy&KbE+IJrE=DS0c3sf~(Im%7{6Ng z{}Ao>FkdfFTXM0+v!|!uTa|y4vKqoX>`}F+J}^Hr;PfsvB2Vc?>{yj4M2pzj_m=vc zDzI4L+q1q?EvwEOSKt~bA9uEHlN@KM4A*a56=z+F-nwO;c^87Z^{Upu#eMQc$jOCJ)+zC5yA9e412$yto4j_7YIi5|!I+#H?JK|ZT6TUC9fS3!5<0fVccW?-N0fN3 zp~`ZrTpQ&pq1jYZCYybVIiJei^@jDAp@Rc|=O5Uj>Tt9PJBlaEJg^{b^Zqjyn z<+&@;5HjjWk*3n~JaSZV%`{>JFrMkNG_J*$Ko5R-2lU+gMBeMOdOFJ}?$eS}rL+_= z`W;*TAP!%kz%%Pc`@@uQh5qYUeno zRYh^5(VB=J<-dK_Xtzs~?dNleT>FcuKNs1?3pFn~`C4rSV`-D88C-LTKEutqXy3y+ zNu0`_!4-3RLLFTRUP7&q`>GLX2|YxFo@jfSPpaIFeL*fzuh3eWcO>dIdwRy-M=j?4 z_!dQXbY85%JX9f%Sb+C+#1mgsKe|9QnI+f7D^U(z+~?m{(%HOd#&=_aWrmxgvY`&_S( z-(}LD(C#y?;)vGm$XjWYV@}4sVM&K9-xyCFPrqM0 zAIBT^+9+w1+VZ$^H`0G7r=$4AZ_8SKi8C_mw4V~cS^1`-@;+oCw9cyQj|bnF01vXw zGCD&_?gq=qDO|}^ByGW^CTqKEsKej7b%r;}TI$M}8AlpMY47Px$URC#j{(^dv|^)W z*7L^ht+YtbvYwKc~zFn^<`R|~c7=a1{}n>=k-$K9T?j({qj zv`dY%yGL%3*F0bI`a`|Sf1HQQl1AM_Wp+)#t#TaEt8Xex{ZSovQ%Byx@gqM>VedWJ z!#S4duVr4JC@FTHdJ>NJq6$6zl(2Mi>$z8Ax_53lr(iF1mqyFc_lnLrb}KCvs6hF2 zDnx3=N;c_qu8BR=5m^BCtxUd3xRM$%@R)h(|rw$J9&=Q&i-+7484bWdl? zmQ@^iEzM*58md2?-P1=crOTw7DeS$zNM<6*XhOa1s7X>cq^_gWsEX}GC^_<^c`n&@ z1vOA#M7^hhuDcl{9+k3^vbH#{^?c%eOsr%ax%sSbXGKnbqPr7iK39=>1{Al+%qP|z zb9yeZtf;3rT2n<2akSe)8t=UW4dyhtDEB5QM{yHJYa)8HTf6i0j+*HbibrpbH$#25 z2W66cf73P8=zIH9XNEX(RLEh9EIaeddu6mSlHD3xtEpgKm7zn$>o9Wq&{4*m zc$B5?cVrn2bxS2Z?7e=D^mn_9^*Hl4?q(5cv0tgiSl*7Gqi}p@@;`Ey7S=L(w$!r{ zz7$5^t=MzmTAHIJU+RYnIbqRx5JHPF$+e#QWeKez0S}?#yPng%Nrcit;x3MMdo7Bi z^u)}nejz@%wy*}~*RyNJSR?LJmf|_{u8r1=5spQjsw3|V_FYO89icS!-R9gnGw(}P zF8aCdqxgoF1Z05+dfpT2^CpMqqY%{({#-_yf*VxnRWg3ji$uyDyfgA zWR4HsM5$(K_inn-sV?E&qcG6K#-uhobWgv@mLCej>LB8eaWJLH!v zjl^+Z-TjdVq~kdh(gSaBjaTf02KB>k$5^6Vmoh)^aQSrlQRY;9KcPdL`gF2p8mHu+ z;K=&PSH`yEJVLC4Qp@#3-ItW^bvo|p)L}_;>QaS188tGTr8SQ2>O780oS&zAWFOIS zS4yDzG+cKDXK&3Ej+ayRLKU*~P(7V%j-%QF{en_PF9lUN*F3$E>~_?ZbA+l5R8MwI zz_(P$Loz(r1C_pukt*5hI_2pex#&C<&V}2{T(8KzlG}`tH8XjTFY!?oh-DaNp;Dh8Pqb#|7$`402jA-@2c;?iS|DYv>uJm<2s#lFxo+O*URv&C1 zGR7=X?N%f`-ihCj^VnQ8qVBUW;~qDq&Th|h;2JX9v8i378ZFy7w&vQ3IW8TRN=v%q zEQB&PCAX?0i5M3xCGF$&H|bH98Ua+pq zJ7uXWsFJ6dUagMwf_(nSyEx)Mj~ktOD~8fCl>+pE4bqVDXut0d!T;P?sDG8Pv- z?nf?HYBzb!ay3=Ch(E(9wbsnj>`_DqTOv7GaCF{ui>a)kMqQ|0&yBVx9a~X1fitjl zWLrsvVjIPR9@h*l4cN~GjgsAbp2qoIQgJ;zO{tw1a=EguQpRriTrl=n_NRX8vW%`u zIp8{`gLFK-XYY||DfKSTWwxp4^F6vbrNmYXD!W}+_hrpzjr2Im)v3=MM_K@Ksz`%= zZ==S+m0EV=h&veN<9V|!Yi?)Od8<{d6XvzuUdy>a%Y79UuUb01{t6!24s+W3kGOKh zr{?ZtVZBmc#;&hYrk2n~VY}<; zl$fIyShv2jZ+089?MD@#a6|PP>5yup?TTb-$-e$l#V4)5M3>3kj=Q{asI$Lp^SYkq zudha&g{Z5QbUKY&O=aG%r)hrNAv*7oE~xB$@0HO~81N7(CEP!vOpi6zB=y|gTyL6Y z9|L$A|7Gu76B@UnD7^K=6cRcu*$RaaQakc&L3c;(>Gjo-A5vuFFihJYpz|Hsj-Ps2 zl2O`DY2WJTlWA8TV)wS1vjKnyp&N!wF>^YnQX%>|4K;iBp$zu595PFQU&MR=iTKep z@>rbbJjcXipXW@{_hIPI_*zGTno@=LDQU9WGZ}lEbIO#Ub*3gU#a)+}>e69L!!2W$ z5!x=7GDo5D?H)sK<&vz9w}87p()PWjdg#$%47Tc{LZ6QnTvCHMS-MscLP1IA0V|l=%J=}U7d5xZ~4=hy= z{n(AQ{H8Pa_dWFNkG51(`G)o~V%zTaHt(b2gGa3)JVIYh43 zKHphlxsBg*E@(%^Isf;$<7Z0n%suw_j2=C*oAQ{0t?l!=$BtAz4=vuDgDLW*8g7v@ z-KdB31-UI|*J4V@cN`@DGIYv`DJnf}ggeebmnNj?wz2`~oj6nW-xmO6Oq%c-~K;4Pxg zd}?!M(&@#X`6aAEUq?5&*j=bA3t1MAImC00Q4neko0Jae!VcF9X##sd%N}`x>~Bns z>AdQ~C#IxqN$dFFPkCh{6H$)CI8D=d<2+AOp==tc$tgTJoyI-(lF)Dbnpxx>Q#4jO zB7o)8TY7xbOX75l9d%I6P~q2N&2wk-R0V1+#@e%d9k}Uw0KWGedv`<+Zyi$PB8^`- z#|}pH+f16=54|%;=t*a!*C{S_3E%p_t?Y^CT%$2f>NhT(782K_aeK{b1jp#%j ze*aEqLnuKpwXfqOw0=V-$ysGH-~B-cZ~gj&`3-t! zu`xxDO6y!`^$SiF)Gn`h%#2}==B(zI29%Da%DZ*6DLnhssIx|V$t$FfUx(1W{JZ&xl>$F=hSGEsv(JbB=Hw5UwY3cJ_ZlOxF|E<$0Pc zWT_%W_(eKXN{>O)D!G$Qyag&bOzO*&@@H(NoK4{ft<)fg*wv@XJ9_BJt6yfLM};@G zWWM2EK)?R8$4zfP`OaDy`~1o`$?D41zjSpMIu|%xCe%>dXepEo8Xe&gx%WXm#8(EP zmLxc@;u;QFc0r%niXCw?kEP1+_gHf_n8<08ti7>XP4VcCoYoXevSgGs`+IGznPk~S zdbhSlPQt5F=6P4PBpvo3A9`fIwOZ~;b$-8*u(jr^qTn|&o;Tcnsm6lj>RQ4ob7wy?o-Sb_kX7o z^S_WdThB~SHX#+JS1~_;gXf!bulGD%lis24pcnbHBNZLFM?8tYjJrIgErTFNEMzKn3TGZZh`T-Q1ykW_tV z#QT`3^?D@Zev9K|Lmm5(`$XTq?CMWr2T$_XbZ_CHt#ZI`yheSO&&zVRzuo^S&@M;* z`M<^MZmpbfk7ncD=Q2qS%pH54iRoyF=QrjDD2XHlw6-7s?K#hQy;s*$MUY zDUY>?^*lIyW1ZDc76#{Fp|8K9iocYPd>G>_P0Qm*VOfjUZ`zr@@5YBCA3RvIgoe+veEt+9UrwlbPY;q zehq-$k$P=~lrBYu>c!qv2j>kbNQP<>-;4DfvTRsyh`iI>pRPc=QiQAa&HZ$j>_AW)Z_ijmYKTDtdF`>~0X!>Ld zvyoEk@+8y4P-ox|bYZ^DSv+s0^?Tk-TbIPdzCKTUpE~m25`Ht~N;P)1-Ea-xJPYAc z_kW-F{pV4q&pO-XT+;uT0glSv`H=^-Cyf{iv>a+`hHslTw=Zd(I)rrXS0)GM!F0!|5Q_mq&Foqsx}aZJ>* zA=&vM1&urPB}KA}^b^-&4@gjHDEJC@lcZ{n?uR;GZc5wzLzXJJY?G$cTJ)J$mr&5H zY}e8Yw!1ft`hTR4)M2~;oo1evDz7 z8FJ}nxLw)Kpqj*X-*P94sn*aIGFK^Q=A`tb%FvF)c~F z?Lyic#eEUS9`~Fh22+FoE}VLH!AY1ziwH>G6hnT}MY#(TRI$*xba z*1aXq)xI`js&q^0^pp_r&$m zPMUDHelFu||BRkF9FfSS=vjG_zU*pRkwt~{BQ(DUd*SyN=o(6cz_;0UQBx1nYk0nAZVYm;y0vK(eQZA`LZTUXjaj(Jl) zhf+ViHbs0FQO>ug_$>lQ6b!iOvs7f+PwJh{w;FiAiu&hmNkrdENdIGRbe5hKdCNAl zrC#JbUe|M$*3_8VH!-0lc9|np-{}*}qT4`$b4eR%{24vfz_HwRJvc}`O4QL_g>q}i>N{VsVz(;UR+nvkpurG z?dyf)*4hI(6w;~F57sw?B$e!^Sw}x`CJ=ftCG^=lYT0U@P3Dr!4@lniIZY^Kli504 z%AMZhKYP2WXCZoCEu@B8Sj(k%r}HYs4kuIaj#uG#qG)CKpohU0WEhyzgviN=4;Y~LSLROm!Z-Ta>!xmO#DXk z!I0auk%UcGo_@ujf5v|}vGOj~*neY`LTx5b*)4bF+Z@OC6(#Px@-7!|A?v})A5p<+ z>2>24U7wBO^N#n^8FlJH+(!+yR3Fj4?vX2{YkCm=i8GJ(kMMhqzCjO!>u~B(W2B`? zYOF;{FO{G(9Fjcvv(Cn69u@b2+aLP!BwL-)M;?0a!_e*OJ@q`slS)r#1n%f!p^nhP z^DSHRv=3E|Jik4~tub`A=duAw#lF|(hj{c-aydf!wuZxf_?XX;v(tNxC3FtNjPo6- zQM?wFo40rKQ)sd_G+@wPjv@8;qAO{%qpRW=u6Tc7%_2JDf1q0KkTdof=O$i9dzfa3Pbr*sO8GO_q04-bEERuwyd`?LK4@bI z{4iFb#saDk;{MZ|(pYCNPH5h#g&cHkie5-{NqZ6%(%A&HVY`}RRwDvBy6zd>q<=xM%b4tIW5a>vS zXG2>b>6I#97ib+z!SVf9*PxQ$xV*lJ2=qQvu|`93zV5S?5a?;$oE+(MFQ!iDHm0$X z?UeE^)~w4V*VzAa4WE^f&Xp=Tl#y)h*Yx|eByF=G$sGy%6zTf9*0Ly>=Z|x_Dhpe_Xb=1w(NPP z)s^b=cuL6w^>QWmQwljQ>2sBDb^g-Wk%|=5zC2eTI@l(5JDo zvMDLt8GP$UYLfJTa}siQJ^v1MzOj-@71o$i{<%QAl;+)^UvfengLrO zqlJvWhTn{$*XiTTP}};b-IS&$yRl1W9ET%_wLEgW{aAWzKhNxUVy>EVV&7A-xIZ$nJAWR=F4uBEZ8z#8jBJc$*P}z38adxJl+7^IuQyIp za-BbLhmwLi=2iD@>4nZ`D3;}x@q8uUyenSzfR;I93$3ilK+Ll-@Ef zrBh4c9M0t=#d>#DpGL=nukzz*s7f5Z(Oa@Mo%k4n%d^!`p`??dv10z7UP8YL6WCF4 zzmoirp`CZ7T&j@&uci4$d5+U3J&wG?E3laBn5kI`z7@u`6MC;T z46>G*$c&Y(_6hGhrmbfx$#n2`@f|IDDqk1qb}Fq#`|FR;!F!_8Ii$*2cGvVUM1HlF zwiaYMUs?Nl8O=SynF=lOXU(gk-cZsXO!l?(#p35OF^&=G)jy za5W6^eEf{sH$8G+VV~yekYD`L&A$06TiIAWUauKgzdf=xO(}lyeH8a1PqInSkt%%W zyotPXysY)-AhB08y%d?!nLz$o)0KG0IX>09=-deYeAR2E%8_^T*a+95N65p```FF( zrWNj$0Y9uxn0EkQTsh$EnlHal;aV@HYw_9!OOFaydI?Ra2P&TTwH+v(#f0rcX*NPD zPtfl_THC!Wc^SZ(rnJkm5{}{1ViDq+0*Se5F??%~ZIXme7QH|6JwW7t=UD z3uwNQL(rEgg_I~q-hExpD_^g#aW$3^-k%NG*Exquc9H&u9*0wBL8_qmJ>3+y9Qi~~ zss!!x3MnXwN8Ts7v(W!hs_Z)%*=5dh=#zJ3D!xHaJEe-X@MZh~bu3lh&C|2h`;>~} z9gi3zUao1Lp=H{;pOI$iJrzrDJ^!&&-@0+*q-LzqYi&wlJD*8Gy;FI&mPSe@53zGw zJ)s=01^W`uA*2AMq0XbnF;2H}wI#4*jdcil)!I%fjAu)dyz*{Zm#Hp9squAMTQ3KW`RvDOFLrvR z%DZg*1-+;_I<)hh?YV5inbRKY^|Y2vO5;dUJPfVHi8)P)@-3-YeY0Qc9L)iA&Y&ay zaE|o*mKMTUQw>A3d{Cpc;qz#2=KI%(L^pTTcRL-aEFT3U9d=Z46M{ykdugX6n=G(<``r4ylB8cH>#P~Yq?DVt%a zU&;;imRS;Q25-oxht6opR%aPYF~@vxTQkG09cKu4OG9muEu*pO!adW!GS;x8Cp`+B zB?~d)1V=YyhIzisKuE$D8{d`rDDnok`-e;tUs>}UJj|<4f`=NE|Wh7Mr zwHEp}-izQ==>POJwWVz2Ia)Tel|F?e{5r{%Xsoj~BQKh_jyzm*Qd%(oXq|JY`ujDd zgSjje?4P-_4o~rv+ z1>Rg(d4+Kolu@iCNY~Pmc#Aql-`bbx%MRtO{ubnSsZbWs<+_ppdQzZtS6goby78=& z!EI%4TAn7BchLn~b0vk>VTwN$ZY2{`4)?mQj4f;YEqh<%N9P{+9;&tsOj#yg(piFD#m zUhBS7PI1fn|1opUqyICt7O&BKubkvgS-)o|n;dBmgya$kom3?bx07~*YS6-iyLRlz z9qJ5Ie(cF+;I*PX9Lu;FhW`1-EACBtFPH9jD#TTy=J`RHiD@X=yC31?L(Wz_MHb?j zqSj|S$7|?RXy3PE+48!Uhb#J`Pn`B;G*8>ObOdzpYEy7i8l^*jNyc_F9H-*#xhG52 zdje6iex*jac@fp7hoRO&Q?c@hyR3wQ`Ic#sjTKZ|A!FHaWYZJp`q zQ2Va>CZ;R;pmo|Dp}hJ9oRgMz{&6lPj+GYCsynp}%iR;(I_rPyL!v#(%tI-RrEmKl z-B@|ITyuotXuC+0&hf98hQ0~Pt)UWOjWVj~(okz_-jy!Tyk$%lO2syp4AQR_$PnAghJ?}5R65#5s8q;yAuAc>)A|OP&kK$%9SdeYsY4cr2lo4od-Es*f|%($);4} z>U80oh5B4l<1Wte8ajBFPMs~3$4<2t+A{Lgg$D}}GgNX9rE6n+Bg*xY`VG$^Nj9dL zX0AuWP`}AsN~5(K_NR&2yVMfg1{Hs0sOKx>xFptX>EJ6SWGa2~m|y4IUc8p!_`5|e zw)bOWN?g>($BuWm^AhK{kthGhwWajUH}Alrm}&{Ft+f9;iM=;QOCESP>!=Lw7h7+a zkau}rMyBaWHR0`o{w+Qty7Cm<7k$fuFm{60o)Ip`)OH5R3H@H6o9kNBq&b|@_71RQ zS=sdoXYUI+dpl-28Pe}ykq^tLC}zvwLTa^=Zm5|;-;P-uFY)ww$}i2C0nL+5tUL8; z-+x}6>V?$ynd#MB$5_8CW5l`+$jZ1`-7-D9l}k_i-`$X1tmRNfxOY|{&TAbzP0XD> z!uQWc=mnUg_zpm>kkV+GA_diq73OJ}&?gJI-BOKXFQcro+>o>j?c-u%TJqVBh1M>MxSXe79W5vC%9rJy z&GV4%knv1VBUeq6>Ro9Er`6 z=L-FUf1myx8xfF*WxhFz<2%gsk@Q1rUC+>4wCst>J8Es&OvUlNz#J!`TmFuPxJ%d2 zIP;M{&C#h4bs1{eCziXEhX0K2bYGwTV((njo3)`Jymgy2F?rI~TX7r5Ng?9fg3gZG z>ESREAXyNcq?aFw<{bpa26UGg+!uaF-Xm!}c%6+KBrnm^?O4lBy}Kc;7c z{>yniis>xuTP|P8vQKHG4SAL-xo?}M#9kM<({Es75hv%4_&c;7NX0%T#?Ytri*#)o zIoF^c2E}&BADE+r?_i8H)igb!Ii^`Egxo`Rc&fBi z^G!Wmono>loz6BShbu>}2fEX`#&=?=Hm66^XswR#U##_P+WJ0qj;!`E1hL_|LWR8Z zi*@MvPRD561?&hp=xHN*-r*JE$(!zTw_le$w2Y4xa@&a>t{{QTOpDI@~AVn#?1REk3?&ukL-z zaaHQ@$Xro8O;XJho~O^$@~~i!2e!lZqxoBE*)7!j;7D&I-Z@3Yx=Fdy6smTr`mjd% zNa`e6e0pt0J^B}ZZYiNQ?Vs(cd|yZIw54Tm&e~_p*0!ZC>SSM{o4oSfY}~d`z0W8& zqkeEji5ahny%bSPHBngYh9k!4yrOoRaekjuIzubqCeZG-n!N(*ppAK6Yfr@$u0swr zM&^z9@dNCrkqhN$Nn8>Y^0ZmP$iuAiZqUEy6w9n+ltrb!>a?r*Lgi0irM(MDsvCda zi*HD!s%#&W?7q3W_}@0tFFMlNyK5eDweQ8K$4nij<7qdqFis|*CZXL2G-rpZ^ID{y zSniIv4w+iZ+6g{lrp6-u>YoSgK3B;@ZaeBHS$(Jf{cq#YJB+TMC#33${hm{y?~qqW zP?F*rLXmpaupi-a?&*CT`qS-I&dI4n=*A(-@MVNHimAh^5xUErdD4)%>R36@a*GXZE!Jb=N!8| z*;Tw>8~Tp(A48{v=t@6O>Gr&*;>pqf zUaI*{#;mR_^ruoK)zrNf`ZjbhmO)3BZ$n%yEakDC2qXt?3G#zq{l!Au)#Y0DT>BKW za>gOb*wk_$S%_nq#*$)+$? zCDe>bZ$|Ign-=qM%^gs8aGM0ysb$l(J0jV&r0lh-p!gL(Y zI7C`RWk==Othn0xA0AoXifa3y??n4SW5V{N({T^MIlGKPjjoy19e&A(npx_kRwby( zpH0i2`&$f#s7pa3Rv*4=D3yg_YvFhDywkC4NX5R_nVE+Wf2!ms{qNuWJ63W)=}8^l zXV46FR_vm%*8lQzzyD)@4j24k{csI+#Mp=l~+m!Zh9Z{nmP)^=0*NF%A1YfYEZTahZPJ3fB(<;pj= z&@At!oj`Zrhw=&|VP*+OF?~P?Wp!SS0fjjOOGECP)phf6IP-x3~j zvlF$(CP_6PZ=#xU$Z|1Qb~@-B6PG-S)6m@ToBiyqq~AF7Jdyt#d53RzTOzk)GaR zD+qnar(4s!w%%c>>ET{a6E&_Ip74>=lI_i9df)}qJ7Khu#T&(A{rb^nPJYB|Id-o3XDv4YrF>*d?+Jsc$Ybs+S|ol$NIxLvQc z%$z=&9OsE^-kXDx4>fbc+p$zRPHC2c(@v=6E_vKnY#{}@U8Z#&Oo=1aEgY+><{dug zu@^aYOhY}G?mnfZN^Gf8+Pf{NKtK9Zj=cLACkW41l5|vP$k8?zQ8(IGXF%4WGp}`Y zCs}q8?e!eUp_VG9I3`OnYrG5{lT=;Rx>`Ev#Wyke(-m$*mV*(>GoPuELnOB0&L&*~ z{Ys5rg6}P$i(Z0>*Wr6-ogdfru$F*}J*mjrZelFEK<`lt=l4XLd#LekuCYIDX>E#U<}#KlcKDR1opSPBw6D%JWBVJuHt+D7+}aBrJ{LJBCbYdz zoc6lIqoRF!UhCWsGWQz4?dt2@$g`_Sc4W;xKAQz2N}4h^%{o4qZ22BZ`(u~5u~$sz zkn}0r#A!d1soBo7guNR%7cxsRp@;ckWbNe`GtW_H8l{P|A(wjS;UjVOQO41CQ(XKx z@1c#2S2pt6zRL~2dJ$!woM`2lzSt*J!&c798lq9Z$M)OkqgD=eli zWGXqV*MmZR@%aj0e3NC(`{>|_YLfh7@0q59Ym}x?OC3q04WUB=bSwHv2iO;1

    rX&RAsN#dG5dEobJlapO3T zV;lH7lKL>LD5GV9H6I}PE@s!T`7VSq>a{!37D|n0?oG&_lqSn}LwPcC%3?Wf7HX-# zszuua;~hn1j0d1G4fn6Tlqu8LwpLH>VlD>zE8BHfqCT56O0`eN@~jYHY3*V@N|?A1 zZ*4A$HZUvH9_7s5SY`2?@Fu>!;xSpJ)Wvh>12Z;GiL2#b-le!}Dz*JS$zGF9-G`J+ zj(mZUk^|k9QNJu-EPXl}^GIW|lyQU7r=?q_?H9c?3Uz|hJNr{8;Shx~FMM<-&&BhE zqjp`6Q$66lzPB18bZ5s6gnAF5yeb{s`#oRBI0HiYfyHGc@sZe*v6Zl57$pQMEs6fF zpFD3XWo4W|0zIM^cM2a$ne-2qA)%Y~vrKJ`5{{?U{}KQKn%g^pcx= zL(efn0*&jymQ3<}tl}#heT^xRHK+Aa%OLTQZM}zcJcO(xq2GctzEe(m!zA>#zUGdb z%5f1I7ei^Kp^PjbMeQSXA=1ts-*3b!^@|#;G$t5pagcnMULQ9sR$(QkQ~c29Jld>4 z?!$U~>F*(N83-u|rS`+tWK$C%MG1MC=swc83}jBB{S@~(jSlvw@$-H@FQ~iNclh(G zF48Y|_Qk$5XnWhBm2gNL-$^LSIO9!uO!aFd;^I5M`zbZaCgmYT2(_iNg$Oc*|COsvWb~MXW!YkC`3y5Egx;E+lS=e28^d ztNx-kDdi}+A_^rIPF+0_b3b(zwq~0ghXj5?%ShaHCLCYc&VKSVJJ3BdYBtne7dItw zk+6P~%VJz5hVPuS52II6rdKgrrj#&p-drN9+Kf$62?~cjDFS62I#Mi*X4= zLcQ0u-ywDpn{UGkjVar8QI}K5*5lMHNVGm|kyO&qZM}UH@~L(YpAhwT>pi7}cN6O? zg`n@I-Ie4kq)hDb*7}G3#vm)H>55<3H85y<{c~u!_tryj&%v8t$GAY)x6K71$9`_u zQh(;GD&_1t@EqSVkJ&5i6>wTyRXJjsDDn5a7|uAuXk$!b$~GlJ8TljpeRMIUNqY`w z)gR82m5}<#jHi6%ql^6%Q4K#Z4TJdN|>Q zv479<=fLkuTA3e-xsy40<>U#3nlBat6h+IJIAy?%gTs*>R(ZBR0;P9oBtt< z_puA7e0JK~g2UphNyyP3LG-O!;e_bhmapw^pE*|TILD&>?jr#0UtVAF@2)V;@w)a0 z{ToH`jfAb$j^Am4J0omZ^`SQHF^s&1m^<-b86_CL*Qb)WCHtfPY#2EutZqtqc89jK zqpppLhF}rShUEpH#y`h7)*tcK!DZI53%HpQ^*moS!206P_2zV0e~5sMW$NWS8k>@C|d2`OsTCD~84Q%U$E?)53VL=KJ9n}0EEb*w%t zEtc-k-U4TvQmZtsnK3$37Pm|pPYGKcs}D=dNJ%#+GZs+V3!#J)GArRsLRh@#H1AJe zSpA9eT;f~*%@<4zJ<21L{s^`vn@~W?Kz0ZR5d!rB#QvzBJjCWym%X zdJ$+`5-G`ks?EA5EM~Q{FY?6ueLty+ROvOe@S1ZM~;4 z3GHJli2QE3Wk?Z1AEj)m&v<{W;IdJkFO^Ld)>;R;7`8bU6O?%j!=8q1FiDpp`NNZ> z#NO(==k&iu*_l)Lpu+Rw?>n_V#lSG zTHJ-kL>S=a><&@lE_W>by#m4j(>X4qu8!4*r_NW>)++le#fOI&XYO1X<0bL=^XQEr zoR-^&#B`;-Ro2(Xg>6{JS1f6BG<|hkll%MrQI1k7N;e`ox;vC+Gzg=S7~M!SI4Yn> z35+h0k{sO|hwko{(K%`i81dctyneqw_s?F>vuDr!zT&>GJ7Thdy%MC67Q_^7akXMb z>gp9tr3{&88!mrI*a1=-u3F9bu&&5tW;0;nZzNz{enq%2%6j8?cAmxI#XMT~mN!04 zzVld;C;Z|zFBbx7P_t6gp;B9ZQI=abNX=o;>{G(6^Xg@9M)nKolhD$zi&uC?!!|1q z)eSd){55ammQJPlZk<8r(v=)#YKzjAG8IF__aPnPV-QEqjdYS@;h-;vKP+#mM)#DP zrSvl{5wW6QF8}a32yk-`I-*~D32w4fCwp!7@7p`l(C}qUCFON1?H%t1guQ^Y^eC1jQ+Y92c*;gvZd9Yu+||tOhX2ZR>6UAsVY#$XW*3Evq!}ayzmxCX zA!YAnu0Kn*3YSE(9;@@PgEV`!yRicZD{b5TG7^gmq$zc;;3%^zlbdEIdF`cT2a=Xk zqbfWG-mHG&PmvP_-+Ckm76_V@mY5)arG)0!*9#2aU6n~BS+_+lLmTjB+gS`=Cjx`V zJokl4qWQUvQEG;HW~;}w~Tp3^4U7Ha!r_D~1fB%z?Cgv1uSu%OEIkz@Ta zGBY8XWqHK@7+rd)JIh2`&D`L`)rpAxmZY+|sUsJ?$J*a=A-xf2%yu+t1K|#b<=uY^ zZpgr7tN>nUB1y;kt-`a5@6$)Je6nB3OgIPnUcj$@gYBB0U!K0j4W;`&hr`ahmDM%pvmTemWS0Y(c|#_~ z=9jG9?rPlYb9>#AZO1sF9$hmw(0gCJ0G4vyDY8lbyFNo-to&S$UF9!`-=KbO+luSO ziqBx1^K@9gz|&e&^K4StCyb62o2PYI>FtRee;Ec4=`vFFnYAVF(LhV9hGqfxFHEa7 zN6=aK`0ZYnNdmstb1e-VXcmmEiWA@5T8&nz0y2Zfjh4q9zhlNv+^1-efFtHA_v$;? zd~urg_+DQFWj_qqOjq|yN*egtLYYXR|4apTC{dCWIBXIH5WaB%OOl^X*a+1$<(QmP zWhM)Po8gL6^YbC@%@1Og@d1XmJHAmJUhX6){b!5S(L{?uJU(tP6m5$6+v^zE&jiWUiPkXCe9m{O z)y{pYquwPa7I^Z)&}bKcqnyL0=JaemO4hMb=QvW}Io%VrOfDt8tx#_5Ry`tS{b_on z+Ehr?ZVYpY3IorcEeo8jd75hj13Pka`VJ+Xk|n)VZCUeUF2Xae3|Jx(*K|uDbVp{t zQeDYN37iO`UF`Fhrp>LtxClPqeCmXT&)r<*z&S0GcAU!k+{QEGJ^EH)qR*Snn;*_y ztQim5Kl)a*b4)djdwi}f;o(3Tu4{6@da{xk4HlVT@RqS@C73*18-5xT;(=T+IP#Z{ zTiocJUkE>36hWNOXFr$_w{}8bNv+2q+B#*jxPpuNFl^zd=G?1zY*w^LI4GiRn)DklFja-9O~2Foq|+3$L*Asg}W6=qTMwNAxm z@6UwV{KQM|>$2ltbr-lqdtCr;1lKV5*F}PwXHnM7#oqlc$|w3jm0}zL%0$?YgLDqM zy!O*(zVFmsnB+4Y>=gAK!p`!FlYN%g@@=JHa74WMfb($5Dj+wXlnUmFD4N^rsb~q( z&XIbu7GrA34MVZ4!EdCVZk8I{Zy~Ph!;TsKc^!Uod4xJR8(a)+l|@aA8ZgH!lSRq{ zqYJTWOHJu1_PQxlw@!g2nLCrtjhHB^)z~hQeAx;W3#Efrh07K_Ozi9&z~fhgAcvKK zR#w~l(VY2$qr0g2!=3F?xz@sKL56lm7(OCMo1j*K`j(==P(KtU7*^PQt6);2bNzP^ z?3KPemRGt8AgEHZq;Yf&3_LPeh6|0}Hp%YPDExt$Sd~F#V3}SO?M1ioE|(82Dnn6A z=;Qh{E8OiQz7J0I*-Kjx2mLtH2i{UFa@|q;FJV_r)nl3Z)j8c9wxJD5jhYK^bq3Nh z*mFMLq-Ji|HhO+d@(9$Qc<4~mm5!tX|Vx!yGMJVe;I0U|MAD*ADI>?g(;p3us;#S)ZnRlSwdRXi9s2{Ry(*&!yy_VGw91Ew|bahF%X+<2eLtj~k9oQC*awgXu$xdvX zux-CH5zYfg?m?JQp80jU7~xl5lH7vtmim?UZEY*o)+MLTi?_P@&Rch;?L{!RU-xse zkrnb2tie6K6-wVpgWRbdrdV4PO}~FYr@zv+9+u%tPcNI*B%p%^@whS)`k16Q*46PT zZZ6%&y6H++bU zEDHmE&W6x6V#rb$L)M?^2TDbV&2wSqfaY*YrjWVWl3uMvf9fq0r;^+pq{_B$aK$vT z9u$f_Fj=QhPNR=UxdzZ+9q#F!mgzSJS2-B#e^7T^b0L2&C!fao+l(djxX%A!gfnCr zp!3}9f@xY5)j_NG!ODwGp+J|l34qMa94D&IYtR5;>EhHJ5F_3EW$H*`{V`fXwA4x8 zCG1C?T)_2?(vsEFnz;Wb7EE+;Ai$)l2{D+SVEa0YAFH7RX6dJTK!ik2mwMQT>l~-y zmnJJ>&?Z7FhN-lw$F94FX~d6oK)M?naeMi!4caB-uH#Iws~cy^}l)D1*~$@R{OGAZ8M5_BP%Q-MH)w)2GGA{ z$+fL1Mghk!a#Y)-g!Z#e(vJr(Jo13q2d>5r&%p7Cy2$i`1F4*6(RRp{rFa*6BOrz_!c?@YO& z!>$Q)K&-vg3w|>gG)yss{Z6)!0qWS)QT_PE%EuBFuT{>WIU`n-55{I5W|SIup@Bsa=3%H#?IUnUG@8q~Dbi7V7m-QfFZST@6-^D2Bl zTXJPdGoOPo8IauRGe3N)ZgCJz^Ep}0?1oN@7{^Wt)N z|DH-c-|B!r1pe3JWKBCvVMTGT*g?XGDJ3OAO1$I?aD!#Se|39=+&^y^$bq0$q5lcx zEhbl8sh49Hl(t8{dqF6?Ug*%+=586)x=~J4GTBtfwC}Ub?NLAs2DP7AnyUN25G_fI z$eFq2tCU5*oY9`5;kQJU??m52Acc3wf@ehFNvByj|G_Gw2TKPyZTOpMvY3UabE|g{ z!`9J*nk^~212=cE>=%Pd=o!zGXsjogX ziT%uLET{;!{vu5>MRqcw#q0N37Bp%wEr2NX!?nO#n?K!8RboDjCH#FFUirV96gs2p zHAt)qelzs)yG_3^88EBp9e1!Z1D7AK0%i5=y;cBNF#0YTS*<6}>}8OOHKzR^*YW~W zlC;9s*;?2$mp_v;CmO(AOL~4&ewR08A8w&5|A0aLDyb0GykKI9%B(t;zUs>it>!2v_}VtnSY`@+L7bx;kp=}?QRJJ{6!6-&FGrX zT1&rTj0vosv&8@0Of*CG<&p8<+Pxn-Zh?gX!wO^w6YlVm-Hi`8WjA-a3A+_c(L zNT4EWE*c+BRRA4D(6^kgbb)_s!hR`nMysobz*rPk9X`g??bfb1>$SYjDBZc+h!axz z$3gx)yIiGHKXASIQR{EEqqk9^MZ;1rC;tM{Tgz~CggIJET%SSD7R(>AbrqWMXNMB2 zgv>EtO}p_G%6QA49cmEzu1&O0N$$0yQ<*|<@;%3%{)BDCm8VC9^ zX$ul}>I2xC>)s2q@Sv87VkHs9BqKyezqiK7QqMV{2hP!syd->zzc25V)^^xmq@Kf1 zpG$X?)LJs2?2dZ4T0!QVAvwKtWr-^5BNn^*4~IS(RcS%{1P5?RzZ*&xBGF+z%NU>8g?9kieI-hn218?nb&$h`D6yh4?;v04_m zQ}gl-2E#OWKU`!D&P2?Tmi8Ret+!8Y0E%@!*G+##p8?I1D3E0`U!h_dmxhMge|<6F zf9<8S8GNel-HPQDD|lpho$7Q?hlh0iNUZo=j7jgwB3-wfN$EuQBNR&zrgzQn=J)aXSOjq{Wyk;WD;~ z%*8e*JUWB2Lhs=pAtb`T=V|SE9}TMj@{6+6{W3q2U*^#GtP3p4SYy?^L!8n-)Jdcl zek>;WqUr21dhsfNefZ)fE*+Aq!hJwu+^MYCv{pX^NM8#``L5HG+qP+_KUL;6!X>D2 z!E*loF{b4*TL>@z<2(6UtrBvh(U`l&^c;1~9b8(1hV9%MWCy}`B^#T%q-nDz-fR4< zA{Kfmv5Qvl!2ki^loX>{3?BTCgBf;4-wSvVIB zT3|c8NE@xI-@gQGmDP7S4=~EXc;fnw*usLeft}g8UPCc;ks6V6kT|EdJlL8z1V84(y5Ol|8zmAHs2e-=X0ik(+)mvJ4S{b6ddmLd~_LWIj;%;d*sLE80AS*xD{0#?cWb$mwjI=|WPj6EC*_Zc7R z8d3T)AF78}eJ99E{=|z102A}%+NSo_@$6;?Y?RoXt6E|P=K6@x= zhUQKpIr%RbV!K!VM$lS@o6ZfVSIhLo7Lco2VV#h{7aGwUqZFB?OVwh@jwM#`aNS>t z4MC<%IUBWH;l7)&?%+P5)hkzUWq7oE}@f>iVMB(Hk0m((*G@E@90xeInax* zroO4+w%x8m3o4{tMG$|Turlh`pgw{c^s5FepU>dT2t1Rg`a+U}Vux+H9o*eC5yJdq zGOH`vVIs(4dZwQv9@}|GkQN1`;pAf3R{g%BMn*t#Hi;$J{5*cPPsf9=KE9sDxnTT1 zMF?8+(+Yf6$9Ix4Ce6iKP!uc`|AdT~&;SA)T?sLy~*2mA`Vtb19b>a*w2x$|DZ zPULnJ7}PEzA*$-C@OOz$mr>v0O8HU;KpjYY+_{X)NzSR!E_K$7(sgD=?WaZos>2VX zPJC&`a#K(_vm-t?93ry{vi|N17s$U^!C=-y?XTOOJ>~AoOpt1Y7i%V|uYe0LjiU3W znGAEvGk?|H3G`_XcQ3G{8$+mDVtICSm$njvZSAcYk_5E+2wm(|1`meXOEW>f!|R4& z{0AOJysKI&?^OUfNuNEj5Ye!n{rc&+Kwk`31#M|g@(zWG>S<~3mJ!I_>}i~Ql`m^O ztIE7}uJ=s#PPcIMp6mHB0jt$3riEEK_*~-q7PHnw|9?6`s(S$InAo4Z5w%+MuTS%M z*bimAZ7wO0+fHEiSpgrmd|Dh@jS|eFj-9p`BP-QkeC&7sy2 z-KG*@3oIq+>Sno-g$D9ZxcZKJg*05buRmh z94iFw5J+XIQy2s<9)n4G0Y^fNX{OZ8mAGN@!cypY4qfnFlEA+kvz*wBn#tqvh6S?! zKp5N7p^s48pJLoX_z(v5%j^t~06|y(;T0YCxBH1SzIr8ID9DH4hJzy3Yq|2!8 zDCi&hz~@nbCBa<6;KJ7#zp`o%oFGz+jl%Km{&+jd@mH1dkBYA!*U1kwCbX9Mn9X5A z7&n}aJ;EOQ=UG9X;e(CH2Y(-3@x3|ytZPs9K&uY1>ouM}E8bCTqF(ve*dv?=4}iB& z3oG|BK@dU4TKTcJ|Cpi^j#}7ierx^4xmr<=;^C2e;Q_m&yX&P`--VcM}vth8a|edTY++c|wh?(*F4 z>5HtY{O(LsNa44t*fzOxg}D4fU$QfJkwV*E#+&72vD8e#(@g#$0zeyY7yNe<0h>(K zp~0-rz@E>z>aD3pg#0dasr-kT%AN;{Ozof?c+Bajw%6w|@Xyn=C6n+92aU7#)FoxN zHN;Oe)SI@D*~h=WHE~+=cI6E24xGmniu6USkPSLIF<+c??$+jQX6xPzk9$ zVhqn@X7WcbotrpoUk2=~>xTMWKig`g4EK>FJKuz=jSlR`8>1x~(xXQ5GKHXEQ}Moy z%DNu2e$;>!qA&1`An{)74U=zS1bGB{c*jN5-H1261l8BZU<6@pwQIc>`r*skgeUCo z#$rv6&z8)*Ngs2=d7+pV98DUrh!-5kdcxH5KPe-7P#KLcaJ6hmXElS!#W%1`!Vefe0yt$5v;RubtPYC$?ns z;w{1At6$O@pg8hlNnJ>B1JV4kK}^5->b*AU*L){t%*-_dwuX6^4VvYVJt(Kpr3nG#gs02c2E={ZvpH7Z*-Cpe$2eQ1*yXeSvJe9 zcZ0JXP%P-(6c}0Xut9{@a$1!%-!ngtIXkXzvJcBx!`_d+!`kuV$B0o-rrKHc*yF>i zB*4GG%r^^+2Wlrwlu1>y(O34Yn}3yWu{X@dj~Qmjea3yu2`;R*mLKx5fYM_|DK%l5R~Se=j5Xc4;!Ci} zv7A512j;qkUkI--50`(4)|TrGPTZoB}Y*`te9M* z(E)??O!7~cYkt@_&XPg9Q}@Pv*6n>9H#ft*dKVzhM{)Mpe%aTm?6MS*e8*5bH)1@$ zFBg(Ad)i6cQpjC*1hqbVoDYdS;-;vY_4}mY)yLmzNz3ogEd>n6e zVqi?68gqKS9{#jfZlv1-IGrmyQic4i)pD{$?5eM>_UacpC>I7-yxGe(mYqXB>6PSr zss8CsTxwW_HG-B%m~VWM%L4jRgZealg0VwWEz+||cO3Sq2a1DBUD^8ZO^I%GUtA)? zrXm5#xj(ppjnAy@1ne1*sjPG0(w=lVPwITlhhLssmWFc0UUCKlkKnW^=`OSFAG(LC zVac1S`r^l5Un->4`Gyewv-rHwV(db2vPmYdY~18rpw@d&MVYmiliT0rTbBr;KLBgBHVOX%)j#!T?*pkL-ir|h$~tdWOo(+2u|So$jTg+J~@|9&vpmSM@QhMV}^izWDSq zDCtz3FK!2#KjY}jQ*`#^O4*6wuO;QsQI`!^rZ=E6l~#3%JiB{AExi*LLru&b=~i_W z$uN7d_|&bMoJp8JCpdRw6W~P1u>$o5=5m&QGmiBm(z@iQ)u!$6eSb`0PFIJ!)PM*9 zjQ5v=`3i=Anp09qiyKxu(kzTUI9@APbR_eRvN(ZMDak1FDVRB`J)FJ5DkblvS)FHE z7ok3C{1KfufzeY5y+dn@Zw|Y2A~hxbRVn(w{%j%FrWR5(EfPj3oV4X!j%{`*dL|dDzFLkir)r8E&?{l<9J+U7`MaqI26xTfq$YBqBkKF8;=C3mr@ zUl4VIjnL51cSfIE2ftfq)}-hwgo2_awF^54==}^P&))XqMNbh3v+z{~FsDL$c_-54 zU>jbHSBX)C?`S%&-|Y*@_56zXoZ#H)u8@}Wh1d8{{EJ}UKiMnEiz^_jFg;?btKJAw zg~t=dy}t9Qi#oLsa4$ZiL;b#m8zQ+thW&7M!%4Ce^fIEjs*V(9q{+)~;xS5;7cOj- z1n|Lkyc?pp{r+CE-6p0C1c+5xP+FgsWWJF(SQ(stFd{L{maGc%+q&?x;4CD+NpNP~ z+2N0yX)RF$}Qr@VU9B90gH*j{k8iwpo!nv`QCTqg6J59{BZAz}l{&CO+1GlChPN`8KX&!jN;v zkq}(eH*R=0loA=A$YVFex*DYHfzbfLCM@_qA6I`+)}N9}KR$jI#vd36Tu zAcZpvFIy&gpt(uK=YmizX&OxG{g!gyzN?c{cxX~HOY!d<_3}f(A7ECryRjh8wK}zR z!K0Y9`XEM!t?o^=v#A(oYeBG?#pJxpuvWQ2%oqMRPVV%Vd}`*xw&7*(r@ru46LFKq zttxi>GW^WzJQG}_QIi^KFI0{xV!i+~J0G>jF;VYCbzLVnZy(6Fr;UbNSmCXyP*NEa z>)lZ+G>AL^f(3#+$Dx)>@-Fmr03`VXc`HM+}l7U z>Z`yRS%buO4*RVDP(Z|eZxprH_;3Cei3|COzgCG%E(Jet>NN6*xek+JeU8X^vVbKo z2mC_cK+S?L8!GyWyS#*llw^eRO$ z^D5n345}*A0~i$gc0RAPVD)(>uBw$|-WtQjiDdO*GBt@V0@hm?E#rzO*8EH|?lxn6 z=afljAMj7#f)t0|${(oWR*GOK8-_R7mcj{CvY6X4fAWfSCMv6Ig{X^J{{z*`(tz5g z6_IchPy@$!0AAiASm;VYw?dll&>&(oKjb3al=DIhWq`p5##xuI(M2>v%b)l@L7>T5 z!75rVxfpnCn`A0Za|~j0k4su)!Gw+jjlnaMj^+bS=M(y|Hwl57ome9K1L6>_u~U0| z4f}5D#qt~Oqb!5HrTpjh;OJD>IqchQ&3=6Fv9?iE-sa$2ru1GYftx66v+^i_PNCBb z-}_UOgYm0~@zD-%2=TczZ9uEdFjTUVWbo45`ss6cJWIcPQ%X!Imj`=He3pXQ(_+*n z`NQA5ABv7cNB9w!oxm==eDS{v!}9B9oWa<`XXV$Sb^BR|Y)cuX%_8IM@2Fc9cTN87 z-N8v6OKQk+o(1u!Qza`?K)x_Rp>p$V>?)GO&#C#dPPzf@`;NX(RDC(it%1iOuImlA z-{}-|?vEk9oxh_uH-hifD}r>yggvWF+(v)k3Jg0ddp+O?0BtOahUjY?qYenxPR%IB z4pzAJ_3tIUcT}Yg+D_9Xr!L(Hn9V#BnX&W9QTee*_4CSMuHQE}W7tv9fCxSZg z(m6|pqwkN`pcv|9A5At*vbjEZgoho-z*C9W`qq>fW)xfu$P25;qIf~gjS{%zvBMo= zq~cd%q#N;piSr6-9BIKqqfu_MPp}WN73DB2*L;yx&S}s-3M^T`%eK;(aoP4D=qY6S`cZ`wltcjn5!7FAdiPb( zyGauhdNg8k&C7H-{LI2q&12;CG$Zx(-^@qWY<<7C%o`5Ifb(;}>$kR+GmaYU1+QW* z29}%EWth>&X~8LzzeFl=?z#RX=CujsHv@+kSk$o}Ib7P2EhgGOrRDscX=VPn^>~#Lnb&$t>5D7h!;y6pW<#OKQu#qxFG99u3PXs!98$-fx-#HnmFe+-1z#|TebMRj}@k>5=RQ9dD z#4t>-pgnneht_w3^FWwwR6Tu$aoN0AeU2{8-HPpIU!l+I|aUM;4XGRp*mVI)7LrB+0j{qcO1$z;B5a(T?H?4=M1fzu4w% zkAAzZQIc+8W8H20r{|o$3o%uS!);Ht5u>mS|MclEXlncI+&Rim9vw#qx#mfU6Nl*s z@UgGTLw@FYF$l5i5=uTMldR-JJ_XNu^zb~>i@bW*3K~$B4QF{VO+#t4DLUsc@$h-( z?4wCPTy&==){dU87|Bwz7w$D+kYq*Eh2#D()8NYLTl-omE(Oz5~tor3~JYf_a5E4sBJ%LEj-OnjWk3J6fuNTfQRYcagxn@>(I%2RUq1q3!iG_ z9>F~hjTmS4F^ZAC+hWd#VNOwt-%iZ0DRo`xuMlw=&k&KFT8 z*a03ld!@fsu=6xYc?!32#j|gQag=-wra3FI7)yIHlb+*aEi~V`fB}}Bp{(JPEJrK7 z+ZjFS)Wo*k3u<0y9u820%YSyHIRFm@Yb5-8vA2#hG?^)XPnwb*Zp+Q>t$vLGOPR&Z zq4|tnxk#I;raJLfD>)4R10jum^|&Bak&TIGtvO3BTTVdaJk@6Ro8$yLk z3}S>GFmR9Fal2Hk2;$7g%E%SJNTLG>pgcfw`gH8xcA&-`MHK&xzxY6c zF^?h!$rd+lr;o2$adLY_zG^{4zbjYfJ&pBhuSsaugC~-W^(|d=x;1{Z2ua(xT|n!)V6iEZgc-YrzCOBRg8j zCEQEf?Wz(Lw!vdz>|~5&!yql(e5EbFS-&-6+gHh|R%%9*6|3lL*n1fzqIQp1S+#B8 z8Pcn}5ezh7Y85VY0`1(iF3sG#tL>H_X|H9istZSby=5)?043&QL6xGC!p_47ziNA* zZJAm`H`Z}i{ouCbAlZB|`q-~cW}ReAJ$iWK5c+31zKFc?3NCe-BlPmDx=)wKP#nqW zq?!FkB*XpHwg+~NA8U@X0u9Z1U`@Fc8uKYq|188>ntXuG-HO3!COAZ{2zKB$_Rh#)5q-?Z!EN^j z6$#OPSYEygl5ZbOt!t@AOU(@-PZ9Up&H!~{?>e&~8B!lAHZ4a@JX`YqmOo1fP|Zl> zv1pT1YzROD_1q?^#xu+VUPY}3)+gq1x0)OOWpwahFI~jnI=1n_&AjpAx<>36xfifg z+Adrb=uaGoYkfLKxwx**%-@9YoBjB+x0I71bRJ+W_bStcrctalS-p~Yj+fn7@Mtc^ zriY#F!*C%Zr{L!8q|pts?rTkZcF$t)pYu<+ude!DZ?bfz!QyzlzMhcg@B@miz2v2q3D=hbbm z8HEAgu%S$7EY$2ti<@K@DdXGMBtMe)bP*4+oJAp|1ILiD_=YIrqrwx3yy5^J$KUx|Ow1YSn4|Js(04Ak(;zxI+#4FFOhW(02-RZ^ zGZzL$GbGJdG}x|P9vEdbxu26*8LgMjb%*8G=YG2zsO%1F<*2-m+buRiljX68f!eyf zk{0Z@yjUvl?q)%M4NUD0GVvbU7yl7PpPCzM2Plu+RPWu! zIe;#`zl`{L_%v0vtH@i_83Ri#Hk?uO`}+ZH#1=F9Yu}jN66R|c1=+CPRpOPRu3mXo z+~FKSTs9--Nv+6zN|>UvM*%ro%DpdtwYgrLH8k8Dv5|YP&{h|QUVVVcAB8c?&NNqo z8%N($g?Kxdvxb_L?Hfa5@fU}`D0MIxVFYU3 zxqNJ{WaM1;h751XkDaf6n)a~i!;p{JLj$c7)X_`CeH`MiLY$h{l<8=}%OBS}qf19* zle3r9+L&;5Up;sjU@lWZa&>aJc*7$3>~w4a5+pBoLT6SkVOyQ5J--_If$9+cyl>SY z$Ab$xK(xQZ!*Sm~PCVr?SIj9e~_0bo0#cmSf~JIc(%sWA|Nk+=eD#|zWe7Nu`X zr_)5-gVB;eHnxRaXM@RbHz21qo<(wk(BLw}%ZL)S5OIbv>S2l0&vM>oxhRwq5-ML-XUV)(OX^VO8V3YwwjEWgQ>nq}jGiqCMJJK&r&fv2 zuj2Iwe(Iews!&-N!qvshonBwR1v*9tMTa!YM$%;0QE~Y*TGdLsY6W^5&l9qjAofF;)l?ytQYI>u*6`dGrD*&#OM%UJ{CZidscx%qWZ-qymM**hOZsDe=dc5yzpWS=$@mC8r+e?h%(c z2WFhvaxkpflOSyM7g!13DaFKlo%xGe59n#oMV2(f;beJWdg*Fl)~r3C;iM^@P`3(A?w zt6v^|D}9XO;M27)P8RNre5q)yY_hhnN3BE5CYq?i^f)4gDWywUiU_Bj4w}=VNsIk^ z#BDi|QdKE(?c)jnNNAXSOdy$=ipp}Vew%mJz$U|YWg>2t3tc3Ui=d&3Te#3?(w5(b zTRg6Mn%{x|zbHG+vKjgl2~Q(mQGJU{_gJEBVe`vp`XS+=H=j5_t+1Fdypcf&7VtqZ zeD7@Z{V*KVH7TR|AjI2hzkZi#SZlqdhE%R-`gW%UM!Pu*{<^!XXr#*_4I`H(RW_r~ zKeX?`zAgEr4-!JJZ(^Htl4m%@sq{_V!02Pn&^UVeBz>9qvK@BBw0*wrPE1Xp_MUHs zSFBtlh>!i!-H*VHhDLOrb4hJubAI(caO6TKOZ$5eB)GDO{Nm=u+<{foIkS~jygc;U z->`G{qObix?u8^~(Q)OZ;$Ddl47};wQevr#N}!7IZxr&g;096Evrjd?Y?x$Ja6JDB zd9Np47-Pmz(c>9Zu03=CA5HHTC4-bU^IvA}MUM_N-dnyrKrM5{O+F?@c~nWaVer{N zVKB@+<#fZ_Z6b|3)~#Ln?{GV5`Hn0%`@K;*%5_(8A#8jf0Mah@t=mtmpA~j;Ck(Xf zyw?Gn`s@zAes#=5W%AhwDkK;F}Lo`fp55*|u~ZV;O?+j>q0Z@c_l8%}pSFrA4@VR&UmksvzI zq zGxroL+UYrO0ywBx|J1PGOw#u{Hws%P=8XdqPI{@(8Q%6TJ)2#kR0~l|V=mzT7`FBn z$=mL9T?+j%(>8}$oBg)3Y@m>HEIp5P7d7!Hkbh}%9zWcDk-;2%dcQ+*()nUp|=_~EO_V%F^$|~b$(3Z-viN5MUW%b>S*Y-Zv zQU`TAhyVE`u5|OowqANFt64+4MjYfY0MW2m;DL8n`-*@XA~ zkQZicLc!YmT_wtqut<{7IIlRs*9^p`n%AgnJ`g*Ybpdilry~FOjrEa_AF&f``s#eK zeSKJM(WQIFm|)o{082v{}bDrNfT9UdCF2>74hcft?D`NG^R%^9( zt!~@up%#78o75HDUO)tRNVTk4H<9lQ)NPHs)k;(qE&bkW4~(aqKl5E(bNTI z5iizzX0Et9!>RD~JIPOzDjg|y1|+YQ3EZBPcQ=o4N=61NIH=mzTqGjLO8M-D#I_!Z z$x(oqgLB?CbzDP_E^rTK zSP2AfCmn3p7#A3_#JrIE377M+7;-=5D@OQ5C$&7rdetGn&v@&We>LVdTK*~aV zyZ(I#DZ6^YoECeRKSIx(fD9-jvbyyQuS_7PX7NyTHoa|dzTcUOY4RRS1KkZn zRXlgN`@66a3c1xZjSFJ(k%!w35Vfj(7K+gKjytpTi^(V^LO+g}v~xuG4B((k0q1ER zjlnt&sR z$YBWRSt09`sR{z~x^QQ{Ar>kzJNZ^!FCJK~^z>r^x9z+mgryyW0_ zPeGo07%qs!9-RZ&ljqb}R-sM$A$fQ9qVQY2VDBe%E!9SZCpdy~tmN6O(+Gnm|xgDYGqw{FFAChF)Wh0O^n@h&E6rxEplR`iYPP| zXs*i3ha2H8ESnSz&wpSikqe5AO8Tz^%8Ay+{7q#&+LNXtB!dlZ7+_YrTd3+0%%L=W zX2DSFA1VbJ=qUdotuTg{DQxYoJD*{qi5IvfQZ>BM`pHtrx?q=(5P2A*3|7&;zp94^A2g~z3fuvC|vxCK5z}Jq?sqnr@$XOoBP~Ms7vd&myes0 zwxr#87i2XTDDPn@4X64E*=ngEb8lJPhZ?tY;S*Y2F1C!;DQCMyQ5^T zwnkh=dS@f0Vh}%&24bgdP>s45J${&|H03O;4E7cLo`MIXC{CENWP!#=I4&h8>7@4! z7~DooxidMLf2aVJ3cHuq{h(|3pU3{m+x;!_a5=Kp-^wZLSs_(vorH7FLw930mTE1t zUNRQ-G?v!of>REjj``AH^n>D?W~Ou$zankQU2sBEtisK+?<8BjH?X`OJ>NWwbgQy_ z_lxdi+{L!h!7n|Dq%rTU-|tbNGBC1y>1UxrgGggu7Ph(MM6=RyRp9j6!w=Z81UR(R zQA!gX&-_)Amm$;W>HpOIr7Ua#f4FX!1bDkyWyo#jy15lfW%%`EQZaHE55S%kV*6La z3<-1l(avO`sY4$?xHC236;mFl&zu^WLIeM62-neSi)?f-H#%b^g$+m0HV z;&D3RZ`q++q$09DekW$jXC9*JgYejyZ$QhoGP+W4@KLDYl8wRN8=cWR`9oGNs|DI) zB_yVsddv-+6~)o;+)&`i`$1qM=M(V{-BX-B+~F@4XE{Dhvk??B-JlJ>+>e?YMrAH3 ze(42$Y*X3QT;B^l6A5P__Ur_oFyjf`%Vw69z|`qUgGnL}dz2NZYi88&_QQbbHnkyRy27)6m#>X z+Te;)wIhw&OAujBk4=fTT)r!B?EeN_?QlwN$$`>#~Q z*4>ea7ig-nZ{f-Q-CJ>XknZv-{Ulc9G`=L~a1F4XdOL{cuXfF(vor^ zcnas~^y38UVpY`aEk_fte_r>`XZ0G@(rMwZ}A_=0S`2V1vnUOV2oU%D7(M4(p_L=~mFA6qQ8y0Fd~`0RCT=S9lvgP>Mc7x*v!nyfYdQrv=> z7e`=de#P(QIbSWL83TwrNVJ zdSfuWk8n(|2%OetvuM~{u#gTkt35WKzg0pi`_o^vl>6$|txhMEuH|Y@uSd;PuL+{4 z3IFQvX+A*kydt3%bM*A1ID2wB5l8lmFY_cc=y9xAYYf^;K_WgQJ^D}frJun=7i)ox z<)~WH@vV9w$z7CBaP7EX+M(3)-6!7B(K~n0i2G?T%?Hd_dd-dbO5iV6=>#Grrf@#B zL8E8Z+Dyka5TgP$_c;@MDyl(=(PFEf+21!`Atc-^O`y}07#=Pq-lM%h`MLu5IJ%1b z-FozIqNa^q3*$TnmztBhy&%s_5gzO zD}v^O;!UinLN(NBrzxz>QW>g4p~h4AW4H)2>(WJPIq>AEBGan67%W2a<4CPYegaqm zv?>0b%dy@)7=W!NzL{PAeFN{3wF=sE@^a)xd%Y)(3VbQP6$bC;u~gi#9^ifouzFP* z_W^TOF?_S#En~ATr-f&}2r@;=x~p50gbOcD5yza5?}X|jtd{;H{T%QTJXcVgTnLUm zTP&XoyO}{Be}dI^FuIbtrURENXuXNKkDTX9-^e!3?MJ%5iudDJrrnJHW2oeD^biCG zgv>0T=Mkd4=(3u!v;%{$RQyHuy+Yf^oTDW@=W=CLVa|&U2YY?>dW~AUIt~)`NwRRU z+1=h%Otd>ROYEJD7MMrWIcAF}r_#>ce)LL@#Dlma$cs=}~79b4$hYDx!({ z?Xh-fyfN*a1_D_DQFWH&p#Emt3(U)66N7%Ta9!M~-5BN^Vs_C^oMt;y)j@uv6*5hZ z_M}eTZdYAoFm>l!Z`n>=r_Z?|m_K@{H?t5Pc-h4)%8nyH6R14mrY&WuPHNc^{bTZJ z97{ft{DpY2DSTHr;qr}4>yx9FkcgbK3<;0A{e({F?lQ79JIqDTA|2j$HDz&1?);$K z;Ww90!*PxIvJbgw^zu&mW>Hhtn~tECyhBj=j&YHrWbVGs53hm-I9LT%dpOtA2Yn#b zJ<&bL@7x?=+v2UYB@uTS0qp z)a0kv`z2)A$({2^%?xtBM~1?MHZR(#>Dsi_cI6VD!>bp<>0UG{p*CVWA4gx3IQ5@h z4?M54ejwGvvH51(glfg%d#_(i4Cey0c`b`d1Go3L)c@*;4 zI^w3mq>y%vW&>?&}AyyOrU0I)VrnTkn= z-ExBuT;(-I#vE z{1Xox`{{&Ti{q#h#*?}A`Hh})W-{l+rC?AZE7RB3R&J7-ABswmVLaq*$mjo{$*g?X|8_oN zvxB?1N&Bj~Y@_;&v!^?awISP~tIO)RhE*jx)3V&*+q`*z1EyS%YNc<8d`N&RznY9E zZsJ84oi8!foRazg$A_~K(a~%M7Nn*Cz^DhxJkLK$7UE0RYxclZ*m#}WB^$I?Z)S8L zR(NKhG2PIzC$CT5RA?IiqKfaai9S-s`G~kdq*t?-!s~%fXkb;M%(aEp_+fL7`R;Tr z29vP7@r`=sMV?tznsPu2vU=TYcrP_qO3a#)<{H21JavJp`1bD}&KuyyRm*}QWLA9Bt{kaQt60f<{wC^*HrRlDpSf6gkpMK}hYwEf z9wgX9JJ^X6wCy&9l#vCqRCUxKoEwPPH_y4a$>%z8B0Y;chq(b(f!_<-uO)r>4JAV z&`!H4aI{qCaiEl04~4^i(Xy%N;j*i+%>v1dLYiugZ<1(N*lrTsGfBUk&T*~dlwdQ+-HXARS zFAgCy<_5|HkXr&ij6Z^>>L3q0!nk`1k>VgkPUybd+}&19$*P!UC1v_qFj)SU=og1e zKC!i4EW#A_`(E(!aIp!tqFF#H6LwSc-L-7lu2d=b`tWQPd0GgqF~KM4jzR2oR_F8z zOy%xoHj^?ZS4W2f_gzUnj2@WP_+17uGagV$-57x_mG?VFMjnROYV%}6L=3QQ zNK^fuC8oJH<-a!n7;d1kMXBq!%E-P0|KYHt%Xn&et5K3&qXtBv5F-fp-2Grxyp3_h zVrQpVFo2N}4qI|cwxt_?NliW)1JG$zWqYfyBR9EItnc_f zKGfFPFDMmCUdzjv2~Jk_Tc@yc=YKdRHQY9qnHY1cFIT6#E zV=v08GgU=eu^Y9JJ1+ufG*0?s)^YeDUSPhrR-#34y5`lXPxsMt$SUd!gpW&$G~cio zobhpFU$_C8gwGm;Q!E5kEn>@ZgT^AAPd0E#KDps88UtC6?VFh@mVLz=YRK6p!$(gK z!@ktlUMS8De4%0|e|CR^pCnLgLqF8%Zsq=aTf`ZnG4OC;p}3Bd#?cdtC47b&*cWQ* z%A3V8+Rp7d-$J*FTiUo_+&jZH`Hl*|uNP8Evmjf)Jh?!+KHdlT9oCJjru3%Z%2`5- zj6#eHrx}Cf3o|+W?DpmV{2tkEB`0Vvvs~9+C$`)mwU?u0Hnrbf%b=_j)jU;` zXME8j7({(<)=sjV!Md9dd?mS_Svx&HpPiTqZ0O42Ksl1^NS1O>8)~y5kw?K;BA)s8)^xKhtJ+QxJiJV4kBOVJeDjde#Bt? z{A39!9*t8zY3(`S*o4*gxcmG$-8_Ecox{zNMMKmY>*nmcZ9lstQwSCx(acmGBU<5w zZ3@Nc#=%AL(4f6!z`$-i6vwh((y|v>UdE$J;A>`U`?I;Kf%!Ly?W3e?{}CugpzSp1 zB-#7v7j*KNd?&j(2AMR^W}~-J*(kJE%()6+`+H(lI>ApDON#}eyE!MxCt3K3?ifDY z{+f7LOCaOra^4iBh2mw$(v{r#DO)u?$l^3CiBS$}3DOMHmz!mU5pkS7$o7p&?8(KD zR01Re_pxmSIA@tHh@H-Z8PAAjqM5U)chj#!E}t5s*D}jqkD6x^a6hWIv1%b`Wsc5G zT`&k5rLkU;w(8~fW}NV}0Wk{Amd3j+a?EIKURbwWhW>E98?K(2xjXJD$3^F#dKoFD z!+5-C_`{TrUKA3(@fWjDPS+Vv4;EM^@+ojRcyA{yo(svJUjGBPe96wKpU|eY* zTm8GB5B0UVw;We5!PP?wm3yfS6HN9N*N$j6hXB&Wn(a3`0?v88VJL88^HhSwnb>Bw zL(^W>&{cRMga>$2xIePQBEIp;nj>a^XfJI1Pb7qT0bL~$c!PT!lK@g3H<>efDOmGm z{^nG?#QUE_@`jH{^gy|rvA6lLE?MTJfG zRI>IJ`t+};ZT5$2$qau%WB)Y?Z-i%t-VfsD3sYA)AF)4Xvpb#!QjA~J@Fl;q7wJGt_2WU zT(~h3G~jxz*0FPLs0m6q6{8w=t62*~L-L?b?;2(olG33#ZS00!%gAaTVUc~I-g{Jy z&I6?VK>2fVi#Db@excQHi$M5z^th>h5>M>w*X8q2>WFj=z{)ou2S1uh z>9SU>{dBZCwx6{?u!y8@TYyEXp)$LJ!R7{(F}3$EYE*PW+=*{=kz2Zji-5N`p4Dw7 zuj_xfuJoHtu6L){Y+B##aRmj~jCTYR1-EMHOFg4l-jYDILZN20*!X1kvGM#rC2I{~ z_;S4CG|SXQLg_MHs;$zxql66N?}yHIHQx(;BWt3*$bqsf+GX8IKACO2JWo4WZauQH z-zfekP4kiG?Nsf+OT!TCH+~}--@QI+^E~)XgaLCdu+DW6`z)<@-Eq-3%#Gk;fBYk+v~1HH*yj&xwjNEZ{OIP9-b(OKR1l zkY-k?;xqP`tE74jz4xTF%@xhWS>p41ISlZMdcD~IMfkvJU}Z{(9Z>z{y2O-g@1PiX zIeFo`uC@}F+#GpRgKmOqRE-KxaJ+Hw6GwVI)1)?S+D{s}ldwCXVGlK#F40;cjsn;2 z)KAxrZ}yD}m-8cINezvc?8e`JSn;LigIoKDrio1C1_~@1nY7@p$4XBxFLHCUq0SF?PK9;piSc4?X!ZsDXE$~X0u?R^Ge_E-%h+{^ zSPqQb^J$=b9Eu>Q!?ss)$xkmWsN08r9DrLlZc*5_*aaf@FikDa?~)kcvopt>SyXa{ zjRTzn5(k%e9e0yaizb*+Gay&!Y()lT&Y=a`xhPGI+duyBX3M;_whJ9Mbo@P!Df*E+bBh+t+NiBhLdO^LT>Q!Gj!Zoiodz;GQn>Zwcwe@Qvjw zji45`J;{Uh0VcDmmjaC$y>{$9d$aE`rD3<|qz(KG70eUMn^!3~x;p=#&G@L^at+47 zQ&4aeK2S^qj#NG2*xAbIzQ@W|cpTNn;doQ zE5HEVq#xu<=n04!a&95@n{j4`*HDD;*{18q_e4gm)6R|-4w|+XM~6e`=PCH88CU(9 zy`hx)MqV1*Nmy&k-ekpBtaIOu0cZ~+1(Nz*o3uF_we|0?d~c0NjG!D3jHnwBKe9;p zU_(cI-J&a2UNFi?h z);A=&G~60-I$`l(bzmRX0HB21$(gJvRj$6q+`7G9-2|w^qb#iZRBsc<&|Pf?)pLnQ z#q@5nyCd_QHex z7pMdj0Yg=eD08zob6he=RX`J}TFuAWwVNy4U~-~mBYR;T_B02XmwoOB-E+5J`?zYM zH4Dr5vd+K<+oX}(R`%hLWY2uOV{=~&f{#&iH<>etUiN<}t*cwKR64?~QL=$otL4hQGUB1f$A5b9d9v67f(<*cb>O~)c0RDEqoKUvv&TUz~#4jAs5nRu+Q zh5rp*WQ5_ic2l2$@nOc6y^p2()hhhQeQCj$TrZ(D_QdmZAKTU2hi@A7Ga-2zfm z{RYgJsAn6fR_6gstw z1@|*r+aErNk`25|(7pURieqNOk(vUrUyn@ZXDU-&rD1{3zUL5I0vY@D1gfSt-Wo>r zQu##jK*aT(D-z$Zleuz!Ad38fyr#;oJP-L6!YTS=94UF_F367X8V)3u$_s{>Xi(Mr z*j_mcBG6&XXl2J{;MpJ9)l0$dUs}AjYCo!fSj~N{_pUovyWYpl{19t)$}=yXl0NP-4I8&~A;ybN+m}Kz9q%U))~4I2dL+OCe=qp+ zj8)pHKaI@La&`mS_THQx`Ptz0Vn1Rp{tto;=WQdKH;D4jt$?nDn0vkrt^rph%iR? z_)@WvtotjX^rMc`D-v!C%ehjk&2L9ri>0f*D&X7zvk!h##Fr|7Rd5V{LmD%e{gRy> zJ}>uun4DbHlFNtwJ(fjTem1l2 ziIue`Wc2?$SAXQqRQH^tLD)97{&^>G;t&&lc4sgnwr2{SH#y-`yIu^7S$@kEc&t10 z{&*?`DD<*1D;|)ly%$Yw3yyg;EAaKIixV0izX_-)uE|s_r;yspC|EeJb)2`Ka6r?a zh6}#v=lUvD;oM*|lui8%aq^)v>8s|D8&`In<2TqqxM#{%xPyDcbuw@v$VQyVOusdi zu<$J&l%Cns*5658R#-M@LUl{zn6wzIgW~rGbA|p*2cx?;n?gzYYWYj^1bp3gL6O$RtA&#{Lz5i4$jle`?!HlbGCx{ECHwy~?1Cpm7r`7Hl z+lN}!{M#US7%~Lu(NmF$u{!T>$9{6nF%WPvG_X(=agvLL8uB`Xu!?RxX9|C~6qwA=3NSp0c? zw#aR7&$v|Ex2ah&qN(ipBYB3}5@e{P`EiN;<8`wV{f@e~)TA{JHqR&C2!-R~k4}~v zEN!bipso!0lS5$H#Rj%FamZ<>-$RdZv)2k<4ToA!o62oUra@!9O3cw%l9w`~@X64D znnt}PI(21%wF!)(!8XD(}P;{=x`2JIOhV+&DvgrMSR%OI>14@$JUUV)5PCDC$ zloXbvE*lz%N8e6?HfJqNk!KvP&zWwBn_?hgZ!RULiDHFbqKKHiqh|?8CUDe;3{+PEEiG&!Eo%Z4h*mqUESCtd89aybh$QEwIw03Mr6JlM;-d3Zm zt8V2rRX8IPP(ikTTvr`ZKAYjHyU~&CXW4syDlvnyH%iAyr`9}rT--OJYTrV1P0~hB z!|^Rdk#SoiS|jt13lWQVK8qvV8I3H#bevlah`hKe2Meq5+J}AB^-Pqs@6U5z8U8F| zFy%|huk3kZUv`g$eZp+E@!qyh8C`w{zpa+Q3q=Ev*5TbwYHk1=pwLl&M#E~OXOLcO zlntJ*o)c#e)+t$WtVA$KO!sRXbPwreF6|}Al<8G<7i@>-nj;Xy3KsevV%5@}X!L@Y zJuL>{cGrT$Y(<?mgFh;VQr=*uBSzlp+W6xqjgR_t2aGeb4x4$2)!xq|<7Ml+|2w%6Cgw@qs7mQ8m!VqjFle-9u? zQEp7I$;opTq1bOux0p$!4^2~)siJCzP*%iIptk+^yla2t%O>!H ztVQ)8J;kAmK4It>zPot33r?v%ccla|t6wwxygkaIBnv&F* z(s~$KzJ}}4uZ38`bZ3qCXBZOZLl0VWcRV_8!#4OKdgGcmy5*ZM;S*%gu^bMGy zVo$81#H(XIAXep%b3OH!I#S8H>V!X<*?Bf!50=D9RE*?^hkk+wcOT??I1#+&XOTgJ zMt0H=4Kbg;>-yv&$o|!As@Y_u$1#Dgyj>fX7Szp;sx!v_c z6HqmkP}2a{Elp|^vn|g$w~(I(q`9pisCQ?&q@k8#n7In~6NR>ZD~_R~RuqH;<;B`5 zlFJlfCy}82>5i7BCgY$R(S3?;OpWPP5q#B8lkfif2DmBb zU$&njB-;;1^=t9acc!8DM4-NhOCsk~%@ti-T?8zQb)GNGl+7W%HI?O~WB#1D`R^uS zZT-hA0^&YrEdssxej8#zq`BCw)V#Pk#KULglfJEyQc%=#>ML2jp(xU#=O3l3-(tU> z9mzY^lHDpGv?zE@m~WoMr-GVMUVC4a| z*#)geqQ>=>n|_+nYYJe%@>MCgoysq7ijnR6L>4YETI2Ll+Q4_9k&fs0d2;u13s~fv zotL<9Qo=(Y7sF)v`jql6-UeUer0L)TERIYpcJV|qTLCC3=B36RheA`r<#FwGTL1LJ zPYHM*^?T7_l7nOnW|Su%XdKWqpABh3cdJZmo6gPkvOxI9I3_TUTGaXQ4DJTotAgJ0 z?of~Ngw?%t(&@|9pHCyS)-65$%#Y8V;r?zRu_D_F7Al(-X+h41AHG|z4_yqh8vb0Z zY-dkbWN(E`+K_C>hFVwK85qqZC(rKvkms?8Y_}Pc5rqkV#D6+bpO7;gbP(6%phRuk z$V#`C`s#2%?~y5<-uUIGe$Pa|k6O<2hnB%t1gg6Tbigw)|WNnkV;b!45j`@D| zxzaai3ZVT%?MmCQp6OzNqKNUG;Q=?98oLPm$-<)62g& zpg2=kOUir`K;BU(Z2{d)K8a~|Y*GDH9Wp11yV}|m8T*JFwyMU#6>PJe;3uX%4$kC> zRIADji_v;QlLz1fjVaHZeCt|)tl%~WIj4i$I=nI_AE~WbL+_!pIyS{x*#DfoPo#YB zK_zK)5(7K;Ra9PhTF|(0lCKNANSYLqrkOg13NQ;2dZyOv_6q-S1K?wLd6qZkO?$r- z{G+mJ5nW)I>re*m+j3u((C-?#!S-6@ah}S`?cGD4T{9QBcd|>z7Z)d+zOj++By4W>a@M!)hCj8OmWj(O76vhv4?lFo()6h;Tl~(|9W=;{7&U#u zwiv&y*p!O^^^}%^9UmXbOd$bjkuRVHE{m>q@n%xb9)z1oUs*K-KHBA1t-1K=cD}1X zBibMv)uM=~rBXV?k+9%NoDUt453AEmlQEB#+IWuHzqDvH+CZ!uV-Qy*%^vlKzIaSDqQLh^?eOT)nsk z&s-#dg}i>d=*jW(OwmdBRCDs5+`g8Uf$2?NphIcD_s?|BayDO4ipBDPbQvo?EAT2I z*>-t$Yhvnb!JqnkFjDVmr#p}BPfy>5R3s8!VGDc_I>WCm9UDJS`e!R%vF$U@l*e;6&g<+n|y<@k-Y>GLr zE3?p#D{Tia-?}$isjTZqFN5d7gE94vE$4!QMGHPetPk=IF2=~&OqqGC|)Mlrzv9oMZ=EU#glKi9!buE4yI?>k?y5!1v<3Mp|Bm~Yp=^;?mFeE5!k zVaa%_X@!P&G4)G{HSeIA;(rY%geLJt%A~#u1ABN*-9JUrw>{%RzG$>$XTO_g{keTj zu{EaiJ5XZk>JDdon{b8eTDE1ooSwS_wd~yeuy|T=VGug>M%tSm$bS6K?4piQBYu8e zb?N*-!qJ{2@Jy6X?oyM2eQ%bT4=yS-hUb7+TMV~Vgt9Jq7R@-r5DztYE<-#y7D#O! z^sbPa`EO6%;(m%Fkn_yUZ5wDe(5#6=d;ZVAoBU`qB@N)(JXV9`7{t1CO#q^-Cu%?7bZXA>c}3DTd_OIobbt>i(2szD{QN*l+% z{;jC#V65km$2QH)CybmcRVc*vb%O5E14}BSyxOg&-Zl$@=N#<4_u0D=le(;*ONz%Y z#T$_cutkm>n^=K~P6Pn?hvvDhpFq*%H|Vfj*JflJiDFrv@wi}1Q@RXwSv1A2sbT5c zk#a>?`6vMbo3Or$cM)(X>IiRCgdD7lwA^Al(h&z8XtxE~c8c#eak&RKdv|BZ%j!D- z;B`9fT7fY9dq(cVlcx>O0{hQ;-PGug3rC*k4$f0Mk9Q$YllDB$kO~GWE$=C%C-^!;2;xrFK*vCTvwLI$r#~wf+(8UL^q5w9#kYeFi(IYOvAd0h9Fj zF%j*2Mrcu@m6kL!JvQ{mObyS3S`5_^o_T`KLJmsyXW-l=EuE($tW2zuu1^11pgpqt znc&=IcX5|*9^y!ua9W#d6f4ME>+vfum!XX$P}E50R?@nkiNWt2z&}YvKdg#OQplak z-d_SOAcE|@(P?ecr_Jl}wM%d9bnbG`nTZO2>b~(DD3~tIyF^#fi-E}n!AY!vT#g%H zBEoRDn&%R4o{Y)ZQp@9766TA>9aav#5m($oaibcAJC%B^0y3|#!{m^jnJ99Lk5 zffnP(%S``!r|_7NF)hIw>+pV0ay@o}vmz$5sGKwA@+BX>iho02AyPsWk!K>YR_001 zdH9Llchsq&vhstO3<+9>ipoQb#@{E8u!Mv=Q$>|q&{}i1porDv(O?c)n0e&2^@vC` zHTwNSW!KDk#oy)LSb)l@vMF{j?~oqsyJAx8dq>*h1LDShiVJ-1hQjU{{g9oNYH7l{6_CTD0usl~-&J=u_`9#7BO6Sw> z;cNR$AGT&LR{gw*cPHneAPGN}mBrINv};Jz(GMxCGf;NTjll`?>shZo_qE*9{tJRY zJPnNyH2AF^EMM+Q=R?xUdsvq$#7jT1F(_&nKpB@c!k5qMq5Ei?w>8WW*F@s*+mZjz zG~MVN={FqVcA@rWW_&_ZU@30eu!GySHp2(vkgqn#7$@`y@Hl_ZVpA@|wDVBn(_0h-6r9^bwMcn#g7fB@BCz4yYoLfn+jR~QbJe?&*?x1|^5C;W zKZYL>T`R*GNQpzMyEha=k4lC5j0s?>`xfA>g{1uj>^i-Op?+9+bH#!OP{)87uX(FZ zw#h%*xPQOoA5QN)R6O8&W)i2&J+?VWt&2NdvxJecSNYGPvJ5US9n^mIM0f0iC_3DB znt;JUn#DGwV*ENsd6!w-myv22&cXPv3Eg2Fl3qLJ9HRJo*YcjO|GUD-*w|lkI8R-9 zq-kG9#Ba*n{DF7&EZyRRPg}vNW?C8owx?V%NYoQoGahKQfJu-0JP!*>tyJSI{TWjKLZo!^nzNftYNyUQwqyDv(q zN^F6#6nUuDJ%& zX7-xzYJ1Op+&+-?+iRQ%zPrY+tR_ek@C>H&en1p)5D`RwZ2jg0=F23-IqvQ*LQu-v zup5Z)!9B0YRf-Fe~-I4g?2xQ;JGY^f<{J1Gfh6$LLTdGqFhYF1UDgT6xGhWcxikrDuY&a#+3SQ}gt z%!#(cG6wdS73O<9?h0P3Br2X+1qg+R{50xB1-9Jz2vlo!oSecULki4I7v_s>i&5v6 zy1T67SI0k~<&l#8TgL>B&kllz2M6Mbt!uXuyrBmf#PH#%Z~dH7h@yhld}f)QxhK!i z<7>;abf-6Y#aQNh?uX)X(&f0fddTS1;@2_}pnsw-bG8?5BkDGv#-@F7tEOj%)uA`< zr#w%^?Yf>0nq(!v+}Ykt!TNH}GjTv=vSVmC^Be{;`#N9OHMRI3aAo91eLtWKRMF2?l?8ej{olfoKy5BKed{BXc?RA(2(e-^}PGF#6uS;;q0)Aqste#a6AdbL3_Bo zMYnLhcptrL)UF2M|H+4)%)&>n4K2H@F5Nv$s9mz5;f-T-ym~!V6yOxv5Cd5%W%kuWzw;xb*W7kkW1FK;q`1(E4q4 zXz*UB#Y6UlmV<=C(YOS^gN+u#gM^i~S7&!!qQagD9S7r>D}n||10O>T!H7>lGDG2p zsify?oTJ?UVe5@YG{-UImA3D>7uFZz!QMn2-|76rh1bZ&OKsgO=9k}>@B8EiH$p~Q zgk&RxUC6Ts%Kw(#5-HEsD&Ixn73dA1^QpAK6zauv@dQ>yX@GIfW-QwT_^9#8yr<1N zeW}pY(2J$>iLVAn z_AxJ&x%_q_hjyhQJ!E;xx-BC=;=2i*-Q`2)Ci|c7PyQ!OtUJU|=$R)$XuH8OWvhT) zDhIATrgkRMv<3}rm+*Q1yNuQie(SJ7VEEAG3xZZ@WK7#pd8kJ1!m}qa{T}<1lJobc zZ|uAh*MvaBi<(mYy2%uVjTF;LZkXwPjtP*Q;%@fY`IHYoZo5zu9|=-;{@!GnA@GN0 zMM85fw^1$zX?-rV!dYafjF%_@YF9)&q~w#d zgu3kAG6=LvBR*s zF#}tFa&LL|)HOB3ijL`q#IM+TNwv6}a~1k_?-!qdg8!PH0=$`pu{5qm2<8ry**nM3 za}>Q6L!CY5$KKlt!6AB$=hD1}FFke_vX`~P6wq^wF<}UXkB9qo#TPuek#^{Qa85ur zzK7Hp2#C^vsMOZ}rqux?D7oVaBF-vF>+_OgiSrCDE%z&*cRm#tG)z>m{$Tc)6SXUU z+)Ud7!bqq3gazR~f%zC`mt*8K=gncHukyPsga;N_Yb*B4WJkB*u;V^qD-7wj3`gyC zg~tN*E^?n-n}>=s8ohHFXJ6EWcYORUgtCL2OvFNGLs>@J!adl(xkgX8i{w6Xp|3Nb z4}R892<6KkKHoGbTE4P*kW!Mp;jng7 zlzE^nr%q$=putJx_76Q}5xYJSQw%XEG-4oPxujpY{Qyd*Ati1Pw20QuA~SvMB9$Bj z4vO~1a9e9u*lIemjd#=>$n>TJgT|PKm~{VdL%Lr6i5Y+g&D?da^IHDk3>CVQ~O@D=j>{#09DP1J~@?a*wRdAm>0}jsYNvk=$ zy2F!WdfmxT-`}pyO8l)Hw z{*hjM;zF$SwIEwnu)rT4$3HNU7;6{0Bv!UTu}xd~_;n1N>FZW5yD(x87K4QXeE&m!xj>z#ohz zowY_C8gD0xF<_q0Gd0*{-;DpD7^?Dg6SsV~#qYY(*IDmY31N29t6w#+Sb5!KOP>@{LcwFrJIhT)j*Ml_cbC z?WF_y69dk2y&fc>Y09Aq#g43XCO#j&P?)67w`7poZq8;<)CTlVmnsN4fPNqsDDlc5 zk<_BBZ*Ase!Oht9zJga#}l@+DbSpS3R2U)k7ovc0RGz`LH7sI;Upndvo-+0VxUiHV{@-; z#Px4UPH^y#kBt(R1K?_|>;QPJL8u&4QE4J%(M=VN2sZVeZWR10>epL80@FMwItx!_ z9kxFL#0tlMjf;=zBq#w`PSdYvL{^>T7~d)4QRE1^@efGpr%s_o7tL2+s4YuEpm>@l z`hjk&@XXT6TNjGl-Bb&$m^=d!r*1z07|$;5ML7=5JIm9Fu-oEAaaP0F$>){8fLt^3 z@f*ra5rp4`ZbhQeV`qHL#k%u9r=qQ1ZI5K)C4Q7;FM(8qYdS&eW9{AazRo#fg8R7sr6L3L{@x0*yq$ zabg-PV`L@PA`tYUMMvliQt~iJL*lH=EFPSfSW#S2{h$cX`sgsS-W*l|XoY;$0#pMG z_=8veU$+ZyklGU%sU7Kkw&o}kBYA*deH<);;OE1Fp5oD*HT2tOnpaO^Po55XzHoji zWZKOk!D;$z7ggbmw_8$OTFrjxjBcykby|@>9@`f$$89&^r4pspxIb1JBjdDv2BBy0 zMFBA{jK@BfcrtJOV7+BIdpR$~kG^}=fohH7e|&j1wC!w>L&w+dd1f+C`MTzgaB-#X zF=EHr`kLb(E1@zo%8oq`m{HF9X}IELpV}9w=|ubRQ<#XFbUqY93UQUw(R3g(8ryg; z>(*jj4Xx{+6v+nr!^0F7_mWj~u=dI)nw$5DN@I?M z^{@_mg`&Zp;wyM`o9`~S<>g@HYRl3|(rZ9>FQ>>RCp*u$6a#nQh}qSi*FP@Ym7~Z< z&5<0?s71*pD`Z6r-pT}rWaJ~Oi78fq7v%E?@qHgk(n6+#HNSQ*0}t14+5?H=2cHx5qNbzM_VZ^!EV!%S z)5Oq{%fZfvxJB}iijaL`xgRj!h%%NW4Kd4sAhXC5gKNo_0A4}O1_WJ-}&eXEOCNc_bsL@AXv^A=R2H6RvH-6ilV8$*qd zkJ7(%#_$r9#5YD&O)sPRqwBP$e-2dyk1wGucgEp#UO30=S?*N6PAM992DytHkQH$l zpwC~?VY z;T%AjO@Y*(iU=QlRR4T1fQ=#hTG*v``152;!E1JL#zFQyNoM>y-AkHI&TNkPK;Z^+ zkI}6;`aN*VK0zEKOsQKh-enlXw5>r@t&DH<@v}_%|HMO!34CSYZQpdvqWKA$%j4bLevz^q`=W|q_Mt+dPl=hYqwA$oaLu}vazHhy`XdzE4&ipbmWB+egL$j*t z_0xwOEWOtc#A0#!?!3I-*YN;mds-bM!&fhM=nP-8#5&Cye2nu*obCKLNqqBrFu{*i z!+7O=MsB@b$5}_2z{2at3pJVbUDt_eEI=ji=Wfr8{%m`U^dOS^Cp)bIKO#IWJC9F& zEtXHI0dMxMv9SYxdH?_4goaZ1{y(xUt4Tx7rn7LwEpt*cb%WIa$(D8HtztI*r3zwR zBj@i5ahMy@-)gQpJPu3i)1`=P~+Q1_CSaa8Rp}P6FO~ z4%DXU+AtV(ia4^LJ@vqEM!6Hg+-J53rT3x-dUCjBO=L)8;7-q2d%6I)Op|fPbaMK( zzeV*TH{*yE&oGfU;BnO1sZ>%r$8R4fR_Oo3jahHOA`gvZicWM)J3$NoV>1Lc@{L0{ z#NlWVrUL2)G4a^R08*~yS`Gq=Ig++;JcjTs*F`!E>gy6y2_a7M3n5bYqK{nw|rg@l_M*Nz@Ih*HFunRG*SQ^ zs5T^2Db}DekUM8f4ia2%n}~XstfSuN*pTRjAl`AsK9}mk%R?p!q8GXy!`NpiZ&fdF z*2DZKEoa<;Hn%|uv(MT0Y#X>95^@q4by~L7S&zAh*;Rq$ALV;ULB8);+;y?!(Q8UH zGb|U{sads{hU_*02vv5*`e3k|pI6;XjdjS1+mH!6Co7d7R5OxPRpY`jq-So47};ve z+047jcOUtgvW8!iM=vd*S(vo1WVqeu)N=edU&01!ofPmyry~rZElxeXM`@pYw>RT~ ztASf;NvmMQlJ_;L89aQD+@gBX<3?U%`GW81_vpjR?UtCDa=K(`skeU219_)B8xj-pC%u`z;B4sAQhaMdI};jab>$M8^l|9dd#2J{JaHMzPWe z{nArb<)p9Yzv<7)XdkAQtM}*%%NVt9*z!Ip`A5Ki>o1yXWWhv!DL1>9a{%&Jk%uMm z^B|X6nZ|T)tJ!>(FvE`&@qF^KM9QLP(SLszwmBf~M-=?vBB4UMGMCk0dR`V6`>dWikHzPI5y2$>?@^M$P z2bt}JziX7zvzd@iK^^DHj6dKDQoSbgPINHn&Ecnk{bI%a-#OP6I1}|T6{9t*I>(tX zD!Q#wlkHa+tyGCm`9j?e8Awc`HLoeOghu$^)}f5zTKu24G&pcUQ_hMO6_3MUqT{pB z?^wR+whSElp3IJr(& zL*Sc*WKrOu!4i(2y!LzIB~ml7dg*gc%5yqiYsjNn4$nXLbCQgSgD#$bG-5>qYN4Uo zv65F1C7^*xty`_+1|nR$r}l|!GB)|56dJgm{MhoHll=M-)pc1GD0$Epg*6wk=gwDfD^8s+Xt?So@<=x-S8^`*b=#?)NF-EW1!ql zV??R4QMQVKd!oy9gq{2veT_RavSBMY+9h~Pt5l+2!*~_ps!1>QARz2SS29k`{n}WiAJz;E%J8FbO{zgrWRv>4dmDs&Uu2-?md~fEFx=1p%BNb2x>zOol9p z2U;FpaLkcB*m6cW+8MRG{;ml8L7fmbn9xCjVXJeOTI>a4A37R<3?T#-OT_|(5}W%$|zkLVp`X! zj7ZE6)k#{rYi}`<{=pYwGdyl%F=c;=owmrpsE*=$aFX@qxRZv$O|c2jgj7(eHBP9z zuW>Oav!^1s(zQWLs@t#o19=HRD-%_s?LsYCd3uxn!(I{Cu$uFTQ3g@Y-CU+2F-*qS zY|g!0552w*2UOrPnid(6M3sefRdUAdt{)GZKg74Gb+n1+&M)Wq%hze3Tu^VO7+?yk z7TBpV!>ZZvXy(*9T&T|NpZV|6^1;sXd;V+^HfEvBHcKl(tm$1lr^~H#bk;E^;9WCV zK>A!UMF(R9s}ZZl2s+*`eH?V{JS|s4I}34c)-h#9+g|WIj<(!eaBpH5slI;Q!Pt9y z0+X%$w!s@)PpexZL4?_fHm-%+4eGd3)PE|NHBvN!mo;lm-1y}4vbKEfeM?&9FT4JD zyZG_+{yD~Lc?l8Ee>j|DDj-m$o420j+hS$v_LWp9)~KDWl)A6|q8i-fgtb#<^v4~> zYrWnvTY^pli^bH}Htr z{Qs@qCyxHA%&_dOu^euIh&~mHuewLVC_sx+sOXukIh+Nm&%FXkBNnC%xlrl9vQHI4 zkP^?q)7dpmXh^rK^`c43tiNq3_tQg$O8x@WbHd!L^XC*Dye}x&rTZWE_IG_+Z!iPX zAG#?!`95fmZ_Q4gVEpf5!8qjLiPmr=dIBKj0Ph12NbZV!GNkA5G&;Hz&l4zfch@M! zk1X?ORVUrwBoqEeF1MSO^H}U`et9UKp9x}VG!@JhYU%`{S(kgmDV7sa!Mzb%cPe|= zt)*zc%y>XPq<4jcN%Kdhz6@9u_L0J5SL)O#%95AO{zRlef|>XFO}7SmLux#@I_EO| znMj`n05Z^!_rC5vFZLWSdgQRF>@WqrZ^zSJVkKr5^ZMd(a}#e`wz7iJ9LXL9y#28*kO$WPWIWpbtS0WZCsGX#MTe=7)<@Kpu{$fx5n=39 zKwd9TGulLCil5A(dZq%W(eg-VCkQ5v%aCp(Am>EFalaR{T&1ZGQNP z{Co)7@tIrm)P;F;UEN76-N5}-CgRYY2mwtIX1Dgf+UH1tZv#q+sd#++lw#!dcNvt= z>9nh!iHCQ1t?iq>+Pg*=0Uvm;^~%v4hw=5;{|I~|!zq(#iI=w7;!6a~pm-YS&&eBU zN=59f>>EyppMy)`fg3Ia3f?W)BgWsFC02Wy4+0pxWk_u3cyp)fcQR_mtA$W zo@&dVItHH=LE65o`4@2e<8ZLCOuZw7%DJ4Shuf;&RBTisWjT<$rZRMg_K{zYb%p(@%c+zZKQtfa-lM`vtQXkf(TW} z?%qy>tXy93E7Z{GlOH$xpSH4zkYB^2!n>-`gH21%%N@%V{b$BBL z!?1TLqqraMy@DgMi1KsZa8kudhP{SjbSs|p7BoE`L4zQhu6AykjoDP`MlJ340U}*% z!VN5quqfa_Cpv!K0(;Cnh@PJP#O}PC+`G!TP;TJ?D=W||SXm5GZ|H#PG@RaFZLwvB zKa;7UFZ;?QD|?u*QT@Qi!U00Lp2C8(QR4%-=fg`v4nKh=$N6On3$(|qZpxZ>k9E)8 z5_Z1?buZOjs|O(C6Kt*4ZtG_0xCr;f3f!FgU8pnPU6L0-Kv~Q#MK-Yg$m{!*yc$#- zZ->|3(>i^aE9$P%=#%9pv=&r8J7}DK?;fnHbb|pLM2u>eL9>e2J)fOJ^d#S7<(ro4h$3>`B%+IC%iQ{#f%8 zS9|KGH`aO`_MUgIxrGE<+%U6Lb8jlF)nMfN8`8 z&2%=@&R+Pp5F0=KxWY5dFiJr;&qeJ^Z30pi%0V|~PuEF_?#(IU;IY>ux&kBeU1UMC zUPcQmx3ggcGM#Z0n0COi33RZh3-p#xe3_BvqMSbJmhrCSEW4F+2BJtJ#f}f>)>DkR zIjl`v0?(H$yEcZsUu+WCCI8d!%G8VgtvZVryR&mJVE{g}tj3uJNk`J0F#$6yp!(2h zvK*_n8iRD^<}h^*^R)9ViGl9P=tp$+<$Ns2HET(GlVMv6HbRg;>3Q0LFoZs|?Eid$ zNNVDS9H!HEmn@aYkNNIJjeJoKD$FLfpaM9I)^c{MTs1$>t8y}|BZuR7?|#%3p|fho z*P<+%m~KGus+OYEV8Cu+3ALB}Ta`IMs^)EGBKS}-4nE<3nAa$Td}-Tntt@#835swJ zn|Vg0BWPNIh~8rr1B6}Pb%6_o*G$evbpl74kz&!LZHEoDO}@sR{o1z6h}W&z!q&g4 zn&j)S3$A)I?sQd`b8~vb#ZAP#1rmrxy&3-Iu}XVuh_jY|CFhr-kQBiGOY?^8s=hKN zi4#y_m(6JJK;LkFmVbiMa1Y1{*NHj|_!k{Hze1`>U!A>qH~X)jT$}g=d+TuRLA+|I z?yNbh8!L~gi~rgbn8GxcJsqUi2~1_ws#3IhRp@c#4hAFGNmrfHl2;Qc`pFYiz7g|v zg&Tiq2I~DF9^~$)#6mY7t!?(Et(uBWU_%5FUU{WDj)oo!AdX=Z@dv&siMUL}VM znqLlVr<@r8ZZ>;vSE&f!xluRcaOkO~;t4-L{)!|fi8dv{Y)oo$miwNqHNb)xuG{TC zqgZaZ$B`PKF9kC(NMUCc{0!D6d4iWW4+ zh)??VYs`CgFSsOl51>O&`ZN^iBv^kGJXw1B$~IM5@Y>9+CeFBa@lSoi!RU{tXeuCa#j?E@X!F-`mX<4FGLwXmfTYxAh?q|9>kd!fVCKJCuh<=qM z23|N3d~p?Y_hqygklQGM_O%maMhWaMhV#y=#ZJpW7?Q7__f0l?d8KX3EMt9QU-#yZ zS(vjbiisBfWC%?z9W6lM+3guQ_SB8!yn}R}wIJZpW~xqdGF!}~qKVPTlnctIBJWtfB0IjX#yYE9)&Qm0 zqxQYz-itD@eFkN`LY`*68!1mK(D~xb& zq!ymZx`%N6)Mn_UVJ?;#v^1Gk`B}`j{X41ch^as-IQ~Nsi?fIEpX1{lyaJ#JHH;=qsr>=v)C+pjBntW9X z#-@>sf`WK5U$q;n`ojyLK@gYb-0kYX_>Qa}Nl|iaNSEN~K*CR-9h5W$e=VGmT5gDN z7avIETPoAxU*V?HCvn{y+AHv*mVl8giNJz^^m&{%uMu#ZTgJJYF4gk{u`XT}3 zx8KeiSy-a_8lD&Srm}AnL}5<4O$Zx)eW0<=B4HXu0%o^3ks>{wBjKtMzrm(zaT|z+ zv@>(>xW&WnRlB;R}65*CUwihM< zb}+G*y%TD$a}#E%pH;b;99SuPx~0*2D*?Dsrj}V6SsM14iPP`G8@rn@efjdM2qE8l zpS@zOU*qpZd0)=9OJiq@u?<=SH+^OXG2}txcgB!{x~UZvwN+9tWqyerd`~A0t<_Wy zvgH(WX4PB@<@E@eZRPSURoh1H6<`heX6#S0T#SVSu1P60E2uqiT>sQIUJ=c)|r0|Ti ziA>?;Xik6P1K$|x$bsq`BL|7n<*!RHw}T;_ABI6*s+Frjp1IP?DhYiKMO4kek1GPk ze+B(}jzB6D)Yy$GR#dZkW2s+N6=y>R($mGnRZ=E^cZTgKZ5D;Yo@K7|waqXYWRNlG&3{-(ZeFi^far#Y71-oeMZ8(-TITsxlt?*#=jhqb^qej`8p0-~8O6w+4mblplPd9T zZO&e%t?IW!;W}LO&NV(D^6)gI!0)ADQ*&@La0)AaBJc@nYAH#hLO5kylH(w=3djXX z$f6-&eu#oN_wK=wLhPAPX&+hJkeuX?!>)07+ht};MH>&=Ti~N;6svdaW%pCI3hjTu1mD>nvPAFQ3(YASg-lb*u zoc8u|Sum9M#?6}5#K^j0dq5Z!b~;ADuQ_7jOj3xOvBk(4UN7E2nH*F>`ql&zx#>D_ zDwyt?do;)+mv>(?i;CQt@jJLnXFe#k#BbBD7?Vf!7c~qJl6yuiRW2Y~lQBwB{90X# z2_Xk6k&{Y?#Fs4UK={+Ta-%g{FQag0q!IJTo$)y)$Y7+So*70jOqk$7Q`9-H65cUrcen0luUY{@CdP2F zQW^7m#oFV@IK$Uc_bm{55eM5Vfe${E(cQuRH5&@vkYU~Wj8E|uARpoNY&LIFSfTbT zC2p3hgJU1so3vN2XpUc^ud9Wg>JjzVM9A4u{2N$KFg%rKzB60+&=+x-a5}Tu(nb68=6X%Fu4^&|a`baR>*HL^R2HuvstJF-acDC% z6irLptP|l&GH_G(CSeaT90LD6>T8DuSz5mgsQQ&@O}=CGW1O&DRR#X?OU_lE8>KIa zJsnGe#SO#roG&q+R<+HQ!i(QsIW(|PGOcvzNm z>p0qL8As%03p%Xh2CVxA+{t5e9?n5I8=mjS#x0zQfE9eP?go&byah#L+zJYmG1fdv zpa)yQ@n-E43Ku!eb){RT$jF*n?XSzRri=Ig3K1Pn>FYKl{c~A8Q4Wm!O?MWPJ-H?F zGWEgSUNf_3RU_YW(>ka->t2i8$%i?WNk7k__L%TlD2bfhrPCyJhUus;ZKvaX3z&*E zwXtEPi~!<5>DWN&7{z0F7H^QqsXl$;%PzKN$s_UdN-C|Q?L^v{rg~-`_llpE?X>vq zRRIeWM04_A=vjPTWyK{WvmDj<&cD~Mik;Z+z3X88ZmfV18Yz@PANRBHWGeT(4mDSH ztN6j{@1kc1id7Ai{-?5C8UQo=L5Q~GlDAchtN6gg_VBV?EBlV7GR-~f*{|S5DoqAk zGERh0ca7Yqn?lzJ&=MrZNP8CIR2)$OT&v@5F2w$mh-kQ->tFX-kceVIno+hX;zNQ? z$9rpS({7HoWP968o%Cj7qJ|hpeUd0@CGi>~BRHq!D2S?nwL<(EPFx~(PM$*Zp0Owr z%yIg?e^8^!v(9cq5$1GB0|s;+P|2rz{-PX0{b&zBPQ`pInGz8k?NfNo2fAlZ2cm*} zZJqVOvYx-L_2)>Y9N5uA`lPV5dfvW+H1wTIGejU#MMm=1WV_F3d4QNDN7lW9iuTb- zdv+3K;}881PT5Rm@A2eTx$ZC#@dm((EJsS?QrArN_9bYV9F=z*sM5Nqa!WpBAp|xS zov3416)%LB0`JX@{JH|qVGo5o+{X>n*RAHHaCPaefvs_uk%+AbzPPx?%cFjYnzx#y ze~N6ex|#mFZDo~f-x!t~J+#dmntz|N@NgtvOF_=#Wf7MXU?sy$rm!lW`G@9k81X1e zF5p51{6o;}PCj2HPnNs3bVk0a69mv|wlW>Z1I*HF>>Ff~+=?08aNlj3hS{va;W%u3 z-)7#po~iZYcnRCVp4%ytw!zE((Bz^stIc=Cjnk*uucu-U`gvsX2h!*4zU8EY++Ts^ z#u_!#_pajU<^^>w_u_=j*waDQ{|pEB_D*} z*0O11VLZGwEPgBtnGQ;$nB8x;6@TeTI)C)^Eg(M!>I#w!e111%3ZkUuKDPE$OrO}E zG(C9yHB5q2PV|$wm;g0*G_OyPzgXjU=)NLm=7r-OBqw+R3|UA zus`^ujR#)F?_XUmw><<*?^cDeL~bxHo>qqh7u~l*p;mVbxxew){GQwzzJZno9k*pC z#5|+?x+{m;GXhWdbl6_J=5?k8piBW4;03t2l3rFn8%J>(RS)y%yChy*k_l;KW+QB^ zC(994T=9QgR2}+$8k35;mYOf$YBJf$l>el$DB8eXl$-^BPkLY+RcG|fqae3jZWv+w z&q*4rLtd>ST7+=CpQ(BVVDqLCi}P3fp@+dB>F+GQfGCNwDQ1P`9&jw?%^d{4Yk6qr zM^1YtQ;=FDIR%kB7Q>pV)YY;*?R8O)n(Jrb*eg!+fAmr!DDs_6i@%D z*u?u`Cn@XVnp5?fk<+H9SKoQbp0|dr8_qs3hM)Ye2-#*pH94tQN_k`g%@QSR!xv%F z?}7zCnAdWA52@^)10&PPIZ3R%HcULz@*bk-)$ECAwj=cfMFp*6S$lOUy=_zpg!evqe?+wJTyEZH=5KSA_Wz9Nr%=q^k8Yp>oJh9*(a)gqEPj@@~y(0tJ+FoaO1dm51f22sq_& z+mMH4v!9^3Z5#Lbw7vgk((0#rvsR%G!YdBOEq8zpAmI+oLDh-74XnybcAiv@h!}U% zeny6E>=IWK!5@S&>#~~kKPvcR^h`i@Ote5s7E+!3@Ja-D$Mp}Jd#ldlyiB`0W;%MG zK7p!%N);u1vN9F>m}(Dd6d^Is?59InP8egkHSAI^8Bt?mOQ`uHw9D|pY#;uQ)BgS< z?zCe8Ck-i8Z6M*;pM^iyY(End3`2I{ZV&7ekhQXq8xL!9=sx_q#fMZY3bu+IFwm0R zYcC|7SWy*BqV(n8e~rCZ>Z!4loN?-*_B*dN=i6-jwHH)k@^JC6DtFP$rqZQ5jn^g6 zetnS8pktC4WN*MDGraZ1%>ZWn4KDN=R(O&5grC<$HDRmVYH_$FkK=KU!iCwrvk=mR z3*z+|){03X1`LA6X0lYY7g~&u{B5u$T9o<9nT!k9U9MxQ#&A^wJdc$?U+5^}sPS<( z&2KdJ=@#cUsoR9j?Fz}1aL&I4xTI$yUh?Wc3U+*YDk|EOO74C+dZ}RObZIUy`)uWV zjSy)4RreqM8(+V4k^JHswEN7(Rp`2iO+#R?3O{9idBr{ER_beQw&B?vFT*OYv15d; zkfU5!4(|-HKS}jT+w(993uZgAOQcCo;z%KLG)43Kh^^1iQl@=u{N+zEUGnuD*>A+8xNf`-A84 zRcWrlBh0|v814r({yV>-mkl&S->sX(XGPw=CwKsp!lGAYvRY?o@}d0QhY;_wi@G0u z(6y6+K6`8#u84?9KlGJQBDl6N2=dn09ypL`uay+7p%&Lk5S^A1snQu1^y2tRrBT)8 z4wgY?o;gFReuAX!#3k~~4iP@R6J;rFf?aNN8|iwqtYyJq1LMud1q%ow8Y_dR@byHy zgic*#JM?!_S2b3_S@BIVJROvlh8UmO4zxfNV3=+)t|DG3&*m$GWq%d-2gBe25g2V<$KGCb!v%Ll}~nnelYL6*;m z&=xlNAlkBd#h9{084M0O8dObGcO&Nga!}lxgDpHPFm&2gfrjjwM))?Z}lr>tIOT zhP;{=dW!?xvrnt#h=ONTn#x$K6%@aO(DXW%9BYkB9Km$^u}QwC6A*av*nP27meqh# zOH}-4@-Hq5A<*+O06~G<6VnJhSnMTje;MX%qo(HqX(EX2-hP&L0%5RU3-c zl*Q^^C-OhP4RxToYX<7`C$pAP1TUR_^mm5hE)@G1A5E2Z=IAt0ylAqhki&)q*iM;% zN3ty+Wwz6<|3oM5D%eoadI%H%aT1n*Gc;y$uBGdS1xJm;5z+W@JMKLn^99rh=1Q>_ z341hTdcON(ocYnjOM_(Pe#Fg>bsK-(zzSnYAgGImk#O~7_;cmYw zllVK_K^(y52eG_WhTEk#)jQ2WQ^Vok{H0UMFV~0yZSB9EiVft85O=06vu*mkV}xvV zQtbj%Ov`SR!ZYS-x4a#o)ldX{NmcgMFol05X)%`|&DL-4y@;BkvSI6!rQ^tD?=N8M zP3gF2g8l8EZ+W^_Ut?&iqo!)=9XDSs1@6v%Zl-&B>8f@`I-^h0fBsB?+xyBs&}kn0 zA5gSOn5Zy6j;;i<3U;u7TE$L@q(yBpYWJZh<9DyZ>@;cI99wF>p`MB*7 zWa;VEAL?&z&gp0vA*>7>Tx%)p3VAhcPn8jn6*NAzQ z{PLXHV%GidQ_ZYb;YaUFge*5m7!LHJHE~>{M^~_)Wtl6wJRH+Y9%U7)RN(8na!7oB6-9_hOX&2wl{mmeh4xv@&PxBmxdy3# zue~qBxN)F$j@?sZl_(s#nS{^${`~I0oV&){$a+N`HB(OAg+}t_qf6+nXoq*y)Sn=4 zFc)l7x11FI)vuLVu*39#&;k_OCR}^RXzgB7Z61rwpnH^C|C6DrpUH@jD~C-=cJ9OQ zED<)82Jw4MMIpa-DFeXpithONUDT87y!E-W*Fekz)gBo2JRynKZ~5I0?Wu(8sjVn5 z5#J+d%Vuy2(_k_RWStnk9d;M2Xg37kLSDux9j6nyjkKrEu75!td08MA^hzOEM|goG zBK0Q!tJ`434p&>ABmZg9z53oi`^gOs6#9V22W^JrASg%Dhe-tFyXW&geu}NXL>G5L zwJtatswb_kbS&uVMccp>?e#~x%eGg0jfmm|eKB<;Ob(-D@$>Vgt*@|c52g_G^G}cJ z7YQmXf(itR4?Z)77ij*a>@^SqPfmZ00tQ{r);V0OuK%;#g00UKvBhTBtOm$>Sc~sn zh83LM9lQ9Im+Pr%eC$>BY+5*Q|3mE{uO~Rmmr+EMW%!6G--T=QJr9FTLVQ5e!NYOX z(c)50-E{CA!q-xaEv!@1!ObmsHqfDHLB7t}!ZXj$$QKytGzf;xDwn@=Ryz)tSo)$~ zbhKWLs|6(q;|VqAzL(vj=lsW>d#75lLS>al3XYuvM<{v; z`HE5o^#`#Y1(J=HbxkI9R(sEG%qW!J7Zey?&l%pbRFg2<3C=5}y13uk%F2Z)>~2^~ z)1oUYNHXA=cQ7M^TsD%VT51pXYa3I}tLbxVRlt7c#A{fDSdcDLSfhf zp7Ati^u}0du2$(9aL1Gdl)(pgv#*QFKc|EQ?!{UMb+0TD1KWvnf#z=PeWb<_g&$IW zFUm^#4J<>S}}vh)N( zkrPh(Gr_gd8k`H`gNt}0>)C4RbE~@*TDy;1sV$)bttT>5xeHS-u=&!KFBLvwD}HjW zMTU78Li)X9_71xxxj_o=rX(_Q(-hV1^mb(5XgO5v=YQfzYu`_jI!U_tA=w%+R+1Os zt9o9=SM2o?SwfRyxM+x>SzM}8W;MZ^ZtZn!=WCW9xA`@GF0oIl@V5zrstzBzy!udl4<84lFRA`)sQ=n zxzev37D|rCYdn_L16B;+P*K%y?cwq#)aDSIs{XIB{=~Nt2|qPPG*XMUEi4ws#2$Pr zdfjeYoj}<#j+zUdaz?LH+tazOoLYTcFAeeuqkz3R?g+WzFc03^!fbgR_XeF4wJbUG z5Fb3|uCHk3&dByx&vFiSe9Rb#5R%rU7w}ZmD9|)m$j!smw4T%}fw;yhRGL~@L}T<@ zjQzF%H#Fa!F$_Yf>bCqyJH5*@>e`mGN>kKcF8RDBR{SB)dagg{Mt-PDPE?^!DmKBB z;|M^ruJ)AVb@x-ErZN7hH)tlD<5nBm&%Rm)a=kw@@4F_=N6>qqyw4%=2lZC&P%M6t z#fUnK&364u&_iemyrlKcY8msu8!m7SpMd=->OrA4Q@_o zp0BIa*JMc94R?7iq@7b}SRV2U*nVw{z7e@!fK8_Zk3COEbRUPd z1s`DeHPz&C=~1W0&!x7Vq(42Q>NhZzicquYe;Sc^W>8OZv@yDV{R}hL)2a_&Nwe(r z|GfF;%XyRsHNQ;bhFtA--rB?dr-|D&%11vc9u94Nc9i-A|K*`{cKtxdtdsCw()Gc> zCnagJZTS*kCeKW$GufoS(Tbk*)-Euxs8NZMs~@&0GK~(`P@t;kj}i@2&KbkWRfa6? z=xtvZEF@^wbf8iwcBgNkZQG@CyVvg&;+kd5@#2QPHDD~Z?cQ(nGd&y29k75-`u+ei zfqD?X8O_eQL}}ZS-Y)zLpT28uy%6XbsKbCHhR3E^-ak%HPkkdCc+i)Ovb)g6@a}cV zSXyhUSLVul!+Dn1`=Lfg){c9R*(jtlU<8rf-{L<2o8zbm5KW0)MLlV+#v4vbTCp7A zq3TA2nIb|0VL6=dD0@nPlem$(<^KESEn^PHPFoL}o~AxQKIzvWmC1P9)Ew&)Z~jw8 zC8YD2uW4ww&Y=9pSOgWn;t5T zI^`uFe5sV7d&7L1MAyo^`D)n>x4cg;rCg0vEZ?PmtcR6$?80j8Qhz@)cc^+WD!{zO zEYNYUq>6{*Rs>V%xGX$hnFyPnBa2Q?YoQv+LV)Qq8C%FaG0O)Mt4&hKXo5rqk*sU+W%%=f>l`#BP`7URf!X_@%)?Y?_n=2w}LvS#md*a z)8=YxoH!k!=6X2xjP_DsgEW_$syuM=DP{adbx7FYJG&0~o>_8<%k9(s9cc>;PckrM zH$Kr_S(LXm>}OVyT_xEqYeC<1R{)NNt|I`Tr3uJ)W0s&mJ4WeJ$$d;V24hW;gJA>< zo=cI~8TuVoCg0CDPgLm9WwGYct(r8O{oA(+M%+B8G@y4QURlqJ&4{H^Ihfg0Y1h6< zNu@Y@j_8Y$u~9L~Zm6*Ud_h&3aIJs;w2%>1I|j)!36z;oTu_{(W{8+V0Ud}by2+SaSF$boYa}p$<?W40j#At1H|Li#A^A;Kk}i)?s2}ngL=3G(JvZpD?n?ILuS%EF~_tL3Z2G z?i_Gu$H1tOh!gTxG)pu@hee2}f}x=|6DH#Fc4~WK4Hk8m7(6~-zEIA#?+e4cpeYL% zWWTg2u<>uxb;fa#77vHPKHyzHjvprpWzN?+{0)X9LrnHgNZ~iS_tC08*ctZ+*K^L( zT?sAT^;~Zw<@8(?KL0PSz`_B+6>F#zc}MkOo%h4W{^m2I7-!g%Yvm(UWBMm9o1eLI ztMaSba+4yQub)?jpSiESU2{Hrcf_(CxVzt$t+AL7`ChSP0>=Llc``wNk(i-tuM^0;JnwsNo!$14KBH-sa0dnK6Lf)?F->>2&bF>G69KB<) z#*sQ*tlrpiuz#y93RRYEW^T5|Yk>M5aP2grYYmk#ep0ckMI_LdE{Bx$i`efuqVW@; zaB%38eaw%~JuRH_LERp9n6=Q3Z^ZGS&yy8USsHMARX6^o?KhdVFJJv8bNk$Kq`RDf zbGftgAvqd@q|&qasG{+r49THpbwBj=inUM-NBD~M_tUvT-c0ifkS~>7VH)=+1?v-+ zOl6gf)m=qc7UDAv=En)33djeY4VtB=QZQd|$`^M_YSs=bD7F2T8F{WGPqux3=t%P` z+}E@?(DzhfM*$Elj(d+UsC+xE+P!bX39DOF^Tu=4k-h^0Jf>H8oj#vvyh(-NGk zWQEOW-8+o4oZB7P!(L3B zi(|(?v~{)gMcQvZ^+2WhC&Yx>C5R(|$02Z9=s%hN=i^MW3 zKjSX<-5t5LP9%8{o4S`F3H@3a#)6SX&MjJhJf}At`1Ce;gob&yv zCFp>$4=Ju{msZ@2Y6Gg4oC z#3@UDd_pzro6=b z6>v+Qw=Nv=gMt++jBI{BLDh@Wc#Y>GloT?9U5ujYM!- z&mwpkv4w8o2y84$D;?5IgXJ-DkFblurmM-uHd%m7BvRj4bwC7g#00LPviRHRXWbhd z-0L)zd->xi7vs*=ze|Y2kxY5fSfe^Cgk1L}dB|QGUGecBEzK3LJ7e`*keO$(elw){ z$b2)&JREe3G-mfIi^~}9dm6i_o8@3@p!Z(vKBJSO%V6Mx821KqI8l_57e`<-cD$St zGU*{h8sGD@n7eOmXMFu; zM17d|&4c0jJ6=@G_{OML`iauq#)cS#FRNyj)*9o!9CopZdR9R9NrCH%j6So)-zhNX zHhPBg20eF5%7SC*p?YtlgO_)@TCbAZAz4S-^fAdtVHH`juODJIUr%@TV>8cJcI7)K z>G(O)S_*X+M}F4@A00f|_}9lpi6?=8c~hsb2e#OaA;WpVZPL&3)<=(QXsX(5VXZ*Y z!Ku|8+JLFqvaWEk@JsIiKrNUCfNAYpl;n`u@wsIStzScl981=o%OB&@>ryDn0fQuM z?3}umFLo@PhFkNm@Z2|~(TG#?iq1hLQYYK$>-7^kZp(TuTKa2l16Wr1A|kt1ryQ|t zHkc))=)cSGE~ksHP&EvI1UY-#od9u{Q)Jfr51#D;4Htv&$u6ofH%nn(-%8G3{lG2y zRv{~^Lcc-(zsHaquUYZL+Kd`FDSwcfrKPNPRjS;ydY z?C){!0YeMmoY;TOz)xn!QZ3;a z6Xa2k{rpTqXUlGmyHe>$`nqYw$)9K5OjLT!EuM4#@Z~xQxg0St$rNcA(DRJYrowE! zZJA@PK81cYtdU096l(jgpdS5h zebu^5*-J-Au#JQ&7;0ubUak(=9uE3w9rka@+ZR>htUM5@+t1o`~%Zyb`YZ zq`0sW%~V4BVB$ySIdKcq+4LBx1g8YQLUMGKv-{$%EL~3+=;3gnL1A?|MkY(vH|W2q zwf;!I)w7k~S#RT|e=oaLau5cDIK6%0Y4PvpAmJUMXiF=a4H#NCKt^!jW4l9k%g;y0 z_SPf6%d9%R`^&=GwSL>1AHjGOR?YYRL)~-GR@?2xSXoHNHSp?7zDoZV$i8O3?u%_> zZUYJS?M(!=398i$HY5bRazMK@t2f;ku*!y?E(tF04!MBCYZ36+#eT7LE;!;%U2@3@BM2_5=0 zNo*$CJszNTi1^O#kB~0?iy;d2ko)*!a6bYwTSqh)aEG%e-=E>N041$R{@Z37x)H74 z&L`=gX&b5eo-yX^)p?I-1Tjz9keS}Z)mOFiNj+gQcP;HcCRsE)Xp8fLU`vO~SV1y| zk`=vF?M!N5E{Y;Bzipe8Iw|en7!3rcCY}CMXe)kmN?F_&@-vfU>wc3 z`G)Gb{#M#+4#_v`;K3l+v)Q^@5@`O(|& zvbms1{%=HKfs`rxCvs}HnDSp@W!j`x--;AwCY$4JS-p+lTbQI-bZUH37`scA8DTbN zIQEclw794N_VWedC1pKEIl>G}(NbN^*4NVn@2d>u3rm>wO4^AGL?r23GV$WisP(Ez z`sw;!%(AnjjB^$>Ba}+?Akm>zn===0Dc^)b89LQ-#99lIfHpBLU$|QI94MlV*BPUci?W$|r#a!TN z;n}v7JmBGFZ5T8#@}=N?j5=1VF7-`M$gA`fbK`u`KBEp7ZsU|M{r%D4x=q%>@NbM{ zHdZiEeyXhIuobC)YKtG_Qd&@2*g$HuM-0Ayu0!`UZ82;VltRqHs50lH6U|M9ZJW-% zq{tAOOi`xAeM|{X#+C!m88pnDCh%nQ5XCC+5Cbns*|U$=qa-` z%w5U&($vuEU7RtqwP*{)k~v~O)+>~vc0>Qy^uI&fZ@N{@3j#4^6VAd+q8wauV&(P# zwItt?1&OvLcwMP8@2c(r&(V2jr-vWL6;+bD;hazbZT$b1t+g5vF;Uv!yqPN6duq3M%HIhw9x zx*W@LBLfu|{zct=J<;M`-#4NaUM_tWKXauipMf5~=Iz&PB9E(A;bcMJPOO;f3lQzj zg9;GK4Gy$+gy2B_0CY|9(P}4lW7JLBORD}OEq;f#y4g=8`$XDnF8;OEYW~95)>*=9 z>^N%cO49jFjeIlywXnB2B{5FY39jDAf4HBZpz;XY;MSB}@lXO9AY6_99s0K2U(X@x9opjaQ}Jfw1aWPewEegXD(Q9|2WS@gu8k zrG2}#y2cuvfPUEscat>Iy0p(-k=&&b+3H{7gq>4c_!Og-TSCPAQaaTqy`H}O&e&<7 z`{AI=oHf3uU!*R#d;k5uJa_xIB$7%81ou<(N3z8#u|yl}J8M4U<5eqf=iSS3$C+Hn#92xWMis&r-M>kF&Vs!sVJE)5tuHR%QFZ5X~W z;h(*o&k?7_C4)XfufY}4ZrE1R94)M4$CAzM`{(O)xL@DocDQSD+v#@1?zt{|^Nv6z z-dqG(Lz;F!3V9h?S3Y;56Xl0I3X{*AKz-lFT?aLA3*s{SmTX~tL*aCSG2m-~4&Z#@ zFedyu!fek7BcJ#CXO8~=0gga%zgXiB%xwePr84!EunnwM0F%wUX^_~`GVD;Uf!U4D z3bvw=Ct2Uq9PO&>t7=2mn7d|e&!3%p%}bQCM!l=n!Mkcs1#Ky7OH#;bl$6_8fc0Us zy(w3z87N_mz56<%V)qH2TC6&Ol5tsKc5Sg%DB^Yk5tI7(hNW*vWK}%`8t-1bsz-jY zHD+Yq6#FH!R~y!TuG*exEHS zX7);wGAFk6?wM(H?iIVD@S9PcMo1{v7vUCT-Fs!oLy>h zxhFOy_Q;&tl9VMYlq?FR>CZVp<p86xO`)OKc}H1Zl(koE4283o;xXF8YzUT9m~4*Hh7o7BGFzCf+d$>J z$K7*E0EPR}s2`0w^$O|f)NR)#KWro>Uv1&DJ0u!!m0oxF)>Fu8NSv72GnVo~FrGq_m zn2ima!Cq#;d{$X8ClleHSmtw_istBN;M{9(<-;u%ixn)mOo=Utt;z2OW?x&1zvZ!Ldq%B@0=# ziF*wOuYqk4D!=G0rRcmXxcYqP3tG;U51{e{+X;*%I+fy@?8yrCwRcfpBUQeLSF;tc z%3Hj>&n_UlR(u16%{nPx@gHZLN$OSgWV`ybrxJ!gZ}v50&&$16Y^cgN=WdHD3bmGo zPE&xV2G8IKjnmdG$FIG`wcJ5ARy+lw?2Yfiian^Cow9}EuKLZFx>mx)_pVMm%G4`1 zRAuEfeW%PQoUre;J|y$`@?%FMhOEvzY7TWudAfnTHh^o6qpgAMOKX+?E#Flat9GtP zwLE>b8bz~;PFvu4Ck!R~P|JhcsSh*0gSDsH*r~TRHqWn$$#up*@h@dcc{J*Gt#tk* zG&|KC)hb*F&FAHRsrF~CorhktYp>BO9Js76`dNydy{t3}!PR=;rhJ<8*Tac^7*?K{ zv(wqB+p9{+qP_aEQ_t~%vJ=v`tj2miQjHd0EG72rMw)h9wtW}Umi0Ybdq#+n_g;cR zHUHV06Mxvdzrkm3Jy)4}$Z^%`G_x}Iik&-tYkWLFgwHxzTr*ns_&a^uQPy6uYgYPj z7_*bI_KJ-t#KXyCc>UTR%AXi7(X?Yt52q6Ldt0VnA8vyfzv2(``Wl>B7c4@KuOfqS z>AxzBsx-r~M15>#3K35IZ?w7BVwV)fPWbRWTd?-4V5CSZ1{k@FqPOj(=p32GJ-A&G zyJ?NRqb)nynl-Jpq`3m}@dKvsTfj9+G<6~Ra);TYs^~!(yqEvc6}d(ixr9*cT+vN$(~JAex1yQa3U{Ay8xlLi)PgEsLF((^ zDGo1HFyU?G0gkl6?3Q@63HZ|SHS@3t#m2<9#HhC@Q^%K%ubFewEvbpy0Jlp;w>EES z8IHMw@lUfAkgMRb!fKe`;#%&3BG0u-j=H24qkT8KgyN$Y*zJSa5ZF%aTXo9RE6rVB zKz=9KMwr_Na|>W?SoT$|zERG?WmD@1+t{!PYy+6PIo;MP#Aidaw;I>eZBXg=y!!BG zjNb46sC=$yu`d;`75VtfugrKk9JuKTZ@Ae>NHYcD8rP<)UE>|sdRY!tS4{i++7C;VB98M0=F z>LWBV9_V4wAMFcP{1np60_?d3(-|vqw;1F-D$LHpcJ{ZS6}ECp*YW|<6C}93SNy3F z46blB`vj?#!EA)_?qH`Zy+TZAIV8rTtfkNgVU><>nahXgWU_6GYph&bZhvJ~?wR+# zwFB5GYgWQCeyt_Ay@ARdtlWnaf|qc`UqErU-|M=t@)4{$C~nvCfcvQkkcS4=Z%lUT z4E8<*W<%h*I|-X%`1Ch-L1nHO`-bun*D`_h1RJiC?Ug?gp24zM%!Z22LYnDt}34i&~Fvr@$#j{hkVJ1J{-WUto65%*J4CifstwqXt-e zf#RAk3u}iHjNM$z42oRh4Io(Zw}RV{G#bF{(y(tZY6#!yYxo34SM7mCUhs=V!5NdC zv2u#L(Nrd=(N^HBwDqogMK@5*fv;hc|IaHv8{>(KD|Qkx&20XTFR_3<_hI-_9tX3V zqar?)4-Xma_5{~k5!&}rUyQ2LjICl9-VbZ*N(dEsw=AIeDIi2 zN%8O4fQsHYfb;AOPe#BLyF1XAv8!Mgy;m#M(GcR|PsK>8L$=~(uUAH|AD^R=C zdJ7VIl3Mo}i20j1HM&>qhEhjb_?0kX4w!kq1G{+AmiW~1IdksMt`Ud#n3OPF{VNK! zTF=G6=+s8O^W<2w;cSo2E7UXLuAHJq!t&X0^azC>6Q1x!=)@gwQwAdqD&sZZ;meVKHvkUU{*J+JG|mN|chl$2HDb z_!z;7ydzhB9~K`zcKYs)tdy!Xk=HDJSI%p-R`k`!U-2DKPr2iL7s}w+of>uQZsW1L z`tbvIokMlEr_V7wrpg|K!WV8{-8iF>+%~?R|EfnV=yf}zt7Y>QfvhS`SyMk+R?hT@ zsf@j}y&TKDuZMrF?`torvl+8`JR78$YS^dVn5NA&%A7c5aj5qp^eqh+&D}fgChm5Y z-(@cM=$m`3+;`P2eCw;0KI4em-`6AGKZ7>!hMIeUUn|a_{(*d279$v=?qS6rT@>X|3UPt#Z$$Ihc(gj}=^2SnFSP%HA|K z3Tv0o?er3srnR|`2jX#`EKxtAb-i867FwYAonN<~URZmNDs#I@iPVB)_q|i57iG>$ z-@o-PM|V)_wXglz^GE@T4INj$oMgFj4uq-^xM5R^?Je@PSGf!A_1@R}Y(T+P=b2%R zuLlUL$yH}{tcER#t(g(8Mh}=;L*i3nOJZwgt<@RZRV-r0reqJcY;naNVkc%|b!?|V z5uera4_|hr53w&AJs7{UrqoNbcOie82+~*vcYDO_i^jIZ!kSTkl`_*=HMc%7#SOPX zTPUByyBfcpQF-4AL`4#9y!&! zP)0j0(}BJm=>NJWH!puadHr4eo?kw$)VKzLAmxZ$Ga(=dLv}@%@uE;GJ)+Xtey%Sxj=8I zwP~*sa>Q%5#?~L+xU$vTkGGu)uB6RbLaR_&dmk!1m^L!0ZB6 zZS@sAzh9peQmtP;7y5{6xd*bdkaAD^Yk_2oP8bH_i-l4=F5Ke|z1IRJR8xGPUOPR7 zFi&A(H!(Z0tCkhTD~0>DA_Lj2;u%z?1}_a>!8TUBfy$4>7BKfx%QLrYC^l65^m+-l zuUP7(M|xUb)=rt=3O{(YmJ|G9k3jm0l=tIdF&eXe*O^DdqHll`OU{Qr7wl{JiNW*;wu|nWpiEGIGS};d6Z2|HH?-{I|r8) z=HdPeP)h>@3IG5A002UBay$S40000000000000O80047vVQy)2XfIGp0|XQR000O8 zr@U}Hu`+4uV3Ys=+kyiC5&!@Ib8um9X>({VZ*_EVb#yLtcy!d<-Et#E42I!zs<=qG zTN%sgQ9Ek2N#?FN=ZqU8Ew$~L@x(Su_^Tq{^J-$)B^y|N0`T)s0FwEW9R%BhEk~3d zng6K}P&fP_*^#U$m$WE~;Sw0LT#hfpP!RXe?G9{fY=kzE=HSjYNnN>`AYoz z&@U12-NWcnoM{8}9UOM5b0V{E%;JF@dq`%lVT-h2zOo7M@=hzcTg*IcP>`@)l{$o@m`9pzlZO}GLfP`)0zu6i;nCiRdww}$;DxDeA4(#J6;sloBb z5MQTUHh|6UZ`g<Q^;{no7>tzWj5`pIqtO@SzBL64p+F$&Enib?^^2_$Qj37` zY05pa&`lW>k#(yeUHj|G{FNYdKks{jWFgQ%(m4s`hveARde@`=SCRRKe+QJMzHfC~ z-Qr{@_<6$Uw%tRx!&^16WVWENCl1LQPi}wFM_USzx@yMx;&k&2Mdv0M7sy`(Gz;~f zLnG)S7_XZL+k@?h>gIUgBmDmB|F{w!tT7;twK_ zJamKNt4r#*lYck$x`F}uTy)7ueQGV6RHQ0ANTg|wE!&6DZRmir@HLC94j_!a-=#aM%SNnDF%`#nX?v8HeJ_g{@; zWvyaa{=NmxLh}cDCAK#h=UY0NEqssq{m9seR2mrSw*sP8X}-YvcgMpQ3@|NY1YX*& zVzSDnM>PZ|v)I;n%N_+;du>rDb1#GJ9sZLdqzCDtbFipb5?jc8L9>u2Kc?+l^(B;b zJd}|2+<($ypUc~awh|ixURc_eAf$_^z#T}-2%5zLfB)4?`Xwh|g@YAJ0ilijLPge| zPfLY(u!B(aVcZo3Z9Qk3BQcCO`I0pc0wb!}gLb@lC1SkPIn-mscMpcD=Q^$8h*EoH z(F#KSswjGsC8t%KsQbwa*zk4HCIrg7F8z;VL*62d7a)^>r-gwsKOM=Jo`rvCW&8$` z4cQNx=P)N9?jS}*4%8}(uU6iUV;ezMlR^i08QB*`oITqK6iW8zjEyr=Aqd;;#d^<* za%F(9H$Ui>kzn$U8FFmnKteiyBX_Kp;0R z!SLNNoy!?BdvIJTw9+}tPJlrhDIpRy|%HKuBeMPl8*naqjkz$+Iv8~uZ zG2w`9QBveu0nD!Y4tX%$~OkBO&X}^JA6fsm=T693UMV$lF^>aP%)ifj;ZC zz1hb-wKuTY%@-u1%pOEySB!p*J8?0(v*p=J$UTMyzT=NkUJVuFgi~_|z5&&Po!@_@ zw5|^WeI;~RAv2gdT114Sf!D?O`GapU++Wc7m1Wz<9G+R=DC@erBk&{1;*35-2I}UN2T$Fg z6f)m^f#W5_i%Rnae0QiGGKUfhOrExR+=&MlQ!vgQpcuH5h1oY|wy5OrBk2ABPYYKQ ze9@V`16l7npe#Jtj_s4u0$G17DA2?HA{gzbFYAp(qo`5Kt9ha?Inb_=V755?SvZ>1 zb_Cymd?(;=$%ipiS77oeM&3KDu1pInuA+ag9zpt_FWxHckOOi*(#nxq2u6%qR;l0{ zkuCfhNiG5GS)7xB@)rrqlYdCs!NFrh6|Z9g_9~s+Z>`ZH`xZkg6}74|qsG~eJGn10 zdGJFx5a$8?D3p7&J%My^n%|g!ij_Z~z&AQ0A**LG_DG{e{@hk0*zD#@$=xENX?%$^BwL$DLstQ@qL17l-Vj)xkT}rZx(8?gVJ#+Q0Cj(7FjO= z>4);G7=Hf^BSb%RPA-PfE&?%UMkZis~XAGM#Wun8{FQ&CcrLB@D%&r{{Ab(2Qcg_1PlM` z(3_;NvQY7wFHQfhd005sqbYCIR2-WDiwdMmE@Ka!;%0+@*OG3(M~svk(FS~X3r2?> znS;LMNXhI~4B|Q2Rv^0ADJy?5>#2buX0;f}u`Pk7`wj*R_N8$x=<m#bW!DU8IMmr&836@)w^jyVYE`4WL+?|dX4&aLZ^JoKvL^@YAzRIqptb)oKfvY!iGT(Xmju9(t2PFBWmW5at)keQgIcjtLJIZfEiC$j~i-ZlH~z6a1O)Z01IpYw!a|L@j2jej93?(V5j4AL5xkxQdu(Yx{)Nb7jO zTg9{lL~bhmDaqC|IsA#h?sjP~qwSE{tp-g7+y4Hm9|6-PKxp+aI)ihlI9V0j>U(JH zNCmEyE+w>`7$M%i=Nb!h+MpI~28iVHfXQkPnDX%9ZGSI=a_U#CZ?)%_z!rTWne#8P6;#`kzi&WR;%k9_5##m2s`7`DMUBKB zn3Bhctlw8;gUL~&oXJ7p(%N67BkD4y5jm1)=H@GKX(m){j^G=YP)f@OSr+$zF|+50 ztn1>~C0CqcU`j4W5Sn_ENhy(f6{SFy*_St=v(pz*R5A~iA8i>@G;_D6mu4P)L1|i5 zY5QhVF{eCyTZ&7Oa==2RpNc_e*?wnN=k_tnDmRBf=Q&AwHS(ouOj z5C+$G2l_B#=GaTzA$_kS@X!m@gX5nS6omZ9$vq z9eL+OO37<*4u1nFZF}rs@%Y$cGV0(EZ>t^!nVM>YzA(5i5Y%fVS8mK$LPE)fN`G|o zAepR_C_H$&*v4ug>!t&L2P3L@P}+93Mel)ptw4}A9{2id zD84sypzmPZ$yzMu+7^pDTP4u`Ievr_A*&_&23;yk3T5^zj*?08=O|dph^*E*5X`E7 z6AIBl$+RxXok*I;-YE|^#ZdK}mlu|19lvQ=Nj(;nN7x&Lzj@4 z30T)sxOq~xUt0{+FBx-rLHVk3N)XSPIeLxrrO9Mc^JrUWXxbqVI)O4TpXhyWm!f-c zj`zUiQ92Mwdp_obH$gXrr>~)1eb#gny7|)lLhcb$dR&TaD{^d30ghQGNbO@^cU8C< zA&@&6m<$S(d0ohXyk5?aeDjG)h2)1W$#Mz0)V=pn9a|4JRXViNDY~|nR_QV$vi=kD zYTjx?Fp-;+Nifx3wpk28cX1W_czftwj}++XP?Y-;y8?-}3b;2xXr&-(B5&%G&tH+} z*A5bJ=uQ6r7x1H&RRl=%vYiyRj?5}K^+QO#qU6yFi_$qykgDekF>s)bW5~&3_PrcI zp9z}oX4WiQDHLWso%=-TuO}6Kd~qHh#t}q&Eh*$7OK_-Z`Gi7`C8QwqMQ`NvkB46c zNR*)xNd1`Nv?k{lIKl8dehr@#D`;oS2 z6Nnck-+nDtJ8)RuRUU;5nJ2II)n6REX{Zllw#8SaPObb)w0jjdR`m{Esc`l?jqB8PYa@ z2n<%W?H#m{uRg82f6-2utv+EWljVLZTd7OX4RMbqq zAkhPPrJ8v>k_XQzwhEI=V-~9lqAkXqFC^ktzyEq&h7sTAC!^fFCisHT!*^>sQ=hbHbCsASUvo< ziGu#((B4`gbVe#3Dl}Qt6HvKU?^D~I4MvpNrN(tgjeKl`>wwTg8x%Q9$?DZs_h@I# z9}U!fKD8K#nRxINDhkAQ#J$a=HY{?K3KRZh^7o0R*^3vVqFc!WY>X z=1aj`gYA1}Wu&hbr}>rH95ZVRw(-C1@S>qCoJnCEEl%co3f*s@3RQ<5`@n7&KlxIhMX@&xaTt$1gXZ8jh_BdUV*m8%G*}~7XA}sZP0QjgC!zu%eN6c)A ztjHkb$FZ1uTM7wvS;)SSmil5*4{}b(k3#lPORK@=C1orN5YKvOno}I)q;&pJC@q(JU#bA?lPMbZB)TEGgA-7F7@cXakYS34g5U*nnrLLq)`EWHlyd~sM?NqdT$i&-EMdzCu2C}Hp9VlvHns~tSd z??Q%VK1*P!HozT}Wn2eS+SG=4PM%W--S%X7%*lJFln~5m_@^jyp;g9Guuuv!J+?&LYVrfB*G< zl1G_S**ML&iaE`9f)l0G8sYWB4Es5wZ{}#hw)XWc7MT~Gd@*)MWcBo=LSrkkiMGRR zQ|bWgR^im!;IPRn%09omEFQ+cfx*b^6vJ16=^Wcq*?ZVd)W|krzut&j!ku#d6slpi1B!XDW#6!$T_r5Q-ztX_$SJ&e}bpT+CMg!TyecKg4<@*_I4mF#|8_XU#ifX#&w&7c(D72V9YhjZ9l=#nh;!}n-Q zj5(V=OAU4_#0rbT;H4NV_~sZ_A$Zslj+XJ2*YS&e@LTx(7l3Zu!($-Mb1%wTi+X*w&EMdeAr+hb!3l1 ztf)aTlyS+XTkQw1wYOyztL@1K;=_q81?`y+9N^{{EcTO~rBJD=H4RWz;`b^xJ#RN% zl-9%#k&|LH;D>)~r61gZ(3-l}BBmbMN(XsbKe`%l_=T){_}C1ET`ceKkIzz-glR(H z)$_i@Ic5tTscUcXgtAs*mv8zRuBKtV7$BHzQt*i7>`UK1i>t&)*;odq1;lcp7!9}S zCJy!aU<2XkjhJ{LKLxt!g|b9n8<86mH>knpKyL(CS9&8LE4`oDA=LGzE)9oh!br6- z@k$<{daLJ~h4}q|zJ5`<7iFzh)TMF_>JrqDc#b6E)d*}l`$DW8kaf*pe^~&-5%|uE z#7_Xa#fnTDQgKZ;Wel#8Yj41&@)6-QiXjlIR9eRI-*kqqhFX#Him?V|i5dzGw|C&b z0WkQ3GiFEDSp&xJQ{Uq(6yqHz%V&x22&9XLW!?@W2sNTqu{wOI1AVR{TPDbq>k++4 zyjTCDh@G7nYjS<8cGCf(qwmRa@+7v} zd5ILMiFZ-r4s4RZ^ise#Xq(M#c;HxLydj6*;4>5vL@B0 z!O?lx<6n8*6l#^ut~|7Yx@L*foj*%{4bx3*Ww=0m2xaqW4v&M>?Ta$IvZjdK)l0n; zT2Y#;HYpN2Sgkf^UzA$)5;xqe;tL#BxK-Fc<8s@dDMR84*{Qaoyr;x2s)?-)+&^A( zht}R8;^|?RZwm9)>o#wJ(-QM$TlIw=d3ImD7?(v^K1uAVx6Dg1I@-(HyNXNuku%#s zuxyR}wToij9mq#Gkh(7x`v-hWtrle~I?d6Rd}CY|#Wi@?0`-oM9C%_?4%XqUAnJ6$pXHg1>0{|iZv7}W?_#6 ztDq2@aygGJVY-wUqOohG=*Z6(@B@QZ$BnnMF7U=G#(C+o)eGD#C=5bI>c(7AY7#pX z9E0tBZZ^;**@0i;Dc`LAKITAtC^90CqckRTutH zUX-2QywsK9Ak`lfmMY(@8XI|R8Rr5q zj=cf%@BP5v=Qw_WK3%{}0v z-rl1WH$j(k6ReoekBsdV~pZu^LD8NKN zBmPvcY(3k4mKvO%0zX@G@Tf)00P!JzpLN8Gq=;&~BDWgoF>nUPP-!{XhUr3I%k%mk zK_qc?4GkEa(KFqo-hz?X*x7z0zxo1wF&zsWCqmA4kXoWIgjTpFt>!*O;Ew9~S^U*) zk>~X#&lxxn_jU}nJl$}dcd}<+;?LsBmd`?J5C~pkYsTOmQg)o@f!pj>%VoJKyt65S zF7)AxVr7MRHl2yBpJf`Mn^z_gxaMe}T%)v)bUrS5%@Ji(2}jRQmWZ0z#J%M_U5Kcz z^(MATIg}hKhXY2VKe-;@_mB_wN0g*W<8=W4D~S9R0aWN_iWC;jLxaAAZ{pdN&q>H0 zb>m>PW#2&aV((S@c#Ua_Dj%}k9z<|M6l3GqV*$nX!4wpUJ9|9XfJkD~K`ex< zGq6p-==CkLHzH(p43I-QH~Xg-`r>7SYCmtPwoo3dI$e|jzpWn^X-zy=8s{toc1f6S zAzdQ=RRv8#o5xN$2cg6C(EG8W3&cthR3q7z-g5$W#4(vs#_HDxloD4Zq21RB1?zR( z()mIM{9N`P@+@z@e(Z(9>%@8J_I3Do$Otw=5-a<5n3deVXH5=SFLhr304`_Z_At{> zb)gPf{rJf<-IPOd=IK&+vmeV+_%pKa4SweOymU3x8dmUTm5LHqkR4p!*l&r)BFNP` zAgduM#m*$ud&ebYZN=DR9ehD+zgd~W^VaVOv(3J!*3x^!f~F#+Fi@VaP%z{??BEgM+%hKC~C34pK(PB#Z)xO zhy$=kIxC76G0|z76fHLLy%t0ruQ%8LacdgDee^|{Uc?lmk$4_d!();!d#?4VVjSDy z;K|@O1)8^?W*iK*F;NoJw43+6^?MIz;LwsA;`K^ z3mJ$5b!#B&m;4eJ|Fq28hmJap6CVSIBtIVKY_$o;n#6aY%%62XV~i#ngbu~!9~u31 z>et%OL#?1in&%ZyR+JRY{rj8PN`r@=B%?J>7ke+UH;HwaYzqINd?a=Z2f71z#TIIX zxK`_JfzQ(FFLpZQ{ZLj{rrK#r=NS%E!L4u*yxfnFIG3nN=>Eumz`CCwLSc5m<81>; zb1R;jyxfl+Y@m}?QWtlBsx}AE?^EI*-0Uq`*Pz5^8|-LV|JyS^lFZ>3XNXn$R~Ljf z+4RNU{?a}MCD0uZw@J4jbKLnh{L** zi#yj);;%_-Fjq`7pae%@3ZRtOU-p>PZ3cAnF>yn#s7XA%&k%GMoxrWH{`D7>KR~`e zT7s_?pWb@Odu`Xd1<4qf4>2I?<9Mdlyn;Rf4akq{HF7H@UOZAdP^4SCmK91H##qZ8 zHRUe>Gzo29x-9a9fgnCEeNO6qZ^ffXCO1yn&lC_@(y7ZJkAaFs}>Uog6ze)KaO1yrY zlT^}BQIigT2m|Urij>zZcvz~SXj5J*=89Hrt)E_P=iDm@-L{OOX|sjrfmrb@6kcO; ze;xDCXL$&R&8K<$YbppmGuuG8s-r_XyVMdOz(>_Uyb?oj;bEuUpX^Y}D*qUr10~+F zu2CRXi~cEOO8k-_^ycL})?kcPqz*bPiX3Q*O1Ea=yL6>Uui^ia&5u}?rLO5!GbMiI zKh`AO9kh5P7$|YGelMVGaSsKht2$E-$nCkv9a|6c+vuh{J1`_!iGNVDmjWf;CdA3{ zb*6!sD%o2?pof=5*2eE$eS#!gED)m*|UpSMk>GkqqAjk%F#N zyh(;12z5x}w^RaEaQCNh|9;qGd{IVeBCX0wiT{{m8c?3mH=VqK{a27*qaX)*SeHDN z{zW-Z;%5D0pbIJG-51ELG2&&80f!{}qP~{BDNt&>V3%aeR!&l@v)ZIkV_)q}{yXAU z&n;~BvryJuW$0xOfspkXF_d@wp8E2qa6(yYQO)y4J_}@D1T{>ZsuO9yd6pRg8I${v2cYL?{-I3%aY3lU& zG`{um@T$}$+47&NP8SXoAEMhU$BLkDW46#GS*tYl^cn;4U#<5ShjaYfl>``P*X+Q} zivuNoxT#x%khLAH{R;0^zkr&oe-fY|wEOmN6;y-V-L*vDS}GV>Ax@4B_Fr`QPr^4z zro?Wk0Z{lXo5umTySu^PzqLaP#K|Ge9fnN~z}@{K`?mJaZE6yFoPA{t^eLX3scSkl z#3awj+H?kaxcy7$c1!YqEV}=oV7?zhZ%Q!h=CPsmoBkdU4(ILTE4U&zqg2qLd>`32 zzH_a`VJ)pl@$Z0rjQ-xC8@_tW0fniWJ7oQWE|r|7spD zly>zE%M!A_^a|Q=tB@X9oAW!M#H)w826aickN4p}+-?}}5PeG=kngS){ZqIg-$@PL z6uwtMlhEc-`&pK_&Rb%p#CIF6zNLpaS33Kme644U4*v)evvk-%KOAQpV2}R?#qBBW zZOYa&Mr*MMoILEg)g<1*0b;Gr+F_&$@e;&}7~8XSXvJK`-Xd1Cbpm_+Bl-79tX76d z?DEBvH(jkZiEAKG_48ny-Zp37B+Ej)ODSuYpL z)+$Z?vShDv?=({HA1ShTCthm0=y_)`pA&cQ7+JsiRR~$1-8;?@>vcius2*QkLe{0~ z-7k8ojdAv}GfmHQNY6B!m&laZSm_UvuS^OoTtE3JwqwZW4|EYuP3*L3@0+7Ck|94)1g)JvG#%14N^u&;k_xjwT3X^=t5jF3I#p zznH?JSrM$A>7GPt&CV;@KGY7V~EzCv~k*Wp8p=xtm2dLmv&T zDOc@Bu%QLx3R*!iHmPHtn?)fU9ll~IN5vrpw~|KS(FYszPHa#t6lzLzpy(^e_uOD} z^aX*A)a^?#zQQ;d`&r^fIC%7nk!~vt7YLQJ_?~CESh8-068|t=9!mjYBv+yM8+T{7 zo;Z>N&}S7@!YEx<5tWMR_^tMS@AkzumdfBi2>I!q-JP#F=csJxCSeFMgaoVjm=Lop z=6yd;O>nCIaZGp+Gudng_F@pS>WM$)vl9-Krdr3GxtP^Sm+yJbDw82?YcdUE^}wcs z%ymw?LinR-#R8*bJQ5b)|G;=UToFJ} zb*y*~T|S`LE+-yIC+f}V&D4XI>Xk+%GJ0#~(ftZcM+&PN!SAr!=J&|anNu^H3DacX zmw0aGx6K8qaadDs0Cp8qAkzwDOdGPXI5Ev#Zipjw52doX_Mkh{(FC8-QYS=VoGRH3U*SV+ie8`6q z49z{Vwk!d8Xsusygkdf;Quvz$qI>HpxnJwTH`L&IaSZ{|RHJdk5rZzx@rR5>#q(eP zaC3RqS)M6DRx1khnOp~QychgP6e#cX&x-Wv$kHz?P~+F5%PE-!;;#SoPxL)bSVmEF zg8N9pY};O*0Q9Cm0^GaoWB_i`$tcg1F7y}p@(tKMEz(^diOt=HKf%Z~=rfB$T`$2D?I)UT5m>^8GwCt(qpN@)86&v`?lzZamqp16V%A6Eu zlR{b=Qwu8UA*RZK{@%berFroA46>9$Z&znA?hS6_xHhuxG0S&oYtY=HOg|O_J{o_5HO*%Bou8a7-_GSE}N<- zag#?{n^y~~G0Qcy^5gCV;->!fPmfdX?nVvdMY424)~AYgGr#;u^jTV*p%r(Vp#EOi z8+QKr9QND3``MjP0v%dQzSRZ8>EofIpTlR7oYMbO78MVDB!4k{8)ypGTjhH(r}DmG*pJvngfb{*mQ3=(zZHGyXnu| zwlRmlsfKInHt>m-oV@+3Y)gu*=9@Ruxns%0A#^L6-AAnT?m-i^7U z6NB51E-r$?Jri)Vr1^fenj`vXY0v)058{K z-R4n{TXxrfDECl8OGS>?6qz#frY<>McCzBsbG}webddW4?M)IWb4zuXGs-8c{Yd{b zQD2kw5lZtVix+iuTWQ~!qs91fByA~j4T$+V+>fHGaHfR>0^O|>gr%L7AYAhT+;VVd z#-f|7J#gEDP;?a?|CDL9P$9)xLK`^P56kQgkvhEoQ|*n~wyD_3^C?(veId5NKt-Q& zf{Pm=t%5>x*Ua&54EwI3xj%?i53HD4%4_vP+q^2l;6nfr?IvY;P(AVgNHrHV6Y|2@ zB~Z-ua#uCZsAxamLgR3ORQJtI>Ml!TYRcyxxvlYBIZ)nIs?C>&u9$Qamw6oDPhEb; zDZPWH6Wnk>b*H%^_U4XrQ40ILE`i=64A`5f zL)N>Mj5Sd7xUo0*?@n4LO{%(z+b-H9WHEvb(1V0lPly!7v#1$mt}Jl!C{X?H%7%c2 zij_D?&1J*iBhM-K5NOJ^L7%Alti%9(Yk$-<8 zWd3(p)O-{On;1S3RevHn`=;Kr7X2tFB5$g%$>TiNFVxAaNch{_6W5;z#y4|L7xNip z>1q1NpxfFva-?mQ7IF*9eC>OY;B6`j$m*SW?e2a|rURurXD<}!-k|HMSRPebS%1{8 z6=fL;9B5ts1>T!D-05x`_3Ne2hrhY&wq+@xIMquFI@D*2VwSH=-zlZcUq8P>y5>6a zk-VxLyx!VFWy8e)Z1TeyEz3RA@m3UeJM*10>z7Qi3Axqt;ysDFOA}?j6{O8-7P86` z9>j8?rf&3Lc&(;k+?2{Y`1d>VAvxh?={d3cz&)~hI*Gd$MVC=Bj}8Xpr2@6kg(;bS z8P%EPo+0gT5#nor&~mZbHF#K%_WNGN4yBCI-C%PvfXo$)H)MIBGOE7;*;RBhg>CJc z0wuZ?$em$R{4?s-t~j)$0O^+eIGbI=U^8D~kI^jWfD{+@fpvFZohx8U7I8*{(U7H# zdaX1{9)q04)ITPvxj=HGmKJZLivfC5AY`@j%l5Z6wOZmYgKZfvMaB~tLQUq*nb}>` z{L9$S3Hq$7bYxwW!Uus2FXq2S=FU02oB3_hP42ReCrC!oQQ>4%vc>oqxs1Yehjx2g z>DP!9W=zJR%IN+~+>OD8Uu4c#oRgEnx13o=zt%aijFubVK*=LeX0M2{-iw>M$rZV@ zR`XrJz~%$F1Ekd+IGB3l3UBZH>kY@@4c{@0x6$`N=+a0r7X2&dI97ef0oX}88s!8M z#}dNkku@dqD~;g<&Vws1#7%K>PF_w~3b;jTZgX*|>jENH=w#Og+j73~SNrFOgoU8! zDzhQw?z5(%izRMmkzta>TOr{pY(uAy^FB+^nGW95oXgmi1xIjn0a@%4y1Y{K}Dt)tU7A#*89gmnscPD+<3mQUg(!bUHIZX!H z79A=1oqwhsQ;}% zXuYgUW!VO#53)s*+%tuHTQY=N^g6}d<817qW4w(_;nq*o(b#>Pzf{cr?c-i9gPmcn zv+?qiq#NRD?jG`G#-8}6ZC|869v03qi$!swNsTp{hRhZToW(@kX=cmpwDlgvWNSH8 zWVPz(zNpMqs!2)BzjHW|CSaT1Mz+7V#v3nSw2SD+6Y!jY&K7D<+l+aDmyeaE5EwoY z;RAOoiy4bPG_9PlH|JE`B|NrbN_R`(g29WRyAxGMp>$2i`b?F~7G)%La$kvnTbLMG zmm%OTlzA0dcCCMkJ#fWjMXIMU?Bz?(1f-{Tmp7A+JVRK>Ud-beC9_w8&V!qDTjzyd zE2`HQg`tVq<6r;Scb26mfeHE5uDla#b-pS($UYh$Xdk%2GFvajA5s_E%@<1sq-4ox7fBhr3V*Q@aLgC~o zO##z`!qB4oo6Yx3!~T{U%=jbH2x%G|M%sZ0fRb#iV1r*G{gBY}B<`1K%lv8it{rcBG+~+S!>{|ryvJ?(G%g9Y2w5g^*kd`ZS zq_9nUreo7~xZEm%VA!c)%FEiMH7?fjVOJQZ5RZVxqx+s-T&W4<8Z@*_&1$wst1@K^ zjz4A6sf1oUrHPu)l-X0~5;{xF7!;+lSno)3ZhD&4n_z)TJe?Jh)45#z2t1Q#AZc zPqp@O8x%gZ=K0ynd#$Y%LQV4qxj*go+Hwv1`gEImoNp71lri}k+Hy_L$IC+UqXHf_ z^&it2Sv^Zr77sPimfQrX#Zr0j$P6!DLXk30t@T!rKG(%EA;&E1%&fq8%gv%d^eFdL zF}eFuukRyjtA1%GHT95M@yeIUm|6|_D9CnBg)I-eqI3-!TBgYu{%2~~W}wX9DG+*U z*C}EXt-KT!-PBUKGDYOFJ04vrJ?H))Et<}gDWz+w7dM4_rgg-%L2gCEt#!5IYi%)9 zOrEk7aEnJu&BeVdg|v>kwoIYRz%381)C6)38aCOx*d;hQE1g>>;#Qnn=>uJGusC6A z7Bh9dJ1x}zdDZl@ao&V1mAS>)oaYQpIrUyW1V~eM9_J>MoIK^Q@3PRFNg%G=HFH-} z%W|kPEh}``PmSHJXg8m$$+;X+e86z}nMmm?(PL=Ef5>Oj`$dQ5pwCA>FI|IH*-uE@ zb>wJOBYoGvN@;iarXO!U;}PuD-?LGt=Gdx2E`9UbJ6BW%ewvyfS>Uau}=&WN!Of>qK#oQq` z(Zbb~Aen{E6fN>0v&Xp!_s3@cq4BW`9>}aYjd1}(sP`2&O#Wk4t-mGiFkOR&2Wi*9 z;znd$szSP3;sl8vy-WRKDI)6>fo`?kxLn!BA7c*2RGR{2-cJy^yU*|O1VML2TH}1B zLwU-n_PmVViEW}UIT(N=MNn_WC{thN!uYXL6S6*4Win;)w5I`P3F+R@Qr+cQoq#(F z(r1;R-*;^)lzGZ8+LRM^9)0EMGOLtpmYI+PW%kmUPLN!+_)Ldgk)3_pPl!-9^`SDO zc!+++)Xj;kAI8^6;(o}N855cM4U0Y!@`L)UKFJ)7jAGU`&%kjq%2Xe?Q0AR9W6*v3 z&+oQwB4pj>QluUnCzFTRS+?1Kvmt%)+)Gp3lgyQX-4y;NzgCYdpR|A8JwLF1$=S(K zt^vGWYeLpmyXsb6=$v5i68+OgDa$2)C$UWnmOo{GP&Eyick-TFF-sfNE$4;( zz0{t}YY8+R;Kj?oKb=}zM4GKGg(c+Fn&LWM-2P17^MON4enELQw-=O;6bRBYlSE<= z`hl@DD~e!IY2yXDspx*Vv47-C)=|Ih6Y_@d81Q}N`2GhD1iZ9SDEwi+R*RZ8@>`Sz zs_8T%rAH$D<6%-dtizdQGQ2ETimS?(T$8R1aeoWjI`WNOwoNA)NpghW76okU%MD}; z$p9gcMaXQ9Gp1*V;d6e>Vp<8L4>S2V=*dRZ5Js9Vp9(Rt4>Lq$n#$p-j-7Cyp2*jvM5gQJxd^7_y%>> zY@Z;YN4|jwdh_qmDcn1Z8wMJ!Tej z<@k|_aTq(IG(mb0G_?Fk7)PEUw3`X0c!FB2x{88>C50veUM=XKj!v+6@t)4E->zX) z54{PQ(kA#$JW?6Sk-{$v45r*8FCvc+Lr1P!GF#D%J+YaA<27*Dq?3HgE^&gou}K%U z7qeMp|CPRr0cCF+!&Danp{H9ZtxdzS${D4%P<;8C=`tD8w)U)$Oe1Qv;TXa@3D`M| zIv8ZmTtGtZ$H5-jSe$OOyHN|JKx0Itkb5fIP786M7FjH89S>qkGm4msE|o2gS9F}& zTv4)zd`>S0dlJLy^8mdy7S~`}A{iiJI?`-bOmwZ!2dar6Eqy>yuQTy7dZ%4y&&Q-- z&Ltl|3KhT9ZO_CvKw64Ii(S$1t#I}D+k*o=2uM%twKk#bC3mYG2eTn;Xy`Vi*Gjss za+)?L;AnA$82YafSXc2`Vvl#vT5LlJknWj=b)8&BdL(<`mqizg(_L2iWz3v=iz=fu zpD|RwM^6xpodBy@>H)>;Lar>NUNQ>9sR;%TW8V{ZR*K>_ z{-y(^sg{vnj54SHpXZs}7)V=jpv_s-X=hw4a0^Ol8E&Bo~!#(D*ogD8omVm4~6D5-kjvVrtS_wwv z>1PAJzUC{P!0}de%gGM#Nm;!+zpys_RpG?#1oVIS5qRM>aEpl#cK>xQJ_aT zn9e>GC(ei0N@}Gjd<{s;wHlYI30WU^algqZ3>7)hUg{54w4b-N#F%@Ja~8GgoSDr} zQRgbou&XK_CzF4mXocXMZpt*<=_RLy4LKp}sthHV)H#?ge$LDan?TtH4fnGKr6Yxw zH5aSWz8{)~U8@t4d&Q!5>#L#AC^U4&lbBfNl6%bT)+X$cTQ?1Jl^JcN8$pJmqh6@b zLf0DOSIxghCty>T#hi>i@t*q|K(g&>&l5ffNFU@k1B5=+A4QxKY+!HRP?#5 z@+tj(zk=f*H~_Pm7}Y`u(<0)Cqi-c!aR4u+Zi$&cS%VpY-A%b!Oe;_zcS3g$tZ$wi z%?YFhb}Q>-YDK&@ikCC9&c+M;YVJ{6@njmt>J8}aL$!hT01>6ddT!CCEO%lB;6Tgx zJi=*5H*`iuy)I>=0PETmc53*;6^s#?JnFyxVR0l((W(R1Yfwto=m95-=3QLs+ATUh2g`|YWPjwO(yTij0MK-Yk@mo0SR9@uTn9H<4^O3^tf z^M~Qgvg0H1p^kBaL?(7(8I59}Ljn%K9&8Jkx*EsmfOTywVJ`>Em&~J*;eeux=nV{o zR*~&_%dr^`;tu&x6jdltTWFs$%9rUMDqloS&`-hFp$b$ie|FkLOv{)l#X(4&zj=xod!h1l}ErCpfkGsK0Q zG>q25JIc&X`)bqZ5VZV-A_; zvp=)ddMQZjnCpmqKRV>L7btE@sfD^eCH z;TP(kc*1T^YI=cmu}G<@Z8$q2&8FhS6lbG;m)THI+%qcvl~c5==TYN-qw5XGk+}0L zJL-++D=P%(bFzw%;AN@+4AkCM<=uxT#JK?2*BA40Z*|~f=&nU48LN2;minLzo zQCmJQ5Xt99JJ4j{)rv`-*h9LNV%Q7^6mEwJ?~Phz?9lEr|MgFdE@>iNh3${B5(;v; zb(sw#zjYR1 zlYWhGaX(`FaIA9hd!0Ab_XBCC_dhV64#1|L0i{PGUB+XzJJmLQT6J=}h`WTCWij{e z{|IGHVD}@26_6tc?WFnhI2mbg6CuZCJOScS(e}qapHGx(8HdgQX)fhwb zurWb5SD?%u&4w=$hHe#3d^6_`d5j){=^#rHvTm|USFvmwlZldMwmLgA(->?BCsehH z6yR*t8Gji$U(8MAMlnE&Zgv&Z0cv-$iq4S5<1esqpdH4w+yk*GVQ)5^jq+wv7&?!> zs)h3c5@5PFFOT4eQZifOYkh}U|1t`_R*$z)XHe6j3XdTW5~)`TSz5(~4-}d& zZI9rr$sBQ57-JL4I%u+jwC3PJ(`3_LmFut{S!dQxaEy@f!m;?*A6O#>n8wo%N(5mWTa-DpM01%Fpa+v%@_s@FI} z_~rk1cljN3kQ>9th>*IqD{|SiKuxR20pw6+Z@`2>ry=ETS(uD+SV(5-ZXjeg)99BS zBoHzms<1^gqL`8s06gtbN96fWefE zW#qV!$J60Jqk@4iynBYgNZxSd5WSKET(h3K~G~GRv?s}WemnsMMd_@^eF+)TC)vl%dV+X zQO`7&9DzObzDjU8&n`7xU~u1fJU|`Yji7LXbBmnrM5MvY;IkNYpp?%!oHS8es9_A- zsRw>Sq#(4{!#d_Vpr{1`w}>W6Yo~`cWSNQMW0F0f+N^gVZl@1gF6}Q8g?LRTh0&!r zk$8+Zl18m8hZZ&a2y$O2&0+nFknjKrUMvyBO7HrQpa5;C7)#!8g0KkW`GfR zK(c^x+^+vgTmjHuXWRgoO1VUQ0^Bh#6h5t zPdX|a5~!?VM#gs?4b&miJi3JCYQUoNHHP4(K$)#_PfT9&IXNq&Zz?WF(%Ve$C&M_T zh{w!jEbJidy4*;Cbl3f3C*n+HtlZsLd*X*KPRhIrl_%VfC+M8WZn|saa?NWk?EF3Q zfPvB&7>p^J{0(HsB>k9YgTK8(%Wql&LE5JN8JA+l;EGMuBkN9oENP0FTOBcIOM>)V zHJ8k7jpDOP5LRaWLST>o!KCn0rsXB(RMmr{TmyK$_Jq25zag~L1rUJ%s3y&uV0n0ilvlpJ#!xb@9kDiLh z1w~hNGA8H`;zh_7eZDMwP82MPzXz^$jnty6@~MFI?Cu8`84Qp@O(qlz`3tRmGF|XI(!n zlIQm=l=+&MshU5jY|n$Jcb{X6GpeonkZ>;rInKJwn=-et-h#p=+mC`l+8>Wu`e)N# z4y1cSpD(RSAYa}N80u`IqIV}Ht^TjvTWM>GJeB11FfYi2tb3C*oqxVSpV_mhSuobr ziVlyeN7n!PJiDnU_NqniL_N6tCH>n@!QCI4&*?iM@<|uU{8UD8c5~rjq0mI-8kBjp zcto~UALteoS8Fe>o@scd&iD@2+d$7x!?ue{QF>x)asp3=b52xz3jb+=X4(I{Y2}5E zc7Of2JLGNXgW@Oca=uo#V9@(j0-Y1_GzbRDw~6}OrmCAdBbRL|v3g!8R!Be7tIEm6 zSjeg#NIm?KrstlbD|N`)a%Fo`UC4)`^MZ7*X?SkBTW=%L5J`7^qyXVobj@KZLe_`f zktt#4uF-r}lm9AsO9^By&LCC27P`>Br{7ECgMWec&f-2N3fuCn{{F|5ywffH4S2o# zCUSF_Lf59WE>SbuZDpI9Q|`Q_iSnajNb4$Urif`3R||V2l~r&PY3(f&9GU}Vo+SwF zPJOeu(N&QHeUJmR+||o+d_&gxN@lo_dP@IQLz?QR4f?3QX~DNvT6tCe-aa3;X4&TL z_s{t(l3&(YIZmeKLZQsd>I}fqj7*bJwspsK--4{IObHaFC6ZTN_{dpW->?31Uqf5wLbZrW> zmq!YFJ$DbW3J%w_z(|upKUZ89rcT_9tm`VFE+ZfO?bSau2&5MJs4kRfu&j7UtKg+_ z%AKcRmwamv404gR`Pm4X~Xh!vA!^U!f*bQWBzL+6zJsp6OWTokafFA zC@tq7@ac0e%keX8uXQmoiR?8cq&2tU&w-azjG@={~X>lrvBHf4Cg;5?L*l-&3AsK@Q&Js3&g4X zU$fVyPUh}+^VQNM(?H03`J}S8qG2u2^-SG1mP!$26Q4~K)*%q({>AYkCjQ+ zE)Xr0c71{FdqtX}xHBc*6mpn6FXlXDfyd<<_xP$~4e4>;6BiDCoXXcnW${n=3y^0S@v@15vIiFq)L3GIHf@U?0Hzg~IZoE0ZWOuTI!(w7t>H32_}!3hF-t%=!I zh*7o%p-rZkLUs0=8{vzWdVql|>&_3Tr+?N1BAlxOd=&cB_|+pwCF%kDbfHiO`+R%% zs1(ladd3T8{krnEuNQ!0C-^G7i$a3HVBuA(m>lM8ob z7odZ2sEixH+1{}C8lw4Dk%GC{s3$S$7ilmc<7i=5N{qUrK7J|H1Hy?03qyOe z`aLe8Ay%H)$yax7O12&i5YOOaI#=-waZ7LH1=C@nY``P2M|f@^I9B$1fG){{_(h~V zcR}5ntSHbzu@Tsf>UNe~%>km@*c-{2#Qafw)>kP87?Aa0QTM%aNB$tpr}?_GIw?%1 zTcET&PNuNGvaMe~A7p3sqqJoA%nLHbZ7A_nrK>geceFc^*B;-$Uf>ifX{h83WY#3r zNs;>+0)tCUVKjC4X*Lj>;!Hi^l`W|9f~TtM7Y_BfD&{X^>@N9a5w9j&9nO_ZPT-Bz z%uejCE%fB!b0+RJv9&spDfl@*lBkuWOkCsQx*8a>-&$Xf!xv7F4<&-8%hx~$JXLi= z<$Famq+Z+us=(Xa536FhfqP>ChScynzE*2jnW%)IAOi2a)?xgCq5w!H3!ftCV024 zGfEtQxwgPi#Guz z#PCsSg~TSss%`^Nj20+M5id1E5-;7O95Hs5GlYg}`zfXth1Wt^1%=8tLn^uYy&_f& z(1}~Z$>KmcB=!{4mIh?~B@^!`Wz)Hm4IpF=_dGSBSagZ9hZJ+~yhX&Tg#tHcrC>R} zLg>kQ;(f%qT{#Jfr`pe&mL@QbrcOJ|X6E}c`#*+QHMyc#)7p*1cB z2q~PrIuwgGCGm*Syn%gT^kA9dx%zW@t*)_h1Th6*^8~C1#3j{~D-Z2G#XsM)j?

    ifi%qY3)pZ}=jVCrb~yOnlH>WHT>i$7rSeol~YPD6E5^OnJYP7d@WK#SOLGLk-4 z;_MbvsqAK;fKD;?ceN|b>!5oE(+$X@NsJfb>La)+`WZ05HAzckUF=9_o`JF}9GCM+ zO>CS|D8?Go{dkx``X@@#u~jxFUMbTQH@AzPX;*LtfrC(fb`p+@nGGPO;5@lf^v%v$ z#B9JNA-etD`|*pZ9&m^z9IFmUVxCcKKNuiTVz0Osh5hC6 z&kEDKaYm7<4n~L;6-P~6-BZ|+At{|L}fUmd+~))i@h)TL@HV_;q0K zETk3}zun#da%;*9j+JjSk}VGhL9rm-RZT1LolYg`J=l~-MMyD$>CI0w}!75s7ElsLENHd>=M(aPEJ%5FA{2zhbh#< zS%TR>tSO&7M^jRa7LqU|PQ%`CjxbJ{B4z6`9I87Q2DcFOR`})`5@n3h2Wf%q-QUd|NBqYUPxicmhSD^7{=+QLlZ%s1$oP%Ju( zX3RRd?8keip*qfhKJh$-6bBC>bLWI+3Y7Rh)!k+U_6483DUiG8=jL$Qh9ci?EY5VK zUgkla0*?dR)n1l_3+3R6k~cvYYH!)W0NF%G6pv^+SNffu4bbC&tgV|+vY!XMG{a~L zrzfHqJRwr^NQ~j>{yZAZNT{z2S<>G|6Z)`q7&?1i-_ol0H1m3!R zbV-zT>GKTYWA#TtbyNIV&jD}SHJ%JYQ|?)2K$qAfcJ4g5b=tU4jK5gnj{Z#f;bxa) zTdxq~Wa9P8>Gwnsr{ET@dzL)e!+=B5c{)-w_f8;gA*gemrX=-R64^~J8{+;>K_P7! z&9tB=gp-erz*|4sQ0$B60i#Elq9e7KLC)!fz5sijZuRDh*ET;D$~IPVCZ3Esop*NS z0P(Jd=Iquc8rJcSO59sUyt;|q$vvcK{wPhDZ$Uie*n)ghfXx{qWv>&&TX^Y`7-Q0@ zIWM|cUEI%-T>g8Jc792-G*?_q-&Q*yeYbT ztMpOKc}WPEGfjOe8CCOQ%(xw=nQ(b^iqd%$In>Y@&?VW#(84Dk&A$kI96l}RDKr`4 zUeUNYk0(Q1tr#e{V&`Ubk0wJBfjEysAfeUGCEnGLnBd`XpP$X6S)C{RVNsNL6-6ja zCXdQb138DaC=&2;sdc*4xX!?6BAu5KH(~aWCTxBtQV@FD1_3r_qkX&X!}@`sr&^-{ zG)@Md3d2{~0WnquV6N^GL+rBW5A;oBN!7hzpQP41=A5`z#MFJc9#{`BXk`HYR>&~+ zwK|CLkrP{CjO0a5e-z@`C0T9xFI4s6u~Rs0mvnVCZ3;~grx=hod&IYZc(<1BYpD$g zFA%-he}m|7bW`7)29M+$IJmN@2X+?|aX*=q^3(}A;1S|&EuEocn$t^` z^3G?$K=-Zck>PFM1>$$1PKeL#Jh_%6*>_sII6G{vk{JQI$#}OQUQ0rk6a&*@Vr>J5 zyU_cf_$;w=r=f7GT*RvgSzu_wF3ElVthir$^mU&Mq)ka^xe$@vl+A+^quC%7ZOVH< znVW#!?fm&aJpbIJQl$nsr08*^+#-obY{F@Nrskmp^7NS(?V5o}=vFDF{<}860172O zKO=Q(`K@fzBoN~*Q16n0+j+aRe^G0Z3jD$(f>%$YqA-P%^@tHba_vtFO%Q3bz`qjH zd`%i#uaz(>bg3|P_LOm2<|K;Ky=z|nC@82PK6Co?_*&*%^I9<)0z~&KqPSZ4D8!G$ z@0|6`LDK;S?{IPgMvvJo5(MBy!nhc=`Hok!A!W)I;!KB$N;=lHjUv!sCQS2CxgPI=9WgKc+RL`^@~dJQyqI-?VrMyufX8 z=EjiXDtdS`br8vd6PpDB?Io*4!8n<0aRXn3JqBKF=M$^TelUk7T zP_l==1GFx~K|CWIJceD-xDAtG`r`Itm{PV;4g<(^xl4*ji#()g)BMUO*_FMe?pmFR zC!_jO3FOY9#8wx$E4^1T1dxub&c<9R8$d_eB8f+zfW4w?NPG+R;?BH*eTUO#4dbG( zCW66@%d=CCaIvyEZxAp7qa{icO%6#qA5JuwDe+{K)ynXI*$EguDASpy{OV~)MZ6SW z2ny9Y13D9hm3kMO3@N659X`3ln9F<0C$jb@$({9ht@^B|zQY&z{DlORO;Xu@PP=8% zQXLE@iW_G$B{nOLWvJB|Ans@e#+3$_ydd71!o!{M*URif)~#uGgO0nR@H>&!Jfp;i zqKvsZ8oC7ynDuu}cd=^&p}2Xe=)^a3vc=&5*^I2fIOopd(hL%sKgv1`!5P!VqD$Oc zV7C^Ehl0?cN4Egx|*}8HyS8LH=AZ8UMaiAbUa!K<;jV?j0(|>gSlX+ z&W3Oz_DB~}ud>ufY0C?TNjZB)Vh?FT{(KMM-KmLFw%T?&FzmTs?TdfmALhUi7FL~OC-wd$Y$z+huv zOcYMdbcVQ>x1hQFnrL(>vwqbZFiipcLa$db^d^{i`GW&^~9^aj6kdBr9Q)M{;m zy=}ZM-^x$~;(g$_U0bLGh-ZtVKz|F`sdXrYr7s3}TMNe399I%Soyu&$&ebnvAm5om zDDEZm(5&Y4ma4BHWDBF+Ee_!e2vT{7#MJ>lm%`4KLFgxIEz-YJkWtc+Vy&*LJVI8p zeSxjkuLAU2Me30~4JpuHWf(Urt5KFjT~2Ah&sOKei>;HCDvFhF*u`s&m=jm0BdNI; zI9fzZjM>wFlFIYGo!!2`Xze_wbBSJ(6hol4kuhiz%WIN%;+^~`&-H!GR4 zl?udL(AaXR3q?EQQt`t8JxXq6Iww(!k3!iiJAWX)TdCjlr$L=r@m%X#QE&Sgzi<-x zBGn^+Kwnzf&oSg|)5)3Qa+QMcWJ@0fW3?nkez&@S?c_6xIXh2PDyc`?zMwPS>(j2fW}1!zMiWKK zG+0I_j@1E*PR=ncL7vIKk8W>h0-;u~iuiRw z+(s2ckKAtf>^mQ2rWoMl(g>`U2b4_&kQ9l%lOT9v*2&1(lAPF^2PedD%$>)Qpo=Mm zKpnESO9*ANIuQnxMN$C%mC^3_&*Ox`RzE1b*T{wx(m-A+D=Wm_cGLiexa$o-XftdV zDbUs^`#Z-b3cnBoep(ok&@*2Q5b%95X%mhumcp(HTI?!5Q#0>~mV~kQz~LZXF>Z}= zUu!R!X|PC@pB2|sPdnG6LhDgC%E1t4218sD7wRZRa|H&Y7_&b2Clx(OJj%O*G$M-i}LwiZx|@Cm#ziU;zdR3|J?#jLXR4| zZ_c_`GEmlP0cV%QgI#UPChQY?$h~qv-gglUQ>~02gdkhDe+I1i8=ybND*^D zRvQ#Ti8OxScg5;Kyl?+?(>5sbB0ISSu;)|t5B#cV<8pbZk}EH?VF1H$Hf2iuQvvao zzZ&ynsQvaj(`_-|3xQwNn^A!C`?cl?SyxU=<|e8(2oCK`g-a7H$8wPB67{!qe#G{v zTOWRdBF}`Zt$srt88TK0r7^{?LZ}E`W!5hq>w%F>-2JTbw-RLa*wK;f4O<2Am7wvP zY|+G9V-77B5)A(#;?6yWJuAfaxtesU2YrFM8+ro_RR;OO8^oE|8Erioa%I7~`ySzx z>g6IB!d1-Kc&)@4&=YUs?Y7%PCH3k2Ma$tl`LQk_?j=#SCXcl$BV<$hD7HFaSCwSu z1zpsw1s#noe_ELDmIq+tKmTEp%0mUQF&lMD`@h8=_Pw|1pZ|cm!2z9cadTA%P8r>~ z3M=TdQbEYv{_?m~jCS4`46!m$;;q*^D31t!vJZa-L1;DV^H-^n_&F)<#E}>{Y)?+y ziF-+8_2^eJik8(xDhACAR%)0CRMX86q%`LjN z5S_Fb1|#=Hfww7@2Q-o{6jEge*)^Jwe^K_%_cNCuh;9aj`bR``n()mimDG_5yQ)N{QcwF~cc#x{lCGK_vG?;n(-*JEPBlqoT^|W!Refd7 zUoTLP1IC!xilWIFP8i(I#OP6cnUDibrJFeJ=pFiI=`0Mo&kn<{iDER169egTCSFd7 zm&UQO|9JrK=;r~VX5ytDfwB|c9+|Rw&U`a~EEElJkbMW#7PNNf;^01;yo+lr=nG*% z19G4iA7vBb%1V4+;-Se`3>2G3({N7|H>uf>hP5chsdTyHT};!v#$Z72v$MSmEdT-C zUDek!sOaO+WRDBIgaYvW5I}SjCzn8=sj`>f^S6OQ%i&34_-e0}3K$T6+ z046?K?E$hW5XA2S!@pPFo$GB!-mI7@FBZmN?u~@3+fayJ+0>fY;{A^P+e1O zN!iC4siS!~8$U`DcI%l2R6$ux_uUA`X6`&FOs0-n#^{kk^GBh%ATF9WXXM1$LY)YG z@mi7so&S5Q#JNEB+pEnT2tCW&!Z;PmRPNtrncojCm3adQkTa_8?sZ8P(_0hDHe3T- zcdv!jeNN)F2M~_4Dp5Xaix=y*!A`JY@EvNRFfga)X$Sp6G*tL zK#$|yqy3!CM}y}^Nj*{^ezmA2Zw+y$bbVHd@jg&2^=dMfxFjg?d|g;0+Ohc9&@R1RN2IHc}s@n)20(!|xl09}$z4CMP8oKW1xc84DzTt=u`h~#Fa+V3<8x0F@w6aShBy%P5l(oV3H+abmMB3c%J$VV7l@CIg&0_ zK|C`W0LOXg?CWIHgvOu3qy;II_$Ye$B}Y{9FwRKYgtCpq7A2hAAEkQ0&nnyVKRQEv zCcQ4sha7C`2wAsfPtq+>1p>{(OQvvgb1rc%5N|~e1VT2kGhgEc*q2f^HNwHYBy>qy z4TP*aXY4NStdZZYcj8B3ROl18(o>uoL&}Qnl%x=??E7K8gsPLwJR8m^xrY5$!TX?0 z!-GNhFD3?vuF({L!#4D}(Y|JT-*nh_$&`4T9d=2)ewGw&SMvKzLo@Fhox#<)dLe#X z+<^ou-rc6Gw?N)+kHnMVZKvX^ zMdN;NZ-tI?QSd%v(7U1lfxHWJ7K)7F=Zlc_(X><3HucR6p_OfJv&iAQC{EyAUr_Qb zDDiH4(52mMo&g<>EhxtA=G$f=IH60jm<=c{U5bXs+TdJREj|j8v}!`1mBP{rYMNmW z7`C<87biw{ig+LLTG80*qtI}lm+EWMs(R)z2%E0wDx~A_%l%ttk}sUvi6v`IvE&c&*zHvbvF_isDtRKkA*5`GN!YsMB*CxIg);> z6;oVV4dK*;%}bHdkfMu2TgXPuha$b7U5-^3zvU4`CMUMCKdn`9jW@p4i$)0d#9=k* za-yzT&HX*eRVY{x9|>b;&G&?&9^tfabhQBjrPi+#SA$LlAx}Cs$GDB@lqI!k@w(^> z!dK3Lfv`!#dS!uH@vGgcf5qs*^&qtrFYv`wbB|m<>3rMdM=6NCD*Bikhbp{^*ML)$BSZ z_UP{-MmJ+_L8FH=4TO=D+OA^YsVM7Rz9O=R{@y93-m?fQu=fQbvRX%HQA)mPNKEDn zihJf@05P3Wgj!wQ)TL63gY&dh=R{e167Uqc#Y(=o0dk;i=*mBZ{wWOvnttT>#lmz; z*{B4eMbnYOUePwMmFGP;OKbwU56U#O;h{c?o#myIr*exSU<7W(3U7N^Al^5HG}Yw9 zw+N)`#UtihI!OrhmKFnYlDTNKX8Zr=+x#d?$%1-MI8bb5uaRe$q}4G+Y8l;+2uks; zE@^yzDU{~1VDzNeA_8|_1%zIz9^zC5v*iW3Ivdc5T@tGekh;Y4Xm6P(W$I-qI#9e1 z(w1@GffD~*>9;x;%u{8vIw3A6jO{DX`=j(zP?G1lx{EDNcP375NJS zK`H#r;-hS;Lvb4i|2Nk%1uYZnT^ho_k3` zc^GfavU1;4SpS`Y@xkVa@)`I^`qwkPn37mVCtTb#5YGi-J%EdO3KOwgWNs1JfYWtBFhejRzqK-{$wI^0UVoEXt>$tMoYne=(SYAQp^#D8o=ym~B|r$u%7Q_r1V3%Vpz4*O?tpq9@> zJ-t+}GQ4Q^*W6owDoQJR&bDlbt4V0*L@}!qWAkuM(vrJBDhOF$I4@J;)}Lx|fr#OG z`E|ExY#U2rlm9(?KeRrIHVPfRXirNLa*N5U-KIR55>Kh$MxyN3N;85H)znjBk8~gu zZ^}cnt~@wF=-X(cHeXP@mPC1E8XxR@x=AO~WvaEEsYfQ=Y3T^!U30*E7n-;wogsdc z_klUwnjTgX>TUtIR1kXF*-43SfpV8hzI|~*aKA#(t!aFvC}K}9W@R!Q;6QPzhw*ES zINS&5T{??oi-6rDBkS|rn*7(=J=kWIyUM?7i1+o}5r%I={Hy0a6#3536`|$e{fq9X zCl7yYyw`uW_17ZF>)GNBWv;|iH;-W*IGT1#A;wt^d z+&u{j&o;-`a~1xNMG|j;;m-@uTi)$r{*5@%;X6~H#Jj^UIiiA)Cw0w7l)HL!r+#Dp zLt?;=wvjj1t+7io^&jLal>#OHHX%M5elIo2OLh5kd{%eC%fpEMCVYb-r|6Zk z-h#q6`6$*Zfm-k%R2FCGCj)njq^#=`kh2HvD*R?NV|NRfv7rNIi9DH* zb*JS(UWB|24m20U2Yr9GKf--9c&6|d`J-$@Fw9Zr?qt4LCXhC^&ZA-+%27E5(6 zkaa29R}vxn&iCbVcIsLv_sc!ST~XWSXQaOJ4OpvV5L3V49!N*?kQl@&FW64HpwRez z4KvP_|NMs&;?n%?lXc?$09Q+OLYKJJnLL)noh4a&$pY~fH14Iv=u9Drw&dzF#e2yH zIGXwe4TMK@pgS^`gCjF5wGT`z*o7*9#nk-o8v*XI76XJ7yxQCq@mf$YMvpdf=dmOz@U3L85_!MEmGY7w#XMFL9>nYe z?@4}EYC4sJ`3=~e)I3nwHBUnL=RZ)Ufo}oPldy$00pEh+w1>J0m!!UVbQkH@kze6Q znQlp!gl_QoH*$1Bu1;V00rgKJUoUU~ZE_#TO-r(=BAgZ^h-(in?%nAtsb*&YF;U&& z`|OgmiW{?TBJ2v{ebBgFb2$?Py(`S2gi{-iiSMcxIJS(b_cFd4bL9~*x_c8#e72!P6&k2GqD-P)Gs)coGs2qm4y^tbZnyV zFg7#yZZ#PauN7#yZe2QKbo%}Uqlvicx&d^g77sBb?mS8hL*k_jdO{yZgY_@y3s?_0 z5Q=)qjsldlHkWh4}+0ztouch&#>*Bk2)psc~ND>b|x&WY~5 zpyVM{j^j9qGa{?kjm%7=yT+HEKrp~Ny0n**1vRk5)c#Wm+U$Ozy zM*dUlo|@%(70Ucj8>#66q5Jk{P3N=^-k47R&k70N<~la=Y<&?_X!L<~>xuB5lEd?o zP}9EjKnceGtethMl7${q%{jP+KcfB<()U4^%Hlm@oP+%w9`cLUW0$Q3 zmm7l2E4m9BiJw>IJfeyZHDY*Lx+a||Je1bxm1S#VMTsv0(+`iDQ2wTnuez)q4gLVR zr*3S(Gx2IFp(3j_C6~P<`@U4@RK0cUd`idWxHsOmE8_N#n3wtIk!ueTsSRt;L^=Y|@o)!A=9s|2B^lO+nW z9#pL3i~ZDXT7YsO1ECz7w?d)Kf~@7APJ6!n&HhfAetj-qhR@O8`IN0uTNW1-07zUau2$FJ?GFY)Vt{d_F^Ef zGMJFpqJ(Nuon<9jFir_rEqTrRVxV{ryf0>%vUp?nAXvO8&@P-sA$chd@~UJKR3EM= zUgBg|F)7NId?k+epwRMdLFNP1D>4S`_cZ=;Wq)_QZ8UaGFjVyBn_K^ca5&QS*F<{{ zl=-o~@fH^nS-{~4>$ zF8uE=J@m@N`|>{lvJBd5{zN*zM)y(29`~6FjrSo-&#g#$JQsag33sOOCFhjfypiaS z3~zJ&tWjRoY%Is8_hmtjJqje66IuT+5`O7~lzGm*vv|?y&Zi$ZT%JaM`sUg6)zU2Y z;q6|x;92ps4W(qRr@JWt|ES%Ow#K3!1G`zbHhrs3l;883gt8CT9Z*|D za^H^___b4Vvu^A|QDl9Y$Iht+$~^bZ*FS4^iJB)!@pl4){#N|gTz5hKVoyIF+zB}P zcV(A3i+ASu_eZg>`@?4yD`aG`BBI$qE;|s}vtaEn1b<6Ut7loL`Ln3^F=D~e4 zA$JYkYf(Vfea-url!~YP&uKv(e@_y2=9e}IgfB$-Id{H3R)5cQs=LS#^sy3+$nz91 z9#rX7CcjCpM(wTA<4Pra*Xv64MB$gre~Of!#cQe)rFhKu;8#dl_EFs&E*6;nKKaX6 z_SPRcvzPdqS0G5whI__drCYc5WtwM72?iQ4`c(dYQRav0(vAJ61U;{&95zZJbFVr( zQ08Y1LccH`pZA%1UH3-WtW-?1^&zgC_*igBz|o4GkYW$%ky9+aHoh5PIM5Ctx(xmo z{p4crB0;!ROjcsNW%J1Z5g9*x;e@P`CuLg6qb${reg81s z5h>I}w=X3ch82^Mqe(KGi*wj2mwWW5zvz5~cjD$@2a0%GrhGzCFEP~vy)}#t{?F&+ zka^?ynyXV92IIRg`&r~2-i)Pjn((99f8lCzSrCkqQDr4HgbSI`I8xYpMMH(ud^Olj zjKn)_G(mzu)&`WV3Pmfzlv>;jjqjlW8`_=>vGMd%K+$I|7RiZmH7&>?Ph~Y~7u|Xk zb1ga>L#qI&N?sDpJ6zVpq84O)cLGaJC_c=dvZz%qE5!xy=1Qw2Q8OC93QVpQDW$zp zyfV8>W>8DU4|7guv(PZxZ<-lnmW@;6fQigLNLhw_BQEc@_iX{45^(Tj9AvvY?a)a) ztjE$cE&$#t?A)cZDJ+$@d(kN-N@O-nPCN;Qi}xc@=wR_m$ojZW<8HmCCWaKv!5E#8 z(rUc<)y{^3S4`S+GWd<^TWu@`NL|FyOK4*ss+ch)V)EpW&%L7AKqpKduHwW#Q5Vnl z1zl5CQUe6a>?O3du7%?XWw114j%J@~B496$ZfUZ~RLrFy)K(vc@X0bZd^>%zwhcI9 zX>md}8ORB#o887NU39aMg`puDK0qw+k;96q@q9KCHw}gXg)Hu%xFW9^!57QTv|?%) zfvMYcLU9|jtTdshS*y(gX{EA&jQdrkaAaM85VKejcY)A)p}c3CuaH9X=l@*!e1p>h zC`ukmyewnPV(}XEgWa);2Xge_BdwU_P^5F*JQUt6#0k8fa#=h4X`sX$=$;DcxOcUK zIAKIqPdZb0U38eeiUQx$!&r9IEU;kH(6KZ9toCS4!bqziaGFTg^5*YJ{G03qx1oqV7j#>`tAvyHD~ ztBHcStflIKR?pYO2+@o7 zJ4XXB;b4`G6RHsJvtpV}+KLy13*PqOqRf9HA|&!4cIPW3FX@{1{6+o34gK%eTJJE( zE7_^`S&2c&nqn99P!M`rZ*_giC5u^|z;1$}N9@L;cwFpquVnFur1Jo~|s5Geo7>WfZ(tBXqt`WP$Rr>E9Je!V6 zvup z$s)NFinh2QMRUSJJY1j_8%Id9Ju-4p&~^7Ar!+_Ln2;}Uscj(S(419G)g(C&%{J7O zuw7rAH!zGwHWs65YWBx+bNCTq0mLlJvrDshy}9z#j0w4U z7?Jf!8%a2KTKA=JxsO2FzRTS26Q%5rcpzCD*WDBCsfTNs1E@}ydoA9?M?18 zF{D?Sc4oMT&_Q|R5^B#$Fp%dJto%VEvH@b2$MB;d{cpID1EusL@b+Y9bfO&Fh%lP{ z;<9|zq^;OcAW&W>q-R4<-I`96j*4z`r)QDHT_J5lUlZ8t7I#(1F-2t2Qnacfv#u6nRw#?$-R-&6ViUk z=QT09ADE0|=8c{HWAG?G5VBf{6WDyEt}vS*-E$Xxj9DJ5j;FcP?1Z{G;r1e5u^5om zJQykS#tmvfcH2^onQ6323$G|YRKL&qj!YXwZ0G`8?B z)M?&MD0hSH35K*{PI+h%4an-2D$BBcxNeMGJSH)7bm6H{1m)tF~0fy>! zraT+D>@%Qjom_(2BQxFh88MxS2X6|He!BFis?5E$Q}SqW&TJlFs^aBLT~ySo`U+uD z*%j9jy$m@*@?aW0uGE(l3zc4a=neC@H|W!6DU)gLqO^Q*MaiSMZP6kUR`5#!KAhPE<> z2GUDY4e$Qk8!LV?pBA71KaCSvWZ{>VH6glR6QR(+y#pj<{lXx_>&!(DvQ7_$-=~zd z4+F_VrG(d>BQQ#D&f{tB3CgQ_T*;?&Pd=zZf$n30^tuRHUmu}!BE>m%j#`4yw7Nir zGFOhhu8``S$itkoX;sL2v`oA8eN{{kNf>+Zkpo=U3Pyr7JK~swfX?%4W1J1WoEbyr zJRS`x4_~S&CsJ=?7I|p_J#sWqa5bJ6P|?{Go>o4RI!`%y`~}itz_IDAA?*O{npR8F zMP;>kTPv;!G0S$YeSSg%M%Tz2FQ7pBzaKU3)8`06_u4J>5pNbdP|>XwgdWP2^8OsM z+<=!+ABnQHu?EWg+jT__G?%s*A(8ncTj4HH|DX*1Ps0uW`iB!@met~(9M{Cv4l+8H z)hu1e#YzZSz1F0%@yEgmiz%&`MgOG55S`ek2M$I8-qBw`>eCu zf_!cY=d&phn>m6+uY?~K>ZHsbwW~BECifZGJYBkg^OS2^FABQYbX}Mla(FjUxY#>r zIhXHB6wGXtMuGD=vsW#}<4RoKKdceeOhMC!*Sm}331w(qBbg?n>HzjHTiXVLH}lnL zU-+*VD0bi0J}rPyLA{cq@IHN(>Mpu*fN{di-gyL$2T6sNLr8mZ350x~RKPo8!l73I zk(|=eME$ogmr1i64gTt(6z>by<@zkZeuM6Vn$HllisgVZU)kRQ=~{2Nb)q;MrPnx{ z7?Sk}Li~lw5+7=k9IDJ2Yfx)}k7M^&`Lm$_Z@l~n!ZK}l98a2M&Wfzw6zN5P{IK_- zz+s(`o(-NAeNBM}Wc5Z7V0`E*r`f=B(KhUHROa4N*8LFbLA?UTzd?2t_O(@(d(e6h zIWf9d6k{DvZYhwq6=6iV2L<3C3#+XH*j#?cw2W z=n|)zI(_j>c9-@d1%|!pA>2Pp8kb91==WPstB*%2YFpT#tyc-+B;!N?ybt=SIB4bu)N zuLNU{KO?vz-;;EeAk?RTtgA#ReTrFob)6{?q-VoHrrL|LysqMpXnal-mqG!(PXo$f zUkSJmBgXY0;W4|WRL429F8>P4=f^&0?scW|)uQ7QWjXBYa_N6z@?4Od_DIt6F(@3{ zXviF;$14pxZ&WByZ*k%{8v-r4-AP+lEc(?DLvUt6;1@ZcX82k9U3Kr5hrX?t=gSj> zWTCHE766+9PPz-)S?IJ6e=>R=bQ^R|S*#}H_+O1enID_PY!CF7g0x>n*53)z`fH&F z^$X#YE_iG4@rdh3JMu5MP@)#ZL(@m_=a9aCZXYK~sd*$GG;_~^A1xT( zK2NBhZ*YQeA@1cWZbNbcs|U)~nazfpn!;txioQs?mLc=fN>AK~rSW_Q@iQA>M740y zU`)V~tp0KW&yIc;Z~fhP2hHU|mJMkE#4J6!M;EIZpV&ZU1hz`gh+@vXRxM2qAp~QEE{8?;&C%g6x_Mn_ObyAnFH{plHPm}jJ_O=hM^q+>P@F) z@vW|cTw`y zB2Y2MX9T`^{07lzpmP@pJ(TGUbv9h!M98{d&upde)?5~Z%;vHGZz;%Up;{BL*--to zRT{5g`W}qrEM23$yk}dD#nklVy0}q7%GI>z+R*`;-NK_Ld|ar zFm4yp5isQO9+f@M`47iX-IqLocyhjCddTHhQTjO7l>+gc5m}GAJO*Vx?5{)?&+n#$ zH@9)@t2t$umO?H*aMQQ|bgfhB%CZduhMHEBfY6IF8K|G_4q4WkfZgc7yL}(D%0U

    rmNhB7@&w$iqzTv> zA-FGfUis)tbMuc#0d`GT^`U6v;6!{=(p)l$xug z{Fg^N9kmS%JX9)H#uEy;)nr4sz_q-4zAJGH948Ean(lW)y(QqQ6aPgG2cA&U)<}OSg0_vgIefem?2Hi6oinFG(pL(Kjq_b&3X_N&J zaT|L8cd7Xc$P_pBL2=_-V`)%e3O%+WGfg#IAXyt~dL@v3JnH*~j>x(Ven#AgQrgG2itDp5WY%SvFm~U};)HZskN(OIN3A_F@1l<-0M9w*aPg*q zDUr2O$caktlpX`cvktQ>$~}9?D;GlmHlI<*OB)@K4n?>1oF|haUtnxm!^I?x*M{#D z9`#`tGPVBJPA713!rT9s7y66Wcsbu)n#CfL9k3*%FAbhGJnLWdoB0=Urf}$CO^oD0 zVe1Dju=n_R#VkEs!;w-K%3~C(Hz!JFuN6lp>Cf8k3$53jw#vnVLl@jOvweB{#iHAf zdtYTMzs(*EU8gMZ7cvN)=By&WouwzrLsZs-{9Yj)wEx-aC&OH{%6nxQ|7gP3&sj1n z3f<R!m8iq(7!LTP;dW1)Z;<_gT>(Yn8)J;f~>zYAQP9G<}r)@pXL>%K=R>g znh;_ZPh)X{CSdgr$Psq~q^F}7%4?r9$9?&qtnJ+e@izm@lQVSr&310x#e7qGG1;B1 zuS^M8UuKqGv#>jdhY)^R`V~UVvYAIhe(e7|>$t@7Df5bDcKbfNC1L5|{=lI3$U?n2 zTHIa{gY&Z1P))>Yelw29@yo$$-b|CRI9?w4)V=3-+RDUNAX9l+-hI;XG6DsOgvd zt$zMvR`j7b6}U$ij>x)Ox>=~tmCt)a%<{udUo6%+zvL_R)7~2M8P`g9s>N!YQ15~A zxJJdB1Ed}s8K*VzHhbPnp}X%=CybS&=brsl**(?t;RJ53xX~M>WHCA?lV9@>yB38S z#uK4U^#r3?>Zk782?C160Z@WVn-Xv!9xM&SrnGQ0oF15^3(|V7$*%-sT5G7~-GV~X z1YILY3pr62yN$s}W$e~pGCNN-B`*{LUwq`Z+Eg0Uuln^RzE4I?O&@pMX0(Go?3u6n z`36G+8&c!cpr1HV_|FrhV7f2ZcOK0j;6dZqB)~M=u6)G7I5rYv`SbuOnnartC2G!L z`qTx6%+2Rdq=3>yr7^)s=G>?>{-gxD-n#kL<4W1?Tpp&}-?L#-F*hD9zpFM-KH01`t#!`$mH7VViDom!K!pA0V z^^*k*rxoK9veO57B(OVel-XUH&|oWM3weRfigBe1$tAS0II(;Bl-i(_9!cR~?e@Ru zJZ;%N-CRH4pl!imU!(160j)Cqv@&}bS6TT{v0;EyWiMh=o`q`BKv%TY_6Vri5uI4N zZ*HfoWx$xlW60vQ069>P(yg=UVSyj&R&jl9LftMk4J#UGzRn8>S@%o1xaVo>I+~Lc zB1kV$k2Ns>&qXOc=G*4z4|A5kLv*v4K!A#+5{g*)D`R=Cc&({3Lf<#(!S2PQHq(mOt^uta1RQ^VeW!dTEBrvW-Gikr3DbPtR{)8p#-!4>sq3?d`g+kIc!BEs#yC%X&M`N zhv3ARWnVu_|7EzxHpbVqOMP1ZT}l_Q1rDx0$ws%FfL~_CWHmS;X4%YqTa61Skoh&# z32#3z?@cLrIw^h4;;Qaix|IB!bA#*vLF#QO;FrCX;RNZmjnN4aQ(T0ffv348Va>@`2So2^Naa#&!d+qDSgz ze*Z8jjmOS1o9+R8l*bVbkk&FF>(!Y9^^cL1el5g=Ca>NCIg1CdVsVg}=T`3t;8qXLNsx;6s} zsu#J6sh*O1>_XlLaV}J-AHX^r;=P3aP+tEIW`U6eZ*3Y$SK~kSi7hiYa=FSa6M9wbp4@v!TfT-VqiwrFTLu)qX_|YT*i&{kEdoiWhW#6y){`m%1`Xq8z0WMRz506bD zD{=s}fv7Q&PuGTaemPudq!fB;TF13*WN@0kx6Q(5JLKc@4cZnA{yg9|+ta4EW@c)V zXdG*}SmctRMLRa+@<{|SB`w4)I5yh%ac@@0CSyC4B9(S-iEfZct4O=3+_u;-7^-M< z0*+?Ips5wV8^2YQ7V_@=XsYExBWSx^fvMWntib>Z+yldL4DG$U(vq#-ZDzcgv{7v7 zyTVklw3Tb-&-1>)Db;pkd;e%dFo5DcCeO1p4o9dcYhO4uQ8e08!p89=z!q6t^IRh} zGn~XDK%|sBYc#(toFEay=&4;OJ?w;D>fy@$oe~2K`Q|Zgq^?^v2V>iXZR=MG6L2(Z z@6aWAK2mq(Na6Hv;x;0}X0RUBm1ON{J0047v zVQy)2XfJkeV=i=fbX?m_lH)cE1>k+Ea!6Q2JnTqB2b4NV-^R;cc#-lhl^rjZHs1p& zPgO?v9!ULImTlQHkzaoi@%AX+^&*S)@`h59x=>b5N-wUbU}v8OwsR187|polUrr_So~n!MgRqRZ0>MwMW;nWGgstMX&P!O|J5H z2cJv3N|J#Z(p`gjT`fF;nQO+DVO~GB>tt0DEhN1%6_f+zBa3&nyI>?Ib3jWn%8i3p z30Tw$tSrjR@%BJ<7GZ6-ffBk4wGLRNN+=$l@#=|?tOmW~c*hB>ePOHa5qu4f}u+dF#lU1cEIiLP}d548t$tUMymOBUZ1!Fg$s z+(x8n@2Z%(i$`r=p;aoVrPm|LDhbU+lN3Uu`aruCIwuRM8@shXabUizdSaz5s^>E+ zP2{9ymt^PgGPIuT&T%bX4IsVryLQ?RfO)KIRwoXvp`9vYr{&AUde9jiLe zHEn}FC6nzoT{YYuT_w3B0r%sTb=X5(>wTA~my^oiszIDIh9pyU(56Onn=AnzkPtr# z8P?gi(XE8Cwl6{pVXS;`j-{Y1qh3xb!DJ!aJHDnGu?&nA+U?tgQy8lQX~S8Ok4r2HICh3&dxO;`<+?K_95Q?7)X60@vyfS)>Gfz@pb~UUe0u zKMt;>l@s#!e`Q(O&ibLi9|zFiR`VjOIQ2Zlc3X0isI`wI{ba+UVnBVj09vbTl4Qsr z7gk=+417T|&B>dMW|>_dkRdC~?!iH-)Oc$yAy2Nj?+?i%IS4O}Dw3_5k?}n9Q-;*IZ|V z>%C_~U3sLhsWQgX!LL;zo2o&#LMm(fBD6;50l2I|T*{DJAvszNWtXTabZi%Y@#Uvf z&M`@SiT0Xa2DjH(Uc&2|{t`BQiG|zQg=L;-*X5hyYoz>)aLQBo^km@Y=Zr~CwzKO9 z?Ez{spHfW7m%OfAm7#RoMV2g>)E*bX5yi6hlJ_GGD0?5mieqKqCk8_$a*}kSjy|7m zGTIgu4McMmSqbGZiswZ`pS`w!vGGGL1P&GEyEsEKVvVXblot)+fzY4a+|1nMY$Tb1 zS5zbq$IIX z+hyuB!$W+e{Ny~|kFp;Q*C-b$5Do<9^}>*3V6<$&r=(8nbf}>Adxdp$eYKDki1!`{ zco6O1%BzIz!|C})HY^pTvRHYd-Fgw;`Hzrf$fjzr48(BU;>3UtU>EQh*XXrJhvV>4 z?z_;1uXqNY??_3e_#%v02W@IJePETz(|Fav9bAPar%>5XN@v^Ib%yO6%6XcfSTKvp z$|+Qx;p8bBYLCI#-c>#&*|c|V?N$IOTB#aCK-u}387?*ktm8fQ;`%8rojk%L$weq* z#pECAT9zzyPE%HcUKOmk62K2k*wPH`LDmJ= z-b}l`go^Z=p;}y@_TC=|xJ%S@QXRBVne>5n8r>F3N}M~4Ej{N(KYkwVB*yu zF)mK;i`;GnkRly@W?ek*GGtF3QY7j+ptW<^%{#RHBVM(8-6d)zENX9jNZI90JJqXr zwzKO9L%iE&ve1r8mmwz`+^i1!6dpFis>3yxYY+S@N=m27ph3R#1;x<5N`KAFQMbat z*Jb;1m8g}lsLzJFrCiz#zu%vuA^v8&U0pWaz1=aTJ-!>iaeQs}qH=a+$h$#X`}%8a zue95-kDV3y(5VW(tG9ni^S$4SGafh{(_E$6I-u-*WC^u<=Wp^{v|H&e+IuSA3xBRA zEk>7JqF#nDmEm=A8jz_uYEz?G2IjC2wA+bg`YyvZ+f_+cerAwHMQsm)2cy_fj{UpG z7JrlM9a+jJ-}4waBaf3ZfBc!j&YlAbu95`EIJXRFQ+3d$q8TTl-FxB9LKwSZD9I>C zjS+rFrJ{>-lzkIcZkd6bW=a++1GDD?R!Drv!`Rc>7a5l$j2|f}>#{eAnxqCd8+5=i z?a;F1PV-zhgZ86Hl4;(}&jxn({#>}0T{`kIYO$%>X;{jpFWvq(`m45o?B~o0Dc3BE zox^#^K;E!Z?KW*CtX+q?M6KVr%JQQ(z92aM=X7W^TseAXC}h1{Zv(*g3~ z@~?)e(VP!PuM#y)+0cPgf>Z|P3?HyESd}zZo}Tt~J#^*Z#vHhfoauFp$I-ta@IGoL z4j%8q%BMU6&IVJGL0*eY{=^|zF0$)X1y}uE&}EkapQ;*e56Jn0L9m2Fm1U6?-zbp( z-gyBXDN04npE8gPjDjh7?SJy<4sW1tx~%{b#M1VJ=g#7 z{L}8wl8kaIT_vFjdWQ>2-U%Ny*_5BCHNs|tKG1F_mSGFxZeiN!sMzMA z-~a8}`6g)n&5!SPPtTHn#~n)czKBo$9xg}i6-gJ{zB_xqtZZQPPx-q8i&f$ugfS)= zs3D_xF*EooL+HI9-tqBV{Pn$fll5K76Iz6&q8dw&M_mkc7gp>QECb0%eh$Te4^$;b ztwfHGq~D)^@Z7J@KOJ(BOQ3v)JgHknXpde~E(SPiF1>6QS3r{hhQbXLEZZH?m-Z;o z6(<{XASVMhiHZ(XgJsvCTOp&>pI4AaUw_BucF&b-e(2}3UIfcU(Z94?L8twb*D0;= z-@T}!_#(u0!l&9TeCSjq_o&v9+?2)%YIyEu38WM0>wQZnXG8MvHThLcR% ziFLS4oo4uyOt#y}U(v_aVxIMbmUHKsFI{-gy9mosLaFTcJRRslYP161$ zufkH2Q65zSR;b-7)E=mY<3`K#VrO%%&keXn#XBy-*o1SlZ^CksLL~$6_Q^2*Rn$yX zIjQqm-e;i#Sk3d1Yq>~jmD={1oUjXxIm?%<(i`Q##L%B+Gn;K z)LVvSYLC)&WChy4Y!r!F35(hrxi2J1)Jj-XH2Bna;{{Gs$XToqoV!F3)QqZ|RiNxL zP(l{qtgE{C)GFO?C|iH6fm-<0bjBnn+u8mSw9e>*IN}-XCCpW3zdZ&yUbNr7&~bco zK*zLX6gN`ioE-c_%pX~Npxq|#0^!Q*yN; zWml&CNFA8SIev^&ba+(k_efY~@0I^HZL$m}3$_Q8OJ=V~)MTMbSX4C1l1qDBH8OsI zfN)|yr0)#UPXY~HCD$$td2NID7wT1_da)V~7{S|5YBp_( z%}r4`;*y5Spq4--+5t{IsuvAd3=zd`dFp@b4*B_(t6nTNRdj2T!>In%Gzg&&uaNA;DVX&gdZqZqgsv#5LyfZRVEO*q zmcDqPwQ4-YUK^7fv=gmMPy{V#25at|9>j22Nm3_N?c7RovJR7FGZJ-Jm4wuWrFN)w z1B_?iC3!*LkUnzthX358l>EZ`T;P&VY7W&pS*b>4LCFF=z6gA78OEx5Zjzt~T95~E zs?*d+X#^bTj@7w{W7ma!b#g^)X(x<5P1;iyz*y(cu9qSWG-sXgCv&mM#o9)0$D`s9 zKK_=Z)SPUQ))P0YWIRx*$LHHF+l%Hs8s==>@GPsmRUuSVEV*YU^ZX;N;DA`lw z2;WXzBZrfOUeuhhH=OIqd`XycW(&3&+;#C9m10+R88^h>+kT(ge&5$RhTc%P%@^s4 zhOr<7--JSoge+AY`l39{*&G;Zs8G<`G#7&9#kB%Bu4(y3;RYndGDBLo3PP=1g=$l= zY?2h9LhaDw7eW7+y1&mF$FD6JjuE}(ss6Rqs(onBz&|AsX2(HP_#gR_7xjx)0S=YX zjNEWJI6mtSYq9|CT(!)=Q)#uYfFk4gRnRq}SIkwMY|%JTCmMA}AX~pHW`Va07*i34HVn=ak7P2}lwJkVPbg7%_e9z9V< zt4n_D%8P>yxd?&VM7FA(CYi$uRgX1lG}yX=maqW(p=&|UdX^5=Bnf04MMG!ZAqm0} z8H%O+r42NHssXrZQe=eb%XMqZ+@u<4$xma^UAiPAYd!ucBj4y-wicv4IHUV?x9CKt zND-&p2h5w*zb0fX`4Sz>mhW;AXY87=NzTkQMxdXJ1>dZPsppb*LaS~(-)bLu?0Dze zV?%DaK3V@CSruFE!@zuY4U_a{TjMuh7->!J(OR;5uGhtEi}zckYoqqD zF4ptkZVn9bX6BnwPd5jK3MMKXBTTwkwY!zfq$+LWPrER1{JPr^82f#`VhVGYCOr>n z*#pmQC3oAh6!LzVZ;!qU$75*EXx@Gb)u2^N$;4b8JjArNz4j>l3I6=j6a@yWv+dXNA&X#m~Sp*nft z+@HXlqz9X$*0X7HVykXe7cp1w*c>(J_T6?zZ{%Z>pbEr<2pJzjG<-8Im<2y9>2Q&X&qFGdkMh((;_B6bDY6rNRNj0R0x zdVI1R-_8J+oD2l1k`^?pAollHO?kswUzA5i8*S`OCXI}Z&mXc)D6-Axr{F%sAq6(8 z;5{h;H)>&;)RVC=$HTEX%`JuL=FmYOvNSnix6!f5ya^T4o?r}f7^_i~#L0rZ*lRTh zaXLPU$0uIMiGmvZ^{uE#paz~YEb4Y88g*^v@4Gt8beoI0Ie?PyJ@;jfuRA`9-Nq69 z*joO9`mBvxFVH50#1w5O^rwcf=sXx*HRfIwdN2BuXO;cF=PGSt8$#v2qT#-xOGd(o z0;@w5H;3cX(JE1wt^m8*=T!taBn93A8$mtB+Q*|0D;hx@i($~Yzl3s;N=mZ896IUd zRF|$S%qqyqR3y`NWsSC!xf~QyU5G7W_{(#%ct){BwqjjLN}*kSd_d9iUCR_4_vlX3 zEeCMl(yQQN;AL#ru)Of#ph*(c9WBU%%>lcBSe-4fD-lm8XxMSP^N=KRJj3^3J7I(? z=v}ur31l`6_e2EhnZKpBU~W;^BHvv}T4@m^<%smVm z*!3a~9#V%H8t6Np5fcoDzY49i zrYG#=A`YE3fC!pHloB%nUoeF&V%Dz7WzIOAbe6Z{^Ma>2Jipt#0|D%a=MQL|GT*I% z-?TVL%crmslR&Qq{kiMMB$V%1{+y+kJevGe$KuqooVlM2Z_y)QZqf z0k*>Twc92s1J*R@G;gBCu782&Jczb;+@LX*_UG;)-}7_#$kk|{iL#Kfy{3#2!VCQlu)d3Z+c-FF!Jq%^knqrPzzEI%hFX zh_6*ez)sjF+g~H2#{TSd1!*bTf%EOEKwPohwP0Sc!rIAM;PD7XAF@ESK!#53L#W4N zYciy}9aK*ON?CbgrLq62HW36{yV6LKj=bZuU0gsZ0GQNh^I zK&I4WgbZyE6l*C0sOk88_LU~1QZ6MA0rrtMhL6V-eD?~0nzs`g%d>SM`Xsp9cEYaH z^wF$dC(e_oN=Y`s7VPE61iMM64t(<~EZfEq{5}`E&Z#M(!L(Jl<8jT~e{KKn?LW4k z8+O;2mQy|+oA%u4hi=18j4|UU-2dYJzmaoQ>tT4`9S&8SY?2(`veE3Aam5 z3apzrBzqqJ8PsCn#R{Icw3jD#6V=3EIGr$1dz=BV{-nnlv_Aa--W`d^haXjaiR9D3cGI9vkL8GEpuFlt6~ zKCR-mI<+8v+|m^dHqTem@lVt48Q4(0=}&REEc|n7ohJxzp!-By6nzZ0(m0Vw$Mv<5 z-;v+3%vF*Enqv#H>OAa(-h>B_$D&neZK*h1q&g=fa=^p3pyE;WW{)ocVrYO||GPGE zsL9CKEo7wrkTPsS{u4*^TTWB+YjJ!{L;#PECT???b~xNN0nDLKx>lj$dPjpk6D`Pt z)gg+TgH@seUN=K6ZvvBfZFScc&Epl^Z-y;&#Dx%A3A)q+IP-&x_OlH$ykK4ifH?KZ z$1fhCENT*H)w3Rpn#1vVLSzn{HMV7;au8_vG=eUPlLdLP*J=(HF?5+<4kK`X9*?Kd zNHB*kfw&Q2zGpKR+iN4s$XMxJ-s6b6E0)`^1(->BVq?Q}OlWgz9NZxz%Y@uqIX-mN zVQ65Kw*_dRYwxdBzj%%jQpwzmb>SM?EGG>_?r26ydDu-Dpsl@4cwfvrRhw)~Ubmu1IO?H(7?Sz?<*5 za|Rv{28T@LFP@N4^Z0zv8&Gf7FdH!)KQD<^6-jspm8i`D+fS^)UlOKx#b=n5(}}vH z1$j`L)L?Ty9w7CO4OyDZ$qRW}(=>usf>D{@nk-Eo!b2voy&ShFbWObl?|T3A!L}la9|9nn!yOE0Iw^(IHd@FcZiaKh4JNc=R9I zWU}=i{EA07R+)Ej+Q?Q@TL^!gO@KRTB6eM$OUCF%34EFpH_?J2zkBRmp3*fG$1fn%J zEf^JXxbIrIqK{4PHa-OZT#7=NNcZB3Mqtrw@cnU^2%R zB!S20nQItxRtFE+g5$9WJ%42!|I~?GIp<0DrX?G|icFY4F9Je|H54=rI6fC)TRZk4 z2rp%m13GD5(I($BDv>znNQ+^hu^?m&ZQ_)Zq{ZgI;#{FkN|qDWGh3(2vVq6(*+zEr zs}7%UkAOLQreWz{=z+aRk-8~OwrhL+x}(q^|8&ycmAFZHP4>ul=Vwral6?1#)&RRe zM8E22R%qJsHCAKCBQ?9RpV~*h3He>heqP1=fypiVjqLwp?Cg~*;*Y5^dgCkCVPXU$ z@-5kDWW*Dn2qgRNI;{C1)dGJwDF=6446fB8jw0Atl%4He#!h zGL&};$;LhkIsTXfYto{w4BW-_(rKNjbhJS|m^zGfCh#efY>vmHL2mWhnk6LZup$v9 zLp_(mI-r2?Yz}&LIv#{Q%OLilvCa(Vt6?2sj{j&{G{J={PsYRYm~qe5r^&?Q0Wemw zt$Dwn6fh{U2w>fL93Nl2V10_->8<&5bRGPRcyDr(4LR%tcgwkbAgOUX4gjkW5~%7TuB8EYmixY7z~j#hT9DHu4PLS~ zji`t)TAlV_rS~^*u&GDu8lV3_pU*%PsuCktbPG4zoe7AxST`o~cX*E)I4M~f0G@?>q$I`tD z+I9tKIR#0E$SQ@vK%%(Ml;evKm0*cb5aCEL$2a zfg@VUE8zH@0GfnQo7#51g|DGMaDUu_(s~}5ps-oihP&k2XuAj{hJ?jD{t*b5EXk(7 z7)b~u&BjQkavP^bC^<}2I@%x)QjM}{?)0k?S(9~Pc10_cLcJSFUxkndlumae^2>OJ z;i}=bXX=S6z_1#tSw{PYRx@o#S3tQ*R!%Ism`@(NzRU3q;=8w;da%kM4~7^~n)fWR z(XW6>%&n1|B?0ls%a|}ibP6#tTDukk#=8h*F(<6|@%2PZaD&T5$-MgSj&aSJSZ)Qd zXtXq;7A)_tvaX>eK#ncLkgwtRakIuAzPx> z8X8x*#&D+F?OzF58=u_}{~iQY|+<`Q91{Nda*^{zyaanRm%e)~whW zm*@WmDwHi0K+WOaVE>R%29ZBBpL#idH_=tIfik4RhE)pSctEQ(wf9pNLAx3>hXDly z(VWF0#71wLo7S7Qz-phZMC;8yG@W=2DTQdKCzc=HKxe76AeDsp@+CV?--f8b*QO zBtd3MGxg3Qqa+k=mg)(qHSO5MR)6wxosT)d*D_ z5Yd;wUyP&siR%wzKTMfin)ydvp85Ft>C$Y2{78OJR;NN6cs!ud*HAsbLBj-YRoUaQeHcR zWSvQSS^_YKgtH(qRK|BDRcW$s*nCCOYJf};YV4p5(4rU{xm2`4s94h~X|X+5a?6JE zznlwq?-)|Ui{gszN$@cU6=#C)CoR&+nDp02hCRMscr7pjQ+?G%2D5OH?Opl!OM9t| zXW!#{(RY;G3>ucGRR&@NO=u;$D&s?|WMD8TZWYd4CSx-rk#Dj$y0+%UtTu=$=RSv& zRdsEFw`QZ{)c{qq#0gPGgVW~eFM|58>05({Rx(tpb||3ZkpPxFMEN`=wMOuLJ&oIX z*sA0Ajb@86_%*mmvlui`vGt-I#+l2W?VsIKX)#pLh zD|&i#2mD%WI{^!X=o#4l{cP;gn#*UCkmS^bE#80%)N4i*k#;r$7$qlTiW-to(PtI3 zFnSd#0xw!ItA@nYs_XI9VAoS_x&=ESELL4ra>OwHU{TN>{}??4^9xF=fhbj63*q=q zq>$8u=86FBI}jMELimu};P^fXp&$+H_y=A{v%m00_Ur zMF=laEN7etfy)is4vYl_JFS*UuR=(xCz;Z#btq1IsNH1dtpJL|kceg9PAJO_Vg=nw z3PQD}?OXxHypwd5KE4^jnfa@A~u3J{`bW0VfX$pG-2x4y^wVOfoV{aSC9 z8b$q(yf(}i#xja(z-o~gapl=!CkW-l*v#{;m6>uOH9 z!|^rnTRKObuyo!=*b-4)J>U;~<*HgzLNP#Lrd{KMj;|D!nQdm4hjIfTc@IrZ)+WnM zs0w|fXl}3xr9c&10GL(-hEiE)#Vg;dp)f7tS_n!t>hVY(K}oxm3SfJKqOFps*+@6d z$o)G}O5dmV#ica8YL*7CkR%1V+@RK^EaF-K8lC>N`!2m#iLP2eys(Ec%9-0QZ*s~a zSz~B)-qN_q*4Scb>9sY$H7bId&%n$0_cKQ79LO z|KfdZ=W)}OmkN#z?TdARJwAmoE<(Z41v(t<^RRruMbpCFu z7PF4>sJ%udK zeZ%14SL?t~LQzzTtVSx-kARPPoenwn%|g{IfKXe(A~Bw`4`wLiN#ta{=HXO2 z+8_^FWd5d=f4kBkjO#>Fh~QPwzC(|%56y#Eqe)ynumpy(epX^tD!YYKj;}S`o85vn z-4`7Bi)d>$D@{{tGg{2@%kjI3E}wGiyo@FGb|qpPH* zsb*<_UG`PbMo4MGZTz}xY-w*VawlzgIl7re_{A}^VM=RAEWeezHxN zWj0e)n#%GZOU?>7{zP@&qqQvuV(55`7>36m$skRHEDmj!fR+Lnh14fEw>13o{6BbQG{*5%*)n+ckq&bs)Avej0z8}9?T&g&r$D&a> zTn6%y=~fwN#TgGv&V$+>1H%i8Co+E%*8&JJB1hCY&T~k@(tzywze+b=zcYXQ0j&6* zPI8}W{4xp_YUQOtgF2y2SO)J|ewdyLQi7WZwG92lwouNLMxhoasCi(j(b*u!gO*|ZZD3ep?lgvxtRPnT{QJ&!(L&&YIF5LgLEIPJt}?L= z-fZffCY+1%ghgT4?R+3s-kWIN&pL1oF(Ui2px-kffGV+rmX4fHvdugdl`21sr^e}M z4y=}E`_q`09$!w9v=A)@bHs^taG8v`+2i#1$M@6QKvo&r%o*@#)u!)?a1P7O29*hA zHq3C7lUE~bJ)K>TFDGNUQp1N=9}noB#Q`e`W_ss|GPedOixh&z2FKS@l_e)>8SJm@ z{2ln85}P97F0;X=n7#e5>4(cdo&Crj54cx@Zk7au-vR;`u2$V6BOj6`D#XCpXOoM( zN+j{;KgguxkpPySQ>NxdqZ32;zOu$k`@G78g?#*j>-D^7?4Zor7FJK&2fD9lkFNyK zBykX*jG8GP4rQ~!Rc0RbED5r(;P?h2Xd^gd0sA{%==kOqrr!5>ZlDbBn@Sf~bxjVL zfDuWa4cz*?wd7QYRXZ?bO|C*&2NWmkzz{D;2lqtk#o1MoQ&cDO82cIIc+fJuYbNp# z4Hu7xgvmfiDyQWr}L%+ zON7Emq1@!cD^6B?2%x>{F-Qw}#Z99pWkJZ0(ku=}^-L8iD{id~XfYvx;^bq5Eo4Aq zfWjf+jt307>Fdl^x-pPtS7k11dkq3?)IC&g*}AjqF40wsQ(vEby8f%Jk#;8sBuNV~ zB=Ph&pB;u_5ij*=>?#xdc&@v|33bGc#V5XK z4nT;IMCH_+8fM-QUA4TUz11lK`jP8U3h#( zFHfk=i#EvGXRPe+r|yeV3N%=f*l?9-#R}N>u)PRn9Z;OCgNO7*m+IlD9!{>SIaM9x zW!d%kat zaR(8QlqcAlqtVE@&WuM=KEy6pLcayB)bvaDyLXA@GCe za_HGy`J9E*obuI5CoRBFgjR^2pL)q*bC(BP2J%Udj(7Upt}@{iwh2c#b;^T|uffp< z+f-fDS=+ihX*_;E2@`?vSUBv6gGc6gfTogCwKxTd4TC@~njNhPTXZOJRj>%yJbG&G zpoK|pvTc#_u8lNRDldPW&2a#;zfMW55wx2XK!(8Si%=0b{^9PG!d<8=jj}Yw%%ozF zJxhm6)Xu9+SO#0i?8FhPd{~D9;_{MoiUxCbVBzt*giQ*~_Z9mW-KI6W!-5fG2ko)V z9Qk=?Pdt4`k8-zr0&m=qZD1eHTxG*oaSpGiP5%?HzXM~eRkQM^kr`oX&z~o}3)zfyQi&#*JWt1K3#bgN`V>$RwXLwk|jFLQR~3a z##6Q96gFPfBT@`{M>QNyXM{vrr9*MD4n4#pfau})VWh2>rrtff9$$l!W3=LE9=sn9 zVyFh791q%82GAQnCk)ao4o2uzJ`wH5$uC)H_!fxSumkURYW|Q2wSyj9RcwhlTvQe7d&*np7 zguP2j`h=IWxt;&zYM)j>duSRGd_=2@0YVbMrn$i;ix6_2r~ofQ)hJ0BwBV4lf!>cl zp53Dm$|5WB3GJd#jnFHzHN^M{yrc8GOC%Vjs;ru=!0xf?yDl_$K^Wgya#DuihB9!u zVGf8!q(*VgmK+N~9fA^$2jLT%G)kuk$||ck;vgia)yS?)7KH@ZicLe(Y+%T~?a&Xc z4LG^?#ygp#2~DbYTj(;Sdqv)CRQzMyjqatW!t!JyZ9 zQjdfFt@=h+w81;-o?Fkg2QX@ue>W|QK)F%1?wiCxxOsZok8DwE!%t1>0BTFjnF{hQ zNte#0!3BOnE0n7dk~lEJZrGGb-Dx6(O?yrBv{Bqvl?>c9hQ#_6WiQ7AgI#xd{%d&K zcMoi_Q_3p{yHX%Qj&G>3^hRBB`qOwZZ-^+(9&S10u+!@ zVBgV(^xWb=#PKoFld>$(-lymS-K+@cy=!r}8%ZUtQ8N_JkVGRL z52!_{I$>%2qS=*^R3&0L?LAwaL3sE|N%5tE?VQtATix%5Zk_;qs1mw}abLOJg3^pO;etnsmKs zwpzpKE~4kXJfNMjNX^r0%*Xc<$G7m%qA-TCb*eI`0QtJ+55p9LcoQB&#r55IwEAgNJaTncm#)dqPmN{7pg$(aX^yNOoooCh6WGmmm^Ga4HSe3kv|th593^yZ1< zF=B<&F`>P}mMr}}%W`wGsUAq>7xiYXh zBuJ(lUjSxnFcfeq8Y@~PFfb>i=CH8n^KAE3R#!fX=Gv$Zs*SDD!I4>P5Z;4u{?fm)%WKO0)PrxIwJJd?Gdxv*Y6f!*epH zz$!n?kCgo|b1MDF<-s_1Sz5xuxA;RCp^BI`H)oz z*;O|yV5QI=kEXw{)m8Fm)4tKwYKT~c^M2RWS}->WC?Z7ZSQ>2t!Am~amfxHF0`SU! zR65!q43oG=T2e}B%2sRBeTCFp(A@CfsM{}So7?1UE@xxSpG}gpSz5c^&bE!2(%HPX zaCte~k7r}&e_3u6Erd-{qxEygw42<}?jcGiO+{zJ{xSHzYLfjVY0~~u2R$ox^xUhp z@h`_$YKnIpHPl@93=FSbO9P7#xGa>5!)k=Bmn7Go%dXNPIbnH#zn!8M$EqYol)_#H zIUcmFY7w-@cOr#!JT^(z+)XLjeSwA)VnmOSx@Lk_gwW}Dz&vA5UMxvL;M0}{RpY6v zZVD}eKv;rwSgrM6!?gp}0h6bTHi;2-d(T=V2e^Oj;axL0FTr1qGyTP%F(ih3;tS^P zs=3KEGzqIUO=tIpcwa*!U2X zHkO7v9)r)_3hskH0XQ7b=d_%hS3BF-8bN!pJP{8yx2w&Ze;6&prU~ahc|w^vO@;?3 zosE=&-ph!VCd*Bz$0L#O;gn&3>%TR|Mi>mY`+y5qmdrjhxagj3mA|Z4S8)g*Gja>N z=Y;{CO<2HJarFQW93swMFxH{8<0-1=O4ZB_jNd3DB+@D!ij#F<=yzN7%R$3P)&rZ7EoY>`_tyj#QC;GsN5TAxP|Ce8EAvDPT`KJL$Bpc1yAG-(&_k` zFm;ZjV$+VvN@p9zMTwkJd+BS$&%u$B4fe5mX$sOI4${)uiC4SB`5NPX5P-j*Jv>V? zrOzmS5R}{@APw>$?{UzUU<6lY_BE`IZ2~}P0Kc8a?P96yk-tyI7@r@ye`&8x>R5INN>8m(~QpxGsU~7%6Ssg+ZU|I*PHeu<^(?3mB=MKk%)O$fLQnf?s)RUNf z;PL2~J7H&~;aSI>0Yef89%FPo$huu+!YOPMj&K?@Rpdd(*WhR~7dM(njO?Z2Cjcii zQhnJK?Ha@ZlMd#OaM4=spar-YAr*3rr5#;aqqWz!oJw1cy`P}2x&mVuU>eOumr17LXm>Z$`q3|MKztOJv) zxH6z=(Lu@aE`vtU2C;jLLQ4GkKF!7e^>{$>8ax@h63}=e9HtDX6Z=T@_}zhNUNVvp zJa+&E?I|qnHXkya7ME2zaBrhy^(xg!d>U}n;wE)$_ob}(Al}oGju>j+WvLx(kZ0E{ z_iJ~@KbmFcIl-%Jw=??yya&nnU)*ax3IC#I>2Qha%yYqTSUcL)CLG~3XjI^*uB80% zWjs(GgeZ!hW?Gu@R{|rt;P1v^^Ta%v(qbks?!&3bpyF6{P;%r^P3D{Ih7V_8_~S7+ zJ9@$KFDsFfhp4#c6I^$$An=-pm$IHUm+iZOJ5OLK^ zPOEkHXw?ph#AgN?LX<^w$ACQecsSn|A?oWyr6ZP_#s>8YzxJAK`r-0V7i9MROg|Tt zzXJAGAlmG^sWNDlG7JxRx7iVoo+fLvDLPE)Xq}G72=@H1aY)3l$e`s%g2&46tIWn` zo)T$bp0MDFsJR(OPi#jTUvNv>Aq~Q!&{UndC$8c&X3(;KwbS3e^uS!3k1v`MI6HKl z9Jkf-%$~{OdU3)u5^YePaMaF2ZPqb$7(?U^Lc-z`qm;oq;RtUdY^h^mluuMf*N4OJ zd(!mU--L5pO_(MwgLT5q=0ut}PmEQg!vRVYH2-v#hP966zhs@ulH1A+hMyHuvFsR za-$~6W8)MpD5J>akQfMO@hM!n7I6Nbp5w*YdbQfOH@VuZ%1Yzva`E-ryexa4Qh7pl zzEPqNzT5R6;JHzv0GB*b*rzA)jl;0`j!{*fk-#Gu;{{w1$EK8sqaq!LMJ5_uR1TP(%EVPNHBnrr{zA;_)-Y8KVk7sh% zq~lR}q%7n-yF?xvKMOqFJ}GIHk{*GaRFWzwzCA@7X<(;7Z=h^j39?aAlVluRQ2QIc zl(pdGlo`lLN|m#T1m(iT{@hs`0pI()=kn~TGy-w_!20oWo-_(>oT7megxNM~5`a{* zt`Y9>>2G=y$e@55jo?NFXR;K`^jdfXX_90%TC&6O0!=c&SvnXG^!9 zro?Pz?W6ku*=EOw$Pf+~Nn18Pp5)kDK`A(cd1S$UXm!-8Qt(>xnshvzH%gj;lB5MW zTkN!i{bZHlEP$^&C0UhiZU(o+CV`rCJd!6n1N?Jyv!5~z{*`;_FUB5#;6U(VW2IWh z1FH)5PbMxlH@a$+C#{mKNiv+vjOX!k5{(&d-QakVL8n_1?qTn`aKY)^Bq@@s%ouoh za!}9~^c6`BI39sRX7FSnE@w&G*yqMRH&$|*g}nT>D+OW~RmTpFM5BvbN^+4}Qt-$| z9*-A5R|>*%gf=QH$sd7On7Ea!8&?rc2d)bLpCjAs1O$(JAa&)Z<|)2tUa{`3>t9+NiM16s5uvJtp>V z$_$evPwsePblJGFwfecgQ9w&n8Of8u!&U&YQPPUxp_+(uPPfS^Gq8X3t*1(oCzTvx zjAh{uO0v1Eyo!=0BR+ zXI~`h*8RFuz;Ln=|K9P4an!=reG+cF5TY_dFxPpp9ze>_k7r;)#An>I5bmc zHMxkF-uB~3!M#aH;vpA)KB4u;`7I3f`_Vsx5pq96&WSQ?UW6%eXXXbdgI* zE>cVD#YW{zFRe^fj>pBGRCS?wQK=@Q+T^r~qwq|Y#Mt_8%3kX&V<)8EG;6+&F0zymu;AT45wNEHosxzTmtmOqZziRuIk7TVr z)2g$&N^O0-Ac{9(Qn8W3v21Rl7on@oi*jmjRJj%;Sp%_UQ%1EXRb8aWUvE4F>5jMI}zyRSLpfG&P zwd%N-O8CMcyz}O)1t*6{(gZdNk^oKODDUUqFnQ}qk~9mF%i0Ge;`u!tb4%meaa7*; zYPF#zbHV5z%Qj*?)gw6^kE9X!%ZS(ag$mw^V6D;{U1V01i`3Gnd}*hZWmKD-mMGt= z!1SljKN9k%dxL>Ba*-)6jWyA>6byg%K(pB!B}Ho-O~6RwNf#^yBfU}5TGNRV6m?I{ zjgoFOLMm!OD!lMTW*R=_h918XU%-F)Qgs9#jRHAo0N=!6cN#o4T8ePx>GFp2$7)$b zx0ERD=yN;+`#AnXS-)L)q~LgQZB$s2ai$X^mo8e63LlSJ7?(;lDKc{w99hl=y-^F1 zTxp5q@ya?z^OWf9GV+n9y1XkpRAb>7o6U>;gfZjoJHe%*NZHiimxp} zI|fb1NmC}ca&3vP@<-y0qRQ&@Cd)fh=<#e4U4DwwB3clS`?TmWHV(!W%@ACmSIR2* z*zNx^*$5XS!L(PL$x<-WioV6v6&2t}=7Q51&oVC9C8=01c%v#(xfDjh%dE8E!d0Y* zWPeWVyuQoTW-3-XBuf%>yaKc9XW31x(XZd|*HS1pMR;#gL@OVUi#;h6=f|m-d(~N8 zWfVPLF5^z<39B7*^<)X4B)oS6YgAY&YpIM{(t=CP%P2BAq|kIczamaotHrH1x~f1w zE$%ng(FHQ_h4-|LFS7n$X2SI5D}Evsv?d?4;Cm6NJ%;<>aWA9=mztj`y;0>^L@Jj8 z4h0zAqfD<&k5}c9B7>Hz@vNSPIflQH)A0#BS?DNYk$_;N)m zme(Dxw_%cU>36&w@wJbzCYALfwVf6`9#x)HY{*QDeUBHtlw667nJj2`=fi}#9ukjbY__cvOStfRcMdc=CWY0~jXmI20Re-K9c zofm_x45zr@3DO4zp;c(3%Cm^*Md)HYs}>mro1|zW9*Qum;5(hu;{nr^|7A4K&*uE_$v=vY1-H96 zUfSe_hH^W8p{38R?P^8#&}4!JQuftwh~LW(jq08JMElrSPa3rJfdv?h)`NeFfqbH! zxeW4%H-y2*E2L47I86XAfyc|h{N1La7%R=TGIR;rFnh=cU1V01i=cG8l+kCmloGcA)2&MVF54w zEiWCuCZ=a(B(Z1LsC!iq)#LF<8i7v=USf=h?=l*VYJ8De!f9GfXfHN(FB;imAA*?-azKnTPxSey_6eLctP*Ron=n1z=Hwr;7wAdvZi}Y>`xt3kOLQ zhaf49#7Ma z5N-}l0w!qjh{eOT>x{H|JRV8IQTv_8WGDt;x-AU!s1z`r#Go$=ii6bvmE#4S9w|ry zkit(f1bSL2AW{t8=$!ITv8Wb%>olm~Oy=IGrAk4x`XWTUctY^{18b5L$!M!5h(C?* zeuusN%}TrfvHU@*`>oSFg%!b$8i0Is8~L9%IXj)FXP>hCi}oLX@7-*ppA3rl&i51d zJ6RmQIluPxJXw4HK2uOS@5F6y7Rdzwv#?(Se419b{b=JyaKaX zBafaCj~d{OS4I>h27-4|1VTI>0mJF(#f2wGP{fH2Xa?FL0+A$Zac6{qs2-0;QWV*j z9@o!-kvpCidlLYUf*U*fLdRPSRVM6sonSBJOJ$zb%CTK@P0*_2<3-rk@0}{oB2w7; zAHRNEq%#L(wgj(ix_W*f*xW#lSc!gm0dolom#{RU=>i`P>h2dH}4CwV@Pst;O{N)~%6Y+@#Y`%lAg z7NC8e*Sbh$6guKYO8{pskD5$0fpr>`hz$j+IGv-pc)Ve@8*7)OY1r>%+r$W|8;#&5 zf%uaEHj+vkO*$UQi_8=mInNmwV;rx@SuY_RyK+CLD>a%PH1Go8nR6n3uCilpO*i! zDIv6k=_CQ38Xlvj9*>8U3=n$R%74ytNzS>?x8IX({XN;g|5H=)*d%E>j<MMS(!#>H|kH=!d6Ux&QfA5{u1Wy4VZ-NGa zHtuL*LnUmeY=pTu(XgMw0>=-FrOO1zSmFtc%!-^ivT;sl6CBrM?PyZ>|RcNC82eP6(Md)O(Hl4MCG zgkg~ppvRK}kh0SPL;t=XbPYOQ0QGo0oUq2WEAfL>fYvvfVW96#-zXR_w=hYv=4XPJ zHyVJQ4e&@hemOCE^SG16E#h#P0QTq=@n|iykw;I6#X%o*C$Q(d7yLaU@*kF%8+jZK z6VSy|cqK%V3bu>LMP{)$k-H{plab6NZ#$Yl2;nUCJ1t8$+WT^s6B{Ai9GXX(P7H6@J|=u@EBvM$K&C&pvDN+X zdGLT>11|4`fb(6qg_9;wEqYIxVwH_7^p5}=0NiLMi*nisQYQ&OGbCJhrGO=gvm8{; z*7lXg@i^h8>~Ws(zL3WOV2}12KkVm#TekrY`q%xfIfs!^u z6OWgZ1{{yTg=g^OSa!eh-uHV!jT{7kr5#o|-?X&K*+4czI9t85Zhgp!HpS0H{l`8N zF|f8uHoeg>7>!j7^$dJYJ6Xub9&9?{$PMPG*l^nK`?9ab$FqplCp7|$<|&n7BnUR> z2O;>OIN$qV;3lmXYLYw>6}T>a@HcOEk>QD7w2~c>pP0@wh)uucvrYOAy8pKJ`yYM( zzhOGQ!=043?VH*;A)C%Kh)qv}G?15rQIqS55SIAPhvS-Mi^83s3Sm0CL8KEHHv~wuQpF;ce(3 ztJ#Fk>3JY*C))yVV$*qsxsNmM=idLIr7sxngD~0$pVQtf-4`-Hi=XG@#B)QmzkW}? zJDe-W=Nj>iZ2D6yBDpbQZ{nl@$HSVjO;?!)$ST6|2pB;V!~kq#kPQVvC(9g91VW6q z(X!)yJP@(SN&&-3#}og62imA$NlW0^I9QWpBu{q6#XB$#h{nguC@*n=sS{er+9wvtMT(3>l@#xc zwRUNeG#%Ap!-mcG$X(aM^UmYTWuuljf>a7mb{2=@t- zlvvZ^D4IlxJd=+ndg2~KC--~*f0=0;SB}DVKGmIMDISf2IB6ITLS)1!98WLdW?B$D z*T5PjWm1wN$s^Op%Si){N5PT&q~OUw+|4=}FEN>zMWnJ7L{|zZYoxT}J&+>TT9MHt zMHBHjgDlqN&3^glL?wKG+N~A_`1mj5;q`;<*z;4QJU_BuQpD+1KT|)+rniX0ppnN3 z5Rdi(`IA<*%qnOy5YQAiwntGB2=RD$VninBNuVV_0w!o>fDFL24BGH0=1!uApM0%qEz^L?3QX9#ZVu8F7B6cMNM-!}3kR+kpHyS|-!cza$eUum^ z#>gQ$S-7!c#_5d;;}MbxF~*AzXacj`BX>S{j8~knI&0wZG8}i@yd-Voi%b|3z^?cO zb~XG>Vx$x!sOPqb80~}gU1T}MrZOz3wV1mNY=2X%^d@iJ@p!%E=Z2Y)i%hf8DBzaZ zByc3v?8cR6h$bD6WEsKH_V^X_GSYHBu^tb!oX3+uom$12EQxp)SZxWh`<#{&`*=H} z+?7xUW6b0A+cv5^y_Nl(X|deeHFa$-SBoO$)j2iOL@$of!}V$l!Tqyo)4a5|+B6-< zle{##1fZd(G{f6jf_;zxZ}_U zwaQX?ri_9cUu33fAa+v9C?-X+HwW1xd>sGz&Mp#pY>+Q|rNgh%fb@6(H(GOJWJ0bM zMU48+qjA6p!nR78VVZP2f}?&s35Zkel#Q#P%R*nY_E=JhJ3xoFsIWs+v73{#@Ii?+ zEd`ODeWRpSSt`$zk%(1+X~8ZJxjP>1k9DzgeHzSj6+9|I&r`Rz0=q@Se=mK zCJNfRPGtLy0-6M>6IM(G*D1R&Xrq881!wRmc}-eMRz`62V--hVhJC%!2;`)*)1*5u zi~|q}yIjJ=t|X+3v?$^e)MObjTo90qE`N1W(D7stUdoUa&mOPLO`s^XBHKRl9J}VE zYIZsQ(7P>sH7_3jMd63Mkp@cA1n&2aY*%W5=)T}*C95dUbi6RR9xpHs-{c9ApVX>o z!Q)YcMiEJopyL(jBd(%=cPiU=yeZu%d29^nDXR-$WL{jxMJE@%aBU}reG|mHl1IUsSIJ6@XkYd*@w4zWEqFX2eqx<^yqu>b zMT1T2)!j80kErvD2^G;$@Y`x>vtt}2@ZB9ae&NY&AGCnuS6!|;FFrO7$Mu%Q1cv+9 z7gI>NIe1NI2rj&fgxtB{D6EwinW?rpAiZ5>R+Ed=603}&IN~A^dla`R2IGKo(Lh{P znI;#>lFDL?uWUg0csA#L5{E+jb!o&bAtPb)Ja z+-Nv0UTR)kWrBvsCPw%r9Hce+stgdi{+_ji%?zwb5?OILUQWIUjDWW5jr2~M^7qaz zl7)A>gbKW|BO~qHq}sU1wWb%DTvVJFrgoK?hQhehPiiS+Lo-(|{iQsd-*R=vO4B~a zHQn$zrkiRRZ^P9bAzAv6<%4x{Q5@Tz*?IXu89DF#_uiL&!-oph<>LKMMR&CmTgXOg zH1k#*>5WqIkE+bbEH=P#lS}vGx$X;^{za1p=tDG)|MQ1Hj#siw@Iu3h15lLF@}%^8 zH}#DMM3s`7XfA!GW@r|~lei^uhz26L$fPEf(G~B=2V%=*1~dLach;oI;8>*}eIa|) zntafp(FFPhkim27japHZ_LWBe!gj^;w9_<0>k6$z8qkNifcLE3C zn!6B5IbMO9gjp=~!PAIo3GiIM2fdN53?7ZN;LJP^AilW;jwW$%EcW|WhU*Ovo|VSN zms9LDpY&H=@igReyuiwLwCUqqW8)2ff|v?!UK^r|S8%#}wIS0JVvhqeyRiS1L4WU; z!(sFfUW|5Jz3ME(Ste-Ho?Yd}%~wP2`#VMrRl@~&NE76>@ksKOK3?C(6O}g__Elea z=dn>`jGc*A%hB^4PZL0K>PefUz56Kx`XSmIYTU@a1_(QzGhtcTfJ0tUFjwT*;vT{H(&IrmJtcl&i8cxAQhxW|75w?C#btHrP6nik?N#e^g~- zj3ERF;3+_N&c>S{V1@di)Bv^ArIOA`JZw}Z_c`c9=@E{Hu@>qscHn*hA*V`UK<8>F z_B0zCEujy(QM$n|l9j zx(sHZ|nf$*i<-q!%HG9nz`6!yu- zH&FYsH@eZB6ybOPx*h*gc*hRNtfx0>jU4f?Kl4b7lLIk|*U!T_uu1rMT=LIiL+E&o z6md)3l4YVy9O0gtW@w6%(%sl3JQ*L(&Fe*vPmndxB)D>LIPcV=!UZ1`3Yg+mLTJy3x8@m>X`kdq?4bC+2 zc))Sx3_lbqcMe!f=6&G*-?Z)Tm6ay;w7BK0dm)r@)$N=hYrO{Fso^#jsR(%dOXzmo z`jIxP14lS0dYSFzETg=wjOlg&K{i$LjK!{2bK7IUp1?^R-;|-T`#JsM&TW&_aK2Ly z@>4&aKlgLu&-Og2&!6M_1YM$wH{N)dns~KF;nn8cyNoUVNg=Z$9gj20Yr<3|tfa}E zia2duu%@J+K0cp8LYR8}`Do3RH??(jTf5e%c90_sK)epS>?j{+`?llpBDnE@y>~nS z+meM={^!DikAS=a+iACAGk+2aqM%r;yxx>SYy!Ruakche+-<6?SJ?=qB!)`@>e`i( zF>~b(;pUv_c);ql%K&rYCR(XkuqDdzx%ffAcPqXpSqY_E6{~}rRa}|8*}RYI%HaxA%ZjE5o$@>%m=Ez(8i)LsIQIri77`Vt1uF_$Zn-gu(7YoQS4)}^)!$M=gk zhwU)N2qFgehF`!Q%4{BUk}34bnm!(8R<;>?FXUiHj@3d*32N&2OgDkI#4ruNBJXyO zbf?CF0j+E^Rv89cg0-pvpV#4j$Go~x3$XX{#ZX&)wXM2$LK#+Tp#tFz!%l^_-v&V$ zUbmQZ4gK`mto~v3jbEdpGPmBv-L-*I5M>W1{raFlg6mUHfhGSa?*+YNvIh3)UP6JZ$ZMY;fNQ6^CvF=^RrEg(P(i>+y-wt$tkvAHxjCw-aQHuz95b?vRj%tG-im zZp*}IOF&bUmD@x%e!LQn_mt+BIEY6K+}P43xdmF_+sE)5)? z!A8NAg9H49(bX0ni=EONEq(`;iN}<2ILz^nVfiCsxW2X8X?FP|jX7$i*C=zu)Z_bY zZ-O8w_|$bI{4WLuWA4TaO+;JyjqJ*`v`K1!HU6ry2Ksw@qtq?UkPb-=5cgxSboPOb z9CiSiYmp$UWdC>sH8uFMy`Bw}nIkO|bvDnF(mgdTt10Pjc8KG6xO|Pe5su#RLuujE zaDHIhVVMSWqVy>YM%Xt>^&%NGi7h~oo?%{53K!!(J%4G9eE<}>-a9@{w0uq(OE`2wh(a1BFRh8*F=BB@tXNH z&uM*0IvIyU#71)(oN24lGySH?JiEVyB2zpb2>3J2gQUDEKPnk_y;Zb-@7*7BZqF0& z9Ty?K(`q0Ma%9VH%J7f;43F&O6NA}$c$z0mU_j>s17|HWM_PiK>M}Cm%xj5yZV_CI zgtCcmmWudrX`uV;PF}qsR@L5nVqy5GU1m@^wKNY{w9-XUJO|^}l_O;Pcm%Okd&5(M zAJ@s>J74vqp0%BG`uQxJ+!~?$;=q8^DhBYoxBcUsRV5tI0ui%Qrp$}>pI=Yil|o#6dB>>;^-X@lh#ftt&+j!?rXj;By*uT zyi9Ggc^Wys(vr08EO*um_v?i9Dt4i99X$)90ZCi&l^*a*)~v@+HjP6&`PgqWR!_$ck)_Nl2T_6* z_%xu6-`0>d7jBI%6~2xptJ1M9+bV3Z=+(rBX%|tl(-L(6;uQ^>Udf6zpF7hl8LE0c zKD%>eXtRybLCq>}1NeQ`D-3(t!+d=v5Si^vaoaT(LQl_vh5mD$Tr`D z?GoMX^tmF#*x2U%#aCGgWmxs+vC_DojE2m{Qe^L{fp@)EYzJ!f zjjS+Aw<=dT{!6HyZK=Pm*=_MMuG&yPcBK>RTkZD~ov+isYCr3_s^ecd`PRrvKGH!d zGI4}8b$q(92f`flkH;nH+gbnK8D)5-6N=Ltbs+bu+IATWtC(?fq@$!@G^hStsdF9ypw&G+Zn9I-O4-X$nm&}@Hp#VxM)k`QT^tQ z{9NM9a^-9L@OBiV|GR#AOhIN3Ul=*o=ag+5pV(^g2sjRZ=l*y=JF3)(s7;V2G`E zvr|GT0SOF9t^TxfJgka(rQzaGr8e=Uk1N*W@6+qv?TlsRf6lsJd-30kq{XXT!2W>? zIYd)D;2sO9SLu-b^&A{&nRvEwXU^q6wlzQaI$5v=2uHlf5v+wu1W66hThTcFC1|Hx zvdkQ5$;EnfHFbQ>?o;@t4ARqsW0f3jiJoh}4u|U?<>9IXeR#!=$q#)DZ={VzMxMC- zkw@BJ$-X-Gdd)h%S5`UI_L#18eD@Rkn69AvLg(q7bvy6K@3maHzAaUTX_K?s$-;fp zI#x@^_oR(ZDce7OgM~sez#LU^vO`d>+4aW{ZfCv!+@9qZUnh$_aRzS`xJ_&vE|ips zBixImH_ibK;b1`+4CAPGj3;jocJpvqMSOu{^U4ai@iY^;T&)0@zqYyO%&_$RA}Nz%fxJ}%dQp# zb{vmW{-?s}+qHW8;uKG?l z>Lxpg;X;Aol7P3?P)Aj-**U(+IoM>!wCzAV=xnvnRoG7TDtGQyE2}uMH1?OvMt>2C z#kF<{;PN3AN=i^uSUKFM@J&-{lpgH12bZsDyhMq}4qPxPqH<}F6_)GnrfxQMFIV}H zZd=~SPRCVhzi-kn+Nhn=%6gTnC-}_M%lAq}pr|82Mr@26-@rKjHEeam^nYaeiSH{r zv-}o{09a zU1_o2l~xJbEVBlrUu>1SKvuh*HHiD~D=KX^W%zZCSA&eA6o?iEH$v%F8TI%ks1^zg zmjtYZD;ZSj;PC*|>+zZDP8?4w^_|B^awnHwvnR0 zuQLA`wZ0Mlmdg-a`5$9Z={eBOr*e&U4`JN?FRA&BQI9Xf^^KxMEWBzsHPASl(m_Uz zF>Dbp#}{C)W#p%KB!?SKQR*QzDHREBT0dYc@&LU$fy&K&j__h zn){qq85xcTJSd>`#qA~Vn4-+i0qA-FyP?1TqBYqAMVuOFS8s1utDisgi|wI~rB##y zMV!au)Iv92*!4lFGFxVk3<~1d${;<0pHbnCgBHQp`is1FfV~dG^-CzNCVYT%1Z)CA zY{KzhnNr^bkjUM)glwoR#JdFfaBXa z!rJE`-7VPkpVWAXC4SbkqnGQ_5hVL>eHiEBM!#=LH=5lu6q-GzAhV}|bq+d_!Z?Ovpudc~rZFXcU3cR-$Q0Ij zMEVp)j@UQoP5CSNxTy6FPxe^cm-@^1NPe3(0(T=m&Mob8_}qYreey_iQYH>~Y?LaZ zbDAfq^bFZ&(|W`C7p8aF)p%<>OnTjsBkcK+n|M=d3C<(3X!U=R&c^Y0c5K4l76#7M z8|_l^TJPkLz__G$dq!psGKZLlb3VTGj``q7V@Z^EJS25u;=qmW2l>Zf9beBd>agxs zKPY6!Gs5w>$huNM2fL3i7Z)nCc|=m07;Onyt2QbW^sX#~YNMc}qS+k^;DR`Fe6aEF zJz=BA<4FuFjaaas%Bo|uCg#Kp_dBjL^^V|z&}PeJCz zMvhGC!Q)}9^QGJETTjf&OJ$@xHR@zKza%wTB&ep27oyRYz@TxNdr`VnJG0h)ze2;` z(WhmlpcYcs@qiR-gT<`0RDwGFVrSun)dK^=_Qp?9y6tS2uHNIFG2DOAdQ-l%SG+ya zttT5TY!!EMCqKw*p%Iizb!?;%u8ft`b|b<<0bJJz($j;@<7r=%O9eW1m@Mb1eIB?; ztk_-@T^SY65g?2cO7*-1#-}7@<6O93z}`}O^#fRD>g>UpYN09MK+J}1ryk$W^l@^~ zdc)H>ku=DuVLT7TBJdrzYmEISuSHxc9mH$D&H>v@#@pOa9{)|;W_EL@X=agNPtDyA znmrDRnnR|J|}-o{-$Y(YFsf9|wd)y19dXQ7zRGgc1Dz1eG#ND7>fHz+Fq7urDI#ehyTmr0uR?N1e zA3Co#ANOVO_9bs`F751>egnVS~&d`+KKm6~EZ> zM#d`UH!2j8)NuY{S9fTDw8zYq`vwZCj}6}T)rcopEWA_WRG+x+uyMAD~{_B z9CWc>r^7ne=uJN4tP9;#h75BfuO;;3TqoQ&b}GP1sR7nb8^O7_bV?N&5g5E4mVj?` z-X+<<`H+H|%*GOCLOT8{&>MLzDRK3r2Bd?GdOQqj_r4Yec^v?M0OHj~xRY0{lFVVi zKGMm;@zv|%lj{%s_rh!J$o_r_#N%;htleJ6HaC0qA&p-r(fC*heoqWn-S*;^3vwf` z>KFhQaVeRe7Yd_y_Nsy7o7@AaMO@q`t917&!+AVRzX+p^G{7V1Z#+e#39wNC*PF6Z z*w3OD>MjmsOH+g0wa~dr$<&=Vv?n{iMo!5)rx^VDAQp32~KDldMvCr;%?F*l3bdzp7)$cG@Y8#JBtkeok zjCMaE*NOciwljMpTsnxOD*?0$S#1+A^t=`w(o!^WqAIY+ZR5*5n|vr zr?|V$PLY>Iab7vz=b$fh$D9Nq-f5pBBZtlxeULW7M>)@l$7`N9XS@ExR$f!iFQT(^ zO)4Qg5}ESK^SCIND)ZaGF|;?VKLd}9n#6x8Ao`y8RmUnIs*=~6>-fCkE&~1TEEJN| zaIVQ7C=&djiRgP6QwnQpc{+iv|+)MoR@g!`1txGm>eY;xmX zL?>b;a=jSI^b)X&?1%+DK1*FNcSIe4c(umPjSTBm|9&=j6L6)#fYfRw$4U+A6d2Gu zsf!!*AwQJ6{p#H8kHF2s@oBvqB5nuhb)fp*%x|$mXdGB(VkJm@vd+fYBMr`kgDFDK zR13X?F(-Km^AL9oBC7O^`CII@F|XiwMEF=}Hdb^_0rO3@8OD_I?B>SH6rEjPhX!Zj zkv<-9Y)FY6S*iqv>v=M9#4`TRHko2jyhda1wQwK&XU2pd)D5jsKvTzev}+NkUzGKx z49NiAC{$aca2(V)!;be+z}V>?b+EfqYJi2**Y--DX5axueyMv8^0Sw%_2R0bXY}5kmy`2Kl(&%lHvSGG$v#t8edN=BZMjGG|#6zr1 zn6=8ldOE5y<~_01H|j{Ob{cT^0~_xu3gXT=^GJ*Poj)%9xo>-;)D2dz z$0N|8H@+ZttcZn$3PI9VG*?=1R349&?&!V|Dy#URDtec(h3-a=lLU>iSy((61$li7{ct-RC-odQLIJ(XQtm>AO3@tKzH7Dt|&Z{_jzRyQ9%IcN^k zor2bz0Lw-p%!oLGl0sA7mqfnLS)&gnOz;dgIw+ z3bnn2X-recXIgrCusd*kMXS3c1|QKHDM@1jz1cIIq(){Wi>Wt?@nPL8jQl`j62pF5o|yj_vC*Fpu9v;KU7w@cSM zYM=K<_8SS+)?2xEK5=}@+l4Cj7t~Ydzb&O~fnIF|y)KF2y3RSC{Sv@hZdJD8wOg4fMQptG2DOYWt_VZ=g7nK;5K{c_vaP9rGB)wbvO ze1g%codQKB=6Ij_>f-J?9;cS;gs#`JHnFgAu@|h7-*JJEe8meF_SzlVWx)7T9ah1d zhJvFM-gx5rM;`F7`NvlqRn(ezY1}QH+DqUu#R!`i&YNWl=Zh$*0eTCKpVaR*zixzz zgAyUJ@xsHp-^YqZ_~?J^diT*ob2>sX{cL(C;84d z+}|w(Xk6vtf@bUp#al^o8mLEj^oc#=A*1>XshyQU~zcQ%Q|HDU2u$u$Gm)dQFmaODLR zY{LU(U<~5KdGh&mDuA(_qx~7Ysv@rBfFsYHI>`X-jl~uz8T%n_E$Xo!5=GGQPC0Oy zM2<0tBeoz6h7F?();Mx-{s4baN8WJm8m^*h7&RAgB*KIl#}o`66=i_3V-=$uI6Fne zO2p<}jJj(xO{>AU*9ZnRz5HcgtJ8}suTFXOvYPV=SH%H6$3Pjt(7BmnAt;uWC{rNA zxJ|fFcE(D&!}-r`kb%3*aGtbelu0!4{FN zp!0j6-`Q%m|3rgfsS~iaaM&N*23fGIOu9N=-Q<1YJZb5*IB`)R=59V{1ZEjpVWk0K zMV%}_oKuI(la`z^N%CZ6=kt#f{)%yHV+5~5j34AE4(HPeX>yNPHog)Jl1XZqu&O|r zxMY+`Nha?+Su%Kx+@8Eb6FtSo-R|>^6|*=zZ>-ZvXXUMMrDEsb`9&shnRI?lR(6g- z95D)*^9fWMpdecfFg5_phd4Um@BHD4QHin;D>&1DAdWVJV097)40Rl^_&U-+o`j%X z-GZ-p!U=38gL0=b2?LO#_!D)tWi_vg_NV%fr%QXFya8o0kS--|&7WT&gs{KB1=7hfFjroA=9Ee2*W|P;X(XRd&_53Dbl~o9 zpiJsP`zcIAuGIDB5^M=uOs>ep9S{>|ywar0!agkm5EF@SiYc2R=Ba%F@0ljGB4is8_aiV3PJK`s+AC^l)`5 zt^`n1MzcSr0{b-W2eCETt&Ay7D3e$x$Bo_i?FOqYI;*XfC_zU+Tzeo>?Psmdc)IOm znTYf^DkUQ2YSm^c>G@5LyQP%#8xS*Kr;X2lx8=BvlV*+tzH`Q3$O!tg1Yk?oa$M1Y zLVVlkHh&Wp&TCL=multVQ&K5G7=E5{YP=HECcn*%ZNMX&XpLDwT|cBi2xluGdL3TD zyz!*6;Q94p@^F|G=UIUR5Ds^GO@BU})#0&?=CRTw9T;_&VHWBczk9)rFY%}7dlt8U z9Y}jwTY2e4;UW#T8$rSV8K5Aj_>RTx*uJ0h0!>4#euh zJYHJh?VriI7y-wP2K89OrZ-xCFTMp*xY41V+V77Qesqo-D{*>ux&12r3Ecpdnkvv{px_*B|EoUwev(Qpa)7Xu8~a-mE0*3M7!?ix5YE%K!f;U zczzipEJpERnPN4C3IS@LsZv-hz!hI(S&W*C=f9978~xbyVz`LD2Ha+v{DCK+Ek;)- zFGg)}b##V@EDe6(d^?>b>fJt(ZCLr8284-al8j7oIG-b=M)89Nq)DvKZDiAlgSD@o zSZUN*WBBuIz;Q)3pZ?dTD095`;WN0rrh zRf1r8?c-BUfQzW78rbg&v5U!h*^E|&=z6lj1t$p8=SgR*Po zNeV2k?I8mTYB`Trj0ewU%kY`%{t>mUFFW(;Va@D?ip^A>?#8-oQZ#QFf|AWoIlFs4M4Ech9kv^!p{Io$bgGK_&A0O@*u z1KwS<>&{)I1j><9H=ixGw|{S~Xg&55s%&DVHhJsjN|m(3HB#4udqvt(zde$=i5C0S z<^hD-#mtOX1H(IgklcF~EyJLxGsZou&O%AIzC zTu_BqcW@vF8K9u#$|Hg+UN}EjExxRLeyuKvIlN55?4qFT>O=9)&=Dv*CUKGxQwAy2 zF2}**;30R#62ZmElJXqpK@+zZ#z@X@K+LR0N2UQYge5#E z&;SJ$SII`A&~UeFJJtY>Cz8s*07H+@pPj4_`QNe*Mb)|EUS2 z|35DOKaOSMF7#>QUp4CP{K9qhbg0A^##ctGy+5dPH2cSKe(!NZt;vxCgle=I{)kqp zs!iVSUflbxSZE`qFtJRM?92}0a6U&!jW$S|QXqZ}YIRax9j~?6IsXoJ5 zx(RToI@DOk+-6Q_^9zz zKwQ-oIs&^Y;7FMGX>@gBMggCNn=+pBwX(wCI%F}jn7r~!Okce0_BJkmNgr2Q4fs_oQR1 z_G2P2hp2Sa`R)Z=papfZ zJ{#?nAwdj^BpZy~5(JV=lP(LViN2q#meJLG*_b{r7?yZh@cdc~T6oRsBE1-0oxGT} zN@f>4NgXjqIao;$%nP_RfC=Ov1Ii>?P$#o9UehKA(bc9G^U@5Tf31O5@)D7i6{fh- zfb4XB4U|F3MlPtB%ZivC@SL4EX8_a6Wvs=OP0nu`kd1!21C*}6dYM0)l&kk&BAHyU zp@3p2YEa_`ImiHQq&{x^S|$+v*NY@q9D{>Lg8xdztHp*`WAc}^9*#n;9$?Brz)|;! zm4F`Vef<7;x2FA17s{DB#LSgDmB?v8uME=4HzdSfYc=iJndUMppt3;;ZK8mfs%hlK z=ydG-uzaQr$VlUn#Dxs-S`6}_N!%hCBo>36a{V;S7)hey#McQ5s^kzWAs90`%n%ne zcF7fBDIfF;x^p#Zb7-L)ADE`SmF??qkM4F09yTW#<%P0AAXf!&@erm4ERz%{u4MoX zVs!-U4jE#z3sRtWS|I1wfDB6HzylN{o}{R=itQ%Q^9jIc*h*`5MSAAi)sn?#tx&F* z5TH88jTfBZ2Q7GcHFK@HH|?4D%nW38-XepnTRf|N1Gk(#b(T9s2Z3^IJPPs&u3yI!EprA zf#?P78%pm~Tw{(Mm21~ZK?W!&k61Ca4FF8!B#5yI8l6wr^fn?Hp-ccZEwM&N;as`k z4yP8YbhP#8$l4`tRwGsx3T$N6wUr0<`NJ0WK`BUfI-iDdBhwN)d{(UCgVK+L)*s)f zgr-rsG)<(jb=^MZ4CK%vyz}MAz?KIPgBS#AflNiZ1}ZyuLP_@dhL|e^#f1?JUi;w! z4U$P^L0Xt~nt^G+ti~m$8?7|W14CFNfnJ=vI$dpn!IhM|JRrz|%b3c5^J~F8SSBiW zwBH6rG-}^yKje|~=@AUE0Zp1gv`|Qdue^1@oADE|YVKu0MbkE^#*vaMBO(ykN(nGh z#L6uOB;Rkecc=_eQ|t{#%yU@1$$TSjbzVjHTiiNhuk2a*g;QFPbsERY4yfJFuWZ1kk~f=({z(75qgDzI*{K~%Ajt^Bl!2^<0x7Pf zAY3K9#e6wh?Tu3GlF8)!qYb!di$}^EWirY=!s&X12K~PO0Xk`um1o6cqsH&HCNcHG zK9U4Tqn&%1Nh1vsBeA=Xw7JZeLI#^$v~n$RiypBp-i&!64d@F)hR?bfp+^*YX0c8PLHq*ZJx zl3XacG9vS>^Th{QOi?!HQc&xnT}vca4{-I6X#1#pH>*8C=!2VFxIl0T3&sbu|a9%Cn+OQg%MSH%X+!K08IuMT}bhARZ)>wBg29<|ZLf2@ULy)kgMs zyattv>5ZGFUeH6j2F|9s$9n6?SaA?dWCa(=M$!fGH!E?nZfMn#Lx~x&J45I~PC+J> ziRzdg$^aUaWT1GWht4NJP3>}9b}M_d-M#tfHg?GmN(?%`22zSu)L9yc+T4|1Txh$= zN5?=WF(ol_Npf+trdP@25RGCQss>_O2m&izDwSw(em$sk{1{`YWTkdtF+mqc*|`qr zp-<{1>o!0-^zuPg2Dofex`>t9w4LoB7s?Ef<@^`Hh6(D#MFtN_ z*CS?6t^?R0K-hJQRh-q~L7<<$Qo6~$dwvw91$D9j`^$+NsWgZup&1wC#gv>X;GJ9* zFxPfR9a0gl^Jmc4K&}ku(Ru_UF*#zTNw$-~BITpauTiTv!jB#yTud1fD1dr@U?kfV z8RJ_6l)TbsvhOEMm9=)-BAH4lvSa1B?Xjr>^-j6t)k-PRW(P)`tZ(dGk*}`ess`06 z-YI<;r3B&1mUAaaGUYC6C8t0ji&TPKCS*_!0xGVFodj8Um#iVO&nK)lm0lR zzYAqkE|5g(!~;f126#vpYbbei8f?{d-Lv6tsx2be4hLub) z<3R7t?^uVy>(=UKVxWoQlq(YORdkHD$^frEC``sO5%d+8K~XND(rBqb|_|!{0D^V78Ptv`IQp8sTQkL@!2H z$1hG^%vz;v#&2Y3F5qzCUGBG-j-G#|z8767kvfT0VD#-1K+!~#Jt24LCT4T7p5LaC zFkOkR6r>PXy0!z#;CvdeNwSh47l$AN6toY@(BhgH^tj3-q%-8R>-oHL?nygs)b&!> zRRNg9$*4HW^#tsB`C#({)JkrG zBdSmeuoL16KzPD6oMO+CK~(}D>1 z)BX7ez@gn2*x<^kNer<`qCg4|R||0N(!L^kuUzECS^r%o{?aW=^P`~&c5&XmLXXR_E<5O%c=&u84kP|j~3P@!-X0^*MynAqHlQFDw2 zk2g-iNUlx$UeCV|O0UjF@Xy4x4!G0y%T7_(KH%>QwkfDJi5vGaa-jj)Nt~2HyQqOy zZV)J4Wq>*zoRwdURh9GWNO7ap2&!bGayg2;I`edFpB36Ho?AikbmywNZI*PmB?4SdS8eFD$l1@(x~Rpq@M~V>A)xpBAm`|%atTo{G~i>4l+$i zq^pzFWjK8PJ<-EC?iR*rd1cnsMMY+h=0GN5auiZ0KK~^vTLo(+2ke1xF;H+82ei8O zQVL|g3jv#WL3J)soJSCkJZ+{>7{CuFQBX99_9x7zz7R8_}fDDt30vX(>8pVg? z0hQ8ZUeKEFl4*d2GE)#Bv~UhINQ`1zeM2d(@j)UET5W>=NhLJ>?1fm_Qre$* zCEBia&~`Ju9W_y>o$|noRpx7#`wv(^D{q!Entjq98(ex3xzK>@!~mUOb-h>KM7!P& zuAFUQuy&8N8>&LxB?v>Z>6M^I)Jke55!3?bpYlc-ODvUKJs?nI=tibujoU6_fy$Qg zK@S0miP^Uc9b6jO`o!(lW)diA0O>$B4Dn%2a=XdAQ|V=W#3XmwZZ$;&j;*Jn=}wtk zJ%AI1BagUN0^)Cs)r_nMO)5ZvBJ1Mwwln3*M!wXT7GePYPz0lm^Ug~E%M>dM#K)dP z3=`Bz26%{zWFWqo33omLt?TpO`AWrFUm@*nhfY;LVzOPXR0?fu>P8IW)>PF>j=8}n z7cuC|`s}{~8GrsKdTZq-+eQs?J{}KFsnxX;()n%g#Wt6FS=y%~`6{tSvOwwDFN-X5 zZ$+D@xKS&(efr+u7F*d18PA-8n;*%?(EfFxn{-LBTSl26tbn#Hz$J=-w$TUPo5O>M zCt6On7d#-A?u--X5(xC_^u@}n)79n|^O{;-OnR-8{9=_Cdp?J;cNG?6&5(iHpjTEH z{28>EwF>hTWhYlP(3rPE8WG3r_w4hTs21wJQD5@;{bR&cEiZFx@W!o(cxD)=r(6?j zqyf19(rwSkv_(_;JI5OIRja zc8XbIC+tN|J@eT8_d?xSci&J->c{ z)j}~70HYkP7`3|uv+^{~F^j|bw0^De?^a&UKU++Vcq8qa0(Hg1>Kfa}Z=h{Pv1%|L zEUrl!-FrcsJ);DsPAE>81viqNd5}1q&k<6ivPDV@#y|nKQg-42Bh(fOjA0_@Ak!4e z!|bAi%cS#bWu&We2j1wCfFTBPYCHa`QFjG^o*nb#ZyM}<7s`Mjc`mZN@m2*KDNSOX z9Ceq~RT`BZSIKA{13}p}1KM;=lo7^8ON7aotS}k7*R(-aUh?u@o z1Wr1x6OQGb6UK*!6$aK*@D4j!PWR7ZYq~6 zq1m*ai^qdGV?>3onF3ADz+6436V%BD1jdPHv4LKktPV?FtSkin_)5O)nVsE$ma*o z)EP8`G6_Mu?94oEKvGf~kS8tG#fcr_hd549ql`ld#-rG;9Y?$#lx7{akUysfET(=| zfWsOn^|D194d=ZxVA+M`Ce&c;rD^N3A`N?$as&lukgYB`aoAF=5D=A=U2Ps zU=wqZGmT~M@`0YfUeQn6!>K>Due&3}Dn{3%&?Kw~EGB09Knu&{G%-&s3!Y!YoX>`r z-qqF%O52gzSk2vOV;zVIgu&)n+{ksNcXl5sn+A3rfmS=XQku*QDmVr);!+nvHNK~6MiKQ(ZkV0`EMn1g zegSyz15$G_(}2rFbO(ps$8DgAGQ<1A*$KC*4f`}|_kMz6SV#xTq!HXFmeG$BE`lBN zd+cLn?mU?%U=J6A81_cOC65z)sFgWIk57JuMFoWJXqZ# zDyN&3{ySdoqt?Iu+PcPitSj;wvoRxHIk#cBE0XAct*$-@+y`fjd9|Kg2zq}(Y?|qV z=;HFqK^9k5mb^OU#Z?Z|@q&4>@19zDu3q7A^tpjMzcCSDocTO3+w}@sIgq|sSzUgy zI9aR-Wi>d$hkactW@6fxo?dv(dl|rUtx%Xd6+(-+$LwP|6sO&3aiWCx?vBfncd%Am z|NiaO0%@aSv|ku-PYdONIAgkz$y{Wn;obS^ePE?fc4CJZ#1Y-V%vQ00aIyhQrj>Wm zX)$eqtihNm6Mzqr3{v`p!^nfggT|h9jwvyN; z2fpcH#{Oahdn}d#Neshyo|gG!TUp_%IGj%-dj;`jYJJ7DGVAJ=v&R|>q<=?bjV#Oy z3r=>Qt>n(XhyhxqZsov6Yp%{aZD3LJ5nmbGYz<(=e$&>!9_tp@d}gGer3dgQ^y>ajkm8%@ zt#yq7nooaOjc?Wi@^^+tGRWJY$^+CXrb!+xRXQ;CXlKc+FcqJ4nk_MilaxuUliQf# zGNnnLqvPsqK0RnPj5UzW`r?bbDl4*QvDW@Gz=aSfMczplV;$nBQwPTdi;-P?0)5M0dqFu! z2hNeP=fTK=>MR44CVKRs0qSIRxB>#l(jighQpouHqXw)rV1(GHP!$m4T6Q&Fr8M9& zG04C?X^ECeG*L#fIGj%>8_mtX7W!(lnS|pF&fjr0kBh;9NQ;-q7}~h_wX0R5NUj$r z9OE#7Ch0(#RCt8bfF-tGHOvQXyUPP+pJf1nFkZ(z`I}ar6*~`<8C8$s;GV27?7GVc zWq?4>C%{s0E5gNBI#*8d8dqP+;h!1jciV-HkHDrSk{W3xhZ(|#0?*ueuhVK}REvX! zb_z$~$3R3mMC@9_R$35SY$*nG`c!@F;*oX z1jWGvgRKM?q%24a&m7CBkuzH_$IfN!ta4Ev_bDoxUXGHC{nu;Az`;R*f2$$|>b1kgCD-4_xgwlOal#AI4?A!K^WGaf+e>zUD|y z{)0T`^Z9QA9a!J<`yPY0)JhIKAWzyNO*2z)UIvc*$VH|(p99OJ^K0Qhla-yRhqi9f7Py3E z!5Q8c&XbnxG6@q5&eJ4WS*MXDN!gi4^n8M_J2YIBui{*6$1@Ezh~3R6JYpI%&fb(B|+_qAp~R)gWgy)I>#PacH)<02*a2eF7?he>9~`!=hs z{OZ(fsx;s-F$Zxz|2WA2G~N-p+e@OEa>cS?=CVpzPA8SNTWbWaG(erC178abKy!Dv zk!J+LiaJ>qoZ&Qy``e0Ud=EC4Cm{;fValZQYvsI{Z<;2_$~ukY$;x27e1Wyn9P8-k zd>SPPZ}p&8!}?;EwM-G4Y`V2-uIqkhoeyMQLt-vt`+)K4FkN~vtcx8+$pOo8r%ru7 zz_?<6vH34wR(C$9!?y=u=g8I9(Y*{%P^AHv74zUA1NWs_p0s3?N$1zfc`<(`Cz&iG zX9UlulP|eI2uC0sX5L-fxT_I2JC`=GUU{LsQHg(Bef0vn(SC`PUtM^uEvv(t!pTe3 z(;WvclVgx!a9KGlw#DKU7I!+>q$85~_u5?g$=A9^pvH_B0z~xHaPj2z!#+g(qnc%Y z&OZubrAe2C!wc(TWaXtIFIf4-ELnvXKEGGD^I~Lnw;dG9G6bHKCo1rbMuLC*<`y@` z55sQe6S)v*KS@Yw^cgcvs&rmI z!4Kc1hdZYcwVT7ig)6OmSshkj25>4{BSBWTi>@}mm^IZexYva8VrV))VXrp7c*cT9 zAknK=Uaax?2WF|rFEwiyWBPD6@9Jba6<}fiL`B&{a-~44kr$(j`_aXf$uahU0G7L`m!&dRS8n<6uVLm8{I^$YpTI@fo$4%pi;A;==uC#KV z2J1A8F0QPsJYAJC7alqD%6XU^xzLM~rBV#FHtg4kai;;T`wo>sI0ZV2PLspvVF2nS z;c|bNaaNb#^R7ZzbPMALTA?JrLHnWo-7wg!emS~&+#Z9NZk)sa^J;;ZHwpyvGkE0< z-HG2BFfFzh4CfbHR>q<2HnFZ&dAcek%CPTTXf=|jn^})BM!j>t`hvCl#o-Peqd(%d zuwT2)#{t4%$A$|uQ93EUDgyK<{(d7Sfn$4o5WWl!6p-zl;PdHJ3{u<4fJfV% zjBV|JKJI=rBE=6}u#Fd(7cP_Hh_b`^2h?W`C=M7bmqZnW=flI{`DShsNVGj>*_{#q z>jcJ1xxwrGYEf<9E(BtR!Lr~C?+cen=hw=48eSXV^B;GK7G`6uF&u@4xvqGjyf|#4 z>9N`)5ah*_S4Xe*ua>LJE5CGFR>mB_QC^+$bmw#O!7E#nxK(nH0cyl0i&LdRJPDoP z8=}(`nKc+f)aZAjn6Kn|al$miV2Zb5OJXNym~RRyk8oETv1Dj7Fy0r47iZ~tQd zy~$YGzYgbD$L+?IIt|EHoz0xzuB@Hz2UY3x4=a!J8-N@f%>6KiGoZvJ%5?lBJ)|Ve$SUY-k%A znQup(6<1s&II=DVmolsM`otf&W}OCA`#j1}pO3snzYEPm+Q0j{vclXY>za!YhP+y| z=qGuvjg_EOorP1BU%ZFuF6m~aySqWUbLkH0k}e4;=~zlqTDn_0c2PjOyQQRb1@ylD z?#!LJe*m-0?!4zc=kt9&&k;?r@uD6<^@bsz)p5gUQp5RUTOsiH`WQlY3+@8*npceO zl&{h&6Y4g43#>vm2xf+a=#_g{csvjZe!I0~a@BGMhimT@)tRmeH6K8QDNG;70xF21 zLfXIq+PgCYYjGyFPKvNKEWW1&Pyb`x1_vWl33mbQ`efol`BAz4WTM8R=)Sl-d0<^e z&9@4T>UlqYz}4kQt^#7t6ADS~5}KEp#BD3l%8rFxZmpLM{CS#vocXKZX#gDElZ~i6 z_>9i3r_{87>s{Y{I>7UJQ7!a5F@*NKkIZ+#T$-~Sja56J{_33Ba@6E6uEzS5^;S6_%`)&vi>l*r8@(fR{wb0`i&3gVfoO3TdHtx8))u;GF z{^$~L0K>@3UjkB^SQmUurz^D84iV@vS`4x{l&ONK#?@&FxuL>C9l94o4EI_7?X!13 zn)qGZf7CzszM0<0=Xc;}hfpH7y7sPRIe4oD0-rZ{Ik#U!mUVfY6V$Cfudx=RxppSZYIK>wHj8kTw(y@^ggiJ5%cr8HFSVmPMcxHGfM z6f1ic%}=KzqlY+LP-*}n$7w=hQtA4N?je^|2&=30YeM@ioU6eFa=&C4uB*RgT(Wkr zmWHEf3~EB}HQkC6>g2OJm2X%D5g3?HAOBDJmxYQ=bb5VwKb1sSJ8?XBp8E?`!ST z^0CU-qg30q4UD3*FWnBO;52(mL?JXhmMl|Iq$!jiEm}sv2R|3+UK5J=#|y@DVT&Me z2dego`pSfs0IT;D2fB&Hp-?lx`SkbnnHC*|;{BP}{lSUGy>=J)I+SQ!dA-C;vrJLnG%NO66uCE#jdPg-Z zG9jA_RBw;)nji5$3&Ee*xG%O}J3Q-Z?Y{D)nR`tJVSe2F^o9|TgkyaI=dgY7`GvCZ zAu=c#ZaS9n2~x1{DE2qYc2#i!{7%Mp=J{OFG5MWH{#%Rn0pUMXr-v#Ahx-$w*xTjK zP4J|F9(C5n7=PXULf6uOqH&+;;8#m*d$x}Uud#8bvn)FCylsi^v*sSZc$Rl z)Aek2Y0i49He+tzB=2u|Rlzjhlw0**PBUF(z1f$4)UDPha5qimSfqusjGYCC|DAp9 z{#L8J_;1Z~Z`u+$PWPyJh24h7h8)&A^LYgD1of!*!M@b~SYWUsi~41_Es-7>D%{19BcfGWc1QTCE4$0A zI1pq~#(-}q+laKPx99jT>9y2Sw(W27?W z$T^?!G{1TnM8&OSC})Iuiuhlm8!%|{qP|*15#HB`F-@~)mkmjg_DQ1 zQ9TG+N8{;cTg6jCE}K$o`1C%TBSffL&)g(AMIJer_1dlquV3U+ahAI~XAE|WEqp)9 zf$9|1`06Bdo+lySpUj@)0qYunY9RKtk(~$^;pNw5&FhOrVz6Vm^tT zHcf7kf5wx#HRU0M$ko0fe3a#~RZm=vE$I&ozIYE3a>#s+GW_ho-97|&XUan{a{dj( z>Lj2BQr=alnt*c7t(8=6XEV`JS{>4(?PuD9-_wQs5bNvJ3c^vN0qEmU0vJs0B(au+ zGRM&~1l;%mLI8*jus)l`RfdkfS;_;0E-jayf0Wa*8#rZKvz;vGu${Y#Qo*nQf+#K9~A3G70(9ULZevq*-DAq2c>@`&y*g#C2 zoSh&cmIUWOu<@2fe8wm#U&6ej!?59{BF+{t={IyH+qi$@)d&6FN76M|FNER z6}g0htin&3`NM0sZ9@$t7iBznKGHTJdrR2NnSEn1Q5s7L_pD7K>JQp~D$~DU#TgDa z{^-cHXNsOX9MmERHr=6pe(`DVuB)Niy0XdZ$C0G1S|%qsCLs#&f4jT6+}hn2&{;J9 z+|zmQnbqye(`fHNAhdEiUnGRM-qB?fiGrpg+>~vO@xBmU3GoS(=G(u>y-GOqIwxAw zwneI%rj*7%t3ti*AQ%yz{f5kb4#P2yf9DCwXB&lv0E3pIe~tC$Z7*pM6~F|&lCX@Y zbpC<^JJ_)sP&WEPrh&H?SS6oB2w7loh_F{iy^fZh6U>Cfw2vGGm)U~Y0x<0N;*=aY zE;v^f+@kgbn|} zHDGWKFw90#M2-Epc*a3yF4oJDPPzc)@8S+5R!=q3PLp>=Fss8TU&rU)^&wM@HFbDg zczZN&T{P>v8m0 z|AZnm*dPj^gvCSQ=kKYGhg@Jfk%M5L`v|5`-tzdU9v_|tlx~g55?SPbgCZxoEDL3@ zH&fiL>${sI&8Pj*Rx3B09XFQfEIB87=HvN0Yo{w>r(^-SD1?^p@x;rwQ*7TD{j$!> zapVhg3$%@~$&zlPLH`d-u6+&fd`ni9RQ?}mfN@Ci;g=@SYo(8>;%Vs6|Ni#e?r|u+ zR;Tg8=MS8mA_>ph-J^owU@y%Acxiu!PfV`AH)WVaCz}uNWV#MTqRnG=9*LI0fHicF zC^G^~IINs><8A+Q78k3p>IMXW%!ixF;~`vsLoM;tw}WY(Sf^qp5nP0Qzw{4s6v?n&T4pX7E{VY#+anbiE%eM`z zu6a-&2~Y?P47FVuh)cBZLJKwrRSWDFIH=^NWtvn7-W69qr!elo8=)5Z zbql`AH5S|kQNAuB3w}*^8vPp{=PtVh08dJA^4 zmj>Gv3%O5N%2?=pUs1w9I=wDDO*QOhCexmQ7e2mXAJxk>Xc8~3MLP~NgV}1nk60Sq z)8!Pmbli(^Gfg9ZUs368f~=Ou*DP*g_;_RRmuOI)1}%^QKb0y!#;S@`vBkQn$QbG( z{Oar5*rj1P4Ke&1T043DUUUA~lAp#s#8Ia1QVOb%bMhOLa=#HqQo`Zv%*t)kZ?!hF zBrIxjt+6--J^|#?H&{Tk-pkF)oZ*-@yDuNH*Ya?c3eMoKr=&jvFGTKRBN`H%8mawh zFzFYl6xeM3F+EszosOYdckH2a@y>O9U*syMY^6skxLNno<#A4CM7i(J$?N!qgQ{L; z_wVO2fAt?b@1wXCanzD~sNSSeJAYL4Bt|grMzBjjajBOh;X_IJ`UKZpdwIkjED&m( zVW5?5_)Y|R{3dn%FB)-r$VYUSnPUsRw)b`ecTOc?ucHZ1UHHP|E(sy}wr_yV>hg5n zVj13C`z-PxflxAHa0QCbg{K}6M>sT23L?Dhy|3NXHTN!xU_ zn4lmQC9W88Yz`g%#LB;7i&Mhjy zmHPq5(H}M#Z&^xQL)&hiE^o9DdCaU&iADV!>WO7V54DI!)C&dwRCs&l2LqG1nb*Q| z+#kv}OBArOiCMc^C>774*3hz#?<4K8Vl}!yu2p2n0pzRsEsEcnDbtvUEJm0$N$iai)uk*}so`rt$G zB0-T0st8>!#=y@BV0HITlz06Ht3f0Mq{J*xP~WPI$!1b@9J%}S)l|BZ1LG)T-cZzU z7S3U&O1vknh8)!d8svXrW)0`0`uJd&EiG>dE5e6YB?pnP!O~SZL?o$V1S{JHCxgjF zmj)Clt(T?&aFtst)#Cf+{kCkobtNUY&V~FSyRp>Gt`WZWU}#?@`oDPF1Sdth)4>4- zY$K{9H{mD~;P$2nCe*TbrrlXF3)kU{b<0h1%w(@PcM9KgG?4flT^OM^^N*>46uh{v z@%uSX=FQi>_A6buJNSNbnSO5NOz#RO5isU_Y6g``!=Gc)=;Mf5EB#CZy7dZ zT60^(l@6P7<7X_TS?3Y_-b0TJrakKgCkZbX)N^yUgU@8}8te&(Vo)pUGN6Kj;dtlqq5kr=;g!%t&gqC!iEM`Z(K9|uQH%DDW8sO`mdO>yyZg+A62 zz4-t^=|(tjLi@LO09FoL)Yr@DM*nuGKRDa=6!7>G8FrK!Y!vtrJePXX6JRM=*Mo4u z_$=y{h!TRCJ4}h#j{&r|!@UN4ErVulTaETU;bTd%yW*!x)6Ga?Kf|h!k?NHAGLbvx zeOnw+O^unWVQhB3f1#(g$P*H zm0ijnCB9E%LPxF>qs5hct(2G#nHFxUe?`fI|LCSVeOZ{#4+2rv_at4EX3?K0IY;QW zXS`%ntw+ivLFi9Eg}YPg6Y4zVpCg6`I$8h4g-04^3je0W=3ozH2)(-r;E}1<$a+06%b{LwcFNb@l%lo0n^5S>3bbe5Q^ zrX?Ge-CpQ47?RaKb^6i4dDFNd>b#;bhawqv6N=Gx9BZMC3JhL!L`jU&IhL9llYe6! zS?34@e>8jDH2Vls8nw6i<1RqIff?usu%Qw<%jS=Yi|u_54n%dJOq1Qme+mv~;PJpw ziNxhEew#!~JULfvQJ&T8#K-o{Qq88X(tSou-CH=x-0FUkV&A`4Ep4*T9ZAM1g!jft-2}$V?xwV+gF;U{szUJh*rz!&#_a2|3#%!cGe!49|M1;D ztSr=afzM7N1UA!mT@PL*SwIi!-UMwuc5hJTmpeITRI8?)c|0JScZ?qj#E`y^s zUC5L|XzPYVbDtZFy+M%vBS&H>vC&>F~p|@wSJns@vNP(EaD1oi1`3+xuO5nts=m4+<8@f{}h@YRgSVtul2s% z9xiL5lP=EhB-0V!z^|Z@Zr05KbE6OY6}b=9ow5A$aE4fgq-EtN=fX9xS7uAmgz?9bj5=^j?;Dg*r>^&VwzWIuz5+ts)b50 z?_}%ui+EF)Il1H_b%8JO{eaBvFaHEDY8hoc^f%EIariR1}*B7j-V(t zOHXe9ii~u|&a?RA6~|RS{ku`aKhVPNob<%p&O$LCo+#Ni*OrWlvc2AI9!2W3Tn-0> zSA3G@bsH$HZ^Jb|&rwmJsHKZLXrQG|_p&pT0C5=NP^lE=4xWE2~b2YFlnVe;r$KMg96Y&C8|H5Hv{oy6GnB%p8rA&x*zs zWULLX=xT{7Ny>NH+hm0Pdj87Wa#L+xw&_yqt|W2K|8Vmp{Hk#R9#qzUwb>=gb7V=5 zw$xxgDTGVzw|AYw32`B=AH7`l+LU-Pv^8+;k+rn_LeE5O^{ z^;uth0IDgmh-qnr$=DEcwF5Y&XkmzW_+p^)5p@@vH7fK_Qly3kk7bfv?mJ}{xK zzXZX??7K`mimYkhUelszKr>cB3&lRpQc`|kt$bzh6Jc0#AxBO}hQzi^{!>T&U!(85 z+u>NH)fR4Csd1nErO&?kmRWut7nGB$G$v{>{7e@zgT+e3fxzOQLMvj!ktypAc%Zkq zbS4*>(TD(GMbEktk%3rbdRkc7dJ|RBs<8^cjgl=fWKW@1-=76}L4^aCyj0Y7FCug! zk>K6x2htDykFp$%BrUnX@6b|m!+ShJ(3(hka;QQ)S+jyAks)dfUbwA&b*5;IwP(N> zV9(J$7tvI5vLjioAuf~C)N&i4lDVKuJsn3>Nrar|V-u~RAaZvUJz%9$gZvmR zW;7qM9N(2!lFScDMz~Pw7=OmTI3dYi0XNEJ1eAf`?1iELTiu00&=`iC(^Nlrp7~w` zQx~T;3y~AZ+ebv$1y4QRO*Vpy{+fn#tEp9|5p#U}H8doPs{X#EBxYvfik#E@psaR0 z;Qd)(xcG9EdIMRaB|A`9N9_B7fLfuxehyF}Fce@Yr_wJxi6Ks+AIq41?za6HS>Z(( zGc~&om$Hqa9xc6|h=T9@H1RY4NF~${n?}X8eDQsIjGo7bKSGACfxx$BWy_9fWaQv!zCA3-MhtRkuXEC()v`0_2o$!5q@AOX%AwO)uWBkSn?zRLvCwdaT3OM*BZp+Y`Unf< zqapJQM(?{bTN36%-0Wo%JO@#I!Vzz(buVY7KU@$X%Z+6TOg7Rft$^>~fvHePz5e;h zpoHeIOYGREg3maTbg{ok{cXz4hSBf!xZA973}+fQPPD+;Yld}h_3H+0N}6|nUI~Gn zZF9cTTzG~sO%ef!%Yhtg1Bb}`m8UAlzeB45$Wb^A0>@)LW|8eiw3^eoXwuDj7kCqR z`s211rRTlkN_j>t5+FqZwx9JeXa{mkFl)a(#Gtf_{?-ITbL;@It_>(_cG0hK)Rr+d z*$?dsVDKpnV!pV`9m|(kv&_T|6j_jJGI6fcj)x~Mgtn-eRK5SO;cal?yxgF_TWucx znW#-l+L&9Mv}<^O)%8S^tI3pf`ZX?x-mC0OnCJ7n#$JK|6a2AUh``?O5ULX10!x&l z8`+WjCOyPA0>R3>eZkzUMZ5fkPK+SC+PfUZ*iQ6%`0nL9b=4&E*`qQjoX5Xp<5JU= zxYNj~PdEQWUt-`bb!uQ1>Y{jZfd1+Gdc+S2HWzcLZ6)$}8OeI`g}BaqujdC_>Cn9s z_w+kx9dcYt$vE?G;7&`m3wJBM+PK?W$blgr#IT z%N2ep{Jz1-5uWhv8iZl#H)#5z(*h%jdG4TW=FOv4b$#xUbe9uR@5q}!aP5mL`U>bc z*pVo)UoGdhR~-k4*@brGky|p!cOkgvT+?wJEr3#R^ehQAZsg+#SJk;IW74}V+|Uw` zL&Wj{2n|fqowz(Oilcj`VRc?A=l$Fpy-I=LOzF6@>!Vr#qJb;3=iF|zS{?3XbA{#F%eb1h zn+)4ZV6N-$e$g&~j)kViG#6#eHS*owWOl@uQJMCKS|)eq%nbI$M^}p?=E(ygS7@{T z%9x~K*nF!Q2hpjQq;n-8x%u`2dH(ZKO3iZY>?@vfL-8*h5-pq0xcRt9a$|xL#29k( z2xuy3tn@1{SF=jf9Uol8pbCZ(x5TImpP+`~~Z`k{5V`3C%k$*wtwy;Y`)i@HI_F)4r&j5E*#jYp|bZ;qb~sV_X{2 z0xr)jwU3w)u^C;Q+p=p3d*1w+^fvh0l_sLg$np>73V$b=4Sqe2zczmsYu1k7W^L;2 zdK}x7?V2l=VODEj`mr>k>(y*Q#05r(bDVBf_2CsJ6Ng+Ysg!A(T=Q{OA2L`(yYo zC$HTFCg#wsc@5jiLP|GZ1EY&;SlZN3-XM4p?-DIT>P`y?`DmHu8EIB(A89#^)C>@o zv_EZ>KZiGeuSjzR(XeJJ5nNe-ML4D+RFLPZU!TAaBhO0^B&b5qzh!@_Nk+yQN8+9Z z<&~#64?0B&5JG(qlja$_gNEPYRU%z~kq3YFZ{Bv^H8)fnAbA8Ox*PlsC~?uk((j;L zf+4q1D(mTg){EO@>TVGqlN};IKH$9wBZ|Z}C=JB6o~E4a7#r-iC1f)7aF`7B_&V=b z{P+02G2-b$YRKPX76-uoNAl`M?_6o+e(}qt|0g&0!LxDv7{=8rKG@ z>;>t7(hXj!A;~1JLmpkYrj;0KT`NMAR>p* z837GZtFU}X!le5LPqeL`Dq<*leC?uF32%fHvl@{DVH74%y-zijiY?G+z)EXK2VwPF z>3(}VV4q8f3LNdbC!-i7qiE$3NaOBfzg2NLTKZ$EyKYr0#=SA6kOo?FDzjv+ z1eHi{9T(FPqEF%SF{NR8x|vodE}<@{QqP_gYPc~VlwpBEq5_uG98zKrum&EU`lNal zpt5^Pb1C}4KS>HznM}cs1a)mLKvq^+K{=lJYsup4?veeR5LtCv1OV#vpJSN}e4+>1D#Ft#zJch!^K4?N)-C15_b^^@)?_0_al!z-8;5DKk_>W}skn zD97Yjekal}kqtIqUp-CUOiu6cO0|wE6<*s$!?sn7qvVl{!WR<$=NAk30H_V!zN6%h zXW)l5Cnv#z4kIiuPHX^Q7FTsNB+`g7tq|p(xh*!v7nmW)O=J8ez;F7DAL{>|m7y;Y zsp7PB<2i&8!~cGq%dX7wTtpzOJ(_X8T(*bYB&bH^WHT(!3HhA4UNwWPtToopdY$vQ z`x#a@-@MC}Ld{g&_2A1~mwEB@k-9U*O(agXzr-IY|FelwY2AP{<>wAKc}d}@8o#cJ zo6Cr0AdX>0K$H?Pz?S%#$kqrON=$8;SsY;W0OIrk4I`mtq1URgKIQ2)w6ob zV>fR}O>4py``cu+(tC~u8~zoHWg>-(Wxd7el+ zst}Cuv!>JWTIk7@fQ(HJA0wmn_V@BjOc5<4_z_*}w4V)A^*Y8O4HAeSL9K`eoV`rb z$QGbTZH^^4N&lhB2Xb!qJM!2^P^6;mj7F`^BK$H*=HP87S^o?)$lTMNiRHQ#-TbYD zZ14bZq21+1S+CQwaEoWww6^|IC3UrWsYeAF4ZaplI8!jB-+_svBX!O&1pX~Ltb&o5 zqp>UDuf5Ri_{D|7o@Kzr>W?$BphPJ!r}4z`&(u}mJy$*10lqRYmeb*GIN+_N&sU5J z_D{7N((AP_i7tGVs(#AEd?+7rDU- zAQWr^PQ@(B0IsbnXwo7eVI5Yk&>$9X=dFX#B9I4?3r)Wx$qVSY%lc+^q=1E>%43_d zuseKJp9K`Juqb(M&{wfXCWru^@89ALH$ zjl;Sh8O-~xYWN0}I+Qlk+ia-L*E9IOiX}zGp`L2pkPU1Y_$Pb!6#RseC{JOYvb|guTOF<&)A{dmDc&tA&^^ggkgDeVp@o zr2grdo=Gq{5+oL%Ua0dN;e>sMY~T2M6NWzx1~1{o1eeTgNcp(X*AHDB%d`(*uj86i zjx(;kRL#7Ah(xG6>W4V&vk*m3766r!NH93oa2$CF}&EjqvL>7 zr3w*RUU^*(vHj049Zl-_cD^z{DJi1ey;lHR!chG7I?5e|8|nsGkqNL2aBgCssE9F- z>E<7YFq4J(A{{u^X%TiRe4XRaJlcLn5&89}14O-4h8bdcGNMi0``hh~T++=MZP@`wjCl17 zFw2s4nVvIYRHLn_Qz9}+{N}1Ex=(_$P|uXD(fDZ4qxUrC@X^a}4ZA=if{k=e4VhCN z>jFhw=0_IvbksbAP(BV2W-$6m(yi+9GkjrysW%a*s3nwj(pS3FI=HREJx*;CL^x)& z1u*G_f?`ZnF0kzreWI+#w80{1E9bwF!&VTJt##8l-P zP#D_iz5BcAi4QU#zj5e}nbzp>-x3P2HKp-8`1*$n)9D6Co!DiN7j0t&+s%(AFx%__ z#~SxaUThPzaJrbLO)Jdtt!q3S*S;G;2e~}1X>{g@b!V;d1%5^h&=Hw+B!Tbi2uf?@ z;oBgDbG|;KHv-DBou$3icK)mgZfcpYWBI)tIq&&q8G-Z{(6(lvb4b`Oh{_t{ZcQ#C zBds7F8#UCu(47ox^*16acq7Kvq{lC>y^TfH>igS)sfJAnCM?dL{-@>l`5{j)*lg3I zf({<~CMXxv+l|q-(ep4?>IO ze*ECXFc{n# z2~@iqVw5qi#~WhMzN!ss(IMUR;9w$EyLn~q8UK4c(CrCW^2;rsH8UjzfDA5SneEKw z;F-BlM6I$3y_*@~wQKCn6aOm;Qw_enTYa&YbQGeIhNQpH>+dZ2PLf`_UZJTy;>;*!Nh3;OJqvLFsf)CgFd#o*bpwN8w zYih7~tBrDL3@fl&+yHs?`t+yZjXkW@u5c?vijHDP19=WOMH*5|1(qvhI;JJ&*3fCz zNd`9_7u#1hrX?8rjU?_)Qlu*&zQkq)g2(UJTD@yWx3oXuVH0fpa@9S=DtHw-qe%;z$w^NPdDaUz#`dO7cH4wIw0vJowpd5l5(KH>g5mh}4& zYzmc}+^@Dq{_+p$^bl27;@7K*t!uK&;W4;fSD+cdQt7o4hfW`=9QK_cUqazi3|f$% zq|7=u3X%C(dy_a)QwO#3N~!Gh4C3nP)b0n_1oY}m-?Ys(of1T>9){5vVnOleNH>sX z1CV1Xwtbc44XKl5MJ7ZZr9Uo9H1J=? zg011WipYV*TTee$J1HX9diuARMb+&ikAZp@DMd-96MYKy{CB`}x|HC0VC&S*x>!z_ zm8hY&1D`Bhs~^Gn^Cn4KBJg-y(`{MuFOvY~FxIuj>_9roGCs1R>zG#dD}`)^;pdT& z6mx9%AJBr-(6j@bD{*IrLJR>g&3KGFVo>5*74!2}VkpLMz6W@5x3Rf)oUkNNWFPZe88K>)4ZqMiWq?12beZp99E29Lp0`ME66@C z?ixF23+<_5)d_+o2S1*NN+*%$)ZsF$N+giMv?LKqkr^bu2DYsoaxN&7PZPK_kC&7R-%ythj_>VLr12wV{L7gbyh~z`fYsD z1w|Nn;S1R#I2YpcN86i%cPM>|NJgeXjH>}ocW!?hNIUr*tz(IsBR!R6QwOi@?fGUj zZ-yNXZ{PH&IOpFYj+?Q8f;Cb2di9Tz$-ZFc#PIc>77==zM^2cm@v6Jvw2)8FbbuD? z>mEY8hJHqSus8PorJ1$4q^eJvwj1bEh#TT!D!!;DjeGIQ-YdK_EC8jI2%o%ESay&c z3;=^^w}SrbtD~(gfTZ{Jo}G2xyLOD}M0kGEDwU(Edfhy0z%=nBg3O3<68Y3oqc>@n zH-hjJB;jkrs9dA<> z%Sg}KSk?izC1wePXvK{=^O-)N2|7 zefp9v`qO01!~{i=DCH!Z$HK^#rV72X&0{hap0P~rhz%IfiquGuJcW70dX?V7>o@51L2 ziT4XXE9q?CgnOFsm_aS1Jv2o>_uZlPe2&RsPPSUN()e){Y*$8Sz~Fp#?Ea1W6K@7{ z4%p52C4h0qEb_i$4+sP(;_By4fPp9G;4+v&*TP2s`Cb-$#2w!ZAsxZn!f1T^J}^D$ zS6PjNHxCl({68lZ7Z`v1y;n=d*F)J#alwB|^SO36H_FNX?B-7CP($4J4*9)A;{7m(WY_8OFK9W>N`4A9`KRlfz2Wd(7a0>)?^7Qlu^ zZm9ec-G19$bjH&e%ufb%rljtdIL0f)nrCT|nMTwau&j-&Qij{fM=fE=m_mO@WDR;` zqjMb*j=3EbG}+g8qL2~!G`+m#=^!8%_5^B9gO}^B#jkcE<|d}tmR8i8`ST7gs%C+$ zZa?+m?=^T}^QVAj-5!0my@;=mTj)vRw2LlRD9-iUYcB-9DG>-AG9Mq0ON5lma(uEa zQ4K3@dS_fSvdEMcRgwked1Wm!RrX&EKI-qd2 z|NH2aY&sfNF2s(_At6yUj?zysnWS1@60H88 zGqe-z9Ha&?Id$5g_O@|sUJ3CJ_N#nrxFH8Cm>(-MR;zW+);emFndx85@L!m}9iBUt z((@VAczf=1hmE(UmiZ7cq%Dr7UfD(t&XxUVAtNr5tK!6C0EV9IIJzf5%*xt6Rhw(@ z5O2Jy3E~JarquzR|9K+Sp-)Yi`=_LK=PZ51ImF{L4i=NKXpKhttTDm48jMyqBw0NX z$fA;9`wmMH-@JF_o`E#JgOP8UPK<7#I(JQ!5%z&RS7zW^Yf@L@&0FH8m!tXZg%3yM zn6t0ZOWo0iFuqeRo4jPeQ!-xu^+h`~Q0aBce&PY2nGtmE^of>SU*6rrGcIgyUu4h` zwMAL0S?SJVrjaX^8S=O}SCquG=iE%x-`}q2JC;7XZ8Ng+wMy5IxZz;xS_@N|SXEUc zg_0?Nm_uNR$m7E|70~7-F^0~{&iHe-#11}Ryj+S>kX@z`OfG^H3k>+ChGzX=$kLXB zwov1xN=p@2)UpCF*#K+sQ%bM&+z2=~g9PdWSF z6CUzuIa%q}CGF%kMBbTjBCx=7=W9t0dM-CHy86ERs9VLiM$e2eGmL~Vw|3PwS!AbW;?LmAB!XZg;HUIFPpdfH-qp#dygA#%^SIJnVC zWJ~Gu;eDSnsp$^O%NKwH)b{`J`V=br(|v%hb6@1D+dR5a6d{-eqRb(qYpn7z`F zg42mn3rbdnFsi$l^+x=QAf)!Arxuq=IMCU>H6?7;2;gisluP(A!G~Ae>*IcPrh^>5 z6`R;I&IiS9v57eqHXS2Jl{6%nPM}OY>x7qd1XhATlxI9TM{f{|`T!{w&@cbCJmV5r zQ=4T&h(CBrN8RGSiS)zFQY7$70J$!6CXP?~4BdwEzZp%*W*N>B5jhM#~$zsoNjXy`AiW zvQ(?mry|$J&l)Nlh>em*NzK(nZF(n+67Fb}rN^D(*x zvdf`NLCGQg4fbT|P+?o5ao$QBs;3zTCCQqXmj1LhD9V__gHW4DC5P15t#L!K3JS!w z+TMAN7Xc0w6vuW6?8AXGCr;0(+~rD3p`Ap-(^u*Gaog0kGg$RImIcL+hbnXMVG8vr zs(T4Ea3n`MS`dy^W7(*0HVN5sU zJSP{EdqU!xmEFPNjyf$5}q;gWmMKsbd%l=`86|wQNOBEMH`em z*Qnv?+;@#HY05PM?z3@J(BhF%9q}0XBB!K|7I}@Q1!-5Sv{qGHt7=4ug;sO``pwdJ z$R_s3G_s>$yg4ZhIcN?C>m)gf;Zo}ijS7F7ijt=L-?aw4CxSsk?an5=KWuN-C|eQA z)VDO`ub-k*g{8Qod2btaFXDFYau#2E;(C`7i7LC5B}5@?p^twisZWBh)X<_z++W*H zn(ot3pUQ*Isdyv*rPM?8MX&}`(CjTDd3_cRqZbru+FL77`kW+lCemCz>%|*uR&M+l zwg_?*!OohxgZHKz$SbG(6byT$ao-)fyFm=TuW76`NnVH4VMnfQiceN6CC4~{S zmuX@FF}#Fb-X<{q0Pp~TKAr*=u2lyDJUZS4W)7<2;u!W^FVBh7a)n_38OY7K?;X_n z4jQE7r_j8)N0d{=urEmyBNx+}&qkQyj%UC7klSRe_?7gtQoZ8NXfaclxVmA~pa)-^ z@!(iPAzH{4>>w>L4|6ODALqv2*V}owrRCssI_?cnn`fDxm;9Pg{9A+0>9AcM%&i^k z*Pgg)lu2eDJR-nY)PJMFjXh_7Ug{K`9A5J!asL>mP@BFed3e!BZX&T@(yCKbjXZOe zfL|g5uo?dZ^_ZIzvVgon!sdf1jut7nQ9JVP{7*x2&(wChn!wFyUrSE{V1gaIxXac10yrUul@T^a~(3A zqHBkUW{k&3gNgXYk~yV6-ZKDq51WuuCkhG=+r38rOa2-SNo}BO}_kZ5e~^6_NL^O0)HM%|4wWNdI80lkLR90itVS19RxhA0Y3H^YUuV zK43itjAMNXQ9ItBX|8fa=|X5)PMv`&qtE$jcW5Y2|6KzefL*2dV&qO`j#ZR8C(wm@#B zm|CdM@z1v2lO3et#~qujLiBj#BmTR2cK-2o4H07{QCeO?z#LAE%mutzhA57Js*dXM zvAr*T)p^pZF>4E)lvf@=T*HzHi)w4(jwRcV|3HDrB!Rv2`5R;HVQ-9OAW_6z1kUga za?ZTDOdAW%t-ZR)pi%RYz_Gj+1>idHrh1+NHdP^^I;(@z;s5L4jL z|7bM%me;sy{#s*n_ic}bZ~Gy%pm+oZ672Fxv7_oDU1PD4jl%^#SP5*&eiP-Ymsg!4 znt|W@CeIKbga`I$+8?pm9NtMhW&%Z%&80N{04R`e@GzUy!tDccK6WorQ^01nLzs>F zdc_}<3p`Z5YX0Bae!ywScYh6w=5lYrlNVGPNLyXo38st$sfA}@J>+?P2RW#axS=ms z)bx-@Bt6QK61CL?bQHGe*M6$N^EreOJ@%put99y&7+ng|FLz2miKgD6mvX$O*3dSe zw8e^lXSgT(qIC#MX3_U7GKt@HdjAbm3b%uDpbm5JZXf?Q;hAqei>ZqW>n_nr6F=Sl_^b5QFzVw&Q)+;X*V+lW zQ_W!aB4wZppvsb@(H@=L#9-hz#}f?NN*R2mm0FjA}m$g}vB*o0s1DwCN0$A~e&IFmc8mcqCAU`nW0`j~BmgBt83c0<7 z>7_wbj;Un(VE&xfRDU}DC5(^eg+=D!{%_j>Gf9v6vxpQr;ol2C-0MteZHU$#gs+h; z`a@M?=j{(W2M2?lmuvuG$9b|_t``Br^OubpGBII`x?f=vrF;Ck#+H}cYIUv6IY|6n z6n!y}DJ~j)>=tpl@A)_HckhIm;h~}8r zH_)1W*<)&?O*HwTxhklgc{cSm+Ck4G4UFeX$ngb&ejw*SXbH3a?CcGjmhqk-x0j>& zV#g;YUa*}rVlieDlLyCB*crR_1loB^VtB`tlduUsD9a zY*7@birLnLW2p~Q;FM0f;pNk;+v}T!lRLGBpm35qz3s>zA@jMHts{j|;|St?&HSzK zn~o0gf0#P!ps2sNZPVS|qI7pRBHbWe!qVL-DIHQvcOxM!-Ai`~NY@I|APv4>e$V^N zJp4h->ek0r)NQP``JG7aAml-~=XGHD&O4_y76>e!Ui{Rylqjz6 z>(#D2RK-l(o@#y?E45xA=qNX5H2NA$Ow%vX{?p-3kX z&^;mqtV(Td11~7#HhpxgzikpQ?Ot(l0C32?VQ(egI|2Ks&mbMm;kT1wfR}sT;4ai+ zsPm0>3oPQH{lw3qU-sCDERW>$>i?l*3GO>=kn0>DKiZMo5pLv&>jMW#0S=}Hmw&+llG*5t{LQgCm_mse?G$209Uv+gySO)BZ%&z zZA}`C1LuUT2!D{S$Kxg*LD~_}jSfmNw^lf}@sEuL2GlC(`q8yycEsI=lZ&Mu&9WpI ztkU-@*J$J{06F(<*cG~|6m?ea;AnP<7vB-qu1X2`?~7LVk7B4?VOQ6WyXonm_S8FB z37nu8EGNkQ;zfTp6Z;zk0NytNM)QFk?Y)|Pi?hf5HY^mzOGDl3uW%>R?Za!^6IvpA zo=wlbo-V2(+ro|Fi7~4FrC#QHlWXReRRN$4|G$qn>W^^2Ra4iNQ2qdc{Y=N5L{Vc` zuEMY3f)iPc6I%Pb$wd)i^@Eg9qJ^spT>mqEFXHyqALj&4Jybo!utp7x5>>dZUs0^qSy3xqZwrabj>1ufWkHexK%d)bXklnH5t zLL$iD71&QIh%Ng{|pL6Hy(Xg4~G5#XR`%$W}nPq9T^8@9?Kmp z{3eFK0TSK-3415DM@T;)aSH0a-SHvzgSu5!U`9-HXOb-kPae%SZ&g>+#FUp-0!DIHuL^L9Cov**=?mcqSv-M|jn zI81X>e1h3`94kjlI65tTp}7?N+%#hGH$x3dy=D!-Kh#jDbp$>-a{D&3Yhx#6?B{69 z@`i$myL&#I`EGOH4Xm0B#EfJc;nURWwJp6uZ|*2^U@}CLDizXCt5bKnqiu`#?c%2G zyOZ{YZLcNdIIiA>*hUH<$EAf^k97ldfF{-yn;l>&&Wrd7h#%UNxP`vkHqbJOQCfRshJhu*;nAkgApK0FSMBWqd-(Em*Y6%&rkSD_TWGia|~-M8f0pcowTZ zuCTU4Sz@7PILf4GaJ9L*Gt%FgvSSYvl$* zqAo&im$oRZ0QJ!U8bjC$>^#>d5=AfsGB4fxaSXUGa^$x1u-eVWJMRcCSR`u_SPT}y zL}5AFGNy+rNFk*waB~CXa1uzmObS5;lSpB{&)c6EX1dtR$zh@-|Mfm?5rn2WiL)42 zNWVv)TK&4()~2X)g$KyB2EID4ewy)KR;rr}J4E zEsDmrF&NOAl?3#*W<<8aCQg^_yYy}YWpuyY5VbBdaK*#b84cKFGovWs*%MXMMtwCC z`z-NPlsg+#X;w0kC)=(nDY-^yvA?A|6?3>4#93N{Kkj2X;_+`yB>TvF`-PP;{Doc<*Fp0W(ot;Ox;Z4f*NT zI9c{F!#8RCM%;KC=9mpbBqgY>8yGD_^gi5Sc=_{tWrUd zJ4U27S~47v8P`|{h0oC4DedQcv}K74atdmCv3>yWc+?CP2ze#V#^6Io5zPj$luJ^4 zId#|qAK(b)Db&4znAP;QS!ov-{_79HD=d6K8Tpfh-h8feH*h9F5Ak%SKOT_sw3Kve z^fjJtVLx$Co<)D@q6q2FBqAENsJi-TY+oU&&w7r*xrSSG#>=tX()W_|Roq`+EW2+# zL+2*uW_Qox4Ih|zp?m*161vcN@G&hCiMxOlT1cDBu(&>- z*75D)*nqe&oe>G@l`K3v%R%4k$@@PLCbYa!Fy||-=8Ur;V;#t#jWy!R&V%dsN3>ln z?&Vx01X8^mD=HCScO|~40Tdl_wpu5ZK4zv`SzMdgRJmU{SYx1A%SQ1CM?w^;vPo~K z^aaRh?MUtwBaqYM8+UW*0i}WoO?db?t);bV-Qg};22ymW;65ym4$w9|zt>Mq5f#y% zI)~rlgZ6xZo?zwYCeGW5$Z(_X7$BLMb`Ry&Jl{XR|IKIBL@>gBH|FK}0NP*iwd5Cj zvjRXr>s1rlV>@so)8vCirN@vA&{f)5De?fxDNFhytG@5M1co{&w6UBUr{f>5uWLhA z>9aJ?d!*d2AsJmViT82$eCl}^NVs{#X<)I@rno!>7Bl!IS0`wEL zKhN_vlrUlIFi-&)Z>leyS4!y%cd9_7vR=G3QOXU%Ik44Czz$RaiSmSKEaLBnOYIA) zk>HX2#UtuHQFTjYLJ#|N8?s4?uW)+rq*g`s(G~W%J?!!ndOu9ZVhHzW7?toFn1$=~D=9eP<*lx8$(Ha?mMV8xnHmHFM*1Of@}x~) z80qH^cu{W=SX2fZRKEkmTy%z(zo;#{Y;l(3Ge9; z#W4pLkbp>DQ$%M*FkT`)E(KEDp(I^ln=91chohCr-zN!8#Xqt1yktme4*cEKl8Ird z!f%1=$tONlL+jmWCJSe&9g`IYUsa(uj)Ku7TcR>E#YcGMJIm6{_sH+=oiX-;_fwuV zZTK9nRULEsGN_e-?@(E%%ELLG%DuHdTp|6mBz_7&SIr85#4U9`22}>i7q^Sid!mp{ z1#D*Y+E2&5F24~~JI8*!JN$t9hn(e(J2AdCb(eo-T6sy*ms{WC@3H}_pz|NJFk-}3 zNqBdhVQ%VpKi7&^TdE$>QlDrCq_A(Y8#LJhT%R-@Fp9+X{aY2zJ{kH%jwZpv`VNbS zU>h%0ElORcNAf!2jd^2$-Zc3rusBl=+n}{T25g>3be^^UfWJQ&wcP$1>Dg{ z<~6+|W>o60+0d}~DeHmRvjAb=QiC(|a*sOAm=Y%!dh&qGsoNPo+~13bvEaph;wxRl z{hsRD?rJ2F1@o(_e`Sl0;PtFtR6mu`&A^iZUoPnUWIJ~n?$VSd3B|2m++HXlVp_hfcFX$eYNe0hmFu_gZ^%jC1n7@MRC9gGy3;X(7F*C8 z=N4e7>c;k)sg1(G>#_XKa^+jcxS{7HXYF9_{=7{x5ZX{6yxV@TSUZVsVeK)5Ktr6x zn<6@z(uP)1Ky(lQ$ETyOPR>%Q2*WDg`k%27I$z;n;q+HJ8jd)VUOWPq?xa(L4yM+w zHw3`(G;ApoGf>TtU-X_|AAz{+#4^TioSFb8z<1Q8t}eavfn-vSi>>vxHCvbjk{=;N zz(l8Au<+VX9hEU+lw*pR9?5GGzD1tp6$i3v%gpin&_`TK?hKV^=GYU0Ogn&>#h4JB z8qiKktS~^}F+YZ-M6>|hoSjFtddvg+%|iJnEoqR;Gn z{Pxt94`sJ8V>DeghGR8evjCu}{tU?1A|dqR_e&>h-eO`d^_j5YSngOQ9F z)l@|VM?!^tOa;{pzQy7b;j{WSG+cd|WyOkQWQz+JJY(z>{#;*7kjRMK)97SXLZXDl z%Y?nBpwyr|c-dE?9~6ikCq?gGXggKjcyk+1-t!>29fVhHZ?_@a4Pb0dwUYlSb}5Tq z*l}V8WCj$K{&GimcrGG*W8v=0H8wBKKj!kD1$g1Ps$ghV1l@@_*0Nm1GF{sN&1H_j zcA;%O*D+V(*h0yf%5%c}zP@41=Pj4o(7*5R{sokLM=nFv2k01GVIKTg$IY!Z5tw z3^K0BK2cs<6NoOQfK?2YK;zAY03>`7Qyft>CuYb8}PJ{{3m}DF>K9EvQ1w4IjQ&@Df zk{8GKyytHu!>WLQ&tS9pb+veG>xIMqwYi?IVKN3e1sH}8iBvC+0A7Y2-1te+BVJe5 zRog&;@+x@62r0)Do{3{+G@3pJD^0%;gW|}s8}+%*!7N0FEV#^WbCk#ZD^f!e{8DGh zq}I4)~mx)M~ndI++n~=c(n=c?AaDA78oghEf?wU znl*N{@y4TJ)SM7LEg~$~jGBp2ezcHSY-9%;+F(Qx44Ik(SP#4C@aABjDt;^kEDh?laF_Uo-JbtarA zh69u6GlrgxCKY1>bbjcA=@R=-svy^TSt*l;cg<0Omr{0Z8-X1c*7Gk8S+HFSm2w&J zejE@B+=pC8bti+$;S;ee%b3F33jZ~m#OtB;4;@(|jC@@wklsv-5Ct5aFyP)%wS61z zZACdB(kY2hX_#}0*kHyr#LUsAmQQKdmnCVNcxXJOwr`)-qxl;9s zx(tH(jG_<-`Fr;8AKsd+7;LrBbgh!v3_WDD-%f9yGa9d$>*SG6yO4&u+iupd$=_+A z84DbT3AL8UpbgfMPNU-adu(Jn(DAr^~&CL-9DH2&UkO~Oh2w1jT_=-Pm z>|qiN_I}$9PmvPt5vll~3c`82vWN$ct;|R*TrEic&^ac+szIS1re-N6e;K&#cEU(h zKS7vMEf@s{Yt^**}huz*5OpB(VUtXy{}(aM`6 zT5@qF!9`36pCSK}rvuxuZQ=g64I zmoiH64F^#>w%LOnG^rI}>^`f%sT{u-^C0$|(7}@ja85DaQ8{w%^uOf`HXw7F)XG9p zjd13O%g<@@x({2b`%l1x!Xi4BQAj>4o;9KnP4bFe9yCpW(q;wobv1b;1PFEln4GBi zUb+z?OP5l>{@@{sYx~Dbd{VC#2VpbOCTgrTeI#l`U&#s&l#_84>glHS`SYi4e;sPO2Q41zu(~XK!wGsa zCW{?iAUO)iq8;oop#onDY!X5M9%We$!$%~-*ZS3-RzfDlaWb0T>}^06QIuQcO_Lb> zXf?Igy#i?g3W0z@yvHt~MXDjiu%9M(NDU}dS9UKTni-FaZtB6#Ly#-fY&$_IIwZ6n z-58IfVhU(qkS6-oLB}f3=`e+6(a_`g9 zn*83J0kLiCZ?~&VTgI~HiI{pq060O~*vSa}MnGUG(8Vpj#nBCWVfSXrtL68X)QpFR z(UkMVXsc?)(GpNV02xU@w`kMiW=4q5jDI2hajU8<1>+SF&Q!aXC@*qz zb}a z8zs!PT9yA!bY^4X{%~Zu%wlOhgsa2$P=o9Q_X;E%P4SWzHD#T?;(bJMdVN?p!DQENWxh{zY8c!bOnOLlZ+jisOEvLAaR%iK8JFzgpzRGuN zV`RUBXp_(GDj;)QrpMnXriZxgbI?vwCGBU-M?p9(TTUns^mhS~etBr4eFq7QK zdu{TJHKnO|t+<)W2p0N-1#?7}3+U%D@+NuK;hU&^l5KCzGflbdl~C>UuysdJE`j$g za4WysBw_sTLYw+ZITTIGRXRdL(gTwqcqb-nnqI^INi^%}hz?cm$}C{05!kL?9(god z^69yst}wfHFwRhGP)l-IRy1#-7OC7`{ZWY_(W3tel=KQ}I9h>!NlEO{Zk8^E=$6Bh zVN=ff`jJW89Yio^jAl<1lf9XNGokX<@};1X=1%HAoT4bBHc1K0cYL3f9E?^SiWr;x z7snlP(eXFm>AXq&8L*&u&XfeN*+`>vCYdXWjI*AwbD-lBTSRiHN^XU6rXZ+=^OHLm zsh*fY*R4(k6{{r0l3Eq^yH2^OAU1Ofo=RG&^h)LxwI^QW6{?-e-RUvy@sBzsObMhh zT6=7S{q8B^JWTUoDrJA&2{6Gc5l!^>6a8@1sF^6llgdY&cb`wgR-vw6n=Dv+@bk#` zgr7^ugx=8%pPu{tu$fem>5!HCdbAG!TxB!%m{iWPI|SS?e=nvFfQGlHibA#_BeAoG zQ{@-;CyMY58W?cBq=-l&Pv#5j1v|n+@fHb=b3dp?cG&F_RnVmBX?o2>fb$A(3U{Tl z_AtP#GT_8kRjQe2;&!QMc8!_i06X*T^xs522(8VFU^Zk9h)pGs?y(#^dAGaQsXjxM z4O*@x#qvxO*Z$(YqG>|BBb93xD^F@8bgqaR0m_=oz71O6Z``YMl{(a;;h29>i59XQ zS=_YhFojaoRw*kty29|IqWr3Tm&*WZBdSgCpa6%~a9#}0!y;1Nwg8~LB*I$aRb9>U zb19p9DjK17KI(PLp1EJ|_ywwr!S{^fmdjYiwk6+Jd0Z5~A5JP zvpl}u)3MfuL+}gt70`wn1iqgX8iP3@Xg0{!>rBcw3M_^@0kgdQREiATbI|1I^zqwI z1{gSeboOd#-8hxF$PImJw4X{A@#t7L00sU#CIf0m8mN?L4D)w4Rscwfv7SGQ_}juZ z@xFben0Nw`<~OhB@(&qa8xCJ2Mj>93K?1GI8VDnl0F{hAj=B5#ebHM*oMw883i1VP;LyTh>R zgVLV{Iy&M#I=7mU#iNe#w>>pyI`*ojT~C(jR+&EH$p3cDEO?6}+rr+i5M(3h`2sdZ z;H*a=m+jH6UW>t;ECr@AA3^+PEaa>~U+MZTD$D$emMh4mIaCDUjGm&HOwMf*?x@{# z%DSH&M%HBLbLz96Eox>-R}@`iUyVFx91vV=5uUhqDt|NZQY$MO|21-wK4K>eTNc*U zUI~`xc9joTwo!+hAbz+u_v;rbPN^{&Pnp`F_Q7j&PD37xE;nosv5~DOeidn~9I$Rn zV0Qk|dbCuLUL4xbijH3S8^=a^xPx~tezEssD@JRKfUhnNH?r#b$jTOsn0~EMafUxR zN~`TtHsYjoLr?lk!t~IKfF^=oM>4y$&^eOg(f=TNjw}D)25B5gUDNX-VVi#m=t@(+ zSfw;C=zM5JUq?1cLU3>$e_%v4MO|dG^1GAcwJk+akt~`0@g2aFXF~uL&kcNRr;Tn4 zTM_y1n)n-&I58aY7(8Os71-&r`!;+|%n9N0W8vd{Cy}3ff?Om<6qcRE zE`Bs4+oMrm`2~3?qzYWTI^+ao>(OIOz(Ac!vK3|linYh{Y?AF@et;}e6%|I`5D6Kz z*&Y{`-qeKaZDv!P)Gp{a#fJRy%|4)}T)iofg5H8)jf?ir#rUD(a6T|u=)ktR^(!WO z2NEpd&nxtJjKcemK_Gs`o0f;gN0C`RU62>EuEE_Iy(f)<<^HV88fZuU>dY|tfjj7@ z9w1^Xe*uzGx!jKi{f*sbP9;rdCauZ`(a?E)b{~Dx=n3>`=zE%C*BTwg&aLDj#8Gn= zj++4XGUeJLr@JRCgfI@}4iOKQixx<|5Hpj|SjK7YoYcH)cd|PMeh`_?#?Bl;m~z;7 zC4_i17O15$jK%gzulVbj(IdOoHN>Absj*V>^T($e!Jk3hS+qxas;N6=g{Na&B^@&e z8P1q-HfZzJax_fwDg^TtYHbGnF?>DS3H;_&lApJVeHY}JGDiD~r6~Mr*f_0PwrG!! z=P^K~u<>ubd_{VcyDRM%j)*_S{+JpVjjgAb;t-I^QRJ>B;z-7LQShoT@pZnOt z;gXkql090Yx6z|M7Kfw84psaq8A1V)BrQ>udu!%JNf~1=E%s?c^LcmBM8g^coMLqO8 zD_V8#8Y3N@Jf{!2aa^uQNao#MifO+%EGytzM`)GYN-@lS?gUdJWFRxl_KivYl9kNl zO}@f2m(x6UIfnlsH!}`H(c4NdJ;(I5e=ZgdC>3|jdCgLc(xP}YN%%{nNeQudvpSlD zKm}Nmq4)*7y{qDEH`np5e4ntBU_YsBYlH-khuXFvlV%_j;v{?|p(>z0b}x;Tq;Ij$ zo5phxfrS`+=rEa-9osV_ZMv0%pOZ1+{BCr=cxXO82L0&)y)~QI^SCr$qBqiS70Y)@ z1@y8$<=~%4`YUA2K-F!jV8NnDEjw?+$G;qyY`U6XNNd5?!%{GJdU#WDxu2+8t7f07$AUKsvD#Bg zGk>RC#Lmex$o6UFz0zidgWO4-pmx&wQ;q3~U{mmPMxrCRR?x?5RI z=Dl*Y@>BF(4$2?=OQoF60+Hv7&2$DDr9XbKGab|lsiVq9ONeOmM<-)qh1h8wEc|`C zlGXP+xKZ^DUfYu|I(NVfhb$cDzFjXP0zEF$Ih{F%VCDw8+6upv>Cw5T=dnwm)2;kg z=W87X2nZrPKWkm94(ERpS4m;rOxC<;$y8H1i7ok+c8`6%`S-;9WFzSvahy}tm<6CI zznH#9Bp!|D5KDxd{7xTqsjSHXLj~g1jO@K;*L|Fm#P=PJyy6fIi+iD zRr}}&JFscnl0#s>CP!*8e{d0*vX@@qp3M*Cbp&6Uqo_XPa)ozYea=*is6fR^YpIp9 z%bgeK$FCN3-RCAceu^-I3`y3a;b={Tp;F)P%)XxQfR(=V)SV5Ta z&QKEWflo)&pB&7kG%s85Ex#N9eoOi@bDD60-^|H)*JB*y3WHBVq18q8GYnvbVgPnL_H!TkdiIaM7|<(FzEWMiR8CULc@Whn~sI-(Pv zZh-u%DqKiVpg?B>ttg;$jF)1qpqwH?Q^hRI?`4QWNB)GgL@{8|-ykYn=dnuT>6Dx;jEbH-zAtxk?G3plx@f37f6;{lhu3P; zD|jUUQ%G!nH>tnC4h@NG1P0NSN`Y#=k6bL{3YAgiyU+35n6R>?OZGQhdUVYK>@vQM zq^4)e#9W_V`Dj?HjW!gtfCLL{Lk!+tyWX)W4dIVUq9cP=f5PhL`Kq;%Xh|zDu2Vf# z2!0J<3U@tqY;^fhw3^V>vSJ2DE`=S-NiVz~4uzEiWvN zS_cA?_1`|?us=MG_gKBq8IJw9zQlcQUOW+FX49j$fFGza#MfP%&z&CC)G7OP`p4lp zCB<1?WIJS#k*kFA9BvBCQ2A-?Hv~wX5-+=%bKQOy3tRCd_5|#OA;1KzmjbSQdno1& z#bIqC>KT4Zs|z_CAW)_nr|tCEWrC;*!nYgSfi%_9sQB9xLkP;A`rApaFUI5DJV(o3 z4?yZPhKRk=VF;fuLeX~p#9@J1EZMcn(ruWsndOA(r+|&cI3)}q(iC-gw^(%}Nh)nD z(Eag=(w3}h5Sgg=%2s=auGWac*()!+idSA3@`F~#f0x1rM{Nv$T&6nvlhsFz{|Tp( zwa(bls(Fhe$Kqpo3M7+SK+O4kB6+yjs)uq|RQiv?2ZY_pL2jfYVKbs{K4DsmU@Bv9 zwhe=01<^}!+Wu=q^(FZ7M^sykK>kGe8p zuNZykUJL>;X@P9=iaeuU*Lu^Ei~qm3@F*Lp0A-QV5GLoRU-)9~v;$T%pA)Yw{Re-2 zFn#sH-bp-KxvcJLo7a{d59#*>It{GZ^ZZnmX%3jYsD+70jt7o!MQ8OEY9&;RINE3| zb@KT=G97wI7PP-U!wRD+jLWQZF)-oMBEu4DQN@_(eX_7G8PFM09o>6MC#hJIl#3CV z8|^F{FDEp5XWe^`ObY=!vK&{>4sFS$8?FsXQuz6whVUvz#$P_-{uxl-#t}h0>K8LH z#QgXt_|IhofR&Dsp+l*boDgS}8vusKtKYQFACnT<>6d~#q@GhLYyyHO)t{1iS z$z-C`1T*7Qn=l~TVACtEI3~6d__mpTxS<9jH1mhRV+mJFf{HZ}2aOtD91t<0rPf;T z!6;As%4NS(3bjVshG7DW zyYw>YFR+uN5lp{))2@7?wwPR!UzwZRm3qUUIndIV8*{%2Oah4rHEku;#46-S@*f5W zhg~1}r8hes6hW7t^KH-Si4@`WLRw)_RE_+vmf%00J~$#xqY1ZI#v%Qv*Qf@{^J|YWi zy@^CMco-*_2XeF!8=KIeGGaP52;q!7|&pjJkJDhRaVN}U^ zsehVdW63)K#cJi46Es7)%cRi!o=!y^6`y{K z>pyQ?<&Bf@O!fbe|m}pFpT6jK(IPgdTG5I4!`*Ooz*UEAnW9-JnLWM+Mk(e%}{^UuSb2BZJMHOxCeWEm0TIP2NFXHN(>Kfl* z1N&%lmHsKDjs^K)@_iMI)in#A%?y5S9|^`rvY@%8w^<`M-5QFs6Yphjz1HPnp6`PK zw@b9u)qi`v2)Xp@SGUIR1;@n4vItGklLl+k>Z(QkiBIAAreE{0ny;nWm*t(~G)5(m zRkB3FBV@*d70HJ28t7$1pYq6RimM;r6SXBR28`i4dHc&B%k;C7mDA|Hi?%Ad-q2#% zyLdJHVWugWD#yRs)enW8f=&_s;z}9SQ1@mLWJ{OM)`qic6JeJ-wj+FzqTVP)n_1%0 zL-J9y|Mb37I)uOm+sGiUI*ysCR>M0JU@8*?-ISil7H37*z4Vu9p1)wSrVvD>GT3#- z49K4(bKN=tYn-JAZjI4ki^@L80A05<_NUv0CNOE}d`w1iE?_Dxpp&Qx_N$(FeGdc!StN&;uKh2w!>k zZs9Wznk&e1p6gL#Lu!s~JIOtLVDWnTXyG(dtKOoAD5@>8Cs~_k_R|4Ig7xT|Cu{2g zrxuD`u`&94GYdsPyBO#aoheMo8`5a-ouGnu-M@7Z?}s-(`}<~i!zR9FpyiVxCwOQH zjAycIXRhQA=@|j_+(BmWQR^AHFs8~IL@?U@768e#`b{$ zP(eYtXi}0;kJ}nb+n5a-eGOr1XEEw+)Z08ObF;Y+YI#dn$)j0(MK+x=S8_9^36kWw zw;Ks3xtiAF6wyWlw64tXddNePh2J;dK*3OaQda1h>7^38M5>LwK$nAdicn?1Zq3!B zlz`#;=(!tJ0q#y*H!#nBl}F>eEcVk|4viq^CVizhhi~L^;B^Zr81&OO$?3?nef{~m zDm>F~{>`bvP?{@>H6}sEXB=>5Fbt`oKVh5|);=|2K^qmQW9{4|df0IN2x7aq=xf2` zp9hJ8ARAeNlIVzTV}>~tAhUhM#Wuz{aO@&gORGP2ga;`Aj%;I=G(!JMK>c2Q{vRlV zQ!=DgtVc9S&T2+L6tOHkr5*WFO47SJzZ#GKX6MX1$lgm zwbNW7%)Tdbv^oZ%)tT2Xcgw}!x3UE(+xJYshQzBlWamvw_jIhcdRU@yOU65Fo_n~` zAv+7_mwhN8q0ZX8SVe7UQI1cb z$f@DY(HBe8Do-WaP}J4>$d&$Z@RP2H(7rSog768kX<+oiRXn8QdqxY3f$jd2s{eq6 zzr;TeMz)R0(fcP#0br83^f+&|)$;r$s7VUVm=R?w49Q4mA`D*TwMKMp?%^rA&Yp5r zV!6y6O`m7V0<{Hka#&oA#0=bfkXfoXEkEBxU_4uD)>phOLIN5-z}AqBe{aI)D#W(0 zlfV8w#{aZGai$76$IMuJR_Y@Jvk6|Q{UXn`&1*O{j z)eCjAL4Tp{!usm*#walsQQx) zpIkm3NVnDQ1(@K&SDSkC0|ltq-iAI+o%icMzkAsxK!jRk1-x{5<5DRfcd~jP@-nHv z*H#0n+Mjcm<~~f252r`_&H5{jhv{J#TZy5hBHHw8bX6-CQjs4q81Yl%g{;)wYjvPpGy3u|0y<`g>5HssG@!b%tJ zO&i2qj7{gB?&9b`FUMkuX7W_?D75KvpCes2Hok|pF2$85Q7{hK&GdkvrxOfuRV2p+oc`m?XP?HM*?LCz|F(9Yw(1Os5goHUn67VCB0| zm(Xwyzj$Kf+ss*RQ?vZxwS0FY4X9p=G28(IY^cQ`4&w_v)v)HCu`;e!Q2%)cf^0XeeoM z)Ih?win~%K^a3$R9k}~LdljLHI6GXjtM7eB_Ka^M3()JE5}Khk@@{+0@{#!hGO{-~Wls3A zXwQ>eqTIjy_Vnh0x6I!$U;M=U*c_hrn~{3jQ!4IBN+#Ff7q~&D)DP{#+u3+D`RI5S=%9B_1~W@ne|GD7jNjYCsZ_EShU)-#yH_g z7C!Vp&}1D}I{kJldF`ABKSQ0Kc*f3`s}S zulpwXm3FEeCivDra>@$AC#fpV#!dY9sc8$#{jK5pU(rw23Y#jM|3Q1mjcj(`<&qep zlu$y<1&sLN7V^}91oii!YGd=$WLCG7u1Iu1Pu5gLfI2?6PEDD|+71chbjk1O;SU=M3r?1T6|sJYeYUdnuw&)vX~51I-E%7e4bo{6S&ZEC ze#j4^ScY5IQPn0}Ya1R3M*=axo)l4*KsE)&jO~lc@`?O^!PkR-_!mhuW4b;)72Bg{ z`YW?-7*t4X;{i1ndJv5WVkrFUU)fgW@sZ;li_jdv(U|%!wV9fmQelzDSZur^_pfj7 z;J(-^TYX-QJL+*t1$|#0zTwGi%l@l>ESLM68%3s!v{gO`L1l=8V^`PwN4NR>$f2Bn zs^quf3L5&^^s5%Sg&QWj;;;1_deoFs~uIHcWKU0$}z@%I2oMx{C@3NPlpb()B;xwZe;B()yc`9 z(CT@!vNa1O<;H~@)EQHq*9(iE2h)8zi^K)R;PpAzuGJg~tY0h6CqYlBrO!R;^ty<^ zVZ#+G$aCYjEp3rX0m3hs{V^gQP%J?303+)$N0<FVh47plJ7H~!rJ{16(^+q20 zL-v`_SKIsH=WS8jO7@hg@8B!mXri>yh6P5E{ApRYKUMGr@egu4ltEtkkJA!%{{&=2 zFWoq+>J`YVZA+;0)PamMX4qvgH9U(5QSUuPA{X=6bh-bD3nMc#NSd91lV>={TexEp=&#M{4I}}3_|3FYX(3Sr~DmP%rbE|VF8WWm9!-fRx-bk3M zYy}QSM5?@@kdI&1xqt38ScdEo#R}>%-{P#^tR$k|sIF(A>qs9Mw7vfazK}<^|Ln=H zVWb92(w1tT-$o&)-;5ds$?H@I8AMhko==xKm9b6y>tKpV2cJ{kw`1n%Xd#uf1&U_L z9IiDgGPV(B!eOCe_2oqX2sIWmXGvj#i?jIcpH$BUucb^Feq^wOB!%7T+cm;R*#_^k zI>3#RGt}qkEp&%mzlo&mH}LNsif_=GARuB#SEPzyke%)Gs{41^mp{BR!Jxl}*y0^z zCO*YcUZaxmE65J^@7lQUuG4CDYZ+|gU6m>`7n{ zOl>R>fxwia*Y`SHV)~Fy0vM7;VbolcFa{akR$Y9%T6v2@8x_jkgc9{uYK%5(1Z@Mt z^qRopv*n$_^6EoVP8n2Ku}Ot+O67ur%LV=Cf}Z-x(J+%S1{E*ZEoz6AufPk`v6au= z9CbB18OT&G5_&p18DaHxy6N5GeJg)MbPnAD@d*fBW6g0;m}~9o0RFm;4Bf~uf+t>S zG)?a4r!sTJ5kGc%w_ZC}UHZ|9BEwJf@Yzsx`FOo>u~e#x;j8fporGappjYn86_e2R z$ENu@JelRI@`B=&AS%BFB|M_;1OX2Cl@jk#CWR3a??^ka%N#6?=I4+GV57DrE0c@i zc61;v!`HRRj~scJG)HXEpyeAO5%$6juI}yWA~T20PsFU~V-xw)3DH0-3a3#Iv}P!V z1KDp4O{FF$Z{pBo*gGfsNwEqQ9Z*Z2uw$GVXyV?}WF#GO1dwq@v@lbI7J)6x8qPIz zO3;{()ioW!bdP}oPg2daIQT}xzz7_V)nimaP$1~Q>=nd-IHXLMEM(u}xRg*AsPd!| zk0O!hkke`(#O_j#{hwbFCzv6I=>Q`YIdEDUmTS;42^K9hZ@PB$T|nJ^3TJlA1X-#@w@Z!p5xqP;LX`QxIn1K5=OfDNz!D8hU>-i(u zG(W8ZHyTOGN;6~*T5MaQ;A@##4gbM%e*r0Y>yyCT8L^2ygJ?$_QPy zj_XIsZP+wsQ1W{0-^EEXyRxnU3B%50ufq=fip$`os7ExLzLNsY^e-N90AQSWEFt6- zuE3kj&#*Oy{>`1#B@k2D!pLh927{3Z9l_r!j;%~4F&>z(BS-$ZU%THf%eCn}GxE~l zP)e5yx#@GmMLg4vJHWZ$5($a5|D6fZC!pUIcGNSv?gf6}y-`IhE&!t8fa9+1{DZi_@Jy#R=Ml}ZR~|x9IUgX! z7H(0-ocl)#6~{zoyW+HPGKXh3~pX7;Cu5fvv3r)z<5IxO#RAa9}el1FD-6o-abXAhh@_k`qHKK|8h z`nDipYvQ7k4z{%IqYlk8=a})^l@8-H1yeh{F%Mp8%7iyxW5)5ML@mKmtQF;UwV)P< z&%%m4y_O=<${C*0WRlW@4P*-A2q!(|nlCYlfjxfGDm4p!hx4Xhu`gK8&~Q84e-szR zd`a;X#8poQ!gpVz!CDd_mR+U)mlBrvhaGKD@}z(ZW#=1G4!la1g6lU?g^>UDNTqx4 z&#<8LO_Ea_!EVU)%ipvf)!v?V>9xEBPve!6JGd5r6jSu$@%NtS)fenWARmnu3zPu1 zhC@*>oJboyvxtxWtN2}6cpI|-|LD2POu$fN9mj>3Pq>F$Gt-*csj04@s8vz+Pb154 zY>BGwpBtrr3c4*txiyBRdH^M`8D@&1z=e)40gh9MJsQ(%3QK$%+9N_k+4%du#+5;7 z@6~I(g=f1@T{X}rif=EWuWuU1xBWg>*2rl3JAft3m)hLRkf#L4cM?Wo0Kw0P>s2l@ z>O|?sd*i#=;{@HWS8cml8%T`TB*@%6?hf48YzkU8JdnH6b_rN(jm$_y&3!WaxZr> z@~knXiN1gDh!0B42qYR*S^bLRq^;%7)skVZvaq!wogM0M=K9qZ-{re_zG}@WmA|CJ zWykXw%%-Av(2K@n50J9FGqSXFJa{6O$U30NPL*8slxVrdDvB=A*w1f`zJV*7qx%@& zCWSRuvf29g_h4rG!A1ew5KeRaDtoVHwH%XUQOyVGuewJUjLo)16cz9HYszHriMTeccITB|}8nrO@&RiKyBYvC@ z|FpnTXtZAv_R@el;oIFdZ=s1(l|tcA2H2lZzf76{$6bl*e)+Rt4qa*ZxLyQxuySW+w0ABVRU;{QbQA zAXv_$KJTVdj?0UGiBXNGC|O@-@3jr3;r~i6)Q}wt{pP$xnst0{F;|aiHOd>Cdm@}@ zNkcD`=}#AtdOqD~3J(#pG+TrgzhnD<09Zh$zv1}gZ{Zbz%CnixKuSKv5&H@fXkeh(dhl(}ci1DP( z#w&+tbo7e}45p-XQ5-tYA2aPFKVvzu8|R`k^m7j@fBq=tqpHaBN5ZW5rZr-%y7;fm z_C-X62SR7q!K4sXvA8c+LpG_nPLy9R^(uq+%I7_$ojlT4lexot+DW8JOrh_aJ%3o0 z+_hPjj91()qI~}Fev&c^ePWNkvNN8Q&mRKbQ)QnFMHP0K@9ZWRY9h*jj1A`MMDUbi zJRk}U=g4j)0MT475N9Wrt4jrov^8Sx`?)AGkVO^JUIq>VyD5_Kpc62+dXPi*p(w?9 z@Wyc`&-+BOYR?}KG2Tg&0HK%69-xL(n#EWrQ;~U9JRbzzp)T3jJej%+n2L#CLzyR2 z7qSFF1zb)LB^f=-6u3k9MpNV_g?!iKgRC zVPq~PSar6Xi;l}0`BYIn>pB(X({MaMf;;78JbaZ{WP2%>A*FX!o6(<_qGd51WN?^T z+fl|*!;HG5Q+=3|DWbxi<0_}2#7awEp-uOPAzS6b4jgNG$H7UpaIP8iHK$oZ5x71# zEn#SJYy2@?YQze>jNx9>XAZEsZ&=I>WF4Y)Gn{IF~S#s*W@{#EFK=t4k=d zlN%%%Qq0lSpyvzMXMg!4-62QHJ3hBofFR$jv{>H?6qFuOXOhtf1RVj(wk^bcJYr@f-4zc<)NCbKd@ zxvtXCA`{Wuc{oS#GHy8rQDN8jkg((P2NkvF-H~m^mDij^iIcV_hIYNjEL<7Lzv3&8 zp;U=WB;!9~?ixBL&B|8r%srf?K%c4{qTs{7^B`}br=2=g6l5pS!JWaj zN)wK+f+>Ae;K=l&*7AyS-n=F)VNwKX1FnF(KjMvJ8xZ0enHtKTj(3KVQ#Z*#wrRbj z(OlNg9%^Q~b)v$SKrHF4_NJ8TrEW>O=UtoZdPUyg`9lPw?TWGs;{iEYp$P!L= zjo`&eGpv2bMK_d~P{l38(QNW!n9N*UZ?mSMA4;p1>7yD%_;!x_dNtLXV8P?M#T((a z=_|?jJ%hlq2L}P4cV+MNS{9s5EV@%f^}NT$oGgx`gQ>(g|GX5FP;NvUQh2s(@mAw?x9oej>G?dvh+u7?;yP>JH#{Wb)Tx2RP znQf+4t#-4huUOhgiAPw_OX>uBlv4wQzM&oGrH7d$1<%+;}Xugw5miAEI|HS)&m!ndI$RM4QV09 zPi)(aQXfHW6^3>VM<>UAukFfw=?1a|t4is&QSv!BRvQ>1IbD>z&P=%rcs1RjNqxBV zr66S33nRsN2=*mS?<7@|M!S3|deJtMYAzSYlRbZ|74HN)TM-R&zPiqkUkXPUa?*5s z${nnrAM)kPv4zVG!lv)nGSr6+k~s{W`p}(H6<()g^Zg*sQ_xN%wPOeHc1Bu5xnr%aB^IK-w}r??u!&&lJ~m zm>Fgx$W4x^#{{s)PM(i1TgAEr;5gw>OUxu%=Z=(YF#LJf+G(6MwNWo~L6WhJUWxPQ zBk>xzu?~@)JRhu*o{tVsB1{!G-``7F%zh2MRs#m(G7d}{#|(M!ntI&okR^k+AW^YQVWH-T(N*JegQ7fB$FdN_*5Rc|(!PzeCLDLAw!@t$u0v@S2Ugbkpu$6^ zEbc20{Gu{(@Us}26oLy*cmcnJVcJq$N;`8LlzvH#tHw>_YNTr1#mSMV8x0I*bEMcVcRx9x9V+s#np}a;NAsiwcJ}paiQFLs4aP4AG-dHLNx!X&5Sw z-txorS1P# ze8hGGu&(T;*JUoT{j*z|%kyFNR1GDSFlh-yPFgWO?`+pz>U~9Ot@_xTUfwC!q3p_O zk~VjrNa+GCMUlmIcZZ^ftkcPk19+*&B+#qtx@qw0jeQN|FFb4tLKRKdePe&mX&6q9 zx27|HrH0-W(B4rAx%Igo972(}de%G|Hq?BJ6#TjAccACPHpO=7NJ|_89oGZ-S24Wp zWqJ=@XPD+AmzXiGMv3nsHH(I0MMwd|iWm|Ia%dnWAZ>FfD7Z^1p`alQ+$sj^k_oj_ zHv(t90bYfDO_7?Ti+{t_hat;`)Nn}^f@8ARf)oQ%i<9vRoJYZ3y=kqM3|SRyU{$l- z04a)__sZwpu6d3%t%mUc^U@2V_P;cMzaL+pLjXl_<3J<^jiRExPIb+IGMHR zm%Re>Jn_)~j7}yCvu&BjEeEn63%)i5yUQ#AdZR6NrEG{D>4t_TvoErzlULhQAoqsL z*o3^3S*aN}mPTnD_r#)x=PFm@KZlbh`Yi$I=fLHMBQ^A{fRat0NFe{>I0WAdwZZt+ z6NE)2Um8XyuyG5!EuC!T`QvgR#x|w*!XAc7@;$qGkW5BN?bdY@9T&4L))mh0j!OQgbfWh6 zyXp5rc9M5|5oI!d4QI<_mr<$FvNHt9jheadCpu9prWjU3eJc%^qkEM@>QOuBXtKFA zcX%gvndoS?xkvBh@s@%7PCE@ll2n`p(Z=s?wh|{vlW=?$mkQ3TTK!HQ_8(II4e4z- z8&-uV=8XW+I{SB!SHIgM_8ba`E&twBe!~{vtw=T2aP|XW1HA5x zA?>XQ2>9>Q(Wa6uuecAt(@190&Jd)|E?B`cU%fL_#Pm*D-7jD5M5FXh3S2l(5Xq{F=A8LcOs-9|*=icEi+4`L`4^>&JpMZztVE`%h%zCxZR; zs*qOjMEijR^2b{Gf#Ot4lX1;rJV1b~q2W9qGDHEX3*?)A2Q2AXiv){Owh%nA`5^GG zfglly6Ge!l7j<@`lgU0~z|Fsdg5713ahBXHT=2xBVmz`Slh4g{j~2tE_62hAt-RTH zw1!t2s1>*v^s@rTZF^(e><&rBPjmts{xRKbVYXtrV}yz07#d26G%z>qlrJA*~|G~QN&86ZpFE2G4 z*>5er8qb686W!8UjGH`I7MthFX!tX_2!K_KY^SP-9x7nLn(|H=-VakvFUF?GKTfsW=DPQtdb87gYY zU0t`c>=kU{JBqRA$^R+kogi=L_*20N!5g_;-daJrq!gryO>S$9f&5;^w3VCv4t0Zr zOMoAiIDOwtf|~psegje98#ix+z7r?Ge)7E4p%5CybZeL6aR;&u{4*MQ?dX=~+bN93 zJA%X`%ugc$`KNes7q@V!;5z!7`T!w)eNXaRmVXN;O?DKap9%Jc5K+PA_NwhrAMGmY zPc;Y%TpQi%4z#2GCUWuT9YtDa$l~Hkovey-$y8Utb&H2?S9WcjT=RU33G*sg4K{wy zATVV16LS?uno<+DKaaUQqv%)VNXzWknC8^gke`V0;@iAn!x+*M#sjqL+kcnW!F$JH zbR5x0p$P@@M^-$eD3bSY?#szLN*d0wz3aCjm{-&Fyg;TSCu(+`F0HFpbk9dAFRJO0 zNkJjH&Xo94WY6X@OQ^=@sPIU~U=U@-5-lbI%o804s3>CYH|$Jo9`4RfP+(* zRN052s5}Y)yW02SM75>kcPuhllVCyKqRsl}T_^eFQf$z(wd#Y0{Un2c)DXxYS&5lt z8Lu8bfGIX6hOiv+VH@&}0LO_YrAhb1*J9yzAphohG|}*6doDj3Kc)IG8t1r08SJ`Y z*Xac05Fz!`-kNm2Hg<+Q)c#9gIY3KYt5o9_B@TQv;7@l+YNh6Rtm!n)u^YTsy&%Vi ztc>r{<9^T5pl=|+7$D<1b4AcN$NvQTniz0Fj#~s#A$th>d@vskiT@aN$w5WInu20{ z%^=D@j*&ua#&1~2oK9=kQL{x(;N166CtF^U9t*>Vlwj9^ENq=*1j0BLf1Jt6WC_m)DFZVN+A zK1Zf+hcbi$c^I3Mk)|O+itOoFe=D<;r$It|TVf_ml^<-NrR?gLL6YOJwD2b0l_laj z^}5E{=uoO z_yVM%GS`REpql6SeM&t_bULP8!Z0aM?Q-Ek5rkDNGSk;!NL@q!Iy~(8pdzXfYc|9% z!3m={0tC6nrG}qFzi6j2)Eg3CL>NyBAasi9WLU`x}wV}lN)^si~S&g03iLwS9Q<70N% z^Bt*S(&|f--(-=`F)b{Xb?QYA81`DPe%p)9zRC09$inLuWHEu_EB#RXZHUDMu3y<+ zDZ#^q&7#ly+GyFEACbQ z)MfU^q$x<(luX|@&6D&w84Jg)e|Wt~GD5}pCK!Ednd9DY&HqRR`n;=@t96}9H2on3 zX)M?__v^d2S(Y#q;!^3~8&S&_bb59+L_?@H>FAQradLK-(O6VeF(gCYac8)kui9Xr zv2N9w#74uGsPuLNSp&}?+fd)6pZ!r!-y*l#4+%zqe1||@tso6;SwA8c8UdszL~^Gx zkYaSK{KHXiNJnt?U79}<N2Vfc z7*?F))eJ?|A|1bDcoiqJlAjdZPE$Xua8brL*_AbDoyBnz&qLogFVbFx*I5scQ`1cE z1m~pc<$MLD!P%{dd`?c>FNKJRe@AyrxML%@sdxZ&mtQo?^(z2U|xhp z8p0&hn3ZA@h;)qs#FK9t);63srQ-mpXEJKuHyC;m*2DK!U5BDZ$Xo;huqGU-`)OEh z=;!i#TD#>APMUcAs}AteyX0h5lvC#Usj-pl8`7tA9Ogfph)y8?vEmEK@DhzRG*x3* ztCM#{@u^h;*5=+s_H?lOIi3tzxWykxo7G7xN}R>ezK1U%9u+fl2Xm=F;&-qvZ5jkf zgPSBZPWAjUW5AdXq-{6_X?6%FO`?g-irmhV57Pc39_o~GznGJwZn4I%DvuMexyI*a zsv;X&mHHzgw|;tOxI~lUs>NZ5%{Z#bROE6!KVm{zbFP86B#M08NLLyN(`4GOfCsNv)QZ!)>juvPoYZrKY#vrvE&t!PswP_5X`RZ#LvyO3kE6 zbMW)N1x`a+@xt3Vx>Sqxx$aGtaKJP`mi(iBxK*Zj{?O3w9v1mA^uiWo4UaTT5Whxh z5CtJE;DPuZ*xwttKB#+$Dm^NKcvxR>H*;u2wk{@6a+Mb>h-|rjQ zJOakxrzAv3K?4uTC~gPjo1s|h>uFb;f<}@AvlR(ttS;mF|68QMX4h@HZ}2SfNqA;z zNJzKCbq}1j13yHG^9W6bF_dV+$g}mG1>Xbd-{#V6B<_YU(7irOU*>a!;!w}MMVfqb z*{0ir_^A2XK0MwUYti?? zYc0bWNkcZdTpBW8eN42i%_1?LL&}2xJjc{P`0d?YW?qU&(R>QLrG%npVXz?ax`-B? z$ElUlNmw~SamsE{{H8$hj9$Mt^*V=5i8G5^eaTKJEfuaG-%E5h4FCKUt4d3sK!aKY zOUc|h%&BXM;kNj@RK0~13Tepvq_Vf9zCn@PSEjSpwByRm{6K7ye`ktjSW7%}9m-c^ z%s)A~vv?X!(=D(`9*pBS8<}$`?Ngb>Sx$2?zB|H4Lh9g2XUJ$d)y(!P*dSE1>Wnwy zoj6ho^SJdXq*Ut^*mZh&BfEikrVzL0zW%5V&f>i2U_qndC`eX6r3P|d7qtteXX!0D z-m{$2qKT&I>0`CT;eAkD6nT+QA`~g_92kBVDGWFVVQtz^ien0)*jUwVX~hn-I~89b zN^g0!w=}K=JRJpgY4$3TK$09H@L*PtyWw6G^{&de1{JMeDdL0%uV{Z3FQwPVwwQ%s zCBB4;VHxZ+#~+uK!zYiN!6D|{VJqy}#|`|;H2 z?JF;?Wzj5SEiZx5P0`{vHJ{lytPx3Y&sSg5HpH1E8oik12nZIihkk2{o1~{fQH?J| zIBS5!2GTo8hS4%xS`PIyhy#q6&0pr`$t&?f<>GQ*Ad$i3oq+~L)1E&epV8lnzW6jdxN*z^-1&yOI z%Rtpq_gZIg64CyJRlx=G9aSI&QcdT5!oWtZ(w-nH5 z5w}UK+fuyV$z1Fof~%K1n~<4%or^8CQ7n@wae)ZE^)?An@i2(MhJ?)LXp${$-=A3_ zH6lMhjI(_HRe2+BJBqBb3mTQCU}*o&wGLh`duZcr%b5qCOs4O%9u)=i3YNh9+|(dQ zYMqv%!ugczSg(6xU)fJuu(Gz+W%5xerhYe}L`cogzmRhKi3+);JI<@{V(rS@E`=JY zhLsubQa*bI<2H%GW!L!qByNd|g}#zrKs&tB^j33N1DR_^3q@uuN_+7r1v5Np$Y?_+ zdy9G5xV0zuB(D#tYmP@j;^%29@7yapBOV2wxcM1yUX0$+V6uiCZfO?ZB`(r#e~^I( zlSy(>%zw+B6&gB;w=Gso=sV2R1JiNJ8qreLEEdFuV3q1Ny*z8Xtx?;h4rFm6R>-OT zgQn+b7+y)Q;IKo`J!2>vBZhYb9$=Zlg0tu0lZVBJwC>EHlb2@(kdJ1a15rfDqmG2hh4Ci=&iy8(bis?SUedx`*4B)~Q)@1;+;0m_lqe{!^0tFoha%<-g=mOu+36 za~())o=!g5q`kn-V(BH0`EErgKE=>11AFbI)b9|*t4${sv1YM2znzRF zun{XP^UZ?Tutv6HRG_!O1MKtHklA!@O}*tt3F#`nK806MhEA-6z1LxIFC-(qR>n1~ zP9Z*m*9bfuvW6VR2}$xT*NEFB2ERUPdS{kpmtHy*A}c=svN*>*yf!J=V+>DJ;Evch z42EPmPCr8pj2sNIO}c^Tlnk0hVgAx(%-u?pO9N)Ioz*^;n&rm+6eKiUgi>0aq1a#q z#}=cFOD}jg88a~+8)YXp4Z&x2(ChM&$mkt}y(8Wz?hIv@dVB*kkKoks`C)=>Qqc90 zXLe1dsfjddXXvtys!MXyTX2v*Pe>c}VKHPirf-wKPp@F$!9=!6QSYRc;6c94P0*t0BHO=`udzL!wDR~WwF9~{RPEb6rv!Lw@~ zGuL(WkhwMB`rx`$za+|1W+@b#qYKAfHM*sm{jmDb9Tyy3ikV&a`5X`Qo!x=j0t2q^ zMVneLAFb;D-vwE89$_~_L}o*}9$?(2JHj^Az?KsV+2%3M+{CA}AA_rOz)O5ji%+(0 zhT|N5gk%wKUjeZ@H@Ujh{kaSUv0GTzm}v!&EbOIZ0kNuA{4%Umii zJ{q*9p2gsk0WLH(S*`$v@)9Bp``(WnCnlp9!bMlT9VrYO{fFXtEoD4#tXIR)oip6J zihw3Ra@WtlUU44&fsesC`tL<4Iqe&66k7u>eAWuPJo)OXs~>2&XW&Q6W4DR$=C;bG zuDXceFvDlnH%0F*WNCaKxcmEJ_6fgNC0-O?dvL4-{@}LQUENFBj??CLTs0hDjD8>s zcD_wEwC!%z#A{wIK4}(wph9iB)?ps% zl(7zE;Vi|n)I4ReHZR`zHYeROOf-12L`n>s+3i?=>XFfnu=`E_Ptdv ze*8kJ1I3q>3*iXg`7=YEoi@XRlC|FpkjM=Le?O znTIO=LaZhOlDJcUlBg0&{9ZHnV)U$wkVK)2K92BE)pz6VyS#Wlb$Tv#Ua{4`-E0A3 zu9mkouNEG!b$S+fdrA$v6_y$Qf*<^ak=ToIE*0Jp8&f)xx?qIc<*cfYHL@a=h9=o$ zN;%*~{QVq@RDR)pa`qs2KH{6%I++Cz=$A@gXck^IfeB7q0<8f-C# ziabv8j_20?TM5N5TU9J*d;#}VP+<$tPc<^$BN!i#ua zl%Ltn!mA;a7of&^Za_ijb*QmoylPp_Z}E(8{+uiV8_FBWWM&`JDI`CY&`m>$<|Vs5 zHC5(_96oXPp@XR8y0gLNr@)Jwyrd84!G#Ie) z&kL{Niw0Ox!{X6k7 zo>?htveUwGPBJ&o%lZVkKv`(II*eV`Pa^L+|2k zW+!IvmY*M1&GsJ5b?{Pi@Eiyo&DT=$^o3g;$btu-LebUdv3eMOPV{D2-f>R!(xB9< znswgyU-CyCD5;mdjL5*K&psv31j#( zqLAeTs9I!gx178SonE@($=rD^hprY>fPTL!NXp^@lZ1V#t-MkDf%^GNa5as~*B{m4 z6o`!yVkfrdEmetGih7&u9P4k(qRkr*`4lO6R;-ce_?tc-fAln;=>!G88M5g`I$67VSb2 zO)}cjv-G^H6tty0G$_cxe2$9{+K?qa#TZhb+VxvGeyGxYOwI zHN;$=NwPeO5lLr1>x14+Th4Ew&e(7cSD|ULLbv%o+|%o$8E=HT?isF9)*x;uxa9Yp z-$mvvERgz`H27`|B5}(9{nTE-i_E)wv|g~G_Bn;(M<(35BN2F_VUZHEP(nF2eEx#) z9yFv~g8==y$|z=$z17j&CAl-?`#gO=It(t4-)V11G)<3=!~(OM9V$O! zj_*zA0RBR=T^r6!EQ=Z}Z$V2m$zuIoSnD5Oan`C%Qob2)5*&Y-ufxg03q^e}92WzB z^Jv}Prgre|a-TxIjCu6h${R@^^Df1wt+N#pl0s&ZP|XXHD~2_+=GDU0Om{(1cf1Ra z){6vV_`@(}XB&R3D2WD!DIRpR2prfX(m0u*T|zc0vQ}X6e=K^PyDBBGz4-iSnz_?e z;Wd295Ik4TV;fPlLW1R}4I!IwD8|LhU!K+cI#Yo5%{Z)~_)#%&UBD=*+SC(i>+uk#HyOQrL{x>+x!R-RphPqa9o zkGNcF4i>XC5Nori2)X1-DA8PNMvKf1gbNf}r6KcP=2DR?h*k1rdYU<|BLW)hBYh)b zHD0wubKNAK_;{KVlbWVAd5yO7E4jONUy5-!1KYG+a9R!v&C~Sg8ITv?)ntw6lhL*t zJT<)iO-i|WF41b+u-tsKeI{_P*l>!WjSB0%e9{GiY*IL7g@(vi4K;!FE1|6$=} zgU`S0317W91FD9cHYrHWyog)u^FvnuWj^yZvEFG%T{n0+<$a6nnbMwjNHN32b$aL1 zPu{s)bOv=u_rjgpM2KPK5OGiaLZZ{jaE?F1xdwTO1M&#SXgQ915H~qOU4=1YC!s`B zVMB=xw5xTKf2`>Toc&-fn=HCPusFvCiu!1LFAXOW?%IjNRZ-x8XfL7FcCG6xE(O_| z-sa0~cCElVHatq6Cb;e7&FDj~)gO|ZGmYHz5LudRpIC`G5%+@aw*d+buG!4PqfOH# z7Zu#LP3oiJF&Q}k@d(;bBBguPpEIB1bGXO!VmwGssR?V~rqZZ;mVUAfDxKM^6ocv> z#QVB#<>G@$=K*>7{NScR!Fn|z*h6ZY#^(5U3+J}*3=YrIC*GC`P(%D*5O`>oAY!SH z`3g>rmpr7V_quMQBu znCV*c9FZdxg_W4qo4d0ZywoSx+JsVPZwWjUd?)9_a1ZHI#ID&Vx8T4gDG)1UlUK`# zJY`5ruY11b36jEXkv?+tDZ2ni78-2{j3SbB%c;&{sPNBrW2okFk#3S9^#LJaOwAKA zSFqb=J(Mh&7L`uiN-R#naP}x2l7T#SYUs+K>_NTxI|LqJ?Oi^qyp!Cl{!6fdJUeJf zZFJqRZxWMXd?j&Ca8uBy)a>=F3kTSoymYfp`B7j4Ru+Ct4bCK6TF9#9S%#>PxQAV- z%%MoY*L&_@rJ>G-P;J1&*+H2mx=lX?;@pZ$1IeR=yJ@my*bvSUh7-sRRAJY-z^wPG z?lF&D3;ihQr@k?yRnCHs{nI)9b zRFQU!26uN^5A;HA(JqPDExv8^x~;ZuTU2qRY}mEePD7RktnT-6%x=-OO`vzcBO}m> z)mAKqx^K{oTT31qJSQ5bwU{Fuy)+-H*G<8TYacPygqD+d2b&r`KLnw%8MP0o!#Zk%wd zdlg?w)46D~{*p?bn#?J|>~tb%A$=;rHHl%AuGd))RJ>a>Ec!m`qo#W1HFSI*y4mkw zxY9Tts2{q8b3D-Ox^4eGohKN2Iep@3=Gn|pJA(Upw(h!e{mkOFYOOy9Ll>&bnrpe1*#1?L9UXIhdZPM_J*iRbV()4ZG z+AM4&hDeCtNO_~QyN80SO2AbJlNNm)^y5Uqf{<YBe|{4d6B}b7xBTmfnlrnY{g)%M^-vIY#g12c;f@ z31%s$nk6#fjh!t>8hA&%rA=_Pw#Rlai>7?rOd&A+4#ZFDwg=VylTuN>0xwO5Ac=Tr zRm{>AAIDdew~1M)o0o#~Uv>?;uS3x+Vb>OEn)VIXEb7y)4Lc2biyWE9__EF378)7Q zL(GZr|Gcw)hZKg|SB(>5YblS}XVd=U>UBm2Q$x8YNjITul^kO zO=}A`*eWO#>wV1xic^U;u8Uu14Qpj@He6S?Esap6?+ia@;Wv`i@tV9d@GnYnUImP@dO+oqRJa_6o;G4ODt^P+`DH6PlI z?5HragABT7-U4s75E}y0rx4AuR3M7}h#5Hru2SNcaa`CfcNT>_WEQuhY?GowPI-VJy@DlDdvaV*vdN$foR{cCV)Abv#-OvZm|B|eycqm&AbONk}xw{wf?kClzq4Pqb zi>LR+apX}i!Z|LU!rK1%u~FP$sU$6BNZt6ns{8j=7V+*#7g2m{TJ`y{xT-9=o#;Bd zBlEg?*f>LR84+kAUesR}yRDYHhD9#7McHkX+)=wMc6+q>a(UD&Lo*5dXjqAY>UW0q zfE&7J-Wnw#mPMz6L{$5N7Amp81^@9cYvKZ4ub*stfDp^V@J-~O5SoG zxB?f*#dfhR+Yl$A-R^rc()TL~rA#PolL=p`iEfj&01O>^4J;pAzkq4$uII6Q_b zal|T0OjVw=6->X}8@A&g`*gZfnMHo9?ufdh9bidJx{$}!Wi znPbZ^>+mw5oaX22Hb1h*`3%95ska2GTTiOhb8Fo^ViW}+1 z$h;crv1oa;blFZF!|PxgriZi}r%;6*UIS~nt7gOWZ=R%!d=+4INBpZyj^EY8UK)xI zENzf8V9?kM4@uRwp)2-1L3LL;n2kV*3as^+x#=&n)|oyNDwk>Fd)6d-J+dYg%;h#z z-zjqv1$8%2S1XEal{jL$2~Lz5FNMuS^*QNN>FSwvN7WFEeU<18iS_XB`U5Cff%de5 z{5wOVsPdU^Oy7n7Fr|z8q)~kQm?IW?(GY6*n{~JLkbpws#~VB@qD$1MN@`a3JxNN| zXP<#Q@%{}LP=_!OXkXF>S$^y>7X0r>quK~8Ik1|=%S{|oQWG#6A?+L-^*Cm_vj=3` zB2QJ#hHmyr@rXqz4hOsrBV|vx1J>0Ri1jGmAr6$a+%U~K1=||1ByXij!Gc-?kU6YT zKZNBOWk|6JEij3*Ss@T>h0AoFGu^ql18y8yeg_~5w-G{B`VgC`9-lZKNqQUpk;8g2 ztX3O67}Dl#>Zi`C0qo&~(ig%so4i!WQ=olG8}iR9 ztEJ0LRY`12)v6K;QT0fy`+t(I-qqvMQFzw?f?*0IG4Wf_s1D5tlqH+RS_t?x2R;wK zPG&&Cdq*AWpou3|_x8}#I zx?|Tb>p(l>|7X?Tie?>hzD#Hu zB71r8JYHR4pO=aH)NMev>xo!i&V}im@2#L;(r<=AYzE?RwHA=W^4Oq8RTE`eP*sw; z9!I8Athzf5VAfi0;(+%maYSE9neKcpnpuW{--1T95KN@8m( zDs4m2H!=C8hfieYkdE^gQ}(KZ2nx2B1})xa64&~-iq^q4FJ*y@g%C<`!@$O7cO}=z z75Y7;Cqh3w8j8k!hQ`F6PTm#g+vW?6dn{2^0am9|PD^~=7}l6>q{)Br>fLOsBvoVK zFs#YP1KGB<*bEv~8}TI%qHk>MP1pCHB#IhdEonP_&%QELQsKiNQheY(DSH|Ux&l$X zr?CK8lre+)P{=A1|Cu!IY5G_wsR_CbF8hkFNGHJe3CF8wR3+IaRxBq!SEa>GLg z+6w9Z>u+k_djK3foNs7tD5+b48Zx#k}C z1g5<-6#X$3`<}!Ri-`5Oh(g~G6DJhX_jn+{^)z?l9-wjuk_yxPX17nn8L&Xu|BD*c z=PAt6n>^wr{%6R?f>Lg7R$EbIzbo&nKz!BksWhr?2n9co%k)yPbXSt9ky(%B%<*6k z)6RuhB`OJ;Ie(eho1}e@qd(7E2GL*QE9dW!ivPCFUAW`#NTX^4mEe=EsIr!uuxnZ2 zfln?egLEisGk=FrLogo`h4j@wrAGBh@)>t4_W2N>V7N@?zk~|Zs5s0KAy%T?zC32V zH}&ryc>Xa#`xSRFM#YdBdKLR5b4#S8f?3=1U)?02}3D7!#IgP|BCVf>D96LE zKw#+!N~_A}-;*XuPl#Bw!e@Wp%V)Q-0BJNZ23tqk#1>Z`Vv)Gl0t{6RiD_V5GcCpE z>sr*6I&HbzXUAG3Sf_NNe{Eom!!X$r2e|ZCB<*n5itiTcrrOISGL}cu@b8Kg<%Zl& z&U>bx2#ezx-zf;M&vSNscLH|m>6*PvRF1vetI`kGC8DbKm6Z8M3dv(_6VlamnZ(jU zC-a-$CkO6E555`?xZK5&Nt(j=elscYHBS%2RJNGGtW_R_c$!9{Pu)LjBBiSBYv(2h zz;~v%J!;?vNnQsN?Ulwgq;F>_c|bi4Q6km>kb5vun5stgfJd|xQ=14D8C{Dz&oBvvra#+@$h;rbj4YE%)lt`L;h)^e~@pyF#a0h;8~ za_iifOs5q!mei&Ic$&oPBtE?X+hKgANyix1;>jx8TFHle}Irm)$+dY$!3OS3>ahVxme7$ybmi12SgXl zS#E76{z)8<_TL~I%q?AIs294}8?h-~i+P`WAYB5#fN*Dl0a25;SsL(WZ(JUoA zr!)}nd)_i>7^4VpGj39(0*fu*HF8ZnXtxaENV6G8^yLHhupp)n*Z=>%y5dF6VT3J=~hvrp@5uF!744$LD}8PY^U?BypZt%gZ#|;*&u5 z15o~Cu0Z3%EO*D-uCB$Ti{JJ<$JqKGi(@D@5IodMD_AWxyYp7_z;(SI#pZ)8ud+`M&O?e=KH7qh6%KmOmDbqc_?e07n6jITs&~b! z@T)9AIlamRObu2bnu5ICl*=~lnB7&*SlGJC1?pdL?jiPkA?*JoaQNX z&vf;V(h10l^2nrNkULzFK4pdpuqeiHi|K7<%~EVB&2GddP&P@n1L|UnS6Q}MZv{*$ z=3%g*$$zHJPW8IU7=Tl<`OhF}Vls_gb>V_H*xtiB*B+A%%?e35>q3}5O;2I7N9!sGO`WE)2a{fq0rGYyZ615GrRd`GlSc9AEWf(rs zLgKP3UYlJgS1}r7>erp1UUo#u+^E=J8*xSE*~?3Fns`8Mg};A6Qv4JerJZjE#oLe; zXkxJK1&Q*bZPjhQg_@fnFUrA6fduPS406cH*t~kV+~6h^VyG4HN_m9Uh3>3B7l;pZ z@m-Us)jMT@O*Bo-vSV2BF2;vusBU|jR{s^6Mr+D2i}S6slWudtEk~7f6{zTQ9(>N= z_b*6&oU9_OP5aEvv7U%WTrMz5t)i};>=o#JkvRL73V|p6t*3kgL)NO+MRS~ z>r+UhQ|I?tC`Prd$d6!$&woKMd*H1eN_YyhuL1&5lgFnh%4`}ecPS(FQEqTN9;{4z zV8TJAfriSyg__}686M5 zwBVx1uQJt_8C5~r`b-GbwW8b4KdP5O!v)=a1g^OFk2BOX8kbeC8g-?GVK`|5{A=d% zXUeWHTBIgLa+8HZu!4eb6+r7U3tdQr`z&`MRzqLTX=Te%gC@#e?N#_k5FZ9otO(EI ziX3w1T!i6fW*?ySqwcHzKheizAiDYiy)CZzrr*CuSPALkx%(V*({x>6(%@o*={qdw zLS0-i-AZ9-{e(`i~1IJ01pm^DZwy%PqjuZn-7ba+3f?!{>f%rgKpg1HNv>s~pi3c~1u%CH7 zELyWzv4W~m_lCTkcZ<>4Y1UW*l| znf)6ndc;Ch8#=j58IoDOE+$rJof|7t&9PL#Bk|eKiG$9YujU zB;PUqykZyIO)2#~2zottIbOY5+-5c^yvgi%G&WsskNI%CG|VbC@2J1zVMUJsP@m$!^y*Y-}ionu>AJPXT;s~hL6Hoi|o zW1*`gM(v01+f2QYJPOuI-c@GD?b=pXOH+ugn$!&WH47whr+%8MuJNEES3oDhlL+v~uJ#bHyJtY7FGTuh~HEBZwCe8%-Oyrd$F{7e3hU zyoxy(cDdcjSHd*xXs_nB?P-9PQ_(!2+>?T!2k}5J3-IwNZR^ z^OKIjBn47e&V*P?L=x9sGDUK)*ty6g*$y->Lgt~;bfKJ}+qAMHYo;taW?MRm_ajkJ zzGe@34tLoP2!NISw<51H+hrA2!;1P=@IJ<}#>H=8koKaC4Vz@-WruA#9uFdl>^vAM zG6kapumY{mp*A1YAaUxCrgf=@J64W1U}Dt7U@{F3?7t@?i91u=kGxMi&ZgOyEkfLi zryMp~a=Q4|@e***b6TuAuWA`ZzrSX^n`mqUCYz$$X~|#&8xr5^)9YaMu+_t_!3fSS zz8Ua8-O6?(xMf@O98n!JF%-ZVFIKa8UhTqkT#4lAX8m zv~(8#q3I{8&suJCv4+`Z{#W=-@*^|FisChSlSNZfc4x78pZB^EmgRL&zYB;bxi<1f zthgA_vP)b|H0s(yQ^(>$P|da|^%X)*kYp~9bJ~G2L;H`x^ZXZu2uuxl20E%J^Nqm< zX&~)3Ag2$It!XCD+2L3vcTf{)c;8o07yHLTp*s#Q2-ow46=_wsQ$inGNYFn(zvB{X zW&=o0JO$jsIc(F)o@LVQW_6eBF#TWR*1Y#fhT`k;d{Wuz>T;BoHYW35{75{=P}Uot zxs%S;DV@Y;JCatjW4`lR0*$LjeM?mQI>0tBkMfgi$)2rW8+Oe>!2;OI)dnkT`TpHc z>42fW9KIj;{(EV}>l&>|ajon9RT@?jtNjWSn59#vgnA*J7_1Il zr4hd_jHqsLqWn{W^VO26DHly!^FC&MW{UMv{o8B~PNX@SrL8E2e z9k6)y_$u*H%h99FNvVxBtSCBD2w(&l6(u)V$joDB8Sb(=HZ{WwmbEm!j4Ooz(VY`i z$Gb>Y(*?>v*-fihS(TgVJ|ob&VNKv^ngT4(xO$**$LaGV0c~S_D+mMdg!a<#!01*U z*Uq+JmP}WO9u*mOH%i?UthU&T56yHWKZ3kGiqUk%Hzt;cQ8R>foArrQ2Xt^Rrmm(Mrub5c*2k^s2FBY_GpjWwFLht zb0?pqLcZ3Eq*AGv#DQ?tgsy#(*4=}S6^7#K$nOo$u&*4y94g&0$9`39R$Y{r75-y( zje$7q%9vU5uAZuHGKp9cC^M~%QpR`*e-uU`

    C38De9O#TYgi#WbwV-zg)3Ct-kS$a~vC5Q4O) zYxL_I24~5JV0-M4a2gJiUBE2sM_+dXdM_MYNw}?8#Y0!YJ)k~w#isn2dPvGGJplc{ zR2%EuPD*sewna8Q$yD5SK1N;OV=iBHv?+AZ;SWx|Kv*c&ZuEtgN~~lm-k@n%SRSy- zx=}T`8hTiT)P~AUc}w~@)p%M^R%sh*O&`Ct@VRsH^QY(ZSUgPnr88}8)@b@NFA!^y z4}yvZC0_Z*(5h|#B}2$jKtrHu@laVGuo_pP@~AK9t}5#RPQ(8S&|dldGfJYUo4KiN zEKc#e}OR^x)Lj=8I#2mGeyB zVI0;|rK>pqz7}o^eR&E2pHH5KyArN)64lV?bE3!B$2980tf$c0@uSJBtA#69i!xs0 zHJ)xOCe~?Ci^Yv8^h4fX&ObEd$a^C_w)bqg@nc%)u@Nx@bfm+czjTf9^2@>lH4{iX z>n)AUUEis4OTeN51M5lDkPRf%F6XdJHKGv}d!a9m9sJP4kjemO)YL^iL|j*{d&7hN z`2))AS@QVNx`d_J8#VT3ZKG(1ZWC{Vybnlu2kt5AVQP|EECuw%J6uXKUb#R!4aPz} zq>6=j=hSdek5@ho52%OYZUaB$Xk0sA0OCX>qD>KET~}C9WFwL zwejKSuj<8u(RHsT8}M4?;4cPCI{&MR_*Ie0zl+Z5T53^G8;q zXb*`kp)GC#(ZFIv{m}^ovB|Q(452$-(QY`55F0eiRbFxbRz`TR`y-ew>+%BpJQb*O zIEaD`3+y96kfF4dMy7X6ID`i4s!a5KmI^zt@9{`8O^*KdXMiZ%VLV1hXNLEDGr3u6 z{%A)Gd(6B;FKR#?)z!S#x7vPM@~YCqRbdsix5hGqUi@a4=}R;C?Uj40Wj8g;!{mR{6f&I}>%$pW$#XhKz=<(Zp&8n7ma zH^xNSAkJp-EcCcO<>R$NhiohWqCj20L1x^-sxxk(evPjd&_m0i2|c(~sv#~YRYiBB z?0yu`-w(?9XkuRwCCQ;y>AF;Zlc_hg()6z_mbxg09Vi{tqxv)`^>FPSx`JCMp4Nrc zN^RCzM-|b(@wdB`e$?~H9o1tMkM2kM{Kr!Gw>ryY)x6aY1ly(aau)S+BpGsx*8NMB zC7A0vJS!oAUqjjsTaLDJQKUr5)W4v|euuRnnxKqH_6-mB+@ssz<;>mSN%55RotV^$ z;lxLp`CAs=&gJ&=e0$B!gR_x7n3_2b2g~$}e6u|UNDK!L*>~VYjl?$__7!L(?2aS8 zXE?xalo!V}K!-|F2_25d*dRzfB7~g|_Co|7GO)xEA`gmCjC{0dB7+#LCx}*bh#dwS zsq+_k4%sK`VHDHw9hP@vItOKfm<7#5EN}9f=)lg#(i^cI-t@=P|0sQWhzI%+)L-7@L?>DA1&LxK78s;gR$QPkrNKjb#rEJvbu`^M@$!!&>9YSx#* ziR-&gs6*6{FF7D%+cKzyuTuc}WSD|nL9B8$no$F1P}LF!n%xbM_q2MVo* zCeXQxp@+5gkeI4Z(v^jLf>Er7GEvb<7eDYMw4U=HfhCgSD2lx)u*3VbRqVgVJsk%U z(fnrB$)hW2{`3wc)D7B0aaZ7;hYg4)@B*YBM8ob8_)6#=j7v|>Qe%g1LrWo+{j9#j zu7U8pBQ^oqOxq=Fe{atkio+)X-J^ zF%3sjJvAt)>qFBH!s6}$%pX|TJNUsV5}p>&;@7!uj@#<2Zw;avI26Rm7Eh11m(Pv& zIc1E6dU%eCj~KOxqOP^enZ1V}*5S3c#ls3BysGKdU1h@qblX##?7u_P?T(X`AJ;1j zZ)xQF{`!+wn{O8V1mvEDFV7T~!v77tAOyC7ls<7HzAFW{Hfsv}fa`^thVS*TomG;O zqPblTOZ&VnbD8vPDs!UZS79ons?8XoJ&GSI8nL?_6~ z&9H>5Zx~tg6F>|+I>HDe8!n2D#gO_N5=q`8ke#aVMH|znZlg+_XvyOF<9kLFh!5D_ixiM<+3f@C}!DvsE@r`u? zGG9ieL9_;<9`_zCgP*bmYIa0-?ehmHp85*SAk?YJMw_%c!b$6qntegG`EO)!SJFD` zfvOzM46$Retk9uf02ac-Rqxot0w<-ljo4-s4V|q^%*Po1QY}edRQuQBQ7wtj--_p3 zo+jQcT+YSKx}fjnDIrfXRIcB7sik~#{|&zB2~Xme^A+$9c+(arDc=|`XEpnNOye<5 zmh)ZVUn%AdRHLp}O^+sTthDB?^)`*eh|B|!9-SyQcDfSiz%%fdkLqj_HDgI_81{0& zOP=L&Rx>6rU3U$Oj3h@tLF@CULSFOdY@}v7Aj3CNgX&`UlwR&6>aD0*TOc1&S;jGn zT5lKV6|by(S)RrxEd5aR=t&}wy$=x|n1<98K6}I-#`1fK}`W>+20zbUZEIZ^PowoU7oGn?+F^Ec|tJ3tzW2XkaRi5f8vF+;w}q?7+k zz8Rhqoz{0hdF}Ge=JxXXLb!+hPhKJ4Y;JU~p`&K1cv#r7AgdF#vACQalrQIhG0(rE z1<=0$1Y0Y$y9UV9y;-GNjn)^Z4WlS8U93~mn5LmpFqLoiuW{RdG^-HoI{GX@GM3{%KFwLDSsDb25)owArHgbapd5jc!^(ikA>)TO-!xp?F5ks zcWA@FbRhNU*pBmu_zp|~@&vDHKqG{DJeii4P&^g5ay41z{3{3J)9@kcA$t#z6a%L5 zE}Z%Wpe+SzmV^&el@{Q)XO(a{M`10(?#-}AQL{EsNAVZ?Hh)0N=6(pPG{HLhRrafZ z57OPR<*lL#+oH$YemRq)Y{@{yq2t2{uX?n5JF>rt<}C`5F@bcDbgZRy82I!pO!{U; zc?x_PZo7;{8H`TUh|PbQ2sp^-lgHw+*<)`-LuVtnTG6#pf>WV^AX?F=hUNi;g%Va= zXo9PGr8NLXD-hKN_QA6q-`FNmS=e|_Cc2ao7#llTR>+!cXUJ$E`$+l*o&LL!h6qj( z{Q@1xrOFFB6*Zv6sgp$CAb!4-$wV?xVt zv*SzPA)0$@I)BSFe`CI!Gp}fTV*&lCaS3A&3T)Ww1ZIJ-&;$kL52DIu6}+V=CpxCf znGD}V4Uiu_9bKeHM=BUwv3w8rQfUkCH1OS7UmVCIiW;&LiXQ027$x3EexBPj*%O(F zWkuG3Cg#e?gHwZqxsp#*d(2mXd3`b8EHx8IN0t}sJ;5o<3q;Yqw@GL?WbbU1VALBG zsl6QR1vOX*L^fdBrX~wU}a3$#~ zpN7}g6OLpfL^eJ)2!Wb!;>5Gd%gGw3S^xctX)LfQDBM%oMqgYYOV}Yrp|D5A%ehpO z8fAsoAu7Mv;2JcSbCZ^^Q_|SqfG~f1)Vm=yow1JHi8^^$I=uXn3+TXz&!6OUc-ojF zkyqRb;R2I2UuC&NHMU{0t0YU*cw^bV;m4R5kd$BN#Ua`-utOM&W3VQ0$imIGI?lgi ze-}N5n&5T#1^dsf_hsUq#ePxcCBh%XP}2A4)l5=}NsV5BdwO=sjyH_;c*>gINO1QC z-rELEpx}lVj2_(;kGnTf(^vq}l(N(I|Am}QCz~fNo{lfp*_!gZ#lUkMSp{2NUS^i~ zjCvc#;jr-h?KTGc!$WST?@@m_Z;NHdn`O{rU8pNlKB*^sL5~ZJkQ%9VjAzK%=2G(b?LxH0`9)CIE?%@(HG!2Et8E6rYNjn=VITLSD<`Zam5-T5`y1H?EBIllXGxzdQPTGaZn!AWO))%MDLG z#_W;Gi5mZ*8uBS>c)==3u$A4BirvvKx_`^!w0Y-;SR7XsKl~gz%+%YIHRMLt&3_qz z07i7=NFu)iP#}Q6QM^Uv8C)w5iNIUYz+RiqOv82G$TfLUU0rQGIBz6UpRz`3J4kE@ z96J_63M{w}>}gbcN6$2#$oBXSya?wfS??Uv>WU{|ZmLw`16+{+Qs%3mGw~8N&a$K)L!k#HbgalBtTy^|CenXSPZN6{L4ekazRSS->k6! zE<`Uead5){w~*E)`q58;p##sv-=>)=o&*m=T){6|?ArSh~N* z$^T2_@o~RyaZU9lzP6HT{7yRhE|JNPpz#IwFj*?iA1rjv%9jH%-|U`$;G&XY41-4# z2>Hm%K+?m{hsYFIcA}t`){a9^NX2(UB_rs>1~pSW6qqd2{&Hq_qV#r1I|U=@^%%!W zH;WL3y&4ANfjJ;MbF${1hXv+uo7!X-x||gs7@oxEZwi<54cOVVEqWV`-2Aj|vU-WD)K&W0pj(zDJdky;8Q40~LV z#erw{pw@$1h~Y}~YwKFpNfL__MX{>K?kHx+v9l8ybP;!NmENoaPN7SNU_X#LbayT6 z6WMsm8gd(Yk}#&9@;_AZVvi%*Y!kJYW87z-KixRwX_Eg5T`(MNd{Sue%iyyD2_K*h zK^(Ha9rGDsWBd=mM`xp`{xk2^(Rw`P6des5^TcYV zi9E|^fOc^6)hY01b^dlI{RhAw-3^{UwjzI=r zi}RNmbD-%g(L}xFGFsXzi#2PTEP;zxmagLE94x(mlryUb8%8)V_M#n#dx!$l{FkQx za!$p^JU`Px8|%yXZ8bZ^V7*!g3hE(Amux2`-C~^RBJBatHu|A)-V!%B$>xi8RHI$w z9b&=}5|{Ymu#z#A`Rj;kbc~uudB>r0tn6)}{wBG{-Dz9A_K{ZQF=zC$f;BcwcjkVS zm8j{dAaCDnGo2a!xc6VZN!;3t`&cJoyD%Xj| zoH{%(%X4BHVoAC43daCsG}SXc*-;JEz2z^svKp6a#7*S@(K?`X`(iz72$uYX#gGmp5rO)<&PFnIuDw!2f2|(IYJ1D#?Zn{GMsk`p z1{UZr`%k+e4euFTZk}2mWYn>P#OM;LuMHJObPR_)k(8>8mcFh>G1_D&Q#w-4Q|0R( zb3gd|1L>rufTQ=OHEK~hz36B~-!P#jHz6Euv4X=e0lH`#mcDt_|7h#52Vxskoth{a7{LYvYc zBsy6`03~#c3?8m-Hp`jPen}|P^{4~VsW!T zxbE`MHQa++LV={f*Fgofcm5su3z8m4c4*aPa0je7+2VoTLeC*UB!3-ZcO=NSAs8lI z03KLhY-@*BJvsq?Ly=&#^M_D^uJn^K%Jmr&3(6t`o(A^ISs>#62#IMZ#v{`p8rJ5I zPN?ccLYvJN$eyS<6s1=e?-H+N8a(NN#fXaile=?Sa-FB5@SGRXb1Cue^hUBAB&Wf7 z843z21q142028`l;P75}Uu4N~l1?{2m!eL4t#56~m)MT&=o#YiFh8^erkh<(&WIHs?Ap-_O7@-%_@NYDa0s|Y0wh-LG ze}TvMq?qgr!{w}2`ppmZm#1cr;bmfJe9RNO}ZOv$Tfpw7Dz=^#L-VK&@U)n`FCcGcD41 zBAEU;_99NSQwz=EG0BEsHt^l1m^4OHQe7X!Maw8FNup>>;KE%&heH>ITDbNGGr5FE z3?|2W?yn0e!zYg8--K%I=Q-B*-pmC$Hdbk0FbbAm_`jF0z_aT3dA+!9-ulw7$?B0@ zZo4EyPS`c(Nd^|mqQ|S^G~z`#Xyo+3|C&J0i#T1?Z7IlNU_ygWNW29bR6l~ z2c8DLZx@06<@m>+kAEbjX=rnUMooQlh=~t-5;2sX?lTkg5Z|E0)|d<~Lh84#EyU8C zx*#Ar{=K#Rfsx%LNX%H zfIS&*I-mVu3blu038CO{Ag%`tTgX2Cp;Q}mpMV73AZwB%kkPCgT=}R}CW5~3E%NAQ zFvzGkLsV4PeFyg|jiN?P{eM|KKK5GWM>?6`fKIoziPCN8Vso-P@QB z!&AM-zu`VZuC(w3Ohbi}|Iny+mMUS<)AO z4}hPkz4_SE4f-A&mDFf<9^I2Eqk0dqtj=6RGn2bT;|b=_T90#xg&K5U4u$lptmG}Y zCsT#7Zon;8!B?zTk9CEn`7p}~rmj>$4{Rk<-$(J;^aSrKj(2$Io=h#&+~}4s6?Z>O zZ!Nth9H6hO_t-zvDLv6?x%l_?Vj5bgwZZHzLu)dPKT6{rxM_O(Rx_sueb?&OrMY)0 z_za0ajy=ziXv%)ma4(Q!$PeYdYR7ePD9fgoR{w zTKyuC(cmH4u(e#)L97fqQb)44q`jpHlxMaPbJo{Y57Eq|U#hPo--S1n()f{oY?8hW zRO(wRyxn0nV@0955 z=%G+QVfXSv>PcGYBRZnEJBWc8TBAVqNQ0HP$ZLoSTX1R~_DVMlNgEc+Ds@Jj5m=n4 zQB%+FsNYK%D;_#c)aNnrwb6qvH!WQG!Z2nxGt6|yhpr-1Va0`-!>U~9vGV?||8r0Z z+eLH19%CJJTa}FdD$b7Aapo2kuQz&9!>|TyKfx9<9_?3Nv9WICLen z;3`gq>s~XAKOT`&(1%xe4sH!qzkt_OH&1;$!A}n9YrS#suwTaUw9E~bOm~(}-nx5} zyqqIL%ULAvI(FIdq_}t{F`polItLAsbt-)G%vZw zcoiFTtIGJ}TP4`SbG7Rn;d&X+uL|oK>JxKaTvc$tDz$K9g4e6AUv$y!s$8y*mo9dVPFd`%uc9(O#*3kWH_^FR4R2+ZY=|cyR$CE*}KY2UY znZ`d}3rt-$raOLU{2u4c)EL+Oi6kh{oJ(_*dvSBc_bmWyh{-wazO!UOOI5#!oz{ zFYOIt*+M@Z9r9w8wbw#+V=`TPgN57;ds1=Fg1$m%KHf~Z@VXsUwDUw5zLo;!+2sbtmQ-Z!mx#B0>*+vS3(P} z;v~F<9cFSfm_i#%9}9AJuH1+5$C})ypjU;9pvjBrSwhKWY+=Sh=UI}w5k!N*42$yT zreV08yHT*JY3H2H&)VM}W1RKlX+c~n>$?lZ)%z|h^m7S_<9oB3IK0Dh)4)90W^-;!26mZsM(>xP6u zNVHdT))xY^YFwb1q%^QJi)RA>AViXwpSqLrMQ$_!q{Y zyHkztVLQG{Nxsdprpwt`-^dGYTPBg9Vhrp>dUPhkJs(f78ml!5zwu1&F*qe$>wy=53O00 z#=nu#;)>ZmLn%BDU$btOffN$%%;YIlLs)Yo^>CQoG0IHG4vfl+#&m$4S~;cX)rvwNQ3na z92pKxm)(S!h6CduYAS13?EW)j#0`T6chfvX3}{SM6`UHhSoE5b*jmRQ^<4OJOA9}N z$qBihKf<`!JRL`c)Q=i#a_{>X)guJ1fEds04{t-&b`I_8>Z2ujDL>qD!l zNT`%0iW*ZVaN-X&i5`NPp^%;F9xSKf4{J($S^OQ=8emmKFIqOS>G2s;hTBeB4>C37#M+bc)YTz29o>Ii<4qs`wlr+FcwMP79aP24GS<%njTm!?b6pKh z20sHVyU2n(j~?CahV*dMM}{q$3TqB`M)(r^?~I(lD?e|z&k(;nt{!{pih6>ZBlPH& zk-)HD(Ws z&SFP4JwmKu9(Yle1BjZSJ|ICCWWjF@JqAmD;2z^28$0j?Qvz?rz)arLU|C|VnEDcT zNZLZJ4Q6+D3kpwIt^R?D%4kc-o-)+FR@oKS)g<=0mMy-<@yCsF_Nb*?SlF>L-6Ist zx^!rxrJF>S!qLpzR36^iuZM)esH=I1^Hh4Q&>8imjVB-~{rd6!a@N*=mmNG`tiJ(E z*uD-XC=Q09C*}Kd@ZZp&%U0E*T5i>gyEO&{^e~fb4GjuatpzvJ6}YvP3s_<4%8T&W z#~%+n&^{-iQ`Z<+qx3?b`_qhlhLmA)#@2|5dM+}D{JY6UVxFA-ekuPRM*m__YhtKf z$~;30>RQ;7wjk;jChF@TJNc55*tI77swOow=Bn`sEUlLiNj)@}-7O1kMJ|JQm^%l^ z9wC=-uh7B_Nl0|yX%`-<`Z1%rP7FoIQ=Pmn1&i)B;|U#`WLm!@@L1)uR<~MzK244O z8hiQmWUn?%8iz>|y)i<6CWJ|CGuWQq1}|uU!Y?sxUjx#vsqZ6r2!>UjeT0$4*&$fU zyJ6;Fby~jo~yp4RoPPii3aQJG|@2qHBdydzTzS7SdWtc4W1-;B#R`&B-2CCoh9rd ziwSHzQJR3Kfkz;qN=uWZBy;XkkFN4*r|G6Y>nGVBLTkkjeD-lTrKTHblk#2qTE0t6 z2WgU*2>oQcSCW8Ka<7)uk$M`8A+;=lc{{#WHlCKXRKH&jN7r2S# zg@lkak|{p2%b8((cjWD%IjEc3yEjn`28q)6e$1Z7m8CC(R@yFttn09~yYbx<9j%As z3^a?bIj~yq+2sacjK3t^c~CRirCBSqJ)`1aGEX@E3fAWO)qqIowBaf)&JvzzXh z$zdTgaM%K^Aw&4`f;~IB%32otb23JVOY_>#U(N!pjpBovNd$q#Hl3t~bqA3hdp6#c zq`en=L!aG)AxsI$-XKBtKn+`-L*qP85@@hJDFjg?wg)Sa)b>`Ib}U^SvU5L25?JV+ zTLICZ=lL8w>D!e+f)Y@1Ext7Ul4NN30U!<5lkRUw!|nMEH|8DN%M0nW_+;L<7Ma>= zQYn!hefMS#Or(7NqWyJJIxCVz65d7Sl`6aFB%x&q4TqT6QXuU;YhoR^fhXTVfEVx$ z5+|0QgAEKxv?DtN*1f19`(L{S12B)x*ZdNypP9@J7sL%?vay(seR<(~;8YrxofASqPBQ z1pL2twK-z$4JN}UY2g@#z8v{f#ns~GuOSXYtZ9L&mOykFlm-7{F zZSXifwgzOOcmP?ZF6F{u|8LV+t6Z_gX>g0e^r!i-^qZRCjg*Ggc4{UN^!6pCu23+- zZ!mdJgKcf-2oPd~<3zH<5P;`f_F86^z@LK`^ym~WX90effiZ^hFGK?kmiJA5vb{Ah z2?Q4ONTpoSNfw`$@0UXWIt>msKxm?!C`@H~y>y)Z8kht;OJl{0cyzV*a-*{eJ+QP} zWRF+cPs6}3CdNO6@ek4V*o8EuztFG&chfxHZQaghAVclriPW(eR_piTm2T`1t*g)o zqsMlO%v*xy7t34C!Rhx(( z-`QLHh8_h$ZD=f0uu=RV-o3HOB@AP-UL0mOGk6d@u+i_yVj;Wlyzl1x8C=Q0FW3~u zcQf;6FrMt70NKspXLd6fyzUoFg{U~bE0mQoU8InE5_%QvW-yuf$6`5L3G`w)tZfH3 zP2bN_ZlMLbKfBqC?;gVKG4+Sos+3VZsoyu2-j070(5>YM>#|#;bSxuG8!S8kSeBO3 zZa~ch2Khf%!7aFZ5Y;sMZ+Z)C^c+-gXag(D?36RK6}8|?Nb4TgKE6l7(7;`9&{eo@ z9e+IT`FMO@yN}Y)-OpQaHJf`4{ISt{t-Ac$@F};@U==Dn&OAd{mtvXL4hk8Q85^9@ z7i!Qw6JQJ9OBIHSW8J9`?kkQJ4_%d7sJTH`$3!n%I# z)#Hv&($Ia0Tew9H*6d2SjbEq5=*x!mc+B+NEOfg(A2ZimY~}S<%bp<9GlQqtbX%xT96kW}>3b*lUjFkCJk8hF1RN6qw zZZMMOc-zC&^;5{Jjv}(20p{_ z`_m~OrmRDiE@z#(R|Aik)Nfe}*&8h6DtxxRHJP&KqfYra=j~7^%$VUQpi#Ee^Vl99 zbrB5^GxQ3#OatFtLO7~{6L?dz-YWf1nEZF|A~fh8X7pE4Iy|nx7FMOJ+=5$G(yH=k zQLb8l+7*Rg0uK?*oPH`u-x}?5R+1l4&@fk*SrWYz7aC9M?-6=N{n=pV-S~d(DUa$v ztu>g*3rW;*T3A|xGnkp&4JxIFq#v!(?6Q~29bcON#Fs`>Sv+hHd!^$&_vi%2_o0gw8dHTEIR1^PNN&*8S0sU726dfv zjaQP!_fQgjYgl1BzCR$B-GdoGgU>D(TP3)PFVk0(jj0>I!g`hTwOj{`57N*ra$8U5 za$e-^6Fft>K{LcMMhk@+tl51zWGpw{yxHapa=nC91=L+plkR`(RFCv54L7UDjQW(& zR8{#db#=_)o{#VQg7GE}-DjbQwguij3y(jR4Qqxi+~y2zMGd+;;SMG|-frmOX1x%X zOYn6loC-ds0YVAKjAe6{ln&u=G`S|5cCm^R7%kM*etf@;9u}d!j_xWyhz~-L1IW52 zGpLK(Rb?5kr&5-os{d!v!?1pQx4Wiq&f?(vXrCJ)=W8F|+X{Udv8p~EXVM0${2eT% z_!$n}GMGjBm&2ho)fC6SWu~XpGfZpn`BC=j@n7_$u8-!YCtWo+%lSepET#>h=J7K0}o-{+Ls_qALYCrj^{nBCY2^`^_2_#~68)_7etuSE&?u zu}xhl$Zw>SSSVJL{2u{+o+`KSDK_YyP4rW;*uGRHcZdH!@Y^FMI6|y*#oxqqIWN=Z zu*{8pT^95^$+sp~UgxfxZtqlS|I~iokMG;p{mr_2BGlDbUI3JyKV6VdQD`XDcU~>) zvM;PJIv?lD*^eivi?qTY=0%9h#uk<-E#vo6&3wYv_zdu+(Q_U56~~)A1D|ytrM^us z>-N+`+(4%64VrbyJ;wD2dq6X4?rTX>i;KAnbck=x~j5{4XQ9)(RE zp5XCE-SBPJ^LLrMpNURf_kz6Gt#ewW67<~*je5v@m`f;YbCuQ*9?}dER=epA9+QV? zOo`7@x{cUiG}n3c9K-Q6;}#!d-Padt&^;4i3qO5op@f2K$cN~48O<^c9#-q<0eFlR z58YKV_ZnNMxxr;}58@*DI;1*0!}^@43nl6ENzb8H{cJ;(h_v5+ZvgHjc%xSfkEy|X?Cykr7d}h=Hln*(FC;T7p$B7D1-@m|!;$nT zSZb*b6@R)BQo(8lZ&5qRkM?*e$H7OmH1)OnAK6 z;0r!WWkUHXeVta$uRZTH>VHO-n!ZH5jkLY*N7%xH$m_q(HOIPZAw7$hlosh;&=*IV zWZl$xy*3tO#LsZ(mciU>D(?=zu{5x>q<+_qEQZzkKKuAlDA-js7cS>=mzYIE=@9Iy zsvgDY+YruA1IG<)KxjL@-}J_gKgJKm=?Pota!%2r*Meg&(m;f1Hp;0qKu3?7$Fe2`L}C#;jrA*_gP`FK32wOf3aJi1#U*Jjx1*J*P0&|uB3 zgcj>=g~Fm&$OrEhuZkG!LdCqEG%mgBHC#}FY5YYX>0;L&Vs>|ZR-=+K|(8EOC@V<#~)3|Xw z{q)+;4VJ1teho9VFw9(!J3n5}BIiLtCng%q447eV)73g>wIq*B zQZ$f3U1qQvq*1L0r=*|Z)%Nkk{%UJu!PMIs0$mVt(qH{5Xqbz5(BDasG`?qd8M@1_ z{eeRZYU62{(=r~}%Xkr`k|2VBC>;w+Wa+_W$6&Bx#v=U5OIP8lz2$vXF~bHjB`^gW zEZjojSg_ELx1leeVp}n6OCLVIE51j?y}Is)HR*p%E^+!!`KtnC52ivaNYrk0UM&Q0 z4AH6uv&gjAEATMm1DKX@T^vujs-JBQ%Rb`?8f4N6e>URPRv5r=q7^WMY*6Ky8tY~T zKjW({NRu;RnIEL&IP&4Wq+h5MgOKZB_VaD;t!OX!a(PEeK zD%9*3;c%~8l2GgL$mq$g=uu$&+rnuTs~eo@y6M$kSJ0S@_q=@H%2y>hdui0?V~H&+ zf_so|hPjA^9xrHhbF^~1F9iby*R4<}l;#%lPKM(NYp1Ik`l5{;BJ8&vjc1J}27GWihimhCrXs5#)=iLOSDQ>E_Ce`C^H~_-?X?4AY>v!I+O=59MK_ zPHSk&ypAyR7&g{%mOJV(M;1GX>8k`K<1L5HG(N-Diec(23PxCF92@J!A$T-`=)o}+ z0k3AnrAj-Xy16dUX=QVm(+m+@=AX)C2ZCk9W&9VWeL3fl;0@yEA^Uj3e?Q)CPt4O0 zjBaQe7@SqpJ;8%hZ$UterL}6o6slVi`0Pd@iFZSGbC`+Y@X9vi9rbAU?DWc`{BYE5 ztb3%2AE4%7GR!X&VtI9tE@#`wmhM|n8w7eijJ$yt6AdOiE(@BrHy~wtqLbzZoQ<0< zG}yU>jm~S?1)WhWmHQ-`-*uLxw*b!}d&m%HfaO%sW314ln^Ox%<%MZj8tyYh1)f$l zxuGi*zk-L>+-W%S2jk)nZY`L{8FmF-Aye?nH2$dYQBS#LX{mpoT*1pZV+%7hScb<;X@gA%5sU)8N&OJj&^(&5hiG2yFCB&*KCvKP&$?ACSY8j-l@_k^vcsJIr|9x) z{siGqFs*K5jiO!+9yIo_F9b$;us+iv_JVO|U%yY|Z(qlc&{$U$7*VtV6PW7vtM$6G z@c3ih;Ot;cs7LcqUd%|&9;Swx8+3JqEj-R~nQ=TVqF;6J?YfYz3y<@I6qm^?;?OOc zTUaKyjOl*girr0?_ry!wg6rwZ3rne9FICsYLh3RpKaX-lXk*=SAIPiYr_y}bDM^=J z(~8FT85-+m{%L3t(laBa`pLD{kH(TZl6;rK@$d5P5C3o2<-8}^T+WUzzY}ThW1 zgkqyD^mJEf;V2*)`Tr$_QyH-ZwKmzXwaz2w-do3@^QOlE8(DI*wOZ1~{z`gXn89w4 z9r9W}dh&n#CXRm}e?9)44kQ%EzfvwV{<(plz5eXgVEEaqo&JoC&>ttTua+_o(VD=n zO=*%1L{Xy#b#aT&x<@D2*qDJLs;e*^!tS%HL%^`NQb>4QfX+qmZQ8S=;IG66Xi$iH)!UN}tmL?_ zbc14i^}^_-m5%dFiS*!DBP%y-X|R0{djg28z38hI*G8OVJTbK%*?D$MM^ULe!@v2? z2$9W0!%Z!)3a=%%$jE&c$&R2m1kdxooQ+x#-+;p?_&UBP7=%T=rF&t=(z{Eo4ZP@@ z6&o6CO7@kYLDtLpuECxZSwxelHQ5JS*I^yhN`r@itV@f4TgKA<+b0@TFD{ef}uiqJVLZaxJzTr-g!L%mKD{g8qL|J(ckU1a#==*Fc}b zyd7>sB4J{%R*cShLPdpeJe6=y{rKUOE@!1Me$-u37c!K>otE*#D5=Q~tW;qTtTl-} z((&U+^B|l~gKGBLeTH*vhSC%7QN>ElD6@DB{tP z_pi{>)F?RXTYF?+3C3r*oE6w2^y($99r(WXO5@)Yc+YTfSK12i>C+uOx+`GqJ&N=D zErOyw#{$UW?9%$BgBa<(0b3lP{~C#Ubf1E}KNWzIGptrL=;RcIB4#%x%=iFGr!onj zq06LpIdiYVjN8pq#86!=gJ_9`n~&P$_Xul3%(nyRqDARlxsrF;n| zHEn1meN%KIfsQB2tH#Q%2fq2y8iKu16V@z8GWV6i>%=bSrO}~Qacy0r+iq_o8$?Kb zo@BC~4UcT&$Lw?@XQm^gy3DAssly}A!-17=gh?=dv}DtDS+Gg_`aIaJzN5q;vG$b? ztmCQbwK+H>Z{VR`&Sb!{8BYQ)mF_@4!@lKMFRZV0l^+?s=!uzxkcr?oBucj*RO%_hdH1QR(>7cPjy=YZ%Gd%&Al-N42)*f`;rF78z zOMpO>@Tlg|5%nw()wWn?3_H#T?)oP48-L6C?rdcE$dBuC9#7&8h-+Ci9~XA`1N>zSb3%0ZjIgVSt&C$jdZ?ePzRq z^$c`(T7oE#D3SEmv%y{s*bm#+?u}@$GM}Ta%JBrTcDWiMlBcO+Yi7vKZ|o}jx%G0c z`zgZ<6bcO*vxpjIe~sAMS51}O7^Ia~*q#PtNuoA@0QD0O@NF7@oAI{N&{>bIA=(eQ zmO!*YUkIb3-fAYNq0@$5e(-D#EifW0%jHZqesIbI?S*1J5YT77qK($gp@wKTz&4)P z9P}mwySMG8ON>{tXN}NbyT@vZ8x|nlvv9`XkwH{Js_(Y%ajIApik5+pFhz z&*|`ar;{i&5S2W7bT_!qZWMCffnF*vyP*kCF;<-Mr*aR4^#A&+0&HOsE5>~lT3CeV zXCA@dD5ClH!@*nR3jVZVrpq~F_Jqd@b*y!I?0F93Z}}CXV%a5G_-ifnSz3HCQaQF{ zFDNx*Y(gQeOSkEbDw=zufmR&*4#yJ%OE6*^7z7}R zJ9rr~4KIZZR(unoAQohb&!|UrUEl)aN7b*t)_*d0E?bK8RurD+Mf6+;P!;EwEE7po zVqPZ6zmioe8Dxb?Ch1BBChrxWi!2!fMWs8JZnXEek7Q$PF2;as1N-sa8b<3K>}+I4 zQtMbFD-Y+g1JVFl-)p1;PAe^1!f5knMlFF6t146s2b=%HD5l|ZE**VYm<*z{k1XWX zAV8%EPD3rqPM3xbZXvylGe4oS1GU2MSC6j1_?KF`2jfRW9xCfXtq0}tBhG333p89O zScd=)`sOSvSqUnB4|#|V^lP@Y{^MzCHS|#Ve?hHwC?4$hx_l+&%TuBI>Lh6fG~pSx zw>rM&q6yWTyJczztV&JU23slveOYJxMmT=>GEjeQA>@|^#uTa$3f=R31#vP$GARCa z@fExAqlR=fZV)w~zBcNS=r3mh`cZQwb2T?h^1_8Z{7P!_TAfS7gQ)Q+@R{=wyar7G zPLY-5D@|`mholKY?a4O{Ndx!>r2T>doJBpgYGI$73U^jlmPE#$)vr7#vcW^)HovT({;o==E>ArZoFzg`A zR6y72GCq|a5GzXn(*)KC2?fNGD2{&>7(bfw6EZ;J$8s(7zPNmaC6sv6Ni2yMJys1i zx$&=bA|y%?uJw2lHDM9y>xn|ot1js$gN_G?uB{wRnBjO;dP2u{vNw=P28eg<1WVN) ztQ9boX5jTXPy;Wz!zf_YvN(!8qo@`z7^5uvJ8idoBiQ+=-6?n*ub{>+L)s&I7By_b z+VMTAHhvWEDh8N|iYpvE2>!q8Mpoqx^q+*NcA!TTp=Cu z=r;ez)M~&*`rI_|A*XvB=2)xq4f^8sg#=!S&tK89G531>qfX_rkfQSC)b+CQXn7k( zbU8;gQ@lX&waLzBrPLsO?Qb`+jh$VM<;DF`?9tU_I#B?!Kuy1cC~82x7OmHvNMQ8fHN8+}RnNlAPO21Dh;uushj6QOas`9_+Hz<3}<2`a=C)^rFji zUk&Sl`qp1Lz;=-;wqKFZ+QfBPRx!6x-wQS=*3>LiEy*{iHOh5s8b3NBd8!lY^iZ70r7f?q zv!7xrc_7Yo&OsUPFPXxP~k)3Du> z_cBMFRKYOyq|}mi#ugAC8q0ei8*FTC{43cBI_@0*H2e4`hCh=|+hw@&V(Z=n2iA@L z@KZUA9}S*BMt+aVF05klt|3?P-zIf^16o4|!=kVrFYkgh>bp8g^?Z!Xn;uyGOQ>*n$|0Q;I z(T{D)@+AB#2;-mFhw;zknDb-C~)U7lbk=@ph#yLJ?!9zKr zU#%3<+3A(Gr4Ftux?;7a-*#DDm)?~$FI;a@#k5FktTQTwRlMa^t=!H#7M4E#%$`{V ztrHhT69m3Ty^RndJsRY!SKFdfS{j*PeZ_xwugvvr&|5vA5p39MMVo$v$=mbdLBa z!I!DBjX(=*ch+y@^&MaLEH;Xz%>FAF(gZ)j=|nbI(SUA_4p>%PO};~GG(2JH$)TOi zYGxVrG;Pb`0Fj4{zZ)$3&tLa6fd@}Y%{qwel1OBTXGuubHJW?TV4%R#Nsqstv;z-p zkyLQ7YUwIs*xBg>G{H7?zTp!DYC9D5VkyH6!90moUonwo7OTg9Ie1){j^o`sJW#U{ zT*enc*L$0CoK&*M1MZYNh|cCOu+6bQ2p{mZvmrwo`c)wqDP;%=sec_X_DC4|6Is8D zeerIFqY2Ef9+PEq&>g@FM#u~Yh%nDj9(PKo#(z2f?U&=93jBG32#FL^#sP?WdMd)0 zQ1s*>D#@cdQG>Xp&w9oW`6<7aE@xNC>jBAi#RRxjl$vN38~<91kJDJhe zIVe!=DU|rU@*h4BygO}H!_Jt3ZrRn@8O*w*D@u7rSIOKcJ^&r2d<)ZRB3eTU=xvi$ zmX^`2XfDKZPpcK$;5A{>lkCjy0gd0HAf3+h1w1o0s#2>1(PYy2n1Y74sSP&rZwDtlQ3IBwsIrl-@aPZ>JFa?BB<)yiUYLe2 z8>VA`M+3a&ot&Qb+rMe;zh)lq!cF62+&I3oY)~zJuVYf;;|t0&vN%?c;vLqWX_>hE z)9e1HU+gEK-KDCN(8lfP-!JylD?$(6Pr5;teo~rIzXcP-22j788T5oAgKbhl_9ui6 z%04kHh)$!;(3JVrj43sGC3LzK0%ybCVmIM#XCqm}No}x+rh9qmXuPu|N2+*gJK8ZS zVAfz~x-rVz`%~fy>S*@MnM#rPRgB&}u)l&@P`_bs$K8>@gJ{@+c}(FZ4lwf?JXS1Z zBhw)ItG?eID;mN+xxTnuRoRd}Ws6ji$;UsjelvmnLvQfqJb?$^e4S-6M(rrxD6-1# zEMx2w_w+13*?@VP2_;z{tp)V~7>*GV!7B-$1c;y~?SIm$Puy6;@rvdb%?^@V`yBkk4 z@{zyW>2kh>bx1ho;)#BL;W*K^K^a&w41uA_n~lZI62^BZ&Tokh)5Umnlf4=`>`G2g zY5L|fLdcVDAP5+*4CU8gBsue@A1bzm3U`gQZ$o!nrv-1i(MEUgQy6ey4mos~3^TGq^_)VgB zNP0|U9gr0D!TUoGKN`8@p604%$w~*s6WI?V|oDK5gq6u$_ecI%QquTMe689u{!OM-LK8TU$fLHBX%KIfYt8z~ zmC&>taFJ^G|0Mkw=ts|Xe79{tkFMs+d9g88{;1R2sJ|F2h4I_JgS2}?>>)v7s5im0 z44`HP+J~*B4g#iJ=+r@CwnKy&j1JW~1{;^=k-3$mF~gr$Y?V^Oeg#pjjy zhO#aOy$hXKrZs)-a##3xIgKA_{Mhe-Qk?KKgNNAi_z`LxKU@v^%ZrkA;EBZpoBTMW z!D)8BgCxKEoUfn^QSU69ChiZ41I_qy-jeXgjRYL@tJlOY^x-G@%L|$7WEg)`MbJTH z4_ol;^u)}Nz057{;0-bprVIlV#07?XtV^=a4q8j1^XL0fvhKiZYE>4mh2pAOJADag z>3&?$6Ly>1y-UcVW?`&vFgvD7S%0+EW=`X~+T}d2?F4a)4e1Z9xuAEEl;~@?o?eSJ zicPoSEVCTw(1{~DRpC#XuBeLjY8yMC3AXllPzz=z(4+Tr-h%s-qq5v}T8^L}E!B!n zS#uj&rdd789jq%Iq_(h%r+Zf>E4a`H2-!Re}TqKt@{PSblKU&I!Txs4cJUE zi)m;qve+ahnwOT*m|C%szMwG!m;t7MGP`bS5%#R7sy2&yEba;<0vzAjwni-RVjT~$ zf0-6(3kQ;E6O-jxPAryqKm3B{(YCDzKk0PoNFuO67Sr&#wIQ*#vYRdd(Qc98xHu$7e4Ls z1RnORsp|MMS%l1bS~|@jL!6WV_Ym1xB7Ds}M7C+_*Y0(a09))Q?;{DlV!TEh_ygDp zkJKQD!d;WL2Wpf=E{G4qdif+dbh09rBtu#bD6uij`>$P-R$_N6l(Y(KE6L; z#ysjh*$Jjgf{<;;_sa~iD(=-iynN#Rp?5#b#m1i{M@Yr}<;<8M6^8=+-G51MVnea< z{Tk%qp>%)L<=mZW@yEi_;+50;{x8i{@B3{E@Sj=s=@Zdz0$%p0+n_l0hm` z>JF2H8!cr%ornyjIXft=vq>zgy~2J)jh!ahfS=WNpabpHUf(8}E_fiJ=4eNqz}r^o zYHMV{B(_#3Go=u=sOF2KdqAl;8l~rqD3LsBgM3`v;B;}T$d%J9{M&wYzJ_n5L z*ntzx7`y#}+27Ovlk}y9D*bDO7p+HN=}>L33{4N~Y1V}CT50QM+(G1G z65Uai4(eH5UxWN~0czv>Bi&yKiVlz!bbhsO{4-fcQd+=$YqSE+oYj{9vT?O}$ z9zeQ5PXMNwhCT|*%ao$@>lrbat9ZRG{ZsJ1gu2LsT$SR~woTUzu@-stD;{d`?*;3U zRjf;1&P9Q`WZLRqvY!LS+84FXf?iE-uc8d#dCXO-K2MLjB)U41P&b*7cIlW3a`URw z4SU8rtLD^iSs7dn3ktf9eMlqxriTR$69Ut zb*T1WL~7!-gz>$&M^`W}JJWi~Qj{M-T;oFa;8@T| z_t)^q@G7S7yY{ZEmW)v!9gdnYq#M{nybYGcH!5hOVR%A3YbyS5Fp^w1XHR6kJNidH zKvcV&1$eUYuQ6CBH2x*pEO_}%v;n(2A%7KTnBI?vB#%&UNPxx5zCN*i1@b2^-m+xU z*I*-gd9?at!af)x`l1~Bx6{zi5RTN@*;$aJKseIedTJ(2ns}xex1ct@UxN&Ify};# z!QQXYIw(gcc+p^=D9ndgFVyu zp>`6|reka4@4v7gtuM8BB{o;qF*}hRPi)6`(%nGC7ixwjuntztvu|Hsr9c%Qi=!IW;PFbZtrjFQy{Pvx=j~R-G zOceV!+u0?jDMUL-#sN-uoK|jAIsuCp<$Ijc_)%+>++%!xs9L8r4L3+nom z1P@sc&U}eyh_zU6Z&Pu%xPt~$gX71#UMh9*Ix{~YPg{$GT zMtSJ2f)?T(ANn6dx|VBLCfA1}eHwdn%9B|HNqRS_kgLciyGzu)M+JSzEW?)CGAU7n`<{$?)NqY?9$#Y%*|+tO=#_*E$74fZk&=B^)R%g0ahZBW)q;0-_9dqT@S7<|xWt>sW!; zt@hGJe?VSc>~(ftwTjE2Bo8BHUD`EwHYwA#7DQj1Mk>}%ZED6irvi8oYCGFGch*-- z4dMjG)WVlZA4|*ZB;Hf(a1SpTmbLG7k3yOc>YD4?=xlLU;IXsnO?0>Qm~uq$m~tv{ zAP_OF2D#Uk4XcQ;z|bq|mZCvwbWCRh4m4J~FP+`d3D5%?Ly=l!u})bf+c?Rc*}TB1 zs&xs6o(MfS@$qK{4;|zq#5HH^15qD4ej}||$`Qk>yoa8E8hTMYiDw%LdXk7cR5vqt zeKtVfJU382knjni@a2bNMv%8Wy4mEhzg7oPbc;1jUGPFM{v6eyiL{@1xQ6j(qUkb! zdKx;*;u`I&S5NE`WKl}(uAHv5To2ZrH@O51uZf+se?4yZD8M_y30_+Dm$QHz*wGG# zU<`W|{!4L8cO~p(zj0YCD9J-KmH6xn5}(%FsK?+c>RZEFcygxtH|fF-_UodXL$K>P zc`W^x^9-&MubvvepX7IIb@>x`hPG5TZID$0CDburT-&M))@4lc;GYaa65y*{)G~NK z{!tL~k^C4zOnm(2d7jz6+9)3R*@)STdVIA^5w`L$&wBbz!EGNh1{*T?Qs@P2$}=RP z7jQ}eyaHY0DjB%SSMhSb*MB)vzKW*w+gzX)R>0>$D&ZbPKwrsttKoQ<*I>+j?kgF= zH>-~JS46l0wwGc%*h9cMFzg}TbO-**m)0#j!GWBXiB8q6*4fZvQtpdKu3#>Ajq#nu zcytWve+N;>#pOAm26;HFhK=vz$6{zp0hskey)eC6h^jSp$m(tU@vd*c*IY`M^Ul7( zSC(aU<5CHS>0%vA!kK?v=-$Pn6HPd$K3lR3{!^VU{NlCNUv9upIxSzEE@o;#&4fZb z>&23o1`O6*6;KPe)v*{+5cBG-W^m(2TPW#rZmKLhEqN5vk)F%dXQB4XD&wCf+X9f{ zR!wgCPLCicI3j(2Uoj~TliPBrKE6PaJ;+K$YMvzRCw0`2q#ogk9$3N-%mf`cQY7uE z1;#{E(X)$Mu0P#{2(DCb`WDp2cZKcc9Hz?vu6&Z99jNZDLTfM8(sUsMo@auM^-J?$ zgtD4Pg@h-f7w)It4MzC_PTE2wMVY^KB--}iuN8G1?xGc1U$A>5pZ0lV3nkOCPbK2e zf!Ztjjg8q@%5jICjZ@uda_ktkz@WK<6M4ohdcM&PNURsNk1Rj*PR8{i_nv__kcU01 zW3AHRVDqwOyJr2#TsuHdW~&@Xk>s<66;uLb)`~RGp4tokda?tA0n7}6DT-z=GlW9L z-O*cfUF01A<%MTbMg8E+~L~}a&8B8S)m5)~g($E(VYj`;1$4`_o zU3*6NDJJW$JKiGZ35e|um*$EaQ|ODnwC=di5H*Z{xeM+GxgJ4zYV<3zxyR~l#0`2r z8u-+ByyqTuNW#+$r6|hM72Dwq?gk0yT3n<1BHi_D*QCBQUmO>88L#vJ(u%|-JhY)g zSeIfY>k1dgU>G%@Zn}iEVp^oZTNvN@>jGNnyXm90ImAllR&jUi%&McF>%Hd3G|goZ z%*{b3vj`>0;w~Yh({53(yC|IGkgJlr1A6FGd28K@)M6>1FHZANv}*{3+DXezoqOZb zYk#HA7N;vzoWak4#uQH1Qx1i6ww&T)#m>y2r1_-r2~E1BgB-1H6GmaFuF2cjVOsSp zEj;OJx+yfaiid^kJ;(j~iaTI?xw4&ANc<%@4G*l*JsiY05FtO0@>culcnbw~P`opy z;63l|fh)7iaL>ECa`XqgO11POX#-xsuOLEv20V;^&-GV#g(Gd!Hyq!ionQc#V8phU^A$LV0*#VbD$_T@*yNqE9;+xM zBQka6>0;6(09iEQX$Ft3;qfom9Ug&gXskS&^Iqv-74+Gb5<`9g78D)q_+DsPzxLD= z_V6Mq!HYsxFY%s_ABCQCRuwAY2BMl(zhV6NRibk}UJa$kw&Gpmb%Q(bjfq%RJcvcH zp%>_^n@92&@CX7_<;fzv+%$d}Xe+1hw9DBhho21O9lGrKItj*~U(`IWi_Rue85X7% zags#MdYy<~EnRUlL!|;g%H>R*Uz_b7GJEVSJ6A7f>3;hK(gjKj+l1T1mwP}{Wn)>PgfQE&X=QC(|hmmV;7HV|XE7}jc$(`)et!iy9 z!1q?=&fcO_@kwgudF>h9O^mw-sot7eT1H)EnpUIb+ZW5ch)wA1{ooeqlYp)<`NQ>E zSX-BDymspPA_h66so;??vG8?ISwh5L9zXKm&G&}SC+t~)py1%gssk0 zk}ik5=T*{s`Mrd(<;}5;L*Jy%3e)5diSCj{6PvIoc8^_CTzXxS&bk7=fYubVm9ML5 zW$C)&9$&o8qWY9kSZ<{T^qnSsTD+eyHaztA(sG7EIwK|1V8c(57nj3#7018K;iRM% zuKae4hj>X`eL^yy?858|>Zc^%&I1QT=+G2e35U`ddqHYxNDgU#p&y&O4L z2sh{+G(-@i+7kC#NSS{*gOGo8_iU=8yEo-;e*ma+cUl9|@$@ zJDo5_BB^}c>{Q z$7|Aj?Mq9=G3>1Jm#wUFReIFk1NVJSI}`~$?EU4u>}i!A`9hs_1$=?dCdCTsb-L@@ zl-Bk-ew$wTD<$g}!ONmi!!4>&@h%ncyA|jos7V-=YgMeXegz9mXiQ0o;JRT~^=5xC zYGzs9Sp8#J7$FM3THeTbfBFt9r(QhUxWzs5fi;SvFW%XvKJ+Ws z4csA;_yt4YFN}WxGR@Y1AtVZ`d#Rj%`3zN`bLzz#;2##Q|v9a+T@7u>T z!F0L&hK?Z=PltZNhC;B9Rrlf+9n%AVnjxVr_*E}Z^5y)=tS)DPX!BPcvyHq9v@G*m zDdm6H$9GJ`avF>3d_Q%MX`1%?!gte=bc>|aXa|e@6};LO@4}C;ZLsA0@Vx^_x`#kk z8amOT_XOYDFnEXzxz*0LX?fkwb{o3{)v*0HAlUJpq4%E|3xnNZarY^xiFR9j0O_jK zYNvl&LBkq+fmGny2PMs`@X&PEznx~%2lTXkX`meDSdrb@TUb2KCB6|Acj&Df-^;*B zl{z~^*H+U^YiQT+z2Lq7UB+lk$;Cr~ zXq_S+6ej(TkS=fqK0yva!qaz}NB0%Vuvhb!vr_qp{dT--ZOixyeg-oW9Z=DYI2sIWs#|CWvKRt$fPd34vb9FXo#O&e3ps5={S zgQYzGO)$+%^Ov(y0EtGbgn1s(31rUNkq5K8>DT- zLncHUCp(>f@sph{5GJt)f5cau=;ejQ#?&)JJ526v05ZP8v`az>0+swfz10!x?lW6>LHPJ18IPy#!HI9y59G%#~G;@r{EWxJDF}@n^_~j9)YN?sTI(Q)Wlf1rSc*P0!5CW*% zB%t#-E|TFSrIdPtz!C{GHHAY>{gThh0S|50M z4}OwJ?UlvOnnVtwdoqzDknzKmVEp5xM@td|(CprDl7X5rr1==9n=s8NP8Tywy=i(l z93ik65cBGj?sg=vmUOxnvYv%m%|;%8G#8J+YDI%sX6s1@7842+1WSS}#;|So7<;C$ z7w@B5BInw1e3wxNBsomNi=sFGnDRp2s96>x8rVWUrWwp*I^HPysW?m*PcKc=oW|dU zN&Y;wZyWS#mfRyLEh8DKx?eamT>=Ku%b9GL$}n9ZOmdjo2F7=`9q@Mul-c%>u|RQe zBcl^FV)V6h0(vo7LIknxT*w{F;4;WJZc4!miIzz+(Cifq2=+gbTQeXzdQo%BEPsVT z7zaB;{sJ911*?|STZ^O~SbNcO{y<4tq`XhS=zJU>0t6<9dZ~g)K7JEltM;U|9!+3a-O|f%w5w9v zf3l?GH_!Ir%SOMPz1T_D`j#3nK_u;9T{^>NEs}*6J2L<6n1H>0|I9ct=x? zJ;QK0zYy5{N?E!un7>htpDRMg_9AM@F6V2-0KStSBCfimU$vHFs~+c}9Sep*Ty{HlUvFai6kAY#`rKhP|^E2~JcT3Oe_z{-Yo|dFm3iG(Sc}!3rKwxu> z{PzVVxuLk(S*JYyb*N-+qL66N`l7Z4HxvE6?$e@o*Sp-uMQIO<_{e_zK+mI;TszsP zvygMAR5Sq=NkV+p>hzhxp6|{t)PQBjBaFOjAFOG6BF{#GL-rpc`~$JaBNB==D$?e) zWJnKvxVjaV#RTQGq?J}&jrHnJXtr^HTXfw`f-GLt-mrMB4$@7NnU+SI_7(G_`_eFq zTGKjpioqifBnL|xp@VxK*6{fdesKJ6LkCfICEI8|$@~%Sx?~>JK3OfjZ;gc78~BV0 zC11{u$*;zzCnmL`SCe$62|evEzrqQP z7Wfu@%Cg(rsQh%4!;uB&TJc)Fe-iJ}SDwJVV)&vj?>3iJY`_<~}63=Iun79nu* zHX}pW&2C*E`c5Nm_cpkG5loQSVPZJgxNw$im-ZSD^x;`Fn*Ft7!hoe$EnWFddoV`t zxQ+$3a2Gll+HgvIFzIBBR768fwbq8H22SCYy#c$8wCxzt4TRPlej$C6?G{p$p@N@3CM&qie1jd-Pd9KD7RiKB3cQcQ1TWE)z`I}T!|f2 zGG<-9Gc;AaOC^>a)KWNz>xxt|4K{q2Xr42`OkG7;aT?^sr;Y2m%rp1!hU}Jl#m9F` z*g>m1l-(aqm-7r}CbuGag}pzZm{I@STJ@-|b~)2y)kvZ#6pE*1fj8D86isU5hr-h8 zH9oKP%y~6pEMW_-LDO;@oAhEBA3p zZR2&l3Z34i&7xXbA5qO0N2iq3TPyF+4lLl*{N-H9Lo}xCui`ELR6rQTbkc+;_H5hb zOE@&fC+BS71cZGI`KwVR^u0xH6_K%xvqehKBI}pycxG#_t5|ok{ zZ!-lm)3cy!Xu5R3o0(TQyB8flikqMuULi6>V55f_zb|ZKgL)6@HW1lt^vH0G{^*S2 zkzpsVAf082qM+u1?ztMiYJ5|a)H_&1xIqf3I32oCe%?+e6gmcfBti!#o0z<)VI!G_ z9roz=5W7C0rBeSU%7YFp&}tZ-0zHDI>EDBd6$|lNX@i^Y&-9!)%*F2jWPL1hVE0zf zF^RE`-_j?}Cii#6019lEvzpQRW6{Bl9a&6ZtMcOECk8!5S?oZfK8_%QTND zDQ%hSLbs~OQ=cwgFFJhDBCsX!>`NK?wFaAi2xxpFsE+TD9SB{{#rXutFE-e?f&KVy zjmJfot4UvcYK%3qe|R$4m)2LOdNjJ0XvxR`vYJ(Y-tfvDL?Kd<9hfUu^NV;n-*hi( z+HlopvpAk04gEb1j|Y9f@&Rchtlz__o%ARc`hLBf>vFSnx6NaL@uSeqf$2sy4zv3L z$-dbjfim@et{<1LPB+|>|hUZ22-lG!>DjM z3!zu@ID=u5CE<@7pwOYf&_~4%9MiOu4xvox>2?TqFepXPcMv7c5Wy9`_Ni%~9#gNO zsTZ2Ax#b4i`N&eV!9%q1gkj55TNc-=nc>KEAbkbT#+^vwNC`ZIZV9FN`W3XWs3WPa zD_v1Ni=Qz;VzcpoYaSK)pRCfsI;QdCS^MQ>juFsZy)vrdKoV1$nTtKa358OmhCGts6RL5&g~ zSpDM*t4bA*P&XFDWhNo-&9;vqcVASS#x|j3IN^YgMBcP^fI^D#b|tru)s0^Qxj!C! z*)=*=BQ{6HbMUderlc|Uk?g=Ly0?FC*aC8r&J1&75GoMHJ;@|qTo6%VZ>>5>Ci zOCl)U2N09xCSPI@+DCd!Z9+HWr8bgeR1oO2BkEvwle!Ac%xC{CZaa^ke5b-X1htHq zEJU{Pk{yqES0#LxT(g5F1FPS-TNT7)&B=&ziJg%6I|vwYF&g*K#+2LXTNva#Rmn%BhMFpreP`0I|s z`^d4@#P+a(NajjP^!&u>btqhU%mXOa;dUi}cdt7pCuZ1_0|MMzj~BuNoY?VEgt{LP z`y9llQIvziw=1(b=qTjgOi;{i6u0cX%iec|WP%blJtF(~X=hLmDV_4;PD_(Fu$Z6c z5md-90241M;e#H8#BjeNY;J$j@d2)+0n1Jc?RG7pW+7geK&OX=g2tOa8*k>e++fb? zTdX^qZI{gyo%x2v=o&uZXdF{37Nn*3K%kw6MDznXslA=GV;KK=Uc={j$#fh)Rmj0* z@DVoz33*EI^iHtFY3+9vDyRdqNf3Di3G>!t4pW8cq%DC3rv+jMPEc(87Xz(I0p(y- zY{!d$d)8fV*QH(s_-3?W^?03*FM&xFcE!vnu75>n=Ml))c-JFF&qoYn7T9@4c9i4DY z5E=R|m&VVSWMU-YhjA-##tMvInQqtr5_MuGz?%AG#tS29n|wL;+QhQ+JV9iqlYy2v zKGwX3xA_g;XBfX`+yle53H$1}U!Cc=n$xT5V33_={`EEao1RT&aamgVO}4m9WkJ*z zGi)lG0*?1w(LXV@&1{vz_%(wPqC?cPgxht71K|B`Eo@t4b1XrrMf{(KEmW(u^ps`C z$N!80yndb1Yop*7d`z8=0v_y4$%L5&rnOec3gQcNMmJAk{91b`I5=Qry?=3+F_c&HavEDUo3nFzi~F&>j<6XC>zAF7KPjBdc*^~-L3>JYiLYslWEMO z*v)BJwGLIY6nz_3MI0KiWZG$VZz4ll7$3sX6`0~G!`h8GXZ(M;(^0+9*LV|DWB%)N zW$a_jK3+7T3E&t8y4_zv8K*_nB$l*@OjfsV5q=oLG`GG%t%G47|HY0o!VUy2Ya+w5 zjuz>i8jWlr#`3KUGk(^nDn5>%Kb6MIBJB1vsavGorvEu|JSjG9v#TYL3_AXI9Dl;k z>UcC1&mPt;pJ(usHCs1dPZce&N=UW!<&=wqcgQ@~WZ^r$&7hT|g>opdL=UWRgjnaq zRxAA!16|-F1$--IDh?Zv2NHCX)iJjkhZf)iz6HJ2RE67B3~#F!iT6bMwvM#I#B1>c zmP}HAzH6@EZA~N!*ieZKtAl7l1C|o5C2=(f=TCg8N9{-yu%Qxx6H}03$HgoN(BuoM znjJ_Qzm}up{1Is<#=kAe;Y4OwEtyQI2tMr@O#Up_JuA~3(SZhs+m*bnHPqp>u-Kjn zKFry4NO|a%at0%&vWEQ1R4M zB@cExu>m}sOQgB6b@s4KGMlB4#;>|Ie%XrUiAchy`7o9#@tx5ihmawa4qd@v-mBfN zvRB_Sn`7gxQplFEy~F*^2Uc_-{FbTpK6J zLxqcw3f`lk=8SvJpXIiky?pgma?K5YD!1^UgME}eER%g4yT{%4(;oZvv*nMpb(R|p zt%_x-)Tc+jEy*<_n_691HlFIZX&u_v3idl*qI(qUl)be2r%JJ4CYfcr$WYAj^?D_F z@N^{BK{W5VY;2*_M^n;<#JW-$j8{YJj=k%boo?4XZ}dkr{9rB$5~)`Ua?4G%H_>wmwENhNI{R_8mcw?c9?~NHOc?IZ+WMh*H&N2i&iPq)GeB2x*sLI0 z{VzmU2U%!!VUf0@dpIwmJhxJ*IqWsW#Y79rxi(37c*4*2nVN}@EBH+Qr`bat7s0QR zQp@}(@pfNV9>-skHj|Z2et(Sga}Ook+|%7<11y#AnU5b{$*Z=w&dqlG=;4`)+m_P0 zgtS^D<<&Y^wua-XdtAn$eWidi^8`=BB5r%g z5njo+>-mW(%e<7Nb{b!t?PrwlYQ=97+qRTp?P-RfXQXR0?Ye9C0B~NP2>XzIfH&Ql z*ce+XHG#TMQ&-!q?@|fEOxra!~1Dr??@Uo@xOJ&S{yQ&Jqs(EYj z=tWMf^9}1uQLaa3EMK4{nR=0ui)fO@kab1h^I|aGun#(-+ZOe^!GlGk?{RO}T%9M@ zk$`WrhhE*sQ1JkD=u2=FabYdNkhXdUx71y7AU=GCn z7I-q8ysEhUm;qD}KH<){Ah;^<)-Q$0m`-f*4fdd`j9=?}PX)W6s(0{^s={N;9;K8Ea@#&h9_&nMrZvcc zY)QFu=@1Jkb*DPC#PK7Ku-?DU>qcyRF2W}v;6q^2fIEuk)r|5&He?7_}Nw_}im9Rz%#BbN6_k{EEfUER{;w;LqM!u(ay#3w^C=Q8 zsg}3e5=s;AZ0jg2$3*v2_ArCoR#VbGi0Ahq{-iFnG@MO1K^>pO?SwqUNuM3v!xm`t z!uE;qI&Hx{Xj@KgO{A`<4*oJli zeSm~EUV1zEM;^ekHaarYii@0JyaBfNw~8-qNF~S3%5$Gcl9X!&_+T_%3ohKW==<_ z(Lq#qTEu+;{)|?#2RrivNZ)t5Yh7>G1^U&SDpeT4melln!9&ef9D**>5?Za_x;fHZGEw`+MtO>4zIb~+YQVG|yYNy`)s6l-7`K-^`xT?xRQ$XSnI z#nILxUGWM%hTC-yNa&gK)WMk<)Bu^Y%aao>9puu~ZFeI69S}lMuq7RUR5$!%$h%=^ z=XliiS79!M4P=iqXglNcAm{&fg4gE~X7V+rJLT*r0bDp6?7ZGWV=A=w%JxZG@`H!O zQz!RBn&}xB?$v~rh7YpEyVe<7Xs1Uk)EL`WQC6lT{-wW?y`Fizm|)vE+6P2tNL%?V znnU&=AlCGDroPl3kcS!U9ZEB80N)!J`*4Jerwnled2__00)pFhYo|Stb{rZ_TJ{FZ zVw^$SbdT{b`?`f0HT20ff*LjmgGS=pT?H>yt!peuT9_`P|b<7V{HsyW6DW3E(eM~M)+e}W*%)~`O6>{)U$Q4Wlx3qM* zqOEX*I(V@6`tga3p=@d=?pNJP17mrgOFD`fHA9$b&>7tfCKF$gQdsSV%)S1RQGEPT zLSnb;JOVGU9K*rTjh!APGdQiK zbkf-T+xY{WX|!7;4yRvZ-TbncKn$O{poj4yIFFOW@}gSBj!iWzO zTvyuvwqesCd(*=A8wQy1EVQ(+jImzo;h3j1UTT*HfqI0-WVZt2*B0VB*hMM}r~GVr zox?IR*W(qT1Dwayj+b?L&QaERRXD=0Pi~znt}yIytVb?14Qi)um0IS#w5&guJk-2y zdot|txrBQ(f3=^MwPlK67llRe@HnOydeTJ-QGA}oJ@t@XDJELm z8SM;eTaph868GF?n6OOvJ5S?Rg`w2H9r1Pz-#?6;#+R^ZJ`0p}ECqanTO;T8qYC5Y zXWf;ZHGMU(YX9Alg=Is_ zCI2n##~PN6rwma*cBMJ&!_YoL*2Fq~)rl{KC*GAbm-AyV6-$pL%OEfsZQ^8(}SEkrnIYp7Q0!Nan^E22!V z>*g83m#pB@Z~-00&td%Zdec5$ipT_N$j0};mUQ37%M8XD`_3DKRQR484(fs&%jC-K zdJp+={~s|i^X^{IX5fV_;k;^Q4RwfOV3&D+ftq0G2ga4+7$FEW#;QYKf{<}A(+rIn z|1k#-6((U1TNuC*;~9E%4`Pk1FIp&ttWpx}%EhQ4lrp(_65pFFaN%{E_<8Ah?s@-9 zxDtAgT2YaX@8+?s+8r3b_}y4SYzlfPRC@5OObb)nIuCP~@m~Za@|IK=f)uvAfuk(? zoIMn>1zo{MBx`3U${S;y(jx7L^D^-XI;xe1co&B@hm&~BUao%Oc!a_;gqgMw%Lr@d z*Fv41;qd}FzA~zZLh4?TJJ(4q;(oAuslsPzG1C1m>Gi1&;O>>>zOoYQ?O=9(sY^&@ z=DLnaZh9juud_PV9CjKiil%{up7$teri$XCtp|6BK_uYu2O~T$DOoJ zWj)pPQ^9x_hxSe&DUlyoK+Obq=rQ2I3hvQ~%K74{s3*JObm&-Ata+Kb?C%hC%_@hV z@oWCrTQ+Q2IQZU%qJWJQq8PnJl)@WCCl%YeGV*xQR!7Fq)bTG5@Ldvd3WC}BBU>HR zs*8sNnFA2yL>CAb7A)f*erKEMzr{g?sT08flbxpFV;ZKdQ&0b)YbQOxX`?eXI-;68 z5>4CN3A95AdYJ47I9A;)y{MkWV8#{Op+|FoIDv_P+PzO|aR8DJR=U~_QI8iiLtR{L z4hQh4`k?Jy_qroLnaDm~^bD>p5hqr~Y5W%%t`Y8Qynf!&%AYhGtm!g3O**iufQ}my zAl$BASMK4R)Um3i=|$8XyGa7PsTNd$1N~95ko*}kMUu#mrJc6qp<}~EiV#`BW$*Yy zF~>t6-{8#rSe-#PwpOQOqd7mT(TtaMvF&t(Qz5RNOi0!g;-xYEJplUcYKsLN0EK=K zLZB4mR%u_#xZ8y%E;J1s9wYVJQYB=w?9gNE9~kf67LwV1&Y5-x2a%F{JLBUbyM*H_AIo(m{{>lT*>za zKpb5u1#lrkY26aw#7<5UGsWY|? z(d(VI621ivong;OoVPu>XOxuoJk4MZeX>uCUslL=-R{BCNM&7@oY=NHkmct$tZ^LpHUYIO5ZKZFFi`W-^UpY|FW9QYt;MbjI9&z z&}c18YlZ|^gA#8*StCqGb_EsGf%u0q>{_gm)xG6d=w8*hLb{-@SYB`?m(+Q^r9JPA z-JoIHsA1(GW;K~7CE=BgyUwY{kLlI^HvL!A;HM$spq!56_!jUEfkaJeaZnB-yRO_! z|CI~}h^!LurG#__c-7Tk8k%WsyI?@kdUrKBTv;jzIRF8wanU;Tau*x=Q z@>X(l+n@0G`Gsi_Bz-gjMTHjiv@~;OsC6)2RoRfD48Z!PBSQkW z3uO9(terIA0L}n_vP8O)bFI@j zGpJB-0A~Ip`}KIo_jfSVyD_ozFz~GCj&!_;$*xb(FF4Hs0WUgYx8Mj|UYbU-4z^{I zWk;a{vhiPJyd15=T?^64$lNs8 z2@h=)^m>N0E_KGP$grwGz~wscQufI{52zBnIisC8ojjl=aAe2#pd%5=hh~*A2Z-Ze z5vI=#@ANssB$x#sjJ$J{6G}${#2*^1gVRP2TI?gcQGwfkiz>ygKiK~_iZAAU+SBn; z-_lP?d8}WLh1^d}Lmzkwd2sr-Xwpt#ug9RHwx!UbbOY-7Fn+$%__&S-z+MQr^U3H* zlL-w>bjIP$WHOEw2KKj>3iV(H2kdP`=Shzjh59cNv!g}m)gdtcaj@B9eN@$_O9_+(7Hs| z0^jZJ;jRVp@t-lzU!PDv`t!Fo=%wL^8p02Qe$X+s2qvI*$9L>zPP6F1s@QN=sN!Ky zT^$npjs|0&H9lB>ws-O%F5k5ahe8VRv?m?kciXko0tt=Nu?>xmSkR{*0!cgc;GnX| zmNcsp3+!%g>mrGEWd2MRu%$o9;_m-A$?vS6{;Nilnuz9%MZ+~3bV|C*t|l;V@12;_ z15($S@Mb1zk5)GX9m*emXIpS44ed)1Ug#urFenjN4;p>^VpUE@q}!Dh^M*>{TN*Eu z90A_F?uhVOWd{D0hs@&zm>alp2kpd+3in8Fi>vYYgi2uri?kmc+?(Rt_|G%JJ9r?l zimZswcE0N?p>Ilw_@f75G65JW-IY$CvTHR_g9A9Q$^l}JqAhDelWHw)nRPI420b2h zto(;T887r?-kpwQ>G&SC;U4Bp((@?=p+QghdmVHH-X<*$U;-IQWTn4o7rI?bivtgK z3H{JglZT=>wDggzhLh>G*6G15Jtvc4?M~;%=t=0(RmF%pw=~w3A##$ zTIJ7LHeuV-$!#Ry2o{~Ia<`unIuolPmzRHAS;l4ZVAq9Z##eYFZ3ciFb`t`oU0(t%ho8NPFuPg7Ne@gF7f8^&WUw{Y83j@#02 zE7+gq`6-d{)yMevO*tp_wT_>`q>7xrTQ&AxxLv0t^DyzyE?~MT@yq6V%T#M0Kqjb`Q2-rXWNr8&g45H_E$aRU(NJBB^YCVbPB_gxhrv4xDy# z2ZY9?;SPjdiml1snV^J|>GA~oT4V1RI!F*>|6|+5Rz}xb@Xp}%5MJvi#~=F`A*4bo zV=0+}zlLttnw46nP{+rKC$w#S_TjU0qj?)Y%VKP!nCk`l(10bLrx*JU{f$Izv}ILy zEr<_55Ve>R|5bO2oVbHUneTKb92 zhv_hQaBOM(5?~`O`wl))!T&>S9a@4Q)UZz7E+Fa3-(?>(e z?{J=R{Iqy?pAHMT==I0Bhc3r9cF;^uzUTXGN;S2ay7uIHpTOn9_*E!KKw)?+G9v!% zgVmkWdFFqZ03mTRYt!33;CoM$8yV#4-0U)xnw%VykTN`W);_L$Xpu0~L+@R=YocCM zJe0_%Ti1D>IsaIB3tiVUy{|?DCP6P?qDkWLx{g$pm;CuaX*weC^l>&b%uhTcv z=qdv-4{60-#~2Z`T1^>7@qnR>>UW<+$duE zQ1dT4?I(TIkD@DqE&+Zz`ZAp({1mzj{Hiahko>}5U8p(igmXr@9gL*4he9(rh>HHy zf75wgh+qZ9_%)x49%dLXGahf(s=U)9&0!a4k=1OU2>0k$f!mg(D7?j=g;e2F{cqP0 ze&b^fGo3T_LtA0I$FglaXI*cfrSSrfrxf_wXGswX7V1wk+n**eJ|5Z$g+jqt^_ZdQ zOVLBx;q7?+sUR)>Z4fIxCy#f~w{^{3P~%J&_LxbVgmfI`t|5<#t$Dt;5y^ zU{y;C;<*`I-PwuVt_)F3L5AESSBnU#yXbo4@xrQO*QSCCYMn^~!HGmi=**A%XjG_^ zGj>1zw~#M^+beXyonyma6Yg=C10OV%Scq4JgjjI==Q6nQ)Be^1hd$S|n`wd*zf%*D zL{`NHR$MI9eLSq)ZeU=bV|~W*gToZ31T*n1_Dc3OdT>>`gQpBJ!_d}9KQWD2hj)0p zU1wBKa7)tDL#^5Ai7}>iFQT5C*F)Fa%9iSO;Y2FWY5-Q3UGA!%gNIagqY!ZbZz4FN zft6qW@!01s4X8lg*2<*>XqrT^2DZVFJ64|N8<6UtV460PcgY$Ai|;)Ik8PT) zpku2wih&ilV;;nCTNBJKMg<|ap{2=L<1LGyv#S-zTC6DnTOYVj*NfSu=k%2KmC8H3 z;L;zf6YK3O5C!IE$T^G`2G(_pK-X6Yv0PF`)e~D{+iDW)&kUWIVwXglilDf50%9Hn zXp5QIuA7(EkC!dUZcoyQK_V_9##(bx4lIOAPo@B@%H6I^t}5%h7N4}1B$4*b?~VSb zP~|yD5ag0PPF3AOG%83aH9kvJ(z**yYl~=v+L0M*=oGNA4xIGw#nj3dX4ArrZRx@) z({Mbu*@No|i^zO0t9j^UHe~hp$9`@5ZLYT)O5!>8_*Ye?qe#+Zv)fqvbXqa=O3m}> zL5a)U&_~&IN!G5U?_3O5z2GBrbhFNw)3Py)U&}&T`6|9@({dyzzq-Te2zP1Fn=0)W zazJBj@br+7U4e(S+YQj6YF~X9aQb|*9XbB39bEL1(hA=ncF%D zhC6qflw|z$Yj@+PwBzIR_k!Z#X+VjjIGn*lFbR=Q@b(rQ&MXhStZRSQ+)#wCDH1e6 z7Ya(4cW8pgdR#U+?U>8-rbbX|hju{oz-rk%xIC+^JGNBC)rsbS4Lb|C3@HOUDxF!5 z)VTy=uE=lR*PK=jw5exrjLm4`O#C$SHvGCf*4x!9Md)ELXCzsOYa|JkMpm$OO2EES z{y#Lm-B{fko1S6(hje(&>cImmKRw>ZGi6ia3)`xbU#pbFM*Ri4(prxxyYae^7PeJd zJ>^Tds+iGbh>IDP{nQp@(bBtQ!LH{S4pPGbKeQ;xy$WRGr8Wm*crKoZRTjQ{i6|`3 zo(!H~(+3aUWi_9qxG^=MOz*Z>R`&Fjvr zpbc%ukm?Bx(1Fb`Uzs{yNE9ouIq^zKz=~lHq3pNos=~$^2MCJ!0D+ryBx}{s6X3IF z>bb*U#($Vj@b;$#s+#p2unT@&wlx0U8Wu@@@OFAo-u6UfV}1;*VPR1WtUzrZ$Y=u; zvMU!$;!8V|FGSAY3uJG4yDrgtk}y^`G_;xR!by5oCq{>;5b32O74|ZQ)R%_y#q_hr zyPXDMT^7>CTfM0XsK{nhrt5!vY$^s>Gy-$3R3ctJ{{+ zGvnbmCp&GoE1E^|C|fAWv6`R|((&EvNYt%S={g{H(!HS4bwKXV2OZxGB5tIj1_G)# z0UW}q1BISC&WQtdV+g>|{y^_^ylX}Y{CYDM?firoMfPjN(Zl0oJ6dpoR&lEnswYW+ z7IY*tR?N|@9VxV~{k_!r?q`S;Z&xa(t)vthjXt1u)6nZT9np)a+ZE{p&Ss$E;5&VC zLzf1?lujm0K7MuMmqp+=;dr}tIHTDx8)Br{&f91Q4vbT}VJu&nYqQrLr>F)2})k5HFm z4zM3)!oLFMK*z!bap6|u$cLw%f1No<$4A;@_onHSL65q-V<<^Gv_6uejGswN?YJ91 zOGk@?1BKRm_?X<`pfZ38Yy*(X`9tD`I*5j8PjS3mdQlH3n&e=jKI#*35xJ#h$)uq( zi9mGfLd_;Us}5MpX~su!{KwP1O?)bNy$C6%BiR2F(np-L%Gn9X>9#u9k~~!5oH2XY zhwO2lKx1YazwXiakDO`^GDG{g?j5mhKi;mplYSkIrL4Ypz=noq01E|aRd1Axr)=M+~{N%T&H|5iR!<6`c(fCJWHciupg9;>}0hb{N z)c3#0rIcaeu~K{?tnC1aTlu#Om0;)vcup*w#OQ^=MMr%iI5G+e+^;jbfg1v8XuvvH z1Kv&+(b$%(O9S<8PX-Go96;3?*ai^4T?y`qT*|Wu8!nOz8|(O$UCj`%xa9!#i2M#A z6rf z-7}at)6mZB^@@&QpL98B-D$-ap;vbsi&$1Ser38{*W_3gh~KVNxrj4t&!~KZ_Dt6_ zex2vpn_%grIHyrJ+sF5KJWG(I!U`RkLgi0CPDnzjCR`Nzur5!{sBMhvH zY?gy)FyaduRv5j{i|DyFcmo>AGLd8w^D?QVlIlvTa^NO6=}9h3-Yeb* zSq1~$GymjJscC&{ZAmr;JRID#;cv|@2Pos}q8E#de-XM5G5#SCkt3n^m|8COy`%?W z65OZ7s4(WyR(Xha;p5jA62xD%79@>ee5;-ORzSoljPem`*5k&a>v8Q`=ddcCfRmy$ z{_UxHfV0BfmU4X(1q=Axi8uy5o`%LsVF!%=9(fx2SXMjqIhg&k(My_8q%Qt^na~@O z%wa&l2~nXRA}rMwK2Uv=R!jXLR_!>e>f>jr3WF&Y=d~)PJ=3gus=1dsZ$b;RxY^c{ z23fgQvptnt@bR0Wt7X`NIvq(-l_M!y=y8i$)fWP_XK`EBBM`MNA9bodRc{BX>5ZgS zy{`J6wG_dqE<58VZRj35|8;dOST`^*F)9qx^3)M8#<4ko-RtDlWo6h-eD=f$^oSF`C&nANT9#ZU{g$RDNE z+C4CS&{{9*XIo3+1=MGIA!jv3d9bfN{jo?~$ivN1`|+=S7ISCv88{WwvwBJM2$IW(6yCMJ(P-aL^Ge;> zOHplDEOv`n`q$a?ZY71|U+U0D^7(8*DQ^l?i|DReKcJ~aT1#DeJ@~CW8#Aj4pV(ve zzl%}I{|slBJsAoIdDC5sP>1eBvga9U+o~_5zwbHQTm}OrJugmm$c)0DT*P}Ou0cI2V{wv-IDPQ29|@_X=a9C7=xq%C4s-pQssJ?#Z~*#FhvswK7SMaQKc6nr^r^+lBPHuRD(2sc>8+gS%V^V?JDz$hHLSJJoUrc-Xe z1pXnsUU4Z02&L$^y<GJgX6 zg`81dZr83Bi?8Gs`oX+qfsckh0dHp+-xfpTU(Xdo?A?C>@-y_tFvd5=>(FQT;n7&T zeM;ZE2f8GCTCesjzl~!XDDhE*MGlf1$g^B8Nqm`2=S2AQmkX7-HHO#eEpgvV215*( zQ+Fbx#y72Mk!8pDcMkamA<^6d3m^Zuvu6D2Ro(d4L03>;EYlMrg#iXMkW}RNbyB$R zM9YweRn_Yy-kW4@t0c8s=wUL|wz?eu(n8IB2>u;2n}c9PdWAgP^AXe9W4(=9J%m@L zd-i8F#_RCC!aW-8!@!S)r|AbX$uw>Ha=KyqG1NkX49bQYayZT~CDl}UY8da+q6tJP z744Y=Icb=itTm8#O-GqE&CpLW&{Fijar||x!5zQZ^l1$nATQZkPly~11g4i2OzV+a z3qnH5^Yzja>DQupDSzE@WE|gA7C2Bijs_zWml+h^)`@<6XD0B4#)E1RTB=$w)uT8^ z#;~<);~O{?TD=M%Ddp-}cn*}TUx2zS+cIjMNMZy@vp|a`F#EXeS;qHRxE+ttdUrH>?22URI(*^E3(k$b< zS$cS0;KQMp9N*pdFxEh?;4dF%-{JWqT4Sn)2l|j+FTTpO8!~x^t!4r&i<=R4`Bq3) zT9uMtI^I^b7;ua3uFN(XqkWX5i37cWGvfxGT4C6tAtN8!s?4~;E_e6w!#7Sm0& zC>EM+)K%1uI+w2akJ2__R4q)(C7$@eVK}$wn0L`&B9=DT@lE-6pK( zM5g@Pj=o%t9{MHCEe7f4Ph1aPipbcG?~X`+wMN`=M9%U3A>G7G;yK`O3q1{j33GkD zaL;|MGj^D7c!01$HhRnwtKqFc@_HGNt;-BaQQlgW#tslS;N(0a+KIOlYvnOQgf!Pb zN_<~+e1GQCk9%4lAv$?8q#Y-m_1`1o8#47H#_GZGU8vQO*ly?!WW#mxBfEN953dJk zU&(ey9tKn-8!@$Zu71%)-)tc^X6_oszXr^*lH*X{3V zNx1~Qw3?dw@c`8Vj&IBAGoEe=Yr@lsmd<>5h7VTimONn;Nah8`H+`B=uVS$3Y~bze z8yNq-DCmyU0^{DUSLpZ%=+@SbexXBe2AFGlikCY;JHAQ$v!Y7s*L~v~x>oMHWycoH zsz$$j}1*?TwTU@An)IE#--_R;Ars&J@yPg*PvW^(j^yt~*dD%PEtDz6| z>dTQfVT%L$Wo>0!vtH zjbGK;shI|;3eZS*bet`p(}6XCXO3T;el4q(eh;B2Er_LR3%$%u!0BLoQ`yQu?V8#t zf@5zn2x*cqG%&05s>;mrccEHj5BgE7+7XsFM&>ZU@R-n(ou<`nX{)(^0C$7LXfb=s zrdRXK0i1Gq>1;#;_vnqpCK>d)UKzIW?RIf7A(k5g^3`L@jHD!IY)ynyH4tig%t#6Ha*nigk>BV^>IcAV6aHI=T@(r#|zn0`z z$&=Rrvjkle5qAI)uee@V^j@p#KJ2bOOj{x@8O*YZ;8X*N0>;{m1em0796ytLvCbsxpQEM ztJSn{i)QY3%JgvF0A5W{_fB~;siM1s`hI-(i*o6@J+<->&EvUxT&>n=;ki4OU7h0y zg7%JCFHdiBRsO0cE)w`pF+;K}bb!wrSU4*M-|8x^@Br0S^(#Jbhvk@6ojm`nED-W20I0%O=(;-BhJe)(@rDa^d_8 zqNU!knZtm&L5WMPncI3{X`~Ze%U!{;X}# zV-c#3r3Hmo-T?DQ^!C=cn$ggkHBk>L&!PSbzJ+F46l2y$N-f)a%J(X0l?tb>pni+= zuvc&2Gl!`vXO~UtH;@d12ucSHzffzN($mgTF9r&73)NgvzGbT~bh!$-yVd+>Dvm8k zaTnzq*=?+4wFqu5W|>;;)qCko?=_WSzF-HjLE3E|yKQYacGK*%n(mTfE?F&s27^)dq`1MkYN3+*mg)<6&1y{#6Y9(%=8g8#o?O8N2NPC&iHC_me#PfCycpBVYYr&Z@*jV zxsuWbqd=uq624FjQ|wBExJU7I)29`!dQUli4Ns=;AyRh95O`}2z!AU@8_OvpI7sq{ z&8y@OI*_#-FuqN+?k@c27^ZM=e3qU!$ziet3zXDyL1uJQdZ54>UecPvun`pOv)CXjuhn3=Oq4c2CLZO)GHOPJhlVKvwJl~-$kK3N+CXq7 zUoTvCoDrdCNtDQum+7&w)m+gQA8Ei?3;v5iE$lsYXb+T*lUmyJ{3yZRuF+9TQyi&5 z?2_w_mfT{DNYX{hgpQCqni%gJQtUbH78G>*-%o5Qy5y0oI8dHonaO4n`hP=|@Q|p1 zksN@C+;7X^)E}6bG0tMhG6%ZEwC;N$pQqR22jF@kWQ^d6b|(o3Q%g3Euti~?XuPM^ zU~IsXh3!H1EPe<**WPT4CN0pnf`yL6Qi5)T7us1B3vdHykJvhb`Js3-bJ-*3DwrIM8@I zS4W7tXk0Z4YgpGUQQLG3j?CS;G<&u{?7{#>J5SUgWQ8FjM`)}tE6fd}>l5DE0VpH7 z1(LH9eqoa&E&EG2#%|)^LDDghaNb+Wp$mjFW`P#p3~yQJ(#AjY#a(}eQ%-LNFit0k z^!xNPnqwiLpRmCQGwr#(@6wOvYIVKLGqUZ%Ld~kXyFnh5v&SlDI0~LKtw$Oyx23ytRVq$|)(g>DmjdnguJJ?pI{PgtJtz`Vm z^Rer%tO>REBT4o=3D#Tdwz6q^K`uyW9NCpNi z-$IRG827!46y?`<3#HF(J{}3BTIG}Od4aOl>aZ*xd0|*?JRdQr`oN|p{xo%_Nb3C0 zJekds*jSOzq_@OwiU1Vb&Ie)xv{EvJNZ48QykaWcU3iRiR3lqDXn24P#;FH*s5^J9 z>{+3spw=hOUrHJUDE%zG$}PBeu$eHvNt$IbzS&7SYJtNf271O}Kqhq_ZDSdkvP=Co z^Fq~4e^XI$q(vg!g>=emK^}K>3LxT z8uQ^gGDb;I&?oJmYeY$Jok*&^c>^&yOL~GZz$|=2_2)AUov1+(G@S9+b)GF5Bivdf z3H-lX-}>A0rkj#qa$KjE7+?C0-STS-H~rxA=C@PBA$Jq}^v<9K$C2p`4_TU`o7yxs zZELrowizT1_t-~~B&{*G104-)-2t(oy4l;XC&7)GbKg^RH9Tjk9dmu?6HKsqiZ3=v zX6wvs`$*b?WVpdcMeTCnCGAadhBS2S93g+2NrfL_mL8tYe8^M20c8t|)Nl5_@9)|! z+uf~E>svK?5Ir(8@HT~}<;F`OG~2IQ{IY(W|3` zaf*Jr9=Vy?4kzoUA4A-1FeWp}k%}&Ho~9h%rr63CEfz7=SS^IE&;+&(dM|yNhH$-b ze^r^@{KD?-#63hX%si#^Sx1pLpd*~8aMU1C(jk!Gx~j5HhjQ)O1b#w*BSbfgVdD>V zl5G!^4PE`7R+=&fpr!K;r~D=ISF=#Z+46+(%{tkP6Ws*EwmaekXJN`|b(BpPCTJK= z+M@9{I|@Eai>G&bbczGX*7_pEUzqWIBDYNdMKCMz*9++mB_qMrNRoObmW6?v>Z78| zUE6J}muh?$*7PXfV6$}dprBv>RilRus`3sSdsGux!T8SXcM1n_(Q)ou->anlOh)mw z!KfI&l1w+o^+JsXR@igMgn4F5!LK-3#y5hzKD%DJz|~QvCJ2d%i_DB1v8NnihebT@2~&}fct!f#FaC4l|zh3TU|5lzqzg>}nmNnuT>J*(l@nXZ@At-3Ae_$R{k zLWwn6XKN9*_MWtrYh~65KP9{IFTOWg=(#59xNX5P<%&hySf#lq7Fo^kc-P})%Jm{Q zh-M!t$FF>mDn^E-3sdGjdY8Zx29VTmgO(x@#y^A!duni|wBs8gU{+WsavqqR9W8sH z2Hpxh{vhg3T&f?bLind7qfa81vs zhhbjNzl*-58*r^l-1<7kzqQIz_RD_XJ3`wxz0xRc;eaNHXN4gi`$UMy**nXuA={Mt z4Kk%TD)gMU%OX7(iUJ<$v!v;XCu}gP*r8i%ZqcbRIuA<1z#-S`+((7)7xnmN>EsEb zyy2EwlX6GINXcFPHUdTB*!6kC7pQmMm+`MrVJ13i;PDn-`HiU2zRYFE_;t~By_hG{ z%6MqN+0{S{z)bUUo8BwX1Ty4kx-bBnN6$>0`Qx+{ECFtj3i+URora%)SEfR1bnIiq zZkgrl4W#n6v1Ey!SwAoNA-oRT)+hNHRH*`g4YGubTNz)f{i_}j65HFE=$ z+s?Pd#-0e6aK}6kP-xa7g9pe2%dzPV)4j}87Z}hKh9U#1jc+Q7Txg2?x9RQLlmrKn zVL7|;t+2)&o2!w+O!wUCLWogmWd+2?vj$riV^ z*nf)YTNa?Fal*T2d>v3;WN>-CYezsVW|Ec~IL^e$k@@bcI*(vB1n%g)F+z_~ zbi`ZC_J@^+$j6NL-K}C_l z6zfP1kQEt7EXVeMg(j#4>1rS{cc^QyPI7#YB62e1y0RlZ-=v`nbH$P*!4wW4CQkrW z4J?aKxbLOthKZyOpJh;ZxfX!~)2x;<+HF^8hJM+VIE>`=vZydK?9d6%j6N!mNIPSp zA;}Ow3-mT4n+1Vmbcr#3rIPh}akfZd`9n|$bIj&!J!67zSEpBpug zI7KWCwg*PjDFT>kVOEx~yvW<>ApM9vh8pCvSfFQz@%%*FooBPn%9#&Xj%T- z#VrTqj)`93wN@S^$KNxpbZRC>&uFd}h7IPPSj66sc)VTITNT>Kg&N>upwuOTX^<2% z<$jg}M$0mF9FWX%fMj57r9#QDL*K}(9p;xj^s)vn0+_-9#GZq-lMI5y&^3Os0sJg- za%#sl|EhqkhIYug(MTN!NE*Rsk{(eO+CFhL!8()RWujyhWPujAw`w-b`U>emZ^xNz zlCqafgy}~CW-Vd10g7&}7kOQ&^`K(YEC#FEs-H1F&tOI^u9w7y9x_SS?+8Ed@yzoh zMdHw-g)wuORqFrx(z4|g4W<^J=V@`XgbegMNjmJ!cBULSJcP!OozWA@Df-B1Pr1+Q zrO*VZy6hHvxq?IuI2tg9rN);0~=nI6_AeVfRCk#;@n1*GthQtfUFd>qR6{uz*nn;r7rc%sCk?BZ^3lZ#vASZ98U9 znK3H1@-$Qn1Iyx>-!4)-LS39tnj8-nqm%=S^G~J*ja3-tfpP<&;9q#Dk8h>(dZ{M6 z&2pJUM2@Lh_sA0ZIxAZ6No)ZBv7kuW9&A1vk5nBj_Chb$$jWv^xkd?`O@=I^6*$HL zuuo$6i^4RE=|uQQZ?p7~ey{gN=r2%h7<}0~?*Jjb%@# z)g^J*$Rsa$Tev0JDI!pw`Ck7eH9JeodF&yO`~tn7I82QI`ptgglnsRLd?OesZK7;z z^Z{&G^*u+8p0eX`oHe}sg)Dn?z|0xv2}wSbrB*$F3e2oA)+D}nC+>o5WxF^XwzZB&wIomGv%g_x4>m7yU=$iVG99?wy}yq zYM%@dfVrBPwf23x>7QtP+k)etgx8C7sV-M0{T3uWV+#Ts&{V4`=D-U(MgWBg zEF4M3`j!weDKJ@?HNdxKdOe)sq+;D_l%sEp%W(`ATI&uV6Am1GOQ3J>=H5MU>^g?; zTB(onn!KvFPAU(H<)n-M0x}C8IeG8^Axu0_!y|f2Vm)Q~Pz*WUg2JpYw`J&~S{E~H z`7N`J)-5{+Es{OLL7hHReXo5cWH>S~Dxffs^xjOc9w{RSP^KvyJc?l5s^{E(ho#R< ze3GK_+N<_{yvW08IKC0A`|;_JGEh)UcH0RZ6q;GWYy%YaBpHu_jWuD>p{g*qrME?{ z7qk@sZpK56o}Y++x+Z(})^W$`60R4W+eHgrWFQ<5@>)%e zq>s;1FHp@?y|-^o-@9k>9T}*>7mPoO-ntjc!E-mjMS~F&i}eejtg*7L1Nk&>MNFtV zSay!KKz@tHMfhTw$L>tr0obfk_z?NKh-Zf7l-qjGfx!@6?{6{wHEhvQ(a9E)rv50{ z^hWC!*h0ST*5~Ew;aU0P&~LYvnG@k`{Vlv@k?$-Z9p4xEcO*=Ar@f=scXpAQK~75v zZk-+q<(oRRx?WyLdN%elJts$6r)^)7VyhYCdr7rmV1sEEb8l`53j)h{nk~9n3>meC z&jV1zh@J2whUc;#`Id#e6&>FS4bEm~BSCj&WJxae*jVBLjsh=eF~5*x&$pcv)NC_g zU||X{ld~$EAklY)%iU5uf&R5mGMtSz8W=}q|&70?AQi7+-_JW z*R?6}I{u^LI!2#0xsl8vibuf) zA2SLPY~8IJtW{a%_=dz2aIz1Ytx*EgQ=aXvWBvl|#ANzRfSn{hM5FQz@XGXH)JmpB z@#Wu`|^(DBK~%mnlxki>rnQlT})zI|c-9Kyz)A5D@R ze?znf&M1lAx@ShsAt!~$p9=ch@PCIsg5>y@$81Qb=<=r?bnn8$>aR3HKo6#k;UWU5@n^ijBeOahAVOcHRQE}*+o_W0x zsM%nQu)$(A19I9$J_#Mx3(yN?&5twUvvd$=!D`;RTBOyC@%>nh{;Hx@k8FGo(@*L> z$Ud`Jzhn}u(#k+5xwUx^J9d5+n_=BKzKbTpnFD=;QSXV0##hRgG}y zTccEXh}`4sG7C&t3#x_Je4HNE8NdWKJSpq}9$COg?yXb3URZ2nZecF$M>4ylp4PAWC-tMPmv?_;)_Y6z6cH#>PkDkx;!jDxEYb}Y$-Ctlj$MX!0QUGg z8{k9MQh32<(p#r;y?omAV<5HTo9!wealNZwm)Fa;T@3F)qLTF5PweB|z(D~_^r$x# zwF4fDc6ui*-P{!6rn;Ls$hC^F%%q@eeLq@SA0Px2qsM)*b(W)cwQoJ=@!0rPS6h#8 z)8|7y@qG&V;*Axi-wG%bk8xPYDhQ_9Qdg~^ocBEz+ z3`}pA2v&Lr6imJJW6TslZQ5wUUeIz_9t~S?6SoIIUuagsoMCQD8_caa4vUO|GIq&k zOsd^3S2M8ih4#1IP2+I_8NLj=8Q&9&_f}a@dr3WiL1VEU2^Sd6l3id7kQpdBz6rN> z?%hYpE)jb43R?UC)+=lxi5zegIEHQEz*52i1vOpXxsI~yB|VsMYq68u*nwZ$FAM9W zJU+q}V}yfEQti5D40p1RAmY4jRlB%{V9%c`kFVf+k>t8f*?h_j@w3nezHeKq_mC!f zYQPap;q{`j81$vHQ<%cQk|d=!Q#N{bN4*p|CHqi}g_`9z4%NJMwYax#=)<;W?*b!n zW>AC=sE}uiCu1KmC$$I5>G4=nPr-sA*uJf0G)W{2v`|cX}x>Csv&!_@i&c~*iwVIOsnw9q!heLc~f$4$p%=?;WtF0HLbhLKn)D1gP3M9 z*9&`GCVm#lcpzyo&LBY>J7xs`E!>aqEke9g(mzY5+LS0+*ekBsy(?_zu- zpr;IjRhR+EIxpFq(6c2Ery{>#Il*E4liC9M>P5wbrQeL7(A&8<10}C7QG=b0g{H`l zqPMQ-5#tHtZB>RP{W@hcH*g>vpg9Cv%>;7mJr=gNCO_O2?AfqHNz(v{!_2Upx<+p~ z=V*aaZ$K3j*b~P3oFrnD@uyb8#Y#hMPRkT|1`y-OnZ)`fK5`IaI-ltJ9U?LIkIF6F? zH~;ob4GyaeNBF`*A%7`WX79&81)?@ujYDeQ<8I>MILrVO$9E3?-|MFzXizeAr%Bw@ zrj@nRk7j~#DOGp$Vrt|Ok>5rDCpJ_yFtLjf|53N zEC)$H2os}|9KZy&h~Q^2uMJiEUy6)>Ei?m{4E+Fq7nT}^1-{6zE0l@J1;zT?NKZlrF9;& z`mu|zEt`cW@s}y9uUaktboKVbDdU@cQ1RxAT`#%>wLWC9A*o$2fh^i^=w>lwDS^cu z89(&!6W1B6yFq5e0`rL0Q+9N_@P5hYykZMRj1Tx8rytx;vD=gbf@h`+YxQYmc0n^Sn$vO>7_xP-q%xFj)CiH+TM$pEGDhd_(MeiWH|j zP=n0|^M_*NkEXZoUbi+HoXyV0vV(IWIEbHcd0eXB?EY5+u6^}d2 z)r^_FcK&p;irq`<>t8j4ruurkFwY{BB5qK`9)%GLTbYt@16l1@dT@N3b!#81w{B6T z*%$8`R-G-*J$39(bW1aQNcqYlsU$NP6`eI$FPsF)bU#(tBWJGZ<(kx>mSKDoMui?oL|tv!GbK# zSCUvx=nGM$#VmFL=76bCCO6PnBDIWj`a{zf5Z|5{`#~5P^`W!I9H@$SfIl#4VHwjdWn& zDh%@^X$jUz+N2~np!B`_E+l%NZ%rW2uv5U?A)ne(ci4hI(lNmM4lwI3ezB~*Wue}i z3i_cU^k*{*S=Rp@#cJ1QO!l5E??F_EGL9RJ#2vW*4E!y6NfU%H2)7_SD1GmKnv8$> zaFXO8ds?l_osjyoLYJsUEdzZu9veCZ?nR{pk?LKW%}G1}FZNS{UEgpnuG2)!(UY`21O72ZiA?6G{=$&0=iT+fj@WNVd>` z7ts>^ENC9;_*VUa)vi5;W%=*3v`}kq3iHD+;em-9Y-5Y%SaCJ9WX+!PS$Y1P5~ft0KXRePgwc^t3f{tuFUG-$+j#F=ECs}S+QJe8+CieckR+D zF8#BVztQ>FH3uNrx58N3JV?3Vo3?pEcgS=9*abl^V!PBMyc9i&UXC!Bc-RG|D<~B zxZ2@7U^63P1J!ERr|gVrHkKNBeAnGz?PZ^R(owq8EM;sjdxm`U{-v!Y{rk*YcT<=r zL;T@L6YOeuRg7N~D~D}c$afZzLA&}BdJMS5@wekY>d0&Axe>IGoBB%wnJERIvc0I1 ze!0MoraY29EFDO=vcfn|fz zft!szvhm-Nv3Y1gWPD#*FiY3TT0NZqSUp7h!Sv;9x<)^w{Dd7bGo#%Vj&I1C;oxRV z)~mW=2vOw#uGkjU#=p~@t;KYlFfLTLvX=F)XV;zEhrQp|=RRF7^lmlxdcDYQq-x0Y zNTsL;cp+)FkA)sqMI*Xd^f^R+XI(A-*VJ2gQ;mOlGB|$C9;1AfKd{_;=iF*y(;HPo;P|Kx>Lz(97=m5jh|DO@oRN zyI!;}eqe^d7zeln;We>eUkV?>8s{T&pCA}1T~jlZ%xi}SLx&SJ^vY|KyuiyR=8 zKfu>PTJvl3cIi$Ej1hMWHB0v>)vnAgtD}tz62;IGf_fWS%4izO3N_~j5DPllfn=OH@p(hyw|f`FARy+F~3uF zDs6upC@sejz!#a{WE(m#oL!M`Y|oYRC2<7HJMX(NyyNHxOT}UReD1K9Knd}AaoXjY9^L@ zLIO2^y&P#;PYpch`KM)RsamL(0cD=ZQ zfE1S1&3}qY{+x(>;K=BL{3%3$p{G3AJ)DVyw+bVi24ZQkHsDAtG3;&SgtvCEUV(La z8%$L1&2&?SYC6-Vdf3btY;cs@Ov$bnr8RJ#ii(D;Zvf zBs~UPtVc&4v9rRw#^^m9$;KDXqvQ^!Vg9`zTXp?qtt`Xx{Q2DzXm`va{?mvG*_$$W zi$wf|O~hmAfGQ|brg9hGX{sdVE9Jmpf?xvT7c8T&a*Ek69VPLfhB?3$&|!(a}?fgz@wI0 z*{1oei2UYTk+HP-TM63E4yZXx8A>2EN5NI}mJ8ZW+CD5NpcYG$E$Z$U5W>e33MaBWFqwY0mscr9DwPj06vqJ!Xb2DW|T6utl&&xJ^5G5W8RI zN7G|;*4fyByV;B&zn`UU&mz~$npP*z?~!o55TqMDho$is^pZxZxXQFijn?Z|m0e}T z{1nM@mN-DRFO^2*df}cSTgXEsoxg>GBVee$4hfDL zbdhny%#8Ez>QDw6T23CLUc)!NX(-uK0}c-XmTGTHlGqcaHiE~{S^gb@R`Bdrq*nE) zu3{wK=iy&uxX9l=;-9r0H32*P#JJ0)a2?2o}ti>{1k29)%IZPq{P;4)HVkTl*p zHo3t3@-`wSq%u=89H`0%wI=LFPuQa;lJcYIZx{O=*#XW-Ji<=aNINoNj|$&JcHma7 z)W+sLp0&6|Qa%M;3-ZEY>wJr=_n4YitISq*mR9nwIo{M#*#}5_IH4h<_VXdSN*fNg zdLlVv9EkEH6UQCK14gn}-mhNaOo@^51-XlwqR78FK4k&XN1EDVw@9YZG)G3$Svnz9Tgse+V#>#JT;go4}sHC_DDHU z(AV?gB8GH%>QkwgT0evrO{{6ad z?Ge}0t-mRBX?NS%?9l^pX=OWMB4o{jlt_hH zYTaed(oNI1mbS{z37g7$60V$J+6^9xV8|ss(w$siPV%&~hg70$d&x0i$uqw%5Xz}T z4$@*nIT=4vrj}6J4!xv7V$?KYT}^ZW_$WpN*rK;saDb`gam*#ZvO5cu)DmA(SIZ2~ zvIG9$!nB!kjjPHh7g_|^gKLG_!qCZQJ4?M<_~X!eScIxt47b?0{S{iHKp^Y!*%P48Kpf*l}A{O>G0Ck7b2EO7WbP)r_uhwyO zq}*Z5#BNB5*mHnan97r#Ac0mLZp214R4P2y0eO+}xM+W!FI|$sig3tR4yB_-(lZ)c z(pPbXo^hmnrB0T2Nae5D2)juO2m*aM_#ARAJq$v>xNJQPge=<5n(r972& zCpcy-*q2uB$MY*S(;-1pj=)mIOw>95DHe?7bfl(F&s0oUbO(!`aSC`UWe*%t5)6GX zs{RljCcc-^YJRV#e2BD6OUh3|=I<~P#(*DzrUq&Q#b^Q)Mryzj=HD@MW=xd(We(E0 z94u>=%)Hg{2orFR&GJVZ)xmz{AfS_X@^;{ zw<@>bKeRJi%x^qNe#fhstEzHJ@`Wg==w<2{Wqyt=<(-K6FY_BJCfLaQ+h(EYH)=0q zdI&!*;y#%7ah^Ym`CB47%#5SbBSw}aDcyl0?#6iFW9o4gb{Iv|5mq?Us)(Z}%x@*% z9UKW|J=Y7hBV+<~GxXJK>v1R(>x(pY51sUeFUy)}ztLssso0|k*xovaEPdFQ=Eo9L5XZAT zc`G`9qnf3h^-)d$P_mfyrG?A~j~%{3C|l*q2|NY0U=-JjPzPvA%T&_Cage3ur}UIT z_7In-v5|nMv>abiz@H(ro@^d6_T`d;mjyDv7G{|wjRzSTyHV2JV4LoH@EoQoth@sV z4kG*0@DL$B8R%f*$M5o=`})g>x%S(eS@U}<<-hex1N$d}?o@gZ9b5Nk0#v!@c-wKL z!)ou)*~s-z3Stir@%c=jnKXgFDH-%ccE!Md&k{xV;6x;YLT?VPy3x&VP?gz(qLw`* zwIp}QS|~rlSvV%;G(@%euXPhf>C&+#5{C1i5}AXp6_K8v*Re|-46yXzl!^(WcD2Z( zyW!}0#i~k05BD;jiipQOcTS-1Tt6;se58Gyv4@``bjjE>gIVNySr0^oE;z&o80R

    -4l&lqagRhlyz2 zH%V25a=WN1>9c88xt4u78EO=;(|v@zsG_s(x#|3mb^d*G_tR8=+k88uv~dyBY^B}& zEljYT-Ptzj1F`*sY0hr@`quYcrs0A1xQP4EyzS(?wN7el@ZToHmF}TGl;Z|c&z^p( z@=lz>R91P2`ghYG%{igkW90cg-t}BB+jFfW(X71|^!nSQ6ziOSUpc=wqo?ufIy^1T zqGhL3bDxB~unX{0mO7iYb8$dVa2(vjbq|sq|EQWeZ@)YOE#jJeZcwdq`06tt-2yYh^u~U={=S z&w;;Q)aWgz$6DsxE)|4)1wLK*x&^x!hlglbw$WzXE%T(hUUu`hTuU7zL~sgIStSpr zGEMib1dcJkEByTKn(|HpT({smL-%i2swN7S-Ei)}vEGDoJ@w;|>skfqFV`IHpW9jU z`%Ot#{h#~+x&B1xzBVPgYh<}zL?(<(IfL4!a={B(KN<7yf!=y0z5Wsup`-g1E!yz> zO??lJlY&>%l|~qiq#`2|PJ#fhz_x>2uChrS85{>ZTaoc0!m4I-Mj$Cyc+*g;&nMqV zK^_rX?+`|L=GHp()t0YY(i??P4+z`F(-01$Scc5PrNkNf9@ysJ|3thyySX^!%~P|8 zxgD_cn{@p2Y%2?3ns(MX$lqOLG%GdtgCUhS6+KS)!FupuDUT%%Kr#MMgl>#RY@PCE zM02tBE9mpveNVjUaINB@R!l=JM|Ue6Npi%ObbD#+0q6)kt|?i6vfzfaQlsva6Xa(8 zQD?%5o}*qb(xt0-*r|X6)%_57rpCa9^4%tK`*JA+1Xetre4OTE8otoyhXBA z_;yjRY^zU7MVk=1q}3Md=q-IK$Cw>P*%JDn%km`j)yxkWN8tSKj&*{d`*2z(7^T7~ zA7XH$7nQWz_08`>*+1|50&IF7sHEJ$YTp8eoF$Dy zS#Lj0eHdyT&I-Su*x6fzAacDhV`qd}VX%s=Qt9!whcZ!&j#GRZVx=+nJ>7WMH~&)b z*Jog(Pq~E!8*6BN-+@{lqgg4roWe3K0kdhVrfz;`*#>b8Mo|edd8ob43MKn`kU?2E z!#0Sckqian9-QDzkSDwv`~?B6h`k>bMyWIVG@dJsspes^(fx?Z!}|03dpiIAgBfGM zLOJQRDxZPjVm6BERntV@VN*SeNCrXVne2PW;M8iLT)kT!Fdl61Rw_Q1s{WSxkg1=o zRZ}X?m8PEW7}wDMH{_=!B8QO_wD^jdc^CcIob!3`j;zu_phwmW)6MvJHmx4JaaHuI z5#7b;LMTk-A_q8Ib;S|Y{z=eR;Om~Vb|eBF!3$Xas_07-%VU&XN{dD4Rrceehn2du zXVAz0?L^r)t?I{(tz3D(E_Bb*T36BvBNe5qQSRvUgPW(7jm>*ZQqU%S$^??VR`tKh z*0+*2@>!l$^m=GpA$FH}bXB5W2e%zI-j>sF+tIJ*@8PyEx7BU=FDvvDi`L_>m;Sc$ z5Le@mEUs2rMIXqwz3yM?Jv61==C*R5E^pl26gSlmx_{y;O)LMdPMiI(J&|qo<7Lmy z$Mv4tx(l|wqu-pTblLkkJ*K;!RxY1ywyRU`#XeuIJ>Cqhv>V;is)uz^cY)S%Tlo*F zbW{C<#bX^$>msg;X;_uSR-Ky0@96|9AL925_e?&MV}Hxem8bWkGFkWnav;`EM+X=F_#=8#{t%`-qK|9 z^OHCOg*N)aWGE*CLi(>jsEr>r?u4_~YJOMrYS)XGsp_%0vc3n?%G7jgdcW4nb5$mX z_VhRWXt*(RxKTL20de9uf@8|xfvR0E&D@9DLl29d+4KWwalIC{9`y2VeUZ3yDuSHx z)_Yi0`ud_3O{=vHc@!RU4;#}PNPUq|t!?i0QaKIrUh}RevOfuW@oJR>Oeca3tBjKJ z=K)`aQtgp~{;Fm&%}Cd$ZgAsS{)(Vhg-ETJ4aZo*$sh1kaf_v8O|;jGt-CsyIx9*L zOY|g6bbepYzFvYOqh{AhLimh|RxMXUIF#qEAwfOL&UIAwu6HhSr@_=Rd`dOb>cltM>bCcT@F3 zW{TH{1vXgT_|uSN&xq6@uqQhWih#aar61KAvUQRMnY~SU5if(%VmZOyBjb8;#QWwr zY}0a8PCVi{4Ed&cm>7HTHjzDQ;V?2R=hEvdLN9h3datIk!*H&}{Qj{8Eht!?M*Vt4 z=Nta6dY(o4iVO;EJD4bOG6l=2 zL(T(eIU2*z41x)mcY&{K&_+c_cXPbtx@aMPeWPMvQLn?2qcNdc*u$c?^0~mn5Ijo{ zvEXGmmpo82h7wu?^tZH5nfQ*N7T8(Uv)pAh59WFG%mezTL(hwU<|3o{wUpp-}Pdo_*9lP!2RCyab7Qab!vfZ=bnH8 z<^J>t909$sOt8)9e~MJxIRrx}&0@&lNe(uMe0?rqOoSm&&To>&Dhs|+yIy3v!;~W| zlA7r?)+Shv4n0O=)Cr||2;ERfia@u#9#4a%Mc7;A^`au*lH3+|5v&PnE%nx3X{c4p zM@w0!GQX?co^PNFztX4H);a{fLrSIP(gvFYUDZn)kct-4;M{7ib7 z|EeZ8h8n~=qkWI=q#agA^vlFrTrZ2bW~S-C%{1pfO)UJDftsTKiIV2`wTE^2o#pSt z%Nxw>vgIF3i^uEhS1J1WoZl-Suaxc*Cw*(^(`y~v=$}ZE*Rx^mwqI5GC%OA5@n8jDDnpe?wi}(K4LoJ& z2A38w5A6HG2P$PhVP{pcb;U-$g5+xoQR|u$gbZF5RX_KZ3VGJgZ|5bLFq*<0HPa!( zW4vMDoGd~6hA{@3yoV^sw_CzIfhjzcW^wPx9ZV(tP@)Hpu)|4&Uc-^evjwq=2~D%m zbi&2y>4g;DR?1(%>$}5?m`4_xPO$j=w&m#(1?|zIXM&S~+ImQnO15s19$1H+^^5H7qW`bLznOPi(cT(%c>N^? zt0UKozqf2(7ctweWIOC_)cSgnk^296pcXh!5ZyiJ_iEP*Te2%e&5WOAtdbthNWjT4 zzF6Or)iw?O^B7Hl){~Kg4!T3qLnI6wbkA9YPbJz{MwY_Hm72wSOyc?pxfFYFpBFFS z4}GdmJiIL=!wsSia&)5R-SHEcm{N?oK8`FmhWcu| za}SH8D!0s|dnTjrn)a~LYC^qZuU~dxZOhVpm39kmE5@T3dxeK+SIQ6Yuj?t*w|F{y z62u$4qRKRUSLAk(6MdtzfFAS4Zlo}jnVO;44?Pn7FgPOJZM>Ef7z%Ln8<6a+BX|mG zC%UAOEKz8~$N~At+z$*7Q=xq60m7n-^swl7Qmq%~=SVH2k^y7EFJ9;!Pi5K0shkQ* zg5%gh5Q!LI^qHRSQ7s=Oi*f2l!Ky)}U%L2nRCd`ZRC(r(f4pxk^;E(GN54i3{g`-a zukWYr$zzEgmiK|C0G%~vH^u~dfdXBgO7~oz(S1*x-x^0xbDFuWK4k{6JNVnOhqRsc zytnL%+ky56_EO1h_+77JRTSsmCQ*jmd9rbY`iP{Jer2&$J*IUbPG`I^hB#fJ_a+C| z5N~JEgR64O`|Z45;zp)nqd%HS5}cACk?EqT#cE~4MRcc8--=S+e!1_Q+Nve_msnGE z{o-7!^htE!r(xJ6i_IH=H-Bwba#qH-U!&uDGaGxOB!lAT0 zMptm2zVPo=mi+S={!)&q?7p17oDBW&$_dH|e2JYOD98D&VNYEhWd0vYY7-opfBWS#8QdygF)dX& zy-<6>TyOx6Q1S?VeiycEe|M}!WjVP=&MaX&OPM&#l3y_n1&&&0y~1D>BF3I~BKEva zYmCTe(qm=6Sm-f{e>QEBA)N&ktUTH{1iV3oP z5t-kHBE6wNF9{})*ho3TC}=FveSm) ziDX@7;Spsd4}Pc&i}>;B81alp8}FpT*xTBduGS+fI8oz|fmk{?jebbt!)aI-_iniG z)(Ni{kx2h-*zyF-v!oF`$?GqnGMIG_#(hMQei&p7(|#mcPdVs@QCF-D3@7j4{H41a z-bH5*eYG@*3|<+-vd+T@(;{Bi<$>|z;nCmH3fhbwbHpDu>qJY;Z?JariLDBQAmjPb zZ~`yH4E>-kX=$hYDlSh6+u+kklGn@i5?Hg1gYB&N5HKby8}j;a`LoTBDO)4{3Ss^& z>)*;3Me{S;LnL$qCGxT_w_!PUkSfis94sSAnp>dqBV?R9TjH#fEe4YHYBQ%OCglo_ z!x#Ywo}`STWM{odWIT!?_OM7WkCdgw7@y;MQJ4UWJrxJhvbMNgiySkY3J*>}cS~E% z^S7wpgAzl=_|NxYr6#P4G_I;2(fW1J*7J{RTKj0ir_1MBo4$EjmB}xb)#wc(R$N_o z_4#@1!Tm7G(pBlpPEV%}UJ_P_Xk#Uq&~%dhthR(+0cjdk*PzH8R??Wtpz;vj-b-)K zYC$<+6`ixUCuo*!IMe};N$gp6gYfeypO2#y|9I*T2WxQ)d&f=L@QJXJNnwpyEIcx7 zYB%G8+8w%&ua9=76aQ@Ay6;(@p)%AxI{S$cFjl5Tj`qYZJu-2AH?n11T`yFLE#k2b zCgoYamnqK~6noi%=PHm7ITl}}-|F)DN2}T~ep=t6t*^gvw=SM}S{I-3^HOZ3Y~VD+ zR$ec)_*cL$Z>zQreWO|HHd1-LG;>YcR^K97Il!k@b$#`qRkgaK;)79oGaDwgT$*SS zWGqaz!Pj;2bAqO;p^%(qISnyasmxDDKC#Hi#`PXNV-(sKN$V=jy`-#i?n$UE`%!8= zd?hEjeG<>qAqng((+h%ibb2L4B%++t&-HPxhLc>Pq^iB5S!1gBuB80+IjpmL%G}6IQ?x0@8!9*0`~Gvc;U53 z?x|$CUOq3+(yj}6Fl*|nSN32+^ZBiLGuJdV{ZR|;?DZOIF8Z0|hoO(B=mS72)aLiv zR}a{HTXtZygEsWXO!ubdKel{2)g>~fMXXurWbY=Sas>!k@#an!&e!*fPS14_c43-pqP5hV>O1wB*-Q`c|H)w^G`$E22R?5t~ro!?f4 zU;E8Mb{b-a%Ks{B-XjMqyo(nbnNJL~99P*o5P zmIVE9V!l!yI7SRanDp5H3Gas%ET zZfF7_*^-eOaO?(#Lq+ItZ=26=>wa%tE6Mg4vM_Q@t;2QFA}mR8pJ*d6-Gm)F)+CwZ zU>z7P@|khw>V-d0Nh|fRDt<)$^|Gqw_f>H-@*VwfxUFnk@SFqs6^{12g?%Z_u^oZI z;VIdMZd4|wut3Yv!giQQJct{J?f}NKBaXU;^t#2kh!<`o93 zC~tu=&3`&;;b4;QapW=DbUQIvKYx3{sAW10Yc*Rh(^V9A-Jx!?WKtMnwma$`sU2|0 zm4@V0;&pzT{}SMV&A(k~DE{-(CTc*@!I6QHaDaaIp^5ZB8EjPSt;#JtcmLeR4q`Lj zpy>=>3+6Z6W@i4ig$h5HT89mgZ$+yPjajtA+aZ>x;TExx+0*^>oh`E?J@CJj)4sHF z#U25>2*iZmrbP@ky%`-#SkGZkiiKEZ7*n!ItA&QebC&v+y7+*>{-V;{NEmwTELk4X zaiHZ!{#v5lI|}|DD@n%87$c@4<kR=U6 z9KH%apMG>7O`w)A7$u)`4<}@leX;;U2AUVBVFtqBrh%9-7MwVLHexOyjnLc7%$S%H zrX$O_PC+9%A@K;5>t@6JcEhs`(A&<|34Wj)f*W30bnl9B&>4xE$J`@}bqaG+&c7#S zirTU@p%SYsgLh#iL(lZccoaibYJ?sr2Z}O!BG%#8q2(_imYk?T3onWEQlB*(2BA&4 zif~vXN!C9))9N1tzr@>gT`%Z{FswTcbaYAdI|%M4Z-G~a`?E}yG_bYMic0+iv=tBh z@p*h7lo(5%d!Sc$WM_~xMmWDQ>8iMsCFj4|h)g|zQ}Ob!qlk*mx{YCFFx4W~LF=*E zy4%J@d-N+`w8}I@)gHIv#Ofp`X@j?-Jt%^yB6~yg&A=y}kq_h1*(e@SIREa;$#tbU zYKEhO!1Pvdy?jVIiXqDc04@7Sotv(}TGqchF>*6P@vBe-6^3!ZA_g`472p>W48Oi_E`rtK@qow)&rki|a3`w_J+w zO0BGNC?_bb8+>wh5fiFTB+p~)3ovJlvL6n|)3BW5U_+*Eu|&w$LE%>{;V@E;G~glH zg@z?dnj26ehvDq4`;Y<8^pO%zrah6cx0qNkTaRon0tW&ctaqZm_)6#BKkUB#(we|! zk5M?p7oCwLVO`*BWnD0B@@b@s3C&_6KbqdUCLe4@wtMi^l8U=0n8oI|Mfdaj!|vm@=YQ7!9ttFS*t<%@f)il~6I7Z- z!eVuFOTX?|HgSRw>dPgrF=dQo^Y6-YS_dng(5D}cSwS4Us%v7?Ad(Qu&I48?(K&3h-xW8jQXQ>wE>5xMB5F)klAdDK~uF?qQ{p^Om^od60TVE zz(&=TdTfna1w90Z)~m53SS3ov&%;|5d#D5x7Mq|cKR9LJ2=ut?|M{AxH7INz2&a+$ z>yy&=Hwlp~^KNVXkjZYEIidD%CI0F6Q2boRN@L7gW$TNmb z$EPLRmr7%*t+{U3i=0RK>@O=k28`&I&Qm#cCojow=*mBQ^e?u5UrrHrN65rIJ$quw z{F?-%-9ULTz~Ez2l6mxm9_ddE$*5o8)hg12ESZu&t&aEtyJ+2=#UW(yq~7*6K%B^X z$O1YiHjB!!uQVhfNuts!PXA1vK!3x9idA69l|0Uc?J(@8MRT*&k{+i@!?GI7_Ukix zOO}B%PlQ*BGsahWoS?5hQSLDjdJf2p-4J<@PE=cCm>&gmpbUG=B3ZKBt|SA`c?HR= zzshi1B`SZxVXQzh2$EH9(FP}Ea%dmVIHO^daKIOEpa%T;zRIg5+j;y5{T*BRA%AfA zlhgGZOC6^z-|o*Gtu&{|9KnGt|tc zlOb2}O4lA>U2J@N8U8^MzM`ZF!hNnxBHQ#BI{j#>mDb~J+27O;tAA7aA6+0RtXbrd zg-3=>?PmN3Ho@v40FBny%Oc15o14G&m_J^{I-x+v?t8PxM>9V@@rq0Qh|YHE4`iSxJk4;y{8o+ZOVy*o(r zw+^FPT_B@8?5PgXh}!UkwR}deGt!_`S4Yiu2f z*Iz~u$^*)#Z!J^mErcRxxv=w}dONZ4ADfAk=dcM%v(8SCV>7!_cQ=841$M0VbrI`U zYRqB&)BM(Ynx&>6nG-od7Realv{L(|JJI|BOT3mg?T_WE&E?dWHhAp87Rl61hk-ej z*&~Ff;X%M+mcmRC{`SiqoNck+ z@e!$L!EY}V;Ru9?iNP^{JKxjK-$;|2zxkENMKGdUihNu3*gUTmF79uNx>)gez+&$c zBxo#;+2vZ2KZ)H|E|j*&{H6yODS(kd5g;mdWkFR1?RjML8xo@j1}&+~G9yw0$!5#nPNY;y%m(N>HN%w!}WS+v6LqY%K?%`5tNfGJnYYo=Iw#ghC`)Ugqiw+4&viPM`^(e zf*=o(#esiDISA0Y%2w7jq`l>Vfg(=wW62{G96yJU9FXzQ6X8d!J3~qxm$yPhSIPJL zkIbznC7h0+su)e!tV|yfS_cJx!d2v@Hb5>hOTw;9sbe-^tmI=6QQ;vN59?JV2zv;Y zls~}N{)0X83sKRs3z7uPgzM#0aD>dsp@-(!Dy^cat6tfIYbvIxy}2H%{HDXkR_d>% zw2nP&&L+3>kt1AGZ=Jev+k!uxYlUyVz8c!0E^0ODhP1+%M`O0i{9dh{eO=?$H*=H1 zo)_^DK#TeP+^n8etLiHo?Y&;k%?w8Rkw|Dgb-k^M;MN^0=e@|7`yO}G(ZgMtZfm+z zzUjFs^oG#7towhflAPZ_c=Z#k!uJvHFytYON& zrDCAzot;4uOcg$sI~7P_Bc6!^#R+QCDRlTcR{Hyn#6s^8s`PcSmrQ9X2H)9m97r>V zop5ifF%x(uJ^f@6@P?mkmk2}r(d6Az^rz)$!Xh0Q^Vuco&V`tVmLH`Otd$EI9IscZ-9y#Z?I;CtZL4I&s z#VmbDoIod^EyXKP()|T-)#l&#SaAL24)a6uaQUN+&I(KKE>Sa+75Fk^|0Q-%8a=lx zC4vc*`=cawmZZZ-kWb{EOTgItc9>p6ka!N8GE+avWl#I#=+PJ|!ss(G4FOI?_}MOT z80F{+#rGiTJ$7tpUt#AlsVnMW$c&SuQFtWjDTdgMN~5G@#ZsmDgkUb#QR`5$!&rr1 zzwf}o(t&Q#r(*pgopq0$zLXoRF-uR6Y2{7JZd;3Kh+F0VQM)l6xo#Vnd#v)PD?PA9 zrbXKsWd&`}R&SB5duEnPyS`-hE_FTfJ9H|B&2of;A-Vvk6AAwZB^mcJrKX{L;q(-x zy})ssc3sTxPo_C~#w*_hr5fcC{PQ~Y&-MA-bSD`0Xf{e|9i_*8#?FemRM|SdLw@;h zq>}rA=Q@8|VTh8w!cSdX^h}9#%lJ34bzc09uSH1 zx37Y8!2u%Qo2e#dMka==kn)xCU?Ei69^!tG3JIgGj6VBAY;A2lZL{vPnPUh4Mc)ks&0xv+W@| z-S?=nq0{~|CI3!prP)f@c1<9vzptuJ+*`^HJx)c)4^YD0nf-LmzgiZe=f~>KqoT7> zwIYj>@2H|VhK1hj1fX6M~M3)3&)B6Gkn70tF90e_bByC zq!v7RZMOF){3svS-U<_XL)K%5`U*};$;_~;Y_T4iFyG4jJI3`w7-Ci!AmOiP=%yro zXUmCF@`zrO=7~Sj*2h1cb~lB~7DI%}V5)6KHc}}+nE1Mso0X<%_=y^RqBG*S&m;fI zBbOu4#mjOdj9!x8X(gTC`+{7WBHI94=q^ELm+gy~b;N{c433>!q2Q>NxMMWxbTC zJm?eo8O0O1Uc!ObbOw)E*~;fcj`*tJ+rDW~x5`cV4`HxTZ3H&kK}al~atKt4FwanO ze%oQJG|L=JzC4GcW+Dtbj9icCdo1FhgvY65KLpr8py6=f z@cQ17r4|277f~_cp-!HrB=D5fkkfG>rk+ z>sA<^=SB2f3%nW>$ug1TPRz@sl1f!qGDw93m}7s$Xh^8pwx)!o96!-dd7~2y`I9xzb4E^Ti7&q z?}(P(*dyr@CGF749?#W`UHGI2jFOh7ALFlquKi*BJhyal{F2(K2=@eNXAa|^CUux4 zAwv|aNvrkL_*EMc`UoizIetUwIWQ{r9i*(4B9+yQpOVJZYTI;V`fI^F$|M+oC}9Jm zM%bhBdJ&QA6iJw^D{^kd1}HR7B+ORl`ywmW2%C(yW74TZwIs@~Q<3iU=Q?{TkfY;_ zjH%J;2;e22xMbZx9egT@Hg~S ziR#2*IIU#IpbLvE!?R#U*k_SJVHzwJRFIkM_}8-o@u4dWk7Z5HbsW?FXyrWj89Aqr zyQ6^`cu7n|zUiDX-^(euH4o815#qARkJhWnO>Q3Q9UH29|giSUj)j3mF| zgDyhV@lWLRNPgm9J%nso27DV>#=pK3+b+6C>~A}!`!>>mi4VG6oh=`bcbQ2(GO z$w_*QBxeqgOp5|J9sDBwA{m^Tr52{}7%8orGH_2u4$@&#nEuSvpuwzYFs?hiUDOiB z3Oq6;t)yXWqfGFqh)?;jc;4x)TQQBFGLW%C-d>$#H?<(ep}U&kh6-?+2ydu zL51HaUk<&au&j2GVf+y8t@3)A#e}K@uxA*UJ>^s$i8%Gzlu7N8Gjir-dR(&O$nZ-c z5+ZP7W0e?1a*J*@m1F~(%w1@g7}pD9j^62oec~$Y`$98-sHE@9r14uMTrW-mg?=MR zB;JL;UewB`OYfF>!hUMw2g&|u6%7Q7%8F}kM&1pRvl3)>zKKwz^Kg#*d3KxtmL zK7wS}b-vaKvXC>|gH;-jWexAVX$NZ83nfIGh&EDskPN_|Z;>J~tYcg+%+Ps4ANZ^v zsqw=!mK`$g#oHnu20vVd>u+KFkk=6+?7`igSvBadh)F@)DW*LfNs_Kim^b@&_)%Dn z(x@8|QF3n!^=zq{g>UtG z5s`HCi1NmgpeD8JC?su}4$%e}JAQ#fj-2zXCJB#Vra z29#c9m}#~$Trb7x_2#7;SXHZ{-wtKT4f&zm{V@-PEx4iqs>MZj3u)ocRjJ>-kxKil zdnn^KM@_5i<=2GgYy0@+{?0Z&O)A&(o2K8@Y4DS3j5S8G=jrp*&O)y}h7(3e)e zd%%9Q17)(D07yA#oJ9G6-85_N1a4XW^13zDUBi_R|Ke6sTv zb`K-Gp1xl!)*DkKY^DFM6UZD8U@ct8i?zjk)mg5WRo^=_U1aHMp5^xoi^&?t4@SLL zomL@eR|ufogIk+cEzB~&dZ@01cVzJsoI&*+29&60*8 zj_*PT@fG0*O6~aV3=b!bzu(w0eVO@GAI@@kQO{_+g7&FaIr*oAb6mJzh+b zA26$}`Em|cVU**C%HIC8=nA(zPemuEo5k*9rZJ&<)o?2ckK^B4)PkN&KQ2U{VyWZ`-GfsYrMI(~P;~rOj2BbW@gtszazfLItl^0b6dZ7O z#&y?#PvqI8blb(SjuAo7F?y!}CjCIhTKG9xhWFkbA<+8dFHqwLg=^B;e>6llCVkjh z2d4I5zP=PvJ;17})3?M(dFXAxOlCQNGuDm)Ux2sn;jpuu9jBagZ~OQLY}COhJuSF3 zvUF<>jPkf9bZ?d**HnTu+>wBuy<7PB84KlCx=S&B(weoJ+L@i>dI`h~Ekp~uY3BIp zAOw`&a6sRQMnz`=+nbH_&5*jxFLn^weBe zBu}Ho0tmH|Gpv5Sq}3pyg+=mu#I~u=dTYm-aI%#2d4zHoe9E+%S=_BjwvdXfSWhPF zc~PeoY_%<1E!Qp=Wau-X1kFVPjJy(a2BzAnjVTws(NL~68J=8@A&8UbHAtQ?`~ znA}~>1opVdLDGQoF2-*v*UM^P*QEdp)$ToQHCs)6%%);Zc;qOB!;sa+zYg2A`LZds zPip=bx9UB+Ubek3K8$k)T;9;di_+_ZKp>;EYxHV zs>DqB#(@p)(QQ;ate=f`wyOQv7%6j$LtQRs%Xa89;n>kWFZ8{8td_$8Bg5dO<9a#C znw=h!QHwo@*u-c-A!W~by@WhJ<%unLf#g4aTl#GR=Pm2?GWm1UCq|K4pa;_`d;WQD ze*~(#M0w(9z%el@j4eV;bXG*>d$%Zc)PWWlJgnBPhq4Y#=eDqgt?@mO7NIOtHS5lp zkI0CE-p%`%P8`2U8v5~9Q8({vbdwN*ha#3&p;apVbX10FX4!2-_aG~yCKvFn9qARK z*$aaaa|$RNbcN~zEQ{+!D;z)66diSl?Uxe;{5DqU^YhuRjNnuiEw~2XJ?6QtBWX63 zHTYE30?%HLo@R@)4P7**UXF5QR4o??eahU44j5-KYVt_sEYp4`z=+P%O_>fLXiIsTnNm-j7r%eUgh6w6H8u3=HJ z=~bIM4m0$`NYC=`%d*iq+i*SJnwyT;f?Bx=Y583&yAnN{--A#F~(n9`wq0WHkpwp|14x7}-GJQbrIZ=-sz_*|2^LY@^>-)gy` zY5AkzTasE-o7cNP_Ks;e$8T$Rh-(kEluum`9=L;tf@-2!YPJ7*QJ7M{0J^3BppGB# z)f{~}__pJ5?Y62&h08UjSI(>j-!VHc&;n#pY90n4>JCgT_8ydqw$!~|x$<#1o!|3& zicicd<#l5%6yb(zL|KPaP48~x$yk*Zo>TutRDU9m=x;mtX!^y!S~|Tru;p20dNSZ4 z(@O@mL#*HTPsI0b_M}!Hi%3Ot+`%U-n2!;_Q!3h^Rek{;{Wb5TVTAu`#PFeF>r)1F%rD_Cysj&`i zi5y;4;|(4qf38FHm6R=A+cJ~ldNH##<7XIPF5ja1HiudqY=Z}kqKh2AEpfdlj8S<8 zf5W>728z*H{1^KgNm;*Aw<^uPZ;w46<=Dafsax0@-bP|+Hc47I);YO6!5=(G219H? z($zwDKG9{SZP%Hhci+{@{vA0JgB*L`=JM%P zEp5D0$Tn`Zg<)A1MsQWdw&@jg``u~_tD;)EV=B5e534)#`O&PFTj*1-Vo|MJr&6{H zJZtls5_lEG^|C*nOoQ9YC<$K4M9?i$+1YRy|LV=$vF}c^Z$&PWb6qLz^cjYQnpHQ? zlYdU_aS%)$*`Wy#-$fmP-b?Bhg~~R<>Vz zhPsl?Nz|V6T+b5AVl-LkW|=$d>FG0->hgiNbx&9oH)HEzea=HRpR~-l(yroIz-M95 z4tlV!)cr-9jyJtx=*?`t*xZxu*k;naQV)%_ZPDwcnpx<=-FN7wvwrWWj{JbG(au71 zmhR?aVP>HV&(PR-Z+@mV#pTpHwiUnWlDmp+ce-QWBXT>b)nPrZzI<9^UX z{g=AdHZH3c)3PisTmJK2ulriL$7KuaDlMvWb-hQ`a+WwRtq8LE=iWj!SJmIuI$3v{ zTBfT18at~h!t(T%kS|+2*LsO*k9=LS6v{z%f$EKQ%M$mvs%?By4c)44(XGpMmF{lB z9^5NVHy*PY{CU^6!?Z(p*LAt5+PZALQ_*@caNc%?Vs#hR2jA-a9>p@YctCw8oS=WwZy3Hzf~`e+`OV?1T7cO6aT6Jljwp zN7$ng$u{N5I%+0RdWg2r%o1iB%BT<%q01PF5gYFA`67!5EdztXh69cBL0(fc{bB5~ zfk~#tar%P;PzH{)Q29mN69l@e(3$ez&lXB_}OA!p5)Oc5M8CSYrdZ4vOLITd}uLbVjsIi9DjeDaKtES1oZi`+HD(4;NzGf zKRje2WjlqV1{D0+FcRd5k~Be@^|OV&o&78+eQTribMXE*fGWnVSQBRdN%7XH%T@kh z;QCu@0^W8!m|T5;8%-Q=LQlelmDI(!h}~W!L&z-Sr!0|?lFdd1-9=z1MVyCQTuT=j zcM=!H_}7`>b`V^tzL)5W{ku7S?z(@;%JdE{4INeE=d$$F3{t`oa$z3-ENTaoPL9?r zTwa(_ZK0aG?UdAK3v~^_xR?^d!@xjPxM0V84j=v|@NNTKf^+NbZ%EZ+j*dZG6< z!vJB@`AoFHag>DGla_hC5OPNVqqVNk;A||X zd6s<3L=;mlw5gbUA^+5Qo2{GYtqush?JHgU5LtcvknV(;xChDxydWz4^-|5K4#0xp zAWt!6vULmK8z)DweVWApYeYvp;4%k>-DZPM&117LcenGowpfk2UnuTtwY2TzpPg1O z46@R#;~p2qZ1O_A7PLu=BHeT0E2&3EeOOG-kItrcloPL&Tb8L7)k4*{Sh+o^(z$z4 zCDWbaX$H<72PS`nhK+V)A>jy;nLy3bZIFcnC6mH1-vnMS2wTHb%EpV;WD5SBI8{z>YMI);>qBn3Ux#@=$gebSogn2x zW0w;$QucAm-gBfW-{Dkq50s6jzg|>oT_lMGBb3xmeaa@qZL(SS5T)^z?`9Jj{~~m+ ztOX6{&U$3oqr2g%CweX+}v9Y!ltK&z_CQvpiTyBiN=_)N<9Eiah7@ zOn16$xVKHRXNzx=KWE5xy(oO)+>;8g7yfFAUZvJ?dPx|BsL;z-9wvx+5VmDV4@Xgp zdDX4A!eq}R^FY{J;rQ{CI&ZyfW8+pD>+ZTdTCC+B>zExs?mC}WE!>UN6<}NES!L~M zv9Q|t_B?vr^w=9aQHl=u-$i;>zK$+_FZDW18Aev=6QN}ytg5t*P5XFxk}SJW9DitdYQ-vC;5O>RLV6memcVSLVG*QfI?kbE|uT( z;3o`lgj{G;O8qlzzz8VWrj5p`k~!P*ZV`9z4@;39K{A-a>t)q5 z1<^*yy--D}RiM^|(`sW9FOzj!p1 z;-td6NmXMO1q^(MlSR)nbpo%D*ALXQ)zRGIEbfk_YPRVkY!|C1$TxS@HL`UN&2rWl zKNG$o`v3x)3D--Mw<^wHIpcuD#ySFWL`kDSrBy2YYVrU}9_%uMnT0w2IS{GY6D6H} zV)s0Pvx~y_?soi1jvpL`6ZNCNb73Q^^r@KHen8|dQ}rw&8PNThcsuLQ34KBbQjW0P ztf)YzatC(&5ITWhqp|LZDfDT8j=f~4AGX$Ne^2ECuSK;MQ!NHrq?YP4<2AquW`9LELL}I1EYaJh&tOfObWSUcEWey+)vXTb=U(kLU)?by+I_Lj3Gqiqz~MY^uFnd@2-1K z&JNX=YRP}i5xcIPn_R~d$5vbK$0ECY)FpC1DPXx8hqDFar{81 zFj&MEskGCd36#)KxkFEB;{Ya*jenYQ5029M`x#-%romi6hGsx!Ya{d2H9gC(fFZr< z)UgB{Cg58F!hxd2kO~b+2tbID@YV&&3`Yj9?m!KqB$yk%0D7`_cOY$hEkyvInD))? zA!PC{N@n@EtNQq%RzKV#rH8H6p4cp=7V4Lh=5m&Da-}1U-)1dRxEYXd)Yv0X*eJP! zvxv8aoo{+NZ5y+sLFF3W-s>*Cdc~_5Sa`qiwK{4xWSdAFQhLmcE@32TVM>9 zTqb{~PV~ppkKa_T7ZJJ`xAXWgh@!71HGZh4j#DrrI^uyV%gz=g8@;l;y#94-_N0u; zp;K#-$S!lS(U^l9SYBVC40*yBHT36<(QgS1q8CBISr|mPhF`@d8?@7)uK^_{~wao9HA>U?$FY zNdrploCe7nONk+aXNjCST1WCm?-qAnmOY>(f9gc^d3qd*(SESegkGgCWgE-zkRwZ$ z96z|fqe!4%YT&{Sa9qjw=^+i>Lc_wJ&yWusZhb)9phK7EQemJ#TULtQhtf}OIw)M9rV4SdJ!Jr)W=y28%BYa9u-n{ z-gk0^*f+@x6IoB3QL+IgJ&|EsrVX&|^q_ArgWq&mWA61e)_3o6iRmx~oXwu94qcp! z7F+bC5Q=Cm-=3>~Mgy zcF@sntG30jm#uh+X0bAk1iny~FNaGo>+Wgbwj-@OY9)ueyt~G9Y-Tz@Y}j%9nA2nI z&J#Oo@j;}wDTZGp54#<@u8V=(cap7HvgI)B>4=dyDDspTkaB2&QNNJry8}oD>r_^~ z`b=;;P>*POTJ&XB)@Q&>l=!1I%KoN$;r`p~Ra7%J@a5hs6NKkWm|`@3_PKuZHzgIBMmHNgkuc_hnCU z8`<_CJ%{Us=_JivlsVh<5F6kh=AhQQW%^#Y>Sk-fDHCzo`T*N5O1(&zD{Dd0TZJhMMFv#!%xoPI zId)w$kmM4NP& zlvR8E_3{XAQBG}Hwy-Glz`X08b=5+;?Wna=)k*hSh~O+q1W99r%XC(`>`YcUe!CUL z^|D=69SaQ%{NsSS*4s?|`5`g~9E`AB75(_}CH8&O$Ll3Uu>Q-*j(>}AhlAl#kDkb` zm-xc^$A_1w?V_8H$JPG0(HuPjWpv(d|b+4|w`#+41JRn^8WeEha5A{~VqR$b#? z7IReU-czf%u3C6Htb6XJbGusIhqryNbm>w2wi~^zTJXz4m#iIWS-j%I>I`lr(7y1j z9J;9GU3iFctod5o&5ZHe(gUojdGJS(`tze<-aSuH!_OKyI>}(5i1G*y+sPv}d6-qr zo=q)U%f1KqgVZ0k;mUKiaAtCZMRG(*aKaZdQSK~86Uc5`)4Q*5=)D5y)~d?;u6kh$ zuIj6nHl4cbYY||!dh)ezxgDW}rTc}ag}6Zi zW(%p7H^l&^$R6BQ1?M$9#8x+e&qI~k^l?|zTU6{4WgN_MQnsit1D4Ky4-Afaynm?} z%i##F7$5H3@y?(*tr>#?NrQyd(X3r*uj-y?Z2O)8rad zbsM3hgvuedwIdY~>UAUqU-Y8AQ=XLCuQQ}-eP0L;8fG;1!6?jjsDW+Yqx2AMt;OoD z5pHf;+pz%4f`%Sf=VzPp>X`3^3H;(%zuMQIS0Y7k3R%AI*>cAzGpo@@`uxH z&ly@?G=ZnIiIUm?ehr)QGds7{u&UjR%bQcHB9+QIHk8aW(@lrY>m>QeOl|3Ny%70q6A+zvA`M@{5Pt?w9nod6b-1nih30r_h31V%pQD zH}`_KeSG5$PT&;=iYU3xc( zAQz6Jr3hW$*hCgA96$R0uH<_V#Tc;{K?>#L`&7uVFA`E=NV*vdAasAPkGD zd*tC^F?+Ue;`#}^pDV7HH&d$d_hl>qW#nin6CE*zBu`=SfS%|$FcJa>Nb+b@*sL%U z9W~QHV20~OWPk~sL&}i4SZInoqVL_mPVbRDGa`qP1VJyT!~6ajJVdMd@5cC{SdS&; zW84e$3Tp;?Z^C@W_>mIZ!$|m!KWbUhfKp)J3eAmV+#f^7{$k`35uq`b1vy*Jfs?|9 z!<$9lSS?av=41K)YWnMerpD716pyHxa4rx*V)yn?~&(W_3$7 zOApIpsMC_Gp3jSA#t&G!*%aeP*`7cVwX)RqM>rj6c~6bbN<(8UI!abvs%yLV38!e! z6Zq~wO@9y$Ll+J`>u~5M?%t-@?@X{kWWb4znrVRHuNNl$pcu;lg7F)%LGI^JNJX63B-oOP_kVwOL&aSa#&{H7WO7=v~;XEelzP6 zF#%?KC=YQ!PCZ}0yomwhT~c`81tbZLq3k-%iV~NO|789r@nX z@cUP}JJEr)URXr98-$YA%bJo9+?L?i`2-H z*jN=OwBevVw{zE#ISeOCHdfeTkWste^*MJTN#z7{ou&z*&tv>l7^UmRk6C9K`ZB(T zS0?56;XPtknly4j$8F;Rxds&edEyk^icn=kFupE+*DNhj4sdVow z$aw@su-YNuNR$yfhV=?LEdKq1#cwhs3=nl*XB$iM&ViKI-?l`%ca**cXWN2}hAbQ; zrAV|sTEg$q5HKJk&KamRNa*%X^4R%SED;<>d0Rn?Xj#4v&j;2b3m6q#p5T|S0^<@C z5siS8?tT8q)+NTkIevg6Nqtn9o`gQPu-ZskWdwUTW|5qjzqF2-b{&78wz`33@rBRJ zW;_fkzbv$Fwv80p$FiB4s#z24s+x;eB;|GAna@X61Jzj(+Fy5l)3f7AkQp}dy)k=Q zWR2yJx58w@fz>)0nrdTJ3JIN{-{(GpXFVKznbfy(`{x@&re+45&_m3G#$pn7jDfN} zy%BOgK;--1cWS1=34@2QM{{E|GJZBgS17*=7Z%;u3vFmW{TXV3VxSUywhVE~KoRjw z$Q*|9-Ewm9+EoUeYzL8Zc%JmS0o&J;=@k(r;Rpe}ha>qf(PjHamTY4o+DuFAsU10h z()X0To3feO{MSG*gk2|T0ud=JMdu{@@k2$I>m$$*Qfu&t@>r@r*Z~wR7;n^*ZF0q{NN$Uk;51QwG6>PksHFX#k}+~u*1Py^}A@%Tc2h&Qnav0x`m0j6}(jnB-3{BGov5>F8l}m z?rLL8A!jvk9lP$$NJr}98yR^&elYmcoEuBbH%fUs>pre2^U0Tuo~){Ho+xSRBlfK^n?Bl!r{aWBa%W@nX1#Aa?Pwtw zE7}D=iw$U~kmEgff&6GC4Ob^`F($Er(a94Z@@UT!B4kM~KTIw~O&mWMo-=WBl-9oFTAYEpnbAXqNaNp|4O6?1^>1+3%`F=`y-{} zpm&UKtOZV5mx%Q0Pye#(Jr}Fz z8*I>sy6Yv-+2+Fc_a%3`6GO8%p_T(mh6?HH8%x>Kw!Kp`t62UGy^#!zrfVT%Vn^Qs zi=%%Vx$mpi(~b)cJQw}Bg}_GN`w6JC&Ol)sOXytzZ^8Ic!|PS4W=wVWsw!G=v%Mnv z$l>)RmKtYE_Edeg?~>upc8uS~zvt4gH(vB+UzwAO8JD%zr}I$IrQ>gHA7kDs;h3&rhnUQVJ`t0Jwc?=S9X?Mio* zEHsnOGBtO%kOQIAN{<;)YkFE!%W4tpI$B()d*G^iMygM6%Nko8R`s%IF|A9kG$VtL z@~5WI<7ielMyoTEwm>LnJ-&?}%1%WK!elWJ~3cBN~yE|GB%2sO|OSKwl zak#0^)#XytYL;-vVqHZ&Az8e-F^@)?{{C3KTtkc18e82}tvha5>DKgI-;}1*%QJo# zp)lJYv>JZC@U{c3U6!d3H=@jZuGF)Q^L6oFXiZpk>2I?wUDi=+8`qV2HfUS3>A2~6 zt>Vw_)q0QahuzP{yG|`yvnUeQLRYY^ufNsvvh7@SKasGtdc&#H2E7bR$0OQPv3fIE zh~3yrvj%L`#!tN!sG5cUgq}I*F|5)(mRour+j@F+oi~AAu*}Ff=#c9|pV+=DJVtx! z^X$WBeEfTh_cf90bDkemeuO2TE3TdY0oC6OtM$_DvRF;~K}}1y#;nWmXzEYt_*v*S z!n}#`v+Y>Ej_Ys7&kWb!!uX-(`pK+z>09&T-}W5n81hW`liKbb0v{4+RqzWUkA}4v zAn2hSAC$zV!9J(`5vh3dmN5X~D2ZM$%;bKXDP141P&&rHEsaDEu%i;p(yy0V*o6*g zo>ifid;xO#23a_MM(bE>jGuwI=}yFUH@P9>omnIbB!_{8o(@h|FROGMFg~JflU?-% z%+G1ppd0?Z0olS6Mumr@)5>jqMDT*Fus2-8 z+go99$Ww8Z@dMS%s17_V#=mTbo)`L1=&O!ZW#dihr&ur0;%)t1WqLHMTUHBsmi=tl z2K!{j_?O3(``JRCTW@>Jvn9^UVSS9Y?pRl$mep3BTZ@ZTwzyFDo&Kfz``zjFb!}s^xf(4*4^tI|MJq*7SpzC)l(nj*SqK#t-2h3*9WHTGhwGXW{vz z@#DY4{q-WUNYMj&?R4JG!ncuHxZ-6sucTM#()A9nP6@_8Ts$h!soX1m6s5zrLlA52+~Cgl_89<=rIic-)U4v$Q~Iiq4``xndgA~vKkpF!Z+z0{&b_qfPd%W7evs}%>_C1DbzQcWyh%!&Vf&?~C}kHpGBy$DwvY8(!v@s!AjE zqAIG|o6fWsN#Cp42geQx3^RX^n(BMcFlRGChtdV@(f`vZdx9f zsMao{d;}mVCcO9I-S2e{A!FZchMHW0mtDjn+Qd4+G0|B(ii@?i7V7h5mL&=)l^N_g zhh4WdJiv+0Z7n&S;I5cSIvuFg@Q(R!frxh#0kL`oK3(km!}xgu;a(?5Zq7`@d-62p zncqTr#C{c85_vjovp7Be&`iU7E_eQJT+f4sHyO1h!+W0U0>O~$o|kzAM@E7h5dq$- z2yiRU{qqGKf8bOf*!Ez>-0(qo7(N0z|Adr5Je`J*p5`fI?C{~L$@U=0w>&$+3Ve|q zglCDTEVEyf;(ei?)9^R&Gs-GBIEguf;Nh|~97ce$tWB4`g+y~LBrnc>C=1Lzp$Hi> zk$Ox4SmjJ@WkJRZ`gJ`nr|2cNY4AlfD)MPf#c3YBqi#AAI>Hq^+VB=2dC!NN_f5cK zW^spLykS!w6$0uWte6s)^EH%V`j=5(H=OprfnT%=KhzDG6rtrS;sEWdMl*Tta;DBA zR^zRVHN-{Q47u1Z=hiQV9D(d~f;PD`Ok^aMM3Dk(5CdCgIT_TGAZPjHnoi!bPwnea z!@Z03&eHDp@WYjF27;cHE>Z#a}I>f7TyG;c=&r=>X~aDf&)e*Z!Tt`vGn=ACg66s7TY3F&EzetVCg zA;pC!=;6eDp6-H7hK;obsb0jC_)nUAW%7lQlU@b8WzRH&Odbkeq-rq#kf^`I=^B@-*q`#20my!9@6vEw8VV%%MR&A z&t%uc;&`|G{@N}CSStVvp$9wO+C`oHq0*&Yp}w#?EN)=(`ekzArIGmyDY+mdE<2{% zfgbBQeNTDEXU%avR7y{EXJYaeydth3kRM31IJtVytZEq@1O*wH)+!T)mGSp+nzvHv&W0Z5OvsRZXbeJ`sFN&bh8LJ z2#~`JRXJq5orz^HF|m}dBKh!on(+Ebx>2E1UAjFhNaaI ziL#TC;O;#^7TF)q7=>kV!yB-L* zA(>V}CZAERUy)R<%1}dr!&?z#v&!kwz;gETWR$sY9;E*O$kL`tn_S@&vJP`>bwW82 zV*86$;eeLT*Vax2P|n!NAhi?8X?U-O_wQi)3gA(J+ub2_*V5T`u+uI15du5!<`dge zVQFy@PvG@EJrbY6AYDl1cV)QO3A?rC$ zSDBy)468*GJ(udF7+z6t@)CwWpgG-=HDA>z)+zsNV3)<|r5&_`sZk1h9@C-sm1)J4xHD;C z#_vsX-sviX@)QGW?r%}8vG5S;1gOqf?Gi)=_f2E%^=BS8JH{JBO=3KUvhu2Jl*XHP zIv@sM^=gKvZg$Wn$b}W0p$*2K9u7IP9mG=EX3K;A@dG^?CkE|9D2;h(tm__ZZ34V! zvRiOEGO|W7JR1;~mU1!fGaGN8nZc$|&a+q&r6;qg!G7gecKUTnVd=xORTA(U?TE6& zN=V`hB?+uxixgRR;H?7YtkbMZGhx%T`0M6@A);xLcrxS{R70`@vNH$G;RSWThI-#j zT@E+#`Rt;(I%CVq@Mc~Cno2klk@USzzNd<%jLiY5X&+h*td?!9jxDnFklZH-<+OQg zNi7=I;f;N7#8-7^?4oO}jJ0~?x||}gMYi^t(Lq6>GIo)5(942xcaf(kD{>I&eYw_) z!W=iv8G&f7&#nkOIe(=QCF0!W#i^`=R0CpbtQh}Hzmc>s*05zZ8{>E@IV7)vh}R>r z-EeA`J2CYWW9{|5M*_S)xP&r%u-0NAK76Q5yq_egz6;kfd&oF^WR@}5#v7~Sg9B1v zUk(U)icHJw#H#VOQCVXRi?BsYjx!77k{G?wBs|{EGlfi6gJ0Ln#{j%lAig8V5_=1+0F-PI+2*XaK`&lT8Q=p%Lb<`ErO$i?)22JeFjLlC#UCYQ9)f%r9-`I6m(b$fJH;Num$J>bw=Tc*X6Dgl) zjgTbSPWN!-l}{zjW{Q%7%FHx;6lmozzFZq`1y=pJNcJcAvmwdrg6t+fCzp{9{VO7F z-Z{pMFOp2Z4szyKmGd6#D}kRd%iQO%MFH$0ggI5FK)EmHb>rHNgf%po*P!`n3~6?XucjQa6k~dBLq*_qgMC>X9${PZ!CEhM;cg_7B}K#u~d5F zn(JBahaE|d-HE(m-FL|y1jUS}Db&``X&bO&fK)zdEf~L|doa#Ku9>1=wnI;;C6&rA z^~LNJQHN?tfK-Q1&44F&K(-|jE)a4YZ^GLWjO`r3coS28nR$Rvr#viDR}Rj?yRdP* zd8L-Kex9Wa;Ot9_pIQBwVO(@S$KIQ8SauejL1lj$}Y(MXqp$7YaW9H%-D383# zl^Jtwu{dADXL%7~5w>Q&SR>R>hQ3L0uJ)^ymOYKKP@pe34|W45XQUf!jWwv=!5r)c&EPgD&a?u#C*(BaRcO8%@|7yLwNM15P7tT8 zxme!%&n$uyU@Nu7)p~}h5azxboS${-K$&@`%gz zmity2m!s`xOvBeGx8fN{e5=n08s#|NBD(B_oMmq3?zzN5XTgVSdk-}zAzq^ZhqanT zxUxS|dc%zIxw`Sjz!z?N&?NtIpf&v2dC(0Z;ok*mEgv~+x*ETy^t+uNyq$vT;lVJ= zI=qdyMDl(=MUwgp7C#+Bdl{B?XC;ft%1Gop=#u0(A`Y$bjmjwHK-z1$X0O3_nUp6!l&Uw)E#d<`t<@;c@V}tWut)744H@3_3~^O5uRs*~1G$A3 z9h(JKuVxr;iP9hkitT4Kem*F6QB2)?CvbwD4#Lhv9TRsCfep0<>wo~?@!BBr`~^o$ z_@-wK1={U0KN#j5i!=#OHQr*HLE3$&waa-A_Cc7b{v7QC{;#2Xz@K9L?qGf@T#u67 z$R|0YYy%RXz$EsCAV*8oI+i6_{Oh@f>wQ*>!Xkv_)S3Ae#S`dreo4lgm`bi*o=R+ZBmFoH9}G3xcspn(fNwXx<2hd}7fxbY zd||e*vT?bN;O;7uMQlJ444Z`d7!$JbyHy$O1Kujvup)V%Dkmm>-&i=;%9+W>2oh?D znejn&IjtnVJLkZ!m~s}P-63Y)*qB3icml3_)H!@Coproz`}0)R@MEig74wevc3*rL z?$+mf@QsnSui!|OAF@qFd)qR*qJWs1 zGptcZ0-2IdLnI{kcuAYaQwu3wuqilUx1L80q*;u&5Re)?0~!L|Z~~n}pglA3w1#{r zEg=oQ0P67J(8gOb@X$j9Nq7l$kf0~WNiT39y%UdXoYNiZ;DP*#Y8!; z^LXPYc4nsWR-h`Gp89_?wH_Nj7Lf0PzM8~%fL7>>KsWmHVI<>iiYB9jK&j_-qN{Xx%W^C$^O;m^8Ts-r zC+p!Hc+}rWfK-Qu+|)o{1fgL0Hx!8**V!2qQ2?^xqt39GbNDR^!-rjDIW}Wm^0}Ii z&n$~JQ;Q?QoZURiCx^X^&&PBW!2?B_f8PWNxT}7@SUFlPM+TW{{4vQtSX4$}4PXf> z?X*B`0#g_8Wik)cL99vcXK(!(Yx}cvp+y%Yoy~&p^+$5@KQ!dI={~1B1LjESxUbH^o5@46>XWN^8=U zer_DdB@Iwo3p)l*`dozZHvEOC8{Wu=H+ zsX|kOt08rcw@mgkBr1BohjQ`;rS5yn+0!W^O2$p$e>TrhNp&4Isl_qd9Zx5m!EI1E zFmBKq`i>lTtlX!7&E>~^w6H;^~;!YoSIr+ zH{&gAV!l#mhXnU7m%OaSav|-DPOnUa^WjZTGCtgwxz_e+bQ1YWeVy|G72lo#-SJcr zYuiE*m!oB?PH_hRlx7HdR!zvHROYW!cU2PPGf822xt&AI=}egaaFf^_rslAzN>5hT zBx=tAi{h5SYjNWR#+y)N>$SKcue2DC@{)%?BkZUDs+z=NQx#Z)fOBUbJ_N=aLl2YH zI}#aop4znEUrqmJYIbUog$L;AAF$OV`;$H>q}GrIaOik#=p8md(GJgKK@_9d@LnT1 zbAYE*MHWFfnE#y(>_(t~|?V~@}>OnShk z>7_A|s2$z|QZ!`zalJlXCOK7x^}F7RsT_aW#v8daR!rY{ir;njs3YDNzBh3Am_`gA z#N&;YClqHwXz2nQ-Y_jTg#tBi$aV)knF(lnK;@U_GF&^>y-DtjbUadiX;-rHu#71^ zoD=`_D{)|T+P(tL%(yvq;4Rf2wBLcZgeb@1FIV)`j8~c++!-j+!LmiEQX%%*e>$0Keo5Z2QWP*xDVOY*r`Vu1 zn3(a)G{bl+&=&j*&k$@T1(^$EiexhD06|RNfXi%O2sOqc6+LB=192qr(V#iu(3oQm znacBF@`kdCjAP|vHpwg{2T9LQSZlGB5z@ZLP5M{aedOVokWc;f-%jTYG! z&tMnuRWrlB+rn)a-n5wN4HMfRe406(R2s=)gTtY_GO(J6&MUJv{?=8F<86!j@phH; znPJmAO?F^~->^3?m|w-Go?@r|C9_H1b*>Gts2&5HPeis6tJMr$qPoMER;_7#OeH$; zrSS0XjfL3rETV1BUkBW<2rlN@H<|n%KQ7JrIr*<3eXO$C^;wa3q{{eOD(XLljZ3Z> z#v9FDP{tid=DW@@z#;hwkg%CURtv$9--+?1p*V1*8Pou%F^jntHa$rn=_P%QO`$** z%e%p4smO7y4iv+4<(oL8Pw89wPD1T;Q}SnzX99ul;K0+-f*7PM}OkE%y z-U{o@b!B{H$^^`O5A)deI*92luXG@5SpCY7^x+W2hj%8+s!O}#4~8O@&BQxppmUu# z9is8(s>&gJ*Y(!4GT4j8s5Omj0_#zG?HIQ;8VfDL#RNdVniJaa`?Pj^r8iX*3Og8w zmR^B2HJ}C(W7&#IWGj?jAiFfQm4_qgK4a5(qC0}UvB?#~@CQ5mp72g=FQ&G7BdbxK z@9cgKWHs#eCvGsSIy0 z{;1?SjwUO%mZlHb;NY6`609}kUXz_!%_79)?Xo~enZ_1;1%bO_p;uN@*vWA>6)7uAB(ZqJKAt z#Cx(HZ0QG6=y*drnaGBknyD4%vev|emPE5w^x^)|CjPBb+O{jPg1FdJ|ZOKSUZCNFem&rfq~gY0s)S(YvPEBMEr@$m0w~d16!OT9*Be zr*Ac>*+I*27Nf&zH<{PqYFL}$kFFDxx8?B?h^gcWHqFE~lTtH3f%acP*E*BRs56?a zp-u}gZFpBgpIC%yct6abXEJKhyE7-Yc5Qp(HqB`Uc|BRAbmH@(l2Pv0<%|qLLpt85 ztg*^Yc0t8v!b&46w8`-p#Wj~|lxMh8rY(ujm0t}!V!iJ88RZY=7U6!7CDB1l&oxJ4 zYG?_{k~Y1bt}j#8mWBh?D3fg_vGIm`2)oX4j>~1A&55o3*BhPou7~ra!yoxn?pUWz z0v*J(OECADnYP5R#v*)4aC7i?(+wYyjW*r%;xCT3xG=g4(b@YelgTFZ1^0MwEVJA@ zKPi}yVZdrh6tV5a~G%whcCPjf%s|--T-tUL^(?hcOt|HMD z^&ZNauzMC?2}yg!0J_6s;2r8PGa)mSqi>}6h5`#x3lAsVRm>=(LpFj zJZffmL&Jxun4t8c4R0qymriI|`kUVEhWEHaIy8pxWZ127$>sJJ=0^z17h?+_f9RI1 z)@Zj$rdMC)M6SNuk44%yFdm|K+E0yTZpIO{? z+(AIF#wCY#i{>vHtxAhR4G-ggmiU_$+vz_?<84Bte31yfCJXeC_{QHlkjjaDyd4NG z#wJ$@9=S>Is=G&1$WuyL8*e2X4pYP3wPR>WRHY}6)i2u9^bZE5-gRx`kUUC*(oUkW znSk1mR843iQXpx(0)&2&(|Hnuucy%cku{Rpi40PxP_fw5K-Q5&+CnD`5P9Z7YgBV+ zdqv<-o9>8f-34H+Phd47&a20!Dvid+CL7i3N#WSADlvcOJs@}wzScz8W>Dh|IqDX! zIHTQ;3OgN0TUN#9OzGVudu$MNn_NAFluwY!>zKm7+M}s-SQc3g?mxHuyG(IiT2^Xp zrEpXXHrJ82ryf1RNlXEQL+b)7 z9uq(`yiMkHVBH&ZtMNGQOirt(;hdVWWpcXKrEfK798bhYQ6WVL`eKH+G^A}vL*uy^ zu&D~j9B>?OVoIrA6SL$__+_bXQEbzEwL-NdhPBuI@OwnpH)u7K>gn5)$c?ECdyCeC z6*I~w5|<0zVl!6>YY3Xv*8-ue_UyP9k-*gSV9`Sxn&iVk<01gCCtz%Uyfvv z5yRhxztH{kA3wy};rE^ZJ6?dffIC>f)b%9OrMJ4J#|)xL&e&=vUodggzYb>7=}D=c z{-K9SF_`@cw41N}(zi2^jENxhn^sz{q)RBw>lN%X-@dZ4>{ zbA*7Z+mj|}NK_B#GW$~vsMxyN0sC`}I-GTosVp}7X{Z_sWwS=G{p4+eUjB={8M zXkpHLz*I>Zl@54DH~R+7b;BFGP3syBThpVpjR$A+1-Zj3jjZiL7m8Bfuqw3SgH=^p zz>D`%*bg6!#?!GX&K9O7d_nNyExt+_J6YIpCC;7=LuizdS*fuHJV9tNNyW zIv|3}AussmofvvFe1AjDRqbyOwt^aR29OtGzcVg|fUW_TkocFTr8O8lNRU)1qt#m65S$#{G#9_g35dhW)GH8rDc zL+vyXekT3zfgZ%vz54|Hcv}v2==E8*WnZnBEm+~xSX*&q$mxk=B zj~#8m20ZFc?*aY%NOr@!&%Q2}vC_Up*Rcllqcc%Y<%_1&_@>qqV6aUKzeI3-Bj%M7 zdck~h*V&@Sn+jiaBQ_+86^HWyjsi9k;2WR__)a)_Yy)PCO?i)INP4aA-6!acP+?97 z8rYmsuamf`HAmM}eXAp~L8*7m!Rei8Da7F~=-%uV`uWte8w+j*JYEsQ1==R)OllL6 zu=Svp)&qfsh(5g01#PjZN_%o|*n5rEQnk}4zckJ@GbrkC&Y;C3T*+IlBSSK!5H2Ki zfqwn#Ur*W_f1GUiOKj5tbz!{mjU1k`9~ls2*yZ z`hrcjFj-%b;N@iSMxfW^_@L)LqqJ zpN*-_LC2ZuE za~6UYH?=}at*dvi^hs;*xPWQ#sGvMs59E%O)=x;fXjKvRNMwp!J29hX@H6!~p%WNB zl+bvaK}rFwA_+h?`~gkxhQFd8fwa5sK`qHx)Go5Bj@^+DZ>;$Cqh-|mNs91zW3r87 zm_L8$n%XqKOb!!-)WET-@kT)6l{i)z$Y>St*+-13yM|RQ&7n>vOv+nN;F@d~QoP&Q9{5MAYCU-_WxUqO`2zgo2R(YnJ)jz>sN7;xD6lgwxe1ACZ3*|V za5>TUm6;xQu1Zllkvh_vm$D`+C>y?T5SGGq!wEguuepV~xu?9OzzUZAtLnzv4AZ~e z2>5duOv6WVpYS`Xl}EE(sg8`?4j;mulY4B=d&psi8e-z`@bY!T8=2J?cK&ocqut`6jnMPfBvg_ai5z_nK0@W({< zb>NLS<6M3MZuppS1vNy*EqK-Ye3h``qZ`vB?Si=6NcXL)Mb~-Vm+x$H)X2=&OiD1M zp;aeP!wio+ZgntsXYoLOE|kxQNZ2=G;U%}E@&oNN=W3kk9+uX2K`yW)UV@}l7o*!= zI9nHtn(P8jx5-oCzMe<^d)(0ecv z)uTBb(7d74V;A*PT@)Mk{960g==L;`@ojTXuC^hzlTLTIzOvqU@?K9yGZn3yxIcB4 z>9jxf#Al6iY8sqsx|rAL-<&7unrVK+Z+8Y&e)xL$JvM7x1tAmm5SyL{cs=PKNdIE> z)n%x4oZ08Vr?-5ME(uXPq2WVdyfFl}NOm6H z=`3CtE<2q19otR^JM}bI3Z?}+gCZJ!$M%uB#@m7v6zt0I825V!_wFE=#9wmP)Dhnb z#8AP7Odrs+!~;Iy3n(EHt;BlGU|+Z4%`6Jz4|6UGM}0-JB%0M%#;$3+?N4T(qTcHn z#Z5@iHzlfdxz;n#5`;6wnbvS+BIQ#g2+A*fl-;eYXD;AfN@#DMQ=a1c(>l6*!g?mY zE+o{tK=+7EWr9*grPeX01wX}9sp+gvlJ5J=2|^8Xyzl-3q#Oi_OJ3_4>;|pDnHi_B z?vI&_pZN(~g*L4R8$({mnt8J9g_?-06i9Q!E>*}@JG^4yJEBJw9+L+HIN4Vw? zXm$b$GG-cY8&v}Q&GZ=}(NY4*4oZ`Q3liRSv1_qt)P05g%n5H=A03oQW{n>w5M-$| zuXfOtNp2Zf+gjkVWj&c?RbpDa9^QH8xodczL1hvY12NwQ?QtvM*t73wD^|W-uy*1h zxe~zT3()xrd$TuOIl(RsH%sfa%9Qb6M0G~LjlIqxnu0U-y5KzIA@{w$8m#=r31+_vFJ{qF0?x&~#t? z&P>|Q9l>pnVEt?^SAmaSXTooXa~f~Sr)q(fw%Z+ehSVbZ2i%u4-lE2K?ymlIadg1K zGWsUe;5f_GkVOhFhzxJh;_H=b_tkKN9&4Ih-x zD1oE~`XyoxzPU{P_uz)V|DqjlyB)9@GL7GMMWRzHAn1yE4pTiM95rjLl2gHw@C_s& zCCA2EgIz%lk zulgiBav9WbB(q0ax)S*@OMe`6gR;ox$&= zYrI`#m0J?rb(AYZ&UhdYf6@H{pO-tB{`J(Xv?lXT_miBlDQD1df@yQ<_Fxenw|#dd z;m;Ghs;T#<#!k!82W+5N`)TP1uqb%xCb!)roh3Pem{$Z_f}3P_1ZO4<5b@PDQ;isr zv2|SU0+70CDJLCB)THgSX6CFWX{Xu!@{A|g!v$DyD4~bRc6t(x1v9m##u&hOts+s6 zmw>=Say5g`G<{;_HIicr zS~%4Yx~@v16Q>8-lIoeDqpU$m`8op<$5WLta&k_c(`1d+wrFEvVBSc_V8lbqG~a(8cJSt#2m(( zeCWTd;liF5crImL#5vfnk*ts2>rV?!N-ksy#cXE4sb2^+WR^t~ zITpNyGsum*=6vsaUB_F!hOJ?K4++l+!VA#OTO6(5CgPT1r#SuVGYU;&re^h)1k#>v zLKn>bG&!!c;50k(HUR6z^o=V}^RhbFL7QB`Of!tPa?}obF&?`Y^=K7Xw(*A|&;iXh z9xOo@a3)A-HAFNT6SII5g8%_iZ9m?a`n%yW%#>mHC=+u@!+SY{j;!g$6y&~6dGe)j zlYocgqSGyS3)o&`+{Ip*W4&k;Hi!l@6%qNr>;oP$hY>6587*FZ)K-6Fe*>*6DK;#?6@GtS^P=pMwPcxiIoe2Lvm z3FvY5no{!db|!o%a%^4V|Kyfj-^@MA11;?3J zAdAmw#_LNY)}0ds0um|`@#<%|Ko(zOsW|!hWSpDK8E+?x;9NgBK3<3E9~_GBv(mmx z(6z=9d|U{@BnKc-rMmH!dmO8j_*-$(dF&=JXOx{*z2U_>P^>+Ok2eB0e6UmQjve&q z&cO*i;-hAq{z0MC8r9c;hEG3nhph=7JF2OnYY6+(()F_=?bx;HO^% zI_!a$)WYya_FVYU<2lIe{!;6p5V3W%svX`u=#E5_IvvRA?f(S$Q67fL#gr;@=HcD3 z=E+*T7Sa6hh9`gZyh-6l=}pZ#)S-7Al!xfaXt0?SjnMA@1pWc(`0M*Diq zd=*@pkH&+y5K`tRO2P0M_RU7v65bC`!fmmd`JEDu|77oMl2o^$C_K+bw5|(QgCbd` zB)b!{nG9c52B|Q~=#h!ZzM}ghOU8z#U;ZYkYMt|)YgsnN7(;`p6W^XKmVZrZ|K=c$ z-CTAv(JdBULnuSZX^-&!cKKvrA4bT~g@;tcyTMi|4(B!GE`e1+ayyVrU&x-yRy~sP z*so!d7K$v+jOp>1-EI~N)Osgeu01XsrN$9ou?va$dv_4#K0(Gk7p1$Tco?i3wmoSC zH!Gd{4b5QLBvfYU`2dOE%poeiv=L}LOth&O?7|$MnscZ%u1d>)i*jiYbAu(C@7ugw z@e@iwiGZ4~>_Lo=aDmFOjpf-&f(eX!keUV8LPkD4=j7O0XbaMOCHRczd#J{#HOSmu z*f12irPJ^I5cqM#U)B|;PbPg7(yaS|kw+=KA5;mCJ8iRTVG&|ZJ@z`MKYRd^-7aEw z`T`lZoTcfq<8`%5oj>RCFwE4}Xe*9eUDnXc+DMSKF1fr&s%nn|c70xG;Xb>&T*va- zc3Hd6EvzdWo#IQSZ>c1`E1edZ{?2N9yYp-7I){qK?k){ywSy73I9)9R4^ZF*X(6(q zV)M$e=Yt1_JqWM{iX3>oCA8UW6$$0M>ny(#AVAJrN={UkR3wrBYG2k(g5mCR`ceaj zAXSnUK5g#K`B$GVn=g9ekZf`dD76OxKfOn|cCq{Rx@C$!!TTMOg0HF_+|tjFI$C_!G)PZ-o3cjZ7H^BnmwQc6}lrfo%E$LGIDv9ffz;_x#!B{J13E1N-aB_ezC6 zr@yQ%oXJVNA`7hQb`hwnaUjRtVs!8=%d|kcB||`a)ZBpDf?Zf-tMy!UxNrTSROW29 z(tHf%6!N{5-zH{eZ3datLhbpYT{CCE{(?NjmM)!m?83sQ-)qCi@i*JA0Z8RoEyzCo zK10jXhQP{i{bu$l2+JydP3?C(xcnU-x&}&P#BY}wz@BEdTSPCem-)Ustyx;PoLh*31@3*E>CC`SiUsiyyPA^!>&YoB%|VcDQ_hGamU;LiC?!;+ z3T{xGX@;|qSkL2bS8&A(;wn5zx1Z#mE>+yBb&{P_3VF|x@*1;y0XE*OwU_NCc?O^9 zk+)FDZej~=qcdMJbs2N|oXg9zDpY8&wdEbbHfIVOiEs7V|HeHfH{`x!a|X6~qe`Gxo_GG)8#@P2ziv zkx0z=4#|+HQJ2u@9ay60;*9YE_En$0Xu(pPex1Q6ZywBg`zcL)#JUcq3ZGiRN6nDL zfWOq6+$gWVR#nwgC zlL^HOyv$L3`V zS9DOLgC||6DH7Inbx(A8qe-aMM0>C=xe2==Dnu^OSph){WPDzJk40p@Jzjkj^HpMIqhM?5kYwzXIFpk~NqpZNhC^bjGyND;4^ zf?(Xe=4Rp}b%y+mYN2-q+B}mpmTbE2VESFKyjfD`(E(*#!GG9O`zMBOLCmq$IB`%pyEUtDuR%t5qA;67Bb;$#!akx z=T8wzoU84!Q2OMB;n(6oFM8}&&sF4P!XLWQqVe66G015aamLDs4VJ?=dk|7cQgY=y5)yL6P>W&<7W5W`@TtSz?SCF>2HS( z+_nx$aE^4lk<3mPJ|j0k;?hzo3Sj3TAnzsTfF~Y>$1YIn^N8r$cWCBh>4XqD;Iuau zM;ck>(o^fuuQbV_63<<0(mm{)R*HFuL`UdRcLvo=U&!`OM}(FxrYuC3}Qh>BP6ombT5u(+)5e$itnbu2K>_oteRIP$|7ew@XI00{HFFHHyipi?D2x z^@I%B%~=Vaw_SFN*NLMu?6*s)FT}63NZ=LD?O<5tzl5&U%Uq{cZ>7(w)4_OyBP^{i5wmKs`p?~N&>RAKuZUjg?R zxYrtE!I@~~*Bn>yZ7%!4r^8Gc&JUs7Bdq0S6e@b(OuMahb|$-0nVhi&r(f&x=P^Sx z=MBz{cU<8UX?U*YtX}Ds7Ddp*4*X1|^pH?!^NXt)X3B2UeX;8Apv>}FAI_>m;2`1D#Yc^%Sq9F!(B_9trH)+d-pFu zDZC0Oy*YH`1L_E<({(;i;n$<`KRtag9F|k$CKtAyf71cD)TUY?dFM*Hi_M3{Y9u*0 zRbjU~r4)gLwrDgKBDt$oSLT7#u=ga|iK*;#OzZWrF+D*rUWdPjoUyCWB^iO_IP~a| zL_0B6M?*>*@r=y`R{4gA!Zdw-7gO2!{m)}E1K9R`kLHu?0#^3ThWe%DcPOj4-Fv&H zQTi^38JNL$f@AUqiumu-X(y8I*2aWRYz8q=CUH0oZw#OLmetxFA{x|fu@Be~2RNWej zelXrZ22C)1r5@AQD7K%zuIST-zY@dvL?bppv4*reqje}fuqrP;I;o7wdLU_8jeqLC z@4V>{btJ7YI#W^r(mOG%{sVgl5|?y@X8LLgNIa-JPj=2tlf+6<#_o~Q#V6{#FbOOB z<0r3|=CT|5nM51t_1;=X6>`sRS4tx^~L2q1vUL&%MyUxw9AGVPG$Gz@6C=b;*Jmmna z3e8gBe^xV98h?O;MoROd^>HAL1D=b)S1N6zTBY&2WX%BYk@}nPhn68U1juk@5`Acy^ zts)@tq`B{ySD_hfLDuP4nNZnbV5Kjb3DSZJ+7HSte26Y1pNvZIP$w|{+07)2h1`L)86>vAKAgmZ_}DFJZqhTX)j?1t(|qD;2Bzuvwc*WW zQ{w-G4Rf4+PVJY}esf8_?uTYzm-H`r|7nZh9!7-yczRh++yo zcBp-1RUn@1U6Z_pj&9%&!FY?4M{GV#+$+3^3G@!zP6sh1zP6yPg9MG&v4Js>wj?pB z!Pb~PR;W$CBy~<1v_46@a~fyz7y>rWOAGx`o0dwEyTqQP(F0yyKvU2mjYH&cjj_j% zsiV786axBbUL;3ipv@j*fT{jMLx1BEpEg;J9Um7t5?P4 z6-ol!@=Z5`S4;HJp3oYSz3YZ%Anbk+i`f;-w1#0>ibHrq@J6FWr~B-9F>&IawG;DN zA@w@!x*n^<{gJjRw*E-c1pPxv-GIYT>km4Oqm5q#pwxm-<&Iv+CU{vAR*a_sJX6}Ov{Ho$BQ9ldxH7>Uj(xJu zA5fz~?b8aSV&7p?o^(vNZwTik@tEfO;Vread8VJSdCfY4c#=fv!Fju+RsQk2A7M9y zq^?WiA<4VZsi58Ti%ZrXreAz=-;tb--OfP5E)@-QN&NJ4(Bjk231V-OrlH$3z$yKy zMyKAx2-c*Lf6&-Y5FmB*I7jN5+W6h5yzxm#^W6yPPo)OZPO0sH#P5yxbe+M^e7nq` zW&#&x{^x)%!%||oGE}MEF7>6U=6az!z!&pOhV6F2ya$`K;SD8UAx1I>SorP28V;y- zJJ5;^GoT3${?_VBDy`0`c)Q+?O_3tX$$N=RIsPztXGY z2>Ihs8^vYEDx7DY!LLi9EVwa+cEd(>x)v;7`MSHAxbC0j7l&w}(6YYSB~I5W6nsu{ z#jCqj+PXuhYp^;8`GvX?PX)s!jvWWC$a1Mza;xJU_h3KA@}re1S9r%-rqaFaJ)029 z$l1$n#52BfP0I=uaS>lIuqqH2o33{NmVMU+2Dv9{imdn^^h0_i^d+BwWE5%Jy`vL* z&9>5Lg80}m;Wl75xqwE$^qL`GZZ7BPY706!_LWL2oy!F&H`&e9LdF@gw@}Cy+@eJX z+40xCV!>y`EQJ-noD%J4c!93MW;vyWRiTANjEhtST-nEI z?B<-kOm8cEZL0k5bKRF88_yT??N~~ug5e_^yJb*|vW1uU1}}8G@Wh@~IY5}M^HWQ{WF@m_tJSBj zGq}HMXz_ai)6^lO3fHClBJX_|i%j zT+kXF2z+FMpEf=gz8GRjaQm9ZZ%MKe@QWC#6ca9@H zha$eb1j{jZUUZX_Knb)3nA_EmTqiB_oKe%zvpb$oqZkzG*Mf&L0h>2$)0JHYsND{s z&n&yS>)u&G-MLsi@#?=rZPOQ4<1J*u3zOB;=yGzIc6b&X=BNu=$jBqqf#%N*$8*5M z+Ruh%yc%w8M^Xotos`5YHXYFE%$K0=mZQ)!fbiM|9M@x0z$<_Zwo=Ec$chA3ug^>DjvnDJ!Ob#}<$W}2>ryv+T&`3L^2ygk*Rmxd^Djv zq^J;0%RXJj_?LMp(C-ixviB%i9=gJ>K-{2@K@J-d@YX+JiTPJVma$GV@4*U-$yH@b z+QvmF6t{{aY*o)07q^fvG`nWG?)`mK_gOve-z-OKVG)*-;vzi?ixtma7wH6VlV=E} z$g|NvBan6uZMw4VGgvVPflGYl7^b3hunEA})2UbC`n_+g-Y$x5`oeC-EC_sT4v(`h zQd|{f$IF5CX-N?TXeSgbt15TIk}*DN^g3?4-azc)2(B*CRjBlMdOjqc5^`6SPAA^L zmPx0DrTaQC^=uLxG)uN~XfakP7A~8qFK_O1D&;hH$nkY^FoGa{3R>`+jB)I;hdZ#z zI_h@92K)`jmr?Kazsb|Di||h_&4fZq72YCqR*TT+t!`uYA-B4a-Nfe<8TriVIKNE#)b~VFHU{CkG`10uM;_Xt(A9>`TyZ@+LzcuDNI3tV)(Sm#!UdF|Azewkr zl?434e1&S)H0!m?)A3-l2szom*X7?ki@?dT&MVRan;fu&?9*bw79x=x{)tOXozB(Q>I-%ItMP~I_@#Ss;oar5JP8Fz!^Jy;_0u(MO<<)HNybO&atHUav9@ZFz|P=6t&2SfuG~GE5bMHomE+0^ zU)Lx$U1#t!i+y@DR5>^mEFXF(rEfzyUgv^aLH01u#m9iMYIQh^De+frend{!LeuXE zcu?F!rY;mxs_+&K?R}5jq{{yewq}kq;B)(;Dy};rmML<8Wn*=4(&RAvk`(6X!OmGlo(Z9j%s?9Ty zbtu75>_{v`7DWXmnSQ(e6g4%T-XXa8lP18=;-QfaF_`IHyrtjCEVBpZT8x~=wT-Yr zNrP5!sF{bn&Y`&cgR|WXOx}1EtAo;oUVfkk|5tT-RT;&+_-=+ma1l2hY;mbByouG} z5NugqOvxYNWIHNh&XqYC+EnBTtQ8|?-d(R{ub4KIchYGq$*W+k;zti<>Yx@@us}Jx zt;MXg&GOwj-2J)odvO0aUKryxqThx`57!vT^!pm@zoYysPkZX)>sHtmrgw@ReHOq8 zhhp9n*m|Ad>OR4p+R}w~bfM2Z;?nZF4s8-$8y7|~T6)t8+|OBDUP>n$mFt{5iP<|* zmcTrD=}@>~&mf#tnFpTIOrAyz2DzN0f*vD)O7bkI3iHh6AwR++ zJzOs>q-7l$9Yj4DAnzw%v?iD+?8SS249|F3#84WH@4daiXDz5$`&EjUiY|UqC()a_VyS+o5;IO;}R2{IGX%d09_Tktr|0( zACc_OAaV&dg??6&*&FA~{RX(01x2Q=W8O(W=qS29%sg|~N%x4!dz{`sLuD*>pJPe_ zu|JABVvcsoqXCHKK&D6I^WBVMxvgi3bKp=)597+YE^o(!<%`+Jd*hR<63O6?;rc|0!cm9G{> zcGZS9uxu$NP!(;Eigi#W^eS`}pd{BzRX1nq%RANECAf@C_8~&(p*#=|$wYBr2pd!Z z>pk+<#^g9K)rP&=OO7$!ugM9lYniJ`T>vl^+#AqtWZ=aftIp#$Bz0}%Natw4V?~rX zuX;(gL7X8U^O>|9%|NUy`pP1RD~N3t+vrr_M{?}-LI3>;9B7>IdS&fLelW3Hr1v4fxvKdzO=L~OJwz3#oaDM{Z@1aL`&N-$iMuo>Pi_tG;PiCX%T6}-j=6HUa zbi6kmuLSl+7Od(mco5A##`Iy0u^LX|@^)dR6C4GP#~tooEWH9C5#`58L_1=ls34q^ zI8YQvBbaL+n-H2Kez| zn{RTA+}+A4rB#Bz9gGAHm)1}mOx1CEv*76+fCq%qgz9C)#Y^LN6K}}Pv z-kBuv_-TGvFu5nX@37NrO9%X5v+zl9i>&}Xl}O(j{p=W+rrnFnQ;L-64)vQ2E6x)MXGNh9#>FHfYPZCHH(hCTcr$4HCwayG&X?lO+ zPi|=*uNN7=GeNmWXi1!clJL2ZyjN9wK}lfl**7X(f07uwHgBi5sJn#;((z1$uB%2Q zH>ItYNIs6(=KxRU<+v!DSJCvUUNV&x1?|=ezD&R459(ufGkJBMd4|YU_bT2B|8%pw zyMVo7nqHZ4Qj`TPZxMR8O}B}-_hA3ek?%GqlLX?5n%&9V;IoXJnLMIs5_kMxQO+_tvS@jp4^#6gyV=9PnO zvN<|e;@yBd5ZFicrax$3h2eL8kQipBjuOOe=;&qsB93fY;7>O=fivvFZ`JWC$&}qT zx4OhwplbMVMy596;8j<(8p`bg%YbWI&LoP{`&vWA9MMGrf@0jF>t&VY zkXF7{9CVz1i*3E8!SyGD>&;^A$5HpD2#1*Cw>ol@|0|`B)0>@Mr?;GO^Mr9|_#9H^ zBC2YSE^08gw!k))N{1SFkDiWoZ1sS|KeOQHgY~i8P~$fhH2XHI$29=@lSk)I(Q|cUCN-^ zDv1prNP`^mP6EWL8BB@%oDjv>*ig>x(do53;sKX?t(M#AL3l>RfCqE@etCngf>%uFgyBX7o;A+xA!yKMB;w_7$-ov^)<@^{<=h^?t4N>9Nr_zk1!9X6g3Q|Dd5i2A!7KuZ|0wyM=OL3LV6^ zHDt~!;d03jDwR0>0dZ>Z(>rV)VUdFZ;9{BCZkrjrvVym8SaR1%m!vtf!OIhHSNSF~ zlCo6hM~Chz@Fkjl$V!iN8})~r!&P4uGii~ zfnA=FA8*5W8?q>6Nv=Q9{W<>SEoE0Ba>Gp6lH)TK(El>RwYW?S^*aL&`RipV0axj4 zyh_q?2fWOA)nwXAc&BnJn>Mo>NtwE3W{Wj|MX7@cm|3gY*T{^6N zrw%A`D*vBzq8+ikVMiN+d?LZ6Hgkhb%)u*)c1uL8N5F_HtFe9ogV;OO3l54fKu`*9 zOGi~$yk{=0U=xeMDHB*V&M64i{tCTnARP9CJl z>K_1D#mshxnZYA}&q@}U1aBb#8&f!}Vd2lh35;A#q%n6p93~`fT3Bp(Bvz%LWArBN z?BeKw5de8WhQF0Ql1JrukhRkZ40kxn1|YnA2!qEr+jEBHVmQ|UFY{GwQs^4NCTW;#K8{XBL-g5*!}$*3%h#V8XP-j>V~b4hkm*;#xkB!C zDtt!efPCbuEMe1ZD^&H$GFGA;3m6%(tv{Nre9^*UN|;`Y987s>pbN!Wlp|n3X0@wg zW9-pu{?Ou6jcC!!u1H`X$i0}_)VYXBB)L1|1w#KOpsbo&oK&UqFl7c$lz11)pBIwi z9hi#a^#UUR6M?&4*iy`MS-?W90p#-suob?Nk`@~gcE+lq0a7>|^+?E~M_Dw6V4u8? zUM&nZ2HYBU2%aC@DPr1F1N1UeoQYR#o#C$z^Y|0V$B_tg@DM0YzeQb$Z~LcT^P2^# zkcXV2Q1p@0TQPqqdRPbo;LFn0pb49xmbMnl=#{MiMJ|d$RP{GAa5{HY3W(eBYFh9r5##|7XINma*%00!0M?x|~l z8|`VITDV^5>HG&xam%$zo(bCMzbZ*NrtZTLUoT$&a6YMFs}$yM6&%4}99&;T5%~*T zyRC@}@S>>GeBCyBBfzFxzdjMP4OlUfn_FKLyzN zx7|$V`vgxj(`2UC@0d2!~l63I&#M93bC{MvB_cV~fTiTf(4U*w{Pqb}wF<;J<_FXO+YBbI>=n zd3c(BAE#e31)Y?w>FJljjJdMQL$8C^zLdCz9&E%999^lLMB*Pl$cb5SsrI+$R(t{Up=S#P_t5VREN46XW6 z-_8>b1=K_P(+xu&I-R3(GEVO_25kH)%cQ1@3gTAF4-0g~cufr{M2gx%;W<9*=~ZY( zqmqe$Q5B#%=AgR(ptm+)@(<#5g-hsfhXS?JRO8u@OmCsr1uaGOLaM{ChM^;HweIxW zID?zs3OgCGsnbVt z05G&%Y-Xx(o`EMOm}0^xy!xgbkxuISLN6568OKq|zcEB4B8T$9TqROHcujP4I8e*4 zumEj^>rdS}r{fH!3#;Utv*I|t?XUB!m51vQICnN)TM|byLozP}Z5$Ww%#sP~ZF;BZ zYQ^h?BKjPe!gAx|H$p7>eSRsEi+SiupjeWsyp#nZp_s={~80#x6_rUX}{4#sarE)P8#<4&fgO(ey!f~?n7 zM_dF~ORZtd3vkhz1F~lN!)rk9+af7~TMh%`d05E$M$0Llb zYC_kfxa<*e#+gmy^$ficXg8TDZBPrNSUHw9ePnms(q zjo4P0$u7wnicZrH-jVxkbP!Wj$4Z~nuQ!ve)5Gdp!Gw+!&Kcwr#B@OuHj(R`yQc7Z zf#gT1z^b+D_L^dEs!qRFviE?Z*9m|`5`rEHNOFdBP-kpIMX=j4kjZ@(Ytpp@`x6Ta z@Rde=x(z>glTQmcft^inSf)S9=DYr+DF!Kc>Xe6a8#H*JageS9R8=FOH?dYm=6U)J z%~q1{_Bt>f5PIQ!wVUFMZRq#|V9+n1@e~Jv?gTTvDkk5pvSfW{Dipn5oCI_Gdp5%@ zTKY-LCuJ2mioGcx1BRS*dAQ-pnM_Y5*Na%lM2PX7Vw~w<2+vD#irP)Tg{*Zjp;uLH z2Gm=LDP>;evH6#BVR)mUOK`e3Yw$XO0weAF%vV}%@H0eI!s$g&^oHV-i6$Ii9Le-H zz20arkz#MUrL`;2S#ah9#+8mo5PezzT$KzhQUm) zqz6+K6^B(YenY&rP-i|S>LO{21nw^b&F63n$J^hNI*W)ej~t&*w~)bhB_PsSb9yaK zmH2e)4J^>atf~*iKk0BTdJ0)|Pe)otdkjZ!2&2wg7B0hg#+fvj;7W1+fJoO_v8Q-) z1+JHr)v4YVjt#d{V&JTN`N$F3+|Ey;L-pc?#^l;QYILA>fhLD!!w zfmey3)=sJ`ayS+_xlN((h2Jyz9W%I-{RF`UI5`Zb*mVGFGMs$z11 zdh=$ufy+Y&puhZ`@4SM6Sq`VqMw;*c3MeKLj&kVLh+k{WoL35$IaSiw$pMy#qK9&% zuY+d#XmBb*rndybR|KnRArQmUm*<&xO%{g@Fl%n!tI+?+-I*;n50hc|oEy<~sj=D$ zEeVoc#<>~x>A(z30|O_taNuxX_*=Buj+>U9`G3Ff^L~<-*pB0*jx%&zA4tbzSi=!0 z4rewym_ow9m4JA{B5f&ek(EK0^c8|(5Pkqhxpx@wLf_pUCni{vV7-%Q12u8W5r8zn zAVE6mz|!y}efpjpMvZzzr3yZ&{}n_cBw3{(PLk4oR`LioOs{D8r8%N*U|2*aV}f(t zVF>Kix)_|WlA+WN!)G1=$_PgGl9BJsz<9k>XtvnNZOqh`W5QBelds4#mXg~?eodp4 zYC#CXuc|FeJW8g)B*^n|19%zQ$*dL zBO%AoC$}=wK$H(jp_>N9*++^L0*uueheU9z_@2$W8-8Fo*uLvre8 z6`7`fUVHNEg&=COI*f`;vsrRO^N=rm7Z3~^ zd%^aR6dFbWVVM6*Kg;ww%K<7K3N$<#ne~Zp7tS!s3dPLNFz_#I0b<6;z)zFG$Ur)M z)aiQplJgy=EyaA56ojbE@kKt%2L;i>ARjCB>L7a{IKxvfKpIzpqvurdq*kLlc}6c{ zmb$c}VKA-nOI2ZR*fzRnM@hIUOZ$49A&~a+Gp8M{u&Bd#IVNDYawMF$n#sUpwAJJ; z5sf-;AyByxe~`ix>6pBiUdTG!;_GF*rK;Mx4-qLhtlfHvC#<`v$lmgU6tETs-Vm4N{_0D%eUrU7cz|33sZPfI}mTR^=t>tK<6Mi zl!fKTypPk{M%gJ>hfxuyieCYH*{XQ3WjbgT3jeEUdj02&Yqi-6>k(pw`dPk6Y302O z5Z6VUq0?rQX@lp8TPxP_TtX&&%2=LPxM$ashDq5b#hhBM@Laf=G(*ZRue3eWPCZ7s ztZ7l9U$$n*xC1$V3A9(D3F2Qfr|)#7tK%T1QedD%QAf~8ws zqp0}bh(|Nne}o6&KkfEXNQzrL%9Ot9)1R(C393!~UC|~NDwEE%?9^#d&{R0Rs&(J# zt?s;!(?`bZr9$bA3{^hqQN}92$mM*?)2n2sOdE4LDDx%G5K2*>GKE57qc|S7dHTzp zh@Sxb$I+=m=2Pr-5TfKQvRlPi@E@Ugz3g?!mFn@`@;*cPz=sQUD8*3q(1mP;oi?ch{}rsBBSg*U@G^twW`Q(p7+l9_H3 za~62*9$t~mE!a>(p0PnMGQB%^(c8zi^FKLS`YPZ47~3*$O|YO$V=zg4v4l(tVMqx37$_ z@Sa~YOFk&`P0l5sDMKh@I8{i9u}bDE*ekkW=)=58mG4W-*J-?7Qb^vzD%Tyjxxr#$}(1oiaNqHtDV~LzBj1mBajCov3m~?zbP< zM#aB)!Ev#3rk_{ zb#jW*^xn8rtr>R99@#f6kc~Va7znNx`)`NoPj-4mqWCUDzU+@H56WAOjEBe-;rML{ zuHdk+%ThGSOQCg}R@jzsADCgrR&-TV+o`ZWVCTUlYK8<>qon;UO=UO=2cA-^onj~>Cv zb8;awQ7=Z1%%u{&Owd)7Te+iGpwk;R{1vY;xc+1|Kl=rS4#c3)O<)mW6RqG!i%OSA zBz4(M0^78(@_n&WNFJnNEED!l7IHE&*VFD6w;XG8lFc;E7u_;P z_SQ!BGkTFe0eqE;0iO(?a)wZf$>)_-q4|uREM)eP);Na-w`k-g=6Ft+oYz}hyk5dS z=8;gi>awp}_T7sF>?d~K2@2UF@*d4kD2(t@e>WU>`E7@~C7pNV)1Q2X>D_&g;le6j z&{PPr(3sJc>TFf2%1+28-5G2<*7dU8^$s{^5QSvH4T4p_9{pLaYgUFb+CK~I^^&<) zr@O~Bnv6%kCGAw>f9JVGCo|5rWd5RuaOx#i*(6o~crR8cB0FiS zgsY9AtE*1liM%k(UYd+No4@@Gt`a!^;4H*EcjCGCg8-3P=z{x_@OwrMc}qO0(d<==&F(6Sc*b4jf=jwX z3Gv;+s(MT9^+Eu@eMQ7$Q@CD4l|I*paO{)!QdHadZg6wO9St5i^S&R4}4Vc0XcKWF8dik!!DtblQ zDW4!LfiLr{VxsXF{vqt0N`S>R_u4R_flR*xJIP*!V+P?X9K6vbjsq}WH24Y}QoYSJ<)y*UP5>yA=_P)w)l(ROKF|@Ia3! zR-#=mXjwF?)ds-G7oD8O?m>p2ZaDM??3MFqAh|fbhoDqTJiJIe$!mch>8L^GGbuLu z%2*B=oHP|z7@0TC%CIQV4+7nlN;%DZKj691cH$E(+hjZ`E0relxQrt6cAspA`9BU$PT{3jOinSd`P{@8P%-PkRBlJa`6d(4^He=+ zR+xDra+>KTt3pAQvQuBdShE)EPRTVp^$C(xcyx^lGJWv0rVog4xPX0}kVy9^La@m$ z)#0n)H5iGaQ7vlFqlE6j5w%DU3WJ_rGlEP%w=xh!9M{4iQG6#w1Iin0$)Ay9&}P%D zZu0dfRdx?5s0M(SgZ8BByx&GsyIy=y@uUv$*!@90YKx#r1HqFd6~0Q^lHISKZL3Cq zci0Z)=9_J$jj++$f^{k`ODSvfUqkqnK4R2)n}FvoeUSD+df<}AV;eg{mvv600_=8jZi&P*8}rK0c^q2My5SSr(92r`dpd z?FIY85d2WH@O6T3k#gqg_q;-x`G<9LGTZbt|5x)6V6b!HS^2r9=l{a1Ss&)%a6}Ou zyC)m1L};Xwoe~}a#fyrSNbWOC9|;L;#7ZYgJzJ`Qt4@RY0Y*B_ zLy#!4XFF(y>6Hle*`mFuuWDq|B7<+*8{5%Qg1{MI398fRk4mujn~vg*4ESUc9&=EA za*<%}l&h(x4(dgxVs@S2|HWZ*|1;65`4`HEQfPV^*eR`YAb55~uWoa8(Bc#imc%Io zj$Mm;kP*6gJjxx_JXjc>2HQzPhts2{R7l8*w{iMd*0-m4w8tkM56>!6_@Txs^qM7v zzMla?5D5+vw382NlxM(tFbVLjP6kuxW+SPSCV`VS;VmB-@YA}2R?_08k5Tp!zjmKe z^1vNZ0hV(Yoy;&-YaUFHqnBc=%4U}`*tWExo(adD0e>ms=qx35kIhU*1RV&Q&U@^O@z z=99A?4jRLQ3bQ^34LSr;*|X1Pq_(qJ3D0`~r${@Uv3JTKP48$RJ+>`}=^Yw_lc1h; zdL_5H2%GRlg(OEWgPPChM>P*U%xn4`o_7(yKd6yS2Y_b~t4O`j3CPE1iSVe642h*WN(XR~t&jsU8+*9#;A;vOUzzA^!L zjBp>sfa4ofJZdwsxdLaVaaKegnNG=Q#PDnrEc``9@E(Qkr?!nF2VU|QNy`cYo;Trd zM^Xx^PtX)#7yQ9QKa@88^as<=%={_h^z-?Dr+QG0VzWNm>F0)y)pN4Sp)wZjL1A2{ z{j33=+hh`^0zW`CMJMBGO~$I=sp=9QdI!`enOKE|&$|Et&BqM{PT8at@A8wrOmw!q`or3Kpm<=#s>+nnPn!O4l;umgwuz?XV_?E zDsV4~yqE==wjeiq;oo-~N72(?_&qtVFIN@lv{#~ASzFnZs?bc-REy+fg{G(DXQ^x>E9Ol$ql?4qQDWJVR~g?v(52|i+CSnW?vvkQ}@F6&s*$dn_|I2tC`XhoIWBUE2WkEj0X_(E;{Lv8v944ln~~2xIc<{v4BO)O z$ND~gZ>rbJ5ziI&C)xBcvO+Jm>KUvIrGt~7AU&_zc)RhR#s4^38D_fKcD)EuRsJW? zZZlY$LL2F$olhsf2=SXs88`X+)7V7%kg>_1kFw2$@NoZ6iKU*?UBK@(M3e3eHiqk^ zsqD|i2~o$;yhiO85Aw4@lWqq-dX$2bi@0o#d)@g=qZIIs<{e$)qGajibzLqGbicMN z(1G&a>P9K9OUnxHgKf3Vs~+ZG6q?n{Z})TNmA0GfP&2NuHeY8KV!uDArwA3>web7mPHSc$yUZ)R6FhrAVl%mkcRUOE$mjdbVgoS?B zBKs$X!wChBZ3LDqlr}?py}&h86pGmC1AT5n5AwX}D191#uxLE)EeR+O(mhC|PMXG5 zt?_0l>T?FG&G)!cjcQ2w%9XkVe+_!TrygbYwDN+xUY-$7>D$Jba2qhOd68h*5^^Ds zJDJ=p3ss3u^*F=~xNC9Pb{?@s-njb^B{_ezlOH7P3>iu(6sl%aoyN37u>dD z_6trfV%%$PLbK#`FiV;~81S&mWHQ+8P%loZWaw#s;NTk02n$(8$$K5X1CX~kmVh+j zpOP4lFN)|d`6&v^OO8(ioCeDZB2}8+YmGHzFrbu?=!ES?XlzZ zAv?le8aBAyDj|MloAG)26Wm#>P2x*&df#og(7s(TbAj<_2g7*64<|9?zhU(j9uSjR zIPP%Ft&MHZv=)0OtC<{0oj^yKJ{l_@G?y;d3!7ozFc8kMZKl778ZE@;*!U@3SI125 zUxx8pmj+cG9f-n z=I2~Jz7&!IczWyP^cN!1pd-Wdk-<9H^>dt4&1VX**bH#rn9O`Yzv2Qh%3h8XORb}2 zW)cPI(vtnmA7xa<>t#E^?n$WehJehW(?Zbq^vWU;mTcuHGvRk|IaQE)1p1|X4%DFq zTR!?J6+WdZ6`lsC3jNj;L)H6BU<-A5W$|f59cmuiRL`8>*yk8mL@!@%qrMAe+*yLu zR;(NO6S75KM69%%_j;l4USerSsBe&m`$C~mmDd34eLK)=KuM;TyriYJjke+_O`R(K z1XsYjVhM%$G>v1+q2lrQ?KGULO;peGADTW&l>oO0%xQYdXf|j*-g+(84RH0!qqG#u4U|jNfkVB~xYrt!hg@n+pAv)&+KJ37 z7>`?skDE#8t*REjs_&CkVeVdX)aO+iBO#dK^yxKW!^f)J~)?6yV z1KY#eifC6`;eGq8#S2lVgNm6LvU`T7RM95}c#ON~6hpPuJgvq$6--p7!Sf28GArUG zg3e!uatQfL+G$`@u(JhIk^cMsae1zMukf;`gUax%BBP_ksxru(mq=eGo6KPw>sl+wW^f+vHiL2uD zwgmGvzh2O%cZ+_#BtL;$6kal`PGk>Sh)kZyKWPTjxPFif$%Ib8-VM$U^v01Z=4jh- zoPrw*QNS;MF~ViHjFrJ*Uu6g?7je&FHhQ1zUb9o@gvooJw^L}nqDTRLB19v?xio!1 zj97luU-b~XgL$0*eDYMuHk{}pD{`0a6{vWb%GN7?J=oE(0wpW~{puO9n% zZ9LjSgYXozP2Qz#Ro-}UZrQ1^&dGJiG#(4{?m#yhDOeThhetWLzS8T(@C_1s&SB}Q zEtC%suwe|!+;XdLHuW$)V#_|gl}_LH`9B-}D1OaeEaG0eUbZIV;QNWsy3<(ri|&(K ztjwnn-EHWT(@!k6i4QfU!W+0Po!abFm2ofOc+0KcBHT{j59CfI7i$=EqqK#3{0N?7 z%%Gp~?qig_rUuwU%T@RqhDVeGvDF5>C*>*y#b#B&lLg87ByH783$HU(b*_=sYH@Ly zwYdkZ3Y`)n=YIIHjiJlVp6Tj-RL z@t8sQg5!|+u!%PSCI84SEhpBZ6v;h9NRPv#h*}kyu4+%DitJgA8AO_nCbekhh-USs z#VVexH0VPB3xIYgOZ5#H-gtluof3@N|mnrE*{g5NJ8V@E~jTO~4bB77xSIKyKJX@&xLI;mc-a z=u}~S&nV?vqovZa&+)&>?2y6y6DST0txd0zXnOlMKfvox20!>`d9w?N9oQ%y&ETa+ zjBqIm(n1D1L>_IF@HIR@D-9dI5F_`~Z-NBksXIwFy@Po}W71TM8HRZ|hlGZ!L7o~j zbg@a>bhuuaTC=%6y)r&Xwu5GvUK#c*qT7K@u=9t6EQ1p=LFH|icxq6{I#g_j#R$`D z+J&b#Y5VB|ZzDsw*1_AsY$Elz{zO{Iz?YWnvy*YOvPuQlg!fO*!BvcxD3n06DEXB5 zdI<%`BL?m`*uzjL7m1d_t=RwMv?=0&lg9RfOxJo?UCO}I^5v#SS6Q7IowSdrnkGs;6GKgsgBpnnG^nrc$3FW zsjp`b$|Pz%)t%aQngQcI@Li9$8qN&(Bp|Moeg%`sW=NZQzW{S>a}#sm5x*aBJJpH) z+Eenl?0zmGldI8GY-`p+)bV<$Qmpt>CE-=Ko_-g z!ScG};FPISg`SqTWL)b_#g+c|fK{W~T*mt$MbE!IzRdHmEZv(=1o*tTjeka=$MKHh zNsVUba>&5H5zkyesDjkDZMR!vIVD8lM6`Es=xM`oa4I7`2u>r{bMfP`2SudcB4tW9 zg=_LzaP;gUc{OTCBg<4MO*MBkamKm~V=rgmWTCM%JHGLeS@!Rp#M>{;ea}@bmQnj= zLii3Ng$46yZT9QZn8tF_tiVFQ6k>zEq%#3NtP1aE2R1Ln zqOfqbkUZ@oJDD!PZVR`QtHwRZe?AwoiD(0~DR<-5bSq}?t5Q9) zOFdNmoh;atx3FFl_yf2#oBKlHx*ArKHml`sznNHS2ifM^A+$Yf?q;g9lXf@8Hr|@- z^>S)sXybS+h0?dKZF3oOKV|2YrgEP;+SdCgctC-RNW!R;_!< z?xffz{C;Lr`c61kX&do}w3~ctQrJnGyM$Yo)?K`~`vtLCobXMg8y0fr#a;*Yv^I=m zK!wCEmIdBWYc!wn9+a=Wu3H#aZkGibZH=}<{wDCcQk7!CJ>moI_QJ&#eAmbJkWDYu zcLkeqJ<$yOAlBjhC7??v+bZsF`&=uo&pjj!Wxrb~zNK4N`}>Li>|U1^(WwL6?|4xS z%FDs_IcJ#oHf&CodHkzsXx1*hklYHqAJ>I*357y6QiiUciIcYCHpPlF)^j4L54-I_ zH`TmY+m2)BW+dq6zQ(9>MNrRPKZ?tY?OZo%}ZOte}Jrf zA%~-IAwJRNgwG?2Ph8&ypNTJfS|_W5VB!(I49SJelt9`-aE2-Sa7>lf4cGApn7Nkb zaUzvsltfkoVLJAMz+%6q$y#x8v*wjypfjLD4yWz zW3EGy5QT7F?ajmQWn@P~c_HO=?&fh+Aa+V5Ag@m1;7Y$1u0LUeHG3cO6?-Yrax?Wt z`Zm#MrRT5b;WzVttDn*RJcQ|YaCavLnDTF*gPdMx_fh)UVn6-%QOQ+pZ}|9H2nnA9FFtQyW{aR z`zRkI{P0wRf9UXUTYsE~Kh6JzpXI?mDX{51usu!hrErjzRI+)Ip(#zTG|^5$f*G-y zZQpN3aq2+_?GKt$Yn{$um~Qz$Xm}5e#I3Jq67QdG%u_|E z-b9|(**@^!u&bm4Ggt4Y?>cYZHMbUW|LN^pGs3HOiD)isT!UrETisXinU6qedxX2S z&+C*T8=hz&zN~ai8}eoFn6R&ILQB~**7t*K9=R!gx z#tpjW)f&~`uK8rrY$rfo}$ zj7Ng)B@SBDoWh>r(J}Y5(>qg~-p@_Xxk(7G>cE{jWv+X*ok}0L&k=_mBMp?9X463$ zDvZal1H)O&tYCmSKN>{}Yw~(&Dr}`%G%iX{%7O;qxz%cL`1TdJ!)nAuHH_yi?-i+2 z0RRSSY0dHg58J2&wJ$maks$dz2vG&|8GofO9b|GksM5lhrRD6@IdcZTE`>4;rwVnt zD%U6~-oz#p8VeUH%b1)lKH<>gw3z#9J-~%!g%8tv3AP}ZY2);^)4UtiLG46Z-6h`Q z(2V6&6WS)*q-EyAQYpkHeLYmzYy&)goSGDN(s*ohnNTTvQTS9a>?8hnWmKNk{h@4p zv*-CaM%$P@YL6Fva=gne>Oy>_1)Zw3)5%4KMDX$fZ*>D@vt^cycZzI{mIgk3ULon3 zO;iz)w{08J5LKe-7pSk&lJiBo91e+!Tb*d%ol4&6R9d$6w2x7k-fy|hK&L+?Cc1wL zxWiFmyC@r;1t1zI2#s!llDec-cj=7UOAwvY-> z>T6D_TeHb&M$AjdIf%BhYS*IXI_xaOR+H5s(|F8WHe9%+`j$ubyRFQ4pPZtP(aq66 z1(j+h0Xdyfw{*QEj~T9){=q?-@1;*~&hBS^TgIHh3r1WjMs_|oXQb2EHk;c~9aIww zucw~R{MSuzlXCnN@c^Hg zJuM3F!uI+TCa2geSj2Dc-0!0dPxxciDO@jKC)*ZbnBGaTX=m7P;zW1n1P z5I1_jbJmpLRAJw=c&D1sHhm|YOG@;wc8i;-gzF`T={+N#W^#af8S^*=h4v3~ovEp-KepDQ1F{_Zx9n_Zy z2AEKCeCRQvh_#NTxmO`5eRu{Q9jWl_>Cc$GY6RVA;T01Z>GgtMUOq8KQY}1nu8OyW zS4t1V3yL81WTQr>M1enM=hu%H1wse$ZF7p$fWgS%#9pyOkwGx=GAEOJs#sDX*){w0!En7WkV!U=4U7aQ zv=HZt3dp@Q)3M(sO}^d>3U&myIQO>2@l-S;_*Xg5USw16|X(xbiH652CCFL z!udZ^aXSw^|EU>k+M>-9l?X$~?nQ;yOW`y-Wl04YT$p4CA2fHUlxJPDUN>mddaYJX zf5C;vD|O?AXbg_F75TR)QBivkdbz@KbKG_ zRAoKAGV^|zlT#I%Enb2O$%W2@KuL!xSniUiH@!9|`C6NuS9Ko7EMm$0$qM zAu`T<$7sae%x7gg6;yuuJWJB3Oa?7H zGKlur!N_?m0;?!rfy+H7+5si)rM_M;{ zb~-!rU=vXDNg6cODC*J(c8N@$@az}RBu&@c7Byv&l z8EQRHTWF1UwS6kbvbH|Ie|w&tc82K<#j4tZ@(2A-pj6PdkPgd6$JFE5H}le+D&!MR zA4t=CpPy`h@9tcd93-MJy!S==xlY1~bEIivcW0EmjHR2Ya%DDdye$&nOU|WfASA|H zX<0S=|M#En00F`fLdfkaoNL6akVb0-J(@KbQXeAJai=gKyv8VdhWr|zzDyqmIa4$ry6O6?}TN&(*& zfn0dh`kcaF$3Hh(Pwi`IqPltJTsy42e35-omz!8FsO7;bLEJtesO4OIk4E-Rzj9lH z?hh=^{c;rDxnR!6=|7Brp@C0$UVhy35J42PnuQlkzc*C(wu|y+sl#Db{lg}wr#kR3 z704jb`JQfd*rlgEYI>v&=s zdJA*)RD7V$CZaD(15Yh;hgocVsR2VY4ODzU$9TJN$G`)4RR`wPnD&#US)30TSr5QU zhdy?d^!~CnzCa1vBp{M;)1rCWXnn_+z)wh(GP;N1pJusWHvHpLc^Li*r$r#QisAP% zt_$?+5&sl>48=PI)$5ODZtbDKfD>8omn^X-@Mezv9fBA}i36%SvyyFhZ6vK{@@zcF znQ(6BP=?z@UPOxgyl`Byqd~mesB3-d$es3xn)at>_cCvk- zrOuixBn|wCC*;jLJPTPgi=`i3KMeNd+=MTKjo|gp_m4`I=#R{SFWykQf%cxx(sHSm zR$8btTWD{qWm=MIZISE#9t_po+Paa~G}`VOm#YN9ZYncBy2{q9lQ?NYZsz3^L6 z>{C_#(xrN4=b;t3{%9r_mofJu4FwSJ{b$5*#Mq&MnXLljmT7=8dfE3G&uXum$4K(d z!}1>=Nf~7S?jFy`Hcm;OWa435P7TCLZX0hG4ju!FpN_w0>H4FYD;_35CP`K*Ig98W z2)7|mUC}#p45(z8+BMuRMl#5z6|1eJwYmt1V zhH5!ZH1remP9fnL7lpQl8CDu*^I&G@4{K>9sTbof4A-K3C?<6MfcKM*K=Y5z8HjC4 z?Hrsdw1Q2s9_WSa=%r#iV_UD*@HcQ`*ZoxPj{~sF)UE9uhfgFASbRhD?SargB3_l+ zzv$QR{+~&=qPC+k z^ku#9zw)JfGhSnccMa`5%GeEy$Enoe6Bs5sS8|4OIARnh8v3WKx!dc~sg;nq@*4T& z!&1c;$Y$jFQ3a!!CxK7VENpsv{f58OlI@4^TPb?%Fe&kbmcDH0TQRwHW?W-BnRz<| zsWp+I_v*X|7*=xCb5Rv}r~Eg?G~;LGd-?S%`7bLZqW6Iitlus9Y5d#48*3EXM;Nt% zh^aWaz}S!SX&*;@0}+pG4U31w7GV$ads%X_jVlQPn||wFszDlB5(#_pOpQFierZX_ z^8nKB$H$s^U}%t4CDZk1g$`SWPbo!Gq9<2LAIHCO zCDY;XDS5Muu@bsDhj|!qkx0_@CyoWLKb;v91T&ph#^}i)U^dEq?gjbx!aAnw&j8s# zx2YNmdM}&okw%FSR2|zv6QxNLuu#X^VrVc5$+(gSsdqqL95dSy!T<$&X^B9SJDi9n zD&VaY$K_ze>rzoS?vx?yPBU_Mn1)^zJ#Fps*?KlZtvqMHz&nDwJ?GTe4%+P26EITsXO)9$JX-MhPP4g9x>3Zxk1n&3451 zbntFol`gy-TZPPdq@FYfJ1q$YQ9P*h1MnCCEb~Bw6fyD?GD6JMe|qPD(64wh_#)KMEY* zu()5qPp#Cv{M*5=Y_c-j5n4#2%EgO+&aWROCjm_j zwJX4gM&yfQeMBy|0o63u4%Z$w;lx8Xiagh=e9uXy&bxj&TXegOf6yRn1oETrco<9B zTud)&W|Za#Z)VgvtT<6v^a`YY7DG`P{~q7r=z-7LMUEc4nPcxXh6dRps6t-5$Ec{! zrvVq#1`sdhh-Pl>p}>Gf*AIg&vk#D0#Z-K3njy}Z?z=3^+F8fVlC1#{qm>2du%e96 zVw!inT_)e{js-p4Q<{h!!HdZ`{FafV&_NhZu~Kt#K@)2)qLm0yjFQ;x!j1=)oK@Xu z2WW6+2h4095*rWsc6pOgeYzKM4YKp{Veg};h7$xc82yb0-U!4!zF=viD(~o+b`WRQ zxZ!qTkjZ!v=uUA3iLC=^w=u1OCVC9=w*Q4-K;P zML9uI7$6$h6yzuNyqv_b(p!fEim`_A7pH&-- z6QENpB~_2nQAMSUM*;cr3X>P1Zbzf=eA`c%DYOgoYDvw)xC-a_T%KAV99xvS{){YI zo1V#d9g@tDVK%U>x{T3wik8f;-r z=86wi`FkxDC+8}LZN!bT`CWW&yk8XSpm^}(kyT0KpmhC8ecVd5Wau%@)5HbJF1Oo>te6z)#pQ{V5%Tj(`W;M}tuAwuq>o3TH&FQ@VSoC^=z1rc(j zFBv1eX)W?na6;3%$fV2Ytjezy1rH4s3X3j@AbwVu?RGhi7RmrVi&Y8s!_yXcIgKPg zQ@X>!Q`?-iiKosWZTwAeO?FM2aR*6J)qW;agREmkez3ZSiD)95l4jm}*l21#Pdv`d zymNgj_2&-PExgeSMb$FB%(_R_J+%rAc!gqEyu-F)s;DGSS23Aqc*}78&~USV*OExp zEzFxOqiXavf47TSVlP93ZQ6EGf&j4|uAULNW zDmy#5^U$K$@Q%Zn>SH(U_nSPmMs-3JZFhOks^x!RE!+nRpX$=eA`nO%Ril~10_F$! z(&$q#2(YJq&H?-s^Hy{vW3J?I#uL_>90srA=7?-xVQGsphCXJf2fowCw-udo5~DYW z3N48DwfpU2jo0tXTA#jWshcTp7OY^VpZOZ+2^>`1pa#b^meJ!o@$vNj0Ic@*I4YAg zx37w=k!{ce{l6Oc>Z4&QBq5uGN-cO$4Gp+TVM5Q;LHm1_Xu!o>J}#-1K+m zC0)Pf`BMC*D}McEcm1Z})B(Mjd-dp{fWBkVG>%jNvlxj^5`eX5IYNNeKo(14X9wk7cAaL!p$vtS40l~0|+C^v)FYOpUGl|a#O zg4rmFjiWMJSVHx|yxlN5n1MQfEDd>s8!*TQ{As9>uXO#UV1&4)FyI7EDFsl-kQD6M zRk&SrMl7_Dj3ONGsEkjR(sMeUcSFn3USaQe{V48mBARFdUt90M6O&#`TFK2Y%sA03 z3^)%|gRdxbyUh9zAS&krjEKDqeEJ=uQm}vcYt&D3EtuO2#4wJ3_YEEV8Ms}JN)gP> z#xd_s5o&7h@l!D9Drob%nkISzqlQ=dosGM5?g^aH0L9%C2onuZ@pdWv$ip7$-Oko+6L^SjYYYb-q*Qse3cXzXQ~O7msi-KW{sV_aZVgdcpSuZlXT{e6Xb}SxZL5c>Ph;Elr<2 zUw{{l_?Q=V`l7GV1&#Vd-a#bn6YY~?+rN)6APb4KqI_RxI#!GmDpCb>1 zH&%3W_ApESq#>I*Ebze1JS~Cu#^$a;L+Ko-HFH=%T!ZMiq;+-ndl2(-pvf2^vgKa% zbT&IVX+2{@>bctWqYCb(kNouKtXH5K)M7)ekr|m!bv;nDaJvYQ=$24$o8@1>5^qV( z#v|e}s%u+^X014%cFsx>LONj7pqHBo^X-S(MfihsZ09*NSZPP+MOk)Px33!Bl9Z-* z==!gDoN*S1YN{C*4h?jVK|NxA0-hIbdG99G9fVeaXYDEK9BbH;U&D}Rpgi@?CbpfSs%wY?%*0!4Qzqf0FJCX5cNG~+ zyp-OdQdkxb(5msrF^=&~#Hp&m4zog2KvX`!GD7vE7$%GY)X>sfGe`oOf@`RdIe3E| z4n{UgO;&5cz|#aSDCVVknxK7@G3ljRqGt8|Kxy*>LX3DwAK!2H+Arjll=xM;Rt z6R6F%OBnbd+*?Y2htp9ssyek-wH1Nuhx%OkD#32XmH1t3O}9(bV3x!vnmKWAQ;O;y zXG#sJXER3y#BH7WUbWNe5zY{W-qkx1C#t(5D1lN|%8&$h{F6QHW0crHaLEZC>;#tt z@?zz>LkYH;JNZOpO*HiP5a3T@n)B`ATv!zXtP4-_--xyLocyU>1h+{4Zdkzyf&w4t zR|=45nOs=p8f@&_NiX+wo0DJ+;LW6u@TV}SzZr;lVzX~L&(JB~F2%LIvU?oDA`LK$ z582PdXwTxKaqv6Qb#`~16RQ%bsd`IgYAMm#;C7kO*xqg>)$-tNRod!bCXwN@;;z7F z7y=zImb`Q_8*mBl_JA{Wpm4kVF*=GkQ9dkCYGG-f4AQI~MW8$OzQM|dN3(!l=rh%E zFDlTglG&aHzCN4p{gRd~9wIrXVK8$I-qQp@fsa#-z8@xVYbu@Ojjz#Oi-x@VS8?+p z>Aw1^%azg2En`^5!NVULZAs~+?jBn63}JeXy+`MiR6|Ksk0h2=J*+)+_xMP8Z7cmz z9cNh~K!;nDDn2HCjn=Vd9jir=u|ze^JD29UC%V_fmf-+dfV`Qv-RemS?{--ACCdOa z#Vlse_)M(am(|S!fHyFU>SW$-+U*i5@s{v+r`x4wvkuJpz0SJS!PILgaGt<1>2YU+ z?;f*eRoUItc(X6}S%?!rrLcu7u+O$$ZSG(d=R8AgsL9V0zroyo*l<7jy!kZs%d$0f zaQ&#srdZ>g&oxxiZM=rICfN&ar+bhOb|1!ZrRl8I!g0oVKbs4AI1A3*CR^Bl${0wFdmN~y&;>x9~F3J|8 znVbr(=r(vy27lN*79az8%WkZHO4yJ= zRwuJJSmr^WRuFNdCJKYt9*^P}&73(ZeCo|yP`Li6l@?;dmj(#;Vjk6~ebr^B=N2g} z6PEawTz7?T&Y^}G|M4l_E(*OjbHz`=TFQPTq<&aBf96`iU4N`BR9b)i$|#CBQ8-{0 z*j2xN&@{1#hiB%=AklfzBKjsuVCGhCmW$h)>ou!2RNRHy9j@-3T%Uj6K%Az61j3+ zhCw#}i*owe_ zxxiHTufg?$p0WsfvGTa<*V;kDH)D8C*43j6>PIo|!O%6dw6^%F?lCqvg{j-zdeQMU z&`#hc`oj<)iBb5J7@`P>>c_!GwUIc8yu3a-8jRw?OtBOs@n9Wx)lM6G% z8Pi6Wf6F~aI#7U+=9M>^;$L&o0Fyg`o;6`&%OXzIBm2APxj#e6=#ImYC zv7cIy9`7sZaBd69$U-c#_c-wYJILbUURx3$=*YffQG#sd)a^jBwxFt0yH~w@*_fh2 zG9wrESh*5bq(@_x55jA~v+5tmuqFB-P3^=(6ag31=gN~WsHW3gqi757;=16nh=+y* zUX)Wzr?Wztz3Yd!)9nLfR(YP+50>wFYvYgOB)mn;1!`d%yee*5AQucD`t2h04ju~( zn{;X;3;}e4Mf6_6=HVe=!@Hysa)@6aWAK2mqSAa6H<^k}iSx0|2XL5C9JV004A#a%*XGXfJkeV=i=fbZnfTh?_K(IFV{K*aKJzy$ERP{rUUz zZ}s{6#LwR~rDbnD+&B@JM_!A&NBJM8^L(9B?$TRg8>Rk15;7NqJ`NB=3wvQTsd)`5 z3~sYvX)Y=#!4?J_S)_=_f~ZQIFzq0%FT<1(+88ndBW`<_f`CpcSQmR+3g12}Z9B5} zD)F7(-e?WJ1>Y4vXelXh7n~`TRWYw+5v=s#fN`tY%bVbmuhzp4`k+tXy3)r&tehVY zn!($atMn{W_58i6TyQ`t=R@g(P#ug>D`Tw27%W)F1;)VA!28HkVYMjH2iR|2HiVkH982l;qnDbt+Q5fI9P6cj5>=JHNMM#&^Xkxd zSS{R&sU$>t9cY5+7IPx`=bl>nDTOToqJdjaM1yL|1y=th5qvsP^Ico zKAT+o%Fvz@c-zX2JKfe)_&ul|o!6YoPCM$TL&J>Ww4Nkhizy}q29qH0{R_18J)zGe zOoM(hgyEfVL1Yq#`8JF;E5d}OzO~Os$v--m8KKfqxKl-#)ZkJHN@ay+hAgxdrjAV$ zA$hd5zoXUzfjC2@i;7D1jxh1PyW8?v3pwcKz?6w>Pz-cGT0pBuL0B>;A@1`0TIlHV z5cB+MsA21Ftj~Inu)V0I@c0&I})##pEe%mg^HitL1I1 z9IducCZ|N~92JgAKp*z5BLN2D-OA=>@-s87M zu!&Sy6um;FJkKgqVNj7cO;Al%Qdvzs5k;Hq*Jhtz-2ULO20@F~3P)#KUwrF05+l;U z*U{Me`Yt@0bJ4>~cPNf~1>HelH^k?c%JbiVUI@_%I}dnJ5{RK;;X#%>bmgNLeag{x zOcJLQFc(KwY9m)d-+~7jSZN)gXBT%kR^8!#L0t5=ecslfi3Yxp%wg`!{h?(#n0OL{ zmFKwg$tM=6d+jGZdg*`@Cwj3w`Xg!eownn~f?1@zbw$TpL5xx3>#I$q!R)YW-+nv>FDG*@V>-EXwpusr12Rz97&l?J&^|TQmYuldH$_Cp`tP!xzm4iwo*=r z`;zB9r?S?(_C%5U$<$I3)f_b|Y=GLsg3v$jMG^&3>Tdm-IcdWkfe?$tMT8-^j2onE zh&|bub6^3=MYkWi-51(>Oth)!#j#X`ERp89%>o#gnSi23kA0`u{N9kCt22WYN5wD z!6&=W@seqA^lK$}jV)u!FTyh$u7lWMxn`)&0T-zsAZnoBSndU


    +#A5~k_ycnzwDLV$0Aa?Wtg&hm?z|rc+efJ9MSWIKVyDBCSYKtf&kyUP{c!D*? z6|S|S)bt1OMxr~t=T4dT`wA*sPNKKbg24V&^8#L*2;6y=-L8oakgvO%Lny`CDxl{q13-FTMxtP z`VFc%c1Yx?#VnCjl7aSSZQ|x8RwDYaZdQqAf6!_=Sq`V!pos=fgE=?AZRp8q!|?Sr zao6@*@cfOhIC66Pqe~0#nYamO+Eiqr`L>c}wOxN=5+5-;kCT+r?JHn-H;`h82n8K)n%c5z@phr$wvTuY?)~#zxVgwdxC7Ujuu`-yIR)W?)-77>Wi|hBm?ptKPNP*We-HOdo{jg9125~;x5WUTUp;>R zlE|2$cVa}$+K3a4CcQZH9sb<1(&(_f!S$-;pdFG;YVPo#pAs?Q3fZZ!BdX*4&~#~^ z8*jHR>+R9xvwx<(2F!(RVI+d(716wzj?MQaWudtT`vhR^Cjf4!0gKo;#(R z2rk)%$Gy{9Bu*)#WZOyQPi;JvIEgJEe_v5FROuN~w`&sjb1V9Qmss7#!lN)Rh@%0Y7p zWaOYNI z(UDKw2J&L9Wn|8+edv+WHy<<2gx)Gbn;6qc8DT}B8KUmms|8`3!zN8{ca^Fw4w_BN z9z=m>W;4&PD8LPib6 zcu1VAYCp0eEn^gA=-X&Y=q*=?8I?+vSm5rJcG0`5EgIiG&q2DFYkB@NuYm8L1K^5h zCU&1h3$3OyBK%qo`uwNLWJ(HF^ZTa?mM*wZ$~Y*xJWQvQ2b{}b*ts}HmG58Pc7+to zak^~@^8J(8K?ZnVkjjZrHP;?EuYW9n_rj)A2}1HSw}@$b!?@nt>i`kX{QMj6_o{+% z2|a&j#aVN#GIg&{U~@qW`vDgC4PmM<^Q}ilxE7TvO+VMXZ52EoPE}0iFRcJvBdb|QT#%Fc?heEp>@s* zTKyn4ZAop_hQ6PAEj{23#3#)?%5n-5dO;@woAe<+iq)kr2tFuX%nx*N zAhsz&Pb(o@OmI&Wj1f39h4bAoyjBj&;W6W8anc1YqS$ms(NcTNmjX$4qXYB(YjB@E z-Y$fVw)GDoOo!;K-`1ZDg~JG6EW5|S0=G!)YZOF|=p>lE8CKAV%?vFhE~Mw zu0OpDmfrAoRbKEmtKt2&?gaXv6Aiza#qG0S=s}0XiB#{JR$o;m zeMi8g0r;+P5Ollso1~6yCPj1vb~@45v7l8Vso>3ad4yZ^&2;$1i?1|0=@tmX?%A}q zFmUpcRXd7re_^bLrgcfb$lYizjm{92q%Yp`2TerwXsI-eEmFw9n75l zzRZ1eyu9Q&om~4f`)Po?2XHK;j|DQJdH&20sd2~FF9@l(0%d;BTdsAxe$d;F)SJYb z+sc$RNsAwN;!@nRLn^Ct%_mNIbSG0zhR-ga?NGdxz({YcT1BI^Y+df(KUJnmo$z1{ z!LkEc`T4uh?^Ijgg1MSbMN8MYYnwU5AK$+)MDqtWIKyBs3u2i2=bhWI){c7%2M)Ln zxk{X}YT*vIDzVI+r6A7Z?#zorz<|L1s5VM*!O%?wJCk+E~X1(3Z5QV6zEYNn{dM6F3(I z3~Xe!cF*6pb_P}Bb+8uT{83hiDdmwl%#hdbE5fsLFDmZv^rfziSvsukPjb+xi(zU#0NlLdxn;mcYk=lQV`8 zoT8JhaJ0cL=$P*F;3|z}+nw*$Y{?F@lde@5j#^t8kk5wAm3|*${cW1RtFg&{G<%}3ZYHT_sbeZk2oXLMu%2%>X zbBY7>T4J`MiW?yi>H#n|H(GvZ`F-7?&)+_A+ffM*8Gy1tbP^>{Dx!E|!+nT)bSN+f z+0aMJL#8F17bk4PFfT>X!JEHfHv+g8E5onlA0>rpU9B%?EBJK)3`4rTfTB zm=j~+j4&Y*Vlufre{Xl^v%0w`FtkW)USJd1v(&GovYL7#4K$ZvHuPL{f_r4g=htYW z2$Ku)cgdq2i+MmAIGxR0PIhc{>h09wq2u0l=W=A= z^EZ}*9FqZ=IFTY7L@HJ$CNO3XYXg~>oRT8WPl^jvCUiir%BG(1A`Bsz6=T_B^XMM` zdI{`PyK0;v^9`~{B#|N_eQz@+-3i0+o23JR5HI<_tvF2ongwv@9cq`JBgWbu3~{zG znzW!Dr+)IVi{^z8?(ZMa0})S{LRcXM{3gN;`f)} zC|NeE7AvgTVGTlKGi5+d`RwMGQXcK8?pX1N#p2WheEzP0zembvI}~%!P)kP>j>Dj_ z^Qqu5l*zcRwCCD15o7NIEwngd&*+RD7qAnHE@XP8R_>->#=K}Ykkeln>;W)~-7#2V z^Rn?G#h$YZe~K6Fqha%Sf8e;#fU`3$9p=_b#*vOIP$~$e6b5K*`Asukr6SHMesYIh zAhd=+kCHZHLpl> zW=N5Epnb|R0TWk6=ttr%d@VRB%x^dZUihgRE$ITI|<9ibrFP?41agHvI@wHqe<6T+g*b(P)F~c&rj$`%t zF8wnhaAD|yT$?8{#r?IL)=@A992Ier4~uQ6CeqSK-S|9IE~Nj3(+8!3M3!6jz+PQ# zwJK;b@g03!Nu*GhR4zAt04;ABE#KScv$g81^I8^!j40FKCtF$DrApzwXF<>34H*IZ z8epNvQjS!_F{C@lynALVKk(1*#4ofJg-6#{7Q^D#S84+#m%_!*p zm?q%!?_Ju7U(4F=frx?37AJ!4Wi1BSCtz?#G?%5vTa}naT%W%?$SD}MIRLgAz92J| z(crbeX(gw4O9b!7CR`k9;k)i*Y8|lBV8%)Z@mMonsf_;7eC?lU>k&5%fDefisU~8j zJqQOq5DOMqjN&~eyc3Dw*ASrS=lR6~-i@_F)qKeeeJ}hju->3Zzvm?v&K(OeR?QZ7 z`xEgMC76PR5UvrqgvUa;C;0B);bH=NCpJLVHdR9CT59OGM%(P9B&TfR1L8L z!Uvg7lT)Gr=Q0|st2uV&GVt?jFj$hBVPV)o+&sU6BTwreiTCI^QIIFc1+=!&K9mg} z4qCVs5iB3dhNuB$2XaayvU8=?dFa6Vh@D_ZG1R8T<^0{BzGDxHeK9N#89na9ycRyr zZaUk3gMk0yOwyrPIpAu;(aFM`i?YF|fcO89IFYD5^n$gS&SdV7Ia{YYA}(mE6~C2R z&2F-*`5o%;j^2+NyHW+>1fh1L#SojsaZInl2=V@dUfp^5C#|u5WeDIHC>{viaGJ%9Tkw8LcT?h?n_ z-amxEh=;_9RFgq(393c)``ix$y&V`x>>820YeXdwtwrFH4* ze>3vcigg-|t>3U3pZE>C@dk+9{k{}F}&&)GY7l zh8u_#gTqh_#|C@${Cx?UCg(?xC0h@m=g);4;&jmNRDYBANqyo~$P~Lj(BDB`a>f5S z_L|@FysydA?^&+sOL^te#T+|zLd``Yvdhv-~Yk0Sj zc&T#K=mpd0ri;6=AubNV=j9$07}a_hxnir2nZ0F3um74_QycAF&hA=xE1JT_^nL=d zj<23ishv3761XmOGIO}rhrF7%RP3$cVk!MW1cMKgPp+IDr~HyAubxkd+Tv>>j{L|) z&too{M(S}+?)k;Cdd#*_TX8p)-ZTEGQe@-{+3<14G>yrnQzZPJBT}z5L^(1z1)IeM z%1spL1;Ga7zaH#=)IV2=_|g&d{8AY*Oa>@bVnrNX_|{rwQN^Jai1iDLm4S05fSy!? zIqs)6>NGm~a8)VbvZ3n4LX`s0T zv!M-l^L5zs0%=!C(f|Ju@b ze9vGPKD&J=AMY(ar#p67?Ama+ay!pCxRRp{$gekp<&o)RIHombEZo@gh@~Aqp68c> zw;V^V2W59SbQ@ggidgB7rnMCZ>+^(XuxvMhN~^>~qVG3TzO&(W4`MPtG+T)kqMK^H zhp0u0WO2R@{)=kMO{ zRRSgvv`9odfd>Gcin0~rP*43cabf6@o8*-LOV^oX$xZ`Nbk0V+uBepwUsw(owiAwX zGYmN};4orDF-h1LsTZB(f`5L+yD!vOmYZ~T&K2_fwMi{mi9LX(Hz9`Qv$WKTv8mNje1hsMfB)}Pp`w1Hr z4pPR)w}YmsV@^37gZCEB^)R65Akz z_WVO;c_`f0SJ;odC0c?eY?k{*h_ZW}-{9az+-mmIc)Zy0GED7nIw5+)Okl2%Qp?gH zK6S&CsEROTttxlZDN%=Waf2T)>kYf(j!z2o`uL22a`ZoR!h+w@cG!A+RXIW{;Z2RO zTNqo%Fx+{$oG^<5C6*D*w297Cv%{1!!{`+0w}63Y9OR}w&jOYGFs*qLe5l+?q*7Ke zEvDQNE25oI$~|+K(joV(?z{Xbvvsw8X|f>Pzf#Sw16a(aV*3JiOVx)dW)q}^oF(qI zIM%smanitMtbH>DQ#cq-twr_KAK=geUE02i9JCj5Ivp+BnnPGT zw(z%~ZE~**IM!Oo=oDRwY0aDS9u&W~)KWjtLF_Ok3dTaz^tElyJ|*T7DV+4(_FdU} zowU174k>bIW#**7>YO^7i*Z%JenP!TgX{X|U~G@TiD__&c<|BCpQ(l&+Fq)5t8oVD zvhQ2EH)vPe{6^c&e;+cOpAK&{OMJVFZu)Mu7Rm=}Y$M*v?G;n|BZRMcgU$s~@3%rA zMwG%6QHGcDR`c!a(czSPbEw-@R(6=~9m@z)dH$Rowmdgnw~d-^St6VO=!@1g>dt-h^bqw_?fMTHfrod11g zWAiP(B&?5O2d$l(9WC9S$;|Hk;nicKq=;%zCa2WnT--$E-QcX`xNaTZ7Z^OP3p&t6 zm}PL%USlFv%#g4b;v1lfK4+LG)5Rf?Av<(AZL&+|kZ7Ml3WsOkojupiEvV_Hmfqn9 zax`(HIjGY1MtF*085>b#j?Vb85N?{(S1ikl4ZIky2UI(lOZ-vZ=!`w#q$HVvU{mcx8C$Q z%tGhq1p2WAJ2u^Dv_s7>L&enPu}_V@T?pvggr3IE*SUIiu?NLleC~B02^aOp%+#e$ z>P^>v=o^dfS3uu1345--pv9q*qrQ<5iNUeKyMgtFM|kTc z9A@1UyH`K`1D$5$qweo>hmGdRqj%T_VdS715=^5V%iZC$ zs))0nv)-R4+|rvEKzNQ+3^Ed|9Cy>R1ZF!-Jhnz7JhfHcY_8;v%sn#=?)4vDKC5Q< zE`a^oi301u+hBB?L_$|FEdN)AFR61_M&II~p0!=PTNxgWoW~LwW%z{#H;m_MXmIIj z$I9a%#ubgVeEzirV56AXOW^av`6NZT$9R~i7M8n=cmCR-am*DJip9WrxVO~{V-VqZsNIz=PQH5f(Iq!~ z2}D!piD|S}9G?5cSp8D_TKVi&=?omw-h)1C8QnM${>!M>1b@!NRO6xtxcg)s#Q?o2 zO;hk}7^4_H_bKn!2N*62V=o*s(bbFV^@xaU*{*)inu$xMa2QA=W_xsslzv`%%*54b zB+pCd9Nb`|@Ci-BOw(Y;L0t~P@$*ra6o=^3~Hd@wv&R)j2eIgu%px zjd>h1!x-^^7xq$iu2-Axo_IIHC6^n#oER>~U+e^eA=#0J1`azd&UavRxDY~X6;E|o zLZwY~hp@znRFh{g7{TX)bOgcx+gr+I-jZ>HIxIB<}0nW2lslvyB)6jps0RViVW zqQa^VQ5y!^xc8#MDH}Ny2Ua?DF|U0KdS(&SEHgD(_pgvU-*R%o?A}RY#T#EMmj$v* zyf@hvs!b2P!+|1Mn17LjkM>6h^XWRJ9_Qi)>uM(Idv&~|3a(mOqql0kg<)r03c$!> z!kpA$m=rW{^dG(0xPm7dT)J8w{9WvJJIYOHKFUmiHstUp4Gz8Tex!CF%{G8$oVZYo7`n9whI}q>XTlnuX zO9P8I$U$o@jGGp!-ApSv;Q`Xz-GK!wY2$U?OCs*s7V}O=aY&hk_cHfuyXU1G<*^K= zsC&1uAKUYf{Q&+@w&$Na@Lb<0x~hb$Ij2gI#vT<;j-@cur(&kTdU@XVlpC#_YbB?W zUt2o!P0LE2xUljny8a+~LiVq-RM==fL|NZpg3AlBL!v-WW1_o~*kWO$I;J2HmoS## ztokYmqQEpThbe)Tdfo;z7Nx75ts5Km#V&M7@YR2+kUnL`R$% z+hz>PhS;`)DWl`Uk-%M^2Y2M~_)7WJKmYuc;I2+zEH{W2|Gq+>f5fO@qs^W3-V`f% zzO8s~THZQ({?@|BveQ8flvzPleEX60x^^;V)y))jm6qNx1;2DK5A(?&u1v=(!MNm; z%QFXWi7O=FBGG?G(kxy-55s|5m&Zcg9Ubd>ha1}IT7=zh7(RIlBXk#6beJ$xNyz-i z%Ci;N*wAy(Oz-{px@kKklE_SNW$SQCxp#vpok@A_ZO^ZpLF6hvX8Tz3gLq;R_fFd^ zw3F6FMJQ?+rh(^TjvdHJyEu{YOXYrEHOjaGS=e$&tgmsszy9O?O-;FQlQX{}Z3uLz zR5I`qbYf)YSSTQo-$y+ z)wj}GAMKB-#2bm?xg@Ce_s(X?Em${MwKi3FQx~jH&AxA!Rom--6MB0M3Q7`hW)qpt zMF`6URSF=dMC^=S47q3OO&Z)-^Q=~Aoh>Tvv3Y~NJr{#WVUFBH!@Zbdfj}?AcpcNg z90v8BqriJSRU@HIio{8TMD~L?Xrhi&Z_q~=4p;jk>uoQ6y?edi?m@bt!r$k?puErg z{nPzob*i2pK7MI&Lm z1>h*+z(u@TqI1lNrd=n{;t=89lp=U1K4MQzR0ZY64py zWa2NEz#XJiX>%Z_6o|naa?jM8v6|Opoe^9RIxq!BI-1#;5PX`VrT|Ys9cHofbUWfT zhpwOxGDscGrRSQruxQAHXuAtrc2loM84rgS`>_+uYV&=E;xjG=(?PTR+9^`s=}UfM z@Z?FMX2-aRmNfEh>-Hc}yo?MN+kh{`By2}V@Zqg-^CuvlMGT7!wRQ8!=5Dgz5wK_j zrobdzX){GdCGId$@2r;U^Jnz4A?PRfz%qV3wSsDXN1z2#Byu9aQMQF{l6-!spwMV8 z!3@MO;`0wcHYJCI*I?Bp3hJAo|6uHN0~xBqJmID=_D4y<^vwm>?Dct zL9NYqk>OJV@cP4y!Cp{x%1?VoMhuH!xK0=*jMJtIEdStE7|xu?*t)2a(VOQ^y?K6& zj%oCL+gGVpZxaD|hhp#s42;}f zOgTGQE~=ebRf=9u=|w*vvSQDlB~~)s9HvCG!&=!cfWLV4`=v~@aM=MsdCX4XItoabNd({~H?oCa5EsAy9YnG@CJ z4Nl_V7tG;s4G<r91(CRE!?5Srx&takI;)dFDZ)^p^(#4N`*}9C0Wyr*d^P1()nW0i_#cS@`R_lb_uMPdWGcwm+ zY;wagT@&e=xps2W;D#>a5h^kQk;2QKqaAkj{#E7AIliRhgBNq=W6yOc^;I4-{69&) zWKS9r`p_I6S22+p+i!!JGl#!4^k2puGxx`*L_3Jza>^=z8_g}|T2#^X?d#iG6QKNn zXUW5h45|GQ!k1E^Ux`hR^|;S4ZBhUyiAd}69Wk`l4CSPWGpp3R1r-$DpFgWi=bc+Om2VF!nZ&siBnPtWr3z0lww!OM~^T%uSE4 z1Suyb;LD1@0Ion$zj<%^{1b;>AkGfW%50WgB~AtQTZAleFPwmL3ygIsE9$+supfA1 zy5X_pL#oN{R33!5a#Q(@4~Hq`o;ggHFCB6)cP46=peU}EeSTOHD{VAkUczv=ilQ)Y zxjug`Gu8#;o!cKFB$K%)uF36$L9=vPTl?^hrwTyl|JY8|H#?c#@waDtEG$oGy?W+ zBk{S) z9_`~|6MahXH4|M%X1k>7wV$C8_e{MR7sq3(OT&Kju~jksK^)oWeb}EC5=pKsP(-X+ z%nqv@g#}{$c8P__Aayibt>=g5k%BTgr5@)pn3}iFb1;4s!L9atqNm(GD&>-gVanP%>nCH)ThdF3!`22-SW;`S^A>0$>hx;MF{TMu@Y_`%i z6?S)@1N96bUG92OvQ|2pEQE+B0|wZLYUN_!oe*xwLM5Asq16(48UpK4^NuNRp!d4p zzQ40+r90}qEaz-U!Yezk;*KQswpm5jI&eGWSMIL z{UFr}>svj0C03cpAVsbiR4>H*`hG1BdYV@eW1pM9xA-`;#Rcgb<%u zPnj>7V!mvk8_lMZ!P^}aub^tO#7Qfy%6(kG7 zt!7in&WKwolR&u@g_@jj^{Tv(l4e@j>mu;m19m^Ec6qc8z7*xfo_`$ZOZ7{BHO=#p zz2pZHeEwCSZ7V^Nyb3&5nW}{(&PPDf`HeR>4t?&aa~9v$2}Xg}k8dWrV+u^fVbH=k z3eHNxr|JXJUP{(+U`!5^(@u^DdUwWptu1WjP${zk1J?I7RoaC2d3`SprO%^Clv_W5 zpC2ll{;&s=C)jAA*$@}eVXzfp&{m2tYRDHO+)P1ni?1z)$D0YBxRDpy(Lk5P!+d

    ?6gI1uNob;HW$m0Stw`@j9m-~|LSxk)L4`15>3iT7h_hR`N?lp3B*q-b)SE=y z+pcB|;l8a+ekcslZ2MIq=&!G*hJcS*q&sowQ4!QcoqpXr9NM{EoOD$T;viymf0>d& z?PxQQ;uRsD*Mz3byHc%>?4CGED$~o)oOr!H&c8i9?(a-$>vcVin@lFxr~? z3dIbjIdGafQ>m}zi}3Tu=$I}(DzL%k3%hw~>S;FgNr}=p1ID>#bbKj|#*whGEaZ@S zjPg0?Am?sWajJ5o3-Hra@Yv|2z}m4_u}8MyOcf`p%;95u##w7{F*Rdq=ydBFrM^h# zE)p>{{kQ5O6>A=r>6(Ztk>N`!=BE2@Tx9m4ML&imC{eI%yfNWRiF0i*4~7O8r32l_ zc?+5|hpE(+#GCzocJ6tadYA6Kn~C?l74CD<#D;og_FZvAA(^3c8GSDMS>ZYRfA z^GYa@{UT_Zf;kFeVc4ft$)I*LO~G4-)G;~^!=t+<&c6He^__&2%^$>u(I?tFQpagD za~W*kYUpj~aDN?mc31Amo++G-_=l4AeQix2?T=c>$C8uYCKuLz>`UCyiW=gj)&_Tk zuT*a(XbMc3-ROJ2Vap6N-sCG%@%mh3`YM~#Ni1}SENYiZqIVtVZlZVWpUhhR)D|Za z&ku>LBCCvz2GxX*$+ks%qJ))Gm>r^RMzlfj&QecqzKXdD#>%H7Mgb zGE5?dev3FuBsPtTl{QiDn{i48y}D$O-ha#9A&cDgtR89YB@%IAYUwz;N~Xi-&!!VO zVF`w8Y#8gbuO}3fDXK3HUOxJaBd6O z&2h?(C5QueaHSb6> z!v6dN%{MFz-3e4M(CVD!`IqUDL9Zz`^+a)C5O(qxVEOn3rx(0k3Cp@6lj|CexRHe(!!)C0D;h@R!;_&ks>l^0RQ`j93s}Ip~?2JU_&@ zo)Nzi3oxlB1FOO^u7wa1u_%h63jjTd5}-P_t(j$*SILRbvP5a}OUc%>0% z6=`MJmlIe-c8ETY-R}!=la@URVM?xZF=ByNuR^H%{HPKuj?VUUm`MONfiq&27&kE^ zPhccsShR&jFj-kO7=EP}i55F#b33WpP|%0ynVfN99*Y#-a2^9CQuVS*0XK3?hPKk} z5xM=R_9v5gU=9UN$z!t~gk9(uUb}=V0l2NMIgHxzZuvc*sm#sX$OPjxN+lSRU}j`? zi|Gr*)l$4C88^G_aGE-U2IiQ8k;d0oY6ccWELb-(FmH3I4Zg|@&IpqZ3s-{z8$mN4 zrqhvul{V8vL2Ot(iN2J$!y)fQ$U>){Pwj855IhVB9;CviG9F*@umFEO2Yjl$);x%T zyUu3S?I3|9()jBAhRkv7;KZN+s=ZFLynLIc_TdNSZ-2s5S6iI+$Uj zPv0wnwpI(NNG{Tjn5!Tr;qgr!q+)YKYrI%%sOJ>~ooOrGcJp#ZNKZE4A4#H{~1{Z5_Y_rP53K{zR6D0yu4m>i4dG+h&`7;&~CcR)t)cnb( z%-2-;l=xibam~~`W}bh>=rPD()I1TervlEh0PfoXm2J?z2!tPzBatG4IfSx9B1b94 zA^P_E%k58oD=MfW`}|9#sBp?GSdn^lf;eSSm7+3D254w(wb(QYqpUbs*;%!4&bvdT zylr(&#b`4)3*W3dG+^cdx-4dzW?@S$!t(SSw`Rp4uQE63cB>cq{^TK71`h;t5y?;btjB2_pwhwq5)Kl*XrZZJo=M*ygjE8YlM(_&kPgQB^F=n8_(Bcw=2# zoX~?}ZQ@?%qkoKUn$)wX)z*sZ{%zhIQtogrZX#WRX2*(h?4hc1Ao{gK;L@>IdH(Fv zv9`Y{kqSfk4qXsh(Jo;|_NA$kit0uSYli53fyQGl^2r&Cr(m3 zb5h9)M_Ex)5Gtu`(C5Ewoz0T#FcF3KyojHxCo*@0<<4L`1J27(ML|)ppkTv_3yZ*e zVIOt(ksRvYQGch^`mrqk#CDv&!M(_B%lZSDKOS2x`#?EN5Bu7u^XqRUzm$wk9_h!Z z*=a9%N|rmBvFSlpmxrn_SEDd|&dp@g&9OP{}J&;Y-vu?2;@*asZ<(f8S6L& z%3##K&%Ys!F#BnKgP!f!SHJ#bUuzQz)Nsmw6vV@(pkkAqvSVfBoSzNSzvdtdr_e^V zIT;y0rym7hor0t-0{xaUK~r=ZOdO%HlB82AH(uB)w8fpU6~tkxgNSemN`w z)2P8KtKov!a8ug2q@6K0G-2g7Pte_E%qAJZ91`I3qu1B6p|gXEkEB z5HMckxfLp%O1*3gayG=vgu$37GS=X#)P`dabO9HG& zj}eC5#LTbUCQ(PMlEBgaBnp`3YV{ZaYI9byR7VU|nCCJY!zHb=`Is?elX&;*8 zw6C8?@hZQQjwX>7GqMB>By`_|GmeL(fmj6W=OJV?MxniuUM9KZUrW~t(l}y`r+aN{ zM50?>PrJyE@vuLRSX+pE{yj&`*YD=RHB;Wpfa!KLeE13O0rc zD$GGj5~BI_u{@q9teY&mB&obe*&DPOMOlkex4~GeRF_bXd@Ll?-wAc)ZBb&~yK0Kr z#H3P+!ZPg8_Q1)|;%o!)`cqAdELn4~uO3TOV63j=T<56fH?pK*D00${WSm}q1)S!$ za{m2t%X-3C&SYJW^q?brAI?A2x6An_pkpU}nhD7yACN}3i$FJ95Bld0fL#PMKh#15Qlpzm4;I<)RlLKqR)CpY_7(l zH!-8IuYaz`eU}Dt2ApKB;YE=8t`~@=fI&4FydW8n;&AJLQ6Qs8RcCKQtdXJqy%(yy zgj!^BPAtOm=$(g$ovc1~z(<^%df^3jzqao>E66Si15qbz#M!3~2xPN8uEX{I%UuG7 zj%&pCnd~V}eRg>wIq!V|Fw%#rsflbxvsOZ7uycR}F;^uhwK(NQXfO&ow(h620%24h z>08Z*d{ncnQ~nmcl?-_vQ(%roC#fM<8svp*39R)SI*d$PkYpY-fEP@jHfv3P9QS1_ z71>tzmOKFvicf3?>0vNGYJIQ2BK@gm3a@Bs5_95h+b$w@`32TBf8bTC!_AO{L?_m& zPZE*`h}+!&uTQ9mZ6|mkB~gl~m3ys=J~&+QI1fE>O^O~|!=O|$w((H2G~8wI1evZ~ zs5W-HyKvjO?Wjb_D^2wJ1rKT*irv8qFs^~)`4Bxdhu1$-QA8D*)d<(^jn{EC!ktrM zod%Q-SKIhC8b;lGt&MA=vqmi6xMZX#f_qwNbjkrrvg~ctYBQ?BcJNCq`ww}Zsh-LC z8#X%R%Kt3Ys2LOj;jo0aioxK-*a?7jQRWn=!mpB%vGJZC%R9fNU_ya zl5LQaGLps3Fu(r!Icmyl$&>j=_}W*U1k(c*p(w&oe)isr zAgQ?2^d{A&uo{3SAxOCz?4JyMr-Wg4s}hu2)L_IqhTA%srNl2l3{Ew5!?Xb+i6iDY=%e4 z)1i`pIH`g~JN8mP&<-;qI-kh{k*~iZ{aMqsLMzMbhJ ziu63XRH*ib%#7qFB~PFtnkyu;d8u}ml;xS9P;*Udh~mCvV0ErF^7XT(H>tLWIxI37 zCPaZSl`d)y2Oc3ae*MJG--H*VP@(*n=god~4oWxlqY)m*ckQ-{8(`M z&GyAd5}n)`bXq&tCQ3CA1BG{%YL;H>MYHBv0+J}X31ENdj3wfmR9qvJs^OU=L{?QV zeTKrOPFCqu5~c3@whOU|dOGoz4YajNKC5f>#>Hb6=5!EiYj@ssZK4!-H%X^hoQ^)` z+8}SlhwsY?=Y$liu-w@(6Bvb-AMCHqC<^UWC0)z#ohTD*+UXRX^Ft0-u>4i{nby4b7zq|I**3s5r^PRGf-7OZk>PRbF@p;P) zzV)KeDrG1RM+j&}3LcRZq;OS-i`dL$ZF6oTf zb4mGm!efH|5B8z(#7^b)r~LX89)KX@*_2La$e&0ms#KH0PT5HTOR@szGsZ`QNIs+* zmvvtQzL{^TY5$f4xZ>eZs7+vto5jG3rK+{2Cd`TMI#~pMEgD3tfUlZje_HXJhakKS z2rrc|$uA1fF^`jpn}GOel_?xbf}hwHB2(QK@k$quPG-h*v^(d0^pl3V`2<)v4~L$| zqcb-+3JyOVnml|Kw`eMmb;MHf&@5 zd{yA_<9y&8>7ZFF;S)8;960emf}e8!eIUhbeo8_zBF($}W-PLuVmgx|w+6Oaf@f=F zeUrmb9co6ZU97&8%?zu-$D@MP6l;X6Ld7O26&k+<_4>y)Ld{}k+MEzsam@~|pQOEr z3$$UR^jhN-O2yKq6jNh>T)jH`&YLs8{{}~_8eUL?;wmsbi-DS5yx=Tu zQ_vI;1?)7@g+~7{T7hT~xQh`UXjolg&IaSXl2F~lo#8ng#xWBpv{%wg3qIscdPo16 zrE}(m5<^SD=Fu%?*4avK137)D^djY=n+VPd^DyfRz$}jI>!%YktMy?<7|B-4*-Aj6 z59=e;hKzaKGAz<%)JXtEQa0e%z}$fynju#Y9QXtjjGbVpT^!LvaR2=@_+qJ&oCy{i zhK-rS0?ET6#s$eoy)!@@q!p=CN2OJcQ79utQ$M7fY1T7EC`@U)lV>DltmZ6@n+k60 z)Xz^OH&NITY2K?X<5I1^8tPf!3kKL^edztba{i6UCUBF;2ke|Y`-NdI*H4QEo%u!1nIki3LKwijm5b3}Kl z&+Y3{r@W8`Vj1b*@4@~WG3c92Zi|?U8=C9&P{w#~XD~t>-F@x`p2k>P#F^~%Q)wfg zEe``!u>!^G!P%S9EGrp14lu4C8HQa&-K#Yns*zG{ktM+UwbXP7Z6k-hETDMID%G-` z@w=u&s=?>o#ZtcrS+IgX@B3-;R8zqj3a}hZs%=nYWf;FAOP6NdMoo8m*4#3lMck!z zX``5 zMIaO;D*bjp8o4vvI676}QO&e9$PW$>lbIq08zI@25i5@`KyJlQ73!)muUzyz{AIoLN_K9)(wmTq!o z_y%_{iqvf1XKfkj>!%si3tDEJH9^(Y?8r5a`e8)Xzw81%xy4r338mh|lk{IY8`hbt;LpNE9K-<(K&MhYk;^$#Xl~yECO7Aw+v)1(bdBy=IGdSHN zW5}pyX)tvHcIjfLhA~$f&HIrTS6hSsVlf?S&8E_8HY=b*8_zDCV3xMr4uW=ZS1z)M z=`C_ze_~HdJv6V`q`zFA`D)OOcBwlDDsoJ2yDQZoVkj^=)NFKZ01u|LVhH8)C|bld zjtXZMU@|kf4cLU_!8ZxO{tJv}a)`IF5qO;eB~GkNf6BKsIP6j3GUxdvxt1 z&l9LrE;_wC^y0bJ@!rNRUt1q_9hse?KcRT{K0BYbs;{yu{cO3}uKV--=Bj*140Erz zFm!P4Yxil4-kUTrwlHrFZGGrBm6Gv~GNBX&tEPkNlD@vVSyC_GXP9!%P;ySt#UOgR zpj~>Ul(7P+`!UzEzJapqp(4haU9Bihr|op6t?Jom7B=s3ugcomz#U(-lHL!0WNee0c@AYdme%**<@;I zAmZgjAu(K3>s=|D-f~Cz=C~AK2WAOKjkCs4Pfl^vrQ$>>T_)e6LaoxNbd^fYUQ%}1 zJ3IW=jXjX7lnx~~{wHY_W1H_}-=Xq8Mkl$r*u@bCV{GwGNtB`p*=GqoJu54>Jp*~C z`U+Y|)2I|HgE_Ua%tUFp^kTV4b_=5+onV$tZi-13nU9Y+>sZp*jIxtNS)hjt1b?_GB5@`HUw@36vGfwg&1}CJa`rG*@_t)Rb1GLn1 zNP^s>ND)o`>som7^oW(3&Sn=gkbL~~5RY}cuK^nZo<|&$?8UG`6-0S^P0nJ(7gsWN2}I*$ zbfij*Vt9M!VqJx(fVuXc-<^Mg^sY33F85j#c7`NvFbNc%9|O!tqXs-QMjG@{{R>h|dZX-6 z!~ktpuskut3by`1TsT)+y0}oAHMvVQ7V`R&8H``WNv2@@lr9k4r#+-Z&1ZzdyO4yK zI#!AzWYiL@osdp37fm}&hPJdfsVVkBMkoo~#i0Zpm4Q4gNlpKY4P@MHL&!_Y%P`no zCOGWv{}4~9#ugOU#scOb?3O)e^oP`-rfOy}iy924fYLZOQD>}!K*p?&iy1MS9Hvo? zio4owu`;X?Vrn=-xSIIIHYoe_XQ%;38Ry0FGhUDb#9=Q8Uh;5?1*4BX!VF2A(38sH zv^8J~jXMbu0l{-CR63Pk67>7sIBHtL4Y(29-*~DFj=?Ls!nM9;0VeYsaB7 zU=ZTg@swMoA)2Tz$YP$z#xldq2|-{LheSfQvpS-@(UX4LW@~PaK?_NgNpMCxH;yoQ-2^q+Gkqoq6qJL#cCS@Opde=MO2qm+;SD=ElC9ScJlctMhPYLm!%OwF!kL z3fn3u9#6{Cc8cF2rt@9OMW=VilrOGpLwc>26MpIX=|;>Zf*KWBgou`my>oy6c>U8% z8c#@~r}>;~Iw-so65c?9m?cRd++^lprBiYaK;qM7NKL@Fq6Seocx~hsZ{>a ziVoCCp;Y@SCUyb`Z?}^CslrY{TGLBSttifj0L61^OBf}y&vbr=euMna?_U3uwU)+q z7LcUDDR;tNWlz^!7>y0CS6#*Z9a?&4>BQ71?eZ21-{k11lZaw#GV56Tx3D0_?`&q! zG#dJ*@F{w3nTV*#B#Ya@07q8mRVsbv*PklAe$RlCt5q?xA6dX<+}vh|qh+AAzvhp} z2@?{j>4$89aT#HAP4^;zFpJx8q=vL2<_O3vc66Z4Vl2bg9Z=m44U0pRQ07|qW=UqJ zY63hK+e(01^d43XEa=#;tX49*&TFW~o2`v4pY=eS;j^#MJWdaAa2f+`3@BA7e7PS5 z&hrA3Tda)0>i5)ViuIv(!H8?hd*)(`QvHn!x^m>-WFq?VP^nzBx5BNKA=pn-OvGm( zc3G}4{w}oXH31bmYRk;oMFSbczFa#R$CJ=&&nlfty}ZP-MJ}gLER&cTQ7Q5usz27E z2HeCT;Y79*HWGAU1E9PvghI8fAz758|5eRmf@77PsPHb;L+fX@f~x<$2gQ0b*ex=b9#Qs}-<20TpE7 z!M?~vVc2jyCCI&&4nwt%rCQI9A;gtK&?poN$3DK~0L%=C+NE1frkWO60+KX1HHHFGgxY8rMhaNH4L`<=8jSfo`C@635f1Z_u+B-D-7YM!|c zVx|KF7IJ0Ivnj{6pfE!nx9kmWIbgDN6^?x+ALH5b+=={brFJ4iA&r%JR4og@cNd?p zKaFOF)Q~!A4&29}LX2wC7=RCurarS1?%h;Gwo@9(xj}8Y%|P?6$T z65V+JT(5j+=*ZeTngEub&yjE@JfpA%t=R#eQ$zHO>Zp`rB(ly}HQ%Cs0EUi1@Dbn+ zfWj7<+MCD20ir~FrlPc&b(F#^2Vqj0IJN^{Z|LiE{s|I%lu3Dp;McfA)?Y1fd2WK> zo7G|0m%-SH24U$dU3fP;)Ix$42=)nMlhZSHNlj^urB>1~L94wR`X&8N>80-d7=To`p+trcY9eVLZLv-{ZXUnYv^XSbXZ=Tz`i>=ew zH}|Hbm$!>fZ@MpkT|6$GPc{3gu7-=a@}Q`t8FUU6#O%P)=>~=aKp8DvMxq4?VjsEy zG)In}a4TJEDibWOBsk2Kj@DOJg&%))p!19%4Hcsb58KT%qScI~%<=@xNEPW))AO_f zgohyjIQ7GUYaUO}B*l!Fwby-_N@&MWjfyNrTqQ-m#jQn_yvugNEJ)qo9z%Mmjb}FU z4VHpolbPCi-pVxLVZ~vVz8UYleSN{!(@7`!1@PG-z#pm8lvvBWCl{3FF`dr#HQgOLm(^ci~iym~yK| zGRtaK#}!U24$M?7rv!z*Yjwvajx%gsd2^J&v?0zdC!xX=zDVYCx=}q_8PSgqH`sX@ zJHGx|(?MVVgu{NG&X5lf!r^ZT4RKBt@NCAuDha`TD`eg7i9;HDHRV=!ndn@|f}dP| zbJP;-)9YWS#oefYSeH~9a`h}eQ)yBS_%!{+5hbxZA-`u&EBE_w%))kC=9cJ>bq9Y1 zEu=N_S#CBXW)oq`fof#;+^AaNTa7=O-m;3T@SjU*7{0g~Mx_)83ucBL)65kE!6_f( zv6vYU3&ct`Kc`UZS46YZLS_O(Y>)+uuFxlXR8#2!p53H zsasN3(8c%wmh(?OL}63j@yRtq;_w8Rkj|oR&#?qsdPD{c8ksB1R?|UX`3mhuS@FHv zn-qhL^z{?w^uhR*%#vgky_1F{3iX=|doDnCmA8yY6zPiEV}XH2KV*ifea}dSG{R0b z9oJ(w<9M`Fv53LzPZ^(gpj4{i1$3z0+$+qwq3S3#iJC#BPKoa0vMG-3a~+v!)KSye zU|lfEJwx4Vs%FG&B6!xrEiwbAOkuIFzhK^$BDcxyAVII68f*h#5Beg;*7qHW*7O0h zdegDe`Rwx{R+-J9TA&TbCP?i72aLG`Wj}xJLb+Qu7am%0wO6oHfU=7Y;@}&~et(|k zDRV~9>reM@2`ITDYA`4Q{5g$lUK$))PNTLmL!lNJ`-L}(xSeQ$C`LpLRP|C9HFj~m z9OUYFyg9r|zkUvZjyWzQA!1mAwG+}QMz(ak^`P_$rv-4F+vOI)m=JNJlW0Aol1}2G z&1-=q+B=H$+6z$Yo1-mq+D>9FzI#{;UF=Nj?PJ%bJ+F69LFhh81|Tn5C3*l`W{aI* z7H?I}=ifP?lbkfmHdOzNId~L_gNq6h9Zz#ZlqSzh<05N_T+?)it?6TQl1Dw3oY39N`p}VGD#oG+NH#3SP;xkn9+zKah+IOp$ba zO0GDbSTaQ2FX`v~`@Vb?d2Xl5+ki3s)dM3mA@Q-Cq^3A@7J3V}-%hHN;QB&@9SF*1& zs-5!_fDihln~+n(QBH$!Y^%6tw}T2XiMr72`1%SRTk2yoN7Y2^g zUGH-atwKy4D@D@-)@+k;tm$L9e+e+_4_K^ZCoiS<&F$fJd;}=yUQ?8-xYm%b`!jF( zm*C~`wcU2$n$rlVeJXi>{Ud<)1@+gDaXsytCAl2{ubmv_v)_3$Gh~M{I&GDX zCx*?sYroetiCe9J>VdY1MD+~LPDp(OJRg--vsmV@Ew5;GIsXRRq8CY`u)nIQR1@A@ zO%b=^-gqPAG3F5@)K6JM(Om31xk;S>bvJR{@9kI9{lJ0AT#f+FO z;jxJExUK@YuLAo>W_1VLEFDsXvD}r^x#PG*sZ@2CD0iX25eZMpn88vSZ=xVGxOzxZ zU{-;}=Cq8ut*}*XrH;!F70m&|PSy_rKep@^M;v1dt;r;t+ail&?NVNA%#J6Wfls8b zf5G6OxJ>s{&3At8cWqf9cBJ(q_=2G@u*IE6tsC5OM{?x26@b>v^-&Ezp8)HiFZuR4 zmU3^|Lza79t6gjUKHnEqx5ld9kc^8N>(%x-KC8W#aURinRrgbMVt6R^CG=sTuRoX9 zpXVJSE6jZ|RC)r1(gk9#2vNgDA`3L)Me zWK4e-ZQ)0QgLXM{o5w8cN3Q8PZ46gfe^iy|%V5h@Kl>&zv6}lFD41JNk^lvvI+75* z4BMlSPF*4yY!}=5+Je;W;1IpTp3b=lX<>+0N}?57XsNbY=U&GBG*(*l`>XXQr_<;KCt`uYND`{qw8F|L$Lo2xgW_#)N^Iw-L&sBM(I zZK7Tkn#L&}jF?S;8f;xAqA2s!VTm9Nl~W%+OKN!SSxv;^*i!O-pz+gC%?!yMZf^mI zGDJrxn3W`8%7LC+JoojdfFeXxT6v2?;jBIGM6H^d9qCAjiHtr{;aj};p$V2`>TAaNkF(h4N49uvN&VtjOae^q&!qi zdHvkWZg{)Y5r2L17UV#X`1BU{%JbuaOL z3YQvrq%Ro%a0ayJuS{_-Mn{vszWyg{Jx<(59HW1G`uFosw5Aw8P!fluc0dugO8{MoX!|%yt?U)K1JyA9SZJ&x zAJ6^cv23SJQmR>C#yJy)k(d?yScV5^Txy!v+viwO&EP=~XOzRQu*2Fp9@(GELiT4h z8OeaOvWvCKGA?dMha52HXRtwP`UWGmou*i>G?PR7%z(Q)hXdzhNq_%ozNe{$RQihu>q(K^HJ-7xyWDB#I!9mO> zhaanFWw)Jsr6WS;gp5<=Htk!1@$E$>Q*MJ zs^zHkA}4ec#RA;7qVVf?lW3(sB6Ihnpcc1c(Gdkg+vy))ew`ZmNkWys4muQ6!}<` zmWxn%9FozW#`3)U`7ED9CZ6Xl@S04^eZ`c|$D`W~lTvMYw7c8ZpF z%pa(=seaUL8-Ybqc0jJt`D_Qf&$=9qPo^^v6-npIpomgvy#Y|7fth zIR^K{^X8CvxZJSm#fA{)g*+3FS{tO>w`w}t@xdNM8-Zn@W{0@@0h>2k@@A+S-o$ag zFTgKZyziTsQMUu&`?2`6cAXwZC>)3&$~8OJ@Yg?#s(e+d+c122m!2I^*2V7!88x#GRx~8ufqmaCP8d zM_==mna-xM3msKIVDeo2$zZ58KS?Ps6!_9P)PF5{dem$@noXLBaVkyM z;h~77f@79|iB#ydgE`;x+HjY*3$Y1%I;F@zN>TX8Q9Qf|PO^-3aNt)kdcEZ(T-YGV zMHabe_FQdEU!=Zyo}u|QFM4(>#)g!1X>eip5-VYylwCh&Atg}?tPIL-+%9>$G~A9; zSI95jUv-QyE~Gg#Zi~4_CB5`uYJGFO$LJ-ji5 z)_}JepC!Qf1v`8*%RTr&MCOOZi&N?8)=V8PVv&nVEXXU^rhWY>K1WStG}%gS-^&qr z2xodV3B6XjJ_|u?FNZ}Fho`j2c~2k5i4tM%^O2IPgCYG0_tkS5-+k{jy!CEvVtnI@ ze2z5adf|kssIdkqx!}~p)iM5Z6&OskrQfWi_#!f- zi|2++ZJRBQRSr^eaFGTv4pdwhbk5R=y~~WFAYIF)0_@Bw{rAY|;V+4GK9R!#4+^5Sr=_ycB4lPn2A12R4kTJC@=>HtqnaLcL^$vGhqtaqa__RMLe0iLzWiPx{gKv@6{iNMGq}w;Zc7j9ua(sxH zkN({=@J-UtAPuKZbYWd_A$CzkT3&k9MRILXDz&d+szEM#dv{za=pwk@sl5kuaH96! zHnQhIrI%ce82YO&a`kkDuA+->bBX`;WxK~xK5+f6LXqWr4E2~FPlzPy7SC#5WGt%P zb2rxUc-XcR9`^c&p1)d-r^4YG(`c`O(_9^&1#h5(urG|QTdyo~#lzw*eq`KW?bV>~ z4!wB7F|{=uU#%aXz_=d)^*K&?Cglc|T=E2wKSl!;*vZXc)}}c*0(l^5wFOf$n{PI! z7wUNMIH0Kxrk)K2Z8JYv;{0vcqv^3bdQD3OsFiZQ0Q4H)5?_biv zO{{ZtWw?#ecU98MB$xbaft`K!tG*PP8H`;S8HL{*dXslw`oF#@zk8!b?&zp4nH-c2F*&A60$#TM#C*!63lmCgp(bp?EL0 zJ6akBvXohLmmx{`@HUWLo^6q-!J%ae?tD9~^5#kJuCClBN_FH@%tXvXQ?Xg_l2xzf zi)7ixbE!eEI$a#>^eh2Ml#GDjp%rt8iL^<}vESnFcQvYSzckE|@f#^*l}@FrRBARr z8QI+SA?-c~WmEE5#6OkA?MbqiqQt1tv%Sd=yav7ZO&9I?Dgn5%)+(>W?|qWDMLwQ) zZC&0C%C>Yr9aLtF5VZy^Y$@d+hI0D0QswGk$PfGW8CAqnr+3Gcdl##uLmSWQPn{S# zwaGow~bomMno!SUrGxYdoN4@s?+J^(% zM)$ktgiR9URpExDV-vaxX>w#COagN1g;H^mS8>Sd#PPQ0hR7&Q2gdIr_097Ptw9Ux z#Wrd@3uz*Hr|DTKe8)t+Gt(vv1t$#ke041DKyctNG~$;TFQU_Woh}2+=TP)ct>*0J&jC~NDA~CcTju?E5g-T*E=UWHh71XB8+P z&w;vMp533`;aqEef%e^_W9!RHukw?cD~}H}kcU=``eQ7u!)GKV`+V_f>s#X+nYO7r6(cQ!Jz1~5=(Jz+tVQwU%>iu%xt{7y)UHu zTeubthrHz6U|d&HVc3dC9ir^7`lGcO2+_{nOPi$8E!d zix;g~-Ss(Y%4_Z=v!61J%XrIIUGj8sc_qAbYfsV=hn6>?iZxFc#*->uoIU009Y0I{ z7VQML2D&)Ide=2DW)~ftt@LuG_pVErOTUO-vd`E>KJ! zJsx%{@cmf)7){M%_PZ;$zRU>z2vF;qGuy$gl+4YNKHh7+I9aKZiY%QFDlR?r!j{v6 zRJ(B1+PV%8#Y{Y|fptPd;=)P@yW&GV5!pJWcAkqEsJe>c0|5iUgW5t0O(g7-x#YPyQFz zKp)1J^6}O1vP!7=p$$Kaw2FODhBZ|!q^8RC(V!;jm9~5h~yD#1~k4rQ=0M03F(Uo-SYi>}sSymtY37A9wWH z@x1IUrf0X|NDZkYsx*2wC=I7xOu3OLPhs`aNOm>p{sfK}i%48+(N1Uscl=y5= z$msFM@gIM~k=)L|A&m;VkB9kj{C%B&L(0o(^O=d?m^`9yX*d!HJ^qfsbX1m-oXLb_ zNTL;Lr_$&7H)vMa^GtC({>$z2Ot&Tf*6lC`Wj*on%ll$qKN>&eOg_dzGvqkcblAoz zSDZ%6DWlsZAkjz4ByBK_t;#JkBO1xpldU>%cLz4Ro%6H7+_Hu!QA`8q$|NN|8>D}a zs;~ma+qfhI14lgZ8H{rP|5YCN=J9lyu)u6)a=Yf|ZEOUFnkr-Ip_zlVpcJ`5ZFy`( z7uCiU4_kA9vVoOFcZ1hor}Fyi$=n+Dhp}?$Bg3Qz^2busY-TX4ZnJ~CFdaa&OExmQ<|jaFnnttkFzqs% zaY=`}qESU-P7GLWLB5fhmzs{%e2P}cW~w|66i=B2V#zh#Q3R(PV>&(&ALjI+r@uV@ zeu$oFwp6qJIOzfX`sY00U^IT_*Pl-Flb#yfpX3r$n(id2X*jRR~D|*IOq?)G|I%ytEyjfg2=Xn z7^i?V{&E|agj>u-=zcUfJD))BK&?Po4o#&E1*r- z>KJP}LA`#zm?=`}PuUCxIM9xw)Jm17Aj}rBx>_B02*YOp*FY%0MVwI-L6WK|18T-| z0IT;AKqM8C-d>h_GXOd;_quFe>R7d{EZU+y}yZ80DB7s3O@_vsg7lZ)! zF<>AeGFT}zH)5Ay+>Hs<6mLu0&qTUBM9a6aRq3Lp+-q%R7t26f=o}IYyd&SK%N@Jr0u0P zj@REP*a$B~bXrH3b3>`&sllV)RJIjS_Kua}yf(Tr(@s=f;(VLj z^jcF6#7HT13>KA+on|zzJakT*6clKh8moq~FO2IrR9s@pkG48y#;$~l9nW9HrNODG zz-A!D5NaNY*i%z+z^J)EcA249sp*1E0*e39b#^(@^F$QBXCqlxP22BG5vMXZ$v}ED zNC*iD2?RIXzy}ut`yxJ7<#PH1X}ZpH%8uhWPCA|GpL^lPVd4xG{>6^9&nUCG5N78W z8|#b-RXfDtG7i|8@o(I)*zaNd5RJq>)b@!G*2gid42dNU`ba%*M!Ot-V+kL~4<1>D zT78qM1mY+UTLbYuS~Cra zJP(FPMnA*K&G5}dpC*gczg|p5@;!HdwwwoCT(vJEtJKt?I z{Am!G7%gl{=aNUeaZutK=4ps64=gmg!)q;h4(g*ATW_}T$xCG zGpiQMZaHxfHcriwXGcBYpJ6v1`HZ%3Sr{f3!66ThYghMNH*X-W+r~`cFtP57WODX1 zu-n!VGZzhSp8TIl8R|+${xtNP(_x-BGr43<)saGa|7k zf7Qa4H5Q2OfgRz47O2mqr|rDJX&Q`J$ud^M&T@Pjv@II2kU1B2m4U>tM0q@$!`-X# z98`MKxS}%NIcg@D2{pYtv?2>W^ zPkDx2y&#IBuw)1BFoXJL>6z|2i)vg?i!8x{5$D3L(U$4ApV=iQax2)}}{P|pa9b73d6Y{vG$53czGfP!~g$aPAA{>xUd`rPW~ zDheEGtveu#3et>_Sj}w7g7`(^I-yC&o;Lht{&kkb=l36*n-L}!D4Cp)T(Utmv1%qI zXJ~t4DE6V4OeqJ=>>MCQy_3~ z4t)w1ciDbsa&%i1>NotY)f11XDh@h&!S=zONU*r8eQ_3tnz-YfdpcISx6n_F3 zZ<+x5(8ZqH5olp(*7#u8&1j~oP;vkpp?|=Ip8%_MUhh!U*IVsH#;mgV8GI*%2QAQ< z>bhqE7n*lVZw%3YI{;7BTs0Pj4+Ij<4Y(q16QjY^BGn};C9>2;P4}#^LKyL!rlyCy zH~DqezUga*uUuiFQ|`o#xX|NQ2VHo!$CR>(K-ICD0!N~ecGp7HaVMv1!$HY1h3bG_ z8Xpk}dlsuFwB&_@F^A#s`2ZtdLp!So(q1a6yUS&>3i6bjjXBfePa#X{v489eJ7vZ!6>dmlgiB$9?-nSd}W}-j* z=}@=qxN(r=fqVWep0-;eFt}$E9GhpCC}Fn1Gy6A4L`H)7(-}K4%$A*FVg0@yu-3J2 zIm%bE1*(v&v6`^zSFsFh)cdv0JR5CP=}cq}?;#AFXf*qaoB8f#wA#;bV<8P(ZWZ-> z?uo1*4>mBZCT6dZa?nh1*%a0pvS*V|g>x;?cI^ZB_g~S8ktY_nzSZckXJXTIcU&)n zKInQJ7!JPvrfXlEm%inyk;U}P3WZfy6rdO%V!kxBM{Z%o$Lf>{Re+r&fQK9xWGt2I z$NJ;P1@G-alAF9^{U7wE`u*o^XUUEyn$+WuF@fP1tbC?Q^8IINnCsSrMI)P(TtRj$ z>1{yt6L*>U^McYIQw#J#H3Meephe@vt^$znKdc?Fwen)e%ys~4!ZHbAnpCV_!aa|7 zAkQW^mIIg3NXnzLBH^b(P26F2iWb93_{(-)oG^Knae@T-yww48%#!DzUfZ4oM^lX5V3!UhF<0nZ)wEY3>@TX|UU zd)An;D14AX;n@IlUD@Q!P}W$o#B7aBO*i*{s$98y0wWg*KYmC5+D<&LjwuNjr~lWC z{LkEd(Qy5o9Dd1nH{b0U?clDjI7Z(#B zUNM=nLr*zubW$CV2DYD-jYOiGk-?R*=)P23eclqc#{80WOuf2&UDo$XKX^!^PMGE9 zBwVyU`X~J?lYXA+%dsmCcjw%RgS;4T6AX?+=FFz%zyIJ$JE{4gZKDQ^@ZjlGS~OCk zg@wcDAW|gIe^LLyGy$e;IW`g3>|iN>>H(MRT02CFm9|_uuyn*I82c!Axjfhu9}jYt z4k-_qxONwL4id++SUJvAfxUJ%!Bd{HD}S0+({mkY3QULbQ*~z5Vyc$|cO%`-C3oBh z^sNjxO?N-D`@%!zje{f)%p;4NGmofyF>E)_)azj&9Aoo0Zxd4&T5?dFvG2Jhzxw%} zcv%GX!wAdhy>8gVH8PbY7U!VCvzv{d13pmQrb5-2Sd|ykr|OJP&IX=YP03YZ;f=*> zU#Ji{OJRIXrw*Oc5i|!bhJNOa57xR{jv##5<;^}Pw;R3yzPm#leW5VvsP2y?Xc{p1 z88i*3d|itz4soIiXG4RFB!?*|WiPk0&zxm<)#tu~FeNp4w!)5;_sB z&SK&nzzW3Kfu9|Elek_1ZCxdI(wu)1!ObJjj?w{LQ?6eAH0fpjlLLv zFnNU#@SFaiL@MD0TBy2`LkfyoI4ywuOU}Z}fVVsr3M1jpV)Yn;uX}L7e@ud{#kSH8 zmJ_ckSEn2_vwi>MD%2?j`l1^;37t@G94%cyozjRi4<>3yi@lLkBdKTweBqiBSChm# zoh8u|k~NCT_G_vjM(p=KUtfaxi!Enc-tPQ4W?xs_O@qE_eHiWjR@lR0b1O8YSrtQ7^ZYP8B#*W7+U#&t@0z?t3PJj+l-KT#{68H#5pY~!ZOp0ohg#9z5? zyq{{Gxuo3iN1-pRankHx^T?m8DjtN8vYNR~ib8HM6Py<+?7Xo|lNmAnG_9%&onExF z>pX#Q+=E18nv!9qL$ zc|cLN-OP)|WX^<5CUIJH!BMA_JEt5pvvW^!2QfN}7d}0Q475H1(Owwo991|diZK{r z(r8BJktK|GP#)|$ojp|?qCGgC2P|VA{S3S3IjkOZVfbbw-)%4521;DR41GV1Qde;} z`Kf3{Y$C4vu^)5)0VlHblL4E{1dSfx9$k<)_8fQcvXd95lAZcdawc}20AAfT01H9= z>c7sU@uBkl2UmSso3qx!H_M={mT2cZ==+DaI{m0b{4#-t5Yqc&M*#Da()t-vxU+w!a;ko9bW_t7m%y4sV3RsW4+`TGxe7d>d5UE{tD5^Y_b z@Z$y&RuT=yO8zWKk3YOE&opsQWe4scP9@g?k>A>baQ4~I-qsGZy+iKA(y`%NU>7q6UwT7UOGnn!9Lro!;7Rm{0fp zvwstAS6O!FYKRE~7L6I=Ic$ajQs(PoZbN;>`f(uRecN!w@5#a~S%oDHB#xdti;_IL zo=P>b>)gS*6-L7DS)3OGKe)nq{WhY>*hV*w+<00Ap=30YNB5lI;_K~U#1%sdtllJ6 zZ4|wV=j7mfSu_wg_9ZeKk31HkTfrBY71u{L`ZTSsymWdx%~>4#=GndNV5_}k*EEng z&JOq#nVXHB&b$NNA|Qq3A?!Lk;6;oZVKI#P70xPp z#P}Gb+%brQ1n9EmV!)=p=E9rFv}dD&N((Fo*nmyZIWx0LVb`f$l6zH*KF9}GCw9pu3sR7hS9v6!pB;}DM z3JsEr*QKTBQ|XI@U)sD#n~9l)1g@~p7F z7pi3ZOYSgt+BDgJjjveQ_9Isgl8)B#J>U5 zRXX(Ay%}A@g1Q^H{X7Id-9MW=*r1T4&I7SHy#V(eUdYM_*ZInZvehnJCW1q?Go{@E`6uFW@L z#5vE<_4E7B=;JTv>#^2(Apu-*UMAtD^1MQOv?*TbF>Bxi_+(k5yuNPPe05LCd+7KkNwe7qbTJDxZvEZ5(ZvPNkl3^`kF zz8>m--5!&%O1p}=R9cyQUXSB?oI0)`8?E*FqnfVx_I9>tUyHRqsD($XlGYaLv6xKc zkOmUR!^sO1&1{Ha6J6}68YgqQU}kwYnX&_W3E;=|c&7)=(5J?BNGf3k(l})O;>U#_ z*ZFOlF3^?WNLl9%VW&$iWc*Y!|eBYrAfFLm-Wh z@1G2CcUL))C=_bnV7*ayr~&k!ACJsJK{#Z((`gZ2IE=k3BE0q@jL_Y_7T;Pvqg3<< zBEw2xrMa6lEV59Et_a${I~fzNtFIkU%TY#-lC!OA2`7eL!@d;)yj+Zant3Y4%Ij6S z(A^{&Eb6`_qBre|nhcRscyy8>+pC_Yk?_Iu-Hk;W-GoCfjR&FZ}Z+B6ac^u-`iAZnTkLW7Rt^<%=q;=lz7 zi^2C#Mp12J@m{o(qk*r%-!SIpg=Zd}go)*c9-U;Wr3b=vsurrQs(6H?>}h7lYqbTI8qDYm-#n}RHfMso)DZD z8Zgm$FPlfct^;a#-JfAk3WHDlyKDPnn!5Gh`1eHZK%EjrF$W1p8qcX=(Q8K;nMQ+# z!`_#=FNhI`J6tD+cCpt@Y(mTlxb1K{k7dB=joxTTJQX(wy|UQagNpLwqs82Ukj5zm z%-m6our-P&Dd5{uK!u@riUQbm*Y>L;PbUgDLc~`ZHQGrYsBNUH4%5tuF_6OcMFQAKAnVfPK=LT`QCE!o zv23fnH~3YqjKZDYk9@(e8L_auL$6K(7PR=A_CQC^_8^1@ukYnh{QgN5J%tvkz=RZZ z2KYrM!J(S!RnQp=8Oe(gxP?q+*PR6DKZXt?3ywzcW))iP=Z1#hx_W0$lqq~RNThLA zLE*gaCMYblY*ax03=>s8AC4gu&^Kd;>6S>apBnC%4=G`6Eq z#2zCY_AFlcQ1x{lCPEIW)6qdd+Q_p#^c4%}L9=O_@Jna(0dAqBiOINH$5gkP5wROBg#)27Deq8g8 z_D1jd+3*-=LIv;g+ov70hB#w_P@BDOEsPZxz8H^6NkKIBV6A1vPBcBeM znN12A>;X8aV6aRejuNxTD`4-zER!j1Uhe0o3X8mhD4k^LMcUZmpJIaf{^zCxv(AWk zC-bCB?D;b{Jst;S)>sC>@pE^gn;9u>EZon_<;BvAPp^sFB8THO8v~C4Wn>ynx;d}7 zwvX+$BhdVQK#L!hU{Otn>nERNuM8}OZUhRACf%IXTgWw$bhHsHm_?3-s&UK<7|aYe z7%Jn9g^f`^P-rw!bW+fR=5A2KQ6A*(X>fQ4j_Tvnrd`lR#{aPq@v8U3@$@62}upYbv(;%t7dqnM$+s66mL#@R;ao_Tv&WSW7T^^Fi~B zdDreHB9O+!s)fV=9e2X6Q`gpRxW`T%twaXfV7yS!7FBe#gT>8`I*!Z8(_m_Q(esGa z{0}Rmsbd+oGMsN|WEQ%adB6LjmBah9b>w1O!^_wTo_=2a?ycbRAPDnU-9jDapeV=u z?tDh==SGX0Shrkjd}!w)q2nHA>Q3hqEMBjH$}vOZIwc(Dg?aSS@u-HF$3{nx(7=gg za9T@j`*%{oRXp&}DCBzjV18x1$82M9YwuD2y#6LorN@J*aHE7!^4XL{Io1S-i7cBDRa#DvW-B`llc{?1YkGrd%Va~yf zEffw!mChK)u-bO`vGrToNr6`9YV4$-=`4dg3+t-5JxCDuwPpt&Jbuh4)fA+|!s$J? z+ghlff3Uo7jT*S7?8Kt{&ihUd$k<{VA?|Bwx+9PXKYVoIPwEh9-aep$DUW~M*10t! z>lN^zr195uHkjAKCxa^OJU7zW`Jl#2!B>aRs3K2|h1%Jq@z%ork*ljFiox;zu{Zs- zAZ}Xk`=8(cXmB0DBc$B1Eq!gx_P8F`hFrMoG~BPu-V{Fw z+uwwnugqtAB#^K)X*>70{@$8C2w_THXHCx%HklC3mQ4-~o9+3GPcSS2ys|UhU?2tV3bJ zmyApIK~d{!1WkTW)krG(CH7}Ai=E3Q;k0zjRPu62qg=?TYMfZ@u5p!QCC@9C_Ly2A zydga3nuuX^R=RJ`+aud|blfv6JYp;0JP^EmQ+>7wB%WlWtx-v5kzPr(3=744%xOf?w|k3XNtc@+N1* z>)2laxH%Iv2Wl^0y^N_V6J`mN0he(B?`*i`#acHbBZ=gmi7qUzG&{v@N_e}T4&M91 zCpq|DkIgw_0G~Z2PS<78gWOz|x_P>8)M;!4Q)~JDgI=Om?>7E7BY`#0Z)8W}SYSkB z^i#d(F)aJX(b;fBDruBv@&Ec>v+@I2%kB!8L3dYi4bH*GpDENMs&+x+x@af-I z`~3%%fBI1kv(N>toj47J$C*d1??boJp{>CTSBI$CR}fRjJ+AA!`*}IGIatUYCYsj- z2GxEliIg81kr^A;*VK;}Z?iQL=NkUrTpUODOs|60JI_IFs&-eMd{t@1ZwlVHWVl1) ztm3DVVCi-zQMy(}N`@10bk3g;RPSu1r z^elLy(fI||n7CKR{0{HMZR>CK4@7JD&6 zS)5v&ynJI*uY_$4M7pzda~4uQUE`GN2~oJZ+U{bUY(0HK4nJq(p9-#X7RUVvS^{fB z=`(sGjWa}d`GN2_wj*hEON*Zy!^Jh%=w--o9r#?``6W=8jmgdh5MG89rb4(lzatZq;%5oDVPzGx>dp&!gx{jz4PYa>r00#ZoQDW{m9jEc8Gr~MZ#7YPX0%tw|XTUmkv`< z$6p=dSSipp`Ao4AT&r~R+NatNnsCeAN)#_N;5_nlGoyRm=<25v_eZ=i8d8-;d++7& z?DU#CWJryDjFaZz(W~&AmWLn9{l6&TF%R92web`iC~mM3fy>Cpb8s>;jV9gPaWm7+ z$>_ZGgV`2%`EBLTi#Yn{I<7S0k6X}0s@a6f9$Px9^SO>#XmlI7!HzJ}YmHZ5 zBe5SN&!fRpAW>pgf0R3dUY{AEV|O=~QF6bU68`G>n9`(`gu?n~kcN_-*Cg#sxcj|3&4AZ&X~>sZ)|%Us(7CraMw7I>EUX{kGv?LqXvnjGX~Pp)7A=Z z&<}NXQawz>8}gxwfr?>@K?26nGv4Bf(Hq9@Iv*Yez6KnL5HiK&2%M=>%EHgcVX~;h zWw^5#EYxA@lqhhhIS1i5bmw1c3~SRncp8n+&852?7Cb31(lG-2(P0jnrp|?G=h|Pc zL`DX#G>1#a$Wfq|uVEJ&d8lV25cV7`cBVTt7`z-Yj)!!JR3twgszbCp%(|~G{cTj{ zzkdR>Y==qg*2>a8q`j_tL;JYdA%sv!RB@pOvgc#BJ7%S!7+l3hc*UiRMGUA@8c{l< z0Y@3xt+w$%Ocn)_x5Do<;B>0v77JCA$&^e}fH-011KD$h02ovU0bzI@B4yn};y{=X z6G22HnR>QBPx|7@iSlJ?dk{i$K?fCQ?jS72t|vy{@d=zYPUy6PfC^Pta!3Qs94wC3 z3igkKEwr)9HDFLwg`$RGWP2MYsT5Od;MA&*L!%r|P$G>2IjYH&C}?KqLyXE{V7KY( zJ3T28DA#E+D0#pd#G?5R5|gQrQQmj9tZ&mVk1u+1Vze-`pz5MAZ@acEhsH@rp=$~d zqr(-6nzt!8*bqqLlmce%C`Ra<;$eD{LQ=&=kV7ww1jSTJ>OgWUTZ9a8$ zVG5a4SI-;}ivm4njZ-0mLllY?iAGYvh=9tWx*bn|KQ#e&yl($Ar?cz(4;pD!&4n9n z?eWM9LqA%~2%GKr?E_&Vm126B2voBydD}WHSzz$#8i>6)U~doFsNzm;Gr4~Mtv29U zBU?@Tg2{%fkji1Au#;4FKx;-iQNo^9xQfX(H8^1L#+2hEp(g2Qk>$M!_7P+v2b3R6 zhE%QYPs6~HtAf9xfH_1J{@EV59K-NNUR|BI(lkPsh|IoYkPGT}yeJdzvdo3*c0Qj9+I#4r+S4y%llfO+)DrU zR`cvya*gEoKelVOHuuQ0$#rN|5*XAD%F`5v2b7UVS90(*+8YU8ZpdMEFhB-Kp%dki zRnv7O_3tWs-cr)te%WiTy8riY@$ME_f0?ZY2frd3MX#nwGon&WHtWHAHkneV(hjG{v68d~Ty1&27c^_4;IMP4`-Y z-#&JhPBqWYOAeX>Q>2Hwak2}a!!0b(V3zn?QPBW^cNYQcX}0I^!*10dDR-z z418vz^00Bm?uR@a5_hOZG5O(m?n`alK_YjZS2BJg3JIM0l+MIXv(AUBR$K1x?I8%T zXP#852`-EN(H`wOLFq@6wivR9PKjHSn}-HkE9LZ zdhAygyz`m0=t{Xt?xe~6x((u*1`@}T{bDRKb-+9@%gv;G_xGwpWp=`B?->0VDsLPl zs1Zg6HE|o&O#_2uz?8$?YuPOM%I60@KiyA+C&H2;tuCM~3YjEQkDg5<%>(-W z4eQf?%#2mq)z!@BSO*8YyBc_Ik;jnSo%F=)I_=q!5)DX+3gJ74ds6fTX_)Em=x)bF zw?Z-|^!?ZF-stsns@#&`SL$Qic!xhC9{Up&A1`vTGUdw%0*H{XBjJg;)hH#6RtK2K?`R- z?v}hok+2N>>>O441!UMf8on6`hi`ljf960AEJM1_G@I(d)F$IxDBge*WqtsJt?EN# zAJ=~1;Ah`slQ*p#A(Svw%;N#2MSA=GdrXEhM16pTY|@vQ>$nDF%sDL z@SlM?d&3;Q&1W7zZ<{0Q-y7?hR%hg$2Zt^0UOLsjOzh<7O0lIx@s>ZkJl{ZmtEp(4<{P=~owe0ISS+i3BAU*o-JulDIdbGZKA@iDc9 z)h_HyE}Gk~Oj3Ndpg&qtf&Ya5>-_%L?7Dyd>&oGOx*Ki*TpM{ksD+eUoJk-HJyrd) znQ;5{=-~GNJh3>`WJ!D+6aU%z{=*7NSE>CoBOF?hp1CBCZUJYF_=$0liIrCO`^BL5 ztb%nxOP1E+l3x-R;N;rVu?TLI7)ysMncZx3Qtc+H<08!IN4u}`0gvs0UW4+M>pLwJ z39QFDg?rP$-FEP&6QYMKRy-anT9gyK%Itu#+EPCVVXKdk8CBua~MAgZkg*C z96eSVHU=ZS45?_nw;WE!L~wj|(frasUm2Ns7KX9+Vd zAB4#qF8YQua+o+hhd;a-+bzKx-CXp;ciD?wUVJq_EP2~S_Z@`xoaVqj^6@V99A3&Gf@oD9j^ zV#SdXdQGI)Ow8{{#kwOS_ta~D&zpO0gN>s$Y#d6F8GFCoR(R>0@BY^7IE92AD@f3T zf^qPe`Rr7K3JqqXk(beoE%{dq!db_H(_t?981`6h&YDzd4}GgyhEFyg_@^xjaY{1S z^MF6rx*UZx<1;&W5|+`c!FR`9O0fDJ8nfZmzr_$;GG01~>jNoAbTO<=ar=4Z%U=!X z1t7}ilJ|xh%9ZPIJ-|LocAHN4bxK>w*)`5IVU`y!)UB305lA*@$|eF;S8|2g0yZe^ zC5vmJpoD5+mT+;pxhG`IEfg#yqp36x_O>F4wqG)GOX3g=UjuREg&UVTNk%hvqgTVq z17+kyH+!pi`q*6~)kgp7-SwD%@%Y7KDtrZDx#F3B@u2H(N+eCV#WzYcL$3(}-CNAH zMV1U#a*LJMCP%A|84f|GJIR2^r}lU|>e)19jrv<2%APB^c0kTiI&;v%&oFx1G_0|( zC~WLHNy;P7w-O1{^TPtS`Vwi&olp!|(oM(H`UOAQ{t-|{8iqW40r@5``r)e!zH&SzzUaoO@@Ue85 zDDZIv7YaTG6mYH#Qq+qMSTj$aZ%a%I!C>!gFZ;QvCGGQyNHlr*NUGdqcbUpAU;?>YJY z$qX)$JCP$!+u*(&ZcHhlOkoo0JYpJns2;7IWNM`;o6Kw=P<8sgUc;0PSiDqH4w^Yw z9IgC~+G+E5g?Fm_VHNw*;=1k%8-37^LRFo9z0%uJrbF8;xw@ttG_!M0a);ijQnKj^ zUHIvWDvAv9Xu7cqHqkK(BPku&pwczNKVi&& z?dK-~@w))taw#1q3bb}VSH!JFe8}q31M%t#q9|M|Ld@@3K}-@k;gh?{{;zzD6Ebb~ zqK)QdN~VP%?HWWCX+kKB0~stDCv-+ZQ#;}pRabKGA%krkG)=)WAPsygIg>A*D;3b0 zybG;xpos=9qp@l@lR>b3%9s&?-+-McP*-dBLTr>0E!dnuaVIMEq_5)%&I?xnKQi?D zA1KHbu?<)OoqKx=&wTB;qGgOQBML#z0-cY#QzZ#rkoSL)8)H3%G)m%%SNZ19VxEw+b2fJ_fHy8-o_GfF@aZ*PR}3;OeA4^IWZyAUI}Y5cm^T+dD+4Z zGD0bFsWkmOCr#}1zM}f^_}~V$JqY1J8}y4%kP!IC4=9Q6g4z8}I7){{z&|Lnp9yMsAk|?+8U{vF21sNQ^Z~N3P z8Xwo6&=sy7n6AI6KbqYU=%|@MxtdI_iJVxRw5grTk|pSogA31LaHaNQ z1-?>I%_bZ4sHdwB+|_F=tLL`0J*Gm{HIX=CW;vdPVC2x`b~L$)kd6hB|7?#5q2vnP z_}TP>B)3&x>5U70AeS{xD#`3s<%ZIk9r4kIk*Cp|Uc{>6%WazQd$3`0VAPeA2aL33 zPggcANMO4m-oV~sr4QN*gBE^Jhbe*cvdRe%#FLK zF=5w~orJ}4;~z5d}=I|&~-&r1LA&!8@cM#s2BG>2CK`4UuYXLH&;8PXrwg|1#^yqLLJeDqa+$# zl%3uxUL}KeGWDYC{QCylHPUpVO3FxltsoiItBgh05D1WcOAUu)=5 zoEn^Dz{sPMMlv7`oMl&~;#nu4M<;WPij;t4N` zuKM@~_ViiE@d-Fdg{$jiO4YsM%X`K`%UiA+;Ilqnxf2N=s^Sd0Qn>Bhi>K3S8--<5Xxl)4HreZFJW*jXv80 z{elRT8B$zIu0bqdG2QqHJ+lgyv4#qa)~vi~+?gbZ0@uLpZLRNaf7$D=pC3Vaz}ooS zN`M}KeEre#NhPlry&Zc?JT%D1>Z(^RoDzL8H1U~tP!p;!`83 zB-7HhcJLg|{O91X9!D8Djg|T$s1KD6)F}lV6B|}h_I(wF9=$=hx7T{NI z?}YjOhw{dzHq(~&cw1d2a!4eGyi zNgsCR!N|a8(sr*uliW0yJU8XXRB{EC7S%j!*0_DH@MrVa2l4BJ4gAaz4pU~nCU+sO z+2qG6JF&o4-UvFkc%-btD|E|Zx?P&7=G1h_vNvtrF8uz{4F7W5bKM#(w4*@yK?SgD zT;5jwJOlyXX1ZL+%Uf*~=Jv=F zsU%aZq7cF)+JTbVEt>|pg_0k;E3Yz5YTm7I-xXLk*NM^0`gpK#&?J_xl-35=#^)j6 z<&DWfyAlpBJYcSm$zHUy$Aq9Uk%=@VgqeRd)gmj&E&P|Rv&)ekCZg~=8_BwA+GcJM zr+RP_AiWtR1VZqDKuEms_b{+8;!{;FCo|~YuJfI;<2cSwC+VK_LXx2B+CgTT9GMD` z*Oi|#V6JMmEoaa(@pgdrwta0@J=}V;n8$NUJ6if6;k+6hsx>D--uS_O-2uO^9qc2B z@Vj!!TTY$I0eni94OE{CuNk;+SQu%qN3O#14*bCzHAsy90-q)4*Nc=f)%&wW7RL1F z=K6teGk>6drPO5QlxsFzH=DuwtQ+qOa3gtSrMhFog4xSPTRRHDEV-^mA6{k4zuKUz zQFe^3o7`b_vbk@S9$SZJU6tDzbyj?qroYIw-HXJ=kG%%z=SQyCc|O_;Ko5E&0cQC@ z?^zla(w~|D?=2!6RS!?knx1duI(0~q6PCsqfe>4{Cb4Tc9t7|mq)INlE7VmLvuuyA z-m;MmSMX#FR?a%pbMrDa0vFy;+{JK0f!fXhHh#rAhevm`&`})gg-F}>~ z$DOATYjC6M^dKpIOYSR~go%q@s`qO^QCs7G%RbVRQeOEj0CVmm+*7M>z z?VTc-tI@i55Jzpze+x)?+fDFQQRj4K+m3j)cIM|66K~XxLuG4@Wo@#&wL^U=1e5Ck zJ3++0l(^9^fBLMc!SP0|UZyRlrinKbq}Pw93NFVT59+iVDQpO=QA`YQPogqr!z;oE z%M-9MftK_2q|-HpdCo1atHz&l%}Olq9Z-1gc_tG%v_9=Ax5#U*OmvLld#yyzDWsvmpuR9(zsgunzHe{ zu96v<`%3yYISKurJSOmJ|8{57u@H3_txus>OP-XhpACN3HL2 z-%NY&$~Q~=?J|AWkM*0}w%7N4yJwH$^WY-~Z39mEVy0=dEQ1>>^2pQ0NXmCF*Tk)y zZ&pUX@atwTv>e!RPPyLOAkB zvN#=pd~8kTy~VAio;Y@XwAX}y>_?V&NIfH3s+?P_SssT$YpT8Q!T5`1KI7TY=WiA! z6P)sW{%y&1bDdZm?a=c1kM??d%O%$!9#9%T25iS*(1OQ81x;uSMxPoM4$t>gU$RNc zVuX1+UD7#_W#lxJ6lZZ|r`J zPtkZW-4I{Ry(Wev9PtOlstP0FKmTcjoRd(n7KD+D)A?pZ%)I@RxlN<5lvIC^G@0!V zn6Y0x!Qk`m&UK~6rD)~2-)w)RZ~B7jLB8RFzk0`{lJau4)6k!O-FVfCzaT{WO&sNo zCcxP|nj~`z9l)1<-7NhiO;qwir>2Y`XUsJ{->K1$r%2xGNy5!PE5h@PM{a?ClIZ+D zov)@OXLzIeynZM<@ISw9@|L$ITv(P|IB{)ux8JU*iC|yvI{oM0H8zvli-f@VndSyb6XQVyCudmxF)+lM*p-eF24&6K0X z1%VJ55d%)FA!|%sMFEuz#v}*HfMePVI;`x9H={5)FzQOm9fLSX6tT+Z_L>kj66iUo zO&MV(ljP81M=>f?gDCJZaJsOB`TXa|67{fK4lHzW>2788N5c0OG=tp}h@*rdwj`%S z!7_3$H~=3loD(8qUIQlThT9BFdrgFxAQ~QoQi}@-RO2tQZwIi4Mr{PoXznl>;gHq% zjedOoJ~v9FQ6Oy^$YNR-oi*ydlg3FUktno!Aat=%7#nf-c$P*tm|Ji~?|SCelq?kJ z+g4Z!r`-u#=;r8ZuM=a_x_a+sc)2IGXJl|CG}>!@Y)hk)o28q-);MT1x_yK%m(pQQ zWJHi`6<9dM4sR$ugh6 z?|>x?F4SEt2NU8C#Q*-f2{sc|-`2D~1*Qv27;APRL@X@e1+hQZZTy^duRTbkm`sVB z&=$~BD6@grX6&Oj5H^00kZE%8C9y7oJ|Ol$Bp?O=N)9@R3n3&E%o{2l2s9%Wt57v2 zauo$M3W!1u1PXrtMhv2E<7oz>{QwWi() z(cYk((JXjnVWYF00^8~YV_piPTu9?XAEu;cv7{dZU@DTBUk3@IKyh%K`WU_fIK(JEpRR-WSU*q#}4Ge>8ZF-ohfKa zqroi09#Ljnp@^3w3JJOxsa$I&VysX6J>1Fd}XwP>(fX(dp4+mvHL`-LDy; zZ*u9o;st5#~2_L&7pX3S~C*kRDxE+yoQQv z@V$+L0&RswBG})%!W0^O44A)H!t2S@fHqM${e07Mw}%#w+4W|}3h}UA_fEHTEP^e; z-KL?kQ& zJM?yslx2RN^vlmbo$*)uLBa4qRythx1z)eOkU7>^^41G$zDi2HIA4=$~_v zGwLWH>5PWDyHp#7F#aBL^uAjo5w*jJd!7pi6}DMoXdLGbt9@(_AJ+k9&(Z;hk`^3a z!+ILWZ%Cg{Zo~QxZUg2X5Ert+EB@d`Gx|x^$mNu~kK@Cb_W}AoE1t$+sELR8&ylDU zCPizwm1kTPVif#(JGhC2*Fg?@!o^wPN=Gu>NL0}w&_WL{)b^d%NFSuM`7o)qKi8#S z)cu1ZC5Bki;JAMG6c*K8T?u%QsN(A$4Y`FmBfYkOyB9dsMO;ofYiq=DO>y;HoHBp@ z_VeFO{*2I`3JAah0vCT|%sD|qa?C8W-u-T%g+I1fSX{`S6YW1gc zEmRG$se%)k%xoa4xn!Bx44w&~+$MgjmRi|pOhin_G90m^by4aPKgFr zdUKmAJ*XdrBM0raEpIoKX6J>1A{nO!k-*2akr=Dv;vyW@V%X!tQm95^Sb^;*Ip7?O z-8fv+u(vTj6OWsTGvCOqQ786-u)wbwxh7>W=~84@e)rthHta&}o?O3rp)Z+qNku#N zl#IDJ`$j6Rha!RZm+;Gg7~Ae{My`&oHr@Pv;>+|Oj`z;Rl@}6zF*Zd)k1FBqB<}6} zuQ%r(r_6ln<0mPd|LN=)AfK-v?KLHW9A~EepW3ShN-Y$Gx0-3rb!|pk*nXVx?O6%B zo#FAI(&Wd{BBz|7D?g<{VaZLO2$SprSU#Tk682f0TF3~KuqYgwm^c1u2M&^sh38;D zlZXHOTU9#8M;j>_b^R%J$_!aFl0b2y09x5ZQWi(nGW!sUaY_ibk^AB8zcj! zJQ!Afro999v+mYisGGxTtr=Q!g)WGqkzdfdwG&U^mVcyk%K;xY>F1x>)Te0U>AG}C zxg)AMVv92?9a0`J(vjt$DE5Z`k`mKF&FG&+ozyy>mt0QFRiDF^ADNfIb6K*D_D>1n zjVm;fi9q$MUpOs+FH~J01Zw9b09j4Q6f4DeqYg876eF)@2Q+7&E6xQiKU6tfKH|vQ zGFeg+F4-hyF%ouKS-kkLilQ-_Jh<>|Tyjmw7g~>}D78K4^B;{RYfM}c2V(PZr<+z7 zFAFP?U>xw=EjA@fHr2j9>w@kSeB^E!RM~PhNi+~ka2X5G!o_0f&5tGl zhmp>?lb08?<>=WJ8~A&cvvdVjjr5jsX~-5+R^>%?X4OS?T{2oaHxUTF@(IH4gy?wT zX%ZFiG4)53!{c4I(fJ7b&6OQ|;kY0quFwTHg!9i@_hU=81XdY!ha)%`<1n{Ze69;) zS~Zf2Cb@+|+UUqMnsRab#Y|Usx3}724qbhg%@yweYP9Bn`_=4lSa7ARQmA&oh^gC6 zutcT3sN~I+B|8?Sqeb8KO8zP43VgrgKC&e8vW>l3Ho=w|xbW-h#(FX`kERy|tqf4R z<<#_@G^VF3P79n53fvtNl0O)yH4Qa9RAxlotOnG*KKx;3<(I;i1yD3*h@M3#7JJz2 ze6_+aPt*<^Bm<^AIvyDXp-WylNK#hQb~aE=tU4S{OZ0AKlf&x$B3C`d!c{2LwwgkS z7=N4m=aim0-1T`h*+}Db82G7odk%B?{G)*W;X|M$dhxdrdc3q3A-q3-#xqEg$;1wr zbip)`Ga(IA*0?}5JXlgE1Dzi4f>1V@U47)?7T3vv0kg(wQq3x}6&CYb*Ti+elDiWF zD{nLJAS}vka`3AWxC5F7ADR>v)0gVT`4{vTpjVZ4{8#+ z3i|xp-2T*MG%G^i} zqkV~n&q2<8if2(M*%kYCn7QLQ;WW9c9Z=htgCq~kuW&Ift3GEa9)lY+B^t~gT#PsR z{Ff27ASaAUcX$-CS?}oaEFJu^BAnmZj8uHFV9W{KJmzbeb$@l#{rTi<5QPCdO7`w6d@lZrp)p{N;7`OQ*=8 ziJxhuI5<5Yl^#dXm61f6E!TxsQ?DKO=cC5#^+!?N5ghhO-0F=JgB&Df2t zJ$s`)#ywI;9yqE-6+e>?d&_Jccpk7lNd0D){3Q`xja+moQYCVQ>c}*j60Ywu;iOw! zzXzYMN@L~)mR+FhZd9|zDFHtJi1??zYvc1pi0@G6P1n3AR1+MhK@SqA)>Y8#Ip5)6 zu$iZ`U-^*y;kkAL5l?oH1eOu6#E3Y(bC8sSkEY$tJVw<{4`tIC%;71<=Y4DDKPyO6Q|^mBS&3Y!g; zXiTh{AsE58Tt0u#_9byoN9!?dn~Tzdrkz)II=reK@v^#AwQ5YfbeNQ8n{LHvB8bJ6 z0UIx_DF=yT&#?pU>qT0EknKEkxE$ECCD#E{9t;m`N4H4a%ymM!l$Kt$@=LLuEdia&r>)$OE&pq!HVP$}Ew|(s7Ah2)t3m zLYN%L1B!FZTDR4}lLp5l%f(!a#=;}lJa@}RV)~)l=ZblD3V#6dFPn2v&jA6{VE3s-iP+$nNV?bTuGRCpfQdm5JS zULt|dIl^LNg*&n-JSUYB+J@JRy{EQJjtp02Y{sDR?Zz_Vihe3rug~(xMt)$|FB1f< zq#VZ$IDfB$i7D(v8N6oGr*x1#*wDLB5xu3C#)(A%f4iZGXNH0v>{@aikfj@*2P}Co zn;RTKE`~?rZx)fcyYMUbo~P_Ovy&)T37brk@__T0m(EdzJ-PV2dL~+mX`_E7yVf+~ z%!856Q6 z3tjAfDJ{FYc4B>K%^9KKzM>LN?6A+lv#Iaj!2*Lbe+S&P3`UK@h+1MdE#iGUu5v|q zHPNQmzPj{C6*Nu3TU7B~!Mk)kThxyUm0l+HtuS-hRQveRUR1Y*#GiH0G8sV<%X=f1 z77MKl1)*xNePcgT{`IcNV3uxr*%QII&=P>Zfa&g_z}660NSxy1QP_o2l%Xv*xOOsA zT@wWf5d9C50TW%!Sag{rraDMT*ksFql{eMhM93l0%)#QgD;=a#pjeGHKbY`jQJBRf zWdm1sousFvL&^h2njK57L2UT4uT*%0D^|ZT|J2}kN)QDm8uEpLeH0^uVZxB@+i^;5 zuZg9}TW&FFWQ~i8n0TR}yT+bl=(FO34P1XW$q46F{LB2?{=l?~d1xQfh+Rc&J z*gr$+wg&NlGIAcwQ3e;xvyt>kS9Z{a51u((4vg&BNX+o)zzQlUn+UW$kBP9pFOFbK zuCCdE6zjaGf-xQVn^KC&r8KmXa}2Neka{PXWW|NK*9MtJbS3n*n1fuj37prtLP zqatBA(5fyPCzWS{ipI&|kzJEfs3@4%>+5i})91g&lJ>5xr`TtmAyxAnZb4(=FAebA z0ZSP!`ZXk?d>e6QH8@2Lq8jH zfu45OEd{d?C>LQ?!vY zZ_=(MFxR!csD+F$BQA)dkzcBXoASGu(3X>-foRl~xqeVh(C1cmw7VgYnCN->LaRSP z30Vxj0`9`YWsS4RWJ+(zC_Ps^Ec}gMUibW47|DVwT+5W)A@P9o$hHf!`MA3_mVjH+I9cTDI7Wz3H@l~ znv;R+I62ofhqKG>u=8jNk8Zs=315Svy*@_qUK38P^@K0xS~N~~lpJmz+lT_cLmpm7 zFx-8nez)=Nzt(t7Lq47=UZ4I=}8II~0BG)7MQ=-LBX=k{CBldy~h`*LwU zYW7h>I3NCW&*kvGuFn~*mAFjF3bB_O__{d9r2{))eLG7~$|KJlE(da8Oxx#&H`$<{ zX0Z+M|LIj60WDQKkWxHnz%6F)C^VXDQ8ep$SD!A| zpOGXI<%K1uhEK^&>XWx=(_z}S1%2DM_3@+id^*i9+KUj%=Rf>9GR(Cob(;Z;#!2N3 zKNE&^t$wd7DcaZ4anh!lpW-2eKh(U}{cTt56$+Vt{!;-%0Pve^Vf?g7bBFyoFU%{? zv?-z`s3hv>Su_t#`bR--g*v4XrE{M&I$=wWIcJ3TeC`;D!6jGMl8rVia=|yyl%F52 zOO|cq6~@LW%dTFl9B7#lrU@chg%@bmn6fFm;`pW}i)qcXk{wgPSP+Ah2b@_=9IW9i zyX3jUq}1Mn8d;0p0iRxZGnrU|I%iXMojTwIzB}Q-NGGn2XY~P79t@8xZURysFw&9b zAaOj3mk&^b(va1gF5x+_U+09+7snFz$|;YI!(94?(}bmacKG~z|C*eow%kF2rpcM5 zQ#EQ|>4<*ChuZFK*V0}zvd6I*`ZIt=i!OOW3=&dC^MHPnIZ~~K(fK0YGcipZi!8HH z2duVWNxe(W#N3eh=yW`*vP@QG0&DD`33OmG_7dF25myNQ!D_$|QB=BAzyekmUr z${J@#A445I=PU+GcDO8@4O^h@s$s3#VluH9J-9>S+F5!9c9jm1isVtUVaats4zx~% z&0(xj)G=^nS5Y{!Ysu9RD=^sWJ_|W4d;7H{m~*c}6Dx~~9XZZx>5391Yd%aX`en%* zo$6=M2N%ReW67?S1!(b+RdMYG{6IV#7k0uJ0s$}j1<6J~8xRMPyT|b$a;KxK)k(7a zG|wyJ!xy((HY|1uHnS!C5B8dU&p+^4O1o25O%gk?s~G6VB8e~7uc0HOr);lluJCeA z$i;H8E6jWLUJc(ayyohBtJQYwTcYIpCAV@Uup-^npdrZ;1Hk|;CX;F6YQ(P&Rw#)L zu!RBZlBKYj&wpic;yI|?4ElHV91|`<*zDXL&+5GBb{qEPxb?F*;mG+xC=yG)n0a*f zng{CsJ%-&a1GuPs{@NDiwEy`vg1yUtbA{MBqN6x*2d|e+*_9mL98lR%f6>IPbVzx? znFkYfq6!CjamgK)KuJ9ES#(X@%Ig<9kKR|>*IX>YJ$Wz_JGm?6TYnr|(kZ-E5Ecb4neP;AP;z{y-bNL_r~oPyYtk~W4pWfhoW+R^O0GePM;;1tS?JMcvT%pl z5!<@rv;H74uKQxN<_^LyXO^Jo@_DCe@!2nh6~rXDkJC9=yh%A?N_XN=dkw4%M@-p` zbi^KJrp~=!$tf5|#%^9wOFwIb!O<=V-)#?@^2qh(@PY9)b)NwDy?TZRlpLnydi6Yq zxi;Znj7A3QRTU>&GCHpAFovC*UY&#&C!T{ajNvXtt@LK=-KQ+~)R$@aOG3V8QvNRY zO~r2}KEC$zmf7xBF8-ho8Z!7A*vPm&`HO)6Gcc1SGz9;U}T$g5x`b&^*oZ%!) z4&(usfo0^BM|UxNF%quik?X~1XTo2r^3}=BrhL!v;DbLp)u1^h)+0!8+TEd2N5UVu zgil-tH|!1fmAB-e#3P?@v%=F9Dcuyq472pJ#jqT_OzlV2C=x#P*f`EW!kuv&n_qE) z752h%aau8K$zhL?#{*DYoLn*uza-?6k}$aC6!taXJk&d1&bQ@Ub0?MoC+CfWhGdOJ zj@w&bGjh!>7bpC>_>*q_I=x?B-%?z^B&O+>TCP()?lw9b$%gmD*kjzRm`2|>=}5`N z#4a8QzEr7W&*COU*pt6z-pJ73)yBN5lWk%>#qA-CN8ZAq`=6<3}2 zjNDUS>hPC@e9f%a$&Q4~@937?HSz6{&>DiYNy`mbkXx!5J+3Nv#4 za|Y8Jmv@fJ{zU3LWR{W9h<3gGpxw`){L`8N*tUOq{!giepT3{}f0EuG=PR{W%F^V> zXI$EA!p05~7HBK{asH?Fs!NkLS45oAcbZZwd{$bY&j$Nh#^--(ueZE4DY-(P??}uo9%72ooYse)&Nk zm7fjf7D}s~2w}pv$2jGsMb>DiInvB?$tv7zm+Wej?qTk_Yh7s@$#gn+SaI|jxj5jJx=XI;pV4V%xccyu6 zFFZ)>)V$;uR5X@cJLFF6r3|ea^Q_7X^k|VwV%03FY_i!L?F|To(FEe;9VCcacc#rG zo3iV|uK{~n29m(2@cH|UuA48}0cZPRctGhU;E_8X$9f(KP;w z2yeg>Y}>72-EB=O?2-}vOkB;ZA}U9Q+W6t)@eVt1!_#xISg={+p~{Fc%dO9I7jaIU!8hU!^5R*vCj<)oSuxLzK6fBGS zAU)TqZ+YD`fn_s5wJ;;I^T7hNn6j%S%(Dry)<+zsT=ykt8Za0Os}t&d`Ygt12k0`H zrflHK(jnzw4)P>Asiy#&-giQkZLH?$U)^kHLh2lz1XKlgJN%O^|jkg{~1JK4S%M#8QmP6JC0 z6BFRn23So9mk(xA7AH2yrYs#I#YVGFw`S8}7MtCoa_6nVF-*#CR}PY%J%X(KXpN5B z^7yPV%V2#OmZ&EV+Qs1PruOOh!9i9f981`hgO5D0=XF!Ctq|ya!4}>?GUWO4XUSik zCDvR_;#>0Oc?R*z==1j)=}^tpbz)IGA53gj*QeFO56iRQa_9M;C9hihIj=Zqf3#Q0 z8Y{a>($sSy*U143a4`~o30yfS<&kF&w+3TUN1@R~(bj?I0kNcb$g-t+FT=^rj+u>u zF`c7~93=;JDuG(Q@~g>~H421HYLn03x6XrWerzVs+JUwVo;8+SJLFCrBm<7-C|;eR zb{!N*1E;I8YMV)Ro!LnM`eQ$Nnz}>Zx-o3mT0tpG7+t(D_d*`r=Rf9)!#T*scT@9zYaeFGy`H$n)*xK_ zY+D;jc+)V*oj7RW*Az|$@E0LU*w~=#Djibp7{o!S32&z#Aa<>)o2}xyFNNwvEsIJJ{1|Al zr1fIWvq@1OSC?yhQRRagJf0eHJHp@yno=Ij$igzXgPX~+HTmgN+VLVwF3s{sVd;=N zaZnVG6~-zh2l9Xizq(tmTzC%a&y7T8wU%cDD*RJEGB|IlEG9T{cVrNrQwJ)!D|ZkU zWuzn@CKyU5aqKyr>RFSvSqYPG&${IVs{FQZL7bgG{}Bhl$i#u~yQJLn>VGk;TfZgw z3qlZ$6Pc!fnSr>)rR0U5e}dvYQgsrq)PS6VRYVQU|?(**l2Qe}26OX;Sj$ngLbg8_l2p494TdgD1MUbhk6# z5_0hcoeclQ%IIk{=cM=M;>V?iB-X^uPxK{|zDvoMT%oV2{n(dpv#&4N{cA?PNu|Bs zv(cG6a~*I>SzSI@0o$Zg0-{QM34Xa*eq9q139doB1eZJ%tUiUmtvmN0lwn-xxMJdt z)4)8kbholN#=Owgpk=^Fx7y)!O1onVEH)kP7j#;J-m-MtHGX)JN9uZ zSTtr8HjDNQawiUw0Vitd?zY^744fx2QJhLilWQ3wIS6A*JDR(}K^6J@l78Bg_GWO{;q--Kk zn+aRn!EEKcutRTXK|Q|_7_sXs16GEhe@@&%lzcJxFky&ieUo{ir;u#QrmZ86f&q1- z;~EYnOZIN8Sii5M#m|4N8%`zg$D-?03WL1MN zgFkY)DVpw9LxbGb{kA^Qsu5RX=AKO~;FJ3!s)@4hselh#~!mfD2m6`2r zSw5bHH=fBFvyyS57XSNegsgGX)Q>##qG&O3?LhN~a>=zr${mAP6c>JJ5({bM85V~Z zgJzYIYk=fH+kxF5#mY3LzpR3DvY(y*sXTwdj}v$~!*iyenc&!>n8?X#s#(8ik5>A5(H<`0CWI+ZUZVyfo#<-G=nGn%;+-X z62l@=4V_)c|e zx=`Y#b=O$79ZykKcObhW{CNJd>Atkw4?;NRXVYA_!_+Qho^yM>pZ5Zrt|TTHqQ={^ znvm-{7A6v-LN$m2AHmn!9QgUq^ASO>&wq{?3Df5`{7TqRd^dD)QM$V>`^!-}Am>N} zm(kb+IErz@9U-~k3dl*6F&+lV2`3oN#k1%>cyW2eqnA7-CmSA?%d%yVKHi~%MI+5; z1BMHwZ8X7n*wusF;#+4Iv%k!WYT8{FfIgtyadtRyBQvq>z#a6UIgA9>$lF}oaw+Wv z$&TgopPzp|w-@>*cm5x;c%IeOV#vSCU8jrjzvnRZJsFd`ewbF%mudT$6}avu5+EQS zm>8AArtvitE9clDFO8&<4!nZ52K?WiDj7R?B~PE!rBILPfg$CV&9As z+cUpSUguTP-D{o2(+jyCN*@|iu2~5kP}~SwHBMxjNQ|&tiZ)FpmDKe|rBFj-u98f`f?*33e`y0-ay(r%uyw*44K7fAwMX(pF53h_=*nm8p_sz4>H6X zav;VHZpT4AOdSl`5(=-4gxU7m{r(YHhxP*=WEfS)idcUg3yp5IW^l&lAi#HvVp6=0 zwNTa;7t;7fKk$8^;7M52&xHUOK?kA0bYTf|{#SEYcK`g>=kIqQ#!OXLyt|D$p{6Y( zcu%-hqqtXS*=JMRu=fQ~=umxV_5*RRN<6!g!O!=s^lb8+ zpXk#5(pac=piUSkM^WCJya;bD(q80uzF`tSp(UBv0E<2(6(md7L}G}IEN~JUoEtq} z2U_~P05if7)*wVg*PP^gZK$=srSWf=>OUa&v*phOZz z_Q4$FT&RE8;wgVb=iSSglE6xHH)(g&A-Oss_c%N?!}7lAMvX@7P$gRP`O~V~_Kw2i z3?JtNCM7rc$nBU{8=h~(Du;BM+TKAr4!H$ZdbVKTwbs^%US|$_p*c^JJ2(2 zNY4>LSXl+-+x3@VblJlK~bNm8x&dFgiTvdy8AWd)2PZCd=#}06h|Z{=Kz=3kJmD zGjJqYYYzDN_GxnKs}?qq>&#A~P)sJ%cX|a;U>dj#j9GM+i@B9WF)ry9y^fenwS{$ru+9AG& z0vFe*L#OtamSF6_LDLkxB$9AK1EC<^vb)*UbQXx?&aUi+~wqs%Vg#yQl zI%3<9kXr?bWe+Q37X)pD{o176KyY6Zg}IgtQynA&SDM{z6tvKxhoeZ1HTOipGMbOT zbr-t0bhk5mVxOIGym$8PH(VmQ_+8xzo?rJ45_l9cJ~}*$)7o=Bg?>>OX2q?u1-xr~ zqoW&cSw6R z-d&|bqF_(UgA_hg>g7!)Qe55mg}~@~(~*fP(&720Cu*KadxtZQEbhkhlxgb8IcPYd z#cd|AZ|rwJrTCN6D6-{>ggEIS4Te3mc)+ zfr3Td--r=kEf)G2Bx{`4Q_p*7zmTIr$#rv`T9rfyvqtpafI6Yi!Iy$WQHJeF-Dc?{ z|Kij(qaWw1v{ybBZaP2DxDWz9%mG;>mE`LAnX08q*J^+<4isZg;_ed&8K{txC9~x9 zu{SFFM=M9;6+IXFB^^x@txa})@@KEvEKig|*@guJ-&KXev! zDy#v?HeNQ1rX~2|2sq~#_hYI^Aia0LJqz_-Oo({^ z`+%*h8!wT;>T`#?+E<5DyvW!(3MYxigian#=;rU$V=*HkL*}3`u_nV-_a6?m!yZHI z1BJzPSc0aGLV;;uO!mHu37L+c@_XjL!+ju6?sKQlKlfJjqr2dJWUr*a^4_GN%0e1b zS24gG6)wB#a1YY=$2f=YMwBq2VOuVMXBHEB=n8f_8+bjeNT(O5P0%4`jAjD8&OxTW zdyEG*_u^1{9iRSXl6qn#z%HrPdQB6oZyfq5h#oOqr#(m1dvfH4iwnieeaGP8E79|$1d!+1|D7>hfTXx09rIoCZ+_zperSE z^(qOQlk?0$I3ey9JpmS~j^c34Ir#i+QyJ@Q%Sc?wA$5w;4>wKWXAYJ?|1884xINtriE&UNTm^H?gk6&C?j7>dg13kRZ$F;4%8_HTE%FjEgSA~^#?3RLQf+PKkw_T zn>F6vT+uI>xF+;By#beC`xJUe$i=T&j=j~x6}1-9m`Dup1#S>FRVRE4#LVL4J3|<8KbsUX*aENv zo53l8o1R}(@YF6)3^f=VhE>Awfz}IApiimG9v1@cMB!yJc{@0DaKP?myf2e7`Ul&9_#+dQ)~u1hA{C;MkhsrIY8dfFnyZmG(~2`B+C`gxq2U1xG)9h3P4? z0TMz&F61^a4|VES@9qN{o?aCCW#C% ztcvT2$p7(t{b^%S!K8mJR8RR^d(BuzhmvdOB`>=vp5Zi+To&JScyy)CoH}3l7muI z@#l<>E^!?bD+`BTFD%+r_%7iK?&6_*CkldoUI|ROVjqQxFDa+@AO6ULug;%;_WLi$*z87L zE@rIv-INk`>~|h7vON>O&Kus=XV|g6SB)nXg|~M__e;jFCQ!w-;gDXVxiv4~K9as> zE=Iz}EUl-3OR!JjjTSF-Nx8$!9i`JThv90JT^~X0l!7qG-5yySUk2z^s&R1Z#iAlVEO0wIt<@BlB|9tQSB ze5%Ujn1vk0m}&;d`NHS1Lx> zgaEkx>_&nzb+*eeONdH<&v+M_4frsaNsOX0Wtq6E-KEh8wGhGR#hNYL3k`>Fn8E(nZ&EQ2HVZb9VCbXIk4B* zsl$WtGaTKE6L;{`0ma!cs89`~R}x{Ci_?lLp74TjN--!DXifT=>wYportjBr$Oo@v zw7BM;=}@BSr8gG5uXBG- zk=!#2%{_&=55~zU5sWY>R&W&q^W6wSLqtwdRgh3>+oj!1Fd228>@<@$){kq&*8?x z>(Xiq;bJOWe{n{0HIqqIMPH!uxbl=qE?y@ciTU;QMcbGuXEHp_{x^GXV=tsOitJV4 zz)fSj#Kz?{3|rYd363G^3S~CJR262USpD#u>HaJR=VE`;^|q3%1UN6kntov+LD34B z#H3ISqCi%x*@0#QUI2WUWa=<;M=>JTAMg(O2g}N-w5Pjk+L~O9Rc2Q)DAb__u>@O< z#U+y%&8~%*eo%QhNa- z8!u#FlXNTeptF|t{yc}~0NmNA!&%R{I4smbSURul$T+>4lioCL?t3NJ=GRj-8_ znbbV-@A852YGeGp4LFNIb$JJhIx6Mqy1pcVw-)DFV-nYrsv|y0a}$rTM~}S{K58Oo zBm?FYCW^j)6_Ar78tG^S<(>2e$8NA7npw`_0FaoFDZ5ICOf#~AkW+P?Qm58GFqxRe z$)Hom3LwN;7rGR+dor0Go$^342a6+a|BSJ$jC*6ftsF4(fZFA-9L|ZpSjf1f8iXa> zS#olV0;Ab*X~x;B`e%Bh5p%sOZKLTJB8-IFb1&OdhqtuX zG?$(T(%PTon_5M9I|~Z|H$TO}wKHZWFj0$J3pRPwX_ zF!Gk*#t$A^;)^t%9^kSge;_=_WXhd{#c}tf=kNiEgYP{DX)Ku?a2w&y4uW2btHDAY zGD&CQV4Qi}>=ZcEKa4gUc%5r7Ke(fJEfR4PW*O^mc>Wx?t`yF1pd#T9(j&3*)ya>% z^h8Xk&Lm+9RW}O-&4F0y-3@K(B*N{%dIHNmvBp>%2Tg&MKL^u0ASQ1K`@fn@2CjGl zIx=63TwIJE>q5FphfD)TI}#;p37RoAPgA zxL;_%Jeql6n|!!TSAVm7vvT+Mj4!9i%;`4CdxgtPTpL{ZVuY@iZ&pTs>&bpK)5Xc? zcr?)lF5bG4pv)tGQMg#8VTJCAp@tug!fjkH32iX^twsC2!F#hZ^4LSF;{@#p5_Y9< zINo)4-(KS}Y^36uMPydKy6I|T-;9LZGWQyM_u~ls{m*c|2E%Q9_tD#dXb$GUOLt@0 z#jo>)_ca?Xni?~5%Wb?wLhnrO{+K-D>;CTLN10W*&x46gwXXeavzuhY*xith+qQZc#k_!#$|!?N$$g=XhC zLVF?}v|0i#M(FD>+?uZbb-1swc6(}}0q24DD2Q*2SSlvkhJH*6&#>nUZm1b$G~oqk z-=E;enb%X&A=7}7rl2pDe78}t(17(~VtUvx0%hb(qYL9T@qi1FRK_nVM273g_+E-7 z9yA9Ps$u-}*gsPWbAAhk%wbZ-3wf*J$_~Bh(8+;jrBvESJ;c3n80mI)h=W$RX|Upq zhC6c44{iDQ;R}yE6s;U217^CIv1lyek;TnUonqJQSMfJ1_rwuiIVFvG#sO}QLz?ey2pP;sHzQ93+mz#VCV%E^y*qD(>9FediS=g)535LIpyNt{S57r(Y-4ii}o&Lk_7h|h5yo~NP zQ%7*@Kw)3Yj}p_5Ge1g2t1Fd(g+{|i*!~%Q*w}+_DarJ|vl8j}9{DvFyWTy|b4b_H*Dm@=P+?LiJ{Iv>Fc*!U`Xk1muz$PX_l{ircX2Th4ECN|(>3*D-*1j0_mX>JJRRKk+So;}nd9!KA0;AV;{Ma2o;vazCawd9 z)Dk9k?$J;8gba1=J9NF8g))bej&Z6A%VF!##zF&TlF@M(JNbm4N8Tu0?B$WTSo9^V zuncbHi;=6l6<&&W3Um7aAhL3sIDYx~;*W6m?K-~vc~AK5a=&y7SMtr?wu0Ls{>RyC z-OKuqTb)}9tLmPSYYxA8eaXnh)$4?oyN!#iA;(w0{>V@FL~JUTCzbcqk2Cz^jNDUu zxsEqJ2e>Ei)9_V0Cha&7c3gzl!pL80eZ^6H%#UXiKP-m%N?Veg{B1W@g3kzmZ3v>k za^ZS0v9DtoSuW;QQBe0Eg=&+}^296X{KsP2TiB>V|EUp=f|X&o$`n{|Ncu5_N4ybzZ8TP|J;UDp6^ZHR*jP{6+C%crc4brOu{Ib z5$3eHl0!kGc>RgdqHPsg=oCe~EC%SMTC!~C*N5?6^Udi;o+zyLxDe^@-QJ;gw>mz5_k=`FEOqyi#>{=BB@MXt+TqW?$TaN^D`oBV_aq(h!vyNq zR1`KZw-S49?mQ>F)l#qk~-xP#~#UL1Y7NcmtcD< z8$POu=WVbn14Ltn8$U_tkE9#gqd3C_tpHcejUEEp8tg3(I`c zx*<>%=+B?ejH3*_r8aB`_#DRx3;kkdZgxkQSWbQWIlY~d&w(=UX+u4@?>{yvR80ys zs9XEJJjP6%_KWteyg1I44EZG4!M%gt zP6r6vq{Gw+9W`Epra%hhW8^510eQe_X9p~FHzzw{Np%z&jg|N&s*k^wL}jPppx~(=TkMMNV-3fR?`Wi3=`ghC4Y|y0 zu#!Pc4ZFQVei`~hz|rE`vL{|kAX*ZH%oR!+^=G5Ch&8GyR9(*)xMy}l4%|VU3JO10 zor#JtX;jHr-Bai>dIT#Nz51oYb>z zQD5!&W)SaSq})zw?{o%k!y6&upS>DASmV^BWKv<1$<^Uu`pyPXWZP-5bhnWx#%UCW zs?lO9d>HL3g*ndd*7U=kyqWJ`fB%bx-Tf&DS)WeOG~mEXAdau$C^%a5|NfnFLW=YP zAuwwDz8uDP)$r(H*xSg`k!#@oyqf%i^|POw3WyHGVI+)%-A1g=Sgwvy9sLfJs}Xf^ zI1D4*+84)R{WumTrVv(!gbY}yx;r{dQ^$k$x88OvJu%6hSOF~tdA3>`w%v0!l?NGI zRycpERFj#+sF3GY0-#S0Q>VxCvvYn0p6BX4!Nvs^oWDx2yP;smk2R}b$Rv|Eafc-k z>mXP%UF_BI)rr~Jb)%rn^15T1*c`&{0pI5ZI-I=Wvu z5N(C?9$?EIaEn@f?3En2gJc?czLZE93giLBx%D`>kn!#ids6H&UjuS5jet+5`n*LVSDG_Ycs6RCtDFHkn-~2ivDX)Qq8AUT6lBS6;bgvv-k5&je=g+pPyCN z6WS=xrjKNc^Gh4~xd}%9{zE&oeE;D@`}Kc^k5tY_*#eJKtC3|EDyZx@8GAi{7xhn* zT;?e00dvkvkQtBVP*8!)t2=EaQSI5QkMl3RQ9Xs0g?HM53J0U-AB7PL=?5>}Y+U_PBr*%l7u&wHjszy6`ono- zI1hAgxq}4p;f#4k9emPx!t0y`-ae?Fa?aFGGgXZr$+aC@=JPK}3w6^-O}5rvI*9~< zib`#wVPb*O3|R?wMPu*hz;A@e8YdIUmR?->=nyHEj>WSMV)AgG1H8;L>}mzOH-d>i zP+T&^u6=;4aeu=0i{M$;WrGD_$^V4J+L)8Z(Ik&8}Ndt=vHzcT!*zf!a+2u#ljdnc5-KfHMz9I!6@_ zk^%WJE16w;m+fvKP|V=o%BkhaoS0TG$7)sjG_9*;uz`cHm>gFQ5*nC;_tFdY=uBH| zK^t4^8{0N@vF3241GLB{3l!ryaR&kEGfChcpC*OVvgo1zo3K|ZL3rE_6w~VCFfxpw zeO)NC$poD>P9~-siNg198Bi!^)|^JHT~+BooxIQ%Hx??o{A@!(c>a`KXNPrj+8NY- z@Em||R0T=Hh3ZVlgTaXM)VR=A*|2M-pqYckaqh5jb=Ct^m^>ODSuQ5*!pDF#Fb^E{ zC2-{+$#gOEST+_#{?gPI#DQ&&uJ-1{?M|JzQ}N`m_;A=%$kZ`P&p%%Zq9d)mZnOkp z=DHhE1`~_9CW}cWcb(Zu0QTcxfsw|IS+Li_+(7kPGvYQNb&8QtA^1Q6=5Zy_$R?7> z$WxdzV8s2Z2>o*K{#|tb()+O4mtv36zLEtO@87tDo~}> zb<*{>)nt;B82P_i!?!O;(&>%y^(eTF5N3u*i$Gug;9erJ8VQM-S(QXT(1pXiL$!sk zl%LggdYz;%Dx8DR@L6d$cR_~^lWF%m8cuw0Ed5@*~sJMw@s@}-~`JzY5$b}qa* zN(Y_;+jU%t#QDZn=kI?w;S60!*UFN_q@)_e9nb2)dTJcKTui#Se7D!iz2WbFC|D+5 z_25Q=5|A`vlZ-dbIR)$@edD zP67V&iXJiph?bpy3#I%E#Cr5XOTgIj`qUkbO}EFaf|@ZC#K^snqirUc4> z)}e3|w$j`U2bFv=(ev;!W_0@rE2F6wlj&-2b+4s-b#k+rZi$=U%b4IA#y@h8L~MD; z*d>X(Ytd&%>yVUnC@9Kgs5!eqZbaI@(jBQK&Sge z*jm)Uh**6=V9dYD)bw~tes-ATg-W;-Epr=^v`k4Y5P~39jg!iQRC8A`U{#k%oR&;R z;+iRF=3sFo2kvlCAO{vt??!8jjF8HP4b&HTTXvgW1}|+$2H#^Ag;1NUY{?QkZBYEcPtatIRs@@5O@&oAS^;mgL$g)p<_u1 z@}g3xp@vrE->d_!4B1tVGYaptxlYuHgT#>>xPwq&&z4Rb1F?nN5XJKy^=r*KOoN^=A3zuVWv}$TS+h7`Zz2&x1_%(x@hcj~3zaa8+Sv zXr`*FcR%2dB+w1J0BA#P4O9CMOpuTYn}{hc@e5T;SZCTd|7+qhW!P6K+A}n^rot*K z4m%r;XJ09f@dwWu3!LBY14&FP%}Tfb2S9Ei*LiX(oc-t$-Y zrhsR~k5t-Sqnv-~tYJVQ~=2rI1$-~T*Gz~`1kuBGW{ z?7loQdZ`yy1{2rek@N2jN2(6UBQK+oi{WtCXuIX0DRAe*&C(%q61Z{@R%y5>8K<}h zY4SN&7F<4G-F&sH77HDF3YxN-`U6X!>vhxR@~U`_4th5E{yT~~WeQ$77_)M-a`8M^ zKQxa1SO!mJFnlt#p}y~spR!3NgV_}?hLFwANavrGV9f{iv?mu+Vd->u;c8&>6(;g~ zq0WcVm#6j)tPs`D;~g|QyPn~Pb^{Ep^Hx%I#4k9(Xsx59rZnq8DbU6Vm#$V@$ES&X z#EqJkw4@ce;Fp{2m8$YuPzQLS6qqkObGVX%Ujxd>V;yVjSr>R`AOD@+s4$>tq=jas z_w!O5-z8PcCWWez7wn|qU&*>zcDqmzio(tV7INcPI^hdntgwXHY2?S)<}u(J)o@}C z-lA#A9OzvQC*k7+c}sG=*oD?8AG;*>U4FM%7@Z4;xz4>;-J}4 zqH+zyi5D3Eh7ta?s5y^KSO@A>o6|Gflm+o1#*NOMG+G{t{h<3Xg2`r?I-YXWx$T^Mfbun^v*P6Gw_u6~$>I5ws zshyeKTwK*iYZ4_vL#d3;uYNYP`js%A14~90se>0*DO7_BHGH1o`?t^e6#Qclt+tIl ze>jIZouNJ_+@3tYenOvlMwoIEg|o8Jo}gX=OOkox4r`+w;X#nh^;FKZFkXMt%-lku z&y^e0Owx3npP$e5b>g!PYkQvYvlo9ZB-;wym`*s`(?>=%%`Ge~)U_m}MxD_0ns$VI z9%H6+P@_d}3E}+eimT)#U{;xvE1Cm;>UE^s9kHEmA^qVs+GX-(cII$>Xt_t){3i>IOvqN>AEK|Bp;*H^U8z>sn-V`{{O_da)M zi`sCxWUVK*(U2iw#{i)~WPfPk9oac;5Sa4uT4`qiv&JbC{L%tQCQ@Ow^Y>r(26ZNZ zt|-Sp`vOWr{;O{xbRg&%sO(SId| zuFt(GlKyRX(0M$2UokFLz@FZcJamdL1VQ{t(DOngc#@Q&`zm zybO2zz>lOUJ;<^kJW%%8f^83sZyE#i|EYls?F6VQn;jI`f4dPV5H#nL-JjK@B+&Oi zd1x43c#aa!9)(XUzU%+euK$3k^PmaXnN6+|$$G^IT?p;;r@2?F3+J4~H24Je%>%RvhtVPwEHsuxFg zogJ{>JF-{>f2}7zdePKMrmVVg1&GER@KtC7YlXu)h$%tYRXTW)EjYF&7!K!ZUsSP7 zmM#-HpysoM7aI8fYx@zRM*3Z(ip2F?rusa{1vv1JK0$teztH_W$AmvXD8uONZ>Z+&CHV-D+ z^_VF@OG#>h*3IPElu*)rlEuk9;ne0ZxtUqDQ05MWYUjmhp$;ocn7ud9HM5gHrn>v@f8eH(Hv5n6DCKY% zFL;Zhc%W!rI@QQV{odtp?C#c-ZlJ-NSKMtP3!?JMCXz`B8~OG+Fa4nBtI1v^2zy_9 zWTAqi{?D@7^TvW_&jNTP9K0Lvo z9Mi4A;As5p(F64T+q6Syw(o?-mG8pGwJ6?4C|a-$FmYf{>zrc^;0yKBLSMSq+40)m z5&e!0WyZ@8*7Gm5AtOx6=sDnQ6Y!pngQlIESz4&HHCYi7A_=6V>N-tMcvZbJdgvqr zrh&bV>6S#*d>2U$xlm(A*;kpiR`u~*KF_yX5U{o?*bPqkp-_{h1woit^+6_6 z?zAfvs;*vGc=qf@pPJiWb?bnR1kc>uXA2b}lRycPHD;~~VnU{D>IHitK$q&8DM%c9 zjyo)Pxly+glxZ*&$bnuxdh-2S6Mu)u`tjV($bt}`Yz$_BvjZD=W1SP$@J=?G&+XaQ03VM+bKTVP+6lL zbIc&=iJB0qMm+uk;US!2u_~AcsGOjuf~^homIS)-tg4HB`#3X?2E5=kVk@|2Rz(Zr zM=`K^#M_>-r&IM+KdVj?z1z;esSO%fPDyQ;vWlSch7YQmzIBo0kUMGNCjvGqC)5(S zEvdj}Zk4GGGXjoT4w6w)1^xUXl{0=MX%Wc={8-U>Zo?!jP2Zl?BsHB8rU^ou37N91 zc&5-2ScBLRP!P1-Pt0xQWReL)>-%d1@qvC>$fU{|)#xLLwqn!5xzYaoL<*oQ1S`}; zs7+-i(U`d^kP3?{E1;(anWQs{HDrPm%Its%27Bkjd+9>CBZ|V!K^u*nxw^&qQ_T%+ zl3_XAPJ#B?+|ghAcNpO&Byj7Ukjz2Y0B=@?#Nz1l8b&B=bir@Bg2y)FHtc4n=|_o7 z(NWCh%}IC(DilrE=!bq<(VaY~a}AmTXOb{Oqr5*mV`B*R4>KZh=_TG3JDQcRPAL3P zb}#WJFC`bl7qjqj_ty$?b(wAnx>~+j8U4`Tt)m|Z1&@sb zc|aMNM#C2);bJwdE?f*GQ_#%8;z$nM!OQmIg$Hye71TU0Di90h3r_8J`}?moz7S%C zR?FXU3bwM<%XR=J+m~@^VIhPGF_Vd?vPrC_a9(yAqs4UsU^@<4_y}WT&l)F{H?9hW zRJX2~>wwe1g?fn?uxsrwO~BUi4nl!EpeVD6jf&meh?gIX>|@Meue|f(mqLEBysC79|x(V<_aP81IZA|ftwkKRnYvm5!4ZM@rXt!dQ!<8Joohs#SJ2{EQtgO)N_R`(`VvQssB{Ej64)pq{vUBLD~r*FoNu#?Q+`hs z8YpvcR9VSj;|_DD#mSdSZ0-(%>hgTYPmTcp{Yzu)tGFR=no~)w?pc^rHd8DW=#r80 zhYHshHl|`#Hj)+@VbZAbmg@HL zEYF3WD-yHD$wU?VS@grsC<42od{a6x4cywOR4o~L9w0ee1W+!yO4O$5&PUEOL z$8nJwEZt$RHS=j&`EZ)O<)~(dhcGXzy^!nNVIy%K7dB2{j=~ankn_q;I|cco^n??R zh2G|BEv|InVTrnZB`B^~RnZGYp-xu(HzO=|)2TzJ%++zOdQsM^FC8*<w@<{=;vz(0(qZ4lL{s2@Lq{TM`+7)1AXzz zPZ@Bs7Idce%n$02zUm7tuXD-_rP>$O_NsIHe(%@$H=RRjLwTi*<^9A57mX8{va1*r z0=RhIJ?>rOz;n$l_ewaIkEvUYe)oaw!gJGe+dCx_!rQr#rP;PAWM+oQ8L17Tvqm+i z9lEV16ANh9`1Z_3IT>spHu8orX>9V|28{oa7LD=QEgV>2PSDcsfZPWBE2|Mp)6&9% zkjZ3bfLdifOvu#JXvIP%lbJh+qd-Yxg|J3ZIWjqT12(zwMEEtQGZYQj^`W?9a$Y)k zxh@{?rcswrprA#{3=vnKa@dW;`7Ci<9BSqP=g#pPk(S_7E+$&jtvAN?^LQkp=0XF` z14nb%Hv*TDGmVaq!3kf?5mnpq7^~hA=K(jpu~o;lg45DzXprLOWx8itvz8NAtN=6B z8)tb?(C++cT2~(hmj$4OTr-Jd%qr~c5bIf&z4PkSrx|^}`>7|`2uC2Nl_ku^;Hoi` zt0u;QkUEt>jP58S=QO%&ydIod1yMAT3Y%T2 zbjV!6E1O8BAaP_+oY(yYj-a^JhF>(kapC2`YDk5}ymdiO4Qu+~H|`*0h+nhl%=5*f zBQSVTaziRDVhi}9qA{uPo;Iw4R`~r7ok@&!W?`VBaQdI0e?Oc{_Tg?v~8tDhlS=By%+q*Gx_w*uiUI zN(Pw*oOv)&nS*4&OoJJjN0unz~T8HuierlXH zQW#3~?(;bRk|5yUY(Z`2A+6wzszx?h_%ISn6Ts8bK4O=I1Gd1D?m)x0j)csN&O5Hu#ib6F~U_6FknZi9=sa}M%!sK zajVnnZFJeKf6sHkhJ}~Ko!19~SX<g*wK2 z!dHlYa$dk@M#POpBdQu7tm@g7j|PnJP${|Vq7cd*Bq-C!g=$z1j4@E7BMrI5>~9Xi25d(7&}$FN||)8(u$ z+Sg31+J#(a2kF3_3Jq9C<}fikD;0%JdxYa!ha8B;f;r5Hb7#pUVK{h=`g=h$wzfg`wYn&)?$2H1#^%l&p}VM?(jLKn}ve%nAQn~VRzd=)kbHHvq~%!{AYqs zC8mG|JFlo67-9pZb25vT4N|8ZIMytY z#`J;ls@=$3IgQ53!X9d)04v`>yeGS>79OcB31!@kK+%TNp|oLj{P2?>()pLT?6gs% zg21QkK%F>9G7V;A9$C66R7cKqbu!vZ8N2ag$K78m$kk=K`YdgYQNMt=NpI4O52T#cwBk za7FyjFHNZM+z>B|77%OP=~SK(CKPc&V8lW-K(xHJ@KrJ5fsha%TzCd$GMO1*QA{!! zxU#D#?1cbbswI1!n?si4xx+>htSy&~R&KB&=(aI$&&u)+s)*lz?K(M}*ONV2Xv9o1I38IphOaIP zzyIzyk_Q0^uTH{xkHXD-^)gx- z4Tr(T)P52(y``XOZ>F>%%?TnJGe#&6Mtq9NGy$y8U$ETFIYMnpKj1dyjcYoZ=MO}? z8Yl$;lUkn|%S&~A3CLe}bMnIPg%hCcr$`&p#MH8Xij~>CA?>!L+Qi0PmLeMldo)HovWiGf??~bG+ ze;UTS=-@Y88+Sg8Htw)=+E;Scp3JOKa$4+zVE6l)+@6!upP7Iw8k0$NwHD)A0FF&o zK9q1`hn|0}_WwxOxM&eNIp`J_+zU#o&$G*6Z$E_Qd0fW^mvnXYX79y5Uy(s4BN12f zKT6AwGegqe`s8*+sk=Q7e6|i=*%S!_p9NebwFThq|on6R^(?gE^t2Y1oB*vVWWqJ2nozH_7tj*{rCSTHvXihl z?%e46?YvU#85 z?YXwNBK@i^B`qWFVQNrLGl#==8x}LtSuW;Q7R7;WVFby|NVvmrN0nD;p;D8tXJr#T z1BBrLB}x|4l{*Ndus)Id#X0P4NV4|%+H=zQX!8$1Ulg#Q!|iEcua=W2lmSw_^!&#u zxhC-xZcN0B!N=@EbNC0oY!iM-IgWLa|9{E4qm_Td#3z4dXrYQyt7=;%#D%93%yf>0Wu) zEVZzv(qwyzNir=C+Qq|m!vk+9?l5Vi2N&90StyWET$09zY3^#pm^Dy4PoMSX2^MD$ zqgea!axw^y1{Ayu7gHT21)@f0>1MYs;(Qb|8?Ihzg(k7%oo_@r<2e`WQ#wp9;GuC+ zDHKPe^Um!!*X7&!H=)gTefjvw5BdB{=kWH!Tf=uc@4V>zOXu+5Gvqc*nFPuzg&=5} zazbFlS!1fMxDIf}YzCL87S}kDu^rVDSS{(|tT3#o|Nd2*Zu=&HB+sD1ZlWyS3s85!!Ze@6TA$;KU8eJMVrzo-QJ{;yb{A=VXzv{(Hx>#>H60e)R6fdu1 zv~n@&;_}_f=wsY{?Oi65>N>F~78Vr3Q$d(AL)SBYEZib~pX-E@&cT%(3e^F7TAm-T z4Q8gUp`wl?zp4Xm3|=C zN6##LOe1$AERHJ&2@ULdSMA03udr|oI7m7c>bQ}nf2$EC3)Ku|;dSd!sE%B`%CU5a z6sCqDA>fFt-fp6TZU2tc>FR7_+fFO=_?TEgRpVrmX=Xz*HUE}Aa4R1?<-3)O7ry$P zuC`o!;j62&dkj|5xNGvjE8 z25Ndw8}vit*-xs#Rd*Tij=DJ^vPLmUl8sRCkp!a6^4qhkUa7d-l45?Tek91OabnH3 zSEB>eYFkHP*GYS}Br(aU(rkK{n%y0^S(;l@c>L!%tUs@EyDi>`zigm6{?NOr#^t;hQQG(` zl@3#;&I1N<&@|wMg=Mgr>)<5Q=teV+cEL=88JUB}k@1s~qZ=CV8%HF*|MArx-+=%9 z=aYl5_O}lNtQUI+13cbxV7M{BBGS+)2MSB)sG)cI!Bb8bTVVCt0EE{Xp1>a(C%9K> zM@Q{1>UNk?V5?!5j!Vy4a&C#QR{3jAC1o-qrOFzoCI@T$JRjI5$N%60^XKQV@9Aiw zAt5s2vyFb(2W1Tl&E&dr+I4q2KmLB_^K$*13qJo+8*oF=U_*FIr8H;_^BYx-?+GnrB5YV609#L`4QV0S z0D@STr*Nb8E2scM$cR{i1`H6!c)Zw5!pJ-1QzKsCq4@cPt{Y1StkvL|M<-z@kO!3D z68WLcOOs=ZQH6t|xKJPm+PNw0J{FGc3flkaXl;P7dsV?Vy{blLTcNS;9~t2gayl50(DQ*14=XPs3n%&yD1| zG_|H9;wXdd45T;211s3DfuBveFf3WNoWeX4eeWkbj&o>pXq)UBbj2xc$Kzn7e3)>9 zv&mzB@7gM6Dx^>_srcm&F=!IW;MB~y=PH{FIyWo>#1^4Rz^*HGVgpN94Km@b0Xucb zWdIF|m}a(uN&^B8bRwsP!<1*oYu;wT?OYQlo|>?k<6BpP*op5(|NP#Q*+jg-yZms( z+#B#ZVLic^+%UI6Xu1JAf#dU=vy9}-7XugPr3E_K*xt|$SVj9A$V4wN64Q!Hz()E+ zOu@QKF+o!j)iEP*=t?I{xP%wC($(|D;>FelaP>NC?&m4Bqb|2jQ!-wvyfk;IIW?9Q zNMbosl|2FPs>p>H9IcDurGAnDECx_5&tFx)4(=KuP1qWc@6`UJ`eQpv?%QqJG(d|1 zxPi7|0E2FhVMZPtJ^lPPAu4W}U#!fHXD$r0@k!Y6`PI#ZXYaF5&b#Dw zbDtmG_zf0@!7~QusfB4;r>P|}6caLS6UmxB9#|!RNTAyX#t4pM8_DbbX5Tn-mgdUs zqeXc=7?A>Fi#b>Q67v&=8c(PVbj^o8o6~LmB?m^erA25$O`_TUsp7C{fTzNYD@}$6 zN3T=%&*CMri8=DjFq`n=R+{~_5pPE~Mn&Hk-SW&ZoABaRx_X}NWfFXC_8c?bYZd5f z^?Kjuj`zy;fmt^}zqV(F2f&~(qgU|eytUr92gyaMf)i%C7@qAJQQe(FgSEwal6bQl z&Z?&-8KZz4Cw8?K&OPqm)9RS1alr(iGur{fYr<|jO_I(s z=yf)($HV&@X^5CqGnudhE1ic6KBLET1G8Mr}G zv1uAwnY}Gra|75390N@GR=Zg1hlYj0GyoeN3KqMbx@h(wA?6yB3^&Xwgoy-#hUH*U z)Ij%UaxwX$7*V-AMDFy3EU-p;F9UE;q{oBQZW^FP*%3C1;1I2JET?e{>CSEcM47L8ELWUnsV&Ilul(c2dfph5B}g_?E$qyZ6= zn>-^ov%&M{27AD^^3-PJg4yxW@N-WCWWVL+X#D)G_QlB##l-8qmYu*cf_=emPVuHU zhD>wrYT)9+tL2N2*J7KN+wDIYe)T>D&+u!?oAJ#5RC>I&bzVA1&IM-XZhVEii@p>+ zndiinx2xrgfs1>od97@nKVrxt957V4TX%SEQGV_O zCy#N~_ahajrGT3-F{Z|mc)$`-nW%76i2&Lv(q?z z6nZp$err%yuEPx`tntjAh>&JpT1gwXZWWZB&~R_bf{Cd-e-VC=E-efi!fCQ(IwPsU zM7LE4C6I=%ef=1)w3)&cICq5((o08OIBpoO_O*CwIC@zDA=ZEz@1$bUbj7F|al--Y zptC1a*O4Ftd#2Cqtc9$h;Yv+pL?;$JLW|2$l>(e17!ut+oIYU1O)ZDK2;6sxE3GC4 z73B1800&L-J&P1s?J~)IlfWf^uisLU=^url$|=L!k?vKWf30P&qvZIV9Ah4kG=Rp? zBwBK;s6)VnySB>G#@il+F-qWqc{x}x?KOTJa`vSHrUwf&ze4KbUot(S47J(Y5h0Og zG<8Z{u^cprwV$Ra;RakF(u20@(+X0z)P_tJQ!u?90|Kz~kp@S&@UqMfW)ofe#KVhskYj{X)`f#@qLtH#Fz?ntZkJ;sdBa=CjHV>{d!D2aCrXJzI!3menBeKKQIxltI171Smc2k?FW&A$%!XE zqgU_9#0@faWv5r`0RYnRu#(-O#&L2a&ASoG$$nGP&+@Mz=S+lr(vi|brjVXxMS6eX+;qv zabAtBg9ODyw$Cq2S+DeJPS0zcmc?0blW*20W-gf)xWPI&Ir~pYEU|%808jfU{@IRa zE-grtZcaD)yTfjZ=Zk;Y%X2;-Zl?-05y#K6Jj0XmMRCczw&MMrJi~u7;Wah4GoIk) ze$1>}c<}}Jn(^*>g8!R=|E9ug?xlO)w-XpT`lcZ3>9e6$&RWN=cCm3^=NU@ZWx${a zX~Iihd*p_%F2JjQsqi}b)IxzlUaM5;ET^x|c7E%rnHI+Y&YPngF1X_f!Fld~@4TD2 zsJB+g#+Rg%opQOY>&jh#nb}Q*bTJVoJGXFcJYD~RwH4SkCc;=X1V|#HH>s@IcNs`YuR#t#p@_w#AXmD#y@$~W znu`P}kkDQOu?7rPz7Koezo61uhbTj>v_wdT6fi5U*}j)&W~0Z&MC>M0qe82~XKf}c zwY9ETy2#Dc4HINImtK&oKb@__U3j%CT@vwHt_$3~yg;vZ(K`~nBqO9bW4BS5Q@yXt3)5tBfKtU@gUJ1k7>=ERAqvot9mo{D?{Q`bkt4b_mE)H=G!021CHk*Q8d znIPxA(Ft9bpokLs*bjBO_8BxRr@7cP?D3tL1n&}*XhW6#9uI*NSY?BNOC?z}Ne1}7 zMVYoj0B%4`Mmil;uK&thsOu7t2Qv*0*ePNl=MC3kMml%0Bk18|CY7JRYVwU*RC6OR z86yR3LMJ%L4};Y(Ceimj1=0Gyv%VD7jj7RFi@*WcP$!^BDxVtd(G$vc(|N@NH>;NI z4%TK1X=UwB1P-diCVg2lJ$8jURii}r1GCcJWho$(cQ%QToNS+E{#cEUu3B_TkcAE% zf>4%Wr55Eg7^h=GR@Q}<_ehKapBk1Ho7`;E5yn6f4ee=o!g?xRPt4Ukf7W-d#@|%T zwHpQ)GISWF31Z_P4lJT&XO%=^3usuvP;OvS8!|dU6myFUH6=!Y4@|^&p>pKC>vA3y zk3hRfj8gSWL!!8U2^{IrPM>dwt}D9CM{1pJqo_=T&*)?6uA?F*=T{ zu1BMY>094@@l?AQ%D(u7_^_6X~6(bmFTZ`O4rYx~-_Kr)z=GdfH7BOU)HgMvLOLNTBTtFF{!=WsX$n0ckyu^Zh2Cx3!+M0>`Cxzu$b z?r7ccTK1webM~5KvZ~e^Xkb;jMXR34WLX#uISir!taM@%&C^Qfo*He~H6Rb9PHUzI z@nTlz&{4*4M{cMSdoq&~2b>H!Pxa4;hV=ZqlbqfQ73#`Mr-aij_OH^vY4i9-yvh%Xi%+=9VmVB&9%Wi;+|xEiM5Euu;!YS1pi9E9k`|l#SAa z-;XS~jt4bsQ!Qi-i!RvrI#3GQB}Hx2iK(Tn)R(LPbwG;0*{$#H(Pmp|(~j8Ox3v{z zSONyxgy6^Luirm^6_f^1AW(~oiRs&svh6*@5(lfjn#e}y*vsAVY{^XN>6#tzg$*~8 zW$Cac%;om6^~y|-2HEa}rRL12AP3(A*wMzaWo)oH1)Q1P(1eef1701^*2iL}8#;#z zvm11z373g^;>XN$qt=JIfto^coZ;pKQ;CTcESmikh% zFIDz>pePtn#e@+*gRn4?R<}+|34^Ep&XFwHl5ES)eF@!vKI~Y`ve6<r#X+ErI|r%(m&h*eKi>aATXqKNAW$a;C9V)9AYX%^LGh>r zGGd}2B6DPcI5R<90sGPE_sM|$&zWF|scZ*RD6xS~a^vDrpUYh6HCFK?2Xq*ebj_EM z#XftbrDS3AmL>TZe@k>Iu+!$L8(Z zy_COiX`&X77Hdlv3l6;b64(2x}Y#?5*p~K?7Dy&?GKyv;p;WcByv<6DVJMdG`3Be@yAB zbV$?@#2^WnD2T`$8CzruSa}cvxnsYi1KJW0gT(QBhw5;mU33m6xGrQt3~a4J1%b8; zbx08f%r)}T#dctWOf~YdMD@+rW4I(biAFVM@~CQ*6a^1LMn$9KNlMh2px6+r9Tjnl zodaSA`>O`1LGU0@-AO={xr}r#fSI>Z9W-cNVZzuwH_q9E^z1gl9hOcT0mFv&+cPf8 zn)!sRiNQGiAb^xQhz z(s{H5${*vP=hB#4gC+dx$Y`B3=m(5iAzJ%T!}nlYGeGVne8HHG0XIn)U!i!R$jK%X zoNW+!%zM02{%+@!j_3}ZjLim-+E ze!J>|4vs8Q)F#B;{aLZ&nRp8n{2zuXLL z0}CNtiUE6+8#TNvEQ`TLV&uEQ=cmVJV8vT-vfB3+D{ALkE@t zPQH{fRgdJr9RzeEa3X;SKFVixyR)-}#iO_*i9q7W9o#yt%F}|Da91a(29@pS-St{# zk_uglyjfVt;b_f1`dsrqwMSd@PkE{6XNW~#12@o?bxWIQa$8t5t`<%W)Y5NMHdt2R zW4x7byfvsAxTS?JY9tm~#^*C7O;QWFrLI!wR!BWQX*yFOBi?ev^Yi*xk6yB_*&{XJo5rJc5o;ovnmF1feE;eGPo{$;DqFlk z`;}Y0zb$04`>?4aGTSFBFm%BOU8wWvIXWpdEQ+% zi0{E|c?w-9@&++CYTXItd6*7R|6-82=h%(dm6icZqDji2c~qWhW0c9mDz|krW{Y}_ zaTWud|0Q7B1StVIvOt_+gMc`Y=ld^89HfBpC>O0l zCVA^%pI}2QUt-!`3z~X#I{`UhNi?c$$YmMSHL939G7sYNM)XdsbdVV6pZNio`=3ws zTqb2I1U?@4`R%vQG(VFY2r3(rUYt8)dh z;X$ILI%%?s2GZ{JWpRHWQc084!q(Eof<=5PJZoWr#WnEx>FP!s=-|k85Z;_O1r}H0 zkvnuNQw_+GW0_1%aP_!!=#hU{RSSz{v+bR- zSV*q*qUXZyDJFOW+1!BYHMQj(m?O&|Xi%)`F;uqB{#Y*x|6R!DAKzL~AH?F!o0B#U zwjzlvoEtS~TeE+tZZ|)p#13})n$n8F$SGuiYlcZ-akeRKO5Y3^_FeF@HIdWS&E36& zb8H?@pr#5HI}|(+x{^-S%W(0SNF2F?fPx7-6R1Y!$TA3I;T*9grBYr!=CxTkz`gyN zJ+3&Tuas3Re3n(dD6cB1rJIF=YooJe@Yy!2 zYii-+JF1Op^0=&>^e`H)U7XK!ZxtPy)US3_trflb-hZaeV(A#!k$M<-kVbc+c8z=XBwPB`>Qkc49Y;u?7X&q(qvrw zSnb?lxNt!4G&={sIu+Kq$y^*~bu_kDXIWl7^j>uFhV6Zx@T-5kDU3@cyfQnO4)30_ zXZy8nJkh_g&)LTL7OnS3g_G>XEbrX^tKphmoF}9AwhDPM(5-{Vb4gq?qlNyS-DP?2 z%WL`hwbpAc*SB_|7aKz|nGcwJZ}gr0en-*QlZ*3v%9<_QD56!jcLj0w!^D;BH4B%s z**z1#$;j``^roY59h~ghuyxQ`zJ$i9;PkOa@w$Rhjnr|4>8H9Huv-idtw|qSI`xhj3 zpSOS+RamnSGAfiD8;S>Y5J);=8r^?pL#zz-VcLj63s8XQhOiGU{AS;3W_bTKV6*?y zF?#e!OEaa8?Lq5ke_L>{CYz?UrHMUm9hRk|%_)c}PZG&!p!k8TOx3YC2w#rcX^J{n zz=AT~Nl;OEv-rPuQR$8mJg$+w4gXL?zg&LuzJe|k*qcJ5*5Dv`R1&m}1fE>L+9uWm z;4+AzoR0`J4T__>2C*a(I(p@~5!MJ@71|;Eg6jH2L$h$jgZ7?@ z>OIaDZVovGS^|D^|091;B3KEC35(?lgd`gEB-tgV;Gl;xKCMh!dGNA8g(>0{jY^;k z(H_;+SwNXkT_EfM21gemPIW^qap!RtR9Og=NFdN{gTXMiOhFu@NazK-*Fg>J1tCfP zW9tlZq^E%>d>o%Ew2Pl2cJ;{4fRf9wL}G!&9@q>ABQ96@RS?p2z3w8_PY?z5QXYRdP+qDHBK*vXdX` zFtY5vpwPl&Ax0%!p_m}f7_b*}e_I87dSqgU4q z@!pF;^Yzz#IaacM8FXBw+5^JPjV(8v&j@~hP_q-0rGor$`H2cuQn*|S?}PNiqXG96 z?TL4apYG|l%nQc9QjxjcwXkEQ1)Ue31Y}3;WJT>0Ztl2rTKusH`R99arF|hPJV~7F z>~-=!V`0~nDd0ZS^@B@A-30wocumP{v)iTx2Sn9_)IO(uc;*Cf}%WCNmOA9La$fc;0DiKTY0k zDE3mN8Fv*wyDQ@xk7~Q=NmF%k{Kvw0e1gV8&9Mg%<*#2gB#rq0S97{YU~nz}NI-FJ z!1E1LX%F044W7%Pye~+g@eCCGHR+X9s71!&hp*h9V*+zIuT8_#FJL9+U6Iqnm@8Z- zRLTs}iZ1uQ1KppqK@}d2g0*ZhNxZ<5$h1%cWr{2?1mu8XeBNVZVl$!LVE1b5lFS&8 zGKJ*KZLxon59j4NEfBt(S)445XM8P94w;+d>4o=73pyKiIqr!n_HzkfeqCAZRcNSXi0+mNs zRIEj>{wG!wc9jL5RH(tsMFb~P5WSunf17jV`}uyG}r#d3$!KIX21sc`X)AkJSs6Xk{Km zKvac(il?wvX#qM5yUG0yIw&wlZp+N$3x*#?f(3S;uv?xjjnA${#-bJD^e|{mehUy?aB&c zV@=6{7gWAr1e7WA&d~`B0U3yj3blZlf{Dz5ZQZcT9Uwo)bR>mwpfws`3;nvFl1WMi znZ$_|Y}`i{cXzjsZ|XL(+Mu1BjzD6ljRJ}nsjjqx3W0I8k4Z2y-BCxY8}EPQ+Z?a6 zfC$JyFX0`!4lA(lS=?|$hYEOsfL>&Lsp8U4zjH?cMR{!Af=mlR45|V7dKiAVLa-7r z)5FB9n8T3;<_z^N#B%{)V-*Jl++(_c85nB%`t$48dn)Yp^`|E3H-|yvBmv&HlIJX) z-T!tn$p$R0zK0Js*#VC#oO&EE) z%q=8PV2+I1SLJ1j_NVIZP^dXphp%7XE8ibJsou`(_k^m>rYd4?b^N@`Ypg=4Wgy9- zM!WH0dcIpyocsR!*S(T4J$nDn=-sp*w(+{Qa@ub`-}XIz=7YET!PMS^dT2WNvVCZIUC9JsUamE7A0KISSpb!*QHTBrf7Cxc5V zc#bT~RqYcqoyGBBP)*=wc$uOXbQ3}H;0tDAv9+!T`7DQY>qA(p6rZ`9J4rx=LNaO| z-KwNTHD>`Sq3~N&+Kk(|?UOQz0lV%FzVUX8Y5bxc6neg)H(^pT>&wX0F)l$?3b$Eq zF@YKq)@C=1!sRRFr+H*sHwSy7MIddjF@G#-pia(cjo%1?CDVWG{>*>4GY5NONi?{+ zrsTwzk&pw6Q8U#mW;d5>T41z$2NY@xw8?G)Nk9sWB4|h@*X-o|iw(tQc5EG!NJGj~3#)vzseQ=%#iA`4&rDGLX%iiUAN@>ec1atrtz^0s zKJ(jETkd>*DxNc@YC0R&vWD%u&D4{(50kPrkmvG@-*KC;o9OupC=?ApOiE@Cl1X>^ zg0v{pLKZi5im*6b6FR&4y3gX!6>J81P6Pweq6*3sSz!2z9E!=41%?A&U|)K^>l)eF z5$ydMy*yI%LvzNYSE z#XGr*=V8zEPjO8PQr;GWazreJ3i1Zp*|~gz%GTWUkGJwS787#ybavGeK7cV%?~`Um zV%j`~KTNH|*`7=3+(C9^!3f-0EXxl9mKk3(_28klHt%<~+K&;n1*X*U{rhE`xVJu8 zZ=CpQotm$|P1v=*fSDE+YM$;}qwQ5mrk;%BI3#d$(`Ywj*W^$#FC=lS3tkNLg9whE zmL+=LgOf*I=ZAS_o~ShkWUL#h3`zkb$I3a@64I@UVPaOy;m87W7L46wEh7Bg<9;T@S&m zBD={!3&e>Rv`JWzbrP5(iy3w;WHnS1axLuCL91#Topyhuv}*5TWrpl33o->nGEx~N zj%Ts_bLoqApmv2hS%7Xims;+n;%D`Wb9Z=4_ie*mxx0fwnkY155*DMm%C}G-+G$2H z;Y)$lA4{|epSr}?Z+ScQ)}d3`rclz7$9QcT+Kky8_hW+I#~j}{)6i-$lNhk7k4rbz zK#v5VnAuGZT9COdK6er~o;+#?iStrh-oA|uye3w1-3_pItK7H;k_U?!cD)vmk`CfY ztF&0ASL{O{A)5j~YP=nL?5m@bUx8l&&^6V-LUNrGC>FRBK8>B^_HDKF* zxbM3KDOb{x+9{@;oDK$6U>n$J#;U?%l1vLVkR~2HqnX{rt?pi+sIiZ4l&nT;$uWL` zczg(=tRvWxVN5yE#*~jAKNWZ?~M8 zHClH7#Y~+dQ<@dWy{eiqFM%%GXhPA4hV857F{ z7N^3hGNWyNO4F_th~Ko{pQ3%g@ky2{Q`t(*hD^4zD%_-x5i8BOn^>>SMT|_ViSA*i z!!o<8Z;x-V@9l1}P+P#Dnn~bE3~X*XV;XRWL4=`1{c*C3#+yf3uSiI0pzB5 zetnwV;iO4(Um24)G%qRqVPNmA#+?ndOBGLD8TcfDxpp`QtD0wg(bUXsLg9TvRk1_$ z>sQ`Y%#Zs;joH*cJ%EwLD8is5EO3%37%Xg~@W*@Q<1gP2l)L4JP43vvJM=LHJ^qr& z9k+aL$M`51m}r=vxxao8{&w@6bS)%_Mb*zWg_?$aJ7pVwl;-{2x2h#a{}1V-n+J`= z_jg+{DKu^w)KJ<~-y^>E8Plh$4A{5A*VfOsyMO+GZ9FQNPu;2a-*-RUfrRfkUPaSO z9iyO*>F1lyZJ!UkmHRJ~hB`%4@L`vXd4~Ks;JO2iSJ5bihqMvS5%dA!TFbYlA&H9C zKdLI@MZ>G|kdakku=DNm`^@?f!SRg) z{kp)L`W?P+blmdohY^HF(ijy(c9k+-DUGmtD0h zE>`PdLuT;*f08i)V+bLyWldsy2h(TkK%qB8d=HrPVb`DnF{(%4;Q4Rn&xmdlbkL1+ z;)XIl60qnEjvwnjZ5o8tY!gM5U6k&i7EOuGeRMjW6cuM&Fe786MZ#QvNpuv&dF+ojJ>nn*ZjwO#hWfQf|fAR5LcX+kMbM3GIWfCevwyJL2H0oyQ2_*7X_ z?GBorMOX!b8>oA4VL{O?itZ`_)m$^O0-1Uxv73dm0Rw9Eq@~&lTBC0wHE1W26o{fX zGUb2+*hw=XV)9gf-$MCmok)*|xr}-77#E-A8lKc}pgS+qpetXj1~POE7}#s|hAm{qN3< z!k5~DZZ?}!Kt2PypruWVX*(Qpnd7=hcMkohG<5EdbelZhy4US(xVbIeM+Hk&#$A+Hbb-~) z51d@!k@I@RsaNdSyhwoscvm=ekZj6p1nk=AG2phnP;P4$bthLL6m*)##a2d+Wl z<4-#NHm*`Y_s#gx`aPUCKy=xWuyZOfRC9Dy9LTXOLac_j^IpsP!I?codAUr6|@*|6C6P^0*v%@HSv!M;WjX zkPS!2*q!&`=LPw`dFyQ(uq1M}t9)Hzxn!->=w-n*Q#E?g#*WtJCs{}UF|tc53@g`9 zzE;@sqqj`*8U+=^g7$VrJQzyYUtB{`qEc5-hP z7D*Iv;~+8^ReG~5A~{&D{2&X9ux9l0Qi{446m~1O_m7mT1*?}4Gu40`Sso^)SGPc~ zRdj&8<<#3iefdw2!CP78;#4R_DU=zuPb@U7w`+1tdIQz{t|N)6$HbrwsGB{jghT=M zFXV0ILJFUgUobiP9C=J3Y-d47cdo(egSKz8AMbpcI*%Z7!f&z)X-#b&@ofF{}in$Q#7l!1ri; zPC_tL8xsy=fgS|LM9&HNo;qU&-97fQE(LJdIrF;MX#*aK-Rz4IVfYg!v9KfpZR|Xf zEKZpZ&%TXpW`q8DLnaNqc`O4G4eafVoJgYfHdGP?+;|Amy#(Eu1eQtOD5?(=30Q9dx5#Udac@vziJ7_aj&48v|3x_1$gn=;nI6Rly zQ76!efn5`LA+P`Y)f@f?Q|q*6rY0sm=VK|Q6bh)j)XVKsOoG}2c)z@uvlOy8?t5}=Du=-?d@xQ4M zUt(U!-r?b}$qosq0nNGp;C8d!i#}+-d+}lWV2(uw5S?0``%>*?(Y<436|D*xcm?z| z-L$g}C=!sERH3o>+{E$UKb|U@l(Cc&%b9Lv4p?!@Y)-i*5ZM&e{1NW6=g1_6+zk^| z$;$n3%K{aF18Tq;#foIJsA-udv2Hq`H3V*Tp%O)tEEw%WujH2Pli=(@2qddc%BK$v zXju%4qfgJG@QC?_-sb&_GMoHO9q4=BEbg3#Cv&jeKfHYH^3dAj{zG}qzTB@~T8HCL z9o|E$)Lt&yY3pSFO0S}d7e%a-4p;`Q5S`n+4r99axk%-8RE<_6IG{ve>Y5EEr7~XFM|-!WQ4(+AkMXcPh0}(;>B! z4lt-l5CQoxwKCSLoB(f+NVw(Uc`qB)p0a5j>?u<-!Wv^bqxYD-8-H`UddZGntzJiE z#N02R-5r-D$g@Vdy4=4ywFBnl8yHeF_~U*h*_$1*db#yd_D+9L2kQ#9esrx~_I^L^ zmksEZ-7habMJf{6kW-x3EzshzzrzLN0|;+*Cta2)up)Dk11e34^@wK#oFSJJ%b7*f zJ=@A+Ua;c*{3m;V^YHzRl!no$V1^sy6C|eD_~=gcRiL7gSA=UbQ5#1x2TH(>Mqg5J z7R5JBN)04OT(0-8Ze0DaM_l#L$R^3svU3ykOl(n3t?1R!F9=v`6~aK~yv{yWKEi1I zgP#QX2JT=Sd%YP*d7|M_gN?8S^E1>jAA9q27UhIRjU)_aV=y1|$&q23?21tV$)-8*`HGkjXe`vYSq<|@r1Rf!lh?z+zdMeT1an> zvJW}OB1tURCRHXaIiUAROs_dQ)N*9mie~4sO2)NwTEg%mvF!62({AnAip*{~kgPhX zP0r{bk~z>hn5&uk`Al!8Sdfmb<)iK|J25NtX2@(xrq$+ZpW9>q5d4%VTQaJ;Uo~Kn zAd%@nqEtze_UDq6ShgaQb3sU{&B0kTN0K!)r0qCvpMvZGOUzd`+E039NmiaH*YfD) z{Vheu2b7nVA$itiA-I3RK7%<+lreTm?pIWw;R*6$y3waJx+io;J3incE{W_76+eQ+vZztsX z(#{$OB7O+N1K$dgn#-%1s4OS2DY<4}2>MTZ5@<#IJu`uUduZ$?0r$vhfhMW5UbE|e zfyHDt$*Pmus*#(wP7&4&x`oE=&^D} zh0&x8ofQ2zsZ`B2*<_W=qLcRuEhPUEld5xC-zOVmt^+jCKY%w1D9Sc$(+(n`J$2?ZP5*PR)$n=B|naK&3fmM^ECL;zZ&~*fqOy zR`drqSRjF0>Vx|NM^0eAFko#$LO=v;)RW{QPS#M^L(g{1nQsKD+#!v!l#;YkQqFd5 zi6z!wIkMMPiCwgt zhTxHVbt!w!KkGNVZDZFXd@yOfL2{u#&aj;Xaj6&W1UaQ)!@iqvVaFtrwH* z*T!~AhNTsg0>us?dPibKgA1qqfl+XKX|!Xoqh3ydkkn`>ic<76mY z3DgK_Ovdw1&LQ(1qq?D_>MtQU-I~FId2IcEfF+GExEz1NMM3 zNw6@tym3f@VZlO+mfOAAcqxOKuo$g8Kxp9Joc94*@u43@Kc}{_Opeb#K{2Z@*Kqyk zH_+<^QMYNH1gSQ4h)j{Ec6?S0|FT#CW9g&T>zVYq9sgBtr0-ZzKJHEP*r*3&mb?( ze#5I5EYqkm*sqi!<#&l8A(f*XV~vhq3%Vpz6C^=wCYuh#_a|`S2XwzQdp-`L`)(xe zHUPSfK10Mc-$Ua$apDe|J?&Efu6H*-40qWeJbEg59*KEkja{QNTxt}C69xZrZv>s6&5kD$*@y3Yd|1?-VIiBMKXTl&+&q4AxZ z>@hIBG!?ug$z_s+l37itT-^5wi_L}gNR7q3(GMr=)AKJ@!uxiT$#n5+g}tFhDD#)@ zL63i``pBnL3S#_+1%HW-N3qaCA}t>lF7uT=FQ!O#YP zlx$hslq;_j^!a%N)1{KrfaY}c5+uNfp?FNQN-BXya^$p4BLO~QKD7PAn9a83JwMOS zVqqgWi7eb4+A`^@mQ}n`_gHwO8g-XO9=id`76LHn5wP5*zP*36kA?2*$ZKQZ!om_0 z6or#i?#U$^XN|=?JHMV9E#)+PiFrEWJU|b*CK}PlNTym7;MHxvIdi$5z*A|Krv@yy_bYi_xm7H`34N z9~PEKkARJWj7s9M5@=?yIFbW~#o+td`uH7bWe5OV?UzPTn3{!BC(G<-cz#Y@=|*C4KO>v-PA7bv1#gp_kt{6MdVQ_7Cs|uZ zuRSgfJtWUB^9W^j^#Cr8daiATGd8HrCz}Cwwa8i*R@u0B%hxe-zV`%3Vb@R+Z5<^3Z`biL;x(_ zVj~OPqP?@&7Ui+`@HjghH@CFA%0d?29K_5(~!z@C2$-Y~S?2jq?GJoGoOAu;^KGWkm8hsC-CuWjuNFx;Jp3nF-n;|;! z_ECz4>D|J59P=1%lNkN;+kj;d3imdh+_q^~8ljGQ`=ICNW)0q^4S3KpWIrQ~e!fle zJ{eN;SZSnurF6E{4~dmwdO8l(Gi~S|Th&u=T!6n6aI4o8uKiyN@TlD-{WW>^KPPjW zJa6Rk6WtW6&9_Px2Fz^Gcs5!*78b`!pqaq}+-Dd$@PMNRm>-dI2}D4ZBGViF$Xm%3 zW{xHh0&+kB$1dp7%*GP5p^TlLe;Rp3TWogQsAIjK`25|TvQb0q4vztqWN<^xM?iZ( zN8LWVh36-Kzws&S8FmYW#Yi`>RnO}!Q)z%WeSEtQeExdZSAu)un6!K3qwt~(gs< z6pvEL5v4cojc1ebr@_wEft8ZX95fakpcY~!&`4Si-AsdE+0!s6nMoDmQCce~w5auUo=Wr_;`k^*XgPlIVsdr*WhCB&$c~XR}aPPU;$t zZO&t1aijrnG~e#SP@&W8%mV~e3Cxa-Ks{iM`N$l(2xaAqO7tw1l4j#<5_LzPb!%{0 z=|?>?zdBzNXl|o{&rc3$&A=*2PEc09s67solVALQst^*dMuJHier1*8zZ|<<=dLhM z;?d9TdZXE*-5p`(rCsAPiN`V-X&cUtD>aXWJ++?kWA|9@AW^)(+t#)F*7cZv_zv&C z4_HZp`8;+_RoAOYO6b(WMwxglfyYUCKhL{gcpN)T^#%T&uhMR`;cCE-)cA~Ip;RCb z@YEX(s6bs2peqA&UO0&adl*+5Fi-vVA(cPol`G5058@eA80kjc*uEzPFG0{9vWN!( z)cj6#cNu^&1Q-Ld$HqNi!#MpnIh+@c$j&kVDI|Yz=mQ$hEll#!|2ly?FiaNXQF0{i zOOg`pkwl-}=-;qDG(bnk8{k{a&Y%Kp6uEOYVL@V}$S8RJ%30X$m_ZbnBbO3Q7YkI9 zRLV}tIGec6nBsqab6jXZUNNyU;v0R_HP+fmob_k$Q1N5G8~MBCAUao&K*w|9fhpB} zrPAx-OPGS^=K$Yr^fwj|0~_@uqna8J5VEl5!Fh*;D4w*P7sp zOG7!c(A9GV-3C0vGpJGIo{h6frAy-Ke052QII=DA%)!96fg5w=%DqIFB$cvLGR`JZ zvATWSCcPG6>Sr{jdOrlPRJUEf+cLiQ?Zp0VdIzQPLhiI^XGTFa}OD< z;u)^wvG`P;;rV%f{>Rq2Bsok2VR+9)e6CK^!!(vVQ?dg%m!V+8mJKTiEL_}+s2}Qf zplZ_p_qSwOe#Wtt$%UG4>F~#I;bfJln_<`Ar&3$dHEu3gf(tE)TcMMSeI=4Hwm7GB z-jQiIXHQo;+3FP{v-~%)(tk6I|C1v=C;d2#%=%WPo!ykJzHNtJ@a*QZUFqz1%>LXJ z-$vosd<=MVD=WHRqEl+|wBAzX+~;`XibP&THWvEq-z>R(?M5;T2F7gLfQfi;!C)Lj zLD3)m>=T9)UNM=1xhR)VW)8FazHTRHJHbRQ){~#F)4tq|@$u&Xc>?5S4yu^Boec4t zE%=_HlTVHLI5PLEa}`e+cqr{)szv^r5@D7} z@RgPS{HUn=aUUhUf#vv$Mqi>*rPFsk%std^LH@66XT4tcUn*3V)1ktG4+U0fGCoLo zy=$_9$byUO3VemRlK8DcZ+Ll4X{)PQkNP6wMVDy0TG{CDCSgSpd1j{Sz1-nKqR1kz zS#*8WUi{C`?fCon>G)gDrQIKY^hD6{d%_|6&vuoebo~Woa z%OQ4!>T9Q>Ya0NUGBNS+1ryGcOw@@g-}YxrI1f)j6DQNx+ZC%NbZvy;gauC~7v&Pl z9F;02Y=h+lv*8+3`Mawn`Vs3G|3u3(a-%14Ik`C-CjNrm8(Zly;EIAeXT|SdhpG;} zRsW;Pj)jzZ)#K02*Mio2&Br=U7ma2{RxW}CtHiH5jz3y^yw4Jw#;L#yuKfjDzfA6g zP2#5U6IipOoFpt7t2&vl&_ko<=c&T$s1(E|Qn5(Uf)bT!(dq1It|6L|D+_3Q+fCYg zV6iWJboVNfIH|~aN%4X+HO0@@yDRQw1r^$WSx&F|L+zTptqZU$oO;L7U$Cz5*`bg` zSqcFz$VTM)5W=q>1xe$o5vBr8yAhfcWG8Ay6%(N%F|m>zkfq|@<+g$pG-9~R3}0^s z^FClI7|a8!QvcEWZ)L>Q#8MI0RcHS}9~!TyT5*eSIz}q~yXMI0MSR#caKVJL^N!bK zd^m+A@~8<-ZO978uh^l{4%>hVj`};x(B6GikbTOLGi%A(!zKYVnp|Scy!c{yPsplO z>d!QlX4497z!e6TKxx|C@tl=jTgr%!CmX$LDy=v65&t7`57PF+aJYT-qT@LkNh1nV zP(m&+3@0ono+&#H05g=XTm02_@O$8!J&L10N7b!1)&)1YN!<3o1#shEQx zu$*|N>^MwrCz^`owq>$va+TqvAKJ~WGO^$;w;^)ER`adc3FZr$2sT`|PAh1vBJ>bB zo*DX{bEvbo5a1M=<#cpS;7P&7WHsf*2%r#cuvLG*23%+ z^=mB3E16oI3-CN(+924vHskj+aY13yXfv%Y&2=P5KzbO&ik7|3 zehu&=pEdC`S@d{ygv7_w>V`UMv-&QRaRXxGT)+Ce0)Mv61*z(12XIU_u@oS+b-I z{|TN4E%X?iYp=w4f*l=cHCnB+HKR+4XE%yUziz_`$DoIZ^3D``oWKd9m z_}i{`srx-j?c*1Tf6n%iQ{KGfxRiKxD5zRh`~XnLUdpCBm`aVMzo2S-WoIQnBwl~h zB&kIssK|T1qRdXw)oqhqPX1xrhBlg&tNUsdaS6im@f2CSV?skU7!?nknRnm3uoJ1r@EK>UO}j7 ztanwB2T0V%8H%^#H@Vm_o3B0O1w9mtEP@*Ada1B&Co@fA7tl%?3b3mj1jcd(4j#2o zPR|-ib=AUMs(wov?fj)?CD%gDk#P_OvEyDe+c%-enu*nr1d#ZFCfmKe zKn;oPXfhRKN2Y;MzEh{FtuuUz&;_c%?R#t;ny!bnhfT}m?zL&bnS}4x&)fIVaUWZq zAGUdpU$G4!f#;&v3bu51hgoqknZTg{50ovdT)|0NF=9h6#1G^`Co@gi>K3#NxqdcU z;L}`%76gGYx6uRp*y?66@|rHPA-?*HB&-^N?Hx_+=gS9`#1-4goQvq}I8V7dAHV3# z%vaNG=uA%BL6*0}4Js`YN%Cv&aYc;<*??+7YL50}d1h@Or@BplablRodTOHW5uSW6_(3w6aE`m=}Xx>AStcKz3*&SIEKJVsF}O z%N-Wu6%<~@ZAKnuzcpo(DBR&{cX`6gZ}(4=C*;TYjk!Y0Ji4*JMxzK(gHM6pqKGG? z8$tKS;PuYK9lumu-k*oHg3QV=qs58 zPi9ZHB`kO{oE&DZl#3|ylntK@o*bPWXS>&2HyH{l)WXbx@5YuedpaeySkBm|lBHC< zrvREjWxs7AyRV=;cn*_MdlN1h$fm4Zp`#u)!dFL!BdCHIm6v(1?v@P|@?e@tTRjcrTv5 zSFp)9Fsaaj>|!%4|Hra=os|=3vsVyv{A!}xsP8m4C<&)~Hx+juT-FxQ$R8;W9EMXTETW@3#rU=ghAO=<6OW89?Xoh5F&!uQaM>r`N% zt*GNyjTPE}0#+oe)UYp|&}OC2+U1o7*Oip4K%0KuuJ7Gi`wNP0A>nUdD_(##PF}zl z+!b&og&99~r~M;nqQo1X%$&+FkP@UObx`D=G>K_i( zRTE&~zy|X$eI!$uxbF9qUh;>tXQ-Z#>oVmw00xzeJeWB0HSl;QjM~!%(F= zrPz!snaVM0EE`>cAuuM=Q6*}2FpZ1>MxT6t-TPSd7r3K z%-Cwafnva>v!!>96PT8OnGC(D-O7qjtIrUX*RNZm>CS4rs$=($iubQMMvT%qVryKTwr&1MB|-v%P}KofZaA(%wFNu^OA@wMSp*{ zE~M1q#jgF;UouATybNQaIaF z$gp$VMy}A^rE{-)z|vLekHWF?0~R+%>;BQgcaQ*iD(jL($ME8{LQL??JbwnXp8!h z#Q2y1lTyT;g5k;1nqf>oB11H3b>6a{jdka3I>4k9ai?IswlruM(~rmyO8U$=5{&_U2XLtIKy_m2Fc1)2i_P{3%~RsI%+R-P@SD%dq?XD&+e$DAR`2C94w2*B^zBV{F3<5|U~y@+ z+O%7a{+eArAsgX$ERnY@y1W+V-ziVXYsR~*yMr7VPuRAJJjq9_bQ!0XI>}gwY^D>E z7iO4H3~da|Mmk>%Lux#p1ilnpvt=DA=Y(w5hbmf(-X7ujnp@kTU9JBSeDoKT5jRjx z3PZ7s_zhSA1xRC}G5}S!6lf=7CN{iKDOpplWOUMm%_(54>U^O=9#lpI6*iR<|Hgq1 z{GNe5ks|VBS;>N4!Ezbo=51wyUmd**6L^ea@-?fJt}`dE6m7jnj; zUf2qW2h;;6>_+x1SM}Wqj{Y;I(Y=C|RQ*u(@n{p+(mj8g^s9L14|X+|Kp{(MG_O_l zY^pND`{LNyFBYD;#?~FT_s2}sC1EGIf-CM~&pai+ur(|5SJw`DJJ}zZGR$FL2M^0= zDtFKrrl^2wn$TXeQif(D?~Cz~in-#Gc!t;HVaCtpMIS4K1G+W0HhMt7J#vNB@nRbU zuf2C~KR0=Ve~+?2)a$nNdaL$r7A?^3z0U8&X!Gd{?E%0Jq5+3iAcPsA-Do=4w9f}L&C@Du26 zeEEHHfBy*%R%_ic?;mj2EdM3}zsda0RO^I(Q0S>;A{%e>XBZq?ac+^OevsxXSx0@8Z<$&adisN;2 z^V(OAohuU(PIMwC8yPbR_qFuJvD=6Vqr<=ynWOO;`4v02ON4 zr%hBQU$ebS>i5fl<&QyM%_UecvN87 z{eL;2K+~O$5fkzN9P$Y~VM|(-RM->^ES0fLc*luKx{12sfL>kKfje~eInk~l`>^B2 z3EhtB6^e=+8+6n^ZNlxXzU$bOGUO5UKQZO%k|bd1f)eDpr9zJzXOI%wZ(kK7ZW)71 z(NJVwOu`qt7E`nt7gJV8tJNtF>~h>|m#-d9;+-aJ37wgE8qK%yYeUxYyWUAO^45xn zPoQv)+JC~cLW8y{yz}m)($Qc2hOqza@J@V^LB=ASut($`ztK)*LJFKw_!Dv$;*USU z)#(c|=&T++-{JY69@`)N&!SJQ;@8CEHwpYr=69ybueDwiOs}5T#I;O8yPMdl*V&(> zERC$@z-YZ0_X+tm6`NS+<};&$6I!jv#O`Q!mR;DKF1s9t;Uqm;;)J`(_|kfqzM~5j z`g7OeXiRc|IL2?^x)zdnjkuvIsp_=#?UuVfdU*cY<*UD-5N9lcm8xjF7`#;A4Z0go zuc+8rMpZQ-8=?VCV5dYy4C}Nk(;A`yO^~vaM#S&$lm~Lc39MupGSz}Bqks(PR~_~H zQ`k(2KV)y(q+VO$yhAT6{RI;Acap+6sh}wL_=cs5l5X(j{hopGenj5xEcW@Umtnfq z+bJb-Pjb;uXNUfa2Rt=Y{1R`1p2^SW|->+hqw zt+rKP6K#+}<^bn8urakvAJ*lp6$ZLW;hSyIU%*}Dy+w+?r{_N_v6Ce69Fc~^pU`W{ zo=Rh`5Kp63DwP4ccz*(Z{zLS7{qL!O9_rnV% zy!*9}!@Gil6dRL41}A$4QOwBB8*K@_S_}N->zbGKWI4Z{+cU*GVf#SvQq#@hb-iSq zflsmMvMWA36Bov3;jN5)EQ5Ov7}If@%O*fJ)l3F9O)$xm8A?E{@%%dr)Dcl-A4)14 zCsaHp(8DNOj!hFf&E(8ky^N-10u=eIV3wSCU`10&?3h*FX;(s3QkDL*8!`?sF=KH` z7}DrS0XcGXvmdp{r%Y!XfAg}y!Li!5llR2xY$IJ$K9LkY=)h{)`tjM9s`Xlzp5Cwr zDkIWKEQvz3$$NjnBf(I+O>=kq+2cViCdeN*(F?2TMr?>3u#Bkra>I;!Ewm5!3-Sb< zL{3_~Lw^W$87AA*6$^Y(V@#OeuzWQ9_>_QU$XP|(+vC~b7kE6nT*xZ48}!T$7pf%O z$&iYYZ4qWD;I;+BYcLJHnkAf+r20V;tx~<2Y+zsq zEaq78lp6Oxw|GE?3j~V93q`c+W=@*G2_v@~m@~3xq~aKIPBdc1G69ve=&Zm_TY|;x z6m6_2OC#<|q#*i1XO}7gx;e#>~)(&9lQlj)1n zbO)3jYh-DBvGnR$6WAKoS$@&Sfn4Qg%D>HQBUOPs2jdLy4+H^9TW5z zSKWPMbsw2dJVj;_LI*;Z8DToMbs~r_wQD+Z26htM{-T zIANQVkez7{d`#Y*HbeV%&g?Ru!ztF$mXw(uNvu?9f^MME zvHN3Eu{|L}@uWVp))SFWynI-6key?J&r%-WCfMG_zV(k$;%G!09b!}^Qx?#NNjb7P zd*`cINL3TJay6~}1#ieh+mr%dBUTXm{`r1;-<`I*q_Kz5LdK%9p@MYndwX422W#U*p52`xSOjB}}I z;3=}Y@)a&Ue@J*Em11fMU0h{O7@6IKJO%U`r={hLs`5mXxYKbClJ7}`jv;mATd!qb z`sL&Emp^Zbvf$$A~r$na%(vWk+j`Nwqa)i^NtaM@d2_F%6J8 zh%!vlKFeNNq3blxg=h^hzw*$E8ju&;g_hjy`MEqg8B@D=uJxfkr zoV~n8WaH#WlQKFL!M1e9A44d?CHetunxO=2)0mTy5whg>d+Mqup%k{2cZ!bPFhwIx zn!8|fa$MTV0i|QYScI+-|8%=0r|r(&+|K=Gy766mZktCwD@wmc8_$18lqW+9{hR~T z<~o>~IZ(p3soaMqFx^RL#NJbZBHwj&y!9X_K`P3uM!)88`sjtx8bc*;FK~AF=s|82 z-{IEd?U!`py@6)G`fGdsxOat;pa1q}(t76ktDBXrqWLSMSh=B1gPr*7YTuGbw!k~x zL{DJTEe$@VU{=Ubtng+6Ss~viY)(*bYNVJ!B9F)=4jri}f;=kn``zV(K^TJq-PR zJWJw!nAf%xlQ$yu#PGeEp8co&>tdex9a*S?$~FA`fT29}I~LO|Ay1}(&mUmAL$=>a ze6@dDroG9>*1jzh?eFGx{-^-g7T=&=P3WX*_b<28I!;SkS4%nD>rd3LG-)eT!suPg zpBq!BxAzwC5+?j?@!s*;CCIzDki3c4qrc!y9*EsBw@}-1+}ppmw~Q(q7$jgrY3bhR z>L24e-rJIyR%rBoKf0vz#$E17VjWR`jj2YK(2+;${RF$p1|4n^z7ue_`+Xl#4f0SL zazdWqm!NA(Hjlv-OnJavg-yZ0Qu3!vAw!95S1MRW7Dw$rhiWGdtTcgzxc%SZ`D@EH z$UF6TKf4^jJsyw@+QET>GC>k3AIlhFubjcny`@2aGITVh=Ih$%N1U zl4$!Zo8-_`SaK)vh}(eu>XAn~XJ0N;;+e`=$haa4o+H8#8j_(*fJrIh?p3qqb-;zI z=I(5oW=3-L4M#kQlcOxnbw5VDKSX&9`{Q0lgdzBy3^JC58HbzqQ%RtS`_Q%(POu;A zc;dcCmO*g;zrU*M(kZu(Dtd;X`xzw-n64N18DRs7#y)XCctuNl>ZA#bj-Iuu_d^9#WiL>^cij(Eku$W)`r}jQO0%fapj*Dn zwMD}{e>LTV6P={okcFTBX{|ZQHZkn4hbdO4Eg(f^HyAKGQ@|}U)9To5UvsNV_)`2@ zJ!9}3`F$x_8{(ym7Q>5stZr@QigRDNxbf>7V#-=FPpjh>`&vEDtwxUZoD@*wH6!Uv4x7nDj{LU+;$ z!|g(G1rJd<0&v-^k7aYzhX?pGIxagz&rRTn*p#8SV0UYw!AKE6Oxu2}qM=u0Ov$o1dB^>z5piVn~+7rmdNK%wx zk|!S%GL*ubSZ>Q0A4a|;d|YB`Z9)z{qqSo9+nR`-3Y9HgN8D6q+7`5}VpF}& zC74!y^)~tQ$3oT-P4>$fXm`>()JZ}&((}aBe`wyL`i#Z6HP;^O()s!Yc{KHq021YL z38xH2Oac`a#jNs%7j2B1 zYp=!n(+7Spy;eRz^K0^eb4~qD;^8*j$SfxH!OAg_y`d#%duL3`Md2ayYRhWFN;$yE z_G0rF7{B(pRr3ogZ1)}H`VK~|;ehO};!bSl>g!p|fz=cZGL|$=Yh)l*8l-Ku0#h(Z zle|)>*P>!k)$x7)81YR?jO2?+aq+%$(l-5pwynL6KM*98aFPml;Pz_M|AF3GuBwvP!4Xd~W#WNVrP73L6SS$Zq;kvPv|Zg$l5wPlM|&0cq@fRqZPB}89Wj&XZg5J9 z-bdVs2b@r3()(AreZ!V~hc;AQQid|9N@%w014r!1&#MLMFP4x{q{j@oN9@xa?=2LN z09D0ohT>#NowYM3;OMVxRa-p+Rz6)BjI6MaW@`Tc3d(cFIv)~1BKF8V6dZA5Vx@}& zbV^5xe9+^?63+zf16#?2gaLW7XUT~JCXCLCCY)rt86+x(oG{={!Cc85DtY@Cs*{3_juX zXZg%5gJW8lqwyiKUC^1$_)uS_S~IQ}gghb+Ar&o~r^uicBf96hup*`?zL@Q5%ZsphF=f~IUb8Cj#`DCGtA5v2!0`qWtDjAdjhik1<_ zbab|Oe&u`9R*ZXpWgM{x6iX;FyScL0GCZsT8=PdCs2Fm>fIQi=HXp*UGm+KtR=*zuCeI(gsgK8}wT zxL^9v^j2Ds?>Czk40cDdU0pU__!M@&RN-bs*ouMVnx{{ zlq;1+Z=kW?fp@aL?~2J_S|-fG=TB2sY-OgLV4`FboGns?=Z~ft@`yNuR1%dzvf7k% zrMQbFBz)Y9=-FciTfuFI%1sW?NGhzbLlLmq9n0(rNO&I+RI2GrWG5L7b9zu>wg%eC zSU#aC_cIBRZM0uA31W_4>YQsMmskGj#G#*7-|mX;jsrsAw3?k3%fWfuv7?riW{o^~ z>4-jmsBD{pEWdNCT7i`w*x&>nvEqTbVTID8HXv`9q8Yw{fem9RVN4woOF`ZaH8~OS^7(agWu(YUiXG%F3LqYB9A$&9mzB$Ak<4OXLI`t&NR2 z2KUwrcl=`E#i!TAZyI=QBaVaa495BnQ>k5Ic34}onxB84f0C&E+xm-%yId_NNy#2x zEwsGUmAKPTOU|TIwv{s$>iC$0wZB0g zk+>J(0osmC^zpp~>aREAE(t|;c`$Z{&KVDtL`4ZtQW~o9G}TTi&+L^^a2zoUAM{We zp5I9&o6lOG{AFONL|vp|ZOed_EJLO&U@crDjtc?$B1fV)F77H9B(uEV4SXeKG5R~mzl+#E(MwALCl@V!3#zB4atdyXbfZ)^P;Pac4nup?%IZT~D?;G3npiE)ikB9y3}Q}5 zr0}I$RrOdZw|~%I?<4k{2%CCFlb;e$B8`}_47i{g$PCnw=<}aVbW`ZW5|rr^E)>e3 zqRSW!i+lc5VX4~kD%+;Orc$AT`0qGk#xmd}(<^IPMXfqI^ZYSl2Gb-n7d*g8Iv8v) z(hqa;MemzEbE1C82^9aSug8LJ=DA-8AG9n(i}m(PN;cE)-QO_uF-P{y;PGCoypA z)KbP)df zGq&R-yC@sS7XZ5{p)0GSeL~jxu+NfrhY>h^WZ+J|u?=a@p|oH+xk<;*POpE6_WafD ziKC=09O&^}sb7WxbyPNxFIOFr4U`x>pa6Zkja^pPIxqt!?~`v`@yO+7e2B{$ zx&+wxM)74D)xiQOgT3yf$nMSAhW$>(;XP89a!kz>!5F=;y;I^@TkF$45Lfk^~g4~*bLHnZ56LJ|i^ zamqZU3sydWL3M2Ryvx zlbc8tpX`HHi(8BBEXVoUd<>deTI!2`UgNu{xmBzH$79(n$kQcphgCYNQxr;Q6j=9~ z)6_T`&}O~xF1zXB-P^rK`=iF!?_U4(gpGJTc7&LL#_;%cr-E=jU_U$t;^YZD@aWBbuv?3 zti&NP*PpA)?8d4YH3fua8v5;hhCxGs0mllvfUL7{Jg|(cFekcsg1q(?tL~7pU1ICx z%B=OZEH%E-2Neguf&f!BY$3Opq$!usC4d8@gMtzdhJmPjW>2@&&bg_$Cxv!5LN&$&9@KNEkzjT{pdloHGvriwd*I$eBda#?$dHS@1u z6;?lmo4jZwqBcz8Z+5OLvuz7Mv~%5O)x8~H^U@~HWa0Y%QGqSIQ#LIvCJxmG?#0D6 z?8eZ=cIGe20HHvg{Hjef+@U~IoLbG6nXAqSF9F-dP| z7gy^AaFx+KO5Gum(9Z0HuAS^Em)2)WUF;cr=k_J|ZZegbl_r^27JNq<5J_s)gk0J<?k z?f&hgX&wxWFA(>*kwK%_9^mG>XUw5~kjCk15LE9*!r9h7Iq&zB zi22*S|5nb{`H>K z+{;0Fq{I9ar314p>K0b^P3E%GA>_fpxK&0#BU^E3A^H#bMIKC$Y zzArDV4jJuK&`j!pnix9Rsi}?DOfdU^udl&i3SUYXEN1)|rn}-grmU)y4mjnfqOp!JRCQ1Q`G_aMfhy0u?sD;|M&8Y1tK%`@Dqe!d)NIe^=ro`S-8lH>pwb z9C?{cIR6ccFj!@Wg-kBBd0?y?zq$*+0R$dR-s)=+L$;8(naoKV;2j$HW2kkNb>58p zjc@0TJERe{^9nk6-b}AE{UEGE5J;kQ)F35IS z@YxPr3$>JOIe~TqI?U;GNRICrw}j_kf3-%%Lgo_M63S}Y(ucca;{;rL`jBP~)bjos+rWW*MI(c9xW2BpO$p;(<}FXw1G6fmmTIx5cg_VH{`G2S#blVx+#rtiEl zXa!D21=ZX8GH$WQ4^H7X-ow}yWhgmGCrsWpJnU%5N$F053J^6imjM%x1rm&X5Ef3H z)YXR@-S;Dn@y4NRz_<lu;ZjZKDX?5(g^CiXZz?gtF|%9`>xz!jd?2 zl}4=_H60I3IZ6pQ?~bv-)LJg}=KCA1q|I9=9n^5OklCe#N(ZgfAGBGPYAshR@M^Mp zZs#fomn$5`Hct}`hC!6E(9U}Fnwi$`-CXK~mag)_8w^+&-ki>-QCQ`q5%0*K45-?54L-9V;Vkaal|wc?-RUu2G`U zRf5!^Ht$e^>=LILZXzz%zebrtONRwy-{Fh81+^2PTOlGUMBa9BaU7Lmv_av6(` z=#zh$7T9XR=W(4ZAN=M8G zb$vd(9*3dR~7D*=1uLad*Cl z7R$&H8`tai7M3ilf$Kl0MLI&`fC*zeX=IL0*GEgftXzBM3#4T1PcZ3qF3@5K@^pk! zKpv|jU1EivSL|V+{LstbU$oX2jv#UML8fc zXZBQ^PwUg;_GnS5YTP*oYIQ$*qkP3{>n+#+#j}O#Yq?k}ByKTF)4i)QXz3`RA*qhm zUBlBWdSbP(v`9^|>(OY^$ZsWr_uy0X#usxYO_%;4ZLwDPFjGk~yIR~ouDI5h)Zq8F zYoazop^M>0YmHLlT`d?}AL{YvUK zvYVC`Gn*c^4QwR23R_T%pEZhwtwnh@t1TuDT_wniyhL2o^=W!0%lkT2I$9)?@z3vW z?cD3@hy3!APtwzl7J;>%nQ~C*l7M45((5Dhk~r*G$<8pHPjad|x#7_wHSve0oHx5v zfIBJJ-cJsr^yYVZktwuxgQHJRP1B!*8^ehe>5ZN+nyI*}o&T&X<+xY9m*bK`oL$89 zM~eq(hkB21rDm-^rrIG9*vlom*gD_qYhjCriGTEHudP3Fhb581WCA}1RO9`;18h0L zG#cyD;PjiNZ$ABZ;`=1MNhDC^0a6+`%|_v_e=w&n_HhMS2h3b%XFJ@K5&iBH51E}a z+;!$==I2F@3Tz>XOA5b+E{l`3Jn|;bu$U?A>|}Q8_Hs^J=;Py{mbCleAe*0?Xwdd0 z&^BP=!N|zZ$q1Yd$OFsB%Q8A0&2ut|CoAUOo2)Hn4lNxLassmBMtSG4R0kZ>GO~{5 z=|)1Y^nl!XSnPF|XNOkMtZzG8NMa3=0BkjI3cq#o_le+8tIiUP6$m>OD^D)U*3g4N zNy=n04}LQ0I4lmv*PL{i8rodZ1AOp$^vaVxlXSli7}FVdP*CE*FtFD-xr2gQhhc{5 z1;lHxC}`>Ubn2R93+!_c7fl@GDfIFRkvlVk==FPlm^5F*f=m0_Y4f2+^= z#w+OPX>~18EIA3tS_{hx5@6;MW^AS|zO&xgsjRGldn8fOR!3ty)C5i)iTyZS7SOT; z?*dW|K6{(fykg~)7L#lN+CiQTWeZ(81U*AN5ldS#`{ItO9pvdKfx8dn8E@UfNpVIN zPeF`+lfCmLWcvkK|!fZwnFkRGel zJa}1VmpGw2_MRGyfBfrv;vnrgYdla#rqRsRqGl$S>}j_{g}o=S!)z^5ZklN|P>K~- z=z|VW?6R_NR63B8EdvlWvEl97RhFPkC9n_Mc`u>q0a}4uU`&p0Re{?njGd)8?*v+b z8&C&~F5on(NP0VjTYboT@;0}jmP-98?-+xL7H?j#pIp0%l;%j@@6aFVvTnAqn* z0_<(~=2j{Vt{im|mBwu%wi#TXrLd?QnU>m+29~{Lk6L4D6KAsGjOo*!*Kz&uWxf z^m$n`g?_l$Tae(|QDc0ow%N!(T@pEDDj+1SA+Sz{CWq2GjRWtixUs<;`56W+#SpjU z&$e`#3s-sl#up6iwYRp}#zo6f`%&bqxYrlw+Rh;se$X1abO0R`*dY&8225ifm0HKb z9R$3N9>Lacr*!2PSR0wi4b9CswxUt=L5FGC*woK7k8AdA*{^R!s{ctXkj2|Bx7}#H z|2%X_q@5oP??0E@1)Rj5cdvNVCVpJ6jV-9C=`Jb(mbzcBYbL+A>YjYPq`npl7H^hJ ztR_-itZcPlQ)Di#|NfO-UVwdB-EV$j^1t%ma~fp3qw~ff6@}SlWS!hp@#KL~ZJdei z?9PXP;$jJjgB32`Cz`$Tkio)_$yjovgA^8dNa(ke7!0|MCzEEoPA>B_WxV%| zOpK+hCbskeOQ%hqofX6tx1CF#$j=^} zV~aRb6Smk`o+hzvoO>;_`P>f+^^Lga^`Aa0)FZ+3jT2|N;8sJD586Vhfn5k0zyAL3 zU-{1gU$&h|JS&QUT1e~?_Ue~W%ZtU#E+tetXkxGosEu1{w^lP-NaC`FwidzK-NEX3 z<()QD+ZjMe#?%|Ttf4;txN!rcj@A#La+t_&@^n&Br(FUt!RcTt*WvI!>W$Y1NkY+U zyIYn9=3X5;JG_*U-yUVBA#vVO9Q(8R+9;@ZQ=@tCvbfWxvV}?q?U=a?Xm#MGYMI@X z&^2a(ZpWGmmn8@#vybkM3)@$RKMQSKT1>1B#AS2UP!5oQUiLKY9X}2UwL>*r8_KPF z$+1jhc2i<$c1*0~KPzTmhDn7FUw7v1!K2r2U;nKB_x1I5FSmzQ zVhh8$UU(@+H(o<)kAR5>GqPxyBicaA?O0;8UF`5Q^|yA6wMA|cb5_h(F{jdE;?Pw< zn%HXrB-FYa=ISHRr-Svfx>%ssZ#w(#=&rT}MoCPouDfV-TU-)%SdmkwH8eA*hz@2b z5m1uiW^*l}nFGB$V4DhdmC=2hPDkU%R3y&X+WFa(*m;F#$Fsw|I7KtpfP-{mbz>)? zP6E;a6HjK9$&NL7;IWBaGJV*Mk;t5}2G(dGa|t*j7k^p9WeM7Ncb-W_!=M$63`TTV zjj`Hb&b9$u_X)2vSn)mxD+bV%sbmw>n=oHpNT;|>AB5o@9cV4 z1N&Hud>k$PY0*C;ZYViPkZ<*FO=Ek<-wHes;O6l(x_aL9A90kwmR<%9Ts^{PSD&}{ zEiTJ|s|-dvvyrsuM5XcO!md`>*t^z72;|9=L$!m=0o<#KX*bZ?C^sGF$g~Q*AMEQ7f>Xl*4O%zYt<(yRj!SwYkR5}yd=`Eukha)tL(G@F_U=?L-W?R zaD|Uh>5!y!RtCy|+WFveU4(?q3`znn1Ioxc8J^r+ajLpkeXYyqZhaxF<>?EWM?O{)6t%p%|2?pMJZd@*k!#->%)K24+!m*J*&WV8d8BknT*bE@FVXspw0%hVs-so zLX|rSNFDJDLwl53cfpayW(bQi+wR=$oIzL{u=?K#jZAEjcpnDVItjb88^6)KEaA07 z<`P_Zb(BwsD}p32P7+{sW?8NDxl+{rg$R|!>z%mq}t zJUAU$!pI8B>|EEt$O85yKj_26ZgM)|VbsZH@oK5x*`@pJ-y2Td7m#f+#+`P`PIh0yC(Gn> z)h1EP9u9Z1(x3k1r*vB_>~{^lx;mhx@1HgP?7{n`>-~+j>f`PHi+z;~Ghbn&T;tna z^P>Wj#l1$c3LBTD>b>T)z7lQJv<$E$(r&W%7R7qGF!70ru!kIRkcreuz*du`*q8MH zwX;5q#lnqEth?*oVttaXLR*HNk19u|5=sHN(&t@UTpkWq)xo+G=;bGcE@{M72BV!- zz&0>ptQ}uvWwqXyO)^#0>e?#rEBxoQ-->)56@|+s&*x8m%GZC=EAVH2$h%zh;&r35aRjI?n%EjJOcJ%j@<(nOgUw=2_?!)M%GNqOs z`|X431V85*+C!fg{qh&ppQJ5PlO&hF)9pjHs%k-be|wbog{u46!>Vw7ExW}tQ`LNh z_jl3vOFu}JTzNN$W+t;7UTbG{*zZOy=xMTBY$Yq7ElQKj#X;5p89V*7S}}Tl*!={8YQ+D-S4)XpINFYiA>%taEmpwvxPS@`TVHT!oyPc`jLkU zuRmPz!8H`E8{$=Rg|ohvHt+LzlxqpEV{N(qFLn9%YhQbiT3Dz_cC~IkQmWydYm^&R zxm&nBT;kyJ;MV7d)R2WNa*NvJFuB)wT3A%nz{Fl$gIHJ=liP=syODl0y%(3gs^#hz zQd+G~sp0bqtv@~cW@)yuJ*0NvsW28tC!Z18mL095nJOaE}2oLB7)G^*?9Q zbT#_=wO-***X!?Zk~wr2mC9L?<>~^MN{h8;>rd9@`fu2d$ZK7dD_#Fdukc0|ZcP%| z!?D5t`is#A0N+3$za0{gsRYKQkomPm+YXGbPY4Q>Ur#fITyH~-a%>b3znZi} zqE7E@AIxcdO>J;couk7-4evj#%F8KLCAYXF?x0TM!1e@gW4V}tGN6w6Gs9t6=8Txv z7VRqAaR=1NV7zk4T*72(a&IwyKFM7jive}uGgEW>BUF3lS>gVkAEpP{m=$SJ+134i z;43l-sXAw{CM$ZZEoT2|6?fK8peEAMwnDgGh~;?X7V(VgWY0Sie&=$qPZ%9AGbU;m z*{~&v4oj450^zBo^idt*VOe9x@aQsLxZ=+ zGwS#z@Z=h=R;3vcyBMpRbT3L9;*UtC*BWTCX^=Bg@<61mpq9lY-9 zRkBxk{WbB%&R=JwZ9-F>P=ll9ew4exSwFH;i9cGDO&qkr#x9A~DRTiO1_xp%hwWwJ zU^}$)*`TzT+=+{Za)6bHzp-ijgI&%Bn?-GrT=ItRlCn%92XS$msdNyK8kQE5G|f#< zlg)zYd2LDB_`(Xcua0+Xq0mpsR9ZaQ^xopqBvGg~$W%H|r?EIAZDV8T?@3Q(I`UMI zW{1YHWx>&G$GRuxXFrcK@YI7x(`)DJK%LTvt2CnzZLmK=l{zJ$O#-8xF&&!f{XJcg zuCY8Gwdb3CcR+oODt@^OfltY@fwjlY}MUr*3g0Q0R@6sgPN zO0GA6{gU47qA-yL-Phw@!o-s32WjU_9SVqmY2sBzr!ZqXXgoIG?>-tu2Gby;NPRan zIrIcu`e-q+l{l@AJIZ@8Qd4#=IAfvPcWDC`rO7>fn)2@X>wWzXJAC{g3(3VQEpa<= zN$lxW9E!Erj3;eP7}?T-lm?C}7#|olx3x%3lB-oU)qrP*L<6d^zP=)TwH&Ge&kl(? zdc9qmgl!-H3|8utMqFhu>THV$?CCR;;Xylw1s-*eS{sD`F4=IU-6c~YU=BVF4pNucCLULKm*a{b^(AVtv{-i?&?=R${}h_3448ZV z1hu5K`e|(y+DJRx$kBTgCKEXJM>rhVko<3(=z9ju#DNRO7huj{0%UZq^*>uaXtwA{ zTpfM)Iw$5PH!61dI@u*=f=o1nlsyml->C&-Go>HM4zq9LJy;$1^ijL#^jMvCZzon% zHLbTlr+i3&6*wgV*DV3Atp-?__VyUuJ{H9hZuUASd;)IqCZUUpI>(&J5TyFzFx_;A>%p-b*Dt> zlML)jN}N`4IMJ(b8SR;8sL#c}p%|2{Dol*Bwz!b1S5x;^%>k(de0^zWn>J8KjuNPL zAfw`&!?7GKakh9Jl{(m-><$O3y1%Kc_aBwt*rK$!g=SByOX3bl?GhZN5~=}DgUp2k z#NhQOleXzNwq|@gPoyT&qMJ|tMT0_CFR(r<>`wAVc2X36Yom{!s58?q0ix#X%Vl%* zSvYH_f^5Cjd`Z~XSKWyHJI#=+9UA>+TZH>sI}j7vR&BC|#`XfEiDr-TgEa8885J>??-J}!mF;b8Pfp||H=?7?56okm z?Q^k)V&s7vxE;k|l}0m6g)w9c*9ID6&o^;NtWKE=NCs5VaI!jW@&xsA)ZE44P@hnb*7Cw;?6B57zZQ8M{Ad3HwIvV*F_j>oFK(CS=%qsr6iLtHbh_Ln0l8p5B7=2lnh zX>g~F_TZUxz$rf!otfO6$Uk>a+F>-%md9zQ%}jgJ%h12*)G(Slq>0b}h~)xrqm30Y zW)v2y9v1aqUopORwq?4xYAAKO5$Fu|hd*bxhTRCXEZ{^6vmOMa!>nWVz$ndjY6pFa zp@+#>!cS9MPoQPMfzxAy$y8vxz-AOc+R?fP>to+NPD7B`X>dAD-TRv9=Tg-_S|0fN zJy&dlZG-C|ep>Ff&d*_S!fD=QwP$czhMf#%sJXf z?Y^DQtk2!HpTHe>l9R13VBO8&&=bsg7bT;(s`GXoute4!AOX|F3Ny5W8R7_oZlB}* zC-ofeLB%m0xQslQSbcD~nS-2uPdwe)HC?ajl^8|53l&4ck= zImq%p(RKCw4})v0;tDnVeW3lJW@4?!b(S%%x!`vKVt&|Ez{_Yhn6WjV{9eQ*16HS9 zI;g1gX~}*I=hFhMF4sx`Wh%>Jwy#|K4a*M7f%YDNv6p)FU7n^#8|$4~jHTc0$&CQt zfa~al`hXs^%E^u59&PJCzPRf$b~G_b6p5>}CBNQYUkz>n8uv;f@!2Hq?p#Y@&mlP| zHM~VmUC0%?QY3D)2CBo298zxv$2(8>`#WK*batBN;@Gj{Paqgmo8Re7qwS169d7Ow zwpFwJ5l9%CoK1@iW@T57jXzzi`p8=|#bpU~u)8=wbzC_pQvt=?Mp%QeGvZ3x=n0D1 z9vpgwz`a*JcFImyL(wfea0D!!(xYQ0RM@HGV*}b8{9v<@g=;%BO|H4c*H`FLpNui1 z?^Fzm|EVz3jwyb?g}1rD#|FQ>Q8D3?#o$r$V_h5{28r9WtQHHoB#K0)y4!VAKm^QS z+b+O5nMAWkUCg5AHc}7)F%MWBGT^@xIC=Jrv++JT~6wd21I$R1i051oDEnwd>hN0(r-3> zFCVK+W*1t+S2L6LCWh1wC6pEYqNZ3&iKI+4Iw~(0{z)kBhgR|#3U;ivw zD!P9^AEDdhiKJ4e8!(NyN;eOX8Ww80Q#L)RNp`gf&bzvhYYO0_gMf5Eq%)V1r-IDg z9f6rT6cDm)`v>b};2)uuxK7cIl^WUfruJ*FKUlfE(Z_WSx@18SPM47La~IeGi=*!A zD_60n%KHUdT*L?3p4eVwfesgTm92w)Ks=mwNIc+)`ieYipEkED>09gHjauBrwUs7n@qH-{wI zB}<1TabxvdkxUx+84zEU?Y`Z=GIL#|$K7%pqHIfSxY3DxA-_2h76paY;OjMDrUGY& z)36&&#oi&feVB2rIGRgFH#dwco!N7Fir!i~Y+=2-Ea$`MQ>wgEHnCF6tQIr1s2jlN z14*P#eJA$~%|Vfiaix zAO;F>Xe>wi{!@vj}UOATq~T zjQ3iQvl|-C?vH1O{8)#sKU|hjz!ig)Iwjx(q>kxPoazm)LpFB1c@I!kDIg8BiZOZ? zQ~24&>-YCJYV>t&gAI;MYWHZvzP|jXN*xf3tIO_xuH5+jHhn&RM}I$I0wazR^1JL4(_;dgtJ*+ubQCc$~RnhRAK-r^cUs zq~;pF$+;~c0;Yl6SxxxyZHG<1Wfk7e>fsdJ*TWGv*v!OI;Sq0`W$9LjdS^0o-z|{E z#}z;8%Wr}jru%vlXi22adHHJ5cR8RYnw`Sdj)Z-EImFcU+NIW-T}+T$6qoBds$5@o zwfM}Uwc40#l=#RvXMf1g?U^t^Yx2LnFZi50z1~J^Q)`@x8@;awUAEWSoour*(iZ)_ zCu3XvMtB@}vfhaHiAzk7#P#*%5Ooul7-u{v^VJQb;j=W|$knEETss_5Y|98#vrHYy2hYG9*o|oW9s-BP*&E?dz9P$XIN(pB4BL$ z$Q%=|0%wa6JWqsyD;8sQ?{aX5G-8qxEgGlR?KE(-e_%(P{L`JfmS{E0~Q9KlXPn{G*r=!yC*E6UR>^&S}`@9?YxT@AHDoj)riQJBCW7!^+w@Q{?gfqIooO zlDhhO8J}nHH{1i1fN9`f1%q(g?|W6biHnLFWhxgN+LM}Oh{Ks2ltX1d2DB!^KDPlA zk4DPiWZ;_byuE{O4^|4#2*gMsYU%wB%A(g2FwtL6mv)N23V587F84%?;5ZjPB zQ3rpD!%WNB?HN!cKPX6C`#jZJdApaLQZ!``V>B)qo0;(t!^G~ zuG2GUmRXzZeaE_&qwBS);T|+{ak>O+tHn~WCX2MV%jS@|faJ_v-9BFana?f@1zd#< zHx~+BI~JqE7eLUWY zi-T=ij?;#5_))_7_0<5SeJh2@WY%v8I~7`kQ_KwafWvO>aClmik-}eRB;p8-=SW~M zFMP%*ykBUziP1aIiwEr{`{Nn9Jd6&L*WVAB{$BVN>Y$0VnUh>w>D9W$TL5-wn1j?k zhSkiOVzNY`s|0C)ErfB7q}?&;TsqL&5l!`@-FN_k)sbm5X>w=~2R%5nV+$2D^nL4p zA>kEW!3kbZoCHMsc$9JW#eHqSL3^XfeFoWPiVon6tc?(efYFW)piZdiv$$s5VNn`5 z&1RL!YIg$>FoEZZF>Nd}7zMs$C%I+=yq#j)CaxnJ8V5ul?ZDXeN_`pFova2|GY0gr z@zE%|NYg!g-TH_9^?Sp&>z{+o)9Cm?<>BV4+hNHB_SwD38yBbiF1m=Cv-2dUYj%wu zIrMRWYO^p8g|SW8ZHa={-`5Vy!6Pfo>+dl3h^rYJ?bY~3F7_~3@EKVfM&~y^oz%4+ z(Zkg5elG(i9*mDhB9~PhJa5D6u-NVtX6C5=Z?Ddq6es0pmQ(8IWJDt;PtcNhGOJ8h z2gd`;$Og_WFBR`|%{;qKP$p4%kZF!rVlgAMM>lV5Z{k+MIKdhR)-^d|{_Cy*;1M?-FA8X*F!=luAKs!Lf zJ=FQ^WbKbknA7v)y=u>tk(8Xzc26n#n6V!0^4E1adulxzZls}0qK-CApa%ENa(lby z#0@!z$}>`$xbWUg-DE&^w%hDZ-q_=a)a&nM_x7~KACfzW=dxJu4PRetqqgGScT z*vT)vovyfxKSgnpJ{g@|@~Vd@$W8{~PA_@va%+S&dEYmj`@>?_82*ZUUatoB#>{G5 zTBIhat2)?x415UO6sLK^D)02s;q}#VD2|1Oi&n)Y%CWPQOrfO%QVD4Nbrz>-a=-d? z7qxL74XYzl7@Rr7Pp#-Y<%xOMO=fZ9PqD`R-8qHNop=$RX`K__M}K~H^?M4FBZpJ^ zIsboJ#$DC9WIl7BOXeKDE1>0GUmX@FyCQqKshx0myQY7mm9%FP+V0nCFv~L8OtYO= zA1?3UF+A|tQoiN>yQaRo;kSiGJ&Hr2fN&)gG!WrvccnN@^i+C`bjRi{yGr2wF?u~?EU#b@8v0@XhqY4G|zZ4NbAobRP| z>W$t_?&^}{zV4Fbo1Ke~?#^C}1j;ixY5}}W z19H!AmcM!V?!Ql;=P72ZlbMTTa&y&lXhv3`efkv!6CF|lU%zKVQOeTjY`0urh5y~X`uTHj@| z`F*rvNxYk`_&q1-iNBWtmx29W0$eN@GSga}(>f<{n_|u+o^yKrA2PBZvlE?t=CS*; z!?uoue6#x9_bHGXyEu(WUnnGWa?u(RK7Gr6E&;rTBGqsB$;mDyR61;l!7`wB*2E*P z0>?lBV%j{}>$tdbxry25M(Th!rOh3(8rJ=)LlHkySV@}{|FFH8-KG5Pzc{gg2Zd4kzwDrQ^B-cp1{_*-+{fTo+)RQzL+b;v+ z{(1P50&8c0*`|X3-a*M#lzvVC>Xd-3f66V!9uC%Kc5#hEpheKEG&~Ue~P!sR_PEDl6Ohv5Y%9f}D z=DM8Dacig@MGp%LH4!zX7PHGj0cju&w5}NT;+4)on;o!C2%EiLT$diUk^@?bGmcMY zt|#=}d^VL9S2E2ZB{cPnbdX(cVQiL8Iv@=kZD5_l=;WSoXY}Ru)y{^S^U3e(LasKA z^G;s+>GEh=?$21VpUYE@%+1sZO*E7OV$6HTpCm3zVhvR3c(T#8-#hwmd>Fm{fv-lj z%s>2_k&P{9nkXpKHnLrszP<`lN;;UUY;ad~xU#asowQLM4P>lu>*zO{T`UJO`<1~Q z?M5Zoz7Jv>5_Q49Sxq!&&|dr1lwPa>`!v;o>Zc{I)nqZwT)>%8n8}NBq+*}JZ51<{ zivwCv)J&F|875LTV{)G9|?>qa{EJ( zL*HSiH8?NDW!3@nH#;}iZ!sgW4M+pem8=OE9A5nC444Akts=ZXTxOs8amnoyGjJQV zp9DCl$baZMzg^dPB8uPhB6+UawZF3mJJZTZHl#0ugoHi`2?RG>ap0oxUc}=WFT3X; z?d|!k8J6K$8EP;&ovDnG$a^Cap$og}B^#rr$JS)|% zdJF`Tj`6GTs^7*NyQgao&SVk~!9(a=hd#&bpm`9n*r%##veT@VQQ`z`jzDSk`RG?50WV^d`qa$HUQs(K-)3^%1-MAcfwH_bMk%YW{tR zIb&L(*?#`iTqbv}Io8ml>MW-zCHSq6$zqHa_B%*ylhKjc#HM=p@tuyd{bTp0B4Nt1 z#(#8VGHpsh`=G$V#)TG|9P}3+HaWbLW;s{Ef}!X2wHJ68dMtzqze=l@w4j$4!em@NFX#B8IVvo#mP*#5+p|8Gxgsi}+xJ}EeQa{JLZ z->fo83;+x~@ig1RboQx=%MpUcw1x35-faLq$L`us8m+>bT0Sui?Q=Td zwTph_hZ^c#ZM-dgtn1$cyw!iw@XwRuwlN+K?r!ZpTL5Q)<E+PAES;C(*jRqJRPqM z>0{FeaNoJbYi#XvF#BgL)-Y@G;XyREoZM1cDR4uN9;8KGqyd9uzz|2Jg|0shO}xHa z2xO3{fb{uXlkL4vQB`M-hCl|H3aGkZfvEMsD}0Oem{oQaTmTvVb>~@e2%lu)-m+VY0E&iQyp5XYWP~Q4Dl%0NOr~ z@j5yw;brO0(8e0)!usSrB%ZLJw9Lj^KC0LEahljG?rdW3-DO%mlEY0WZkM6cdN2)@;ArHNZ?X04(jS+oWF zts9^oQC*_h^Jph_`|Ep4hhJGA3@$Eilnn9pzmPUx+efiLsb#_P2X3Io?3Gd{{Zdj> zwSd72x~UCeLjbMIhIQ#okeUZ^4tXU-M9P!{z3#?Mjl0`GAkb|Xql`l7D%7gQ1TN) z`Xb>y-^)E+_MfGM8Ww|hhaklS&gUnMF_R9u-r!{!6}iAZ1&Q_dJy5Ec-%qV>h_~StW z`vDYQT4qz13Qq~sV}(jlATkw*sTevkPQ7{N&4(8Zgm)D(01|f;B{YDMu@x*9bP77@ zZQ{k7w(X8i;t9S(XshA%>yfVbRsTto)Y1@3Y@`(ov=ho#(+aO&jpY8+xYhIK!F6J76!{C-tv&WQ3frGaXn8p^qM+Rfnj2SK>1-Y z)9y z(&j$Ivx^O-Fv}r_+>;!yf5Yt%qy6ZRc7mI!bS~t-2Rv9ZaG?Yh4xB2&tm6r}(#Q$I z&$3{&0ONRn1QQuHDlm@6q|Q6q(e8lPQHW<9rNc&s-pUtkeX{=N?>IzUTRnN)2_%L( zJ%Eb@n&ni|<^v2F8C7vHf7XA}WCA1!LH=cy_Jh^pz80a7aGnv}g*das#^MGmK98oiYas=-&a2X|< zz2v|rL-2ECMislQ3^Dd#;{heaQH|ovQ0IsO<^kQ-g#+!@5saNDu};bh?%W}Pbc!Jd z!(=zio!3q!@W|;X1nv8au)yTpdID#SXs>?#NxFBb6B4Xj1QK0s2ZxWQ?{>c{bSWM5 z7-cFP9rQ5n0=B-EfF;l*J=5-B7$?w9#`XdR7UZ0c?G@3)Avfe44~NnrMRE51sGbNa z*s}aig`%#x<>Tc?g?J=~K;1(rD;P-As3{JYF2$jAh^b@h`J4j-eM>_LbhNvqFeV|u zGWa|!3|&;wjw?`UFj}F`+ zb-JoK_hG~iGil-0x4J7B_*tFG*LMx3bRvKfJ8Qm?7#2!Sb`odO9+jOP+*gD#SHk@) zv+Ts?8%YcJ)i>4L(%jA&^S4TSNC5iyGS=VP#}TG z1g>p?WfI8iBq-x6j;}<9Le_f~tp3@dmHuok@I%wRrGf3EZ>qL7ecH87BM-E8piVjj z;3*?O^!*v9>XjJ958+;J{ui*9Hp7>jx?9fx_2JFdoi^M(AK0u{+ZrViL&+`^~A zW(Vh<@1Dfj){A`s){_waQt9k91Dnmw}Ar*1W(KmnZVn?SP_4Qc5?JE4vqE1BTKW+ z^zNVz9D(&NXj0)_3N$t;q|AEm--*s)CAA5oWN6<+81rhzP94NZf4Rr((!y@1q{hjp z_v*Av`)<{(53L;zMGpWVpLI~n0xbj5z+o0BhT)ngzTJRx)?LF@=1yulE@SnTKvy2b z_9ovGBp|i|=RYm*unL)+1UCh;>$ZE-L&cjW`y>yDfMMdqqY{YT_Vm#bI5LSjE6j3U3WfzzMtx>-iGqHNRaH;r z40m#{voDigQw@!wAG7_04M+o{4Av70Mr-U@|49>j96&jc1=08!lSWH<+erpotazpZ z(&mk1KpHsABJm)-mZeMAT4z3ogu|sX9)W_j#$@6~17#`@=sTp)yMZG1qTou8^CoIzkLJPi^E!wM;rgB@KR{onz_PSQoD z(z*B?gmI%uVS2&E6oZ4avDrdJc+bJf^8(vQg6}qGHpBEYhSz*ibhNJa!R||;> zeZ<6Oi-lgtj*gJJ^MG~NG2O{Go{D`RhvM{Iy_%$;xuEOEAkWu7*BBx^0qRP=e$}L* zw&;+lG)@+7y53D`HUTrZj+lwsxB+KQpLM2pr+tNRrqQtL0C#i)K>4ryGP-B~s21d?F4!FuQEl%3Fk(*DCDVlYycLP1nIKtFZ z9tiXfCqEEgbSDj-y|*tL9``9LY`7ZO9t4&*=_~sB?q`=ON&v0|LJ9lPIS6D9`pjPW z^)Cfmyq)bBi%0BMv*|r|M?hM<>l+FM;7Xtb%qY<(4Ae6a^f|Hj65c#(w6pl|)8JvY z4qD!`8LS6^tEVzNIl)Q*$eU7GNNO@U?(iCOHffZX?1#uVB1)A^}@# z5CnxWAN6ESO<4&TbJ-19xON=%d+9S1^f__v+W~iQAf6a7Oi$d)8N`m78>O9G?E5gT z`1)}ZetdzHQD7oNW8HA;2TJck&d#~fY`p%l$JxPlhJ#_9&8g%%mcVxXsktnZJq;m_ zIkOh}!NClNhl+zW6~iom^&Ay?1HDh}Ug@Bw>7bW$5D#Dh;#h|}V-VQV=;mN+_Z*f^ zBm+`s+_LZvU~QCvI7O@H#rk@xwD)@kmm9B8zbagVT{qb?1E6&jGGL%dc-HRmlO&G3 zgf8_k0@fu!$gBd*dM=;?>$>eER{_jw)x~#D-#|L**N9UKS4jmb7Vs(2sw*jcqmm8N zJ!|yt>o2~gSQ`Fw+uP5ktGssKt3k(1PJU+xVhKHScUozqWGp1TA=xL)lREoSP6Im{ zeEcSb>o3)ReH=rf77CB+|Lgj{cA$9u(SDaJe9%Wrui6%y-O|UE27Ro(0&9|Ei4M&X zmKqD+k90xITvLhX6@H=I(ztufu@Os)x+RrkOHVDpwPKxGyDi|e@CTI(xKK^^&nr#! zpEUWhpdYxY7+=5Ez*;7I&|42N*MIx8UB&njlSM7yBq55bHSW!RaB1d#vLTYG%10IKnC{qPd9xbnvr;~p;@{2 zEuSr2tiJ!6cf2;McFxhZ@k*bX=9VrNLKLHDkR0Be zZ25)quA98}E@_m#g=^y}6iuxla1oauNBKt2#%w`CbTUi(Y5-FsrAiNnwp-usaCedC{rybcqa*Klqvyef>kv|S?6%LR5 z8OtcAa=YGyrjuZv+1svL5Q|+cz=#&vqc}V}gg7Ab;W7x>+4CL5!p(I6cwY3l7_dii zcy`c3mW$ZQJ#=AXk0EyAVyHcG3?oWsxD4`a9d1Xx>0;t~yXNK}y;ZN5EPP8H7FK-y zWqbWau0K_Ju4N>hwnkAC>!2PrErtjZ$L?_lamt?QeT>2u-Pq`>Mb@zAn%Qw3eY|#z zMl@O3kTrgB@faPrgN!K7=>6C0yH&r==@ib`0=JM=4*QzKaMrkMvP2D*iUw}!vWSy} z2uj^$QPTayA;gX#28m)1UfkL>^jy#M9IKY2h2k+pP-5q9a)$s(>eck2Tg^&7A&salDE!A0P z$SuBpZ6K|PA2=RdZd&sCTUaXPSS)Dw{iF@&X@%;Eopiidalfa#9GmfeU%BE(%(Mhj z?61WoP^uwna=9&XGusin<*hAUSQ^~ixxv&OuF>A&7uR35H+OrAF)31LfkINnhl+Lezb~aq2e#c~zh$Bz4mfqTWw zPTN2d2j-Cl;zaYOuPh8P)N=->omU7ODYMoPJ&J+nTgE4e5nIq#Fraj1keeP+MLMv9 zm&&npxW$fPL==U~AY|JjA<|fEEO=%V?8q9WrPdkou@TRx7t}istnV(Gp)X1TuI-$0 z&}AExeU$+81*1C0rsks9tZGy-uSa$C*L~+cq3^->* z`&o#=;*lk~5*EjeK_ADKQ2k2czzm+MpY(+2c*ahw^w4x~DNBn!>-^X-9uBVUxmHM; zEG!zMrrc7outb9%r9-P&*GuCXTNbmx}hz5;|awQ8{U`bYMRI;jlt+M&|+ zdsl@YhB`h*I-175P+gRR7r`Ruu+d^P)x@M?G^I<+c)jqb@KB|)|GtL|8~!}o?2^~W9eYl z#!G|OKT4DVmpF(pif^xf-d_J43?A#{I0|3nzf#n&#+vfTwK`U4P5< zzh3`a{aw=3z-7d5E& zd;eMgsw})&Saxc(U*VQCiM2|IYfU#zbf@O{Rg>qHW@?KD4AL&RnlQvsp-PU1YSqg@jay5X5Dh%;1|KoUz-QEbNS$aQ z0K_QA0^$LMy$EPyhjy|HG4NPi3xN~rqtqE4SYdDJ2YqsBSXT#B_XZQT&zX|IsdJQ$ zT!7~tLSNQLA&|9Yh;cD`b&zLY%Is~P}n?3Ado2T zzS3W`YdooiY*Fi$`&mQFJMY^S*7|SfJ9;tK!ns9-W-GHMI(rq)=H^&DatABqX>LU~ zEnpSwP-q}V?ywuVIh-tbZJfnUiU%npPZ^%|`kUJIY9u;vheg0Eh@UL3Mv6cNwh~)x z=}kM(I7E+DL~{(hng`b#dwh22_0DLKJ+6yUZdu$?2`W!&>9<%KY?M1>g6aE@%4>hC z5WiUCz54o3nJG}Ekk1-oO}=TeY&EbZ8tkJ>%Tien%#T{N)PIHgOufd?WG4Gir7O)g zx=z-fF+<~VIJNL_nW~jKEMelrP$zP9ox##82}!3y$r*ja6Cdu_6QvNy!Bar0{SieK zJ$m-Mf~R%Fekoc}Gc~3LXm5?8(HFj_X`D|%hoUv#5H)lYd)Y!g9Q`t*f!Q1C2 zu~Oi&+q2PC#$D6buNL$*3cSXVH#UWrqQZLirI08`rL3DpDR7HX(!J42Tk}>;chd0s zmj*o%tyJeyv~^Aow)M)2P!FCa z_{N~icaekpxLImiCx+r`CpTSgz%v@!Ie1szBTJXlAagR%V=YkPC|H`(12K>Xl#wF@ zDxbD?C}FP$<-tjVKCfD7qpacfDX}QoNPg+c8)1Y_Dz86lf$O^aQ{Us`jWh`w>WccQ zs_Na2GTT;@T@%_eY0a-TraOJKlv;=ug2NYgSj1hOh#K{YU1RA$ox+GHfCgl!cV<$2 zv~*coj9)q@l{0xP9bknK6AwZ<4=rdf9M_Sx0_0RsMh-Nq#Iv3X&&{Bv`a~OQ`pX1_ z7u?BXVkgh46GG|r>+nNHZe2?l&_)UxLjk>Jdbi{UWA=8Mgg|NOK@R=F>O$GDPDbL< z!r(@mjhdZfOLHt80z43dWWYEu5A2237P{VIHeinuJDGPzk0mBU&AQiQKWqBDK34Xr zjp+_|QXSw5s`wHt4cC^s+_(+av;Kc$sev`gEv2)?Z}(=bno3J8o|!cI_lQ){mjC*7 zsp-GCr8$-kx7ZQHAnBMrpObH4SUTNe$1q~z zK?oT3*f44`XdPGvMB!l}*<5=Iquqxxi&F<(0t8yq*CZehxQ?tV1Id$kvOv!q;;1IU zgE;$o*jH|=5cVhywwMhp=L~>k6fLsHwE~tQv9#zTb-!M~()G90f4LIMe5K*as<9To zJWZBB(m-C{jr35Zbk;)o`rmJwEFpSK>?94c8Nz0q(c+bnss4wWtQ4rltp?FVbBZRU zsl>g;O%qNQ+9ZTv!#Y{IzsKbM>sM^G>Qpv>xsrG!gKGpp5}JM8JJxtPE&I^keH~8= znF^>D0ZW&M#xv?vHx?G7jW38Kzi9l3WxGoy)^xvp)++qLnySgsQoRSMRJ*OXQcE+H z4gsE3(2saEkZx_{a9N&xlEv)Ma)gtGdI$ir81K#0UDJR&EE3?Z{6vm`LIe+JMYfdy z*FbcJ+sEgTWAPZG6FcN)?Hcxb;q8L^HSiLy+`9y=eUFb{47QkSlscmo{K~M3;_en( zTK5+tVWZqa(|ge*W)168gRb)N!TPpg#ou2^`<3tY`nwv{luHenQw`_kN!+%$d(^tZ z-#&K>Ii8jFT`&9PeoHabxYy)&ze#t>yq$Le5im?F5Sd0U5N*mq9|OwBfkvfyANrD^ zRH&sN@#IRc?=7`^^!Iv_qiHoj5y(J0*h5b|sWaCmZlno)u5nkYpJ8pF-;ASa&L|GkzT*+R(4@kVSRbSTt<6 z&l0&6<>#@oN1Y1Jy19NEB^I(BG}V7%MQUkjseW^&QSG9Vg1!o;4m*kRq2B^ru^s*! zouu*5*`Drt=f{C7J=h*iHFVk)_IPHGp*tP8gMfN&Rys7%u?8&-Ti&Xv9HMbMEG!nq z4U{-DDe2nf`oAc(q>WdmVsUTjH6{vYOK)Tm-&Q$Ft9yn4N+X*>ChVJe=|-tWbN%aT zA@yMh$g4YA=iR{Vj=V>4Gs%Uo>}wHmd2LmSQ-dRgN<7} zTfA>qSnEG&5+^!XrM6$w%~h`ip^Yoht4oc2Ug1Q zB!}0ZL0XPeOP3ZlHg{)@TPz;Cp~nmtITj$w=nWJVb+tMyfd+AasnhKkFjEYS(v8m7)c`G6nO1 zGIB4p^3zCqiH#ln6$V0}#tMQ`X4i}C8q@LH*Iz3<;!e`O5k_T>7Sh&%L3LqJ+D#Y! zQU)o5;*l+blkRB{J}=a`TUacf&A)HE?!?MZ9eQU>4mj9Kj}mp2Y(K)Qsj9Z|j-4!s z$8NAgT{_V7ZOJY%OE*~k-3d5)?joU=!PyBMdy52GPgZ7W^L}z}KU(1@7TO+7`N8u( z!TVvEKQ8jeCH|!CvFX=$C#++8>0hiRy@o-rGkGkaR`)uC;cW-yIC2>TCkQ=Yn!KLh z-R+!mz4*Kf=&1PLKX?cvMz(ygOoAr$mV4%&eI%pxc!GMq(6Trl(&>2^ZUAxAeMss* zrIs!ht_~~U@eLStBSEeNNc9;i54YVXK8TkA(T^rr)x z*lD9uj$fKO$)dHOr)~zKsE-JfuLl&(G7K8)_cQMY`*@S`t^=9nXVPGTKpzUp2CBDm zp$N#pOl1;*CYeX6<2p-0c{l=VCvdF{UVNUyXafWXC7@+C<~HA2co#IOx$UVYdc7I) z^(fXb7w*MEJ`C!%O4gfU#mlkR_)U`~kjKQ0b`phqOBV})IwUrfLyS&RDAB?aoCZkT zQH=C_3Csh^$WtL1#L79x{VS#`dTr@-H||h3ZiIRli6O`OS`I7_gU`UB>Y2Sr-I&g2 z2d%|>Ok0KD-o>s*q5fG~$Dm^#l$Sj&#b3NvvD#It04_n%zCZk?;Ev9?h9`c8pvtEP zJ1*IeeOGK3!?M{~j`3b1XyqqE2@Ax=U<}_DW!pLkC<43t`ll6r>>i^7caRaqStl2i zl_?fN>>x(&u*ao?bZ>Q#4j~ShxC_|uQ0>f~KR^M6II=(tJ`cDoXx!c(fwIwuWGF2E zi}r)cBxq80^#CK&4?4_MFmWbFMr$tdMP*jxG8%aC)55}Hbc+Ta*`n?8;KWc7$ODQq z;1)Xu;MkhLW{?nBrH%gs)`Rv7Y z*K@=aKj0SXkemX65`(4V>mOhIoYlu&?(W2NiItP-Uq-2o}? zIr?z?!a}mO>~MI*wr!VtKryjSpR!mMbNy?`U0xH$vE~gq{#ggt+k`?8wxWa$xv$H^@o)LIqHt)@=vdSBkx}%1}k;A*>@P2 z49LMi4lVL9k;S#c@f}Wsj?OHkz2&Og*UQ%2sk4`36SR|CVEEu~JYwjPjgR_!Ddov8IJ%RM*;mDibhWdd9 zl!4EUpvG>XU$Y_fgEK5Af%aiJ+IMiESqY>MA(XsHdec9YM-~6YHmn3l^9H5WAWwn_ z1J^p>=O6`y3UjmDG!VLdz(SJ>?@}f`zQ32$KO)-t|~wCxLkVN?l|so!3rsJV#!Zt_le_9N^>O+z#sC zbrRMxWT4TIS$RVq{YnJF_A^*AV5S09hKk_;&I`hME0mvk!I81Zm3GmGp`WKhY~)f5 zP`Y$TQ95swzz6(e1wIE{jCIk#W#my{7^YV@?<@qC?Q>EUG8I?F!a@$7Qy+x}>GGfs2zyiH z^=nIG+3(vivdl`W-t{qdrH3Z5(9XXM$RjVpGV07}l=uiOyp^A$lu3j*Ngh;=Wmfzq z@54C|eFJK3t0V2?;m;+T~L>P9=8hin@WaufxKyH10lUo1Ks|G9ow;b)$N z_*46>G-T|M*|ERb^Jph;N}_4wva~?SqIk?#qO4CmDy-x&bV?oe?wu@#ewnW70=<&o z+_*GJNB_+s*L5k#wUY&Cd%1=_yLdR1OvU-U4_Gr6UG*rR^sU1}z%cL*Zn#=%*Jh?n zH=!%vaC7e@i)I|HM1Q4zY+B%AO;ZcD7WQ&yAd0OBUYC`-slKt+Ar%izZ9qR`p``;86bDCM|KdoFSE1fM}TIOxKqf`R5bm_+3!{Je^(54}3vIL95(%@u`*+N^| zHxdm|qIKu9IUMfgP}sMmRg%8AD|pCMKm^pbm9Gif@S?SmSnxu{0wseK#VGeoudOrO z2^=wqDl^J=54yAKMVDE#!e1nStc>$CwKt?))?@RiyQSrqoe zLLWp3>AF?Y84X$oJVt&(NXxL)2hz{l6yfPu7?%#Hq#Xpx$UW!qm^x@{V1lsLA<;~6 zIPZpQ3v%;F28TF24PL)?*pC6J;Nua#s7DLi;ZX(>$1{`TvxE0wx3C;yL>&qx$DNE~ zW+Po?=;I(@>X#2_e+d z#dbfT4rj}X9)bf7f2xax5IcB|J1haHbk}4%G#uf#9KQx!SX4 zhakYqGO5;k7|?i_6AGDHQaQFXvqnx-m(B|i>j3@xV$DA$Xgoji9zeEfRjA#1gclP zP-2*=fcVS=HFEC>MsmZ)p@D7KA!Sfw8*|&} z<=Fw2)$=3cA-Kyd{ABZPlt7sZ#2E#J^ail0@wCG%X)zogUw?Ddc>)v@D|rl^Qit6< zyLk_x+sy=bf{6{Javn6n>9vY6W9y)cbM*1F(^;UB(#zsSN8I-N?prNTFbD7UC^ zJxk!RZj+G(>h(`YC2h@~c5=v6z&aF@5_;1C#^C}}eJ|>?1wCmc;q5|u&+wunQP%bK zKNmv_Wx$19t#l)x?)xT-#Z&X`ZKk6wR$AI$uD<*_?8}OO z+|L?T@6g)%j_a+jy2D!Kd%oQ@`>=vA}BvM8=} zvgX>x8t`bov@}!cK$T1vN-d@+4K@;fI(q+fV>_r5j+Q11wtIl3%bldrPkjF29(M^6Z~WPz-F(Owvp{G?M);Li^Z&kaq^`?TN_Z` zm8kTW=B2CC#uU%#jAC(hk`apA4Z^ia@eG~M4%$H%LcmrA?M@SRSq5|S0kBzUT)J&d z>8p!FCh*p_K|KO^^laVdK!e%VTn_QAytVWY3$2e@8K3B^uS^!?5T#5OuWNkAaCl6+ zd)VkIZG4;1Qv^d>OKV+jhsWilhMBB{KH{hNsHs-97}WQX0tQ>YUtvG%KWVaPDy+fU z1}<_)mDe%DE-;=x!3DxHjwO)6X^?7I5GT= zXkpW%Ke$y!d7l7w)OE~MMqawGd4?0kLEPS@4ic<3?;l~)q+Q-T;*}MzSaMCITH98W zTA)Q?X`t;XomW=5{^*yzroZJ|Ock;w+|o1d4X#662Vv>FamO<%W-1;@K{sxr>zHPq z-UBs&wU3y%i`r>pv|z8LU@^IQ@z-|^)z+|hR9GJ^%~U$nn#%aNYSmw~Tgcr2=tNh+ z`}2x7RiR?kt2F~{6O8s_;Fc~S8VF0Hdgi~I>$y3W4k1cs2FZXSPGZbrV~Z<48}!9* zY*Cv5N@utX^6baGG&-Y2wwRmI)<1dYS4|pTo<|nY#7}mSVvi{`P8CBl% z{kN9We<~)otV7dw_`7eKkfytb+Wxk+Vc4|6dhj{ow^(XKSajz(zUaxPn&-O5M?UxM zq^h=uuIKCf{`#I2p7n@$9d_DwQ>@p3N$J_r*n+nG-#@e`oVHm1?WA_QZnf>#A6@@B zX*<_#E=_coJFY+a<@Jx^F+>5L2`W0|Sb&qwV4ba#WEo`b@bN*SX{qT)Z0W|rjrL>N zD)EgpWIAg+O0J#0QEKV<{bKIuO>TR>eYCDZu=*u)aihaYL-YOC3k>O~Uzq1g&%d3u z<)IzD6Qiu(^g3Xk511W6EMXP`)f&nq7Vue%NnS-~=eiDd10TnDH)OQ9@H)x4 zO}1}MhqK0YQX8ApeFvDSKw;aPg==CszHy<}H~C)N4-as#3>c^c=e^W(ahWv2vBW^T$VnV`gWD`>pN%#)Vl-W74oQxN5IP;71?8&<; zv*z-yGou=8Oj3L&^i<0C9H?cP_5av9mn7MFA_~vhh}V@}%G;e-PB*gM;MxoUlRqGW z*MtfDObYgeb(E=;8{*!|^PSYg^0RE0tJ=5SNX5ZyNa+91X(Z#Vbo9~LJ*VH&&%xQ= z7YQA>j5BnbU`*|v&_ws#_sRRgKJ2|TI*!!;?PdcHy1Up; zBccC4r}yMZH-Fy_qT{ei-xJ@ee4k1j)FX4=U2LF{_@5;k8^q|-5t$f$*nR9`qhNfA zB22lNgjV6lhB1t=nQoc?d>i``M1g)<81}a4aGEsoG#b4by1De-YWNsfSPg$)QyTQ3 z;DlS+ZeuZ)pqVwyMg!OQ3_mWM5+$~fgQwAC8q1>3$Q(M_W4Sr6iZ^Lr8pQ-lvtt_H z*T)s~iC}-G1bpaGb;pNWv{yb5aPtIpzO2v6uYbOAQp-Q5c1 zX2zm(97=Hg1Nd(C4(N2LFGA4dibK4i_6;jC@e{$8+ECvy@@H;XTC`eq^MvfAMy=$H zHY$LlyyNRGX7n&P(4ggK`b4t^_{GTTG9hBrAha!%AutnM%-@MfdJ7C&B9V zdis{LrLglSS3MB$)4L$Oq9&R%E*`^RM>hNVsg=mQLiX)MGu((;Kc!|r31Mn6nZp49 zbdu@SRfR+*vj8#`SJW_?ltz=jISs4UtWR{^=!Bi~uws8vC~&}r(V6qs(z zI=Wd#r(q-*BM3OeV$E3#18345(8YQG;>L zV#d0TXM$ibfj}LZMsu&$YhHWZv(7Qx1+G?%R#1GR>t=CK!1AzqIMM=o5hmt1Y$n>` zM5Zagi>#fZi2)hK%<5Vl4xY_>fv?drlNzvr_gKbl>ta(&>{J%(<7^Q-9*CM`=o_ht zKry}`^xIi)hHma#&7m?%j1tWfZXSD$9>&y(8_RI`Z1xkv z^!g(dDGUv&5YFtnNsx9v8_Bkl22r5(ezZ87*zkh&e=OPGT0X5~92@~l6H6BpJYUuL z_1E@{uqPdsprKfg0TulEBb1ko8f=_1ZwpuReze%%^5M3_RTFiz2B#U366%_fs+CWD>S zsZ9X)EIP*U?Bm>yUIlLkpcoYj4U__h^ywowP2AelgSD5$tcQ<&tQA(EebQ`*xVS2aTA$nxFf)i)a76di=y(k|Fmrv^Q{f+F^1kHf3z1 zK~vyRo~djU)`u2O|4+gvDrIKpg*tfmv5&)`p_}c*;N0E$R`aC5UJVN^7z?nN$0rQu z8de`w6_L^4d&#X~Ea1qE%f{|Uy3wg)Buh}N zn|?GrDf{!Svzl}JUOfYYBLb;esqM-T6v2kZIDXx>3_&34BDG-l6fsSl4HI0QH zCiCbQUff~V1ICq#Cl-niwT2u<7RE1DA{pQE95a1&MN-2&r)e;8l8cOXzyj#D^ua$4 zgA{-xnVC5M8m$hQ7;if-qMP$x7wX`@J>-54+DW^?0Y2P)vhh)b`=yh{jN+sq7|lB? zg}e8CM#<9%@7RI+VP@-#>iBfPPT_n!9nZBmzPvB=>NI5<%%Nd+8q6`Ej%@DrldUBz zk^|w5uGG8ao5@_@ABRaMPsE$z=&%3gw*%m7Jor$UAG96$Wbpgz@43U2IM^!Vi$4z2 z0n9B_uJ4p!m=dxvIed zja|;&9yQL54DlPh)&fg@KuvUa8n!ped)RvRBCsB82HOe4-R80~xndGd|6n8Iwj9M7Oc!QL#C93BImozph$Q>euaRlEA z(l@7Wd1*k7lqi80&N3|47Q7yZfq%$`NlMw$IYd0ZkD^((fYXD>D@kWot?Qm zd^Z)mQSLBx%G7@mJ#x`1tc@o!{_bH_o?+tMgiOgX#rK311bvo1#$6u#JBYTyu zqAlFlK$UXB5Ws%#pd(_nXY&%Q(ryX*-^dJ%@wZ#)^0rsk#s%)&>yw zMgWIDDZK4RjYnybnq*7XDFF_X#Z+C%0jZr3@p(|Av&D%_EuZTJwgH9&u+K-rqCYcN zku#QJn79m&gnEUATxSP=kS?q`V0hxl2Wxy%;S#fD2*(jU%{Q3hU&astk-sB{;=^O};`j_xQo{n4HV4MHA z`i5)q)8Dp&Pj`oFK4#!{m?#0B>sN&@62#L48M(v#d*scr?2YW2Zod!{08u$ntYM-r-9i=Ty6Xelc zB9mDR6q>1!LkfygamWOU6GOO|^DqjxJPy-ZFkn=`o)DPHjUH;~bK{xqF!97m5LA1% z=e9s+jjSyuY3j1LdcsQ17T@s01A+a?Bcu|$s=gb;!k3L#kV=>XhL9+y_BRg1O zhQ1$aGI`(1`?h{j#RK8dBpn5s32LhVxOi1<-L=K|`WFJt`|Ib@a9;?3d+I@&S~}r_ z7vTK*`w770hRgZu^bBDl2>C;dj*})UnN2cvC{ev8sPB=0&z?eIZ=`t zku0UVfhZ7DaO<6I0neaxco%0TkayaxZteK+82agzbgo~4OhP4lHb1_o5_9@qob-Q?K?SLttu{3$Hf&3 zLL!Cc)?4k}HIb7gH?+IX%9g5iBilRd=;!Z0b~bs4LFQtlf;u0TnGq5f2C$mA6-|y= z0GW%y>z~k#vg?$|k+cz-4mio+io2b=J_LkcCu@M|G{EPNaGu0d?uJ;?hV0NPW^OTa z>4bA3$w_XBg;mrtGB?-+sx3~5JIp9qu-$=<^1uMEVHMX0#sEyLjyY!M<|jRRojT9w z8gO#_eL`Eq&(WhUzztYqc<~5 zC5Elnf9DNp$7y7599D1sUV88ITjjCz1YE2k9_Pftq+QqHab?JQxP%Ys5RNvu(CzX$uC7oi=Dv8qIMt3inyx zJ_-;EBuE#YcTN(8en}UJld-Md>@H=RJcrm?Y!tO1rzgguWvCGXAbaziJ>>k^gqmMis->nRGk3rem3xgF1yKKG7 za=AYD+emsd(fCX#0J6i@sTH0GQ(`DC+n>P1CbJl*>DJWRGorkH5`%yFoSxS%(mAt9 zaZMaFORze!gLGKLcC2vGR5U2@$Qp(NC2(jujMT~IH2VR`&B=~^5`H{(>`YPSNQcAjR`my# z3aB2_0XQNz%{*e}YUa!A6*2;SnCxU=zsNgj@=U!OgWTx-9SgZ1yt@kEgY=EB>mnGu zNhMY@MF#3=fz&+>P{03YMQi-2aQMAN%%?$O4VIJ28_o3xyV1n*oI7S7u#8Oh{gud| z>##f;31bJ3TSD(n?)F>pIS%Rw#J1EqT@pUtwZ3JBMxRt>yDj6XuV^q-w4=-2rm?Dy zocQi;g}1WXH1yt$&-Lpk=(w;qEe^=fYM&=WN5$l41lt!ihu}%GE z6Au|bIk84*y0{TT>{~#A)5wYLZkEAghY8!=#!Y>aK1FVEHpyHXZJaywQ@^kaf3s?H zJR{;#J_xsorb}Ox$f|OA8zRG8jCaj!Y@qbO**Kk@rh)elQ><6|NJ1m@k2(JZe`!wq5rU( z+#Ig=?wS8d)W1RYq;J`4hVPlv9M%?&&S4d0UtF5(Y$}=@ch*X;pX|NeIAG$ytH*9A zOXoLw{cA9|B5sDuyF{CrZ=9q&BofDY+zi&I`Fa9~_2`MrHXs;6uKT3A@N>+bF^_o53?53BjqCWbEMul!Dkd3nT1T>tnX?Y= zn?L0_O}Cte!-Uf@CgMlcUO&H;*Uwvr>GiW#6Th^e)Uh^XcZ+LobvHts>CpinnVEV01h`&bg=X-=+7ul?QQr_* zM+L{vvcdQhDPuy%<*_471j%^2tpm8adDMX;f6{D{sWjTGWZ^vv$Y%G6fI?evuYa|O z5gH6!x9ora_ImxTzNQ-9-pC|5WGamqQfQlYYIuDd+hL->Jn(+wS;Aqmowb{2kOv%U z4_%_iFxq*jZha?SOxQG|DSy@Y&Wp(;sDAw~u8HOWGnKoeyS3@v5{dp#3PZmq?`?Mq zgU=%?)3j8G&0BB`3Rcy zZZzD8iNaWmx1$(6C_|GCz@B;w7hi7dnV~x77_`s~jfb|}1>;la@Yb=JlK}QGEzqiW z6K&V`LW=;e&Gs6z;R8LI`QaKFJltz$cHK#V_-_O zElOWM1yR{@^oXxSy8ATUpjc2w=%4`(6v5usI}UqunaapRAGj7ZhrJ4fo#HrBoy{oJmarlaA{sc%L9yc@gV_k52cSfa zm#*~YG&{r!hP8*0%$)>kyFf$jiYxt>n7M+tB&vew~K{uF1K^3WROXBt0K!P!Jl@v^!jVf-u8?`GXXM z)#8w;fMc5g+NvEBi*xLiqt(cq*DxEaNeoA+Y4KrU9f7d_L8E$~&>KCBY_=1Xrbt7R zV9|kx;U`Sj(Y^!`t{BHm#RJIG=xykn1^OPxDlm?QW}Y1|D{f@lDO}u1xu^cONsh_b zI~(lWA~l&?VKWzCoWWCKy?IUi&3~`JcPm!xA2S9|baUx$ZSY|g{(9w%GVsuA45(S& z@ut*F=ycwBp_vvOL_LdD(itm}&T@6uYp9QAA(KRwh;1InCw~_Y(r!-bkfV_gZ`dL1 zub>A`1HWI_T7%8Eim|JXiCCIr@}BcUl>6=0@4kNeu86}b=##YRLaxbEyEXUq1;kHq zPB0r~S8_-L&Eg!ZYNt(32G-9A@PY-&irvSy@qbd@u-+<^GN5mS8?`uPGXEe~EJNVcS);@cZsdyvjHglq z(U-gUicO?qrjWWa@q5#e!2rTzsf7OwjC||5nNPy;6kHs(CMTJ$`EdYedSJ6Kqoht~ zY#a}{hR1@41V-TY^;3{<*Wq^3|4B@@46er_6DRfC_4@LGEo5>Uu$t~or3uCbUC2p0 zL@JFK6{5Kg?aoZVoi1abj>$GIWZ~2>zDgE}g+`ulW(pVcc~9x+eFqCmcOSDK3H{&9x8yRK zOTXFg)z4cE?1tfSN$z)?ry(CRIOZ<+?v)}_0{wDo%;;e7w%vWh9buv-nM;Sn9R)-! zPRZa+G)O>L{0@l*RAb-b;C!)R%kQ9xMxJGKQ9l}=1kGI7K@@}oivgBQur;=&jla_m zz>&#eCt#u3)ZRTtx09OHWPQXNJ`hJAH`o}=*&YaY6+Ny*FbXqSqBz_ytWNsDdj|0R#%0QBBLy#Hl6yjZ$Y=oI-PM=6Evi7# zZX_s4fvKHC5;@>D2QZU%DnW@xo+TW5>#R3JH<#}ATf?C(&Yr_;QQ1#5Vf+maxVU1n z!Dtv}GPm`-ecdUXj-2jhmYdaZF(KOso(K~nwK)5GhP#rZ1Pc$wr5!HoticyjgPH0I z!&$N>vLxQGoMRN^=U(7_p`h8(*SZ^T;ePB5yPZ@19~WbY>!y}CeMan8r@@J|DQZC% z2m4{|uo_rs?gni;#}rdsEj;Tjp$>i2GnI5bxgs~Sh<^8<>(ylATl&n+XEG_SJ&^`d z$Ec5C8Z84}5KadqXWtaVj(w@OS}2hd*0xc$+HKDoFjF!2#1Rk%8$-};jl0aQ^>Qg6 z?vD0bkzSfzagk?CXV63gqw_EtE>ZAUYpC>~pbwm}-R||fZY>|3kjG z>>aohz7E=5mI19GTw=W^_-;k-KG*Uj+TxVhiA}{71;4D}yuy$AB82kJRWr3%AXqLA zN`Z+K#y&QyyrcNY8T$Ge6|UxpFlcAs1t+S%Q-Q48v;$uMtSvrB$z-aUq(zkR+2WLV zMqcd17r3*l0`OpCr3HZ=N6pKOkh!>uHj>$O7b~ngY$pjq3#~;ny3pp%5b4>@+voA?p=0DOF*FI?M(xQ(`9-1!4+Kv4mh+;X*aM;UEdfR63v;u%BhX zZ&r}#-+0dE?a1(JdH)cVfqe|&Pl4TP6s5iDCza%iclgFAJFlSi_27MS1tbLC-bm-^ zI+(+*3MotnV5^Z4_7^D(C7Y;+na1_B}%1sm2*GQ-N-8 zM>zqExRAPLa>9JA^;Ku(lMu?f&FiOB7A}P=tYt^x#xn}`_4ATaUsOY~s8ty8ookc_ zsW@PT!7Rv`QERuz)`m?7HYgI$x+u}wGz9*GdSB+6V-A0M15U?chx71v{_ zkg1p?(n?sTpt63MOk^PF^w;&3dD~nu&WjN?ghTdA&-x;*QD#It1fSRD&)PwNZ8O*@(UARuWMCb!jurWY#;Jj@%=zr zQ(3ESqVJO^aIf*$g-eAm-Y$8&{>!Bgo@?CKGF_T-&2fFzMF%}=>c_mk{zV<8Wc;7s z1|S(cOSm)BVCoTp-znE9t5#Xtk$^w=4Le4~j|C52RIK|H0~CTfpoP?AA_H}uCZi}r zhk@#BxTDX@RFyX_RT68JA2rN0;pR}~jHqw)__*Mg=c@L1J_aLUY_?`b$gFrO+#P^1QUo`NB2)SmT2VWEa-WbwX>rsD>Xkh+0}#mx&w>OJNZK&l)!bQBgn} z=vrS&CAqF0rbJ+FamoTf{3JAP8%D*FxW!qTY8B)JVM5dvrHR=yqaNZ`UvDb}VMq6S zeF?%-sOqZqavZp0Vqf(|x|>WpRbp*1HQ7yYjBwta3w|APz{J&jw3Sn_@Z1E)^NTh# z{k3d}wz7UhpV*DhOfAk3G-^xc`7V%iRbTP&Pu@+~R9v+~;sGNaSuw&IFcd%?)$1?U zuLzn}u$$V$(%p3txESxUY9O}8!5)oQ zlSB>n)AaR+3TtU`Lh*F~s!}kuv!))5Fr}_q;bUjLI(f(0g(tS1n>orRt~gLSpAwka zxz$KqTAbW+6ET@419fGGo;qa-nmRt6vNZ`U9U>(`I$+|_MbWL_=vw9ud(YLMeo5wV zxfCb^+85^|VU5DwOK*i%vSGG4R?XeXhFc)Q?-tu~|50CD12)z7`kE4(%wnL>mX;P3 zqR1sguW!|n``BAlQS^-pnBNX+;#U0K-pY04L^pe{=ym&~d_ci8n)J=7+W-Rf z>EM22V7jq}iTb#G>qdjph}tRjxty7CAK)6LswgPhku1XvMLiENhKQH9Xb~ zlL(Pv7=cQaAHq3R5ERV_nTxBaQ@zK!OZ{Z$gWhmhBPA5B&vg-Wves}ch#TT>TAWPC zGN<;)8ld&Fnar-GL*fCo zvjpjlt;%A}dSVk-O+4Tnc@CPU&Jv^zPc{`(jC<$OBAL|h=_YpLKbLX$u*G7Qxxpq) zPZaELRJIwZFVd4b_|9}ZpSAR>zG$Z^j4&aV&vnh9ZJL@sg!O?sn7vb$8gcUbe8W)z zp90DCP0#$x<4qoN-Cvlm|6E_0i%D`X3R>iu97HQf* zVSN|G6#<8jMh9ebQF8Fi^U{xFqfF%@*{|?R!RRc6HRRNr0rbwfYY5^Q>RQNjE^RaMq!M|5*z9|P9vjPxBug234iPIq)yiP z*KQ(eVAU5w^kLzw3<<>p`Nm$^`&*ZFmmfh=@mN~y_od;E+OocXenNMetT#<-lR_p_ z8fX?{)OS9~C^>k|_m8zGAoJ-u@kO8fY|&lY)Jj4S#7w0s>vM(fE4@{a?TUEqSJ*$O zR9R~{YWk?J#HEUCEpnBTxY{p9m?lV_;;*mQleEPtRl<*HU-R>M{eQ2oy4`Jd{aCRs z!#!QEAAHeq{h#!x^!CPOn*`Y6x*>jD@j*4P?y_~5f`CH0y4F6yZ=7?>T5Q8St_M0$ z6zFZzujT!ccPcbN>*hrl$-C4z*RUbbTIG3#xxQ#atiOmeuYun2%vZq5!QZ&KMCp^t z++j)tuHU4p@c5`PUE%YnU2i)p9T(WL`wcH|N2!B-3M#yQl9?{Wuhi$Sx>(Lfy#V72 zW}z#h)3a@_r-dm|gSt9izyDD~yR&`$VeyQgjuhA2>Euekp6Xdud%Y>CE4KP>u+@X> zQ&tu096(By86lh5TJ*UKp6KS%cRR~1v0M4NuS=VkyLqd!F|QbuYa}JFTmkK7YAH;EVa`Xsfn1J*%G0pL!?q* z4s64`|An{6+?hs`zBwJO_v+3Hk%lfEqHq9mijId~?_IXpf7BP17V#a`0Vf(wx;ZS{ zu;{p3E962ZnTio+%^0^4j5q$`;@oSTDE^?dR+YWR8DSC=g|a?{K`l|%78g!J4L>VR zQ#CtM^*{^N7LO{vU=roi6~hmVa?FgIZN#yc(`nTXN5h4yB#RHz)Kv|nG{_u~ctGtO zSqYkSFgjr3n;DD75*axv<*0+1cT7}xii+YoH|QmsxK7HBKC^a-7C6gbv~yIEAay*m zmtRMsRgY#)HWg@#uRlZDoG`-D;w(^Y@gc5Q9^J?sh`Y~j)hqQb#N^5Z`BZw#XqdTl zNZc_*>JEy?(~T4W>%haSkcocI?nUHp*2_YVl!T2ZzOOSK;+Xz2v>V=qX@%)Tq3h$lTz0 z9t-HKaoy;WkNTo4O)|Ttfo2I-$INBG#DhVLuw#*oJZUr=ep-1<>1e!q*n9E4RPIjQ zE{QwJ({ZR!I(SVVY>W+qjVAZOY!WmD`s{|AW%Q!qZdJWz*s&%D4_%y|7E^Q?cy7%V z-d$1iaeP)u$6_*(!-39u9N!P#>K3`s6Yg+HN2w&53IXC;&m5j{fGLP4rf;Aei0sS@ zyJA5ZKYBI|G)u5LW-bFJ9?Zxx@}xJbH)aTK-%QnsOq4qesSVrAm=*b@oZ*acsANarDfMl+5mq9wc?53bN@U_ zoRphC44|){r2fccL(G^YR>-!m%9SuQk$xg&$N?oNaj@?f;oYdH5q6$n%P%bw1Z&qJQfWj5+a?{TBfGU9O9Y}ebaGg{ z-VLZz8gUk%`^BaZ{B&Ea^@iBDv-$1FCcY2MjF4763FM2JH^jX~F;N4I!9ar4R-hm# znPe(PST4rfNRwA)lguSZ3}YH$$FeiCJ5O%`lX7QG0}m)_e6j;NC~J#}v_b#t>2O(6 zg{_|7by%EmHQkLy6|5KVZX#-s$-%12G9@-T(Di;Gn(_DUxvk@qewj&0jjv7sUz}yb z#OkkqyC$QpO5OH0X)7ex7l6_)>z%mNcs-gP1f7KxupWs31#v&gbxI>@XKcc5qI&k5 zO5rmVFUAirk38KGyGW@j~Q3uLB3P(fT@KezoEgATda3=K}(CYH$Bo(jP!U``l1p) z7!^JS>N$LaxVk4V?AmS*R2(fJWbG==^#NmAP;N>wM`|zF{*@+n!MA(x;JFUIzP}25kKD(M1kJp z_WF~z2vzEo0;BxQJ^So{4L7QNQImJtJ4`!)&sOKbZ!7eJm*XK%{t~lzayqarSQ|^i zZ$APul?KHsaLIIn5YZvzq&=w4J4_){^c0vZk9&Fgqj0MFPT3?8APy{Mt>gE)JOIb` z;YtR3z~r=6_@I3!b@I6tgljptPAY1w3`kU_1 zhCv&d;J9aadJ+f6z==kazBwK3F}i#-vz}FFRueWAS1-uip*XdfRRrETqHU4K>N=f= zW1|hhhKnBqH&p=d5II+E@Pr)2grV30ntIEfiV2w}@&arxcjJXo!r7mLg%xTtL)Ptp zzJ7+kw&kwkkjcq^1B=uz*1Z6;3#`A@k;3j#3%5j#yh8j^Tv(;iq?;St`JQrchP-~_ z4@~Pspv`33$*CUZfweh^ZAm<-kZYzgAS%LaH&hzUP=tZGJGVfqbJ+WrUgs-K4#+>T zznl#7uYPuQb&Z00n1b8L)pwlh3=@%eSJ9xvozL8Pq>@%a}-OuKC{>+z$?uMU1%-$-u=ACz;29bwwZbrvTD z*zwFNSW;S4lc^Iy+g%x;wd?&_Z>SJti}Lu_if;nA1Uwpe?j z1%!SZhE7U>NOx8@zKJ{2XwW8Hw9>{KAtaY+GML3cp}%Yq-EA~a-a5BP5X?f5(!j|K z9A}>QvZ~CHj1gsY0$sLX>#kQT^svG$bef!$I;9a6d?NMu;6l1qtdFvMb(jwAY`C@# zrG}Xb*^P#8mf*R?%=qKTZpuK@WNbMVZLo=}21Vf$u+jgu&Yb92S`2*6Q=p zBJDBZ6Y7SN7J0D3ZeJX=5?dl->UYV zrO6EWAU?K6{A<^(!*nz}TMA9T4Yhocgg8fB|-In;z)MK|(f3Ob5WrhzCh>e`_w*b5Fc3*-!1$YOW$wUrV z4sP~=G;qgfY3|Wk$KKd=4^Sf?M?ZEvQ$K#<>E5azRH{f~Nai9H^0Am4u4uOIEmD(g zYW{k}cSD6I70#LPSJ71zsTGx9KOszJS`@^YOmMXf&SX+tdm;^_j<27Clm{kC3mB)x=?&266kO3(VY9y9LPUH7pN`kgA6Cz-}u7;LRGV4|DR z!R06#yN#pBEwg;9uIcW_1`9dWWt46%CbUVXA=!Hlr=uOJ-Y0rmNn&-K#PBGta`HYh zk4E&Hm2Xx@pSg^wOl3eDShz@xe`Nqa7ksY00MoY^%w z*>^8t{6U^Dl^<00kJCVTpa~5#74AAwr!-5D&>4umF?q_UmeWqiuQ>< z*q@3`ToXU8SE;X>gx38KqOPdP*Z--$YM_k33cxn50gu1_HH>K5$H9gm-(&bI9zyw*%=1Y0F5uiXE`zU^4EB z0Qc+c@Ac1$SvHf29i)Rg?Hn{quo`-?xK0>-@GRjtPzF@zMV?^-5)T;Z$VS~Wdv<^l zb#ccwa5}u@&JHnRpG%x3LA@GIU4j%@ZJiZrvE~!_d3;`yC?l2{6Ma-+6_d=x=;S?U z3gkc;P)ANYy0PrmfBXi)nBtog{bo7*F4o!W&(Ld+ZnfOSGz2Nkkx+{n@*t%KqC5o+ z$iSI$(-mT^{BsU4L$X9<4E11L~AUjG8&p zub&Mu(m)+K(aqi~-s_&;H!49F2knq3&=xR1xQfgzW-bz>1127fm+b6{#I=dAskmx~ z#2uqF%Fm4Q84=ly5aqEpoym1dftW)#XV2%hBzAsFY=GUyc(-Jd(%{o%+It2I!%(VG zcla@QnB(nm)kFho<4==J9ZDK_%wxph!(jJP+e7Eq@6{xc18y_|t?yv3Y@G+|&Ctz7 zGk+$GXIy#l>^DRh_obnliZl>5)u!{BC1`HAE>+*wa;QC42zwMo>x9U2i<7u&16y7G z1Du9i14S&>#S`(`t}sDCu-5X?B0=UBxyd^{r4c?xZ+IQ_TN6zL-C8tb+o188spGY* zfURaGDmX%Swq}`Iw2#1GWS6RI4Lf5dzQk%ixm0=mzO961;u;&jaoM1S)V1vkOFBNP zFv5iRAcdx8?Kkd&MMdG1p@P0~;}bHmL#tO;$KHWENzlRri;m`bGl_3@tU6-in;DD7 zlA%o;&u;!(1rCcPvB;3v!nC>6Lrv0AjBwr=C?o4Pr-RLWGv!`+lP7K(TWV%CIu?hg z0nQpLuSF;~IIDbq;L^mY&B9Syq$Y{fpmppQSWZ*m&Ldm1Os=Ivq;eoOPDdS?MiXVn z>~LM?52$8b7E^U4heSPhbnw*a4Y3@xzUY@+T-iZ7Xi(xXXJ+S-%7CKX$Q+3G(J-O{ ztB7d-Muf#;M}JLRcmqf_u_^H{Lj`c}m9N7acbHT(%qifdMOIgTtO#CzDLaEcS1hp~ zM6!#D@$SkF(m{hbP#iOt8{-fWR&R!HPM%iGt%)EWrOG=3>tt(dKC(&XV)XjEK6pl} z)#hs>#N+L7og5YirA~)Bo(Vf8+=KQ8pC)!T7_9$e)jZa?bKJJR`=}9_TL(%v_qf|c z_sZ5?*jw?L>1J&_$KxT;eXH`6EUqeQXu0<1%`3kC*`lxY*T1;RwIPZtS_9F#F2hn^ z6C+BEG`DCblWRRy>Wn{-k`D7IXb{UNJm$M+wxRYpvxd2rcQali65fUL)A_UkX2e!~ zldkL_9W-(9fTGTs3-CnO4^or)_4n&{q0RV=!E)lQ!z3EKbK}`0a{&o8ktRqRJh)?! zsPV#chpAFxh2R%B9VW5l7YC$)B}fDBRc=LR=59u`0fddRIOc>``DS(WW5-qzGXOWk7XK zQXFlIh_d!O>E>!tAch=H!o2>O@WYgz&<-(TAF!LK6ICQg9nT~kao^_duxz7p=8o4p z9`CZ4&)lJ;fhBNUz_wgQYlY!-w6`+384ZV{6Icvhe|GqJm^|t=NZV&;UU16Xy*F4} zOk64~T@o9(W-Agzj191fsV_loceD$pT_k5Hrn4c4noNmc?5R05IS5xV0yc8#?KyL~gprO8H*`OXuE^U1t^Lh_3g0(0_WGMSPRDA)Lu zAFBd>&GvS(O~+n^ey~XjNK!h_(lK+S)d)GKTbct!M^3#&47PwMJq2KK>#B`@*W*|N7Tr{Q9{mT0^x1bxMIlMXzhaZzT^& zCSsbo817X#Qxi71%7Zvi2Go&xG%}i7y>pyG=S7}I>MBl~beK9Vk<`Q^YZwlc0i(u= zyD81#$=5e|dd-s^EE6qXzppAEh=onE%uaF3HLUL^Gpk8rzyY6mHWAaz9ZHY{+T4ca z(MXuy(;h$Y7v8pM{Xe#x#bk*Bk-2K>1d z2kEc`CDt(V99eE9ncaClR#-R%h-j`_rZ&8)Tc4EoNUV>Sv5wS>LK`ys?Tp zo&rMLYd8{O`x^fg?87(;LuzHb2;mL4gN^(nl~(jao-zmRQrzH_5WE)GbTrH@PKga% zMH?hGklECH=3*cZYIL2L{ZfG1BIc*@cKz>wh32SWd=m@E2-De=3*>_oy0p0Sycrz@ zu)4@@u;vw`aklf)@QH60^Y^hPNWK48LA1qbYMR(7bLk+Jlo1=_#226@i92}8GvbPZ zH64&XNVq-TpTb@L2YY5Kv}IDb#ng2cCv7lO;h;2dmO0EO!6zGEUsVjkPZo5ybMWh* zdj0?Iw9W_H14@$lBsV_OsFFnmfpj5B1#Q{Kefh-iF&z^@+ea zwUyeI>(}E*WQucPpv%l^?RWfj^r@itm%ry9Rd6_>q@ z4%%JGArDjrjCAbv@X_>2kDNwx{cjGv8hDNE(4*1OTKz^I>jXLzsmbKtH93eW`gWqg zG&1h7!(mQF)|*Lmvr+u|xx=J1a2m|@iux!Cj)Le5BWZw6JEyyuqPI4?lyh%y*_q}hUgGFO-|Z@I-#DU z4*VRs)q0~3a^0fA8|Qvyg#_2|!JkzGnYC|2!PCuHXOTGRZrczF*;)i|qKOPq-e4ND z8ffW5TO<=zZiEv9P^Qv>I*A5jQERuDx}%Ovqru3--dpvChl#blCS(JP&$8=x{PLwZ z^|>y;ipj^(O5HnYyLz#S=K&I zchzbS#01 z7W(8ICn<3VJOcGjg)x1(tEX)y3W^>q^NaP=iqn z(Y29R@OSL6cxnLWd;@hN$Ix+K+3IhRmP2EnNJ|{Z6!i;OkrauwWHuSF492=Ca4B(E zt>e`o*w0jDW`yT5%3cW|2zVFo6lHX?bH`SF-Z#Zp{=m)(S#Z<?m4! zYQT-;)#1I*_bfeYXQJ0~)CPf_*(peBMx4~JjVW@2*_^M84Y~)7b|CbX}w48y)Tk`AA+Z@qwqIrrP}Q@hZqSWsO6HPkQmng(Ig1q2+unOMO9`cr1xo zi=H>A>|AviDyf1Vc|C;5Ca{L`_BO|?2G9lAIY80tKa=KgAPWt<-CS-~ZKxhZD zcFv3R&ff2ODv&eg1KviXt*TaV+}D`t{l_4OPI;nKqL^SaHB(`6P#_kUj4%#I^*qLY zb_$D28=!VA17;B=tAP}BupYg;zAqUgS4{?WAv8}k1cHu~mIecQQc5MVNp5Pmh_a(} zsKz^25Wq4-$`CjOHi(>nB}kf~iDFf$fZ;a`teumdQSkZx_Wnx-L7+8_4F;!HU+`nR zV}}F7;EhZLjKO%J^yyXB9!F{B{g?MQH;&~VtIjI;E+f<;=4TMNq20aZ-f+UNlY^(N zDFK$1Q-cMB>z$dDmwBZ^t4U;o)%HQZfA^BsK6g~fX2AmNSd*FF|0wdUu9LE4m?-iD zT}q@P=oN}9+~7I}t=54WSwn38#4$(R#bnqy(;PRGK?^OBo)vxvc+%tjtC3b^0A7Yy z81%&2%)Vi{o*bpMcwwCAcgYidNUAzi5Cd%J%8^rtfwgnovGlAb!zbqzaYw(IFHTQR zXBTBeqQqFD6p384EYgi0SsoM~Do%rzkw}a@u~XnKy)#%#Z2GD?08)uVpbR6|JMRV7 zVx3?j)G=5f{_X{Xp+lIrl2*|p}f-DG)4!7RVe6WuU_JxGqca2A;mUpdZ-_*J4^ zYdp*=PxL5}iU>r%>K$Zo3o8I$dSj=i7w7Q#{uM=na3JoT8aYof@&^_(yM06$b~^O^ z4FM;ncswYun#|7w#$!4X)A1NkG@LO@mlv_BQln6CHz{>EmKeC|D3!E;m59lpm4YNAts1zJG*F|x_T-ux1kX8% zlXe*RWcniM*$W~&%I9NM(ND`r)v*A+5D%yXNhQ)c7f_R-DjU>akiS?B)G};j_ousA zCE2&}TyhgHV!7k&I_*bZ;`si@o|Ez+BiZRUl4W+TVB4(jn4u2k{moX8o5;rRZw(au zL9ZizeoBc$S*;J6CJqgTlEjOT`4@U}miY)H9U+#0=L=BVy`$}_G0b6J=4ZhtRgJk6 zxKjg5@_3B00jGus2XX8BLX@$@L7>X(%9$dSSiV)ko)#^4xGmOI80U5Vs5;K$%6pWn z*K4LU#r`v~t|r^GIq8XqY&IRYh*hF=pG|P(6udmL++<#}2HGK_0!{QetJAQ-@PfEf zLhTRye+ft;isVj^gt*R$L#1-W=)7?LS#XXp>#S8{`GMs*)r5Uol`UR`n=Sd<;fOtHZbxaU!Nr*7DA`+b4; zKdKHp%3gHDIS51cVab}ZOL-!MSR$J&RR__6Vxk6-tEL8`wRWj~V|2?1I%oO7YY3;Y z;7gPy3E6xikV06$=4I`07+`Qz08GmfnBT*6xrxj=kA>u8yU2cEuOTXp#p|aD}8QLsijAWj-&7k+RP99)BEIkU5&% zaX1&YAMF1+9{hQPk2}H;xF{Al9S^z_t%vf*%7-j@%E##e%k7x>n0`4X&C}5wB2xqC z?S8}=^So`j@mF4RD;*Ql;~{11u8;C@x>-VlF?HR2&6kz z9RdYb!9TT*NdBH8XV`Khj%Ag7M#^!?{KymCZoD=SCyd#hl}M_}6{LYWv7@K4dYtPl z+{@W{p^O#rDG1D6(!h!#kn|0}sxkjU5}T z4Qj>2H{Q9Rd=*VRH5dYe7rxP2i5uLdLmRidQ=yEVTfFG>M)aDUd{&EesAr?a*#fM% zv8YhZ*sU?WQTNC0^jY0XRfk|$yV)gjflQNNpR%RQWCJcVacsa^ zF!9s?dromrf*!knDbM}p)JQiPX)PpC8fai}2)HWYi~$w10G=GV0uCE96R(Ay6i9(P zFWjKaEKragNttq7Iglyl8Xxn9Mlo_S8Ki+`TBXDwi+n{#=7^lw~1= z8)A&K0#^D!{!W@D5TYe{n@om4pr@EbPMKsBlcmBA7*RiNqe-OX_m>SW2^|bXVzlM4!hP%vpri^m=E6=Wyj)}L`visNZp|G&Um438rYQ@C@6nN zeT7=fKi6(`&PW}H-dMFrqX|JbM4ST((O&dUmUvXa9%m4#!_;%|5-i}^X_r{Nqp{PzzC0~J}DYJsh&)tx9pty*5-<7(@EJOVC6AHZoj;&@DRp0N8J zI#LRUrkq?xQ95)@N7(6A?yG#!$jSbD#Qu%_{m1zJXJpMZZSj!5*^Pb&y#J=hg4<_Pd5tfODSLY3yj|u&;3!=fFK{XC%4#WaZdb#b7!kdasb=SnrLlMLz(0PtTN@0GBB!1Mt6Oh-T%M|J zo{|7Oj^gv;lsFW6J~+|p+`0(}^g&e(9u%F}DLC7vcXKY1v(t;^i@#RCH0Z~0DqEyy z<=$N??tLeF&*JQr*vWSn_g+zAfu~IU&;zeUaT76++sc$wNB;hXWWiLmB_gK|rRRxz zXXA5!E)_4tcP}`%E$3dYeo(%q^!{Ti{4AwE4^-9-_FTbb4&r+lOB&k2-_?qz%_o+)mEc{PW7~D1av)r}EpZFj8`f)jJ zF|RqjrmpRNT*iJ8?Us9UUbU_Xw|iuFG56zkx|rA5@!9qrX@`B{a1pn1lS&EjdWqs)dUp8&sJ#ExA&z{rxWB8R^sFbtC)Zbu zoUT@{{?6CTHL=H2Mn<^9o*T#tNgSvna>PsB&IG#HQ7#EJ|0-wuQF_lXD>gkea%zY( zsVEvHylpoABH+hStN3ZpX_T_(noutD_UY%1p8SUIIle@lA zOpaJn?&NHGd(66-vY~$ov=(KP$U!PP>~k_+q=ELR#ydJ15$MCd;RO!2ZaT4}bg0h$ zQROwGUGDI1+S+h0?)+2IQ|fBv;;$8Ud3jYLq}LFLc9d zqw4wa@9&*Q`Pp4d)%LPTBdranQKWP-;pEVJab26*6+V*LzE%hWoH0CpVsLICs{!cTHfE0wA++BB!#j6 znlbY*83JoXY0y$D7ear>u7+mi_6Vm)$&G!ad-3=QQ%_>gyI6I$8zw|1Ap z#=Tg*db%dUHM7Sqqo*$R)_*=+L4m6-Qb^XK6FmrYP1d3eZRsX`%PGGY&mt zzMbnUQpb_f*}fo7AB%*CjJ3{VaL^X*T?y z>?l9WV?|ukNz(~{}IQq^6do=G^>Etej zeZ#$#<>#S-iAQ$23m7-P1$JIL6g`=~R^)Vcf%TlY)Rv2#O;npd;h(! zp5Gd{e}B*I%MW+gq^xW>%8j-0SE0cBE|&GRQtkuT+3dn`ky!XiFKLw5J`h)CE60c$ z`Jmz3&EKEpy$1<5DCLunoLVAxn`{N04pr1$-CXYQ zg&pUVUhK74^qP2i6?>;w)=!U$dU9UTR4J#E4<<;qnMnVlUoY?6uJujV$oK7b2 z#g1}G=*gd}%h~D02L2&&t#Yj)SAT90&-Jn2^;X@Vnl9qJ)7L~JJeO!c5OOkla(lF@ z!8CGeaQ9qbZR}Zbvf@cz4FWebsza~CZaP9{7Id8UeU99LO(b}#C z%g*W)#97q2ZFcu^c6zb3I!@XK(qK^TSX$Md0{1*h@6-)DN{0%5|FJtV?BzhmHjnq8 z-~V1Y@yH7MFA8k%aC}OV4%N(<-_Ngw(MdybDmzmCNlXe2+3`V3{eD5xlEh3LBd6Y+ zih9OshUJv_qr*Y8cae+xkg^Yb$c0 zk4iSs1>bCIydYxCP`p=k9E?-dff|J#N9l|<##}14w72XVVt5VrRwqAGVZdm=A`C0T z?E#ITk&>Y;h5bi8)O=l}SEA7rZ%J|I4I<8?g|Ii(Q{z#+o`Ozi2lIYpAAiH~pfA~F z%J7_Z`Hj-?81@_~_k8G$Q;veL&kB9z7`Me_SZPFsd7PhFUpO{Fxf6(1^^7I+(X08Y zOP2d%&QTC%rI-Ot0wG{Cf?|mSnFdmj5@dn!F99kDfg!0xR_Kl-=J7!zWf6oto`(d6 ztR=3J8_7owF^4IKG(RP6OT+iKWjM@8)4bxIuwu4EfJAFm>@#NSl}NW*$^w_D5J4;@ z5=$J42n3yv#}=%L-TL6jfg2}QGZ6;{URrGEmS^R zxmfGkWSw|4YCT(2)19m0Qob3hoDaK|@a?F@E{(8~pd}Rt(JW+fh?L<*8idraZMAqW zQhh#&K2UAS6Gg;ViGhl?`$yqiwE;B>J$i+%k+lnyOa{v^LJCm1?dU0PaVxqMEj?{Z ziE%5sY_FkF*izxmM60697q2FflVm*lL>v!M&Ow0V`ya`)-A$AIjIi>k`RUU(-#q2A zFS*kz>m0>o2wZ5NHN#StH|2>CqM4;c3@0%@`fv&ztDuKZiELU^H4YVmpzm>BWi0R- z3dQ&Lz=;DZT)rZ2kkgL#1NWV`d94)VJOpxMXO4vsP!C`meYsQ066m*C^<_;Hi-~=M5|Nf34N0=F(@LD2E#-C_i!(1lvYW<&}TO`}@~y-hbIS*WBZ*CNcXLMMOnRC02Liou35* zD&wr-xJMwXpn)KKl*mP}Er4T*@4ql0MyXnVvm1UwOl&fkE~t&Q4Z;4Gc|t*c`J%@w zl!>FAZpzlhr%BLyn!3?3;g*4&4_b~L@_sx9)f{&OJ|gAmYml7Io`XdsM#(YCXcDqVH5hceBLj^QFa)nJf$Pt z1R<8lC56?WX^ZtzcXqGb@=j}sVshg>Q()xzqr`kJ2R#s%g%YaCg!q-?$SF&t948#S zpxkp{1TC?LAPMYXRmEg5#VQ4%D=_#+=vGnYf`Z=aiMoEFj zmZ)V*(};~|&X(!eBvq|9tXLcP`#S{Z8|IKhM37wdgJX$9amgfd0xTtR5iwB*ZS=Ba zWDN}yNEU`5VQmtxCSn@dU}e-;q{OLo{Yk5QR2?EG@NsHKa$bej8M*g2jb%X|w2A^G zl^D3{D21>!8;WL3f{5#xPFm4&=9@)AVh+p7L3S+lFSO zOJ^rGHV{Nqv7au^Fz1lA)g)5Nv~Uo6?T+Q2^Ay8Y1pj(OV7YOk*rB|p;#L_mOjzbG ziY4NOSI#7Qy??#E|Ecf4!UjgfiU+6(j!@ttmfJ%kc>y+f4h%srMhZonN(+OqaVr@J zWT~QoofNnu^C>TrdU{S0d17Sk!WeKOg)TL*&#CG*Wtw;rC{nqDg%L0cT(E~e5Mzmv zQv-G?UnX%pT1qByV>p#45G`?#sz^jeloB7L1yl_7S|MMQ%{0;dp|UsZ2%RXG7)>}e z;6?)S|H{wS2E9^=LzEFTql0oqi+MqRYn}!KM$B#T%b8hjTg-Cj2t^INy85d&{58`j zy{z~_x6-lP*(6lJLDn<2 z6FPTR(PpKrCR_X7$~H!5AGq|{5l$fZ;JE^-EqD52+X}0ozu(PitSb6hamn!FG-o~D z^zfnEjngNmOizi}f#LAVR+D$AP9j`dS?z+V6RoZka0L~`UD zK%ylg6D=l_1>QF7Ufc`)yy#Kx4g`<9R&5DspbfqHYQ0QUH1S$hG@x2I!H7=eftYfP zTw*9)sa414K!+Y{4-xNcK{!N=n(jevyhjsIA_c8Ae=en&N)2hNQ=QTBQIl)B@CialRd{7VbBdZw1+aJrk7o) zyx^BWg6OXugyX`RbrJ>SBk2C%Ld!vA-N^^#fqYWR@v)YeXZRpNjEGv|K+qNO$y#9N zs@TGrC1Ujm=J5-s5_iJRZH%{jGSZ_&zi8DvHCyvbzK9E2sjAhfRmwF^ciLfVjTHq< z^tl;{Libk4IYP7bND@;oMj;dAWohQMro)h-MJjaM#! z{1+?$dp8gzWu_~SGC?B;X@F-rXJvDEmUTpja2g~9=?$J#&zU39d(6eXU0Ao@jPLT= zo5W*hB?dWJ>tsA9C*J+FLtmgLD``Au_BnMn_foCb>sE;_Y-F=*P8<37cljzLmZ@vZ zS^4Bdo0Uq7yeh8jG>UOu1pLa5lLqdM*T<-htd^VM?9Mhwa)0Sko$F#GoQI#B@T-8* zvDJ9Ke_ckLj&^#LC?ocrLbPj8K!LzucgWudX>wx?4D&Cl5-GgDH`Xqn%5NX*v4#Vi44~tUjG9Dzj8_?- zHM={CdS~~?c>SItB{vI7n!)F_mRNCd^JE4Lb37ij-{weq5bJux$azgp$D_O#nrJz~ zv3#rK{HA=wSJ|=jcmzhsc+h-2hPdUpSkz4qpkummEOFqh$s+b6P=h@Ww|xWmfgBM6 zXPG3+C+$akZ0iw!0gpmCE~F;yTeq@bsl?E9luB9wpKf;Ah+)fdx4kjWT^T-w$3KoaT9Rq#L(1Z$hk{=$D_A8wzU$Qe$!tL-9IVGZINR+a8&qcD`=-rM`&_uueQG(pZm-C z&}BqC8+d{{d-C~P3EU^w_Wx6V;X}d%$CamfBc^E{;pFhq>_&`ONW}HeYrmgGdg=C@#pt zdrx-5_a3T4XG(t&kNErv+J_b3?D0l0en{wZeg~o0fajl}Pju4JAtDgsevF#A_IS@d z?)3bAd}e|Rhl>D-92rpaK|+utK+q6A5dyFx0Tps)>WcNW)A<&8g7abWf<~ik2?s>a zDC<$vh;B%xG9lBzqiY`wc#s31?SE*md*{|%oAUhOo%-|VLHAqKFY=#1_K83B(=bom z@VB>ch}@#UR3D2Vo)_c9JikYYg1b9Pne0NpAQXiPqmz%cyje5!*QyXk6`l z{*Eu-Aty~>rRR@EJ^4p}eOY%A63r9pgd}v(gcJpzEo-AtxPMya?L~Z2>)yR@k z;rRzTox%b6G!$pQfPKV1_B)||d8_5UM1F_iw@^U)ClbNV4)c%(A2oM*e&6DsxJ-pT zs1I4(Wzq#{NIwe^Y%LKmg;7|qjes-xk!1u=5V3tUN<;Vymj<3% z*yz)p&jw6A)L!Cj*#EoGL+k+!H$CErrAf-fzG!1J|6k z{+7{3-y;^{BWzoJQ2PdTKkj=tbAPN#id*V~Q{LUMZ2b}g1oMYFCPQzGE*i6%O##RY zdLyHZv>B{jB;>Ot43^!97bM~STU+g)lzsko;>)RS&>IMedWE)549^Tk+X^~%;4Val z-uO~l8k9b5F#RW|P!xp1YsEc|$esY$hJ7~>aZHnLhJHm>o{cso1-}q0&i1v+Nr=c} zd#f@{@+)Fp`+E<&b4|j&lRHTW5c}jir+ZO#wb6m_{9{Dt!vr3LOl5>jMHQVAV&Dfo zX1ey+%bt`rdQ6Z(f9`u|&4!zAVZ$~Gd_O*gK1#l9|A}`R61xor0i$YA#LYW{8n6&Dc;wQg$e7Pg=OIE}1Kh{Gh`7p)TK8K#cREn2 z9bq{f0F0pbTYKf&!ror>fiOOvG<^Pnz$4=A=TrMn{YBKJ*_hjlk1cR(_bcMIG^zck zOg%D!8{Ag3Dg)qKQPY0J0PolhQl?M$jQ|Cuws3ml6?KHCy}uksFeSv?WAp*?RbbUU zK7b$bxF2C_>kCB>;t^X{0OyDfOH=#HOH4yh1(c}_*oJU@0C0F#*o-_G*99Li8Nnga zh{JdiAx>1(u;`h>z)T`VbtWw3$tXo*Hav0u*bbk6e^+opT&6??oe_?mKx`@_2ef0S zSsdyvj?D6cYuc}7ozK#Cf12>X3X$lT6#PQ0SSLv8Q~x>4TS&3M_l-l7ykRwB;1m+| z1}RQtp{k0+Mk6MXto|UGo~caGsk+t``PE6?3q7>Zz5tUU(vx|bQ)hcl&21A3YpqkO zv=5o86@?hjNhm;^O8{6TQ!$D_Uq#aMdlJNX4tOIGx!frZT@~K(ehy=4U0!2MFvI4o z_G4(>MbCTLNw|H(Pz$&(tg^~^HyBG)5L{)bmNrIv9{oCLmo9_wt_6+b>iGC=CKrF z>&Jj1aSh4IXeo!Wb%Jg+6m3ECHjGI!8-G7xL2iS>sG( zLNc;pBAIOx)}0z#SW8&FjnagJSb5j!Z4*BK62w3>JhaSCN#V3Uo}`MM+>Gt<$mp)F z_C{&J6nJr&w3rPdOXy;o+pd=B#anq6XvrH*mOiRDCxA_&lnggP^csX7gO;6Be$oNd zS>vK%YWrIGDdHOZ6C1=TTL5P7t5P*RJ^yctm)t=YXXWi^Wsd2^zZ9^>MNb4me7isT1zE5skrV}ZC>n$oKx9ZJk)k>i zexVeNSrKgs#|hM*c$4gSh$Ji7{IH=w=$g>m^SAsS&R`i{kQVk=vlc^xX4u?ZUMbQB z#{-~y^LdV2$idP@DXRkpn6+iNO_Wth!7r4eF)M20*4*sn^JnT`*5Vp@?jH?U)sF|& zs9g&^|1f)_gvf|zi@v`qf*Vof2vB+(!t|LAVi-ItIh}(8#|`8O@*W=X3Ds6|=dNCA-?@&DU&G3p!DT8yD-PX8 zbRweo+kHSDu|A;to!bO0)%_VGd6Ht6|tRoze-$TZ2X$djv)CAEP+Qv~!Q2c)XH z36p#+in!TW%{IZ4C94q|J{I(JF>9&1uvIr8BWLJiN_0$rvr>LVo?MOGf(!G4d;4w? zH|AUJv7o2LROQom4DUUBYT=!Fs0f~h)B?>^2%yJRFh(Iz2P6!Sh`Iu9P%Acpgm9(& zTpdnpVf7J$xXAFDDr*AoLYBZ(Gv{4xO%o2{!FA|fMZ%XmaS+3#fMW5T`jgRKhizS$ECyt9S02d7bH*2{w)B4zZfv zQG}(U~(%hoj=l21asYC$Aml4y#HbG{( zZhYJD=1|OxOo}3(LP=qdl11ZCJPBmsOk&X-)J>SAD^A&6%ygmnJIU6<8* zi=AxX9u+V=gi%AtO+>@ythg?fx!tTTq8XiZYTi?dN(>kmmYnN1?9B?}{2kp_eN3Q9 z-cSnSP0&c*b}g~XEbPjU87;^oM$zY=0w@ffiN^$*B*i|6V*>3Xl86)annL868;Wmdf_tZkO{` zqbt!8*0x=`wJ-63tcspZq=oZp(4rYuXL(ER6XQeGxz-b%Ra>4L4Mcq?PjHj0)Cb@( zq7xBqV=4~9NEgtlDX@SP%2WnmpB}iADt1}0wq+|g_z@$kvJjpH3@qLqfd?KUE-1ta ztdxV2)r){R?6?hd<=H+&3WkxWv#NaY)e z9F*ebiN&4-@KpreRAO3qB_&_)?tsuA&hxjUzpkLwlM8Fgnnn`4&w+hkOmyz8`B#CZN*^PmfRh@z- z#@QX6nyC*X2dpFdA)AOydx$uAEI7oePI#wB6!ul%Q_%967QzTpgSRTNTfJc2#OySI zmFhzEAzZf!&M7`7NNP0K|K0^L=r2`!vlxKgK#i}4ZJ&E_Y<{B!)5-_oEYvb5nZfE+ zr#Ffs^luV2BZMqZ(ZK3EQa#cC9^i{Uo(73 zrj^~rTwJEr9WPFH5X)S>T}!$q&ufO)jWhQ_b4*wNQvRgXTn|2$w~=&;X z&EdFX9+FNk&rC!fhEU~t> z)+~mXCUD|rZXK60_{`MpY9C^8$T4JEjZ9J5R7t@vl%jGbqp~12lvyjL$4N7Mb)IIT zPGBQ4^b1$RrSt=Roo;r6RcGQhsZL;_qME`??Id*ON%vyp41Ha>m_Zw-ekWI1-F}dd zceP*FFzD}JUa4&xmV{d7N=xectao z?)7k#n_P@Bhk@cqnoNHR?Jiuq=l{d)`k%;NDEsT>)L^k z>d@!+D1Rb+q7*j}9&e_ER)o?)Y_6~H)#+T2v2SG5KXy`%a?3reu4Ut6)?%zfW6V-5 zPbyZ(TY+nb+4`uNjsBC959wwuQ!Y!$FMTblDX`*BO0(Fp(bb|^^?IsdmW^y4r!BG; z#oYpiI_u+Y+W@^Bgh{~@E9z8RK)Hg?{Q_1LMX9&2zeVm48Gn#;Vg!{D|G_f~8sDgg z&_jP1$?1$bdO}DM!ie}@xzjz>$9TGdx+=R$=&x-oeduKq9)dCyNa{bM2&oqNJrC!zg}uK*ijS_f$J$?> zdSrxK71;-P8WJEW?h%j)vduqR-fcl}1R2pwG9b#`uf$iEsjP|iTCMH|YZ)9>`6Y3! zw;odM*LL74vJcoPLx+>MYDGyhiHaX%_iXbJnWr6i7>h{T2sgaxU}N3KY25wZU-|;|rdt5bSkZpT0Rmp%G9WjmQ0(6V}F(Jn!{E(^rJ-)R6bjtyP zx8zP_z@Xa_Dw@ii_t||c3HhLWyA~8!v1QkB@ESyYAw{e}vHd*~ESzGh}O z*5$T^UY2-ny8WvF8AVP)gn6U0$8b7qF;567LXZii$9LlR2%Rc|bDjWGx$=OMpk5_K z0fvUpQI!LzFCRLm&PWypu8Op@kxt#}1FF5ib59f;P0V$mibKDJ`9>2xS-L7RDfoq0 zG`(Y7CEoYHJsA@wV{%Qljmgc)wr$&XO*PrJZQHhavfclDzQ6l^*t1iw&R%=H*V@-r zD>Ji@3g;AYkGlIYg;S$1+0`L%fM411l#u?nUx&}Hgypk`vkgnSsN_EZy0o2cUuh)_ zpN+xuD$zDrEbZK$`B5qc?zRhBDLWLqt%7HE1zp(e0;bHUsY>IJf82$+d`cIgFJ|eE zZYqZiKvh5&uljKM?(Om<$Dbkx8MTwj3E$}Gm2wRc7QYl52k_S z`|dS3*7OXRr##F6_H)k0F5j(RHN795DfEQ%m4i6M^p&`id}DDpZY>?^nv}i(JeA%z zY#?-9(Cf*6c`4Wa3d;Am@DF?q4}>5To~$;69Tf8sx`;d&2s?WlHg)*7QYz{jzmo>h z2{l3L5kD>WMsDDPJNm!Yy5hyvffUFrU-(sp9PbiC=6fue*$npf0QBy9+qzh^>illl zUU$l@4vrn4-?n4{CcRlAcuLdX{b)Uk7*Pn#2H)xIs`I9^vF3D2B;{%8i)eBaap{cz zVGTPw4>z7jn!JxC8ze(JYI7<2OOtYQB*O3dPxKq7$&o*&4w$vAu_SOt(FqSb*|W<- z6O=alo2AmsTQK_8|Cv43C0l_WiV#g+^9j2nhI`k6Ea^7G2>nEo5SwD09~+E%)cp`L zIM8TkI?@*lDf;z%#;g7D=b@Df$s9)37IKHAaz+fTL%+yiXz6ut+6qn^XhC3M2eybk zOmKJ7Z$$3s*q+v`jxHt zX0gm@2;ijBdDfH(@+7jx8nWMuIHMOg-}bGi5sR@#@OKS+B!!(g_(ij~BO3zS?*@*X z`eP^_?Kk!!583PoF3!AmEI}#7!D6#NSY$4x9+kIKq6YhK=8keb6v*26AY*&sh>A1l ztq;Bnv<&=mmDn}Xz=6e^$d73!ng9V_*iTq~_#I}2?#IpjqANg>r`bA8tt?MC@|c<6 zOYI;_=%u}Va|7LS*@aWcos^qg|%!1G> zC6Ss(uxD7diTppf#&uzso7ZqYGbr;x(bya8B3XXjk9?WP-;3Os+N#(Lt&;LkU0_){ za*!j{xvC~iri`JnXldT;oIBRW8{C+@ocXmrB0Cqfx$8rxH#HqC&*&PypW(S$BH9{A zt!#$y?H$9>-ySfU$MRd%B5Xg(BczV(be~-pT$Ny^uGm@I#F)Zky-N9mdq4Tp?Qc=4#Nvx}deEs9`$kwTq%b|J0J&q?DHMryx9O+hpowJfe4H zKwcYR@Y2Yy7Kj%4E2^;+28~&IT0T-jV}f@0`fWEvCVw(c+=CQ_!BJE;`tQy{V3b>4 z72TUtTidFh&Zy?E^PhdUG6k*(G`THYMZwDke;yLhy^ahY=GM|W!rR9kK8m9OvCXou58T^8jz7gJGlPhQpxg0fz>^j0V)oxvNb zBy-|hkPZ^*6p9GIPDR@fNZCKeqzzRE97X0v-lt5!lUJNl+bP1vSu{!3w!UH^^6?fEmS07 zwI6J_-Gc#^AtCz%2lqied`mjaXnjR{7*k-pBuoBV2Cxg`Wr77cyuI@S#| zU;E%lpgUQopp=3}sJQ{NW;Ogq8YbT0h|BpQkDZY@UJ;Y8vKVu_R=!%d9AwSUQlUfe zhS0=iyH-~v>sX-`R_E=W|lNCqsrRq1Pm8c$vh1& zm&=;$o?Z;8z%>WUUE!&uAVeeseIBNO#mE~*7eHuZZ_xB3#C1>Irq&XoWjJE_DDTg_ zc>|~ZvS#o3zoI?t!|vWvufIY`FYm4JB5U|ivEeiYH&yAyRH81#8UB4S^#A)yXAP%K z;#n2O%^S1U7;F4h=WN3>MI(ydbu9X>#df;p3Ew;}yiQ=J1MMHjsYMj`19i_1&5dEB zyu5AAU$@)RyZm+MaaEFcROY3CDcU_q{n94wlHUX?+#XQt(=TvU<(g_}W1nUpdw6^>{JRm8;X(dOjH0I3#J{AYA*E1FKSU$QU{ zAI~6BW3sI{OkvN6*kS_S+-{<0RUv9BC2NAD{RJFN-z}sxcLAFnK>VuKqK|Sz4Cl;N zq!*8_sJ|jD&fI}h3qvo`JbG?kf69y!{*nLSe~V00m3F$lnS0c9#S z8n2l#QP_xAzdMWaojXV4Vuij2W}$0ozIF)W2qa7x-I;+#X5N{*pGRA1t*VA-vGDmg zuvBPGtonNJ@*Ne|vE(IyIe1wAL%^0~HZ0kkXLS$vG0gzeGt+L_GDUX@`Ee8t_Q=t# z+p^eo5X$}0^Y%;NFUj5^)-&4nFpOxm94nq1u5=OTi7tF^OI{iuoKp3C64_!6F(ACr zU+IG?`QdM?jAR{%E0CAeLc5aG>lyhU!uky4X2U$rI>)h%ci+vauitwd2b{*K@vPJK zMTBtGJ2$q&d-PU2yQWYwMtk+1)ip0(h%|3bGfvH{w9&(+gxZYzjbk`lb+zJp_hWt^vJT2Kts zeQr2&&s>)57HIpJUB6y<^cny``6GFPhLlwFaG=SuImOO@s^(Dk6e>s32^pZsccCWb zLon|3u^E`wxYI^yK^T%O7R#WB3{Aj!8RA4_cpEvxN{uX%7tJ+vs`ek4d#c#d(+z{o zJFH<6844^LHkBmj?`h1vM9N<(y&z_OAHdjk5?u)zV8~DXFwce>4CknUG6Ua$Prioc zL3tvA^666~oEL)~#B_9sq^h2>d9?hHpbAyt?#Dkjf`<>IL5c00{Z3UFNX9{*fNexC zlwgK^9YHgWwdhwY`z^dHro$$Bx!RfaYU9xbFL}np0w&SJ$&{Y)O>)LGl5;{ZRVp-V zfH6m6LAC;-Nap14c>eViVloCYb-z_?ewmSyru7P&>X`^E+8zW;kO40~T!xkj(@fFr z{%;B#TgyPUbj*dmQKajAA=6N+`iX`(A^VH)jZw>CYd1IiIOwj$R%M<}!>KAxK0m0v zeNByn&K-!p_IZwRTb(U$*0|PP44v-6_+k@A-;;XKugNuIVG#+GM0D{np^uh_DuZ4E zinUT*HB=1c8OX)9WT*Ag)P$TMl`T-kyNE%F|1oUj;m7ZAORkf$XrWG))=07iJ`|9z zE*xDaZZ2}f*0+TlyXkaxe&+0aY598B!tCx}*Hrr|`8>xYtFZ26D}bJ^eyM56&%!!G z?gp}}ZuoLu4GF+QCfOM->thPbhU1=Z=>Ln6_aJZWOGy5Qq5`34*-hHEE6q&_L&8G} zP(-t+a|IDVey$8LE-StoC~XW3S12|rFLKjkmYZ#SeY&QIJc((>fz`KV%*gAF4u@7lXeo(q z>o%fd=pEhb!?$Th+6k#EAogUeYS!&#$=X0$hAtJUr5oBAIwVisI$sp_(+~At1?R=0 zB=&^2E*l8!Z=MGKJkL5qpV*%qwk--rO-P$$fp~PGt{9o0`)^>#nt0WoXkwi+Rsn|u z?l{p~fV}k1=J^t9UmQIoUq`U2W+EgrgfqTM5Nr?*0tw5%PXXMHHMqY1P0SH3*p9vT zPJd`6R$L`TZ3|yWBZFKOgAK5eTU>x`d>Xf!5XtLldErzS*yuijb-`P65_`mK8;#m- z5lR-KfS^JtwsXA`V?Lk`ou8Q>@!#=@<-P@IOWw>3ng>IRje+?W&o+^oud?%S7}w#R zP$d~*c!c7vH=7Q}GevY88P3aNM*%k%vpSBLS1qkoT$(^mpx$qn11V-I89~Z@+A{M0 z1G*1a?cqFhoQJR}Z8Fk%-}^sZtHW6x>}~3`68CN*r@lk&0r+0$qXp7X=(|z{9B_H3 zeq-UfZ`ra#bCX>WKzPq0V~#8RlwSq#+J%{Se749MgDg^OgnDG z947ZBdHPnP*S2(5(Zf)&vh2h3GG7ZTEVZ+7EWgn>9Q7*V2A!~b$>A*LGoH=`igu@t z_hYYv714ud?M!jUuZe$USg*elvuBDuVqh_9qG`oZ+Xh|F8>N-9_H5dUPi#bKXm6T; zc~u%;31(U;w&6>~fU6K+;%4Ub)irlM#-M z6Q>$OR|@B`7|#4}9189psyy^UA)nU+n=%Q%&LnM^9tpo3nrAj%3Iuiiys=;!z;kCt zmMa7#(1w~sSKNkH6O2s|9V?^l9$~2~_-_1leGUHTzd%r!Lan$Hc%hifja&HM%x+Vz zMe-gM(ceps`S65Bxy#=*_W8|owG9|H8t-_*q;CMw_uMD_L1}z$r;{=o^Q02lkI3_L z9=&H^_e;O?sa;9FLh=6U+yj%|XI0S84pP!Sf zWGPcos;H1}ZgRBsYU2o8PH?$2KLH#B)i%ONClg zXO&{DUWl&*2iOtAyI`@4^Mk#A5lBpHQ1F3l_*3p#ffrx zOdU@CaE?voqK+ot)KZFq0j2TQVYcUBgI7=6R(YeSoSmG;xUE6qLLtg`E-R4Y<83-r zoJ;l@3R?=bvR1lVz^QadX^5=&Cm$Jl)P@n3s0f#Y@?#VG8o@?TJ<>UMyq4w4FjRcK z!N;?1_#YK*umsqCbt9D4F$ZkEw;NF^K>Hi>dfBjQP5DaS$hvYzkxJqpdtPNpkw@6j zGw;CSy;}*!>4k#`o5@2qH+4e1;&F=asP60GZ4KgYy=I>pwi~q;0f#8G88lyBWs$Rr z$~=OHyD(R&c`en;(2PZB-N+ zkURHSt8##xkgRE}tbJ=O?Ubxt(B7#z0PGvBV)oy1BIY=rx87t~F zz1(kCfrG6N5Z2iHT!p51bsInjETrZOk1p8ltx(AH#naC_i7m1UDXF zKLV~+tdX&&5UsZyzfwRcq?C40^^W@ait>=we2pGsiaPP!B%RFioV5!)@8F4>cma)tL?X~<& z+BX|Qs~P!MlqJ9OwhK*<=Z>Sar^0i+n;o(gio&1eb?Zf3WA<>A+Hcu*l`PWV8ws^S zA9NA^ZL15*381zL5G#}kx~~0g=K$A-CE1}qs|kMWH)6(uyo8Ud3HLHU*OoUScLbf@ zQZ_qUbWIzab2l1py0f&WqmpVKu$morykK$-krlQAJ;927zH+7WWh=Gqc-&d6Ns3o* zBZq3z3i=McMSTv>Zf>>v5FU9))z%0&V5%;BB^FB>1ga1TXw4(Mk_9*QkE;=_8A+4> zbV3_xB~Q(aA>u>#+Qk26GCS# zL2_DdFk?YijJ5U)bCWMk$twn6x^G3DOvXez^$g_i`wv?j&%B2i8{K25^fgX)?%uux zBAi3OGUQiw_7EiMbXParHIGT+(E7Ym4R08btDYP5KtwFVYIRAro|4OcBk=C0L2vnI zGy-hSOTFMHMNON)L-Ora3}NoGd(!H5%W}Jh^1~-!b9FZj zl=<*7A#}xQw(h(-MH%rdMbMulLh~1FNu{ja8lQJx=OpKM$8F8O@nYsIfaDHUU$K^L?CTWv)Jo3#w3?ye5KlWH!x&_w zBgvAgE^4vX36omOlISTY)loD&ekv+2!N3LLT9qZ|T_t_p=IKTk`yJVo1EyuaZrk#j zJ0vbUN3w8~^L?~k7~6TJTwd(k{0e9Aec5kh)(kAUvA!KDbLQ_W?GcEt*O<$9XTatm3X!W$+Nt^~2XikE2x0 z42AKcLr8XuA57L=#W;v6HETw;O#TO^h_{`h)ptr2t_j6NOv$8bGNVfSMfVT#IDEvy z9KG_Kk7Ooy znAjY36?|{aBR3f495v0J@+pmCE(qJoe*4r$`p9>QwZbyZEuTk@FiP)6id-R3C0(n7 zP%vxZU;=JU|B1nVsn|n{zeuSF_aBiEH)NhMH9+@^waFOqs5MK~81SLyD<5?Sb81DJ zmCw2L7#+2Ru&L$IT)%-TY4B!$@XFnXM>Z&2+GcZ^d;1W-*+Gs(UD)@J>=Nn+Lmfxx1hS{CpUJzRLy+5CNz2 zC#vF>b$m_#?^JLn%xHzbq0SgDI$ee_V|qqvzwX(PfQY|li?G23Z=i*85A9i+^(>~s z@+g=mu%{V(`*3K3AoJdkMQfqc#cStt|Ay-iiglIU{4$~MEnBf=8jzKkOu-CuWHI+Y z5yGuLx(vRI#b0U73)--*J1`DCa{AzLR^@jpaN;76w+G_rynqrp-%bSrCLYZMZfG>8 zUG6^_u7bN*ipw1Ik_EX)Mhkf7k61(S8dO9RjVWb);O-aeEiQ$SI|s`0s1RS$f3m^~ zeaI6U+bz}T+%BJ=>GX=|u5*Gf#j9?Gj-GTo;!J%Ru-0V`%9BHu;qlc{TixRJf(Aa2A#2c!d=7?4QVRTEZSh z)2fC^Q7Wf=D9W#{4WcBmg_Ewzb+*p{zsY|R$;nZKjIsO?GG|A=OJJR*j`!o+xOq~@5T;Fv#QJzg8eke#1I)J zQfMmHZ;2aKM&o+C8TPg=g}Geh_hKFcP2e$ zeve6hxU-xruqQTm7Jbq{SSdSaUN80epwiVpQrMUO&Vq5u4fcpxoVfry-nBQnT^7ZN z@9_;YRohiXxTDs9Y)$P&J$pR`wSpHA#PRLwue!fL%2Z;Be~Hokf)(bVP*UH%=7GnU{ zr`HGlxMjrN!w!B4Vwx)ms=CX$tRa}Fo-sOmNbCT!dsl+FO{s1FZFyA_!d>9tQRwG= z`+%M|o7>#fG=>ko18TY>96!$S{k6aFnV#V*w0-R4?4&Tz4_)wN@b-##D|bMOG=o57 zap7bgto#_^=WaHn3Yk$qy)2sDY6};|L&N3AWUxZdHhMPd0XA!2_>JGEXn$nAF28dAB)i%j_AVD4S044%g7SGL$XC)P+b z#2vEv4ZlW7CKQZmBYM{(5P-Ng`rCoH!ysHodIC68K_;q@Q$oU>A8$=m$B1LY7zc$b z2uiMn?ZOjVC`@BEmx zGi=@>IIb+3KNvvb$^S=}u+3tCzU;}|6jLSp;hHcp7JPhJWum+Mb)Td;P#k+f_|@%O z_|>j~`TAVYc_vJd2-a?uL0#B5L`V^^1Jg!rEY=we95^Ba=RRZvXNa=WXc-%BF5xdEj zN6a~#S7vvj&hg9aewZzyo7(bVVyM9V^A;HEo(b||AQ`;X;nEYm0LVINKa!LA!`10t zyFX#vwKJz_FdnA41!QVlBrZ7%jnk~Z{?Y- zy~bfBwb@NJ1NKJU-EN+!Pb}C3*51gC5K#Z}f5OHWB3mbBr5_wA}h= znjW7+HaNM|yW9hGwbth2#2++U*An%0(wdb-9U$4>(9>Q*bmFbSg4$yeeO?wY*%Oh_tQxoyGiyW%>q`d;O zYj^FYsynW$t$Tn$PthfdtJ!zn>OV1d|r=;Fux+)K4HT4IMdne z+1EINH4>u_6UnS!uYPF_(drBO&f>nP-~Gbpu`5O@-8VT?cj^;)85`O7X5ieA|Mi1&&pW!QUFa}0F% z3x}vR=eFdaI)mJ-iNb>tr*OJBDbBdI9o(PTPJwZ>#jJFBDZ7?VjQ~SZ*pZZzM9?n`+2T) z@<;4)d0wLQ#H@MErIM|y`qaxyM|>-3E!k3og@G)begnw*OU0~{2(JJ(C9I%)(b z;lIMura3OtoK|dT|4WdyU%2TTSq`86gXTQC4zp5YXsyr0% zPl3qJX($r9z6(U)QYZ&qr^V&KRgI71WWxKz`lYvgU*Ok+syo{WMK5UiJz_aS4zJBW zZ?of5-oD*N?Y8F^)c(t<&11VJryJp#R>pk#(?6_aLd$mFwfVb{747QvV#~!{p61Ib z8*mGoCCf8E)5sR>D2q*qI;IK*rk5U9;nY#34BAlHwi`p0HnfwofyHh(Fq=}1P+*z_ z{;aLIxw}{uJvhPhC(f_3-G@*b=4Zt*3=Z|%*M#hwVc-=`d(WVN+!jm<{cG#Ooo!&- z)qBO|hrrvatdC1v-lb4s2FUMV0ClMacq)6-S<*Ppzw}IY$dpT}WTEd+RHw0SuNXW1 zU7El@MeT_=ot>E75Gw<({Z)K`yoT|blUe4qfR9HMcEOY$5g-`WQp~P!57VLITljDz zl8yYk>;5YWW+|5Aw{qxTw{m>s!c_##Sb5uwn?Q@3@BrGe)OpCo*3zqc0RNTJeG=?MPB)tt z*45{CGB$pIeV>zx!)<{sPcMZK@_lG175#IrOi<5tN3#TBX#iz9`l+9)=ZNVX6&mci zeGlZ81Yv<$gy}PVqlLg2g}H^@#Z?|g(vvpzf^9C%y`*O(WbKs$;)GIL|JDH~4+As6Ef}ND()*CW#ucxK35CL<#+l{0Pfem$y3EIz=193==d-?H7ht%1afFpTdx=F$Z zYWw#1Y>Iz_V3IXBn((GEVd2&co;e;&v8)tA#;1W&WoP`R%zM2j-;qG$-Us zMgI$p`M5!c3|jK5V`Kpz245&0>o%&lIJ|&#yt^mwgNk2uj`z5h-L#%%=dT;6DBINP z-gPAWDc5x-CYK%3cLAyoU#?f*(XUcV9z~<7q@Vmvw|u!@>8+JTZ%Clm8Rqw|m4)w} z09V|w3pzrByqQAL5U<9tJ4c%7sI%{-qh1I3yFLeiY`rD&c1aT$FtvpNXlYgLZW^!o z#F9Rst~LMH%P*y~dx$<{+MlEx)8#R&;i=2I<@**OmqEuK;7{ZNSt{uIEL;FmO0WLh zRr{~ESoQ_2;DS3F{ikNdnd}Vpq%b9nTVA8&xW0Ml&4E?|btbv2)NWrL&6FVL=s%?J zSqc7@@D$prTUG^^I3x=v6KL=EkRBo@OsjiZL`ou%&=If{xeXzdVl29@Dx%! z{l=I&)3(o=Dz6G^VN3UC!Km7&d@n3l=?6vLD5zkpnQI8C*JCr}#raW^agz-V*;;0e zqFo?u&p6U$?)=oA5BYNC`99B?;t&6&;ky$|dLmzxid+pOw3LQ%S@KD6mn%+)TNB~p zOwdhyl`~$krfC$5fIo5TUqSPklgXT!kQVc$?L^kX?DtEul40F4i5_v?%~U~V(Ez@D zd^fVipgC^ieXqri074Ku^3!%e>0?#FH@BINr^+E=U`jnY50t~dX#>+;XNwng}i^eWeh$ z3zW~`ny7JkFJSbdYUVpXgB&j#34N|Fsd0@qEVO-Xv(vPk1)8{}iv{h#Jl-LT={nxK zY2VTj0kPAVT*}f~WeqU80hEmRzYvh47Uwp>tZXM#Ct&L?V|y`q>7 zOqAfcLgy@qjnOhqKTG7SNR}^ z2|6o7MVdKFcnD-!INbzdF3|YJx)?Ty75)@ULjx3`i{+i_xZkvP&t{-E4o$r1fBrn* z(~Hdt89sw=LXCV%A{r~&E5qpcB3$~bRh*AH_j!a@tbPhC@2jJ>AV99N$X(nc1UMq9 z1reUqi&~J77h_!ht8PB?0~#5W;nQ*`wiEVAZq;i^%-16PUkC6hMbWX{*-?Bs852KT zR|zpi!dQWv1r6AULIxb+vIw}yL?2BmbDM#DzJfUFqMLixy`@|kUC`%zEAG;}I$w!KyoTk6j zW-(VG@u56Q*)8;?tn}2wc=^=@sE)^^6iEWn>@boR^s#W<%S?oOrW^dNDC->Co!g&_ z>l#L+2Sl{dc$|O0RD)2lP7)QFzh*S{b-K0yviqX0RcPMV|EFMDVRBuAQ5asfH5Rn$ zwOeucN;pA0{J+@6ia)tEgX6RT;F<+k0*5a^-;U>frj0(7P-`Q z|7O^LqJO?B!8k+K4=2K?s?r%R=&S)>@l}it;e zQ627pzsl+_NhaJhtt%7_+;%wnOv{&eRvis*`zckhlJii3?u*ZKsXuKe9gb%Bj;3{q32;p09iSL^po_yUIh{_6Q3-cCf8;$|hmTSY1W3md8Eb8lxpq zfGBqL5DP)lgA3nfws_7FygpFoRCt=mjPl@h-vtfw2M2U8dR|IBh4I&e6!T^;^7|Kw z&MOhTLsIXTWY-Bb#WX;b4P5)XIZRaFbBO$4mBlV&K=0|MkK>bPafxy9~!%v7^X6iuUM>m~V_ zHL}X@F^PQ483!6`_%KHdEib&WwL5j{nM$p62-3lcw+OCnx_D>en_)0T3 zjeGL11rzNwJRoy1{FIhlU=s1+I^<8EgBE)s8LdX);fY_AH*x<2JILUQNw?Q2W5vYg z(<>FCkiaELHovtFDeHsHP&ADJn+dhFDBu)`Owr`o>zI1Z&(jJxZBXye!ya6`1v3r~ z#CSyLUvj(LU-ut;s}tyI6U;Yo}vT*xEF$mF%US#4ll4 z`xzE@k!ewy`Gp|Ot%o1n+q1E|q{(hE*Qc@{)e|6F5C)U#VV>vZ=`xcu%3?CKe&h{=ekYY1y~<<@M60()5&;M9GUhDEC~ z%Sp)Ls+>u1Rduq%_Z8$Do$nsvUYhlqVAduQB*YvreMLY(r;ENlnOzxg}o2Wr^ROxfabCF5gcWYae-X-~BGP8sNeq7y;OpCgft^Pr+d<5%tH2OT7lv=mdxdLm+!jaAf&8tgH#?a7jbpNwPdD_Z;Rbg zr|4QKD{2_uwS4Q;ujO!7r6d#|c|)-sgIhK8^>#Fj8I^tcejp*8jH2Q_tU|&7 zbd}lM&T4rkcK>f!#WU{61nwPSo|;VIUQ@;TydRMZ2fanhRM>H)oK@tS^V%k%$0UFD z6SRt1_hAR{t!RZldW!UlL?1jn40}j$!%g9)#k6P1H`evWQ5ASY}8T` zePK;q5#laMaM`fB^X>f9aCt55?C!P++F7?PCv2|ygGViB`L1S-PeWnN(ajHRCKmDy_j>G9(;dc~}vsmN^EHm6XgbKVAt zt+M@qfV-`H8ff9}5&M4mp_}ePl`rUhd-3A&S#q^iCS9wxOEZi!wdNE^h+m}>0~C;< z9)|H{pT*=zkhCC?M6~<_yS=0FSvn1DfHxJXA<~QTLkkDcVZtue2PzEDm*KP7B&MH} zx3aChGZ_*&AU53i*Wk&jI+*=hBVm&)QZXsCCKBi@nt-z}w||IdaNYx{H@{0*W>7gU z0tSspV9ww^ zu#mi&+kVZYG_EvdC&xxY4q**U)UwJREuezUCr~z05k93bpS^DncTWN$^B|7LUEkJ% z?uoF~N?8D<2trb5BE#q4``HU}ySO(Ary^MG@3Z3wic<`v_gq=`kI&xmzBbkO-G{fn zw3x!QYGsbD9b_rZB-_s&gg^GF%T#Ue z%@`XAJbaHaeu)wlchbQK1eJhx6?6@+%7--2W#)7Umt3(Gr>#{}8G-X06yGo7i{v@x zGv%M!Xs%~QNHz^L7Fzw-F8F#ehC%1atGA@_Eedm+#KMmU(Y8A{$=_T z5|4P@!}Ihj`M{!Q<{XFlA`MikrbkxE7<+TdYMDUkAb_tH(ar>%We*^*>Qg7}C9Ocw z`TJ;2>4=8f%`_Kkuo!L& zZpJlkUKk@ys)@1z=mVXDsf|KM!I`X*gBZCwlsT02L1Cs_Q7t=9bi3D4x)d8-?DgR$ z^o(5B72DPGn-R}`#Hg>NwUiu0c@F+xW(u9M7 ziaeEj)C3ER$qGUuyZ=hDJl?jXbB&0ZcE7s&-jAA$O?F z?F4fy5^@qze5ulfZjz2PkZu-SUr8@0bo^dued296jl$?UwCnRiwi#e9V{#H>1|y3a zM7V5wV%2sLmr#x#)HdR`g-)o;mGRD}j*IdWV-E8wlpCdw;-V^{f3baEA|Wl^)rViA zS9FHf-hW~EQ?rr~8{b!fWVyV7bqd`NBf7XHes$+(ww%xmCY*yqQtATaX4J-+b_$+H z^UAc~V4hC;1!G5<@|sz(h(G(SwhwD6bKsg)H)uU%Df~x-m2%-iin)1S(6M9sst6df zYO5I3BAY4~I?a8;5Aya?zg}%j%J@-QXbX$ub6Hw<7>4dRJcT${$LjEys1ptQhe+AR zD&(*6JxUc^&gh~i3TZl%H#+L_avyj*Ukos-)mq0E8L5~xVuk+}G0__H>-hr{(i%vF zp3UR|f6+<#$1GY>EDW5DU`}_8O-+g?PvN{_2iiyJ$XzlAM`+Z-Q}mobsqKPLh5XSR z@r_?S0y(uf2HYGN8nVfO&Y$Z)m5g)`i+d9$EbV*k8SS->CF{Z7i8l7P1T3?Um4~S| zF`J1X6*$PLi;ql8YMD~c5Yy82d7vhar`ArG85C}F#=>w5(l)x_5lIfO{j;SX!|d<0 zJl!b=mv0?3vY2)WmKU!uHEsq46l4;hVWe=VN`A7<9=Ex{F^|RZh(>*a^zQe?78Zjy zo)NuNn2dm0r2eq9x2NoU_rG&`J|7-L8INh31*fU2IX2@Fs)z%~p;o?cuy@7*SPG;x z6mqDwMm@1cf< z6MMJP+nt(+H>u9I3{GS$!jc(MH0w##GXdYBCS#;<)k1jrgIakCIkF|LQdz_?-oXww zjj5@)>7bc^?hqj=F?Oxz$#|RF=g*A3*&BX@YHxM44JSRC{A>T?R9(LGoG|vP4N^#! zhO>@pLD$uNs_yHv-AqP_8cH_wYW~f%|GczG{(CS2}aFj;NJI!Mg|YaQ}`Rc>HyK%hKO*JQx{9B1JU-e zE4b0q@TVz;2Y%tzl51F{MCKc8X*Yg zY62HczFw_QoN&Js2^VtSVM{1b!_s(5AXKDUroOxXWM%0S3wg1)WlcqeT6}Gl3DS#w z3=lXxz-J|;4=Wr*t4n~B@$=^~=RBw7I1W~0kx3x8e2`AD{`(kIZjTyR)v(XOUd8tM z8hY##7lq8SA?~Rzar!2{wrLCArt$&I7Get-cVbbUxn5tnWL3n13n0!_|AN&u zbBUpsazeAozwWXTFE3Snj&~9SQsJeAbjyT1AvBq(E+2@JiTWx28`@xx(06mqj zKCb75v@g$cE+17x=O$8qi(DtmQzsDdyDAB1*?D}Rk&gKnb|B+_n)lLV_i{!L*YKUU zF|43z%+hd*59iMPg3vyCwkcQ_gFaN80lGg%R$(sHGjg72jeL|oczDpB03sKH7COwe zZiD=En8}zkIhurY1B~m%6fx?Y;2#(D?mHU=T<`p_V71uLK4Y4Vq85MKruGWHA#CXb z@(9KMn9tbvp@xNS&&(a zix>Y{)PUKuW}vG+9h?8YlKb%SN>`u_kVi}=9x>oCsbSAQxX$6CRAfr%NZn&bpQ@(L z>fzV-%Ff*rw0ReuJ~>F=M+=^%?xqm2O-<0Bt?a+)uq#C~j~s=x#1tu7Zi$9h;H0+Y zEKKK_)Q@)Qdo^?UYQQ~Ci_IzJPb%02u5T8q+pazuUb|*rOcN7g5*kFXBQhuH;UR9G znXx~c$Oblw^3>BsF%}kiMh9Gnw=__aOGeC&dj5cs(u-;EWn^=idHp0&mu4cb$*>gU z_u;h>i#5%w^{Udc0$PQp0S@Az(~R{h&{)pgI3G*|+QiiPnK2AINYTSqgL!PkV3LRP zR2>d)K18ZE4I4_l9;-nn)BX^s3p1*A}JKIZQx&oNOYUZMmw5{U#R~exu=H#OX zoYPo2<J(M(r_ z$nsmR4YvM2B57w5r2h&Zp|YC5Ok^6fE69@y2o7*u(T33&Xr9rEzxWHXf!$2}u9x&} zBLk4%eTTd%4P1-nsRJS_6kc%u{3Ia_1Lq1{-g!mOv9uw~c71z=G1>V{%hI#bDp}ic z(I|oS)}qt-N|8*`RPjCNV5iM92zpbxMpmf0YVr7h5IY%e>^1m1;P=!ALB7;G=|nTZ zoDOV|&dUjI=+#&%`dKi8YzfD`z}fy+*nr}ck*dx{WHXA)U)W<^QXq!+*K4*C0?E;( zX$>Q;vHiaq$YjuK4JhWiEs&DQli^=`J4Tkf6;E1o?%?l@ziDQS^5#|>91As>Yc4}m zt6fgr@mHOV6a%Y}Y#9XT84~?Q@M6fB4<;dEookn^yn<(Vrovx&D;t^JnNWd-UI$LB zPm2X9J3;Gq1r(I8f-rwfg$2alax$EHj+QK6%jOr}vG~kF*h9-oar8G`Y{J+s<4X57 zNM8My(Dq_YG?Sh?P{kw>6=d}ngWE6vB0gmecrqtpMS_&^44QY?|Bs||aIfS0x_BBk zjcq44wrv}YZKJUpH@5A@#*MAUy0Pt~QN#CsfA2pqGtWG8&g`@ITAx)Cblj!-iHD$l zzjmT?C~sTsg#2o8i$Hyi?25{##jH2xEf&Gkj8+!d zF%#W2d$@d5vf1J2*LUAOI?PAWcDS%httTe6Ue$s{d=v{wqYrhSf`5t3&>KSjI)D#n z8*Sr&3iDoL-9B&1#iN%q#sM>FN@IKTQjUS$5>zU*tZ37>wNT8&J;v^l=(HWpAlja^ zvEfJGGLY%c?eo4gvW-)21ULC2f`;$&joT1>0BQ;q51Bp-S6W*pQF=jrPe>}cxsU{> z2$%Mq)IUAF)Qn?hDy!w8Z*MXb3wOIsMI<^r8|zI-{Da;}2%22M{sxNA8+eWL5hius ziwIN}qpT$;E$8PSTk4;f4*O$`)yq|2v|Q?wSclzwB}pK1<656zrD z^5ARwS!*YeJxbV%T@oBhqSj=e5Jt*_^)t?u0>*&eYP1Co$+_{ntyk8^ak?R0cDH3! zeu5!k3hj#L>{wU8x`Cd@aP&~YOKGvY9cVI&HIQuaspyNo0^qbDm5YIX$74Wx#1^xv z0Tuco2Alb=iE_j7usz9BpN1x}Bl0g-*VdL#w;@I2akYuNLqDjQKzF;LzUibcIyd_jIEiFaHV&NWiHj(a}v$nYKo{6|DJ*$oLB(9WP?pmDzu}y7?VAeDp*~@;tY4tkc{j{#)$#C4o(p={f!{Y5Unl;41B=RGQ&`@tugHMIpPJIp4*?~0+52@jhkY)57H+y}7 z#YMSu&|N#`aeYjvRH`4tq#y@6in>yywk|O8+wZG5R5nR`giRBdD9(_f4GBg2O;eOB zXG>c@kMB@bVd4WOPUBc6eDRfG_d#JCe_tFTh;m;vCC$bz&az2k!nb9S>d=da-Pu&M z7`W;gI35YgBcDyW`Yeoz{%OjO4rFBdi$T0ujpQL#$NO>41L^{SN#d>fgFa6_@;R9s zy#dir$b+BkGV03G)a~S+GMKV4yw5c>3nxVg)nSgUg*(mI`DMU-+5tJ2zXf^m`vN&1 z`Jp}|0VE?e#~5l-PfFNwo&n5x{1$Ig`JLP(%uhSJ!Piu6tfMZLk8T&E%kNi%*ZVm= ze5p#uXZq{jO~d9{h^E@MV%`GEUXF!d*i$>@F>Cw*LY1aTHl#75ylLG-rjn`JTH2M! z>gDmAsb;5KMC#55X3zoBy=D(tN#ex+Z!bRCDFQND;Tn}D&i>a-{@k|$S`~ff<|MGs zf3ewd<2Gy2`&$UNtuP9QlT7Q9z!#++Ldi+jvU2obKuuSLZai4pdi%!;;V*M?70*{I z<_wVV7k3J=vhg6odLAj;lQ5n+Xj6c*iy@FYTLeo-VPrik0VGBMSW3AR-Q?(M6k zXB%Jnj1XJ*XD(lkp4Erx=q?+6#acG+#stioT4-^iyOT&^FE-Jro9aU^aIsx0eFg5w3iH~PP9PaqZJ|dE7pP)BA6lF=B zH89bq#azhN^zV-W^MMUJ$+?<$S>zgu!Y(n8y;yDcphD@m>ov^OZ+d)>lAyoVEW*yi)Y-_O6^;QLN~Y^} z+#U9+KGqt|`UE?C8K@Z{yM2o^D@(XQCv44Jvz~#uO{oZ8l?Y9*`6l*Cp8rjJ_bl<= zyOVu|m5-D84*RTMHUy%#{nq5gGN~SmZ*O^6vOUXDd}Jx-$BZ|D>xA!F>$!ZTh7`+T zRB;8a?pJ(Ge2`tFAvvG_NbFmgUf=(YCNGS?~wgb={ZymaI) zC|_9pv}lZRNXY|%JySpD$){8%>HDezKRIrRZWWp{R*Xi5sO8f}cGu=$ts|c659rvi* z1rlu7exXn9CY@T=h^|;^{9^koL3ebCP3cfNIFO&^m6o+94O!Asu8aJ%N3XehzWCmj znCGuxQa;+?N9;v@puie=+i;V{H%{hh`v60RMkyb}bcE%Cf$`#|R#pERQDOz)%v2i; z)6F4kFnPU#)xcn0BUEC07;BJ#RN=;_ zwLc8~+Dw5Rmu;m|v?IU*u(Vec&+#K9uz=#QyLo=gLbrR8`|p<=qcm91HtoYs5c^1Y zkr|Rt%0LjoJr{r7dqC@=EVx`Zomq6&;3m*e)WuJNyA=ZW@($y;J9}c|w9F79pJtU` zb)Elp5!Xr+bt@ovmcv>WQwmO^ltsBNLclFr7a?;c|8l7)k5)7@#zg>S!=bN}qrq|i zuZ#8@QK;eP4#R0@Jb}XYPIMvaYh4b>J?rLjoNnLnWIZ7 zGOhDfXoy|?quk10W_;?PwvcIrLmDreYMz|VeghXv{h1TnoLTv!)ou^EE##I$*9e&r z4u2ptv)0U0%+{p*s=UiOEB%9P@rb*eNCEcWIL@sYa0;>ZfKWFCHCyJeNH+2D9QgC1 zsE}UVi2Jgj3R}K7l^Ig=qyUgLPb?=uTm)+kcf3Wmn+8WM?gY6tJJ~Gv-msX;2%I3V z@Jc)5rzr|Q6TKgGqv_pcO8Qk@tced@XE}EI_^D_e_e=c1nFxFt4L^(qcHLy2hg)AQ zI0D$>zHA?v4Zc>_dunz7-P)cy+8mX?#n6|LmG>vcQ(-zuJ7L{9sP|XHj52q1S<02n zo=!=G{4c+jy14vLs!n(X7Ulog>rwz0SxOO>+hx9=lN${=P372R9@cVdqKpV-$UdbN1i z!-PXdVZ2Dx?LCU)GuOgpNjF`N8c1JAw3I>PWV)#|BXy{hz)oJ*(~6Zh7q(v|DV^&Q zMs&s;yEu8*%hVW|jBo8I{|-fO{s1YqQoCMg(Hn}x3=F&G?Z~qvq>R*Nv`Ey4Yq_^C zfvS}CIN?u>+~DX;lMqg8{lXshkvdT%fD(RN%)DLgjFov?Ln$&3(pv$G5t4<+l&PD8 zq9~oRYX$_S-OAJj%Mr_n%{M2rxS?DZQz8r(rpS-Wn(rBFmDC>iD*U5HARpVVvYXs_ zR-%w`4s0U-wSc)5WrzMhQ}?&w$|ZFbz9>HIZmy?GTlBqdZs+uIK?qb4cpXQVvjqyn zF&1+UlN&52xOLs7$d7I=xka`{^#Nv5_3m{~8eTgDsoa%;c@OO$s)pb7sj<4Blb>_t zL-rZjPd3%PrGg(qmI@)hrOVR6ziVT)usN*B;dI#kOreV9h#bgCGjJzA$s#i{LZGco zS*lFgfA2o)f6W6zI6wwr#7j9!P5BGKQiH(?qf)5>4%`cnf07?!N!SUadq^xkQ*3_p zUNW>w47^D6eD2+8B0IdbIqVZI+R9Z1J@nVAhZwZJ7q#>N1eRV(0&*DFs=Y8&_ zVS{QM|MNtV#qnM});9gTQOa{6+N~t|t^Um(%lY*}!$dlRp}Wp*3&QtE{?;4@WPsUz zDJEKlLH~8>_B9tmz+1?gPbGR=7ZW_ei>{D^7l4b2!-yM zLQ2GPd*Wq`$4mDQlUvK1Yo&%-!9cgAe0a!~v{dv6A_ZSQ0r_NPCqGc?GaimgUhse{ zdv2cGwz=K5Qq7CIkQ{oebQtAC)x0fYrBjgKcu?*^^6LX3!U~%5kk7xt$Zfr$Cw!#d zz$mE44HoKe^~PK9g&*J1N&o&&g27vF)kFpA(225Sx(QSJ&cxV*lwg58f?^jjI6QsA zA)usW;!NlB01|cj_*hqyUWr2Ieou*&6K7Rr&K~A`Ws%-d0yl>5`q2F>>2F%@=9ZU7 z2RhoM2Q@rX+^b&RJ7?sDSWWmVAZ{Y?3(^uP<(JM`2^>OFi z;k?P|&pzMio7lPfX`*ADofqsH;@Q|5j|sy6Kp?~m-}te|!Sb9)ql@lmLwtwcPwe~FwAcZr=fki$3*Lr2%_kb$O?B8>iA22le$Ch7kwiP&26#|D^yB#ighs*>mdPGA zu2E#lTJO2SqFKq-sl<=MV-^(;H5`cwl&pa~^0e72w!{i^tiR@W@`VxA)*ad|z;CQ* zuM}-fib%~!UD&DG`b3b3o*brZ2(oh|efc72r!S*;VU8+r8q`QKzgJ=!VANZt>9KYZ z@F@UB36#f0@LAFk#gi&`%0j=kbqRe5l!gO!cKg8iChg6@>sF>Qgx;JMA>LHkW+-ME zONwI@Uan^;ntOOPsve;a1r<#{pFXoZ=TbIB&_2e&u6cBaVKoRqBLMMQo0iD)8PO$x z?EvJgVIZ|&2>Zg+!S7qhuUrQxdJt9t~G14cRfUfRS8nFNA?5%ka?ZN%k15Fep zKR!q4g#QZg(J}m^$%7;N<~jfd9c0@eX~%F&P>54iR=Xtouz90e=J?WeBFgc$L~N$O z^3yOHUKiM$Cqv{4M+Y_Ecj{Pl%A>d;>C6tkDz-R++0*+bx{s$@TRhHncUb(R>Jf%Z zT;Vy(a$$pkAhbF+Yq_2RX+V77jV7T7gC_n|_o?;+rHW2Elyi-&IW8H{TAj5&EQ58X zsx~^^dhz?|P6gz90b(vpl8$A_UX&qXsnx0|hYY?h3Bn!#VC!1nrcD6-uW)YA zn|%==66r_ZD%T=2U9&3;)5_aV-{=jA#TIITRG=Gpftx?{1j-$}#_xZB4I^b#qBcH0 zL?YUk{5o!dEh05kNDh{h3llI!W=&l1xlpU_;FzxS(yb};LwK(nSYSx&W8H$XEaC^H zF_BT4-s)s6l=o}uv#;|JH*gpHnpb60vN16T9dgPfES0LJU-};&S#YDh0v!rO0;CtQ z4_EjUpcw?T-gmHD#^DpOF*>KwQ-FQ?36$17cP68{LR~B`woC5=ks&o&sWOsQCZl)W zA_8#?ewTC`TsPy>?U-E4ltDtP&iHvG0ugg@&&X?vL>I=bop@4}`=oLaLqt?E{L_Rn z2vnZsNX!cQ+B)+AQ&v%-@mz$uu@w%^e8xxUwTQ`S%;F5`eG0|v)-0nK0Iozuea_pT zt_QhAV4t~Z7G8njza5OI*A`Lt88eFPLgjgYFP5m+V7?e6hB$*GAh~p#T85Y_xAmia zKQmSpU%p~9D#4qjlcV_8v*?RdUjHMBS0gJI#xW5=cy@pQ0>PAr+pz%l#hw@2)zH@} zBr_>Y6eP&n(IYwGiCf9Y9S3Oba;16ESU=TV0A$1XTVr@8W-v3X=-asgCS}IG7}ecNoq4^M`mCmPr{P?UhgV z%d0KMOOkys3~V#xMlO>5`bvWKibP>2N!B+&+ij8s?C^9uMFQ8q5BL@%HAq)SHPSmK zcHUwBp!#LH>W{V<R?EmtiE&H9j6T7%t_@5}xq4Ed!CgIMF>f zOJz$Y(a8U~PLku4q>tvtrmWjd_I!Ub#s_`?HSv0O#IU*XcUdgp(y8q>@%pxfv)|Be zorJZiPNr9$HedZ(NYL4jpr*&O}t_`u) zg0G9D*^~XcdeiUrpJ=<~lY%VUUFQLni}~IJquR2?v%q5nhM9Iw*1+jln@7^9n6Myn zCYyAahYUj7&6xX8@pky_KHU1j{Yy1+X*`Aj9PuCPJjdEWqd`;h+O;5lNfXTc)jwYx z=wS;U0m{iJ3kTJB(I5j8jDaRsR?ifU;gc8cF zL8DOk^{k6&e$AZYVpfaC+3jOp5jLZw*fK1eWy!R#$SQlvAc~twaJa+Ht*%SypP{_h z!C{;XtSFaU-QnfT&>=8qLf-N@kKzOWcNQsK)Hyg%vCOp0b8%FqQ_KJR7*PjespcLJ zq@p9+`h#7KRXEm%z5|n?6@$*aEIo!q;rtpaM0}~<`q6(oo+k(-`TImd>!Sv|AN>es zp*X@mwV$xHJzuQ#5Y5bDGBg*KCXfn}kN%Gz25lXU!iA;IFx{7@d4%zS4qx6K;^XeCD|4{XpOVmB5j+)XB|p!$0lmzP z7!bkfD*t*3R2izkwwxP>RZ=}6?rO%$II?C3HpmV7!MrSPg*G;x%KGdXQSM&W8Fc7; z%F=|tZ)(rhByR)54%wDLNsY(idW!7p%DslRIbqDr&d)@!dC`zLgRLAmpqbH5`3tj$ z_^*U;q1lYx?7@n#tY{15L1p~M0GDCAWfA1`XPf>^QD1jfE`% zhS&ZiMFduV37ARk(UDIx%59uge=vwJEaCkUW@`^10H&r?DBiw0(R5=kJ!gWuGor|)%6lNX1|mIIjhWP;!%Q01agTnGR5GN>Z)+m&#;@B!5i z8mSb!3@kx=I~D|cjwGfznF*~?^2uURMj(VCLCKp9)5d5y_I7)>5Cm!NwJ&DQT9(LL zD=KXG=f%`Li1ik5N(;s(49~l9V zf%;1!SyY4`s^7Ry4tdq!IW{dYe?>#Tn^Z57TIt)E#;v%n1{jdR@bE7EyZJfnM7r*{ zl2I*r@jDVSXx=!jEWi|k#5H74!eE??SCXjC!ZX_MQz8R(HIQ;77L)V`G6qfUi?IXA zH+@)5;@FKzc0H4vh)E%CdR2@(B$mTOjB{&maMGgH(T!@eFSe_Rb+!%9A$S8kIT_J> zAcOEFlQ&M}WCDP5@T!u0GZ`VhWfp+4O7moD{*HsEJD$sq*wkIh*Rbp)ge`jpqF!|q zkJR-?#N77?`jmb|5e8ldiUYX~rxJ2g&?!Qkgq}#fgmMv?Eq_Pij?Xw>Wc>IMg*_`5 z5GaV+(2`U7PsarCfneCsMt))B$bDw&j2^rHCB_imFXY$EVJ$^DeX-f43-xX3AA+z*C4J?XnrWi!^TqnonE zn)=hnr+=>8yyYNA=#j=OK9DIHw%12u4PPRT%Ugmr+2>ZUb?d|bTXo(XMZ1mZ%}Ap$ z9Z?vtB;cBot&w}BL_BFPW(hqU%0h%wXjK%#pBcC9PI0ltQ4emC3D878vidAm49rIlP!(9NYLrtspc7?{jtTMVVv_CHy^n|?M|FPByx9Uvqpq1X$p-pr! z;rK0qQgDlK-O+N}jOt*Bh$+F9nwHmoqjC|JFrFm;KpfuZuKdF*^$Y+5EM0aV7#>Vb zm$fV5Fu09%ja9pd6kA%%hB^>+jZM-^0c6UZ$)-YvmLpIGp4`GE4ygI>?l;4LwrA z)b?yMb`L@M@e^OCv!82Y;f69|Id`!jh5L8cpAfgYuC!czY7NJ?cCs?Z<-lAjzc*d^ z1IT?|$3*yjVaq)(xe?|T0ngh7+%|gtqSWGfYe&hMM0J82YDP{uo7>ntq{jAI;HOZl z%&K0_ibk_|l4;DfqR;p=vLP8*9~Y4ez<LNJvSg-A{9*rVEBm(iPBkfa)N1|I8jXUw zqy&FZ#F{CDP^AeHv_~w+BMfz#w3b`n2c22Ri|pGk&vVNqrW}1u5~{!V1X}6Ux==%W z+)r^PW3(!whA*?Kx}Keaf7t2gj^&n$C_e35?sq46nm;8q~CEsA?r5AEh{on92Q+D7xn?fUD-WN*- z@ASaioD@aIoHSIkL37ZyIsR|B9~x!H2Ezigq9fPWOCk$hIi5J zxGz`;N&t(;SiZP|cX56TFgCD>jbieb`!}K$8Qs-+^2{B!AzHA+lpdj~?n5-Oe*hUr zc+GrVf(R4y^>OO40@;DP7i!<}->`gLyiyDRtaiZxt6f+X+sp>__?@sl>^YU*wstee zCszyJ)b!hw%2nT0(NM3J(ccT|irxA=5Jrd1(P1pOGV5hbmUBSgf^QrfF*MM6QRTri zYKR#*=n2!x+5=QtZ{14;j|k$!&!o(<&oucY5J^LxN>J)j0}7jChifOxBSPECSH3RVkzG1N4C*a-Ig?vHKI4%62^OVL<;e!%=8*wb$ zU+uOLGLm=r8P-kGvxRSjBy{+GzRdO(p{TC(xYqB^oTeUs8Kp(rV-cgGo zG(q1|p`_tG9BKn#>#np_)#Lx^zrKz}go7@rQ30Xp5G?kEBx8A!QK-Zwe2?NsieLYA zfMCy()=^lY+CDkE`P4ac;)+i5si|1!B-CE~=*6_AJoQz9(q5P$pf)**j~V@*kR>Y` zyv6S@ghcYGN(OV>@U{xD6CkSuquYV^caaN)UAKcF?myrMo6GimXuAWjZGzCrhb?pvPC6;I=pa@{t0cYgi0t7dRhcApClayAA;Wj1IUh>onv4o+i)C}GxYboCm`$vael1{pluheN?de<9HR$)rYIK)vw6oVO zX_HjpCc{yHZzc-f4xIev|7sG<*diK^wLb-YXTMu~ZRU#>;hLzeq5kw7$YeYiIlQ&;hOtn>V!k7yB0&SG(2E}&)kAKC!P6FG}Y8|k)|kwq5RS<~aohl77^ z#pId(d}UO}crZ7)|^MaVHTY47&>Z+k{62(hNBIb09uv)hlD{&+kk2 z$z(JYtM99i$kwu-ZbMru5q`rG0UoMR2#%&Z{(N!MZkZcbcp42btSz zK@yYc#__r+Q-`^~VF#eHfs|vCiP2l%#rG4YCv*J%apZ3Yc1;cl>|j&Wuo2BjsM*H- zE~xlO-^z`<(yRY2U3T{(YD?Y(7HOx@KEGb~yXS>0DG2Od{bBnJGCpW}=ya96`{Rx7 zb`xTWK^DSpEElVz3`fbSK>z%JHC+=R+p7ObbBy1n+}#0`aigZidYr+g23NP^lsF76 z?|gsZ(cW36T5c*UK*D}X6?emW82tNoL<2tW#myv->7M5V2D`UAYLZ@73r)6#xorsO zOMOPasGG%O&7w3XSyT|E+ip1;N$41flBJ7#jupZ z+g{vgiW?0JnMCaA1w;K%dyQNE`ljIzjonZaR7NJX%z-=FHB-XmW^Mlk&D@4qp1_G7 zf#ErP|7oOZsbI&zqkpg?qtkrVV~z|fCi)Bamd)F}vNjR#+(}nvJP+)~=~$X2kKTqBZ3M%+qJ0wF2q)0QwUV$Qy8^f#SDSl zQMml&!f#6PwMx}1iBAZLB?88hHw7Z98dCsS2^g=CH0*G^sSUK~<3|F%dC0r9&$g*y1= z?sCJ9rc+5%Yqc@VNLaa`ah~a(%F;{X^j024MGPPv#8N?xYtAqcchFwJUcoX{_%X|Y zTc6v$j+EzodUs3AMQ%$bMy~zn!jQw6v&IVA36z$Uh&>V9K(VB4V>U71ltvT;tVl3d zm8az`QQEpuh_$4MWz0P* z$I`|vgXUi1?ZYN%d`IYQ%*Ht>sKGlFSi9|_i*u!x&>z?5q|6yjbiHOt7{n%&c@6*QGCV^7XLI24C`pp{W)DI|G)LB|3Y2&%tCs@M(x4#(A?qHH1lgm$4O9X!cnR}fN>+QYv~LIaV}cHN!*mW( zU>-%A?8+cxa*LlIQQM*Sk;GQ`l`-@mu@PEK9nhLCLg9Jn+MBII2B(oTRwtUYR-J`& zZe6^9#cI!TOfQQ)Hte`}eK?WfN>e=2Lf&D`4#?E) zS*{OaUZfF}C6Dndkm1H;T0xe7el2 z1R_P(hxA_WB2epZe3tBcw_nO-Nil!XWNQ=)dn(_+=cGkPo9@-sR`ixZkroM5%!YjN z{%{Yru+zuT?J(OqS_#KZp-DLLbSz=-r^g-O$n?IUq;d6j zULk7J?+9cPC8U9}HS4^#1Olh%_iF9VgPv;X&e~;FN-SWj8P}jt7`Tl{`j+!y4-t*7 zuf>q4Wy2204PQQ?c+Ck0&hhKQf zXh0b<*~Sc-p}kX3gqirpR?s^dyx%P`|3M2Qr;nQa98oeq39ETgP`rVkXCp<*VZviL zqK?^gCCb#2_I#axD{Uc}Qx?7qnk@_3(lKctu6k(I@0#pwjFS3i(j<; zWoc5Z)-_`DwO@i?*w-o|GAn>{7%$X)>)c61k6N>}?c_BPxF$GZCr`t*Mj~B!vGeC| zr0c|!awfXg^Fo8!1t`7V_6N~gtl##}Qypa@lq`bwo1&x`tN9p!$=mLZ%;lFg>js6c z%b=zvQ&*T^R{qIcrGb#4Ns{MZ8@NWBK+!to_Ex^$+CU8>lv-BSN&P{!kXq@a8nxAN z34=Nqy<4C;U0mTeb2`1$h_3wa|88vt2uNF=?f4qOA1?$3;2 z9i(8M>*}@hez?ziW_Bn7jUlEQf_)Ah>%K<#4ld2kd;(Rut;Hc~#)zKL6FqBkKmMl; zftk?JFK;pdB=7yy4Bz|dv}MdfA&P&(xe+62h!#kK9lBmNV3`t@*x3o1MC@$iNjxn? z0-NN~FWdEsb4l_$g5$Bl85sX#Zk{+xno9S%bg`7mLd3L_<}ntD-0vIkQ14Hb3B)&KHnUm{yqy5y!~Ta`@7yzHCZq~hjPXf54HsiPT;@c zm97(Z2|Izu+i@Gw1Ji04C_|yUCUh2#K1W%}FFtlp$Zbb^T3D22ciuLmy{@ zL8s^25kWfr`a}HvzWxK0TR^o>|N1Kyu~Tvs7tgzi&Y?t2Nc73$w4B)NqU3RT^!PqBpC!40YOuc0gP zY|hj;AVTXlhXLKG94*Q8EZq`xk=zmtAsg2a9rqZ&7#t5UB%Uob(Fx}CNJ5$<|5y?r z)i7#voi>Lf&n(nU`6j*tI_L>lD!1-BxLyd%e0twfXZGRG22Xm?k*psc$6ogWj2wu@ z(`=wDgbb)vjVJLpkQu+KM@MEA>HUWMJq#xQ z=7)o2W0PIBg5Lz@t^kY!9A2#h_qyBY6swR2xSv>evJ=Rr=8~=VeR{EBTEEOOe3@Q0 zi8k42qB|Z#A>8cZ`@(dnzQ6Y~7EK8Uc0z!0yBTN_FyGo3C}Di@TU{jD2&6Rij^LCd z>FXQC5bOgF?rR@XRoaD)u!TWg9BY-6UvIw)E1*Gefk=sN(w>T-&_FIyaHRVtIH@Vo zy8Jzc=?EiaqW@{4y3iGT;?_x zk<+Xa0Uv@^ag05IWwqv^^}`tM;+x}axBXWFFkhI|4VRMdh#hC;U%Q7~CiBGNo*3Zo zmdt6*XT2+B$Ju7Y(W)?QBIjO!!GXDBz8AUaaPEPZeu0UugiC&dU5pXDos)^y> zxvAN~+40P|W=97jEFrYAiU}oKwnXtLLZ2`5#{;ip3)7a{&y%JxI-Wy>Fn0H?&S|U9 zujO5BRsy;Mdfx9)U-IDy#({yf4j4S)EiYoy+yop@`el9oU|vs1+&IS0f(4hyl| z3F&z0YTw?;bM#E%!8W^K3i{LML+>3Yu&Lk*l)N@8Y(h~2D`(Q^*(qYP74f|mOx5K} zP#m4b;;^kSCU3^@m)n?E{(L#hZ*x}>*Z+gdprjdPq*;06f|=~cvty5XR5FcJ8Xl&r zPy!3W{n8ZKZ57t941w<>Xs=o@rB0pcvj;?jXp`o!-ByhzD2ZiZl~mOMJ)No$Y)T;< z&|H7_bn_t<(Eq_;H}iZKypCTG;sGU!+RER)ayMZ8bkd*_L8ckHJ&6081J{Tm0FI)bX|3QLceOHfx;lI-z=l;-oqsJj9B(5JXy}UDxOtT5 z!<=dg-qrt(yv1^(hU^GCuhec*lNyzT%gsWM*7*O-M_Wgo9|K=jG4JNvGR57z@@YpsEZ+>@!d=(`;p-#00;d`K$woS%52)xeiy}c*nGb%Pm zZhqBQT>JYg)OOvX@gaVN+B%w1fG!+w2vg#E{-08liy zc5BQs9)#DIQa^8wUU=E25aY%3!ji-#yshRumaT7z)e6~xO7opCxO zj%Jd!55I(6A^RURVu?o~tLBw-D#ax3IGCO+;{}RzBGP0HH@}2aE=d6<(hM789i=Cb z9F_c|nbJBd_&or$0`X$TtG*GQu$lJ#dEbpFqEm|K1YpIR3`IC>&x+O9*h19{JY> zbi*uG5XCjBe-wSmuG}$no|N+Oa^&ZGt_`IqQl;OFE3ewN-TlxG2J9%UEr$Cyw`XW; zMS!!t$Y%&^zqJdIjZ!}eYoiG*ixmha&%-3O@7#WiOATP5H@dNV5$g-iV8VPC+0g24 z4%qbXk)8Il5sPMbMNeMkaJ3126%9g|DT@|Zy@`O(kYm#YvpyTMu$zaNt;N09=ltDq z=I0j=`Ba4K0`FT5S#Pn<5XvKv=S2xDFn2ANk!d)#Y{6d`$Vh(kx##n@-M^0z!~1mZ zGKGTka>z$N|J7FvMO(`w(*akQjZnCDO|&id4%+QNU%yWzNw`| zZkVWp_g3suI3m>34|f0Y_jNdN;oPVli5>F@uNGW_uz~E%KYy7hTvl)HOIHm3Q(o&B zZId_QtiRcq8i1OnxHcQd11u|R+spX;8Cf70%?Xdj!q@@~u9b*j*A}C3XVd%^25@?1 zO@dqXcWm$J4#$Vx#247r5IpARP`ZV z&gH|6y1HIKux8~w-9usnsk85(B>Ffr*J6+@T2ky+?om z;+8e>rHS}p5&WL8GY?DWM;bh*$^JzY| zBN}F3`WyG&1;6*R$>_Y6<~{nye0_s-SZ>EtAuzUKlbe2X1%3w9i3bF$I^On-s(QJ8 z?c#tal?3?5=TA>Ln)sL+Bc;YI5V^1F-R5QT{7pNZzF&FL`bWMwr^5f)-l*r9?ieq- zG7UjyKD;XHOg&uk4U_4z%mZU>Ezk+qQfp{)B+3C5u!DeHL*hoIk&fh-H?(2FE98-8!9>Zm< z_ne=|FCI+ZH#~o^b!>gDw&(-9ZV&+r+EYU2kwa1;ylHdBylp?*j1`ZOGyjb39i_5n zUq#4&f)whS3l~|>icD|pRPPg4N^~4qxm7V(X%gZ)L=l_~A6Af!EtB`Me5ClSRrdP9 zSyISLy>b4|Rw@c@3s1snXx}+MPEr!84GIChz_ug5>F2R-STxn#Y^ zPpYmBq@s*4>T1}w1zS(94lNBWFEripGQp15zl0n9EZG~A9Gf+FQ&n}rV>g=<(M#FF zPV50&F)c&HUvl{`F02)8smAsukgL#Vw;v#vI2+U>w$h~p39L4$pU$Hh1^g!b{d^8- zd#7$*>rkNc$eu3{x<4;3;Z6Y`(m}C22B|@&3Mk zKRB;-NUi8!DJ7;Ar)$Ula{qZGDL3 z`kysw_u;_gL>2&ah;oMU8x$*nOW}q&82!)Qvl89z~P;*LWd$|_=2Nz~0M-g;>rq$WyBe1zgRq>XU@F}D4ndz-4 zX!NdP<`?g*d=@>WPmU2rv(uTHzBjr1r=A#_*qPY-xKm#3D$+HhsyzlseISg^XF0Ox zI|tw{2BYMBf8hFEI=g1dBl^FweDs#w=MDE1s~Ng}GA3JmILZ2jcL0ADQOks@GxM&Y%sRpP1&xN4_>jvxfI74{eo6ijfGkqa*4_2{*-Y{jGT%Q3Wbf zZn(9bw!bQ<26`EJ%@F;G4$O)l-(3-Mq!CTL($l`-$T~DE0~?WT#=THo+teW6zxsT4 zQOrF;R#zbvB6Mx~^K+ONxtJ?lq?>?~8l17VKOe+D?keK4j2sCE&WYf=!P~UvNFa3= zXi8s~J07aF-J$r{xd8IY!(B|_6L-3JUE`z^gO!fn#&|lNPo}`m29~lIxM$!huMEH3mw+9S)89nsC_I0x>%D=|*mI=e zjR_y;ZC$T!I7+50omYe@B^#4&o{mj!H;eN@NF2s;{SR$K8)FOB$;cD`Pxk>EoCl|k zKTgl|MD&q{Qbn}8#PKE}Ba8%{Gx(@zbE&NHoUN(XSpWXCFvpA4stUw~=rBA(dW_cL zA1MkNg+qYaj`o|&Et&7<|M<{(WxGF|J7i7bcA@YrXHFYDe_-B#;V$O>)O|e&@|_wY zTC|?dF*g_130qK>1|#&+}wXvmZ|=NO;r!t7C!-H+ijXX%hRF)rEJ6s6olXz-1q zaFI%H3;k$Ii373(#O{Lzp#t=!nU-Y`oq|UHoW8>R(9eV&&Dd#C-{sYY)c{L-V!{W7 z+Yqeaue5kw9`HRWfk25|mvNsT+QNz>OPAL3CLVaKd@jEQ*g-y@Dj~HY9?K9X%Kl3ziU&~uAifSYI8=-vI%(Tpe ze}9FA8MGp}N@k-hG&<>O3O=t%gt$1DDr@*+nE$8sV*C7Dv`O|IAv3qq`}4!M;-w)i zm#gCW-@o^#WRe}c-PdbggF8~!j$-jq3BGoP!>bcV=3lUhoe%BZfa$BAPtmoxk;Kyl zN_m)45`cEd$nSL#+S!RZ$p+8L@1n!*Ui0yaJaQApkRhn7Ct{3yqWIysg%pi(a>cj0 z>wQ)p_2HduFD5S8k5Zs9#kt&;A$2c$0of|QPlo1%1zDc$=Q=j!-ahH^k4~A?-;2MH z5ZE%;;*H_}`zUMz=@rma_&WcY-xsF&vYJ4H+^j(-PHAHj(#4~9ezGR$f^EJqlajdE zrOqb`Mr==XZPVOrD^S(d%5aK&Bi5r8r9K$n;j_>OCmq(Vo3qW&RDv5YJ1-r`Bd4<; zCCD#-0s6c$mJ@&zMr;TUpQovYY}y)$^z0FTg_#i6|5VSxwe$xB%wJ`dqDgSovVk?3 zC5ln-EdxR}fkMGEcPH$rGQ+Mw-MC|eMQ10UZa#DT`Vwb;mev+y&d%8j-Evz$wTNVF zE4yI+tFP^Pw(+-tpOn8-7agVw%h74aj^}tAsT#eQY>zV%>+v(gW<9xaLiK2*6(_?8 zCV><}P8?OWpJnIzY5Eb7EM5O42@573DVPC?%zgX3@hVqx=&&&{VF;MA`+QB_&ot#> z&vNcR-)o`|JNLcNCv65rLT+_&Ur(%?cdxE%Fk%BT>I1J=KgTxhUTy?MpJLwPHQU0) zkzV`#W*7#4jrMQ8CcUz>b!L~%A#D1Q0xf2TGuprNF3kSn8A|p^hP5*ArP7ZhU|QVm zLZNCsn>=3;R3A90htsvBC^+(+Ze8#q-$vhEHU*}>ZnMU%UT#erk1ZQq=ZS6l-hH|| z*NVgXw)~UNc^5gt6V~(4@xEu`UvEZVdM-_(A!r!jzN9=3aIO++dtba-1!$iTD{~EVN|jC32nnH~nov5xg~jHM z%we4$NiHa&mJ$y^D1MmG@}niL%uom$m;JpzOK@#Z`U8>3v)dQ^99Y1!R}>Woe4K%9 zfeaE>aS-)ENhn}|>=?32WLJksNKB2u+ywe0eC*2I7VeN`aCNxA`Vk=@cO$*!cI@yhr5APIC7u--S6A?{ygtr))(61n)ch98$oBa zg5lphrHhgN4*)^`zIR_na;pXy{m|`+E6U~v^tWO|`V4L_c^Md`7A#!y<28xqeR(I3~Y9c=VmZ)a9yy25vmq{LQpZ4vJMyHg`9$O z8P3i6VB0>@*`an@3}kytUwRsk-w)tPY3PIYcZoMIT?$tM<{YR|=rLT>Y}-|`&YGi8 zZ$j@*AD~X#IULnpp@EQN7EzfdXir&HcQ<#UxYtNk&_jnpy$R-gY46q&&7cc4!h$v9li$5#-=D## zVE7`KdaQBmcJytJiz%8aNi4i0RE$Bj45QNK@3eNkYWzkZ#PTRJ9-bZDB!?h_UD{x- zWP_`2Aya)*cNJR(a{$JsUs1;Ml_t>~+_loH&inA5}VVLLX|D%hnB0~8>HBuW_C_;T zJ!kt_HzaT#dxEdN&`4R+FNF3@eK1l*owj*lB2{yr)QRG)tEaRxci}Lvs~$EYCR$KO zjrHWq{rd}E;iyjKLNexN z_h`61@$*0XFZKx^q3(F!zh4=e63>?utl;3ogNt~nf9AfW=dS_~7djtIdey}{) zz8U@i$IR||eCx+$az0+Bx`)Cd`#~RZhyExOSe5 zPUv+gQbqj=OCxbYy_ig}D0-G=F+HFy6l_$;F#_!>i4=ARsf3RZ6>Bg25g~!I=>*^! zXQ;`u#uT%9JZ1^ZHL{8*V1ohKUf?X%X!7J2^!p0bezSXet%dvx=BM69@weP@Wpusg+1Q40#wxB4>u^RYQH^I+ z-c>McM`^~VxloNWL@$ROg?eK}_P_(oX4#X(02{2COtYfa)aOZ*ar~M$LgX4BrkGF1 z*fC2pJR6?c5D)b>Wa&`Ti^>$D)6C9dsO4h4j{9C*jUDvvaPLNWmmTg;b#|qM)U|m~je(;9awsMKybl-N{4Z0N*J+Tx6+DdrB*f!d8hWer55I+FK4YFt!E6~EWn8N3lNx7^ID z_d<^7U0Lf~lSK?vHPxqG&4@v6Ku&YR;MwGe&JCB)7l?8|9i_Pz^{K_s*Q7gXUA7Z* z^Rv_LwUBSTb@j!^)EDTX&Uv>Y+|oA6PIDx2w~?~lp{sULnaChCs&Cxfi6WT>qYh?n zh>0jmqtp9L)F3;NV;ET6cuQNk#y({Cf$kY^;~DYP-2}SXv3TrFymc$U<2N0L(abzp z>Dxhg+ZrfH^(hvM|gzSTaXD!NbfLBas3@u7K~=qe@3 zmUNW{1lr=l6_S2L3AfjX9TkMX9tNHzUam;|h$<;&CtmpF4wuH&vPujroLY7<<(E^4 z&K+`x+TJxpr9d*AjPDc13F`W`s)Dr7~ziQ+~Rk*^&uLg-{=j-Yx z4z6{z&~BQ@DLZ1Uoss6eK;p(z*X2$|sG}s*abIxSq<@t6-V^v)W1#N?Um-uenofyB++;ZAORjBe$B zWu!~t==t&l{@%+ij_YnW@6I0&9}>3;XCn8f7h1n=b}!T)_M6;4Xzq)%=SiJ^cAR^jqjdIM zTOmq}yWR8DXH-0)8=;%~4tCmoMNeSUv`fJ;+0{x{6?cmtOFXGNrYFQPcjJ2h~ZaAhyUcJyQwP@cM7uRxCP&3N;FjC^r;iYpy5h<>Rp1l8cTzG(k4bh?VQn zfpd+x<7BvTB^B-dxe5fIceb%gc}U2A+CiE@Xyc!e!LMHFYgj$k@g zCPaH)j$b$X$%(g}rKTCXfbp6^5*WJgP|N=^e)D5u0UssK2!t533X4LD4RVJJWD;m1 zm24UaggwVefE#^l#hoCf3PeoFAapddGiqj@k92@)7ye)gIFJ$QIZi@@voaeb%mS@P zjLp(+r%4myWn27?*|-hq$^}+FN#Xsoqsh^RU|ze~u8VnSOb|X-X@EA(9Zu5W@q#&O z{16?q5Yohm0-Su9Vrv~_R&z;TeOD~Y+x{#}~BoY$m>k_XVfHmRAM)5mgFu0&F z)SR9l!TUmi6yN`NAYD0y&MZ!?I;PaK)S^0{I3>?ci82kYuVy#XWJuXxBzD;g++ZcE zSsHnTY-HCXZkEAGpwV0H8RCQYkvq#^$XwU>zYBdt?!5Fqh=pF278Np`3<60*v@@h5 zuv;Jgn2;g2IQux=j>YY+$vrg=p;!IXT}}roZWOike2@r00l-s2f@#u(k)R(*dxe^1>j-bdya?ru+VhmnqU9JqJom&UNZd)wu3 z`*PbZ?F09m^o$d8pUJ+QF*!H(%^O4JSkz(?6+9*67zP$MXxZ2ceBwSOcdyQEg)HGq z)RyMxmd>_TLi!6MW*;;=`f5f(6oRE}n{hX`SZF#EH8bzd!{#D>6TlNAdu7|OoMp5H z)a#LX*20mwh+-PR-3m)AU8#2x8;uNT7af9v}2kM=SZY;duX1&*^5w<-yiF|NAP~FG< zaBz|;mc1kTYHsVB*h$nK&Y;sYB)qonTy9&5G?*GuBg}zw``F2M@pE-Z+1W2h#)J&HE7iHBV+_x2Ci}+x6#KNzvfE|!e#Y>uu0OZgE$R<;=Jx|0eu+H~gg}rhn~YFyBpqsgJ5<7vmE;i6i9W8X zxPxbmEf~1aq|^=qnLcZzDnXT1B#Wwdx+m!7Os(b6xw8en6uMnt1O`|>3Q`SixDD~#ioHX!MR~mYpxiiu; z$$XjV^x8fkpI00hfw&W=`2LByApImAb|IBufR)y>3`Lld`Vn719GZ=+u^Z`JtEY1$ zI9cPZsCrS&G*_}!I9zv+UfcMe8^G=?>lCPWR+i^j;Ura?p5CgrLxg#q!5?u~*@}LV z=#20qk{nJpCH|~2s)RVRVv4y(iDoQ|X9+8_ikJp1Kuh3Pjj;-=Ov0kLa05@hoI-TA z8m=Ka&Fn0Ot(+T3qgShlc><-F8wAg>lk{ofp2bbyVMDFF#Z+OBrZXE!h4;_cVB-#@ z83zp7IlA#-!MC3N0G(-vE+x(+DiaxC`%*$_q8g__>VsxlB2jKYjY5wztI-1|%wme8 z7f@`f*p&^09K*okM(gX2upOJqw3Cw<9tvOd5wmjQEpBY)Xn^^1#t>m!&j&I)&Gp6( z4C6Aj(ZMUfZ>dZ*UjDrbW(48{f^`CcbZ+UpES17X18tyU!mur0Miiw<$xcYGU2j}n7+*(z4;kf&GOdMFu$3kfMLI|WXGXQTHK-egpuKZx6 zbFH55h}fSXlc~XC>euYO26CF&Sq#0dPODt3isC=M>UBCk?JMK?j5rto%g1ehFW-kg z*Tk1fR7J%KQfXGPl0}77gF!ObC@G;$1#zloD=!KJ$*i)N{@AjjuvEflA&$P&jtLoZ zi!*isvkS@1h&ugbq_c+jxYpU*%hl~fV*R@DWXCm`U15Z8BSQ$-j zmTo?fc*Z9`CdMk*;@!)wTvw%A%%7*mc?ex?jMkZY6K+m=JM=Lwkao8r-EwlX;a-kT z$HeQNJNsU{!U30#rRPASo4NNxA2Kxc=?*1W^o~={LW3JCj(uQY?#8-fRSd-4`_EnF zlNu#QE&u*LJ{#=R@DRgXAn>e`xWFf$(R5=cL6+AIQjZsjW|c$=yMkVy!Qd{T0*eub zsWeR;3%N;-(jj#mdgGn?a%_h_;ZGG7F0>+Gj=uR>C0}yYrvTL+_wphlf(l};@lp5H z-R{vD)^^msHDUkYS%vln)W|P1Era`xX1oBoSi%>Rpo6BVMtiQ$Fm}vRO^BwNP|qrp zs+fl8)RHa72G#&0PzbRhJ6Y8__Fq!f_N}FU@VsZSXg#GBvWk{+ja%FRn#GSNfUGNX zHX%&askK8#MpNvVdloYX!1rL76QJ*vfGjGkI@hVM_&J&ju>B|;sWrrV8Pzfubc;hr`6|y~U2+wh;11Y!z0{Yb5wn_jX_@FZeIg1Xj-Qn<4$YQj3uub7fw458 zLNN;k5+Leu@;QTl)flU=m}&x}RA46w5j7Ll2vc{+Z|ynjz#Lm%OanFaLNDJ|qq9zE z<2_bAn}$XhYr`SWJxd&1D_aaUc9IY~(=$7tl&_D7b~;Pym}^Xw8wBc58YfR<{tZR> zsJg4Ze;x_F8(*suPSt+;rZARng{%@tloB-|e_ilfad2xo<_6PF;7p;y^_I@zp}#&gByfYa_x8y0JtdyCzg-)X zv(sK` zD&EscqOj%(WFMJ=qwEbPmdd8j4869o=e31RAr2P5)rbTZrGmc+)da5o)abW_!X{D) zEwRvPNx_;>#>@kol0l%EoyAal$7r0SL+Tg}n;Tkqqmz`hd?6KUz1li|uKK6gaG6xv zP4cbj6x0uJ# z?_&cW|1Bl|D>t^i&B;AG^Z(9|J>Ta3p7qLs9Bc95?|sisJ9S(t-)z47L_7~-9CL?>+;wZPDTxu5ZA0;OF+PaspF#mQGVmenrkHp`>KI+Y>@AJ^0%}hG+YI-< zMR|_>4-h=LXgjw%=P{Ewc*@q9u^*>B=kw=J|K9y{O9t2M9~m_dfub5a6UsmJbB2_Pk!#O@MIy=j%0JuMI)_iPwKBuLa@p6+fp!JL8@W zFjFd87EAmnFDfCXRDOmTxNZ0@U?Y5~Z?TDg(B5DtL%dT|hc2K~Y{W*Pt^= z$WCvVs?F+yJee=b=R0 zL`Uw>YwYVY9ZR5=IFq$G9j3{U4XoPx??%@lTXl0hE8^e;naE%#0pjKa@Po4on@WSI zlwx-3lI)1BcW`~7^c;J`gAsQr8l%dOxD??Z*w6)>e{_&|?ir&qZ^z1z`4L5dt8TOd zY}I|%fcsw{jWh0nNiiE^TLSNl#r)&@3SWUkRAp0XfHFf*dzOvPq{&@nQf+x`{LUS6 zhthM1y&KF>@$4s}j0@3-?|L^49Z5sZhAH-lI?ct7xn~*7V3RjuBWd7OH+GWPF*^^{ zF~4SBhG%TVMppAWamDMdA^19D#Va)4IzB7!SdCow$GN$qkNFez}nA`_h0K-er5!zaf($bJu9eZ6|FYoj>h}v=q7^C0e5wc zkTnjYkWprc3v+v~WnVtJeIJ_9n9b;abJ7aIG(UbD*G?B9- z9w<<|Rn-Y)$`E}J*4b~%d(v*XkBPC)LSb-o$999)5_Y@P61W%Yt~A*C;?ZU&WE;QC zv>QNOLORaf)byr`TE9;NzqFDL#HlXZjW!5>LUvB3IKe4D*eS*AMp(>*=+u%eH+S^C zSr^yV0=S;#E?RE+KpExVBw;nMuTpboPm8u(pbn++iS+wtRGCh$ROJt-Sr!e%&bFz% z==1YtZ?uYIqnehwy`TUS+cseg#eW{deJ+wo@1MHm@It)6y|M_3G>)W}XeO;B1U#mjHb8 z3;j2I;DIUkfd(`4V8xxSU3WCvaQFAt?|<|OjQ8&4o*2h>^gIcTHqhP6m^cPM8X8=< z+nH~PvGp-JEnHJ<5EQQ+@Ty}xEV@sGcJTO->C^O!1nn8&vqqSiGKVNYHVILI7X@5B zIJ5LFffFSaUDI`Hbv19isIXLcsg&LdURQQM-hZz{DRt`&^#X(tNTAmZi3Gq@pt|Dm z`6g5>vDHXbQq##GH=stLM`_HJupxGcd+)Fqh$GGtLqd9{-i*~+&7Dj&fqGDB5U61* z_C8LkQtl-KYMqamRQRQk_(yCw8{rm`GxsdDguhZ;@K>%&^JiU;58jJ}Dlydj93lc1sd;5^p%6e&hzf$J2Bsna?R(tHfEk1 z_@)E9JK_$$&pvh(NA6I14zYKG87iI$WiyKdI$e&J%49kPGHeh!`oO0}^YvKV7iUk; z>@0?fvNt^}ZJE%(TYF=iGmTqPbI%m_RX}TvnqSjVHB&w-ZIl!aQ=vwoM`?UGwd9$! z?upWklgfh|q?mi=!Auf+uRFPW8C{6CL>w)T_SXDNUR}4n&cFXSx^ZgQXht^)kLBLN zGx6rVNk6Yceq+aRBG@5%HyCzv>+cLa_0}g`ij0Tx27@+746T0(a*4TU-<@Zt#3LhK z`>!Zy0VWHHs&;MTPbgROQqhB|l-DEXXc{`2*?1`sVuq}uk|;X`a>gu3MELyNRNsHE zG)EO|C5}?f>s2q41nay4t6akdZ8fT46{)(#ZyZs#(qO8&U8~mjurl*rr1mBnuZD55 zxn6UPKcd7`F_Grpp!2CRX$ET-u<$Dagax{>$|O-qLPw&grKbv7T_@0T9xOO>jX3yJ44f;Z=n!H< zCw98V=SDgVv3IQ8v^+L2^QnCNXaje&!82qbYuCz|E_}2l5a8QVE=utbk3uh!+EC zz)s@$>X4OFY>=I}!)fZw(y@ftyTR~aWN@#(=IH}qg}r8ug+w8m+C04fjzS}>4sdL+ zF%aJ;Q8h(fZ!v`T->?4?o7cv<7 zWJK(DpjzvTHx*sdjIh)=slxz)!d29+Xl+Y-Mu;Jb0v_f3!S1|(pN{96o6+|QZgy?H zFEKbK$Bo4e-Y#IcmeckuDl8FHhn`|!(}hz~vqaM~HGCPof39=o^01cT*^o`JS}LD& z6j1$`A}FH(j#COhwmR~U4R13}& z0V!_r40S`^%gGpk-<}6NRmzH=d&bz!OP$`!&x~;E`;X}WwnrDRK&nip251MuBY+j7 zDsQ{fG&x5{?ogal%!7Hv!H$kcCxcDV?atZEYjK(!qa$}H&aFQ{-AEctjl?O$&O}GF zGe(1ruBG_dAbO6chWc>h_Q79Oc9j$xWZ;973Y!Mbih6IwIY)8Zen;9f;;aWR^SNP# z6|sKEwMAsBF8l(1msnhgpj;zYsUH-Bw;E|TE$@|jPL!*SRaj*b?HZGD>XIzVrrtyv zuz}S|F*gXYLofF%JK2ET%|mHl*iTG{??o_u& zQ&gT2VveR~s#yC%?O+{f0l#cJ*NjqYc{5YWyo@N`-rm}am<#t zi^lrqzQN{r0&U1M&nhWqCzNH{E>lM{o*=)=Yl?_9K_vvPk@lkTalJA4a>5y_u~dsk zbW@7pSBalIL;m$A=**wAH^8S=;QBYx#bnx5rkzmy{=*f2LtBY^UQ6z*-JTq3WXN9P z6Jd|2mP>fW8mB6Y3R~We|F80*fKU5@*L>v$w0Ahxu?teq=t0fR)SS-eOFL1t$99T+ zkU;QN6u^ium-vIeRN7-a&C5b_Guf$C*-4ae`RsiChk5_*%e1`1yH=)JbmNs28DZfU zRBDV>SVf@kpGC@fU}GnV#wW5V=B7&{boKuE#V^{O$gz&*{m=OEfjg27(Hb5bW(Iz7 z)tQrN*%F=W@e}@=XVW^i@*M0AsUOB+(O&mq_zN08AUY7ospAN40~{R(zGp=JvAut< zJkMGQyIY6o&z-$z^$b?1xzXUl(-XPF*zqultZV9?c=air%ok_V2P{nmL)$?v%*czSQHtQ+U8BQ7$|b-s-zP2)qA1GxUSv#*=km{$AO~@1E|7FlO$vayK-%aJOUSalH58owk0< zJBHn^u+1mR)}2I1#+mA;eNzB3UsbPX_5j~Jn@)Q)Y`_hq(HR|65afL^DQI5MR+8FM!!UKMc8RklzO`hp^8Q27sLQL|8a;BU zT55eJ-c%;|^$I^oNM$k&B!+mVN*SwP`J_fzu|Hz2aZ+JZH2Hx^eU(AY<(24UX~3_7 z+XZ>X(oKO%oEfog5KDPQgssMjR9O^u%ap-_v;o61f|wvzx>vQ-ijZrZNHr*=1B(5K zmyNzuCaRFo-H~goPjIq*&dm~YjSo&0=a|cbT(RdVL>W8}4m~}~ixFnT1@TO=Xo`6B z#?9s>S%pm{#D?r7Ks=C8S^rv~;6^!q^P}L-h^s*IDoE$@ngT)W^voH@2FNr`XH*u` zRw|mLU)D%f(p3SVx|bLcrU0E0_>89K`}YOYxuU~`Oad$Lx!Ooq4pq?cNi(bBWND0Z zM>F=8n0J2Fn0RiGVntLttIKgwl_j2vxyl};!l`iW^G>{A^EzqItLfu#N|en6GU}38 z5oYY!0&a=JX%g??1g!{G?fuX9Uvb>|_it79>mnV10)rHD&#^b$%=_<-dNuybxLn~{ zkaOJi*a%#TKFe!KdQ?ikKyPK8l&5d6cKV$-OL6@8qL?n2%L`|;ORtvDldia|A2m+l z$V$SZbaI6qU9Q^0_K7eBQjMlkL0I98stmQfrjgyR*I8cZ1~RjPK+#I*dR+&c_4@xo zKTM|cDD;6aQ4x-aGF=kFbV$)P^K^2d{R;6jUGWnKsPzZs665|A0V@KI^s7zaYoQX4 zrN%_?pxhu(hoX$F&QZ*5F+ZcWEmN4wixT0x#~f=qBkna$J2jYDv7D|zxIv)UL89!8 zfi&xX3W*G!?{8GI7%2YKvnW5-BI$S>RWZo=Q?($jiS;b9uR@9Acj2QfaL9h-11G&| z51stE);I+!@cu`Q*c2)W8=bKLekQ%*HM@vc?FOPGY;;D0R4B!;LNdwL0E>JA(e=q zyi-U9=%IoHaz?(fz+mOcfq+aIF1E&Jc@aXWg1=J&r5e9TDqtG|X2jvo&BRg*IbDm@ z%}E`5fsi<6nwtq;2dA)R?7@4p-g7DFYMxzx+S$K;i@N0r8&lkjG)BjjYm0|&wNL!X zc!8Ko#MSqub9o@9LPpm~W2iUm)zmuvSA3ntHKm#Z96-7@T6vFX+O}%bg4rH&k>pNuVJiHyh~gWlVU7n02K`$!##2DQSK8I8f~DvpZT5{ zd$>37G2ooW;n?BqsUH3!0+sxDQeMyhhC zi0Z2*&P32xjng3&YFECqo^d`z;r+Kpe+RvP9x914==UXGFi$1WLP&fNqJBrTnt_rd zX3bE7_28=lcI(ZF);uH1ItBO{0k}lD;@07$9g7aC@;BF}D}wA*w;EAP!J0ogsU%Jj z<=Y-nbR@*eg5d{pgKgNo&yL$y>dVj3UB%TNDvRl11)>w*0=@rO=$lg5CY{cS7Ms06 z$!hchcRQrUn5P0K)i?zMWcKo+RO7@_A%?2F$6P4N7cB+W5;l%g(Vc6Yq_)H9=y;Zp z5qK+&eq9RB^7>eRQ{=~i%({~bR)*p=enVZLukxD9n^2MtF(b`YgWEw)<;)3llvsmQ z!OD2jihxCtum4kdl|Ub_RZJ&L%J}fSXG4!O_vYH!HwxsfM#f*$xW9(YpLkZ=Qt4>u zlO}`EC>>6TvYD;HbImbH)-g`dui#KdhEOcLaZ@Y+1Ag! z(B~&VpggPWv4K>2|4~!_`fUSlu<*-`I7LTx>}s4Tg4Y@YRZWx|bUCb3Lu}iy+aZVI zc|h^*8LGoA6a7)(moczuia8n!i{V+5Jgclr#d*(59WK6|tAVFdkGba%rMEm7iKAt& z`~G`}0zOG)3LS|d7K<`=UZ7RA{bG5>9r{hDX&}(A>D&qk!e`8;A%eCVb*loSlES2f z`i?Vq#+!K+cA5lL+_Jl}sSW0t*Lht$B^`!1n3)IL*X%2D&*J7xUTeVIbBLpp-VSB# z#^!7EJhZ*Lq3dznIflmXpJkm7zXfh(m#xTq)mo$SGm-4HGY+XWwUYpJn-Tv-6c{c3 zUPxtvV!}$8dc~b*C2Y{;ZYW}{@j+6z)L34$9r*<8kk22KB|1&Q0>?>Zs)>~1$C`f> z6ogP?til}uG;)oi5~6}BLsL}ArY*tZ6uNAO>{x5>2W7o-FZO#yx3Bo)z^=+9C4R&Q zK@U-hP#hhqhUjF;GNI9N&oY=+)OFhW4N)+hxGjXzABnek<-a4`D(ez=+go^Eclu?h zHPg8^ohBnPKrO|?DH|qo$`3ckY*?3xaG+3NMVJCr)#7K0L3Q2$5SN3Vaiyp0a-Z>tA2-tf%q!U$@=9n)cdb ze48j;Z1H;W^_t5IC&U6DS6Dtv*f?FXmKSCkQtBM#HOT=MTKLlM@`^i2sdxqi%sN0= z;f&Dosm)Ay|B6MnU;nYe=wjM`d|%-jSh-j}uK(!w_=sDHI8+^BEoE^FbYA*Nf_PGq zPx`v#2TA!P7IfCgRT5=tbPWLLIte+3foC>X>*OO{@BAI`F2iHyB_|PM3cDsHSFv#lVWZJ3En^iH_W% zIHzc=6L>8uQ#4>vdT;|w)45d%vBAuWmSR(B5Mo0oFF%uIubV@$F2xyv5bI74e9%@k zrqrMuSYTqVa;k8W!%`cxJS`01?aLJ3!U{g4>8F9P2n*a2!%3inUR4(ezJm7x+`&`8 zr-xu1$_#`Y!@#4Pxp(5G>&q63e&k{(fTKoa%K=xnZz053W2lm1ZorkSZ?U3{O@+1O zj8LAd9^YgdI-1#83=`!JspBvhZ-F^BBi!;BsPcvyhSSs=2{hQTnM^~m3?|&%%)K9` z*>`(VBWwv3YxS#MU23>{eCe+ahTmvbvE$u#$ogGi*Q4w8Kd%Njj5c$Y$3Palm3!m^ zVG>fcu^*3P`8u**snpaG=nPkD7^#t}JdUb?Oho}rDr=qhPt$29!ylY<8^a}E13Mo7 zhQ7I$Umx!;*T;K)ge!j}Yl=P^#>%h7w2tI@!fPvI*&ZZCn8GD{c}<5DA^eG@5oe<% z&cFw$>K$P)ei8Ns*5^8=3GNFqA>t7ar^T_fP}l!tn&&dj##i5puSD5UA9^!~*40Xl zG@B-J$~{|wOzDbpcjQe4Yi&h)YP`T{%MRG zEKafV%@%}x#0JFi7l?Y$#XuTRqtN5boe^c9q>nRB!hrdx5p$uaDN)fPXBq98NUb%r zrrV*~r?mQ_F_0+u^11ofeA212*%Z628Bwq%FBOapwCTLy6JCR3sfdFrbU$WCR768a+wR@Cw+)ii>n^#kw&0Gp*+JfP@^b#t@g znT4FXcG!*wlW4Gg)$L}4MjJ@Rgx9xy!Mx}~ax)Z4hZvwctYJ^&uA9IeCd%de60a{; z^du(HnDTakzg_H#`f2*29lUg@g&b|aFpB}-z5LIVH^Wc4pNaa!(8QO%`+J4HJ(j<_ z``WM{Z-uoZk6SA_OcUjX7<_Zb?1-({tS@04pMcx(0wnCv;>_83i5si4Z6@i3N;A5G z+=zL<(tyG7QjM5)vv8qJBOIzFX}B1?|7gY7gB^u>6G(b{3`UD=hcxt=!D*@CZfK_^ zv&ohOPDLH|m9R;e+2{Ex>kr=3Ro(X$S0({{&Vst-&X9UPNQoac!7rytF3iOtS_}JF6b?s}dJuk<7tJ+d3sS6rgCYRWq(QH5IK57B*fBjNj^&Y(_uu!3 z?jHwEhXn&6lc>fiILzEoluj+hKok;XWNk|aA2rVJpBdI5&$2u%25TQ0_xT}gYWrk*Kx}YOLH~Ln(W&zsXB%4w*(r2c?ofJ;z3GcupIb~y<(`CQuiXjY^)`k+-+#wXG8FS4 zzRo4tc^Zhqb2j32HIV>esgsiJ3-)H1P{kA`jJPle>MK{eN`6(|THd#_>%) zzN~q_)z_CkuO;Vs!GxVw1>7BkdH>ktQ*;0PWuk=!j-%OU!{*9n4fl9ZR*e&4sm)@! z%<$}Jww7-XHN#ug_)J^<5J|kF4~YM&iZ3=)_==oJDG2f{T~tqjRV4Zj*(ezH0=s9S z_fL}l=MM&7b~;;?ul*HLg%ycs7doJ#F?Uz~X5pLg&>HQ1yBZb$|f8 z!RQ;xiOi;Onc)GQpUjvw=7fQ*K0mx-UahXpT=E@Oqf%Op&Z`+7EH({w)puiqz-$`w zSmpGF!7y6*62ca4Xd~Q12OKPB$L4L@!AW#rOukvGgg;v9oQ#||2I^Bsin{paB6af} zOKPa^UDTH=D4bOyoscg*?;Wr#a82Y0Jm9huTsb_~c0eeakd%uBRS$5Up(d} zy6UK9yomfDjv98Fftw{>aVB3rXP2WX z%!f!2MI(}TLe`cpB3`s?2zB*8#4ipBwoFCn=Bs}xb_vsBKx)OI-$WZsUHG0+D zVKH)^&3MBwAR7;@jWsPAjMxxs##|WLiuJ~E_5szCjYZ|eVS_0 z7-}seY&-Gn7DsacldBQTt8r-N8J}Mtg72TBB5qR{;*JOG%kTLa8*hFKM%c*3efR;h z;OnW>m%k>BaJNPPEp>BRhI~&Q#&6Lr2>yEMteZXzOC>`+! z-||kyIgHsj=bAmomd0vxx#xOBb6P3-tm+j)2R3qkWHvLzgP~Q$ybGgKAs+CV6GiPo zW_Y6&S}mk+fw&I4bfpaHywMtrS+VE$M%k+GRm-IYxehYQy%x|*w(_4<%ie;Z1(VocM1KXf*zD)^Zoqt%h2Tg3ID1|Mv{oj-t%mRpC442_e-7hYt5lk8hr9>BN6U zNS0a&aF)PVw3Y<(Qgl5^a;!+cAr{5eEjUtEjijWRJ3+7)9bZ!nCC#*j`myrC%_MP- zsz10%i4{FE?F5Zw7~lAeWC>h!FHMG5-GhtnWxBq7)nACILtQCSP4ijhOJ5R?NGPvo zsyQVtK7 zh&*Cw&K@}Yw-{Rxcl+mJY#j2);Tqi*cnV->>QW!fg9cg*v0ZnI9oLM0gAPwIrrF-A z?DS0vbB$|u+C9#c4RIzKd7aF%OjgfTW6*|f-inOR%OYaWkdFcGd|8G)DXsw=@F#O5 z9U-eaZ!0G2?1!XE3Za1p=D{PPmF>Dptj&XXLoD!RZtGddFo$_jgMA;YH57SdN28m| z%|*{h>P{ow($sgfvFPfWU2eAaBkKp@4oj!i2(xsvJVtinZt$S*?5bKsH)4x8v}Hy| zre03F7E2SaW`;>`=Vg0DaSGZHEl_a^T4Pg$??IdMy^VD;X>v@nb(6QYF>*N=TEGr- zJViq`i$yb|ood966K3x{k2|{s*)R`%jLo5~$=gy|=-!>}l@=K$Rp)(nOrxJ0{O90r zym~f^Ly@@DfjYSnxpTBIx>n?oX*6zhr`6{U4;t|7=B1DoumsAHEWVNAo|CdIp?%$> z*)j)fvFO`>Sra+bgz{QF64#_2_y8Ojnvu4{Pt4)*P0=!kiluGno~flD;e19vu(Wj4 z7kx>)>O!4%T0=MJ3D{1p&3{R!NUQfC7KxNAxw0RqE{=dc`>N}cX$2fvesQQcc|5w3 zZhQw?+K^C7qX=cnDAnvk>4cPQRRT!)Fq-!#+}u>0x!f@-H$2qIsRHhRJWr8@04<7l z8jaF%b)Zg~%ZI22P#AykR}@>y*GH=S{;8!4iADiJHs<=HzCuaPZEL^VQR^nEO8NOA zvK$%!VE#p~swWaGXaI*mc)xPT+W)2%&dx*$k9_lS0r5m^M?MO9q4wwz&0Q3IT zBK4Bq2yc?jiK&-S1UgId_@*Y&*YrTLRdIxbYwB}NUnK$IM~Is&j+7W9{))cLVQm`_ zB~%X&|CPuRB*44RM(**b=Bwac)#yK3?h~cAbE~o=@lK@l%!={-skl?6Qh)Qya@JAU zb+G1y{VcfBi?E5*X>1x+U!^X7{*GF@$gFKgZmFZDrB(-w#Tf5_;k9W+TzZ)0k!dvU z=BAQUlQzCX#2s0PRY?J%J;a)(8a?VO(F(yaLkb-`l70ydV+XaHXDKrOy{|>kih4VU zm_5?uq%m%iX$7o!SYzbgDh^>vAt_m|)|=mzTF9!PQOjFZBPs2@tJsT`u+h>H9hsXM zn}d3sC)Avzs8MXiMhxr)W!49t7tz*1y7{a7IA*dE&VjuUI#zrE>op!=KSUyBp(M(( zLgnu}l-;3(v!|LwtKno$8u?*a_hr_wEvAN!h!LpEozACl9f}UPlx6{U2w)rOY%9_t zo8{a4Z1E=7U)I+%bIo(*Rn=2|d{gvmA4|HT^ja?ri^kf(RRQj( zPl*70exTq^NFGfhWhf@chzE2ux~Y^F#DP~K60jeDjZewiB>et0;eL5F4p|45^S~BS zG$Qdxqt8%$IIMujY>Fu=vMd7p@Jb42EL5sRq}qTywsY+CO-&fdLl$+{Yf@u*TW^8# zUl>biY;Al^rNJcl{;5O#yE`(6X*4tDwQszD#Rj6JeZsYT3=mY0F97LMZp;X0D9)*` z>@S}`Xb)cniyo;ko{hjaIvhvs=#XD^0-U~R?d+rcFM~btVkC0R1#2kN3UDDOAZAK+ z?XVLoXN=ekj@ag{oEyT423+^q6&d_VqZ!-KU#!po?mi7JkG%Sxg)^xm*swwpoUS=g zl&+3VzLy$KC&B!O&mo5dhZS2OBUz*nW(c6dB9XFDByca~-k(h|5a`-L_iqg(1^X}o zkflCX)1BJWXmM!+C+`iua=1G|sw7nVXgxk94S+hP4?5 z!}sUNwy3Sok(YZW)8yRUvU!^_vs3mNt@b&howO{*#%{=%+OXxq$$em6CRZj;0&mrh8y0 z!bX%jXX{0dYTcr);@I18ytoH#W3h;pNn|9sbKqWl9dM_~*v@Cy&}QabgqFnubD240 z#bi&JEz><il(1L8{Qq)B-vk!B( z1twnmp&!p!8s-64&x6}YjqZ46+#xorj$^Q@xY#pXg!l0_pT=wlhaH{Hm+{Z*$5*spRFss&Noxa-aXv|R>dMb^w9A*snatXMH^i9>ju>ihP@BaF?ea>Tt}r{G4a{QKmhJ>aZ6zy|km3^rAsM+Hhd}+n z)vpgM`y`S0{!D_bih*{dfn^b~WrD7jZp~ub5yd3uV~vL@ngz=G%9vLwv{7tn+aNb& zAN4hURu0R@1*mluG`Q*+y%@W74xWi8V--#UB_vc+tRnHN$Sye;*uxmj!fBJe+uF3K z1R{+OXKC;diN^}sj!W@qDT|;vm{(2m>R~p*VD$@m!AI0}+VAQcwwXH#>2U4RJ#Hnz z*l7TErHJM3PTugsS0^N=%r?`~+wi5B7Qoh~_Uf?FP!D}HW|7`TrWGIsaB@&Uj!c+L z+57kQRnC?15T+;|exFPvv$FHTm-<>=n=)P;@#t@skI9}ixx-x4BaQjZ2C%onSNUHL zM39;bS>HbqPzG(tG@6#RB5_abSVC9|IINon?eXE&^W^b?N)K3Gq5)T9EQPs~%;0>g zuCzOH(L6?UDa{WzN9OQpBecgiCvUaxF}{U$QOw7GlsM;M&5t$C89I{bsBn+i#po@= z=5h}HPidxq54-<}&+Xe?wOjNxdHlz>lw0^do%U?y6w2E$!Px0%cU;StcE!~4-k7mkrJbUi;W$EBHH^tKa!2KiWJA-MqS`(_xqJ0UkT!7j+#zZcyH?JU8&ZHK z5^)ABRB9WMp;N}1R#vh-0&eT^lN7Mqt8rF92=fQp5rIa^ib(<65yQPdqY>VzO@_;V z3!L(|E*g1%z64V#N8s_HY4vut)kvbNGb>?w zarRjQ*b;$Bbr=>ytxVQc(Kp-^3Chd$NkfJ>5?O-)Lrb?00?8HwmVWBBJ_H9q*L(G` zB()v+V6h zhGWV1=ftDMkQ8}j8Vy=AI~Bz^;q2^h7CRwqJ&GIYP_W%zs5J>9z7z~5bQ>fopKcNFAtDKC|6rq zHqzrm570;3Iq@j;`=|OE{@xAtK`T_!NUFJmh1`hTSu0_yFvPYh7RzDCBhzTy%}pie zHs)qd9mU>t4N441bU~ZrMH|R1EnY!0qULP}v~K3w5w-*m1mKNp(Vbe#kfWu` z(lk{$9tUJ?X~c;H+)uM`nI5DhZ}ef@A&NaoOd{1y7gB$ep))I4O<24=7n4ZAQI8!; zSyd~@+QJSdDhv7k{ZM5P<_8j~LpE|2#Wt^YS2$FeI$>l#XWB^s7X^YEd;e~P)mzPx zTiQMrMg3;Ec;WVi+^M+V%Io*_i27X@_%>q~pmo)Bp!L;R_V?NHzeSd%$4aPk>V#ct zG--A;S$4#8Kx?l}5~-r3pcYCpHuJY;?32mKP6ZNeW@hBOW3?xByaaIWHH$wu?Ey z{~lWwi>7%^%oofS>zn#%^P`2-aR-bX+*c6R9h5rQuh{euE1?lJGmg`&?UEwx$kWhp3DJs6jX2?e!dJp@EN)Q5BtheDOi$ zKRG1cc^0TQH-Mp~?0khC3BJ9-$a&@1sf@eOh5bnY+l3j1arNbqs3=5y7bFG(8$?PF zv;`3k3_5+2&?Lgb1dOdw5W$6HizTF65Lr}_-;q08G-$BU0&IgguA1WJ)6y2y$C7;g z|Qxq(FGoBdp~JJPeJ`k`^<^1sSo zKlokMD})a04a0yejLl$Vt5B956htt|!G-PlL6t5fp`{FoVJ-S?;A2b2wiK>@B_ys% zq^#NlmK8g_KaF@mD~kaN@qje2o6Q;~dv0U4w$cFul`O?mM!1D07$y|oqPXl{eJ_d1 zP#MlwEq#ANYBpq1W$NS%QBIMCSN~f0aENR^?k;+CR%nh)*L9*4_udNo7>g&1H^c8X` zYlOwcYayggWeoxheSbD>!(^25E7HBDUmuiRg>R^(?773@MiU0+W&$de5$hS4HzcoT zR$UG*_&Rb+sfi!=bqt*_6N)@CjRp;x)mn$haz+wNqO7WAT9I5|3zC+Wdm2@T zZ_rYkyzHX5Eu^YrHpA-e)|%N19P*dPwj2zzwlt!e+!0X1W};Z@!*NRqA`Lt|`;Y8# z_{H2Jji+uUu&Fcv$dK^WGp8d`Gc9&xJjfsoygx;dDNiy1YfF$tbXC@Y_+y|z6Y)` zCgtl&piT%XVjY{sc+B$1G#YnvQ^}zR8)Tvt((f?9B#gN6NvaG8NXypzJ3xxrm~mID zL!>-q>|&T?8lDkpyQ@1Oi%F!q*1C(jO{*X14bW?C0n&0_bP@X8sHIMHZ4x#2oc^Fr zVwfNh?q7|JDO4+UEr54J-6luI)+0I-mirBGfg#ev{{9VL(O>yH+P(?=_5MW8NiPT< zhaKkn{S(DH-SRQNgvyymP#VUE?G3IfdIu6H59zC60XcfvBF~O{Aki&k&%vXHDCCq59i+$66sE zk+-G5AVMx|f~&?h0-S!YTE7TB3?xnLw1-E9`Xw=<_HJ#HHv@(k5m-nrF-DrHcrOIsp+ULaJ*}+7xiX*^OMUm|;@;#-=3vyAc_d3bT8E-fY5# zJcW4hVI9o-b8urzt(o2vwhJLLbi`)Dz>!AIlbN&J-SXsdrGF31RpM-A2F<1^-%f4! z(7zSa;mpzaZ$+)&DLB{v7f<(q`PK~dTtrT~lN?|2dT{<{29P*=u(V!wqBx2d9j_<#r z7z>=`b=B9`{{55cvM71|7E<*OzjjVO4ScrGoGgMH*y^%hjl-oJq6;JAPJ#u{ow;nz zhGmZZ%}@E)Wag~W^gjdaJX=tI)=mSK_3D&E^gOycE9R38f1I1-ja*pG45$M%$KHH0 zuGRxvZ>*86Ga@xm*I1U$Ie(~{e<#jl!>An~Fo2_$6dYuNM@SKf!T}q^zG?v>b zTjt_yh9Ol9sA9qhMn4NfeblX%19gA*`A+NMmu%!kX3lPTmDNrj0)^@JgM)Nqdo zB#~~q$za|sN~%%}2)I|09k(!dQ_!n1u2SYJzB=n&%B^8RJkfhX;8lcPGu}c8Ztwo!BmO z$f=knWGJ^7Q&W?zDXFlk3}z5&D3H^V21Z>sc_`xnElslkZpW&FQMjHIR8muEFml_i zImK;V1fDW#vJfGJXHl)g1r!m}x5SZv@|{VCDJF33+B7CM>}Aw}osy%cvu0_ATFFk3 zQq-TQw!S6G`cw}pRhD*?uv~he?<3{lgjW}EUw@^X!^qPKi}qy;S@cL#On_bD*Iy>` zTTB%YsD}vLiZ2z74hG6LfZPrR+q!xca9o5F!i}=;C|Fy0 zP1s9CXRqv@$Bb-zce<(Fv3pL2v^mi-@O$K`n{(|AmNYwJuMLLW$!4aZ)s8Z(o$53h zh3B5wjBH28G%)eik-4SQPCOvJFJ>}V$Y}#&GdiK2ZB3(Pz_A9Wfywzj;570rotft7 z<@FN&te-o+g8YCMvYD2qHheUuNF8P;3=(r*6^rkTrFP47ab9R67;Z65Osp)|_W=v3 zIg^3yNVolT;BT=8&ql=e)cHLrzD;YNdotsD81K=X;xW6)VJJD4fwgT;ssyzs@4|44 zq@osUrVx`SQ>US(cE9Psw-I`_{q&#~^ZUxO>-49n`ul=+>xAm&D3FbT6tYa#j+0U6w_dmBRP8YoQ(D~mwL}e$}J&hMW@sF zrMj6;lhK^ma8DrYQ>S<+%UkQ@d}cLE*O<5?IoZs7hq&Q%wY_xikWWUamv1C|zJYDy|>+6$NrtPooPC{6DFBs+y5GTwJ_Zt9w$Dbu*nhbc%=3ET@W`dgUBOoSgAaN!=bg9X#OiHghbU z-cHkiU<_Ianc@yT9vqpm(KrYB_*5wOv-N@y5L1h>D=U!c+yU*?;D$%#nm1ew_LUWV z_}VGc(eik-^AjI9!p|x>DHMlDTW5CKld+fM(g2o4cj61P8Zzy3z}<|K@k#H7OER4e ze7W3d!%L4J{p{pq)$J_nj+DE;J6H;1!>DMsui7qasz|2OWW*g}a!#GdX=pSw8+t!& zmmS&qI+3w+zT-5o?-josnDh6hmurDrFU+(UvccA8N~YXlioN2}8(aQnhNdYRS2B=oB5X?#?(@4URt(XZE&-6NiE0XpWKDjdi5gkV20Y ziuz|@U8k?V?d8ATgXEMRNsR(6h{a-LWImhc;2ExXjT6TXY+2?Ol_7cSB@8#=b@ zgPYs!RoxyC?n#7Zdz=tlPAZWsfdf}ri31`vEeI*AOfebZyjjvSQUPqlX>&@BWQfU4 z9_#n_ChqfCm*&yfi|(@4a0Z0uQABrylvO5TB?UsnW_}YRZY}C_9wsb@d|LjK3NnhR z!q=})zlKnd>0XKmi@9x~q^kEAScOz`P|zXo%wD;FTQ#AywirWGt714c=7SC1N23!;HKgZ8-&7x>v;`51 zxVK;NY&mM)Dy|X>hh>ULe1EOPrP3@DA@D;4>k1)sl|!V3Hqe=hX)>S=>=b*keyHRL ze^IW9)>RB>o0Eh#%0}NRlcVdxj;$c*RL(&(5E%0R_i6xR1%A#=+(>?erz!`iCwi6 zYoic4#Sv#xgN+JQ%@Wgsp@I+efNhOCDoEdw}2?KQ7|P_Ht;%L3s(?la@6WS1%w=>=nS#_CQvgRRHir( zDVFWujDwXV3m!j1O7Yp z)lG-`v$m~=T0J84v?#Fe>uWvox>xh9PLv)p0_xuy>U0k|?WsZx-&O_?OTnY;HPSt` zI2|nTLYR&!bI2{yyQ%KGH3yCx0SaX*X}}Yvh4Z%N4)-I6?dmYFHDNacddtIU;?N8= zY27{oB8Gs_tb&{Jl)Ol1Ht*lVBLQniA|=q48vLjd17HhmIvKQ{j|DBh{#vR?rHyup zGx2OXm4uS@mQE;>_%eqU+vfQBho81}30#}YU)usl{ku`9kxE(Fbdt<`AcRt7lS!Y{ zCUg(8D(<~e#v_!&Xukedr}yW>} z%h@)nrF<@yLC@}dK4YRc@CUcMJ=b11mYm^{^y5)ac`26KjqxG9Ip#3BrlQFZD7!gH!r zxzm}0AT||bQq7^m<|LcjnPa%vURpv2Rys_%Lkt6Yy4UQzw59y|txmt!=})<~RQ>CI zM3ta=m@Wgo4Y@<;6i1wCFkbs`V#jwFIFCl_7Zn*Lin=EO-V zZyzdTbgrNDn(9vls;3M5%wBMrbu_mVEX#K z#+)Y-DK#v&oTL$p*^&gVGmeP`%QMk}#o1f6y&%MN$WuHMOxmQ&##z>&6twF_if#GV4XR1!5C1G7Hgeq5#8T4#8Oj~w)d^B zF$wNDe6RWpHR$VOq1yq82nq2SZVAbZKw&Z6JA7+&ldS;SRVHH4+2WK`NtLY}4fd5G z7@3MX^4gp5sxtMx3de!-;|Wv3(O@N+Nqs z#Z-Q;7hGCgId#zHC2hC0lyy;4p4jLzl_x^n(suwcWIc*#Nep?U+Fzop32;l`nqFt( zM@$v+w+Buvt7O-Ru+_p2Qv#k6OAT9;Fe9W5(yDJcwm9ug?_rBh*kN$5!>EqCG)>O3 zC&leDqeJ@J=k1y*yN3N)cgXi|b*dZb>o=J=wRi?r zsG(9lrsV_fAAbJf=TL`sjd`ts>%S^LQL3qwzkbhEmdDrcT$R@rU(fYMp`v&SYYqJM z+m=+neygw-Vv^!IgQa%zs(({VHFKO{rcKJeCz)Ph3sPH})yj1`f57ms@uVNlQ2%7` z3JN3KTHqG%r26%D2d;l=>bNtQI)yCP&2D3Gw&zQm|KKp1_~Cf8`BG?$VUErE&uV(c z9zN|Ee`NnY&IK>>{f7X&!N_ND?6YYfc{Qdca%1r2ht;c#G6e}KwlA-Q=@B+lsf>+= z1lK6$G5i|gXNrdumfD>3^fqI^>{R_j7D_Y{ELuF*6%mJm(18$1C8y0PCg%ZZKsKhi zXq7gfGqiY1Cmy`g+#FsdaAQkj>1LS%!d;ENl?Km=3m^xTNF8P+ebUF(u_v%#O0#3z zai5-h3fteEKdL}8OXx5=tvQ@B@I8a8fVno04;#ZrVytqRV|!+T+mE_uFqEP0jA6g1 zXVdZb5G<#kP<&YSj6dDwnmo~)-QoM0_qlkU2lwvGPC0BB<7Y#DEW6jK5N~{;RR_xw8 zw%;V^2_IGdk;$jG+I9Qly|%h`IhftP95=^nlXJDAaR*?j>^=cc;qJQbaW-*ARkwQ> z9hTZXZpELbp1~ftI;rBBI`QcIh#d-i?e#-DH!nrp@B_3}H=MxuPwF6U(RREcgSQr^ zpc)NiTqtPGFgLy7zAT_VMCM|&2OUfH>!~BN8(j<^Y@q1qy_~sa&z8cYATVc|Vq(Cu z{uBV12_UHwYl)Z1W+2c`o9ekXlC4WhWT}Eo#zVi2>~~Mh*E5D=*6WLBmR=cq&`+R) zWzXPK-fouQ%to}3;S!u?N9=94i{qtQKPElZo{i*w|1cb`){A{$!+myb&p?Jn(SY;F z|I&3f%hJ+70DT;us~twAfW8(mR>8}-bnV8Cb=`~)CUm-U(u`Jpl5?7ngpdh8cVr%d zrCBrm2o{=4of}?6TkE3~e!&T?M+Kef3xe9qJwhJe6MpHbHMS?nY|+N(T7n!2JZE8c zB(MrzrV4y+aFQfTwx|Zzj{tcHG|guH%u?N5VW%5r)|+VxUVUt0JaF(t!RmR&hS@9%o4 z5WhlISUs^j+`tH)+vHWVRIq)3>x6Bf0@gYv;||GA2eVXMpjy6< zGkE^c<77g2kz|joxf*tcfa3H!%4$CmBeXn4^cGxO=O-A6ULQtqlMr%Yb5_0SN2Cr{ zrFFLe+q7+Mpy@Q;i4@+DfPFB1j+F-u1Qek>pU9k#Lcf$`^JJ0*60nwH)0u-p;z;*c zWdU7R@rPH%9`t(c^W~{16qVX*Nt47;A{KWks3J#2s}`eTyT$^SS+dbo0yWDu@W6A# zU`vA??3Y*5^`DGliI(MKh}7ydEScjWAyIPpF*hO0)tPG!^QwXl622is;AmBXMUI+W!7T~aHeqz?%iU&|J3A6Z-T z^=l+u-_STX*Wmg~*}-4Mj!aN=u)WpE(@}N_wqL3+w$69xTKPeC>lfE2Xa%`MNk|k@ zrmCr$c9RscJ3;5|%m&#W%wmg2$pwys$T^d5DVdxip@5Y0xn0Yj2KA&D zhr!eG%1)E_w|Yuos`UPb)bOgol2Da^z99{q1X>y->|Ks%HpxonmK0*+-XtWdTVIO#yx_B|Lnha%m2A$TDlrcKJzwN%o z=>2zv=+JY-P*3r)y|o*gHpV zojoL`9|8G@G$n1Ka2s!nKI7n=OyL+3voCE2c*t(JHlPAVc$Y}kAPyGK%tCw~Ux%{* z|D4-Ph&3o4=xG@WLG&c1H84vBw((to^BRt`McTsF#D2VR6^vG(6uL{Gof#189%GIm z8ud}sCjJhhr2Z#LBKA>q=Q(UdG^jo05gQxa+7)S4xh2BSC9+G)+DM!02u!`Q@stHk zO^kPkXYKBO3w##B&NspGy;7WS)DmNFaYh4?lqv0_tvoPR?cUUzY7@~)OY}k%u+^OB zKe6;{x{~*ISv~@;2@3L4XL%oWFNGB-b=u6ncyP1(6uABC^VJ4hb|ra)kDiP^M3^Xf z_y(&a>qXr+UorhuK9$%cSp>5}(6yCaoM+)_PK5YFvPV{##nFG!GOX?@2OO?#n>`Uv zdqADe(IH@D(3;jr1LFYtcNM~+^=sW_3XLmkK|n! z+}81nC*|PU0a_e4PeSdU7`7vZ&(bGbu{e|j;xGLK`kO4G)fcEIY_~4RB=A)hOr~9e z*V+NwCINL!pHyM4q|mhNfwU;=IaE$$U4GKpJW}L^ise2;D~@Z=^xP z5#)b&MFVTP$_UPZWjw=mLo2Ys-e(OSbYZNb5n7g((LpNp&FU$_)_tJo2w2Ke#*#k# z`rE_~gu_^A4q~tDq-|jBGRVPI3X;wN8bEQ@dqITX-ww4Av1%_%j}KFwC$s+Wa(~F^ zq@MZC|6lN*Qt}Cf; zHOE~-5j#>2Bjm?EsWy=_P03}GgiglPwQgNA_-$7R1HSmxXvAhp zv}T+=={%K4#|o3gN_zRT^Vly$8wckKw8G|ekPRC+AOXq1Xz=p_$k9nYxT<;v;(T|v)(F1{5HtXvcluun`LYaGl94(%?U+QbC%JrhFB5#cPBO(i?o2`CXx z`WBdm+0oAY!5XmCCfa;#R4bt1+W(Psp4PoSCRv~qUd0*Uh}yMw!T0ycPVc`B&VGH! z9Qd_BT?el(MP75uWQ%GThyFktwszy!As&ZIxjTltRz{>L!RA<4FaFY9x-z=F?-w5j zus^D>fE~~v2IDGaIhJHD$=-XruBJ!oySUk6D9f%SqbHNt4N9?73M`@y!(8C~=RdzK z&&~Dy?THQTEPDR)!0Ar0*}}YKdgkE*zH6h3%yDtFajrC^+LmiK%4mC9S7v_(z6=JR6(8e;3E8wt9}VtKeki zI4<&oUp*1X&mD-`i%M(YAtTIvRpUoj1Nq8^u+3N)ty0K`2S&FnG0nwyf=CtO{j_tmN7S)dVYM-U$pS34hKYnyWynEs5Z4!Ix#=ibCYY(o!8s*PCJVeE8{ zXbO5uacdNQKH0?P2775_%CcmWta(fN6xSwTYZ1-H+SE|HAHq_L7CQsu<-CQw4%dCH zef|FHtO%r9x;VxZEJ*AIcHC65GeZziBAKO?{$`3syRojzu33+)xlwyL=;f6zjPmz) zS$1}gG31+C_?oj7 zqCvHR=SZ>T11PgI+^kt)yU{ArOQc$0l1S}zhuC03c@~}n`uq&FxlUVJ&C(_FmyxH~ zO8NfW0`<2l6Jp56v<`MHx8k!SfmK3ydW$VLr7Uh`FukeZOddJV-6It8({p-O`8i;! zh47$~z$`1uEgEV&On_<$9u4-a@Ea62tzgBVWhT36|B+$DIrrxfd&2xkAfMnWRZ{Usr?>Q`R{Q5zj6KV75`WMy(74!AefJtKVXHW6>9*Rw`wb!rNO=xD;`UQ z+zwstxaN@MY}XEvZ>b>ASg|KMfoxv(0+tYNH1WJy-jd;B-|~cGC-Gg9O<8LtJ;b#( zSCZLOZrNvCnGIvRmm3nc1xq-EmXsX;IjjcDMr-)EqeQt`Jk84l)5eD9G}0Rot8XL*VX5y$c7}3ZhJp=MEGXEpVFng~_rgBv){zXGOPz#J zao&zP$Y|N#PlLPvWGFodrP`21u`Gj}3QrwEtp+N@F!7p3r4(cBvCS7rh*p(<(4Hy_ z*&1S45II?R{^VjoFH*O^Eck(KliUF_3Os-cF_3K-sFVV=J2Qj7?bj^s-F!NUtR{>w zc~fn8h)3kH9n5HlrBiqgxDH$f*5|9M_)%E}vzd%xqTIyQjMuPJK9%fCqGC^dc6P=L_ID8x1E{FGO!fHEK1=|*h6Cs zX7-|4f|K9GrDioMRxHwCSvuNB7pB$YK$cCBloHFQuCg}9O&UjbS=q-?DxD%EE|}N* zlT>P6HNo)dPN6c%BU9VVqS#p%3+ea}iZ3Eg$4ym_;t)g~lO{)7JXV9G15Q4(4k2;4 z4|I;gI%kXXO@Ss67YFpXqma>WDpaNDSvv4xg^C0cH#n8L;g@w}9A~KK(ytbASOjv@ zX}g!SnkYP?)_K;UBG;}am5|KL-VC4oq>BqF8hobo?(K=za1-lp-P`8_Ec8m8<=g|_ zjJlhtF7){5Eum2Ar)I4bB!yHp)42Gx#y`3^OS6Ep#MdQdad45`_iDNOPZ+ogusOOnbJBSfh zpQ!G`ZLm4xZaoMNV(AX^Fks}@$O5r>K$k%5$;OD5jE`Xc-clZAs8by|y{JlDC$Y!F zvoR5!`aGwz2^pVaP}z2&T5gis<}t;b#U-l8EOo%1U%j{Kk#bsn5vdv!@yNXga_z8- zAwL76^mU@lGB`u_&?Kj+8Q5~h8~bnw$xa9~+IFB|duYDlo;)7!AM56u_1rKG_)!pr zc8#7iSVG2&<9GW2l#bryT!B-VQ>T5_L|i)a(u0QglyaBR;76P^x2gT3XRRIj zO4>1+LWy=0%t&3R+e4X@m@3qFg|VhSDEj=M8n)?l7Lw*A_cwsk647iq1wA#0k|7Hr~J3h-X|p3ZM-*(SKxt`d~IU&8$`K4i`x8 z)^MJ#W@vL#&(6FMPW8KcZ?KSY*cc>!sMt04S1O&2c^!g~x|xMk2MnV>72+c1C&=jC zl~8i{sPE+uE)E~p+|*Q_ALr2Mcc*Ai1K0k{R9aoLm>&eGbwC+7%wjCY>hrqw6^nXZ ze&*OX$C?&R+LU$cTWV>RB8|5A!k>pQm0k^YIT{>-`2I=AjjsM61nHngXrH(&g9yyA zL8r7aqSCSOF$ossyCN!|PreD$1gL9KQ=ii589D3fPq5Pu29%B++Ci5=*?963UCdJHlPC9q0Dk;0k zY~J^UGp)iV*@+AAV;Ys$+~puGGBAp}qBz7MJ8{6?f8>EIA;}UN6r{+(&p99z*^p~L z4`2H&y3Z}kceKAf1zGQ(Ee+CQX+aTif^^UzN?{rN#TIbsw2O9R+4s*6K01a?i!_Kw zZSc#ak_QZN5XP%7nEMXch}TOdiv% zGqL4e;7XQ4JL2{;726-R4pxzzu8(GOtn_@jR4O+eZU)<=p>*(Ev#WVkco)Q-ZK!H4 z28KAbe(>yJhMfH*=#)FXe}dTOe%=;J9dNYAD#~K- ze_-Eq!Drmv+51v)n(N3~JjhXT**r?=?65~PZbgnfwsHuwxvA|3p$DG7mBb8w8|P+m z`rdQU3z{f*)10&Xv3sc7z<8@1xO1{JDlHWYi^t_~s}BvX*a6?<75C^0k5_ce4VCwq zH#V^)>+rRyJ<{UVN7q|iI;arC#A~8L&CcqAl{FAim4c<&%Gk&r>-%ptN7qLd#~0v` z7JN&4fy4B9B(t}6CgC?wk`TuNEYlYq1JaVTMJv*de7{QAyh)K>e*vx3_mA^=oA-~) z84p|Bf9-%`En-6;NDxvV+C8lZm`^QcA=QBoQ5U-nJ7%#MVK9g~vdQP?m9}ETS#Q5y zg2X?Y@(-JKPk$xqA6)N#>?LZDSt%u!ZW5ImSi8G;REOvBEVkHe(JtP-kaGF8rB)8- zc)(^w52Uy$Y=GOnU8n#tjEGhbqv@a|A%=;SVywx^m~&uE8GOmu<0Fx>REpvm1j}F1 za*OBiaFgJ?18}EEORbX_-1$>9iY%sw+FpNiMnlAk z@dGd@6y--=O1+C37DSu(L>*Zu*vR};+y4F|J~vn!`v+O%EKomd@Iv@X-!Sc^-+{^Vl-jnWgSPiJLK+`7SuwJ244v6i_1j3zjK)fZqtYY&AU2!7NPcL zgLjK(dFoTT;5MZy-6+DDO9!W@u8#p(u}x6&1dDPoi-f0j@sfTw%PocDL9NJzqRsy=%D};eR-Kx7bfQdbg&2mQRfvB^v0glaNW> zb8nk}-kL1RYYA|N@C4co2V&*zJi6R-=X(p^WkdS@hlMP=zkU3Uvnj$u)Cg~*$!uuU zI#@*pTz4uzuuvZqdzpAys8DZ|uPl}NYIHK}k?CYZM!QbMY@q2Jq61f1U7;j}w@bOd zf8bhl!Dd9p`;T%FuJeu@!8Ki>K3n>Dt_{{_-P^ox+D68>cA%9Fxd&1EwxH4`i-o6Y zb=Xe4==o~tVk*Rv>VQi;#c$8oalHfyF7_PWe+0INt$D?>xUk(dRZ;>+_oc!(o`o3}QdD~>$ z{Wdx_J|_Et_DI@NX#r1)HN;J;4vWgbVHRuZQibTH4n(`!Itr9+I$rabaI{Le&;j_Kf7lz1qyJC> zxMT@r3^LdQvOBBLubmE2UwJ!l@iA&zI*5eIyvhQqL+zgJ0KBrAm3E^@halQ{V*!pV zq{6mky==?7ldf3|hMik|j3*L(7a1yvS z+yZ^z_(&>Vf`nfgD(MxX(kw*0>43mzL}31m8w9^WY0@7Xa-&2LhOk9UBQT$-hr+ND z`TXLGdoNV;e4~OLYD>k!+9LKn&>F2=mfAr&1z~n_!Weattu&TSM0W?NG77XyIaOre zaX>cmwWVM=`z=E-3LzFi?+LlrBd`l>Hy{zDX+?PdwDA6m;Z+S`^|(0rfKU{nFIdw5h{q z)QEteD9)E+~UNy1{Cp^_C|~7gj4v?ci0tEw;UR)*%+%cp;>1Po)t~J1?AnI@m&Z z0Y^qHY?TW(DJ`fVS_g28yhCZUHS25+>BGSvlBYVDg?aCc#ddZ6>oQ1->Fj%~sfpFX z>N?x)XjheF+X))SV<3MZiV_ER%8uFr4U>fe%W+vd$l5VT$83mN0~XKVoy5`5k*AEQ z*pXe?4CLFUS(RC8&-b$tb)Q81Vhhz+)e4e_5l5j0g(SqsSR$~ZjSRU?0?Vf}vr@1e zC9}Uev31S|u2vC?fuJBP+JV-KBt);R7EH5?$~+V&TM6&+=6bVc$V!1ioqGmn%YjIP zD~}6WAWsjjp2g7HfB&sUw2qC>iT3`>^(?R`ut*Ef>hTG{ape7@T9tnYK5BEyQl0Vp zid|Sm3YA%UcCjEHSBJwb6m6i5l)sb-<#y;6yD%v2Mv=|=G;zLlag8z9!tO^UNPg$g zrFOt)fn8QxlZ*u+4h77l)F7laIkTJ>MGr~gNya4j*YA)BQd|TBw1pZH02ipB2V=V$ zg$mL_IxFPs*}M3ww8KKZ7MDXDE7sQq%kc9^|GpTQx|lMABP#X*In15zD0 zS2e--@p*``oz*BB7qP%MvotUhsc_gaiT%w)?*`WpH4WT)R*&Kk23iwYJH{Gwn$>bd zH?ok*z}3;mjzYV7IuVp4Kzr&3cpmHkR?6(*n<2dJ0{U2Rs4##I(h2<~GlLzbJTmjK zrHyymgUjl?{dM-?N*a#89}WZi4Ir3-0Were=*>+QI&@zD$JE*VZ!LEth~6!>O-E_% zLUCqyE>1Xyb#ZJ$&E0{b%<7)Yx-@QO^uM)E20M^(O>D%9#lo@}h{qt>5v3j1krxVX z#Q^3&8Nb=k$t%ulhh2cY*>;mzMn|2erEy8KW@+R(9^-lx88M3syRM;N6JyI8Y{%Yz z%4Hc0l~J(jAte3|fm_6vL68n>>ZnE>G8-kb%A~?9duue5nw_Hb>`gLhF+}MGg(So< zaQyyy%1+(pE(Mo0kq`sf)`Uta*sE~`csV-BIeV%)cj?GN{;bA0OcS%zN#Pt%W1kgw zU^-S`Er>;4UYX>fxEJLE2{cljL{4K1C1x*+LpiZ`R54rcN@-{Z>4Z@rPZ?pT(I+pJ zXNDy8*P?sUB}Dg7*k~bo|EN@MI^2z3qez&Utx+p29>l1Ru?g(?RGc7cIb@Ydg;`oz zO6~d(qHQ^83yZ}^Kf7@MW;-=YC9wcT%XkxSU>9}5Ww{9) zP>o)VHu1>$w)I)TH(->h4x%vYAtU`##nD`}@|eWzHuI>eEO zQFHc@R$^O?yH;8dFDhTj*-?|2Ok~a@N)2*%SccBj%E2m?v_^HoDadaCx#S_A7LWL| zp`(@RBvP5>Ym)1yJ`bVA50dEMM^?<>+@iWFs5zKz#A&n47HjZt(9+?M`9W@0yque? zdoh)pz7^myb1EIrww&inU%Hs8lw31*t# zofY?C3~BZiN-fnO9ai+cv4Z*sj8HzMvsh43r}0f1J^K)6ai<9B9Dj;FQ!-Df6e_d4 zWzUrl=5n~9uz_$#`C{aB-@#Wh-7VPjwL!(z`uS6BOwV<5zhw_8>~oiN+PN8Zl$fMRFLW;dBmT~ znS`25FT~H?!mki3+p4il3$ADV3fjDpJ$^;Nfq-RMEFEk?T=aPh7ww#XQSc1kMB^3S ze?VNX*T?(s$NSG0Y1{hFRNJw#*bKIk4 zonC{2VEcqddzS#V%|JxAq0Zv3Wq~Ns`eJEqskKpEub#c3%irSrj~;Cy35jf}8XN+6 zL<@^1HS~wjA-1p2x;zysM2qLaLmFD^IO{lsSioybxS=g_&p51BT0LS>9pk`hWbNwx#}UyI6$ai6ZF>?-Bb?zJ z*ABaz9B7PX9N4$C9k401W9srjIA|g%kkcGZ8CbEGg$)IK*!!Trf3_66%Z2A4A?1M66@i(SrZnL1-0mlUM-v_#}FI+sDNzgN2(1x zgxEoyl7VM6&6UkuU#i?oYllD&YfQm1EW&&?ad@-uf288Hr}tm1@VV#ubrK!zRO9NL zNUeOAh4e@xqaTz*m)RkQb6LZiC#TQdL}V+_jDlPUDlIaZuP=l(?>=A!q~2ty)oDllHAg7smAT8 zO|&_?UoU^(2=<6Q45TfM-;yT7)gxNzm`2u{(k^=j#tVpRTBAf-h@~S=i&Q#bh=Uk8 zjjR+$W+{x`9&1aN7Lo;hM5C9-RjRClTky?Vt#Ix!r0VDslwz5b##ttHeFU%PJ;b;f zU=hYStz=&w6=oeBE(QBR=SxLkX{lwD)9;W-CA}zYK$C{#aWz1PfS6>Uq!#NM9sO7W z@oKTe;&8M#pp=-Y%uZj1S3^KtCWGwkW*7lp>irKtnnGNs5&LwLhC1^oN~c7-vrFSZ zwlBS1Vi@9G{3LuW_$I;xA;)TrZWE7B?AXw28fY0sNaVq{W+_6P+N~zbKm9_yBk;R9x?Q_62$9wCY-8~mq8+5Vi#-&r`JsDc8$g7f@EH};ioJ}+y zcQtmV@>a!cEQ5p5rBrfyq)BA_IfT3A4zH4^YzSrxt4t$~f~S$$!&IfmGSv5Gby9UM zpT0&_;-u!H+@ohlZ6Z}6sGrXN-_m}jYr-AO4_QT<49Vm5wr}k(I`RYt9sihz3I-Z-z7T-VKe>`bVH6)LV!|HG@ znTX>K6#6jV{(-C>*IwfIG!q|}J8Du#9Dt3F=yt+59&vg!bJj06QYF!Chf1mqj7uns zIg;vtn9)>e%p0quk#!Pt6V`cjJa(ct=GzLC*yGmMRa+VnYFiO37zcI4FQk5e2DLOi zJr)P#^pfYILuzriup~8lh*PWv-xBtHSMMJbIjx4th++fX38VF@f|;ZBWVJ0fK{U-5j|XYJW0WjVW` z;RL%0r4h^2s|{^2f0j3EGU0 zsIS!M*`A`kIEH=*fm}cJv!oE4sIdSr3Mc$B<+SZd?K<2yMT{9{*0f$k|G@z@6cxsRu%%CZMZ#AV3U?E2#-$;3HX^UoEAw8?XN6S z_=wTL*G-ywuB0sFwgFsYrOD66YN1=ZrKN>xVOb2;biuPM2(Om5TnrY%)1z%y{&}5C zy?>OnpOCND5@2RQQcd~P0l)uf&(53L8$F&a%~Cr^r%Xg~M;$rHDDf+GkQh<}G*1rF z)jpy&#xN6~1M0{!iZH3?By>_QnWbg3-1hW%_y`<`!O}Igs4ZOUye!~zQXyiS=PWHn z9u5Q@FtJP)@pu@i73E{@VEZO6ga@%02y5!7M!1?Hig6}XqxX+(fB%5sk7b!q5|+{x zv(WDbiwfB%BEK-sf=Uu%AluTYlwxehn;O44;s$bTP{K3FIxXdi6bCnlK<~5lYkR&d zU~W4t>vdqk)%f+W0yDCVTxXRgWz{J4u2~y92bjCW6Um}225I405sS2d?jv?145W_F z4zN5G3lCWv1+j>4TRN}F$?82VH2HwAHNJ+&(|Q-o#dD4oKHYK#>ns*Hj)IFwYcp1XBAdc)7vfD@!V5ql^W z)ngE+XNMQ57sLpF&W?Obd5<;1utlNL7Ju2&CFupfN~LvldumIA7-aESI|La}JF}=A z1BS!-^Li~vkbe98eg*y3(zxvx)GK-YN{=(XzR7N3*~JMB1Fr}EhJ2}%eiH6_h%N@^6uP=@%zHG@W|n0c>g(0JU0yTN#2Frwm{csIPBw}vjn%`*T#)opZK z@i?ak(ldL{*K0u%qJ=dXXp5Ru5C&3-F|@k z61MdA#T?MHTKK$TD(lA;trv=xZ8=+NsmbRSuJ9d24y5S8f&M(t|DtE|kSn>IfaF=u z^p~r&G@#5k{Qc|>hYYxcOa1D4iJuKF0cSd2K+eBX@?3FHLwx^i5k(P$kk&-D&jx99 z%u-qD=ydMsCAW6@O@mWxasB)*zmku5$t*~I+0rI7K4eEtyjP0fFG`|UZn3YB1MQ36 zU|s=3B*fBw>K3d>?a+N9>SE_}p+U&!|4S5EEwozg_|$0g<<;kEA-lG#5OQmjRwZR2 z&xH=D!ltneP3>048^Q%Y0DJv~&$^4p&_HN0wdw8J_Z`%$ZMjC!1Y-@F4F0#z%13HID~=J@myp2SYac# z@nup{PAkMN7S?2-7T^BMDUi4;Wq?kRg#ulow4PA0!O4;TwpelWbT;o&sBw5Qaa(Mw zw>^K^(k!*XC*JB4+l{Wkt1LDx?ay~&pgim?Ew7x zz@#}LL?oA&Ba-?+^l#Lx=~N{mL1Deho*l-0-}fI{s_9Jsq-XNC70Hrgi|-%Jwb+sn zEv(6)`LU%rBnN!XMsST3=?E>QSeUSWgng*XNgEN*^huXbFV4YNwIv$_y zp3NGSxRUm0%#J{8#KUpx?ecvHBtAYRWA!OpSsfkij72dIeRDi$qxWR4?7k<`uoxVu zK=oVf5Qv(z^OgqGI0`SdTfnEf#&&g0Q6kG@%Mnqlt36S?|Kb7z)kW!#D$zNjx*(uw za+-v?@=1e_qe(2EeAOsI)JexlrCF7m#O#=j-Wysu-mJT!HyPsHxmQSceXDTX7BR`R zj>0zwrP7#N-qOgwlJ6q8K{&YHdFnW-BTw>0ad-yzGwx=iVvqa_^pyUTAoYua)zTO7 z_+))Pen_W8d_jZGyoj5?`Vaa=o|d#l$I{_3)-4mRX%N~ul76{~QYO+epeCgXsZtc= zP|Wf*i5v$x3LWq<`e7Dpn&en5j=W4_RB2?TIEL;_SVsRDcjs8{xVZa>62>aoj8TGAjw zB9Ev8PZ@L8G1eak+)t$xb5@$v+-jRF6jQ6dAt=*L>RrdX!5Z5r4lg(!L${cnddquq zz^tM|XUIIF;a!7MBw~;#@ZP3tyl?5U_OgeKPmUU>PpJKiFVEL#;;M?W#3@%t zQKzE))JZvKd($*@ls>wYS?F4FuMO%aL7?Dr3k*6JRM#}GTEo|!rv5t~L99by_KM`3KJGJph zb-*<8V-z}x5GR=?HI>CuDJg7+c>l1V9z!IBR4LX(R^k!5?={h?(`&%)Td%66p~p2f z!sO_f^d__^+#T$g%vFaiW&-}T(h#>+h-m^LP#(z94%@&dZ{GBUs zk7jOSu*a{s9H_b?$^J`=E^r6}m)K$H4#`XN-F$<8#Eek zF{)FWjuhmy4!8`w$4RVdl1hbix$^m1CvgUbyk@9fihOGWY$nBetNU=qgnP<0~DqjmCFTSFyuK%KY{P zy%N`1Zb@0`!CV|bCXr^P)Y_@Cf%Mg>l9r?t+&$6Pk;AjA_df=V1EULFWoBWO9Y;Hj zTqdQH2yxbNQgg+rYL1hrgW7vmA#uF;zLEN_mW7(fQ%V~4<9?J=-o^}`{06C$o^$7_ zbE`)l%W@jy4F#D^U{jIzG^^@zi=DW{y~FsuEt;6kE|gdYKZQunAx)ySM~91W@ReNt0d&ae~F=LO#q!dF5)3po_Sj)?cqxG=O(JZ4yq;r*lDWR9b=<~XR! zxJectoOH9ez3=9|B;Fp+-oJjwF4NIwF^1T&msjL_(oQWkt`>5vq=guwQY4}uPN>$N zOF$OYH4UhIGehsOgHFHQBB1%vos7mU>Z<6R}iKM3FF|BTZ&4} zu+0`t6v9f{qR#J|25{Y@0%PWzz zEXSbM0rTkZ6t>A{jX!tyaZaA7J9CuF=Xsk-DUUdC8W_hIi2eP8$O%1arE_gZeE0oD zi_@NRD#2ah?ywLZ-I)aE1?|k8?B?iX@{8NFY-Uh$+tbj=;zwAMdHi=}9fWOHYHnIu zTe``4J-H?69AkkKwpkyamAan8QkFrl?4lQ?2+v7AUnY;(;e%IAw6ODa%>niSa+Oo* z%rT|&B72Ke;W_Ik+tNLXIT|ItrwwBA3caKY0#j^eC&*Xgd=GOfwk zXEiVSu9lm;X}!sK)A#0%(3}?%S=*5TkJ>mU#q%`~!Gn4XsTyuEgS^F7l$X|!?J)(% zR|9RKTJZe(Ez(@Q)L|h+1CPn0hS)KY)Q}f1gLdI7ahe_<(J6J%5!Kj!wARHn)hUJy z`|S*>lxJORi5N)4jfcxui57yxYB48+&Ebd+-O0_WEgUH$UN1O!N~(i&3L~y*5ZXD* zfOX`@l!H2yc)Xh$x3ygIui%^EneV^l_aAYlf$TwQ|KiLc=6yu9p~0!8U*l4zSzCN@Do413E1C15#K-YBR$TZpOFaC5C7ZoP(5gi@1M0pk&f@5W#nZj|LP!}V#%_e zozw$=KHu#uM0+Y%=~%%vA!Ml@AL4}ahTc=OL{dktF zb+m#Suk`&FWc(Ay<$wL|40^`DUaxQ^D-ywzJwX1Myh$mI-(aeP@l>Y?|C8MiMLY&t zt3&q2>}zgd5B!UTW-zD9YB+x(3>MlqDzed^d9HGZ;l_U8p;aSX>_BnhIMIOk#}}XK z#m+=Y4*?estHSVn62+61&C6LEF8wg?!1z0}C|L-JX$QuAAP=4hwN zdI1F-k4>n!R7xBXY26l4gtQL0%OsQv!$Wx&Dw8}iHUC~Et(T*ZKSdu+8mu`Zhs6Gf z0TsWJ0H=5qhb)!MsSG`m4k%=_O*PeEC0!hLY)w;N7LQMJIMFi_X{lOp83>kz1sl+E z*U#KQ^X$Trs4|LhQ)`;FLOyI8<$%;Gp|pc0HMXdwMgBS)mA@gqJ7F%ylkQ|{h&RLZ z*~rXj}IV)532}z|l8E~GtnRi2{dP6RLB+&(YM;&?2@ys=~V7XZ= zRFB_M?E(eUMQkxqe_N35N2bdMFh2rIu#+U8wF1%(0gz8 zq{k?D9&-`<6;~ z*af%H)zcM=XORX)Rs)PBu?KtmbFoDsdGTRVW$ozuF}Lr(f3J9e;`NKy zvYanXdZtJG#Y+TVv9pNc5GQ$T_<LFK*RT0moK0m)Z5tgT3jL}-xC+cQ_@=ddTK6ixQZmXP-uh+L!(+0rh05Fx7 z#uk#c*ha5hujNW42!bNTm#YEh_CGcqyo8shfhrAZqtr{S$s;y5IE%+J5YCH~o4uW; zfyGehs1J(TK{|yI*E9$v4^3p2XCJTuh&pnRQO)J%qDODrOKsPV3VQ!+5jlv9gLaTk zVMG>SZPx3{{ivV&J`gSksZfLRkWpl)g#GTKrnBIu${ZEY&ug<%H>w4(7(|VdMQa>` z?w}+g2CxlhNk~ngN{iwUjJz`#ev3G+>GcvM%Q>$AvRgnku=Q1?hL|((1H+(k-y!q+ zrvY3QoL>*a1F&AUW z_fG>a;Md3yoLN+3^=mI+X|#o?9gNw}UYG5}@*#_hUn0qZa8*K3j{zC!mo2p?aWApT z_vCTWgbMqWJZtPRIpkOyUe12KVo?O7aD8yE4_#}FqyyaYTGzfy&d?1|^VQ_m=tx&` zzUi%yyF&>Ze|JBbBOR8u1<@u`eeLas8@%+CW zSNc)qN}siz3uB1>!aBD1IFVP?t?Rk9)y*TQM0{!!4h_q%xO#^E8&BX>c2$ty+t9)R)8+12mOGET% zhUsLXq!-Ea)Fa*^8TU+cST0A8wL^e+{zp8At;X#uKK4`TBVPA$K$g}9-vp^m8epfC zTTlxjb*M(sV)9rVUI28Alm^t1sqp9khKSl87cyu1`>eC4vrdmhgMWzY?qQEIFRi4x zXZ-##jXmlhd{pfFtmHJZuN$QgC!M6DF^dpq9VeAc;fI94*qVsGEx2+hy;sQ}qU*_D zIq4O?;t2~F7hqS6SCTYXL}-^2k(U$B2WMfMT{< zaG4Nuv`{^EqZetxz93Ir78ky4j*qxnct8hS^k1a$>k4~P3yZ~%XVvG(iv}4rex|Ew zEFXl;VtmLcuoPD}p_8`5=C|{IJYV&C<+I&iMLoTA{$Dhn>Bsqcd?HzbMSW_6BMTrr zE23u{&ocxG_`4oJq_}rs6fG=bfTE7?pU!6u(q;ZCSsJ1Nww4ipzzD_`^97n(x-2cK zg%AxqCXX+pBkmnyr$ka>YmQ>fN+T=9ky&TN1bqMb4D0nu^-631yB)4@C2|SB4VCis zifAC`xLe54zy_;`UTNvwzK-D*&~s4oh>c?$QgtlRNjoHxn>ltU#M1`=V`Lt z!Z!oczNMyHwADuCN|FMg7rN7Du-(yQdkN!iTkS9hXn8eYxmedPu z$>Y*NLv)^TOX2ilD5Ma{=`}JlloaB~N-_9pKqa$v?0m)})d54Cgbr%V zNh5pjD0R|PF1xu$l6Lg$bLx)BHaVvU^mgy#S*4Lk0p-~3DX4xud@od+i_D;pF zgwCQkvRqcd)GTK~4=bYj1sKJ}|Do&5cBF@iD16V0;z0Cy(q|6Wlh zN`)uJsIV7tHCNq=edf;(+1|gUt%)DWdI2(i)>`*-bVJnTnuKfej*>Now{(PO!(&a& ze6%TwtPgk@rEpoI18yVSr848Gjrjo{x&)7_LkaC-BbwsZG@LgtOU1;4jEjfF9NGfg zMP;Jj`kNifNvT8aRahtRQuM5Fc$l4@1vkdY@H;=&8V+12roHaLnU_we(PgfO^`Yp{ zDfh;eV{f2l>gEZjXM|haopJ0Y=P=1fnbk5$G|;a)fwn8jY@anA?jqV~a)WUC&b1f7 zU1M;2&HXwumecfY!5fcHM^3(u>b5TV@bP4vwS4m>rImXR((96Gk2YN`bJc>VriF5YtLpn>=p5Y?4O+q|$ld0?V3ShSHz&Y{Z_m!%5~SrgcnDG%;7 zAkQawM-KHzL3hz5b@$wm2Y!ycOu|%tc#Mzgh#qgq{-d#nNwsoRtQy_w!aJ5i!z^Ra z*=X61jC|(~RnB<61R?zJ2-@-U#J!#ke!Qi6PQO*TrjOdDVfPqLScBv<zyTUn#GydxjZ|9t@=$|W3 z``THi{klDn>Se6gq`UyK3Yw^Cu%w0B6ITE*Aa@PpTn zaZ&sAlOMc(x}LXvUOzkkV%p^jZIatGo#9)4{cOdt5XXem$*HudSkTlUr`l-0rdMh? z8-*eA3?9#gIq}~=#@JaF@U?u1I9Qyu|Kj|6{qqN}U!H%jf2LJ(OhBotpJqd&(?GAk z99MgPb^a|e=@nEE4mqdcEwt%)X5~)nYKk+_RqYTu#lYlDdn3O7-jQ>uc5Xpg&@t3H z@{|y7N-2FosBVeRK^|-`7kOM@99KuqVUpWp%K0cw71RLgGu$kA^ENI&ga%?H`@x6C zP{9#h9KoU)c-=U_1Ao28tB9DK_cpK+A<&=}yTPQ_U(WrHi}PU+M{hC3DwH<2k0={l z|B4APx1b2PWM*jT2SN#}N8~Whp?1Vffam73OAIxb!Sl7IkDx}c-{byqQ|Ori)f9?@ zb~uO?C*e?M{~=l;P9sUUsX~R}*yW(I$IzXKZND>`XA*DrH>QgrXyVIa^|&CPqZ(s8 z6PMru7eh?=PpGmO`g7={jLCv2PMsaFm34Jh(u4=>NDP^^S_rE_>?vzfBWBwy-&?p& zrGW1NAxaHOTB6ynzpvOW9l0AlBW8uj)>EMq%sCCm;$YQqg^|_f{(+Jd3J~3;!RsG( zq0`jJ*uh&q`=PCYQxv?zZS<}_3pCo>QCzP<9kDPS7wHL@s)sckH^3#m%J z3TYUut6A2lHMEbs6qw~`V3?c4hfSi*lPU(CjXC?Iuxcp}ODw^{H3kfO+=CkOi-XYE zU<{97@I<_ROFAtvO+ulr8eV@leEp*Xwy7?(BR3#QFHfy^L%j$cmZCKkY(EK`!({2K zn7E>nE(=r8X?D;V%vo{G(XbX$qe1lO1)4Nj-(>%Ht@mtPEIPMR?5(@^yxCL1TbZpT zQfav9DZ|0k9p8S<%wkBZlh`l<+5!8f|a8xkHe!`LaTS}!<0zG=$O(@k7oN)%=VrL2Lh)is~h4hA= zLJba~zaS&gv*&W|#+mDG{dYmBlk}H}A}`##p!Qb}0JdPNPfUzyY_L1Vc)dN0L>(CDS;3|5|IcW{#UZ6?S zMlWp|G`u98_y4wTE#*qSTYC47X_-)lLT43bdCz>$|7ju~L2&ia*=Egdr7_P@Z*pE^sE&$DMMuL;$GdT_W1b~1kI=by z?lB2F+EMGM=7OzWD!s|~K;wT56P_hd#>amdWp;4) zWl|g;bhvfg%zMu5UUm;kZNr(eOk$ZDQh7%7e{7u-xQc1`u9%*Vk{w80?#6%BQNk>5 zv*i{*=a`G|w0UyouAgoFZ{KG_GxNl6_SrY|*gdnYcjtakyC-n#oDc6?L|Z$XdG?P2PjpbzbQc%ew})EpeVtQG7_1gT-Qu!fulT;ffwGHV@W zk>^cLrB$ZfN0dpXNsVb!BW`WTv&g9qdY)sS!};dEzc;k2=vJejGwK?S&|!%|DLg@{ zG{A5ma=)v4u#iI~4JPJ&lU@}2MJEjdPYImYk%N=vXyFSJyS9QQgwB>4nigvb?%H?o zA^U|7aZXn9y7Y)>x`wC67)T1-n`4JAu>XdLXTim8kY&Jf8^nQD0dwgqCU2p<1<;wr zV{dp(ZCd2nU=xp;I(6^a;XQTCvW}e7tg0vtUX7#n>W^fx={B`<*$*0!ZkKy+qo|don)_p zdRb=YK2x4VO&)uF^tPMBo~7sKJ#_q>g%(#jH(d&Kect|TfKyM$wL|V7-e{o;u2FBK zE8WRo4m-x93tZaj3LPhTqPUqSxQnSuHW$jQzijRc;m@6qya3o!qm~$f=sQo}S@neyoN# z%2bGRPx|^52+uGXtsZlzh8WJqB^c~Mjm}PT#1;d*I@|pchPi$g3(G@6yA^r;-9ik2 z`yEB(Lx{nR)uQbZ$QmZ)Et#+)Vx5yTka6r?mdQ}6p{i?Wq7S=dN(lo-3M|{KZi(@( zr&_UOqoK33#iG)wzGD)3QY^_&`_R*;o$r{$P(6N=jRME?CeYOeOCZL^`1FN{5{*!t zg69V?_R#Us0oH*@z_gt^0N)=aG~kWXBL?mK@%qckQF@3Xtf7Vu%VGTaeOsmBqax;D zVfDD|-QsCqGpffJoUE1o;yRUvf#WEwjBOo67(A}x zgdt|M>{Eh0Halo;O!Rmek|xFu6*d$v)V7r-1ivn0T%#-t-Z;~Y96Z(zF{m+DJJb<$ zz{O{f2k2R<;H=C9ax{pcV;(Q`()Dv_I;e?CN6vv6Z#)&MoH2LURLWHDv?u4tfktF` zUTvetvnxuklh(o8$n@rB^K{poEf8UMek)XdM}}I%q$1_qFn-#hJSR0sUWAzrX5dx# z$w13*UT>4P+}lZB7FXIKh5=U@1oN;)E{xwXpg_E94Rn-Phmu&`WQ;RPR!XgdWp|J% z*FD&>(z80LrV8?;wy=(BO5?hwo-!O%TuD$vwZ5HEja|T#eaM;Xz{lrJZ4aG|N4e?e zU9*>LSdI;N+s;XP6HL*<6tBs*nl_j#CNWgR_S-fci)X^4I}SNn=928Uc_{6@3DEvK zeLdaZXGZlXO{j$h5v52npc-$fLA4OYAgu;c9G(W44Jh|=Tk4>eQQ8zs3=oe|s$)(g z#^k~-y-;G`?Q%1+nzMx{9oBPSvV|D5JNV6wZ@AP*v-*$Y!0;br?Fy@atT(mH^6Bz= zg7$~ll$z0BrbH=~g2Q9Z#se0lI@F#;JgUQ&L+v1C>AWU&_El!bK;pxf<6I2VBIHDr zMP*Pr@|f+&gUYGBJb}(8Pm0~M7D5!FzoMl(>reuth>FEHKXf-y$yP088ih>mh&K)kIDMi6enIH|d~>C)GQp3|XDi&)L z5|b;}Ona3W4z1Moe6njDN=jyxz9V*B28yy$pm)1cQHo8-hnGK_LsDZl+1?UHp)n0Y zM%F=i5j*&wmnsqc#1@FXgDoS^GIDzBaalU4Xk-28v|8lWljRMku8mg5JP;S%rL2wAQ@){+Nq}18H3w+6;hiYh3J?#@R0`Yeo0Tq zeXMI(Lwu*TN;zqM}qWjl2p~PS~N-n1zt13O6CM4=LAsx=wn^ zK2?0AfmsPx)E2&9VNY$kwD2w-v#bMV%N8wS=?sLV1CBNmHnZJw!xon!IXxR3f+%k( z8>xk*Q#|)YhN(8da~6ia$?U6@sOg7-_lPFQb3j;BkEt%EzGEV*g|pf%RcWe5!b)N{ zKo?LyK#|L+Si*mm)});eE{p3d#Zf!tRGn*D4aMVoC+5S6uVL-5_Bzo7VtfqZQB0K7 zVeQ1kLmaW6G_j@L3NCj|2yN+$e^Q?fQM2Bq1M|hyVHKk1pn6ZUj>+pK>k^IIfq0fXiS}t?7Vx-NuwQFsC~CihhuB>zGht# zHLgNXRu<*XhnfY26s1yRStO(lJ{iJV>c>2E^$Qde01BMj-|kjSvNKzeZ#L8 zlxC=S65iS4_pL8aeu&9?V}CU>#NMWsv?mKWRT54(gXyo34aLHu18GCXm^!+N$_?nD zlN!s~A=5)Ka!j*YmQl+nd}*mC$(CVd54eg8Y}Af2;9_-CPNlqNb~=?z!ZQ~8#O!&` zi32*g3-kvW9Zi`=A)~k|zw5c$QOP=TX0@n=%!Ii*9T*R0bhS-sMzv6vNm=!|PY}E3|NS zv9K&1!fN>XOB-$(lkgp(IXGnltQJzcc|i8`Y;I1~0EVw>;3gi`=tvfu{t$f+AX!@| zSsLhvR1#L=O)lCTZ$T?rFnLS+r-EWaNNQmbCzNyQ*-$kZv#}ER=;Qd=0U5eD9-ZGG zIn*#qtiz@wlMbSl_hDN6=#*SmOW1;iC3eD)Xk0%_BPbU*ni_ly zM+f|v1e8r}g(p+ZT|W^_ts)9NbfadC)J9g_iH`#&3~eGf;A z)`aiUrY?Oa20jGQcL2{Q7HsEEwz*OF)V(KE$<9}MNQG$SQvOIP+If?%EMT;P>S8gi z2FzSn%l{!3Vsembl+!>TL>W-iD1-ui(^Y2`HQJUai}=qiiP4Hw%%=zOQLkk!lnUhUU;PIa!IHjSw? z5DV4f-r{-P@;VCyXYq(mGdv76^$m^&=MSTJUbX~kmz<_Y$za=hTQ^K%varep{z*;) zmO$UH$<-~N*Z*5k3&COzbwKQlA#hsk=uZNj2ZWD@J{qkS7LN|;yBMuWjdJKvNrU-5 zaGY2Nk;pQjjvPiI6l?-tvZS=`f*SoYa+yS!RBJD_JSS-tQR+=U?>gL#{9g_$rK7a& zB23B(Q|e7W?|LeKf)tQK&_3Ep47si@9YcnK}M{&odjTglcq zhSlI)fQRF1ZVh<$4d7!BYPDDIn*6fxZn^OVL(*B)MbGg1mEl{k@GcHLC58@ago>Te zCX<^{eppznbjHsH0UyP}5*%WuhZ@0Zu!@4| zxoNX8gc~VVU&kCMEc?0bo5ohlTu3@{JX;Z%N$bxs8K02GT0V=uu)0lcZg@^X*67Five6JPSRd6wC~v{} zJ#<*2GmloLF%y{*C%blVVxyLV#z}6A}Gl;+%iPLQ!j)l+{P6(78=x^0*494I6XMzER8JYqMlq zSzm3MTEH?I2uY34nqI#@XC2e5DbbSj**6B!{y7%0Y_A0Pd8)N50%*hhY8-EyM8VyM530IGH1ER$H4QR1w@)h3hByVOY^ zIZ?B*lc%E^lb$1QiHcv>n2pM2pTfCxNS)U63vAc7&ANdHODNDgUFnpjSh2I?n^YQI z?+{vbWSNAfNgjF7V<(-AKRrpw}uI_>bso6!ej%*DmVePPY50@5Q zY!fQgvoAQ7Z@}F%`EtTAunU)wNvF|yTBqLJv%{-9+TlGoVx$1k4yPQ*ZKjjPjOc(Z z&)JMTw&i@&3#LEZ6XM#Y!Ggb$yxg=34IBSdXZob?`IRhnWO)t>i$1FOm^9vRH#?7B zo-aEe96s_#tH@O55GZVoq#P;*ui?_bCt*5U7?~CME6^7@ct{J1Um~U`vs#u}dv5CI z&C)Q-7<4vn`MonT=WTBQArGxA`~fgJ{AM`}dx0($vpz{zEwf@{{B@obJbut(N2|wW zaS9G+!2x>}+NpZPP~}I8*=@HG6J37sax|W^-qJc6g|c-KnPZCH7AECgL~G|ts~k;~ zbB&x|rrXxAbrOwnELN_9oAY36lyt4CQFBGtsTIdC3tR#2=x@A(10L`^`r}qNKL5~O zN9LLy4V}H6jkGSHDkCox(<-ojy2*0S!HtpzOVQEEnrF2pPsM5=E&~Vh)PMP2o^zjW zddk1l^%wZN*C#6o#D9V5f zd1_0qlg2j6ajwm@2lnW)5ZJG#1vOn>hXNN@I50Xp1=m3?(oT*>xz0|A1&Yj6+l9^BpC z9UAxGPH=aJKyY_=cL*-Q0>K^fb$;)?c{BOuk9oaTH$|`BwRhD$b*k#zTU8%oUJ44v zqO%blUErW~J}(N)OI7%@(D`#N^D~zs!8#L?w-eyid~wNP zyh@DEMv$}0O45HSQ9S?$W<$G`6^tQxvU-0Ma>{V3X|r4xr_wi;;3}E4_MVj9)ZdqA zk%i-4^0)n7oKx9?ym+K!FDCiZ)J8bcIyj#6+qa|jZ*Oy*roJ6yvnCp84e1Q1*uZyO zP)z|H+|Ev^3{mMs?Xy&~rT4h*d^CV66Wp^~RBc=rW;LgEMG1F%40E9;6`&*Gs&M#v z_q-9TCi!BNi8kg<1fb$#mSg`nTyLpY!|Y3D@y2r%JtE$ zQ6iMdtM8jV;)8cr_@23-9=bf&Rf0P(06NwZf`K$L1EM6sV4R_0sQQi zjUjqdZwzyI8P0gv1`BLIFEFb=br2y%>DLg*-Oc&43A(A>4xyM{Fl;b)isB(zZ{dz^ zr6WsXIzo}kA%15Q_E(N{>RTU`5_h*3|6V!&d%3~vgn$gx=rSCxh2Y*=t5U)ggMORQ zO^3XDSg)7)Y_7TxJ)0LBrqGV8g|zzg&Vb;3#!*8^l|h!eI)MT>|5GAoet}X52BvYV zBt@^9DlntNQlSwP4=Pwy7+O*Nym@P-WBxFCju)h-6PD2RmnXlfRDe8({7aBMDK3Fr z_7e}hh`iS-$5GF{W0dg}lQ&7vk{-T@eEVQLWCa#Uy7!WlHFomt3vyzJwj|FF`swb9 zwF|3{K4y;-4=MY2`Pn~jZg{@uR&BmAW}c7VH;(?;IdR*T zC`UVfSZ@j&aa4V7Tl3xgb~$!MlP>@-?=-xP&PF9QKjl=rvV`^1{k6z8X(?uoqpakf zx6vV_!`rtr>*B4wP)(29weDUHNp{Ws)x*z}D|^eBchCFu9}8)>5P5o`QT-^{E(jen zpl+I--^wlb%lp2ZW)2381X!ZOl@Dcpj;g4HC9$)Jciy2Ck;L3MU&Um?P=zwEDe3r1 zC1|$Z^jR&2D-NV4AvGbjnNl24iY8e(#&}`jtH1rV|M>5wt9!6g!+r^n6DeWpM&I`N)qM zQGg8lA}6+~V3bh&c>GL8AISoxYVJyVFpa0-qbaJ`uKr2gsyEr|?ngY1$*iQ7wS~kPq=kdobp_Fn>kl}7_s+a4^Ol$LmfNJ=1> zcO--L%@9Lh?s9E8UaG$L{2pp;HJ9mth;+;F#_PJ@C?q0jv%dh>5bG}PlI;uUWR|m; zpzcX}HH3!rEUk@3;==h6Qwg_0tGoPwuyoxTJ+x$)#m)k}vo@Ud>|WT~;IA+k8x3ap z&;Zzti_T%)q9iRr1{V2&`pd|yCJh0%eA6n!ViF$>>)62#?g3?f@2u2ih%!@6@j?q3 zYNPL{OSkD(CRO#duB_=N)>=g2;i_imZ zJicUxv!oGx6ymN{!>I#buC8;ggJE;l;>b zw`s5v`>R=zW2B);d81r(lRnEe2GzDnsLu(ZM1fDQ5{!4!4W zyL4VrvnS-ukab^C`~DpDiIa)r_2V_dg_MGCvK(ktzf&Ibsqujz&sJJlWvl_uFdHVJe z#86{NdCIC1EsX?R+mUWBn7#oa^G4w()xdl2&Jru44bEgRuGl7nFj(o&wltmt5vI&0 zQ6ps#Qh{_tm@w~3{6$Prk6|%%q(0cqk?UOWQGqk02PkC>5;pYE5GG}(^!PDy$K#H! zzAFJc85ZsV${bW0wc;2<0sAqJsUXD40%?BDMYwAf9DJLJVn5#j&LEqY`wIqHx40iy z(=-b+#9i-h+|+hhIP(FM3lV-(6(P^@oCw(wK#lt z{3CN15VJ9Qw~%HO1V)Kd!K(vWB?4EArLCAEMC&autxzW@TkVPRd!FAS>M$SF&v^=Dq=qo?pn zpE`THHp0PBL=J5rt4&6vRn2O9L4ZQwOmWaAh>IV|pn>-lh4@exR1n%|QdS(FmgHYb zsVUr+)_{lH&r-d~!)*`d1WWw`?Axzuj0aau$sPk1@sI}@2}MVC*GkPa=tZ>T^q*dF z#@OI?$Fn1rL=UUuob7D4Fp#APL^0Icg#{<3l-$Y@H*{AV^88)+PVSp|v~&BuE1UXS z6ig4#d+=w5*PCih-7)YvwlyHUxRY>|P|<@H#~XjIcU?}1FXAqDev-)QFBL!S2e-&U zD<8MaO-&?0F%=}xq{vfAE3%dDj)s6f>u~BqlG+X>_*evvc1nS?KZneN#AtulvTD+8 zYT)rQ`gI)7PbC34qLcUgoE4ZVviec)_an?q?PW(li97*wT54A{2oHO;wr-eq_KA;q zy5wKz_h@Yn#?W{N_Y!#w$ML9Vk`LeB?B3ixKeoYL2Ph(fwi&?fLIo{ru%KuhPq9Mi z#enHw69(!ce|=?^YacBIiR^G~KvoV_<@Wqc=}C?5>>1D7p`~GfU1liMpuhCdQ=UjE zYEc$_xp)Ef_~ZxR>$k4za*^rTnq*f)bgr5hF|YJqOh^&JuWH9PL`-53 zz-sfEk{jJgCP5{~Me>T5C4^ZnS}HM9W8Pe`j!JGpkg^!3dr`dv zj}Y!0G}IJDv0yHHTq&busX+`Sxc3s85oLU32`b3h)qrgwJcuLYB3Csf8IyO+(s;z$ zJ8he}oR4=+)$ewi##;tsNL|y3n^H&7sQJDRYrhSZRi5Y zv7=OAMnc_0l4C+#gL(a^M>3$j4i6U1Vx^d+F(D_cc^b*%g1(-F#!Bzy?J}{5|RCob52EM_sJ zUR0Z1AX5-4l)JAG5jGK8Xt_mgNOP`vCpf?zgGgl!!_}d^CKCOLYQO?C(E&`I2vpcc zNMAv%mc9{obIM@o$=B#V$r4mkG>e-ymdCe#7B2m2Sq!@|<<*8T83XNCAe&+^14m@m zuTqE@#sp)kpW$a9a^%GDW5N^88g5m1!qD28IFpN>RL{?DWfl~-<}mrnR|9#Gv9%R5 zFT@j}^>DXk2!q&y@)%hdk{w3wtToRpaw2vu5lW6C%7gZj5}8~19>;H97(LKr29EFm zsKc5btxIh*$P(?%iri@u_yb(}|u(?NFWGI7K1l~@c zuqU{)%djiiF+&tAry-PXklTr#;Mu~31*eS zVC08q@oCwJ8nl{Fe`8>|kzh0)N=JNy4>D3j1r4<7Kd2C4AYgxFB>$m;kW!2OZ1EY? zYt&K^(sLE>7)&;W_E^0e6Fdslo;FGUFwH6kl}6n*FQ!*W{WJg{)*(9}oVZFw8KWq{ zbz|aO2xqfAI0_!2y8Nc=QE=Bs!c?sb<@Q-(>>WaW1;RWyH(Jyyv_{@iRV6{wufQeF zTA=_T)#BM1*>2an`vZQ1#xSIbL91U&z%~M1W#oXvT*-D_7OTD+UbpNmC#E=Ay6#oc z#rDw7llG3Df#<2CIIP7pn&Nt5adQ>NvSRWjc^n7XAAar5?ZU#PoW}>MO%J}!1-6`8 zhsYSaX)8^;%j|K~`q^~@dgrqu#M`4K^JLw{E!?FP|ILJWR7EI!QCHt$d}Z0?QDg1X zOC>p*Sw$-Y=#%VN(r*=C=IyYtI&5!M+_p)G48|sNRH#V7HAij*jrWQ`*xFk|g(e zL?#z9n4_bx_X26dpy!QS*enD4wr)7!%0;`7e$p9YAlyDwk~LK4YBd~DgxONwANfR2 z37E6`nm|vTW2gny@7C$>ekf|}yXK0bwYIYtzG-4#zRi7$tsZitO^omw zw?4FijZ!vPj=U~cj*MyChWzIBxmKZX)xwLaTOf0LyC075hSVYupLv7Dr|d^r#87Ic z<6Wb_%KShaw`2+Y)!T!+$0^M6ir7<9FT{nETL}y>tSgBzs;K?Fta`HZ0`{s7k)0zQ z@N*q|R~n-#3&3m9rMeq118q)4dOE}%okkk%{JUMUVeO%4IV3&-e4Lr{V}e8iYEggj zwCc&qRr~zMPLF;rAjWdXYQh~n^l;fm?I z23Xl2w_Ne9u_9U0vyu*Jx2~ku+{9-u!p|Q3mQKLQvUkU98*gUfr;`d#l`lkjop|?= z{XCZh8>s0(eMMDT5tJbg^-X0H*HDFtn&Pnyy3~e6X7siGr{|`EI+qlt^(^N($E7B4 z@oZ@srA5go%V181HQqp3u|>@ZoESC)Ty?#&+3t!rNNy9bJWXaI@4i47?JH_=%yJ<_ zFmHjnJNy?)MKkg#$vU{f_rY@oC6>-blMxGg4gPkMY|tZ}72(I&n!{@)%d%FN)0o+f zh_&Oj<{KiK&Ic4i4dJd3fl<7ahAOTTiKD`o3?gUlWloN^yP30Qa-aj6BMebE+shJL zV~ub@i_!H#i%7(iG`Gs1dmCX^AaaG9U7Qx)|rojqi@)2pGpLNX|))FY`NkPFE zDvG1N2%2JT$MmA8_@UdCmXw(`IkyjIgF0f1iojt-BCZ+k;pJGJQ(uf&v3H*fy2@i) z0YKZxLful3;k6ro{bEw?MOWwLEq|P{THL1YrB6G9fyT<&rC)zapk3vM z{lVtbjXp%NWm7C&g!t(+{q_4;zn(GDuQqe}sgJM;Jb44 z8zfLtyJF>R`FS0K9zyQwXJy6T-3}ruwhoA_mbh;WF7I!Z?*C9kd2m7mmnIO;0B$e) z>-hpqM2I#41eAm!ss$iM$*d$op{quP+4u_JirrV9fD~mxnbC_xv^LgRaQ>8J(kMyt z)4*U9bFC77T1(iWW$ls*U6{CwyQ}-J-<}p4aG9aRBM!%>(?z%*T6VPG7OTTaI}VFA zpE7QtilNwpB1!@kx3Y9b(a1|POOxXyWb%W<_FFhz+Pu6GLnT7D=(M(6`XB4gv(X5P znMHrXm&uXHN|_bKx^Dy*CT!W9%i1G8(W}B4^6;}kr>GP9FBb*9)WP3#wrn+MN}u$Q zDAJ+#&M6X1bI6VDWTIKv&kZEDEr%m&KvjN#os{)7!ibMZM~(?a&k(qcMr`JDEsJ*z za{7s>(0ofQPC}2e(|+s<)$#gkrlk?pOQopRtXRsn=kZ+7HbnQlEOClkiS-WZXTe!bK7I<(>X*Xz@ z0v%`twBppEccEN|id<5VBZG+`zF}FGPfks6RCm_cUG8#ok1u$kxYZmvcWNNdN3u;# zK628I3CKG?YtjZklPTb2)sMJyy-O!(G$Y(1`_F7PORW6pU>J>IjV?Nnz1*wQj#qdz zCc(Ytpq`j4lJMY;>5rxVrw%C~5XcQVa8dt;|@?rF()_ z?0{!~`c0LIB6opQ;CJJY&*Mr5CJZi;pq#>=sE0u};y%%5Rj4q3HssHUg?f@8OE)r6 z2OYsaGuh^TU93b!J|&T>-(^nH8ugY43$B@9#o8_!MSyM#K_je;iJsS{Uen1( zK67}}`hG?j0(3by_RKmkLVKhbt83GD(18SgS5!d*q^8@V%96xcQ3=UNp{xoKgIecIK=FCkID z-E5g;HNSpl5hxXI9%>K6eQ58;fzVh4TYMYC2fk9{m>clbHY(oa8&x+9GyY^r;G$sr zL*MH&c~r+;pUq{vd$duzL^r43<@nKJnss9P;)fD$R3Y-#*i5o}Q{v_D<{qdX_gyj` z0S~EM%VjnPtbGUZalf2*Z`513e{>B4WbxO4T}1Oe>XlY~gSz}r_1rJd;hjY66FK@a z$&g$2`di7I5(G2-hg|RQ%1>(HrSMnE#CCF31K7@&S7ZgDR(gE5aHGC5_U$YVmq%}l zOFgimd?6`#Uq)cYD>|azgN#}X`^(In<;|l} zt%XsaErp8+17bt~Thsv?K!Q0=b1NGWK(ROg^Q-hI1n%k}&xS*1R)~0k+0hHN zD^Cw-;CC7_wE%t%-I@^SDacummj~mo7K^T94m`=C%)6~R;xgC~K5W9cIW3$ ztWBK*-lYPvzmE#D>5}llAUhge!rSe6~x?m0%ZbFXei(-`NQ%#E#ubWS{6+ za&Oz)cqow>imBZGo+WO*+8}0ilsY2lW1^-oLH}mMKziQF^-6>FVeyhW4#jC>m zSdM;pac4BW*^jZA5A709GQ`pLQq(iHkAOVb5@qWuRQ^OEq9dXi$+Oy2_MZ}Y7zCLXD7ml4)>GO8s1&AB$Fm8^cN$WhDl(WXNP!k z&d2O&*HF%W=p1d>uX6QC;(4WW8{juKGaJG78j4G5_wsL~>K{Vn;vTwD&=|jx??$3D zkH#9~tMxWgd-}+H%Q+zGn6px{w4Yl|e?e!{L`6b}rd=o6R5=s)ID({6QD;gFWmoy_ z^^%RYwDz6%2yltGH!5U(#>g>}A_BgcecTu!5X>@J+@pjXWsU2NMo!4t&38h-n^Efc zsawZxl}8tKE>5O%8*jf(wcd7i2J6GGn(q?Y_;e;z;z_ljXeI_DTM2dKdq#J(W`miu zIxj{mfqI7Fy7ersLs`y6jk_CVtUnp}@~h;jDSRuD)Mf2vv-{G42&Lv)Y+J1Bjo{5Y zd`sh_112btl5#eFC(f7nl^T+m3EK__?zDb{e79o3u9|Z9JxE8K!_k)p`+_k27!b>(A3kcrmGw-$_p6e3onU?|4X!QU z{{yLg_2(!p=}t8rqeMkA_}~OZc*gn^yw4~@67YQjL1vqGHaplFY~ermMU6c@Z3 zPVR2Uvw&k+9#ND&>86q(@&+YEW$4$q+>HQF$P$=*E_w2?+ z8JvKas-=*Celbs8DbMkC3z91zc())?qSagl|KW|j%=O~u4dE|*t8n*n;j-1KxLr=R z@s{?rbE}2f0?Gb*0vpH`FQN1UF+8KIPD>nC*Te*?G0s}hZ^vfX>LeY9bpm+HKpqJj z|2r{2hobcGMhtRC-4nIelB+tCUqE~KZ9U(ppUj|FLbL+pIwEqG19K9Ejw$nT)R-1l z;F0c&$}WCWjq}Sx0&Q}U9E0&CPgyuVe8iV|^CX!cX%S9@emMTrd#wjfWLsIch|m}i zc#^iHlP>{v57C}HmOmq6-GlpdDWlaq3os&RdlBIzP^4pMGu98gLo=uBrcQAdIfk5i z7xR_!8jL?O_+J6v3tl@Etcf7oUh za}43AVPLl!!>mrfkMvU|Zt3|pBUDup-pVJF6Z?SCaWY#tZRXe+zvdv0rn8L~YmsEg zNG+b_v78mpsS4eWVi=NZ%~mITag;qZHMObr-TSpcH5PGnwxctz--3vOi@@g5{hPSB zSCQjW2?uiz3H$2<55;DdGt(0_^ny?-5$7qBGMG2Z8~c4A3@dWvh%HRMQltv#luQ4g zFJ6aVVt7%Ew6OqdyEM8BBH3^d`zvpvc1;CQ5;#IlAkE1sbuwM}HF$1EE*WBJw3nP{ zorPxXR=Jlr#2!9)_S2JxWcQ*pT-61xS^(LaAv*bMCw0D*=jgXKZVNG=OfJ`^5s@E9 z=m|-1-{?g1*g#8hO*~@vhsic?0QE?9p%N z<|kM<6h9_gQ(dd))a``!N~N8ow`}vz{fwO4GEEARGp00Og);@2Wfh%;&#>g+yzGjf zv!)29fa*UrJh&8G>NLu!-ukFAAbXIi^9H|Nab*m5%0vi;KBb5(McY6SlX!jZ;jq82 zeiLwoJk*y!ZGh1?zJJU)t^Q->^Fu-)>Qseczb5o4Gw2>Puvxus)P&3ZOu8l%Ziq!+ znpI{#q7%_ou)I+_(54XL(nCSu`@`nZ!QC>@EwIEyHnnB^OsN>n_)`0+1S#aXRs1L* z1mql03$KS8P8j3^os>aK)$waX!abcu6YeniV;@8kFKyZ=1qAJy#?MO(m}$#W%`V5U zueg#gB&(VTQ~IGm@r3F?fbZ)vH@H30%kW)>iDI4GT^iGZ7o5II>Bbl{(6>T8v_@B{ z`51V^$>cpkEt|FxP=@)S+b5iJ2W|leOZ3{!)Vcx_SZd^ze7Zuqv4f4IQ%oi&b*#bt zU3h<~P<7thezB^xJ`+{AGUklEf3l=6&c{<@QIAZAP1DZXM02hVD=QGZzP4_(`j#AF zH`Kbd~d`FO@edFlL5Lh8}XB?H<7SC zNrXO^Y@{!Pe4U_Zvf|lRFCO$4e|Ob2d^Kq4yj?r3qq^A)_18Pj@qiRinIY&k+>%(hjW?mx!eW)Yg1-5>NbhG;)glaodlMU_`zqS8*<}R7 zjO{v=aFgTa8F#Kghz^J2W5ZbiS!?+#x5(#VBDD!}W=)>+8ijNa-t88)Chq zKch*RTyJMuhg@y9;#)KX?(rGXDCnMqR5wh`^fhP+-tcXHzeeO1P_S%eYVG_uXGgmv z$1r9js9=--(z2B-x#x$*Dj#WC47#^^)Qd}@Tz!Z6bff-pRYF!wt-z_;AG@jd6Q4*m zf4hai022kb*cJB?9E!qqpmafmU%3zQMyWNE=CaWIVV1A?wNSRQXTsCCl*jU8*Z25g z7M(!M?B+`vL#}E0#9kx6xHO!v-P<%%6jYyl3=XS%LOE-hVcl)@;z#Sc5OQK6S>nHZ`vY;{+-nA#x8-zsq=Z-U$cynJ8R z#5$%Gs#6xmdII&Xxipny%a%#dn=kY%447r6<%<& zM{%blz>pas(snKKrg-~?4H(sL*AQAt%ca4v%jTeA)~Qm1Wmd32rVLa2y2UgvwD`mT zy#&=PY)IpGh3=2IH|ZwA?PC8k$dAdHJJ#^csbcPrXGuSKtu~VcJqGQVw8%GkOz`ov zH>uPsy&;-a7-2jNX6KN+eP@ zKQS&O{JJnRK%?U&$0=Cr4R)sWwGl=G*a_3GNIU;2#o*};i%)v9zO1)u=vNs`M~T4c zcd^ijU;SFZUV%<854)!aF=Z{$dvmOA^cp&!pgXqdTW`i!c>HKZJl8~c zs8A!m-C=f0Sh97)nMd(2j0-^|J8!F+l^CLbSr>)YFzb`aT8|O`>Y;ow&IcXsT(+1m zTxfz5+k)MsinHA4<>MI4>E?qKDz!So!daB~l}>QuPDVRlZZq@>KhBupSyy^KiTC zbR^!+P7ox;y(F>5@zXL5$>?nAu2-_3`Nh2qx94h0ScW&3O6>GN&6o;9tSp! z1Fqe}km2t537TtgD5aOI<`6~#gFvUx_TI5tvdk$+YLn|b)GH7(`0mwEn0o8=Z4}7^ zI^USJ-fVrJTxMu-tl88N(K;Owv@87noxh}Bx6%E(A)oeJD4}7!^R#lqB#eA zvYTVHu^!nff`W><9a@NVJ&x)sZ`%eH-hOV505>L$kTH$txgR;s4=DngXf`OURRY)E zo9oWmdqG3BOg~o!=K_Cyu?;smeXk@6-$`#CM!y=EdwwJ=T`WQ}A#O%-E(VJr#RFb; zzgvWqT=EGqQOc$<6U6N3pb<3fqK`jatQ=$0@8d|}wXz~nfGi_AyhYby)>|!BZ7Wow z=$Zq|_H8TLdT}E?W$3z1ElXfN zXh$9@sLhRzQ5wBgM4(``p+SKAcB3>kej`#;_`7M*VP;8nxt3#E;YEBaX?au~`q z{9LxxFP{t`w!FWRj*;F0E5{}rZg{$fvmSD#5N&d1iX5e~O?aj_y|7Jb>e%)C$-lkz zMN~+mt)56Ru}aY9J!tZxhO$x%^{D!UqYa+^1S z&3-Exd%uZ_T0$_v=eSW8JVGd2BAC{$8K?L z-XW80KCWZ=4Bd(#S{Hu!HmfNsmT!Q-L72Wwm91d{BhcY@)TUHU$7fefpf)wa5|vI@ z98QoA`{A_M>zoD}ViJLBevpkb{eS^4qhgvS=hi3R4({l6k{sCd;(LAUlet+F(6}1Q z&e2zDy+i!`>a8*Vu&;jV_imdH99O-2dZcCMgGO_t#nNacY_14ih_8#(d%`TOL0YUz zh-%h8jnM7eqt9=p>=eY!D_ zJ50RP1d^&ZS?ny0egz8c^HixmxoaoX^qv$7I*<_xbXLpsLB72TPa z?tX5rG%i@s$(TBB=XP4KwXJ5by$^S;vi;Pig=6D~%u%xo6ti(*pOd0$tp&_kN{W3; zWI0t}3e?5bGxVOVcT;Ye5~yIkaS2Pj3IYwjT44rN5+s===w*i7ybGSI#-3~;<-X$x z_nN1mkqxt>-;j9sP#KO(e#BG*PP6mC?3(~}`+yKbopYA8$YA>@-6tRPNgAtl+n~g0 zXEo1j?aZKGw~M&l2~2`Hu9CLpY*A_6L~@7KF%iMe8ym=ktj?x!MBGOQk*t`PzWg*T z)9p#!z361NKO)*e0~v&u5G}>L#(A}Rq*!W}agfzo-RcO<#MKNn62v)!B;fSTk;%~| z-P;QLjWeF095-?FS{%=+JWHTr-N}rcbY07O68@!#X)jln1f`p$|4fJwUkg*=b#s`j zL^cZAm^lN)GK|*=V`(cYiJbtH!7x-B{1l5$TPIeyC!4#pcrSxfuXbo#k~EWMZkn3K zQF@Dbu*9*FEGAAav3Ad;4@-{_*?nX-|IYI|w7=9B*n0b))D_)FRN9z904&Qye z=Y*PPP0CIqOULq1D(*S%d<#IM8|XH%~@h6LG@z`545;xT>hGHSS;)h zL$xw#L*ri|PFj`NHEpPOvfke37MxH5>ZVnRU*c5I7)J2TP*!Jq6v-v&rv7%oS2TQrS+U(?43OjO?q@RNZK4ovZ?YB;mB5B<)o5r9~-B^z1<4`g3F$pD^;8-77EVYql(WCO&}PU?+fqKzSVYZ zk#c4L?rB-%=B)vfoH_FD)+1(ZhhtkN(>D|snwrdY3|c*mzS(@UxKS)@IXZASNC7Ri z3_DFqverdM6k$3L4f2r|3r9b?&$RVX3KypB=j*Y&kL-jpnAcQXjgb9b`ZRbmLhix^ zr#6=Wbbs&X19a4n=9OnYs6M2huBg;`$NFV)1i1~19bH)ILU7ylWa#!J@~f(~Q#G`* zR}Vi@EUjLej@q!yc>*71F_G$PCPYkthsd|7^jh%hHO;+8{iX~nlM!{1lov81fo6B` zEJ(wfSB836k~g}WHZjh!M>eB2pPtHn`oRZ^BCx#+yC^EJ_D;38)QR5nJbpwB4Dl|& z3sOgO1)V*e7CByl)rUo?UQ)-$+_p|GLCVv_`6j4;Kds_?6z|&iT9=@U6j@arv>D-C zoAqGDM}){bSqJjqB*GMiau^rYVJT2J^{{(wq|zU66o7!c&rYC|0jC9uILKx*Ce^}o za__M0i0uYYasnYGm{FD{03A>fb%+Kf>j?uUn((Md8Ur&uV|xek*`qoEZ(|JLb2v3X zR~2na&TJQh)`T~4X-z6a$KBA0EBDPv(AYRrRx>6CSLbTWWzs-&g^)Q+TO@|zt=$hU zKKOF<>D%SJ;5LbrLlay+D6B+I4e$;}3($?VOajEokeJ!+jPmj-MR_T(RN5aH+U=F3 zf#2fW^jlK5l&iaoW*5pO`7?!0I-kC6{sXID zbdHK3c}S47@SwoQkgez8l>XO4AQ#}C39K}gYO6^}GU0H1%m(`#2cJ>`grShke6VbN zIr@?**mnPfq2}xbvckUL&S1@WyBABvgZsd-}am~eZ3OZ)LSle_+6x!WDX+x#gA^uvCZDpb2c z3kMU|Y)Q>fl#)@Q=o}D9VF+US z!?&H*Fz$%JBB_`)QJKd6^14O|{ zYgl~(rO%dGfj=KF#C1}O-*iuMKiLIwmF2MfX%)i)(A-z_?Wz>jY7as6iHg z$j^E4-GqHfENwly09$btlIC%yo;X(6p+F-Re83c^e-j%On<&qvA3xw+?@Z$%5&_A& z{&skTPhH&=8T#v3=x(^_x6+^_7Em_%(NN^s9!V>f*oc{0L>_zQG-&xL+wMkb54wrY zIV?G~KT?i8nZm1HwQiKSLewa=$d|3OYi5sIRlqm2*KFZ*P%vjIJDz^jsQPZytcVdE zjQR~zq)96nA&{bdR##UnK&5xXsiym+L2O8NKfI^>z#|jSV>Wv}m^X=>zyr4=Qn-#Fo^WC6q4Y{ZS~Vw5GRxXTH8LvsYCu82%_M zpui2UXJLCBVX~4ICMh}=H>iV)+A}U9&+Fk3CJEjNL#(f9W!{=8h_}2-(vHQPuGlAZ zCUq+0Q%W&ug}sigD&}}|T$4_>fO^qKVilf%>fbU%j$^_AK_-D#&gGpqqoFW6!B835 z33Nzz7Y0TZO2y(f*5PqLTbYTF_wVIT%M2vpI}jR0iCWdap*f!+m3b%fWP+1Aynt%U zFpNy#roou*aM+!xMM>-PfvAbUB_ftOTnI=Wx>n}uab0SXj<0Y|^|ZUvV}2+>WjRGf zNEAxg`02*h;As^5+TLCHhUhx@C!G%TIWedjg32nk#wm`|#l)bt7F<}Crn^fW8DyrL zbm>_6IS=D~D}oV=Y$iU9S4t`%blsRC$GkjO^!A<~V>>kw1*8>)uXzG96mqFPn;fo6Vi*wb|XqkE>sa>K~M((04b&;YIo8 z+8lXt(dt3J7nx8#hxH_YDs93r(DsIiWhfJJcn)}MoRTa3IE?>|Yn#TdU25BkME@j5p$VWRnM~mZp0(x+LA!k7iRl&FKBPZm_TQvBtMw~q zqj5j3*h(U)n>ohJLK^SOj)npq51swr0LR`3O*u1_MV2zyf}~gq<9D z|1a_H59mMsLH>8j#L&*t$>ROLKMa1_55`|; z5gmwsGyVgyZ~uV)l28!`2{5%YxB0zxGeCqZ3u1jJ^#H(m5d;AB4-_#dHTx&j-wXbQ zw_206b;bq*R4Km!ApHf8CI;EjdUJn{zW@-2T8AKt7vW>ZQ_B{<40J{|WH_5Ai zLjAquUw8{>14RH7IDkGH<~PY);cx$7{Rfi&YQknQumCehQ@h`6q7=kfF@(9kYYhO{ z1c3i$!jb<4{k`B{aJlMo;gA6U;E3*b6V7`2gY$pZE8hbLFgJCyHMIM8llyzS|EnoE z{{dqDOGC{9$-G|1FjI z{a?!YFE5ej1mqPBOHiu900T(!L;hC93z~@kDd*pFSAn>B`A$Pq!odKY^iaQfi8_0v z|G@u3{r9!?uWx^~gI^8L^#K`R;bLcQ=xF&zE&oe$Er`?Oj#W^59sp<`dIR|N?Y~~c zpg-Av!Tr7JUpdTo5Jo@%!2m?7zZaTz66H_K|3LU(FSD)y8o<)o(B^m9i6BzD=dKt2 zJ^-M=`uEEm_$Sogi~fZt5Z9l!Q~?7R#Qc7lFF>8ee^~#4O)y0u9#xr{W(J<*%M(KosX@&)+@C@qa;o zFZ>sL;+O|6Un_d093S9d@91pm_?L>V0ddkc zDWYoj003^CzjMC+7xed%f5FA;BI7qe?xGwknm|H{B? zjJIiI3siI&h~GwC#<1`H%li*h|J4y{oq*6TPENmzP6ctgNj3d6zy$*g_rw0y-}(Is z_4k^8;nQ+do)VP70Wt#!zx8*>P^5pb{?C%9HOT=^4*&mHx&%a7!)$qMkO%;L4fuVu zcl#&Q-%I|5UvOw;GbRNCs0RH$+6y`RFYEs-855Nf;N)g%^7{bwGl;U(fssuNG=6W! z`rRUV|AhK`$-nT-Z7a5_JYay2Q@=~Dz4$Nd|16o6o*Lln;%NQ5hC50!mkd-Gx*;_0Lsmfe=`h%2HHPZ|Bwv%e^V1K02janG-Vk3@*dP| F{vU!y`l + /// Simple tests to ensure the apostrophe filter factory is working. + ///

    `f#v=LA*Zs3E|EuyCElS-)ZwTiS{ zD1GDWPmT7%-`d(F^t|Ivx=B~;*Zr*Wikm^6f=vDy!*EG?+-Y}!_lWWY>6|xt&t&jM z(oJi9;1LC^@8I}#eFomEKhu0EGk3qa(iMkmz$K)Fg|*&U0#^(kkp_MT56VA+k=}4E z$C}b(T}fB$VI{_4*m=w))aS!WzJ6c@tMfEkw-|x;Ebq-fRe=siTt2@CMJt{{PeGu+ z4N-^NLfn1RWCVW0&UGlt{jq{oBKBv!^D0=AV-*gx{pU&ycmGB(J@1Pp)U&LECnWzA zWuHzD>sWl?;bj90vnXz$RSS6ez715K6#gA}eGa;b$w>H?L6NQ9P6%llZpDUUF`_&0 zd4%&O&!D@SKofb$&vSeS@~cqlPr_e+cFkj_cSF~>tn)$rQCA3Kw`CnjSwBdn##eMD z@Iz0qk{^}s2?`ZM=ubPdH<>0A=?tqdJMP8zTLsz?JjA9M3sz>3D(~>&QZ+4D5ILyS z_{b}hJRP?9BbJ%_sJ|n<;|e3ZgMMjv&EcGQ%RFdwtW2-+EiSIeyWu1zA1;~&w6GX< zQcXT5=3uXED1l+gkOv47XHI_5g7ojeo$eZ`7XZnTH@)C8RFCkpVxKjZ*+a36eA2N` zbJ4RAK*c~+?Jten`;XLa3lfy#2$P< zRa_4CT_q?7L!kwxM}R|d(%&~GurYV~RY;!cPoz5bj!~AUxc8~XkG7-Lz+x8N4ThCJ ztIO(n9L?mPs3)(0>#?@*j^O{NU$N%e#fs-Nfd{}xD5M5HU1?4KxMw>&GNV;{T|G|ovSjO4M*s-5)t4C#pcKm{Wm zXjyMlkGoHydqyU7YBS ztdt<=)(2dQtB#)zy3wlGxVS3yK9+9|g)3Gbk>=Z~ZK(k|=EP@ZCuUQoRjW&*d7*)K zx{gyNm+>E5uPfx&yDWkIsyTK29;K*DE&~Zvf#qn}K0}R=*BQS5xpo^`L_rG57ZSuY z53A&6+-j_VGcIn>UL~He^F+A1S?cv;jyNw}*oR}qb?Z<&NUs_9@NQ^H8ZLzzy9tRZ zrPPVW772O`MoPE^D$PSi$`SgjvfO(aYBU>jaml>lvxN@KgQgBF8d(f_jpHhI>}v4$ zlni*_&B(VPRg-CRly#j%3CLPHlMLASWx8;#s3EtVE{JWiW+c}Qs-+Km_)T@^F@ zFn^-YOrZF!idC>+O?hah`+zjb(o#bg!h+6W8}o$JWi>2+qWr4}G;$uy$~?i6o6PDM zJZz!Z1Pdy!iC51SzBhZW3_Yj5s-fK+BWrBbR@Rni$fS1(OAFP{F}0liIZ2cw(tsWh zih9mVa??kOG-cn+hk*f^O4dx zr_}Jhgwd!sr{OgjiK1vq%gd}S|3O+3w@h2OQBSs^ew$4~6{T&gQ=eHb!R~TtqH~;a)NpK=DZ%u>;)GGMr^2d}?k+%9WTx^U z)!DF;mr!-OYs_4CO)4j!lc9EoWwUl)Za1fKjk$O#dk;Kl$^MLshD(ks6?Ga)m|%kI z3q3DHEu{2A;@&^-8jHJ$b!vPNQRrtAblmNcyh`BVQX@$pYSuZGNjZ zvj>X;A1QteN(M|uZwI7ZQXa(;{82D@2QnmULyylBwe~p(&1l2~>l@fQCCc_r)2BeuiY*A1e%A>Fn1$!!HH9Fr_9GhYl9$XGjNumhX2;LTuhYVSs zf>I?;Rs>P`oWT^lvLM5x#IUbl24Zic7kg*&tl5^U)6w#X{Fti>Yj<+j=)QhIYdtX3s7#LKg|zR4q&EAa#AE%oxFV#T zf-MND8srUVZymTOLR91lKy$7Nymz*%tE2d3U)9yg9vVdKAp<3oL;{OX02f8@jv*1? znTp!y9NC1sef{-{RVC6iIS>7u1yb4u$<>!G`<^bkTyi`%CgQ<5I8V;199|89-q}O! zEmZYtkZL0q;2~M99We6gq4pQ$k)LvMW$sXOXb%UAAJxVIsY(ySmIHvHZm8Q0X;u(3shqEFe~Ub@Q86 zH@+^8mGo-#-L^4!IN4uqo?w$W4*{~!)G0^78iS+Ak-vsVX2@TIacwM}zKLkK;T=he z#-|Wv9t;^|Dv%PD#nqY~jcRo)|Jl!???X3jb@^{9(0zu1R;zNqMikl4*FFGE2+5(R zujo&N*KeLmf#L~Xn`Fw*4b8RH#gcsS|M&3YHZNqnFC^ z9iMx;T2!5NXnhDvehqn*yo0o!&1&#QZfgvH&$ZEh8^J30{p_FL|6IFWBk~r^^5uZs z;9F3OTZ`dkIQAq@2cS!ej}}oQU-l5><$DtAzR?aIf<;%-Pb{@fzU)~3xlD5n?>M>; zl^R7;TC&%iUD5F-$5luCZ6@gyif)=(Rffz%lR5@|#gDe8O^Yd1<=3xNtO5c^{c2LWtTRoR5UocNNFAz6+4*= zw7p!Wy5t0#tFTpdMg{>#pf-pe!!D*+H49JrpVg)yx7%fnYoz;VZ>;>`#sso~2`kO4 z7$1g)dTiL~q_sjXxBRpm+pGyAr&J8iU(I&lHHwDc=Y`tACFW&jF`d~nlyDs0>7KMW z_U&~=i7jSp8ESkbF=Zivw{P|JK6k<2Q?EA#bp(Eth8ZhorTG$E!V|Q=ac;K@CB-iN zL+IH(U^h30^a_veO%Rs;@Biql@IJCqaIFK#ZEYc&3Sgx>s5RnSC6_7avFu7SlMiAe*H=w#pw7b z0f|>)*T_W~_t0&-O-exe5KmIgswnR*t01Wy86>Pig_eM=ZPu}46k9FH;Z1&HX3MQk0ig)R$n*f;C!ubgIP~#NM(Cp3h5+qOo zF`GWxJIDcx{T(_>SIe4(4cN01UZ+sH>Jkb3`>uPfdfqrRib*{u2OePZ1k&NkvDP^T z9N!Oatx||x*)5cMQFB^W7aBJ2Ca%`*OQ;dk7Qg?wcDsVb~3cN86O77bRTd-W^*t=nr2wx@No;L4;B- za$Ieip6KEVn@?_MycYFd#dKvD$FA*-+Eg5OrVyJBL(7jAXasKg`7G*|QNyuAKOdU~JE|7a`$ zFNTz#+>M{12JW_yzyL0aJSotdZ-%N|kX0zQYsYGH)S%*$%1v|Jr;Dx-PNcB!7F@3U zJbJn5)x~;+tLm=hhn}o_t*Df}2kuq-vU}yOP+M#s-P%oI{~X*UmtlLZI^idNujP{% zj-*nkPr!7_f^=Z7C9*ybTzGJJMY35S+PQgWAKY7E|q8vgM1JEzm`6{;v1 z>5fF&YUWa1iLQ>?(|uJ0+7Z6~EUGnLjX*L4EIah7QY<7?_9Mx^&0P3F$`SUToNLQT zqkVg*P&zV*>q1=;iQ2SJ$LC)9`U|H8It?lL8e#S8&-dDnB~mM)Dr?$9kibrKs6}5S`o$lojb! z;+)uLt1j6X6pfE}9bJh(wHn=FLTc=!2?O-=4gspzpNHWYnF2pZt)M6hK1|)}ohO^` z6+t=%GY=|rrIa3Q*|KUx=am)dE;*j<>#u8f9|}cjOWLSosA9@W*{AbY$T=N*go*AJf|~KN;YkCZP1fFL8_E|Qzd^bY<5I(2^OiUdR0^Q z=|AUk?)Hb5ajsqWIr9T?NJ3akoM0Vu9_z>*|AUMBG~B}4iMh&sM3Fu_shm4?bc{+A zr1fst~IR(pi=A zHEw;Wnu4SRo`6Nv&zxRmbSyCa`cW--Jje~Z&!ECcPpdXgavH67g4ev=F1d774EuBp zo>NbIq&iLt_J;DD!x6ep6{;6Jh2yM!!6tE}&qQVC!m|P479w^Lht|(4}S2a0L*>|o%V0Ww{n_SMiC~d}F#j!WX9Pdz&97>$V@1Gj{PaPcCh&_poW2a*?`6t%ohQ0S`WyA15 z4nI(Q>+NbR5^Oa#ZS5LzU!Qq07z-fMS$-_Pyuo-2JYdLQqX(BGsNgh4YqKdkjf>_r z{s4G6jv7yy(jF7?UqCNOcXrJCHzl!xx4s-%092*?0Qj?xTE$TIq$qn#TZThAKKBk- z_IXKLl{JQ4PSZ~z|D2fZuDIP^LtZ5rgOMBV*Ql5#O8$;kl|A0(*PqDC{dW^RBEFl4 zUSlWDKi8}0Bmr*=C59d`O|OWz0bE{*UZo!@!1_dgi6MVeZ`auJcB3Lq0=N8JBR&f% z0mN#~t`Ipws64Zv`eCER%oVoFq(Q~8%8>BF<`imFCK@^&A3MS7qR0%?>e71?)d`sk zCK;MH{rcGykL3=q4*`g^&;nG=sA9g^Kwks}R%&37Na*5}vD# zeWM75GCKB~OUT%}zsf@sC(x!6tl#{k_o^I{BGjn-bSG9^Z+R{49&s*Z72?`mS)8x7 z5-4+R_l6WX$>Jm|z1W1xNvBY{iox+}6D960RQ`iL1(n;efgRU3U;Blo$^0o|TYPhc z#=!dy`8-;k9*FCVywMV3x0%X6D2^XNwNQyWB|$N#M`Be(FY4X9k@Q*7;gjI(4Qpl3 zFD@EcUI~>OeL@2hx;=9tv*IpP5?Bh9U1WmZ5E4Soo>;=}VS;1Yf zL<4X8mfsKkBNSmxWJuEFQLv@5>Uc<J}!?l?Y5 zRbC|>3eXaV@@~#uD+Ft>;JQK;M)5(AIFb)KQQE9tO7>dX124$^B}dR{XU*?b)o`pp zA@B3z3WNY;TXX6nJOvXrI1j0A9AWpBRGLXhpP7gDN|&gOL?V}Ndm=2U1W5fxX*YL4 zUL2b!u2FGA$~$1q`2SIS3Bg}uIAz@B_>-IrF3QQ;{&(H?;9!_X2(muGA+H}GN)g4< zl6;Uy=AtHnL1g^_^niKwg-T->&gqI?4FCnnkrmrH;3?GJ9$hrs&S89N*n^CLUApK+ zGOSVi%N}?zTyWwW6qI7g(TbZZ-IDXZ7s*(#qsi)~bt=KTa^08ax&yU(6@yD@v$*$? zd8-yv1F_HJ>Z^Q^n6DB#`K3Gs{}bDv#%|>GndY%ey|~i*hrFzkC_dUXlt_tDd@Oy` z5RH{exA-6!d6OI+gYT1pwil_|==x)3M!E;)3qFtQ2vZ4Mq4GK37N}m-4J#53r9I4q z{0XWn7ZNLQ+1XxTCS=81*0*r}<*m7j z2<%qeHCzEiag7GYCVO~qaD1#U*$haRJgSV-QzT4gS69w`IdD2>jdu*I^%ciAjiEc&OeDTV;pv>>GC$l#?NUQ!s0oZB6*>{XVbf z*3xjZblUvPOr=TEaJ)H*BGmen>6|)SJ9Vj4A%5;T!Pf_kt_rNmXFGo>s!?+bnTxWW zYN*MmF=6uABd@?NhjU`(!O_xrw5pezgl-4LTcf?hYYOR8Ykrqlv$dCrkk}2lXwjl* zxIu9V(pgvO7d_s_CLnpmsL7hSh_blvMgDPgi6ZKji0YOh+yssc%YhPVr{iu1E?d^? zha&J#5j8agd7;I{ce+nKgb!N9d6;|>SE14IvHtqg8uK*OyM5}kC0kgQhUFosNGCO0 zoG%84IwAcV;D^G4-BTYNgrqKRV3Y|MpP(QwiIxlV{^%+^!^gqLu-&nk?gyD{ep?XC3>oL3DpW(?I~=1sa91C zv2E8;U-l^tB`s@+kN+i<6h!QUsmAs@o+35 zT7e%&aQvP+`{*{c>oLEb(2|!`SHa1RpA=Y~(Thk^_r(>{imQ2QRpklf0aPAEXPD6P zj@Zp(Lv*F$>=~%jCx@q={)yhb9JPLgaVxNkgcW(~PbH7UYgyxcb-7nr3!K~hR8(Mj z2mcQ|LcZB9suldujn(W(s(aG#&_j%)W(hSmnOc;HbbKT(E(!1ZW}SibKY!l z<(Yo{`k7Z;$ZOxg>BbMeaW02?%B7F+H*4pDraEp!;k6d1FlxyqB9)zx^`y7Z8|aOt zRY&pz47X>JZ-(>#CEHvuZfyLJubkbpVggw40lv*tYy%cv5&p}8^y;tb1!Z_ zlfab%Ytxiv@r=tfP)xTQtgUG7C2X?%)zl~8F#RiBbc-Px!c)d@N_l|B29hRw)K%a# z3`>QLz*gX9$h(R%PEu-Zs}*{9=I~Hwa0JvaM&R}ua%!NgFt^9~sC59YYm4kbnX%)0 z*Lni+k3rA534r5XPr3&yFVE~{crpN4VkgOyy+cgV&#QlbmBZo{6S}SM)uiZq3HA3E zM7Oxz_GrKUt;(;Gif&7`64EEVDCiqvqYSSkHgNcj6uMk~Y*UBTPptQ0Q)Zsm3Y(jM zqpEi%^Mn_?YmC2X93qWtg=-r(HF{0>D-B*WuNAI7>=o{QvsPcaR@sM5kw%iWEN9+S zGv#qpVe#*k7l&$_(m-9-S%{tppy&q{Mc#vCU$a6Q<~`7=`q7EWKb>W;jFvacyh+s$ z?l12vaQh;ZRw{@rxNy4___f-KA;ozaVpkzR(Gwti^P?FJ?e5Z6MYl)3+ipCo1j!0| z+dXm)M^$mzU$nX5_A1*s{o5v1a3on|AYH3f%5^Fz^Z@x)o=8ZbZif$`;EIPuSvN%~ zblKPUxUDgVUo_Ze1XK;$aq666Y|6S9JERtW{-^pl-Ln_1b`IOLZU&)0iy_plakktv zaHgzlIbqp2RQoa+Nw!UKTij}KnQIPzDcmM4Sm0|zzOo;oY8WUFG{%SVMv_A&52 zHoi*h^ApzgG+JRzfn*OxGk+NDjG<~V)*RPxti}=9t4RhE+2n1TBp@p|L@M34SwbgE z8*V8UZkx7g4oi7>wC7~q(+&ti#dky2qZ-W&SZE53aTyVN+`6%Lzvlq8J!(x;Ru~SM z!*Tn^C#~CJPz9D@jE3PkGl^>k6dDgkR+2@|u_-$4wn9&N3NX$B>9<-(^(y0Zc{2I_ z`hXSwm@*VIVC$@?)YfK^ZWg=Dz7t!jk43f^x5;Xhb#QS>A;^)-#@M<~L|u}YsO4O< z6eKG+lI%raC9Xm}9#&VDu)YB58eRZYPdQ~Ii~4G_MS9GCPtl&?6tRf7`rCrUzCpP@ z+!{0{H93kCNfS%=n7@fJDK2(s{id6wb$Fqnv#(P3&EqRBq7bAUg4{u~B5}Uf)>z!R zaSyzYi?b9YIqOd)ELEI}E=3xPVv%hPwG&_~=J&~2@UIOPEN;sWWReEfCRa3tHE48= zTO37QG)=BkF$Nm5$w-@LE%ZR0hBjQc>683M+GgQeI~q_RQLBIP;B zJ-2xob|UXXD4*_TS~J~JbXBqii6LanJPZ9rw7geLdCl2^MrS+28dbl4-qJE0D3))+;$Mt$8hJtn^le zHOP@Xi#GfI6d0aunJDX?_1PicpOBeilkfk))?hUZKK>0^BTjqDZxR1s`ea{&S>`N;}VSR>tf7zgD;jK@Z)Le`o$X;J_|#%+>pD_?t!vmFZ2k0akAVd;`J2yo9yQYdS^9XIOt$vG+P!tu$5yyr*)$^Rp~ z46xRPyA^v}^7og?fK1Yvec320iYY=qo|DUsqiNWrAbF1nVy5rLQ)7xejU%-}hSINY z#mHrSJ9-~rNhrHi?Y6`}W-PqLf@JmaDfPFx2@?O%a^5&^6i7p+3ukjhGOl(y@bCYa zPGnh^7gue5h_f2l5~^EVY=_H#`iYx7dTX{mX^NVMsRWZ>gmvRsLi4X;GA7r_x!m%k zR@QY6EF*uWMQu??9OT3w6rdN%P4X1FeSax*sMlAky-HTlH*T}eEVIjVDlossuuZSVahnZlkl_$^WZJwu zCl#dtMV`DuaD_#;-k2wWZIg9R+!*uO(Fbd@FKIeO$dzVDJwE^zghR8;TA-1&Nxg5Y zz()Z}cbdasnBW{P8}=a`OGNX=qFHK!Ul^(KyWe6jDUM6TvJJSPeGDo?D7bVY6} zq_ckOt8tCX%TOeP^KlLj!I_-Na7w|%HUYpLB--AWe+cdnby>o$=NS*!=_mqHen9U zzX;9;Sfjs|`Ig&rVxw|r|7<@<(!YPAK0~2VD_Cl(eT-Tkb$(1|?|@APB*|Ji3v0Ms zEDMP{n<>(+xq|;8OHAGRAJa4p$P&G>tPcH~$qE|6AF{1f@e2iC{5@~mWCaB%G};7W zalSTShsn0hJ!Km{c)3IxM--b3NEV%nsgi&-^KXO2W&WTno9Z_MIQxBd;u2|iHwLTK zm)U@U=H-0#J6Z%w-6lu3EpeVC6btr);waLizDk{Plkd*~Hj_AO)R#f>(7>6b1k)>$ zb7g(2^EuEDuz9p3xklNuRSNzlqaW(^e1`*c_60?9G<3r``Mtp3+vWx~C~hQzeyUOD zbb}T8CF?N*C=&O=IaGX+y(^27J(;sW9);B8Q1hbyYu2;BD}y3Qz*ku`#oLo&SMpxR zkz=P+k-<{7$y%9fl$X)xRVhgME%a4#UVa2_n`MVwp%yKZRQ}6?viiW$9DAI<|6_3u z4V+&J=#ZRGB#XPdko4k0r;NQFtpUfO;6J$*H_oH^knPUKTw382*j5t?<|`|0l(|LLI0wj{66tz{CK4z=Y*=H+?X78HMoWn*7xsOR&ivsiJRa5)- z%J0)VFaVhEd%NwR2Y8tY(03sBi;=7!Feo=(=y9Za9zpm1>X&obP)K8D?Pe!j!HbvG z{*KOGoaw)i+ZlG#=STby1PUy<2Q)1lF@@P>o(( zZpBOohV^*Y=1LHZRkq2x=MKM0-&p=GNKN_*=F1^nW;MG!fFER#ceqkC``9Mq?3Hbc zg3lTK@Nyvb2K`ZaTa?xvh&6?6mf&Zzv4kDveLjG4lT&Qs(zqWb;?KV;wRSb!w#m_z z!Dq~_wOO~wj)rF`xck}LvS^YE#ke-x;lbm&Y?Fd+OCA{S@^L(tlCpy%hmYQXZ^V~| z^YUMr?oc;sPl-`!G0fX^lMK(TBb5TnQwgvV((q)rY+ny9wF$94?#62VPZsQ#daUaI zR3B%HlBCkncmQX~J`=7>L>bx3qm9WIjuA!n#v~0wICR^~Za}U%SWxk@2&<_>Qe@fG z55ZZDz8q6{p)WzbTp0IO3~2Tj|7iIsb(^>EPn>Zu(lrfoUj#S8vCXL7a^r|SX={_F zXhq%jui`~nFhf2ptp6k3DC=W;UFDb*q~co>`UwpWL1Oqt=&QtE&kL*b1+tkz@gdwM zEm#b3ljAl^@G;uyKcpmR)0BrzZ8HUAvvGV%ETP9zQ`R8&(BLThW=M`WO9n+Q!Q-j` zl=y2~C+Ey+G9WM1#=X)71H23+Wi&p75N6lPpL^!6N`Z4Yh&EARkEw{ zp4*fLa*LGNkC7F%{d6=PktyTvxmTRKNtfAUC>qi^B$IMJDTSujJp;u6(@f$vTClHp zZNNPs(J=cqu5t#wfOo6Q8sRxPcarP2rjupRkms0&WT8XyoDR$!sz3>Ul?T@Sex*OHZN4H~0c`%7I zh?nM5QIjz_uvHoS{&Jb%30YW8a*|H!*4a>u7KLIbyT_Ii?l(9)jshL)^`Q18)J_3I zGxmP&OrMkF)e!v3U22=hkp4Diyx-|YrI3B@XJ7oCR6$drvAAcC7{^ zC)Y)_MBm199RCVeoEmZOl{~d_te2>fY^&zCoNg(rPeT1U@YC#3@zuU4XDci&X#l^! z+>^wQBh#+=S=?gU4KmQBaR#^PFY_W^o6dWFe_rO)Rfc9?`Gs6*2CWAjQ-AjIESwiD z0UBszQM+=_8gM9RqlC#Lk}?O1t>6)Cm4e=N78*B-!6Rd(`sn$7hLn5JY^F3k(kmC;wIzEYE?&hc4yF#%j@mq#>l}H(J6U z3Y!v)*b}i7;?{BUG;VZc?Uj1>PEVW%7?N{Qn3vA>uO#PRQM$BIi*=S{Iu#6k9pr$4 zvp*VsqD*C`LC2)%veABeo^2p!!x~?jUVT7#J&v!w4rgzY7rVN%7+rDb6?oyH0U~wGHyxO-P zX|!gs&@~@}Vtk}8p(}dy+)t65A@ikkHYrz9NMwQ4)0lZxsb=4;zCN6z z;kPXPzWZwfHl2ET_5$RQfwtL#;$lRvoYm}wJ#791k&&3ClWK#)g zr=pAFwJa%GQPMarLUyN_qM3Eu_VZ3Q<(1>GDIX9 z#72bsP39fei9L2X{Lwz_)ZP*P{naTZ(We6`YKmzr>_h=G8#MY*A!|4!XZ%E68c?j^ zN$>g5Mv5kaJOl5O%ZYWPw6xdn#^wql3z;B#QNj`ID*~!pOmD%tO5seWXjZm)V%uvD z$0rGElBe(+vmK_eRCKk>DAuc~*0N}F+v@vsUr8Hk9YRB|G`tpZ9N|96Sr#pIWkGLh z96cPDhPI3r+ywPmv5t5$?fTU$vTO1&b-SO#Up3K38i@_5chCXQP#sj;gOVCyPxihc5e69qoKY5I1bo&>9tUnrk%wHm352~>iHkkhhnb- zTqhA55bMKba+O03Yq3FXYt|lAV_@?d$yp%T&Q0K40?HUWIh&!(?|{wemx@56__BXq z(IyS$M0s2sy$$XvUTSQQF9puJKo#iL$19CMy<4(d40;%N^;_Az?4na-G5wJYDTaDl zNtMBZ)i7GhHpzjHdG&!zLXEfvQntwoTA%;WkxDb`cidDBVnNw8qR}C-9!XL>PuWb7 zBW1OQO;CIXU&6B~tLX`u8xq7JS;0P?6H-WK>;J{5(6v-Jhs0BX0S5|-S znGF7d7OcYd=H~|9JaNhmVl3OFp;0@_lk9o3GXmk7T$5byd${_q_4{)XaT{etF;j+M zm+D(lBn^L;Uc1R6UWQkW8*1goMPcD2Y=f!AkjUExjbb#c{Q=^ zRx?F%?nJ{u=09Rae*ec={TTJ98S7dHBr6zq5CcY>If7f1H5kddHu=zibNQIyW%!4%12 z7wXrdSm-u6clv3BE_eSwE<F|2aj&pa%$lMzlR`&9^!F63hhYI7ZlT1bGKM zRWp)fUoCC)L|HcFWj|uQ%3NtXLg-!2?%Q(Y?R3%4n`-O_lh>wOxrY?f;McbImh#qd zu1haVz@og=vCe+pjgn+n5I(mIkb}P-UY&=O6KD;hcd5ytL-wDeW{gv-q2& zOo1Gae&5LaFT1m?PlBf9W|AoI&Yzx*6~xM<-zfx!RPWx1Z5CN2+a&iVa^ANfPyKFR zC>=e?xe?gr&_Gub*W68~6Gv?o#}epaY*q+P3VWxRop9T}S$tv9TG(NlLWRj7( zML|YD8_wHOA3(CN`C)jf{IWQ4?36CwUo&TyX+T5dk!0trt!m)>M*K3Z!68YuRVp+p zG#fttUiK?+QN+PSigxB_VePuS(!9;n6cy&)fij0FKDI3)&4BO@r?|-X=SBy+LajIC zNj9p@_ds7HUB9Hc^*sWOG&Gan(o3Htcd~ZF2l}A+Y@v;Yf_wmpiM~&kgSK*uwDZ!6 z-Ds~MKmSvGoWpY#yVUzJiCTS?XnHq9UKW|ejf&~kJ zCKSr~Iu$gNfif zn<+erxXigMWp+naPIUG$ZW=Bbmlv)r1GXR68rx7y9Vmufc`I>K&wiPEKk6QA$_==e zYcKek=H`d6^BtR`E6nDTNYnUcdRs~bzAUk*N@(AQGv#dL*dUGVE>BkZ0So_w|Jy#9 zbA3`rt|q<;xjxQen>lrsD$atW!A>8Arm;y;{J2=gKBbQ?IYV%C{EexZqX_yzAen|m z(8M{?(5$ElPJd`3W;oIX`@&FI>Y7ake-4nkhuJ~#ewxbA4O3hxf>QwN%s0bznWiC) zqe(>408VPe>5s5aeHIpIf0cC~lu4WEH^O?tij1T&LY}jaSx7-#sr_uMtNZTXUwxGD zF=?}GC;y_ryMwSS+HI0P*ybyIoV37nItOX`^L6MBbzD>ebZcs&K1N6yK%A2MXS>VL zq^Qa41BhS5Po`$=6XP1g8k}vr5UM%FXdeB*CYejw$(27U5N?yvhfbF+x@~(OG2Sc2 zC8S1PgQsG|VPI1%z3V6?#Q>R9S)t!w(L`wwlNnhzYhd-91DJJh4y}7m0u&=Yh*q;w zA42OJ@%2F#zBF*Q*0TkPGlsX>|71MtzsvbrZCJyrp^p=idZ`j?jN_Uzyvn+kj7{@| zkweX7ffsqZ)ht)b@RX&dS}=eiD>X@{>w*RDW6Goy2UC5Oz7encomqb$wXB=`K>A^Q z8PQe=^(|HkS#Hnw7V$PH)dz)|CyotjjN9Z=s+@JoQe{|U$Ruw>&FqY-y~S8_wD2{> z;(Vpprjk-KI}(uP67T1$qC)x-AVoiLm!w_E*|!mAF4_#6D2w(<>XL3YSdJ7M<&kQV zk+=y-H;U+TsI}w-sdw}7GN6bg4%W`CM`0IHYRW?^e}=(uog!SP7|k$Mc^O)B6Lj*? zE4L#1SLCTc6;1x)&zzy<04e(t%xok~J#&nmb!C1bMLC{2IpcR#ovJARq~57!`;|J? z2b*15qN>lQ-c=nr8%8AOTU$?KDV^GAGu6>%TczFWgDeDD4B4`1#W^53cK)m~cFx)> zfov0hmRoa^4dNPgBgp7O1Iv?W6ExH_M)1mP-y-D8yB1>oKM-G zgOy>*J7Oe7l7N?_kURx}*`Yf~4%IYU>NZKhI?G|N^5Zr7`_{QiWU zI9fkxsN4~3^Pdl%6H73p44GxE>g(&11YrET$e@UWl)LDoHO!QsC9Ni=1xW&)SXi5; zoFC0i;Wtu>_|pj`@>UOqLUj+4ea*ebWs7isyEU_~2&jOwFMmnYtR+A2>II^|0B4i= zF+VLFvVjHMCYN!FP1U3ERSshWQ-gFm&W}ySud1t&bjSD3T6`{rdKsGMIEm}NokBa8 ze;V)(lg3RhuLYwNOI1TX3%JUcLjt?3t1j4Z2-4?ia=JkZ1qkl>)dp+I7i~J%KWF$% z;$ZmZ|9>j(Heww~#-lN^n0_GL5uTIfpiQ?`q0!`KsoM<8KWf|cFkO&-{-^r5obsfs zrgmjwwV>2kQ!Je20G>c$zmWZn(OOtQta$dC73sqiIg{H~)#v)pF2bvdS>5C^nZy~} zPw;f2JYIj^nz@_oc1~6KbRPzj`U+o4Jql!crJ<9x+k1L(nH>E4D?iC>5=it}N}wBx zpEokX?ql9d(nz?pm|`HKV)3bUxKMUu#}`P19hJk>8)j zg7g3y<4-s~d&k)fb=D+Rt~EZUya(&1j%!esN?a7PGUM;%kDNAnZ|N$&zg~h*H7?3| z`{DDzqLtSg5uYUY6O^9|u}J80JGHoMvVNnux29$VnzK<-0^oQA8o$5x z$drd>^}AD>JB}0%3zjAqiX|L*{eFSs*Do~tThlAux`s%(sjbqWxWcq~a;wqm-LNv~ z{y8))e$Yk3k%o*PYpud}=3g$f7fHG)jF^f zF7q;zD>ioOR!U*5HaQ9qDLdAUyGm?+TuEy3huec7H9k1rcKrU&D~Vh))wmDC z0kY*BE9$4q|I%TqAn8>OxuJ z_=?%v%(}=%#VocKt1dJ?(aQkMfNl{dWf*?AH$hulAI9nfU4Yr(FL>TZ)y5fo0BaLW zu~U4VKZ=^zYlF^yf|aJ-74*bhdwh$oX%QR{AnsL1X~{vc^3D|5)zl-n&OLl zXZ_va81~4n5Civ=iloLsJeM=O&MZKFh+Uxq!#0zErWSD#Kp9S75axlto(#x=y?1Rz5 zx+f1CW!)5I_Qj+Gm#srp~dnX``jZ%-N>9*6=LK*=+DaakcIIM9ZXg+k>RHaKz|A4dZc! zHAoJy1{dAYy9PG4tZCu0pf`+b9f)@zZXM0V5DM;TBmo;;_;q?^? z?@$7}56m20Bf0c1lcIk4W0+2-m%uM)>~V)^1HMU*lw?z=`KN1O)L*&5J@5&I9%8f< zy!e;aeni&e!&1raF$3)p4cO^u>dyg;AJ~_H4J(r=x*hL-AZ|{P%1EI?Fk8!wvNK|~ zmQq8#IA4Nkm~O_L#Hg91+)`Gn?)dXouHX}_m+3P?5NHD`aBZ9g%JjZZSLRJ*$qWyn(w zNLDZ!##;qu!*3`7|3FtY|NL{>{@6ugeKFH`!bZR(4xi8)oqgEJ?S>CyB)Kz=+6E{dCgPyGLTedi&!(%g~VR$ z&v!B)?vI#jek$icG4eqX(pcr|GUH;F?z0!+gQ|XWxGafyM{P~&RhRgLj1;5K;zGflOVeD2GVTDTLE#4R5wQZ!ZxWGz^tVbFj>}+YlqTmjf`?#Yo4ZZ}kgJgZA z4k^x7L>gHX%8QC+@(TXzUPd#E;x81@nJ%^|KNCyxkHM&d# z?DB!Fkl9~Uylh)D9F4E!WVilhT^g7!IQOI1b#oAh@7_EOPw0%X*ErC=l(%U!ZkfiB zWGU@#2&n2;J8VrvL2^UH41i0M@2?>pxIYrki0)}%yW{##GLH!KxjZ*qMWvPJ@Ge<> zQD4jl3z98{<3yBr7ZbhTDuV@y?pPxp1r^O}HDo_NOX;1rT1!YnW;KmS#`o{GLGx0K zB#=H;36yUzFixqMdblj?jGs})c1d4V>A3xT~kcCF@MEDSrY_lGDt#(_3WZz)h ze>pFjj8|U5Hc6h_N~FO|Q+#9zShTd9ubhkebD%8NqA9aI#RsY8N-k?A z44Ncx_RT8n!jg_yA9UvYmX1n*xQ4vrFl-^u$@zi0XE?+%6g_gIh%`XT`MSu=IoMqo z(V`6``{t~lhd8D1Xj($bMOk`@-+d^QFxJ;cgWFRZ$^qpX z?Md;W?UF|%tFib7yr`u?pVOD{2f4;IeX03j5h&<`AWwJoGQigi6e}Ws7~pveU-qz5 z4(Z16v6j}5WN5ak`tVvxw|id1dLgaVn7vUr8*JR$jbo|b@q#LDF-6K=S$k2Mco55d zH?5lEi!9O0v#>5&Zdi%+a;9R1A}Q`F_4A`WCr-n9R393XJW72(W@D;5YT-B-*G;(< z(?GGzv{be~0L4skW^L{T^8J-}QY;t_podH|MV=b!3o~;xK(@(wPah-X#(2|84eHCY z#KlS=6z8jf$Kd6`G}P-sC)?AJ>w|(e;PSS88%{@g)PY9|&Hb}ren7*6l@cGxYWAz- z#&|C((DrSZ&&~(3HnuqX(y1nni?*{QQ2U1PNbKV2g{-E()<=q$Ve6E8RWwEOfftI& z$0p;{UhY^Ia|&1v59)$s(M9OQ@wt`rkwVH}g`QaNLvxoD1}F>W`Jepz3(q!{g>A9% z=QkM1r8qXt{%3xSCsx*_Wh&4{IdkdeZxo@(vIm!qk(j4!D1S9sjWd$;L=w8Y@2{Jp z@R0{U+1p7Lr^w?Xtfps{1EGwQl~I?nh)-hfrZeYe!FWNEfEah{9OJ7pEw(mg&YMDB zcvF2v&fWYXB|v@Lv+&T&dRT_etR_RIaa^snesD0xBm-%G!y_*wcVq#_OM8i}@NHFk z$@#C@O^t1BwsqlF0kh@T-&tYPA{$j>e2uwbr`7 zFfJm^A{ZL*_nvms`BL0%*uib({H5|s<;PFn*G_YMb{D_>GFZU@&ag-shMuoLkSBf)9uTma-^_$20&1>8MD?y4%(u+%^ zaqNX%G=jwv4d{Qm75F{3_fjnNT|P#6O3fAj{x?UvvlWWCm${vIaQ~pOLWY{TMzJVy z168d0zW)=ErQwvVKZYmY6}#6BN?fA{ zx9)AAdz3JZUA1+8hzX^Tv7}$X`m+oo<{|W8r1MJ*WDjDgYly=KC+xL6_TZ_a{xto zME?1o>f=QE66b)VtoH%Brd#7g0(lueP*k&##E2;_#Bs-q7u*e`7ul@T9O9bcWw34$ z>n5L>Abl%sa9m=16?Q?bN!;YfY81*%+ zt~5dskR(QAq0qUEr!{Y0Bg1abi6Q@(yj13gK%>?y2Z6(5M*}!}WB5&`C_bcl(=<+f zhL+nVOFV!+C)@2!;kYc3IX5f5KTo8^JT(qJ9aa5{ZzJvl1;t{vku?%fHo5i(fNIKnQ6$aaY+JV7lw2)t7KF=~51jK} zELiOfl7ZhwtK=XT3Sedo)l-!FafajwRP5B<-J(ks5IfwiDPBkLN`@>8lCfz z;!r6HtfW!M&_(=#m-CghPpU|ou)(xCZd9~wdFA!WEkVN>c*-d*vXGP)=M3v8#_!L3 zN~%%|eHr8oe<=!$kHmnM_ljvG^~FY*EjTxn9eqd2VwPeZ-`B_aO4*rsN%6xh)Ca42 z{7%@nXl-y7B&+X|@^!M__*v1w*=XU>rW4w}KO3Zyvti%}4wlhU-zOHIt$h@&2uE>V zm0cQN$w+cE^_Ak|Q)9i>q+F-ci});@q4msXXR5zXdOsZR{)NR@b8Ov4nU9+k%l3|B z*d~R}{$zhUFN0R@FZp7D9DFv$d(lOtT0s8%*V$fA zyjZ>rbZI?$@kQ6xSBZ648ZAf~C}^`iQg+SMhXX4wR0BzGusZ@oJP&8IiiO*x@abOV zwg$Pg@hC87vxVEFA}N00J(M*FzZsUAeFWp4DCE@1c{tFx2)V9P2~8d2M7LJ?acnx+ zrvwjPT-QuenrE8M*JsDM<EIa&ni6-)-4=(8AOV9PXihTQ(m@;+F% zSR=g1VlS8#g%_hfr*(S=JCjt?HCn?_l=Ic7NR~zgWrKMa^>L>fC#`u7?-QTN-jI4e zp2p#$+Q{&S%;ZdLA5c@JIaUi6dTOBjAZOq?**IFbx4FhPZ?U~!u?W9O%%Xj3`EB%x zOPM{U)HM;Kr6TKoxtEH5RelW|F@nFt?46lAN6`HqKmW$iRJ?R85rXt(Ph^RmBxV=n zYzXoTuu_EL-+p1E7{u)$Bu#v5(ol2}mM1M7n`r~>>fHZXMIM8s$?t(pgk4dtBrf{L z)>}@RLW;3BzkS*wbw3%3OQx|ay4(1*A7Wf)1MVOREiB!<9BH7-r8}-B>QxE;h7T6? zbh}+hb<;Haa%3d$hpXwl$+kp(T9D;A7~FH7ej-2*hO&Zo2jq7;_!(07UBc|vD=d?^M=QY#Z1$;7eVGj(+jKi1)ewG@91CxBOi^Bqdc7+IBkk=0 zl)EL71WlI<F?*qVE^XSa4n-DBuvxg=V5(6yrj#8q`77i2UkNu>Tj{jpQTaAl`FUU5ICI(=e?Gn|EWGK zPA4R3u{DNOUUrxavF16{bR>JI@oc%oMc?JH2FVtu6n1nEV<%gYLc`Q8`tTsQeq=vs ziAiDVok_Wom{@!GMR3-&kmn=^zQ{}?O9`th)ED(6PpB4GDH)QIP0e`#}{+@sX_0 zR&WO{6z!(9D81VgiCK9h6UR=R%41cXbr9A^9$BGbSbWGNyJ8(J%oLXbKW19-kL{4Q z9uy1Gls)U}(`fFHc61uL&4FZq*@_){O-(||0=q?ORy3Oo&xrwHld?_Dpl#~##-Uz@ zH&R?GYr(Sm2Zgm5@dehqa{i53M;xXW1&O)7H@u*oY0bQb^8)^tw{yWxT}PtmSOpS_ zkX&+?%I>De)0sjhkcstm9m#(PdHq@I=IniBLlVLT<8P)=qN>-7rgV^eGrk%|GAT+7 zcW`~IOf3auJT}Cm(|88{;@>9=}&f@zN}GoC+RpW z)w7xKp6fnJllV`%oM5Fs}k(YM= zEM_RsEkqnw8&ZOeSyY@$;K0gII%V!1eV9R=jaB~L1^K7r(8@oX%!9gDH#lvPWkao| zOn&eDC+zfv?xrtmNMSWys<`A>jg(6`?i|DLg1DKQpeIo`n_`ir4UYKkjFj%;qSI8`l@(`vr-EDh6f&+36Y>2yL3EBmPo=8*k0pvcMm@Q0og%?j z=EgRwWNNfcN(>24TJ-NveyX?WOV=7s5;W)^6Yw0Z_%P9x-Wm0zQ8dL&(9gqR`Z89N zad_3_*N7|zW;F~g?&xBusU2c9CsjU7HSBK;)i=VG>w*EgejsU@Z_<=aryC4vCnJKL zX;8oaRhDnwo8;vCvo<}x5{g??Ely4xZ%S}6vDw2fHqWak!B?Mt2aM*+^qhlwBak>P z#WSI#KzFqzG7lX@3`N*SCmaZKGt!B%5>leaEks8; zC{qTnIXb;OtPaJe>8SEBEuF=Uoj~;NGyYH3jte%{Qsl1wF*tc5_j=p7PFJvg8wF1V z=q+V-(%Oefm{{xg=W1e_#nDQo`TQh9#d)u*J6DRf#W+u4POu5WD&JpUv+CS(zQ z^eZ(?+C+0SWF141j?F)sU0g}V&n-KdU7uxe?2FQxH@Dl;u#b9cSa-7&UOcQOP#Bxz z!K$94Nv&Y5Z7n4_ySQ#fK*7uDY0*OSi(_BO@?%clO)b+Jy-SS(K^NndL&8H& zXAz39zCUQAW4dJgrZ=9=TP{wwEV_9BR~2Rs>z}Wb@T9Y zAEM3Ox~~0WD07WC>}~Gy;Mj_;UfE0?&8ZK4f8n95XMJ!r0iPv@xRu-~itAiThEOE4 zX>UhagOd*A?$eh^$Z>*8w~CAVa9r?UV+5D9 zUKQQ?iHZ%;OX1{VZJi;hiXGKj8NWZ%X_3ltL($<7l2&}@E_pLClh0tBAVD!`*j0MX zkAW`TlB-dhPJj-7;d5$ct4%zCQXL4n^aP;vrZSz z(z9veI))fsUVqVx@NyHpI--ovc$vjb7be1g`DJW6|0zAG_QBE2ZF)&Caoyas=f`?L zI6JbN5q*E&-U%*f+D1Z&CyIs0S~^3EJ3G3iWwvWCSpLNT);PoQ0yH;0DHU8G0)D1( z!!M*^Pvy5;llZZu z;U=)o&^uCmE@f%ajOM;n9J0LhqEBzs?|;$W8hm4}5*yn9z}UBAR>Oo=D(*w97Kg6% zp|33&UriVyLrO)=KMb`_zT84`f{rUHS*>yUG8)&Il=hg0z+*bc%hn!@_++H%^zrq6 zT6C#Nwe&7IL3xrlibvZgiZDD6KIIuJ3r|81r~9!3?$LSzkIr=jCm{{~8+#m+Q^zUhPHT?OTm zLHRZ2zshJRLM#wuqSLTeflN*sr7ErSVt5vTxylc>WeOuC1DgFhslwP<@CvaV?oVNO zmioNePIt2H<-(a(F6TaMoLa$)^wB?Z>YC5z9ziXV6I?=xYOE=u7?D~&i0d;xT;u-< zR`VurfC72wXhYFH=O( zbpSsHJxkB$i~zC%Yh^bhPO98;n}T)6aIBMscgC_QrM2&`*-OmRdy=#&IlWZL%&N$G zKO@r6((ak1(NMFCE`GKa+4%juMK9V7$AOVM9}*z1u=?K)(T3P#_O2(&*^S z%FW%i>BfX7{JX1JG%v73pMjQu|YNf_NzA7Hvv%*8Cmanl<*9fUk`|HAP6{8ba#kj_B zxol~Hu6NRmcG4$se2zyaTT)EVWlPzjm`)9wIICa}STy|ha|v`e-jKa+M{2Wn7Q@^Q zaKlhav)F3g3+djF;?hc~xl|!HTW^Fz*5zl6^m{tlkKj|!>|A|Jkk59Duf9_IpkXb5 zbgaDH*6_$${3{rG-P^EKxftHfkwTnptaggbTn!g|h4Xy#5^S^HCDoet6>c1)>Gv03 z0<|evQCJHbs)jSIwX&n`H3bhFq>5|h2E7ct*yuQF>yRIhB(UxjZaY;^a|{*W`^&5F zIxm@vK#`%gxB&rKAxJ}8V)&nF!e|HZ8KK^GEK>tp;#Nc(Frn1D7cXTXOAln!Z1f!GahzeNJN4JeR*ZN;S9 zs#&w1RwVPP%Czim2qW??2x;FyG2LRK%9_HaKx7M-cAbNRk5lS9kkb3cOO~c?HZWB< zsd5{uq&@AE30E)8Q_4`vc11{kgT!yg6;C3XZ=(e{@;WqAuy6>-b$A7c^ z@6`Rkeoxs;amiMd%5lR_`!ld@;J#cRt$rD6D|o|O3O5yxG^Bf4z(ve8!tqHCZn3MvPLXvU9E#sc*pUEanO?nm^@x-$ zK8B*!AuG7Ti3<6O%lGF|;|2uC8hyXT&F#jiQZ{7dtzra$5)~uTaexGxcpdO4Tc0Pm zu3JNpd4nna6yX{xjJ;Mnfz^znAb$$}E$5ql0C59R^y}P#LCq4^kY~9kRRr=dWD&!0 z(tK^8x9HcIH_(hvQjiU-?t z9ionbK>oExlN?!YH932tC7QlD_Ox$pG(ELOw$i^#>|a{_QA%^L|23Xco=TBvmm8M| zUCw}Q_)s?SVDb~E>!VmLpGZfwMgbWp72p@r03S{u_X5Rg463K2e|v-b)^ zD)E>&X9}E5N7VxP=T=NN%VGlCV3pw-EBIHmFEbsI;u-}IIYs{d(t{zsxc+Vl@5Xo- zve#rC8N7GNXIq@i73cb`^+3m=%^Seyg$oa~9r67A*>p&+ZmZXn zg7Wv5g~|~RjcZ)PKg;Q599EBV>hR{WB}42Pl8aT+Pqfb_2;?X7QyMzjp7>vVKCPH; zrE3@UPo#;pV)cD9Txy{9%-(VJ>F?yEmhaDlSquL8h}GoNC&MV7ayridvuAdd|FudAZb>rQ6QhY zl{2B}c6}Hdf$`AIQmvS{mq1c2vS~Wg*zJe}^3^!>ebevHSXIC=l#;4`|LY$Z{qhwV zpX~5_>rL)M2f(!C$@o5d*I9x7@Yuv)7zQ$B9;25|GI>dzok{&`QTi04e{Cklk`jdnjERi3bHA>g>i zXF3CK;Y8&NX)0_bR|>|u6@5Z|W7%mhn%Y%aW_59F(zfolE za-tS#X6JE)8U%$kJ7cV+@T;20Y49gN-O_UYC;2;^NYy2sDL%RMTU^RBIY}##>0a{hVnD zpF$^U!Bzxu&wq}nneIcWGm*oooQ_5J%7n!VM^0wNbN%Ns8t!TfT{YpY8fpbE62DW) z9Jey`eItIMed(4!>XM<*%JW=slG^Hze>Anm?{#;NH^U>AR#B(_En%)W9YAY(@D(HScwWT~R-?Yn#7H7XHd2Wjsk@Ck;fmG)FusFe26DaT}qs{Al9|N>`C>sPjp2 z{6g^jZmsUk+F!j($~!g*_D7jBG)BX@mMefP zYY4Kuf=_SE6b(sJ#vdnKqtm0K3~7z4OsT@|SV4h&Ro+q*WL=sig*ZFSrfG?LqSGE0vj27`1E(jTMh!? z!d2?Jhy=k*$vH5HOw0)x$g8jgkf#uZl(?mAF~7jFxkhjc@}Nj#QgOB-Zz*epYuwVF zVow3dze}vw-;OzH7Qg>>b|b9hgfj%^ON5`}M^Yev@ZlO8oiq!x5rlk@W*H(|2!^qu zNMwNjGb3SzX_rG4^bTk5F z-z5FSK>nyj_Oc`MDL<_R$=KqDu0!Kja8l)CAbZr&czRPslwU|!TYMjmL$wszm>$Kg zj#cM>>!w)myN||I`W4yqeVSNT0v2)1A-a71$esH~?{x7?rZ1ymZnq7u@f3z>Kd|kn z7P-MDacRXD>MM-hcHo%7kA|xb9i&`xlS=CnteyIE-I@<+TB?ciq+_uinpvRjN`cxO zS>-SglHZu-at=^GuHa&cXmx&z`=Q)Dw9x~AG*T}XB zS9yTFf{=ED2+$jNY}mWhNRS=_jErv}t!pU?K^nGs*7dVN))_MWN(xp9%vB%m^+2G~ zyZBR=%yp&$?hAg%M_NMJV}3LP|=y_`Z6^iJvrO<3k?x@!>>`C+>5c++HjmFc(>3UppMM2N7# znyI zkk*|ka#wc9iXl1P86o`!5g-L4pX07!m>Nw=n;};@+)9RF zz0ij7Abl04S8{J5>TX=}vXa3tNX(%j=RX>+p|l6ls8*}5Y68n?LQ)NMyT@(0bD zx^pcT7Y)f~B(ECY?AHSxiyg}VJMTJ2yRl+uJ%BZo>k(}2+m4N)v>r1R$D@%j>WD=G zo6JD1w_Al1NWohFS zM6X5;`~H-@+55mSq#rI9*fBqxKw_qWJRDnX7ta?C6w#Bb(!Bx0O^R%%Tpo0K3qA4T zeVAuIMYekx4ON{^hnJ^Ez)2mzVPhd{YcDNEI0v z)|n5Js`d`2R6@Dwnh^MwB#qupYb;yqlcCtk7^1-YGnC@6Ky+HAqP*lIz5xp4p?&@6 zKV1N<;u?P?PX5a6ZjI7pJc^*-9Xp)A4+dn9CNLWB2~s`Y(MO9xhSr& zB1jdg%u4G>UPv5Lbv|dPa8f0g04vXN8`tniLt7qm(BqfYqh<;MZqOkuP+NZnQIP$s z$Xyd|2KXRVG8pSX|175!V`^NYQZ&aYAJvz|gnBb}FF==V zmDX9WjewyuJ_ufpG82buutg!DqY%-%mc-(RgB-?IKC#&#Kw5|hM!1B7LqD(Wf}MwN`FwQ zu#G0liSFs7SwB!b^Gg4O5o7?r8N2}UKEN+q@r+KY+@DauTiP;i;RKQ_NN4B)eg*pj zD;mp36RGker_ZgY9tVcY`}m1t;ModntVkyuE*cWFTs7i4jje;P(%NGhS+%rIOu5|> z9^Jv8g)jA7@I%nNJ4Ku#P0?x8Gz8`eWS=A%!cPnzLmd~So|{9x--TNxlot=87!R(e=+k>$JnBdLX7*Hjvl*GYjqOxEC4ifmz;*n!G= zTCj)ovPL{+5O9O8+d#Lx;yg$?Kqd;rx>RLHe+F8k#0-%sGfz3BR6$!70VP0)D(0S* ztoZ&H@-~9rafvH6bQn*z^4{16Qlse(Lyh*iRLYj*_r#fI;XlzO+7D6KdXZpT2YCy- zr;}!Rwt_?8YP}uqr28!$ho+V0|+W9Dik%X}qMH96<_BR>5Gcw+P@Mc`H>6~yI?2UvMQXDTH4=TA+sia*P zpS@Z23)1kOqGH!+E+KCEEoJB?oi!eIOss}FowkeV&(hUDIr+4kT2JAxPLAIqJ|Lco zhAvsC3DV(Fod?E{QWc6$wRe1J)R}k*6BUlO_|Ww+@M)d2RS)zJJY0>U4TIZTHI__JUO^X1zW=3hjS9O?SM;2STAWe%chYfMS6Y>L zWf1AO@x#e}NFe+i=~-f*+pXOzjNeNImON0>7U#na_}Qx!YkY0Rbc?N2nnu%~tCMG? zTsYfp|Nhzx`0vl#xE_eSxd)s~b~p0VKxb%Oafs)(FE@D5yIKs{YBA7jE4V69?GHIK zF-)i9j>EP&K?gbp3M$!CxXW-l!M_47@_07In_H^-VN%yLbZJ(m=D46cw*4$4=V~~G z+uTWxijRsXPNwgF@D#kSn!Aq)PHL~fem`)*_F=U62IP7+EDE+RL7WFm3?FIMmD!*4 zzNqX~J{(^hdlY#e4l*wJsbLN6DOI?cUBe$UZ-CUp6I7Gkz*Wiy1KBE^VB}9>I4;J9 zYPsY#jO!@DUjQHAptnj~^nFuk)!LNq`%A6A;8ZcQx@Z`k-^t6mH~}SCm4eKjQjowH zY-R1=cysx>Mn~3ob&JHaWjitmj1?Z474iL)6C}+JnF38GH}izrZQ-~?C~aYRxSmh( zVQkj^fKU1sScG}1gtQgL|1~MP#2xI9V>lhc()ZJG>Vx+?_VuDb?LI0Tw)*dG_sg1)(bHVn9R+90X;$&5w_hL}9*W~*t?2Zoa6=$;w z*d;@Dr3L3I#7Li%vQ85ro9qC}U@@`EzybqCJLAuQnCa`1oEaeBpN*t4u+!PD@pT$r zHusn_a@CiW>(}O-tU4JV!zr zTD8%oV!HNgo`y>m_Ccr9MS+40vPN>?a_gvJIrqJjWdPpLuAqpPOxGJy}QR*i#j#rYzaJ9m=#?LcL$7vEVTs3xro##ciFBl&o6R>@>%pvuOMx z(*%(zM-9iMOh~h8$bXp5iHhStaMPC&q+^`YqBXodqiyHw?~Cb9m?x!}l*vD7S4Xqs zPk~ae){e>(aMFs&t`SM6F!t3{CshLZXJ#$(ahWblPltm0xM>(c^Gmo?p+{juB{QjF z8az)K4TU0Vx$jS@%a`JkyJb3x;~%sgqu9FeqBy4T*gTuANJ!e+rc z5g`oyW6BRhMsoiVk|8^Fmy?2BnV7pNAN(i7^kt^Fm?EClrnts+8rqLpjVmqg2s{hN z0JcPL>}lX_p&lChD=C+>cr+xdmPsN8AXFoH;%|CE1QM8J=v+=Ji&}$uRm1#W_H~%`A zb*V`y)!6v=ELYP#31I0F7n71%YR&$su(OMmvUV{k$$DVgwaflEkbWMpe`)0DKq!$; z9J8FMlcoG8mV(Frff)EoX;#i`X=w%O!;NMe7jx8n(R*fls!}!EO!uKRtki{m&O-j6 zABOB=CT86!9RoOO7#=Hg--PXKQf=_wHGg;y!+-j!UwmfQw77jet3X4nByoaAWYy`Pqn zx`Q-E$aLfco=t?Xv%iqsR~ZU6nx3_X_a>RvuqE=PMmkdwGlqiu#n30gkYx+wn{=~u zhR$57R7BG^%hHV9IBR&VX^_Rj%Bd+9@^^~UQ={NSbWq8**@NS$N>g2VH|u@zlY72@R){=V~)Kmcr!=E2_lv`cuCSQw7BKx@Xyi}*-7!! z+xxUnuJ$MctKeaHEt2c+l{MPZX|}`V;*!js)NUqOm1w$Ng^+etSW`>_g9V4;s1E8J z#Tvh7F*l)OiK{G0AufG?T^3!g@3M^1sZO7m)^l+#Q~Bc+mt?GyS_s6s&f%iK-10JU zP8PX4Iwp3&IhjzT(ZnCrUEIxJpQ3r_mQ&mmCv)u#oq40{_aittNiFMp-rg~mcHr}K z5d$(IU*jogUHz1U&lO}LLxmyBRh?A1xo$COdUtG_KX@@yVo2B=fgv32gF+!!6Q0G{ zd-L)8vnt+qo|~v~Z-@-3mtz_M9hV4`HI6whsV_H5dLM>o3BR~mky%VUcefaxF57Bo z8Th#8RqIxhmeD?ixHJhCr9K%qC2pIcrRNkk#mQW;sE&rG>+=%G&wUK(#0BIEYBbHj zFR93X*jYW$K&b1CVw#wzFKpid1*@1*x4f8GQ3Bba2#3~rNNIMw`{nB@aUviXO|TaE z*utktZZ|g*+izmzOCN1MP*R5UV zQrtgg7hb9R{#;co%c1<4P_XMG2IiY(n#IC~u9QARE#rTlq|hG>EZ%f!D#4IpBtvM23bYlKSz-@hVHhfoR z(g{dwd^p+i?zq|azmA%YiM8nPbP6L?9EZhv&No*|<~Af%a6Z4P$2>NZG^+vDEJ(u=qD!k%T@<=N3`3T;Ar-mN@M6&r zrsJ5#9}N%o5z~peRQ)QuZVN-3-d8x;NlC`5_5BHC$#LG5gC82#_zF%SxDgZwKmK@Q z@85+?`TZ}X;TXh485sRip=;L(MVFMI*GjuZm&JzAhFL>kL4Aq01 z+-1bMjgJ#IBe)pgYCu=L9!Ct-F&xcMoin{u&Qh(2=~miY8gskT+wHH?NVNd^3MW-) z%a1^@+E5^Ai$GOUxWRA%h-QZ14gOv7exSItzms@@lvqhYs>yJv6Qv^Skxg)necD&R zQwdIwB8F-yDM-`KB&c@+i9ds0!9OF`mu<#6Bh|`%h^k-y6?FRn{9a*b(@WgbrNyYK z{HMfb&ZDP4@so3iuT3GA*Ey9IH+KQJ_T%CTZTrHSxHAC4+*C}LRJB+GhC=-hz#r30tgS4k2 zW^ja$m#eKngUm5%n2%5-LrKwMG#VaBfnb1}4q+;e)Z;qM$yhPnETTrFU`=`0R}8mw z3MY`!=?FgF;@I=0J__cdWBOkL?+JU$qEgN-7RS zOC7u+ZJ$U3=;{?{gYKjaC*Qb?6vLO+=9MSAid8AQvDIL`{7=Dx-DCQ?#`iNFhvd2+ zv%5gP8#1NWaH%5YB2`JbgcC(tWszZow4cc1?01vKJSF+p$rE~wP~t>3q`>1=;xUsU zyXx{fKb%ba;oNG)P7KW)!OvmrURD@!r7=A~`W0L%PR^&uk2kk~cLI7vx&sLiMYl>q z+P@0D&I{aca0lXF#ih}(oX&uQt>DFUyP4#=>9R)OR~S;^b=nQ6!ZZOy@k0_I6}c;E zKpB&vDic06{5mfWPsYNLPQc!jV!UHCTuA}0JNl4%TBqrAs zf19@y z-3FrIbxxZzEtH&8so-29n^l7$i@YS}9d+%^@aNz4<4;(77NaR;5~tU9gVnukhuiH> zc%P=E7C|S)A-RcZ74_I=t7R7@U!#gl$w5oeB0S~zC%OxVHNOAF6RoBX*QnH&EC~5o z98OoV>f;|QRiK}xQu}m2G<{hOLlu`w%f`<-OKxMjTRha`uYPdGd2^fJr8+M62N&ZP zbE1Cbi(%*zjxUXd7n7zB@2UFjPrg*_PCTolb&P@i;{M2REFRuDwQks=) z3gk~Ko`S#iAnQi!d;3ah?YWkFW*bU8ZP65Yt@oUoCQ}L={|A~6Jlk096;c=%D=FC8 zrhPig;(dSaY&g)al39(&teD z?YsyNk(Tm^YhOKQ=F1wO;cWYJ`~FsHRW%w7VKlch$(hUO~4HrMy>K&$%6tMbJ%x5xS}Fx%EO z9FAq(7%G=h<-;-WAHgrzRE)&$jp|j75TvoJ#h~7!z~5Qp~T`Oa}z;t^H?34Uk_GO<7zYzPTiJCXJ$`Nz|hHI>HqbBlH$meQfV-OhjEI*jQrfu^W z#G#T+$6W1;x6(e`Xu*h+auodiQML?~cb9rt*3W6s5gfdS;OB$kgHUVl+GwkN-Dj~U zHVeKaqcO<(L zXG@ivZ8FYc4r2$}Ca)Q8O@83xCVxdrBmRJ|U49g-U51q=xQ|xkXiYx-L5eh6BsBdh z2f_C`pWGSxs|@5{>3xWhfrMY1q1V&r`@~tZnibRimGXX*bz?%+9qk~Wwh1QX+l~L4 z1o8)G*Z-15s_YnUV-+t?CH^HD34+WVN_?e{>u;p95FF1AlXqlgSiVF3;-lCzyEs|O zOB1zXd}V4h(R4hQ4zK4ZeRd_(CR;j378W8H%~7PvefYuL%Bd=c@n|^x=H8R>M{zPM zRSU9Msg`|}A^t}CelaI-G8kQ3&xU-{Fe^TXz-Uoss5n1Mu2vCzSd`{_lx%0o&2Bfx zaGW@&IzDR5YF93^cU{xZS;)@Hvk7d(U7fqYAEd;Q|B%(SR4_m%CVTm8@)frtNOO%< z{4+Xf7EX*H?ivpkQi5dPm=99P1i{X@{|$38do^q-{@bM?W0(M62Bd0hq89Sjf(XhK1&Q$9bhJ{T^wc$kg@a5QtP;Z;<5jv&5 z5^*t65vXFz7?M56{U{g1he3RFL0P=#K~F$`rKRo+&xp4vW=zUp6_0+xXp+LQ&NOWp z=d~0wg-h#{2}vW6KcP%t=B7zVyTPsEmblvY*TK@C=UuxwHgCWsq@-3f$0;uw&fdY8 zyG|`6yQkTX+y^ja*^rUWo--8LN#1dwEgu4Ye?cC;!jrL3`3csgQ&1oe6$KmL*hVr& z1}ZYott&2+or=@ABzJ2vRtdM+xCusXa^)%tpZ?q%w4`A#g3sSu{fFrSIi4JwOV;EH z*;2qXc<>Q-lnpbNxE03dFTrc|GbsZ3;-6@rOJi}VsZ8R{sBmcE8o`^KlYE9?6%Nh~ za1enEPZ?mD6+Dnt!CD>|`J>Qmr5`BP#+75EA=nr1C=);M*#26u$S*;otxS<65d;~K%vR(6fJ6MWo# zE`j`s%Q?SdB{k}VVtlRyWR0sMtKzo6FvQ7TcM;+%Na>Ri6h1)=*9f@}0%3EI5Frn; zkm>W4S~7l5C(Q^Fq|wbrkbI5Rup|tVDxa*<8`_a0#3dsz4z>yTW&#-q#DXx4x!PA$ z5%cfb&ILPR8;GK79gq-0@|a3vw{$&a3)ui0YdlY~WH2=SofF=@PZ*K_3I1VQHn94L z$Y?-(Uh$`Tk7SOmRQock4a190$KVBeOXfucg2htk-SVnzxT+NSdMEP~i#+~lHmm58 zn$i^tcrW}4J%!vB490&7D=MP{Qs{}l==Wmfbqq(#{3q?!H#`vg-x-f}y%1XE9G$(f?rk_}$o?;Xpb|47z*NI~h1dnS7>o_pZ+vd4HS!lp_QEEsA9{~-8}nH)P<*C-ekGYi zu1%fAGU1%Nt?R3ErqgLj*MeA-Pq9fFOc4e@=SjiuGM_I~RBe&Nr0e zB1Q#&%uGY&tBA^9Bqh(ym`Xv~2)4vW1m7qnM!Qm~B5A^Jf;iYfEYLBzRkDpn%iGjn zsCAqClwlZNHm$;fW<=6)Q?XwQ+>JTIhOsh4!W?z!%YQrdp$hl1Jm*(!n~Wq`O+%39 zF>y1C(J3)83Ke@Icp9?NIQQW*21w5ITdz}>qN$#IAhq64|Mk00Y=hcUa#U@#M znugv7+pfwKnup7ngct*T+EggRsc za)`tRT7a|(JSF04k2@3}9)*hHg0$y)XQ59!Dx>M4F}zD_Kv6J~oQ<$PJ-atje#REp z$Gw$IL**(0L1HCg(|K%VUez~CO=mBqM38$3l1ei+K`a}{@;(FeF{(_F9E1%hUO6N2 z>}3r)q>*9QY`Itri!XQMOVW4tD|% zG{ol2#H}Sdo&4J#t-%wHn!9f-6R)bXb?{qf#PGiXE6)P7pCT>zO~Z`G0GU8HMNwJu zs8=3Ey!)nEE;i;a$5goN0GDMcriD#7|H!kRu$YX3PjA7) z?2n;1b{y)QJ=Z>b-)7Y>^Qymeca-Jk+>Yylj(QlAgG`5mN)D5#EGrQfaTe#cTHH%E zq!!)=cPUH87M>O3(O<2>2RzHjumEw;9L+AU>wBG+HAc-W1xY#O1xbTq6bPG2;?)v9 zI;{PGv4rPoeMG5Z}a$DkgEC^KnlqI8Y%}H}ApjF+N!she`kD2l(C@hOP+Mopi@kexJ_DZRT6o55P2JwulDd}_YS z3zE2RmO@vrd6y! z`y6$Bs4BkQ#>Q(TQOii|CD9GALZ=zxOAa=M@(;R zp5o(=0QC_p$T&mqtGhTkS3J-#eAemOj2MnhM{q31)`Eo%C=SkyrrSGITUhCFij+f{ z+wIl zX%n4ogZIZi+BUYoOvuQ{T0U8C-xvh-%l%BdIm>6T0A1xD>BRa2CXBhMah|p%{GGX zk@tf5#rMLD!!xsZqu#O|H9XX-=hnPKDTD3 z(8{^YcZwd4LXEq;CV#}#$&XPb2S21@Q;{(l73tHaBK&jMtVc%GGGR}OrOd>l{O(?5 z)Wp2yMd&*t9^G-d&=Njs{34qQe|XCxLh& zZ_*0rm1#iQ;+APu)rp&ki;vd-7cMOm0uHcwNiaTs;uWo?|0f zZP-l&#jnF-%2IUMw-9Rn8YetLMbkR^g##D0iv5bvovm9aK9@ADw|M-4D@waJ{YraA zom=kxY$bcv&zQA)yljB?8R$3+JH{Uj3$0HYw;)%<6nb_qc9~4EDOAbw-UebHresgs zno70&D)?rfU0w`p!K*u1_KyD_!%L@kD`-!kSmh1VKD$4Oxq#Rdd!~<Z;un;=N6F#Rtqw-ZpdLF|wBzCOOv z!L!*8;eS{+ww@Sp-Y`Mr6No=|04EoO;-r`Gt7TUd>npS*r1=Dk-}JL%{qu|0p(|al z)zc3|ir^%NrF?>SF+NY|c@?Ht$F6?+YNeJy*H#LFO962a1BSmwG=D|Q&m;L@m)&z) zKhxaYXBm@!+ds%a+<6Y3^&@a?%o^+fR{EF>dv1O9L+mDh+?TnaZjxaa$3pYOPY{rI z(Oz_EgDhJX%sa?^S~ja#*Zf@T_;bt+W{V(7BH zJwPMC1!Pos7oOcaVa3&oGQCUMG(FN@QC&n;HJ?EKsdE;J@-&z{cgobYs#^@iFP8Ct z^|$Qv6h~7mP0PvF9okv9p!CitSZ`hY@wK_jIGv=}_chr~5p5Wg8yTLxp{ikW z4%&TZDewj|dxlA$imzlofh);0%ZJOz~3}HvS8uu`-_5=1sv>xq_K>cMNejl`8$FTe;&5^l?SWuMYrp4|X*rKWRk@{owXzgPNH%s^V}z1+;dvD%xara+g+rciF~Y*~8dK#r zIUfAGME7 z^z;g$)%-27)bCp)^JAAT=OqUXIz-R_NpY}Z1=hGM>4sL)Xlz=m&H}7$Anu*%K->>K z{&-X7{#!im(L1M=f09;|sgfbAVUQGc8z1~ht-LFkZA54Ab7K0fjmH2E0zJ(Cop+N`~|qx1dyI_H~jRD~YQ;@jU{P7__G}71N{lL9-CU@wdBUS-e5hXlqn?cuB^FrX?8Byrm8WU+s8mZy8iX_eZ;$~|9FUZrDJs_a^d#|?r5V2{ zn`c^4I{~iGEXfapx@U|9d+<4o*HV~LQjH&Tc+E+{Z*oMUBuzo);7zgm%1blS>;WkY z^6{()Ek%Pg>%%HGDLh&P*t1iSK7FXf^EWLqA6a1)ZPo(w5PN22Z#35@bH-oGeYsFt z@?g_=-H0JaaTRi_KK^hhHWduSPnO74dV!4&Y^eihjmKAdCMD0kGx7ULaa8=;O%++> zqCuMDl7TeM$dy*qY$_Oti)~pR25h7Q%arLQrDfD0129<9CNmD7v<_725eQMzCy?w8 zdvu|{ zuEk`-+qfWUkWf^yyn*yMPi)ejkttKeH#sI&X5=;5!9yn;XIYDoD~zBY*}$f3p_!7x zA{h{ccN>HqlqBvOjtTS_`5L8E})#g|8vzO|TI9Fd5w|4zLkFSo6n(sW*P-;P-7(XlKxZvZ^ z>~HDVJj*+`Q)xIr4m?*{%cgfLwKWS>uGYosvdU=obzB__R_}_mcHdXarfaGCT;*|h zV{sw3XI`q0uG#o9IOze^TS@lX3Vy2Egj_5Ax0osLs%)B8n^wa!Qr$IW^LKshioE#p zr*zpf^CQIp_#o^?*yCQwj#UFMv-6@Jr^1`r^6_<189ZkhS)DJFtm2z;vB#Id>WxRF zQ>4ee(p14|EJ|UO>;()yn$@0Uuma&JC72`{s!gF>zezuyE;bpIKrFD4F{C?je%se_ zp|qsYAY@ix$RZiY*bi+m+bX3R?`*2&Y%%xN6)UJ4`0JEah6{xv(|;m40)L&S)a8sM z1NMoJu~t8%+v+BfYwl0;rdVlpY|~AljpMcQ;+8YsrMm$<1MH)kZ+!ksf80;=*tOKTR6k=jV6D?>p3K^?#E24CA=fm^>h?76`@nz8vHlN^+4iom z=g$M#a#yAKef5EO)zLJ?cEZw@KiD>1q8$E>}A!6cO(>PW?ge^r0yHn zD&(5RJ-xaAU9r|^r_98w`leG+yaDdHt{4pEh35z)xk2M>MX8_8 zhK4>p@RGw1G9zvF=Dm3q$T%nk`MCFFjf@Oi5Et16dv^Ou2?g6R-ncA&z4mFj@_eyL zTEXNyt&smVNVeUx+gj2fq$n&>cY}xKY9}9+XV1zIDXA>`W2^9MPK>KYB=^Yd4+k|N zUG)v`a`wthn#nreiqOj0vw^qV?h}U|s|*x}>dA+y`J%6vR<3EBJ?H*j(*pIGkOoMA zD2`|rz`R(|gT)6)N|}A$^XO-;o^H++H;H<+vKBw@>t+&OeRNRF!M!L@XX!pQE8FhT z`?oC&TP39Lug$kV*SoJ|j$Qk?;%)11)qHKw zC3YKtVh()Azp@n11nbs|p`ELE5lVyS+5^d|W7FhK?_RogYNh?#%Cd@eP1~v1-w!px z1}3y}kn6rlEi=Wq>-eYDO84kuhvn9Vn#E7H95(D!%j{n5_OGp9?7&h-wMrjW<5!z@ zjlG~?$>ir64ZJPI>~=huy`<;F`o2E_P)h>@6aWAK2mq?Qa6B@**=G@4xuc@!cG*IqCY=GLvTb}-ywmu^x> zjawscw0iW;b+gj;2hbNXB=pRwvsUB_7s@@f{@7B#UF+3>9f_gC9E+oRy*h9}oFzMH zWJ$0OyYcJShBVR!6)7QqW(J=5G3V|u?e$OSb53AwrzD(uKl%<8D(dXXR%-PpoxTp* zbPCecgH2z*Iw~X-6Xbyl>fN;D0T|TIR&Qc_C^Do)(VRhFzql)-NDyfn!=ee7pxv!J zk(}*{4C1JWx0lu#oi471i&%i}TZ^-r2px3-VhzCuo5@_kdV z!S~FZfiYZ=rV=cga0$Eyb^rB1?zTgYW%T~jsDj&19nD7t+Q5uaWOUyOK^meyQoL>u zyrZg563FUQF``$bv>2I|gg$5M%RVM-n1XW0Dzh^7@ zke#T`Hu9k`g%VCzvquphR?N{wNQa&TU76n97B+zqLn0 zg4@~BulHM?;LHc5@b_nf9nVI77K;0Q9yDG*zITzeWSnVxr;h-Z z)a$MBlxV$vjb2Gke?h`vC}orWNw}-)R-H9DcjPJH*7l9(rUJozhh3IHtH%JQ*?;}G zy#85cJb{C#VZJa!VRgnOX}G|?=nfx&agA%x?zhubffz4~VZc~sveV;KsU{N0)pPGxS`%edcS>008DM+Vs*S4ZgD`~>hNsy*d&+Iml;9)bXObnVMtA~!II_*lz=niQ^jg4K2Ou~bGNfFO&^Gv9 zGDxf6QGbj78Atw4gJ5at=>)4YdZK~%G3hioRi`q!vb~#3MT5}`2Mgu8Id4x0!7Awf zEGlM551n5>cq(_^TUF!uIv++;kzIe)I)umaER+X;hxq+}wP%qo z8}I-cD`c3G&K{lKpCGM)Ewp`LM;#`o_!brNKpGrg>2kIVjP=ew8 z;@X_4wwbwij$Rvm?`p!y4$$tglp@3{`2dlgq<`wY4~o9#86SrBfM7ziewnGyUqb9k ztbo^q&g@VP;uN2cUQ==+rO{!BIK~c2R-7W!VsNbYH6YEnAF|c>)b!Jw5Sq4(>S;1G z_Ic*}_tbhkju@EtHuIs%-`DN;j5<5t>PyKlo1Kbr$jx#?IFWzmFp=4Rw!e-jOJk)#tRIAf+%4Q62V6Ysstoz!NwK zA!iFUY@P#)T@!Zu$w3ThA<{*yKpub~CDd>kf)v6bF;sL&Ejg6Hr4Gan*&zza46hr( zX&M@Tg*6eZ*}np;`St6%;n;>~SV@fEw?m3(kX3&m%=gB#2&9m+ zr6zr`PJz>8DxSut&T+f*88qyaK64yQ9$3BV{3LqhCW6#$dw-t*?p7VG)VfdqMY(bCAgzJAh_D^JB!1?sa|(jSwoIk&wI4%f@OKO!p9!^`Q)^u(D#vN z+&_9%>9{H6@$!x@o}8_K*JMzu$BwjEoPTiIuF=;hP zvtF}e8t;tNaS42SdyWgB_xs zf>gFHmipeDY(O%UTe%jj6+Gnu2#Vs+;2rfeq{Vr4f-{Nqg&CU-Zdiv@;AwL^nG5-8 z1-&M$F5*x_NrrJi3L}sRIEBpmsiBG7*bZ72{4F{i+22~yZ)MYt%?fxW2a{){feUh8 zRLsZ!naO@o5@}@JhZSH$>`2I7r~usO@Duu5YpjqWy;T3yoxR z%?c8ohVJZDA%mMAki&mSyH+dX(!bjOfiyz%CO2fH@Yg?|VLUiLcTu$h*E{Y&`3y)t zasf6XU)t^_iey&W?F%`f2mMYa43EbYdp1YErJ{|?v6~*OzaQu!6e8 ziB>4m5@c(njjhvmf@H>!jjx~4K`U3Qw)qWeB`~Xy(vUn}0Q+In6gbs4&S>?kaSG8X z;?}SKy4KgPJ%K4f9>xcyDM+XCQ~@7}n7)pOr6Ylw_~pi-8og(8`Nc40OuN6O7Rsw5 zS^9b})rXq)>#E@PQ|oC+r}ET!^78awCk^9-VK!K@R~xtUq=cqzk4Ll}H2z!_5;}7N z7aEK9>VYYvv53`(SE=bCP=61RDwklE`iq|x+Zo1q1gSeM~Em6dyd`N zub$NG^^cwc-5wy~&zn&oNG9bOtDpOPc~sExEMzq`j!RKtt^4UXv> zJi{;rQNsjCUcWY=+3^1qixj`i8RMmRl z9pV>R*MLh<^9tE{C`?JXs7%)|Dm1owe^|k32~XG1Q^ahC&8TnHI&L&T&1nSznbzTYe_>0n5qY4?EbpV11!_=hZfo9}ye_jWr z0ox)>LZ@gL(v)aTejVGQusSV4!|l)g5p0_$YIKoEj&`PrItevcY*MvcF zQNz`0LNfaQRhyz$a(M54$gu6;G1Ol;6FzpM;8#0%Q6vw_Kxu{}!)dcgV&>OT{k}3V z25HEoxG2_o8nQWZK_)QII3UJaa_8O3x9S~K{iWQjfLAqKko=Bqq23S5Tr$iCyOH76 zbXW!jlW{U)em|Z^GP9$+S?OPJe7M?WXfbcQ;n7%4czk2BASJmd(1vFH-DTnz+)Q6T z#%jebe8Hj#mp~&SJ5-Hd;Al*4Tcd1JV{uf0Jy_^8T%A`Z_)HS<(H;-1J{iDzWAGMBY=+(pK6-G*h(SB%%WMWA9*hdNM=4^^Lha_*}Vcgk(_sAEqV1j>WHs@dWMgLpGnpjo30t@ z_l~5tX=7x9{|x1~j?2xz55>ZqP4%=lmJP_lsBnAzO4!>Y`+vHPAcY8Zgy-vr)9TWH zxe#wOrhYpux_0qW?uYyqW4Ed8Q;-&w>5J`!21nQB` zy~%*R?!z}=py9RT)8N!=sISyDAbmzYqYkC_q8i#iUl#>lf^5%11oEF&iv>@|*d&y2 z2{PTgjRx=(31gE{k(}lA&ve;ZHWRPg01V=w8m$Vj0U44>spUP9%oRw%tz>mM2FU18 zs9#PV*sDnqH7cX?TRM+~6^ivP@7vXW*wck`ud2O1aT_0yc6&PmnT`MEkO=-oU=27X zIu5UdofpUk|IY1>_G=q9x9_)AY;GJu%v(x96t@9Y<9E)$X!`m|FvUi%n=ejGRv^O= zW>7O^L-F(l1C-DW$=G%kmq=Z`0o~x%k=jE zjPUFB5uU52)o}@Wy1)8sqTixK_8o@e=@L4&kF-9r^T~MqW(Xz>;}A7@{n()CuN|h) z*+dT0Ax}utB+QqoMgOsDNVFi{ z4%?loFonb7L4~g)^Fb9N2tl4EX8)3PN9m~>F%*E;s$_)Y*p{gz_?oV#*+MpujkO*f zX@>UU&iT)P4Fm!X*xYm9sBzI!SaX>rnl`10UL2RMD`mC03M!62|w_6?65`o zl7bmshD~qu-;f@ zh4ozDx5(R*5`A~mD6*UZoT_x2#11|)sbHx_DVCC!JhhgDN~99sPVA;r^sl25xdcX z-#&yZ@g+h9X`GJV1r!53lRJL@)=Vl$s!@qkyxXvpe8`g6&Ks=^d?T)x9#9tcq7bM^ zL%IX8AjDuis^Ig&2Q3K7Y@E`BB^=4{!kWtq*=8~#R1HMS~(CHmpl`N>Q?d27Ni#fNOEW6}qE6>LSK<)dUf55z$U*3{}DbD`F${qa0eC);En=G_?WN3imL zZ^lueA#<+M2J6{(uC`(?@7!^tPWP1TaaLUF*Ky1;I$p{_qhe>_>SJeN%qbPx5Er%N zDV9>q{d-mKG$f5tCP{&Yl*_!^Ymw3P;!aD;qz-P@AD>b31#8FI_ZSZn3!OrN=;!^O z$=+pTq}CY|Uq(ng&XO!Bo=FL|E*yQ7`e4tpB!p5pG$D%zznvw8HK3G)hLnfRQGSF9 zjVBt68wTP!AAKP4ow~T~SQ?Kl9OaA2Y>u*B1>T(@-Kc~+dz3~CY0dZ$Pqgq)qeA1N zyjtesRZ>m`Xr%cOwIMD__^zuFSZ_;IiH~Yf@mu&ue;QOS*HhnIS!=>C^{U(m*)l1? z1%qs(JLt&gis#Fhj%G-YTw)|dLuw>TCM68;OiX-SpQ}yGMK_^+&-ERISy^QX85SI7 zK|4sy>CTRRpN@~fl-=1ao9mftx<1Oya|vlHSSaF*u{92`q_l_k@nIy5lMd7^_`)Cc zpm+WLy$KDqi9GB{tgKA>+Jp@g?ljbRwv8e$O$TkzCt4X#O{2(5(`^0eZ!R7M8<$XH z_{eMpD)EpNu_tNveO;0V4N2ostjLA&u%0k7dcMo z!Gk8+FkU96cIsFPsy9l?G#9V3IZfuYN&~+$SsJIM(bN?9Q6H)w+mnTY-k8aTWHpRl#*iQhGGt8)deH1+E1kk5tNRoYI6P9AKpN zjK&*fN@I|Bi%$Um+gUM#2LqaCvURQdC$%A-Xk|ziY9$XDf-+lyQ<|`Z11t##oC=t7 z7aD34dDt&vKUgRbuT>xY=d)h_>Jyt`mbvIuR!6~yFG&vX2o{4R(}4c{8pFTeQFhWu z77MJW^EQ!vDt0^NdhoN%llnORQx7b4UgP`M7GG9*l|~UtOC}{&hcxnBGS3Tfp|R#0 z?RzFASWBL=zSFw&dM=dNxa;~E+NBSYB{LS@Fj52yQiUvd%eN`ly$=-Qf|LkFNKCgF z3DGjSV30?$AQf3_>R&Fc>yvehiGAHXgco;+W!M(Y3pGDOEC}oQ$?gS~K`ri&_YF62 zUzbcOD1+Eh62&|GT=+s9%XLZU5caM{2x%PR9jTE!0mtu;8BIQM0&*ebPFR<$8y{rb zONpy@E=o66p(^VoecyU4teF;A-Kp!0N21Xdp-SeQW?fmMxb@u5dnReuK^s!vLmne* zCMJ}Sd?gMNg4{2~Kru>VU?UA>2nDPM$26A4)(^x(GU%Pon)$&#kp%@C`Y7g<^uXFM zqm||i;!%v-_R0H33glZ2pN~E?LP%rCB3Y1%#Qf@!LdduS6th8k=Hd6 zf_H_~GpP_$KMiqa8i3R-6JJJ%qC-OIIQ|Bu#d~dNES5}2CaEP^QdX!hTzcEDf7FNf z4UyFzt&uXC_iQn;ATg`!MxiI`hFN+4FyJ6rSfexqWwrvRWKa{9@Ib%kK>Pi>1vdmC zZF?v+6wlR>1Z($LOFm7xyAS-BrC9bhcpCb8qj`! zRAEMbu!lATWj0R9pe7t(0c4dW=sn_`9_1M$A##OzmH*5jEeL_vi!P|txG0kyGNHG( z+5LpG#n>3B=lu?|XIkL4_dk;q?XmA&{rIBLx@1y7$eksu_}V0tpEg8A_n;x-TYOOZ zwIfB_=tw>GS}{I}YlQ0h`@M6P-*3h8M~rWejooK6PH*Q8^SA4_CAjQljOk4u+o`jK zqV4MzI4HAmN(y666P9p*1y~p0l!O+9CR!PiRj{zqTfall){R2unXE(o5a&_f9*)~J zD$AI_4-9R2v{hvEu8sbGMrh30)<5c!*BLk7|35RIX{Tj0d|lla zOktB|bZmBH_qC0J18LBeh8hn`o6V!xpch$!PqO+ENJC`hOfAI5DC#N!?_q|Z%*H7x zvJ|Y#9YL9`z$pj%oBM4pJH52_+W4j7c08^zw>J03!4c-%e4=$rLr`YplniQz#mEx5 zug?Pe#jifFy4_iXdRt;7ghe(6KG+K^K||0{z}eC)ug$6+RCI{vE^NFk}FK{R?+niN8 zzhk6`w`WLEGz4WzV~`bC z7vNODGbzCZfxeW6FqxP7`#tWQpGKKdQw3IFT?!QXJT>5$=xaZ(f7A!L#`i5oLNo?6 zk|omnCca;#^?_6o>ayBf@ z(zvI`m=UMm$oj<6hnVX-xpzG5dZ6MRjxk}gH+pG&wNL6}U&+=77KHV@#a!b1e5PR6^R(P_cpNV;HUzgc+%J1J#*6#j!1u6IP#7}Og1z~mc`2Qv( zW|S@9Jy=)UsB`b5Icxt8pw?%PKD@<9wn{%JC3e=ECbzs#NOKlTa!gnsAN!uklCt*? zn(IQ^R$;A)xU}ly!u~%)D)j%^Y30{b+s*%f8Fx~;?_Z`o&ku^EF0DCLKis^gKvd(d>FdBE1omUnUc^j`c3fOR=e) z`cj1cQw{yxw_N@5IF517kH>Z6!*#rKm0bO`cZuR^@NqiU^>H36cdfEylBP@_M|XVx z2f%~-8h=N}1kMwW==-g25Yc7rLy(ppEyniPSb~h$k%II{L&SfYR^%-BZ?>|Ck5lkh zb6HUQ(TtR{UN7uf9+69o)ELmhb&sS!9tL_O3lg8@Cuy>WkA9e-@@tcqD%R^~UJspN zkkp*_G^fnQLzYy4GX==Uf_jV;5pVjzcwrwVl&?u1YUcv{{%~GPzn`S zaHDv*9}qTCILdlclH%`odZ)V7jm)VE@8u!EMgr);^N74FIStlQT4_{r(8wKn{~)7= z!jZA_Ui#~3MQmxJV&|eV&BdoO{FB^Q|A(w|!ERl*q3Bo<6IK{ekPFi8O~=zWg-)Oo zYlw3|Ij?J7V{d@e$Buku%Mx`6-Q@9*Y{2;c@WLSfoT_&ci{Oy}51gE{;v?8KEHF zc0Wzv`tFwOknMRaIn2F!znq)pe zPE2Ft7`nukVT!+Q`-fP87YtCnH2d%qAkE&iXeNUnVSeXVhmkxFSe&a1-3dt+?Wu!O zw9)D&FcXIiO%6&UGha)6RV?g3h=ss;GH|`bwU2pIEhf*g#yLl&wexYA zj?4R-7U2ZUHy(hOw;JE1%yt)h&*Nfg9q*+h#&K)=uQ~IZV5Zm=q0mQC?XtdfHQ)1- z;+0+9uET^`*?k_0UsKPsUUwveIFoZOV?KCx`ST;rEJ?Gar%$~xcxjENrfh;(6tolvM!>3VDQwy!=om@0W#}*vbC&z6S1h#YOLG0%*J;}l)TlkY zAu8eEr?i(q9m|0_MMubqyw@!_geXd}G*0m8bp&=q@t{fIjF^A7F06Nr7@a{Am=YH3h{%SvucX>Czsw{(PT+Y@*i?75 z6gTPgp1+Mm{s7@X9>2o@ahZH^)BK(f@fq)TwaKj@W;SO^>);4%LRe8+2MZyjg6g12 zS)z8Szp2Se`gO^fu*>wEas;jl3T^0wMd&lmfw2H_3ci6dS?nqEf7LdVb;x8ULn12T z2xJp7wEemBP<14y1IYjT?+Ew>jbcJo3n_>RNtPv=<`hneL%EcqsUu_)*A#OEgOrkT)$qur71~wraRKmcT?M;pc)xd^W03D#$ zoy~om9)=T4)5$3RSH3%C}?p=~-9;0sRp)YM}X+LuN`6u(ynob-? zWH!zT*N6=fCD$lEyV{uYnv;5+lili{8DF&m;H>Gbwkk{dw4xrB))19&i?Zu+TD?r| z^51RPN?LKY+WE9?oG;)k2)^*r)3gfxgvQ~OUCqG`>3(1<(dI@hL+_ zpi00`OK#7W+V}dBm3-sxQD3#yE~8?SD^u%P$h$e*zJ4A%wB5#xaVBw?Zru3V`A?Ji zH7ClrbJA_jJZ5<6(1h?Ni2>nX5_N)i1~V%Fn+E z2`RT8&>6P~atP>z$&#L?6czwnenHW(ly_9i%DE@i(mJMP(&X{r;?;-_I)UZh@wk6%|SJCfOSg>WIx?tegBr6|KsPYNe|1XbBxn>%+(?YVhNP*K-Ct^ zjvY~mq7-|#PIYpCWuE*9RRedR?`IS0&@BuTy(-@V9^rn1H6qT-2tAL0BMMQJV#}Ny zVE#G%RZH-n)oSO9jHfx&rKEVsiReb=-CmJD4V;Pj}I9msDYc} zBs^N|{rC4mAE#s1dauTNRHwg2_|rz8vPDn}?BZC&m$n)$aS*$QH96D;e(pmZ=Gd3~ zEi<|D7gh0^YKtISz4&dwoM$T-= zCMjH>4v8XyMAVOf z3DH3%kTMEZ2d1#w&lkwk*ySNU^x%cnnW`ZLZC5u_-12YNv7LmhUU1JXfk{}fC+ z$65}l5%Fe*ZffTNHAC+&JqGO10-iQPOakXY#J#Y>=iSyPaUxF-AGNiR_~HnAJQRYh zivJntJX`^CU}er@y_)^>O^hG7qVUMKLGOqH=%KBNG4Y{PoWyL|((109@O-M9Fqt=( z4IAggh#>7Nsh+k!Z60K0L3h4E$7jT~=3@k2h!ub6Iv)~Yv$Ly(nhZT2O{2%HKAL!+ zsvdD5s)1f_pVPJo>VZ!kNmlBRR(oiRXi}77w3r5GOoc6U5bccOy5z1O>Y16)2B?`L!jqAQBDR^6@ zs=X!Q{Z=2^(poh|nXhi&5rr^T)j-#=L}1T8pEiA{%bOOBP6I$F2&=HQ|U) z15lUGRrb0MEF7U)Aod}!`Dr5TjOf}0eY%XHVVD%};`;pg5q0t<#vh&|!+5A_OuB|t zKFP27P`?wOI%vt4r0A5VZQ4Q}h(fqh`dGr!Jm(drY>UAhH}+UL7oI5-z!7;zG}bT@ z1ze3B$qtF%=-(6_ne=y$^F7`R{V_Miz2!V>-)S-3e7R@zS5lU^rhe*3rM#N>WhV4z zQ(Jmj+=MGSwK_wa!Dcw|Cq8d#;EpJSf!Fy!ES#RS=vpG6^&Vj$3Q?3|%N$fAy+h)R z|In9AY!Ngf{G4%*Fit1Ak6?01PwRMB#f~UyPwu>F>hhk2w}L2u5SF~9?H_MjL$?ccu3W!A$@h>}!DHO%ti zXCK_!qtFp$lO>jhKSHDr+{ivufd`@xMJYb%g4hFlL`TGeyC5Q|(Qgby^<=ACsx9eh zA+HD$aZc~^ArU^r2IK<=@guqIfeldzD@yC28tLQ!HzM2XNOHm*r-LpvxCvQpgW>xG zykoQ_S7ZLr7PgCnYRMjg`|o4&2lwDKU22!tCF+-srIybKt+5cjN8Auw&Q5#J1?me? zfnB_b!%v_GzVFXV3ZQ*3+C)H(92%R$s7} zkm{5=C?_hd5mGeGQwD`=+Yv`}g*k;gGdk=ggcVKe5H-@l`_KQP#f4cNNp?2@Pfwz9 zZipw*LE!NqBv~}gDVns9z6<$L8*P8~{Y}L!`<$1~(|$O2{zQK1HGch7Q+rD`;k)U1 z+cl*QiV5Wm-uWWN@wv7HlNowL%4NFLmyNV)TQBpRD$L`-CC}wRPESVRJA$zP_iZOu zt{xKm(XdT`5qJn;MPZm={`3y+BdG>!EtwVDlH!+{q+k6EzgQ#NB}G|!2swg(;T}e5 zX#CIDq7|hsQK!Uh`{@Hbh@zBM_iQ>O1#_kQWqPT}yZ0+us&?5`blMMej^-5{;{6A+D?v*UUe4q_+B6dirKMR+FEtsb|J=lgYVVPi}%}MMDVn zz~;KyWpb&G@ErRrl2Ny0wC)iEv1qbW2Iv5*C}M{3UI`g>QI@zuxwIp~r;en0*dc@~ zr4Jeq6Ig`eQZ&s|(4lTZBHs~(D7O@)*fIyTB?qKQ(w8Vr(WfJdgM*NwX<1UI?5?BZ z74!(Prai*#^FvBluNK4?;O9#a4d{W>fjEB=is4$}KPQ}@=>N1$L$dUeCIJ54KW~Hf zB{biX_`3f+A6r3G!oa#EHD!btqDHn$MD;+FTHOf&QML$C!qx?fU&hvx;t`IU@R=YNY0bI2(^?!={&K9 zS(Bbw5pdfi*diVeDNFRSo@!ThKmbGB*zAZh$QOwF^FvP`0>$A`=y48Or`%7cV3VdP zbl&A#sAs3->UbsYF0EaTRvuZU^U&&Y&&1e`nTcUVm}(l1pTgr1Dw41H5-I%90x>OO zOF2iTuC#fg88lbyA>@Dmg7Ek)l4}L7#p4hz%*mlCHD$HoH##J*S|C505G5P`im;s{ z*y@&)C9bKTI#MBqC`Bo@%*g>Nh>v=qjwl589LopYiqgDO*rbGkpU=MJtyVcbPs~kY zk1hb0_n!y_QHY`xTjpdZ2l%1Z_h(~PWXq09SdtUo=cx%$yz~%R#>P(I%eflUk2nt$ zUSvzd?Q1SqCK#-Csg6vl+Um5QHV--RM=%y~1F-BLzt{OnPw%qlI$@mK+u!n|$V#8O z@%*u5M6>X`k3BJ*V`nJw-nHqh3_d%T>)2`QWJ@Gr@JR=A8lHiVb z2HKY-tteGJ~QtAH|_tgA*>c6saWws3|e@pdu?!VKV z_^74G_A9{_@w=eE3TnU7{yXbu`+J9%>|@n11~U`qt;m?>?Y(~I_A7H{Jtl)Lsb=!- zcJ(=rw1@EXX6D*b#}bcI=l_=ad(PIC75$y_zN@SFy;=Hq8t)5oxiA@GyQcF(YGyb9 zaXH^yEALD&yt3m&Mkb4Ac#dl2Rab_Oc0AEI|a>{=B)i7M^cT(!_dp4M}+Uk zP&c90AAY*p&Gk9{HIt`5e^A8``^5dOZJdtxdX4`=zUJe(&A$75NQ9yRkJx9NKW$E` zYw+{gMlw3ohin?9I3pSMw36&0^Q(!=fdA(;c}B4FsA^05KEmCVWFt=+nBMjHL7NZR z5ruH2^g+WG3{i)oVl$Qqf>;!EU<6`pk+5=_Vxol}+^qI-Vye0k50NAuY=~k#Wh{|pYL|NGK5*LRQhD={epEhCcg*7O`M!Zz5yq+zG%r zBCcXvIL?7MWE0xCO?kAl;_qYgArU^s3arogAwGh*L{iyUq!S~FRz{Z~kCv-x1V`K| ziOqz{jxpc6w31XytJ`Hl<%_ry=;;T#P}yZAYMJH~KW{Ot`!)yqJ;SsSM)qCOj=0(% z4Na_2JZXAapUPFJ8=?TL?h^6V0($o+q!F_l3~WNUQu=_M2jCO&Mv=a>+7`|yZ4&WW zC+4rz-&;fP(~oHL+5^vHBD~8%s8O(XwD;;Y$ssA4r2)FJO(WJZ#B;j6wj#^;A2hR( zb_u$+x+Ph_%S=tNjcYn&7YGLUoIXygm&mda=DZFu^{Sd&%0CIS(3f~XhgwMOge0?| z&f^IJ>b*X#7cp`2g-cIB=bK7ySsLbX8u6n~tk$Nw;o+Vs(D+NgaG?`KJ> z!$y;^b4T3fmt-qCv!4~@RV{eP3?Jh8q0w<;4vPA+o@Q*tUJnwDnCvc2WU5BtyXMjJ+ z*#8y!CIii8-|9y9#iEz>R9kX2d&;0x+b$Eo9IyB;2F^X(5?Q8cwnQ#_Z&y$4O;X2{ z7D0-F8)hH(4+=BJ9?(82D}4n1`xl{H-pNhgIk>C3N4?7!Nl8HqZ>>#JUut}TVnPlt zxO5ihIleASib7v5OG+B%1?8*V=i?ljpTT;Mpb_)W&_{&1)&1+c!($+V^qhFqLq4>< zDW-HO$(Z4o4+*=?fW^c5;NV2D2)-Ek&1ASB_K7Z0Ly(B-fluBtj~@ibye&lCrai0u z;5i@aGj3{C=Fb#5X6ol-PWPIR5V1{L?c?(2(PvUOL;)1|)UibEP5biRzd0z+s>C;c zq*0ykJ>`z)&wNN5>QdfR!w)sEn!5DqaZ#ytH6%8?-s;eyJ`1`(ah2UlUJ`mdv{9P) zW!RRlL^4xbHp2X-9<8+x+PWAVozKC!J+#y$o)?^}_MW*((TIYk4~_}C)ZV>k;!9BCz+vH~Zb7`^sZO&0+?3`mU7QUo&kmpXDJ9L8 za?y1J_OoB2b}4!_#JVMAiEHWzIS}Qh&+(>eNVr&{Bi=p*GM@O24L)2Rk4Ofh8u+~> z)s~IRdMe~4BPX4w(M;)rSODytp#6?}p?;i)j;rHK zJR85gYkPO}@!AIDDPE_kBVvuW2%kEF5x=Bpu*}#Z2x3u?PmIP!%hnEzfC6`~!TKj~ zoFxvQ3YO8EY$niwbvhzcs}{1$@d!C2;Png+1!f9%{j>DznL4ED$Rq}KS6SceHfOwhu(LWT$x2geBagNsw^IK&uXq~4D)E-r}qGW7~=?lU&_ zcse0AG+iylmzYp{1^+I2XM{?NT>cNxjT2?K^r5MDbug=i}qqOvVUr0`v)sAc)p+R=Kk33ibif-r2O> z03|#b1M$e;Q{#R0C_!1+fsC>=4U}10!(A zMBfpG@Z^UKaa(1MmA7(TVrjVX(eKRumiElIdF?-Iid>o6d)70#$~mYd^V*h(Q!P0tE-ZCPmL*EtlLDC&H~IKL58Sbv zyehU-je_Y)AzYReU21Rc%P{Gd+z4^XNg?-$$05n0X}095IpuT{==>@jX2omA?A!u< zmt+>W)PacRKT?!pFx_~)XC#h@q>sfurAD~zLh{4t0V^Zt64OfWPovmKWdGHdfh_?P;=^1u9~n;b?xeTm7N_T_1@x@%!E z)RJXl^Ap>e)u=^{j!R-vukzz@Kl^abqDVk@a7UD)6b~BWb~4?CRC0jhbV}c4zP*2E z=sghYmXsx~sY{~wdD{son&uR>kbqG>VOC;g)Pr=HqD= z+PehDAS7uioiYzQW2`L}>PA^F!*dhh&TH?G)d9wMr_j@rCYSZl!Tx_{{EkqHkQ!8@ zY=}avvbY*dTZ)5CC?l{Zgv3msPEkwAO5K*oWv+C7xVc!qm7}T-yYSUuKf7mR7gR26a92*rh`DL1NXY_U689q_Oe9G}PnG z?aiIGruRbfmiL!SCi4Tqr?P+FlOJ`c_00BjG#%_TBv~}gQk-%^{=zO7W>j3HLbFSq zqLwls8*zeP+9(Z^)7^wVlIm$M^&LJNkJg9lG@B3UUE7q}xx!Y*P^UO*P=i0+CEC9` z;@os#LnnV;S7M*}DPL-nw>^1CAL)HRhmPsx<^lD&%B;DxWLBzeJ%&HWEH*(b3c9f{ z0!18D!h+iNSMBK1>XsB&D&L(<&=EiROl?(cC{>9b{F1 z9oo)P;hm79VLg!U;-{NrcD9B=*;(M1fpk+&H_l_p{ChC*6Y|nAX!U3cZ-~*wiW=$Q zJUhFIv)sp3RSzH;>3kp8cLnQHNK zgU#m++eC9o+8f*N7}Oq1*;}sOfha^)#g=t)kUXHmgss}zpjk4TJZS>M?-Ee%Z|Jo6 z85#O)>Zx4l_h13XED%I1xR7*b${D#g;j!2G-c=!FP0nIwgjiE^Fz%k;l9q zf)lQ}#%X)dL7XmSDz3=T(19qTQSdKCVmERx&vK z*R!Y1k55A#*?u0`&}F=tT&i!{!*Qq8_{HGR(ln>z&j6|N?pA(vQ-4e5oPMY4IXq26 zo(C`jFR{`D>a`ejj`O-pq1$@b_PY%5^xBWmp`OH79XLlHde5##o-mQgQXbJ-uH$#s z-_u`7{0M^!Z0fK2ypwAdcvws_KlrO|X8xufj%N-V6b(W6A6;jg-M9@y(X}Eaq9~#v z9}v!Ix}M1vW&_z+YvO@`()P#j-3v;Vzs9jFiS#+t0W1>{n~x8|Qv}PO8_R-DK4*C7 zz7bms7O&PeLGdhXv}AmeQT-x6h_#mAFF zlbP6QYao98pg>!+YI_q7jE6q=Q6dlU-lBT!Hzf;se;5^J2~lnf_m=g~n^EP)u>Sq)o_71(C~)rJ zI2+-W32q$5ThNYQBvV;K&K88n4}07x@OfIyMYu?(D(zzUvv_gRpB0u`u_a$gEM=R& zg$(j2FTNpYqec5FjzKB}+uMRHu`C=(HCg_X~A@%CUDpywtX2Z9uEL{fkO zaNQ5=91B+MbFF3Q{R@3}A2BeIC+qy|waJ4T10;wAsn6u*Ek$mTEI|W+^G)_vdL#S3 zEubXj#pX2kBph!f!%6pJ0VQScc%$B+5gQo^*pv<LIh+X7A+fs$2a3AE_vKDeM% z9!2!Y`)tVDhG0)c#3*l2j`V9RAhKWtDG#bFAtPXp#MoHUKUnNj-EBtmmNrk8$l>t% zi0qvb&9Q%uLf$`LOQ*B%;`BU&VG`>e$(A$%jrFz*?#A|hYIB-jGXON{ja7G%tH{+x z)l--CeFIx0HhG-Gyc38;VBoldWLoFPpALQg#yt6UwtWl2t%NxGIpVngcjXus+}B6D zi%=`b&If`bl|gT8Amn{cUn{Yu&L7X54L6PX#wOd|khdF)qs{m@JFXOf&GIpqIcL+T z@c<$BZRR^}{ybRT9?ek@q(VRqym|Y^=5QkQzsnD0@o zJl;s!kAmUUi&~sl%I`ncJ?MU?Yvuh^<9?~(Kq)H9Qh5}y$-`R~B&s`7$kV8CkR&SL z(JB5reu^Rbz9qeJDOddP^AKib5JDO|v3kZA(s_txfpXviYzN2^g6bjr=F~?dEl@7F z`q=_;HX$|LHwfShiKcUmBg4T8P7K++;C zMF#jr(hB}jn8Cvqkdq)n8!ynL0W{A+kaA5XF-|#+uOFw=EUatPRJHX3mO+3ix=?%d|!k0_eWbIi*(VTUh2=`q*9+Z6+9dc zmIYCgNYW%JNR>wsDSRedcfP%U|L$xqf*{Xw26ro8~Peloqr<60=(h>mm!n=Y0{OrH|4#=w_3* za-%pAda{rQ3vzhw7Ky@%a2s;;D=jFAO6EaO42s$pYHMhqw1##8(`L zw}fa6K(D{PX8RUN0neV#=fB>(B@dpl?XEpS8XItUHUuF#68)@^d#oB=`xZ$Hlmp+` z0s%9;mF6wO{HAm^kV#?g*OWe1D2KMf`BPW})o&AnwZ9gMl`8M%` z^>BFpCW#vw`{6N1xN;mQ`OEhGYc`EFQh4A9SXH)v6-KGp{Hp2&W$~^}D6(;oI_NIj zq_+pQbyzIb8zJGHA_Wjj%kO-Tei zck{q^rNh9wA5k86?m#=m>74+5J*06&u7Ux+e;rCLBZ4B^0!|tWEohaZ!jT$afE!7Y z@Kr|G_wOW090d=bl0nF8I9Lu*Z02h=KBwfE{EBxdhzd%wf10H`ZrmeZ9vbK;mqO-= zycc1C;>0J2EEtQvf4#h1gmiT-Fg*hwvSA4rR~DB}xHo<==v8lBFrc>c%egtQ zAki@nT6f%L?e}aNA*3;Acs2wfITHQc2PZY!E<$=ymLEDUKIgOhcZDr$w>i50UQ3dw zz{ugbvFuKxpU;u3+Nskwnz6s^p6@oZd;5-{$O9vFLZvaVMe+h!q)9@H2Z$pzV06Ma zlB%P+58;Y}osxHIAkDKQ7> z(%aQoia*r$k=`GENkICmvHWoT=|Wk#@<_SQAs2RR9<@$3Qk5EO(TCC1l`^b9Vw~H8Lj+(_`!}A3}B2=(d<|3AijTX~Ty-~r&MdV^yWTEdr zr5KpssCSHoh{_y`;UX+o)vH?3pEsu5sBq&VczEGv;5`zfX~5zFgYb>G+VeV{C4Fy~ zMZdoa`f91#)AwH2lRrB5k=p)ka#cg@V6-H()1eWFh>z=p*S2+yi{NJTQJvDQ4AlNzz9WNv`~OeWj~q=c!xv z`4Qb@))4;%0Boe3g4em2g!<5c$pm?{04c-;C3&}GA@HX~_4(7d(nZ?UcwF5snufOl z^s8Io@AX9d;n5I;8(l|vIVkZO|;Ip1|*qkWXLI&VHl8;W!!X9^O zoPq2-T&x1igCwY1WfM2R^pY?L%;z2$vsMj(E34>o6?m#tldFJ@tKfG{6$vR1Jo z48aT{fvsRIb8lBLxy)*`!w_*dHG6Y~7)5_owqIb&Zc8|;l5kHwh!)qx+wj?Szl35E|@?Ln*Erb`emdt%zMZ?Z5=>+EFDydhIi;a(cTnYwzULex) z6-p`M?O)&mS!PJi}qFYAz+d%#Eg_LBGoVmNVruV5bo3%yi0O_ zY;22-C3!D(Auz6yZdbLXW(3A1tbr%^+$gDWvQ$w=Kk;r9!HZTk7sl})uux$R{v2NR z8LBSp)Cx=G#>ED>9uk22tD8bsQ@;AJYr$aimoQ~1+A8x!MltS#KWNUb z!?mncMv=;v+zXzIl?p1$#YP(b%NLVW941S%G~ha58@qGj|0$+^^w#r<@f@M2_ zeNKA}(fz*AcU&Ntgb(s%tLM>j3qJZR#E-oKd%;$)mN^+W12f=rk}MvOaty7i{PeoK zzZapFLS;ig058g=|7jZ;w)7Z z;^#yq^GNaM1lIdPO`=3>Y)&i-5~BfBrN+tT_)Z%owSqiS%+W6_OKe=klIIbQ^M*nv zrGl+87mK#A2uj_-tI<_he*Z7MYIU_5%$?>QCq~i(C;?H zK;ORvb=c^15m~0450_5c0!os=8zo8OC38!VVL?V9Zde*J7B_8w=Cy{9Skj!6PtU`jW4taHIOE$$sD8sx zv1C2Kbxh0k>4oq&OC)=fFqBK%H@3F3^qVBa0UPlgTmkP1pZm6iER|Is?{yr?)p{`2 z>R--_s9N!8SQfn@kQ(e1=FQzVwgeX~H%cRWYIN#dRTfLQytHwfuQfQ=sBep-(Oq0? z^TTi-dm3HtsUfd!AI4k4!@Ml&tj*t8z? zyP<0BO^Dt;TMijJ;M$riWUa8ZM=p(u)@WrGKQ?n1zv@Wy*Fj+5!Vc?-qkcXvmxfQ7 zhA7)8oNM>3;t(h%_sd1Vx|u-5Oq|W_Eg@Sx5c|fKCBl{*T!|RtymekKJNY{KQyK~x zakQbFdOS{rgcwFKlIoi!qPH3})kr~L9v4xLtoYE{IBM_?DN)EqPT0<2sCuov8q8X^ z>-n>G+@~5#X4PYTzKgD9OU6=TspP_Tg*Km)&_>_%qmr^c^K^aDO(UY zHFDrDB@JtrbDrlC_kGNMzxg3#@A&iK$MhldT^^|5$QkwNFNmPnlftdy>O$0ZW-;vE zeD1P(4qFFf$-P#$27N~bEuRJ>?RA#R;H8A}qDu%@Ry=ocshB&uwOuXIbtk(zZTgfA zvSg1AJn!sG>6dXWP%FaNs9VSSnv;#@+P5U$-fPG9<>Y(cp08)Y0zWXEsF&S6xpRIY5xwFc+DttBrR zwhj^*-~cn*A3+qht5GUjIIN>yfkY2-PT%IPxSbavs&OR6ASX=M@$I{L)1{c%)VZ=J5z&Xno-6k*lJ0SRb9PMB%!cwX?>{dwEYcRF$&$R;g|=AOl~Ayc+B zB%4;;wXg{^Cg07481P88`BK4!7e3JvhEW!8{X{Ch0t1yqAzOKVK1W-PD=0=TVS%jw z;HL?nWU{u+affUzcy5@ZT=Ep>`kz((Gj)InD|n; z)ctw4fX{q0hh50lKKG3+ON1>s5{-4IH0MDgPGPI9H8_1eHkTMw7UK|V-+k+hR%Q`z zo=5ph4(fo1T(au%HjlTu){w%DD~m_3o!uWJWeHzPjT>L9O0z)aWUb51ov!5j{&tEc zmv^`{@2BVz#^oG2hG8Rd#1%@I`uEPn^?IYp{{xNcTdx7*oP=-&cKqKT4?f(vpR=z=I zgFjwy3kB~{Z*fXIKg$bdFSmem(kTr8IepV#cim4~X2)BQDba0=C)eSzkql#mk=)<3 zaBlMJSM0$fae6BZamnA@vX9XJZRp(KTOjx+%01&PjzL+W+yc%?r+`iRSR9K#QAdYi z_Hqj-bG!weLZ#)NfbSV8^H}kBi_MLIbJ7TZN*M-ScDS{-C+!C_FF)6YKH7v2% zb0_h;)GRiyK;nX2yP&2LxY_*PuAk@Dkix(IQ0xel!k@U6gYr6eP zVaOy3A1~l3zM%B9rGw@i2mP(f2Y&zQd%b9wcxy$mgpMXr-EN4UFV90y30g7^==!r2;g3XY*Gq zD37*_Aem!p#_PZn*ZW(JNdnWT>&}xBSU9lc-X{#(k^23dCbGUEm-SiDE>-YK0WsQX zh1qpcG!2WD<_)V|FE@69cyVJ~_5&DQmES9}tbI_ep5G0@$#XAzS;5BVX0}_E@A^X& znqH#5EMAXCRn$vLU64WuF1cR+#Rgur(h7$(@Ge@dYeZXj!vq8|*y;j9`(gsyunmT5 z>I%oCeML2r-Subs)if6aI{RDnSo+BbJB4_2ZQzHg942&Tc+^ zOe!sV`q%GaNCkC7`j(M+sA~8p`dL-P+Q7}{anT+W3TCLK=D@-4rHvs8iJ4H!NEF)` z3GPvQv@1jAz_+BC6xZQwHwYCJ@8rxG_e2G6jS=l5fe0^HVd!Yv^{(cA&0Ma{WMq$G zRlU}h1W|Nvog2`kVs7(Rr=X4R8>-!WWr3GUIE*Ki;ihZ_sGgfy0mBBAl+{}lsI+te zTV2#Ev?0J)CSu9g!l(J-kB+rXZKAm3YZ2xB;Q54P5_4OJeWH zy0;HICy2eNepvCNyQzAGfFu{L{yMVJPSNgfQKU=?v_fC<;nN~|NN~~*cEeHUBtVa| z+&gxl0h*ik#u}GC+}rt?$Y}Z*0N+}2;Ci+^Addd)X*)bz)1}SCKq5pj?3}EoMsKJq6|@Qa2t(kiOD& zqMu0)Y~~8;!~kDB1&_lzFDu}c3c82^y^=!>)v?u9U>IZfPgJpBFYUQ=31q~igs3xN zAJnFZNm@d^RP5YaBtDxG4Ix$e#iWxp2uY5YWG^X9+&Ryflmdu z>#g^2eIWx)T6(%plQF`Zo!9(iG--^h2H+wVue(7A3Z~IePO)`sfdCbBLv~g*ZeBM? z7EGg5HBjN+Qbi77=u)sN4M$sjk4@|cu#v0f^Fw02b6EnwCiW$FlND0*61(0uBqC%)oB}x&uKuJOh zhHTJsAg4FWw=Hx8fx7Hg#VahpIFv$H zWb{OwWGq7XA&~jZJWsY%-5? zx>aAvHjspbm%-RHgMYuaPTcq(wTC-m=3abJjjjg zsV0LI^aW8$rCMqOeB;sr%yv`(J;Y25{62PO_2^-3Th~Cmi5HMM^v*6?aCqOqe0D;j zHt;tlL1OYfQYn`H8L_IL=+eWNQasgIuwu`Hgk(WfPi=tL3b-SlPoo39#7&8615ms6 zxbG6{CMaYSPc@m;fCZuk-HwP^&nS}W19XsGu_d?2^iXR_2~`%Eh@0hLaYO6CRxqOM zNZ__)W9A>|hX=!RU5OfLf>*0XO&o5}1oZGlD|5cK0mAaO$$+8*?ZQ4Wl8$AP8aOBi z7B>X4sy7mq$AIc-)n#HX#tTtA)dZwQbtdY%ky@yUPo9m=>zCz%S?kxelNPP3O_GVx zaXEZ_wvHHl^dv(RPc`PVq*d+kKoo~6#h?e|LD2wUZh`pqt%k%)9IBM1KW)wEs9Bq< zQj!fk9Eg)-Bpnndt>^W$kXM!NupuKDa=Wxte0I}VIyLByCYDl^U`d4{PEaHC`^}hs z2*rw$+%ngoYE*}=0cE|0h+0PvMIc3~EW9IbhugXcOh8_+%R&+F@IVw#H36wXb2_Nd znzlyzMjsfAqyL%HZbRGF;e{v=E?o zE3&Aw?8W;Hy2GqOAcs@=2A_|rk)p(eN|Dr}Nj5PEYJ{x67bR$ISG1PK2?4c|sy4_c znOwQi43(k-ZL-=RpJYPj8JEcc(ON7|P9R6X( zJRWsa>xaxVK{=o=icre{CGf@ng(wtP0G@$err9J}6N|KM(z-BxuB1l()&QIXgsT1% z!+kV0W}h`Hm=sO2i7agoTxR)n@@YTorVF*CbMv$=a6u93oM{ZT1SjzEe{^dQHkbWD zM()qOg@BBbwjXn(S+JhaooC9Wd>Ex`n@q9`&KjX58cje`)ClVWc=gXY&i{HtKY_rB z>cFo2^ZdWv5XDnXK`EBn2-GIA;!4wL^(Ed5N)J-b`@(^EGl=Z;4eKTe+DOpL^wcP@ zcX6n5_`%6?HPOx5BS*{~46^t7(&5-CYD{qJN0JM=PLq>th#VOhX487SfCp1~--59| z9_ZH#zv~$h1TkM+y=gQl3a+|Er-FF%qo~Vt?duy{jwS}wXn;EgivVLFtARO-G8Un1 zRWQ;c%n_jaUbjGxK88NoS8Kqwapd7N*oUNj&+IYyuS(ptwA(Y*jo#LX#Am~cfsNzN zlECl2!#$}u{O){yTL(lW{;^KquQdYnZnG}hxgu&n-~S{(8sN3Q4)2KXZ$}eKNmT-x z`_a~Ak^pfok+ax)5Nqoe+Ibg>L01av(BWD}I$v!89-eBF)K0JkQ7Ag%V^-Un>a`d7Wa;LsdjgW`>Cby&3?$P_;JZV&+RZ@#4`2d|{1M9C@ zFQ`@R*0*%i9=;@hC1?UZ6>$I3x``oyO1nv0F%&#aiwmj^^V}0-Jv*gIWg#=~X>;+J z33*kHiFsyCw*wtn-fU7*m0*KBm5J5|nv?NcM6T;3h&B*d00W`5<@f@*Gg!3S_WG9T$SvK@u ze;2Kv&eF1zU)ufYV^Z8lpPVJzy9Y(5rUu=`u~iKH;n32(nl3SeC~(&4El z4TzGLPz{-=hZ4`)7oK`E*qjaRITfdSSUhOYCv~MwW36|1P8RL30cPH6v9Lo zM-)nfD)l%wz8ym#dj6~fac1xP{dbDodRS}kTL=!d6TUV?p%f+9Ag2cOfUmu{^zhYV zPuzPrcLj~qhi3%;JZ*WGOf#!tI7~3FhNXK+tr{@6i_vJ#?*#BA5tfyHLr??$B@i{L zQzNyVun6Kqd{YB^7ezD*YS*>TdK1K=P=h!mx*Yo{wFf~gn%X+t5pRBY(zAsLOnKT? z$!8~}dw)mZm!lB!2oLuAb*=-$y}J_xu$`lKS}%cp?mpdtkxbx%vhI6kcpFcu0szcX+9;TMmADRQxAn5f7etxai z&)viR{a4o=@!TB+eM?-36K{x8l;F^tSOJyiHb8A)+w2+XQ*kyG+(O*fMY;<_DN3+G z4sBgth(fVc8|cv6TJbD*xMyhn0rwMV7c{cx&lr4P3pHr|{-dJ=gKPtN_JC&G*@^`2 zV*qk>rR^&y@aLJyt%@^=M@y5>kv~3IVCssi*>ruNXz;G(rI8EYpWEo^&O3dGZTsB| zu|Dy8O%o>M1K$vsI3A?)v{-;s#7xNe4gn8SC!W9cz?W=lK%RRe=6vTj>Adhm_=8io z$*8;caC`bPK>dRCh#VI68~alo3{faW2?14>FA@TL+~03qCueQzp&*LizT(S<(NHkH z9{}-zY6JUK=0%(hw5D1@yB$T-q3foGESbR0EBWVH#E09(u53y>wGkZ3fl|nE#UNG* z$@H^U5H>x;B<{d|7^AD>;pa$HNiCXW6FngaS_Y^QS6e2DPgc8fo2K>qqr1nsBH*z@ zv-i`dbJ#}N#0SMl>Hs5ESxB)~5Juzy>KAXpyE?V>E+qeD#ZN2F1n+N|ru73)B;Mbv z#_hIgkLNh^Y-@;Pb7a2SQuO%x?yezf3yf}$Nrw6a2c2`B)V3;(+W_xDYH97TD>oQh zx)wxR)1z1scSYJ;jl>$(K!Fz!<(GvCw_GGnOrII3=- zeiY-`{_(U_1+}f_>w1kXZNH!a@Ged3P4GOe=^7sgovC`B1W$K&v6f~-uim!_L@5eb zmsCmk*0`Wr8fNP$okI|dLM_1|sH70|$v&xV&_EQ2-g=*KWmXOP{adS$`~89nZrgh! z$|*k2@ajPjtti1{mqprY8a<NJ%W25Un`fZnY{Hn`WmtDKW z8TTHlwo}c%s7g6)DSAfhzb|@otoK@a5btt3+&XB=dv~E!z4K$-?ejex+eyO)4L3$( zv&kmexUm~<&^V3NHfn6!wr$(CZGZQEf1Y2S|6upJ<~7%ub7tm1r>QKMM$6AidPmM6 zOsSA$ebU0=8--!!Aw0rh4aT%I*f8!<501|tihqn|9;^^nkmaGR+P89~FM`Cg0y^NJ z3crl!Zg1EjIfE=jDFo(PL$5(lVRji-DTEu!Tz5{%!62c)RU7LMB)eiwQp&}6e9rHO zBd==jz15s47@@TxvG1zQ6vF+T*gKEs1Yim_KCcOx3V1WNOle{Y;oGA~P5m^iB#BU^r z8JvM`u5k5n9H`MOb6(F?hpyV8whxnx$;FSUKK1}cl^MfdLNIYaxm+>zArzH;9?&Gc zpEX~P=p`XT|NSd=62<2!o_w~q?kYpu7NyfxIm+(7uYTcWhn+V`s>}E)!@Ee=a<5Pf zdCF9ukR_hB#Kw5K>V}|F)bK|8Y(*x}BPnNpqEEZ0&r*IRkiQ*Rxl;1vCueb@G!RG1 zv*-rc16tD1f25L}f2X!ff5Um>`R8R5J6{LbD>+e6Mqx-2Z3m1p{Bfx>g;JgBTL3|6 z2Izsc8pJ#YURN^|+rXVPvGH2oSgI8oNWjzx{EJOV2xSPCDe(fUkRL zM+7RlcK(D~=l5Id@j__D!qbkqEOLG$Bt!4e_Wm84*+{PK#Dy910B4+9wb!=;qm zbr#xkPx{8~x55?kEkVKQuU&IY?KE}J^E990bTIu1r|N`rB1)ka)JK|y{3wFTC;OQs z!=^LWO*J&XWyPvNUYNlDt^v;PnTjOnzho7koTU1^JAd9VQF^Obvw)q(>g zGJ$k*(xrhTluL?YAO(M*CZ(9Vd2k*7q2+>iZ*kvHVSDtq&SA%S`GN`t^*SVi)+ z()aBAKc|Z$)QAkF5F4mTA#ev76}kVLYqc&YcPVf1-KbJ#rURGUJC>W1`aGHz0dNHK zqFmm}lA$1MgJu;#jC4Xcb5qw0iB?WoOu9d4l|Y-#+(gdk=En+jRa2tYhaboFV?;$o z9r}^67xp=vM22ba#hB2)&>(FPuL;k*QXbo6 zN@R=+@Gf3uQ+FB43un1GsqF3UvtQp?%J0x$o(yjP6>xb3?!0!`tRnND-!P3<-C~)) z@=2WeU7aSa*B_cm|F4d7gLZKc7%TUNn(TC+3@V2W*Ul2?wMe5xKAt|ZlmoXIS-Up> z{8y*&Alxdkl!KUw2eKiZZQj(zs&u^)zuV*Kt^paS#@I-y8l!Q3sn#H0a|`FU2p{+n z|M->ecZ#UY)RrG0HXD|B=-YUa77iS`g-8~Z{N97#;1~~j)P_8cf_P_3eZ1VR!%u%t zayl9GSDnX@=QD@=4DJ; zL{IbYE;S{<1)C1s3cT)Ez2eG+G`zXaQ?f+vGkm(=_Bo?}i6-Jpn+LxXE;#wRqSXD8 zejg;SAah{{@V^`dJ^{MNrwSTAWNXve?Jpv!fKslW$LPpE6Ei*>5b9VL%wJD-&9$CK zx`~Dko_tg+Xl5YT*+k)8Xe3!u|D2%tUZ#3f#qg)(yugYeG%BdtKh!30ruIf}%?Lx0 zOYBBZh)X?&QHL1AYxOM3pFmQ31>wNo!P+8YUP25~F%#ud)XgFsvZ5@yB3A?T42Vm2 zqP02cbE`S~(sL7Lr3<8l<`6g|<*?>WebL0T=>NFnkrn*HlqxOR8-Py<4Y^@c0#5!u zyp-&Xh2j8+eh=j~6maRZ>f>K^Z#;UqqO5y#-ZYY;OEZtj->CpCb6?GQIOWJgautgd zP|-q3X)ATWQ1HdWI6tE(o-LF=a{(og;<|q84@-zWIikaQ&cs2%kD~{Y6Y8c+#dOD{ z`S+fN&+($ClRn$PKKm<7t{pw-h0==qKLR-)j1O8h zLoQ`;nB|YR_Xfc(W0%~qNsl&XKPV>#et5WcH=F1ad-flUUU5L3nTL&~vqQ1Q|GjY5 zOHhN}OrwDr_x`!Ik?p0jc6J%ze$7^XIjJI=6%+}yJ2Nek{Nk3!rB zDw(iO36p3T4cU$tf`2D{yYGW4ml65ip`ZMgW}#ZD-PCd4n7R|i2?va~_fP}-$l zsM=;?TAUylu?{^uR^(Rbi?E9}#obriEd-uoMxYn`*x9UGDiYu8Ed1IfGKUPL1p97d zvl3i~(wAAk48t!t=bpBP#Z{M}gDLg59+!-`*}0NxKA(lWUqrXovLV=G;KxY|v!TMQ z2bScCN^K}VoI#w^Y5pwe_A$B-0m;BnLhYiObW&6;#E~f2VN3rj%-7={?ADgEdpmEl zhlg}qsq&z_ZB)6MOZ5W9l})(>4{Qq=qRiYZG0g;Mj-j~GFdCv-rUv&@f>q1{RoL9! ze+`k*lSqJ~pkDz%rY7lP2>lYv3`j_n$vgXsB>OCLoDB3{e>gSn6ZmKt z-qZn#AZz^F$k~Bj_!^q@pk5DqhCs*`Tv@bAgII*aoF_Ie0|)ERxcHZgO;sh9+rdJxWHNs`Wj zD3dGU#Oo8q)uO6>0_)iQcD?U=D_JQ1fj*$qV*+TmV$w--0FKe9(V~~}V|2D_9Lws0 zGcEh{TS$9zCo5M*4>2(~&#fYE>5yi&4(d_75jQn;(VtSd^LOF5$N1&HR~x3-9fa|c zD=IWwBb?D4bTIl-g~z`aW~%!{;8l8)i8Z~1wkpU%T(q$AMCUR!#psG%YmkQ-vqfWv zoRLNIWQsq5tbeEc!s434)fUIH6Jh){My(OjtNRc36S{H;4pXqmFm)1Pr{_O1U62sI zXpY@$<`5sFG!q`sna0a1QXc0SL{sBiEJ3oVKe5F=$N^a=B48!_&( z&<4XrL=y~xl;hm{3@m~Y%^(GfOZBqd=)hPV)*ND@Ze`R7SVZf9X5L5)PqxU)jJy5B zgf5@^&`lcS=m^}oUF~V-8>h0slzu$9Zt&`_o632;MY%@KBWS+^zMHAO78jG&Clo{m z7@YB?f}$8(6bN7g8p(@Hef!~83`ZjY1oK@s(VEx+&RJlFlRNUZXf44y4?|S^+ByH) zp|swb>|H|7&3dV3nK(Go$>_^e?nK9#Pn)rIXi9Ru#oSu?Nhfc$8R+Kp=b}mYB-55{ zP^y9I;K&W5 z7ooK9^|-HQSCm-_zxgIB zp)CU*Zgj6@jCpw>Ltp-ml3AL{Dgo=guxbGDw`?$jPNDKq$3z%;r7)=>9x2xE)`f?j z{F?(|%L(rHcST#gGN@dgkVfRI{pnr{CvmDZ=UQXTAjz=OfVB}!s`Nj)j=@ontrJam zbh*$EIm_@|VL)B{V|xo~?jnID=PJ~2e&+Di!1VFk!Y(Q|2EsQa?tB>XCqYEGAL~maq#HWFx*i)F(0h z^tQ)xm88E`^6y1mYwzUJr`p>yNHTWUDrQQ9jrH2y)p~ED;OVq5&D$tPi0Tl#I+J@R z4-4yLVZI_(;<`~~2d->cJ5UJ3C`Dl-mc(2AlTw%r$Ox$V1s!p*k<$8dxm zOjZj!uuA%Ep21eOj(8NrI*3ky8-sFzVnG;?1u7R@xDtEi1trrGQ!IaF4utxNUJUI& zTb#gg&0s(Xx7DlHM%#169b#wio`A$Rcz%%;cU_r^)0mYtjjS-fY}&TwSX=!IpK;Rx zv`4+7MBoZUrbaLP^3$Qk`FW51`l*V7c(3Ra-f_u1FFMPEtLH6-nyjNC-qesh4|^ne zMV*n%r2Khb-G|-rCWC_~d_Iup`07E_-w!Xm~k?czyx2a>@zfvG2}O z=XlbO1;VuM+zO9AAaYTR_sZ|SM5@1mDaSIbcVe4aVs`z@X9_{@^NF-oAS|Vl!%n_M zx(c!Wya_+_S9c#Ghx-Y#i5?nnC`IL{bPVA5P*4 z6KBp~ofm;1N|id;9PKa6+Q{EwYtg@Fn828Y;Od7G8vf``cPzMWed(nRx;NY0@KNcb z8=IatnzhHyoAJ)iQEVXb|uD zUO#tJ&UMtd6NGN(#Q&4zjlNf;yMMq|g?7xu$vtQUihNeIdFvGQ=@PZLYWlcadj?yjkScvO?%~$2a|v)Ntij%!1~bOI z{zF!I?(CsEQ)~{joeI>cPPUxYciQmQdRlyqc+8z=BOT92OBNFXv{j|3^}XS}p2NAP zxn9m*XW;h?>fkcWYjCBsoA+2!8!CbY8g-hN0iD*A5v@Kw0!H)3o`0eI5At!=&qMWt zlH8dopT(Y0Nwjq-g}%(IzK_i}W%32BiawTJ*N(FJ+RawS47pWnETW$F8LQIu7+88DP#p^~r;`8JX6Yejj9ndOKMU;H6ux7iX_?nSdqGH^M8{z()GR)0 z($Rq%q^5Ym9huf}pF65%PEZqT?Foec!tKklmQL_9RzN2cE;Qzgn^d1RWA%FgvIZ_GmY*Fq{@ z6U*KnJ4_FyU$t*tOSoJ=;%(+II6{s>>Ilt9W<&S0r>E|e-Fs6nF?aqd=wjBCv*evw zMdA}pa>yujedUz2To&VLd&{m0mVKP@f2=iwQLmK}{gD^>^i;xA@jr8G&MuOw8ZD$wiw<=u8|NRdB%s^>xL6ZE04ZQlsVv62&I`% z215G?cZGg*qecQN5MPoy&c?UeLT)s{@Mu6!78&NdI3nTh+iSd6(?vL%MYF6X_VHg0r_7w%tt7|(xu z#NflyW+4#bq;P}4GR6J-N-sj9zj?2&X6Kq5`{H)0PBv}%Vw$kmH|rY?(XvWbnA0rV z%~vuHisBKd{Qb^o*y0nb{kD(cDw@Ea0ft9y{brR}TotT{f+;vVA0Pw9J(9X4Qq|w- zJ;`$%1vBqcIN>z(6gm>SP+r3{`voFfRq{!bwrj0D!ZAaWCR}I|DOu@mr1}{H0)MfYCb_>z$b6L|m=8Q_gM*jG?YRb zZr}q{BgA`YO>7@c>%)A^=nI5J(i=JTEDAZlYTQin2__KXUGMrndBbIu>|5=o z;lSOUL~C-$&x)uJvs<|#ok&mzY3X>C`NkEbigu(Q?Mxt6i>F6FF{FSaqBY?uyge&| z6ROE(p8)tic}~Anz)|@VpbcM@P)q=q#VXP=aQ>IU&3psr;2$bP#zt?(oQqk_ZDhT% zV(p+r$%{Mo)yIP)`J-@_mz4`JodOXXtzBhOma5Dva99SkQb2ielk{ZMC-a(PY29dl zdx3=?6uD?qQ+~&h!PI+xd8Hm{Ks&CcU7b_q$>KbwEVr0MU6+eU>FYU!Vr0M zEVsk3r;s1Dz9MZGe|wyQ7S0$90nwMN>W-Jn z!EU`pnJ`uE$T!RqAMa2wPW?8{OM}`I`f{-ydduwi6lny6<8AH}mMn3cB695N5ba--hS=x>qh`!37nJZh#4V+ch=7 zi?bCdu3b6j3S>$q2sY3Ntcv}l+&XI#=|6d-s@!2%Zw6n1>io|U&t`iBI2!$8S>A|b zKmAoI3Brnp0ZFV22wi(Bw2sbik| zJj$B2yD8K|2@)zo{iCRux;pZDcd)<#Zdh`5`x!sX>WKM82aJ>#=l$u>SD`wpCIj^< z>b2S>+h8&`gXJgY`&c-1+H#Tduw?yMXZqrl0*RX` z%kyo45cWGfk$xe5`bRyq(2<)!ZeS56uWY+bcdo1? zbai4$C)0RfI6aR-WLXISf>84sf>CT&KS_)PMYFgDy^Xd>=YqiNDP#7pB4io#<{&Bi z^Bi1KRjAb^L4Z)P7eCi?a(BpOol-AyPAk32gGag}>>Lhl7AKA7(I78Z=F*_$_I+Vj zX%Vh2iV~8^k)$$J<{k2;hhn!wt!DTM)Y1)gPao^|4^GKZv?*btIZ|bSe(`Uz z+!co34`>1HR-b9}K%t+pA|Eiz(|#Y5Dt}(4pA+FNTlUr8g_ZYRptY{rE9%;RY2Dlj9A5%>!QGTgaIGH%h1)V`^g{ysVw_F>Z)H28VSKH}WLjq%v1m57f?406pXXc}D z60L~wMlX(mbn4e23CcZ}n0zS(!=-O^K*$d(I~kfsNCP4=8T*PNq_7rZ&mwOu$%Z1I z34YqrLP>^BC{`|pfBF|V4yQGA5gbgy(S>x~}vl?;S(F{Yb%h*NHgGTvT)kl81O5z@R zZ+OX_X6Y-n^`d`}NjXrgQ@q!@M5B#rdu=s5w65jOBB5A-ycCwn@VL4KX%?vwGy#w9 z-b+Y1&B$-#{s}PFQPcTA)~s8Jk7rEd92rZxS`~VwZY38nIdgd7&RzeuMv>VTZoLmW zBcG8?YV;=4hv3Kdz7*!vYz+`Ch&Z@JEepa3Kc$>y=(DPy8CNrkEVAfCmD6b%1#xk3 zACrIE>B$be>7eQTpfmkQIm##k3;OF7U~v-}<^tmKA)T6H#uWl|jB@`tfMTjR1U^}h zeT7q=WK3%Q(k49zYqwUE-UFWn0TILn5|pxf3SjqYy)aC{g+C(6N+~esUz48|9}ed6 zF0%_U4Oa?!R#L*_`lx$A%v>V8we-jWs?`K)e?#jcceH*(t~J*=&rS`q7l-~1nwAc1 zggM=ysnd7&bAEW|v05phf7~;cq0=f~YnufUO{bD{qpFdO-f4epW+c*l?Xl5I<&=7H z$%3?aMIdBeURdApWN}xQe$e*h3IqCYx8<+$+p{uWf)s>8Q;3OpE-=#gLE@Gui3KWO zE@ubR8+7ntsE@o0WGrVW6_F&bR8%90xiY_g`ueJKa&fVfW%W`=T8;=`_g7O@DOlOD zvg1AA*UQ_&xg__MQ}gyiEb3xCj~-g27>Y{#nn5#hrDSHr0F*p_DZ(}o72-Hc0Z;n# zU+Fd*G!gFGSAg4|yU4rSe&fc)v3+Oiy);L*H8!Le2$T$YE|s|ymf9M(mMp?6G?-FM z$L+96G;P2T?D9r1N?G7(&?#?dDjrfq3j<4t9UW6}pypv6|*K17^ zvL7)H!39>P{A5VksK>afCzS$uaq4dcX|O4|g1xeHq5J+BYYMyCyw)Apl$guot$($l zB5>7GItMIzhrIgTer5H9Uz2_mgud51=hZG|xxa6Uv2&WFZ zZ4hy_4>XLv%VJBXRK9cUNp_v+sa-)+#6XrCJnBiv>imXP)=$p2*$tHd>lZMatF@rsC<4UM3qC^0lx@YH5pn{l2b9Gl5kv7Zr^-zd{$ zokdk_B(HENw=@8=-%v8H**2GpU07ru&fEn;;$L(|z(`KRp2iZ&g@u2Df>DY&>x`Sm;&v8U`ExPCnnwchlr_6m zk`%uh`Z9sfyzuj5S|s70>8yqvlI8Z-_?Ht*CG=b7l|SyYuUhGtG{RVOnG@fcar6>! z;W!)C6jfRrIuetWTbqJ$zGc;_(7gf(9r_n<e3#Pr;B6M!N{dI#Plh&*kec zhsn>1fdm)&N+bPd&fSi%P9e20bav$e2mW}S6+bQJLLz4uul>%O1(0ECgp-CI$x=vOD8n@bn5^Dm|KY(_>SFEeoXRlJ- zG^Fdv4a5}dgQL%;;KRy8FG6|G(wNhy%chsPs!+PF((epQ{NFE|f_?OCO1cvk`I?^# ztsi!FP2);#*6u@nfCb7VllL}kJ~DmZJxmT%NGKqsYrQEoAA1ljY%<2F6qPd*Y|L2y zZibFnN3ceERsSao9jqWB7@)5~4Qq4tHW30XZE4h(p_NaI)r3!H4Y!tI{tTx@+ z17MhYIn7q2>-S?V&@ZL(F-U@T>Js7sLA7>1+|B`h~OVL`o1GeOgG>-(T{&c*B2E#_sy*^3| z!6$8RBU{bPf>h9|J#w2{6~8oq)b%!%o2Z7Zk}t9_3J}r^@}jXESwE?=sxum&(?kl{ zd_2d`E&;%hR16UshqD$#vUkqm`cvAk(~1<$eQHSCuc?e0PoQQbwC!ID?dON8%xk+o zAGW3B6hh-)h0~sHE|7or@#4pQu2Vz!HC3k_Q$$db#u@$Qv0k1YQIFnIL2z^Fr5eMH z(`bT$@wt7bt#>7`Xv)d29bj4&>6rr|l@N#J493^6(zy(dK%mrU#`=9|%NuyGJ;h0PQp3B=bY4kH3aC=Iej*h-T8F*DDp`CE39iZxj;T6G=f=kJ1! zbk16#0!D5H!7V9RZP6qrQp5Eqx9qi+QE5TTF1X~KYB@-Ep~ZQmY-bpc?X%nv9(DVk z&<4@2IhVrwyFyW`kwKw)KdQSJz-QmH^q$(D<0QV6qZ1)5@5U)QwUF-HR{MBGmxb)1 zu`#d6(C)Aop_8U7vp0fv@Sl$pMNuWT-5oJys!d}2R4SCdxXB%H(!y9WhiK>v=rnr9 zxqRqt*g0QDsRU>M<$V`H^vfFvoG^-`;W6`=_KVzTSJ$AR=c#LMs9;W!guvq#EE2ll z*J<9B4FAFNq~)P)DnPoDOPCG{9QrVsedpOT4>?1}jQC4+SiNFcSMu?-JY6w7c7>jR=2wb5yo%2;jS0xKM;5pkaz@F~{I|5U2-e!e)#OEL2Pct#hzVv|Rz=<}-0vQV-|4bat;r0b zsc2+v!BUN%k#pEHV=Aq*HhdgjH@v;-c@M3`@B*tZI1(R1{=Ij-Z0R5jJ;qhB7X-18 z^%zFdMOYyg>&e^pUwY})xaA3#6X|y9?7dG*(<~nwk4ol)ui@ma-ip3aL$$yt$Sdb->aZ-tkmQDg1yDzif9#gf2dAx;lc%V3i!_P4JsL`$dMB@&F7ocw$$h({Q$l2q>|liOQxtw!JN$1&<0jCQ>g06 zjZco)8iaSPxv)2Hr*1+2BG46+KV(#m#xd`<+D|Utp83h{YsAoNJx~;C~kHh5C zoOgZzjJqbz339ux!>@ivjV7xQo{hNZZ+Cc50$tbeYJS@Z{M2OIml;=46Hn4AS4s3k zT5c#QKR}rpGGOqpv?y4Ol?!?g8c;d^G)O^Y9zZbw!1CTvBnZ+T4Q3r{3{5CT?{58g zY1-#qdb?Q;zmXntY)vJ#A%e4Cfi(m{E1coQZm@CqQZ8V{`9tGPeHk3Xl`7mIrar76 zcr^|mkzGlzqB2g9*tH)9sC26jU*XP;SgZ6pa1{bANiylQvIrz$jD`6HgX-p%3BJpP z`8KuifY>ebmdv&}R-aGVN83#a_%z**sWRS{b3KqDA*h*&$I3O@O^r4F85#Ayz;rb% zTkLVYsx}@?bSW7JGNdN>Nhi)7WdWNPmTO+*<$!Tm?uPl6xLnaGhtQF;`GRctjG<`kw> zEI2kl7DG?f=?uj#q&X6erbd}96UcZ5dw$dW@Fx7Vi#%;|yYYt;wFQ+>*|hM#=_|S* z`1^?^{`qDfWJ>vRp_z6wL6r@}aR^_XMp@E`Axtl$^~UImU@un38LBj0kLGUyLR`!g z1}KQ*geLorFcIMPECIbT12n${h9XKu^FllXXV6L`{4R*v`|zJXBdVcLLMQAZaUlJP zAAk)e#cnw6bhV$pS_+CW-2qu%ekQA|udripfChIS?68lOzT-fMRDV?gwH!`dh+O0Z zGOdk8RtC)D<)%NEDHpq_u$C%nhhDT?tYkSh(?HIl3fi1O=3+-psT^Olz_3KjL`#8g zt3m{dRSVhY4KX(eAvo4j|3^9tK;t~C=eoxrZMiR}^f)!|#4#A!IMo?<_>z0Dh%{LQ zX7kGU0mxOBBL?aV%_OYF|Hgt^2x3C*Z5qS9dI-yn8hzPz=*lPf(Q`*e!Lrkebu<5+ z*>t?0!Ii^7L_BNGw81+6{O3F<@hGBIHty8{o#LeHG`*P;(x!-#6fxhnLAM&X!tGV+ zKext#L@6&3noK1P_4{9U&Yb-fsxfp=(NC z-5ECTl39W4hG)zTyq$e{Ve#(HMOX`bUS%zWzR`sik-bvERq;7YZlstmsKKE>`~4~8 zXN0b4RCC4iYQ1$F_Ikdzr5%mq+iT*LfS(KQPml1EFF}bZKCNJ?Rrsj<0&DTAd};`* z%EeG~qs9QQ9T`A@ls(oG006xC1F}WY{Ik6rno8v4GzrmeV}=j{(IvWhd;^!@-X9 zg1?orct1tfX%}_bdcUO8h|&;t%-BU48h^$S$kxO~T)#!c9O+u`b6jS7*9{uL{L4!k zhVup(eLj^RSVge2J{7jzg`B=b7}|aNRdidqqCtE>ChbxVeAe{ z@5g9QF?Mdw36B|%-UD|4=zsL8LZS`KRyNgBS{ZTcqTDp#T~ER@vF!Rw=&!1Y6|0r4z};g4+C1je==H2a-BHj>^W9Ea1alZ^ zmH8lahO{X8#fi&oL+U#V^PUwpl3->`sZ*@mf3d`aE))z*g@H~=rlTK}mzem4xPSS8 z)^wODzPZH+f(W>`G_m<`1!hmNV%X^0(?K&f20=G4N3l{Ultv=k4a>WZ7?&}7rx8CV ztBizJDIt`DkqGP6*$Swdj>B5)q4e?>MfTqkXN%vo@-CTaqdO~GHCh9;EH$QL6P*AM zBAaOvEWA-YJ-rv3tm=Q7$N_Z3LzQ#EPRMnt2gc(tMGz=UeKS%-tDXuM4VpZn3+}C zJa@GR9U7l8(qrA!xm9ahB95vSp&e#zrW>GEdVfqqX-JiR${c1$t_e)K8bkTNPQo>FXccoMOKWOwC4d5(6#Mj)ExA^8n-)W#;-)lxehpCvP&RpUbc(i z{VR`Th4gG1k1iLep2+V~Wp4UrD(*49^!;0b%0Q0k$a5cb&rLS5PR>r}P{hmnRtywS zBT#FBz!vQyj6-S?KC@V3wF0xNtB~YI(=?jj#%h7*5+H@+PO_KhNk$U+&Gj~KUOd~B z^1P(VBKpo)6>f~a=DDv>eaSG9-xc}dUB#t2{}Var+{LhFabT3`zuisSoBj^Q;G(yI zIxvA{$8r_8H6ZH!q3;Abk2ZMlSS4!Tgwp(pSmMKv>yF5Ir?Se3&|rYe=$MeQvrL8S zsp)%8ifN@19QfS7{nB=k38Y`0ASj;tRa9<64a={bJDZF%htisf`z*0Q4C{Rhm0vk3 z7B{Uz+f3Z`8_QSfbA;l|p)dEK!ttM_d*O;Wc2mfZ;Wz^VxE*g6g5{VII4v41opzq(ZaV3%ncaIrzsf^4?V#u?;z?)Tx00NYnAIBuz1d zUm+)&bjqY-M}Zr=g$g_7-^_R2A~A@oj(P5k8E5HY;93FFYSd%SuqqVr*jH06IHy>_ zg{i0)y>N?uE}Zpp>cW4xlA2@Nw0j16Lc`=XljqV$Wm!cwKqA#KkvH?J#Xt?lL?YRlr5Ig>| zg=(&lOl27lFShzK)%3vxlPp@Zgg<4TjW0$BC3zDWU6{#UxLL-4I^$v@$(SDHy0Aru zvr;=IjIfBEP`kp9X_<0AU?(Z2a*V*wWxR=*z$natBZIbQ>HJ}X8m{nT0~oD=1lSHo z=I5L^LOcT+-wET~46Hv8r6Dga%hL*Kl1jNHxwu)ibrx1#uw(p+xvof*1N`ZHZ+6NGEqLb!s8tEWE;tdH!?q3% zXq+U1JZAyY$=VZ@@hfIlEOTOwD!aki`ekl%EO*YoLmr{BJ3!- zj)2bz!y@7T7YVt?ggXV|Qq+E4wPYB>?3J({*>2_dmA2ZcS!d6!Rn@6r!IxM7&+#qh2N-RjugF z-^nkuoMm`>o`%cBNQ3*Brjf^%yEHAyD?O+L@X+Ucn<8j~Gjwx?2?!Pcp>mMo{UIw5 zY|x7e6IQP$$eygTmO}IdBW4ybR*Jl+yyhQKb6rEMFBa|-D0(C)a1Qn|z>UOjN9!@3 z=G=Vm9UQl77&g_GMR$}uKx@FvQeHB#wDH{1tv_k&nWKvX%0UhFsTtiRkZd`|MbTkM z8MGZKyaE;0OB?$=Y|syHib5e+O;}0UgrK)GUu?|#mw8J`N+}{$hTagm$vlL57EM=1 ze||i{6edrYYkwH>Ml^|-INW;}6>{2(yNwF*>ND<=n?xML2S3vKaG0Fb+l#d&r+c3I z;WiU5UYq0> z(EJJM(Zlz^cqR+c>CInUhB?d!?u884Bw1WC6ee<il1Sdnh`E6w3FSK!~Oc5UbZl3dRZlz>ou&x zBK{eV8^&KdJS7%XsWlF&A0V)tzAQeI5ohLe9%&^NJ8GUpoWlyTP%bo`njY3&N^`u6 zf1E6|9PdCcz*uN~6e^__LioK{t*fK|(x35Nabey28-#(ISLIKTfLP#ltC~33Vf#fc zvO{i8G_({Ipj)a}d9zn!HC%^^Tai?^lbVr;{(KU6j|QWUHCL$5aF#1qPk?QvDq=a$ z8;1N#`cF6@76{Gfz4>aqbv{chO#x{dQy`tYuh+@T@b(a?_pbwR1Qo2BE#91Oqo^QSGUV~oYe+rtU#~hWH;c{n`IMGMQxXg zCVd)#RyYw4>P=;#>;#w2m)8D2W~^J&munD>?M&e~FGOBCwoYw@g7Mfw3Bdep0%t2- zLf^!w|2Wg{QbghxDin$TT6EwyVSR7qe} z4)60g_|~IEmrWQbp(Av=*hEiZiC~9~MI3`Ph$e6Sy(;ytg#pn{d8@s^L$t+=+LbG; z^u;-dm#MI)&nelBZ8dnVYo!rZI{l@g{8PV#BE`;a~{Z_nRZthW6`h4ohBBz~#ol zDcEb%TUB7}A;MiI6}c5gW1Q9E+NivaWi=w_SC|#;y@xKx5;ds^&@^0{D&gvrlOVJj z^&j2lv~)*;Ae5q{VDA~SaSh_HcPZOM)H!Cju)&VI^}182%&J!HI|=#up;$oaAPoG~m9sey&ej6?G6jmJn-l4Js43OKOIAc24>~m*cs{g1G zdW%p(YhFO)4kqkWh*Q{jsOz6}Z7tGEB&B$;3$r?ZyJET5(eUP=Ro7z)pJ`v7DB8lA zpt1K}7oD}C`yyf*`Hzn-)Pey5TtgVM5QDGFpzXv^X8i!F0cjD8#&kt`ixt+<=X3^G z%bh-NT43ap){IQy%D`IAlzhYKUx|$D;f-S>U*g3$xbt||>oQN2q>G4qRn3AoP`|sx ze2X)tqP+&ju)b`#)8VD3R*) z*g?l??~qg(#(kz0*34-Dj2Ga@h`uwi7Xo7KXI<@blZNS4XbRB_*ne(+lc^H2YJNTQ zyIr7v7!ZiLfa_e`!iG#mKe6UI$UQGnHtvpOr@sxTFKN?LU+5U*%sS zWY4ZK-K!RGZ>|kL)-cZuCUU*TO!34(&mSVBjj?8{?Q|2F%fqI?BK9#@px4&)xs-t2j-DMH9k{*t)}wZ0adsH(O233a6N*4o$ zNkjCb?^Gn7WD{B9vn9k!`X7uY_S_SZ55+25kQbalsO=ODv{Q048b#k(? zk(LJf69t0FsAH zYT~~eIRuqI1R+pSe{pP{Igz(F@0KK?4%C`uI#YEoGUTqBF~@t~<+P-{=;9#q7NTh$ zd9AjXoJ14s^tSMgX}QwrBis+3lDYBg{ArwsW05moy~kSRs}n(5$oj#Rt@})ZjOwO3 z{^E`96fv_@PAv%MlBUesz0k%0*#P~Nm8tBSQd#a$G*9DOX{tNKLe5BlA}rJ5jj8ul zGy_s$+MW-@baT(B_2_k^YQ|L$W+{onXz418fH1X!NSL7TsW?*UH)TeOj@RB<8{X-~~VpV)&g&Ly%n@>$5 zhU`-DG9MNidabn^+n^DDRRC5d@$nwv{iD!? z(BJoAOFp>C(}io07N09acoNQsQ8RUATqWi_b^+sY=3`!_gq9Tc|7=9+d3X}Q92fZ2 zO=!laSrxC%?i1w`a5-p}b>umLb`*xq?FtbDJ97fjQPDcV4;cCn0n5TEZArSbqNLyg zjHj)U7<)G&vuhMp(*(!NQ!~x-Wmfjw<1-*xroNDrT0O1N5uo7%ms_p|ZB2VEI=c3d z+!XbLR|lB6IR^3@U%&?$#o7F;pOpF9Q`7{>K3o$_F4*9BFMP4_xarmBFZ@nj{69sI@ZUKK3WT&!HS zD%cboGFJg|zR2nZ4k)EKyHU)0WWjl+l+?P&mJ-w- znS&TuimkJK+iPSivUAL4gp&Nf@d^Y zAG&huyJVB>CHEoKhW}7WI+c0G1LH+mV+k@_N-Dh?qXOKmr(n8H$|HkKn&F3q=ODSbq z*VVVQt-PnhSKX+!^EsDLPRwn>Q=r>Zi%#27?6rSAdoTBCq>0%#e}_&s99g22>+&Do zQ-YYEq8o?{6X2qhAZjnKNH~zko16F`|F%qJCK0u*~fqWq))b68{} z7~asAC!l4dy! z;Z9M#^!U)ew}orK+i~4}njH_Dm(YC8>^y7XIXK`;GN0ugAF}DEJx<`c;KC1q?>)pX zN-jseN|di&Rbs2{$!k7pA^kOqXg$DGE=sGxFLT(eO*acz`>I7sTDGKso`Wa%qj>du z33A&DTA}`3tK1t%*JYH?ZDOM|CX@QH<-z;+&0r3PL8F^&|A#Dkt$y9{FOx5Sw3lQE zj0ie1^wQJr_rr!ok4#reHyl%A3ehhyN}6pIu6Ta*jIO{G$scF7`((^#?dET~fb@=voneIoO!)VZ$% zeL~SucbHb1X#{`Fg=YiZO-QjNw6l!${gkmcHI?$>>I@<0ct4cIXn!h7!2o)~g=iWP z$w<9roi}x|zUeH=!a4-l3{@|Br~eY|3;F+M!X(}I!MY*EN%Td0pnbS}&oO>t=kpmr z&cf|FlWba+$o?76sxvM%9Yu7>K1nd~(_q8ai)i8KCy;#RL=YJjZQk4K$;hrjo1*L* zii#X`L~!sYDxbtdN+;$Vs)A+|1+|nV@2;n;$?r32Y=U)p*U_ER{sK81%4q;^JmGr^pYiou%NHz#z>;{*^Ao2Pz8icO@u!V-A#Kgs=<6it z)8zN@#H^>2W=malsO9)Ryq|0M#qnSN8kzrhD0$_9u^$RRD!oBM9Dp8MyJN2ex`or$VRKyIibPX6_x)$Lj8x)pgl)Pvd=*+(Q+%@|W z7ue6-VAximi-&fA(Jo%Uuc6!G570c0!8)!Z2snZe32B>OOAu+fRE+t{)G4WtdZexE zk*p>O*Num1vHwu2_$7yfp@TtY^f>-8JV2a%X@cPAGg8_qpoLYJBZ9%LoQlx%$2u;v)P0lNixE^ah3xp~6+*CdjY^1jM=!Huna@W4m14)- z7nga3tqo%Pu}S;Vr(%sU%xT8%sDH692tCS$XSky}z%S@ZAT`i=7sP_})>Ibnjc~!i zWKG6yt%(gS;{O_-UXadOsuok=X!_7qJvvN_Wz%ve2+`{B$^(-}US70iPndgpPcxKa z{4exLXKWR^qkR12Gm;Wm;ux}lkA1nMcG;t_^~g7RYAU*Zje+qJrCfYDqU8+s-eOWD zZ~qLji)GexvZJ8A-E!6pp@K^myp>BYjU*yY6%)%%`kr8NhJCAp{xU{34^9Mf$-pU_ zTNz6FMSFYw^_VZRq@1g)WFo%L=(gj8Wd+h^a`+b_OmnMBBt>z0062G;yifLKKZSkI zeoFY-)0pJRV@QImJ(YmL|7t8XmV3db8l!QqYnutQI}YBRhQ!sPSyG zupT4Br^anaoTTIoW6$+<)LKq<@ue$nwfGtP4Zo|)Vz+j_j>z4?RJrN->G_t}RU>oV zPBoVF4ja^Tx2(IrlvFD<%&|1T0*ZTPR1TrC*d2dDw%{UFXq#`&;Shttud{^72 z2*lwA?S^%vn@nvRZHIYCwwN_`AURAa7^to*KWW!#`LtQ+Oq|B0g5iC3!^h77&aYAp zjHR#UT?k?bYfI_!h$gL6nM5c;8_cTy#8bN~hY4@dBVsYrk=aAKzoEi9Lxl+Hki|9D z_ke#}T87{$!y*pjHsjwh`>St4h1Qlm&iIgrsHRVu%cm|vLN zuUjcngxHhej6>EyuX=qycbD4n-Sk=xo{&Y!aha;!-BkW4fH9}$&R1ypb0PKVckG(w z(+`G4EDA&oAen&Ty$-#h1d3pK=C2=D;=Z|VraiT>? zxxz*)-7@Th0ENn$Yt_$3-*fl;beL7=8>#tuF=J@3ZDhTrdyV`9?AyNT%{WGXQvb2% zWia>H6+qzl%St#$U*YBEksJ!7azIsNXMQ41%B(7&NH994!O@U@`)1>WnK7T!F+SDo=%jBF$nOB7GsF^cS6A9HimxUNPzh;bN z8)POu64A>};pa_8=a}MzUR}p5i4mAZNQ-c#-~BbGPzB5KZ7ePYd+L1$Bg4ZWAmd^{ ztdj;XMzWjkj53CXul;evTRmQU3oueun!(395Ps<&DRFtd5txJ-zVoQL>rQ*SSDymG zwgKq1O4L~5u04hfQHdb!bN~Kz%}Lv zu17#Egp7HfV~=1RSA<8l);b4fp6MQJ2iJ+5=gVQTK|vp3ewV02>*MyG?IL(|WLb^G z35~C)h&X0zv(@^G%{V|Xy3ZN1KR1WPbO_NkP(=I4jV&hlH3P|?a6jhXPt-=D$nYjPzt;1gfjdQx=Wtk?hkvSZKIP~;0_Rfph4t>HDzibM032B9E^L7 zx4i{@l0?Pxw_}V$SRel0VeQ-3I)YT>B3g2^wUVeV6L%S%g?+f*b_J~%_Nm>6Z`7uk zy$49AI*+Z@O)E<8m<5^5QXYnzv%zrav1GO@9FSimfDm<}_ts}UhaF2cf*H%$UBxERCj+b8x z0QyTbR+*HaQj0omg!!rs83xY&54N*sp)QZ<>mEn}Un}GjGDACMq~O_{rW0l+jkDx4t5DV|j=Jk!(!j zw1u%&p02G{CP+hn1Q3=`xD3f|e9X>j409QS?euBwJg#f@gGv3tKizzKK@aNpsV_?7 zD9{K}418&s)UBe7agl?ivZ#M4*Uw7dRJqX2CNj=k%((779(dkd*?4YVw_98u|DxiU;q93ta3&Ms@4f!SI>rG{j~55eun$1UEinaU$ykqx#t6 zHEF7Bka2}wN%N2PU4~#F28uXr3*;${%#d4UL#DYKZ%?_Yz`@s!UICflZTi?kSQWAs zo@s0}4#T7A!&a#IlBQq~42vo|Jlt0s$s^_pTlBg_kM8=>l4GkJ9!Ot;yTvS6J|&^W zVb_@oL9_FAiz-X>G5!y=^el(#H9tNTX-*^lM3G@U@J>gDi;q?Ra|*bY7Uf{giZ_X! zm-X&2W*YhbZsa}=>AAi7o4<6k?SF4wAPBZ_5gN72&ZPok;1gMLp}f5EuDqac{76X` zHQ7AIZ!OK+N*@Ei6%yFkaoI7r8D>zP#C*3In@!i9aX`?Jokv|YH7(sI!3E{aFRSB{D{~g7HRiiN zSyP)B{Giz3$0?SWFoon_xUok<_Ko1Zak`^OEFU(y(a4bsqB%T_8`PINFH zw|Vjm+cs<#22?GqTlTE_Ttitz;lgS`y{B~?naqAuS;d<6!_w|?gG zsJ?N36szJ{?XBxAY*9;j6H0;#+Zq1zC-u7-&nqdB!qHMQtHpe}BGTmy`66pF_t#`b zc>k|+>j-&!QTri5?MkaPa%1iC(B{f&bpS z5&McRbAZOhQlsrNT####uMl6j-QUbgNv=k$yO}B>9|cPsrL{H6&7$n>XTiS8k4G~J zB}?W4WnCd`*HPQds+Fv5U)}UA3=@R~{x;@!m4^<^Oj4od#`mso&++n7aIoig?|P!KUN7l6%^8hBWR4%h z(*$aaE;aX=Kd7JiBJGa3vy{G1Nvb^f^Asf`K_bVf%S>veqBuxdxF6FF#mWF+d-Mby z%j++n;zo`LVWwdMzxe)a${q~@hfOm@cDd=?%GcIz_)Uiuicgy^i_99rzdSbi4F|T{BnBO!TW>HiHG3SnIr( z?ya%#S(Sg zIsk!o;VQmkbp5KqHL@XO=gu%*_Rjgn|A;Nxn#~j8i}J4Z7IW+{ z*St$pMO9y%3>JmMs-t&*?t!OixI{^Oh1uZt4@knv!OC%GZ#xBHpD31_WV+W9WNm%^ z&UzHJrYnUbg!uwO4x^_gV?R%p>aYaUFm{XccC5d0$lw1!e^<|VG=Ux%mtj6nBosCp z;#NjKe}`_jg|1g8j)#s93Ok~#G-J;QFc3=*YA=r$gWDB$sVH%rRZvi6G5dCi(w6%f z;%9RG3EM|_VomntV+;ebtRNk#vUs-P74q-dS_>Jhn*_uyS6N}bNSsI?32DQM6_Ko{ z4|^bZGE_@i6SDDoK!PlrsVHObR56R_t-Hx0e9CN*hzr8+zEC*n3tv3`0z}gC|>yWim#uDMM>s3RU}#U4$)0| z>ZYUqMatWVh(fY?7Tz&M%L*wPNST(4AajbVz$d+ZMsLM>ZlE6EM+|^=K;M-5*Fa;B zgv_orXV1fPjkoaFFx);2k|#S`>BuT{Hxa@gE^>wIvsr={+Pk%kReon4V$B%L7I-92 zGHinY1DW@M`u}lHU!gx(hqx9iG6~?(BJap1?Sfx380r$9xvdIp36UI%{Q0}$gII&JEpz2=|TaCuD7+P{Q!?&Q5Tu_$~;)0ctfUlMa!q+XHTP8NZ(8~$`-t?d39T-{3ZBj%O{FM#Ne`Ogf+VOe~NJm+pwd?B_+3=M%^r{dF~*B#5dQ%8J~sT9;_PY}vV z&I(ltai{yI#OIpAwK9%-Vinq>?>Lc&w%`5VBV*4E3_`R1h1FfH`foBwxc**VlH!wW z6?KIYM9I;Ov}K$8)w8M^=|UPPs+*?*w=T%Ho^#UHQdsNh#QG@&dC(=_QW7sAd;Ren zl1y=byWuv%qroMi*hXA0QS0_h5pWHEgst}SV@x7>#(gM?K?g&t@E1Y?F-!-_S_hZf z7Y3wgY&Th@Ea)TAyezeH&WiQV{ZAfaJ5MtO8$Jsw*8z_YSSz#@jGjLN1<_u0|FP#< zNTz6oEFNc=domc&Giuc0d7fodCl`LNzm25RAN+{g%rPQWA$Krr;OdQ~h2d`IeRTS|uUnX>h>g6JOLp zJY9nYmAjVh0f@417veO`I`k~ln6rDA4N>l(huqD;mJLLn=_ zTAV@&OM)R#MXpnQIhPEzN*5U80LY_pj(ww-7v#@K2V=uVZ=-~XSN3`qFj8g@tZ-Lx zL0tD}?^dx^&HSuscLrWozUBtBeAqBs3Mvt{m27=yPN?H?rU??j)>6}p#Lvi<;&5+v zJ>U6~#-R9jAYKXfa-xlgx{Y6c#i|4bpz$peniEjzXg@d^uAsnaVAX;JDR0HZBu<58 zl98PTCmDQy4pq*9l?Ep3(WUpX?blvrq&R4r5ArW+MYP`%fEZn*tuWJ7P&{HEp&%)qdFWpdh5v;kQlNqPTxHWytT5`9>N30488(M#7d<(;!TXJdNwZ8AiWw9k z;3)z|v?q}m{(i!Dxy~)W_tn*Kl{U0V&<&pJ)(i9o;eS#Iu5*V+8!x9XXt^>_>cG1%^eXT;P{YZvv>jEMdhZtT z;uqX^wGN*Ti}@!eP;ZC1pH-YC^v-VzsF0(GFa_2>SbOQ?Bw<`*K7vJX zu~b;X(MLryimDq;zU6GL{@yQ4ITz$zU z^{xuGojNg`m=YuBxZqfIuQLWfm08LJ$69H zaH7PE<9pNE-3^+0INyS?_0T|CQx zL~cP&?z=W3PD%epl7)_fWlTL@3{@uWiWRQRyd_ZG>~UH8)1ZwF>9;?ywP%{q30e-l z|57+gf{NV5uL(W);1U6N%~WL0PQcLs+Jq3wU3D;8Qs)!E@$eJLp8k9fFAPlCn3{B; z_47G%6VJAOND*$?sXu}=L7a)mx=#EqY$|VA(>PR(@XfQXN6r?Y1l+A!g6X9;-nw)9 z9*N4|sF7znQ#Ba2z~>01d^*Sa&Q~Z#C?S`o6}m+UO-6k?ZPLX7mng5> zi-#3KWuWF4#ZyoA3{7HOsG;4W3FLV*QW%gBIFP{R? zCqO3mr9D2cyZwH9Jk*R1A{va04SIbWp?ZbLNdG!?8zvxTRMcp}3k8omT&4e?pIGYJ z<8+o5koPFIohxK@Y_!tUju)DD$gsyjr$(}OsSd!gfBuVxMzD65_%aYai!FbcONz>Hjq@syW9p1Nz}_kH_>m7!Cp9xrVNycUKNg zA@q?p*xoAa`W3bVnV>(91-ep65J|b(F~{{(+=0>D7QP;Rp#X~1a0Gl$#3CHlI)tqo z-AOV=EO|OWcE?>|j;yhvQM@K1%W^Og+}C^C`U@DC0OX=G=9tx!ut9tF5HdwCC|DWQ zsbrh5+}OZ806n76+u??t{s5Djrc}HN2Vg39=?Y*CYFjWy}F7Aiw zIS@}`-B7d%M8V$l7 zYMuFK-GL@D5H%TF{4%TbPzGM*CxRleEYnf}rh3U4s!}Vw3&ysTyYJ7oC(@}ypA+~> zII5uXi~tNxZ3|2Sfg0i6=S@^jomRL}NWoH3jnCc15KN{!3*m(nGNx&V=}ZQJNq7vn zVXzMwBs|R(>1Gw_JSo(6`!C^v#&fY#-R zAHW5YZ>mJ{mm7!c?;qA?YOWXV0~FI`Erih-sEk*|dty9Ss5v&ilhVs5f}3pGVp>Mb zAmHY2!|qY;HPWf7+P*&>zG?o8weGDkmTFzAl- zflPHaox@!)3j#x1@UYSqVqLm6-(F+;;i^QqntW%D&}>wA^`eJEe?iJ_2~=-QMt<#w z*CpI2-TUiQfJCKldXMh%k=8L;vmC;Wwq=ih6o4VRkpAtz`5O}|;W_U%n%n1V;Dl|4S^r8*YU>Dh#go# zQ6&s$h(L`(lJ~Aw&=sm=W5`cqSZQ}A^$1c~ zFwS9awAU945yk^iDE|`5%V2-+Z+!_O7zTL)5JvdD2PWxcg372Zhg$UzglT zXfYS{4Nd%+I$0~8U=^xiceZg#;n4o!bHvj!MJi(hK!y%tp%20_JYfL-TCMW<0~e=a zW(T6Uz?}8#Ql{KGm3SV#Q$kkJe9}%4g^B1V&#?T7NbEr>cDNLusEmp+6a( zdr*FM6loq~fB5`{sl~lY!oov5G|kE!(T)BRJQt!xR|1>Cz65?M@mMs&i&Ld{3;Fqv zabr%1&QznAbCjp1Q(n^eud{}!OjF@S>jq-EI~4v*O$0wN`^6&y^qs|W)Y}j zKNA5iLB89<;RrM9@wNKCijD3)``han|7(3~=rlds+0k_CA`b=QRLwb^2f=C_T#f-D zbD*A`rkhxEXtmXzOlf=@-=H}J9I`lvwPq9wRI8;{dbq(yO@smG1_fv^+?__8ziy(u zkdKxZ$<0{Y8r$Y+fpcIeEnDw%atH5|kSg98(GJrovF|&lee~aP2e0u<9kcbA#dSC8 z6cSR375YK|x8zQ0r%uql($7~sD03URdePNHh3bm4oE`L#n~+&Ow=VO`mMtQ~G|bGf z5)~g@0s|C@o$}s14&W?Cn$n?$R`l>WFVyO~pLWvd^BdVlh z0(e>>oSW4^2i!^kc?}0$jMrBoE*SiqD#$lL22@HMp{o}XQVK-qV3Z61IvSG`X`Hkr z!h;z~lTnnK$MxS|2ZEDu+`YsZ-%ZjcJvTey8a5eHpz%Sk07F^rKx!pR01+0C3arLy z9Y(j&g7&^XDM+89%UO)@q5NNR(^d4Z1GN-DYf8Y@v~t8$`&CU##{a9ceU&k~F8gTY z8A*+eU<>CVJD@~ZKNeujA*Q%W`OaNL%2>@NO6K9hh=^&DSw>QVSW|mjSSN^?O?Kp? zm}|bTA@U#4V55oaSr}-kN?U#A{!-J5Vugedk;KVR4@H_Q;U|oZLz4{eqcz(-NKjqn zzen0N+;wt1#-7nufDiN-klKmwK?i4ydgKI;i9(hB-mi`81oAJq6@J_$D}OgL$NuzO zxk=v{>DzNY&sw!g#E4}YrZ9!1o{qn4EDuavU$)3yJc&2m`U0aO##J$;;UaxbOrtRR zjhdYte9CR7;>>9P(Nhp<_R#)Wl}RvH2HDx&PpM_^?N-V8o5|_p&f13!4-)=>It$qA zU%ZEUX@3VGVz+;|F}79UNcH6q=Bm|i3op&HATYuN&<@|mQ2yp7M=G)sfdJ>8YdA<8 z>4nxi0!viX08IghYIAu&s9Hd!4Sw&x)MuX^H4$5r=H=Pp{I{uGM2F;7yn=7?tExV?##rA-j?}>G@0Qrl&44n}Akv17aG1=^O$%Nd>=GeS_xe8qG!$^nWbys^qmz~O$OyvnK+LW2fnnYoioXfPV;N6D*`l>hLUW544fqlccFTsK z0>Z`6w#w8zO}>SD+cEqiOydcy!}RVJCMw-#odl+6o} z&LEpipf7&T4(V6tigUySdmFdf+}Q|i`$dE9s0A_WE_mg6;n14d6FgLL@=YOmf+kLu zv7L~HupXkD(rw%k%Leg&A2tSYGtkO*(Q_rW9Bxc1nhB5k-fUA}fNx_Hi~LoU^{**m z!7J_=Nui!*9pa654)*6NQL7>#T}^dVE^?*%+0{CUm1TuJ;JOiUP}ZS=qm|%x_Q%lR zPZSq=MV@irSd)i@u{jgTgZo}L>>5ti1H!nyPA>g%UzbB1o22n(rF1kO6pq#Uyv z`NbDzo;5bGqKE6*7pEux_w7pre9$^$i@~*kV3hZgMloI`QzGZ;zj$6XMa58n$Nz64#{H-g49bIMvc0; zmSX?r<0f8q>TR{+x69>Z5O4eP_Q*zqsCaAY1Dd96lKbi?{@zlk&R3g~rB0iHi;Css zU2D^yr~9prdT|C;Xu_{CH0pQuoN*O)!y=Rnd?2%x6;j7JMZ^Fb33nN;ds=bt66tej}id! zT2$WUqx|@MG6({Q>d?>Z&X4-HSQRqgq*5YRoL7)y&nl$#la&hGbyL(cK!?1aF3^w%ibYhE^pjh4fnqrg2(;;9&I^_(^S7kEweiFI4KfP&N%BMNOXFPl}5 z|MfU%JIjQ_{8iu^W(cx);J2~aTljFJ9N$SuBYjE#@!XX9br;F*m~N`@F>bKjK9&Mn zI{z+T@T&gD>4j-Md(MKB;NMHr?%4}>Y%F}g*)LZs^iL|dS23rP0hTJXi26W5(|}BHt}K+7_zqna49 z2B|wj?4Rr7Mwt~|6PYjO_$NfiKm^W;d=_OvH8y`Cn{srqKq~0@b>-}4739a8Cozm$ zYyre^w+|(}lrbF@b@b1i>fNsDvOm37O=|#`0YhF)NrX~@WY90#-hU8yaEChT_jrc3 zy-mD{a>eMG>!^VSm4)1h$ zNlSc~OGu|5cQg`PA;-+45f7isu3?r0a7wgsPu5+4;AHDwcHNnm5B}(O?P`WRZizbq z`|(DmAAqJ6BM*4_z?(z>$fKt3cYCf|ESvgllNB{Xpc#J%>%-zf)_?O16nAVmyfjF0 z6u<@Ac#i|YpbCM*Cxm}`A1`OgL1t?msL)BeYfb_~BwF~Pm*s5Y7ONVq{?x?|GQqt0 z;eg(Ny<1zSXT$5AiX-PPaLs=CVXgj>H&6bm!iez)kn0yq8?=&v_weldK?AM8?CHZ0CNZt__MB5t1Rn zp{#d<*05Gh9$^X;jwKBYX6-Io*W5%^6y@?QAP zCkMC50gcETVMxF-)on|s{yWfnl&w@pfXo8iBopcX8UWFb9;m{KuEXd#pyX5X{@Vu? zu7~py$$zh5rMFGbk3}~#9mkD6OLzLX zSXqvQ_J2lQVNr<5^)IwccefRR_hk zf@Lq&A8<2J18sEpgS71d>zeESibL||V6Tb3BHPN1%G{n7ODYYqUMS-@A&JFvzQT*E zt-+5Jy~kPoazXwnC<{u_j{>OcYzMgi+WTll0$(ALJqm8Xq18o@+A2)uvVPS^MBNq` z1KB|@tNkviDU*fCUvkZp!_A9Wb8&G{I%!FD9_Ec1nb^9&?(gkQsYeU>W5$eAUYtaC zt?DSFC#2NyS?)ehxmZ2BH<4PbPYIs%X(Epe*D$Fv)~xwqckcu@0T&|fGfAW4w>AuD zUL}}JlepU49?G0l$kGw?S+`j?oZ#>^ixaJTl#oSqFWeR=_t5#}&8vX#`PFpYmaFF9 z#~=kTtg!3#L}38a9!pjB(~ilJa3_Jf_ujP7a86}djhJhvn*CGN-%Aei#3_T00j4{* zlauMAj|sl&d#+taqRrv3b>3!-&))BM?<+`t%0{fYp;Yj$*(}dCpcFg6udcwyZb`nE zWEnz*ZIjL(4&9YAum95k1J-#qTM3zR8=trO7J2~CvDKoVdFU+6&Rq(z%9`9dtijn5 z>`=?q%|ig*`j&)5J6@USm%l<$h#Bk*repVRp9O}&*Tk6{^H;Mgq=<7GMiZ}lc6RAz z+o&ib&(C)$-xTt&BxH3&Ps|zI`e@RiYo*JYYPfa6tziMG5g&u){QDYQ*gyS5MMFd7 zp>U-xIURNHY;3;#+cRm{HFBFOWk$p|-Ff(*nWfM^DpPmM9kPJfe?|b|n;6NeoL0xK zRX?fUw51ekiluP4ayR#HLF_ph3!+Ol2cB>iP zXF2^UlBofwDUO8AcHL+B-OI84Qo~^>+vHw3>ELdTvCVH;U$OXf2&ZxnJsh;o_>Yap zuE~d-n@pnOxx0{=hS{6L&&z96Wgc+zxo?UENata~Z@ps6+eZIQgT#j@=QO^t@eC61;PS?q4R>@&o+pL4J zAYQu2V*K&D&}staMO>(XMUVE&O$VAd<^y#t^@TD^UB9H}!hLcbQN z@Dl$lQP|}lu3+~1u3cHQ%MKUtbFj`9wt}23x;1&FAfi|PLIQKqf8QGG1_tXBW8-B( zNBudHvDyJqsCCGEsdZU}B#Lq_d4!llpU?CzR3X@5_g4VTh8qadJ%UiS(}TX3T|Wvltsf$=ur++Kj$5DHmeH<{EypoJS7oVJe;;dGMBT?j?~OMtz^thnJFB z5x51cEkMxUHHZK*5^?WyK$FV%r#VDjUBpyK`pU22jFQn*xd01*cm$igYRQDpA>`*}CnSC|nZHheb? zKAFZ6&HRXYX2a;a?o3DL{S#Y%9tKMmZl-WBvGdAtxJ~%c<%Do=RB2l-Deu`izm(yy zSn=mBvVpal0Y59Powq8}O%Pe>XZf(LA}VUPTwPi$w$P(ftBDzg3cwkaBdMQ#yjr1| zlc9b2wBu4hfpwizjK2S9R}^00pap&w!H%%$i=g>ekOOPQrH5C9j;LzK*zGqBA9ZVE zpS*&6*{kgod^szuhpWXT8P22`Lng9SjIW}ZjXMR6VtStCm~DCD>=Ubw+xlu3Mn(Cd z)|kTii%P>copFAm7oneQ{9J)Zai|B2a{Vi;6403gylLvjKgz^>gYq+nQU=yJ1@g~W zh89wX=lK4orIB~g)GW^^CkG^)LV_yp=z29)53A|xPzuc!*?U0@@1CeB8n!i z7zo|*KpYsuhbgLk3n>Sd^mu=W4Gs<8ny#@(>M##D4%aLdq>1=CBO0%2Bdbn#5kxkj z2FWJk2lUP7yq$XO?%hRD393tfNDB5M2QlYN%Xn=%qtwfkPSwYVC?I{!2z#-v{u52GzC@h|HG)4Yza4NEvNCwNjN7UJSQLLLfnP8iWL@Jj%s|l_*r) zc>pzI2+0Kgs&rOuH!p~DQNVUo{ym{b{Vlsxv@ zKs0x3c-6J@R%GM<*GU*2hI&qTYr3!>N{34MkDwc1;R8jpHLPOGGm(fOTG|yyQB&+y z+l11w>i6QBx$!exR`UIVrj4}x>EtVkIaO%>twZWgaH=ce*8Mp_u7Yfpl}W59Y9BwO zWVd)NJ;*4+L54A@IAG;WV8nWwCl|TsifUQ_kZu(bW6=5!OMyneC~D7n!TK(SDyBN8 zCZ=bf3=F5CQauJg{w7moq0}o#8obD*sb@Qc&B_H=a~|r3l$-<))}Zw(0{YDOCxLx( z?X71$kxf}E-DSjo;YKG4gUY+j%*i6jW~3%ek@$FJ3U#qPD=zWTNdwqo6>M){;{si+ zibQmP0ts!vv5phgQQFpDAW^mpN@qMaSldarW-T-F6~u79bjqAY9L574Pu(3@kqv!j z&i{Xbr20EeWw3<&$nSXKUe zM38;rB~?;SgVsr5GxX)LhgTQHJ$_?p5~%K`02?_7cO*K=;10+>3X-t)2rI^`5>7WV zBUr=Sb$Zt?mmF(7TiHLC)My$ACA3{_hO-TqEDQaQsCSOb`~BblbIV?~mzG;C+iuIY z-Lh@l*5Wc2mg~y4ZR`8&_5S>BzrU}ow(E)WJdek5+z(|QqM7zRwQQWMvhBj>qhrpA zmHX0;r0|T-6?hR=Hx0-=6iBlf*dV6EY5SFT4HwwTs+&L0B5$-w{>7q4qTpWv81d&@ znm$*l4_-eGf6F!z(Mt^GN*^pIaBF@}gqfkOQh|BMrJ1tMkvX`C=adzY4lFO?%Vl!d zJ+-jH(K*aV>XAF0p_v7zci%m#CGwd{=l*L9rgZPzNi7p<@Q6dmCDi%(Yc-CqCP%va z=BoZoZe^%R&hV%(PdC&O?TClwGl(rhz@H3yU4CW_mD3rFBS1h7L^V8#67|qeO@vc%Bzx{$Qwm{EVr< z(%7u2yjW41C<|H1Y`joP4bb`GWM-0f-DGG6k*gH_o2%OE`>w3m&{?!Hz@2goZXk_m zy=mvu%-*Gt3*BmntNT=R=qu;&#lj|odqYqWviU>q#ONSFw~C)CF8rc#Hv<3!ZtRILoNIByBMF$1^F&4j6~Dkl zh&y8(7!Hi!*=gtJ00$q~Z4Ah7XF~Srj@(^TGhzA1zT2vl$;f@X3Zwhb6PZt<&Yt)Osbpw7D00?MCey?0Zq7 ze$V^pGfI?z-a{nwFG=7!GYt~r(M*n@mpdH-UtrJkf0aPLzPJN#Nq0p=kYLu#w%da8 zj{ubL#JRr9zFE7)-J_%m5~*3aBgibL_MW$CidBBJ*>wM8U+zNX+;<_&!6ujuaj7Vf zRDUD(`qd1kiK_s>382Wn&!IQ=^o`O&o!J-k(zjQ*o08*#|FbR6vVj9tC^u*gHtPRj z&H)TYNW&Sz6!yHbU@?yr`L4%1SaD*r=@9CATR?_aOe$~$co!p8o{CE`=%a}2rCY5@TX681U4&6Ktnp;0^=`!=J<4h|8+6tpM`UY zH9L^~QJ`q-6$AQX@<~q4F$ixBEr%!@UFPb@Pn5;PkG{#a%6S~)_2xSgEUCiWklnVF zPy8oJ$QeJL6;b7;25huZ-i}X-d^FJHD`Ey_@XHQb1P(bm#y=1k0?}{)PAk5@FEU|b zm0)N#O$Pa9@}Ln|p8ORMl)uOyfef)>xYw?eM-A2yXXEU_8}sCT?uWIgV)tl#fllRE zj2O>cB4L8>QK0Q!=!S|>`na8eWx5raU}%LcY4Mc;U;V8(Y?+;S=v|~w4Q~|Rt8iQl zE_KmMiLDgg$8%pw`Nu6^W>4e4o9FLD-AyvwD@Hs%(8gBH+h;YtU9(x_MLf~G7BJpM z@Pw>21e_VOa`j;&gku6EzhnXni!4q9PA&2yu|eQ7~jnCaF|20!YUsOntmW0=koaE4=ik7G_aNElNZ+oOf^<$N8_yvzP$LDZrM$1rB~eOlt;x zBr1sWMHZGN3|g#Q>+5a4#1a1wsYP3)Smhb`eCk((kI@;xyOs5VFg~X1mUQqzsc%PX zFwtbx8#eqC)-aA8j{$ig3nvWh&SMnf_a7M_8p9zyh%RPU-F6_Z(yOot%e1vfi;0w9%Idh?eOPtP1r4wvSe%<4#7Z6R&fp>)hFa8IlmLJf*+r*6OE?(c` z7fz+lsGJ1~so5t1{-MGLzTX~R!>UL&Fq|Mj3M=$GZ+?k|3erCkc& zb(?^qUfZWC6qN_z46ZMj_r2FpnQl>bPHsVyeqGvWsZ09CVfv;o^H%dZecbO~f4Y~T zv2}e(GbZoJ{_>y+L$Acv@#D+=#<~8(>Ts?h=GUc|!p(fL@>>TB(UcwSmjiUWh3$DB zl#%4$2UoB6ouR5*noStw~%-NUpEouW_5LPWxc_Ul5R+yw>(=r3b>vD<40X~ zL`E$4%n^^68M|h&*dZu%rohz6hbkW;-14FF21vroDiZ@mePD~F?ltv`jmFp1pL>9zrIiQoC>!@Z|{KU);YphUw?@d<`dJWIK1cum2SRW=+1N(rk zQj3|Z-;19~nEZO^+hENw$X}j`Db@sn4~MO2Zk#K#m2&=3%!Gfw5H%b0pDoMXbkTC)q_%rP&$Fg03piMabsKxAR$& zY6B-UgB?nXvYP8xeJNcnX-bh`Qn%i&k5nK%XN4e$;rM-QP&`L>kO5lLD3Xpv+S zG(FyErHqK_Wg55xf{6}k2l2$>K;I(^uuAQWDWz)!dOnSADI?|jz~Zn8-&~)Yopygn zoLe;ipv4mfEfNx{j z;{E@oK6v`^2;g zwveuMJSBuoP*eD2{I`&K`3^zzs7LuO!nh~B2@$hf2wNpSxm)|C{@-5tQ&$o1W}amk zIMFfA8XES0ry8!ZcseZ6j=6mSOk0n@)};Pnu?k@xy)|oJ9T1Zliwu9*kH5ovO|G(| zbHuGLhlcm>ad^sS%uL4acYk1acsx`wQR$Dd|7-PH`PoMdQ^sG*8N*an6&*goA>fCR zufzd>Fk6M2$;obonDk&+mdjzZfD$yGdO@`E;_6U{mNMvrvk4mqedyl?klcfXNT7T$ z0YpV0jQL+LgWYC8y9fEMbRx2H|N3JF^n`L57=TYYbdyeAU!I*a^V9*`?5XH5UQ?JQ zu-B2MB)#iAi9y&J$^1YQ0ZC`s2&?YFGHfXQd+?~h=&xMOtzHwYHs)ucq(yUV;anuS09jJ)QzX%Tck%t6f7jXwBLjNrdbog@C-hI`g=%MDjMyq-gm9=0r2pk3&rZiw^2Bo(iNd)9M- zVr}1xlEKfeB4}T(a9i#V`36h4cL686HmYTL@puEtcXHXHSV()gy>KqV-ZOv69^2o? zcO7D5aGCtggflvAEm-5~)5KolaXfGMfk)klCd10-RMvS`WXHS4txxeSr#01Y@jrFr z%Yqj$HMT&IJsM5;qL2zKFF*doOdfKl&q>^8*^2`hcJMMm*zbL?si+k-+nbQ7xf13m zl*wEBGUc0YyWT7uJaX?k)3xQ61#6H1BpCQ~T2OHZdXOt$;d`NMDK_kd;eb6aV(a(J z=H7<$k^s!QOj%jxpdfICHV~`}$OR`|zHqmIp?@Ic_a9o;HXC0a(e%%YL44iST1-cI zY6O8XIZ}Xrl34ZV!|(A4^Af577{iqSjeTBiVR z_`H9dq-%#*^eE#q|GU0J9>g{6kB#$B{|w;$xTuc&A6oiF;agV$yJ?#Q>{1^f*fnnR z<+%42R%aK}#&$pIUyYDRzfU1s) z6XHaPSrq5)eZY)LBY=bsR2hU?7JPF4f}0EYiofY=1BsUxvQ78H0q-0AJ5v-E_vPTf ze_^^|L?=^W?guCg=axdAru2zQ5#bdC?n8=+ILCJ#H3LxPi_fkoJ*fFHWqW#7>dL@4 z%lbA0#OCsyCa=APS_T;ZB>l=G{=N{xB`A#qYP+hrU3GcLb+S)L^T2J4h<#b4QL>Ol z;1SHyt6=CB*9LL7MU;5jKo*8>7btes=;A=45aVDE1##O>S*qJ)$ENfinifTwaz(N~Mmhq$nX zAD{NKDAa~wBQ(Q!&ZT*}AYR$e{o$_&`Gj562+krQ*)+Jn|Cfo>x=37*dPVx&L2)|5 zODKVJIz&0cu8?>u@2mh+h8CCttQB9wj|#r?^RcmWuKTioq6#E$Eb9jncwQU7+H(Fe z0iO$0xCpfIesUx^G!d`0>wppx9zjiB&ZG9Yzo= z5JG_o#kBm$IY7<=XGwtY*Vp#8v8}TqO4wQ{$d!waf$~9pA_>W!&yKt5EHY4_H)SJI zYbB_{))YisNU#aLFM%HH2lr}J*pMzgN^YPBnvxFJ5CA^neMsUT2yxloW`d8>3l)tz zS9SvdPTIy|5$B%8dRzO%BVXj!2qZmt>bwmr4bQZeJ#Z|YP>4rVPSonx@ll9drFQa> z8`<=yK=QGjR{``B$U0UHu7sʟhb{Pd(T=(RroqA_Oxp&8~Nm*&cUxD@3p?MdMI zupN(Xso1nMR!x(ChYI|XFI|x+_5uljmCKCzyH(#7j0ABj2h4z)M|^b(b)0033Ly6L z6r%QOM?|fKvRbC0W@xzfsD^?BwSdQf$pX?SR%ZsmnRrLE4e^AAI+$L1k;JO#NR(MX z@I^3TF#-xGYc2F4FK357#dLy0^sahk&cltoVr2fc!|>?C!p-t@|0aOGpKAaC z6@y7(|NY4u4KJV`&z|y>r8}aT$<5m+)LH&MO&_o;KGQ4sBV7SiEtyN{AFXC(liid39S4amL+%aYHXJ98}y7QIRl!? z%jt3zlb{hqA!|N5lth8R4PniH(JZ7FuQ~Dwb-j>$7!WvYQlli{L#albgAY(iZ4sEX z9t6z2mJ{HL7>DCmup!iEXt#hIiAA8-YCLd{0D%xnjnDv5i8UBsiR)5dSA~ zsvH;A_saGzjX^OgVGj5EsHZXA7$WxSG@6j_dPaGVy!LKZ%%YkNQw(pq!)8h1V-|WA zeq;X4r}EUU#gR8^l`v^^V(QBj&PI95b=Sw2++SjR<1ASL*lB?(9)Lb|>Pv1cTqqbv zsv%fn1@Nz!>f)jTLx8I>sHQ0(C3y}=%In)%sslZ6bN_;kIJM!Ib&Kw zC>C%#A<^vOZFr|BCFVIhvpuK7_1020(3?h;XAV2Txx;~7=^tb#Bk2_gU1EIKp#+kbTA81*F1G$--4?pG7$dV zh=6EWqi&}=2C7YgiDztQpHQt{TzA-dpM~xCdKMfnBb5KSc$=B_;AI8>K7Y>WlfLjU zMPovG=K46*kgRg&&Ma}=y1b+2eIwy>ZRH`dxMn^^#ccyA@@%5jUw_r6Ug>X(ufe5j z7!a3MI-)NIn4N0hZW$Npie*oN<6{h&ROvLHgQu4DEqk9}^< zQsQLjGbG4|wEOeV9wI%hBa9N~$3n(%9&|fgGOyAFu}LuZEh5$|z$7+?tTBwY#dNfw zy%03D;^`abUiHjKvFyZunfIoco&@-YZFp5>y?o&=>COfHC-Bv^b~=~%l`hr6 zdak{Q+CUiFxJ5K4xJJU?Tm}^g8?rR5SBL8cv|3L>eNtt$hIe+|adZ{Cj&+tO4NTIa zkONA%sK{;QUdJ4kFS1eR7K?y)4X{0o)Z>?W97EYdXXJ^b4qRiG&;hLOEAy8<*Cz+p z80OWjM);rzMy{VnThLnO4(hwi6D>!DY=D7#;_iOBw2(gZtJ`Lzgld8Np`2cjmbu@c zRSvT1m-!LDtWjM`Sum}SYpWHw!>D7y5^8Lr(CIE*e$tf4Xg^7#N_}xE*PI1Fc{ZRt zMdFwGUxnDVgw}VxC$$-o$zm{pCcbe|pH#k<=y`@c#Pya`GO7a*QZHH`)MnU%*k1_hsaXX*%4SMyQsn$ujkC z4t(A9EST^6&u8$bGCvCvXQyIJ>2Cayf6@T22}TvYJ9y)QXdtVmvGYg%w#%psyZT<+ z8mDO_kF~GWk9Xh6#pmXS1!hP7G|0wRxlS~cx|K33_@a4B4FUc_ z&ka-*>tTNs`fkban+d&ZBb-}f49RQBZMi=Pov^8hCz?Pn=)nuKtS7^$}paX1jHEmJ_ z*&=*4xPzoNYE0rs!_`ebiAyQoY~IId=B&oG&#SRM@323$BLYQ*eCHmPBb-gBH{-|& z!)dB+Yc$73hjV8%5MB)ZsaI;I-Fly zH}YVsABGsdKS;A{>}(JBczf4tda&CC>`tuSiZdivmu(QAf$^`LQJxuI>Ry{c;6Y#DR7ke+3C}XGOIFg{bk2a3_$^t(2#z}o* zHbIm&Fm6l`3NZu_ONij}SD-D#VK-h-A8x<|b!4S|=-&5)#@}PKcj3710j{=NtJvK0 z%Ex>qX`?6$Rbe%+t${|P!LAWHv8%d}@g7{)0%KtGoYL#e!VPo9xQ9sjZ;&AOMC{j- zotFlN0J5{hlRd6q?~Q?#-U+}x0rF?wZ_=h|2r21wI*-o~nb8Dt81jmJSySF8b~Skyfwfy{BpMJ2e$?+(2}kX{zE%@(A-M8ndV|eH_GR@eA&*$3NFQ!X1I9yLd_Eh z?Fd_%Tlt@lf?w1C*FylNio-}XwYkH+^gmpNh0?bZyq%P%2Ij9WxXKjRb(!_rp_^u* zSqyK8*;j(dvO&Fwd~5&@0CY)W)f%FZ{u%0T+09XrOtV5uxjW1-(mq%r6Vk=vD%%u3 z-5P7>!8k@RxI^4=KQAK&^(|r~;G?cd^FILQAiP-8S4BYg%x#}G4GeGQaO-<)Td;dR zx6g(9n{;uW)vOJL*ml(}(}8G=Z5G#hQ0gdqIpeebNSiYLTfz_j!&>x2k1WGFv2)Kt z{sxVz2v1#ji~oPCiKPO=qZa?rU%Heo6RFdO*?$mK<+fZtPklVl#-S)J|2>W*Q!UQwPXz1>O1L+GStyJ z{o7j^o2Vd93r9@1?^stnr$h_R z_Yo=X?4yVtz-}G5Vl5cR-deg1+-7{8A(pY?ecweSo-)*DSuYo1#f&Y6q9aVJTx9Xo zkXJ2Wb4EwVG+@b8mIcj`Prh*NpLlXGu zk>{IPQ2vmpW}ogQc|EzfFlL0c8>j9hPqFT)i(KDAH$A#Xzzwh*FMcWZ%bA>KX#OdD zM=%Q{$*KUzMZc1Iq(khsOpJ+9y*znpc{y@aV&ri)^OTk80&6AiUoI;urztYX{8Hw7 z(q)l@$*ZdqLgzpBi=AHl!q!rO{G3^q7Xg!du*|$4wKK-zjz`M&G({y}R#?p4TJaa#Y@P2(Ur# zR8@7B1NyTki5zqjR`p>+l_ME(Lzh2aRx4iR|E;rJp6OWr?$dqd1EJWadOYz3Yt3aG zcBg2C-mRIhuiS513$<{Ciu0U2v#60%QRN^oj z4a$KI->Ma)rhomgX!D9xIy<)}v!)}BdUEX^D-v(yy&`AOPXeCFR#QwfRCillLeKsw z`LQf5888nx9w_rJiuipDizhOS=Y89PZZ3S3S7);a6HTJ`wZ^~qjMuZ;mvNFc12-9? zx$b566TjTrV(69VDNIQ)DmoF{VQ2iBi6Seqxr*f&MN>R@!fPI*H5K) z_sCNdu(+QHs#SDo<-+@9+cI96g8Qqpk@z7j{ObdFy6M=h&5o0d~W>t1dl0S2QHv01~A=Ua$n*!r5VwO7E;Eq}N+Ksbg zA^l_`MDo|Zf^j<+aB2;>ImaQvzV&+$qBiUuJHY>&!pxJIm-knmCVU=Yrt{7dy92-Ta@O zg`GEvufU<~R;4eNu$6-yRA0fIqQj&^8s_=%8JAbqHJGT^LST3`LZicUV!@Q?h;)iljB6j3RJa6AM>m9aHBy*7`o$k9O z#O_9O9yh)xy^atvjnV;^!(TOXy3oW~0PrBJOs4gz4dkPpbOMXrM#hwX03$5ke7Nv&&!k88PmxSM9N}Y1_AD zOpgWO=OdQxzjoQuqCP^&T(*u@_CkrDp)g}ep8;#NUO+zN)g`i?f*zzjBKlDolZa#r z{)h@7G5``63Mk^F2YDx*cQi<_Tc1vn5z&Bpw1SUt{#A-*Kc;$a(A5@Tqj?d#w6w{X zRNpQ9TCG5@<-n=FPuQd|wY+&z9Th8}A8*A>=8xbcw?(ESd$Fv-xLJhtqUjE@C}NQi z1Yqb7vmPV!n7wDNlHU+wu613aaJt)gjAyA%sC@>-4l5c>QFLd&Y0k_Z>9xCVvBHV!s9UO7B>l~ zP9*Y95djK+W%G#2EKo~w@z!T3O0{vqJT;IakG~9QInANX{+KC~-M@4rfv3J{qQ1%& zWZ5d`&ZG7^qeW7rC4^TDSgSL(C1JEnfVe6DJ&O&T3ld$x)*SVBs|o=wj*#W2p-7=a z5Xx;(sp4=T|2fzL&_HR!=>M!A1`wKmbk9!)v`G8~ClIvOgVk@p+y*X=-%d|2iC1G$ zVp?@Eb>K-N*X<&!SaQeHJ;rjP}oDb!>Jr}#rSBh3C_`{GRn4^27B<6_q zd=W608zIot_=KCO9kBWvm-#M^-EPL6Bw6CHqZ`IaiPzcK=OLHh(-$so`Ol(LD^aUV zDF-g{6m%V95jmP~6q&4`YgjA-3TJC?8Tqs`^$8Hn5MaVn4iKpl|IKOMIt&%mjvq>*5tz-1}OLHVBPq@#xBkRn>i)%Gjsn@#f#n71Uk zi`hCbP(nupG#qe?BEnddAK?Y5k`tfKwrXu!#A%__=Lpm!nqC{Ezfsw0L65>q*aacjn?hqic%eJU>tjMf z$1HfB=tAvpVt0xt>Gdf^b6{ip)s65{$PuoPfezGkB~m>jBdrD)Sa52HjryY6zOK*V z3Q12zf<3ZQskT5Wb7{B8t2}p=40PMG@adl>@xcKfnh5m z-!8H7`*3e16IrhcMHO>QmaMvp*q7qn?9q{&%P$O@B8nYR@`zt%*SwG2@GHM7?@xTO z`g7vrsCudSr&+?#XcC zxB0?_9n!AN3Fa<`XU1*RJ%F6^J`EMvS=qK5J;*I^`-7%*c> zn)VTtT{4My+kOu3WB32yV^8uPl)WRl`nGq{fp6iPLgHP;i=11uBNwdfEg39|E=5p#uiYYnTgRzTf1$4&=pZ-c4DMG{ zur*DRC@cS=EFg=jHAny|D>g8y#7P6I*&Oc~Ci2xGQ)vv$w5PH0>plG#+c7#pbY`FQ zM1Ey?RJ3swEug^&WJzx-nxD9y#Mn4aRSc+ddrp7+p!h=uOwB!0Ek|o9v*|H)z!b` z*rA z=1jxaOWwQGhj|#(u#c#htRB%R#dZXVpo$T5NIwLmH;D62_h;TzTS z;l+UD9s;(Zv=UW`Nw!=_1&@mvhy7=gkt0U;;bQ z$Ga8hdEJG3#Q3)_sbhWWU%9v@c=k*RFwlNZ~m2FS>(Jh?5)U;RIxeuh2hN@$8Kbhj;w3#p=+cEZI@6Z*${Qe=68XCe_Jc|Xjb0@UJS01CIo35 zKa5U?Nr%63G}o*^->^C>=Ip#u1_Ew8zt1%hfR<8R^d zHMw}PPsg?9j0cYe@F#56J7~FJ#8IcgCeI?gL$ zHi@6S^(y+JGsPl*|)^t(-ua$OfiZY{sPkzSM%?}eK|{MtJHJgXk|V+TBrsy-754Qd8bzxSh@DF@|j^b?-q> zD8TQpvU)XMymXl5$eYc9u65Q6CDWMz3MW)eKSL*Mwjo72s6&hu1b$%OMVC znLwRrb)z{rQ9z3G*k4Ag+2N@1G)5*T16??gvJJOzQvgl{1 zQya404{_}`y=Z-At@qXLN3`O`^>E~~N8Dq^_>N5fSH3=C4(#njHo~Q4FqIJ_<=X5 zzF2b_=Esyg%WOo@y$q`g+yI|8h&y(7zg~W{jy7^@9(-$`N;T-X;j>yngLH;MguRLs z1`P?U-K!|5=?rBnuH>ZqhsB>#1A)=+wc|b`%VgMp(wz5n_GSg#bV6nrTjPI{nqRb- zt<(5iQCYgKQb>MUcG^|44+J?wvm z+{rI{s5%qLS_tx0^)k3zEK7<2Yy?b40xM8tcY*}-HHvH~>O($`US!M0?udxE4KSC# z$A{TEVu|Ca7~}ie7NAebfUoEe?RkKIA1zk6ycp8nbIYtz_Gd;6;D5%#ajhAq`&|~* z8W!8RB_%CJ%k=jhKd#Tn$}Y75g-%ePD5L$-DmU`DJWez66nZ1h+lzfY%;%io669|*}9bicW^P)Xp1r2 z2fueq5Z_3<3j0q~sJ#h_ZCfR@Um!ZdsKtmJ(JRNz`F8xw1nlBp`l$X!n$d40`u`RW% zgzj$H^E56OuX{%;8%6+LY7dT?kd|Q&qpW#!(8UTs<&AhYe(8zZRXy7R+c$i~V0pEx zEwbw;-)lJ7OfzGEX^X*y*M=b|Od`)yH_WY4n~mYvplMy5f&TTUT5^xD{;xF$^Mg0> zqYuhgz5wCl05ad-1lyx5X<+X-m{mq`<}WqLbW{G#ucyaA!kMZmX`{wTVQK?uvf8BTAfPXfTdPIq-92x;EobC=g{&|Gu{UdyOA6LN&2tQDof7=lD8bcuTn+u{lGCBAR6VN=+|wvp1%0F@6F(|h+1hY?`*M%L2TtN3ojV{23jC4-d!ty$F zNVGVxo%l2h!0eJF6UiQC&jb;pVNb&05G58ZE~f*2imu&!x-gziwj+_u#VM_q3sVm3 zCv#i1b?d_3bg|fobe$8(S;kSTJNwug4$OZOkQY7J{mUxed=xv!ET|)SrXa#gX~@_* z>3_4yO7;~5e6pGE4kKovZdZO1&5AZ{33eC4N*md9{0|m{_}Taa8#ubAFA9Bk48Gr; z<+Om1U>gmLe`k&?gE_z3WxyyrV^(ezQmi1nhR2|&+9A1tFCJ>jp+wTl-;Kp4)t-r| zKwt4eJt3g{RL)w_}@Hcr_xK+D=*f7dD z0Lxw|Y3VP)z^pmxB9H3xoUsAn6vO@|Lb4fpkA1c{ibrPH6ks;dNu?4i!=thD@3~JC z;MYV{pca$JP)I;I&(OjQi^h1)hIyv^6hF@fp4D3KNS6l6OvhJb!*@Ej51tF zP5Nr{a~?2A%`&loFFSzQfhSm-Y0n_2KOvHCAetF4^)eGim%lZ@^xVqjGXONLbi@<0 zU&M1|Ot^Zvz|Z{jZS;pX#)sF5=>*UqHO8;2Qh&0}^!IM`3+kcZg2Kz4R%u>OD9|8@ z?=c%R+_xB|1uQ$djXNkB@}NDx=aOH0)~NAuwoBUEz;%PaHVyd}2PqD97n;uqwx5ZN z8|Vl?Jc*qyB99M>OGqmXT1+UUq_wzY&HuRg#5+b6&>TJa(A_M-s6uv6b%$}uke%uU zcPC^Skhtr!>FT(GmT`yt9vUsx$*1}2=Q%Q3``^Jkp>5L&ApXJyE@pKay)>Ynmz#l+#gQzq!85i6t=Z4n!J zY%(|6ab>7)lm(yR`doWy-%4yqx5~Uk5T&smE_HwZ54uk~QY=~WY-2)cm1He@!q%rL zUDlzX%&d7w6n2s|6Y!3IWJ4pczM`Md3e%Cj?Z6U)=!=%%{*B538S#K}7FTy8CY&Nc zh3;B`2MRVcV>8?!AOOY`>G$2WVB`&FE$c;JdmV#$F{kOMWg|FC!tW&*=Fd(J72ue? z-^YV`woz)<4m9}wU2b@0dg39zBMH76@0VUUzDR(=A}6^Jc$1sPQh;_IkpMrx?P(bO5jhV}Ufzx6yK<(iYuE2aw` z<>J8v__mXPsXyL6Q}4g;Qz6ghfiHYG6toY(Qa&8f*s3gz#<9f;0bCSHn3E*ci(Aug z=Kf{zt;QQVi^2Lc%FvW4Hi!P^8A2p{-;chP;w8hu9>FsB}?e+F_v{?o(WWwQ|Na zHF8OF^Fr$6XP7Z`^I0?PJXY;vd>^r14++6Rm!dru3SF0-y-$@CZ4cr$JLk^bT&3i0 zD@D19kTEeydPV~)U<2nWEO-cZBhl=#(nafsxTuX_*Heb1=`TXFZ4BPQ;v-2X1{WJ{ zQtB);u@F`%AS&}H2!*s*Tty4ok~$Eaf)RDb7|!PzDg*C70!JkteEfEXT4Lwf)r6_c zlMlE!l`z4AF2uUK=k3$xyKl+5E*fFRklD>O0?EW`<8bJ7OWCJdG-0ZE#BNuN6=5~# z!r5F&pV-#b!u0-j3?LF`naN+Bub~xwD7wGv{$xX$||xh*hEZ>22GXi1lMrp zk7>D|nA+7j?P9hIyT`zd%PY$2@VF6&f;!?j)y5XoQ=RPKS&d?CHXV@mO#6xWsLTz= zk0ii9k!hB4pI#%F+z`dtU%H3&*bQd!9_(iVILF|mf$S5C2s`-q^RlY#fCL5C4?d%R zQgkFh{}3yB*Z2}p2DU>sAK`(>igH)PT))(I+zV4W;sqAMpq8QSdU$j!u?m+m)kApecylUnWypb zaHi4kSvxrDPaKoqt6IygLA$7D9g`zYK96A>c$;;bzdr`J{?n&z3cN!;2smmSD3 zG@lI)`}6qmy$rX@yM{@o9xiB3Z5tIJCbt&v#bM}q4dt?VOq_$M$v;Nx)$5U1TvlH;6lXj8V2B{ZJZvsuTO5yNqJ9 zuZrSY&kSD48h5JOM9g9w$axuUHWod~F?YZ$VfwV?7XcJ9z5s8~yj*u&PbrLciW2Sy zcg?^C7=icEe>mnSr8UyHDS)52tBp`u3R~vIPuK^QOfP`sHsJ^W1GeUeg&L}p+sQ13 zn-n6K^1f)s#x4d5Rj6r%(HL)CD9r(ntwE8j8601YaXy)F;fRCY%0i*(tds3sXtt}KVS z)Yqxr`H3i1FW$Sr&MMc5FLv@NTfLe>B;|@(aQ~Yn1F9~(`<+Gn91S zxL78h*FO5I_ujC?Gg0?ZhSj!q{(RQ&OtWr6Rxf)*FZ8|M?^C? zhX~Svp}3*GMalesoK|1a@&k#(W2JCnC|R%toG&n9(MfXv(h6SbKT~iMMD*tqxEHp8 zIv_YjKqKzvmhHF+2+1*)8TJe- zLvnoBaAsO^yAciH-bi`TcW)u8*7|g+DOE)aDsnQ~6FL`##tWSN44PK9wNOY{l_B1j-D(N;AF*a=@Z8K2 zM@h?nwtjZa3^WAS(KKSWu`n;7Ws3!)DW4%0(s5z)MbJ@=PhPM5f-JpBGK-r~9syB^ z5vdLWIk6dE+L`BSZg{%VJTM5H5(IDEWwGvk=pXyi-G92Y7}}-I{kNZdA^tG{9`!OHknEc(+!3wCDI zKDoZGQtIE4KN0!(eO+wEHnUE~-keVy7wd$3|HBz9*3p?Y;7X))7uUh-GNDZT zHHLQ?&~#vss<#5zmy}u~H7QU6uiO<{ABMA2EVBukQvQa^`~&$rBAc2TXvvI?BGfVa zlX^iXa3v`epNtw!zUnqyK-rfrTlbu(4?GAWXz95?W|lYO zT9)_C21gkycnJEjg>$*6O{f=pVGzzkreW4)fDBR+*IDwuPiByrOlUKAn*Q~iQEfIs zldJ16`DosVgYPxEj%H-jT{Ui+U0`p>`5W818R++9ko zX<;XPQkxE_A}zH6qsR#XHHws4Q)0Hr26hUIdX%!9{zVZl=m~v{wX0E)Aw^*?;644p zG8?to1NPO_9fu6c(qNn~tDAp9Dd+GhhLZjSq z?{A0Ec!q%J&|ON~0KKRe+LiT!Ags1jGALSV1y11Ym)~E|zFr_n@MWYa!KnewrmK^_ zWbb3(bz%A8r6w13AfDF&Zul<1=Oq`P%qV&24#KyQyjjiN-Y95F0o>(I;^c~h$juX7 z@FX_(=me8CKt0i#ls4^!0DQ>=@qubUWA34m>WD(|QX830pl0Lqhtr^sGnht^(l$Vg z)&je7)sd*TT5818)1# z)XDzrzeo5B+*jU8p4njPP8!|sJFTGnoq(RVP$U1A_vOhE-49<5mh`nr;r3kWcj41K z1Z8c2*J_|Z6i7NW00M0Tl(a4cLm^1*;{L(2;wi<$yV=SgUg^8sL4i(c`?lgDGrrQl z|NhBh>Z{m^UpwN*aUak@Ur6n{I&?jUP-{B0pU^}7wQeUyD8)Ay`{yvYNimt8?w@xt zyXZ`Q;kFMnj@IOy`l=ZWF(0AmaQm0;_k{gpmj=q(22bcop?<=%KJe3c&GVOkHzFVE z=gI#+e*e_}p(n2Ae+IGx1t8Ag27|{7+aBDX)xKn)q4~DbRmp05X#$ zKfiynX`Eu4YCpjuS=;EWOdU%^h0w`{PTDSVx;h{c~K>MpcczmP;C(Z z`1vmxnx-JrQHtEgXpnJciNoehLb~phtcuq?2|+OVg>(MTL`ViZW6pkxP_ss;Q`kEc z9qSeP=WLV)b4b%KkR&f@I-rvbIgni#M5lHt^9tds@juTOm*lUWaa|Avat`#5lmGKC zOz*sr^UvQuaXD`>hRd%x_Tx7`C65lz8!5O8LNzEB$GL!Z%E#eq>j&%`4YwGAh7~Zwi26Pbj|>m zu+PbYW((awH`a=H0HL%$2Jc?P9!vg|Y>A|gog5l_>WmLIwgD{g!TMODXJZ}db9;(a zC_4wqPx~Mti55<3E+V}AU2kko2fL9pTtKKrGC+~$$p}GuTO-ksSsEes>j($%4`jQ^ zC^k3a;ev!SLXa9Mpl1O)FZ@gLZJZwa#W*j7o#zdu!0=hY!8&V^M zE}HGHS#Y31vKH(jbT?TlRCz4He1`DGL3Y9KS!mYtst=mAof645iFJmrAyANL?6hHd zF_17oCMjv8(4sNXyz&+MEY#Rj0F5=Woku~IA|p7PBfEjw7RFW}#d-44>Z1z~ayAt0rEwK7SE&xKPvxU?HeWuE)D)u)xqJ3g8jJI5aL6E?!Cu9~Y-ZmwS)Cph$pVVM zJqRJ5C)z$-BD-8~U4oT{Dp$skN3}JI2;F3);r zY!=!G$qMM^;C`LK-xlFgzdU^A$%(9p4>rP-YUt#bxX?KqQpl@;FzYZ_B(VQ_B+7O! z7AnjN@#zI2{_2&qKZ|ss85ooL1@HS}rNTa*BpMriCcPI8ppQun_ERXQ`RE6YZqgWv ziS!l^2+n;i!cuL}0qyGnz+`ZX8&{LY2KU|TwDVYWP-SUcl%vqkMyc-7Vdi))4=hda7>%h~u10N;*4CH@ z=a)`$%+wHmkR+ZBh(i<7=DSR)(sAw=T|r&mD`@?-ap^kkNs+1*A}Jo~G&{AgJ95u)Ex zknb{<=??xS06qdFVSqlBWRSve4iD@r``1nYcB!FSkOhK|u0RgCPR=Trmp^*;kMCiu zkhvS3{8;>83>pi!h3`444-5kjLAsrK@o$=~$1LQvAvkh4=nNKwovJojywU;S%;A6s zc%OxB#yK)^NZ-`)deQ`YiTE-evwX36Vyq&b_E;c6eeau71xm6>2O$~*BuN8?fjmaU z=&f&+sfxLDF|^NPrg@#;ttH~RGRyG#pvcBS5}*MFh*gq2!M%#mO$Q9WeJ-{llb=to zERkPqiN9H`Z=wF6{MQW)q)=o_;6)=)1F~ZY(P9B$m4m&nvyfMt!CvR7a*iYDv+tyn zzPiZi_}EF~uGM+Y)gd7)3UU}1}S3#gVr2FWG(~RctRL-oCSYv&6!*gWNtje1t zc*{s4-(4ER7@^2K1UvjFm5)z zZ+D}+TIi`kuYE6Qlkr91fNb;*;sgcx_Xof?Eo3Qdi+f?AU`#ok(k<<^Q{dl!7U8W1 zR?rOmbv~(8=21++x%&~0Z%v9BwU9IEI{v6{bXQCLvr`c> z64=PZRs@epRni{~mLH9AolJM;#m;=G9Y=j#(In%PS&{)91Ty<53&s!NRFM=|&qR?iCvsk!9DY&!42BZ|rtLcpqus+afC1 zDsvG_#{W}IpldG_d!30I)E|~8LWOfh@U3-WmLhlxU>~)zG%k7*TfDc9^{o4~|Lw&3 z=Oa>HH_9G;qX4_$y7E5xA5cpJ1PTBE0000&b8h`e?my{IlnV@ z(lkkvY_{Ki@CB%K@}=cc!3jf4d$2beATO8SzCoIb#HiC3uq%_owl}QKScE}0b=2iG z=_*;18d8S=cEfT(pWjijIWG9bs-QYrNF!K*D3B}Qs%|hXmkMMgrRK`(+BFD7ga}28 zu_~zU1g?!1-}3AH%lz)lq-nfVP4a3l-?4kJ|5=QCL17_~#-?K1!3 zs_h^M>0Idm(#xyLfmcvi3(@*8(+Uly3#n&S1Fw~&s2!}B5(McuYX*Eng>-mTWNAW+ ztK`w3AFxkc5u8~w6gSugaMjdW(!IvDY=oS#)f9Uwo9W0C79z@Rn}6V52R9N|JXtg^ z&3KD*PF_D(XY4I3mrAIoR5ZXiy_xwPamqzwX({1uI$^UYXC2Uf`(|3caahh8rL4ui zOmIXQ^qA2tN+40J%cV;@DCZ;@kqyqe*G>mWdN34XG?Pb~!eIQXY3MR?C<7BD93+Wn z)khRZqUU#ZIx#ag9i=!r9Tb93z^1F!0f9u(Y%ir9jD9O-EQy1R?no3Vy%chcjCQ(e#WQDT^$iiCb$U*y>Syxtu%11Nd%SF8JnT zIs68hB70fi00AtGk#XF&73oR5T;_&V$~CD7D3l`#zGw8l4Yfwwt}ncr3C+y!XqH6# zv<7Srf?5InUUT}nrfN!6*ntI)n{G2|W6o5F=G@2`+lS>FqwaOi?}mw#nPj=>P+=`% z8&y*xuw;8!zM!XqJgE)EhoZcu@hBkBB6ZT@v# z=yKVt z9vmm`S}rv32xn+e*2_N(xh#!xf|w^J&1PQE14=ZcvPzKz7X>Tb2Whbnc?D4_vb|`p z!wwGfyH->%T`%E7p#zZUxw!em3d}$9EW#cr;m#DW|1yknBFpo~)@oNdBP)VW%KQ#& zrkctc2@m>V(1RgMqqa#S8om@_&wX_$*hXxxhO)GnjMpkV3JFDEBTff%ug+&VJmd^E zNT>tEY6{&o(O@mU8DyT7Co?w8Fao(Iox+K>;g_eFiaGGZ{1FD;@2xO@IH1H=xSer& zuWhT8)};{|FBd1nH$@Y!OCy}G3s-4`d|fEoGKYS0rb*UHJWJ);qVhuK3T437Xan)d za5Ub;6zG1DV$_j574<;kRkh_J#c4RAx|gX~(6Lvest=P*Q=riGKa|*^tNz#2>8x?r ztx3pSd#5M{SbeogT&)$pV8rDDe5QQ^5})8zBWa&b0l`E)7=|h20(3f_KS)N_(gG1* zY&Y246VR6DX}P>=w)vN{c3kXw#~Xbbo6bME`CW&rpww+2PLCH%Osl$?s4I}Z!Rm^D zKHdUe^?VokGTJ8vH`(15WbNjkJbkKlnc!IDRf8|)HNqM}ODHAwHcgBeLQ7gUNp~EVPWLLKEtB%Asa@K<`@B$E3?(=82YREN${}LJQNm*b$q`x>zvtJJ}w{EGwu-UUs#h7szYv+FbQfG4O2`@-&zv zuFOgZbhUa(IW3|tQoPABz@6B6F|TD( zz6c!ji$*t|H70atSe37yxquR*siwRDb?*mVRQr7{hG+uGPSZlm?%zS0uoExd=-%jf zwoqsa@G|WTQY;d*9t?RjFX9SeLRl_FPcTf?lo!Y+q+nPTS|myEm5zxo|6E|Dmphln zmluLSS_T}-1j%9fu!G~O+S{TAn=^<=UTHSeK%!GI3nU}z{4JUT+pA&2mm!GY82CZM zmdZ%`XVd%x`$qk8IT9q)`P+WJ5jP3C9!xc_zm%dR<)DkHXVuRf_UwsOnd)qV_U3$m zb;MNm_34OES^$z!kxza~hZV4fDZz2V8Bf?^ku&Y9`MV-K(VlH;;mEL6-WS`h-@bw4 zYKEr)6l(_Z)HD`(#WB`+2onNInfPHK-|3S7DRJ~W3BvzgqIT@0d=o5WR_ew-U))>6 ztd)c^jSz~4-4whgIK^rT1jOf$n~H-#sJY@ujMpj_N;mBcelo@Jdi73antP?2O~yycC+U`D{BjXj9vUJ&Sd`2%e^ir|ER&%J7B`UQp8`^8__4M; z!A_$dQTALJH0x-@t-!6v6^!zaSogv7;o)Ml?$AHrCuIu(%{5srULjx$Bw*P%?ZJuj zhL>US)LRBCZqiDvw59n&h%P*WUGXu-DU)TW=Fq7NJ9cm+-N9XRee|}P0s->O$^kzX zWNNtxRd-ksqM~-J8qK(-CkKiBw7NoAE}5=ALRj3J`9~cHmTw-w03)of2uS81t0{4~ zDp=Cx8&!SeL%WJMXZ1(GX}Q!GP|L{!ZHmK*eE9~%y&^n~XnNr7sU3>f;Y&mCD&|!q zgd<8Q@}i5p&ObReul@W^_=~HiZro~w<-*Y`jP+jC8f=3`eIZeff}M&Y_`T`u7<7yX zBuT^qNoG}D1ypu~{C4d`D{D`f$Y}8VQ${Pzm4*f+BdF?DTncRvJ=SHSvbZcMLp6_H z)+5#N28Dj+KO-#{)F*8_g4b)LE&?u+cy(p0amoadbQK+}J|p0>HuUAf%CSsdlSIKO zfJ1vLa>S-c23^fwMH9%KxnrI*Yc|8?YFsYpU{QHt#zR1NrYV1?0cj+W*Y_xI8a0zH z7oIx+$&qvid}(Cd7n@1Z z23fuC$$Ts9;ZbN5y7CIL`r9x<&m+Vx^}OO1Xvaz#30iy%M}Z(9i@~izrT{@7N!tKJ zG5`ndUv<>Z#r*+Z5|v(9oi5iL!=v8lCY0&glKz_zZ;>~uVN@>C?#p^Bg#tJ2lcCdcYd=%+Ub=w*Ed9Ted& zL0g7%HRUuCAFNd5wa9#EVP$>?R@gyevf#AP8`z4&9uyh8CE5&D9hLRL6q} zX|hlkSGLIrXT)DfoYmxGL8x0E3m=Yj{*}HE(6h(zE3l5#SEl8%)78>lcdWp+UoH%P zM{!RI%XEQ3d`#C=6_GZD~t>flkdSvCX6ziziw>nx=;o9b3B2!=12NPCM_eekOUcs4) zeDQH*ss=EW&nSU-N@zRdstv|IA-&iC9GdV1%vpV6Se`zOqh7(Tw1xP%4}ZvHB%>wM ziH5JnY>?$!F`Tc>K`<3RVQ#rRp+9SmEiT{4BJg&IY5B&S@6Cf_NA(w9aJwkprvq5B zQlhK}gJz+AU4TO^U0F2M@zTS@whgC{$mgGqVg3b?ZjK06!8XERs@HGS@J8XM@dEZK z{i*T2j$pTt=8qsDGSJQ9Gt9D~x0nLh49|yEuSTa?**fPtrqdn6&ze%Za@S?}_Dz-{ zKTv<3uz5u!X@K4QOP+tRS5-sG7}=7xYxhHu&!L3*qmjQCu7%(ek|25xaCwKW9uPi!C6RCNy(u5Ck<@B-dQ%75}*$^!W7dt5{dV9D%6HnIYnVdKwA zw4i!V2{oe->~yAk2MYMSis0mVn4Ft3pNJue%X=!FYW`@v zTpAmaiWldJ#)<}0LKxH zuM$Gii+Q==<6dE_#0CDeP4jyzFgXZn4WklASj$0feICR;Si$PoHo^);@3LJfu9Tr7 zZ)0Y>L^0COv4)v-`Nj*{f70+)qb&JNKN_Q<0Q&rnYEZreKZFU%Mnt1y4Qx8I8!BTP z2MFS7h2HdRz-d32&|wRj;Hi8~q8fr9bPx)fNM|wwX!-C&UtmW&n!X~%ekRA~ z*VVEA)sPIJ(B}{Ob%#a9&m!l7H7FTt+MG}si0C(Tp=OS*gm zYK1c2T`pVmyaq2M-i?%-GqZ#G591EFU8thvc0~{e*XT?InulLv52S`{FuMu;MF+Ik z(vD?#eS7O<_`D(EdR&u^LDMYjm)JSA@Acm5-_V{R;u?3L1u7 zJeG!rpJ9t|0Mv=g^_WeZkRY=vsD5S6R9`MDDBm!1eP;ri9#8DSLozQN?!enF{(W?& z3(=gflQZ^lVY$$PUiJKL27}1rP^B3UnSF0sZ2 z$0^k@(k6u(C&|)IUa>(i3_G0(Xc0{O3noi}l^=zt3`bLa{-{u`?7x-%1Z<3ZII~uAmy7wncZcf?r1JWP0zFNagh8;cXRtz(Q-UXd ziYtdCD8H=dIR8Y%sn*ygE3O!h^i>z(xXyAKjnBp3z#B5UZOh;z+5sg-KwB>JH?W8K z=Mv5bZAKj$scW3SwNNdhzk?;?uVBu<;JyE*P$n65ZKV;-A7sm=vtMZa1x}-aKHM8| zQ(G==whue`6W^Fn#Ib^MuotiQ81s)c?!hw2ujV+6kh`vGK?;M6ljoA#FoO8dN>;$N zTD(Gazw95SOsn1UnSt&s7;*d#$?8bgAevu1SS^?*?mdzsOSkli4?*|i<>T9uvJ=lMMXruPrI!1_%>Aq8vd_E*KT|<*AlOzx6Zo6Lly>Hv57(u*@?a=-a3-CW<+g1}_ zKsOz??ly3RvEfsacl12O6>xWKs(;b>VEWTxC4ut|w4bFU$~zJ4Qo^mR)>7*#R%;pH#Z_l`!a2M0bjm1Tv7n!q|%RE|IYLA+S%84DTioVuot!k$YK2(xm0Y zDy}va@$DONxPLpee}+8>trh9sh7nf2_5LEh)=KI)Pc?mB9fSpMSD%f@P-*_CAX}sD zsGjSwJMK!A%)yu94jTD!4dT4yRtmkoPPZQKcR1*0lVt|}(pT$=5r!#fWOt=wHD?ee zXCnH^ffrbFhg~hqAKUVBsd!VFe_0n)rajz~c$Eii%9CbYOb>b@o4-eMMzdu|0&C#_ zzV$u<`j|=h$Dy9#JXlq0Iub0G(hJKs<*;lS$$KD6^Dn&z60-+(TMg7_z^{}+@R7R} zmdmClj?W1nF<-s63vYkJrZ4i~7i>BKnjtxoCftUBj(>ygmC>R<2Q^K>A#qvDNv9 z{KmfTk0^OcVS1rLeN*&F_LKQ)@~@|Ylh3F)`Z$m%k9KmsM*XI-9Ht^M=`g?wqoS>M z3L?0`GL?hIY0P}(^gQ7XMBBlRT{|*Ewg-zg042i7UE4`*VLYAhvR^4f!;|0+ycOQQ z)(eCL2nPscsksAs{MBM;;nsP>Z~JUD3r??~hRePhz3>?kQxdB z{e1g!gV@sK4ERc!eKfZo1?2AmVtxbG1YX^tCqQq9`KmKRtOjZeex(czo$$t;z#n-O zpc5ZlrTanPQ_hFY{9beiVK0Ar_A1e`_h4CfC-%Tbzl3r?LkulvC=Cq`ItaSc-hhNa znn_V~aC(189V*=i=2&eK_v)I;t84L~E#edcpa;zg)gpVX8n&<4GMQnUP!ahredbBt z(Q>hDVT;wYO%s|UvB1XP$7q!iBAKbyDa{>|J{Nz%hUHiIQnQU9?g>Jsf_AJrimOM! zIZSAH;be+Zo8N^T$_UkBo>uVJBtJ1wNGQB9=?wR!nO+0nd!&uR z8;L;vuK?r`oLfP)!GRUjAGzN^1}1(%M)?yG6t0c_TaCv1`4=_Lznrft{(02*yPf#D z9&Ge2#}1W)K2=WIUC))Z%!H50bQp}qtYZqAAh9Y=9R7+LlxVURPdZkdoJq#=E_d?J zyL$E#my5XlQ!u}Su=t-|V3V;LuAUH$dX9}o_1W2O{h75DY*ulBwCnW#)Q`PL)WuM#)D`Y~+K^Dqtj_fj?7b5%#pkM#u zqcVw);gLrH`sLC6QM4O3*lPs#WU61ER#L4lm;MRnS{(G7)9GfUeN1Z})#E`K*yj(2 zJF|G8LK#7Y7DmY1LQ9SOT@+d?E6CoIfER%EeamCnF1ZIR8(ngI#LI;q>UO1jxI!6@ zhjy1k$Lr^dReHu7ka#R090)kcf&_Q8ty})nnB~g>9QY*hm(r-2d5wf(!@o?f`UnE_ z(N=xx+1?MbNJ%T6g=DjALN%`{1X&ROL64q2TqWsbk=Hy?aa=bksAPHLLsf43x*p(~DpEQyngZkK(*7&z?!xDDle`D} zFxfuJUu$Stu3vp6-z=g--?$Nf(WsC1Q5xZK=-Krl_TlgFxrIhI?|(yb>1`oT594vA zR_psS61L^SYSC!Sa~Ofd3i?i5Z0wbIHD7)H=<1q;vC-aG@`vJNz@HZ1Fg_W%?dDgU z;(_es_j)jbJoW^v&gBA=CyA^lv@n80PyC=QVp}e(=VGZeG_V=O)fW6pGORg1V<2`J z#MKj^D~Rw)88+B_5ZbuBxUhn&^ammAlbPQcZ8EkIDBp(+SBbV@(j-S##paAW9Bo1Q z+l=urx#=}Cd2&OtGkL13Vg@}sBPoL^7S2&190Qu4Ir( zPcjP0z+_+X{qq$VX!4(`yob;E&XsJ8F}86Vhy~U$EfxCS*%>K5?}7X!;74U3*YJt* z=RWfYs=(H#km*zD63auLKt||e4GU}`6YpS94-7TLz_ zP^Ofy7 zI_*Eb0qXZC$F2f7b>RzxvmBQ=WwQH{NcH$Z_T}cfS2nPHF{Q3T2SR+xNP`uN73pk? z@&Y`s7I+NH4VR7eq#0QyyK&D-%81v@MA$X=NHR1S;VF~`UCX`=p$XS<`tjfsXV%Ui zAiE5lc2FWyg|lvSFmHHCD@CD4Z%%l)rhVd{Aa+|H(K5>DXN5un!-qC>aLY4anl#@I zUTSiju3lWA-r89r6*}E_-b2aY!EPd`_Q$z95UK7t0P|_Y$f)73x4s zVCRQ`mb@bi8~IT<$2#lH`7gUj(j?b;Rl!u#{?FpAGBbXbGD;qP@t0D1-{J_z;)_6a{oWB*M{wM zBs;x}#Tzbm`Z`EU{4JfRFA5_c=#0{l&el`ZlGgQ^tZnDE z=RiWcEuj$@Xn_z)U;BclVvE#3zD@R`n8@^`7zfs@!L-O&0eh~USiZi(wP8A*rwr$L zOjgiMFjsINjgB+-2qY+5--Y7SQu?m}J?kHIJcPeW>jRzULu2+M*{yvQKC4Xkm7j1! z{^p$PZCTUbtUu%5TRV7!Z5EqG{)1181)?P*+_v6I9klGuLT=Oa)+9X4kc*uzs*lI% z?e663<5RlDu?_zgr?c?bjMu;B&aV-@v2D}&N+WOe?-yvpOey+2RG%(d>qY(@k+-dF z9{a10<6ap1hogOTvpji{E!qYms!u_@FX%5%ecJAc!YduC+Tr$g9?;-9B=Q#!%R@ix zBZYGbpObO_(>pQA=o{NlZ(RVhpEPA~Y^|nM>B*PpfP_B)jXt~p z*(}dJN%j?e`l$o;j6ib`d}4KIpG-VzM9DOZq0gv0lseFvX2hZM19#)+FdRtw&-k0d z#6ou0$QuSjqbzuC)-@?kM*>MF{^bh`hKcGHo_w0#X#VLa79qkl*+RYH)6WYmyRq}i zdCG8}$7F?e?D^I3e})vI@#*~^3;&Ua|NG$q>B6;Y9*pZ+>8rLFrz5-dw`^}yZrr=? z>9Z$F>(b{7glMP~TcCkA!X1!6Cd=ENJ&;xHpcjv~aQYh5vol2KbBO45D1Cl*i2Lon zwSg59ERY@J^tN9h8d2-?Z4N$XKXV2WoFMw^e&8>hHFg>j6ytroK#x*o@6ab0&~WIu zLWejEys6#+$@GSX2X0LWe+?UP}KZtGtP=VA57_y$8Hc4*sy$U_8qU6f2_Jd*L;A zU=*)nGQ39hUNfI2)1;0YJY)MsDl75Bvemv9~d*t8Y#gz!h$kx2TWc4#blO$KPTcYun*fH5!s$gqtmh`haC?p{};$wFVm0sWw3TTQ@6+0-y z!nihS%T)_GR8a0W5S8bj(0GF3$~dQYu_PzCDVj)Y6+gFE^E%()DU5z#K;5BiAfkOj zc@Ct#M@u9S$^5`(fiG(ycuKw^;E?O|V?iho$xO6mr1xsA`yD$ zp!kF`51(*=G>9d*1TlI;ZWS{=qsn2{XDH#!rtjHVPw(j4SzdfWO@5p$d_svRiNuj6 zE_Dvb{7?cxNKnUqjc7$isskw_WOdvCDNjcsw1Fh~+jEP-2>n zItsc+2`CG2htoUj3!vK|EghI_sbc;DttC|1KGz$zy07~EoQhoQ7MuIYgSAtqQp9ezHFaTOa={ErezYPnAJ|pi7|8!9uppZ^Kqxlm0 z?VhO*+o05Xc4of=HVo3r%g`0V-BTAaQHW+BzK*E3diJd!3>+>NbBthOEbDYUN$6|M^G zw^Y}CN`=+2-Pfe|g`4mBHVZhCOgaMF=^dRGtDOmE3}pple+8>Yprz1Sg0c<5zsv0V zAa3^9deT68dKaT6Ut&lIFMt|J94W9CGM@)^Zhchn2^DuOj|qtTL`It`Mw0>1+9AOx z=1%WQw*AJ%3q+emrEDvcgid(_9|LP< zt6}d(F4?!~9O%BJi$3`Vix70zt)9j9v>R7+*-*ll7Q3waED)L3Qb_`7Ka%ZwZo%u* z?z!ISP@D63D#Zod8Qr-hsH~rRj=KLyx&>1_Fm({uFwpm6XuR)h9e78k9GRx$ zjzNweu7?FWs0+_?qb$>~B|3swfyl%vUH!lsHod^1v-;_M(GEzaH?obaC|x64=@(aO zl33->myT1TI0kzqH_6VpPDl1euLy5j9w7UbL?;=|q_3ZR`CSlVTjLw=I?NTPH<+=< z!I@;OwQFzfQReNZM7#_PcsUNRc_9m#w=Wp@J4JiK0+F5H#TmMc!RKud_ew+PsV$Hs z!|4aK0-GV^=Rh2u_JfRw!*paV9gND;4@P=sgF54tZ0chQacd3HOmFrFT1K($(i!g) z6a`LS?@sTG@sHSid&R+RJ=uu%CCoC?3OK#-`PU2lF^&F@dVQqhF|L&kSgvE%RQKe% zak0N=>K`ucFODr|I7>^T@_gen(u19mM*h@j{4-kjO-ihKSa~&V;Exk+(}cx}HnPs` zZlSXltKOz(X!~{`Zr|-_@ft6X6l@Yz;SaiQ9owSrr)`#L`^DJmynp);Zp58Jxd}EC zwjtG3j}Krp^W=Dh$K8IAr>#X(yw^Wx9Vp=T*_Ulkm+}4asqW|7HjwnMq3(T}`BUAz zK#G3GXP<``m?2@OIuu9&GGhR7{t;!K*znSqFa%#09+CR4AHpk9?mI5kT?u(;(0L4n z#{CKhpNIV%Uik(g!45r!f|gKl$c_{u*)v^WPFPtv5fAYBEl*Iwhkazi>!!wvM?I)) zf=LQ-_UR47bVTLPKRG!KYzXpHOO@b*6E?IUZ&O$g|=W1}&0A*oi;kaiZ~td#xL8Q#+~q z)cI~-ZgwG|t;hxaeo28%rff3(RMm&+C){en7O;{?=%ug3u8jnR#E~Wt>+V5il5?(Y z2xUnHqOg{1L_D`icwZ8Xddfz#Iv#xyp5E29m*Iuf{?iBxxHIO-yrST7N_I#G5{P6M z&l{aKG>dt}hL`D?IoeljJ4LH;+SEWVkD|l76C|&u~D^DEKR+*%AGe&`$3hGL9kHbojtt zV3uGn4-O&E@;S{%1d{C7U~p6jB!xBLFH^kWNv)bfl$sGU}Fu1y@PFl1F{Ywvkua=qE1KF z4X~%h3q--~bTpcNxJ=zrpg%b>^UuyJ>sS^tSo~SrI(aL~DGyjzN*e4-AKIkr;=0f2 zoz<~TZ|obur}q}mLmTh0owmCZL(#B-copxrUwXbQl%=nkUBY@FJLj7Equ9Y3=4Ruz z>or;+-I=0|pnu!fR2O;#M#F;=?dl}lGkhQq5}rSQG_l{Q>=r6_Y3#3ayhpky4LNoj z?)TRvsWf=g2A#K9}VINU>TR?^7MK!$z{9NfRI+A2ou!>393eaT~^e$|r(;Hc2O|WfPUeVT` zNExMLd!vTzE8~qjEb{9i7W~FHsawJZ*3?1Q@Igo{ix=v`>zsh!hUB|2dfIt#u~mK8 zk5dQgbIs727r5o4&>$wuTaqqq-N)Leu!z^XEMT1qURO=(GCLoWTb+)u4t#^13O)!j zPZ~z}(kB=&M3e-Zk3s&5p7HWXF0@*t*EWc`D)6)?AmN31AL#r0rXPtr5R2!r28HQp zG$zm>{;F)@4|hIpv%FE~lV08oN38Lh^)XrHryW3v2e; zUF8`P>gnB7&t&NAgf0a%K8OS`~CLH`$RxP=w&JXl`5ZBo+ z6gHt+z~!Q$^VC0(bRi`o9WZ2|CD#us1xP}gZNCAW7N2R0XJo4~23|OS8By2~Oy5ku z%=(6dL&4Xd`Zh#Gzwv*Z6+$s`SBhi5a3`a0;6ulEpEug@rE}2QBW~AsQA&-{{#&Sn zN+jD=VksQdt(YAfBz9{ltd0#L`*roNtkfCL_a?q%7UN4lqJ_wc^T(7xz59T2$aqOt zZvG~H9V5J#|WkfUqMhmTALTDh-7I}CwzI-XnUXn#qG z7j1)?6ID*{kh5=Myyi_iekMLY!yz~+6m@*0jQhhr51;-W9&pVrPwFPF>;B#WqldaO?djzQC&y zxY6$2Oy8Tg93KlU$3GPo=)g669d%5Lw;Lbf|1PE*d>v`~dM97U(s2Frvs~wW7wkUh zCi|Pa`NK&Z?z5d`vS`cWezMPyS!DwcCYl9HhHbFwcDBb7uj&?crmaxh@Oyb|lP)>S z?LAdIKWY*8p|^rf=AX6%IGan5Z}h*DHxU2wWN!(qmKts_-{8_rP=U{{S~6;T>@+kB zg`SZ|LcEKe?MklM0NGt_nBKssD*kx-y7+;Toz=M=LurG|wVdL46m6ShQJL3%P3)5F z*;s2rlgsrD@#+K#{HQI}-Z(yr9V{?cjoThZ9n^*wtXJq^xIdaMS4-<2hZTwOc4p1z z)@**#+W3P14-0t%3-1;xcgfZYoVULV@mrG$bkk3z`t+CI$-QA&67}5llXM*K>#(ed zuf8yh{XH1Hjec#LAs@;AGkXJh?BBn1F3sc10`&+XuqAHKoiY0o?#0>O&pXTQvqQR3NFZ|rb zzuHrXgwq?@1`?cQ{J}mc+_pq|A-GSxD9I&sN;2ib>dq~J!0BC}?cCtNn|KP9^p@CM z+oSxAxpPTwoVTLzJR8Bfu0^zk00b3)^dD+7sY)f~N(QNTl2LbOAZK6Ueept~B+K1@ z9@UL=zH{&mIl0yBFu^q9NxLBEiv=UTtn6GI=&hthBWi;|l3Y@zSg8>39C~&~emN;D<~_ z^{h~&FUVoEti=tQdWWF|()Twpr=HL2xD5n<)RK4)=kY9D$VQeEdLkWJJ=fM_Y{{4ze%DbxaWhe5NP-#D6wH(z)^Dss!FUm3xQ{*M?`1 zpszhG8Pa{LY1UJ}RhkLg7b;CjaasMA`!&Ej!f+LaD* zK2mOk_#Z}DoW$c}_V#r8+8DNd&+4*Ah$OWC2=(w7*wqhVG<$*Bya3}sO5$%Q&g)U= z{fy!kKW+8l>isct zyjsbAD)l^ZBq^*A*>5TS5lsJ*{7CWr52vp{6eYjE-GL5Pl)bM_@pf#mhqfd4uw9Jo zkCtU-+kmjMntx#pE}y|3vPTaj5sJD~IQM-xy)vEtNG09jw1wiw>rPt3(}WO7fb|JR z0$<2NqY21v37+A|>BzORRNF#!n^I#vutv5OSgQupxlPNVgDz|vV+X~LB z->GG{f|cIi&U;CGjbR0@KOlJ1&f%8O`@;7}WarqYa^Ax)bcrhD9Yn^PGpa3`;zzHY zbMS=a9L_d>!#4x<`pmFjazm3vNPOc0%2N z9X24zYN?5#c(gv`aX@(I-}!9m8Gie*?gAwAFUuxJfA*;R4(B5@hKiH|>X7Ee_SkSG zlyNv-yCC*mU?0g6Cz9;1TD?*&tT5j9jgHi@^9jvgNWI9*Gl4zdicm=ni=Q)jXmmiW zzQack#iUTSprfo7l3yvzgOz(9mDT6LsN6+7PZEtZ8>P{&++W4I(oxCgI<6($H`>Y= z;!0Nf6a~{U%uonWPOo0fU3ylS{YuG@cR!oH^DzkSLlMHuUV@*tq#m46Hk^IKLD|5+ zG?;vGx8vo+_pGYh%4p@0$zC8|>$hXWg4-s#zz;_B4DY;S89l0xAu{ql6>!l}n>-QQ z(mbrp`)rhxs<}zR*ON?vjdiIyBzYyb#hKoqwHamC+J)pjUkc(7nvT@)R@;G4lHuuF zgAYu7OH+6bN>SnTr_0jmTSK(WypuWWw?Et9&QreVwrO#5-lYWPFr+YsTfMkd+u41Z z-syJ{?vGd&!k666YZ)%`?y_({>TVLpwdZGiI*{UvJOQ-RS5_{{FJKDVo2^pd zH%yi1p)mJiI?j$;io9DJx?AjTbR=BKO|s>mzN6!1H}>VA*c2*}U0Km6j{Ec$dsyMD z8tI4UHT6)1jd(AVAcjwYmCBZMf=#3To-YV0U&6U9GZWGkmH3ghZC%|W=ET>{%Xh4y zyTSFKn_~VMz(z;#&wIiKPe9g%nV*?zJ(BhymK}jf?(p%3v679fj{E0EQFf5X0x2FP zbmA7%7u2bP3VAScgujsTy^y>~MdkI@+B2|@Xo19$Mpj>!Lr9V4Xnm*GAWS*KnN_lC z6GULm=azup#dybytW@&ZtLM(U+=e+&8XnPn#qe*JA|%*Fbq6cqb{1sFx)l?z+;Bzs z&QP#@qC)T3wK9Us?0O$^k{^2KzzdZiZw+wJ+02j~D3A|Fv?KJqrBAQJi#nvhDDyP< z7JUt+L3fXFDmHjY&|vN*(bxuE!znaDj_o!&xGYSU1<7<}ML2=LgQeU7l z1=emr7cE0lucxm^;?p;=y!;m|Js7zUG3f`std!5v3>H$`LpOyEMzI2ErK;3}kwbhY z@r5iww>%MN^oS`?ScaqThnJxo5*$ZNVRRn-w^KrkB#snVUB2*HI_URw8Bee5xa|$B z$6Q_rY=VuruL%kisCT+g-x&WBO6O0;8q{3|!;4N_83AXM*RmMDL^S>g=VYUO9P;q+ zP4KK!84g4tKL-MnJdAgJXtk0ZhGQ7R7veG<#@$RPn}K(j6z0=E&fs^Gujn=4(^e%% zaQddTag_<>C5&P&C?u~${{A+qyOFx);m5SD;V=da1)GzdwgAa*w;I@PDgPldMI(m0 z8d;$=d4MULvM=aQ&<&NLTs7(S@${8I^2C~F(3`shN9NO@p22;Hx#1Zs@cFKE5Vy9i z;7))xjA%ZOm3%aP&XB_jZZ^(OKs=2>-DM#i$P!_^>Xmf%h5Sf*`c6h?*b;|sVt)z8 zdAP)x6h&L_vr8UnxRA`%$~w8cc9pQ(`;^X@yUP$Nd*$A_ABsn+a&L_!zO=UYNA@B4 z-Vas7unF!~*CgTemvs6|KiiUqDCXExU?=4V)IyBcp8#pvla8#X*9qZ>Z<8@(^3y9U z|093)iwb`w)lW#zLy_DA!|A&^edQE`wq@B6e{I+l__`%0dU|bGU5E^}e3Y`9mmyUW7!>FeoL!=?8S6{~;o<+7hH?rdwl)4)#~jgy8u zUa_rja8%r;zo@&gl0xfG5J5d7>;_cd1+v8Iu2?3m zy9xaZ%HF^5+Jw_9Swd}Fpr?WwNQxiHSrzqf`r-v#OJgYd?vPb_A32Y_8EgjpK39z- zz?z^0B)(p59e#Wol99WLM!Tuu(^m`EXma_^0D-`o*(#ds6XvIHVtJ)1#3Sg6oxo2T zz1H4YB$tq#rL+2vIzMf(89g{%@l{CubB3*l2q_#Cmo*V)tr|>^Xxa*p2GmO8$B}$s zb-5irdeXoOnLV+UE{wxGNYGt>99lh}n`}1A_Um^VS17O+)q9Bdaa@Fh{dN8};>NJp zF2c$O!*UhpK|{Re%ib;q?0Rc;eYU7x){V#7^I{>(K=(Xrvd`T(I4m=uWY zJiyc!()si^^pHqLsB(#L?1445A-ff>d#kzI3#71t_qPq4ov zN0Zyu@cC6!WjvtCQ%OO2<5H3wiI$k^=^s+tDDR{equI-pKBxSm>Gxrg85@vfXWUe8 z=!Fzh`3yVV*7<2FBYFpkt&sUX7&vc8G_m`_8tQKE8MByc9S>48c^JLqJ)i~>N6M_B zlHHdSBKtT}Awm*!prD>WiPo#_^Wto*2ev{s@mA|0iaGQ=QE!3gz#f0p@bE_Bw;u&Z zC`Jw%W~A%J8)WUBq_*~41%mqN)yNt8(uasA8m)=(wLD|N1MgI}AiP*(n6IO*a9d}y zurd8}n(gMpZ&+SroFz!@r;Jy!LLwWc>}y3Fp^!~vr?2VRBgkuO`GC{RCy=fABGALt zemqkt(NJvi3RVvv>7gxu#0F5r9B8crpV2)^SY??9+UalI>8}LeSQC^MbxTvDACZ`W z@ln;rkMgHKL_qs9$?2aF1n4V-{7a5n7)M3@%*b-zlO)KatY4e?m#?H!7W=;T&!BMn zc3{LlcKZlgQ)@pRfz(&r63j(r@|^?S>bdn4>7 zv`Hqk=rU|7n?ZLgFFuB(!OApi3oXym7Zk8hDJt?B+)H^a=#M{3%(8c8 zEg0Cc^7As6R}DQV@w}RG`pm9u3QjBXF(ZmnE6w6Z>QpYqz2P#y2Cb|IsukKTLFa^q zY2_`K=qc#wM44e-j4s1c!wU0I2oF$nwM|CIj^Je~vbSm!$B7JSgvA<^$xr_%N=gY($bf>=wjp`0odH^n*FKQZZ(g^Nmx85(7n{YJd zr`#I#x`5^-GEZcoPa%aUT*L7;{foC)#4WEs&R`T9yw@*=tF)yR>PmOucriLP797t^( z>}@}YN%(qi{miT$pM`yfvB?$=hQ)9mt^^YM+)UIQB*eCeZ&FyM&2GFxR#IPAD6p~W ztue>n7R5{35|{t+BW9|I7YQa;GJMOp9vMXdMN3}2W&!ZugS z?y}&&RJg4DWF}q^FE)LCPTI6DcQC_&F41>ESU_uMn>wUu3!*i${y1 zRe9+BKzpJBq_8R4W1FSe#0LAbU^BT2_IsCFv6F-4?R0o?V_VhVg4BE!L|mgJ5YJ7% zROUG*x@2jXmDw{cm$9(vU;U9}53v>-4ka9&YYM&g^2Yc)_F%+!odp{tcaTQj_IIN3 zQBgg+l`gu@jhAou_?U3%Nuh4w!h2XDUY4#JpTpV;-v3G~Bv|n#{Hi085uMy(XbW{S z?qj3VhElmgbxZcsi+5JtMn5!2Prd)^g20;RLHT0H$VMN_mP6JGx_8N7JFz^0*i(co z7-5C%TK)jgf4es({#RJ9$UYcs zYqRO8$imXvbbSx|LI3>lt<|6){&VK@xPtSBLTpwKE?<`JKnk(p%YHUI`T5eaOtp=< z4r!=oAx-fjzyD!!8Lk!YPRQY<-Dl_*~3Z2E2wt>#u7ZOuQ;YpGawNJ>2z#cRcC zxFvPHBevnvM>^A5_!3g6W5_8q#pl!4?B^?!M%Ve0eQZis`O@WQg?Iad%WbV?+952* z&v5gnMYJTl+vBn2a@M6NyXo!N!+EM_>7meIvwf^u4Cmoan2yeJB(z_Z{!|X-PLjpi z#Ytn=2A`jOY70NZc6Qlz(i7`X%+P*FdsDDVQnE{Z=_=&ARBWm0dWk88C_bwX#b}6A zqGUVO`BC{qzE-Uj6h{9j`jz zA5v|z@)tjj_}2FIxc9jW^(<*PLiEM+{a{(Yz}%K(26nwcJ{Mu=Zty+y`xIWF<@`to zzcBpC0yAH-vDfDX_Tj)ZB=yc;qj;@2cfn~&z9_1nzABx0g_qs?+jYeCz8CGq{WwQ5aK9NJYos{KZeVkXwM%&I}Q>b@Syn>I7>OqNKf?0@$*C;i(-2IktN(<}v z6|Ghc@6){UTBEyd%j(k#T}VEjUj15#DKR-lA>M(`jv%0LeRWx_K-X+|Eak}cGz6!Gx_WndtTZBo9jYB57>!6^oyf+ zom+%LUfMFSdshV->DAarW{b331@DSB&I9|uJj=5$Zchx&XPJfH(^f%<_ z^Ak+IwCwy@3TKIejNgM;?~GPRm$i0Lzl3qWKnE|ZK!)3j%%LApx{11cYBf0aM>GX? z-nz(_k~f9>T4mNRGQUt*_aMo1d6IjCp6Vqu`u>JS&$+$FhO_>%v}ZsGBsqsn$a4Bh z8xsGD2ig%vw9~6c55JYM5lW-0_~d7NDneX*Lf?-84O=LzJ7A~hQjGZR937T?7u20X zT)~$WZ-W&+53K#hyI>R*9|3VIX`zPflyA6fPz?h3()1qYF2p!{1Nc)Wri zc@_w%3(uhmab>>}-2e@^y=s#b%Was4`^fj4vXL#QB?XzmmU)+5*I#T5|9#MS>7oAE zT(^_q-`JEdTWRV2?KbI!VPhvBRm7Sd=_T~;yfWgMM<@yK{-W%K+WlqZ{Y59}{UwYt z1KFn^N4g}XF)8$3Xyf@NoLe{u;BIuA-rod+tQFsAh0cE&ed)j|KL%6pTDD--qidOi z+{-NuC?lM{v*X&EYdih1h$Ucp4fiaCc!#PD<~Kuq!UiVE8JDT5yK~^W$Tsi%)8sNy zh@ea9{G;0DDi&P6PyWhO4{JEEJ?SjNEc3w2pX^WXZ`?_Ld7}!6&EDOoY&e6mT!7QG z1^=?*{|VrkC@-GFk4<0kin1l6;PTF&#RtRrMB)0t9|QVzhBi1jkM~l7i#**KeHNOL zm%w)VrUj$-H+7k#CBjHblIN+6L@%Ut%1O_j)k!d=B`c}tE|lJqQSU4B14_G-bIgw` zJ;Ex^KCc)Kg6-&vQNXQq6UcbaG7N@HXM^u+6?=bM0Sf;VOWQvK`$ogmlb^n3m;8zd zA)2-=WGCjEc&mlNijU_)VnqwjK|SOCA{|zsUlo!PKJYQ&eq-dEar_8Re}8zedf!mI zijPtp~eA^|j(=5&YJmsfQtYVa}VK^9; zt2htm!L6zH*U@hCHr?WMgKNW&qLsGyoBCGqg!B~JXq)|hu>0!%IN25!kB@|v!s+!o z9|VKC-DQToj|!EchT{rPgAe)HZ97tk|2bwIZ7VgX1@(M-U2e1uEG;rg4ws%*=tBIE zaTP2WWkxH|w=g3#1)K0keG$WXxDk5aV0?hI@2dYfF9e43c^*}o0Zg3fKh@>yD3o(TZ$3!Def1G)O<>-vCg1bi9 za0cUc28rlf`d^Lj0tLby~s{f`9c^!4`yb$B5kJxmD86T~Fb2S=)@j{%*z`Ysqn z#ojlV46C8h-0)Emj|Syzb6%tf>O;DvWNb^SAv8np<;fOYp?14=0>?3Xlh4()M=Ps&!i?dfc3g8NF z@bi{JyhCC&$WmG9(UXxL{ETf)=uQ(9!+aC!Wr=O(h%Y?|Zc1RytqG^FLS)jlM4@9o zODos_Mm7m|tPM|4*!_nda_3{Xo>GXvK9Y>6Ph!5@Gx<^)rGW4MBXvMJ@Al|E`cXYR z>7Vhq>`6h1W~qTTdifHH-xE;BGqCpHR!BHfI4dOu>m5b{&sxy5g(#j#Ux1Cjho;zc z{nr12=dStmS4@$_kpk;X=93pFt&t?}$?NGWdLjwgU3ySxNBKf9?0!c+)!nc{4sP~m zDXf$B6KV$5C(n_-jjiNP-v~R@!V4l9fi*k!0$&LBL+U0ZN=e?_EYmm!$n(?C;U=is z0$tW5>ZB4!F!(L@*?*lX-%}z5dil@5+WWWx^(4@udTk5(!rkUek6m|&zY%(#>YDU# z#c5$@Bh~W;)Qb$(LMR)sS@(Vm(P-P5wxzn#4?wFKOye+-;>Eeh*6W#S1d<(Fgfb8$h|*I@SMkMk zPXamM!jMCCXah-x(tD07*l=3K+0pnZKTqhtc%RYv`Q3{zUMxGKfD{t!emB8_Gd5@9 z4HGetWEk%{hg+JV_m|XY>8EZY8u4U}aAb9CTMc8I=&NA2hVl;t3(IdUa>9iv#Fc&k z4!(4rahyur`II=Z;^*cR9MTgU&~}hz79GUa_~Wv2@1XfFYPpls=lmRsm=l+d{j{n~ ze%V64RQehy!EhAQ_aSEd3s<+ z^6{wPGAN^$iEmt8jtq}5lK2DJloITTmTtl0(~#tL9%w*a^*#&i% znVvzN3QaqGC&9{iKUij zui>Cj6sp37Yn%riN>`x`kC4N~)(^|za99BMV$tL6P{~?pS(WAyvK!IZHkLAuYd8(6_)>Q*|78CPrkGo*pm3L*kNfqh>LbhLmNo)h57`j zWj}oRvcNMoKzXK_@8OC4^tU>y&w!`w5T{vIp zzu74uyQ7BQ*X;=0`>t2VQ0#X10-6sB^vJj&nqeQpQLVdVSb!I&(Q*4LHziGe)s+5HI5M(2zSX z+Kf_Q=ac^y@4@Kh#cZ2n(3}*i!Y!X0%7)F#9R=hDw0OB0lQ*){%~`4UmpNV*+9`T} zJJjoGtp=kMqJ|odmv|s8w=~kT5v9;}^^#19=Ao#&6;^uG`{^3hDIY(aRlO`sy=%~I zx{t0w=F@jEIec5hEy5Ohw;?%5@ye9C^GJ!rk@}H6Cw-nCm zLGBJdY8Bi{kAv<<#ugAL$gZKS`jtXfoM8#R5DpCe)39j9<~%BpIK!WoL`vV_Q8<0O zM3cO!RIIRHsVK7Iw+b%Eq#Byc=NUgfMjnb7KADTi9UOmiSpFgU`U@1{5ZTH#^5P+_ z;B|ibf^;+FprBp7XNcDg$Lrf?ggg3@Qx}{jbWz%GjHV+GA}OpsTEbuAQ+Kz4*CFiq z&l?dZSulmXBiF_^F+z$!Fyv?6REaW?FFPu&g@D@o$cBo$Jui92>4q-6_)^0-b2$2h z@Fl?u`V5iYSqO(=k%A3KI?o}7q>h_Lxren}Lw1gXln&xDx`(;#9z*2eCb{DZMzbU9 z@;o>)neuPcBRw^L#UjWj9f?BuU)T;wIn#|4g1nf9WKQBdg=u zj4H^QBz;z^Pb;{UQizw#U&&w$A+zh62j|#)>6W)ofCBfK<3$bS=-F69-{Gak+Sbnd z@B5u(p2u*P&KEz1(%oRc^A_k3(a?Lso068teuT>w`rvY4YHHare5~5;k79a2^Dd~n z*()Z6wGiTe1nUM`zt!;kI!@yh`9~YIT3Lf@(oLxsNHljm@nws^dV0O;{z&%zR@;g2 z`jPr5$1q(DN=Bh~8mzzgs2o;WE4|UC@1TVHs&emthN|JOLAQJi{yA8PhNZ#II^^hV zW6P!KlFRm%l1^!b^HeUn&qD9-MGJBny)7J?(B4IQLa`8Uba6efMlok`YxEs~2wCE% zZS-!XMIPYO-`kE~mA5Nb!?9W7RXe=~Bpjw5TvojAu{HXH?KR3f--PSfjtH9}@jqqR zm*ItADriF_O~zE#R)-mFgvf?EvvLWq)3FcnQ~tNyK|zvtZCh8<>eeeZeyviufP40+ zV1)-Dg%wY)8;+;1FX(+pVhQ#}4za?t*oX}?ebf8#d1~^>yL4zzr8=xmIJL8Y-Q8tKlGC9`t$GQ15SfR7eU{Vcra$1?Uo*t)Xo> zQ(U&XeO-h~GTJOegL@q@JfMu#Cjsk97|5J>qI&OJ?Sgt_5KChC84$+aR|ef4whtMt zgYKzb5ZfaAkxVx!Hl6)t8-rtuY!dDpj+zG)entNPdDc-Mm1cgwMi%MBQP%sR6+9I-*JV($G-i=BU(qmR8my>hgU z$Y{+ggcW)xMsDR8Zn(y3W6RVdJlgu8M8D;QZ)ZiZT@Xm1z!luJ7>ZbT`p1ieki2^F zQIL$e--Q)Yh#PK)K5q7I$wyLI+)?e>e@d!P>^DY)jO!4W)^{E?cOFy5*5gJ_LnQI6m27Wy`O`(j z=Q4B?S4Jd_V>K!Ot^>*lDNK`^qlh~%&~|)T z+B57Rk{?-V_t!X~bdZM^F7HpT;BXc)hfo%YRV87A9>_*5gcm66GpM^W;F+h$+bYTfUb&I2mPJ; zxmtREYcMLS_Ye(@vZ1^wV%hK^(m$87N@B;yun+VV8+>45MtwRsoa>B z4v_vP=PRKGaWVYZ^8NLjb=^q4DgI6_`hnIJ=a06V;yp_fLPr9{=SUOnhc9U13+w_F zGD+}g0|`7qjzo8*LU{?5$loA@3FFZFLVqs?xsHn#Yz{~@LLwzOl0Ajppq_)v#P4qy zbfR4XeqW2iWO{o2jM`Mj*t+n%_e=w6X)Q$3s-v?X#2oqXA_kN>4!_hG2#%l=R&Zi7 zFv!oobGX!PH9-kXw=|2LzO~gV##PJoxV0U3PqE2qu9y(W*L#fGPD@&;AeJ2i=>=l@ z#i!KXk9uC2hhhc!!@5=|7S>{a1LFhC7+=AetK zp*r*t@^VlZx$8Is1=b;B*N6>rh~#)KC3CI&OjmIb_b8Wbh*iurvA%!~7zd##!M+UB z5wWjBex8ti=Su*DF+5LxfnNeCeKVKf{SD8Mh_p}r9vhu{aATq2Df>B1jHhqpr&o^e zZ{(eMJcs+jJGVJ~;f5&pwEq%UAj4rtA+gNPNTLz+4$my4eAZrawmsZ5datYai){H&&jr(4<)8$WF#+CjYP zJ>Ka;Ggh6WB&DN;!U~Z+rqDMX9oO-DkB-Xt*0Vu&h}ya-vK1(xD9dm9J?R(x6aFL8 zv!6p;!Cg>DWD{zf%Bb#OrD-LFozKtVsOg$x>!DFPN|^3htLe;oCk~Z>j~_y;JooW7$Ek(54%;rPBB{Q+${y^=-N^dEpU{mcvo{NVFbNSsI$@3X>etle}7cvjIA zKZG96o$flt&6pmlpxq&Df8D@!m;HECR5&uQPDOkkw#4f|A&*n*JZS4P9D}$RKHMSU zg~t);^mRUcjYje?dip!Av_6^O!ttsFmxWH>91(8v)87eY{S9fvcN0kX3);{yy;^fk z!Co-pu8n7p1jRA2mL}jMNH4udF{hqD>HSTpHM&k<6kPU_u9{q-k#x^+7&N@a4=fUP z6MGNre02DoZ(}GLb`Y! zeT!F$0($~+F@7j$E2C`sEf?b+jOw-GyfS{WPO+)=PJ;g7 z%63s#V$0>M%aCu4#U9SWc~`oV>aCe+J%>>4(*O~x;=i0RoU zQJUhf>KWK?%8RG>R)y(3!^85Quf-PF?E)l(jwJaRJ!Dpg7HKOM$h$pR#~RprD3R#& zU5w7{SC|af>XY{V*5n!z8C{0}#9uP%5pr1ELv&soZQpw_ml494eL>)QKjdygz&65j zCOC#P!wPOo{4Tu(!)3iJ%uQG!T_Ya2t=2W%fcG~eT4ZX{oWc^QK_(rCqV64)c5$W) zgvJiBd-io4ko=dBpDPkVxDL-@96$V4helEft2b3} zoI%F*p$53Z<<~UMdH~iZbqfQRhMun4b3|`Y)NZ^0?FY z(^rJ$K>8WLIZr!}iboWi1A;D)c{bKKh`Ee_Um>kn6WrEk$f!qHba@jI^=qs?t>CVa zzfwGhWyR}mY0Ek<$eq-WizaN?PtOr|mgySO_$gPOto&v*?P@#Y3ZV2T3xnhY%ZP1^i7(3oGFP z&jA+=1)?RJeZ#bqDi-}<#-pHIkm-zyUm)4lFqps zj{Y39byK`*r&l;1mL2;P3(Og$%6j@cdwkHIp@@aL!U);HS$Zf4zQ0+=bW6*bRW{Q^ z;!KJB$d!QF1MBIPeFs+MbCW{6S=vJid%WyXILBMY7l8!MjFtVi)*#MyPv!KbD2{*i zx-cKfCfT1j;1RKPY+3H;%Qo$%x^mWo`mq#B!}HLj-p4jn2|I`n(&_J~Z&v;^(cge` z7g2K(mtDa)UJpG~W_{F=B=^wGWT-?(zXY-Tfr}NL^Am&JW!(h$CL3tl`_gvWrBW^2 zf_AFj8Ljv`g#t#|us~cxH+_zKXfU?y&O)26;bc$hno@x_cGIJ&T@^d_n|zik_gZe! zRN62PO|*e{*4|M3Iasb4=E>da@8QzB(>LB_ngSk-Su1?h7{-RLAw8Tfhu>zBpJzO* zvwSRJJHWvD;}%A|g=LKoz%5T_A#owCefiz96$8)uXAK4ro13N823_t9>OovQ8! z^|}FEwqd@RHt<=u6X!M)( z;*&Vr&a>arB*W#}({_+;F}|HjpYqdpF|EihX-0REVT1ymztWc!#Crp`(iWo8wzC@H zIZ(qV;Hr&NbndcL=*C!Tu(Tc5sGFjN9$G%@sMkl)w$~Ilbk(MVLQ&AU7{0)ToxZhM z-{GBl{MNuQjEMSiRGfc?1Z=E&&d>68pY`#3b3*hCmH82Uf9nYrS(Zx6?R-t)IT(VQ zffCiQB`8k0Z9D^h_Mu>PY=V;`U4%SCJC_+=LJ1xCB@}J&fJ9Wfh%E5vgqgGkw$nHE z`_s%a3}rW=o?cPghL?~0)$4bv3 zz6I`Te7fk~1M66oS~qw&ZDD?si4GtdOqsy*q=P3NS^2H5(UE=e4i{fOX#>-RM_}U< z$)z$a2d}W${^*9+#XC&)K!um3IcoYKttk<=Y zOxI?)$2wHg=NJ1-XTToME3XjI74ET;xm9!(Z_({)s`!ZXSW)A-LBqTj<}d&F%>wSp zLaEMQP8FviYS3b>=wvjH73A?-!~8`Kb?vB#PHld(ZGrzs6(&^jd)Y43CXe%*LT8(* znzv3Vsh4P%BRbM=ENVgTk)^Tzm0Dmy(g}@NRO3gcFVyI`PX5Azdn^7(4>F}g(TI-0 zH>&pq=7_Yh6bx3(z`Xpa`yOx6S@EPk4Ux!GTftnGFy!LWlQDeDKi-ML1id(Zucao& zptmm$qAo(RH?b)`kGYa{Ew8_hRf~^_pPJH-u-4L#qBCZ9#>pp%L zGT$EERjEe#eA~l(5#nX1y+}PipZv%B_f1+@4*8Xr*2MWQ+pwMJ<2Q7m$4#Xj{#`7h z)m#3G(~&==Phnz_n_1dK>!C2eDRkVYe5f z9!yE|TX_|w&3kMH&?hqDRpb|zwemMS+W1Ub_Mc5Mc$t4_l5=cD22E=ExTm4`Tuukt zDS9-ODn5YD(#GW2)>eK@51_|%xA#Hc_m7_RKU>eSS_ax5oQEFT>J5%}JhiT@mi3gP zE%jKbv#y2)w{*{Qy<05kWz*JN@l;Uvjcu6f?>g3On||$k%qv7KvhZ@YRJ^X9yX9vV zeQrhnBN2)l`Jesj5A#>@KoVKN^{|3lseS@W3#pC#xeevKR+st19$Zc92XWd`YGNeH zJ$k9-rP2wWN#rdBS{BgAzfbeuUGY5seW}sw*?r>IEI;0<0ZE6X4p@6Qi}Txrj4WB8 zCh7ZlKarP9Nb0Ak511NWaj_a0P;^i8Wl|H3C1$n*iqWczdki$I93pB+5$JJH)9tt| zZTZrYdb8m!jE{WAG~r29dwMt@SCr}p&1z*2KO!|4+m1?f5Bb+q5BGQ(*G9ePUY8!_ zmVFyGF#xu+sb2<|4w;vMdLkp@d9=dPm{;LnPu6))Pq@zD%mN{?ci5V!$H=}4oi$!N z|GMV=;O?bL;esRF9z;{$jfL*7xi)!%JT|!>ec9!&9#DQmx zq{9w6U0s^O??(?AJ4@VQ9N6iX7zqv#C(|Jhv@b&p7EEZv1eCbKlI%%6iYLqC{oaoK z3I;0f$I8B`H)SGDw)PBZ=)rK;$cvl?Qu^-Q$2%PoInamB7NRAS0c2|e(GJdP<}%Wu zOOZbh!)zg?p%Tx6B1X|cEf@lNjg#E67*=?wdRaqdH98Vqk!UI-lNueyrSBQN5>;b@ z!li|KjsiQNL&a~s%@FNTYT?p`ERf&`FM{$F$=&D;=f~nj{XpKfIwXne>Q$(s^#})g zG;hmv<$-pN{Hle9wk~(-euxk-5uI4T9s#{&>fO zZ5A#yd2?k#6C~4rI`E3tB`}2OPMgU1Vc+|A+x?h{Fc-C-*aOzf@hjKUWhV% zXQ^f12ErYj)yi7)qKg z#wpVqk#7FN9hSwBuF;J#LxhUGu)cGleAcz_v`qfEz9dq4Y}aCqz6}j8tsU3HMQFPk zl=I}8<&6BgaFM4W*6b8}xQ4o%brQ+ZDz7CgYD}BFbqw>@}BYH1oO4_ z*l{;Cy*}519=s^^3S@DG9p)b0N@t?|n80c;_htoLG05n{*b%=Pf;q-|X!8 zGHO7GuMvxz6#~)0p4E=Pz>jW7XakRRBmuLUnZH~XtXZMZP5XFX!O>^OUMOZ37$X7` zMm1BsgX@aSC|lp-7J|3#8zF)hN43O0#;LdoO#HT-p6%d3&D@f}nntqHQn`a zWdbsXXEitfoC$jjVx(c%Sx*q*cxm=3rUF-f(@y;Kq^n;oSbd{%}odh>CwM5uGZ}T6;Ki=8%W92W&5LzybQPf$XyW!X1B^@a39*Wb|K$tVe;@DZjgru3|70+s>ainIvWeaMo6N+(d53Ejf7_%{inBhq7fi>ak zG82|Ki5fL7zQ)00UdY1fbiz0g?%}YyVQ{4QLV6tiRNPo1-;wq^o+bb*Cb9^7*(M(P zsT=ws0M!TDGfvb@hiZY{S~h>nf|W7Jp4lf9<6fPC43&}5Cedsm+@hgk+70nAmi!Ya z4X0xzY%mf}$ycEJk6r$tKY_<#q1~7lo!=JO+i)C;o3K#V!7E#5C(J~4mChQmsyymh zpl8zdC41`@KTrdfh&f{-wA2tSlD=OtlhVnl zb<|)_ZvipIsy4Gu1E(GmS!vlW>PzcvrK0-hJ!@w1C|nEH)sT_HE7H4#LaAC$Z8wPa z1`4SAkstsMjaF1weM$rwow zJOytOb^5XbagU@yW}H~it9k3L$cno8=MzeWg?9KK3O6Lfu-Hjkw3#%ZB^#>viiveA zY0t_#L$*5zZUuvkhd7KUBF~qSBN`?Qi69Ob$freK!OeeWkI(4*_0mP@b*E?NvHUfL z9v!*e8#Yh6v~xsJI`t=-D1ZD0pS8%MdcyKq=b9=19j5#q7Y&l8{Cq z(1R;Mk0F!4E@BVIO!iaC7!y$sq`~gNGh|Vk-;l7g;(ij(aG-;Qcn#`AnWM)CjpXp+~?wU2*yY_SaIpIArC+B8uw^SK?|PIreufEAVvu} zBQg!0%@fl|yGPdHHKnU)C=aYB2o{sl#LoL86K1=ojj3TwE0`aKQRsgLuQIY zZxhp)dHn;mJ;p$<foun63xNn( zK-8!O^-1fx&&Pn?jsh`>XR^}}A)}IRo63elv>4ex-UZS?I`&7{VHETuJIy)ugD8hg z!oaJ-WWy0wFoEz_L(InoM!FCSxd4$sZoltFv0ySoKJry^h{N9c;)Wr|NqjOL5}j0y zT2P;?KqiYlOgKiyBx){X3@IxS-s zTdIz(*I(9BLl(+bv9gt)xV_PXZz>*a8g9eA>%jdbeF zIL1rcL2?l6n&!XJ%F0*&E{oe7U{jGndb1mpWwi16S1Tdtz%YLU@$$GTOUi ze<;e2m2C?4n-k7&_GTg*oTyQo-$prxgbvIE1UO|fryTXLS}ceE~gXsN6Zf5hP-7s%wIgi{Kc_r$ckrU**XaKeEzERje%?|mX!Vl zN5=$do!Ajb9Yi%geb%6F3n_BZdznmM7h_!d+1o%*1-UnL*z2@$AWbB%Ec%Oyf;tR=!8xJ$L?UXfRf$S{e@lys6L zwyd%e-&KisaGc+e=(_0}%7om108t~>s)v3{`YkvO>g_wJrE)RNk45=EeP-0hdmfrf zxHnb$z7^50jz1o?Y?;b+6Kz!1*YSqD?pfDcZ5cO4;ZT>Rn$%>!P*Q9)=_P3-O_qHr z(A<^hw{L(2)+4Lzk@s2;qDkz`_VF$g4Nms%30e*2(yPh_p~fe%+r??$NldpoFKz3~ zU(Z6v>6`9YJ!|~eby@J8uG}j9M+jwLU|s+EgR0&gY9Xo7^Q?+GMtjRlJb!spNVM+O zy|xDX@`9T1#C<)QKz>3lfBXjOL_sisC1s>fB+YL`RB^y$9T}2X^kS`gO#6}1dfN?x zJwykUOoO4}32N|!w5y8sppapzWIAw^L@enb>y}tt!yckMxvC}lBJLKn@8>gnGd`nl zYy!6V&w=eLU)Hh^83o#NO@{>`f-BrZC4Z|JOv4rVe*a@)p$t=l2HNmBZmKtsJ_*D- zWi3?Huk&jx!`4=I|HzNQTN0CBchJypJl*bSHP?COekEG-Cg>4MgRX0xM=d1MU1uXZ ziterWR(%_i*h5{;!{K~Iqa)h`X$JxQ3h5-PWr6j~=2&INsNO>d3k-h;`9zS;A?EndydFwF%8i-vO<9`@Nnn3(1}ZMCUiI+m1~+4aI|D3VZ2Eq!C2xWkoga z!QH?f`Zk;k7LTR3QTa~i79V!jRiVc-r5;SeGsZQ_1U0Pe9+JO7E40O0egx@mpPq+o z%5oIkhDPPl@-~*waB8XC!(E$G8!F4gN?izNrD^ya%m2$3ch)!Qe+(0RYUTL!=f|(g z*|a`-(fwGQUqouVE>adXW1BogLo{_5+_2EE=07j`>v4i$SD4T(JW(@-6gn&R@m}09 zsG2s=0Y*WG`}wPQqb&Tqh$-l$%xmbegyOva7GAW$2(BhRxzKP{k~@$Fu{zPE%O~A| zkVT&LH>eY8s#La0{U~`2b?J3fCF{Jcn1^z@1Bt7xx%AMbo{5KLl= z&cB=gPWBfT`gsEe{-p!?rH`P6oOzZ7$wRFy6Lef`D?Ox5zM4oL>gvos=+5sLAkq^Q z#s#k3OJ8kN@6cl~imx^zBmF)ngUwc+;MC=4@DObc^1Su|>o{5)aVcc1bEJ{5(gV<$ z=(kgD@(QsQ)pbAFau1bKgCFmD##U>O=-NNt`)^@+9k^|J73dcI)3IVIo*|fq{kjoz zaovDh_AA9&?V(ar^f&Qh$YYuyl<*DLL&TQ#iJ7w818PVm=|1y(Y`CEALiZ!x_KTP< z(&vLb+}A8ex0o2RoE?m@*doNF}K+M7hSjf0W3m* zOFL3C9k5MHh5igR5_(i8^DMiF;4mf%fg~Rn-3<}g^CJ5_c(UU}YCG&KL$X64;Ld@? z1h)P($OnOzv9Jg^njkhwblJW<0B_w5o_~%?AMY~Oqx4Cr*aI6s4lyOxOR+5c@W^z4 zv$%A)$2xT5H-Yt*#Eg5C?u^Hd_o~u2|D`qegY@IQ>nsq;M@|=_#bVE!4WoSj8TV-W zCexYl5?_F2XCr$Reg8FFmFbYm5E7g6Bl~#2mFZEOy^37Lu+t^bT9R8Yig&Fv{-TAq zPMOR@ng#*d$A|)ocGj=Jn^GC~_)M^I#a_!SmUM_cEjW0H8j(C>RO{fo>B_8GAy~!d zjbFsU0|tzkn4&1`I`oA0hB_DrWF7zN!O@5hBZut>dPKF<2H7>t5mT$QA7xELW zo9s0jXv?mg?Mvas9W{O=7h;LmO3j1L=XngHxlGqFjN1vx1}~bCUAwmw82L5{Jy1^# zJm#A|k;+c(@rCBibht-BG24Px3_op&oh4&u2@W9I4aH4ZX@ZJlJML%=88thp-d#{!+I` z944|1qGo~`=Rf=TkAdlnCzCB9r@)y%>wrBqU^xsw@#5r*A_~S9kP=NLW)>$TWx)BZ zwY^LrU7b~PSFYBZHak&c+T^rvs~I=7D!$RJUkwh~;wvzwMX!334K-xNauHu8-;`O; z8=c?2VMI2H8Z}h6mt~Iyv;(|)Odb@c;-&z&N?I(X9XMD?f&SC4$$Hf8Jrob7pe=4z z2rErk&}BTWJpVkkY_4a;pCXgcfm4`&ZfO3}>s08An-w|?W1x==trc9!ZijnRjN&g~ zozM}A2OTczU<%-rF=RPes+li4Y|9pOgKsDH*kdKP;xgVCNsrZI0V_T@ae5=Ml4)?P z?3FXje=Edms$?pj)(+8W@LSLqG}in8(s*9^Y0zuqx6HS5+xPR?Fr~8Ei8V*dJ`J&W zKNh-hn(V%13+`m@j`#^lsSWhCkg1X>m>F0O5nfiXj?qO(D_B$U5#8vkuo;so=HcYw z(VVxFf4mpWE9kn{%d1|+9{-iXr-0A;DlaWUtuU+-QPhyle`NhL@AQmcqnhr8AMbk< zk80o)_E6yCUCC*wPQ6@%8R>=mGfn|drADtK$j^9bVezmuvd+4#>1DK5wvnk+I;-Zc z{8sNh^`eH2rAK$=H!Z0@VN+RUx$`N>?XPetayxf?#YP7v)S8mmI=|4%oRm|6356~f z6IHHe?}8} z21k0pR(U_ESSVCve@f+&k;-jHx;I5qvuCrCx9*cX|7F`z)pnN6i+0ut=+U%EHY(R@ zk5iM>f_f|+qBg2e!-jfv1=MSw9E$3E(oj5vrXn0kby~)=5d$y2gW!br_MUs|{w=t8 z`zK{9wTbm-gY^WQIIF}%0%9>O1VeTL{`s^L$FDVR3B*M{#D7C%9m7DU>Zo}B|)LH zzVBKKvLYvH5OWVfK9Q{@3?08#qR~U@;Q@q7I^S9zs(4V-t9-5L8iIm;u0pwoN=cFJ zQ{rKQnu29ZHjA^ixRn!0#Jz<~+ep$q?X3xyg(vKc9SSB03id@|8lHi0QOYD^o)(ML z49N~juUltDLx%#54v|jU`JB28NBH>7St9PnJvhTSzp?G{k?HGy8b4v)y30a(7#~|* z+bW0o3%`l64Oiktt(lslj7*}|giDa5n~dZDM>hMfYZB9CDPhGMWAEtvmFx(f&Hi%! z>o4a&6H~ME8`~}Mq8geSQ*XqEZd_}@RNQ0XTJzYWP|5S(N`(&1dJa)@L{}4ELAi~} z*8Rs}mC_srP{?ZB@3C9mZQ$cK{8F|=(ZEhk@+2?zDy!QQ1DAUc4W>j|vwpP?6E!G+j`d1{x8(K^)F5M5N{%;^`R9P4j8)_NdqsDL=f8Y&&Xi4Py72U_E z-k5%o_dBqM71DL-<2}eoO{bM~*NglM+f3MM$B#aWv0{#}I}dz$4J}!}0?PM+YTjcL zRszzLuGW`EOXjx=Q|;uonB3 zrXd#YajJMOnE5fdCcOjJ+~Y-Phu#|aSJ`@Pv<%jZ&A%z@{P7!>P6NhIn}q_WtBy{7 z&Q0U@n#V1K&hj(Hw$O6CA3E!v%0GTi@>iJrd#@y)Gl#&gXwLLmxHl-h5@E1|H z{o~4`6tCuQ{Z;I&`+TLmrTbL*2bX%BZk4aHJzW>3AzqbwbeoFbROm&AO)+gN)@*8@ zF6eFh?&|$;y*=Vpw7q#aU>bf%A&p@?8}sdf@wR3Lpasln2y5j#O^L7iJjb;r=DcN%+Z=D8yMk1k} zBv`LzimxDFpWTgX*UrX+RaTQHp;t9KzbW1{UgwI1)oh>Wmtg4|4p$v#Q>mbuvyT?& zF{1BbU8~*}xZVguJc43;G{uQkc+GHe_6_s~gu?;qsq?_e2 z7qIRY`Ty52!3pm6F8A|Si2t6YSNdMJ{S)-V$9uc-X{C6Brr{4{n;#Wz+*}t)(U`T2s1-4~v!br0~0A!xhgr@LQg2 zFxRzgO~u$?XWiZO`6={C$aTraO~II}Qhzzs{$GgR_NL7}Uae)z;a*3)n5p#_foAw9 zZ*H}2m&XO&4Qk~wZC1&~%Qy{}h4SUVwvw*$qu7MDeriL!8>Zp;*yBa$>_v1B(naw1 zyZQw#3h5&K+k)QH?{}ZuB%9@N9?#}RsjYni-2;@3rgIMHimwH4OHKUa-4{12Oc3SA zptZ0Y3tc&#*vL{{2~#aVL;vOM}h+@IL(3(sF4U0#;I zt|NIlEPub~4*R8b)H)1g6E50QGae&*uz{Vrj>{iVi#=KY@h(bdb(PG5LxeO81mn_U zmp`Dk!(7l0hq3jrN{m28vr?DBuYmJ;k<-$4=tR5u3)ddB-N0fB?%@xE9wdSdrRe&X!;%t%i71?({M*=462lBRIXVu(=e?sRs z{60uekESiD;M9})4Ga8j6~XyUoV(gTkFnti)uJw7{tKA|dQ3QghYSfKOy<$%xNf!= zwZVpjafc~O;huV&2<|tzLtXpWn+8`dlgKM#sCd~Ejqu~vW2?ceKt8-eDn5U$WNu(_ z{n@)3?(xUFCbDGDi_!0@WpYfc%g?C(IUu3U(V9R+6>*B(3<>ns{j2U*%vXNyaV2|u z@tL>YjQ^kBW1Xz17V}aOVlCgZ) zPqPWi;Xc^jp3Rz`f%(n;XSm1W?p{IH ztKEpYbL1WqgL_t~$wQBjRWChRKfxcz-a|A%RT?BVL24`165SaT7E9D1TC)8h`igOd zsgh|B8x9RmmI8)M_A&&zOJP7y(VlLbEgr66&E9U2kH#%~>n`K`7tSP(1-yNch^$wl z-~Zlr$T9;?YUbLpEex@f4H&_axRJYZI5 zi=sPl^ViBB?-y*~B0U*A-@ux$;=P3}lbNgBM%uF1*}$gq?ShAGX?&(Metuz^(b*Pt z7>cb*P~T8_%r-tr)39=no>6Dhy2oe={|J{CJeWMIo@y$s(C<)Ltw)!IwQz1-i|dWL zlCV)h&tHRPj=Fw{HH%7@@IAF@!uzyUj}a$~R~-b@hWJ>!F-#!%ujqI-D+saVMbFeA z8n!7sGP$3gJBV1olD7>#>peMGQF)rHT&A^m#f#dW{8qDx^`S7xCOJQ9J(8wOdY(w< zFEo4l9Co#j->imi2t#k#E=%q*($zby*V>B>5R!(&{3YzsU(|l6$+swi)7azdd4#Ns z)nd{!<=g9|3av|FR^h&`9-CWZ;NvTXLi)_b-b_0glU zIntR(?b+ckMRKFjvT2`$AKDn(vjogE|T+TzhG*ExSJVaZOFZgnvzqS?S zA8*mFH)`xgHFx2catS@?PZ4RlFl3W25$X5@*3dHDRLhvH!a+d_3u4Ne=~gJbXEEWU&JjrI}>EP-!?M*XICrKP!=dZdscd6^uxQ) z;v?fL>?oa9iVtZTF1Q<98$CqX*n1?U){Raq!X9p*ZcPovLxH#sRIBr=q{ee{YpC=9 z(sfCV9+VVEJ_6Mco6y6GTNqCjBjdHLBWh(D9-?dPFt!@JRH^wy+Jop0j`JI~Y=R^w zrlaraBtFi6o8QK=2-!eeFKyIkS(b-5SbDK?vE=NrnrZYiEKEGcowqm%6~bc&_Fi0 zfo4lMp08BvXYe#dpa%R}3R7nXc6ty|Fzh{R=;7Ma3VO({-6hbI6v6rHMNg}I*ihhO zvN9iyx8o{AaO_#MX7u8G!70H!e`Q$QL%a&1$vvc|z^YeGQ`$nm?d%EYc%!b?!vpYl z`^NdL(0+VWTd$K@3wyX1D#fO}LJz6of_%57V8bB~1T-mm0Mg+lT8^V5ofbJQL#?_; zf)mnFAQCRy`oJ5TlB`Ee;Mw*^Hf(hw%l#NSQzjbSZCxo*%PdC-$nbgbqx+0Ak1J`c zI==z=bfI4SDfMkgx5HM)!$|7D*+h`|*z_xEfyJ=C3~`T4et@o=1j_T7)_d(#Dn-8I zGbicpMz^)YC>p$Eotc7`E=-Ttx;E6tK8@!UbVhtapd?B&P*B%d=?J|))yRG>4db;Q zFoO2ZZ!8!x`Cq_`i3UG^tz@o>alAASeE2CTj~hztRmP~ta1DEKdHz~ry~wK3%6Jl( z|3?1TMcmRpexnBt4ST4N={*f|Ro|*tGwKI8|4`B=4|PeR!K|RZJWEodUtU$bFbx^c zO8gp^uzsSW4%2$VSG<8@H`Ot9qieV~D-=?5>L0%u*Dm*z_n; zQ0pNHjcTU&1WK3IK`@sUo5}@Bwcx<76!TRua2Yju=xjxum9ksI3Vl09Z+=PPvRBVr zYFN1zuV%39{u*wYhY1>t;7TfBG?prllHpsQ>;TT8r3H7TmCH?>x#K{0{2 zrZ$u@biCO3Y56nWk_H>d5`|1nEAtl?Bh23@iOV0nWKlDJ4MOu*LvUajNP7|n$ktV8 zy8`~SSQqw-BJ^48R|u~diBlH@enm39jHx&+&AuYr(&((TBcNG~%UUGdFVZjVM9p}6 zVIS}8!3Oq;%N>%+5b0Tlk?;-ArX$@gtzX)S+ENPa-aco%NOGBF8Wx#Pnyz_cHU{CHaKvogQPs}kT>Fp+nV z$j0a~5=<}z8Zc1nNl%za9U8JB>`96vC=T%!9Z* zbPBhcpob>=MteAu>-#8-EWs3~M`j_h!ysPA>U^6e(AkxGFs5J~pjX$gg-)!rZghwX{Qc{zX(YBK766ro}0=Z+?~)v4>idiUUQ|`OteBb(yHYq z*Fin_o6MW}erovpu>K#^6+IP*D~xsXthd-*7@xjrWow7A)zH3Cq7{8}q{Ok(Ke;>C z9p`l_4FBgwd|jSqO=n@pDRw%L-V71~jX(lXA^5|5@FV5E@H#klnzp;MKTcxr`hA~w z**P>#lT5!J=0DcreImuMM{>`pw;Pq`q=LIDxmzac=WhyawYNK^I((yPWgFG!{uYbJ z^{h`fj7~)K9tvY5>LVmC*&UVh>)*$P3XqqUj=>bSSA`dtDwU#|KQffr91SZ_(5H`* zm}qy@YHt_t1yX_HlR&v+oO+|iE^H@TLuYGOTXhAlJ0^LMx6{CDvNhe;=SLh1erY!R zKzIDQjO6>{_}-j;Xzoiou*O#V0!w$p~`M7%{MM&A+ZTxdPeOJDmYe)qqt5g;*dW`DRuqF;YX=%p; zD-WxG1ZvvZN2C@@VXNg%#@=qB_@pE%Tf63?TG`lJR=8=t__8Lv`6^zI8s_py|D%W;$RC7}yiCO(3Sp=lJt{%cDcKyx#dk zOVdl2IhRGvaz#x7(Gjt%zLB{A18FA|JpXh2PI|Oj8v3Tfk z0r!B^`U+`Nq9+TXe&GEkFA!_7%%Rw{Kpll-6G?9SkjNbM(LOQ%>J9zMCQJT4|4OYZ znYN8$%Kp3D{xD)-%kn30W46CgbF|`H=%GKxd;OxZL>bqE+WfK3?#e6CTZ9xRo_n26 zmJ#mepqc?YeNrd9h(#j&wniBz7Fz@3&OfO&jgG&aT;pqfxk+MuC07iObav6T)zj@ zyx8+fPvk9iSjiQfpwQ{Yd{*Jh=I}eFe`@I-6%u%*%lXa(+AF8mcGioFMKy2=Up6}Q zDPGQRM4a~XXDYzngIb3RRB{jKp0CZ*@(W*iou*P!f5POLuYBF7ej;ab`4u*;n-#qPSj~R(szb{@R|f1EqudG{j0Tn9z9`YvlpWf7=4>XRDyA z*k-sc^x(F0%J-r&FLj$_iz?IuSB>pJee5(;icR?$=%K+5-QCnfs%gdd%8#+uYI+j% zVW~m)tXj~+`?|KfF050$>h9qxx-aIm&YQb1f9~ebtBSwQ^{&+#>|k5FF7Wan&->OY z`Ri@F&C~D$757BgLVk*vo7Km~FF|`}Xth^Cx|R>!P>L)a#3s;TXZ~#2tU_p$JHEfe z*j9WlwmG$7%j)vMUdBI^SbuD9|^Qwnf^% z1Vfp-?0*V6@^U_r&wt||D^^tN3(z&Bbmqf)hYPq3d3CkELMnu^5_M3yLfx{$1hEv0 z>!%D_{G=vZYU|+ru=0`AIZ>+?ip$HT8m@imQM)~E{#Av}E_gYwy8RyFi**H;`_kuj zVt{)Z$V56DiyOO8ey7gJfrgt(wZqMyN|RMHKjb~_G0LI9GWq zSOVV-@pZ%HB`pf?EFcG1@5M%J)}(BXR<+%o}o@S_s1@4C`pcyCi|hhe85qiVSIt>qC;aOv^xDeOgF%O{wy90FtT`1YkulQ zD)XoNI>;ZY{GvMR-}II55;HoXwx||MUr!fnicmalKzA+;%?$gxmzKgwfkcr1-rthW zqs67W#IS?gm=@0NYM^;Nm3nYDS^s#evE^xaD#iL(lu8c`x?APE;F6k|QCk!JsLO4i zKl^$n*oY1Z@ZR9MtHO4&+dzlSs(QCwO&GUKBc7%CFPmx)C#AIo^;p~#09WWqpTwP7 zzOVAM+a@(pFUzc%AIB~Cws8a8t|ZK1DY9}}LM zG}$MoZB-_$aAKh^?xGh*>7FIxQ^4XE%e7#sfQYAc25Lfu~PT} ztS81=nilNgHg>oQ?%A$3-Q^M5^aMBPpWvIwe}dnSw{ZgBraPlfm3g0h9FM)(R?NL= z68MHUD3`J=XLMi5x<5Zv!?>#G32xrk0({Qh_Q5kY*IR2Y?8orQzY7c|{YeQT9k0yO4JnTQ2O`%rEN;njV zTgdJnR5e_(o7=tD&yTncdW_UmDcr=^OxnY3>~Iy@3BJm=F*W==)&oGzp-nd@;s>rq z@^uot6L9tXHdk1=5OUo^XRj@5ZV7GYGd*F+hm2Y zbUOV8K1s#p3#mK1PB}zVO2IDFwdgR1zXujt+U1vlh4f5~e?WxbC5ajjktpAK(*dD~ z31p7N*|9hj@RxHP&~sUS`%cKQX`Q4WFXu!MJWS=6fjQ3~YQVqkr)7C}iy+N#C$mhd zM(lD{*I(qVY&PNDl1|Geke~9v*s{Sk@uap?!0D<@(CWxG@GNuL*a+IHMuMyQ**D8CG;me>PpmiqEpc^!x`>|kxFja@Hx`6W99 zv8dDXHL_3-?8T-bGQ>Uw86lOe%PvY7btWTAUL^bkOumKOCM3yw1=xIx)ZT0y$^Aq+ zzKMDaE>jv=AO`lI4?~w{^O8x>4Bf&V@iQxphjPyh=Q z_i$Bd?Q$;8-Hzw$@sQwPkHiBtKkO&+F!VTo6xtFBPp&N9GFOKYckmv2_v%WD=m6rqPttwXmV z*uj4i)iHh_Ov86#4-2>(^Z=63WXA%V!Z?3i&P(`V0Cqh)clO=-Tp(66#TR&i$)oE| zCV-Z{(?*P@!NPnw84O6A|5&_EEU!P5@z?dfc09K7Dn`rqW_mIW3KJ6S!IO#5($xj3 zT+ULHD=l?b;c-s|-5ulwE+NsW?D!ggEEW$05>9Fk6`ie2NhecW;0a0KhWnkQEbn%#_L|!svLLks$qTvsXLux2V2OR`dMp`R@h)cnwaSpMw<(yC3l74f!$w?X(JY zl~%c9JbvZzY%y-mrvkt%M*W#{fToAE6cJ4_eHwv z`j6V{>e_s9G;TQ2cm2&DS6ym#4z;Vk>RocWK@7SJZ84!zy7Eoj*uyb(Z`|?%@p`kI z#4)K)L)_5(oB8hr|F#Aexp!^iO9xI>bbi!=VSPEq{o7L8p%d2Jp)&=peg1%ETW1p#D;ZeBJ2n5HR8n*X3hx zDw(Uklc~f=jUHju;b>#WSLP9V9E%%)%X!?-e{sP^%0JITQwEx3Am3TtK<{NHKVKlX z`SVKZ5jz8N#e!hSY$9+616VN31Y(2cfsX+vT=+!dZfybMz#?h`{_zAXL%v& zE#K@5#B9*_IKf!SV`W~@n@1LUta?z?cOAE>2X`a#%++5nXP1u)B|h@YS%7}x5^#Kj zm@VT^J0j9ITb!PcF5fJ*II@zAKnBzTcs8!67*=pgCE2X|-0-l-3mUb+wSS$=AEcf{ z&$cz=G)U^96v=x-pu7_Du)}I~An)1?J+KWfJ+X=&BAT!R4$n$&)j}H=Iq`PZ74y)c z+9uxeDm}O>PwI_T;Y%F>51|ZtLa&jos_p^oU`uMT6h!f$9@VEosRvge6}acqvYaYm z#I@`B&fUD#Pnv95=dEwYSM*n|7Ry*tWRa!z(4m@PccMmZRh&PN!Iz1o{6O_#9jJMh z;iqco3Z$`+xT~Y*PqH4OgVPSnoPuf(W5iVf@44H+9lwfC7^VVu3!4GsLTzbFk5{s} zJD2ko+-h`?u?f=%51?OBw09*m`Ur0;WXZP#ETK`BDCd}#&^@pIN5cF^3>^eh^N*NK z!jk~2?+O5075PLhV{-@P^|5E~>H#8KgjC!RjL~k5_6RXA*xp8LHF$+63gK$VyX}Tp z+#ECUN955}@=t|I{i~e&HPXxT2RlY|Z#IAl+99V(Wx5-LG}Yxy|3qP584q%&=y&K@ z%>)Acm#JXhVm{w2{p>jT2_0KrvSH9S6(~D(>U~6c+b&Gg*Pt__e@`QWaib&{(l9Y3 zQFy}qI^LXewB(mFb#}zdjs9w0TWEcVwi{$57?x>pcFvK)x8xBJ1}c< zEF(sINY^j~REp1mM@4;ND*qT5ieu-ou*dPbJD{sbCrw`q`Rg+Z&)*8k&LtbTx1!;J zX?SGww|3}eGR7}x7;T&imKg-QP=`*Oc7DCU5@|<7~7v{hOt)xbf&cz3xLJ(U80h%y5E8{z~FlTs=o%FUR&LZy25& zjswd`dPB%34~G0Sgl<^C1VY|Kj+zZr@Vdqxibu0usQlH8&#a$^M2aldS02XEWaz0` zmfieqnE&XH9OjSO;aQWYX@gvgR5am6VC5fI^R~=1*weC#@0J8&-WVPm^ynn@&2!jn57fHoQvn1)J7ZGCmlO~{7cO$ihF`&IFFFN*dIHu?sPbq#~y3 zJMSqle~`K#lvi{Zv*#NcmO#pr;|{BOv|=DOu=SLPf+@i3T>|z?osMYaETh#l!N@-U zMJ>#qvI>#Kuv#xRLSlGw=naLV_p(f$B3Un*kXCI(oAsTGCv>77*<+`L2x<|uP~Tc4 zxrgG;6!KW9!&pvg^Y2JLeUejDzFp4pEM?4t-mE|7`G$P6hb%Ai=QMv(Wj7qd2$5*o z`Qc!pLraNX7`gV)LPyQ!g_A>vY%Zx8bu4beebRi>Jj6n)MfB*%xt9PFB=-4lKu*U% zG4QYuxm<58}v|YEI{26k$D@tH$(L&SZU}1{ zVo$urJ-mQtSA`y&&>rRw2&V1C8$tf%Z;QoyEo%5d^c8Q>1iNaX&8Ls_88q>CL6C6JdlZ`k!%DxMlfSO=sf_xP^v_Ki9AYhr}Jru z^m{y&!m2pJKGOPs1;ZB@*u5ywNuh*QilUILK;U^;-==cP9C@bimU>pedZLDXp&`rs zF}Q4(v+QBRYi=&LI2eB<$fvqP=U7Z<#e>)+QLCKjs5chJL^Q1g=@N}Th{nN@csL{^ zh$P7khk+&>awGWJ5f43tQE)`a5cAFCW*rH&m^^#6zyl_hEvqLDhh|M+G*|%F>&LVUGf>Vk~a7*Dr2@kp2xKBLi<!gL zCcIVjw({k?9dYgY%&*1yv)l)sJm2d1K32Q@5;Sk^m1K{k&W>y({_U7xVq!r ztZx1bkBlPX$y>5_AU&~6!!rB4H(_yo?z~#w1@?9ks1l5rN5^o2NRBMQs7Xx2L>@@= z4L(Yj^FHx(yfNup! z&L5<^l!joAgtC+3n-w)`f!wi}ig_||om{bwpyo+>aAHZU(KpK`haI`$frN?Qc*211 zORWdCC^pKn^c`n{tUMd0p|$yMW&LQGtj2>t{Vdfs@t+7=6qA=$G;9_71b+TFI*C_? zVF8a??4iG!#|W#0X2Oh)njx{Cl_i*k!Lh2Z)k8EwUsaFA-Cekxg;WzRiGd|_@a|zG z*7E6x7mqRpvqL6rJ%|Rg0QV0hN1kZ@3w?tl5nZQbZ*RTztSrH>@zbh0usBv!rwHIsR>9$NuTjd2}E!Nre zu%-1JN|p8&<%x?V?1@$Iawb29`GfuP%Xsvaj3u5wy%;|?e@-?1V57-+vW^s30#`8X zZ1G?kyg_<$uEA{6F^V30V;8yyCDPO_bNA&et2Tewi49!yz8Bq!ZI!mIltwiS1}oM+ z-je)vN2Z7O#DO0H{X&>MKd6r1IG6IxQp=;+j1_BiZ%-#M6PBS7MzT}|Dta4@DMa7m z#C%IUEpb!6ZnP-+vqsHi-wpj?oPP_9kp|G_B6}q%EtrLNV2V#tVWE?i06O*&4(!u0 zjtiI-$%y!$m-$1K@5&p!Z6rIE-@@1;L=Yy4EPGJXmnM~a@Cz?6DK0>lEkspD>d~^Z zs)h_%=8wvB5@)z8s{#CO5)+uy)xgm@aryjp?UwU4*%fLpm~O&4R~*q z$J>kW`1QcYjCC~jy6^*;;=pnsy_`i&8))?9Ohf(ryR5w>0mm9yiv-K^`n=Nh+O|4> z6PIs&E2(<03u&>%Cp76;5^$m(e-Os312x|74%8yH>X#5LOKg?@g63i)9

    qAibF4uif>G1rfYc_As( zOrhg#EUT0ebGdXZ)2R@1vZ?!;3b~3}jX3&`RFmY6B_TR7+4rS$oj6)A!FV4owT%gE zuQ?=J%RkRj#m+#TUQ@E{OryRayQqirP3uOtCZuYC)0Ai`D~*wcG(6l&hVA9C7IGyNI8^*HbS2uVQ%B#z&SNIF4oS zx*+3>eVcXmlcQjSX%p~)pOp5Hvoal_C;OPxD4KyOS3%2}#>j3nvX=p7v$;gaUO z@*SQ>GFCJgR*Iu{*@C1>la_+$Q1SZQj!D}njBVYR?vR4WJxX}=`jz=y;QR=+Z;Gj7 zzjN%8wKp|nYVMtL0=+NMzS)9!#TPi$CsI2OxrL4#$DXztQF9CDTouqOHNuG6kfb8% z`niZrhZmQzSdnoJ~sRIL+9TyOGzH66T?kk;S2z=+YZ+L%=eY26%O}%11n}VCtxO;Le z)j;SUKmFT@x%f>#3r_|0E4A!H&D!E^9d5xhUCwgcLeY`xd+D(XXDoy>I+%lK54(=P zB5^e*IwYhpTv00T$}Z6RrP{k|u>$Wt)V>WVp$|ykZ^$)&LyksIk#`|eRPQW_9 za%IHQ4OtGc!=97a@vh8UAI;gu@5BldOLr70-MO?*4n_WSN{h?_`4g=lch-(PB>oS%qMM$T%C#H9ylVPnv zk{`F`K|di^NE7zklCNv_!j6f3&!E9Q;tD3IVkuZha&ydcRFRCv8lZ7ZD@v!m8L$Jz$y%!$)k3(LsZPg?)HNrHRrpFc+ z(kRZwGsmUJGhj?-qs~e4n2H^B96kebtJTZ zfsX0Hd*V6gX}YIW>22C~K}yCv`g1~G_$;6d?a$P_(q+sVVDIRPj?Imns+@dF*3}8) z{#1SPzgrydHvhDj5uNcV0XKne*J_-{m;?PI-X_Pj8g~T#$V?MUT%60mEmH?NOGu7s zMkzE+%x|}M(j>LE#?Z5Lmc*^vmt*6E>Dn6cWcl?9A2*;5=VGkA{Uj>PI+Hr$wv>28 zJVVrIyDufFmlNu3%d{!n-?%z?-iDa=hu)aw_?6BU-?T)>zXR{a$f?tNaBltd=xDv* zGdK3UD~lOByt}iW&Hkd}5vGtAwg#+FsY`Of4v&2oQD zb7T^E&`-Fk+Y`05($kT9#$}BHX&26tRH|f$5cTlD)3&%2Ypvi+=HAk0BH6_hYN;}G+<>$v4D+&Gq|;dGF5um-t>2XD-530<~Lj@vk7w4TT0+dLcTT6x}; zv(#6$j)f()zR6G*@R8R$cF3$rMoznk`K%-VN14VMYpWbt@5&4x%4wp0@+e2+3GL)3 z*^gU^kUGjPrG1m8P~(WmHP?D2=Ykf`B=>I%B1!eR#B%F$Pp=^z9UGZs9Y@myPK(uN zc@NUVXVK9z4ddlpr0=C3zftTB4sx?Lm`MuH@filQ7hqd0#}u*OfDW~$tsi5l$Vshn zPs^P!PcP;=WYe-6+G*)@NR`Rj8y>`YfbLTgIzOfwwLdBxg%oSw7}3T36p@?6(cS{4 z>GUiYr)T#sy;|dt=WFEWBmi4Rm%9)NW2TkrU$R3 z!qNPRJXKaMO)>KRsYZ!S-^)wpHvI0UV{g6Y2=jbQjPTi%j{f(YVhNf|%~ntwEyH}U zK)Iz#s$QXg`Mj0(F13XtT8oe8sBjOJ(Kbqsre&8`7-hYRI^U3Fzm`x2Bxh9T-A9yf zZmheI#tN;W+bZNhOSM$jW6i1ITO5%N#zf8B40RZU_7)GO4(#<^pkBtI)ZTr8?qo-W zZxxe2E#n;F8ODkjWv<+7E5UfnKZ{VW*iMJF%c;N6F}>G&(Ej7tbILcl?G~c0W16Ky zkUdGHU|V-p|KS~#rPN?Mrsd<*Y~Q8BdoAZ#FFTz%9qrLE|IT?!HQyh#-U+vCtlzcj}s!-X!orV6lyz=gA^qk_Ios5G#gTNRJkM1AW!|-M5Me+1i`k0{)8UrEgM zZs~m@wT0?^PWcyv?0@`jTgnM}*KHgUOWWCB)or1qN^7Q;`IxA^kY>~&CVan-Q>hC3 zz5g3-P7Mxfgw&5qw1z0|Mh<#Hb@{)wEukDN4dY~VB-KIjs^Uc(i zszh7OoeuhmmO5ox>wn3uo#z|YmmRm$mCI$9j-fMyZOtz{tvs7ttdh?kMmv)0c+a)E z51mvz*Br^tKjW-Xzf*^yZPw9t=CcW{>`)OkawGsgK51B2i;Pkhlw;*EH{_( zjB;fP>5^)Er>WvrP5D+(tx8L_Iv+0|`ex#E^zhx;;sA&FU6y#fvxaC{7^x?GdQNfV zZNHY*8~$)){FgmL>${CZ@8%TlB@##BEOy+s920)`)b_}C^II??Xdyl8f8XXqE&pJa zIe(Q8xURs%o;j!XP4o?PB~$874si_GS?Eunt9+Y2gZ!R&4-zS-#v!hBO0!L!-db%T zQjoEyt2O9#pfiexmYCC=@@L8nuWV zS#L8vUUPa0y_f2<$v4*+&&|kl|8vMmI(RovTn~(Fdhp(o+VXxn4o6G#?X?_ZO2;du zS&e+8iOHWv+@@p8VIUq8y=>I4`o7g~H^Dx@O+(q>9R3p38PSy*S0rM$0UcAM&lR<$+I+)aj+bf7 ze)%5sCwb?Z-zW|Q@vGZpVtY2b>#I14Gx0z~uAsirZvC33BtWvjIJ1urasR7$1cMNI zA@dzSXe{wReM5z7%v!9vdY7VY(wt$mv4tu9Ph{rVp(DGJZRJ?5ZrvYQHYF^_Qq?nh zZw@KN^^kVROh-%gFXy9Fw=+^Y^M^wH!5o{~pYG+1)@Wjf$2Z@z^Qj{O$U3*|QjK1Y zE4s3j*?BGcJJ7C8Eu72rE>2$aY-QGYzoz3}{PJye{(`ZidmH%hT;9`JaZPI(yI1Fo z`YDyMZ0y-j<(tIPL$Kt#Y{<;Vbf#5(8#iou>&89SR5ANgfzsaSibsgjn&q2R!Lt%x zjbjSZGQ5vGg;)4jxl`nukok?iUdx78*gUq8K(Ta^V-ohBQW^S9-w-r~_a;-!Z$L+m z)R>tjr=oSMj-RwQxj_AiD~-|p)Eyn=dp{o$9rsK5B3oS15!YHrQbt{wq@xOO|I-^# z6Mp)O)!W&!1x|gUj_X|s0y7^w}a(g0BPhvs}qG&=(vtdPmt0K3*mdp*!4ze3NhX?t)bDKDzkEZ=qMy zU-17rUH3C%oMacRi8A{+bOuZ7SnHgQ-Rz;e3AY}4bG3J}yWP`I%tMQ-sB?jtCzY<5 z)`-|@nd5O)UAdokFy?TsgRAXp* zr#tsoC~=mrZFx?KyN;6MeRZIa!@e`kj@@u=lmu5%`&cmzq@6$=c-D2UsaV<7rIS|n zTr2V9c+Jsv#S(9hws}73u{@-|nVMpMy1(*Gtp97OfLY^-6n~*M)}fNBS5Igho%cW6 z-~0dHeRU6%7B#}F_TGE8_THn!XwBM$i0##3?-go9t=QCvJzATXF=8fF#0XNG5WYU& zKj8Vxxt-@Z*L9u8+P#Md z#pfXB${BXIQN}iLRFc1f74p$wKj_DbWN{CJOwsTN_L8haBXXy{5$-WcEjei%V1|+w zUlh*FLx49Xs9TO4zHb#a&HoJP%1KMj#-ebI&MPL~HP~UPk@iZs$$^HiUe!AYVe_}* zhF{jA`-AH`(Q=__1t1wONo6V0kRWEv){RU-tb!=2FI;*!QD0SWXrz;f+bdON?2&|3 z&YIq=7Tn(#=>A7GD&a(@=PN2#F^YgqNBP&`vf|fQnu;XR@f#h_q57wp|7Plx#lid9 zw;zx?O0-UA4u2Ag3) zVUJIG^TWvw7M(BN%f+{}|8rdvp9_f%(S_+}(;BWRSQWw_p;?M7UDu~7e~dlXeMoAj zT{vFUHEc<;Rgn?wHFM6)CJZ;N<&#Xyy%M;LCstbxd6>=&$n5N=@~<8qsxI71ObgXw zzxbWUozC>aO201Qeae{C;4Axk$<4+~EpKx5+XBqPzKN*CIl{mu4tHdAA%V_hI5`3u zovu4{9WQF}XYn#>hC9L|0nL$j7B!YxQmyS0p4}b|GM~SAG2C4|k4B@jS+G{l z3-d$cLl>=|jZdypS*szpQiP|3fnz2Z#sSv(l=!NZU!gP$-{+2yS%?QcTz%7pJ?Dh#PeL4rmeAtr|p(F4vCV=rH` zZ=!#mdspxwtX^zSbk`Pj#32%0>4QJsZ|%=3jhmqnw>8~${#NSnf6E}sHTNkf1{xZW z9stOzc?o)l`_~Iut!|eHHILbwkn&%b?C3qI?rYt(wzOXR5I-LL#rLhFsF4v8I`XJU z)_B*tJiA-6-q5^ak)?S{e$X$jNsJ1XW0E^z3@C>`a!IL3|J&54puGM1zM$zc1^A%J z<6;r?yKT`9y%Nsc-0r7IyaY@0WB(po|5^ZQ#_Q>&t^evSO;1tnunnnHV%{N@LtLpq zWUfYMb59cM3eg$td5l}b5A z;eZi;-(}j8=zl0=KxV2Q^CozpH65SuX@fX(RXzMEJV;;T#6p@32VM-s7`b;!kPo@&$TTk{oTz`|mtbG5oPoUOiK8(^P#~1M zNhm`)-V&RzDI>(6W7Gr5?xc3zs#V>2?~sD#Jsql_$~D;R7OCf2f>p4{tR*&A59Bk6 zyFwBk9>`Ot$dpR4g&hq+9&h?#xZTHhoS9w*B*A7E&?DZw2qvFlp z=RqbJ)1THhn3!8QmzPuwf3)B?bmwdz8%|4HX7;on{G-3(CDYlbZSe$HBjtMKzky%! zTQxjzc{hTn8(ZkVrfJj8xY}Q;WI{ghb3fg2)ulb#6(R%9Nb0vrfX$BDq-K7u-fJVH z>-2Epry$0C>^#y^8qOT7x`;moBmt~s+hj&0Kul8D`k>zEdRn?_==8{lgUPa9lN8N* zNUnKnNDLEmC_lq*ZiWExop2UK7*T&NR(iGY-{C{rm1fQkU)Lo2d8f{oj=AL zf~$PyK=>oFst)ythVg81`Qpx6koTOO{$_S!l4k8o@C1eLx6A%>S$U=%gAa1yP_BhP!GsjjZa(9z8vQvobRpAXL!R{A02epB5~vP z_NF<3s0?Xn7r<)y3U!1z7|ONSFEwtgfKwR>3Ut%s%R_|NHn*Qq0lImad=u8=%X~&; z)Qca5)B#+F*;EnuZt@~O`&chI!;Q@PL=C|LfvS=f<>|~79ZYZ(aUwxa{w;H$QtPvl z{uvQQ=Yy_!dImusHu(1fK~pVV1AM;rJR12DH50=5JCmx3F=AY&W_VXucl%yDJ|5&& zj5&92%{=RO#U63SZ2an=BK7w$ld?XviMwU`HI8cPZx*VK>4gJJK3Y(hDlQbwrc{*P z1u92YK=K{pNCo{9ioo)8?J}GXZF6~<{g|#W^|QG@0S0ABAHU%^P52WfQR>H)BVi*) zo+(J%Yq+Ntb<#M?z6*S~16i_&6G7-y2-lT-Shwe!dMa*g`VBe;=2*>qMyNK({?4(T z#my7y#hW3q@pvQAZk8Oe>nx)VVlnF->YDrdwcr_yI%Gw2NcF$-&az) zdPh998=4skHVpl$oUNXc$P@Wa;46JIz{R@l+~0>7NNCVxyC8m{AQ3uKkh-()daI;q zasS-7t7lsJ3j5qS+l$%f@eR^jc3~}sYS}R9nl&W*M+v0rkkU~&wfoWKU!~eE!}bmw zn4)vlrqQ1<7(Q9Aij#}UTbmcqs&>p@m&rdGMnjy&&}B>B+{Vul2_=GH!bY(;%D-&L zo+?xy>dFpv6~HePb@|u|lxk<`|C-mW{Pz-Ad}8h{?ws;dGA6t zCeXDi**3Lf{6ppp?{jCIp($3$nnF_C_tnl_aUc>Uv#g*^zV|H}=Vvc<+mB#d$qAhz z)N;VzdzyZ}yEz7$;Lx1FzDu2?V29+sHu3weJ%l4O zS+pvBvo%bosd{)q3u541{uFoeT1VK7 zrzDlcpS_M3Mt)HZKP1R^*C=-hGl}H)9BZ{`N3~A^^KbD+{o;_%VOtp`*-liJGRO=_ zAb@v4buptHJcJf)El~;#3uQ_(F)n6*v2#((-QP`9(>?KGR(%INT9i1fnd@o<;|D>I7mvB#2CA%xQO$4ZLhJJ)nW zT_h`vP&Zx&eVgF%6=0-Tcq+PfmD9t}bCq9!E^kn6Tzij2H$u>W>2s%n`fn_ZywpL^ z@^~?j15Fm|94!|hN^`Skqh+%(-IE-ae<%Dmmmgb3TN&c`R&3_+sQ43oLg8-jzM+puoQk(B=1|Eo418Vi|-m@$U2zG)cTeSAsUoKBsK0>j~1Q7 z%<6}^nZi3l7^Q*Q<8)L(@d-ht0>#kL*6H$0uJXfmkNs<2;5z!>4@ves@kvbT##n2_ z%*s;8DUKl&au<>2ezvPX?eomdmoV#COu5HkypDGnPlHV7vL-%as1yi8&z}V-5}O6= zpvw=!uZ#1qEta%~vT@GRv}3nmqHay_+Vo-U)i0i8Tkx{#TJXxB%=z;n{UIM~u%r!2TJeAs>M?SyXz5}2 z1%>SwPC~{b2jo5Yi9xYfE=*~DS5b3n@XXrYqsQCp`Go_0Adjj*P7U$+ zQOyD&HCcxRIP}D2jbS=-tnr`yT>F>#tE_)=j*ko2D59^aPbL{PXQxz)Jff^DHhbU_ z^&ZC;)gDiWa-N*aJ3#wOt!xSqnahl}{KOaX;cvTgjp}F5rlj@CfJU{t7^hEufwjqE zH)_0|qN{J)!&AExoxOIQCUnwDZUZW0r)KI2TkdrX*4=U7G9{?B8bJNBCfL<5bCpW^ z^pf;pDnE?6K)m4{qONP)C}q>=LrC+MZT)e@+InyT701PU9do95Lwc19uPRc>4Fv+K zJj@qbz4~uP2|BGBhpnxX_JhR`Rhw#%ljP^CqhAzohlNR+NrK(7Eh8r zT#f~D-!}B!ddpOCPRGUBEPFXb%Q3<$;!%JOy{;&6Iz)@W+i)g%9RHxAbzoUP@Ob}P zES{_Vdx!L~;b%@{7&!%t8hxrEYR*r2Q1>9=K!`55rD}2CKmJ)h(b*GyIRMF$WJzkO%N%4L zb8mD=;MOXPDOlo06d)(RS&1mDZCD4TM-yl^?ubWmJMx1Za4y{HJZlVFy@iTnoY;H2 zP(nEbhB%4M){mo-kMDy0i)o;oUTghUC?FGeZB;yQV0_7Etfif2az~Nn=3SMA;Fmu- z&NE}_f54Apf{PBpYQD#xf`D;d90l^BP5yUR$k7^HlByuF0p@XArKPY&F(OTcX3g53 zA4jAHV%N75H)i%Q9j7!$*N>BVy=JA-CSdy7J~yn)H{Rx~=bV+=XNKK``VbUxFg0+roE$>(v!0$3|`-}d~Q(YEyKl$Rjd0uXKT0)6n2At(s z_6E_F!|9yEEG^P|X;BcBCLv^6*vK49Vi>vl0fe+JH7<=$l6a7u9h@8mgQW|> zCLY}&UzHosP1I3#BI{TmqO*WtdlWJ=XeBD@QI=U&FB#uLud4FT&MCueZ<$zQwOE%VQLmz4IY)DzaA_2UG1l2igyOF zpIp9e-Mt&`{de0|4)fSk=H&K+mxb@T6JlMJUM&v>vy2)@dH{Yjd2Vw}@#O%& zVb6cIWfL@0iyRc!#i9Owj-tcWkd0;Os|ZCd#xGNEHEWydnmGEN+@crN(u))LSRBt6 z)8Q({hwnvI4FwISBrhM^J{}BA@Sz#`Ru>EzKWRJQOg~YIGS_r7Fm|VeyjK$MjW&~8 z0~U=r9Ocipu-qBc_GSkWWssgBd5tO&G@Fet_ySc4c?hQa*L0*oMqYY>x5TWituO{o_JA1fK0QX$1!Bn@eGTDEz}rUx;o5@vKuEmT3%gcW$|?yG#OE66_v&_(P}t zOQ14F9^aEfl0^1~oIWdx{Yhd2uKko9b;NWYh{TO5LS3l3xM%;p-ROu?(M?Sq>43uJ zw2K+$%8(g_FOLa1iRLA}CQ$QL*<_?#;G-nlrbV|5)FL#^xMSQUs-o1Z@JKL6foE7v zyQpj_=L_gtovPK%OMJ7yy9P(*q@dd(i)y5KejozKbQK`qs}RU*$B#jzY=~*#_UQK-FIZQ^#o(w8Ou~UbZPw4E7F?gv$)DWKjVApyAN0ry^Wx9RbotX-u z!nzC2(zJK%QL|^lF!2F1qNcJOfm_>}n#eGzqZ_SiXU$ETk5pAIpR>DT9c+42!v|!6 z#a~{k55NqS#%1NZe~VU2Q91Jq7KN1+#vM(gwJRs{oEEmNl|7^bV=_@K6k#Pi>@%HN zsKfnxt-+Ki!b{s2MZUyb$mk{g?lvc^Mn<5)mp-nnXoS_dR?yeN-!kwU!{yG8>P*Xu zdpDZ1?I-9|FX8N0C;#os`wluT8a;9Jx=L*Fx}6z#h)N8yoXTZ(0^#si=DqpX>^p*| z;}V^w3{QH1&6+P{$2>Zzu?(C(uR%@U8;bm4y&wMnqnpp-wT9Ty6ZdCITMP_jDm{ix zNAEk1X`Xl0l^193Tk)vG1cLqAw9jxnXeRPFt<_e@=UI>uTPz0{*CqVW36aYanZM0G%lb?W8E~pEcWUc zuK-0{?yZ0LV0}T#I!y4g8^rs-i~}=om@ag&-UFQ{fl6bg=C1}*16lUjcx4u{_oIHD zNtm_27LEw19WBs-qIyO9?cIAX!=gn$vTm{(O&{632HcoHucq6`B+HZY8Sr64udFul zI|X)&z&YW(l&>3A2U%{D$p)J)HsJNdc>1-)o6ZX6Lg<@3Q@*?MMEMLz!ReqcjD$II zSznts#v(a5>h;cxuFob&lY~qIl7aSDzdSpSxUR>5vw8!wQ+I^$w+M3m&rx%;K@?4_ z!Zx>!r`)eI7ux=r4RWk)J>on6rt_9Vb@ihVmX`xH?HSU)bHaw2{8~bWXujEnr)y#V zm(B4Wqvo2N+mW;5Q>{I3<@Fkv->~__{C+v%$IAmx3n-^i38S+n|67MWik9nbuLjfa zM{M2<@Smt;(jD)BH9GOc`ncfc=MeLJpV4);o)f24z$NRUo-t&?JP+5d@cf!*t=@9v zNZ^8zHY%h-2Ykn)%n`7)L$!yG_tlniO`I>z)YTbxslRjasmu5xP5+%me?g}OPpu$X zCs4^E+5~)mW&DV>!Jwjm-o1f=u@sT$&5!t5aLP}y%k9Xh{pf{7gb3}4)CuQ>F0v~3 z6Ka5zRcLq#Fw9z->Pz&Ee>gMdCOu^-K_>PhY$*r98xO|N)axhC> zJJ;c=iDOFBmN$L_+d0a#X*v>r8GQD)^42L(^QY8eLJ)voEx9KuBVZ^adsl$+5|?-K zw?X$ivtSM;MYwD3bWmZ|l&DoU?#O7*C%hiUydz+_#8)Ks;ED$nTKh)FkJlrUFUe&I z6RzqvCaYL{DzMH}dyjRDLiM;N?_r~Dmcn=1g7Cb*NI$W^34axfd+N@%$ep$3ip$)5 zG1JL7jZ%zGM8U~Id9QfWk6_Uk%f37_^mh=oo2@R{XMc4jQj7<(bL*d%biDBrm`p0b znKJY-6JLXV7>-ff&dTywA7naIjNA-{s!{iMSVjv=D|47CdFd`uem`q6o^X5;=)IHW z(TTVN}{etP>{nq6o-PisYYuvVP;LfjM{UrBcf{De>l6>DHM%nROGz8EOSBt72&ut_>{Qm4K5Dd;~za zM`lA%rCV6F8CL2;iM9@9dhs!l!dw}gj{>W$J0MJV7!Udg8P=Ut_q(;Jsu zak{|9qRsHPVOIL49cfz~+JOt}84#?NFPYJ-`>*i;ZFL8@BYK;8u}J_zWcJlN{68QC zCk3~8#ql`Yxh<|KgrDpi$Ucd+o7#!#Y-iJD!C{5_G|%7U`W-I0RA-82XP&5S%@QI@ zJCatbJSG=H<7;HCH*&H&d2v_k$dMdx?`>=0g1?XGQb#gR1BWQAc&Qf1<<2~gtG?Pu z)F~sIDQ7@@6sd@auBHQKKfc$gC4gEl?i6wLic$>*vrQ!euF@tT{|Um2)355lTQ=RT zrbMGSyZ)gvt}zgh={2;u(^`-q!D_GXjS;OLvv=>uAKg&p1g}(uX?n$0F^^Eh72$Hp zs|BBBnA`<3mZ@vUnY0~##pS713`hB2e|PklAto5#q8X_{U(IXN;ltt?yJ~)5j^)Nx z3F`m50-&n~n+~~h@nI;`)nhnnyK_t%qRueWvN2J8CE<`NYS97w-T+@ZS=wk4k!a~`gpybDL~l!0Gf%Ano^^Y)ZSrf5l@X6-uVGR0Vlm|2l$yUdK1h z=b?*^$xbBZK18Nhe;*D#Jnj?yoZC8`Fb6TV8I%u&;kSlwbX*8D-h9Z3Gu>TQ^r(*s zA021NTK={}zg5}LQJO-di4OB%R_{?C$TtYCyO;N#Pupgr%hxSb4TWDQRp>v$a;`Wp7v4fZ)3TC<9mIU4|} z>Z}*A5|(ZD+x3GGhs=QS>_E^pybHe-T!{%-uER-YxDlWbxR04k=>05m<`2D>xK`t&P-JzDcXwHbwoBzv+UVRwh|xe_2OM}@o-$;8Od?nz%!aoXeg#VJ z$T=BV9Qj_vfGE%zoHvJ2+fUAn>Xx8kJo|0w_!(L1E^ZL8EqCX%qO)@>oe4ZP&s^KMk=`=Bo`CcpB3?D9*ntsG>B$%aihMczqsa+X@y&vcC*Te*bQ zoJgH~yW@g^IutM_ll&4l+>IUfB*L=ujo0WO+Mq=WZZupP!BcDUz8m9`Yjwqjt=8rv zE$R#NlH5!}#d+B__{8I(wY!j1MLOi>7~;w=f|85%iX8o)o*8#Sf~Ba}Rm2P}CDfW+NqEQ_>U2m^V$S{Wv5ZKhVTv0Zx?9B-F$WxP8ZwtY&fI}$+v z%Mg^nj1=M6UTZE}e@feNT&YvBj1(61OkB&PK$$K_AwJEt?1Ii?@iw?UYTj*|%c%hE zGY}R|eb|HTvkJ}Dj#yMS-YJ_BxF)ln^#!l%)j7M=K?e4V^jD43!nAGSMSgLI)?<%P!P` z^LO3k^QyJz>mUlIsTi#Z2lXv{3O*FL)r}hFDd}yGSxz69wHmm96MXV&$HoH}@;FPn zDIL4?Pk;&=ob^S}UCsGx6&Cz_l%BtPU>4rDCYUAFUAeZk55kI*`n>9z=tiF0A!4(M z36kvB&H!;)lmOHn*oN)>iWMVUje-SbWRAZtN3iuIw{cWLbzc}M?E@nv3<$sQ;j%T6Yrbk zZv3M;Z^d|r3#&|&R84NTiZ5*ID~W0HiQBl+?IA#CW{zl3&H;C zRypqKDYFe$3H8>$8C)?DzN8kYX~45B4>CXF!f$9Yd+E7o7`{7%gV1>5J&g}}6=aRA zBaf+KX)fp;1w(%hQPmvmeY^&8h9(`gJ`Y~~*exBu%|G#u{I&h!tF^!Z%J^eBiS*WT z@F|1*ARmYP;l2!q^d>$cboxwV7Mr75C)-w2o!fo!@}t{X6V*nouY&)9%(M6@OLsba z@Irr|)_)EK0~RgpBBs7_6fw*FDs#ShSILSg*TzfVvAN@BTO2N%3{#Q?4Rhwi^waR| zw6&#%Qx{E^_S_=@T4Zo(eE367UJP|0jVru(V_0PTri8E_UGBa$Wt8GS>Y_~&x5~X+ z)Mfoc5Y;1uIHDdQvs3=cqv@)s&7t8+pec zr!#k8CUdGH0hj`_2kO=6LBSuZuM!v01@;#1` zISQj`{(a~iT~nLBTl>M)GZ@p{{AV~&4>YP|Z7=4J31tmWujsQV3vBT69BU@@f!Afy zVlZKGEBEJ+aM8^x-ni^BidUKV&UY~=mdd6|ecRP%mm-^M&*48(iiDPK@mAG!Ee zFbD~gUjv_84b*v1%3jE3~O2b8^be~o(LG6B#zQL?_7FR<-@z%DN7}JE+UQ9Ye&T*kuU#O;nl_N2#{Dc^sJr6ymY?v z+jCA>U2=`SGH?JYQ`hxa z{$M#`^O_iM&UOp$bX$z!M#nOv_}+$cVeru*TzlYIwgn-CAATAo&3}-*<%_~pGJ#wb zBqxLuuj4H+4T>Ib{pm~1dfA-!X$*61CEtgK-tSGjI-=X;8(3#PQz*7DDtO3wT(6YP zIdvSBZanayFO)ik3~*R21V*~*tX^F_a7_F!@BG0dBS5}tRB1%be|`49C8WnBD&`S7 zz`)OEzMNX(VMQ(?r(wTDGxzWT?LrRiEb4sCGocx%;M!%u??0d$`Zfr$ z58-aoZ-)~QofA&=Plw*-hq5(MNyI1!PurLWwmrG{Uxqauf)c>irh5)_h`@j9K>Sw| z+FSR1v&`gQOAgkDduCc3D_L`k)+4HkvhmH1sFt3QO(R`D9WjYbI+LYNX-(@Ah;sQ86wO4`0_K$ zpOx-pdHj=-jzyP>YLTN?+J%_`3;im_+~2y~1Te;71WeGSLe!4rv_*CJ17D+0zj<3ST8&dSn98;rwDFykzTZrylk4i@g?Q4TJT%LYLJ;upNN#HTA*KcuhvXo^~AL(%g;mbBX9vIKrOvBy1U*sK3;*EW$yv~_L+A~CRtLP70-_6tWfIhfJ8Z= z@!KH{D55bdeE@R&p=&2<3#c9jjx^cyV`yvg8^B~*=u{{G=eq}((1A<`HR(R`%VDGF zAB?L@8MN;iGxJ}&%d@3W?*|3}?~HcqJIg(FVQ%FF1e*3)MXEH^3?tToYEw!9tmM`9 zA++|{j3pz)7eHs|`^BP>x;GXzMq2XT3DpX^8tn zO{~lTBmDyNU7-(qlG88!t2|}f4}phGD>G`XLJuzVvB8ola{Swl)evd*K4HBjx3$vh zCbuTm?d7xY@41SS3vk#3xD>SSr(2DY288i$4(sm5n31k?FcqWy7J@wygV`LYY`aZc zWl8%;7YDQd>GfYVc%wE8v_7k}3%NlxeK-Q{Q@)TT*yVeFl>Ay>t++^eKk7fRdDg$2 z$B*mpNv15ga}ZC-^kq=r`P2v<=V@S-PIuPNsS@&ox)0;UkFx^K6nWoED7F9R8W(y; zc_ii$ifte_LAdk9kcTO=$nn}D&(q$uKV0Tir~fAVEIUEPVDfIX-i_;Negqtw%U{O5 z7cyO?!tZxqXT6ci7jodUm^@P8|Gsag(XJOH|F2AHmS2K1J8VvVgt}{(K7H3d@{qyY z)`la|KF1jq+lHt1cd&ZFyDDjPvVZFZKgnZ0Wa@6|rkFTF8$vsWx4dVpWgDKh*031% z{QVYi*G^?2SnZTaHpCwG%`u>c;tAv-WJ|u)&anJ#vcu)%%4Eq}Gxg|xzquE$|#=A|(g7;~0=ppSW!F3Hy z)<(!X+b3w%T{4nxEcTeIT>_NTu>fQ;yt=u1|b+ z^#Bo@_AK(pM*Sfp(t`3hxTwXYjYqt20Q^T-afsDHr^{2}v%nyg&L3Uk9W@;s#~+yf zZZMvy_Y4C@z_&oa5YDq|8{k&B(eMlBnlP5N5$pSUo0DnZPre|GKnvhA(N66k>+<9! z-~`<`FZcK=#SPVdjAFuYYQ-BbUEq-9+v$Uk^9o`Sf2%E@K93UFDJizT=-GJW+xzT8 z4LR1}gD1VUO~F0MYi^=SeG~qm^Ca}s@w;Ce16OnH#hb5;q~_YFY=CZCQ^8Eo_E)0RdrG*c;z{Y-Ql%!+G8`Mxgtsu2}Db0$1M;f zI9lgr9kn@!{=PpnbTjRMZTtR(ccPh6$$Y0A*(63hr*ZPO86v|+2P$rL2!j2t#5H-= z`8BVZ`hLjXMA|cNeI#}GH4bh(tHCvX%>QxFiFSTHbab8}R4>LI8dUwOK{6-5R|0JC zYSF0gzh~xf>C$#-ImJ}P8XpZA5cjY;;6f#;n>t}|*M;oZ>kkioF?pMi7N6Qb75)lnfueF-i>?!uaTOU8N{zKcp2 zRk&ZTC4q+6`~CWrU>Y`PV??RTxUkAz!&H0b>4QPblD%9hpy3@;8lr!lOr+&0H+>YB z{peP^LPxWZ0l4;*CMfTIH!g(6+xRs)IrfQTWAZtFDGQn;5`wI(7izpbG@uU}ch7lW zKDSete8J$lOV1>p-mVbxRfKu_5|w;Gv>XtXIZVdOP}zZn0mEz0UG5lP_8cj94bqdZ zTqA)F;GmFE{mKDgvqrejj%&*%9QnvmO*%~U=F}bo^cb4p#W6?A2#oa53_D9nW0ueQ>}6hw#Ez1 zYjt<$Wbj|z+6v_s*so3A@J4^7AWMZSEJLs+xbkMoIMa;F*5E?93W_WebRG4w~@IZmGlp>z&D0o zdDSz`590y))^kv-`L|j-&h!}8%De}ZsDEBABfdj{W>1&ZX57H2wl97PGSK%OVHT*& zta=;aocz))eXxW)&#_IXASrJ#J&a#VlGh{x<{Gv%RGsze6te7G=g3$~fdfV!BbQlX zW5xEN4Rx$%1x1e0wfG_H0JF78iUxdYiDt_3*X%%jjOG;+`yC_dtNlkD+YtSl{w?s_ zT(1!6gRJ#un=dj9YVSJMqs>DA#zh-jVn=7k0ktE`brA8n1(%)wAO+;(3HA!L8r)-2 zqif3XJX2llJ}Rb|l*rMLm`-1LaW~V6(94ZC;Ukjr#`Phb_Dt-qS0cJWdh4~{OTKYF zy>Qq>KwJvRmzfJrt+W3jQSEHGb{VZ+=%q5G?KXqPKdkpS>}|fz8HrN6;&F%Kla1*& zV){hX`Db(IB%-q%X!!_!eg4@O>m^xBtWlw%4196<{&{EJ+K1{P1n==(=LHl}`n;c` zcw^;~9dEza@q)6(6oyY$=1;m+Wtz)5lq+O*$R@ooNw9mDaIS7yv3AanUD%g{OQnZB z&|RLYT^sVycuZpVvarUe2aPN2FaA;e!&%z3x!8JN+sP!dA{2jg zvw1Iy4Z7j;N=`kcEy`H+9w>!B$S;g4d5s;L5Um+7KhTmE9z@mi9?PoheDQk;QW3PG zKPO1w$pLU~Kczybtmg}YOZfdgS*oM+V~~pgl8tAfF6!7fcQ2;X)K4L^_`*uh2rOMK z4ZVj&S>i>VEtIYbNjDgOrhRQK(TBEwvYa$4-nEaN^s0nDwe$OOC>_Jk6}Y!TV^U}_ z-3CPx$4<4M8}qGWO4-gT3@n8sPRXXX)?WD)J*g(XnB9i-v|#rDosWv$NosPFX3zrus_^*f?lswprf4uU?eFJ7vd?B&= z0_4uqE*bRjHh1SDTWjZSx4}iJsGoL1dP3DvaSubTKqa3#>uhnkoq~g?(#O4LOU1~e z^t@ds@QG%{H{-4%rtuSglhXmF;UaZ+UryNlGy$!s7wFe3sln?MnLgVEUqh@@<(DGO z+xMdL>ToGD%Fn!MhcKH3jFbbe3x1*F(_ zpcmLL=N7a=qxVB_5K1mZDx?2O4Kixc`r;Zp)1YV&DCvWp4`QgFGVo%bWoztGo8fk0 z9;gbN>p(Gs$ZPJ=pTaNruR>v2pE>*^uJZxk8)+3?B z(-6No|OsZ!8V_08Ch`{kPIf+Bj-z zjP7LYW{8(j-;=C0r;H$#q;V92F~k|pHm~~mi~EgJli;gVPVGq-pk6A!&p#6GS6SY$ zhB>_SB|&_NjsjOnZB*2W-C0%|Ms&lvjU>qh!;9vyNFK$JWOP?!Jou1E}&(n`9fYwVIV20ed(joMZ9SX(k1*)$I7(f8VOl=ExH8Nc6bH04IR+IE<=yp{(WfQQ{Mk}GZp`fj zt_kH^H7WLu-ejw9iY!8eH5=kJ8GohwHL5K3S8?x!56fm+pscz)T;b!bEG`V366aCL*D9!`ed`(C)BszpbZjbv6+L6r$KLfMov= z?@}$*W5y7}B<$b>?>gLs((P3D^gl;H`$NAr-}6crfUM>3-_ka#WNlBHVy3jMKL?PQ z%YMurX_`(X8Es@hmhdq|xczV$-NU=340XsK+YbtG6<=Ia66wfljsy$Tv}Bxaa{XH* z?B2lsK1?+V5H;3c%(@=w5kHrdzfB#A=%p;M0+GDE^h?yCE+ZZ;0= zhDFkq`Cq*{F|=Y?+LVaBS8S)PQA*SbV%3OIt5$4I?GZu{wUQDN1ThmUyxzay`R#e` z=f3aHb(Q&;MT)lNZ=Uq3jX!Jdn|$N!K;JY_eI*C%4cusuM#1pY2p@-3f`4|p>4xHS zTnWrB2!ejRd9SXw)k5r|yWqg6eVYAV!7{8WWcacpF~aIk0C6kE(*1S?$k*+o@evCk z*1CMc#NPX;y}=ql;X4-#a`a9#P6apw_)O66-_ojcTDoxW0#bI&zybFacNFtXVwhW? zB2JUPI!Dh}v{($DpybC)s(CtG!^OhDbOL1))K^I+uG*!y$P!5I-37`1_v>p{bU}zI zvW~?xb^bB&A$A~s1RNHD$U1u(>>G0Q2n-a?TXbVv7i($81@yIwk(Wj;CDN6&$G?b~ zKUlhl1-* zj_x&G#|4UjjY0&IgzNaCWaygs;w)h(KAdMA#}wdHxb)}XikZ3E3UyL8h%6hFFG&hM5>O$CWku_I?vMetGbq+7l%dD4v*&^GDUEDMZ~y={xlRs?@BO z4$vGQzrCGV@{g*qouR8Tf#lZ`4d@ULs30`|>-XluO}q2L@_CcFo;*=hq1`K|^bN^0 zlH*pzmPYFw)SPixKI6Jg5VO~3h$u}pD$cSs~%tMy)!s)tb_W}iPh zurFnn5Ao)#m)-SFf#v2auqmJ1TS7esNqz^~T zqRh)_h3O+QR>`GpW}@@&)W(3K_?T0f>5JXKFY`4gOhGCG^iEUkmcQ094V>K`AH)a} z0o?Xyj#bLbVuWY!14KSULjvS^T(X%I(dkmocX^0kh`AJVXi~htC&=7cJz}LD`>Q_r z@i3i#t|vQLUfh2pwE+3*E_Aiy>NlZrr8;7rjS}VeEZ)t>MrD-hhMkl@0$;m$ab@uI zG77p=%_q)K@NnA#fJ}pMJiCKir^^!?EX@v;N*3ats}-owouv!>jZU{7jCfjzQz^9T zk#btN6B3qWE%F@kzd%ZcqlxZWkkg(0!EwvMjp3!xIAj~LkA(a+v!JV|o+<>7$azNb z;+>P;m&?zHfwg6Ri!Hz9Px;)))BXlu&a$a`FP`eLA0ED>iOzqZG4Ac zOd1f=#c$hO&9oR}rZnR`WhdMADctfF2`t-vE3cgE=84{DC8GidN9nWhxU?$o!xD2Z zA5E(_9q+aT`JpAxYxT~Z;_59vxt&Aae&>p{JFvM6Ks_TTZj2g~M`ZF>jPs5!fVCB$ zt{j(f=F{Fa-iwESGNn)E5EWy$fpa=Ykxm0b3?Tf`B$lQA}id~u!FLo_^6pz$*ezMx~&%B;n|RADMTm@un;%&{q8>X;(;li zEpbiy0{-*5Ub0L_!?|>}=1HV&16Yckp0_DmU;j=&}o`KoE3ec?k zc!0E)_pji4KBFgT8}_Qsrg2~~-7mPBTN|{MN0X*2Y(o-Pa6!f`=q|j8jCnK|I1#Vo zWh8R>RNQFYIgeXr{>&Kmc+cH|+h}&EPP)9|#`v~hm+Xlc>e|x$@8dBJ&l%M|cDQkQ zZ6M3(pNJ2_49yjFZ>ACpCX0C*s7k2x*{&F6-0Tf1T#j79F>O7525%N&U;+L;*W zZP$+*{QE&zy4y34qX#vwj1Ig3`cF*haSX~U_MyrmAPTq>|ket`7 z@AJj8Yvf>-s~xH7bQdz>du>%_LBITK(cb+3>db~j-lbJWJE4LH6e=XhH8}!phmGL| z4#J8pQ36?pNdd14W*dPrPZQHvJLIPM6Tcz$=6Y4MLQrJRrm-^7+ts&Sp^B-}9ybJo zIGbX9JV&;lW>kBI+V}h{Q1N{g&2@^g?jwq67tWymP&Y zmbP}zEtv~lv`xdyGj*XuFU^Q!Xtxu#`+b8*L}^1A0>Q=!hdcuzKlWyS_fHh%%L5Nc z`<25t;^EAc`!9yJo( zFEhVGVb#iTrJ2qHf{o#@p{92=IvL}dG$CFvfhzX*X5=<4uc$F_AA00-XVcI%6u|}E z`)60~?F-=Mi(aojk(`;2Y8wYW%1M<5ch4#Jm-r4PEWb+pyEPJ0!ufFa);n%P)a2Db zz%vxj|2U@EOPIsT6&)(D_$rIMQ?87nQ?cfKn7XE4x}6+-!08zA{GWdxT0M<} zCGaVQwB$;IK;&X+PU;8%c6Y-?VR^_$^H3FHuFl@8(Y+kJi_!kIQQ<=n-bf4_R`FeI z6H%1JhI7FM4qwFB71_S83^!7?vUhTHYwm*byR=G$ay3Gk%YQND2Hl9UHGWrnOqqHU zCC@=^`;MwN*zjA7V0BRawm*bMPIA9KQK963<1Jy@WUtDjF#VZu?TpAwg|Y~vl?MGSM;DK6vFP1foT1Cu!%bUnmrq};iBh5$uJ=G}m(-0J>$s7+f&Z=}|@P8f3j9kc&1 z3Ozn~PJdyd*{S^Ig}pJUw5(ylppK03%}RdTMi0`A(1*4c_E`Eks?YIqqa`*ABl=Kv z6fYKyHZ3cJN{FQyg%5*aCq>Wm*tlxRoRSv*nA>S~$VI^_Q#kJ~ZiH!vGEI)zeylO+ zB>k4+>}^4Nrj&^8y@`2fBv3z7`xjJcz?BPYS#|QT!Z79`kFwTLWV!VH(LZjsZ@C_0 znR+aKfFK&yaiB{7B-@rkHPJelrCt{gPnkecxwl9ExFR1Mx6+a8%3(i|)$ytp5ZJqa zdaKphZE;vzV#BwXBkFZvpl-pS^OQKZj6-{s;z%$`_w>$uz*F*RpUW^Q@^HH1qI zmyurj<({wi{KI;upNSP}L&fJl^!0kvUoW(TIE;h4?wopBF(SZ{C;7QRVY}=h$CGBDD|4)WUs-MlGE~p2VxE?%ZW|+|A)0Kw&2C#DG#5Q_ zY4JW+01ywGvq*)!Lyx&Y?S4z~j`a2Khl&*tNE#u5^C) z{!8LsZd%~O(nOPpK6g{^gcQ9=d^nXPk2Mf~a-cMpP4&j}E;>?Ikj`eI!96UY68@GkcLq!Q;vlKdCr|!I>MTWesP3OmzxrX+aRDGC z(gGB6){?<-VWplQ)iXD~V~rL)N6_hc(oNrO{#a7P0^bu%duj#Gyym&f{6|sAg(#M( z+FeSJUVUBSNp&TA)iB(v&j>J@uWFfGydz)(`SjhHFouu_jkfE>TO_fUV7=Z^6)+br z!oq@V{k!FM!4}Qi*@UxgSYiEst5QGfMhN|& zWx)8~gO(1g&dL$Jgah_`P#ZdR`J1_1wx2HPXHz5xhiYboneE>T$D8yPgXebrqB>g4 zs1>G23xFRE3J?Td>W;2T=W9s%*4EcG0rI$${6F_amdi{`2@q0yPl`q$i*Q4IUv{D- zMT=A_<2LT5beOspN_oSYyil<_+2C{qr2y26N?a5pPjvIiUaM`!)UEa(%I&l5{KPOh zPN{&TUa)AAu$AOW9TgN8W)|dt@U34nofeJ2?<>F)(psqLG~fAn3(mB#V-By)HR+m# zsO%|ug=t#b1yiuF58?n?bz|Eus+9gha&YC_HGPSm4NwWo-u%Z|BSk^IhCZD+s6K#1 z6gW^>mUU7vmkbNzOy63Ux#F~2Zy5{LllS#}#JX=7W&)6WaW&v~dd*7LZq(Wln0u6a z_f*ov&}N-E0LqBJVJnG)wz6FUCKhx-dB#``=bgm3cy@l~27(lKFZAagx>0rR&Pcgu zqa-j>0k7mR=426-W7B$-@v+x&wB>;J&I-)Lq@#LExg*^w+=vdxVqqZX`09~Le&}X| z)y;LK#sl+6qnaknT>yzYBPXDL?&n>@ETaqvLHPW6b&~y^OsZo}O&XPz#ocbU(l^Ut zqh<_CcLl5=qZ3aW77Fm^GyWR1b+4{VU;O9rjE?(VJNdxI35AAi-FEiBom zrm7y8%tF$HNFHV#@TyqqxAk?3?{aL$6(F7QKKaq9pZ(kFK;I$G7n>q+eF`Zl@3$Hr znZBKzG&T*eOmqZB+S}wFNSLwWi)K3W0#2j5{jZAQsmq@MI+#VXt7cwT=L<6<^=a(#I>ls+}AY?^zjlMQX0e+@_T|52Ug=a=mkx`#Xub;QT8M{ylnN#VA{RHutQ03 zHX`PKi6`plu|*(COp9p>muy{+B%7Wp9E*X{w>7+z0k(Xd8ncKy-1}g+xetyx9_Lf@ zoHZxi6RN{ID-=-7emf*qSGFm^pM9}!gCU3{iSomQpouAfD1G1DzsM+y@Y+7PUv5n{ znRLcRNLMHbfC;r`Yqs=1q@enMFwV`g(V@PU`$-pn^8pRd#EkGTQfIJD9{Sq`@2YsL@l?SUQKjvdPVKspQDWzm~6|Wcr#0@(Bt|K%G28PMH*^bXSko3)jUflGgWM zT4Ad3v8-#z@HLyIRM&M0R^*zttSKOx*_9!mvOeUME4eJrWzVKo+L}t(Z+&G;*~U>X6wJyaj5m~O#ZYgxBW}3qyd6@cTM{oEib}+QRZTmi z-}tM$k+n5>wy%eB8b`c=nSERR4}oMg3SvST``#RP&D3pvB_^zZoU|kt547@FB}Ep6 zUR5lfnJCi^$JKV%r0L+o2*WW`rP(!*dcjQ0&J~xcccD$f9Yu5I06g6)-cy@^SsFxqTV8|e7m(;->!;Eoan_VSp z<(;a_dNXe?vL=^WoI2(BBF4FmV}QSuVE8T4U}c$gnOLFdwl3 zQ0}fO!kNm9VU zn8=Y-=P4nZxrrlXlPhE;bZpzE^k-Jc#SiPnCG}>zS#=fA;&>{#7D(tm+?w=LVzogo zx~|JS9B=Z_PKjcjRo5599<(p$e0w(01w$k8N z3t03*7El!IG&gGwRE|B%O0}aXjFou;KJ!_}`@`U2n|o~rCwNQQ@>fvivlgL((md33 zm+-eyMxtNE?x~dmI-MQzr?@x$u_DDxkULpwTuu+WXGJd)dEv%mH$K4OCdk$RG7t+i zb>iUlJ!|S{4Nt;A=?F#@B%38PH0}2epr%yIZa2`)6Eb+q0Uj*~5;e3GfsSKPL#sUSEbJrAZ>w^k5 z3`3n=BYAqo_bY}ZdLF6-4n=TDq@(JUSAll1v^kz4|1TAGxxkb>3 zp8b*|>;~4)^%vmsMT#mk`{>-Y`E{50?p!w}4IGOD89i;(=bT*&bui2dwC$$n&Rb<} zJ+|HsW7w}C>FBXy<8tGIJbz4jBz0iwc;h75{CKTp^n!mN4EdCa(pQ^|+mFNE{C5zA za)z?k!XwNKoJXfyrnKuIixE|0u=yKA;=??;?QA*68mX|nN((nbot=6jdPar|J0ic_JeUgnq;LD zd|*d&}$uTI1(z>eI>4?Dv>raZ$nRm zzb4VbRC~%x<2lqUIYNQ_E1qf`*xVxu^GT^ zv^B&(uy)5YW3}FaL;NV^0io5Tvsj6D@7_p-^BmzzA$i6pB|LL?PJXD<94oS4^_gbS z`Ag!v)4Wg3-GQOr$H2r$D8~+m*H?&ifX_|Q{<^m?#>?i`{Bykv5q{$3xiJo0C$P|@ zLvN=ySR-vZYNwQ_G44X{dYIRn+j{#z0xMxQF8XNjSEp#&Z->`fvf*tB$_?qB)i2rw zF4JF zGM!8WKsYNcV)$C;SXS0`PsOnI`%0IN#~+PeHtqa3rI@_KQ6n1l_3iMH26kAoD}T5- z-t9bnjb6s9Jr9s%Jt{AL(KJ-G0m=>pkRn0QYCc=D(!3nBpw{|mg+S?fYram#X;Pjt zxvAd0>#_D_Kls{?p8g8e+ri1QKO8m z?$_fFRxcYxp{$-0*)933;0u(|(Ap@(Lmu^d{Ei*qd#?p}xW0M(s89S_gxCT5Ol!(4 zenZZN;WA1j#H_oD-ARIsRCdGgE;etZ0ra|C$Ng3=V)vKYr@8S8LVJ-%=NMHMnZZxM z6|AT|LeP}~rGXUR{>*iL<~h_p4=R%(M#pzxOeUDf#`Nb;O|}deEj`M8Zo=bRwMBKD z&Bmmjj6TM9V_b2f#feUqdKG3*vOL4yXFi^?Yw~($Z!|JOozAU&<~#p;_%et-hZ&(> zv(;z06L2_@MZ9Fc%p z6kW2lXaX}O2$uPJe+vm8$bqL!&6Qb}ZWoX3O;~J@aTe<@H)kfgxXA47O z*PnMHZSw-8_9mNZE{$<1nenC#3;V=0_3sb;;_E52LlgV^v+4f#Bs*Qr2GeizY$xo+ zh2##{_KRuxX}g)13%9V5qy`15H!|24MW>K&U2PN==h+scULIRaRu3+#truEzKeZ5CyA8I<Fg+dmgBDq+1mBpQ_2R+y6OQncntUIODk^0uoLKgKy!-w@bDUi7h52er<*|st zN8FK>Jvz%yVa}?@vfAG&)u1Ynw7TU-j$Q1Ayi6?}qOiN&gZa{DG;&O_Vu()GJUD0R zaY3W3F ze{jF ziD+h^>Xh3xD_~*eP3(N5nBEg9KURjTRNI-^9?{*bYoP0NVFyY!&MFmzqG8lD)L)THVJl%5r!-te<4@Z+uxw7~1m zG)OCqky_JRyKcZdp9Hjl9!s0FE0FcyWw4%U_uLj#rz+e{7?ds<3iNMcho+KA7KjwD zHwPA(f!C)q{lQr@r#fos_J;tdd*YGZH_!`&D&v=3`b_w&~OciKQW#qhK+%9Wv6sCtA1ESkDS6onQD3c1Ayy%x4 z5vlh8dQJ(Q%?!K084BB2ZIliv!g$w>diD4oMW_6)HMqmTk1kHUD$PKLvQ(VE?k8e3 z7BduddAQwt+!k~4uF*433^76~!t?$_nk4rP=w4*(!s*-Jy+k+q{|+<-~^gFSmc9h%$$QMF6{u z-f7k?y+yV-94e|cn`?e-{kb&FZF94ocx<=LqZ+)6OFH}FuC3)WE`M{nr9})qf3%M+ zO6&92XIk=!QnoU~>86P~&y^>*Z?#HL9~?7nAN&l1gpQj%pTmf;xwB81tysAy`liYH zvKLff=INUYT{$gbzZpxe;xwNZ5p43#p&jGA>30KGOy177(4?b-GlhzmS`3{GUnh}d zF!>SBgcTLWwexi!;K zlRVwv>9_TTMoiR?lt+`m|+cj4~TvS#k#Nt3)IkU$e*rW$vmF%tv|f6J9ojIG$~X?PR&{ zHL!8$yN0FCt!HIPu603nro;9o#d*)s7s2j7CcA3k=J?Ij6V01eoDI{cX@K*EUIzF% zX=<=7SHNv6iPM!0Z~oWg3*7S;cfad8I*73T3<^m6tE4PU z{VpJ%QLvF)tO)9v%ohjlV1KC_`#9fZ7!Mp9mn1M6k=LGlUehr1AlLLmnNXuj zIZ2<=&U@7D6u{(uAbY?2@7-&|?WEv{yMPy-g~d=&8LRY6zlm^SsIr=&o~Kj!HLzd^ zlT?$3*eSOq0gOz%5+_210q8|F(ibs&3yRO}-H@FHeKV@YXGpF7_LNV!qVQX?Q9cmAsH^&}Up zR`GGlK2^KTy^+Nip8CMGhHdf>XZ~Z$i)q$n>c;a(tqRAytpk3g8$3CuTw0!HebX*T zKjy=q0~uXXr44!?xX|W2ik@%m{y?jxN{x(z+YAR_i*W$-vS)%a3y;H#(@}6jD94$c z-tl`(-)NlsLcmZ)~|owX>(lGaTdptB}k z1OB639mU4uZ$2pfp7)Ps*!LoWoe0VO)1Y;IC%V_NdzbdyC=+L#tqV|~k3I6w*{3CMUmdy>ov6wnB%ebtN z?ScoKY2x~r(DQcdW&8Bwd^UeXtP-9z)q)_9&XEwc=KCj#!t?i@kmi1k(v0N%KQax? zsuqlXr^*UX@GWAXd?OI)ZE{qP&7z5el@WU!%r%uuwK(DjeNUKDmw`&0M*E9?W3O)L4MG^d=dv&^4?X-unR)-nV(i*0UcZNv49}=jkCb|{%K2b8*N;V#W z9?G5Qzq+-({yn+v zoWfrZYQO%b4Q7eb$pv+o7Ua8egdHu7KbazG@6FSrvfl)W>=tTVNI364ZoFAY#Z$+z zV-h@DJA=94GJZXv!Kb1V2Jvb?0Sv$Qsixdt_+X)w3*Pwk%Rf zlP0HV+VQk(h8SB^hxmbEUrQt;Wq`HQMx=lnyRe!hjD40P}Gm+a0E9`KjE ztu4P6#ri583a^O5*Tvwft+`9k+=Y;=!EWOaO%AzkvTeQJxh9hW{K}OIxuU8CL977F?z)jCuqdr_YgM#HUH~hTH|~Z%y4!Hd;-tghL*0N;vu( zHvLeU?7O5r!kMQ?p}g!T4&02Ms&wl~YMu|nJ|`5E_7%`~-a3;W9v3+qr|e09>t1`` zAJ^EAGt3y9{vCH_2$a@ID}5`n{eTr-4Nl;E8~!3bL{3lY;Tf!KNUU<@miItcEIu;( zAOWvp(>kkOckY zy*Y=ti&DpQ=O7jj16Flamie@o3wOz<8*Wmn%iGopzWPOd45)H-_s{OX)l}$!Z0J z#VdYO+^*x!vZNCC&NhONl{Y5*fa`so%jP^Qn2ZH0p6*@wgJC>#Vdj}K zP-!sDY2R{5-|vQ1lxTe1#eHeJ$K5)l%LHAd}wu8UymH)(x`1-nr zOQQTE8$n74fQ^T9xcvt!(P2DmbuVt&^WvnFAi0fddz)I6;lBo2`wfpX><0kyBp_UO zX6FEXmEphkjpC2N49!n0Z?tqt&lbJ$w$Fz8lH)~lJI=5hmL=}fxX++y7@Ly<1Hw;J z@7e5ZsYl}h>Xd#Z$TmCE)%VMU)-b~R*AV|Bxek2EuZUt<5%;E(RmL#?loOUJn@6PM zYkbl6kd42lGBwz*h5SevnD{8Ix^m73w`R4^-88vt<_vJHdEGvFe5dm-{{CPZ4kZ{4O~>;rWQ@cx;i(Ivh&J zqxhN9_!#E%{+q%Iw*O*$nJFvf-el~2T=guX{Bq)LyzQ>2f3(2$P3BJSygD#+wcktYL&FTMvw^<=UF6G%a29oNfL)9ooVNro<(Mq`ilAENkC; zmnZC>Spa(8?S=uppk2Q!rO*`zeq1DcAEAW2sWV$4Z@mn;Gyool0}1SN1O16OSJ9nV zWJpcA#S_J-`$WiAtrdIS%43fRQv%D$!Na|-?;@gyfa#lBY_k(4anLe{sK58_3me&Y zRc7*^-HRe3fk?Ff&F!7bR@3kJQ;#ya(-oi4*3?e1k-trzGb*YMR+ ztNgYj;&adq>?{5Kj_wzhwFfP_oV5yMG0~CNz__dQK}$v~H4zh0ZO`&w>xi32X4Aj$ z3s@Q@F3)W+N(S;H#ZJtLQZytI2(g%dlEa}X2aNi21#`XJdp{dU3d48rRbToJ0$}^j z;Y?w+B)%S-kFx5GeH)z_)x9Y*qn(JL$Ca-~W{luxY}LPFgT9d!JzF#K_HWUg01KO0 zKU9s4M^I?n^u+FG%|oUdy}2XuhxEkzMmGe7zv5ys8m{X-R-HJev|XmoP9A($s)c3s ze|Q>)jM{5avQhKzTbdqtQz`uEquFJ{W)(fX&y`9AqVC>S?aSYsL2M0RRixUK2vCVS zoRx1plqV4e7EW_oRn+Ua*fX@aLglU}GhpSV&mx@rSn8w?wx(r=UBH^jre*g-*`A#S zjhz5nJ6CL9`A1~gWgqS3s*CN_nk`zzw*~`(1`gcL69ziJD*@?Cq`;1a0ZM*f=b;Cn zGxm#>G{4dkz1qcEG%V1{HOtCt!(0F($DRN~ zo@pTWbe2WaNW1r(;@gspBYumW&mr4uCMhA6!@VsZ0)(3Ii|v>Z!&+{(aRi$uP_84R zpSaw-4}y4)V05x~-lW~8{j=UvKG&j4v}VSCnw9L*;iBqtU^`>VXdc2R{>NMc&K8U( zUeRHa1$M|lpvd-*`vrgaAe{L;6F(zu$Dy%OdGseiEW)g(F^6?&gdTR6{YTgj+;z%s zvU0q+qvx7O2FRg?l(3u;MBc`JaN+&QK4vWk{yIKW7Rj)F_p1V&xo&{H%-Rl6mtj|@ zHMXx9!i@S7-A=w=uzO|Lx^vdRuXRir=&;x?OF2|Qp;zb7{bd{O-#kR;BKlUtUf&pZ zB`ksXnyFg7w;0YY4JG)iweDm|3DF7KATP`v%x@wsyPGvBj*agZ|HVp9XBr1HX;VTz zD|YZ91@;`Uy=c;xy(n0>!_peMN|8vH9PaTIv%^n5g6DSVmHOeqBqj@AoE)sy-9D?U+H@UxON(|WnG=#q6Q zfP|Bg92M#9Dw}kb zXCwI~#44l>n*kR;&YS$bqrgvw`ledzUxaw_qXLJ(cB5A>-(}=-|A*w6Dv6UCVwlSsrX{Vg z0SsFMs~i=*%1!}qEnGo}t9vg>BnTX>;){GXUh0UgxVM|W*NKXefG)NVbBdl5weS2p zZg5U*>SJ-^k5zZx6Y=y$>!KhRuxx1jf&c#OibdgmO|b6 z&-a#|CBqZ>eYdUne7RP$5AEZPQqvV(pfv0KtGm*-A+kT*$>v|6Drm}R?{rirsF3|V z!AwP=^p$u2y{Y6J7e%fs=;~}Pw^h_#c-L@&PkpyfVHeib*~CUc=V~6c)@KA-iWY5Y zJ#(VHAdBeatW_5h+=tuG`~>UxUlTYSgNCp94YCj3mU&KCZnPKgW)&1P;cRLlKH71h zL}0(qYQb0vr*%x$ZPdNq{ZRMhO%L>YN$I}~>%7EPNjJ~=RUCL#%+Q0=gFBSTY$%)&ccR zt7p=q5WYMQY*pbB2Fj=kdJQ}PF-#P8nFYCrN2`O9{_Ivclp=>Wx)LyLlBH4~sGOZ|3E_-XIu z3$tImD>-s+Iz3a~D`ib&SaonK`5+OD*GrO6t>hR}=(gp!OYIa63h#kiBiH{*x6_;= z&dh31I?`!&T~c0y#_tnp=6#|gI;@EN5_47vS1Z5WLLF+@436~a{sXYhR_qsbADee| z@K%Pg57&me=5U1|G6wgh0)wSixt?39 z0i;(%3qkKVs-oz|lE?nIX;E{_<@ly-lIQk6_hj=OQWUUhevrDYK?iol#M^Gv>%!f; z7KE7X4Icr@XI*W}-r56g7<--bjI;n-R3ffEb?{}+@0ha}MaphQu;4gd3S9uo>5yx^kbiy>RzuecG7GO4*CVg$XSe7XSR>wS1z8r-7{N zj{BWz2Jrc7;VxL`&(PotXU275~A8n>IK($ zJ%uui9EKEne6xThf{V8X4N5kqcysQ1b~cD4Ef0t!=W83X=HmTD!_t}YrEKc8u~^B+ zr@GvkfpyMCmHX+^coi}>I`XazBD!*+ZI0nU%OPG4WsFM~Ew!~v`u$vE#VUTFEhfA) zegV7g({1fgQpjjssBK00_2z;NSBTuTZD^$2Z{|T{{GRynI?m{=;hc<7sCOtYVgqZ* zzD!0Q+Fvl?7p+qf(oastyU(ccvHqTktjTs`GrRJ$(6g$!Is{|;P{6$tb~abN?2~9I zx_5*$B}?@cMrYC%YwrtvX;a`OjE9V_X#SFtnd%z1C;GEW*x6v{l@6iBLpu1ZXt>S; zxgYV0y{0qws9gkpDN?~k+KZ3Mf;%PpmSO^cTQg@dc6pkbUPfq$S+3enNp{bALxuy^ zGxgm$lxH=rE%$kNG4D~LME(5zdQpxcFz$Zf@|~Z4wE)aua>R}9RMEWy&=_|!-Q0%E z{-g1D_CiXEu2Bg4o0$gQR{4swQHEb@i*)X*|x+6i5iRP-gv zwbvKngQ44f*ZyuxMhp|MA zRW*)v_4S?M6~{2UW@tp8Pi+AD^^V8vYS_=rAmr-QWtYEuHf~<`diXd_QHk&wQ8## zufST{8%^N>Al~Z(hG>dbk-v(4V$4Ieb%}-IPQN6IxMYN)5+ThfyutA2z_t@0?MVkN z7Dh zc-R}3UW(qP)pp?TtMDoas1`RLFmo-&Wuvw6!6#lEINZ0%Ww8;=ViwD#N8aMIG2yw$ zESNLb_|d?{a%{uk!3TZ2{=CM6PD1Yx7uJE_vEUnI5P4ERzW2g?Xr#XQmaX(&~I6oKnq)alLq+{bLX5tD{;~5in+sKMRcu`&2dLaatD%?9T9?OIOnU z9xda1!YM3j{)s#R;pGxf^558rp_lr}p8puenQsdr9N&e2fA z_ZJV`N<1*iF&GO5Z0C@)cl~+7mG}p~a8@(l8Uj%s(f)lI#tF*tdK5Ck9KbU z(_DvgLHx)yIu*oVYy&`i`AT5isE)&ep1v*)%6k?R;|_c^r7VR zVWFcgqj>2jj%;aq?i6yC?j~iNL22!ZFc7w72^AfE1L&REbpEmQByad-?$+>qbU6Z#Ga)b`MwRUNqPArD@$+6i|zqHGv zI`ywZ|7!pj@<$X`99eA@T!%!kie#`UZL^(1x=lY-cE`frbC^a+`x7E=ORdfU$h!Fz z9z&Sa4!ok1o}*R&Dd>x|-4|XSo3$KBiw49Jwrp964bn@1t_V@{geMH0eb6PgJ89J| zl3uHw?VN(gG@_r&aOOe`Wo@JjtK)utparm)9Nt{D8LXa_vuSs|E_#63(D&zsozeNC z6GO-Yh;NE2X~^P3%cs_3-fmA&4{-=X+`X`u;kmQ*Nr@xpYF7$QZ0YA2`DT##*caSD zBuwRpr#UFSJGuC6&HC9V;8;z5$LXz-EN*fT%Cw2{#Yv}~y|WQ2>*s9^bonyisu^sdO!XszN8QJ>-#zzV3b%RR0wY;Nc)IB$?MRo*v*A_|Dk(t<;_i@qv6N5&&pfTs z!+`!W{a#};A0oh_f#S_kqaoDY9!>EI7Z!pt9irK34P?nsE`>qXScY?lNUpH!6L_m? z=ktoYl}Zyg`is@!n!*XJLN4U}}fZt>$3(mZKq9@PZI~bgPWM>ic4fs6MzlF@>tiQk9 zp+Znwq|s{AM>bz8=M;zhdM8`5X8Rs?w(+2C_KmaL=sG!=Nq&~7<_Zc_dLEbWHjA!T zHYT%<2vt4!nELW1tyV?}B6M733A?P>Kb!N)@h85R26Y#uy~|@WL7(n~Gx^W`-hN|M zbI<}E)g_Zc?8+dk!{h&?<6Sbe@!E#e5d}+mOmOIyjK%Fe$S_!jelQPQCd3%27>%2n zpcXd29IkK>^p;Vh2%9FgAO7p)rSZe#zXuS1N`9M{wtX#MTxvJ-rMl&G#Vtzb1J>$y zuVNkwX1EOC>HZYNJziMX&e0~z$hmtxi&G2TJuOn-Xn1+2@*h8gqOisa7gWH}N8rMV z5YzLch)iFNjC;mT)+P&Y^qSwo3(1?0-76TEE?Sbw%T~s1;y+q;<{qS9{s@37ZLj(B zdcPXpEXSn1llqSMvFdyquJEJ%lUt{-Ff_zen_Vl(eJk9o()`n^QkdfGWJf_or0U^) z&j@ezExQazTz2KKkC|YLas;cJm%;B!!p{BAnC!U4T=Ns>+$zXh(Fh)@>GL+j=tbT` zoA>$Nvna?N&tu1WjPv!-wl5cA2GT%9bGh&APfqjJ6Pd~q1>cnVC@smW2wY;! zpBa?C@BMI+K4)M#^n-T{gF2hm>JD1jb<7!}J}#<2R>2s7xu-c-16r(zxgPF~;9iI{ zx47$2la@}v%$ral$ZwsiJ0(?}?#Js!BXYQ^ov-IaJ+-Do!wEG8vgr#;zZO|*^o*ZI zm2Y4mT;o`wJv8Ww+l$)g42|H=NoTJ{rJ_ z)t@ncDoYh^b5VXf3iatw#4rlw3X%>zSTVBz3mV7Hz!yj$%M};!J1v}l48(FKTwv0R z(XQb8qWpJ_lWInUtX<`|WH<{Xh0xIQg$fu5&NZ(+=qpL&Y@&P$dv#{`Y;V5M@ivOu zkvU_`-Y;07UNuV<1jX8ZX?ZFlK@XZKQi=s?5pqAE?6@&l))l_GL zuZc$+A;?rqfh1omf6!~Hl&EoeMDpY6XY%hQ!@8sP+Dmu`8Wfwp%Ai&EBIfi=_g`^Y zL}d{vo~*wVIoq=I(){06C1K8V>L6Y3mvwXTzXv37s6ebJ@np-Ge=XR521wYc!EnE; zs`WPy@vJ$Z`G`c`uyP*yzHWe|rUD^05WeW`6T$5Rt*4>hX~xUQ{r2IK&XUX->$r$_ z-b=@Mdu)1dOrCa1nSH7ebdE^g^X277X_BhPKlp`SqpOcOVc+4zDo!Rw3Yb( zQFPXEO@03#|Js5I3W&7Q0@5IiRJyxU+R;5=3_dCy14id0MH z-(UB?`?&XU&pqe7U+4XLJ!k*81x$|puyEzdMk)C`RW2Dw$!>#>w>|g>Eo7qJBWw*7 zy2GQ0_5}BKqeezozQS}Y((S9&=giF9#X5u5@q z%N*AQ?g*)G4v&tl(^Wc1&?Y@~^buPZRcy`d87}mM_xy9=o7#HodFB>CYl_VlXsmCS zyXD<=*DQLrtvKF)GM01Bty#KKMbJWug5{Q8kV-o8A2qd&paZtuuT4v=QK$MRLzxkUj$4TgpGW*ycCfNL#i|5aoBZiKh%~jGtvfd%{^gd-IqlMZ_Dl-}WjRvS3#sbv2-tJ2Q!Xxe9+D8%~v zPULucc!}MerGSrUMHoI7B$e3ntAenxpCe;9TWKS~b(}@fZjAS77o9bEYUMskgophnf(w6IU1TKx~t3C~1Cn@i!&uP-Vh*Z9ogj4G} zMnVOzUY-bi3Q%?4#3UE!bl^|VYt{Z4>>MRJo2F?@^K^;;&$)|wurDp*3U~jNH++!g zw1|VfI|^1iZsT>y^%BRqs9oL7nX0zjR;-)KW*N^Hb3FZ|eyBxXit@Oas}=b8F7(!X zu*gyJQjenvJw|2yHv7Kch<^^YlR+E~%eTeW3CZ#!d&omQhP^LbL8Wi!*Y({CTS@uN zAg_XvaCMtogE;t{G=jn5SHoaW18TK}3!Q_1^Jr?e;BeNx0k;yS!2o^mV#D0{D&9ztHx(u2;<8$kU#97QdL@$b|% zaOrK?tEZw^-Ht2k62MIB`KmYt{`1*WhWAe1Q}4$9;Y8T*0gG@lAh&6ce`)~a*?keJ z@yU_z;N<{SgdUBmwh8Ob>$MqMqyv3k&L{q1d2i`ErkZ(1?D;@~<@BXAAoH(t5c$;a zQO%{XA(W??K#$mBtbbeFfNM>C$hCr0Q~^Wdsb`E+wng+$gOkbkxW&DBLdx;}l}O%c zXpY-1`aQupD|9Fz=gt`@agqbdvWu3R;a#H@74nh7c!T=BB|EgOCSAs+F(g^=;8GqN!FC2^SCN46pnymZ0I>emW)nC|gPLdxTSpN65HD-?o z&xcg1a_h{J%rwj8S8ZcF(s0;f>Nep3O7WFlrsB$63MI;`4qkeGD5<^qCO4H}+2b!l zNIa7@HntX9?mo5SRo}X<4D&PW)ERb|=roCKM&cWP4aD15cBWOypM+-B=D#^2G1|`V zrn{v)ZJAcKv4;DFc|OdaDi_=wn*1FdGW9&tXDsD#!#$@LwG9nY~{3^#uA>PvpzS7XBd!d&Z%!P4``@{}bmr6gXW5(?Z} zBM_~FM2e+F4>1d}{2zijo1sW@^lEduD?Gr=fj?1yM3yropsL`c3b_{4TSUeUaeP{N zm6q)oOKK=mSMI&mlUQK^5PN1ZOX<(%sRo|SCKy2{0}5nX5wOgkb?~gBzW0|L_1N$- zse1jV+BVv;O;L1?&L&<-yMAh-P`)V|G(5pNdt@cyOOiYS%)g52+3yP#Y-$c0J4`v; zaFEFJ?;2*Tjme)T-ikBnUdcQF&>a?Iwc9mZm5;Y%2jVNjH>WY|BnAQXi9%< z!X^Eghp?GW;-;U!7>aV3eTtZ0b1)6Xh!!6|1RQeJm=y~$*;?1VUZQr%OYWne;F6J; zXIV0(S>{BLX z#HVYo?ve@*-G(05%{|Tz6YZZ? zWn5URbuRoPo<4?HY6;QWc>?pKW1kP~PN5f7e*<04E^EpEsHrkZQCE20QUHrz z`S6!PcEdcWV>tbns%(3H$9|HJU2&_@;Gr$Orlf933Np0hgxpim{V0%E-r6A7ptLY( zr(`8vvLzbe*wahIYA=(sD*`NOiLOg|b%g)gjHtd2)50>!S%xc}lFwOuWCw5mkZ}yM zsNj4-KJ#;K5GbMlybFTANONzwL5QVfEoCk5sw&eH%}!0MSiJNWF>ciD7GFx^3J(l_ z?9u_geJQg#V#S@A-$U;?*x(t#e&dw{I`mPd@4&yjU_X%*qGQe6+B@59qgyW5D}{_S z48=7q4aB(9Ftxv(s93}}%DM50YZc7@*CsprdF1IDy87y(mI1Pl#27A#u zR;p0LpGQOCep$4At=Lb>fJ61tQ4Oz_``EMb1iXJ}mi(IeNUq}RR%d~Leoc(@b$rF4 zd13HCsL~+6q=>})57bNd#bXxinK`R;5n2YQpGzWOiPQ4Z(e|2^hJfzM!*_3Zky)RWzd`q#EYfD_obzyLHA@2qNMGjkNxNjBrrg!8 z3(qR7g5A|oTw39EDHe&qSRz` zId6tH#|?YUsLqj1NNPqpml?G`t>&0kRYfxo`R%!(QrQS~$={%Biw_SZ5o;oY!$q1V zkgLb1Yyq_g`1ym2VyvE8v(*}?GlSSL&8LlaZg28mG{+r4@&*&o#?C1?5u>`$wM61k zrxXNmKZ+*%5G&9ThdQ8HJIqmyU%*-`?0XMaBN^JJ(!ii=r7RCSY zD&E#KMeGD7OB|SQJ?+O{NPwm1QimDFAT)MyDGf?)~h2KRDJLX1Hk;cO? zZl}4ZROPe4@Ck~W?*slmm_Xg>*^iKm7F}Df?bGO1qM1J@1hc5y4O;b4E{U()H)H3q zb}fJOpMG1k*<@u;RWdkh|HTOZJ^wg)-ZS%Rv3H_gxwaX02X z_>IP+z%UngdqEZ)f(jfdl<3F$S?crPPi#SM0^e4q2x>3qQB|;K3}G$@fQ?!g?KDxO z`i9J~95GOPdGmt;loP|Ok?cZ$zB<}|!dp=@=1q^NA#nfOql`l+C+-_M)88Jlxc+I` zvnQ%4+8KX-SwToi$|~o6)l_+U)6AV7iUWy=Iyls*;N>gDQ)TPfr19JtzM{Ytw~LhCSODi7(MNF#-V69 z^8?D3dhDPX@Ma~IdKRV1ehq6k;6BVb>lPFYhB?rIJomhIpINNZ-MO;RpFqt1uf&ZBKN4 ziZfzuz}J6@Kk%|YNdZm4;0c{IxfYA@Eu=6zu8Q38NU6mNt{E@hr5;pFMY0{XPh+|5 zhYb{;zFn!BtCCA^l#EQ>-VDXReIR0qUm?OXcz%>*&+Yyby`ZvOf;^kobw=vh#E`)WXFu=j`buNhWvW;JW92mbcrCMH{&J! z*|gikg+qGBD{PcOpuN~KM?j&>rkuzw^^z5mmTWYGl9O=#bEFYC;b%6+RnLfC>t-m- z-KKYD!TIl{umg({n%(9OYnXAIK+<3M6|(0Y=R)(d8^*7V6Z}J|%r2RGQR-@+gFPI? zuX?0Lt4D|41Y=L%Z4=br+H3Y4M%zhaU9j`N!#>2Wn5yDVIj*8X^6FARx6}hkT~xrZ z)=@?!stfQOEs}CUas2U@bYUcZ6hHgWIp}p;lA_@jWuk}_&{3u5f>v-rc-_kk>}K5= zBmr+A8+Wh$E0Cz$up@X9$=Z1}6)AjZ2N)M0+YHJQYWS056A`Y0oh!Yj$Z)PRlvZL` z`(x}9c>_WPMW-*hL4bnwUyM&vIiyE!<3Ac+pzhTOo)q896jEJjq*WAM_$N|&{Q2f7 z&XT&g;zZCmg9gPNt7-Frb#7?us$)CeteyOY>4W-}xhzbJN8y}*6S_X2nWJ$nEZ9yO zRclWYRaNM-sm{7L``IaTmx#rU#reUb+0j0h%)iM57O>HGmpAE{*^W7$--v13=+-qK z1^jCV__9k*MTs!Fg*k?yLe)Hq&l3r zH>FaJ%)UCKRu=M@mHd%4A> zgD3Qq2$xY9JAB>ZVk~;9-MPpCz7xG*fJ?A71sB)WlxrzycCLCew`0O=@}JvD2H(mpK89bIv4JGtm>XBY zNR6k61E3Y@one5_5?;L_Ab=jgi8K@h*w=V8OM>@Vh1cdnrrnlK8BIMCusInNjRB0i zV!8W6%UOvl+T-bm^T%6O8L)CcTYDy_;i{m)e2~z|>!dk`0F3OS9l0IeswX(((ok~>U7Sl$_T85tO*u6U8g z{<(s3ZF(-_g2NkU9YTeB4HJPaI`}lLvLrGjxl@jh3t~|BKslCeInz1q-GHcpi6mx` z!FFdc#pzp#*tPLQI2Z3CVfCztThmh{1H}SPi}sj0 z3C1A~|Izi62k-~^+7AMqJF35++XBS6a;2wqLF#@vn5!7b1l4IRv(?3wbKJ_JY(`6h z8>7=Yo?(B}ivFTXa{t5X=t19P0G5Vz-p`d@9>m@OIBB`aZm#?WZQG8iQLM=UabRuu zW4mfCXW9#uJ)KBb&klz)cXU-QU)ZKF5M||^R9*i z#LV5xof_Ma0#Iyjwy-_H4f!To)oHHbVY5Vl=d~yz8RKgkq?_#8b`Sp519MqIe#I9C zK~?1keHRY^RI-{Guv}riOyh&yE&m9~W7QmBJN+>Ww6NW=ou{)!coCf>5KC|>ANels zXFcPrY@JU+`W$>ZmX zx>}^N9eE7w@(-{brgRa+2kIucwq@=f_07Ttr7|igA$2itce1u!-c>B&2;-FZ2Hbp(RSHP6Y)>hHzW>I z|IjD-5i711-;PWABzxC}58IGIr)r&Gb#u82ohzQw4%g?mKvx?0hBTwgMc1w%8@Tu1 zlhj_hz1Fvq*;UF0Cd0>V8VSNSY1}7BOiyz0yu+ECY?<)i@MpIk9B(1g4Sy1T%8kY3 zCEnC&ZWw37?PxtE9&ulku2MMsxayk$4|#pa{MsfAeL?rYDn}1~bPb8U{H`a32K(*R zy1kuMmtF~Kf*&4U_l;lpFWO17=Jqo?etK|2(=LOZ6AKI)<662>>Rk_ra!$iIK5r&- z8UcNATIU0XEkql-1i5^-)F&9zWL&6A0cM;91$*RnaXb!tqI+8+<)d8%nu#|jP`49R z@^Y(yN1LDv+o^FMb-K)cwj6=_C3DAE{BYjDL~D>ljfN12OrXALEzy7acz?7UqjvqY zXhV`Qd^(@ihHFLvQ(fOOzD6RUt27h{Z}EyQ(WL8lq&ws&S7kvS-nGlqljiJ_M^<4S z`1&p!_?^~|N8HWM&G3YH&9BHQ1jA!he#XP8b=>?&!v{%TJ5qUqOk&ZDFF<$M>rMk4 zq$8RQE(Ce4t2md~1}<3D+rM9O>xh|B=%&VxlkIwl@VEfd(bL4^{0vthC6U7>pzvcj6eb4CjyZ>dkA`^=S|o$?28S<1Nysn`;T4yyd0&>BZXC`2_JEIvaev`{z!k}7 zX|?c-PZ{)^Qok0QO*1Zd>sQDf&ZO7vEl8gnaty)Js|4sfgOyV+Jz~J*XJucm%dF17 zaT88h{@OtIGZiX9`GWk6HjbmSG+u>Qf0OTVI4~U9F_>exm^N*(^@*+xc=#~0pck!E zrJ7$L9eiCCvaI)ImOsqLI#4FxBj;<-F0I<^euf!l0Wj^5da!Z&P;H)?y4GBpds7^X z46Qk>@^va=@ty##iwHQ$Z2~I^IXE)9J!Z!P3f279UWvCU>3I+=2H1TRb3#|YRvkHK z$=W~?Z@eZ{hlEj%OdZ_=^j0jKs6!)No@4_`V2T*ukX*E`bONVjMvSxdF5 zZ2g0)<`Wdr*=xMI@ctkZPVl_qg>9#xqS|sr0X%&BeUs~UF{<-L)bAw*=KlM zQzsUrr3)Dv|EndpZ%}1%K&IQ$x68X6j?5`BnXz|z2ljxIdqiUk9G-j~8=>1IH~;ly zRNN(~hhsAd1cky=at?$!hR3QI{x#Y+xAotMv*uzPeZ|%Be96}b_JhbALF4_52+?YL z6-wleM}-_eZWbig^J9n)o^x;Upybmtzj5B(w>;DCBo6Rw~c!{It#O;{SIgH)H5sn z?0!vwXGb=Y>o(CUnOHRD#K(gD(3Mv#fOEZHCgu9!HkoauG7St;nBeY1dZ|}AzE3op zdhD;xl&Ol6tx)#;=EI>u-uB3Z8^dh*+JY7@-Th$CcS{gzB1*`#rh721)^RD?X|UYL zMIMBi@voL2a^mRl(f!fFhU?@*MBJWxms#crVWtA75#B=!L*7vqT}Md(U6>G%%>(kH zh>(00eC}up>1o)F!YII<*kgx9^%cc&1w{!XWwJdM|4|NxCJgV@JqhDTjdcrCwPs)_ zjKV<+7N5tqyo5B2F-WFU;C$&c*(Z2CotuA4jm*?Nwjq9AIHtB<=OP$LTu!ZiN;Cue z1sxyT36_`gxF6#qftlt3^4mmn_~W#~hc)pjy=6YXMVGtRjTj_%ApuC2MPRxT;{Q;K~0qbq6zU zQD{mmJ{1nTW(k;pys#V|-VHGSy2CuoN|lYCrB7j3AF4}A-s{H{r+;ZbUsOgTU4T1F z+5PkT|MAR;>lTOBI%tA7U6> zVDOP6XwPq1671>=0!`kE>8Af1ar_j`eH=sE*w}|b2matti5fP^(YKXPTl3idfPrL3 z?p)?4@ocu2VndCm%G|N7FRe6s>Oz1$m$p0e)mq#uRdIxr%5^C)kzzYMZIWvHvPP2rJv2YZ+_GIV6SyI?BHg~zjO{YRUMf93a&G)A>szhOwk0-i?rKM2 z84&U+NQH%Mz?BhvACi;!uePNmjBvUQ`=0y6OFXT%Ukn?EtInh~C}0#cu@F*x%ESqvTu z^O0bnaYFn9X%=_Fnpurb4%5D5nl-BpKOJ)~DDoFGA#W^U1yg0^)31+uV`nNM)GGJE z+4d|2UhedmDBD|Ns%@a5Z^gO5XSfM30JuG#v80#Li~8o%@P^wx5JYdD!BT~*5sjPT zzhpl=>2Y9yreJwhk){n1_BpPOaxL|k9BY*O#Ep+EeWj<9J zLbd2-E3lGRAF$0%KXagLAJ>6NJ~_{D%yu9M!FX4sq?hoEzk`~md|dQU`M z0TLquXWr#Joqr4nzgznD*k?Xota1}-p*lIUF*UBvdHCS;c)m5?X9tJg8m|H(aYa#x zYBtM{6;J#HIgsH(h^I~#{v2a2S=opYFKbIf>j z<@+Ghl_! z1W&92)*<0u>_4vllywTY?)0y50EgA=wyC%e;i3L|P29?Yjza*|1PF7paF}xX2$!~t z{bMJ$zk<-DrMnGryo;#=$8ri+=6;A9r;~k9%CUqQ8;;#Sj?4IdvzKJj9ZBmIThRPs zgN~x}%4Ft%b)tRwp%I@CwKM%-W&pUX;G_JBRws5fR?RwC<*&HdWsYonMt<{PVJ>^I zY0S_GU-teimiD46MfvLr2E}pbue&Q@_>$S&fNkG=={D1Og842}EmN3hLt|PuM0^w1 zO<)k%BH08W>O=v2nZ?8ahTSOmf@v~@h-Nn|FGB)=D+93I^<$*2WE|#?$Gx5;p_rGg68C^`L@(^4B4L6*xkB=c%}zuv|cVW#U@Vw zf10<(%A)cgCex95ZE-wP>~GjhD)c$nv*X&{FC*OIzb|6Q+WwQ3Q2=KPLCUn5K&!ob ze=uejcNQ)NSHHm8J7+>=C+i4Pe(->I; zzu|iQsNyL>M2j8kh4&XF;2UU0^CGSd3(geSCvXYT4FbXBmEsnM3vP%^D5t4n@r!f^ zUyCKPalQU*hnV*c+f$SmXhjC+&aod7O%Z`?-Cyf5oBVAbk+CT}Rcd@p?e9|XR<&>m zoo}}iF>`U_LRiVEXTpcY9F@YS`-nYOT#V+Qqtrc}3{V~O#XZ9TSOH`JBbGOvI%GbL z&9!ds*JH1~atV<>cX=|YgW>Fm#Rl4~q(G5-*BI<0=jHM)F;9)d85K?8bPZ$2oqJAy ztCwo*4_^oTY>8^K?(!_VycrU9rsc%ix~=_%jH;fBXJ1wXGvsTmzV~+fyfb=p+xZTQ z{IiigrMse3dhhz1|Bh9b@^tj8TW{sBHpXG2JragE`#aKS=F{xtIh+d0KIh=-D`|eq z14cuvH&tUGz9pXxB75`8VMjYif9SFYWszR}bvyS*;|k|%4+lQQrer<8(_yZBma@i# zLJYq!*&S8Q<0HLc300*qb%Ke6m;$XVdYH!={-}i(s)%Fk_+Uv|bm}v0_FkgQr6-KkItj^rxX8!YGd$7nqqrPb%}9kO`Eo)m{W?M8aY%`xa+(erKdyw9wuQZN-j;_Z%=fs6i6V-k5}d;- z%gwx76SS?GfMQw-pSIh^4G*GREIK-ae{WOFik0NZDu^4{(!syAS2$*4JuQf4?VUMe zn^NMd-;@Z!3ws3C9p8-pa6*$VKrB9Py*!nnf6=oOK6~I;OB!rXy1cobL|Gh7-HtIghFC!v`>)~f@v(23S9M>ex8e*IZ49y&FHy54d?BgDE&Ia z#4u33!?^I&bz=>KBtUybOV*1+mD|6B)jBelCD=HIX;)=Az1ErTqA>xl8Vy<+1?P7z z05|YNt>;PV>SIBLy+$IA%Hna70!_FTOW{;lqWJ0)<-TU!Zu`@1R-rLRjoVo3Kyp2)B6ZTEQ1V}o{+qYv z6Da4>%EgM)f|~BOtS+0%cK|@H@igZtmT<9K+{jy?bXNpsk+dFDAZc3wOB)wPSe}tvU++#*eic5 zS@i!CuT2&vAgHxAs@fMB-QL@)r^PIRF^$5JFy-=Gh0%kG71!J)JzlMd3wsPc{mg< zRy_h^ocr}cX1-ia4KtcKuntg!l8g^!Ar!f4Rt*+w)Z<8xJwIH25wB;t3e!@4UEK7a zDW}Av&ca9Fbu*e>c6|DqO9<6k3$nMq$F)QvT?fg1B5|z88H*(J-ceP)gMlRyQ;VNl zob-z5{Sk#CF};e*1FU_NnyJ06l?+|HZ+5?FNFhV-5u1u=sms*OXgX6k!$39g^j%<9t>V)O#mm)`LO!~pIf~b)n%&YgNe(CA4z+KCgP27e79Lo$w3WtHb z!h8xsNXSy3N(w)q7*@^lDzm`W&H#S7J7ywx-x=#|L)3 z-2KKg(~d~2AfJn`IfB-Q^iep zdSbX@2(M7)5^($rup_O;3dBy)o!hg zQ=-JVdnJ{pqYHGw#Fc2>zmkbNR-CHIREI$I^sS9?c}S{IrMvg5DqrY9mkXljkQ}MF znn0t$FY%Es)9eDnAQ}9yU+CmFFr1-2&zl7Q_rt#!sY8aAfafRo_q5-(C5D31DSgm) z>vM0R>Z>2HN}kRQxZF%^hOW$Z1o;#`7v;3n%LE z+9I~7(Kn94!4V{J;)k!#pA9En2=DGoMn=wsZNY3~v)Hu;MH6j1{h3$Zrknoh9#PB= z%9ov5(b6y`r@xenK=b50-tUx;_QF?Gjc|%~D|Z#C&cX#}x~Lp%L(YYGCvXhbwu1sK zqRCbK-itg>3v(eOUe?``Av1vCM@yv0eD&Nxm6S7B3`J3|-i1 zQ|5N(%N!8N&8j+mk?P=FKOR&;>Q21DFEiUXiZvGau?gZ~nk+<5zkqi(sf>ND9RJHO zT_rvm zIx(VW-0YW>jMoMv`d%-ZQRgsVg5gTv^VUm2sHV)MS7gNt+n`yXlR88AMUTqe2dtl2h_pZyY?Xh2nU_FN#)loCj+GNiCIaao!PF zf+|cu$2r@9u#@~RvpscM+I~iROX#Atg57gl58t|MqVaDJ#@{s=a&#o(Q1C4=xjZTU zw(F_eND|lVbKxm@%@b-ovnDFCM$ZKp#7pUx8RNNu3?{F~O(??@?iHP&>d~M}A27rDG&N5`jHo*?Q>q!%iaqWTr$j zNi5Zh3{|bCEMLc$&4a0Wfi5P&F|2bk6#A<^#eFQ~974XJ#xHRnKdnEZ$|coQkNNf1 z?yVzeKx@oh5$Saz`d~#3W}YOibn^1oJ#9gsZzRlH2qXM8_3YXF42N+-`Tm_KB>Q_% z)aluiy2}|U`eAk8>UHzESe^4{B5$Tsygl?4=<(=AO%8Cfno#q=qfPONaH5+Yn#u=c zUlMDBVr21_MIOJ7*%dN2*X>p^6)mxzjX)Zi_?sMlT^T})+QcPsuo`dHoJN<$u^L$j z9T#=DDFNps8-#0IB^-z%lx97SyBlM|5;m3Z@@VG*k?;;=hQ_pK>0Qu@j{gFzJd#gE ztX(C!XnbO&OGiY>pn=RSx11xJvVEydLnBpiy@fth`1j%zD=w^@W9(Kr{KF+YzgM=2 zZiW)%RrO_;y8AB?cEq8QYSP5bmh`fl2l|H~Vjo3op?iDFvEEquRz2q2;LSiw;cLGq zm;Ot2DHUa}g6BE~E;SNnX2gcS>UyxyqW;MpDfpIylQ$Wyz6SFz8?pJ}&vh4tTj9`} zXypFv^}YI-^7LV-R?$UcIZNC>h0Ow4L(SYK7Gw0&e#TVIOm?RrnrEgR8$tj{xT;ck zrSE6!67dc;g_Bzg>RDw4@Z{syU+1j#(~G&E(s7 z8B>Q7g~vq|d&QF{ZMsHoY~pxKj^1l&v-;yjU)!x9q)%<|Qvp@d6-*(N)sfDFWSq7s zM?LfZISCNN<}}1Z@&9XatbGGQR=E9~X@+(XyHt4+y75Ag=Cix~=)?uiB&*vA* zG=$t$fK1DMMEvGcO%f3gHp~$JmNPjH!WG_>+aax=akNA4sAc(NWxFKg^i)EcTg|U0 z((H+I8(iBB`f8zxAw3T&I22T+G5*xYfvjpsXP!TR5pcyo*Kq8TKBcBWC^mM=dytWL zxf0;y1fK0dC3}g=y-2D1sbwmQmX1|&AWV;E-ifk%Rk0l8)AD!rMZ#k*5r3E=j%1yW z|L&43st2`|{~qkbs{b>?L!r!4XV-FDn*Aj-a?_{n(h4T|xarvy3#(}A$v$zfXzmN8CSX^Em-Ifj3D z@@D#G><9=f_h9!+#wi8 z9)xPt!I^W$CdwnZK=1Dqk*n<8PAgTAGJ)nU9(ei(%WM~J+(6k$*p@ZrVBI4GOQ*S) z^|*0sEQX8LzigZacPWx=Lq{*QSdkN*i%tq*Fk!l5=w&G>(|w8V{Ah^-S51| zqK@}VpnAG=cauvaca80vNzoHGJ!D3{f65?;mmbHvUBb*Y=dV_6@xpHWAXUxlLgnOi zLcU!O{%qgGSIq$-Ud@{PVSd{ZrBN+uhEPb^o4MTJV+tzfQ4LD@P{Vx`{B z4nuce$>6f<={QA2Rlp5w{%LUI*I+A-LQY#;AqCMTV}1v#(4DOCLH~DL{p#<_XeW7& z2siB*KNrjW)Pn4`WdS$*ykRJ}vb4*9M6&hlaw87Op|30)6G(Gma-2OtrXSQtm8=QO ztlpRYFWpp&AQMY*D>isitP`w8ivRm+P+bul7;9oMAivQdDI4COPk72|QOZ)!4{NnC z=AUny;Rmo@wrG@Ep4`a}Y*qdgsRv;uC*<@JbuyDhY1=&G(%*2+n-wk78KXLOq^iY* zMsVh%p=e3p7OO_e@qdnlmN(AYSvC{dxf2rOCo`p=9(7#&gK(pfC}GsZHvZYzseK$^ zlGoh*`F72exW}Lc?l&^(mFhf@J9%nWE7!h3VkHfNh|=~O=$Rv1Ze8*`IZ_hoRKJ(` zcVm*rao!{u-V{6LFNS057A2N8PW`o`N@2-Y)(nlB7>sLtLsKFpfns2}-ME>mC z5aoG_lB)YNTQ6AwR&MWWTC}*kQ6#Ucwp*ArB@w%tuU4q`7f!U6_JCQ3T@~Eg5lE8O z%XsfX`^m#Fzse8G$cjQO3|AZ>jaK(OH{~YDZmoSIuStdzjQQjKhQxzS-fW(1OY@SF z*;(;t2E~e~e9xr0v-K+n0c8UtUL1}7SzG-csbfm>zc|WUtJ<&$+VG(C+o434-n~@q zev8+8|6|>_cYE?*{gyj7cdokz#TK*5|CGuENpg5BL1ruOyNpVmA~t)xc~xo692!#C zz_FLhPltYC7Df}=T$Fl*&oZ|JP3%>vIA(>o!N%rd*tuT8`KeRs9l)-VJhFi}ery6l zz!KvpwN_}T0$O;2HmDLo{Bkb5>l>#@yb$j8?$rNL)+%Fxp}Q}#o=k{b60dc~{P1NC zl6|-!W)v(ObMi9hT#dIUtzBAVO=-?(B?7Pa`+Y^#uh13Z^9QvOfLO`IFZ0rOe-udr zF*U%v#8>;|>{0f`li7tj1Qw{-F8N;EZ)*emf{{54t#_(2MGEvO^kTD8Vxf5dP4HW|&r9UL?XQcY!;6>*Zu)dZXH}PaUz1-w7tgtH?_0D>B zM|v75b6a8t9B-C-P>A)z1lThy{SU3fRAcx4l`G_Ql8p*v3x+{^oHd0BJ5 z`V^ln&{qo_^Hz0wbx604d#QyO&HF(y0#t*%Z3EPaGT#-nMG>|<98{;O;n=TTFx$bJ zCnN`zRMA1QrxHciNU1u+wS*IRCLX}hpPURK=yh|{whr*morlzK>2A?1=aAM3%OcED zU*06>By%|(i0RQwn+ob3$W5|C@IsnPNhVDb7lX%@!Ye`d;Nc;Nj|W{4im5=E1d?;%PbY37;T5?s&AHCX`T zt!dVSDf7oQw-;T&F)y2|rD{Q)W2MI121kf_LwlTc78k&=ulJ3B@SgBwmWyC);Nz^u zau@c)?L>mA*uURi+s>Cx?o=+vcnM zi67Vd4zf-eVhiA{&=Eqg`oB#}pz&eaNaZ3CzCT8U9T&@%4VlyYng0~;YhuhQ%q#&i zkZgW*u{>L@GY&LRjts0B`u59Gci`ioyE;Z6a+bkmFCBFxG&_V~RJ3H0I#w;wd??vc z);eTl8FhVVbgp0`Ngqr^ipL!Ab{tZ+|9J>mS=7}&_f6N}sggI%P|0flA${bRla2ox z*-LKJ@>fx8aphv+zv>H$#+{|Ld>F;~hi}QudzfTROwH-V(mKQ;AD!u%p_v|f6@vPl$k<}D&F7Mq{;7g)uB%>DCZl+gp%$kGI})c; zwAkqs?nPz%RpVNc;^Z`s7gLjyd~HO9hrLAD)8XKOIhq2uLfCP;KewepEHm0qX7j+Y z>7aTWj7yx7kYi>Q5A(>wB+VjIt>fRrx1JknVw+?X5 zSBdcy{W6p@4<5SwJME$w*K*gti#kh`l^aHWSeAn9c|TjH#8KXUqH=mu_a<<$*z4Dg z2-2n6;SXIM!}a6wKGd6W^h@Kuoxn}sjR?L<2y{$8)u0&du(hcBN>S{WOOGy|V^JWn z)50ZvRqoCm-?vvtT(Td|fn$@ys(ZNtz8Nlm6j`3?5|vx$UA{3(Sn*8uYhx(u@G8op z@;B^jlXN3WEmYo7XoVp&3mlDUq%HS}j%l;5h4O+doW)BPDpX6NgS%EfTz}cJ^gE95 z=vjA!3U^TsbNRdFS5%y*$RRRbLg*RU4=Sz}*7VJ9&0awLQP;PP#Wtc-aUXCM;)z~M zFZ0|+X>FAK>&w|yC6L_z4M=r5rEnBlNr(#Ew)Cq{c=CD%r?{7?sM)XSAITcDOqWov(6;80Vn0j2x5r%Hr<=-} zRqbIwM4SO|NGTn9mt-5fT0+H7%4vbfL9exR;~#ox09eJMQ8)gPGRATsArBt^Q}c3% zs9LW_3b$#Bw@hf?WsX5>s&D5NYH`W>O<>Grt520<0+d~7!AF(<^t`Jv({bX#xj~&~ z&1SIGaGp88SCp(|L@uO6<-DQhm-*TRKrEFYqkj`WF_=ZQj}Aa+5UNwCW@D*FgZYo8 z*{bbrU1-noimUY!u*J>kYh{gIO$)p(HcKZt3bphqhBFAq>z?FppuCo#zg8e%8=0uu zMhX9HC9(B!&tJrwJ8<#kl>J`PmYI*bOhwy?G~$>2Egt69HLy9J0SVBUQl(gSj+IiAeD}9SK@$OcjxbN7Re6d-?%ycGH!DHb>f^`k~h~(`B&G3$4%E|t+f6hNnah; zWc$AD^Voz4Dj_8x?dXtJN$F5JL^?;q7=uSa5E)Er^pNgmqd{`?$iYaZVT|5rc=`U` zfA7!z$8}%#S;u)@$8i?u#D*v@@?mGMdjw{8^tHR6qJKfB1C^_tRouQ`*=a-lLh1D< zAZOAZbXJO8lflg5Oqi24Ic0T7mcTlIx5)(YW9-is(|MIqs~-xzR#_2I{NEyj$+*9C zTEEk69dAvJwPEYsV9ICgJFI$sNiS5erJpyGunQK8@0BbB8wG;HHWqDGGMCNOlcEce zPeF8^_|MJ}u1%3-H=`9d+Jtm8arXehwh6^Q-XkAQlo2}5z{fF*MRn(~<>UQ3InEL0 z3LRjTiI8~d%dp-mF#Y9h*D2X3>zb|q%UAa~c5QTUt;=;zM;OpcbW^%rZni%=(`jwB zvz>{8hw@jPi>-=y|H+^9@BBf{_LJg^{pQ7IlPcz-36Afq+0xZXmZ^th;r%kf@)yJ9}4KHpN#oE zeL}4DiabB}?!nqN^VK~sxt!VdBbn{HsDwKOX2bl$>NImPLTh~IyL8UxbW$wh&gKN( z;TPBK3A+!1=w@$&`LyI>GO0b&##{DH*JL$t8ZjT1`6mnYG&i`E;AJ|xM3Jf^+N+3W zd~wXgtjd|t9}e%&QpLMjHdI%Y9cL2J6P9FXu`JUP{lTXBne^U&)NxH42^P@3rrd3N zy(+QCGcouq8t?6`aj_dE?GpNHerXI{=1ntkqu7pnwODy0Ve?>^4g3d1#XP$uOP_0{ ziKCtHe8P?{G}d<(FJOed?#u~V0k7-l@CtbBPJWrl7R^8-)KCwp@vr_a$UHT`;}=u7 ztE7c@3aDM)^p7&-jg+ujR=_lDpJnRQ5D6lu6-ba9T}A;>i??WAdi4)4Lzjb}O4I6o zqzm@rq1J<~h3i>&u>8+PnJ+y~rOWazN1b9NfiwO`lil!97DbA~nI~&I4Ur?BDM1!J zb1;xbUG&-ttv6JVX7TWQ%})1=SE{A*Z#|63GCT*&DK(Ic=TT_0oTgO~bm%jereB_~ zWEN%&yF@JC8I_7J&DOo&{a$d2NR4R?4}-k0qk3ySFcwC=SPwJq_;e)5zT1VOd}U-i zDe`y9+%&dcweK%^#APj9kHb>~cWL)5M*Gw3({VzA?)eLq=#Nms=oIr}SEN*}+X^6_ zV0elV%Obiw$AudGC`b!K%`Z?&siqImpnRwb&_j+tm4^A>|%Hpg3C_;^o z_luiC&equIR6!gfvd|~#zp-FVr&+B8GaQzg3UNV1JpUjKpcn2s{;Y&B!suRo5 zU-GF+QCV2+Uda2HZX!bOQj&Xn-(1j0(cV@&_T@TW+4*)&v#2@a%ugT72;rTsLSc2y zvKq&_H&&W0HeJkq+Rcmi?T%l*KK#z~m0Dw?hykHD|D-+h`s(sVB#7Uj)|m2$aXiGL zRT7a^-`3MVH6UHMDJk-&h5%9F!Mo=}6=ZWx_5gw#frv95EPoUT{vv{0p!}DRJLb2{ z9%SoDGxmsB*(hmou<8x96kQ2^DK}lBYPi!>F7&^X!Ysir&r;NVtobIIBip)H2_z7+iyG1i9p^(}LB4J)UKOHrH3#UXOi z03yLyXMzKEzn^n!mT?NjS%pf^-Si^B8@!a}DfLk|x8ShPX4$IpRWDBI%(w{81x~ zQ?HezZoMLV!4%!A4c_Bxak-UNRFx27vn8km&QP>fR1{EmSdmw3wnnR?!7fX!^mOJn z^LLEV>><8@bef3d>pc&=W3-r) zJj12b;Mgt$h*{LFhoiqs6Kft~JfJeKnWav6@4mCD=r$JZ1`9vAeBLX;+hIW2rb=Uw zaZCftD1NqDz4k-a!g4W6x3nmx$a?~hnj z_|trA@;&I6Is2`!%L-GQDt{+&hgo5EB)}kMun*AjylG=ekE2R=RmEM|JW(0`Ne%Uu z|DBR2Zkx`Ecn(I-e05zY(BBc3Y9_;OuRnB{zG>reuCNk2m=DmS#8Q zEvlQRUcTPmPS);%en1-mp8y|d2HtB~feZW4Pz!5zhiJ+g8#d_>$9N%*rW_4)oq2P_}Hm2VU@e{Nm#Hr()w%pEw`}v#SG1 zqLTu{C^l!Zy#mLmaxnM;AB}-{CZhv6NdMl4`xRrH8=m7>D+dxA2@82LRWBFxHuk| z;>G8W#_RL5+>S5Ki#&UQ*ub?=`Lc#zhklcCT7XpVM2)aAkWb(kZLH#uqtwlzTAtsC z*+u4NoWgh#31Knh0t<4in87W&SOxWdQqo8V-{Z5$K&W$a7Yyfb92b|euH#qIoDZTF zI)iYFK7E-^J=F+%)AO&SGEe{i#|=GBhpeUPGioMu;R&rB)YUs=-kt^%?o;835axG=VXclwybG!|XK z3T{-$WNS6CdgCM@ahXJ6iq5ZH^L^?BTkL&0bDxC5uGl#kpjK?**t{5Z1H%Hd!jem^ z#mOA;XJo?;-l@)(t&YqLH>9T2KhSQJ3npVM8XKG0B4fV*@$}%r% z>bWA9h%wO2;5nmD5d-n>YdHdH4WzE%Eq(BrQ!@m|Gr6CNzmWyY&>3-I5KNO_(NTL| zwZce}&&;N)Sasxsy}`?=)atD7hn6dDds1v_Tk#(mJCFU>`v=*rX0fv+m+;pgPafka z2m6*vcK!q4P~v?gaXd%ZmH)hpm%U6{>%yBq`c9GmF;4^0Br<*#4iKCnNqbK~OJpY- zt?yvjO0V%u6GSKc5#*)=?qp`EzOctE)7sFjsL25e=Pi5B{G+kZNw9WU2&o!=Plje} zTnuEno*h3n=_0jzX1Q|wcbhuRTpxd~?aiLsTu@XA?BeE@O4izvDqUlPQ4?KQ=SV** zsTs@nKf5$fgPAvCRvnyN%5~uqfr6};aV*H*O#41-i}woY(o(()6KNC&s;OQ~UYg79 z7B%0J42PTG5Gxna^FscU@#A{~QcA*y6|N|K+>F5PCVOa4O^tWpw#ENf)PN3T@_$vr3kc&rTExa%H1)Xgwpp z=~xLx{TyBFL@LIOPqA-Ri;y~fQnWGs$p9qh=6w9ZNvZ1JY!m#a(hNj*z40PPVpe;M z5LOn`93xdjqdL~uU$E=VbK^5SQk!#|$QgXg2w+cm%ZJjIEEVyHfg`s4$@qla=7uxS zL0NA=_=#j|{spg~U*><+#-sA3-CyAG1`YQ%MORQ8tVd*LUzt#%C2hV7I9$S&0Kvy| z%W$)5Ld4e2L3nyl71fCa#}*#f2b*ECum;rMo9`qlw&f|`Tl;ISXeep=RUG)l8Q%a? zONKb7mNU!C1bgwVf11dMPbVzg<6@oN-0Dh}!r4@WR#@a25@Oy@Q2>B4#L zPcGN%6tycNuYF%le76W^hY~s}-6*hO>Ay?4Rn()DseC_z?j?7Z*d@Z$R_g<`44{rm{*YxYN{3(JdrT+vbQ}ea-U8O-O%Dt zKV~_4#`w*2Dv>2LxbRsD)5H5wf0q)EK1)q&w|zKhe<kLW6<>P5XYlXN?%S2gJ)mN>iAk-MqW``H~j2FMN-)I6iUQH)EZA z6ozxHY{OGP{!HkmWVE_mDrE>THmnG)JTozW_{VE@3u{)LZy0DGGl zTAV?v^NzZVTza;zyEGX{;8_Yqiqr1gIY-y4C}I{E9>oIGoFI zR~DO-LOn^I6^^&d$X{hVvmiUAWPO??{!KOJA-ifVxf>y@+V9=?zd}n9(2eG7hw4n> ztR&yMljw6ju*1-WtlJwi2DLPN(7v8$@>R5+&L*bauL0Vz#8s_qPoRnu^d1oHK< zN1&FEpqkeI*cH6bCK}!y%Q@Q(KX71Cp^njug8%aoORtkS(l|?Ywk3YL_LA%8s0-`u zhMdft0by6*cVXZxb1qZ!j|H)NmoM(p^Hac%}IXGTdF~H?=bHQTwWMVKrIT>zsjq&OtL{|0{b#I!#|#l z4~nK|I1N|QfpAllGe_Tyw`1Jvh&zj)?JQ-cODh1XuQ-j!;)x7aBSvQ?$__fKPmiQr zwB7pa>zlj+DFP2t4-#{Kd`pE4Wu8s|Hb(J5oJ!%pU`;G5cCcOl^V(o1iB&T~6Vv8> zbu6uo`!~%zc%9n8gKuMp7OV<+j4~dOT?2^I+(eg@jj&*hX;dCyahn3jk$Ea=Q90&s zL0Dz_p7E=-I<7jGzOGzyn1;8YS`Qo=KjneyR7;Ph-DD^g zqr+-M`oR$v{1TIYQ5WqyJZ5)|as2Ka^xE`+a)CZuTNBV?8)VIn+DZ!tB*#Pf)8Nj9&TFe06E z0V+ig(ZUk4V)EXS+)MC(p8D3rEOiV-Y4&Kk8%h!lDK9Wqpyv>3(kW#C(DI0rS+Q5O z{yQKl>ngKR=N1YajzX4kh8ax?+I?diNwh8e4BoH=v&|?m#Ej`*CHab4_f`sEmrF?Oq&+Gmnd(eel5E8ehzK9G;$OC1Due=+X-p25+C(S~JA zW1&>by;jVeheb34l{joO#t9`8kz9>hbyoN!lG|3#@{V~%rf#rPXf3-}TqQYuI!9UM zykj+#9{Fl8^yeHx*CNXY)|SW+Sa+#uTWcE%6Hl~>nq=dJD6i8dPN@wrKapo}Ezk>3 zs)>2y_gtKl+hePR^leVzD1G5I@%hR0!?s#pUlzHRfDN0IEw4ZLgk^i~-A(F4F5vzh z`M@AocsYu@YeC=kSQFxVsj*nHNo-lk-{l78+AQ)o++U*y+-`HBJd&FTITF7Ad&>OE z_N8?HBdng3_+~?X>6ci)cd)Xjo${5t87_jy@#SYC`2M-eYB=;J7loQ~YC(j@E3JP4Eh!U^c(& zUk8>_i11xP7OCg1(?oh|jX!phZ=HFdC11Tfm1XT#vo-gBs+LEx>C&$IVpxPRjAXAd zXV6~>(ScNt_Ak`qEzT@6lP(tO$K#LVpPLTHR9e1+7jD8T`8ZAQh{$vVd>di;*}&!W zL(@{@a|tD8E(dl=E}JRxYjxvD)x?NI85T74XdS0vN)|W*-k>*JH)IqCs8fu*PDMx* za6e~}-*q88NTeGUbyml#4)gqIwIo}Ke@#dVt{!4&XyGVE8gBRxuN=;FF_<;Lh8I8f zz;COoO8>ChiiB1zO(WaadR>*?)XmeSPUJV!y%9Bh;iUwWX?~J>v3jeJsc@da+@^RX z|0Yd;85wbL113{ur3(PsRC@`Y{pW&aCe~3Iu^;Y%^Eq)z)@V>vmt(nxjKbc#k$+0awLQi{%5IRraC| zLJdXZqh*7d*sui^_P{qzeYJPV4??BLGgNc}EtYn_5t@N20H1?65vRgntmj$~W zs_4XAR7$C5X7S+2QAQcG8&EEu_3U=RjmBy%Z`lnGHX!gc)+UWcdaq$<(`e64%(4+t zg*Q1v7(SXIR=AmuTMi5qaSeGmoINQpsCDg5lF+h=uu4l$;XE@|U{^pn@!y?!Z22vH zoIOP7ia9U+OMX@7daA*2E2i%IPWQCVWP*s4Jc{T1B+jLzjt2~n0d9h)O_YH1sR!=o zxW?5LD(xV%T8fOtz`r<`sk#If*{N-9+NmS>9 zGhfAsII9&t#@;K7TSkgJOz0;sjg-tgU^J9AI>=Sel!gyYnLc-1#Y?ARR{ zISDEj8QHbQ&eR&L9O+};k9!YDeuznBMbP_0G!_-57tpQ?r1627R?Ft2WrUy>GO3P& zF=*TK;E$Zh@A(E6pNH!tkJqn@x=4X0PdA zdMD6)?mbx!l|r2~hS*ackN%HfI7`L&ADm7ojO{`gvR~Vp@8rD4DY8|YEh;99AHw$o zL?jPqBq!a|A7ImKIg*S{&W0Z^{xT#rwm$0znj1B}J+(kn0`75Ogl0JOrBKPu@6wj3 z8YiGE^XS;hwH*+z5CPCNsj|8pH%)(U*(zvmufsz0AjOVu{ug+sg3F{Cq&01OKVp(%sR6IEbqh`6&&(~ z<&$0rvmjpOtm_Z_nGojxtOs_Btw_z)2#uC8t1KkfCZ7!7x=`fX5L4+e_DEnx6`+~0 zh&adh8d@wT3cDlKv;K!w1w+AAI!#S{ZqCN4p~LrT|AjVUW5W|wTp23GYjHv66Q9?} zI&|$brmDuiYw`C258QJ!ES*2QH500@;Yo6dbrSRJ zEy=T+T~%x=2%k!%9`{Idy2pi4e$eKqZhSwZTD{K3RAX`HYQavt{qdUML@2nt9Y z)d%^=?lNO6w3&nLzZFCJ1LeK+&d-Ya8dj^WZ|k6+csqa*-zKYfql>B>zMS}!t>c-7 zS#me+(A3L>2z)_LDK%(2MDc8U@NuYoT_x~#6}NwIYuWt%Pg6qd6kJu_)N>Pv7rHra zo?G?~-dxLJg}OdCt(bn+)B4MP$fL#~fv$&X_Loik&9u=+HM<%HiyExOH<~8{Z``gG zry5>JIp6;0Xe%<(Kfc4Re91QFAw{zJTS!jsW}>Bk=LbHSOT@_ow!U|t(p%=#`s{e9 zSZkt}E%LslWIHzTLKzZH5M(b6{&bj|R&v(N#hEO_59|KjYuOgUG$RvAm_L7@)_mXm za^X|pmz7qdCdG~xC+ufSG8T@>xPbS~c5AYEdfyP8;sRNjf91<7-gL*a2)f$sn1rjz z5}CGBZzdY2=-9(l1{f4WSSVdQsqW?@mS-Gj=0d&+G!gps?iqvZRj--ny#AtU;=z8c zkC?&DZ%HrZOYP{sFLw@(=BCSbQV*VmQ#Ell_?Y>XGS0=#dwzJ0{R{bLFX%JroJucb zhS|oKCG~&H8AzY{3H~GZxP>DBr6mmzf&B1Ej@8uCPi2qviYa#y`dxJ|LgFEz^kJb29! z*nLz7D}!1O-x|b`yANxt0ADoJ*%81ave#b8R6}>=A|#P7>+H*GBoj2N4c0@P*>)NN zP;EqD_8B|sYQ}TFDyTqJhtxb56X`ks;ZRhpyH#G&ik4%jg6BqCK8>%>v>CN-71&^}QE@-*Aa}@)JYgR++ zcY?^pq=)_@%LWpu9DWU%?JHSUi@XLWwWF*79YI!0z|(JP_*WCV4{iKdr)V4>*1k0# zQ00Kt#BvK*;Vi&y7Uk_8rbf5j5GxB##R{*=i(YyZ)y9X~)4Pwc4&7nbV2@vxnjQM$6S zz0>$LG`eFmAUtST8(llS{$i~TnN3RhtY-mn<^4H#n@&gM^-PfYx{6ZJ77}Rl*xPmZ zRixzf44I}WX56`Lg1QJ0={Z1`O+P@nH2bDq7c2yX%bs42>65J|9DK8C-J3-gT=zRA zI367R!3j>u@1~J5FVdyf->{?{(#$>F6WDeldP44|-X_E>bX9fHpNA10N?Yp4fBe{aP$NgaYxD(T7-{y4mBu#G#;p`EwWLf*gcI zCC5cmaEsonQ9LqkPw3KE0@P59_Kw$3M55J@FBe3nq@Fi)UdoG_vwMcoNAtIt{~cFf zN^eyrp?hSLmI2-w@qf!Zk&A5ypxGkx*LBJN=dW^GTwg&a9o|$C@Q0-3dgw2BHx8*u`v_cBA0oMGnS%|vKgkLdgd?b4TuLqWAbh)(4 zeL6S+72zOmtgvXAzQeP{_*>Wk#UEuqJ#phrJ|5B?M!S5}n-I^Z=dc`@^K+Q6d;=CXP8{)3f(fB+&AImgBj*i2KE z5iGl>x$W)fJrZNjIwc+lc!ElKVbe zA>BD~XP7=c5^{j$Hts>7Kkt%n9ObBnJef?2BKIt5`)O4@sl`)XB1L)8v>H2mVJGP_#c5rR)(f!M`L5jNN&jNSG z5cKd}LJUhdM;$QkD%S+okfA!g^&nhi-AsiDsH@3gR>7k$2gM~nYc$HYBE{5HzMF@i z#e=Id7yCTKo(y!N55i`c9=x5P*ZL&ZMRL;p@Z(LPtIky#g5O!|parkYPWBt+*cRyGq z&g`?-kMVVx{zMGtOM~2Gt1=Va3I|Zi*9rwy>1ckS}g^Dt_BommfI|5M~Sv8 z-RTsLLH0SndU}i&RC`CfTfng5I`D1Q@x7jM$Ytgm(D3?97W`f z73?~QO{clS8qyX`i#9En1V5z^Hgkf zzC?J?+;aM|zwgl1*EMYQl+}DN%HrWWKh=9&FxkobebdwSA8a>*D!wIO9Fk-ENo%I_ zG&d=$s9Y#-HyWucdJqlR0#Y&)BB#r#L$_k{IgCD!@;8ypqNjHU%ajyN`lGAkzo@lwGrV_ssN&vbI{u4PD?9kAR+Mx9 zCN*w*tK$7{(m4A7^YHHBfFX-<4`qMu-otvE*)AUA8J&-=C$bZfwrusicB> zWqYAdb$KZpjuCD7#3>sVyl4%D5Xcbg#b)19`3MkzJl*e20K|}>o=ERilk!j&C8D6I z*qnDHFRu4Lsk01L>y(y|M{Z}7^sG}xxs7(^-eO)<=Ca*(Wwq7}OpuAOHE++$^xrGD zjM&$Y>RE>)BtiVO=1?eI_`#^8vZe~5c)mQwBX9wtEqNdq_UFq|F^KZ`?eE1)? zp+e}Le|OE_-dML(Ij_5#yuv0$d%b8-F20M>t6oktKBjhjRI6ItUBjaFrwZPsVcXED z3cDi*862H9Ak$@~>fjuqag2Hyx{O03@0i~FyropH2%cEWo`l{0*m^HZf@RKfMj`DI zf}7uADcX2PF4*JfatIo~Zt1nR)DWWZ?@gMCY=0G76hRL^&_>|;{%9%K2kdJ~)i&lp z-on&j_NUt9%so*1%sZKt2E3DqtbTYC){eHq2gcvZMplXh0CMZTL=f%)ox7z$SjrUJ>} zhK2mBe@B1RPECnU6 zaEr56ngAsns4BSVF9^PGMedja6{5L7zC4kF)0J*LiiC=Sc;$Y7PG>lkAj#MT@LUHGvn5`h9ztoq0_~y&*IviG!ceYv%2MyA(qn;O#+jcl)XhJSmnzVLa0j0>}rmK44!E~ z&^Xa%UxhSNj|PB!CMw0utSSWQJH4;y71dSUBKJEg%4jL4>sLWk0j+_RZ2WMYg76Ap z)s~A)Y5@toO^Ds7${DBTfG^GiwS%kh-01G^CK#_3!}r&;JK-_{Op^Z9w`(Tv$1)4r zuHGM*F5ImMlhyBGozbY9MpS+&%n>^8&~3%_bC|mA;*QKOa~zt{EBmZlU*b>^wD@4K z>|-aOI+_0^)s^cF<|uTRFBk0!MAm-yX{zQ}^Z#0d1kt~;dpIy&V`Uk<3K{PUQsIF0 zuH+`_0=pAdw%l~StZCOe21LAG4+bu~scWiey#e1GuU|uoax-df=6}jnAyk<1woib~ZWxPQ}*`xYD%EZ^+->koT z)PF6gISU#GpmTp8BkAZc@XVXEIwp|h*Mu_U3oxDkHZ*H2cP#TO+3PGXzrx_Sq}CB! z_ARNamR++id<@;U5iQ$c8pKzjkSTLrN6V=9$)u-;PrA)RWYx8o9I2CU8Mo^Z;k=1@ z+$UHzSWH~b4LYpai2^46CA5a+d&GG4gP7qHD8*8cwel9@Za9U(7JU@h_O%LL0f-YTJmDIV8(Q>gA<(w#Uq?2+jAh zs%x^JS2igzH7^}5Wl36t=X}{&e#;l|)qFV76%qY9e}W+{4c15J-_E4KbomH}h%_k) zLH!R$#m~K1OBLFFqCGI!Ww`rErgh~8&#^{o{Nfx@IrXNKU?hEuE%5&d!LZYK`x%$- zhR)Wwlu^Vd{R+zf*$xkcF~Q`^|Ce13S4`8c?S69N#JwS$hw>G9pq{Xaj~GVeGjzcU zlKc1yij$l!T5c!cbXA8Dvdg@)%jNrb`i9Um{&xis^%^np?N83D{Cxtqd>`cV@8+|1I1V!jb{!lEi%QV< zSSCl=NkC_hfg%kFGI|#L$5bu6+%*oJ-+4egx8t&XFJ0A_IQMBy5JFSB9_CgEPf&{O z*Az}FdrbIwe1KhVfk%Yk^SZ&^s)D}@7PbwlIoFw#_`kOG9yWeQWw>y;bzj&idvcYP z<0w`3jpzky`a{#H3WA_2P*mfl!J#H{R{;6ak{!Luu>6TWW$8rL+mA{q8lBJ;<#6W9 z1d-P6xdCT4-G^8k6EC~FQ-J5pf}%a>h~PL0GxKrGLu%W;2# z%Y|wOZiKkYjeorxTp;k>jmtt$^rS6DT)g`qsDa{zC%j6dFN6j)WNO~7^dXA5;Sa}V z=o}AU`u74eOn!VSe7{J5KK@^gr3?rEp?QD&I2sG0aG+NtL~MTXpwj^0(ovfHJ+E*l zHr0oTC!+iJjt|im6pqK9fG_YjW-n2Fg;I>5PxSttQ(dDsbw?Mx(_wAbFLQiUeK0+o z!Jbb@T8CP5b964-kCqK2o%)`TFY41D!I8d=3tWr4F@8>*AD<0@tpo^=zY z{Rxd;c{>4fE9TdmHygYR=p_Zn{yp%A*`KfW3=+}b__=G+2jP_B0%jm{Gmt$irQMG# z5{UcQ{bnTMtkbyn_@og1I$-wK}uhZAldQM)<@&>ZB7Dtr4HPZ z$&!J8#=w$;!>J*rv~X#|xAyH-)XlAo8 zBR6FxAZmMG#I5aUg}0!&03oV8XH|Ed$K+Mc7-WN16hWXc^hON#qBH~9!zJm8YQzcs@FI@R6`N7BkwN$ z_(|k)#|q~XmUr_LwkFHf!*e!4EXJmWyR-JXY|uBUL@b8wlsFbwv%Sv0*gEBz*pt$S zh+VdOt^-}4cv!+AHT*b+1}4Cg5<@U%L^Ei*YsCN%gdo&58vfte$()o+{(aU9&U@ zRXXR`Z*~Y9k$m@nl!;m!U8oW=co<0h5hPOgAW(MVhBH)!6QIF*(4@(@I;G6XxNZwK z1gcv(JW7`Y;5!(FAZYp#A0N9L_PAr} z9`bieJv_^%Es0t~V7kiZw9I|-Oo9W>4}%?yv_+hOjDrZ`)KkxmqeQxA3$?uk%od@1 z0S?VLl(F87#?2Mu>U~y=S*kE@y2oDkVqIP!nSV)Ezyi%7WT!p%Ql%>eL#(|MmT0cWqzFV=FixBL@x1e-EA6*$u^-^6kWS6Q;n$96h_M3aAL&}rk9ph{ zcxs~0@l z7ZcYFalR-<3m01UUDD2NDCib}F|+wTgv!~+S-^}C`S{HGb0)WsGjCg2vYb4t*J0bn z*t#sW+@XHdNkfln500P_VA%&K7E#vHLMKpb2x{#ugI>DwX-trO2YcfXIR}7turciG zs(F}LE6bsRpH|xC7d!DUan!3`XvWPA*k#Xt55{2Ri;p(!w-Tt?R;XxRB}B9inmX%QYbj!Lnp8M1j z`p$|Zzh;eBKNDoW{o;A%W$OJo6&V2C_{F4fwB-7e*(X`iw$i@SW7cM{z7hQf2QEeX z+KevvquIdHK|mtDU7~Efa77;()S1oM`MqfYl+~;w@Ro9V;``7@4xh$|cTQblU((P< zpUE`1ST*>QQ=qZi>mJYEAJS{LHmE-udB2dAQ9h^N#=n1C#)C+=(?^95rSxt*G!oQV zLA;k$_wGz4r^F1OAzCm_Z_BvX_>$sv_*dQeRi}yc!MBI`$s@J17DsBe7-|t2az;(9 z{BH)Lp|LObgE#V2R}s8!*;zNcA;&lMXdVo`Vw5`)bR^h~1mrfeZcQ4pjJ77=8g`DJ zKPxJenH(M5pka9OxA;~K{6Wq7&%$TQY464*wdKH>qU8=c+SC9em8Q%$lP7w1Z=WQ6 z8zXkvY@NpYy z-g1>50Hf1Jikr0>Q;69?Kh!wFybo$0X{jxU>E=Ox<3v$dcJ=ViD>4={t*h@d!BMyJ zebwIQE?;lV@ww>t0ucd#(D7quMJdak988u2RzSulR78Q?_AP4-&rx)9BTC2#hab&v zP;~4~IHEz$jb3dJCdXOEEo8%8CRI&C@TGM#sqU^Ih3&%>WW(HK`I>zx1A zEWxG3Chv;5{oXf=Uq(V{W*Jd^0Fl54gU*k#LF>;)$3%QjW<<`s&^2`l33sLKd+Lz#G<`>C9r?D=7CnzATpyt6xyKi&2SR3fo%h$%M0kM%m|H7s28-FD*^= zG>VWLn`p(T??YQY4gNxMb_96W3>?dI z+w%ykV##MY2r0>Wb+X8_Ok!Y1%*LSIpn0nup`1y2HjV0P!K3N+->tKDZ^ozK@Lvb| z!QR{~4MPW6q&u4B2-}Y=dgx`G1!XMThNKFFUNpK3KKPlTuzHSK|IlSB_J#$mE8)mb zmprt4uG!ODTJba0rdD;RaBj;RmR0d9?ixVj2A(EHF%2#acJ@nlVGC-wh?TluFDExz zZ|;^9u42boI5>*1Qf=7RzRM}l7=rA3a$8K;4vwo z{AVGH#;6{}RBK@DB;MWrg75PRG(p$?^W#i?z-43S_YcZchohpbc{Fkj5u_G7@+&RX zX49Dfv06fqtt{IWf6B#HNO1l=e%Q0IY*wXGW+dVtlinaC=Gi4};t;lTx-zy*WcaukZ%{mk zORKp)*~giRh_9PG>fRy2`{_6Cum7j(Ei}NdiS8(sBI^K#BF^%kU^JcnWKq6#`ofG! zHUZ1`GjmC*8vpeg?BUpYqQe3+74XM^#_sH&<~rbg^J3ICepdT)+9{fSFMZFj(tAJQ z>NZ#-Ypu|0PDF__sc>8>nGLf_ULsp*_q&{E%kR?OG|?8K0Xb9`;2DS=7nNxEYa!># z8U>w1Eq;jk;meyGb^O1#2|Qw|(>tFKlc1g!i%%L6Zj?4xw1wCwV$*fbv%%P3q{7#% zhb7ksHg%7RHT75>Y|)5f2&9^7$=@PV<>(y{TD|c&)h} zlsqM&%-UNKu4(J~URI$gi2X0L@-gFikBH6SK+sNAd?k2*{^2jEd#t!MUByaFT>I=w zS_RNn%js?JU9tQxf0E*)15tOT8kF>Q$DI9&;HBJq^`RHx@gRT_0)T?SvoktBXTkHUe zFTGT~-3yX(CB+uQK4@to5iz5SUhY`5u)>XIc^S_d&Jq9ZagTf%#<|_KE(+JE(>7eo zM%>A$bFGi+O&I0hN807ejW*=1u#bRY#4%0|D43x<8z49v>9FHH7IzZR!w_X^CE!`s z2Vc?8Q?9KIk>y_wa8w2CM!+>-iAAdC`}t>=?N!odHGb`}x^m^{2GX09Yuo+}1}QnF z;me>kdB7alCh7hb2#`Tjtlhw0m!YFt9s$NK+D;y za?Ruh-;2udtCzkOTlCW7(A+OfTOtD&SFh%Wy|*z`bUQ$A}`9fPkP$Arf1{+=o<0zVLcwy_XrSx-uzV9rgFXjM--Nycy}eptXT%M@!m z`e}T~U;m97)#<#8Qh5gZg;sq>SoM0nL#798H*13nxAzi-XM(`NnL5Y(!F3QR2rPq9 z$8hyTdApa`zdFrrXo4dw7OYY?{%2}eGVCL4n6#gzV6fg&}+JIJKHAwy{!9B4P(FKF!jX^u!`u`NTq0D!|J4gF0ZnMeS+b_2zRTK!I~>YrAAB~3`u!V`GRO-P%2!MRVMT7Y6iV$GRqHx_bY42 z?zLGd8w`OtM}fx@bJPKXi(};!HWO>g1Xg!lcAzg{-dp)?3cNsk;Uf`D`=H5vv; z%0`V5FO`&Xbfa|lKw71{2P1|OBgQ~#G<@g#^ZWe)+hce4o_n9?`8?-&D#g{?MJ&HI zRzGo7vftV@{jb_A6-ZNMBT7JI?H|Y-4+l{;$FebRT(Dsp_RbuJ*%<9~A zik#7Y3w?*O5HIv;V1rR^1$KC)MpV?*?mB2#`$QY8EuJ(>bfujaF+2LS1U$J8)R>3|ogX`F@%FIXPyHV`1=UMCOhk@7qU%5wG8A$r5w@E}HPrqE10)P_nYCxf!+Zk;!YY z+N{7c%?>YJkiZJXe&`r);1;ww_m9}&k%NQmiL?o4(Bs~=W$Ij&bH@2F>$At6+{di) z4ft*OBi(FPKOSRtHDkDzT5j$A-ccGpy)D*>cT}uE{Q$KEvj>S^caBrbEi6JnPX{ro z2wdVH)?lTs*{qw)^TxK6O19KsB{GG(NOsNDK&9!+rp`7<#pp=Q`tfFuROaEF8$mA%yh^*g)~;}=gd1Rl6vQ!%;;_!O9PLVOQ>k1P zri2X0Y2PE<;q{%#0B)Keb_W4I(ZH+T?GzXaXX#nh4t6a-Ua}(V2ma~7x-&@BzaMSQ z>pcbUu0QFl8N3aG(+vjPY9UA^#VGGt4UoUgR33U%d9|(2?!yxC=gr7>X+bUEr-nS} zsZ=;XT_@+sQJHEn1xVIyNZUh!$7IayhAq_a%bN3u)QM;-_SMGP%$P-%Ia$)gKbmDR z!PDY%lKCl3WXIK&-qVKR{qRZq83?e#Wb{EjoSF_lWv&s}$*Mc_enQIz5b$E>_+1QmJ(FCt9dMnUJ7X>W-(F8ALOL6^_DOvizphyHmHF*6CD&Xv1r?oifT!zb z3ZM1apm!3r=Jqzcwe5CfUk6o%J7t;bLc-{2T=rQ3{-Y0yB9qI$Q?rPL{Zb(4t1X%4eP1pX{D9i1>_rly zcn)*JV%c#k`)0QWw4*q=ukh@QI^C)isBUM(b0&kodVgsIwa=$IAya=qST^v;Fv&*l zwY?oQTLYc7&TgjdeU}clA8yLGUw7G9u-6;=vRXv=y;wK!F|g_4LIpJME_^XCt0(7; zuRZ8bg8AfeX`e)}yI|49Q?97Rx5``8q8R8$^fj#SdUNwLvTZ_>#k!tHb?Ibmrcm(o z7npK?x1bQyys!F?uyinPVxwKr@<6qEf-fij3!0o}Gebi1A({)JHR)NPx^cgm6+8;$ z+z@7?6e=5nZin2 zrKkKA9b*w@3m-yHeX);-9W?U2&D;SMZXmVN9;XJ28?I!n+?<}DB~+)A_OkI?e~8J# zy(Fo*M=8I#oU~-=oe_+HoW^~nnx@mpWxt^NT`BpGu;pTzKgp1{rD8$Wxn(Ed;D1+ro&i3FH;_sauob+Cj} zG;H{+Uh+Kyz58ue``MP5XW>mXB@CTyzs3p${5)yP+cv-H_a!KTU+-O{-iqjqj%V0a1O zH>Qd`$0`X}`Y;E{y*^`~THXvI>Z0mV|8Ao!v557f{=fZcM?qD|Brwy$UK3!JK5Koc~ila&U zrTUm`hN6Df>g%5*L-uO-}aOYzU--=>PhyACS!<4eky#*)Du zq=kWc{7XG$A!T=ifnUf)gY6%^T-840>QSTQXBkP)&Xh^=T%8r97LAy**TWFUHYTl3 z$R(hf&Lhlb7QD_4j;OZNG|n}G>*Z=I^!@CP*WmrZl*CVvTciBO4>Y>R(hkcJaz z*lV8$oG;*VSk}8e#dX_mbS~o+i)M4zcD>wB$nuAWPGE2So=wp?qVbFW zfw=R?VG5PGYs?i-5WB*U08wL@3>-p;!EZE@BRd{~@(=c>Xvf9WnpNKzb(efhnOL~i z2u_wp6mo!gAhF%%Ul8YXmbsqmxQD~rj4LkJGdTqTnY?SP|39@u#a{`mE$nJc8FhjV+OLxp!a~e@yva){=n{Ku?jQkbEI@aI+FGA}z zIDWorGRkdjxT=Z?`gEG4Vn*ux=c#VU`g|_hlcMx2OjItsFnQm72Q(a z9>jPK_ z5dy2UP`$hNw3=@w<4^@B zf>6-!4ojhC4b0$4LaOv*2Y0(1^N6YJ0q!X4C=Pqg_%oX`1~SgnWJYPy2o&AGs^PG*JQzC5iZI>wY!lP`o%RxIK36cqb^{LLS^1$qTe1|FQQ{1v1#sj@0fN6lj<>94C6AfaGt}jGRzHe<%3GiUN6dM!6lhTh=f((>l;E zh!+(w@s2!Gn&+z7E6{)XBvHZo7!_4^P&{jc?EsxUCEcF%_)#w}9uRCZ-~+ zkbxHM^w4k1e9V^byQ}n4IJQ#9e+&4^|Aa);l|KtD7OI%ex71vc_MUt6HiF?=c zbEqOb+kW%W!oh!^eg|wNc_zt(UjHt&pgD`_BRMSlE(4fowWs$?Ro92>PqR9FlI?X9 zA{H6DRsDEG{^He720w-3*9seqWTC8d`t7^JtF)%ETmROzk#fjfrVt;a@c1VM;T{C#o16&8ruUCi zRs9(``D`<-V`KkRj3?*xZk^f-OCBjFwTvePQJ$j8EA*egB5!!Fx2JxzqMRp3Mbz?} z*`r>k^H#Ml`8VCS3u3a{T6al+DMdWXG^7a5#Td} zS_x5mvMUlpe^*lOO>+Oc9na93&S?aLn!hXA&)MZC7Jgr#ufaM2(Xu&VaLNwFUS`h$ z6>^ogvFW2iTj2}h>*$cYHzCjqA(JtU31y$S>*^M{cCA_ALhE0(Qje?iewUk2379lg zrm48yKxYV7PN_86>(^SVV8=&+oj|4+>B``Kb1k_VN=?D~#2RQW)R%7${bP$Lkgk5g zCvOc;DSZkAW5#X^9mJf(b4Uv*jUg6Wy^l72m1`9UKz8r#_m?kMqWw|YeB5akoL|Gb zzU6;7O`6*+O{B4og$bqp%56aA;Y4B_Uodv9>-5!XZ;B(5ONp9DRn&Ng&DyQrsnQg~ zdm|@dEm^0au?MroeQitA#}(wWX*}$mab|Cm`VP0;<>cnE6&n`SqVHz-+H^%;d75o7 ztT7$2Jz8#QsJ>no2i*Q3!I4tXRFOM2P$W(~oTKtUs9|!@FlkH9`tVed_C1ZDhYPW} z2}6P7kBv@nYmdLU$~)tn_!vL50DX=dQC5@C$<|pZUgG$mwKo?Ehs_!)(HB!kY?$p2 z6$D?o(B$ufJFd@$wV${%K*;hbZXjzA)Y>k&}um|3#nYtFlr;cluk&zAX_ zN-1xaUqm+0ihZ7A4IB%_Z17jg)gb#`WGx>+lZVHC8i_>3>uU-1C6<+BQh}x|Za=x+ zsdzQJ-18GP_Yu2L`o7_738Sfki1ri>$pz(Ehv(5yI}N7(D0DJRzlxxyRL*@_W?Yqe zUPxs1s2^}WmbX@jOh1`x{`gh_F<`T-&Lz1&!h!M93y76n;w2*p-=5sxmdOyt@7+{^)g3M7XN$gamfz5~-*OJvolVW5NtYYh8Uh+$qI$rdTH ziP*n}yvm^Fohr43+AL~?i1cNaJ2#8=g`LSZoSd9tYl=~E9P?`JoU`-s+f0J09bzh> zZ!1Kru3m|s{8y{{5Q&oxq+J`2rL{g&raP9c}= z-Chw`yGv>R+H*6fG$z=s$!VOgIW^aG{Wrc2C<%o3qQrjdThAOg{c5`4A{`4?GY*-P-vr-7+6=YN z&v#|D!&69~-1Hwwl^m9Tq zuEE%7S;9K2-Okm+fZ)JTDH%O!jGZ=hH{P&8Io1rVOz+|WcadM*v;l?dD?55_tZ4U` z&{OXrQ=`g@`^3}*O-nEc?xZ}oJ%lG&w7H9Y9ej+mAR53-S_HVyUTVZa{#&$53)GG= z@`#v!wV+H7zcKe4X*RTSKgo}YKm}aKJ_OsrPm2Ly%M^_RYKUIIa7#)~<##^iAwPFB zU!_+v?oko#c8T{Q7i)aNMmo}}_6HUGJ63<6Zj|*nO=htJUgp`8_n}ioa$U+pa+lpF z&Tov1H1R?A=!B>$kNf!oPkmPu&HGaWrM0ZC%Sb)D3_A~2Dn@ePMol$RbYSYa>AKxo zIF!P$Pxj4nXAXQYC&-*V$#j*KGEWn?SIBMLq2^;{yL_ia)fG`UE>MS_$JPu6%n2+O zo;K4y;{Mn)wEgIJnv>ksM{3ZeC(u*j@u2gW5=Z3f%KShN7T3{f9%L$uZ|aC^!jD5= zFIvI^7L~eu!S1FoN*DP{-}W1@d)amMUer)~pgB|g;@qb{9%oI!ck2gM!RhW}eG;k) znyzCQ)nTH13BWz;XH4aQx-YRdf>CVzP2p`Iq2#S;l{m*$i&jqX1{WK_&Sz_~Ff-ps zUtFqhehSdc67YHd?cP|E!VSXQ2iNY$P+Kt=_3@yt*p4vFL2Flol$osfDoJUD)_C7Y zct{Or4>xm6P3=op58tV6b{u+8+G?_+D3o9xPSqSXeO)I*c~#1lf_+9UG(y-M(JbbM z#D}){Pg*+pD!c2Bm=EfTU>d)1BBHTuJbrG2s#ax%$g1*qh+O~4!8?L(z|Qr8ooz?S z)pzU@AH`z7Ss#k<1i#n#AgX}3j*ubk-H7Womg_)Y?ic7$&IU3}<7d7XsI#`9?B`I8 zkkFPu&%ZKTmb;whhIT`5K#c3{9PdX%9j&}f_n}!D1Ik#y^LY8IiQ?O`>Y_p-gc$)> zaWw~ta>cJCE-&^2S?%5`gP3-#=!svUV9V}zx%n#B{)A6JKS~@lE$&T) zXF8=fqxMI=_Q;*_tW?j&633=yF82S0_{%qr)$5;RbH0D=Oxu7Bl8FXvyO`SK8`Ymr zbpJ~-s3tlco+s2VEm*E2foF7Iy{of29f^ z3G2(w8E>2-AM+1w^g}Mqd#{7&ALuZuxTz6cf53in&fEW4Cx};Glt>B@YiE3|*?q{g znx8vpoQGHOD<`X?06YLE%c5{%vIao7a>7yTP7ylfW=wTp!{xH-G5wodrQ9Ah>Id*5 z4g1w}-BZ+RE#3N6P1EWHWsMSXIqr-G86Uo+lxPGMLG)s#f6Uq521nRyojmvRT%i4( zVj3UbJB?*9niG1)*oF#e5!cyxUptnjuGQ9sP3cz<-zJ$PkxY1zW^ubU-{FDg##%{c z(-7S>&Gh3p>FwAZ%rnXz`yg_Kybpcm|GGp!3n$-LsEwCZ{~sNq98^n6Tb2);Pc3T< zbQ;5?kd~pUN0lXncUCV~my)hiLD?qoBNZC&u!%_(j#BkmlB^bjZzCDEiD(Y!=B;o zMd@B{(Rdz{LhAcqK-}Qy@A|?guRqlRRG<{bcX!fN+xOm2%c>BI(1;~yPo|&6$cg_? z-b7LW)oiu0FR*OZe1yj3M=3B)@n^xa^3bZ2^g(2ydiL|#ilKZCD32KHj!Az52eD{v zKo%Qjg_whD$^ORJeM|FW%umpoRQlj}-^fwRaXQjz=^bdOM4A=Z9RHuF3yeoa#Y4?4 z?0Fv#YVNl>@Ukpq=ytgqMp(S8XewvgWC2yFU!Yi+Kuvk2DdKQHi&ACu%|rycC)}N5 z!n|?+wB>OOL2AtKO`=CLD{2$^Md3c^CN-r0-6mtSoc>Isp=B`1^6j_4%3D zl-^iNHY*;jx&?dHTEvcioDp9dh|PXP`uNdNoHKCe8U+hRCCPuC`$ zYZP7*=j2qAY1G+<|2d&GUJ?9)Q1M36&82_xb8OO-2~(W|r-@!9SB^>ttX2L)nGhKO z)+2eJ)xPG^s#EX=arU~4r0K5;W`jIfcumOe<|T1?QV_tU+WltSI+S7H%q=2-=SO1-ld*3~WKck-~lta`sM3TnDjvv+@>u3l{wtM(L3gQq(C2NnF zo~vr*b~c43ysyO-uV$L7iTru(QL_;@AlF^Eo+wi}T8s23fu&hI`R#0IvGMujxl|I_ zXvfy0tb9Dv`#Kf}OSbocH6GO(S&Sm?@rU|ajyT96K~a@yR_8SCeLPOVaEWt><(vNsU-*P9 zb4$?L2%5 zX)N(x7wk^N_SluE`Jc68PyKd_7UYN4Hb+L+ZJC$sA@K2_f!)JIyR{V9tH^0s?cvKUSybv&s6 zA?4McKN}>AQ=A{qM=}G)wt%^y04?nK3^T;H%At>1$vi!8HETw$`Ix6QOG&*6Q)gMj zavZR%<32XO8+dqdMz@$fTngC7z0fm4Tlba1vWvS@zjxvkpi2q-QK{XHLQ47WKA~Tq z`d&R9f2`5T)Ueqyu6ZtDt^^krbF!1E^h?8eG3;vF%M9|E1n^FM&rV!Ou8ZbgFMCon z);^ZW^rL?#Hj8tD4YK3fn|gOFQBdDfz7?!DpWh#iG!FiE6DGTnv3k_dxO#*SDW)9s zEAsOqB#^Df8C|%p@~;HMKW+N1wVs*3n&k8Opg$|+=bL=DR7^|}E|qciGw);_>&U?C zG`78_ z>hnnp`iE=Q*+DbV_p&d*x_Qgk#p>E%ue&lx8HglyPh#aMSD(f##dd84|1+T`7UQ1? z5^GS%iZ3OH-)FTOa_nn1(Y0ks+JUWYZ{sKElg|@zOB4Ncu@)4<5ZM*VyZ~Mg6H}XX z4!j5l(c2l1uC>^uQ%fugITUoFU!GjdBupT-74|8N9^;Z>A^^FRZ7p7L#OO;4Y4x5S zQZLtPs#S-@+W6J}i(~&Bh>ypt(B9x-k?V@{zE_Zc<9q}V^Zn=MVsJ%d1k&{m9RY2~!YI|Aj{ijA>4wYrgfEdx<{+^uOyJK04maf8J%r1vHXaPXh?zzGi#bg- z(R%{W<)%OeqUq~kyC1=mnx-Soy6DA1b+v@t3K@)YaxuDTFb(?@|NajOf=%nsho)N zmZpPC2u_c4B-_*@PE!ccpx5=MgQd!y*>sE^fO|cPSHxB}J5RpeBQ`@xj^7hw8dIx6 z*RrL_B=fqrzDE%oU94|)hWQs!P?UzHmHNMUOh7)@yWLmVTMCBkqkHIA^y%4Ek9AoF zPuCl_*%dNl99&~bN+%Cjiad`&AV|b{C*MRi8sI%O~j|x6Y40Q{~lC?%sBC# z#pU4Gk}ISLfEJe_6MQ;{4flrq5X`YFYYgcxq~nBvNqo7d)s(UYvd!e`2a*;IXWbm) z)T$slST(cw;vG$?H8*$QIK@De%ycB7ynF5D*T6N_Er_Gz$I9Xh9UqU_(Stq9oVfF! zX0gBdKE{?jv5r^WB>}Gc!4tpl@@CXq_dY2KV(Ysd8y)Y$;amBq31%)|nVm9WIMxky+C$BuNiW<)1z4)3 zDS{a1z1SA!1|<$E6jFp}Du)NK@(Y1~w$oV{*6((_Jg5MN#Tk0yJ=Kj7?502Dj}80VA9G& zE8v~&*5Evdc1kHaD5Q06Z_8npAchHkTIDzY(i`F$CqnKVYd`QtSQYurpMyuK89ATe zsovevMzqe+EkNEG2<#3ksSLrPci{-bi#msYy5~5)aUa@bwEMx#@DG*u4!j`)SqCm~lE7#>&BM$S-TG3{ zM#^Xfx*sXtgz1l2RX{oO{TtUNDkcI{c6$>;cs79s9W}64;Ca(bp@8+p=7h`KQE(>SAB8q!@dWDAh2uV+RqnhP!; z_ywmI>lIS67f-d=n+rF`@3e#QKjLfmmI^&&2iJ9O=i0RwSB7ZRdcHV-lY~jYS6@T5 zu5%%iUir+fAeRZaYM%A8UqHRKoA$!$uDt`4U32(bw!X#2vByYN-yQGEcl&B?>Qs@d z_tj%QrVvzx)jBS|VHCuK)Ue;V4J{Rh=r+l`!h+UZ80V2q4HG-7(=ZQ(PXJyI(V54w z7R(^r)2ht;7sIl>kiyeM(^*cy&<8WNBH@ALezEKWn>ojQg@&(%go`8qL9>C_YwmaJ zm%Zih1pobEa~o6A9LL?^1f87nnFq#ug==`_)|7<_kzE-a_t!v=Q=*=3SmHW-FOfcL zQUuYkmzW3~0au4+S>A{R;XiSdP zoi5qm=V#wS7JKQsUhh)G7@gcC69P+F%x;$Hrn?XM*UsITdRg?0W;aS3D!s~vEw?MB zmtNy;%ENqjSQacc#^z(R19DQcE$UZ;4tC;^6ILfqa>ei06VmNX|Ex^~ha68c6Qn!` zywd6-070z#U2(JrFN9*`p^0|5*yPmF-Jfusc2Ir3WrKU!84a3^bbur;sV0!C)1K^Z zwW2OmDbk2h=B7^&(Q>4a`JC8>EFhw;``(e>Iw%WU=SzlWeK9=JXN!5^U=n9@hOuK# zU8qk&PdE{KggS!eb6DXax?iogccdB>DHp1!D%a=2$D_Ul3GgvN9LfD(u%g;ba}iF> zZOH85hoH_oP=zI8;^3IpFsBKY%@c2TllS}3Ou8P=P?N22M>r=ACXK5nn!&b6yPn+M z5r9NoJYA9}T1x~J)x+|SshY2__Ld3DHdSP*yv2)S=pYdNjbmWeA`>}?lD6o~d*8R4 z6pEDIv`P6y#1;o1%qwjckLdHxM^T|Tn%LnSm2FQYEcTkNJKb7z8pW=F*{rQWrq#}F z!afb_O=)T&UMZZ}m^yius#q}p7}UBL3Zj~eQ)Y;hkE1`8;r!mD)^c+C4RiaE9xA1u zc__JI6D_OK8K;0uHgaGKAfzf5#$4H;={=oYz0%EZr{gk)Y0RpkJkxQHhuQdx2Jd)b zm=;gcJ{}_``h~=`eoS-ArGISRr?YRI4ywcT8>*Y82WWN9{*BGr%Ax)Xr2S~k&DM!h zY>DulPO(2CMos`#PbrG(q2g%JTZU=_2 zvQUG4nHhq+A+ncfX6BBwbFL-YRUKw&B@KQj$e!hJHMqK@EYE~Sq2+Wfl)`;5{li0I z>=dOtXMZw?wr|kSKvAD4eqy!)a!k)dlsl!fEF6D8)(NWx~CG?e0?nm)dI@iK**!HnOYvvB{CL26SiKZRfe zKNDu7Q?#K!Ajh}z@pN&eE#QQ&;LP9A&|cK!m!-Z65qpKge1+%byxZ?DOUV7)2dg&Q zo+tGN@X}WcW8(aI%kcch!*C4|VXLTt*r0)W3l?jTAn)#p<1F^a+v>324=VwZu6_FM z%y@?2wX1Qb%pFo^M`DL}T%a$^09vumUPYp8-srY6XCtBRT6$o2kt|#;eax0UCvsb~ zx=Ptr*3v3Et~TBh&hNwBLoh{I=t7WE?%t|5pA)e!vcDBWC9NV?{CGwh-5tkBoGsW< zyaO|lB4$7oq~T*7KqIbhAeI3k9Z z+)rs1p6Dm*J1_tM4N@l5dcOB8sK_NNsW?%0678rBd0-wujS zCjt)HphEcSOK0#~?kAoL33#Rm%Y`Q{um*$p5l?G)-KrioKuNpy(A{*W_1{#-o&LV5 z{DEo&x+xF8vBnpHyx_*vo!CJ<4t`$oc=GEsUL`@arq(AFo{gE>%jA>C34J|z6jkCk z_?uj-=k7B_-G&#HN}qIHZ)1f*Ws))ZnjXB3Rxt?oz4)Anq!WqtYIBB{@og3XV|*7d zCZweHQf{%qVDT1C28oYeO==4d03&jQU~ycl)9p=3foX_ z;u*6W+kezCa3KF?)C*<~jXIGJ(~cS=;!SNu3Vx@*_Il(EFUz!kRp;PRr2#7E#@EV; z$fS>Bs4-M5tVX^47h5_mf$XI49bV@a3zzksuP(9uM@L|v+^;`96XgrKsi;Kz zot^u>g=eV>C(l`5?iC4`FT?}}2tXUQKfFD&PjPdA9R0RmSp6-!{(k^_javyX_kSlp zyn!40b3)1-H@4Eo!j&KEwo1TEUwp^6=lkI<=Rq!xSw901FGh~uLUgrYt2((hsl&&J z#jwLbC(p}CorCycH+n&?2Np`n7PQO1URz&|BE?&z5bH^1!UJtDxt#i|ihr=oCZg*( z=(R2Hd*HH%C%hg(Y))z`W59h|%vK$5f+>03JxR0}6H&XoYd zwfC-)xyu!cndH{R7|r>$B!T|49*=SL8P-nYpMV*Q^>Gt@fO%pC`dfv^SsS&Uw{5*e zzMSCXokZp)M{fEp_I}WHIIp;8#Cr{k=+p$ zJZW>#;s(jCp!n!)L@r7swO$t7>6nol|F(8i-i8ny6Imj!}2CR=qS!TvXEUT zPQJEDg1B!D$Z@T}*CAo|n-0mpI5UdQ)6qJhhw!zb-ZvMVk#6isIhrIc&Xt!~p{=#p3^o9tnKcp>!uFs)>diE{q$ ztq2=lQ}4?^K7YDtYtc0ld#0SmqcX5c%F)pLjR)cD=G?v6)C%*<=en==6jL(uS5}Bn zys+xMlpa8CKFDo>DsOGnZ9?M$Prv&q*68hO0cKnM*$=oQ?5lCMNRFF#caXRt=l*fl znzTj{m$0g0BecI?Dy3KS#cO*#&~ucL%A$&&2W7W-P`f4Z+TB}Y;TL>coqJzMHK}Qd zH(n6>>sBqRXwvg0elaeFZ^^e+D8mkMn@!>i@!*4XnV2>M$NBZzq{_eOts)z$0-!x~ z9~ey@t;j|Pa2Y{%@M(Wj{UpXz&C&XZG-jkBDWbe-MD4Qsm@Trg`mf;M$ ziej^A4EBb^>gv8veeNzn65$Qx&SBc>Pu{4SUr;S@9s9Myd2T7s+LSHfh+A0lwmZYx zkKA6Ff8~^lseAMe!qhBNto?rUy@w@*r}mh5X2jWUQ)ZUs&1qjp41aO21qk5iE@sXJ z`4m23-MG{s4=TSLhb!O5&nU5f4029~jZwQg`J>;adqE~UE!N*8(BpOHWm-I@O?A0% z)?kx-#Y8dz0M=_Acne{Iw{~J@d*=mJ%fk+jj$(eeqxC;+nucsFt99VtGQe1cEJtfx zX9g1+T^rSWkuieYUcva`d}*JkI4E*wUE-aI_62hH?_DI6y-6pp)8>+cQE?%RB^dU+5i4gX&)3a6jfRhkio12=L_Dfsnq_;d!m55 zSQsT4GLo3xAM6m+cyZr(mNRd5+&^=&)_JRbT~w~`u0@twkp@I3kTlTu zsP%w+Zs&A2FIJd6y}=>k>?wB8%JaN5khP%P?b}FVtXvkqu$B2@)&9FNdJ&WUnVhP` zR-Bt|uDhM3Xoc20E$^5+0l6q>Ik%;_l;;NWF|NebqhJGPfh5IJlNaiEumc0Uw5uGX^_>1VqD{% z;WC$3gd$qqa~tpu?wv$2JBA+XYmAMnvjuPKT$$|o@73zPYCc%9t7sSbcaI4z*&@7b z8PD8i9l4>&I=qyPL0yRJm2XZC(sn8x`Y;#w(_Lz2_Ig#U>>zT@m&nO`nmhJgM-hq4}yRpLcbk{`LZ+kQy~I0q*Clh5CFjC)eb+bV#<-psK6@9 zoSD>Svy=kWD*bl2qj`#R#npfDK8lf2_fCwa3&r6QkOQ|_Qk(Q!L3)7{-qGG`mkNtc z_0rYs-IJJv|587m5)=ay8GZeLN%V5herUGnigJ-?4}TOt!59?JNp!}oM@2`|+ohYc zXsYb8&|+@P#oU$odxof|9v?l>Z6+p=@6GN{@U~$Ve04kh59NJWi+1hh z2BYB?K};J3w>uU07v_dyQls`RSqQ01I=|R@rjp#VXa z?(`<-wZ~EN$jWcusEjD&K889ARZy-wUQ*md@cl5}>xOuU?KP`Z<=mW#=!(;KRFW9; z#7RypOqrR&z8)E8c6(eKhOq4kTYR`E={!CiXm1w=moEIid07C1C3vC?z05DD{8(A5 z)A3}&XrVter78VlV`)U(y2X{7(g4uRM?1;R4xMXZvwI9(7VefpmARc#ng@P$Ac#=Sq7jQ!C3QdIyn2x2& zJa!O(*2NDWW6}%7TbZh+X%4kMWrN_nvpam!afYi7num&kEmh(^uK50Gdx%RvXut?TV4FIx%}p<$o%dd@&MB zYV4@!9Un1&QJ}v>Q;!_YYWj))_Q^J2)bh5Gv~&;-Ltr|UDf$kw8!Q;R)6tX$K76Dm zb2HDYXq0R97gFDwO8Au}EMBo(h3*JSI5_nQABpjd})j7U3+Du!WqyK^{2{_=`5 zdh8c;n6_@!$#dN{SPDtPUSRW3IyY2kv<;&3PggL*;$0PHNZTFEQUEdkp0RVENZ(cf zK*J?)Jzt5cf`S)GLqLK+_g;yOM)Ca(6PI7#veD1-^meZ}$BZMUt5N0o&3|8KcdpNw zMMN(Tdrt#AMn|0`2o7k#mzs}!OKZa1bTZM>A+SbDfRNlpEbvc z|6_AuT__62k)m8J$C$Y3V;OWuG)((yOlMN~d( zrq48nuxejwE^@;4OlSoyACpc09rEz{gspGc08Yac#V(di;Ae%`lbd zEX&J2wEiV5@@-rtNv9a4y$^ReQMIT$vEm{|(Mo!jD1f`;&-(98pt$tdj4$^&6}KNt zCu%v1n;#ua=H(lP;2%e8bfByAS^LT|tyX!;%A=K{EYV5-+n(0)hhEwdmgmQj4T~>t z(2s7;Jv?p5mnP+!uYC6KBAw6hW>vlB(g2X4FZ)!F8yCy0QjM>0@SiF!W4*OU?Z<&N z+G+=}8|K^dav&`~Nh45q-VjmKNts_Tc9h4V;COhg)cJpIBp#!dv;AuK8ETKG5NTIe zv((9iCJ$A}&!MP(vxWL-WXGzXjTQvOygDxp?{F0g$X)(84N0tW>!XQ{P!uU0vki0W z-Z=ID(2P+xZu&Q8LJJV4Xp>f_bcmGKF;nNS_#vZHm7la9@UC$0?clitn5##Re#%*T zelThq{sq~SWL-os(G{AkujRT{b|2DlV*;fdqZ)Niy1G3}9p!QoAdc4IzO3^?AQ!=f z{RTiL@|qCY6-%ECM}h1Di^O#xTkCeiXRY%b=AH4S}ji zr%7{%pj0j4w}T8hzK$rp5W57cQ#>`8wC7qL3#shkTI-Ba#ig@epR`x$QY5v_atmW- zKU=+7sx929cCQZE?EkE>kQ<8`K?hSgyVjbHjI?afL^WoN6e# z0;G*F166*zCZL76T#sW`T@1V-jLq_Uwd*yx-8=cB+@Ii1!kOCh0^qJ$hjuNaO2j%7 z)_KC@q8whqT3e5RiW_HYW=vkA;L$sv`1_CY8b@qh^?Ic;!rUxbZl25#?r1cb6SYk2 zD@S#r5CC7HaSm(XVczoPaWn(4PL!_~a2Z^by9TI!TjEqGmdP`*G*a*BGq#f{5RO7U zCo01nAn9{R$K$OPqQhuUU+w2TxpTJMa*oHHtW&~xku77tJ~P3fp!XG7Rq;&?b{A5$ zjetqMLKJ4XlfCcgvbUMbTQ)}AXpYW5fqjGFByV&fqe zsKZT9cYyOMkgT0|=P#?cR!|ID!Z>f0JICLag=>f)3h7IJb*(N9qd85QzeOH5HsAJVCDB zkyr}@w;PN`*V(exT$y(R|EGFO6G+JpT@>AK+|)H$xehiR2x?YG6rZf_Vh7g`Uk^T`rFQSFx^u_; z$^T>Otizh>|G0nO28xIvC`e0-bW04R5s;AH2+8J04JrcoL z(2ATZI(F460kCd(wLhUb@}njf<$l(vCIl-_O+S^75=Q^BS3#zs&m}%2zu9};0`nD; zg8y0Eeof89#FcmfM@R1|FMGIY)le=FhF!q`Ud!R59AgY8-d#=fV@|@JA4N+nrOHK> zoOX1$zZyofNWfJ=FWo^LdIUoR*p=1kjV8ZtzVO^qMn_Zk(uqmORZABq-xq_SrRR!S zZt6ayv;Cl0P_%cfCw058kev!wGQn%L-gKYMEdLMaX(zjHE4f8t7P@Kv=`g(4^K2#I z2G?yD-ONOTET7%UP^)9Q=4haZxi}3Vvp#2oD8^56)ar`08-H4IsYl+N75XbFIO5$f#8mas9*6>FSG-a0{E+ z3#NcowOB}_T`)=%bU7h}fz5M7;QMt#;!vWtJWdg(&jGabh6D~xUchypR6L}nCJT~o zWisYJ6S-nzz$!ep@TY;01U@nGpuU4T>3!#hpE3z6r8Pik`?$CXroCDX^Qp;p#_Ywr zL^@-9G71grjXdLy+=l@|3t)jcp{*D}AoY=iXYk~5IZ$d=l8UA5ZK@E={0-(&k!Zi!KbR%u6?b2-Ke_pHU$&iul;l%_fnk1Jc(i|r zzUAI}bhI<>O9>Id+k#2)7l}6^x^Ve;C^d{LSW&4>D==-`{CndcW0F@gyy-t;&zBi- zA?@MKu;k)wb&1OAac>p!j~Pwu%nur!rrQVnw=HA$oLG|`OW*lkCZKPTva=j13AED~ z){Xp|h`nQZKrPxZ?Qst`aCtd&g>UwKE#WzcN`3@E`hM~lp)XsDCW_O5STZ^Q!M5b5 zQ{0r29zTZ1kF?jkz?T_CZX*8$)-Yw0Vy zy5$~C25<~Q$Qx~w5m$0Kd(o0T|NG3BWfJ0X;=Xcsx=WD#ILq&}`r6``Cn1dH{~8dw z{+rD1%(8@j;rExFW0ZN}64bqvDKr7ynItHyJkGm2Nco=)shQk3*y2fy6h;52r``fAO)VkFs%&$ovLlttO>4+BaMOusD0U z?D_>c4d`YiURD0ScX^n%mna255~RE7p;mDraM2L*hJM>>7Eew6X}<;^$Uj+g%BE=!+X*^7+}AQJX{=1FKK{2L@UAIX zdHjCBVVxU*drWzsJh;Y7b+Aj_R673Vpkkn0c1qMiS>aO`wZnlyh~UMSVa%Kxw$#+S z>G7^i{$#O(C;&$PBd=Dh8)nFi-3f^Nj$@LSl7nY_G=?*hu~4=h7Ac*AL;zK%-}qS7 z=zizih)vt5ifj2_9aX^OTRKGH=PDIv1~oJR;tzS5IN+*0zR=A~hc`hkr9Zb_%T(ph zMA%Mf7qf_YAEeb4rPFyzsJLDZ^F(HyPEYuTE@ldL;A}{6Hkh+2?SeFWOD9nMPNV0;DO&lKvWq=*5Z83yf*@x& zQhw!J>}1Ng){0SKJ!n+dfYYKHluyI#r>sfAtI&o^`49ooE#HYc6D+Ni9EGupGo_zP z2pX>7U!J9>mS4D^-9xHn52w*Hib8hKy0(z~vjiy6t)Tuq%?I1vFy!rAkNfOggxj^> z9Ufwul$lhP@#hXhHj*O-Em%**>LkBc16a?e7JDNh*dWzB2^WtI>Xcs>N3|VR+?Vrs zPS`h}#2-uk@0Y}|X3vy2RWS$Ck32%THcxE=`v6?GEsaX+@^%T$--DD7g&4dRNz zl2t+Z2`kAaY2s$7yD<}ygYaYWY@D8pmHGnNm_i%-NB|K}qzdiJ`|`I;L*q^!cOc0N zE~PXq;(?fyQa#{eIm4!BHH`7BJ@KcH9fxUQ8rP24fUQX){Vl*rO!3ilyAFCs|5x1N%VQ_KH-}%3i)XoAtE}|SsO5tO z7F{BlE#w?&2x!^8=L4rcL+MZowZS?Fa5&LOvqnQsmWJW2%NVf(tCC2CCE15uK&&|< zPE7vIMR<`|ncDZ~5=}wcTRRty%G-a@5FLA$9s-Mwc z3sLP9&6Zg7UFRAojvv`xnu*u8lG_Y4{hDZTmkcSlHun;#mGU zRXU54%+z_*4O)#soF#c`?LBcaKUA=`6eX8`B)wnDO`hGYh-r8?f>MG#M1`y&MKUkoymYJ%iT1IfcSWLs-m_20vM ztcGaywPinHFJ*Pfs%&k{)TfrK_X5W0Q3Cyp=(* zo^5`9CCyO>TFni+2mPuCp+BB=9O?crM*#o8sc-Emgd zPHp^)H4hXhGmQLQ6I|-*HfXYVfwj4ZVYoA> zuH8lF$E_|FBSQW7uYHAff?9&>lrhX z2?F^Tc7{wQ8UgI6(j^wsME4NHzKh^G#|7jzF@MMGDj0VEFebB=pqH zll5J4$RfRW^C(8trNyp~DBhu=k-D&yfwRl@Ju3XemH;&SZkrMnL!nQN>1(- zRp3O+9^6;OyxHT2W|y_Gl=AC>Zg-S<-62$Y|J*(Z?#xbWAFZf~VOY0vEDBFJ`1Xcq zjgD)}D6|kN%$s?!*;Cp78GUk2Yq_79ALsE=O!vM+J1=WASFwl=5^er;wq`T;j8Q+g zGod2RKNgnnf9A?SQ)DcvhCyC!xP~!$$C)LUI=^J6kg(x3hYo#xbnMobXzML%^oL!{ zDkSiUO;0LHaAC;MCh?YL56jTS6S)}m@1dbtuguensQkPXGGG^h*??JmU;lXLNwWA+ zjpAXtlLZz=xB1hb^+3W!)Kj7t6~hzo=5B2G75xqUrENr=9oJVaXbv=-e*e)$)@suC zMTURYmYez>P8+H9B_^+%rv>!@0(9K%@jZTK!Gew)18_l!3aYl>$tlZFXDpf zdEtr|)%&>5;|#`<4K^$bs@8i$?E5bs3Cr#TOn$|BQ|1ZLe7$|U{XuqO`U}DT8>H9u z>Rl5~#Yh0p@oJLDi25c=#O29{m;R+MMgrYzQ=X;Z!#2-O*_|+1A^V)*i8@qQ({9w| zDgU2W-u}B*Od$Jn{+iR=e;ur$@Iapt#%iFjDyBP9m2zF3I8I3ujNzLnL7BC?>@d^uUW| zn*L73{FxN)VEMi;c&P}JA_@?T)1i$!p^IxdL%&w3GN%vu)eKL`XVTGWPDn{OfPCYB z;Se!XC0{<-r)Jyt&u$OD@phH9{3r;#rQkQAG;mEin-%8Z+~oDDNdCq3eYS`Q)PR@f z^X0B(?_fkb=t{-&3GVX*>ucS7t=5s}J;`T7Oo7K)z7*xD8i?X2^3jsO0HKp~UFF!f zo~ef>9J%D_d9moLV(t&hTH37~L8Fop*4rC?HT6pGN5dVKAw&JUy1#FY4YwAgMC0e52Yc_1u0;o(t&F9RjWXGb#k5Qlp=p}1upo?E8>BYQY*~-74~0&!#i$9k)rgGQPw+ zjqw7^VFIi_&FF66*QmtDY9MYucDJl0 z;ni{P?qxiq9VZ{T$00adWc6RJOme&ZyeW?pR}#ACL5y0#Uhe{;fv(02yx#zoc!p?` z!b;CML7BY$Ia^;%Z{1CtZKSZT^CU*gsr3teH`PB7?xg@9O+Wfm;P>x!=z3plEiQkn ze2+?`lhZjd7_&ZyY!6yI6rpb_Mejd5QUR~y;+ExFWrel@;+~F-nxu4af1SU_@xot$ zzrRY{%UI~6;_@~B$S!PvV%fBg8{5p;i2+$Dl`QWx{@H_F7;R)=#@j^~>}}PAhb_L* zowqD|JwG1o%q467}lIiReGqBFsW z$$VrjQ;Ku?pfPtWjL!^W?lM?ytMmbT*MMSUS7b|ll3I<;2WD!WZF;kw~$ar=)6mJ@bT+)ttY z6OS;O4Yngs>GTnp*v9c(wi>&sggiHlwh&aly1vC{H_i#cX~RLC`IxUU=N6ojNtHvd z#uecjR)5zjQ&TM_F&yx>KIbaDa_v>(%JK}RU?BoLugCPxzE!Hz3|zZG>ySE$&))y^ zD1gi{K}}N*ilYsRthHbEAv9D~KK9q6+=KtYPTsVU;DEO5wwEx-$=h7$mPB zqy(bS9?;S$1S9j`=HqXCnL-|)ldJyi#C%JYJ8{*pHyq6w`w#%_wU@$A6>B;r@lQxY z==yxNzX7id7DFy+|7g-3?MPZ;SU~p4pN_;{+1)CYir(8iqZBDgwI5FLol;GnIBos3 z^j3>nB?K(qNtBf%uUb>YPT|vfmSf7t?{dW*Ytq499=<9&t}&76T~b;^Xge=@zNKMh zIs|t0J#_x5EhfxI%KjQi;u*B#R};bT-y)byz_)WRAvC9blDZZ!pL5T37TP(5Bw)X` z=oj8z{EAGue#F{I;;+h8Tmrb{SaOPo+4YS|v^H(NRWEHjia}6DwJ5OKX)MhC@{L{? zSZ$7MM*16p9F$MHc8RfP$EcyTb_w`jUXgJx8kl)nfPFiYpksYw4Qs^Y zTVJhA$h$b&kwC2fBbYtO9VKov-zTase)uWpOUa5uyh?MSYz3!Ns1Yzj-tJQ(VAG+F~eZvR5K zcGYL#&yHgD_BqPZlS^Kv5G#TdtOZT~7Dkj+Y;ECJaC%054Y;%gi_K4qyt$b$DnF@y zqM0s^u`x^9nIH|M|C?qAwR455`t?O+&?xEbjBPWMCF~z7BEXcL6Zf|lT^+Dask0}@ zr2Ud>v>N^z?QE*ze2~t0CnfV368?$emev@P)obzh?(T@K<=3M{CTKncbZvt$*P0Mw zigYS^_|VM=GAHyAZ0n&`e6QynF#si;oXvSHC6$vE39KU;t_LPeRRov52-R?8zkk6iY6_so#+_T#?w+NP{lJf4H4edDB4n{hPG%=MmBUXCB0k=YqmG z`kqdAnTkWbk8uY^#M|mWcJ&7W_y5E+Fev@C&1mfKy%P9!FzdLCo;;+6e5@`jG^Pnl zt*+U8YhRK%$|ZbtpS?>u+Mrc=+@4c-gjDl23s&LN!o*?pKlOO!VXpGYU+_1$&?_U0 zFlV$27Ls7^#G`YS;zW8v^{~<7ZDY}*a5h8e?^2pN_=mVGDc)H=J+w#u!RF_dy3I8% z+kuLmn;2d^@wpM^VC5WI-GR*~ya}^;W5|L-v(H20{doHz>8uxj8WOcFYGKYUJ`Z|2 z+*sxY6V$bkA1D5u$WEWFT1ey6!mwhZ%+pZPjZXgQ6Jh~zkZ`Jd>7Wyrs@DZ3n8i-H z?EV>OmH?<`sI15)J175!Cy%*A$;M3b#up}+XhzyFC{Fz5@DYn{oD#=Mot8Syar#ZV zU^-|k#kBd1+qteL2*0xlCJ}tXvzcl`p9bS@*(;CYou1LnyyMip)jQi>WOX}tSpUEx z@;BWp^2{gR5?eCNRSm`4`8d2i(D(ayczc;gm>_q5<2{l~pJHqI?t3oBdq#RH+i~_O z$dQ;l|2giZ-3$h<2bUkII2v9AOOrk;y~p5qrLu3a&nN5bC2TZ4UpAFZIGJiEY7)>8 zQO5gzj(rb_N6hrzbicb78*D9)q%}hH*+{q^QVw)6KP=ivr~@!R865e1m^sXqEaP3B z9`DEWTB;p@J0zNb8$!NHBVDm7zu|jsG!3(&CoNXQvCV*^PUh7$ymLP;s`+>QZv((O zUv75IE5Q&qlTpsiIYdt*2a)RT5My*sLmDAdgep}ga(}tL2k^~szCftpz&}ky;&Y0| z&TYQn{DF4ljy<(YoKU!qE(0$FU%%p1!~1k#!uw$fi`$?YleL@q-<~E;(oLK=H+8o; zgL<}S=vm`?m#&BGVhUd2O?9HvgVcQA8+}2Q(_>tq$r#X;E3_b5R%!t7@VdCkLWtb} zv!dKVUbV6l3mx;62(J&%-R_yF*YMRsX)>cX17dTOi3&wUUdaI~-BHs-DMdtBBzh*bx+=Sz)iu zp3+I;Id932B<-(UU$E$EQ>Ps1+trYa1Z@oMiP}6Y@a{Fqa;rWq5P9r%(%EcgKEbfU z>~1=7;RcfQQvg6STS#1EQ_qXb_qIftQMAM{M#FHlI{rNRe>%fxTbe3{{w$7wS$)~r zj7_I(58x%-Lf2I}Y4zP`8(U`)Oj!rbLU|;X9F|7+x-H00?8D1Cd>3SHOYhj#=ObJ5 zy&fu2f7Y>q^sC~+Xr>tNr?Kz|-Ljh1DkoW5& z!zAIeq%*2B#?(t?@Tx(>E9WkToi^Iq0NhcVKf7JoBUf;h!eteZ+a`CcDnN@c3@|Te zoqg*UXL6S{&D2kwo#5=Q`3KijimM4z)q=2GwWT{Qlfs>a1S{lZ_Ym*J%^VrR)9SB zO~EaBGS!ImeEAoMDjqWe!lhr&bdQpH@&kjCz{%TT-koN#hiiOD$6ekW@`rFU3W{2* z1v=}*5jApihSfV|Fu63sepaF%pOT;Q@?7R)iJj1WA32C20fPc3Xm5%Wav@6I7#m$5 zBXJnm7sl_bRv2sOg2)q1HWX_O0BPTcZ+n~`;iD?iMFe4%x16)&XfZ6uc+|%ccZAP9 zqyLY%LdXoGap!1Y>nvzB)B|;6ox!JRM2#Xe5GH){M{JM}(aKs@w)$0Gaaz7u$_mM= zz&1!+B}1%6_jS!Bu<)r7+OJ+ir@6>o)M_E%fUDdg*ceTb;4lg|kFiH<4Pq^g&U_^Faj{y-Y z%FpmQo?aeDv8^tB_S;>(1CU#*9e zN+p%a&xN~&og2-ZFKKatWuZ%jmAL9nD&kJRbua>f;}G+;-W@_vX0jBe55>{nlO)@f zDU_();QRdlz0SfCobnQNEkic;LEJS17hOvFSmW(ZRVzAgiRR>6YQ!ci)q@7Kc~CQU z#o27lQU(=Bpjo_lT7qK)y>jEhEKGw~Tx1+0!QwamwFN^VV^V?zP4RL|8l<$hfA5f0 z@|kT*pK6={Cp58LZYK*{W_`AnIyJRY@_38;^8N}utKa@4 zTpND}q#4MX7PSNa{;9jGiKmWdLqvPS2*bUjRcGp0*Ye7I;E{c{Y?wfV((J^_e7o#> z=9FtqsTq$!n@QEomw(=lK7U`K6kAdVaL=qTNFPW5X`)T-QqoomM%I>EfgC0tJua-& zv)(QtiO;H4c*M+tK2A%oxjJpWYP}Cov1$FX;}_@OlE9}xP|OspAEz%;7uPhGHDPs- z{Dnf1bUa9Gj#t+@bMgc+SarD{P)iG7_Wjwx^X~${5Y=Wp_9?dSPKrEr{ zuUd%+#X>E!8GtEYY=5rCSKdp#t;-voQohOUs4RMu9=#OP4lS6ySpo_l0ku73mdRQW zd7iSL_5<&?`_aMOW9Ny#wo|ZB|6QcJXD(ievK4cWy=*nY@2$^4=X}cN>w-oO|MXPu z$c~3!!)W}LsXVVd=+eu)2Wm>5rNSF-B`JHthErbD%Wr8kJr>$mNK$9J)*mYeXUQ*x z22_%)UoY`}(i;_A+Pmw4xkUx;2@|K6EG!E#)W)_p6(5Mmj!1nNk@oyR!Mn#eO>f6! zPQ73kL?7T5vcFfcHHGh224*!4_SrZn4RcjWKBxiQ$!Zj_i1jVoH~de+P}6QVWS$_+ zGmzBG&Ar-N@p!ZsCh+2c9m|5E+QU5QWQ8sRxk>cIQTR@xzW>9?Jm~PeZe~(f3ve;) zYI<2{ZN}Tng*zG$g<2|~cmU#Euf-8Gku!SzAR^N}><%Gpi=0kDg`w^nS2;-xZYbf9 z96j+wY{R1|gJfV?N{u6>vzsBHmz{I{B^)xcuy*5hDpiZ=UT<%bN=i)0clvN`57&~Upd~68ovK}yBDxgxhfrY2h>=L zOGtU^H}lrj4E3ZyV@AK*5X!xI*Bx368!lz)fRwMqFo$V=f*|=c7X%4>W#y^EJU>w*RIVH&~ zp{Fj}7g^!9r!x0EK_WvVjWNo(cw-d{|LUJmH-hR!Fw@+Qud zY7l-MDop#(8T;;ipSOUEkK94_NP<(C>ASlNGIQtcuqzgSTN;`+GCdFg_AY;z%~z*i_hThs$>?M zvTA3d(F&0lp% zej{V17sfo@XYSK`>N*?s?aMeQey$Oo@!#^T8ObL}``A%t&atZ%EY(H$PO9_haAZq= zu_7;XnI7DHsr%3_?rja5s=gaUR|`h9CZ=40(-3)J-`-2XC3pBLK)H;t0KUg>!2*$8 zMlTv?7`QWssHJ?0!gVX^1;C^vC4vio&L5?uk(w%)IXlk}czrj&!C4e4sY_C*p_AL< zjd&Syr9$&eCtR>RU+eP)!Qk_y8olB*P@~m|FMtM*QfW#w)HF`~OHRRdwb7nDbU<^D#HO!>)}!c90h2<^72b>>879Qr z+DY6$=p#Oh*fQi~PT^PzA9IMc|M2)-L4+U9vAYT2YaRC3mRhV`#eSIFrtjP2*j_~? zp#eO!nev0(h?J2kLm+7u_~q&^8ys#BaTYyqb*yE6rC$0v^L zImlNobEaED>?heK3V!l7Bv<^q+l8IoBY6K8c0RTU`AI4t5a$F)kSaKGDyma%Hu=SM z=GF$dO-Bfr{mQ>_+66(y`PIO7PLoS=ZncJeq(AxZL6dn-WAfA=rNZ7)&rST%*I++! zw`X5!jG34hZ@QBw^|)ZP{hGhYOVyF>$}}zsk2{@7lA#nplBmUMqD? z5V}CR88d~S!~gx>9JQ4&R_%Hh7{IacZ@Z1MV?opI({#_G6J_;LW`}srlWF{qK7+aG z?gF=Rlh<+9FPj*Z8F#c#Zp(eLbUx;YJon~>YD1@*2T1Bq8-$rU!Rq0q+77X79iZr+l_n zEd9ZY2XU>3&nTD05-S1h8XU`6l2xL6rniWz`m0d=Z{tmYux{@G{q$bbPxAyWCs^B4 zTS=yYOfy=o`csV+Dhfhdo+CU99Mf>3;9x?VV&%rojNcX5IL7==kT&%u8gI4R=4%m+ zV~rF`|BW!py%c>Ya%z^q^Uh63iN#Q)`{8tk*_Z!qV(NPI<0SQXTYB`lYXf|bLQ&9o zO)Q$hS<8f$*45>y{rJ;IBtiVI@fyK-X2#N)LlP9({zGd5xT#r#fKRP{yoPn<|L#lZ zEb)17-__7e$u)7;85}DKpg@tIl9?sDsY9y1$R76DF)%yDmg)~<0uI2FepLr9yz!RD z*SM<2Emu9eE3)+F!v`^d0L}Dr8~IbI(FfdF{D(@&M%5@Io0+EGYkon6&B(vyjf*XR ztP3Re=a-iYT!R;ZnihFQGOUS>&REA@?9;M=y3Md2A#rL$9bm^TyiDtg-Qg0X)jFYT zNe@gLb0E&#&((t)cBB>9Fq$)`D}(&^v6l|*62Z3?P9~Z@@#mD8!}EewiMkwn?RLeI z$ClvV=AgZ0lxlsMkbh~`oSZ5{+?#_-JtjB8vl;S#*a>so^0 zX(qeKeip|YHxt0^yP)p$(>5rn4QBXtH2cEYIGH6XM@kG=EF)ZG9;Y`uA$>SxTU0#J zY&QS^{2~~V6xz=9_*j+8zwoh2K7sL%>vaCU;Yso#>~y!>CEJ=sWg9wHbEtq9l${+Ui+_bx!3YoUqp%nrT_!f8V3AU z7~DV60{75s-?V@@A zUZI6$lFrTm4jmB{cBHKwdzx+0cdFqdrlg0 z20Nh4L9d=Wv)&3xTntaJ+W_ehvA<&t2mEm=`?G>ODi60ag2EX9NM0elPs?>gSgO!h zgk{R5%IpD;%DxmY@V4HN{{u>Y)pLThzi^VRXa3gsI4T7{oHFxe-wmE=TTx-+XGlQ8FZ@Xf9Lp|xQsnjzs;K)7O zM(R(a^MPcO!OuQ(P*g0DPo-#Tn=ynU_%Lau;M!L&`#@}X9vOpTGnBQm#gAp_Q5G?o>N20fQnzl~tFeR+ zTFnz_ftJJjw+G474BkRo5YYf*RRu5|s9V?&N1CLS%@+%x?N#JPTeF` zC0}KYcd!AD4s7C~8x8{Ow6%$`q&fyp9hQwF6v`NpP+ z2F>R3(sAzKd#}m0NUT&RWc5eDRxdp=B#~9=&Zg@b?c8mRPjRHTnKJ3*+HWn z-e*W=vS#Ug7~`$wD$CX#cleNG4}4dvyj5v+yC=4BXkVk!KYn$`99^2;-w^q+{6S}; zqc7AC>UGdbePv#UPuO{94d7%GS4GKntNFTuE(hGUU|Q^sWb06t&RUpi?0~QP%j{dn z+r;({+V00<>oE)FdZ2^a!46{vM_H#37p8huKE;~23>(MWQ7>csYL|#xcbH0-E6|O# z4ODEi1L;UqEpx@!?J|Ze&OXWltu(ZqAKqT*!bRPoGiv#JJ6t4eA*flz#NS_IbaqAY z7L|umnJ6nEb~>pG8}YLDe4>LugD7zxKWgJ(zap%+XA{uc?qge>t!v`&oIzs|&l}^0 zXs1S8#Gct_8?Us->Px!!*&E{Rzc(y(K5w-we}L|jr!Q+_{eZGKTJlzD3#^hlc{MEy zG;38LWb?33QQ0T5#oD#XNru1CsLvrZlo~vkZMa=~#~l}+_3@B9v?4gzn5Dnu3dQ3d zP`%-LX6=MZy7oFw&d|vh_7+kR6ZGEShb6do%7zBS_MY)Z?Yd+ZwU@OREK%^N{|fW) z>=vb6GWujA1QID)`G{yqxj2+u{dD2=L)~s46>Y50!T(ivqXnN)Gs3_`Xj%bAYrMar zA3Wcc?(^{U;tVowx_)T>D#HcP*zj?4e!UqMRD6uQZ6I}7URz%otdaL%IF>8E7OJl$ zjyWBsjfMfQzVxKTXLMY4MRzJ&wb~;k9M=NPj1jP(cDGgP`;al{(5DOa!M*6=wb_Xg zmceI#(BU+Iu#@_&>Ep6Q<3@m>i`JcQk_Kq4Wrjh0Z{dr;vaQKX{)zm~^jPI+^>tcf zs!4+2cT#`u`difw&PmRJmQLhk`DEVg_MNl?cKEr(u6If(j2nqbd9!DMiCL2xpXg9I z@rO_|!O2!+R#8Ui8w2*mLi=*@_x)vWnMTF!3k1yB)3Rf+GOq2MjwK-NbIv z?W4f6B6`i6acR74v5E&1e4NmXsBhVNxj4!0%LE4`sc(EEaiUs@3|4VW9CIN+Gl!pX z(?qz0Zy5F<_lDwVRd4){Xd2tOR79L%J08&iQvE|oehhzKi+2xRtQIRDT}deu5a&vr zG4gZ4j(wNxJ{?yyPLmox+o4wXtu_YX$f@IaCb+f@_3JYZeIKzgab$!n5> zJqIj`;s1>_W#}yC&BR_ZsxX=T_z@2MZ_=hPTe;l+2Cov}Y+88mzIZs2-5 zm!mH@)h0hsWYPM@MPj_wry#AcC04=R4K?fd#^}*SpXdlg)UZF{LVL#OnSg|wajq5l zZ76JutD5`rd0u*HF}g1W!{1IeXwW-y72TfO0{$e6e@Iv4E+WVz=-SPCX~R_)i*EgJ z)S`F<3xo6vbM2i!MSry%B$i%~sb5lH@732DgS zG~tMhy%x4+*7{6B!fFUgKS_sUOj)K^3M0^*CvWg!Y_6#!W4B3`49?b?&1X`}e}PP_8rZ1zx?@8)=X3*Agd8`sRRUtJiG4O#2ta zf8&bx!-u^EczT7Ee~(i-m7UiQB6U{*2#Ki7L531+aFtUo3j8)4&OpTNB!1F!{$z0^ zTjQq&K|d^W{u2nZfXXKdU!A73a0+NaoX$)PNxMeWZPgMSz&^##YfLx|8|rh$4AKr- z3V-o#lBAiRjq5faY#m zIeC5mLw4*Js51EOJ!^ef=87Cnc9!71UH3|ttDYr074lWhJ|`gvd$ zM>0awF0}C^1g2bb2GqQeqr>eOzutZ=M%3tVQT0u=!6z-;9y7idlQAt?YPo~77$>oo zh*buE{egw3YSkS-b*Ktges=&L()a7u{ytXbl58|ewe$IaMmR%yX?}`vwCZoRlbWMn za<*Rw2A+*-YJ z@(yMxw_^z+1P}I~e+tZxhf-P%lH@SVzVyfS&9q(LWsu<@J$k@3T-B@#4q5!9sc+Y)EL*?%}*wt)|PvTbrLm{2{&>zI&?6Ly-&VB3xE1-rZQUgx&a903hGjfMlu@*9xU+S zp2|kQsz5s>V14>M4}MPHePC#po?gt^?;huIbTpepz0_Uwq%mAlzb-u17R4#6vFpIv49|m^f?Ke(?Li7vwLMzZiv^x_^ z-s1^f0ezYGBJ>6t1+T8vhn%TT2&3J*D`IL1<#{RvX;fs$d`XGBE1Kl&2>JsG> z&IMf;F{K;>T06)_^SmDnUmOtpo^~&WYeaG#P!cekGx~g{leWP<6Y}>ZVdsx-^$ZeF-Q{xai*Quw9jyb$p*ZR6qHORuZ**OLuT zW&+r1`+Nomw4U#~bsdBR2|-l1SzQTR62R!Z4)YUFggjX{u4X*pU&TYYF`*Hw zrpJfhv}zV=m%YKpbm8Z2b~RS$>dzZ-9FnG-6BGL{jhX%7+e8tUHCIw>SefR-N24p# z@rxZLl`6ChI8Rgg_-aR%`b0KETh3VDrCI9>E@an8a@U1PZ2z?zQ+9LG*wYL^!=z1dvNp|W3=%q-K+_1 z^K;yf`Q#3Tll9t|Q*=OVBI7VOVnQi;^Uk?c`tR}zvcvg-%YmQf2rJ(t-e&&mO7#wK z+H>0pNZ9JN8#u0<99EXNiGGK=;~ql$RQP1bO;$w4FI~mAfnqrJsOU=-r#~EO(}L3$ z_tvOj<0;TeK*U;kS&OxhJIK6PlNzNiNKOWS(yGdI zo^5=3ni2#R@*L4;ej;(j(wy~qM?sKKFD$TePhi^9C#7r?>h#x7l%cw5KU7}QH6pKg z$#6G602BTE67?Q#dC|DB8s!b$Z-z{86*dqR<$??_g!t&w89X*5Zr}ICNSK7s6~%D; zo3wG2-Go!;L{HSkk%CMU`o^Nz#}Y?5I?a2PL*%C0e`1qxu;__LG3Q%u0ODNkwwSZ_ z8U=qeekogaJ-*C{6kz#@MD^Q^F5dKE%Wh;qQlrCZjVNKQt}?FkcCHj>sB+CFkY@X5 zMs9nSM?cQ&MX6S=yYtUKCn#KjFkD3}i)`C0s9NP&OZQ zRrc*GNZdA_&Z!`lkRXcGw~?HVk=JoPZdeBT2#TfDk|e)ajnQ-|NG>ZUUo^Ky;$A$@ zmsWf_gSw@005;?b`wvBWpT3!`LLG$H=|uM=z(3owxtet2bY}wJ#ISH|lj^cqxbH05 zuuQRP(fY?|fv6RR#7*W;GA2qDi_#!sEILiVAvwlCy0jX)8lGydQfj#Wq9m}38ll_< zfCEth!Ha|E!3i>~Eus8+N= zN_d3%>%%2IEycHKY1pe&k&?Zp;dy6_SSDEH1pP!Uy|dbAz_Er1M7OG)&4UsI2Yi$6 zubU5e;uIfDyf==fXG`y^rq*p(%jpk(S2b~5VCVlu9QyPOp&aN?F<*?QWRfRU zk7J*UUwZbr>FV9g!c*kzqY2*Y_Rqb~S<(u&3d5XqaOL8fk>JlaVEFv7pPF-6M%qQF5dgbBavg;&Dq zD|Ef|5o7mra=Li`-Voe$ryL+OO8D!4g!y}?ITqQ4u!gFxnr`8uDn6!Mk}k82%7`h?mLH^~PWOiv4VOQ%gu9 zl0GmbhYm|bbUl!Aq~(itvNo13DYmNu48#V)mzEBIGv!xgJn-Kl2>nJQ4d@}Vso^bwZrt8 zyX>DTyd-30Gh7GN%JYcj4xb{+*q63Lb|`tB6-sxEpQ)Ie$Wr#kn8{A@Uj0lzy}k7U z-ouvW*Lp42;1oZ0bB=<#D<8G~tya88KVTT6*Xg&YEdL& zZ)&SOl2BA@@4aKxo}pH3zIlCqzdxUO>aSA zPfymO)_}e}!tYyI&^O+I&%DzcB|tm6-v0gT594Wg&s~SumSMkL3sa7V-?=1`e=VOAk{|Mhy+b@my3D%Z0(?!jGu zZ;DW2Jy1;owaU%&1XKooRGJuq{} zI4Wha>%RUFS>MuY91VDoQL>}=dFCLU93m+v0q31lZdX*8Z)R*gK*lLG;7Mn)&^qUO zNET^QI@Bab2p%2`UA@%f>GZOF*T9M%HJ6O8@j;nBun209f*< zCJVf-6$CtWxIDbNXE!LPuwoVPbn zL6R>b!%67mzA1KYq|G%%2Gqkr*uMCYZ^;1|d%}Mn+)(YXq8(d!J!d32UgL$&B5Yd7 zoVG|Q`~QqE6oE<6KDvG2>Ff%Zeaqj^_F}~8-;YkR&jYEpevZghL%rAz+SQMbGe!oF z29CO^$tAU1wX!jewzsJ*7D2d~lOSN$1! z`Cd@4P?MEtLuG%BG9bA>KQziITLq+X;F2=AM1J|2_i7J#Av$T9r9!J+?Tq&tocUlE z?^4S3s~_$^kmRy)wGp{S-*Lp9k+;sRQg%?sG7bE0IMl@Vw9P_%uqdZ@Y9!P|s7}8t zF(XXqIrQD|W2CDT%kq4ya<*bwI)t6qNaf4)&_p)4ZFsRYgX^DbW@N+ChLI^TKLgB0tREXer6gjT; zS3KLWQbEn0BhLU*k7WXN{r-!#x5ZOPPx zuDoj??%g>*^y(JDR+XiiV5f(^E3|Off`g@5|BTB%p9$(Y$&=RHk*H9>hF_)VAB(Q; zBtUs%$^|~R(w^5{lEV=`L)$3V}8Zv+i;beCBpvDFk!#?{OqA3uo)O&kj%nCCH-Bv_Fbd%D?R zOIe{xSJ-u1ZU5kvdY=?{K0b~wiHm?I^j~F|#V`G!gnP2gQO#tLbO~wo*=6x0h_WyT3kGhU+aMfmYxHs1( zUa)ZDtOKF1Qh0toAIej`*43VQWW@sBLp~wy=zl8*oYDjzA4`JzTEzJn_ufT27ykk+ z`e(&oiM_b{XM~CpIJjr|l0Pt*HH^K~nf} zjQYF3!x@K0aTsFo?WQcKXohnh0D+=V(2N~SAZZe8?9%0 z#y%JDAKF=0kFsh6F4TqD%tiL&AMK@*t0c^zL9oWg_Nxrrmkybj0bLICkx@#~?~Ivw z>QW_qJFs0q>pMPT4*Xo1c4&o8p?+I`WUaip#-fph*ula}k|92Aisu1@#Qdg5_yQqR zXij6FEyE0E*1v1ejRy5INGLonxE@DmG=OqhT?X}3S-6}&;5C;7(77jl`TRU?xPQ_^ ztmn2HB z_yB{&n`h`c^F&s(c(udZjLSBlbbk+zE{t;Lro_`<#gZ=oLW3^RIZ=G;t0%;;US0X) z**j_h^emfLu%T3JmYN?9#yvRCA^*p3IvZH^w5yS-IWHJ#v_tb!&Do|1vKi_DEq!Dgo(eR+hi7_ z3;zu}x_R*6KgDtLlLSl1+GD33&yPn!=gU0IS=>qjw!tffpf4bF-$a?2m&`!J`t*&P z?8&PtgkNu%>;jc3ZjS~Ka0N$n!F$oX) zIezu3rj3WE0$8Yf(9gNRet$nFa;UHw`EZ`40HQf?pbH16EliG1BG!*sd14X)YaI1K zIt=dix$er1^a<~VTX65f?%0ik3LjSlDiR@1Zma8flcHR)Z?HK9DrsWwr`~H-T`N}_ zTc}%?Y(?DC@-N~)L#pnsgB2gpQ>|&Rg$Im=wkpA&;yDU}5eaI# z5rGc==JEgz4F`@?fahf*(`ia`qNpcN{0wI;6kz0L9120)GVR#Bx~@07utc+H+dS|2 zu^TDV-rzG-XL}xXO2>muw-+s}z=0J(%qRG#YQD-j_ZQ*q+*bn8LW)kbS{(k zx-w~?BFwssSJ`7rw`J0KiaY&e3;cKc?ZWq<_K+1iy4?w zZ`|t|e7Taq2wV4q-YZw~mWxGv6^gvVUpji6`NJ*wiLYb2L$(m-fcqE9*}FKT=?S6m zh9fS09-Gi*?KJt8sz_+g6MjFINfq{r54!ssLRi`JS3#%_aqR|B&gL1WU1F2XRi z?80$RmYu}~Xrd>FxGJs6tSqIGwWH$DawM*Swy+nW8;7{TJZ&tEKYNUw{w-qpDMqW} z&m2xNb}uE{JI|(tgj2=il+PfWi**zTGeq|!+H6Pu_XHIhJ`h63FyBP9|6}#f31Tn< z%YU@zZmrAh(wvM3HtzuSl8&XXF)w&c%C_&1p-74jX=235w5X$sTbWk^&gT|;JlCk` z*a&SPzvzJd?%y;?H*t6`K71T9Bd4ett&L-6%zlnoK}{A;_-lCa&2Gsvi7N z7`Lfqkqc!peigl$eAG~FL38uGXh*cQy(nW{4T?q2Y)&5Na%GSefR`ZV5&M?;dW`t}ISB{3O&a@n3Rd#JE8idKEn%%uL; zLTXlokOH=3f9hUJ=~u`6yF)xVN?4gGg{!&(sPm=u`9Bn{y{rd5t@HBIXeaM}{r&&G zrQ(x=zB~3uilFIq(2EPUv9!z!DkX1Mm80!9-^4yUbPzLv>dW|Tx#PV3Mzl6U3u(upZL`QkLS&a!%^ zfA##MDZM_wV!mi6=?8bAmgbJCjej;z$2Y>&a~?TJg~+g)=Ctr5kR2U7?zheV<2_Yf zt#D&0zlT#HJ`ihk_9ip37-F>TyOAb0sZA`vMD-+zl%4}m%S5#4SDK~20Ki!u88DMU z-U4eDC`(dHr)Qknls6@6zH6Yu9Q5HQ9DfkQ!&Nb;mDIy@Wq0tg*L`n>Si30Et;l&p zzaA*2ZCkp=?Ti}ZzC3^8F9=l0t6a(;vtBTan0523KKkDV-q1{47)FU|?t%b6fN~EB z?w*8_Sc0pn#MUdd8TNzWE`*P&o5$$Apfkq#f>s@iD6-7q8-83}aN%hld&BfjVzTx6 zoSM-^B!!Qm!B4~^T2d-zacYJpcN&VI-}j~2D16`-pHHViLS5jc(Cr5bk5iLHlHYIJz?}o$9$rZw zeX$A(LPj5~9oUjI6cUG%vh%d-9csPCM=V}f^7`8`I~>c0&r=*!GlfX#Deq?{RmI1= zx`%_ms-6oha|-G5O}fJ6?T6HzhWgz+K0S7a`5qq4P~DxRmV=O5yUHY~=f4&>&~6m@ zTQ3;bA@nPS5mh(lFXS*kI~rj!n)NQ1>^hoaAu`Z>8XuAAz1WhoMMYVJ870x1S>0mU{mhRy5T^C?N9}iiShV`D7!t zeq2!^OQfOeCr$o}*@`vBAk9L%JZ?^v+s{Cc?V1Pcyaoew*8=cM^=Gh!Uhs9-bxRsdyrF`aEtI6B@m(jRVOz%brgTPG84 z5C)ormLfaFIs@(CeXCE_K!gkcA&<}4@Wf|(1t=~e9HEV&>Xbxq{^zCLDuyW9Dkc^O zp4Wp2C@FgSLs`-3qpD1>e7;yxjirI{)y%E+v1ts#3nvJ0H0DoTV-ivB_(xT8ou=`& zNeRAn(BHWV7n$c6=Y_v%HBY02VRFv0}R75P_@ zCm;8z##&zM@!?B1(=JN&Lw1IYLf4SGUrV!Ugr%?->A%EZBSWQO?u0w>bq2y@d*`j; z=I}@DNo$&~G6TNl@ik#@XFDDI{yZ_h85~CsPUcbX_~k?UP}RHuQ$9x)$dCE(HWpBk zlr=q)X)7k^G{POx$?K3O)2J7|)WbR58$};TvhJW5HEN6ztv2Jc1MZyO_b*wS{NXyL zWi9z@=2og=A314_z(xMVugz>fv6CgW161~mSs$pZ`#n}3sZBohR6qZhQF_i@W9Mos zjJ3fN>@@qiL_03(X*d4A&iVr>Mw|?K_A3hK#|)!hf7l)r!5t|+G&%U*Wd~_{Aie!$ zfqI`%QVH!}nSz_Xte&}MlCi}X*TL-xvOyElSbsa%{--gN7TVvMk(pdHGCkSG?2|2T zc-~^a;p8g3+gT*qtU2<85-;hbtHa7Ub-mMlEFz)Iy)cTXVhJzl+U@RJ#mtP>RF8Mq zVDuZaXO0;4i;R_vif$xM$DOm5``G&=(yY+kcyQex!W04J(Uq?t#{q3UI?k5>&TA<_gvPk8*ZvfmxOb{l!-0}4p-AMg%$<;=1u+Q}rGd}oI`*MC4+?Gyn z9@@Q-pOh*o=#p*LqwFLBG!Z(?^?^JH-gM_ILoB8PDD zWH4!D@H=w>7sMlG$MAcuoibHN>4Csmh*mv&1+piSIhc=mXKvSDo{KLMfdx?7E-1G= z(9aeuw_*rPKY-q1nFBnr(eSe4hpt^RWo~pyZlxgO$-#tl%-sit3t89uDJwmd`O%Wl zgRdedtLUCxLKCPVEqMp^Wh9HaE%_uDqRx)VtiSF@Ntqmm0__w6?}N4GyqEDJTz$?P z{yDCjM67&r@3YvW;neTNhX~||^&FU#_|e&AZYzUtXH)W1-Nb3>znTk47Y*TCspzem zXearZiJ6{2k7ziw#mYqCP`a-r8+;g&EP6iQRrBUTu_$J$j=7B%w^(a8zSY#^gU2a% zN%Aj5^vLz6SGxIOWFDg%d;V|oE?x4e;~g&b*J3hhOy_B!OKN>zVb+U%M#-ooFDXkq z@u4nvhZ-@V^TphPBzBOKlU2nc{r5P{}{rOyUt#Q8xfbhU%tXzG0?O zh-MCTiA#tR`%a!9<<^Je6peweam%Xld@dP|(anh?BSyFCL)NE#TMb-BKWp7zRu7UR z>7va*h|%ATP!nk+R5?UPwUL_8+QkBf@AQyXt78YNEQEGpAx<_P%nOiXX-v8DkU_~N z&i{WW0+sj-V%x5U2L3DSR))YuE3sn|3ANAh3|~zXT0Sn0T~)0$jJZ0u;3;9iZAg9Y zr3V*0;yR`@QLd{s=yH~ac~`Z+?SM^J_aOOTG@QwEM#@} zJHV-M)A`)^pQ39=BM1}h;>7~5M^{k5TN>)HcjeNg!nj}j{?j*h^REVKnv`s9)4Hi5 z=jMcpFl!^uCO^GIN@t_9-N28_m}!0@G$y-!`*=K2cDpV9gMA5mfJAHt+|T}K3m<$v zf~S(}ndhFAB;s7eWnj0Wc(f)N1_LsLcAr!9jfTX*-uVxR#+lv)ug#*?&y0@pcCsFp z#;N!ZI)LoVl2q5Sj<-?Gr=vYzZH*FlPw$_qbbQ=wN~LO}v6G|;(t=wGvy#t3N*3GI z`0fE&>rT1(0P)1pNitSl-K*Qv>$r<=KV+Jd)ZZP4NJ3BOgWUABSjl?tG!uK}*s!)Q z1naod1QV4o|R+w+p_nt@*v_5qy_;-fH5?%N@VkJ!!6nrDGu!)8BA<+5p{Bc!~n zPtoE0ayYrn6NE+etc6$fU&il4&hJpo4a@s$BNHZo(_%vIZp5yV)c3CFUeVD7*B6y#J0et*yvjexSEKVWiVqu8plL@Z z$g$@OeCbD!UWcK7Mx3j_DiM)}{5XlgvVNP9L(v^mVODLy2BlX12OnHY%2=Mgw0%@y z@P?b*$=!_phe1`Y(APesv9CQZl8oA)kk8N#31W9y2%nypQu%-fK`AU5M;G{{ht* z=gntt<_c_|E=T3SBJ)o35yg-jV+ZH{4m>LJ?TFc$!m145$qdkw@QM8oMr{4p z!x>6e)pN&bt=N;Tr?%Qsm*<&yZ@OrLEfm zEzVjlE{eMHHoO1}$QGadx>D7>r$-uYJ?w?w z8fyWGJkcVG>_V?E2D^=k1Wz)v-M#m2=425_f?=%*q+xBbYcVW^6pdF;Al$YWY~;DZ zh}vkzadu**-fvl2A?N`Q7VAJdxWJ^*C*_^iF8iUDrVeml=Tix|shT zk7CKSGH95PseYlpT$84(+XpWn;C#|ZE5G#i)cCzX zWx(??_5n0>c-_g3RCkgxvxjiJTeΞ$<;ZjiJPuW7Ew56l^+MIVn4GsOo?6a|%GP z5V0+9z(@Ok{SdZku!!(RheVpdrDcMn8dr&(OXF@}*=v6pdXcwLIaHHW#0%lJ--u6ZQ z*)A=QJ*({J7719_q~3@}cNmO1wHKl`g{Ax`ir`NbRthoR0QVN`wpA1GN%cfNCA^0 zuqx;Q;f$w>k)iJ`aLZ`2J<rQ*vMJTLmSvdf|}q9lq-OQky#gb zL*EaeW@oC7)7Y#>^|qVaDfQQ!M~2s%_(?F=>ToGhomo?6padQWw2k$_k3!$^kaVk2c+;l^Br*q>JOMCO(FOjQOPf*oUdNESD zKhmc>ytdo3HZ5z4N2l)!$X!>v4;ZqCk8A)EqQf884U)XncKr2QNO5w+9SiiZqXhn zMeWN&avsrxS&dYKh&*WAMF(E0>ax0=VyHPx>a=&obDwg5>ejz4>+V^d#@9+j@ZNmM z+PP3Z>{zc;WdBxk-ni&CE^6IhZ?tqWq={o_-}Fj`s&4NuP=yvTzA!t%qBm!q>s|Jh zPtnB|SBd}X{dn>Tro}s{t70hUoBmvv0`!&^RX{21=;zC)u7kuk2gW{D9PIJVM@@g$B?D2zd#td`9e$;+*{o`9v_KmB(@O;!5 zVA%SSX~x*=j%>4Lz<04{2p!r7Eq`av^V=h$Ouo!|{HZzr$=!!MVdic03GGD3R-Hc` zQZP6Pn4O(1$I4c3)1(9JxzL^_6rN7OJ0V1g;-|FhGuZpK7kd{unVv>P1fWVizLyBM z*6jZ4oXTLnY0u9O)#Cr)&!mX0jzHyV=;&OIjXS;^i>K{ZnPN!#8m;-f zUXQ|tp*uAatz1NLdKbub zv2n*)$4C@!*1vZzL>jp8|4fsLFQ2|5M2aH)mHEXhYkzQT0d{^8&J))SzVXwdN=dw5 zmQ%M7DwX#`WgPDnOAlbwR$#WgdDh?y?0UNM=2!JBlX5V{YIm4k&E>P{In?9hrv`zX z&9(#GPgBcM^%Nqr0C{|N6nw+_raHNo3Cuc^8Fs>wj(v*E_e^Lcaj=hBy&a_qLj%~8 ze`@@?=kKt-(SQXzPq|2?t=yJpP~9()Qq-JR_1yPe`?|!JKlcSyqQ6itX&zQ+ zozO-wj`txFb5SbRmJ8v@$;1szb7l@@v*swe5dzl&F+>z;!Vz(sa)Rqqm+) zYC06u&tm1h{$UsK--{VAf6>9yO0gOd=1xzIs6M|t%QM1!Bu~gnnhyPr&wKxi9 z^-%CMSTgBnC>W=oYAIYm6%i8%flm2Ao-N7t`jesf-UQ~Oyu>tz-nu;nBJ0Y#mDgQ zWv9~6>atgJO!4 z)7U|ny#tk>B5bb0x+k2Pq9ZpMYk6NXWXGddSc?j2%S*d|uEQ=1{qpW=&fizw65^6O zVo<^7Qyhlcx;@TQMUD|^I!YtKV@Z~~{`ZyUrxQP$5RrmijmzhB9qvCr7xFM=ovR=g z`EDSWO0SeQY7#oz^sS`81x2gC4*_z%lRy4W71zuoV43@a!*PIE@l=R|T#B<6QZ%*u zcmw3G4RQiP<<_$6o~NuA>?F@E4|05HHcCX9Nl9MP?Y?V4wU~0AJbkwa)v7>Z4nKAC zIcD)d)hcp+U88(jQ&nOTjz6FiNVSnKJhsH9-rB>*WugPE`v$P6`>4EUi6m2*Q^{HD zPJ!M|JCoczI9_V_{>ep*c)1SB#>MtdE%m2=Hj_JqOcC5}RCVWBz{Tp43-B=$+^iXg zupt7EpQzfXbfx-$;-Lek6_gckhHLBw1f21o&9f~|Mnjx+$#2GZ`26b1AIs~9_Nz6r zpl#)42QvI%>t!sx7Wjv0{)0#le3pN2Mtp5MLNd84x=(mxY<%ogZvzs75vLY{?AsX z6bKR*UXU{#)akhu1dq*?mxH+sLH&i~DQE-Nx9;Y5dRk_h%q?H?+jqE(;+PkdT<3p6CPL?rRCyY=zB%jt@pndj z7mHWy86`N7M=5J9^cwP6HhQ@k3VaVnWsZ1JaG8Txd;}-2_Ziv{QN$>q@^)%k79LbotrQ1OL^e-wcQtaBGP zm(r+D{Yj<9F|;(Bi$5uyA6{kbwWsVxl86$;J8|V3Vp~jbrRFRbl`^>CKrNTjKN&$2 zmi~!<3`k`feA9J~x6Oi6y<}QP$+tXZ9y;}XZy{k|lJ|Gp-)>9z$MjPXmmxa}=0obC zbq2WvO>)_c(2jXY8g+ZD{1CFR>7$UA+}a`*15JM5HbbT0qbz7fe(ub{#;Ds(ikB?tkb)i``3JvpOch>4(F9Ws2Ca&(T|<5d2cYWUF5GBO@Xg}Ct<|w z6avg01{LhlrzboPL3bnpNcBmS4fV>>KqpeTVi`G6BD-W%c@`k)Ipo|$#AL;}D+*a< zN&|DP@PAv3L(!dR%V-&r7_SYV9!yoe4hl0X~ z>7a4PLjJ*QoZI|1g`F-^m{X2~dt`#ep`5DmCOVColyyF<`yOYM8A;K8ekeh@$S}p3 z=V^3X{bgylww#tbi3@dR4a1uQoFE_GX6-;FfkOm3YFe z>g%qb5G<_QyjJF}^^Tt!dl>7ib}&J%dh5pLRwYDc68DSfIz1Kl#>hCuw*P#~zNfq` z>)Avt%Qcn$EA?wRa$nBmH$f*(p40mo_e^lkHXC%sC{u0wkOa*7JVMN@C8cI^twJ$3@NL72_KvL6!8daS&f{1P{fofSWyli88Ha<|`KC(aB$m`)%Hvv`ol z&osl*?B9T=hVRDpej3+%U_C-q?_AGaFnr$`>f5?vSi)x>NI5O>jVSr26=yk!hujo>n z-l=LM&SRYvX}0RqLbfsV`dc!|FKV(X*_#=91D3;*Eds$6quyP9FRBqpl>e9T;akU+ zm1MyNsHWsrecaHW4;LoE6^Pr;RDNOQZ~f)T{Q>TZvEp{dkxu2*_pXl5_Zm-dW=3f$ z4U45n7RwuHWd8-PG>qk#npG$qq4XCFM74 zqJpho)~>e(6iW9mfib6D2PhD%_qS!Lpe+5F7~}}j^;(BH1Vqi9(5t#5v_^PzXV<1% z4Jync{OardWXdvxqKh2Se^CdSHnynw7&r?eB+`ToD=^J8#c_mHVH>h{e)mg?4}lUA zGQZDO6qSqq{mu`v%G%&QI#4`C>Vb7kg9;%J6NtkWTRA0j%d9H%OKiK7NNQD!&FpM6 zzDU;$N_w>TzPl!PcI^~;g8gcJ{7wQ!3@3EajCmsW(h+reb=e*X>(hG%C$M?gV$`QR zUe2IXH=KBJ5YZHRodQU;*PI96p1-lsjkjdbCLwC2;ttE5 z0%=_zqv4TqEmOs2nn*npAIg%Y!H)AlyAhrMd_)3PU1=5&ppQ&1H{Xr~VweqFAj zaBFjc1lnhB`68QZnB`?_D!?!LGhQH``F!(II4}r^KzHR+)SXCFo;<9}#EeMY2pJ+W zj_OuebW52?jObG*Ao3UztW``8q;--WkfaI~5(0#JD1YkVqulutOKSUYEN?jAbFIjz z=cJD_cBqVFDZ;niw8p+&UF<~TcVB94|=;%XDvI=n=9 zk{!lJ_ZpbXmX>Q}c1O)p%^SrwC#Uah4CGkLP+mhT|8 z9gQ$$GY6|rQDqimE72V*qAf4|AmgVA88Z_Fn4K}6QDTBjH7;axV(O~Z41P3H6K2^` zwHAdzt=%`@rof3uUVodl+Y#IoXx%lrYfD$M&0RolH$=}3xbr$;JIN?Q-l1BMoM)`Q zB9o`EdlMD=EH2I1#gpvTKq|2)>wA8;~{FFG; zT%S#a31)hdm0#5v0Pw36&$H^~FdxV^9FNzJ_nZg%Sn3K*_hoEy9a|-eh_mqf49zMz z!7r)0)Yw@1o7nPVY_+aF>`C>X6?L(A@=uY-s&Hbui-jHn^w;aiUKZR-Wl2^@_^%z+ zz`)J=;HEchLGYhv=X%%RGTVvZ>?7XmLuV(S?@}~N%?a%h3^(agkFzvgfVKV7b=Wtj zB(Q;J91m>QStJW+HX)sz?@)<4wRIiSuW#~Gz1~;=zPGg6uSI63BJEW907u_@=-iyH zimR0_YvK~mcIQ=J7mj#XycclUyp@HY~bOufOK;xPl@t{$Q{+i z9!8H5O4b^WWHCaitXu6~6N>d>UlH(&+bCI=j9skTqA%}?rg`=5gzG9pe_10S`^d!9 z9spoL7|qVegM7`!RV(Ox(y89c8r=YL7cBX@JsBusWs5F15`s zVx$g7-YMlb1vvJfk{5w-U9g>a%HR%r0Ag@z_$PC?8|@p>z>N93Sm8XB0&Xt-428Y* zu70}kYuCBy{UUWSzbACYD%s&CWCJ5+cKNLAEo7b~~a-p0aQHo}iazl& zqZi;|^1vfXsBd|^@#HxcC)ys+?Pw$`sbOwg001={oAF0B<=Q<+-4u%@h`a)8!m*;8 zx!&x@Tiu)0ntIzPi^s5t7JLNO@K%(+~1zrt1fA0?=pL+`)` z1i_(c+u`%D>oy%kY#=Bx)^@G%N$1i6W*9{+?KIDAQ9rySg%CDAz}uST zTr97K-Tx=DUL&wlb>=)M|M*MEX@+h#Tf+>&a5s!>AiJ7PvC0x_*)MAgM)YNtE;B^b`(@UrQuXy_ z07gTenFs5lWgrr*t8q$&%fB3+OqJjr^1Apt;hkafchFn*PF|nz$TQ@dSwJvGo(HH6g$T>^gKP)siPvS+ zAnWm6{e8R+e=oVNK8f5rj4smJyoe41E@rKLcy>?b^f;~KG*gJN6KE8fM1tkoO%XCt zmMRQ4dGr13W2nmk{nrC+kq>{W@WUB*rD~(J!?aLr#$f6PjzDSG_|FgW+V4-%f6(Fh@sqgOkAt-L zmo)urzPE4x)L;^Z4-0N=wd=c6&E;^{Jam^Zi%Mqz;c)CXG>!F(;1wE0Umoq00EI13 z@$u`9vs}I|CnmR0$DL_}Dcc4Et$vUe_eRU^3S;c~z}PdeRwJ*)LEl+(sG?;^`3cvG zOHTiIj%ne(eJQrA;pS^i-pBV)&IDEREU^(xO6 z+Uw4({re%42XEP3Ba;+H5&)YbpU-Q+^R$dc0jHFktU-%gdyw)(n0xTi53+Q8=3Bm0 zU0Bwa*oLB$j8RW5k~UKg+=PgqL?NIHfmV5;v0w~-j7jVev)nz7{c^J7sTQ;}KHe=0 zx;cxU;`8r(^3|(&=BPK!n>6orPR-YU$J|LB`t_C@(v@YAMDh`ES3oMW58TFkE=8=t z#$27V){;t$ow@6Z)H;vUzn;3a_JNY00>8<|8MchEb4=vY)iqG~R>bkhvi6*Bab#el zV#JA$5g}dWClJQu>dWHs7sdvjT#860D4{=|2;j)|2v+3J;RIz*Wqiq3`N?tS2$#qx zvwiBQi}G9T)f$`L`R^Lsx7{QF_%xxXOqdCn3!iI&#mG1vn7ZofFYJ!M(e5A`gH$1J zgqdr$djqG|xA$PxKVXT_#7um~dnQo70L?tKYfLuBOh9f`n0h%xbNPJ?ne&i8^(>E* z;~jYlkB4O?5HKZ`uUw+OnoPT-z!WGtgr1;X`rGsIg6u~T?;g>QHxR-o+d(;OBQtZ9l z#KsS;$DxNrs}WscmmR#cBVI zin-#KT~89{Lix?y zv^MECX`hr@Df`2D*WS&*CQl>@#Sne!Y0ru-RU-L0kV-HVK4vGd?eAhQJjhp_H<~1E z1A1lrSAJ6r*)Dyv%NG*;`6Kr>Z9i34yGkTJg}D)y{t>Sajpd7*++(d_4^+QcIAKZ0 zejH%#1#0|y8Ra!`8dYfVe*C)I^Pw53y!b@`VTTAKUg7;;dIzN^WU9botaXG{Q*wV5 zSPNmVu~7yNzT5NMK6)$3Sp$`axx$P&X7P7Da80sR zB8WcYn|W6>Ma=8JAba1hl(jDgDu1l>xT)RGUT+`jm*(h5r54FZiUZXpry`hRCDu~T zg*H55%=W#9fkn)A*)yJll3t=Gi4EaRHroBodmkh~WlltY zHw*7XmkBPaHrQjU7rc0ayi_=wc4zO9e|4<(Zolw@-S9u>IYtuqwwD~f72Wz$e6a*YM{+`fGWdw+%?akayRUid=SROhX&G1zR9C=W&)iIMiNw&a&`E{* zFgUf1a_!Yj2Oely)=Y~Rik7{(Rh|eUVr?FOY-w3%BAwvV_##0vOo#O##n8I{ugcAq z09q2U702PQ{x}xocuTrJwo&n%*b{Qemgm8=ammCR@MY%m_v4f#CZB}6Kvs_(G%jsO z)!I@g|AvhLF-zO49u)8~-_Jvg*d5 zzzDN4WSCUCZmUmH}oEm$&TYi986&2^z1n6iK3O=WYOOP#^}Y#m`Zhb4KC^xmao`}fFW*DA0L=1RUAJ$cd-GC5 z0L?>&mWqt6Boj-e`?rvN{uopd&u={;_^5TB+vgw(_4g^zGtJ`)!i;&!Id<)vt6V828G z>S)`^<}Y-O;ooX*V5Fx4_IVIi0R*4+&&R+7!ZU6*gEp8no%nH;X!&c|UmLQgBlk8e zOj8&3TjSI*4eQTU=dI>&O!Qqs0;?ok=qh#1yr$-zI_crEsZU7%$*#lKUoiBxF3dbW z&i{|3vyN-(egFU4Ku}N=1ZkwpfiOUcfwXi=4e5q~bc_%rq@_j=DFNx&XeQm=8zC^d zq(;MUpYQL_Js#(e-RGS9T(A3z=S#e0R}-pJdeSGzIG3#`b3wuKvhg8;(8Igy;+6F9 zaUwWXulk|Ku_plE78Xy2PTZS5$wL5@UaHXs_f+f+f%2_So;S5@4fyWpNr_rBn@Tj;Jin<6guIVE1YtPA*zdv66x7>^`ubdn8UbD-^zYLA>ixD=@ z6cKsI=*-$47|l;QxGiR5X*T95-D>R{k~*7q@*5V+Kv7bWU;2}4>Q0xK#~snt|2S$- zaY$kgF{ogc$Y+Rm1iU8Zxgnjd!(q#K&_-4$wkA}Ua#OFHeN6fp zTVt|&g)J_viY;V8zEpc+M`}*>*CisRxvW&;ljpXr&ffR*9r`);U_L#J%&UHH2P$p&eUl(z0Df(52oL!>j zjm=q>p0rM7{sZ#Kj5M5lwz;C=aV3Z|n|<@v!8CrH)Do_R1gd3l1$^lH7O|h!|5-t} zS!kuKh5qt6HmbWiGX7d-zcDWDy4V|RA2s4|mqff%^Nq$yt`9MIC^rL2s!nWLaosc8 zO{)F^SxTc{to_r?H4jzg%9zu-VPCI7P{zddk1b)4(Ri+Aql|W*1gp9x`(*tVX3a6W^08E;H{G9xE^fx8Wk=9~I5xE$s$B+Wg;7O=FFt6uz&Q zso<@5x=PGq-15;sUCZpA*`fR5)_Pqk&sS=$@Yaa@>luM@bL$>I5|#VXXfn>+o^$l~ z>^r18Y)agj@ULJ{ks{j+*ngs7!s~jP%HV{>gmtm4(GH$%QP#_TqKDnR4}{0V7n}Bv z%|BzrYNpq>+IrHtMIPi>GC`RYCi4N6Y~vYmQ=Nk-htDaGL&<_2>0x>UJ1+nAemgc=q8ro0EeowDU zytILI1~pCtvd9R09+{2oh^G>exJeGtRm}DuJuxr|lG85X)q1(9S%uWmafIW9zd^<;A_&#CqLr}VWv^TmT! zUsB{kQ#EgzpCqq%z~ zE`DEujL86zxZ^pe1@jU6FZRC3Zmqvy`UpDBM42E+#E&POTwjg;@7BtGM+{?ko?H!Y zdkkTM<*w+~uXvmQ1W|iIxxy6JoLoN104&wPfByiq(rINd7Ja;@pTp^*fLackXPSX+ zZ)Zl?4kW;qj3~f`8yd`QhCA?_{zkT3S`DokPKd5ISYxUC(pO(mO8c12C5B$9{!(b; zOdL!}*r#CY`RQ72tJL=i>TC#KMJ20V5!mk>qUA5`ud+MXS`f*H7LXK-GS7uJxUUf1 zcr(^Gqr0wGiKhLjdfKh1mU!yjR~I?qS`#z-$}dj*vxBqT_4-~bTHr>>|7v`;<56ID zt8ep*vZlXqIpe#@F;;))zMf(DxUWi*p&=MHSPV@Lg;&%raPw}wy2k%iH4in-a*D#R zw|-))4CT$W%*ogN*&W}vmV5CbFvvJW`6pZ;JCu`N8W9H z25-)AQMxpC9%Xyoxsn606WWrklOTP{rIlriwfp8A9H8GV?1(I1eT+r9i_**JI$<7N z6Gafu8|9%jU6&Qf!?JZ(m+PTc;xI1^_Kyv8(aq;OUuS2Rk=oL z^>M`rb||llH~~48c&ATY7vE*HJfjf?s|$8e zYsxss1s_y+N4f>dBs6nDxUQFKrz3mPEm!{;vFGlsavb#Qh~KtnzouU~j!LBe&W}40 zo>>PV8^v9zhQVrS^zm~Idzq1%7$PsECbzx_%j4e;B(0L$VqZ6VOpC2&eYq^;-yEag zzBCb7$hn=Q%6=k79Y%9MYRRaiEF?Pg=wIoRAgy4{4&qkJej?y8x3!4+E^Vn{ERg=- zZ`+c4W~Cxx4szQAp*4uoqM;%rC(hS2-O|@;WqcL zqEQhyYeRX742gYn0K*k_p$k-NQrOI1>53QU>An+a+@&7aim5y~xk<^Ypxb2oHRkB5a=GgUMw>#mB{reUanJbBws1AF%o&#us1*Wp2uWz}p z7#{n7-mn-6E9=(cS?q4uMVX7AWE-DHDs(xRk)!cLrQ7S(*u&mhX6SI;}YrSV^ zYzHAkqt1q*|3wTG{KP9tk{WtS*wW;9d-V)zC04`G^9_!Y0pf&|&A!eG74OgrZEGxg zF{F4fjg+EV-O<^cYN}D)U+$wGSYGfHtufMk!pN18%Ln_Y`mUA%1-K+O-!tg;R$p2IzB}7Je5#&3Ig0VXKPo=c5ZB zQ|>T#yd0+5FRcLV^}QLn`!Z!1+TOc3*9ry{2FUeKXd!w_ z=3DBLJsfWupY`??&F;QJ8d`B}!2); z6(hE&WD*)Hp@WK7u3x8r1^kotLd(>l4Vl(gW_lLc$EIBpE(D27uZgQiYQu)5`N;KS zInLn00qBp_Cs~d07h2=!IJ}N8e}C~T*-f#6!a-TFE@58?;?T9>x*k&9`|lNZUGM@A zWk+_8Jnk2}8HtJ7O$EG#jbp}(8X?laNMQ%I4*8G8`RAph@b|62cWNP_JO!UsYUzav zpTUr81y&`1$>urs8NKUdXDk_|b(Qty$~Gc5sbt>-SCjPRA{UwYO_v*{o9geDP#3^* zYR4Lg-CyEJajQ9aKqk3a+xqpBb{9QWc@0_|4<{>bCNN2qoM>3^Y;|HJ*BQJT(tCe@ zPRL8kKA^KAtHWoyq<-CZ{fOZclyzvH-BD2#vvmg&qcf9~JPY}=Q(_k}Cmo}7t;AKu z_=O!Z;CNfme7H+)08L729)K0(x`yEvh)XRuZXTX`R1tLkJLbAMd4Wi7%|&W=XO`>= z9oAAbOB70T!H@vMHw&ZZ2-DPg^hjxOcq{6r?OOI%`-$h44+`?|Ji0%Re{ zn9EtWnTE+ygJlATm*ve9WkhgYV#8eaml?rPj8~1Z%k`9oUjv5rU3z4MWwbtgp(Vo=mWyOLV6hy5DgmjXDSSe_Arkj>VNo_E(mg4tX zTT91S7RP!7L;M;vy7>&@{yme5R%$jv{2Wl~Y=TCks{Wf0u<)n*J!AK5C?5b!9O!)Z zebFqq(Tfd#5Uf zzC~T$Bj*3xumK71t?(H+|JIvm^ zGR9_b&u@zXMMFcyHGQp<6O0%|{Ab>GIy+LO@EHbZBFY@rF`BNVc<)ny;=$&NcSIKv zi@DDveymU3*4^kHnb}7Z_~5`70Y4id8^4Bm6mr)D$;+U?J&7HndnwbQxV%%Zm606Ph>W} zUT01Xc|`n|K)(-r#(iDI56*0Xn`}ixJl9y+M!!d{HfVDfw-KqtLOnO_NtyzC|O_&!ot)<;tPJU6R|d@{H?t;F^nYRvW7_V(lwn&0#5 z-=2vAHE@R=r`m)ZBPVU36{tM?O`3+fscRT(VD|1fv13)sM(Og+bmDfNv;;Ca4Ol+@I4<$r;s(HP-O(t=d(w&bfF^73l6Gd}ID$J*=d@(h z8gMsew2sO%p5MdIr?UVJ%?FGmg-U%~)WDaf_&Ti{KUl8o_qwjX+{$Jk>3_zXW8Zxm8&-!_HZ?=H8XpZC=x zzC0Lvr}|>QFARM3QVkT=a#d1<@<-%m3;$h!P%9~@W;)or*Q%6H8a$q-Wah~9eFyD* z?bqUytI&nk8i)L<9qTRL(?EB~dKH}w`3AObhc(5Sj=668UT>G(K}d~~vT@W41s;!_ zT34M&UqZjo8|0<$hU7{7o?6Vr}wqUBQdJ{r&LIHg4JV9~Bv0PHu_4{u-%XtGjkjNnp;( zeM=!A+PbjF1Z6J=^`2<`+>xTP>({PBddm-T=EQI^22ch1dIi!rWBkl4e%6LIQh1o= zW#m$oS}?l}*3s)}Qf97w)Qll?tnAisiJg35ozube@na<)HaWyIDiY#4OCfol6_>s`;ESQuWt##dl8&uV zV)}o93u-rKqEB^CSGW5c;#3!mH3Hj`7gz;CxXgRuu5WBMT32u_1(|z+i>v%XD`9Ar zIlc0hrbFWwyJ-?k#%9!z%~o0aHe8Y)dpez#s}e z2>F~1^G4@1(vr;IJWF12iGrQc(9K2R%Im4(FmRrjwH)ot!uCP$=P+yN;pGUc1 zYW|Hnc=a`%&e-mSYo08=70J7D6N!A0$`YkF#=epBMh>UryD2HwpyeK2vYm|!gyP{0 zP30{L1*_ykSs&K~PYU;i#|^t$I^Vd~kqtNEAu|Abze>R_lS=ba`*pl&>cCO3GewHS zhA?_%k%(d_Z(~&1y^c^xEj@9OcS$g?jB!^d!t0pW9n4ZCK~C9T&@Ck~*CJMhFvSdF zbt|FPNss*UpWmFMpUbTDy_{objPQ$+-50hVEUn*9^8m9@=SVpjU`knZ)F$&QwKDr? z6p5lvpG*zx7Y4f9efpSd1&Pm7qG%U zgBz{UF8A(v8fbNXEJj8^+9e++PnyrL#{)_ibph7xaQU|rpp@Am(|;s<;b*O zN!4-t^r-Z4-^6^b%)+^tfBnq){ju~{o0OBl-?)#yL!wtUr&Q9u0(MuONENJb{FMrp zEX^;Zq_pP)5PGjcVQm*3*$S=uMG81D>LXgLSwzXTgD5HC;Y6!nmNB=2+BXsR<&-|% z{h4AIZo$tLUY&BK{n(Y+RZ4z=rd zIe)Gz{He+r`HvDQBY%ZT+vbdp^X=P>mR*9_HVke7T=MEO^SKGylOphw3)^i^Q^F7l zglW>BnltVq%g-&$D)0(?qZtwZ*XO~p&maY*Wp zy&RboFUkFm+DqS=L0{SIDfrk;yi$Bp^qlq&(cumymD}92G-(J%n^ENae-1NHtv*HiazASUGRF{V1?+> z@a~i7Iri_F!M~E2YM*}J*D!k0$lhOSV|_N5dKxkUdU~}q8jWK*k)s&V+t3*x+#0=G zvp)`aOZ!cpeoq`Eg~irpy=xGV9~3s!vC8ROo(y%YYJ9v0bhq6vetT(4b;H{TVz0K$ z4fqsY9STDk+sN}A>I|nn=4e&RL?<;EajO9U|4Rp>Ry>S6x&)6elrVC7qoHKM{T}9M z<1O{&nY8E6-fWQGWWjILAv28y&eIww)4_iqurJFmJ0VqaV`q7om56SVArY_@)UOPf1~h5JI9 zM<&sjs0Ep)%zi9{C07~F+FS&IpDKa&BxZQ~8O?1FJymenEA_qS@aP=zIo%{<@_w|< zFV`US0?m-)_248(+Zvr4+K@Ncmo@IncV1%-!S7aWdvQwK>%rz`(UhpH_?xoYW}h>` z;TaX1wn!!(c**7bq zB|kF8e70HGylgXnU?IEI@MoxZvWmlLAW)|jR;keJNZ^>1-vTw`|1j`$0hJaG<2!jx z4ie9)AaY;xzZ{q5{yXxMI>pA^Ixty#RQ+WM zaatdJyIYRU@)M}ZqtncjWkjat$=GJG({;NQv?nn@^hVKnxmTAq(&wH!z%ny1Db)j#VNeR<4<$a*>L+29M^mf2ID z87b|%2jURvF*?pai1mh8z`4Nnv@=M(+m_rhjyuYaxg(`^n$P{*PB@EV!L8QvKC((& zA5OViOqDS?(F9C+);U}cs7ka)r+7f&B#@=TF1~ua+=we0xMCOH&zw6N47na@K1xev zzvOoVl&SREQ56s-Ub!#CEB+2GtW+LejPc18%;MDA>lKY>NtjJo>*fZ86jHO{!Z?3} z9T$q}Yw4t)AZ@z7Ly?oWqwPQ&6Gd$#8H{li3;3>Y5kB~RC5z3cif1?^6>Xa zrj#JuATi_ZQE4q5-nC9n>~yQ+=uWFuXp^v@nx4sv zYGu3~On?4*>Y(@DN1p}$#1&Cr=2-?rX7&2Jw|-&R9l@T_dEk8!xhxrrYy79MLDC)B!Itv}#D$Z&4xyM0o zNLyBTtj?itz^9Nna4Bi`f!yZO-+DI7usH$Pj}!a3HY7h7+uS3N;qKG3;6RWbKqW6pJaH}OaNCu5T=m2Gxo@rPjEdW= zVM;S?_J-jjHgWYe*a>K7>s@Jx3@l%-qKxfzdo{!m!`Qjz*D4v@W04AJ+C<(sXDeY_2ST-X=dAZhB#Ex zpV0qX92xSM@O*FkkwA=j;{2H_vW_xwG4EHh6t*LAlY=9!u4_VY#`@Y`Y`^>9D#hoP zLWt>TjoOvSX(`$T3y`#m;fn;-IK_R$G6pz!zj)O&xG8LgO9b?{9pfKeY2gs{UPM%Gm{dL$s z9RfB&Q`i2+MtKPV#JpSvMefPq$XGX}?sY~|F`VDd3LD+M4 zOE;|GJhB6Q)b@Qp2cExW*r zaI5$MOA%{`Q}x&Y>eCDj&5ile68T>mMa( zxzl*OYGH4Y1K{<|{VmYz#u-IHRAoGw`ty_BjUt7!Ec|VUt&Z11%1fOSlk4 zaK-xo)`0ByBQuCl?IedQP1o)R2#Al}oUtKJ55|nZT0t6GS3V6=xlO{jtsCZRjlI3V zdFDwHn){4j;O05J;hl@zS9+rk8X0=7GMW;bUl40N=|(aK23MmN!?UyG6u#)V;?FzB zi|rIQMp;E@7W?t%R2=#YH&>#{2f)-SyHV0mTmJoz!$<)Fc)l+hPsuDJ`=Cd z0r%eZ>t1d3U~#3PQSMSjdfnI(9Q4;oxwz5pkd{ZHwpR_yxLQVg0i-XR@s)yT!a=215T6KG6W5SI(*UXeW`Fd2 zLTlbyE^6CQkGejvqkiIp!O%xbdaRQWyZ!Vcd7w2UK*syYH-o34Z(GAo=@h_Q(y39u zxg;J9=(=g$XAz2@me9B#zcG2lprz`tIhcsNin=%$#TS&$^su-@mF zHQkt&(DZgls;HZGrkD1F+XPWZy!+kvM0JyXuVSysvq8a{;if(Nt?Q6u)I-VF=bh)y zKM+k=i+ZOHj~+S6Zl63}`Dt+AR=?IXMeFgW1pHTsS}0bVE#&Lw{0Az?k$euA zJ|jmro;4W;vg{vPkMoMSXLMcq<^~ z79LursbI31JSyVY&1DOw{ht>C6`%C(iOR-p{ABPp;1vL$zBXa5x9$8~JHpUBf|E|V7iD4E8?v;CNaf5_|@w#7y+19i$Nj+Z+tDt*dF zbO`hU1A6tqz>4=)8iu%j>DyN@Qtv=YIfTNv1BSht!BA5gDn1UYkZc9~(UN27>dS)24T0vGgK2~U;v zB80kxk{whr`{$zVIjl7pxTzYf=F4>znWvJ?oV)l@l&;t@a)z=&&uEIrIJ~V04_v$` zSi6j@E357$EO4wTziAO}ZPo+NO|$E^Kx4X z?oTrA=}MrcVm5I=&Ho3k`M;HnhtJU1xJyuwt37M$Wl{%(KN_oJ?ErmfJwbU+y}t)P z{BL(FVmeboE!?jBEiw#kdw)E8_qC_A>d+qeX>;A%QjQ@h#5oi>L|9D@&~~j@M@U9H zZEa!Es2?%a?hZb)Zp2GZHLU?5Hh<^Zf1BIo6rT6dw%G#Sy}aTh2ao9n+a56qtProU zp8c;8Dq!S^M(trVY0ONeAt_TAUTze~cf6gg&Ag<^ek}2)%*qos@+qi~q6{Tv#b`TYyKZip4h`Bh?t3g(a;W08 z8?W;l@!KTFpP?N0&#B=(;_tLh-oGhpF%4H?Jb}c6963#oRx?$92_aMsyf+Z=?}j6F ze&GNPyG#2UR|e^NC$@acV9^{m(*Z5hckF~#3K$v|-CJwm(YP%5XkK(t23(~HJa8hd zC_=b8rw%#=7&5FzDf%^1X9`;d7SmN*i|ZDEa$a#73|@j*0mimNL}YT4AbA2{vOA1{%|$L@KHT_e*q$QYAAI(en};key~o1 z&(Vu2-;+-h5DUw2C61=kz+rcz2Z<;K^s_?ghKIc158~Zew;3!Cc+LL|5*qFR4Hv1& z)f}_Z=2AURzvwY-6q5JU`h#<2H+u~*2$*GmC0MlCMGtD0z-mcQVWTL703Hzz5b4_3N!Tkhb zc=um?op)%Ms^o)s2M!z^J;mBuFObYrP&YH-YoZ(c1r)5%p;}tT*telhsSDSu+=Cn{ z?Q*W^lC|6(uF?U0^>)4gw(#A@cwD1-SDM;< z&tl~9D2aWs5csEO(q!?Ug2*FmkIL~vg3q_-uXQB<%^br8&N~D-j*BpRe!(t#XUHYu z?)ryAwjOycu_Tw}@0Gtv5iO{5rSCyzloMta++yzxweE_AB@ zs7QS$OJ&Zl<#O^0Dpq`zvF0(n&98mR2phyP3KOfgL`-heMpOOy-loz~p-g0B7q}K& zBH>c^qZ?1M7iNED)FSMMzFUvltDbNXkJNp;Np@nOM^qg49S8VzrMIAZtQX+a@>*#i zZPthTojM@U&@Sc-xNnT(p`8i2khKuwweB+=%wTo=X1BMs{UbcKWVONHdJ2wc3j9SW z<+x6myPVUz_i>xQ3P2_u-0NZLN!Ib$t{})Ypq5_@eFGB+I^Xe`Vac(wK7zl+bPyJH zj)F(SXF#uX_pCB7mn=zd@|psCKV?g0gI;D-bwZX{x#N5NU+-*|HwK^-axd;VoPGQl z{cQ?SPC4HKmv&mXVVj0})9tkRpueJzf4%VZMx@+`$Yo&B=N z4@HM>?fG|QF~FC;B%z?A*mIL+M8a6+T9fS$r1{)jB%}Q7P{?$k6so~w^ZnngQ@ow# z1~Zydh9M_&Qc1Gt5>u;0@VRgY_fwHS|GoKEXr@cS12yG{!Gga<*#Xb!)c|pVmp^V` z9-g)gttDGD0~}5UkIu>(5HsDR^a?+kZYB-2oVWO?#T?>%=i=iE_{pd~94Ffgzv(Sn{&HD1 zFI|@P#-^XzXAOB;U^Vb2x>tY)?;fAi^$WI_ELT1z{q$G`TszMNvRMGaOlY%jb3ZMz z#Bd>Lgn^7ScKH=md{mwVV*S19JBc1|dbZ+$OE&g9tk^Y2H#6K+K9V5|W6M*M>_Q`~ zo5pMr=wWZ*#(NfhbzRLdiW}OFK)IDoZ&#_Wxcl*($*VRFDfpYlOPy@SKM8b_->X-p{JR2}M zjf!&i@+*6+mV6l_lK&?z?JWoG`S$Eqpu@oyLH{e&n46e^?mzWe1WTW?L5n5Gg>{&+ z*Jl@l-LZO)r#U6&B`?!ETr;RP5Lg&+qqb;X2@|Qi?P)J!Y~b53xouxKFTbE1BU}ll z-F0f0XSBUYHZe3lb(_9BQCfU6VydfTYtH0pxG&6o1u-c!Qjo(Wm~00g?Dq3P;A%G0 zXp;<5xwAQqlkgftVp;#6mRtK39;rLFZo!^5k+R1?Gr~dhuguRxTWh^G8a5P&&yN2z zytBAaDrGvSvptl(A;#|CFjvrvfFe+4vj0VySrwa=hFCv*jCekF+ecP@_Ed0b`-^2< zBOG2&B@poS?RZ3~%I?HPVcGg5jX3$bW^Rml8UQPhlo?BDz-$&mzu5(J;G3MVHPfMj zz<~PLWhMW;z2_}W>AxL-lg=LxEs6ZQyl&W>%B%F3e=U+;(h2de7)b~U-KXDkl`Ao+ zUt4@>qmWxhpQk7m?Y;$q`Pgzc;X5D~2)z77KNX!mZ=g0)kb#!3``LWdF>)3gK%7eB zmwX^Tu$9`sE>NmMqrJ4vSdO!=Xu_oar+Vkyw3wRq4V_AiV#2!p#W$QguR82puz+y` zRILT3)=96D;M{9#1WWAj4eFY-hR}w-d1PyKFQ`t#f^2{voTMOnr5Y8LBmvOJrHv`b zMHy-Nj9#DC%T_S%bqKf=D~8Alr5%))C@=Y3rJV?sm+|ke@;N)UrztilvrHW zr!xx!)JP=FvbohS!8Jbrd7u(czhi?*G^N1p(Yv!G3D@nFPA`>xAO}GZ>?7AxDzE*I zH9Tve9A{w6VNy5(SUb?Bt-YU&BO#w-$vOSg8`m4bmgL>GUT=p6_3i)Bx47MUBgv!s zT#0YlraQdeuHM8)W=`9>?Pq>29-cxW@-UAtvXtR5;4#KpIJ`Z8pY!Z80?w~?@+}As zuhkl`3jl!vYJCE~145wpIt#Ta3!RKVc?#g!?2q?cvg@ZJt1o|4lebfG7dW&dL+HsZ zIEseq^h(mX%myGIq~gJeaD}MW3}4+lR;aOp>c990KuqGf0H|b&QTe#~;Vf;EjN0cO3&Rf) zhH}3P${UrqG%XZelbT*DlwzXzP{GZUPnI`GW0lE@*@kuamF_F%yp33Q)md0&M~(hc zJt_N}TjA*{b)KeanRswRmc;5Qh2)9ZRgT99ASc=tdQk-;eTPFf?1iIR?l`-eH%{{$ z0xTnn`}@DUM!2_*gI?A1xebT3QgxG??ngNfv>|OuCEOwz+q7ISk1mgs+0>;15Jm#J zGnwlF8VvCpdK+vM2daKD9@f>e-P%7lj_@U$u%WHLB<1i=T|_Uf>y&~1e==` z>SojOB8B&zOa^ufV~zxqG5tKs>n0G0~b&qYF1aj6_eNw4557k@$Tu#vq`4TN2$5u<%gciq~GL$b;OJ0G*A$|z36CRydkRqeVYhEMD8Oou>P&T?_lbI&k4YJ zUReI^f?t`{>{UvAZ9f7(YuwZx&ik-hR!zPkt9m*fJ zXm&qKdn%bL$6EnNGdcbp?^gwvSMF%SsW9={pUYA^N+hu<0 zq8v_*y3X_o@BnXoJG|Z~ezR9rpMng&(3*{M z3$duzO1|l);K>Me=qUDm{(EWEy#~S?DunV5c$^$|xmAuXJ2RyuRw8-8^Y&>Ch{L!4 zJ3D@JWx9{6V-_5ACc*B2cyGp{I@_mDnWMBxE9NUuvH$bzWUW25EkJBc&xl`sl*row zl3m7sT$9i?5K!uq;(Avkpb)7yjT{?960|DNk9Uz6=3B8Jd$>lR3;Cua&jkq!&Z48q z!pH?2dG#8^PX9SPJsb>9W1Shp52XCuDll!D!TSDW%Zu-2W8p`Zws;Gegim`)D@I#h zC+x*Jj#ao9$~l2d=4^c$l68~8cN=vIwT8FtvmIFzzWL3TN!LOBViG&=iWTY*`n8uq z)BXtCt7!q?*{JZqlbU#oNqp^#p!1@_VhI%^J^xCqZdlzaAW+wug{1UEhI*jf>Uv*4 zXs*}5rrQ({sOfr$_Wkdp!@{Pg>uVh-XZM-D`!($q&5-KQH=Mkx`P{c(u^*IJ#~Awu z6TP!=yqiccU2fGGx8b)q%qC8+2J@f1y&@O4u`=cx!fzxMrq(}`I_Hlx)$UN_iF-%@!}QX1aPP{AL7b*rE+eW_+93ll$;injJ~8;p zq`VKr=sBEU{uslYxA3Qw?GII-kJ7<^IpJSUGVKPVrsK$;xKYN}|4?s0UqbOs93f+@ zrQWK}#1lB;yuOF?rpLEFhI$&}R6=zR$B^ zl27Jl-H(5lk=%4=b&bvPPG6dl3>m7^nysvR9g*|823>sccRg_HacCE&T6&O4?Ug$> z?a)7Sdr~j`Mz?4Yj@she=_%T^tdg&Fx-{->eGt^tMbUK{B#;oQ{X}D0Y^tk|QS)*;TwQNM=dDOwc}h0Z*1S?8${(wH@H1t!}Yft~O#8y=U!g3xtO@79eJ^x%bMBfg+8E0lSF zsFwA2@wI2<@1d*$4rVQX3p~^zHfl0&#)W>&v!Chd9&yy+$5e*bU=xjNM&+?R%`5N+ znC2rK6`%Z#?Hw_s#kfmA`QYRqgc-_On;Mbw>Uz+J@`2K5%?TRH>JwWT__l_i8j3&o zC3@;dh&HT8<8K!pw01<4Kk31KnmS7vG0&2AEs+Or&qYedel-7Bt%9ZWSYUS@%!lD= z_lmts`VQ{ulWsa_Px=dnPoPZRa}kYqjK8B>7@r4bSAJHB@0km z9Qz`TgsS3RsAr4az@mm^na5d&|8?%u*Gd+JZ4oia`VLRt2@@wX+_T>!$|^H6jS9e} zQ4*aE1O5TG8`Uf`dY2U)WS*NpZez?+h1kgsc#N9#G+U_6Ux(ToJZe$+to)iVy^#B3 zuO`?-ey-?yOY@g$LQjM9_HYX}i(12?Jp+ZNjrUiJr?2i}NrW42E38ID5HF$_Svt}{ z5tQ9!{{k*mgWigUYM@>xU49V$9)tSUniqP=i#ET1k$SRqeJz%6Ru)6gYwFtUtDG-yj$gfMqvcS@|6tuv! z`$Ybj7Md+B7^BP)IA;)JyyN^jGb-pA%d-V=f!N?}F5^dljZ@CLtnzR!-{60$jwAa1 z!-8@2ZuCH}hLe~8a#iDpzQaixrrNEJ{&#O1qm?KN88{nA^z8M87efcdgB`UVlte`fV)MMyOYb1ZNCIm9*P~GuB zjE&VVKBVSRE+j6*yRCO8A|<+|9yfSFS0Rp!=CFpF01l{?EBsdt^?d;cUVk<#T#b$Y z0XBS6qZM*PB_6`#e|Tl)$FDogHc$XCJh$j~+qys53iCTU$x|pyuaXvJt^@`^qal{mNzq zS*mK9t%EO@@ADYU4Si)FA=DB#+vm#3$OGsxHEtuJ(v9M5H*d9w*VGaWY?UL{GPw#E z0K3ZFWWKib{zHsMFTAw=D1ub>4;y{abjIMjzj_xG{0DB(lMaWf8!HMiHvneWB%!5NA??eulvmt>QnH-V{^QsJ!Vamt*odNAWjY$Y=d#?5*<`~&1V$ccy07HqS%t9jSGum zsv!4ft1FKh*7+e!D^yFpd}|b=Dg!XyLEuk9Oe8(S!=48EB|%>*!urM$`)?N_;-?<# z9x$i8OO-%rjXz&`V&O*=&-Q%3BHk(9z^>y>p*E6jw}`-Ah>BiIc1SMe=g3b*!srE# z*ol26SNg|I$xPLyzyIJSMeKbM{M&?jkPzEcQD+X68$l=5%Cl#A^m&nQ|uB zvEfFlO?>hGQTNp|^1z4E;NV?g@kmH=NES7V{}=c={Sp^b?==*@9&Nv{$?>yPq)ee3 zC}~+0Pt5avk;Y9A`V{>#1o~m)o%PGH<;a5^$$Fsu0e~8D22ZsKww-f}tO&w?#G^A$ zhBC)Yobr~GAPV--52xI(aE2G-FD^^NS$yMUk3r-_78aXcv>meMCfDKp>Um&?4-?ZS zxq_-EzOkCI8rJ(D3{alogAgya&R?dYrEdtTVLioPc={%2*TU~gf+Z;y$`t1Vkf+3) z{n4)6m@FDb0j0x2cyQjTCL#(c496wIb=rA!PoY*r<}R)hw%-Fa?!T4y(byk2;c7#6 zyuW)gt|n*~T_KpW&EVnhn;Vb|=6hh)Ew8Xxzs=w1Ak~Lx*b|}1h+!6Cdp){xZICel zzvqIXqs0Y5fQb&4hBapSGO%@f4_Q5)d4tOM{rDqUBIlY%o8C|U%QRfqkBGLBSI1{N z$?)On(B<#v_CK3-W*aJ;V1=0w$YU`9_5l?OQ7U>u{BuoBGXkxuDt^abcp;b!lF-jm z@Q*$ql2ucVNxFOi2pO0FFc}^MHA!TlFBlLuycO>!Y(^K=Fk{Z1_GO2LFe&GH8Gp`k zYxHYTS0c79JKsrj%xBTFxi3dbcG-EHr+GD69=v}Y4G-k@ee_lZ;ywgal$0}i<3nnN zaUESq?~34(xO=plSyk_+11?nuN%BR35dgTG%Lm-GDUs(@(Z@){_SZH|(RV>aTZvRY zkjO&(IqC;|qLJNigsLihJ?C)poq;Ke9~rXgO}ZfCH;I~mFW;vJt!s)wGjp`YBDC(h z%6~L*Wtllx=<4`C8Uiu?0?Dw3bCmKD^k>mDKJ=$`FZO%z|MbL}7hS~>?%(XvD65@qD_0ro$sOPDT8F4QUvAK^yfy%`05g%yH$! zChpqfZp(V7a|?+-3Ep{7@9m|}*bWVpw}PoCQGal0lRyiPsH8*p{G+eW_;2vkZ84tz z2MN@&Tb&U$#>SB%z}8oz4vBOB?6 zR@%l(>n3miAE4Z8oLw7=FuN2U3Urlf6bpMKF2o8=tjgOK<}Hd?Po)3+PxIsQTW zQ$?xczxzT7#O^j|o2iDB_#0W=Gk&1qN=C_$5{dW6TQ&XI+tW%@nxk!{h^rjmA}3Cc zm4ux$i@wG9xswv#+9^Zy6_E{n!5gi>p3~S95GkbwqvW8Z)v+?O_)F3SV{HNwW0J_E-$;=uV;>&fa0q24;SdsUyKj(*DB zsRxR&a3uAZSeeKM8OA-|^`FMbN&%PVKzA3-4LvntCfX}^s%gVrTDTA!gUrPFVc#D5 z;)#Ydku?%+N0G@gk((#->qzueOs{&#f9XCG>(7j|=b1rmgL}tqd4rO7lw6#;kM7ZL zo?rqib?s!WUvXRgh`Jtul%O}SNiC<)je4{bUs;^{%b0667O~j@LW9b!F&hV>-1Tk! z1#NLh9ix&fN|v6_YyB`+{U(b&$D*3=-QN#OBW~-V&~od_#+NO|5bal#P(!F4_ViqA zz5}LXJEzuB$>P+ls}+~d2S+VewEWuL1s5^2+{CT%LFt$mEtlrj`w(t?wtF6m6to=B zk&w%SQ@-#k2)~r~`Uk3g*+X-jzH8D86#32t`FL%12+AIg8&ti~H_!)KGMk4QC_15^={;Exuu2x+2 zFWr@CAwxBGP2tiM>QhaZ#$U)f z6I%t3oV-_RtJBJ7LhT$WvFmdJD|hI~i7Px_tEuk#SKYVJYJ>j6C2v7lPl_(1lBFxV zOHn%@>qJT<%kcHCp^DiYc;)CW}APP zkXs`z{2|O3w-_gUV00lrwZHX=OP^A7M<_%`K~6C~gPe7p$l-lyPd*T5-*pYN&zar4 zMZQE`pN{PIM3FI#3*72FYKX(%)@n_W9;>%q61jJDrYO^8(Q873!<$ICU@M_C3nrK?+R$0 z&{$9Ztp!BK0t6IFa@`mtS z0t`<~+c9}zeStpF>et}DFe0MIoh;=Q zmuqezUCu)9liGNm)7TH;+PgJcC$pSev_HWux9E8D2Y@EOJ`6z1NilbF)5vN9G&dZMmCO4NEcXsnI9IYmU> zb`mgdTPbMTYIk?@#SCM6`&*y5^c&5!c+D@gZPC^taz$G|h}IrCFn)ci%lzoBwYv%~ zqs(cdxT?J`i^grW19$!ON^bZ`Ty6JibIZ?!#uInYqy(~h!YDLytKBfdwo;}4#9a>* zv9m9Y;ik@TE|w}QhtVzXJPR7tdVrfa+EakJY*hxus=jCJ9*5f3O+8^(>_mCPXM1hc z|Gkx-aUd(ig>~w?0CJ)HJ?|qg_+R1ot5e^s|CoOl)ZvvZXscT~4rkBB53J{F8?no* zD?*;jJ-4kFg+UA;l3+ zok}S=>nz*MVpyD2HPh%PBLqnJ-P!i_da6(P8IASTVi*Z=hOzoSTU;#Ncf_;2;!FJ_ z<@%XYI)R>!zRTVH+OAn6iSO$~EAQgZHgW(i?pvnOLi!^QSMwF|k$sDrlM14RT!Qr$ z4BNdX=7E-(#OuOWyrYF@$w;YRk(U?ze8q`Vw7rTGIS;q>hMC4%oZIm+u|1L){v5Tf z6a*H1ExCU>mlt(iBcYG;G={?afRXZ~<=7FK+$QpviChBvDoY^W*c%ls`V5}164?|E z-(!yDnqRU1*q+$V7$V;j&N#X1INv27Y(n1*d)T~o#^x*4XGSxlg^=3W`kdG}a(RTk zi_u2Q!xDEuVhP`64K}`1ea;s9RnBvtXamtgJBSv!rS$HpFj{a_>pJrv6E8WZ^+k(o zBeZ&(QTQ`zjgy^Lom&XUS@w+8XG+UV$w_Du2fpSCB@ZE6yeh_Uj$InF!)bQLL-`6R zgw#Op=y0Ynbget7iIjE?Cl#Jj_o2jUq|_%EH3r5#%UeXBY|30#`CS<9(`dCF%^Dj- z?ja9PuXtt)>>!0uxq9YHTI{U1Po6OFIoNl{mwM2qV3ew-*{>;4C?)DCjgCt~Gj443oVA+$Xh`&=Q9QHQ4jzLm&( z3f{_E9*n0j7*9daot-R^6KZaW^?`2^@(u(xPEhoeFI>E^oYA8Hi> zeWtX`H1m@>HSzaIwI2%Xi_Wc2{=WGX$%B};8tcc5HVd1yr|+y>K;o#MwRES+8OX={ zD?g{mw@)Htj?hzb3d$%2##l7B@U$ImX&7(RZO?)qyE0Gmt5~0fPHok`-13ds<`#KO z7S6LcavS5W#CAqbzXzB8{eqlQx4Z>^W}f`!WbQ5Do1=^WK5MkF@*Hif{HB)j%98uV z+u@mo5nr@0i-e7{R3o+2%$z%Ou;ih?&(A^f-x~@3i%D3O5HC2RM2IX-uk~B@RA%LA zqY6*k?1AmEnc{hJa*nrXC{a@;Fj*#YbL3IKX6?mJAn$7=Pvbf>4Kw)i{Fd!P7T zIpsX^J(Bs?a%bEN*O4K6QlZ*1{W=fl$0zJ`j4xz6D)yF6Y3nc4cCLuyBF|&~%g+{4 z>_0hab|&N&l(J2EdBM+&%OjyB3sYOr%xN{ScvTkLET(xZdDCa6j3c~7E*Z_Q=C0wn zEE&sumiLU!p;6BryU!$sqIHq^;9xoH#<()_mhA*ojhuu{`L*yq zz9;pVnOrBfPNYoaoc)r;6F*-WPe6>kr2?)*U7RpHTG>g1?*2l^FBmb1v?TPHnOtT@ z?4k0Q3BQH46Zhe9kByzO#Rvl$?;L6U=M7-ko9^+a|BGBpFry)zI!9+GbgUEQ?hoCA z{!Uyym0Q^PhrQ5RVKH94jL{|N6WvZ+33s`In_7da$Dlt)cU@6de?5^Ks?}svc(Wz9 zFvpi$x7Rkgzp}|P+T<7e3nM=){j%8I2};U{-Pl{$mx(NGkrMMrqYwIPwC*=Y>EHSx z7po^P_?mM8@Ecq%xZ68#BVm7qBZnuv7dJAwI&%775ewp}cg^}$+aPCLcnfzW zm^=o;J3mH#9elU%1oH-9pmLqqI*}5I_usF1#a1pi-lb8kGeY!)HVcHCShm?-o3$O? z8t{8*S0)7-p+pV*K1#&dzG}bL`L5yOCM2t^xZ62Tkbej}+x56XBMRTTv+6cZ*VW$2Hmw{s zl9gLv?x^LN;+Hdw+aHNJ?`Zi3AwbCAD?_Wlw&EtA?FCnT;KnCE6&Jc7WYna0|EQAHYj z-9QyN!w5;WhX}JpeQcvIv|YNJU$vHnd*o88w6^b`Y2ZvB)bXiEjh|!tKz+U~P}-fD zu`o{!@|?-ccvoEALo9v@1Mbgj{#kt&j=t+%d|$RduYZ#FHruYMZb28<{klfv6#9(P z;-ZDR-Yh)hGjGSUZy^u7^?$lg+_w5vD6bK`H{ZhVf9nHRJz6ULZ=|+N{@q7uCK?p#F}Gek5{b_9lwZ`I5miVaLQuB=`)eADmqqZJbjO zENdilEXgHh8Y^NXDew~$-2EGu=NR|F{yl1TU^LSDC)};hi#kx$NtqpQ`mOb5s_ZIy zL$N0nMOb8cOg?qrz+mC)Ebl9DVfx|{!i;&tr8OH?rUqP9XI_#*pUD! zC_gy`P0f-~1!To7{7xwTv`Q}`-C?oM_D>OB#PYFoPcblrL4^ZMm~*&BiOdjZ62(V+Q~HLT!=KP9Rf{iCfn-O|Qa)Rhqitc^c~ z?W*b{=z?Z#FR)YfXeafqePn|6vj#^W+RSQK-j8{`6jD?(euL54ltsUod4ky+dhquH z7x~0IFxsvt{ATqXRUc8?RZ0B4Evm^)Qip1NNpnHHUu(N9MxRDEKDN6gGjTAxweiK6 zYSPtW+;%~sxr(>PQPFB|qK{FHq0qme^|$sanl$L#JY*9kHqTjf&oAcTQC>UH{+&}L z?xV03HTrIUX=POp7(F?v{tWsUHS3!~HYLpB1Xf07tEl^^s1p#oqUGxQP@3Oy5l^3= z!%g2eu|t?ByQoq>TOC2$GP>Ed31 zwgor8V>djC``y6KQQHN(KXu^lxex1Mqv{@YeN3c4=uf>i^DH`$H+1`l;7*bu@iAtmP9Yo|>pJT#Z z4^_2{T7I|T?(M2Q(cqHb>u#8x(`Zn3@sl~I)6wF!84KaE7B%RzD=&TA^+Q$N&`qhP zMWO3M2q7`cu4D`PiKcHy+Z9bJ$Nb|8Uq!%eca-M|N`7^Y?tX4=eL{yG{Iu7>ryqX$ zN6_R7WSdA)LTSUuA(*`deXoZS?zpxvQ`eMTaQXb^Oc;qkdx{{ehfcK2Z1&OThwzos zwVUshA5{5t@3`t?aG%{x&9J}sHfU>`+ibp4w%vlu$I>WUaC;w(YN4QU+qX~G_0#oZ zZ2xjXrz^^5wG~&7OPg1~)t}JNEiUL*(?k`N?^qGd9AzW^%#Y%?JhS&Z#OeRn_Eo{Q zrg-|vYS82zWVk*@o_>ZT?p|xrwy3hpsF^c{wtiQY_(-n|*+iAPM=d_ed|1Zq9_g4~ zZ{4DM{|7mv_ILgGN>XmIo5si%Q8yH)h@eU5K*~f;A-r{^Y>$LofO)I1b>ep=tp(47 zd{Z9MS%%nses7*oq0FT~Nr%tW`TB?wFZW2j_QP18Q=-@Tn-{I;jy7j8uVs(ky|X&XznTDw7{T+aH=n`kgEX{F+8 zv#a%qyUnExYWMKb%*qe!t)(2|YiWeR$+4rhm3s~+#-jXb4$|H~YaC}w);(e+5$$OAo$vewk@I{NnuIQR{Ch=iYy#e8wxG`Wx~B zM!J=qLW(F>JX6ZA)xr)cY zF;|veyUxTe8B2c+xsB)d2t8Zv73OnMs8H|xR45IRuU)9N8-y=`pnYBe!bqb%4f=B* z+V5^?`-a=^SW(xa#M_FnqDuYn+(LV;5M6>kN6idbBW>+|baPjLP(KH@M_o@P)QW-p z@bM#*Q8a}8Co{KISWi2;sMc699)Q>qwYLTsCrJo7W-^4n_t`hd=UwL!nO%hZ;52OI zt==nPL<+a1{-eGJa?sxm^bhx@f$Wh;j_h`?|6&q*ZBp z?J=_~6k;Xxb*8j>|Ht0JrhR-YY7OUiqZDM z_)a-33vF-qS7xx4d)tKD-A8oz3#V6zT(9@Btd^Oz5dWd7K2-D0sZv6P%KNang=c7N z(Qi)uhV2PCA^rui`g0 z%yGkY9vV(w2_a>XmoNC4b5abo%S`g?Xi;$b8Q7d#d@&+2T3)-`l6rJKmDnX}dlRzT zI_RBeg@HVSW@HB2RcknXe>3w7pI_*D2E7MO&4&~vloYIo578@VQ;_L5J9~@+r#|NV z_=;=XJ@?V%oHE8`%9XU34!ZRU57o@k!8CPV+k(EK$MKJRB@NaLnpLi9J}HbiR-t6gaIqrWK! z@wWxgwxU|kGpLLBB_aF$2c_X^xl0HuA@IC5kz*ite-i&B?f(1E#+67-WM7;T>Xxzs z^Er96%sN8(CUanf0Ly=Es}k}fy;{kIC$fPYk`lh*_{b=8i^9ErK>du1yR@;sLq_T& zeLBk951M@yk&+&zaxJ?SAnaR!?W*b{=rU^aRd{wEO%}W47RD3NLcTR7Lf6y!_a#-;hidXGa>AYXne)sSyH4ajlf=Ig^ghL$o)U5h zdFP#pKu=p?eEkgKB{Pv-38jp*A@Tf>T4JsI?^7{ao+TRj7f%8F67KaG%J@`?an=-^ z?|?vu?*ZhL+8=nyIHjsQhUsk+mZq3c(5Gm%GfLb%6gq9qc(ZonGKY$e}Hlzb?_h}}>zam?tcWSAAXD^akh=aFc+(A8C zTW4ekWo`w=DzZ|$!uor*F%I@uRrR5o(t@-c7>O-G-_R{5T0RNcMSZXuBJ3QAefJ&& zCiXrGMsFy-SPPL{BFd% zu-?WXGBb3vdjX>t<%}Sxm#LNdskXaPo}FP+YTL8brS@|_=Mn3{3VdW?)-14ffeRo}x4BhuElrfYQIG8Qy zK0mH$_qis09#@-Pgvo4dLNx{NI(N($ODD1`p_hZv$3W~72v4-IqMGLgm@T3Y(Z3jj z!+O3EhsX&fSe_}}BPG<7mxPmRk*_(;wdTNO?)=Go!Yq^qy0@2F|%9 zA8JX?UCV9fmp1L&a{Km`RePq~No#xL@1uc{E?oqedyWb)r1ALU++UPUsT!sd@Kkog*0l<;ho@w#V}7LnRYZX*p7U-QtlH1HK| zD}y(UN`F>l$mbxI%9I$(xdb zljo`BKJh+gf-hdL@Wodf2(=dB@5!~ls?X8OT{W{2BUUtK-)yM|tz2w7ikb*xtP0`F z#sl4WA4pgX(Vq;+Nf*;>F6^WGOkv@5pVe8|d^R6Rn%@(#n#49$R}88Q)=)%|K2eJF5B7@+^>Fe9a|Vh)Zsv4-yM4KC|3~ zr@H}otC0A^BsP29n%l!<>^oY$*27xOiSI~b?QiL1j2J?BcPm&tglERtotxVBoKxCj znRDA`_FlfQZO+-TA=cC19}d4d+3gN9|Ni7Q=YU=MuJFhxJs3Vi+5M7nt`Gb^QXfC| z{c^d*)~_v`O0HJ>PUt*&XxQyKzaQ(nka|V7_Z=Jim6hA7%-4+dTE3;vv%zHBh58w4 z2QzAc9=6P!m@BobP@ZUn5M%%541K}GsmoY=S0#JVCR!gEr{yWneCO28+`t9PQ8khd9 zH8kH*gtamcdJDRsS?Pm_k5_N&)GTF$CA6gUOz1H)@)1T(K*{&qV(XWdJG{lK{&B9M zwEt^S%{ft#lRuDJ5_V4Ph=h1U<`C!D($ZmekJ>JgFjt)LEu$KW^hMv>^WmWURJ!n# z%y=cvz{ZhG&g~j_nSJL;C312O#+n&CTiNq*9^c7O+I)fee8f~2|JI(1+Z{nkf2%dp z@K-Zr+dkJS91Sg;jd75NAks)gCqZ3guo1C0CWqVaz&)V2hG) z`Y`;phYFE)`G(8xt(Nm8bKxZ+MO04=$&6FUC*j&a=N5*%OjX_U5t@=!#VQ4@lc ziSJ6qz2j~^irVx_)+`|SJ+Nocna1lm)f(;3n<@Pn zdCUcS8Qt}v%C4d}QN@0Yn%PW<-SjstT|pnCw%edCeSCq&f6X&5IrkgQxt&6(->^OE zT9h#V44Y$MYt(ibNeh`>HOhHn546DSMfc+8ygo7uca_XaYOt`^KBIL@_!G{IR?57+ z!nV2veW=!7cy5URec0qRNEWc*KyGyZ7p6qGbS0gdqPiTJgq^9 zr?3*4U1m}@W!b)z+(vApHH-C}7qgyYW2>3D=fz)rpcbsG2_g&aWpBM=NjRr?x$@&^l8a=^Lpn zFneKDATr7m%1ZQXu{&*1IqgR|Aq2kW)Gm<^zu$2Ehcmz9?0vAe?{^l$m|E0F^H~-B z7p(8ufqDATYW1@x#=KTay@)o-UM<8sNx=geXuCuPv;KW@MOq52ouA+%}qd__H!*e#F~O$zLWtNt9_^&IpY zV>JHyxkr>dHA?!&!k5E4F<;&N8T2l?`wS^4<9nM4EpfhjC zLs)26Gbe4(>`Gde(wIBEkCCzZ$Z0)NUQ)`4Gw|rkeC2$N-GZiN!S38Ql#{QKXIE!e z($^}FSKB=+-7E%k=)QACt~%>By6Yk8V^9Tm-wW37i*RBgtVCuPQKTHA*Z2K}u;=Jz zw2IcNd1`}DJ4b>~F#RReQBi6nb|#KW8C?Y!^}eHhyA6VZOvt> zjURq;=S;}Wz|Wc4EilfihU^nLBC(5-m=1pr6U}>)!V0AV~2qRD8v*M2a$aQ>?7;+tzpWeeYGbn}__!ufu=1wSH}eG6aP&;Mg*-SPijcYJ*X ztKE8y-O#UE)AvOI^NqF*`|83pY<7u ztx9YewU479-aFA}4!md_{q+)RC4-CiYa*$e zFw&uPkGd8ilrCgdji2+X6c*ntDJzwYwtfly5A(Ah_o065?FwH7?1V2Cq3tEGe|i3) z{hrjv3{bnH+@JQ=B+ORd;bOPWu=)z5UC}KrEnKgy&~|r1d+hv7&Vj!BteNOtbT1D` zu~#J$?yu49b7|-n2i0~F-Rl~{Z%DHqx{s_sEkZjdsOQ;F6r-pfF1P4m;RgFXiRol%s~ zo__QuTGGxNFKAS&|E>Hyb#n3mno$D!MEk5gT7TVk^m{FUaI)V>>8GWLsYH(keF%q&(q&OMK8Hp`Q`o4V9 zJy}Z5xpya)=NA^9kTcsew@8mw?60lAAqFXbro7KaVJY=Nj{|ML2&AaCHR$`OC6rgM zi9FY|yEU%fE26#LqV0+rE%GZ)07+PVWRzG!+uOpl-e|GAaQ|{c%im+-+eDs1j{4!N zU{K=YJ9}F0`6>q7+pYX=u-7~ESt)Z2k* zY6)bEgf<1EUc%-$aeq-Z|JG-p(`#=+!WF&uf_Pq|TYss)8S}N(&(W>^_jN{;T}I7V z4z0i7d2VL)NN7peb7rbHgYntk#o82_}Zpr$@*PjZ!<}*d)4b`MH+YMGY;J0ZAxfZ1(X$d zR?nv^;uxj%@{9r?v6pDSW2Q+tzlTMQZxCCR*dn^`l7Iw1)CX2J&>B;_q5SOeHh#!h zJ%sk&22F}#ThPUROust^z0`y9fzcj>QlEuMOn-Qep=}9u_fP8wXg4sud-`|u+mjE( zQ-ELocAt+K$Lsvt7PEX}9+6yMwyf9bte{ln@9*7ii?cPpr$Cg^h*oP|LTz%{MJ z?KR7R-u46g2%5JEB;I~Limy(3?uo@uX!+JpSEW_ucCGhzY59wu+qdsOV28bg{+%~L zl#qu|yUc_ffRVRQzvm0vqppvMoHOZV4sCf9$Yr`_Rjo0k9!{*xEcq=XvPch&8?`H? zPo?x|38#dhXC!tLQdHHSLGM9RCXh0bGmyhxr>j0>Mnmf`tJ3ILvlv}MUX^H0xAuZ= zs=50dFT4@^i;#9N`^|L&9mb?y^Xfyj&+fo<#AB~*#c9wtT>VW6wB1oYLyWRFlze}t zk+(J{EQ&Y!Hu}C`-6Lacn_AA)!pK}L&r#c=%6k(0gR={8-i!&s*Flv`y;gV6_@V;3Yu07DS;fS?Gkm}gwP%#uS#Of z{M0HvBVFU#PbHANTJ78D9_L@}j*FJ*@7jtwRn?z^K1TQWJHNl9?1t)lw;*Gzym!)A z^mQXNF@e}3n*Qdf{%yA+`mE1U+cK!nl{lrNvTJ`E0VbzwA8pJ*Z9#jyA=C#LzV>f7 zqI=$=RQL7(;cGNXwZHN4_~@<=e|}{KZ?-TRju!6Jqs4B*n4O0FsD(aqw!|3MU+rok zzg6|N0-;?)q91)X5R6~(?9x)2F-D__Wy4>!&~ql1{5P!VMcbY+O{Krh9dh(rx`zwP zK9jGmOnp9-WV38)4L;xfxo%)rN&k1A(?;6gvx2efCz84awyUNlK)6o{EfYBdA(vnu zQ8Q-%WmY)lPo?BZq_k9}(TB#Ah(9xo%ob5^`c&cTl|HTvcs+sm{Bb09RT6wTDHB$@P|URo({@wrrS~Qf`bMRZFiKRCU8nbK zf4ae4cUAQfbU|~U6?ULncqn3t*0^~5M8A&OR^0r~$0DlKUrsHZ*i*^a!?nI~bW=V; zdJJKE)b$~RS_fI9jv?7ybW!Cw3-K^Tm!Qv4+oDQBf7f*L9+DEf4rJ#Y0T?wGLOq32 zPldLbYIdkadMa(P9trOi3)v&Ve_nZ2nRW6+=f(4^E}{0(pN1Ik)Fg!^rz@z=}_z{i^I zYZUPrskIGyKB2>#D{!5gg=$~t=daW1`+5&o342xMbL2|wHt5&7lLwL7TcDif)yUm< zAftWGOLRfe&qHjfyJ~*V3G)zt%K?qG-LrjHH}hRsT2H{+xiinMPJKD+KWLe$<^0N$ z`$hRjo`+6vq1^71Pk;IwPquv0rukMB^y1%8nL^$A`F9ZSRqc(wA>;M&rKJoO|JutY z{`=Z8cOKX~Bh&t!Xx!~8)pm(m)8=g^Xi64#j(Vu0Ej=wS@1i$Ry>-EU^|>0f*36!> zxaDkx{#9t^0)*1fK*<{jsenk_InhYj9(8?8q$r{9RhC_6Yr-^@)LzIMbxfb16UcQ? z;uh!;D6u#OfAkHMkN%eBpkG;$O6dWW)y|AQBc*n79v`(S@bU#eb547K(ux9o6TZk7 zTb%fpPo5Cw(9k>s!$yDQ3neW_KFBFs?b_lanz{~os^+N?=5dE;t>bIqabG+{(!rgR zFMp#7$}XeZM>1&YD!Lwll%Sug?H+aT!B^#P`aAZ|pw%bFLqei2XVmdGc8gl$7k)vh z_;<sFVqOgr{8}(b-2Br zL0UMvrveLY0YWY)OMbhnrauYvoJqWn9E8wkL$Y|Njw#CG&V5XYUPt<*%=O(>NKrM} zPgT(#!ane?g*E05t3r}iuRXtmKKflnxqW9&H*kMKhxYH1Jz>-HQ~yRU`3f6Px(Z*q z<@YT|Ya3hshUf{^owcy-qQn*cr^&$F~s-AjC&moA9LKtgeEw(_}6*TBg zHSfs4#E&)-U=Kw?`8AyQ!C4g<2{{Xuy3R}~Aq?fR1w?4o7QxyH_Co^(%Iw9LQo6~I8>NzXv`sOt&g zeJeDr6VjN5#j|)y4_jtVJA?9!KGA1N52cMwqFEgs)QKxrQE=5Rpw)42zl;39B!!x zXYXy%wxHUKt*^2R+oNVphh>p+e-E zSKeY1=COl#uA@DU1Ea3`JcX+6AH)_ky$zZeabHE*8@i3UTYZ7FwnMo{@|jrq&h|3se=?t-lqYZ)cO0cHyo424 zU$Gmn^Y!bXS0T&FUj{g*aJLrDoM6M05rYb1okOgmb7iYw1;fe`XvC5-Qb<%X;N z#7+LEC;dTbQA*E@#^2NHLa5s?>a22YkMUf8Xt>6|nQ~@~kfDrHh2HEcwAW+wG3qg= z8QDWL&hph4XLr8cI_NFv5;U=b97=2veb(Qq?K@+}Ku=-ZlXJe!l)Qy<$DZgjrAI<3 zoo{?e4^@8#y{o1@L82daiMnnOMt%^x^BaBMN$GQ>wshrVc1Ft(Y7x|HQQ%t(g;1%} zKBEio&(BJF%3!jeH}X9Y?tL(xGGW~PI^QU_w!*_Md}yoBb{Vvs*9GO?03%&W!gcHw zf%JVMu!9ooD^h;;3zTo~L#S71POVLN$tbZCx~BA=Q~Fyh>aX1;uHVJ_gY~kE+Epp< z;zC(L7Pd!SixQ0|H4efK1t>KxWA#XAnHjkWoAUBLq@j2{RvqmvMM8?IdZ@Nb)O8Ew zReT)2i#t+V2E~ai!sx|?-Q>EX`l+CThp;l{O0SaFj=*7a#r4Pgz=_@&>kyT zYnL;jrTKcAs9jZk1YJabpxAQ*;S7wKiO;+b0`uHKZ=;*h0HozKxgvB+*fU{A#%!6X zt;%RwfjwdWX6)Ru8>XQsI`tA0D5N-32@iu(yJiZyGhzuXvwf~kfS)#ZA6xI2C0YK5 zZH|qxp~S#qR-gIur!d|VCPlouSZ(#RK0Nn6jOQbHom2Y#Rq>&`zoSE|Wt6Aqq*LbJ zCE7O8rq;TWcFOTR^W?|rd&$C&ogsS8me;8>UcE_JT6*$UjtZLPQ-N#m9zsDr@Jo?3Io>Jp`i8t+G`x#7pXC|@LvHGyIIEw#p zVkxwYq;4aNi(|wHN~wUxoQXU)=cg;N*gmi=lej3!VdVS! zhOyRe6v`3`W74d!w;dYaF@Fx#(6Pfz*j?k*M%bK8

    + public class TestApostropheFilterFactory : BaseTokenStreamFactoryTestCase + { + /// + /// Ensure the filter actually removes characters after an apostrophe. + /// + [Test] + public virtual void TestApostrophes() + { + TextReader reader = new StringReader("Türkiye'de 2003'te Van Gölü'nü gördüm"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("Apostrophe").Create(stream); + AssertTokenStreamContents(stream, new string[] { "Türkiye", "2003", "Van", "Gölü", "gördüm" }); + } - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - - - /// - /// Simple tests to ensure the apostrophe filter factory is working. - /// - public class TestApostropheFilterFactory : BaseTokenStreamFactoryTestCase - { - /// - /// Ensure the filter actually removes characters after an apostrophe. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testApostrophes() throws Exception - public virtual void testApostrophes() - { - Reader reader = new StringReader("Türkiye'de 2003'te Van Gölü'nü gördüm"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("Apostrophe").create(stream); - assertTokenStreamContents(stream, new string[]{"Türkiye", "2003", "Van", "Gölü", "gördüm"}); - } - - /// - /// Test that bogus arguments result in exception - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenFilterFactory("Apostrophe", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameter(s):")); - } - } - } - + /// + /// Test that bogus arguments result in exception + /// + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenFilterFactory("Apostrophe", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameter(s):")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishAnalyzer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishAnalyzer.cs index 103da7856a..3a64c2d1e8 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishAnalyzer.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishAnalyzer.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.tr -{ +using Lucene.Net.Analysis.Util; +using NUnit.Framework; - /* +namespace Lucene.Net.Analysis.Tr +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,56 +20,51 @@ * limitations under the License. */ - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - - public class TestTurkishAnalyzer : BaseTokenStreamTestCase - { - /// - /// This test fails with NPE when the - /// stopwords file is missing in classpath - /// - public virtual void testResourcesAvailable() - { - new TurkishAnalyzer(TEST_VERSION_CURRENT); - } - - /// - /// test stopwords and stemming -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBasics() throws java.io.IOException - public virtual void testBasics() - { - Analyzer a = new TurkishAnalyzer(TEST_VERSION_CURRENT); - // stemming - checkOneTerm(a, "ağacı", "ağaç"); - checkOneTerm(a, "ağaç", "ağaç"); - // stopword - assertAnalyzesTo(a, "dolayı", new string[] {}); - // apostrophes - checkOneTerm(a, "Kıbrıs'ta", "kıbrıs"); - assertAnalyzesTo(a, "Van Gölü'ne", new string[]{"van", "göl"}); - } + public class TestTurkishAnalyzer : BaseTokenStreamTestCase + { + /// + /// This test fails with NPE when the + /// stopwords file is missing in classpath + /// + [Test] + public virtual void TestResourcesAvailable() + { + new TurkishAnalyzer(TEST_VERSION_CURRENT); + } - /// - /// test use of exclusion set -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testExclude() throws java.io.IOException - public virtual void testExclude() - { - CharArraySet exclusionSet = new CharArraySet(TEST_VERSION_CURRENT, asSet("ağacı"), false); - Analyzer a = new TurkishAnalyzer(TEST_VERSION_CURRENT, TurkishAnalyzer.DefaultStopSet, exclusionSet); - checkOneTerm(a, "ağacı", "ağacı"); - checkOneTerm(a, "ağaç", "ağaç"); - } + /// + /// test stopwords and stemming + [Test] + public virtual void TestBasics() + { + Analyzer a = new TurkishAnalyzer(TEST_VERSION_CURRENT); + // stemming + CheckOneTerm(a, "ağacı", "ağaç"); + CheckOneTerm(a, "ağaç", "ağaç"); + // stopword + AssertAnalyzesTo(a, "dolayı", new string[] { }); + // apostrophes + CheckOneTerm(a, "Kıbrıs'ta", "kıbrıs"); + AssertAnalyzesTo(a, "Van Gölü'ne", new string[] { "van", "göl" }); + } - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { - checkRandomData(random(), new TurkishAnalyzer(TEST_VERSION_CURRENT), 1000 * RANDOM_MULTIPLIER); - } - } + /// + /// test use of exclusion set + [Test] + public virtual void TestExclude() + { + CharArraySet exclusionSet = new CharArraySet(TEST_VERSION_CURRENT, AsSet("ağacı"), false); + Analyzer a = new TurkishAnalyzer(TEST_VERSION_CURRENT, TurkishAnalyzer.DefaultStopSet, exclusionSet); + CheckOneTerm(a, "ağacı", "ağacı"); + CheckOneTerm(a, "ağaç", "ağaç"); + } + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + CheckRandomData(Random(), new TurkishAnalyzer(TEST_VERSION_CURRENT), 1000 * RANDOM_MULTIPLIER); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilter.cs index 8d3b5cbb7d..75a68cdd2c 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilter.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilter.cs @@ -1,7 +1,10 @@ -namespace org.apache.lucene.analysis.tr -{ +using Lucene.Net.Analysis.Core; +using NUnit.Framework; +using System.IO; - /* +namespace Lucene.Net.Analysis.Tr +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,85 +21,76 @@ * limitations under the License. */ + /// + /// Test the Turkish lowercase filter. + /// + public class TestTurkishLowerCaseFilter_ : BaseTokenStreamTestCase + { - using KeywordTokenizer = org.apache.lucene.analysis.core.KeywordTokenizer; - - /// - /// Test the Turkish lowercase filter. - /// - public class TestTurkishLowerCaseFilter : BaseTokenStreamTestCase - { - - /// - /// Test composed forms - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTurkishLowerCaseFilter() throws Exception - public virtual void testTurkishLowerCaseFilter() - { - TokenStream stream = new MockTokenizer(new StringReader("\u0130STANBUL \u0130ZM\u0130R ISPARTA"), MockTokenizer.WHITESPACE, false); - TurkishLowerCaseFilter filter = new TurkishLowerCaseFilter(stream); - assertTokenStreamContents(filter, new string[] {"istanbul", "izmir", "\u0131sparta"}); - } - - /// - /// Test decomposed forms - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDecomposed() throws Exception - public virtual void testDecomposed() - { - TokenStream stream = new MockTokenizer(new StringReader("\u0049\u0307STANBUL \u0049\u0307ZM\u0049\u0307R ISPARTA"), MockTokenizer.WHITESPACE, false); - TurkishLowerCaseFilter filter = new TurkishLowerCaseFilter(stream); - assertTokenStreamContents(filter, new string[] {"istanbul", "izmir", "\u0131sparta"}); - } + /// + /// Test composed forms + /// + [Test] + public virtual void TestTurkishLowerCaseFilter() + { + TokenStream stream = new MockTokenizer(new StringReader("\u0130STANBUL \u0130ZM\u0130R ISPARTA"), MockTokenizer.WHITESPACE, false); + TurkishLowerCaseFilter filter = new TurkishLowerCaseFilter(stream); + AssertTokenStreamContents(filter, new string[] { "istanbul", "izmir", "\u0131sparta" }); + } - /// - /// Test decomposed forms with additional accents - /// In this example, U+0049 + U+0316 + U+0307 is canonically equivalent - /// to U+0130 + U+0316, and is lowercased the same way. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDecomposed2() throws Exception - public virtual void testDecomposed2() - { - TokenStream stream = new MockTokenizer(new StringReader("\u0049\u0316\u0307STANBUL \u0049\u0307ZM\u0049\u0307R I\u0316SPARTA"), MockTokenizer.WHITESPACE, false); - TurkishLowerCaseFilter filter = new TurkishLowerCaseFilter(stream); - assertTokenStreamContents(filter, new string[] {"i\u0316stanbul", "izmir", "\u0131\u0316sparta"}); - } + /// + /// Test decomposed forms + /// + [Test] + public virtual void TestDecomposed() + { + TokenStream stream = new MockTokenizer(new StringReader("\u0049\u0307STANBUL \u0049\u0307ZM\u0049\u0307R ISPARTA"), MockTokenizer.WHITESPACE, false); + TurkishLowerCaseFilter filter = new TurkishLowerCaseFilter(stream); + AssertTokenStreamContents(filter, new string[] { "istanbul", "izmir", "\u0131sparta" }); + } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDecomposed3() throws Exception - public virtual void testDecomposed3() - { - TokenStream stream = new MockTokenizer(new StringReader("\u0049\u0307"), MockTokenizer.WHITESPACE, false); - TurkishLowerCaseFilter filter = new TurkishLowerCaseFilter(stream); - assertTokenStreamContents(filter, new string[] {"i"}); - } + /// + /// Test decomposed forms with additional accents + /// In this example, U+0049 + U+0316 + U+0307 is canonically equivalent + /// to U+0130 + U+0316, and is lowercased the same way. + /// + [Test] + public virtual void TestDecomposed2() + { + TokenStream stream = new MockTokenizer(new StringReader("\u0049\u0316\u0307STANBUL \u0049\u0307ZM\u0049\u0307R I\u0316SPARTA"), MockTokenizer.WHITESPACE, false); + TurkishLowerCaseFilter filter = new TurkishLowerCaseFilter(stream); + AssertTokenStreamContents(filter, new string[] { "i\u0316stanbul", "izmir", "\u0131\u0316sparta" }); + } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmptyTerm() throws java.io.IOException - public virtual void testEmptyTerm() - { - Analyzer a = new AnalyzerAnonymousInnerClassHelper(this); - checkOneTerm(a, "", ""); - } + [Test] + public virtual void TestDecomposed3() + { + TokenStream stream = new MockTokenizer(new StringReader("\u0049\u0307"), MockTokenizer.WHITESPACE, false); + TurkishLowerCaseFilter filter = new TurkishLowerCaseFilter(stream); + AssertTokenStreamContents(filter, new string[] { "i" }); + } - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestTurkishLowerCaseFilter outerInstance; + [Test] + public virtual void TestEmptyTerm() + { + Analyzer a = new AnalyzerAnonymousInnerClassHelper(this); + CheckOneTerm(a, "", ""); + } - public AnalyzerAnonymousInnerClassHelper(TestTurkishLowerCaseFilter outerInstance) - { - this.outerInstance = outerInstance; - } + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestTurkishLowerCaseFilter_ outerInstance; - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new KeywordTokenizer(reader); - return new TokenStreamComponents(tokenizer, new TurkishLowerCaseFilter(tokenizer)); - } - } - } + public AnalyzerAnonymousInnerClassHelper(TestTurkishLowerCaseFilter_ outerInstance) + { + this.outerInstance = outerInstance; + } + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new KeywordTokenizer(reader); + return new TokenStreamComponents(tokenizer, new TurkishLowerCaseFilter(tokenizer)); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilterFactory.cs index 1aed94d03d..54b748643f 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilterFactory.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilterFactory.cs @@ -1,7 +1,10 @@ -namespace org.apache.lucene.analysis.tr -{ +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System.IO; - /* +namespace Lucene.Net.Analysis.Tr +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,43 +21,37 @@ * limitations under the License. */ + /// + /// Simple tests to ensure the Turkish lowercase filter factory is working. + /// + public class TestTurkishLowerCaseFilterFactory : BaseTokenStreamFactoryTestCase + { + /// + /// Ensure the filter actually lowercases text. + /// + [Test] + public virtual void TestCasing() + { + TextReader reader = new StringReader("AĞACI"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("TurkishLowerCase").Create(stream); + AssertTokenStreamContents(stream, new string[] { "ağacı" }); + } - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - - /// - /// Simple tests to ensure the Turkish lowercase filter factory is working. - /// - public class TestTurkishLowerCaseFilterFactory : BaseTokenStreamFactoryTestCase - { - /// - /// Ensure the filter actually lowercases text. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testCasing() throws Exception - public virtual void testCasing() - { - Reader reader = new StringReader("AĞACI"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("TurkishLowerCase").create(stream); - assertTokenStreamContents(stream, new string[] {"ağacı"}); - } - - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenFilterFactory("TurkishLowerCase", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - } - + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenFilterFactory("TurkishLowerCase", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index ec131310b3..a6937ac630 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -149,6 +149,9 @@ + + + Code @@ -160,6 +163,11 @@ + + + + + @@ -191,6 +199,7 @@ + From 984b0158c8571b1c291de85e45a1cbc5fff96323 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Tue, 16 Aug 2016 14:48:04 +0700 Subject: [PATCH 085/141] Ported Analysis.Fr namespace, Analysis.Util.ElisionFilter + factory + tests --- .../Analysis/Fr/FrenchAnalyzer.cs | 368 ++-- .../Analysis/Fr/FrenchLightStemFilter.cs | 87 +- .../Fr/FrenchLightStemFilterFactory.cs | 67 +- .../Analysis/Fr/FrenchLightStemmer.cs | 608 ++++--- .../Analysis/Fr/FrenchMinimalStemFilter.cs | 86 +- .../Fr/FrenchMinimalStemFilterFactory.cs | 68 +- .../Analysis/Fr/FrenchMinimalStemmer.cs | 104 +- .../Analysis/Fr/FrenchStemFilter.cs | 149 +- .../Analysis/Fr/FrenchStemmer.cs | 1529 +++++++++-------- .../Analysis/Snowball/french_stop.txt | 186 ++ .../Analysis/Util/ElisionFilter.cs | 5 +- .../Analysis/Util/ElisionFilterFactory.cs | 118 +- .../Lucene.Net.Analysis.Common.csproj | 14 + .../Analysis/Fr/TestFrenchAnalyzer.cs | 309 ++-- .../Analysis/Fr/TestFrenchLightStemFilter.cs | 414 +++-- .../Fr/TestFrenchLightStemFilterFactory.cs | 72 +- .../Fr/TestFrenchMinimalStemFilter.cs | 235 ++- .../Fr/TestFrenchMinimalStemFilterFactory.cs | 73 +- .../Analysis/Fr/frlighttestdata.zip | Bin 0 -> 92422 bytes .../Analysis/Fr/frminimaltestdata.zip | Bin 0 -> 92532 bytes .../Analysis/Util/TestElision.cs | 120 +- .../Analysis/Util/TestElisionFilterFactory.cs | 124 +- .../Analysis/Util/frenchArticles.txt | 24 + .../Lucene.Net.Tests.Analysis.Common.csproj | 12 + 24 files changed, 2459 insertions(+), 2313 deletions(-) create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Snowball/french_stop.txt create mode 100644 src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/frlighttestdata.zip create mode 100644 src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/frminimaltestdata.zip create mode 100644 src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/frenchArticles.txt diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchAnalyzer.cs index b6ef4f15c5..af228699c4 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchAnalyzer.cs @@ -1,9 +1,17 @@ -using System; - -namespace org.apache.lucene.analysis.fr +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Miscellaneous; +using Lucene.Net.Analysis.Snowball; +using Lucene.Net.Analysis.Standard; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Support; +using Lucene.Net.Util; +using System; +using System.IO; +using System.Text; + +namespace Lucene.Net.Analysis.Fr { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,186 +28,172 @@ namespace org.apache.lucene.analysis.fr * limitations under the License. */ - using LowerCaseFilter = org.apache.lucene.analysis.core.LowerCaseFilter; - using StopFilter = org.apache.lucene.analysis.core.StopFilter; - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; - using SnowballFilter = org.apache.lucene.analysis.snowball.SnowballFilter; - using StandardFilter = org.apache.lucene.analysis.standard.StandardFilter; - using StandardTokenizer = org.apache.lucene.analysis.standard.StandardTokenizer; - using StandardAnalyzer = org.apache.lucene.analysis.standard.StandardAnalyzer; // for javadoc - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using ElisionFilter = org.apache.lucene.analysis.util.ElisionFilter; - using StopwordAnalyzerBase = org.apache.lucene.analysis.util.StopwordAnalyzerBase; - using WordlistLoader = org.apache.lucene.analysis.util.WordlistLoader; - using IOUtils = org.apache.lucene.util.IOUtils; - using Version = org.apache.lucene.util.Version; - - - /// - public sealed class FrenchAnalyzer : StopwordAnalyzerBase - { - - /// - /// Extended list of typical French stopwords. - /// @deprecated (3.1) remove in Lucene 5.0 (index bw compat) - [Obsolete("(3.1) remove in Lucene 5.0 (index bw compat)")] - private static readonly string[] FRENCH_STOP_WORDS = new string[] {"a", "afin", "ai", "ainsi", "après", "attendu", "au", "aujourd", "auquel", "aussi", "autre", "autres", "aux", "auxquelles", "auxquels", "avait", "avant", "avec", "avoir", "c", "car", "ce", "ceci", "cela", "celle", "celles", "celui", "cependant", "certain", "certaine", "certaines", "certains", "ces", "cet", "cette", "ceux", "chez", "ci", "combien", "comme", "comment", "concernant", "contre", "d", "dans", "de", "debout", "dedans", "dehors", "delà", "depuis", "derrière", "des", "désormais", "desquelles", "desquels", "dessous", "dessus", "devant", "devers", "devra", "divers", "diverse", "diverses", "doit", "donc", "dont", "du", "duquel", "durant", "dès", "elle", "elles", "en", "entre", "environ", "est", "et", "etc", "etre", "eu", "eux", "excepté", "hormis", "hors", "hélas", "hui", "il", "ils", "j", "je", "jusqu", "jusque", "l", "la", "laquelle", "le", "lequel", "les", "lesquelles", "lesquels", "leur", "leurs", "lorsque", "lui", "là", "ma", "mais", "malgré", "me", "merci", "mes", "mien", "mienne", "miennes", "miens", "moi", "moins", "mon", "moyennant", "même", "mêmes", "n", "ne", "ni", "non", "nos", "notre", "nous", "néanmoins", "nôtre", "nôtres", "on", "ont", "ou", "outre", "où", "par", "parmi", "partant", "pas", "passé", "pendant", "plein", "plus", "plusieurs", "pour", "pourquoi", "proche", "près", "puisque", "qu", "quand", "que", "quel", "quelle", "quelles", "quels", "qui", "quoi", "quoique", "revoici", "revoilà", "s", "sa", "sans", "sauf", "se", "selon", "seront", "ses", "si", "sien", "sienne", "siennes", "siens", "sinon", "soi", "soit", "son", "sont", "sous", "suivant", "sur", "ta", "te", "tes", "tien", "tienne", "tiennes", "tiens", "toi", "ton", "tous", "tout", "toute", "toutes", "tu", "un", "une", "va", "vers", "voici", "voilà", "vos", "votre", "vous", "vu", "vôtre", "vôtres", "y", "à", "ça", "ès", "été", "être", "ô"}; - - /// - /// File containing default French stopwords. - public const string DEFAULT_STOPWORD_FILE = "french_stop.txt"; - - /// - /// Default set of articles for ElisionFilter - public static readonly CharArraySet DEFAULT_ARTICLES = CharArraySet.unmodifiableSet(new CharArraySet(Version.LUCENE_CURRENT, Arrays.asList("l", "m", "t", "qu", "n", "s", "j", "d", "c", "jusqu", "quoiqu", "lorsqu", "puisqu"), true)); - - /// - /// Contains words that should be indexed but not stemmed. - /// - private readonly CharArraySet excltable; - - /// - /// Returns an unmodifiable instance of the default stop-words set. - /// an unmodifiable instance of the default stop-words set. - public static CharArraySet DefaultStopSet - { - get - { - return DefaultSetHolder.DEFAULT_STOP_SET; - } - } - - private class DefaultSetHolder - { - /// @deprecated (3.1) remove this in Lucene 5.0, index bw compat - [Obsolete("(3.1) remove this in Lucene 5.0, index bw compat")] - internal static readonly CharArraySet DEFAULT_STOP_SET_30 = CharArraySet.unmodifiableSet(new CharArraySet(Version.LUCENE_CURRENT, Arrays.asList(FRENCH_STOP_WORDS), false)); - internal static readonly CharArraySet DEFAULT_STOP_SET; - static DefaultSetHolder() - { - try - { - DEFAULT_STOP_SET = WordlistLoader.getSnowballWordSet(IOUtils.getDecodingReader(typeof(SnowballFilter), DEFAULT_STOPWORD_FILE, StandardCharsets.UTF_8), Version.LUCENE_CURRENT); - } - catch (IOException) - { - // default set should always be present as it is part of the - // distribution (JAR) - throw new Exception("Unable to load default stopword set"); - } - } - } - - /// - /// Builds an analyzer with the default stop words (). - /// - public FrenchAnalyzer(Version matchVersion) : this(matchVersion, matchVersion.onOrAfter(Version.LUCENE_31) ? DefaultSetHolder.DEFAULT_STOP_SET : DefaultSetHolder.DEFAULT_STOP_SET_30) - { - } - - /// - /// Builds an analyzer with the given stop words - /// - /// - /// lucene compatibility version - /// - /// a stopword set - public FrenchAnalyzer(Version matchVersion, CharArraySet stopwords) : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) - { - } - - /// - /// Builds an analyzer with the given stop words - /// - /// - /// lucene compatibility version - /// - /// a stopword set - /// - /// a stemming exclusion set - public FrenchAnalyzer(Version matchVersion, CharArraySet stopwords, CharArraySet stemExclutionSet) : base(matchVersion, stopwords) - { - this.excltable = CharArraySet.unmodifiableSet(CharArraySet.copy(matchVersion, stemExclutionSet)); - } - - /// - /// Creates - /// - /// used to tokenize all the text in the provided . - /// - /// - /// built from a filtered with - /// , , - /// , , - /// if a stem exclusion set is - /// provided, and - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - if (matchVersion.onOrAfter(Version.LUCENE_31)) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Tokenizer source = new org.apache.lucene.analysis.standard.StandardTokenizer(matchVersion, reader); - Tokenizer source = new StandardTokenizer(matchVersion, reader); - TokenStream result = new StandardFilter(matchVersion, source); - result = new ElisionFilter(result, DEFAULT_ARTICLES); - result = new LowerCaseFilter(matchVersion, result); - result = new StopFilter(matchVersion, result, stopwords); - if (!excltable.Empty) - { - result = new SetKeywordMarkerFilter(result, excltable); - } - if (matchVersion.onOrAfter(Version.LUCENE_36)) - { - result = new FrenchLightStemFilter(result); - } - else - { - result = new SnowballFilter(result, new org.tartarus.snowball.ext.FrenchStemmer()); - } - return new TokenStreamComponents(source, result); - } - else - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Tokenizer source = new org.apache.lucene.analysis.standard.StandardTokenizer(matchVersion, reader); - Tokenizer source = new StandardTokenizer(matchVersion, reader); - TokenStream result = new StandardFilter(matchVersion, source); - result = new StopFilter(matchVersion, result, stopwords); - if (!excltable.Empty) - { - result = new SetKeywordMarkerFilter(result, excltable); - } - result = new FrenchStemFilter(result); - // Convert to lowercase after stemming! - return new TokenStreamComponents(source, new LowerCaseFilter(matchVersion, result)); - } - } - } - - + /// + /// for French language. + /// + /// Supports an external list of stopwords (words that + /// will not be indexed at all) and an external list of exclusions (word that will + /// not be stemmed, but indexed). + /// A default set of stopwords is used unless an alternative list is specified, but the + /// exclusion list is empty by default. + /// + /// + /// + /// You must specify the required + /// compatibility when creating FrenchAnalyzer: + ///
      + ///
    • As of 3.6, FrenchLightStemFilter is used for less aggressive stemming. + ///
    • As of 3.1, Snowball stemming is done with SnowballFilter, + /// LowerCaseFilter is used prior to StopFilter, and ElisionFilter and + /// Snowball stopwords are used by default. + ///
    • As of 2.9, StopFilter preserves position + /// increments + ///
    + /// + ///
    + /// NOTE: This class uses the same + /// dependent settings as . + ///
    + public sealed class FrenchAnalyzer : StopwordAnalyzerBase + { + + /// + /// Extended list of typical French stopwords. + /// @deprecated (3.1) remove in Lucene 5.0 (index bw compat) + [Obsolete("(3.1) remove in Lucene 5.0 (index bw compat)")] + private static readonly string[] FRENCH_STOP_WORDS = new string[] { "a", "afin", "ai", "ainsi", "après", "attendu", "au", "aujourd", "auquel", "aussi", "autre", "autres", "aux", "auxquelles", "auxquels", "avait", "avant", "avec", "avoir", "c", "car", "ce", "ceci", "cela", "celle", "celles", "celui", "cependant", "certain", "certaine", "certaines", "certains", "ces", "cet", "cette", "ceux", "chez", "ci", "combien", "comme", "comment", "concernant", "contre", "d", "dans", "de", "debout", "dedans", "dehors", "delà", "depuis", "derrière", "des", "désormais", "desquelles", "desquels", "dessous", "dessus", "devant", "devers", "devra", "divers", "diverse", "diverses", "doit", "donc", "dont", "du", "duquel", "durant", "dès", "elle", "elles", "en", "entre", "environ", "est", "et", "etc", "etre", "eu", "eux", "excepté", "hormis", "hors", "hélas", "hui", "il", "ils", "j", "je", "jusqu", "jusque", "l", "la", "laquelle", "le", "lequel", "les", "lesquelles", "lesquels", "leur", "leurs", "lorsque", "lui", "là", "ma", "mais", "malgré", "me", "merci", "mes", "mien", "mienne", "miennes", "miens", "moi", "moins", "mon", "moyennant", "même", "mêmes", "n", "ne", "ni", "non", "nos", "notre", "nous", "néanmoins", "nôtre", "nôtres", "on", "ont", "ou", "outre", "où", "par", "parmi", "partant", "pas", "passé", "pendant", "plein", "plus", "plusieurs", "pour", "pourquoi", "proche", "près", "puisque", "qu", "quand", "que", "quel", "quelle", "quelles", "quels", "qui", "quoi", "quoique", "revoici", "revoilà", "s", "sa", "sans", "sauf", "se", "selon", "seront", "ses", "si", "sien", "sienne", "siennes", "siens", "sinon", "soi", "soit", "son", "sont", "sous", "suivant", "sur", "ta", "te", "tes", "tien", "tienne", "tiennes", "tiens", "toi", "ton", "tous", "tout", "toute", "toutes", "tu", "un", "une", "va", "vers", "voici", "voilà", "vos", "votre", "vous", "vu", "vôtre", "vôtres", "y", "à", "ça", "ès", "été", "être", "ô" }; + + /// + /// File containing default French stopwords. + public const string DEFAULT_STOPWORD_FILE = "french_stop.txt"; + + /// + /// Default set of articles for ElisionFilter + public static readonly CharArraySet DEFAULT_ARTICLES = CharArraySet.UnmodifiableSet(new CharArraySet(LuceneVersion.LUCENE_CURRENT, + new string[] { "l", "m", "t", "qu", "n", "s", "j", "d", "c", "jusqu", "quoiqu", "lorsqu", "puisqu" }, true)); + + /// + /// Contains words that should be indexed but not stemmed. + /// + private readonly CharArraySet excltable; + + /// + /// Returns an unmodifiable instance of the default stop-words set. + /// an unmodifiable instance of the default stop-words set. + public static CharArraySet DefaultStopSet + { + get + { + return DefaultSetHolder.DEFAULT_STOP_SET; + } + } + + private class DefaultSetHolder + { + /// @deprecated (3.1) remove this in Lucene 5.0, index bw compat + [Obsolete("(3.1) remove this in Lucene 5.0, index bw compat")] + internal static readonly CharArraySet DEFAULT_STOP_SET_30 = CharArraySet.UnmodifiableSet(new CharArraySet(LuceneVersion.LUCENE_CURRENT, Arrays.AsList(FRENCH_STOP_WORDS), false)); + internal static readonly CharArraySet DEFAULT_STOP_SET; + static DefaultSetHolder() + { + try + { + DEFAULT_STOP_SET = WordlistLoader.GetSnowballWordSet( + IOUtils.GetDecodingReader(typeof(SnowballFilter), typeof(SnowballFilter).Namespace + "." + DEFAULT_STOPWORD_FILE, Encoding.UTF8), + LuceneVersion.LUCENE_CURRENT); + } + catch (IOException) + { + // default set should always be present as it is part of the + // distribution (JAR) + throw new Exception("Unable to load default stopword set"); + } + } + } + + /// + /// Builds an analyzer with the default stop words (). + /// + public FrenchAnalyzer(LuceneVersion matchVersion) + : this(matchVersion, matchVersion.OnOrAfter(LuceneVersion.LUCENE_31) ? DefaultSetHolder.DEFAULT_STOP_SET : DefaultSetHolder.DEFAULT_STOP_SET_30) + { + } + + /// + /// Builds an analyzer with the given stop words + /// + /// + /// lucene compatibility version + /// + /// a stopword set + public FrenchAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords) + : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) + { + } + + /// + /// Builds an analyzer with the given stop words + /// + /// + /// lucene compatibility version + /// + /// a stopword set + /// + /// a stemming exclusion set + public FrenchAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords, CharArraySet stemExclutionSet) + : base(matchVersion, stopwords) + { + this.excltable = CharArraySet.UnmodifiableSet(CharArraySet.Copy(matchVersion, stemExclutionSet)); + } + + /// + /// Creates + /// + /// used to tokenize all the text in the provided . + /// + /// + /// built from a filtered with + /// , , + /// , , + /// if a stem exclusion set is + /// provided, and + /// + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_31)) + { + Tokenizer source = new StandardTokenizer(matchVersion, reader); + TokenStream result = new StandardFilter(matchVersion, source); + result = new ElisionFilter(result, DEFAULT_ARTICLES); + result = new LowerCaseFilter(matchVersion, result); + result = new StopFilter(matchVersion, result, stopwords); + if (excltable.Count > 0) + { + result = new SetKeywordMarkerFilter(result, excltable); + } + if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_36)) + { + result = new FrenchLightStemFilter(result); + } + else + { + result = new SnowballFilter(result, new Tartarus.Snowball.Ext.FrenchStemmer()); + } + return new TokenStreamComponents(source, result); + } + else + { + Tokenizer source = new StandardTokenizer(matchVersion, reader); + TokenStream result = new StandardFilter(matchVersion, source); + result = new StopFilter(matchVersion, result, stopwords); + if (excltable.Count > 0) + { + result = new SetKeywordMarkerFilter(result, excltable); + } + result = new FrenchStemFilter(result); + // Convert to lowercase after stemming! + return new TokenStreamComponents(source, new LowerCaseFilter(matchVersion, result)); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemFilter.cs index 14c9a4b399..51a94b53e4 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemFilter.cs @@ -1,7 +1,8 @@ -namespace org.apache.lucene.analysis.fr -{ +using Lucene.Net.Analysis.Tokenattributes; - /* +namespace Lucene.Net.Analysis.Fr +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,49 +19,43 @@ * limitations under the License. */ - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using KeywordAttribute = org.apache.lucene.analysis.tokenattributes.KeywordAttribute; - - /// - /// A that applies to stem French - /// words. - /// - /// To prevent terms from being stemmed use an instance of - /// or a custom that sets - /// the before this . - /// - /// - public sealed class FrenchLightStemFilter : TokenFilter - { - private readonly FrenchLightStemmer stemmer = new FrenchLightStemmer(); - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly KeywordAttribute keywordAttr = addAttribute(typeof(KeywordAttribute)); - - public FrenchLightStemFilter(TokenStream input) : base(input) - { - } + /// + /// A that applies to stem French + /// words. + /// + /// To prevent terms from being stemmed use an instance of + /// or a custom that sets + /// the before this . + /// + /// + public sealed class FrenchLightStemFilter : TokenFilter + { + private readonly FrenchLightStemmer stemmer = new FrenchLightStemmer(); + private readonly ICharTermAttribute termAtt; + private readonly IKeywordAttribute keywordAttr; -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - if (!keywordAttr.Keyword) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int newlen = stemmer.stem(termAtt.buffer(), termAtt.length()); - int newlen = stemmer.stem(termAtt.buffer(), termAtt.length()); - termAtt.Length = newlen; - } - return true; - } - else - { - return false; - } - } - } + public FrenchLightStemFilter(TokenStream input) + : base(input) + { + termAtt = AddAttribute(); + keywordAttr = AddAttribute(); + } + public override bool IncrementToken() + { + if (input.IncrementToken()) + { + if (!keywordAttr.Keyword) + { + int newlen = stemmer.Stem(termAtt.Buffer(), termAtt.Length); + termAtt.Length = newlen; + } + return true; + } + else + { + return false; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemFilterFactory.cs index 9f73d5d4a5..9bc0dd8626 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemFilterFactory.cs @@ -1,9 +1,9 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; -namespace org.apache.lucene.analysis.fr +namespace Lucene.Net.Analysis.Fr { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,37 +20,34 @@ namespace org.apache.lucene.analysis.fr * limitations under the License. */ - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_frlgtstem" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.LowerCaseFilterFactory"/>
    -	///     <filter class="solr.ElisionFilterFactory"/>
    -	///     <filter class="solr.FrenchLightStemFilterFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class FrenchLightStemFilterFactory : TokenFilterFactory - { - - /// - /// Creates a new FrenchLightStemFilterFactory - public FrenchLightStemFilterFactory(IDictionary args) : base(args) - { - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + /// + /// Factory for . + ///
    +    /// <fieldType name="text_frlgtstem" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.LowerCaseFilterFactory"/>
    +    ///     <filter class="solr.ElisionFilterFactory"/>
    +    ///     <filter class="solr.FrenchLightStemFilterFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class FrenchLightStemFilterFactory : TokenFilterFactory + { - public override TokenStream create(TokenStream input) - { - return new FrenchLightStemFilter(input); - } - } + /// + /// Creates a new FrenchLightStemFilterFactory + public FrenchLightStemFilterFactory(IDictionary args) : base(args) + { + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override TokenStream Create(TokenStream input) + { + return new FrenchLightStemFilter(input); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemmer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemmer.cs index e54b0d2f4c..865ac8df6f 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemmer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchLightStemmer.cs @@ -1,7 +1,8 @@ -namespace org.apache.lucene.analysis.fr -{ +using Lucene.Net.Analysis.Util; - /* +namespace Lucene.Net.Analysis.Fr +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,14 +19,14 @@ * limitations under the License. */ - /* + /* * This algorithm is updated based on code located at: * http://members.unine.ch/jacques.savoy/clef/ * * Full copyright for that code follows: */ - /* + /* * Copyright (c) 2005, Jacques Savoy * All rights reserved. * @@ -53,305 +54,300 @@ * POSSIBILITY OF SUCH DAMAGE. */ - using org.apache.lucene.analysis.util; -//JAVA TO C# CONVERTER TODO TASK: This Java 'import static' statement cannot be converted to C#: -// import static org.apache.lucene.analysis.util.StemmerUtil.*; - - /// - /// Light Stemmer for French. - /// - /// This stemmer implements the "UniNE" algorithm in: - /// Light Stemming Approaches for the French, Portuguese, German and Hungarian Languages - /// Jacques Savoy - /// - /// - public class FrenchLightStemmer - { - - public virtual int stem(char[] s, int len) - { - if (len > 5 && s[len - 1] == 'x') - { - if (s[len - 3] == 'a' && s[len - 2] == 'u' && s[len - 4] != 'e') - { - s[len - 2] = 'l'; - } - len--; - } - - if (len > 3 && s[len - 1] == 'x') - { - len--; - } - - if (len > 3 && s[len - 1] == 's') - { - len--; - } - - if (len > 9 && StemmerUtil.EndsWith(s, len, "issement")) - { - len -= 6; - s[len - 1] = 'r'; - return norm(s, len); - } - - if (len > 8 && StemmerUtil.EndsWith(s, len, "issant")) - { - len -= 4; - s[len - 1] = 'r'; - return norm(s, len); - } - - if (len > 6 && StemmerUtil.EndsWith(s, len, "ement")) - { - len -= 4; - if (len > 3 && StemmerUtil.EndsWith(s, len, "ive")) - { - len--; - s[len - 1] = 'f'; - } - return norm(s, len); - } - - if (len > 11 && StemmerUtil.EndsWith(s, len, "ficatrice")) - { - len -= 5; - s[len - 2] = 'e'; - s[len - 1] = 'r'; - return norm(s, len); - } - - if (len > 10 && StemmerUtil.EndsWith(s, len, "ficateur")) - { - len -= 4; - s[len - 2] = 'e'; - s[len - 1] = 'r'; - return norm(s, len); - } - - if (len > 9 && StemmerUtil.EndsWith(s, len, "catrice")) - { - len -= 3; - s[len - 4] = 'q'; - s[len - 3] = 'u'; - s[len - 2] = 'e'; - //s[len-1] = 'r' <-- unnecessary, already 'r'. - return norm(s, len); - } - - if (len > 8 && StemmerUtil.EndsWith(s, len, "cateur")) - { - len -= 2; - s[len - 4] = 'q'; - s[len - 3] = 'u'; - s[len - 2] = 'e'; - s[len - 1] = 'r'; - return norm(s, len); - } - - if (len > 8 && StemmerUtil.EndsWith(s, len, "atrice")) - { - len -= 4; - s[len - 2] = 'e'; - s[len - 1] = 'r'; - return norm(s, len); - } - - if (len > 7 && StemmerUtil.EndsWith(s, len, "ateur")) - { - len -= 3; - s[len - 2] = 'e'; - s[len - 1] = 'r'; - return norm(s, len); - } - - if (len > 6 && StemmerUtil.EndsWith(s, len, "trice")) - { - len--; - s[len - 3] = 'e'; - s[len - 2] = 'u'; - s[len - 1] = 'r'; - } - - if (len > 5 && StemmerUtil.EndsWith(s, len, "ième")) - { - return norm(s, len - 4); - } - - if (len > 7 && StemmerUtil.EndsWith(s, len, "teuse")) - { - len -= 2; - s[len - 1] = 'r'; - return norm(s, len); - } - - if (len > 6 && StemmerUtil.EndsWith(s, len, "teur")) - { - len--; - s[len - 1] = 'r'; - return norm(s, len); - } - - if (len > 5 && StemmerUtil.EndsWith(s, len, "euse")) - { - return norm(s, len - 2); - } - - if (len > 8 && StemmerUtil.EndsWith(s, len, "ère")) - { - len--; - s[len - 2] = 'e'; - return norm(s, len); - } - - if (len > 7 && StemmerUtil.EndsWith(s, len, "ive")) - { - len--; - s[len - 1] = 'f'; - return norm(s, len); - } - - if (len > 4 && (StemmerUtil.EndsWith(s, len, "folle") || StemmerUtil.EndsWith(s, len, "molle"))) - { - len -= 2; - s[len - 1] = 'u'; - return norm(s, len); - } - - if (len > 9 && StemmerUtil.EndsWith(s, len, "nnelle")) - { - return norm(s, len - 5); - } - - if (len > 9 && StemmerUtil.EndsWith(s, len, "nnel")) - { - return norm(s, len - 3); - } - - if (len > 4 && StemmerUtil.EndsWith(s, len, "ète")) - { - len--; - s[len - 2] = 'e'; - } - - if (len > 8 && StemmerUtil.EndsWith(s, len, "ique")) - { - len -= 4; - } - - if (len > 8 && StemmerUtil.EndsWith(s, len, "esse")) - { - return norm(s, len - 3); - } - - if (len > 7 && StemmerUtil.EndsWith(s, len, "inage")) - { - return norm(s, len - 3); - } - - if (len > 9 && StemmerUtil.EndsWith(s, len, "isation")) - { - len -= 7; - if (len > 5 && StemmerUtil.EndsWith(s, len, "ual")) - { - s[len - 2] = 'e'; - } - return norm(s, len); - } - - if (len > 9 && StemmerUtil.EndsWith(s, len, "isateur")) - { - return norm(s, len - 7); - } - - if (len > 8 && StemmerUtil.EndsWith(s, len, "ation")) - { - return norm(s, len - 5); - } - - if (len > 8 && StemmerUtil.EndsWith(s, len, "ition")) - { - return norm(s, len - 5); - } - - return norm(s, len); - } - - private int norm(char[] s, int len) - { - if (len > 4) - { - for (int i = 0; i < len; i++) - { - switch (s[i]) - { - case 'à': - case 'á': - case 'â': - s[i] = 'a'; - break; - case 'ô': - s[i] = 'o'; - break; - case 'è': - case 'é': - case 'ê': - s[i] = 'e'; - break; - case 'ù': - case 'û': - s[i] = 'u'; - break; - case 'î': - s[i] = 'i'; - break; - case 'ç': - s[i] = 'c'; - break; - } - } - - char ch = s[0]; - for (int i = 1; i < len; i++) - { - if (s[i] == ch && char.IsLetter(ch)) - { - len = StemmerUtil.delete(s, i--, len); - } - else - { - ch = s[i]; - } - } - } - - if (len > 4 && StemmerUtil.EndsWith(s, len, "ie")) - { - len -= 2; - } - - if (len > 4) - { - if (s[len - 1] == 'r') - { - len--; - } - if (s[len - 1] == 'e') - { - len--; - } - if (s[len - 1] == 'e') - { - len--; - } - if (s[len - 1] == s[len - 2] && char.IsLetter(s[len - 1])) - { - len--; - } - } - return len; - } - } - + /// + /// Light Stemmer for French. + /// + /// This stemmer implements the "UniNE" algorithm in: + /// Light Stemming Approaches for the French, Portuguese, German and Hungarian Languages + /// Jacques Savoy + /// + /// + public class FrenchLightStemmer + { + + public virtual int Stem(char[] s, int len) + { + if (len > 5 && s[len - 1] == 'x') + { + if (s[len - 3] == 'a' && s[len - 2] == 'u' && s[len - 4] != 'e') + { + s[len - 2] = 'l'; + } + len--; + } + + if (len > 3 && s[len - 1] == 'x') + { + len--; + } + + if (len > 3 && s[len - 1] == 's') + { + len--; + } + + if (len > 9 && StemmerUtil.EndsWith(s, len, "issement")) + { + len -= 6; + s[len - 1] = 'r'; + return Norm(s, len); + } + + if (len > 8 && StemmerUtil.EndsWith(s, len, "issant")) + { + len -= 4; + s[len - 1] = 'r'; + return Norm(s, len); + } + + if (len > 6 && StemmerUtil.EndsWith(s, len, "ement")) + { + len -= 4; + if (len > 3 && StemmerUtil.EndsWith(s, len, "ive")) + { + len--; + s[len - 1] = 'f'; + } + return Norm(s, len); + } + + if (len > 11 && StemmerUtil.EndsWith(s, len, "ficatrice")) + { + len -= 5; + s[len - 2] = 'e'; + s[len - 1] = 'r'; + return Norm(s, len); + } + + if (len > 10 && StemmerUtil.EndsWith(s, len, "ficateur")) + { + len -= 4; + s[len - 2] = 'e'; + s[len - 1] = 'r'; + return Norm(s, len); + } + + if (len > 9 && StemmerUtil.EndsWith(s, len, "catrice")) + { + len -= 3; + s[len - 4] = 'q'; + s[len - 3] = 'u'; + s[len - 2] = 'e'; + //s[len-1] = 'r' <-- unnecessary, already 'r'. + return Norm(s, len); + } + + if (len > 8 && StemmerUtil.EndsWith(s, len, "cateur")) + { + len -= 2; + s[len - 4] = 'q'; + s[len - 3] = 'u'; + s[len - 2] = 'e'; + s[len - 1] = 'r'; + return Norm(s, len); + } + + if (len > 8 && StemmerUtil.EndsWith(s, len, "atrice")) + { + len -= 4; + s[len - 2] = 'e'; + s[len - 1] = 'r'; + return Norm(s, len); + } + + if (len > 7 && StemmerUtil.EndsWith(s, len, "ateur")) + { + len -= 3; + s[len - 2] = 'e'; + s[len - 1] = 'r'; + return Norm(s, len); + } + + if (len > 6 && StemmerUtil.EndsWith(s, len, "trice")) + { + len--; + s[len - 3] = 'e'; + s[len - 2] = 'u'; + s[len - 1] = 'r'; + } + + if (len > 5 && StemmerUtil.EndsWith(s, len, "ième")) + { + return Norm(s, len - 4); + } + + if (len > 7 && StemmerUtil.EndsWith(s, len, "teuse")) + { + len -= 2; + s[len - 1] = 'r'; + return Norm(s, len); + } + + if (len > 6 && StemmerUtil.EndsWith(s, len, "teur")) + { + len--; + s[len - 1] = 'r'; + return Norm(s, len); + } + + if (len > 5 && StemmerUtil.EndsWith(s, len, "euse")) + { + return Norm(s, len - 2); + } + + if (len > 8 && StemmerUtil.EndsWith(s, len, "ère")) + { + len--; + s[len - 2] = 'e'; + return Norm(s, len); + } + + if (len > 7 && StemmerUtil.EndsWith(s, len, "ive")) + { + len--; + s[len - 1] = 'f'; + return Norm(s, len); + } + + if (len > 4 && (StemmerUtil.EndsWith(s, len, "folle") || StemmerUtil.EndsWith(s, len, "molle"))) + { + len -= 2; + s[len - 1] = 'u'; + return Norm(s, len); + } + + if (len > 9 && StemmerUtil.EndsWith(s, len, "nnelle")) + { + return Norm(s, len - 5); + } + + if (len > 9 && StemmerUtil.EndsWith(s, len, "nnel")) + { + return Norm(s, len - 3); + } + + if (len > 4 && StemmerUtil.EndsWith(s, len, "ète")) + { + len--; + s[len - 2] = 'e'; + } + + if (len > 8 && StemmerUtil.EndsWith(s, len, "ique")) + { + len -= 4; + } + + if (len > 8 && StemmerUtil.EndsWith(s, len, "esse")) + { + return Norm(s, len - 3); + } + + if (len > 7 && StemmerUtil.EndsWith(s, len, "inage")) + { + return Norm(s, len - 3); + } + + if (len > 9 && StemmerUtil.EndsWith(s, len, "isation")) + { + len -= 7; + if (len > 5 && StemmerUtil.EndsWith(s, len, "ual")) + { + s[len - 2] = 'e'; + } + return Norm(s, len); + } + + if (len > 9 && StemmerUtil.EndsWith(s, len, "isateur")) + { + return Norm(s, len - 7); + } + + if (len > 8 && StemmerUtil.EndsWith(s, len, "ation")) + { + return Norm(s, len - 5); + } + + if (len > 8 && StemmerUtil.EndsWith(s, len, "ition")) + { + return Norm(s, len - 5); + } + + return Norm(s, len); + } + + private int Norm(char[] s, int len) + { + if (len > 4) + { + for (int i = 0; i < len; i++) + { + switch (s[i]) + { + case 'à': + case 'á': + case 'â': + s[i] = 'a'; + break; + case 'ô': + s[i] = 'o'; + break; + case 'è': + case 'é': + case 'ê': + s[i] = 'e'; + break; + case 'ù': + case 'û': + s[i] = 'u'; + break; + case 'î': + s[i] = 'i'; + break; + case 'ç': + s[i] = 'c'; + break; + } + } + + char ch = s[0]; + for (int i = 1; i < len; i++) + { + if (s[i] == ch && char.IsLetter(ch)) + { + len = StemmerUtil.Delete(s, i--, len); + } + else + { + ch = s[i]; + } + } + } + + if (len > 4 && StemmerUtil.EndsWith(s, len, "ie")) + { + len -= 2; + } + + if (len > 4) + { + if (s[len - 1] == 'r') + { + len--; + } + if (s[len - 1] == 'e') + { + len--; + } + if (s[len - 1] == 'e') + { + len--; + } + if (s[len - 1] == s[len - 2] && char.IsLetter(s[len - 1])) + { + len--; + } + } + return len; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemFilter.cs index ca1bf0afac..386e8eca0e 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemFilter.cs @@ -1,7 +1,8 @@ -namespace org.apache.lucene.analysis.fr -{ +using Lucene.Net.Analysis.Tokenattributes; - /* +namespace Lucene.Net.Analysis.Fr +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,49 +19,42 @@ * limitations under the License. */ - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using KeywordAttribute = org.apache.lucene.analysis.tokenattributes.KeywordAttribute; - - /// - /// A that applies to stem French - /// words. - /// - /// To prevent terms from being stemmed use an instance of - /// or a custom that sets - /// the before this . - /// - /// - public sealed class FrenchMinimalStemFilter : TokenFilter - { - private readonly FrenchMinimalStemmer stemmer = new FrenchMinimalStemmer(); - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly KeywordAttribute keywordAttr = addAttribute(typeof(KeywordAttribute)); - - public FrenchMinimalStemFilter(TokenStream input) : base(input) - { - } + /// + /// A that applies to stem French + /// words. + /// + /// To prevent terms from being stemmed use an instance of + /// or a custom that sets + /// the before this . + /// + /// + public sealed class FrenchMinimalStemFilter : TokenFilter + { + private readonly FrenchMinimalStemmer stemmer = new FrenchMinimalStemmer(); + private readonly ICharTermAttribute termAtt; + private readonly IKeywordAttribute keywordAttr; -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - if (!keywordAttr.Keyword) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int newlen = stemmer.stem(termAtt.buffer(), termAtt.length()); - int newlen = stemmer.stem(termAtt.buffer(), termAtt.length()); - termAtt.Length = newlen; - } - return true; - } - else - { - return false; - } - } - } + public FrenchMinimalStemFilter(TokenStream input) : base(input) + { + termAtt = AddAttribute(); + keywordAttr = AddAttribute(); + } + public override bool IncrementToken() + { + if (input.IncrementToken()) + { + if (!keywordAttr.Keyword) + { + int newlen = stemmer.stem(termAtt.Buffer(), termAtt.Length); + termAtt.Length = newlen; + } + return true; + } + else + { + return false; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemFilterFactory.cs index b9cfe33f6d..d9cc41970e 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemFilterFactory.cs @@ -1,9 +1,8 @@ -using System.Collections.Generic; - -namespace org.apache.lucene.analysis.fr +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; +namespace Lucene.Net.Analysis.Fr { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,37 +19,34 @@ namespace org.apache.lucene.analysis.fr * limitations under the License. */ - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_frminstem" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.LowerCaseFilterFactory"/>
    -	///     <filter class="solr.ElisionFilterFactory"/>
    -	///     <filter class="solr.FrenchMinimalStemFilterFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class FrenchMinimalStemFilterFactory : TokenFilterFactory - { - - /// - /// Creates a new FrenchMinimalStemFilterFactory - public FrenchMinimalStemFilterFactory(IDictionary args) : base(args) - { - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + /// + /// Factory for . + ///
    +    /// <fieldType name="text_frminstem" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.LowerCaseFilterFactory"/>
    +    ///     <filter class="solr.ElisionFilterFactory"/>
    +    ///     <filter class="solr.FrenchMinimalStemFilterFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class FrenchMinimalStemFilterFactory : TokenFilterFactory + { - public override TokenStream create(TokenStream input) - { - return new FrenchMinimalStemFilter(input); - } - } + /// + /// Creates a new FrenchMinimalStemFilterFactory + public FrenchMinimalStemFilterFactory(IDictionary args) : base(args) + { + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override TokenStream Create(TokenStream input) + { + return new FrenchMinimalStemFilter(input); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemmer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemmer.cs index 2ca0ccebfd..b1b764034c 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemmer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchMinimalStemmer.cs @@ -1,7 +1,6 @@ -namespace org.apache.lucene.analysis.fr +namespace Lucene.Net.Analysis.Fr { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,14 +17,14 @@ * limitations under the License. */ - /* + /* * This algorithm is updated based on code located at: * http://members.unine.ch/jacques.savoy/clef/ * * Full copyright for that code follows: */ - /* + /* * Copyright (c) 2005, Jacques Savoy * All rights reserved. * @@ -53,54 +52,53 @@ * POSSIBILITY OF SUCH DAMAGE. */ - /// - /// Light Stemmer for French. - /// - /// This stemmer implements the following algorithm: - /// A Stemming procedure and stopword list for general French corpora. - /// Jacques Savoy. - /// - /// - public class FrenchMinimalStemmer - { - public virtual int stem(char[] s, int len) - { - if (len < 6) - { - return len; - } - - if (s[len - 1] == 'x') - { - if (s[len - 3] == 'a' && s[len - 2] == 'u') - { - s[len - 2] = 'l'; - } - return len - 1; - } + /// + /// Light Stemmer for French. + /// + /// This stemmer implements the following algorithm: + /// A Stemming procedure and stopword list for general French corpora. + /// Jacques Savoy. + /// + /// + public class FrenchMinimalStemmer + { + public virtual int stem(char[] s, int len) + { + if (len < 6) + { + return len; + } - if (s[len - 1] == 's') - { - len--; - } - if (s[len - 1] == 'r') - { - len--; - } - if (s[len - 1] == 'e') - { - len--; - } - if (s[len - 1] == 'é') - { - len--; - } - if (s[len - 1] == s[len - 2]) - { - len--; - } - return len; - } - } + if (s[len - 1] == 'x') + { + if (s[len - 3] == 'a' && s[len - 2] == 'u') + { + s[len - 2] = 'l'; + } + return len - 1; + } + if (s[len - 1] == 's') + { + len--; + } + if (s[len - 1] == 'r') + { + len--; + } + if (s[len - 1] == 'e') + { + len--; + } + if (s[len - 1] == 'é') + { + len--; + } + if (s[len - 1] == s[len - 2]) + { + len--; + } + return len; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchStemFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchStemFilter.cs index 8258dfbbbf..048650ff2b 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchStemFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchStemFilter.cs @@ -1,9 +1,9 @@ -using System; +using Lucene.Net.Analysis.Tokenattributes; +using System; -namespace org.apache.lucene.analysis.fr +namespace Lucene.Net.Analysis.Fr { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,83 +20,76 @@ namespace org.apache.lucene.analysis.fr * limitations under the License. */ - using KeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.KeywordMarkerFilter; // for javadoc - using SnowballFilter = org.apache.lucene.analysis.snowball.SnowballFilter; - using KeywordAttribute = org.apache.lucene.analysis.tokenattributes.KeywordAttribute; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - - /// - /// A that stems french words. - /// - /// The used stemmer can be changed at runtime after the - /// filter object is created (as long as it is a ). - /// - /// - /// To prevent terms from being stemmed use an instance of - /// or a custom that sets - /// the before this . - /// - /// - /// @deprecated (3.1) Use with - /// instead, which has the - /// same functionality. This filter will be removed in Lucene 5.0 - [Obsolete("(3.1) Use with")] - public sealed class FrenchStemFilter : TokenFilter - { - - /// - /// The actual token in the input stream. - /// - private FrenchStemmer stemmer = new FrenchStemmer(); - - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly KeywordAttribute keywordAttr = addAttribute(typeof(KeywordAttribute)); - - public FrenchStemFilter(TokenStream @in) : base(@in) - { - } + /// + /// A that stems french words. + /// + /// The used stemmer can be changed at runtime after the + /// filter object is created (as long as it is a ). + /// + /// + /// To prevent terms from being stemmed use an instance of + /// or a custom that sets + /// the before this . + /// + /// + /// @deprecated (3.1) Use with + /// instead, which has the + /// same functionality. This filter will be removed in Lucene 5.0 + [Obsolete("(3.1) Use SnowballFilter with FrenchStemmer instead, which has the same functionality. This filter will be removed in Lucene 5.0")] + public sealed class FrenchStemFilter : TokenFilter + { - /// Returns true for the next token in the stream, or false at EOS -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - string term = termAtt.ToString(); + /// + /// The actual token in the input stream. + /// + private FrenchStemmer stemmer = new FrenchStemmer(); - // Check the exclusion table - if (!keywordAttr.Keyword) - { - string s = stemmer.stem(term); - // If not stemmed, don't waste the time adjusting the token. - if ((s != null) && !s.Equals(term)) - { - termAtt.setEmpty().append(s); - } - } - return true; - } - else - { - return false; - } - } - /// - /// Set a alternative/custom for this filter. - /// - public FrenchStemmer Stemmer - { - set - { - if (value != null) - { - this.stemmer = value; - } - } - } - } + private readonly ICharTermAttribute termAtt; + private readonly IKeywordAttribute keywordAttr; + public FrenchStemFilter(TokenStream @in) + : base(@in) + { + termAtt = AddAttribute(); + keywordAttr = AddAttribute(); + } + /// Returns true for the next token in the stream, or false at EOS + public override bool IncrementToken() + { + if (input.IncrementToken()) + { + string term = termAtt.ToString(); + // Check the exclusion table + if (!keywordAttr.Keyword) + { + string s = stemmer.Stem(term); + // If not stemmed, don't waste the time adjusting the token. + if ((s != null) && !s.Equals(term)) + { + termAtt.SetEmpty().Append(s); + } + } + return true; + } + else + { + return false; + } + } + /// + /// Set a alternative/custom for this filter. + /// + public FrenchStemmer Stemmer + { + set + { + if (value != null) + { + this.stemmer = value; + } + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchStemmer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchStemmer.cs index 4657e29000..1b0b8a47e8 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchStemmer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Fr/FrenchStemmer.cs @@ -1,10 +1,10 @@ using System; +using System.Globalization; using System.Text; -namespace org.apache.lucene.analysis.fr +namespace Lucene.Net.Analysis.Fr { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -21,765 +21,766 @@ namespace org.apache.lucene.analysis.fr * limitations under the License. */ - /// - /// A stemmer for French words. - /// - /// The algorithm is based on the work of - /// Dr Martin Porter on his snowball project
    - /// refer to http://snowball.sourceforge.net/french/stemmer.html
    - /// (French stemming algorithm) for details - ///
    - /// @deprecated Use instead, - /// which has the same functionality. This filter will be removed in Lucene 4.0 - [Obsolete("Use instead,")] - public class FrenchStemmer - { - private static readonly Locale locale = new Locale("fr", "FR"); - - - /// - /// Buffer for the terms while stemming them. - /// - private StringBuilder sb = new StringBuilder(); - - /// - /// A temporary buffer, used to reconstruct R2 - /// - private StringBuilder tb = new StringBuilder(); - - /// - /// Region R0 is equal to the whole buffer - /// - private string R0; - - /// - /// Region RV - /// "If the word begins with two vowels, RV is the region after the third letter, - /// otherwise the region after the first vowel not at the beginning of the word, - /// or the end of the word if these positions cannot be found." - /// - private string RV; - - /// - /// Region R1 - /// "R1 is the region after the first non-vowel following a vowel - /// or is the null region at the end of the word if there is no such non-vowel" - /// - private string R1; - - /// - /// Region R2 - /// "R2 is the region after the first non-vowel in R1 following a vowel - /// or is the null region at the end of the word if there is no such non-vowel" - /// - private string R2; - - - /// - /// Set to true if we need to perform step 2 - /// - private bool suite; - - /// - /// Set to true if the buffer was modified - /// - private bool modified; - - - /// - /// Stems the given term to a unique discriminator. - /// - /// java.langString The term that should be stemmed - /// java.lang.String Discriminator for term - protected internal virtual string stem(string term) - { - if (!isStemmable(term)) - { - return term; - } - - // Use lowercase for medium stemming. - term = term.ToLower(locale); - - // Reset the StringBuilder. - sb.Remove(0, sb.Length); - sb.Insert(0, term); - - // reset the booleans - modified = false; - suite = false; - - sb = treatVowels(sb); - - setStrings(); - - step1(); - - if (!modified || suite) - { - if (RV != null) - { - suite = step2a(); - if (!suite) - { - step2b(); - } - } - } - - if (modified || suite) - { - step3(); - } - else - { - step4(); - } - - step5(); - - step6(); - - return sb.ToString(); - } - - /// - /// Sets the search region Strings
    - /// it needs to be done each time the buffer was modified - ///
    - private void setStrings() - { - // set the strings - R0 = sb.ToString(); - RV = retrieveRV(sb); - R1 = retrieveR(sb); - if (R1 != null) - { - tb.Remove(0, tb.Length); - tb.Insert(0, R1); - R2 = retrieveR(tb); - } - else - { - R2 = null; - } - } - - /// - /// First step of the Porter Algorithm
    - /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation - ///
    - private void step1() - { - string[] suffix = new string[] {"ances", "iqUes", "ismes", "ables", "istes", "ance", "iqUe", "isme", "able", "iste"}; - deleteFrom(R2, suffix); - - replaceFrom(R2, new string[] {"logies", "logie"}, "log"); - replaceFrom(R2, new string[] {"usions", "utions", "usion", "ution"}, "u"); - replaceFrom(R2, new string[] {"ences", "ence"}, "ent"); - - string[] search = new string[] {"atrices", "ateurs", "ations", "atrice", "ateur", "ation"}; - deleteButSuffixFromElseReplace(R2, search, "ic", true, R0, "iqU"); - - deleteButSuffixFromElseReplace(R2, new string[] {"ements", "ement"}, "eus", false, R0, "eux"); - deleteButSuffixFrom(R2, new string[] {"ements", "ement"}, "ativ", false); - deleteButSuffixFrom(R2, new string[] {"ements", "ement"}, "iv", false); - deleteButSuffixFrom(R2, new string[] {"ements", "ement"}, "abl", false); - deleteButSuffixFrom(R2, new string[] {"ements", "ement"}, "iqU", false); - - deleteFromIfTestVowelBeforeIn(R1, new string[] {"issements", "issement"}, false, R0); - deleteFrom(RV, new string[] {"ements", "ement"}); - - deleteButSuffixFromElseReplace(R2, new string[] {"ités", "ité"}, "abil", false, R0, "abl"); - deleteButSuffixFromElseReplace(R2, new string[] {"ités", "ité"}, "ic", false, R0, "iqU"); - deleteButSuffixFrom(R2, new string[] {"ités", "ité"}, "iv", true); - - string[] autre = new string[] {"ifs", "ives", "if", "ive"}; - deleteButSuffixFromElseReplace(R2, autre, "icat", false, R0, "iqU"); - deleteButSuffixFromElseReplace(R2, autre, "at", true, R2, "iqU"); - - replaceFrom(R0, new string[] {"eaux"}, "eau"); - - replaceFrom(R1, new string[] {"aux"}, "al"); - - deleteButSuffixFromElseReplace(R2, new string[] {"euses", "euse"}, "", true, R1, "eux"); - - deleteFrom(R2, new string[] {"eux"}); - - // if one of the next steps is performed, we will need to perform step2a - bool temp = false; - temp = replaceFrom(RV, new string[] {"amment"}, "ant"); - if (temp == true) - { - suite = true; - } - temp = replaceFrom(RV, new string[] {"emment"}, "ent"); - if (temp == true) - { - suite = true; - } - temp = deleteFromIfTestVowelBeforeIn(RV, new string[] {"ments", "ment"}, true, RV); - if (temp == true) - { - suite = true; - } - - } - - /// - /// Second step (A) of the Porter Algorithm
    - /// Will be performed if nothing changed from the first step - /// or changed were done in the amment, emment, ments or ment suffixes
    - /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation - ///
    - /// boolean - true if something changed in the StringBuilder - private bool step2a() - { - string[] search = new string[] {"îmes", "îtes", "iraIent", "irait", "irais", "irai", "iras", "ira", "irent", "iriez", "irez", "irions", "irons", "iront", "issaIent", "issais", "issantes", "issante", "issants", "issant", "issait", "issais", "issions", "issons", "issiez", "issez", "issent", "isses", "isse", "ir", "is", "ît", "it", "ies", "ie", "i"}; - return deleteFromIfTestVowelBeforeIn(RV, search, false, RV); - } - - /// - /// Second step (B) of the Porter Algorithm
    - /// Will be performed if step 2 A was performed unsuccessfully
    - /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation - ///
    - private void step2b() - { - string[] suffix = new string[] {"eraIent", "erais", "erait", "erai", "eras", "erions", "eriez", "erons", "eront","erez", "èrent", "era", "ées", "iez", "ée", "és", "er", "ez", "é"}; - deleteFrom(RV, suffix); - - string[] search = new string[] {"assions", "assiez", "assent", "asses", "asse", "aIent", "antes", "aIent", "Aient", "ante", "âmes", "âtes", "ants", "ant", "ait", "aît", "ais", "Ait", "Aît", "Ais", "ât", "as", "ai", "Ai", "a"}; - deleteButSuffixFrom(RV, search, "e", true); - - deleteFrom(R2, new string[] {"ions"}); - } - - /// - /// Third step of the Porter Algorithm
    - /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation - ///
    - private void step3() - { - if (sb.Length > 0) - { - char ch = sb[sb.Length - 1]; - if (ch == 'Y') - { - sb[sb.Length - 1] = 'i'; - setStrings(); - } - else if (ch == 'ç') - { - sb[sb.Length - 1] = 'c'; - setStrings(); - } - } - } - - /// - /// Fourth step of the Porter Algorithm
    - /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation - ///
    - private void step4() - { - if (sb.Length > 1) - { - char ch = sb[sb.Length - 1]; - if (ch == 's') - { - char b = sb[sb.Length - 2]; - if (b != 'a' && b != 'i' && b != 'o' && b != 'u' && b != 'è' && b != 's') - { - sb.Remove(sb.Length - 1, sb.Length - sb.Length - 1); - setStrings(); - } - } - } - bool found = deleteFromIfPrecededIn(R2, new string[] {"ion"}, RV, "s"); - if (!found) - { - found = deleteFromIfPrecededIn(R2, new string[] {"ion"}, RV, "t"); - } - - replaceFrom(RV, new string[] {"Ière", "ière", "Ier", "ier"}, "i"); - deleteFrom(RV, new string[] {"e"}); - deleteFromIfPrecededIn(RV, new string[] {"ë"}, R0, "gu"); - } - - /// - /// Fifth step of the Porter Algorithm
    - /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation - ///
    - private void step5() - { - if (R0 != null) - { - if (R0.EndsWith("enn", StringComparison.Ordinal) || R0.EndsWith("onn", StringComparison.Ordinal) || R0.EndsWith("ett", StringComparison.Ordinal) || R0.EndsWith("ell", StringComparison.Ordinal) || R0.EndsWith("eill", StringComparison.Ordinal)) - { - sb.Remove(sb.Length - 1, sb.Length - sb.Length - 1); - setStrings(); - } - } - } - - /// - /// Sixth (and last!) step of the Porter Algorithm
    - /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation - ///
    - private void step6() - { - if (R0 != null && R0.Length > 0) - { - bool seenVowel = false; - bool seenConson = false; - int pos = -1; - for (int i = R0.Length - 1; i > -1; i--) - { - char ch = R0[i]; - if (isVowel(ch)) - { - if (!seenVowel) - { - if (ch == 'é' || ch == 'è') - { - pos = i; - break; - } - } - seenVowel = true; - } - else - { - if (seenVowel) - { - break; - } - else - { - seenConson = true; - } - } - } - if (pos > -1 && seenConson && !seenVowel) - { - sb[pos] = 'e'; - } - } - } - - /// - /// Delete a suffix searched in zone "source" if zone "from" contains prefix + search string - /// - /// java.lang.String - the primary source zone for search - /// java.lang.String[] - the strings to search for suppression - /// java.lang.String - the secondary source zone for search - /// java.lang.String - the prefix to add to the search string to test - /// boolean - true if modified - private bool deleteFromIfPrecededIn(string source, string[] search, string from, string prefix) - { - bool found = false; - if (source != null) - { - for (int i = 0; i < search.Length; i++) - { - if (source.EndsWith(search[i], StringComparison.Ordinal)) - { - if (from != null && from.EndsWith(prefix + search[i], StringComparison.Ordinal)) - { - sb.Remove(sb.Length - search[i].Length, sb.Length - sb.Length - search[i].Length); - found = true; - setStrings(); - break; - } - } - } - } - return found; - } - - /// - /// Delete a suffix searched in zone "source" if the preceding letter is (or isn't) a vowel - /// - /// java.lang.String - the primary source zone for search - /// java.lang.String[] - the strings to search for suppression - /// boolean - true if we need a vowel before the search string - /// java.lang.String - the secondary source zone for search (where vowel could be) - /// boolean - true if modified - private bool deleteFromIfTestVowelBeforeIn(string source, string[] search, bool vowel, string from) - { - bool found = false; - if (source != null && from != null) - { - for (int i = 0; i < search.Length; i++) - { - if (source.EndsWith(search[i], StringComparison.Ordinal)) - { - if ((search[i].Length + 1) <= from.Length) - { - bool test = isVowel(sb[sb.Length - (search[i].Length + 1)]); - if (test == vowel) - { - sb.Remove(sb.Length - search[i].Length, sb.Length - sb.Length - search[i].Length); - modified = true; - found = true; - setStrings(); - break; - } - } - } - } - } - return found; - } - - /// - /// Delete a suffix searched in zone "source" if preceded by the prefix - /// - /// java.lang.String - the primary source zone for search - /// java.lang.String[] - the strings to search for suppression - /// java.lang.String - the prefix to add to the search string to test - /// boolean - true if it will be deleted even without prefix found - private void deleteButSuffixFrom(string source, string[] search, string prefix, bool without) - { - if (source != null) - { - for (int i = 0; i < search.Length; i++) - { - if (source.EndsWith(prefix + search[i], StringComparison.Ordinal)) - { - sb.Remove(sb.Length - (prefix.Length + search[i].Length), sb.Length - sb.Length - (prefix.Length + search[i].Length)); - modified = true; - setStrings(); - break; - } - else if (without && source.EndsWith(search[i], StringComparison.Ordinal)) - { - sb.Remove(sb.Length - search[i].Length, sb.Length - sb.Length - search[i].Length); - modified = true; - setStrings(); - break; - } - } - } - } - - /// - /// Delete a suffix searched in zone "source" if preceded by prefix
    - /// or replace it with the replace string if preceded by the prefix in the zone "from"
    - /// or delete the suffix if specified - ///
    - /// java.lang.String - the primary source zone for search - /// java.lang.String[] - the strings to search for suppression - /// java.lang.String - the prefix to add to the search string to test - /// boolean - true if it will be deleted even without prefix found - private void deleteButSuffixFromElseReplace(string source, string[] search, string prefix, bool without, string from, string replace) - { - if (source != null) - { - for (int i = 0; i < search.Length; i++) - { - if (source.EndsWith(prefix + search[i], StringComparison.Ordinal)) - { - sb.Remove(sb.Length - (prefix.Length + search[i].Length), sb.Length - sb.Length - (prefix.Length + search[i].Length)); - modified = true; - setStrings(); - break; - } - else if (from != null && from.EndsWith(prefix + search[i], StringComparison.Ordinal)) - { - sb.Remove(sb.Length - (prefix.Length + search[i].Length), sb.Length - sb.Length - (prefix.Length + search[i].Length)).Insert(sb.Length - (prefix.Length + search[i].Length), replace); - modified = true; - setStrings(); - break; - } - else if (without && source.EndsWith(search[i], StringComparison.Ordinal)) - { - sb.Remove(sb.Length - search[i].Length, sb.Length - sb.Length - search[i].Length); - modified = true; - setStrings(); - break; - } - } - } - } - - /// - /// Replace a search string with another within the source zone - /// - /// java.lang.String - the source zone for search - /// java.lang.String[] - the strings to search for replacement - /// java.lang.String - the replacement string - private bool replaceFrom(string source, string[] search, string replace) - { - bool found = false; - if (source != null) - { - for (int i = 0; i < search.Length; i++) - { - if (source.EndsWith(search[i], StringComparison.Ordinal)) - { - sb.Remove(sb.Length - search[i].Length, sb.Length - sb.Length - search[i].Length).Insert(sb.Length - search[i].Length, replace); - modified = true; - found = true; - setStrings(); - break; - } - } - } - return found; - } - - /// - /// Delete a search string within the source zone - /// - /// the source zone for search - /// the strings to search for suppression - private void deleteFrom(string source, string[] suffix) - { - if (source != null) - { - for (int i = 0; i < suffix.Length; i++) - { - if (source.EndsWith(suffix[i], StringComparison.Ordinal)) - { - sb.Remove(sb.Length - suffix[i].Length, sb.Length - sb.Length - suffix[i].Length); - modified = true; - setStrings(); - break; - } - } - } - } - - /// - /// Test if a char is a french vowel, including accentuated ones - /// - /// the char to test - /// boolean - true if the char is a vowel - private bool isVowel(char ch) - { - switch (ch) - { - case 'a': - case 'e': - case 'i': - case 'o': - case 'u': - case 'y': - case 'â': - case 'à': - case 'ë': - case 'é': - case 'ê': - case 'è': - case 'ï': - case 'î': - case 'ô': - case 'ü': - case 'ù': - case 'û': - return true; - default: - return false; - } - } - - /// - /// Retrieve the "R zone" (1 or 2 depending on the buffer) and return the corresponding string
    - /// "R is the region after the first non-vowel following a vowel - /// or is the null region at the end of the word if there is no such non-vowel"
    - /// java.lang.StringBuilder - the in buffer - /// java.lang.String - the resulting string - private string retrieveR(StringBuilder buffer) - { - int len = buffer.Length; - int pos = -1; - for (int c = 0; c < len; c++) - { - if (isVowel(buffer[c])) - { - pos = c; - break; - } - } - if (pos > -1) - { - int consonne = -1; - for (int c = pos; c < len; c++) - { - if (!isVowel(buffer[c])) - { - consonne = c; - break; - } - } - if (consonne > -1 && (consonne+1) < len) - { - return StringHelperClass.SubstringSpecial(buffer, consonne+1, len); - } - else - { - return null; - } - } - else - { - return null; - } - } - - /// - /// Retrieve the "RV zone" from a buffer an return the corresponding string
    - /// "If the word begins with two vowels, RV is the region after the third letter, - /// otherwise the region after the first vowel not at the beginning of the word, - /// or the end of the word if these positions cannot be found."
    - /// java.lang.StringBuilder - the in buffer - /// java.lang.String - the resulting string - private string retrieveRV(StringBuilder buffer) - { - int len = buffer.Length; - if (buffer.Length > 3) - { - if (isVowel(buffer[0]) && isVowel(buffer[1])) - { - return buffer.Substring(3, len - 3); - } - else - { - int pos = 0; - for (int c = 1; c < len; c++) - { - if (isVowel(buffer[c])) - { - pos = c; - break; - } - } - if (pos + 1 < len) - { - return StringHelperClass.SubstringSpecial(buffer, pos + 1, len); - } - else - { - return null; - } - } - } - else - { - return null; - } - } - - - - /// - /// Turns u and i preceded AND followed by a vowel to UpperCase
    - /// Turns y preceded OR followed by a vowel to UpperCase
    - /// Turns u preceded by q to UpperCase
    - ///
    - /// java.util.StringBuilder - the buffer to treat - /// java.util.StringBuilder - the treated buffer - private StringBuilder treatVowels(StringBuilder buffer) - { - for (int c = 0; c < buffer.Length; c++) - { - char ch = buffer[c]; - - if (c == 0) // first char - { - if (buffer.Length > 1) - { - if (ch == 'y' && isVowel(buffer[c + 1])) - { - buffer[c] = 'Y'; - } - } - } - else if (c == buffer.Length - 1) // last char - { - if (ch == 'u' && buffer[c - 1] == 'q') - { - buffer[c] = 'U'; - } - if (ch == 'y' && isVowel(buffer[c - 1])) - { - buffer[c] = 'Y'; - } - } - else // other cases - { - if (ch == 'u') - { - if (buffer[c - 1] == 'q') - { - buffer[c] = 'U'; - } - else if (isVowel(buffer[c - 1]) && isVowel(buffer[c + 1])) - { - buffer[c] = 'U'; - } - } - if (ch == 'i') - { - if (isVowel(buffer[c - 1]) && isVowel(buffer[c + 1])) - { - buffer[c] = 'I'; - } - } - if (ch == 'y') - { - if (isVowel(buffer[c - 1]) || isVowel(buffer[c + 1])) - { - buffer[c] = 'Y'; - } - } - } - } - - return buffer; - } - - /// - /// Checks a term if it can be processed correctly. - /// - /// boolean - true if, and only if, the given term consists in letters. - private bool isStemmable(string term) - { - bool upper = false; - int first = -1; - for (int c = 0; c < term.Length; c++) - { - // Discard terms that contain non-letter characters. - if (!char.IsLetter(term[c])) - { - return false; - } - // Discard terms that contain multiple uppercase letters. - if (char.IsUpper(term[c])) - { - if (upper) - { - return false; - } - // First encountered uppercase letter, set flag and save - // position. - else - { - first = c; - upper = true; - } - } - } - // Discard the term if it contains a single uppercase letter that - // is not starting the term. - if (first > 0) - { - return false; - } - return true; - } - } - + /// + /// A stemmer for French words. + /// + /// The algorithm is based on the work of + /// Dr Martin Porter on his snowball project
    + /// refer to http://snowball.sourceforge.net/french/stemmer.html
    + /// (French stemming algorithm) for details + ///
    + /// @deprecated Use instead, + /// which has the same functionality. This filter will be removed in Lucene 4.0 + [Obsolete("Use FrenchStemmer instead, which has the same functionality.")] + public class FrenchStemmer + { + private static readonly CultureInfo locale = new CultureInfo("fr-FR"); + + + /// + /// Buffer for the terms while stemming them. + /// + private StringBuilder sb = new StringBuilder(); + + /// + /// A temporary buffer, used to reconstruct R2 + /// + private StringBuilder tb = new StringBuilder(); + + /// + /// Region R0 is equal to the whole buffer + /// + private string R0; + + /// + /// Region RV + /// "If the word begins with two vowels, RV is the region after the third letter, + /// otherwise the region after the first vowel not at the beginning of the word, + /// or the end of the word if these positions cannot be found." + /// + private string RV; + + /// + /// Region R1 + /// "R1 is the region after the first non-vowel following a vowel + /// or is the null region at the end of the word if there is no such non-vowel" + /// + private string R1; + + /// + /// Region R2 + /// "R2 is the region after the first non-vowel in R1 following a vowel + /// or is the null region at the end of the word if there is no such non-vowel" + /// + private string R2; + + + /// + /// Set to true if we need to perform step 2 + /// + private bool suite; + + /// + /// Set to true if the buffer was modified + /// + private bool modified; + + + /// + /// Stems the given term to a unique discriminator. + /// + /// java.langString The term that should be stemmed + /// java.lang.String Discriminator for term + protected internal virtual string Stem(string term) + { + if (!IsStemmable(term)) + { + return term; + } + + // Use lowercase for medium stemming. + term = term.ToLower(locale); + + // Reset the StringBuilder. + sb.Remove(0, sb.Length); + sb.Insert(0, term); + + // reset the booleans + modified = false; + suite = false; + + sb = TreatVowels(sb); + + SetStrings(); + + Step1(); + + if (!modified || suite) + { + if (RV != null) + { + suite = Step2a(); + if (!suite) + { + Step2b(); + } + } + } + + if (modified || suite) + { + Step3(); + } + else + { + Step4(); + } + + Step5(); + + Step6(); + + return sb.ToString(); + } + + /// + /// Sets the search region Strings
    + /// it needs to be done each time the buffer was modified + ///
    + private void SetStrings() + { + // set the strings + R0 = sb.ToString(); + RV = RetrieveRV(sb); + R1 = RetrieveR(sb); + if (R1 != null) + { + tb.Remove(0, tb.Length); + tb.Insert(0, R1); + R2 = RetrieveR(tb); + } + else + { + R2 = null; + } + } + + /// + /// First step of the Porter Algorithm
    + /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation + ///
    + private void Step1() + { + string[] suffix = new string[] { "ances", "iqUes", "ismes", "ables", "istes", "ance", "iqUe", "isme", "able", "iste" }; + DeleteFrom(R2, suffix); + + ReplaceFrom(R2, new string[] { "logies", "logie" }, "log"); + ReplaceFrom(R2, new string[] { "usions", "utions", "usion", "ution" }, "u"); + ReplaceFrom(R2, new string[] { "ences", "ence" }, "ent"); + + string[] search = new string[] { "atrices", "ateurs", "ations", "atrice", "ateur", "ation" }; + DeleteButSuffixFromElseReplace(R2, search, "ic", true, R0, "iqU"); + + DeleteButSuffixFromElseReplace(R2, new string[] { "ements", "ement" }, "eus", false, R0, "eux"); + DeleteButSuffixFrom(R2, new string[] { "ements", "ement" }, "ativ", false); + DeleteButSuffixFrom(R2, new string[] { "ements", "ement" }, "iv", false); + DeleteButSuffixFrom(R2, new string[] { "ements", "ement" }, "abl", false); + DeleteButSuffixFrom(R2, new string[] { "ements", "ement" }, "iqU", false); + + DeleteFromIfTestVowelBeforeIn(R1, new string[] { "issements", "issement" }, false, R0); + DeleteFrom(RV, new string[] { "ements", "ement" }); + + DeleteButSuffixFromElseReplace(R2, new string[] { "ités", "ité" }, "abil", false, R0, "abl"); + DeleteButSuffixFromElseReplace(R2, new string[] { "ités", "ité" }, "ic", false, R0, "iqU"); + DeleteButSuffixFrom(R2, new string[] { "ités", "ité" }, "iv", true); + + string[] autre = new string[] { "ifs", "ives", "if", "ive" }; + DeleteButSuffixFromElseReplace(R2, autre, "icat", false, R0, "iqU"); + DeleteButSuffixFromElseReplace(R2, autre, "at", true, R2, "iqU"); + + ReplaceFrom(R0, new string[] { "eaux" }, "eau"); + + ReplaceFrom(R1, new string[] { "aux" }, "al"); + + DeleteButSuffixFromElseReplace(R2, new string[] { "euses", "euse" }, "", true, R1, "eux"); + + DeleteFrom(R2, new string[] { "eux" }); + + // if one of the next steps is performed, we will need to perform step2a + bool temp = false; + temp = ReplaceFrom(RV, new string[] { "amment" }, "ant"); + if (temp == true) + { + suite = true; + } + temp = ReplaceFrom(RV, new string[] { "emment" }, "ent"); + if (temp == true) + { + suite = true; + } + temp = DeleteFromIfTestVowelBeforeIn(RV, new string[] { "ments", "ment" }, true, RV); + if (temp == true) + { + suite = true; + } + + } + + /// + /// Second step (A) of the Porter Algorithm
    + /// Will be performed if nothing changed from the first step + /// or changed were done in the amment, emment, ments or ment suffixes
    + /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation + ///
    + /// boolean - true if something changed in the StringBuilder + private bool Step2a() + { + string[] search = new string[] { "îmes", "îtes", "iraIent", "irait", "irais", "irai", "iras", "ira", "irent", "iriez", "irez", "irions", "irons", "iront", "issaIent", "issais", "issantes", "issante", "issants", "issant", "issait", "issais", "issions", "issons", "issiez", "issez", "issent", "isses", "isse", "ir", "is", "ît", "it", "ies", "ie", "i" }; + return DeleteFromIfTestVowelBeforeIn(RV, search, false, RV); + } + + /// + /// Second step (B) of the Porter Algorithm
    + /// Will be performed if step 2 A was performed unsuccessfully
    + /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation + ///
    + private void Step2b() + { + string[] suffix = new string[] { "eraIent", "erais", "erait", "erai", "eras", "erions", "eriez", "erons", "eront", "erez", "èrent", "era", "ées", "iez", "ée", "és", "er", "ez", "é" }; + DeleteFrom(RV, suffix); + + string[] search = new string[] { "assions", "assiez", "assent", "asses", "asse", "aIent", "antes", "aIent", "Aient", "ante", "âmes", "âtes", "ants", "ant", "ait", "aît", "ais", "Ait", "Aît", "Ais", "ât", "as", "ai", "Ai", "a" }; + DeleteButSuffixFrom(RV, search, "e", true); + + DeleteFrom(R2, new string[] { "ions" }); + } + + /// + /// Third step of the Porter Algorithm
    + /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation + ///
    + private void Step3() + { + if (sb.Length > 0) + { + char ch = sb[sb.Length - 1]; + if (ch == 'Y') + { + sb[sb.Length - 1] = 'i'; + SetStrings(); + } + else if (ch == 'ç') + { + sb[sb.Length - 1] = 'c'; + SetStrings(); + } + } + } + + /// + /// Fourth step of the Porter Algorithm
    + /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation + ///
    + private void Step4() + { + if (sb.Length > 1) + { + char ch = sb[sb.Length - 1]; + if (ch == 's') + { + char b = sb[sb.Length - 2]; + if (b != 'a' && b != 'i' && b != 'o' && b != 'u' && b != 'è' && b != 's') + { + sb.Remove(sb.Length - 1, sb.Length - (sb.Length - 1)); + SetStrings(); + } + } + } + bool found = DeleteFromIfPrecededIn(R2, new string[] { "ion" }, RV, "s"); + if (!found) + { + found = DeleteFromIfPrecededIn(R2, new string[] { "ion" }, RV, "t"); + } + + ReplaceFrom(RV, new string[] { "Ière", "ière", "Ier", "ier" }, "i"); + DeleteFrom(RV, new string[] { "e" }); + DeleteFromIfPrecededIn(RV, new string[] { "ë" }, R0, "gu"); + } + + /// + /// Fifth step of the Porter Algorithm
    + /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation + ///
    + private void Step5() + { + if (R0 != null) + { + if (R0.EndsWith("enn", StringComparison.Ordinal) || R0.EndsWith("onn", StringComparison.Ordinal) || R0.EndsWith("ett", StringComparison.Ordinal) || R0.EndsWith("ell", StringComparison.Ordinal) || R0.EndsWith("eill", StringComparison.Ordinal)) + { + sb.Remove(sb.Length - 1, sb.Length - (sb.Length - 1)); + SetStrings(); + } + } + } + + /// + /// Sixth (and last!) step of the Porter Algorithm
    + /// refer to http://snowball.sourceforge.net/french/stemmer.html for an explanation + ///
    + private void Step6() + { + if (R0 != null && R0.Length > 0) + { + bool seenVowel = false; + bool seenConson = false; + int pos = -1; + for (int i = R0.Length - 1; i > -1; i--) + { + char ch = R0[i]; + if (IsVowel(ch)) + { + if (!seenVowel) + { + if (ch == 'é' || ch == 'è') + { + pos = i; + break; + } + } + seenVowel = true; + } + else + { + if (seenVowel) + { + break; + } + else + { + seenConson = true; + } + } + } + if (pos > -1 && seenConson && !seenVowel) + { + sb[pos] = 'e'; + } + } + } + + /// + /// Delete a suffix searched in zone "source" if zone "from" contains prefix + search string + /// + /// java.lang.String - the primary source zone for search + /// java.lang.String[] - the strings to search for suppression + /// java.lang.String - the secondary source zone for search + /// java.lang.String - the prefix to add to the search string to test + /// boolean - true if modified + private bool DeleteFromIfPrecededIn(string source, string[] search, string from, string prefix) + { + bool found = false; + if (source != null) + { + for (int i = 0; i < search.Length; i++) + { + if (source.EndsWith(search[i], StringComparison.Ordinal)) + { + if (from != null && from.EndsWith(prefix + search[i], StringComparison.Ordinal)) + { + sb.Remove(sb.Length - search[i].Length, sb.Length - (sb.Length - search[i].Length)); + found = true; + SetStrings(); + break; + } + } + } + } + return found; + } + + /// + /// Delete a suffix searched in zone "source" if the preceding letter is (or isn't) a vowel + /// + /// java.lang.String - the primary source zone for search + /// java.lang.String[] - the strings to search for suppression + /// boolean - true if we need a vowel before the search string + /// java.lang.String - the secondary source zone for search (where vowel could be) + /// boolean - true if modified + private bool DeleteFromIfTestVowelBeforeIn(string source, string[] search, bool vowel, string from) + { + bool found = false; + if (source != null && from != null) + { + for (int i = 0; i < search.Length; i++) + { + if (source.EndsWith(search[i], StringComparison.Ordinal)) + { + if ((search[i].Length + 1) <= from.Length) + { + bool test = IsVowel(sb[sb.Length - (search[i].Length + 1)]); + if (test == vowel) + { + sb.Remove(sb.Length - search[i].Length, sb.Length - (sb.Length - search[i].Length)); + modified = true; + found = true; + SetStrings(); + break; + } + } + } + } + } + return found; + } + + /// + /// Delete a suffix searched in zone "source" if preceded by the prefix + /// + /// java.lang.String - the primary source zone for search + /// java.lang.String[] - the strings to search for suppression + /// java.lang.String - the prefix to add to the search string to test + /// boolean - true if it will be deleted even without prefix found + private void DeleteButSuffixFrom(string source, string[] search, string prefix, bool without) + { + if (source != null) + { + for (int i = 0; i < search.Length; i++) + { + if (source.EndsWith(prefix + search[i], StringComparison.Ordinal)) + { + sb.Remove(sb.Length - (prefix.Length + search[i].Length), sb.Length - (sb.Length - (prefix.Length + search[i].Length))); + modified = true; + SetStrings(); + break; + } + else if (without && source.EndsWith(search[i], StringComparison.Ordinal)) + { + sb.Remove(sb.Length - search[i].Length, sb.Length - (sb.Length - search[i].Length)); + modified = true; + SetStrings(); + break; + } + } + } + } + + /// + /// Delete a suffix searched in zone "source" if preceded by prefix
    + /// or replace it with the replace string if preceded by the prefix in the zone "from"
    + /// or delete the suffix if specified + ///
    + /// java.lang.String - the primary source zone for search + /// java.lang.String[] - the strings to search for suppression + /// java.lang.String - the prefix to add to the search string to test + /// boolean - true if it will be deleted even without prefix found + private void DeleteButSuffixFromElseReplace(string source, string[] search, string prefix, bool without, string from, string replace) + { + if (source != null) + { + for (int i = 0; i < search.Length; i++) + { + if (source.EndsWith(prefix + search[i], StringComparison.Ordinal)) + { + sb.Remove(sb.Length - (prefix.Length + search[i].Length), sb.Length - sb.Length - (prefix.Length + search[i].Length)); + modified = true; + SetStrings(); + break; + } + else if (from != null && from.EndsWith(prefix + search[i], StringComparison.Ordinal)) + { + sb.Remove(sb.Length - (prefix.Length + search[i].Length), sb.Length - sb.Length - (prefix.Length + search[i].Length)).Insert(sb.Length - (prefix.Length + search[i].Length), replace); + modified = true; + SetStrings(); + break; + } + else if (without && source.EndsWith(search[i], StringComparison.Ordinal)) + { + sb.Remove(sb.Length - search[i].Length, sb.Length - sb.Length - search[i].Length); + modified = true; + SetStrings(); + break; + } + } + } + } + + /// + /// Replace a search string with another within the source zone + /// + /// java.lang.String - the source zone for search + /// java.lang.String[] - the strings to search for replacement + /// java.lang.String - the replacement string + private bool ReplaceFrom(string source, string[] search, string replace) + { + bool found = false; + if (source != null) + { + for (int i = 0; i < search.Length; i++) + { + if (source.EndsWith(search[i], StringComparison.Ordinal)) + { + sb.Remove(sb.Length - search[i].Length, sb.Length - sb.Length - search[i].Length).Insert(sb.Length - search[i].Length, replace); + modified = true; + found = true; + SetStrings(); + break; + } + } + } + return found; + } + + /// + /// Delete a search string within the source zone + /// + /// the source zone for search + /// the strings to search for suppression + private void DeleteFrom(string source, string[] suffix) + { + if (source != null) + { + for (int i = 0; i < suffix.Length; i++) + { + if (source.EndsWith(suffix[i], StringComparison.Ordinal)) + { + sb.Remove(sb.Length - suffix[i].Length, sb.Length - (sb.Length - suffix[i].Length)); + modified = true; + SetStrings(); + break; + } + } + } + } + + /// + /// Test if a char is a french vowel, including accentuated ones + /// + /// the char to test + /// boolean - true if the char is a vowel + private bool IsVowel(char ch) + { + switch (ch) + { + case 'a': + case 'e': + case 'i': + case 'o': + case 'u': + case 'y': + case 'â': + case 'à': + case 'ë': + case 'é': + case 'ê': + case 'è': + case 'ï': + case 'î': + case 'ô': + case 'ü': + case 'ù': + case 'û': + return true; + default: + return false; + } + } + + /// + /// Retrieve the "R zone" (1 or 2 depending on the buffer) and return the corresponding string
    + /// "R is the region after the first non-vowel following a vowel + /// or is the null region at the end of the word if there is no such non-vowel"
    + /// java.lang.StringBuilder - the in buffer + /// java.lang.String - the resulting string + private string RetrieveR(StringBuilder buffer) + { + int len = buffer.Length; + int pos = -1; + for (int c = 0; c < len; c++) + { + if (IsVowel(buffer[c])) + { + pos = c; + break; + } + } + if (pos > -1) + { + int consonne = -1; + for (int c = pos; c < len; c++) + { + if (!IsVowel(buffer[c])) + { + consonne = c; + break; + } + } + if (consonne > -1 && (consonne + 1) < len) + { + return buffer.ToString(consonne + 1, len - (consonne + 1)); + //return StringHelperClass.SubstringSpecial(buffer, consonne+1, len); + } + else + { + return null; + } + } + else + { + return null; + } + } + + /// + /// Retrieve the "RV zone" from a buffer an return the corresponding string
    + /// "If the word begins with two vowels, RV is the region after the third letter, + /// otherwise the region after the first vowel not at the beginning of the word, + /// or the end of the word if these positions cannot be found."
    + /// java.lang.StringBuilder - the in buffer + /// java.lang.String - the resulting string + private string RetrieveRV(StringBuilder buffer) + { + int len = buffer.Length; + if (buffer.Length > 3) + { + if (IsVowel(buffer[0]) && IsVowel(buffer[1])) + { + return buffer.ToString(3, len - 3); + } + else + { + int pos = 0; + for (int c = 1; c < len; c++) + { + if (IsVowel(buffer[c])) + { + pos = c; + break; + } + } + if (pos + 1 < len) + { + return buffer.ToString(pos + 1, len - (pos + 1)); + //return StringHelperClass.SubstringSpecial(buffer, pos + 1, len); + } + else + { + return null; + } + } + } + else + { + return null; + } + } + + + + /// + /// Turns u and i preceded AND followed by a vowel to UpperCase
    + /// Turns y preceded OR followed by a vowel to UpperCase
    + /// Turns u preceded by q to UpperCase
    + ///
    + /// java.util.StringBuilder - the buffer to treat + /// java.util.StringBuilder - the treated buffer + private StringBuilder TreatVowels(StringBuilder buffer) + { + for (int c = 0; c < buffer.Length; c++) + { + char ch = buffer[c]; + + if (c == 0) // first char + { + if (buffer.Length > 1) + { + if (ch == 'y' && IsVowel(buffer[c + 1])) + { + buffer[c] = 'Y'; + } + } + } + else if (c == buffer.Length - 1) // last char + { + if (ch == 'u' && buffer[c - 1] == 'q') + { + buffer[c] = 'U'; + } + if (ch == 'y' && IsVowel(buffer[c - 1])) + { + buffer[c] = 'Y'; + } + } + else // other cases + { + if (ch == 'u') + { + if (buffer[c - 1] == 'q') + { + buffer[c] = 'U'; + } + else if (IsVowel(buffer[c - 1]) && IsVowel(buffer[c + 1])) + { + buffer[c] = 'U'; + } + } + if (ch == 'i') + { + if (IsVowel(buffer[c - 1]) && IsVowel(buffer[c + 1])) + { + buffer[c] = 'I'; + } + } + if (ch == 'y') + { + if (IsVowel(buffer[c - 1]) || IsVowel(buffer[c + 1])) + { + buffer[c] = 'Y'; + } + } + } + } + + return buffer; + } + + /// + /// Checks a term if it can be processed correctly. + /// + /// boolean - true if, and only if, the given term consists in letters. + private bool IsStemmable(string term) + { + bool upper = false; + int first = -1; + for (int c = 0; c < term.Length; c++) + { + // Discard terms that contain non-letter characters. + if (!char.IsLetter(term[c])) + { + return false; + } + // Discard terms that contain multiple uppercase letters. + if (char.IsUpper(term[c])) + { + if (upper) + { + return false; + } + // First encountered uppercase letter, set flag and save + // position. + else + { + first = c; + upper = true; + } + } + } + // Discard the term if it contains a single uppercase letter that + // is not starting the term. + if (first > 0) + { + return false; + } + return true; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Snowball/french_stop.txt b/src/Lucene.Net.Analysis.Common/Analysis/Snowball/french_stop.txt new file mode 100644 index 0000000000..749abae684 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Snowball/french_stop.txt @@ -0,0 +1,186 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/french/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + | + | NOTE: To use this file with StopFilterFactory, you must specify format="snowball" + + | A French stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + +au | a + le +aux | a + les +avec | with +ce | this +ces | these +dans | with +de | of +des | de + les +du | de + le +elle | she +en | `of them' etc +et | and +eux | them +il | he +je | I +la | the +le | the +leur | their +lui | him +ma | my (fem) +mais | but +me | me +même | same; as in moi-même (myself) etc +mes | me (pl) +moi | me +mon | my (masc) +ne | not +nos | our (pl) +notre | our +nous | we +on | one +ou | where +par | by +pas | not +pour | for +qu | que before vowel +que | that +qui | who +sa | his, her (fem) +se | oneself +ses | his (pl) +son | his, her (masc) +sur | on +ta | thy (fem) +te | thee +tes | thy (pl) +toi | thee +ton | thy (masc) +tu | thou +un | a +une | a +vos | your (pl) +votre | your +vous | you + + | single letter forms + +c | c' +d | d' +j | j' +l | l' +à | to, at +m | m' +n | n' +s | s' +t | t' +y | there + + | forms of être (not including the infinitive): +été +étée +étées +étés +étant +suis +es +est +sommes +êtes +sont +serai +seras +sera +serons +serez +seront +serais +serait +serions +seriez +seraient +étais +était +étions +étiez +étaient +fus +fut +fûmes +fûtes +furent +sois +soit +soyons +soyez +soient +fusse +fusses +fût +fussions +fussiez +fussent + + | forms of avoir (not including the infinitive): +ayant +eu +eue +eues +eus +ai +as +avons +avez +ont +aurai +auras +aura +aurons +aurez +auront +aurais +aurait +aurions +auriez +auraient +avais +avait +avions +aviez +avaient +eut +eûmes +eûtes +eurent +aie +aies +ait +ayons +ayez +aient +eusse +eusses +eût +eussions +eussiez +eussent + + | Later additions (from Jean-Christophe Deschamps) +ceci | this +cela | that +celà | that +cet | this +cette | this +ici | here +ils | they +les | the (pl) +leurs | their (pl) +quel | which +quels | which +quelle | which +quelles | which +sans | without +soi | oneself + diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/ElisionFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/ElisionFilter.cs index d14fb0ee51..44c3233e38 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/ElisionFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/ElisionFilter.cs @@ -2,7 +2,6 @@ namespace Lucene.Net.Analysis.Util { - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -19,6 +18,7 @@ namespace Lucene.Net.Analysis.Util * See the License for the specific language governing permissions and * limitations under the License. */ + ///
    /// Removes elisions from a . For example, "l'avion" (the plane) will be /// tokenized as "avion" (plane). @@ -27,7 +27,7 @@ namespace Lucene.Net.Analysis.Util public sealed class ElisionFilter : TokenFilter { private readonly CharArraySet articles; - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); + private readonly ICharTermAttribute termAtt; /// /// Constructs an elision filter with a Set of stop words @@ -37,6 +37,7 @@ public ElisionFilter(TokenStream input, CharArraySet articles) : base(input) { this.articles = articles; + termAtt = AddAttribute(); } /// diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/ElisionFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/ElisionFilterFactory.cs index 7dc1bbee06..71c240e081 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/ElisionFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/ElisionFilterFactory.cs @@ -1,10 +1,9 @@ -using System.Collections.Generic; -using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Fr; +using System.Collections.Generic; -namespace org.apache.lucene.analysis.util +namespace Lucene.Net.Analysis.Util { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -21,66 +20,59 @@ namespace org.apache.lucene.analysis.util * limitations under the License. */ + /// + /// Factory for . + ///
    +    /// <fieldType name="text_elsn" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.LowerCaseFilterFactory"/>
    +    ///     <filter class="solr.ElisionFilterFactory" 
    +    ///       articles="stopwordarticles.txt" ignoreCase="true"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class ElisionFilterFactory : TokenFilterFactory, IResourceLoaderAware, IMultiTermAwareComponent + { + private readonly string articlesFile; + private readonly bool ignoreCase; + private CharArraySet articles; - using FrenchAnalyzer = org.apache.lucene.analysis.fr.FrenchAnalyzer; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_elsn" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.LowerCaseFilterFactory"/>
    -	///     <filter class="solr.ElisionFilterFactory" 
    -	///       articles="stopwordarticles.txt" ignoreCase="true"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class ElisionFilterFactory : TokenFilterFactory, ResourceLoaderAware, MultiTermAwareComponent - { - private readonly string articlesFile; - private readonly bool ignoreCase; - private CharArraySet articles; - - /// - /// Creates a new ElisionFilterFactory - public ElisionFilterFactory(IDictionary args) : base(args) - { - articlesFile = get(args, "articles"); - ignoreCase = getBoolean(args, "ignoreCase", false); - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void inform(ResourceLoader loader) throws java.io.IOException - public virtual void inform(ResourceLoader loader) - { - if (articlesFile == null) - { - articles = FrenchAnalyzer.DEFAULT_ARTICLES; - } - else - { - articles = getWordSet(loader, articlesFile, ignoreCase); - } - } - - public override ElisionFilter create(TokenStream input) - { - return new ElisionFilter(input, articles); - } + /// + /// Creates a new ElisionFilterFactory + public ElisionFilterFactory(IDictionary args) : base(args) + { + articlesFile = Get(args, "articles"); + ignoreCase = GetBoolean(args, "ignoreCase", false); + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } - public virtual AbstractAnalysisFactory MultiTermComponent - { - get - { - return this; - } - } - } + public virtual void Inform(IResourceLoader loader) + { + if (articlesFile == null) + { + articles = FrenchAnalyzer.DEFAULT_ARTICLES; + } + else + { + articles = GetWordSet(loader, articlesFile, ignoreCase); + } + } + public override TokenStream Create(TokenStream input) + { + return new ElisionFilter(input, articles); + } + public virtual AbstractAnalysisFactory MultiTermComponent + { + get + { + return this; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index c79919555f..931d2274b4 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -94,6 +94,15 @@ + + + + + + + + + @@ -257,6 +266,8 @@ + + @@ -366,6 +377,9 @@ + + + !iq&!o|CyQmvw&DXlO46wYrDrf%JX4ZPnoCd-C%sQ01iI99x1+KLuqf zjd;pekU+tc1qe7M&l%|5;gsNU97@s0OwUiDqvyLh=|(O50{++n&0Prfz~(D315U)s z=*vq#=wAvy@-`e2?ss{KnBVgbhA+1ClKdr3a1Cfji3B&s<(b<;MAnsaFKBmsTSh?_ zzHFZRx1Wkl;341(lVSY7)UCHNMr*;}tD2gwl@4=-wtSgun2~5J z7WN+bFpmQC>OpTya-CG%w@mR0$e$goLNXk&(g{=_9}49y*^+A_|EESZ6gfFd*G*;O zyLbk!h9aVdzf1AZ2FO*=IVkZgOLh!<1`UR^&}n^vsU~MiuUXO&I0#{2)-lF4^ihA4 zN=f|4PnpMVYK+QH!=nBBBJCHpmr{`padoi+*AeljYb;dp8|>?tKgKT$Ew$Ny&+7os zhU_XR+vMxU(v$W(qkm+)C!SbnOo64|brA`kXw^Qs8vDS_|Fq1HmYKJS=FZ~&!!3wt zAbZDAGxJNEaHIIL2_E<#G&og)R;gpHZF11UdVYso;gW)jdT-0IbhSFNrHnv_J(g)N z9)6@8wWz*z!Jqmr^j!RxV=DYO%(%C9UBo@T^?@VEA4S1nC#=B4^{5< zctE7+2j35Nt=#;jmea*bR}$DlSxvN!-8Q_9B9n_zMT1mQM0P4LK2V4mc`UCS5;luz zO199laOkw~>#;COlgK*sSiiX^Y~+Oam@C)J5zz}2mqJxZ$14m1GO{58O@^+)qe>KqjTyV63lX>OXj4(hHcPXR3z4hP3C-7d@{cji7q%6$B%>Q+AL!!O<^%cq zUiQ!+qr{$O^@MZhf>vs-0ds^*oY*UxL-9{UWxpM^cPH2GSLLbe$duXB@v@IyBttk4 zS(3f!6x9}A)!m|@uPC7hFvW7`!pCyQY5eV{6srpABsh~YFq(P!Db>)^O-&hM#wS&y z&yKxqV&wL!pYKpszS8{qNF5!`^N8Y4OH*){K3^toaV$w);Y5;_n}VP^pO;-yxe-RW zZ8~1yXVhacTVBr&tr~?H;-mGt!*Vo_Klh~5P+y&+Y8qQse=2LI%OgVG(iZ0;I&y;E zT&y>M6AB@B(-E3g`1mNXtlDOu6SSC2Oqc^l?4%#A-NVyr>s#j(_Uit`aMBqTKE`QE z$?A-jZaLPj>A~JykR-C-mrqW^Mwwkduq5N*#_q0ilM$?KHz%~ z9n5&Eoaa`ZI%OXV-Tu-}d|vG7?6HP~x!Rkl^NM>11eI$U&{LX(t&dc@+25+OuB&U; zJdUzRu3Ps%*yvJ^ttXyg;UDqVCr~(79|&|UPmq_GBrH!dY{n_69@2c&p15{7&6R*%vf zwkiadde!4VGm(WF&svp`($n0&x6XObqtm$Zx7ej3xY}jSHw_a(&hWze1X+8<>4%e; zJN8FDUmhw^a|(NNg=;coJ>)oQ?r_G@^N{H1EwdLm!TSID9R1Im`z1aC7vfAZ7pxji z$SKK|YiWDZCcouaK;yB5Zft3i2LRzwWVSz{Z6HW}xZWQgWEP%SDwF*cq9Iscb4(EP zBsp{A_ijzw$8V6oxTLqJD!v=&DwjtF8E8xm>Svp?w%bkM5BsqlUOlVB-Kws1g7yzt z>B*N=L<&+UbNwzXNXC$}^NI$%{*~Hkg|#N2vQ*4NNMWa6s|`=8!5yJ$R8uFzL5J1> z1aUTlS=TCQ&&=F6!bBNOSg?wFH5btvXMZJmeLTato@nRe<;{ zDYjCc2XQVg|HUo)(JB>E(vR#Ni}}CKfIw4si$Ut3lwpNxy1va=??)4h-R}V=O1^)$ zKLM9yZW5~Gi=c)Aw!cZRWrf+ZI`jHh-#pt=RSU<*yffig{0*xtvqTQG&_?HRJ z!m`d>v+Pu}UT40_{Jd`P&s8k#m3h7VvKiY0BU!?C8n+Q!yr9nN8tV>WR7_ECwjuVn-+I8aL4YczW(Q7MwVZt@;q$nY zx`(}9M^1m6eLRn=eZyRrr9g{VTTk2_kd4ZqL|lAT#b_CgxH5*&`M2j#kjMss#jE1G z6Cl*H;$cA7^25R0&HUAGCKjmvCxNO7r97X||W_ zO1}3bebRMoa#;*Dm$?BG#Ynuo=~z-4Irg7kpz2r2FoTW-t->7nvqhGq1na%dRWA$F zSvn%U5b{>^)&-*y4iIZxJ!{>nuC&SN8M7Rp6~*6Zl_{**=h~%khR(^8OJ*6Z+Cz>i zor)?*Chj!@CTHVLCG6cTEM-@sch;U_1oV!loSRCmNXTaSkhGh;Hv;ARZxO z`o}2;bK18^ow9a2eb1Y>+vB@hy@1k3r&w+WGMf{M(mC<#$=!*QH1K*v(nD>=pvAF+&s0#9hgcT^0v~Ye~pEJmM_ixOz@KuL&O8$%}ef|0(6C6J)y2 zrEQ+3J>@lWY)>+{*ct2J%L`56rw|pUE9(3>S^1Y!uHrv&mL!0vJOVClka=N6nqbv? zBMj?_33@9aDeOi!^6yPwONHD};K`gck;SvPCbpoijwZQO?#xw+k)YxlrU#bTCd1PQ zxIKQ-md{GXjwFAytEgPh*>eGj*>eCD&smRR_o%SjsXfr)C%zUU4yq5Aovy!|M+3cj zvD`O=7XEy7;4~8Crx_hK!R8x*(H0TLnie%hJn=F)3s^!U;%-G~iJ86tC38a!V$l9-N6;Ht;@zc9Vw3#*c%9l2sr0#K}GA7-I zEeqpPk`2hGTDAFy1od9c2dFS8h(i{Yvzd@jR}gXt%x#kQ=pmA~k zi#X|ipv>T%)t$>Lg6PMnvI5d~Rx$+FM4Y=R+cZ5#908bp+zZ@$Ge;_YeNb?`62*yl9iM)0`s)3uYgqk6x~L_IY2+s>PiN)Pawe3K~Xp^3Q%&zOb~+Gg$qvj!w|+kwBUNukZD zG0o3k1|ml>Sf+F5W@YYqJ@fKo;;<3`vj$mOC(-*&sdYQNAn9P+P<~8!GE)+PJ)SO$ zUrBu!J~z`0MHpNlubq|qt{hVIoMu}N_j7&P;G}7ed%`}F(7p5+XvggF4}w5>Qlj<5 zi5uU+HsKmyb~dt;G>HweAen~%9kKp*V;hHo+B)#2fL<=c(5x5%c*?V!=J3ol$|$Vr zhG~c75*H~o?w06b6plHr;ckybkJP915!0gWAtLRDG2tVw!A{Yh1Tk@IRg-?o(!Qp1 z@tZaF+;63b?qK&qUT8PZZ=N9<2h?@#f3N&QC|mjbTWdxRR)Y9E+1dJnj&sUR6qiPPm@P zPVEpy;tJ7&i~flmLEU217T}EF{?cB6A^g}3GtEw*wjXn!_I6SICMu$4p|YMo{1jHI zL7*!|wsUu9nAle~@E}Bpu73ne!~okf$H~>H3VE~;3oBgLY#xHOd0F%O z9-ZG4HTYU}KKWy5AxvCzP0rh>XLGtE7hBbc$94N+NH^zC8WzKk5<=KB47}Ma5Lr4? zQapcSorise#oO{UeL2aGj{y@O?jr7`d?|Y z`LR?ONT^S8%|ohk0TXK>EZ<_1^vp;l_x25rrw3lm-DIwVBG31r%)Sf|;ap&(}C^0@?I; zt zdkeveG@TK1W&O3L*xoT)1q={BMw5W*G{27&WUw4qolhp=8D}LnU=>)lQ!R3>yfcM@ z`-(*WgS_A%h*t4~FW1x611o2EP+D@{4Df{{MDr;=8`E{AurUu!+Eg6jm6j|cDYSIQwi0T$# zfzFBb{Sm06)^QwfyWixvv7v^^%k9d|nXV5s8<{XVI%AYH9{gqwBi_jRsy>q95lDp=uvK~Z9H^*q|%{9Y)L&AQ#%tduC<7?eYH}N^? z>z*KL%OE^5A@yu4%i#@NnpSmm45&BQhR`Z-sC#E)z0DH?18zZvgGJv4kWIsBLZHYZFM*1`o*#H86v zSiC53uZphtHO>Xa@1pZ*JtLvmt4&L=+TM8_Kg_S`OTHe(a2qavI1d}}OwW>=b27F( z21GEZ-YY%qV3}Xk<{l=u1C+zeW{zuNyk0T-Qp9G@%60XUd-x6I&%x)$XM~KQZYbz- zwr(e+t%zl9y@0I0)|NKrCxmJo=VTLFVXSydDt|L7?)-*JEW9VEIGD;=842A4RQsNZ zj|ONieTbCvSJ2z zx!z}D5)U&iWtX3S{yrw!xV=C*)MOmeiK1voxv1v*Fs~wH!uJG-mRFJw$-lQhHf4vB zC=FSWfrU|Z7?PM>S&K!1BiEN!n-62qRY5Zy6b9A$@#A~>eBoalX&C)u-VTWwnf2kv zGco|FG3@%#;Wopz@pza=@Lud*7dY-YTOYinr=}fmC(q79^SpFKUqa8WxZG5j7j?{{T|wG zReS>i1t8! zKDeC^^NOhCOx|iLZ#`|d!`IF|XMF0D9Cvq# z5FMG_3QyPlD)=~S;%=TtjMSb9&|PH%GMO}ck5!DYHw$S6;-(!6SvPjX3#5r;v;iE_ zkmesMxNn_FGupDa-?EvcCQX^#_cWoU3x@Te0?WB#M%9GF!zez7rhAu2UP(-HN01ni ze$0POjkIHP_IF7l*~;2DIk*dROckHodp*p2w_Bdnplqr0sq%45jxX=%#Ggg3$_LsN zbTmPj;s2Ibgq3myqBlsf`CEZX`AnyQ_$mUJ(W|xGX!%F`c;DLr$)+{gU38D|4T)&V zZITU!Gq@C4@%7kJ3cTarCL?fT2Y;4f+8IW{PM@xepqXm*6K7ncYR~=r7uqsUdGeFo ztHQ`DGp+cQ$9!qBfGlfdb0@qSijg611>7}>|JQcCW;L5ZoOu969|tPA%nR28?qo?G z`Fw)u`(H-Z2yi-ijvO3AnScqdlKZlgK>z7K6>Umag3nWfEr!9~Q~&)SmdPB#lZHmv zj1C|2A@mnNx_UK)vARpd`y7R!S-JCdfY_wx*(q!ox}Tr?588G3v1_{iV~Z*JLpGAf zSW$QQ@I#w)s6UaeA842zFtf@VZy!R@)E*4n&ctYqxCDRJOAY;T-nq zfj^!4tm^P3hM#MMjITi>po09RNn>tA_`@R!&1&1)4aR+5;OFyJANFa;h^8X8fOFfO zEaJ0nUghahnaoI;Zb#o=hv0>9o6u?-2n0)zwEw`gJv)}?PY?yf=2i}8Kc7Ynb4Jml zz@qv@klHyYho5twgAVDlfyX5lYgrV+81+A_{XJNcwWrcpb5A^ALjwjMd(6+8wtDrD z0?V=z@*?WeZL%M-tRJdDKOav26q02QTr(mMcL=(ri!z%Q=l)=D|J5eO*jE>8TI24Y zfXPVQThz;q}-+dc$$Ei zlWe9>X7>DZ6d0>KZ2lpvt!qdAV~qC~=tV-(CV~sC`Gns%r3onWwpw?rOInPlz?0nq zC3{Zl4k)P4^j8i8_hV)F6CI~%<(1m2H2V92!pk1Uq!Whl3{+svx{D>$OsmN3%)=dd zS9*&Eq--ewAF&w$mzCb0l{IJy!}oj|rcvX(e8R*G)lapL_$ds{7ALD=6}Ps2swdB9 z7AJ2JAcB*|)8nc2j_?9Q%|~ahU%;e%7tsxgh6m6gua}Up=Jv6_7*_f$Y)dQPl;N;H z#qx^tSUqub02CcFweg7;!E<8uSKWMwTQ4*DbQ*g3!A*?53pW{Rl~=DO3EB7jXuu#Z zMQuz8N|vIfuQ*8fTqK<70XMn37zTyGpk~>E#cWF&U2aMkLjZn(t($)?@cCz*&M_HJ zWk?F>_f0LpI?H)sf3^B@xtmW)aR7v3p$}b?U#~S?UMr1j zuDq;CzuXunQs61^NPTZuYf&$Af_Ez)l+V!nu&(3nxx-qTA7N@`HE#nzg-VGay+pG$Hdlp%nPc>-zbN03zyv-fZ!Wn;bAeGw+ zAcjT&>$DJR1K@;NYl@+GjAs5-UJT_){KXMMnHx}1yilRK~=IZRCev7*$K(5L2b*gf%7I9=sayk)8Z+x;n zgIutUoXfQhn&ZbBp#NUiBfp7D$J3g6OG_Hw3(Xgjcb;@e6x6S zJ70MW4tc?3l|HNAR$kUiRMf_K%kM|;vmUYlBRpo=;?ee#YM>hYX^3Yhz<3f^+j16O zHViq3UjquUQPTx)g1e9!Jgj3-1qax!tfG3>)!7#*YqkZ)P2@uK=b_arH(s4`KcGUH+T|snORuUTOy|3Yl3Gw2sx3tU`PlsF z+;Aby?7RNwRJh+7iKzs>8!h{j>DKfv|B;-q@k*jF)#@Hv2=A{9dGbdjjXTW18Ig%78v=%r?PU+C>a>xVA1*1D$9ndN?TRlG{t zeVLPsmpR`=61;%JBZq_Yc&eh$1yL)8rC9h(R4hgZQbXcYp&JtJ0`g6AVNCI(?0f5= z#wSr!{wG*mUf0_z#_!jgW+4Qns3NhdQj^zz`-kZn?BT}o1cuOXU*e_IU1&?zZ}(A1 zXhRB&6}zP7T$as`(e0p*-t>MI3@tQi>F}9<5$)}#{|2AlWsZ(Qu~fFR>9#}G_GFhh zjnAhW2FLU5ZG?Y62dYSy9ec~Wm)W`|Jp^W!XId>2?u+u<$WScw9!6e|!*EaLNSCVu zMkm3~lfud@QJhcuT~xUqexzp4_tQs4!@lj*JjF9ri^DhtRi`VLA_JKmUvSPE(?3uW zes5uDAo1KU{@@LNDmwgvj8P>Ul;2B+4TD1qay`jgK!y(v*2uQa@41A!jZ#drQMFk7 z;nqLX%`6cy2J$Ica|)H_kAmIT`ds6C{ut|7!Vrjp@@sw5tRtHAu)v~}b*c$NY-u{M z-yOYs@Ka!vNx}6K;P7-7MMQcM)^4iXddnrIW6wM0i*bYDwZ%?-BucjECtM#Lw(?-R z(xui-?8A@AS57vg>V<)gm)!l$2dW1*;@;wvk?qLwD{>neu-v-MsD}qkN?Qgu7&7tL z0w%Xzo3sloC=W;EIWeY}aiEo>umub~nNzkH=DbHSXXzMw4qE*&ofid-(JyNBNU{2D z;FhpQK;dc`X5m_H2s3Yzjdy8=6_nW9?!GyZ-DQ5pV8!D&x^)@yyt$0aetb)KAN{BL zAPN(x?7jWgjT5VQ*iNKf+T{O0t#)+qmEU~5qdSPSqrm1zz`i4Kd%eGyMy+-?XQSW} z5VmQdo&*fS0EeuPfwdb*vnzH;Zi9$BMgVUAeu3rqTN%8G6>@r+0^!Y)e?q+T z8}SHP>@hsL6vCLepWW4O1H0_QbT#?LiU&9%F+!dTP`tVgcOc{A>H7fKk2fHCFU}$t zrc&UO;oPCL2hoK7!zZJ@GND_-=066Gw-`1PB<)t3x3Oo!oQD1IHq7TQe|XrBFqu@E zLG@9!IvSHY4C-IET*=b7des%HzDm{z3n_0mw31n@Ti0ZS1OxnwcG_@z)eRi4YWCk# zCVD{a0ebJiKK5)s=H&0#Td%rvy*4#J(IaVcycX9eO{lNQzJ)C6jWIG&bS3UlEVF1M zMlbZY)G%S<>aJR#g&{i6v$c6dtm4FVk-0HVEDgr7M)l`^q_vooV#) z7nb5+`-nB5YkC)%)aH}zh!q+n%Dk&|<|jIkyz$n*BB&MYraK+gV)T@VY?c*?hH1UD z)CIskBLh`Bj&*%M%<>tUgbUbh;m6v7G83PX8-#%rwd7>A=w$tbE0kIjBa;KB$TG33 zRT7nqBo~TqCY>)@0NpPM|1wGRD%FGhR(B1> zu3DS!fXTK*%$T^^i_~bqENCS+h@EA_C|ePp39zRL_)}woNvP3OT%5q5R-UE4eyEiP z8Yi2Q$Ml^_2A0qM=m_C_!LO+6l~oKI)FS4cpI&_hLg{fPFN&NifpJ9E>ScUf_v^=jV+6M); z=_eKg|BHV}$A*`*q38N*rc^Gta}U7v5F&NQrHUbyKg3Hd)F4PFfU`LfoSTZkmgPar z`st@!)FV_oE}_}n(P>5j@6(X1vhlp4{pH|dJ!3g^V#A6JVazPjIb{pkkR38Lf8}nH z_{tBMpNc>+_-JOs2sl`@b#9y4l59Va{F`{Q#~T*xUM&vqP!=cB&{LxLFV5Yus=sC( z5oTn}U9o`A{z58z%y1&ZLnXywQSsQmnSfX}ORatt10PX* zu*W41!(YH6kIcZVoJ%`za5CZVsFg&0Lb-vuB&MMR7D0O{W)A}zbm}9!%r#3L0x>Y3 zaYMSyTtqBlcUxdR1>GXj<@TqB~4 zIJEi{YC3ae!F659S5F?Ow_bPM1EsYEB6lpmWWVzEXrg1TVmm!07E63SepNI(=)~K* z@HrHvbMtD@_I2H3ooavZKu}3A&)PGEL`1|-ZU{T=p`7FMjkhuYCzaMJ9?}=pWr}im zIEvMf`YLiu9F;Y7PkBA|V;yaA4j-5@nHvsen>`xR7oBN!sqC!&=;0i!%6 zT5-nsQ|!-<$~c^yPVV`JWHLC)Vfv6_D@@W+oiGWTcFZk!aXv<-L-e~2++7{BHu~FI zsjVwAZ*-viz2hGsn*M8PS;%WX!038=-h|=B!e_i|B1%;{#JJ@V^2By$hkUqdUOe?v zWUmO*H-tsL74b^*AEHj?TF^`xr2VKoLV7XmuPp( zNcW!*Y1DVn&jEg1;AVDtCnVYaI^#^g)qgg5jM#QY=1y|L&ko!Ed-$J!`CE(+`RYB5z+f4qb=G31?X^|)sO-(ZIkvF)8)@=znBk^rIWNYy)s z(%rw-<^PabTOTLN5S?dTH(4@I)QtlIqK)mi*(;n4C@Ou+Pu+fwFf6h1+AbU2Z?Lc& zr6Kh$A4OLraRa7PlIuQj_vO)Xc&nmbd_d}pTJUnDV~<_O8Lwo#+S7UbH8wwvL=6o@ zN|?RH#4yp@s6s$Bg*$6%yXbTSpWf6$x{vFeC9(yx=G|6kCRg2MU>H>gb?&ll*ZYeb zC;FsNxW9^NKIR-^ND*vJTPE8CE|mK(2*O%aK?p?OdWxfz0wOythBOJ4Md}cDwqpzS zJW~y5-y21wp#}|l;wEF99}_etY~j%rky(tvK>fR%;wkE3J@bLI&(j;~A0nfVT7 zU<$JF75jriXInCx`feQZ=6%HXbbT(LOaG6BwJj?t6NI z9$bK%g&{e`;SH=ZJ+oLf5rP`{#Quz>5pP-D%3(Ou1v0tSm?3z`HbgFy7k7;iJui*^Eu5flr<~s&FQtka?m~|n=4JT>n*EJDbF~J1X z5a1LldnCY@;(TWPd1LDN3_UXx7@C*q2kl=se85LWy_iFWtTyW8g$+E-VqlyH8O~8S zE#%c5*SD%ib6<);F7pficN#w2)zfyRZ0{%vTkA0&B6+0}gaTP~dk}6x&h65eZld+` zh%%2j-%jc1?7Qs;&SeaQEASxFAy<0YM1UiA4-!Z)H@eBf@cma3$m&Y^;-Is zCtf|RoI)Q|EoZxM$QPCRI9GyiRAqGHFm5B_^qM^f7TW`YNcZGi;RZDj_CjT$d4jJi z2cPeyyF{VOJ7sf|rfn_)9J+kxkZ9@;;_mw$U%1{$kCW0brr^Mn)6DFEM%+rLBxX&=u5Ss;8m zDk}+pZ|f|E-6&4J&m5QO7reLZss$zqV5_NEYr};+J^tv@Nl`tp`Uj%I+0$xVo)o9~ zY*w=aI>S9nL;6Ggd}4lkBI%pZKw>kFk^P^p^46bFd>(BP)bBTN)3SaCf9rzK^P0)EFy3=35ZNvnWCnlF`9$eRL(7z}PNK zc$9-b+82p-#GX%V==2x&E(8j7R2}+?!=DnJsTdesw)^koUwbyFc+U*=*MI{OLX>5E z$X8R&Vm{rx=?-1_qX23cJ*oJjaAYqXr|;ZmU7iG_NTa*Y5s~kk`YA%U7VwU^gM0VR z4XAd-WLkTA&1sJ${Y+?2))G2K))RhgQUp8)Z!5~(&Y#-lTqZQ(|Jw2Ep`)Z;m>iw% zQ+;kC%P0kD7*`gYzMAliBQdwxA{2DsjCZL9;U9c0-U^PIjwDd1RSpTwGbpgNTvt*h*k-ohCe!RyLlsrQ{Jv19< zzbC)9YK4ahjwM-vR+yjnSht)-DuXrJa6A169~VFZ?fkpG#ge7<;7Zuh*5&0MH$Dn3 z!^+MTuK))4aoA{s^YI77R}=-i!k``h%V3?hY+e6u7=oqe223{rErJ>rgn}vF?X-DF z?E0E@|BokFa+Xeblr>h**K)_Gx5kMW&8@9oexT!7LVEZ%kI$l(%WC2FLW;!9uzMJ> zqSN*`A%kBLzDg|997K`jl|CQW4fUKO$eW%EuuE7@=#)|qq7>kYW<}^&emJw6`DpukA7-0*T zKau!2Bj@h!vk|P4*D&rG(0nfHC)=9Pfz2NO$c!#q;Bu5iuNiTwii3Ub)(y9xO#EkA5Gp?rHMr|)MLT(z-TsK03Zcevxj$iz?wVSs$ z%29QDYsFNZeZRTc8iy`jONSH&|HR~;y|l{q$a?iyHbg!@hqe`rW+J^IN1}#30uI>C&NpnVK&=yq})j9G~uX)dFUvtAv%PJ`& zki~yx&or_Mz_dgc-^D9mzdX(Qbs>-p+gB+3>vO1EH&O1s)*uK3_`g599>Vd*B&k@n zxZfRTa#gNp9S*=EkKXWrZN1SgbWSU-Cpc0HxM6E+tpG58L=7YM>f%d$xzTTa+J8q8U*OmiK@*mS!E>ivbT!i6FBvK!g5pp@k=DY;VHs zKv+HkSBdhC11%`AgI~>5aCOOLik@~pgY4B%`i-@+*C&5ECS5-!w2~FP2u-^WOdLOy zN?TyQ2!WX#3{tk2SM@~@c0pjDPtz?Jmf!LmS!y{;T5I_t2{14g99`?>jn1 zZbH+DVK}E{yH*TmF$R5^K27;QvKnN_IGk-J*o7BDVSb&sqj4tg zM}@);x^2nOjXqUlZ2VX8>K?~)=}KJic*5mNcDY2(QWyA+_)46 zwiND>b5a9*sN$`wbTUBN^8c*lll|&}OrQ~P|M1g9@o1%1cOo{#F5ytnBBX)$$sqPl(BR8Cv?rP1E;|Tmg4}UZtY(pzs_vMh&Cw%s zzj)lOGoTw&+AKo$Rx5|H29wbud#Pq8&=?6QuXwKI(0}EmrjOAfXZ$7`@Pfyk-mk^o z+@gQ?x7cx(t<|n}3GXPaQD;gVXM%q&{6&R}=E7*OJQ2piaLvHu6kEoU^*~XuT%Ky# z;d85vOqpYwC0@!=z&B4Qw4p4So>R#PW>8YA3m9!~K)>Pwgcy;?Gw;28Z=A!J()iAS zcIjKQ?K`x0pNAAGv382z)Ps>7*luXgGRdO1Oe;w2-g7t8@Ocrn@Ai8r=Q-1X7y~YM zMr&y05BoXYiO+{;Yr4xHXr8lMj1H)LjcJaRD@=`hFOu= z_xwO3`t;9tSS>4#e;ycUu2*M2L1mMn->e#l43w`h&(W(AMYb9Td-O7CKr!ni8#dq9vI>Y7RQs|2`glkVXGAFwQ75w+19X!5q=X0L2f?Xw&a1~Io+il z)nm;>ib@ChHHOgPY5y~7d3yz0l#&1Izlk+W46~YY1->Ir0%z2-0O;nn%GRZ?41?S; z(JF7^4O?__G2cy(X0ouchxg9q_0bZYyC6@Nup1ddvU|oQYYk$xW6xiuQDtiA8+2WmgQD%@DJogkD0Gbwgt2x*Pf@_0%-$EuZW31|Ct_zXQ0XOcHP_?RF6)H<1PPu-Ct42gny^cI1<9Nd- z3|5X(xd+@-4f1`eIi(OYvZn)HxQ^^HiWv<(PPJaSo78^9P7IET{gYDpvDX^OxvDA9 zT9V&yiX2}gO1&)Yj)N+o6QD=f3*J-IHRifIQr)$>O^4yJJbF*dW+ zo|V~yg>f5+YS(?mw79SvzWHcY zYV0^$;BpRq-JSnt4QB{Oz{ndu|EpkHkY406jBNXW{NG9%_Yzh^16_YzS}-ltk$HU4ZZ(u8(pm zpr$VqH8|Fj?5W)${7m}yY{Y4VqZbkbe_gvBmFJqJiRwRH6%$}-x1~&GpdpbP3x}-c z-OspuXRwSCAqzq%>?vAsO&IA;z7kW?Ee4>w&fwa5?B!doD9v>KJI81mZ%yY0v+0l%6PvBQ1goR)^f7IF4~I7kC7XLS zjgTB+c=_9zP!o3?@_5oO=prHTSn}mzD}T%!PCx(%eqQ?GHB8MPmu&x}u|>CxMyvUr z_Q977s^azez=#z;J-FU<=0oQ7&jIq9+Fo@>@?Y1Lhs2WGy}${K3!V2fFgH~t^WK4w zz)5k_fZvh8^}=s;w*Gb95B{!~rf~RLNe@zp+nTn!^Qt5_f_pr|9+Y;J{-irTS_t0> zwUkEMbxq!%b|zA9meWdh#}QlO+g3-EG)L-n@SwL$CQcEEkJ??0d4NEe-f+kq!Ym#rTSR<@UF7o9qhLt?$iMBC~*0{9SA z#Xo(yVH(Pd>H_B7^7(E+Lp9q=(k0+OywZ?$>~{=X$;2G6P_5qK-b#wk zF7Bzal_YCizr}~v6hCq78tzhgAZLrLeTCB;PbBUT>jky%=u?pksqTKKRy`ViJoC?8 zMj&AkD6Ik~ql1tDs8u~l&Zv5%Y_f)q+ElrT_zOuq)K{}eB=}lxno}{%;Tb2?UKsM4 zvz}1`LQyc-Rg}9=hNko9mSHG5t*AK{F?KSX2_EGFBGjzL?`P*Fi`45=ML6yP6^Dpf zR>iz%=wcC{0v`i1Ws7o>-fS+`$_r`_xY{BZK22FD_co?A2sB>j3dh(Wau6GB*I*@m z+Wc)Nrdt1=C4CwVBOby}%|CeFZ+VqhacFB1m!=(6Kj%pE92qKrhaz3Z3VHt+62Jd{nk3ku`Sm*6SffAgz23nMkn*Yx3st6%*Ae)`B zYuR?s9&2U42*r6LD6MXcF13hOQ-Cgpu!y6>`|!pFlNq(C52MjE!}YRCv%TU2t?}#g zZ6*KXPq0*@xh;t`Ivaxj{d4*(hV4cvrm4O~ls*8$WXUO0B!d^A*k>ID-AFk2)QqH*+aG82byu|A0 z#05MJX-C?_th4HC59@K>F+_szo-U}qfj@c8fF+i)^y9ut$hVWC^=P0Rl7-IrPLMST zTt65t&ti0T`^NAaRPZXhHA< zx?2T`u2T%Ob8ajEKAV6z7~&={ES7SfSWK)s&w}YUCaEeA%91GSBqDU2mMYAvOy`@lUE`}I)aU#qy@jfj_vMg*s$9Vu1ko66#R4X-pxK) zm!rISzp?%-3I@)D8BM6x14Y`D{2x5=eCpPy*0oPOMWDzqGAemNWcG2#u%~J<@GS^* zN_aaJt%>Gm(Q1>#YvZHHIqRNo9WEil-<3yO(w@~{8m>1GScAbdy`5$9nsRZ&$*z&- zsG3$?b$ck7E*+H%q|`GEb&Qa!R0;m={(Urxz?GD_5)mF@>P4ms$;KMC2#7BKIZz?O zbZNRK3p&AG>A^K2={hr2SJjvR63FaKT6TXkHARUNFW(CqkeYRy&}2WsR31Vl5wLdcg-k7m z?4mZRhpo2i;R}-8cBo7u22n5X&1spkf82fL037{&vA$kGana4$MA0Ce1L<0bz`-8^ zaExD3NFeFKk;`b;GV0a#>!ov51j&eQXU}vaE89#bxfQtL(0%@} z+)M%Bx*hAOoprpfJu}IJg_ak3!M&8C5m?{Vsq6K$V)e zA^WS7L|+9-@%rxZ5?a01_ePW7qlOglw80wx;f&_ynz#|!eqnNchOzcRB+i%*X&1D( zh~D|q2l6&tW!mf&edKY#!dggYYdva65QM!0uQNWcQ_m~9+bsgL#aPY(*Tx}(r0tS5 zeQT2Nuo1QPHc<@@AC+@gF&iRh+UaBkC}lP%&GX(yZAEIR5=ZYWOW7(Z?Q!~*pSizY z@`66FCZk`p0ddKjqdq_|KGrtJISMSz)KcVDZ@3}K03H1U0JJA6Yc6l3Qb~eX2npaa zIAe(9=Cp?K)dvqwk@H9|I9(hFDT>wSd>g`1mXDLCm_7;J;8u2gm}c59XD%C_dT)AC0cG4K)ww4YALHjq@3DIyB9@0{a$8R zC4HSdzOAj#N1o2mH%SmW=e(uP`oKR*X1sHNygz&9tm)YftQ3aywSy$jgfGhRIMkns z9jgP3zE>ZrN+yuD^dCA-)yog_ zV|Ib_&=k|`{&S`X(B951gGnqG5oMn4QJn7Kny#DfSc?%<^(UF_lq3l5vF4^g@-Pf8 zwDGD|TZ3pG4Ck?<{q*AW+b732U_;DSr5YIfg3$OdC4MN6dcTQ}%%Q+d)1=t!JVjDj zI73xsV?kUEX$?O*pf%5%dDcwb69Rn?yy~P8eV9t_wcB`lLs5~2f!13hI_|U2##;G~ z8W6hmnV6>=VWrgO6&4ZEQu$N*x2lrg;T#bh#iZIsC|Hew%f|+*;v5O9-kpB8!Bf83Nycl25R@+HW6yDS3%XArH>=b2C3hx9B(GHL6TbW zX&Qe81h3*YGw0FG*qz{XTH3A<*7m9el>NHC`TT-37v*(ZVWMXA7-%@ohHD~DRXU*h zZHz&zpoyRZMBeCqPuzcWvA!$_NhM5tUG^lb3sCrur?xX5+dfEm=nCugeoiNWuqK0~ z1}3%NsXk1~IkU~#zvJ(5mP7Dl+51KEOM$m>mv0A(mW_Z4GCYbTF7IGIRP~CkDfHJn z0vOf4+2{+j!NiJdblexhbB*UE4-%?ji6X)0oq!)BzaB*QW9%->Rj=ffT zyf{tD1Z&i$y1M@b|{_dMnon9VA03m1>z3-4F#GyQYGb3KGoi-w4RZbwM= z3d?lhh<=O#iG-57&g;MR^WwEie5}&WpH=usB!g@#s6E#E5u`c6ce3XwoQZiduCefu6&E~3LXUR|EH+*^L0FqnY z%M<`q)teG0c6(q6ttxyougLPGjLn`WFqXffXRH}MKsDfJh$Z14N7J+P1UzD0@IuS> zrO>(~oBJ^wAlqpSNp&@9;lD7A!vh&Ca)yBkfUz{+a@6SJN^3Q@*uF0@y`y@;n^Z!x zRYiWJtpH}$d}f2^B>A$c8Kfln$|u;G(P5O_Kkp*hb_oOR@*|EbFAHvN$J!(q)O}`-)j@i!|Yu{&me(l;7R6Q^$j#%ZOg@6} z4f+vBey%1m_b~3spm1R|lMCk~c|JSU$AZC>A#X$|p5xt`YOWv*L_O5SS5IixP@33j z4El<23lIb8f7$rw{@0xRfxO>tTI3z-1kg6-(TZBrY+D*lJ2$7+O+|+29W~<1bBQeD zC$9dmR{&y^71i6VMc^+vF=68;bG8FVH|l>1=HEE_f5P$9tKx-CiR{@5P1dn20{ZNZ zC<3Y-18OZ8MDdTyF4$`g<5f^T`hA93Y>xtrL(&sim(Gi!8m}3jG|84VEX-`ry!;vKEbO5HX7^RFZ~x@Z7Q znm6NO);Y_RWx5?He+V_MyrgcyYfnR}(l7k7WQJItqxX6_G!Jt1sk8;) z#I>0~xDnPcrHS$hoG(*9!cFb@lP1WnED!so=*yZbe?5L0tjPV-My_#Z!5`E16R&t_ z0=r{oVE)lvjD`)6VT3p9QSmQ;15U{t-Gq=%>Xc^km${ga{f_r|8ENwFKdLkHXz}=_ zoZK)0D{OoD1^n^`NG;%M2^Om!&MwytqdJytd-Goq7V+>g<*q;0c`M0p6W#m2Xxz6j z0eMYJAZxyUom0aO@g5$4&-=%WC>@6&-|OxK^DPH=ol<`f{0Jv!&%)z$$hie~vMt$1 zgn(dBr$Ab-zOR^5d;HG&5p;6I``*n%fnokz$;7_si031yAYD)`LAS z3piCd34#;d4X+G^Kk#re2q{RI8u}FB3{Jldpi88G zJTrR6feT*7QC1w`UuK^++-tPTTo%Y5dxd*i`~`uj5Bj1gDfaW?FTyCxQ&y;^8g9@t z+1p($*ONSH!2M)TJY!rU>nhJH;=tVVN7D z{FW1NUE9h$kj|eG zJnGW*^iq=Lff~63c|@%*=TIp6a?i>1S`II`APzskH~N77DcygMre@T!-JtN&^V6O6 z4P`X(eSg_mar7gg6A{q|0U}!&sz8qK#q+ea^57pu=k?n`v9SBuD&K((9WbKcly+ln zYv}v-7`3&G)c0U*o(~fNj)fUUqZ`%KiF`FIn_01QC`4qvGFS?RuojH~W;I8!M^a@@ z;^ytQKDGA!6OiqM!_GBe{yWU@viIcE0cM6$LmSezTo9RtZqE?3K#k~+LM{?Vo2->RQ%R)){&u^?N*;^Sk(|sfRr9r`how=~Ol`6l{{u28I@bw-L?LD3iWIY9_K z5_@*qUoUXMMGr_QAX{B*JO@^oPJZV*vcAr8Sz%IzBiZQGrmnBWq<`rjYV#&z|0dX4 zU~M~Ohr2vZ>wHP9BbEW(x0H{H>jaB;qF?tMatbaS9O>fgeyU&aSt#?n9iJA5A9q`i zqYpGJUGgKBO?|lc=+r!kp8R)D#D~$?>f`#()Tqpzra_LKrBTha-ud|Ms4K@lrY7Ns zLW`&(z2Kgkz8371!`O-ZL-}^|`Oov+TVs*v{%iA7qiOxq%0zZq(Jv(4b0LdtdY5va zy;%*Z<`#~QD0Uc!SIXjyz@GAVgSm1K@y1jtjI5KCzRMO|x8w@tfjogfn?ylB4q;Wm z(Ziyl0Z27NQ$-rT^$cD9ikNtXt}~hSFfDl{JIzpFV7*th($dNogszi)515ux8 ze+{0e92mmUh&y7Eq4_@aoICc%+>L%O!@jF~E4QywZ%Gto=dOhr-9(czY?@2-*G-fG z68g!9V!6NxgY}X>MgmVk=NFK7d#~Kq3~9UUClxXM9_md`f3KTHQ!rk%;4_L1%M5yk z8sCnz_f`(_WMxV0-6tA7R=n;UddCRO?w zlO6=1`!;lXo%L4I2kSbv(>U_?CCg{F%E6rC-$W!hxPKSY$G6fmt9OH37FSQSbZ!V|MKc{Ew7!8{I@cOd&b}6`vY6B~y-nmb zzkv_m7kOmvMFb_9>e712C>t7^mpM(06%KmWn(aH0fdaL7Gukui;s?GBs|^&1`%_|G z@)~gMA#G_eg#sPbW9wW8HP*6iufh61_@J{`PTYx}mNC5pNv?G5(Q{y3(W5U9GnQt| z>sbF5u<5}Gzy_pK`%xvP*Q_qdozs>w+u56uK7WtDb0ac*_1F#SIe-}N4q0|z+r5I` zo=9ug3LHH!&p`etqdJM~EeGW?U7g%-5Ij{3&g~oi>pY~As`cVI-9*jQ;SQL@GW@#@ z8Z7_CX8UXpf?b*=a$Ylz#pXSo2Vk;6mYE0`v)E#gP z66ufZzRxkn3f+8HooSrGS3|hAd_*AjzW{hKo)-B1dw2!or71>2| zny8usn$s~VHd=OQ7A94fs>cjSTzGgq@!G8|p8noH-;@Z4HgGX6;Im-_9H;+QIDf11 z6rP}@Q6o64y4(GwqAdXbQJ@;3{ia&of2+uJvV-M$qD{t>kf^$)8F){w&qR;knZo%M z$Gzj|@Qlk>o-wqldgIyRaW3BgTc4-x7V5Lpd*{&nwCsJ##=}+afRO&6>avJs8_^Cs z{%KFc@YFk)04b*uC_-*S<{U`zUTAxPXTqXqDN zv^wPlbp3-d|3kC%bKNT|$ZOt(b?@nH8jjTgHe0zzbvLB&h~bX&uPxMSLEfAMKDI$j zZCP5UK>PKE-i&KRny6ii(s^YAEqulq#Xz7a?a z86-`#_rPrz?gvVU|JkV{7mtZ`bFM+#K}BEfD6mK5;O>PQw0>6wTu7dlR(SD5Yo2~f zRCyVg&Xn>x*MRSj7^nfC{}o&K4CWy{OU0OU?^mHNev7~5p_N|UJ=e1dT3g-cq4;SJ zd^WA_brisy=!O#yc@+9z-~u;Byb~-uLi(QAEjIUR(tVk!b}Agfded632CswKE2#f`pQMcF)D!!X*tSz#aD{JzCsej#q=WVSM64+wGd z5qNwt&_QteHbp~wBKes*6nxGS4eg@}xzW&89aiMvr8PrXI&d{CjCtT+AQ!nz!GK<4*{;8eOmcF1a-#cJmH$~;Q1qsAgpBJK zJ*XM~G~G}RfVvPFxOqt^21hgFV@;*dxwjS{)Uib9nIps%Ji=}&V#^(tmiU;Ac~*7_ z70U2d1`#{IKPd_}!2iHJY@Z`C7-Kk_57sC8<~xX-@v9`145B3tV#xvxJ?a?e3AnK` zpZ%QX)z3Jw@2JrAj$Ad`6u?ee*Wch-yZux%SXiyl738lEuiJcTTroH0{we-}U(|4S zKMPUZ=<72HJa8Ply2w+B3w)dsTUW1yOsuJS*s57>U)6D&P!_>%f9{8cGyPNUQ(jBp zm)rsyzRc!`i7v?spOOYeXqd$pa$Emgfg_LlKU$-<75gZ^NvkR;Oolp>ZaWX54VIMy z(}>jTs}~g-P^LfmbPEexpX*T4(9{yPr(WGwmQx!jh3Q8c*+8)&8?5CKpk9Y)w`WJ$o)yJf z@40mbe5oX3#gR!^7s9%Qeq8z_xx*B!nRMuXzl!PiS(r^LS?g*~GNkazC(r&n`kMBm z`ltubrb7jgjH_t*Bkc*%Sx8h5YilW?OnnhhM1FuIxTHAl6{CmJpW=*~`SiLY4@pcd z=y4q{+2h8tkEtr;#&P`(wZGE(sC6AGJ+7j2q_wwFwbLxohkc?Bau zi78pTuN62&JkCl-8z@h6)C>Mt#}3$b`6UNg-1aW-2ki*KYDE4YXivI-5Zv9N6;@=I z*ePrFpvU~L!yQ98V+dm-pv%#XeR8__JD?Ocw-u^TWi0*X6oWB2KuXr3;Cn^=F@1Rn z7u`YPBd_1-dfb2SAmtq}8pnSSaYz5|O%KL+Ra>2gGve?Yg7#b^vm)IB4z$VgfA41t zU=H+P1*^5f6WC)0DxucvD6>K^ZmRyru0L|kJ_ryuXdauSRb(og<-Ax zcF7v$A)D8iEE>K(Kgm@)!D`T_QQ)aj-3 zKZSsX^UAiEv)sp!Q1dQGGIH(KHcfwM=F?!RL%x$}cJyp-WaY9wa(PJe)c}Rdnimb=Nzx~9!}YF_5tKP0*LnT;0D&ePP)MKOJUV?xLj}s$#hBLyne!D*PGP;r!%%|; z9_z)FOT37r|FU3}il{ITT(Lw)&GzJ)vBVPk6^$Wj8-31Kx|=u< zk=(0j9rNc}fUBTN$G4`TTOa;bYk1T{G<(c%lb=TllMGtrPM&qX93OAht`|o+Hk9Ih zapO%goH{$O$C&1*2HeQZXc#bbV@yCTQHL+r)(tj6(U8b(CZwpJxeMI&d#gWe_^pO6 zAI7{s2RRNYI}R$ne2LvqBzv1fDZnhE9g9oGlA{d2>&&~kl2+i`zff+SDY*N1Hd#yE zg_3i_;KxepbLIf&mlRM1HBfYK$%ei5NEqFo5zN#CKPJQ0Fp9Jcjg z`^$L<=}v;1(usU@(7H{fkm9;dJdNua2^#dEYfWrCxB0{PY&KVVaXH+4)GSyiz3M$+GMIdoD$->Bn z*!s4#b}#=^RF=g>Uj=8(b0c%>&8vj#30Hn}vy4l%L{C?Q>I@@Nc}M=S_|r`@gWgvn z47h4j%mD?MBL)9?^y1~B5`Gl+^6D( zS3P@o0{Vdtm#>j681?h6iC&{zhXTfbDM2Pm|fD z=Z-lGOvmonnr8Zu=H2G=XI-=>0DM)^p)j3Dna#VlS1)gzM~ZYthkPM+g4p>VHU^(T zPsQJ|!i`%}80#jsMi@Ks^wPgoMX!R+%#uSJ0+VGViJ)-&V#E}elS{~9ARG+q$r0lg zcLF=p^8}IREsXT}eH)ti|1Unawit;$Hbs@&JD1tJQWq!v*5}|E)qDyZq{pulK7P1{V?zoX{P~q54{mtnj&Jq?nk_cU)~$vajd@ zjoCr-yo0eU)fvzbJ1q|VI!|Z;P@+WFsj28&o!zt=o*CQ>lMHFiEh;_fcX9X<2#U%e zqe-l>(e(sN;Bri@J{-*1Px9w2p*6#&7`9O-fw?jv;3ut5#2Jbq;LpsyK6!bfJwiri zSqM}1p2HHR^WX%NUJ3W`@56D*#U&0d<~D zK=bJuK^dq(fkb{BU@r(dw-e+gvF~U=g2V03fogdaYDL=Gw$t^&tbz)-nUF8NUrvJv z>n^%d)0i_X@=zX(+5nVFNc;Y3+#_jT%^X<*v45;;6b%piMTOb_EB-@=FPaK3$^TS` z;)r#b+2f{H5^Ve!6?OrbyPqrts)Aq!jpw{5)iAGMVn8f7PT6tKg3peM{Sg1ILzNQB zay2o8;VR*dB(o6sL#nK`oiCkCif?FuRr?)?`P7M;5%N_~_NUgNf@ztXgUztE4qGUT zlhFpZ*KCTZ;ipFL5A{Tk-q0dS!kUQF(z{P?7I|rOA$tC-W&p-jkq^r@2wFNxo;%Z` z5;3T*UJ6l6+_R@pM|fVSycjje2h$}gjYQ1*1UlWxCscrciBfj3#;NfFpQ19cwZg!r z9o2e5zhgf(Qol}2c^)gGGnd)jjX!K>>QokMV=jNJ_5xFqSNu}%%K&iW^tRawJB*)@ ze_BmM1(lTY7^<^4QoJY{!vuCBnu3JB{|+E^>ySKY5A(OKAp32i3_pE8i}=g2|JPNI zNf&G@m1~Ov$GK4MNntreASPt>v?NxgX9`Pvse9ahs}mj3;nic)rw{-9&o_Ug5R=(& zL8wqYoGaeFDN%CP{dLIW3@`A3tEbt4tL_%w@BB=wpLcvEN`)2WiqH5oaS>TKa+*?9$jXJaZtC~_+ZpSb;3uDTfTxX(KXoG#ZLK{R8taJM>egC8SwM_l5R9&F==1TMbS z%_SP%tdd;haL97KuL-P*OhkV92)pQX3b{;#nHgmK$@0BP&L_~CsJ}vxkAQIr$-;DN z9nVPg@MOjQQ5qpkvyn0~!~eCZH7t3wc|<=A`>DmXT^xx;Cm5ID+}4lws6C2~Z(cg6 zXp$_vS}0hm`TfN(sJ$l*nwC>75n9sn-x=3PJSiS^tR2neKDdML4|YG`nMm5x|B~qK z%)v=JPvydW7OhyYFR0$0lli_98yu}R-tcMlKDG8x{r?g!2BhaxBFCYrV^?|6=vMM4 zg3+=I9R4DM^4o4ef1dr4gg!t0uN2-vJJgCYi5n+I5MQ?@Hc4K@;f3(Hx~HCYU5_xz z19DXOP3s(7rT!QH8)?V5L+=Q61Z`sJQYJW*EW|yC=+4Bw%qW`x8}~{ z&m|)6U5zVNNX%=U?J*ZorpX?BL1x$gNT1KYeWg7q2>4ErxGGsET)%WNmE%b{ z?J+{;@kbKlXZNHH*W8?y=-x%D*OxD-8{`sMeQOA)x(U3DYIjdfWlYQXBCIvCb`ilq zmI6-(0oV$@d7)VGKgWJk$p2?j>O&tJ6es(Ka5+LOeL_{Cme98RJlgkOz?CaUj1-+~`F;G;UG{U?*l`}-1 zi1b)3{GGa^TL1LdZ{wsYNi*oc>eBTzwi=A~MRy`Z)#F_sWVDz%m2&mO1NJ$h8|d$( z_1$X`QCV}{K*)Ob*>kk&?t#Y6BjXtv8>~qXH@W*EOU8^Rd>V_z*qPPm!~y>eqb5$< zRMBo*X!|)i3v}%<*fnSUz`w1~Dqb3rT8GGw(40{;FvM?{ANi65dhZ8g#hdRRov{rn zkL|e2a!~~$KJ>fwvfY}^*kFqxbcuCNm}(DtQ5pWtkH0vm$j2jSRgkfG`tm13>T+Jr z`~_9`2z4H?TMj`LXmNqnC|itjsQr$H;6aDzTSFg0+Rk6fs%UsAU*#m7qP?ToZZg^W zvkkGWO33uW!T#AdQ2#M`aUYLS4)IUxjgRNr<6YbfMjL99z)BUaaj*K6)#_4^PmaOe##Q}MZ`s!W$?R9L4NwsiqtIk z#79IH_Kj@!GxbUS^5k#N6`J{6j*P-?*0IWPS@?h|%Z*i`Kx_WviuEbDXDlgT0q1!x zV?Y;Gn`dkvle54LCjnA{|9aR6aIE{5a6mwT-`Pf?)BcoBEmcj)ryb|vc2 zObkXjhe=<6ml3-f)w`5Krw?ysYNk`AgGYC56z_^q%_{ivknO|}U0#!&Zhbc5|MB#W z(Q$tN_xA*i)u6GPq_N$Yjn&w;ZKtvA#%^rew(SWg#yy|!?_U44=D|FiwXQSQIcLB3 ze(kmK;N^8fN;n>@N*sLuH_Wd3ukZ`lGbCNtaz6zN%lXDUN9GP;(a8CxgUHg`+BX#a zrc{7rKw@KOd#(Bh0!_)nX6-ePdI49&{oPC89$X4y)5h^(Um)_Mg&aAb^SM~-~}^C z@D6lNVe^U0ZGYUSPt&#=KZB9p^?gl+^OiGKB4>?zwyiOQ3fp0~vVDX@~ae(yq^kD|Fqy_%Mx<@RAf@XE+fr>3GR z3Za@Stls@~4$oXpjV<#TWA1b=b#XnYrv9pGd`MR+Uo^z$CKL!^RGhbrRRZrF^*cO2 znNC%)#Hw4!{CeUmscL8K-ej%%z7vrIcF14Lm~w8#kZbWa$3&nr`$Nf&@e#dTH2igx^o?YusUn@GhYgA+e%(ge5V$tp+I>9JHazWx{&$X zm3_)5IRq^`uI`B+&c6j#CHURAkt|!8AjhS8^Y(wLp}D-C-7hl;E3!*0W|eZ;l4r-R zZw+6nuy4Q2X6w0#NgZNAlQ%D9KsD}0n0>=m2A2c~E zjn6zbsCLRUrisNbFS!m5HkfOYYK)9i!(w3Vhz=uVC_x6tVzBpBy*J+6pvZPXwtS^| z^Mf9YJ*7I9%rg<)LFou?_34reU8dC5Yo77CQM5h9Rk5^|s#Hd%Boe@*_)L!zNUOm~ z+p*lX-3`Zukx5dQ-m{0=)5O@>y*t%v>kq1v7FXIoAp9Pc(|L}CxeF&u`K(h9+0Ad! zX7)dKL0|gVf0Q4UW?*0)>@`(y?KdvclY5{<#t%K@_H0W@O4FD4*xaSde#nfD>A%a{BSJb3*@b zp=&skm6=`vPjI>Bu@`clJ0w`qkOh#P)W1POf+D@VCVOOl+bTM==r(@TZEY8gC0^L( z^C<+OV}WS3c)B6ms`~J{-zCKP%`-P)X(RF3Al5vJe4@}zKB}04{F>qRZ~W1Bo70&yz3#- zAN-YnZI{3KpDY^Qswz~||2{K8#j9uzpjiXCVWhTzBVzkqWj;GuN?ev;={jia*c%qC z7nSE={7$f36H&O{an{{cD}nispgoqBkUux1Cm$QEQ<0g^xYL;9ltS?M$lb z`#34kQG2QYrQ=_djztb9JWX%4U0U5l^ngZqy1P5NjKZ z4NIaGxTjY;jD>o*K4h7y#t{dto=*vV1%d(Q<`!=(3eJ9uXWq8NlSeERWA_4GA4Q#* zihuQLsC^d)`r0&rj6-!m%b3J-QaJuu+xZ<2q1T3)8R#xq^cb?1@5 zFmotTYNyGg6Evu&0C)(e69C49+dxth3u`QbeYvYg`~!Ao25-X`#PZJsGn)XZO|H*) zG@o~Ex+x8wooAECX3cro;oC~M9+~Ei!U7M0p0YVd18H0pIYoJTLN_AJMIM7^BCU|V zR$xn2Brg$)+(HV<7ez7tcrSNaihXP2N%iw{^d_H&g`%eZ%HTUdxWKq7!3Cye-zDtE z8sXfBa+r!DW6YWKw7g&9FS*EdPxY8r$Phtt(AFsu$K`?+`D6i{TmzQ~`AWm#-8LcK zfOk`cDJmEaieQ-nDHPxVOLD^C2^<*{-Oa0aoMg9Y9Op)~pJ{t~#n9M`-o%G2Vs`jPK?`GLzUt?6@LZ^^=S{6+Yh~|sz5#inAtrnZ z{L2H7xadFkU9BUoqJ8;gnlsi`HhWju%D|4b|xQg}|=0&->jmGAZA?R_r=q zpG6*^JuY(h_FL(?yvbZwh{D%p5kL0}pvQfMD)-{~GWcp2G7eixE0X3s? z{9vwVSttD0eOTL@vq60f{(nENNF3Y_4BR5_lq zY|tC7QF_^=LR|X>cfm6{TM)cCUXhyo5Nj&kf%bg+Z#X}rPex87s|o}c z_h7S}+BHkckcLxQ1hZAjzfoGuZ6%DPt&S*Fx&vdD06|n*WhYZQAe$hNPIIU1qUWdQ zYL0U^VX{go%F7n~EHvhVxZ}2odfAu{Igw1t>N;O-qwD(hqOEaB_anmTJy-#|ZZFeB zt?09XXqa_w3SL0}vYL|l8-|IcqGa@34dHU`rOP{E#zZ5hVMN0v0CfSqJM*5$3M$Q6 z>5L)N%*lb9yvN=?3Mn)gZI7xh(lie#s3P;=y zC;h{g!Ybe(;H#P2?!7p?q&r9=ZkX)IVrTR~bbj7xsI-h3uWJ6s4a#o2oH}bF=U|)& zITO9|`^sMfC>nOif2=fK;ak$S+ZFWmhq}Y{FaK0c2@TQ69VWSG8NbAZm7qbVAC(g5 zW4F);k<3pFP5MjeN@TsyQwbSY#h{9wlE-jF+unc=;t9K~zgvlyU5 zII;MhZzCwi_Oj$KtUof@(zx)QN*kAD_^VMXM!JEd*?9f}CEP`@oMJN&&a?D%xU_UB_r zOL{o93A3oF5GHqI+BZ(98Vf7d=-#wXmHAcL94DsSc>9jxmc56&j>~VQqRM>tMifh9 z6r(&uLz)lNocNyLoI+8Ym%5&2kb84W=?N-3LCpqB@+K$qU6wy+_;du7Z89~!dW!o^ zBhybZRQ$en9h^G5gG` zcbP^JwDz+==iSs9^BU^&EcFpwkF)EZ zRYGOU-C>X}oyb6wC`o2Q0X)haCNE?%f2(_}qU7L>{4|Gqa5*wPN&m*4eomW~q|=b{ zr_B0%k;#|iQDwd*Xb-tP(XsoS-r}9~=6mHyS@c!`uX?i0hiLWsdE(WP9k^ma>4PzR zUvF<;4`eJ#dslx5(Nj^q)KTm|nBTx6@BeqCfb znsE@?qL;h!FGHC%-2Lh)GpiiPfJ;g4-NWjaI-oZ~F_O>k*o?01zoP0Uk>x~vSH&op zlev(K{0ds-%>2#(__Ign@m{f<5h1&`%$QCK$_0H1bMkTRxL{dnklwq3{2=p;GPjZ- z8s8WySe@`uOujQ_1;5#65nny@#6lz znzlUD!FEujh3;3segPdfx{gjnV#bRK@V_2BjRaA7CdTZ|F+%x!-*_AN-ngF+yNND-nEvFdPa0`g5~_(&=7?H2~J~_}JzBKJ4W-%yT>%U&ox-IZ?MOCmD^r z6Qs!5hBIJZx&0YHv>x`gl_lkOb>!)|OUZYWaP+kW_Dxw*kypIalm?SG`>GT8^Y-W? ztXvrP*?46cgHQSEPYhAbjwUyoOUwQV(Hu>>H`{+1(V2yeX~vYy`L2)@{6WsfV+PEnh<<%NP>pc z+%ne?Sw#6vOt{LVM}I~wx*?K(GYqV{TTc_}M1FvXjMHz({EG-G3yhpk>CfL(=E%Qi zj5dDR=GbBmb`x^B)b(>!5&8N$x<04eu~z<8MQXR1(7~bgLdtj8v9jzhSi)M(seFon z&s>4*zZB99f&j$zY2pDYxd5>fhWRi@|Jh%IEZ`=3II{-D` z8q%(G7TA(h+qKRnAEx1ndbLuiJM8&B$1HO>I91_>ft$wseS^(7hTF&^hp8kgzD>yw zGQzGKG8iEn8KxOASS;#*X~zlq*CTfub=K6CsSv{YoNxPP|7F3=sOHhApJd;C%`z_OOFYS9CV7hppeUPPoOqjDd!5lX(WZ=^H`W=wmIF?4@8aY7iw_% zIsJ}O{<~^tvBt{8{>OoP;-a$(8bWZ8pOJ9AQE|RDDGXOY(MAe0iE%_;wdO^xuA0l! zsz66$Es<}0GvmGFZIzlN;%?5>}vIQ5YDLxnc2;0v3+d9 zQtU(Z&YX02YGu}uSo~w*z6m-?sraT0d(WxMxs=w@ zByFK+DJ>!ulW$Hkkff9?`9SqNT*L*5!~dD}!iM!n8}BXF6Wuzy;AdYoc92ks zml)DtAf`y|3T;z~>YDP*Dy&s}Ck&rdX{@C*pNjEqQ&Iw1h)wwKW|NQVJJ&bJNkhFH zjWgUdqKx};FTb_KfEs`Q{hxtvFT6%i+(H z^c#?T{lny1%~C8#vmm4STwc&JVi3^rjAh@d2Pta^Dr6DSCAY~GQfbVvD&A+K$K|!L zHwn_>lACZW|D(k}&A(6-D}hzY_?fYN*{NqD6}rsHa8Qyrn4C+{x6lzcpS`KB?7UTL zabeB9kt6*>SBbzIQg5nM{H>z12Gug=U`p_J6VJ9Eq^6eK05R!OV>B&)k^Ae`*XJcL z-y$CE6*_gkUFRX3+6W0-@FuMR|;zQ}kf%VnjOWB*d z&nTQz)aG;L?rapRb|~ed!)s(s{@GRvoK}HNqBYN>*)vC}jCP|RSRRuus~&Ld(mtnM zD;>RH=fHSsol(yX&U(+ZPj~qx3y~Xl2*a6EEogzTf;a0&)#0HO?(lb=j5AX!n+p%; z@*w*f(h^^Wb$dlv@nbPdGOa>vr9}19bGe^T3iFo4f~6XTlP~U|WZ9uN*|Nf?B`RPE zX$9-S&hgd@_RbV~yXi7tvhSYX``zy^g?`qdyY&y^hAdQ7`aKT~W*16&JU=gR(8U~> zlQ@cO${3=y8~NEV(pmc0`Qo|%i{RmgExdw8=*T;+UJf>XxQ;Wq*14tGYclc~?IJcU z6R;i}NS8he>t}w-`+R76VOgwC3W56BZdu|$kNT&L1a$Ifp39xMTZ~$j~4ik@ebY&odX+gMA z4-|m#zsJ>sd51q%yvziC*;S-vk1+SAtzP3Q{PO7eFS6KjzyKIpx4?o(sA}hLdfgX?(y9fcRtHTtSNPALlHiChPpRp;GN7yY75wUvCd{`CV<~o zE#W+%RPWS8w7stBtp{7fzg;0NvfQrR^$T@N)>ta$ktgtp$NUXgRfHRw+xV6N9|Z~+ z;Iovr5#Xhvu0DKTFrDCiZZ&NDEUga)0qgj47IH&n;Z@NqAGxENaL}4o%nK99vUs8`Ya z4z_df(IsQG$^`KD1Jcn@RH+m^sq~T8*kQ(#F=4n@gO#-m0;j!>Ir~9=!SJSczUS~F>XO+(_exmd@GFJ+ zjG}J#j1<>xo{^9vt^br9(aYYa-vl5h8x1cYuneaZd?^94YTn66^Uz z&wgt6nQ0g}X~m^`CbI)t!e@`4eL2QG*YiKU0UkOe{AAYZQ!I4neadH7jUQZhAqClh zlXdJ2l#-!d3L>8d_gyMOH-?4)MG27!bKd8fWq+^t022DXpJMN2duJVK3>bV-+HrPEc2E%-GbUK#caxBNnMAV0%7J` zTBpRz=y;$rG_$@qiRO!bxje~m>_y*DlG=9EachrVb8JpdRHi_nyVAyR9Kh_7u#gBp zmnyDOtiA9TeqY@hawI8TAnu=XN$5sN0A^R^12(E-PXwm%`YwV8TLqjk9D4l#zQ~fKN zo@oZmwEJ=ooj+8rfsGHabeuk6w;C8U*sG!PqeNn0Ym@{-Hzf^-RH%n@ZCwcQmHv>Ad?w;NJ z6&#+l1h2np?vr%>{-`JZ9Y0WsgxTdhw4v_2+=aZ3Vsoy4Um69VUQ9wTI8c0!Wlp`r z=*NNU;4ch98!?}Z(q3v%)&3fQ?ePA3VkZo|w!)7v?aUjJyf z1LW`Ny9h%Zo)4+!rb6tvpH3=^b-HBlQKMO$jnXeQ%xl45MwD%|ZB1y{PkOnN6&E{D z%rbuM=hA3hgviyz5G;gvgoIZ)kPA36?8&+FK+QSK z%-y5Q>$Mn#V3=O(5I{2bq&_jw{89kJJXI9gnq=m@4y*$};lR~oe|_1?RkhGk!Qg_c zNblP;5I_Z7&x!YlJ^;9X_}@eVkKgJe^^3Ja+jJ32Y)?PDYWxx}o1ti_@oVco2!A-+ zB;Bx7sLXTSDc6ppX8KW+TvX)ML`cRko7O@&C-@xtTfOPhZ-f5`G^O&~G*v6R(pS!4 z?OR{P_a5jMFOgM;hXdDBb?FAV<6h=x)D=yQBE0C7&r|X6OHl_cD~JKChnas6t=w%k}zJh-;k1R--Byb?!3)_SqOO7S^))W3h%9 zbhh4@Bo6Znk(8KU(M4fpAzsyeV^x-qga45b2DeLyYAe4F>F0W@CiZd4}9wEiM$uX!)8*6G^M7^%1GO`PP;Z zFExPny)+awPc$Op(|C4PISgQ>tEX36go%dv5(XxF@+X106zw2L{M&okd%^H$bL@`~ zhB=F7`nI#M$_cw$BcHM}aCKxYYTa-trGtu6D(qQixd-4|dLYFU2`{VZ)WlRw<6;C< zcFb9Uj~xnN+4mw-4?+J~2#?OWx67!!%P7Ns3*ZD;4$j zHUqW{ZR{dYwG=r|2N%Q+$f%RmM@P9m42hma^zS89E3f-TbG>Wj&z+WbIf(D)^h~VE&cIb2%`b`u1qq;+j&! zHhjlfsP>ZH=ZoP-VT2-Z%)}jM?3>;o16FNqB|o*vI(vSu=%fXv>bY{WUA+aAC55W8{l8Hr!2=(mI5=zdVX9rz`b z`JI;EnCAR7h;@0P-flQR?`q+r%V>V3TVQun*8lHbLz&OgL|+A@nd8zBzTjQ~P88pvG+U%7-51>O$FQ zOb$=f|C&S_-8E~HX^q*&q&7nsHX`#v)mNc7DAIswEk`ArawN=NWbAX-x;g?$DYg}ad(s2D9h-B-XDx2Cdj~bg`7UCL#@EssL$(Qs8 z;%{8ixJ8JVbio=Zp-RlnbpR8Xzx)Se){kO8WyFru*y+O@qNSJd(FkS) zxs4+Uenf4gm! zTkqNph#!g;(Otz_bP`R;DUbL(Kj!H^)K#gwyZ3yr4DsE^wGRFK#2RvDz(AAUEp)){ zbW@*_GPf31IegZ=nmf0Ctx3!)~ zSI_`e%;L0ei)}B*$1@h8b3Qf6N~LEOeSI2|5_aeNxesT*P|QD_-c1$L7$_IEFXI0z za=Me?M_c_w!h(V+-`a*JC3`^qoN|4AsvXOfLQvXLvsu#11!uz^VkMu5I3%85UiQ`8NAY!acI}#<|CP6@ z8WeSM^bppWSp>t($H1+|(L%AmWJl)H#yJIf(Rf`g;jbuN1_Q_T)_DW1+sMdL?;Ee- z@@`P3q}_%$>qOSIHo&`xx4pivUCjPe%bglfK*@g$(h_|Lp@Ot>prv%Htr}`D>B}f7HqzSWKBC_Q)E)`VRRL~?g(hP7FUZ6A$T=~{LA1w}1OP+X zReQa^uX~$}iuGL4)6MD6V4cU%I*0!Ndy0E{T#|Dqm6?j2&2eej8Jvji~I%I66mKJy1miMu^nx``x}tKko;*rYRfP&q^2a(~qEjZrRwnLXW^S^ZIJQ z{G_dOmO;=j0bNlNlP|P;@k2XTzg#nS4`R7H*mpyWOD*U7kXoZAr>(*k&d2g+SpKb; zrjK82WA_n_%c(xd& zaeOlGq(WHz#AZ{N`y%-zd+2OQFdxK+*nbG?^qN$mR;1DDs=NZS98LurGX81#OPbV1 z@T*s*LFx52zwA61PjoWBpqO*wvvL+b3arVe>%2y6`7W?M9NZ^13+NrBhhNzZsYy7uP|Wle zziAn@;04xj?rBuB*E@6;dJ42Y4Ea^97xHot(jMYIZKs4LPJCM;XO^%XB>aB`BeWhV zwHz79E7A5g8{--l8u5+wEYQ#)4e_#*&OxTFVj^X@rG?*$GU^@T)>w-JuUY!4rWO6& zPmdQwU3;_mc#rBwI&$(v2bou9WSh^J{F;-}hDA2HhZqY%1p6uGr8dzj%yQwTeqv5z z;~{V2-ts0UR*dY_sBx(oMXq}A#0SQ8P#ASn-XRnh}PFk z9q_$v!a8ISF3t#S9}Q!;!Xa_gsM+Go&9u0vXPyov3S_(_KRnKc742nctFB*TO`~V# z(Xw62O&IfMY_iJt-=`>H{rIalNjXBRFBfO&`@MEvX=VY-?3{tcK-%7|X%$nSr_-@<;fzm`3>&Pv-j?iFmtF4a}mnq9G`t{`UfV~a7Dy}Lxf2xhERX4(%-5#=V$t_fy}kvHO30YhE~61*n7737D=O*wCa-tPj5B`E0T<-? zfH6z2i+t_1->2uj$?yNQVNMM)awXYsndp}Xdt6I?zB&bRhePD#Ha+Y1JNX8#;*01W z?!~_x?6J(yr2uOqj0o8nrZDv^kSj<}cyJaU$K8;aYU~ct4%nw+opu^wx8?|%vD!k{ zl(Zj3*4{#ko6}^3jtAk$qN^{F1wRg+F>a>(j(~BkR*r;Cc%BkJH*cDXBc7e}8pw zR&#{@W~+VjM(&Cl)KOR_ch^^VvK@;9svjoYOO{IFPcI4~$=| zx%@A^`prmzO(6YctJYpn)@xkX=|4?RUnP0DuCv(}{!jqP8{Jc-M9;=67SfhogS)!{4r|QcBNCInIRC`oPIHed`-4k5H&Rc!;=D%B!IeK} z0%;>eNm{ebp4NFog&*3rFPh*}%@M?WZIv~K?`8%KFDu&Bdvr!mBW7ae!^f!gokE~! z{lXmzG0Pgn0;W~3?>bnN6#yN;gXvyd+-=|0{#+@)$tgW*omrMKLOt*li-R*A+uaxM zMqknvl>$ zYWWhmxYsqBxIf1T?nDn7%s0;|)3iZW%yDbXjaArlq%C1eOi5wp^Hpv(9#p5(TY3vr zW<+3WSC=LG_ApD5dyj59NunJ#Mdl@TK@+0$ok!72G zaFPx9$>3R04cQ0GmY1)iT|n-i{*w#8oaAmg*I`ZRG@MWS^w9yO*o?Fx(h06IABoz7 z@;Jt&#~mK&pfY$M_r_#Rhbo#NF|7-9nt(W~=m6#MZI@};b_{HxDu`=Y$+ zdmJ%X4-qZk*Hkg>xls-uweaG9rL67MRd0|8j{3qZQj^@%1Hkt-XR-Wuj0rBZVJ)|62;LEao|hRUvirP^BF zzElYh5(Nz~zat1vBbWWk3LW04KWZm|T`##RX3>m5e*X8nH*E4qz`g0ifG>na32$Om z=A+;AmN>V5F$WbRpo?|`^7Vzqgr(MmhLsPL?iif`{X(d#Nvszts8ypAi@1$~ck;a?zb?=&bO#KQ zBU5S%PKMTkG&M@Th@qviaC9G4kj2QGsqp-HBQn)V=J~4&A5DMJ($<1#48^!MGht1B zz2BUYC51R1w|zDPgS!kdr*^G$;-#U@XALi>{Ob>z&e}RW|0c`|AsK0nF;LroLL+?9 zKfNz+mX|4@TgnW)z7F`8;y*vJ6oYWQdG-VsCP$_R8k$(Zp`j&I1U#w;HY<)ZBbcWRNLPF((LLxZ4TS^`()(ijDx zM_(Ais5e~UoVy{NW*gyi>5%_GQ?F3QwPU`cD+UrO!|2t1!BB5c1YgtGvolauXq}#3 zrrw*^A~*cxxQbCMoOmfdMpygxV@Op5C(H<_RQJJD^nGW$uFN446m$GvxQ!36EBw7n z*uD*NCthunT>7!quc=kA>HNEhhR|Y@&N@anvg{c^jC}sL0;j`%xu?2Gr;fPcB}d@~ zIFrRH_}F1T~FanKAE4iMlrOpAGo)t5<+naDI%a8lXX66=(vJ^?_59k3@@{Oe~K-pf!?7NLiH`rkst$~{up1C$Y1GYI@ zF!ps`tyo)^H6zbjqm#_uH(=Hpz^K}P{C0o%Z4X?G!8{{q%gk2Z20XtF+je~ccxakH zisD@jUp$vQ9F0!}DYE}6vneYy!!y@kT8Gg0=t7CJ`1U90uM!nz#q!w21y$bM78!#F z8jeS^+Zywq47XdgvsA~qAtl%U2$Lm7wnI|f-?JW?Hk}Dxr7Ek%7onRN7xa%udKIPF zxzL0d*+obdEA`svnO;+YTkGU#Q=&Aq$7G^1$<+}ubb_2G5iz2b z4~pMbe!xVpI2ItVuSiyK$-!d`h5xo|3r?~v@8-=(<)_4Cw%Ue=ST=KT5^nFycinIG zAapM!I1=y99;v%wU_IoNtEdwH{?fAIsL7WL zo~VKff^e4(MGy){= zJt~hxt>^)Hq9E=f=6{*wc;3@i(*B}%`54RFE_;Pi5~Akr6IOw~PE1wQ%9I00-ke*~tNEBZgWwfO;<7qyKPJ!rm6W%@yFNR?scAK z{66#c`EPC|MpTBLZXp>HSZBYHz9%nI9QU_PyseLwK*cn7#Qr>*C4AAQ?OV3a%9(=^ z1|@k)fA&*tT9=^RNrOuT&CiRUC-cr2w)3wz1fR-WN_aWqzkF6$Y|yrQo1|XK%nK|( z=>~yAj|Gp1vp1Kv7rLrQnM&P5aK%Oj96fpSr|#i#mY)4@jd%WP6T0~~7Bw~HsGG*F zrc15K>AquH7o%!VKvY0X*bU{pH_jcziPgm^t^dWa94h?j@B`fuSre6`(FX^aRx7j=UgC?*$Tb_33N%Y3mu zvx?u%9#tc#Gl%SS?v?e({BLaZj&lj2`mP#L=SyHOkImj~i4RHx6iw>eWwWO+IaD-x zHS|RyT#rO;1bMR>HCnC&- zm8?YLT*4IJ1Nh8>WuRISxDEKsdsYQf`;*!as@>g^3Rp`V#eq=isDt@2!dv~?WBX=? zc_1C&PKWpq0~B#pcf`amiO3$IbPOn;M6>^nXHb@h6F;NvX`rerrbjbI`zwpke@n83 zf%amuagje~iS)tzT$rIS;umQ3bmb}a92ir9zIlZP`8NZ;P1H=n_c-nW)XZfxRdl2| zqtXTZo_mx~x6IKIH;XH08=E*92KmcmjaI$EfWNP3K#{M~*oJ9{#4E>~PU5y4roZ0) z&T2ypOUp+7%o?^RX7(c1+=OgMi#%1I9L(~YX@UE{iKjCwMgcbgm!unOyqEYI)#P;h}DiFIL(d`iPu+$nVJ_}P$l&KA#2{78mtATS+XB;n3)tP#Vfa^}vP zP#uQ9e}a0qnAC}Yr6en0YlQXnD?bA93$-zkeayVfr$K-eZj6^yAT8xTCTMAMl5BfE=SS+=t)T|R<;Pbep zABmvP^A-`4(V2msBE+c<1l-Rf*<$ne8JL=O0;owR8M}&8qH#w>OLxIU?S@XZ*yi}e z89miuKU@w9^;*w2X;<-ue;W=2$>d2}HPcS2!w}+!EY}d0Us+S?iNYE@z;?*ceDxS~ zD3>kAf6<&M>s0EU=XJgpLSC?tzgk_5>T-qkRSaxB7VR>z{ZG}?hta=hU{}L3s-y0F zu&_rL;9VO!c<$!VGYykE;W4Y~#%PE?F}<1K@He;^zUXG+^(^q8MAe>v3l(u}O2J)n z>V6XC4}d(|y(jySHTwVxhr~?QScU+iw*CjN#l=Krnr+j6u0f;$LKJs@R6sNn6=dGF z!ueC}4sd&74&np~gG7y4YjjRN*43SF-`{1rCmTK#M3?M0nY_ilzrBh5!xobXOIv`9 z9s421MZmWL-XU>Y({cWY9E`<{@0A*D1;4KbyKx<5B}wnRoVsJ9Yy`-F84qir{}r~i z7F(pUj3j;v9#|6JhJJH8XFZpx$l=M#TGvu`e$w5Zs{t zYai?LJZPl5TYqkk>skTzmKv6VEaRy3HDm(tVp%dHF>M_yT|^k5cLUISf5R87!M&R) z=+t=i=>K+O+W0zo#Ez5b(y^6p@WemMUu5xyb|CUK5?9}T2@9~FIxrb%gu4qS+-tOw zF}yxovTz<|9rnWNtLFF$R$3;>>&%E04rQwx}guGC5 z$Tk&|OyX|ZlxMY@PstABe}Z0SWcCq;^o}9KjsRkw3+TD%JZLW0(BULYbpNT#s8*)B z(xH3Lww*%k@zm7S=Q*~3`K|8aIK0w~rqo}|Sdwh@eBlN7NtudiLEbMrB@xgr(R_Rv z`EQj2xKOzl>5A=0DH|IF?XcSE*sU%e@4p^hUGf}wBDD*R?}6&E;a0IyF|5ANls2uI zBkwZWGPn;Q#0MYD+lVjy2oYXd(Ld1KC3UKQs6CmC!Yq0qps*}LP)7Ue1wMl>vp?DA44`ptSTw()j6oNkU94?Or&yR#3?~s+eaR z!P2>_V0&zoSy~~~Ea>F2Jwy%cIg8`_n zxc!KvHE#W zWi;vh`#-a>##Ss_s%vZ0BVvxu7nfF@3J{R8s%cyDfB}WcR0py5^%8T2HU>-0Q9Jj@ z?nk8$1p<&2$#4>#J#zjjLjXhGL&!tg>lZ)7+gr0a=ft*H~jo zDSc~`JN=aAS3}wGj6HVg1v0PDWMOfj#8nLA}>U42xf_6*_D@X>F zE4M~-%wW2B-Dmu863qY}{vEU+kp~1ML3?2D!LQssE&~gp2QixjA*`cLZ?d--WJCe|GdgLd@{;i&xp5+$v_(xwNQjmgy zh1H4fmRHuHPJ+f3dir5@%<2}Jkac$KsCOy;$izq-{vGW;_$lvu7m7?Ul21t$WDfm* zJe^fgTwNPx8+Qp1Ttje3aCZ%^!JXjl?(XjH4(Z_TZo##2cXyf2_s>jKUvWVligWtx z{qE;k>oaGnANU)uDm3Fy{ z0=pFGBM7l8|I9iI*wv8~&^LEk-%J2K_M+8AG`A{#{{^A!Ej zr$>B-KB4&aIBH~!<3 zHvJ1CbGq{9mCLGkGH_np8>Fb^-W?9`QZ(-}f z_@%bymDr;lp8MOm6w4Q>&E^=IMLA8C+%8LU1arB_SR;R!8IUl6DaB|K zxo8rTp{^$<^Q@?&(y|7hIYdWem?FRDB@VbW&P~J_s-!||G1EJvSb72=ZJz{gq&kJw z`S+XZ4F*ZA!zk?&`6u$_A$T%#P5Y!mG)A(3G1>0MKhP~x$~3ZIEy>p0R%C6o>`Kei z<@;$DpY`RYJ*>+*@=?)g^UjZm3c3{|p#T5PSCpSL^2ElJqtgjL$EF9W$*F^xRUdCM z!GD;flZ8t_U0g>MB`RGYonMmE=1BLit3Z`;UTLkN&L`4U){MrZ86&+9?iJiee$#+T zn+MI1`L6wvH(DrN1HLfi=I4f=Ue8y5yeyxiv?sEBg2Gr60_E`rUnoL}5s(rMYwl(b|1>^u zd)y!^KK-}X6t`aeo$>bIz>xiH9M?YbeP_&a?4=_05`o0vGv@X)&h$LGxKVM(Da%5h zX(iW`Do;-JtGjA1OTzm(;6EIZsdW;hsqW=;iu7i zeeUTga=sHIonF)FJOd9iaxuHeW$j8b1Efqas(5rCP;NZ(GSYL2EUnGDQ|Vs+OlVD- zwpYVr33ehow5!WLMBQr}a;G>7>1Z0;!0)LrD2rS zn+KF-_sg2X+Z(=Y&xu8D6zeK>)PZA?@9BVki$^>letTPRIlA-%nWp%^?(k?rKfi z;0SLcUXbOv*nhPmDC1A*{{{FR_j<{L}Vz>h8a=1R_rriks zvq8HPqh-E46u7tQhzKu$v@R_^CMv!2H^lJ=Q_MxLu;tWa?S1psil(K$bJW1&67{jd z!hO!w+C5(9yVtvx9@0r60Yrhismq7dN1oqrDk1rZ`ZO)vleg~coTQB2o^S-l;5V8_ zd7(`gEj9uUHmhUR)$j@dtWT~{8c_&(RUb-z%eolk;3y}MIZ??xw3h>8|CcJ#)}l#GK~@usQx<6+{+;5&lQaq1>vBM5wi@= z*N>B;GJpKqzxD{sL}@|$_h&&B(s+Yp91Vf<>*R^OMI z^4fRp%v}L3w$!tWi6Fc$+yc9ksM9TE+$_)s!N*PUK)$jg^^r=54}F6is~mF5qPJgf zF%Gy!9!P6`%nsjo;{OZZ${-i34H`4CrOJgUp(;Kf@q|H_4@#+fz0Q1Ctp+|*4!Coa zz}6g(Wc$LN|N8EJC^!35`YrY2Sk49EBXM=d*Twz0_M3ZB$Cs6R^RZZz)P=Ek;Mf~U z(aYTpjH!t~ZiP4Qs)ycAmgWQGX8$($Nvl|H_IZgr|J_9N;>%n$AwLfod`4dquoRz8 zB6cPIn(P&c2H27h$c26a?=s>W;lh`Sy$RJ0kP+cGYza5=5eSPAhnkAvSnym;#69Vz zmYZ`Jhl1QUxncAmME}L?%E?!E7Hv4RwZeQz>InQQQ|!}A!^xtekj_f;J?M-$2xdo5 z|JW|nwc`~VK?uvvs!4hXW6Mo)SGma;Qqm=~mON4Qq=cEDn1^i17gc{dc_TeBJ$T_k z0y|IuOY^IuTj%#zo1ZPW5RZ09pc|a%Gv-HSqr9=q*^%oH7tXJ(xaYM2QDkkq=L+=)$ zjUoTc`BGWu@>s*oGkZAh?7c29<&~u$0B4OsyI&!QHr*8}n)p;=JAuoo_2fi)$ppi# zEK#O?Rr>2aX;VJx;gr?BCQ%_hQl!9{8%IQ~fRo&w^dv__)3}M)Uwzw!eK=3#_C!D9 z4)NixMsr2TF=+AF>8~Zyf#lxv5BsrDnUlEdU{kb<8ZykfV$+EQY{42(&5F7gOwb15C{*t=bo$*(^78a&I z$M}DYBj=SSmiy9@OIh$L&(g$IIMz$D#^CVHzdxQq5+ox}I*nP=F4wjSae>Ns*2{Q6 z6|*kxV(#W7oRc##x1XCNxog|rWA+Hj`cb0VGRp%L?=#Lzyh4Ew6_c8O8XrM_9BHQ@4LFP>I8dL*9h zwN17kKHV~w_8lraifb`xCerq#%C)nijV5G?M^9O5sX!o6Y?e&;Ej4_W`|x=A$V1$DZP}r_LDB z=MbTD&FPR}HSKJDz9aefPvJS1INd^H4I(`%sn5rzJg(n-{quP#*5+AXYBC@s)B^EE z@iRvt{35*Z-;GlGVwqe?+^Z|mX$<-Ko_T4TQ_4yh&t|g}JhAi#f{IJPdO7)4!5CW7 z2<6z6%%7j=SB$NZPT;!u&ENCv3U>I1J{5c%N(QgffF7_YD3j*LX#&glfOUnWGW3c&B_)^Y4C92ryjU zH%`L4QC($*$;k&VNN?FK^u7sx^|+{8WnpA2PexlKC&RUfU&RA3M)nXoX`Cr6S>`7G zJzFjnWEBRam5(+e%F_XgGRE>z6mvfWH3+C%S?&)(tdq$L>0^=?Sm2{ZAATYI#rc|4 z6F&e2ei%|;*`B5my4kPxkLUx5)_iNaEn#Hg!{!R;ZW=2m2za)sQFf3J z9mF8^nPA5WG4`9PZFKj%pYBS1VwF$~f4L+({5~eS9zyYvt2?3|x`n+>F)<(=jCXw3A*F3_uVRF-H$}+~#cpXGO^yv+SbOM#k@=oTiw zMjFn4Qmo;nvoM{G+OM>VSMB{6l+Gsp9g2dz{{%(6FeEZ?h1m7k^RNN#)o0cBWJ1}8 z{9F|i^W2`;o`ah9sj9l;YI2g`{Fqhb;b!hvqaMz1hQxFg!K3esM~Qw3ZBrTj z8~NvKa^7?CUv|b^`Eh2Gjiqy7{p=nsI+p4e0({(BqSJa@y9QtvEPTGDvT&DbFD`kOs3tSF&u>uV8k_C3 zX>PS{qc(hI50Xb(|78Twq!-pLc9ik^VZ`wc2tve(K{67L@oH2}vj_K<#R-!T&vo06 zN|omp`ATlpN$9&*Bp@~^k|n%mW>F4iqzcnpSEpt7cForm_tQVuU0+Z-5Mp=w)@8uC zR9+w*z8pvL0V{D2Gnbp+>6-;?=MOq9a7@1|P2N%Ey-8+HqGO3h^N-xs7^eiec^(E> zD)=efgw^2$sEb+305FqxUsI%ZvdoWne&~imWSzt`9TiRCACKx8#hwRBdwUiT6bZkEj+gsG_v(N%cklXw^+y^u%y&ujN)(+{QBCCH}D`nmsc z@({NmVya!}nsULpHY5*O$hb4MOIxPibmtcN!AOUr#5vjWK)#}A2^WedJ7R5Um_vLNM;wu6twrQ_;dL_6yckz*Bn zT&T9h$I-~2&vg#@upCZi3cT?E6h=syE4#MV^v;a_#G*2iQ$>u-TC;g%?RBsHAv9NY z<*@1%Z0WJu#nB9;e2O@>s{SyM<&YyYefJ9MNq}x&@j4(DlpPtR=9}!AM+-W&&&~?l8bKuo`=eA_67o z@07(3o;{?bDcx^Wcu$PmqOjXFKcNn8f|Am*HiL1DdIeATy9Q{-&rI2GWVF^(jGluK zOZ*{*J4^cd}&Lq^_p$X!UJ6&yR=XPfbRG~vmE0?0AMWZu& zCpxb4l;T}hS%S*aI&=VB=?&uX6vAXOn59g%i&8w7s8z3|%wB&2#|*aTB$YiT{S*e{ z@4=WsDU1Ea$<&?9Gm%fb(q=`{N(o2A%%H$U^DZcGh{)DX%(=ZJL93GR7i}|Hj$hvI zCshBcLW~(LP`oQ!Ux(sfvdJ3>oB7za0+JRs0f!ea(U5&%ME8L|12QfhJtKw z@s<~bwOcfLjqZ9dbBQp|F>MrON*))w&wNbS>^AV&zwjwV<7}7^;eWke9#_A<*60Apsr&q z!$MC9Mez2Dman>`?~-I8+Q>zO#%Lv(Os3wuGDjyFRzTrGwlUJ&l2{8U7<842uH*Z( zAay$C!1qfSNYKJ`jWhLC$z!&7|KW3LgTl#J61zB8@7$SK>7vJ1lRuu`$_}R%J$5$E z#vK!9HT9I@hKIe+t4ZS^b2QAb{G1a}Qn>R$U?!YRUZV$?tsWBaLYCt}yxTa@oW7ZI zKx1cLo=c8cy{c@4GqkF6nMwn<+nqhe2IkXB>Ut`HyxlP;Qz7YFNiN@OqhMeIB0{@C zVesD`&liF)aNsJ@W?1e$>z)bVyaPNdhPrPj7XX#_0T&A7q=?etxczA#c%{ZM|0x?O zTJ^F#8O)*L1RP%{$7NHyT#5CA&%S=;H~UUnVm~7tA%r}%?9t6#R_{pnN8(G|Rou?N zwX{nwxCy8j&G{_PS%iZpV+p)nvYFY-EXS#okDUL?6C1yod&Z7_qQUEbyigu5ms6is z&cll{1_!6@__ zL$&@j3eZ!d`-6=>d^3ci`dpJV&x3}knnJ*XCN|-qL(awh_jOpg_C+v(BA&+?|kF5UU%>ePfF)rwfIBWofq zeSGlAE2O+o2ybZDV`IakYMouCM&3TD2mAw!c)%S?rOA+?Z{l^$8$Ixhz7tgRPMU#Jj223pkk?yn)dRm|G`-!*@bs zQ$!*KX41lGWYn9V8zaQ2EAnCi{{j93d#_!JdYF~U%ssRR{@|And#IdbPS^p^2Y5pM z%I+Pa&_D&H*8Rc(A+*gVN}icYERwojD+BLHDW3SJCMp0$955QCUO(sKtn$$9u~=Z``@5*7?QX!|`HoS%_Rrvb3`Pi~I`oi{?(K zbKzsVl7W|27Ft(F!Zxm$wJhy%d)sw$`}uT*^@-DDM}^I(nI1(g2W!cC4c>#ix*R0% zHZ2T)GMitrl4pWUo3ew4=sS24NPX20j zzo7^7wUCGRCuv%eQwCvA*`FK1Om4o+w(11aiba(nEfwa2u!;tbN{Rf9TOEAZ%o<&z zF-Jr{brFUz!Re6+^^a5B%l7+pf{6eAxp6Zfr5~sz_{Ru<>kO(=()Ta5tO{ON*k4QO zn~t>0j6hqh-yUIj&nu|~+Z}ByKQrZ~d%INKLIT1J8(UckR3TxlpVmjw?|V?H@$x)7 zLC|tWv&csJ-W#%83zeiVm~HZ&0^OL3*3L`aqQy^5)!b`&y~?pk53|aG%awMcmfM(41F@<;B{e@Mb%^L>q7b1Bw*KL znFn?ti=o%$hS;y}dKk(cTrdpwEUFCAma_2pgX_eI2} z7aU->y6XEzK7CN&HJF?2oqF0=2%cH@4`-Q;2jn8ua-{*ea|v%WB``aqlcCPd>DCqg z_|Mu4}3`D%bK6vZBT;xFN>$EHB=4XYZWEf0Vw);k zZdn?lK7$xvQKg`+?;x8{AoO2j)k7?OZ9S~57iKd*;B0c?EVDn@t5V-@pLB7^E|>`@ zsVz_mGDz<7*EK9CgbHSK4VY8UC=*DW=ef>!%_MrMDstbYq6e`=WJ6j9Qbhr9kcYw5%t-T(L zpDedr<&c9Z{k30i0L?GjDDZp^#{CATh=Zulz^J-4lr<vknN;v> zbC3{UqQ`3y7zaE+lS&dhFFLR#QVhZVs>fQu6z$Vpn~<>_n_bo^UNFM)!a=;2Anbvt zwfh#c&jP;CTw$Z38r@_MjXH%WX(c-goBVEr-Dn}6NZhykT+uzYtRx?QP(3of6gMCh z+V}U$oYuv&c}0%xU1?roHGv6%G`CHI62u-*;=IJ(mEGv)ERfTY(0uo4Ob~(&i*w$_ zYI*x>DFkV7lBZMj6gC2eEU+HOvE^IIl&UQ^pla`~pqSFyC#A8Icw+jh1Rtd~m+nx{ za)BThDr!ZC0H``EyH^y&W*3X%~D7m?4&fVRXEXr zl!)1ryd5VxMJ4mf*P}e4Zf{7c-Voz@4Oe8rH~5r7lPQD$y@}>qe%LX5qR&4-jZ+Mw zDc#)PnXomQ8)?Vh$(=HTw_?a~0Td8Ff zKk9hf%D!v+4s8Bo>2C7U?3FUec}hd68#G7&rsTgtA3k8I*E|BD1p*4#*@+5?;w#6_ zG%InM%&JwO;@ddY8M=BtM5w3fz?3j8i^^Pg;xU#j+2E;0!&MN&$AC_m)>V0O;VETIl0J?AtouCn7N!`+y=f@MRX$O`tm6`Neo1FZ5YIGt zI*?$AWY%RdjX&p~1RHT~Iws854s{H6O0mR{Lr1D=xm(UVm(#Zyf+_93TZP0xwy`mHJ$vRZeC zh;GwPUU%RB*5nOokH5n0~2d%-# zb_s^T?lRAqiUZN)q=+m?Lom*}AdXn&4F3wpW))CTBS2y!0MX!e>86*QHgYwz5iRHDZUw0_0!36qY`sb-}V(}KF zlP^IkiB(~|<16WGbw*^14*UqFa>Dt%`3)(MRGZ=Xyj^R{!vL>K@XW4NIpNVa^ll&3 zQtS*XjtdjY6ED80RM?9EZ(aR<>T{>n4f8WJaVK7JiNk(HHdk5bRYR9|f~(+*ydqSM zQCUn5T$LDH6?rIrGw*C%lL(9eWf?EZrCAN1aaj^VL2KLUH2;Xe1CatN(W+5>HT5D^ z!+tatXX+j4iKdpQ-y>4)^C*1jqUw&&^zzxE88`Nu!Z7P&OrX&Cm>cm^lP27%e2-i} z78WoIqH11>B@6;5W(OF`q)*YefVQ!Kw2FN>q_2|Gv-sY=8nseroCS)d1UUW+$T1opmPCPm zyxos4Vq9|>=czDsS-4wP|Mr~u8>EDP`G(M20=u0_hnOT@qh50rr&TVz;?n!^6 z2QsF%$vy^9ayeR zg)|(jo`rs4c;KUC7}!z{*vjlg1{<$r?eRyL0C58D@1pI|@&LvUtk3d!=1*fsl?0WC z6%ffEv<2y^Kak_a-xvXpons-Cf8Y+f<|0h)vFA{F8wklcP%h&;AI5Tk?#UVbcT^DZ zZ+}7XENV5`-r65dm3J?H`euE+MiV7iqE8qgZC98@yr(#;3!#A~crCURVH`H;)7PX2 z)S|oVOf?rFO)QosxP?0&9Pu<nE8 zpI*g2jZt+UyIgz7)qd-E#;9_=Ju#4OiGNUSd0LaeLA*FTKK0b2$OI#AICp-FV)(3V zVp}rMc;eUHeck}`voVq*KSI708CP{EE_xivf_&meTa!bbrOBqvrt%pGJdnGk0y<`I z2+?4PVk8hg-A%211M3@4T77p*5~s6c*df@@5{i5cT#*hT;AG_E@Vn{f7KcYOtjC3E zDBAC=a~j@%u0xcCJW+);+Bu^z5d5a;qrVT+tflr`F!2-c?^EJm)eTHTQ-w55FK0L6 z8`ndt5*bHf1@VNu+qiXHErBc(mDf?mGrDDLI zm45ke9RBZve-s&ya~w!=3v$s~?#V1n`7U;aX69G3<%$g7(Y<UwH{=`(oOf56KO^(pi;kx^cXs{-&(Or)&6Reh-oDCC!@d<+%?<>0t1 z&@Gz5@1hJ0wgGdmA1pWbCG|ovrVsHQ`}og?d3I-gq;tG&D#CmhB~$YF-gI`uQc=fU zfI)dpa@9aPnL1O>Z$!cqE$hC`aU>|vKRcq=k$>gfr9%trDzam-ms-IxDYRjt8f633 z7yLK2tx~dnucV58t54e2ifAu1r*xc!4Xw-1(yM9K`%S3y?i776=PBlE$h!Zq%9I3p zMDbw>VXc(L(gH626x#I4{I*tbb|wh@uW~s?*`+{d?x&VzM8C^(OQe|uBa;IO?IksB z6p`bAbxm-2Z#m@mPlnsltE@AHrH-TI;~VU|vYBht+O;w`1^$x-eMG@z_EBt!j%Y!} zK=+2?-s`o$LdT&MT3!JdOMew2r=0n{`&-jUn}~0_N~fi}^E5Y-f>q;A)>~MK^Q;js zloQRs#UZwbNcmVbyBO&82Ub{<)+2G97TJRx_P++c;iR;6?9Ut}C$|0eIbz5QO5GPH zp9wCsJ-KmzE(O|DFun;<9Srr0n&5BY3JhhvoGl%irjaZ}yz^cbBKI-$*_9J91@cid zz7&0ZSbh|{K@v^88oQ(S6QPHGvmtPAgAYGOb$p3Yuu>$t1UrALO}>K9@#>f;!lOYL zD10#8B}I5gM9*{_oN_!ND${jCZdD_$oqI*6=7Gf;(L26*T>^k6O|Q^HvY!GJD^x$w z3M9YXXeKVCyZ-JgyZBpX|Kp8YJzM3~f9#;gL9g?N4J?x?CSNHJ<#VtN3%x|xY?2x6 zSMdqm+&Z(cc|mP8!)}=qavW)Uw%{k7CYky(*Y2hF2v7{f*2Y&GWgfPM_d^NGY8UEX zh?iF&ugc~-viLeIPB5oy3_i7S6YmHU(r5FoC_t$1h}i5NYbSo+EpWfSxV-Ql{5*@Y z-T0(Hjy}9aV45Sdf_k0;+oI027lQVtA-1LhEMKQoMbPVRnJt_{F6-_Xi2w^0n0d+p z9fc$pVc%87$JP11WJ$ftxZxAr>M35X{`T(Xe@5Mk+$$0mGV(!XU8$9E`=ifB=_R!e zVKN5m+Q|J$|=Pn%001S2eW>>0u{i z9O{{no(w9d3fZ!J;3HRqm`Y_>&w&8=MW}gh!-72{L(Na**hGPK)Qx zLd?z2t`h$|^W%nK9`@v5ERnR682J9>w2NG~N*-Zde`k-Xf82(}$^phTV*tK=>iaE3|K3qpkcK1_x5#ju8oM-EgLhP<2S^Y_N06|l^*0d{9LJfJ zvw0);u3QHssaJf`NHvb>8IhYRq&byJgl)7bAjjgN!zn4?pgw0)c?%@J5)Z*ev;Y#FtQht>J*$t>tr8R18PED#VkRPq$l84%Et&79 zK4xL<6{P%+e?z-XmYwH*b=hBwJ)w_?&@fNLY%ABohe$cdKZmiD6MFA9#rz3@>*Gs1 zu%4*x_46hRw!hDC8FQ{HIbmdk@SI!sh2JxQx*EuL#l z3ShR&Tl4I$G(5c0$s6oOwHQzDNjZu0f2fr5E}U#<^f2z0KDtN5pd+9*LW71cTw3wM zu7*}q$*Irm8SzQ2k-Vg~fc6x{$;{x>_bp@S6Om<_L#Js8+Hkb0LTswC`H(Y~Di8O6 zB1QS|%DZKGf5Q4w{@!m!sM}yr)HRCcl?7ty)vQ~#Y{Al7GI1`SWSp^YQ~;s#ccZha9z(K)nLwX8GXFR^d^JhH*GO>kdyOUmrw8P9cs-EBdmKB+itSc zC)+98b~@9mdkTe9Z|t8JmD+Pe|2ijx2C^5)ke`6sTjkuHii43=ZKJ@OD!Y1R>6_m+h`RDFfblHx-)_lgJ9OVz9xj4r8IL}i5^fhwOS7$_aHR~Pg zs~j29nFS---2TE3ER%L*oP(leQoBb`GtIwfL%tn7K=Ez9WB)I;-2jX?X|4Dl97ZPGJ+_l8IQS85^bj*( z-wcr>VAHJI$XNq}AYlC`bIVXt6#Jyvw51r%rE9=?AWh4+*QP&Bixn7~+YGBCyT4DA z*(>Kff8S^{3skjb>C`!Ci;OEbF(Uh={>1Htzj?9SD_(I=vAEOylV?D;-7;9na&Oef zi=pP7Vv%ms&Eez;>R=j~$_I-R-~LWYB>K>pP8j(^B{(Si4$eU!jH~QX&R=1F9_UIwAcUbAvN0||*hZJ$MSn;vp(SFs`AQ@naQ z&aB$n_I?@|g^~s32reu!v7nAP3^2`5!uQ$ForK!!hWz`Ke6BcH*hu=KD;+R6xCk5_ zb(Btg47!W+i6xC8e3J&J&wQ3VE(X3G<}wW8vq_dy&@ z=BP<+@b(tp8(ROJhBimRu?PcPcvQXM^<;lVE=!T%eHm~4XL60Z&jKH6EHE)eCwmwTlP%z99H65%t-^O(m6O!-oqnNi6=|bIIVln@ zd3qXgg<=ll=JAg9Qx;t10FTg74$EJG>yqnJWNRAP6lux2B2`I288OLoC{IU-u~g7_ z_oHPFh!f$Tx;A#tbRcn1`Rb4@j#zAzzVi#zl-Y)lC~JDusxsI9;|6~*;VNHhBgKDi z3-(jL5MuortiVFfgGtUO-#e|miTWvaN`@TG)f><6wdV$I_Y65beSBt}z&~%6g9)4} z&8E8hUqd$-WAw>5)3x0HrU+6YMliR(VevS0o_>H81)sYgys79RMHaDScud|(!54Sb zv%|WIY5*&|ZhRC(TEkC2arOdpPXX5~4!Fdi1(P_MOOP5w8iUcKh5q2y8g93!v3o;) zhRxq30@g@rYZW5xs%VC^Ss2Gw{cM?L=I!77SoA;BCg3KEA-B=ahAwLjgtjSph&~r$ z8p7rqirY}ansWZXhRoG@D$w)L6B@AoG_gj+?Ap(%_uX}p;zi1aMBt3hnwV8bQmS_k zdQZ4#2^$&sxP%>3-68h1#37Xgt6;tC?>FFf?N81)r?*6`dJn0xeUlAa3q4=zFKmg7 z)~22>0m1m{jbQtLVIkmhlF!lY8XJ6XelTndcts$Nhst}BOv(%iPa?Y^ll`P$bkiEL zHY=%&*!ekdlwsIVY|Y6zZ-@}x&}fUmrmeE2_Z=*|58hQ`T^Y{FUNV4ak~1p#4xx2ZRg<{5bMR3UI+#fUu4+ZMoTu)5`*`_zu&xyY z?%VNr{?0#QW1{w1JnQkLumOFosdj{F5_efnhiK-tq}(qi`wmLTV%Adi11Yqx*DrL5 zLj$hmyAk-gK1%P2&B0LaGY#s^<-{cU!7<{ixcM1`*Xc?Gjyw4ZmVrm= zVH18s3B+bKR|=TQ1C>#1&=mN1m9@v!&#+;*@^1U9zQYsTCrS*_SHB9Y!h+aY_#>CGYAgVz9I5A@RY8sCP~?8TY#($j z`i=2`h!;(HghEMh2cL-%wZ8+N3WR42n19<~Lj&JN`)dGPv>P1&WNizp!thO?jL??I zl2RR`UXki2mptCM<&D^>k>_;mG}aq)>Rrw zA1UYYLU6}~V9XT!S=G93u3uXgziyc%X3K4*SrgJ3PF%iM?u2D9F_O#uxILJUj0Pw2 z&pqFMoPTi?4!}sBz!e{D4F_zbIom0$Xr-Y}CM8A}bC?-DwkWNxp^UD+@q%iSRNZyx zz$atoZ(AwX*Kd#;Jt+M@&Wzg1QLmO%Uow6dmvAtJI2~gTO(ij_om7?x06+iiz5#c- zw6}1oG>Xy~OE3qmdq0(B4o>`A??@5qGQVC=+&_KRZ$###aTO#by4IPS2MDaA1QIGH z$r;dYF8>+OL?KtzsvLay#TBexk~AFw-sr5j6a7fd8GT~@c2X$-Mhu2cvzlhzjr!}5 zFpSY-15^*)N(DFB7NCMBl(VI!;%u7S9BWIH7&HCA?- z9L%cM+*`VD1bZ>V4YL!YvkX#eAiGOJx{fW`oim zsL_NYalmBDmpYPSQ8g93#L`{RU)9X-8vx0iGyyzY6`ijASWpMRXP^H zVttWvV86}PI#8JU32j=)hPv_$mWkXA$5L8b+X z$L2|I>?BXA)45HIeRuLNKWjdWaul2y@;Cp?xWq+mGf>NPa8_a4eDGa|f0#$EZt0<8 zJ_`Rx-TQdz&zTs)G+L1nl=>N)A>izMH5|)c;W?VSVP1;Q8MZTqmTGQG)6ecJ)yD3R zyXA|YAJT(E&xLmk#Fju8@EEfr_0miluCO|X)9T{4^We*RrvR9AjG?#b(-=W_;Mwg& zpR~bixVgpbv zM*0+zbU;tifzh9NIIAGr}+mLy$il@^g`cm);u0e zn(vC;3zm)m@CDB0L!WT`jYm-Xga(t+HJ@eC=1ZOYmDn+0e+Oni7~tm9GU$8kN{hi+ zAusZAFG+}oC*B~QGaO+bI!?r-5^zuXV$q5CUJoIL`7s+&4)d17pmO1UFLY#GJI&dvqJ@2!49Ac86F55(b9D1bf_3Zbzlpz zpFai2h`4?O)YG0f_>omydV6{lTe^Ch-WZOO-Wn<^ z)GNv(H2W36KBjo7bH!-u{&g6c79q9`+1`zi@cG4+N&q??CY@)d*MspRVqQh;qlp-4h8vo)uHzK~&{?dGV&u_L1Dl77 z9WtkhT(0LlnqN8uHW?{Ff$^jq8V1gRmnpGe_?b5By3)M~9WEn-F2cr33VNlQ)c`bb z|3~{y!Aqg50E++*_71VT+-hY#!8Q;Y;una8F2}#&`D(%B&Qs>>xMgt0ob zG^Q$W=pTf>lxfZ>YuwI3SN!PHs(41!{A=IiYmkFEEK|lzcfPMcK5HID6MOrI6-k5E z#@Lam5WGdk#+|;jZHxXFPiWLDJkWUm4>uaMkhOGBwtu2iW%wEk^Hj8ZWog8&=Ta-N zJp6PMnritm{Z#0Kbw^|BqZ$2#jWbl-$nx_m5I+DP_JGl@|>wxVx*_2I(n( zADX-sn%obUqSxJk1}o_He9s9O9n0Y{N5;yov46N`+w@)~xVX?fwPYe8{Ntvz!eXE- z2*&lg?-sN@TVO0Y{_4J42^Unmy`GNy^?(r9(WHaexq3!wflhuElQqzmIhf5*+Bv3i z=6yjf>S~HF7(?9C-q!cpl31U9_Lg{;_~qnlMK0c%_|O@$DhK{MHF7*Px-*M+e92TRr!-zO%4l?d&=A1 z0eh}nW37|G>O)IzSH+qHXsO0^F5pOgnZ`9vx#2pZbFPnk`@Mi8xop}f!*MpOa^PiC z8)>*TSh%SU2`;moSd*W~D#hbB*RhaESxJJ!p#Y4xLj_g3w{zjv#S9P8SK?OR@*lDD zi&cAcS>Iiqe`={|ob>K(xS0I(g?uhA4J5*1V;i@uVA~_eSRpXEB6W?>JGZ8Ui93iD zaq)MOmSnH<$#4h-vuQt+Y^q!0+itZs=FA>jyPEh<^Bq6YkUhWiFQZO;06(|aOe~Vv zPWV`=ejk`&czT{Mj)_IZn4ll83MN$-2zSdx&O#{N}l z4yy={2-CaLhLzg=?O?z}?elpwl2BZ0Hspk(t0kJ=-$8bb>2Gx7nJY`g<72e)D7|Q$ zx`ags#Ql+|7$5$se;LGivKYRZb2haOL}e$UZ#qLvZ7;@;6^@M)DqeBM7LV$L z7$0SFKs$|2SFu;`p>*(@S!{!N5gpHniaW+r*cEqmwmH8&TskQRl#~s|m5Z&|C76mG zXDf@craB$KHt(}DJEAqsxDEPLt_hX7Ingt>5wA)eg z{8f<&b>q;L>{sB0elPT?+Or?gZStWIlRv?(EIeB<&8>Dlen@gy zm@nYZ1N>YHnX;g6fwd9NhfAHd+{$&Nf3puBw_u)q)wU+=3SOCy6uc#?Y~4|NE`Gq& zt0yzJ4I|c5AEFk$iN5?Tuf})02Iq$n1Eqj4scLSoVaBV7FkPQj51c$zWgE*=P)rcK zg%&1c5k42miH!acLOe@62+H(vauJXX>;3n>bA~6P%bCqsu+MU$*31q1kgllI<#X0f zRPD}%g99r-j%WaGdhXjx&6SEv7wWG`Q@+Yp*2D&(!KRfypcKu4Aux8TX-(on(a=P zTz$oCxkuqZU8xq$HC|DO{ee}ki`v!~5j`OW8O( zo$$G{>RS1`PVNSV1Ko~bZYuZL&d|a-kmyZZ4K>w&y1jVTS1Gt6jZpkWGmY(EX)_?-ly|M)3cc4dTnf3k+ z7ce^NjYSZ$YHNj@32#!-M?`yAe!_j{|2g?|x~kl)Y`s43sJ`nrS=8Vg?J)6c>4GFk z8t*trZ;{Ijfx0+*QzY<%ZmG*k*~5awSfw^KBpEuB+~rNKcvo7G4eTb9eG5CRyR~2^ z5@Fj56%CQt_@25R4!d=U@cH6Vw{gHurTi-)tG-PDdFd6jNw>Q zq+u%dl;*MDwzgMs)RI4C5ao}=xVl-@WspewX-mUS8Z&Qz5RO$ZK3lnQjlI!?h(7?#|xV zwjJc*4y?4CJ+R0x<3N?g`LkofjWKm0CK?ZQdQaKwYPi9V>8hOlXL?~ZEmYC@q~M0m z-jah5eyR@AJr|wxhKb-CJP}vCl=;X?W6?y6)g1Hwo;nyly~7vSF{T<@Re4mC>V=Rc zF!vxEh2IyWNOX0<^tsJfKaIm_seDQ^dar6uOy5*vI%oGA%wT@v%1j1T%Pi417T;m* zAvD;u>L#U2tpEsQ+P1Ex-Jqk$|3lMPMzz^B(FQ2)RvZcxD8(hX7Ax-V?(XhdT#LIC z++9j=cS>;$4#lN6?|1KAD?jopYvnof%$b=zd+((tS&)d9xa;}Ap*U0*;pSOseiu9Z zhF8y4^6Fp&$q4qS&cXW7p@I*#R)550T?RZ;|8q-3Lk<=FavwtsFuTr++&Q$9%X>> z41vzD*!Kt}HY#pDNrlh61A>mtVbO+hm-PZE$nPX9+jZl}H>|yXt6uN{0y9BVz-)N) zS3MTdjFtI`mIeSuQ5bzFwcN=>4Nr`$D?*%AquWymS%;*d4IPA^=4)ueNP=2Pv-21< zWC7k&8#Wf@N$X}qY!hjy@|tCtX>gM^sLHpGmrj8_gg$iV-;SSYi=@vwldq4fCwjc+ z9y&EzU9zQ;uWM{QVZw6H_rGLM>QOY8LOo#nTqD+OqU3k}x>1uvT@ve^-in@2j49|t zvA2eDQ9D>_dVal&Pj#3dCzKZ?YCiw;fh|gpH}Ol3VjIe}v7P4MYv z2)%b>`zWzZvd~=K`+AD;!N-zpP0BkTQ*I_L^*6uaPJ3YEu%o}zX#V{)B9UuP(^FTp zNb#(GxW?VSCch$=4m&j^u0=kFiv}(Gd{cf+_XH$q4g^v=EsYzpL(#N*|GmE2)q?G6 zyLYf$=ib^rzZOGqCGf@wdSLW`>00GjHJMRE{a16CA4eDlIbm~P3CNo1U~+GKZkUwF z5N>oN7n#qE=51=>{GCR@mz2QIs;qo!{*}1nv%~#`4)w5r?v;K_KAIqm%`G)xaK=R; z5j}D*ng=l%(v{o7NX`V~`{^Z^iN9|GVNdfJxyF$zke5|eo@@zoFtDEHz%u*xHHFD| z%EFN?%(p}g1D(AkYBAhc9^%?;el%mu_SPXC=rEtpazloA|2arRtf?^K=)0i_FLdwKF7+2##&1rD~q*oQs@xve@q|H$0OtTw#bnn^KoYbo(^e}I+3~lIBd~%%c zYj8MoBm5bh)|++R*j7mEqR7L?hWBJ0&ZLBy&zl2L__-YLiMZ#y2gqt;?71ik6=H!(33V(@isHI*@@*zC)F&t$+JWF(ICN!+ zZ1Rv+nN3_GLRnyzxNM!K49yU(T;aMymUo0OHhN;li{58dA$6|yIN;%SsLs+N4M^q5ss3d}hUIz-!8*7?z%z*|hjh+qdW zv;LMIS%YY+OWg2`VPNP(&V_)yKb04+GG2q7YrECCA4eIzPYVl;%62)~#BEZSgjo6zeIGp8!rC_?_qan-fWcy0N#;zP9aj;?45=6A_6ba;Pv zdxD>4cbxL1<#&v@cVc~!EjOfjOtb5apIkQd$|?L^@e2xA6;Hpgc3YNVsJiF{__rRI zT|O|DXFaJ1G!N^`<&p3`jxB|s+vYvBEDPs4ailJ=U7sSL+pQz+QJ{spcVtZ(P}mVf zq8s)1)nab<0AoPTiZ^J@#Ow$;=28VFS#a!ObJr(!d-H3D#)8zXi?fFMaV!yqGy_h7 zD8Z5g_I?*_or{L2!DW?UQ)-`s99gRI^`d)EKgM$fqRw(0*g-16x;eDc8GePB9G^ z6%7{*cNjkEi_$euGkKPkd6GYz_Nn>w=yre{b(!WK8)_&!DRJ`kP!|q6l%Iq?Zj0wO z%T~$k$@x;$-g#KkUC5Rj-M96>wTaJGZ@_-rR&QCCa&H7H*CTLw71}6OwkP8W??5o zOC_~bemo7`Obc-bx7d3~MAMDnfR?DRPpjzAPwI3vkG}JX$fg`M(=*rU;LB|uR^_p; zeCp`ZuQUUCm}&((rC?3Gh0eiOKZ&`7p{YCoCrZUyJlID_q=NVJU5P)DvUZ=Z+@<@N zTddc(=ff|pDW?5c!1gWaYR$_Z!8LWQ(N89Zp_QGeJ7 zv*3qk6 zIT^`nGZ@Z-iS&w6q8u$eR|byQpu4`jUVC1&D*5G`+;5E=@-*yeC40}toi~@ac#cBX zh?6D*w&(?p=q4}0zlb7>2_Kq-#*lPnt?Qa8T3$`7Hv{Lxsj8d_%ki!$2h7N9%ABQ; zlm)*tS3k5qYT1gS4OJqBrBY%Hd7$4vurFQ;*m!@%S{ov^?Lc7^%mogyWvoH?8!vP* zvE|$~Qn*v+aW5A(DNc;!~}tbRl{4S;0UG$hG^VmMR*z*K=ugMdy{HzWMqS z^EvXV@_?LsJ7`yZyc0#BT6OtJ!(LkvxjP~ouaY{%#|9X#`_cdCM?i&d%1}+OkQD

    RvMAY6CwxQAzPqrn$#oj@~ z-6YxSo*+yzy}W*+ZEaEpm-l+`@>ZQ=~r46#zRGkzhlLHo7%D?Kqao3$iGFb z9@U>>b6hS__4_{+j{4;hC=ZEgU+&U#Q2=n{L?VF)FxXON2du5sbo&v6ms#d}yI&So z(8nR*zmy2LTiS+3m`(T z33y2~Tz?Ce#J-uEYkq3T{R2qn-_3Tkt!IHDbZfwnQAO<4gk6Q0AUCxe+^ia`KepQY z>DC3WsT5Wac5n6G`nSRzk~sI*bQMLPG{;!$2NzpvI=7cz`SX1J%LIq%Jtf;`Nprr^ zocsE28>GZBZ_JYO1E7$4C&f^Pe;!#=e@auZEDR^~;8eXA!MjF0Ct5Jbb+hB$)@W{_ zP0>I(soYCt+v2w9I93#$hl^(l>hRnn!U||?r|UmP2k0)*e<2pCj@rxrR>bT3PRhGN zH{Fg=iI86`uT5${&Et~qoaPJ$N&;EAnGg+2W1PxJSs$upv~p{|j8qVjNQ?&7LJy+$ zh<>%g54EJqxKzm4%)DU7*=!29YO69#>NT>CQnZujuP@}w>^0|#o2AI*{pqV6-JhY% z3#Z7c$LEWxiyyX~QU`+Enmfe2%1dH_;Dq1-kHp(xD-)8k?%PC-;B(Gr4^n6R84Dxl zUR5OEORL$0#&0k)OwVh?D`8MfA@2NZx3P^OJ0^R*vbBRMdY@F(^;K8M(xRVj07d@_ z)}0`UYJ)S$U)Jdli^KD*?sX4ipd1|+n$+ie|3U@6MxRyNl;>GbAr-y1-yAej{MUG2 zP`B4v>TcvD;{1yZ^BVsJ_sRv;6aQ0`sNnbBQmt1{^HqD*Z;P*bpB?P;xhI57D_4@s zE~{S(iRw*}SXEuVa^lJxoyMFWA;6eYoKCztNKHZQehhORwu)7ZmDdHzOdZ}D!wfx< z!eX#H=Gd?-C(_6*TW-*7+256iGcf43D13Y{ z2WCW!hUE6q(?o1jtR_>WA022KWUs@pE)BGo-6~2Yhv)Mb;((SUtGmX3ubCjdKk{C@ ztrk#D&iwF$AC=p+dQd!a0>ar=lLd84KA7W)yaRHE&J9Fi_NDeEN4}Gl=xOiS)xmw5 z)jJnl892a*))Ov=sM%Jh@GmXcw=iT>k5&IRg@X>cMtiB6Fx|mNZ&mcAO1c^ycQ~^Q zf=;12u&hhk2_0hm8|A;U3f0TK7`bdIBP{ zkz$-kI(&CtMFo|y(w*JXon4o&ZYlP*<@*^58!Kjbf+w9~f2jBIQ`7E`Tx6~#HZUC7 zxk;~P0GankAEI!>;L)UNQqGN*37+fyrz0?tH6RQ>*XPm11KI~N+zm9akcD+YqO}$z zaA@ILgnKMH0-`7g!IHMKhx7u!!^`S1R}NI8`phqJgCq+LlB~ax5>>Zs9k`chDO-{J z#8K^& z0_$21H#Y=qjMSGfTiUvI$Y~Fb8r`S~Vw@l_d(NB1Vj*LHA_&2xlol5(A=SbydYBn` zIjkEK#1X$)cQrE1d=3-Y-Q4c^)72^KTuNJ$iUPck8bHDqf1-MjZ_1*EqX~TtLv_fg z9GFm!6OFX3{*e+;F3RyO5CZ&=E;}Nz?w_%qGBmD3h;`u;qbC70OYTf0u5_`W33i8L z_DJ$#x(LBVtNL`ExJ_3s`T|34IXX?g2pZ@f2|GKEFJ@sVyV5`Qk6%wAjK-M$%Ne}& zdv`7Ga*DW-IF;)w%Vdz3J%>GcwO;YKuP48`0syVD^*yK7J_JJ%m)1^MmkWMhEG4>G@}}yhwJa8NpFUJy%Fl*V@d;7U(rNtyAUqRhj@lc4#Oe2X zdL!e6L+u!Qdiq$`vibE)UJf&8FpdKji^bE-hvmNG=cBS?;{%r?tN81ClewEhHNtLb zsI6jb?4uKuH{LA#qkDg1%Z z5zUC1W)|4PCRTDYbwg+&aCrCgi zj&}u7x+g+4Zq!>f0vPY#K_wa3>RWsZ1}_#d}Ew{W8DG=KBZwo=}uh%KI}st?EyYr zX+BGLMuXQetmb@`V~?}jz9*M9C@*zskA}k~GxV)?OXtEFzq~r_6YW2JA1E~Wy zaWgR@YviSy-)er9UjoM@&<2jMbOd1&>8U(eppv2qcTMpx=&*U={Dc5)(_WgBOiQe9 zFEX$35xp}o_gkoM5jXkhu;|r0Xf~X$Bs4FQmDHn+na*!C3>ZMTk(PDSa(s`Auy8tM z8#byj`bOiG71X_he~L0)0U4^kQW43<$~h*fSnzUi3w~V znGtc}&B%5>Ghs!3g{urAk;oqnFpEbE6#5!9`ll?CBxa6 zR^&8#r?v%grZH*jwwi(dRrLK;WBE}ip&VTq0lHqSK04Dj1nB^@Za9xUbx z!UxgRIf{)f5U|GigPZe^GguJDX^Pq3&;ODHOeB0%@tvz9(C|g#NH8rNNvbldTxHL^g(z+bv>r0Vq6A8;(jiB5s&O{Y6Of6af%W*R(q-c0jk zjZmAuwA=70yb3#YBC4W`W76}PR~#VC@(yJ+|6QEgoZdKlizWePb_vNi&XP^__(}bi z#Dz~}Nn**%=f9q2+d$jVQ?Q@Wh$S#W62`spK6>TF5D0kJ7x?GQ3*T-ROb&s4j$>mZ zxG*$;`L|X8gI0<_>*^j3;1|UZm-iy557jS9pY zPfkNpl6J1YKQR03fx3&`#asXTT$bsbIRCT_=+lpFgJ^9fS&rJ?_fxB0`sEU7O*)Sg zoHW^@-1gO$ZK#nt&`%0?#=P0XPdT)yP1H12?Yu=J*ty?=ep;pXR(2?lOhAm%0=1dc z8yarNe5bqoe$(xIUa={@Dd_a+x??_4gM*g#19v2`OG{oZlo?%?9DX%~)Q3582X2f8 z9?=vhLBF80DQ#Nx$_E=h$(w2mBbsw^M{0DD3Zf)3vQSq95d+od9WkwKJI=2+-J7wR znikoPV;hkIbGXKAk*9U&P}S8t-QO5k?@kAf-TWN&?D6hTI|#ycx4SIJ|4nR3(aQF&^h2rxtzP2N3HoJzL8P^B4cU?eq4oTg4vavZVX=eAV%%t#pEi*Wh6T=> zz7Me9wQj55wfZ_{vf5NnFi25zVf<@FmHLAbujJ$)ET1LeA6?o)#5!cGuyYr~ z3a4(06&p%Od8IMpsP(bb-dV20khY0nRy=$BhFvKZiH_{?;lPE?@^N-RHe{&EruA;| zwL@r@ABd<%ET+sg{&BHi1>u)4e+HNO zKyLI50iOboQyqS>7MqR+@I7bcb)h)T zW*S5&>_zE=>vJ%D;N$aaze<1+9|e~1GR1DQXLZC*f_?nHC+Q;I;b``uVlO%=qYj8^ z3T~gUUPYLg;v!w;D{3)+IoVfaQ^VvFB{sCl3-k>e*;=M(u8HB*bU?NBuVMgK+U2-REwM*mqQo+t3BtdFhQ^X zVY-Z-LuuqkHrdmYS^qci=)VyaBEY`|5SbxxYlzmlkTZDh(*Hq^?0Jzb#CQn5aj#0W zh8Qb$;KF^!=Rxt=Sch|Z2V(2P%u3UC>gC0~C3VTcM=?z-Agx!cLg5R+F)-X{!f0GP zcA#v>{9cWp9Wl3v5O%l#8sWlp9Y^nxJo7p`Gcl z*l4PY&JaTd-6=>^p@uu-;DB#n3#KVeGU?&6O4+fPW(#LxUOj=N>jU1UKGD@#I}}B9 zUOMbAXd;FgwQk(pP@?>>+zi*FFd_gb+RgO*^Pv1>*L8_-nXMuvufieUQ&HY@($O&z zuGh&k$APEROYYBa-%X^YYh6pg>ux6_jVNNm0umCfA6K?=D;ZhP%>|DrmE#8E zVw|#3TS-0Ucy-Xtc;KPntog+i;x-lqTkHh#QT!SV#~V;FkGPc#n&F@PPFn{fDN7oxL~$(nUCCjB^LcxB!&UsqaEm+h{zwdSM6d9 ztQ;Ql?Oug1hT7$0SIaM?pJ$w$kJ!KcN*;(NXUp$U0JbemY|B%Buzm1h;?rK@)6@99 zfniS$j`chukCvp>(A!_!;RAxHe=Dy=?J0oJn#f8E)Ro%ib5-*UU&m-OQ?2-;Wrlhm zSbQWkvR)SrG%DKjCLYkBd2>)Nbq%O}-tLu*7;?{Z>>yITM=Og!Te16bsq?ykE8Gu< zCPLoRUm!Wa^yjO=n%FUp5-2HZM)38Nz@d_Y5&+;CQK zc_0#j$3_g5pRlDc91m7r)gV|)%yx#mBcqhU|1sBi(NIV2H|{m%kX@{5zm|s=kv~9u z>c9Lm>OLs?LJ0kR7J;cJ8y*CR24JSICd}Vj%yeQjhGlUtr{zOj1I%xlRoRdphqL)v z!TqViT4rRd_pZ96ODzh;<$J}5lQl$OQg$$9cR=)|OJf@78#;8a&^r?br!yortrDZ*>%C{ByC_z^-1&*&iwsH z{qeN)pWsJbjyDR^6R%kU(<(DC|7^krRpzjcxuV`;k6=gtB}KNwkdAcn$uL0ENcn4&5KXv1LPzk%Sj13r*kXzcgeE} z2i&93QV-GuLxLj*75)W_(pMwL)(qfUAfAXH&YI7=mAodJdRGV5w{L?2*bsjtZ24+R z+9*x+>s+WByoADzQt(xhn{*>W3DeM*(RM71K~Q0tB4%lxnJ#gm&_W_`9{g4%W_5vwSc>lRtJU^ve>wuKy9B78BI$q;Xm%Gg{_QX z@P06J;B+n8dHFcRNDzCq@j}_cu`UO^Wiw^lZ%-Rm%Xm# z0Rnw9x8|-PuwaaSfQ;ZR+)FO8iY0Q}Fe%2*X-esX?L9stJ*5;S)LH~G1NMz2!e7jJ zF3Ii`hTkg9TdpY`Df~uxUom}8KN*RIYS7zty!`%-@AC^@1Ikzr*)ZdMN%P91dJ`V7ko=Mm4uXk2e;v>r!a@%`3F2oa`*X zuY-|tIArHXM0vxIn~Sh_{mU4fKeNm?#gAFe+Rgx_Cx$-5fz9r-gKpWAMJKe=eZHuZ>j0^AF#S6 z7adjNZ9WA+PqM`6KQN?SyPM5&n1n;)*<|oK3sug@bONznJ-&9o_ki^C={G=MYbf1$a1OdzKjE0q;<^#k~EXSo$WKuA`4FJqif)$uC#@fh7V1>w( zF^H}l25jwbc?gnAKb2TbGXpYe>Y%JN5T^a$B`n~l zbs2tKoHHyTKd}((I1RejTLE5O9{^x*Dk`_1$mWN7iws*4M8^c6L8*w;b9Hgw0gAmj z>)rZ=<$zr#ER3=V-98u_H9I!Kf2oo*bj85X;Z~8-YUYRyHTfzN;=Bn;TN7G6MJ zpmU8&5NcWVg7R|RgycWN9C?69K>RCO_dz{zgrivZeQa*L;;{_8oY|cNIpDt`ywRh+ z_U0VSEGJyR0P!caD^*NjaFdVaLOYfFnKGj_jO2yi(x-@W{+-1S_s?H|1yFC-1Qet| zyw?gOZ>Ro<4-Cj$vVz3VYd4+3Q)R4uA6`nM$}U(d$D(Y=NfmteVaRmkx(AKB5PTb3 zYO=s&OzCtCP4AM`S)-Hb*%7>MnUym}`KY)KKl<*k7??iJ8^rp<%;!zw}@7juW}RN`$ZD1UgxFc}4@Tu@|E~;Y9B!^!UE8`7ua+JyHrQ#fDy1U{b9P$caq>biF|L5$u8 zi4TeddGGpCf2Br1+$WlENZO|ND&;L6`RWPB*QyDTeBA+XTQ8iGkssl%=Le3^j$9uI zvqePrZm1HiTWjN*xz!~5Mw48I5aef|7Y}qNqtjT1CDzu^w4hsO+Oki@HPMQb`L0-# zOw+8-p(B-W)L^~;P8fk$LuPJgf|$Wta``f!Hwvivh%WyBHk>xoTuMi@QTti&V*YOv z%?tt$`$-0>vDz#qXy7eC+eoEKle(Nj_}kjI)6aLFD!Shoir$Vtle;&*!&SlEWAnUx zN60r{_bS+7>sGx|Kr@8>3fkE2F2*5RSKW~nX`!WZFu$9`eP#j}z}zN%Q!wtW2)c5u z*jwvHt)InVxBLk@xBQMPDS&|u(jNYGN;pS+SU1B=K=E7wslUehnq0^ES&c62;Qk#e z`PLx{`-qY&j-NQ-gPLF2@D#^?tyg#}c8q*}cJWjA&$|1X{$PWa%Y7wFd#>POB6*#B z$~{ZQwb+gZBIO|(-_H!MS!7THtbSx>TfE<;xn5kwDRC*n zEpW7r7a4VMQG9m+wpZ6hREO>Qh_b>D4rXbN*uv zE8@LIWHfXoH5&f+LiG=r7?O@d)@C9P=ef9eV>pXxxUjIP$(?!@cK5B3?zKGejKUD@ zH|oN|rNi;on_zpW5(gDOY^W`Jkla9*HMBoE6*6Vpj1YWs(>2g|V|ZOW0$t!-m@{qV z+exn_pyvFA(&Ge}y2rNTH4cYg{%W-9+0uF1Ga}Vn(fy4_?lEn|4~%56B`p)6sT{ZY zF28SJUy^CJ72?3Hd&yp}UPwUG`79dlnNftOdq6I8xKq*68>&=<(s5?{^yC_(v$R?T z7B3ZQtIZCnQf_wFT+d=~$hmPUvxl_f9?7yS6GVHq;u_fSNOlYCF?vAPl#^$8gqwnS zp=hcu{efLMmG!NE!X7(Z8VFa!pRYe7?4sSzCFJ6lY@2_`G*KC~(y#K5>W&hN7NNsV z6~jAM$%W~rl6TD!?-#$vF0>R~+I*J95cMz+68FgRQZsQR1O4UDM-o>)lh&m`i;N}Z zLHuEKeiLG;eruY!?bi}DbaN3*!hO|cKTF1@bmVaqE$Mn*6A#4xh~4=JOa43Gk6S`N zEb|YL6Jk37;sINGWR{O9!;j)xUMWO?ZF>YjkheGCC(v0QMieh}w-~H(3GJUpa{>K( z?R%dV2~TGexzbPhePFVKhh|ZtY4=fFIOi?K!DzpJET(4#9R(9_sK>$f;QgHZ zz^yJh59^Q8vj<@Lfb3d7X5j(GUj9&YX^CIOKU7#G8pT9+C9TVC^A=4Z)kR}Jef}vv z7{m;wjS0TAJHb(6@cjk4N8kqm%1|?}&ErOJ&^^`%CN*bzsrcP)^!Of;FIcc#vQCRx z8bA?PSEb{e4Q8$L#zBg6pPzC-Ta>1In6dn!6uyY0p2i~>P-nxO`Uixvw8EVs-dzCH zP~r%Aw}V+2-lllOgo@)-Yl*e~HaOABBVWWzvn*Jmt8N54z`i^B3@vAfDKKw<0~5mr zcxxXQpU`2kG6g@~4*Mn0KWLMQwjtr}X~Qu(Lw+WX#F1}#T@q#ny5pg)_3*n1Mf|=V zEE7%5(DL|&W8vai{`orok~iH_XSLX%SxWyT8+}5!wTdB^%L?h%SwFsTw8IZmB5r>* zv_wb9Ydrs?;_ifUepG+zE;}siRMY$98}@3r6u^s#8x}mlT^bn|8B#R8Mjz-O)_Ip` zb@tL>Lgo7Xn)`tiPjrqHUihm^(nCH~o-wCN+wo$-t2#!nDd(3Pe$?ML8lk}p-INyI z{KoeAUi;ibY`Yosnm&5DOp{6oGP=I(n71wn(v#zh_JTEmu(7v>rczFGj7O5AhP?}i z{|>gGDcNbNB6u=t@|aKtxL5Jl=F2Vb_gC4w%Kyk2njV((m3YZ#G+e2Fyg-9tADxoR)WRvs?ZAXjsE3tco#K z6L4jquRq^t%Zd86{2Qb zm-~{_@+~qKr&VuXQ*z2Fw)y*nwjhDO!)V0)MMzI}EK@`g*|rVoTpLP)BEdh0SeU#e zpOXd^4*hqh(EMMhuHj1#LnC$gZBC1P!st%LQzm32WUXo6l$#V)TJmNRUvf`BN`jU; z#0tx>gw4L3xq3sZBF=pw#mGQQ+U@64QuNJVy*26|-w>yXVeHb@6G&H&KLf*yc2i5e z$LCXhFF(qq9#X()oI?RD0z8DYJcv~PwG!AT-wC9+_v9OG@~O6mgPpw`@%8N{!hWxy zpwR`+ENiY^c^0NOGz?n!5@Fw!p?KB05pkpP&Yt+yITft*+^aMi%sTOc}i>!;+tB;Kp>a|r1>s(vz$+C~@nV6rZ5W zJFBeIPW>&msRb?}nC-JaYaZKgRvjO~aK4?@^0FFC!WuTwzn zGp)4M8Sd^cbbFIW)69MIwRbp5qpJPqo1mQtjLn6a#FbGwUTQ)1?YcS4C%GP?!C7XD z>wv?4HS4!3N+rXDMtkUj?wNswy8Aar!?`JLPHF3-nr0N8)2%|L2U}C7=^h=lhenwA z^)fSgh;%f2+*A&XLyLT6%A*Xq;n;4r>v@hk-vx;tUj_i2^=VA&ef01{IBqiBbE#r%^-R02HSQKZ9fUtkES}cVHy8# z3|Yfs3T``DeMD4B&Sx8oYbE-oP|QU4Ul&_2#p0ne^-MEZk&;weX>6d}{J7l0Q@0oE zy1Ce>n(-&HbAex4Q2SFxkjaEM>FEetY3Pig-h&GJ#jJT5xoaAC?|+*?T+hVhqEtxZ zr^O4Os5!*JZZc)JVuJ;BFrg2*2wnj{N?UxDxQ(RxEiGq>&MWJi z2)aA2Fo<&L+f0Ck@<_RkdeJS2$cva`i2#E>heB_DvOkLBN1Vl*--3s0bgu%p9Y{s% zZUVj}u6SY6jp8MTP(JpMLPgE$6CBFwiz$YPF)rOd-~@oRO~A`JPb3c(JW!@nhmX-{ zK75o>)dz}L@#4s4Y&-Y5T(2E(p&_~ocqnqB*tVqi@XV$BA+$D{VR=V7{|afgo;CiH zRcB$Z$X`p`;0nTG6FWSJzHQd7>xcT4-NzuMqL>p8ce&F?=Js8DovQX-^vylqk$p-|9sfjoqgGMa_KY>U-!Pjf@exovy zi^Zu2h#nc}i+j)P+{t)Geltg>BV_&$kR{UnO`sx3Gd7O`&h|a|I-Q#fjzneUj}H8Q zD*}GKF^Vfw$YcQqdvha%BIN7SN3uc#z0uICGJ{)~n_c9!Sg3t29cpHIXAaP_{30Td zfWzNvQ`}AzMLA+yF}k+E#zscxZPjkUtcu0iKCcw?D3~v_;G-n+^!(2}^l)&A!adnC z(T+8s^wQ%b4^^bd>*I_H9N`!!>(|?yYY6K&ms54F>-mONov|=iDeGicfY|46apU9r z{TdJJRR*~DcgF~JX)gsoQ1ZIq#H$W+^OYe*#IY;fMRhm+#GQ#pCNN9oE=CCH&&~;L zS*jwBbVQmlD! zbR_Y}lv6C0-7g3n_4CB~1|!Az5*?-e0%a(K*&3X;_TgteTS|YvE{qA7s=Ky}ar~Lx z7-a#`x{_Oxz$b1&2P6Fq8^@>p71^PZUc4@d_M=K_c-0N!Y*a@k6jO@SmIn*^2EZD% zU|$@?3hp5D6kIYvaA&O)Chv*oQMET1+d$r|aMF^*Fg)9rG%#tW{u;WvuO8mIw>E2X z?h3{}+lUW3;(^WE({jHzU0O@1wPg& zW<%SFSGmB^VXB+-F6+JN8nC*pfJ1sAo_ukuG^U<@88bro_{{3h>FzSH!0MW9omjGGj^p`A;o5|F10yRww0G ztwf3mbx?{AU-FFed&vUxgo~zu@bG1tB$dtD7A&5+>0)eLh)Yk^+zT6&(uR32&kAR2 z>I2AC7%#CfGT-n}TI}A4+N1e#Fg)U#S`I?NnrLB790qExQYp6Lw?o4T@(pJD4L1ki zqc8X4)0}{7{(chRlS(W*bk&7Oi{3KwNSy}oYeDf_SR>EuiQU7JXvvP{tuT$l1to{> z-?S*7!l>r7|0GwQEPWLX&`+xAp|jVH33+YuU$>UN`SR#rq=%&AXf~Ezb@vV#G3URL zhx(0?*Ave0Xt3>j-*xr(%G%Di4V~M0_f#M;Kv)_Vfs2hsPsM${QA%o8HLJ?8&^M;A z^}>nfU^-xA3<@v^0s!02YA%U3HJ%kuin)n4dHGh%-c`knf9nl)%I-v^I&r@N4Emp{}!s;JpS-xxfZj8cHlG+;o=oMFI!Ao)@MS%LM z$5K$HmX&S^ODagB?z_JqTgl))DA!Z3Wxap#K)y%2=iqJj>)F?a9CZkNfA@sei|ebk zfQAECqVi36+WJ-!^nPLX-j#-=w*>zS^>q@vO~jgvn6dVRFL!zv9esX`BlX-a$Uhfj zvig-B7FiK=@PbBd^$&>oJz+%->h5TqZghd9L*~*vako{D$^TXvyV!+=d>8xf5Z+ve z0THGZ6!&YTZSHIHN9ov~j%uHKcoAD-#)k84^e*I}jz?YTo^7_-@D+26c_}tR5CQNR z;*{CMK@ym-=R@kUK$7-r4D_Goc*}_)szC<#R01L~kP#TV!ivCf=Y9A#{6M=*ATM4Z!c_5QzY{Z2~lMIF1&|} z*8lwp2g<1RyFY}cJ|(RVO}uJnKLtwn7q^sP(9LJ^y?!+Um)4?Gb@NCa?6 z2l3&r>?ev{Oeitw_CkZEctzT@cJEn=j5mJXm+aU*e7OT4(Oc74ZCrZ6cNUPlq~hsy zLeJEv_7|KTT#78=*BGqYlHZ5p!nF98;@frYXdu#q;mxSw*ozGhiS{L$yNiLfQ*F4X zg{C#~+f$p+(_*@Mfih!TbE}JWlw{x%H=|0?QeUgg_|cJF4{4dO3xD(p@5vpqZtmaq z=%6nFvySw^J3q}2N{abHqGMjP%5>sY0=h;o>vCBorIOx#L0VP(>`3JS<8P{(+D3as z%81b>iH++qBcOU6zvJzewGK?E+~f#VudGw1E{JozETTT+OA%Yr+jqt5$7D9Ltz(?o zAE1*sUGk&Zjzt|8Aeoe_M&xh04U(nnyNpR#Ky=7kA`47utMt{{MJ?%~jfHGWUD5iP zRqsM=brx8F@EK6CaT@~NUi2PsLTrYLN3P$cEALXLw2Of(e3F80_X@;mJY_3gP81v` z!0AwJ`;vluL~2VMDfvGwodr-EZP$i_ zLvf0`6fXp)xVw9CcUmY~f|jB!?(Xgm!70Vvy=ZWEg8g~F`GApv3kSjWhfGHrX=2 zP}l*hF}d}Ao~h>LC=ZB|L1L zv8|aOoF=GzxWz;IGvZ`;qz6zt$GY;VtRLZ(VJU;w)%IYjcTs8`7~cjK9r~I@iX%6n z%KQ{wHU}bW(yiGjEP1EpnmKxYsZgtcdsiBGIHR@LhPHKcCGrb457%JEz#Be8TlJ@v$YAN;+xquQni}d=I&$ zfrGE{Sicx;=554=iw>zBU_)>3_Tbh(N2W+EwQKGuTiM9dJili#(J?x9?pX*(iHR~| z$|nu`R^xneM1V`dRareare3^Ys;*~xv!oGQK%1-uYd97_FAmD8DRyV3{!1%2HNva9 zDNiU1SQfcG0Hp%p-Z3@{&pCvyk}3;L<2yoPe@l9aW}teHJ5siFIe;U_(zi9MRQQ`!YMf{?qsrFoX}%d*7=~bnGbO-D)VXUY6)L_|$m6=iVh$a!uqa zxcsR;f4%5S!cf16*6(}bt&!e(~qM=vn!oxrPCqd zgS`g9DuW7H2rbWd&#sE;o{H0m$zD$5Jki|?+haYN(eRUO(E5&f^|yIkFYUy!faGN8 zBX*~U=>{14d@ziEVLovml{=7kZ0)!jI6jeM$eU!ZYky$^QNr$6$jq-YMZGJRL!6& zx-{;PBDM>`P=u-4y`*<_#sA`8^R5};E`B8})WBG)Umj)5p^kN4EP;@&4J}mgO|dVqTmrQbz_gXw zXVN+9fJa;~F0nm7U+gj~-GLV~$-~>nb!FYpfV?1ERaC=kp}C4t1%sS@V!H`9#kkY)sM1Upuv&?}*- z$G+{pgNmZ1M(-Hd3%u^Zr}ikAYP|serDX1k>e-L;)O-6O|C~gJmiDM?NJPYtbzL{M)aoY?n3xV! zyJ~9NbbGFS%p$y#ucgcYmZIau-?$h)hUV+;M6!=UTVUr6$vWi7MW_RDpO>A}r|0W| z5Xw#P)Q=%47e9V!Jr#eqlGhIf>Wa62#ClJ6_QU;pG&C?DR(LO~R=aP~t(CtK+zs@wa4L62PuE6+0mR zdva0(=>UE|+Kwm>`^NsxB>YzxbY=J(b^>R*JkmqC%=ih^)qFY1-6=9L)E#)w8}(CA zefG0o3f#65Hjp2SYz_PHA&ACA6yIpYexu))JX(|sPwV=M z@Qqt5h0+sQMlsAq$A95eVU#hHi^q5R2_8$b|3Ad+?kJO$b!}~jy2Jo`{<}sdCm3M| z78KLNU2NGT4}LevJ|=xCI&CCid{dEVM(rlKSBL=#aCLa?kMBc&F|r?7+m8)V_c%KK;3@=Z|i8b;E)3@pzhUaziEWbhYK3`Ojh(si|bU1eBvi zhxL1Bt^auF!LnUU(SBd`)5Arlb$%Ca@@*O4-w(;(NO{?sCb2GRlASpLCDUS?PdNTH zFtrP7n{T|yP%-CZJxDj9)oTSzaAv%Bq~EP;5;@zBI;d#u`A|QgI4sP1d#idEw!8WB z3nx<>L~Qqq>7arMS@OLntgAV&?7}@jqR*_*M`49o18Z^+R9AizZNX?t*MGJ$ zmMOSyQxtBlh_DwRbYyb5Nz*c}Vst5{^m`;wZCv<`fMMXXI3S^+Ve}jFt52ohT`JE< zwIbb6Ak7&fy`Uk|f7^S{{em=8N^&-Bbd!>RS6-6SU5v%+BjvoawGIUisBxcBK$|lo z7!*1+!2X0hi;GYKB1aAQaH`Wr1hPP-N~|2j4E(x_aEKyUDZF(qP0G7Q1=G?djYb`4 zNnqC2RhANHkc}XE<3d&jxOit=!nFCAV5=4lVRV>f2>K5)I6rXx>cP8c%<-{GjR<5r zf+hMdp_1)yrrw`F;R{<~I(M}rs*aVXLns{6!@_mtKBpx%bPgkD3nS(QN->y4s2#T% zp;=Y;wTH{h_aBaL;U-0DzUq;<>4u(bSDjSrMudPIKkM6sD;H?hU!)_LV zE>EaRKyNN8@_gl@T#R`pBEs+Ld(cAV1qpz^vgel<)3$@3&|B+w=k^{W#0q17Il z+I*7rS`_(@cYaNP5XCAT+q}A zr^80oZ>ME+%6?AZwfJ9eB()bYw_To(gM>|@D{}^c4^N!I`9WvS3j|>q?+h|*(*<_N zX1I5=uw@_DuOd&v(z+=nh3|jog}&kJUEFfC0b3XjLW!KaxyLIh)fr1fMW&eMxEFaK zSeTQ{6!SD7^_P=>T1-u_Q8^~jA^#;?s1R5lu-?y9`4~@Nb-l3P2`%sR|0BgoAUPEC zAdjPhB^7W0%V~yxl?O-o_2F+O>+5S+)77GZte#aqUv4E&(E|t&#(LNqd{SU?w3T1X zLLo-@V=Zl^1L035mvETq+?_IB#m zbvx6584#0vcbLN%LGV3hiaVTZQqm=Rijv{G zWPDj4&>T%>wQ~rqyfHogYXpPoCK|lWD5W~u&6L_SpBU|pbxxW@?Yw-zMtoafk;%}^ z1D=%hKZ&_>rk7?~7e!g-0~+EF2~iiezq1yl$aoOK%B(vc{6?@?*Ay!?ue0Ch#I}h~ zGDM!Gd5;=6Ecd`9s?25|V5Seh!!lEY&N2J-xnrPC%O&o|70axPfUjfH$Vb#1^!-~c zf5`Fi1;2XYuW4E!|CjwPeDIz=hg5($Ad=n0CI>z#9_xi*W%+k*m1H6v?AEi~PoZUE zOmwEwZsNOPi8&7y*f;Ny$-@x1vwW)#T6UR=n0F8Vm>wd)9J39fLZn#V4zrX;lu331 zO1J~7974&hSL`RZ*+<%b4IRd?@78zI>+%wLCf87?o7grA`WK*m- zoIfuRXi%C<{U2s(dt4$D*&#=$*$p?h9a zn(hu7ZI-S~-9&#G0b#3xp;C`wA*n?ndu$98}Yl^hbZt+?E&H-mk|R z+|#JZNzoAHomp)dKQT!bGmpR(3&`TXWC372=-8a?-wXrx-HAIpe2$ptJbRCIbHT^L zm$2Zp)i#$)Izfn??&#>d?*3fq#&ROdoPo|TVRR_*v)TShPD;Y99$#Xfh$ja*odDL_ zM>Wfyo3+|MNd&5XES5!?XnIt0hB3&sI^&{V#`9b3^X@q#`yz{JUNz;O>zQAQRGKZY z^O1rF<3VKyx5Gy%DqD)-5{CYc>2%SnSd$!8hSF>vz4$awX_dCkg#`VCysJhDYdK56 zJ12b;R!z%t$6RO;^YW@DH;1-A0A5W%f6IH$j^G9vzw<*EEb?094bGbtUY|KVo3|%1 zpr0h^bKSrGAo^(vdNF(WK$MGIwo~x@I%^TRM%vh16s9fwrq?$$W5y`KQw?g*q+yx7&;Ijm8S~*Sv(9p-wdC&66~Py#L$=#3 zrK3YuhwD0_xrWDwEND%l+pDI4hbLGK*f1t?bo?{Q6LWgj_O?D>?K=C=a-&_e$=kDH zDEQ#OKFiGzXxieIYtO)+U&~vkbKdGdN?c@PRupM$Vp~km-&h^XDS9=7m$?Ihgqo7I zTQyRC4dP6LGpDK%E5eu;_a&VC9a(sCVM;g&>|YNtC=U5Nf!qH;()^sr2`m13!wP!R4BJ1UulLoQ@Wm`%r-U@xOkH+d;-0bn&L+ zpE4mdg$GS1d{{hBP7we8LKAh^H-#-#a%6A41Gnp)R9U>Q7$!vG4?j1)4^I*R8*s$5 z*R!+YgCYKUuw1aOn37S2w0v`txF6=D)FZa~#ryDLl>t8glRmpz;3dnSf}f9*5sRBa zvsuirM05!XoaA`#Ss*|%#Q#=Q+yr(iUv}J7xdsINQg!|`yA(gCA|e56Y2-$~kCxj{ zEJEQC?2`Soh-Er$A+n~K5wo7RzCJafz&3I7tF+omIJ^xi<MklX(>jpr@DT~&mG+4!t@1ClViZ=Ap-Yy|kr({e`2l0*st7ME6bM?sNLwsVC*KLIUlSNC2~T=;HyjN^|_~5A1)2a?)!MDd$laurm2^ z<+UbrbG5}=%(|gGE~o(vbt1!hboKBk%J)=7&1IEa^G3-*%B7}W=h1;siSjxD`eN#? zuj$GKa{5I@Ri|S(_R}HBzI`k zNHz5$Xg4fNeY+vp&NJ>GWuel-xwC8fj)?Kp0YA1#RhX1+j1lH2h^e*n+!+zO_8^Il8L#H`=9g! zn~yoaw-(<>e?xV$y`T{zC<00d;+xiq&JWX)(Sgf$n61@}%fRd-K7gncXE^?7pDv|g z3t#qvlHqLauu-QTN3`-zE5osok=tiA=OpN*>x5e#fm@tMC z@bz#$;XLljoEBi(!>vvPO)wu?Tc;#mW{psNOwNaqBL!-+xgeg$w&03EsYGM7BsW|8 zM+rUv^Pup&tBB%_YFaKoql|(nn0eQAr-eI<<6h`dc+(lOl^fd2;)*77KHSUli}1UdL_ z;F57+K+6CF6AGxz1yW!X*oR5IQU!yXaMzHLiBonAaa0+cNB81EPw5u8wjl648JR68-_1Zc#v4IhC*x7-Qzj` zbd5MM$LRDeP@>&Ef6 zHd!3qD<3hECgY7BWMH*Osb!DjQ;vg^ZUe)J) z#sEdUHkN2L!T|4oSB~_K-^iE=#Jk-8jB~D?{1KSgN=f*g@NdYY_&XM$ymiL*Tism^ zHXlM6+Ts55F$26t-TC0A1wZ+A@RCU{qg6@wCPu-~w1L92D(HiwzsXI@=XvdctJ~Qt zotWcadbMyEq0{>qGOF5yf)e^)jHP0KwCOqWyYnHW?WSVB3Vsjq zAn32QXiTqiFyvfsV+5@er27vb5i?T%(UX7*%kxO5z)C6}hM5$MRk~sx?G)S&hef=o>VaxAd&O9*nM@)2F zTr$SNrOKy+MK)Uz7D(d;;E6#XK&$=ie1tx?+{xuPcnj1DZLqDbT?N}q%$fUFs}T<3 zjBv|mbPi(}0gs>BUC~PWNnIktl&w6nN&{_C#!~=sEym5LK9G+1cViqB{s#?wzr2?E zScIzTxYSUZH|2YazfC6R(E8n|oVU`R8Eje|WSZ*|hN-gsYTBOqfLw_rv%eYRmQ|b0 z{}0v_G>>UXguXlWqZoJj>E%&wR*{~O>N>wgN${nYPtgzS%-ku*zjDbW!r|&m;Vb>! z?*@jXIA^as zG8-+MLuw@2ubu;>&ymKRsIjTpC&>slj;OM-evAsR3ITaao9n~0g#bJQ_^LE<1tw6n z0hhqLCxgKzEFix>pKLNPf+yoa)#n_F9PdF zFDG^EeA3gOPN8YJFPt|N}Smm{bP>y3S$su z&FM50c|hsO zp`An)D?%CAqEp7H2(cR@35$TVz0F4iR}fb(T+dT2ohu(oY+0lTrf1+~qn4m|RFH(% zOWFb9l)H~!C~Vmod%4&9yxA*!C9(4E43Ye`0F==Di2WO4`x4a$ZA)up7q0}1rZT=1 zijGYdJ_O;;%%MvrM}bYb3}A2qNVBy%_p!O=!p(x(_0&DgHKnMHoTvND`V@nqURbvR zjr_5f3iM{CWO<-od$Lawt3>YJW@>p-i<37a>hGV&_tz;(&!Vckbrg zaES`o9=7baMM?iTZ*$IO)k}iKhbHFl*#ePs?f$PSbtHp1`4V_7G*b|RNgB;5hSqv;AP*5>q4mB?jU0t5iP9B$zuaRYfTChm!kauWmH9<8=EOY7SRp0b5jIt! zEDlx!aY$0JWHe3S9v5}@9(ck#^8n= z6)Tuc`br`JfQ3DBz7U`KOc4@3yJd=UUO&GezM}Ez|6W9m7Qp*;o(sS-n)78-2$}cC z4qn`k2a{|efl?jvuPntLNT=D1??_VEY&U9rv6>~`>>f|QCYlzdJW=vSu_`EsQ06ZH z!DKPD_I*CFXlv6ZyA(qb`z>7uy5!q+rjZf`T^T#e5X?&&8JIN;Qu_VFb}U^_Ih_XK~)C8yfkPsY(Z7-v)KeWO8;r9RhZ??8?iMVrZ@3hWMn;wG+M)N;LuCRF4PfK zW0FS2__nvaeMnK+3!drwM^czzM{ekh!!Tpta_9RAxcJmahM2q2P(VpL|4 z?>>6RH8DVU>ZttV1`eH%nwW4iX9HKg+Q6|e2uWp-k&mM98xMxJP0%^lnyd|PNCsjS zejR~)4^2*}fhu5?cWJE23u0=qpj3U1*g}p{Y{%C8pU1>+K#@$~t|>Xqr!`WJd2#f9 zZ5+1oiy3oZf6LYD+WS@-BN+OW4K01y!%zJy^7)mLxb73dvI3aEJHoRfHVMrl9!0j< z>dP{onx>(jqmuPbi`ek{d7Qn!gN!D8lsK=-b@NJntViDmRN zc5eWag*}ZdC53v$`&Bafz7Z7AD3Y04^KXp6%XS=_h)oWZTb@@g6_)n<#(>>>KIdfr*c^v0@i5_>*xscvqCS*9oL(VAHy~fIz@*kM z=S?fRa4NTifFS<8)mc+Z0E3@&LZrknjA~z9ZVfo1AOd~+ zXck;fM0Lmf8E#AXd%g4Zr^PDGEE!gQyq7U%-&V`fG9zytNK1SGX6z?rcYM``d>D)8 zT}XlW_58+scJOl9#RGrF8b4Mp`*gg<=#FACDVnrTHZyYUP)Y}3Q)J5NT9vNN(m8pbApFK|@#XMn_3jpT)TL6JWl)Cz(_9If| zY^=xoq8p>jmP|?>^HIil2BNGPeB_Nc@8W{Aa+c%6n8mX!A#sB+O|c=oXxl4Xpvq@5Pc#1J3z!iyw7`xUDRw&830hFa1E%i(dR zfxC`~=@>X;JltVBd_sY%@Z#Jccg#Ih#Pi(i+ETBk>ABI4CJs*_U;K=*p^)YoDE~do zK8gb>Uob-#rI7PBL^YkvpV*_V+Es*J>>}3}1DoEn(dr{4-ZmX)WvUU7j=FA?`i0VV@ zqx3%POq{Nf$^UBDxb1T+k;&7njLgH=RQA`hlA?_vY?yktsL0SaLIMb9>`HK1RCv2h z1>!&PUiSDb>Tv~xr~ok`B|#G(?trK3Q=?-_ti04m?_LDM5dv#s6u+B(3ao+!2e+=) zHDPXeHo6&=d0)L>*T&2Xmu@mmj8t&5bv&V;0v}qeLm}ug?9Z6W98t4wXISE|Z~`{1 zktp@iR^QORm$1;zl!q!*v2q~_g_e39X>vOt>nf&S`9j42QQNepby@)`Lws|-a$`p_ z$1F}sp=K{!77{O!3+x5d^h<40Tgq169SGF5nsjWA0ygi#dMV|RVOCdP$G5)UKU&3Pus;-6&Y6LGZ1=*%X_F*-B zC-DiI9#OQT+^*ZMbw~oy)9bXn=}H$38ycXdX#+!{2{&gwMYBU<2^A z@YA?qY~T2^Pqdic9 zu9zcj#aJ-42Mx9`yJi2Idet2leuwiEtTxTIUntBBBc$lJZ2s6Zf9O~VGh3YXQbJ3j zVY;%8ng?muIFy>8R;>bqQ@cnd9Ujhb+)AVT!x!g4%QdwtbOf-O3j6)tBHhBhrEg0! zdhALfd_~Unp2JBlSF3wo!4yYdPJvZ4i25?CV;;^=Q8t?uukky-#3kR#wMf5+i5(6l z;b!4XSh|7O3M1j)Xg)mcEJ|Hv-W0_?Lkh5(f=Q0QFr}1`22uLKySFhF&EPDe=!+F5 zVoP;@96jCIROUDQy6E0GaC*Q{j-j6;z~Ruk_w>seY5rnXW@8^&iug!)bo(?VvKCG? ziO{g%IfeVe=O@EA1S(PA#I$J%9VyE}Y0JSw$?oz(Hv|OOHOfGTUqUZMmC|7|s7=W) zUw>M{q#>rLH0HOcsMZ6UV+VkqrTkXN{aP`y`$&Na1P%@zox0cipoC#te$HK`l8kZ| zaA=+#j3STkJa4;HgO79PrqJlii-s}Scp9hPiPIqpCduy#$=nT`3^hK|vmlk%R?>M{ z&)p(+Xu*ONLevX}7D`sd{#M{~c;-G4@`k4!HpdO%!UX^6ZBAomnKtp zYOvVYWG#Q1&1=|wQB4V+o{sDG*b;Ms(P|OzOcwj?beoIopXnUs7F&u3m@3xDn^MK z-Ge##6;s4sC=a1 z+uBrt};xt&j(Lr{;auwWvhbrI=Dz&lxS0hRe_**3k2iXrn%Z6C0 zUUQZ_Zt{oHW?OnxOC>6)FU8{@=`}piIu!bb$c~^eFODTACGLeD|4fqOO<-b>`7jtd zo%**sUXrLLs6$u!36J#?7O81U4rQD`VkFXwgpy9{z9bV%tDk|4G4~7-&25z<45QOK zu^{d9FoUKK#f?HC_<^g157C9;)nefpG z9onhw55scun)JG6?8)lG%u>uI@xrK;zRo3M!SoQ4pIO-YLxiGOyyd=E#w{UoB)iodRQ8}IIql{(Afczk`U|KSGN`byvQBw}#6^&gw*(Ir$fSM9~(nBmzt z>gorkDdo>$T*g&k#?)XO79-;p;f9RW<9)f%>or09;hg_N!KhQCDn{sz3{kkkBeibL z4SF(HpYAqtdk-~>88yWW)0~*UAzzHLJVx&(13!d`@p)XC6i8k{RBXm%Lx&oMtk4^Q>?iI5Bt zeuOXqQUa7tb8HVgo#!9A)=uKWizt6hg|BIijO*sm>wdSC{hKe|7%r#FPya#VEDx57 ziR-YAd{CcYF9;YIeyWN~Fn!dPx`4v5SI{FxihaKe%)Ea0{{~_@F`<7YBJlf$ME{uI zU-KsZ2J9ZExDo>ZvGxgGx|Leb^I1C4X4)wP2|$9N0%RkfVq@> zk*NMoUFz!Yw(IP*^UJPeoOLjACCkAt*Be=ItlFlS{3+As@(;yz^L<{`nd4g4OHC5c z8c5zDfl}$E&YX8l8`og+{1EZOazg{vFvzG9JN@t|WQB``TGk$c3o&Ezy!^-aVV5>H z?Y=Fdm#A`NWe=Y2e`OSBIwK;AVTym`pZ4k!Y~{12pMbu3sEg)3jWWWbA3hgbQe84V z{;;?;K7__pG7h5$Fa}Ic1}XZXf|jT^KmTfh?9P#8p!?^xjKQ8QUox@-8;2d2uA{ze zpX*2rbRP;tdZHVml3}U|pAVx7iz5CNPlX5@j17s~?mg21TzuRYsn;F=Nep#cy^Rvi zCoXGCHlfrb*GK2W$nPfDfUq#`Rad;&BUs=s`U&!_cx}2?f~jAwV8|Wfe0xNnoB94P z^Zuyc{?!W$l=ADi7+IiJC*yzTg|LisH5gp9K>w3BSa!on!s`{8Tb^FX>4 zw@dtSA_dgwwl8@Hls>dj!(C5vpn-$c^4xQOMSX^yWsIdhwe-&np(6gSYfk+6gEwrK z^wrRiOfYd3fgc$=84_6=wa=ia*3(8(08u0mAB^EnrShm3{-7}xck;gJ)C&#hhl6XN zW%8KPhi~Ya+>2v_l{bG+!N)U{Cs7>!xxzOrZ4IM*V@N@)HuZ>U?#%XoX0a4j=$J2#Epc0Akqh0RTAIch8Ui?zwt6+1uK=v%7zH u*U?4-Aly{(D0_TI2f!g7AOHY}aPR + + + + + @@ -228,6 +233,7 @@ + From cefd4c286bdd144189aa44a83751251dd53a9525 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Wed, 17 Aug 2016 05:10:23 +0700 Subject: [PATCH 092/141] Ported Analysis.Bg + tests --- .../Analysis/Bg/BulgarianAnalyzer.cs | 230 ++++----- .../Analysis/Bg/BulgarianStemFilter.cs | 89 ++-- .../Analysis/Bg/BulgarianStemFilterFactory.cs | 66 ++- .../Analysis/Bg/BulgarianStemmer.cs | 328 ++++++------ .../Analysis/Bg/stopwords.txt | 193 +++++++ .../Lucene.Net.Analysis.Common.csproj | 7 + .../Analysis/Bg/TestBulgarianAnalyzer.cs | 139 +++-- .../Bg/TestBulgarianStemFilterFactory.cs | 79 ++- .../Analysis/Bg/TestBulgarianStemmer.cs | 487 +++++++++--------- .../Lucene.Net.Tests.Analysis.Common.csproj | 3 + 10 files changed, 891 insertions(+), 730 deletions(-) create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Bg/stopwords.txt diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianAnalyzer.cs index eb423636d0..30151bf294 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianAnalyzer.cs @@ -1,9 +1,14 @@ -using System; +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Miscellaneous; +using Lucene.Net.Analysis.Standard; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using System; +using System.IO; -namespace org.apache.lucene.analysis.bg +namespace Lucene.Net.Analysis.Bg { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,125 +25,116 @@ namespace org.apache.lucene.analysis.bg * limitations under the License. */ + ///

    + /// for Bulgarian. + /// + /// This analyzer implements light-stemming as specified by: Searching + /// Strategies for the Bulgarian Language + /// http://members.unine.ch/jacques.savoy/Papers/BUIR.pdf + /// + /// + /// + /// + public sealed class BulgarianAnalyzer : StopwordAnalyzerBase + { + /// + /// File containing default Bulgarian stopwords. + /// + /// Default stopword list is from + /// http://members.unine.ch/jacques.savoy/clef/index.html The stopword list is + /// BSD-Licensed. + /// + public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; - using LowerCaseFilter = org.apache.lucene.analysis.core.LowerCaseFilter; - using StopFilter = org.apache.lucene.analysis.core.StopFilter; - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; - using StandardFilter = org.apache.lucene.analysis.standard.StandardFilter; - using StandardTokenizer = org.apache.lucene.analysis.standard.StandardTokenizer; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using StopwordAnalyzerBase = org.apache.lucene.analysis.util.StopwordAnalyzerBase; - using Version = org.apache.lucene.util.Version; - - /// - /// for Bulgarian. - /// - /// This analyzer implements light-stemming as specified by: Searching - /// Strategies for the Bulgarian Language - /// http://members.unine.ch/jacques.savoy/Papers/BUIR.pdf - /// - /// - /// - /// - public sealed class BulgarianAnalyzer : StopwordAnalyzerBase - { - /// - /// File containing default Bulgarian stopwords. - /// - /// Default stopword list is from - /// http://members.unine.ch/jacques.savoy/clef/index.html The stopword list is - /// BSD-Licensed. - /// - public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; - - /// - /// Returns an unmodifiable instance of the default stop-words set. - /// - /// an unmodifiable instance of the default stop-words set. - public static CharArraySet DefaultStopSet - { - get - { - return DefaultSetHolder.DEFAULT_STOP_SET; - } - } - - /// - /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer - /// class accesses the static final set the first time.; - /// - private class DefaultSetHolder - { - internal static readonly CharArraySet DEFAULT_STOP_SET; + /// + /// Returns an unmodifiable instance of the default stop-words set. + /// + /// an unmodifiable instance of the default stop-words set. + public static CharArraySet DefaultStopSet + { + get + { + return DefaultSetHolder.DEFAULT_STOP_SET; + } + } - static DefaultSetHolder() - { - try - { - DEFAULT_STOP_SET = loadStopwordSet(false, typeof(BulgarianAnalyzer), DEFAULT_STOPWORD_FILE, "#"); - } - catch (IOException) - { - // default set should always be present as it is part of the - // distribution (JAR) - throw new Exception("Unable to load default stopword set"); - } - } - } + /// + /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer + /// class accesses the static final set the first time.; + /// + private class DefaultSetHolder + { + internal static readonly CharArraySet DEFAULT_STOP_SET; - private readonly CharArraySet stemExclusionSet; + static DefaultSetHolder() + { + try + { + DEFAULT_STOP_SET = LoadStopwordSet(false, typeof(BulgarianAnalyzer), + typeof(BulgarianAnalyzer).Namespace + "." + DEFAULT_STOPWORD_FILE, "#"); + } + catch (IOException) + { + // default set should always be present as it is part of the + // distribution (JAR) + throw new Exception("Unable to load default stopword set"); + } + } + } - /// - /// Builds an analyzer with the default stop words: - /// . - /// - public BulgarianAnalyzer(Version matchVersion) : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET) - { - } + private readonly CharArraySet stemExclusionSet; - /// - /// Builds an analyzer with the given stop words. - /// - public BulgarianAnalyzer(Version matchVersion, CharArraySet stopwords) : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) - { - } + /// + /// Builds an analyzer with the default stop words: + /// . + /// + public BulgarianAnalyzer(LuceneVersion matchVersion) + : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET) + { + } - /// - /// Builds an analyzer with the given stop words and a stem exclusion set. - /// If a stem exclusion set is provided this analyzer will add a - /// before . - /// - public BulgarianAnalyzer(Version matchVersion, CharArraySet stopwords, CharArraySet stemExclusionSet) : base(matchVersion, stopwords) - { - this.stemExclusionSet = CharArraySet.unmodifiableSet(CharArraySet.copy(matchVersion, stemExclusionSet)); - } + /// + /// Builds an analyzer with the given stop words. + /// + public BulgarianAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords) + : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) + { + } - /// - /// Creates a - /// - /// which tokenizes all the text in the provided . - /// - /// A - /// - /// built from an filtered with - /// , , - /// , if a stem exclusion set is - /// provided and . - public override TokenStreamComponents createComponents(string fieldName, Reader reader) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Tokenizer source = new org.apache.lucene.analysis.standard.StandardTokenizer(matchVersion, reader); - Tokenizer source = new StandardTokenizer(matchVersion, reader); - TokenStream result = new StandardFilter(matchVersion, source); - result = new LowerCaseFilter(matchVersion, result); - result = new StopFilter(matchVersion, result, stopwords); - if (!stemExclusionSet.Empty) - { - result = new SetKeywordMarkerFilter(result, stemExclusionSet); - } - result = new BulgarianStemFilter(result); - return new TokenStreamComponents(source, result); - } - } + /// + /// Builds an analyzer with the given stop words and a stem exclusion set. + /// If a stem exclusion set is provided this analyzer will add a + /// before . + /// + public BulgarianAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords, CharArraySet stemExclusionSet) + : base(matchVersion, stopwords) + { + this.stemExclusionSet = CharArraySet.UnmodifiableSet(CharArraySet.Copy(matchVersion, stemExclusionSet)); + } + /// + /// Creates a + /// + /// which tokenizes all the text in the provided . + /// + /// A + /// + /// built from an filtered with + /// , , + /// , if a stem exclusion set is + /// provided and . + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer source = new StandardTokenizer(matchVersion, reader); + TokenStream result = new StandardFilter(matchVersion, source); + result = new LowerCaseFilter(matchVersion, result); + result = new StopFilter(matchVersion, result, stopwords); + if (stemExclusionSet.Count > 0) + { + result = new SetKeywordMarkerFilter(result, stemExclusionSet); + } + result = new BulgarianStemFilter(result); + return new TokenStreamComponents(source, result); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemFilter.cs index d89426cf1c..0e742ffbcb 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemFilter.cs @@ -1,7 +1,8 @@ -namespace org.apache.lucene.analysis.bg -{ +using Lucene.Net.Analysis.Tokenattributes; - /* +namespace Lucene.Net.Analysis.Bg +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,51 +19,43 @@ * limitations under the License. */ - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; // for javadoc - using KeywordAttribute = org.apache.lucene.analysis.tokenattributes.KeywordAttribute; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - - /// - /// A that applies to stem Bulgarian - /// words. - /// - /// To prevent terms from being stemmed use an instance of - /// or a custom that sets - /// the before this . - /// - /// - public sealed class BulgarianStemFilter : TokenFilter - { - private readonly BulgarianStemmer stemmer = new BulgarianStemmer(); - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly KeywordAttribute keywordAttr = addAttribute(typeof(KeywordAttribute)); - -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: -//ORIGINAL LINE: public BulgarianStemFilter(final org.apache.lucene.analysis.TokenStream input) - public BulgarianStemFilter(TokenStream input) : base(input) - { - } + /// + /// A that applies to stem Bulgarian + /// words. + /// + /// To prevent terms from being stemmed use an instance of + /// or a custom that sets + /// the before this . + /// + /// + public sealed class BulgarianStemFilter : TokenFilter + { + private readonly BulgarianStemmer stemmer = new BulgarianStemmer(); + private readonly ICharTermAttribute termAtt; + private readonly IKeywordAttribute keywordAttr; -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - if (!keywordAttr.Keyword) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int newlen = stemmer.stem(termAtt.buffer(), termAtt.length()); - int newlen = stemmer.stem(termAtt.buffer(), termAtt.length()); - termAtt.Length = newlen; - } - return true; - } - else - { - return false; - } - } - } + public BulgarianStemFilter(TokenStream input) + : base(input) + { + termAtt = AddAttribute(); + keywordAttr = AddAttribute(); + } + public override bool IncrementToken() + { + if (input.IncrementToken()) + { + if (!keywordAttr.Keyword) + { + int newlen = stemmer.Stem(termAtt.Buffer(), termAtt.Length); + termAtt.Length = newlen; + } + return true; + } + else + { + return false; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemFilterFactory.cs index 1f096919f9..1ba70d9c3d 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemFilterFactory.cs @@ -1,9 +1,9 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; -namespace org.apache.lucene.analysis.bg +namespace Lucene.Net.Analysis.Bg { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,36 +20,34 @@ namespace org.apache.lucene.analysis.bg * limitations under the License. */ - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_bgstem" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.LowerCaseFilterFactory"/>
    -	///     <filter class="solr.BulgarianStemFilterFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class BulgarianStemFilterFactory : TokenFilterFactory - { - - /// - /// Creates a new BulgarianStemFilterFactory - public BulgarianStemFilterFactory(IDictionary args) : base(args) - { - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + /// + /// Factory for . + ///
    +    /// <fieldType name="text_bgstem" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.LowerCaseFilterFactory"/>
    +    ///     <filter class="solr.BulgarianStemFilterFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class BulgarianStemFilterFactory : TokenFilterFactory + { - public override TokenStream create(TokenStream input) - { - return new BulgarianStemFilter(input); - } - } + /// + /// Creates a new BulgarianStemFilterFactory + public BulgarianStemFilterFactory(IDictionary args) + : base(args) + { + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override TokenStream Create(TokenStream input) + { + return new BulgarianStemFilter(input); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemmer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemmer.cs index dda3b5d8ca..0b8c3396f3 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemmer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Bg/BulgarianStemmer.cs @@ -1,7 +1,8 @@ -namespace org.apache.lucene.analysis.bg -{ +using Lucene.Net.Analysis.Util; - /* +namespace Lucene.Net.Analysis.Bg +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,170 +19,159 @@ * limitations under the License. */ - using org.apache.lucene.analysis.util; -//JAVA TO C# CONVERTER TODO TASK: This Java 'import static' statement cannot be converted to C#: -// import static org.apache.lucene.analysis.util.StemmerUtil.*; - - /// - /// Light Stemmer for Bulgarian. - /// - /// Implements the algorithm described in: - /// - /// Searching Strategies for the Bulgarian Language - /// - /// http://members.unine.ch/jacques.savoy/Papers/BUIR.pdf - /// - /// - public class BulgarianStemmer - { - - /// - /// Stem an input buffer of Bulgarian text. - /// - /// input buffer - /// length of input buffer - /// length of input buffer after normalization -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: -//ORIGINAL LINE: public int stem(final char s[] , int len) - public virtual int stem(char[] s, int len) - { - if (len < 4) // do not stem - { - return len; - } - - if (len > 5 && StemmerUtil.EndsWith(s, len, "ища")) - { - return len - 3; - } - - len = removeArticle(s, len); - len = removePlural(s, len); - - if (len > 3) - { - if (StemmerUtil.EndsWith(s, len, "я")) - { - len--; - } - if (StemmerUtil.EndsWith(s, len, "а") || StemmerUtil.EndsWith(s, len, "о") || StemmerUtil.EndsWith(s, len, "е")) - { - len--; - } - } - - // the rule to rewrite ен -> н is duplicated in the paper. - // in the perl implementation referenced by the paper, this is fixed. - // (it is fixed here as well) - if (len > 4 && StemmerUtil.EndsWith(s, len, "ен")) - { - s[len - 2] = 'н'; // replace with н - len--; - } - - if (len > 5 && s[len - 2] == 'ъ') - { - s[len - 2] = s[len - 1]; // replace ъN with N - len--; - } - - return len; - } - - /// - /// Mainly remove the definite article - /// input buffer - /// length of input buffer - /// new stemmed length -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: -//ORIGINAL LINE: private int removeArticle(final char s[] , final int len) - private int removeArticle(char[] s, int len) - { - if (len > 6 && StemmerUtil.EndsWith(s, len, "ият")) - { - return len - 3; - } - - if (len > 5) - { - if (StemmerUtil.EndsWith(s, len, "ът") || StemmerUtil.EndsWith(s, len, "то") || StemmerUtil.EndsWith(s, len, "те") || StemmerUtil.EndsWith(s, len, "та") || StemmerUtil.EndsWith(s, len, "ия")) - { - return len - 2; - } - } - - if (len > 4 && StemmerUtil.EndsWith(s, len, "ят")) - { - return len - 2; - } - - return len; - } - -//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: -//ORIGINAL LINE: private int removePlural(final char s[] , final int len) - private int removePlural(char[] s, int len) - { - if (len > 6) - { - if (StemmerUtil.EndsWith(s, len, "овци")) - { - return len - 3; // replace with о - } - if (StemmerUtil.EndsWith(s, len, "ове")) - { - return len - 3; - } - if (StemmerUtil.EndsWith(s, len, "еве")) - { - s[len - 3] = 'й'; // replace with й - return len - 2; - } - } - - if (len > 5) - { - if (StemmerUtil.EndsWith(s, len, "ища")) - { - return len - 3; - } - if (StemmerUtil.EndsWith(s, len, "та")) - { - return len - 2; - } - if (StemmerUtil.EndsWith(s, len, "ци")) - { - s[len - 2] = 'к'; // replace with к - return len - 1; - } - if (StemmerUtil.EndsWith(s, len, "зи")) - { - s[len - 2] = 'г'; // replace with г - return len - 1; - } - - if (s[len - 3] == 'е' && s[len - 1] == 'и') - { - s[len - 3] = 'я'; // replace е with я, remove и - return len - 1; - } - } - - if (len > 4) - { - if (StemmerUtil.EndsWith(s, len, "си")) - { - s[len - 2] = 'х'; // replace with х - return len - 1; - } - if (StemmerUtil.EndsWith(s, len, "и")) - { - return len - 1; - } - } - - return len; - } - } - + /// + /// Light Stemmer for Bulgarian. + /// + /// Implements the algorithm described in: + /// + /// Searching Strategies for the Bulgarian Language + /// + /// http://members.unine.ch/jacques.savoy/Papers/BUIR.pdf + /// + /// + public class BulgarianStemmer + { + + /// + /// Stem an input buffer of Bulgarian text. + /// + /// input buffer + /// length of input buffer + /// length of input buffer after normalization + public virtual int Stem(char[] s, int len) + { + if (len < 4) // do not stem + { + return len; + } + + if (len > 5 && StemmerUtil.EndsWith(s, len, "ища")) + { + return len - 3; + } + + len = RemoveArticle(s, len); + len = RemovePlural(s, len); + + if (len > 3) + { + if (StemmerUtil.EndsWith(s, len, "я")) + { + len--; + } + if (StemmerUtil.EndsWith(s, len, "а") || StemmerUtil.EndsWith(s, len, "о") || StemmerUtil.EndsWith(s, len, "е")) + { + len--; + } + } + + // the rule to rewrite ен -> н is duplicated in the paper. + // in the perl implementation referenced by the paper, this is fixed. + // (it is fixed here as well) + if (len > 4 && StemmerUtil.EndsWith(s, len, "ен")) + { + s[len - 2] = 'н'; // replace with н + len--; + } + + if (len > 5 && s[len - 2] == 'ъ') + { + s[len - 2] = s[len - 1]; // replace ъN with N + len--; + } + + return len; + } + + /// + /// Mainly remove the definite article + /// input buffer + /// length of input buffer + /// new stemmed length + private int RemoveArticle(char[] s, int len) + { + if (len > 6 && StemmerUtil.EndsWith(s, len, "ият")) + { + return len - 3; + } + + if (len > 5) + { + if (StemmerUtil.EndsWith(s, len, "ът") || StemmerUtil.EndsWith(s, len, "то") || StemmerUtil.EndsWith(s, len, "те") || StemmerUtil.EndsWith(s, len, "та") || StemmerUtil.EndsWith(s, len, "ия")) + { + return len - 2; + } + } + + if (len > 4 && StemmerUtil.EndsWith(s, len, "ят")) + { + return len - 2; + } + + return len; + } + + private int RemovePlural(char[] s, int len) + { + if (len > 6) + { + if (StemmerUtil.EndsWith(s, len, "овци")) + { + return len - 3; // replace with о + } + if (StemmerUtil.EndsWith(s, len, "ове")) + { + return len - 3; + } + if (StemmerUtil.EndsWith(s, len, "еве")) + { + s[len - 3] = 'й'; // replace with й + return len - 2; + } + } + + if (len > 5) + { + if (StemmerUtil.EndsWith(s, len, "ища")) + { + return len - 3; + } + if (StemmerUtil.EndsWith(s, len, "та")) + { + return len - 2; + } + if (StemmerUtil.EndsWith(s, len, "ци")) + { + s[len - 2] = 'к'; // replace with к + return len - 1; + } + if (StemmerUtil.EndsWith(s, len, "зи")) + { + s[len - 2] = 'г'; // replace with г + return len - 1; + } + + if (s[len - 3] == 'е' && s[len - 1] == 'и') + { + s[len - 3] = 'я'; // replace е with я, remove и + return len - 1; + } + } + + if (len > 4) + { + if (StemmerUtil.EndsWith(s, len, "си")) + { + s[len - 2] = 'х'; // replace with х + return len - 1; + } + if (StemmerUtil.EndsWith(s, len, "и")) + { + return len - 1; + } + } + + return len; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Bg/stopwords.txt b/src/Lucene.Net.Analysis.Common/Analysis/Bg/stopwords.txt new file mode 100644 index 0000000000..1ae4ba2ae3 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Bg/stopwords.txt @@ -0,0 +1,193 @@ +# This file was created by Jacques Savoy and is distributed under the BSD license. +# See http://members.unine.ch/jacques.savoy/clef/index.html. +# Also see http://www.opensource.org/licenses/bsd-license.html +а +аз +ако +ала +бе +без +беше +би +бил +била +били +било +близо +бъдат +бъде +бяха +в +вас +ваш +ваша +вероятно +вече +взема +ви +вие +винаги +все +всеки +всички +всичко +всяка +във +въпреки +върху +г +ги +главно +го +д +да +дали +до +докато +докога +дори +досега +доста +е +едва +един +ето +за +зад +заедно +заради +засега +затова +защо +защото +и +из +или +им +има +имат +иска +й +каза +как +каква +какво +както +какъв +като +кога +когато +което +които +кой +който +колко +която +къде +където +към +ли +м +ме +между +мен +ми +мнозина +мога +могат +може +моля +момента +му +н +на +над +назад +най +направи +напред +например +нас +не +него +нея +ни +ние +никой +нито +но +някои +някой +няма +обаче +около +освен +особено +от +отгоре +отново +още +пак +по +повече +повечето +под +поне +поради +после +почти +прави +пред +преди +през +при +пък +първо +с +са +само +се +сега +си +скоро +след +сме +според +сред +срещу +сте +съм +със +също +т +тази +така +такива +такъв +там +твой +те +тези +ти +тн +то +това +тогава +този +той +толкова +точно +трябва +тук +тъй +тя +тях +у +харесва +ч +че +често +чрез +ще +щом +я diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index 6d2bb6637a..bd163da87f 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -44,6 +44,10 @@ + + + + @@ -420,6 +424,9 @@ + + + 2+E)!opgbpCT)Ku}!V7b)RS2N|ek18v9yqjMwNJ zcI+n`D6K79rdsp*EVM%;o7ZRYW_aMVYNq(Xlvv->al*bq<{-p5@q5~6rWdunMH|b& z=Gw);`b|K0_y^Wo8yxAU9qf$nEml@DwU#PLAFfQ#RSX3_*WfG~ou{y^F1$>i^_URy zK7;ec-btb`&T_z;U-+5b=o*63%5zV<^Vm~se0^(8-x7Q)U3I@WZ@Y_&XA^ou8RIq{8ewrKaR%$DQ8rvwrQC18Z0ANT2t}qGp~T4P zv1%_Aud@`<-YEvgHz~8eRgCcTP!F`@#f@Hy!lKs>$9POxPKPw8gKj2Z4ti%W`whX+ za44_38}}Zurk~{FD(9MvWYQ-CZo7800O5w1&9}WaBZqe;hak5n2dNAY7BhTY5LY_vK7Of+%z_+vr7^p!1OfmDKd}NQkf&YbZ&6vyzXWW+R%6< z#qlWap4$rvXgEt_kPMAXKhxOe4Ko19rU#DEdez;drrQ*pM$nxudt~jY#hz1;0^hj{r;0Kg# z{`J4v7sZSH?{kCKvhgFArd)=rbie)!zh6+S@Wo=;^GpC_f^ZtZ`$^)YH{9V1U&6f@ zt0LoT!`OL-uaNjHV=}>(K76GI+b2L5geE%MG!mCe&{XKGBcC6zXIl6%VQGH+0Qm=r z?>&8?`oc2xI%j*RBb+Uqet<%wyWgJsETkR@!7GF*;krI9dybTl16@Fo4v{m+X&ktK=gN|># z>EIQ1!>0Wz8{5x?qbGYP>(Ix?apS{T|DDf2iixY~H(tL>5w8t5C6`%37d)v;p4gBb zQZ_kwXdHPuYM$;4<<2mUEB1NG*x?iP*}*-08J~u6^g+0IEa@3K#m~8&$$7m`F7f+3 z3{W4}z@A8o6)YWTola6IOCKuBN43m4*Uv`=NXQOmi{$WgE{Y^O#uC@-hc2YVPC=5S z#V^sHq>6(?izbB;Zf3>hhnQ?f&n^mrt#aBFA$LLEWJtZ0S}IWlGvrIfEwm${irI!KP` zA*--HObx2nM$2qxwF@EXwW-{i%DqWTS6hzgLL83YVqd1(lJ2-K3yyxBF_*jOs&dw* za>xCls7=GTG-)F*bF82y$-@}t?gXe!7PmXH(dRvCK4{tnsUq$&v}2H$!5TPVoF7x| z$S{*iT2+^EV8x!XXEZdenf9=b*}-$L3}Mf-P=?@hhwfZnNmq07MV33^I)>5#Spbe0 zS9(_#pEV?A_sLWp%S)49cc0iw8?3O0 zB@vzi@e7?mRw3+Ss*jRld*Ky`?q_D%xQcDsBPbx(l@qIKsQbz&A8-GhB_#o!U$nELB+4@#T%}T z=^WogJ3k|)lUBTBc&-|!amv<8;z5Qk^p>YF5ss%1IwQCM>fT@);5?oYC^p^ zdZ(ufq&j=Fe!}b2>CSWtGvP=LHDR<=xSWBZ)V&2ObzN54xsiHqs!N}E$y{)LYcR}o zU7z20Jg8{yK*Q6m>B*jpp-do7g3fK$&%A(zbhgrC;bPa9IebFklT6w+C~p`wgZ7TB zQ!d}EkWCdd(cwp(WB15~z#_g`)>#)6sm~UQ4Xxr7%UhIGX&;zzXOHl~DR(mPNoAe~ zWJ){_&K7($650t0N^C4isv3AGLb6aSnQ1y;5ltXz)F23;cc?f5Yv_OY)g1^#%F zz*Eqv>=ZX6rT5ZmaPe^hs&P@y!tIwY%7TZcT%!8^d1+k%2VHC7&iC~3`>v&t&pj}NLj6Fk0iHc-`? z!sin;&IIr8iDkc{S=9nsV_VbMicei|4F9r50?%H~Y&qVp_G}GgbL~0D4Zdfq)kM0P zub~*f_7)V>)^ckqF3pkAD!;Op>8Z=UgA(mlcy$_CjNy0bgUA&R>CWPsXJyiwRD?^? z_AlR{88t4&oiayoXX&L_UCGt&YuuMFNT_#o0QT60p(~K6}8IeKw z+Hsv{V68SxH->T(B8_n#`zLz2IEZEz*qE7d@idIFOV>Dj-&-(UPElO1UV%nKqE;qX z8LcVZ7>04dm|i%I^A+n68kqFy2&47g+4EFKu*xIX#;b}Y3>?aD;6}t08 zm07~QDLGSZsZ32ME91ymhDLZh!PRH3xrU*a7@R5H87vcxsf^Mnp{Kw8`<&a3DTn7= z^(ZCEnNb{a-J!>+VS4I`p6d&x?lAxu=hfYEpW%q z17%VwEQzviwmk5!oCVX>ZISA|1law887`t{dWvH?jipJhkEB+Xx24yb(ygT!pS*!b z+k+tSE}7HCzjr&d7)(}?2hev=(11g$+fYi+xW(>IDb zkU#0cm}=WFLf0GgLE<;2+l1`c>3NTaJW9SQjN>$0N4V77H!7KZQ|m8z30v%8Y3x3K z*4L={h(2%|`5_aF>JU@sQaiNf-&uW=7&`b{ji>#B6UeBtZiNBo&?v_EwrF+p~ZC6){qlEr7^N9 z0~uCNXTx^{c~C>oY6TTSG)vD=o&a_{HqhOs@-2=sNzCI+BzQDQ@S5_ykB$D#z**}p z<<2rpA>DaPH4ZGdDU>0OQU@)+D_y)TUA!$_yv=XC%`Yw#ahanzHnrY_dhJgg;iD0N zccA%57q3o8ibtOIO=bmV*@sO*Yyo$7j%Z~$R65jxO*TOXxbf^C z7|LnQW%GEkmc8+EOEnY=;0!W84x0{-iJyjD0=i`qnU2a*2KW@_A{pddw&*|{Tt@Wb zhTI2eYpd70o51*cM0;)ck!>4B3H_Th!75siem|0 zdcdJc3fsXq86+b7n%)4uOvN*^0+@&rI#(#lDVj(fr73h(QJo?&je^45tue|kQiEMQ zx+V!j&t_QP8t3XFSerPD&x(sXJ*Nnh1OY#q6+B=Ed=io-@#mcJ)I9uJ&Xm#2U*?dc zvFSRK-jgknG9vaJCfg+_X=1_#nef(7AAtZ5&=C-2S1vw>CWrnW$496>~`vzG}hkEzv?8 zhFM`?%BNCNl@5yPrPd`@R%Jv6qC*_UF&~P{YT9#;pASB~f!SKn8dJKp?P*}ib*2eO zs(cd=u5UE63$L=7lIcjXjFIHPT3T68tCCd+qraXA z{(6c^jV1quI!|5FyrsM#Ale#n8X5&AWy*{ST}+cd?+SbuEy@Zs*phtW24m+VukB2J z*{6pesf$7nsFgj{_Y*2Z8hJ~1(Rs_^>^VbCqCOi zB1DJtSVa>D?l3+ReorpIuj-4wFhFW!kj2P^x2h=LDI z`tT@API(>{c-;gf9O}R1g~gA&uSm#>27FNiPknx5E&B%JLd?^~OM+YNK5;c=FYm_cXTRQ>Bg94lqd#I%1SP zuYiNQgD3mF$t-mFuD+L{@T&F-bmRECDs zN5g$}OUoUdPyEIXMGh|uoSAMo*=H24PdHWO(>y3B9wfOwY)SM^)fT)ZzSY^*RD3ywpu9EBu2y;+|1C8okJ z6f%=Q4~_0cMO!jlI=Z7y;9qKI2O}G%zVMyscC7Uoy4BM!w7P_Omjd zjaeU1hzCEQs9b7?*8Dr`@`>JoXU1!v^nDcNd-Lyd@O}I)w6_egL1lVu?8sErURAnJ zPM{@4ez@^GJ<$}|aq>O69l(-8YJ*%xbmAsR#;90f^ijCh_UpfaZso3#^k+AeI(Fdo zw(#T;+=%QuegX=HFgvZ2B#H}W5K0==D7xsD3}}gr6mUI+D7Ao)gDRjdAb_AukP?6D z;uVv|#f2}JMQ^b!Vi}{FWF=X4WH_zQ~VB0 z&d#P?UXXovF2fe!;|I76*JVJhvcv%|u*1jBhB8|Ngc%La8HyFYG; zyIA90q%IKC1NTdWEd#^mP#VA&-!>tBP4C(w1sU1eny9e2M(sSMiB_$j8@Fk+Rt6?< zv=>JzBOElOsWwIF4TG#EQ`_l6RS}-bE9@d7%(rzsA#mUm4*qyw0FA$lR++MVq{KXU z2Oe^gc?iBu(0BdxRlj2@a({X76#2nt??GqoVIOe-M766h4e7|480(Fq@gRw6i*%!Z z(4Fw1laC6LE-^f0KN5m;H`KsH$bmsfp7LPDal;0s@@rZ&yfQu)556ZMW`TvB67)1; zUJSXsSu~n^bpStp5e^*)fJ82$@gVn*7e99rRGbmXpu_}gTR)JPV(aMnApQ=j^J<-Gz%5Ka6=}jo1aY%V= z*>P=G4Ik3xKoOc(ZSa?Om^-7kNHlY&;~j8=#T)y3NquP}AT7t8{~k%p@J#dWVUL(NeGr)x zD0ni8tMsTzz}mgEm8#L#aKx-!i`AfOw9cE)eLeAi*~aR%qifm~)p9FL{!kujuh1vT zZ~&fle7s3h;fEm1OA|}oV&s{qfS>5SiYCWPfs9xj;AE9l(P`DGxio5P=Li_MujYi~ znGusOQw=Uw+z$&i5 z!QSC{4J5GH2at&_Vavo&@-PV%Smr>8ZdBl8|4HM!u&l+QU;mYhC>TOzv2FuxOJ(G~ z0WC*skwZ5$mRrkRAmIc*^lE?j&@D58&=Kk-YL;s9fu|RABtENSGP`)um_4U6y~9N? z!+qXS-{qKpcAA&H5SNT+izq*_hG|G|oVC+M6EC!Yb+v#tQEH7wDNrA$AkNDsv2U7@ z8kHLHD$B5itb}W0Q_$-gQII2zDvKB+H&R}drtO&KB7$@!bt~02>PKxAB|lMrqIp%7 z&q_}?Vk7%Au+y%rbK<^C2;QelNe@~6WuQ_|%GSB6%I--1&y2~>EYglsNi^CF%=El6 zfTQz&uI}yYQsD>G4U~;Uc_8|Kj)3?e!_OaohQFXISy4dp_qt&^D@aIaJMdLD^ZuzD zd^?n2Gw~IEP?e3QR^8qE=Z`YYX??FhB9v-%Dp+Cf@1IYU@M6DW7YnCqxlH(hX|&E) zmnxgutuxN$AdB<)76vl#H$9(SaR~@%(3&qDTQiZ?!!7Dv6Yk>lP{@cf%bNhRW!cUuF*+=p4tdY0v(f} z&hynqH&ZnmpfjQ(`uGJXubn_kYF)9f_Mp@%&kF(4ELCxcofO&Gd41C>13%v~)49I+ z^9{sKK@{tmKKPg7y0rCO89ELh$VsyZU|a#f57?Ivu76zdsVr%gP7R7R*rk&S9rte$zSX_aRlVB@BT%PxO@;3Y$-lMkJ;AK7Vc z{g4WaCoUrf{^-h<^@A1v!DjebS$4!x*j-?!EBgf#eYXG%IJUV^QC*Ujpm_5O9;X3L zpVL^x{5)~z!}WZM z!YXxB2nvHq2wvhUpB%PVkboI4K0nWyo`J6*5a4xZ7YPWcYoh*}zd7$UIw{XLeI1IR zRO>~Hv6G3pH8IOQN)=A3>|z?Q35TOra-kus(ImK{T)WOc!P-6-+UM3c)by@<;sh5&yjYPH@`` zKP)FxiilUf{=BmF=W_in*Dv^7QT=&c8X_?Ky>v|U&rDK8c>=%vlJ-C1Uypbd=`Z+! z-|70jO7_?D`hCK0RN+s^2K-*y`;y+*?*`$vE8y27eqDdBTz>`l{Q<%cke=%U|B{?g zAsHrB)bx(1yg^2%E014L(O(k^PP+Oy`V}=adTR7i>B(YBnS)YdPiLFs`x+0u_lHv| zL%OwOj&)=k1;Cc~5~3WZ&u4vzNGw|>bE#x57S}})6D(}wX0qUs!kYxj6V*G0!;Gb?O0S!m z$d$*cw+l@WJIG#05z%}Zrn(~s%Rjaod2Rc?0~E&RpqfzfA{sSwe) zog08k2ufQv`_3vScW{0VQH$4Mmg~WSg3yx@N+XulGxAl7WI6hk`yhs#2Yymz z6)YX%6Qp9+hEa1|T666^NGT7ZrG<*Bd0yg>ml2J_IHD`B=cBw8S2}RLMqOXmsOt+d z5#jg8dOYX{v~{KK^%6uaq!!k3xoAyds~_+h4?|SIk~u}3>!lyi;4FlT^@2xxAqn%a zVEb5MNU^?AnyC6&i%y)VVWC7MIcxH+>dB5pZOfDfD>7B2WkX(8rw_pvq$oSgXDu2$=14$6oau5MvT8F{ zu>h)>pbA_6h%j=W;P=wu&`;}iM{)hRBey-NG{)w=#(;dcY!8m?Wp8Q01B1D;aBV2p$dT(>1ZuDg;SkUU291J0ix*ZK3~ zJzd=bC@28f;f%a~P{w|T6g;JVEF?vg;XuRRV_&z43CI^s;jeh*kA6|V+8@S%5|R>W zQ9jGUat+oa7DgZv{11WuTpE=A2c`*Mz-IY*W&0W67bg1fhZWW)R+qr~q5yK)p{#y* zpysB&vARvQdCdO zoTC_&r6vl^DacAcYsL|aQ`J`5IQd%2N<}SlRLzE0*)D|3u%kFe7|>}puq;3AQtYeR_A5Mo`MdW0h%&bMpaZ;g}P-;>o3$V!VcK~2D2(uLEVeoGBto&7^3 zLnEejUQw;{ilz}8IpS!irE!>497PcIG&CBe)ORLQ)6>d@`GxAG3& zAhDV!t`L0gXKdHR3GAi8*vZs{yLe#h>iqJycSIE4rTYctmD5@yiRg6)awmPId1 z0a@iE!y1=?HSbr&mrJerD2mC^c}1UUtYnTXl0L5w`avyC=9#We8m4VHU!sZ)b|Ghx z(KQB^=7gHz(z4H0FRR4+2~kp%!$P8ik~7x4h2MGcM9f@Nb>H9X%&mk}G2rUFhbo5Y ziFI!{KOe*Ahxp2974<7f<>4JY2}zDeqWf5uN>o@J3_U%R9fnHHiZpnTlt?`(qd9yM zg~+g2G{^Pq6uq+Dg-Q28G(#g>`OX$^ZRO4qZ{v$MS=WTFfv5Tzh;dt)fL*CQtq6}E^2CYt%F^vV3$tQyyh$|krm^7%u!Ja=Ze%C zscc%Lfq~2{O>J^X&KHy&%tkd2iO-1IH(CV7O2>8$Drx6BD^@%PxRYE4!_ym_##ozMYbZk;N8ZvriV+uHn*=vBIc<0IL64Hr;rjW5Z$Yr{yzbMVFmjrM z3RjPS`9SF+?@NZJiuV8u3cLk7iAu0*L{Sg{()22}a2LGr(;%f$78i|nX5n~oEQ zq%h?8NyG11o90ZgIOjnE=@!?_;Ad_BnZ5oFA8DwU=ui-r6~+e9TMi7v>|v4WX$-UG z-Yoe134TR;2FlP9giu#!Bu-Ch7a$AFLJ)jb-25oKC@iaJqOVy{Dn;5PLpjc@I#V%j zbQDSUaVS15{HahJ9gySa0~cvTe6c6tRCF4vB5($Mbyxsi2AnP3TdX*pZD7JLr!X`! zLbH|1=wf|>4D`gZOolz@x8X)XWY&6Yx=V<+#~GVkRe8&xC}~*0!^M15INfny1e*Ia zV;KaBU8?cL>sZ-<6OC*d$ig@ZRW;M730}K!2hNF*hzx5ll87reDQ#4kejePVU-MSgkVEQYUVmu>2<1X1Cld6_yI88!nyN zz%(!sz^kVvk_0uGw|od_i&r=XQ71h+SQEq3N-Ie6V`QaU50;5O z!*f|*d_+NUxOCJN-inU2jA*n&S{dfa;n{E;LYJb)eH2kj%xcr%V$EI6>>iVYe4NVfW~}%mhg7HAcNYf8ArXcrCUoGSzvE+ zT9x8-HtzVPP;P*rIi7~pYSeQF9qZwt=rA;7FQdWXH1Hj3n&Q_^wHwVtshCThq+7|T;P7) zcS$2eg*on>@25~85TnW^*5=AqoUJmP=a*%LKx5C}T1%-@6$hMzmNo>6!$ut}BUkIl z9G^Bl_VD%@2~ln=NOsh^=-LoFXs>5;l7VAi<2>zOa&$>^mN`p%X0^6SzJ|v5ol!4p zL#y^ML#y^Ey)~P`)2siA2dv$D`H+f7uCa3*dQ~;>eS{;=p=0@7lre$VzBh3)_MWeO z>vKu4a=Ti`3&w3fE5Cqn?D%Tp{MJ|6-9PXh#5#5?zlm~QFEPjU(Xo+N-QvD+O#jU7 zw|-|nm(wmIH63}@=hOGD)-n7O=kkBy{7+r&GEhQsE)%1>)9mae9QfoLgXT7>s zz144A>-zlOx9)Pjb8ZVxu9fE&J}Z3XsP2r2j{WN1(hQY1d_ZC8s_Vi?hpu&XeeYUV z*Z00nb$#R9Ru{R}p67F^n;nqeqkQL**H2t_H@2$q(6e{!-SR*2sVn2wYm~F9BHULv zdRjYfS5u6==Qh*AtbwQ9Kvd3k8?%);H5&MoCOV{@UullVIJRPsVroA093)&j!bhI! z8=1y1_D=uUx5)w1%5%T22ynN#$E7WqGu;OHzYQ_=_s&On!-(QKZu?_|hrW9n_>$)* zysx|NFJ2L0z+3I;qt2%F&DZSD%58PSjb2yn1xaUHOhrfITa-h+tzVM4OJuh1i*{q6 zFuuA99U)o2fjEw_Hk_JEFV)gA#=ZMB^0f&+P#9nJsD;l`hk1W~O~RyeMR;|g)0gz^ zMw|z|Lnn784s||NG@TD_?eM5{XT7?nuhpjkpthH_3J;`m*k~Dt1KwQ1p!~XM%2aPF z&f>VuuHYLG#_h_-dS&zpHHJ_JtHYI>a3enNT1r9L4vWTn?3y6otCV_*@4650 zP)IW@4b8(iKvNs|h}$No3dl;O(3eQ;#AEAjj!xHNa1Q3sPrnJnHR0@GGZr%00LTXD zmnJy3e%6^f=0Xy~=QuW>3_UGWG(I*#fmXk<2;Iwyxm#)JGWN*V0BtWTj~+z<4(YE6 zrOCf%sl#$6bR%J{TiaW;Fqq^lmTdcJO` z@SS4_P5UU2G~tc(!4IoY$LC;XNkbf4x&;~;iLA5)g^oGb>x7NZzaQ}Dk|1KpEFAR+ zhxQtgVjf^vaQ%UYD)4hD^8?>>gSX#60`VQ;n}H7zE&@-kVKjvCL3D5#ApzEiL|CF1 z;Y;S2$QDt{PW=12`bM&$3=~q>R+NH?c$%nEoCSlUR1Cswa7dIaD;I}m3TNacU=Ihs zq+!XO_70@OK>qrD!!jD`P*`&~uUmXnsyBW@ip%~~e@RhMv{!9$7}w^9MG8TU>> zJ-0fZawICkT4`D7m^5V89L^4hikFAeyd{P^O9_2kl0nf+t4~#_wlzQS2b7F?0Djdc zOgzu|Zloj(a~(5i`*VcfaK*+I5picAMp;pCtUOdUN(Z6GRIZL2b!=** zz&8}(m$a28@lgcwJP#pHcyZwBp`d%lmuX4%ERA3hxW62ZQ>ytgmCO)CL3pF(5N2gT z5w_o&c-gh8;ZWNu^-Z4#H=G?_D~{ck>6NYASz@@gaMcZMH+d+b%5tJt=cFjCqJ;^{ z@TM|m5G6rT2m)-MR_8f&US3HiM<+U$ zSowH4SC;G(!FJ8^x~%&{1Ry*ToAL0k9LpbkK>$Wa0m=#iAmY7Xd z7GMyd;ijUnXjUt_w=7z&;FZX?R1Te&Op`D{v(^i}CP`9m-ExS}>ERSL@Wa$ct&6!# zeUim;1_-bA`$i%al@%}Zu?G!qre+u};nm{Te^G+ZbY7#w2}i-G2Cu`W|NG26Qy|S5 z<{rm_cRoNP&h*Z>7H7d^P%xB)A;S4A8lvOmprXPEk2ph`zV9)Xt))d{70S0Lr0}Vy z+AIKMgYhB5Xatf02RLyfWkl%8Oxqy{C!$)D6iu1Y-Gj0=>f9w(I1KB2Q>XUW7Adwx zid~UnSESfx#9oA=yA|VI&|cSYjO55UUF)J~WpKo%X*5#7IM+JUhbDnscgz820OvrW z(c*a#3olv04|j16c)bcPotWX{F?)`e_g}yW2xe}97d)5)Ih_~sb^WZ=P*3SnsbqTu>yu3QLUxOpMA_b5=oO+mg#2rcl z%K(-R#Zk&}lrj$!8#qckj?$h-Xvq2!&NQCvprsv>@i>SzPJ>u^PdCDG@=?Ub-FmsV z0`0Zla!S3cuB*WmIv9~AM+n~8BcH|T zv4Pix*H#|2_IB8+kM^@6<4QM?WGog48682YW9fES^U7y^A2?YQKr%$J)og^ahMio5 zMWM3T1&&>W+s3cI14V@l`*V`oL>cK8=)~SsYgLSX!`UJte9iEPeN-=v!^(-!6cc?$ z8yBF=_!aHsA$O1+r?C%lXW(H{>n|%v*ihJ#X}e{h88=5Zs_tfx6$KYPpN_==s8PNe7qESNJ$2V-4y1Xjc;WA)D$2Ku)4s^cYWDPeyk`b5nx}Vfj5;f1M<_9>K z|Ky{J1OMo~9p;mZ6*L?$Bv3Ef?ep266qGxDP6$&>>wG^gp|pt<`OT`caf}EbL5C- zhw}m-Yrt0}FG#X+`Eat>iqwEJazAuyPs8xC`V|Z^Zaa8vc<|8hsE&fAB)VKH4U`5f z9|{rR4TxD@%61N^2_WaHff5_NaVVA67@OpNQe3O5U+j<1qnU9bSHAwc0kt+m9=3Aq zB1f;xJG&+x@Y;owFP8X)cpXCHH{xr|(FfAaxaeagP&}8h_P}t*r9K1cmC>8bkX#}) zHTP5*isH$0=?A+2db8Cg5z9D<(^5Dq?ERfZx-;O1$8n7LTGMfh-QzntjGG&9gHK^D z)4odH4|rbw4$m)aW+<=@T~4LrY*RyMeu@1T;|Vr3V4Nykj8D$6my!Pwlpdbm;BB4CAMqK2P9C0Tq{1sJvXy+*uc;hFQ9n40jWW4mgv8b!C zUEL(@oq_0<70k)JVqW25jtZOSl`@KVk#HyT#tEx8413=p&k;xIBngQXSm=<#KoL$6 z*hU0DR|2m-ym5nelD_^!^4EVrn*<|+V&R#D3`WTB7Ya$F3BQiT0s_4*f{aH_SxsZf z&j4nXaa}@s%(-ymoV>O z00%OvPEO{!bIv@hXb`6mXj?3!(}4D&OYaqjF~(txANV+?oC}OrJR?Xcp-u6+z6{|6;8+h=wzhnuD2aOr;qI!GA85WY1s4qUh0O86>SuGAwo#BSV62TE&Q^PsD z$lMq*Wih*Q7n2lf+nAO`nicL<1lvOW1y5N?0HEzJ%90-t5ondd1}GQ^w?1K=%oX8G zqXKlHY-7T_RtG*oj#_duhZC)sM$63Mmo=&=r%GT{knZ@(B@0Su}YA|^MsEq|N5_NQ-Ell1ME`Jn7y?#79TXXW}g50 z&f{BqzD=4YYSl>LaEo*L6+Lv|%{7Fw&?j_@vTKk>jYGb((wu7@o~K?(ondW-8fTcH z@`m6nPcgmWy_%V~Os`Puk-WV!=AngO*%i%m>|9k7%d+QbwIHBYCONknn*>mO4qpmU zQwx42755Zl0AEmjpPl_oHy-evVpl5sY%$9&cY=<%g|sd*{ApP4RjiJCxAXZGb26=L6DLs^2wr#J}IDBM4h=mvJkNGLXdV$s+j0P<(=tD=E)*1(_(1I(g2n+aJ5{w z*m6HDmW8^6xwM%sZJivN=wT=gSm{~p!ZsBeo8)QCnxJ^R(fv6<)8c8gpZnem2j$B3dQZ zQEQ+zod$Fi-s-QSWk6p;7A)46;c1YTA|o#Gq;#02VU9|R@Mvk;?nqtd8Eu}W8XG?0 zeN1{`W0h@f*O4b}wt6Pz$yJuLxU4zLk~8*EO{=Xa(sPpL90U&N)SOSn&M=K`7oa(? zhN?`QR1Y1{j4E<1(U`SEW1ZKl^Rb4aXr8XIx_N?Hnaa>|&ZiC>S@*UiBPY?tILNo1 zJPzqSzv^mp2XlW*{qOMcl=b11%3$U5rmD5s;nHl_`J$(bJ6m>#EJxZX-6^D=r33J8 zvWBG>lU26z6dnDrA>3N7F<7i(L{z!dW;1i%XohpcB2Kh!R7jXJ3ypzqY{$mbSzz-g9X!uF-@(#;c_bjX zDx1kW@Q~m=(PnG`@FWl0EE<#8YFawRC&wEXM}QEcE~ikHEN{CZm+jF=RJ2OJNV}lD z7kA^H0=KWkH(ZI|ziUuWq$tWb5y}>9#<_7RNEXaqGwXa5@ncC0%Cswl&)lPU+^M;N$=@6=@2J>faN02-1Bd(O|be zzS6ViEm1lZ)GLehu%uU}k!8OQGv8ygQW?^%1Y z8qhgZ$@M<6Ps5ce)LsQ_4c<@p~{3a`Y zG1QY7%tNk=b+|NOLs%LH@1Q?KGQ?%9p)L|PV8&4Zy(l)g3~>+hHL7_}Qc~Xl`THB&~D@^+8(7>_DJFRIHH@6!U z1N^lz}EG%(s^fa#?d04FO8U-)pIiCA=&9b^Bsh_ZklT zV)&ikcFxOnTWTYj#xQc`Ui2S%#`Ig?a?W#XQZM|Z^cp`*Tn6q3vDp%mvgl_QMOIpr z35rcnYDYUOT=k^#l)%ACt?5IALuL#P{BBEV;rm#%A+Y8wB{&1~R3((^bfs0QURphR zeez1ITw%L5jVEM5iKL%oQJgYEi|$__-Vzl>xAa9?}Bm*q(fmeNtZ33 z0DLbKt9Dm3O?1hg?9u9E-!~$KA>SF%dQ<%zphhYk3#)~ESt-AMF0y72^p#Vh9nRHJ zrdU{mB??iZ#kKK5C3p0|R+z-E6nAc_!rBCn>Zv$KXexuO5DLxk^K;z>`_i_0ZKK0W)^d7V%>c+ZdxOT+}keD!Z|b zw)l$oipv}2Dp_NuCFbzUsxBOw(zGbc%f5cm+=1zpRUXC|FtgNv#dt(buRQv#j@B=sz+rJf~ucx!|Evx#2X5GpON zrjn+IW0uBPjUP%JKlg#vVP}0u)+6;-Y z_0_Y=v#f5>LTUz45iD0#dGB4MXxTDsZ9Gd&WqV;~fN!WP^AfYw&f-t|%y06j=nXY? zb+zy_Xq4sMt~QW8b*i|W)480h&wkRrI#=JXB$z8k}U!T2--^8tlkQ-#S7n3^Y zcoTWNi98PRX-S?AdSB(aEqR{f#=RbEwIz*Ah29-v<*cx40A|s?GUH200)6p4E+af< zu0?n}NUd&Z6~9TZjNsUHl%n=9S`AJAQmk>&iBh;%61%?w7I$*7w^{X~5`#RvjDb3S zBs`!*Sz&1rz4ri;0)8o7G{=)t2g}Gch9RBO5c2`;cpAkbE9poPyb98St+7Y1FkqG` zgKNuZu?+m84&RjI)_KWv#SxfV{*KdZ=RK;(H`sod?*>p2%0~{*Js3qEd^tc_;h3c{ z<{@E=Tj#R#GZ~PO{QBPy`XTKnYAY+!#~I+&K?da5I>3o4NiEQ-GE!R70%^0Nx9N7t zF0!Equ*JcwFjQ2kP*+%c32=sE03Bhp#@~d|7bn+`4Nijp))d zXbwDVMhg##*XWKV(nDKKkoCD}dKrHyoP!jWRxlx4lr4^pVH(qH-hr-zY_b+yg^<&x z!Nb_A$bH;759782TH!K;Ltks`6-{F-L*SnKoVbIw#9`E*9#TzX@M4Y0i#$-w8gPT!{Do8YeRe0hiRtvP-ly5ED&JNw<} zs$ie%%6_!opU@mL^-KT2^}7QhbK&D+xHGJ2QvPJx<^4A^%E(R3jkRi3oo)IiWL=on z`i*ff-Z5iA{?-g0i!b5LUYh`CF7h073^@L6r3@s`!l zYvd<$u5*>yD32_!+U#uA0VyzU(Y7N_Cx!yH9uARGEtI&n;qXyEwv5W(i z5sgD%8|Bs571q&Fy~LZW$6@Yr8*7G*y{)=(Fjv{avIN9nK;*W2=B%)BPp&5hsn zGs5rk)h?;^QI|FA5(?GTSh{-3?yAXaxft)-*&g-iZsh2LgFiI5-m%Qc@) zT3wz-OHS78= z863Uszv{9(uTQmJYWwmD4Cr~=s?XqB)VX0cq9}E={7EjFDImbB{_wLIx%SSb)$2kP zj)c@$Imf0%(XtvPtI=mQ)>-8RE+{c+vKO1|areE_8*nm@zz3vowXliW@Jf4b({GX3 z7`f0zVlJfmDlRi0s4}Zgcex@H#-&KB$ZY4TEBan8$qMyodRk=#-$&4{$OX63!Fspxr+8sMu-;fh1a5S6ci`T~{cW>RX1bJE1Y?bc|V z-W)no^)6VM3)T@lu;=VyEukYe0y>{q#O>-yP(T^2Q4usLlSweq%s?5n2z=UHHqs_% ziB6mrwnS>)@Ea@e;Wq(MV)71wS`f+}CZ&pJ*yfCfWFD{`C+ta35_+V0VCD+9Y773r zEeS6AW)WbS^Ri!O z4Q&A4Fy{oj7}Lx76=^-_s{6f%ue#1>Sl=0*V8-MR9)2boKfl;IRfm$@243_ip!b3& z!apA*twy-_Zy?7}!H&^Gh83Syl3u(Ayn@NS4qeUxWC2A99Ul}g_JPjev!Vp9FiiOv z#7j8%K~fM0)+-54N>1dJk@%pp$P{m(+1(PR>sm!`g^KKPX*quO@*xtUXOPv4EEA3J z0vUxznJ6sVeu!i!Gz{0g=*veCFTDq%JJFFJS0^W_qeq@u$9eS19{C+k1yp;az4qsu zRFD{57xG=*P(=fD;Me$?D_Ydb#7Aam^Pwt39tPSZ*E3hb3@>z-hls+cDUnFb?XIC3 zTj=goUt@7^#Fs*|l8pD)kKeFjGzl}52addGzVa;QN9bH|F&sOd%i=Mw zg%RDG(hbkIK}LpO|2=5t0qXytIS0l3#I-W%o+~IC(nkN57J#^j=a;ZDspGRKj00rJ z2uyR-JiTd2>m|Sr1=`waa{{KRN75`R*oHknnd$^3V@aSP$&ETL-2KpTT)1(I#$^&! za>F`a<_yYJPsBO)hV$3Yr~6_BqV*|V37adMHzc7RI!w;ib*11$KEFxhf>E=Q-kP<2 zEs<{+NJG3nU(=gLbD|*s1or%dw}PI~ElbT(P4=q+64|*;e(pw7@bRyoYeF=NaxpOI13}3B1wo!C0C06FrnVU@Z4ow2J!~5pojgND> z@vcfy8On{J4C#$?mz@nJupcBDNDmQ_;a!$?QgY9AN%-2>qWcXisjcbW^j)xVKSX)%->c2h%p*j?4U(`Pq>Agc{~87w zjDje0G`6N=CPQhK3I{iQ;KzvE9hyhv0bill+COML8sj{|n#qI7HgnGhBC&nls7ep~ zjIN+GV4AI(mJuyAJ8|Ub+RkZ1NwFm}RJ^iC5GY!)VF3d&zNeV+u8L((lVE~yK@_$M zVqH|NTJn&o@xmHiGf8=Qc~Yx(alDz| z>&tq?zaAn0*|zKS+Gk1=6`?R$&k~|CQKfGJ$WsAWhVt{=Fe&S@t~heg9ss;lM3(i#7iVf2;hWRuzVmVuN1F1KVF`+z=eF7 z7P5%UaiB`GZ1{`nNg5{1k4kW5JukzjRrs{-{zb7C(KSuH-4d3EjLvez*rLcF1G3s( zGwk3YZif&8sPWFYnpb$g!zq$9=@vVv9Phz0e6mzO3VIP}?(}U?G$-#{yyBuczp&n} zAJkx_>q%yi8Nz#0_{*x+<%zHVFv}xWBr=0qCI@MSJc)uh(+-`iOFlFV=vu{pU%!7} zztE1M5kux9{L0&M3wI0feDWGGZs-6qj7BbLC9twWj~Gb=B#}TAybare576Q7KD{3z z0GYN2{v|n@0)0C?j9>V<{esW!7kzHO;B)(hpWBNoPr;j!HBjIzhG$#Xp9Et&Tp-Mf zqa{8}sd(rN>wEpd$C@?dd!jgY(W+gp@IVlDTU=p*A)okw5tlS9^ng)i96+*$94h1! z{({=Reo&cE1`*cLKwXod1ioGv9!{$)X<*s0g^*;34nj-Qh~@Aw1vtisLQ)C7K!ZQ1 z!KQ~8inl*pKJN+NeWV>|Oa&9w*as`-!*wRwR<0q?LnK56w|{x4=wMPRkeUODz_x45 zhu=WpS~R_}Qd~D?x_|bdG3VdeOZe7a2G(`?;02f@L!o8rg+rxFIARV^^AD%hmdN=T z8q>Y$CK&cGBs%tG&bV`u$}gOGGu4^6b5hlt@bYb%Go=zAUaL*v&L$N{3K;fxj`83w zf;Go^>5J*!hHFWj%C;;4vI31A&<3S~QwBlHokYQD1_=z$h zZ%)wtAL5X%UjHCN&OS;!r%9txW};DMx`x;3FZi8QfD)4U3?IZ#ST>vfdV>sk_-h4e zMd?Sv^$0Bep_`7vR-+_Ov|*$wo>RVh3q~oj$6>@Jb^);kGfaE%Es-OgxjY)udc^Qs z4_BnIPyQwkZQ$106kyk=Y0|+eo&8i@cibdfG~qO=uIh@;*b0?ahbN4=t}$c1m(|+0 zUesj&fnWItez|e!?5-}AiBnwzpXvIOsH7x&%vJ3S|3>g{kg4P(B_|?|qL2ySBPP)5 z*N7v^|Z23l>q#W^U zr@`T)Qo*>wXXL3SP&CH5GnyuDVjvkAq0}?&VMVV@+{8_+!^Lvmz9Qd|y zkY%ZX8kP!f)BKf>Deov6OEtq*wUb!rXo8>sZUa@TS#c{-&kG*)? zVK%(4F~u2pJI`zhM%#Z>z@UKXYLzE_rBxBElQEA`DBO#Fa$yiOb~$GZwGOT#0k!55 zZi7$nd3|`***2Ir!khaBna|Y+(N2yYm^qIQ+n7~jtd91cxpVVA$I2(52c1JH;degt zeABamNA8@45#{faJHr0_@@*MGZTE))_14^mX9pO+B*`KTV3=CY1@AD)L;2jNWCh$1rB5SHAqOmu3aL?T59`?OMCgB`+HaaaIwYS5uW4 zKCpY-gy%R@sDZydWe98vVvoW9}|9ufqqd> zngVg6Ij zg(MPgEX2ZWY9l?*``(`J9mZwErvk(5 z@(s?&RK}dn*pcBru6SoC(@kVPDu;PBgwq>ilZOip9O@b*TDj%>BubkASmBI%t|$d3 zdO11yU<<5QAf28OkSMHpA8q3+z0pkqf^E{PsVbErbrx!$czt=&@PxC**P16@Yo06Z zYo$hd>lWP(BLkFr#7(eKej}^Cb;^!@z>(#1m6=LC63KykyMn3-3!hEY^!Wzol@**nwwa6qN zeKhzC#xKR2q``Gz8a&g(OqxxcX?-nz2UGG`l-*gc6w`e)Mmx&o^ zmj!fa4cHTqKmqYXjn`j%$pwBjU&qQXGn4CjPY(%U~IBU&&N^5 z8#08u>`sU3PP@~YDQhgdaJh|4w8w%mi-op9B00CN)M5sxsL;Q(KKc0pGPEE=ww5dpqm``b3_y(#%eF=CLvq5d4;=6QS%c4m}D<^!3 zz*1=pmR4g(W2}duHdviSt24k;8t|qrV^^24E!)nm1>f~#QpAaw6a^LSNmhIi$}Nx{ znDVD=#Z`(VO07k%xlAt=lf)-_E(VeyKF_o4vdOYR^K?*hRMXNiJC{Oz<3mSxYC@*60uIBExgCUAv!*>HVnc73UPlW7o3RU5peoGE1(C^mtj z1#*pg*BawR%nfCtDu2I#HHWqP5Y^ebN&pr{vAD9-IF4|!1dVD3T{~;{+2En?Fmurz zoeE3GCaSZIinEsy8+hin+Fb28WXDqbvfWdIJQ3Q`y<o9 z`B>~LwKU!{h9n}co0Yy3_l=RZP&nuz&k#s-Oj`n}-olAB0n!MTAsmF~l{KWS8}mZz zJ|$|NE;maI53g1>e*Myu&Ynvh0dBZZ>G|6jN*f;RS+2bK&u#w;)~v8(jGI!2jXKC@ zPUp;-R}O~}j?=o)i)<)>zC)k0?j$CWA)8QR8D27gzbI1!$s%KpGR+_%U|m$c-}N39 zi15}t{IIg+2MY)iY*fEV_X6wq*4jY*<-i~bcb3qB7W2b+xOB~ttlR&L{Jjq-tI2?-xpuC4gcMy;`m_2!ts zTW))uCL!-Lu5bA4vIN1KeP;<@v}LE+!&m2#zO`c?ZRV;l>881SR@~KEf`RJIcg+u1 zmJVo$zD7%^YZSj_8hwkJC`|Rr_H8(F?w9a?y@??>&~3Vq002SNxq7#;s3Ir4Fo z;Mltt6n^N%oMlf#mQ&jy?~umf?s)cbdBcG7$|n{b3~7KDj~Byy9cnp_5Lt9E3~3z+ zP4}41%49ZLsf7DBz~A>YUvc9*1mvs4*{`4YsMN;DdAKuwZ!H5Wz5GKL2-X}=N)47c zaxFZlt_=8E=Dcs2KebRZ=OcBS=R*fpn>ZBVxz5-T6VGg36f8 zQgNSN8^|)*TLz&vBpb=$8mAp}SV(3(7hhwnS2mt;y))AF){(~kU0AxL-G?pTS>v~1 zOSn&0rgc1OJ@RktrG#6L)$+~ox`ilGO-JAcz5N;Ru9YQYQnH3}n`yC}3oRFKhqS&M zSFJ7Me?{29L?mWw!rgcazTi{?^0-c<2MYxL4u5f@`x`b)AmQIa{;fp&jGCr~X&tb- zJouOO+N$T006)D0I^B_8(i^r6dWh(l#He(c{_`KYw4q3_N;ZYRVDQLQB%0VtWh(>Q z^qoiB%Mi`tYdGfRA_}$A1U7`ww`vJDm;SYjE#KZ()p6| z%GG!KtX%i>6q5vcr{UpMwK>iVUUYbvoc$n}ot z7M}bmorZa*Bf!F6xt(h;I8wVI$&2V7MUj_(F2$qi!HR<=^e_+Lt3$C$625>dkNFK~ z@;pST!apb4kHx8K>%C+n|%0%ZXTJ3rR|vaXZ&`JGMOl4Vy!ssZ`wiv z1qG=hago<8K~^NaP{m5eUM-1@+Q!`JeL|53nic7sV82i~5lI!xnFXGL>d;G|1GP|n zFRYQ`MxLlRdUeA4%I7Nk(TFD6(U9VhQcS^~YegwIk&Xr_Puy>b1tpTASCx#we9L-jK<^2!F2(shu?FpFh?_(`v7Xo!NaTJtz+mm91Kb4(}2ao7DQgM!`J6ph{&3w-za7XDfQ4V%?eIyw*0l2Ji=Y_=wRr zd4zKJ$cp29zIlV5A$qi^PFL6d=~JyFC^)zR`3tQi@v;h*mF@ zs(@!3Sy7ylq{*tcq#I7dqmiWyInQy6<_z%$-?{rNnW5qi?+x6zg`%J&F;XDKQ?E?L z%B*OU*JUOLtrv`U>thJ1K(SrvSRhl&n{G{CRW1*dBw%SK}uQa;lfzWCG@ z!`##KoNJ=xi$%T|=Ie_n#`W%x^~Pe6rP`G4408BJrgCGdvrt)X(z#FOn^ejjpKp@U zjax*oOex%0UiXIJW1C*i7{_7aOzvpBkNy~ca(h%ZpLZaBZG`rRSDMvVBe77yy0x*Q5GqODl(Q(Bj) z^J#L~#RIjSl58zE;Fb58>C?;&@;>j7=jpxF=Z<3UxrFBze=V5z${3rfFjHEa(7RL}@4Y@a5nmt0Pt(>uGAVDQGw0t&F~{F~)D_$L z?AL8j?Xj;_^T3y=%dekpgZse3+WJ_VYitVltuKzE|A}vI{f17ZkI(yU;kmYTyTON0 zOubH!gEzctS>?9xaG8K}r;5$E_b&8->>6|q;d_tmm>vzN9r9Y+b8SAtCToBiTKVmb zM{S&^I+y$0*yH#1cYC(um(EQ+;R{ATA2l(D-8Dm{{CbWmX7EkXV&P$E4dvBx)tto= z#kiyFhE3vy{xjib8vmik-`EC!{THO4>DT{zDeLv~N5psASBQE2`x5@XewXX_YAFyI zOcvnO4+&HLi|8d>`oF;NFBB34^T@10v-bt0000800)fbJc|R3`uJ-D0I5q401E&Z00000009610KkC& z0001HX>4g{Xml=gcyv`%1pouxpfgN$cnbgl1n2_*00aR7002-+1qJ{B000310RT|| L002E~0{{R3ELKV; literal 0 HcmV?d00001 diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 575ebd738f..cff1274695 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -132,6 +132,9 @@ + + + @@ -268,6 +271,7 @@ + From 3e4fc96ab51006a2558f78806e286dcc5fb35f0b Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Wed, 17 Aug 2016 14:18:30 +0700 Subject: [PATCH 102/141] Ported Analysis.Th + tests --- .../Analysis/Th/ThaiAnalyzer.cs | 256 +++++++------ .../Analysis/Th/ThaiTokenizer.cs | 199 ++++++----- .../Analysis/Th/ThaiTokenizerFactory.cs | 70 ++-- .../Analysis/Th/ThaiWordFilter.cs | 335 +++++++++--------- .../Analysis/Th/ThaiWordFilterFactory.cs | 73 ++-- .../Analysis/Th/stopwords.txt | 119 +++++++ .../Analysis/Util/SegmentingTokenizerBase.cs | 4 +- .../Lucene.Net.Analysis.Common.csproj | 8 + .../Analysis/Th/TestThaiAnalyzer.cs | 306 ++++++++-------- .../Analysis/Th/TestThaiTokenizerFactory.cs | 78 ++-- .../Analysis/Th/TestThaiWordFilterFactory.cs | 84 +++-- .../Lucene.Net.Tests.Analysis.Common.csproj | 3 + 12 files changed, 810 insertions(+), 725 deletions(-) create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Th/stopwords.txt diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiAnalyzer.cs index 86c081186d..0e09fd910f 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiAnalyzer.cs @@ -1,143 +1,135 @@ -using System; +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Standard; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using System; +using System.IO; -namespace org.apache.lucene.analysis.th +namespace Lucene.Net.Analysis.Th { + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - /// - /// Copyright 2006 The Apache Software Foundation - /// - /// Licensed under the Apache License, Version 2.0 (the "License"); - /// you may not use this file except in compliance with the License. - /// You may obtain a copy of the License at - /// - /// http://www.apache.org/licenses/LICENSE-2.0 - /// - /// Unless required by applicable law or agreed to in writing, software - /// distributed under the License is distributed on an "AS IS" BASIS, - /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - /// See the License for the specific language governing permissions and - /// limitations under the License. - /// + ///
    + public sealed class ThaiAnalyzer : StopwordAnalyzerBase + { + /// + /// File containing default Thai stopwords. + public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; + /// + /// The comment character in the stopwords file. + /// All lines prefixed with this will be ignored. + /// + private const string STOPWORDS_COMMENT = "#"; - using LowerCaseFilter = org.apache.lucene.analysis.core.LowerCaseFilter; - using StopAnalyzer = org.apache.lucene.analysis.core.StopAnalyzer; - using StopFilter = org.apache.lucene.analysis.core.StopFilter; - using StandardFilter = org.apache.lucene.analysis.standard.StandardFilter; - using StandardTokenizer = org.apache.lucene.analysis.standard.StandardTokenizer; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using StopwordAnalyzerBase = org.apache.lucene.analysis.util.StopwordAnalyzerBase; - using Version = org.apache.lucene.util.Version; + /// + /// Returns an unmodifiable instance of the default stop words set. + /// default stop words set. + public static CharArraySet DefaultStopSet + { + get + { + return DefaultSetHolder.DEFAULT_STOP_SET; + } + } - /// - /// for Thai language. It uses to break words. - /// - /// - /// - /// You must specify the required - /// compatibility when creating ThaiAnalyzer: - ///
      - ///
    • As of 3.6, a set of Thai stopwords is used by default - ///
    - ///
    - ///
    - public sealed class ThaiAnalyzer : StopwordAnalyzerBase - { + /// + /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class + /// accesses the static final set the first time.; + /// + private class DefaultSetHolder + { + internal static readonly CharArraySet DEFAULT_STOP_SET; - /// - /// File containing default Thai stopwords. - public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; - /// - /// The comment character in the stopwords file. - /// All lines prefixed with this will be ignored. - /// - private const string STOPWORDS_COMMENT = "#"; + static DefaultSetHolder() + { + try + { + DEFAULT_STOP_SET = LoadStopwordSet(false, typeof(ThaiAnalyzer), typeof(ThaiAnalyzer).Namespace + "." + DEFAULT_STOPWORD_FILE, STOPWORDS_COMMENT); + } + catch (IOException) + { + // default set should always be present as it is part of the + // distribution (JAR) + throw new Exception("Unable to load default stopword set"); + } + } + } - /// - /// Returns an unmodifiable instance of the default stop words set. - /// default stop words set. - public static CharArraySet DefaultStopSet - { - get - { - return DefaultSetHolder.DEFAULT_STOP_SET; - } - } + /// + /// Builds an analyzer with the default stop words. + /// + /// lucene compatibility version + public ThaiAnalyzer(LuceneVersion matchVersion) + : this(matchVersion, matchVersion.OnOrAfter(LuceneVersion.LUCENE_36) ? DefaultSetHolder.DEFAULT_STOP_SET : StopAnalyzer.ENGLISH_STOP_WORDS_SET) + { + } - /// - /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class - /// accesses the static final set the first time.; - /// - private class DefaultSetHolder - { - internal static readonly CharArraySet DEFAULT_STOP_SET; - - static DefaultSetHolder() - { - try - { - DEFAULT_STOP_SET = loadStopwordSet(false, typeof(ThaiAnalyzer), DEFAULT_STOPWORD_FILE, STOPWORDS_COMMENT); - } - catch (IOException) - { - // default set should always be present as it is part of the - // distribution (JAR) - throw new Exception("Unable to load default stopword set"); - } - } - } - - /// - /// Builds an analyzer with the default stop words. - /// - /// lucene compatibility version - public ThaiAnalyzer(Version matchVersion) : this(matchVersion, matchVersion.onOrAfter(Version.LUCENE_36) ? DefaultSetHolder.DEFAULT_STOP_SET : StopAnalyzer.ENGLISH_STOP_WORDS_SET) - { - } - - /// - /// Builds an analyzer with the given stop words. - /// - /// lucene compatibility version - /// a stopword set - public ThaiAnalyzer(Version matchVersion, CharArraySet stopwords) : base(matchVersion, stopwords) - { - } - - /// - /// Creates - /// - /// used to tokenize all the text in the provided . - /// - /// - /// built from a filtered with - /// , , , and - /// - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - if (matchVersion.onOrAfter(Version.LUCENE_48)) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Tokenizer source = new ThaiTokenizer(reader); - Tokenizer source = new ThaiTokenizer(reader); - TokenStream result = new LowerCaseFilter(matchVersion, source); - result = new StopFilter(matchVersion, result, stopwords); - return new TokenStreamComponents(source, result); - } - else - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Tokenizer source = new org.apache.lucene.analysis.standard.StandardTokenizer(matchVersion, reader); - Tokenizer source = new StandardTokenizer(matchVersion, reader); - TokenStream result = new StandardFilter(matchVersion, source); - if (matchVersion.onOrAfter(Version.LUCENE_31)) - { - result = new LowerCaseFilter(matchVersion, result); - } - result = new ThaiWordFilter(matchVersion, result); - return new TokenStreamComponents(source, new StopFilter(matchVersion, result, stopwords)); - } - } - } + /// + /// Builds an analyzer with the given stop words. + /// + /// lucene compatibility version + /// a stopword set + public ThaiAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords) + : base(matchVersion, stopwords) + { + } + /// + /// Creates + /// + /// used to tokenize all the text in the provided . + /// + /// + /// built from a filtered with + /// , , , and + /// + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_48)) + { + Tokenizer source = new ThaiTokenizer(reader); + TokenStream result = new LowerCaseFilter(matchVersion, source); + result = new StopFilter(matchVersion, result, stopwords); + return new TokenStreamComponents(source, result); + } + else + { + Tokenizer source = new StandardTokenizer(matchVersion, reader); + TokenStream result = new StandardFilter(matchVersion, source); + if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_31)) + { + result = new LowerCaseFilter(matchVersion, result); + } + result = new ThaiWordFilter(matchVersion, result); + return new TokenStreamComponents(source, new StopFilter(matchVersion, result, stopwords)); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiTokenizer.cs index 3b472ae5ae..ca41da1c3f 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiTokenizer.cs @@ -1,7 +1,12 @@ -namespace org.apache.lucene.analysis.th -{ +using ICU4NET; +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Support; +using System.IO; - /* +namespace Lucene.Net.Analysis.Th +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,99 +23,97 @@ * limitations under the License. */ - - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using OffsetAttribute = org.apache.lucene.analysis.tokenattributes.OffsetAttribute; - using CharArrayIterator = org.apache.lucene.analysis.util.CharArrayIterator; - using SegmentingTokenizerBase = org.apache.lucene.analysis.util.SegmentingTokenizerBase; - - /// - /// Tokenizer that use to tokenize Thai text. - /// WARNING: this tokenizer may not be supported by all JREs. - /// It is known to work with Sun/Oracle and Harmony JREs. - /// If your application needs to be fully portable, consider using ICUTokenizer instead, - /// which uses an ICU Thai BreakIterator that will always be available. - /// - /// - public class ThaiTokenizer : SegmentingTokenizerBase - { - /// - /// True if the JRE supports a working dictionary-based breakiterator for Thai. - /// If this is false, this tokenizer will not work at all! - /// - public static readonly bool DBBI_AVAILABLE; - private static readonly BreakIterator proto = BreakIterator.getWordInstance(new Locale("th")); - static ThaiTokenizer() - { - // check that we have a working dictionary-based break iterator for thai - proto.Text = "ภาษาไทย"; - DBBI_AVAILABLE = proto.isBoundary(4); - } - - /// - /// used for breaking the text into sentences - private static readonly BreakIterator sentenceProto = BreakIterator.getSentenceInstance(Locale.ROOT); - - private readonly BreakIterator wordBreaker; - private readonly CharArrayIterator wrapper = CharArrayIterator.newWordInstance(); - - internal int sentenceStart; - internal int sentenceEnd; - - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly OffsetAttribute offsetAtt = addAttribute(typeof(OffsetAttribute)); - - /// - /// Creates a new ThaiTokenizer - public ThaiTokenizer(Reader reader) : this(AttributeFactory.DEFAULT_ATTRIBUTE_FACTORY, reader) - { - } - - /// - /// Creates a new ThaiTokenizer, supplying the AttributeFactory - public ThaiTokenizer(AttributeFactory factory, Reader reader) : base(factory, reader, (BreakIterator)sentenceProto.clone()) - { - if (!DBBI_AVAILABLE) - { - throw new System.NotSupportedException("This JRE does not have support for Thai segmentation"); - } - wordBreaker = (BreakIterator)proto.clone(); - } - - protected internal override void setNextSentence(int sentenceStart, int sentenceEnd) - { - this.sentenceStart = sentenceStart; - this.sentenceEnd = sentenceEnd; - wrapper.setText(buffer, sentenceStart, sentenceEnd - sentenceStart); - wordBreaker.Text = wrapper; - } - - protected internal override bool incrementWord() - { - int start = wordBreaker.current(); - if (start == BreakIterator.DONE) - { - return false; // BreakIterator exhausted - } - - // find the next set of boundaries, skipping over non-tokens - int end_Renamed = wordBreaker.next(); - while (end_Renamed != BreakIterator.DONE && !char.IsLetterOrDigit(char.codePointAt(buffer, sentenceStart + start, sentenceEnd))) - { - start = end_Renamed; - end_Renamed = wordBreaker.next(); - } - - if (end_Renamed == BreakIterator.DONE) - { - return false; // BreakIterator exhausted - } - - clearAttributes(); - termAtt.copyBuffer(buffer, sentenceStart + start, end_Renamed - start); - offsetAtt.setOffset(correctOffset(offset + sentenceStart + start), correctOffset(offset + sentenceStart + end_Renamed)); - return true; - } - } - + /// + /// Tokenizer that use to tokenize Thai text. + /// WARNING: this tokenizer may not be supported by all JREs. + /// It is known to work with Sun/Oracle and Harmony JREs. + /// If your application needs to be fully portable, consider using ICUTokenizer instead, + /// which uses an ICU Thai BreakIterator that will always be available. + /// + /// + public class ThaiTokenizer : SegmentingTokenizerBase + { + /// + /// True if the JRE supports a working dictionary-based breakiterator for Thai. + /// If this is false, this tokenizer will not work at all! + /// + public static readonly bool DBBI_AVAILABLE; + private static readonly BreakIterator proto = BreakIterator.CreateWordInstance(Locale.GetUS()); //GetWordInstance(new Locale("th")); + static ThaiTokenizer() + { + // check that we have a working dictionary-based break iterator for thai + proto.SetText("ภาษาไทย"); + DBBI_AVAILABLE = proto.IsBoundary(4); + } + + + /// + /// used for breaking the text into sentences + private static readonly BreakIterator sentenceProto = BreakIterator.CreateSentenceInstance(Locale.GetUS()); //GetSentenceInstance(Locale.ROOT); + + private readonly BreakIterator wordBreaker; + private readonly CharArrayIterator wrapper = CharArrayIterator.NewWordInstance(); + + internal int sentenceStart; + internal int sentenceEnd; + + private readonly ICharTermAttribute termAtt; + private readonly IOffsetAttribute offsetAtt; + + /// + /// Creates a new ThaiTokenizer + public ThaiTokenizer(TextReader reader) + : this(AttributeFactory.DEFAULT_ATTRIBUTE_FACTORY, reader) + { + } + + /// + /// Creates a new ThaiTokenizer, supplying the AttributeFactory + public ThaiTokenizer(AttributeFactory factory, TextReader reader) + : base(factory, reader, (BreakIterator)sentenceProto.Clone()) + { + if (!DBBI_AVAILABLE) + { + throw new System.NotSupportedException("This JRE does not have support for Thai segmentation"); + } + wordBreaker = (BreakIterator)proto.Clone(); + termAtt = AddAttribute(); + offsetAtt = AddAttribute(); + } + + protected internal override void SetNextSentence(int sentenceStart, int sentenceEnd) + { + this.sentenceStart = sentenceStart; + this.sentenceEnd = sentenceEnd; + wrapper.SetText(buffer, sentenceStart, sentenceEnd - sentenceStart); + wordBreaker.SetText(new string(wrapper.Text)); + } + + protected internal override bool IncrementWord() + { + int start = wordBreaker.Current(); + if (start == BreakIterator.DONE) + { + return false; // BreakIterator exhausted + } + + // find the next set of boundaries, skipping over non-tokens + int end = wordBreaker.Next(); + while (end != BreakIterator.DONE && !char.IsLetterOrDigit((char)Character.CodePointAt(buffer, sentenceStart + start, sentenceEnd))) + { + start = end; + end = wordBreaker.Next(); + } + + if (end == BreakIterator.DONE) + { + return false; // BreakIterator exhausted + } + + ClearAttributes(); + termAtt.CopyBuffer(buffer, sentenceStart + start, end - start); + offsetAtt.SetOffset(CorrectOffset(offset + sentenceStart + start), CorrectOffset(offset + sentenceStart + end)); + return true; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiTokenizerFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiTokenizerFactory.cs index 97ba897b63..8dc16a895a 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiTokenizerFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiTokenizerFactory.cs @@ -1,9 +1,11 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using System.Collections.Generic; +using System.IO; -namespace org.apache.lucene.analysis.th +namespace Lucene.Net.Analysis.Th { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,37 +22,31 @@ namespace org.apache.lucene.analysis.th * limitations under the License. */ - - using TokenizerFactory = org.apache.lucene.analysis.util.TokenizerFactory; - using AttributeSource = org.apache.lucene.util.AttributeSource; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_thai" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.ThaiTokenizerFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class ThaiTokenizerFactory : TokenizerFactory - { - - /// - /// Creates a new ThaiTokenizerFactory - public ThaiTokenizerFactory(IDictionary args) : base(args) - { - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } - - public override Tokenizer create(AttributeSource.AttributeFactory factory, Reader reader) - { - return new ThaiTokenizer(factory, reader); - } - } - - + /// + /// Factory for . + ///
    +    /// <fieldType name="text_thai" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.ThaiTokenizerFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class ThaiTokenizerFactory : TokenizerFactory + { + + /// + /// Creates a new ThaiTokenizerFactory + public ThaiTokenizerFactory(IDictionary args) : base(args) + { + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + + public override Tokenizer Create(AttributeSource.AttributeFactory factory, TextReader reader) + { + return new ThaiTokenizer(factory, reader); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiWordFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiWordFilter.cs index ae7fa9672f..b0a23a05a0 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiWordFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiWordFilter.cs @@ -1,172 +1,167 @@ -using System; - -namespace org.apache.lucene.analysis.th +using ICU4NET; +using System; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Util; +using Lucene.Net.Analysis.Core; +using System.Text.RegularExpressions; + +namespace Lucene.Net.Analysis.Th { - - /// - /// Copyright 2006 The Apache Software Foundation - /// - /// Licensed under the Apache License, Version 2.0 (the "License"); - /// you may not use this file except in compliance with the License. - /// You may obtain a copy of the License at - /// - /// http://www.apache.org/licenses/LICENSE-2.0 - /// - /// Unless required by applicable law or agreed to in writing, software - /// distributed under the License is distributed on an "AS IS" BASIS, - /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - /// See the License for the specific language governing permissions and - /// limitations under the License. - /// - - using UnicodeBlock = Character.UnicodeBlock; - - using LowerCaseFilter = org.apache.lucene.analysis.core.LowerCaseFilter; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using OffsetAttribute = org.apache.lucene.analysis.tokenattributes.OffsetAttribute; - using PositionIncrementAttribute = org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute; - using CharArrayIterator = org.apache.lucene.analysis.util.CharArrayIterator; - using AttributeSource = org.apache.lucene.util.AttributeSource; - using Version = org.apache.lucene.util.Version; - - /// - /// that use to break each - /// Token that is Thai into separate Token(s) for each Thai word. - /// Please note: Since matchVersion 3.1 on, this filter no longer lowercases non-thai text. - /// will insert a before this filter - /// so the behaviour of the Analyzer does not change. With version 3.1, the filter handles - /// position increments correctly. - /// - /// WARNING: this filter may not be supported by all JREs. - /// It is known to work with Sun/Oracle and Harmony JREs. - /// If your application needs to be fully portable, consider using ICUTokenizer instead, - /// which uses an ICU Thai BreakIterator that will always be available. - /// - /// - /// @deprecated Use instead. - [Obsolete("Use instead.")] - public sealed class ThaiWordFilter : TokenFilter - { - /// - /// True if the JRE supports a working dictionary-based breakiterator for Thai. - /// If this is false, this filter will not work at all! - /// - public static readonly bool DBBI_AVAILABLE = ThaiTokenizer.DBBI_AVAILABLE; - private static readonly BreakIterator proto = BreakIterator.getWordInstance(new Locale("th")); - private readonly BreakIterator breaker = (BreakIterator) proto.clone(); - private readonly CharArrayIterator charIterator = CharArrayIterator.newWordInstance(); - - private readonly bool handlePosIncr; - - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly OffsetAttribute offsetAtt = addAttribute(typeof(OffsetAttribute)); - private readonly PositionIncrementAttribute posAtt = addAttribute(typeof(PositionIncrementAttribute)); - - private AttributeSource clonedToken = null; - private CharTermAttribute clonedTermAtt = null; - private OffsetAttribute clonedOffsetAtt = null; - private bool hasMoreTokensInClone = false; - private bool hasIllegalOffsets = false; // only if the length changed before this filter - - /// - /// Creates a new ThaiWordFilter with the specified match version. - public ThaiWordFilter(Version matchVersion, TokenStream input) : base(matchVersion.onOrAfter(Version.LUCENE_31) ? input : new LowerCaseFilter(matchVersion, input)) - { - if (!DBBI_AVAILABLE) - { - throw new System.NotSupportedException("This JRE does not have support for Thai segmentation"); - } - handlePosIncr = matchVersion.onOrAfter(Version.LUCENE_31); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (hasMoreTokensInClone) - { - int start = breaker.current(); - int end = breaker.next(); - if (end != BreakIterator.DONE) - { - clonedToken.copyTo(this); - termAtt.copyBuffer(clonedTermAtt.buffer(), start, end - start); - if (hasIllegalOffsets) - { - offsetAtt.setOffset(clonedOffsetAtt.startOffset(), clonedOffsetAtt.endOffset()); - } - else - { - offsetAtt.setOffset(clonedOffsetAtt.startOffset() + start, clonedOffsetAtt.startOffset() + end); - } - if (handlePosIncr) - { - posAtt.PositionIncrement = 1; - } - return true; - } - hasMoreTokensInClone = false; - } - - if (!input.incrementToken()) - { - return false; - } - - if (termAtt.length() == 0 || char.UnicodeBlock.of(termAtt.charAt(0)) != char.UnicodeBlock.THAI) - { - return true; - } - - hasMoreTokensInClone = true; - - // if length by start + end offsets doesn't match the term text then assume - // this is a synonym and don't adjust the offsets. - hasIllegalOffsets = offsetAtt.endOffset() - offsetAtt.startOffset() != termAtt.length(); - - // we lazy init the cloned token, as in ctor not all attributes may be added - if (clonedToken == null) - { - clonedToken = cloneAttributes(); - clonedTermAtt = clonedToken.getAttribute(typeof(CharTermAttribute)); - clonedOffsetAtt = clonedToken.getAttribute(typeof(OffsetAttribute)); - } - else - { - this.copyTo(clonedToken); - } - - // reinit CharacterIterator - charIterator.setText(clonedTermAtt.buffer(), 0, clonedTermAtt.length()); - breaker.Text = charIterator; - int end = breaker.next(); - if (end != BreakIterator.DONE) - { - termAtt.Length = end; - if (hasIllegalOffsets) - { - offsetAtt.setOffset(clonedOffsetAtt.startOffset(), clonedOffsetAtt.endOffset()); - } - else - { - offsetAtt.setOffset(clonedOffsetAtt.startOffset(), clonedOffsetAtt.startOffset() + end); - } - // position increment keeps as it is for first token - return true; - } - return false; - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public void reset() throws java.io.IOException - public override void reset() - { - base.reset(); - hasMoreTokensInClone = false; - clonedToken = null; - clonedTermAtt = null; - clonedOffsetAtt = null; - } - } - + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /// + /// that use to break each + /// Token that is Thai into separate Token(s) for each Thai word. + /// Please note: Since matchVersion 3.1 on, this filter no longer lowercases non-thai text. + /// will insert a before this filter + /// so the behaviour of the Analyzer does not change. With version 3.1, the filter handles + /// position increments correctly. + /// + /// WARNING: this filter may not be supported by all JREs. + /// It is known to work with Sun/Oracle and Harmony JREs. + /// If your application needs to be fully portable, consider using ICUTokenizer instead, + /// which uses an ICU Thai BreakIterator that will always be available. + /// + /// + /// @deprecated Use instead. + [Obsolete("Use ThaiTokenizer instead.")] + public sealed class ThaiWordFilter : TokenFilter + { + /// + /// True if the JRE supports a working dictionary-based breakiterator for Thai. + /// If this is false, this filter will not work at all! + /// + public static readonly bool DBBI_AVAILABLE = ThaiTokenizer.DBBI_AVAILABLE; + private static readonly BreakIterator proto = BreakIterator.CreateWordInstance(new Locale()); //.getWordInstance(new Locale("th")); + private readonly BreakIterator breaker = (BreakIterator)proto.Clone(); + private readonly CharArrayIterator charIterator = CharArrayIterator.NewWordInstance(); + + private readonly bool handlePosIncr; + + private readonly ICharTermAttribute termAtt; + private readonly IOffsetAttribute offsetAtt; + private readonly IPositionIncrementAttribute posAtt; + + private AttributeSource clonedToken = null; + private ICharTermAttribute clonedTermAtt = null; + private IOffsetAttribute clonedOffsetAtt = null; + private bool hasMoreTokensInClone = false; + private bool hasIllegalOffsets = false; // only if the length changed before this filter + + /// + /// Creates a new ThaiWordFilter with the specified match version. + public ThaiWordFilter(LuceneVersion matchVersion, TokenStream input) + : base(matchVersion.OnOrAfter(LuceneVersion.LUCENE_31) ? input : new LowerCaseFilter(matchVersion, input)) + { + if (!DBBI_AVAILABLE) + { + throw new System.NotSupportedException("This JRE does not have support for Thai segmentation"); + } + handlePosIncr = matchVersion.OnOrAfter(LuceneVersion.LUCENE_31); + termAtt = AddAttribute(); + offsetAtt = AddAttribute(); + posAtt = AddAttribute(); + } + + public override bool IncrementToken() + { + if (hasMoreTokensInClone) + { + int start = breaker.Current(); + int end = breaker.Next(); + if (end != BreakIterator.DONE) + { + clonedToken.CopyTo(this); + termAtt.CopyBuffer(clonedTermAtt.Buffer(), start, end - start); + if (hasIllegalOffsets) + { + offsetAtt.SetOffset(clonedOffsetAtt.StartOffset(), clonedOffsetAtt.EndOffset()); + } + else + { + offsetAtt.SetOffset(clonedOffsetAtt.StartOffset() + start, clonedOffsetAtt.StartOffset() + end); + } + if (handlePosIncr) + { + posAtt.PositionIncrement = 1; + } + return true; + } + hasMoreTokensInClone = false; + } + + if (!input.IncrementToken()) + { + return false; + } + + if (termAtt.Length == 0 || Regex.IsMatch(termAtt.ToString().Substring(0, 1), @"\p{IsThai}")) + { + return true; + } + + hasMoreTokensInClone = true; + + // if length by start + end offsets doesn't match the term text then assume + // this is a synonym and don't adjust the offsets. + hasIllegalOffsets = offsetAtt.EndOffset() - offsetAtt.StartOffset() != termAtt.Length; + + // we lazy init the cloned token, as in ctor not all attributes may be added + if (clonedToken == null) + { + clonedToken = CloneAttributes(); + clonedTermAtt = clonedToken.GetAttribute(); + clonedOffsetAtt = clonedToken.GetAttribute(); + } + else + { + this.CopyTo(clonedToken); + } + + // reinit CharacterIterator + charIterator.SetText(clonedTermAtt.Buffer(), 0, clonedTermAtt.Length); + breaker.SetText(new string(charIterator.Text)); + int end2 = breaker.Next(); + if (end2 != BreakIterator.DONE) + { + termAtt.Length = end2; + if (hasIllegalOffsets) + { + offsetAtt.SetOffset(clonedOffsetAtt.StartOffset(), clonedOffsetAtt.EndOffset()); + } + else + { + offsetAtt.SetOffset(clonedOffsetAtt.StartOffset(), clonedOffsetAtt.StartOffset() + end2); + } + // position increment keeps as it is for first token + return true; + } + return false; + } + + public override void Reset() + { + base.Reset(); + hasMoreTokensInClone = false; + clonedToken = null; + clonedTermAtt = null; + clonedOffsetAtt = null; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiWordFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiWordFilterFactory.cs index 0fa779cc2f..301a0f3ca6 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiWordFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Th/ThaiWordFilterFactory.cs @@ -1,10 +1,10 @@ -using System; +using Lucene.Net.Analysis.Util; +using System; using System.Collections.Generic; -namespace org.apache.lucene.analysis.th +namespace Lucene.Net.Analysis.Th { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -21,39 +21,34 @@ namespace org.apache.lucene.analysis.th * limitations under the License. */ - - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_thai" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.ThaiWordFilterFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - /// @deprecated Use instead - [Obsolete("Use instead")] - public class ThaiWordFilterFactory : TokenFilterFactory - { - - /// - /// Creates a new ThaiWordFilterFactory - public ThaiWordFilterFactory(IDictionary args) : base(args) - { - assureMatchVersion(); - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } - - public override ThaiWordFilter create(TokenStream input) - { - return new ThaiWordFilter(luceneMatchVersion, input); - } - } - - + /// + /// Factory for . + ///
    +    /// <fieldType name="text_thai" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.ThaiWordFilterFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + /// @deprecated Use instead + [Obsolete("Use ThaiTokenizerFactory instead")] + public class ThaiWordFilterFactory : TokenFilterFactory + { + + /// + /// Creates a new ThaiWordFilterFactory + public ThaiWordFilterFactory(IDictionary args) : base(args) + { + AssureMatchVersion(); + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + + public override TokenStream Create(TokenStream input) + { + return new ThaiWordFilter(luceneMatchVersion, input); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Th/stopwords.txt b/src/Lucene.Net.Analysis.Common/Analysis/Th/stopwords.txt new file mode 100644 index 0000000000..07f0fabe69 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Th/stopwords.txt @@ -0,0 +1,119 @@ +# Thai stopwords from: +# "Opinion Detection in Thai Political News Columns +# Based on Subjectivity Analysis" +# Khampol Sukhum, Supot Nitsuwat, and Choochart Haruechaiyasak +ไว้ +ไม่ +ไป +ได้ +ให้ +ใน +โดย +แห่ง +แล้ว +และ +แรก +แบบ +แต่ +เอง +เห็น +เลย +เริ่ม +เรา +เมื่อ +เพื่อ +เพราะ +เป็นการ +เป็น +เปิดเผย +เปิด +เนื่องจาก +เดียวกัน +เดียว +เช่น +เฉพาะ +เคย +เข้า +เขา +อีก +อาจ +อะไร +ออก +อย่าง +อยู่ +อยาก +หาก +หลาย +หลังจาก +หลัง +หรือ +หนึ่ง +ส่วน +ส่ง +สุด +สําหรับ +ว่า +วัน +ลง +ร่วม +ราย +รับ +ระหว่าง +รวม +ยัง +มี +มาก +มา +พร้อม +พบ +ผ่าน +ผล +บาง +น่า +นี้ +นํา +นั้น +นัก +นอกจาก +ทุก +ที่สุด +ที่ +ทําให้ +ทํา +ทาง +ทั้งนี้ +ทั้ง +ถ้า +ถูก +ถึง +ต้อง +ต่างๆ +ต่าง +ต่อ +ตาม +ตั้งแต่ +ตั้ง +ด้าน +ด้วย +ดัง +ซึ่ง +ช่วง +จึง +จาก +จัด +จะ +คือ +ความ +ครั้ง +คง +ขึ้น +ของ +ขอ +ขณะ +ก่อน +ก็ +การ +กับ +กัน +กว่า +กล่าว diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/SegmentingTokenizerBase.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/SegmentingTokenizerBase.cs index 70b7b5ffeb..c4c4643f37 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Util/SegmentingTokenizerBase.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/SegmentingTokenizerBase.cs @@ -85,7 +85,7 @@ protected SegmentingTokenizerBase(AttributeFactory factory, Reader reader, Break this.iterator = iterator; } - public override bool IncrementToken() + public override sealed bool IncrementToken() { if (length == 0 || !IncrementWord()) { @@ -106,7 +106,7 @@ public override void Reset() { base.Reset(); wrapper.SetText(buffer, 0, 0); - iterator.SetText(new string(buffer, 0, 0)); + iterator.SetText(new string(wrapper.Text)); length = usableLength = offset = 0; } diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index 23a4cfbf7c..8a95b3f7eb 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -327,6 +327,11 @@ + + + + + @@ -501,6 +506,9 @@ + + + Af>&6#2PW7w) zF6whHC|9i4ppU*}FQC9ol$|E|{)Z)pw)&la1t{3!xoOzGVAMf}(!Q{C*?q%==ILdx zuzHf_hbc^4$K|mTc$FcX$?OhrJKcI!D0KD_Yb*i(Od_-Q;% zej`xTypQFp9z$65pI#{fdT)0yp>p2tr0TH6gsfp&s)ef`gUAViQ8xdzg6*^M`95*t zPc{N4SL#_Z5CU{ooMBKl0dMyk_q>v2LFS)V8v#-)fE=k!t$K0{FsaaVx29}v)wrZrTI15VpallGjBzt=a-gE>YtlG3=*Ipw2_*kwg zefJPi)c<{&>^ANk&m^IdF`}={AS|zA&?X~sgwriJjgv)~n8HBJ=On0anPK4R=k#`_ z24$(iZ!Hn#Q@g4mAMro(M{C!9ffNv`(?nEiD@ckD6OUw%Z_$Ovk%xcXNgf`J|N5WG zZaCO(o?G{woA$n`LC~vaGuf8#4x8BNQZ(e(ppT6H3RKME<_*;{j8&WhH54u(vmpXy4)Ghzhf9Ec9lA-b4qK!j!!oFgZu^P&{hR?2q` zoznFqnX|j$RvU^mQbqeyQm>a&jY_cB57c;xImk+vb^7P(J86rQuZ~&U*FAWS#CV&% zxvna#y72V8feCrPf0D}TxkzFyxS`71t<2hZVL;bDh2sX46y?~EByW@zT9}qC(rMN9 zxZ1jvYb?M|@p_g%kLfM?v37Xs<4tMl$jS09s!RYh?f(tb=!52O2RR75^s)hNo&)44 z6`L0}lNbma%|rzZxH}%g0rZT&Ms%)#s_YouGaRi<^E(b3;c>@ zid2%?iJ<4ybNJT25v=9v#!-pPc^Ca9(f$+X3eCp7GKHSz(OO$uZ?7Z+zS`EJTD#bs zf|i{?Rj+Tjpaz`+4|H97YWlRM2h!^EOHCCm9EoSm6z9A=35Ti?3YD&&kWEdR6mM@_cP^q5b6yS3#kwN-zqu%4;(5JA=)O z7=C7u)LOavD#*|4==FZS_{h1GNn+~0-f9c7Mo<3D_uQHGtwSANE}b%-Z=$7!#MQ65 z$}3wo0(=U5hwu9~!u!><&9bef*7??3(}Mm=>tO)<_Q4^+OX-C$8#@~U{J%SO5&leV z!mf5W_y9{G`F>E$0{fqV`&)>a&inQwEdXF()UG_?Z9l%b_94zn9j78dgjO}2;cFcC zJ{R;H!s&G!{r+E7eReuc*8)6LISXZ$gq7nD#1G8|K#cNP-(?1I(M~fNHb|dZ=k7=O z?2}3#wshOF$nMp9iN}q2?$6pzDssnsr^GnpWw8#qN>|M*JE0-DY~<_XzKdq$TkD1g z+x4)Xn&d`v(2P|jRO)JDr1L*Eycs}}bq~S+?KUy5=6SEgEYH*;-RetL`dI<)t!oj> z)ZSN4k00Dr$Gf#LNAl5Ofu8vU3B}cUblQDy(e^G+>?OQZV)lCeNwMSX($EGO(G_hi z`DdWZ@d*j7XX+aK(K*nakN=t$_5T?H^pANH6|b+@AJ$I(H4fsU|FCgVeqOdaml$E=#Glh?TlGGF(iiSmaHWT$E2;+X9?c zVWh7?c(s}~D!WYgn$Dg&#;F3Y=JNoA)xmU&IKrSP9$u?T?Hne$MHb!RG8pjIn zUJ3&A+g-oipT2f))qJQPwLY#OdAp&N!-=^+mG$y`P@d(@gEkVi{{;gFyCcv8Zr7|8 zmt1x4q|?{4f$}!LeBycMuF&&uuy<=S;nLF`CL7F2JX|Yzre49_ui!)5j{ZmTd=kV8Hb#lzRP}qI|9EZUj0A!)v zTs_6faS>#s_^<-B0b!!snR3~!YiF)&<@1E@f)F@>$2bVceiX# zC0 zWV(!V(@s^M7dUz1fTc{FhMLS8k90~$#br?D6rERt$XZo`PqDu8!n4xc^H0gQvLRpv zarxHjO!cFQ%O6gVYpP}~qS_dGf%6~}wjP^(Pui2~eOKjF;&|3pH_z^U1unx zCXNLm^09h#4UkwnrF~r_+kcDiYTEQ`Q5GBl*^Z6@l@F2Xb4vHq3EhzJiXj>P@&E!t zef_q6it9YU{e+ZmZ9~cPI&1F;X`84>{6&f3*&dQ($`Y(%05C!a%I*16%?MQqa1($O z51af;A_Z%FU5jD}rgTf z#7vaF5lTJr$&R1y8QtQt5^!aUDeztYlQdlI!1&lmh)Ho8MQH3_$|YsMz^q&(XRqGH zw^9f*7@lLDQlZn$XL)E&jR@|;$fY#R8t&kVS==!Gl8Aa}OQE3-XJV}$9wo*yVw17G zgtl7g6`$J!F|0JL9{+&6DoLDDbI+lJ(|`M>&nnr1{H2LpkKPzD`${LYkM9W!N*3(a zy+<}kp)hq#UUnprXV>(&HxRbkro3BBK8LzNWx~&sh2Oo#i+Z!C%*RD>_Lp?X)I17S zzwx|g#HfTXEv!ahbIECiEXxzW&0e#*?d%lGrxf}3uKf8UtF?}EwRX8rV+hxRnmzXJ zt~>*wSOVsP8kNAWctu(?QZQ4;vp0vCbBhbK89iXbqC^?Xgq49vI$XO%wDBnii#LNA z_CoPC*%rs$mX@h(qAo=U0X$<|da7iqjJi*0>DG`TEm1ODo#*2%?H28&xf$k82c-Z za%?*5ly{6B?3yd*tq#3Vj)hMTHguMup{e8a?pBY0GPHI&)rz%<5~b!R5nxAqZ|11n zimc6$M#&WN{ckqo-$m9N$Gf&htxlFEak>Yf*E2dyCh;KvUv|KN@#sMV(^!HL zbLJm68MDK`jlWtcW}{9E%;IVM%z#2(Lo0iuC4S>DgAVfUD;Wq_7wzG?KOtL85oiv^ zllV;1viZ*`kX+vUjKNt*_4U(DN-4xss;PU(CeI?E zBH8ONtWmuOX=L+}MPP#f#q*i^D&`S>WF zn^xq1oHL`NX8sUJX$Jz65829$faG&4lp63;96D}pjDL3XVRf#kkFqc|2nCuHk^e>4 zr&gGUH!_I*S5QYafmt)CCYLI%1x8WosbM0fz`vkl5IeyMjqbfHlzok>)YTTQH$3)? zETC~fDMCIR*`6ATrvIDD3CP6Xj2EVQP=+PY7@g2a!{1cj#6byHwnlvS1XG%YJ$Nkw z9IE#&*pXNb#L*h<-?7*ha)j7Q-js)H{Uol+X-Ko?Jcc+K{R2H3d1+dru&{z>)vn{Q9U5vYBm_cU8VQ9OMx@T}U^s!2LQpvYnaNx3}oGKhUm-6}vHL?chU7?$)uBgd9R> zw<3o3gs8O0i;01+gEZDnB>}&40E*S}2Q4}w)X<}OPMp%2*R`ZWGaEME&hg(9c}W3$ z<8@%Fcd;+Shv)(>Q_0Y_)TJ?evwelLhEKaMJ0z`6l?~dG2vuX^syxXt$UtgGn=BG9 z4{sX(vtQwe4;f@|i>eNz4beyOr?a9nbrwe}RI$h5{F-vQt{+8eB$E^l7UqSvx3GA1 zF|@0{T(CLixZHIwS#_Q$#^zq8qT@>^HIsQw)CCe z0YviB#NfmrX5A;7k-cX?YIM}hi+>dcy06bS@+%d6FAJ{mcG9-@Fh1FU+Lx&vx^3UE zpzgM}7p3gQn2;J(az!s+DINxsgk@qEhj$)-hU`c&rAJ>lMDx zWY1wwS^kc?-lO#(wCpWg)p>l(l-<&u2BE(!XcgOdSl+Bfjr%Z%{~_T$KrJ8-He)gH z3HWj@QO-JT>e{j2Ais|e*~jfZnD#2Dwlq*{?C2l3qORC8&zQXN3(Q-HN9YJ=>Jb1ZbrN(cuPnfMY?zQNCMcI z9wfujP|cNN&6Lx*R+p}rqnCc)Jz2@zp?C_YVuX@;knv{JB6$Sz3e^4mzCdty4oofi zIV8 zS=?BHt9q6{@(N46n+EYvz(Ccph<-12>SU|uTNcl8otb@;NoB87xuj~|<1?Z~arwVc zR%$ct#?Vow;!}_=m^{yAHSNAdP01Z!VDco-46ac< znQlE*=>(AU0G+AY{PrsD1ARa>p#s^N%(nX95ty^lw+g;|J}nQ*^bl0wDb{>lOZU%M z%VNMwDqWR67FljBkZS=f0#EWHR}k!p^VhmY*808e1f#d?G;*i)C4(f5uAYNnfdU#E zl#A`xD*@c+n^D9}y*T5pt`nxO0YrCj+s%Mbbi;Z5P36PiKL zQ_f_u^E4=tte(46VZcJ#iR}_edQVbDDl`VfR#04^$1M-*j+5!!*u$&QEA%j)i8JoA zPV0K0`Lx;d0)HG6UGk4e@OW6==n zg_1~ClcYvya9KYDQuQGMm(qZ<-f_3VQ-K$8^W%{tP!I@Pwp-^O23J*i(ATN>#-y|V zl0+rm6$+R-?Vs}%9Mn_DWGpxBmNPWNYs6mF{Q!Ekx4MT~vsi-BL?0*wX68_J{mpgM z{vHuPBL;^AYXxuX&wl$cpcSZwi_@J(3zkQ8?;1<;bJW;1AO()cUm82? zrzR;DOvABcXC2UK>$tchgf8TrlEJY>5JH%;*0AIB{aM5;I4YicJu0XO^?eR71hQsW z+FPUseA-uaEB3E!?qzS;BQr)2-1LLUC&F_ARg-J2n2X*XPNM_pB0VqGjP6^|jnc60 z2pKTO8Bb`UKuKVxmdO)TBMyYdoUJRB?TXobC7uCUgdXvO3<^F;@9gHmfojwqvx|Av z>57gb{G*P8wPt3fr@h3XxnzuV*0#t;SBi88YDFbZ#B8^M%uueh`vM@udkrEI1vk0> z1(7b5BO*deE>Z)scub!UQ(O@G3{?R1LJqCKt9G}2MD&qUF9A* zhB&Y?=*Sh@u}b60f3iv~L>J5H5)?^$=jN2o1<)RrjmRS(M$>Eu=IU_r0j4~YQ@#Rso6Dl9(>LocT-+qH`d?9qbPN*Y*1`o>kfmzY zJ+h3^7loaqjK^IHi$P34L@6s+HCO7~ld`*mGq^U`BF9g+McNP4ug-o-bt$r2f z<2Lb`Y+C$N)p63#t<6Gd)kJbxmbbu%LNxY5)X!RK7uXzr$!{G_T?LEluDUXHVeW?J zxhVT38z+HGQ|ec2Kr0u_sl{M}W}DuAO<|1ukkalDCP#BE&u_22)3yg73ER@vwI?2w zx9YjbP1fOMUaZgYaUlh)!j*QG!*L;WSRA5z5ADzkiB)M$m>v~g2u=6WTdcC#b|dKBqg8t3{~pqj1AnS{}5 z>E_KObO$%vcC2}*5&Z7GmoP16EH>iVOk`wD+2mnejbs29%So_|aIMt?TAQ+wQy4pnOHs0ayL>`U=f`+Uo8g=3CCF967D zm7*ugTv&-qM^(GsQBwpQ_~3B49@1K$V!QB|w`y^jfHpTiE&Pw`LoLY@)t-t~CbFic z&V%5$pkQ^YE&xq6m`z4I9p4Wp)>j;`8d|pM!uUIhm1=$&;K`Zr#^kW zJz4e~%BMwJ$G`?fFwakJzl*x<=>%{D1)v3Xb?iS~tD%o&( zGkWA3c8lI><-uV|D;bx(LuFOskp{oUw7=7hXg04H^F8oMtiKO1)Dh5K#Yu6l8+<-t zlbpJ7GvW;p&@BcvSEiJ~6|xKe6~Y4KtSJxE%@r*hph4M5c*QlG>os7Q<3DcF&5suT znj&6b_@%ytMGWdK{gA!dxy7yVE7Cl^PZ|U(NmQ=8qx~;IiP#m&I2;bN)V#DUsFK@XN`>qlVzme$~L!=G9|e(ey@prPMi7+`&K zo#mJ&$CAWwZYDveG^Gf8PPzfBs>4l$4{tRfvs?WEgNi2#r4-e&brC}_@POq`ag$i6EQotL zhP=UDJhJoHdB1O><616Tb35|+>FiR4(R?YvVDo^n5i)uOfjZuy*)1^7O1*+(@gH;WeJIr*Q;&g=KM=XpKsf0M%U;4W z`bL%j*nGA27mkDwYs(78SXMvyoq7jl;$yKk9GSyqAVkihJ)?PMb|&)ymZ5d8o~IA` znryV9Yw3^CbgzGO^=oT9AAMu_b}o-6^XY###1a)S{In#NuWl^~<=|R-iB{O2xNNiV zrjEz=#P5F+G@Y`RL(NdZM*<_ryTADhotwdfkcbN;Y|qs2?W~W_xRe%Srd=HTVD`!7 z^@-qB?ma{|*)d0F`%`hcn@NOQ^dzsX0&XA`gDqG4k?Lt0qFpM*U5r|`3! z<1r{4&kwE_Hx(lh_f;~6TKE+>&A36hIDhxmk&%z^A_}w08+#Wg%l0Op61qhlOx}>a z7mL3Mk%|97hFxGJMT9ejo3K;nky$B5KcArg$EJU0vHwhfP>41 z!Nd)W+4~q5yKV=F^~CAzMy{R%jen)BcHa))hyvF)e9p@Pj9#ICtmJ{ zK$pZ*5&WJ@2X&6z*%KtVe0fgPj4ir6u!G*FB_~Bf;B#3lDU-~f1y$IPVake`f{bC- zgBN*h^|E)z!~zlM%lB8R%hIKi(>?L7EfjYIy`^JoL8s$~8R0$#8?l)+8}Thr`zpW*RCtY64&t}bxJWAK`%~3R9T8O)H4)HUMPb)trA3jO z6H{5SK~UZw$x#~IjA&=KF*DSUoA|0yl1T%=EtoTkms$y!I-5Vw`O6iCHLj}7soE#M8Z0P#jdJq)I6gG+ zAaLmI{6Utaz1Pk|ot#SGvO+f^2dopARXOLC%{e4N>{R?n&J0pl+1RPL!N83QpKIOC zkcoW!LQH!6!t9dyn6lZaeQy!)0u*E9jDK3mwAg}%d8DQatE0mwONJOpfU1n^yzr>& zim!VdK>UbuDsb3&h2^Ooc@wn_XDaVW4E4=(UYE`Ivb;IRbnVu(?p8hi!!LxvAZg7_ zWet?Mw|vXd8*Xy`u1T^gD1X&XZ_=C!OS`(KSuk$Y32v2z_N>#6?ZcIy6_qJB!?BFF zFyOV%)sOJdSaKAza;&V{4dkRjnnRx<)sdkHn*_>j-cDd`0mrVTZyGv81H@O_j_Wn0 z4J}-~v(LP-%aSh1zwPF>fX$ZbJi36D?Z@DP@K#QIHhtpG75|O>r-ZkR+2Ms8yuI;G zZhLt2rRa}zT*Da2%A0ZsAa*s~3ArM)q%}#ww*I8(y!2b7wdT0plud&z|Mi$=rIxA= z8tV4a_db24+T5OajDk|zeXaM30>0z1v%{q+SfhaEdE+ttY$m5MyS2lIXw#Fn{-vKf zvj*b-+(8VJ#F}^tQw#m_0ru$$#*2()PHSzt&pG%jT9xNC@E)C;8jn&oFHVMb2l=pMDyO#>W|1B4&Y^fB`GY2RE4 z$GwzNu6<2wyFRzOXcY5-Y~Twl%h1PS3?QbK;71;+?{Ln7f%U7Nf`F1z_^k2_)EP6^O6LUvXES@UL8oxF=9|I^836)@ znw3848_;cUOJ+I1LP zRt+JQ8Jla~tXUryc9*ml;{PtC!MK^oZx>Z&{vK7?xMmEking+8sW*|~;U3%ozSqnJ z$;sNjPc!2nE^hVpSfB7vQ+tlkn#{{kty@qCP3KzbBO~s{d+P=UI1dy2vFkRCM;l|6 zIj9$A-CwCygw7d75UAX*X)ene6%b>koDw97GWcO^F0&&wd=W}7%%er{C>j1swW>im>8f?VrOb}bQQ6Q~W;yR<-pl7P zDa+z&FZ*=E9sa-pXU;}Ft zamGqbto59cfzs~vFM)AJQ#na{0dPK_y`Fd<(kenseSii~^RE&NWN>+(lYQH@%iTDQT1@I4zhyKRd)8n3v*1Sg|nc*P)PaZmV_}Yh{N~-b$YOzcAF&Pt&i<{FmKl3oFh9sZISBA5RoXhEA9t!$V#}|B<(zeTFntwNIelR^ zxcBD6SVYb%XWEqVX631W*RMZ~Pz1ce{h=9B$dxu~O%CzX;PAS3ynPkj7#K+BTm6tGFx>DhVl%SrJOKmulkyXl-wCj(pK)$)tBSJN{1MF z;fF8XsSkHmJ^r7u(T103ZOwYNtoC*mJ&x6ScI|zo*T^p6o}iK4u{j5dDKW)QqS6AR zyH&bWCK!9sHsA2q0!94qip(~gb%QBthBgB{0-JCah<&>KrcC|waZIWo)z-#z6LqRh zz3^7mns$?L$mM;WXdci_!_^$s0$*whwS0UtY~`);lDVOs78eDWbUhY>Yn2fFCECjE zzaHriqmaQ01301WGb1r^&mEAMHl|;N>*+$=Gb|fALJg@K_qERscgHQ*wN8g61Wwm& zV5y$}=<%#)e9c(5celG3mrQhinDiz@$-CbtrfR~`x;9#C`xwHLh3D=%#hrOD#yE2A;e^NU5h>aO9E+miV}IaP>($IzgoE= z%i~W~YxPeTA|Tw-0#9^U9hS5e^FR5^&<{$|fT+a*qmAe)^0(+oksnz@$}6-vV?aAn zncvciGIzuamlVE8Kd{pW8wXHCL-mjMmwAh5jnIO^y1?jcagUt{VLBJI^^x!73*u{o zXOpMDn9IdU1aCpesc`RP(JB% z9&npWAz_-v~oa0Sa0(ioP*kj zdVVt>@TB1;UkdkJw_0t?xJ$pcOoPaRr$;e|u!zWjNGTA9EL8kqY{MaP&}xrw9AcGB`HrIYf=B@9MBqdN?&ED<5~S#hP|7b7=Lf9>_>hJ)UPnqlqhZ8hfgc@ z5qBV=X}V^mecj8(SE)aU5f1F|Ebq^c?5j}^Pm!AlM`V6(hPeH(Mk4Om>4Dqv)$}P) zYjm^T!6MX8{pcB8_z^l=ns|koddCR-yyv(h_r)7@tjY>bhwh>Cy3aG7Hokg*;kfs% z`xz~Z8&E-Sc%@e@Jo#Q~Aq=OSwx5M(@Qic#3WO-XnDBW|@P^G`E^2t|mVFw$s3${N zhMZR+<+X2W?Rdn}7yq(X?TYqg7XGlv&5~f0BuR`>BP*czea7Z;o}PLhjJWZc<)zeD z`eBD5CBQ2e9$>*;Sor@)c>jfS3M2yDP$Hu2!Ch3=jA-&*8E+Q;030Qnhg|G42UfT_ z;q3SHg6B)%?e^1b?QF|aPnv$hTKue%rXQ(b#LtS#In7J>417WLjh(Gksw;wgQ6JJU z>i<7yHusN!;sIEW{uKj#kgrW;|2`)mY=OQ0Gmj*Q0XVQElN5?aFfUT;r_YdM>0kB_)$^jv+hBK<~hjsdsrrYQKBGlHXwUY+EQyr z>piNkYra|VEjMq4M#A{;@Z#kUg=LsceMBcvSzZzx!M^zDH^G)F~8j9POu=sf9H=DC2S-- zza(71NGe7RIRQA1^3ev-+k1llcqTDCEU#`x+~_^!eryPFuF`SGXlF)@zgwp5x{GyF3#BN5CFgB|QsA-@md1k@&k5DW&myl&$BP zuL;+S#D~Q8C3)LINYMjgC@s=U0sb_G6lF$WpKI_?p$zl@42?`L0g<~9UT9mZvB6l? z=Q>+J52wscMb4fBYOzq0aK`*@naq5(K#11hq}$kk%btyAOHX_@lE9l*vMX%YZG(S3 zEXnORzLQgnvszpQm#??@S6PKqo<40vQi^ATyOE??*Z!%I0Jf2!PyqCSRqOJE2Iwe) z^*B%dvEmp>zdMZXY`}1-G^Zj2&tbAN*PmU8Qq=i);IT z(TZXCj!Y)kN^AnyL+pudpb!QZB zKN=6SrwyO07zVHw7T+FxHMc8*E^?DJkra_2T{R}qVh&0SS}EYPX>}TjE4c*&P3Om( zu9!!Zb=uD&5j4P&Rjoq@1&~e8id2=Kl|LiE^`n>=qczzQlhTYTIQ9`gDe;)+b4sU=Z#IyU#K_{ z@-R#TNL^VFJ|0jAFJTrdqGbTtFHb5r_3<~xcI`_t!{7mR;*6M%U^c6qL9EBOReYvd~Bl%Wfi5)P~$yII2XmB0bqO}ahv&_xE z(`3t|qi+z|-lw)&^|>Nf&-Io@PyN*Iz`owAim34XRGXs9)h+Eouf7Vp#aRvz$}ETs zHmFdJ3T@IFsrfI=k*sLic7;86;JS}>LQXXA+dVyWTUq3)%Fx*ME;B3X%q??GyJ(%X z01)PiSP&?c`P!*D=1piv{K(B%j1<2p-XsCe zXKkC9Wy1fH&gk@^uZJVMt!7HcRVox*%#2@+x9np9s5gXb)}nl-Jz1F(XXIy7nBa9L z1!~jkU42Q%aMVO?|6Sc(+{`Ke;;-*g5v~+tSQR(>VU&+uKg=#yXJEW{9rrN6YA zjS5P8CyNH6R2u8-4N|q!0RmSuXhl-Gu3>(M6+Q6Mdt*H2`xG8exw&)MmKi3d3oQ)p zAR@4~^jjf|HTs_NWKL+S!oGhGOE1r@feB(DtxU#_I=-5m)+G(iRRDTccv zNT4rW)0Te!CvL*Bnk(T)GfiNISK&4JnA)9l(hzgZ&Kb|AMZFZ)L zP-@HDf0kAZt2AY%9iM{~K|7J!e?NW`38S^uzD90EDFryrFolo2WnEb+bn#*VIah!U zYjzY?5U^ zVAPeGIew$#1~}%En%$s<671VB$WA6>IDqy4HPhxqx$EU@dW0B*Khd;H73j~2VF-` zWX^U9DxTfXmcuifziNpv49naa#CD>(bZdM64I$aRFOAahP(Fx`a;KNBMkm#)y`LhD z0iM7x6wI~v>1-O-HCa|~oLbNpUgI4<)x#!03%k$?sTmf8pS12caRGPdkfou$#@bYA z`UcA9uAl{j?{2)u+a7$bauF~&^M4XNy%ZvH%(A(EXJRF|Gfv5J6TM(5_*yRh8>cIS zc5zO5(3W$sj@p7pwr3SB?-Kgl>`k5+S!#9Wp^=zAVY>vMO?>C&o}>UyqE~Pbn@>z; z84y8!peM_oQhU5fihfM{iz$5J+AkxKk{b2uqx0?;4X&r4`hVU9+Iml_TrveFFzYU3 z+DH-C5TsEa1YRbsctk`fXK@#A=^m54Wgres$s$lSBcVRjccXJcbrJILQlB93`Bh&@ zlcNu!lr0VjNWKS9ffE{BwjG&Lg=4Sj%u1B)3OB>AtNiJ<*{&;ox(OpFlVf`M?T%fS+?b&y0*l;KbhAHJ!DZqZrAj_rPCS6P@=yRp zY1xsomOc^U{25z3xB^c_fIurkD#8plXv&H$|I6j4O9-`HaBsMiHMYLu_yH(J4X{va zrMcZTo9_-(PQTCZz?(F|V79+YQ&IXgcN96p+Z%@qcP%-&wjBkw5SB(E;vDv2*eT~| z+s-A4aW7h13(tkj!{aD~%v+`I3xfy~OBGvlu6efL|MjFrs*Zcz%vrrJbsI;7`)XrL zVcVnGVhN%AP5b>wxh&bW4=mI=WnoXb@(fqv1hg+-yk)(1u9TA;$;5=`38Bxr{bsm5 z2d07g=Wg%BsbCnTQ`u&9!L4~rWm)8kHHS5Y;ZDPuIPG*X#VX3b7+f%}2_qJ=4^U}s z5l=2zUj;nGr=p0-;ak{&w_!H9yAH{~qcFW97v+0z` z`L)PMc;ST2IVsvzovX)H`e4OA9tSL8@QR>+$tzN$m+`T891|RjF_xvCPc-9jO>1BW zLze?z;LbLA;^-Rdef_T&dm#8%RlMX(-NRy;&My-#{U`j4;sytaQkXe)|L62jrff5f z&vc~=##6z^ZZza}_)Q6XyLG0&*H@T$B*9_BHo3QNHQ!?3!71r!t6xyIS75KSVvDRq z29Y!^ys;p7rm*=%PHf+MQ=y<){THEY`UQW2|1?dIGofP+qKp^k5qVS>FMBl9I z5CLnizJ*6GzJXf_$xXsZ*sV&pG-F4Z#4ABpsI zeQ?U~(MasJnLc6B?a$s2ZIiNO$n9tvl$ns35nB~$^$!E6z6APQ(MT-p=sG$zs%=BC zwq@*kck(Mn_CKQ2tWdP_rNGEXtomn*L3|~YEz-*AG77EGDH8Y2uI3YXQAtm;>g4WS zF3r!)PoS`w`78b=bc_~lppjAcm;>AxefJj z-yukV`HQPrzkzx4I7>!fQqfL2j?b8wsv30F4lYobL@j+#WE#enVJfjxs&jS zIAZXl_bS`UFkC5({bgYas zx`F;Wb9uSC7q&=2&&YOFm|%k&dQFfnQv;EKkfy8~t6M~MD7xeZLlZ*=n3SF$c{}^K zS7%h(fE}32glTokDpxQ#Z#U9P!~6OGg)z$T1U>r*1`;5Sv;qdFoNem*TEs*tXeA}w zqYcYFF}&kY!k5x+%JB>a)QCrL$!3VJe#(Tnq^SWptf7hV|5uc!^>BLb85<`lv^d2Is10Ig&njn>FTk^JFbjP5D#WA0Qdt$b`e3JDlZkDr6{ru%-xd*-?wHxDIrCq=xqZI zW9|5;+)#R-vjEzh=-Bl3`UXUo5D=sJ=kL53OUH1uN`BFVgQ2FUkzstX&@u#? z3>2GStwuqDo8ZcHXd)^cUy{Y^L3S&6$IT#D#hItiMz=GCO^Fb~lV~@VAGpP6c(d_5 z`jJ7Pm-s0J2(as&aytLqe#{v809G|V@P}r=l0z*lu0$U&WZ+?yseVKKK4Dl@77u#KfR6#moJ#jlYTZ417;a3o)1v%&h^K6`oT0u1;(&-gf{N)S#MEn~~)Z8>tq z`n3%|gc2779xf#~$2;eP0brn4AZhZ$Z+4OlM>@4BfaJyftoJzX_xk5G)<(v~Cdp2j ze^p7BBcQxq<2&cm15kQjp2LNx@%XJ4T`>UV&ni^ZS8G^q3uu)D>}BXO)MlbSskOiO*8-RGA0FOP6Qn8PEJ* z{#p=-$JWXFr7ZW$`Z)3mJ?8nF5{{m{xew!k;+)KIF-Z%Yog@*K)K%s=jq>6L^JK!A3+2W~}cqHbG)w%ai8?FH5F=#l6Jab>z|v=i`6s zF%pkf<0U)Zpbkv=|DyV~b^pos_Rdt97+zmFl`!3^Es$B$Yl7Pni@CsR(-UuY`OLMaMf~v0lsqo`un9YKi+u&Q3OHh=g z2|=x(H3fEg%_SA1*x{TE|313UiWb*S2ub0iDco(R)b!=fxB6FvFLU zxzgNUb12bbRAwKA2;bJr5Qtq(*M~8%%o?8hFW`OQidgBnj%H@3PXwPQFcQcXgfkGw zL(36%)zQ%&Grq!D{lRZlasL(0M|C|c|J&O#KP5an1x9wV)2UtoHll0(0vCz5+P7&z zP6@+_N2if|QMFeZi(&^rnaLh^NTFZ~PGz~EzA*hG2wFK6Px!zMRvug$bzA~;ukBsr zcm6)pLzMN}@7~QhP1TIxYmB#LXI4!cUzhGlfTiZ3)+^b^v3o6u-=}o%ZQ`T&AY5-Y-jh`(N`=lxxkEi zB^~pWQOZLWcx>o3wxXCczNZ$YcQ5;xU;o)IUmNLMT?P^8^G48D;vq&KucZF=a?S84 zw(wkY5F~foiy(^S!x`C~dvDfW3f7Hdo0k1)fV;736yhC4OjRquL+mrWSzutv{UY*E zZgs7lqAg!Z8r|+j$IVqnpMB?wKgKrWVx880Qhd>XbaDXWD%p$N-)CtPR#Py{m^3rv z+WT=ilGP1Tt@cmN?_ACIsrB!gyH|zvYa7i$f?%}{u6S>=IA>wT52-6%=MSW~=^r=Ohtd zU5*zzz2M>x4f7i7B%Zl1u;NwisQzPKlFb;IU4;gb#q#;J7&8gw9%3@Xw87n)Y9Sew zzyk|2l8EE zV{& zseh#ZJw9m!q63>D?OECq;LK_w7j=S&8wzb9hn(M*b9T*%R-`W7s`UqcRa*EK zb@5p{lwKRUQ_{pwksFLaR9wm{L(pvV=MrRH^7Az?Ro(&pY*g6L1nsYqY0?Id5)cGo#g3rkYnD z6N1D>SMg)e6?62>YaLWeKV*lN5n2ummp2kT>;4&bJlgfU_#*z4C7AkKLU9*=QB2wf z?YL)N9Hr9to=X9%)K(?JMx$8@>OqHSLP4WAc((l(QSP^&3C6dn!e={>ocGCs$?E@& z(?Aa1{!im#E3hnNp2R7<>cEcX&=4%!XQmC6|&YpBW_i7&)+m|Cf+e)-_ojixdvB!<|=7Ao4*g9s#g`^ zj;^`&C?%>9=W}*5<(a}To?o`1%~eN)37VdMB9H8I!b!=69;f-v{QzPy?vfQ&<7KI* z(4zV+DWHh~GJLJWmgMAIA6GldCT$N1T^7QFMc9-_7mFN2tA29z!q;1CZ_&+3J~i?z z_C#sTPn*IW-@*Tgvk+tEUdta%!WVlSAj1G)F+2D9QcWRqmFIT*7gJQGH@WF;+!9@- zRo~-+Px(e*Ur+zVTkbsOhOK*Wie`zUX>+OeI;Ppc8KiZno>uK{6s>yD_0sHIYmJ%_ zamv{YL6dSOUin#h%vwqAS#X&j>6K14MtkM(cq5X}Z>XZO_O%s-?LkHvEatt*-h6H6 zaL^uTgAu4W$sP&1U((2UHt`c7dZ9CbS8oLDOesjGy?S30>$=2+P6|HG@xeHDS zbF~%GIF@dCQ!KpxTh=L)!!Dy)(p9yf2a6Kh%U`2jQnQLrTE{jWqLFTA#oqlY^L6U* zQ#|dt+%s5w+k`Sa=lV1OWF#5t8{E5oFB1MIil;dTg{X9$cEQmQg|uKF`Vtb-)B7&o z1f?n@F7e-^EKW16=wID4dc4<@tn2)qbm5w2zCpcL0NuPg$cWj1?_GlKol{YioGuVGwiicxs<1@P%xgmH3hDOry^FFB1M?;M!dQh zvW11%5iXJx-JJF?G>wW^1#_YA3zuyQK>XPU4kv3LL!1L*S0j-Wu0>lg>>Zp!NNyY6IYEK0cYf>V z$^GX5n?zGZXd@I!!BJq(OP$=6x~an4Tp+;XG-4m=0dY zU1evx_e=Y_NGeTfdj_4Ol|s!oETbDwcZ17e|96tbvj9g~a}K+==To=Vd}fNah}eLP zkzW^tC?g5rrW|!dd)X_t!^4j^d^HkPA>fm#{SQ|7AD8jO?u!Pj9VY#BVReCpPvM|A z@%jFCA&iUqHh-1n`<@&aE%e!g-d3S2hZfsg_kWBo?^u7lnHKdYRe#e7wu(kZI(frT zyEe!6&ZVPk94}X^qdo1G$E}x{JMx2k# z%xrW+)2I4W<3o+tp$Zt2EBqtB2j*~8aW#f}4vcGv+pbWZVhG3C$Ilt| z&}-<|5Lvv~SZp9n>MfjPXS^i0gH6@%f)}2!kDZ|GJR>*7>Y$Cz_9uUaa8-Mtzh*sT z1l)$a89(MSO`hOI06oh`dW!65fu3Hn;N@UZF^LZM=SBu?nd;9^?*NKMt;41==h13| z=gW7o$MXXT7-$eafq+Mh#IWzv7*t#9$==xn)VJw>DHmHYt%PtIjgYZ?XgHBmFK@9xTycmu4eZCf#&c^SFRhszr}wN8y}3Fi@P8kbRN z{C|-OXO3VvrMImI17SW$dlO^9-6!YkvR+A5YZvm)3fsLjOHfLEfF=BrZ=>rMl^Q2-)ATr!a1{7kD*H#QhR+wtuh$A000Fj;v)Bmo zD;njO&(UALBlYf}7o;>7i{c5nh~`qG*O_p$e_ZO}7dlpHu!k^*!O3=g9(l+LJtd`7 zmImR8iEEQ(hgf_IdR=s+AfN_R#lSQOEwiv%+x*^|FspK(>jWB+Q&bpXqd78ZpEu~V zU|Yt+JNe?O^-r>mIZiUD=H776o)EELZM5(DS^;_rCb*4;5E=en&GlY56CnUgjWl!i zwireOzsCWMEO{|!s;D#hxa}}v?>v&OAo~u^04W1EW+8hd@kl=g$siX)WjnCpc2uFR zZO9OCXXZ=fk$hs@5sPf$IV>*uvj}w$I^v1PMg22qR;4K+{IC>ScBlo!^iyaB-q!msk3#~cHQ?@R_{AZ8%;D7 z|Jn+48}0etC~#C^WEh8u()%5LQ_zfs2%}nfB5*X(HDh997 z(6Jj+X0!FLN7$(6uGEMq&!+O-XTKz<%p!L}ljJ1#P|p5}Xh49Ycg=t4KXa9T?nx)m z2zh^Inp*=$3RoWbZQ5l$65{m>z?LKPc^>Zd5Wpp$bqcU z9|@5IVpfwrcK>uf-R*Ib@2tI;BdTUxu;v(p1T{a;{T4DJe2id-tyIE>8mnAWGfAb z9;K>3?R4;W&D?IgDT=8wg2iF@iFkimb>sOSjN4?Z!!>JuOJC-BU3Z>FiD!)%AlbtP zN3w%-)hzzH9%OP*kmO?glaJKfq@N=Z=R>|y?2U8stuJk*MF;N+P7j^WpcjIeG&~gm z?mpy?0q(H!9HuQ8H_+qjRdm1ub&3SDZ znR5T9C=V8jNqv>S5~{5QuP{Vx25ld=jr6UdO&FVHfK;~yX4B(RlkX#sbP3mLfl5Rm zA^t;!liw4Kd~ExBM7oUiVpy68wqpgvz)Y@qMQ_!L{s47cgmV&{gHv(H_2uWpg20~^ zddu_YIxrKNPXgZ&S&aDNSDp*RT_D}(-?i?L18j{NqZl&W*=B@nAbjDcn6W?jGt!T9jA+!67 z;da7@LT2&${$)Q_(0qBA^{y5c_`A6d#j$1Zh(9;Bju;HbkcNi6)}*=Abkg<$jiV!0 zdcX;aH2A^uaXxk+K1018*>}7!>|k2A$37YpRm&EoaH~!qd6zn8$wgyy?n41hzTA!u zqm#B4{17?^W4CvC>uHkF5|%b3sFlTIrD4RujR&~e{3z?_@9XFrX@8xLcsg6XQX^?l zk3>thMj=Ppjk`t+E-Y69(S!*pWq-LcX?Hg&F}!4S8%h39~=v_;kv2{w(KhqkAxP;YW zS&I^DX};(t5W-3s&yx8xEod6{AcD+p2(nPsmsZU=R>@Tym72@C(!xoR=S!8So%Ad{ z-E2K!;l87>=6d}>$<))>a^KO`nyuMzXSc~Z6XB)O;uBFjtVZpk4h?Igx{n=QYySA- z-Y0IZiJP1iWpI;dtA@B5-Tim!@Fy)r5qx&-ulz<|MH-9v#OCqq<`bKTnP zm1%b-JuK+*p6go?OC!wM{N4HV9c{vhS{%Gzzs(x!uB24ceY85MswU;6mlRc2k3TMQ z@AgDJhojYjiAd!I!c#I~XkBq?=NrpVtaMB_94n$vfDNmv_0q|pFG8#p%YBQ@>-!dj zri7XY8N4_b=6Q2E967ni70I8K#u3azN5xiKo=7?Oiykxvree_-$%rUC{<6iT+rrJd zS@Vs?*MwDpumKbKiw*W%5k>VbU8dZ7-5$Sq;$`N3+aLe4&5YJ#!}t7>QK{6uO& zDZ^lxSEHflQV2!SVyy+=2=X-I7PR#r(ytw>5-kPt-xB%_roO-u^+gmhWggN>GIklx zvb_4333Z$gGg%M|C4F=u8=j)Rh*DFoYS-3l&wcC^$>mxJJsBPUacH0 zcO4yj-bE`V*9x&${7Gn?SQwL1-_V7dl@t{zcG{|etVUzQNEf0tofr)L7ED`<0^)R(e5Jg z%SDw$UO44~87q4|^ts_uS4KIC+1zMSTe0Nu6Fok$*q#Oxx&-LuW=Huhv0TMe)okuF zh2}Dkl`!TGZs%SYog42j`CL-NIz`ORWO``yP4ekYi45$@AAejm5m%Ratc3BpRb_GA zOw-Cz3$a%kKZ|%+l&Gar*~OLlT3wu;)ku^De-dJ+tR3&|?@gHYCdME{G;LAaWHh$C z6ozIgGw?q}4h2=+SZJI~BM*UTPb zV$l|vMG6v$%T1!mLQ?|Yx`ZKRRw~_})>fp3?bS-GNOqJ~Lu2uw)tmbU(yw+!M(2ja zhJ6<%TZHy^#W}GQY|WSlMk$RA4>j`@;Qz4qqKU=E0z9QRa}6 z@h(3O$bxT3ZMEi{PcV;tZdFColWAwGK^b2g7Fxf$#?T6_|9cyPtWXn}AdRtB>O@!S zbn=>urqQ1Gl#!#;&R*A(vONjy6xLh|kDu$Y__K0~P1<-?Zk9E-N|>HV{v?G)31uq4 z#k=$?y^-UtClrz8$6a}>+1wBvKr#<4(=5w;?s)HA?z$S@_;~yY#XRZFl+SIDYjnH4 z{84dP%ryRkSMNCj`8Ca5+1&xLJpNwg={6KLH=nv7n*;&ZT5QCdlXz}Yq2=H-nnq*A z?fZ&xmpy37xJ$%=*DF;(kTflCM2gvSHw=Z)^3Ga9GX6#K1su}Ni%wYrK6M=R<@v~G zMt00x>t0Is$8MD)+Jlf&F(gj8~{#8&#d z#r~d!^{iO?YSeI2Vz0>4jYc|!<4?Y%Y>Tp^wp-vNsz3g`I*nkTueBJTsh5-6`C1Ri zXZO#8@tvHTQka#8QitS~!E6V*)^26xc-NI<5lV_`RlDX!3nwM^%E^=OoGhAv#i+$o z39(Z`$9sE=br~%Zr`ryStJRiL1&gRpAOmBX{ygoJ9&QQ+{IJ4%So~HwO(tVhm<4taDtp@Y`Jgf+OVy& z)%>n`>;$I*;G$}1+=MQYdzHY)Ke{w@=+e+Xwlt)|0q##i>!eAvZ&E1DLYb@&9jp$= zO-@fzB$3~2Ve`0&n^Zf$2SuXTpm^MZ2|9Bvimz!1`9^^lqTXa+Xupp*dLkLb-)twz zG{$QKGC?|nS_wU8aw>&+V0;dfZdoNPl7Aw_qU{47Ea1z@sglwF!|O{scC!LT!}^t^ z9j|)qmju#9?|7wspz)G!)-XNf{=oFJQOEf}B-+f2qIaB?un%e~|HdT?62%wi{45WW zHow?iC2qs=@ywa{8mmS6!4nnwkw+^k#7f}B6~In5*GsWhVL4(dH_Q3EQW(GT^?_kV=@tq;4`|vj0`;( z8ti?%9BfMfpt6K?=gR3_U*WvV`F}8VUhN*l0NXyGCxZk-?41uT?)u1}Fjhg7xd_ydgzaLpE77uQ6+TO=q)^z(D_sS~g1OvE)97>-Vz2m<5YEae9N&ktcDxTH zoLtCqPA%a%P|eW{GM7x-1?KWr9t-vrEb<}e4*-zr!z&^cSZ6=^VISi;no9INkB!g; zYPR4PJ0K*Xi*YGu6SNZpDm+%gLc9pJuCplFd&OfVU^u<#WXdQlZuuj@B$c*2k=7iK z>M=_0U3lwfLUC5Bu~+;_=$v#8TI*eGnZfTE*aig<*vrFEk_#X!Q|n-AZ8iPEmvJot zENpZzSW7cMauF`aB#ILzB+Y+(&tomfv2=w;i;z_ehGummtR>b;jlGhKz7|ix`_7+L zQdPoiTL%n_8ZV_nfzolb)9gwXRGO_n$U z*NQ&ttR>0s8S^{iu@ijHTL)dNtTD#%onm}?jg=q^(^*+_@O5^?hu;N@X`;8XMAB`G(Y1TVoe$ zj0s(4N58%b>@bpTsq7iuh5Vyp>0G!b)( zn%QCa@$-6!vx7FrArT*>KP12(#6Ck=*8RldmXKH&=PbmJpWOMKh@%Z#xwu+i$L(V< zK*cU{rO#D-uJoz3gL4LuwPtfe8mm%l+1|D%cG7ZI`dF=qYu*IZ#^l;m+SO$qTGqMN zj=2)L&_f@-7H`d42Zyr9U!T(Wo#B{?XCgg@X&+u?xQ8tX#fvs!zR^rB&*-yYoe#It ze?ET6>e8prB-YF~#H?=oY6=Zyb4xWhYbA92Xt<8KKq{18rxLZ>F$FJoRHHlJyX(T1jLn>T76ef6(l;&aG)dQ%yN>GR6(RI|JPCb}N5j>F zky2V(p!$LPP6%gZJWE={MO!<*or3NI)}gAB=GIBf>5VFA58DW_S5AI>=OkB9Q4$5? z0OPF*3e$@a{LZ*}9Ck87w$PR$srF%4wj0g)-fEhNN}PJ1Q}0bnr&Z3r!Z~Q)D{IHQ zfTeaTfBYRwp2RYQN&bmqmt)eNQxTm=yZYIU#)``)Luncvl^0<>D^^~Os>N1on&QS; zI4QALbT)9-@2Awcd;Y4J3B~H19?h>>^Q~e*DUtp_M}}jGoZtf}x2vv{&~cdy){5NK zS4tOzB*}QVY8^drKzK65Ho+YqCK|+4Dmh*W%*Bd#*1okqY>o*`DLB@C0a;NuMJr3Q zLR8fQpj33CZj$D(8I3LX9j&e1X6+!sizsaSFqQg_2H~Xojp$F=K`26KIR}2@KKyp* zJub0mmd&0^MEsn~=N<&+^c60(&V-BKejHbsAZ036Wugiq8b`1lCphERRRKv)o~<4~ zr?Ka;6MPd^XxLFRA9zHl^s>gs@KO_(I|9=>zyANjDxU0aJhw%WNOiX1<3V%O+9|ZL z2=ma;&N4o=)fDbVLz`o}CDR;)@pa@Q(u#@IeY`&YM`!Uuvp(ib>eYCXqwUC3N}Vr% z(ln|CS%gv&S+m8|UW%<&)m7Q8YRuo$WYuY%B5CB<=%_qs9LMV%az22lW>;&HJY?eG zYxrfG%Z$UIva+U)*PlN>aacEgU*@lLabI&XSG3@-Wc!Wd(Xl+L;N@+2dwF~OXLuW5 z-o`N*G;aX6gkBSPg~<rYjA);;AK>j+*C}gB-uhto5qt6 zd*$TE_fFQ1Zzn&f3n!%yCSrsuUE-H4L0sMtazfKg+! zc%sMh!e4BrYH7@zS&XppQo10^Lsi!TF?ED}nmQ)KisN!o_Fra*&{=#v{R76^=O zwtz45PIVVN7V<7-dSM*zK0_>GS(uK{F-Utmr59qONDKg3U>Ud4_CyO^IKiEQ>O4u$ zVZN};tk=Bj;VXc68-`~18q@?o7P}atBE?#pB=H7g#u>RQQke{pg^rOJd@}b2MgZa1 zBy51hG)6s0v0p>dah8K~eRfP^0&;f;ps%w21|8#M0QqF%E`` z6kARF0On-#6>pltoMcO(zM(S66~*Onn6@-Hz2%Q~s0~~5@-8qI%q~Z;D`nxTvT!A* z-BdEp7Lg26tFqZ0hO&2`rO22fq0VPAA1gdtImemYTEAM`kzY~_q>V0Bw71Y}>(ysr zglC#uV^MucP<0*bgqB^P1g>PQ@YdLb8mD`uin+#HtnhtoNaalGg<#2h;1%vsL)J8g zY;ZyVVK$q`Paq6StJ6(63dMGDA}n;VIHnvRbLM=b=uvTn=AdF7)|ZekGO6Y;jmC=m zm@makwNdOVX!16^u`Ap3Mc#zQOnpaV=K7v55%{}A%29EX?Aw@msWC+63P9$(V8SfL z&dte%#?VT=tJU1BS%{5d2d)FxLhKcP60(!q95LI2k(ks-)POLezfZqZ+4?B6nuJLp zFWpEixX7%Z^oaL{X^=?wEEX9tZxyWu_2uwvQ6RR8h$-|vd;btuAHZvx%lvg{K7qAj ze5U%RV&fFEmhmKXq2a3td}>o@XA@6WyWa)_P;$L#^DKaAg%n1gB2eotg`JCy0jL9ZQNPI3~a>1^}8P z3t;DXxO2Ljv5j)AP&sGi+MPgYT*eCKUTjY~VIs}ffi-fUK`2OKAkOGub-=qRLYSE~ zjSXL0rqh(7Y@Pqmvd+J@^dj7w#IOv69jpllvKrg=*ew&7;9EgyA`J3Q5Dm?opWb;F zbDwoGT4*$e-9$m`kcc}oGyMwIQx-a9sRaaMHxQtr&KKpJ-HEWC6v@g~3%w#!x?YMW z%}T0Po1{Cl=6%oa>Glm3nP%dj31gD~iCvzoF`vw7;lAfF3*QN09`OD6%MdSB5nT%2 zcqK56#+GYDozgk-Rd{}}5ZUp4Gxx+YR57!yDauL9<4$6)sj^{p0|}f`5n?GM%~t0z zY!T-n7)la$8>L?$+-%KQE|@PEnr7VhrXLKkhB@o1NUWJ}NMpq|OC-WtS!zLNzBK`b z8jlUB1L1azLhqH!xj-~e#p!laFNQasBE-UR?1pyTz(wH%zLH!^mxl3CY9+AuGs?S| z8IjG?>v;JX3?v0bJUakOgySvU>~a!J_@VYcg#02F8!wlr)LW1&8zSZ??yq^oJQ{sw zG2@+%c7d^A9IqH8p?GgeCExQ{3;6INO)_5slh!S%;-@yNhddxTR4~0TkPgOelgpaAGW`p?BuXDMDh+cD36{ZxYlEt!!Z;7Kz$@6MqZFEK@@H z=2R14jC@n98&zo4`*<8i3+cK1rh^%+gXTkH6QMSJx?x zw_EVHRP9h?8Ncug8E8wt~4 zN``}yb6he88uk?|vh|b|E0!Un!%($9NLg0(Vobx;F)08hu*h2FyH^+ruiEE!l^_K= z_NdGOhb^!?fJBfzO&M0A^eJaO_9~X{X$t)o_RWkAv$~&Ysa;(Vr!!yAR7AxWOMln+ z{oS}cHZ#l6$nm-EP0nG)I?ykYFD7-zaxxylpy|TM8L84;dxmfq77E6ZJ!Xj`dnzrS zM6SeCny&)#{8pr(BE+Hq!eF6co(jn0$pu|RiN%(8&@_!sy|8vX^!()F-UZ=f&E=-r z5+KJ@7kVEX;>6C~O;`%w-@hDk6(*>YdBo062rq-O<|C-x0A4ZVgm32Dn{5S^U%L79 z3#fz5Io!QD+!&>w zXz(?q)x83s*5i}Wgt5k`bPA}X&R^fRHHMdNf&FW`!C+UDiRi0_=vU!!7MiY<%NH0+ zbs1CPS`fn%yj3njK_vt(^JICg^#4>o=gPv3HLfh`c=_!G^Ck7OO)3Bux>bS}Kd->}LM1LS!AsXyW7%j$s}-npq7iN1g=+(`c-?%f*ZZd+@0xv0^SK zkB?~;a<=4Trk)J8DD`n8ya}Egf*UafqR7lykSI3^_a;HKpHe>6bTA^{Sw=0$KooiXGO}((0 zf_pR7LhZ)79}{%A-ekPq^qVcUaM2dlDJ7srKKu1&rE}!Qo=-U(S2X`b3eU8sp3mCa z$Evq2PsCG#wQDic4-vr+bP(UW5q zR78(IZjxb@jzf``3GGcG#Bc0hSf-)Cq{<^6$EP^lu!L2_1gt6wn~KF$sqC-?uNf6B z8k!AczdqZs-T|c>S5`fJ+MzfU#5fe!PUL@LKOM#j5izVW*VQ$tPq*jHlcH`pNLRQ?eSBdWG+~; zRlZb|{j@NL2LSj5<~R0`9zm2U%|x`Pg{B-yMe&i7!L?x+-6=!Q|cmdPfa1-HaVr`#*5x0MnH zWDlNWdoH`nB}u1ClN4LbbY$`22e0IZz^Ns%X1*b{)mq_@@yf7PfjSGR`F|y&RhY(x zG*-SLp=E6-zGhAcduSLf(O|G9_Ug*VUA3OZmP>Un!oA9x zSz+oAS83#G;U?QeMp9`@BVEOhyBdux_nR9GQS##7ONP{0z%3t{997ErqLGLBB1V-9 zjb?SAh*R&=>O!UXUI{I?*92746m_2Fif$S$uXy7}qa$tymcL+l$`QVuy!QYlZ46{wmU&l z5(}djy5IRS%V4NT>k}QAN>T%YztM9~|BaQxTVN#e&YUkWLD31jnT&@scf^UUQ z9c)Hp$IZhwnvc11aWGR3X<#*pC@zE*rN|;%CGO@uXSjsPS(MHpnTuGhl^y2SKJt;X z=hvoSB+N7s$heQ7cN_NwU>&j7q&c0%_)PWB)Nt0^lQ7*mNX}VKPDOq0*gscW$7SAg z($48$OH3=ZMK;R`qOy72A8eRvwCqL!ZBg%@jV251hTOSfJVU6+F07vU&vpJ{@c|_M zonX3$PfD^4;{{vym(;@>6fsgz%+EY1tfY9-SiM^9BXTFlLOw zixW1$T?krBDzPi8Hy&#(!cnC$%i|?p^9o6k>`8}0YW7AoF%%q)M+0P;biaTs4dPd_ zP8ipq0v~?_ebAH{*S9OCeM#*))(&dB%j2)sE{+}TtR+(mpVfYjrpVe?t+_UVZqpRt z2ArmbA(;nmSIcE@lQw@Ad&xJ~?JZ=lK~tJd)8zU360f5?uvRFVgnAWn$m5$V{E)Q% zAo(Ev5d3yvL^32A&OkRn<+o!VwWxtjtE5Rar-IS3=dl*PNxlVh)k6S;6ewrYf>ik) zMaVQ3&UZ})1tKUVVU9+DF=II-L_rpoUdfFoi=3neHonn5gCfwBnCwG*KZur z1p9%_YBa#M6z3qO(DK1WQi}G;j85^Dpze1iv9R9`Tbl)@^7y}#bZAiuQdei~kOTFe ziTe{&rD+9Fu5OamXMst2{JcspmjrRaKp5-Q zzmCHEE4a7x`J7Ttm^hViQQQjV8vH>uE%p6f{cjPco@iLdBWLV;3lXmBfN| z2ZT5!pM-G=|5wA^pF+?P=8CQ?8|!ov!zg<=O)R?nICy2N%#3eGmKvb|$*9 zpfy9JHNzZ$yz8VmWW>H#@u3Ler>cEmVtf1mNS^WDg#ZdW?ND#=Oo*zYwTeyR-yVp!6Ael2j@wR5PRjMQ~HPI@W>u3DhY9QhbE}j+5`6(>1Tc$#1Mx4(_)g#1}}39Hi=)} zkE^t_E*9Bl(>Yqtii|m(x;=>?oE5Cb^xAxmgZ+7{>AN)MppoNq{gfhGc^4eTF8I)h4AzD%r)S^735O zt+CInbOy`o|mRD|J3d_}N4r3+x;>OWE76A_2 zq93?JPd_p)R?N377MdY_1OhpD2>=gZ4>_Mk?WFV-`wWAi$3K!{igMD*f$0Q^Z%E7x z+lh7-fI^6y#DiKKax^{|Vn5AJNY2D9Bov(GC>IoYIh4%e6K_&RQ>#}<<`$VqPsD=GF`tFSsI6WDE- zXDfgZ@XC#v#>ZY*W>X+B4O0TTW(ANK&QBU(07G>I3@sTTJ2B!#oRF5se=_>x!rSo# z(}0WL^>rM?B;C@~TutHo?8G^c1Qso{2`futg3jwJ-p0s?8nb0l7z=h|jkASpj0Je% za^Ap|JYCr{%&%(DRCZJh^9c=1_JtaWySj_a9Oe#f7T)U+kRG=|3@~s0{f%=EBH=a3 z(cI7uVG2QeGKN|8K+~8T6hJueo{E^DcMa%HGJhLh6Ifx62E^f-+HCrLO+)=vN^^ac z@_`9Dn+K)|h;<)!n=Wue+Ac3*NEfCU+J)tj43LQ>i+z(akDcc%fwV%-V3X)lw&W)uTTUJ}vv2li3=zVNRWi?mO zRk(6eC8xe3e`M^@B-1bOj&*S{QQhQy9lV++c#D~=uhRn7{C;lY#PPUVq(DPGLwCrl>Xn7sxE6J-ssq?~c=aP(z;+ToF z6~&LALYz4BjQQeMrBWu!CmwwuKsnC59SWqnv8PBT7`nYt@=|+1lVYoBabESZ+^hO> zuS&7C-4Lbqrb8Q`DVpJxB6Ye_WNdAu&QD{#j{7cG1O&x1VV+P@?ROmZ~t8>=I_R~EKzoQ1i-D%RQsdsJYYQ5a+vgasr1It@UkbIJ4$s|&ll z!dNT4_43SC-iXQA)W_f4o%Jtz{1*$~=uGHN5Dht*DZvEwru*#T*mR`8zLD$r_($s9 z!Af`Vr6psq^TlqOgIG?SrW`U+JvenrzfS6kah>BFoaA7e87%Mf3x0ONyOLNKrFgq==`<1pq$yz-j0MY_AE@wH3qHHW`EgMkWAA!0`2q4|B1sF5S-NuKKQGyn zX9_T>m*a%4I6>&D#|ahUjo@^7Aql7M0RzmuT`+;dyASDSHgO*1Udtf0*C4`cAmve6 z1WK2d<#$MWbsEpo6IZ?o-Qse*+zp4~sjaZav1DaU<>s@|d zsc8gx^f{;rt~;xtn01w+;vzOqq~&y>_|}UrUak%&zA1p}qTzv&iC-CpUzNm~Nuj_bzvHPofzUb5gMuu?T9G=(yp^J3(y{0vhBEB7 zXoOtUDjkoX8=V|%>M%-mFfF<9J&&~@1n>(eb$_$BmplO-(ri266p5l+-5PCttLo&* zZG0m7MzsFIOK;(q$FHk-RB25$HkiM4#>hJ3RinpGt=D|-NGiJz?4fjT<7v=WM#b
    vz9!3JMb}j9>HXU;s+o2mZdKR+R2e zQ^*c$f{yFcZcsp>Y#_{xI^NaA0ArA%+cxoycQ|2g;zEgQh*3uYr}a_bv3*zfmT>BR z+;x2YVr~nf!oqNJuj}+;M^eZ_b7nflql6qPu1}5lzWZA-0ih)mn39b^*m%2b;_sWg~ zj6s zsXpq6nBaJ-NrQw|8!c{c1Ah~Cm&Y%DxDycN2ICg|K4W4Mhr-dwKrl0+35p_I#Ad^) z)Uq%n#Yy(B9Pg4TWT|nvEg&r_6J9%;d?#>pQ=+O4kmjt0G7lr7P=)5V`FBYm5DMVe zt4wQ?#O(L$>-;gO3C_V2uaI6B`3P)HqOs(xd@sak(brDneF|U1PQOt;Q!)@H0f8pt zz!MYv0`DVV12cs9|Jiwmmy~oDkRnK3#D+uMmsC3iyj+tHpMFzheoW@;YqCqf38vYH zpI|04V1so7x@&mhkplilx0N#&{Vmd(2cejg^h4Q zN_;U?hKc)H)Jl&|6G@>7KFLz30#Q<<*oTZ%JJ!Jf72NL9AalZ;Fub`YCg^N&%hG_y z{kP|%!fX)@z0vU-p)M>M^%*YyHi!XsqZfs-VCi9NRxERT$1CnvxzX>f1j*BhN< zEtOLsG)Rwk2aMn86v`cvpU@^@f_>xt2r-4qC2rrwzQuM??h6gfqc91K1CjOYJzj25eCWQufpyL zp;g@ZN`sh2r<34MLO3gIKdsg)wxy?{jn(qZM&__hIDPC=Un)g=mP+X^p-&o1ML9-L z|4kqlDp;zk;G*8M<7~^Y61t^0Qs)$~(IDVCbl|4HD_+|Y95cDh1v-87E>I*^i|l|E z3IG%@w%utv6{ zwU)kRu?mKzoSCEp2VNcc zRAz8QA|SbfWKAhMoplaDNQKK@;#)l9)n74%ek=VZ{UJ_&kT7SNty+D(z?hrYjTgb3 zlA6IlcQ>gArFx#T;Ua1-n2K-vL=l+!y$XacF)PSI&c{ZLz2Z+ot6S1@O+@+#_C zbB_~GZT8Ltr10J*T! zNd^dJ<@gnxIs2_WOX zqpfww?D5ws!LE!Zbrc(uy-jj?ENm9bykFks!U>?TeCNBsXxO2bVre+sXap>D0mgz= zHxdiOB%Kr0fG5zb1_TsdN8BGNfO3-ybvKeZ!zerK1W<5fgr3VG1mL_vRt>E>hNaqM z#>!iZK;An(A!G!iSeW{g8@X@J~h>K+*IajRj> zm<4#GWMK}p9H<70AYB(Ox(*pa+_1lO90V01Hp;A&EY*3uyPqM&PX@bvf?z5)zA{XK zB5v3aLZIA5<*4KUH^=KhAE5(jIh@Tcd7E|qe*1yO;{UP}&=x#7q(SCM1m5X!LAQ$q;T()l;{$JR2u0zQz?KVf%&heW zkQ)Bu|2A%DJTOVe`ahPG4tzIg{~ioLL6ryxQ8XB3$96J7cD<>^o06n=+U=NZ9ebJx zr5_-NW`n?qpuipce7lcHF~hf=>p%k1y|I zs){sUF{`2hg6&2yh`;b*9R(2V02RVYh^@lhRIHl4BdRQ`=s;_&c4rFT6>}0|VydQ^ zSv#7>*zz`vwPBdIbiDPwYh*jJ>zR;47uNVba^y!5VyC#y%hFM~GibD}4>pY*nNO)4 z1~C%5!s`{ljf#E%`~dg?0JI>|Wg(is1~I^HbJzwo6JPOe_l)X7WQwl^u?BK{HPir< zWk&YF09*Zrl+pyptDS?IiKk&7L2XyXEE!=Rgdc!WVw0-klXAP^0@CjbKSh~-2*RA< zw?ieM3I6I4O?U;K@W4V%^550t^gHO|Px_qcPjV_qPT?yp%wc}6=QtR5eCMGj0`&wKb~j+${j<5n&4kEp7tn60(w{c63zy3Q0E6M z2q4S|HvIy>kH3$IUO-Zg8VWN``5tVgkMuM^D96Yu@ppL)OR#i9HmVoF?`cvWk`Y`?W~K*G!hF#9iCH< zI8SL18EAkw&umTr%*&S|iHxHvD8J5Hi3LGH$1>vr9n$7DB7W@A02GNGQ7jk}@YFs1 zAdB%Ucr^0(b9wx~Z7z1YKQVJW$G+{@%tPXV8$I?G;*vpU44Df)MC5iJHWfJxJHZu| zmj;-}=@4Rq-hgjF_s5?X3H&}^5dNAv!Dp$y69C(5hO)wcb#3ZlwFq2YDkzR!ZQS#!A)y}>`s)+e2-H4RBS4+WkE#ZrF?^@V!wrv+fY18cElNl6MM0r@)eh3sOzi~YApe+?tC=-A~&=1wg0%t~2n z#?n)!2i7Qpa^qW!3Lr?#QDW9!O!_I1$$#<+6{{NK{3#Q`OdFe}wfG%7mj*Qx|I*9< zlB;)Qq(s9tiTtsS=@8YR}!z)8NQt|a{c zIjjJSskAhhTFqk(nT<9MYZ6EXMrZc}mzk#D_{g8r{04+#?U=r>(u-fhS=>#SLvy>K z49*!+rB8ZgebfoKTaM3xzX`8nx^GW4i-3F?nMDAJZ_|O7_nAQnVxs(8b-l6hn9w)q|3t1?t1JdQf6szLA< zJ{vV864vL(!63D_G#}W8jHq4tIYB`Z*zNI4cBGJaW{bxg8RIH(;FSy%%C8+SNl=+% zQDQA6vl<)7A!FAojYLuhh1xR+Nh%6 z*{eS*m7_F9VAyiIlUBS7!*VVR;HXaS$xJ=vlDdZ_bq=0)8mSgxQz5PbCfOJ97jS$X zf8PcJNx8gVu_3|$m3Tp4H58cCx3_f3>6eiA{9-1KnW_(O2*hAge;_fbqx1_ufG(y| zyzSEnI1jfIW^;n7%q@b~K~36WH-MY3$9oIm0(jQU{OZ# z?KxqEsnekhp$4Wa2wW@7m6Oauja}u($AxVD6g-P!0yOHb0SKqpi9c@8w2Ngr(-F zbY2Bll-NkgEYtX!!xk@P!2k|vg0+mAG7_r#kvYK3mqLB0@f>R=We1c6UkPy^_zTSH zi-ia52xi5GX;k{eS_vJ$7cXg^cHtF$zhHNPp~5j{o8J@o9VXYwX(WcJO`6!;UWfFb%v&;39gMG+0Y5MAdn)67 zg}DHvH0^tGlzv{`4;;5M&;YqPVCX5d1Cp#>9kO_JT+#$11uJIa6W8)+B$g6-r19gx zX$1TQeg}LfLjEd7oT;}skjDoyTppsxBNY6O4T&|=(yIh^(uL<)k65asyv8IXk7V?aNwLC+ragc`+2P*M_DtyQ@sY9Mg9RY_Z z4{9ck-B1XHCO98%-~seI*1!*%64A~`eox8%JGz7lob3Vgjc0L(;QXN3m);L{}+9}1DK}D12#@LeqI3@ zKAMnz)4e=MOc+bq_)Rb%;*h`&DW&Tbd!6wMm^uRdCOF>)`~Zc=U%<)J>lOCb1X6Ew zRjT6Y|3%tAeqXfL zHXPM{#*hPJAz5lHwYV1S6~I=T&O#Uz*V-JPs9gkUj4W<=lnM?67Z?@K3r0>cNgWAb zDgazwny0f{OA0_y;z{ynrFJxLyJaGlor(|}<*mf_RwUGT!wV6mfZ&%eV(ENMh4?)uN>PR-8u&21uWg=JACEKy`>HUx1zVlpM!uD+I1V* z`e=gUli@X&0hS=s*mB>|)_Sd(9$#78Z=HV@WyM2g=!Q}OUGb@tfrgTp8QvsHRWX^D zgB0E275BaTtuY_qVc^e9bgfL;AF1DXQc> zelIolkz0iY@s&tlnQ_p9k@LfU!-$z=fncBhqwZRCp|cTlM5#fk{aw zUh7u?;VaEe-ri7i4I^t(-C9uWU&r-)M*5^jAPVeV)b z06Kr=>v+*GdA~rT&sQ8d9*sEt?5vndeW9=8E{iOL z5ax>`g9$FrQQ_s4Pf;r^HsXP?2})|`>m`BIudVasa@7J+2~}7?7PKSk)YvP&7H|h9 z7Yhhwiwqfe5hOX(ti+nh+jf=ElE&>3R@`olGEdT6+0w+WMPNEln%xLqr}H6BBS?*LOltiDwcmMNqFs5KtD zf33Zcu)!2LKG(g;5b>?nfu=DX(}X1P@r&z)Nx*kDg)fEP(o989$P%L3tT|nzU0v)( zCGRW6cQn@gYMF3jFLmSb!a21{X~F69dQ)so4;a!sUfxk-hYC|qHw@PescS*AF7u;ei`?k~ zk#BLd^lVX;l0z!7A>0<OioPR(89)`^FMNY?a`?hXO^t%(q>av@;i*$(Pgw+z7yY zo1L{~vRaiEUCC}->I68six-KNS~f3sJXQiWg;n(kTf}JkqY5}iKdJ*j+<+vg1-l!I zO8G0(1|kSg0j&INnicHD9VyjBZIw_vD zCqDhzSvV_FZ)!~nZZRskn;ppNsCb&KxpOO4_9P1lS^*Y!F>&p9&|Ih#X~3q~beoFX zi{@KRZrZDmc)Kouf}flP?I%-?hU?uMp(+}v@N_+3todG@3N9Ts=C}B@5;y*?w(q33 zLmrDLE?Vw>h0-GAc!K1F3@$Jv_X;mHsMWL}DsdW5!pTV=kajn%atepf{Z86B0lrt( z?%Hy%U%A;%iL!idls@Rx+PI8vp0y_XpzWb@8v1nTDp4(UX^={y{PA}zl_ZwV(Z`}# zai|nsexa%G+A5cY@!m2%vn{S{JyzM8SeADS0+?!=Ee&ES)yY;RXmhQU z(D9?@{xVNiZ%9O)4x7vXi&jky5}8%RlO|a%swnLqziv9Upf2w3Wemqo-J&h6UNM)cVq?Y|tc|EIl3!n&j`cPEg(OC0M97~W}?pRa^{7^R$d7O2UdWdfu z8xE9moTh=l3CrizXp+sugtp|ZP_?{jo#k!7ogv=mUo7iMDs8Ey+$|DAy5Jl@KL{#9 ztd%+6;0bwgwhk=I!0A_CRT(aQ4Dw>vNJq;BZ>*H$gI`*UrO{WmUkPDl`%Px5>OU=n6?HusH(@srydaz}I1y;a zRQ#acr(b-(Gdlyzs^m&5on5UbWh)-ByU}3i9isQk$|Yf3D`uez^6e8bCEPu0jUvgS zj-tjYJ#=orm46$bW39|vy6NNv5Ee;-uQgpfPzRy7ho5l~@qGx?`t7@x@NGtH9PsN2(E!&#f3gz396c~JXXTZ zWfwPBDY2HKW~+-rWg=l*Z~GuDX= zc%Y*BMoR-P6XscHe)V$Q0QB;Auh5BJYoo0vC7hLKuI97GDMzdMQ?mTY$OsapaPfk7+UGf)_*uD9%YEu_d%l=>F*z4DDl&}*K zHI@}{rCBeodv$$gm1bW}NHQA(+TDKWcd;u$EX%|YM724#vUd1hJ~-Gobz2?jF8x>n z!7oh^LEB`uS)N$j@xZ3|xbxu*$bH^Q7cP_*!R9|c+;oUeC<`*c6Bb9gAMf;Od?r41 zDN8(0^k?e&MBAQ*8=h&;{6F!m-9^!YHBX={`9_i)qlYy2KT3lmqx|?YA>V4Vd}Ld$ zHt4Eo*28mEuA|bOK7p4s$a6GAm^-qN`BJE>`#_mShC_~tRtV{MEyaAiQdwV1MNLFC zC;m(brOwJkJ3mu2LB360*;|)(NL_`XQwdQfoDEJxi6yL2#7mJRlEUvb4ZM1op!3CA z#)L;p_;qhN*}_!jph}R1*eGxFC65@wR4%s{!bEnPD`^MK^5h$7D;pMho@1q%?;^_N zq)~c*Qk#gW-FQsoh1p^xTjX*VT6xfLJ9V!@*=v1%>N@wvPpo1q$5dmh{3R8O`A5m$ zi2YC-UOo=CYb7&U;NZ~`>D@G6(NE&fm&ea-l52;|W6_-4GJ!n)kT<8*O5U7S5^IOP zA!;RI#~k=Y!oDcU$j&|0*qoL=0c)sOp!?rHGHZ*N>nd_ZbC0O*M3isB- zJx9l^k?L4jl`?tdgw$moD*>~Sqv5^@tVx);BzwarpK#p>&T5{LYsN7W){X&yr5x1%uTsPCS)GMKLp;u&FZROg1Rr`EZOLf2_$U<%=jT(E! zw@R8+-T0N3il{}7g|HIiS#`EAtVoOF-iRN#Hxnxnn2*Cd%Yc)u#FhMIqy~29)Ct@9e7ay(y?fhVd#lbMEZ3X zjm3LsK@22tI&}HL(?&sZeR82SyMpR|;C+l{P{}(klyqd28r=H}v z@pR3hFk0MZy~`o2Bx^>!9?zO@q}}DJPXh5?9w`8;RIgo-L;oD5d_K7{F@NH;2zBx) zEB9H8jp+0I7MK!t&1BEAg{D$tCok?&%IQ;fQdIiV$$aX_(OyZC-x7O+IpWzM3=n&g zpEw8JH|{zyWmg3|I2B~Y8s9THp7fLA>lnCsf~Hd6(OB{MVqL`>j+Hk>rfNmfZ4;Z` z6^PiU^j~nDkLg?EB`jGiKrB-MMVsb6SFrdUE%7lQc84SDyu(XvOof$ zTt2MSNWP{~o*xpKuvVO}L|L@*W>hlymM(yD*0#(RZVwlbg;E@iECW=lgJT0Nm?c^rA;!ne7aiaS@! z{$J$yRA0NuC~p4}Na)ovm^EoDm)eCeug}z{k!hhes#K2>lk~?~a1F^9p*$3pKb$-W z8Ci4vGQJLKl82R9EGw_1kN-UhTCrM98(AezeNb9OYeo0Vob*0|>EvV?3}hv@rbb>n zkJ~A5%hXB=J@13jLnhVQob3*;;uKu;dmpJijBK^5KPh3hZQeyhO^F4Po z_Ixj4YmbaGFOJ69e$+Q&BG3j0j;aYRy>bwkudi^eIx6fo0`U>eTfhxn8aAZvB<5Ii zk8RQ{Ii$xGAr|F2a1-u!#T$W}+Q(+qc#aneC-6Uufb3(_gJd}5U!F36Cg%ulZi3EyHXWELylC&6$PqX{%(lp1r@Ii5)CNeR7j^5kQqxM>h0G53m8xL1K|g+B)|$egTp zshzX6uEJ|3C1kAllL3g+D`2a)amjsELszb+REeEB(G4KQ&%Mr?DW{fYWD9iJHG2(Zc)`?$N`2dOvp36B)mOnbye-6N zRxXpl@Ewf}|CV+v2vSPc;;wmNLb=+6baTfUStgA|E`q1F@!xEGZ}Vfeit~ey7|5l= zGeKv)^Zk+NxqhR z*~-S9ZvI}zCljP^sn}RiX^Y0P!`}|SG2a7t_6I6mS9a_h3-9+@D2Rs*dw*%xgL%6hltx93=d}5)tUcLdoO{b=Qr@e%NA+ z36-5zqkpl9y_L+kU>YrXR*BMdY9;i%2}f2&qO5Ddm^-?*Joj3acH)|bB7}|~6~~9{ zrK0&oin=^9D9;NLx|g^Up;nd*fJKrlVPlUtfo?36pN|t0^p;1J$d@8%$iDJ8WLD|x zQ#CXJ$TPZ#UGnMINp9baln7lgZ5mHP?3I%rjipw4Piqr%@80Z-QhE?FpDpfv0`I+F zPEL$RYalp}ZV=OGzW!FzdR&Q9?^83SR{DT63o2#p_;&IWdd@97jdBV__SjWQ=A6a@ zNQRh;(hcktk43;cQ~!elMU{+PNzb}}qR*yfA-0Nb04J1a?KZ}eVQoh!&ZN{}Ilsf_ z!gbCXWnUE)uUtLZSir-r8^!EPcMn#pR_v9mTSa^A>^+>6qgU)=_9LfNmliUvbs5iE z=l+QlTP+;r`hpCDqS@6|;!mrh;ZVswB3@W+vHY8!AE7<5wLbl9pJm$qQ+L%r{n}8?AFQ?q;i|ft}3!xU0RW^ zd1jSw8R961t97UN?iGzNmud}0l~0O_f6`>J%kcp;mHL`)SIaVBN;1dZIbC5+2#{q5 zm{>n(xESocDxN#sTAR!hZ}0^8CsH4{cCf887duBw&+SgC7T1oSU1(9)Qs}R}cd*aX zP@t*z?lQWVY?fU~?7cIWF?=_iFUN#f5q_l=P`R({G*l;{N;WNm=gWRrPA>B7%G9M3 z-CNoEB2@LO?mshZa^t#kywA_H_(aUFV`hbxa$IO z*DO+$fVOC~RHvfFmX{)JrQTUS^e)rdCOpyaU20@Sx)K^1a_QF%F%-ov)+C;4RPmgT zwGexyTyD?~BcwZz_0?&7moZ`0XKno9q75Y2e)lSYWm`K5c2(PGR10F??QzVC+2Sr{ zsIcm;iqG7--TI~=8zk^uh^RF{moinFo{RCB>Ys|woUTtat8FLsSpeaQCa+)g>ix+D z%yr3vyC-g9=SaJi;^=MEegH_NIhd4%y2RcrysXEwg|m!o#L#JY<0!Y#;Iz2q0r_rE zz6Ize&y(uU;{3#+J%uDz_YJ zm2E7^t!#U+%vETud~MZvvjn%6*lTo7fGdwO@^;>$FK1al$5L$Mdn(HIQqZfl*G(@& z!`O62l6jpqS+kG58g2CDU*xL%H+zI%Sy#2N@>+Mg*~2vULZ86U@jisTNodZB-Jhgm z?;|_*J~*7hpg@%_J-+qeu``ONQG5-(ATDn6QfK^4Cm!MEHPJV3if%AfSc$d&lTFUl z&T4udR&IQ~{yc)*Dm#6Bs&4-hN_eW?pQrHN2c9N7fb(SWKnwY4r7pmNTSLx!&{d7S95=ysAaJ$V$TrS|v)p;BI<&rn+f-E}z3V zZgox_H*MI_aRa6M_43(l0vO`eF0xnK{t!got9L7ru z*4{TUDmGihK~(k(!Gz9kIa!q@xLv2}K_@3crW+wI!qrNwxu5ca6UoKYZ&SXrqJ`Xx z{)xCfRYRw(co)}PuF|WCs`vD*n&ZzR7Rq%Wk22~<)J*2m7B}(97!j4^y4ojAPF-Iz zyyHs>_?05aRL7z_9rK877(%QOX2Dk^cct3%v8$}!yf!XYT2^=l0!!daQm-g@O~ak0x&snnE{{@)yCZ81FyrKGx1p9Ne} z->FZ-tuCz9pQ-B;ZF`!CXGzdip(pZ_5VR&X+A*IrdpuAVLw+{Uh$m$`m3v?6vMgOI zver>6N6Y1q+YG7h_WlQ9CB<5Eyz#M@7KGONIut@ZcTkR07UyA-mYo7Tk8CT4wiSUh zJ~^sQ=vr}KW*qVc&HeFfIW9p2ph}C4n7~$jE8LV9_xO8o{>6FpkvN~@@k`$J^qltk zw}jr3iFSlpxxXIlAZR8k{u#nH@Wz>+mLb50l5r0&zyx0l$1CmeUONw9OyS%HmuBd< zahov*rKxn@P}HX25hosv-`GDGgy8QZ66~{>On$!ZZ^_<-etlE7h`; zOK6SQRF-}& zetVxU+LAJ-)pX>;WQ0+DJM!dN7}cxXQ3xu^9M76gDU5a&@tKX~M+s?}@1to8_A?bN zwxYW_z5%D0V%cIOL_|54Cg+45Op~B(Ei*`wyKqYW$TpfvUphJ6e8ei}$XlDGv$&VV zVPU4`?C7-Ei`C`G6eWZ*f(PEoP+@g98g>5(pbtgzDpA?R!LFoC6)UmCW6IR}!ovqP z1R)obTTg4lw$4_wBJ+C_MdOwYMH$vWNV%kuZu7Cjp2iCbC}kBUgK>oUiY%m|Y;0-f zS(s}f^-2hFbRgV37r7H8qSeO>03KFGoO%|gG!Uepgz}s`a!MXC8z#YF-jRt!Zxxrv z|E%mlBHv5Gue|=Md>xs57%x2d10@(e6YUp)Q%khHRZ6UxZ%A#WvzN@b#%(BABb-21 zJknrvL`e#gmw2%Dq)~g#br0DSpWpPCe5nqJBFY)ad#CXB$v5TYA<%J&t z<-SvZOk>M^N6q^2bLTpmhQv31_Hk7_VmaCnwC#Q5dK%G8XSZ2DU6G-vJ2rq{$Dty$ zNV9;8s6doFz85H_aLxb{0NdRwo$rqM^!Nt^c`zRMDyN!>W28rB^II~g>V_O1cG~(9 zaguPIFp;S#G&FwP{N9li7Tuj6AyPe2kF@*N;VyjLUU3+L~54-?akyWa%vLeT%; zQ;yzKUVaYvcH&nG^eaXCEnUU8^bOzIRb;wg7>ALFUl<(CmmkBA7kv2Z$N2JNd`(jx z)F43+9)CnIz;r8Q=tw>X15ggU!}U5YL&inr=80OzM-Wr-{77|od%$;CnJ%x*(*;@senKsIqmW39JW4&; zz+d2b!ALYL9mgWs`NhM|E z<9{&4Rd2WrqCp}-qjcbiVWVzf)At|-*v{EIfUr>Gxwg5FnH=)S7HCB7-6SV&fS$)8 z5D3K!XD#ilXXSHD3chm4>|rx3RV~-F1a`4!3nYz&2Wv1vDp!#DGZ>93{rojrW;vEs=_E*r$54RwGx1`un6>&*e@tVH}nqbakBpkm9^UctKW@5LLBzGf- zg3@S|#+=9B!;ciOAD8!;Z{83>K!1*z3VsxWuu%O-KPfBMK~3f2k_#|D(ijBmS6W`) z(Us9iY{Ivz(m<>L3Wmh=n;^gp6AoxOFQ_~)l*G(Z#T)RO;1zLS38osxg3)3t>MIy( zJT|2E!5$;Cg4c|;D%cWes9dl=R=i7=5m2~iyBti3Cf%Va!UtwEWYDP&`FAvKxPF(? zdPknW3)+~&Fok{z`y!*CRiGD7Y)~+F%<>GSD)WoUcY>lo@3wv5FR@Nq6eVe+!;NTv zM`xq}RgfsE1SfNLdcS9&G!FP1sPCJ?H^8_&uGmt;E^yM~@6`{I4&?_0W45#o4zACdb4 zpkS`*BN|bhF{y(gL@tbg!tH$!1MK~v;Gy31t1-&sw?iuFz5w>8Q;yN0`CXtcz7E{#M`T~SxRFmX!1FF$UdL;8RDk;*$2 z_kqGbP}FJWfXr>-Zjf(M>Z}~`f=O6$9 zp{qU6zowrwbEG>0Du-S*P!<@jDaj+up zfFJ+d+>Xirabv;V@WFBz=oomBf#C8rh(R_L3ntuP%-C9xuo&HCFhJ$5A>eRkbB5JexyEC`JWN4PN1*X0xdl{&$)ws93+XJzC+hk{3(qw7 zEFwN=e=a|XOdqnGbmnZWZ5rsN^u5Y54$Z~V7n?(ZMseWyd5lvumB*IvY4jTmy?hKG zFCSQ=8wVPROsV@D#7OLIUN-mP??Zu5Kj8lDgOEKHL82}pn9F#1A1@yPHijXmp0K=*#QyQmgW=qP4Kp)P7y}J zfpG-Jv0vVg+n^@+j#oCWLq;zjZ)pOWk__YJBiSVB9Zz}&8Y#f{6=A2FoR9Z_w}#&5 zlqDIye7H0VOt(I2CO#!R!Hf#H@G;O#>>d3|G7?-|Dxe=JZ-;`DoGM4U_x(u8n>;X0 z^2l;k00lSVFg(aM9*Bk}c>Hj~hm{Zto-ncc4$8&zBE>c^~kT(0g*2et`V3&mV(+Y zfE!Rsw2v6`VI=(f;!(t6CXSltQ)0u&lEpcB_}K|};8pY$_=xjBBau{T_<%rBQVyw6 zVuI5(9e=HGlX8Y7S<{z~_;q)e57bjd>3UHCoFv0scZoJrJq#E#lK&h5th#h}NbOaD~5F{gfjj6-?LbwW( zi1%v-7%$7PyrhIKDe>tLGsQyhF;&ba^gM(nzt@eE2GUzeJt0lgo^XB_^ouI7ui~qD4OEg>O4A*m*4v zr2&Oc6>+O163B$5=H7h{YJ%^K71w(?HsWJb5;IFTml&B7Ao&>hEBIZ=JDA)esf*p;{(eiLrj78agE2!2x>J z?}27wAGiqQ>+ zqSEx^q)sI;dKEO~SqZZf|6vx+m6RedQ3sHGcLprbB5-??pd_H4A#psCX~AJki+mlk zB9hjM#fJKpHI{2bH1}Gealf^pg@&|=3RU3gUhLhmhayxL_a@o*+WlO?#qYZtG8D0- z>hdnZyekO}i#3}Y(pbrMfD9`!cIxBrRUGbBd zqJT639K^NE^fi<=7fHtcDob)6;xe7&VNGw5o_gk1Rm=jC-KEBh>i4kbI-7W@on($h8QL zhUUO=6+5j{Y3}nU35Jq%8~^yZaUe`Eb+eTgTk-Aj55J;9jCC@qEBQ*ys<*SV+ntQb znfZp)R=nj^0Ko@7<2D2-_>#(mHATDRG0a2{Rs{xeNJUW0{L6S6IaN|f(HDDP{IMk2 zX&$(P6+;>O4+09_T(Y{{30@)IF{ewvQ_*cgac5h(OF^rZ55*mhl*l;U9=O2}rDC~B z;LE_H*38jNvSsyGZTv-aB7He>_Wjf{Af^+ zgx@WPf7cxTngb&ELgoD)ncd$k^KX_dM*r_)Pq&1Fffp2V8VMhN(U?=j^9b`D;GO7; z@Cz8-+l<;Uqn#My22}+Rwka^24f8u1zEFJ$jqtn)t5_%<QmnenDA{?va&H?ACxy%mcXn>(%_)b6WE_}WLbEnEbx_JL&M|4o@Bf-sAMRadKz2qTfR0- z=Gg)-l@?DT^R;*k4ZDvWZDN@lvbG80JXC-PO+4(0l+BhO*KqKTOb`?o%uWJF2l)Tv zMIg(#t8ro9&0Xogn9cmWvRKA!%gkhlAw7stbnaD`qV^KL;DwOkO~uJOy`y5wXJ5fw zX0gzXa6>m*k(r+e!uH?Cr-6U1M(Em2pi(CXi7Gk4R zzPcZ!0lzN`s}f3B8VAuPA{<5;)}r(*QDHPJxhHZch(Qs*I*yw(kugzL8Ut%4{rB!P2=ENc!OyNtj)N6eiguwsd6XG}Z06wKoR zd7XvCiWQ6-Ib<$D5|AR~<#ECGxIqB8`~7QV6%hpK`x`!!@q%}r2E6N({@ITcNtb3Y z7VIlnDI*Y3dn||ZR*I)ojz9h*GAUc5M?^h2D1B@;3 zcaG_werIPu6a0YPXKFZa`^FG6j3S?f9dfSxT)EOWT-S{F~T^4pLj*Bh| zqgua?+(1qs6dTAJI;%B$6Za~++bN`I9zS2PTPC}I{0Te*&Vk_wM7bNbj009>8ao|2FXz9iYJ;p7)vx-(XFt*$XNVX#V9oE>q+c~)?Nrh3y< zxHqAcYvRqGNwL#V`HH8#zQWzK=`4h^GM=Q^DV-;s44tITTf?2C1yCYn!qd!8awG8Z zgR_fBW461{FW*Fh6(&9;M1D&fx@G>;O#t|zV8MYMV z6nX`32;}XBM)=(Zk6j$5W6MCmCx)?7QPDBVIvDU z(D!}dFR;sAvNf}W=$H#~0v|u6w?^l(a3bimm$oiD)BSxA18n&k`1`W(#vk|OZk2po zapUXs@se1$jTg@6I>MO6#&_o(~uH^=8x!@zk-Ss8|}u#-2{e$S$>AU&C%m051EU_PTnQT)K{>` zIVl!vNr)<_7c}{n>p%c{;n1=1LAK+~DL!dQ7z>^kx`Ih=2Q6m@HRR%teBpVKWYN&c_BsfJgk#>AJRb2TFJvrS6?IW>+6wbEt1$ZtVtw-D_~c2Lb^BS;WgptsQao$E z2}&0E1VVcJyh=sbac~E|PNR|gAWXj1Ar@?Te4vIm!U`@$6N3klsY27FO~0UXT9 z{qYa-))xi$P`Ja#tKm2A5xXLk-JPCktuq&5UIiY7q#q8VidmNoOQ&Ki)Oc)2?MX7W zVzJPtKRYiGN}i`BwpXbV=$8diQ-{>0d~f-NiVlNUy$^+vE|q;lCITX**TNNhI(WEng>vP*c<}w2zGZP0mwqE zm4ggv;xyEw$M+oCY8DHY(b<@`YwQ{BXRiIU2S8W7cUggtjJ*&g5n888&%|Gzz$l++hM~m3)2FFyHvbvQt=VB zpVa|?=9qysJz-O^m@1Xw3SKh`1r>G9z}6QMBzNLS2*){fD5IQ_AA=ZVS!Zk7k)sD2 zB)f$}+LGW)u205e?XD2EaD$c1xk*Ke6-SN(cc{ROg8hN|2!v942aE3ra(8TYcG8pJ zOV(N?^{mSvfV>Jo(n-wj_qYqhZIPJ5dFyDl90g#I1*ZGXFmx!xE=&?{gk3j$|DMd> zllg^Xq-Z3f-r(>XyZJFR3wT-5L_F2)TcokW-JWtH4O*$paJO@eFnNP^aG%R@N$3J| z%z%%;VUk7Du{CcV6hN3ax|`|FnKP#WJ^slMqPTTRd__WKgY$W53UlHPTc!{k8-NCg z*R#YVT_li&WVJ9?QugSUq!KeS4!^)UPsBNtWTD1#8On5%M9qCiE9=Utkq^TYx9Fgc zd;G&!;TFD)i(if)Fu_Wu!l-SiVc&E>#KxD<*LHay_zOG(0(=4_uU{Bx)6dH~tS_nZt>ep@auCLdouBUV zz7GYy$hM@UToSxs-y{to7$ijXY8z{7-;mmBdHhMX%%tn<tI;K{hbRKiuGz@zMRw|zXk(PUg!ONP?J22-)Ux^5wywwJ}=Y+ zLBj-y28m0ziZq!m?>qyQDFZYKH@bkzTM`S?>l9*FV{9K=R{5*k)xjMXi|e?kkZOG4 zjv+FYT%?0}F%~N-+2SNmTpEwEH=iM1GjuFOB1p@KMM?!M5O2l76NAK5%6Umq@V$UZ z5=f|;Pt^$@Hjjhx8J{;#L`(Yd2dsfb=CKTgrCW(XOww(9{9HxZa4gz7PKh8gRxbg| z%n~JlFq;jR@hiO2hRCE?*_(5G{;w$UB>A&aJ8~AJ-y~hh1PzRxPJ*kTd1SPR%c14+gH`F(z@`;8xrAGMp57ImnL_y;mcLoYmsqbjaJo)?93xwY{ z?5`cfL{)fW1$u*xL$?gmNUWL9jQMjVSeVsUh6UqYQwd1rTdFrf7GkZ;tcq7QoGVXj z6%+LFXOK6hAhBn=UKt@{cR3yIGVm7{#3h1;#fJKpWy=w}QSqrpaS(Tvf^-msl@w3f zF7-eOWY)dwCNNfb7YlQ>tEKYCpHUK#a>}W)>s4)Y5qu@gyY_{Es^Cs+ygBu!RJ{Lu zv+&$oQGBh)&9os(zFY!!$cssO$ORlA-b%$Y2G5+%IQ?*d&3Y^r(R@lq27$3)tt&w) zOPCk6H2z)ra}}HhF@#BDFgrdksi`llhQ-n0BpI0XuH*ZNodp^VogYl#4?(Uv#a{)pkjD{~ zC|&0dc9tK3Y59CuWk?6?gx5v+m=J3ofSR-ft)cz?+ zbR^|Rn6qz|DA@rnZ~WB#Acz7twkya2>o#CfBtVs}+W!+kVCTWnEy0|1%BR|Ln`*02 z;d|xG<}N~U>9pjKgl#yuB@#qI1{Ih}eN8_|K7c>`J>9Yl89`&yU}h|Hf!u&^0E*vc zOh0IX-$wa9tU^dBll*emiY5dyzFW>OF&Ty^rNS)VF(55612>}jZWT;NPt|-aVP?J@ zL>#^rPSRz$sban%wbdIjYtZrAfm3jc9gdBBue{#1G?`^QzP#>%_FmE|u^wDqrS{p)MGL8c#oEW}!w?FxxZ@r@$0q?IxFR99tQC$Q3D zE6PP_5_#i;08krnSsP|u15Gk)+fkEz<3VtOC~z8(43G;O%EpQZGPN``EH>=kIGuUc zgF)3eLJ(vj_6o13D2^ot6I7Bj5pqJJ7`MjsCrGr~u~f-IV#U@P%U--nXqb#~#zKvo zU~uZY0aG?_l3t2EBNU>VZ|J?ggnJ#u>?*v7Gft?IQ8{z|B6bN-sIozFnwU!&oRn^Q z>$4e-6|uYXP43t>y{8lFAKDcpB-~eo$G#dcMH=olGi6#iq}Z)u2zv{%G(iC2Dtm|p zi6D&luuHhIBD{0yhd1BAu@Jl!%T^=kMUFw{5y*tGV7zh8sSHl>SXDcCXG%cfZI-nR zL0OWD+G=?WdZPbVuD!F+%wGlVkdQ!qkkv5g3-;Nm%okhfXfs(`@7C!6mk5mEWMv)Mbe-)lgqp{{( zT7m(_Y10-7^{R!`PmRD4ygvm8`m2&8-!8c?Qx|N_K4r3 z3>ml?0KmQXe-w;z&iQ!9P z5(>T~rkwYLh0Fa^&9~OWomm4^1iiykCb~BM-{i(!1-89f%F$JdMYv$mLJk^V<(zRb z?DkY7brKsl?6@S&xIB~=qZV-CabAjw63^1N4tAuY=*KSissbx5wxSchko;gf47~Xc zI9Ds(E)E4!-E_S@$Up~!-}*Tzv6gnfNosa43BNnJZ4y+Z>6sYMn%pd&#ivgFQ?Yf* zsZ6*KN;U}2Ly7TeY>2hUqQsgtKJ`Yj@S3&3=!jY<&iInR&~0$$5H3=0)Q$8{#%ka9 zD#>gZFqDlgm6@aecqujgzs-jc3PKmYjP9ixk6(JL;a|Eh{#y-}JZOE9j z>r9QW5L!s}yGXX-9R*1swldSy7NpL-Ic7k<@>*QUa~bvFbH;hgxVmsPmGp+5HK5xI z^F>w)0m!2@{yAzxoiTieH_mTifZ-`T9zhDo%G^rqvcgp`J1Zq_(?*}^(lXihD6AD@ zr8-Ni8w-+Lc1oBcCq0#u@y6`(mC6_{3$a1RaAR}vAhlMWr3ELeIxtDE@A{BHAw?X$ zF4~WSf;{AaDRfqAc|H~7y%h>#|FsQj3jbEyZ_@QOb%>f;-jWBW;fZq@Cxc>Z5Kg*7 zRbngo%7ZT%#F;`4R%0Zw47H&~^U6!YrK5GyPjZ14-vX3;j9xA>YDRKe8uZW&2o;Z= z;0t%(#LN*a!?M5tAYkDsd=SmM-ZcTLB5U1>sKw&p5X^#GUcF=<0EJmc_1>qne*hy|eVF6(^) zph%7|WVuX*(#7x6+(2W;kD5y?+z$};$4?Sgft~X@7|O<$O8!;+yXDd(c4e-$w4jaq z)>?y>0>+n>B_tslu_jnskEZ#MhQ4#1JRCpd+7Hf&J^??8tnHAoP*@~ii;iCeP`(*B z0z*I%NdN#JuQIiWTuqD8MMid*QO5Sj!3<oY9HRF6dpKv0q5 zS+mDIy{sccCqI+wK#{;>F;{Sd7e;oJryxk0HVI?J!DE902yEDL_ZmIg3o{=O$_*Gd zAW^dztJ6RVFYia3_nnrRsTEs3K^9`GT=hPN(4@5rUdPu=Ep=L~ag@4CAj0N@Dx23> zP^QPL`V%4+RnTnwFv$2Slg&b=I<}>z-Ehn#6jTKm#&0$? zK_bnSwSH^bc!k&t3%-vP%%0~}-wGriE6G2RVy%e-LQOV~|I1f^-31bC5I0UHXBA&M zs?^zhrnQKHTNx8ifco<44mpeK^lpa5IlM{CCu^$p3cXTIFV(3(@lbx#7uu@mM zT?3Z8wXDWo{uJR;*tf86Wpk{!)_q>06qQ0oCG{-j?eBw{#$zMM({`9bV-D!Z5Bg>C zXt&SFDdbY$erPfd@uOoefe1d^qCn6^AM6~6rns;l699#MA>&K%VzXahN__UKf)hvI zCVY$Fa{$qziP-eU=o6YL?eaW2nTa9Ok>j6E)^R^M@Beh10DsE7;l#YL^!quJAdD}D zi);Dv2GU#|GhmvDf3uQ(V@B|;n^a`CgDFUqhUWPSg z%4Ndm6U6}YsU=Q>0Z}$?!8DY#c?&)znP#F_M|&8FeYlOKq97^D>?dq*Hk2d`#y-_8 z1xZP_p_f$5Dee^Ol#)87w5CW>MVyn@d4!28r@$r!lpM}*n63uTXJ)ii0XUCE7_Q8C zECQa0NDnADJMx_;-+JQOU&~tu-;&N&I63j15Go$+BHjh2zHLr9gQrUK#Eo$9J@K)= z2z(fkmD$|#C}{{(Qb|63Zi67SwwVv)VEOoS5??Re0;PaH)JNRIIa%#o?HV4fslv7xRGk@H9aSy(y; zvAAFWz6q{L;Z*W;8e_q}f}!NBF7X+i?;OsFOjug(Yr2-Aw(HO|ma=^O^qjQLcjbl04eTuuYCzLIT>&uJ?gf3i7B1vyxalA&~qna?GIJa6M@lIAN6TJF3C zj?6HW==G3e3OZj2(jAk0v`Gjx`4EgEDpMHCTuk{$n;GY`NAV6UB3{2>pPY&4cdfw+ zDK_76$bwkSA_#f>z49Fo65Np|b9Fc{LAQHkK8p81$wU34vAD;1Jn>P1q5hRYLK~uY4!Q18WYmr9EQ`xCX_kbf&@yk_Jn5d)6D?a^* zvJeF6osATRvazF+tk|`h?}WAI)}PhlcJkIoeGaG#WA12Y?IfX@#hP}JV@jO4!z>IZ zudebf%vDzTXC9>@Y*MO`I_^)L<**YGuH?MIrU_c?&B4NSu&BJ1q?Zv2FLW!5g+6}i zh?A`YH&H3dlHGQh3;JbKqqY_vi{Nu@l0JtJC*X-e_9YCVaC@(P}Kxc`j$v$ zUaeHiO{{dN&WyYBDk@F3;f;IWklHF<#4a*b{x))|tB6vteAo6Tn8?!w)_u6ZOIRtf zlU8zLTdb(7$x>sz4~ByQ6&rO$w}z6LpnX# zVZsA@b!NBidd*6f8s}@?<@)w|VWU>_Rg2FWt_3^kiH(ICj}2KH7Hif7C=IzVt$)V3 z5u8<6qZlxD&KA!a%^NckPA$IJAQLNI<<>_un!Gr6?P+JM}uvrJR? zU^%m^q>+Wl)4IhJiUarrfL{+j@DY%O>51f@Na2|#<pU1D!=IR>Py1BPoSv_F0~ewGgbJEEgkHfNeGX% zp!07Tc=&>RO=4zD;ZE?%8wEy`2yYZ<>OxJU$#V?DR5|$Y6{UH9{P89?2|M=1<2QAV zm)seXQ+E=Zgu4{{_(ShmvYjlu3lc?6GczcfoM_gmX)^fcqeLv2aq2g5>}Gbu#*^znqmxkEfQ7*@lqcYA-`^(3lKO;QL4FW@rme)=tL&umi3A> zHe+SgTEvr0v{a%BU_!&G4FHzS=TCw)qfijb!SF@L7Gi3L*}4p}2RJ7Yx1_P2^Ppu%O-{H0vhcQ#q$rhr=NdofP0TOwoCEFD(FYhC6(!?~5Zw9{)H4&QyUwAb{ zN&Tu<{rFyn6mi7xU;xSo7`=bsDFF>IZ%Oj(d|-m<`}huPk?vAMe0fr?GG(3<+lyas zdZtOm#ZK1ibRt*;v3zq29yS;(BKp}*^_#i$n@FBV${G|6&*xr`tR^gatS%;Acy8%9 zDD$_MjLHbn+v!=SPxVUHEQvVbE+f^B*Hz#2si|1r`4CIc%PLFN*hS~237rBAB@v&P zxxNn#gB_Y9yvQ-v1zJe+@_~?&k;oOFW)TA{&mhqz;3(E)pMi49b2%lF%}V%J^IeK5^rP zy3AuO{3(-GiAGp7`o>2$2*xXP|L?W^0iV5Y{3hPV&(M_ z6)Cowjz}s?FOSf4Y&vVL!?OIHm%fV_pQ%2Ju2y3w@3uJQI0!k8Ol*k_kF}s#ne9W% zSWPS5dX_a#MIy24s)G;QsL%jgm@qoS*LMou2QkPVe~Xpp_3vzA3wO+812CRDJ2_)T z;LNu+IkPZAInB`$>{L52!eN|3ao7V+3aPBrmbF2uA0j~#5I?KF0LCX!vPdx&e+NS< zNrrE-D_NHF#QC&H(97jXXEi@MX&UoJi#*E!4pFZ#PRSBoNu;@Jqy*XwvVV%Y~-RMK4R@a7N!MdB{Uv<%NpZ83>5=C-HHy)( zdbBFkAY>hDyMS~9Z#{dEJA8*1oa9lDKuTCigP~;20dO;rnB-h#qbbx06T&7!f0vog zF6fl_F<0u?PCVwY9VgQA5(I4ub$pN8aWlX4X!OBOpU0NCAWI+)TVP$h%!@v&C+73` zgxodFJ*?*t3Vr5dDE4)cEkl*17VsXNwR%vfx+AeTa%qklCe!fA7tRc$tcRI9LIOGz zsEJZNRuIE7MS5 zQXl^?pKy3p`r+YF6^X`@GoK0i2J{P`l7R`PHk5jlHCe2Q`SF5Y$>SV7Fa3%~C*x(p zm?qolP8W~fS)++jakJ=ER7swJ0jiMa1&tP3jt)`~6wYe+uDIv(SG*kpw7%jcbZ~*9 zMs;w(X7P0}0Og(MTG3Rh6Rs>-dI>1VWJja)1?6b`j?*7uB5zU&VJXd{U=-v`!1uw6 z5Q~Ct%<~yFel^nz4>jY9MhaA68?Ri*$rDBJ4QZ@uvRaDgHD;LSpuno+w?rE)w!HJ= zL(k{lL(5zDsYhLFfe-Ekh_Fc(giK@0a~V|9cYSS@8qUh7v2U!Alk5bq9r@Vv#(@

    #XV zvh5c|+aGJAJcTJZTV&Ow$FJ#-dXL$XuxJ$fe~A;EdDU2p0E`*0l+kP8p4Q`j&*Nl9 zbmN|9QhA(6<*#@si{FG{jebvV?>ujiJf^7KzLbQk|v}bDC->x8c@??&DM0pJlI#(b)6i;PLmyLzdH25oz1xoe-KraTdg& z2nyfPbeBex_cQla%Tq&QO5dF6h%>yFfc53CK@75)1aP){K|oFhc)Xe%uEx)0;8$QQ zn4j?mU^&958J>NPm7rZ5Lz|#ilm$wfp=QG zj0EfmHiGNpe^yPFzhZSUYyO!Q8}WwA6?b^-RB5pl)9hZK29mJX+x#x)@`&4A&gCJ> zZ+ZzE8`(GV%5m(9)H~Hh~&K$uGFL-zdA`9K7om|4)9tY4KioGWDQ<1 zn=d|1BqY|%PQeo_ny(z}auIyV+K0E9(Y+DdUB5!r@~)Cf<}+v-VD9zUf64dCmGw#F`cqt`*jhl!Y3PwL5t-QK(!?VYOSnSe)5Wu&dx$?_EElo2uPm4{<} zWmfRR0z%)$`0m6*MU!nDW&Fj10w1NaaK@Q1cQ6Q`!15N$4@QTr4?eOrB2xrG!ZtRB zD*M?~h_w<^>%w{k0EThAjl-HqKtVfhf-J;F3F1Qu-oq$NI<=Zgk5!blWxloDI{%?% zV@tcZ`@q|vr3x2*A3NH3Zrrk8DXekWq*qFdj5Qd!zH^0#2aI?*%)|364}P!Erm8$; zj|$79rm^L%Yq{ji8%tmL^p+TZaThsCI%APjDaXOki+nqgzkh^e2)S7_RUjmynJKB^LrY% z*CG8U6V>OI^81#ObW3e1r6QFo&S}D_ODXVFkTC^9N27Sia#r{NXS(zt{*&TS`vYR;rm(lmYU*H@;Nf%0m=$fWE7?uPifm^9LrsyVW!@h!9{xNbl1Avzt+3P(?4zJeu; zcaN3|1I$hoI5x72lil%zs@yaMfLU73N_h-Y+dO`9Bd18N(qb!0*CwgpGTb4{a0ge( z4z7|N8~aZjZ6?F9jK)WhZ%rJsHC$+{_(g0lN_-)X#lW)-d0Gm_^CJi%Oe*~znB#KK z5ytg{53vPZ%CXwIJw&w7bGDOOk%!faQSiF?L>-llC$%rG!E{3HM1E3YX;9>aZ%bI*74_^ykI`~3o{>7DYQf|@OhV3PF0o#~< zU&q%OFX9q`yCq@F2@|GF5HgB}4)JwdUTp8n#&0a9-}e;Db)1)ZsK`s{c?G@XF1O=y zD{QRDSpMmqq7!)>K@*WDI9^?)#ZFA4%VE+BKNH0;9)F}+8-vEw4wO%0&2E>r zS%`WY?~+k>=E9xXlrhT^CMYiIPH?5nK^4R*SEI-{T_kC|4ewmYC{c0dX~SC&O@O** zw#kN04Vo%RN{9kucLHO^=vWrdnrS%6-;6x{3V!@4Y!*7R$q=ZpzYhkWXg&KD z%o+ysWqVEVH6@3AM!LPi7ofHjDxNIjC!tqqqBKDdd8`=*#iC)QiNL7O6o+G_xkSob zfhx(q3e|$S%b$=GUc0UJ>_N8~KT-WT2p?Nb+vG{=o$Z!Rw-;&3(bnqvO!LoNhEpV* zHJ#kuyD-D!*PB};NWM2o(chxvCXgs`7Ea2#H>ciwej8Z6Ju!*mlNUkfwFOuz(yb7ssgWwtD6&LB(7rUiMhZ~{XE{cA%Rb()OK zI9GW?_dRdCbEBbbEEIvFKKctjH!DjSWSoJ`esQmSQLaF$$0U82AV`?Vltyh7HaB#$ z7d$d`3_EjJMtlR7nX52~w{aTyOS}*x+M8dG3x_6yNepbN;Vv-Ncx*^xr41fXl_r!D zPGl&|izs0zo-0^nUOcZ%CRv8(3Rd#M(J`5`(D@z56dR<*ZkAzx>q&bCla_9tXN1IP z1w=!5?VaR}^+Fy4sNFitM>q?s#i3u*}k_brr?ZDT0K8K8wcE#!)eu?4u3M4Q2Q4$M&o=Fgd_kG|m@WIQ(DGW$u zx&?6WFtJvP--JJK86N-~5MU&-*g-Q1>NztBah!58PPv877rNfXViyZ^=;`-mlPrL? zy-CkTK<-z5Q#C_~mfTI#n}%Dt)a{+jXXrItn5p`>o9>cMh-2zcey?-jQ<_EjlBvUI z{M;aBqT$YkIfntmMa%=xF!0(VE(->kCrJ<=z5E4N33!CgGmbXooZwgyFWBuo%}h+A zvF83VFSt*dhnk7iRgR$$JTtd|mQ+K7h6+5cV-X? ze#eGzwyFG+h5gC0{$>t+BZHPya!V?;6a(_)7Y+Z4Q1J_lR-1kS10hx}eCT8(*H;>|GkAo>#+* znOD?Iyfl;i|5Xv)UkQ+yOU>3}+1%R=qDOJ3pSglXW*V6&+4@vSEI7+QfPN%^{Ra3= zFckw=fB#;2E1MeE1a%fU0lP237ebB8<(n}1hSXM}!kj}HV^%AU7MGK!Hkm9n*1LBK z*i_HZ2$H}Y3sK3r$e5VIJ-8zw=}4 zj4Bh@9MU3TzQ|>xDTwJgqxR?sz09Z$`wA9$PlGvI2N9J#)K?l`v^?ldagx!2`JKSt zl+BpxR2)b>6}(nB6ogx3!_owl%$0>>>EX>D{N`|Mb+53+$eh8e_aB1+DlYr@$@Kz{ zH>vsSH1XKOph9T5u32SCPyH!j*c*z9q2WV*THg%Q>n{xo-}i%YSh{fU@Gcoc2<-@L zD=>}5mivxY)-s3moF#ghG8(yK3!<8dv#+}ou*<-s5-*Fvo(sU9i@^n7r40)bDNUF! zLq^oBB}vFJBPq-~mND?_8&X+aSPpjvmcwCbbNur%I94RqOx6gDrM8IMM_t_J#|vEJ=5F9?j@`{2e}$@v@=pLMn$nO(Jnm zn93^^6=uapQXl`kq7vga@Ob6XUiSsw%xfh&mFI#gJfWYy`NG2MyqfDJIUgRd7q_?I*_^e=vV z9n$}cfBX?s{`)beTMYmD_+#*|V*=xHjE}zt0f}E`?tLT3G-f_eI1gG(qie@E`mdGH z^Re^ePJ%=#5Lzlk{0fW(OU=#HS1`N!F-sW$UC1$7(G-T+AV6lZp}u9crLTig8?Xg; zLgWiJuBFL0PWtgUcn2p>447#HL__#82n{8c;zq&jv6iN>qn)+yXluPTZ0lTymUXW6 zohv2YE&;=yHrkVG|3qpNbZ;)Fai7LfWASnXt#txb^D2POfnmWkY8l#TlBKmc^{&>A zZzmU_=lU7NR?WFki>Kga#?wf1N4w~{AemK}%lSfrRB)O%wP0n|sGYx@SEAsp`O9D+ zEBc_P)7el6Af#y>H#Y+E?RvdTX;tl8h4hl?=`JNKT_;9x|iI%1>Cis&OYb6|R z5L4;nr-qRgrzJ1S&Texj`V)n?r`uA>6|pap5MD%iABDb?1`A|nIVS_eG45SqEZA4D z$l}%Al}Kv^PaV&l*#oP4X`5yf3r5Iyr#K4nsen_e)2NvKVa5!&zzm>_l_OIw;I>qw z77aUn`ItjtmX=DHxpGBQm~RLUZ8Up1!BJq$uH2;Ww~hjV<>bt*oPFSLzS&<$1VF5XV3P+*M#b#hqfqk5}d@%tW~b8%C<%+Rd}?l!j@BnezAYz7H8eLroA{)&hkd$N~Co;4kpbkl+nZ z^wTfULKoa2ixVk4b)slaa4;U@!GU;5z^nOo7QeD|Cs6D3TUp?0llcYnE7cAz`GY0D;^paGea?c*SLdoT);02^4y)(V=5rRIo{lY5s6^aBkLu6&3I z>c!E=;6Kvu$k%zrO!VVxz)wPKmH2(}%XmS%p^=#Ox(hqqg;6bt2^-Z@mMrPUbD0Jl z7=`1O5|{!0B1m`dvo9#B?JUD6F>Z>MbYa+@h;x?GKl%zm>|hOYH6}Bk;hND_siC0C z1(s3_W6j<0J%^mNnV-Nil7q-G_-u)iC&FD6j#7e+V2JB2-7D}y5_FXki}d)p@?3lh zaI%R9w4sIF&4Q_4`r#9ihQ*483S&2d0tznsd;F{jp6T*8VLzej(g5?QyEt~e;3OZ9 zzmssJQJXWP zcnd{LPy<8=iq9e-%CylRV(RjhZP3a%z8>UwTzaY+$lvy#6({x_iu0V@Hqy@(`8ESWE~#m0R6rjDav{Gf9%Y;(5EOPC;) zwlq?X$^1=YO?*Q_%UXZFW^0Wb8@%DEz=S%II*K+J-YJwz=RBNx7JO@O(Mq<}Y1s7> zn?ii8)@iv{S%Gy`C9K3Z)DOT=u-qgTCK>B6xw|o7)CKeyHxKaNxu8{Hs^hGVH&z2? zIL-ag(>IkgVmztX#&*)!Y+JE$6`j=~ABEfEZLG9hVNBSyA|yxwJq8RVv1Yy@#Y&U7 zr|!4lqz7BkAyUD!4Y0M|LYjvSG=#`RO?i~uV}f>qCE0I7M%1KwihU@Ebx-kJVOLpj z*c3cFLl^>qkjgN=^cuLUh?Or>2SyDcX-84 z8xP}!zw{^!v$Me1{#V+m5uT|iO)1Fp2Q(+M@vXz`kxz>TJOl?`GeWz7Aq2fsVeCpO zx^+CXY+P&pZr1O@k;TO}S^}IM22Lzj@+Y%lW(LljSiu0{mP?w6y^Vb1Mgg+(P0H+T z^v0r6AJPyMPzYCk=ni4xNUF?ZC-}nkD|j7`jqt4jy6-Gl4LYe(lUjK?`=7=q&dvd9 zpMFx$+Imv9C*g&&!dlU3PeQw&ui<`n#(GdGUOre;FpBP~S!Xy};f+=jaRrr%Lz_b? z3O_OF?Gu+R4?Ukd7rvvh=VLFNeAIsM)NBw#+1OF5Bb_ESq!y>%r__!{k>0D5&LR0; zalNo~eC_!uh|u!6r7UveS7th%lK`_LP~x^h3}t%JmEaoJlFq_(uvM1j)e@9lO69Er z&RvjLSE@fd^s&|C>Xh?zJ262&*>v0|@wh0H#3j3EmY8dXg+SUQv6H6@|Np-JWyx_I zTLMMLioaw?3_oQvl^kWz9z7`&o>R4C^?v5uxya|E^ zp!@>Moorl(rIrE_sN8};GqdoH=d0O3^B2C@q-7(MKloT3aSB!G@=~;7bktvI_bvcz z6Xow4wi}&K{0065L>*xRz7br)Pk1IMLOLqpN$8!_vzi-5o7>~Bi?#F{c4IeUIEbT; zCV8Rt4)IKAQ*Q!-k;A^?qhlunS@ix9klynhJjr;& zad`Psur33{1rY%Vj0uJjYflDYZZ&}u#5AcK?4OgT43Bb#p?+C>;|*yV*1l81GV zzwLIt%`An@FxU% zK(OHh20S}2Y@et{_2_%$20?!A7 zX(V(c6}GO^iN+g_Pa(l>a5R&7w!PzH5@FBzwa4i`@}`EdVMeJlDOcjR)wr)aollJel$R_CiE>C>A zv*YpSekWKQO$7`EU0Rqb4h_WhVb7OXb+j~iZG5o%qv=s6y0I%AXOUFfcL ziR@P>E7o1!aZHx6RH%mWcMju8Qe_B)CbmlQ-c(He!g?tnA@X^$Axdh12r{2WTtAFV zPz3KQ0i3L8?ywAe4{zK8M_|1(`{th?c`|a6kr_YD#Ed4SqD}Y`^7Z{htCyqs$;Rv_ zRv~|44e}=z(0^j8{`2QA)L|NL;cH@#nvIP4>QE+lZz%sp5oFt!t!|LrPPez)aJmg| zc<={fc+V{aelt7|=QG}9a71Zb-uIIOD%(K5f#7vFd{pODFx1cSj6h+M@%D$jidTCI+6jr;FIzDZ_+2lNJXA2#u^BdKNF4q5m{ zEV$=kr4gMWh?f`hKc0Kh0Kw-sPclVkqciD3vH$5t<5E8|z-{~Z z7}xhPURms%AcSk?8DJsY086=~r6R6zbSzccV6=daV?|A%u?dz-L{4fTSS)gUF9|E! z7%MVQI3;7H%V~9%oDSELCOoF5VMMpI^3<@Bp0JllibiQCD(S)t%mpshf#TRvFh1w; z4o5IE1w^gH*D@!BJz)+Zqh+*O2si4ux07;mio(n&5jcm($8UN})c7TWmaVNNGY_V` zjnz)!GPOT}eiEq^J5kX$h7VX62h7^H$6uL#L+Sj6Z|~vhg26L2R-|mmZF0x+z}i2v z16pa`i`?!22You-~!X0!^s6JfL! zGuzwwESL%&@p%O8TsFq%My*YFveA1rj*6sUTP?b)SOitpUQ3;VkB!k}y4m`&?X`!Z zh4Cq?vq{H40HM-gg+K+8I9TDFCwDT;3mq(imzG#8VtQ^_XejWe&5=Ni}{#X4+?gaE?1bd-RuByusw__lK#jYdWVzUkT=L%vv_wlcg+m~Wq=K#)dH z{CLF&IaPWyVY{=lW7Jir4qF|j~g@k#)?p|d2*_YsJ1FWh1-CQ2ukoMEH>g@ zLGCCdxqW1ov2`SgCjsZFv%L?kH9iT-1QANwjDsR9xMUQp$c}7CAaw+jzB{OUlCb9HSTH1}vQrS|N{Nj4Rc%+9rY` z)SPP7bW}nwVl7tJR*IO;5pDQ7(#o1y&lRr4)kPMNaRsBV^A1&oXXS zE`b^?b>gt97O|bo>0cx&R%6^oewnsmusPclCY}pR9SuEeEmb4VD%WQoGVmm%gW?mx zRy(@6_u;CG@kl+_L?>NQA*Du|!jJFC`?PR&9MuxDxh+{bYDN*cOc1qZP|4CUD}IH? zo~f`GzPD@|de#N3QEp39&%=TC*2bpUuBUZe6#{6LK6Z)zX*Q;t0mh6wdevsK2|Fa z&e+o6RPoff;qm?_M^!3a;;Y;ZPt7`d6?9Fe9($g!DW zO_4N;*hO7s%R%*;*}KY-^X2TTr`Xuo3Y%etGwFw_4*U z9lgdT?ATs^>@qHP35*&m2~{aQX`QEO=vilJZvwXt^z@&GHFQ;=N7Zy-i*d?pW@}Xgs!-o5C0^qLI7pd&Qy|3td`1HK9$N%Sovi zC!^s&Q^(uXvkfibG@0CHDQM8zkW))37rT?TK{Q+^bTzI+YuntqHVR7$u(E0sOcg6o zt?I#0(^`c+HqVX78~xIY)*L2l==9vn;^Ffo7{-PJoqIkWXzKZwr^l7%if{nZNg#8S zMCiPJf%7NxWz$OMhEHZ_n4cj>`5Pv)Co`Qh(5j>o+)u7jXEQiW4L^U%qvEpeZqwM0 zv}7)stIG?QspZkXVj^Oi&p(e+>a}p7X*(4J?eW*9$Fxe&=SS|bIN%k8Hq{*9TkDoT zdH}Yux@@Q%ECY1r@1&h>gU?L2`kqQFZq_+$Tn60iaq1Sa{Fwt+)5bLf;HZ=mRcStG zXY(|P>;3#jz^inhN=KEx8~rYh521U&nhyf#QGRhC^~*#5A`fCg#aD0Me?~#uclVn zI3rlDu48_-Ln<#Y~beOBDfva?L zH?cBRsw(Mj(>Azs)-0FOvld=R&(4~ZhXQYpzhdO(FAyln^MhkEuAS~S9urY25$;{J z>u&JN1_F29?R)O_H?9~7LCTH0c~LWOAHh^($7o= z5lUbIhtO^cQn-;rFX#CX&WRH!d`w5h`T=9ToLc>&$7Ca3xi^+7)h9tfuT$Zv5psu# z=fwg=NJnKlxUu)*Uufxt7+z^lafBzKcQTXB!b3+cJ&i51L0c6tc5sF)z7Q-0#nqNS zh$-Qi!;^q<-Li|GbZ2w3x(x_n^5B$nLQ92wo^EGL!(^|hj4Iltdc7!Y;n2V;uZ|~r8+&F3yygO22qoAe5ScBE#wyd`dJ!>o*8@#U3kYatY5*!OT(LPo*8RXaxQ=f6NO?7;(p~oBra!gMko{F9J?~K^7 zlYhnrriz0C`-yI0{1)u{T7r#YUH3r_RbgG9-~3^8fvIARa7OOK@#hX^SJ3Ey-N-yr z(^n`QQToO>#&0CWcPPI94HT%E?c-l_jWDnb@%cA?l~G3ZDd!CEF=rUMp8X;c8j?gX zcmHd?Te~{njf!B|8?OT1M)pYmuOp334dNE^@hp$s)r_wQsW{`bTA1xRHhzqG&Y%*? z`U1vEKwttVHN`#}e*A0YDa>Fyqq^+TQgy*x(}i?YLNDMeplZGggN?N`OzxXgJqp`T0;E=A#7CD`=_inAy zKih?B1q)VgUOZoZkO|7Rb2VtW>nwC6_H1mOE-ls&zvrFfj;(DpD*JBL#u$f=v=PQW zzz*wLjopWiG+{KZ*y1^EoJ{i_JA@QOCLGhPsZIQU+B{K?6SIDEEQdFGuXquGDpww? zEi>!UavhWKvH1o|{Qygq=U3`@5I@7Nt0ST`?Yu0QETQ=B^TH(J>?tZ%>{zKdl)e#o z=XqlndE-0?2FWIZ5N-*XcuRt;FC>5LYJ6ZiO+BAhEd&^8)$pu_bkss0Tf@_M>7~*(#S_+GA2|ILVi0N`47@ zDv}@4+sF#<EljR6vEt2CDUTwzN33UhMjfwSMBz5@kTKY6G+jch-k*Ma9@&@zlV^ z|8(g|YFX$=YjyQZnXVGJv_L=}Ed4=jh&{6uIKOvvoI19&EbI;2XMf5_BCXBFT}4tu zmpGp7^BlxfFu*MHh3MnWs;j>_S}f06IJlb>;3QHTK%an#EVt$mT@z?go&1vDY?6MF zFpodR^SLRxAG)NEaVppIF;>N{q)6_Gy@`a9j8+X#Lh6)>jl>7XRPh7z1onLnOoIPA_y-j1O)D%jUkQ(*|#k7*K@k*fCoNCP`odLw zR$lnD7P8l-=VYX3MfJSX?oS?{+^BA~%2U#nD^hS!yB9_5bm5|a5F}ggAGx+aMmv44 zaQn7GYp=j34w-FjrC8$R7hhsCN{bI~@$j}9e(m^pv!ixZNLM4NXTyP(lHOaTT@xI??~f{nQR zqfI)fqbBVch}w%XMVQJUho|b9sdb)%RH|E*EfKo+pi9r~f-1i}3E@dd2W5Fu)+b-_ z$n6d{%5Y3ud`expsa4v0-p0$h6W5n<6v+F29!w!=;x@C!Q^x*s7cN(Ku~SOQ$w-jbd2@{b>vqRvvC`@ovr~WJpMW=aI!orUNk$^?pUYA zC&l`yF3u-^>J^GIk3W^H3|uHBwH3pYkXj{9YAWI+wu&&{@tkwy{z<&(u9rKBT$qgS zMHrrxGSWJ#Hrnds%d`K>vuB$}9JJ@qo?Y#|a<9{15|)sp5|Nl8X-Z~am@5Em5un)u!a+Y7ugk#uRlnjWi#5DGFr0oL=Z()?RjD*rMxEj7R^?sVh}z z?Mm3iB6rWWs!rT$sTZ?%n>Ptl&2`3O%McRQ7JMKSF@Ym>IL;Pyl?W~^^hVry zs#s4_2#Sz;r4EM^pXXF5wOXiwh8n>l^!OJ>-g3XVRpV@JyvKs>sIam1$Pz1}&UJEaz_)2>bo?pO0eb$yI5*kpXPCIs%nhr5l`EOk5X`6bpvbmse#=#L=o(AgG zbRk!`(W;eZf8?%>U--fe&q+5+bHu$-h9vRvsP=}zj}7!T8|fhweQ21PzBGKZHw85@ z-LE6I2g%Ib_9x{SKTfwi%l^o@{*gVQAY5~{exC5I_@^2xoLYbToaX6vl3@&wF$7!) zJCEFMSq}6QXItYJ5bgLU(g2t~!|ha1)_$dlZ_Nl$z%DEpAX~s^l_(It-Oz_j159*t ze2(l8B3i^rAUU!fiWAzfDGxw49x7)Lk`=fKuc5mgLkk|)j;9#ep!2UUrUCDGPwyG! zZecoS^9)ldFsSD+4GWdEFcoYbSW{uJgv*Wv)tqUGmq2{njH4u*kXq%l^o-N_Qv#bS zW8ZV*O_70iNW>*%E7=FTV{cQk3A!o-aUB<82^*s*)(xO1sg z6t+8i{GR!!e46=0oGdxj-on$(HWrFHA56eXg8?WvegD8vR&)@|#4{>>uV=mBFaell zGTZ#4GY&FfSlCI#ZA24yG!)1@Fw(%s|M3hReAgWP3d)f}V=6wiwW(#*5=|d|g|QKn zCMd6e6~uajV`jbKvB9B%lno9IX7MnxSND4yI+C0r%m8y{gP?r%d^YCW;e=cXPeSJ; zs>uuXzV;NP^4bc$M3u+F*siltpZIv$Ibjz4 z;P4yM9&;nk+D9Pk-=q`Cx82_TF$@t$h_D^W*MxV_vZ=-QDp36@D7mUr0(yhO&~JYMga?$|Uo-BHngvJuf`{8am*PMm#shI&`b zkV#YLfJ^g*I-YS5?2Tt#%{msu@z_8-ji;F@PPe*LKUev=0E&5SMlMasDFyjs_bmK_tyeCQNv|!V6^>Jr{3`pW38 z?EYf7sOjUoC2D*hNzoj$${2(=cTLUqpz#nvl8zbVGOZWwK0 za%^uV&3r3qp2G6@Ytyq;5Y83zJW?x3GanI&hC+ASVV!}o&@y&g#umB5E!??{dB&6X z{4?cPbut*pxFKab-4cAB`1^LtL1oX&CC{qzPezHtiUr5~L$s6+Hx*_&cNPj!N!8Pr zy^lbS7Z34D+`nlAd|L9x89QKVFmAqxH5VAyg!3mhum{YWwAMt`n-4j`N1aYI^DX81 zm3Yeg__w3L9Yl_hGQ(^&49AKvQZ4v@8z-G-rQR?yqvECUZ!a+yO9nUM8A|ZoMsCL^ z>i~tOo`(Z%tZM?A==;bgzgm4B^2Q@J!o{uwp&-BT64HMR*nzGN?F}GJcRYiofL|591&lodPx%ZS;Nv${LYTof zuKvQvB-aj%mI7yoj_NzZU`1mjCg`1oz_X9=@x6tWIrF9RbP&RkHx5Qy&};aY#Xyb~ zgc}1OlJto~PEGvOfv14Xy?Ns0+0GHlZp)l7dwsgGqc#NTLP%W@kKfkEP)ih*IfPf9 zDX3Vl!_sKFVizC3wSgE4+KPa-a2jVmm92ypx$ilz9_TinR|T*Y$!E(5 ziyNW(;tWPobP#T(MyZnIY&~PT9r$V?zS+mrpz9a$3t82EQM()jjH)UR#s4RR`V?FW zX2oJ7z)!_gtfx6dqm)!_#|AbshfjBfsL>OFSF~2tS2GPtvLq^~(7+~!T~2l*mjewQ zo#b)H5`D1E#69=w(2B8!@x>CDjZDG?ZwkT4P#JVbr*Yfw6&40h>LbS&%xyvJ8HvKZPQkRu!i=av4|Z)@SH4BO&w7KUbs5# zhL%)5{*6;SPyFgEzP@+E9P{yS1HpzCf|g=z{>I1CG@fvlD&|`l>~(D?d8nJq8>xm> zZh!?4Dt`RMaM<(UqP0Lp2xaAvE#izp{Msku3wHJK=Z7`CjYYjMjQ%2n@O03=K^1e& zDnw=1A3Fzr4NEQ6@_t63dhd$c)U|KkVB&GXG(mae;wE^}9jQ#$Q2E$$)nWn)cDuGA z$lh+4xo&(u{@l1n8Zsx9(x%y@Nzzz-*qEzfsiUE1t>r9_7R@*pZh~Kh6%z_+cp;@; zYjUd16?~FvIys`$B+j4E3F^YF2za)&iQoMNF<=XA_YLX5Qm!iL8|FYXykG#jG}=Y= z(hFx}(fC9ihoW$S~6!+5?op=N5(Apr1GA0&9WO)i<4b<8mnZ<6|7=-7JIK#4S0H= zd}ETaUQRFcZ8%lj${IU#HvZ}YR4zV*a(YoK0hGM945YJ0bhn|Vp4;DGicKxab28DX z@TC(th%@K9q)kv)VMK}F*wyRRy2?g#m&>v0ZY9b%g)v6WZir0bQw>K|Gj9jAWI}7v zM9`!+G%~--tZ4Sx6%WakrIvBN_mJ!6rX>#(V8kYS^vFjHb3>Z8mlsd>c$XNUY;1>= z823;yOSOs0l=(^UM7gS9QVqv#3r!98p*D!7r<|Q?Ym(#8z$$ZihI3N@SrRIVJ!6#4 zmj>%$B9Vo;b|JOl#MUQANy4S)-Tx3RTbV#wDZG$U)z}bW!O*^>Rmsv~c`;_mH5Myw zWTh2YhsFdnHunk;6CP6lUOEywk{Y%&I98l2&>t*gKUl)}Q9T)CaQ@@%mPgq+`*2VU zPKqJTJX_{kgHnuB0J!c%Fz`m<<83z$ZRjeudY>mV$%9)UB}7+xyAm$;1wi7VmC~~o zUP!$&pX~}mn;7;aXm7z1N=d~w&jGonW2j20*YHvuKjn?zP4Ta^l5fG$jy;MRPZcF~ zQmP&-6PUqHIMJ8g?bHfIx1dlp2a7p;Ym0;*-a3=Vb#Rl+@>N=8q*k- z=t)gZ-9-_WBQJT{XdYWp)?+w+7ps$aSWjdx#i~R?0zhA`v#M3d&_hZ=iW62XpTrg1%IUSf zd%1pP^UBj@s+E^ZiM+(7rr-s4m4ZE1VR%yPG9_L7yRE{Z6Voe|DPZ&$eVj^V^J3qk z%4nL$l2nkhtJ~nxR;Bc;g%?ui3||*EN6u2A_@c0$0tp7!>P*);ZTP*DlcOpv&lXPx6CfFl_s<}xEvz4OznhYjO&w|)diIrfM`)yNAY-}(|))(KMJU;GRR5zCbn@ldzuoCxdk)a< zZl^6zinZaL7N3;S6z1HHmEw?G?@b}IoN2Iqod1{3$?Pn z^6V=e6kd5r$@&!RF;MqW6&Apysrm3z+hgx&74KUD|X#v-y& zQh85;sp9u(<54BD7Nf;Ece4{Oo={pG?@BCT)#3|nKWeq%NaxsSRxcV+VPvRw}Ic+KSX<+vBgBT8K2>EQENssN=l|^@>~d^6c>P z!j)ZJt1VATd{Xq7=!N(c-1ronXNxJ5+U7J}jMm{|)yg9KlQ_T9Y`M{egWdKNcv1XL zOl7sDb2c7QFx6!supxR>HsowvUP3E8e%llZR#i!zG(yD#E4TTQ!_l700?Rm$V94UF(#1=@OrppW1- z8)|K36xS;Xx6`a1AGIfkYI1tzDTdG{DS5UKyI2$nWp25t*WAXRn>qQp6(My>6N}jZ z--p>2jESlgUub);VLyy@k{K)K?xRs-yjyp4Z&ujv*1_HV!tchcb-RzN3-Q4Bo@*Dv zQ7Noo-|A@bOzCLP}GkrB3AMrL?UAzrIY+3#n7K_8}Mrx2X49&RRXZavah@TI>{dxw`tg3w%q&d&SgXvcm?Zbi^JH(}o(wlyc%`LIR7p>Z(xHl|gxrVn1OiwR z+r8=TB(*Gbq_tWayjg&oQ8jMG)>^j8zlM{eDtQZ?X(w9xTeVBEZ$7~E*2}5aXTHHAP=s_;%Kib__i}ozhkuZto!btIjG>&z+Q9`q z=neG&@C8g+dU&r>WU==T+5duKL&6}yp;xV?sLM6coA>nU6uDd`a9yCJ++4r zrZ+P+pL2=6LhEU-_x`d=c^}r311XJ@b5X2t6v+l;B^V#fw?b)GFZei{iQ(WV^u9vx zUWKXU!%^^r6{Y82VqeB|M=GC&1HU{A>8OM!;pk+2aubhSb+lE6W7V&9^(?iZ|Xz7Wd2+EIE z3g)R1hG!)`NnwrV;mrJg^DPfo*=aBxy? z$If(JS8V9^VbFCAQls_307WQSc~tFMJNfeL|MKkFlGkbRNqKTp$A7e!tnc3m6~*Ih zr1gas4@xPuS6lEDcqOHSrnx@>gval9rV8h!k&Ts2@6*t+lEX#03)0{t zl?&gybTuJ;E1RA&JQu}obCJ|Cd{avRdI?WLIw;GNvOf8WEzb?iIJqBgDyBBgCaInI z=EoSe0Ug2(7H*+_IW8PhrlEpyM#resz8U09Ul$-^vd`zkY~FFAKa)4(fHoIOHqVna z?$WKNaushXYn;JjA7Jn-F##9U-?fUTte4W07LST9-Ic{VoW%QO;e+c@Modc?Y^osS3lBqC(V2z6a6l zJ2@TnPzu1J*+VvJ-&nL-_lmS>+_8kscyR7P`%tczJeXFShAybPatCizh%N{2_pK`N z$cLk!z2|%4d^rUsW`yv1k6>c%< zB|5qkZED5zN)0c>GAr+ct;+K1->>wSDGJ@?%!6OeEMYTy-n{aOKtY!*;6@3(GTHs*5unDGqhK=)+fX00%f3^z zD>vLUWv~aQflp0?o!(Mt;A>q15|oREOC8YL<1(jU5gfEjacLvpYLWiIW=gLDnqP_Q zKL#IPIk!gPmGfzMZDS>+(`#c`BH(+%H3RG3=%9_!)HW|5z*U@IX{FJq7I~OFZQ;K7RewI}7_1YNMtX@>g}Mxx34kSAp1Loo9J%^gbMG+MaFHfVFy^ zT5Xy~ZKFPSx439co$G!{WASdyU-5q(MXyG=KcV63UK$>It{dNQyUtcfo$~m-nxAQ{ zO6sL~XfAbTaoomaX-$QvD!{P&s{Jn#ta&_Y>4jLcG3kg9gYoD#JPA+1*}Zeck3g%p z!p7VU9ot(K&YCq66vdL#Y2hHP;>yRIOViCcpT9_^$31v=+3gU5<`ylF=$peyoJF z%F)wu;OkQ;$1vhCCGjZ`&$&)HI$dU}^uYLR3+bPD`yA-X|V~DwoFG#uv(tHXlP= zhI8w$Ds(}QW>tJO&a3wL`^rJ*lgo0{z$^FZr5t*diO^E~E63@D>sKK>`M>44!L?kT zFCgtAvp9xG-qQn6d`9o-#6y8QzVKHhHpyb0!687u{{zcU;QvXDgXLj#LE7Qmf- z!i!4gyojhs8q=Z=9A9bqzCEkl%k(7Y z8{2D}4YNfWE%eeaqrb>K+h*n3%Cr(~3TxfOrlGJrY9(PdNArPi z?!!XyBJZL0q=_&w6BFR3a=%3*I7-)xqS0*gKF!1D$;>y59P|GhkE#_I-&w=6VdQe8 zspss4Iwc%v?_oLcwRfM($`w7LS!V3+wz2aUd&Zj3@UiE8ob2dZ;oe=sICZRZ%4%dx zS#uFg6>IKg^zkqJfiZi>m2eeKp6k;$Uh?#fgas}eB6;xCFuNg@h67DK-|gaoOmh{Lv3nPruHKmLyTPSm%$N*Fz(WWL=HScd7x_;)|7paM<8FCDVFZVbR?G70>bz&y+2i zsEDkbMZ>y{#_Xz%#fmLF!%YBo{tP45*)!GM#hMpDQ<~s$!i-GP#wJgCS6(C$BtF@b z=`^)`BQdOYu~0sGJ@AVu80%CqybzaH+PHfBy+u64^CCc%heoreQ{JZG9e%R$#)++p zJ3F80{C)m)G80^l`NXDt8kHbp_#n|qrqk4NAK7pqGqDkLxF`VtCfJvGlF1_*{%R49 z7LR`ehS%y-C?y$>-;26#R(i42(a^JEIW3bGJSKTJR&5@C-irIyQa1=D=xXt;%jNlVbyXggI!i@ z9eP+vtaw^Sm2e_RKk*z$MI^(l0OH0y{*D}jg~%p1Y&f~VzgcDcEuP|A?q%Zeh7|-D z!|-v!Pe$+frVI^`X+7~*ICSJboj*?%R&}Z>MEU~QuY9EJ=uPL@;y7F1dgwTpO~Lag z9efI+7jD=dWtn?m8jWQh3(5fFyPy^xRudhDv$nt7?g8RIQXdtQr>dtID*cCUI$K zNcrTD7`{1V$kv|IspF09G&EMw_x0-}BeRczg%gIcq0%exl^{7vmtjU`5M<$VT2B0Z z<5|l%OgaBAECmu5?z}eu0kxQAIX57&VpcAEtvCM$4~SVp#5*N6I=}M_v7~$ z%Nq&5fSC=0$uO@D$!4=6kR096faG7`ga^%LzM)OU277F$XR%!9A^(1kEL}n-1rtOu z6>|WE4bXxXXc>Q<_zOJ65f_q8u*dI?Vi~fK;7MTu7bTAuLG^|!TyUeYb?kCM?1tWW zj5YkPY?xLYoeDyW5DV6Ee9kT>9(T=I+;WmZ_KO6`Uvsg!GA05jSC%UnVhsIiI8`#S zY>4mxZkeDHmU?A^e#h6M&CL9EQhC0qAu*^{_{K)(Hhd9(3A1n%HmQIBLHJZXpb0+V zs`Kv~M=)|aU1T$OqjGcG)LQe-Rj;9Et<%+#&I)i-q2_hmm|Zu=$q6PXCmCX!t^%kE zsaM7W?X3NaWWdM>W?v-ms}xI)bh;<0PUUnEI>{SNf+D0=@t2bdx2zFZyITk-5K7{I>ZX0S@(Ns3Pj2aK(_vN72lml%tx zPcs65J^o&a*EgNnZjRK_Zqj#-;&!%AJIeZwlD^+i+jrK19~u3~=C9oJp_0-B5BK4G zGBfip4L5*-ZNdSp!rbt>4X0?F9K!#5HgbE7T)Sj?`I*h1Z!tT~S^D^k#yGs=_Thw_ zf~#t~7kisAnv?+reH_M7m2BYjq+ec%(KIR;{nHeiSkwzozF*o1lT{S5^W=}Rj118n zF>}n-Ww>EKm?0{^$bJETO!$_sfg)U2a(T~cU^Lojk z>tw}eomhHsF6DVr9K;mu5LSm(+YcJH1JxX|?LisE%Zb0ld2C{Lm=GG~6UEzx0jspw z@O!?5>Ikf;%IYF1sqpkZXc1M&1#f0rZS7sL$)@QvwVXNlj&_+Oc5H7M$3z`Xm7{GP zIcdi)ueLCjbC^z3&)L{iJ}F;{_sL3R5m*YGap6S(eA?ueE#!NcEz81ebnQ6STV#?d zFM_=8S_T;3E8A#|&mz&uK2ID^6QOviR~-e}q?`xhsi^!|Fr^E*ZXZlie0!p;np9{L z<9L+wiFFN1gzenax5~nd~ey*k)dZ@xVE_6 zI=Bo6daw=$+FN_&I4G%)RO5uIv_34o!m^k|HreRrjCz~qD5Rqjo`j>5<-p^SKe;%D z;5VZvhe*TTbA8LuG*p8#zP|~&(8a3jT17SmuF^V|uOReV>UkZ;w`%krst{Um8tPeo zE7f4Uou!o5wF;}c^^%!M+a7?M z#G;~#$R~$Tri5oDbyB`7EgwCQvC!1>aG*d&=w zi}zkr@6w8wqpRh>*C!Y8$e;Y&56MxEI^VqrWdwom&z}rP`1EEw%%85rBUiMIviIEE z&{hdg!qG`-NsAWF>Lh?%sTtgpa*ztHDx#bM9}B zIyF7|W!|DIo={WP^VE!RjmxG?^9-A+Zy1lK!lZwWnotp*T|1A@(&Jw*oGmZ3_(~gI zxwL8FQQn_58>l>q>6IE@im#m3YS-!-bG8~D=~-*Bawwb4_VvRmxE&5`Iu%^hy>lP; zbG4abm8EW2b24>{gWa(_Wl1Fr5R)gb9Dvj~lY(JvIMAj#7jZn$gLTPiV$1Q(1DuuoHJLc&YE?$!X&?O z65}_r9978%`BmMOwQ=8^TA^)}QeYd+va~8nt?`|K?t-!6(7?T7zL`wmR5@LFy?(Hw zUWRAs+0}9gYklD+J}d68Y8tiGkn9@VMNA4;wF5M@TuuCL#IDe-E<;a4N0**ixXxqG zraq|N?Y*-cyMXO-z)*=%yK1*ArV%riPe;~Ts^iDBvLPX&vV?PN4xV+%?6lx)p4aLG zFCsA3t{LWd(yjgU%M=^WnK8W^miEh0Ya`%xX&&!IRTxt@ZP5SfDMYE1Tpt_L0) zw(!{Z)x&fSyYQ|Hv$%r>Mi;Jw(7P9Os9S$T$_jYpr%ET+E}`8;InC)3tJJQ=0QdpdG6IU560`@ zTeRxT&7&9(8oPQEfvXx0;uY0HO^gUs?uUE#hSh0n6Aya4?i|_y7-x6eaFv5j2#tUd z%eL2!!G(jJD#9yEOKf9vN6Rr{S$6z+!_c+*C$AQ<)jkG|-99**|G>j){0j3b3*$95 zjHS^`a3 zNH&OSI7c@f?>s0($4zuoAJB9Nn03%u+PIO$5G7{s$Sj-Y#a1W)so3r*>xe$=(R@dH z>v|NGb6GUL=24fbIXmgnbCuOru#0Mxc;I`_gV~Gzw33jK2?y#WqjAu2HC`WjruY%~ zs2nC))b#5^&kDttqhMFiO7S2Z9kBnX!eWsuPCdjT#3T1)6eacCrUH%PaXR1Un(~E9 zgQmt#i!QI(PlBCHo&b? zW5=n~by|(gN;;7uU&qFQRZRtCn>UGEn2#Kfg{vb3C^pjt&IUReaDlUjPO*D&kkYdj zUP#XolqII4`mD`Q%JQVFFQSdl$_t-*^3iF}!t|s(1@sjE^Odk36h(PrP?^g;urxwP zQ{%EeCkAOWD-|yCX@WxK(}aB2Icw(V=DN?qvk^@ITAn(N(pw`op|!gV|77t`KGuJ< ziLdqWl%hi-`%8%9!PXx-RY^^mIBqc-sA!)Y8)Kav`ML0F zsfeA$&ThXpqfFznxi^uY%TYVVdNmzo4hO388RpB$0hK20ESH8il%SfLP36vXl?o@+ z@8uo~o0zt#h^Z0%KEBk`!2+M+JX<+&3LCoPJ=3UWGN{aS%bHBu(R*;_0}g8_-3%lMPnw7^1K z-2|Jo&9-g7is_XaUW%`rF0VAZ;V<=9fvhhhjE5^=bv-y@rZrl*pXTxLKg(^nDs-SX zfzdB9LrSYZVx2Wumr^gJ5!Zvev!%=UEy?|@U?w~ec*Z>hI- zt(JQ3o5>m}9BAjGvkXd)6U%6)Qy-Vk!HS$=IZc%xqS+hvllZ6b&=Jd@N>j({4Rgga z#CdF)#Y)D_nw%=lM?%aYj4MS%S4 zNosj&g;2@FJ&Q9}{XnehS8j#92-*|@RE1J1IyD`YQZmSj9FFcn>yrolC`vv~G9fie zICuM$^mLaeGl^P2f7=|wg?+18$C<&rfBA)QF%5MA{k1=1H#~l;?F^~QyxFaie3yy{ z)wJ0ODJN%;`S$tA0hGsId|PN-M!bb%JT(GOewXPqHGJ{}PwSMzWH+ID=eduWWDUZ)8PPzW0(s zHO*!|d>xG>p#eTsOnGjcti&sEGNx?*Ev1G!DUu%*GV#Y1beS3EVo%b>*hr6uK}T3!>yWk+V@<1eNUjpaIC zaqw9Qm$cK>L>(=Z4F^#b`Ka2JRrLqy4`2<}SC;;D+N?saY?#+o8AQ9l!SNc17td^N zpdb$i+F6ecVW+#YB(I@P%&Ou+7k;n~@xXiMOUKrO@7{0hUHh91RbiWFY^xs>bS9a# zg&DTh5Grr1Z2?Qn&hXD@SIyB;`??&Sp6^M|arcu`KhAX~?$DWTRIY|#r-445O z=vG^Bc;5crahCg=Zq1FiYB)J6Qs||4-hDr!5y@rf1{_)~b)v<&8ChCZCa%?fJ-D}V zPZ6e$T!sVf-Cn|h#)E_P;39U+N5;Ta3ca#dFScV)TdZ&MU>zwD745;hY3-df^*kJC zwSN3{n>BB}&9v1ERs_X173;vaNNGAvEstJ^@K8xlGVGy}DQjw^d|S1ZzZb^Td*geC zRjAv&wAV|g^~)sPlPDkj-|$?I&5lr&>?R%5{aLf((1@yQ(TN9S@g*FVs!W6J?9RN4 zYg~>RGZ}2ea*3~Otm;2mU0#QEc^!}%|7U%9sjmMJidC#v`s?81YxN(ZwTb3yi`NnS zgNOU;7+zjg*q_u??}y*K6k>ljlTAyDqyZ~Glr2LwqH?tig{N{;CIt}cW{8_UGihM6 zxP$gHxHdeAU#@%=#S+nJUd9h%cpJn zZ{WG<+BBTF=|O8b*)>C*AL?LOUy9+Sm^!r_y?S)YH=a)op~Ypg%D8i)Mq%xg$A2}q zYh37}oL|>6H3c!vtD!5iS}2^u38QIGR5Esd@uT6@`VXCzb~03y*ejxj%K)AyHo>q3 z19LGcg*to2h14slypJN%sNtpf!s!c#FP-hJ7T4?fldnG!z42M67T5_W`1$O@+^Uks zA##ykfQmYsq`o4Jk^wC(`Re9{#-m*Ph zc#0m{d%erkNlVv zyUN1b0G2^ZP~KWdXl+z@U&yJ~_w}ldn9wB^5m&-oIyd06G_Kvibh;e5^1e|l7aAoV z`S2thgSD#ND4G+s%HH$oK#yUnQ|*NCBpfcLa}c+a46;3*Rk(qm+;Y>z7;e@^QFxX@ zCyeKIxgNZcQzz-U5rGS86k4U7+V>WhC*NLBdaWF&akO|PJ^Nptl^3qo7okNdmA?o} z%LRu#u$77@bv}wuacYtLAoZ@a=7zI6L`o&OP0_WbbK%!k?c;%OrSBpOy@h30b$%au zK^51z?dv6QVSEynXT{=aHBWl0#b;%B4sAaw)06O&%IP`bq2^>*Q(u?^S2%i$^wQ?b z!!_DlTBZ31+u_oAcFU%eHL=xFR>WkrRP*0t-?M8JoThWOn~cLE+54w~V_}%0^JbiD z#S*N#_F8z>mM0}16&0aIxqEc?BG}#NwA3rHu78tJ9nU4DV^zXIsQz5DCNLGI>(H!^ zW)srPmQOAFf(w8LX!`=^TM(57OV0fOR7t&$^=o7G{S2&yDf3@z%2{hY$ z42V=!qZ86WSq|K?w^xpy;*mcEW4&psOvlvS4}x;e`J!|zMwXUY^ImD_=z8FL%Nncu zFe~AAF5WTwHUhM~n~C$M@^RyldNAsvs7)uMxTYIh#ML*C2~vxCQ+LyuE#$G~$!k^4J-CfMliR}8Ty(s1(1pc9WUO3N@ZDY;pL1{a8n`pA-fevLwgo#H zs#5pqJhqJcatc%A#-hJ+yJ=&&l+Y>|lbsct5*$}!tJCGkJ%FNk`l=Fpey~0UV2Kuw z!#fH*LlBlanIg6-(K?{fgmh4neUsgF@M^V9L)ACw_A=qd)9y?Nov@kx=G5(rupD@7 z`QuMpDulwt!cB+8wO&GM`SiZ?4g*jKzMDxeD)XZUDVbpBYi#;@t*vPrYxGc6#j;y| z?q{RAC&u^X-I`@UEP28f$=R2DNh(46GEf*cJF5#YE06zjkN3VBUYzXQ*5Pnyu$mWV zm!Tu6Wu3dwT75J-B1NSy=87xfh)YeTdy6d|+O+P?MR>G1Ba-DrZoxylqCrl5J%5fT z0}#e(p7|c4Aq4Y6%!pf=?<^aLRDEU=V1~oh!XdI5hA%vx4>mh*Hvx953l$GDR z$XKYHX=-=Z^5xxDGaJh8r?vK{pRKkWcX2%-nOam~DV+)sCW7puFIC0fNCwX^$pPX9?3Y9%Yn@fb-J@DVPVYe^GrKqV@Ld|oyW?ot+0k7 z*!x6xzNJ?3!tx=M>2;@sC*kPC65c4ii?XPCw?$Q&Woxyw)*`-e?Z<0YM@P%_|7H6R zQK_KydTlN}36H;R4fn2<(0kZOc!f!stQj@7>tYKn*I&K}VnNA~HDh0Dg1&<5Oif1D z6K2lWMC0=mbBFL5xO|k2j356-XZeX3bFIwn$TXZkcYXrE(3@Tfh1I*xS%OK1P1j8Hh&QTAFYAE{D1MsY|?j0JF>5~2N)t~7y@mw>RL-d0+ zE3d9o>zq<}R$50N-*I$14KSwUV-`$?AHVgg9CjNw z?WirHcUtOs*|#d{a_C)!>gyZae#-#G2_=Z07o=^$%3tmWaA^y--|E7XC zvlo#07E1ov2shv>Ft9Iu+T6o+WqA%7T2}P`getLAAp(oA9$Os>TgVM)QyLa85%5s~kKYX+ZqE zV8OFNj20#E)VJ`?RwNt1Ox`;Z_>Qe<^UR0^A;$g0UtsoBG{E+xMDjG|z`fsC zX9)K85Aj*8z3?Ypd+q*Nh&aAGL4ceOUgbZ)%j`wsA(X#7B^ z3`Ce}BNmNk-NOV6=f~eCn#dsBKqL`0%0LHG#i78ZptVtBLDkc}x*aXx(FiZl*fg|w zX^6Q(%I*Aog=YP)$m93d#B@wwbXd|9<`3d*lCA^Bi2@XElV3u($?IKd33p>Q#F9;H z#9(48rCu9S4GLYyNv2V@=)Le|!cHZ3biKs;n$2sj)CdeFDRhK#)i;4D$->;l$!!~s zRu6@rX6CsOz+uLL)kT2MHws3_W2DMBN1ukVP;6pF?*8#_)&r`Tr8+7Bb0Jp;RR-H6 zTi8$HpTN5LSl|lt#IVsJhMAYZfM#|oGL0v3IZVZ6NicdOA_NFm=+zCZgv_QzZtY;(}uz8elig!gvTISZp!Nm9xEKcI}lYc4PKn&A7$-`1iuGXW$tdVfh94 zD@CI?U>oD*pygkOp+NP@++U4fKA;eA;Zl?fC37Kr%;=opyRTfm)-A-%67S{)_7$GBbxSq;2FP z1D9=f9CC!ihIW2S4(RdUE4~M?Uy&%S4afoJqeQS}f_~Eys|du&33`{IGF&*u2H6ox z_Rb3fPEI(2kQ>H=3bSJZw_^sk^U>0dMaCW9mD@29+jH&47)xg6Tz0|}?A;EY5)K8# zinsy+P-rS#?=J3mcah&W;^&R_o8CO%@gW_N(N81L!xg6@MR zDB5?v^|kBuWXI@~Xy8WVW~y=4K0Pu@Jya*bL&|$ zMGPk+!+YSDSq)Gq7a4fu7=cksRYoSH>K227#x3hu$HRd()^XZSGTylL4g1~zE)Ar6 z;Z^C%fV5bktNQ!QD+R`D!G_{CF?of!1-6YiEZX=&O3zvoq=opI=Qc2a^)f2}*~qmV zN05RiJIEqPopn8VLc(7yK)1rT;bfo)@u=kPs8cj;uA%H6ceI^%faLyVH^)_sM@^re zb#ZFd)XO_|^V2l87k0U@OkIeP4+N|ThLRw@b;>-uFaei5tw}-0meYmtY=uxzK$-p7 z{IE~(Wh52~jE*p(L@-&JkVPN(Y6%UJ;%+J^(jJ+11-cTfC;kG{{u%|69UE#N)RC=C72YNK4gP$jIfQpm+Lu7hEci zff(tT&`eJk2ExlNI5i}+xL8bArXKHXz{ZlWz(&n6W)1k=h&SP}lHdtdWu91TdG98s zP0cs)<9E~*m<2P@h_cCXb%o^2^oytW5R$W{P!{qDcjH??I=?Xyvw59|0xlIUdFF&~ z%bzNd?h=@iC=YS6)C|%2T&dd13_RnG$+A0 zVxgkIH|-tg)^6JkUa?)eF?CnY?v1Chfjp;zNPMbxTxY4wcA*MWYHZnV2`eV%;hoje zaA`E1UwRUI)`XI)+RStjN%C&aovdAGZCI-H&TyR7$&pE$1+MJ9Hvy@58r~fvUvcY} zVY+E#Dnx1BKBZ(p0Z*$qbR&es)^>RpRKlI5iaEzGEH_44VU(4$zb`Q?@*Xa@nq~5& z-PCBpBxRSk+=w*-!IxR`FTN%$BQq3jlcwBAzko+IKB87uA4UM0jS#UL+8Zxb=4T95?c+rayn4X|WonWF;5q?|Lz zPtOe2M>JfvYwI*s>~~pg!l8i%B>1(MeVqn7l|HjYBB0=V530}9Cbo$(G>O?u25fsH zBv%w~$X1wPqW0$cjOOR2;nPhu>BfqbTOhetQdEzgzy6-rU zEV{7-6mn}L#{g6`XjC{`xXN<|6!t{Q=+2M7KXPzX&f!A=UTiVBLQ{F$2_RgpZW9zC zwTd@N1Q1ws<4QRGI>`Xz-Hc2zD`=#1bZIJ%22FH@l)YXyGQqoCcJ`_hsB)6%WPAKI zPaG#~w-p}MvA9Xmcd&5@4P%2sy7=w>Dg1+uvAt6(blo~L^O0}4ZL_<#`I z-Z`kaBN7a!?o%GooMe&)m1cr0{8W+onc*+NTp8YTWq!}~`2BW1;U}ZqO}ytU&OEa- zXJltIjAsmMxVUuYn1kd(HVwt*Hqq5>B8wxP;doCNcs*=ZfQBj0xpO=@$jaxyKwyx~ z=g*Uwm746t!pzjHECAXSdkV1i8_A14{cWa)gp%qC<+1y7a|9(Xqd7Py*EI$5R* z(o7RP4{|OF1PDq9bR7cS@7(|6fXcjmoy-J({NE-A%7Y*I`o@z13Gw`Oa$w5l%I3-! zj{dtUDTTV-_i+0-H8|^e9(P7OFrB83qYpk61ns7E6oD+v*s~5J#OrB;gy41Ulp;33GU9zt*|U@bY! z;Yw`9^hymTzPTOusk9C!i)bX@E5;zgilv{tbkK^el9~@b$HmOsA>iS05#jK*Mm_ z5z>nVvivhOaAcY{eA#`08NZxV(^-EEB9vxEjXUPpUf1GjU7iXA`AU6sO1;oFW?g9 z#_+^Xq?th9_+uPI6@(&Jw_xnxR>J7=w2#^TmE z%bO)mpIx{EjxB$z+Ne#bk()GG3VUHNZ}z6MPp>89sd!VLoyj;*wFF zbBugG3_K}09*{`6E#?E~zj!F?5L+$v;_kvu&Ntwdc0!0ZFxJO}fX0-F?CDgua6$%*D0KRJ8iw`K`b#Y&jtp(CBMv160M z{=~w{<6rBfV9*Bu`+Wwcl*Ev0t8xg}^Z0*jwxlwiVcxDupMBxIT)A(dX!8rn#+t@^ z8{Y2DrnI0Qm*r`~swR!l(y5$5<*dqI!>Qs{Uj9LkF9V7H>|XszXN9+>rY8M*i>gq( z2;{YVO}r_o$ysH3(yd8;XPxgu8}dHP9jV!{53`G9S=$_L>TTJalmT&Jp(Cx;(%{(Q z-ezpsy@_dT;MCy8{b=p#%0pR-k`59d7c@!}+BCGd33_TTdTK9o>Mm0=8D{I|GnsO( zRqv|vwst|r7I(?$^2bKU&NMo7wpZK)9jg4r^)Z^6@&NsWH77uWwg}}Uc!O)*2{sf2lugO%%;LwMC<}OZ_EH=d2IB~WCK9h#&hlhC=o*2=d(fp zkYH5+s0iU8_#JOFMP2xP^ib}c_uU@~>Cr!^Tr;9K{CP_aPlOVt6U0PR&X5Z#ce?@4Rn^FkZQQsqMYr$KQSt=v#3K&{dj= zh7T;y%A^eoHm%wfqG;O{zhWEbUoFG$ zO~Y28B7|NT8_Js;8IZ%#m&~|YrX5eNdj)kLsp7Hv82$Qemm{rHwXfZSf?cn~cvs8l zT)5s^lUL#zj^!z8Tnu?`FzLz#A>KT-x584PY`S6;)b$$SO92uF4xqESimt|5=ds1p z(6dzN#*a^(92F_NkW#N%iDT)y^MdYz%%(dlalEUvnT=g|VM^Cs&3NPjtXZ0k;Ua4qp*yam+IO2pXz~BVi-0@4O zoHn9|vUY%E;#pDEq53kiEdw}UmJ2N011Ug3L2V4_@zM+WW`-e#Z+NQnOFp@z z_NDgKgyNb*6Fhtvajj^L@lcxJejeBFh>QTj$XakWm@4)r>dq<(ft8EEh0qJ3IRBZ^ zPne;Aq_H zCfM}-#9w0c*PmP{`yA&BL!wDOlhN*mw`I)CoT@AQQIcpc_G@6JeE`FtMH9 ztrwbbx)gsWEt?QR+3~4o7R7?Ie4g-r4Pp|4q(*we@GBP^EPBIu;PRQXI_gv*ZS znKIvaa(;Q_MM4c_iW{?mQ^nl*bP}op^F+9c%L|Q_`ALnhG?kktc^Y1*oaH>JS_XY7 zr`P(c81+rmXZ>Z^_g7bq5$QqWRw#!QL&@Xd_c!d?=;H|5&JEWvGyBYSV9(8rfvkKF zF@1*@fvn6ru8mhbYiw^?d{!8C(KrDJM^}6U=t;76`lxrlKlw!#0}yi7tn>r`VSfC@ zbYfw8;>z!YyOBN;=I(rC`PL^v(j zk;s6#`OtW31v_MuN)=1R{+x*9a zK3H+Y{8E4IetD&`$>~&meSi=HN@UgFX;SI}yYS_fbnjq-?{mEZwl}6&%8R7NrQzW~ zxOLl6X_$H&x=%0V(97#^PV{IDEm9zso*Kw>zGx@<+UUPw9l#zuf^oztSyHaK2a z)qj?t6lCnWGo`m-Egzr-K>*Xn^-D>D;{VwYa`!Mjpob=$Y*CN@c!=>1j=0RUZ@F<& z@qtCqk#==WW<=G6E=mM^)yUG?T^@Ck0JZ=W*W@pfF?HD4f_2G*UFX&ggQB>GrQNY$ zW6h3rm6xQ#f+-3ggh1FVN`WoD{LC%3TN0Ca`0Se^N=~E+l$xGIBPC>q7BMj`Z8Tem zvK=W;5Jm978;%ae?KGp{mY&-!Y_)`kYqp>9A6bJgD%%~D7TnT9=7YdWw3oP_bIDrx z-yC7&&+hy!`W#aCEnz^1kk_F*_`F7cdk5&D_J@D}X^@_K;{PCGf^p67#LHJV#qPQYIja8P46To-XE)4ts~ujC zX;c3;$|AKD7@l-$lTdh!C?d&`l!lSxd528w`Z_-@j$76N=YY-&Vf8M22VTAW*7261 zHnrU)fWk{5eN*{u7=OEo420%?b$Vt`&Bn1eV>A*lfeC7kZGc6z$ zCDbkaDRe_&=DnMFUv7$u_$Pxge&2=;ptkReAQ?+arNfT-}81n8F zo>8*QW{VN}yIqv-7dq7gmzNIY6Y5*`WhgHhmQrhUXA6%0>gRy@zj)}8zal7W*;>H6 zg`ibbXzo?*M(YkApJu@G&p?6$#?C^}E|(26!O8i@({#x7zC><*3uspt4aOi%qHjrqij$<0ntHgx5Z9cUxOi1% z-JjGTTOnb;n%pv3>aCxx$JBugB%d7w**qw>GM~$5$%xWGaz1ccqVZ~qBpRMFw6FLC z2=}ENZm;fL#;6s{$+Q8(mQDVAsm~o%v4DRb3~zRJ?cmmXTGn@Py)g7OsZF1`4(etv zTRHq6e>BEmQ$b@gJNU<};w;hXveP@qS!g?1L>aK&BSt{ev^@M1fsfdm=z$G-!ptmS zLb1#iohoKTdvo&E2f*I^Cy$__Fvi2p6;mjkP{*;yZB{4IW?B&2bDbCBtC@w)IZacr z6)mqOj10Zq)zV~h3plB(x(`qVdT6at=Y*z>DRzeXDWtipZjMy!uoX?(icUC%M*0qb z+in;%(7&{k04|MuQ4>)6 z_!2(y@pQZtVMyC4IJD@PR~^*or8JLaDg?~ol2u46uB@`lQ>$_*H9bc@all9Ds1W_h9JLyp0(I%UVg zzF!jB+Jo}qv!dFk`@5aAm!tg9&}u-ft;2k9i!4fM{DkWJyWKoQ76Mqp&hHgprSZr! zzAh~{xa>m8pFv$19O2?GXj_vuWZ&vN)eLVN?fB%Nm_1Mg;z;d^S3@eQYt^w-unMQwQ_y$I}^ zLS`3zv6=gkXJl}o)%cZnlmGI+r}Php;Ip?6U~STqBbYpfjt~8~FI`3f$$}vf!idY` zY&|G3yYc-FZYS*8#Dw&3UcmFTiXIpst*#j0DtB(Qy4w4MS6lIPqyY0{US>#!}I2w5m_5wAc@ zaLRnRk&~~DCg{>fAcDvbDO|9(zreDml-Ny$HCsNHCdH;~tr0QIa@4!#_TFp6xwFAi z^=;G{dgbsIS=geR0o5WqNJnPU4X%)R4OSf5p_hFTRqYL7jn^`G;^)aesFM79bEv)z zGToN0gNBXGS*yEy zcFw;^&f-tu<1QaOJBW$Fb1QZHU7E2c(u0;M|q(9Gn zb2Ie(%GZA{6<;*=nJ>qE7+at9M%|KZI@{h|1MMa&V#i0Pj>EctgnzKyXHNf>=DK~L zA-GT}zsIh^mf@C@n;oZzk@i4O{g8uqzcCCd@Z%-#VWfs*SyRADBKA^KPUkH9#=XeB|nA6e)XFI{ool7?` zfNu6~fIsPK)o3H-+}*BJ>+nCPM%&7BK3p6NaMj zU~d}+mrm%BZGmGrg|wZojp!lQKBt}?Qlg-<0Rju|7bVbxs?*S3<8h>IHOem@QC_-_ z*BcqS$>Tdb^In*CsR>`gr35VMXOPKvBzd1g&5+7HWOVZZ0W9!z6bo^m4Jb^w?TXOD zlP&nAkABi#pcT`EJOmNfp@2W>ZmmfT5zS3_d}>L~S=X$0&WTx&@JVQEtmaeE1)Z)U{5w1-e6QzZi(UFkvP95 zwCEVSS`6~uY|__z^(ajag|w{Vh>?UYOwN=7Z2VOeqBz)1g;Kk#?ucrI znh{-X$o5(Rg_3MS=@AM)A>_Q*b+xtH-)x4Zs1m09+sBB)Mubl^oH@zrVf2y;%t3sr z>PZZ)vV2y=TJXCi@~3T&*uCH)J#F&c-M#BdkczPhY-kb35`#D7Vwqxj6qOsK6$_kA z?apuD79T!MjWjZFdOvypRZY3sX#8M%@%@RwN;@vDvekvB+?hZH)fHLE>aa3Jc2#F7 z61N+4BXhbUV)!{M>662c(Dc6dNnH@oJ-0DpBl5y)QjVmY=inWcESr}|NxBY@vE&u` zj3s-xj>)|8GDH6D$G{cyOL(&^sHrXCI)a3c-?MFlQwI04s~p%%tTkc?#WB9yK{u3C zlI1+>OOx~TNla0YO5|2qZRfsLWi08Uj#?DV(3zRO0kJTCUQtis-`Wk$oQCRBS=#PW zeM5|0)Oc8Rn>wc^VMG^2M(x4h-S`@wFB*UX$s3Qiei~@i!5ZUU9 zweyeNR4vWpF}{|X6oS7rh8(tN+)T|!fV3hd_@cA-plS;qNeL z{h|tNPVLpz%0rAb)!(+e)6e>dC3F>|A74mtAG1uKs$THH&Nq7X%>1Q~9W_hst%z8@ z&G4h(c6b*8Tj-xuA;Ph&*YD%?{o@Fx(uzfJLR6H&D@f?-llbtj0K3>nzixp>*}Eb3 zIx;PYKSJ0ds?u}`0N|njmtewd8sXo4DcO4TiLfFeTCv^VBK*#S?`qAh)vXS1jvw4) zvB-~tZeaBWV)#4Oueoq~h%mhSW}H;q{-_uw@v&fr-hb=GPly%5eD=4=#Har6@=gtLho{7hx)p`5 zsQhqV)Pwk4(jXtyl+#HbIo0lOCMcgK@;N$bFK*T)UZfaIVhYmky-_$)>FiNaqKwHQ z1Lw?wlrH2)H%FbL9j0Kehj5QN1Iq#pHf9P;2Q9hD-}s6XbEn_vitXWaGhgeVLn(vV z%j&lhu9&`IL*@7aPbst1K>D939Urs7B_A`k6A-7KdwA&1f`^&dVXQ?%LFvZ)L~-f< ze&j-dC7%3=CC$kq`NZP;Og7e`yJv53(G50b!oCabhzP#if0O#j9-mo;oYy}@O`G?| zAtLyXs(5md0)_^okbHD}sfc|zF(7U0-oSG(U`QDi8R5Prjp--#e$n@tdx)r32#60M zb}Xv`Oem<{M3aH9(FrN{wB| zMEN`p*zQz%pl_DEe+$H{MaUU~oHvgHCjL3olM0l8`fcL{K3#nd%fwub@zg^nDIlFb z)I>t&JFSXno)@y1Z$q=xo&smKdD2Cr$2c0tXm9BT=;jsf+<8*M{&-fQ|JM3@r_Rkm znxc_kcsR57l}%Eh;5_nF%yM*Z_1>!&yIB=%98+B8+jZtz^;-pey*U?fXz{>)yWe3d zcWlbv>PMsP(Gdb=D6w{=AUFRGt?9arrl&d#?M=UhhB1RRj;RR_C~S)-3r;mAheVIV zvG80ON7W5=o#g*}BqbR<)i)^bL_3GvsC3(g(ICXmBH)+kgO~*2!5qN7FMPjeAz^fu zdt;zS9ezAL^@HUGk#}M~oobuzf+vyms!A-dVTbSv#bL5gFoUFG{?jT-0kyEFJu}B;X-B&JKp`@amV9xpye1IAc1Ejy8+! zGUxJoqv^mJ-6|}7y?jboNUhfBC#)Uz)ddEo6jlzjgh&L$mW1-GsiRfh-s`Xyi6hB(-89*Ithe1V@;b8-)5H&;*UOEqA>pe*HC1GQU zko=7$VdyIdKIVCAFJgpo@CX*(vc}Ni$QYH5J`gOB=!2+F^_D*z5{TpLL4T> z6TbGN>Sj^nfTv2UR;is;48x!-mfmMywk>j;g;D3et=-zJ>+nPsc&Pd#BPsp0BC%dW zmn~ziL)S~-+F@lz*MTESJHpd!&5@@}UR7?BUU1T%Xl8AoauAS8>v{Ry>2h1|sq1yL zK7+p#m4zn(v5&ciHZb*g_W~O3A{5obov_`G9GfoO!WI)K7L@3l`w6n;=P7x{!L0^d z5v~aS(-2?OEepEL2sJM!DSJ*bt{PSm`EPR#ehT!#n4L5Cs6lLb{YR@; z>Fr#KumNzsCIyP!d3@}BWUdS@ZH%lxiuR8TiKR5%yROkCD{~8Qf1NYW&r!^_>aNyD z;7<>6@ANm}$-xzkHTnxpgu5|q1jAznqsbI7%L^G^)uL#s=qU+pC{vaSx6lUj3~&V(3|Ls&0%zYg-r`uUKaMSFWmLYp);v3KldyG9gb&L0e1s7jPfRNE z^l2?JJy|vEkK3i{Chm&<8RQjTF%aIGv7)I_@Mq6(kcrMJfazQW9t3Y#Hr;KU?-x8S z83=!F{OX>bLC1ij@;-VY2_{J@vP@zc$=nkCd~(vJ2vikj`yh5P;6*t=EKR391H!*Tm~Osd4WWllxqB2)O@&;| zmalk=Im&dXsf>yV!2Xl&SE|29hwX=>TMRC>z|XqO{ zbZYA5^r|s3pb1ZAGwq@by015N`(T+8JPJ{hJo{?VTFg9zjuP2lyyQ=g8uS$8#hZ2gx0zlO%F#*;EpsO8sLlQ*N3Vn>wfPMW1T7oBm6LKlX* zB@uy@X9Y>bqK$~(3924Q#?>-u8KZ9oVS__f-@aR#?K4Q)nK~OHvY6lPMpiqpbr_iH zrXBjbYH~jYND8Wzrex2hOf>X-$@M|ks7&ygNq|J^)^9x8`*ePPA3L%U7bMEb<47GR z>u=BFD>oa#g#UFy24z*@Qe$hor*XHow^Hs_xp(mU4lk3~T=Dt&s^$3iy(7rI$hm`R z?K5N{Z!wnguQMTq92s2Z1098qjl720jYEK$W$1VG83_7(Nybp{cTg=nzboFu{b!>C zbjoiB-J%vd!l^=Ije|4vQWO$rv873=_0xsoE9^GG3hb9~Xyd^HHWwGVL6V@ohNG=& zqA?^=Zwna;Bi-lk+!A4rpk3QAXtup~w&-1q=SyX{@9Zjc;nVT({%?4t10Ktc5bFM= zed=(?Ww&dctGGkI_K-ce!PQTw+(b2v!q?9jh*D_0(2IdW@nG+73s$!Om1FF@9fFmE ztbi_F(dvG1$JlSlEjG1M-UOB1jxCZxem5-qMnw~(-*A+Z)nlriP0e#@yy)S)@F+uP zGH{bmb2BO_XTX%hfbFDvK2@jL60xy_9iWLdU|ch4Wtux;rt_I)lzXD;m#5dC0n0=F z4=O_m)#sor0M+kR=f85}@|ykz7jyIhALh1s-e3bR{Ps1D#*<`xR9~j56u^@@H3*rw zX_5I^!FemsCaTY%J8Zb6pAcQ>Gp@(idx|7Yh$OAD2OgPNxr7N|qca__VD{m`CyMpY zHCkTTL#^J0!;!~dr+7<7m&U(m-F9<9Bg`eORZ!Xz-?hu)urQ_X;|hPZ7FOpR=rx8c zjw?)tyF0uQ^D5&bT8|t;omza#4E@6LnJ}a(?huTqhc|3x@q{J~s~PVYFSYz95>>Wc~ z#fkYn^R}rdxQU_D>qlU^w(`9moE*;{ZQitYa}xh2p^ZMIL>B;0aSlMD#fwjiq^T9I zuBM#T3|>SYd>Nfw8%Qj|rnZCrK-2^MnNan!<^)!FMRV6()1J`fB^NieKv^X4YyF#_A1-&-PD=amsun zVLUCh5WXkGKLncWT<6l}m2gl;^cPz-;qXGhoOz&rE`E;~5NiU-reW)huz?~Q*)e2D zHOg0wIvrASa;V`a=|2$y$@j;w_e|gyaVOnrxa)USd&Hoo#`p6AXnU9->Z1w|D@}FFM z+?41HxT$IP1!HRFzUZXdJ&DDVBl4Ysp>DA#K2gNQ)cYfO?-zaliP-W0pBWadt*YBB zyK5Jh}2?%olfU$3P1G z;~%wj?RF)Yr$Jf>EDJ5*yv45luV;7ltvJP;*bgf<58Jnlu?&vwwF$avz1shAZ=S}L zg>QTJW3kSl$s&{gx17HBGAc#-?_g?cG~`F5c7wV`TEGwyXcGM{gjxR|qy$43l7SOH zGKpPnIvgmr(N}99kil3|CH%SM*5zNJXr$f9o3Yj#z7j%$zz|x*iv~H=<#yC9sE%5R zN$G04nH^q_TOa(^|aggWbN_7fnY>KpR%vh(<) z=D2cIxz|s{-m#R#nb!DdxVI_gET#|vtZU1$dlG*MX@9E_am}ZDLQ1<@G*2J)5w2^9 zF0Ac}x>z4O7MGHmXO9f?{QU~jDpgVfzS?v!lrSee5>F*_67F zZTB?=M?Kc0{c%A!Bzs~bgCBd>MLoB-weTc*c$}#6QTS(yV^Z=m>3>)JeoNUZhdP6n zmGrZD{3}C6t@*ZOGHY*Ksm)M^>Umz&@|7gnoF4*%SB-bh(mGDxer?~h0o(mxap%jb z$Bkw*mc%rqDOEbX-!_tM^~u{4cL5>ux83Wzv)3P_MPqa+Xf$3K#ZJWy+mpyeF=8)+ z2gA*il;<3M>gQwuTXI?v#}%(LlEpFwto8rn+m7g}tY$bJB2R+~;C;ou^D~}mnd0!A zh*deR2evU-eVBUs5=d1-sk(j8{Vf3cl3d+ueEUbSv6?&@gg~QGzo-%WPolpc?X=XQ zo(a%Zo_*Dgb8An`7I;zb+Jnub4YCA8%vMQnn>Sf!s~tQpMJvw&GN0z{o38Q5xsj$9 zju%&Aw~d^$wcp?FcHJuxo8e~dfkhx15@E>Bi8kfa*6ELhUnTvk_I0<)I*`u7xcxs- z6lz7I|3C1=sIGzgI_r(0;lK3W`9q1J&vQ;G%B#mWdib8gPFE=tkkvL03|qc=yYRb+ zp$-OKrz4@WRLzWHcYxNSdcL{;VEg!!8spt`+L={yl$`e6{TDYorF<3zLBE{iQUlF} zi@Vl8fG7Gm8$_g<-OZaOZ~$ob|YzZ&D#Y zIGXC{;LA!@c6N2jl&K#Qc!MiT!X|98 zM)lNc3!Jo!$aS@QR6cx$E5;J<3!NKVYUQ=qB%}Gv=NYzkf~1BF`i{?`xIaK%Ay8LL zWGyj498R^b=ax@nLRHdI(_FH71T(%F+9ptnlUPE?eLKlnAhl#dls}g2O;(b4IU>I1 zZ?WU!we4?k#pZJ~q>i6R@wjzyCUFjqkovsq-F(Z!ZWX0klwG_DbV{>i!d zObgP$Ljqom1k~W+N!rwo#gE387mX+hz4Lgk4IuD~x?_wd^@g zDVZTczj`s@Cr)WR^lTivDq@yS>`$STI!|pWK3ufaK8k^xD^*{;$;<4`KyK7GvMlqWj^Bj z-bDZ~J&c>hjf(;LsuKh9)m-QiRpNeP^g!(Rm-#zj1le^BPo%Lk63dA}VF{9c6U&N{)-ps3SH*yK4ksPe1D{Lh}>O5Zp` z!V6I#+0C2}I`tWy%nz*-abt?s58U_MxMsPd9V9#C=_A4IF`t&G0D`=@hIYxB9C_9< z$|*Ugk+x;?V=KC(k%?{5WW#{3w46ySKVImH2a=u(JbM0d1N*v56+yLNjgNLQbfo(; z4%+MU7dLEdd@`iSBDY!$|own(|rMRT0ZXgf_7Nsv3P+uMFQ!2w!pIK&6^ zS_x~TbatR!V`@X&i+1xy46uhfU?rg&82;hI4NNkf9ZsNyo__mGzWI~i{QJ&?II;iA z{o2v%I&!NK3p0t+(?cvX;j+z$ZVFjuc}*Y}SkKOudU>}SA@wuQg5kqSsJh)W4Va2u zegAqh0b83#^mo9TP8c@{1bKgffYap4&09L|W_dhs^p2Y0OQq*ZxK%(GwctX!=2q2E zg@4!TCN14bjGu%#EU{CYGej46dq{;YA>UJIrvS3oI2s~~3Lc0&`;%BoSEI+XVZ|LLY4|3LJ>wZTLj5rO{3np5Cza{NGWIb4Fq{U7M=LeU>P5|G%s9X2gt-`edZaDUtCFBI{ zwrz1*8hRAHY$1G%og_MZ#^MA1nX}!-v2pCbIEr04zb6GnIrJ5{$?QG_3IX^6KY3SK zvq}QTs5w;r9s2!OUk|#AEgcr1L#pliQ?dNbrVj+qmhk1Xsv&OwUS0l)}D^7Xk zS9;cLuteo2>Rw8kJ2>jY56VYJH!gD(!lAy}q(9D~HzveDHv!7raPcYe`pzX`^P5o_ ze+)gbu?#5^q>kzO1=RMT5nW`|=k=p~da*-ock#;_I>1a)m8JHfivYEFbBo zQ;EBDN~K)GhU$|D>C-?kj9U+e6*7SxJXdGOVkALHA#$x#x`6M4&Z+JSsk!BXKKl!k zy1ylS@XfHd?Bc6jL$va`v>RQ)vVhFl8y^1OjPaW-e=~9$M6#&|H6GHowk;Lw>~B@+ zhamaL8t@W&bu)5UchCAMq$=m`#440we$^t_a251(abMa$w0#4i|SXe{VXylH2$al!(tvxaIm=2Eu9&Jds<8SY?O7mg{fH;zlzZc$U zEwHB;jLxfrbPowSTRb6uvMD|hPP%Cm@-|(BB#$pghVUo2w9mdzcy#s5X&iTAL~GW? z20V!jJrIczKy@IE#@4#1u}D@tn>B}7F^&sL86u`okolbbRL2*+t%!A84%E;{dqsdL z*ciwFXMDsl%zQDv!g=McDoGv1T|r=kH>1hJnd9E9{tzFvT+DJ3q9{?`KSo3rPk<8f zn#fa;RFxl~PYLdp$m82vIIvb7b^gZdO zi-c$2SHtUoh5*6RMOB)ML~zIcgv%TsL<@Ep$N55{1Jt4Vgfa|~_oofz-?k1jwV_OV3I7Mr!mHN>0U!T|N z95pRcS9p-yQm9<)gPUh7re|b%i7Z@X1&fFiCQ=Ljf52#J!RybCJMk}~YPd)y@W(>w z?9cbSn+e_vUO_q2dL8;AbR&o3AE|?n3F%)(H$T&$-?MkF%ilLePA%H{zjXc`6N4F_ z=RVb%qc%LJ&OpGh@~JlRgC8eAvn`$!*)(-a58~>AGD5sPizvg7N>89?8L8Z`v``3P zHkaX#N(|=ijHuh2fC*Kqoxa3(H^m>I@kqEsftSo&gyvVX1jRBg^Grn6fSCMfVK5!b^)NOZQKBo}ri8HU3>W~74#HOuC!Sr0 z8JouSd9-yAza3XPtagRtRN2j1b4ZzJ%)Jj+3~lCj?g{;-$=NNeUNlZLn}$!Y=(0CC z9>QerV#jlyf!IH05yOfGhPmg*CSb+lSa?*A<^cgnZClV_D1fE62Wl6GuGKtU*k5WC z*p*C0=|r*lGTe2f9S533+PI~7P8v{U7n(9TNu84qLO531p|4wtfetB7jE1rTU~Gol z2D*l!Oh-jK*m}_Z$eWPS$va{;rF`&~%AGFu~)b$i}Yowh~og`cZH)SqZFi(%x3;J^7udcS8i%t=@`HdxoRiZ;a?VK1D3? zT}TXmADs1`=RW9Z)}P{%?reuqQG%Kr>vDyZ8+gkW+|P;SSHtOvJ6}?R!6{2}bYhNZ zkH7Vxm;8kOL7bEFwSm)9=NA>56s|WeskuXFu>{aCTJ_KEYSvj9giCi+MLvshOegQY z1LK`)=`B}~g?@cSD5l<58|_hhnhr&xbjI-J(k=rbn+q?_Mc<5I+qIK18uUqu&ZZ%L zK~Y^n14VjpB-&nA<7EEOTWv?hOlNC)L^=`&maY4mj`u4b*xKZfdxKM5$x4ksp8NyQ z@w_GCP0cVkFnB^N%I&|2r446QdboIus}vHAA1{U9QPl2 z@a1&xW_D)n4980N5FOQzI(+mMkyQ__31Aqpcp^mt3E}G|#s{&aRFi6fkgCV!Zo$p9 zHH=1O2IY|=Pv}w4MbG`T^;>|W1#q2}&B8xiOqd|-g0S&pj-F_mStC^EbCNfUKoh4l zVe-u!=T$>x0dkY$mt6%t&R7!dpceZBzmU(zg~u$7qgDj0pan&^EG?chwOTF+ne-HV zXv`J)jIbQ&){(8rBj!jaS|>L8_k3S>5z=GN;`s5!?L!qRhIEloP?cc$&Xn+Ku3j@k z8A;J!>7@Q(E8!f1KWKlUlp}6H$k+_mi^NjXr+`mBXsk=)5Uz!j7l$-K#M|7>y=$`6 zA3mMR!6r_7*>z7+imu;VI7Wb#sS{mWL}I_q zu$kA2CS>Dq%SdFHeqttuL+x1qtO?B~r3hAt57nfxvzp)yRv+-L94ze#G2ubH>D8{$ z<3HC_f{Cw74~@slTls*|4RMPc*;xS_O(L@AQLQ#GD-XQlhqba~y|838x>PpJwUK${ z!mU&*INCT2?n&m8FbiGi5tiaK%Q7mMmBJf7+~lrW^SANx!Z3y+ArXz?Y<_HQuGY25 zBP`&c0CEWvo-|!5`LQd~;S#g1g(*x35}gmWdmWs>=C-e5mqsq6C2PjEzXi~O+#g5n z5bL9@k|4IrDXeMsg=%+U*D3k43~SEQBo=$NUFDX+8$bDDWz+`Ucmjdgc|U8?GxiKP zNWxu?dc&4v7h!mLXUdRXctc&)o&XkR_q2goGd-%3&feAj>R-7r1nuC*P`0{#DNGxBVCOdj_zxlL%I$=**S}c|SgV}j?xgRd~39m_ImuI1} zdU;Kq{M)jlw_T~+ET39Z#Ju9|MwIj|Didwoox0M%`Osgh6*|S-)0~M}d!jcBsx$E) zvbD{RydDyq5I-B2vr$Zt<5;5QA+M%J8fj2zjsf}x?ZNnltYQ`mcgoBMz9pD(eI-#9lsuzPE6Q?QSD$O0>g0Y z8_>8>#D#JSYG?}qKi$+Le33ir3~-zWW;EGcB}xNOeku+W!7!UhcT*9EJUq#OLOVtp zwh>e2Ub*6DClIpm3drSLGT z>+=fJ*JcUZu}-i+eZzH`JFjelEGW>0ofnm?;kfWixi?mQWslPx*6If;X<+gu@)U3cakKlt+ODCgmfbq1d56Y*2%$dfH5c+gqS;YAv?3HFILFs-_@A@vH5>wLjI-k+D+o6 znKA7z52aFjpA1=9_kOJ4^SNH|{XQ_j=c6w^BwlB5=Eb(b!|VBEHkz3g>&rWn-tV;9 zU<&!kTaqEAFkE*=b$iKL?B9=^!9WeErx8*KhKxDA3t9qu=BgUV<8U7VrGhydRRcVMGiSBRpdfs~OI6Vd=w1-3mAgsMzax>#=~TNoW%r9ljsNtxc;BVR*b_GdRaG z?ApRQ_=I}jj6&+9)0L)>E$`{6cw`hScRA+AJo=~g_F zO;9>cYF{dyIWE_9F89|EocSE;QkjHMu04JfmKAFh*u41pVEWOe{t#2wJO9plmOhAT z%^7SSEI8C9Kk%FUoY)B^KYF5+znRgRAG-s)MMt}nzH@Xh#d-r=Ct@luoLXTS{-(YxHWr5lF5~%V5ug!l_d+%mL9( z-9DAF`F{xZr-kOQ+NRFK-mtZ1DVJVDKs00jOPxMk{CcHYKB%9kl01v^`CS#tbtl7n z#j1#L#76lJdwK&ga+(4;IYpsj3LMcHDGI3~oT;K>nvx&kuB7LyF^Z;^ZN-?|wf?nxsogEV1=jQI+7?zNDn;LSIEO;`2;!lnf&B{Ckz-G%evICA1C%44MeJ!WNZMM zjelsrqLp*H&kxIh)4$OwNK%Hs(7;Pss)3Rh)PGv#zWEKmkoj-uSHFj6F|gt}jvw|r z^f!7(@e33&@6BG(f)7glfsYKFXyB?*A!8BaG3!}=yOAGL2#xH92q^Z((}`U z1HDl0SDU-?GtfK9%O$EX2ZyuXsLjmXaRI&ku{H!29vFmbx4~&q5`Hc|L&7q z*yHzLFHYY0q)_xEXJUn$XRojWLtZfWsb=(CjesI&rU0SeYNQ2rBE(GVSP|AdTO*); zn@F&_XdfgGr%#FT5#rgQ8KLHka{63mk>g{HwO>m2UkkSu2i_Lqm!d_h2ihuY(%Qic zo}4$Tp(>hE)`rKZXbM_6Yl;7%92`)*%1*JNf>fLE+Ho?G{Uic={}7s5Ti6q2XZ9-^3BvX?14 zFs|lRp1>0<)u)R^nET>fzwL~k&qe^s=uRKZe%X0sXjJ>}AN1xP$O&R}%F$_Z^ ze?U=^FdZaJG$HW(P`SVeIjc_g@nG6+HE+bTqT?$^=# zJ7IQEEhQ$KiSIBt_9_zQo%u7`slW$o5CW!0-4BctI!1EqwB`>K+mE6b=&^>FJdd*x z5geO{&mcENf7iy#T+U^)376LtPU*YjS#k~a52>Nvfh06#$nYdEC1PJdhIlxgY6!I6 zoTZ2>80(wGcwct=30GKSD)6Cd{7lD6cq@_^&svVuoPG0R6HMSl_lfimb37*dg%QKcm4qc-OwUT_k#6BK+ zwFf7s;m%#JG(u!kdfYvD5|4$ASSsrHGnr0+fPP~E%ei!Fs@(|99d{Cj4ug=W0?e?Rwu%?j*!2ub_iFvpJ>%<*q_G(d}3Twq;bnkg&G6;|v zz-To&5;&9$*Zxr94mfy7C`TgVAvu1GF*k!ix)u!#X`jUk+6^4usw*S`EIzpljYC+} zCXSu6l$%Z>z9u&x$j!u%b%uQ29bTQDpKi{A3d#$HHfQ%k+nY=+dxSqXk6QNQ!6a+~yV!fMPPkQH;@tw3 z1Y9*$3_6bXl|QF_3C*La*I}ju?}N|iWU=2)uTDR?KwUOszUl8+1fB(qiFCH(hbXgPj!*@~oPy7CYB}T$lQ(^?nQu%;|G0SP&Y3p!oNLGl9cnu&twv}~k zp&P%zkN#1Itp{Nn!SR519!Hacp_kMw=YHTzE|{`mj}^ERcqLFJA~YiO0RGpjBof=8 z_WH%u%~h9AV*Uj9iASoiM2C~}En*c;89>NUTS))F>r7|-6#FWO%`{(NpKs{Km*4YO z@_6VrDeM57`E8vL8Wv19wq4Ru$`4Mg4|_kdGq$iPXFg#%aL00J0PFb? z+Gq$55h5IMUpg|Ii|WfoKR8i(KlX%dSf%ocqXc^+?k{VzR=~9fAKjEpA$A9mM~+<3 zMVXm3ZA3i)LVV~aNrPEt-exSf3%BY0Mzd&ZdzLO_Mv%3=)?Pqt84-m!_)hkktr-;QK(xf6rVz+}s^pSUr3^w6$O% rpn)0W%AP*R5Rfou&=3$XkWdg1YKpLM|Gg6ud{YBICWHSL1jPRX))a30 literal 0 HcmV?d00001 diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 54494c2197..5a006dc889 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -140,6 +140,14 @@ + + + + + + + + @@ -195,6 +203,13 @@ + + + + + + + @@ -275,6 +290,10 @@ + + + + From e9e61d799a4a43c7a791095f7479490132ccdfa1 Mon Sep 17 00:00:00 2001 From: Shad Storhaug Date: Thu, 18 Aug 2016 04:50:41 +0700 Subject: [PATCH 104/141] Ported Analysis.Hi, Analysis.Hu, Analysis.Hy, Analysis.Id, and Analysis.In namespaces + tests --- .../Analysis/Hi/HindiAnalyzer.cs | 257 ++++--- .../Analysis/Hi/HindiNormalizationFilter.cs | 80 ++- .../Hi/HindiNormalizationFilterFactory.cs | 87 ++- .../Analysis/Hi/HindiNormalizer.cs | 343 +++++----- .../Analysis/Hi/HindiStemFilter.cs | 71 +- .../Analysis/Hi/HindiStemFilterFactory.cs | 65 +- .../Analysis/Hi/HindiStemmer.cs | 95 ++- .../Analysis/Hi/stopwords.txt | 235 +++++++ .../Analysis/Hu/HungarianAnalyzer.cs | 220 +++--- .../Analysis/Hu/HungarianLightStemFilter.cs | 88 ++- .../Hu/HungarianLightStemFilterFactory.cs | 67 +- .../Analysis/Hu/HungarianLightStemmer.cs | 437 ++++++------ .../Analysis/Hy/ArmenianAnalyzer.cs | 215 +++--- .../Analysis/Hy/stopwords.txt | 46 ++ .../Analysis/Id/IndonesianAnalyzer.cs | 217 +++--- .../Analysis/Id/IndonesianStemFilter.cs | 106 ++- .../Id/IndonesianStemFilterFactory.cs | 71 +- .../Analysis/Id/IndonesianStemmer.cs | 629 +++++++++--------- .../Analysis/Id/stopwords.txt | 359 ++++++++++ .../Analysis/In/IndicNormalizationFilter.cs | 63 +- .../In/IndicNormalizationFilterFactory.cs | 86 ++- .../Analysis/In/IndicNormalizer.cs | 514 +++++++++----- .../Analysis/In/IndicTokenizer.cs | 66 +- .../Analysis/Snowball/hungarian_stop.txt | 211 ++++++ .../Lucene.Net.Analysis.Common.csproj | 32 + src/Lucene.Net.Core/Support/Character.cs | 19 + .../Analysis/Hi/TestHindiAnalyzer.cs | 87 ++- .../Analysis/Hi/TestHindiFilters.cs | 167 +++-- .../Analysis/Hi/TestHindiNormalizer.cs | 145 ++-- .../Analysis/Hi/TestHindiStemmer.cs | 208 +++--- .../Analysis/Hu/TestHungarianAnalyzer.cs | 95 ++- .../Hu/TestHungarianLightStemFilter.cs | 183 +++-- .../Hu/TestHungarianLightStemFilterFactory.cs | 73 +- .../Analysis/Hu/hulighttestdata.zip | Bin 0 -> 154405 bytes .../Analysis/Hy/TestArmenianAnalyzer.cs | 96 ++- .../Analysis/Id/TestIndonesianAnalyzer.cs | 95 ++- .../Id/TestIndonesianStemFilterFactory.cs | 102 ++- .../Analysis/Id/TestIndonesianStemmer.cs | 332 +++++---- .../Analysis/In/TestIndicNormalizer.cs | 109 ++- .../Lucene.Net.Tests.Analysis.Common.csproj | 13 + 40 files changed, 3682 insertions(+), 2702 deletions(-) create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Hi/stopwords.txt create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Hy/stopwords.txt create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Id/stopwords.txt create mode 100644 src/Lucene.Net.Analysis.Common/Analysis/Snowball/hungarian_stop.txt create mode 100644 src/Lucene.Net.Tests.Analysis.Common/Analysis/Hu/hulighttestdata.zip diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiAnalyzer.cs index c5f2b97ed2..f458bd5510 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiAnalyzer.cs @@ -1,9 +1,15 @@ -using System; +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.In; +using Lucene.Net.Analysis.Miscellaneous; +using Lucene.Net.Analysis.Standard; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using System; +using System.IO; -namespace org.apache.lucene.analysis.hi +namespace Lucene.Net.Analysis.Hi { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,139 +26,128 @@ namespace org.apache.lucene.analysis.hi * limitations under the License. */ + ///

    + public sealed class HindiAnalyzer : StopwordAnalyzerBase + { + private readonly CharArraySet stemExclusionSet; - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; - using StandardTokenizer = org.apache.lucene.analysis.standard.StandardTokenizer; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using StopwordAnalyzerBase = org.apache.lucene.analysis.util.StopwordAnalyzerBase; - using LowerCaseFilter = org.apache.lucene.analysis.core.LowerCaseFilter; - using StopFilter = org.apache.lucene.analysis.core.StopFilter; - using IndicNormalizationFilter = org.apache.lucene.analysis.@in.IndicNormalizationFilter; - using IndicTokenizer = org.apache.lucene.analysis.@in.IndicTokenizer; - using Version = org.apache.lucene.util.Version; - - /// - /// Analyzer for Hindi. - /// - /// - /// - /// You must specify the required - /// compatibility when creating HindiAnalyzer: - ///
      - ///
    • As of 3.6, StandardTokenizer is used for tokenization - ///
    - ///
    - ///
    - public sealed class HindiAnalyzer : StopwordAnalyzerBase - { - private readonly CharArraySet stemExclusionSet; - - /// - /// File containing default Hindi stopwords. - /// - /// Default stopword list is from http://members.unine.ch/jacques.savoy/clef/index.html - /// The stopword list is BSD-Licensed. - /// - public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; - private const string STOPWORDS_COMMENT = "#"; - - /// - /// Returns an unmodifiable instance of the default stop-words set. - /// an unmodifiable instance of the default stop-words set. - public static CharArraySet DefaultStopSet - { - get - { - return DefaultSetHolder.DEFAULT_STOP_SET; - } - } + /// + /// File containing default Hindi stopwords. + /// + /// Default stopword list is from http://members.unine.ch/jacques.savoy/clef/index.html + /// The stopword list is BSD-Licensed. + /// + public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; + private const string STOPWORDS_COMMENT = "#"; - /// - /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class - /// accesses the static final set the first time.; - /// - private class DefaultSetHolder - { - internal static readonly CharArraySet DEFAULT_STOP_SET; + /// + /// Returns an unmodifiable instance of the default stop-words set. + /// an unmodifiable instance of the default stop-words set. + public static CharArraySet DefaultStopSet + { + get + { + return DefaultSetHolder.DEFAULT_STOP_SET; + } + } - static DefaultSetHolder() - { - try - { - DEFAULT_STOP_SET = loadStopwordSet(false, typeof(HindiAnalyzer), DEFAULT_STOPWORD_FILE, STOPWORDS_COMMENT); - } - catch (IOException) - { - // default set should always be present as it is part of the - // distribution (JAR) - throw new Exception("Unable to load default stopword set"); - } - } - } + /// + /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class + /// accesses the static final set the first time.; + /// + private class DefaultSetHolder + { + internal static readonly CharArraySet DEFAULT_STOP_SET; - /// - /// Builds an analyzer with the given stop words - /// - /// lucene compatibility version - /// a stopword set - /// a stemming exclusion set - public HindiAnalyzer(Version version, CharArraySet stopwords, CharArraySet stemExclusionSet) : base(version, stopwords) - { - this.stemExclusionSet = CharArraySet.unmodifiableSet(CharArraySet.copy(matchVersion, stemExclusionSet)); - } + static DefaultSetHolder() + { + try + { + DEFAULT_STOP_SET = LoadStopwordSet(false, typeof(HindiAnalyzer), typeof(HindiAnalyzer).Namespace + "." + DEFAULT_STOPWORD_FILE, STOPWORDS_COMMENT); + } + catch (IOException) + { + // default set should always be present as it is part of the + // distribution (JAR) + throw new Exception("Unable to load default stopword set"); + } + } + } - /// - /// Builds an analyzer with the given stop words - /// - /// lucene compatibility version - /// a stopword set - public HindiAnalyzer(Version version, CharArraySet stopwords) : this(version, stopwords, CharArraySet.EMPTY_SET) - { - } + /// + /// Builds an analyzer with the given stop words + /// + /// lucene compatibility version + /// a stopword set + /// a stemming exclusion set + public HindiAnalyzer(LuceneVersion version, CharArraySet stopwords, CharArraySet stemExclusionSet) + : base(version, stopwords) + { + this.stemExclusionSet = CharArraySet.UnmodifiableSet(CharArraySet.Copy(matchVersion, stemExclusionSet)); + } - /// - /// Builds an analyzer with the default stop words: - /// . - /// - public HindiAnalyzer(Version version) : this(version, DefaultSetHolder.DEFAULT_STOP_SET) - { - } + /// + /// Builds an analyzer with the given stop words + /// + /// lucene compatibility version + /// a stopword set + public HindiAnalyzer(LuceneVersion version, CharArraySet stopwords) + : this(version, stopwords, CharArraySet.EMPTY_SET) + { + } - /// - /// Creates - /// - /// used to tokenize all the text in the provided . - /// - /// - /// built from a filtered with - /// , , - /// , - /// if a stem exclusion set is provided, , and - /// Hindi Stop words - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Tokenizer source; - Tokenizer source; - if (matchVersion.onOrAfter(Version.LUCENE_36)) - { - source = new StandardTokenizer(matchVersion, reader); - } - else - { - source = new IndicTokenizer(matchVersion, reader); - } - TokenStream result = new LowerCaseFilter(matchVersion, source); - if (!stemExclusionSet.Empty) - { - result = new SetKeywordMarkerFilter(result, stemExclusionSet); - } - result = new IndicNormalizationFilter(result); - result = new HindiNormalizationFilter(result); - result = new StopFilter(matchVersion, result, stopwords); - result = new HindiStemFilter(result); - return new TokenStreamComponents(source, result); - } - } + /// + /// Builds an analyzer with the default stop words: + /// . + /// + public HindiAnalyzer(LuceneVersion version) + : this(version, DefaultSetHolder.DEFAULT_STOP_SET) + { + } + /// + /// Creates + /// + /// used to tokenize all the text in the provided . + /// + /// + /// built from a filtered with + /// , , + /// , + /// if a stem exclusion set is provided, , and + /// Hindi Stop words + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer source; + if (matchVersion.OnOrAfter(LuceneVersion.LUCENE_36)) + { + source = new StandardTokenizer(matchVersion, reader); + } + else + { + source = new IndicTokenizer(matchVersion, reader); + } + TokenStream result = new LowerCaseFilter(matchVersion, source); + if (stemExclusionSet.Count > 0) + { + result = new SetKeywordMarkerFilter(result, stemExclusionSet); + } + result = new IndicNormalizationFilter(result); + result = new HindiNormalizationFilter(result); + result = new StopFilter(matchVersion, result, stopwords); + result = new HindiStemFilter(result); + return new TokenStreamComponents(source, result); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizationFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizationFilter.cs index 2d31f1dff5..93d2030e4e 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizationFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizationFilter.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.hi -{ +using Lucene.Net.Analysis.Tokenattributes; +using System.IO; - /* +namespace Lucene.Net.Analysis.Hi +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,45 +20,41 @@ * limitations under the License. */ - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; // javadoc @link - using KeywordAttribute = org.apache.lucene.analysis.tokenattributes.KeywordAttribute; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - - /// - /// A that applies to normalize the - /// orthography. - /// - /// In some cases the normalization may cause unrelated terms to conflate, so - /// to prevent terms from being normalized use an instance of - /// or a custom that sets - /// the before this . - /// - /// - public sealed class HindiNormalizationFilter : TokenFilter - { - - private readonly HindiNormalizer normalizer = new HindiNormalizer(); - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly KeywordAttribute keywordAtt = addAttribute(typeof(KeywordAttribute)); + /// + /// A that applies to normalize the + /// orthography. + /// + /// In some cases the normalization may cause unrelated terms to conflate, so + /// to prevent terms from being normalized use an instance of + /// or a custom that sets + /// the before this . + /// + /// + public sealed class HindiNormalizationFilter : TokenFilter + { - public HindiNormalizationFilter(TokenStream input) : base(input) - { - } + private readonly HindiNormalizer normalizer = new HindiNormalizer(); + private readonly ICharTermAttribute termAtt; + private readonly IKeywordAttribute keywordAtt; -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - if (!keywordAtt.Keyword) - { - termAtt.Length = normalizer.normalize(termAtt.buffer(), termAtt.length()); - } - return true; - } - return false; - } - } + public HindiNormalizationFilter(TokenStream input) + : base(input) + { + termAtt = AddAttribute(); + keywordAtt = AddAttribute(); + } + public override bool IncrementToken() + { + if (input.IncrementToken()) + { + if (!keywordAtt.Keyword) + { + termAtt.Length = normalizer.normalize(termAtt.Buffer(), termAtt.Length); + } + return true; + } + return false; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizationFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizationFilterFactory.cs index f18c1998f2..435177039d 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizationFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizationFilterFactory.cs @@ -1,9 +1,10 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; +using System.IO; -namespace org.apache.lucene.analysis.hi +namespace Lucene.Net.Analysis.Hi { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,45 +21,41 @@ namespace org.apache.lucene.analysis.hi * limitations under the License. */ - using AbstractAnalysisFactory = org.apache.lucene.analysis.util.AbstractAnalysisFactory; - using MultiTermAwareComponent = org.apache.lucene.analysis.util.MultiTermAwareComponent; - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_hinormal" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.HindiNormalizationFilterFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class HindiNormalizationFilterFactory : TokenFilterFactory, MultiTermAwareComponent - { - - /// - /// Creates a new HindiNormalizationFilterFactory - public HindiNormalizationFilterFactory(IDictionary args) : base(args) - { - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } - - public override TokenStream create(TokenStream input) - { - return new HindiNormalizationFilter(input); - } - - public virtual AbstractAnalysisFactory MultiTermComponent - { - get - { - return this; - } - } - } - + /// + /// Factory for . + ///
    +    /// <fieldType name="text_hinormal" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.HindiNormalizationFilterFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class HindiNormalizationFilterFactory : TokenFilterFactory, IMultiTermAwareComponent + { + + /// + /// Creates a new HindiNormalizationFilterFactory + public HindiNormalizationFilterFactory(IDictionary args) + : base(args) + { + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + + public override TokenStream Create(TokenStream input) + { + return new HindiNormalizationFilter(input); + } + + public virtual AbstractAnalysisFactory MultiTermComponent + { + get + { + return this; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizer.cs index ebd674b2a8..7164490224 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiNormalizer.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.hi -{ +using Lucene.Net.Analysis.Util; +using System.IO; - /* +namespace Lucene.Net.Analysis.Hi +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,176 +20,171 @@ * limitations under the License. */ - using org.apache.lucene.analysis.util; -//JAVA TO C# CONVERTER TODO TASK: This Java 'import static' statement cannot be converted to C#: -// import static org.apache.lucene.analysis.util.StemmerUtil.*; - - /// - /// Normalizer for Hindi. - /// - /// Normalizes text to remove some differences in spelling variations. - /// - /// - /// Implements the Hindi-language specific algorithm specified in: - /// Word normalization in Indian languages - /// Prasad Pingali and Vasudeva Varma. - /// http://web2py.iiit.ac.in/publications/default/download/inproceedings.pdf.3fe5b38c-02ee-41ce-9a8f-3e745670be32.pdf - /// - /// - /// with the following additions from Hindi CLIR in Thirty Days - /// Leah S. Larkey, Margaret E. Connell, and Nasreen AbdulJaleel. - /// http://maroo.cs.umass.edu/pub/web/getpdf.php?id=454: - ///
      - ///
    • Internal Zero-width joiner and Zero-width non-joiners are removed - ///
    • In addition to chandrabindu, NA+halant is normalized to anusvara - ///
    - /// - ///
    - ///
    - public class HindiNormalizer - { - /// - /// Normalize an input buffer of Hindi text - /// - /// input buffer - /// length of input buffer - /// length of input buffer after normalization - public virtual int normalize(char[] s, int len) - { - - for (int i = 0; i < len; i++) - { - switch (s[i]) - { - // dead n -> bindu - case '\u0928': - if (i + 1 < len && s[i + 1] == '\u094D') - { - s[i] = '\u0902'; - len = StemmerUtil.delete(s, i + 1, len); - } - break; - // candrabindu -> bindu - case '\u0901': - s[i] = '\u0902'; - break; - // nukta deletions - case '\u093C': - len = StemmerUtil.delete(s, i, len); - i--; - break; - case '\u0929': - s[i] = '\u0928'; - break; - case '\u0931': - s[i] = '\u0930'; - break; - case '\u0934': - s[i] = '\u0933'; - break; - case '\u0958': - s[i] = '\u0915'; - break; - case '\u0959': - s[i] = '\u0916'; - break; - case '\u095A': - s[i] = '\u0917'; - break; - case '\u095B': - s[i] = '\u091C'; - break; - case '\u095C': - s[i] = '\u0921'; - break; - case '\u095D': - s[i] = '\u0922'; - break; - case '\u095E': - s[i] = '\u092B'; - break; - case '\u095F': - s[i] = '\u092F'; - break; - // zwj/zwnj -> delete - case '\u200D': - case '\u200C': - len = StemmerUtil.delete(s, i, len); - i--; - break; - // virama -> delete - case '\u094D': - len = StemmerUtil.delete(s, i, len); - i--; - break; - // chandra/short -> replace - case '\u0945': - case '\u0946': - s[i] = '\u0947'; - break; - case '\u0949': - case '\u094A': - s[i] = '\u094B'; - break; - case '\u090D': - case '\u090E': - s[i] = '\u090F'; - break; - case '\u0911': - case '\u0912': - s[i] = '\u0913'; - break; - case '\u0972': - s[i] = '\u0905'; - break; - // long -> short ind. vowels - case '\u0906': - s[i] = '\u0905'; - break; - case '\u0908': - s[i] = '\u0907'; - break; - case '\u090A': - s[i] = '\u0909'; - break; - case '\u0960': - s[i] = '\u090B'; - break; - case '\u0961': - s[i] = '\u090C'; - break; - case '\u0910': - s[i] = '\u090F'; - break; - case '\u0914': - s[i] = '\u0913'; - break; - // long -> short dep. vowels - case '\u0940': - s[i] = '\u093F'; - break; - case '\u0942': - s[i] = '\u0941'; - break; - case '\u0944': - s[i] = '\u0943'; - break; - case '\u0963': - s[i] = '\u0962'; - break; - case '\u0948': - s[i] = '\u0947'; - break; - case '\u094C': - s[i] = '\u094B'; - break; - default: - break; - } - } + /// + /// Normalizer for Hindi. + /// + /// Normalizes text to remove some differences in spelling variations. + /// + /// + /// Implements the Hindi-language specific algorithm specified in: + /// Word normalization in Indian languages + /// Prasad Pingali and Vasudeva Varma. + /// http://web2py.iiit.ac.in/publications/default/download/inproceedings.pdf.3fe5b38c-02ee-41ce-9a8f-3e745670be32.pdf + /// + /// + /// with the following additions from Hindi CLIR in Thirty Days + /// Leah S. Larkey, Margaret E. Connell, and Nasreen AbdulJaleel. + /// http://maroo.cs.umass.edu/pub/web/getpdf.php?id=454: + ///
      + ///
    • Internal Zero-width joiner and Zero-width non-joiners are removed + ///
    • In addition to chandrabindu, NA+halant is normalized to anusvara + ///
    + /// + ///
    + ///
    + public class HindiNormalizer + { + /// + /// Normalize an input buffer of Hindi text + /// + /// input buffer + /// length of input buffer + /// length of input buffer after normalization + public virtual int normalize(char[] s, int len) + { - return len; - } - } + for (int i = 0; i < len; i++) + { + switch (s[i]) + { + // dead n -> bindu + case '\u0928': + if (i + 1 < len && s[i + 1] == '\u094D') + { + s[i] = '\u0902'; + len = StemmerUtil.Delete(s, i + 1, len); + } + break; + // candrabindu -> bindu + case '\u0901': + s[i] = '\u0902'; + break; + // nukta deletions + case '\u093C': + len = StemmerUtil.Delete(s, i, len); + i--; + break; + case '\u0929': + s[i] = '\u0928'; + break; + case '\u0931': + s[i] = '\u0930'; + break; + case '\u0934': + s[i] = '\u0933'; + break; + case '\u0958': + s[i] = '\u0915'; + break; + case '\u0959': + s[i] = '\u0916'; + break; + case '\u095A': + s[i] = '\u0917'; + break; + case '\u095B': + s[i] = '\u091C'; + break; + case '\u095C': + s[i] = '\u0921'; + break; + case '\u095D': + s[i] = '\u0922'; + break; + case '\u095E': + s[i] = '\u092B'; + break; + case '\u095F': + s[i] = '\u092F'; + break; + // zwj/zwnj -> delete + case '\u200D': + case '\u200C': + len = StemmerUtil.Delete(s, i, len); + i--; + break; + // virama -> delete + case '\u094D': + len = StemmerUtil.Delete(s, i, len); + i--; + break; + // chandra/short -> replace + case '\u0945': + case '\u0946': + s[i] = '\u0947'; + break; + case '\u0949': + case '\u094A': + s[i] = '\u094B'; + break; + case '\u090D': + case '\u090E': + s[i] = '\u090F'; + break; + case '\u0911': + case '\u0912': + s[i] = '\u0913'; + break; + case '\u0972': + s[i] = '\u0905'; + break; + // long -> short ind. vowels + case '\u0906': + s[i] = '\u0905'; + break; + case '\u0908': + s[i] = '\u0907'; + break; + case '\u090A': + s[i] = '\u0909'; + break; + case '\u0960': + s[i] = '\u090B'; + break; + case '\u0961': + s[i] = '\u090C'; + break; + case '\u0910': + s[i] = '\u090F'; + break; + case '\u0914': + s[i] = '\u0913'; + break; + // long -> short dep. vowels + case '\u0940': + s[i] = '\u093F'; + break; + case '\u0942': + s[i] = '\u0941'; + break; + case '\u0944': + s[i] = '\u0943'; + break; + case '\u0963': + s[i] = '\u0962'; + break; + case '\u0948': + s[i] = '\u0947'; + break; + case '\u094C': + s[i] = '\u094B'; + break; + default: + break; + } + } + return len; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemFilter.cs index 9098b6639a..fbdfc74cc9 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemFilter.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.hi -{ +using Lucene.Net.Analysis.Tokenattributes; +using System.IO; - /* +namespace Lucene.Net.Analysis.Hi +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,39 +20,36 @@ * limitations under the License. */ - using KeywordAttribute = org.apache.lucene.analysis.tokenattributes.KeywordAttribute; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - - /// - /// A that applies to stem Hindi words. - /// - public sealed class HindiStemFilter : TokenFilter - { - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly KeywordAttribute keywordAtt = addAttribute(typeof(KeywordAttribute)); - private readonly HindiStemmer stemmer = new HindiStemmer(); - - public HindiStemFilter(TokenStream input) : base(input) - { - } + /// + /// A that applies to stem Hindi words. + /// + public sealed class HindiStemFilter : TokenFilter + { + private readonly ICharTermAttribute termAtt; + private readonly IKeywordAttribute keywordAtt; + private readonly HindiStemmer stemmer = new HindiStemmer(); -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - if (!keywordAtt.Keyword) - { - termAtt.Length = stemmer.stem(termAtt.buffer(), termAtt.length()); - } - return true; - } - else - { - return false; - } - } - } + public HindiStemFilter(TokenStream input) + : base(input) + { + termAtt = AddAttribute(); + keywordAtt = AddAttribute(); + } + public override bool IncrementToken() + { + if (input.IncrementToken()) + { + if (!keywordAtt.Keyword) + { + termAtt.Length = stemmer.stem(termAtt.Buffer(), termAtt.Length); + } + return true; + } + else + { + return false; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemFilterFactory.cs index 4f068b3a68..1a037c1c6e 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemFilterFactory.cs @@ -1,9 +1,10 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; +using System.IO; -namespace org.apache.lucene.analysis.hi +namespace Lucene.Net.Analysis.Hi { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,35 +21,33 @@ namespace org.apache.lucene.analysis.hi * limitations under the License. */ - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_histem" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.HindiStemFilterFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class HindiStemFilterFactory : TokenFilterFactory - { - - /// - /// Creates a new HindiStemFilterFactory - public HindiStemFilterFactory(IDictionary args) : base(args) - { - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + /// + /// Factory for . + ///
    +    /// <fieldType name="text_histem" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.HindiStemFilterFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class HindiStemFilterFactory : TokenFilterFactory + { - public override TokenStream create(TokenStream input) - { - return new HindiStemFilter(input); - } - } + /// + /// Creates a new HindiStemFilterFactory + public HindiStemFilterFactory(IDictionary args) + : base(args) + { + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override TokenStream Create(TokenStream input) + { + return new HindiStemFilter(input); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemmer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemmer.cs index b177a31b73..5b96e90208 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemmer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hi/HindiStemmer.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.hi -{ +using Lucene.Net.Analysis.Util; +using System.IO; - /* +namespace Lucene.Net.Analysis.Hi +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,54 +20,49 @@ * limitations under the License. */ - using org.apache.lucene.analysis.util; -//JAVA TO C# CONVERTER TODO TASK: This Java 'import static' statement cannot be converted to C#: -// import static org.apache.lucene.analysis.util.StemmerUtil.*; - - /// - /// Light Stemmer for Hindi. - /// - /// Implements the algorithm specified in: - /// A Lightweight Stemmer for Hindi - /// Ananthakrishnan Ramanathan and Durgesh D Rao. - /// http://computing.open.ac.uk/Sites/EACLSouthAsia/Papers/p6-Ramanathan.pdf - /// - /// - public class HindiStemmer - { - public virtual int stem(char[] buffer, int len) - { - // 5 - if ((len > 6) && (StemmerUtil.EndsWith(buffer, len, "ाएंगी") || StemmerUtil.EndsWith(buffer, len, "ाएंगे") || StemmerUtil.EndsWith(buffer, len, "ाऊंगी") || StemmerUtil.EndsWith(buffer, len, "ाऊंगा") || StemmerUtil.EndsWith(buffer, len, "ाइयाँ") || StemmerUtil.EndsWith(buffer, len, "ाइयों") || StemmerUtil.EndsWith(buffer, len, "ाइयां"))) - { - return len - 5; - } - - // 4 - if ((len > 5) && (StemmerUtil.EndsWith(buffer, len, "ाएगी") || StemmerUtil.EndsWith(buffer, len, "ाएगा") || StemmerUtil.EndsWith(buffer, len, "ाओगी") || StemmerUtil.EndsWith(buffer, len, "ाओगे") || StemmerUtil.EndsWith(buffer, len, "एंगी") || StemmerUtil.EndsWith(buffer, len, "ेंगी") || StemmerUtil.EndsWith(buffer, len, "एंगे") || StemmerUtil.EndsWith(buffer, len, "ेंगे") || StemmerUtil.EndsWith(buffer, len, "ूंगी") || StemmerUtil.EndsWith(buffer, len, "ूंगा") || StemmerUtil.EndsWith(buffer, len, "ातीं") || StemmerUtil.EndsWith(buffer, len, "नाओं") || StemmerUtil.EndsWith(buffer, len, "नाएं") || StemmerUtil.EndsWith(buffer, len, "ताओं") || StemmerUtil.EndsWith(buffer, len, "ताएं") || StemmerUtil.EndsWith(buffer, len, "ियाँ") || StemmerUtil.EndsWith(buffer, len, "ियों") || StemmerUtil.EndsWith(buffer, len, "ियां"))) - { - return len - 4; - } + /// + /// Light Stemmer for Hindi. + /// + /// Implements the algorithm specified in: + /// A Lightweight Stemmer for Hindi + /// Ananthakrishnan Ramanathan and Durgesh D Rao. + /// http://computing.open.ac.uk/Sites/EACLSouthAsia/Papers/p6-Ramanathan.pdf + /// + /// + public class HindiStemmer + { + public virtual int stem(char[] buffer, int len) + { + // 5 + if ((len > 6) && (StemmerUtil.EndsWith(buffer, len, "ाएंगी") || StemmerUtil.EndsWith(buffer, len, "ाएंगे") || StemmerUtil.EndsWith(buffer, len, "ाऊंगी") || StemmerUtil.EndsWith(buffer, len, "ाऊंगा") || StemmerUtil.EndsWith(buffer, len, "ाइयाँ") || StemmerUtil.EndsWith(buffer, len, "ाइयों") || StemmerUtil.EndsWith(buffer, len, "ाइयां"))) + { + return len - 5; + } - // 3 - if ((len > 4) && (StemmerUtil.EndsWith(buffer, len, "ाकर") || StemmerUtil.EndsWith(buffer, len, "ाइए") || StemmerUtil.EndsWith(buffer, len, "ाईं") || StemmerUtil.EndsWith(buffer, len, "ाया") || StemmerUtil.EndsWith(buffer, len, "ेगी") || StemmerUtil.EndsWith(buffer, len, "ेगा") || StemmerUtil.EndsWith(buffer, len, "ोगी") || StemmerUtil.EndsWith(buffer, len, "ोगे") || StemmerUtil.EndsWith(buffer, len, "ाने") || StemmerUtil.EndsWith(buffer, len, "ाना") || StemmerUtil.EndsWith(buffer, len, "ाते") || StemmerUtil.EndsWith(buffer, len, "ाती") || StemmerUtil.EndsWith(buffer, len, "ाता") || StemmerUtil.EndsWith(buffer, len, "तीं") || StemmerUtil.EndsWith(buffer, len, "ाओं") || StemmerUtil.EndsWith(buffer, len, "ाएं") || StemmerUtil.EndsWith(buffer, len, "ुओं") || StemmerUtil.EndsWith(buffer, len, "ुएं") || StemmerUtil.EndsWith(buffer, len, "ुआं"))) - { - return len - 3; - } + // 4 + if ((len > 5) && (StemmerUtil.EndsWith(buffer, len, "ाएगी") || StemmerUtil.EndsWith(buffer, len, "ाएगा") || StemmerUtil.EndsWith(buffer, len, "ाओगी") || StemmerUtil.EndsWith(buffer, len, "ाओगे") || StemmerUtil.EndsWith(buffer, len, "एंगी") || StemmerUtil.EndsWith(buffer, len, "ेंगी") || StemmerUtil.EndsWith(buffer, len, "एंगे") || StemmerUtil.EndsWith(buffer, len, "ेंगे") || StemmerUtil.EndsWith(buffer, len, "ूंगी") || StemmerUtil.EndsWith(buffer, len, "ूंगा") || StemmerUtil.EndsWith(buffer, len, "ातीं") || StemmerUtil.EndsWith(buffer, len, "नाओं") || StemmerUtil.EndsWith(buffer, len, "नाएं") || StemmerUtil.EndsWith(buffer, len, "ताओं") || StemmerUtil.EndsWith(buffer, len, "ताएं") || StemmerUtil.EndsWith(buffer, len, "ियाँ") || StemmerUtil.EndsWith(buffer, len, "ियों") || StemmerUtil.EndsWith(buffer, len, "ियां"))) + { + return len - 4; + } - // 2 - if ((len > 3) && (StemmerUtil.EndsWith(buffer, len, "कर") || StemmerUtil.EndsWith(buffer, len, "ाओ") || StemmerUtil.EndsWith(buffer, len, "िए") || StemmerUtil.EndsWith(buffer, len, "ाई") || StemmerUtil.EndsWith(buffer, len, "ाए") || StemmerUtil.EndsWith(buffer, len, "ने") || StemmerUtil.EndsWith(buffer, len, "नी") || StemmerUtil.EndsWith(buffer, len, "ना") || StemmerUtil.EndsWith(buffer, len, "ते") || StemmerUtil.EndsWith(buffer, len, "ीं") || StemmerUtil.EndsWith(buffer, len, "ती") || StemmerUtil.EndsWith(buffer, len, "ता") || StemmerUtil.EndsWith(buffer, len, "ाँ") || StemmerUtil.EndsWith(buffer, len, "ां") || StemmerUtil.EndsWith(buffer, len, "ों") || StemmerUtil.EndsWith(buffer, len, "ें"))) - { - return len - 2; - } + // 3 + if ((len > 4) && (StemmerUtil.EndsWith(buffer, len, "ाकर") || StemmerUtil.EndsWith(buffer, len, "ाइए") || StemmerUtil.EndsWith(buffer, len, "ाईं") || StemmerUtil.EndsWith(buffer, len, "ाया") || StemmerUtil.EndsWith(buffer, len, "ेगी") || StemmerUtil.EndsWith(buffer, len, "ेगा") || StemmerUtil.EndsWith(buffer, len, "ोगी") || StemmerUtil.EndsWith(buffer, len, "ोगे") || StemmerUtil.EndsWith(buffer, len, "ाने") || StemmerUtil.EndsWith(buffer, len, "ाना") || StemmerUtil.EndsWith(buffer, len, "ाते") || StemmerUtil.EndsWith(buffer, len, "ाती") || StemmerUtil.EndsWith(buffer, len, "ाता") || StemmerUtil.EndsWith(buffer, len, "तीं") || StemmerUtil.EndsWith(buffer, len, "ाओं") || StemmerUtil.EndsWith(buffer, len, "ाएं") || StemmerUtil.EndsWith(buffer, len, "ुओं") || StemmerUtil.EndsWith(buffer, len, "ुएं") || StemmerUtil.EndsWith(buffer, len, "ुआं"))) + { + return len - 3; + } - // 1 - if ((len > 2) && (StemmerUtil.EndsWith(buffer, len, "ो") || StemmerUtil.EndsWith(buffer, len, "े") || StemmerUtil.EndsWith(buffer, len, "ू") || StemmerUtil.EndsWith(buffer, len, "ु") || StemmerUtil.EndsWith(buffer, len, "ी") || StemmerUtil.EndsWith(buffer, len, "ि") || StemmerUtil.EndsWith(buffer, len, "ा"))) - { - return len - 1; - } - return len; - } - } + // 2 + if ((len > 3) && (StemmerUtil.EndsWith(buffer, len, "कर") || StemmerUtil.EndsWith(buffer, len, "ाओ") || StemmerUtil.EndsWith(buffer, len, "िए") || StemmerUtil.EndsWith(buffer, len, "ाई") || StemmerUtil.EndsWith(buffer, len, "ाए") || StemmerUtil.EndsWith(buffer, len, "ने") || StemmerUtil.EndsWith(buffer, len, "नी") || StemmerUtil.EndsWith(buffer, len, "ना") || StemmerUtil.EndsWith(buffer, len, "ते") || StemmerUtil.EndsWith(buffer, len, "ीं") || StemmerUtil.EndsWith(buffer, len, "ती") || StemmerUtil.EndsWith(buffer, len, "ता") || StemmerUtil.EndsWith(buffer, len, "ाँ") || StemmerUtil.EndsWith(buffer, len, "ां") || StemmerUtil.EndsWith(buffer, len, "ों") || StemmerUtil.EndsWith(buffer, len, "ें"))) + { + return len - 2; + } + // 1 + if ((len > 2) && (StemmerUtil.EndsWith(buffer, len, "ो") || StemmerUtil.EndsWith(buffer, len, "े") || StemmerUtil.EndsWith(buffer, len, "ू") || StemmerUtil.EndsWith(buffer, len, "ु") || StemmerUtil.EndsWith(buffer, len, "ी") || StemmerUtil.EndsWith(buffer, len, "ि") || StemmerUtil.EndsWith(buffer, len, "ा"))) + { + return len - 1; + } + return len; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hi/stopwords.txt b/src/Lucene.Net.Analysis.Common/Analysis/Hi/stopwords.txt new file mode 100644 index 0000000000..86286bb083 --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hi/stopwords.txt @@ -0,0 +1,235 @@ +# Also see http://www.opensource.org/licenses/bsd-license.html +# See http://members.unine.ch/jacques.savoy/clef/index.html. +# This file was created by Jacques Savoy and is distributed under the BSD license. +# Note: by default this file also contains forms normalized by HindiNormalizer +# for spelling variation (see section below), such that it can be used whether or +# not you enable that feature. When adding additional entries to this list, +# please add the normalized form as well. +अंदर +अत +अपना +अपनी +अपने +अभी +आदि +आप +इत्यादि +इन +इनका +इन्हीं +इन्हें +इन्हों +इस +इसका +इसकी +इसके +इसमें +इसी +इसे +उन +उनका +उनकी +उनके +उनको +उन्हीं +उन्हें +उन्हों +उस +उसके +उसी +उसे +एक +एवं +एस +ऐसे +और +कई +कर +करता +करते +करना +करने +करें +कहते +कहा +का +काफ़ी +कि +कितना +किन्हें +किन्हों +किया +किर +किस +किसी +किसे +की +कुछ +कुल +के +को +कोई +कौन +कौनसा +गया +घर +जब +जहाँ +जा +जितना +जिन +जिन्हें +जिन्हों +जिस +जिसे +जीधर +जैसा +जैसे +जो +तक +तब +तरह +तिन +तिन्हें +तिन्हों +तिस +तिसे +तो +था +थी +थे +दबारा +दिया +दुसरा +दूसरे +दो +द्वारा +न +नहीं +ना +निहायत +नीचे +ने +पर +पर +पहले +पूरा +पे +फिर +बनी +बही +बहुत +बाद +बाला +बिलकुल +भी +भीतर +मगर +मानो +मे +में +यदि +यह +यहाँ +यही +या +यिह +ये +रखें +रहा +रहे +ऱ्वासा +लिए +लिये +लेकिन +व +वर्ग +वह +वह +वहाँ +वहीं +वाले +वुह +वे +वग़ैरह +संग +सकता +सकते +सबसे +सभी +साथ +साबुत +साभ +सारा +से +सो +ही +हुआ +हुई +हुए +है +हैं +हो +होता +होती +होते +होना +होने +# additional normalized forms of the above +अपनि +जेसे +होति +सभि +तिंहों +इंहों +दवारा +इसि +किंहें +थि +उंहों +ओर +जिंहें +वहिं +अभि +बनि +हि +उंहिं +उंहें +हें +वगेरह +एसे +रवासा +कोन +निचे +काफि +उसि +पुरा +भितर +हे +बहि +वहां +कोइ +यहां +जिंहों +तिंहें +किसि +कइ +यहि +इंहिं +जिधर +इंहें +अदि +इतयादि +हुइ +कोनसा +इसकि +दुसरे +जहां +अप +किंहों +उनकि +भि +वरग +हुअ +जेसा +नहिं diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianAnalyzer.cs index a47d86affc..95a79a88b5 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianAnalyzer.cs @@ -1,9 +1,17 @@ -using System; +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Miscellaneous; +using Lucene.Net.Analysis.Snowball; +using Lucene.Net.Analysis.Standard; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Tartarus.Snowball.Ext; +using Lucene.Net.Util; +using System; +using System.IO; +using System.Text; -namespace org.apache.lucene.analysis.hu +namespace Lucene.Net.Analysis.Hu { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,120 +28,108 @@ namespace org.apache.lucene.analysis.hu * limitations under the License. */ + /// + /// for Hungarian. + /// + public sealed class HungarianAnalyzer : StopwordAnalyzerBase + { + private readonly CharArraySet stemExclusionSet; - using LowerCaseFilter = org.apache.lucene.analysis.core.LowerCaseFilter; - using StopFilter = org.apache.lucene.analysis.core.StopFilter; - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; - using SnowballFilter = org.apache.lucene.analysis.snowball.SnowballFilter; - using StandardFilter = org.apache.lucene.analysis.standard.StandardFilter; - using StandardTokenizer = org.apache.lucene.analysis.standard.StandardTokenizer; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using StopwordAnalyzerBase = org.apache.lucene.analysis.util.StopwordAnalyzerBase; - using WordlistLoader = org.apache.lucene.analysis.util.WordlistLoader; - using IOUtils = org.apache.lucene.util.IOUtils; - using Version = org.apache.lucene.util.Version; - using HungarianStemmer = org.tartarus.snowball.ext.HungarianStemmer; - - /// - /// for Hungarian. - /// - public sealed class HungarianAnalyzer : StopwordAnalyzerBase - { - private readonly CharArraySet stemExclusionSet; - - /// - /// File containing default Hungarian stopwords. - public const string DEFAULT_STOPWORD_FILE = "hungarian_stop.txt"; - - /// - /// Returns an unmodifiable instance of the default stop words set. - /// default stop words set. - public static CharArraySet DefaultStopSet - { - get - { - return DefaultSetHolder.DEFAULT_STOP_SET; - } - } + /// + /// File containing default Hungarian stopwords. + public const string DEFAULT_STOPWORD_FILE = "hungarian_stop.txt"; - /// - /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class - /// accesses the static final set the first time.; - /// - private class DefaultSetHolder - { - internal static readonly CharArraySet DEFAULT_STOP_SET; + /// + /// Returns an unmodifiable instance of the default stop words set. + /// default stop words set. + public static CharArraySet DefaultStopSet + { + get + { + return DefaultSetHolder.DEFAULT_STOP_SET; + } + } - static DefaultSetHolder() - { - try - { - DEFAULT_STOP_SET = WordlistLoader.getSnowballWordSet(IOUtils.getDecodingReader(typeof(SnowballFilter), DEFAULT_STOPWORD_FILE, StandardCharsets.UTF_8), Version.LUCENE_CURRENT); - } - catch (IOException) - { - // default set should always be present as it is part of the - // distribution (JAR) - throw new Exception("Unable to load default stopword set"); - } - } - } + /// + /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class + /// accesses the static final set the first time.; + /// + private class DefaultSetHolder + { + internal static readonly CharArraySet DEFAULT_STOP_SET; - /// - /// Builds an analyzer with the default stop words: . - /// - public HungarianAnalyzer(Version matchVersion) : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET) - { - } + static DefaultSetHolder() + { + try + { + DEFAULT_STOP_SET = WordlistLoader.GetSnowballWordSet( + IOUtils.GetDecodingReader(typeof(SnowballFilter), typeof(SnowballFilter).Namespace + "." + DEFAULT_STOPWORD_FILE, Encoding.UTF8), + LuceneVersion.LUCENE_CURRENT); + } + catch (IOException) + { + // default set should always be present as it is part of the + // distribution (JAR) + throw new Exception("Unable to load default stopword set"); + } + } + } - /// - /// Builds an analyzer with the given stop words. - /// - /// lucene compatibility version - /// a stopword set - public HungarianAnalyzer(Version matchVersion, CharArraySet stopwords) : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) - { - } + /// + /// Builds an analyzer with the default stop words: . + /// + public HungarianAnalyzer(LuceneVersion matchVersion) + : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET) + { + } - /// - /// Builds an analyzer with the given stop words. If a non-empty stem exclusion set is - /// provided this analyzer will add a before - /// stemming. - /// - /// lucene compatibility version - /// a stopword set - /// a set of terms not to be stemmed - public HungarianAnalyzer(Version matchVersion, CharArraySet stopwords, CharArraySet stemExclusionSet) : base(matchVersion, stopwords) - { - this.stemExclusionSet = CharArraySet.unmodifiableSet(CharArraySet.copy(matchVersion, stemExclusionSet)); - } + /// + /// Builds an analyzer with the given stop words. + /// + /// lucene compatibility version + /// a stopword set + public HungarianAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords) + : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) + { + } - /// - /// Creates a - /// - /// which tokenizes all the text in the provided . - /// - /// A - /// - /// built from an filtered with - /// , , - /// , if a stem exclusion set is - /// provided and . - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Tokenizer source = new org.apache.lucene.analysis.standard.StandardTokenizer(matchVersion, reader); - Tokenizer source = new StandardTokenizer(matchVersion, reader); - TokenStream result = new StandardFilter(matchVersion, source); - result = new LowerCaseFilter(matchVersion, result); - result = new StopFilter(matchVersion, result, stopwords); - if (!stemExclusionSet.Empty) - { - result = new SetKeywordMarkerFilter(result, stemExclusionSet); - } - result = new SnowballFilter(result, new HungarianStemmer()); - return new TokenStreamComponents(source, result); - } - } + /// + /// Builds an analyzer with the given stop words. If a non-empty stem exclusion set is + /// provided this analyzer will add a before + /// stemming. + /// + /// lucene compatibility version + /// a stopword set + /// a set of terms not to be stemmed + public HungarianAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords, CharArraySet stemExclusionSet) + : base(matchVersion, stopwords) + { + this.stemExclusionSet = CharArraySet.UnmodifiableSet(CharArraySet.Copy(matchVersion, stemExclusionSet)); + } + /// + /// Creates a + /// + /// which tokenizes all the text in the provided . + /// + /// A + /// + /// built from an filtered with + /// , , + /// , if a stem exclusion set is + /// provided and . + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer source = new StandardTokenizer(matchVersion, reader); + TokenStream result = new StandardFilter(matchVersion, source); + result = new LowerCaseFilter(matchVersion, result); + result = new StopFilter(matchVersion, result, stopwords); + if (stemExclusionSet.Count > 0) + { + result = new SetKeywordMarkerFilter(result, stemExclusionSet); + } + result = new SnowballFilter(result, new HungarianStemmer()); + return new TokenStreamComponents(source, result); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemFilter.cs index c51040bd98..4eb49c16ef 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemFilter.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.hu -{ +using Lucene.Net.Analysis.Tokenattributes; +using System.IO; - /* +namespace Lucene.Net.Analysis.Hu +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,49 +20,43 @@ * limitations under the License. */ - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using KeywordAttribute = org.apache.lucene.analysis.tokenattributes.KeywordAttribute; - - /// - /// A that applies to stem - /// Hungarian words. - /// - /// To prevent terms from being stemmed use an instance of - /// or a custom that sets - /// the before this . - /// - /// - public sealed class HungarianLightStemFilter : TokenFilter - { - private readonly HungarianLightStemmer stemmer = new HungarianLightStemmer(); - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly KeywordAttribute keywordAttr = addAttribute(typeof(KeywordAttribute)); - - public HungarianLightStemFilter(TokenStream input) : base(input) - { - } + /// + /// A that applies to stem + /// Hungarian words. + /// + /// To prevent terms from being stemmed use an instance of + /// or a custom that sets + /// the before this . + /// + /// + public sealed class HungarianLightStemFilter : TokenFilter + { + private readonly HungarianLightStemmer stemmer = new HungarianLightStemmer(); + private readonly ICharTermAttribute termAtt; + private readonly IKeywordAttribute keywordAttr; -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - if (!keywordAttr.Keyword) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int newlen = stemmer.stem(termAtt.buffer(), termAtt.length()); - int newlen = stemmer.stem(termAtt.buffer(), termAtt.length()); - termAtt.Length = newlen; - } - return true; - } - else - { - return false; - } - } - } + public HungarianLightStemFilter(TokenStream input) + : base(input) + { + termAtt = AddAttribute(); + keywordAttr = AddAttribute(); + } + public override bool IncrementToken() + { + if (input.IncrementToken()) + { + if (!keywordAttr.Keyword) + { + int newlen = stemmer.stem(termAtt.Buffer(), termAtt.Length); + termAtt.Length = newlen; + } + return true; + } + else + { + return false; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemFilterFactory.cs index 090c64b052..d8f7c542fc 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemFilterFactory.cs @@ -1,9 +1,10 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; +using System.IO; -namespace org.apache.lucene.analysis.hu +namespace Lucene.Net.Analysis.Hu { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,36 +21,34 @@ namespace org.apache.lucene.analysis.hu * limitations under the License. */ - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_hulgtstem" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.LowerCaseFilterFactory"/>
    -	///     <filter class="solr.HungarianLightStemFilterFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class HungarianLightStemFilterFactory : TokenFilterFactory - { - - /// - /// Creates a new HungarianLightStemFilterFactory - public HungarianLightStemFilterFactory(IDictionary args) : base(args) - { - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + /// + /// Factory for . + ///
    +    /// <fieldType name="text_hulgtstem" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.LowerCaseFilterFactory"/>
    +    ///     <filter class="solr.HungarianLightStemFilterFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class HungarianLightStemFilterFactory : TokenFilterFactory + { - public override TokenStream create(TokenStream input) - { - return new HungarianLightStemFilter(input); - } - } + /// + /// Creates a new HungarianLightStemFilterFactory + public HungarianLightStemFilterFactory(IDictionary args) + : base(args) + { + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override TokenStream Create(TokenStream input) + { + return new HungarianLightStemFilter(input); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemmer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemmer.cs index eb292726c0..6a590aef6f 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemmer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hu/HungarianLightStemmer.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.hu -{ +using Lucene.Net.Analysis.Util; +using System.IO; - /* +namespace Lucene.Net.Analysis.Hu +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,14 +20,14 @@ * limitations under the License. */ - /* + /* * This algorithm is updated based on code located at: * http://members.unine.ch/jacques.savoy/clef/ * * Full copyright for that code follows: */ - /* + /* * Copyright (c) 2005, Jacques Savoy * All rights reserved. * @@ -53,240 +55,235 @@ * POSSIBILITY OF SUCH DAMAGE. */ - using org.apache.lucene.analysis.util; -//JAVA TO C# CONVERTER TODO TASK: This Java 'import static' statement cannot be converted to C#: -// import static org.apache.lucene.analysis.util.StemmerUtil.*; - - /// - /// Light Stemmer for Hungarian. - /// - /// This stemmer implements the "UniNE" algorithm in: - /// Light Stemming Approaches for the French, Portuguese, German and Hungarian Languages - /// Jacques Savoy - /// - /// - public class HungarianLightStemmer - { - public virtual int stem(char[] s, int len) - { - for (int i = 0; i < len; i++) - { - switch (s[i]) - { - case 'á': - s[i] = 'a'; - break; - case 'ë': - case 'é': - s[i] = 'e'; - break; - case 'í': - s[i] = 'i'; - break; - case 'ó': - case 'ő': - case 'õ': - case 'ö': - s[i] = 'o'; - break; - case 'ú': - case 'ű': - case 'ũ': - case 'û': - case 'ü': - s[i] = 'u'; - break; - } - } - - len = removeCase(s, len); - len = removePossessive(s, len); - len = removePlural(s, len); - return normalize(s, len); - } + /// + /// Light Stemmer for Hungarian. + /// + /// This stemmer implements the "UniNE" algorithm in: + /// Light Stemming Approaches for the French, Portuguese, German and Hungarian Languages + /// Jacques Savoy + /// + /// + public class HungarianLightStemmer + { + public virtual int stem(char[] s, int len) + { + for (int i = 0; i < len; i++) + { + switch (s[i]) + { + case 'á': + s[i] = 'a'; + break; + case 'ë': + case 'é': + s[i] = 'e'; + break; + case 'í': + s[i] = 'i'; + break; + case 'ó': + case 'ő': + case 'õ': + case 'ö': + s[i] = 'o'; + break; + case 'ú': + case 'ű': + case 'ũ': + case 'û': + case 'ü': + s[i] = 'u'; + break; + } + } - private int removeCase(char[] s, int len) - { - if (len > 6 && StemmerUtil.EndsWith(s, len, "kent")) - { - return len - 4; - } + len = removeCase(s, len); + len = removePossessive(s, len); + len = removePlural(s, len); + return normalize(s, len); + } - if (len > 5) - { - if (StemmerUtil.EndsWith(s, len, "nak") || StemmerUtil.EndsWith(s, len, "nek") || StemmerUtil.EndsWith(s, len, "val") || StemmerUtil.EndsWith(s, len, "vel") || StemmerUtil.EndsWith(s, len, "ert") || StemmerUtil.EndsWith(s, len, "rol") || StemmerUtil.EndsWith(s, len, "ban") || StemmerUtil.EndsWith(s, len, "ben") || StemmerUtil.EndsWith(s, len, "bol") || StemmerUtil.EndsWith(s, len, "nal") || StemmerUtil.EndsWith(s, len, "nel") || StemmerUtil.EndsWith(s, len, "hoz") || StemmerUtil.EndsWith(s, len, "hez") || StemmerUtil.EndsWith(s, len, "tol")) - { - return len - 3; - } + private int removeCase(char[] s, int len) + { + if (len > 6 && StemmerUtil.EndsWith(s, len, "kent")) + { + return len - 4; + } - if (StemmerUtil.EndsWith(s, len, "al") || StemmerUtil.EndsWith(s, len, "el")) - { - if (!isVowel(s[len - 3]) && s[len - 3] == s[len - 4]) - { - return len - 3; - } - } - } + if (len > 5) + { + if (StemmerUtil.EndsWith(s, len, "nak") || StemmerUtil.EndsWith(s, len, "nek") || StemmerUtil.EndsWith(s, len, "val") || StemmerUtil.EndsWith(s, len, "vel") || StemmerUtil.EndsWith(s, len, "ert") || StemmerUtil.EndsWith(s, len, "rol") || StemmerUtil.EndsWith(s, len, "ban") || StemmerUtil.EndsWith(s, len, "ben") || StemmerUtil.EndsWith(s, len, "bol") || StemmerUtil.EndsWith(s, len, "nal") || StemmerUtil.EndsWith(s, len, "nel") || StemmerUtil.EndsWith(s, len, "hoz") || StemmerUtil.EndsWith(s, len, "hez") || StemmerUtil.EndsWith(s, len, "tol")) + { + return len - 3; + } - if (len > 4) - { - if (StemmerUtil.EndsWith(s, len, "at") || StemmerUtil.EndsWith(s, len, "et") || StemmerUtil.EndsWith(s, len, "ot") || StemmerUtil.EndsWith(s, len, "va") || StemmerUtil.EndsWith(s, len, "ve") || StemmerUtil.EndsWith(s, len, "ra") || StemmerUtil.EndsWith(s, len, "re") || StemmerUtil.EndsWith(s, len, "ba") || StemmerUtil.EndsWith(s, len, "be") || StemmerUtil.EndsWith(s, len, "ul") || StemmerUtil.EndsWith(s, len, "ig")) - { - return len - 2; - } + if (StemmerUtil.EndsWith(s, len, "al") || StemmerUtil.EndsWith(s, len, "el")) + { + if (!isVowel(s[len - 3]) && s[len - 3] == s[len - 4]) + { + return len - 3; + } + } + } - if ((StemmerUtil.EndsWith(s, len, "on") || StemmerUtil.EndsWith(s, len, "en")) && !isVowel(s[len - 3])) - { - return len - 2; - } + if (len > 4) + { + if (StemmerUtil.EndsWith(s, len, "at") || StemmerUtil.EndsWith(s, len, "et") || StemmerUtil.EndsWith(s, len, "ot") || StemmerUtil.EndsWith(s, len, "va") || StemmerUtil.EndsWith(s, len, "ve") || StemmerUtil.EndsWith(s, len, "ra") || StemmerUtil.EndsWith(s, len, "re") || StemmerUtil.EndsWith(s, len, "ba") || StemmerUtil.EndsWith(s, len, "be") || StemmerUtil.EndsWith(s, len, "ul") || StemmerUtil.EndsWith(s, len, "ig")) + { + return len - 2; + } - switch (s[len - 1]) - { - case 't': - case 'n': - return len - 1; - case 'a': - case 'e': - if (s[len - 2] == s[len - 3] && !isVowel(s[len - 2])) - { - return len - 2; - } - } - } + if ((StemmerUtil.EndsWith(s, len, "on") || StemmerUtil.EndsWith(s, len, "en")) && !isVowel(s[len - 3])) + { + return len - 2; + } - return len; - } + switch (s[len - 1]) + { + case 't': + case 'n': + return len - 1; + case 'a': + case 'e': + if (s[len - 2] == s[len - 3] && !isVowel(s[len - 2])) + { + return len - 2; + } + break; + } + } - private int removePossessive(char[] s, int len) - { - if (len > 6) - { - if (!isVowel(s[len - 5]) && (StemmerUtil.EndsWith(s, len, "atok") || StemmerUtil.EndsWith(s, len, "otok") || StemmerUtil.EndsWith(s, len, "etek"))) - { - return len - 4; - } + return len; + } - if (StemmerUtil.EndsWith(s, len, "itek") || StemmerUtil.EndsWith(s, len, "itok")) - { - return len - 4; - } - } + private int removePossessive(char[] s, int len) + { + if (len > 6) + { + if (!isVowel(s[len - 5]) && (StemmerUtil.EndsWith(s, len, "atok") || StemmerUtil.EndsWith(s, len, "otok") || StemmerUtil.EndsWith(s, len, "etek"))) + { + return len - 4; + } - if (len > 5) - { - if (!isVowel(s[len - 4]) && (StemmerUtil.EndsWith(s, len, "unk") || StemmerUtil.EndsWith(s, len, "tok") || StemmerUtil.EndsWith(s, len, "tek"))) - { - return len - 3; - } + if (StemmerUtil.EndsWith(s, len, "itek") || StemmerUtil.EndsWith(s, len, "itok")) + { + return len - 4; + } + } - if (isVowel(s[len - 4]) && StemmerUtil.EndsWith(s, len, "juk")) - { - return len - 3; - } + if (len > 5) + { + if (!isVowel(s[len - 4]) && (StemmerUtil.EndsWith(s, len, "unk") || StemmerUtil.EndsWith(s, len, "tok") || StemmerUtil.EndsWith(s, len, "tek"))) + { + return len - 3; + } - if (StemmerUtil.EndsWith(s, len, "ink")) - { - return len - 3; - } - } + if (isVowel(s[len - 4]) && StemmerUtil.EndsWith(s, len, "juk")) + { + return len - 3; + } - if (len > 4) - { - if (!isVowel(s[len - 3]) && (StemmerUtil.EndsWith(s, len, "am") || StemmerUtil.EndsWith(s, len, "em") || StemmerUtil.EndsWith(s, len, "om") || StemmerUtil.EndsWith(s, len, "ad") || StemmerUtil.EndsWith(s, len, "ed") || StemmerUtil.EndsWith(s, len, "od") || StemmerUtil.EndsWith(s, len, "uk"))) - { - return len - 2; - } + if (StemmerUtil.EndsWith(s, len, "ink")) + { + return len - 3; + } + } - if (isVowel(s[len - 3]) && (StemmerUtil.EndsWith(s, len, "nk") || StemmerUtil.EndsWith(s, len, "ja") || StemmerUtil.EndsWith(s, len, "je"))) - { - return len - 2; - } + if (len > 4) + { + if (!isVowel(s[len - 3]) && (StemmerUtil.EndsWith(s, len, "am") || StemmerUtil.EndsWith(s, len, "em") || StemmerUtil.EndsWith(s, len, "om") || StemmerUtil.EndsWith(s, len, "ad") || StemmerUtil.EndsWith(s, len, "ed") || StemmerUtil.EndsWith(s, len, "od") || StemmerUtil.EndsWith(s, len, "uk"))) + { + return len - 2; + } - if (StemmerUtil.EndsWith(s, len, "im") || StemmerUtil.EndsWith(s, len, "id") || StemmerUtil.EndsWith(s, len, "ik")) - { - return len - 2; - } - } + if (isVowel(s[len - 3]) && (StemmerUtil.EndsWith(s, len, "nk") || StemmerUtil.EndsWith(s, len, "ja") || StemmerUtil.EndsWith(s, len, "je"))) + { + return len - 2; + } - if (len > 3) - { - switch (s[len - 1]) - { - case 'a': - case 'e': - if (!isVowel(s[len - 2])) - { - return len - 1; - } - break; - case 'm': - case 'd': - if (isVowel(s[len - 2])) - { - return len - 1; - } - break; - case 'i': - return len - 1; - } - } + if (StemmerUtil.EndsWith(s, len, "im") || StemmerUtil.EndsWith(s, len, "id") || StemmerUtil.EndsWith(s, len, "ik")) + { + return len - 2; + } + } - return len; - } + if (len > 3) + { + switch (s[len - 1]) + { + case 'a': + case 'e': + if (!isVowel(s[len - 2])) + { + return len - 1; + } + break; + case 'm': + case 'd': + if (isVowel(s[len - 2])) + { + return len - 1; + } + break; + case 'i': + return len - 1; + } + } -//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: -//ORIGINAL LINE: @SuppressWarnings("fallthrough") private int removePlural(char s[] , int len) - private int removePlural(char[] s, int len) - { - if (len > 3 && s[len - 1] == 'k') - { - switch (s[len - 2]) - { - case 'a': - case 'o': - case 'e': // intentional fallthru - if (len > 4) - { - return len - 2; - } - default: - return len - 1; - } - } - return len; - } + return len; + } - private int normalize(char[] s, int len) - { - if (len > 3) - { - switch (s[len - 1]) - { - case 'a': - case 'e': - case 'i': - case 'o': - return len - 1; - } - } - return len; - } + private int removePlural(char[] s, int len) + { + if (len > 3 && s[len - 1] == 'k') + { + switch (s[len - 2]) + { + case 'a': + case 'o': + case 'e': // intentional fallthru + if (len > 4) + { + return len - 2; + } + return len - 1;// LUCENENET NOTE: Cannot fall through, so need to return the same value as default + default: + return len - 1; + } + } + return len; + } - private bool isVowel(char ch) - { - switch (ch) - { - case 'a': - case 'e': - case 'i': - case 'o': - case 'u': - case 'y': - return true; - default: - return false; - } - } - } + private int normalize(char[] s, int len) + { + if (len > 3) + { + switch (s[len - 1]) + { + case 'a': + case 'e': + case 'i': + case 'o': + return len - 1; + } + } + return len; + } + private bool isVowel(char ch) + { + switch (ch) + { + case 'a': + case 'e': + case 'i': + case 'o': + case 'u': + case 'y': + return true; + default: + return false; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hy/ArmenianAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Hy/ArmenianAnalyzer.cs index 06368d4b89..8a49c549a1 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Hy/ArmenianAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hy/ArmenianAnalyzer.cs @@ -1,9 +1,16 @@ -using System; +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Miscellaneous; +using Lucene.Net.Analysis.Snowball; +using Lucene.Net.Analysis.Standard; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Tartarus.Snowball.Ext; +using Lucene.Net.Util; +using System; +using System.IO; -namespace org.apache.lucene.analysis.hy +namespace Lucene.Net.Analysis.Hy { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,118 +27,106 @@ namespace org.apache.lucene.analysis.hy * limitations under the License. */ + /// + /// for Armenian. + /// + public sealed class ArmenianAnalyzer : StopwordAnalyzerBase + { + private readonly CharArraySet stemExclusionSet; - using LowerCaseFilter = org.apache.lucene.analysis.core.LowerCaseFilter; - using StopFilter = org.apache.lucene.analysis.core.StopFilter; - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; - using SnowballFilter = org.apache.lucene.analysis.snowball.SnowballFilter; - using StandardFilter = org.apache.lucene.analysis.standard.StandardFilter; - using StandardTokenizer = org.apache.lucene.analysis.standard.StandardTokenizer; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using StopwordAnalyzerBase = org.apache.lucene.analysis.util.StopwordAnalyzerBase; - using Version = org.apache.lucene.util.Version; - using ArmenianStemmer = org.tartarus.snowball.ext.ArmenianStemmer; - - /// - /// for Armenian. - /// - public sealed class ArmenianAnalyzer : StopwordAnalyzerBase - { - private readonly CharArraySet stemExclusionSet; - - /// - /// File containing default Armenian stopwords. - public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; - - /// - /// Returns an unmodifiable instance of the default stop words set. - /// default stop words set. - public static CharArraySet DefaultStopSet - { - get - { - return DefaultSetHolder.DEFAULT_STOP_SET; - } - } + /// + /// File containing default Armenian stopwords. + public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; - /// - /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class - /// accesses the static final set the first time.; - /// - private class DefaultSetHolder - { - internal static readonly CharArraySet DEFAULT_STOP_SET; + /// + /// Returns an unmodifiable instance of the default stop words set. + /// default stop words set. + public static CharArraySet DefaultStopSet + { + get + { + return DefaultSetHolder.DEFAULT_STOP_SET; + } + } - static DefaultSetHolder() - { - try - { - DEFAULT_STOP_SET = loadStopwordSet(false, typeof(ArmenianAnalyzer), DEFAULT_STOPWORD_FILE, "#"); - } - catch (IOException) - { - // default set should always be present as it is part of the - // distribution (JAR) - throw new Exception("Unable to load default stopword set"); - } - } - } + /// + /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class + /// accesses the static final set the first time.; + /// + private class DefaultSetHolder + { + internal static readonly CharArraySet DEFAULT_STOP_SET; - /// - /// Builds an analyzer with the default stop words: . - /// - public ArmenianAnalyzer(Version matchVersion) : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET) - { - } + static DefaultSetHolder() + { + try + { + DEFAULT_STOP_SET = LoadStopwordSet(false, typeof(ArmenianAnalyzer), typeof(ArmenianAnalyzer).Namespace + "." + DEFAULT_STOPWORD_FILE, "#"); + } + catch (IOException) + { + // default set should always be present as it is part of the + // distribution (JAR) + throw new Exception("Unable to load default stopword set"); + } + } + } - /// - /// Builds an analyzer with the given stop words. - /// - /// lucene compatibility version - /// a stopword set - public ArmenianAnalyzer(Version matchVersion, CharArraySet stopwords) : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) - { - } + /// + /// Builds an analyzer with the default stop words: . + /// + public ArmenianAnalyzer(LuceneVersion matchVersion) + : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET) + { + } - /// - /// Builds an analyzer with the given stop words. If a non-empty stem exclusion set is - /// provided this analyzer will add a before - /// stemming. - /// - /// lucene compatibility version - /// a stopword set - /// a set of terms not to be stemmed - public ArmenianAnalyzer(Version matchVersion, CharArraySet stopwords, CharArraySet stemExclusionSet) : base(matchVersion, stopwords) - { - this.stemExclusionSet = CharArraySet.unmodifiableSet(CharArraySet.copy(matchVersion, stemExclusionSet)); - } + /// + /// Builds an analyzer with the given stop words. + /// + /// lucene compatibility version + /// a stopword set + public ArmenianAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords) + : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) + { + } - /// - /// Creates a - /// - /// which tokenizes all the text in the provided . - /// - /// A - /// - /// built from an filtered with - /// , , - /// , if a stem exclusion set is - /// provided and . - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Tokenizer source = new org.apache.lucene.analysis.standard.StandardTokenizer(matchVersion, reader); - Tokenizer source = new StandardTokenizer(matchVersion, reader); - TokenStream result = new StandardFilter(matchVersion, source); - result = new LowerCaseFilter(matchVersion, result); - result = new StopFilter(matchVersion, result, stopwords); - if (!stemExclusionSet.Empty) - { - result = new SetKeywordMarkerFilter(result, stemExclusionSet); - } - result = new SnowballFilter(result, new ArmenianStemmer()); - return new TokenStreamComponents(source, result); - } - } + /// + /// Builds an analyzer with the given stop words. If a non-empty stem exclusion set is + /// provided this analyzer will add a before + /// stemming. + /// + /// lucene compatibility version + /// a stopword set + /// a set of terms not to be stemmed + public ArmenianAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords, CharArraySet stemExclusionSet) + : base(matchVersion, stopwords) + { + this.stemExclusionSet = CharArraySet.UnmodifiableSet(CharArraySet.Copy(matchVersion, stemExclusionSet)); + } + /// + /// Creates a + /// + /// which tokenizes all the text in the provided . + /// + /// A + /// + /// built from an filtered with + /// , , + /// , if a stem exclusion set is + /// provided and . + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer source = new StandardTokenizer(matchVersion, reader); + TokenStream result = new StandardFilter(matchVersion, source); + result = new LowerCaseFilter(matchVersion, result); + result = new StopFilter(matchVersion, result, stopwords); + if (stemExclusionSet.Count > 0) + { + result = new SetKeywordMarkerFilter(result, stemExclusionSet); + } + result = new SnowballFilter(result, new ArmenianStemmer()); + return new TokenStreamComponents(source, result); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Hy/stopwords.txt b/src/Lucene.Net.Analysis.Common/Analysis/Hy/stopwords.txt new file mode 100644 index 0000000000..60c1c50fbc --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Hy/stopwords.txt @@ -0,0 +1,46 @@ +# example set of Armenian stopwords. +այդ +այլ +այն +այս +դու +դուք +եմ +են +ենք +ես +եք +է +էի +էին +էինք +էիր +էիք +էր +ըստ +թ +ի +ին +իսկ +իր +կամ +համար +հետ +հետո +մենք +մեջ +մի +ն +նա +նաև +նրա +նրանք +որ +որը +որոնք +որպես +ու +ում +պիտի +վրա +և diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianAnalyzer.cs index df18160005..8840a48ec9 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianAnalyzer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianAnalyzer.cs @@ -1,9 +1,14 @@ -using System; +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Miscellaneous; +using Lucene.Net.Analysis.Standard; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Util; +using System; +using System.IO; -namespace org.apache.lucene.analysis.id +namespace Lucene.Net.Analysis.Id { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,119 +25,109 @@ namespace org.apache.lucene.analysis.id * limitations under the License. */ + /// + /// Analyzer for Indonesian (Bahasa) + /// + public sealed class IndonesianAnalyzer : StopwordAnalyzerBase + { + /// + /// File containing default Indonesian stopwords. + public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; - using LowerCaseFilter = org.apache.lucene.analysis.core.LowerCaseFilter; - using StopFilter = org.apache.lucene.analysis.core.StopFilter; - using SetKeywordMarkerFilter = org.apache.lucene.analysis.miscellaneous.SetKeywordMarkerFilter; - using StandardFilter = org.apache.lucene.analysis.standard.StandardFilter; - using StandardTokenizer = org.apache.lucene.analysis.standard.StandardTokenizer; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using StopwordAnalyzerBase = org.apache.lucene.analysis.util.StopwordAnalyzerBase; - using Version = org.apache.lucene.util.Version; - - /// - /// Analyzer for Indonesian (Bahasa) - /// - public sealed class IndonesianAnalyzer : StopwordAnalyzerBase - { - /// - /// File containing default Indonesian stopwords. - public const string DEFAULT_STOPWORD_FILE = "stopwords.txt"; - - /// - /// Returns an unmodifiable instance of the default stop-words set. - /// an unmodifiable instance of the default stop-words set. - public static CharArraySet DefaultStopSet - { - get - { - return DefaultSetHolder.DEFAULT_STOP_SET; - } - } - - /// - /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class - /// accesses the static final set the first time.; - /// - private class DefaultSetHolder - { - internal static readonly CharArraySet DEFAULT_STOP_SET; + /// + /// Returns an unmodifiable instance of the default stop-words set. + /// an unmodifiable instance of the default stop-words set. + public static CharArraySet DefaultStopSet + { + get + { + return DefaultSetHolder.DEFAULT_STOP_SET; + } + } - static DefaultSetHolder() - { - try - { - DEFAULT_STOP_SET = loadStopwordSet(false, typeof(IndonesianAnalyzer), DEFAULT_STOPWORD_FILE, "#"); - } - catch (IOException) - { - // default set should always be present as it is part of the - // distribution (JAR) - throw new Exception("Unable to load default stopword set"); - } - } - } + /// + /// Atomically loads the DEFAULT_STOP_SET in a lazy fashion once the outer class + /// accesses the static final set the first time.; + /// + private class DefaultSetHolder + { + internal static readonly CharArraySet DEFAULT_STOP_SET; - private readonly CharArraySet stemExclusionSet; + static DefaultSetHolder() + { + try + { + DEFAULT_STOP_SET = LoadStopwordSet(false, typeof(IndonesianAnalyzer), typeof(IndonesianAnalyzer).Namespace + "." + DEFAULT_STOPWORD_FILE, "#"); + } + catch (IOException) + { + // default set should always be present as it is part of the + // distribution (JAR) + throw new Exception("Unable to load default stopword set"); + } + } + } - /// - /// Builds an analyzer with the default stop words: . - /// - public IndonesianAnalyzer(Version matchVersion) : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET) - { - } + private readonly CharArraySet stemExclusionSet; - /// - /// Builds an analyzer with the given stop words - /// - /// - /// lucene compatibility version - /// - /// a stopword set - public IndonesianAnalyzer(Version matchVersion, CharArraySet stopwords) : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) - { - } + /// + /// Builds an analyzer with the default stop words: . + /// + public IndonesianAnalyzer(LuceneVersion matchVersion) + : this(matchVersion, DefaultSetHolder.DEFAULT_STOP_SET) + { + } - /// - /// Builds an analyzer with the given stop word. If a none-empty stem exclusion set is - /// provided this analyzer will add a before - /// . - /// - /// - /// lucene compatibility version - /// - /// a stopword set - /// - /// a set of terms not to be stemmed - public IndonesianAnalyzer(Version matchVersion, CharArraySet stopwords, CharArraySet stemExclusionSet) : base(matchVersion, stopwords) - { - this.stemExclusionSet = CharArraySet.unmodifiableSet(CharArraySet.copy(matchVersion, stemExclusionSet)); - } + /// + /// Builds an analyzer with the given stop words + /// + /// + /// lucene compatibility version + /// + /// a stopword set + public IndonesianAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords) + : this(matchVersion, stopwords, CharArraySet.EMPTY_SET) + { + } - /// - /// Creates - /// - /// used to tokenize all the text in the provided . - /// - /// - /// built from an filtered with - /// , , - /// , - /// if a stem exclusion set is provided and . - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.Tokenizer source = new org.apache.lucene.analysis.standard.StandardTokenizer(matchVersion, reader); - Tokenizer source = new StandardTokenizer(matchVersion, reader); - TokenStream result = new StandardFilter(matchVersion, source); - result = new LowerCaseFilter(matchVersion, result); - result = new StopFilter(matchVersion, result, stopwords); - if (!stemExclusionSet.Empty) - { - result = new SetKeywordMarkerFilter(result, stemExclusionSet); - } - return new TokenStreamComponents(source, new IndonesianStemFilter(result)); - } - } + /// + /// Builds an analyzer with the given stop word. If a none-empty stem exclusion set is + /// provided this analyzer will add a before + /// . + /// + /// + /// lucene compatibility version + /// + /// a stopword set + /// + /// a set of terms not to be stemmed + public IndonesianAnalyzer(LuceneVersion matchVersion, CharArraySet stopwords, CharArraySet stemExclusionSet) + : base(matchVersion, stopwords) + { + this.stemExclusionSet = CharArraySet.UnmodifiableSet(CharArraySet.Copy(matchVersion, stemExclusionSet)); + } + /// + /// Creates + /// + /// used to tokenize all the text in the provided . + /// + /// + /// built from an filtered with + /// , , + /// , + /// if a stem exclusion set is provided and . + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer source = new StandardTokenizer(matchVersion, reader); + TokenStream result = new StandardFilter(matchVersion, source); + result = new LowerCaseFilter(matchVersion, result); + result = new StopFilter(matchVersion, result, stopwords); + if (stemExclusionSet.Count > 0) + { + result = new SetKeywordMarkerFilter(result, stemExclusionSet); + } + return new TokenStreamComponents(source, new IndonesianStemFilter(result)); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemFilter.cs index 38521a826b..3a5ecdabbb 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemFilter.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.id -{ +using Lucene.Net.Analysis.Tokenattributes; +using System.IO; - /* +namespace Lucene.Net.Analysis.Id +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,58 +20,54 @@ * limitations under the License. */ - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using KeywordAttribute = org.apache.lucene.analysis.tokenattributes.KeywordAttribute; - - /// - /// A that applies to stem Indonesian words. - /// - public sealed class IndonesianStemFilter : TokenFilter - { - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly KeywordAttribute keywordAtt = addAttribute(typeof(KeywordAttribute)); - private readonly IndonesianStemmer stemmer = new IndonesianStemmer(); - private readonly bool stemDerivational; - - /// - /// Calls - /// - public IndonesianStemFilter(TokenStream input) : this(input, true) - { - } + /// + /// A that applies to stem Indonesian words. + /// + public sealed class IndonesianStemFilter : TokenFilter + { + private readonly ICharTermAttribute termAtt; + private readonly IKeywordAttribute keywordAtt; + private readonly IndonesianStemmer stemmer = new IndonesianStemmer(); + private readonly bool stemDerivational; - /// - /// Create a new IndonesianStemFilter. - /// - /// If stemDerivational is false, - /// only inflectional suffixes (particles and possessive pronouns) are stemmed. - /// - /// - public IndonesianStemFilter(TokenStream input, bool stemDerivational) : base(input) - { - this.stemDerivational = stemDerivational; - } + /// + /// Calls + /// + public IndonesianStemFilter(TokenStream input) + : this(input, true) + { + } -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - if (!keywordAtt.Keyword) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int newlen = stemmer.stem(termAtt.buffer(), termAtt.length(), stemDerivational); - int newlen = stemmer.stem(termAtt.buffer(), termAtt.length(), stemDerivational); - termAtt.Length = newlen; - } - return true; - } - else - { - return false; - } - } - } + /// + /// Create a new IndonesianStemFilter. + /// + /// If stemDerivational is false, + /// only inflectional suffixes (particles and possessive pronouns) are stemmed. + /// + /// + public IndonesianStemFilter(TokenStream input, bool stemDerivational) + : base(input) + { + this.stemDerivational = stemDerivational; + termAtt = AddAttribute(); + keywordAtt = AddAttribute(); + } + public override bool IncrementToken() + { + if (input.IncrementToken()) + { + if (!keywordAtt.Keyword) + { + int newlen = stemmer.stem(termAtt.Buffer(), termAtt.Length, stemDerivational); + termAtt.Length = newlen; + } + return true; + } + else + { + return false; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemFilterFactory.cs index a7bfe5b159..0773391827 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemFilterFactory.cs @@ -1,9 +1,10 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; +using System.IO; -namespace org.apache.lucene.analysis.id +namespace Lucene.Net.Analysis.Id { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,38 +21,36 @@ namespace org.apache.lucene.analysis.id * limitations under the License. */ - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_idstem" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.LowerCaseFilterFactory"/>
    -	///     <filter class="solr.IndonesianStemFilterFactory" stemDerivational="true"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class IndonesianStemFilterFactory : TokenFilterFactory - { - private readonly bool stemDerivational; - - /// - /// Creates a new IndonesianStemFilterFactory - public IndonesianStemFilterFactory(IDictionary args) : base(args) - { - stemDerivational = getBoolean(args, "stemDerivational", true); - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } + /// + /// Factory for . + ///
    +    /// <fieldType name="text_idstem" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.LowerCaseFilterFactory"/>
    +    ///     <filter class="solr.IndonesianStemFilterFactory" stemDerivational="true"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class IndonesianStemFilterFactory : TokenFilterFactory + { + private readonly bool stemDerivational; - public override TokenStream create(TokenStream input) - { - return new IndonesianStemFilter(input, stemDerivational); - } - } + /// + /// Creates a new IndonesianStemFilterFactory + public IndonesianStemFilterFactory(IDictionary args) + : base(args) + { + stemDerivational = GetBoolean(args, "stemDerivational", true); + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + public override TokenStream Create(TokenStream input) + { + return new IndonesianStemFilter(input, stemDerivational); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemmer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemmer.cs index 6e339fe566..5c2e9ae52a 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemmer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/Id/IndonesianStemmer.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.id -{ +using Lucene.Net.Analysis.Util; +using System.IO; - /* +namespace Lucene.Net.Analysis.Id +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,317 +20,312 @@ * limitations under the License. */ - using org.apache.lucene.analysis.util; -//JAVA TO C# CONVERTER TODO TASK: This Java 'import static' statement cannot be converted to C#: -// import static org.apache.lucene.analysis.util.StemmerUtil.*; - - /// - /// Stemmer for Indonesian. - /// - /// Stems Indonesian words with the algorithm presented in: - /// A Study of Stemming Effects on Information Retrieval in - /// Bahasa Indonesia, Fadillah Z Tala. - /// http://www.illc.uva.nl/Publications/ResearchReports/MoL-2003-02.text.pdf - /// - /// - public class IndonesianStemmer - { - private int numSyllables; - private int flags; - private const int REMOVED_KE = 1; - private const int REMOVED_PENG = 2; - private const int REMOVED_DI = 4; - private const int REMOVED_MENG = 8; - private const int REMOVED_TER = 16; - private const int REMOVED_BER = 32; - private const int REMOVED_PE = 64; - - /// - /// Stem a term (returning its new length). - /// - /// Use stemDerivational to control whether full stemming - /// or only light inflectional stemming is done. - /// - /// - public virtual int stem(char[] text, int length, bool stemDerivational) - { - flags = 0; - numSyllables = 0; - for (int i = 0; i < length; i++) - { - if (isVowel(text[i])) - { - numSyllables++; - } - } - - if (numSyllables > 2) - { - length = removeParticle(text, length); - } - if (numSyllables > 2) - { - length = removePossessivePronoun(text, length); - } - - if (stemDerivational_Renamed) - { - length = stemDerivational(text, length); - } - return length; - } - - private int stemDerivational(char[] text, int length) - { - int oldLength = length; - if (numSyllables > 2) - { - length = removeFirstOrderPrefix(text, length); - } - if (oldLength != length) // a rule is fired - { - oldLength = length; - if (numSyllables > 2) - { - length = removeSuffix(text, length); - } - if (oldLength != length) // a rule is fired - { - if (numSyllables > 2) - { - length = removeSecondOrderPrefix(text, length); - } - } - } // fail - else - { - if (numSyllables > 2) - { - length = removeSecondOrderPrefix(text, length); - } - if (numSyllables > 2) - { - length = removeSuffix(text, length); - } - } - return length; - } - - private bool isVowel(char ch) - { - switch (ch) - { - case 'a': - case 'e': - case 'i': - case 'o': - case 'u': - return true; - default: - return false; - } - } - - private int removeParticle(char[] text, int length) - { - if (StemmerUtil.EndsWith(text, length, "kah") || StemmerUtil.EndsWith(text, length, "lah") || StemmerUtil.EndsWith(text, length, "pun")) - { - numSyllables--; - return length - 3; - } - - return length; - } - - private int removePossessivePronoun(char[] text, int length) - { - if (StemmerUtil.EndsWith(text, length, "ku") || StemmerUtil.EndsWith(text, length, "mu")) - { - numSyllables--; - return length - 2; - } - - if (StemmerUtil.EndsWith(text, length, "nya")) - { - numSyllables--; - return length - 3; - } - - return length; - } - - private int removeFirstOrderPrefix(char[] text, int length) - { - if (StemmerUtil.StartsWith(text, length, "meng")) - { - flags |= REMOVED_MENG; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 4); - } - - if (StemmerUtil.StartsWith(text, length, "meny") && length > 4 && isVowel(text[4])) - { - flags |= REMOVED_MENG; - text[3] = 's'; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (StemmerUtil.StartsWith(text, length, "men")) - { - flags |= REMOVED_MENG; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (StemmerUtil.StartsWith(text, length, "mem")) - { - flags |= REMOVED_MENG; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (StemmerUtil.StartsWith(text, length, "me")) - { - flags |= REMOVED_MENG; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 2); - } - - if (StemmerUtil.StartsWith(text, length, "peng")) - { - flags |= REMOVED_PENG; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 4); - } - - if (StemmerUtil.StartsWith(text, length, "peny") && length > 4 && isVowel(text[4])) - { - flags |= REMOVED_PENG; - text[3] = 's'; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (StemmerUtil.StartsWith(text, length, "peny")) - { - flags |= REMOVED_PENG; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 4); - } - - if (StemmerUtil.StartsWith(text, length, "pen") && length > 3 && isVowel(text[3])) - { - flags |= REMOVED_PENG; - text[2] = 't'; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 2); - } - - if (StemmerUtil.StartsWith(text, length, "pen")) - { - flags |= REMOVED_PENG; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (StemmerUtil.StartsWith(text, length, "pem")) - { - flags |= REMOVED_PENG; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (StemmerUtil.StartsWith(text, length, "di")) - { - flags |= REMOVED_DI; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 2); - } - - if (StemmerUtil.StartsWith(text, length, "ter")) - { - flags |= REMOVED_TER; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (StemmerUtil.StartsWith(text, length, "ke")) - { - flags |= REMOVED_KE; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 2); - } - - return length; - } - - private int removeSecondOrderPrefix(char[] text, int length) - { - if (StemmerUtil.StartsWith(text, length, "ber")) - { - flags |= REMOVED_BER; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (length == 7 && StemmerUtil.StartsWith(text, length, "belajar")) - { - flags |= REMOVED_BER; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (StemmerUtil.StartsWith(text, length, "be") && length > 4 && !isVowel(text[2]) && text[3] == 'e' && text[4] == 'r') - { - flags |= REMOVED_BER; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 2); - } - - if (StemmerUtil.StartsWith(text, length, "per")) - { - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (length == 7 && StemmerUtil.StartsWith(text, length, "pelajar")) - { - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 3); - } - - if (StemmerUtil.StartsWith(text, length, "pe")) - { - flags |= REMOVED_PE; - numSyllables--; - return StemmerUtil.deleteN(text, 0, length, 2); - } - - return length; - } - - private int removeSuffix(char[] text, int length) - { - if (StemmerUtil.EndsWith(text, length, "kan") && (flags & REMOVED_KE) == 0 && (flags & REMOVED_PENG) == 0 && (flags & REMOVED_PE) == 0) - { - numSyllables--; - return length - 3; - } - - if (StemmerUtil.EndsWith(text, length, "an") && (flags & REMOVED_DI) == 0 && (flags & REMOVED_MENG) == 0 && (flags & REMOVED_TER) == 0) - { - numSyllables--; - return length - 2; - } - - if (StemmerUtil.EndsWith(text, length, "i") && !StemmerUtil.EndsWith(text, length, "si") && (flags & REMOVED_BER) == 0 && (flags & REMOVED_KE) == 0 && (flags & REMOVED_PENG) == 0) - { - numSyllables--; - return length - 1; - } - return length; - } - } - + /// + /// Stemmer for Indonesian. + /// + /// Stems Indonesian words with the algorithm presented in: + /// A Study of Stemming Effects on Information Retrieval in + /// Bahasa Indonesia, Fadillah Z Tala. + /// http://www.illc.uva.nl/Publications/ResearchReports/MoL-2003-02.text.pdf + /// + /// + public class IndonesianStemmer + { + private int numSyllables; + private int flags; + private const int REMOVED_KE = 1; + private const int REMOVED_PENG = 2; + private const int REMOVED_DI = 4; + private const int REMOVED_MENG = 8; + private const int REMOVED_TER = 16; + private const int REMOVED_BER = 32; + private const int REMOVED_PE = 64; + + /// + /// Stem a term (returning its new length). + /// + /// Use stemDerivational to control whether full stemming + /// or only light inflectional stemming is done. + /// + /// + public virtual int stem(char[] text, int length, bool stemDerivational) + { + flags = 0; + numSyllables = 0; + for (int i = 0; i < length; i++) + { + if (isVowel(text[i])) + { + numSyllables++; + } + } + + if (numSyllables > 2) + { + length = removeParticle(text, length); + } + if (numSyllables > 2) + { + length = removePossessivePronoun(text, length); + } + + if (stemDerivational) + { + length = StemDerivational(text, length); + } + return length; + } + + private int StemDerivational(char[] text, int length) + { + int oldLength = length; + if (numSyllables > 2) + { + length = removeFirstOrderPrefix(text, length); + } + if (oldLength != length) // a rule is fired + { + oldLength = length; + if (numSyllables > 2) + { + length = removeSuffix(text, length); + } + if (oldLength != length) // a rule is fired + { + if (numSyllables > 2) + { + length = removeSecondOrderPrefix(text, length); + } + } + } // fail + else + { + if (numSyllables > 2) + { + length = removeSecondOrderPrefix(text, length); + } + if (numSyllables > 2) + { + length = removeSuffix(text, length); + } + } + return length; + } + + private bool isVowel(char ch) + { + switch (ch) + { + case 'a': + case 'e': + case 'i': + case 'o': + case 'u': + return true; + default: + return false; + } + } + + private int removeParticle(char[] text, int length) + { + if (StemmerUtil.EndsWith(text, length, "kah") || StemmerUtil.EndsWith(text, length, "lah") || StemmerUtil.EndsWith(text, length, "pun")) + { + numSyllables--; + return length - 3; + } + + return length; + } + + private int removePossessivePronoun(char[] text, int length) + { + if (StemmerUtil.EndsWith(text, length, "ku") || StemmerUtil.EndsWith(text, length, "mu")) + { + numSyllables--; + return length - 2; + } + + if (StemmerUtil.EndsWith(text, length, "nya")) + { + numSyllables--; + return length - 3; + } + + return length; + } + + private int removeFirstOrderPrefix(char[] text, int length) + { + if (StemmerUtil.StartsWith(text, length, "meng")) + { + flags |= REMOVED_MENG; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 4); + } + + if (StemmerUtil.StartsWith(text, length, "meny") && length > 4 && isVowel(text[4])) + { + flags |= REMOVED_MENG; + text[3] = 's'; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (StemmerUtil.StartsWith(text, length, "men")) + { + flags |= REMOVED_MENG; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (StemmerUtil.StartsWith(text, length, "mem")) + { + flags |= REMOVED_MENG; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (StemmerUtil.StartsWith(text, length, "me")) + { + flags |= REMOVED_MENG; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 2); + } + + if (StemmerUtil.StartsWith(text, length, "peng")) + { + flags |= REMOVED_PENG; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 4); + } + + if (StemmerUtil.StartsWith(text, length, "peny") && length > 4 && isVowel(text[4])) + { + flags |= REMOVED_PENG; + text[3] = 's'; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (StemmerUtil.StartsWith(text, length, "peny")) + { + flags |= REMOVED_PENG; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 4); + } + + if (StemmerUtil.StartsWith(text, length, "pen") && length > 3 && isVowel(text[3])) + { + flags |= REMOVED_PENG; + text[2] = 't'; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 2); + } + + if (StemmerUtil.StartsWith(text, length, "pen")) + { + flags |= REMOVED_PENG; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (StemmerUtil.StartsWith(text, length, "pem")) + { + flags |= REMOVED_PENG; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (StemmerUtil.StartsWith(text, length, "di")) + { + flags |= REMOVED_DI; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 2); + } + + if (StemmerUtil.StartsWith(text, length, "ter")) + { + flags |= REMOVED_TER; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (StemmerUtil.StartsWith(text, length, "ke")) + { + flags |= REMOVED_KE; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 2); + } + + return length; + } + + private int removeSecondOrderPrefix(char[] text, int length) + { + if (StemmerUtil.StartsWith(text, length, "ber")) + { + flags |= REMOVED_BER; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (length == 7 && StemmerUtil.StartsWith(text, length, "belajar")) + { + flags |= REMOVED_BER; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (StemmerUtil.StartsWith(text, length, "be") && length > 4 && !isVowel(text[2]) && text[3] == 'e' && text[4] == 'r') + { + flags |= REMOVED_BER; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 2); + } + + if (StemmerUtil.StartsWith(text, length, "per")) + { + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (length == 7 && StemmerUtil.StartsWith(text, length, "pelajar")) + { + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 3); + } + + if (StemmerUtil.StartsWith(text, length, "pe")) + { + flags |= REMOVED_PE; + numSyllables--; + return StemmerUtil.DeleteN(text, 0, length, 2); + } + + return length; + } + + private int removeSuffix(char[] text, int length) + { + if (StemmerUtil.EndsWith(text, length, "kan") && (flags & REMOVED_KE) == 0 && (flags & REMOVED_PENG) == 0 && (flags & REMOVED_PE) == 0) + { + numSyllables--; + return length - 3; + } + + if (StemmerUtil.EndsWith(text, length, "an") && (flags & REMOVED_DI) == 0 && (flags & REMOVED_MENG) == 0 && (flags & REMOVED_TER) == 0) + { + numSyllables--; + return length - 2; + } + + if (StemmerUtil.EndsWith(text, length, "i") && !StemmerUtil.EndsWith(text, length, "si") && (flags & REMOVED_BER) == 0 && (flags & REMOVED_KE) == 0 && (flags & REMOVED_PENG) == 0) + { + numSyllables--; + return length - 1; + } + return length; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Id/stopwords.txt b/src/Lucene.Net.Analysis.Common/Analysis/Id/stopwords.txt new file mode 100644 index 0000000000..4617f83a5c --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Id/stopwords.txt @@ -0,0 +1,359 @@ +# from appendix D of: A Study of Stemming Effects on Information +# Retrieval in Bahasa Indonesia +ada +adanya +adalah +adapun +agak +agaknya +agar +akan +akankah +akhirnya +aku +akulah +amat +amatlah +anda +andalah +antar +diantaranya +antara +antaranya +diantara +apa +apaan +mengapa +apabila +apakah +apalagi +apatah +atau +ataukah +ataupun +bagai +bagaikan +sebagai +sebagainya +bagaimana +bagaimanapun +sebagaimana +bagaimanakah +bagi +bahkan +bahwa +bahwasanya +sebaliknya +banyak +sebanyak +beberapa +seberapa +begini +beginian +beginikah +beginilah +sebegini +begitu +begitukah +begitulah +begitupun +sebegitu +belum +belumlah +sebelum +sebelumnya +sebenarnya +berapa +berapakah +berapalah +berapapun +betulkah +sebetulnya +biasa +biasanya +bila +bilakah +bisa +bisakah +sebisanya +boleh +bolehkah +bolehlah +buat +bukan +bukankah +bukanlah +bukannya +cuma +percuma +dahulu +dalam +dan +dapat +dari +daripada +dekat +demi +demikian +demikianlah +sedemikian +dengan +depan +di +dia +dialah +dini +diri +dirinya +terdiri +dong +dulu +enggak +enggaknya +entah +entahlah +terhadap +terhadapnya +hal +hampir +hanya +hanyalah +harus +haruslah +harusnya +seharusnya +hendak +hendaklah +hendaknya +hingga +sehingga +ia +ialah +ibarat +ingin +inginkah +inginkan +ini +inikah +inilah +itu +itukah +itulah +jangan +jangankan +janganlah +jika +jikalau +juga +justru +kala +kalau +kalaulah +kalaupun +kalian +kami +kamilah +kamu +kamulah +kan +kapan +kapankah +kapanpun +dikarenakan +karena +karenanya +ke +kecil +kemudian +kenapa +kepada +kepadanya +ketika +seketika +khususnya +kini +kinilah +kiranya +sekiranya +kita +kitalah +kok +lagi +lagian +selagi +lah +lain +lainnya +melainkan +selaku +lalu +melalui +terlalu +lama +lamanya +selama +selama +selamanya +lebih +terlebih +bermacam +macam +semacam +maka +makanya +makin +malah +malahan +mampu +mampukah +mana +manakala +manalagi +masih +masihkah +semasih +masing +mau +maupun +semaunya +memang +mereka +merekalah +meski +meskipun +semula +mungkin +mungkinkah +nah +namun +nanti +nantinya +nyaris +oleh +olehnya +seorang +seseorang +pada +padanya +padahal +paling +sepanjang +pantas +sepantasnya +sepantasnyalah +para +pasti +pastilah +per +pernah +pula +pun +merupakan +rupanya +serupa +saat +saatnya +sesaat +saja +sajalah +saling +bersama +sama +sesama +sambil +sampai +sana +sangat +sangatlah +saya +sayalah +se +sebab +sebabnya +sebuah +tersebut +tersebutlah +sedang +sedangkan +sedikit +sedikitnya +segala +segalanya +segera +sesegera +sejak +sejenak +sekali +sekalian +sekalipun +sesekali +sekaligus +sekarang +sekarang +sekitar +sekitarnya +sela +selain +selalu +seluruh +seluruhnya +semakin +sementara +sempat +semua +semuanya +sendiri +sendirinya +seolah +seperti +sepertinya +sering +seringnya +serta +siapa +siapakah +siapapun +disini +disinilah +sini +sinilah +sesuatu +sesuatunya +suatu +sesudah +sesudahnya +sudah +sudahkah +sudahlah +supaya +tadi +tadinya +tak +tanpa +setelah +telah +tentang +tentu +tentulah +tentunya +tertentu +seterusnya +tapi +tetapi +setiap +tiap +setidaknya +tidak +tidakkah +tidaklah +toh +waduh +wah +wahai +sewaktu +walau +walaupun +wong +yaitu +yakni +yang diff --git a/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizationFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizationFilter.cs index ef3ee00360..823e320738 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizationFilter.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizationFilter.cs @@ -1,7 +1,9 @@ -namespace org.apache.lucene.analysis.@in -{ +using Lucene.Net.Analysis.Tokenattributes; +using System.IO; - /* +namespace Lucene.Net.Analysis.In +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,35 +20,32 @@ * limitations under the License. */ - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - - /// - /// A that applies to normalize text - /// in Indian Languages. - /// - public sealed class IndicNormalizationFilter : TokenFilter - { - private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute)); - private readonly IndicNormalizer normalizer = new IndicNormalizer(); - - public IndicNormalizationFilter(TokenStream input) : base(input) - { - } + /// + /// A that applies to normalize text + /// in Indian Languages. + /// + public sealed class IndicNormalizationFilter : TokenFilter + { + private readonly ICharTermAttribute termAtt; + private readonly IndicNormalizer normalizer = new IndicNormalizer(); -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - termAtt.Length = normalizer.normalize(termAtt.buffer(), termAtt.length()); - return true; - } - else - { - return false; - } - } - } + public IndicNormalizationFilter(TokenStream input) + : base(input) + { + termAtt = AddAttribute(); + } + public override bool IncrementToken() + { + if (input.IncrementToken()) + { + termAtt.Length = normalizer.Normalize(termAtt.Buffer(), termAtt.Length); + return true; + } + else + { + return false; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizationFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizationFilterFactory.cs index f4112ad2e7..a96d5b70b9 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizationFilterFactory.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizationFilterFactory.cs @@ -1,9 +1,10 @@ -using System.Collections.Generic; +using Lucene.Net.Analysis.Util; +using System.Collections.Generic; +using System.IO; -namespace org.apache.lucene.analysis.@in +namespace Lucene.Net.Analysis.In { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,45 +21,40 @@ namespace org.apache.lucene.analysis.@in * limitations under the License. */ - using AbstractAnalysisFactory = org.apache.lucene.analysis.util.AbstractAnalysisFactory; - using MultiTermAwareComponent = org.apache.lucene.analysis.util.MultiTermAwareComponent; - using TokenFilterFactory = org.apache.lucene.analysis.util.TokenFilterFactory; - - /// - /// Factory for . - ///
    -	/// <fieldType name="text_innormal" class="solr.TextField" positionIncrementGap="100">
    -	///   <analyzer>
    -	///     <tokenizer class="solr.StandardTokenizerFactory"/>
    -	///     <filter class="solr.IndicNormalizationFilterFactory"/>
    -	///   </analyzer>
    -	/// </fieldType>
    - ///
    - public class IndicNormalizationFilterFactory : TokenFilterFactory, MultiTermAwareComponent - { - - /// - /// Creates a new IndicNormalizationFilterFactory - public IndicNormalizationFilterFactory(IDictionary args) : base(args) - { - if (args.Count > 0) - { - throw new System.ArgumentException("Unknown parameters: " + args); - } - } - - public override TokenStream create(TokenStream input) - { - return new IndicNormalizationFilter(input); - } - - public virtual AbstractAnalysisFactory MultiTermComponent - { - get - { - return this; - } - } - } - + /// + /// Factory for . + ///
    +    /// <fieldType name="text_innormal" class="solr.TextField" positionIncrementGap="100">
    +    ///   <analyzer>
    +    ///     <tokenizer class="solr.StandardTokenizerFactory"/>
    +    ///     <filter class="solr.IndicNormalizationFilterFactory"/>
    +    ///   </analyzer>
    +    /// </fieldType>
    + ///
    + public class IndicNormalizationFilterFactory : TokenFilterFactory, IMultiTermAwareComponent + { + + /// + /// Creates a new IndicNormalizationFilterFactory + public IndicNormalizationFilterFactory(IDictionary args) : base(args) + { + if (args.Count > 0) + { + throw new System.ArgumentException("Unknown parameters: " + args); + } + } + + public override TokenStream Create(TokenStream input) + { + return new IndicNormalizationFilter(input); + } + + public virtual AbstractAnalysisFactory MultiTermComponent + { + get + { + return this; + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizer.cs index 599e030554..4b26e12b42 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/In/IndicNormalizer.cs @@ -1,9 +1,13 @@ -using System.Collections; +using Lucene.Net.Analysis.Util; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; -namespace org.apache.lucene.analysis.@in +namespace Lucene.Net.Analysis.In { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,175 +24,337 @@ namespace org.apache.lucene.analysis.@in * limitations under the License. */ -//JAVA TO C# CONVERTER TODO TASK: This Java 'import static' statement cannot be converted to C#: -// import static Character.UnicodeBlock.*; - using org.apache.lucene.analysis.util; -//JAVA TO C# CONVERTER TODO TASK: This Java 'import static' statement cannot be converted to C#: -// import static org.apache.lucene.analysis.util.StemmerUtil.*; - - /// - /// Normalizes the Unicode representation of text in Indian languages. - /// - /// Follows guidelines from Unicode 5.2, chapter 6, South Asian Scripts I - /// and graphical decompositions from http://ldc.upenn.edu/myl/IndianScriptsUnicode.html - /// - /// - public class IndicNormalizer - { - - private class ScriptData - { - internal readonly int flag; - internal readonly int @base; - internal BitArray decompMask; - - internal ScriptData(int flag, int @base) - { - this.flag = flag; - this.@base = @base; - } - } - - private static readonly IdentityHashMap scripts = new IdentityHashMap(9); - - private static int flag(char.UnicodeBlock ub) - { - return scripts.get(ub).flag; - } - - static IndicNormalizer() - { - scripts.put(DEVANAGARI, new ScriptData(1, 0x0900)); - scripts.put(BENGALI, new ScriptData(2, 0x0980)); - scripts.put(GURMUKHI, new ScriptData(4, 0x0A00)); - scripts.put(GUJARATI, new ScriptData(8, 0x0A80)); - scripts.put(ORIYA, new ScriptData(16, 0x0B00)); - scripts.put(TAMIL, new ScriptData(32, 0x0B80)); - scripts.put(TELUGU, new ScriptData(64, 0x0C00)); - scripts.put(KANNADA, new ScriptData(128, 0x0C80)); - scripts.put(MALAYALAM, new ScriptData(256, 0x0D00)); - foreach (ScriptData sd in scripts.values()) - { - sd.decompMask = new BitArray(0x7F); - for (int i = 0; i < decompositions.Length; i++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int ch = decompositions[i][0]; - int ch = decompositions[i][0]; -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int flags = decompositions[i][4]; - int flags = decompositions[i][4]; - if ((flags & sd.flag) != 0) - { - sd.decompMask.Set(ch, true); - } - } - } - } - - /// - /// Decompositions according to Unicode 5.2, - /// and http://ldc.upenn.edu/myl/IndianScriptsUnicode.html - /// - /// Most of these are not handled by unicode normalization anyway. - /// - /// The numbers here represent offsets into the respective codepages, - /// with -1 representing null and 0xFF representing zero-width joiner. - /// - /// the columns are: ch1, ch2, ch3, res, flags - /// ch1, ch2, and ch3 are the decomposition - /// res is the composition, and flags are the scripts to which it applies. - /// - private static readonly int[][] decompositions = {}; - - - /// - /// Normalizes input text, and returns the new length. - /// The length will always be less than or equal to the existing length. - /// - /// input text - /// valid length - /// normalized length - public virtual int normalize(char[] text, int len) - { - for (int i = 0; i < len; i++) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final Character.UnicodeBlock block = Character.UnicodeBlock.of(text[i]); - char.UnicodeBlock block = char.UnicodeBlock.of(text[i]); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final ScriptData sd = scripts.get(block); - ScriptData sd = scripts.get(block); - if (sd != null) - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int ch = text[i] - sd.base; - int ch = text[i] - sd.@base; - if (sd.decompMask.Get(ch)) - { - len = compose(ch, block, sd, text, i, len); - } - } - } - return len; - } - - /// - /// Compose into standard form any compositions in the decompositions table. - /// - private int compose(int ch0, char.UnicodeBlock block0, ScriptData sd, char[] text, int pos, int len) - { - if (pos + 1 >= len) // need at least 2 chars! - { - return len; - } - -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final int ch1 = text[pos + 1] - sd.base; - int ch1 = text[pos + 1] - sd.@base; -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final Character.UnicodeBlock block1 = Character.UnicodeBlock.of(text[pos + 1]); - char.UnicodeBlock block1 = char.UnicodeBlock.of(text[pos + 1]); - if (block1 != block0) // needs to be the same writing system - { - return len; - } - - int ch2 = -1; - - if (pos + 2 < len) - { - ch2 = text[pos + 2] - sd.@base; - char.UnicodeBlock block2 = char.UnicodeBlock.of(text[pos + 2]); - if (text[pos + 2] == '\u200D') // ZWJ - { - ch2 = 0xFF; - } - else if (block2 != block1) // still allow a 2-char match - { - ch2 = -1; - } - } - - for (int i = 0; i < decompositions.Length; i++) - { - if (decompositions[i][0] == ch0 && (decompositions[i][4] & sd.flag) != 0) - { - if (decompositions[i][1] == ch1 && (decompositions[i][2] < 0 || decompositions[i][2] == ch2)) - { - text[pos] = (char)(sd.@base + decompositions[i][3]); - len = StemmerUtil.delete(text, pos + 1, len); - if (decompositions[i][2] >= 0) - { - len = StemmerUtil.delete(text, pos + 1, len); - } - return len; - } - } - } - - return len; - } - } + /// + /// Normalizes the Unicode representation of text in Indian languages. + /// + /// Follows guidelines from Unicode 5.2, chapter 6, South Asian Scripts I + /// and graphical decompositions from http://ldc.upenn.edu/myl/IndianScriptsUnicode.html + /// + /// + public class IndicNormalizer + { + // LUCENENET NOTE: This class was refactored from its Java couterpart, + // favoring the .NET Regex class to determine the "Unicode Block" rather than + // porting over that part of the Java Character class. + // References: + // https://msdn.microsoft.com/en-us/library/20bw873z.aspx#SupportedNamedBlocks + // http://stackoverflow.com/a/11414800/181087 + + private class ScriptData + { + internal readonly UnicodeBlock flag; + internal readonly int @base; + internal BitArray decompMask; + + internal ScriptData(UnicodeBlock flag, int @base) + { + this.flag = flag; + this.@base = @base; + } + } + + private static readonly IDictionary scripts = new Dictionary(); + + [Flags] + internal enum UnicodeBlock + { + DEVANAGARI = 1, + BENGALI = 2, + GURMUKHI = 4, + GUJARATI = 8, + ORIYA = 16, + TAMIL = 32, + TELUGU = 64, + KANNADA = 128, + MALAYALAM = 256 + } + + static IndicNormalizer() + { + // Initialize jagged array + decompositions = new int[72][] + { + /* devanagari, gujarati vowel candra O */ + new int[] { 0x05, 0x3E, 0x45, 0x11, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* devanagari short O */ + new int[] { 0x05, 0x3E, 0x46, 0x12, (int)UnicodeBlock.DEVANAGARI }, + /* devanagari, gujarati letter O */ + new int[] { 0x05, 0x3E, 0x47, 0x13, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* devanagari letter AI, gujarati letter AU */ + new int[] { 0x05, 0x3E, 0x48, 0x14, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* devanagari, bengali, gurmukhi, gujarati, oriya AA */ + new int[] { 0x05, 0x3E, -1, 0x06, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.BENGALI | (int)UnicodeBlock.GURMUKHI | (int)UnicodeBlock.GUJARATI | (int)UnicodeBlock.ORIYA }, + /* devanagari letter candra A */ + new int[] { 0x05, 0x45, -1, 0x72, (int)UnicodeBlock.DEVANAGARI }, + /* gujarati vowel candra E */ + new int[] { 0x05, 0x45, -1, 0x0D, (int)UnicodeBlock.GUJARATI }, + /* devanagari letter short A */ + new int[] { 0x05, 0x46, -1, 0x04, (int)UnicodeBlock.DEVANAGARI }, + /* gujarati letter E */ + new int[] { 0x05, 0x47, -1, 0x0F, (int)UnicodeBlock.GUJARATI }, + /* gurmukhi, gujarati letter AI */ + new int[] { 0x05, 0x48, -1, 0x10, (int)UnicodeBlock.GURMUKHI | (int)UnicodeBlock.GUJARATI }, + /* devanagari, gujarati vowel candra O */ + new int[] { 0x05, 0x49, -1, 0x11, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* devanagari short O */ + new int[] { 0x05, 0x4A, -1, 0x12, (int)UnicodeBlock.DEVANAGARI }, + /* devanagari, gujarati letter O */ + new int[] { 0x05, 0x4B, -1, 0x13, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* devanagari letter AI, gurmukhi letter AU, gujarati letter AU */ + new int[] { 0x05, 0x4C, -1, 0x14, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GURMUKHI | (int)UnicodeBlock.GUJARATI }, + /* devanagari, gujarati vowel candra O */ + new int[] { 0x06, 0x45, -1, 0x11, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* devanagari short O */ + new int[] { 0x06, 0x46, -1, 0x12, (int)UnicodeBlock.DEVANAGARI }, + /* devanagari, gujarati letter O */ + new int[] { 0x06, 0x47, -1, 0x13, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* devanagari letter AI, gujarati letter AU */ + new int[] { 0x06, 0x48, -1, 0x14, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* malayalam letter II */ + new int[] { 0x07, 0x57, -1, 0x08, (int)UnicodeBlock.MALAYALAM }, + /* devanagari letter UU */ + new int[] { 0x09, 0x41, -1, 0x0A, (int)UnicodeBlock.DEVANAGARI }, + /* tamil, malayalam letter UU (some styles) */ + new int[] { 0x09, 0x57, -1, 0x0A, (int)UnicodeBlock.TAMIL | (int)UnicodeBlock.MALAYALAM }, + /* malayalam letter AI */ + new int[] { 0x0E, 0x46, -1, 0x10, (int)UnicodeBlock.MALAYALAM }, + /* devanagari candra E */ + new int[] { 0x0F, 0x45, -1, 0x0D, (int)UnicodeBlock.DEVANAGARI }, + /* devanagari short E */ + new int[] { 0x0F, 0x46, -1, 0x0E, (int)UnicodeBlock.DEVANAGARI }, + /* devanagari AI */ + new int[] { 0x0F, 0x47, -1, 0x10, (int)UnicodeBlock.DEVANAGARI }, + /* oriya AI */ + new int[] { 0x0F, 0x57, -1, 0x10, (int)UnicodeBlock.ORIYA }, + /* malayalam letter OO */ + new int[] { 0x12, 0x3E, -1, 0x13, (int)UnicodeBlock.MALAYALAM }, + /* telugu, kannada letter AU */ + new int[] { 0x12, 0x4C, -1, 0x14, (int)UnicodeBlock.TELUGU | (int)UnicodeBlock.KANNADA }, + /* telugu letter OO */ + new int[] { 0x12, 0x55, -1, 0x13, (int)UnicodeBlock.TELUGU }, + /* tamil, malayalam letter AU */ + new int[] { 0x12, 0x57, -1, 0x14, (int)UnicodeBlock.TAMIL | (int)UnicodeBlock.MALAYALAM }, + /* oriya letter AU */ + new int[] { 0x13, 0x57, -1, 0x14, (int)UnicodeBlock.ORIYA }, + /* devanagari qa */ + new int[] { 0x15, 0x3C, -1, 0x58, (int)UnicodeBlock.DEVANAGARI }, + /* devanagari, gurmukhi khha */ + new int[] { 0x16, 0x3C, -1, 0x59, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GURMUKHI }, + /* devanagari, gurmukhi ghha */ + new int[] { 0x17, 0x3C, -1, 0x5A, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GURMUKHI }, + /* devanagari, gurmukhi za */ + new int[] { 0x1C, 0x3C, -1, 0x5B, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GURMUKHI }, + /* devanagari dddha, bengali, oriya rra */ + new int[] { 0x21, 0x3C, -1, 0x5C, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.BENGALI | (int)UnicodeBlock.ORIYA }, + /* devanagari, bengali, oriya rha */ + new int[] { 0x22, 0x3C, -1, 0x5D, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.BENGALI | (int)UnicodeBlock.ORIYA }, + /* malayalam chillu nn */ + new int[] { 0x23, 0x4D, 0xFF, 0x7A, (int)UnicodeBlock.MALAYALAM }, + /* bengali khanda ta */ + new int[] { 0x24, 0x4D, 0xFF, 0x4E, (int)UnicodeBlock.BENGALI }, + /* devanagari nnna */ + new int[] { 0x28, 0x3C, -1, 0x29, (int)UnicodeBlock.DEVANAGARI }, + /* malayalam chillu n */ + new int[] { 0x28, 0x4D, 0xFF, 0x7B, (int)UnicodeBlock.MALAYALAM }, + /* devanagari, gurmukhi fa */ + new int[] { 0x2B, 0x3C, -1, 0x5E, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GURMUKHI }, + /* devanagari, bengali yya */ + new int[] { 0x2F, 0x3C, -1, 0x5F, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.BENGALI }, + /* telugu letter vocalic R */ + new int[] { 0x2C, 0x41, 0x41, 0x0B, (int)UnicodeBlock.TELUGU }, + /* devanagari rra */ + new int[] { 0x30, 0x3C, -1, 0x31, (int)UnicodeBlock.DEVANAGARI }, + /* malayalam chillu rr */ + new int[] { 0x30, 0x4D, 0xFF, 0x7C, (int)UnicodeBlock.MALAYALAM }, + /* malayalam chillu l */ + new int[] { 0x32, 0x4D, 0xFF, 0x7D, (int)UnicodeBlock.MALAYALAM }, + /* devanagari llla */ + new int[] { 0x33, 0x3C, -1, 0x34, (int)UnicodeBlock.DEVANAGARI }, + /* malayalam chillu ll */ + new int[] { 0x33, 0x4D, 0xFF, 0x7E, (int)UnicodeBlock.MALAYALAM }, + /* telugu letter MA */ + new int[] { 0x35, 0x41, -1, 0x2E, (int)UnicodeBlock.TELUGU }, + /* devanagari, gujarati vowel sign candra O */ + new int[] { 0x3E, 0x45, -1, 0x49, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* devanagari vowel sign short O */ + new int[] { 0x3E, 0x46, -1, 0x4A, (int)UnicodeBlock.DEVANAGARI }, + /* devanagari, gujarati vowel sign O */ + new int[] { 0x3E, 0x47, -1, 0x4B, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* devanagari, gujarati vowel sign AU */ + new int[] { 0x3E, 0x48, -1, 0x4C, (int)UnicodeBlock.DEVANAGARI | (int)UnicodeBlock.GUJARATI }, + /* kannada vowel sign II */ + new int[] { 0x3F, 0x55, -1, 0x40, (int)UnicodeBlock.KANNADA }, + /* gurmukhi vowel sign UU (when stacking) */ + new int[] { 0x41, 0x41, -1, 0x42, (int)UnicodeBlock.GURMUKHI }, + /* tamil, malayalam vowel sign O */ + new int[] { 0x46, 0x3E, -1, 0x4A, (int)UnicodeBlock.TAMIL | (int)UnicodeBlock.MALAYALAM }, + /* kannada vowel sign OO */ + new int[] { 0x46, 0x42, 0x55, 0x4B, (int)UnicodeBlock.KANNADA }, + /* kannada vowel sign O */ + new int[] { 0x46, 0x42, -1, 0x4A, (int)UnicodeBlock.KANNADA }, + /* malayalam vowel sign AI (if reordered twice) */ + new int[] { 0x46, 0x46, -1, 0x48, (int)UnicodeBlock.MALAYALAM }, + /* telugu, kannada vowel sign EE */ + new int[] { 0x46, 0x55, -1, 0x47, (int)UnicodeBlock.TELUGU | (int)UnicodeBlock.KANNADA }, + /* telugu, kannada vowel sign AI */ + new int[] { 0x46, 0x56, -1, 0x48, (int)UnicodeBlock.TELUGU | (int)UnicodeBlock.KANNADA }, + /* tamil, malayalam vowel sign AU */ + new int[] { 0x46, 0x57, -1, 0x4C, (int)UnicodeBlock.TAMIL | (int)UnicodeBlock.MALAYALAM }, + /* bengali, oriya vowel sign O, tamil, malayalam vowel sign OO */ + new int[] { 0x47, 0x3E, -1, 0x4B, (int)UnicodeBlock.BENGALI | (int)UnicodeBlock.ORIYA | (int)UnicodeBlock.TAMIL | (int)UnicodeBlock.MALAYALAM }, + /* bengali, oriya vowel sign AU */ + new int[] { 0x47, 0x57, -1, 0x4C, (int)UnicodeBlock.BENGALI | (int)UnicodeBlock.ORIYA }, + /* kannada vowel sign OO */ + new int[] { 0x4A, 0x55, -1, 0x4B, (int)UnicodeBlock.KANNADA }, + /* gurmukhi letter I */ + new int[] { 0x72, 0x3F, -1, 0x07, (int)UnicodeBlock.GURMUKHI }, + /* gurmukhi letter II */ + new int[] { 0x72, 0x40, -1, 0x08, (int)UnicodeBlock.GURMUKHI }, + /* gurmukhi letter EE */ + new int[] { 0x72, 0x47, -1, 0x0F, (int)UnicodeBlock.GURMUKHI }, + /* gurmukhi letter U */ + new int[] { 0x73, 0x41, -1, 0x09, (int)UnicodeBlock.GURMUKHI }, + /* gurmukhi letter UU */ + new int[] { 0x73, 0x42, -1, 0x0A, (int)UnicodeBlock.GURMUKHI }, + /* gurmukhi letter OO */ + new int[] { 0x73, 0x4B, -1, 0x13, (int)UnicodeBlock.GURMUKHI } + }; + + scripts[new Regex(@"\p{IsDevanagari}", RegexOptions.Compiled)] = new ScriptData(UnicodeBlock.DEVANAGARI, 0x0900); + scripts[new Regex(@"\p{IsBengali}", RegexOptions.Compiled)] = new ScriptData(UnicodeBlock.BENGALI, 0x0980); + scripts[new Regex(@"\p{IsGurmukhi}", RegexOptions.Compiled)] = new ScriptData(UnicodeBlock.GURMUKHI, 0x0A00); + scripts[new Regex(@"\p{IsGujarati}", RegexOptions.Compiled)] = new ScriptData(UnicodeBlock.GUJARATI, 0x0A80); + scripts[new Regex(@"\p{IsOriya}", RegexOptions.Compiled)] = new ScriptData(UnicodeBlock.ORIYA, 0x0B00); + scripts[new Regex(@"\p{IsTamil}", RegexOptions.Compiled)] = new ScriptData(UnicodeBlock.TAMIL, 0x0B80); + scripts[new Regex(@"\p{IsTelugu}", RegexOptions.Compiled)] = new ScriptData(UnicodeBlock.TELUGU, 0x0C00); + scripts[new Regex(@"\p{IsKannada}", RegexOptions.Compiled)] = new ScriptData(UnicodeBlock.KANNADA, 0x0C80); + scripts[new Regex(@"\p{IsMalayalam}", RegexOptions.Compiled)] = new ScriptData(UnicodeBlock.MALAYALAM, 0x0D00); + + foreach (ScriptData sd in scripts.Values) + { + sd.decompMask = new BitArray(0x7F); + for (int i = 0; i < decompositions.Length; i++) + { + int ch = decompositions[i][0]; + int flags = decompositions[i][4]; + if ((flags & (int)sd.flag) != 0) + { + sd.decompMask.Set(ch, true); + } + } + } + } + + /// + /// Decompositions according to Unicode 5.2, + /// and http://ldc.upenn.edu/myl/IndianScriptsUnicode.html + /// + /// Most of these are not handled by unicode normalization anyway. + /// + /// The numbers here represent offsets into the respective codepages, + /// with -1 representing null and 0xFF representing zero-width joiner. + /// + /// the columns are: ch1, ch2, ch3, res, flags + /// ch1, ch2, and ch3 are the decomposition + /// res is the composition, and flags are the scripts to which it applies. + /// + private static readonly int[][] decompositions = { }; + + + /// + /// Normalizes input text, and returns the new length. + /// The length will always be less than or equal to the existing length. + /// + /// input text + /// valid length + /// normalized length + public virtual int Normalize(char[] text, int len) + { + for (int i = 0; i < len; i++) + { + var block = GetBlockForChar(text[i]); + ScriptData sd = scripts.ContainsKey(block) ? scripts[block] : null; + if (sd != null) + { + int ch = text[i] - sd.@base; + if (sd.decompMask.Get(ch)) + { + len = Compose(ch, block, sd, text, i, len); + } + } + } + return len; + } + + /// + /// Compose into standard form any compositions in the decompositions table. + /// + private int Compose(int ch0, Regex block0, ScriptData sd, char[] text, int pos, int len) + { + if (pos + 1 >= len) // need at least 2 chars! + { + return len; + } + + int ch1 = text[pos + 1] - sd.@base; + var block1 = GetBlockForChar(text[pos + 1]); + if (block1 != block0) // needs to be the same writing system + { + return len; + } + + int ch2 = -1; + + if (pos + 2 < len) + { + ch2 = text[pos + 2] - sd.@base; + var block2 = GetBlockForChar(text[pos + 2]); + if (text[pos + 2] == '\u200D') // ZWJ + { + ch2 = 0xFF; + } + else if (block2 != block1) // still allow a 2-char match + { + ch2 = -1; + } + } + + for (int i = 0; i < decompositions.Length; i++) + { + if (decompositions[i][0] == ch0 && (decompositions[i][4] & (int)sd.flag) != 0) + { + if (decompositions[i][1] == ch1 && (decompositions[i][2] < 0 || decompositions[i][2] == ch2)) + { + text[pos] = (char)(sd.@base + decompositions[i][3]); + len = StemmerUtil.Delete(text, pos + 1, len); + if (decompositions[i][2] >= 0) + { + len = StemmerUtil.Delete(text, pos + 1, len); + } + return len; + } + } + } + + return len; + } + + /// + /// LUCENENET: Returns the unicode block for the specified character + /// + private Regex GetBlockForChar(char c) + { + string charAsString = c.ToString(); + foreach (var block in scripts.Keys) + { + if (block.IsMatch(charAsString)) + { + return block; + } + } + // return a regex that never matches, nor is in our scripts dictionary + return new Regex(@"[^\S\s]"); + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/In/IndicTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/In/IndicTokenizer.cs index 2355448d55..51172672c6 100644 --- a/src/Lucene.Net.Analysis.Common/Analysis/In/IndicTokenizer.cs +++ b/src/Lucene.Net.Analysis.Common/Analysis/In/IndicTokenizer.cs @@ -1,9 +1,13 @@ -using System; - -namespace org.apache.lucene.analysis.@in +using Lucene.Net.Analysis.Util; +using Lucene.Net.Support; +using Lucene.Net.Util; +using System; +using System.Globalization; +using System.IO; + +namespace Lucene.Net.Analysis.In { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -20,29 +24,31 @@ namespace org.apache.lucene.analysis.@in * limitations under the License. */ - using CharTokenizer = org.apache.lucene.analysis.util.CharTokenizer; - using StandardTokenizer = org.apache.lucene.analysis.standard.StandardTokenizer; // javadocs - using Version = org.apache.lucene.util.Version; - - /// - /// Simple Tokenizer for text in Indian Languages. - /// @deprecated (3.6) Use instead. - [Obsolete("(3.6) Use instead.")] - public sealed class IndicTokenizer : CharTokenizer - { - - public IndicTokenizer(Version matchVersion, AttributeFactory factory, Reader input) : base(matchVersion, factory, input) - { - } - - public IndicTokenizer(Version matchVersion, Reader input) : base(matchVersion, input) - { - } - - protected internal override bool isTokenChar(int c) - { - return char.IsLetter(c) || char.getType(c) == char.NON_SPACING_MARK || char.getType(c) == char.FORMAT || char.getType(c) == char.COMBINING_SPACING_MARK; - } - } - + /// + /// Simple Tokenizer for text in Indian Languages. + /// @deprecated (3.6) Use instead. + [Obsolete("(3.6) Use StandardTokenizer instead.")] + public sealed class IndicTokenizer : CharTokenizer + { + + public IndicTokenizer(LuceneVersion matchVersion, AttributeFactory factory, TextReader input) + : base(matchVersion, factory, input) + { + } + + public IndicTokenizer(LuceneVersion matchVersion, TextReader input) + : base(matchVersion, input) + { + } + + protected override bool IsTokenChar(char c) // LUCENENET TODO: Change parameter back to int (for codepoint) rather than a single char since this could contain surrogate pairs + { + UnicodeCategory category = Character.GetType(c); + + return Character.IsLetter(c) || + category == UnicodeCategory.NonSpacingMark || + category == UnicodeCategory.Format || + category == UnicodeCategory.SpacingCombiningMark; + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Snowball/hungarian_stop.txt b/src/Lucene.Net.Analysis.Common/Analysis/Snowball/hungarian_stop.txt new file mode 100644 index 0000000000..37526da8aa --- /dev/null +++ b/src/Lucene.Net.Analysis.Common/Analysis/Snowball/hungarian_stop.txt @@ -0,0 +1,211 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/hungarian/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + | + | NOTE: To use this file with StopFilterFactory, you must specify format="snowball" + +| Hungarian stop word list +| prepared by Anna Tordai + +a +ahogy +ahol +aki +akik +akkor +alatt +által +általában +amely +amelyek +amelyekben +amelyeket +amelyet +amelynek +ami +amit +amolyan +amíg +amikor +át +abban +ahhoz +annak +arra +arról +az +azok +azon +azt +azzal +azért +aztán +azután +azonban +bár +be +belül +benne +cikk +cikkek +cikkeket +csak +de +e +eddig +egész +egy +egyes +egyetlen +egyéb +egyik +egyre +ekkor +el +elég +ellen +elő +először +előtt +első +én +éppen +ebben +ehhez +emilyen +ennek +erre +ez +ezt +ezek +ezen +ezzel +ezért +és +fel +felé +hanem +hiszen +hogy +hogyan +igen +így +illetve +ill. +ill +ilyen +ilyenkor +ison +ismét +itt +jó +jól +jobban +kell +kellett +keresztül +keressünk +ki +kívül +között +közül +legalább +lehet +lehetett +legyen +lenne +lenni +lesz +lett +maga +magát +majd +majd +már +más +másik +meg +még +mellett +mert +mely +melyek +mi +mit +míg +miért +milyen +mikor +minden +mindent +mindenki +mindig +mint +mintha +mivel +most +nagy +nagyobb +nagyon +ne +néha +nekem +neki +nem +néhány +nélkül +nincs +olyan +ott +össze +ő +ők +őket +pedig +persze +rá +s +saját +sem +semmi +sok +sokat +sokkal +számára +szemben +szerint +szinte +talán +tehát +teljes +tovább +továbbá +több +úgy +ugyanis +új +újabb +újra +után +utána +utolsó +vagy +vagyis +valaki +valami +valamint +való +vagyok +van +vannak +volt +voltam +voltak +voltunk +vissza +vele +viszont +volna diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index ae6cc5fe26..6e497812b9 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -184,6 +184,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -539,6 +559,18 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj index a74ed0b26b..615d1a0a31 100644 --- a/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj +++ b/src/Lucene.Net.Analysis.Common/Lucene.Net.Analysis.Common.csproj @@ -42,6 +42,8 @@ + + @@ -91,6 +93,19 @@ + + + + + + + + + + + + + @@ -481,6 +496,7 @@ + diff --git a/src/Lucene.Net.Core/Analysis/Tokenattributes/ICharTermAttribute.cs b/src/Lucene.Net.Core/Analysis/Tokenattributes/ICharTermAttribute.cs index bca2d6532e..76e9090f59 100644 --- a/src/Lucene.Net.Core/Analysis/Tokenattributes/ICharTermAttribute.cs +++ b/src/Lucene.Net.Core/Analysis/Tokenattributes/ICharTermAttribute.cs @@ -75,6 +75,13 @@ public interface ICharTermAttribute : IAttribute, ICloneable ICharTermAttribute SetEmpty(); // the following methods are redefined to get rid of IOException declaration: + + /// + /// Appends the contents of the {@code ICharSequence} to this character sequence. + ///

    The characters of the {@code ICharSequence} argument are appended, in order, increasing the length of + /// this sequence by the length of the argument. If argument is {@code null}, then the four + /// characters {@code "null"} are appended. + ///

    ICharTermAttribute Append(ICharSequence csq); ICharTermAttribute Append(ICharSequence csq, int start, int end); @@ -106,5 +113,7 @@ public interface ICharTermAttribute : IAttribute, ICloneable /// characters {@code "null"} are appended. ///
    + /// Analyzer for Hindi. + /// + /// + /// + /// You must specify the required + /// compatibility when creating HindiAnalyzer: + ///
      + ///
    • As of 3.6, StandardTokenizer is used for tokenization + ///
    + ///
    + ///
    + /// for Thai language. It uses to break words. + /// + /// + /// + /// You must specify the required + /// compatibility when creating ThaiAnalyzer: + ///
      + ///
    • As of 3.6, a set of Thai stopwords is used by default + ///
    + ///
    + ///
    ICharTermAttribute Append(ICharTermAttribute termAtt); + + ICharSequence SubSequence(int start, int end); } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestCompoundWordTokenFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestCompoundWordTokenFilter.cs index 7aa8a77763..1feb3907c5 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestCompoundWordTokenFilter.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestCompoundWordTokenFilter.cs @@ -1,7 +1,16 @@ -namespace org.apache.lucene.analysis.compound +using Lucene.Net.Analysis.CharFilters; +using Lucene.Net.Analysis.Compound.Hyphenation; +using Lucene.Net.Analysis.Core; +using Lucene.Net.Analysis.Tokenattributes; +using Lucene.Net.Analysis.Util; +using Lucene.Net.Support; +using Lucene.Net.Util; +using NUnit.Framework; +using System.IO; + +namespace Lucene.Net.Analysis.Compound { - - /* + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,395 +27,370 @@ * limitations under the License. */ + public class TestCompoundWordTokenFilter : BaseTokenStreamTestCase + { + + private static CharArraySet makeDictionary(params string[] dictionary) + { + return new CharArraySet(TEST_VERSION_CURRENT, Arrays.AsList(dictionary), true); + } - using MappingCharFilter = org.apache.lucene.analysis.charfilter.MappingCharFilter; - using NormalizeCharMap = org.apache.lucene.analysis.charfilter.NormalizeCharMap; - using HyphenationTree = org.apache.lucene.analysis.compound.hyphenation.HyphenationTree; - using KeywordTokenizer = org.apache.lucene.analysis.core.KeywordTokenizer; - using WhitespaceTokenizer = org.apache.lucene.analysis.core.WhitespaceTokenizer; - using CharArraySet = org.apache.lucene.analysis.util.CharArraySet; - using CharTermAttribute = org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - using Attribute = org.apache.lucene.util.Attribute; - using AttributeImpl = org.apache.lucene.util.AttributeImpl; - using InputSource = org.xml.sax.InputSource; - - public class TestCompoundWordTokenFilter : BaseTokenStreamTestCase - { - - private static CharArraySet makeDictionary(params string[] dictionary) - { - return new CharArraySet(TEST_VERSION_CURRENT, Arrays.asList(dictionary), true); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHyphenationCompoundWordsDA() throws Exception - public virtual void testHyphenationCompoundWordsDA() - { - CharArraySet dict = makeDictionary("læse", "hest"); - - InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); - HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.getHyphenationTree(@is); - - HyphenationCompoundWordTokenFilter tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("min veninde som er lidt af en læsehest"), MockTokenizer.WHITESPACE, false), hyphenator, dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); - assertTokenStreamContents(tf, new string[] {"min", "veninde", "som", "er", "lidt", "af", "en", "læsehest", "læse", "hest"}, new int[] {1, 1, 1, 1, 1, 1, 1, 1, 0, 0}); - } + [Test] + public virtual void TestHyphenationCompoundWordsDA() + { + CharArraySet dict = makeDictionary("læse", "hest"); -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHyphenationCompoundWordsDELongestMatch() throws Exception - public virtual void testHyphenationCompoundWordsDELongestMatch() - { - CharArraySet dict = makeDictionary("basketball", "basket", "ball", "kurv"); - - InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); - HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.getHyphenationTree(@is); - - // the word basket will not be added due to the longest match option - HyphenationCompoundWordTokenFilter tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("basketballkurv"), MockTokenizer.WHITESPACE, false), hyphenator, dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, 40, true); - assertTokenStreamContents(tf, new string[] {"basketballkurv", "basketball", "ball", "kurv"}, new int[] {1, 0, 0, 0}); - - } - - /// - /// With hyphenation-only, you can get a lot of nonsense tokens. - /// This can be controlled with the min/max subword size. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHyphenationOnly() throws Exception - public virtual void testHyphenationOnly() - { - InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); - HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.getHyphenationTree(@is); - - HyphenationCompoundWordTokenFilter tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("basketballkurv"), MockTokenizer.WHITESPACE, false), hyphenator, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, 2, 4); - - // min=2, max=4 - assertTokenStreamContents(tf, new string[] {"basketballkurv", "ba", "sket", "bal", "ball", "kurv"}); - - tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("basketballkurv"), MockTokenizer.WHITESPACE, false), hyphenator, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, 4, 6); - - // min=4, max=6 - assertTokenStreamContents(tf, new string[] {"basketballkurv", "basket", "sket", "ball", "lkurv", "kurv"}); - - tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("basketballkurv"), MockTokenizer.WHITESPACE, false), hyphenator, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, 4, 10); - - // min=4, max=10 - assertTokenStreamContents(tf, new string[] {"basketballkurv", "basket", "basketbal", "basketball", "sket", "sketbal", "sketball", "ball", "ballkurv", "lkurv", "kurv"}); - - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDumbCompoundWordsSE() throws Exception - public virtual void testDumbCompoundWordsSE() - { - CharArraySet dict = makeDictionary("Bil", "Dörr", "Motor", "Tak", "Borr", "Slag", "Hammar", "Pelar", "Glas", "Ögon", "Fodral", "Bas", "Fiol", "Makare", "Gesäll", "Sko", "Vind", "Rute", "Torkare", "Blad"); - - DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("Bildörr Bilmotor Biltak Slagborr Hammarborr Pelarborr Glasögonfodral Basfiolsfodral Basfiolsfodralmakaregesäll Skomakare Vindrutetorkare Vindrutetorkarblad abba"), MockTokenizer.WHITESPACE, false), dict); - - assertTokenStreamContents(tf, new string[] {"Bildörr", "Bil", "dörr", "Bilmotor", "Bil", "motor", "Biltak", "Bil", "tak", "Slagborr", "Slag", "borr", "Hammarborr", "Hammar", "borr", "Pelarborr", "Pelar", "borr", "Glasögonfodral", "Glas", "ögon", "fodral", "Basfiolsfodral", "Bas", "fiol", "fodral", "Basfiolsfodralmakaregesäll", "Bas", "fiol", "fodral", "makare", "gesäll", "Skomakare", "Sko", "makare", "Vindrutetorkare", "Vind", "rute", "torkare", "Vindrutetorkarblad", "Vind", "rute", "blad", "abba"}, new int[] {0, 0, 0, 8, 8, 8, 17, 17, 17, 24, 24, 24, 33, 33, 33, 44, 44, 44, 54, 54, 54, 54, 69, 69, 69, 69, 84, 84, 84, 84, 84, 84, 111, 111, 111, 121, 121, 121, 121, 137, 137, 137, 137, 156}, new int[] {7, 7, 7, 16, 16, 16, 23, 23, 23, 32, 32, 32, 43, 43, 43, 53, 53, 53, 68, 68, 68, 68, 83, 83, 83, 83, 110, 110, 110, 110, 110, 110, 120, 120, 120, 136, 136, 136, 136, 155, 155, 155, 155, 160}, new int[] {1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDumbCompoundWordsSELongestMatch() throws Exception - public virtual void testDumbCompoundWordsSELongestMatch() - { - CharArraySet dict = makeDictionary("Bil", "Dörr", "Motor", "Tak", "Borr", "Slag", "Hammar", "Pelar", "Glas", "Ögon", "Fodral", "Bas", "Fiols", "Makare", "Gesäll", "Sko", "Vind", "Rute", "Torkare", "Blad", "Fiolsfodral"); - - DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("Basfiolsfodralmakaregesäll"), MockTokenizer.WHITESPACE, false), dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, true); - - assertTokenStreamContents(tf, new string[] {"Basfiolsfodralmakaregesäll", "Bas", "fiolsfodral", "fodral", "makare", "gesäll"}, new int[] {0, 0, 0, 0, 0, 0}, new int[] {26, 26, 26, 26, 26, 26}, new int[] {1, 0, 0, 0, 0, 0}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testTokenEndingWithWordComponentOfMinimumLength() throws Exception - public virtual void testTokenEndingWithWordComponentOfMinimumLength() - { - CharArraySet dict = makeDictionary("ab", "cd", "ef"); - - DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcdef") - ), dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); - - assertTokenStreamContents(tf, new string[] {"abcdef", "ab", "cd", "ef"}, new int[] {0, 0, 0, 0}, new int[] {6, 6, 6, 6}, new int[] {1, 0, 0, 0}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testWordComponentWithLessThanMinimumLength() throws Exception - public virtual void testWordComponentWithLessThanMinimumLength() - { - CharArraySet dict = makeDictionary("abc", "d", "efg"); - - DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcdefg") - ), dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); - - // since "d" is shorter than the minimum subword size, it should not be added to the token stream - assertTokenStreamContents(tf, new string[] {"abcdefg", "abc", "efg"}, new int[] {0, 0, 0}, new int[] {7, 7, 7}, new int[] {1, 0, 0}); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testReset() throws Exception - public virtual void testReset() - { - CharArraySet dict = makeDictionary("Rind", "Fleisch", "Draht", "Schere", "Gesetz", "Aufgabe", "Überwachung"); - - Tokenizer wsTokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("Rindfleischüberwachungsgesetz")); - DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, wsTokenizer, dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); - - CharTermAttribute termAtt = tf.getAttribute(typeof(CharTermAttribute)); - tf.reset(); - assertTrue(tf.incrementToken()); - assertEquals("Rindfleischüberwachungsgesetz", termAtt.ToString()); - assertTrue(tf.incrementToken()); - assertEquals("Rind", termAtt.ToString()); - tf.end(); - tf.close(); - wsTokenizer.Reader = new StringReader("Rindfleischüberwachungsgesetz"); - tf.reset(); - assertTrue(tf.incrementToken()); - assertEquals("Rindfleischüberwachungsgesetz", termAtt.ToString()); - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRetainMockAttribute() throws Exception - public virtual void testRetainMockAttribute() - { - CharArraySet dict = makeDictionary("abc", "d", "efg"); - Tokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcdefg")); - TokenStream stream = new MockRetainAttributeFilter(tokenizer); - stream = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, stream, dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); - MockRetainAttribute retAtt = stream.addAttribute(typeof(MockRetainAttribute)); - stream.reset(); - while (stream.incrementToken()) - { - assertTrue("Custom attribute value was lost", retAtt.Retain); - } - - } - - public interface MockRetainAttribute : Attribute - { - bool Retain {set;get;} - } - - public sealed class MockRetainAttributeImpl : AttributeImpl, MockRetainAttribute - { - internal bool retain = false; - public override void clear() - { - retain = false; - } - public bool Retain - { - get - { - return retain; - } - set - { - this.retain = value; - } - } - public override void copyTo(AttributeImpl target) - { - MockRetainAttribute t = (MockRetainAttribute) target; - t.Retain = retain; - } - } - - private class MockRetainAttributeFilter : TokenFilter - { - - internal MockRetainAttribute retainAtt = addAttribute(typeof(MockRetainAttribute)); - - internal MockRetainAttributeFilter(TokenStream input) : base(input) - { - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: @Override public boolean incrementToken() throws java.io.IOException - public override bool incrementToken() - { - if (input.incrementToken()) - { - retainAtt.Retain = true; - return true; - } - else - { - return false; - } - } - } - - // SOLR-2891 - // *CompoundWordTokenFilter blindly adds term length to offset, but this can take things out of bounds - // wrt original text if a previous filter increases the length of the word (in this case ü -> ue) - // so in this case we behave like WDF, and preserve any modified offsets -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testInvalidOffsets() throws Exception - public virtual void testInvalidOffsets() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.util.CharArraySet dict = makeDictionary("fall"); - CharArraySet dict = makeDictionary("fall"); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.charfilter.NormalizeCharMap.Builder builder = new org.apache.lucene.analysis.charfilter.NormalizeCharMap.Builder(); - NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); - builder.add("ü", "ue"); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.charfilter.NormalizeCharMap normMap = builder.build(); - NormalizeCharMap normMap = builder.build(); - - Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, dict, normMap); - - assertAnalyzesTo(analyzer, "banküberfall", new string[] {"bankueberfall", "fall"}, new int[] {0, 0}, new int[] {12, 12}); - } - - private class AnalyzerAnonymousInnerClassHelper : Analyzer - { - private readonly TestCompoundWordTokenFilter outerInstance; - - private CharArraySet dict; - private NormalizeCharMap normMap; - - public AnalyzerAnonymousInnerClassHelper(TestCompoundWordTokenFilter outerInstance, CharArraySet dict, NormalizeCharMap normMap) - { - this.outerInstance = outerInstance; - this.dict = dict; - this.normMap = normMap; - } - - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - TokenFilter filter = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, dict); - return new TokenStreamComponents(tokenizer, filter); - } - - protected internal override Reader initReader(string fieldName, Reader reader) - { - return new MappingCharFilter(normMap, reader); - } - } - - /// - /// blast some random strings through the analyzer -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testRandomStrings() throws Exception - public virtual void testRandomStrings() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.util.CharArraySet dict = makeDictionary("a", "e", "i", "o", "u", "y", "bc", "def"); - CharArraySet dict = makeDictionary("a", "e", "i", "o", "u", "y", "bc", "def"); - Analyzer a = new AnalyzerAnonymousInnerClassHelper2(this, dict); - checkRandomData(random(), a, 1000 * RANDOM_MULTIPLIER); - - InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.compound.hyphenation.HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.getHyphenationTree(is); - HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.getHyphenationTree(@is); - Analyzer b = new AnalyzerAnonymousInnerClassHelper3(this, hyphenator); - checkRandomData(random(), b, 1000 * RANDOM_MULTIPLIER); - } - - private class AnalyzerAnonymousInnerClassHelper2 : Analyzer - { - private readonly TestCompoundWordTokenFilter outerInstance; - - private CharArraySet dict; - - public AnalyzerAnonymousInnerClassHelper2(TestCompoundWordTokenFilter outerInstance, CharArraySet dict) - { - this.outerInstance = outerInstance; - this.dict = dict; - } - - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - return new TokenStreamComponents(tokenizer, new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, dict)); - } - } - - private class AnalyzerAnonymousInnerClassHelper3 : Analyzer - { - private readonly TestCompoundWordTokenFilter outerInstance; - - private HyphenationTree hyphenator; - - public AnalyzerAnonymousInnerClassHelper3(TestCompoundWordTokenFilter outerInstance, HyphenationTree hyphenator) - { - this.outerInstance = outerInstance; - this.hyphenator = hyphenator; - } - - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - TokenFilter filter = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, hyphenator); - return new TokenStreamComponents(tokenizer, filter); - } - } - -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testEmptyTerm() throws Exception - public virtual void testEmptyTerm() - { -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.util.CharArraySet dict = makeDictionary("a", "e", "i", "o", "u", "y", "bc", "def"); - CharArraySet dict = makeDictionary("a", "e", "i", "o", "u", "y", "bc", "def"); - Analyzer a = new AnalyzerAnonymousInnerClassHelper4(this, dict); - checkOneTerm(a, "", ""); - - InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); -//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': -//ORIGINAL LINE: final org.apache.lucene.analysis.compound.hyphenation.HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.getHyphenationTree(is); - HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.getHyphenationTree(@is); - Analyzer b = new AnalyzerAnonymousInnerClassHelper5(this, hyphenator); - checkOneTerm(b, "", ""); - } - - private class AnalyzerAnonymousInnerClassHelper4 : Analyzer - { - private readonly TestCompoundWordTokenFilter outerInstance; - - private CharArraySet dict; - - public AnalyzerAnonymousInnerClassHelper4(TestCompoundWordTokenFilter outerInstance, CharArraySet dict) - { - this.outerInstance = outerInstance; - this.dict = dict; - } - - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new KeywordTokenizer(reader); - return new TokenStreamComponents(tokenizer, new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, dict)); - } - } - - private class AnalyzerAnonymousInnerClassHelper5 : Analyzer - { - private readonly TestCompoundWordTokenFilter outerInstance; - - private HyphenationTree hyphenator; - - public AnalyzerAnonymousInnerClassHelper5(TestCompoundWordTokenFilter outerInstance, HyphenationTree hyphenator) - { - this.outerInstance = outerInstance; - this.hyphenator = hyphenator; - } - - - protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader) - { - Tokenizer tokenizer = new KeywordTokenizer(reader); - TokenFilter filter = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, hyphenator); - return new TokenStreamComponents(tokenizer, filter); - } - } - } + //InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); + using (var @is = this.GetType().getResourceAsStream("da_UTF8.xml")) + { + HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.GetHyphenationTree(@is); + HyphenationCompoundWordTokenFilter tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("min veninde som er lidt af en læsehest"), MockTokenizer.WHITESPACE, false), hyphenator, dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); + AssertTokenStreamContents(tf, new string[] { "min", "veninde", "som", "er", "lidt", "af", "en", "læsehest", "læse", "hest" }, new int[] { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }); + } + } + + [Test] + public virtual void TestHyphenationCompoundWordsDELongestMatch() + { + CharArraySet dict = makeDictionary("basketball", "basket", "ball", "kurv"); + + //InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); + using (var @is = this.GetType().getResourceAsStream("da_UTF8.xml")) + { + HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.GetHyphenationTree(@is); + + // the word basket will not be added due to the longest match option + HyphenationCompoundWordTokenFilter tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("basketballkurv"), MockTokenizer.WHITESPACE, false), hyphenator, dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, 40, true); + AssertTokenStreamContents(tf, new string[] { "basketballkurv", "basketball", "ball", "kurv" }, new int[] { 1, 0, 0, 0 }); + } + } + + /// + /// With hyphenation-only, you can get a lot of nonsense tokens. + /// This can be controlled with the min/max subword size. + /// + [Test] + public virtual void TestHyphenationOnly() + { + //InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); + using (var @is = this.GetType().getResourceAsStream("da_UTF8.xml")) + { + HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.GetHyphenationTree(@is); + + HyphenationCompoundWordTokenFilter tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("basketballkurv"), MockTokenizer.WHITESPACE, false), hyphenator, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, 2, 4); + + // min=2, max=4 + AssertTokenStreamContents(tf, new string[] { "basketballkurv", "ba", "sket", "bal", "ball", "kurv" }); + + tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("basketballkurv"), MockTokenizer.WHITESPACE, false), hyphenator, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, 4, 6); + + // min=4, max=6 + AssertTokenStreamContents(tf, new string[] { "basketballkurv", "basket", "sket", "ball", "lkurv", "kurv" }); + + tf = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("basketballkurv"), MockTokenizer.WHITESPACE, false), hyphenator, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, 4, 10); + + // min=4, max=10 + AssertTokenStreamContents(tf, new string[] { "basketballkurv", "basket", "basketbal", "basketball", "sket", "sketbal", "sketball", "ball", "ballkurv", "lkurv", "kurv" }); + } + } + + [Test] + public virtual void TestDumbCompoundWordsSE() + { + CharArraySet dict = makeDictionary("Bil", "Dörr", "Motor", "Tak", "Borr", "Slag", "Hammar", "Pelar", "Glas", "Ögon", "Fodral", "Bas", "Fiol", "Makare", "Gesäll", "Sko", "Vind", "Rute", "Torkare", "Blad"); + + DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("Bildörr Bilmotor Biltak Slagborr Hammarborr Pelarborr Glasögonfodral Basfiolsfodral Basfiolsfodralmakaregesäll Skomakare Vindrutetorkare Vindrutetorkarblad abba"), MockTokenizer.WHITESPACE, false), dict); + + AssertTokenStreamContents(tf, new string[] { "Bildörr", "Bil", "dörr", "Bilmotor", "Bil", "motor", "Biltak", "Bil", "tak", "Slagborr", "Slag", "borr", "Hammarborr", "Hammar", "borr", "Pelarborr", "Pelar", "borr", "Glasögonfodral", "Glas", "ögon", "fodral", "Basfiolsfodral", "Bas", "fiol", "fodral", "Basfiolsfodralmakaregesäll", "Bas", "fiol", "fodral", "makare", "gesäll", "Skomakare", "Sko", "makare", "Vindrutetorkare", "Vind", "rute", "torkare", "Vindrutetorkarblad", "Vind", "rute", "blad", "abba" }, new int[] { 0, 0, 0, 8, 8, 8, 17, 17, 17, 24, 24, 24, 33, 33, 33, 44, 44, 44, 54, 54, 54, 54, 69, 69, 69, 69, 84, 84, 84, 84, 84, 84, 111, 111, 111, 121, 121, 121, 121, 137, 137, 137, 137, 156 }, new int[] { 7, 7, 7, 16, 16, 16, 23, 23, 23, 32, 32, 32, 43, 43, 43, 53, 53, 53, 68, 68, 68, 68, 83, 83, 83, 83, 110, 110, 110, 110, 110, 110, 120, 120, 120, 136, 136, 136, 136, 155, 155, 155, 155, 160 }, new int[] { 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 }); + } + + [Test] + public virtual void TestDumbCompoundWordsSELongestMatch() + { + CharArraySet dict = makeDictionary("Bil", "Dörr", "Motor", "Tak", "Borr", "Slag", "Hammar", "Pelar", "Glas", "Ögon", "Fodral", "Bas", "Fiols", "Makare", "Gesäll", "Sko", "Vind", "Rute", "Torkare", "Blad", "Fiolsfodral"); + + DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, new MockTokenizer(new StringReader("Basfiolsfodralmakaregesäll"), MockTokenizer.WHITESPACE, false), dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, true); + + AssertTokenStreamContents(tf, new string[] { "Basfiolsfodralmakaregesäll", "Bas", "fiolsfodral", "fodral", "makare", "gesäll" }, new int[] { 0, 0, 0, 0, 0, 0 }, new int[] { 26, 26, 26, 26, 26, 26 }, new int[] { 1, 0, 0, 0, 0, 0 }); + } + + [Test] + public virtual void TestTokenEndingWithWordComponentOfMinimumLength() + { + CharArraySet dict = makeDictionary("ab", "cd", "ef"); + + DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcdef") + ), dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); + + AssertTokenStreamContents(tf, new string[] { "abcdef", "ab", "cd", "ef" }, new int[] { 0, 0, 0, 0 }, new int[] { 6, 6, 6, 6 }, new int[] { 1, 0, 0, 0 }); + } + + [Test] + public virtual void TestWordComponentWithLessThanMinimumLength() + { + CharArraySet dict = makeDictionary("abc", "d", "efg"); + + DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcdefg") + ), dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); + + // since "d" is shorter than the minimum subword size, it should not be added to the token stream + AssertTokenStreamContents(tf, new string[] { "abcdefg", "abc", "efg" }, new int[] { 0, 0, 0 }, new int[] { 7, 7, 7 }, new int[] { 1, 0, 0 }); + } + + [Test] + public virtual void TestReset() + { + CharArraySet dict = makeDictionary("Rind", "Fleisch", "Draht", "Schere", "Gesetz", "Aufgabe", "Überwachung"); + + Tokenizer wsTokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("Rindfleischüberwachungsgesetz")); + DictionaryCompoundWordTokenFilter tf = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, wsTokenizer, dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); + + ICharTermAttribute termAtt = tf.GetAttribute(); + tf.Reset(); + assertTrue(tf.IncrementToken()); + assertEquals("Rindfleischüberwachungsgesetz", termAtt.ToString()); + assertTrue(tf.IncrementToken()); + assertEquals("Rind", termAtt.ToString()); + tf.End(); + tf.Dispose(); + wsTokenizer.Reader = new StringReader("Rindfleischüberwachungsgesetz"); + tf.Reset(); + assertTrue(tf.IncrementToken()); + assertEquals("Rindfleischüberwachungsgesetz", termAtt.ToString()); + } + + [Test] + public virtual void TestRetainMockAttribute() + { + CharArraySet dict = makeDictionary("abc", "d", "efg"); + Tokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, new StringReader("abcdefg")); + TokenStream stream = new MockRetainAttributeFilter(tokenizer); + stream = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, stream, dict, CompoundWordTokenFilterBase.DEFAULT_MIN_WORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MIN_SUBWORD_SIZE, CompoundWordTokenFilterBase.DEFAULT_MAX_SUBWORD_SIZE, false); + IMockRetainAttribute retAtt = stream.AddAttribute(); + stream.Reset(); + while (stream.IncrementToken()) + { + assertTrue("Custom attribute value was lost", retAtt.Retain); + } + + } + + public interface IMockRetainAttribute : IAttribute + { + bool Retain { set; get; } + } + + public sealed class MockRetainAttribute : Attribute, IMockRetainAttribute + { + internal bool retain = false; + public override void Clear() + { + retain = false; + } + public bool Retain + { + get + { + return retain; + } + set + { + this.retain = value; + } + } + public override void CopyTo(Attribute target) + { + IMockRetainAttribute t = (IMockRetainAttribute)target; + t.Retain = retain; + } + } + + private class MockRetainAttributeFilter : TokenFilter + { + + internal IMockRetainAttribute retainAtt; + + internal MockRetainAttributeFilter(TokenStream input) + : base(input) + { + retainAtt = AddAttribute(); + } + + public override sealed bool IncrementToken() + { + if (input.IncrementToken()) + { + retainAtt.Retain = true; + return true; + } + else + { + return false; + } + } + } + + // SOLR-2891 + // *CompoundWordTokenFilter blindly adds term length to offset, but this can take things out of bounds + // wrt original text if a previous filter increases the length of the word (in this case ü -> ue) + // so in this case we behave like WDF, and preserve any modified offsets + [Test] + public virtual void TestInvalidOffsets() + { + CharArraySet dict = makeDictionary("fall"); + NormalizeCharMap.Builder builder = new NormalizeCharMap.Builder(); + builder.Add("ü", "ue"); + NormalizeCharMap normMap = builder.Build(); + + Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, dict, normMap); + + AssertAnalyzesTo(analyzer, "banküberfall", new string[] { "bankueberfall", "fall" }, new int[] { 0, 0 }, new int[] { 12, 12 }); + } + + private class AnalyzerAnonymousInnerClassHelper : Analyzer + { + private readonly TestCompoundWordTokenFilter outerInstance; + + private CharArraySet dict; + private NormalizeCharMap normMap; + + public AnalyzerAnonymousInnerClassHelper(TestCompoundWordTokenFilter outerInstance, CharArraySet dict, NormalizeCharMap normMap) + { + this.outerInstance = outerInstance; + this.dict = dict; + this.normMap = normMap; + } + + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + TokenFilter filter = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, dict); + return new TokenStreamComponents(tokenizer, filter); + } + + public override TextReader InitReader(string fieldName, TextReader reader) + { + return new MappingCharFilter(normMap, reader); + } + } + + /// + /// blast some random strings through the analyzer + [Test] + public virtual void TestRandomStrings() + { + CharArraySet dict = makeDictionary("a", "e", "i", "o", "u", "y", "bc", "def"); + Analyzer a = new AnalyzerAnonymousInnerClassHelper2(this, dict); + CheckRandomData(Random(), a, 1000 * RANDOM_MULTIPLIER); + + //InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); + using (var @is = this.GetType().getResourceAsStream("da_UTF8.xml")) + { + HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.GetHyphenationTree(@is); + Analyzer b = new AnalyzerAnonymousInnerClassHelper3(this, hyphenator); + CheckRandomData(Random(), b, 1000 * RANDOM_MULTIPLIER); + } + } + + private class AnalyzerAnonymousInnerClassHelper2 : Analyzer + { + private readonly TestCompoundWordTokenFilter outerInstance; + + private CharArraySet dict; + + public AnalyzerAnonymousInnerClassHelper2(TestCompoundWordTokenFilter outerInstance, CharArraySet dict) + { + this.outerInstance = outerInstance; + this.dict = dict; + } + + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + return new TokenStreamComponents(tokenizer, new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, dict)); + } + } + + private class AnalyzerAnonymousInnerClassHelper3 : Analyzer + { + private readonly TestCompoundWordTokenFilter outerInstance; + + private HyphenationTree hyphenator; + + public AnalyzerAnonymousInnerClassHelper3(TestCompoundWordTokenFilter outerInstance, HyphenationTree hyphenator) + { + this.outerInstance = outerInstance; + this.hyphenator = hyphenator; + } + + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + TokenFilter filter = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, hyphenator); + return new TokenStreamComponents(tokenizer, filter); + } + } + + [Test] + public virtual void TestEmptyTerm() + { + CharArraySet dict = makeDictionary("a", "e", "i", "o", "u", "y", "bc", "def"); + Analyzer a = new AnalyzerAnonymousInnerClassHelper4(this, dict); + CheckOneTerm(a, "", ""); + + //InputSource @is = new InputSource(this.GetType().getResource("da_UTF8.xml").toExternalForm()); + using (var @is = this.GetType().getResourceAsStream("da_UTF8.xml")) + { + + HyphenationTree hyphenator = HyphenationCompoundWordTokenFilter.GetHyphenationTree(@is); + Analyzer b = new AnalyzerAnonymousInnerClassHelper5(this, hyphenator); + CheckOneTerm(b, "", ""); + } + } + + private class AnalyzerAnonymousInnerClassHelper4 : Analyzer + { + private readonly TestCompoundWordTokenFilter outerInstance; + + private CharArraySet dict; + + public AnalyzerAnonymousInnerClassHelper4(TestCompoundWordTokenFilter outerInstance, CharArraySet dict) + { + this.outerInstance = outerInstance; + this.dict = dict; + } + + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new KeywordTokenizer(reader); + return new TokenStreamComponents(tokenizer, new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, dict)); + } + } + + private class AnalyzerAnonymousInnerClassHelper5 : Analyzer + { + private readonly TestCompoundWordTokenFilter outerInstance; + + private HyphenationTree hyphenator; + + public AnalyzerAnonymousInnerClassHelper5(TestCompoundWordTokenFilter outerInstance, HyphenationTree hyphenator) + { + this.outerInstance = outerInstance; + this.hyphenator = hyphenator; + } + + + public override TokenStreamComponents CreateComponents(string fieldName, TextReader reader) + { + Tokenizer tokenizer = new KeywordTokenizer(reader); + TokenFilter filter = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, hyphenator); + return new TokenStreamComponents(tokenizer, filter); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestDictionaryCompoundWordTokenFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestDictionaryCompoundWordTokenFilterFactory.cs index dd219c0f2d..4d469b15fc 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestDictionaryCompoundWordTokenFilterFactory.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestDictionaryCompoundWordTokenFilterFactory.cs @@ -1,7 +1,10 @@ -namespace org.apache.lucene.analysis.compound -{ +using Lucene.Net.Analysis.Util; +using System.IO; +using NUnit.Framework; - /* +namespace Lucene.Net.Analysis.Compound +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,43 +21,37 @@ * limitations under the License. */ + /// + /// Simple tests to ensure the Dictionary compound filter factory is working. + /// + public class TestDictionaryCompoundWordTokenFilterFactory : BaseTokenStreamFactoryTestCase + { + /// + /// Ensure the filter actually decompounds text. + /// + [Test] + public virtual void TestDecompounding() + { + TextReader reader = new StringReader("I like to play softball"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("DictionaryCompoundWord", "dictionary", "compoundDictionary.txt").Create(stream); + AssertTokenStreamContents(stream, new string[] { "I", "like", "to", "play", "softball", "soft", "ball" }); + } - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - - /// - /// Simple tests to ensure the Dictionary compound filter factory is working. - /// - public class TestDictionaryCompoundWordTokenFilterFactory : BaseTokenStreamFactoryTestCase - { - /// - /// Ensure the filter actually decompounds text. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testDecompounding() throws Exception - public virtual void testDecompounding() - { - Reader reader = new StringReader("I like to play softball"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("DictionaryCompoundWord", "dictionary", "compoundDictionary.txt").create(stream); - assertTokenStreamContents(stream, new string[] {"I", "like", "to", "play", "softball", "soft", "ball"}); - } - - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenFilterFactory("DictionaryCompoundWord", "dictionary", "compoundDictionary.txt", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - } - + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenFilterFactory("DictionaryCompoundWord", "dictionary", "compoundDictionary.txt", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestHyphenationCompoundWordTokenFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestHyphenationCompoundWordTokenFilterFactory.cs index f19561852e..79bf1a5695 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestHyphenationCompoundWordTokenFilterFactory.cs +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestHyphenationCompoundWordTokenFilterFactory.cs @@ -1,7 +1,10 @@ -namespace org.apache.lucene.analysis.compound -{ +using Lucene.Net.Analysis.Util; +using NUnit.Framework; +using System.IO; - /* +namespace Lucene.Net.Analysis.Compound +{ + /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. @@ -18,60 +21,53 @@ * limitations under the License. */ + /// + /// Simple tests to ensure the Hyphenation compound filter factory is working. + /// + public class TestHyphenationCompoundWordTokenFilterFactory : BaseTokenStreamFactoryTestCase + { + /// + /// Ensure the factory works with hyphenation grammar+dictionary: using default options. + /// + [Test] + public virtual void TestHyphenationWithDictionary() + { + TextReader reader = new StringReader("min veninde som er lidt af en læsehest"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("HyphenationCompoundWord", "hyphenator", "da_UTF8.xml", "dictionary", "da_compoundDictionary.txt").Create(stream); - using BaseTokenStreamFactoryTestCase = org.apache.lucene.analysis.util.BaseTokenStreamFactoryTestCase; - - /// - /// Simple tests to ensure the Hyphenation compound filter factory is working. - /// - public class TestHyphenationCompoundWordTokenFilterFactory : BaseTokenStreamFactoryTestCase - { - /// - /// Ensure the factory works with hyphenation grammar+dictionary: using default options. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHyphenationWithDictionary() throws Exception - public virtual void testHyphenationWithDictionary() - { - Reader reader = new StringReader("min veninde som er lidt af en læsehest"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("HyphenationCompoundWord", "hyphenator", "da_UTF8.xml", "dictionary", "da_compoundDictionary.txt").create(stream); - - assertTokenStreamContents(stream, new string[] {"min", "veninde", "som", "er", "lidt", "af", "en", "læsehest", "læse", "hest"}, new int[] {1, 1, 1, 1, 1, 1, 1, 1, 0, 0}); - } - - /// - /// Ensure the factory works with no dictionary: using hyphenation grammar only. - /// Also change the min/max subword sizes from the default. When using no dictionary, - /// its generally necessary to tweak these, or you get lots of expansions. - /// -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testHyphenationOnly() throws Exception - public virtual void testHyphenationOnly() - { - Reader reader = new StringReader("basketballkurv"); - TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); - stream = tokenFilterFactory("HyphenationCompoundWord", "hyphenator", "da_UTF8.xml", "minSubwordSize", "2", "maxSubwordSize", "4").create(stream); + AssertTokenStreamContents(stream, new string[] { "min", "veninde", "som", "er", "lidt", "af", "en", "læsehest", "læse", "hest" }, new int[] { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }); + } - assertTokenStreamContents(stream, new string[] {"basketballkurv", "ba", "sket", "bal", "ball", "kurv"}); - } + /// + /// Ensure the factory works with no dictionary: using hyphenation grammar only. + /// Also change the min/max subword sizes from the default. When using no dictionary, + /// its generally necessary to tweak these, or you get lots of expansions. + /// + [Test] + public virtual void TestHyphenationOnly() + { + TextReader reader = new StringReader("basketballkurv"); + TokenStream stream = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false); + stream = TokenFilterFactory("HyphenationCompoundWord", "hyphenator", "da_UTF8.xml", "minSubwordSize", "2", "maxSubwordSize", "4").Create(stream); - /// - /// Test that bogus arguments result in exception -//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: -//ORIGINAL LINE: public void testBogusArguments() throws Exception - public virtual void testBogusArguments() - { - try - { - tokenFilterFactory("HyphenationCompoundWord", "hyphenator", "da_UTF8.xml", "bogusArg", "bogusValue"); - fail(); - } - catch (System.ArgumentException expected) - { - assertTrue(expected.Message.contains("Unknown parameters")); - } - } - } + AssertTokenStreamContents(stream, new string[] { "basketballkurv", "ba", "sket", "bal", "ball", "kurv" }); + } + /// + /// Test that bogus arguments result in exception + [Test] + public virtual void TestBogusArguments() + { + try + { + TokenFilterFactory("HyphenationCompoundWord", "hyphenator", "da_UTF8.xml", "bogusArg", "bogusValue"); + fail(); + } + catch (System.ArgumentException expected) + { + assertTrue(expected.Message.Contains("Unknown parameters")); + } + } + } } \ No newline at end of file diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/compoundDictionary.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/compoundDictionary.txt new file mode 100644 index 0000000000..f4977b5df7 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/compoundDictionary.txt @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# A set of words for testing the DictionaryCompound factory +soft +ball +team diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/da_UTF8.xml b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/da_UTF8.xml new file mode 100644 index 0000000000..2c8d203be6 --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/da_UTF8.xml @@ -0,0 +1,1208 @@ + + + + + + + + + + +aA +bB +cC +dD +eE +fF +gG +hH +iI +jJ +kK +lL +mM +nN +oO +pP +qQ +rR +sS +tT +uU +vV +wW +xX +yY +zZ +æÆ +øØ +åÅ + + + +.ae3 +.an3k +.an1s +.be5la +.be1t +.bi4tr +.der3i +.diagno5 +.her3 +.hoved3 +.ne4t5 +.om1 +.ove4 +.po1 +.til3 +.yd5r +ab5le +3abst +a3c +ade5la +5adg +a1e +5afg +5a4f1l +af3r +af4ri +5afs +a4gef +a4gi +ag5in +ag5si +3agti +a4gy +a3h +ais5t +a3j +a5ka +a3ke +a5kr +aku5 +a3la +a1le +a1li +al3k +4alkv +a1lo +al5si +a3lu +a1ly +am4pa +3analy +an4k5r +a3nu +3anv +a5o +a5pe +a3pi +a5po +a1ra +ar5af +1arb +a1re +5arg +a1ri +a3ro +a3sa +a3sc +a1si +a3sk +a3so +3a3sp +a3ste +a3sti +a1ta1 +a1te +a1ti +a4t5in +a1to +ato5v +a5tr +a1tu +a5va +a1ve +a5z +1ba +ba4ti +4bd +1be +be1k +be3ro +be5ru +be1s4 +be1tr +1bi +bi5sk +b1j +4b1n +1bo +bo4gr +bo3ra +bo5re +1br4 +4bs +bs5k +b3so +b1st +b5t +3bu +bu4s5tr +b5w +1by +by5s +4c1c +1ce +ce5ro +3ch +4ch. +ci4o +ck3 +5cy +3da +4d3af +d5anta +da4s +d1b +d1d4 +1de +de5d +4de4lem +der5eri +de4rig +de5sk +d1f +d1g +d3h +1di +di1e +di5l +d3j +d1k +d1l +d1m +4d1n +3do +4dop +d5ov +d1p +4drett +5d4reve +3drif +3driv +d5ros +d5ru +ds5an +ds5in +d1ski +d4sm +d4su +dsu5l +ds5vi +d3ta +d1te +dt5o +d5tr +dt5u +1du +dub5 +d1v +3dy +e5ad +e3af +e5ag +e3ak +e1al +ea4la +e3an +e5ap +e3at +e3bl +ebs3 +e1ci +ed5ar +edde4 +eddel5 +e4do +ed5ra +ed3re +ed3rin +ed4str +e3e +3eff +e3fr +3eft +e3gu +e1h +e3in +ei5s +e3je +e4j5el +e1ka +e3ke +e3kl +4e1ko +e5kr +ek5sa +3eksem +3eksp +e3ku +e1kv +e5ky +e3lad +el3ak +el3ar +e1las +e3le +e4lek +3elem +e1li +5elim +e3lo +el5sa +e5lu +e3ly +e4mad +em4p5le +em1s +en5ak +e4nan +4enn +e4no +en3so +e5nu +e5ol +e3op +e1or +e3ov +epi3 +e1pr +e3ra +er3af +e4rag +e4rak +e1re +e4ref +er5ege +5erhv +e1ri +e4rib +er1k +ero5d +er5ov +er3s +er5tr +e3rum +er5un +e5ry +e1ta +e1te +etek4s +e1ti +e3tj +e1to +e3tr +e3tu +e1ty +e3um +e3un +3eur +e1va +e3ve +e4v3erf +e1vi +e5x +1fa +fa4ce +fags3 +f1b +f1d +1fe +fej4 +fejl1 +f1f +f1g +f1h +1fi +f1k +3fl +1fo +for1en +fo4ri +f1p +f1s4 +4ft +f3ta +f1te +f1ti +f5to +f5tvi +1fu +f1v +3fy +1ga +g3art +g1b +g1d +1ge +4g5enden +ger3in +ge3s +g3f +g1g +g1h +1gi +gi4b +gi3st +5gj +g3k +g1l +g1m +3go +4g5om +g5ov +g3p +1gr +gs1a +gsde4len +g4se +gsha4 +g5sla +gs3or +gs1p +g5s4tide +g4str +gs1v +g3ta +g1te +g1ti +g5to +g3tr +gt4s +g3ud +gun5 +g3v +1gy +g5yd +4ha. +heds3 +he5s +4het +hi4e +hi4n5 +hi3s +ho5ko +ho5ve +4h3t +hun4 +hund3 +hvo4 +i1a +i3b +i4ble +i1c +i3dr +ids5k +i1el +i1en +i3er +i3et. +if3r +i3gu +i3h +i5i +i5j +i1ka +i1ke +ik1l +i5ko +ik3re +ik5ri +iks5t +ik4tu +i3ku +ik3v +i3lag +il3eg +il5ej +il5el +i3li +i4l5id +il3k +i1lo +il5u +i3mu +ind3t +5inf +ings1 +in3s +in4sv +inter1 +i3nu +i3od +i3og +i5ok +i3ol +ion4 +ions1 +i5o5r +i3ot +i5pi +i3pli +i5pr +i3re +i3ri +ir5t +i3sc +i3si +i4sm +is3p +i1ster +i3sti +i5sua +i1ta +i1te +i1ti +i3to +i3tr +it5re. +i1tu +i3ty +i1u +i1va +i1ve +i1vi +j3ag +jde4rer +jds1 +jek4to +4j5en. +j5k +j3le +j3li +jlmeld5 +jlmel4di +j3r +jre5 +ju3s +5kap +k5au +5kav +k5b +kel5s +ke3sk +ke5st +ke4t5a +k3h +ki3e +ki3st +k1k +k5lak +k1le +3klu +k4ny +5kod +1kon +ko3ra +3kort +ko3v +1kra +5kry +ks3an +k1si +ks3k +ks1p +k3ste +k5stu +ks5v +k1t +k4tar +k4terh +kti4e +kt5re +kt5s +3kur +1kus +3kut +k4vo +k4vu +5lab +lad3r +5lagd +la4g3r +5lam +1lat +l1b +ldiagnos5 +l3dr +ld3st +1le. +5led +4lele +le4mo +3len +1ler +1les +4leu +l1f +lfin4 +lfind5 +l1go1 +l3h +li4ga +4l5ins +4l3int +li5o +l3j +l1ke +l1ko +l3ky +l1l +l5mu +lo4du +l3op +4l5or +3lov +4l3p +l4ps +l3r +4ls +lses1 +ls5in +l5sj +l1ta +l4taf +l1te +l4t5erf +l3ti +lt3o +l3tr +l3tu +lu5l +l3ve +l3vi +1ma +m1b +m3d +1me +4m5ej +m3f +m1g +m3h +1mi +mi3k +m5ing +mi4o +mi5sty +m3k +m1l +m1m +mmen5 +m1n +3mo +mo4da +4mop +4m5ov +m1pe +m3pi +m3pl +m1po +m3pr +m1r +mse5s +ms5in +m5sk +ms3p +m3ste +ms5v +m3ta +m3te +m3ti +m3tr +m1ud +1mul +mu1li +3my +3na +4nak +1nal +n1b +n1c +4nd +n3dr +nd5si +nd5sk +nd5sp +1ne +ne5a +ne4da +nemen4 +nement5e +neo4 +n3erk +n5erl +ne5sl +ne5st +n1f +n4go +4n1h +1ni +4nim +ni5o +ni3st +n1ke +n1ko +n3kr +n3ku +n5kv +4n1l +n1m +n1n +1no +n3ord +n5p +n3r +4ns +n3si +n1sku +ns3po +n1sta +n5sti +n1ta +nta4le +n1te +n1ti +ntiali4 +n3to +n1tr +nt4s5t +nt4su +n3tu +n3ty +4n1v +3ny +n3z +o3a +o4as +ob3li +o1c +o4din +od5ri +od5s +od5un +o1e +of5r +o4gek +o4gel +o4g5o +og5re +og5sk +o5h +o5in +oi6s5e +o1j +o3ka +o1ke +o3ku +o3la +o3le +o1li +o1lo +o3lu +o5ly +1omr +on3k +ook5 +o3or +o5ov +o3pi +op3l +op3r +op3s +3opta +4or. +or1an +3ordn +ord5s +o3re. +o3reg +o3rek +o3rer +o3re3s +o3ret +o3ri +3orient +or5im +o4r5in +or3k +or5o +or3sl +or3st +o3si +o3so +o3t +o1te +o5un +ov4s +3pa +pa5gh +p5anl +p3d +4pec +3pen +1per +pe1ra +pe5s +pe3u +p3f +4p5h +1pla +p4lan +4ple. +4pler +4ples +p3m +p3n +5pok +4po3re +3pot +4p5p4 +p4ro +1proc +p3sk +p5so +ps4p +p3st +p1t +1pu +pu5b +p5ule +p5v +5py3 +qu4 +4raf +ra5is +4rarb +r1b +r4d5ar +r3dr +rd4s3 +4reks +1rel +re5la +r5enss +5rese +re5spo +4ress +re3st +re5s4u +5rett +r1f +r1gu +r1h +ri1e +ri5la +4rimo +r4ing +ringse4 +ringso4r +4rinp +4rint +r3ka +r1ke +r1ki +rk3so +r3ku +r1l +rmo4 +r5mu +r1n +ro1b +ro3p +r3or +r3p +r1r +rre5s +rro4n5 +r1sa +r1si +r5skr +r4sk5v +rs4n +r3sp +r5stu +r5su +r3sv +r5tal +r1te +r4teli +r1ti +r3to +r4t5or +rt5rat +rt3re +r5tri +r5tro +rt3s +r5ty +r3ud +run4da +5rut +r3va +r1ve +r3vi +ry4s +s3af +1sam +sa4ma +s3ap +s1ar +1sat +4s1b +s1d +sdy4 +1se +s4ed +5s4er +se4se +s1f +4s1g4 +4s3h +si4bl +1sig +s5int +5sis +5sit +5siu +s5ju +4sk. +1skab +1ske +s3kl +sk5s4 +5sky +s1le +s1li +slo3 +5slu +s5ly +s1m +s4my +4snin +s4nit +so5k +5sol +5som. +3somm +s5oms +5somt +3son +4s1op +sp4 +3spec +4sper +3s4pi +s1pl +3sprog. +s5r4 +s1s4 +4st. +5s4tam +1stan +st5as +3stat +1stav +1ste. +1sted +3stel +5stemo +1sten +5step +3ster. +3stes +5stet +5stj +3sto +st5om +1str +s1ud +3sul +s3un +3sur +s3ve +3s4y +1sy1s +5ta. +1tag +tands3 +4tanv +4tb +tede4l +teds5 +3teg +5tekn +teo1 +5term +te5ro +4t1f +6t3g +t1h +tialis5t +3tid +ti4en +ti3st +4t3k +4t1l +tli4s5 +t1m +t1n +to5ra +to1re +to1ri +tor4m +4t3p +t4ra +4tres +tro5v +1try +4ts +t3si +ts4pa +ts5pr +t3st +ts5ul +4t1t +t5uds +5tur +t5ve +1typ +u1a +5udl +ud5r +ud3s +3udv +u1e +ue4t5 +uge4ri +ugs3 +u5gu +u3i +u5kl +uk4ta +uk4tr +u1la +u1le +u5ly +u5pe +up5l +u5q +u3ra +u3re +u4r3eg +u1rer +u3ro +us5a +u3si +u5ska +u5so +us5v +u1te +u1ti +u1to +ut5r +ut5s4 +5u5v +va5d +3varm +1ved +ve4l5e +ve4reg +ve3s +5vet +v5h +vi4l3in +1vis +v5j +v5k +vl4 +v3le +v5li +vls1 +1vo +4v5om +v5p +v5re +v3st +v5su +v5t +3vu +y3a +y5dr +y3e +y3ke +y5ki +yk3li +y3ko +yk4s5 +y3kv +y5li +y5lo +y5mu +yns5 +y5o +y1pe +y3pi +y3re +yr3ek +y3ri +y3si +y3ti +y5t3r +y5ve +zi5o + +.så3 +.ær5i +.øv3r +a3tø +a5væ +brød3 +5bæ +5drøv +dstå4 +3dæ +3dø +e3læ +e3lø +e3rø +er5øn +e5tæ +e5tø +e1væ +e3æ +e5å +3fæ +3fø +fø4r5en +giø4 +g4sø +g5så +3gæ +3gø1 +3gå +i5tæ +i3ø +3kø +3kå +lingeniø4 +l3væ +5løs +m5tå +1mæ +3mø +3må +n3kæ +n5tæ +3næ +4n5æb +5nø +o5læ +or3ø +o5å +5præ +5pæd +på3 +r5kæ +r5tæ +r5tø +r3væ +r5æl +4røn +5rør +3råd +r5år +s4kå +3slå +s4næ +5stø +1stå +1sæ +4s5æn +1sø +s5øk +så4r5 +ti4ø +3træk. +t4sø +t5så +t3væ +u3læ +3værd +1værk +5vå +y5væ +æb3l +æ3c +æ3e +æg5a +æ4gek +æ4g5r +ægs5 +æ5i +æ5kv +ælle4 +æn1dr +æ5o +æ1re +ær4g5r +æ3ri +ær4ma +ær4mo +ær5s +æ5si +æ3so +æ3ste +æ3ve +øde5 +ø3e +ø1je +ø3ke +ø3le +øms5 +øn3st +øn4t3 +ø1re +ø3ri +ørne3 +ør5o +ø1ve +å1d +å1e +å5h +å3l +å3re +års5t +å5sk +å3t + + diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/da_compoundDictionary.txt b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/da_compoundDictionary.txt new file mode 100644 index 0000000000..9a14f40c5f --- /dev/null +++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/da_compoundDictionary.txt @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# A set of words for testing the HyphenationCompound factory, +# in conjunction with the danish hyphenation grammar. +læse +hest diff --git a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj index 1b641b7cb4..504ec5f057 100644 --- a/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj +++ b/src/Lucene.Net.Tests.Analysis.Common/Lucene.Net.Tests.Analysis.Common.csproj @@ -84,6 +84,9 @@ + + + @@ -476,7 +479,11 @@ - + + + + +
    - /// for French language. - /// - /// Supports an external list of stopwords (words that - /// will not be indexed at all) and an external list of exclusions (word that will - /// not be stemmed, but indexed). - /// A default set of stopwords is used unless an alternative list is specified, but the - /// exclusion list is empty by default. - /// - /// - /// - /// You must specify the required - /// compatibility when creating FrenchAnalyzer: - ///
      - ///
    • As of 3.6, FrenchLightStemFilter is used for less aggressive stemming. - ///
    • As of 3.1, Snowball stemming is done with SnowballFilter, - /// LowerCaseFilter is used prior to StopFilter, and ElisionFilter and - /// Snowball stopwords are used by default. - ///
    • As of 2.9, StopFilter preserves position - /// increments - ///
    - /// - ///
    - /// NOTE: This class uses the same - /// dependent settings as . - ///
    /// Creates new instances of . ///
    @@ -41,9 +41,9 @@ public class EdgeNGramFilterFactory : TokenFilterFactory
             public EdgeNGramFilterFactory(IDictionary args)
                 : base(args)
             {
    -            minGramSize = getInt(args, "minGramSize", EdgeNGramTokenFilter.DEFAULT_MIN_GRAM_SIZE);
    -            maxGramSize = getInt(args, "maxGramSize", EdgeNGramTokenFilter.DEFAULT_MAX_GRAM_SIZE);
    -            side = get(args, "side", EdgeNGramTokenFilter.Side.FRONT.Label);
    +            minGramSize = GetInt(args, "minGramSize", EdgeNGramTokenFilter.DEFAULT_MIN_GRAM_SIZE);
    +            maxGramSize = GetInt(args, "maxGramSize", EdgeNGramTokenFilter.DEFAULT_MAX_GRAM_SIZE);
    +            side = Get(args, "side", EdgeNGramTokenFilter.Side.FRONT.ToString());
                 if (args.Count > 0)
                 {
                     throw new System.ArgumentException("Unknown parameters: " + args);
    diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilter.cs
    index aa7c57c457..76400bf99c 100644
    --- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilter.cs
    +++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilter.cs
    @@ -2,13 +2,10 @@
     using Lucene.Net.Analysis.Tokenattributes;
     using Lucene.Net.Analysis.Util;
     using Lucene.Net.Util;
    -using org.apache.lucene.analysis.reverse;
    -using org.apache.lucene.analysis.util;
     
     namespace Lucene.Net.Analysis.Ngram
     {
    -
    -	/*
    +    /*
     	 * Licensed to the Apache Software Foundation (ASF) under one or more
     	 * contributor license agreements.  See the NOTICE file distributed with
     	 * this work for additional information regarding copyright ownership.
    @@ -24,215 +21,220 @@ namespace Lucene.Net.Analysis.Ngram
     	 * See the License for the specific language governing permissions and
     	 * limitations under the License.
     	 */
    +
         /// 
    -	/// Tokenizes the given token into n-grams of given size(s).
    -	/// 
    -	/// This  create n-grams from the beginning edge or ending edge of a input token.
    -	/// 
    -	/// As of Lucene 4.4, this filter does not support
    -	///  (you can use  up-front and
    -	/// afterward to get the same behavior), handles supplementary characters
    -	/// correctly and does not update offsets anymore.
    -	/// 
    -	/// 
    -	public sealed class EdgeNGramTokenFilter : TokenFilter
    -	{
    -	  public const Side DEFAULT_SIDE = Side.FRONT;
    -	  public const int DEFAULT_MAX_GRAM_SIZE = 1;
    -	  public const int DEFAULT_MIN_GRAM_SIZE = 1;
    -
    -	    /// 
    -	    /// Specifies which side of the input the n-gram should be generated from 
    -	    public enum Side
    -	    {
    -
    -	        /// 
    -	        /// Get the n-gram from the front of the input 
    -	        FRONT,
    -
    -	        /// 
    -	        /// Get the n-gram from the end of the input 
    -	        [System.Obsolete] BACK,
    -	    }
    -
    -	    // Get the appropriate Side from a string
    -		public static Side getSide(String sideName)
    -		{
    -//JAVA TO C# CONVERTER TODO TASK: The following line could not be converted:
    -		  if (FRONT.getLabel().equals(sideName))
    -		  {
    -			return FRONT;
    -		  }
    -//JAVA TO C# CONVERTER TODO TASK: The following line could not be converted:
    -		  if (BACK.getLabel().equals(sideName))
    -		  {
    -			return BACK;
    -		  }
    -		  return null;
    -		}
    -
    -	  private readonly LuceneVersion version;
    -	  private readonly CharacterUtils charUtils;
    -	  private readonly int minGram;
    -	  private readonly int maxGram;
    -	  private Side side;
    -	  private char[] curTermBuffer;
    -	  private int curTermLength;
    -	  private int curCodePointCount;
    -	  private int curGramSize;
    -	  private int tokStart;
    -	  private int tokEnd; // only used if the length changed before this filter
    -	  private bool updateOffsets; // never if the length changed before this filter
    -	  private int savePosIncr;
    -	  private int savePosLen;
    -
    -	  private readonly CharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute));
    -	  private readonly OffsetAttribute offsetAtt = addAttribute(typeof(OffsetAttribute));
    -	  private readonly PositionIncrementAttribute posIncrAtt = addAttribute(typeof(PositionIncrementAttribute));
    -	  private readonly PositionLengthAttribute posLenAtt = addAttribute(typeof(PositionLengthAttribute));
    -
    -	  /// 
    -	  /// Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range
    -	  /// 
    -	  ///  the Lucene match version 
    -	  ///   holding the input to be tokenized 
    -	  ///  the  from which to chop off an n-gram 
    -	  ///  the smallest n-gram to generate 
    -	  ///  the largest n-gram to generate 
    -	  [Obsolete]
    -	  public EdgeNGramTokenFilter(LuceneVersion version, TokenStream input, Side side, int minGram, int maxGram) : base(input)
    -	  {
    -
    -		if (version == null)
    -		{
    -		  throw new System.ArgumentException("version must not be null");
    -		}
    -
    -		if (version.OnOrAfter(LuceneVersion.LUCENE_44) && side == Side.BACK)
    -		{
    -		  throw new System.ArgumentException("Side.BACK is not supported anymore as of Lucene 4.4, use ReverseStringFilter up-front and afterward");
    -		}
    -
    -		if (side == null)
    -		{
    -		  throw new System.ArgumentException("sideLabel must be either front or back");
    -		}
    -
    -		if (minGram < 1)
    -		{
    -		  throw new System.ArgumentException("minGram must be greater than zero");
    -		}
    -
    -		if (minGram > maxGram)
    -		{
    -		  throw new System.ArgumentException("minGram must not be greater than maxGram");
    -		}
    -
    -		this.version = version;
    -		this.charUtils = version.onOrAfter(LuceneVersion.LUCENE_44) ? CharacterUtils.getInstance(version) : CharacterUtils.Java4Instance;
    -		this.minGram = minGram;
    -		this.maxGram = maxGram;
    -		this.side = side;
    -	  }
    -
    -	  /// 
    -	  /// Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range
    -	  /// 
    -	  ///  the Lucene match version 
    -	  ///   holding the input to be tokenized 
    -	  ///  the name of the  from which to chop off an n-gram 
    -	  ///  the smallest n-gram to generate 
    -	  ///  the largest n-gram to generate 
    -	  [Obsolete]
    -	  public EdgeNGramTokenFilter(LuceneVersion version, TokenStream input, string sideLabel, int minGram, int maxGram) : this(version, input, Side.getSide(sideLabel), minGram, maxGram)
    -	  {
    -	  }
    -
    -	  /// 
    -	  /// Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range
    -	  /// 
    -	  ///  the Lucene match version 
    -	  ///   holding the input to be tokenized 
    -	  ///  the smallest n-gram to generate 
    -	  ///  the largest n-gram to generate 
    -	  public EdgeNGramTokenFilter(LuceneVersion version, TokenStream input, int minGram, int maxGram) : this(version, input, Side.FRONT, minGram, maxGram)
    -	  {
    -	  }
    -
    -	  public override bool IncrementToken()
    -	  {
    -		while (true)
    -		{
    -		  if (curTermBuffer == null)
    -		  {
    -			if (!input.IncrementToken())
    -			{
    -			  return false;
    -			}
    -			else
    -			{
    -			  curTermBuffer = termAtt.Buffer().Clone();
    -			  curTermLength = termAtt.Length();
    -			  curCodePointCount = charUtils.codePointCount(termAtt);
    -			  curGramSize = minGram;
    -			  tokStart = offsetAtt.StartOffset();
    -			  tokEnd = offsetAtt.EndOffset();
    -			  if (version.OnOrAfter(LuceneVersion.LUCENE_44))
    -			  {
    -				// Never update offsets
    -				updateOffsets = false;
    -			  }
    -			  else
    -			  {
    -				// if length by start + end offsets doesn't match the term text then assume
    -				// this is a synonym and don't adjust the offsets.
    -				updateOffsets = (tokStart + curTermLength) == tokEnd;
    -			  }
    -			  savePosIncr += posIncrAtt.PositionIncrement;
    -			  savePosLen = posLenAtt.PositionLength;
    -			}
    -		  }
    -		  if (curGramSize <= maxGram) // if we have hit the end of our n-gram size range, quit
    -		  {
    -			if (curGramSize <= curCodePointCount) // if the remaining input is too short, we can't generate any n-grams
    -			{
    -			  // grab gramSize chars from front or back
    -			  int start = side == Side.FRONT ? 0 : charUtils.offsetByCodePoints(curTermBuffer, 0, curTermLength, curTermLength, -curGramSize);
    -			  int end = charUtils.offsetByCodePoints(curTermBuffer, 0, curTermLength, start, curGramSize);
    -			  ClearAttributes();
    -			  if (updateOffsets)
    -			  {
    -				offsetAtt.SetOffset(tokStart + start, tokStart + end);
    -			  }
    -			  else
    -			  {
    -				offsetAtt.SetOffset(tokStart, tokEnd);
    -			  }
    -			  // first ngram gets increment, others don't
    -			  if (curGramSize == minGram)
    -			  {
    -				posIncrAtt.PositionIncrement = savePosIncr;
    -				savePosIncr = 0;
    -			  }
    -			  else
    -			  {
    -				posIncrAtt.PositionIncrement = 0;
    -			  }
    -			  posLenAtt.PositionLength = savePosLen;
    -			  termAtt.CopyBuffer(curTermBuffer, start, end - start);
    -			  curGramSize++;
    -			  return true;
    -			}
    -		  }
    -		  curTermBuffer = null;
    -		}
    -	  }
    -
    -	  public override void Reset()
    -	  {
    -		base.Reset();
    -		curTermBuffer = null;
    -		savePosIncr = 0;
    -	  }
    -}
    +    /// Tokenizes the given token into n-grams of given size(s).
    +    /// 
    +    /// This  create n-grams from the beginning edge or ending edge of a input token.
    +    /// 
    +    /// As of Lucene 4.4, this filter does not support
    +    ///  (you can use  up-front and
    +    /// afterward to get the same behavior), handles supplementary characters
    +    /// correctly and does not update offsets anymore.
    +    /// 
    +    /// 
    + + + +
    + + + + + + + + + + + + +
    +