<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>71510</bug_id>
          
          <creation_ts>2011-11-03 14:52:57 -0700</creation_ts>
          <short_desc>[Microdata] LayoutTests/fast/dom/MicroData/itemid-attribute-test.html assertion failure in Element::getURLAttribute()</short_desc>
          <delta_ts>2011-11-09 11:35:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Arko Saha">arko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>495802</commentid>
    <comment_count>0</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-03 14:52:57 -0700</bug_when>
    <thetext>We are hitting an assertion failure while retriving itemid of a Microdata item, as isURLAttribute() returns false.

ASSERTION FAILED: isURLAttribute(attribute)

Backtrace:
#0  0x00810424 in WebCore::Element::getURLAttribute (this=0x82512f8, name=...) at ../../Source/WebCore/dom/Element.cpp:1928
#1  0x0118bf15 in WebCore::jsHTMLElementItemId (exec=0xb2fbe0f8, slotBase=...) at DerivedSources/WebCore/JSHTMLElement.cpp:430
#2  0x03d2367d in JSC::PropertySlot::getValue (this=0xbfffdad8, exec=0xb2fbe0f8, propertyName=...)
    at ../../Source/JavaScriptCore/runtime/PropertySlot.h:75
#3  0x03dbbc3d in JSC::JSValue::get (this=0xbfffdb0c, exec=0xb2fbe0f8, propertyName=..., slot=...)
    at ../../Source/JavaScriptCore/runtime/JSObject.h:799
#4  0x03df54d9 in JSC::cti_op_get_by_id (args=0xbfffdb50) at ../../Source/JavaScriptCore/jit/JITStubs.cpp:1654
#5  0x03df324a in JSC::JITThunks::tryCacheGetByID (callFrame=0xb2fb2930, codeBlock=0xfffffffb, returnAddress=..., baseValue=..., 
    propertyName=..., slot=..., stubInfo=0xbfffdb88) at ../../Source/JavaScriptCore/jit/JITStubs.cpp:937
#6  0xbfffdb88 in ?? ()
#7  0x03dbc27d in JSC::JITCode::execute (this=0xb2f97e40, registerFile=0x815c43c, callFrame=0xb2fbe0f8, globalData=0x80f0000)
    at ../../Source/JavaScriptCore/jit/JITCode.h:103
#8  0x03dba2ed in JSC::Interpreter::execute (this=0x815c430, eval=0xb2f97e30, callFrame=0xb2fbe088, thisValue=..., globalRegisterOffset=31, 
    scopeChain=0xb2f9ef50) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:1295
#9  0x03db6227 in JSC::Interpreter::callEval (this=0x815c430, callFrame=0xb2fbe088, registerFile=0x815c43c, argv=0xb2fbe0b8, argc=2, 
    registerOffset=14) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:463
#10 0x03dfddc8 in JSC::cti_op_call_eval (args=0xbfffe200) at ../../Source/JavaScriptCore/jit/JITStubs.cpp:3440
#11 0x03df324a in JSC::JITThunks::tryCacheGetByID (callFrame=0xb2fb37b0, codeBlock=0xfffffffb, returnAddress=..., baseValue=..., 
    propertyName=..., slot=..., stubInfo=0xbfffe238) at ../../Source/JavaScriptCore/jit/JITStubs.cpp:937
#12 0xbfffe238 in ?? ()
#13 0x03dbc27d in JSC::JITCode::execute (this=0xb2f97ea0, registerFile=0x815c43c, callFrame=0xb2fbe038, globalData=0x80f0000)
    at ../../Source/JavaScriptCore/jit/JITCode.h:103
#14 0x03db83ae in JSC::Interpreter::execute (this=0x815c430, program=0xb2f97e90, callFrame=0xb2fa7d24, scopeChain=0xb2f9ffd0, thisObj=
    0xb2fb3fb0) at ../../Source/JavaScriptCore/interpreter/Interpreter.cpp:897
#15 0x03e60a87 in JSC::evaluate (exec=0xb2fa7d24, scopeChain=0xb2f9ffd0, source=..., thisValue=..., returnedException=0xbfffe95c)
    at ../../Source/JavaScriptCore/runtime/Completion.cpp:70
#16 0x0061954d in WebCore::JSMainThreadExecState::evaluate (exec=0xb2fa7d24, chain=0xb2f9ffd0, source=..., thisValue=..., 
    exception=0xbfffe95c) at ../../Source/WebCore/bindings/js/JSMainThreadExecState.h:58
#17 0x0064eaa1 in WebCore::ScriptController::evaluateInWorld (this=0x80daea4, sourceCode=..., world=0x81a6d90)
    at ../../Source/WebCore/bindings/js/ScriptController.cpp:145
#18 0x0064eb9a in WebCore::ScriptController::evaluate (this=0x80daea4, sourceCode=...)
    at ../../Source/WebCore/bindings/js/ScriptController.cpp:162
#19 0x00859bb6 in WebCore::ScriptElement::executeScript (this=0x8210028, sourceCode=...) at ../../Source/WebCore/dom/ScriptElement.cpp:301</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495805</commentid>
    <comment_count>1</comment_count>
      <attachid>113561</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-03 15:00:01 -0700</bug_when>
    <thetext>Created attachment 113561
Patch

Override isURLAttribute() for HTMLElement and return true if attribute is itemidAttr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495808</commentid>
    <comment_count>2</comment_count>
      <attachid>113561</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-03 15:08:12 -0700</bug_when>
    <thetext>Comment on attachment 113561
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=113561&amp;action=review

&gt; Source/WebCore/html/HTMLElement.cpp:997
&gt; +bool HTMLElement::isURLAttribute(Attribute *attr) const

Formatting here is wrong. The * goes next to the word “Attribute”.

In new code we should not use abbreviations. This should be &quot;attribute&quot; instead of &quot;attr&quot;.

Should this be unconditional? I don’t think this is right if ENABLE(MICRODATA) is not set.

&gt; Source/WebCore/html/HTMLElement.h:128
&gt; +    virtual bool isURLAttribute(Attribute*) const;

All the classes derived from HTMLElement that currently do not call through to the base class need to do so, otherwise they will return false for itemid. That includes HTMLAnchorElement::isURLAttribute, HTMLBaseElement::isURLAttribute, HTMLBodyElement::isURLAttribute, HTMLButtonElement::isURLAttribute, HTMLEmbedElement::isURLAttribute, HTMLFormElement::isURLAttribute, HTMLFrameElementBase::isURLAttribute, HTMLHtmlElement::isURLAttribute, HTMLIFrameElement::isURLAttribute (actually, that function should just be removed, because HTMLFrameElementBase already takes care of it), HTMLImageElement::isURLAttribute, HTMLInputElement::isURLAttribute, HTMLLinkElement::isURLAttribute, HTMLMediaElement::isURLAttribute, HTMLModElement::isURLAttribute, HTMLObjectElement::isURLAttribute, HTMLParamElement::isURLAttribute, HTMLQuoteElement::isURLAttribute, HTMLScriptElement::isURLAttribute, HTMLSourceElement::isURLAttribute, HTMLTableCellElement::isURLAttribute, HTMLTableElement::isURLAttribute, and HTMLTrackElement::isURLAttribute.

I also wonder if we need this itemid support for SVG elements too (separate issue).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496170</commentid>
    <comment_count>3</comment_count>
      <attachid>113652</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-04 05:32:26 -0700</bug_when>
    <thetext>Created attachment 113652
Updated patch

Incorporating review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496236</commentid>
    <comment_count>4</comment_count>
      <attachid>113652</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-04 09:41:07 -0700</bug_when>
    <thetext>Comment on attachment 113652
Updated patch

View in context: https://bugs.webkit.org/attachment.cgi?id=113652&amp;action=review

This is the wrong way to do it. We don’t want to put an #if into all these places that are not microdata-related.

And we need to add a new test that covers all these different types of elements. The existing test does not cover enough.

&gt; Source/WebCore/html/HTMLAnchorElement.cpp:244
&gt; +#if ENABLE(MICRODATA)
&gt; +    return attr-&gt;name() == hrefAttr || attr-&gt;name() == itemidAttr;
&gt; +#else
&gt;      return attr-&gt;name() == hrefAttr;
&gt; +#endif

This code should say:

    return attr-&gt;name() == hrefAttr || HTMLElement::isURLAttribute(attr);

Since HTMLAnchorElement’s immediate base class is HTMLElement.

No #if.

Same for all the other functions, but please make sure to use the appropriate base class and not just call straight to HTMLElement each time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496822</commentid>
    <comment_count>5</comment_count>
      <attachid>113792</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-06 10:51:16 -0800</bug_when>
    <thetext>Created attachment 113792
Updated patch

Incorporating review comments, also added a test-case for the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498243</commentid>
    <comment_count>6</comment_count>
      <attachid>113792</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-08 10:41:11 -0800</bug_when>
    <thetext>Comment on attachment 113792
Updated patch

View in context: https://bugs.webkit.org/attachment.cgi?id=113792&amp;action=review

&gt; Source/WebCore/html/HTMLElement.cpp:1004
&gt; +bool HTMLElement::isURLAttribute(Attribute* attribute) const
&gt; +{
&gt; +#if ENABLE(MICRODATA)
&gt; +    return attribute-&gt;name() == itemidAttr;
&gt; +#else
&gt; +    return false;
&gt; +#endif
&gt; +}

This will fail to compile on platforms where we have MICRODATA off and we have unused argument warnings on.

&gt; Source/WebCore/html/HTMLElement.h:79
&gt; +    virtual bool isURLAttribute(Attribute*) const;

This should be protected, not public.

&gt; Source/WebCore/html/HTMLInputElement.cpp:1295
&gt; +    return (attr-&gt;name() == srcAttr || attr-&gt;name() == formactionAttr || HTMLTextFormControlElement::isURLAttribute(attr));

Should remove the unneeded parentheses here.

&gt; Source/WebCore/html/HTMLObjectElement.cpp:387
&gt; +    return (attr-&gt;name() == dataAttr || (attr-&gt;name() == usemapAttr &amp;&amp; attr-&gt;value().string()[0] != &apos;#&apos;) || HTMLPlugInImageElement::isURLAttribute(attr));

Should remove the unneeded parentheses here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498681</commentid>
    <comment_count>7</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-08 23:31:16 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 113792 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113792&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLElement.cpp:1004
&gt; &gt; +bool HTMLElement::isURLAttribute(Attribute* attribute) const
&gt; &gt; +{
&gt; &gt; +#if ENABLE(MICRODATA)
&gt; &gt; +    return attribute-&gt;name() == itemidAttr;
&gt; &gt; +#else
&gt; &gt; +    return false;
&gt; &gt; +#endif
&gt; &gt; +}
&gt; 
&gt; This will fail to compile on platforms where we have MICRODATA off and we have unused argument warnings on.

Done.
 
&gt; &gt; Source/WebCore/html/HTMLElement.h:79
&gt; &gt; +    virtual bool isURLAttribute(Attribute*) const;
&gt; 
&gt; This should be protected, not public.

Done.

&gt; &gt; Source/WebCore/html/HTMLInputElement.cpp:1295
&gt; &gt; +    return (attr-&gt;name() == srcAttr || attr-&gt;name() == formactionAttr || HTMLTextFormControlElement::isURLAttribute(attr));
&gt; 
&gt; Should remove the unneeded parentheses here.

Done.
 
&gt; &gt; Source/WebCore/html/HTMLObjectElement.cpp:387
&gt; &gt; +    return (attr-&gt;name() == dataAttr || (attr-&gt;name() == usemapAttr &amp;&amp; attr-&gt;value().string()[0] != &apos;#&apos;) || HTMLPlugInImageElement::isURLAttribute(attr));
&gt; 
&gt; Should remove the unneeded parentheses here.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498682</commentid>
    <comment_count>8</comment_count>
      <attachid>114214</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-08 23:32:29 -0800</bug_when>
    <thetext>Created attachment 114214
Updated patch

Incorporating review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499196</commentid>
    <comment_count>9</comment_count>
      <attachid>114214</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 11:35:44 -0800</bug_when>
    <thetext>Comment on attachment 114214
Updated patch

Clearing flags on attachment: 114214

Committed r99742: &lt;http://trac.webkit.org/changeset/99742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499197</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 11:35:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113561</attachid>
            <date>2011-11-03 15:00:01 -0700</date>
            <delta_ts>2011-11-04 05:32:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_71510.diff</filename>
            <type>text/plain</type>
            <size>1894</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjM2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEtMDMgIEFya28gU2Fo
YSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogZmFzdC9kb20vTWlj
cm9kYXRhL2l0ZW1pZC1hdHR0ZS10ZXN0Lmh0bWwgYXNzZXJ0aW9uIGZhaWx1cmUgaW4gRWxlbWVu
dDo6Z2V0VVJMQXR0cmlidXRlKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTUxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE92ZXJyaWRlIGlzVVJMQXR0cmlidXRlKCkgZm9yIEhUTUxFbGVtZW50IGFu
ZCByZXR1cm4gdHJ1ZSBpZiBhdHRyaWJ1dGUgaXMgaXRlbWlkQXR0ci4KKworICAgICAgICBUZXN0
OiBmYXN0L2RvbS9NaWNyb2RhdGEvaXRlbWlkLWF0dHRlLXRlc3QuaHRtbAorCisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aXNV
UkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKwogMjAxMS0xMS0w
MyAgQW5uYSBDYXZlbmRlciAgPGFubmFjY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVt
ZW50IFRleHRUcmFja0N1ZUxpc3QuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cAkocmV2aXNpb24gOTkyMzYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTk0LDYgKzk5NCwxMSBAQCB2b2lkIEhUTUxFbGVtZW50Ojph
ZGp1c3REaXJlY3Rpb25hbGl0eUlmCiAgICAgfQogfQogCitib29sIEhUTUxFbGVtZW50Ojppc1VS
TEF0dHJpYnV0ZShBdHRyaWJ1dGUgKmF0dHIpIGNvbnN0Cit7CisgICAgcmV0dXJuIGF0dHItPm5h
bWUoKSA9PSBpdGVtaWRBdHRyOworfQorCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKIFBhc3NSZWZQ
dHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVtZW50OjppdGVtUHJvcCgpIGNvbnN0CiB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiA5OTIzNikKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYg
KzEyNSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3REaXJlY3Rpb25hbGl0eUlmTmVlZGVk
QWZ0ZXJDaGlsZHJlbkNoYW5nZWQoTm9kZSogYmVmb3JlQ2hhbmdlLCBpbnQgY2hpbGRDb3VudERl
bHRhKTsKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFsaXR5KE5vZGUqKiBzdHJvbmdEaXJl
Y3Rpb25hbGl0eVRleHROb2RlPSAwKSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0
dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKKwogI2lmIEVOQUJMRShNSUNST0RBVEEpCiAgICAg
dm9pZCBzZXRJdGVtUHJvcChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldEl0ZW1SZWYoY29u
c3QgU3RyaW5nJik7Cg==
</data>
<flag name="review"
          id="111970"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="111971"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113652</attachid>
            <date>2011-11-04 05:32:26 -0700</date>
            <delta_ts>2011-11-06 10:51:16 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_71510.diff</filename>
            <type>text/plain</type>
            <size>18294</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjcyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMTEtMDQgIEFya28gU2Fo
YSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogZmFzdC9kb20vTWlj
cm9EYXRhL2l0ZW1pZC1hdHRyaWJ1dGUtdGVzdC5odG1sIGFzc2VydGlvbiBmYWlsdXJlIGluIEVs
ZW1lbnQ6OmdldFVSTEF0dHJpYnV0ZSgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzE1MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPdmVycmlkZSBpc1VSTEF0dHJpYnV0ZSgpIGZvciBIVE1MRWxlbWVu
dCBhbmQgcmV0dXJuIHRydWUgaWYgYXR0cmlidXRlIGlzIGl0ZW1pZEF0dHIuCisgICAgICAgIEFs
bCB0aGUgY2xhc3NlcyBkZXJpdmVkIGZyb20gSFRNTEVsZW1lbnQgb3ZlcnJpZGVzIHRoaXMgZnVu
Y3Rpb24gc2hvdWxkIHJldHVybiB0cnVlIGlmIGF0dHJpYnV0ZSBpcyBpdGVtaWRBdHRyLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvZG9tL01pY3JvZGF0YS9pdGVtaWQtYXR0dGUtdGVzdC5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxBbmNob3JFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6IFJldHVybiB0cnVlIGlmIGF0dHJp
YnV0ZSBpcyBpdGVtaWRBdHRyLgorICAgICAgICAqIGh0bWwvSFRNTEJhc2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxCYXNlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOiBEaXR0
by4KKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQm9keUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKTogRGl0dG8uCisgICAgICAgICogaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQnV0dG9uRWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6IE92
ZXJyaWRlIGlzVVJMQXR0cmlidXRlKCkgZm9yIEhUTUxFbGVtZW50IGFuZCByZXR1cm4gdHJ1ZSBp
ZiBhdHRyaWJ1dGUgaXMgaXRlbWlkQXR0ci4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxFbWJlZEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKTogUmV0dXJuIHRydWUgaWYgYXR0cmli
dXRlIGlzIGl0ZW1pZEF0dHIuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6IERpdHRv
LgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OmlzVVJMQXR0cmlidXRlKTogRGl0dG8uCisgICAg
ICAgICogaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEh0
bWxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTElG
cmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuaDogUmVt
b3ZlZCBpc1VSTEF0dHJpYnV0ZSgpIG1ldGhvZCBhcyBIVE1MRnJhbWVFbGVtZW50QmFzZSBhbHJl
YWR5IHRha2VzIGNhcmUgb2YgaXQuCisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKTog
UmV0dXJuIHRydWUgaWYgYXR0cmlidXRlIGlzIGl0ZW1pZEF0dHIuCisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6
IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6IERpdHRvLgorICAgICAg
ICAqIGh0bWwvSFRNTE1vZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZEVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6aXNVUkxB
dHRyaWJ1dGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxQYXJhbUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcmFtRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOiBEaXR0
by4KKyAgICAgICAgKiBodG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFF1b3RlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOiBEaXR0by4KKyAgICAgICAgKiBo
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRF
bGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJj
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZUVsZW1lbnQ6OmlzVVJM
QXR0cmlidXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVDZWxsRWxlbWVudDo6aXNVUkxBdHRyaWJ1
dGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOiBEaXR0by4KKyAg
ICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyYWNrRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOiBEaXR0by4KKwogMjAxMS0xMS0wNCAgVG9t
bXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1d
IE1lZGlhU3RyZWFtIEFQSTogRml4aW5nIHdyb25nIHBhdGggZm9yIFBlZXJDb25uZWN0aW9uSGFu
ZGxlci5oIGluIFdlYkNvcmUuZ3lwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcAkocmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM3LDcgKzIzNywxMSBAQCB2
b2lkIEhUTUxBbmNob3JFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oCiAKIGJvb2wgSFRNTEFuY2hv
ckVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKIHsKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gaHJlZkF0dHIgfHwg
YXR0ci0+bmFtZSgpID09IGl0ZW1pZEF0dHI7CisjZWxzZQogICAgIHJldHVybiBhdHRyLT5uYW1l
KCkgPT0gaHJlZkF0dHI7CisjZW5kaWYKIH0KIAogYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6Y2Fu
U3RhcnRTZWxlY3Rpb24oKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFz
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VF
bGVtZW50LmNwcAkocmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
YXNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDExIEBAIHZvaWQgSFRN
TEJhc2VFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW4KIAogYm9vbCBIVE1MQmFzZUVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmlidXRlKSBjb25zdAogeworI2lmIEVOQUJM
RShNSUNST0RBVEEpCisgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IGhyZWZBdHRyIHx8
IGF0dHJpYnV0ZS0+bmFtZSgpID09IGl0ZW1pZEF0dHI7CisjZWxzZQogICAgIHJldHVybiBhdHRy
aWJ1dGUtPm5hbWUoKSA9PSBocmVmQXR0cjsKKyNlbmRpZgogfQogCiBTdHJpbmcgSFRNTEJhc2VF
bGVtZW50Ojp0YXJnZXQoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9k
eUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlF
bGVtZW50LmNwcAkocmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OSw3ICsxODksMTEgQEAgdm9pZCBI
VE1MQm9keUVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZQogCiBib29sIEhUTUxCb2R5RWxlbWVu
dDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlICphdHRyKSBjb25zdAogeworI2lmIEVOQUJMRShN
SUNST0RBVEEpCisgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBh
dHRyLT5uYW1lKCkgPT0gaXRlbWlkQXR0cjsKKyNlbHNlCiAgICAgcmV0dXJuIGF0dHItPm5hbWUo
KSA9PSBiYWNrZ3JvdW5kQXR0cjsKKyNlbmRpZgogfQogCiBib29sIEhUTUxCb2R5RWxlbWVudDo6
c3VwcG9ydHNGb2N1cygpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0
b25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0
b25FbGVtZW50LmNwcAkocmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDcgKzE3MSwxMSBAQCB2
b2lkIEhUTUxCdXR0b25FbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oCiAKIGJvb2wgSFRNTEJ1dHRv
bkVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikgY29uc3QKIHsKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gZm9ybWFjdGlvbkF0
dHIgfHwgYXR0ci0+bmFtZSgpID09IGl0ZW1pZEF0dHI7CisjZWxzZQogICAgIHJldHVybiBhdHRy
LT5uYW1lKCkgPT0gZm9ybWFjdGlvbkF0dHI7CisjZW5kaWYKIH0KIAogU3RyaW5nIEhUTUxCdXR0
b25FbGVtZW50Ojp2YWx1ZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcAkocmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTk0LDYgKzk5NCwxNSBAQCB2b2lkIEhUTUxFbGVtZW50
OjphZGp1c3REaXJlY3Rpb25hbGl0eUlmCiAgICAgfQogfQogCitib29sIEhUTUxFbGVtZW50Ojpp
c1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUo
TUlDUk9EQVRBKQorICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBpdGVtaWRBdHRyOwor
I2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShNSUNST0RB
VEEpCiBQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVudDo6aXRlbVBy
b3AoKSBjb25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNpb24g
OTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEyNSw2ICsxMjUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0RGlyZWN0aW9u
YWxpdHlJZk5lZWRlZEFmdGVyQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqIGJlZm9yZUNoYW5nZSwgaW50
IGNoaWxkQ291bnREZWx0YSk7CiAgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb25hbGl0eShOb2Rl
Kiogc3Ryb25nRGlyZWN0aW9uYWxpdHlUZXh0Tm9kZT0gMCkgY29uc3Q7CiAKKyAgICBib29sIGlz
VVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OworCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
ICAgICB2b2lkIHNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0SXRlbVJl
Zihjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVt
ZW50LmNwcAkocmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjIsNyArMjYyLDExIEBAIHZvaWQgSFRN
TEVtYmVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCgKIAogYm9vbCBIVE1MRW1iZWRFbGVtZW50
Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpIGNvbnN0CiB7CisjaWYgRU5BQkxFKE1J
Q1JPREFUQSkKKyAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IHNyY0F0dHIgfHwgYXR0ci0+bmFt
ZSgpID09IGl0ZW1pZEF0dHI7CisjZWxzZQogICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3Jj
QXR0cjsKKyNlbmRpZgogfQogCiBjb25zdCBRdWFsaWZpZWROYW1lJiBIVE1MRW1iZWRFbGVtZW50
OjppbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcAkocmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5Nyw3ICs0OTcs
MTEgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlbW92ZUZvcm1FbGVtZW50KAogCiBib29sIEhU
TUxGb3JtRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSBjb25zdAogewor
I2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBhY3Rpb25B
dHRyIHx8IGF0dHItPm5hbWUoKSA9PSBpdGVtaWRBdHRyOworI2Vsc2UKICAgICByZXR1cm4gYXR0
ci0+bmFtZSgpID09IGFjdGlvbkF0dHI7CisjZW5kaWYKIH0KIAogdm9pZCBIVE1MRm9ybUVsZW1l
bnQ6OnJlZ2lzdGVySW1nRWxlbWVudChIVE1MSW1hZ2VFbGVtZW50KiBlKQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDk5Mjcy
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI1OSw3ICsyNTksMTEgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6
c2V0Rm9jdXMoYm9vbAogCiBib29sIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjppc1VSTEF0dHJpYnV0
ZShBdHRyaWJ1dGUgKmF0dHIpIGNvbnN0CiB7CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICBy
ZXR1cm4gYXR0ci0+bmFtZSgpID09IHNyY0F0dHIgfHwgYXR0ci0+bmFtZSgpID09IGl0ZW1pZEF0
dHI7CisjZWxzZQogICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cjsKKyNlbmRpZgog
fQogCiBpbnQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OndpZHRoKCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxIdG1sRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5MjcyKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1
MywxMSBAQCBQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gSFRNTEh0bWxFbGVtCiAKIGJvb2wg
SFRNTEh0bWxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29u
c3QKIHsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUo
KSA9PSBtYW5pZmVzdEF0dHIgfHwgYXR0cmlidXRlLT5uYW1lKCkgPT0gaXRlbWlkQXR0cjsKKyNl
bHNlCiAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IG1hbmlmZXN0QXR0cjsKKyNlbmRp
ZgogfQogCiB2b2lkIEhUTUxIdG1sRWxlbWVudDo6aW5zZXJ0ZWRCeVBhcnNlcigpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAkocmV2aXNpb24gOTkyNzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTIzLDExICsxMjMsNiBAQCB2b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpyZW1vdmVk
RnJvbURvY3VtCiAgICAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnJlbW92ZWRGcm9tRG9jdW1lbnQo
KTsKIH0KIAotYm9vbCBIVE1MSUZyYW1lRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRl
KiBhdHRyKSBjb25zdAotewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cjsKLX0K
LQogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBTdHJpbmcgSFRNTElGcmFtZUVsZW1lbnQ6Oml0ZW1W
YWx1ZVRleHQoKSBjb25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1l
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuaAkocmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJh
bWVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4
dCYpOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSosIFJlbmRlclN0eWxlKik7CiAgICAgCi0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRl
KEF0dHJpYnV0ZSopIGNvbnN0OwotCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICAgICB2aXJ0dWFs
IFN0cmluZyBpdGVtVmFsdWVUZXh0KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHNldEl0ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURF
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lv
biA5OTI3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxMyw2ICszMTMsOSBAQCBib29sIEhUTUxJbWFnZUVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKEF0CiAgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBzcmNBdHRyCiAgICAg
ICAgIHx8IGF0dHItPm5hbWUoKSA9PSBsb3dzcmNBdHRyCiAgICAgICAgIHx8IGF0dHItPm5hbWUo
KSA9PSBsb25nZGVzY0F0dHIKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgICAgICB8fCBhdHRy
LT5uYW1lKCkgPT0gaXRlbWlkQXR0cgorI2VuZGlmCiAgICAgICAgIHx8IChhdHRyLT5uYW1lKCkg
PT0gdXNlbWFwQXR0ciAmJiBhdHRyLT52YWx1ZSgpLnN0cmluZygpWzBdICE9ICcjJyk7CiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24g
OTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjkxLDcgKzEyOTEsMTMgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbAogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRl
KEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKIHsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHJl
dHVybiAoYXR0ci0+bmFtZSgpID09IHNyY0F0dHIKKyAgICAgICAgICAgIHx8IGF0dHItPm5hbWUo
KSA9PSBmb3JtYWN0aW9uQXR0cgorICAgICAgICAgICAgfHwgYXR0ci0+bmFtZSgpID09IGl0ZW1p
ZEF0dHIpOworI2Vsc2UKICAgICByZXR1cm4gKGF0dHItPm5hbWUoKSA9PSBzcmNBdHRyIHx8IGF0
dHItPm5hbWUoKSA9PSBmb3JtYWN0aW9uQXR0cik7CisjZW5kaWYKIH0KIAogU3RyaW5nIEhUTUxJ
bnB1dEVsZW1lbnQ6OmRlZmF1bHRWYWx1ZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTI3MikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcwLDcgKzM3MCwx
MSBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c3RhcnRMb2FkaW5nRHluYW1pCiAKIGJvb2wgSFRN
TExpbmtFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUgKmF0dHIpIGNvbnN0CiB7Cisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGhyZWZBdHRy
IHx8IGF0dHItPm5hbWUoKSA9PSBpdGVtaWRBdHRyOworI2Vsc2UKICAgICByZXR1cm4gYXR0ci0+
bmFtZSgpID09IGhyZWZBdHRyOworI2VuZGlmCiB9CiAKIEtVUkwgSFRNTExpbmtFbGVtZW50Ojpo
cmVmKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAkocmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTgyLDcgKzI5ODIsMTEgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjptZWRpYUNhblN0YXJ0KCkKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1VS
TEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QKIHsKKyNpZiBFTkFCTEUoTUlD
Uk9EQVRBKQorICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBzcmNBdHRyIHx8IGF0dHJp
YnV0ZS0+bmFtZSgpID09IGl0ZW1pZEF0dHI7CisjZWxzZQogICAgIHJldHVybiBhdHRyaWJ1dGUt
Pm5hbWUoKSA9PSBzcmNBdHRyOworI2VuZGlmCiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2V0U2hvdWxkRGVsYXlMb2FkRXZlbnQoYm9vbCBzaG91bGREZWxheSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTI3MikKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0
MSwxMSBAQCBQYXNzUmVmUHRyPEhUTUxNb2RFbGVtZW50PiBIVE1MTW9kRWxlbWVuCiAKIGJvb2wg
SFRNTE1vZEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmlidXRlKSBjb25z
dAogeworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgp
ID09IGNpdGVBdHRyIHx8IGF0dHJpYnV0ZS0+bmFtZSgpID09IGl0ZW1pZEF0dHI7CisjZWxzZQog
ICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBjaXRlQXR0cjsKKyNlbmRpZgogfQogCiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAkocmV2aXNp
b24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzg0LDcgKzM4NCwxMyBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoCiAKIGJvb2wgSFRNTE9iamVjdEVsZW1lbnQ6OmlzVVJMQXR0cmli
dXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKIHsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAg
IHJldHVybiAoYXR0ci0+bmFtZSgpID09IGRhdGFBdHRyCisgICAgICAgICAgICB8fCAoYXR0ci0+
bmFtZSgpID09IHVzZW1hcEF0dHIgJiYgYXR0ci0+dmFsdWUoKS5zdHJpbmcoKVswXSAhPSAnIycp
CisgICAgICAgICAgICB8fCBhdHRyLT5uYW1lKCkgPT0gaXRlbWlkQXR0cik7CisjZWxzZQogICAg
IHJldHVybiAoYXR0ci0+bmFtZSgpID09IGRhdGFBdHRyIHx8IChhdHRyLT5uYW1lKCkgPT0gdXNl
bWFwQXR0ciAmJiBhdHRyLT52YWx1ZSgpLnN0cmluZygpWzBdICE9ICcjJykpOworI2VuZGlmCiB9
CiAKIGNvbnN0IFF1YWxpZmllZE5hbWUmIEhUTUxPYmplY3RFbGVtZW50OjppbWFnZVNvdXJjZUF0
dHJpYnV0ZU5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1F
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA5OTI3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBh
cmFtRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDcgQEAgdm9pZCBIVE1M
UGFyYW1FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYgogCiBib29sIEhUTUxQYXJhbUVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikgY29uc3QKIHsKKwogICAgIGlmIChhdHRy
LT5uYW1lKCkgPT0gdmFsdWVBdHRyKSB7CiAgICAgICAgIEF0dHJpYnV0ZSogYXR0ciA9IGF0dHJp
YnV0ZXMoKS0+Z2V0QXR0cmlidXRlSXRlbShuYW1lQXR0cik7CiAgICAgICAgIGlmIChhdHRyKSB7
CkBAIC03Myw3ICs3NCwxMSBAQCBib29sIEhUTUxQYXJhbUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRl
KEF0CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKyAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGl0ZW1pZEF0dHI7
CisjZWxzZQogICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiB2b2lkIEhUTUxQYXJhbUVs
ZW1lbnQ6OmFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxLVVJMPiYgdXJs
cykgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcAko
cmV2aXNpb24gOTkyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSwxMSBAQCB2b2lkIEhUTUxRdW90ZUVsZW1l
bnQ6Omluc2VydGVkSW50b0RvY3VtCiAKIGJvb2wgSFRNTFF1b3RlRWxlbWVudDo6aXNVUkxBdHRy
aWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNvbnN0CiB7CisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKKyAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gY2l0ZUF0dHIgfHwgYXR0cmlidXRl
LT5uYW1lKCkgPT0gaXRlbWlkQXR0cjsKKyNlbHNlCiAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFt
ZSgpID09IGNpdGVBdHRyOworI2VuZGlmCiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTI3MikKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0
OSwxMSBAQCBQYXNzUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBIVE1MU2NyaXB0CiAKIGJvb2wg
SFRNTFNjcmlwdEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikgY29uc3QK
IHsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3Jj
QXR0ciB8fCBhdHRyLT5uYW1lKCkgPT0gaXRlbWlkQXR0cjsKKyNlbHNlCiAgICAgcmV0dXJuIGF0
dHItPm5hbWUoKSA9PSBzcmNBdHRyOworI2VuZGlmCiB9CiAKIHZvaWQgSFRNTFNjcmlwdEVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hh
bmdlLCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTI3MikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTgsNyArMTE4LDExIEBAIHZvaWQgSFRNTFNvdXJjZUVsZW1lbnQ6OmVycm9yRXZlbnRU
aW1lckYKIAogYm9vbCBIVE1MU291cmNlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRl
KiBhdHRyaWJ1dGUpIGNvbnN0CiB7CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICByZXR1cm4g
YXR0cmlidXRlLT5uYW1lKCkgPT0gc3JjQXR0ciB8fCBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBpdGVt
aWRBdHRyOworI2Vsc2UKICAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gc3JjQXR0cjsK
KyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTI3MikKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzEsNyArMTMxLDExIEBAIHZvaWQgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmFkZGl0aW9u
YWxBdHQKIAogYm9vbCBIVE1MVGFibGVDZWxsRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmli
dXRlICphdHRyKSBjb25zdAogeworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgcmV0dXJuIGF0
dHItPm5hbWUoKSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBhdHRyLT5uYW1lKCkgPT0gaXRlbWlkQXR0
cjsKKyNlbHNlCiAgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBiYWNrZ3JvdW5kQXR0cjsKKyNl
bmRpZgogfQogCiBTdHJpbmcgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmFiYnIoKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTI3
MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY0MCw3ICs2NDAsMTEgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50OjphdHRhY2go
KQogCiBib29sIEhUTUxUYWJsZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0
cikgY29uc3QKIHsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHJldHVybiBhdHRyLT5uYW1l
KCkgPT0gYmFja2dyb3VuZEF0dHIgfHwgYXR0ci0+bmFtZSgpID09IGl0ZW1pZEF0dHI7CisjZWxz
ZQogICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gYmFja2dyb3VuZEF0dHI7CisjZW5kaWYKIH0K
IAogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gSFRNTFRhYmxlRWxlbWVudDo6cm93cygpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5
MjcyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU0LDcgKzE1NCwxMSBAQCBUZXh0VHJhY2sqIEhUTUxUcmFja0VsZW1lbnQ6
OnRyYWNrKCkgY29uCiAKIGJvb2wgSFRNTFRyYWNrRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0
cmlidXRlKiBhdHRyaWJ1dGUpIGNvbnN0CiB7CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICBy
ZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gc3JjQXR0ciB8fCBhdHRyaWJ1dGUtPm5hbWUoKSA9
PSBpdGVtaWRBdHRyOworI2Vsc2UKICAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gc3Jj
QXR0cjsKKyNlbmRpZgogfQogCiB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OmxvYWQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiB0cmFja0NsaWVudCkK
</data>
<flag name="review"
          id="112092"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113792</attachid>
            <date>2011-11-06 10:51:16 -0800</date>
            <delta_ts>2011-11-08 23:32:29 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_71510.diff</filename>
            <type>text/plain</type>
            <size>28418</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5Mzc2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMTEtMDYgIEFya28gU2Fo
YSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogZmFzdC9kb20vTWlj
cm9EYXRhL2l0ZW1pZC1hdHRyaWJ1dGUtdGVzdC5odG1sIGFzc2VydGlvbiBmYWlsdXJlIGluIEVs
ZW1lbnQ6OmdldFVSTEF0dHJpYnV0ZSgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzE1MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPdmVycmlkZSBpc1VSTEF0dHJpYnV0ZSgpIGZvciBIVE1MRWxlbWVu
dCBhbmQgcmV0dXJuIHRydWUgaWYgYXR0cmlidXRlIGlzIGl0ZW1pZEF0dHIuCisgICAgICAgIEFs
bCB0aGUgY2xhc3NlcyBkZXJpdmVkIGZyb20gSFRNTEVsZW1lbnQgb3ZlcnJpZGVzIHRoaXMgZnVu
Y3Rpb24gc2hvdWxkIHJldHVybiB0cnVlIGlmIGF0dHJpYnV0ZSBpcyBpdGVtaWRBdHRyLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtaWQtYXR0cmlidXRlLXRlc3QtMDAx
Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxCYXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQmFzZUVsZW1l
bnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxCdXR0b25FbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUp
OgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxFbWJl
ZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudDo6aXNVUkxB
dHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0
bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1l
RWxlbWVudEJhc2U6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSHRtbEVsZW1lbnQ6OmlzVVJMQXR0cmli
dXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBo
dG1sL0hUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRl
KToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRN
TExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6aXNV
UkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAg
ICogaHRtbC9IVE1MTW9kRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kRWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRl
KToKKyAgICAgICAgKiBodG1sL0hUTUxQYXJhbUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFBhcmFtRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRN
TFF1b3RlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUXVvdGVFbGVtZW50Ojpp
c1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNvdXJjZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJs
ZUNlbGxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50
Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyYWNrRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorCiAyMDExLTExLTAzICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgSlNDIHNob3VsZCBiZSBhYmxlIHRvIHNh
bXBsZSBpdHNlbGYgaW4gYSBtb3JlIGZsZXhpYmxlIHdheSB0aGFuIGp1c3Qgc2FtcGxpbmcgZmxh
Z3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCShyZXZp
c2lvbiA5OTM3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzcsNyArMjM3LDcgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVu
dDo6YWNjZXNzS2V5QWN0aW9uKAogCiBib29sIEhUTUxBbmNob3JFbGVtZW50Ojppc1VSTEF0dHJp
YnV0ZShBdHRyaWJ1dGUgKmF0dHIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9
PSBocmVmQXR0cjsKKyAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGhyZWZBdHRyIHx8IEhUTUxF
bGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyKTsKIH0KIAogYm9vbCBIVE1MQW5jaG9yRWxlbWVu
dDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQmFzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJhc2VFbGVtZW50LmNwcAkocmV2aXNpb24gOTkzNzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCYXNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgdm9p
ZCBIVE1MQmFzZUVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW1lbgogCiBib29sIEhUTUxCYXNlRWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IGhyZWZBdHRyOworICAgIHJldHVybiBhdHRyaWJ1
dGUtPm5hbWUoKSA9PSBocmVmQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0
cmlidXRlKTsKIH0KIAogU3RyaW5nIEhUTUxCYXNlRWxlbWVudDo6dGFyZ2V0KCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAJKHJldmlzaW9uIDk5Mzc1
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBIVE1MQm9keUVsZW1lbnQ6Omluc2VydGVkSW50
b0RvY3VtZQogCiBib29sIEhUTUxCb2R5RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRl
ICphdHRyKSBjb25zdAogewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gYmFja2dyb3VuZEF0
dHI7CisgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBIVE1MRWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cik7CiB9CiAKIGJvb2wgSFRNTEJvZHlFbGVtZW50Ojpz
dXBwb3J0c0ZvY3VzKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRv
bkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRv
bkVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNyArMTcxLDcgQEAgdm9p
ZCBIVE1MQnV0dG9uRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKAogCiBib29sIEhUTUxCdXR0b25F
bGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGF0dHItPm5hbWUoKSA9PSBmb3JtYWN0aW9uQXR0cjsKKyAgICByZXR1cm4gYXR0ci0+bmFt
ZSgpID09IGZvcm1hY3Rpb25BdHRyIHx8IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzVVJMQXR0
cmlidXRlKGF0dHIpOwogfQogCiBTdHJpbmcgSFRNTEJ1dHRvbkVsZW1lbnQ6OnZhbHVlKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05OTQsNiArOTk0LDE1IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmFkanVzdERpcmVjdGlvbmFsaXR5
SWYKICAgICB9CiB9CiAKK2Jvb2wgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0
ZSogYXR0cmlidXRlKSBjb25zdAoreworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgcmV0dXJu
IGF0dHJpYnV0ZS0+bmFtZSgpID09IGl0ZW1pZEF0dHI7CisjZWxzZQorICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorfQorCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKIFBhc3NSZWZQdHI8RE9NU2V0
dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVtZW50OjppdGVtUHJvcCgpIGNvbnN0CiB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiA5OTM3NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55
RWxlbWVudCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikg
Y29uc3Q7CisKICAgICBib29sIGllRm9yYmlkc0luc2VydEhUTUwoKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAJKHJldmlzaW9u
IDk5Mzc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZCgKIAogYm9vbCBIVE1MRW1iZWRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShB
dHRyaWJ1dGUqIGF0dHIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBzcmNB
dHRyOworICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0ciB8fCBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyKTsKIH0KIAogY29uc3QgUXVhbGlmaWVkTmFt
ZSYgSFRNTEVtYmVkRWxlbWVudDo6aW1hZ2VTb3VyY2VBdHRyaWJ1dGVOYW1lKCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5Mzc1
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00OTcsNyArNDk3LDcgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlbW92ZUZvcm1F
bGVtZW50KAogCiBib29sIEhUTUxGb3JtRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRl
KiBhdHRyKSBjb25zdAogewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gYWN0aW9uQXR0cjsK
KyAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGFjdGlvbkF0dHIgfHwgSFRNTEVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKGF0dHIpOwogfQogCiB2b2lkIEhUTUxGb3JtRWxlbWVudDo6cmVnaXN0ZXJJ
bWdFbGVtZW50KEhUTUxJbWFnZUVsZW1lbnQqIGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAkocmV2aXNpb24gOTkzNzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjU5LDcgKzI1OSw3IEBAIHZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnNldEZvY3VzKGJvb2wK
IAogYm9vbCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlICph
dHRyKSBjb25zdAogewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cjsKKyAgICBy
ZXR1cm4gYXR0ci0+bmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTEZyYW1lT3duZXJFbGVtZW50Ojpp
c1VSTEF0dHJpYnV0ZShhdHRyKTsKIH0KIAogaW50IEhUTUxGcmFtZUVsZW1lbnRCYXNlOjp3aWR0
aCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwCShyZXZpc2lv
biA5OTM3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4g
SFRNTEh0bWxFbGVtCiAKIGJvb2wgSFRNTEh0bWxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRy
aWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkg
PT0gbWFuaWZlc3RBdHRyOworICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBtYW5pZmVz
dEF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAKIHZv
aWQgSFRNTEh0bWxFbGVtZW50OjppbnNlcnRlZEJ5UGFyc2VyKCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjMsMTEgKzEyMyw2IEBAIHZvaWQgSFRNTElGcmFtZUVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW0K
ICAgICBIVE1MRnJhbWVFbGVtZW50QmFzZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCi1i
b29sIEhUTUxJRnJhbWVFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBzcmNBdHRyOwotfQotCiAjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKIFN0cmluZyBIVE1MSUZyYW1lRWxlbWVudDo6aXRlbVZhbHVlVGV4dCgp
IGNvbnN0CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCShy
ZXZpc2lvbiA5OTM3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNDMsOSArNDMsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7
CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwg
UmVuZGVyU3R5bGUqKTsKLSAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0
cmlidXRlKikgY29uc3Q7Ci0KKyAgICAgICAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogICAgIHZp
cnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZF
UlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDk5Mzc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEzLDcgKzMxMyw4IEBAIGJvb2wgSFRNTEltYWdlRWxlbWVu
dDo6aXNVUkxBdHRyaWJ1dGUoQXQKICAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IHNyY0F0dHIK
ICAgICAgICAgfHwgYXR0ci0+bmFtZSgpID09IGxvd3NyY0F0dHIKICAgICAgICAgfHwgYXR0ci0+
bmFtZSgpID09IGxvbmdkZXNjQXR0cgotICAgICAgICB8fCAoYXR0ci0+bmFtZSgpID09IHVzZW1h
cEF0dHIgJiYgYXR0ci0+dmFsdWUoKS5zdHJpbmcoKVswXSAhPSAnIycpOworICAgICAgICB8fCAo
YXR0ci0+bmFtZSgpID09IHVzZW1hcEF0dHIgJiYgYXR0ci0+dmFsdWUoKS5zdHJpbmcoKVswXSAh
PSAnIycpCisgICAgICAgIHx8IEhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyKTsKIH0K
IAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MSW1hZ2VFbGVtZW50OjphbHQoKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEyOTIsNyArMTI5Miw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGwKIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRy
aWJ1dGUgKmF0dHIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIChhdHRyLT5uYW1lKCkgPT0gc3JjQXR0
ciB8fCBhdHRyLT5uYW1lKCkgPT0gZm9ybWFjdGlvbkF0dHIpOworICAgIHJldHVybiAoYXR0ci0+
bmFtZSgpID09IHNyY0F0dHIgfHwgYXR0ci0+bmFtZSgpID09IGZvcm1hY3Rpb25BdHRyIHx8IEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyKSk7CiB9CiAKIFN0
cmluZyBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0VmFsdWUoKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAkocmV2aXNpb24gOTkzNzUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3
MCw3ICszNzAsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c3RhcnRMb2FkaW5nRHluYW1pCiAK
IGJvb2wgSFRNTExpbmtFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUgKmF0dHIpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBocmVmQXR0cjsKKyAgICByZXR1cm4g
YXR0ci0+bmFtZSgpID09IGhyZWZBdHRyIHx8IEhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShh
dHRyKTsKIH0KIAogS1VSTCBIVE1MTGlua0VsZW1lbnQ6OmhyZWYoKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5ODIsNyArMjk4Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDYW5TdGFy
dCgpCiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBh
dHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0
dHI7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTEVsZW1l
bnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0U2hvdWxkRGVsYXlMb2FkRXZlbnQoYm9vbCBzaG91bGREZWxheSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3
ICs0MSw3IEBAIFBhc3NSZWZQdHI8SFRNTE1vZEVsZW1lbnQ+IEhUTUxNb2RFbGVtZW4KIAogYm9v
bCBIVE1MTW9kRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IGNpdGVBdHRyOworICAgIHJl
dHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBjaXRlQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxB
dHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDk5Mzc1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NCw3ICszODQs
NyBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoCiAKIGJvb2wgSFRN
TE9iamVjdEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKIHsK
LSAgICByZXR1cm4gKGF0dHItPm5hbWUoKSA9PSBkYXRhQXR0ciB8fCAoYXR0ci0+bmFtZSgpID09
IHVzZW1hcEF0dHIgJiYgYXR0ci0+dmFsdWUoKS5zdHJpbmcoKVswXSAhPSAnIycpKTsKKyAgICBy
ZXR1cm4gKGF0dHItPm5hbWUoKSA9PSBkYXRhQXR0ciB8fCAoYXR0ci0+bmFtZSgpID09IHVzZW1h
cEF0dHIgJiYgYXR0ci0+dmFsdWUoKS5zdHJpbmcoKVswXSAhPSAnIycpIHx8IEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHIpKTsKIH0KIAogY29uc3QgUXVhbGlmaWVk
TmFtZSYgSFRNTE9iamVjdEVsZW1lbnQ6OmltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHAJKHJldmlzaW9u
IDk5Mzc1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBib29sIEhUTUxQYXJhbUVsZW1lbnQ6OmlzVVJM
QXR0cmlidXRlKEF0CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNVUkxBdHRy
aWJ1dGUoYXR0cik7CiB9CiAKIHZvaWQgSFRNTFBhcmFtRWxlbWVudDo6YWRkU3VicmVzb3VyY2VB
dHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+JiB1cmxzKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDcgKzUxLDcgQEAgdm9pZCBIVE1MUXVvdGVFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bQog
CiBib29sIEhUTUxRdW90ZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmli
dXRlKSBjb25zdAogewotICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBjaXRlQXR0cjsK
KyAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gY2l0ZUF0dHIgfHwgSFRNTEVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3
ICs0OSw3IEBAIFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+IEhUTUxTY3JpcHQKIAogYm9v
bCBIVE1MU2NyaXB0RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSBjb25z
dAogewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cjsKKyAgICByZXR1cm4gYXR0
ci0+bmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHIp
OwogfQogCiB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFu
Z2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBj
aGlsZENvdW50RGVsdGEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVt
ZW50LmNwcAkocmV2aXNpb24gOTkzNzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3Vy
Y2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgSFRN
TFNvdXJjZUVsZW1lbnQ6OmVycm9yRXZlbnRUaW1lckYKIAogYm9vbCBIVE1MU291cmNlRWxlbWVu
dDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0dHI7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS0+
bmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0
ZSk7CiB9CiAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5Mzc1KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEzMSw3ICsxMzEsNyBAQCB2b2lkIEhUTUxUYWJsZUNlbGxFbGVtZW50OjphZGRpdGlvbmFsQXR0
CiAKIGJvb2wgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAq
YXR0cikgY29uc3QKIHsKLSAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGJhY2tncm91bmRBdHRy
OworICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gYmFja2dyb3VuZEF0dHIgfHwgSFRNTFRhYmxl
UGFydEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHIpOwogfQogCiBTdHJpbmcgSFRNTFRhYmxl
Q2VsbEVsZW1lbnQ6OmFiYnIoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0MCw3ICs2NDAsNyBAQCB2
b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmF0dGFjaCgpCiAKIGJvb2wgSFRNTFRhYmxlRWxlbWVudDo6
aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlICphdHRyKSBjb25zdAogewotICAgIHJldHVybiBhdHRy
LT5uYW1lKCkgPT0gYmFja2dyb3VuZEF0dHI7CisgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBi
YWNrZ3JvdW5kQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cik7CiB9CiAK
IFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IEhUTUxUYWJsZUVsZW1lbnQ6OnJvd3MoKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTM3
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1NCw3ICsxNTQsNyBAQCBUZXh0VHJhY2sqIEhUTUxUcmFja0VsZW1lbnQ6OnRy
YWNrKCkgY29uCiAKIGJvb2wgSFRNTFRyYWNrRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmli
dXRlKiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09
IHNyY0F0dHI7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0dHIgfHwgSFRN
TEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAKIHZvaWQgSFRNTFRyYWNr
RWxlbWVudDo6bG9hZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tD
bGllbnQqIHRyYWNrQ2xpZW50KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTkzNzYpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMS0w
NiAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBm
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbWlkLWF0dHJpYnV0ZS10ZXN0Lmh0bWwgYXNzZXJ0aW9uIGZh
aWx1cmUgaW4gRWxlbWVudDo6Z2V0VVJMQXR0cmlidXRlKCkuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTUxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1pZC1h
dHRyaWJ1dGUtdGVzdC0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9NaWNyb0RhdGEvaXRlbWlkLWF0dHJpYnV0ZS10ZXN0LTAwMS5odG1sOiBBZGRlZC4KKwogMjAx
MS0xMS0wNiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAg
ICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9pdGVtaWQtYXR0cmlidXRlLXRlc3QtMDAxLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbWlkLWF0dHJpYnV0
ZS10ZXN0LTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvaXRlbWlkLWF0dHJpYnV0ZS10ZXN0LTAwMS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTI0IEBACitUZXN0IGZvciBidWc6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTUxMC4gQXNzZXJ0aW9uIGZhaWx1cmUgaW4gRWxl
bWVudDo6Z2V0VVJMQXR0cmlidXRlKCkgd2hpbGUgcmV0cml2aW5nIGl0ZW1pZCBvZiBhIE1pY3Jv
ZGF0YSBpdGVtLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYQorU2V0IGF0dHJpYnV0ZTog
aXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworU2V0IGF0dHJpYnV0ZTogaHJl
ZiwgdmFsdWU6IGh0dHA6Ly93d3cud2Via2l0Lm9yZy8KK1BBU1MgY3JlYXRlRWxlbWVudCgnYScs
IHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgaHJlZjogJ2h0dHA6Ly93d3cud2Vi
a2l0Lm9yZy8nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQor
CitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYXVkaW8KK1NldCBhdHRyaWJ1dGU6IGl0ZW1pZCwg
dmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6
IHRlc3QubXAzCitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJywge2l0ZW1pZDogJ2h0dHA6Ly9l
eGFtcGxlLmNvbS9mb28nLCBzcmM6ICd0ZXN0Lm1wMyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFt
cGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBiYXNlCitT
ZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitTZXQg
YXR0cmlidXRlOiBocmVmLCB2YWx1ZTogaHR0cDovL3d3dy53ZWJraXQub3JnLworUEFTUyBjcmVh
dGVFbGVtZW50KCdiYXNlJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBocmVm
OiAnaHR0cDovL3d3dy53ZWJraXQub3JnLyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNv
bS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBibG9ja3F1b3RlCitT
ZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitQQVNT
IGNyZWF0ZUVsZW1lbnQoJ2Jsb2NrcXVvdGUnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29t
L2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK0Ny
ZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBib2R5CitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVl
OiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2JvZHknLCB7aXRl
bWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxl
LmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBidXR0b24KK1Nl
dCBhdHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1NldCBh
dHRyaWJ1dGU6IHR5cGUsIHZhbHVlOiBidXR0b24KK1BBU1MgY3JlYXRlRWxlbWVudCgnYnV0dG9u
Jywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCB0eXBlOiAnYnV0dG9uJ30pLml0
ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7IGlzIHRydWUKKworQ3JlYXRlZCBlbGVt
ZW50IG9mIHR5cGU6IGRlbAorU2V0IGF0dHJpYnV0ZTogaXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4
YW1wbGUuY29tL2ZvbworUEFTUyBjcmVhdGVFbGVtZW50KCdkZWwnLCB7aXRlbWlkOiAnaHR0cDov
L2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBp
cyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0
ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1BBU1MgY3JlYXRlRWxlbWVudCgn
ZGl2Jywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRw
Oi8vZXhhbXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTog
ZW1iZWQKK1NldCBhdHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9m
b28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IHRlc3Quc3dmCitQQVNTIGNyZWF0ZUVsZW1l
bnQoJ2VtYmVkJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBzcmM6ICd0ZXN0
LnN3Zid9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK0Ny
ZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBmb3JtCitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVl
OiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2Zvcm0nLCB7aXRl
bWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxl
LmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBmcmFtZQorU2V0
IGF0dHJpYnV0ZTogaXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworU2V0IGF0
dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdC5odG1sCitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2ZyYW1l
Jywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBzcmM6ICd0ZXN0Lmh0bWwnfSku
aXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitDcmVhdGVkIGVs
ZW1lbnQgb2YgdHlwZTogaHRtbAorU2V0IGF0dHJpYnV0ZTogaXRlbWlkLCB2YWx1ZTogaHR0cDov
L2V4YW1wbGUuY29tL2ZvbworUEFTUyBjcmVhdGVFbGVtZW50KCdodG1sJywge2l0ZW1pZDogJ2h0
dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9v
JzsgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaWZyYW1lCitTZXQgYXR0cmli
dXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitTZXQgYXR0cmlidXRl
OiBzcmMsIHZhbHVlOiB0ZXN0Lmh0bWwKK1BBU1MgY3JlYXRlRWxlbWVudCgnaWZyYW1lJywge2l0
ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBzcmM6ICd0ZXN0Lmh0bWwnfSkuaXRlbUlk
ID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQg
b2YgdHlwZTogaW1nCitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBs
ZS5jb20vZm9vCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiBpbWFnZS5wbmcKK1BBU1MgY3Jl
YXRlRWxlbWVudCgnaW1nJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBzcmM6
ICdpbWFnZS5wbmcnfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMgdHJ1
ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaW5wdXQKK1NldCBhdHRyaWJ1dGU6IGl0ZW1p
ZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1NldCBhdHRyaWJ1dGU6IHR5cGUsIHZh
bHVlOiBidXR0b24KK1BBU1MgY3JlYXRlRWxlbWVudCgnaW5wdXQnLCB7aXRlbWlkOiAnaHR0cDov
L2V4YW1wbGUuY29tL2ZvbycsIHR5cGU6ICdidXR0b24nfSkuaXRlbUlkID09ICdodHRwOi8vZXhh
bXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaW5zCitT
ZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitQQVNT
IGNyZWF0ZUVsZW1lbnQoJ2lucycsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJ30p
Lml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7IGlzIHRydWUKKworQ3JlYXRlZCBl
bGVtZW50IG9mIHR5cGU6IGxpbmsKK1NldCBhdHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6
Ly9leGFtcGxlLmNvbS9mb28KK1NldCBhdHRyaWJ1dGU6IHR5cGUsIHZhbHVlOiB0ZXh0L2Nzcwor
U2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFsdWU6IHRlc3QuY3NzCitQQVNTIGNyZWF0ZUVsZW1lbnQo
J2xpbmsnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHR5cGU6ICd0ZXh0L2Nz
cycsIGhyZWY6ICd0ZXN0LmNzcyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28n
OyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBvYmplY3QKK1NldCBhdHRyaWJ1
dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1NldCBhdHRyaWJ1dGU6
IGRhdGEsIHZhbHVlOiB0ZXN0LnN3ZgorUEFTUyBjcmVhdGVFbGVtZW50KCdvYmplY3QnLCB7aXRl
bWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIGRhdGE6ICd0ZXN0LnN3Zid9KS5pdGVtSWQg
PT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBv
ZiB0eXBlOiBwYXJhbQorU2V0IGF0dHJpYnV0ZTogaXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4YW1w
bGUuY29tL2ZvbworU2V0IGF0dHJpYnV0ZTogbmFtZSwgdmFsdWU6IG15X3BhcmFtCitQQVNTIGNy
ZWF0ZUVsZW1lbnQoJ3BhcmFtJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBu
YW1lOiAnbXlfcGFyYW0nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMg
dHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogcQorU2V0IGF0dHJpYnV0ZTogaXRlbWlk
LCB2YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworUEFTUyBjcmVhdGVFbGVtZW50KCdxJywg
e2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRwOi8vZXhh
bXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogc291cmNl
CitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitT
ZXQgYXR0cmlidXRlOiB0eXBlLCB2YWx1ZTogYXVkaW8vbXBlZworU2V0IGF0dHJpYnV0ZTogc3Jj
LCB2YWx1ZTogdGVzdC5tcDMKK1BBU1MgY3JlYXRlRWxlbWVudCgnc291cmNlJywge2l0ZW1pZDog
J2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCB0eXBlOiAnYXVkaW8vbXBlZycsIHNyYzogJ3Rlc3Qu
bXAzJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7IGlzIHRydWUKKworQ3Jl
YXRlZCBlbGVtZW50IG9mIHR5cGU6IHRhYmxlCitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVl
OiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3RhYmxlJywge2l0
ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBs
ZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdGQKK1NldCBh
dHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1BBU1MgY3Jl
YXRlRWxlbWVudCgndGQnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVt
SWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVu
dCBvZiB0eXBlOiB0cmFjaworU2V0IGF0dHJpYnV0ZTogaXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4
YW1wbGUuY29tL2ZvbworU2V0IGF0dHJpYnV0ZTogdHlwZSwgdmFsdWU6IGF1ZGlvL21wZWcKK1Nl
dCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IHRlc3QudnR0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3Ry
YWNrJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCB0eXBlOiAnYXVkaW8vbXBl
ZycsIHNyYzogJ3Rlc3QudnR0J30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7
IGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHZpZGVvCitTZXQgYXR0cmlidXRl
OiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitTZXQgYXR0cmlidXRlOiBz
cmMsIHZhbHVlOiB0ZXN0Lm1wNAorUEFTUyBjcmVhdGVFbGVtZW50KCd2aWRlbycsIHtpdGVtaWQ6
ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgc3JjOiAndGVzdC5tcDQnfSkuaXRlbUlkID09ICdo
dHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL2l0ZW1pZC1hdHRyaWJ1dGUtdGVzdC0wMDEuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbWlkLWF0dHJpYnV0ZS10ZXN0LTAwMS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1p
ZC1hdHRyaWJ1dGUtdGVzdC0wMDEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0
IGZvciBidWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTUxMC4g
QXNzZXJ0aW9uIGZhaWx1cmUgaW4gRWxlbWVudDo6Z2V0VVJMQXR0cmlidXRlKCkgd2hpbGUgcmV0
cml2aW5nIGl0ZW1pZCBvZiBhIE1pY3JvZGF0YSBpdGVtLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnYScsIHtpdGVt
aWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgaHJlZjogJ2h0dHA6Ly93d3cud2Via2l0Lm9y
Zy8nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2RlYnVnKCcnKTsK
K3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnYXVkaW8nLCB7aXRlbWlkOiAnaHR0cDovL2V4
YW1wbGUuY29tL2ZvbycsIHNyYzogJ3Rlc3QubXAzJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1w
bGUuY29tL2Zvbyc7Iik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQo
J2Jhc2UnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIGhyZWY6ICdodHRwOi8v
d3d3LndlYmtpdC5vcmcvJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7Iik7
CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2Jsb2NrcXVvdGUnLCB7
aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFt
cGxlLmNvbS9mb28nOyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50
KCdib2R5Jywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdo
dHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3Jl
YXRlRWxlbWVudCgnYnV0dG9uJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCB0
eXBlOiAnYnV0dG9uJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7Iik7Citk
ZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2RlbCcsIHtpdGVtaWQ6ICdo
dHRwOi8vZXhhbXBsZS5jb20vZm9vJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zv
byc7Iik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtp
dGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1w
bGUuY29tL2Zvbyc7Iik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQo
J2VtYmVkJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBzcmM6ICd0ZXN0LnN3
Zid9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyIpOworZGVidWcoJycpOwor
c2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdmb3JtJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFt
cGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2Rl
YnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnZnJhbWUnLCB7aXRlbWlkOiAn
aHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHNyYzogJ3Rlc3QuaHRtbCd9KS5pdGVtSWQgPT0gJ2h0
dHA6Ly9leGFtcGxlLmNvbS9mb28nOyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVh
dGVFbGVtZW50KCdodG1sJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRl
bUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJl
VHJ1ZSgiY3JlYXRlRWxlbWVudCgnaWZyYW1lJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNv
bS9mb28nLCBzcmM6ICd0ZXN0Lmh0bWwnfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20v
Zm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnaW1nJywg
e2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBzcmM6ICdpbWFnZS5wbmcnfSkuaXRl
bUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJl
VHJ1ZSgiY3JlYXRlRWxlbWVudCgnaW5wdXQnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29t
L2ZvbycsIHR5cGU6ICdidXR0b24nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9v
JzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnaW5zJywge2l0
ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBs
ZS5jb20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgn
bGluaycsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgdHlwZTogJ3RleHQvY3Nz
JywgaHJlZjogJ3Rlc3QuY3NzJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7
Iik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ29iamVjdCcsIHtp
dGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgZGF0YTogJ3Rlc3Quc3dmJ30pLml0ZW1J
ZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7Iik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRy
dWUoImNyZWF0ZUVsZW1lbnQoJ3BhcmFtJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9m
b28nLCBuYW1lOiAnbXlfcGFyYW0nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9v
JzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgncScsIHtpdGVt
aWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUu
Y29tL2Zvbyc7Iik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ3Nv
dXJjZScsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgdHlwZTogJ2F1ZGlvL21w
ZWcnLCBzcmM6ICd0ZXN0Lm1wMyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28n
OyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCd0YWJsZScsIHtp
dGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1w
bGUuY29tL2Zvbyc7Iik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQo
J3RkJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRw
Oi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRl
RWxlbWVudCgndHJhY2snLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHR5cGU6
ICdhdWRpby9tcGVnJywgc3JjOiAndGVzdC52dHQnfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBs
ZS5jb20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgn
dmlkZW8nLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHNyYzogJ3Rlc3QubXA0
J30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7Iik7CitkZWJ1ZygnJyk7CisK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="112268"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114214</attachid>
            <date>2011-11-08 23:32:29 -0800</date>
            <delta_ts>2011-11-09 11:35:44 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_71510.diff</filename>
            <type>text/plain</type>
            <size>28642</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5NjU2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTEtMTEtMDggIEFya28gU2Fo
YSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogZmFzdC9kb20vTWlj
cm9EYXRhL2l0ZW1pZC1hdHRyaWJ1dGUtdGVzdC5odG1sIGFzc2VydGlvbiBmYWlsdXJlIGluIEVs
ZW1lbnQ6OmdldFVSTEF0dHJpYnV0ZSgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzE1MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBPdmVycmlkZSBpc1VSTEF0dHJpYnV0ZSgpIGZvciBIVE1MRWxlbWVu
dCBhbmQgcmV0dXJuIHRydWUgaWYgYXR0cmlidXRlIGlzIGl0ZW1pZEF0dHIuCisgICAgICAgIEFs
bCB0aGUgY2xhc3NlcyBkZXJpdmVkIGZyb20gSFRNTEVsZW1lbnQgb3ZlcnJpZGVzIHRoaXMgZnVu
Y3Rpb24gc2hvdWxkIHJldHVybiB0cnVlIGlmIGF0dHJpYnV0ZSBpcyBpdGVtaWRBdHRyLgorICAg
ICAgICBSZW1vdmVkIEhUTUxJRnJhbWVFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSgpIG1ldGhvZCBh
cyBIVE1MRnJhbWVFbGVtZW50QmFzZSBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaXQuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1pZC1hdHRyaWJ1dGUtdGVzdC0wMDEuaHRt
bAorCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwv
SFRNTEJhc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCYXNlRWxlbWVudDo6
aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAg
ICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1
dHRvbkVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50Ojppc1VSTEF0dHJp
YnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZvcm1FbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9I
VE1MRnJhbWVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVt
ZW50QmFzZTo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTEh0bWxFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxIdG1sRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUp
OgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTElGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojppc1VSTEF0
dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxNb2RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RFbGVtZW50
Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGFyYW1FbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MUXVv
dGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxRdW90ZUVsZW1lbnQ6OmlzVVJM
QXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAg
ICogaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU291
cmNlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlQ2VsbEVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAg
ICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJh
Y2tFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisKIDIwMTEtMTEtMDggIEFudGFyeWFtaSBQYW5k
aWEgIDxhbnRhcnlhbWkucGFuZGlhQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBEZWZhdWx0IDxz
ZWxlY3QgbXVsdGlwbGU+IGV4cGFuZHMgdXAgdG8gMTAgaXRlbXMgaW5zdGVhZCBvZiBzaG93aW5n
IDQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAkocmV2
aXNpb24gOTk2NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1l
bnQ6OmFjY2Vzc0tleUFjdGlvbigKIAogYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNVUkxBdHRy
aWJ1dGUoQXR0cmlidXRlICphdHRyKSBjb25zdAogewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkg
PT0gaHJlZkF0dHI7CisgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBocmVmQXR0ciB8fCBIVE1M
RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cik7CiB9CiAKIGJvb2wgSFRNTEFuY2hvckVsZW1l
bnQ6OmNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJhc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCYXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5NjUzKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQmFzZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZv
aWQgSFRNTEJhc2VFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW4KIAogYm9vbCBIVE1MQmFzZUVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmlidXRlKSBjb25zdAogewotICAg
IHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBocmVmQXR0cjsKKyAgICByZXR1cm4gYXR0cmli
dXRlLT5uYW1lKCkgPT0gaHJlZkF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0
dHJpYnV0ZSk7CiB9CiAKIFN0cmluZyBIVE1MQmFzZUVsZW1lbnQ6OnRhcmdldCgpIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTY1
MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgSFRNTEJvZHlFbGVtZW50OjppbnNlcnRlZElu
dG9Eb2N1bWUKIAogYm9vbCBIVE1MQm9keUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0
ZSAqYXR0cikgY29uc3QKIHsKLSAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGJhY2tncm91bmRB
dHRyOworICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gYmFja2dyb3VuZEF0dHIgfHwgSFRNTEVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHIpOwogfQogCiBib29sIEhUTUxCb2R5RWxlbWVudDo6
c3VwcG9ydHNGb2N1cygpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0
b25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0
b25FbGVtZW50LmNwcAkocmV2aXNpb24gOTk2NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDcgKzE3MSw3IEBAIHZv
aWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbigKIAogYm9vbCBIVE1MQnV0dG9u
RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSBjb25zdAogewotICAgIHJl
dHVybiBhdHRyLT5uYW1lKCkgPT0gZm9ybWFjdGlvbkF0dHI7CisgICAgcmV0dXJuIGF0dHItPm5h
bWUoKSA9PSBmb3JtYWN0aW9uQXR0ciB8fCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc1VSTEF0
dHJpYnV0ZShhdHRyKTsKIH0KIAogU3RyaW5nIEhUTUxCdXR0b25FbGVtZW50Ojp2YWx1ZSgpIGNv
bnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gOTk2NTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTk0LDYgKzk5NCwxNiBAQCB2b2lkIEhUTUxFbGVtZW50OjphZGp1c3REaXJlY3Rpb25hbGl0
eUlmCiAgICAgfQogfQogCitib29sIEhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1
dGUqIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIHJldHVy
biBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBpdGVtaWRBdHRyOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oYXR0cmlidXRlKTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogI2lmIEVOQUJM
RShNSUNST0RBVEEpCiBQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVu
dDo6aXRlbVByb3AoKSBjb25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAko
cmV2aXNpb24gOTk2NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTExMCw2ICsxMTAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBi
ZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVs
dGEgPSAwKTsKICAgICB2b2lkIGNhbGN1bGF0ZUFuZEFkanVzdERpcmVjdGlvbmFsaXR5KCk7CiAK
KyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisKIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdDsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTY1MykKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIEhUTUxFbWJlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoCiAKIGJvb2wgSFRNTEVtYmVkRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBh
dHRyKSBjb25zdAogewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cjsKKyAgICBy
ZXR1cm4gYXR0ci0+bmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
aXNVUkxBdHRyaWJ1dGUoYXR0cik7CiB9CiAKIGNvbnN0IFF1YWxpZmllZE5hbWUmIEhUTUxFbWJl
ZEVsZW1lbnQ6OmltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTY1MykKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDk3
LDcgKzQ5Nyw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpyZW1vdmVGb3JtRWxlbWVudCgKIAog
Ym9vbCBIVE1MRm9ybUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikgY29u
c3QKIHsKLSAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGFjdGlvbkF0dHI7CisgICAgcmV0dXJu
IGF0dHItPm5hbWUoKSA9PSBhY3Rpb25BdHRyIHx8IEhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0
ZShhdHRyKTsKIH0KIAogdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlZ2lzdGVySW1nRWxlbWVudChI
VE1MSW1hZ2VFbGVtZW50KiBlKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVF
bGVtZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDk5NjUzKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw3ICsyNTks
NyBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpzZXRGb2N1cyhib29sCiAKIGJvb2wgSFRN
TEZyYW1lRWxlbWVudEJhc2U6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QK
IHsKLSAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IHNyY0F0dHI7CisgICAgcmV0dXJuIGF0dHIt
Pm5hbWUoKSA9PSBzcmNBdHRyIHx8IEhUTUxGcmFtZU93bmVyRWxlbWVudDo6aXNVUkxBdHRyaWJ1
dGUoYXR0cik7CiB9CiAKIGludCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6d2lkdGgoKQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmNwcAkocmV2aXNpb24gOTk2NTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDcgKzUzLDcgQEAgUGFzc1JlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+IEhUTUxIdG1sRWxl
bQogCiBib29sIEhUTUxIdG1sRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRy
aWJ1dGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IG1hbmlmZXN0
QXR0cjsKKyAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gbWFuaWZlc3RBdHRyIHx8IEhU
TUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiB2b2lkIEhUTUxIdG1s
RWxlbWVudDo6aW5zZXJ0ZWRCeVBhcnNlcigpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJRnJhbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJRnJhbWVFbGVtZW50LmNwcAkocmV2aXNpb24gOTk2NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDExICsxMjIs
NiBAQCB2b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtCiAgICAgSFRNTEZy
YW1lRWxlbWVudEJhc2U6OnJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKIH0KIAotYm9vbCBIVE1MSUZy
YW1lRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSBjb25zdAotewotICAg
IHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cjsKLX0KLQogI2lmIEVOQUJMRShNSUNST0RB
VEEpCiBTdHJpbmcgSFRNTElGcmFtZUVsZW1lbnQ6Oml0ZW1WYWx1ZVRleHQoKSBjb25zdAogewpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAkocmV2aXNpb24gOTk2
NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDkgKzQzLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOwogICAgIHZpcnR1
YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxl
Kik7Ci0gICAgCi0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNv
bnN0OwotCisgICAgICAgCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICAgICB2aXJ0dWFsIFN0cmlu
ZyBpdGVtVmFsdWVUZXh0KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEl0
ZW1WYWx1ZVRleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTY1
MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxMyw3ICszMTMsOCBAQCBib29sIEhUTUxJbWFnZUVsZW1lbnQ6OmlzVVJMQXR0
cmlidXRlKEF0CiAgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBzcmNBdHRyCiAgICAgICAgIHx8
IGF0dHItPm5hbWUoKSA9PSBsb3dzcmNBdHRyCiAgICAgICAgIHx8IGF0dHItPm5hbWUoKSA9PSBs
b25nZGVzY0F0dHIKLSAgICAgICAgfHwgKGF0dHItPm5hbWUoKSA9PSB1c2VtYXBBdHRyICYmIGF0
dHItPnZhbHVlKCkuc3RyaW5nKClbMF0gIT0gJyMnKTsKKyAgICAgICAgfHwgKGF0dHItPm5hbWUo
KSA9PSB1c2VtYXBBdHRyICYmIGF0dHItPnZhbHVlKCkuc3RyaW5nKClbMF0gIT0gJyMnKQorICAg
ICAgICB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cik7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgSFRNTEltYWdlRWxlbWVudDo6YWx0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gOTk2NTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjkyLDcgKzEyOTIsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRs
CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlICphdHRy
KSBjb25zdAogewotICAgIHJldHVybiAoYXR0ci0+bmFtZSgpID09IHNyY0F0dHIgfHwgYXR0ci0+
bmFtZSgpID09IGZvcm1hY3Rpb25BdHRyKTsKKyAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IHNy
Y0F0dHIgfHwgYXR0ci0+bmFtZSgpID09IGZvcm1hY3Rpb25BdHRyIHx8IEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyKTsKIH0KIAogU3RyaW5nIEhUTUxJbnB1
dEVsZW1lbnQ6OmRlZmF1bHRWYWx1ZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTY1MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcwLDcgKzM3MCw3IEBA
IHZvaWQgSFRNTExpbmtFbGVtZW50OjpzdGFydExvYWRpbmdEeW5hbWkKIAogYm9vbCBIVE1MTGlu
a0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKIHsKLSAgICBy
ZXR1cm4gYXR0ci0+bmFtZSgpID09IGhyZWZBdHRyOworICAgIHJldHVybiBhdHRyLT5uYW1lKCkg
PT0gaHJlZkF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHIpOwogfQogCiBL
VVJMIEhUTUxMaW5rRWxlbWVudDo6aHJlZigpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5NjUzKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk4Miw3ICsy
OTgyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNhblN0YXJ0KCkKIAogYm9vbCBI
VE1MTWVkaWFFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29u
c3QKIHsKLSAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gc3JjQXR0cjsKKyAgICByZXR1
cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gc3JjQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRy
aWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRTaG91bGRE
ZWxheUxvYWRFdmVudChib29sIHNob3VsZERlbGF5KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTW9kRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTW9kRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5NjUzKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTW9kRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgUGFz
c1JlZlB0cjxIVE1MTW9kRWxlbWVudD4gSFRNTE1vZEVsZW1lbgogCiBib29sIEhUTUxNb2RFbGVt
ZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gY2l0ZUF0dHI7CisgICAgcmV0dXJuIGF0dHJpYnV0
ZS0+bmFtZSgpID09IGNpdGVBdHRyIHx8IEhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRy
aWJ1dGUpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmNwcAkocmV2aXNpb24gOTk2NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg0LDcgKzM4NCw3IEBAIHZvaWQgSFRN
TE9iamVjdEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCgKIAogYm9vbCBIVE1MT2JqZWN0RWxlbWVu
dDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlICphdHRyKSBjb25zdAogewotICAgIHJldHVybiAo
YXR0ci0+bmFtZSgpID09IGRhdGFBdHRyIHx8IChhdHRyLT5uYW1lKCkgPT0gdXNlbWFwQXR0ciAm
JiBhdHRyLT52YWx1ZSgpLnN0cmluZygpWzBdICE9ICcjJykpOworICAgIHJldHVybiBhdHRyLT5u
YW1lKCkgPT0gZGF0YUF0dHIgfHwgKGF0dHItPm5hbWUoKSA9PSB1c2VtYXBBdHRyICYmIGF0dHIt
PnZhbHVlKCkuc3RyaW5nKClbMF0gIT0gJyMnKSB8fCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpp
c1VSTEF0dHJpYnV0ZShhdHRyKTsKIH0KIAogY29uc3QgUXVhbGlmaWVkTmFtZSYgSFRNTE9iamVj
dEVsZW1lbnQ6OmltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5NjUzKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzMsNyArNzMsNyBAQCBib29sIEhUTUxQYXJhbUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cik7CiB9
CiAKIHZvaWQgSFRNTFBhcmFtRWxlbWVudDo6YWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExp
c3RIYXNoU2V0PEtVUkw+JiB1cmxzKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUXVvdGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxRdW90ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTY1MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAg
dm9pZCBIVE1MUXVvdGVFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bQogCiBib29sIEhUTUxRdW90
ZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmlidXRlKSBjb25zdAogewot
ICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBjaXRlQXR0cjsKKyAgICByZXR1cm4gYXR0
cmlidXRlLT5uYW1lKCkgPT0gY2l0ZUF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRl
KGF0dHJpYnV0ZSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTY1MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIFBhc3NS
ZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+IEhUTUxTY3JpcHQKIAogYm9vbCBIVE1MU2NyaXB0RWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSBjb25zdAogewotICAgIHJldHVy
biBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cjsKKyAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IHNy
Y0F0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHIpOwogfQogCiB2b2lkIEhU
TUxTY3JpcHRFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5v
ZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAkocmV2aXNp
b24gOTk2NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgSFRNTFNvdXJjZUVsZW1lbnQ6
OmVycm9yRXZlbnRUaW1lckYKIAogYm9vbCBIVE1MU291cmNlRWxlbWVudDo6aXNVUkxBdHRyaWJ1
dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF0dHJpYnV0ZS0+
bmFtZSgpID09IHNyY0F0dHI7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0
dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAKICNpZiBF
TkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxs
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVD
ZWxsRWxlbWVudC5jcHAJKHJldmlzaW9uIDk5NjUzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDZWxsRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw3ICsxMzEsNyBA
QCB2b2lkIEhUTUxUYWJsZUNlbGxFbGVtZW50OjphZGRpdGlvbmFsQXR0CiAKIGJvb2wgSFRNTFRh
YmxlQ2VsbEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKIHsK
LSAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGJhY2tncm91bmRBdHRyOworICAgIHJldHVybiBh
dHRyLT5uYW1lKCkgPT0gYmFja2dyb3VuZEF0dHIgfHwgSFRNTFRhYmxlUGFydEVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKGF0dHIpOwogfQogCiBTdHJpbmcgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmFi
YnIoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA5OTY1MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0MCw3ICs2NDAsNyBAQCB2b2lkIEhUTUxUYWJsZUVs
ZW1lbnQ6OmF0dGFjaCgpCiAKIGJvb2wgSFRNTFRhYmxlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlICphdHRyKSBjb25zdAogewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gYmFj
a2dyb3VuZEF0dHI7CisgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBiYWNrZ3JvdW5kQXR0ciB8
fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cik7CiB9CiAKIFBhc3NSZWZQdHI8SFRN
TENvbGxlY3Rpb24+IEhUTUxUYWJsZUVsZW1lbnQ6OnJvd3MoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCShyZXZpc2lvbiA5OTY1MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw3
ICsxNTQsNyBAQCBUZXh0VHJhY2sqIEhUTUxUcmFja0VsZW1lbnQ6OnRyYWNrKCkgY29uCiAKIGJv
b2wgSFRNTFRyYWNrRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0dHI7CisgICAg
cmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJM
QXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAKIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6bG9hZChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIHRyYWNrQ2xp
ZW50KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTk2NTYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMS0wOCAgQXJrbyBTYWhhICA8
YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBmYXN0L2RvbS9NaWNyb0Rh
dGEvaXRlbWlkLWF0dHJpYnV0ZS10ZXN0Lmh0bWwgYXNzZXJ0aW9uIGZhaWx1cmUgaW4gRWxlbWVu
dDo6Z2V0VVJMQXR0cmlidXRlKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTUxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1pZC1hdHRyaWJ1dGUtdGVzdC0w
MDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRl
bWlkLWF0dHJpYnV0ZS10ZXN0LTAwMS5odG1sOiBBZGRlZC4KKwogMjAxMS0xMS0wOCAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
R1RLIHJlYmFzZWxpbmUgYWZ0ZXIgcjk5NTM5LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL2l0ZW1pZC1hdHRyaWJ1dGUtdGVzdC0wMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtaWQtYXR0cmlidXRlLXRl
c3QtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9pdGVtaWQtYXR0cmlidXRlLXRlc3QtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMjQgQEAKK1Rlc3QgZm9yIGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTEwLiBBc3NlcnRpb24gZmFpbHVyZSBpbiBFbGVtZW50
OjpnZXRVUkxBdHRyaWJ1dGUoKSB3aGlsZSByZXRyaXZpbmcgaXRlbWlkIG9mIGEgTWljcm9kYXRh
IGl0ZW0uCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhCitTZXQgYXR0cmlidXRlOiBpdGVt
aWQsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitTZXQgYXR0cmlidXRlOiBocmVmLCB2
YWx1ZTogaHR0cDovL3d3dy53ZWJraXQub3JnLworUEFTUyBjcmVhdGVFbGVtZW50KCdhJywge2l0
ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBocmVmOiAnaHR0cDovL3d3dy53ZWJraXQu
b3JnLyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK0Ny
ZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhdWRpbworU2V0IGF0dHJpYnV0ZTogaXRlbWlkLCB2YWx1
ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVz
dC5tcDMKK1BBU1MgY3JlYXRlRWxlbWVudCgnYXVkaW8nLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1w
bGUuY29tL2ZvbycsIHNyYzogJ3Rlc3QubXAzJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUu
Y29tL2Zvbyc7IGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGJhc2UKK1NldCBh
dHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1NldCBhdHRy
aWJ1dGU6IGhyZWYsIHZhbHVlOiBodHRwOi8vd3d3LndlYmtpdC5vcmcvCitQQVNTIGNyZWF0ZUVs
ZW1lbnQoJ2Jhc2UnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIGhyZWY6ICdo
dHRwOi8vd3d3LndlYmtpdC5vcmcvJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zv
byc7IGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGJsb2NrcXVvdGUKK1NldCBh
dHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1BBU1MgY3Jl
YXRlRWxlbWVudCgnYmxvY2txdW90ZScsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9v
J30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7IGlzIHRydWUKKworQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGJvZHkKK1NldCBhdHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0
dHA6Ly9leGFtcGxlLmNvbS9mb28KK1BBU1MgY3JlYXRlRWxlbWVudCgnYm9keScsIHtpdGVtaWQ6
ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29t
L2Zvbyc7IGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGJ1dHRvbgorU2V0IGF0
dHJpYnV0ZTogaXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworU2V0IGF0dHJp
YnV0ZTogdHlwZSwgdmFsdWU6IGJ1dHRvbgorUEFTUyBjcmVhdGVFbGVtZW50KCdidXR0b24nLCB7
aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHR5cGU6ICdidXR0b24nfSkuaXRlbUlk
ID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQg
b2YgdHlwZTogZGVsCitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBs
ZS5jb20vZm9vCitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2RlbCcsIHtpdGVtaWQ6ICdodHRwOi8vZXhh
bXBsZS5jb20vZm9vJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7IGlzIHRy
dWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbWlk
LCB2YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworUEFTUyBjcmVhdGVFbGVtZW50KCdkaXYn
LCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9l
eGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBlbWJl
ZAorU2V0IGF0dHJpYnV0ZTogaXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2Zvbwor
U2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdC5zd2YKK1BBU1MgY3JlYXRlRWxlbWVudCgn
ZW1iZWQnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHNyYzogJ3Rlc3Quc3dm
J30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7IGlzIHRydWUKKworQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGZvcm0KK1NldCBhdHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0
dHA6Ly9leGFtcGxlLmNvbS9mb28KK1BBU1MgY3JlYXRlRWxlbWVudCgnZm9ybScsIHtpdGVtaWQ6
ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29t
L2Zvbyc7IGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGZyYW1lCitTZXQgYXR0
cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitTZXQgYXR0cmli
dXRlOiBzcmMsIHZhbHVlOiB0ZXN0Lmh0bWwKK1BBU1MgY3JlYXRlRWxlbWVudCgnZnJhbWUnLCB7
aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHNyYzogJ3Rlc3QuaHRtbCd9KS5pdGVt
SWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVu
dCBvZiB0eXBlOiBodG1sCitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhh
bXBsZS5jb20vZm9vCitQQVNTIGNyZWF0ZUVsZW1lbnQoJ2h0bWwnLCB7aXRlbWlkOiAnaHR0cDov
L2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBp
cyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBpZnJhbWUKK1NldCBhdHRyaWJ1dGU6
IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1NldCBhdHRyaWJ1dGU6IHNy
YywgdmFsdWU6IHRlc3QuaHRtbAorUEFTUyBjcmVhdGVFbGVtZW50KCdpZnJhbWUnLCB7aXRlbWlk
OiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHNyYzogJ3Rlc3QuaHRtbCd9KS5pdGVtSWQgPT0g
J2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0
eXBlOiBpbWcKK1NldCBhdHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNv
bS9mb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IGltYWdlLnBuZworUEFTUyBjcmVhdGVF
bGVtZW50KCdpbWcnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHNyYzogJ2lt
YWdlLnBuZyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisK
K0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBpbnB1dAorU2V0IGF0dHJpYnV0ZTogaXRlbWlkLCB2
YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworU2V0IGF0dHJpYnV0ZTogdHlwZSwgdmFsdWU6
IGJ1dHRvbgorUEFTUyBjcmVhdGVFbGVtZW50KCdpbnB1dCcsIHtpdGVtaWQ6ICdodHRwOi8vZXhh
bXBsZS5jb20vZm9vJywgdHlwZTogJ2J1dHRvbid9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxl
LmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBpbnMKK1NldCBh
dHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1BBU1MgY3Jl
YXRlRWxlbWVudCgnaW5zJywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRl
bUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitDcmVhdGVkIGVsZW1l
bnQgb2YgdHlwZTogbGluaworU2V0IGF0dHJpYnV0ZTogaXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4
YW1wbGUuY29tL2ZvbworU2V0IGF0dHJpYnV0ZTogdHlwZSwgdmFsdWU6IHRleHQvY3NzCitTZXQg
YXR0cmlidXRlOiBocmVmLCB2YWx1ZTogdGVzdC5jc3MKK1BBU1MgY3JlYXRlRWxlbWVudCgnbGlu
aycsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgdHlwZTogJ3RleHQvY3NzJywg
aHJlZjogJ3Rlc3QuY3NzJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7IGlz
IHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IG9iamVjdAorU2V0IGF0dHJpYnV0ZTog
aXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworU2V0IGF0dHJpYnV0ZTogZGF0
YSwgdmFsdWU6IHRlc3Quc3dmCitQQVNTIGNyZWF0ZUVsZW1lbnQoJ29iamVjdCcsIHtpdGVtaWQ6
ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgZGF0YTogJ3Rlc3Quc3dmJ30pLml0ZW1JZCA9PSAn
aHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7IGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5
cGU6IHBhcmFtCitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBsZS5j
b20vZm9vCitTZXQgYXR0cmlidXRlOiBuYW1lLCB2YWx1ZTogbXlfcGFyYW0KK1BBU1MgY3JlYXRl
RWxlbWVudCgncGFyYW0nLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIG5hbWU6
ICdteV9wYXJhbSd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVl
CisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBxCitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZh
bHVlOiBodHRwOi8vZXhhbXBsZS5jb20vZm9vCitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3EnLCB7aXRl
bWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxl
LmNvbS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBzb3VyY2UKK1Nl
dCBhdHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1NldCBh
dHRyaWJ1dGU6IHR5cGUsIHZhbHVlOiBhdWRpby9tcGVnCitTZXQgYXR0cmlidXRlOiBzcmMsIHZh
bHVlOiB0ZXN0Lm1wMworUEFTUyBjcmVhdGVFbGVtZW50KCdzb3VyY2UnLCB7aXRlbWlkOiAnaHR0
cDovL2V4YW1wbGUuY29tL2ZvbycsIHR5cGU6ICdhdWRpby9tcGVnJywgc3JjOiAndGVzdC5tcDMn
fSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMgdHJ1ZQorCitDcmVhdGVk
IGVsZW1lbnQgb2YgdHlwZTogdGFibGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1pZCwgdmFsdWU6IGh0
dHA6Ly9leGFtcGxlLmNvbS9mb28KK1BBU1MgY3JlYXRlRWxlbWVudCgndGFibGUnLCB7aXRlbWlk
OiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNv
bS9mb28nOyBpcyB0cnVlCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiB0ZAorU2V0IGF0dHJp
YnV0ZTogaXRlbWlkLCB2YWx1ZTogaHR0cDovL2V4YW1wbGUuY29tL2ZvbworUEFTUyBjcmVhdGVF
bGVtZW50KCd0ZCcsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJ30pLml0ZW1JZCA9
PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7IGlzIHRydWUKKworQ3JlYXRlZCBlbGVtZW50IG9m
IHR5cGU6IHRyYWNrCitTZXQgYXR0cmlidXRlOiBpdGVtaWQsIHZhbHVlOiBodHRwOi8vZXhhbXBs
ZS5jb20vZm9vCitTZXQgYXR0cmlidXRlOiB0eXBlLCB2YWx1ZTogYXVkaW8vbXBlZworU2V0IGF0
dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdC52dHQKK1BBU1MgY3JlYXRlRWxlbWVudCgndHJhY2sn
LCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHR5cGU6ICdhdWRpby9tcGVnJywg
c3JjOiAndGVzdC52dHQnfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsgaXMg
dHJ1ZQorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdmlkZW8KK1NldCBhdHRyaWJ1dGU6IGl0
ZW1pZCwgdmFsdWU6IGh0dHA6Ly9leGFtcGxlLmNvbS9mb28KK1NldCBhdHRyaWJ1dGU6IHNyYywg
dmFsdWU6IHRlc3QubXA0CitQQVNTIGNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJywge2l0ZW1pZDogJ2h0
dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBzcmM6ICd0ZXN0Lm1wNCd9KS5pdGVtSWQgPT0gJ2h0dHA6
Ly9leGFtcGxlLmNvbS9mb28nOyBpcyB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbWlkLWF0dHJpYnV0ZS10ZXN0LTAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtaWQtYXR0cmlidXRlLXRlc3QtMDAxLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbWlkLWF0
dHJpYnV0ZS10ZXN0LTAwMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWlj
cm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9y
IGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTEwLiBBc3Nl
cnRpb24gZmFpbHVyZSBpbiBFbGVtZW50OjpnZXRVUkxBdHRyaWJ1dGUoKSB3aGlsZSByZXRyaXZp
bmcgaXRlbWlkIG9mIGEgTWljcm9kYXRhIGl0ZW0uPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0Pgorc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdhJywge2l0ZW1pZDog
J2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBocmVmOiAnaHR0cDovL3d3dy53ZWJraXQub3JnLyd9
KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyIpOworZGVidWcoJycpOworc2hv
dWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdhdWRpbycsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBs
ZS5jb20vZm9vJywgc3JjOiAndGVzdC5tcDMnfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5j
b20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnYmFz
ZScsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgaHJlZjogJ2h0dHA6Ly93d3cu
d2Via2l0Lm9yZy8nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2Rl
YnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnYmxvY2txdW90ZScsIHtpdGVt
aWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUu
Y29tL2Zvbyc7Iik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2Jv
ZHknLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6
Ly9leGFtcGxlLmNvbS9mb28nOyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVF
bGVtZW50KCdidXR0b24nLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHR5cGU6
ICdidXR0b24nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2RlYnVn
KCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnZGVsJywge2l0ZW1pZDogJ2h0dHA6
Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsi
KTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1p
ZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5j
b20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnZW1i
ZWQnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHNyYzogJ3Rlc3Quc3dmJ30p
Lml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7Iik7CitkZWJ1ZygnJyk7CitzaG91
bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ2Zvcm0nLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUu
Y29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyIpOworZGVidWco
JycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdmcmFtZScsIHtpdGVtaWQ6ICdodHRw
Oi8vZXhhbXBsZS5jb20vZm9vJywgc3JjOiAndGVzdC5odG1sJ30pLml0ZW1JZCA9PSAnaHR0cDov
L2V4YW1wbGUuY29tL2Zvbyc7Iik7CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVs
ZW1lbnQoJ2h0bWwnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQg
PT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVl
KCJjcmVhdGVFbGVtZW50KCdpZnJhbWUnLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zv
bycsIHNyYzogJ3Rlc3QuaHRtbCd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28n
OyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdpbWcnLCB7aXRl
bWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZvbycsIHNyYzogJ2ltYWdlLnBuZyd9KS5pdGVtSWQg
PT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVl
KCJjcmVhdGVFbGVtZW50KCdpbnB1dCcsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9v
JywgdHlwZTogJ2J1dHRvbid9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyIp
OworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdpbnMnLCB7aXRlbWlk
OiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNv
bS9mb28nOyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdsaW5r
Jywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCB0eXBlOiAndGV4dC9jc3MnLCBo
cmVmOiAndGVzdC5jc3MnfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsK
K2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnb2JqZWN0Jywge2l0ZW1p
ZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCBkYXRhOiAndGVzdC5zd2YnfSkuaXRlbUlkID09
ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgi
Y3JlYXRlRWxlbWVudCgncGFyYW0nLCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbycs
IG5hbWU6ICdteV9wYXJhbSd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nOyIp
OworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCdxJywge2l0ZW1pZDog
J2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20v
Zm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgnc291cmNl
Jywge2l0ZW1pZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nLCB0eXBlOiAnYXVkaW8vbXBlZycs
IHNyYzogJ3Rlc3QubXAzJ30pLml0ZW1JZCA9PSAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyc7Iik7
CitkZWJ1ZygnJyk7CitzaG91bGRCZVRydWUoImNyZWF0ZUVsZW1lbnQoJ3RhYmxlJywge2l0ZW1p
ZDogJ2h0dHA6Ly9leGFtcGxlLmNvbS9mb28nfSkuaXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5j
b20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiY3JlYXRlRWxlbWVudCgndGQn
LCB7aXRlbWlkOiAnaHR0cDovL2V4YW1wbGUuY29tL2Zvbyd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9l
eGFtcGxlLmNvbS9mb28nOyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVt
ZW50KCd0cmFjaycsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgdHlwZTogJ2F1
ZGlvL21wZWcnLCBzcmM6ICd0ZXN0LnZ0dCd9KS5pdGVtSWQgPT0gJ2h0dHA6Ly9leGFtcGxlLmNv
bS9mb28nOyIpOworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJjcmVhdGVFbGVtZW50KCd2aWRl
bycsIHtpdGVtaWQ6ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJywgc3JjOiAndGVzdC5tcDQnfSku
aXRlbUlkID09ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vJzsiKTsKK2RlYnVnKCcnKTsKKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>