<?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>90439</bug_id>
          
          <creation_ts>2012-07-03 02:20:28 -0700</creation_ts>
          <short_desc>Web Inspector: Add text file support for FileSystemAgent::requestFileContent</short_desc>
          <delta_ts>2012-07-09 03:52:33 -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>
          
          <blocked>68203</blocked>
    
    <blocked>90529</blocked>
    
    <blocked>90592</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Taiju Tsuiki">tzik</reporter>
          <assigned_to name="Taiju Tsuiki">tzik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>662068</commentid>
    <comment_count>0</comment_count>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-07-03 02:20:28 -0700</bug_when>
    <thetext>For FileSystem support of Inspector, text file support is needed.
That is, I&apos;d like to add:
 - Charset detection
 - Text decoding on load
 - Charset override
to backend InspectorFileSystemAgent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662069</commentid>
    <comment_count>1</comment_count>
      <attachid>150563</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-07-03 02:22:52 -0700</bug_when>
    <thetext>Created attachment 150563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662736</commentid>
    <comment_count>2</comment_count>
      <attachid>150735</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-07-04 01:06:35 -0700</bug_when>
    <thetext>Created attachment 150735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663722</commentid>
    <comment_count>3</comment_count>
      <attachid>150735</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-05 14:06:47 -0700</bug_when>
    <thetext>Comment on attachment 150735
Patch

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

&gt; Source/WebCore/inspector/InspectorFileSystemAgent.cpp:111
&gt; +    return mimeType.startsWith(&quot;text/&quot;) || mimeType.endsWith(&quot;+xml&quot;) || mimeType.endsWith(&quot;/javascript&quot;);

See NetworkResourcesData (http://code.google.com/p/chromium/source/search?q=file%3Ainspector+%22.mimetype+%3D+%22&amp;origq=file%3Ainspector+%22.mimetype+%3D+%22&amp;btnG=Search+Trunk) for a more precise text and charset detection (at least for xml mime-types).
Can we reuse it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664694</commentid>
    <comment_count>4</comment_count>
      <attachid>151197</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-07-09 00:29:10 -0700</bug_when>
    <thetext>Created attachment 151197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664707</commentid>
    <comment_count>5</comment_count>
      <attachid>151203</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-07-09 00:49:31 -0700</bug_when>
    <thetext>Created attachment 151203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664720</commentid>
    <comment_count>6</comment_count>
      <attachid>151207</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-07-09 01:10:33 -0700</bug_when>
    <thetext>Created attachment 151207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664723</commentid>
    <comment_count>7</comment_count>
      <attachid>151209</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-07-09 01:22:12 -0700</bug_when>
    <thetext>Created attachment 151209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664781</commentid>
    <comment_count>8</comment_count>
      <attachid>151209</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-09 03:52:28 -0700</bug_when>
    <thetext>Comment on attachment 151209
Patch

Clearing flags on attachment: 151209

Committed r122101: &lt;http://trac.webkit.org/changeset/122101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664782</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-09 03:52:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150563</attachid>
            <date>2012-07-03 02:22:52 -0700</date>
            <delta_ts>2012-07-04 01:06:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90439-20120703182250.patch</filename>
            <type>text/plain</type>
            <size>21418</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzUwYjRmNTRhNTExMzVm
OGQ4OWY3OTc1Njg1ODZlYjMwNWJiOWZmMC4uZmNhMGY2ZGFkOWVlYzE5ZjEzM2Y2ZDYzZTMwYTlj
OWM0Zjg4MzZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA3LTAzICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
ZGQgdGV4dCBmaWxlIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDQz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxlLmh0bWwKKworICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRmlsZVN5c3RlbUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpyZXF1ZXN0RmlsZUNvbnRlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaDoKKyAgICAgICAgKElu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9G
aWxlU3lzdGVtTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVs
LnByb3RvdHlwZS5yZXF1ZXN0RmlsZUNvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZp
bGVTeXN0ZW1Nb2RlbC5GaWxlLnByb3RvdHlwZS5yZXF1ZXN0RmlsZUNvbnRlbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1SZXF1ZXN0TWFuYWdlci5wcm90b3R5cGUuX2ZpbGVD
b250ZW50UmVjZWl2ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1EaXNwYXRj
aGVyLnByb3RvdHlwZS5maWxlQ29udGVudFJlY2VpdmVkKToKKwogMjAxMi0wNy0wMiAgWW9zaGlm
dW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3Ig
Q2hyb21pbXVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggMzcx
MWNmM2YzMmE4MGQ3MTZkYTM2NzNjZjg0MGQ5YjY3MWM3ZWY0Ni4uOWMyMjE1M2ZhNzVhZmUwMzYz
MDU4YTEzYjgyMzFlZmMyYjdmZmM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtMTQ3Nyw3ICsxNDc3LDggQEAKICAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiVVJMIG9mIHRoZSBmaWxlIHRoYXQgdGhlIGZyb250ZW5kIGlz
IHJlcXVlc3RpbmcgdG8gcmVhZCBmcm9tLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzdGFydCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiU3BlY2lmaWVzIHRoZSBzdGFydCBvZiByYW5nZSB0byByZWFkLiIgfSwKLSAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyB0aGUgZW5kIG9mIHJhbmdlIHRv
IHJlYWQgZXhjbHVzaXZlbHkuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5k
IiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJT
cGVjaWZpZXMgdGhlIGVuZCBvZiByYW5nZSB0byByZWFkIGV4Y2x1c2l2ZWx5LiIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjaGFyc2V0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk92ZXJyaWRlcyBjaGFyc2V0IG9mIHRoZSBj
b250ZW50IHdoZW4gY29udGVudCBpcyBzZXJ2ZWQgYXMgdGV4dC4iIH0KICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInJlcXVlc3RJZCIsICIkcmVmIjogIlJlcXVlc3RJZCIsICJkZXNjcmlwdGlvbiI6
ICJSZXF1ZXN0IGlkZW50aWZpZXIuIENvcnJlc3BvbmRpbmcgZmlsZUNvbnRlbnRSZWNlaXZlZCBl
dmVudCBzaG91bGQgaGF2ZSBzYW1lIHJlcXVlc3RJZCB3aXRoIHRoaXMuIiB9CkBAIC0xNTE4LDcg
KzE1MTksOSBAQAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3Jp
cHRpb24iOiAiUmVxdWVzdCBJZGVudGlmaWVyIHRoYXQgd2FzIHJldHVybmVkIGluIHJlc3BvbnNl
IHRvIHRoZSBjb3JyZXNwb25kaW5nIHJlcXVlc3RGaWxlQ29udGVudCBjb21tYW5kLiIgfSwKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlcnJvckNvZGUiLCAidHlwZSI6ICJpbnRlZ2Vy
IiwgImRlc2NyaXB0aW9uIjogIjAsIGlmIG5vIGVycm9yLiBPdGhlcndpc2UsIGVycm9yQ29kZSBp
cyBzZXQgdG8gRmlsZUVycm9yOjpFcnJvckNvZGUgdmFsdWUuIiB9LAotICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNvbnRlbnQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGFpbnMgY29udGVudCBvZiB0aGUgZmlsZSBhcyBiYXNl
NjQgZW5jb2RlZCBzdHJpbmcuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29u
dGVudCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJDb250ZW50IG9mIHRoZSBmaWxlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJiYXNlNjRFbmNvZGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJUcnVlIGlmIHRoZSBjb250ZW50IGlzIHNlcnZlZCBhcyBiYXNlNjQgZW5j
b2RlZCBiaW5hcnkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoYXJzZXQi
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ2hh
cnNldCBvZiB0aGUgY29udGVudCBpZiBpdCBpcyBzZXJ2ZWQgYXMgdGV4dC4iIH0KICAgICAgICAg
ICAgICAgICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21wbGV0aW9uIGV2
ZW50IG9mIHJlcXVlc3RGaWxlQ29udGVudCBjb21tYW5kLiIKICAgICAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5j
cHAKaW5kZXggYWRhZmVlYTdmYWY1ZTRhNGE3NzE5MTgwMmJlOWUyMWQ4YTA0NDg4My4uOTMyMDNi
MzY3NTRmMGY3NDM5NzI4OTc2ZTdkMDk1YWYyY2EwMGE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKQEAgLTYxLDYg
KzYxLDggQEAKICNpbmNsdWRlICJNZXRhZGF0YUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVk
ZSAiVGV4dEVuY29kaW5nLmgiCisjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogCiB1
c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6QXJyYXk7CiAKQEAgLTE1Miw3ICsxNTQsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmlsZUVycm9yKik7CiAgICAgYm9vbCBkaWRH
ZXRFbnRyeShFbnRyeSopOwogCi0gICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJv
ckNvZGUgZXJyb3JDb2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRy
eT4gZW50cnkpCisgICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJy
b3JDb2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4gZW50cnkg
PSAwKQogICAgIHsKICAgICAgICAgaWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRl
bmRQcm92aWRlci0+ZnJvbnRlbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3Miw3ICsx
NzQsNyBAQCBwcml2YXRlOgogCiBib29sIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6ZGlkSGl0RXJy
b3IoRmlsZUVycm9yKiBlcnJvcikKIHsKLSAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSwg
MCk7CisgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC0xODQsNyArMTg2LDcgQEAgdm9pZCBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OnN0YXJ0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICBlbHNl
IGlmIChtX3R5cGUgPT0gRE9NRmlsZVN5c3RlbUJhc2U6OnRlbXBvcmFyeVBhdGhQcmVmaXgpCiAg
ICAgICAgIHR5cGUgPSBGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeTsKICAgICBlbHNlIHsKLSAgICAg
ICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lOVEFYX0VSUiwgMCk7CisgICAgICAgIHJlcG9y
dFJlc3VsdChGaWxlRXJyb3I6OlNZTlRBWF9FUlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0yMTIsNyArMjE0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UmVhZERpcmVjdG9y
eVRhc2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJS
LCAwKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSKTsKICAgICB9
CiAKICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTIyMCwxNCAr
MjIyLDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBkaWRIaXRFcnJvcihGaWxlRXJy
b3IqIGVycm9yKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCksIDAp
OworICAgICAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAogICAgIGJvb2wgZGlkR2V0RW50cnkoRW50cnkqKTsKICAgICBib29sIGRp
ZFJlYWREaXJlY3RvcnlFbnRyaWVzKEVudHJ5QXJyYXkqKTsKIAotICAgIHZvaWQgcmVwb3J0UmVz
dWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgUGFzc1JlZlB0cjxBcnJheTxUeXBl
QnVpbGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+ID4gZW50cmllcykKKyAgICB2b2lkIHJlcG9ydFJl
c3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBhc3NSZWZQdHI8QXJyYXk8VHlw
ZUJ1aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiA+IGVudHJpZXMgPSAwKQogICAgIHsKICAgICAg
ICAgaWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRl
bmQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1Niw3ICsyNTgsNyBAQCB2b2lkIFJlYWRE
aXJlY3RvcnlUYXNrOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KQogICAgIEZpbGVTeXN0ZW1UeXBlIHR5cGU7CiAgICAgU3RyaW5nIHBhdGg7CiAg
ICAgaWYgKCFET01GaWxlU3lzdGVtQmFzZTo6Y3JhY2tGaWxlU3lzdGVtVVJMKG1fdXJsLCB0eXBl
LCBwYXRoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpTWU5UQVhfRVJSLCAw
KTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lOVEFYX0VSUik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTI3MCw3ICsyNzIsNyBAQCB2b2lkIFJlYWREaXJlY3RvcnlU
YXNrOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KQogYm9vbCBSZWFkRGlyZWN0b3J5VGFzazo6ZGlkR2V0RW50cnkoRW50cnkqIGVudHJ5KQogewog
ICAgIGlmICghZW50cnktPmlzRGlyZWN0b3J5KCkpIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZp
bGVFcnJvcjo6VFlQRV9NSVNNQVRDSF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmls
ZUVycm9yOjpUWVBFX01JU01BVENIX0VSUik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IApAQCAtMjgzLDcgKzI4NSw3IEBAIGJvb2wgUmVhZERpcmVjdG9yeVRhc2s6OmRpZEdldEVudHJ5
KEVudHJ5KiBlbnRyeSkKIHZvaWQgUmVhZERpcmVjdG9yeVRhc2s6OnJlYWREaXJlY3RvcnlFbnRy
aWVzKCkKIHsKICAgICBpZiAoIW1fZGlyZWN0b3J5UmVhZGVyLT5maWxlc3lzdGVtKCktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpB
Qk9SVF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMzYsMTIgKzMzOCwxMiBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIH5HZXRNZXRhZGF0YVRhc2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0
UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSLCAwKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZp
bGVFcnJvcjo6QUJPUlRfRVJSKTsKICAgICB9CiAKICAgICBib29sIGRpZEhpdEVycm9yKEZpbGVF
cnJvciogZXJyb3IpCiAgICAgewotICAgICAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSwg
MCk7CisgICAgICAgIHJlcG9ydFJlc3VsdChlcnJvci0+Y29kZSgpKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCkBAIC0zNDksNyArMzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgZGlk
R2V0RW50cnkoRW50cnkqKTsKICAgICBib29sIGRpZEdldE1ldGFkYXRhKE1ldGFkYXRhKik7CiAK
LSAgICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06Ok1ldGFkYXRhPiBtZXRhZGF0YSkKKyAg
ICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBhc3NS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06Ok1ldGFkYXRhPiBtZXRhZGF0YSA9IDApCiAg
ICAgewogICAgICAgICBpZiAoIW1fZnJvbnRlbmRQcm92aWRlciB8fCAhbV9mcm9udGVuZFByb3Zp
ZGVyLT5mcm9udGVuZCgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzg1LDcgKzM4Nyw3IEBA
IHZvaWQgR2V0TWV0YWRhdGFUYXNrOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQogYm9vbCBHZXRNZXRhZGF0YVRhc2s6OmRpZEdldEVudHJ5KEVu
dHJ5KiBlbnRyeSkKIHsKICAgICBpZiAoIWVudHJ5LT5maWxlc3lzdGVtKCktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9F
UlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTQwOSwxNCArNDExLDE0IEBAIGJvb2wgR2V0
TWV0YWRhdGFUYXNrOjpkaWRHZXRNZXRhZGF0YShNZXRhZGF0YSogbWV0YWRhdGEpCiBjbGFzcyBS
ZWFkRmlsZVRhc2sgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUmVhZEZpbGVUYXNrKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZWFk
RmlsZVRhc2s+IGNyZWF0ZShQYXNzUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IGZyb250ZW5kUHJv
dmlkZXIsIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdXJsLCBsb25nIGxvbmcgc3RhcnQs
IGxvbmcgbG9uZyBlbmQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVhZEZpbGVUYXNrPiBjcmVh
dGUoUGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVyLCBpbnQgcmVx
dWVzdElkLCBjb25zdCBTdHJpbmcmIHVybCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5k
LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFJlYWRGaWxlVGFzayhmcm9udGVuZFByb3ZpZGVyLCByZXF1ZXN0SWQsIHVybCwgc3RhcnQs
IGVuZCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlYWRGaWxlVGFzayhmcm9udGVu
ZFByb3ZpZGVyLCByZXF1ZXN0SWQsIHVybCwgc3RhcnQsIGVuZCwgY2hhcnNldCkpOwogICAgIH0K
IAogICAgIHZpcnR1YWwgflJlYWRGaWxlVGFzaygpCiAgICAgewotICAgICAgICByZXBvcnRSZXN1
bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVy
cm9yOjpBQk9SVF9FUlIpOwogICAgIH0KIAogICAgIHZvaWQgc3RhcnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwpAQCAtNDM4LDcgKzQ0MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9v
bCBkaWRIaXRFcnJvcihGaWxlRXJyb3IqIGVycm9yKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVz
dWx0KGVycm9yLT5jb2RlKCksIDApOworICAgICAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUo
KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtNDQ2LDIyICs0NDgsMjMgQEAg
cHJpdmF0ZToKICAgICBib29sIGRpZEdldEZpbGUoRmlsZSopOwogICAgIHZvaWQgZGlkUmVhZCgp
OwogCi0gICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JDb2Rl
LCBjb25zdCBTdHJpbmcqIHJlc3VsdCkKKyAgICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6
OkVycm9yQ29kZSBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyogcmVzdWx0ID0gMCwgYm9vbCBiYXNl
NjRFbmNvZGVkID0gdHJ1ZSwgY29uc3QgU3RyaW5nKiBjaGFyc2V0ID0gMCkKICAgICB7CiAgICAg
ICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250
ZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fZnJvbnRlbmRQcm92aWRlci0+
ZnJvbnRlbmQoKS0+ZmlsZUNvbnRlbnRSZWNlaXZlZChtX3JlcXVlc3RJZCwgc3RhdGljX2Nhc3Q8
aW50PihlcnJvckNvZGUpLCByZXN1bHQpOworICAgICAgICBtX2Zyb250ZW5kUHJvdmlkZXItPmZy
b250ZW5kKCktPmZpbGVDb250ZW50UmVjZWl2ZWQobV9yZXF1ZXN0SWQsIHN0YXRpY19jYXN0PGlu
dD4oZXJyb3JDb2RlKSwgcmVzdWx0LCAmYmFzZTY0RW5jb2RlZCwgY2hhcnNldCk7CiAgICAgICAg
IG1fZnJvbnRlbmRQcm92aWRlciA9IDA7CiAgICAgfQogCi0gICAgUmVhZEZpbGVUYXNrKFBhc3NS
ZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gZnJvbnRlbmRQcm92aWRlciwgaW50IHJlcXVlc3RJZCwg
Y29uc3QgU3RyaW5nJiB1cmwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkKKyAgICBS
ZWFkRmlsZVRhc2soUGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVy
LCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHVybCwgbG9uZyBsb25nIHN0YXJ0LCBsb25n
IGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCiAgICAgICAgIDogRXZlbnRMaXN0ZW5l
cihFdmVudExpc3RlbmVyOjpDUFBFdmVudExpc3RlbmVyVHlwZSkKICAgICAgICAgLCBtX2Zyb250
ZW5kUHJvdmlkZXIoZnJvbnRlbmRQcm92aWRlcikKICAgICAgICAgLCBtX3JlcXVlc3RJZChyZXF1
ZXN0SWQpCiAgICAgICAgICwgbV91cmwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpCiAgICAgICAgICwg
bV9zdGFydChzdGFydCkKICAgICAgICAgLCBtX2VuZChlbmQpCi0gICAgICAgICwgbV9jdXJyZW50
KHN0YXJ0KSB7IH0KKyAgICAgICAgLCBtX2N1cnJlbnQoc3RhcnQpCisgICAgICAgICwgbV9jaGFy
c2V0KGNoYXJzZXQpIHsgfQogCiAgICAgUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRl
bmRQcm92aWRlcjsKICAgICBpbnQgbV9yZXF1ZXN0SWQ7CkBAIC00NjksNiArNDcyLDggQEAgcHJp
dmF0ZToKICAgICBpbnQgbV9zdGFydDsKICAgICBsb25nIGxvbmcgbV9lbmQ7CiAgICAgbG9uZyBs
b25nIG1fY3VycmVudDsKKyAgICBTdHJpbmcgbV9taW1lVHlwZTsKKyAgICBTdHJpbmcgbV9jaGFy
c2V0OwogCiAgICAgUmVmUHRyPEZpbGVSZWFkZXI+IG1fcmVhZGVyOwogfTsKQEAgLTUxNyw2ICs1
MjIsOCBAQCBib29sIFJlYWRGaWxlVGFzazo6ZGlkR2V0RmlsZShGaWxlKiBmaWxlKQogICAgIG1f
cmVhZGVyLT5zZXRPbmxvYWQodGhpcyk7CiAgICAgbV9yZWFkZXItPnNldE9uZXJyb3IodGhpcyk7
CiAKKyAgICBtX21pbWVUeXBlID0gZmlsZS0+dHlwZSgpOworCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgbV9yZWFkZXItPnJlYWRBc0FycmF5QnVmZmVyKGJsb2IuZ2V0KCksIGVjKTsK
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTUyNCw5ICs1MzEsMTkgQEAgYm9vbCBSZWFkRmlsZVRhc2s6
OmRpZEdldEZpbGUoRmlsZSogZmlsZSkKIAogdm9pZCBSZWFkRmlsZVRhc2s6OmRpZFJlYWQoKQog
ewotICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gcmVzdWx0ID0gbV9yZWFkZXItPmFycmF5QnVmZmVy
UmVzdWx0KCk7Ci0gICAgU3RyaW5nIGVuY29kZWRSZXN1bHQgPSBiYXNlNjRFbmNvZGUoc3RhdGlj
X2Nhc3Q8Y2hhcio+KHJlc3VsdC0+ZGF0YSgpKSwgcmVzdWx0LT5ieXRlTGVuZ3RoKCkpOwotICAg
IHJlcG9ydFJlc3VsdChzdGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4oMCksICZlbmNv
ZGVkUmVzdWx0KTsKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IG1fcmVhZGVyLT5h
cnJheUJ1ZmZlclJlc3VsdCgpOworCisgICAgaWYgKCFtX21pbWVUeXBlLnN0YXJ0c1dpdGgoInRl
eHQvIikgJiYgIW1fbWltZVR5cGUuZW5kc1dpdGgoIit4bWwiKSAmJiAhbV9taW1lVHlwZS5lbmRz
V2l0aCgiL2phdmFzY3JpcHQiKSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYmFzZTY0RW5j
b2RlKHN0YXRpY19jYXN0PGNoYXIqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+Ynl0ZUxlbmd0
aCgpKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KHN0YXRpY19jYXN0PEZpbGVFcnJvcjo6RXJyb3JD
b2RlPigwKSwgJnJlc3VsdCwgdHJ1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBS
ZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IFRleHRSZXNvdXJjZURlY29kZXI6
OmNyZWF0ZShtX21pbWVUeXBlLCBtX2NoYXJzZXQsIHRydWUpOworICAgIFN0cmluZyByZXN1bHQg
PSBkZWNvZGVyLT5kZWNvZGUoc3RhdGljX2Nhc3Q8Y2hhcio+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVm
ZmVyLT5ieXRlTGVuZ3RoKCkpOworICAgIHJlc3VsdCArPSBkZWNvZGVyLT5mbHVzaCgpOworICAg
IG1fY2hhcnNldCA9IGRlY29kZXItPmVuY29kaW5nKCkuZG9tTmFtZSgpOworICAgIHJlcG9ydFJl
c3VsdChzdGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4oMCksICZyZXN1bHQsIGZhbHNl
LCAmbV9jaGFyc2V0KTsKIH0KIAogfQpAQCAtNjA3LDcgKzYyNCw3IEBAIHZvaWQgSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50OjpyZXF1ZXN0TWV0YWRhdGEoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25z
dCBTdHJpbmcmCiAgICAgICAgIG1fZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRlbmQoKS0+bWV0YWRh
dGFSZWNlaXZlZCgqcmVxdWVzdElkLCBzdGF0aWNfY2FzdDxpbnQ+KEZpbGVFcnJvcjo6QUJPUlRf
RVJSKSwgMCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpyZXF1ZXN0Rmls
ZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgaW50
KiBzdGFydCwgY29uc3QgaW50KiBlbmQsIGludCogcmVxdWVzdElkKQordm9pZCBJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29udGVudChFcnJvclN0cmluZyogZXJyb3IsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBpbnQqIHN0YXJ0LCBjb25zdCBpbnQqIGVuZCwgY29uc3Qg
U3RyaW5nKiBjaGFyc2V0LCBpbnQqIHJlcXVlc3RJZCkKIHsKICAgICBpZiAoIW1fZW5hYmxlZCB8
fCAhbV9mcm9udGVuZFByb3ZpZGVyKSB7CiAgICAgICAgICplcnJvciA9ICJGaWxlU3lzdGVtIGFn
ZW50IGlzIG5vdCBlbmFibGVkIjsKQEAgLTYxOCw5ICs2MzUsOSBAQCB2b2lkIEluc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250ZW50KEVycm9yU3RyaW5nKiBlcnJvciwgY29u
c3QgU3RyaQogICAgICpyZXF1ZXN0SWQgPSBtX25leHRSZXF1ZXN0SWQrKzsKIAogICAgIGlmIChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEZvck9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyh1
cmwpLmdldCgpKSkKLSAgICAgICAgUmVhZEZpbGVUYXNrOjpjcmVhdGUobV9mcm9udGVuZFByb3Zp
ZGVyLCAqcmVxdWVzdElkLCB1cmwsIHN0YXJ0ID8gKnN0YXJ0IDogMCwgZW5kID8gKmVuZCA6IHN0
ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCkpLT5zdGFydChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KTsKKyAgICAgICAgUmVhZEZpbGVUYXNrOjpjcmVhdGUobV9mcm9udGVuZFByb3Zp
ZGVyLCAqcmVxdWVzdElkLCB1cmwsIHN0YXJ0ID8gKnN0YXJ0IDogMCwgZW5kID8gKmVuZCA6IHN0
ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCksIGNoYXJzZXQgPyAqY2hhcnNldCA6
ICIiKS0+c3RhcnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgZWxzZQotICAgICAgICBt
X2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPmZpbGVDb250ZW50UmVjZWl2ZWQoKnJlcXVl
c3RJZCwgc3RhdGljX2Nhc3Q8aW50PihGaWxlRXJyb3I6OkFCT1JUX0VSUiksIDApOworICAgICAg
ICBtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPmZpbGVDb250ZW50UmVjZWl2ZWQoKnJl
cXVlc3RJZCwgc3RhdGljX2Nhc3Q8aW50PihGaWxlRXJyb3I6OkFCT1JUX0VSUiksIDAsIDAsIDAp
OwogfQogCiB2b2lkIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6c2V0RnJvbnRlbmQoSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCmluZGV4IDBlNTZiMzhmOTkzOTFlOWI4YjczN2Fi
ZDAxYTAxYjY0MWU0ZTlhNzMuLjJlZGNiOWRlMGI5NjE4ZjBhMzg2MzhkYmU4YzhhZDZkZjZlYTFi
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0RmlsZVN5c3RlbVJvb3QoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwg
Y29uc3QgU3RyaW5nJiB0eXBlLCBpbnQqIHJlcXVlc3RJZCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3REaXJlY3RvcnlDb250ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiB1cmwsIGludCogcmVxdWVzdElkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dE1ldGFkYXRhKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCogcmVxdWVzdElk
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZpbGVDb250ZW50KEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGludCogc3RhcnQsIGNvbnN0IGludCogZW5k
LCBpbnQqIHJlcXVlc3RJZCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RGaWxl
Q29udGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBpbnQqIHN0YXJ0
LCBjb25zdCBpbnQqIGVuZCwgY29uc3QgU3RyaW5nKiBjaGFyc2V0LCBpbnQqIHJlcXVlc3RJZCkg
T1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRl
bmQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpIE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lz
dGVtTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0
ZW1Nb2RlbC5qcwppbmRleCA0MTkzOWVlYTI2YjQyZWFjMWQ5Zjk5YjlkZWZjNTg1OGIzYzdlOTY4
Li4zZTZmYmJhMzFmZjM5ZTkwYzdmOGM4YWUwMjk5OTM0NTk0ODRmMTFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcwpA
QCAtMjUwLDExICsyNTAsMTIgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGV9
IGZpbGUKICAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQKICAgICAgKiBAcGFyYW0ge251bWJl
cn0gZW5kCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIsIHN0cmluZz0pfSBjYWxsYmFj
aworICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyc2V0CisgICAgICogQHBhcmFtIHtmdW5jdGlv
bihudW1iZXIsIHN0cmluZz0sIGJvb2xlYW49LCBzdHJpbmc9KX0gY2FsbGJhY2sKICAgICAgKi8K
LSAgICByZXF1ZXN0RmlsZUNvbnRlbnQ6IGZ1bmN0aW9uKGZpbGUsIHN0YXJ0LCBlbmQsIGNhbGxi
YWNrKQorICAgIHJlcXVlc3RGaWxlQ29udGVudDogZnVuY3Rpb24oZmlsZSwgc3RhcnQsIGVuZCwg
Y2hhcnNldCwgY2FsbGJhY2spCiAgICAgewotICAgICAgICB0aGlzLl9hZ2VudFdyYXBwZXIucmVx
dWVzdEZpbGVDb250ZW50KGZpbGUudXJsLCBzdGFydCwgZW5kLCBjYWxsYmFjayk7CisgICAgICAg
IHRoaXMuX2FnZW50V3JhcHBlci5yZXF1ZXN0RmlsZUNvbnRlbnQoZmlsZS51cmwsIHN0YXJ0LCBl
bmQsIGNoYXJzZXQsIGNhbGxiYWNrKTsKICAgICB9CiB9CiAKQEAgLTQyNywxMSArNDI4LDEyIEBA
IFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZS5wcm90b3R5cGUgPSB7CiAgICAgLyoq
CiAgICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0CiAgICAgICogQHBhcmFtIHtudW1iZXJ9IGVu
ZAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFyc2V0CiAgICAgICogQHBhcmFtIHtmdW5jdGlv
bihudW1iZXIsIHN0cmluZz0pfSBjYWxsYmFjawogICAgICAqLwotICAgIHJlcXVlc3RGaWxlQ29u
dGVudDogZnVuY3Rpb24oc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVxdWVzdEZpbGVDb250
ZW50OiBmdW5jdGlvbihzdGFydCwgZW5kLCBjaGFyc2V0LCBjYWxsYmFjaykKICAgICB7Ci0gICAg
ICAgIHRoaXMuZmlsZVN5c3RlbU1vZGVsLnJlcXVlc3RGaWxlQ29udGVudCh0aGlzLCBzdGFydCwg
ZW5kLCBjYWxsYmFjayk7CisgICAgICAgIHRoaXMuZmlsZVN5c3RlbU1vZGVsLnJlcXVlc3RGaWxl
Q29udGVudCh0aGlzLCBzdGFydCwgZW5kLCBjaGFyc2V0LCBjYWxsYmFjayk7CiAgICAgfQogfQog
CkBAIC01NDIsMTIgKzU0NCwxMyBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5h
Z2VyLnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCiAgICAgICogQHBh
cmFtIHtudW1iZXJ9IHN0YXJ0CiAgICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZAotICAgICAqIEBw
YXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBzdHJpbmcpfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBjaGFyc2V0CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIsIHN0cmluZz0s
IGJvb2xlYW49LCBzdHJpbmc9KX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICByZXF1ZXN0RmlsZUNv
bnRlbnQ6IGZ1bmN0aW9uKHVybCwgc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVxdWVzdEZp
bGVDb250ZW50OiBmdW5jdGlvbih1cmwsIHN0YXJ0LCBlbmQsIGNoYXJzZXQsIGNhbGxiYWNrKQog
ICAgIHsKICAgICAgICAgdmFyIHN0b3JlID0gdGhpcy5fcGVuZGluZ0ZpbGVDb250ZW50UmVxdWVz
dHM7Ci0gICAgICAgIEZpbGVTeXN0ZW1BZ2VudC5yZXF1ZXN0RmlsZUNvbnRlbnQodXJsLCBzdGFy
dCwgZW5kLCByZXF1ZXN0QWNjZXB0ZWQpOworICAgICAgICBGaWxlU3lzdGVtQWdlbnQucmVxdWVz
dEZpbGVDb250ZW50KHVybCwgc3RhcnQsIGVuZCwgY2hhcnNldCwgcmVxdWVzdEFjY2VwdGVkKTsK
IAogICAgICAgICBmdW5jdGlvbiByZXF1ZXN0QWNjZXB0ZWQoZXJyb3IsIHJlcXVlc3RJZCkKICAg
ICAgICAgewpAQCAtNTYwLDE0ICs1NjMsMTYgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1SZXF1
ZXN0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtudW1iZXJ9IHJlcXVlc3RJ
ZAogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvckNvZGUKICAgICAgKiBAcGFyYW0ge3N0cmlu
Zz19IGNvbnRlbnQKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBiYXNlNjRFbmNvZGVkCisgICAg
ICogQHBhcmFtIHtzdHJpbmc9fSBjaGFyc2V0CiAgICAgICovCi0gICAgX2ZpbGVDb250ZW50UmVj
ZWl2ZWQ6IGZ1bmN0aW9uKHJlcXVlc3RJZCwgZXJyb3JDb2RlLCBjb250ZW50KQorICAgIF9maWxl
Q29udGVudFJlY2VpdmVkOiBmdW5jdGlvbihyZXF1ZXN0SWQsIGVycm9yQ29kZSwgY29udGVudCwg
YmFzZTY0RW5jb2RlZCwgY2hhcnNldCkKICAgICB7Ci0gICAgICAgIHZhciBjYWxsYmFjayA9IC8q
KiBAdHlwZSB7ZnVuY3Rpb24obnVtYmVyLCBzdHJpbmc9KX0gKi8gdGhpcy5fcGVuZGluZ0ZpbGVD
b250ZW50UmVxdWVzdHNbcmVxdWVzdElkXTsKKyAgICAgICAgdmFyIGNhbGxiYWNrID0gLyoqIEB0
eXBlIHtmdW5jdGlvbihudW1iZXIsIHN0cmluZz0sIGJvb2xlYW49LCBzdHJpbmc9KX0gKi8gdGhp
cy5fcGVuZGluZ0ZpbGVDb250ZW50UmVxdWVzdHNbcmVxdWVzdElkXTsKICAgICAgICAgaWYgKCFj
YWxsYmFjaykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZGVsZXRlIHRoaXMuX3BlbmRp
bmdGaWxlQ29udGVudFJlcXVlc3RzW3JlcXVlc3RJZF07Ci0gICAgICAgIGNhbGxiYWNrKGVycm9y
Q29kZSwgY29udGVudCk7CisgICAgICAgIGNhbGxiYWNrKGVycm9yQ29kZSwgY29udGVudCwgYmFz
ZTY0RW5jb2RlZCwgY2hhcnNldCk7CiAgICAgfQogfQogCkBAIC02MTYsOSArNjIxLDExIEBAIFdl
Ykluc3BlY3Rvci5GaWxlU3lzdGVtRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICogQHBh
cmFtIHtudW1iZXJ9IHJlcXVlc3RJZAogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvckNvZGUK
ICAgICAgKiBAcGFyYW0ge3N0cmluZz19IGNvbnRlbnQKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49
fSBiYXNlNjRFbmNvZGVkCisgICAgICogQHBhcmFtIHtzdHJpbmc9fSBjaGFyc2V0CiAgICAgICov
Ci0gICAgZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rpb24ocmVxdWVzdElkLCBlcnJvckNvZGUs
IGNvbnRlbnQpCisgICAgZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rpb24ocmVxdWVzdElkLCBl
cnJvckNvZGUsIGNvbnRlbnQsIGJhc2U2NEVuY29kZWQsIGNoYXJzZXQpCiAgICAgewotICAgICAg
ICB0aGlzLl9hZ2VudFdyYXBwZXIuX2ZpbGVDb250ZW50UmVjZWl2ZWQocmVxdWVzdElkLCBlcnJv
ckNvZGUsIGNvbnRlbnQpOworICAgICAgICB0aGlzLl9hZ2VudFdyYXBwZXIuX2ZpbGVDb250ZW50
UmVjZWl2ZWQocmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQsIGJhc2U2NEVuY29kZWQsIGNo
YXJzZXQpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNmRmMjcyYzQ2NDA5NWM1MTI3NmU2NjAyYTAxMjcw
NjE5OWZhZTVlLi43Y2M5N2U1ZTZjZjEyYWM4MmMxY2FlZTI0YTIyY2Q3NmY2NGE5NmQ4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDctMDMgIFRhaWp1IFRzdWlraSAgPHR6aWtAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCB0ZXh0IGZpbGUgc3VwcG9ydCBm
b3IgRmlsZVN5c3RlbUFnZW50OjpyZXF1ZXN0RmlsZUNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNDM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxl
c3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRtbDoKKwogMjAxMi0wNy0wMiAgTGVhbmRybyBH
cmFjaWEgR2lsICA8bGVhbmRyb2dyYWNpYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBJbXBsZW1lbnQgYSBMYXlvdXQgVGVzdCBmb3IgZWRpdGluZy9TdXJyb3VuZGluZ1RleHQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0v
cmVhZC1maWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2ZpbGVzeXN0ZW0vcmVhZC1maWxlLWV4cGVjdGVkLnR4dAppbmRleCAwMzg5Nzc0OTgzYTUyYmM4
MDhhMmIwYmU4MDJiYTI4YjUyODUwZTBjLi40M2IwYjJhZTllYmNlMTY1YjhlNDY3NDA3YzU2OTYw
ODc2MmZkNzAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9m
aWxlc3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUtZXhwZWN0ZWQudHh0CkBAIC0xLDUg
KzEsNyBAQAotVGVzdHMgcmVhZEZpbGUuCitUZXN0cyByZXF1ZXN0RmlsZUNvbnRlbnQuCiAKIGVy
cm9yQ29kZSA9IDAKLWNvbnRlbnQgPSAiVUVGVFV3PT0iIFtQQVNTXQorY29udGVudCA9ICJQQVNT
IgorYmFzZTY0RW5jb2RlZCA9IGZhbHNlCitjaGFyc2V0ID0gVVRGLTgKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxl
Lmh0bWwKaW5kZXggMzQzNDFkOGJjNjg2MjM5Y2U4NmRjZTIxZTQ5MmVjOWUyMzBjYzcxYi4uNDBk
ZjhiNjE2NTE3ODI2ZTg3OTdjNGJhM2Q2MTBkYjkyZTBiZTZkOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS5o
dG1sCkBAIC0xOCwyMiArMTgsMjkgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBz
dGVwMigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LndyaXRlRmlsZSgiL2hvZ2UvZnVn
YSIsICJwaVBBU1N5byIsIHN0ZXAzKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC53cml0ZUZpbGUo
Ii9ob2dlL2Z1Z2EudHh0IiwgInBpUEFTU3lvIiwgc3RlcDMpOwogICAgIH0KIAogICAgIGZ1bmN0
aW9uIHN0ZXAzKCkKICAgICB7Ci0gICAgICAgIHJlcXVlc3RNYW5hZ2VyLnJlcXVlc3RGaWxlQ29u
dGVudCgiZmlsZXN5c3RlbTpodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcG9yYXJ5L2hvZ2UvZnVn
YSIsIDIsIDYsIHN0ZXA0KTsKKyAgICAgICAgcmVxdWVzdE1hbmFnZXIucmVxdWVzdEZpbGVDb250
ZW50KCJmaWxlc3lzdGVtOmh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wb3JhcnkvaG9nZS9mdWdh
LnR4dCIsIDIsIDYsICJVVEYtOCIsIHN0ZXA0KTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBzdGVw
NChlcnJvckNvZGUsIGNvbnRlbnQpCisgICAgZnVuY3Rpb24gc3RlcDQoZXJyb3JDb2RlLCBjb250
ZW50LCBiYXNlNjRFbmNvZGVkLCBjaGFyc2V0KQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoImVycm9yQ29kZSA9ICIgKyBlcnJvckNvZGUpOwogICAgICAgICBpZiAoY29u
dGVudCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjb250ZW50ID0gXCIi
ICsgY29udGVudCArICJcIiBbIiArIGF0b2IoY29udGVudCkgKyAiXSIpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNvbnRlbnQgPSBcIiIgKyBjb250ZW50ICsgIlwiIik7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjb250
ZW50ID0gKG51bGwpIik7CiAKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImJhc2U2
NEVuY29kZWQgPSAiICsgYmFzZTY0RW5jb2RlZCk7CisKKyAgICAgICAgaWYgKGNoYXJzZXQpCisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiY2hhcnNldCA9ICIgKyBjaGFyc2V0
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNo
YXJzZXQgPSAobnVsbCkiKTsKKwogICAgICAgICBJbnNwZWN0b3JUZXN0LmNsZWFyRmlsZVN5c3Rl
bShzdGVwNSk7CiAgICAgfQogCkBAIC00NSw2ICs1Miw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxwPlRlc3RzIHJlYWRGaWxlLjwvcD4KKzxwPlRlc3Rz
IHJlcXVlc3RGaWxlQ29udGVudC48L3A+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150735</attachid>
            <date>2012-07-04 01:06:35 -0700</date>
            <delta_ts>2012-07-09 00:29:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90439-20120704170634.patch</filename>
            <type>text/plain</type>
            <size>21769</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTgyNzc5ZGVkMGEzNWZk
ODcxN2M0NzkyNDk3ZDYyZGEzMjFkNzg3NC4uNjg5MjUxZTU2OTliZDY3MjJkNjA1MTQ4NTUxYzcw
YmJkOGI1ZDVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA3LTA0ICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
ZGQgdGV4dCBmaWxlIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDQz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0
ZW1Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90
eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3Rl
bU1vZGVsLkZpbGUucHJvdG90eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3RvdHlwZS5fZmlsZUNvbnRlbnRS
ZWNlaXZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbURpc3BhdGNoZXIucHJv
dG90eXBlLmZpbGVDb250ZW50UmVjZWl2ZWQpOgorCiAyMDEyLTA3LTAzICBFcmlrIEFydmlkc3Nv
biAgPGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBSZW1vdmUgZW5hYmxlRmFzdGVy
RE9NU3RvcmVBY2Nlc3Mgd2hpY2ggaXMgbmV2ZXIgdXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uCmluZGV4IDU5Nzk3YWJmODFjZTRmM2IxOWFhZWU4YTAzMTU3YjFjZTQ2
ZmY2NjYuLjFmNjUyNTExOTUxYTcwMTNjYWFkOWM5N2I1OGVjY2U1NTUxYzJjOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTE0NzcsNyArMTQ3Nyw4IEBACiAg
ICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUg
ZmlsZSB0aGF0IHRoZSBmcm9udGVuZCBpcyByZXF1ZXN0aW5nIHRvIHJlYWQgZnJvbS4iIH0sCiAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhcnQiLCAidHlwZSI6ICJpbnRlZ2VyIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyB0aGUgc3RhcnQgb2Yg
cmFuZ2UgdG8gcmVhZC4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kIiwg
InR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTcGVj
aWZpZXMgdGhlIGVuZCBvZiByYW5nZSB0byByZWFkIGV4Y2x1c2l2ZWx5LiIgfQorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImVuZCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIHRoZSBlbmQgb2YgcmFuZ2UgdG8gcmVh
ZCBleGNsdXNpdmVseS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2hhcnNl
dCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJP
dmVycmlkZXMgY2hhcnNldCBvZiB0aGUgY29udGVudCB3aGVuIGNvbnRlbnQgaXMgc2VydmVkIGFz
IHRleHQuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6
IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0SWQiLCAiJHJlZiI6ICJS
ZXF1ZXN0SWQiLCAiZGVzY3JpcHRpb24iOiAiUmVxdWVzdCBpZGVudGlmaWVyLiBDb3JyZXNwb25k
aW5nIGZpbGVDb250ZW50UmVjZWl2ZWQgZXZlbnQgc2hvdWxkIGhhdmUgc2FtZSByZXF1ZXN0SWQg
d2l0aCB0aGlzLiIgfQpAQCAtMTUxOCw3ICsxNTE5LDkgQEAKICAgICAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0SWQiLCAi
dHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3QgSWRlbnRpZmllciB0aGF0
IHdhcyByZXR1cm5lZCBpbiByZXNwb25zZSB0byB0aGUgY29ycmVzcG9uZGluZyByZXF1ZXN0Rmls
ZUNvbnRlbnQgY29tbWFuZC4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXJy
b3JDb2RlIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICIwLCBpZiBubyBlcnJv
ci4gT3RoZXJ3aXNlLCBlcnJvckNvZGUgaXMgc2V0IHRvIEZpbGVFcnJvcjo6RXJyb3JDb2RlIHZh
bHVlLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbnRhaW5zIGNv
bnRlbnQgb2YgdGhlIGZpbGUgYXMgYmFzZTY0IGVuY29kZWQgc3RyaW5nLiIgfQorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImNvbnRlbnQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGVudCBvZiB0aGUgZmlsZS4iIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFzZTY0RW5jb2RlZCIsICJ0eXBlIjogImJvb2xl
YW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiB0aGUgY29udGVu
dCBpcyBzZXJ2ZWQgYXMgYmFzZTY0IGVuY29kZWQgYmluYXJ5LiIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJjaGFyc2V0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNoYXJzZXQgb2YgdGhlIGNvbnRlbnQgaWYgaXQgaXMgc2Vy
dmVkIGFzIHRleHQuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiQ29tcGxldGlvbiBldmVudCBvZiByZXF1ZXN0RmlsZUNvbnRlbnQgY29tbWFu
ZC4iCiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwCmluZGV4IDg5MDExNzQ2Yjc0NWNiOTYyYmM3ODU0
ZmJhMzkxN2ZkMjI0M2ZhZGMuLjE0OTdhMGRlMjYwNTcxOGIwNjEzNDEyNTRiMTc3OTFjNDZmOTM3
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQuY3BwCkBAIC02MSw2ICs2MSw4IEBACiAjaW5jbHVkZSAiTWV0YWRhdGFDYWxs
YmFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgorI2luY2x1ZGUgIlRl
eHRSZXNvdXJjZURlY29kZXIuaCIKIAogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OkFycmF5
OwogCkBAIC0xMDQsNiArMTA2LDExIEBAIHR5cGVkZWYgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50
OjpGcm9udGVuZFByb3ZpZGVyIEZyb250ZW5kUHJvdmlkZXI7CiAKIG5hbWVzcGFjZSB7CiAKK2Jv
b2wgaXNUZXh0VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQoreworICAgIHJldHVybiBtaW1l
VHlwZS5zdGFydHNXaXRoKCJ0ZXh0LyIpIHx8IG1pbWVUeXBlLmVuZHNXaXRoKCIreG1sIikgfHwg
bWltZVR5cGUuZW5kc1dpdGgoIi9qYXZhc2NyaXB0Iik7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1l
IEJhc2VDYWxsYmFjaywgdHlwZW5hbWUgSGFuZGxlciwgdHlwZW5hbWUgQXJndW1lbnQ+CiBjbGFz
cyBDYWxsYmFja0Rpc3BhdGNoZXIgOiBwdWJsaWMgQmFzZUNhbGxiYWNrIHsKIHB1YmxpYzoKQEAg
LTE1Miw3ICsxNTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmlsZUVycm9y
Kik7CiAgICAgYm9vbCBkaWRHZXRFbnRyeShFbnRyeSopOwogCi0gICAgdm9pZCByZXBvcnRSZXN1
bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JDb2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVy
OjpGaWxlU3lzdGVtOjpFbnRyeT4gZW50cnkpCisgICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVy
cm9yOjpFcnJvckNvZGUgZXJyb3JDb2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lz
dGVtOjpFbnRyeT4gZW50cnkgPSAwKQogICAgIHsKICAgICAgICAgaWYgKCFtX2Zyb250ZW5kUHJv
dmlkZXIgfHwgIW1fZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRlbmQoKSkKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTE3Miw3ICsxNzksNyBAQCBwcml2YXRlOgogCiBib29sIEdldEZpbGVTeXN0ZW1S
b290VGFzazo6ZGlkSGl0RXJyb3IoRmlsZUVycm9yKiBlcnJvcikKIHsKLSAgICByZXBvcnRSZXN1
bHQoZXJyb3ItPmNvZGUoKSwgMCk7CisgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xODQsNyArMTkxLDcgQEAgdm9pZCBHZXRGaWxlU3lz
dGVtUm9vdFRhc2s6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQKICAgICBlbHNlIGlmIChtX3R5cGUgPT0gRE9NRmlsZVN5c3RlbUJhc2U6OnRlbXBv
cmFyeVBhdGhQcmVmaXgpCiAgICAgICAgIHR5cGUgPSBGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeTsK
ICAgICBlbHNlIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lOVEFYX0VSUiwg
MCk7CisgICAgICAgIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OlNZTlRBWF9FUlIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0yMTIsNyArMjE5LDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB+UmVhZERpcmVjdG9yeVRhc2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZp
bGVFcnJvcjo6QUJPUlRfRVJSLCAwKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6
QUJPUlRfRVJSKTsKICAgICB9CiAKICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKQEAgLTIyMCwxNCArMjI3LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBk
aWRIaXRFcnJvcihGaWxlRXJyb3IqIGVycm9yKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0
KGVycm9yLT5jb2RlKCksIDApOworICAgICAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGJvb2wgZGlkR2V0RW50cnkoRW50
cnkqKTsKICAgICBib29sIGRpZFJlYWREaXJlY3RvcnlFbnRyaWVzKEVudHJ5QXJyYXkqKTsKIAot
ICAgIHZvaWQgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgUGFz
c1JlZlB0cjxBcnJheTxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+ID4gZW50cmllcykK
KyAgICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBh
c3NSZWZQdHI8QXJyYXk8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiA+IGVudHJpZXMg
PSAwKQogICAgIHsKICAgICAgICAgaWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRl
bmRQcm92aWRlci0+ZnJvbnRlbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1Niw3ICsy
NjMsNyBAQCB2b2lkIFJlYWREaXJlY3RvcnlUYXNrOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgIEZpbGVTeXN0ZW1UeXBlIHR5cGU7CiAg
ICAgU3RyaW5nIHBhdGg7CiAgICAgaWYgKCFET01GaWxlU3lzdGVtQmFzZTo6Y3JhY2tGaWxlU3lz
dGVtVVJMKG1fdXJsLCB0eXBlLCBwYXRoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVy
cm9yOjpTWU5UQVhfRVJSLCAwKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lO
VEFYX0VSUik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI3MCw3ICsyNzcsNyBAQCB2
b2lkIFJlYWREaXJlY3RvcnlUYXNrOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQogYm9vbCBSZWFkRGlyZWN0b3J5VGFzazo6ZGlkR2V0RW50cnko
RW50cnkqIGVudHJ5KQogewogICAgIGlmICghZW50cnktPmlzRGlyZWN0b3J5KCkpIHsKLSAgICAg
ICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6VFlQRV9NSVNNQVRDSF9FUlIsIDApOworICAgICAg
ICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpUWVBFX01JU01BVENIX0VSUik7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIApAQCAtMjgzLDcgKzI5MCw3IEBAIGJvb2wgUmVhZERpcmVjdG9y
eVRhc2s6OmRpZEdldEVudHJ5KEVudHJ5KiBlbnRyeSkKIHZvaWQgUmVhZERpcmVjdG9yeVRhc2s6
OnJlYWREaXJlY3RvcnlFbnRyaWVzKCkKIHsKICAgICBpZiAoIW1fZGlyZWN0b3J5UmVhZGVyLT5m
aWxlc3lzdGVtKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgewotICAgICAgICByZXBvcnRS
ZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmls
ZUVycm9yOjpBQk9SVF9FUlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMzYsMTIg
KzM0MywxMiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5HZXRNZXRhZGF0YVRhc2soKQogICAg
IHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSLCAwKTsKKyAgICAg
ICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSKTsKICAgICB9CiAKICAgICBib29s
IGRpZEhpdEVycm9yKEZpbGVFcnJvciogZXJyb3IpCiAgICAgewotICAgICAgICByZXBvcnRSZXN1
bHQoZXJyb3ItPmNvZGUoKSwgMCk7CisgICAgICAgIHJlcG9ydFJlc3VsdChlcnJvci0+Y29kZSgp
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zNDksNyArMzU2LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgZGlkR2V0RW50cnkoRW50cnkqKTsKICAgICBib29sIGRpZEdldE1ldGFk
YXRhKE1ldGFkYXRhKik7CiAKLSAgICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkVycm9y
Q29kZSBlcnJvckNvZGUsIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06Ok1ldGFk
YXRhPiBtZXRhZGF0YSkKKyAgICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29k
ZSBlcnJvckNvZGUsIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06Ok1ldGFkYXRh
PiBtZXRhZGF0YSA9IDApCiAgICAgewogICAgICAgICBpZiAoIW1fZnJvbnRlbmRQcm92aWRlciB8
fCAhbV9mcm9udGVuZFByb3ZpZGVyLT5mcm9udGVuZCgpKQogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMzg1LDcgKzM5Miw3IEBAIHZvaWQgR2V0TWV0YWRhdGFUYXNrOjpzdGFydChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogYm9vbCBHZXRNZXRhZGF0YVRh
c2s6OmRpZEdldEVudHJ5KEVudHJ5KiBlbnRyeSkKIHsKICAgICBpZiAoIWVudHJ5LT5maWxlc3lz
dGVtKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQo
RmlsZUVycm9yOjpBQk9SVF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9y
OjpBQk9SVF9FUlIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTQwNywxNCAr
NDE0LDE0IEBAIGJvb2wgR2V0TWV0YWRhdGFUYXNrOjpkaWRHZXRNZXRhZGF0YShNZXRhZGF0YSog
bWV0YWRhdGEpCiBjbGFzcyBSZWFkRmlsZVRhc2sgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVhZEZpbGVUYXNrKTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxSZWFkRmlsZVRhc2s+IGNyZWF0ZShQYXNzUmVmUHRyPEZyb250ZW5kUHJv
dmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdXJs
LCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVhZEZpbGVUYXNrPiBjcmVhdGUoUGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVu
ZFByb3ZpZGVyLCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHVybCwgbG9uZyBsb25nIHN0
YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFJlYWRGaWxlVGFzayhmcm9udGVuZFByb3ZpZGVyLCByZXF1
ZXN0SWQsIHVybCwgc3RhcnQsIGVuZCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJl
YWRGaWxlVGFzayhmcm9udGVuZFByb3ZpZGVyLCByZXF1ZXN0SWQsIHVybCwgc3RhcnQsIGVuZCwg
Y2hhcnNldCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgflJlYWRGaWxlVGFzaygpCiAgICAgewot
ICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIsIDApOworICAgICAgICBy
ZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIpOwogICAgIH0KIAogICAgIHZvaWQgc3Rh
cnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpAQCAtNDM2LDcgKzQ0Myw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgYm9vbCBkaWRIaXRFcnJvcihGaWxlRXJyb3IqIGVycm9yKQogICAgIHsK
LSAgICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCksIDApOworICAgICAgICByZXBvcnRS
ZXN1bHQoZXJyb3ItPmNvZGUoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAt
NDQ0LDI3ICs0NTEsMzIgQEAgcHJpdmF0ZToKICAgICBib29sIGRpZEdldEZpbGUoRmlsZSopOwog
ICAgIHZvaWQgZGlkUmVhZCgpOwogCi0gICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpF
cnJvckNvZGUgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcqIHJlc3VsdCkKKyAgICB2b2lkIHJlcG9y
dFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyogcmVz
dWx0ID0gMCwgYm9vbCBiYXNlNjRFbmNvZGVkID0gdHJ1ZSwgY29uc3QgU3RyaW5nKiBjaGFyc2V0
ID0gMCkKICAgICB7CiAgICAgICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250
ZW5kUHJvdmlkZXItPmZyb250ZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1f
ZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRlbmQoKS0+ZmlsZUNvbnRlbnRSZWNlaXZlZChtX3JlcXVl
c3RJZCwgc3RhdGljX2Nhc3Q8aW50PihlcnJvckNvZGUpLCByZXN1bHQpOworICAgICAgICBtX2Zy
b250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPmZpbGVDb250ZW50UmVjZWl2ZWQobV9yZXF1ZXN0
SWQsIHN0YXRpY19jYXN0PGludD4oZXJyb3JDb2RlKSwgcmVzdWx0LCAmYmFzZTY0RW5jb2RlZCwg
Y2hhcnNldCk7CiAgICAgICAgIG1fZnJvbnRlbmRQcm92aWRlciA9IDA7CiAgICAgfQogCi0gICAg
UmVhZEZpbGVUYXNrKFBhc3NSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gZnJvbnRlbmRQcm92aWRl
ciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGxvbmcgbG9uZyBzdGFydCwgbG9u
ZyBsb25nIGVuZCkKKyAgICBSZWFkRmlsZVRhc2soUGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVy
PiBmcm9udGVuZFByb3ZpZGVyLCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHVybCwgbG9u
ZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCiAgICAg
ICAgIDogRXZlbnRMaXN0ZW5lcihFdmVudExpc3RlbmVyOjpDUFBFdmVudExpc3RlbmVyVHlwZSkK
ICAgICAgICAgLCBtX2Zyb250ZW5kUHJvdmlkZXIoZnJvbnRlbmRQcm92aWRlcikKICAgICAgICAg
LCBtX3JlcXVlc3RJZChyZXF1ZXN0SWQpCiAgICAgICAgICwgbV91cmwoUGFyc2VkVVJMU3RyaW5n
LCB1cmwpCiAgICAgICAgICwgbV9zdGFydChzdGFydCkKLSAgICAgICAgLCBtX2VuZChlbmQpIHsg
fQorICAgICAgICAsIG1fZW5kKGVuZCkKKyAgICAgICAgLCBtX2N1cnJlbnQoc3RhcnQpCisgICAg
ICAgICwgbV9jaGFyc2V0KGNoYXJzZXQpIHsgfQogCiAgICAgUmVmUHRyPEZyb250ZW5kUHJvdmlk
ZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsKICAgICBpbnQgbV9yZXF1ZXN0SWQ7CiAgICAgS1VSTCBt
X3VybDsKICAgICBpbnQgbV9zdGFydDsKICAgICBsb25nIGxvbmcgbV9lbmQ7CisgICAgbG9uZyBs
b25nIG1fY3VycmVudDsKKyAgICBTdHJpbmcgbV9taW1lVHlwZTsKKyAgICBTdHJpbmcgbV9jaGFy
c2V0OwogCiAgICAgUmVmUHRyPEZpbGVSZWFkZXI+IG1fcmVhZGVyOwogfTsKQEAgLTUwNCw2ICs1
MTYsOCBAQCBib29sIFJlYWRGaWxlVGFzazo6ZGlkR2V0RW50cnkoRW50cnkqIGVudHJ5KQogICAg
IHN0YXRpY19jYXN0PEZpbGVFbnRyeSo+KGVudHJ5KS0+ZmlsZShzdWNjZXNzQ2FsbGJhY2ssIGVy
cm9yQ2FsbGJhY2spOwogCiAgICAgbV9yZWFkZXIgPSBGaWxlUmVhZGVyOjpjcmVhdGUoZW50cnkt
PmZpbGVzeXN0ZW0oKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBtX21pbWVUeXBl
ID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGVudHJ5LT5uYW1lKCkpOwor
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTUyMCw5ICs1MzQsMTkgQEAgYm9vbCBSZWFkRmls
ZVRhc2s6OmRpZEdldEZpbGUoRmlsZSogZmlsZSkKIAogdm9pZCBSZWFkRmlsZVRhc2s6OmRpZFJl
YWQoKQogewotICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gcmVzdWx0ID0gbV9yZWFkZXItPmFycmF5
QnVmZmVyUmVzdWx0KCk7Ci0gICAgU3RyaW5nIGVuY29kZWRSZXN1bHQgPSBiYXNlNjRFbmNvZGUo
c3RhdGljX2Nhc3Q8Y2hhcio+KHJlc3VsdC0+ZGF0YSgpKSwgcmVzdWx0LT5ieXRlTGVuZ3RoKCkp
OwotICAgIHJlcG9ydFJlc3VsdChzdGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4oMCks
ICZlbmNvZGVkUmVzdWx0KTsKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IG1fcmVh
ZGVyLT5hcnJheUJ1ZmZlclJlc3VsdCgpOworCisgICAgaWYgKCFpc1RleHRUeXBlKG1fbWltZVR5
cGUpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBiYXNlNjRFbmNvZGUoc3RhdGljX2Nhc3Q8
Y2hhcio+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkpOworICAgICAgICBy
ZXBvcnRSZXN1bHQoc3RhdGljX2Nhc3Q8RmlsZUVycm9yOjpFcnJvckNvZGU+KDApLCAmcmVzdWx0
LCB0cnVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxUZXh0UmVzb3Vy
Y2VEZWNvZGVyPiBkZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKG1fbWltZVR5
cGUsIG1fY2hhcnNldCwgdHJ1ZSk7CisgICAgU3RyaW5nIHJlc3VsdCA9IGRlY29kZXItPmRlY29k
ZShzdGF0aWNfY2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmJ5dGVMZW5ndGgo
KSk7CisgICAgcmVzdWx0ICs9IGRlY29kZXItPmZsdXNoKCk7CisgICAgbV9jaGFyc2V0ID0gZGVj
b2Rlci0+ZW5jb2RpbmcoKS5kb21OYW1lKCk7CisgICAgcmVwb3J0UmVzdWx0KHN0YXRpY19jYXN0
PEZpbGVFcnJvcjo6RXJyb3JDb2RlPigwKSwgJnJlc3VsdCwgZmFsc2UsICZtX2NoYXJzZXQpOwog
fQogCiB9CkBAIC02MDMsNyArNjI3LDcgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6
OnJlcXVlc3RNZXRhZGF0YShFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYKICAgICAg
ICAgbV9mcm9udGVuZFByb3ZpZGVyLT5mcm9udGVuZCgpLT5tZXRhZGF0YVJlY2VpdmVkKCpyZXF1
ZXN0SWQsIHN0YXRpY19jYXN0PGludD4oRmlsZUVycm9yOjpBQk9SVF9FUlIpLCAwKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29udGVudChFcnJvclN0
cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBpbnQqIHN0YXJ0LCBjb25zdCBp
bnQqIGVuZCwgaW50KiByZXF1ZXN0SWQpCit2b2lkIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6
cmVxdWVzdEZpbGVDb250ZW50KEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IGludCogc3RhcnQsIGNvbnN0IGludCogZW5kLCBjb25zdCBTdHJpbmcqIGNoYXJzZXQs
IGludCogcmVxdWVzdElkKQogewogICAgIGlmICghbV9lbmFibGVkIHx8ICFtX2Zyb250ZW5kUHJv
dmlkZXIpIHsKICAgICAgICAgKmVycm9yID0gIkZpbGVTeXN0ZW0gYWdlbnQgaXMgbm90IGVuYWJs
ZWQiOwpAQCAtNjE0LDkgKzYzOCw5IEBAIHZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50Ojpy
ZXF1ZXN0RmlsZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpCiAgICAgKnJl
cXVlc3RJZCA9IG1fbmV4dFJlcXVlc3RJZCsrOwogCiAgICAgaWYgKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0Rm9y
T3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHVybCkuZ2V0KCkpKQotICAg
ICAgICBSZWFkRmlsZVRhc2s6OmNyZWF0ZShtX2Zyb250ZW5kUHJvdmlkZXIsICpyZXF1ZXN0SWQs
IHVybCwgc3RhcnQgPyAqc3RhcnQgOiAwLCBlbmQgPyAqZW5kIDogc3RkOjpudW1lcmljX2xpbWl0
czxsb25nIGxvbmc+OjptYXgoKSktPnN0YXJ0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAg
ICAgICBSZWFkRmlsZVRhc2s6OmNyZWF0ZShtX2Zyb250ZW5kUHJvdmlkZXIsICpyZXF1ZXN0SWQs
IHVybCwgc3RhcnQgPyAqc3RhcnQgOiAwLCBlbmQgPyAqZW5kIDogc3RkOjpudW1lcmljX2xpbWl0
czxsb25nIGxvbmc+OjptYXgoKSwgY2hhcnNldCA/ICpjaGFyc2V0IDogIiIpLT5zdGFydChzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBlbHNlCi0gICAgICAgIG1fZnJvbnRlbmRQcm92aWRl
ci0+ZnJvbnRlbmQoKS0+ZmlsZUNvbnRlbnRSZWNlaXZlZCgqcmVxdWVzdElkLCBzdGF0aWNfY2Fz
dDxpbnQ+KEZpbGVFcnJvcjo6QUJPUlRfRVJSKSwgMCk7CisgICAgICAgIG1fZnJvbnRlbmRQcm92
aWRlci0+ZnJvbnRlbmQoKS0+ZmlsZUNvbnRlbnRSZWNlaXZlZCgqcmVxdWVzdElkLCBzdGF0aWNf
Y2FzdDxpbnQ+KEZpbGVFcnJvcjo6QUJPUlRfRVJSKSwgMCwgMCwgMCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50LmgKaW5kZXggMGU1NmIzOGY5OTM5MWU5YjhiNzM3YWJkMDFhMDFiNjQxZTRlOWE3
My4uMmVkY2I5ZGUwYjk2MThmMGEzODYzOGRiZThjOGFkNmRmNmVhMWIxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaApAQCAt
NjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RGaWxlU3lzdGVt
Um9vdChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIHR5
cGUsIGludCogcmVxdWVzdElkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERp
cmVjdG9yeUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50KiByZXF1
ZXN0SWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0TWV0YWRhdGEoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50KiByZXF1ZXN0SWQpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0RmlsZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgaW50KiBzdGFydCwgY29uc3QgaW50KiBlbmQsIGludCogcmVxdWVzdElk
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZpbGVDb250ZW50KEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGludCogc3RhcnQsIGNvbnN0IGludCogZW5k
LCBjb25zdCBTdHJpbmcqIGNoYXJzZXQsIGludCogcmVxdWVzdElkKSBPVkVSUklERTsKIAogICAg
IHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCmluZGV4
IDQxOTM5ZWVhMjZiNDJlYWMxZDlmOTliOWRlZmM1ODU4YjNjN2U5NjguLjNlNmZiYmEzMWZmMzll
OTBjN2Y4YzhhZTAyOTk5MzQ1OTQ4NGYxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCkBAIC0yNTAsMTEgKzI1MCwx
MiBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZX0gZmlsZQogICAgICAqIEBw
YXJhbSB7bnVtYmVyfSBzdGFydAogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQKLSAgICAgKiBA
cGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5nPSl9IGNhbGxiYWNrCisgICAgICogQHBhcmFt
IHtzdHJpbmd9IGNoYXJzZXQKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5n
PSwgYm9vbGVhbj0sIHN0cmluZz0pfSBjYWxsYmFjawogICAgICAqLwotICAgIHJlcXVlc3RGaWxl
Q29udGVudDogZnVuY3Rpb24oZmlsZSwgc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVxdWVz
dEZpbGVDb250ZW50OiBmdW5jdGlvbihmaWxlLCBzdGFydCwgZW5kLCBjaGFyc2V0LCBjYWxsYmFj
aykKICAgICB7Ci0gICAgICAgIHRoaXMuX2FnZW50V3JhcHBlci5yZXF1ZXN0RmlsZUNvbnRlbnQo
ZmlsZS51cmwsIHN0YXJ0LCBlbmQsIGNhbGxiYWNrKTsKKyAgICAgICAgdGhpcy5fYWdlbnRXcmFw
cGVyLnJlcXVlc3RGaWxlQ29udGVudChmaWxlLnVybCwgc3RhcnQsIGVuZCwgY2hhcnNldCwgY2Fs
bGJhY2spOwogICAgIH0KIH0KIApAQCAtNDI3LDExICs0MjgsMTIgQEAgV2ViSW5zcGVjdG9yLkZp
bGVTeXN0ZW1Nb2RlbC5GaWxlLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0g
e251bWJlcn0gc3RhcnQKICAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kCisgICAgICogQHBhcmFt
IHtzdHJpbmd9IGNoYXJzZXQKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5n
PSl9IGNhbGxiYWNrCiAgICAgICovCi0gICAgcmVxdWVzdEZpbGVDb250ZW50OiBmdW5jdGlvbihz
dGFydCwgZW5kLCBjYWxsYmFjaykKKyAgICByZXF1ZXN0RmlsZUNvbnRlbnQ6IGZ1bmN0aW9uKHN0
YXJ0LCBlbmQsIGNoYXJzZXQsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdGhpcy5maWxlU3lz
dGVtTW9kZWwucmVxdWVzdEZpbGVDb250ZW50KHRoaXMsIHN0YXJ0LCBlbmQsIGNhbGxiYWNrKTsK
KyAgICAgICAgdGhpcy5maWxlU3lzdGVtTW9kZWwucmVxdWVzdEZpbGVDb250ZW50KHRoaXMsIHN0
YXJ0LCBlbmQsIGNoYXJzZXQsIGNhbGxiYWNrKTsKICAgICB9CiB9CiAKQEAgLTU0MiwxMiArNTQ0
LDEzIEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtUmVxdWVzdE1hbmFnZXIucHJvdG90eXBlID0g
ewogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAgICAgKiBAcGFyYW0ge251bWJlcn0gc3Rh
cnQKICAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbihu
dW1iZXIsIHN0cmluZyl9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXJzZXQK
KyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5nPSwgYm9vbGVhbj0sIHN0cmlu
Zz0pfSBjYWxsYmFjawogICAgICAqLwotICAgIHJlcXVlc3RGaWxlQ29udGVudDogZnVuY3Rpb24o
dXJsLCBzdGFydCwgZW5kLCBjYWxsYmFjaykKKyAgICByZXF1ZXN0RmlsZUNvbnRlbnQ6IGZ1bmN0
aW9uKHVybCwgc3RhcnQsIGVuZCwgY2hhcnNldCwgY2FsbGJhY2spCiAgICAgewogICAgICAgICB2
YXIgc3RvcmUgPSB0aGlzLl9wZW5kaW5nRmlsZUNvbnRlbnRSZXF1ZXN0czsKLSAgICAgICAgRmls
ZVN5c3RlbUFnZW50LnJlcXVlc3RGaWxlQ29udGVudCh1cmwsIHN0YXJ0LCBlbmQsIHJlcXVlc3RB
Y2NlcHRlZCk7CisgICAgICAgIEZpbGVTeXN0ZW1BZ2VudC5yZXF1ZXN0RmlsZUNvbnRlbnQodXJs
LCBzdGFydCwgZW5kLCBjaGFyc2V0LCByZXF1ZXN0QWNjZXB0ZWQpOwogCiAgICAgICAgIGZ1bmN0
aW9uIHJlcXVlc3RBY2NlcHRlZChlcnJvciwgcmVxdWVzdElkKQogICAgICAgICB7CkBAIC01NjAs
MTQgKzU2MywxNiBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3Rv
dHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVxdWVzdElkCiAgICAgICogQHBhcmFt
IHtudW1iZXJ9IGVycm9yQ29kZQogICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gY29udGVudAorICAg
ICAqIEBwYXJhbSB7Ym9vbGVhbj19IGJhc2U2NEVuY29kZWQKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Zz19IGNoYXJzZXQKICAgICAgKi8KLSAgICBfZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rpb24o
cmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQpCisgICAgX2ZpbGVDb250ZW50UmVjZWl2ZWQ6
IGZ1bmN0aW9uKHJlcXVlc3RJZCwgZXJyb3JDb2RlLCBjb250ZW50LCBiYXNlNjRFbmNvZGVkLCBj
aGFyc2V0KQogICAgIHsKLSAgICAgICAgdmFyIGNhbGxiYWNrID0gLyoqIEB0eXBlIHtmdW5jdGlv
bihudW1iZXIsIHN0cmluZz0pfSAqLyB0aGlzLl9wZW5kaW5nRmlsZUNvbnRlbnRSZXF1ZXN0c1ty
ZXF1ZXN0SWRdOworICAgICAgICB2YXIgY2FsbGJhY2sgPSAvKiogQHR5cGUge2Z1bmN0aW9uKG51
bWJlciwgc3RyaW5nPSwgYm9vbGVhbj0sIHN0cmluZz0pfSAqLyB0aGlzLl9wZW5kaW5nRmlsZUNv
bnRlbnRSZXF1ZXN0c1tyZXF1ZXN0SWRdOwogICAgICAgICBpZiAoIWNhbGxiYWNrKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBkZWxldGUgdGhpcy5fcGVuZGluZ0ZpbGVDb250ZW50UmVx
dWVzdHNbcmVxdWVzdElkXTsKLSAgICAgICAgY2FsbGJhY2soZXJyb3JDb2RlLCBjb250ZW50KTsK
KyAgICAgICAgY2FsbGJhY2soZXJyb3JDb2RlLCBjb250ZW50LCBiYXNlNjRFbmNvZGVkLCBjaGFy
c2V0KTsKICAgICB9CiB9CiAKQEAgLTYxNiw5ICs2MjEsMTEgQEAgV2ViSW5zcGVjdG9yLkZpbGVT
eXN0ZW1EaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVx
dWVzdElkCiAgICAgICogQHBhcmFtIHtudW1iZXJ9IGVycm9yQ29kZQogICAgICAqIEBwYXJhbSB7
c3RyaW5nPX0gY29udGVudAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGJhc2U2NEVuY29kZWQK
KyAgICAgKiBAcGFyYW0ge3N0cmluZz19IGNoYXJzZXQKICAgICAgKi8KLSAgICBmaWxlQ29udGVu
dFJlY2VpdmVkOiBmdW5jdGlvbihyZXF1ZXN0SWQsIGVycm9yQ29kZSwgY29udGVudCkKKyAgICBm
aWxlQ29udGVudFJlY2VpdmVkOiBmdW5jdGlvbihyZXF1ZXN0SWQsIGVycm9yQ29kZSwgY29udGVu
dCwgYmFzZTY0RW5jb2RlZCwgY2hhcnNldCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2FnZW50V3Jh
cHBlci5fZmlsZUNvbnRlbnRSZWNlaXZlZChyZXF1ZXN0SWQsIGVycm9yQ29kZSwgY29udGVudCk7
CisgICAgICAgIHRoaXMuX2FnZW50V3JhcHBlci5fZmlsZUNvbnRlbnRSZWNlaXZlZChyZXF1ZXN0
SWQsIGVycm9yQ29kZSwgY29udGVudCwgYmFzZTY0RW5jb2RlZCwgY2hhcnNldCk7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGIzYmM2YTYzYzFkZjExMWQ0ZGIxODRlMGI4OGVhMTM2MTE5MjZkNDMuLjUzYTU3
OTNmMmFhNTgwMjk3N2JjNTU2ZDgzMWE5MWFmNDVjZDEyOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMi0wNy0wNCAgVGFpanUgVHN1aWtpICA8dHppa0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogQWRkIHRleHQgZmlsZSBzdXBwb3J0IGZvciBGaWxlU3lzdGVtQWdl
bnQ6OnJlcXVlc3RGaWxlQ29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTA0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxl
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVt
L3JlYWQtZmlsZS5odG1sOgorCiAyMDEyLTA3LTAzICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBQYXJhbWV0ZXIgJ2lkJyBpcyBub3QgdXNlZCBpbiBnZXRVc2Vy
TW9kaWZ5UHJvcGVydHkoKSBvZiBmYXN0L2RvbS9zaGFkb3cvdXNlci1tb2RpZnktaW5oZXJpdGFu
Y2UuaHRtbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Zp
bGVzeXN0ZW0vcmVhZC1maWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxlLWV4cGVjdGVkLnR4dAppbmRleCAwMzg5Nzc0
OTgzYTUyYmM4MDhhMmIwYmU4MDJiYTI4YjUyODUwZTBjLi40M2IwYjJhZTllYmNlMTY1YjhlNDY3
NDA3YzU2OTYwODc2MmZkNzAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUtZXhwZWN0ZWQudHh0
CkBAIC0xLDUgKzEsNyBAQAotVGVzdHMgcmVhZEZpbGUuCitUZXN0cyByZXF1ZXN0RmlsZUNvbnRl
bnQuCiAKIGVycm9yQ29kZSA9IDAKLWNvbnRlbnQgPSAiVUVGVFV3PT0iIFtQQVNTXQorY29udGVu
dCA9ICJQQVNTIgorYmFzZTY0RW5jb2RlZCA9IGZhbHNlCitjaGFyc2V0ID0gVVRGLTgKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFk
LWZpbGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0v
cmVhZC1maWxlLmh0bWwKaW5kZXggMzQzNDFkOGJjNjg2MjM5Y2U4NmRjZTIxZTQ5MmVjOWUyMzBj
YzcxYi4uNDBkZjhiNjE2NTE3ODI2ZTg3OTdjNGJhM2Q2MTBkYjkyZTBiZTZkOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3Jl
YWQtZmlsZS5odG1sCkBAIC0xOCwyMiArMTgsMjkgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBm
dW5jdGlvbiBzdGVwMigpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LndyaXRlRmlsZSgi
L2hvZ2UvZnVnYSIsICJwaVBBU1N5byIsIHN0ZXAzKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC53
cml0ZUZpbGUoIi9ob2dlL2Z1Z2EudHh0IiwgInBpUEFTU3lvIiwgc3RlcDMpOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIHN0ZXAzKCkKICAgICB7Ci0gICAgICAgIHJlcXVlc3RNYW5hZ2VyLnJlcXVl
c3RGaWxlQ29udGVudCgiZmlsZXN5c3RlbTpodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcG9yYXJ5
L2hvZ2UvZnVnYSIsIDIsIDYsIHN0ZXA0KTsKKyAgICAgICAgcmVxdWVzdE1hbmFnZXIucmVxdWVz
dEZpbGVDb250ZW50KCJmaWxlc3lzdGVtOmh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wb3Jhcnkv
aG9nZS9mdWdhLnR4dCIsIDIsIDYsICJVVEYtOCIsIHN0ZXA0KTsKICAgICB9CiAKLSAgICBmdW5j
dGlvbiBzdGVwNChlcnJvckNvZGUsIGNvbnRlbnQpCisgICAgZnVuY3Rpb24gc3RlcDQoZXJyb3JD
b2RlLCBjb250ZW50LCBiYXNlNjRFbmNvZGVkLCBjaGFyc2V0KQogICAgIHsKICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yQ29kZSA9ICIgKyBlcnJvckNvZGUpOwogICAgICAg
ICBpZiAoY29udGVudCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjb250
ZW50ID0gXCIiICsgY29udGVudCArICJcIiBbIiArIGF0b2IoY29udGVudCkgKyAiXSIpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNvbnRlbnQgPSBcIiIgKyBjb250ZW50
ICsgIlwiIik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJjb250ZW50ID0gKG51bGwpIik7CiAKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoImJhc2U2NEVuY29kZWQgPSAiICsgYmFzZTY0RW5jb2RlZCk7CisKKyAgICAgICAgaWYgKGNo
YXJzZXQpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiY2hhcnNldCA9ICIg
KyBjaGFyc2V0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoImNoYXJzZXQgPSAobnVsbCkiKTsKKwogICAgICAgICBJbnNwZWN0b3JUZXN0LmNsZWFy
RmlsZVN5c3RlbShzdGVwNSk7CiAgICAgfQogCkBAIC00NSw2ICs1Miw2IEBAIGZ1bmN0aW9uIHRl
c3QoKQogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxwPlRlc3RzIHJlYWRGaWxlLjwvcD4K
KzxwPlRlc3RzIHJlcXVlc3RGaWxlQ29udGVudC48L3A+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151197</attachid>
            <date>2012-07-09 00:29:10 -0700</date>
            <delta_ts>2012-07-09 00:49:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90439-20120709162909.patch</filename>
            <type>text/plain</type>
            <size>24861</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUyNWNkNmEzOGZjNzc2
ZjBlODRmNzQ4MDVkZGY4MjQwMDMwMzRiOC4uYmYwYzgxMDhmMTNlMDNlYThiZjg0NDhhOTQ4YmNm
M2U0NTBlYTkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA3LTA5ICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
ZGQgdGV4dCBmaWxlIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDQz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0
ZW1Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90
eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3Rl
bU1vZGVsLkZpbGUucHJvdG90eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3RvdHlwZS5fZmlsZUNvbnRlbnRS
ZWNlaXZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbURpc3BhdGNoZXIucHJv
dG90eXBlLmZpbGVDb250ZW50UmVjZWl2ZWQpOgorCiAyMDEyLTA3LTA4ICBWaXZlayBHYWxhdGFn
ZSAgPHZpdmVrZ2FsYXRhZ2VAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgc2hvdWxkIG5vdCBnZW5lcmF0ZSBzdGF0ZW1lbnRzIHdp
dGggbm8gZWZmZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXgg
NTk3OTdhYmY4MWNlNGYzYjE5YWFlZThhMDMxNTdiMWNlNDZmZjY2Ni4uZDE3OGQ5ZDJkYWQ2YTFk
MWQ4ZGM3Y2EzMTk5Yjk5ZmMxMjQ1OGNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgpAQCAtMTQxOCw3ICsxNDE4LDggQEAKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBuYW1l
IG9mIHRoZSBmaWxlIG9yIGRpcmVjdG9yeS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaXNEaXJlY3RvcnkiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRy
dWUgaWYgdGhlIGVudHJ5IGlzIGEgZGlyZWN0b3J5LiIgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJtaW1lVHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJNSU1FIHR5cGUgb2YgdGhlIGVudHJ5LCBhdmFpbGFibGUgZm9yIGEg
ZmlsZSBvbmx5LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZVR5
cGUiLCAiJHJlZiI6ICJQYWdlLlJlc291cmNlVHlwZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJSZXNvdXJjZVR5cGUgb2YgdGhlIGVudHJ5LCBhdmFpbGFibGUgZm9yIGEgZmls
ZSBvbmx5LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc291cmNlVHlwZSIs
ICIkcmVmIjogIlBhZ2UuUmVzb3VyY2VUeXBlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIlJlc291cmNlVHlwZSBvZiB0aGUgZW50cnksIGF2YWlsYWJsZSBmb3IgYSBmaWxlIG9u
bHkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzVGV4dEZpbGUiLCAidHlw
ZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYg
dGhlIGVudHJ5IGlzIGEgdGV4dCBmaWxlLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcHJlc2VudHMgYSBicm93c2VyIHNpZGUgZmlsZSBv
ciBkaXJlY3RvcnkuIgogICAgICAgICAgICAgfSwKQEAgLTE0NzYsOCArMTQ3NywxMCBAQAogICAg
ICAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3RGaWxlQ29udGVudCIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgZmlsZSB0aGF0IHRo
ZSBmcm9udGVuZCBpcyByZXF1ZXN0aW5nIHRvIHJlYWQgZnJvbS4iIH0sCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicmVhZEFzVGV4dCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiVHJ1ZSBpZiB0aGUgY29udGVudCBzaG91bGQgYmUgcmVhZCBhcyB0ZXh0LCBvdGhl
cndpc2UgdGhlIHJlc3VsdCB3aWxsIGJlIHJldHVybmVkIGFzIGJhc2U2NCBlbmNvZGVkIHRleHQu
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0IiwgInR5cGUiOiAiaW50
ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTcGVjaWZpZXMgdGhlIHN0
YXJ0IG9mIHJhbmdlIHRvIHJlYWQuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVuZCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiU3BlY2lmaWVzIHRoZSBlbmQgb2YgcmFuZ2UgdG8gcmVhZCBleGNsdXNpdmVseS4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyB0aGUgZW5kIG9mIHJhbmdl
IHRvIHJlYWQgZXhjbHVzaXZlbHkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNoYXJzZXQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiT3ZlcnJpZGVzIGNoYXJzZXQgb2YgdGhlIGNvbnRlbnQgd2hlbiBjb250ZW50IGlzIHNl
cnZlZCBhcyB0ZXh0LiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJl
dHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgIiRy
ZWYiOiAiUmVxdWVzdElkIiwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3QgaWRlbnRpZmllci4gQ29y
cmVzcG9uZGluZyBmaWxlQ29udGVudFJlY2VpdmVkIGV2ZW50IHNob3VsZCBoYXZlIHNhbWUgcmVx
dWVzdElkIHdpdGggdGhpcy4iIH0KQEAgLTE1MTgsNyArMTUyMSw4IEBACiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVz
dElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0IElkZW50aWZp
ZXIgdGhhdCB3YXMgcmV0dXJuZWQgaW4gcmVzcG9uc2UgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcmVx
dWVzdEZpbGVDb250ZW50IGNvbW1hbmQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImVycm9yQ29kZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiMCwgaWYg
bm8gZXJyb3IuIE90aGVyd2lzZSwgZXJyb3JDb2RlIGlzIHNldCB0byBGaWxlRXJyb3I6OkVycm9y
Q29kZSB2YWx1ZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVudCIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb250
YWlucyBjb250ZW50IG9mIHRoZSBmaWxlIGFzIGJhc2U2NCBlbmNvZGVkIHN0cmluZy4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3RyaW5nIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbnRlbnQgb2YgdGhlIGZpbGUuIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoYXJzZXQiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ2hhcnNldCBvZiB0aGUgY29u
dGVudCBpZiBpdCBpcyBzZXJ2ZWQgYXMgdGV4dC4iIH0KICAgICAgICAgICAgICAgICBdLAogICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21wbGV0aW9uIGV2ZW50IG9mIHJlcXVlc3RG
aWxlQ29udGVudCBjb21tYW5kLiIKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKaW5kZXggODkwMTE3
NDZiNzQ1Y2I5NjJiYzc4NTRmYmEzOTE3ZmQyMjQzZmFkYy4uMjBhODllMjZmNzA3ZTZhNGY5NWNh
Mzk3ZTZhMmI1MWEzMzljOThhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIAogI2lu
Y2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJE
T01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRpcmVjdG9yeUVudHJ5LmgiCiAjaW5jbHVk
ZSAiRGlyZWN0b3J5UmVhZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTYxLDYgKzYy
LDggQEAKICNpbmNsdWRlICJNZXRhZGF0YUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAi
VGV4dEVuY29kaW5nLmgiCisjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogCiB1c2lu
ZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6QXJyYXk7CiAKQEAgLTE1Miw3ICsxNTUsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmlsZUVycm9yKik7CiAgICAgYm9vbCBkaWRHZXRF
bnRyeShFbnRyeSopOwogCi0gICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNv
ZGUgZXJyb3JDb2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4g
ZW50cnkpCisgICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JD
b2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4gZW50cnkgPSAw
KQogICAgIHsKICAgICAgICAgaWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRlbmRQ
cm92aWRlci0+ZnJvbnRlbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3Miw3ICsxNzUs
NyBAQCBwcml2YXRlOgogCiBib29sIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6ZGlkSGl0RXJyb3Io
RmlsZUVycm9yKiBlcnJvcikKIHsKLSAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSwgMCk7
CisgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgIHJldHVybiB0cnVlOwogfQog
CkBAIC0xODQsNyArMTg3LDcgQEAgdm9pZCBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OnN0YXJ0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICBlbHNlIGlm
IChtX3R5cGUgPT0gRE9NRmlsZVN5c3RlbUJhc2U6OnRlbXBvcmFyeVBhdGhQcmVmaXgpCiAgICAg
ICAgIHR5cGUgPSBGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeTsKICAgICBlbHNlIHsKLSAgICAgICAg
cmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lOVEFYX0VSUiwgMCk7CisgICAgICAgIHJlcG9ydFJl
c3VsdChGaWxlRXJyb3I6OlNZTlRBWF9FUlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0yMTIsNyArMjE1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UmVhZERpcmVjdG9yeVRh
c2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSLCAw
KTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSKTsKICAgICB9CiAK
ICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTIyMCwxNCArMjIz
LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBkaWRIaXRFcnJvcihGaWxlRXJyb3Iq
IGVycm9yKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCksIDApOwor
ICAgICAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAogICAgIGJvb2wgZGlkR2V0RW50cnkoRW50cnkqKTsKICAgICBib29sIGRpZFJl
YWREaXJlY3RvcnlFbnRyaWVzKEVudHJ5QXJyYXkqKTsKIAotICAgIHZvaWQgcmVwb3J0UmVzdWx0
KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgUGFzc1JlZlB0cjxBcnJheTxUeXBlQnVp
bGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+ID4gZW50cmllcykKKyAgICB2b2lkIHJlcG9ydFJlc3Vs
dChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBhc3NSZWZQdHI8QXJyYXk8VHlwZUJ1
aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiA+IGVudHJpZXMgPSAwKQogICAgIHsKICAgICAgICAg
aWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRlbmQo
KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1Niw3ICsyNTksNyBAQCB2b2lkIFJlYWREaXJl
Y3RvcnlUYXNrOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KQogICAgIEZpbGVTeXN0ZW1UeXBlIHR5cGU7CiAgICAgU3RyaW5nIHBhdGg7CiAgICAg
aWYgKCFET01GaWxlU3lzdGVtQmFzZTo6Y3JhY2tGaWxlU3lzdGVtVVJMKG1fdXJsLCB0eXBlLCBw
YXRoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpTWU5UQVhfRVJSLCAwKTsK
KyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lOVEFYX0VSUik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTI3MCw3ICsyNzMsNyBAQCB2b2lkIFJlYWREaXJlY3RvcnlUYXNr
OjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQog
Ym9vbCBSZWFkRGlyZWN0b3J5VGFzazo6ZGlkR2V0RW50cnkoRW50cnkqIGVudHJ5KQogewogICAg
IGlmICghZW50cnktPmlzRGlyZWN0b3J5KCkpIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVF
cnJvcjo6VFlQRV9NSVNNQVRDSF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVy
cm9yOjpUWVBFX01JU01BVENIX0VSUik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApA
QCAtMjgzLDcgKzI4Niw3IEBAIGJvb2wgUmVhZERpcmVjdG9yeVRhc2s6OmRpZEdldEVudHJ5KEVu
dHJ5KiBlbnRyeSkKIHZvaWQgUmVhZERpcmVjdG9yeVRhc2s6OnJlYWREaXJlY3RvcnlFbnRyaWVz
KCkKIHsKICAgICBpZiAoIW1fZGlyZWN0b3J5UmVhZGVyLT5maWxlc3lzdGVtKCktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9S
VF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMDcsMTQgKzMxMCwxOSBAQCBib29sIFJlYWRE
aXJlY3RvcnlUYXNrOjpkaWRSZWFkRGlyZWN0b3J5RW50cmllcyhFbnRyeUFycmF5KiBlbnRyaWVz
KQogICAgICAgICBpZiAoIWVudHJ5LT5pc0RpcmVjdG9yeSgpKSB7CiAgICAgICAgICAgICBTdHJp
bmcgbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoZW50cnkt
Pm5hbWUoKSk7CiAgICAgICAgICAgICBSZXNvdXJjZVR5cGU6OkVudW0gcmVzb3VyY2VUeXBlOwot
ICAgICAgICAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlw
ZShtaW1lVHlwZSkpCisgICAgICAgICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0
ZWRJbWFnZU1JTUVUeXBlKG1pbWVUeXBlKSkgewogICAgICAgICAgICAgICAgIHJlc291cmNlVHlw
ZSA9IFJlc291cmNlVHlwZTo6SW1hZ2U7Ci0gICAgICAgICAgICBlbHNlIGlmIChNSU1FVHlwZVJl
Z2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShtaW1lVHlwZSkpCisgICAgICAg
ICAgICAgICAgZW50cnlGb3JGcm9udGVuZC0+c2V0SXNUZXh0RmlsZShmYWxzZSk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1J
TUVUeXBlKG1pbWVUeXBlKSkgewogICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZSA9IFJlc291
cmNlVHlwZTo6U2NyaXB0OwotICAgICAgICAgICAgZWxzZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6
aXNTdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlKG1pbWVUeXBlKSkKKyAgICAgICAgICAgICAgICBl
bnRyeUZvckZyb250ZW5kLT5zZXRJc1RleHRGaWxlKHRydWUpOworICAgICAgICAgICAgfSBlbHNl
IGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGUobWltZVR5
cGUpKSB7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2VUeXBlID0gUmVzb3VyY2VUeXBlOjpEb2N1
bWVudDsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5k
LT5zZXRJc1RleHRGaWxlKHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICByZXNvdXJjZVR5cGUgPSBSZXNvdXJjZVR5cGU6Ok90aGVyOworICAgICAgICAgICAgICAg
IGVudHJ5Rm9yRnJvbnRlbmQtPnNldElzVGV4dEZpbGUoRE9NSW1wbGVtZW50YXRpb246OmlzWE1M
TUlNRVR5cGUobWltZVR5cGUpIHx8IERPTUltcGxlbWVudGF0aW9uOjppc1RleHRNSU1FVHlwZSht
aW1lVHlwZSkpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5k
LT5zZXRNaW1lVHlwZShtaW1lVHlwZSk7CiAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5kLT5z
ZXRSZXNvdXJjZVR5cGUocmVzb3VyY2VUeXBlKTsKQEAgLTMzNiwxMiArMzQ0LDEyIEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgfkdldE1ldGFkYXRhVGFzaygpCiAgICAgewotICAgICAgICByZXBv
cnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQo
RmlsZUVycm9yOjpBQk9SVF9FUlIpOwogICAgIH0KIAogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmls
ZUVycm9yKiBlcnJvcikKICAgICB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChlcnJvci0+Y29kZSgp
LCAwKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM0OSw3ICszNTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBk
aWRHZXRFbnRyeShFbnRyeSopOwogICAgIGJvb2wgZGlkR2V0TWV0YWRhdGEoTWV0YWRhdGEqKTsK
IAotICAgIHZvaWQgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwg
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6TWV0YWRhdGE+IG1ldGFkYXRhKQor
ICAgIHZvaWQgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgUGFz
c1JlZlB0cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6TWV0YWRhdGE+IG1ldGFkYXRhID0gMCkK
ICAgICB7CiAgICAgICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250ZW5kUHJv
dmlkZXItPmZyb250ZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0zODUsNyArMzkzLDcg
QEAgdm9pZCBHZXRNZXRhZGF0YVRhc2s6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpCiBib29sIEdldE1ldGFkYXRhVGFzazo6ZGlkR2V0RW50cnko
RW50cnkqIGVudHJ5KQogewogICAgIGlmICghZW50cnktPmZpbGVzeXN0ZW0oKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKSB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkFCT1JU
X0VSUiwgMCk7CisgICAgICAgIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkFCT1JUX0VSUik7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtNDA3LDE0ICs0MTUsMTQgQEAgYm9vbCBH
ZXRNZXRhZGF0YVRhc2s6OmRpZEdldE1ldGFkYXRhKE1ldGFkYXRhKiBtZXRhZGF0YSkKIGNsYXNz
IFJlYWRGaWxlVGFzayA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShSZWFkRmlsZVRhc2spOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJl
YWRGaWxlVGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gZnJvbnRlbmRQ
cm92aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGxvbmcgbG9uZyBzdGFy
dCwgbG9uZyBsb25nIGVuZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZWFkRmlsZVRhc2s+IGNy
ZWF0ZShQYXNzUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGludCBy
ZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdXJsLCBib29sIHJlYWRBc1RleHQsIGxvbmcgbG9uZyBz
dGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZWFkRmlsZVRhc2soZnJvbnRlbmRQcm92aWRlciwgcmVx
dWVzdElkLCB1cmwsIHN0YXJ0LCBlbmQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBS
ZWFkRmlsZVRhc2soZnJvbnRlbmRQcm92aWRlciwgcmVxdWVzdElkLCB1cmwsIHJlYWRBc1RleHQs
IHN0YXJ0LCBlbmQsIGNoYXJzZXQpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5SZWFkRmlsZVRh
c2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSLCAw
KTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSKTsKICAgICB9CiAK
ICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTQzNiw3ICs0NDQs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmlsZUVycm9yKiBl
cnJvcikKICAgICB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChlcnJvci0+Y29kZSgpLCAwKTsKKyAg
ICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKQEAgLTQ0NCwyNyArNDUyLDMyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBkaWRHZXRG
aWxlKEZpbGUqKTsKICAgICB2b2lkIGRpZFJlYWQoKTsKIAotICAgIHZvaWQgcmVwb3J0UmVzdWx0
KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgY29uc3QgU3RyaW5nKiByZXN1bHQpCisg
ICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JDb2RlLCBjb25z
dCBTdHJpbmcqIHJlc3VsdCA9IDAsIGNvbnN0IFN0cmluZyogY2hhcnNldCA9IDApCiAgICAgewog
ICAgICAgICBpZiAoIW1fZnJvbnRlbmRQcm92aWRlciB8fCAhbV9mcm9udGVuZFByb3ZpZGVyLT5m
cm9udGVuZCgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2Zyb250ZW5kUHJvdmlk
ZXItPmZyb250ZW5kKCktPmZpbGVDb250ZW50UmVjZWl2ZWQobV9yZXF1ZXN0SWQsIHN0YXRpY19j
YXN0PGludD4oZXJyb3JDb2RlKSwgcmVzdWx0KTsKKyAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVy
LT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKG1fcmVxdWVzdElkLCBzdGF0aWNfY2Fz
dDxpbnQ+KGVycm9yQ29kZSksIHJlc3VsdCwgY2hhcnNldCk7CiAgICAgICAgIG1fZnJvbnRlbmRQ
cm92aWRlciA9IDA7CiAgICAgfQogCi0gICAgUmVhZEZpbGVUYXNrKFBhc3NSZWZQdHI8RnJvbnRl
bmRQcm92aWRlcj4gZnJvbnRlbmRQcm92aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5n
JiB1cmwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkKKyAgICBSZWFkRmlsZVRhc2so
UGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVyLCBpbnQgcmVxdWVz
dElkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCByZWFkQXNUZXh0LCBsb25nIGxvbmcgc3RhcnQs
IGxvbmcgbG9uZyBlbmQsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKICAgICAgICAgOiBFdmVudExp
c3RlbmVyKEV2ZW50TGlzdGVuZXI6OkNQUEV2ZW50TGlzdGVuZXJUeXBlKQogICAgICAgICAsIG1f
ZnJvbnRlbmRQcm92aWRlcihmcm9udGVuZFByb3ZpZGVyKQogICAgICAgICAsIG1fcmVxdWVzdElk
KHJlcXVlc3RJZCkKICAgICAgICAgLCBtX3VybChQYXJzZWRVUkxTdHJpbmcsIHVybCkKKyAgICAg
ICAgLCBtX3JlYWRBc1RleHQocmVhZEFzVGV4dCkKICAgICAgICAgLCBtX3N0YXJ0KHN0YXJ0KQot
ICAgICAgICAsIG1fZW5kKGVuZCkgeyB9CisgICAgICAgICwgbV9lbmQoZW5kKQorICAgICAgICAs
IG1fY2hhcnNldChjaGFyc2V0KSB7IH0KIAogICAgIFJlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBt
X2Zyb250ZW5kUHJvdmlkZXI7CiAgICAgaW50IG1fcmVxdWVzdElkOwogICAgIEtVUkwgbV91cmw7
CisgICAgYm9vbCBtX3JlYWRBc1RleHQ7CiAgICAgaW50IG1fc3RhcnQ7CiAgICAgbG9uZyBsb25n
IG1fZW5kOworICAgIFN0cmluZyBtX21pbWVUeXBlOworICAgIFN0cmluZyBtX2NoYXJzZXQ7CiAK
ICAgICBSZWZQdHI8RmlsZVJlYWRlcj4gbV9yZWFkZXI7CiB9OwpAQCAtNTA0LDYgKzUxNyw4IEBA
IGJvb2wgUmVhZEZpbGVUYXNrOjpkaWRHZXRFbnRyeShFbnRyeSogZW50cnkpCiAgICAgc3RhdGlj
X2Nhc3Q8RmlsZUVudHJ5Kj4oZW50cnkpLT5maWxlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxs
YmFjayk7CiAKICAgICBtX3JlYWRlciA9IEZpbGVSZWFkZXI6OmNyZWF0ZShlbnRyeS0+ZmlsZXN5
c3RlbSgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIG1fbWltZVR5cGUgPSBNSU1F
VHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoZW50cnktPm5hbWUoKSk7CisKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNTIwLDkgKzUzNSwxOSBAQCBib29sIFJlYWRGaWxlVGFzazo6
ZGlkR2V0RmlsZShGaWxlKiBmaWxlKQogCiB2b2lkIFJlYWRGaWxlVGFzazo6ZGlkUmVhZCgpCiB7
Ci0gICAgUmVmUHRyPEFycmF5QnVmZmVyPiByZXN1bHQgPSBtX3JlYWRlci0+YXJyYXlCdWZmZXJS
ZXN1bHQoKTsKLSAgICBTdHJpbmcgZW5jb2RlZFJlc3VsdCA9IGJhc2U2NEVuY29kZShzdGF0aWNf
Y2FzdDxjaGFyKj4ocmVzdWx0LT5kYXRhKCkpLCByZXN1bHQtPmJ5dGVMZW5ndGgoKSk7Ci0gICAg
cmVwb3J0UmVzdWx0KHN0YXRpY19jYXN0PEZpbGVFcnJvcjo6RXJyb3JDb2RlPigwKSwgJmVuY29k
ZWRSZXN1bHQpOworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gbV9yZWFkZXItPmFy
cmF5QnVmZmVyUmVzdWx0KCk7CisKKyAgICBpZiAoIW1fcmVhZEFzVGV4dCkgeworICAgICAgICBT
dHJpbmcgcmVzdWx0ID0gYmFzZTY0RW5jb2RlKHN0YXRpY19jYXN0PGNoYXIqPihidWZmZXItPmRh
dGEoKSksIGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KHN0YXRp
Y19jYXN0PEZpbGVFcnJvcjo6RXJyb3JDb2RlPigwKSwgJnJlc3VsdCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IFRl
eHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZShtX21pbWVUeXBlLCBtX2NoYXJzZXQsIHRydWUpOwor
ICAgIFN0cmluZyByZXN1bHQgPSBkZWNvZGVyLT5kZWNvZGUoc3RhdGljX2Nhc3Q8Y2hhcio+KGJ1
ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkpOworICAgIHJlc3VsdCArPSBkZWNv
ZGVyLT5mbHVzaCgpOworICAgIG1fY2hhcnNldCA9IGRlY29kZXItPmVuY29kaW5nKCkuZG9tTmFt
ZSgpOworICAgIHJlcG9ydFJlc3VsdChzdGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4o
MCksICZyZXN1bHQsICZtX2NoYXJzZXQpOwogfQogCiB9CkBAIC02MDMsNyArNjI4LDcgQEAgdm9p
ZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RNZXRhZGF0YShFcnJvclN0cmluZyog
ZXJyb3IsIGNvbnN0IFN0cmluZyYKICAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVyLT5mcm9udGVu
ZCgpLT5tZXRhZGF0YVJlY2VpdmVkKCpyZXF1ZXN0SWQsIHN0YXRpY19jYXN0PGludD4oRmlsZUVy
cm9yOjpBQk9SVF9FUlIpLCAwKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6
OnJlcXVlc3RGaWxlQ29udGVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBpbnQqIHN0YXJ0LCBjb25zdCBpbnQqIGVuZCwgaW50KiByZXF1ZXN0SWQpCit2b2lk
IEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250ZW50KEVycm9yU3RyaW5n
KiBlcnJvciwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgcmVhZEFzVGV4dCwgY29uc3QgaW50KiBz
dGFydCwgY29uc3QgaW50KiBlbmQsIGNvbnN0IFN0cmluZyogY2hhcnNldCwgaW50KiByZXF1ZXN0
SWQpCiB7CiAgICAgaWYgKCFtX2VuYWJsZWQgfHwgIW1fZnJvbnRlbmRQcm92aWRlcikgewogICAg
ICAgICAqZXJyb3IgPSAiRmlsZVN5c3RlbSBhZ2VudCBpcyBub3QgZW5hYmxlZCI7CkBAIC02MTQs
OSArNjM5LDkgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29u
dGVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmkKICAgICAqcmVxdWVzdElkID0gbV9u
ZXh0UmVxdWVzdElkKys7CiAKICAgICBpZiAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGb3JPcmlnaW4oU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcodXJsKS5nZXQoKSkpCi0gICAgICAgIFJlYWRGaWxl
VGFzazo6Y3JlYXRlKG1fZnJvbnRlbmRQcm92aWRlciwgKnJlcXVlc3RJZCwgdXJsLCBzdGFydCA/
ICpzdGFydCA6IDAsIGVuZCA/ICplbmQgOiBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46
Om1heCgpKS0+c3RhcnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgICAgIFJlYWRGaWxl
VGFzazo6Y3JlYXRlKG1fZnJvbnRlbmRQcm92aWRlciwgKnJlcXVlc3RJZCwgdXJsLCByZWFkQXNU
ZXh0LCBzdGFydCA/ICpzdGFydCA6IDAsIGVuZCA/ICplbmQgOiBzdGQ6Om51bWVyaWNfbGltaXRz
PGxvbmcgbG9uZz46Om1heCgpLCBjaGFyc2V0ID8gKmNoYXJzZXQgOiAiIiktPnN0YXJ0KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIGVsc2UKLSAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVy
LT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKCpyZXF1ZXN0SWQsIHN0YXRpY19jYXN0
PGludD4oRmlsZUVycm9yOjpBQk9SVF9FUlIpLCAwKTsKKyAgICAgICAgbV9mcm9udGVuZFByb3Zp
ZGVyLT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKCpyZXF1ZXN0SWQsIHN0YXRpY19j
YXN0PGludD4oRmlsZUVycm9yOjpBQk9SVF9FUlIpLCAwLCAwKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JGaWxlU3lzdGVtQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQuaAppbmRleCAwZTU2YjM4Zjk5MzkxZTliOGI3MzdhYmQwMWEwMWI2NDFlNGU5YTczLi41
NmEyOTI2MDI4MTBhNjQxYzAyY2IwMmY5NTM3M2Y2YzNmMWZmMWY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW1Sb290
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgdHlwZSwg
aW50KiByZXF1ZXN0SWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGlyZWN0
b3J5Q29udGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQqIHJlcXVlc3RJ
ZCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RNZXRhZGF0YShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQqIHJlcXVlc3RJZCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RGaWxlQ29udGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBpbnQqIHN0YXJ0LCBjb25zdCBpbnQqIGVuZCwgaW50KiByZXF1ZXN0SWQpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RmlsZUNvbnRlbnQoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCByZWFkQXNUZXh0LCBjb25zdCBpbnQqIHN0YXJ0LCBj
b25zdCBpbnQqIGVuZCwgY29uc3QgU3RyaW5nKiBjaGFyc2V0LCBpbnQqIHJlcXVlc3RJZCkgT1ZF
UlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQq
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpIE9WRVJSSURFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVt
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1N
b2RlbC5qcwppbmRleCA0MTkzOWVlYTI2YjQyZWFjMWQ5Zjk5YjlkZWZjNTg1OGIzYzdlOTY4Li5k
MGZiNjUyNDAwNTVjNzgzMzQxNGFhOWFlNWI0N2JlMmFkMmYwYjJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcwpAQCAt
MjQ4LDEzICsyNDgsMTUgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUg
PSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9k
ZWwuRmlsZX0gZmlsZQotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydAotICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBlbmQKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5nPSl9
IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtib29sYWVufSByZWFkQXNUZXh0CisgICAgICogQHBh
cmFtIHtudW1iZXI9fSBzdGFydAorICAgICAqIEBwYXJhbSB7bnVtYmVyPX0gZW5kCisgICAgICog
QHBhcmFtIHtzdHJpbmc9fSBjaGFyc2V0CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIs
IHN0cmluZz0sIHN0cmluZz0pfSBjYWxsYmFjawogICAgICAqLwotICAgIHJlcXVlc3RGaWxlQ29u
dGVudDogZnVuY3Rpb24oZmlsZSwgc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVxdWVzdEZp
bGVDb250ZW50OiBmdW5jdGlvbihmaWxlLCByZWFkQXNUZXh0LCBzdGFydCwgZW5kLCBjaGFyc2V0
LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHRoaXMuX2FnZW50V3JhcHBlci5yZXF1ZXN0Rmls
ZUNvbnRlbnQoZmlsZS51cmwsIHN0YXJ0LCBlbmQsIGNhbGxiYWNrKTsKKyAgICAgICAgdGhpcy5f
YWdlbnRXcmFwcGVyLnJlcXVlc3RGaWxlQ29udGVudChmaWxlLnVybCwgcmVhZEFzVGV4dCwgc3Rh
cnQsIGVuZCwgY2hhcnNldCwgY2FsbGJhY2spOwogICAgIH0KIH0KIApAQCAtNDI1LDEzICs0Mjcs
MTUgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlLnByb3RvdHlwZSA9IHsKICAg
ICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0Ci0gICAgICogQHBh
cmFtIHtudW1iZXJ9IGVuZAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVhZEFzVGV4dAorICAg
ICAqIEBwYXJhbSB7bnVtYmVyPX0gc3RhcnQKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IGVuZAor
ICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gY2hhcnNldAogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
bnVtYmVyLCBzdHJpbmc9KX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICByZXF1ZXN0RmlsZUNvbnRl
bnQ6IGZ1bmN0aW9uKHN0YXJ0LCBlbmQsIGNhbGxiYWNrKQorICAgIHJlcXVlc3RGaWxlQ29udGVu
dDogZnVuY3Rpb24ocmVhZEFzVGV4dCwgc3RhcnQsIGVuZCwgY2hhcnNldCwgY2FsbGJhY2spCiAg
ICAgewotICAgICAgICB0aGlzLmZpbGVTeXN0ZW1Nb2RlbC5yZXF1ZXN0RmlsZUNvbnRlbnQodGhp
cywgc3RhcnQsIGVuZCwgY2FsbGJhY2spOworICAgICAgICB0aGlzLmZpbGVTeXN0ZW1Nb2RlbC5y
ZXF1ZXN0RmlsZUNvbnRlbnQodGhpcywgcmVhZEFzVGV4dCwgc3RhcnQsIGVuZCwgY2hhcnNldCwg
Y2FsbGJhY2spOwogICAgIH0KIH0KIApAQCAtNTQwLDE0ICs1NDQsMTYgQEAgV2ViSW5zcGVjdG9y
LkZpbGVTeXN0ZW1SZXF1ZXN0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAg
KiBAcGFyYW0ge3N0cmluZ30gdXJsCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0Ci0gICAg
ICogQHBhcmFtIHtudW1iZXJ9IGVuZAotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBz
dHJpbmcpfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVhZEFzVGV4dAorICAg
ICAqIEBwYXJhbSB7bnVtYmVyPX0gc3RhcnQKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IGVuZAor
ICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gY2hhcnNldAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
bnVtYmVyLCBzdHJpbmc9LCBzdHJpbmc9KX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICByZXF1ZXN0
RmlsZUNvbnRlbnQ6IGZ1bmN0aW9uKHVybCwgc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVx
dWVzdEZpbGVDb250ZW50OiBmdW5jdGlvbih1cmwsIHJlYWRBc1RleHQsIHN0YXJ0LCBlbmQsIGNo
YXJzZXQsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgdmFyIHN0b3JlID0gdGhpcy5fcGVuZGlu
Z0ZpbGVDb250ZW50UmVxdWVzdHM7Ci0gICAgICAgIEZpbGVTeXN0ZW1BZ2VudC5yZXF1ZXN0Rmls
ZUNvbnRlbnQodXJsLCBzdGFydCwgZW5kLCByZXF1ZXN0QWNjZXB0ZWQpOworICAgICAgICBGaWxl
U3lzdGVtQWdlbnQucmVxdWVzdEZpbGVDb250ZW50KHVybCwgcmVhZEFzVGV4dCwgc3RhcnQsIGVu
ZCwgY2hhcnNldCwgcmVxdWVzdEFjY2VwdGVkKTsKIAogICAgICAgICBmdW5jdGlvbiByZXF1ZXN0
QWNjZXB0ZWQoZXJyb3IsIHJlcXVlc3RJZCkKICAgICAgICAgewpAQCAtNTYwLDE0ICs1NjYsMTUg
QEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1SZXF1ZXN0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAg
ICAgICogQHBhcmFtIHtudW1iZXJ9IHJlcXVlc3RJZAogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBl
cnJvckNvZGUKICAgICAgKiBAcGFyYW0ge3N0cmluZz19IGNvbnRlbnQKKyAgICAgKiBAcGFyYW0g
e3N0cmluZz19IGNoYXJzZXQKICAgICAgKi8KLSAgICBfZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVu
Y3Rpb24ocmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQpCisgICAgX2ZpbGVDb250ZW50UmVj
ZWl2ZWQ6IGZ1bmN0aW9uKHJlcXVlc3RJZCwgZXJyb3JDb2RlLCBjb250ZW50LCBjaGFyc2V0KQog
ICAgIHsKLSAgICAgICAgdmFyIGNhbGxiYWNrID0gLyoqIEB0eXBlIHtmdW5jdGlvbihudW1iZXIs
IHN0cmluZz0pfSAqLyB0aGlzLl9wZW5kaW5nRmlsZUNvbnRlbnRSZXF1ZXN0c1tyZXF1ZXN0SWRd
OworICAgICAgICB2YXIgY2FsbGJhY2sgPSAvKiogQHR5cGUge2Z1bmN0aW9uKG51bWJlciwgc3Ry
aW5nPSwgc3RyaW5nPSl9ICovIHRoaXMuX3BlbmRpbmdGaWxlQ29udGVudFJlcXVlc3RzW3JlcXVl
c3RJZF07CiAgICAgICAgIGlmICghY2FsbGJhY2spCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nRmlsZUNvbnRlbnRSZXF1ZXN0c1tyZXF1ZXN0SWRdOwot
ICAgICAgICBjYWxsYmFjayhlcnJvckNvZGUsIGNvbnRlbnQpOworICAgICAgICBjYWxsYmFjayhl
cnJvckNvZGUsIGNvbnRlbnQsIGNoYXJzZXQpOwogICAgIH0KIH0KIApAQCAtNjE2LDkgKzYyMywx
MCBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSByZXF1ZXN0SWQKICAgICAgKiBAcGFyYW0ge251bWJlcn0gZXJy
b3JDb2RlCiAgICAgICogQHBhcmFtIHtzdHJpbmc9fSBjb250ZW50CisgICAgICogQHBhcmFtIHtz
dHJpbmc9fSBjaGFyc2V0CiAgICAgICovCi0gICAgZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rp
b24ocmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQpCisgICAgZmlsZUNvbnRlbnRSZWNlaXZl
ZDogZnVuY3Rpb24ocmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQsIGNoYXJzZXQpCiAgICAg
ewotICAgICAgICB0aGlzLl9hZ2VudFdyYXBwZXIuX2ZpbGVDb250ZW50UmVjZWl2ZWQocmVxdWVz
dElkLCBlcnJvckNvZGUsIGNvbnRlbnQpOworICAgICAgICB0aGlzLl9hZ2VudFdyYXBwZXIuX2Zp
bGVDb250ZW50UmVjZWl2ZWQocmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQsIGNoYXJzZXQp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBhZWQ3NmVmNWY4Y2I1ZGM2ZWJlNzRkZTJmOThhODhjYTkyMTNm
ZGRkLi40MGVmZjkzMzAxMWE5MGE1ZjkxODRjOTNiYzcxYjAxNGRlMjMxNTRjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTItMDctMDkgIFRhaWp1IFRzdWlraSAgPHR6aWtAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCB0ZXh0IGZpbGUgc3VwcG9ydCBmb3IgRmls
ZVN5c3RlbUFnZW50OjpyZXF1ZXN0RmlsZUNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVt
L3JlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRtbDoKKwogMjAxMi0wNy0wOCAg
SGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBn
YXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9m
aWxlc3lzdGVtL3JlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3RvcnktZXhwZWN0ZWQudHh0Cmlu
ZGV4IDBhMGM3MzU5Mjg0NTI5OGViOTY4OWUzZDRmNWUxY2IxNmYzYTlhYzEuLjM5OWFhNTYzMzM2
OTJjMTQxNzhmNDg2ODEzY2U4NTY2OWUxZjQ3MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3RvcnktZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1k
aXJlY3RvcnktZXhwZWN0ZWQudHh0CkBAIC02LDYgKzYsNyBAQCBlbnRyaWVzOgogICAgIHVybDog
ZmlsZXN5c3RlbTpodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcG9yYXJ5L2hvZ2UvcGl5by5odG1s
CiAgICAgbmFtZTogcGl5by5odG1sCiAgICAgaXNEaXJlY3Rvcnk6IGZhbHNlCisgICAgaXNUZXh0
RmlsZTogdHJ1ZQogICAgIG1pbWVUeXBlOiB0ZXh0L2h0bWwKICAgICByZXNvdXJjZVR5cGU6IERv
Y3VtZW50CiAgIDE6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9maWxlc3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQKaW5kZXggMDM4
OTc3NDk4M2E1MmJjODA4YTJiMGJlODAyYmEyOGI1Mjg1MGUwYy4uMDMzMGJiZTJlYzg3YTMxZDZh
OTNmMDQwNDFhMWEwZWU2OTU3MzE2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxlLWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDYgQEAKLVRlc3RzIHJlYWRGaWxlLgorVGVzdHMgcmVxdWVzdEZpbGVD
b250ZW50LgogCiBlcnJvckNvZGUgPSAwCi1jb250ZW50ID0gIlVFRlRVdz09IiBbUEFTU10KK2Nv
bnRlbnQgPSAiUEFTUyIKK2NoYXJzZXQgPSBVVEYtOAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRtbAppbmRl
eCAzNDM0MWQ4YmM2ODYyMzljZTg2ZGNlMjFlNDkyZWM5ZTIzMGNjNzFiLi4yMDYxMmY0MzdkMjJj
N2QwNWJkMmZlMmIyODE1M2YzMWExZmYzYTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxlLmh0bWwKQEAgLTE4
LDIyICsxOCwyNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud3JpdGVGaWxlKCIvaG9nZS9mdWdhIiwgInBpUEFT
U3lvIiwgc3RlcDMpOworICAgICAgICBJbnNwZWN0b3JUZXN0LndyaXRlRmlsZSgiL2hvZ2UvZnVn
YS50eHQiLCAicGlQQVNTeW8iLCBzdGVwMyk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDMo
KQogICAgIHsKLSAgICAgICAgcmVxdWVzdE1hbmFnZXIucmVxdWVzdEZpbGVDb250ZW50KCJmaWxl
c3lzdGVtOmh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wb3JhcnkvaG9nZS9mdWdhIiwgMiwgNiwg
c3RlcDQpOworICAgICAgICByZXF1ZXN0TWFuYWdlci5yZXF1ZXN0RmlsZUNvbnRlbnQoImZpbGVz
eXN0ZW06aHR0cDovLzEyNy4wLjAuMTo4MDAwL3RlbXBvcmFyeS9ob2dlL2Z1Z2EudHh0IiwgdHJ1
ZSwgMiwgNiwgIlVURi04Iiwgc3RlcDQpOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHN0ZXA0KGVy
cm9yQ29kZSwgY29udGVudCkKKyAgICBmdW5jdGlvbiBzdGVwNChlcnJvckNvZGUsIGNvbnRlbnQs
IGNoYXJzZXQpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3JD
b2RlID0gIiArIGVycm9yQ29kZSk7CiAgICAgICAgIGlmIChjb250ZW50KQotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNvbnRlbnQgPSBcIiIgKyBjb250ZW50ICsgIlwiIFsi
ICsgYXRvYihjb250ZW50KSArICJdIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiY29udGVudCA9IFwiIiArIGNvbnRlbnQgKyAiXCIiKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNvbnRlbnQgPSAobnVsbCkiKTsKIAor
ICAgICAgICBpZiAoY2hhcnNldCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJjaGFyc2V0ID0gIiArIGNoYXJzZXQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiY2hhcnNldCA9IChudWxsKSIpOworCiAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY2xlYXJGaWxlU3lzdGVtKHN0ZXA1KTsKICAgICB9CiAKQEAgLTQ1LDYgKzUwLDYg
QEAgZnVuY3Rpb24gdGVzdCgpCiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHA+VGVzdHMg
cmVhZEZpbGUuPC9wPgorPHA+VGVzdHMgcmVxdWVzdEZpbGVDb250ZW50LjwvcD4KIDwvYm9keT4K
IDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151203</attachid>
            <date>2012-07-09 00:49:31 -0700</date>
            <delta_ts>2012-07-09 01:10:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90439-20120709164929.patch</filename>
            <type>text/plain</type>
            <size>25308</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUyNWNkNmEzOGZjNzc2
ZjBlODRmNzQ4MDVkZGY4MjQwMDMwMzRiOC4uYmYwYzgxMDhmMTNlMDNlYThiZjg0NDhhOTQ4YmNm
M2U0NTBlYTkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA3LTA5ICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
ZGQgdGV4dCBmaWxlIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDQz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0
ZW1Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90
eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3Rl
bU1vZGVsLkZpbGUucHJvdG90eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3RvdHlwZS5fZmlsZUNvbnRlbnRS
ZWNlaXZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbURpc3BhdGNoZXIucHJv
dG90eXBlLmZpbGVDb250ZW50UmVjZWl2ZWQpOgorCiAyMDEyLTA3LTA4ICBWaXZlayBHYWxhdGFn
ZSAgPHZpdmVrZ2FsYXRhZ2VAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgc2hvdWxkIG5vdCBnZW5lcmF0ZSBzdGF0ZW1lbnRzIHdp
dGggbm8gZWZmZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXgg
NTk3OTdhYmY4MWNlNGYzYjE5YWFlZThhMDMxNTdiMWNlNDZmZjY2Ni4uZDE3OGQ5ZDJkYWQ2YTFk
MWQ4ZGM3Y2EzMTk5Yjk5ZmMxMjQ1OGNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgpAQCAtMTQxOCw3ICsxNDE4LDggQEAKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBuYW1l
IG9mIHRoZSBmaWxlIG9yIGRpcmVjdG9yeS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaXNEaXJlY3RvcnkiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRy
dWUgaWYgdGhlIGVudHJ5IGlzIGEgZGlyZWN0b3J5LiIgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJtaW1lVHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJNSU1FIHR5cGUgb2YgdGhlIGVudHJ5LCBhdmFpbGFibGUgZm9yIGEg
ZmlsZSBvbmx5LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZVR5
cGUiLCAiJHJlZiI6ICJQYWdlLlJlc291cmNlVHlwZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJSZXNvdXJjZVR5cGUgb2YgdGhlIGVudHJ5LCBhdmFpbGFibGUgZm9yIGEgZmls
ZSBvbmx5LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc291cmNlVHlwZSIs
ICIkcmVmIjogIlBhZ2UuUmVzb3VyY2VUeXBlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIlJlc291cmNlVHlwZSBvZiB0aGUgZW50cnksIGF2YWlsYWJsZSBmb3IgYSBmaWxlIG9u
bHkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzVGV4dEZpbGUiLCAidHlw
ZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYg
dGhlIGVudHJ5IGlzIGEgdGV4dCBmaWxlLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcHJlc2VudHMgYSBicm93c2VyIHNpZGUgZmlsZSBv
ciBkaXJlY3RvcnkuIgogICAgICAgICAgICAgfSwKQEAgLTE0NzYsOCArMTQ3NywxMCBAQAogICAg
ICAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3RGaWxlQ29udGVudCIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgZmlsZSB0aGF0IHRo
ZSBmcm9udGVuZCBpcyByZXF1ZXN0aW5nIHRvIHJlYWQgZnJvbS4iIH0sCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicmVhZEFzVGV4dCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiVHJ1ZSBpZiB0aGUgY29udGVudCBzaG91bGQgYmUgcmVhZCBhcyB0ZXh0LCBvdGhl
cndpc2UgdGhlIHJlc3VsdCB3aWxsIGJlIHJldHVybmVkIGFzIGJhc2U2NCBlbmNvZGVkIHRleHQu
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0IiwgInR5cGUiOiAiaW50
ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTcGVjaWZpZXMgdGhlIHN0
YXJ0IG9mIHJhbmdlIHRvIHJlYWQuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVuZCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiU3BlY2lmaWVzIHRoZSBlbmQgb2YgcmFuZ2UgdG8gcmVhZCBleGNsdXNpdmVseS4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyB0aGUgZW5kIG9mIHJhbmdl
IHRvIHJlYWQgZXhjbHVzaXZlbHkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNoYXJzZXQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiT3ZlcnJpZGVzIGNoYXJzZXQgb2YgdGhlIGNvbnRlbnQgd2hlbiBjb250ZW50IGlzIHNl
cnZlZCBhcyB0ZXh0LiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJl
dHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgIiRy
ZWYiOiAiUmVxdWVzdElkIiwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3QgaWRlbnRpZmllci4gQ29y
cmVzcG9uZGluZyBmaWxlQ29udGVudFJlY2VpdmVkIGV2ZW50IHNob3VsZCBoYXZlIHNhbWUgcmVx
dWVzdElkIHdpdGggdGhpcy4iIH0KQEAgLTE1MTgsNyArMTUyMSw4IEBACiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVz
dElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0IElkZW50aWZp
ZXIgdGhhdCB3YXMgcmV0dXJuZWQgaW4gcmVzcG9uc2UgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcmVx
dWVzdEZpbGVDb250ZW50IGNvbW1hbmQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImVycm9yQ29kZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiMCwgaWYg
bm8gZXJyb3IuIE90aGVyd2lzZSwgZXJyb3JDb2RlIGlzIHNldCB0byBGaWxlRXJyb3I6OkVycm9y
Q29kZSB2YWx1ZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVudCIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb250
YWlucyBjb250ZW50IG9mIHRoZSBmaWxlIGFzIGJhc2U2NCBlbmNvZGVkIHN0cmluZy4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3RyaW5nIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbnRlbnQgb2YgdGhlIGZpbGUuIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoYXJzZXQiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ2hhcnNldCBvZiB0aGUgY29u
dGVudCBpZiBpdCBpcyBzZXJ2ZWQgYXMgdGV4dC4iIH0KICAgICAgICAgICAgICAgICBdLAogICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21wbGV0aW9uIGV2ZW50IG9mIHJlcXVlc3RG
aWxlQ29udGVudCBjb21tYW5kLiIKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKaW5kZXggODkwMTE3
NDZiNzQ1Y2I5NjJiYzc4NTRmYmEzOTE3ZmQyMjQzZmFkYy4uMjBhODllMjZmNzA3ZTZhNGY5NWNh
Mzk3ZTZhMmI1MWEzMzljOThhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIAogI2lu
Y2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJE
T01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRpcmVjdG9yeUVudHJ5LmgiCiAjaW5jbHVk
ZSAiRGlyZWN0b3J5UmVhZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTYxLDYgKzYy
LDggQEAKICNpbmNsdWRlICJNZXRhZGF0YUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAi
VGV4dEVuY29kaW5nLmgiCisjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogCiB1c2lu
ZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6QXJyYXk7CiAKQEAgLTE1Miw3ICsxNTUsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmlsZUVycm9yKik7CiAgICAgYm9vbCBkaWRHZXRF
bnRyeShFbnRyeSopOwogCi0gICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNv
ZGUgZXJyb3JDb2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4g
ZW50cnkpCisgICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JD
b2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4gZW50cnkgPSAw
KQogICAgIHsKICAgICAgICAgaWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRlbmRQ
cm92aWRlci0+ZnJvbnRlbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3Miw3ICsxNzUs
NyBAQCBwcml2YXRlOgogCiBib29sIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6ZGlkSGl0RXJyb3Io
RmlsZUVycm9yKiBlcnJvcikKIHsKLSAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSwgMCk7
CisgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgIHJldHVybiB0cnVlOwogfQog
CkBAIC0xODQsNyArMTg3LDcgQEAgdm9pZCBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OnN0YXJ0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICBlbHNlIGlm
IChtX3R5cGUgPT0gRE9NRmlsZVN5c3RlbUJhc2U6OnRlbXBvcmFyeVBhdGhQcmVmaXgpCiAgICAg
ICAgIHR5cGUgPSBGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeTsKICAgICBlbHNlIHsKLSAgICAgICAg
cmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lOVEFYX0VSUiwgMCk7CisgICAgICAgIHJlcG9ydFJl
c3VsdChGaWxlRXJyb3I6OlNZTlRBWF9FUlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0yMTIsNyArMjE1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UmVhZERpcmVjdG9yeVRh
c2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSLCAw
KTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSKTsKICAgICB9CiAK
ICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTIyMCwxNCArMjIz
LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBkaWRIaXRFcnJvcihGaWxlRXJyb3Iq
IGVycm9yKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCksIDApOwor
ICAgICAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAogICAgIGJvb2wgZGlkR2V0RW50cnkoRW50cnkqKTsKICAgICBib29sIGRpZFJl
YWREaXJlY3RvcnlFbnRyaWVzKEVudHJ5QXJyYXkqKTsKIAotICAgIHZvaWQgcmVwb3J0UmVzdWx0
KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgUGFzc1JlZlB0cjxBcnJheTxUeXBlQnVp
bGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+ID4gZW50cmllcykKKyAgICB2b2lkIHJlcG9ydFJlc3Vs
dChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBhc3NSZWZQdHI8QXJyYXk8VHlwZUJ1
aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiA+IGVudHJpZXMgPSAwKQogICAgIHsKICAgICAgICAg
aWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRlbmQo
KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1Niw3ICsyNTksNyBAQCB2b2lkIFJlYWREaXJl
Y3RvcnlUYXNrOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KQogICAgIEZpbGVTeXN0ZW1UeXBlIHR5cGU7CiAgICAgU3RyaW5nIHBhdGg7CiAgICAg
aWYgKCFET01GaWxlU3lzdGVtQmFzZTo6Y3JhY2tGaWxlU3lzdGVtVVJMKG1fdXJsLCB0eXBlLCBw
YXRoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpTWU5UQVhfRVJSLCAwKTsK
KyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lOVEFYX0VSUik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTI3MCw3ICsyNzMsNyBAQCB2b2lkIFJlYWREaXJlY3RvcnlUYXNr
OjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQog
Ym9vbCBSZWFkRGlyZWN0b3J5VGFzazo6ZGlkR2V0RW50cnkoRW50cnkqIGVudHJ5KQogewogICAg
IGlmICghZW50cnktPmlzRGlyZWN0b3J5KCkpIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVF
cnJvcjo6VFlQRV9NSVNNQVRDSF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVy
cm9yOjpUWVBFX01JU01BVENIX0VSUik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApA
QCAtMjgzLDcgKzI4Niw3IEBAIGJvb2wgUmVhZERpcmVjdG9yeVRhc2s6OmRpZEdldEVudHJ5KEVu
dHJ5KiBlbnRyeSkKIHZvaWQgUmVhZERpcmVjdG9yeVRhc2s6OnJlYWREaXJlY3RvcnlFbnRyaWVz
KCkKIHsKICAgICBpZiAoIW1fZGlyZWN0b3J5UmVhZGVyLT5maWxlc3lzdGVtKCktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9S
VF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMDcsMTQgKzMxMCwxOSBAQCBib29sIFJlYWRE
aXJlY3RvcnlUYXNrOjpkaWRSZWFkRGlyZWN0b3J5RW50cmllcyhFbnRyeUFycmF5KiBlbnRyaWVz
KQogICAgICAgICBpZiAoIWVudHJ5LT5pc0RpcmVjdG9yeSgpKSB7CiAgICAgICAgICAgICBTdHJp
bmcgbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoZW50cnkt
Pm5hbWUoKSk7CiAgICAgICAgICAgICBSZXNvdXJjZVR5cGU6OkVudW0gcmVzb3VyY2VUeXBlOwot
ICAgICAgICAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlw
ZShtaW1lVHlwZSkpCisgICAgICAgICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0
ZWRJbWFnZU1JTUVUeXBlKG1pbWVUeXBlKSkgewogICAgICAgICAgICAgICAgIHJlc291cmNlVHlw
ZSA9IFJlc291cmNlVHlwZTo6SW1hZ2U7Ci0gICAgICAgICAgICBlbHNlIGlmIChNSU1FVHlwZVJl
Z2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShtaW1lVHlwZSkpCisgICAgICAg
ICAgICAgICAgZW50cnlGb3JGcm9udGVuZC0+c2V0SXNUZXh0RmlsZShmYWxzZSk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1J
TUVUeXBlKG1pbWVUeXBlKSkgewogICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZSA9IFJlc291
cmNlVHlwZTo6U2NyaXB0OwotICAgICAgICAgICAgZWxzZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6
aXNTdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlKG1pbWVUeXBlKSkKKyAgICAgICAgICAgICAgICBl
bnRyeUZvckZyb250ZW5kLT5zZXRJc1RleHRGaWxlKHRydWUpOworICAgICAgICAgICAgfSBlbHNl
IGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGUobWltZVR5
cGUpKSB7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2VUeXBlID0gUmVzb3VyY2VUeXBlOjpEb2N1
bWVudDsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5k
LT5zZXRJc1RleHRGaWxlKHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICByZXNvdXJjZVR5cGUgPSBSZXNvdXJjZVR5cGU6Ok90aGVyOworICAgICAgICAgICAgICAg
IGVudHJ5Rm9yRnJvbnRlbmQtPnNldElzVGV4dEZpbGUoRE9NSW1wbGVtZW50YXRpb246OmlzWE1M
TUlNRVR5cGUobWltZVR5cGUpIHx8IERPTUltcGxlbWVudGF0aW9uOjppc1RleHRNSU1FVHlwZSht
aW1lVHlwZSkpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5k
LT5zZXRNaW1lVHlwZShtaW1lVHlwZSk7CiAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5kLT5z
ZXRSZXNvdXJjZVR5cGUocmVzb3VyY2VUeXBlKTsKQEAgLTMzNiwxMiArMzQ0LDEyIEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgfkdldE1ldGFkYXRhVGFzaygpCiAgICAgewotICAgICAgICByZXBv
cnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQo
RmlsZUVycm9yOjpBQk9SVF9FUlIpOwogICAgIH0KIAogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmls
ZUVycm9yKiBlcnJvcikKICAgICB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChlcnJvci0+Y29kZSgp
LCAwKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM0OSw3ICszNTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBk
aWRHZXRFbnRyeShFbnRyeSopOwogICAgIGJvb2wgZGlkR2V0TWV0YWRhdGEoTWV0YWRhdGEqKTsK
IAotICAgIHZvaWQgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwg
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6TWV0YWRhdGE+IG1ldGFkYXRhKQor
ICAgIHZvaWQgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgUGFz
c1JlZlB0cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6TWV0YWRhdGE+IG1ldGFkYXRhID0gMCkK
ICAgICB7CiAgICAgICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250ZW5kUHJv
dmlkZXItPmZyb250ZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0zODUsNyArMzkzLDcg
QEAgdm9pZCBHZXRNZXRhZGF0YVRhc2s6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpCiBib29sIEdldE1ldGFkYXRhVGFzazo6ZGlkR2V0RW50cnko
RW50cnkqIGVudHJ5KQogewogICAgIGlmICghZW50cnktPmZpbGVzeXN0ZW0oKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKSB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkFCT1JU
X0VSUiwgMCk7CisgICAgICAgIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkFCT1JUX0VSUik7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtNDA3LDE0ICs0MTUsMTQgQEAgYm9vbCBH
ZXRNZXRhZGF0YVRhc2s6OmRpZEdldE1ldGFkYXRhKE1ldGFkYXRhKiBtZXRhZGF0YSkKIGNsYXNz
IFJlYWRGaWxlVGFzayA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShSZWFkRmlsZVRhc2spOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJl
YWRGaWxlVGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gZnJvbnRlbmRQ
cm92aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGxvbmcgbG9uZyBzdGFy
dCwgbG9uZyBsb25nIGVuZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZWFkRmlsZVRhc2s+IGNy
ZWF0ZShQYXNzUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGludCBy
ZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdXJsLCBib29sIHJlYWRBc1RleHQsIGxvbmcgbG9uZyBz
dGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZWFkRmlsZVRhc2soZnJvbnRlbmRQcm92aWRlciwgcmVx
dWVzdElkLCB1cmwsIHN0YXJ0LCBlbmQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBS
ZWFkRmlsZVRhc2soZnJvbnRlbmRQcm92aWRlciwgcmVxdWVzdElkLCB1cmwsIHJlYWRBc1RleHQs
IHN0YXJ0LCBlbmQsIGNoYXJzZXQpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5SZWFkRmlsZVRh
c2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSLCAw
KTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSKTsKICAgICB9CiAK
ICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTQzNiw3ICs0NDQs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmlsZUVycm9yKiBl
cnJvcikKICAgICB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChlcnJvci0+Y29kZSgpLCAwKTsKKyAg
ICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKQEAgLTQ0NCwyNyArNDUyLDMyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBkaWRHZXRG
aWxlKEZpbGUqKTsKICAgICB2b2lkIGRpZFJlYWQoKTsKIAotICAgIHZvaWQgcmVwb3J0UmVzdWx0
KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgY29uc3QgU3RyaW5nKiByZXN1bHQpCisg
ICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JDb2RlLCBjb25z
dCBTdHJpbmcqIHJlc3VsdCA9IDAsIGNvbnN0IFN0cmluZyogY2hhcnNldCA9IDApCiAgICAgewog
ICAgICAgICBpZiAoIW1fZnJvbnRlbmRQcm92aWRlciB8fCAhbV9mcm9udGVuZFByb3ZpZGVyLT5m
cm9udGVuZCgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2Zyb250ZW5kUHJvdmlk
ZXItPmZyb250ZW5kKCktPmZpbGVDb250ZW50UmVjZWl2ZWQobV9yZXF1ZXN0SWQsIHN0YXRpY19j
YXN0PGludD4oZXJyb3JDb2RlKSwgcmVzdWx0KTsKKyAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVy
LT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKG1fcmVxdWVzdElkLCBzdGF0aWNfY2Fz
dDxpbnQ+KGVycm9yQ29kZSksIHJlc3VsdCwgY2hhcnNldCk7CiAgICAgICAgIG1fZnJvbnRlbmRQ
cm92aWRlciA9IDA7CiAgICAgfQogCi0gICAgUmVhZEZpbGVUYXNrKFBhc3NSZWZQdHI8RnJvbnRl
bmRQcm92aWRlcj4gZnJvbnRlbmRQcm92aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5n
JiB1cmwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkKKyAgICBSZWFkRmlsZVRhc2so
UGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVyLCBpbnQgcmVxdWVz
dElkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCByZWFkQXNUZXh0LCBsb25nIGxvbmcgc3RhcnQs
IGxvbmcgbG9uZyBlbmQsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKICAgICAgICAgOiBFdmVudExp
c3RlbmVyKEV2ZW50TGlzdGVuZXI6OkNQUEV2ZW50TGlzdGVuZXJUeXBlKQogICAgICAgICAsIG1f
ZnJvbnRlbmRQcm92aWRlcihmcm9udGVuZFByb3ZpZGVyKQogICAgICAgICAsIG1fcmVxdWVzdElk
KHJlcXVlc3RJZCkKICAgICAgICAgLCBtX3VybChQYXJzZWRVUkxTdHJpbmcsIHVybCkKKyAgICAg
ICAgLCBtX3JlYWRBc1RleHQocmVhZEFzVGV4dCkKICAgICAgICAgLCBtX3N0YXJ0KHN0YXJ0KQot
ICAgICAgICAsIG1fZW5kKGVuZCkgeyB9CisgICAgICAgICwgbV9lbmQoZW5kKQorICAgICAgICAs
IG1fY2hhcnNldChjaGFyc2V0KSB7IH0KIAogICAgIFJlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBt
X2Zyb250ZW5kUHJvdmlkZXI7CiAgICAgaW50IG1fcmVxdWVzdElkOwogICAgIEtVUkwgbV91cmw7
CisgICAgYm9vbCBtX3JlYWRBc1RleHQ7CiAgICAgaW50IG1fc3RhcnQ7CiAgICAgbG9uZyBsb25n
IG1fZW5kOworICAgIFN0cmluZyBtX21pbWVUeXBlOworICAgIFN0cmluZyBtX2NoYXJzZXQ7CiAK
ICAgICBSZWZQdHI8RmlsZVJlYWRlcj4gbV9yZWFkZXI7CiB9OwpAQCAtNTA0LDYgKzUxNyw4IEBA
IGJvb2wgUmVhZEZpbGVUYXNrOjpkaWRHZXRFbnRyeShFbnRyeSogZW50cnkpCiAgICAgc3RhdGlj
X2Nhc3Q8RmlsZUVudHJ5Kj4oZW50cnkpLT5maWxlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxs
YmFjayk7CiAKICAgICBtX3JlYWRlciA9IEZpbGVSZWFkZXI6OmNyZWF0ZShlbnRyeS0+ZmlsZXN5
c3RlbSgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIG1fbWltZVR5cGUgPSBNSU1F
VHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoZW50cnktPm5hbWUoKSk7CisKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNTIwLDkgKzUzNSwxOSBAQCBib29sIFJlYWRGaWxlVGFzazo6
ZGlkR2V0RmlsZShGaWxlKiBmaWxlKQogCiB2b2lkIFJlYWRGaWxlVGFzazo6ZGlkUmVhZCgpCiB7
Ci0gICAgUmVmUHRyPEFycmF5QnVmZmVyPiByZXN1bHQgPSBtX3JlYWRlci0+YXJyYXlCdWZmZXJS
ZXN1bHQoKTsKLSAgICBTdHJpbmcgZW5jb2RlZFJlc3VsdCA9IGJhc2U2NEVuY29kZShzdGF0aWNf
Y2FzdDxjaGFyKj4ocmVzdWx0LT5kYXRhKCkpLCByZXN1bHQtPmJ5dGVMZW5ndGgoKSk7Ci0gICAg
cmVwb3J0UmVzdWx0KHN0YXRpY19jYXN0PEZpbGVFcnJvcjo6RXJyb3JDb2RlPigwKSwgJmVuY29k
ZWRSZXN1bHQpOworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gbV9yZWFkZXItPmFy
cmF5QnVmZmVyUmVzdWx0KCk7CisKKyAgICBpZiAoIW1fcmVhZEFzVGV4dCkgeworICAgICAgICBT
dHJpbmcgcmVzdWx0ID0gYmFzZTY0RW5jb2RlKHN0YXRpY19jYXN0PGNoYXIqPihidWZmZXItPmRh
dGEoKSksIGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KHN0YXRp
Y19jYXN0PEZpbGVFcnJvcjo6RXJyb3JDb2RlPigwKSwgJnJlc3VsdCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IFRl
eHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZShtX21pbWVUeXBlLCBtX2NoYXJzZXQsIHRydWUpOwor
ICAgIFN0cmluZyByZXN1bHQgPSBkZWNvZGVyLT5kZWNvZGUoc3RhdGljX2Nhc3Q8Y2hhcio+KGJ1
ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkpOworICAgIHJlc3VsdCArPSBkZWNv
ZGVyLT5mbHVzaCgpOworICAgIG1fY2hhcnNldCA9IGRlY29kZXItPmVuY29kaW5nKCkuZG9tTmFt
ZSgpOworICAgIHJlcG9ydFJlc3VsdChzdGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4o
MCksICZyZXN1bHQsICZtX2NoYXJzZXQpOwogfQogCiB9CkBAIC02MDMsNyArNjI4LDcgQEAgdm9p
ZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RNZXRhZGF0YShFcnJvclN0cmluZyog
ZXJyb3IsIGNvbnN0IFN0cmluZyYKICAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVyLT5mcm9udGVu
ZCgpLT5tZXRhZGF0YVJlY2VpdmVkKCpyZXF1ZXN0SWQsIHN0YXRpY19jYXN0PGludD4oRmlsZUVy
cm9yOjpBQk9SVF9FUlIpLCAwKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6
OnJlcXVlc3RGaWxlQ29udGVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBpbnQqIHN0YXJ0LCBjb25zdCBpbnQqIGVuZCwgaW50KiByZXF1ZXN0SWQpCit2b2lk
IEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250ZW50KEVycm9yU3RyaW5n
KiBlcnJvciwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgcmVhZEFzVGV4dCwgY29uc3QgaW50KiBz
dGFydCwgY29uc3QgaW50KiBlbmQsIGNvbnN0IFN0cmluZyogY2hhcnNldCwgaW50KiByZXF1ZXN0
SWQpCiB7CiAgICAgaWYgKCFtX2VuYWJsZWQgfHwgIW1fZnJvbnRlbmRQcm92aWRlcikgewogICAg
ICAgICAqZXJyb3IgPSAiRmlsZVN5c3RlbSBhZ2VudCBpcyBub3QgZW5hYmxlZCI7CkBAIC02MTQs
OSArNjM5LDkgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29u
dGVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmkKICAgICAqcmVxdWVzdElkID0gbV9u
ZXh0UmVxdWVzdElkKys7CiAKICAgICBpZiAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGb3JPcmlnaW4oU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcodXJsKS5nZXQoKSkpCi0gICAgICAgIFJlYWRGaWxl
VGFzazo6Y3JlYXRlKG1fZnJvbnRlbmRQcm92aWRlciwgKnJlcXVlc3RJZCwgdXJsLCBzdGFydCA/
ICpzdGFydCA6IDAsIGVuZCA/ICplbmQgOiBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46
Om1heCgpKS0+c3RhcnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgICAgIFJlYWRGaWxl
VGFzazo6Y3JlYXRlKG1fZnJvbnRlbmRQcm92aWRlciwgKnJlcXVlc3RJZCwgdXJsLCByZWFkQXNU
ZXh0LCBzdGFydCA/ICpzdGFydCA6IDAsIGVuZCA/ICplbmQgOiBzdGQ6Om51bWVyaWNfbGltaXRz
PGxvbmcgbG9uZz46Om1heCgpLCBjaGFyc2V0ID8gKmNoYXJzZXQgOiAiIiktPnN0YXJ0KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIGVsc2UKLSAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVy
LT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKCpyZXF1ZXN0SWQsIHN0YXRpY19jYXN0
PGludD4oRmlsZUVycm9yOjpBQk9SVF9FUlIpLCAwKTsKKyAgICAgICAgbV9mcm9udGVuZFByb3Zp
ZGVyLT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKCpyZXF1ZXN0SWQsIHN0YXRpY19j
YXN0PGludD4oRmlsZUVycm9yOjpBQk9SVF9FUlIpLCAwLCAwKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JGaWxlU3lzdGVtQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQuaAppbmRleCAwZTU2YjM4Zjk5MzkxZTliOGI3MzdhYmQwMWEwMWI2NDFlNGU5YTczLi41
NmEyOTI2MDI4MTBhNjQxYzAyY2IwMmY5NTM3M2Y2YzNmMWZmMWY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW1Sb290
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgdHlwZSwg
aW50KiByZXF1ZXN0SWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGlyZWN0
b3J5Q29udGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQqIHJlcXVlc3RJ
ZCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RNZXRhZGF0YShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQqIHJlcXVlc3RJZCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RGaWxlQ29udGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBpbnQqIHN0YXJ0LCBjb25zdCBpbnQqIGVuZCwgaW50KiByZXF1ZXN0SWQpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RmlsZUNvbnRlbnQoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCByZWFkQXNUZXh0LCBjb25zdCBpbnQqIHN0YXJ0LCBj
b25zdCBpbnQqIGVuZCwgY29uc3QgU3RyaW5nKiBjaGFyc2V0LCBpbnQqIHJlcXVlc3RJZCkgT1ZF
UlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQq
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpIE9WRVJSSURFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVt
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1N
b2RlbC5qcwppbmRleCA0MTkzOWVlYTI2YjQyZWFjMWQ5Zjk5YjlkZWZjNTg1OGIzYzdlOTY4Li4x
ODFkZThmM2Q0MTQ2YWRmMjVkNTRmYWE2ZTQ4MjFmZjUyMmEyZDlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcwpAQCAt
MjQ4LDEzICsyNDgsMTUgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUg
PSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9k
ZWwuRmlsZX0gZmlsZQotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydAotICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBlbmQKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5nPSl9
IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtib29sYWVufSByZWFkQXNUZXh0CisgICAgICogQHBh
cmFtIHtudW1iZXI9fSBzdGFydAorICAgICAqIEBwYXJhbSB7bnVtYmVyPX0gZW5kCisgICAgICog
QHBhcmFtIHtzdHJpbmc9fSBjaGFyc2V0CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIs
IHN0cmluZz0sIHN0cmluZz0pfSBjYWxsYmFjawogICAgICAqLwotICAgIHJlcXVlc3RGaWxlQ29u
dGVudDogZnVuY3Rpb24oZmlsZSwgc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVxdWVzdEZp
bGVDb250ZW50OiBmdW5jdGlvbihmaWxlLCByZWFkQXNUZXh0LCBzdGFydCwgZW5kLCBjaGFyc2V0
LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHRoaXMuX2FnZW50V3JhcHBlci5yZXF1ZXN0Rmls
ZUNvbnRlbnQoZmlsZS51cmwsIHN0YXJ0LCBlbmQsIGNhbGxiYWNrKTsKKyAgICAgICAgdGhpcy5f
YWdlbnRXcmFwcGVyLnJlcXVlc3RGaWxlQ29udGVudChmaWxlLnVybCwgcmVhZEFzVGV4dCwgc3Rh
cnQsIGVuZCwgY2hhcnNldCwgY2FsbGJhY2spOwogICAgIH0KIH0KIApAQCAtNDA1LDYgKzQwNyw3
IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZSA9IGZ1bmN0aW9uKGZpbGVTeXN0
ZW1Nb2RlbCwgZmlsZVN5c3RlbSwgYmFja2VuCiAKICAgICB0aGlzLl9taW1lVHlwZSA9IGJhY2tl
bmRFbnRyeS5taW1lVHlwZTsKICAgICB0aGlzLl9yZXNvdXJjZVR5cGUgPSBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUeXBlc1tiYWNrZW5kRW50cnkucmVzb3VyY2VUeXBlXTsKKyAgICB0aGlzLl9pc1Rl
eHRGaWxlID0gYmFja2VuZEVudHJ5LmlzVGV4dEZpbGU7CiB9CiAKIFdlYkluc3BlY3Rvci5GaWxl
U3lzdGVtTW9kZWwuRmlsZS5wcm90b3R5cGUgPSB7CkBAIC00MjUsMTMgKzQyOCwyMyBAQCBXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGUucHJvdG90eXBlID0gewogICAgIH0sCiAKICAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQKLSAgICAgKiBAcGFyYW0ge251bWJl
cn0gZW5kCisgICAgICogQHR5cGUge2Jvb2xlYW59CisgICAgICovCisgICAgZ2V0IGlzVGV4dEZp
bGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoZXMuX2lzVGV4dEZpbGU7CisgICAgfSwKKwor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVhZEFzVGV4dAorICAgICAqIEBwYXJh
bSB7bnVtYmVyPX0gc3RhcnQKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IGVuZAorICAgICAqIEBw
YXJhbSB7c3RyaW5nPX0gY2hhcnNldAogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBz
dHJpbmc9KX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICByZXF1ZXN0RmlsZUNvbnRlbnQ6IGZ1bmN0
aW9uKHN0YXJ0LCBlbmQsIGNhbGxiYWNrKQorICAgIHJlcXVlc3RGaWxlQ29udGVudDogZnVuY3Rp
b24ocmVhZEFzVGV4dCwgc3RhcnQsIGVuZCwgY2hhcnNldCwgY2FsbGJhY2spCiAgICAgewotICAg
ICAgICB0aGlzLmZpbGVTeXN0ZW1Nb2RlbC5yZXF1ZXN0RmlsZUNvbnRlbnQodGhpcywgc3RhcnQs
IGVuZCwgY2FsbGJhY2spOworICAgICAgICB0aGlzLmZpbGVTeXN0ZW1Nb2RlbC5yZXF1ZXN0Rmls
ZUNvbnRlbnQodGhpcywgcmVhZEFzVGV4dCwgc3RhcnQsIGVuZCwgY2hhcnNldCwgY2FsbGJhY2sp
OwogICAgIH0KIH0KIApAQCAtNTQwLDE0ICs1NTMsMTYgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1SZXF1ZXN0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0g
e3N0cmluZ30gdXJsCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0Ci0gICAgICogQHBhcmFt
IHtudW1iZXJ9IGVuZAotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBzdHJpbmcpfSBj
YWxsYmFjaworICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVhZEFzVGV4dAorICAgICAqIEBwYXJh
bSB7bnVtYmVyPX0gc3RhcnQKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IGVuZAorICAgICAqIEBw
YXJhbSB7c3RyaW5nPX0gY2hhcnNldAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBz
dHJpbmc9LCBzdHJpbmc9KX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICByZXF1ZXN0RmlsZUNvbnRl
bnQ6IGZ1bmN0aW9uKHVybCwgc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVxdWVzdEZpbGVD
b250ZW50OiBmdW5jdGlvbih1cmwsIHJlYWRBc1RleHQsIHN0YXJ0LCBlbmQsIGNoYXJzZXQsIGNh
bGxiYWNrKQogICAgIHsKICAgICAgICAgdmFyIHN0b3JlID0gdGhpcy5fcGVuZGluZ0ZpbGVDb250
ZW50UmVxdWVzdHM7Ci0gICAgICAgIEZpbGVTeXN0ZW1BZ2VudC5yZXF1ZXN0RmlsZUNvbnRlbnQo
dXJsLCBzdGFydCwgZW5kLCByZXF1ZXN0QWNjZXB0ZWQpOworICAgICAgICBGaWxlU3lzdGVtQWdl
bnQucmVxdWVzdEZpbGVDb250ZW50KHVybCwgcmVhZEFzVGV4dCwgc3RhcnQsIGVuZCwgY2hhcnNl
dCwgcmVxdWVzdEFjY2VwdGVkKTsKIAogICAgICAgICBmdW5jdGlvbiByZXF1ZXN0QWNjZXB0ZWQo
ZXJyb3IsIHJlcXVlc3RJZCkKICAgICAgICAgewpAQCAtNTYwLDE0ICs1NzUsMTUgQEAgV2ViSW5z
cGVjdG9yLkZpbGVTeXN0ZW1SZXF1ZXN0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICogQHBh
cmFtIHtudW1iZXJ9IHJlcXVlc3RJZAogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvckNvZGUK
ICAgICAgKiBAcGFyYW0ge3N0cmluZz19IGNvbnRlbnQKKyAgICAgKiBAcGFyYW0ge3N0cmluZz19
IGNoYXJzZXQKICAgICAgKi8KLSAgICBfZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rpb24ocmVx
dWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQpCisgICAgX2ZpbGVDb250ZW50UmVjZWl2ZWQ6IGZ1
bmN0aW9uKHJlcXVlc3RJZCwgZXJyb3JDb2RlLCBjb250ZW50LCBjaGFyc2V0KQogICAgIHsKLSAg
ICAgICAgdmFyIGNhbGxiYWNrID0gLyoqIEB0eXBlIHtmdW5jdGlvbihudW1iZXIsIHN0cmluZz0p
fSAqLyB0aGlzLl9wZW5kaW5nRmlsZUNvbnRlbnRSZXF1ZXN0c1tyZXF1ZXN0SWRdOworICAgICAg
ICB2YXIgY2FsbGJhY2sgPSAvKiogQHR5cGUge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5nPSwgc3Ry
aW5nPSl9ICovIHRoaXMuX3BlbmRpbmdGaWxlQ29udGVudFJlcXVlc3RzW3JlcXVlc3RJZF07CiAg
ICAgICAgIGlmICghY2FsbGJhY2spCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGRlbGV0
ZSB0aGlzLl9wZW5kaW5nRmlsZUNvbnRlbnRSZXF1ZXN0c1tyZXF1ZXN0SWRdOwotICAgICAgICBj
YWxsYmFjayhlcnJvckNvZGUsIGNvbnRlbnQpOworICAgICAgICBjYWxsYmFjayhlcnJvckNvZGUs
IGNvbnRlbnQsIGNoYXJzZXQpOwogICAgIH0KIH0KIApAQCAtNjE2LDkgKzYzMiwxMCBAQCBXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAqIEBwYXJh
bSB7bnVtYmVyfSByZXF1ZXN0SWQKICAgICAgKiBAcGFyYW0ge251bWJlcn0gZXJyb3JDb2RlCiAg
ICAgICogQHBhcmFtIHtzdHJpbmc9fSBjb250ZW50CisgICAgICogQHBhcmFtIHtzdHJpbmc9fSBj
aGFyc2V0CiAgICAgICovCi0gICAgZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rpb24ocmVxdWVz
dElkLCBlcnJvckNvZGUsIGNvbnRlbnQpCisgICAgZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rp
b24ocmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQsIGNoYXJzZXQpCiAgICAgewotICAgICAg
ICB0aGlzLl9hZ2VudFdyYXBwZXIuX2ZpbGVDb250ZW50UmVjZWl2ZWQocmVxdWVzdElkLCBlcnJv
ckNvZGUsIGNvbnRlbnQpOworICAgICAgICB0aGlzLl9hZ2VudFdyYXBwZXIuX2ZpbGVDb250ZW50
UmVjZWl2ZWQocmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQsIGNoYXJzZXQpOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBhZWQ3NmVmNWY4Y2I1ZGM2ZWJlNzRkZTJmOThhODhjYTkyMTNmZGRkLi40MGVm
ZjkzMzAxMWE5MGE1ZjkxODRjOTNiYzcxYjAxNGRlMjMxNTRjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMDctMDkgIFRhaWp1IFRzdWlraSAgPHR6aWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEFkZCB0ZXh0IGZpbGUgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbUFn
ZW50OjpyZXF1ZXN0RmlsZUNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkwNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZGly
ZWN0b3J5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxl
c3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRtbDoKKwogMjAxMi0wNy0wOCAgSGF5YXRvIEl0
byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVt
L3JlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3RvcnktZXhwZWN0ZWQudHh0CmluZGV4IDBhMGM3
MzU5Mjg0NTI5OGViOTY4OWUzZDRmNWUxY2IxNmYzYTlhYzEuLjM5OWFhNTYzMzM2OTJjMTQxNzhm
NDg2ODEzY2U4NTY2OWUxZjQ3MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3RvcnktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3Rvcnkt
ZXhwZWN0ZWQudHh0CkBAIC02LDYgKzYsNyBAQCBlbnRyaWVzOgogICAgIHVybDogZmlsZXN5c3Rl
bTpodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcG9yYXJ5L2hvZ2UvcGl5by5odG1sCiAgICAgbmFt
ZTogcGl5by5odG1sCiAgICAgaXNEaXJlY3Rvcnk6IGZhbHNlCisgICAgaXNUZXh0RmlsZTogdHJ1
ZQogICAgIG1pbWVUeXBlOiB0ZXh0L2h0bWwKICAgICByZXNvdXJjZVR5cGU6IERvY3VtZW50CiAg
IDE6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lz
dGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQKaW5kZXggMDM4OTc3NDk4M2E1
MmJjODA4YTJiMGJlODAyYmEyOGI1Mjg1MGUwYy4uMDMzMGJiZTJlYzg3YTMxZDZhOTNmMDQwNDFh
MWEwZWU2OTU3MzE2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxlLWV4cGVjdGVkLnR4dApAQCAt
MSw1ICsxLDYgQEAKLVRlc3RzIHJlYWRGaWxlLgorVGVzdHMgcmVxdWVzdEZpbGVDb250ZW50Lgog
CiBlcnJvckNvZGUgPSAwCi1jb250ZW50ID0gIlVFRlRVdz09IiBbUEFTU10KK2NvbnRlbnQgPSAi
UEFTUyIKK2NoYXJzZXQgPSBVVEYtOAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRtbAppbmRleCAzNDM0MWQ4
YmM2ODYyMzljZTg2ZGNlMjFlNDkyZWM5ZTIzMGNjNzFiLi4yMDYxMmY0MzdkMjJjN2QwNWJkMmZl
MmIyODE1M2YzMWExZmYzYTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxlLmh0bWwKQEAgLTE4LDIyICsxOCwy
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3Qud3JpdGVGaWxlKCIvaG9nZS9mdWdhIiwgInBpUEFTU3lvIiwgc3Rl
cDMpOworICAgICAgICBJbnNwZWN0b3JUZXN0LndyaXRlRmlsZSgiL2hvZ2UvZnVnYS50eHQiLCAi
cGlQQVNTeW8iLCBzdGVwMyk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDMoKQogICAgIHsK
LSAgICAgICAgcmVxdWVzdE1hbmFnZXIucmVxdWVzdEZpbGVDb250ZW50KCJmaWxlc3lzdGVtOmh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wb3JhcnkvaG9nZS9mdWdhIiwgMiwgNiwgc3RlcDQpOwor
ICAgICAgICByZXF1ZXN0TWFuYWdlci5yZXF1ZXN0RmlsZUNvbnRlbnQoImZpbGVzeXN0ZW06aHR0
cDovLzEyNy4wLjAuMTo4MDAwL3RlbXBvcmFyeS9ob2dlL2Z1Z2EudHh0IiwgdHJ1ZSwgMiwgNiwg
IlVURi04Iiwgc3RlcDQpOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHN0ZXA0KGVycm9yQ29kZSwg
Y29udGVudCkKKyAgICBmdW5jdGlvbiBzdGVwNChlcnJvckNvZGUsIGNvbnRlbnQsIGNoYXJzZXQp
CiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3JDb2RlID0gIiAr
IGVycm9yQ29kZSk7CiAgICAgICAgIGlmIChjb250ZW50KQotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoImNvbnRlbnQgPSBcIiIgKyBjb250ZW50ICsgIlwiIFsiICsgYXRvYihj
b250ZW50KSArICJdIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiY29u
dGVudCA9IFwiIiArIGNvbnRlbnQgKyAiXCIiKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNvbnRlbnQgPSAobnVsbCkiKTsKIAorICAgICAgICBp
ZiAoY2hhcnNldCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjaGFyc2V0
ID0gIiArIGNoYXJzZXQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiY2hhcnNldCA9IChudWxsKSIpOworCiAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2xlYXJGaWxlU3lzdGVtKHN0ZXA1KTsKICAgICB9CiAKQEAgLTQ1LDYgKzUwLDYgQEAgZnVuY3Rp
b24gdGVzdCgpCiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHA+VGVzdHMgcmVhZEZpbGUu
PC9wPgorPHA+VGVzdHMgcmVxdWVzdEZpbGVDb250ZW50LjwvcD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151207</attachid>
            <date>2012-07-09 01:10:33 -0700</date>
            <delta_ts>2012-07-09 01:22:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90439-20120709171032.patch</filename>
            <type>text/plain</type>
            <size>25308</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUyNWNkNmEzOGZjNzc2
ZjBlODRmNzQ4MDVkZGY4MjQwMDMwMzRiOC4uYmYwYzgxMDhmMTNlMDNlYThiZjg0NDhhOTQ4YmNm
M2U0NTBlYTkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA3LTA5ICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
ZGQgdGV4dCBmaWxlIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDQz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0
ZW1Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90
eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3Rl
bU1vZGVsLkZpbGUucHJvdG90eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3RvdHlwZS5fZmlsZUNvbnRlbnRS
ZWNlaXZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbURpc3BhdGNoZXIucHJv
dG90eXBlLmZpbGVDb250ZW50UmVjZWl2ZWQpOgorCiAyMDEyLTA3LTA4ICBWaXZlayBHYWxhdGFn
ZSAgPHZpdmVrZ2FsYXRhZ2VAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgc2hvdWxkIG5vdCBnZW5lcmF0ZSBzdGF0ZW1lbnRzIHdp
dGggbm8gZWZmZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXgg
NTk3OTdhYmY4MWNlNGYzYjE5YWFlZThhMDMxNTdiMWNlNDZmZjY2Ni4uZDE3OGQ5ZDJkYWQ2YTFk
MWQ4ZGM3Y2EzMTk5Yjk5ZmMxMjQ1OGNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgpAQCAtMTQxOCw3ICsxNDE4LDggQEAKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBuYW1l
IG9mIHRoZSBmaWxlIG9yIGRpcmVjdG9yeS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaXNEaXJlY3RvcnkiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRy
dWUgaWYgdGhlIGVudHJ5IGlzIGEgZGlyZWN0b3J5LiIgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJtaW1lVHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJNSU1FIHR5cGUgb2YgdGhlIGVudHJ5LCBhdmFpbGFibGUgZm9yIGEg
ZmlsZSBvbmx5LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZVR5
cGUiLCAiJHJlZiI6ICJQYWdlLlJlc291cmNlVHlwZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJSZXNvdXJjZVR5cGUgb2YgdGhlIGVudHJ5LCBhdmFpbGFibGUgZm9yIGEgZmls
ZSBvbmx5LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc291cmNlVHlwZSIs
ICIkcmVmIjogIlBhZ2UuUmVzb3VyY2VUeXBlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIlJlc291cmNlVHlwZSBvZiB0aGUgZW50cnksIGF2YWlsYWJsZSBmb3IgYSBmaWxlIG9u
bHkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzVGV4dEZpbGUiLCAidHlw
ZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYg
dGhlIGVudHJ5IGlzIGEgdGV4dCBmaWxlLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcHJlc2VudHMgYSBicm93c2VyIHNpZGUgZmlsZSBv
ciBkaXJlY3RvcnkuIgogICAgICAgICAgICAgfSwKQEAgLTE0NzYsOCArMTQ3NywxMCBAQAogICAg
ICAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3RGaWxlQ29udGVudCIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgZmlsZSB0aGF0IHRo
ZSBmcm9udGVuZCBpcyByZXF1ZXN0aW5nIHRvIHJlYWQgZnJvbS4iIH0sCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicmVhZEFzVGV4dCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiVHJ1ZSBpZiB0aGUgY29udGVudCBzaG91bGQgYmUgcmVhZCBhcyB0ZXh0LCBvdGhl
cndpc2UgdGhlIHJlc3VsdCB3aWxsIGJlIHJldHVybmVkIGFzIGJhc2U2NCBlbmNvZGVkIHRleHQu
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0IiwgInR5cGUiOiAiaW50
ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTcGVjaWZpZXMgdGhlIHN0
YXJ0IG9mIHJhbmdlIHRvIHJlYWQuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVuZCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiU3BlY2lmaWVzIHRoZSBlbmQgb2YgcmFuZ2UgdG8gcmVhZCBleGNsdXNpdmVseS4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyB0aGUgZW5kIG9mIHJhbmdl
IHRvIHJlYWQgZXhjbHVzaXZlbHkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNoYXJzZXQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiT3ZlcnJpZGVzIGNoYXJzZXQgb2YgdGhlIGNvbnRlbnQgd2hlbiBjb250ZW50IGlzIHNl
cnZlZCBhcyB0ZXh0LiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJl
dHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgIiRy
ZWYiOiAiUmVxdWVzdElkIiwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3QgaWRlbnRpZmllci4gQ29y
cmVzcG9uZGluZyBmaWxlQ29udGVudFJlY2VpdmVkIGV2ZW50IHNob3VsZCBoYXZlIHNhbWUgcmVx
dWVzdElkIHdpdGggdGhpcy4iIH0KQEAgLTE1MTgsNyArMTUyMSw4IEBACiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVz
dElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0IElkZW50aWZp
ZXIgdGhhdCB3YXMgcmV0dXJuZWQgaW4gcmVzcG9uc2UgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcmVx
dWVzdEZpbGVDb250ZW50IGNvbW1hbmQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImVycm9yQ29kZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiMCwgaWYg
bm8gZXJyb3IuIE90aGVyd2lzZSwgZXJyb3JDb2RlIGlzIHNldCB0byBGaWxlRXJyb3I6OkVycm9y
Q29kZSB2YWx1ZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVudCIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb250
YWlucyBjb250ZW50IG9mIHRoZSBmaWxlIGFzIGJhc2U2NCBlbmNvZGVkIHN0cmluZy4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3RyaW5nIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbnRlbnQgb2YgdGhlIGZpbGUuIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoYXJzZXQiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ2hhcnNldCBvZiB0aGUgY29u
dGVudCBpZiBpdCBpcyBzZXJ2ZWQgYXMgdGV4dC4iIH0KICAgICAgICAgICAgICAgICBdLAogICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21wbGV0aW9uIGV2ZW50IG9mIHJlcXVlc3RG
aWxlQ29udGVudCBjb21tYW5kLiIKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKaW5kZXggODkwMTE3
NDZiNzQ1Y2I5NjJiYzc4NTRmYmEzOTE3ZmQyMjQzZmFkYy4uMjBhODllMjZmNzA3ZTZhNGY5NWNh
Mzk3ZTZhMmI1MWEzMzljOThhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIAogI2lu
Y2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJE
T01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRpcmVjdG9yeUVudHJ5LmgiCiAjaW5jbHVk
ZSAiRGlyZWN0b3J5UmVhZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTYxLDYgKzYy
LDggQEAKICNpbmNsdWRlICJNZXRhZGF0YUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAi
VGV4dEVuY29kaW5nLmgiCisjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogCiB1c2lu
ZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6QXJyYXk7CiAKQEAgLTE1Miw3ICsxNTUsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmlsZUVycm9yKik7CiAgICAgYm9vbCBkaWRHZXRF
bnRyeShFbnRyeSopOwogCi0gICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNv
ZGUgZXJyb3JDb2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4g
ZW50cnkpCisgICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JD
b2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4gZW50cnkgPSAw
KQogICAgIHsKICAgICAgICAgaWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRlbmRQ
cm92aWRlci0+ZnJvbnRlbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3Miw3ICsxNzUs
NyBAQCBwcml2YXRlOgogCiBib29sIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6ZGlkSGl0RXJyb3Io
RmlsZUVycm9yKiBlcnJvcikKIHsKLSAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSwgMCk7
CisgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgIHJldHVybiB0cnVlOwogfQog
CkBAIC0xODQsNyArMTg3LDcgQEAgdm9pZCBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OnN0YXJ0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICBlbHNlIGlm
IChtX3R5cGUgPT0gRE9NRmlsZVN5c3RlbUJhc2U6OnRlbXBvcmFyeVBhdGhQcmVmaXgpCiAgICAg
ICAgIHR5cGUgPSBGaWxlU3lzdGVtVHlwZVRlbXBvcmFyeTsKICAgICBlbHNlIHsKLSAgICAgICAg
cmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lOVEFYX0VSUiwgMCk7CisgICAgICAgIHJlcG9ydFJl
c3VsdChGaWxlRXJyb3I6OlNZTlRBWF9FUlIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0yMTIsNyArMjE1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UmVhZERpcmVjdG9yeVRh
c2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSLCAw
KTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSKTsKICAgICB9CiAK
ICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTIyMCwxNCArMjIz
LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBkaWRIaXRFcnJvcihGaWxlRXJyb3Iq
IGVycm9yKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCksIDApOwor
ICAgICAgICByZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAogICAgIGJvb2wgZGlkR2V0RW50cnkoRW50cnkqKTsKICAgICBib29sIGRpZFJl
YWREaXJlY3RvcnlFbnRyaWVzKEVudHJ5QXJyYXkqKTsKIAotICAgIHZvaWQgcmVwb3J0UmVzdWx0
KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgUGFzc1JlZlB0cjxBcnJheTxUeXBlQnVp
bGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+ID4gZW50cmllcykKKyAgICB2b2lkIHJlcG9ydFJlc3Vs
dChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBhc3NSZWZQdHI8QXJyYXk8VHlwZUJ1
aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiA+IGVudHJpZXMgPSAwKQogICAgIHsKICAgICAgICAg
aWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRlbmQo
KSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1Niw3ICsyNTksNyBAQCB2b2lkIFJlYWREaXJl
Y3RvcnlUYXNrOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KQogICAgIEZpbGVTeXN0ZW1UeXBlIHR5cGU7CiAgICAgU3RyaW5nIHBhdGg7CiAgICAg
aWYgKCFET01GaWxlU3lzdGVtQmFzZTo6Y3JhY2tGaWxlU3lzdGVtVVJMKG1fdXJsLCB0eXBlLCBw
YXRoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpTWU5UQVhfRVJSLCAwKTsK
KyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lOVEFYX0VSUik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTI3MCw3ICsyNzMsNyBAQCB2b2lkIFJlYWREaXJlY3RvcnlUYXNr
OjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQog
Ym9vbCBSZWFkRGlyZWN0b3J5VGFzazo6ZGlkR2V0RW50cnkoRW50cnkqIGVudHJ5KQogewogICAg
IGlmICghZW50cnktPmlzRGlyZWN0b3J5KCkpIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVF
cnJvcjo6VFlQRV9NSVNNQVRDSF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVy
cm9yOjpUWVBFX01JU01BVENIX0VSUik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApA
QCAtMjgzLDcgKzI4Niw3IEBAIGJvb2wgUmVhZERpcmVjdG9yeVRhc2s6OmRpZEdldEVudHJ5KEVu
dHJ5KiBlbnRyeSkKIHZvaWQgUmVhZERpcmVjdG9yeVRhc2s6OnJlYWREaXJlY3RvcnlFbnRyaWVz
KCkKIHsKICAgICBpZiAoIW1fZGlyZWN0b3J5UmVhZGVyLT5maWxlc3lzdGVtKCktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9S
VF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMDcsMTQgKzMxMCwxOSBAQCBib29sIFJlYWRE
aXJlY3RvcnlUYXNrOjpkaWRSZWFkRGlyZWN0b3J5RW50cmllcyhFbnRyeUFycmF5KiBlbnRyaWVz
KQogICAgICAgICBpZiAoIWVudHJ5LT5pc0RpcmVjdG9yeSgpKSB7CiAgICAgICAgICAgICBTdHJp
bmcgbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoZW50cnkt
Pm5hbWUoKSk7CiAgICAgICAgICAgICBSZXNvdXJjZVR5cGU6OkVudW0gcmVzb3VyY2VUeXBlOwot
ICAgICAgICAgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlw
ZShtaW1lVHlwZSkpCisgICAgICAgICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0
ZWRJbWFnZU1JTUVUeXBlKG1pbWVUeXBlKSkgewogICAgICAgICAgICAgICAgIHJlc291cmNlVHlw
ZSA9IFJlc291cmNlVHlwZTo6SW1hZ2U7Ci0gICAgICAgICAgICBlbHNlIGlmIChNSU1FVHlwZVJl
Z2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShtaW1lVHlwZSkpCisgICAgICAg
ICAgICAgICAgZW50cnlGb3JGcm9udGVuZC0+c2V0SXNUZXh0RmlsZShmYWxzZSk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1J
TUVUeXBlKG1pbWVUeXBlKSkgewogICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZSA9IFJlc291
cmNlVHlwZTo6U2NyaXB0OwotICAgICAgICAgICAgZWxzZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6
aXNTdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlKG1pbWVUeXBlKSkKKyAgICAgICAgICAgICAgICBl
bnRyeUZvckZyb250ZW5kLT5zZXRJc1RleHRGaWxlKHRydWUpOworICAgICAgICAgICAgfSBlbHNl
IGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGUobWltZVR5
cGUpKSB7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2VUeXBlID0gUmVzb3VyY2VUeXBlOjpEb2N1
bWVudDsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5k
LT5zZXRJc1RleHRGaWxlKHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICByZXNvdXJjZVR5cGUgPSBSZXNvdXJjZVR5cGU6Ok90aGVyOworICAgICAgICAgICAgICAg
IGVudHJ5Rm9yRnJvbnRlbmQtPnNldElzVGV4dEZpbGUoRE9NSW1wbGVtZW50YXRpb246OmlzWE1M
TUlNRVR5cGUobWltZVR5cGUpIHx8IERPTUltcGxlbWVudGF0aW9uOjppc1RleHRNSU1FVHlwZSht
aW1lVHlwZSkpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5k
LT5zZXRNaW1lVHlwZShtaW1lVHlwZSk7CiAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5kLT5z
ZXRSZXNvdXJjZVR5cGUocmVzb3VyY2VUeXBlKTsKQEAgLTMzNiwxMiArMzQ0LDEyIEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgfkdldE1ldGFkYXRhVGFzaygpCiAgICAgewotICAgICAgICByZXBv
cnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQo
RmlsZUVycm9yOjpBQk9SVF9FUlIpOwogICAgIH0KIAogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmls
ZUVycm9yKiBlcnJvcikKICAgICB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChlcnJvci0+Y29kZSgp
LCAwKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM0OSw3ICszNTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBk
aWRHZXRFbnRyeShFbnRyeSopOwogICAgIGJvb2wgZGlkR2V0TWV0YWRhdGEoTWV0YWRhdGEqKTsK
IAotICAgIHZvaWQgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwg
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6TWV0YWRhdGE+IG1ldGFkYXRhKQor
ICAgIHZvaWQgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgUGFz
c1JlZlB0cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6TWV0YWRhdGE+IG1ldGFkYXRhID0gMCkK
ICAgICB7CiAgICAgICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250ZW5kUHJv
dmlkZXItPmZyb250ZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0zODUsNyArMzkzLDcg
QEAgdm9pZCBHZXRNZXRhZGF0YVRhc2s6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpCiBib29sIEdldE1ldGFkYXRhVGFzazo6ZGlkR2V0RW50cnko
RW50cnkqIGVudHJ5KQogewogICAgIGlmICghZW50cnktPmZpbGVzeXN0ZW0oKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKSB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkFCT1JU
X0VSUiwgMCk7CisgICAgICAgIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkFCT1JUX0VSUik7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtNDA3LDE0ICs0MTUsMTQgQEAgYm9vbCBH
ZXRNZXRhZGF0YVRhc2s6OmRpZEdldE1ldGFkYXRhKE1ldGFkYXRhKiBtZXRhZGF0YSkKIGNsYXNz
IFJlYWRGaWxlVGFzayA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShSZWFkRmlsZVRhc2spOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJl
YWRGaWxlVGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gZnJvbnRlbmRQ
cm92aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGxvbmcgbG9uZyBzdGFy
dCwgbG9uZyBsb25nIGVuZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZWFkRmlsZVRhc2s+IGNy
ZWF0ZShQYXNzUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGludCBy
ZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdXJsLCBib29sIHJlYWRBc1RleHQsIGxvbmcgbG9uZyBz
dGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZWFkRmlsZVRhc2soZnJvbnRlbmRQcm92aWRlciwgcmVx
dWVzdElkLCB1cmwsIHN0YXJ0LCBlbmQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBS
ZWFkRmlsZVRhc2soZnJvbnRlbmRQcm92aWRlciwgcmVxdWVzdElkLCB1cmwsIHJlYWRBc1RleHQs
IHN0YXJ0LCBlbmQsIGNoYXJzZXQpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5SZWFkRmlsZVRh
c2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSLCAw
KTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSKTsKICAgICB9CiAK
ICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTQzNiw3ICs0NDQs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGJvb2wgZGlkSGl0RXJyb3IoRmlsZUVycm9yKiBl
cnJvcikKICAgICB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChlcnJvci0+Y29kZSgpLCAwKTsKKyAg
ICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKQEAgLTQ0NCwyNyArNDUyLDMyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBkaWRHZXRG
aWxlKEZpbGUqKTsKICAgICB2b2lkIGRpZFJlYWQoKTsKIAotICAgIHZvaWQgcmVwb3J0UmVzdWx0
KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgY29uc3QgU3RyaW5nKiByZXN1bHQpCisg
ICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JDb2RlLCBjb25z
dCBTdHJpbmcqIHJlc3VsdCA9IDAsIGNvbnN0IFN0cmluZyogY2hhcnNldCA9IDApCiAgICAgewog
ICAgICAgICBpZiAoIW1fZnJvbnRlbmRQcm92aWRlciB8fCAhbV9mcm9udGVuZFByb3ZpZGVyLT5m
cm9udGVuZCgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2Zyb250ZW5kUHJvdmlk
ZXItPmZyb250ZW5kKCktPmZpbGVDb250ZW50UmVjZWl2ZWQobV9yZXF1ZXN0SWQsIHN0YXRpY19j
YXN0PGludD4oZXJyb3JDb2RlKSwgcmVzdWx0KTsKKyAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVy
LT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKG1fcmVxdWVzdElkLCBzdGF0aWNfY2Fz
dDxpbnQ+KGVycm9yQ29kZSksIHJlc3VsdCwgY2hhcnNldCk7CiAgICAgICAgIG1fZnJvbnRlbmRQ
cm92aWRlciA9IDA7CiAgICAgfQogCi0gICAgUmVhZEZpbGVUYXNrKFBhc3NSZWZQdHI8RnJvbnRl
bmRQcm92aWRlcj4gZnJvbnRlbmRQcm92aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5n
JiB1cmwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkKKyAgICBSZWFkRmlsZVRhc2so
UGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVyLCBpbnQgcmVxdWVz
dElkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCByZWFkQXNUZXh0LCBsb25nIGxvbmcgc3RhcnQs
IGxvbmcgbG9uZyBlbmQsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKICAgICAgICAgOiBFdmVudExp
c3RlbmVyKEV2ZW50TGlzdGVuZXI6OkNQUEV2ZW50TGlzdGVuZXJUeXBlKQogICAgICAgICAsIG1f
ZnJvbnRlbmRQcm92aWRlcihmcm9udGVuZFByb3ZpZGVyKQogICAgICAgICAsIG1fcmVxdWVzdElk
KHJlcXVlc3RJZCkKICAgICAgICAgLCBtX3VybChQYXJzZWRVUkxTdHJpbmcsIHVybCkKKyAgICAg
ICAgLCBtX3JlYWRBc1RleHQocmVhZEFzVGV4dCkKICAgICAgICAgLCBtX3N0YXJ0KHN0YXJ0KQot
ICAgICAgICAsIG1fZW5kKGVuZCkgeyB9CisgICAgICAgICwgbV9lbmQoZW5kKQorICAgICAgICAs
IG1fY2hhcnNldChjaGFyc2V0KSB7IH0KIAogICAgIFJlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBt
X2Zyb250ZW5kUHJvdmlkZXI7CiAgICAgaW50IG1fcmVxdWVzdElkOwogICAgIEtVUkwgbV91cmw7
CisgICAgYm9vbCBtX3JlYWRBc1RleHQ7CiAgICAgaW50IG1fc3RhcnQ7CiAgICAgbG9uZyBsb25n
IG1fZW5kOworICAgIFN0cmluZyBtX21pbWVUeXBlOworICAgIFN0cmluZyBtX2NoYXJzZXQ7CiAK
ICAgICBSZWZQdHI8RmlsZVJlYWRlcj4gbV9yZWFkZXI7CiB9OwpAQCAtNTA0LDYgKzUxNyw4IEBA
IGJvb2wgUmVhZEZpbGVUYXNrOjpkaWRHZXRFbnRyeShFbnRyeSogZW50cnkpCiAgICAgc3RhdGlj
X2Nhc3Q8RmlsZUVudHJ5Kj4oZW50cnkpLT5maWxlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxs
YmFjayk7CiAKICAgICBtX3JlYWRlciA9IEZpbGVSZWFkZXI6OmNyZWF0ZShlbnRyeS0+ZmlsZXN5
c3RlbSgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIG1fbWltZVR5cGUgPSBNSU1F
VHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoZW50cnktPm5hbWUoKSk7CisKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNTIwLDkgKzUzNSwxOSBAQCBib29sIFJlYWRGaWxlVGFzazo6
ZGlkR2V0RmlsZShGaWxlKiBmaWxlKQogCiB2b2lkIFJlYWRGaWxlVGFzazo6ZGlkUmVhZCgpCiB7
Ci0gICAgUmVmUHRyPEFycmF5QnVmZmVyPiByZXN1bHQgPSBtX3JlYWRlci0+YXJyYXlCdWZmZXJS
ZXN1bHQoKTsKLSAgICBTdHJpbmcgZW5jb2RlZFJlc3VsdCA9IGJhc2U2NEVuY29kZShzdGF0aWNf
Y2FzdDxjaGFyKj4ocmVzdWx0LT5kYXRhKCkpLCByZXN1bHQtPmJ5dGVMZW5ndGgoKSk7Ci0gICAg
cmVwb3J0UmVzdWx0KHN0YXRpY19jYXN0PEZpbGVFcnJvcjo6RXJyb3JDb2RlPigwKSwgJmVuY29k
ZWRSZXN1bHQpOworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gbV9yZWFkZXItPmFy
cmF5QnVmZmVyUmVzdWx0KCk7CisKKyAgICBpZiAoIW1fcmVhZEFzVGV4dCkgeworICAgICAgICBT
dHJpbmcgcmVzdWx0ID0gYmFzZTY0RW5jb2RlKHN0YXRpY19jYXN0PGNoYXIqPihidWZmZXItPmRh
dGEoKSksIGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KHN0YXRp
Y19jYXN0PEZpbGVFcnJvcjo6RXJyb3JDb2RlPigwKSwgJnJlc3VsdCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gZGVjb2RlciA9IFRl
eHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZShtX21pbWVUeXBlLCBtX2NoYXJzZXQsIHRydWUpOwor
ICAgIFN0cmluZyByZXN1bHQgPSBkZWNvZGVyLT5kZWNvZGUoc3RhdGljX2Nhc3Q8Y2hhcio+KGJ1
ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkpOworICAgIHJlc3VsdCArPSBkZWNv
ZGVyLT5mbHVzaCgpOworICAgIG1fY2hhcnNldCA9IGRlY29kZXItPmVuY29kaW5nKCkuZG9tTmFt
ZSgpOworICAgIHJlcG9ydFJlc3VsdChzdGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4o
MCksICZyZXN1bHQsICZtX2NoYXJzZXQpOwogfQogCiB9CkBAIC02MDMsNyArNjI4LDcgQEAgdm9p
ZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RNZXRhZGF0YShFcnJvclN0cmluZyog
ZXJyb3IsIGNvbnN0IFN0cmluZyYKICAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVyLT5mcm9udGVu
ZCgpLT5tZXRhZGF0YVJlY2VpdmVkKCpyZXF1ZXN0SWQsIHN0YXRpY19jYXN0PGludD4oRmlsZUVy
cm9yOjpBQk9SVF9FUlIpLCAwKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6
OnJlcXVlc3RGaWxlQ29udGVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBpbnQqIHN0YXJ0LCBjb25zdCBpbnQqIGVuZCwgaW50KiByZXF1ZXN0SWQpCit2b2lk
IEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250ZW50KEVycm9yU3RyaW5n
KiBlcnJvciwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgcmVhZEFzVGV4dCwgY29uc3QgaW50KiBz
dGFydCwgY29uc3QgaW50KiBlbmQsIGNvbnN0IFN0cmluZyogY2hhcnNldCwgaW50KiByZXF1ZXN0
SWQpCiB7CiAgICAgaWYgKCFtX2VuYWJsZWQgfHwgIW1fZnJvbnRlbmRQcm92aWRlcikgewogICAg
ICAgICAqZXJyb3IgPSAiRmlsZVN5c3RlbSBhZ2VudCBpcyBub3QgZW5hYmxlZCI7CkBAIC02MTQs
OSArNjM5LDkgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29u
dGVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmkKICAgICAqcmVxdWVzdElkID0gbV9u
ZXh0UmVxdWVzdElkKys7CiAKICAgICBpZiAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGb3JPcmlnaW4oU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcodXJsKS5nZXQoKSkpCi0gICAgICAgIFJlYWRGaWxl
VGFzazo6Y3JlYXRlKG1fZnJvbnRlbmRQcm92aWRlciwgKnJlcXVlc3RJZCwgdXJsLCBzdGFydCA/
ICpzdGFydCA6IDAsIGVuZCA/ICplbmQgOiBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46
Om1heCgpKS0+c3RhcnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgICAgIFJlYWRGaWxl
VGFzazo6Y3JlYXRlKG1fZnJvbnRlbmRQcm92aWRlciwgKnJlcXVlc3RJZCwgdXJsLCByZWFkQXNU
ZXh0LCBzdGFydCA/ICpzdGFydCA6IDAsIGVuZCA/ICplbmQgOiBzdGQ6Om51bWVyaWNfbGltaXRz
PGxvbmcgbG9uZz46Om1heCgpLCBjaGFyc2V0ID8gKmNoYXJzZXQgOiAiIiktPnN0YXJ0KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIGVsc2UKLSAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVy
LT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKCpyZXF1ZXN0SWQsIHN0YXRpY19jYXN0
PGludD4oRmlsZUVycm9yOjpBQk9SVF9FUlIpLCAwKTsKKyAgICAgICAgbV9mcm9udGVuZFByb3Zp
ZGVyLT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKCpyZXF1ZXN0SWQsIHN0YXRpY19j
YXN0PGludD4oRmlsZUVycm9yOjpBQk9SVF9FUlIpLCAwLCAwKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JGaWxlU3lzdGVtQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQuaAppbmRleCAwZTU2YjM4Zjk5MzkxZTliOGI3MzdhYmQwMWEwMWI2NDFlNGU5YTczLi41
NmEyOTI2MDI4MTBhNjQxYzAyY2IwMmY5NTM3M2Y2YzNmMWZmMWY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW1Sb290
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgdHlwZSwg
aW50KiByZXF1ZXN0SWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGlyZWN0
b3J5Q29udGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQqIHJlcXVlc3RJ
ZCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RNZXRhZGF0YShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQqIHJlcXVlc3RJZCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RGaWxlQ29udGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBpbnQqIHN0YXJ0LCBjb25zdCBpbnQqIGVuZCwgaW50KiByZXF1ZXN0SWQpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RmlsZUNvbnRlbnQoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCByZWFkQXNUZXh0LCBjb25zdCBpbnQqIHN0YXJ0LCBj
b25zdCBpbnQqIGVuZCwgY29uc3QgU3RyaW5nKiBjaGFyc2V0LCBpbnQqIHJlcXVlc3RJZCkgT1ZF
UlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQq
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpIE9WRVJSSURFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVt
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1N
b2RlbC5qcwppbmRleCA0MTkzOWVlYTI2YjQyZWFjMWQ5Zjk5YjlkZWZjNTg1OGIzYzdlOTY4Li4x
ODFkZThmM2Q0MTQ2YWRmMjVkNTRmYWE2ZTQ4MjFmZjUyMmEyZDlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcwpAQCAt
MjQ4LDEzICsyNDgsMTUgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUg
PSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9k
ZWwuRmlsZX0gZmlsZQotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydAotICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBlbmQKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5nPSl9
IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtib29sYWVufSByZWFkQXNUZXh0CisgICAgICogQHBh
cmFtIHtudW1iZXI9fSBzdGFydAorICAgICAqIEBwYXJhbSB7bnVtYmVyPX0gZW5kCisgICAgICog
QHBhcmFtIHtzdHJpbmc9fSBjaGFyc2V0CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIs
IHN0cmluZz0sIHN0cmluZz0pfSBjYWxsYmFjawogICAgICAqLwotICAgIHJlcXVlc3RGaWxlQ29u
dGVudDogZnVuY3Rpb24oZmlsZSwgc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVxdWVzdEZp
bGVDb250ZW50OiBmdW5jdGlvbihmaWxlLCByZWFkQXNUZXh0LCBzdGFydCwgZW5kLCBjaGFyc2V0
LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHRoaXMuX2FnZW50V3JhcHBlci5yZXF1ZXN0Rmls
ZUNvbnRlbnQoZmlsZS51cmwsIHN0YXJ0LCBlbmQsIGNhbGxiYWNrKTsKKyAgICAgICAgdGhpcy5f
YWdlbnRXcmFwcGVyLnJlcXVlc3RGaWxlQ29udGVudChmaWxlLnVybCwgcmVhZEFzVGV4dCwgc3Rh
cnQsIGVuZCwgY2hhcnNldCwgY2FsbGJhY2spOwogICAgIH0KIH0KIApAQCAtNDA1LDYgKzQwNyw3
IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZSA9IGZ1bmN0aW9uKGZpbGVTeXN0
ZW1Nb2RlbCwgZmlsZVN5c3RlbSwgYmFja2VuCiAKICAgICB0aGlzLl9taW1lVHlwZSA9IGJhY2tl
bmRFbnRyeS5taW1lVHlwZTsKICAgICB0aGlzLl9yZXNvdXJjZVR5cGUgPSBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUeXBlc1tiYWNrZW5kRW50cnkucmVzb3VyY2VUeXBlXTsKKyAgICB0aGlzLl9pc1Rl
eHRGaWxlID0gYmFja2VuZEVudHJ5LmlzVGV4dEZpbGU7CiB9CiAKIFdlYkluc3BlY3Rvci5GaWxl
U3lzdGVtTW9kZWwuRmlsZS5wcm90b3R5cGUgPSB7CkBAIC00MjUsMTMgKzQyOCwyMyBAQCBXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGUucHJvdG90eXBlID0gewogICAgIH0sCiAKICAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQKLSAgICAgKiBAcGFyYW0ge251bWJl
cn0gZW5kCisgICAgICogQHR5cGUge2Jvb2xlYW59CisgICAgICovCisgICAgZ2V0IGlzVGV4dEZp
bGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoZXMuX2lzVGV4dEZpbGU7CisgICAgfSwKKwor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVhZEFzVGV4dAorICAgICAqIEBwYXJh
bSB7bnVtYmVyPX0gc3RhcnQKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IGVuZAorICAgICAqIEBw
YXJhbSB7c3RyaW5nPX0gY2hhcnNldAogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBz
dHJpbmc9KX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICByZXF1ZXN0RmlsZUNvbnRlbnQ6IGZ1bmN0
aW9uKHN0YXJ0LCBlbmQsIGNhbGxiYWNrKQorICAgIHJlcXVlc3RGaWxlQ29udGVudDogZnVuY3Rp
b24ocmVhZEFzVGV4dCwgc3RhcnQsIGVuZCwgY2hhcnNldCwgY2FsbGJhY2spCiAgICAgewotICAg
ICAgICB0aGlzLmZpbGVTeXN0ZW1Nb2RlbC5yZXF1ZXN0RmlsZUNvbnRlbnQodGhpcywgc3RhcnQs
IGVuZCwgY2FsbGJhY2spOworICAgICAgICB0aGlzLmZpbGVTeXN0ZW1Nb2RlbC5yZXF1ZXN0Rmls
ZUNvbnRlbnQodGhpcywgcmVhZEFzVGV4dCwgc3RhcnQsIGVuZCwgY2hhcnNldCwgY2FsbGJhY2sp
OwogICAgIH0KIH0KIApAQCAtNTQwLDE0ICs1NTMsMTYgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1SZXF1ZXN0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0g
e3N0cmluZ30gdXJsCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0Ci0gICAgICogQHBhcmFt
IHtudW1iZXJ9IGVuZAotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBzdHJpbmcpfSBj
YWxsYmFjaworICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVhZEFzVGV4dAorICAgICAqIEBwYXJh
bSB7bnVtYmVyPX0gc3RhcnQKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IGVuZAorICAgICAqIEBw
YXJhbSB7c3RyaW5nPX0gY2hhcnNldAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBz
dHJpbmc9LCBzdHJpbmc9KX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICByZXF1ZXN0RmlsZUNvbnRl
bnQ6IGZ1bmN0aW9uKHVybCwgc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVxdWVzdEZpbGVD
b250ZW50OiBmdW5jdGlvbih1cmwsIHJlYWRBc1RleHQsIHN0YXJ0LCBlbmQsIGNoYXJzZXQsIGNh
bGxiYWNrKQogICAgIHsKICAgICAgICAgdmFyIHN0b3JlID0gdGhpcy5fcGVuZGluZ0ZpbGVDb250
ZW50UmVxdWVzdHM7Ci0gICAgICAgIEZpbGVTeXN0ZW1BZ2VudC5yZXF1ZXN0RmlsZUNvbnRlbnQo
dXJsLCBzdGFydCwgZW5kLCByZXF1ZXN0QWNjZXB0ZWQpOworICAgICAgICBGaWxlU3lzdGVtQWdl
bnQucmVxdWVzdEZpbGVDb250ZW50KHVybCwgcmVhZEFzVGV4dCwgc3RhcnQsIGVuZCwgY2hhcnNl
dCwgcmVxdWVzdEFjY2VwdGVkKTsKIAogICAgICAgICBmdW5jdGlvbiByZXF1ZXN0QWNjZXB0ZWQo
ZXJyb3IsIHJlcXVlc3RJZCkKICAgICAgICAgewpAQCAtNTYwLDE0ICs1NzUsMTUgQEAgV2ViSW5z
cGVjdG9yLkZpbGVTeXN0ZW1SZXF1ZXN0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICogQHBh
cmFtIHtudW1iZXJ9IHJlcXVlc3RJZAogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvckNvZGUK
ICAgICAgKiBAcGFyYW0ge3N0cmluZz19IGNvbnRlbnQKKyAgICAgKiBAcGFyYW0ge3N0cmluZz19
IGNoYXJzZXQKICAgICAgKi8KLSAgICBfZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rpb24ocmVx
dWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQpCisgICAgX2ZpbGVDb250ZW50UmVjZWl2ZWQ6IGZ1
bmN0aW9uKHJlcXVlc3RJZCwgZXJyb3JDb2RlLCBjb250ZW50LCBjaGFyc2V0KQogICAgIHsKLSAg
ICAgICAgdmFyIGNhbGxiYWNrID0gLyoqIEB0eXBlIHtmdW5jdGlvbihudW1iZXIsIHN0cmluZz0p
fSAqLyB0aGlzLl9wZW5kaW5nRmlsZUNvbnRlbnRSZXF1ZXN0c1tyZXF1ZXN0SWRdOworICAgICAg
ICB2YXIgY2FsbGJhY2sgPSAvKiogQHR5cGUge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5nPSwgc3Ry
aW5nPSl9ICovIHRoaXMuX3BlbmRpbmdGaWxlQ29udGVudFJlcXVlc3RzW3JlcXVlc3RJZF07CiAg
ICAgICAgIGlmICghY2FsbGJhY2spCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGRlbGV0
ZSB0aGlzLl9wZW5kaW5nRmlsZUNvbnRlbnRSZXF1ZXN0c1tyZXF1ZXN0SWRdOwotICAgICAgICBj
YWxsYmFjayhlcnJvckNvZGUsIGNvbnRlbnQpOworICAgICAgICBjYWxsYmFjayhlcnJvckNvZGUs
IGNvbnRlbnQsIGNoYXJzZXQpOwogICAgIH0KIH0KIApAQCAtNjE2LDkgKzYzMiwxMCBAQCBXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAqIEBwYXJh
bSB7bnVtYmVyfSByZXF1ZXN0SWQKICAgICAgKiBAcGFyYW0ge251bWJlcn0gZXJyb3JDb2RlCiAg
ICAgICogQHBhcmFtIHtzdHJpbmc9fSBjb250ZW50CisgICAgICogQHBhcmFtIHtzdHJpbmc9fSBj
aGFyc2V0CiAgICAgICovCi0gICAgZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rpb24ocmVxdWVz
dElkLCBlcnJvckNvZGUsIGNvbnRlbnQpCisgICAgZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rp
b24ocmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQsIGNoYXJzZXQpCiAgICAgewotICAgICAg
ICB0aGlzLl9hZ2VudFdyYXBwZXIuX2ZpbGVDb250ZW50UmVjZWl2ZWQocmVxdWVzdElkLCBlcnJv
ckNvZGUsIGNvbnRlbnQpOworICAgICAgICB0aGlzLl9hZ2VudFdyYXBwZXIuX2ZpbGVDb250ZW50
UmVjZWl2ZWQocmVxdWVzdElkLCBlcnJvckNvZGUsIGNvbnRlbnQsIGNoYXJzZXQpOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBhZWQ3NmVmNWY4Y2I1ZGM2ZWJlNzRkZTJmOThhODhjYTkyMTNmZGRkLi40MGVm
ZjkzMzAxMWE5MGE1ZjkxODRjOTNiYzcxYjAxNGRlMjMxNTRjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMDctMDkgIFRhaWp1IFRzdWlraSAgPHR6aWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEFkZCB0ZXh0IGZpbGUgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbUFn
ZW50OjpyZXF1ZXN0RmlsZUNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkwNDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZGly
ZWN0b3J5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxl
c3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRtbDoKKwogMjAxMi0wNy0wOCAgSGF5YXRvIEl0
byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVt
L3JlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3RvcnktZXhwZWN0ZWQudHh0CmluZGV4IDBhMGM3
MzU5Mjg0NTI5OGViOTY4OWUzZDRmNWUxY2IxNmYzYTlhYzEuLjM5OWFhNTYzMzM2OTJjMTQxNzhm
NDg2ODEzY2U4NTY2OWUxZjQ3MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3RvcnktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3Rvcnkt
ZXhwZWN0ZWQudHh0CkBAIC02LDYgKzYsNyBAQCBlbnRyaWVzOgogICAgIHVybDogZmlsZXN5c3Rl
bTpodHRwOi8vMTI3LjAuMC4xOjgwMDAvdGVtcG9yYXJ5L2hvZ2UvcGl5by5odG1sCiAgICAgbmFt
ZTogcGl5by5odG1sCiAgICAgaXNEaXJlY3Rvcnk6IGZhbHNlCisgICAgaXNUZXh0RmlsZTogdHJ1
ZQogICAgIG1pbWVUeXBlOiB0ZXh0L2h0bWwKICAgICByZXNvdXJjZVR5cGU6IERvY3VtZW50CiAg
IDE6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lz
dGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS1leHBlY3RlZC50eHQKaW5kZXggMDM4OTc3NDk4M2E1
MmJjODA4YTJiMGJlODAyYmEyOGI1Mjg1MGUwYy4uMDMzMGJiZTJlYzg3YTMxZDZhOTNmMDQwNDFh
MWEwZWU2OTU3MzE2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxlLWV4cGVjdGVkLnR4dApAQCAt
MSw1ICsxLDYgQEAKLVRlc3RzIHJlYWRGaWxlLgorVGVzdHMgcmVxdWVzdEZpbGVDb250ZW50Lgog
CiBlcnJvckNvZGUgPSAwCi1jb250ZW50ID0gIlVFRlRVdz09IiBbUEFTU10KK2NvbnRlbnQgPSAi
UEFTUyIKK2NoYXJzZXQgPSBVVEYtOAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRtbAppbmRleCAzNDM0MWQ4
YmM2ODYyMzljZTg2ZGNlMjFlNDkyZWM5ZTIzMGNjNzFiLi4yMDYxMmY0MzdkMjJjN2QwNWJkMmZl
MmIyODE1M2YzMWExZmYzYTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxlLmh0bWwKQEAgLTE4LDIyICsxOCwy
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICB7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3Qud3JpdGVGaWxlKCIvaG9nZS9mdWdhIiwgInBpUEFTU3lvIiwgc3Rl
cDMpOworICAgICAgICBJbnNwZWN0b3JUZXN0LndyaXRlRmlsZSgiL2hvZ2UvZnVnYS50eHQiLCAi
cGlQQVNTeW8iLCBzdGVwMyk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDMoKQogICAgIHsK
LSAgICAgICAgcmVxdWVzdE1hbmFnZXIucmVxdWVzdEZpbGVDb250ZW50KCJmaWxlc3lzdGVtOmh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC90ZW1wb3JhcnkvaG9nZS9mdWdhIiwgMiwgNiwgc3RlcDQpOwor
ICAgICAgICByZXF1ZXN0TWFuYWdlci5yZXF1ZXN0RmlsZUNvbnRlbnQoImZpbGVzeXN0ZW06aHR0
cDovLzEyNy4wLjAuMTo4MDAwL3RlbXBvcmFyeS9ob2dlL2Z1Z2EudHh0IiwgdHJ1ZSwgMiwgNiwg
IlVURi04Iiwgc3RlcDQpOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHN0ZXA0KGVycm9yQ29kZSwg
Y29udGVudCkKKyAgICBmdW5jdGlvbiBzdGVwNChlcnJvckNvZGUsIGNvbnRlbnQsIGNoYXJzZXQp
CiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3JDb2RlID0gIiAr
IGVycm9yQ29kZSk7CiAgICAgICAgIGlmIChjb250ZW50KQotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoImNvbnRlbnQgPSBcIiIgKyBjb250ZW50ICsgIlwiIFsiICsgYXRvYihj
b250ZW50KSArICJdIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiY29u
dGVudCA9IFwiIiArIGNvbnRlbnQgKyAiXCIiKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNvbnRlbnQgPSAobnVsbCkiKTsKIAorICAgICAgICBp
ZiAoY2hhcnNldCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjaGFyc2V0
ID0gIiArIGNoYXJzZXQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiY2hhcnNldCA9IChudWxsKSIpOworCiAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2xlYXJGaWxlU3lzdGVtKHN0ZXA1KTsKICAgICB9CiAKQEAgLTQ1LDYgKzUwLDYgQEAgZnVuY3Rp
b24gdGVzdCgpCiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPHA+VGVzdHMgcmVhZEZpbGUu
PC9wPgorPHA+VGVzdHMgcmVxdWVzdEZpbGVDb250ZW50LjwvcD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151209</attachid>
            <date>2012-07-09 01:22:12 -0700</date>
            <delta_ts>2012-07-09 03:52:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90439-20120709172211.patch</filename>
            <type>text/plain</type>
            <size>25010</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUyNWNkNmEzOGZjNzc2
ZjBlODRmNzQ4MDVkZGY4MjQwMDMwMzRiOC4uYmYwYzgxMDhmMTNlMDNlYThiZjg0NDhhOTQ4YmNm
M2U0NTBlYTkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA3LTA5ICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
ZGQgdGV4dCBmaWxlIHN1cHBvcnQgZm9yIEZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVDb250
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDQz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0
ZW1Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90
eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3Rl
bU1vZGVsLkZpbGUucHJvdG90eXBlLnJlcXVlc3RGaWxlQ29udGVudCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3RvdHlwZS5fZmlsZUNvbnRlbnRS
ZWNlaXZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbURpc3BhdGNoZXIucHJv
dG90eXBlLmZpbGVDb250ZW50UmVjZWl2ZWQpOgorCiAyMDEyLTA3LTA4ICBWaXZlayBHYWxhdGFn
ZSAgPHZpdmVrZ2FsYXRhZ2VAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgc2hvdWxkIG5vdCBnZW5lcmF0ZSBzdGF0ZW1lbnRzIHdp
dGggbm8gZWZmZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXgg
NTk3OTdhYmY4MWNlNGYzYjE5YWFlZThhMDMxNTdiMWNlNDZmZjY2Ni4uZDE3OGQ5ZDJkYWQ2YTFk
MWQ4ZGM3Y2EzMTk5Yjk5ZmMxMjQ1OGNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgpAQCAtMTQxOCw3ICsxNDE4LDggQEAKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBuYW1l
IG9mIHRoZSBmaWxlIG9yIGRpcmVjdG9yeS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaXNEaXJlY3RvcnkiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRy
dWUgaWYgdGhlIGVudHJ5IGlzIGEgZGlyZWN0b3J5LiIgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJtaW1lVHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJNSU1FIHR5cGUgb2YgdGhlIGVudHJ5LCBhdmFpbGFibGUgZm9yIGEg
ZmlsZSBvbmx5LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZVR5
cGUiLCAiJHJlZiI6ICJQYWdlLlJlc291cmNlVHlwZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJSZXNvdXJjZVR5cGUgb2YgdGhlIGVudHJ5LCBhdmFpbGFibGUgZm9yIGEgZmls
ZSBvbmx5LiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc291cmNlVHlwZSIs
ICIkcmVmIjogIlBhZ2UuUmVzb3VyY2VUeXBlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIlJlc291cmNlVHlwZSBvZiB0aGUgZW50cnksIGF2YWlsYWJsZSBmb3IgYSBmaWxlIG9u
bHkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzVGV4dEZpbGUiLCAidHlw
ZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYg
dGhlIGVudHJ5IGlzIGEgdGV4dCBmaWxlLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcHJlc2VudHMgYSBicm93c2VyIHNpZGUgZmlsZSBv
ciBkaXJlY3RvcnkuIgogICAgICAgICAgICAgfSwKQEAgLTE0NzYsOCArMTQ3NywxMCBAQAogICAg
ICAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3RGaWxlQ29udGVudCIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgZmlsZSB0aGF0IHRo
ZSBmcm9udGVuZCBpcyByZXF1ZXN0aW5nIHRvIHJlYWQgZnJvbS4iIH0sCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicmVhZEFzVGV4dCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiVHJ1ZSBpZiB0aGUgY29udGVudCBzaG91bGQgYmUgcmVhZCBhcyB0ZXh0LCBvdGhl
cndpc2UgdGhlIHJlc3VsdCB3aWxsIGJlIHJldHVybmVkIGFzIGJhc2U2NCBlbmNvZGVkIHRleHQu
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0IiwgInR5cGUiOiAiaW50
ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTcGVjaWZpZXMgdGhlIHN0
YXJ0IG9mIHJhbmdlIHRvIHJlYWQuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVuZCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiU3BlY2lmaWVzIHRoZSBlbmQgb2YgcmFuZ2UgdG8gcmVhZCBleGNsdXNpdmVseS4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyB0aGUgZW5kIG9mIHJhbmdl
IHRvIHJlYWQgZXhjbHVzaXZlbHkuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNoYXJzZXQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiT3ZlcnJpZGVzIGNoYXJzZXQgb2YgdGhlIGNvbnRlbnQgd2hlbiBjb250ZW50IGlzIHNl
cnZlZCBhcyB0ZXh0LiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgInJl
dHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgIiRy
ZWYiOiAiUmVxdWVzdElkIiwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3QgaWRlbnRpZmllci4gQ29y
cmVzcG9uZGluZyBmaWxlQ29udGVudFJlY2VpdmVkIGV2ZW50IHNob3VsZCBoYXZlIHNhbWUgcmVx
dWVzdElkIHdpdGggdGhpcy4iIH0KQEAgLTE1MTgsNyArMTUyMSw4IEBACiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVz
dElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0IElkZW50aWZp
ZXIgdGhhdCB3YXMgcmV0dXJuZWQgaW4gcmVzcG9uc2UgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcmVx
dWVzdEZpbGVDb250ZW50IGNvbW1hbmQuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImVycm9yQ29kZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiMCwgaWYg
bm8gZXJyb3IuIE90aGVyd2lzZSwgZXJyb3JDb2RlIGlzIHNldCB0byBGaWxlRXJyb3I6OkVycm9y
Q29kZSB2YWx1ZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVudCIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb250
YWlucyBjb250ZW50IG9mIHRoZSBmaWxlIGFzIGJhc2U2NCBlbmNvZGVkIHN0cmluZy4iIH0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50IiwgInR5cGUiOiAic3RyaW5nIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbnRlbnQgb2YgdGhlIGZpbGUuIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoYXJzZXQiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ2hhcnNldCBvZiB0aGUgY29u
dGVudCBpZiBpdCBpcyBzZXJ2ZWQgYXMgdGV4dC4iIH0KICAgICAgICAgICAgICAgICBdLAogICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21wbGV0aW9uIGV2ZW50IG9mIHJlcXVlc3RG
aWxlQ29udGVudCBjb21tYW5kLiIKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKaW5kZXggODkwMTE3
NDZiNzQ1Y2I5NjJiYzc4NTRmYmEzOTE3ZmQyMjQzZmFkYy4uODgxNDE4NDY2ZjUxYzFmZDUzNTg1
NjAzYjNlZDRlNzVkNDc5MDlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIAogI2lu
Y2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJE
T01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRpcmVjdG9yeUVudHJ5LmgiCiAjaW5jbHVk
ZSAiRGlyZWN0b3J5UmVhZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTYxLDYgKzYy
LDggQEAKICNpbmNsdWRlICJNZXRhZGF0YUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAi
VGV4dEVuY29kaW5nLmgiCisjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogCiB1c2lu
ZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6QXJyYXk7CiAKQEAgLTMwNywxNCArMzEwLDE5IEBAIGJv
b2wgUmVhZERpcmVjdG9yeVRhc2s6OmRpZFJlYWREaXJlY3RvcnlFbnRyaWVzKEVudHJ5QXJyYXkq
IGVudHJpZXMpCiAgICAgICAgIGlmICghZW50cnktPmlzRGlyZWN0b3J5KCkpIHsKICAgICAgICAg
ICAgIFN0cmluZyBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0
aChlbnRyeS0+bmFtZSgpKTsKICAgICAgICAgICAgIFJlc291cmNlVHlwZTo6RW51bSByZXNvdXJj
ZVR5cGU7Ci0gICAgICAgICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRJbWFn
ZU1JTUVUeXBlKG1pbWVUeXBlKSkKKyAgICAgICAgICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1N1cHBvcnRlZEltYWdlTUlNRVR5cGUobWltZVR5cGUpKSB7CiAgICAgICAgICAgICAgICAgcmVz
b3VyY2VUeXBlID0gUmVzb3VyY2VUeXBlOjpJbWFnZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKE1J
TUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKG1pbWVUeXBlKSkK
KyAgICAgICAgICAgICAgICBlbnRyeUZvckZyb250ZW5kLT5zZXRJc1RleHRGaWxlKGZhbHNlKTsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZh
U2NyaXB0TUlNRVR5cGUobWltZVR5cGUpKSB7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2VUeXBl
ID0gUmVzb3VyY2VUeXBlOjpTY3JpcHQ7Ci0gICAgICAgICAgICBlbHNlIGlmIChNSU1FVHlwZVJl
Z2lzdHJ5Ojppc1N1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGUobWltZVR5cGUpKQorICAgICAgICAg
ICAgICAgIGVudHJ5Rm9yRnJvbnRlbmQtPnNldElzVGV4dEZpbGUodHJ1ZSk7CisgICAgICAgICAg
ICB9IGVsc2UgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkTm9uSW1hZ2VNSU1FVHlw
ZShtaW1lVHlwZSkpIHsKICAgICAgICAgICAgICAgICByZXNvdXJjZVR5cGUgPSBSZXNvdXJjZVR5
cGU6OkRvY3VtZW50OwotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVudHJ5Rm9y
RnJvbnRlbmQtPnNldElzVGV4dEZpbGUodHJ1ZSk7CisgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgIHJlc291cmNlVHlwZSA9IFJlc291cmNlVHlwZTo6T3RoZXI7CisgICAgICAg
ICAgICAgICAgZW50cnlGb3JGcm9udGVuZC0+c2V0SXNUZXh0RmlsZShET01JbXBsZW1lbnRhdGlv
bjo6aXNYTUxNSU1FVHlwZShtaW1lVHlwZSkgfHwgRE9NSW1wbGVtZW50YXRpb246OmlzVGV4dE1J
TUVUeXBlKG1pbWVUeXBlKSk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGVudHJ5Rm9y
RnJvbnRlbmQtPnNldE1pbWVUeXBlKG1pbWVUeXBlKTsKICAgICAgICAgICAgIGVudHJ5Rm9yRnJv
bnRlbmQtPnNldFJlc291cmNlVHlwZShyZXNvdXJjZVR5cGUpOwpAQCAtNDA3LDE0ICs0MTUsMTQg
QEAgYm9vbCBHZXRNZXRhZGF0YVRhc2s6OmRpZEdldE1ldGFkYXRhKE1ldGFkYXRhKiBtZXRhZGF0
YSkKIGNsYXNzIFJlYWRGaWxlVGFzayA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShSZWFkRmlsZVRhc2spOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFJlYWRGaWxlVGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4g
ZnJvbnRlbmRQcm92aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGxvbmcg
bG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZWFkRmls
ZVRhc2s+IGNyZWF0ZShQYXNzUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IGZyb250ZW5kUHJvdmlk
ZXIsIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdXJsLCBib29sIHJlYWRBc1RleHQsIGxv
bmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZWFkRmlsZVRhc2soZnJvbnRlbmRQcm92
aWRlciwgcmVxdWVzdElkLCB1cmwsIHN0YXJ0LCBlbmQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBSZWFkRmlsZVRhc2soZnJvbnRlbmRQcm92aWRlciwgcmVxdWVzdElkLCB1cmwsIHJl
YWRBc1RleHQsIHN0YXJ0LCBlbmQsIGNoYXJzZXQpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5S
ZWFkRmlsZVRhc2soKQogICAgIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJP
UlRfRVJSLCAwKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6QUJPUlRfRVJSLCAw
LCAwKTsKICAgICB9CiAKICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
QEAgLTQzNiw3ICs0NDQsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGJvb2wgZGlkSGl0RXJy
b3IoRmlsZUVycm9yKiBlcnJvcikKICAgICB7Ci0gICAgICAgIHJlcG9ydFJlc3VsdChlcnJvci0+
Y29kZSgpLCAwKTsKKyAgICAgICAgcmVwb3J0UmVzdWx0KGVycm9yLT5jb2RlKCksIDAsIDApOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTQ0NCwyNyArNDUyLDMyIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBkaWRHZXRGaWxlKEZpbGUqKTsKICAgICB2b2lkIGRpZFJlYWQoKTsKIAot
ICAgIHZvaWQgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSwgY29u
c3QgU3RyaW5nKiByZXN1bHQpCisgICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJv
ckNvZGUgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcqIHJlc3VsdCwgY29uc3QgU3RyaW5nKiBjaGFy
c2V0KQogICAgIHsKICAgICAgICAgaWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRl
bmRQcm92aWRlci0+ZnJvbnRlbmQoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9m
cm9udGVuZFByb3ZpZGVyLT5mcm9udGVuZCgpLT5maWxlQ29udGVudFJlY2VpdmVkKG1fcmVxdWVz
dElkLCBzdGF0aWNfY2FzdDxpbnQ+KGVycm9yQ29kZSksIHJlc3VsdCk7CisgICAgICAgIG1fZnJv
bnRlbmRQcm92aWRlci0+ZnJvbnRlbmQoKS0+ZmlsZUNvbnRlbnRSZWNlaXZlZChtX3JlcXVlc3RJ
ZCwgc3RhdGljX2Nhc3Q8aW50PihlcnJvckNvZGUpLCByZXN1bHQsIGNoYXJzZXQpOwogICAgICAg
ICBtX2Zyb250ZW5kUHJvdmlkZXIgPSAwOwogICAgIH0KIAotICAgIFJlYWRGaWxlVGFzayhQYXNz
UmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGludCByZXF1ZXN0SWQs
IGNvbnN0IFN0cmluZyYgdXJsLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpCisgICAg
UmVhZEZpbGVUYXNrKFBhc3NSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gZnJvbnRlbmRQcm92aWRl
ciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgcmVhZEFzVGV4dCwgbG9u
ZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5kLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCiAgICAg
ICAgIDogRXZlbnRMaXN0ZW5lcihFdmVudExpc3RlbmVyOjpDUFBFdmVudExpc3RlbmVyVHlwZSkK
ICAgICAgICAgLCBtX2Zyb250ZW5kUHJvdmlkZXIoZnJvbnRlbmRQcm92aWRlcikKICAgICAgICAg
LCBtX3JlcXVlc3RJZChyZXF1ZXN0SWQpCiAgICAgICAgICwgbV91cmwoUGFyc2VkVVJMU3RyaW5n
LCB1cmwpCisgICAgICAgICwgbV9yZWFkQXNUZXh0KHJlYWRBc1RleHQpCiAgICAgICAgICwgbV9z
dGFydChzdGFydCkKLSAgICAgICAgLCBtX2VuZChlbmQpIHsgfQorICAgICAgICAsIG1fZW5kKGVu
ZCkKKyAgICAgICAgLCBtX2NoYXJzZXQoY2hhcnNldCkgeyB9CiAKICAgICBSZWZQdHI8RnJvbnRl
bmRQcm92aWRlcj4gbV9mcm9udGVuZFByb3ZpZGVyOwogICAgIGludCBtX3JlcXVlc3RJZDsKICAg
ICBLVVJMIG1fdXJsOworICAgIGJvb2wgbV9yZWFkQXNUZXh0OwogICAgIGludCBtX3N0YXJ0Owog
ICAgIGxvbmcgbG9uZyBtX2VuZDsKKyAgICBTdHJpbmcgbV9taW1lVHlwZTsKKyAgICBTdHJpbmcg
bV9jaGFyc2V0OwogCiAgICAgUmVmUHRyPEZpbGVSZWFkZXI+IG1fcmVhZGVyOwogfTsKQEAgLTQ3
Niw3ICs0ODksNyBAQCB2b2lkIFJlYWRGaWxlVGFzazo6c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICBGaWxlU3lzdGVtVHlwZSB0eXBlOwog
ICAgIFN0cmluZyBwYXRoOwogICAgIGlmICghRE9NRmlsZVN5c3RlbUJhc2U6OmNyYWNrRmlsZVN5
c3RlbVVSTChtX3VybCwgdHlwZSwgcGF0aCkpIHsKLSAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVF
cnJvcjo6U1lOVEFYX0VSUiwgMCk7CisgICAgICAgIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OlNZ
TlRBWF9FUlIsIDAsIDApOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00OTAsMTIgKzUw
MywxMiBAQCB2b2lkIFJlYWRGaWxlVGFzazo6c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKIGJvb2wgUmVhZEZpbGVUYXNrOjpkaWRHZXRFbnRyeShF
bnRyeSogZW50cnkpCiB7CiAgICAgaWYgKGVudHJ5LT5pc0RpcmVjdG9yeSgpKSB7Ci0gICAgICAg
IHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OlRZUEVfTUlTTUFUQ0hfRVJSLCAwKTsKKyAgICAgICAg
cmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6VFlQRV9NSVNNQVRDSF9FUlIsIDAsIDApOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAoIWVudHJ5LT5maWxlc3lzdGVtKCktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgewotICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9y
OjpBQk9SVF9FUlIsIDApOworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpBQk9SVF9F
UlIsIDAsIDApOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTUwNCw2ICs1MTcs
OCBAQCBib29sIFJlYWRGaWxlVGFzazo6ZGlkR2V0RW50cnkoRW50cnkqIGVudHJ5KQogICAgIHN0
YXRpY19jYXN0PEZpbGVFbnRyeSo+KGVudHJ5KS0+ZmlsZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9y
Q2FsbGJhY2spOwogCiAgICAgbV9yZWFkZXIgPSBGaWxlUmVhZGVyOjpjcmVhdGUoZW50cnktPmZp
bGVzeXN0ZW0oKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBtX21pbWVUeXBlID0g
TUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGVudHJ5LT5uYW1lKCkpOworCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTUyMCw5ICs1MzUsMTkgQEAgYm9vbCBSZWFkRmlsZVRh
c2s6OmRpZEdldEZpbGUoRmlsZSogZmlsZSkKIAogdm9pZCBSZWFkRmlsZVRhc2s6OmRpZFJlYWQo
KQogewotICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gcmVzdWx0ID0gbV9yZWFkZXItPmFycmF5QnVm
ZmVyUmVzdWx0KCk7Ci0gICAgU3RyaW5nIGVuY29kZWRSZXN1bHQgPSBiYXNlNjRFbmNvZGUoc3Rh
dGljX2Nhc3Q8Y2hhcio+KHJlc3VsdC0+ZGF0YSgpKSwgcmVzdWx0LT5ieXRlTGVuZ3RoKCkpOwot
ICAgIHJlcG9ydFJlc3VsdChzdGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4oMCksICZl
bmNvZGVkUmVzdWx0KTsKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IG1fcmVhZGVy
LT5hcnJheUJ1ZmZlclJlc3VsdCgpOworCisgICAgaWYgKCFtX3JlYWRBc1RleHQpIHsKKyAgICAg
ICAgU3RyaW5nIHJlc3VsdCA9IGJhc2U2NEVuY29kZShzdGF0aWNfY2FzdDxjaGFyKj4oYnVmZmVy
LT5kYXRhKCkpLCBidWZmZXItPmJ5dGVMZW5ndGgoKSk7CisgICAgICAgIHJlcG9ydFJlc3VsdChz
dGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4oMCksICZyZXN1bHQsIDApOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IGRlY29k
ZXIgPSBUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUobV9taW1lVHlwZSwgbV9jaGFyc2V0LCB0
cnVlKTsKKyAgICBTdHJpbmcgcmVzdWx0ID0gZGVjb2Rlci0+ZGVjb2RlKHN0YXRpY19jYXN0PGNo
YXIqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKKyAgICByZXN1bHQg
Kz0gZGVjb2Rlci0+Zmx1c2goKTsKKyAgICBtX2NoYXJzZXQgPSBkZWNvZGVyLT5lbmNvZGluZygp
LmRvbU5hbWUoKTsKKyAgICByZXBvcnRSZXN1bHQoc3RhdGljX2Nhc3Q8RmlsZUVycm9yOjpFcnJv
ckNvZGU+KDApLCAmcmVzdWx0LCAmbV9jaGFyc2V0KTsKIH0KIAogfQpAQCAtNjAzLDcgKzYyOCw3
IEBAIHZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpyZXF1ZXN0TWV0YWRhdGEoRXJyb3JT
dHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmCiAgICAgICAgIG1fZnJvbnRlbmRQcm92aWRlci0+
ZnJvbnRlbmQoKS0+bWV0YWRhdGFSZWNlaXZlZCgqcmVxdWVzdElkLCBzdGF0aWNfY2FzdDxpbnQ+
KEZpbGVFcnJvcjo6QUJPUlRfRVJSKSwgMCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50OjpyZXF1ZXN0RmlsZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgaW50KiBzdGFydCwgY29uc3QgaW50KiBlbmQsIGludCogcmVxdWVzdElk
KQordm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RGaWxlQ29udGVudChFcnJv
clN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdXJsLCBib29sIHJlYWRBc1RleHQsIGNvbnN0
IGludCogc3RhcnQsIGNvbnN0IGludCogZW5kLCBjb25zdCBTdHJpbmcqIGNoYXJzZXQsIGludCog
cmVxdWVzdElkKQogewogICAgIGlmICghbV9lbmFibGVkIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXIp
IHsKICAgICAgICAgKmVycm9yID0gIkZpbGVTeXN0ZW0gYWdlbnQgaXMgbm90IGVuYWJsZWQiOwpA
QCAtNjE0LDkgKzYzOSw5IEBAIHZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpyZXF1ZXN0
RmlsZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpCiAgICAgKnJlcXVlc3RJ
ZCA9IG1fbmV4dFJlcXVlc3RJZCsrOwogCiAgICAgaWYgKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0Rm9yT3JpZ2lu
KFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHVybCkuZ2V0KCkpKQotICAgICAgICBS
ZWFkRmlsZVRhc2s6OmNyZWF0ZShtX2Zyb250ZW5kUHJvdmlkZXIsICpyZXF1ZXN0SWQsIHVybCwg
c3RhcnQgPyAqc3RhcnQgOiAwLCBlbmQgPyAqZW5kIDogc3RkOjpudW1lcmljX2xpbWl0czxsb25n
IGxvbmc+OjptYXgoKSktPnN0YXJ0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgICAgICBS
ZWFkRmlsZVRhc2s6OmNyZWF0ZShtX2Zyb250ZW5kUHJvdmlkZXIsICpyZXF1ZXN0SWQsIHVybCwg
cmVhZEFzVGV4dCwgc3RhcnQgPyAqc3RhcnQgOiAwLCBlbmQgPyAqZW5kIDogc3RkOjpudW1lcmlj
X2xpbWl0czxsb25nIGxvbmc+OjptYXgoKSwgY2hhcnNldCA/ICpjaGFyc2V0IDogIiIpLT5zdGFy
dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBlbHNlCi0gICAgICAgIG1fZnJvbnRlbmRQ
cm92aWRlci0+ZnJvbnRlbmQoKS0+ZmlsZUNvbnRlbnRSZWNlaXZlZCgqcmVxdWVzdElkLCBzdGF0
aWNfY2FzdDxpbnQ+KEZpbGVFcnJvcjo6QUJPUlRfRVJSKSwgMCk7CisgICAgICAgIG1fZnJvbnRl
bmRQcm92aWRlci0+ZnJvbnRlbmQoKS0+ZmlsZUNvbnRlbnRSZWNlaXZlZCgqcmVxdWVzdElkLCBz
dGF0aWNfY2FzdDxpbnQ+KEZpbGVFcnJvcjo6QUJPUlRfRVJSKSwgMCwgMCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCog
ZnJvbnRlbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50LmgKaW5kZXggMGU1NmIzOGY5OTM5MWU5YjhiNzM3YWJkMDFhMDFiNjQxZTRl
OWE3My4uNTZhMjkyNjAyODEwYTY0MWMwMmNiMDJmOTUzNzNmNmMzZjFmZjFmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaApA
QCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RGaWxlU3lz
dGVtUm9vdChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcm
IHR5cGUsIGludCogcmVxdWVzdElkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dERpcmVjdG9yeUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50KiBy
ZXF1ZXN0SWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0TWV0YWRhdGEoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHVybCwgaW50KiByZXF1ZXN0SWQpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RmlsZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgaW50KiBzdGFydCwgY29uc3QgaW50KiBlbmQsIGludCogcmVxdWVz
dElkKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZpbGVDb250ZW50KEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgcmVhZEFzVGV4dCwgY29uc3QgaW50KiBz
dGFydCwgY29uc3QgaW50KiBlbmQsIGNvbnN0IFN0cmluZyogY2hhcnNldCwgaW50KiByZXF1ZXN0
SWQpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZy
b250ZW5kKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKSBPVkVS
UklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmls
ZVN5c3RlbU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxl
U3lzdGVtTW9kZWwuanMKaW5kZXggNDE5MzllZWEyNmI0MmVhYzFkOWY5OWI5ZGVmYzU4NThiM2M3
ZTk2OC4uZmMxNzE2NjY2NDFkOWM0MTAwYmUxYjNmZTEwODQxMTQ2OWNlNWI3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtTW9kZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtTW9kZWwu
anMKQEAgLTI0OCwxMyArMjQ4LDE1IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJv
dG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRmlsZVN5
c3RlbU1vZGVsLkZpbGV9IGZpbGUKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQKLSAgICAg
KiBAcGFyYW0ge251bWJlcn0gZW5kCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIsIHN0
cmluZz0pfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVhZEFzVGV4dAorICAg
ICAqIEBwYXJhbSB7bnVtYmVyPX0gc3RhcnQKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IGVuZAor
ICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gY2hhcnNldAorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
bnVtYmVyLCBzdHJpbmc9LCBzdHJpbmc9KT19IGNhbGxiYWNrCiAgICAgICovCi0gICAgcmVxdWVz
dEZpbGVDb250ZW50OiBmdW5jdGlvbihmaWxlLCBzdGFydCwgZW5kLCBjYWxsYmFjaykKKyAgICBy
ZXF1ZXN0RmlsZUNvbnRlbnQ6IGZ1bmN0aW9uKGZpbGUsIHJlYWRBc1RleHQsIHN0YXJ0LCBlbmQs
IGNoYXJzZXQsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdGhpcy5fYWdlbnRXcmFwcGVyLnJl
cXVlc3RGaWxlQ29udGVudChmaWxlLnVybCwgc3RhcnQsIGVuZCwgY2FsbGJhY2spOworICAgICAg
ICB0aGlzLl9hZ2VudFdyYXBwZXIucmVxdWVzdEZpbGVDb250ZW50KGZpbGUudXJsLCByZWFkQXNU
ZXh0LCBzdGFydCwgZW5kLCBjaGFyc2V0LCBjYWxsYmFjayk7CiAgICAgfQogfQogCkBAIC00MDUs
NiArNDA3LDcgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlID0gZnVuY3Rpb24o
ZmlsZVN5c3RlbU1vZGVsLCBmaWxlU3lzdGVtLCBiYWNrZW4KIAogICAgIHRoaXMuX21pbWVUeXBl
ID0gYmFja2VuZEVudHJ5Lm1pbWVUeXBlOwogICAgIHRoaXMuX3Jlc291cmNlVHlwZSA9IFdlYklu
c3BlY3Rvci5yZXNvdXJjZVR5cGVzW2JhY2tlbmRFbnRyeS5yZXNvdXJjZVR5cGVdOworICAgIHRo
aXMuX2lzVGV4dEZpbGUgPSBiYWNrZW5kRW50cnkuaXNUZXh0RmlsZTsKIH0KIAogV2ViSW5zcGVj
dG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlLnByb3RvdHlwZSA9IHsKQEAgLTQyNSwxMyArNDI4LDIz
IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZS5wcm90b3R5cGUgPSB7CiAgICAg
fSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydAotICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBlbmQKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5nPSl9
IGNhbGxiYWNrCisgICAgICogQHR5cGUge2Jvb2xlYW59CiAgICAgICovCi0gICAgcmVxdWVzdEZp
bGVDb250ZW50OiBmdW5jdGlvbihzdGFydCwgZW5kLCBjYWxsYmFjaykKKyAgICBnZXQgaXNUZXh0
RmlsZSgpCiAgICAgewotICAgICAgICB0aGlzLmZpbGVTeXN0ZW1Nb2RlbC5yZXF1ZXN0RmlsZUNv
bnRlbnQodGhpcywgc3RhcnQsIGVuZCwgY2FsbGJhY2spOworICAgICAgICByZXR1cm4gdGhpcy5f
aXNUZXh0RmlsZTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtib29sZWFufSBy
ZWFkQXNUZXh0CisgICAgICogQHBhcmFtIHtudW1iZXI9fSBzdGFydAorICAgICAqIEBwYXJhbSB7
bnVtYmVyPX0gZW5kCisgICAgICogQHBhcmFtIHtzdHJpbmc9fSBjaGFyc2V0CisgICAgICogQHBh
cmFtIHtmdW5jdGlvbihudW1iZXIsIHN0cmluZz0pPX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBy
ZXF1ZXN0RmlsZUNvbnRlbnQ6IGZ1bmN0aW9uKHJlYWRBc1RleHQsIHN0YXJ0LCBlbmQsIGNoYXJz
ZXQsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdGhpcy5maWxlU3lzdGVtTW9kZWwucmVxdWVz
dEZpbGVDb250ZW50KHRoaXMsIHJlYWRBc1RleHQsIHN0YXJ0LCBlbmQsIGNoYXJzZXQsIGNhbGxi
YWNrKTsKICAgICB9CiB9CiAKQEAgLTQ1NSw3ICs0NjgsNyBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5
c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0g
e3N0cmluZ30gb3JpZ2luCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKLSAgICAgKiBAcGFy
YW0ge2Z1bmN0aW9uKG51bWJlciwgRmlsZVN5c3RlbUFnZW50LkVudHJ5KX0gY2FsbGJhY2sKKyAg
ICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgRmlsZVN5c3RlbUFnZW50LkVudHJ5KT19IGNh
bGxiYWNrCiAgICAgICovCiAgICAgcmVxdWVzdEZpbGVTeXN0ZW1Sb290OiBmdW5jdGlvbihvcmln
aW4sIHR5cGUsIGNhbGxiYWNrKQogICAgIHsKQEAgLTQ2NSw3ICs0NzgsNyBAQCBXZWJJbnNwZWN0
b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rp
b24gcmVxdWVzdEFjY2VwdGVkKGVycm9yLCByZXF1ZXN0SWQpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIGlmICghZXJyb3IpCi0gICAgICAgICAgICAgICAgc3RvcmVbcmVxdWVzdElkXSA9IGNhbGxi
YWNrOworICAgICAgICAgICAgICAgIHN0b3JlW3JlcXVlc3RJZF0gPSBjYWxsYmFjayB8fCBmdW5j
dGlvbigpIHt9OwogICAgICAgICB9CiAgICAgfSwKIApAQCAtNDg1LDcgKzQ5OCw3IEBAIFdlYklu
c3BlY3Rvci5GaWxlU3lzdGVtUmVxdWVzdE1hbmFnZXIucHJvdG90eXBlID0gewogCiAgICAgLyoq
CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVt
YmVyLCBBcnJheS48RmlsZVN5c3RlbUFnZW50LkVudHJ5Pj0pfSBjYWxsYmFjaworICAgICAqIEBw
YXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBBcnJheS48RmlsZVN5c3RlbUFnZW50LkVudHJ5Pj0pPX0g
Y2FsbGJhY2sKICAgICAgKi8KICAgICByZXF1ZXN0RGlyZWN0b3J5Q29udGVudDogZnVuY3Rpb24o
dXJsLCBjYWxsYmFjaykKICAgICB7CkBAIC00OTUsNyArNTA4LDcgQEAgV2ViSW5zcGVjdG9yLkZp
bGVTeXN0ZW1SZXF1ZXN0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZ1bmN0aW9uIHJl
cXVlc3RBY2NlcHRlZChlcnJvciwgcmVxdWVzdElkKQogICAgICAgICB7CiAgICAgICAgICAgICBp
ZiAoIWVycm9yKQotICAgICAgICAgICAgICAgIHN0b3JlW3JlcXVlc3RJZF0gPSBjYWxsYmFjazsK
KyAgICAgICAgICAgICAgICBzdG9yZVtyZXF1ZXN0SWRdID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24o
KSB7fTsKICAgICAgICAgfQogICAgIH0sCiAKQEAgLTUxNSw3ICs1MjgsNyBAQCBXZWJJbnNwZWN0
b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwg
RmlsZVN5c3RlbUFnZW50Lk1ldGFkYXRhPSl9IGNhbGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5j
dGlvbihudW1iZXIsIEZpbGVTeXN0ZW1BZ2VudC5NZXRhZGF0YT0pPX0gY2FsbGJhY2sKICAgICAg
Ki8KICAgICByZXF1ZXN0TWV0YWRhdGE6IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spCiAgICAgewpA
QCAtNTI1LDcgKzUzOCw3IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtUmVxdWVzdE1hbmFnZXIu
cHJvdG90eXBlID0gewogICAgICAgICBmdW5jdGlvbiByZXF1ZXN0QWNjZXB0ZWQoZXJyb3IsIHJl
cXVlc3RJZCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFlcnJvcikKLSAgICAgICAgICAg
ICAgICBzdG9yZVtyZXF1ZXN0SWRdID0gY2FsbGJhY2s7CisgICAgICAgICAgICAgICAgc3RvcmVb
cmVxdWVzdElkXSA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uKCkge307CiAgICAgICAgIH0KICAgICB9
LAogCkBAIC01NDAsMTkgKzU1MywyMSBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RN
YW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1
cmwKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnQKLSAgICAgKiBAcGFyYW0ge251bWJlcn0g
ZW5kCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIsIHN0cmluZyl9IGNhbGxiYWNrCisg
ICAgICogQHBhcmFtIHtib29sZWFufSByZWFkQXNUZXh0CisgICAgICogQHBhcmFtIHtudW1iZXI9
fSBzdGFydAorICAgICAqIEBwYXJhbSB7bnVtYmVyPX0gZW5kCisgICAgICogQHBhcmFtIHtzdHJp
bmc9fSBjaGFyc2V0CisgICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIsIHN0cmluZz0sIHN0
cmluZz0pPX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICByZXF1ZXN0RmlsZUNvbnRlbnQ6IGZ1bmN0
aW9uKHVybCwgc3RhcnQsIGVuZCwgY2FsbGJhY2spCisgICAgcmVxdWVzdEZpbGVDb250ZW50OiBm
dW5jdGlvbih1cmwsIHJlYWRBc1RleHQsIHN0YXJ0LCBlbmQsIGNoYXJzZXQsIGNhbGxiYWNrKQog
ICAgIHsKICAgICAgICAgdmFyIHN0b3JlID0gdGhpcy5fcGVuZGluZ0ZpbGVDb250ZW50UmVxdWVz
dHM7Ci0gICAgICAgIEZpbGVTeXN0ZW1BZ2VudC5yZXF1ZXN0RmlsZUNvbnRlbnQodXJsLCBzdGFy
dCwgZW5kLCByZXF1ZXN0QWNjZXB0ZWQpOworICAgICAgICBGaWxlU3lzdGVtQWdlbnQucmVxdWVz
dEZpbGVDb250ZW50KHVybCwgcmVhZEFzVGV4dCwgc3RhcnQsIGVuZCwgY2hhcnNldCwgcmVxdWVz
dEFjY2VwdGVkKTsKIAogICAgICAgICBmdW5jdGlvbiByZXF1ZXN0QWNjZXB0ZWQoZXJyb3IsIHJl
cXVlc3RJZCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFlcnJvcikKLSAgICAgICAgICAg
ICAgICBzdG9yZVtyZXF1ZXN0SWRdID0gY2FsbGJhY2s7CisgICAgICAgICAgICAgICAgc3RvcmVb
cmVxdWVzdElkXSA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uKCkge307CiAgICAgICAgIH0KICAgICB9
LAogCkBAIC01NjAsMTQgKzU3NSwxNSBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RN
YW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVxdWVzdElkCiAg
ICAgICogQHBhcmFtIHtudW1iZXJ9IGVycm9yQ29kZQogICAgICAqIEBwYXJhbSB7c3RyaW5nPX0g
Y29udGVudAorICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gY2hhcnNldAogICAgICAqLwotICAgIF9m
aWxlQ29udGVudFJlY2VpdmVkOiBmdW5jdGlvbihyZXF1ZXN0SWQsIGVycm9yQ29kZSwgY29udGVu
dCkKKyAgICBfZmlsZUNvbnRlbnRSZWNlaXZlZDogZnVuY3Rpb24ocmVxdWVzdElkLCBlcnJvckNv
ZGUsIGNvbnRlbnQsIGNoYXJzZXQpCiAgICAgewotICAgICAgICB2YXIgY2FsbGJhY2sgPSAvKiog
QHR5cGUge2Z1bmN0aW9uKG51bWJlciwgc3RyaW5nPSl9ICovIHRoaXMuX3BlbmRpbmdGaWxlQ29u
dGVudFJlcXVlc3RzW3JlcXVlc3RJZF07CisgICAgICAgIHZhciBjYWxsYmFjayA9IC8qKiBAdHlw
ZSB7ZnVuY3Rpb24obnVtYmVyLCBzdHJpbmc9LCBzdHJpbmc9KX0gKi8gdGhpcy5fcGVuZGluZ0Zp
bGVDb250ZW50UmVxdWVzdHNbcmVxdWVzdElkXTsKICAgICAgICAgaWYgKCFjYWxsYmFjaykKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgZGVsZXRlIHRoaXMuX3BlbmRpbmdGaWxlQ29udGVu
dFJlcXVlc3RzW3JlcXVlc3RJZF07Ci0gICAgICAgIGNhbGxiYWNrKGVycm9yQ29kZSwgY29udGVu
dCk7CisgICAgICAgIGNhbGxiYWNrKGVycm9yQ29kZSwgY29udGVudCwgY2hhcnNldCk7CiAgICAg
fQogfQogCkBAIC02MTYsOSArNjMyLDEwIEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtRGlzcGF0
Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtudW1iZXJ9IHJlcXVlc3RJZAogICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvckNvZGUKICAgICAgKiBAcGFyYW0ge3N0cmluZz19IGNv
bnRlbnQKKyAgICAgKiBAcGFyYW0ge3N0cmluZz19IGNoYXJzZXQKICAgICAgKi8KLSAgICBmaWxl
Q29udGVudFJlY2VpdmVkOiBmdW5jdGlvbihyZXF1ZXN0SWQsIGVycm9yQ29kZSwgY29udGVudCkK
KyAgICBmaWxlQ29udGVudFJlY2VpdmVkOiBmdW5jdGlvbihyZXF1ZXN0SWQsIGVycm9yQ29kZSwg
Y29udGVudCwgY2hhcnNldCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2FnZW50V3JhcHBlci5fZmls
ZUNvbnRlbnRSZWNlaXZlZChyZXF1ZXN0SWQsIGVycm9yQ29kZSwgY29udGVudCk7CisgICAgICAg
IHRoaXMuX2FnZW50V3JhcHBlci5fZmlsZUNvbnRlbnRSZWNlaXZlZChyZXF1ZXN0SWQsIGVycm9y
Q29kZSwgY29udGVudCwgY2hhcnNldCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtVmlldy5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbVZpZXcuanMKaW5kZXggMDkwMDhiZWY3
ZjQ2MDBkM2Q2YjJjNzlmYjU3NGMyNGZhYjhiZmIwOC4uMDdmODc4MTdjMjQ2ZGU1MDBkYjc1Y2Qw
ZmUwOWIxZDc5MmIwMTFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9GaWxlU3lzdGVtVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0ZpbGVTeXN0ZW1WaWV3LmpzCkBAIC01Niw2ICs1Niw5IEBAIFdlYkluc3BlY3Rv
ci5GaWxlU3lzdGVtVmlldyA9IGZ1bmN0aW9uKGZpbGVTeXN0ZW0pCiB9CiAKIFdlYkluc3BlY3Rv
ci5GaWxlU3lzdGVtVmlldy5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHR5cGUge0Fy
cmF5LjxFbGVtZW50Pn0KKyAgICAgKi8KICAgICBnZXQgc3RhdHVzQmFySXRlbXMoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIFt0aGlzLl9yZWZyZXNoQnV0dG9uLmVsZW1lbnRdOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFl
ZDc2ZWY1ZjhjYjVkYzZlYmU3NGRlMmY5OGE4OGNhOTIxM2ZkZGQuLjQwZWZmOTMzMDExYTkwYTVm
OTE4NGM5M2JjNzFiMDE0ZGUyMzE1NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0w
OSAgVGFpanUgVHN1aWtpICA8dHppa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQWRkIHRleHQgZmlsZSBzdXBwb3J0IGZvciBGaWxlU3lzdGVtQWdlbnQ6OnJlcXVlc3RG
aWxlQ29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTA0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3RvcnktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1m
aWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lz
dGVtL3JlYWQtZmlsZS5odG1sOgorCiAyMDEyLTA3LTA4ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3Rv
cnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5
c3RlbS9yZWFkLWRpcmVjdG9yeS1leHBlY3RlZC50eHQKaW5kZXggMGEwYzczNTkyODQ1Mjk4ZWI5
Njg5ZTNkNGY1ZTFjYjE2ZjNhOWFjMS4uMzk5YWE1NjMzMzY5MmMxNDE3OGY0ODY4MTNjZTg1NjY5
ZTFmNDcxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmls
ZXN5c3RlbS9yZWFkLWRpcmVjdG9yeS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWRpcmVjdG9yeS1leHBlY3RlZC50eHQK
QEAgLTYsNiArNiw3IEBAIGVudHJpZXM6CiAgICAgdXJsOiBmaWxlc3lzdGVtOmh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC90ZW1wb3JhcnkvaG9nZS9waXlvLmh0bWwKICAgICBuYW1lOiBwaXlvLmh0bWwK
ICAgICBpc0RpcmVjdG9yeTogZmFsc2UKKyAgICBpc1RleHRGaWxlOiB0cnVlCiAgICAgbWltZVR5
cGU6IHRleHQvaHRtbAogICAgIHJlc291cmNlVHlwZTogRG9jdW1lbnQKICAgMToKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1maWxl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0
ZW0vcmVhZC1maWxlLWV4cGVjdGVkLnR4dAppbmRleCAwMzg5Nzc0OTgzYTUyYmM4MDhhMmIwYmU4
MDJiYTI4YjUyODUwZTBjLi4wMzMwYmJlMmVjODdhMzFkNmE5M2YwNDA0MWExYTBlZTY5NTczMTZm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVt
L3JlYWQtZmlsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNiBAQAot
VGVzdHMgcmVhZEZpbGUuCitUZXN0cyByZXF1ZXN0RmlsZUNvbnRlbnQuCiAKIGVycm9yQ29kZSA9
IDAKLWNvbnRlbnQgPSAiVUVGVFV3PT0iIFtQQVNTXQorY29udGVudCA9ICJQQVNTIgorY2hhcnNl
dCA9IFVURi04CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2ZpbGVzeXN0ZW0vcmVhZC1maWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9maWxlc3lzdGVtL3JlYWQtZmlsZS5odG1sCmluZGV4IDM0MzQxZDhiYzY4NjIzOWNlODZk
Y2UyMWU0OTJlYzllMjMwY2M3MWIuLjIwNjEyZjQzN2QyMmM3ZDA1YmQyZmUyYjI4MTUzZjMxYTFm
ZjNhMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVz
eXN0ZW0vcmVhZC1maWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZmlsZXN5c3RlbS9yZWFkLWZpbGUuaHRtbApAQCAtMTgsMjIgKzE4LDI3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC53cml0ZUZpbGUoIi9ob2dlL2Z1Z2EiLCAicGlQQVNTeW8iLCBzdGVwMyk7CisgICAgICAg
IEluc3BlY3RvclRlc3Qud3JpdGVGaWxlKCIvaG9nZS9mdWdhLnR4dCIsICJwaVBBU1N5byIsIHN0
ZXAzKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGVwMygpCiAgICAgewotICAgICAgICByZXF1
ZXN0TWFuYWdlci5yZXF1ZXN0RmlsZUNvbnRlbnQoImZpbGVzeXN0ZW06aHR0cDovLzEyNy4wLjAu
MTo4MDAwL3RlbXBvcmFyeS9ob2dlL2Z1Z2EiLCAyLCA2LCBzdGVwNCk7CisgICAgICAgIHJlcXVl
c3RNYW5hZ2VyLnJlcXVlc3RGaWxlQ29udGVudCgiZmlsZXN5c3RlbTpodHRwOi8vMTI3LjAuMC4x
OjgwMDAvdGVtcG9yYXJ5L2hvZ2UvZnVnYS50eHQiLCB0cnVlLCAyLCA2LCAiVVRGLTgiLCBzdGVw
NCk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gc3RlcDQoZXJyb3JDb2RlLCBjb250ZW50KQorICAg
IGZ1bmN0aW9uIHN0ZXA0KGVycm9yQ29kZSwgY29udGVudCwgY2hhcnNldCkKICAgICB7CiAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJlcnJvckNvZGUgPSAiICsgZXJyb3JDb2RlKTsK
ICAgICAgICAgaWYgKGNvbnRlbnQpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiY29udGVudCA9IFwiIiArIGNvbnRlbnQgKyAiXCIgWyIgKyBhdG9iKGNvbnRlbnQpICsgIl0i
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJjb250ZW50ID0gXCIiICsg
Y29udGVudCArICJcIiIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiY29udGVudCA9IChudWxsKSIpOwogCisgICAgICAgIGlmIChjaGFyc2V0KQor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImNoYXJzZXQgPSAiICsgY2hhcnNl
dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJj
aGFyc2V0ID0gKG51bGwpIik7CisKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGVhckZpbGVTeXN0
ZW0oc3RlcDUpOwogICAgIH0KIApAQCAtNDUsNiArNTAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKIDwv
c2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08cD5UZXN0cyByZWFkRmlsZS48L3A+Cis8cD5UZXN0
cyByZXF1ZXN0RmlsZUNvbnRlbnQuPC9wPgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>