<?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>122631</bug_id>
          
          <creation_ts>2013-10-10 19:24:04 -0700</creation_ts>
          <short_desc>EventContext should be used only in EventDispatcher.cpp</short_desc>
          <delta_ts>2013-10-10 20:54:50 -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>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>122633</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>938647</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-10 19:24:04 -0700</bug_when>
    <thetext>Constrain the use of EventContext within EventDispatcher.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938649</commentid>
    <comment_count>1</comment_count>
      <attachid>213956</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-10 19:34:47 -0700</bug_when>
    <thetext>Created attachment 213956
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938653</commentid>
    <comment_count>2</comment_count>
      <attachid>213956</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-10 19:43:52 -0700</bug_when>
    <thetext>Comment on attachment 213956
Cleanup

Attachment 213956 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/3811108</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938654</commentid>
    <comment_count>3</comment_count>
      <attachid>213958</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-10 19:47:18 -0700</bug_when>
    <thetext>Created attachment 213958
Fixed EFL builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938658</commentid>
    <comment_count>4</comment_count>
      <attachid>213958</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-10 20:03:26 -0700</bug_when>
    <thetext>Comment on attachment 213958
Fixed EFL builds

Attachment 213958 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/3919006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938660</commentid>
    <comment_count>5</comment_count>
      <attachid>213958</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-10 20:10:56 -0700</bug_when>
    <thetext>Comment on attachment 213958
Fixed EFL builds

Attachment 213958 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3897012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938666</commentid>
    <comment_count>6</comment_count>
      <attachid>213961</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-10 20:42:02 -0700</bug_when>
    <thetext>Created attachment 213961
Fixed EFL builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938667</commentid>
    <comment_count>7</comment_count>
      <attachid>213961</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-10 20:44:42 -0700</bug_when>
    <thetext>Comment on attachment 213961
Fixed EFL builds

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

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:-24681
&gt; -				1C81BA330E97357C00266E07 /* Copy Inspector Resources */,
&gt; -				1C5F9D760E09A1B400E91D0A /* Streamline Inspector Source */,

What&apos;s this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938670</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-10 20:54:50 -0700</bug_when>
    <thetext>Committed r157288: &lt;http://trac.webkit.org/changeset/157288&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213956</attachid>
            <date>2013-10-10 19:34:47 -0700</date>
            <delta_ts>2013-10-10 19:47:15 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-122631-20131010193446.patch</filename>
            <type>text/plain</type>
            <size>28529</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzI4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDEzLTEwLTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIENvbnN0cmFpbiB0aGUgdXNlIG9m
IEV2ZW50Q29udGV4dCB3aXRoaW4gRXZlbnREaXNwYXRjaGVyLmNwcAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNjMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVyZ2VkIFdpbmRvd0V2ZW50Q29udGV4
dCBpbnRvIEV2ZW50RGlzcGF0Y2hlci4gTW92ZWQgdGhlIGNvZGUgdG8gYXZvaWQgZGlzcGF0Y2hp
bmcgbG9hZCBldmVudCBvbgorICAgICAgICB3aW5kb3cgaW50byBkaXNwYXRjaEV2ZW50SW5ET00g
c28gdGhhdCBXaW5kb3dFdmVudENvbnRleHQncyBjb25zdHJ1Y3RvciBkb2Vzbid0IG5lZWQgRXZl
bnQuCisKKyAgICAgICAgQWxzbyByZXBsYWNlZCBET01XaW5kb3csIE5vZGUsIGFuZCBFdmVudFBh
dGggYXJndW1lbnRzIHRvIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZl
bnQKKyAgICAgICAgYnkgYSBzaW5nbGUgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgd2luZG93
LCB0aGUgb3JpZ2luLCBvciB0aGUgZXZlbnQgcGF0aCBoYXMgYW4gZXZlbnQgbGlzdGVuZXIuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9FdmVudERp
c3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93RXZlbnRDb250ZXh0Ojp3aW5k
b3cpOiBNb3ZlZCBmcm9tIFdpbmRvd0V2ZW50Q29udGV4dC4KKyAgICAgICAgKFdlYkNvcmU6Oldp
bmRvd0V2ZW50Q29udGV4dDo6dGFyZ2V0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXaW5k
b3dFdmVudENvbnRleHQ6OldpbmRvd0V2ZW50Q29udGV4dCk6IERpdHRvOyByZW1vdmVkIHRoZSBj
b2RlIHRvIGF2b2lkIGRpc3BhdGNoaW5nIGxvYWQKKyAgICAgICAgZXZlbnQgb24gd2luZG93IHNp
bmNlIHRoYXQncyBjaGVja2VkIGluIGRpc3BhdGNoRXZlbnRJbkRPTSBub3cuCisgICAgICAgIChX
ZWJDb3JlOjpXaW5kb3dFdmVudENvbnRleHQ6OmhhbmRsZUxvY2FsRXZlbnRzKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpkaXNwYXRjaEV2ZW50SW5ET00pOiBBdm9pZCBjYWxsaW5nIGhhbmRs
ZUxvY2FsRXZlbnQgb24gYSBsb2FkIGV2ZW50IHdpdGggV2luZG93RXZlbnRDb250ZXh0LgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KTogUGFzcyBhIGJv
b2xlYW4gdG8gaW5kaWNhdGUgd2hldGhlciB3aW5kb3csIHRoZSBvcmlnaW4sIG9yCisgICAgICAg
IHRoZSBldmVudCBwYXRoIGNvbnRhaW5zIGFueSBldmVudCBsaXN0ZW5lciB0byBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50IHRvIGhpZGUKKyAgICAgICAgRXZlbnRQ
YXRoIGZyb20gdGhlIGluc3BlY3RvciBjb2RlLgorICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNo
ZXIuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAg
ICAgICAgKiBkb20vV2luZG93RXZlbnRDb250ZXh0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBk
b20vV2luZG93RXZlbnRDb250ZXh0Lmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbERpc3BhdGNoRXZlbnRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxEaXNwYXRjaEV2ZW50KToKKwogMjAxMy0xMC0xMCAgQW5kcmVhcyBLbGluZyAg
PGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgS2lsbCBXZWJDb3JlOjpCaW5kaW5nU3RhdGUu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE1NzI4MikKKysr
IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMw
MTgsOCArMzAxOCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmggXAotCVNvdXJjZS9XZWJD
b3JlL2RvbS9XaW5kb3dFdmVudENvbnRleHQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vV2lu
ZG93RXZlbnRDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oJKHJldmlzaW9uIDE1NzI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMzU5LDIwICsxMzM1
OSw2IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXFdp
bmRvd0V2ZW50Q29udGV4dC5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cd29ya2Vyc1xBYnN0cmFjdFdvcmtlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlx3b3JrZXJzXERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdvcmtlcnNcRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcCIg
Lz4KQEAgLTE5ODI4LDcgKzE5ODE0LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRv
bVxXZWJLaXROYW1lZEZsb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxX
ZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRv
bVxXaGVlbEV2ZW50LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cV2luZG93
RXZlbnRDb250ZXh0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3b3JrZXJzXEFi
c3RyYWN0V29ya2VyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3b3JrZXJzXERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3b3JrZXJzXERlZGljYXRlZFdvcmtlclRocmVhZC5oIiAvPgpJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwko
cmV2aXNpb24gMTU3MjgxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC0zNDA1LDkgKzM0MDUsNiBAQAog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXFdoZWVsRXZlbnQuY3BwIj4KICAgICAgIDxG
aWx0ZXI+ZG9tPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxkb21cV2luZG93RXZlbnRDb250ZXh0LmNwcCI+Ci0gICAgICA8RmlsdGVyPmRvbTwv
RmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd29y
a2Vyc1xBYnN0cmFjdFdvcmtlci5jcHAiPgogICAgICAgPEZpbHRlcj53b3JrZXJzPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMDI5MCw5ICsxMDI4Nyw2IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxkb21cV2hlZWxFdmVudC5oIj4KICAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cV2lu
ZG93RXZlbnRDb250ZXh0LmgiPgotICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KLSAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdvcmtlcnNcQWJzdHJhY3RXb3Jr
ZXIuaCI+CiAgICAgICA8RmlsdGVyPndvcmtlcnM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDE1NzI4MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTIwNSw4ICsxMjA1LDYgQEAK
IAkJNDEwQjdFNzIxMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMEI3RTcxMTA0
NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi87IH07CiAJCTQxMjMw
ODFCMTM4QzQyOTcwMEJDQ0ZDQSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjE5QjFBMDgyNDVFNUEwMDFFOUFC
QyAvKiBXZWJDb3JlLmZyYW1ld29yayAqLzsgfTsKIAkJNDEyMzA5MTMxMzhDNDJGRjAwQkNDRkNB
IC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2Ny
aXB0Q29yZS5mcmFtZXdvcmsgKi87IH07Ci0JCTQxMjNFNTY5MTI3QjMwNDEwMDBGRUVBNyAvKiBX
aW5kb3dFdmVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxMjNFNTY3MTI3QjMwNDEwMDBGRUVBNyAvKiBXaW5kb3dFdmVudENvbnRleHQu
aCAqLzsgfTsKLQkJNDEyM0U1NkExMjdCMzA0MTAwMEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTIz
RTU2ODEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRDb250ZXh0LmNwcCAqLzsgfTsKIAkJ
NDEyN0Q1MzcwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjdENTM2MEY4QUFCMUQwMEU0MjRG
NSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi87IH07CiAJCTQxMzhEMzM1MTI0NDA1NDgwMDMyM0QzMyAv
KiBFdmVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMzhEMzMzMTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuaCAqLzsgfTsK
IAkJNDEzOEQzMzYxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50Q29udGV4dC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM4RDMzNDEyNDQwNTQ4MDAz
MjNEMzMgLyogRXZlbnRDb250ZXh0LmNwcCAqLzsgfTsKQEAgLTc3MDgsOCArNzcwNiw2IEBACiAJ
CTQxMDAyQ0NCMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RnVuY3Rpb25DYWxsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDAyQ0NDMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRG
dW5jdGlvbkNhbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Ny
aXB0RnVuY3Rpb25DYWxsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdF
NzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDEyM0U1NjcxMjdCMzA0MTAwMEZFRUE3IC8qIFdp
bmRvd0V2ZW50Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaW5k
b3dFdmVudENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDEyM0U1Njgx
MjdCMzA0MTAwMEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaW5kb3dFdmVudENvbnRleHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3Rh
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0U3RhdGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM4RDMzMzEyNDQwNTQ4MDAzMjNE
MzMgLyogRXZlbnRDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2
ZW50Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM4RDMzNDEyNDQw
NTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEV2ZW50Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMTA3MCw4ICsyMTA2Niw2IEBACiAJCQkJODUwMzFCM0EwQTQ0RUZDNzAwRjk5MkUwIC8q
IFdoZWVsRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjNCMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVl
bEV2ZW50LmggKi8sCiAJCQkJOTNFRUMxRjcwOUMyODc3NzAwQzUxNUQxIC8qIFdoZWVsRXZlbnQu
aWRsICovLAotCQkJCTQxMjNFNTY4MTI3QjMwNDEwMDBGRUVBNyAvKiBXaW5kb3dFdmVudENvbnRl
eHQuY3BwICovLAotCQkJCTQxMjNFNTY3MTI3QjMwNDEwMDBGRUVBNyAvKiBXaW5kb3dFdmVudENv
bnRleHQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZG9tOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTI0NTIxLDcgKzI0NTE1LDYgQEAKIAkJCQlDRDlERTE3NTE3QUFDNzRDMDBFQTM4
NkQgLyogSlNNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxMURDQjExNjRDMzlB
ODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOUIwMkVGMEVB
MkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTIz
RTU2OTEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRDb250ZXh0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzgyNDNFOTBEMENGRDc1MDA0NjBDOEYgLyogV2luZG93RmVhdHVyZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdFOTlBRjUzMEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0Fs
bG93ZWRJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRTFCRjAwMTE1RkY2RkIwMDZG
NTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDY4NCw4
ICsyNDY3Nyw2IEBACiAJCQkJMzcxN0Q3RTcxN0VDQzU3MzAwM0MyNzZEIC8qIENvcHkgU2NyaXB0
cyAqLywKIAkJCQk5M0YxOTlGRDA4MjQ1RTU5MDAxRTlBQkMgLyogUmVzb3VyY2VzICovLAogCQkJ
CUNEMERCRjAwMTQyMjc2NTcwMDI4MDI2MyAvKiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLywKLQkJ
CQkxQzgxQkEzMzBFOTczNTdDMDAyNjZFMDcgLyogQ29weSBJbnNwZWN0b3IgUmVzb3VyY2VzICov
LAotCQkJCTFDNUY5RDc2MEUwOUExQjQwMEU5MUQwQSAvKiBTdHJlYW1saW5lIEluc3BlY3RvciBT
b3VyY2UgKi8sCiAJCQkJOTNGMTlBMEMwODI0NUU1OTAwMUU5QUJDIC8qIFNvdXJjZXMgKi8sCiAJ
CQkJOTNGMTlCMTIwODI0NUU1OTAwMUU5QUJDIC8qIEZyYW1ld29ya3MgKi8sCiAJCQkJNUQwRDU0
MEQwRTk4NjJGNjAwMjlFMjIzIC8qIENoZWNrIEZvciBXZWFrIFZUYWJsZXMgYW5kIEV4dGVybmFs
cyAqLywKQEAgLTI3NTcwLDcgKzI3NTYxLDYgQEAKIAkJCQk5MzgwRjQ3ODA5QTExQUNDMDAxRkRC
MzQgLyogV2lkZ2V0TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczQkUzNTAxN0QxODFBNjAw
MkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5MzlCMDJFRTBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk0MTIzRTU2QTEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRDb250ZXh0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDODI0M0U4MEQwQ0ZENzUwMDQ2MEM4RiAvKiBXaW5k
b3dGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTk5QUY1MTBCMTM4NDY0NjhGQjAx
QTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAgaW4gU291cmNl
cyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAkocmV2aXNpb24gMTU3Mjgy
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTUxLDcgKzE1MSw2IEBACiAjaW5jbHVkZSAiV2ViS2l0TmFtZWRGbG93LmNwcCIKICNpbmNs
dWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuY3Bw
IgotI2luY2x1ZGUgIldpbmRvd0V2ZW50Q29udGV4dC5jcHAiCiAjaW5jbHVkZSAiWE1MRG9jdW1l
bnRQYXJzZXIuY3BwIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuY3BwIgogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTU3Mjgy
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUsNyArNSw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxMiwgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zOSw3ICsz
OSw2IEBACiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKICNpbmNsdWRlICJUb3VjaEV2ZW50LmgiCi0jaW5jbHVkZSAiV2luZG93RXZlbnRDb250
ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTUw
LDYgKzQ5LDQwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgV2luZG93RXZlbnRD
b250ZXh0IHsKK3B1YmxpYzoKKyAgICBXaW5kb3dFdmVudENvbnRleHQoUGFzc1JlZlB0cjxOb2Rl
PiwgY29uc3QgRXZlbnRDb250ZXh0Kik7CisKKyAgICBET01XaW5kb3cqIHdpbmRvdygpIGNvbnN0
IHsgcmV0dXJuIG1fd2luZG93LmdldCgpOyB9CisgICAgRXZlbnRUYXJnZXQqIHRhcmdldCgpIGNv
bnN0IHsgcmV0dXJuIG1fdGFyZ2V0LmdldCgpOyB9CisgICAgYm9vbCBoYW5kbGVMb2NhbEV2ZW50
cyhFdmVudCYpOworCitwcml2YXRlOgorICAgIFJlZlB0cjxET01XaW5kb3c+IG1fd2luZG93Owor
ICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV90YXJnZXQ7Cit9OworCitXaW5kb3dFdmVudENvbnRl
eHQ6OldpbmRvd0V2ZW50Q29udGV4dChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIGNvbnN0IEV2ZW50
Q29udGV4dCogdG9wRXZlbnRDb250ZXh0KQoreworICAgIE5vZGUqIHRvcExldmVsQ29udGFpbmVy
ID0gdG9wRXZlbnRDb250ZXh0ID8gdG9wRXZlbnRDb250ZXh0LT5ub2RlKCkgOiBub2RlLmdldCgp
OworICAgIGlmICghdG9wTGV2ZWxDb250YWluZXItPmlzRG9jdW1lbnROb2RlKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fd2luZG93ID0gdG9Eb2N1bWVudCh0b3BMZXZlbENvbnRhaW5lcikt
PmRvbVdpbmRvdygpOworICAgIG1fdGFyZ2V0ID0gdG9wRXZlbnRDb250ZXh0ID8gdG9wRXZlbnRD
b250ZXh0LT50YXJnZXQoKSA6IG5vZGUuZ2V0KCk7Cit9CisKK2Jvb2wgV2luZG93RXZlbnRDb250
ZXh0OjpoYW5kbGVMb2NhbEV2ZW50cyhFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKCFtX3dpbmRv
dykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZXZlbnQuc2V0VGFyZ2V0KG1fdGFyZ2V0
LmdldCgpKTsKKyAgICBldmVudC5zZXRDdXJyZW50VGFyZ2V0KG1fd2luZG93LmdldCgpKTsKKyAg
ICBtX3dpbmRvdy0+ZmlyZUV2ZW50TGlzdGVuZXJzKCZldmVudCk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIGlubGluZSBFdmVudFRhcmdldCYgZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVs
ZXMoTm9kZSYgcmVmZXJlbmNlTm9kZSkKIHsKICAgICBpZiAocmVmZXJlbmNlTm9kZS5pc1BzZXVk
b0VsZW1lbnQoKSkgewpAQCAtMTMyLDcgKzE2NSwxMCBAQCBzdGF0aWMgdm9pZCBkaXNwYXRjaEV2
ZW50SW5ET00oRXZlbnQmIGV2CiAgICAgLy8gVHJpZ2dlciBjYXB0dXJpbmcgZXZlbnQgaGFuZGxl
cnMsIHN0YXJ0aW5nIGF0IHRoZSB0b3AgYW5kIHdvcmtpbmcgb3VyIHdheSBkb3duLgogICAgIGV2
ZW50LnNldEV2ZW50UGhhc2UoRXZlbnQ6OkNBUFRVUklOR19QSEFTRSk7CiAKLSAgICBpZiAod2lu
ZG93RXZlbnRDb250ZXh0LmhhbmRsZUxvY2FsRXZlbnRzKGV2ZW50KSAmJiBldmVudC5wcm9wYWdh
dGlvblN0b3BwZWQoKSkKKyAgICAvLyBXZSBkb24ndCBkaXNwYXRjaCBsb2FkIGV2ZW50cyB0byB0
aGUgd2luZG93LiBUaGlzIHF1aXJrIHdhcyBvcmlnaW5hbGx5CisgICAgLy8gYWRkZWQgYmVjYXVz
ZSBNb3ppbGxhIGRvZXNuJ3QgcHJvcGFnYXRlIGxvYWQgZXZlbnRzIHRvIHRoZSB3aW5kb3cgb2Jq
ZWN0LgorICAgIGJvb2wgc2hvdWxkRmlyZUV2ZW50QXRXaW5kb3cgPSBldmVudC50eXBlKCkgIT0g
ZXZlbnROYW1lcygpLmxvYWRFdmVudDsKKyAgICBpZiAoc2hvdWxkRmlyZUV2ZW50QXRXaW5kb3cg
JiYgd2luZG93RXZlbnRDb250ZXh0LmhhbmRsZUxvY2FsRXZlbnRzKGV2ZW50KSAmJiBldmVudC5w
cm9wYWdhdGlvblN0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChzaXplX3Qg
aSA9IHBhdGguc2l6ZSgpIC0gMTsgaSA+IDA7IC0taSkgewpAQCAtMTY1LDcgKzIwMSw4IEBAIHN0
YXRpYyB2b2lkIGRpc3BhdGNoRXZlbnRJbkRPTShFdmVudCYgZXYKICAgICB9CiAgICAgaWYgKGV2
ZW50LmJ1YmJsZXMoKSAmJiAhZXZlbnQuY2FuY2VsQnViYmxlKCkpIHsKICAgICAgICAgZXZlbnQu
c2V0RXZlbnRQaGFzZShFdmVudDo6QlVCQkxJTkdfUEhBU0UpOwotICAgICAgICB3aW5kb3dFdmVu
dENvbnRleHQuaGFuZGxlTG9jYWxFdmVudHMoZXZlbnQpOworICAgICAgICBpZiAoc2hvdWxkRmly
ZUV2ZW50QXRXaW5kb3cpCisgICAgICAgICAgICB3aW5kb3dFdmVudENvbnRleHQuaGFuZGxlTG9j
YWxFdmVudHMoZXZlbnQpOwogICAgIH0KIH0KIApAQCAtMTkzLDggKzIzMCwxMCBAQCBib29sIEV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudChOb2RlCiAgICAgZXZlbnQtPnNldFRhcmdldCgm
ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm5vZGUpKTsKICAgICBBU1NFUlQoIU5v
RXZlbnREaXNwYXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwogICAg
IEFTU0VSVChldmVudC0+dGFyZ2V0KCkpOwotICAgIFdpbmRvd0V2ZW50Q29udGV4dCB3aW5kb3dF
dmVudENvbnRleHQoZXZlbnQuZ2V0KCksIG5vZGUuZ2V0KCksIGV2ZW50UGF0aC5sYXN0Q29udGV4
dElmRXhpc3RzKCkpOwotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUg
PSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50KCZub2RlLT5kb2N1
bWVudCgpLCAqZXZlbnQsIHdpbmRvd0V2ZW50Q29udGV4dC53aW5kb3coKSwgbm9kZS5nZXQoKSwg
ZXZlbnRQYXRoKTsKKyAgICBXaW5kb3dFdmVudENvbnRleHQgd2luZG93RXZlbnRDb250ZXh0KG5v
ZGUuZ2V0KCksIGV2ZW50UGF0aC5sYXN0Q29udGV4dElmRXhpc3RzKCkpOworICAgIGJvb2wgaGFz
RXZlbnRMaXN0bmVycyA9ICh3aW5kb3dFdmVudENvbnRleHQud2luZG93KCkgJiYgd2luZG93RXZl
bnRDb250ZXh0LndpbmRvdygpLT5oYXNFdmVudExpc3RlbmVycyhldmVudC0+dHlwZSgpKSkKKyAg
ICAgICAgfHwgbm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnQtPnR5cGUoKSkgfHwgZXZlbnRQ
YXRoLmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50LT50eXBlKCkpOworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxE
aXNwYXRjaEV2ZW50KCZub2RlLT5kb2N1bWVudCgpLCAqZXZlbnQsIGhhc0V2ZW50TGlzdG5lcnMp
OwogCiAgICAgSW5wdXRFbGVtZW50Q2xpY2tTdGF0ZSBjbGlja0hhbmRsaW5nU3RhdGU7CiAgICAg
aWYgKGlzSFRNTElucHV0RWxlbWVudChub2RlLmdldCgpKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudERpc3BhdGNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnREaXNwYXRjaGVyLmgJKHJldmlzaW9uIDE1NzI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudERpc3BhdGNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAogI2lm
bmRlZiBFdmVudERpc3BhdGNoZXJfaAogI2RlZmluZSBFdmVudERpc3BhdGNoZXJfaAogCi0jaW5j
bHVkZSAiRXZlbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmgi
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAt
MzUsNyArMzQsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBFdmVudDsKK2NsYXNzIEV2ZW50Q29udGV4dDsKIGNsYXNzIEV2ZW50VGFyZ2V0OwogY2xh
c3MgRnJhbWVWaWV3OwogY2xhc3MgTm9kZTsKQEAgLTQzLDcgKzQ0LDYgQEAgY2xhc3MgUGxhdGZv
cm1LZXlib2FyZEV2ZW50OwogY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50OwogY2xhc3MgU2hhZG93
Um9vdDsKIGNsYXNzIFRyZWVTY29wZTsKLWNsYXNzIFdpbmRvd0V2ZW50Q29udGV4dDsKIHN0cnVj
dCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlOwogCiBlbnVtIEV2ZW50RGlzcGF0Y2hDb250aW51YXRp
b24gewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTU3MjgxKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw2IEBACiAjaW5j
bHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudFJhcmVEYXRhLmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudENvbnRleHQuaCIKICNpbmNsdWRlICJF
dmVudERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUg
IkV2ZW50SGFuZGxlci5oIgpAQCAtMTA1LDcgKzEwNCw2IEBACiAjaW5jbHVkZSAiVUlFdmVudC5o
IgogI2luY2x1ZGUgIlVJRXZlbnRXaXRoS2V5U3RhdGUuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50
LmgiCi0jaW5jbHVkZSAiV2luZG93RXZlbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMu
aCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDE1NzI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAgY2xhc3MgRE9NU2V0dGFibGVU
b2tlbkxpc3Q7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsK
LWNsYXNzIEV2ZW50Q29udGV4dDsKIGNsYXNzIEV2ZW50TGlzdGVuZXI7CiBjbGFzcyBGbG9hdFBv
aW50OwogY2xhc3MgRnJhbWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vV2luZG93RXZlbnRD
b250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vV2luZG93RXZlbnRD
b250ZXh0LmNwcAkocmV2aXNpb24gMTU3MjgxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1dpbmRv
d0V2ZW50Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldpbmRvd0V2ZW50Q29udGV4
dC5oIgotCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50Q29udGV4dC5oIgotI2luY2x1ZGUgIk5v
ZGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1XaW5kb3dFdmVudENvbnRleHQ6OldpbmRv
d0V2ZW50Q29udGV4dChFdmVudCogZXZlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgY29uc3Qg
RXZlbnRDb250ZXh0KiB0b3BFdmVudENvbnRleHQpCi17Ci0gICAgLy8gV2UgZG9uJ3QgZGlzcGF0
Y2ggbG9hZCBldmVudHMgdG8gdGhlIHdpbmRvdy4gVGhpcyBxdWlyayB3YXMgb3JpZ2luYWxseQot
ICAgIC8vIGFkZGVkIGJlY2F1c2UgTW96aWxsYSBkb2Vzbid0IHByb3BhZ2F0ZSBsb2FkIGV2ZW50
cyB0byB0aGUgd2luZG93IG9iamVjdC4KLSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkubG9hZEV2ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBOb2RlKiB0b3BMZXZlbENv
bnRhaW5lciA9IHRvcEV2ZW50Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+bm9kZSgpIDogbm9k
ZS5nZXQoKTsKLSAgICBpZiAoIXRvcExldmVsQ29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX3dpbmRvdyA9IHRvRG9jdW1lbnQodG9wTGV2ZWxDb250
YWluZXIpLT5kb21XaW5kb3coKTsKLSAgICBtX3RhcmdldCA9IHRvcEV2ZW50Q29udGV4dCA/IHRv
cEV2ZW50Q29udGV4dC0+dGFyZ2V0KCkgOiBub2RlLmdldCgpOwotfQotCi1ib29sIFdpbmRvd0V2
ZW50Q29udGV4dDo6aGFuZGxlTG9jYWxFdmVudHMoRXZlbnQmIGV2ZW50KQotewotICAgIGlmICgh
bV93aW5kb3cpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGV2ZW50LnNldFRhcmdldCh0
YXJnZXQoKSk7Ci0gICAgZXZlbnQuc2V0Q3VycmVudFRhcmdldCh3aW5kb3coKSk7Ci0gICAgbV93
aW5kb3ctPmZpcmVFdmVudExpc3RlbmVycygmZXZlbnQpOwotICAgIHJldHVybiB0cnVlOwotfQot
Ci19CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vV2luZG93RXZlbnRDb250ZXh0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5oCShyZXZpc2lv
biAxNTcyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vV2luZG93RXZlbnRDb250ZXh0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI2lmbmRlZiBXaW5k
b3dFdmVudENvbnRleHRfaAotI2RlZmluZSBXaW5kb3dFdmVudENvbnRleHRfaAotCi0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERPTVdpbmRv
dzsKLWNsYXNzIEV2ZW50VGFyZ2V0OwotY2xhc3MgRXZlbnRDb250ZXh0OwotY2xhc3MgRXZlbnQ7
Ci1jbGFzcyBOb2RlOwotCi1jbGFzcyBXaW5kb3dFdmVudENvbnRleHQgewotcHVibGljOgotICAg
IFdpbmRvd0V2ZW50Q29udGV4dChFdmVudCosIFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IEV2ZW50
Q29udGV4dCopOwotCi0gICAgRE9NV2luZG93KiB3aW5kb3coKSBjb25zdDsKLSAgICBFdmVudFRh
cmdldCogdGFyZ2V0KCkgY29uc3Q7Ci0gICAgYm9vbCBoYW5kbGVMb2NhbEV2ZW50cyhFdmVudCYp
OwotCi1wcml2YXRlOgotICAgIFJlZlB0cjxET01XaW5kb3c+IG1fd2luZG93OwotICAgIFJlZlB0
cjxFdmVudFRhcmdldD4gbV90YXJnZXQ7Ci19OwotCi1pbmxpbmUgRE9NV2luZG93KiBXaW5kb3dF
dmVudENvbnRleHQ6OndpbmRvdygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2luZG93LmdldCgp
OwotfQotCi1pbmxpbmUgRXZlbnRUYXJnZXQqIFdpbmRvd0V2ZW50Q29udGV4dDo6dGFyZ2V0KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV90YXJnZXQuZ2V0KCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8v
IFdpbmRvd0V2ZW50Q29udGV4dF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHAJKHJldmlzaW9uIDE1NzI4MSkKKysrIFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0
LDcgKzU0LDYgQEAKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJFdmVudENvbnRleHQuaCIKICNpbmNs
dWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IkV2ZW50VGFyZ2V0LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAkocmV2aXNpb24gMTU3MjgxKQorKysgU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ0LDcgKzQ0LDYgQEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRh
dGEuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCi0j
aW5jbHVkZSAiRXZlbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQuaCIKQEAgLTk5LDE0ICs5OCw2IEBAIHN0YXRpYyBIYXNoU2V0PEluc3RydW1l
bnRpbmdBZ2VudHMqPiogaW4KIAogaW50IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c19mcm9u
dGVuZENvdW50ZXIgPSAwOwogCi1zdGF0aWMgYm9vbCBldmVudEhhc0xpc3RlbmVycyhjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB3aW5kb3csIE5vZGUqIG5vZGUsIGNv
bnN0IEV2ZW50UGF0aCYgZXZlbnRQYXRoKQotewotICAgIGlmICh3aW5kb3cgJiYgd2luZG93LT5o
YXNFdmVudExpc3RlbmVycyhldmVudFR5cGUpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
IHJldHVybiBub2RlLT5oYXNFdmVudExpc3RlbmVycyhldmVudFR5cGUpIHx8IGV2ZW50UGF0aC5o
YXNFdmVudExpc3RlbmVycyhldmVudFR5cGUpOwotfQotCiBzdGF0aWMgRnJhbWUqIGZyYW1lRm9y
U2NyaXB0RXhlY3V0aW9uQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQog
ewogICAgIEZyYW1lKiBmcmFtZSA9IDA7CkBAIC0zOTAsMTEgKzM4MSwxMSBAQCB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0CiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRp
ZERpc3BhdGNoWEhSUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KCk7CiB9CiAKLUluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2
ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBF
dmVudCYgZXZlbnQsIERPTVdpbmRvdyogd2luZG93LCBOb2RlKiBub2RlLCBjb25zdCBFdmVudFBh
dGgmIGV2ZW50UGF0aCwgRG9jdW1lbnQqIGRvY3VtZW50KQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnRJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IEV2ZW50JiBl
dmVudCwgYm9vbCBoYXNFdmVudExpc3RlbmVycywgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAg
IGludCB0aW1lbGluZUFnZW50SWQgPSAwOwogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRp
bWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50
KCk7Ci0gICAgaWYgKHRpbWVsaW5lQWdlbnQgJiYgZXZlbnRIYXNMaXN0ZW5lcnMoZXZlbnQudHlw
ZSgpLCB3aW5kb3csIG5vZGUsIGV2ZW50UGF0aCkpIHsKKyAgICBpZiAodGltZWxpbmVBZ2VudCAm
JiBoYXNFdmVudExpc3RlbmVycykgewogICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRGlzcGF0
Y2hFdmVudChldmVudCwgZG9jdW1lbnQtPmZyYW1lKCkpOwogICAgICAgICB0aW1lbGluZUFnZW50
SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgJKHJldmlzaW9uIDE1
NzI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIkNvbnNvbGVB
UElUeXBlcy5oIgogI2luY2x1ZGUgIkNvbnNvbGVUeXBlcy5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKLSNpbmNsdWRlICJFdmVudENvbnRleHQuaCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgpAQCAtNTYsNyArNTUs
NiBAQCBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBEYXRhYmFzZTsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRWxlbWVudDsKLWNsYXNzIEV2ZW50Q29udGV4dDsKIGNsYXNzIEV2ZW50UGF0
aDsKIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVj
dGlvbjsKQEAgLTE1MCw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkQ2Fs
bEZ1bmN0aW9uKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0
YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoWEhSUmVhZHlT
dGF0ZUNoYW5nZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBYTUxIdHRwUmVxdWVzdCop
OwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoWEhSUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KGNv
bnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwotICAgIHN0YXRpYyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoRXZlbnQoRG9jdW1lbnQqLCBjb25z
dCBFdmVudCYsIERPTVdpbmRvdyosIE5vZGUqLCBjb25zdCBFdmVudFBhdGgmKTsKKyAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50KERvY3Vt
ZW50KiwgY29uc3QgRXZlbnQmLCBib29sIGhhc0V2ZW50TGlzdGVuZXJzKTsKICAgICBzdGF0aWMg
dm9pZCBkaWREaXNwYXRjaEV2ZW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tp
ZSYpOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbEhhbmRs
ZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOwogICAgIHN0YXRpYyB2b2lk
IGRpZEhhbmRsZUV2ZW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwpA
QCAtMzU1LDcgKzM1Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FsbEZ1bmN0
aW9uSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaFhIUlJlYWR5U3Rh
dGVDaGFuZ2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0Kiwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoWEhS
UmVhZHlTdGF0ZUNoYW5nZUV2ZW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxE
aXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgRXZlbnQmLCBET01X
aW5kb3cqLCBOb2RlKiwgY29uc3QgRXZlbnRQYXRoJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgRXZlbnQmLCBib29sIGhhc0V2ZW50TGlzdGVuZXJzLCBE
b2N1bWVudCopOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2ls
bEhhbmRsZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRXZlbnQqKTsKICAgICBzdGF0
aWMgdm9pZCBkaWRIYW5kbGVFdmVudEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llJik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hFdmVudEltcGwoY29uc3QgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CkBAIC04ODQsMTIgKzg4MiwxMiBAQCBpbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpCiAjZW5kaWYKIH0KIAotaW5saW5l
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxEaXNwYXRjaEV2ZW50KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgRXZlbnQmIGV2ZW50
LCBET01XaW5kb3cqIHdpbmRvdywgTm9kZSogbm9kZSwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBh
dGgpCitpbmxpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBF
dmVudCYgZXZlbnQsIGJvb2wgaGFzRXZlbnRMaXN0ZW5lcnMpCiB7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAg
ICAgICAgcmV0dXJuIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBl
dmVudCwgd2luZG93LCBub2RlLCBldmVudFBhdGgsIGRvY3VtZW50KTsKKyAgICAgICAgcmV0dXJu
IHdpbGxEaXNwYXRjaEV2ZW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBldmVudCwgaGFzRXZl
bnRMaXN0ZW5lcnMsIGRvY3VtZW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50
KTsKICAgICBVTlVTRURfUEFSQU0oZXZlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213958</attachid>
            <date>2013-10-10 19:47:18 -0700</date>
            <delta_ts>2013-10-10 20:41:58 -0700</delta_ts>
            <desc>Fixed EFL builds</desc>
            <filename>bug-122631-20131010194718.patch</filename>
            <type>text/plain</type>
            <size>28971</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzI4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDEzLTEwLTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEV2ZW50Q29udGV4dCBzaG91bGQg
YmUgdXNlZCBvbmx5IGluIEV2ZW50RGlzcGF0Y2hlci5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjYzMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lcmdlZCBXaW5kb3dFdmVudENvbnRleHQgaW50
byBFdmVudERpc3BhdGNoZXIuIE1vdmVkIHRoZSBjb2RlIHRvIGF2b2lkIGRpc3BhdGNoaW5nIGxv
YWQgZXZlbnQgb24KKyAgICAgICAgd2luZG93IGludG8gZGlzcGF0Y2hFdmVudEluRE9NIHNvIHRo
YXQgV2luZG93RXZlbnRDb250ZXh0J3MgY29uc3RydWN0b3IgZG9lc24ndCBuZWVkIEV2ZW50Lgor
CisgICAgICAgIEFsc28gcmVwbGFjZWQgRE9NV2luZG93LCBOb2RlLCBhbmQgRXZlbnRQYXRoIGFy
Z3VtZW50cyB0byBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50Cisg
ICAgICAgIGJ5IGEgc2luZ2xlIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHdpbmRvdywgdGhl
IG9yaWdpbiwgb3IgdGhlIGV2ZW50IHBhdGggaGFzIGFuIGV2ZW50IGxpc3RlbmVyLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoK
KyAgICAgICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldp
bmRvd0V2ZW50Q29udGV4dDo6d2luZG93KTogTW92ZWQgZnJvbSBXaW5kb3dFdmVudENvbnRleHQu
CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dFdmVudENvbnRleHQ6OnRhcmdldCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2luZG93RXZlbnRDb250ZXh0OjpXaW5kb3dFdmVudENvbnRleHQp
OiBEaXR0bzsgcmVtb3ZlZCB0aGUgY29kZSB0byBhdm9pZCBkaXNwYXRjaGluZyBsb2FkCisgICAg
ICAgIGV2ZW50IG9uIHdpbmRvdyBzaW5jZSB0aGF0J3MgY2hlY2tlZCBpbiBkaXNwYXRjaEV2ZW50
SW5ET00gbm93LgorICAgICAgICAoV2ViQ29yZTo6V2luZG93RXZlbnRDb250ZXh0OjpoYW5kbGVM
b2NhbEV2ZW50cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGF0Y2hFdmVudEluRE9N
KTogQXZvaWQgY2FsbGluZyBoYW5kbGVMb2NhbEV2ZW50IG9uIGEgbG9hZCBldmVudCB3aXRoIFdp
bmRvd0V2ZW50Q29udGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hFdmVudCk6IFBhc3MgYSBib29sZWFuIHRvIGluZGljYXRlIHdoZXRoZXIgd2luZG93LCB0
aGUgb3JpZ2luLCBvcgorICAgICAgICB0aGUgZXZlbnQgcGF0aCBjb250YWlucyBhbnkgZXZlbnQg
bGlzdGVuZXIgdG8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudCB0
byBoaWRlCisgICAgICAgIEV2ZW50UGF0aCBmcm9tIHRoZSBpbnNwZWN0b3IgY29kZS4KKyAgICAg
ICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICogZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudCk6CisKIDIwMTMt
MTAtMTAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEtpbGwg
V2ViQ29yZTo6QmluZGluZ1N0YXRlLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDE1NzI4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xMjE2LDcgKzEyMTYsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL1dlYktp
dE5hbWVkRmxvdy5jcHAKICAgICBkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcAogICAgIGRv
bS9XaGVlbEV2ZW50LmNwcAotICAgIGRvbS9XaW5kb3dFdmVudENvbnRleHQuY3BwCiAKICAgICBk
b20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKIApJbmRleDogU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNTcyODIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDE4LDggKzMwMTgsNiBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vV2luZG93
RXZlbnRDb250ZXh0LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50Q29udGV4
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIu
aCBcCiAJU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgXApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShy
ZXZpc2lvbiAxNTcyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzM1OSwyMCArMTMzNTksNiBAQAogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0Ns
Q29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxXaW5kb3dFdmVudENvbnRl
eHQuY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdvcmtlcnNc
QWJzdHJhY3RXb3JrZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd29ya2Vy
c1xEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlx3b3JrZXJzXERlZGljYXRlZFdvcmtlclRocmVhZC5jcHAiIC8+CkBAIC0xOTgyOCw3
ICsxOTgxNCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cV2ViS2l0TmFtZWRG
bG93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkb21cV2hlZWxFdmVudC5o
IiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXFdpbmRvd0V2ZW50Q29udGV4dC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd29ya2Vyc1xBYnN0cmFjdFdvcmtlci5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd29ya2Vyc1xEZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd29ya2Vyc1xEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE1NzI4
MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycwkod29ya2luZyBjb3B5KQpAQCAtMzQwNSw5ICszNDA1LDYgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGRvbVxXaGVlbEV2ZW50LmNwcCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXFdp
bmRvd0V2ZW50Q29udGV4dC5jcHAiPgotICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KLSAgICA8
L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdvcmtlcnNcQWJzdHJhY3RX
b3JrZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+d29ya2VyczwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtMTAyOTAsOSArMTAyODcsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZG9tXFdoZWVsRXZlbnQuaCI+CiAgICAgICA8RmlsdGVyPmRvbTwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXFdpbmRvd0V2ZW50Q29udGV4
dC5oIj4KLSAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3b3JrZXJzXEFic3RyYWN0V29ya2VyLmgiPgogICAgICAg
PEZpbHRlcj53b3JrZXJzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAxNTcyODIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEyMDUsOCArMTIwNSw2IEBACiAJCTQxMEI3RTcyMTA0
NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYg
LyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovOyB9OwogCQk0MTIzMDgxQjEzOEM0Mjk3MDBC
Q0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxOUIxQTA4MjQ1RTVBMDAxRTlBQkMgLyogV2ViQ29yZS5m
cmFtZXdvcmsgKi87IH07CiAJCTQxMjMwOTEzMTM4QzQyRkYwMEJDQ0ZDQSAvKiBKYXZhU2NyaXB0
Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3
b3JrICovOyB9OwotCQk0MTIzRTU2OTEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRDb250
ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTIz
RTU2NzEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRDb250ZXh0LmggKi87IH07Ci0JCTQx
MjNFNTZBMTI3QjMwNDEwMDBGRUVBNyAvKiBXaW5kb3dFdmVudENvbnRleHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyM0U1NjgxMjdCMzA0MTAw
MEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5jcHAgKi87IH07CiAJCTQxMjdENTM3MEY4QUFC
MUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3Rh
dGUuY3BwICovOyB9OwogCQk0MTM4RDMzNTEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM4RDMz
MzEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0LmggKi87IH07CiAJCTQxMzhEMzM2MTI0
NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzOEQzMzQxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50
Q29udGV4dC5jcHAgKi87IH07CkBAIC03NzA4LDggKzc3MDYsNiBAQAogCQk0MTAwMkNDQjBGNjZF
REVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNjcmlwdEZ1bmN0aW9uQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTAwMkNDQzBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEZ1bmN0aW9uQ2Fs
bC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4
MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQxMjNFNTY3MTI3QjMwNDEwMDBGRUVBNyAvKiBXaW5kb3dFdmVudENvbnRl
eHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZG93RXZlbnRDb250ZXh0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMjNFNTY4MTI3QjMwNDEwMDBGRUVB
NyAvKiBXaW5kb3dFdmVudENvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2luZG93RXZlbnRDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFN0YXRlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzOEQzMzMxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50Q29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudENvbnRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzOEQzMzQxMjQ0MDU0ODAwMzIzRDMzIC8q
IEV2ZW50Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBF
dmVudENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEwNzAsOCAr
MjEwNjYsNiBAQAogCQkJCTg1MDMxQjNBMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmNw
cCAqLywKIAkJCQk4NTAzMUIzQjBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5oICovLAog
CQkJCTkzRUVDMUY3MDlDMjg3NzcwMEM1MTVEMSAvKiBXaGVlbEV2ZW50LmlkbCAqLywKLQkJCQk0
MTIzRTU2ODEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRDb250ZXh0LmNwcCAqLywKLQkJ
CQk0MTIzRTU2NzEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRDb250ZXh0LmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGRvbTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNDUy
MSw3ICsyNDUxNSw2IEBACiAJCQkJQ0Q5REUxNzUxN0FBQzc0QzAwRUEzODZEIC8qIEpTTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTFEQ0IxMTY0QzM5QTgwMEQ0OUJDMSAvKiBX
aWR0aENhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAg
LyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEyM0U1NjkxMjdCMzA0MTAw
MEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4MjQz
RTkwRDBDRkQ3NTAwNDYwQzhGIC8qIFdpbmRvd0ZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3RTk5QUY1MzBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUUxQkYwMDExNUZGNkZCMDA2RjUyQ0EgLyogV2luZG93
c0tleWJvYXJkQ29kZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ2ODQsOCArMjQ2NzcsNiBAQAog
CQkJCTM3MTdEN0U3MTdFQ0M1NzMwMDNDMjc2RCAvKiBDb3B5IFNjcmlwdHMgKi8sCiAJCQkJOTNG
MTk5RkQwODI0NUU1OTAwMUU5QUJDIC8qIFJlc291cmNlcyAqLywKIAkJCQlDRDBEQkYwMDE0MjI3
NjU3MDAyODAyNjMgLyogQ29weSBBdWRpbyBSZXNvdXJjZXMgKi8sCi0JCQkJMUM4MUJBMzMwRTk3
MzU3QzAwMjY2RTA3IC8qIENvcHkgSW5zcGVjdG9yIFJlc291cmNlcyAqLywKLQkJCQkxQzVGOUQ3
NjBFMDlBMUI0MDBFOTFEMEEgLyogU3RyZWFtbGluZSBJbnNwZWN0b3IgU291cmNlICovLAogCQkJ
CTkzRjE5QTBDMDgyNDVFNTkwMDFFOUFCQyAvKiBTb3VyY2VzICovLAogCQkJCTkzRjE5QjEyMDgy
NDVFNTkwMDFFOUFCQyAvKiBGcmFtZXdvcmtzICovLAogCQkJCTVEMEQ1NDBEMEU5ODYyRjYwMDI5
RTIyMyAvKiBDaGVjayBGb3IgV2VhayBWVGFibGVzIGFuZCBFeHRlcm5hbHMgKi8sCkBAIC0yNzU3
MCw3ICsyNzU2MSw2IEBACiAJCQkJOTM4MEY0NzgwOUExMUFDQzAwMUZEQjM0IC8qIFdpZGdldE1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5QjAyRUUwRUEy
REJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEy
M0U1NkExMjdCMzA0MTAwMEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzgyNDNFODBEMENGRDc1MDA0NjBDOEYgLyogV2luZG93RmVhdHVyZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0U5OUFGNTEwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0Zv
Y3VzQWxsb3dlZEluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBE
REY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAJKHJldmlzaW9uIDE1NzI4MikKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw3ICsxNTEs
NiBAQAogI2luY2x1ZGUgIldlYktpdE5hbWVkRmxvdy5jcHAiCiAjaW5jbHVkZSAiV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmNwcCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmNwcCIKLSNpbmNsdWRlICJX
aW5kb3dFdmVudENvbnRleHQuY3BwIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmNwcCIK
ICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlclNjb3BlLmNwcCIKIApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHJldmlzaW9uIDE1NzI4MikKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUs
NyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwLCAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTIsIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzksNyArMzksNiBAQAogI2luY2x1
ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVk
ZSAiVG91Y2hFdmVudC5oIgotI2luY2x1ZGUgIldpbmRvd0V2ZW50Q29udGV4dC5oIgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIEVOQUJMRShTVkcpCkBAIC01MCw2ICs0OSw0MCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFdpbmRvd0V2ZW50Q29udGV4dCB7CitwdWJs
aWM6CisgICAgV2luZG93RXZlbnRDb250ZXh0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IEV2ZW50
Q29udGV4dCopOworCisgICAgRE9NV2luZG93KiB3aW5kb3coKSBjb25zdCB7IHJldHVybiBtX3dp
bmRvdy5nZXQoKTsgfQorICAgIEV2ZW50VGFyZ2V0KiB0YXJnZXQoKSBjb25zdCB7IHJldHVybiBt
X3RhcmdldC5nZXQoKTsgfQorICAgIGJvb2wgaGFuZGxlTG9jYWxFdmVudHMoRXZlbnQmKTsKKwor
cHJpdmF0ZToKKyAgICBSZWZQdHI8RE9NV2luZG93PiBtX3dpbmRvdzsKKyAgICBSZWZQdHI8RXZl
bnRUYXJnZXQ+IG1fdGFyZ2V0OworfTsKKworV2luZG93RXZlbnRDb250ZXh0OjpXaW5kb3dFdmVu
dENvbnRleHQoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBjb25zdCBFdmVudENvbnRleHQqIHRvcEV2
ZW50Q29udGV4dCkKK3sKKyAgICBOb2RlKiB0b3BMZXZlbENvbnRhaW5lciA9IHRvcEV2ZW50Q29u
dGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+bm9kZSgpIDogbm9kZS5nZXQoKTsKKyAgICBpZiAoIXRv
cExldmVsQ29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3dpbmRvdyA9IHRvRG9jdW1lbnQodG9wTGV2ZWxDb250YWluZXIpLT5kb21XaW5kb3coKTsK
KyAgICBtX3RhcmdldCA9IHRvcEV2ZW50Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+dGFyZ2V0
KCkgOiBub2RlLmdldCgpOworfQorCitib29sIFdpbmRvd0V2ZW50Q29udGV4dDo6aGFuZGxlTG9j
YWxFdmVudHMoRXZlbnQmIGV2ZW50KQoreworICAgIGlmICghbV93aW5kb3cpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGV2ZW50LnNldFRhcmdldChtX3RhcmdldC5nZXQoKSk7CisgICAg
ZXZlbnQuc2V0Q3VycmVudFRhcmdldChtX3dpbmRvdy5nZXQoKSk7CisgICAgbV93aW5kb3ctPmZp
cmVFdmVudExpc3RlbmVycygmZXZlbnQpOworICAgIHJldHVybiB0cnVlOworfQorCiBpbmxpbmUg
RXZlbnRUYXJnZXQmIGV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKE5vZGUmIHJlZmVy
ZW5jZU5vZGUpCiB7CiAgICAgaWYgKHJlZmVyZW5jZU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpIHsK
QEAgLTEzMiw3ICsxNjUsMTAgQEAgc3RhdGljIHZvaWQgZGlzcGF0Y2hFdmVudEluRE9NKEV2ZW50
JiBldgogICAgIC8vIFRyaWdnZXIgY2FwdHVyaW5nIGV2ZW50IGhhbmRsZXJzLCBzdGFydGluZyBh
dCB0aGUgdG9wIGFuZCB3b3JraW5nIG91ciB3YXkgZG93bi4KICAgICBldmVudC5zZXRFdmVudFBo
YXNlKEV2ZW50OjpDQVBUVVJJTkdfUEhBU0UpOwogCi0gICAgaWYgKHdpbmRvd0V2ZW50Q29udGV4
dC5oYW5kbGVMb2NhbEV2ZW50cyhldmVudCkgJiYgZXZlbnQucHJvcGFnYXRpb25TdG9wcGVkKCkp
CisgICAgLy8gV2UgZG9uJ3QgZGlzcGF0Y2ggbG9hZCBldmVudHMgdG8gdGhlIHdpbmRvdy4gVGhp
cyBxdWlyayB3YXMgb3JpZ2luYWxseQorICAgIC8vIGFkZGVkIGJlY2F1c2UgTW96aWxsYSBkb2Vz
bid0IHByb3BhZ2F0ZSBsb2FkIGV2ZW50cyB0byB0aGUgd2luZG93IG9iamVjdC4KKyAgICBib29s
IHNob3VsZEZpcmVFdmVudEF0V2luZG93ID0gZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5s
b2FkRXZlbnQ7CisgICAgaWYgKHNob3VsZEZpcmVFdmVudEF0V2luZG93ICYmIHdpbmRvd0V2ZW50
Q29udGV4dC5oYW5kbGVMb2NhbEV2ZW50cyhldmVudCkgJiYgZXZlbnQucHJvcGFnYXRpb25TdG9w
cGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoc2l6ZV90IGkgPSBwYXRoLnNpemUo
KSAtIDE7IGkgPiAwOyAtLWkpIHsKQEAgLTE2NSw3ICsyMDEsOCBAQCBzdGF0aWMgdm9pZCBkaXNw
YXRjaEV2ZW50SW5ET00oRXZlbnQmIGV2CiAgICAgfQogICAgIGlmIChldmVudC5idWJibGVzKCkg
JiYgIWV2ZW50LmNhbmNlbEJ1YmJsZSgpKSB7CiAgICAgICAgIGV2ZW50LnNldEV2ZW50UGhhc2Uo
RXZlbnQ6OkJVQkJMSU5HX1BIQVNFKTsKLSAgICAgICAgd2luZG93RXZlbnRDb250ZXh0LmhhbmRs
ZUxvY2FsRXZlbnRzKGV2ZW50KTsKKyAgICAgICAgaWYgKHNob3VsZEZpcmVFdmVudEF0V2luZG93
KQorICAgICAgICAgICAgd2luZG93RXZlbnRDb250ZXh0LmhhbmRsZUxvY2FsRXZlbnRzKGV2ZW50
KTsKICAgICB9CiB9CiAKQEAgLTE5Myw4ICsyMzAsMTAgQEAgYm9vbCBFdmVudERpc3BhdGNoZXI6
OmRpc3BhdGNoRXZlbnQoTm9kZQogICAgIGV2ZW50LT5zZXRUYXJnZXQoJmV2ZW50VGFyZ2V0UmVz
cGVjdGluZ1RhcmdldFJ1bGVzKCpub2RlKSk7CiAgICAgQVNTRVJUKCFOb0V2ZW50RGlzcGF0Y2hB
c3NlcnRpb246OmlzRXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKICAgICBBU1NFUlQoZXZlbnQt
PnRhcmdldCgpKTsKLSAgICBXaW5kb3dFdmVudENvbnRleHQgd2luZG93RXZlbnRDb250ZXh0KGV2
ZW50LmdldCgpLCBub2RlLmdldCgpLCBldmVudFBhdGgubGFzdENvbnRleHRJZkV4aXN0cygpKTsK
LSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudCgmbm9kZS0+ZG9jdW1lbnQoKSwgKmV2ZW50
LCB3aW5kb3dFdmVudENvbnRleHQud2luZG93KCksIG5vZGUuZ2V0KCksIGV2ZW50UGF0aCk7Cisg
ICAgV2luZG93RXZlbnRDb250ZXh0IHdpbmRvd0V2ZW50Q29udGV4dChub2RlLmdldCgpLCBldmVu
dFBhdGgubGFzdENvbnRleHRJZkV4aXN0cygpKTsKKyAgICBib29sIGhhc0V2ZW50TGlzdG5lcnMg
PSAod2luZG93RXZlbnRDb250ZXh0LndpbmRvdygpICYmIHdpbmRvd0V2ZW50Q29udGV4dC53aW5k
b3coKS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnQtPnR5cGUoKSkpCisgICAgICAgIHx8IG5vZGUt
Pmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50LT50eXBlKCkpIHx8IGV2ZW50UGF0aC5oYXNFdmVudExp
c3RlbmVycyhldmVudC0+dHlwZSgpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudCgm
bm9kZS0+ZG9jdW1lbnQoKSwgKmV2ZW50LCBoYXNFdmVudExpc3RuZXJzKTsKIAogICAgIElucHV0
RWxlbWVudENsaWNrU3RhdGUgY2xpY2tIYW5kbGluZ1N0YXRlOwogICAgIGlmIChpc0hUTUxJbnB1
dEVsZW1lbnQobm9kZS5nZXQoKSkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNw
YXRjaGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hl
ci5oCShyZXZpc2lvbiAxNTcyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRj
aGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgRXZlbnREaXNw
YXRjaGVyX2gKICNkZWZpbmUgRXZlbnREaXNwYXRjaGVyX2gKIAotI2luY2x1ZGUgIkV2ZW50Q29u
dGV4dC5oIgogI2luY2x1ZGUgIlNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTM1LDcgKzM0LDkgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBFbGVtZW50OwogY2xhc3MgRXZlbnQ7Citj
bGFzcyBFdmVudENvbnRleHQ7CiBjbGFzcyBFdmVudFRhcmdldDsKIGNsYXNzIEZyYW1lVmlldzsK
IGNsYXNzIE5vZGU7CkBAIC00Myw3ICs0NCw2IEBAIGNsYXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDsKIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiBjbGFzcyBU
cmVlU2NvcGU7Ci1jbGFzcyBXaW5kb3dFdmVudENvbnRleHQ7CiBzdHJ1Y3QgSW5wdXRFbGVtZW50
Q2xpY2tTdGF0ZTsKIAogZW51bSBFdmVudERpc3BhdGNoQ29udGludWF0aW9uIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAJKHJldmlzaW9uIDE1NzI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNiBAQAogI2luY2x1ZGUgIkVsZW1lbnRJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkVsZW1lbnRSYXJlRGF0YS5oIgogI2luY2x1ZGUgIkV2ZW50
LmgiCi0jaW5jbHVkZSAiRXZlbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVy
LmgiCiAjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIu
aCIKQEAgLTEwNSw3ICsxMDQsNiBAQAogI2luY2x1ZGUgIlVJRXZlbnQuaCIKICNpbmNsdWRlICJV
SUV2ZW50V2l0aEtleVN0YXRlLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgotI2luY2x1ZGUg
IldpbmRvd0V2ZW50Q29udGV4dC5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
aHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CShyZXZpc2lvbiAxNTcyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw3ICs1Niw2IEBAIGNsYXNzIERPTVNldHRhYmxlVG9rZW5MaXN0OwogY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRXZlbnQ7Ci1jbGFzcyBFdmVudENv
bnRleHQ7CiBjbGFzcyBFdmVudExpc3RlbmVyOwogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEZy
YW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5jcHAJKHJl
dmlzaW9uIDE1NzI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVudENvbnRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXaW5kb3dFdmVudENvbnRleHQuaCIKLQotI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnQu
aCIKLSNpbmNsdWRlICJFdmVudENvbnRleHQuaCIKLSNpbmNsdWRlICJOb2RlLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotV2luZG93RXZlbnRDb250ZXh0OjpXaW5kb3dFdmVudENvbnRleHQo
RXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIGNvbnN0IEV2ZW50Q29udGV4dCog
dG9wRXZlbnRDb250ZXh0KQotewotICAgIC8vIFdlIGRvbid0IGRpc3BhdGNoIGxvYWQgZXZlbnRz
IHRvIHRoZSB3aW5kb3cuIFRoaXMgcXVpcmsgd2FzIG9yaWdpbmFsbHkKLSAgICAvLyBhZGRlZCBi
ZWNhdXNlIE1vemlsbGEgZG9lc24ndCBwcm9wYWdhdGUgbG9hZCBldmVudHMgdG8gdGhlIHdpbmRv
dyBvYmplY3QuCi0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmxvYWRFdmVu
dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTm9kZSogdG9wTGV2ZWxDb250YWluZXIgPSB0b3BF
dmVudENvbnRleHQgPyB0b3BFdmVudENvbnRleHQtPm5vZGUoKSA6IG5vZGUuZ2V0KCk7Ci0gICAg
aWYgKCF0b3BMZXZlbENvbnRhaW5lci0+aXNEb2N1bWVudE5vZGUoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbV93aW5kb3cgPSB0b0RvY3VtZW50KHRvcExldmVsQ29udGFpbmVyKS0+ZG9tV2lu
ZG93KCk7Ci0gICAgbV90YXJnZXQgPSB0b3BFdmVudENvbnRleHQgPyB0b3BFdmVudENvbnRleHQt
PnRhcmdldCgpIDogbm9kZS5nZXQoKTsKLX0KLQotYm9vbCBXaW5kb3dFdmVudENvbnRleHQ6Omhh
bmRsZUxvY2FsRXZlbnRzKEV2ZW50JiBldmVudCkKLXsKLSAgICBpZiAoIW1fd2luZG93KQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBldmVudC5zZXRUYXJnZXQodGFyZ2V0KCkpOwotICAg
IGV2ZW50LnNldEN1cnJlbnRUYXJnZXQod2luZG93KCkpOwotICAgIG1fd2luZG93LT5maXJlRXZl
bnRMaXN0ZW5lcnMoJmV2ZW50KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVudENvbnRleHQuaAkocmV2aXNpb24gMTU3MjgxKQorKysg
U291cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKgotICovCi0KLSNpZm5kZWYgV2luZG93RXZlbnRDb250ZXh0
X2gKLSNkZWZpbmUgV2luZG93RXZlbnRDb250ZXh0X2gKLQotI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBET01XaW5kb3c7Ci1jbGFzcyBFdmVu
dFRhcmdldDsKLWNsYXNzIEV2ZW50Q29udGV4dDsKLWNsYXNzIEV2ZW50OwotY2xhc3MgTm9kZTsK
LQotY2xhc3MgV2luZG93RXZlbnRDb250ZXh0IHsKLXB1YmxpYzoKLSAgICBXaW5kb3dFdmVudENv
bnRleHQoRXZlbnQqLCBQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBFdmVudENvbnRleHQqKTsKLQot
ICAgIERPTVdpbmRvdyogd2luZG93KCkgY29uc3Q7Ci0gICAgRXZlbnRUYXJnZXQqIHRhcmdldCgp
IGNvbnN0OwotICAgIGJvb2wgaGFuZGxlTG9jYWxFdmVudHMoRXZlbnQmKTsKLQotcHJpdmF0ZToK
LSAgICBSZWZQdHI8RE9NV2luZG93PiBtX3dpbmRvdzsKLSAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+
IG1fdGFyZ2V0OwotfTsKLQotaW5saW5lIERPTVdpbmRvdyogV2luZG93RXZlbnRDb250ZXh0Ojp3
aW5kb3coKSBjb25zdAotewotICAgIHJldHVybiBtX3dpbmRvdy5nZXQoKTsKLX0KLQotaW5saW5l
IEV2ZW50VGFyZ2V0KiBXaW5kb3dFdmVudENvbnRleHQ6OnRhcmdldCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fdGFyZ2V0LmdldCgpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBXaW5kb3dFdmVudENv
bnRleHRfaApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCShyZXZpc2lvbiAxNTcyODEpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw2IEBACiAj
aW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUg
IkV2ZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5o
IgpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAJKHJldmlzaW9uIDE1NzI4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25EYXRhLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50
Q29udGV4dC5oIgogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Lmgi
CkBAIC05OSwxNCArOTgsNiBAQCBzdGF0aWMgSGFzaFNldDxJbnN0cnVtZW50aW5nQWdlbnRzKj4q
IGluCiAKIGludCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNfZnJvbnRlbmRDb3VudGVyID0g
MDsKIAotc3RhdGljIGJvb2wgZXZlbnRIYXNMaXN0ZW5lcnMoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIERPTVdpbmRvdyogd2luZG93LCBOb2RlKiBub2RlLCBjb25zdCBFdmVudFBhdGgm
IGV2ZW50UGF0aCkKLXsKLSAgICBpZiAod2luZG93ICYmIHdpbmRvdy0+aGFzRXZlbnRMaXN0ZW5l
cnMoZXZlbnRUeXBlKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gbm9kZS0+
aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKSB8fCBldmVudFBhdGguaGFzRXZlbnRMaXN0ZW5l
cnMoZXZlbnRUeXBlKTsKLX0KLQogc3RhdGljIEZyYW1lKiBmcmFtZUZvclNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBGcmFtZSog
ZnJhbWUgPSAwOwpAQCAtMzkwLDExICszODEsMTEgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZERpc3BhdAogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWREaXNwYXRjaFhIUlJl
YWR5U3RhdGVDaGFuZ2VFdmVudCgpOwogfQogCi1JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgRXZlbnQmIGV2ZW50LCBE
T01XaW5kb3cqIHdpbmRvdywgTm9kZSogbm9kZSwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBhdGgs
IERvY3VtZW50KiBkb2N1bWVudCkKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBFdmVudCYgZXZlbnQsIGJvb2wgaGFz
RXZlbnRMaXN0ZW5lcnMsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBpbnQgdGltZWxpbmVB
Z2VudElkID0gMDsKICAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpOwotICAgIGlmICh0
aW1lbGluZUFnZW50ICYmIGV2ZW50SGFzTGlzdGVuZXJzKGV2ZW50LnR5cGUoKSwgd2luZG93LCBu
b2RlLCBldmVudFBhdGgpKSB7CisgICAgaWYgKHRpbWVsaW5lQWdlbnQgJiYgaGFzRXZlbnRMaXN0
ZW5lcnMpIHsKICAgICAgICAgdGltZWxpbmVBZ2VudC0+d2lsbERpc3BhdGNoRXZlbnQoZXZlbnQs
IGRvY3VtZW50LT5mcmFtZSgpKTsKICAgICAgICAgdGltZWxpbmVBZ2VudElkID0gdGltZWxpbmVB
Z2VudC0+aWQoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCShyZXZpc2lvbiAxNTcyODEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJDb25zb2xlQVBJVHlwZXMuaCIKICNp
bmNsdWRlICJDb25zb2xlVHlwZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAi
RXZlbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiRm9ybURhdGEuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKQEAgLTU2LDcgKzU1LDYgQEAgY2xhc3MgRE9N
V3JhcHBlcldvcmxkOwogY2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVs
ZW1lbnQ7Ci1jbGFzcyBFdmVudENvbnRleHQ7CiBjbGFzcyBFdmVudFBhdGg7CiBjbGFzcyBEb2N1
bWVudExvYWRlcjsKIGNsYXNzIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb247CkBAIC0xNTAs
NyArMTQ4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZENhbGxGdW5jdGlvbihjb25z
dCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaFhIUlJlYWR5U3RhdGVDaGFuZ2VFdmVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgWE1MSHR0cFJlcXVlc3QqKTsKICAgICBzdGF0aWMg
dm9pZCBkaWREaXNwYXRjaFhIUlJlYWR5U3RhdGVDaGFuZ2VFdmVudChjb25zdCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50KERvY3VtZW50KiwgY29uc3QgRXZlbnQmLCBET01X
aW5kb3cqLCBOb2RlKiwgY29uc3QgRXZlbnRQYXRoJik7CisgICAgc3RhdGljIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudChEb2N1bWVudCosIGNvbnN0IEV2
ZW50JiwgYm9vbCBoYXNFdmVudExpc3RlbmVycyk7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0
Y2hFdmVudChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0
aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxIYW5kbGVFdmVudChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRIYW5kbGVFdmVu
dChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKQEAgLTM1NSw3ICszNTMs
NyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZENhbGxGdW5jdGlvbkltcGwoY29uc3Qg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hYSFJSZWFkeVN0YXRlQ2hhbmdlRXZlbnRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBYTUxIdHRwUmVxdWVzdCosIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaFhIUlJlYWR5U3RhdGVDaGFu
Z2VFdmVudEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAg
c3RhdGljIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNvbnN0IEV2ZW50JiwgRE9NV2luZG93KiwgTm9kZSos
IGNvbnN0IEV2ZW50UGF0aCYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSB3aWxsRGlzcGF0Y2hFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyosIGNvbnN0IEV2ZW50JiwgYm9vbCBoYXNFdmVudExpc3RlbmVycywgRG9jdW1lbnQqKTsKICAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxIYW5kbGVFdmVudElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEV2ZW50Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkSGFu
ZGxlRXZlbnRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAg
IHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoRXZlbnRJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSYpOwpAQCAtODg0LDEyICs4ODIsMTIgQEAgaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaQogI2VuZGlmCiB9CiAKLWlubGluZSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hF
dmVudChEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEV2ZW50JiBldmVudCwgRE9NV2luZG93KiB3
aW5kb3csIE5vZGUqIG5vZGUsIGNvbnN0IEV2ZW50UGF0aCYgZXZlbnRQYXRoKQoraW5saW5lIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxEaXNwYXRjaEV2ZW50KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgRXZlbnQmIGV2ZW50LCBi
b29sIGhhc0V2ZW50TGlzdGVuZXJzKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFT
VF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgp
KTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGlu
c3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1bWVudChkb2N1bWVudCkpCi0gICAgICAgIHJldHVybiB3
aWxsRGlzcGF0Y2hFdmVudEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZXZlbnQsIHdpbmRvdywg
bm9kZSwgZXZlbnRQYXRoLCBkb2N1bWVudCk7CisgICAgICAgIHJldHVybiB3aWxsRGlzcGF0Y2hF
dmVudEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZXZlbnQsIGhhc0V2ZW50TGlzdGVuZXJzLCBk
b2N1bWVudCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CiAgICAgVU5VU0VE
X1BBUkFNKGV2ZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213961</attachid>
            <date>2013-10-10 20:42:02 -0700</date>
            <delta_ts>2013-10-10 20:44:41 -0700</delta_ts>
            <desc>Fixed EFL builds</desc>
            <filename>bug-122631-20131010204203.patch</filename>
            <type>text/plain</type>
            <size>29015</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzI4NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDEzLTEwLTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEV2ZW50Q29udGV4dCBzaG91bGQg
YmUgdXNlZCBvbmx5IGluIEV2ZW50RGlzcGF0Y2hlci5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjYzMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lcmdlZCBXaW5kb3dFdmVudENvbnRleHQgaW50
byBFdmVudERpc3BhdGNoZXIuIE1vdmVkIHRoZSBjb2RlIHRvIGF2b2lkIGRpc3BhdGNoaW5nIGxv
YWQgZXZlbnQgb24KKyAgICAgICAgd2luZG93IGludG8gZGlzcGF0Y2hFdmVudEluRE9NIHNvIHRo
YXQgV2luZG93RXZlbnRDb250ZXh0J3MgY29uc3RydWN0b3IgZG9lc24ndCBuZWVkIEV2ZW50Lgor
CisgICAgICAgIEFsc28gcmVwbGFjZWQgRE9NV2luZG93LCBOb2RlLCBhbmQgRXZlbnRQYXRoIGFy
Z3VtZW50cyB0byBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50Cisg
ICAgICAgIGJ5IGEgc2luZ2xlIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHdpbmRvdywgdGhl
IG9yaWdpbiwgb3IgdGhlIGV2ZW50IHBhdGggaGFzIGFuIGV2ZW50IGxpc3RlbmVyLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoK
KyAgICAgICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldp
bmRvd0V2ZW50Q29udGV4dDo6d2luZG93KTogTW92ZWQgZnJvbSBXaW5kb3dFdmVudENvbnRleHQu
CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dFdmVudENvbnRleHQ6OnRhcmdldCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2luZG93RXZlbnRDb250ZXh0OjpXaW5kb3dFdmVudENvbnRleHQp
OiBEaXR0bzsgcmVtb3ZlZCB0aGUgY29kZSB0byBhdm9pZCBkaXNwYXRjaGluZyBsb2FkCisgICAg
ICAgIGV2ZW50IG9uIHdpbmRvdyBzaW5jZSB0aGF0J3MgY2hlY2tlZCBpbiBkaXNwYXRjaEV2ZW50
SW5ET00gbm93LgorICAgICAgICAoV2ViQ29yZTo6V2luZG93RXZlbnRDb250ZXh0OjpoYW5kbGVM
b2NhbEV2ZW50cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGF0Y2hFdmVudEluRE9N
KTogQXZvaWQgY2FsbGluZyBoYW5kbGVMb2NhbEV2ZW50IG9uIGEgbG9hZCBldmVudCB3aXRoIFdp
bmRvd0V2ZW50Q29udGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hFdmVudCk6IFBhc3MgYSBib29sZWFuIHRvIGluZGljYXRlIHdoZXRoZXIgd2luZG93LCB0
aGUgb3JpZ2luLCBvcgorICAgICAgICB0aGUgZXZlbnQgcGF0aCBjb250YWlucyBhbnkgZXZlbnQg
bGlzdGVuZXIgdG8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudCB0
byBoaWRlCisgICAgICAgIEV2ZW50UGF0aCBmcm9tIHRoZSBpbnNwZWN0b3IgY29kZS4KKyAgICAg
ICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICogZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1wbCk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudCk6CisKIDIwMTMt
MTAtMTAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBBZGQgdG9TVkdDb2xvcnxQYWludCgpIHRvIGNsZWFudXAgc3RhdGljX2Nhc3Q8PiwgYW5kIHVz
ZSBpdCAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNTcyODYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTIxNiw3ICsxMjE2
LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9XZWJLaXROYW1lZEZsb3cuY3BwCiAg
ICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAKICAgICBkb20vV2hlZWxFdmVudC5jcHAK
LSAgICBkb20vV2luZG93RXZlbnRDb250ZXh0LmNwcAogCiAgICAgZG9tL2RlZmF1bHQvUGxhdGZv
cm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkocmV2aXNpb24gMTU3Mjg2KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkod29ya2luZyBjb3B5KQpAQCAtMzAxNiw4ICszMDE2LDYgQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5jcHAg
XAotCVNvdXJjZS9XZWJDb3JlL2RvbS9XaW5kb3dFdmVudENvbnRleHQuaCBcCiAJU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkocmV2aXNpb24gMTU3Mjg2KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTMzNTksMjAgKzEzMzU5LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxkb21cV2luZG93RXZlbnRDb250ZXh0LmNwcCI+Ci0gICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3b3JrZXJzXEFic3RyYWN0V29ya2VyLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHdvcmtlcnNcRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd29ya2Vyc1xE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwIiAvPgpAQCAtMTk4MTQsNyArMTk4MDAsNiBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXFdlYktpdE5hbWVkRmxvdy5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXFdlYktpdFRyYW5zaXRpb25FdmVudC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZG9tXFdoZWVsRXZlbnQuaCIgLz4KLSAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGRvbVxXaW5kb3dFdmVudENvbnRleHQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHdvcmtlcnNcQWJzdHJhY3RXb3JrZXIuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHdvcmtlcnNcRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdvcmtlcnNcRGVkaWNhdGVkV29ya2VyVGhyZWFk
LmgiIC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxNTcyODYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29w
eSkKQEAgLTM0MDUsOSArMzQwNSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkb21c
V2hlZWxFdmVudC5jcHAiPgogICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxXaW5kb3dFdmVudENvbnRleHQu
Y3BwIj4KLSAgICAgIDxGaWx0ZXI+ZG9tPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3b3JrZXJzXEFic3RyYWN0V29ya2VyLmNwcCI+CiAgICAg
ICA8RmlsdGVyPndvcmtlcnM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwMjg3LDkg
KzEwMjg0LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxXaGVlbEV2ZW50Lmgi
PgogICAgICAgPEZpbHRlcj5kb208L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGRvbVxXaW5kb3dFdmVudENvbnRleHQuaCI+Ci0gICAgICA8Rmls
dGVyPmRvbTwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cd29ya2Vyc1xBYnN0cmFjdFdvcmtlci5oIj4KICAgICAgIDxGaWx0ZXI+d29ya2Vyczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU3Mjg2KQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjA1LDggKzEyMDUsNiBAQAogCQk0MTBCN0U3MjEwNDVGQUIwMDBEODIyNEYgLyog
SlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcCAqLzsgfTsKIAkJNDEyMzA4MUIxMzhDNDI5NzAwQkNDRkNBIC8qIFdlYkNvcmUu
ZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGMTlCMUEwODI0NUU1QTAwMUU5QUJDIC8qIFdlYkNvcmUuZnJhbWV3b3JrICovOyB9Owog
CQk0MTIzMDkxMzEzOEM0MkZGMDBCQ0NGQ0EgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjgyMTYyOTkw
MjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLzsgfTsKLQkJNDEy
M0U1NjkxMjdCMzA0MTAwMEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyM0U1NjcxMjdCMzA0MTAwMEZF
RUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5oICovOyB9OwotCQk0MTIzRTU2QTEyN0IzMDQxMDAw
RkVFQTcgLyogV2luZG93RXZlbnRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjNFNTY4MTI3QjMwNDEwMDBGRUVBNyAvKiBXaW5kb3dF
dmVudENvbnRleHQuY3BwICovOyB9OwogCQk0MTI3RDUzNzBGOEFBQjFEMDBFNDI0RjUgLyogU2Ny
aXB0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLzsgfTsKIAkJ
NDEzOEQzMzUxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzOEQzMzMxMjQ0MDU0ODAwMzIzRDMz
IC8qIEV2ZW50Q29udGV4dC5oICovOyB9OwogCQk0MTM4RDMzNjEyNDQwNTQ4MDAzMjNEMzMgLyog
RXZlbnRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMzhEMzM0MTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuY3BwICovOyB9
OwpAQCAtNzcwNiw4ICs3NzA0LDYgQEAKIAkJNDEwMDJDQ0IwRjY2RURFRjAwOUU2NjBEIC8qIFNj
cmlwdEZ1bmN0aW9uQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3Jp
cHRGdW5jdGlvbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0Mw
RjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTIz
RTU2NzEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRDb250ZXh0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd0V2ZW50Q29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk0MTIzRTU2ODEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRD
b250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpbmRvd0V2
ZW50Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjdENTM2MEY4
QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTY3JpcHRTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMzhEMzMzMTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxMzhEMzM0MTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRDb250ZXh0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDY0LDggKzIxMDYwLDYgQEAKIAkJCQk4
NTAzMUIzQTBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5jcHAgKi8sCiAJCQkJODUwMzFC
M0IwQTQ0RUZDNzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuaCAqLywKIAkJCQk5M0VFQzFGNzA5QzI4
Nzc3MDBDNTE1RDEgLyogV2hlZWxFdmVudC5pZGwgKi8sCi0JCQkJNDEyM0U1NjgxMjdCMzA0MTAw
MEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5jcHAgKi8sCi0JCQkJNDEyM0U1NjcxMjdCMzA0
MTAwMEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBk
b207CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjQ1MTQsNyArMjQ1MDgsNiBAQAog
CQkJCUNEOURFMTc1MTdBQUM3NEMwMEVBMzg2RCAvKiBKU01lZGlhU291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxNDExRENCMTE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMjNFNTY5MTI3QjMwNDEwMDBGRUVBNyAvKiBXaW5kb3dF
dmVudENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODI0M0U5MEQwQ0ZENzUwMDQ2MEM4
RiAvKiBXaW5kb3dGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0U5OUFGNTMwQjEzODQ2
NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTFFMUJGMDAxMTVGRjZGQjAwNkY1MkNBIC8qIFdpbmRvd3NLZXlib2FyZENvZGVzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI0Njc3LDggKzI0NjcwLDYgQEAKIAkJCQkzNzE3RDdFNzE3RUND
NTczMDAzQzI3NkQgLyogQ29weSBTY3JpcHRzICovLAogCQkJCTkzRjE5OUZEMDgyNDVFNTkwMDFF
OUFCQyAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJQ0QwREJGMDAxNDIyNzY1NzAwMjgwMjYzIC8qIENv
cHkgQXVkaW8gUmVzb3VyY2VzICovLAotCQkJCTFDODFCQTMzMEU5NzM1N0MwMDI2NkUwNyAvKiBD
b3B5IEluc3BlY3RvciBSZXNvdXJjZXMgKi8sCi0JCQkJMUM1RjlENzYwRTA5QTFCNDAwRTkxRDBB
IC8qIFN0cmVhbWxpbmUgSW5zcGVjdG9yIFNvdXJjZSAqLywKIAkJCQk5M0YxOUEwQzA4MjQ1RTU5
MDAxRTlBQkMgLyogU291cmNlcyAqLywKIAkJCQk5M0YxOUIxMjA4MjQ1RTU5MDAxRTlBQkMgLyog
RnJhbWV3b3JrcyAqLywKIAkJCQk1RDBENTQwRDBFOTg2MkY2MDAyOUUyMjMgLyogQ2hlY2sgRm9y
IFdlYWsgVlRhYmxlcyBhbmQgRXh0ZXJuYWxzICovLApAQCAtMjc1NjIsNyArMjc1NTMsNiBAQAog
CQkJCTkzODBGNDc4MDlBMTFBQ0MwMDFGREIzNCAvKiBXaWRnZXRNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQkwNzNCRTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzOUIwMkVFMEVBMkRCQzQwMEM1NDU3MCAvKiBX
aWR0aEl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxMjNFNTZBMTI3QjMwNDEwMDBG
RUVBNyAvKiBXaW5kb3dFdmVudENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4MjQz
RTgwRDBDRkQ3NTAwNDYwQzhGIC8qIFdpbmRvd0ZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdFOTlBRjUxMEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5OTE5OTYxMjAwRERGNDAwRUEwNDFDIC8qIFdP
RkZGaWxlRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0RPTUFsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxs
SW5PbmUuY3BwCShyZXZpc2lvbiAxNTcyODYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxs
SW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNyArMTUxLDYgQEAKICNpbmNsdWRlICJX
ZWJLaXROYW1lZEZsb3cuY3BwIgogI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5jcHAi
CiAjaW5jbHVkZSAiV2hlZWxFdmVudC5jcHAiCi0jaW5jbHVkZSAiV2luZG93RXZlbnRDb250ZXh0
LmNwcCIKICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5jcHAiCiAjaW5jbHVkZSAiWE1MRG9j
dW1lbnRQYXJzZXJTY29wZS5jcHAiCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERp
c3BhdGNoZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3Bh
dGNoZXIuY3BwCShyZXZpc2lvbiAxNTcyODYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRE
aXNwYXRjaGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6
Ly93d3cudG9yY2htb2JpbGUuY29tLykKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDExLCAyMDEyLCAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJTY29wZWRFdmVudFF1
ZXVlLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRvdWNoRXZlbnQuaCIK
LSNpbmNsdWRlICJXaW5kb3dFdmVudENvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKICNpZiBFTkFCTEUoU1ZHKQpAQCAtNTAsNiArNDksNDAgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBXaW5kb3dFdmVudENvbnRleHQgeworcHVibGljOgorICAgIFdpbmRvd0V2
ZW50Q29udGV4dChQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBFdmVudENvbnRleHQqKTsKKworICAg
IERPTVdpbmRvdyogd2luZG93KCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3cuZ2V0KCk7IH0KKyAg
ICBFdmVudFRhcmdldCogdGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXQuZ2V0KCk7IH0K
KyAgICBib29sIGhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50Jik7CisKK3ByaXZhdGU6CisgICAgUmVm
UHRyPERPTVdpbmRvdz4gbV93aW5kb3c7CisgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3Rhcmdl
dDsKK307CisKK1dpbmRvd0V2ZW50Q29udGV4dDo6V2luZG93RXZlbnRDb250ZXh0KFBhc3NSZWZQ
dHI8Tm9kZT4gbm9kZSwgY29uc3QgRXZlbnRDb250ZXh0KiB0b3BFdmVudENvbnRleHQpCit7Cisg
ICAgTm9kZSogdG9wTGV2ZWxDb250YWluZXIgPSB0b3BFdmVudENvbnRleHQgPyB0b3BFdmVudENv
bnRleHQtPm5vZGUoKSA6IG5vZGUuZ2V0KCk7CisgICAgaWYgKCF0b3BMZXZlbENvbnRhaW5lci0+
aXNEb2N1bWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV93aW5kb3cgPSB0b0Rv
Y3VtZW50KHRvcExldmVsQ29udGFpbmVyKS0+ZG9tV2luZG93KCk7CisgICAgbV90YXJnZXQgPSB0
b3BFdmVudENvbnRleHQgPyB0b3BFdmVudENvbnRleHQtPnRhcmdldCgpIDogbm9kZS5nZXQoKTsK
K30KKworYm9vbCBXaW5kb3dFdmVudENvbnRleHQ6OmhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50JiBl
dmVudCkKK3sKKyAgICBpZiAoIW1fd2luZG93KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBldmVudC5zZXRUYXJnZXQobV90YXJnZXQuZ2V0KCkpOworICAgIGV2ZW50LnNldEN1cnJlbnRU
YXJnZXQobV93aW5kb3cuZ2V0KCkpOworICAgIG1fd2luZG93LT5maXJlRXZlbnRMaXN0ZW5lcnMo
JmV2ZW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogaW5saW5lIEV2ZW50VGFyZ2V0JiBldmVu
dFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcyhOb2RlJiByZWZlcmVuY2VOb2RlKQogewogICAg
IGlmIChyZWZlcmVuY2VOb2RlLmlzUHNldWRvRWxlbWVudCgpKSB7CkBAIC0xMzIsNyArMTY1LDEw
IEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNoRXZlbnRJbkRPTShFdmVudCYgZXYKICAgICAvLyBUcmln
Z2VyIGNhcHR1cmluZyBldmVudCBoYW5kbGVycywgc3RhcnRpbmcgYXQgdGhlIHRvcCBhbmQgd29y
a2luZyBvdXIgd2F5IGRvd24uCiAgICAgZXZlbnQuc2V0RXZlbnRQaGFzZShFdmVudDo6Q0FQVFVS
SU5HX1BIQVNFKTsKIAotICAgIGlmICh3aW5kb3dFdmVudENvbnRleHQuaGFuZGxlTG9jYWxFdmVu
dHMoZXZlbnQpICYmIGV2ZW50LnByb3BhZ2F0aW9uU3RvcHBlZCgpKQorICAgIC8vIFdlIGRvbid0
IGRpc3BhdGNoIGxvYWQgZXZlbnRzIHRvIHRoZSB3aW5kb3cuIFRoaXMgcXVpcmsgd2FzIG9yaWdp
bmFsbHkKKyAgICAvLyBhZGRlZCBiZWNhdXNlIE1vemlsbGEgZG9lc24ndCBwcm9wYWdhdGUgbG9h
ZCBldmVudHMgdG8gdGhlIHdpbmRvdyBvYmplY3QuCisgICAgYm9vbCBzaG91bGRGaXJlRXZlbnRB
dFdpbmRvdyA9IGV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkubG9hZEV2ZW50OworICAgIGlm
IChzaG91bGRGaXJlRXZlbnRBdFdpbmRvdyAmJiB3aW5kb3dFdmVudENvbnRleHQuaGFuZGxlTG9j
YWxFdmVudHMoZXZlbnQpICYmIGV2ZW50LnByb3BhZ2F0aW9uU3RvcHBlZCgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBmb3IgKHNpemVfdCBpID0gcGF0aC5zaXplKCkgLSAxOyBpID4gMDsgLS1p
KSB7CkBAIC0xNjUsNyArMjAxLDggQEAgc3RhdGljIHZvaWQgZGlzcGF0Y2hFdmVudEluRE9NKEV2
ZW50JiBldgogICAgIH0KICAgICBpZiAoZXZlbnQuYnViYmxlcygpICYmICFldmVudC5jYW5jZWxC
dWJibGUoKSkgewogICAgICAgICBldmVudC5zZXRFdmVudFBoYXNlKEV2ZW50OjpCVUJCTElOR19Q
SEFTRSk7Ci0gICAgICAgIHdpbmRvd0V2ZW50Q29udGV4dC5oYW5kbGVMb2NhbEV2ZW50cyhldmVu
dCk7CisgICAgICAgIGlmIChzaG91bGRGaXJlRXZlbnRBdFdpbmRvdykKKyAgICAgICAgICAgIHdp
bmRvd0V2ZW50Q29udGV4dC5oYW5kbGVMb2NhbEV2ZW50cyhldmVudCk7CiAgICAgfQogfQogCkBA
IC0xOTMsOCArMjMwLDEwIEBAIGJvb2wgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KE5v
ZGUKICAgICBldmVudC0+c2V0VGFyZ2V0KCZldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxl
cygqbm9kZSkpOwogICAgIEFTU0VSVCghTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uOjppc0V2ZW50
RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CiAgICAgQVNTRVJUKGV2ZW50LT50YXJnZXQoKSk7Ci0gICAg
V2luZG93RXZlbnRDb250ZXh0IHdpbmRvd0V2ZW50Q29udGV4dChldmVudC5nZXQoKSwgbm9kZS5n
ZXQoKSwgZXZlbnRQYXRoLmxhc3RDb250ZXh0SWZFeGlzdHMoKSk7Ci0gICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bERpc3BhdGNoRXZlbnQoJm5vZGUtPmRvY3VtZW50KCksICpldmVudCwgd2luZG93RXZlbnRDb250
ZXh0LndpbmRvdygpLCBub2RlLmdldCgpLCBldmVudFBhdGgpOworICAgIFdpbmRvd0V2ZW50Q29u
dGV4dCB3aW5kb3dFdmVudENvbnRleHQobm9kZS5nZXQoKSwgZXZlbnRQYXRoLmxhc3RDb250ZXh0
SWZFeGlzdHMoKSk7CisgICAgYm9vbCBoYXNFdmVudExpc3RuZXJzID0gKHdpbmRvd0V2ZW50Q29u
dGV4dC53aW5kb3coKSAmJiB3aW5kb3dFdmVudENvbnRleHQud2luZG93KCktPmhhc0V2ZW50TGlz
dGVuZXJzKGV2ZW50LT50eXBlKCkpKQorICAgICAgICB8fCBub2RlLT5oYXNFdmVudExpc3RlbmVy
cyhldmVudC0+dHlwZSgpKSB8fCBldmVudFBhdGguaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnQtPnR5
cGUoKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnQoJm5vZGUtPmRvY3VtZW50KCks
ICpldmVudCwgaGFzRXZlbnRMaXN0bmVycyk7CiAKICAgICBJbnB1dEVsZW1lbnRDbGlja1N0YXRl
IGNsaWNrSGFuZGxpbmdTdGF0ZTsKICAgICBpZiAoaXNIVE1MSW5wdXRFbGVtZW50KG5vZGUuZ2V0
KCkpKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaAkocmV2aXNpb24gMTU3
Mjg2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIEV2ZW50RGlzcGF0Y2hlcl9oCiAjZGVmaW5l
IEV2ZW50RGlzcGF0Y2hlcl9oCiAKLSNpbmNsdWRlICJFdmVudENvbnRleHQuaCIKICNpbmNsdWRl
ICJTaW11bGF0ZWRDbGlja09wdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0zNSwxNSArMzQsMTcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBFbGVtZW50OwogY2xhc3MgRXZlbnQ7CitjbGFzcyBFdmVudENvbnRl
eHQ7CiBjbGFzcyBFdmVudFRhcmdldDsKIGNsYXNzIEZyYW1lVmlldzsKIGNsYXNzIE5vZGU7CiBj
bGFzcyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBj
bGFzcyBTaGFkb3dSb290OworY2xhc3MgVG91Y2hFdmVudDsKIGNsYXNzIFRyZWVTY29wZTsKLWNs
YXNzIFdpbmRvd0V2ZW50Q29udGV4dDsKIHN0cnVjdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlOwog
CiBlbnVtIEV2ZW50RGlzcGF0Y2hDb250aW51YXRpb24gewpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAko
cmV2aXNpb24gMTU3Mjg2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiRWxlbWVudFJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRl
ICJFdmVudENvbnRleHQuaCIKICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXIuaCIKICNpbmNsdWRl
ICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgpAQCAtMTA1LDcg
KzEwNCw2IEBACiAjaW5jbHVkZSAiVUlFdmVudC5oIgogI2luY2x1ZGUgIlVJRXZlbnRXaXRoS2V5
U3RhdGUuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCi0jaW5jbHVkZSAiV2luZG93RXZlbnRD
b250ZXh0LmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDE1
NzI4NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2
LDcgKzU2LDYgQEAgY2xhc3MgRE9NU2V0dGFibGVUb2tlbkxpc3Q7CiBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsKLWNsYXNzIEV2ZW50Q29udGV4dDsKIGNsYXNz
IEV2ZW50TGlzdGVuZXI7CiBjbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgRnJhbWU7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vV2luZG93RXZlbnRDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vV2luZG93RXZlbnRDb250ZXh0LmNwcAkocmV2aXNpb24gMTU3Mjg2
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1dpbmRvd0V2ZW50Q29udGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIldpbmRvd0V2ZW50Q29udGV4dC5oIgotCi0jaW5jbHVkZSAiRE9NV2luZG93
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUg
IkV2ZW50Q29udGV4dC5oIgotI2luY2x1ZGUgIk5vZGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1XaW5kb3dFdmVudENvbnRleHQ6OldpbmRvd0V2ZW50Q29udGV4dChFdmVudCogZXZlbnQs
IFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgY29uc3QgRXZlbnRDb250ZXh0KiB0b3BFdmVudENvbnRl
eHQpCi17Ci0gICAgLy8gV2UgZG9uJ3QgZGlzcGF0Y2ggbG9hZCBldmVudHMgdG8gdGhlIHdpbmRv
dy4gVGhpcyBxdWlyayB3YXMgb3JpZ2luYWxseQotICAgIC8vIGFkZGVkIGJlY2F1c2UgTW96aWxs
YSBkb2Vzbid0IHByb3BhZ2F0ZSBsb2FkIGV2ZW50cyB0byB0aGUgd2luZG93IG9iamVjdC4KLSAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubG9hZEV2ZW50KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBOb2RlKiB0b3BMZXZlbENvbnRhaW5lciA9IHRvcEV2ZW50Q29udGV4dCA/
IHRvcEV2ZW50Q29udGV4dC0+bm9kZSgpIDogbm9kZS5nZXQoKTsKLSAgICBpZiAoIXRvcExldmVs
Q29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3dp
bmRvdyA9IHRvRG9jdW1lbnQodG9wTGV2ZWxDb250YWluZXIpLT5kb21XaW5kb3coKTsKLSAgICBt
X3RhcmdldCA9IHRvcEV2ZW50Q29udGV4dCA/IHRvcEV2ZW50Q29udGV4dC0+dGFyZ2V0KCkgOiBu
b2RlLmdldCgpOwotfQotCi1ib29sIFdpbmRvd0V2ZW50Q29udGV4dDo6aGFuZGxlTG9jYWxFdmVu
dHMoRXZlbnQmIGV2ZW50KQotewotICAgIGlmICghbV93aW5kb3cpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGV2ZW50LnNldFRhcmdldCh0YXJnZXQoKSk7Ci0gICAgZXZlbnQuc2V0Q3Vy
cmVudFRhcmdldCh3aW5kb3coKSk7Ci0gICAgbV93aW5kb3ctPmZpcmVFdmVudExpc3RlbmVycygm
ZXZlbnQpOwotICAgIHJldHVybiB0cnVlOwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vV2luZG93RXZlbnRDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L1dpbmRvd0V2ZW50Q29udGV4dC5oCShyZXZpc2lvbiAxNTcyODYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vV2luZG93RXZlbnRDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNjUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqCi0gKi8KLQotI2lmbmRlZiBXaW5kb3dFdmVudENvbnRleHRfaAotI2RlZmluZSBX
aW5kb3dFdmVudENvbnRleHRfaAotCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERPTVdpbmRvdzsKLWNsYXNzIEV2ZW50VGFyZ2V0OwotY2xh
c3MgRXZlbnRDb250ZXh0OwotY2xhc3MgRXZlbnQ7Ci1jbGFzcyBOb2RlOwotCi1jbGFzcyBXaW5k
b3dFdmVudENvbnRleHQgewotcHVibGljOgotICAgIFdpbmRvd0V2ZW50Q29udGV4dChFdmVudCos
IFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IEV2ZW50Q29udGV4dCopOwotCi0gICAgRE9NV2luZG93
KiB3aW5kb3coKSBjb25zdDsKLSAgICBFdmVudFRhcmdldCogdGFyZ2V0KCkgY29uc3Q7Ci0gICAg
Ym9vbCBoYW5kbGVMb2NhbEV2ZW50cyhFdmVudCYpOwotCi1wcml2YXRlOgotICAgIFJlZlB0cjxE
T01XaW5kb3c+IG1fd2luZG93OwotICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV90YXJnZXQ7Ci19
OwotCi1pbmxpbmUgRE9NV2luZG93KiBXaW5kb3dFdmVudENvbnRleHQ6OndpbmRvdygpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fd2luZG93LmdldCgpOwotfQotCi1pbmxpbmUgRXZlbnRUYXJnZXQq
IFdpbmRvd0V2ZW50Q29udGV4dDo6dGFyZ2V0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90YXJn
ZXQuZ2V0KCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIFdpbmRvd0V2ZW50Q29udGV4dF9oCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAJKHJl
dmlzaW9uIDE1NzI4NikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlICJEb2N1
bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKLSNp
bmNsdWRlICJFdmVudENvbnRleHQuaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcAkocmV2aXNpb24gMTU3Mjg2KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDYgQEAK
ICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJEb2N1bWVudExv
YWRlci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRDb250ZXh0LmgiCiAj
aW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQWdlbnQuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCIKQEAgLTk5LDE0ICs5
OCw2IEBAIHN0YXRpYyBIYXNoU2V0PEluc3RydW1lbnRpbmdBZ2VudHMqPiogaW4KIAogaW50IElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c19mcm9udGVuZENvdW50ZXIgPSAwOwogCi1zdGF0aWMg
Ym9vbCBldmVudEhhc0xpc3RlbmVycyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9N
V2luZG93KiB3aW5kb3csIE5vZGUqIG5vZGUsIGNvbnN0IEV2ZW50UGF0aCYgZXZlbnRQYXRoKQot
ewotICAgIGlmICh3aW5kb3cgJiYgd2luZG93LT5oYXNFdmVudExpc3RlbmVycyhldmVudFR5cGUp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBub2RlLT5oYXNFdmVudExpc3Rl
bmVycyhldmVudFR5cGUpIHx8IGV2ZW50UGF0aC5oYXNFdmVudExpc3RlbmVycyhldmVudFR5cGUp
OwotfQotCiBzdGF0aWMgRnJhbWUqIGZyYW1lRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewogICAgIEZyYW1lKiBmcmFtZSA9IDA7CkBA
IC0zOTAsMTEgKzM4MSwxMSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlz
cGF0CiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoWEhSUmVhZHlTdGF0ZUNoYW5n
ZUV2ZW50KCk7CiB9CiAKLUluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBFdmVudCYgZXZlbnQsIERPTVdpbmRvdyogd2lu
ZG93LCBOb2RlKiBub2RlLCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0aCwgRG9jdW1lbnQqIGRv
Y3VtZW50KQorSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIGNvbnN0IEV2ZW50JiBldmVudCwgYm9vbCBoYXNFdmVudExpc3RlbmVy
cywgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIGludCB0aW1lbGluZUFnZW50SWQgPSAwOwog
ICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7Ci0gICAgaWYgKHRpbWVsaW5lQWdlbnQg
JiYgZXZlbnRIYXNMaXN0ZW5lcnMoZXZlbnQudHlwZSgpLCB3aW5kb3csIG5vZGUsIGV2ZW50UGF0
aCkpIHsKKyAgICBpZiAodGltZWxpbmVBZ2VudCAmJiBoYXNFdmVudExpc3RlbmVycykgewogICAg
ICAgICB0aW1lbGluZUFnZW50LT53aWxsRGlzcGF0Y2hFdmVudChldmVudCwgZG9jdW1lbnQtPmZy
YW1lKCkpOwogICAgICAgICB0aW1lbGluZUFnZW50SWQgPSB0aW1lbGluZUFnZW50LT5pZCgpOwog
ICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgJKHJldmlzaW9uIDE1NzI4NikKKysrIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
NyArMzUsNiBAQAogI2luY2x1ZGUgIkNvbnNvbGVBUElUeXBlcy5oIgogI2luY2x1ZGUgIkNvbnNv
bGVUeXBlcy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJFdmVudENvbnRleHQu
aCIKICNpbmNsdWRlICJGb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
SGl0VGVzdFJlc3VsdC5oIgpAQCAtNTYsNyArNTUsNiBAQCBjbGFzcyBET01XcmFwcGVyV29ybGQ7
CiBjbGFzcyBEYXRhYmFzZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKLWNsYXNz
IEV2ZW50Q29udGV4dDsKIGNsYXNzIEV2ZW50UGF0aDsKIGNsYXNzIERvY3VtZW50TG9hZGVyOwog
Y2xhc3MgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjsKQEAgLTE1MCw3ICsxNDgsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FsbEZ1bmN0aW9uKGNvbnN0IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgd2lsbERpc3BhdGNoWEhSUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBYTUxIdHRwUmVxdWVzdCopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3Bh
dGNoWEhSUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSYpOwotICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2ls
bERpc3BhdGNoRXZlbnQoRG9jdW1lbnQqLCBjb25zdCBFdmVudCYsIERPTVdpbmRvdyosIE5vZGUq
LCBjb25zdCBFdmVudFBhdGgmKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIHdpbGxEaXNwYXRjaEV2ZW50KERvY3VtZW50KiwgY29uc3QgRXZlbnQmLCBib29sIGhh
c0V2ZW50TGlzdGVuZXJzKTsKICAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50KGNvbnN0
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUgd2lsbEhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBFdmVudCopOwogICAgIHN0YXRpYyB2b2lkIGRpZEhhbmRsZUV2ZW50KGNvbnN0IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwpAQCAtMzU1LDcgKzM1Myw3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgZGlkQ2FsbEZ1bmN0aW9uSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUmKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llIHdpbGxEaXNwYXRjaFhIUlJlYWR5U3RhdGVDaGFuZ2VFdmVudEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIFhNTEh0dHBSZXF1ZXN0KiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwog
ICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoWEhSUmVhZHlTdGF0ZUNoYW5nZUV2ZW50SW1wbChj
b25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKLSAgICBzdGF0aWMgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgY29uc3QgRXZlbnQmLCBET01XaW5kb3cqLCBOb2RlKiwgY29uc3QgRXZlbnRQ
YXRoJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgRXZl
bnQmLCBib29sIGhhc0V2ZW50TGlzdGVuZXJzLCBEb2N1bWVudCopOwogICAgIHN0YXRpYyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbEhhbmRsZUV2ZW50SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgRXZlbnQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRIYW5kbGVFdmVudEltcGwo
Y29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkRGlzcGF0Y2hFdmVudEltcGwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
Jik7CkBAIC04ODQsMTIgKzg4MiwxMiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpCiAjZW5kaWYKIH0KIAotaW5saW5lIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNv
b2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50KERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHdpbmRvdywgTm9kZSog
bm9kZSwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBhdGgpCitpbmxpbmUgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZl
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBFdmVudCYgZXZlbnQsIGJvb2wgaGFzRXZlbnRM
aXN0ZW5lcnMpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9O
T19GUk9OVEVORFMoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCkpOwogICAgIGlmIChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAgcmV0dXJuIHdpbGxEaXNwYXRjaEV2
ZW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBldmVudCwgd2luZG93LCBub2RlLCBldmVudFBh
dGgsIGRvY3VtZW50KTsKKyAgICAgICAgcmV0dXJuIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChpbnN0
cnVtZW50aW5nQWdlbnRzLCBldmVudCwgaGFzRXZlbnRMaXN0ZW5lcnMsIGRvY3VtZW50KTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICAgICBVTlVTRURfUEFSQU0oZXZlbnQp
Owo=
</data>
<flag name="review"
          id="236423"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>