<?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>196276</bug_id>
          
          <creation_ts>2019-03-26 15:31:18 -0700</creation_ts>
          <short_desc>API::Data::createWithoutCopying should do a null check before calling CFRelease</short_desc>
          <delta_ts>2019-03-28 16:47:08 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>196319</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>jsbell</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1521486</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-26 15:31:18 -0700</bug_when>
    <thetext>API::Data::createWithoutCopying should do a null check before calling CFRelease.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521487</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-26 15:31:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/48059859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521494</commentid>
    <comment_count>2</comment_count>
      <attachid>366016</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-26 15:45:19 -0700</bug_when>
    <thetext>Created attachment 366016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521495</commentid>
    <comment_count>3</comment_count>
      <attachid>366016</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-26 15:46:27 -0700</bug_when>
    <thetext>Comment on attachment 366016
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBRequest.cpp:342
&gt;          m_transaction-&gt;abortDueToFailedRequest(DOMException::create(AbortError, &quot;IDBTransaction will abort due to uncaught exception in an event handler&quot;_s));

This is where causing the null pointer dereference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521848</commentid>
    <comment_count>4</comment_count>
      <attachid>366016</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-27 14:37:52 -0700</bug_when>
    <thetext>Comment on attachment 366016
Patch

Per personal conversation with Brady, we agree to separate the IndexedDB fix from this bug. Will have a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521935</commentid>
    <comment_count>5</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-27 17:35:08 -0700</bug_when>
    <thetext>A patch is uploaded in Bug 196319 for the indexed db fix. Since the test of the above patch depends on that other patch to not crash, I will upload a patch here after that one is landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522215</commentid>
    <comment_count>6</comment_count>
      <attachid>366205</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-28 14:29:58 -0700</bug_when>
    <thetext>Created attachment 366205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522223</commentid>
    <comment_count>7</comment_count>
      <attachid>366205</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-28 14:34:34 -0700</bug_when>
    <thetext>Comment on attachment 366205
Patch

Thanks, Alex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522288</commentid>
    <comment_count>8</comment_count>
      <attachid>366205</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-28 16:47:06 -0700</bug_when>
    <thetext>Comment on attachment 366205
Patch

Clearing flags on attachment: 366205

Committed r243631: &lt;https://trac.webkit.org/changeset/243631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522289</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-28 16:47:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366016</attachid>
            <date>2019-03-26 15:45:19 -0700</date>
            <delta_ts>2019-03-28 14:29:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196276-20190326154518.patch</filename>
            <type>text/plain</type>
            <size>13732</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJlMzk1NjRkZTJjNWQz
OTQ0NzA1ZjMwMjg4YjczN2E5NzZiY2NiZS4uNWU5N2YzMzliYjA2ZDY1ZDYxNGFiMjU4NGQxZmRi
ZmQxZDUwOTgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAzLTI2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQVBJOjpEYXRhOjpjcmVh
dGVXaXRob3V0Q29weWluZyBzaG91bGQgZG8gYSBudWxsIGNoZWNrIGJlZm9yZSBjYWxsaW5nIENG
UmVsZWFzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk2Mjc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODA1OTg1OT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0cy4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgIE1vdmUgdGhlIG51
bGwgY2hlY2sgb2YgbV90cmFuc2FjdGlvbiBiZWZvcmUgYWxsIG9wZXJhdGlvbnMgdGhhdCByZWx5
IG9uIHRoZSBub25udWxsIG1fdHJhbnNhY3Rpb24uCisKIDIwMTktMDMtMjYgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBTVkcgdGVhciBv
ZmYgb2JqZWN0cyBmb3IgU1ZHTGVuZ3RoLCBTVkdMZW5ndGhMaXN0IGFuZCBTVkdBbmltYXRlZExl
bmd0aExpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNmUwZjM2MjJjNTJiM2VhYTk2MjQ0MjI5YjI2ZTExYmVhMTU3
Yjc0Ni4uNTVjOTYwMzdkNjc3NTE2Y2I4YTIxYTE5ZWYwMjU5NGUyMGY5YmEwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAxOS0wMy0yNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBw
bGUuY29tPgorCisgICAgICAgIEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcgc2hvdWxk
IGRvIGEgbnVsbCBjaGVjayBiZWZvcmUgY2FsbGluZyBDRlJlbGVhc2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjI3NgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDgwNTk4NTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQVBJRGF0YUNvY29hLm1tOgorICAgICAgICAoQVBJ
OjpEYXRhOjpjcmVhdGVXaXRob3V0Q29weWluZyk6CisKIDIwMTktMDMtMjYgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGFzeW5jIHBh
c3RlIG1ldGhvZCBvbiBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggNDZiZTVlMTZlYjQ1
ZWQzMjAyMDViMmIxZjE4MmRmOWQ0YmRkYWJiYi4uYWI3ZjE1ODZkOGZjZTBlNTBjYWQyY2Q0NjEz
N2ZkMjhhMzJkYTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5jcHAKQEAgLTMzMCwyMSArMzMwLDIyIEBAIHZvaWQgSURCUmVxdWVzdDo6ZGlz
cGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiAgICAgaWYgKCFtX2hhc1BlbmRpbmdBY3Rpdml0eSkK
ICAgICAgICAgbV9oYXNQZW5kaW5nQWN0aXZpdHkgPSBpc09wZW5EQlJlcXVlc3QoKSAmJiAoZXZl
bnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQgfHwgZXZlbnQudHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQpOwogCisgICAgbV9kaXNwYXRjaGluZ0V2
ZW50ID0gZmFsc2U7CisgICAgaWYgKCFtX3RyYW5zYWN0aW9uKQorICAgICAgICByZXR1cm47CisK
ICAgICAvLyBUaGUgcmVxdWVzdCBzaG91bGQgb25seSByZW1haW4gaW4gdGhlIHRyYW5zYWN0aW9u
J3MgcmVxdWVzdCBsaXN0IGlmIGl0IHJlcHJlc2VudHMgYSBwZW5kaW5nIGN1cnNvciBvcGVyYXRp
b24sIG9yIHRoaXMgaXMgYW4gb3BlbiByZXF1ZXN0IHRoYXQgd2FzIGJsb2NrZWQuCi0gICAgaWYg
KG1fdHJhbnNhY3Rpb24gJiYgIW1fcGVuZGluZ0N1cnNvciAmJiBldmVudC50eXBlKCkgIT0gZXZl
bnROYW1lcygpLmJsb2NrZWRFdmVudCkKKyAgICBpZiAoIW1fcGVuZGluZ0N1cnNvciAmJiBldmVu
dC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkKICAgICAgICAgbV90cmFuc2Fj
dGlvbi0+cmVtb3ZlUmVxdWVzdCgqdGhpcyk7CiAKICAgICBpZiAobV9oYXNVbmNhdWdodEV4Y2Vw
dGlvbikKICAgICAgICAgbV90cmFuc2FjdGlvbi0+YWJvcnREdWVUb0ZhaWxlZFJlcXVlc3QoRE9N
RXhjZXB0aW9uOjpjcmVhdGUoQWJvcnRFcnJvciwgIklEQlRyYW5zYWN0aW9uIHdpbGwgYWJvcnQg
ZHVlIHRvIHVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiBhbiBldmVudCBoYW5kbGVyIl9zKSk7Ci0gICAg
ZWxzZSBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQoKSAmJiBldmVudC50eXBlKCkgPT0gZXZl
bnROYW1lcygpLmVycm9yRXZlbnQgJiYgbV90cmFuc2FjdGlvbiAmJiAhbV90cmFuc2FjdGlvbi0+
aXNGaW5pc2hlZE9yRmluaXNoaW5nKCkpIHsKKyAgICBlbHNlIGlmICghZXZlbnQuZGVmYXVsdFBy
ZXZlbnRlZCgpICYmIGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCAmJiAh
bV90cmFuc2FjdGlvbi0+aXNGaW5pc2hlZE9yRmluaXNoaW5nKCkpIHsKICAgICAgICAgQVNTRVJU
KG1fZG9tRXJyb3IpOwogICAgICAgICBtX3RyYW5zYWN0aW9uLT5hYm9ydER1ZVRvRmFpbGVkUmVx
dWVzdCgqbV9kb21FcnJvcik7CiAgICAgfQogCi0gICAgaWYgKG1fdHJhbnNhY3Rpb24pCi0gICAg
ICAgIG1fdHJhbnNhY3Rpb24tPmZpbmlzaGVkRGlzcGF0Y2hFdmVudEZvclJlcXVlc3QoKnRoaXMp
OwotCi0gICAgbV9kaXNwYXRjaGluZ0V2ZW50ID0gZmFsc2U7CisgICAgbV90cmFuc2FjdGlvbi0+
ZmluaXNoZWREaXNwYXRjaEV2ZW50Rm9yUmVxdWVzdCgqdGhpcyk7CiB9CiAKIHZvaWQgSURCUmVx
dWVzdDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFuZGxlcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElEYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9BUElEYXRhQ29jb2EubW0KaW5kZXggZGE5ZWI2MjZiNjNjMjAwNDM3MTY3OWU1
YzNmYzIzYmI4ZWQ3YzhhYi4uMTcxZjE5MzRkYjYwY2RiOWJhMTRkMmEwNmEzNzkxZWI5MjE1Nzlm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJRGF0YUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSURhdGFDb2NvYS5tbQpAQCAtMzQs
NiArMzQsOCBAQCBSZWY8RGF0YT4gRGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcoUmV0YWluUHRy
PE5TRGF0YT4gZGF0YSkKICAgICBzaXplX3Qgc2l6ZSA9IFtkYXRhIGxlbmd0aF07CiAKICAgICBy
ZXR1cm4gY3JlYXRlV2l0aG91dENvcHlpbmcoYnl0ZXMsIHNpemUsIFtdKHVuc2lnbmVkIGNoYXIq
LCBjb25zdCB2b2lkKiBkYXRhKSB7CisgICAgICAgIGlmICghZGF0YSkKKyAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgQ0ZSZWxlYXNlKGRhdGEpOwogICAgIH0sIHN0YXRpY19jYXN0PHZvaWQq
PihkYXRhLmxlYWtSZWYoKSkpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGM4YWYwYWMwNThlZmQxYzkxNTA2NjliMDNmYjIwODMyNTdjZTUy
NjcuLmQ0MzJlN2JhODRmM2ZmYThmMDRkOTU5MjE2MjU0MjQ3MGE5ZWNjYWEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxOS0wMy0yNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAg
IEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcgc2hvdWxkIGRvIGEgbnVsbCBjaGVjayBi
ZWZvcmUgY2FsbGluZyBDRlJlbGVhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NjI3NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwNTk4NTk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFu
IEFQSSB0ZXN0IHRoYXQgd2lsbCBwYXNzIGEgbmlsIHRvIEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91
dENvcHlpbmcgdmlhIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2ViQ3J5cHRv
TWFzdGVyS2V5LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbDoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkNyeXB0b01hc3RlcktleS5tbTogQWRkZWQu
CisgICAgICAgICgtW1dlYkNyeXB0b01hc3RlcktleU5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViQ3J5
cHRvTWFzdGVyS2V5Rm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV2ViQ3J5cHRvTWFzdGVyS2V5
TmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVz
c2FnZTppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTktMDMtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGFzeW5jIHBhc3RlIG1ldGhvZCBv
biBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MzgxODU5MzhiZTgyZTQ1NTgzNmUyYzQ4YzJjYmZiNjgzYzUwOTU0MC4uNDcxNmFmMjkyOTU5OWY5
YmI3NGMzY2ZjNWIwYmQ5MzNhMjc0NGI0YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMw
MCw2ICszMDAsNyBAQAogCQk1Nzk2NTFFNzIxNkJGREVEMDA2RUJGRTUgLyogRmlkb0hpZE1lc3Nh
Z2VUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3OTY1MUU2MjE2QkZENTMwMDZFQkZFNSAvKiBGaWRvSGlkTWVzc2FnZVRlc3QuY3BwICovOyB9
OwogCQk1Nzk3RkUzMTFFQjE1QTY4MDBCMkY0QTAgLyogTmF2aWdhdGlvbkNsaWVudERlZmF1bHRD
cnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTc5N0ZFMkYxRUIxNUE1RjAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGllbnREZWZhdWx0Q3J5cHRv
LmNwcCAqLzsgfTsKIAkJNTc5N0ZFMzMxRUIxNUFCMTAwQjJGNEEwIC8qIG5hdmlnYXRpb24tY2xp
ZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTc5N0ZFMzIxRUIxNUE4OTAwQjJGNEEwIC8qIG5hdmlnYXRp
b24tY2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgKi87IH07CisJCTU3QTc5ODU3MjI0QUIzNEUw
MEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0E3OTg1NjIyNEFCMzRFMDBBN0Y2RjEgLyogV2ViQ3J5
cHRvTWFzdGVyS2V5Lm1tICovOyB9OwogCQk1N0MzRkE2NjFGN0MyNDhGMDA5RDRCODAgLyogV2Vh
a1B0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0I5QkMzNzFBNjc0ODIzMDBGRTU2NzggLyogV2Vha1B0ci5jcHAgKi87IH07CiAJCTU3RjRBQUEw
MjA4RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Y0QUE5RjIwOEZBODNEMDBBNjhFOUUgLyog
U1NMS2V5R2VuZXJhdG9yLm1tICovOyB9OwogCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0UgLyog
SXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjU2QTVCMUM3RjhBNDAwMEYzMUQ3RSAvKiBJ
c05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWwgKi87IH07CkBAIC0xNzEzLDYgKzE3MTQsNyBA
QAogCQk1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAgLyogTmF2aWdhdGlvbkNsaWVudERlZmF1bHRD
cnlwdG8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlv
bkNsaWVudERlZmF1bHRDcnlwdG8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlw
dG8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJuYXZpZ2F0aW9uLWNsaWVudC1k
ZWZhdWx0LWNyeXB0by5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5OEUy
QUYxQ0FGNUMyODAwQzVDQkEwIC8qIFByb3Zpc2lvbmFsVVJMTm90Q2hhbmdlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvdmlzaW9uYWxVUkxOb3RDaGFuZ2Uu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3QTc5ODU2MjI0QUIzNEUwMEE3RjZG
MSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDcnlw
dG9NYXN0ZXJLZXkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RDFENzVFMjFE
Q0I3QTgwMDkzRTg2QSAvKiBVMmZDb21tYW5kQ29uc3RydWN0b3JUZXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFUyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0YxMEQ5MjFDN0U3QjM4MDBFQ0RGMzAg
LyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RjRBQTlGMjA4RkE4M0QwMEE2OEU5RSAvKiBTU0xLZXlHZW5l
cmF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTU0xLZXlHZW5lcmF0b3IubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc1LDYgKzI2NzcsNyBAQAogCQkJCTYzNTZGQjIx
MUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVudFJlY3QubW0gKi8sCiAJCQkJODM3NzlD
MzcxRjgyRkVCMDAwN0NEQThBIC8qIFZpc2l0ZWRMaW5rU3RvcmUubW0gKi8sCiAJCQkJODMwRjJF
MEIyMDlBNkE3NDAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tICov
LAorCQkJCTU3QTc5ODU2MjI0QUIzNEUwMEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0g
Ki8sCiAJCQkJNUM5NzNGNUIxRjU4RUYwQTAwMzU5QzI3IC8qIFdlYkdMUG9saWN5Lm1tICovLAog
CQkJCTUxNzE0RUI2MUNGOEM3QTQwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAu
bW0gKi8sCiAJCQkJQzFEOEVFMjEyMDI4RThFMzAwOEVCMTQxIC8qIFdlYlByb2Nlc3NUZXJtaW5h
dGUubW0gKi8sCkBAIC00Mzg4LDYgKzQzOTEsNyBAQAogCQkJCTgzMEYyRTBDMjA5QTZBOEUwMEQz
NkZGMSAvKiBXZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDODNFMDRDMUQwQTY0MTgwMEZFQkNGMyAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMUExQTQxMUFFNjAwNDQ3QzRDIC8qIFdlYkNvcmVTdGF0
aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1N0E3OTg1NzIy
NEFCMzRFMDBBN0Y2RjEgLyogV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUM5NzNGNUMxRjU4RUY4QjAwMzU5QzI3IC8qIFdlYkdMUG9saWN5Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdFQUIxQTQxMUEyNDAwNDQ3QzRDIC8qIFdlYktpdEFnbm9zdGljVGVzdC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTUxNzE0RUI4MUNGOENBMTcwMDQ3MjNDNCAvKiBXZWJQcm9j
ZXNzS2lsbElEQkNsZWFudXAubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L25hdmlnYXRpb24tY2xpZW50LWRlZmF1bHQtY3J5cHRv
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9uYXZpZ2F0aW9uLWNsaWVu
dC1kZWZhdWx0LWNyeXB0by5odG1sCmluZGV4IDEzYWJkYjU0MGVjYWFiMDkwMDY5NzEzZmRjN2E1
NTcwZTA4YWEwODIuLmZiNzc3MDIxODc5ZGNkNzg4YWZkMDRjODM0MzI3OGZlOWZmZjdjZjAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L25hdmlnYXRpb24tY2xp
ZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvbmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbApAQCAtNTQsMTMgKzU0
LDE3IEBAIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBwcml2YXRlS2V5SlNPTiwgeyBu
YW1lOiAnUlNBU1NBLVBLQ1MxLXYxXzUnLCBoYXNoCiAKICAgICBmdW5jdGlvbiBzdG9yZUtleSgp
IHsKICAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInJzYS1pbmRleGVk
ZGIiLCAicmVhZHdyaXRlIikub2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKLSAgICAgICAg
dmFyIHJlcSA9IG9iamVjdFN0b3JlLnB1dChrZXksICJteWtleSIpOwotICAgICAgICByZXEub25l
cnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICBhbGVydCgnZmFpbGVkIHRvIHN0
b3JlIGtleScpOwotICAgICAgICB9Ci0gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
dmVudCkgewotICAgICAgICAgICAgYWxlcnQoJ3N1Y2Nlc3NmdWxseSBzdG9yZWQga2V5Jyk7Ci0g
ICAgICAgICAgICByZWFkS2V5KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2YXIgcmVx
ID0gb2JqZWN0U3RvcmUucHV0KGtleSwgIm15a2V5Iik7CisgICAgICAgICAgICByZXEub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgYWxlcnQoJ2ZhaWxlZCB0byBz
dG9yZSBrZXknKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgICAgIGFsZXJ0KCdzdWNjZXNzZnVsbHkgc3Rv
cmVkIGtleScpOworICAgICAgICAgICAgICAgIHJlYWRLZXkoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgYWxlcnQoZS5uYW1lKTsKICAgICAgICAg
fQogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XZWJDcnlwdG9NYXN0ZXJLZXkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dlYkNyeXB0b01hc3RlcktleS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTUxMTRiYjM3YThl
OGRjYmQ0ZTFlNTc4OTgzZGE0M2QyNTlmN2UyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJDcnlwdG9NYXN0ZXJLZXkubW0KQEAgLTAs
MCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK3N0YXRpYyBib29sIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOworc3RhdGljIFN0cmlu
ZyBnTWVzc2FnZTsKKworQGludGVyZmFjZSBXZWJDcnlwdG9NYXN0ZXJLZXlOYXZpZ2F0aW9uRGVs
ZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGUsIFdLVUlEZWxlZ2F0ZT4KK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFdlYkNyeXB0b01hc3RlcktleU5hdmlnYXRpb25EZWxlZ2F0
ZQorCistIChOU0RhdGEgKilfd2ViQ3J5cHRvTWFzdGVyS2V5Rm9yV2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldworeworICAgIHJldHVybiBuaWw7Cit9CisKKy0gKHZvaWQpd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0
cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBn
TWVzc2FnZSA9IG1lc3NhZ2U7CisgICAgcmVjZWl2ZWRNZXNzYWdlID0gdHJ1ZTsKKyAgICBjb21w
bGV0aW9uSGFuZGxlcigpOworfQorCitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
KworVEVTVChXZWJLaXQsIFdlYkNyeXB0b05pbE1hc3RlcktleSkKK3sKKyAgICBSZXRhaW5QdHI8
TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
bmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8iIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKV0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViQ3J5
cHRvTWFzdGVyS2V5TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZp
ZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBz
ZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFV0aWw6
OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIkRhdGFDbG9uZUVy
cm9yIiwgZ01lc3NhZ2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366205</attachid>
            <date>2019-03-28 14:29:58 -0700</date>
            <delta_ts>2019-03-28 16:47:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196276-20190328142957.patch</filename>
            <type>text/plain</type>
            <size>11001</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGExNjU5M2IyNjEzNTI0MDI3
MDhiNTIzYmMyNDc2ZjRjY2U3YTgxM2EuLjA2NjViMmYyMDk1ZWE4NjZlODUwNDQzZmJhN2FiNDg4
NDgwMjZhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDMtMjYgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBBUEk6OkRhdGE6OmNyZWF0ZVdp
dGhvdXRDb3B5aW5nIHNob3VsZCBkbyBhIG51bGwgY2hlY2sgYmVmb3JlIGNhbGxpbmcgQ0ZSZWxl
YXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYy
NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4MDU5ODU5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSURhdGFDb2Nv
YS5tbToKKyAgICAgICAgKEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcpOgorCiAyMDE5
LTAzLTI4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCB0aGUgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9B
UElEYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElEYXRhQ29jb2Eu
bW0KaW5kZXggZGE5ZWI2MjZiNjNjMjAwNDM3MTY3OWU1YzNmYzIzYmI4ZWQ3YzhhYi4uMTcxZjE5
MzRkYjYwY2RiOWJhMTRkMmEwNmEzNzkxZWI5MjE1NzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvQVBJRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0FQSURhdGFDb2NvYS5tbQpAQCAtMzQsNiArMzQsOCBAQCBSZWY8RGF0YT4gRGF0
YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcoUmV0YWluUHRyPE5TRGF0YT4gZGF0YSkKICAgICBzaXpl
X3Qgc2l6ZSA9IFtkYXRhIGxlbmd0aF07CiAKICAgICByZXR1cm4gY3JlYXRlV2l0aG91dENvcHlp
bmcoYnl0ZXMsIHNpemUsIFtdKHVuc2lnbmVkIGNoYXIqLCBjb25zdCB2b2lkKiBkYXRhKSB7Cisg
ICAgICAgIGlmICghZGF0YSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgQ0ZSZWxlYXNl
KGRhdGEpOwogICAgIH0sIHN0YXRpY19jYXN0PHZvaWQqPihkYXRhLmxlYWtSZWYoKSkpOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBlNjlm
MjhiZGZmN2E5MDhmZTEzMzMxNGZiYzczNDQ1YWZjN2JlZTIuLmU0NDA1NTE4YzY1YzA4NmI0MjI4
ODM4NDhkNjlmYjkzYWZjMWNhMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOS0wMy0yNiAgSmlld2VuIFRhbiAg
PGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91
dENvcHlpbmcgc2hvdWxkIGRvIGEgbnVsbCBjaGVjayBiZWZvcmUgY2FsbGluZyBDRlJlbGVhc2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjI3Ngor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwNTk4NTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRoYXQgd2lsbCBwYXNz
IGEgbmlsIHRvIEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91dENvcHlpbmcgdmlhIE5hdmlnYXRpb25T
dGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2ViQ3J5cHRvTWFzdGVyS2V5LgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbmF2aWdhdGlvbi1jbGllbnQtZGVm
YXVsdC1jcnlwdG8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYkNyeXB0b01hc3RlcktleS5tbTogQWRkZWQuCisgICAgICAgICgtW1dlYkNyeXB0b01h
c3RlcktleU5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViQ3J5cHRvTWFzdGVyS2V5Rm9yV2ViVmlldzpd
KToKKyAgICAgICAgKC1bV2ViQ3J5cHRvTWFzdGVyS2V5TmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZp
ZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIw
MTktMDMtMjggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtXUEVdW0dUS10gd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfZGF0YV9maW5pc2ggY2Fu
IHJldHVybiBOVUxMIHdpdGhvdXQgc2V0dGluZyBlcnJvcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzODE4NTkzOGJlODJlNDU1ODM2ZTJjNDhjMmNiZmI2ODNjNTA5NTQwLi40NzE2YWYyOTI5
NTk5ZjliYjc0YzNjZmM1YjBiZDkzM2EyNzQ0YjRhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMzAwLDYgKzMwMCw3IEBACiAJCTU3OTY1MUU3MjE2QkZERUQwMDZFQkZFNSAvKiBGaWRvSGlk
TWVzc2FnZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTc5NjUxRTYyMTZCRkQ1MzAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5jcHAg
Ki87IH07CiAJCTU3OTdGRTMxMUVCMTVBNjgwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50RGVm
YXVsdENyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAgLyogTmF2aWdhdGlvbkNsaWVudERlZmF1bHRD
cnlwdG8uY3BwICovOyB9OwogCQk1Nzk3RkUzMzFFQjE1QUIxMDBCMkY0QTAgLyogbmF2aWdhdGlv
bi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2
aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCAqLzsgfTsKKwkJNTdBNzk4NTcyMjRB
QjM0RTAwQTdGNkYxIC8qIFdlYkNyeXB0b01hc3RlcktleS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QTc5ODU2MjI0QUIzNEUwMEE3RjZGMSAvKiBX
ZWJDcnlwdG9NYXN0ZXJLZXkubW0gKi87IH07CiAJCTU3QzNGQTY2MUY3QzI0OEYwMDlENEI4MCAv
KiBXZWFrUHRyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQjlCQzM3MUE2NzQ4MjMwMEZFNTY3OCAvKiBXZWFrUHRyLmNwcCAqLzsgfTsKIAkJNTdG
NEFBQTAyMDhGQUVGMDAwQTY4RTlFIC8qIFNTTEtleUdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RjRBQTlGMjA4RkE4M0QwMEE2OEU5
RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gKi87IH07CiAJCTU3RjU2QTVDMUM3RjhDQzEwMEYzMUQ3
RSAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdGNTZBNUIxQzdGOEE0MDAwRjMxRDdF
IC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQuaHRtbCAqLzsgfTsKQEAgLTE3MTMsNiArMTcx
NCw3IEBACiAJCTU3OTdGRTJGMUVCMTVBNUYwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50RGVm
YXVsdENyeXB0by5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZp
Z2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3OTdGRTMyMUVCMTVBODkwMEIyRjRBMCAvKiBuYXZpZ2F0aW9uLWNsaWVudC1kZWZhdWx0
LWNyeXB0by5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm5hdmlnYXRpb24tY2xp
ZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
Nzk4RTJBRjFDQUY1QzI4MDBDNUNCQTAgLyogUHJvdmlzaW9uYWxVUkxOb3RDaGFuZ2UubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm92aXNpb25hbFVSTE5vdENo
YW5nZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdBNzk4NTYyMjRBQjM0RTAw
QTdGNkYxIC8qIFdlYkNyeXB0b01hc3RlcktleS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YkNyeXB0b01hc3RlcktleS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEMUQ3
NUUyMURDQjdBODAwOTNFODZBIC8qIFUyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RjEwRDkyMUM3RTdCMzgwMEVD
REYzMCAvKiBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGNEFBOUYyMDhGQTgzRDAwQTY4RTlFIC8qIFNTTEtl
eUdlbmVyYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNTTEtleUdlbmVyYXRvci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NzUsNiArMjY3Nyw3IEBACiAJCQkJNjM1
NkZCMjExRUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSAqLywKIAkJCQk4
Mzc3OUMzNzFGODJGRUIwMDA3Q0RBOEEgLyogVmlzaXRlZExpbmtTdG9yZS5tbSAqLywKIAkJCQk4
MzBGMkUwQjIwOUE2QTc0MDBEMzZGRjEgLyogV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUu
bW0gKi8sCisJCQkJNTdBNzk4NTYyMjRBQjM0RTAwQTdGNkYxIC8qIFdlYkNyeXB0b01hc3Rlcktl
eS5tbSAqLywKIAkJCQk1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0g
Ki8sCiAJCQkJNTE3MTRFQjYxQ0Y4QzdBNDAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xl
YW51cC5tbSAqLywKIAkJCQlDMUQ4RUUyMTIwMjhFOEUzMDA4RUIxNDEgLyogV2ViUHJvY2Vzc1Rl
cm1pbmF0ZS5tbSAqLywKQEAgLTQzODgsNiArNDM5MSw3IEBACiAJCQkJODMwRjJFMEMyMDlBNkE4
RTAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0M4M0UwNEMxRDBBNjQxODAwRkVCQ0YzIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24u
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YxQTFBNDExQUU2MDA0NDdDNEMgLyogV2ViQ29y
ZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3QTc5
ODU3MjI0QUIzNEUwMEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1Qzk3M0Y1QzFGNThFRjhCMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0VBQjFBNDExQTI0MDA0NDdDNEMgLyogV2ViS2l0QWdub3N0aWNU
ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3MTRFQjgxQ0Y4Q0ExNzAwNDcyM0M0IC8qIFdl
YlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1j
cnlwdG8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L25hdmlnYXRpb24t
Y2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwKaW5kZXggMTNhYmRiNTQwZWNhYWIwOTAwNjk3MTNm
ZGM3YTU1NzBlMDhhYTA4Mi4uZmI3NzcwMjE4NzlkY2Q3ODhhZmQwNGM4MzQzMjc4ZmU5ZmZmN2Nm
MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbmF2aWdhdGlv
bi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9uYXZpZ2F0aW9uLWNsaWVudC1kZWZhdWx0LWNyeXB0by5odG1sCkBAIC01NCwx
MyArNTQsMTcgQEAgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIHByaXZhdGVLZXlKU09O
LCB7IG5hbWU6ICdSU0FTU0EtUEtDUzEtdjFfNScsIGhhc2gKIAogICAgIGZ1bmN0aW9uIHN0b3Jl
S2V5KCkgewogICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNhLWlu
ZGV4ZWRkYiIsICJyZWFkd3JpdGUiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOwotICAg
ICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUucHV0KGtleSwgIm15a2V5Iik7Ci0gICAgICAgIHJl
cS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIGFsZXJ0KCdmYWlsZWQg
dG8gc3RvcmUga2V5Jyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICBhbGVydCgnc3VjY2Vzc2Z1bGx5IHN0b3JlZCBrZXkn
KTsKLSAgICAgICAgICAgIHJlYWRLZXkoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHZh
ciByZXEgPSBvYmplY3RTdG9yZS5wdXQoa2V5LCAibXlrZXkiKTsKKyAgICAgICAgICAgIHJlcS5v
bmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBhbGVydCgnZmFpbGVk
IHRvIHN0b3JlIGtleScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgYWxlcnQoJ3N1Y2Nlc3NmdWxs
eSBzdG9yZWQga2V5Jyk7CisgICAgICAgICAgICAgICAgcmVhZEtleSgpOworICAgICAgICAgICAg
fQorICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICBhbGVydChlLm5hbWUpOwogICAg
ICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dlYkNyeXB0b01hc3RlcktleS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NTExNGJi
MzdhOGU4ZGNiZDRlMWU1Nzg5ODNkYTQzZDI1OWY3ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkNyeXB0b01hc3RlcktleS5tbQpA
QCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0IDxXZWJL
aXQvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworc3RhdGljIGJvb2wgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7CitzdGF0aWMg
U3RyaW5nIGdNZXNzYWdlOworCitAaW50ZXJmYWNlIFdlYkNyeXB0b01hc3RlcktleU5hdmlnYXRp
b25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZSwgV0tVSURlbGVnYXRl
PgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViQ3J5cHRvTWFzdGVyS2V5TmF2aWdhdGlvbkRl
bGVnYXRlCisKKy0gKE5TRGF0YSAqKV93ZWJDcnlwdG9NYXN0ZXJLZXlGb3JXZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3Cit7CisgICAgcmV0dXJuIG5pbDsKK30KKworLSAodm9pZCl3ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6
KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1l
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgorewor
ICAgIGdNZXNzYWdlID0gbWVzc2FnZTsKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSB0cnVlOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgeworCitURVNUKFdlYktpdCwgV2ViQ3J5cHRvTmlsTWFzdGVyS2V5KQoreworICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJuYXZpZ2F0aW9uLWNsaWVudC1kZWZhdWx0LWNyeXB0byIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tX
ZWJDcnlwdG9NYXN0ZXJLZXlOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBb
d2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJW
aWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAg
VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUSgiRGF0YUNs
b25lRXJyb3IiLCBnTWVzc2FnZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>