<?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>103752</bug_id>
          
          <creation_ts>2012-11-30 09:13:12 -0800</creation_ts>
          <short_desc>Web Inspector: [Overrides] Add ability to override the page CSS media type</short_desc>
          <delta_ts>2013-03-25 03:28:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>richardconnamacher</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>780158</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-11-30 09:13:12 -0800</bug_when>
    <thetext>It would be great to have an ability switching media type of the page to print in the DevTools to see what CSS get applied and the result html.

Upstreaming http://code.google.com/p/chromium/issues/detail?id=161496</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780170</commentid>
    <comment_count>1</comment_count>
      <attachid>176980</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-11-30 09:29:35 -0800</bug_when>
    <thetext>Created attachment 176980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780497</commentid>
    <comment_count>2</comment_count>
      <attachid>176980</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-11-30 15:52:06 -0800</bug_when>
    <thetext>Comment on attachment 176980
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:1339
&gt; +    if (InspectorInstrumentation::shouldEmulatePrintMedia(m_frame.get()))
&gt; +        overrideType = &quot;print&quot;;

Why not make it generic -- i.e. allow to override to arbitrary media type?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780580</commentid>
    <comment_count>3</comment_count>
      <attachid>176980</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-30 17:36:09 -0800</bug_when>
    <thetext>Comment on attachment 176980
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:435
&gt; +                    { &quot;name&quot;: &quot;enabled&quot;, &quot;type&quot;: &quot;boolean&quot;, &quot;description&quot;: &quot;Whether the printed media emulation should be enabled.&quot; }

Lets keep it generic in the protocol.

&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:331
&gt; +        const p = document.createElement(&quot;p&quot;);

This should be a part of the overrides

&gt;&gt; Source/WebCore/page/FrameView.cpp:1339
&gt;&gt; +        overrideType = &quot;print&quot;;
&gt; 
&gt; Why not make it generic -- i.e. allow to override to arbitrary media type?

+1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781210</commentid>
    <comment_count>4</comment_count>
      <attachid>177204</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-03 01:04:21 -0800</bug_when>
    <thetext>Created attachment 177204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781219</commentid>
    <comment_count>5</comment_count>
      <attachid>177204</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-03 01:22:38 -0800</bug_when>
    <thetext>Comment on attachment 177204
Patch

Attachment 177204 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15106388</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781236</commentid>
    <comment_count>6</comment_count>
      <attachid>177211</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-03 01:57:57 -0800</bug_when>
    <thetext>Created attachment 177211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781652</commentid>
    <comment_count>7</comment_count>
      <attachid>177211</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-12-03 10:58:02 -0800</bug_when>
    <thetext>Comment on attachment 177211
Patch

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

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:378
&gt; +

accidental change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781666</commentid>
    <comment_count>8</comment_count>
      <attachid>177211</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-12-03 11:08:14 -0800</bug_when>
    <thetext>Comment on attachment 177211
Patch

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

&gt; Source/WebCore/inspector/front-end/OverridesView.js:615
&gt; +            if (mediaType === &quot;all&quot;) {
&gt; +                // &quot;all&quot; is not a device-specific media type.
&gt; +                continue;
&gt; +            }

Just remove &quot;all&quot; from the array?

&gt; Source/WebCore/inspector/front-end/OverridesView.js:621
&gt; +            if (mediaType === &quot;print&quot;)
&gt; +                mediaSelectElement.selectedIndex = i;

this looks a bit fishy... wouldn&apos;t it be better to persist the default selection?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782386</commentid>
    <comment_count>9</comment_count>
      <attachid>177211</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-04 01:54:46 -0800</bug_when>
    <thetext>Comment on attachment 177211
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:378
&gt;&gt; +
&gt; 
&gt; accidental change?

Indeed!

&gt;&gt; Source/WebCore/inspector/front-end/OverridesView.js:615
&gt;&gt; +            }
&gt; 
&gt; Just remove &quot;all&quot; from the array?

I had thought about this at first, but having a &quot;pure-device&quot; set of media types next to the full set thereof sounds bad (in fact, we do need the latter in the CSS tokenizer, so this could be refactored barring one weird value there).

&gt;&gt; Source/WebCore/inspector/front-end/OverridesView.js:621
&gt;&gt; +                mediaSelectElement.selectedIndex = i;
&gt; 
&gt; this looks a bit fishy... wouldn&apos;t it be better to persist the default selection?

A nice idea. Implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782390</commentid>
    <comment_count>10</comment_count>
      <attachid>177450</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-04 01:59:24 -0800</bug_when>
    <thetext>Created attachment 177450
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782400</commentid>
    <comment_count>11</comment_count>
      <attachid>177450</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 02:18:22 -0800</bug_when>
    <thetext>Comment on attachment 177450
Patch for landing

Rejecting attachment 177450 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ripts/update-webkit line 152.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 2
Updating OpenSource
From http://git.chromium.org/external/Webkit
   eb9e8cc..96514be  HEAD       -&gt; origin/HEAD
error: Ref refs/remotes/origin/master is at 96514be36664e1430392d9b2fd3200c2aab861f9 but expected eb9e8ccd030f66f658b9fcdabeeb134aaaf82783
 ! eb9e8cc..96514be  master     -&gt; origin/master  (unable to update local ref)
Died at Tools/Scripts/update-webkit line 152.

Full output: http://queues.webkit.org/results/15120776</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782404</commentid>
    <comment_count>12</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-04 02:26:43 -0800</bug_when>
    <thetext>Committed r136493: &lt;http://trac.webkit.org/changeset/136493&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862616</commentid>
    <comment_count>13</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-03-25 03:28:18 -0700</bug_when>
    <thetext>*** Bug 13530 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176980</attachid>
            <date>2012-11-30 09:29:35 -0800</date>
            <delta_ts>2012-12-03 01:04:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103752-20121130212706.patch</filename>
            <type>text/plain</type>
            <size>16455</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI2OGJhMDZiN2ZkMWU0
ZDNhM2RmZmYxN2ZlNTg0NzQwN2ZkZDU5NS4uNjQzNDg3MGM5Nzk5OTUzYTJmY2YzM2Y4OTcyMDgw
NGU5Mjk2ZDRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTMwICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQWRkIGFiaWxpdHkgdG8gdmlldyBwcmludGFibGUgb3V0cHV0IGZvciB3ZWJwYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM3NTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5n
ZSBlbXVsYXRlcyB0aGUgInByaW50IiBDU1MgbWVkaWEgdGhyb3VnaCB0aGUgaW5zdHJ1bWVudGF0
aW9uIG9mIEZyYW1lVmlldzo6bWVkaWFUeXBlKCkuCisgICAgICAgIEV2ZW4gdGhvdWdoIGl0IGFs
cmVhZHkgY2hlY2tzIHRoZSBhc3NvY2lhdGVkIEZyYW1lTG9hZGVyQ2xpZW50OjpvdmVycmlkZU1l
ZGlhVHlwZSgpLCBpbnN0cnVtZW50aW5nCisgICAgICAgIGV2ZXJ5IHNpbmdsZSBwbGF0Zm9ybSBG
cmFtZUxvYWRlckNsaWVudCBpbXBsZW1lbnRhdGlvbiBvdXQgdGhlcmUgc2VlbXMgd3JvbmcuCisK
KyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3N0eWxlcy9wcmludC1lbXVsYXRpb24uaHRtbAorCisg
ICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbjogQWRkIFBhZ2Uuc2V0UHJpbnRFbXVsYXRpb25FbmFibGVk
KCkuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNob3VsZEVtdWxhdGVQ
cmludE1lZGlhSW1wbCk6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6c2hvdWxkRW11bGF0ZVByaW50TWVkaWEpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VB
Z2VudDo6SW5zcGVjdG9yUGFnZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBh
Z2VBZ2VudDo6c2V0UHJpbnRFbXVsYXRpb25FbmFibGVkKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmlzUHJpbnRNZWRpYUVtdWxhdGVkKTogUmV0dXJucyB3
aGV0aGVyIHRoZSAicHJpbnQiIENTUyBtZWRpYSBzaG91bGQgYmUgZW11bGF0ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oOiBBZGRlZCBuZXcgbWV0aG9kLgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuR2VuZXJpY1NldHRpbmdzVGFiKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5H
ZW5lcmljU2V0dGluZ3NUYWIucHJvdG90eXBlLl9jcmVhdGVQcmludEVtdWxhdGlvbkNoZWNrYm94
KTogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuR2VuZXJpY1NldHRpbmdzVGFiLnByb3Rv
dHlwZS5fZW11bGF0ZVByaW50TWVkaWFDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjptZWRpYVR5cGUpOgor
ICAgICAgICAgIFVzZXMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRFbXVsYXRlUHJp
bnRNZWRpYSgpIHRvIGNvbmRpdGlvbmFsbHkgcmV0dXJuICJwcmludCIuCisKIDIwMTItMTEtMzAg
IFNhbmtlZXJ0aCBWIFMgIDxzYW5rZWVydGgudnNAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogW1RpbWVsaW5lXSBKUyBlcnJvciB3aGVuIGNsaWNraW5nIGluIE1lbW9yeSBT
dGF0aXN0aWNzIHZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcwppbmRleCBmNzIxZjllMjNjYzY1ZjBhZGYyODIwM2NhMWQwMGY2ZTAyZTZh
MjZmLi5lOTdkNDkyNzA1MmMxNTRlZmFiOGU3N2IwZmU1NDZkYzUxMmY2YjQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0xNzMs
NiArMTczLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRWRpdCJdID0gIkVkaXQiOwogbG9jYWxpemVk
U3RyaW5nc1siRWxlbWVudCBzdGF0ZTogJXMiXSA9ICJFbGVtZW50IHN0YXRlOiAlcyI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJFbGVtZW50cyBQYW5lbCJdID0gIkVsZW1lbnRzIFBhbmVsIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkVsZW1lbnRzIl0gPSAiRWxlbWVudHMiOworbG9jYWxpemVkU3RyaW5nc1si
RW11bGF0ZSBcInByaW50XCIgQ1NTIG1lZGlhIl0gPSAiRW11bGF0ZSBcInByaW50XCIgQ1NTIG1l
ZGlhIjsKIGxvY2FsaXplZFN0cmluZ3NbIkVtdWxhdGUgdG91Y2ggZXZlbnRzIl0gPSAiRW11bGF0
ZSB0b3VjaCBldmVudHMiOwogbG9jYWxpemVkU3RyaW5nc1siRW5hYmxlIEJyZWFrcG9pbnQiXSA9
ICJFbmFibGUgQnJlYWtwb2ludCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGUgYnJlYWtwb2lu
dCJdID0gIkVuYWJsZSBicmVha3BvaW50IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgppbmRleCBhMjA5NGNiYjkwNjcwMzVhZTkzNDQyZDQxYmFmNDYyYjQ5MGE4MjNlLi5j
NzQwMjE5Y2Q5YzhmYzU0N2FmOTU5NTA5MzBiMTE1MWQ2ZDMxNjhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC00MjksNiArNDI5LDE1IEBACiAgICAgICAgICAg
ICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAic2V0UHJpbnRFbXVsYXRpb25FbmFibGVkIiwKKyAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0cyB0aGUgXCJwcmludFwiIG1lZGlhIGZvciBDU1Mg
bWVkaWEgcXVlcmllcy4iLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImVuYWJsZWQiLCAidHlwZSI6ICJib29sZWFuIiwgImRl
c2NyaXB0aW9uIjogIldoZXRoZXIgdGhlIHByaW50ZWQgbWVkaWEgZW11bGF0aW9uIHNob3VsZCBi
ZSBlbmFibGVkLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlRvZ2dsZXMgQ1NTLWJhc2VkIHByaW50ZWQgbWVkaWEgZW11bGF0aW9uLiIsCisg
ICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJs
ZSIsCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB0aGUgdmlzaWJp
bGl0eSBvZiBjb21wb3NpdGluZyBib3JkZXJzLiIsCiAgICAgICAgICAgICAgICAgInJldHVybnMi
OiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwCmluZGV4IDJhY2Q2MmI1NDQzNmZlZWY3ZDc4MjNiZTM3MTQ1MmZkMjgxODY0
MTguLjlhNmU4YTI0ZTY0NjEwZWJmNTBjYjI3NTAxM2I2OTI2NzFkMTgzZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
CkBAIC02NTcsNiArNjU3LDEzIEBAIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91
bGRBcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlSW1wbChJbnN0cnVtZW50aW5nCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCitib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkRW11bGF0
ZVByaW50TWVkaWFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMp
Cit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIHJldHVybiBwYWdlQWdlbnQt
PmlzUHJpbnRNZWRpYUVtdWxhdGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICBpZiAoSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3Rv
clRpbWVsaW5lQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA5NjM0NThkNGQ1MzU5YTJiZTU2YjcyZjBjZWU5
MDZhMjEzYjYxY2FjLi44M2E3MGZhMjUzYjJlYzA1NzE2NDE2OGE5NzEyYjVhYzgzOGQ3ZjU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCkBAIC0xNjIsNiArMTYyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5
U2NyZWVuSGVpZ2h0T3ZlcnJpZGUoRnJhbWUqLCBsb25nKik7CiAgICAgc3RhdGljIGJvb2wgc2hv
dWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKEZyYW1lKik7CiAgICAgc3RhdGljIGJvb2wgc2hv
dWxkQXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShGcmFtZSopOworICAgIHN0YXRpYyBib29sIHNo
b3VsZEVtdWxhdGVQcmludE1lZGlhKEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFNlbmRS
ZXF1ZXN0KEZyYW1lKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcios
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9u
c2UpOwogICAgIHN0YXRpYyB2b2lkIGNvbnRpbnVlQWZ0ZXJQaW5nTG9hZGVyKEZyYW1lKiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBzdGF0aWMgdm9pZCBtYXJrUmVzb3VyY2VB
c0NhY2hlZChQYWdlKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKQEAgLTM1Niw2ICszNTcs
NyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBsb25nKik7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxk
QXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAg
c3RhdGljIGJvb2wgc2hvdWxkQXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyopOworICAgIHN0YXRpYyBib29sIHNob3VsZEVtdWxhdGVQcmludE1lZGlhSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1ZXN0
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1
bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpOwogICAgIHN0YXRpYyB2b2lkIGNvbnRpbnVlQWZ0ZXJQaW5nTG9hZGVy
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1
bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
ICAgICBzdGF0aWMgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CkBAIC0xMDg3LDYgKzEwODksMTYgQEAg
aW5saW5lIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbldp
ZHRoT3ZlcnJpZGUoRnJhbWUqIGZyYW0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2lubGluZSBi
b29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkRW11bGF0ZVByaW50TWVkaWEoRnJh
bWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRkFTVF9SRVRVUk5fSUZf
Tk9fRlJPTlRFTkRTKGZhbHNlKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAg
ICAgIHJldHVybiBzaG91bGRFbXVsYXRlUHJpbnRNZWRpYUltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cyk7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGlubGluZSBib29sIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6c2hvdWxkQXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShGcmFtZSog
ZnJhbWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggMWE0NmU5YTE2Yzg1OWZiMDE2ZTM5
Y2YyMDVmZGQyMWYxYzNkZWE3NC4uZGVlNDRlNWZhYmI2M2E4YjUzMmFkOGI3ODBmZDgyZTNmNTZj
YTczNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKQEAgLTMzNCw2ICszMzQsNyBAQCBJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBh
Z2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLAogICAgICwg
bV9lbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0ZpcnN0TGF5b3V0QWZ0ZXJPbkxvYWQoZmFsc2Up
CiAgICAgLCBtX2dlb2xvY2F0aW9uT3ZlcnJpZGRlbihmYWxzZSkKKyAgICAsIG1fcHJpbnRFbXVs
YXRpb25FbmFibGVkKGZhbHNlKQogewogfQogCkBAIC0xMTQ3LDYgKzExNDgsMjMgQEAgdm9pZCBJ
bnNwZWN0b3JQYWdlQWdlbnQ6OnNldFRvdWNoRW11bGF0aW9uRW5hYmxlZChFcnJvclN0cmluZyog
ZXJyb3IsIGJvb2wgZW5hYmwKICNlbmRpZgogfQogCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
c2V0UHJpbnRFbXVsYXRpb25FbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBlbmFibGVkKQorewor
ICAgIG1fcHJpbnRFbXVsYXRpb25FbmFibGVkID0gZW5hYmxlZDsKKyAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSAwOworICAgIGlmIChtX3BhZ2UtPm1haW5GcmFtZSgpKQorICAgICAgICBkb2N1bWVu
dCA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgaWYgKGRvY3VtZW50KSB7
CisgICAgICAgIGRvY3VtZW50LT5zdHlsZVJlc29sdmVyQ2hhbmdlZChSZWNhbGNTdHlsZUltbWVk
aWF0ZWx5KTsKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dCgpOworICAgIH0KK30KKwor
Ym9vbCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmlzUHJpbnRNZWRpYUVtdWxhdGVkKCkKK3sKKyAgICBy
ZXR1cm4gbV9wcmludEVtdWxhdGlvbkVuYWJsZWQ7Cit9CisKIHZvaWQgSW5zcGVjdG9yUGFnZUFn
ZW50OjpnZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nKiBlcnJvciwgYm9v
bCogb3V0UGFyYW0pCiB7CiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9wYWdlLT5zZXR0aW5n
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmlu
ZGV4IGRhYWNlMzYzNjA0YmRmYTM0Mzk4ZmMzOGM4YzE3NDk4YTQ0NjdjZjIuLjk4NzZhMDRlZTE2
MDRhOWY4ZjE0NzBmMzQ4ZGM1MzZhNjVmN2M2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGNsZWFyRGV2aWNlT3JpZW50YXRpb25PdmVycmlkZShFcnJvclN0cmlu
ZyopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5PdmVycmlkZURldmljZU9yaWVudGF0aW9uKEVycm9y
U3RyaW5nKiwgYm9vbCopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb3VjaEVtdWxhdGlvbkVuYWJs
ZWQoRXJyb3JTdHJpbmcqLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJpbnRFbXVsYXRp
b25FbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIGdldENvbXBv
c2l0aW5nQm9yZGVyc1Zpc2libGUoRXJyb3JTdHJpbmcqLCBib29sKiBvdXRfcGFyYW0pOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nKiwg
Ym9vbCk7CiAKQEAgLTEzOCw2ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkZXJEZXRh
Y2hlZEZyb21GcmFtZShEb2N1bWVudExvYWRlciopOwogICAgIHZvaWQgYXBwbHlTY3JlZW5XaWR0
aE92ZXJyaWRlKGxvbmcqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobG9u
ZyopOworICAgIGJvb2wgaXNQcmludE1lZGlhRW11bGF0ZWQoKTsKICAgICB2b2lkIGRpZFBhaW50
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmKTsKICAgICB2b2lkIGRpZExheW91
dCgpOwogICAgIHZvaWQgZGlkU2Nyb2xsKCk7CkBAIC0xODYsNiArMTg4LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fZW5hYmxlZDsKICAgICBib29sIG1faXNGaXJzdExheW91dEFmdGVyT25Mb2Fk
OwogICAgIGJvb2wgbV9nZW9sb2NhdGlvbk92ZXJyaWRkZW47CisgICAgYm9vbCBtX3ByaW50RW11
bGF0aW9uRW5hYmxlZDsKICAgICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9nZW9sb2Nh
dGlvblBvc2l0aW9uOwogICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBtX3BsYXRmb3Jt
R2VvbG9jYXRpb25Qb3NpdGlvbjsKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25EYXRhPiBt
X2RldmljZU9yaWVudGF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKaW5kZXggMDJhZTIyMDY1MWI1Y2IwNmVmZWU1MGVm
MzMyNTQyMTVmMzBkNDJkYS4uNjA1MGY1NzdiZDE1NGEzNzE5NjQ4YjE2N2E3OTY3ZWUwYWE5ZGQ5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
c1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRp
bmdzU2NyZWVuLmpzCkBAIC0yNzgsNiArMjc4LDcgQEAgV2ViSW5zcGVjdG9yLkdlbmVyaWNTZXR0
aW5nc1RhYiA9IGZ1bmN0aW9uKCkKICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNoZWNr
Ym94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldvcmQgd3JhcCIpLCBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MuZG9tV29yZFdyYXApKTsKICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0
ZUNoZWNrYm94U2V0dGluZyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgU2hhZG93IERPTSIp
LCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd1NoYWRvd0RPTSkpOwogICAgIHAuYXBwZW5kQ2hp
bGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hv
dyBydWxlcnMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dNZXRyaWNzUnVsZXJzKSk7Cisg
ICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVQcmludEVtdWxhdGlvbkNoZWNrYm94KCkpOwog
CiAgICAgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZW5k
ZXJpbmciKSk7CiAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmco
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IHBhaW50IHJlY3RhbmdsZXMiKSwgV2ViSW5zcGVj
dG9yLnNldHRpbmdzLnNob3dQYWludFJlY3RzKSk7CkBAIC0zMjUsNiArMzI2LDI1IEBAIFdlYklu
c3BlY3Rvci5HZW5lcmljU2V0dGluZ3NUYWIgPSBmdW5jdGlvbigpCiB9CiAKIFdlYkluc3BlY3Rv
ci5HZW5lcmljU2V0dGluZ3NUYWIucHJvdG90eXBlID0geworICAgIF9jcmVhdGVQcmludEVtdWxh
dGlvbkNoZWNrYm94OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBjb25zdCBwID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgICAgICBjb25zdCBsYWJlbEVsZW1lbnQgPSBwLmNy
ZWF0ZUNoaWxkKCJsYWJlbCIpOworICAgICAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBsYWJl
bEVsZW1lbnQuY3JlYXRlQ2hpbGQoImlucHV0Iik7CisgICAgICAgIGNoZWNrYm94RWxlbWVudC50
eXBlID0gImNoZWNrYm94IjsKKyAgICAgICAgY2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSBmYWxz
ZTsKKyAgICAgICAgY2hlY2tib3hFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhp
cy5fZW11bGF0ZVByaW50TWVkaWFDaGFuZ2VkLmJpbmQodGhpcywgY2hlY2tib3hFbGVtZW50KSwg
ZmFsc2UpOworICAgICAgICB0aGlzLl9tZXRyaWNzQ2hlY2tib3hFbGVtZW50ID0gY2hlY2tib3hF
bGVtZW50OworICAgICAgICBsYWJlbEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbXVsYXRlIFwicHJpbnRcIiBDU1MgbWVk
aWEiKSkpOworICAgICAgICByZXR1cm4gcDsKKyAgICB9LAorCisgICAgX2VtdWxhdGVQcmludE1l
ZGlhQ2hhbmdlZDogZnVuY3Rpb24oY2hlY2tib3gpCisgICAgeworICAgICAgICBQYWdlQWdlbnQu
c2V0UHJpbnRFbXVsYXRpb25FbmFibGVkKGNoZWNrYm94LmNoZWNrZWQpOworICAgICAgICBXZWJJ
bnNwZWN0b3IuY3NzTW9kZWwubWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoKTsKKyAgICB9LAorCiAg
ICAgX3Nob3dQYWludFJlY3RzQ2hhbmdlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgUGFn
ZUFnZW50LnNldFNob3dQYWludFJlY3RzKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93UGFpbnRS
ZWN0cy5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZGNkYWUyMTNlMTg4
ODlkZjc4Y2JiM2JiNDQyZWY3N2IxNWJjNTFiYy4uZjI0MDM4MzExNWFiMDk3OWFlZGY2ODc3NzU3
YzE3YTk4MWM1MDMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTMzNSw2ICsx
MzM1LDggQEAgU3RyaW5nIEZyYW1lVmlldzo6bWVkaWFUeXBlKCkgY29uc3QKIHsKICAgICAvLyBT
ZWUgaWYgd2UgaGF2ZSBhbiBvdmVycmlkZSB0eXBlLgogICAgIFN0cmluZyBvdmVycmlkZVR5cGUg
PSBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPm92ZXJyaWRlTWVkaWFUeXBlKCk7CisgICAg
aWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkRW11bGF0ZVByaW50TWVkaWEobV9m
cmFtZS5nZXQoKSkpCisgICAgICAgIG92ZXJyaWRlVHlwZSA9ICJwcmludCI7CiAgICAgaWYgKCFv
dmVycmlkZVR5cGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBvdmVycmlkZVR5cGU7CiAgICAg
cmV0dXJuIG1fbWVkaWFUeXBlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRmMTFjMzJkNTAzMDVjMTc4MDdlNDVhYzk3MWEx
NjVkMjUxNWViZDguLjg2ZmZkNjc0N2UxOGI3NTFmODA5Mzc2YjI5NmQyNWZjYTRmYTRiNjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0zMCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZs
b3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBhYmlsaXR5IHRv
IHZpZXcgcHJpbnRhYmxlIG91dHB1dCBmb3Igd2VicGFnZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRlc3QgaW52b2tlcyBQYWdlQWdlbnQuc2V0
UHJpbnRFbXVsYXRpb25FbmFibGVkKCkgYW5kIGVtaXRzIHRoZSBXZWJJbnNwZWN0b3IuY3NzTW9k
ZWwubWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoKSBzaWduYWwuCisKKyAgICAgICAgKiBpbnNwZWN0
b3Ivc3R5bGVzL3ByaW50LWVtdWxhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9zdHlsZXMvcHJpbnQtZW11bGF0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEx
LTMwICBOYW5kb3IgSHVzemthICA8aG5hbmRvckBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAg
W1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvcHJpbnQtZW11bGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvcHJpbnQtZW11bGF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ZTk4ZWZjNjM5NWU1MGFiOWE5YjlhMzk4OGYzZmI1NGMzMDc1MjMyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcmludC1lbXVsYXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNTYgQEAKK1Rlc3RzIHRoYXQgQ1NTICJwcmludCIgbWVkaWEgZW11bGF0
aW9uIGlzIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVzIHBhbmUuCisKK09yaWdpbmFsIHN0eWxlOgor
W2V4cGFuZGVkXSAKKworW2V4cGFuZGVkXSAKK2VsZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09
PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBhbmRlZF0gCisjbWFpbiAgeyAocHJp
bnQtZW11bGF0aW9uLmh0bWw6NSkKK2NvbG9yOiByZWQ7CisKK1tleHBhbmRlZF0gCitkaXYgIHsg
KHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rpc3BsYXk6IGJsb2NrOworCisKK1ByaW50IGVtdWxh
dGlvbi1lbmFibGVkIHN0eWxlOgorW2V4cGFuZGVkXSAKKworW2V4cGFuZGVkXSAKK2VsZW1lbnQu
c3R5bGUgIHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBh
bmRlZF0gCitAbWVkaWEgcHJpbnQgKHByaW50LWVtdWxhdGlvbi5odG1sOjcpCisjbWFpbiAgeyAo
cHJpbnQtZW11bGF0aW9uLmh0bWw6OCkKK2NvbG9yOiBibGFjazsKKworW2V4cGFuZGVkXSAKKyNt
YWluICB7IChwcmludC1lbXVsYXRpb24uaHRtbDo1KQorLy0tIG92ZXJsb2FkZWQgLS0vIGNvbG9y
OiByZWQ7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rp
c3BsYXk6IGJsb2NrOworCisKK1ByaW50IGVtdWxhdGlvbi1kaXNhYmxlZCBzdHlsZToKK1tleHBh
bmRlZF0gCisKK1tleHBhbmRlZF0gCitlbGVtZW50LnN0eWxlICB7ICgpCisKKz09PT09PT09IE1h
dGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5kZWRdIAorI21haW4gIHsgKHByaW50LWVt
dWxhdGlvbi5odG1sOjUpCitjb2xvcjogcmVkOworCitbZXhwYW5kZWRdIAorZGl2ICB7ICh1c2Vy
IGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9jazsKKworCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJpbnQtZW11bGF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3ByaW50LWVtdWxhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFk
NDZlY2E0YWE2MzhkYWM5YWVlYTdiY2FiOTY3ODUwZTBkMjhjYjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3ByaW50LWVtdWxhdGlvbi5odG1sCkBAIC0w
LDAgKzEsNTggQEAKKzxodG1sPgorPGhlYWQ+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cisj
bWFpbiB7IGNvbG9yOiByZWQ7IH0KKworQG1lZGlhIHByaW50IHsKKyNtYWluIHsgY29sb3I6IGJs
YWNrOyB9Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlQW5kV2Fp
dEZvclN0eWxlcygibWFpbiIsIHN0ZXAwKTsKKworICAgIGZ1bmN0aW9uIHN0ZXAwKCkKKyAgICB7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJPcmlnaW5hbCBzdHlsZToiKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKCk7CisgICAgICAg
IHNldFByaW50RW11bGF0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC53
YWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDEpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAx
KCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUHJpbnQgZW11bGF0aW9uLWVu
YWJsZWQgc3R5bGU6Iik7CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVu
dFN0eWxlcygpOworICAgICAgICBzZXRQcmludEVtdWxhdGlvbkVuYWJsZWQoZmFsc2UpOworICAg
ICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoIm1haW4iLCBzdGVwMik7CisgICAgfQor
CisgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlByaW50IGVtdWxhdGlvbi1kaXNhYmxlZCBzdHlsZToiKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKCk7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2V0UHJpbnRFbXVsYXRp
b25FbmFibGVkKGVuYWJsZWQpCisgICAgeworICAgICAgICBQYWdlQWdlbnQuc2V0UHJpbnRFbXVs
YXRpb25FbmFibGVkKGVuYWJsZWQpOworICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwubWVk
aWFRdWVyeVJlc3VsdENoYW5nZWQoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKwor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyB0aGF0IENTUyAicHJpbnQiIG1l
ZGlhIGVtdWxhdGlvbiBpcyByZWZsZWN0ZWQgaW4gdGhlIFN0eWxlcyBwYW5lLgorPC9wPgorCis8
ZGl2IGlkPSJtYWluIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177204</attachid>
            <date>2012-12-03 01:04:21 -0800</date>
            <delta_ts>2012-12-03 01:57:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103752-20121203130147.patch</filename>
            <type>text/plain</type>
            <size>19489</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNlNzJmNGIzNzYwYTlj
MGZkNjUwZGQxNWI0Yjc2M2ViYTkwYjk2MC4uODc3ZTRlZjc2MjRjNzAyZjIxNjM1ZDg2ZmQwNzk2
YmFiZjUyZjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTEyLTAzICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW092ZXJyaWRlc10gQWRkIGFiaWxpdHkgdG8gb3ZlcnJpZGUgdGhlIHBhZ2UgQ1NTIG1l
ZGlhIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMzc1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgY2hhbmdlIGVtdWxhdGVzIHRoZSBDU1MgbWVkaWEgdHlwZXMgdGhyb3VnaCB0aGUgaW5z
dHJ1bWVudGF0aW9uIG9mIEZyYW1lVmlldzo6bWVkaWFUeXBlKCkuCisgICAgICAgIEV2ZW4gdGhv
dWdoIGl0IGFscmVhZHkgY2hlY2tzIHRoZSBhc3NvY2lhdGVkIEZyYW1lTG9hZGVyQ2xpZW50Ojpv
dmVycmlkZU1lZGlhVHlwZSgpLCBpbnN0cnVtZW50aW5nCisgICAgICAgIGV2ZXJ5IHNpbmdsZSBw
bGF0Zm9ybSBGcmFtZUxvYWRlckNsaWVudCBpbXBsZW1lbnRhdGlvbiBvdXQgdGhlcmUgc2VlbXMg
d3JvbmcuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1lbXVsYXRpb24u
aHRtbAorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjogQWRkIFBhZ2Uuc2V0RW11bGF0ZWRNZWRp
YSgpLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVtdWxhdGVk
TWVkaWFJbXBsKTogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjph
cHBseUVtdWxhdGVkTWVkaWEpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVz
dG9yZSk6IFJlc3RvcmVzIHRoZSBtZWRpYSBlbXVsYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUpOiBSZXNldHMgdGhlIG1lZGlhIGVtdWxh
dGlvbiBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0RW11
bGF0ZWRNZWRpYSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50
OjphcHBseUVtdWxhdGVkTWVkaWEpOiBBcHBsaWVzIHRoZSBlbXVsYXRlZCBDU1MgbWVkaWEgaWYg
bmVlZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6IEFkZCB0aGUgbGlzdCBv
ZiBtZWRpYSB0eXBlcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL092ZXJyaWRlc1Zp
ZXcuanM6IEFkZCB0aGUgQ1NTIG1lZGlhIHR5cGUgb3ZlcnJpZGUgVUkuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuT3ZlcnJpZGVzVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT3ZlcnJpZGVz
Vmlldy5wcm90b3R5cGUuX2NyZWF0ZU1lZGlhRW11bGF0aW9uRWxlbWVudCk6IEJ1aWxkcyB0aGUg
VUkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuT3ZlcnJpZGVzVmlldy5wcm90b3R5cGUuX2VtdWxh
dGVNZWRpYUNoYW5nZWQpOiBIYW5kbGVzIHRoZSBjb250cm9sIHZhbHVlIGNoYW5nZXMuCisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpt
ZWRpYVR5cGUpOiAKKyAgICAgICAgICBVc2VzIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBw
bHlFbXVsYXRlZE1lZGlhKCkgdG8gcHJvdmlkZSB0aGUgZW11bGF0ZWQgdmFsdWUuCisKIDIwMTIt
MTItMDIgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgogCiAgICAgICAgIElt
YWdlT3JpZW50YXRpb246OnRyYW5zZm9ybUZyb21EZWZhdWx0KCkgY2FzZSBsYWJlbHMgc2hvdWxk
IGJlIGluIG51bWVyaWNhbCBvcmRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlz
aC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDVhM2E5OTZiZjFkYjUzYTFhMjEyOGM4ZTNkMDEz
ZTExZWE3NDQxNjEuLmVmZmZhMWNkNjRiZGZmYzQ1YjJmOTg5MWQwZjk4Y2E4MTY0NmY0MWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
QEAgLTE3Myw2ICsxNzMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0Il0gPSAiRWRpdCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJFbGVtZW50IHN0YXRlOiAlcyJdID0gIkVsZW1lbnQgc3RhdGU6ICVz
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnRzIFBhbmVsIl0gPSAiRWxlbWVudHMgUGFuZWwi
OwogbG9jYWxpemVkU3RyaW5nc1siRWxlbWVudHMiXSA9ICJFbGVtZW50cyI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJFbXVsYXRlIENTUyBtZWRpYSJdID0gIkVtdWxhdGUgQ1NTIG1lZGlhIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkVtdWxhdGUgdG91Y2ggZXZlbnRzIl0gPSAiRW11bGF0ZSB0b3VjaCBldmVu
dHMiOwogbG9jYWxpemVkU3RyaW5nc1siRW5hYmxlIEJyZWFrcG9pbnQiXSA9ICJFbmFibGUgQnJl
YWtwb2ludCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbmFibGUgYnJlYWtwb2ludCJdID0gIkVuYWJs
ZSBicmVha3BvaW50IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRl
eCBhMjA5NGNiYjkwNjcwMzVhZTkzNDQyZDQxYmFmNDYyYjQ5MGE4MjNlLi43NzFiM2YwMWNiODg0
NWE0ZDliNDJmMzEyNTIzYjhjZGRmMmU5NGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uCkBAIC00MjksNiArNDI5LDE0IEBACiAgICAgICAgICAgICAgICAgImhpZGRl
biI6IHRydWUKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAic2V0RW11bGF0ZWRNZWRpYSIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWVkaWEiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiTWVkaWEgdHlwZSB0byBlbXVsYXRlLiBFbXB0eSBzdHJpbmcg
ZGlzYWJsZXMgdGhlIG92ZXJyaWRlLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkVtdWxhdGVzIHRoZSBnaXZlbiBtZWRpYSBmb3IgQ1NTIG1l
ZGlhIHF1ZXJpZXMuIiwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRDb21wb3Np
dGluZ0JvcmRlcnNWaXNpYmxlIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSW5k
aWNhdGVzIHRoZSB2aXNpYmlsaXR5IG9mIGNvbXBvc2l0aW5nIGJvcmRlcnMuIiwKICAgICAgICAg
ICAgICAgICAicmV0dXJucyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMmFjZDYyYjU0NDM2ZmVlZjdkNzgy
M2JlMzcxNDUyZmQyODE4NjQxOC4uMTdjYzU0ODFiYjcyNWI4ODkxYWIxZWEyNDlmMDk5MjUxMWQw
ZTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTY1Nyw2ICs2NTcsMTIgQEAgYm9vbCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnNob3VsZEFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGVJbXBsKEluc3RydW1l
bnRpbmcKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjphcHBseUVtdWxhdGVkTWVkaWFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIFN0cmluZyogbWVkaWEpCit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2Vu
dCogcGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkp
CisgICAgICAgIHBhZ2VBZ2VudC0+YXBwbHlFbXVsYXRlZE1lZGlhKG1lZGlhKTsKK30KKwogdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgaWYgKEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNw
ZWN0b3JUaW1lbGluZUFnZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggOTYzNDU4ZDRkNTM1OWEyYmU1NmI3MmYw
Y2VlOTA2YTIxM2I2MWNhYy4uYmMxMjM2MTkxZjgxODlkMGZlODc4MTFhM2IxYzcwY2E1ZWZkZjVj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaApAQCAtMTYwLDYgKzE2MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBh
cHBseVVzZXJBZ2VudE92ZXJyaWRlKEZyYW1lKiwgU3RyaW5nKik7CiAgICAgc3RhdGljIHZvaWQg
YXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKEZyYW1lKiwgbG9uZyopOwogICAgIHN0YXRpYyB2b2lk
IGFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUoRnJhbWUqLCBsb25nKik7CisgICAgc3RhdGljIHZv
aWQgYXBwbHlFbXVsYXRlZE1lZGlhKEZyYW1lKiwgU3RyaW5nKik7CiAgICAgc3RhdGljIGJvb2wg
c2hvdWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKEZyYW1lKik7CiAgICAgc3RhdGljIGJvb2wg
c2hvdWxkQXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShGcmFtZSopOwogICAgIHN0YXRpYyB2b2lk
IHdpbGxTZW5kUmVxdWVzdChGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1l
bnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRp
cmVjdFJlc3BvbnNlKTsKQEAgLTM1NCw2ICszNTUsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2
b2lkIGFwcGx5VXNlckFnZW50T3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBTdHJp
bmcqKTsKICAgICBzdGF0aWMgdm9pZCBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGVJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBsb25nKik7CiAgICAgc3RhdGljIHZvaWQgYXBwbHlTY3JlZW5IZWln
aHRPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGxvbmcqKTsKKyAgICBzdGF0aWMg
dm9pZCBhcHBseUVtdWxhdGVkTWVkaWFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBTdHJpbmcq
KTsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGVJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRBcHBseVNjcmVlbkhl
aWdodE92ZXJyaWRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQg
d2lsbFNlbmRSZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtMTA4Nyw2ICsxMDg5LDE1IEBAIGlu
bGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkQXBwbHlTY3JlZW5XaWR0
aE92ZXJyaWRlKEZyYW1lKiBmcmFtCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5RW11bGF0ZWRNZWRpYShGcmFtZSogZnJh
bWUsIFN0cmluZyogbWVkaWEpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBGQVNUX1JF
VFVSTl9JRl9OT19GUk9OVEVORFMoKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisg
ICAgICAgIGFwcGx5RW11bGF0ZWRNZWRpYUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgbWVkaWEp
OworI2VuZGlmCit9CisKIGlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hv
dWxkQXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShGcmFtZSogZnJhbWUpCiB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5jcHAKaW5kZXggMWE0NmU5YTE2Yzg1OWZiMDE2ZTM5Y2YyMDVmZGQyMWYxYzNkZWE3NC4u
MGQ1NjE3MzUwZGU2Y2I2NTY3NGQwYWRiY2UxZGJlNTcwZDYzZWJlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTk3LDYgKzk3LDcg
QEAgc3RhdGljIGNvbnN0IGNoYXIgcGFnZUFnZW50U2hvd1BhaW50UmVjdHNbXSA9ICJwYWdlQWdl
bnRTaG93UGFpbnRSZWN0cyI7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHN0YXRpYyBjb25z
dCBjaGFyIHRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkW10gPSAidG91Y2hFdmVudEVtdWxhdGlv
bkVuYWJsZWQiOwogI2VuZGlmCitzdGF0aWMgY29uc3QgY2hhciBwYWdlQWdlbnRFbXVsYXRlZE1l
ZGlhW10gPSAicGFnZUFnZW50RW11bGF0ZWRNZWRpYSI7CiB9CiAKIHN0YXRpYyBib29sIGRlY29k
ZUJ1ZmZlcihjb25zdCBjaGFyKiBidWZmZXIsIHVuc2lnbmVkIHNpemUsIGNvbnN0IFN0cmluZyYg
dGV4dEVuY29kaW5nTmFtZSwgU3RyaW5nKiByZXN1bHQpCkBAIC0zNjMsNiArMzY0LDggQEAgdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc3RvcmUoKQogICAgICAgICBzZXRTaG93UGFpbnRSZWN0
cygwLCBzaG93UGFpbnRSZWN0cyk7CiAgICAgICAgIGJvb2wgc2hvd0ZQU0NvdW50ZXIgPSBtX3N0
YXRlLT5nZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTaG93RlBTQ291bnRlcik7
CiAgICAgICAgIHNldFNob3dGUFNDb3VudGVyKDAsIHNob3dGUFNDb3VudGVyKTsKKyAgICAgICAg
U3RyaW5nIGVtdWxhdGVkTWVkaWEgPSBtX3N0YXRlLT5nZXRTdHJpbmcoUGFnZUFnZW50U3RhdGU6
OnBhZ2VBZ2VudEVtdWxhdGVkTWVkaWEpOworICAgICAgICBzZXRFbXVsYXRlZE1lZGlhKDAsIGVt
dWxhdGVkTWVkaWEpOwogCiAgICAgICAgIGludCBjdXJyZW50V2lkdGggPSBzdGF0aWNfY2FzdDxp
bnQ+KG1fc3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbldpZHRo
T3ZlcnJpZGUpKTsKICAgICAgICAgaW50IGN1cnJlbnRIZWlnaHQgPSBzdGF0aWNfY2FzdDxpbnQ+
KG1fc3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbkhlaWdodE92
ZXJyaWRlKSk7CkBAIC0zNzIsNiArMzc1LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJl
c3RvcmUoKQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAgIHVwZGF0ZVRvdWNoRXZl
bnRFbXVsYXRpb25JblBhZ2UobV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6dG91
Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQpKTsKICNlbmRpZgorCiAgICAgfQogfQogCkBAIC0zOTcs
NiArNDAxLDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcq
KQogICAgIHNldFNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkKDAsIGZhbHNlKTsKICAgICBzZXRTaG93
UGFpbnRSZWN0cygwLCBmYWxzZSk7CiAgICAgc2V0U2hvd0ZQU0NvdW50ZXIoMCwgZmFsc2UpOwor
ICAgIHNldEVtdWxhdGVkTWVkaWEoMCwgIiIpOwogCiAgICAgLy8gV2hlbiBkaXNhYmxpbmcgdGhl
IGFnZW50LCByZXNldCB0aGUgb3ZlcnJpZGUgdmFsdWVzLgogICAgIG1fc3RhdGUtPnNldExvbmco
UGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbldpZHRoT3ZlcnJpZGUsIDApOwpAQCAtMTE0
Nyw2ICsxMTUyLDI5IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXRUb3VjaEVtdWxhdGlv
bkVuYWJsZWQoRXJyb3JTdHJpbmcqIGVycm9yLCBib29sIGVuYWJsCiAjZW5kaWYKIH0KIAordm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldEVtdWxhdGVkTWVkaWEoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIG1lZGlhKQoreworICAgIFN0cmluZyBjdXJyZW50TWVkaWEgPSBtX3N0YXRlLT5n
ZXRTdHJpbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEVtdWxhdGVkTWVkaWEpOworICAgIGlm
IChtZWRpYSA9PSBjdXJyZW50TWVkaWEpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc3RhdGUt
PnNldFN0cmluZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50RW11bGF0ZWRNZWRpYSwgbWVkaWEp
OworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IDA7CisgICAgaWYgKG1fcGFnZS0+bWFpbkZyYW1l
KCkpCisgICAgICAgIGRvY3VtZW50ID0gbV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsK
KyAgICBpZiAoZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQtPnN0eWxlUmVzb2x2ZXJDaGFu
Z2VkKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOworICAgICAgICBkb2N1bWVudC0+dXBkYXRlTGF5
b3V0KCk7CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6YXBwbHlFbXVsYXRl
ZE1lZGlhKFN0cmluZyogbWVkaWEpCit7CisgICAgU3RyaW5nIGVtdWxhdGVkTWVkaWEgPSBtX3N0
YXRlLT5nZXRTdHJpbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEVtdWxhdGVkTWVkaWEpOwor
ICAgIGlmICghZW11bGF0ZWRNZWRpYS5pc0VtcHR5KCkpCisgICAgICAgICptZWRpYSA9IGVtdWxh
dGVkTWVkaWE7Cit9CisKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRDb21wb3NpdGluZ0Jv
cmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nKiBlcnJvciwgYm9vbCogb3V0UGFyYW0pCiB7CiAgICAg
U2V0dGluZ3MqIHNldHRpbmdzID0gbV9wYWdlLT5zZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGRhYWNlMzYzNjA0YmRmYTM0
Mzk4ZmMzOGM4YzE3NDk4YTQ0NjdjZjIuLjVkNDY4YTE1YmMzNzA0ZDBjNjZkMDkyYjNkMjEzODBm
MDYwYTU0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFy
RGV2aWNlT3JpZW50YXRpb25PdmVycmlkZShFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9p
ZCBjYW5PdmVycmlkZURldmljZU9yaWVudGF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCopOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRUb3VjaEVtdWxhdGlvbkVuYWJsZWQoRXJyb3JTdHJpbmcqLCBib29s
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW11bGF0ZWRNZWRpYShFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxl
KEVycm9yU3RyaW5nKiwgYm9vbCogb3V0X3BhcmFtKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29t
cG9zaXRpbmdCb3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyosIGJvb2wpOwogCkBAIC0xMzgsNiAr
MTM5LDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUoRG9jdW1l
bnRMb2FkZXIqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKik7CiAg
ICAgdm9pZCBhcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKGxvbmcqKTsKKyAgICB2b2lkIGFwcGx5
RW11bGF0ZWRNZWRpYShTdHJpbmcqKTsKICAgICB2b2lkIGRpZFBhaW50KEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IExheW91dFJlY3QmKTsKICAgICB2b2lkIGRpZExheW91dCgpOwogICAgIHZvaWQg
ZGlkU2Nyb2xsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NTU1N0eWxlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NTU1N0eWxlTW9kZWwuanMKaW5kZXggNmE2ZjFjNTU1NjBkZGU2OTU5Y2U2M2Y3ZDBiMWFiZDZi
MDVkOTYwNy4uM2VlOGEzN2YzZGU0OTMxNmU3NzQ5ODMzODEzY2E1ODY2YjNmN2JmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5q
cwpAQCAtNzcsNiArNzcsOCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMgPSB7
CiAgICAgUmVnaW9uTGF5b3V0VXBkYXRlZDogIlJlZ2lvbkxheW91dFVwZGF0ZWQiCiB9CiAKK1dl
Ykluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLk1lZGlhVHlwZXMgPSBbImFsbCIsICJicmFpbGxlIiwg
ImVtYm9zc2VkIiwgImhhbmRoZWxkIiwgInByaW50IiwgInByb2plY3Rpb24iLCAic2NyZWVuIiwg
InNwZWVjaCIsICJ0dHkiLCAidHYiXTsKKwogV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJv
dG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2Rl
SWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT3ZlcnJp
ZGVzVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT3ZlcnJpZGVz
Vmlldy5qcwppbmRleCA1Mzk0MzdhOGY3ZWMyMzFjYmNhNmU5NDEwMGFkYWU5NzFlY2Y4Y2ZlLi45
Zjg3N2JjOTQ3YzUxMjFiYzg5MjhiMzdlOGI2M2VmNzcyZmI5ZTUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL092ZXJyaWRlc1ZpZXcuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PdmVycmlkZXNWaWV3LmpzCkBAIC02MCw2
ICs2MCw3IEBAIFdlYkluc3BlY3Rvci5PdmVycmlkZXNWaWV3ID0gZnVuY3Rpb24oKQogICAgIGlm
IChDYXBhYmlsaXRpZXMuY2FuT3ZlcnJpZGVEZXZpY2VPcmllbnRhdGlvbikKICAgICAgICAgYXBw
ZW5kQmxvY2tUbyhjb250YWluZXIsIHRoaXMuX2NyZWF0ZURldmljZU9yaWVudGF0aW9uT3ZlcnJp
ZGVDb250cm9sKCkpOwogICAgIGFwcGVuZEJsb2NrVG8oY29udGFpbmVyLCB0aGlzLl9jcmVhdGVD
aGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbXVsYXRlIHRvdWNoIGV2ZW50
cyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZW11bGF0ZVRvdWNoRXZlbnRzKSk7CisgICAgYXBw
ZW5kQmxvY2tUbyhjb250YWluZXIsIHRoaXMuX2NyZWF0ZU1lZGlhRW11bGF0aW9uRWxlbWVudCgp
KTsKIAogICAgIHRoaXMuX3N0YXR1c0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CiAgICAgdGhpcy5fc3RhdHVzRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiT3ZlcnJpZGVzIik7CkBAIC01OTQsNSArNTk1LDQ0IEBAIFdlYkluc3BlY3Rv
ci5PdmVycmlkZXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIGZpZWxkc2V0RWxl
bWVudDsKICAgICB9LAogCisgICAgX2NyZWF0ZU1lZGlhRW11bGF0aW9uRWxlbWVudDogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgY29uc3QgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAi
KTsKKyAgICAgICAgY29uc3QgbGFiZWxFbGVtZW50ID0gcC5jcmVhdGVDaGlsZCgibGFiZWwiKTsK
KyAgICAgICAgY29uc3QgY2hlY2tib3hFbGVtZW50ID0gbGFiZWxFbGVtZW50LmNyZWF0ZUNoaWxk
KCJpbnB1dCIpOworICAgICAgICBjaGVja2JveEVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7Cisg
ICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX21l
dHJpY3NDaGVja2JveEVsZW1lbnQgPSBjaGVja2JveEVsZW1lbnQ7CisgICAgICAgIGxhYmVsRWxl
bWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkVtdWxhdGUgQ1NTIG1lZGlhIikpKTsKKworICAgICAgICB2YXIgbWVkaWFTZWxlY3RF
bGVtZW50ID0gcC5jcmVhdGVDaGlsZCgic2VsZWN0Iik7CisgICAgICAgIHZhciBtZWRpYVR5cGVz
ID0gV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuTWVkaWFUeXBlczsKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBtZWRpYVR5cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIg
bWVkaWFUeXBlID0gbWVkaWFUeXBlc1tpXTsKKyAgICAgICAgICAgIGlmIChtZWRpYVR5cGUgPT09
ICJhbGwiKSB7CisgICAgICAgICAgICAgICAgLy8gImFsbCIgaXMgbm90IGEgZGV2aWNlLXNwZWNp
ZmljIG1lZGlhIHR5cGUuCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9u
Iik7CisgICAgICAgICAgICBvcHRpb24udGV4dCA9IG1lZGlhVHlwZTsKKyAgICAgICAgICAgIG9w
dGlvbi52YWx1ZSA9IG1lZGlhVHlwZTsKKyAgICAgICAgICAgIG1lZGlhU2VsZWN0RWxlbWVudC5h
ZGQob3B0aW9uKTsKKyAgICAgICAgICAgIGlmIChtZWRpYVR5cGUgPT09ICJwcmludCIpCisgICAg
ICAgICAgICAgICAgbWVkaWFTZWxlY3RFbGVtZW50LnNlbGVjdGVkSW5kZXggPSBpOworICAgICAg
ICB9CisgICAgICAgIG1lZGlhU2VsZWN0RWxlbWVudC5kaXNhYmxlZCA9IHRydWU7CisgICAgICAg
IHZhciBib3VuZExpc3RlbmVyID0gdGhpcy5fZW11bGF0ZU1lZGlhQ2hhbmdlZC5iaW5kKHRoaXMs
IGNoZWNrYm94RWxlbWVudCwgbWVkaWFTZWxlY3RFbGVtZW50KTsKKyAgICAgICAgY2hlY2tib3hF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYm91bmRMaXN0ZW5lciwgZmFsc2UpOwor
ICAgICAgICBtZWRpYVNlbGVjdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgYm91
bmRMaXN0ZW5lciwgZmFsc2UpOworICAgICAgICByZXR1cm4gcDsKKyAgICB9LAorCisgICAgX2Vt
dWxhdGVNZWRpYUNoYW5nZWQ6IGZ1bmN0aW9uKGNoZWNrYm94LCBzZWxlY3QpCisgICAgeworICAg
ICAgICBzZWxlY3QuZGlzYWJsZWQgPSAhY2hlY2tib3guY2hlY2tlZDsKKyAgICAgICAgUGFnZUFn
ZW50LnNldEVtdWxhdGVkTWVkaWEoY2hlY2tib3guY2hlY2tlZCA/IHNlbGVjdC5vcHRpb25zW3Nl
bGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZSA6ICIiKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNz
c01vZGVsLm1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKCk7CisgICAgfSwKKwogICAgIF9fcHJvdG9f
XzogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKaW5kZXggZGNkYWUyMTNlMTg4ODlkZjc4Y2JiM2JiNDQyZWY3N2IxNWJjNTFiYy4uMjlkOTJj
OTZkNzRhM2Q2Y2NmNTY1YWFlNjk0YWM3ZmE3YTUyYWZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcApAQCAtMTMzNSw2ICsxMzM1LDcgQEAgU3RyaW5nIEZyYW1lVmlldzo6bWVkaWFUeXBl
KCkgY29uc3QKIHsKICAgICAvLyBTZWUgaWYgd2UgaGF2ZSBhbiBvdmVycmlkZSB0eXBlLgogICAg
IFN0cmluZyBvdmVycmlkZVR5cGUgPSBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPm92ZXJy
aWRlTWVkaWFUeXBlKCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVtdWxh
dGVkTWVkaWEobV9mcmFtZS5nZXQoKSwgJm92ZXJyaWRlVHlwZSk7CiAgICAgaWYgKCFvdmVycmlk
ZVR5cGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBvdmVycmlkZVR5cGU7CiAgICAgcmV0dXJu
IG1fbWVkaWFUeXBlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNmNzFlZDg5ZTZhYjJjNjJlNWZhMDg1MTY0MWYyNzRmNWQ2
OTg4NmYuLjExMTkwMGViMDk4YjUwMGIyMzdmYTViMjEyMDg0N2JlOTA1NzM1ZjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMi0xMi0wMyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtPdmVycmlkZXNdIEFkZCBhYmls
aXR5IHRvIG92ZXJyaWRlIHRoZSBwYWdlIENTUyBtZWRpYSB0eXBlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM3NTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdCBpbnZva2VzIFBhZ2VBZ2Vu
dC5zZXRFbXVsYXRlZE1lZGlhKCkgYW5kIGVtaXRzIHRoZSBXZWJJbnNwZWN0b3IuY3NzTW9kZWwu
bWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoKSBzaWduYWwuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c3R5bGVzL21lZGlhLWVtdWxhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9zdHlsZXMvbWVkaWEtZW11bGF0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTAy
ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCB3ZWJraXQgZ2FyZGVuaW5nLiBSZWJhc2VsaW5lIG9mIGZhc3QvY3NzL2ZvbnQtd2VpZ2h0
LTEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLWVtdWxh
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLWVt
dWxhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkzYjU4OGNiNzgyNzNhMGU4ZjRiNzA4
YThiZGM2OWE0NjMzZTlkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvbWVkaWEtZW11bGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc3IEBACitU
ZXN0cyB0aGF0IGVtdWxhdGVkIENTUyBtZWRpYSBpcyByZWZsZWN0ZWQgaW4gdGhlIFN0eWxlcyBw
YW5lLgorCitPcmlnaW5hbCBzdHlsZToKK1tleHBhbmRlZF0gCisKK1tleHBhbmRlZF0gCitlbGVt
ZW50LnN0eWxlICB7ICgpCisKKz09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09Citb
ZXhwYW5kZWRdIAorI21haW4gIHsgKG1lZGlhLWVtdWxhdGlvbi5odG1sOjUpCitjb2xvcjogcmVk
OworCitbZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5
OiBibG9jazsKKworCitwcmludCBtZWRpYSBlbXVsYXRlZDoKK1tleHBhbmRlZF0gCisKK1tleHBh
bmRlZF0gCitlbGVtZW50LnN0eWxlICB7ICgpCisKKz09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVz
ID09PT09PT09CitbZXhwYW5kZWRdIAorQG1lZGlhIHByaW50IChtZWRpYS1lbXVsYXRpb24uaHRt
bDo3KQorI21haW4gIHsgKG1lZGlhLWVtdWxhdGlvbi5odG1sOjgpCitjb2xvcjogYmxhY2s7CisK
K1tleHBhbmRlZF0gCisjbWFpbiAgeyAobWVkaWEtZW11bGF0aW9uLmh0bWw6NSkKKy8tLSBvdmVy
bG9hZGVkIC0tLyBjb2xvcjogcmVkOworCitbZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50
IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9jazsKKworCit0dHkgbWVkaWEgZW11bGF0ZWQ6Citb
ZXhwYW5kZWRdIAorCitbZXhwYW5kZWRdIAorZWxlbWVudC5zdHlsZSAgeyAoKQorCis9PT09PT09
PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQorW2V4cGFuZGVkXSAKK0BtZWRpYSB0dHkgKG1l
ZGlhLWVtdWxhdGlvbi5odG1sOjExKQorI21haW4gIHsgKG1lZGlhLWVtdWxhdGlvbi5odG1sOjEy
KQorY29sb3I6IGdyZWVuOworCitbZXhwYW5kZWRdIAorI21haW4gIHsgKG1lZGlhLWVtdWxhdGlv
bi5odG1sOjUpCisvLS0gb3ZlcmxvYWRlZCAtLS8gY29sb3I6IHJlZDsKKworW2V4cGFuZGVkXSAK
K2RpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQorZGlzcGxheTogYmxvY2s7CisKKworTm8g
bWVkaWEgZW11bGF0ZWQ6CitbZXhwYW5kZWRdIAorCitbZXhwYW5kZWRdIAorZWxlbWVudC5zdHls
ZSAgeyAoKQorCis9PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQorW2V4cGFuZGVk
XSAKKyNtYWluICB7IChtZWRpYS1lbXVsYXRpb24uaHRtbDo1KQorY29sb3I6IHJlZDsKKworW2V4
cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQorZGlzcGxheTogYmxvY2s7
CisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLWVt
dWxhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1lbXVsYXRp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40OTY2ZmY5OGUzY2IwN2UwNDcyZDhkMGUzMGM0Yjc5NzZhM2Nh
MWJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9tZWRp
YS1lbXVsYXRpb24uaHRtbApAQCAtMCwwICsxLDcwIEBACis8aHRtbD4KKzxoZWFkPgorCis8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgorI21haW4geyBjb2xvcjogcmVkOyB9CisKK0BtZWRpYSBwcmlu
dCB7CisjbWFpbiB7IGNvbG9yOiBibGFjazsgfQorfQorCitAbWVkaWEgdHR5IHsKKyNtYWluIHsg
Y29sb3I6IGdyZWVuOyB9Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3RO
b2RlQW5kV2FpdEZvclN0eWxlcygibWFpbiIsIHN0ZXAwKTsKKworICAgIGZ1bmN0aW9uIHN0ZXAw
KCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJPcmlnaW5hbCBzdHls
ZToiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKCk7
CisgICAgICAgIGFwcGx5RW11bGF0ZWRNZWRpYSgicHJpbnQiKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC53YWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDEpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHN0ZXAxKCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicHJpbnQgbWVkaWEg
ZW11bGF0ZWQ6Iik7CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0
eWxlcygpOworICAgICAgICBhcHBseUVtdWxhdGVkTWVkaWEoInR0eSIpOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoIm1haW4iLCBzdGVwMik7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3RlcDIoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInR0
eSBtZWRpYSBlbXVsYXRlZDoiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRF
bGVtZW50U3R5bGVzKCk7CisgICAgICAgIGFwcGx5RW11bGF0ZWRNZWRpYSgiIik7CisgICAgICAg
IEluc3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygibWFpbiIsIHN0ZXAzKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzdGVwMygpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiTm8gbWVkaWEgZW11bGF0ZWQ6Iik7CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVj
dGVkRWxlbWVudFN0eWxlcygpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGFwcGx5RW11bGF0ZWRNZWRpYShtZWRpYSkKKyAgICB7
CisgICAgICAgIFBhZ2VBZ2VudC5zZXRFbXVsYXRlZE1lZGlhKG1lZGlhKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLmNzc01vZGVsLm1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKCk7CisgICAgfQorfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVz
dHMgdGhhdCBlbXVsYXRlZCBDU1MgbWVkaWEgaXMgcmVmbGVjdGVkIGluIHRoZSBTdHlsZXMgcGFu
ZS4KKzwvcD4KKworPGRpdiBpZD0ibWFpbiI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177211</attachid>
            <date>2012-12-03 01:57:57 -0800</date>
            <delta_ts>2012-12-04 01:59:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103752-20121203135523.patch</filename>
            <type>text/plain</type>
            <size>19619</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE5OWY0NWMwOWEwMDk1
NjkzZDEzYmQyNDFhMGU0MzhmNjlhNGZhNS4uMjRmYjFhNjBjMDcyYjQyNTgyYWNkZjE4ZmZhOTMz
Yjg1Nzc5ZjJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEyLTEyLTAzICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW092ZXJyaWRlc10gQWRkIGFiaWxpdHkgdG8gb3ZlcnJpZGUgdGhlIHBhZ2UgQ1NTIG1l
ZGlhIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMzc1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgY2hhbmdlIGVtdWxhdGVzIHRoZSBDU1MgbWVkaWEgdHlwZXMgdGhyb3VnaCB0aGUgaW5z
dHJ1bWVudGF0aW9uIG9mIEZyYW1lVmlldzo6bWVkaWFUeXBlKCkuCisgICAgICAgIEV2ZW4gdGhv
dWdoIGl0IGFscmVhZHkgY2hlY2tzIHRoZSBhc3NvY2lhdGVkIEZyYW1lTG9hZGVyQ2xpZW50Ojpv
dmVycmlkZU1lZGlhVHlwZSgpLCBpbnN0cnVtZW50aW5nCisgICAgICAgIGV2ZXJ5IHNpbmdsZSBw
bGF0Zm9ybSBGcmFtZUxvYWRlckNsaWVudCBpbXBsZW1lbnRhdGlvbiBvdXQgdGhlcmUgc2VlbXMg
d3JvbmcuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1lbXVsYXRpb24u
aHRtbAorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjogQWRkIFBhZ2Uuc2V0RW11bGF0ZWRNZWRp
YSgpLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVtdWxhdGVk
TWVkaWFJbXBsKTogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjph
cHBseUVtdWxhdGVkTWVkaWEpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVz
dG9yZSk6IFJlc3RvcmVzIHRoZSBtZWRpYSBlbXVsYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUpOiBSZXNldHMgdGhlIG1lZGlhIGVtdWxh
dGlvbiBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0RW11
bGF0ZWRNZWRpYSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50
OjphcHBseUVtdWxhdGVkTWVkaWEpOiBBcHBsaWVzIHRoZSBlbXVsYXRlZCBDU1MgbWVkaWEgaWYg
bmVlZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6IEFkZCB0aGUgbGlzdCBv
ZiBtZWRpYSB0eXBlcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL092ZXJyaWRlc1Zp
ZXcuanM6IEFkZCB0aGUgQ1NTIG1lZGlhIHR5cGUgb3ZlcnJpZGUgVUkuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuT3ZlcnJpZGVzVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuT3ZlcnJpZGVz
Vmlldy5wcm90b3R5cGUuX2NyZWF0ZU1lZGlhRW11bGF0aW9uRWxlbWVudCk6IEJ1aWxkcyB0aGUg
VUkuCisgICAgICAgIChXZWJJbnNwZWN0b3IuT3ZlcnJpZGVzVmlldy5wcm90b3R5cGUuX2VtdWxh
dGVNZWRpYUNoYW5nZWQpOiBIYW5kbGVzIHRoZSBjb250cm9sIHZhbHVlIGNoYW5nZXMuCisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpt
ZWRpYVR5cGUpOiAKKyAgICAgICAgICBVc2VzIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBw
bHlFbXVsYXRlZE1lZGlhKCkgdG8gcHJvdmlkZSB0aGUgZW11bGF0ZWQgdmFsdWUuCisKKzIwMTIt
MTItMDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKwogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBbU3R5bGVzXSBSZXRhaW4gc2VsZWN0b3IgY2FzZSBhcyB3cml0dGVu
IGluIHRoZSBzb3VyY2UgY29kZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAzMTE4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gu
bHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA1YTNhOTk2YmYxZGI1M2ExYTIxMjhjOGUzZDAxM2Ux
MWVhNzQ0MTYxLi5lZmZmYTFjZDY0YmRmZmM0NWIyZjk4OTFkMGY5OGNhODE2NDZmNDFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBA
IC0xNzMsNiArMTczLDcgQEAgbG9jYWxpemVkU3RyaW5nc1siRWRpdCJdID0gIkVkaXQiOwogbG9j
YWxpemVkU3RyaW5nc1siRWxlbWVudCBzdGF0ZTogJXMiXSA9ICJFbGVtZW50IHN0YXRlOiAlcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJFbGVtZW50cyBQYW5lbCJdID0gIkVsZW1lbnRzIFBhbmVsIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkVsZW1lbnRzIl0gPSAiRWxlbWVudHMiOworbG9jYWxpemVkU3Ry
aW5nc1siRW11bGF0ZSBDU1MgbWVkaWEiXSA9ICJFbXVsYXRlIENTUyBtZWRpYSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJFbXVsYXRlIHRvdWNoIGV2ZW50cyJdID0gIkVtdWxhdGUgdG91Y2ggZXZlbnRz
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkVuYWJsZSBCcmVha3BvaW50Il0gPSAiRW5hYmxlIEJyZWFr
cG9pbnQiOwogbG9jYWxpemVkU3RyaW5nc1siRW5hYmxlIGJyZWFrcG9pbnQiXSA9ICJFbmFibGUg
YnJlYWtwb2ludCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXgg
YTIwOTRjYmI5MDY3MDM1YWU5MzQ0MmQ0MWJhZjQ2MmI0OTBhODIzZS4uNzcxYjNmMDFjYjg4NDVh
NGQ5YjQyZjMxMjUyM2I4Y2RkZjJlOTRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgpAQCAtNDI5LDYgKzQyOSwxNCBAQAogICAgICAgICAgICAgICAgICJoaWRkZW4i
OiB0cnVlCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJu
YW1lIjogInNldEVtdWxhdGVkTWVkaWEiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1lZGlhIiwgInR5cGUiOiAic3RyaW5n
IiwgImRlc2NyaXB0aW9uIjogIk1lZGlhIHR5cGUgdG8gZW11bGF0ZS4gRW1wdHkgc3RyaW5nIGRp
c2FibGVzIHRoZSBvdmVycmlkZS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJFbXVsYXRlcyB0aGUgZ2l2ZW4gbWVkaWEgZm9yIENTUyBtZWRp
YSBxdWVyaWVzLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0Q29tcG9zaXRp
bmdCb3JkZXJzVmlzaWJsZSIsCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkluZGlj
YXRlcyB0aGUgdmlzaWJpbGl0eSBvZiBjb21wb3NpdGluZyBib3JkZXJzLiIsCiAgICAgICAgICAg
ICAgICAgInJldHVybnMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDJhY2Q2MmI1NDQzNmZlZWY3ZDc4MjNi
ZTM3MTQ1MmZkMjgxODY0MTguLjE3Y2M1NDgxYmI3MjViODg5MWFiMWVhMjQ5ZjA5OTI1MTFkMGUw
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCkBAIC02NTcsNiArNjU3LDEyIEBAIGJvb2wgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpzaG91bGRBcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlSW1wbChJbnN0cnVtZW50
aW5nCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6YXBwbHlFbXVsYXRlZE1lZGlhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBTdHJpbmcqIG1lZGlhKQoreworICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQq
IHBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQor
ICAgICAgICBwYWdlQWdlbnQtPmFwcGx5RW11bGF0ZWRNZWRpYShtZWRpYSk7Cit9CisKIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3RJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQogewogICAgIGlmIChJbnNwZWN0b3JU
aW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yVGltZWxpbmVBZ2VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDk2MzQ1OGQ0ZDUzNTlhMmJlNTZiNzJmMGNl
ZTkwNmEyMTNiNjFjYWMuLmI5MmRjYjI0ZmI1YTBkNGQxNzgyM2EzZjczMmU0MWM3ZTRjNzhmNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgKQEAgLTE2MCw2ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYXBw
bHlVc2VyQWdlbnRPdmVycmlkZShGcmFtZSosIFN0cmluZyopOwogICAgIHN0YXRpYyB2b2lkIGFw
cGx5U2NyZWVuV2lkdGhPdmVycmlkZShGcmFtZSosIGxvbmcqKTsKICAgICBzdGF0aWMgdm9pZCBh
cHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKEZyYW1lKiwgbG9uZyopOworICAgIHN0YXRpYyB2b2lk
IGFwcGx5RW11bGF0ZWRNZWRpYShGcmFtZSosIFN0cmluZyopOwogICAgIHN0YXRpYyBib29sIHNo
b3VsZEFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShGcmFtZSopOwogICAgIHN0YXRpYyBib29sIHNo
b3VsZEFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUoRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCB3
aWxsU2VuZFJlcXVlc3QoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50
TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJl
Y3RSZXNwb25zZSk7CkBAIC0zNTQsNiArMzU1LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9p
ZCBhcHBseVVzZXJBZ2VudE92ZXJyaWRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgU3RyaW5n
Kik7CiAgICAgc3RhdGljIHZvaWQgYXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgbG9uZyopOwogICAgIHN0YXRpYyB2b2lkIGFwcGx5U2NyZWVuSGVpZ2h0
T3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBsb25nKik7CisgICAgc3RhdGljIHZv
aWQgYXBwbHlFbXVsYXRlZE1lZGlhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgU3RyaW5nKik7
CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlTY3JlZW5IZWln
aHRPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyB2b2lkIHdp
bGxTZW5kUmVxdWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKQEAgLTEwODcsNiArMTA4OSwxNSBAQCBpbmxp
bmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNob3VsZEFwcGx5U2NyZWVuV2lkdGhP
dmVycmlkZShGcmFtZSogZnJhbQogICAgIHJldHVybiBmYWxzZTsKIH0KIAoraW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVtdWxhdGVkTWVkaWEoRnJhbWUqIGZyYW1l
LCBTdHJpbmcqIG1lZGlhKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRkFTVF9SRVRV
Uk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUp
KQorICAgICAgICBhcHBseUVtdWxhdGVkTWVkaWFJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIG1l
ZGlhKTsKKyNlbmRpZgorfQorCiBpbmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnNob3VsZEFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUoRnJhbWUqIGZyYW1lKQogewogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuY3BwCmluZGV4IDFhNDZlOWExNmM4NTlmYjAxNmUzOWNmMjA1ZmRkMjFmMWMzZGVh
NzQuLjBkNTYxNzM1MGRlNmNiNjU2NzRkMGFkYmNlMWRiZTU3MGQ2M2ViZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC05Nyw2ICs5
Nyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIHBhZ2VBZ2VudFNob3dQYWludFJlY3RzW10gPSAicGFn
ZUFnZW50U2hvd1BhaW50UmVjdHMiOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiBzdGF0aWMg
Y29uc3QgY2hhciB0b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZFtdID0gInRvdWNoRXZlbnRFbXVs
YXRpb25FbmFibGVkIjsKICNlbmRpZgorc3RhdGljIGNvbnN0IGNoYXIgcGFnZUFnZW50RW11bGF0
ZWRNZWRpYVtdID0gInBhZ2VBZ2VudEVtdWxhdGVkTWVkaWEiOwogfQogCiBzdGF0aWMgYm9vbCBk
ZWNvZGVCdWZmZXIoY29uc3QgY2hhciogYnVmZmVyLCB1bnNpZ25lZCBzaXplLCBjb25zdCBTdHJp
bmcmIHRleHRFbmNvZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQpAQCAtMzYzLDYgKzM2NCw4IEBA
IHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXN0b3JlKCkKICAgICAgICAgc2V0U2hvd1BhaW50
UmVjdHMoMCwgc2hvd1BhaW50UmVjdHMpOwogICAgICAgICBib29sIHNob3dGUFNDb3VudGVyID0g
bV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2hvd0ZQU0NvdW50
ZXIpOwogICAgICAgICBzZXRTaG93RlBTQ291bnRlcigwLCBzaG93RlBTQ291bnRlcik7CisgICAg
ICAgIFN0cmluZyBlbXVsYXRlZE1lZGlhID0gbV9zdGF0ZS0+Z2V0U3RyaW5nKFBhZ2VBZ2VudFN0
YXRlOjpwYWdlQWdlbnRFbXVsYXRlZE1lZGlhKTsKKyAgICAgICAgc2V0RW11bGF0ZWRNZWRpYSgw
LCBlbXVsYXRlZE1lZGlhKTsKIAogICAgICAgICBpbnQgY3VycmVudFdpZHRoID0gc3RhdGljX2Nh
c3Q8aW50PihtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JlZW5X
aWR0aE92ZXJyaWRlKSk7CiAgICAgICAgIGludCBjdXJyZW50SGVpZ2h0ID0gc3RhdGljX2Nhc3Q8
aW50PihtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JlZW5IZWln
aHRPdmVycmlkZSkpOwpAQCAtMzcyLDYgKzM3NSw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjpyZXN0b3JlKCkKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAgICB1cGRhdGVUb3Vj
aEV2ZW50RW11bGF0aW9uSW5QYWdlKG1fc3RhdGUtPmdldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6
OnRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkKSk7CiAjZW5kaWYKKwogICAgIH0KIH0KIApAQCAt
Mzk3LDYgKzQwMSw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3Ry
aW5nKikKICAgICBzZXRTY3JpcHRFeGVjdXRpb25EaXNhYmxlZCgwLCBmYWxzZSk7CiAgICAgc2V0
U2hvd1BhaW50UmVjdHMoMCwgZmFsc2UpOwogICAgIHNldFNob3dGUFNDb3VudGVyKDAsIGZhbHNl
KTsKKyAgICBzZXRFbXVsYXRlZE1lZGlhKDAsICIiKTsKIAogICAgIC8vIFdoZW4gZGlzYWJsaW5n
IHRoZSBhZ2VudCwgcmVzZXQgdGhlIG92ZXJyaWRlIHZhbHVlcy4KICAgICBtX3N0YXRlLT5zZXRM
b25nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JlZW5XaWR0aE92ZXJyaWRlLCAwKTsKQEAg
LTExNDcsNiArMTE1MiwyOSBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2V0VG91Y2hFbXVs
YXRpb25FbmFibGVkKEVycm9yU3RyaW5nKiBlcnJvciwgYm9vbCBlbmFibAogI2VuZGlmCiB9CiAK
K3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXRFbXVsYXRlZE1lZGlhKEVycm9yU3RyaW5nKiwg
Y29uc3QgU3RyaW5nJiBtZWRpYSkKK3sKKyAgICBTdHJpbmcgY3VycmVudE1lZGlhID0gbV9zdGF0
ZS0+Z2V0U3RyaW5nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRFbXVsYXRlZE1lZGlhKTsKKyAg
ICBpZiAobWVkaWEgPT0gY3VycmVudE1lZGlhKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N0
YXRlLT5zZXRTdHJpbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEVtdWxhdGVkTWVkaWEsIG1l
ZGlhKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSAwOworICAgIGlmIChtX3BhZ2UtPm1haW5G
cmFtZSgpKQorICAgICAgICBkb2N1bWVudCA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50
KCk7CisgICAgaWYgKGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LT5zdHlsZVJlc29sdmVy
Q2hhbmdlZChSZWNhbGNTdHlsZUltbWVkaWF0ZWx5KTsKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0
ZUxheW91dCgpOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmFwcGx5RW11
bGF0ZWRNZWRpYShTdHJpbmcqIG1lZGlhKQoreworICAgIFN0cmluZyBlbXVsYXRlZE1lZGlhID0g
bV9zdGF0ZS0+Z2V0U3RyaW5nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRFbXVsYXRlZE1lZGlh
KTsKKyAgICBpZiAoIWVtdWxhdGVkTWVkaWEuaXNFbXB0eSgpKQorICAgICAgICAqbWVkaWEgPSBl
bXVsYXRlZE1lZGlhOworfQorCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0Q29tcG9zaXRp
bmdCb3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyogZXJyb3IsIGJvb2wqIG91dFBhcmFtKQogewog
ICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fcGFnZS0+c2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCBkYWFjZTM2MzYwNGJk
ZmEzNDM5OGZjMzhjOGMxNzQ5OGE0NDY3Y2YyLi41ZDQ2OGExNWJjMzcwNGQwYzY2ZDA5MmIzZDIx
MzgwZjA2MGE1NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5oCkBAIC0xMjAsNiArMTIwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBj
bGVhckRldmljZU9yaWVudGF0aW9uT3ZlcnJpZGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFs
IHZvaWQgY2FuT3ZlcnJpZGVEZXZpY2VPcmllbnRhdGlvbihFcnJvclN0cmluZyosIGJvb2wqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VG91Y2hFbXVsYXRpb25FbmFibGVkKEVycm9yU3RyaW5nKiwg
Ym9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldEVtdWxhdGVkTWVkaWEoRXJyb3JTdHJpbmcqLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlz
aWJsZShFcnJvclN0cmluZyosIGJvb2wqIG91dF9wYXJhbSk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoRXJyb3JTdHJpbmcqLCBib29sKTsKIApAQCAtMTM4
LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRlckRldGFjaGVkRnJvbUZyYW1lKERv
Y3VtZW50TG9hZGVyKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9uZyop
OwogICAgIHZvaWQgYXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShsb25nKik7CisgICAgdm9pZCBh
cHBseUVtdWxhdGVkTWVkaWEoU3RyaW5nKik7CiAgICAgdm9pZCBkaWRQYWludChHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgdm9pZCBkaWRMYXlvdXQoKTsKICAgICB2
b2lkIGRpZFNjcm9sbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IDZhNmYxYzU1NTYwZGRlNjk1OWNlNjNmN2QwYjFh
YmQ2YjA1ZDk2MDcuLjNlZThhMzdmM2RlNDkzMTZlNzc0OTgzMzgxM2NhNTg2NmIzZjdiZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2Rl
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9k
ZWwuanMKQEAgLTc3LDYgKzc3LDggQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRz
ID0gewogICAgIFJlZ2lvbkxheW91dFVwZGF0ZWQ6ICJSZWdpb25MYXlvdXRVcGRhdGVkIgogfQog
CitXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5NZWRpYVR5cGVzID0gWyJhbGwiLCAiYnJhaWxs
ZSIsICJlbWJvc3NlZCIsICJoYW5kaGVsZCIsICJwcmludCIsICJwcm9qZWN0aW9uIiwgInNjcmVl
biIsICJzcGVlY2giLCAidHR5IiwgInR2Il07CisKIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0ge0RPTUFnZW50Lk5vZGVJZH0g
bm9kZUlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL092
ZXJyaWRlc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL092ZXJy
aWRlc1ZpZXcuanMKaW5kZXggNTM5NDM3YThmN2VjMjMxY2JjYTZlOTQxMDBhZGFlOTcxZWNmOGNm
ZS4uOWY4NzdiYzk0N2M1MTIxYmM4OTI4YjM3ZThiNjNlZjc3MmZiOWU1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PdmVycmlkZXNWaWV3LmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT3ZlcnJpZGVzVmlldy5qcwpAQCAt
NjAsNiArNjAsNyBAQCBXZWJJbnNwZWN0b3IuT3ZlcnJpZGVzVmlldyA9IGZ1bmN0aW9uKCkKICAg
ICBpZiAoQ2FwYWJpbGl0aWVzLmNhbk92ZXJyaWRlRGV2aWNlT3JpZW50YXRpb24pCiAgICAgICAg
IGFwcGVuZEJsb2NrVG8oY29udGFpbmVyLCB0aGlzLl9jcmVhdGVEZXZpY2VPcmllbnRhdGlvbk92
ZXJyaWRlQ29udHJvbCgpKTsKICAgICBhcHBlbmRCbG9ja1RvKGNvbnRhaW5lciwgdGhpcy5fY3Jl
YXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW11bGF0ZSB0b3VjaCBl
dmVudHMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmVtdWxhdGVUb3VjaEV2ZW50cykpOworICAg
IGFwcGVuZEJsb2NrVG8oY29udGFpbmVyLCB0aGlzLl9jcmVhdGVNZWRpYUVtdWxhdGlvbkVsZW1l
bnQoKSk7CiAKICAgICB0aGlzLl9zdGF0dXNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOwogICAgIHRoaXMuX3N0YXR1c0VsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIk92ZXJyaWRlcyIpOwpAQCAtNTk0LDUgKzU5NSw0NCBAQCBXZWJJbnNw
ZWN0b3IuT3ZlcnJpZGVzVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBmaWVsZHNl
dEVsZW1lbnQ7CiAgICAgfSwKIAorICAgIF9jcmVhdGVNZWRpYUVtdWxhdGlvbkVsZW1lbnQ6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGNvbnN0IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJwIik7CisgICAgICAgIGNvbnN0IGxhYmVsRWxlbWVudCA9IHAuY3JlYXRlQ2hpbGQoImxhYmVs
Iik7CisgICAgICAgIGNvbnN0IGNoZWNrYm94RWxlbWVudCA9IGxhYmVsRWxlbWVudC5jcmVhdGVD
aGlsZCgiaW5wdXQiKTsKKyAgICAgICAgY2hlY2tib3hFbGVtZW50LnR5cGUgPSAiY2hlY2tib3gi
OworICAgICAgICBjaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlOworICAgICAgICB0aGlz
Ll9tZXRyaWNzQ2hlY2tib3hFbGVtZW50ID0gY2hlY2tib3hFbGVtZW50OworICAgICAgICBsYWJl
bEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJFbXVsYXRlIENTUyBtZWRpYSIpKSk7CisKKyAgICAgICAgdmFyIG1lZGlhU2Vs
ZWN0RWxlbWVudCA9IHAuY3JlYXRlQ2hpbGQoInNlbGVjdCIpOworICAgICAgICB2YXIgbWVkaWFU
eXBlcyA9IFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLk1lZGlhVHlwZXM7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbWVkaWFUeXBlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
dmFyIG1lZGlhVHlwZSA9IG1lZGlhVHlwZXNbaV07CisgICAgICAgICAgICBpZiAobWVkaWFUeXBl
ID09PSAiYWxsIikgeworICAgICAgICAgICAgICAgIC8vICJhbGwiIGlzIG5vdCBhIGRldmljZS1z
cGVjaWZpYyBtZWRpYSB0eXBlLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9w
dGlvbiIpOworICAgICAgICAgICAgb3B0aW9uLnRleHQgPSBtZWRpYVR5cGU7CisgICAgICAgICAg
ICBvcHRpb24udmFsdWUgPSBtZWRpYVR5cGU7CisgICAgICAgICAgICBtZWRpYVNlbGVjdEVsZW1l
bnQuYWRkKG9wdGlvbik7CisgICAgICAgICAgICBpZiAobWVkaWFUeXBlID09PSAicHJpbnQiKQor
ICAgICAgICAgICAgICAgIG1lZGlhU2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4ID0gaTsKKyAg
ICAgICAgfQorICAgICAgICBtZWRpYVNlbGVjdEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOworICAg
ICAgICB2YXIgYm91bmRMaXN0ZW5lciA9IHRoaXMuX2VtdWxhdGVNZWRpYUNoYW5nZWQuYmluZCh0
aGlzLCBjaGVja2JveEVsZW1lbnQsIG1lZGlhU2VsZWN0RWxlbWVudCk7CisgICAgICAgIGNoZWNr
Ym94RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGJvdW5kTGlzdGVuZXIsIGZhbHNl
KTsKKyAgICAgICAgbWVkaWFTZWxlY3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIs
IGJvdW5kTGlzdGVuZXIsIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSwKKworICAg
IF9lbXVsYXRlTWVkaWFDaGFuZ2VkOiBmdW5jdGlvbihjaGVja2JveCwgc2VsZWN0KQorICAgIHsK
KyAgICAgICAgc2VsZWN0LmRpc2FibGVkID0gIWNoZWNrYm94LmNoZWNrZWQ7CisgICAgICAgIFBh
Z2VBZ2VudC5zZXRFbXVsYXRlZE1lZGlhKGNoZWNrYm94LmNoZWNrZWQgPyBzZWxlY3Qub3B0aW9u
c1tzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWUgOiAiIik7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5jc3NNb2RlbC5tZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZCgpOworICAgIH0sCisKICAgICBfX3By
b3RvX186IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCmluZGV4IGRjZGFlMjEzZTE4ODg5ZGY3OGNiYjNiYjQ0MmVmNzdiMTViYzUxYmMuLjI5
ZDkyYzk2ZDc0YTNkNmNjZjU2NWFhZTY5NGFjN2ZhN2E1MmFmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKQEAgLTEzMzUsNiArMTMzNSw3IEBAIFN0cmluZyBGcmFtZVZpZXc6Om1lZGlh
VHlwZSgpIGNvbnN0CiB7CiAgICAgLy8gU2VlIGlmIHdlIGhhdmUgYW4gb3ZlcnJpZGUgdHlwZS4K
ICAgICBTdHJpbmcgb3ZlcnJpZGVUeXBlID0gbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5v
dmVycmlkZU1lZGlhVHlwZSgpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlF
bXVsYXRlZE1lZGlhKG1fZnJhbWUuZ2V0KCksICZvdmVycmlkZVR5cGUpOwogICAgIGlmICghb3Zl
cnJpZGVUeXBlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gb3ZlcnJpZGVUeXBlOwogICAgIHJl
dHVybiBtX21lZGlhVHlwZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZjFkNmM3Njg5YjU3NzA0MjIxNDk3OTUzMjBjMTQz
NzQyZTgyOWMxLi4yYWFjY2ZhNmZkMzMxOThlZTM4ZDJmN2JhM2ZhMWYzMzk1MzFiMzQ0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMTcgQEAKIDIwMTItMTItMDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92
QGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBbT3ZlcnJpZGVzXSBBZGQg
YWJpbGl0eSB0byBvdmVycmlkZSB0aGUgcGFnZSBDU1MgbWVkaWEgdHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNzUyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHRlc3QgaW52b2tlcyBQYWdl
QWdlbnQuc2V0RW11bGF0ZWRNZWRpYSgpIGFuZCBlbWl0cyB0aGUgV2ViSW5zcGVjdG9yLmNzc01v
ZGVsLm1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKCkgc2lnbmFsLgorCisgICAgICAgICogaW5zcGVj
dG9yL3N0eWxlcy9tZWRpYS1lbXVsYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3Ivc3R5bGVzL21lZGlhLWVtdWxhdGlvbi5odG1sOiBBZGRlZC4KKworMjAxMi0x
Mi0wMyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFtTdHlsZXNdIFJldGFpbiBzZWxlY3RvciBjYXNlIGFzIHdyaXR0ZW4g
aW4gdGhlIHNvdXJjZSBjb2RlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDMxMTgKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9tZWRpYS1lbXVsYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9tZWRpYS1lbXVsYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5M2I1ODhj
Yjc4MjczYTBlOGY0YjcwOGE4YmRjNjlhNDYzM2U5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLWVtdWxhdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3NyBAQAorVGVzdHMgdGhhdCBlbXVsYXRlZCBDU1MgbWVkaWEgaXMgcmVmbGVjdGVk
IGluIHRoZSBTdHlsZXMgcGFuZS4KKworT3JpZ2luYWwgc3R5bGU6CitbZXhwYW5kZWRdIAorCitb
ZXhwYW5kZWRdIAorZWxlbWVudC5zdHlsZSAgeyAoKQorCis9PT09PT09PSBNYXRjaGVkIENTUyBS
dWxlcyA9PT09PT09PQorW2V4cGFuZGVkXSAKKyNtYWluICB7IChtZWRpYS1lbXVsYXRpb24uaHRt
bDo1KQorY29sb3I6IHJlZDsKKworW2V4cGFuZGVkXSAKK2RpdiAgeyAodXNlciBhZ2VudCBzdHls
ZXNoZWV0KQorZGlzcGxheTogYmxvY2s7CisKKworcHJpbnQgbWVkaWEgZW11bGF0ZWQ6CitbZXhw
YW5kZWRdIAorCitbZXhwYW5kZWRdIAorZWxlbWVudC5zdHlsZSAgeyAoKQorCis9PT09PT09PSBN
YXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQorW2V4cGFuZGVkXSAKK0BtZWRpYSBwcmludCAobWVk
aWEtZW11bGF0aW9uLmh0bWw6NykKKyNtYWluICB7IChtZWRpYS1lbXVsYXRpb24uaHRtbDo4KQor
Y29sb3I6IGJsYWNrOworCitbZXhwYW5kZWRdIAorI21haW4gIHsgKG1lZGlhLWVtdWxhdGlvbi5o
dG1sOjUpCisvLS0gb3ZlcmxvYWRlZCAtLS8gY29sb3I6IHJlZDsKKworW2V4cGFuZGVkXSAKK2Rp
diAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQorZGlzcGxheTogYmxvY2s7CisKKwordHR5IG1l
ZGlhIGVtdWxhdGVkOgorW2V4cGFuZGVkXSAKKworW2V4cGFuZGVkXSAKK2VsZW1lbnQuc3R5bGUg
IHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0KK1tleHBhbmRlZF0g
CitAbWVkaWEgdHR5IChtZWRpYS1lbXVsYXRpb24uaHRtbDoxMSkKKyNtYWluICB7IChtZWRpYS1l
bXVsYXRpb24uaHRtbDoxMikKK2NvbG9yOiBncmVlbjsKKworW2V4cGFuZGVkXSAKKyNtYWluICB7
IChtZWRpYS1lbXVsYXRpb24uaHRtbDo1KQorLy0tIG92ZXJsb2FkZWQgLS0vIGNvbG9yOiByZWQ7
CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rpc3BsYXk6
IGJsb2NrOworCisKK05vIG1lZGlhIGVtdWxhdGVkOgorW2V4cGFuZGVkXSAKKworW2V4cGFuZGVk
XSAKK2VsZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09
PT09PT0KK1tleHBhbmRlZF0gCisjbWFpbiAgeyAobWVkaWEtZW11bGF0aW9uLmh0bWw6NSkKK2Nv
bG9yOiByZWQ7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkK
K2Rpc3BsYXk6IGJsb2NrOworCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9tZWRpYS1lbXVsYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvbWVkaWEtZW11bGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk2NmZmOThlM2NiMDdlMDQ3MmQ4
ZDBlMzBjNGI3OTc2YTNjYTFiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvbWVkaWEtZW11bGF0aW9uLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPGh0bWw+
Cis8aGVhZD4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyNtYWluIHsgY29sb3I6IHJlZDsg
fQorCitAbWVkaWEgcHJpbnQgeworI21haW4geyBjb2xvcjogYmxhY2s7IH0KK30KKworQG1lZGlh
IHR0eSB7CisjbWFpbiB7IGNvbG9yOiBncmVlbjsgfQorfQorPC9zdHlsZT4KKworPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3Bl
Y3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoIm1haW4iLCBzdGVwMCk7CisKKyAg
ICBmdW5jdGlvbiBzdGVwMCgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiT3JpZ2luYWwgc3R5bGU6Iik7CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVk
RWxlbWVudFN0eWxlcygpOworICAgICAgICBhcHBseUVtdWxhdGVkTWVkaWEoInByaW50Iik7Cisg
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygibWFpbiIsIHN0ZXAxKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoInByaW50IG1lZGlhIGVtdWxhdGVkOiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBT
ZWxlY3RlZEVsZW1lbnRTdHlsZXMoKTsKKyAgICAgICAgYXBwbHlFbXVsYXRlZE1lZGlhKCJ0dHki
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDIpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJ0dHkgbWVkaWEgZW11bGF0ZWQ6Iik7CisgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcFNlbGVjdGVkRWxlbWVudFN0eWxlcygpOworICAgICAgICBhcHBseUVtdWxhdGVkTWVk
aWEoIiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMoIm1haW4iLCBzdGVw
Myk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDMoKQorICAgIHsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIk5vIG1lZGlhIGVtdWxhdGVkOiIpOworICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXMoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhcHBseUVtdWxhdGVkTWVk
aWEobWVkaWEpCisgICAgeworICAgICAgICBQYWdlQWdlbnQuc2V0RW11bGF0ZWRNZWRpYShtZWRp
YSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5tZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdl
ZCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgZW11bGF0ZWQgQ1NTIG1lZGlhIGlzIHJlZmxlY3RlZCBp
biB0aGUgU3R5bGVzIHBhbmUuCis8L3A+CisKKzxkaXYgaWQ9Im1haW4iPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177450</attachid>
            <date>2012-12-04 01:59:24 -0800</date>
            <delta_ts>2012-12-04 02:18:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-103752-20121204135649.patch</filename>
            <type>text/plain</type>
            <size>20631</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmYmUwYTM4NjllMGM0
NmFmYWYyMzVmZjk4ZmY3YWQ4MTBjMGRlZC4uNmZlMzIyYjhiNmRlYWQ3ZWI2MzA4YTdkOGNlMGMw
YzY3YWEyZjJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTEyLTA0ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW092ZXJyaWRlc10gQWRkIGFiaWxpdHkgdG8gb3ZlcnJpZGUgdGhlIHBhZ2UgQ1NTIG1l
ZGlhIHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMzc1MgorCisgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCisKKyAgICAgICAg
VGhpcyBjaGFuZ2UgZW11bGF0ZXMgdGhlIENTUyBtZWRpYSB0eXBlcyB0aHJvdWdoIHRoZSBpbnN0
cnVtZW50YXRpb24gb2YgRnJhbWVWaWV3OjptZWRpYVR5cGUoKS4KKyAgICAgICAgRXZlbiB0aG91
Z2ggaXQgYWxyZWFkeSBjaGVja3MgdGhlIGFzc29jaWF0ZWQgRnJhbWVMb2FkZXJDbGllbnQ6Om92
ZXJyaWRlTWVkaWFUeXBlKCksIGluc3RydW1lbnRpbmcKKyAgICAgICAgZXZlcnkgc2luZ2xlIHBs
YXRmb3JtIEZyYW1lTG9hZGVyQ2xpZW50IGltcGxlbWVudGF0aW9uIG91dCB0aGVyZSBzZWVtcyB3
cm9uZy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3Ivc3R5bGVzL21lZGlhLWVtdWxhdGlvbi5o
dG1sCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOiBBZGQgUGFnZS5zZXRFbXVsYXRlZE1lZGlh
KCkuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5RW11bGF0ZWRN
ZWRpYUltcGwpOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFw
cGx5RW11bGF0ZWRNZWRpYSk6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpyZXN0
b3JlKTogUmVzdG9yZXMgdGhlIG1lZGlhIGVtdWxhdGlvbiBzdGF0ZS4KKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6IFJlc2V0cyB0aGUgbWVkaWEgZW11bGF0
aW9uIHN0YXRlLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzZXRFbXVs
YXRlZE1lZGlhKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
OmFwcGx5RW11bGF0ZWRNZWRpYSk6IEFwcGxpZXMgdGhlIGVtdWxhdGVkIENTUyBtZWRpYSBpZiBu
ZWVkZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qczogQWRkIHRoZSBsaXN0IG9m
IG1lZGlhIHR5cGVzLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvT3ZlcnJpZGVzVmll
dy5qczogQWRkIHRoZSBDU1MgbWVkaWEgdHlwZSBvdmVycmlkZSBVSS4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5PdmVycmlkZXNWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PdmVycmlkZXNW
aWV3LnByb3RvdHlwZS5fY3JlYXRlTWVkaWFFbXVsYXRpb25FbGVtZW50KTogQnVpbGRzIHRoZSBV
SS4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5PdmVycmlkZXNWaWV3LnByb3RvdHlwZS5fZW11bGF0
ZU1lZGlhQ2hhbmdlZCk6IEhhbmRsZXMgdGhlIGNvbnRyb2wgdmFsdWUgY2hhbmdlcy4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOiBBZGQgdGhlICJlbXVsYXRlZENT
U01lZGlhIiBzZXR0aW5nLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6bWVkaWFUeXBlKToKKyAgICAgICAgICBVc2VzIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6YXBwbHlFbXVsYXRlZE1lZGlhKCkgdG8gcHJvdmlkZSB0aGUgZW11
bGF0ZWQgdmFsdWUuCisKIDIwMTItMTItMDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbUkVHUkVTU0lPTl0gW1N0eWxl
c10gUnVsZSBkaXNhcHBlYXJzIGlmIGVkaXRlZCBzZWxlY3RvciBkb2VzIG5vdCBhZmZlY3Qgc2Vs
ZWN0ZWQgbm9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCmluZGV4IDVhM2E5OTZiZjFkYjUzYTFhMjEyOGM4ZTNkMDEzZTExZWE3NDQxNjEu
LmVmZmZhMWNkNjRiZGZmYzQ1YjJmOTg5MWQwZjk4Y2E4MTY0NmY0MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTE3Myw2ICsx
NzMsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJFZGl0Il0gPSAiRWRpdCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJFbGVtZW50IHN0YXRlOiAlcyJdID0gIkVsZW1lbnQgc3RhdGU6ICVzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkVsZW1lbnRzIFBhbmVsIl0gPSAiRWxlbWVudHMgUGFuZWwiOwogbG9jYWxpemVk
U3RyaW5nc1siRWxlbWVudHMiXSA9ICJFbGVtZW50cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJFbXVs
YXRlIENTUyBtZWRpYSJdID0gIkVtdWxhdGUgQ1NTIG1lZGlhIjsKIGxvY2FsaXplZFN0cmluZ3Nb
IkVtdWxhdGUgdG91Y2ggZXZlbnRzIl0gPSAiRW11bGF0ZSB0b3VjaCBldmVudHMiOwogbG9jYWxp
emVkU3RyaW5nc1siRW5hYmxlIEJyZWFrcG9pbnQiXSA9ICJFbmFibGUgQnJlYWtwb2ludCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJFbmFibGUgYnJlYWtwb2ludCJdID0gIkVuYWJsZSBicmVha3BvaW50
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA0NTQ1MzlmNjZh
OWZiZDVlMmUzZTBhYjdjZjQ0MmM2Zjg3NDY5MjE4Li4xNzc0M2RkMDBmMWU4YTcwNmI0ZmJjYzRi
ZDNlNDk0MzUxMWM2N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CkBAIC00MjksNiArNDI5LDE0IEBACiAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAic2V0
RW11bGF0ZWRNZWRpYSIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAibWVkaWEiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3Jp
cHRpb24iOiAiTWVkaWEgdHlwZSB0byBlbXVsYXRlLiBFbXB0eSBzdHJpbmcgZGlzYWJsZXMgdGhl
IG92ZXJyaWRlLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkVtdWxhdGVzIHRoZSBnaXZlbiBtZWRpYSBmb3IgQ1NTIG1lZGlhIHF1ZXJpZXMu
IiwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRDb21wb3NpdGluZ0JvcmRlcnNW
aXNpYmxlIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSW5kaWNhdGVzIHRoZSB2
aXNpYmlsaXR5IG9mIGNvbXBvc2l0aW5nIGJvcmRlcnMuIiwKICAgICAgICAgICAgICAgICAicmV0
dXJucyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMGFjZjMwMzhiNmJkZDU0OTM2ZTAwZTJkMTQ2MDhlODAz
OWI2MjgzNC4uNmY2YTlhYjZlZjIxYzYxYjBhN2IwNjBiMjY4YWY5MzgzMmMwNjY5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKQEAgLTY0NSw2ICs2NDUsMTIgQEAgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnNob3VsZEFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmcKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVt
dWxhdGVkTWVkaWFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IFN0cmluZyogbWVkaWEpCit7CisgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIHBh
Z2VBZ2VudC0+YXBwbHlFbXVsYXRlZE1lZGlhKG1lZGlhKTsKK30KKwogdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExv
YWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdl
bnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggYmE0NDdmOGQwNjM1NWZkY2ZkZDkyNDU4NzlkM2I4ZTdlZjk4
ZDdkMi4uMmM2ZDJhOTI4ZmZlYzhiZWNjZWY1ZDljMGY3NzQ2NzRlYmZiNTBmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApA
QCAtMTU4LDYgKzE1OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBhcHBseVVzZXJBZ2Vu
dE92ZXJyaWRlKEZyYW1lKiwgU3RyaW5nKik7CiAgICAgc3RhdGljIHZvaWQgYXBwbHlTY3JlZW5X
aWR0aE92ZXJyaWRlKEZyYW1lKiwgbG9uZyopOwogICAgIHN0YXRpYyB2b2lkIGFwcGx5U2NyZWVu
SGVpZ2h0T3ZlcnJpZGUoRnJhbWUqLCBsb25nKik7CisgICAgc3RhdGljIHZvaWQgYXBwbHlFbXVs
YXRlZE1lZGlhKEZyYW1lKiwgU3RyaW5nKik7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlT
Y3JlZW5XaWR0aE92ZXJyaWRlKEZyYW1lKik7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlT
Y3JlZW5IZWlnaHRPdmVycmlkZShGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxTZW5kUmVx
dWVzdChGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
KTsKQEAgLTM1MCw2ICszNTEsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5VXNl
ckFnZW50T3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBTdHJpbmcqKTsKICAgICBz
dGF0aWMgdm9pZCBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBsb25nKik7CiAgICAgc3RhdGljIHZvaWQgYXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGxvbmcqKTsKKyAgICBzdGF0aWMgdm9pZCBhcHBseUVt
dWxhdGVkTWVkaWFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBTdHJpbmcqKTsKICAgICBzdGF0
aWMgYm9vbCBzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqKTsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRBcHBseVNjcmVlbkhlaWdodE92ZXJyaWRl
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1
ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBE
b2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtMTA2NSw2ICsxMDY3LDE1IEBAIGlubGluZSBib29sIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKEZy
YW1lKiBmcmFtCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmFwcGx5RW11bGF0ZWRNZWRpYShGcmFtZSogZnJhbWUsIFN0cmluZyog
bWVkaWEpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19G
Uk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAg
IGFwcGx5RW11bGF0ZWRNZWRpYUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgbWVkaWEpOworI2Vu
ZGlmCit9CisKIGlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkQXBw
bHlTY3JlZW5IZWlnaHRPdmVycmlkZShGcmFtZSogZnJhbWUpCiB7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKaW5kZXggMWE0NmU5YTE2Yzg1OWZiMDE2ZTM5Y2YyMDVmZGQyMWYxYzNkZWE3NC4uMDRhNTQ1
ZTIwYTZiYmJjNDE5YzNlM2QxMDZhZWEyZGMzZTAyMzVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTk3LDYgKzk3LDcgQEAgc3Rh
dGljIGNvbnN0IGNoYXIgcGFnZUFnZW50U2hvd1BhaW50UmVjdHNbXSA9ICJwYWdlQWdlbnRTaG93
UGFpbnRSZWN0cyI7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHN0YXRpYyBjb25zdCBjaGFy
IHRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkW10gPSAidG91Y2hFdmVudEVtdWxhdGlvbkVuYWJs
ZWQiOwogI2VuZGlmCitzdGF0aWMgY29uc3QgY2hhciBwYWdlQWdlbnRFbXVsYXRlZE1lZGlhW10g
PSAicGFnZUFnZW50RW11bGF0ZWRNZWRpYSI7CiB9CiAKIHN0YXRpYyBib29sIGRlY29kZUJ1ZmZl
cihjb25zdCBjaGFyKiBidWZmZXIsIHVuc2lnbmVkIHNpemUsIGNvbnN0IFN0cmluZyYgdGV4dEVu
Y29kaW5nTmFtZSwgU3RyaW5nKiByZXN1bHQpCkBAIC0zNjMsNiArMzY0LDggQEAgdm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OnJlc3RvcmUoKQogICAgICAgICBzZXRTaG93UGFpbnRSZWN0cygwLCBz
aG93UGFpbnRSZWN0cyk7CiAgICAgICAgIGJvb2wgc2hvd0ZQU0NvdW50ZXIgPSBtX3N0YXRlLT5n
ZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTaG93RlBTQ291bnRlcik7CiAgICAg
ICAgIHNldFNob3dGUFNDb3VudGVyKDAsIHNob3dGUFNDb3VudGVyKTsKKyAgICAgICAgU3RyaW5n
IGVtdWxhdGVkTWVkaWEgPSBtX3N0YXRlLT5nZXRTdHJpbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VB
Z2VudEVtdWxhdGVkTWVkaWEpOworICAgICAgICBzZXRFbXVsYXRlZE1lZGlhKDAsIGVtdWxhdGVk
TWVkaWEpOwogCiAgICAgICAgIGludCBjdXJyZW50V2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KG1f
c3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbldpZHRoT3ZlcnJp
ZGUpKTsKICAgICAgICAgaW50IGN1cnJlbnRIZWlnaHQgPSBzdGF0aWNfY2FzdDxpbnQ+KG1fc3Rh
dGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbkhlaWdodE92ZXJyaWRl
KSk7CkBAIC0zOTcsNiArNDAwLDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUo
RXJyb3JTdHJpbmcqKQogICAgIHNldFNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkKDAsIGZhbHNlKTsK
ICAgICBzZXRTaG93UGFpbnRSZWN0cygwLCBmYWxzZSk7CiAgICAgc2V0U2hvd0ZQU0NvdW50ZXIo
MCwgZmFsc2UpOworICAgIHNldEVtdWxhdGVkTWVkaWEoMCwgIiIpOwogCiAgICAgLy8gV2hlbiBk
aXNhYmxpbmcgdGhlIGFnZW50LCByZXNldCB0aGUgb3ZlcnJpZGUgdmFsdWVzLgogICAgIG1fc3Rh
dGUtPnNldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbldpZHRoT3ZlcnJpZGUs
IDApOwpAQCAtMTE0Nyw2ICsxMTUxLDI5IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXRU
b3VjaEVtdWxhdGlvbkVuYWJsZWQoRXJyb3JTdHJpbmcqIGVycm9yLCBib29sIGVuYWJsCiAjZW5k
aWYKIH0KIAordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldEVtdWxhdGVkTWVkaWEoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIG1lZGlhKQoreworICAgIFN0cmluZyBjdXJyZW50TWVkaWEg
PSBtX3N0YXRlLT5nZXRTdHJpbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEVtdWxhdGVkTWVk
aWEpOworICAgIGlmIChtZWRpYSA9PSBjdXJyZW50TWVkaWEpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fc3RhdGUtPnNldFN0cmluZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50RW11bGF0ZWRN
ZWRpYSwgbWVkaWEpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IDA7CisgICAgaWYgKG1fcGFn
ZS0+bWFpbkZyYW1lKCkpCisgICAgICAgIGRvY3VtZW50ID0gbV9wYWdlLT5tYWluRnJhbWUoKS0+
ZG9jdW1lbnQoKTsKKyAgICBpZiAoZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQtPnN0eWxl
UmVzb2x2ZXJDaGFuZ2VkKFJlY2FsY1N0eWxlSW1tZWRpYXRlbHkpOworICAgICAgICBkb2N1bWVu
dC0+dXBkYXRlTGF5b3V0KCk7CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
YXBwbHlFbXVsYXRlZE1lZGlhKFN0cmluZyogbWVkaWEpCit7CisgICAgU3RyaW5nIGVtdWxhdGVk
TWVkaWEgPSBtX3N0YXRlLT5nZXRTdHJpbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEVtdWxh
dGVkTWVkaWEpOworICAgIGlmICghZW11bGF0ZWRNZWRpYS5pc0VtcHR5KCkpCisgICAgICAgICpt
ZWRpYSA9IGVtdWxhdGVkTWVkaWE7Cit9CisKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRD
b21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nKiBlcnJvciwgYm9vbCogb3V0UGFy
YW0pCiB7CiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9wYWdlLT5zZXR0aW5ncygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGRhYWNl
MzYzNjA0YmRmYTM0Mzk4ZmMzOGM4YzE3NDk4YTQ0NjdjZjIuLjVkNDY4YTE1YmMzNzA0ZDBjNjZk
MDkyYjNkMjEzODBmMDYwYTU0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGNsZWFyRGV2aWNlT3JpZW50YXRpb25PdmVycmlkZShFcnJvclN0cmluZyopOwogICAg
IHZpcnR1YWwgdm9pZCBjYW5PdmVycmlkZURldmljZU9yaWVudGF0aW9uKEVycm9yU3RyaW5nKiwg
Ym9vbCopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb3VjaEVtdWxhdGlvbkVuYWJsZWQoRXJyb3JT
dHJpbmcqLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW11bGF0ZWRNZWRpYShFcnJvclN0
cmluZyosIGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRDb21wb3NpdGluZ0Jv
cmRlcnNWaXNpYmxlKEVycm9yU3RyaW5nKiwgYm9vbCogb3V0X3BhcmFtKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZShFcnJvclN0cmluZyosIGJvb2wpOwog
CkBAIC0xMzgsNiArMTM5LDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZGVyRGV0YWNoZWRGcm9t
RnJhbWUoRG9jdW1lbnRMb2FkZXIqKTsKICAgICB2b2lkIGFwcGx5U2NyZWVuV2lkdGhPdmVycmlk
ZShsb25nKik7CiAgICAgdm9pZCBhcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKGxvbmcqKTsKKyAg
ICB2b2lkIGFwcGx5RW11bGF0ZWRNZWRpYShTdHJpbmcqKTsKICAgICB2b2lkIGRpZFBhaW50KEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmKTsKICAgICB2b2lkIGRpZExheW91dCgp
OwogICAgIHZvaWQgZGlkU2Nyb2xsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKaW5kZXggZWY2ZDc5YTI3NWI4MGExY2NiNTgy
OTE0YWNmMDdmZjkwOWQyYmRlMC4uMGIzNThmYjE1NTQxNTAwZDJhZGRlZjgzMDRlMDQ4NTlhZmMw
YjdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NT
dHlsZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NT
U3R5bGVNb2RlbC5qcwpAQCAtNzcsNiArNzcsOCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5FdmVudHMgPSB7CiAgICAgUmVnaW9uTGF5b3V0VXBkYXRlZDogIlJlZ2lvbkxheW91dFVwZGF0
ZWQiCiB9CiAKK1dlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLk1lZGlhVHlwZXMgPSBbImFsbCIs
ICJicmFpbGxlIiwgImVtYm9zc2VkIiwgImhhbmRoZWxkIiwgInByaW50IiwgInByb2plY3Rpb24i
LCAic2NyZWVuIiwgInNwZWVjaCIsICJ0dHkiLCAidHYiXTsKKwogV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7RE9NQWdlbnQu
Tm9kZUlkfSBub2RlSWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvT3ZlcnJpZGVzVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvT3ZlcnJpZGVzVmlldy5qcwppbmRleCA1Mzk0MzdhOGY3ZWMyMzFjYmNhNmU5NDEwMGFkYWU5
NzFlY2Y4Y2ZlLi4zODgwZWRmNjhiYmZlYTYzNDlkMzc1MmY0YzEzNWI2YjM5M2E1ZTI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL092ZXJyaWRlc1ZpZXcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PdmVycmlkZXNWaWV3
LmpzCkBAIC02MCw2ICs2MCw3IEBAIFdlYkluc3BlY3Rvci5PdmVycmlkZXNWaWV3ID0gZnVuY3Rp
b24oKQogICAgIGlmIChDYXBhYmlsaXRpZXMuY2FuT3ZlcnJpZGVEZXZpY2VPcmllbnRhdGlvbikK
ICAgICAgICAgYXBwZW5kQmxvY2tUbyhjb250YWluZXIsIHRoaXMuX2NyZWF0ZURldmljZU9yaWVu
dGF0aW9uT3ZlcnJpZGVDb250cm9sKCkpOwogICAgIGFwcGVuZEJsb2NrVG8oY29udGFpbmVyLCB0
aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbXVsYXRl
IHRvdWNoIGV2ZW50cyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZW11bGF0ZVRvdWNoRXZlbnRz
KSk7CisgICAgYXBwZW5kQmxvY2tUbyhjb250YWluZXIsIHRoaXMuX2NyZWF0ZU1lZGlhRW11bGF0
aW9uRWxlbWVudCgpKTsKIAogICAgIHRoaXMuX3N0YXR1c0VsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJzcGFuIik7CiAgICAgdGhpcy5fc3RhdHVzRWxlbWVudC50ZXh0Q29udGVudCA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3ZlcnJpZGVzIik7CkBAIC01OTQsNSArNTk1LDUwIEBA
IFdlYkluc3BlY3Rvci5PdmVycmlkZXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJu
IGZpZWxkc2V0RWxlbWVudDsKICAgICB9LAogCisgICAgX2NyZWF0ZU1lZGlhRW11bGF0aW9uRWxl
bWVudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgY29uc3QgcCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInAiKTsKKyAgICAgICAgY29uc3QgbGFiZWxFbGVtZW50ID0gcC5jcmVhdGVDaGls
ZCgibGFiZWwiKTsKKyAgICAgICAgY29uc3QgY2hlY2tib3hFbGVtZW50ID0gbGFiZWxFbGVtZW50
LmNyZWF0ZUNoaWxkKCJpbnB1dCIpOworICAgICAgICBjaGVja2JveEVsZW1lbnQudHlwZSA9ICJj
aGVja2JveCI7CisgICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gZmFsc2U7CisgICAg
ICAgIHRoaXMuX21ldHJpY3NDaGVja2JveEVsZW1lbnQgPSBjaGVja2JveEVsZW1lbnQ7CisgICAg
ICAgIGxhYmVsRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkVtdWxhdGUgQ1NTIG1lZGlhIikpKTsKKworICAgICAgICB2YXIg
bWVkaWFTZWxlY3RFbGVtZW50ID0gcC5jcmVhdGVDaGlsZCgic2VsZWN0Iik7CisgICAgICAgIHZh
ciBtZWRpYVR5cGVzID0gV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuTWVkaWFUeXBlczsKKyAg
ICAgICAgdmFyIGRlZmF1bHRNZWRpYSA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5lbXVsYXRlZENT
U01lZGlhLmdldCgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lZGlhVHlwZXMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBtZWRpYVR5cGUgPSBtZWRpYVR5cGVzW2ldOwor
ICAgICAgICAgICAgaWYgKG1lZGlhVHlwZSA9PT0gImFsbCIpIHsKKyAgICAgICAgICAgICAgICAv
LyAiYWxsIiBpcyBub3QgYSBkZXZpY2Utc3BlY2lmaWMgbWVkaWEgdHlwZS4KKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBvcHRpb24gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKKyAgICAgICAgICAgIG9wdGlvbi50ZXh0
ID0gbWVkaWFUeXBlOworICAgICAgICAgICAgb3B0aW9uLnZhbHVlID0gbWVkaWFUeXBlOworICAg
ICAgICAgICAgbWVkaWFTZWxlY3RFbGVtZW50LmFkZChvcHRpb24pOworICAgICAgICAgICAgaWYg
KG1lZGlhVHlwZSA9PT0gZGVmYXVsdE1lZGlhKQorICAgICAgICAgICAgICAgIG1lZGlhU2VsZWN0
RWxlbWVudC5zZWxlY3RlZEluZGV4ID0gbWVkaWFTZWxlY3RFbGVtZW50Lm9wdGlvbnMubGVuZ3Ro
IC0gMTsKKyAgICAgICAgfQorICAgICAgICBtZWRpYVNlbGVjdEVsZW1lbnQuZGlzYWJsZWQgPSB0
cnVlOworICAgICAgICB2YXIgYm91bmRMaXN0ZW5lciA9IHRoaXMuX2VtdWxhdGVNZWRpYUNoYW5n
ZWQuYmluZCh0aGlzLCBjaGVja2JveEVsZW1lbnQsIG1lZGlhU2VsZWN0RWxlbWVudCk7CisgICAg
ICAgIGNoZWNrYm94RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGJvdW5kTGlzdGVu
ZXIsIGZhbHNlKTsKKyAgICAgICAgbWVkaWFTZWxlY3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
ImNoYW5nZSIsIGJvdW5kTGlzdGVuZXIsIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIHA7CisgICAg
fSwKKworICAgIF9lbXVsYXRlTWVkaWFDaGFuZ2VkOiBmdW5jdGlvbihjaGVja2JveCwgc2VsZWN0
KQorICAgIHsKKyAgICAgICAgc2VsZWN0LmRpc2FibGVkID0gIWNoZWNrYm94LmNoZWNrZWQ7Cisg
ICAgICAgIGlmIChjaGVja2JveC5jaGVja2VkKSB7CisgICAgICAgICAgICB2YXIgbWVkaWEgPSBz
ZWxlY3Qub3B0aW9uc1tzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7CisgICAgICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZW11bGF0ZWRDU1NNZWRpYS5zZXQobWVkaWEpOworICAgICAg
ICAgICAgUGFnZUFnZW50LnNldEVtdWxhdGVkTWVkaWEobWVkaWEpOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIFBhZ2VBZ2VudC5zZXRFbXVsYXRlZE1lZGlhKCIiKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLmNzc01vZGVsLm1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKCk7CisgICAgfSwKKwog
ICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwppbmRleCA1MmE1ZDYwOWJm
ZWJhZGFlMGNjNjFkMTg4ZTlkMDFlMTFmNDg1YTk1Li5kYzgwMjc0OTVlMWFhNjg3YmMwZmMwYTc2
YjFjNWMzOGMyYjFmMTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NldHRpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2V0dGluZ3MuanMKQEAgLTExMyw3ICsxMTMsNyBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3Mg
PSBmdW5jdGlvbigpCiAgICAgdGhpcy5jc3NSZWxvYWRUaW1lb3V0ID0gdGhpcy5jcmVhdGVTZXR0
aW5nKCJjc3NSZWxvYWRUaW1lb3V0IiwgMTAwMCk7CiAgICAgdGhpcy5zaG93Q3B1T25UaW1lbGlu
ZVJ1bGVyID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJzaG93Q3B1T25UaW1lbGluZVJ1bGVyIiwgZmFs
c2UpOwogICAgIHRoaXMuc2hvd01ldHJpY3NSdWxlcnMgPSB0aGlzLmNyZWF0ZVNldHRpbmcoInNo
b3dNZXRyaWNzUnVsZXJzIiwgZmFsc2UpOwotCisgICAgdGhpcy5lbXVsYXRlZENTU01lZGlhID0g
dGhpcy5jcmVhdGVTZXR0aW5nKCJlbXVsYXRlZENTU01lZGlhIiwgInByaW50Iik7CiAKICAgICAv
LyBJZiB0aGVyZSBhcmUgdG9vIG1hbnkgYnJlYWtwb2ludHMgaW4gYSBzdG9yYWdlLCBpdCBpcyBs
aWtlbHkgZHVlIHRvIGEgcmVjZW50IGJ1ZyB0aGF0IGNhdXNlZAogICAgIC8vIHBlcmlvZGljYWwg
YnJlYWtwb2ludHMgZHVwbGljYXRpb24gbGVhZGluZyB0byBpbnNwZWN0b3Igc2xvd25lc3MuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZGNkYWUyMTNlMTg4ODlkZjc4Y2JiM2JiNDQy
ZWY3N2IxNWJjNTFiYy4uMjlkOTJjOTZkNzRhM2Q2Y2NmNTY1YWFlNjk0YWM3ZmE3YTUyYWZlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMTMzNSw2ICsxMzM1LDcgQEAgU3RyaW5n
IEZyYW1lVmlldzo6bWVkaWFUeXBlKCkgY29uc3QKIHsKICAgICAvLyBTZWUgaWYgd2UgaGF2ZSBh
biBvdmVycmlkZSB0eXBlLgogICAgIFN0cmluZyBvdmVycmlkZVR5cGUgPSBtX2ZyYW1lLT5sb2Fk
ZXIoKS0+Y2xpZW50KCktPm92ZXJyaWRlTWVkaWFUeXBlKCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjphcHBseUVtdWxhdGVkTWVkaWEobV9mcmFtZS5nZXQoKSwgJm92ZXJyaWRlVHlw
ZSk7CiAgICAgaWYgKCFvdmVycmlkZVR5cGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBvdmVy
cmlkZVR5cGU7CiAgICAgcmV0dXJuIG1fbWVkaWFUeXBlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJiMDE0YThjODYzODBl
NDA0NTg0NWQyMjRjMjBjYjg3OWEwYzUwZjMuLmI1MmJhMDY3MWE4ODFiOTFjYWYyOTMwMzE4YWQ0
N2M2ZTQyNWRjZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMi0xMi0wMyAgQWxleGFuZGVy
IFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFtPdmVycmlkZXNdIEFkZCBhYmlsaXR5IHRvIG92ZXJyaWRlIHRoZSBwYWdlIENTUyBtZWRpYSB0
eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM3
NTIKKworICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgorCisgICAgICAgIFRoZSB0
ZXN0IGludm9rZXMgUGFnZUFnZW50LnNldEVtdWxhdGVkTWVkaWEoKSBhbmQgZW1pdHMgdGhlIFdl
Ykluc3BlY3Rvci5jc3NNb2RlbC5tZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZCgpIHNpZ25hbC4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvbWVkaWEtZW11bGF0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9tZWRpYS1lbXVsYXRpb24uaHRtbDog
QWRkZWQuCisKKzIwMTItMTItMDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVt
Lm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbUkVHUkVTU0lPTl0gW1N0eWxlc10gUnVs
ZSBkaXNhcHBlYXJzIGlmIGVkaXRlZCBzZWxlY3RvciBkb2VzIG5vdCBhZmZlY3Qgc2VsZWN0ZWQg
bm9kZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
MDU5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWVkaWEtZW11
bGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWVkaWEt
ZW11bGF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTNiNTg4Y2I3ODI3M2EwZThmNGI3
MDhhOGJkYzY5YTQ2MzNlOWQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9tZWRpYS1lbXVsYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzcgQEAK
K1Rlc3RzIHRoYXQgZW11bGF0ZWQgQ1NTIG1lZGlhIGlzIHJlZmxlY3RlZCBpbiB0aGUgU3R5bGVz
IHBhbmUuCisKK09yaWdpbmFsIHN0eWxlOgorW2V4cGFuZGVkXSAKKworW2V4cGFuZGVkXSAKK2Vs
ZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVsZXMgPT09PT09PT0K
K1tleHBhbmRlZF0gCisjbWFpbiAgeyAobWVkaWEtZW11bGF0aW9uLmh0bWw6NSkKK2NvbG9yOiBy
ZWQ7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK2Rpc3Bs
YXk6IGJsb2NrOworCisKK3ByaW50IG1lZGlhIGVtdWxhdGVkOgorW2V4cGFuZGVkXSAKKworW2V4
cGFuZGVkXSAKK2VsZW1lbnQuc3R5bGUgIHsgKCkKKworPT09PT09PT0gTWF0Y2hlZCBDU1MgUnVs
ZXMgPT09PT09PT0KK1tleHBhbmRlZF0gCitAbWVkaWEgcHJpbnQgKG1lZGlhLWVtdWxhdGlvbi5o
dG1sOjcpCisjbWFpbiAgeyAobWVkaWEtZW11bGF0aW9uLmh0bWw6OCkKK2NvbG9yOiBibGFjazsK
KworW2V4cGFuZGVkXSAKKyNtYWluICB7IChtZWRpYS1lbXVsYXRpb24uaHRtbDo1KQorLy0tIG92
ZXJsb2FkZWQgLS0vIGNvbG9yOiByZWQ7CisKK1tleHBhbmRlZF0gCitkaXYgIHsgKHVzZXIgYWdl
bnQgc3R5bGVzaGVldCkKK2Rpc3BsYXk6IGJsb2NrOworCisKK3R0eSBtZWRpYSBlbXVsYXRlZDoK
K1tleHBhbmRlZF0gCisKK1tleHBhbmRlZF0gCitlbGVtZW50LnN0eWxlICB7ICgpCisKKz09PT09
PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5kZWRdIAorQG1lZGlhIHR0eSAo
bWVkaWEtZW11bGF0aW9uLmh0bWw6MTEpCisjbWFpbiAgeyAobWVkaWEtZW11bGF0aW9uLmh0bWw6
MTIpCitjb2xvcjogZ3JlZW47CisKK1tleHBhbmRlZF0gCisjbWFpbiAgeyAobWVkaWEtZW11bGF0
aW9uLmh0bWw6NSkKKy8tLSBvdmVybG9hZGVkIC0tLyBjb2xvcjogcmVkOworCitbZXhwYW5kZWRd
IAorZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9jazsKKworCitO
byBtZWRpYSBlbXVsYXRlZDoKK1tleHBhbmRlZF0gCisKK1tleHBhbmRlZF0gCitlbGVtZW50LnN0
eWxlICB7ICgpCisKKz09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVzID09PT09PT09CitbZXhwYW5k
ZWRdIAorI21haW4gIHsgKG1lZGlhLWVtdWxhdGlvbi5odG1sOjUpCitjb2xvcjogcmVkOworCitb
ZXhwYW5kZWRdIAorZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitkaXNwbGF5OiBibG9j
azsKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvbWVkaWEt
ZW11bGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21lZGlhLWVtdWxh
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NjZmZjk4ZTNjYjA3ZTA0NzJkOGQwZTMwYzRiNzk3NmEz
Y2ExYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL21l
ZGlhLWVtdWxhdGlvbi5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzxodG1sPgorPGhlYWQ+CisKKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjbWFpbiB7IGNvbG9yOiByZWQ7IH0KKworQG1lZGlhIHBy
aW50IHsKKyNtYWluIHsgY29sb3I6IGJsYWNrOyB9Cit9CisKK0BtZWRpYSB0dHkgeworI21haW4g
eyBjb2xvcjogZ3JlZW47IH0KK30KKzwvc3R5bGU+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDApOworCisgICAgZnVuY3Rpb24gc3Rl
cDAoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk9yaWdpbmFsIHN0
eWxlOiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXMo
KTsKKyAgICAgICAgYXBwbHlFbXVsYXRlZE1lZGlhKCJwcmludCIpOworICAgICAgICBJbnNwZWN0
b3JUZXN0LndhaXRGb3JTdHlsZXMoIm1haW4iLCBzdGVwMSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gc3RlcDEoKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJwcmludCBtZWRp
YSBlbXVsYXRlZDoiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50
U3R5bGVzKCk7CisgICAgICAgIGFwcGx5RW11bGF0ZWRNZWRpYSgidHR5Iik7CisgICAgICAgIElu
c3BlY3RvclRlc3Qud2FpdEZvclN0eWxlcygibWFpbiIsIHN0ZXAyKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwMigpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
dHR5IG1lZGlhIGVtdWxhdGVkOiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTZWxlY3Rl
ZEVsZW1lbnRTdHlsZXMoKTsKKyAgICAgICAgYXBwbHlFbXVsYXRlZE1lZGlhKCIiKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDMpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJObyBtZWRpYSBlbXVsYXRlZDoiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2Vs
ZWN0ZWRFbGVtZW50U3R5bGVzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXBwbHlFbXVsYXRlZE1lZGlhKG1lZGlhKQorICAg
IHsKKyAgICAgICAgUGFnZUFnZW50LnNldEVtdWxhdGVkTWVkaWEobWVkaWEpOworICAgICAgICBX
ZWJJbnNwZWN0b3IuY3NzTW9kZWwubWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoKTsKKyAgICB9Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitU
ZXN0cyB0aGF0IGVtdWxhdGVkIENTUyBtZWRpYSBpcyByZWZsZWN0ZWQgaW4gdGhlIFN0eWxlcyBw
YW5lLgorPC9wPgorCis8ZGl2IGlkPSJtYWluIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="193604"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>