<?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>164365</bug_id>
          
          <creation_ts>2016-11-03 07:06:46 -0700</creation_ts>
          <short_desc>[WebRTC] Introduce asynchronous backend createOffer API</short_desc>
          <delta_ts>2016-11-03 23:37:49 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>adam.bergkvist</cc>
    
    <cc>alex</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1247697</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-03 07:06:46 -0700</bug_when>
    <thetext>createOffer API should be made asynchronous for WebRTC backends.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247698</commentid>
    <comment_count>1</comment_count>
      <attachid>293760</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-03 07:14:03 -0700</bug_when>
    <thetext>Created attachment 293760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1247699</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-03 07:15:44 -0700</bug_when>
    <thetext>Attachment 293760 did not pass style-queue:


ERROR: Source/WebCore/Modules/mediastream/PeerConnectionBackend.h:73:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248067</commentid>
    <comment_count>3</comment_count>
      <attachid>293760</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-03 23:37:45 -0700</bug_when>
    <thetext>Comment on attachment 293760
Patch

Clearing flags on attachment: 293760

Committed r208379: &lt;http://trac.webkit.org/changeset/208379&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248068</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-03 23:37:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293760</attachid>
            <date>2016-11-03 07:14:03 -0700</date>
            <delta_ts>2016-11-03 23:37:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164365-20161103151001.patch</filename>
            <type>text/plain</type>
            <size>40027</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE0YzFjZDg1MjMzMDkw
OTRiZDg0MDljM2EwMTgyNTE2NDZhYTFlNS4uYjVmZTkwYzkwODVkOGNmYzg1NzcyNmRiMTdjNGU2
Y2VkYzBhNzY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE2LTExLTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJbnRyb2R1
Y2UgYXN5bmNocm9ub3VzIGJhY2tlbmQgY3JlYXRlT2ZmZXIgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQzNjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgIFJlbW92aW5nIFBlZXJFbmRwb2ludEJhY2tlbmRDbGllbnQgYXMgaXQgaXMg
b25seSBSVENQZWVyQ29ubmVjdGlvbi4KKyAgICAgICAgVGhpcyBhbGxvd3MgcmVtb3Zpbmcgdmly
dHVhbCBmb3Igc29tZSBmdW5jdGlvbnMuCisKKyAgICAgICAgTW92aW5nIE1lZGlhRW5kcG9pbnRQ
ZWVyQ2xpZW50OjptX2NsaWVudCB0byBQZWVyRW5kcG9pbnRCYWNrZW5kQ2xpZW50OjptX3BlZXJD
b25uZWN0aW9uIGFuZCBtYWtpbmcgaXQgYSByZWZlcmVuY2UuCisKKyAgICAgICAgSW1wbGVtZW50
aW5nIGNyZWF0ZU9mZmVyIGF0IFBlZXJDb25uZWN0aW9uQmFja2VuZCBieSBzcGxpdHRpbmcgaXQg
aW4gZm91ciBzdWItZnVuY3Rpb25zOgorICAgICAgICAtIG1haW4gY3JlYXRlT2ZmZXIsIGltcGxl
bWVudGVkIGF0IFBlZXJDb25uZWN0aW9uQmFja2VuZC4KKyAgICAgICAgLSBkb0NyZWF0ZU9mZmVy
IGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgKE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbiku
CisgICAgICAgIC0gY3JlYXRlT2ZmZXJTdWNjZWVkZWQvY3JlYXRlT2ZmZXJGYWlsZWQgaW1wbGVt
ZW50ZWQgYnkgUGVlckNvbm5lY3Rpb25CYWNrZW5kLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVkaWFFbmRwb2ludFBlZXJDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6
TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5k
cG9pbnRQZWVyQ29ubmVjdGlvbjo6ZG9DcmVhdGVPZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZU9mZmVyVGFzayk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZUFuc3dlclRhc2spOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERl
c2NyaXB0aW9uVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5l
Y3Rpb246OnNldFJlbW90ZURlc2NyaXB0aW9uVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0ZVRhc2spOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpjcmVhdGVSZWNlaXZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJlcGxhY2VUcmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJlcGxh
Y2VUcmFja1Rhc2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0
aW9uOjptYXJrQXNOZWVkaW5nTmVnb3RpYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uOjpsb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpyZW1vdGVE
ZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRW5k
cG9pbnRQZWVyQ29ubmVjdGlvbjo6Z290SWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6ZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjppY2VUcmFuc3Bv
cnRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25u
ZWN0aW9uOjpjcmVhdGVPZmZlcik6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZU9mZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBl
ZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlT2ZmZXJTdWNjZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVPZmZlckZhaWxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVQZWVyQ29ubmVjdGlvbkJhY2tlbmQpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg6CisgICAgICAg
IChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OlBlZXJDb25uZWN0aW9uQmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmRDbGllbnQ6On5QZWVyQ29u
bmVjdGlvbkJhY2tlbmRDbGllbnQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNv
bm5lY3Rpb246OlJUQ1BlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE2LTExLTAyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gTWVkaWEgQ29udHJvbGxl
cjogUGlQIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWEwOTc0ZDZiZTQ4ZjA3NDVh
ZGE2MzlmZGFiYTM0ZDRiM2RiNjVmNC4uYzhiM2UzNWZkM2E0MDQxNDJkMmYyOTE5MDc2ZjIzNjY2
NjhlMTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTkxMSw2ICs5MTEsNyBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWlu
dFNldC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5j
cHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhRGV2aWNlcy5jcHAKKyAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKICAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEVE1GU2VuZGVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlRv
bmVDaGFuZ2VFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcAppbmRl
eCBiMTZmNThmZTlmMGUwMGRhZTM2YWJlMDAzMzI5Zjc0ZWFjMzM3M2Y4Li4yY2I4YzMzMmJlNzY5
ZmQyMmVlNTMzOThjMDg1ZDRkNjgzNTExZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5l
Y3Rpb24uY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgi
CiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCIKICNpbmNsdWRlICJSVENPZmZlckFu
c3dlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
IlJUQ1J0cFRyYW5zY2VpdmVyLmgiCiAjaW5jbHVkZSAiUlRDVHJhY2tFdmVudC5oIgogI2luY2x1
ZGUgIlNEUFByb2Nlc3Nvci5oIgpAQCAtNjMsOSArNjQsOSBAQCBzdGF0aWMgY29uc3Qgc2l6ZV90
IGljZVVmcmFnU2l6ZSA9IDY7CiAvLyBTaXplIHJhbmdlIGZyb20gMjIgdG8gMjU2IGljZS1jaGFy
cyBkZWZpbmVkIGluIFJGQyA1MjQ1Lgogc3RhdGljIGNvbnN0IHNpemVfdCBpY2VQYXNzd29yZFNp
emUgPSAyNDsKIAotc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQZWVyQ29ubmVjdGlvbkJhY2tlbmQ+
IGNyZWF0ZU1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbihQZWVyQ29ubmVjdGlvbkJhY2tlbmRD
bGllbnQqIGNsaWVudCkKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGVlckNvbm5lY3Rpb25CYWNr
ZW5kPiBjcmVhdGVNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24oUlRDUGVlckNvbm5lY3Rpb24m
IHBlZXJDb25uZWN0aW9uKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGVlckNvbm5l
Y3Rpb25CYWNrZW5kPihuZXcgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uKGNsaWVudCkpOwor
ICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGVlckNvbm5lY3Rpb25CYWNrZW5kPihuZXcgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uKHBlZXJDb25uZWN0aW9uKSk7CiB9CiAKIENyZWF0ZVBl
ZXJDb25uZWN0aW9uQmFja2VuZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZSA9IGNyZWF0
ZU1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjsKQEAgLTc3LDEwICs3OCwxMCBAQCBzdGF0aWMg
U3RyaW5nIHJhbmRvbVN0cmluZyhzaXplX3Qgc2l6ZSkKICAgICByZXR1cm4gYmFzZTY0RW5jb2Rl
KHJhbmRvbVZhbHVlcywgc2l6ZSk7CiB9CiAKLU1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6
TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uKFBlZXJDb25uZWN0aW9uQmFja2VuZENsaWVudCog
Y2xpZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50KQorTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0
aW9uOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24oUlRDUGVlckNvbm5lY3Rpb24mIHBlZXJD
b25uZWN0aW9uKQorICAgIDogUGVlckNvbm5lY3Rpb25CYWNrZW5kKHBlZXJDb25uZWN0aW9uKQog
ICAgICwgbV9tZWRpYUVuZHBvaW50KE1lZGlhRW5kcG9pbnQ6OmNyZWF0ZSgqdGhpcykpCi0gICAg
LCBtX3NkcFByb2Nlc3NvcihzdGQ6OnVuaXF1ZV9wdHI8U0RQUHJvY2Vzc29yPihuZXcgU0RQUHJv
Y2Vzc29yKG1fY2xpZW50LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKSkKKyAgICAsIG1fc2Rw
UHJvY2Vzc29yKHN0ZDo6dW5pcXVlX3B0cjxTRFBQcm9jZXNzb3I+KG5ldyBTRFBQcm9jZXNzb3Io
bV9wZWVyQ29ubmVjdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKSkKICAgICAsIG1fY25h
bWUocmFuZG9tU3RyaW5nKGNuYW1lU2l6ZSkpCiAgICAgLCBtX2ljZVVmcmFnKHJhbmRvbVN0cmlu
ZyhpY2VVZnJhZ1NpemUpKQogICAgICwgbV9pY2VQYXNzd29yZChyYW5kb21TdHJpbmcoaWNlUGFz
c3dvcmRTaXplKSkKQEAgLTEzNiwyNyArMTM3LDI0IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uOjpzdGFydFJ1bm5pbmdUYXNrcygpCiAgICAgbV9pbml0aWFsRGVmZXJyZWRUYXNr
ID0gbnVsbHB0cjsKIH0KIAotdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0
ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucyYmIG9wdGlvbnMsIFNlc3Npb25EZXNjcmlwdGlvblByb21p
c2UmJiBwcm9taXNlKQordm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmRvQ3JlYXRl
T2ZmZXIoUlRDT2ZmZXJPcHRpb25zJiYgb3B0aW9ucykKIHsKLSAgICBydW5UYXNrKFt0aGlzLCBw
cm90ZWN0ZWRPcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgcHJvdGVjdGVkUHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGNyZWF0ZU9mZmVyVGFzayhwcm90
ZWN0ZWRPcHRpb25zLCBwcm90ZWN0ZWRQcm9taXNlKTsKKyAgICBydW5UYXNrKFt0aGlzLCBwcm90
ZWN0ZWRPcHRpb25zID0gV1RGTW92ZShvcHRpb25zKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY3Jl
YXRlT2ZmZXJUYXNrKHByb3RlY3RlZE9wdGlvbnMpOwogICAgIH0pOwogfQogCi12b2lkIE1lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlT2ZmZXJUYXNrKGNvbnN0IFJUQ09mZmVyT3B0
aW9ucyYsIFNlc3Npb25EZXNjcmlwdGlvblByb21pc2UmIHByb21pc2UpCit2b2lkIE1lZGlhRW5k
cG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlT2ZmZXJUYXNrKGNvbnN0IFJUQ09mZmVyT3B0aW9u
cyYpCiB7CiAgICAgQVNTRVJUKCFtX2R0bHNGaW5nZXJwcmludC5pc0VtcHR5KCkpOwogCi0gICAg
aWYgKG1fY2xpZW50LT5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5nU3RhdGU6
OkNsb3NlZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgTWVkaWFFbmRwb2ludFNlc3Npb25EZXNj
cmlwdGlvbiogbG9jYWxEZXNjcmlwdGlvbiA9IGludGVybmFsTG9jYWxEZXNjcmlwdGlvbigpOwog
ICAgIFJlZlB0cjxNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRp
b25TbmFwc2hvdCA9IGxvY2FsRGVzY3JpcHRpb24gPwogICAgICAgICBsb2NhbERlc2NyaXB0aW9u
LT5jb25maWd1cmF0aW9uKCktPmNsb25lKCkgOiBNZWRpYUVuZHBvaW50U2Vzc2lvbkNvbmZpZ3Vy
YXRpb246OmNyZWF0ZSgpOwogCiAgICAgY29uZmlndXJhdGlvblNuYXBzaG90LT5zZXRTZXNzaW9u
VmVyc2lvbihtX3NkcE9mZmVyU2Vzc2lvblZlcnNpb24rKyk7CiAKLSAgICBhdXRvIHRyYW5zY2Vp
dmVycyA9IFJ0cFRyYW5zY2VpdmVyVmVjdG9yKG1fY2xpZW50LT5nZXRUcmFuc2NlaXZlcnMoKSk7
CisgICAgYXV0byB0cmFuc2NlaXZlcnMgPSBSdHBUcmFuc2NlaXZlclZlY3RvcihtX3BlZXJDb25u
ZWN0aW9uLmdldFRyYW5zY2VpdmVycygpKTsKIAogICAgIC8vIFJlbW92ZSBhbnkgdHJhbnNjZWl2
ZXIgb2JqZWN0cyBmcm9tIHRyYW5zY2VpdmVycyB0aGF0IGNhbiBiZSBtYXRjaGVkIHRvIGFuIGV4
aXN0aW5nIG1lZGlhIGRlc2NyaXB0aW9uLgogICAgIGZvciAoYXV0byYgbWVkaWFEZXNjcmlwdGlv
biA6IGNvbmZpZ3VyYXRpb25TbmFwc2hvdC0+bWVkaWFEZXNjcmlwdGlvbnMoKSkgewpAQCAtMjAz
LDggKzIwMSwxMyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlT2Zm
ZXJUYXNrKGNvbnN0IFJUQ09mZmVyT3B0aW9ucyYsIFNlc3NpbwogICAgICAgICBjb25maWd1cmF0
aW9uU25hcHNob3QtPmFkZE1lZGlhRGVzY3JpcHRpb24oV1RGTW92ZShtZWRpYURlc2NyaXB0aW9u
KSk7CiAgICAgfQogCi0gICAgYXV0byBkZXNjcmlwdGlvbiA9IE1lZGlhRW5kcG9pbnRTZXNzaW9u
RGVzY3JpcHRpb246OmNyZWF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVy
LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb25TbmFwc2hvdCkpOwotICAgIHByb21pc2UucmVzb2x2ZSgq
ZGVzY3JpcHRpb24tPnRvUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKCptX3NkcFByb2Nlc3NvcikpOwor
ICAgIFN0cmluZyBzZHA7CisgICAgU0RQUHJvY2Vzc29yOjpSZXN1bHQgcmVzdWx0ID0gbV9zZHBQ
cm9jZXNzb3ItPmdlbmVyYXRlKCpjb25maWd1cmF0aW9uU25hcHNob3QsIHNkcCk7CisgICAgaWYg
KHJlc3VsdCAhPSBTRFBQcm9jZXNzb3I6OlJlc3VsdDo6U3VjY2VzcykgeworICAgICAgICBjcmVh
dGVPZmZlckZhaWxlZChPcGVyYXRpb25FcnJvciwgIlNEUFByb2Nlc3NvciBpbnRlcm5hbCBlcnJv
ciIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNyZWF0ZU9mZmVyU3VjY2VlZGVkKFdU
Rk1vdmUoc2RwKSk7CiB9CiAKIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpjcmVh
dGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucyYmIG9wdGlvbnMsIFNlc3Npb25EZXNjcmlwdGlvblBy
b21pc2UmJiBwcm9taXNlKQpAQCAtMjE4LDcgKzIyMSw3IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBl
ZXJDb25uZWN0aW9uOjpjcmVhdGVBbnN3ZXJUYXNrKGNvbnN0IFJUQ0Fuc3dlck9wdGlvbnMmLCBT
ZXNzCiB7CiAgICAgQVNTRVJUKCFtX2R0bHNGaW5nZXJwcmludC5pc0VtcHR5KCkpOwogCi0gICAg
aWYgKG1fY2xpZW50LT5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5nU3RhdGU6
OkNsb3NlZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRl
KCkgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KCFpbnRlcm5hbFJlbW90ZURlc2NyaXB0aW9uKCkpIHsKQEAgLTIzMiw3ICsyMzUsNyBAQCB2b2lk
IE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlQW5zd2VyVGFzayhjb25zdCBSVENB
bnN3ZXJPcHRpb25zJiwgU2VzcwogCiAgICAgY29uZmlndXJhdGlvblNuYXBzaG90LT5zZXRTZXNz
aW9uVmVyc2lvbihtX3NkcEFuc3dlclNlc3Npb25WZXJzaW9uKyspOwogCi0gICAgYXV0byB0cmFu
c2NlaXZlcnMgPSBSdHBUcmFuc2NlaXZlclZlY3RvcihtX2NsaWVudC0+Z2V0VHJhbnNjZWl2ZXJz
KCkpOworICAgIGF1dG8gdHJhbnNjZWl2ZXJzID0gUnRwVHJhbnNjZWl2ZXJWZWN0b3IobV9wZWVy
Q29ubmVjdGlvbi5nZXRUcmFuc2NlaXZlcnMoKSk7CiAgICAgYXV0byYgcmVtb3RlTWVkaWFEZXNj
cmlwdGlvbnMgPSBpbnRlcm5hbFJlbW90ZURlc2NyaXB0aW9uKCktPmNvbmZpZ3VyYXRpb24oKS0+
bWVkaWFEZXNjcmlwdGlvbnMoKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZW1v
dGVNZWRpYURlc2NyaXB0aW9ucy5zaXplKCk7ICsraSkgewpAQCAtMzE4LDcgKzMyMSw3IEBAIHZv
aWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uKFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbiYgZGVzCiAKIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
OjpzZXRMb2NhbERlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiYm
IGRlc2NyaXB0aW9uLCBWb2lkUHJvbWlzZSYgcHJvbWlzZSkKIHsKLSAgICBpZiAobV9jbGllbnQt
PmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAg
IGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBTaWduYWxp
bmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHJlc3VsdCA9IE1l
ZGlhRW5kcG9pbnRTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZShXVEZNb3ZlKGRlc2NyaXB0aW9u
KSwgKm1fc2RwUHJvY2Vzc29yKTsKQEAgLTMzMyw3ICszMzYsNyBAQCB2b2lkIE1lZGlhRW5kcG9p
bnRQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY29uc3QgUnRwVHJhbnNjZWl2
ZXJWZWN0b3ImIHRyYW5zY2VpdmVycyA9IG1fY2xpZW50LT5nZXRUcmFuc2NlaXZlcnMoKTsKKyAg
ICBjb25zdCBSdHBUcmFuc2NlaXZlclZlY3RvciYgdHJhbnNjZWl2ZXJzID0gbV9wZWVyQ29ubmVj
dGlvbi5nZXRUcmFuc2NlaXZlcnMoKTsKICAgICBjb25zdCBNZWRpYURlc2NyaXB0aW9uVmVjdG9y
JiBtZWRpYURlc2NyaXB0aW9ucyA9IG5ld0Rlc2NyaXB0aW9uLT5jb25maWd1cmF0aW9uKCktPm1l
ZGlhRGVzY3JpcHRpb25zKCk7CiAgICAgTWVkaWFFbmRwb2ludFNlc3Npb25EZXNjcmlwdGlvbiog
bG9jYWxEZXNjcmlwdGlvbiA9IGludGVybmFsTG9jYWxEZXNjcmlwdGlvbigpOwogICAgIHVuc2ln
bmVkIHByZXZpb3VzTnVtYmVyT2ZNZWRpYURlc2NyaXB0aW9ucyA9IGxvY2FsRGVzY3JpcHRpb24g
PyBsb2NhbERlc2NyaXB0aW9uLT5jb25maWd1cmF0aW9uKCktPm1lZGlhRGVzY3JpcHRpb25zKCku
c2l6ZSgpIDogMDsKQEAgLTM0NCwxMSArMzQ3LDExIEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
CiAgICAgICAgIE1lZGlhRW5kcG9pbnQ6OlVwZGF0ZVJlc3VsdCByZXN1bHQgPSBtX21lZGlhRW5k
cG9pbnQtPnVwZGF0ZVJlY2VpdmVDb25maWd1cmF0aW9uKG5ld0Rlc2NyaXB0aW9uLT5jb25maWd1
cmF0aW9uKCksIGlzSW5pdGlhdG9yKTsKIAogICAgICAgICBpZiAocmVzdWx0ID09IE1lZGlhRW5k
cG9pbnQ6OlVwZGF0ZVJlc3VsdDo6U3VjY2Vzc1dpdGhJY2VSZXN0YXJ0KSB7Ci0gICAgICAgICAg
ICBpZiAobV9jbGllbnQtPmludGVybmFsSWNlR2F0aGVyaW5nU3RhdGUoKSAhPSBJY2VHYXRoZXJp
bmdTdGF0ZTo6R2F0aGVyaW5nKQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT51cGRhdGVJY2VH
YXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0ZTo6R2F0aGVyaW5nKTsKKyAgICAgICAgICAg
IGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsSWNlR2F0aGVyaW5nU3RhdGUoKSAhPSBJY2VH
YXRoZXJpbmdTdGF0ZTo6R2F0aGVyaW5nKQorICAgICAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rp
b24udXBkYXRlSWNlR2F0aGVyaW5nU3RhdGUoSWNlR2F0aGVyaW5nU3RhdGU6OkdhdGhlcmluZyk7
CiAKLSAgICAgICAgICAgIGlmIChtX2NsaWVudC0+aW50ZXJuYWxJY2VDb25uZWN0aW9uU3RhdGUo
KSAhPSBJY2VDb25uZWN0aW9uU3RhdGU6OkNvbXBsZXRlZCkKLSAgICAgICAgICAgICAgICBtX2Ns
aWVudC0+dXBkYXRlSWNlQ29ubmVjdGlvblN0YXRlKEljZUNvbm5lY3Rpb25TdGF0ZTo6Q29ubmVj
dGVkKTsKKyAgICAgICAgICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsSWNlQ29ubmVj
dGlvblN0YXRlKCkgIT0gSWNlQ29ubmVjdGlvblN0YXRlOjpDb21wbGV0ZWQpCisgICAgICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbi51cGRhdGVJY2VDb25uZWN0aW9uU3RhdGUoSWNlQ29ubmVj
dGlvblN0YXRlOjpDb25uZWN0ZWQpOwogCiAgICAgICAgICAgICBMT0dfRVJST1IoIklDRSByZXN0
YXJ0IGlzIG5vdCBpbXBsZW1lbnRlZCIpOwogICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsK
QEAgLTQwOSwxNiArNDEyLDE2IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpz
ZXRMb2NhbERlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAotICAgIGlmIChuZXdTaWduYWxpbmdTdGF0ZSAhPSBtX2NsaWVudC0+aW50
ZXJuYWxTaWduYWxpbmdTdGF0ZSgpKSB7Ci0gICAgICAgIG1fY2xpZW50LT5zZXRTaWduYWxpbmdT
dGF0ZShuZXdTaWduYWxpbmdTdGF0ZSk7Ci0gICAgICAgIG1fY2xpZW50LT5maXJlRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2lnbmFsaW5nc3RhdGVjaGFuZ2VFdmVudCwgZmFsc2Us
IGZhbHNlKSk7CisgICAgaWYgKG5ld1NpZ25hbGluZ1N0YXRlICE9IG1fcGVlckNvbm5lY3Rpb24u
aW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpKSB7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb24uc2V0
U2lnbmFsaW5nU3RhdGUobmV3U2lnbmFsaW5nU3RhdGUpOworICAgICAgICBtX3BlZXJDb25uZWN0
aW9uLmZpcmVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zaWduYWxpbmdzdGF0ZWNo
YW5nZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKICAgICB9CiAKLSAgICBpZiAobV9jbGllbnQtPmlu
dGVybmFsSWNlR2F0aGVyaW5nU3RhdGUoKSA9PSBJY2VHYXRoZXJpbmdTdGF0ZTo6TmV3ICYmIG1l
ZGlhRGVzY3JpcHRpb25zLnNpemUoKSkKLSAgICAgICAgbV9jbGllbnQtPnVwZGF0ZUljZUdhdGhl
cmluZ1N0YXRlKEljZUdhdGhlcmluZ1N0YXRlOjpHYXRoZXJpbmcpOworICAgIGlmIChtX3BlZXJD
b25uZWN0aW9uLmludGVybmFsSWNlR2F0aGVyaW5nU3RhdGUoKSA9PSBJY2VHYXRoZXJpbmdTdGF0
ZTo6TmV3ICYmIG1lZGlhRGVzY3JpcHRpb25zLnNpemUoKSkKKyAgICAgICAgbV9wZWVyQ29ubmVj
dGlvbi51cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0ZTo6R2F0aGVyaW5n
KTsKIAotICAgIGlmIChtX2NsaWVudC0+aW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFNpZ25h
bGluZ1N0YXRlOjpTdGFibGUgJiYgbV9uZWdvdGlhdGlvbk5lZWRlZCkKLSAgICAgICAgbV9jbGll
bnQtPnNjaGVkdWxlTmVnb3RpYXRpb25OZWVkZWRFdmVudCgpOworICAgIGlmIChtX3BlZXJDb25u
ZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBTaWduYWxpbmdTdGF0ZTo6U3RhYmxl
ICYmIG1fbmVnb3RpYXRpb25OZWVkZWQpCisgICAgICAgIG1fcGVlckNvbm5lY3Rpb24uc2NoZWR1
bGVOZWdvdGlhdGlvbk5lZWRlZEV2ZW50KCk7CiAKICAgICBwcm9taXNlLnJlc29sdmUobnVsbHB0
cik7CiB9CkBAIC00NDcsNyArNDUwLDcgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b246OnNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYgZGUKIAogdm9p
ZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnNldFJlbW90ZURlc2NyaXB0aW9uVGFzayhS
ZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiYmIGRlc2NyaXB0aW9uLCBWb2lkUHJvbWlzZSYg
cHJvbWlzZSkKIHsKLSAgICBpZiAobV9jbGllbnQtPmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9
PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVy
bmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBhdXRvIHJlc3VsdCA9IE1lZGlhRW5kcG9pbnRTZXNzaW9uRGVzY3JpcHRp
b246OmNyZWF0ZShXVEZNb3ZlKGRlc2NyaXB0aW9uKSwgKm1fc2RwUHJvY2Vzc29yKTsKQEAgLTQ3
MSw3ICs0NzQsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0UmVtb3Rl
RGVzY3JpcHRpb25UYXNrKFJlZlB0cjxSVENTZXNzaW9uRGVzYwogICAgIH0KIAogICAgIGJvb2wg
aXNJbml0aWF0b3IgPSBuZXdEZXNjcmlwdGlvbi0+dHlwZSgpID09IFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbjo6U2RwVHlwZTo6QW5zd2VyOwotICAgIGNvbnN0IFJ0cFRyYW5zY2VpdmVyVmVjdG9yJiB0
cmFuc2NlaXZlcnMgPSBtX2NsaWVudC0+Z2V0VHJhbnNjZWl2ZXJzKCk7CisgICAgY29uc3QgUnRw
VHJhbnNjZWl2ZXJWZWN0b3ImIHRyYW5zY2VpdmVycyA9IG1fcGVlckNvbm5lY3Rpb24uZ2V0VHJh
bnNjZWl2ZXJzKCk7CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlTWFwIHNlbmRTb3VyY2VNYXA7
CiAgICAgaWYgKGludGVybmFsTG9jYWxEZXNjcmlwdGlvbigpKQpAQCAtNTA2LDcgKzUwOSw3IEBA
IHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlvblRh
c2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlm
ICghdHJhbnNjZWl2ZXIpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHNlbmRlciA9IFJUQ1J0cFNl
bmRlcjo6Y3JlYXRlKG1lZGlhRGVzY3JpcHRpb24udHlwZSwgVmVjdG9yPFN0cmluZz4oKSwgbV9j
bGllbnQtPnNlbmRlckNsaWVudCgpKTsKKyAgICAgICAgICAgICAgICBhdXRvIHNlbmRlciA9IFJU
Q1J0cFNlbmRlcjo6Y3JlYXRlKG1lZGlhRGVzY3JpcHRpb24udHlwZSwgVmVjdG9yPFN0cmluZz4o
KSwgbV9wZWVyQ29ubmVjdGlvbi5zZW5kZXJDbGllbnQoKSk7CiAgICAgICAgICAgICAgICAgYXV0
byByZWNlaXZlciA9IGNyZWF0ZVJlY2VpdmVyKG1lZGlhRGVzY3JpcHRpb24ubWlkLCBtZWRpYURl
c2NyaXB0aW9uLnR5cGUsIG1lZGlhRGVzY3JpcHRpb24ubWVkaWFTdHJlYW1UcmFja0lkKTsKIAog
ICAgICAgICAgICAgICAgIGF1dG8gbmV3VHJhbnNjZWl2ZXIgPSBSVENSdHBUcmFuc2NlaXZlcjo6
Y3JlYXRlKFdURk1vdmUoc2VuZGVyKSwgV1RGTW92ZShyZWNlaXZlcikpOwpAQCAtNTE1LDcgKzUx
OCw3IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlw
dGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjCiAgICAgICAgICAgICAgICAgICAgIG5ld1Ry
YW5zY2VpdmVyLT5kaXNhYmxlU2VuZGluZ0RpcmVjdGlvbigpOwogCiAgICAgICAgICAgICAgICAg
dHJhbnNjZWl2ZXIgPSBuZXdUcmFuc2NlaXZlci5wdHIoKTsKLSAgICAgICAgICAgICAgICBtX2Ns
aWVudC0+YWRkVHJhbnNjZWl2ZXIoV1RGTW92ZShuZXdUcmFuc2NlaXZlcikpOworICAgICAgICAg
ICAgICAgIG1fcGVlckNvbm5lY3Rpb24uYWRkVHJhbnNjZWl2ZXIoV1RGTW92ZShuZXdUcmFuc2Nl
aXZlcikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTUzOSw3ICs1NDIsNyBAQCB2
b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0UmVtb3RlRGVzY3JpcHRpb25UYXNr
KFJlZlB0cjxSVENTZXNzaW9uRGVzYwogICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPmFkZFRy
YWNrKCpyZWNlaXZlci50cmFjaygpKTsKICAgICAgICAgICAgICAgICAgICAgdHJhY2tFdmVudE1l
ZGlhU3RyZWFtcy5hZGQoaWQsIFdURk1vdmUoc3RyZWFtKSk7CiAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBuZXdTdHJlYW0gPSBNZWRpYVN0cmVhbTo6
Y3JlYXRlKCptX2NsaWVudC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBNZWRpYVN0cmVhbVRy
YWNrVmVjdG9yKHsgcmVjZWl2ZXIudHJhY2soKSB9KSk7CisgICAgICAgICAgICAgICAgICAgIGF1
dG8gbmV3U3RyZWFtID0gTWVkaWFTdHJlYW06OmNyZWF0ZSgqbV9wZWVyQ29ubmVjdGlvbi5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIE1lZGlhU3RyZWFtVHJhY2tWZWN0b3IoeyByZWNlaXZlci50
cmFjaygpIH0pKTsKICAgICAgICAgICAgICAgICAgICAgbV9yZW1vdGVTdHJlYW1NYXAuYWRkKGlk
LCBuZXdTdHJlYW0uY29weVJlZigpKTsKICAgICAgICAgICAgICAgICAgICAgbGVnYWN5TWVkaWFT
dHJlYW1FdmVudHMuYXBwZW5kKE1lZGlhU3RyZWFtRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
YWRkc3RyZWFtRXZlbnQsIGZhbHNlLCBmYWxzZSwgbmV3U3RyZWFtLmNvcHlSZWYoKSkpOwogICAg
ICAgICAgICAgICAgICAgICB0cmFja0V2ZW50TWVkaWFTdHJlYW1zLmFkZChpZCwgV1RGTW92ZShu
ZXdTdHJlYW0pKTsKQEAgLTU0OSwxNCArNTUyLDE0IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
CiAgICAgICAgICAgICBWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFtPj4gc3RyZWFtczsKICAgICAg
ICAgICAgIGNvcHlWYWx1ZXNUb1ZlY3Rvcih0cmFja0V2ZW50TWVkaWFTdHJlYW1zLCBzdHJlYW1z
KTsKIAotICAgICAgICAgICAgbV9jbGllbnQtPmZpcmVFdmVudChSVENUcmFja0V2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLnRyYWNrRXZlbnQsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAgICAgIG1f
cGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50KFJUQ1RyYWNrRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkudHJhY2tFdmVudCwgZmFsc2UsIGZhbHNlLAogICAgICAgICAgICAgICAgICZyZWNlaXZlciwg
cmVjZWl2ZXIudHJhY2soKSwgV1RGTW92ZShzdHJlYW1zKSwgdHJhbnNjZWl2ZXIpKTsKICAgICAg
ICAgfQogICAgIH0KIAogICAgIC8vIEZpcmUgbGVnYWN5IGFkZHN0cmVhbSBldmVudHMuCiAgICAg
Zm9yIChhdXRvJiBldmVudCA6IGxlZ2FjeU1lZGlhU3RyZWFtRXZlbnRzKQotICAgICAgICBtX2Ns
aWVudC0+ZmlyZUV2ZW50KCpldmVudCk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2
ZW50KCpldmVudCk7CiAKICAgICBTaWduYWxpbmdTdGF0ZSBuZXdTaWduYWxpbmdTdGF0ZTsKIApA
QCAtNTg2LDkgKzU4OSw5IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRS
ZW1vdGVEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjCiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAotICAgIGlmIChuZXdTaWduYWxpbmdTdGF0ZSAhPSBtX2NsaWVudC0+aW50ZXJu
YWxTaWduYWxpbmdTdGF0ZSgpKSB7Ci0gICAgICAgIG1fY2xpZW50LT5zZXRTaWduYWxpbmdTdGF0
ZShuZXdTaWduYWxpbmdTdGF0ZSk7Ci0gICAgICAgIG1fY2xpZW50LT5maXJlRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc2lnbmFsaW5nc3RhdGVjaGFuZ2VFdmVudCwgZmFsc2UsIGZh
bHNlKSk7CisgICAgaWYgKG5ld1NpZ25hbGluZ1N0YXRlICE9IG1fcGVlckNvbm5lY3Rpb24uaW50
ZXJuYWxTaWduYWxpbmdTdGF0ZSgpKSB7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb24uc2V0U2ln
bmFsaW5nU3RhdGUobmV3U2lnbmFsaW5nU3RhdGUpOworICAgICAgICBtX3BlZXJDb25uZWN0aW9u
LmZpcmVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zaWduYWxpbmdzdGF0ZWNoYW5n
ZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKICAgICB9CiAKICAgICBwcm9taXNlLnJlc29sdmUobnVs
bHB0cik7CkBAIC02MzUsNyArNjM4LDcgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b246OmFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmIHJ0Y0NhbmRpZGF0ZSwKIAogdm9p
ZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0ZVRhc2soUlRDSWNl
Q2FuZGlkYXRlJiBydGNDYW5kaWRhdGUsIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYgcHJv
bWlzZSkKIHsKLSAgICBpZiAobV9jbGllbnQtPmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBT
aWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFs
U2lnbmFsaW5nU3RhdGUoKSA9PSBTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAoIWludGVybmFsUmVtb3RlRGVzY3JpcHRpb24oKSkgewpAQCAtNzExLDE0
ICs3MTQsMTQgQEAgUmVmUHRyPFJUQ1J0cFJlY2VpdmVyPiBNZWRpYUVuZHBvaW50UGVlckNvbm5l
Y3Rpb246OmNyZWF0ZVJlY2VpdmVyKGNvbnN0IFN0cmluZyYKICAgICAvLyBDcmVhdGUgYSBtdXRl
ZCByZW1vdGUgc291cmNlIHRoYXQgd2lsbCBiZSB1bm11dGVkIG9uY2UgbWVkaWEgc3RhcnRzIGFy
cml2aW5nLgogICAgIGF1dG8gcmVtb3RlU291cmNlID0gbV9tZWRpYUVuZHBvaW50LT5jcmVhdGVN
dXRlZFJlbW90ZVNvdXJjZSh0cmFuc2NlaXZlck1pZCwgc291cmNlVHlwZSk7CiAgICAgYXV0byBy
ZW1vdGVUcmFja1ByaXZhdGUgPSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKFdURk1v
dmUocmVtb3RlU291cmNlKSwgdHJhY2tJZCk7Ci0gICAgYXV0byByZW1vdGVUcmFjayA9IE1lZGlh
U3RyZWFtVHJhY2s6OmNyZWF0ZSgqbV9jbGllbnQtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
KnJlbW90ZVRyYWNrUHJpdmF0ZSk7CisgICAgYXV0byByZW1vdGVUcmFjayA9IE1lZGlhU3RyZWFt
VHJhY2s6OmNyZWF0ZSgqbV9wZWVyQ29ubmVjdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
ICpyZW1vdGVUcmFja1ByaXZhdGUpOwogCiAgICAgcmV0dXJuIFJUQ1J0cFJlY2VpdmVyOjpjcmVh
dGUoV1RGTW92ZShyZW1vdGVUcmFjaykpOwogfQogCiB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29u
bmVjdGlvbjo6cmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBSZWZQdHI8TWVkaWFT
dHJlYW1UcmFjaz4mJiB3aXRoVHJhY2ssIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYmIHBy
b21pc2UpCiB7Ci0gICAgUlRDUnRwVHJhbnNjZWl2ZXIqIHRyYW5zY2VpdmVyID0gbWF0Y2hUcmFu
c2NlaXZlcihtX2NsaWVudC0+Z2V0VHJhbnNjZWl2ZXJzKCksIFsmc2VuZGVyXSAoUlRDUnRwVHJh
bnNjZWl2ZXImIGN1cnJlbnQpIHsKKyAgICBSVENSdHBUcmFuc2NlaXZlciogdHJhbnNjZWl2ZXIg
PSBtYXRjaFRyYW5zY2VpdmVyKG1fcGVlckNvbm5lY3Rpb24uZ2V0VHJhbnNjZWl2ZXJzKCksIFsm
c2VuZGVyXSAoUlRDUnRwVHJhbnNjZWl2ZXImIGN1cnJlbnQpIHsKICAgICAgICAgcmV0dXJuIGN1
cnJlbnQuc2VuZGVyKCkgPT0gJnNlbmRlcjsKICAgICB9KTsKICAgICBBU1NFUlQodHJhbnNjZWl2
ZXIpOwpAQCAtNzM4LDcgKzc0MSw3IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
OjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIFJlZlB0cjxNZWRpCiAKIHZvaWQg
TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2tUYXNrKFJUQ1J0cFNlbmRl
ciYgc2VuZGVyLCBjb25zdCBTdHJpbmcmIG1pZCwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYg
d2l0aFRyYWNrLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmIHByb21pc2UpCiB7Ci0gICAg
aWYgKG1fY2xpZW50LT5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5nU3RhdGU6
OkNsb3NlZCkKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRl
KCkgPT0gU2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9t
ZWRpYUVuZHBvaW50LT5yZXBsYWNlU2VuZFNvdXJjZSh3aXRoVHJhY2stPnNvdXJjZSgpLCBtaWQp
OwpAQCAtNzU5LDggKzc2Miw4IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpt
YXJrQXNOZWVkaW5nTmVnb3RpYXRpb24oKQogCiAgICAgbV9uZWdvdGlhdGlvbk5lZWRlZCA9IHRy
dWU7CiAKLSAgICBpZiAobV9jbGllbnQtPmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBTaWdu
YWxpbmdTdGF0ZTo6U3RhYmxlKQotICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVOZWdvdGlhdGlv
bk5lZWRlZEV2ZW50KCk7CisgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxp
bmdTdGF0ZSgpID09IFNpZ25hbGluZ1N0YXRlOjpTdGFibGUpCisgICAgICAgIG1fcGVlckNvbm5l
Y3Rpb24uc2NoZWR1bGVOZWdvdGlhdGlvbk5lZWRlZEV2ZW50KCk7CiB9CiAKIHZvaWQgTWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uOjplbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcm
IGFjdGlvbikKQEAgLTc3MCw3ICs3NzMsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVj
dGlvbjo6ZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pCiAKIGJvb2wg
TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpsb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9y
U3RhdGUoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlIHR5cGUpIGNvbnN0CiB7Ci0gICAg
c3dpdGNoIChtX2NsaWVudC0+aW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpKSB7CisgICAgc3dpdGNo
IChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSkgewogICAgIGNhc2Ug
U2lnbmFsaW5nU3RhdGU6OlN0YWJsZToKICAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpPZmZlcjsKICAgICBjYXNlIFNpZ25hbGluZ1N0YXRlOjpI
YXZlTG9jYWxPZmZlcjoKQEAgLTc4OSw3ICs3OTIsNyBAQCBib29sIE1lZGlhRW5kcG9pbnRQZWVy
Q29ubmVjdGlvbjo6bG9jYWxEZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKFJUQ1Nlc3Npb25E
ZQogCiBib29sIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6cmVtb3RlRGVzY3JpcHRpb25U
eXBlVmFsaWRGb3JTdGF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGUgdHlwZSkgY29u
c3QKIHsKLSAgICBzd2l0Y2ggKG1fY2xpZW50LT5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkpIHsK
KyAgICBzd2l0Y2ggKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpKSB7
CiAgICAgY2FzZSBTaWduYWxpbmdTdGF0ZTo6U3RhYmxlOgogICAgICAgICByZXR1cm4gdHlwZSA9
PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOwogICAgIGNhc2UgU2lnbmFs
aW5nU3RhdGU6OkhhdmVMb2NhbE9mZmVyOgpAQCAtODU1LDE0ICs4NTgsMTQgQEAgdm9pZCBNZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmdvdEljZUNhbmRpZGF0ZShjb25zdCBTdHJpbmcmIG1p
ZCwgSWNlQ2FuZGlkYXQKIAogICAgIG1lZGlhRGVzY3JpcHRpb25zW21lZGlhRGVzY3JpcHRpb25J
bmRleF0uYWRkSWNlQ2FuZGlkYXRlKFdURk1vdmUoY2FuZGlkYXRlKSk7CiAKLSAgICBtX2NsaWVu
dC0+ZmlyZUV2ZW50KFJUQ0ljZUNhbmRpZGF0ZUV2ZW50OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBS
VENJY2VDYW5kaWRhdGU6OmNyZWF0ZShjYW5kaWRhdGVMaW5lLCBtaWQsIG1lZGlhRGVzY3JpcHRp
b25JbmRleCkpKTsKKyAgICBtX3BlZXJDb25uZWN0aW9uLmZpcmVFdmVudChSVENJY2VDYW5kaWRh
dGVFdmVudDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoY2Fu
ZGlkYXRlTGluZSwgbWlkLCBtZWRpYURlc2NyaXB0aW9uSW5kZXgpKSk7CiB9CiAKIHZvaWQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcyhjb25zdCBT
dHJpbmcmIG1pZCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgUnRwVHJh
bnNjZWl2ZXJWZWN0b3IgdHJhbnNjZWl2ZXJzID0gUnRwVHJhbnNjZWl2ZXJWZWN0b3IobV9jbGll
bnQtPmdldFRyYW5zY2VpdmVycygpKTsKKyAgICBSdHBUcmFuc2NlaXZlclZlY3RvciB0cmFuc2Nl
aXZlcnMgPSBSdHBUcmFuc2NlaXZlclZlY3RvcihtX3BlZXJDb25uZWN0aW9uLmdldFRyYW5zY2Vp
dmVycygpKTsKICAgICBSVENSdHBUcmFuc2NlaXZlciogbm90aWZ5aW5nVHJhbnNjZWl2ZXIgPSBt
YXRjaFRyYW5zY2VpdmVyQnlNaWQodHJhbnNjZWl2ZXJzLCBtaWQpOwogICAgIEFTU0VSVChub3Rp
ZnlpbmdUcmFuc2NlaXZlcik7CiAKQEAgLTg3NCw4ICs4NzcsOCBAQCB2b2lkIE1lZGlhRW5kcG9p
bnRQZWVyQ29ubmVjdGlvbjo6ZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoY29uc3QgU3RyaW5nJiBt
aWQpCiAgICAgICAgICAgICAmJiBjdXJyZW50LmljZVRyYW5zcG9ydCgpLmdhdGhlcmluZ1N0YXRl
KCkgIT0gUlRDSWNlVHJhbnNwb3J0OjpHYXRoZXJpbmdTdGF0ZTo6Q29tcGxldGU7CiAgICAgfSk7
CiAgICAgaWYgKCFzdGlsbEdhdGhlcmluZ1RyYW5zY2VpdmVyKSB7Ci0gICAgICAgIG1fY2xpZW50
LT5maXJlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIG51
bGxwdHIpKTsKLSAgICAgICAgbV9jbGllbnQtPnVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKEljZUdh
dGhlcmluZ1N0YXRlOjpDb21wbGV0ZSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2
ZW50KFJUQ0ljZUNhbmRpZGF0ZUV2ZW50OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBudWxscHRyKSk7
CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlSWNlR2F0aGVyaW5nU3RhdGUoSWNlR2F0
aGVyaW5nU3RhdGU6OkNvbXBsZXRlKTsKICAgICB9CiB9CiAKQEAgLTkyOCw3ICs5MzEsNyBAQCB2
b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6aWNlVHJhbnNwb3J0U3RhdGVDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYgbWlkLCBNZQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
LSAgICBSVENSdHBUcmFuc2NlaXZlciogdHJhbnNjZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVyQnlN
aWQobV9jbGllbnQtPmdldFRyYW5zY2VpdmVycygpLCBtaWQpOworICAgIFJUQ1J0cFRyYW5zY2Vp
dmVyKiB0cmFuc2NlaXZlciA9IG1hdGNoVHJhbnNjZWl2ZXJCeU1pZChtX3BlZXJDb25uZWN0aW9u
LmdldFRyYW5zY2VpdmVycygpLCBtaWQpOwogICAgIEFTU0VSVCh0cmFuc2NlaXZlcik7CiAKICAg
ICBSVENJY2VUcmFuc3BvcnQ6OlRyYW5zcG9ydFN0YXRlIHRyYW5zcG9ydFN0YXRlID0gc3RhdGlj
X2Nhc3Q8UlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZT4obWVkaWFFbmRwb2ludEljZVRy
YW5zcG9ydFN0YXRlKTsKQEAgLTkzNiwxMSArOTM5LDExIEBAIHZvaWQgTWVkaWFFbmRwb2ludFBl
ZXJDb25uZWN0aW9uOjppY2VUcmFuc3BvcnRTdGF0ZUNoYW5nZWQoY29uc3QgU3RyaW5nJiBtaWQs
IE1lCiAKICAgICAvLyBEZXRlcm1pbmUgaWYgdGhlIHNjcmlwdCBuZWVkcyB0byBiZSBub3RpZmll
ZC4KICAgICBWZWN0b3I8UlRDSWNlVHJhbnNwb3J0OjpUcmFuc3BvcnRTdGF0ZT4gdHJhbnNwb3J0
U3RhdGVzOwotICAgIGZvciAoYXV0byYgdHJhbnNjZWl2ZXIgOiBtX2NsaWVudC0+Z2V0VHJhbnNj
ZWl2ZXJzKCkpCisgICAgZm9yIChhdXRvJiB0cmFuc2NlaXZlciA6IG1fcGVlckNvbm5lY3Rpb24u
Z2V0VHJhbnNjZWl2ZXJzKCkpCiAgICAgICAgIHRyYW5zcG9ydFN0YXRlcy5hcHBlbmQodHJhbnNj
ZWl2ZXItPmljZVRyYW5zcG9ydCgpLnRyYW5zcG9ydFN0YXRlKCkpOwogCiAgICAgUlRDSWNlVHJh
bnNwb3J0OjpUcmFuc3BvcnRTdGF0ZSBkZXJpdmVkU3RhdGUgPSBkZXJpdmVBZ2dyZWdhdGVkSWNl
Q29ubmVjdGlvblN0YXRlKHRyYW5zcG9ydFN0YXRlcyk7Ci0gICAgbV9jbGllbnQtPnVwZGF0ZUlj
ZUNvbm5lY3Rpb25TdGF0ZShzdGF0aWNfY2FzdDxJY2VDb25uZWN0aW9uU3RhdGU+KGRlcml2ZWRT
dGF0ZSkpOworICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlSWNlQ29ubmVjdGlvblN0YXRlKHN0
YXRpY19jYXN0PEljZUNvbm5lY3Rpb25TdGF0ZT4oZGVyaXZlZFN0YXRlKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCmluZGV4IDNl
ZDNkZWExYmU1OTFmYzJkNjkyYzQ0YzFmNWU1Mzg0YzczMzM1OGEuLmNjZDI0MDkyZjBhNzI0Y2Vl
ZWYwZjk0NWU0ZDhkYmU2YTM5YjQ3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24u
aApAQCAtMjgsOCArMjgsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbl9oCi0jZGVmaW5lIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVj
dGlvbl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShXRUJfUlRDKQogCkBAIC01MSwxMSAr
NTAsMTEgQEAgdXNpbmcgTWVkaWFEZXNjcmlwdGlvblZlY3RvciA9IFZlY3RvcjxQZWVyTWVkaWFE
ZXNjcmlwdGlvbj47CiB1c2luZyBSdHBTZW5kZXJWZWN0b3IgPSBWZWN0b3I8UmVmUHRyPFJUQ1J0
cFNlbmRlcj4+OwogdXNpbmcgUnRwVHJhbnNjZWl2ZXJWZWN0b3IgPSBWZWN0b3I8UmVmUHRyPFJU
Q1J0cFRyYW5zY2VpdmVyPj47CiAKLWNsYXNzIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbiA6
IHB1YmxpYyBQZWVyQ29ubmVjdGlvbkJhY2tlbmQsIHB1YmxpYyBNZWRpYUVuZHBvaW50Q2xpZW50
IHsKK2NsYXNzIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBQZWVy
Q29ubmVjdGlvbkJhY2tlbmQsIHB1YmxpYyBNZWRpYUVuZHBvaW50Q2xpZW50IHsKIHB1YmxpYzoK
LSAgICBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24oUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xp
ZW50Kik7CisgICAgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uKFJUQ1BlZXJDb25uZWN0aW9u
Jik7CiAKLSAgICB2b2lkIGNyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucyYmLCBQZWVyQ29ubmVj
dGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRv
Q3JlYXRlT2ZmZXIoUlRDT2ZmZXJPcHRpb25zJiYpIGZpbmFsOwogICAgIHZvaWQgY3JlYXRlQW5z
d2VyKFJUQ0Fuc3dlck9wdGlvbnMmJiwgUGVlckNvbm5lY3Rpb246OlNlc3Npb25EZXNjcmlwdGlv
blByb21pc2UmJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uJiwgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJiYpIG92ZXJy
aWRlOwpAQCAtOTAsNyArODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcnVuVGFzayhGdW5jdGlv
bjx2b2lkICgpPiYmKTsKICAgICB2b2lkIHN0YXJ0UnVubmluZ1Rhc2tzKCk7CiAKLSAgICB2b2lk
IGNyZWF0ZU9mZmVyVGFzayhjb25zdCBSVENPZmZlck9wdGlvbnMmLCBQZWVyQ29ubmVjdGlvbjo6
U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYpOworICAgIHZvaWQgY3JlYXRlT2ZmZXJUYXNrKGNv
bnN0IFJUQ09mZmVyT3B0aW9ucyYpOwogICAgIHZvaWQgY3JlYXRlQW5zd2VyVGFzayhjb25zdCBS
VENBbnN3ZXJPcHRpb25zJiwgUGVlckNvbm5lY3Rpb246OlNlc3Npb25EZXNjcmlwdGlvblByb21p
c2UmKTsKIAogICAgIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbj4mJiwgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJik7CkBAIC0xMTMs
NyArMTEyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKGNv
bnN0IFN0cmluZyYgbWlkKSBvdmVycmlkZTsKICAgICB2b2lkIGljZVRyYW5zcG9ydFN0YXRlQ2hh
bmdlZChjb25zdCBTdHJpbmcmIG1pZCwgTWVkaWFFbmRwb2ludDo6SWNlVHJhbnNwb3J0U3RhdGUp
IG92ZXJyaWRlOwogCi0gICAgUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xpZW50KiBtX2NsaWVudDsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFFbmRwb2ludD4gbV9tZWRpYUVuZHBvaW50OwogCiAg
ICAgRnVuY3Rpb248dm9pZCAoKT4gbV9pbml0aWFsRGVmZXJyZWRUYXNrOwpAQCAtMTQ1LDUgKzE0
MywzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCX1JUQykKLQotI2VuZGlmIC8vIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggODkwMGVmYzE4ZTIwNmUyZTUyYmEzYjg0ZjUxNTM3
NDdhZmJiMjgzMy4uOWYyZWY1ZTY3NDNmZDFlYzZmZDliZDcwODgzYTZlMDVhNmY0NTczMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSU5DLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOSwxOSArMzAsNTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogI2luY2x1ZGUgIlBlZXJDb25uZWN0
aW9uQmFja2VuZC5oIgogCisjaWYgRU5BQkxFKFdFQl9SVEMpCisKKyNpbmNsdWRlICJKU1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uLmgiCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ+IGNyZWF0ZVBlZXJDb25uZWN0aW9uQmFja2VuZChQZWVyQ29ubmVjdGlvbkJhY2tl
bmRDbGllbnQqKQordm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZU9mZmVyKFJUQ09m
ZmVyT3B0aW9ucyYmIG9wdGlvbnMsIFBlZXJDb25uZWN0aW9uOjpTZXNzaW9uRGVzY3JpcHRpb25Q
cm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBBU1NFUlQoIW1fb2ZmZXJBbnN3ZXJQcm9taXNlKTsK
KworICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9vZmZlckFuc3dlclByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpOworICAg
IGRvQ3JlYXRlT2ZmZXIoV1RGTW92ZShvcHRpb25zKSk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjpjcmVhdGVPZmZlclN1Y2NlZWRlZChTdHJpbmcmJiBzZHApCiB7Ci0gICAgcmV0
dXJuIG51bGxwdHI7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX3Bl
ZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0
YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNT
RVJUKG1fb2ZmZXJBbnN3ZXJQcm9taXNlKTsKKyAgICBtX29mZmVyQW5zd2VyUHJvbWlzZS0+cmVz
b2x2ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246
OlNkcFR5cGU6Ok9mZmVyLCBXVEZNb3ZlKHNkcCkpKTsKKyAgICBtX29mZmVyQW5zd2VyUHJvbWlz
ZSA9IE51bGxvcHQ7CiB9CiAKLUNyZWF0ZVBlZXJDb25uZWN0aW9uQmFja2VuZCBQZWVyQ29ubmVj
dGlvbkJhY2tlbmQ6OmNyZWF0ZSA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uQmFja2VuZDsKK3ZvaWQg
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVPZmZlckZhaWxlZChFeGNlcHRpb25Db2RlIGVj
LCBTdHJpbmcmJiBlcnJvcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAg
aWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25u
ZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgICAgICByZXR1cm47CisK
KyAgICBBU1NFUlQobV9vZmZlckFuc3dlclByb21pc2UpOworICAgIG1fb2ZmZXJBbnN3ZXJQcm9t
aXNlLT5yZWplY3QoZWMsIFdURk1vdmUoZXJyb3IpKTsKKyAgICBtX29mZmVyQW5zd2VyUHJvbWlz
ZSA9IE51bGxvcHQ7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuaAppbmRleCBmY2QyMzM3Mjk4ZGNkNjhhNzgxNzdkMmM2MzIzYTE3MTYwN2M4NmM0Li4y
NmYzNjg4YWRmYmI3MzA0OGQ4ZWM1NmJlNTM3YjM3MDY0NWI0OGI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmgKQEAgLTI4LDggKzI4LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmRfaAotI2RlZmluZSBQZWVyQ29ubmVjdGlvbkJhY2tlbmRfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIApAQCAtNDUsNiArNDQsNyBAQCBj
bGFzcyBNZWRpYVN0cmVhbVRyYWNrOwogY2xhc3MgUGVlckNvbm5lY3Rpb25CYWNrZW5kOwogY2xh
c3MgUlRDQ29uZmlndXJhdGlvbjsKIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZTsKK2NsYXNzIFJUQ1Bl
ZXJDb25uZWN0aW9uOwogY2xhc3MgUlRDUnRwUmVjZWl2ZXI7CiBjbGFzcyBSVENSdHBTZW5kZXI7
CiBjbGFzcyBSVENSdHBTZW5kZXJDbGllbnQ7CkBAIC01Niw0MSArNTYsMjggQEAgY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIHN0cnVjdCBSVENBbnN3ZXJPcHRpb25zOwogc3RydWN0IFJU
Q09mZmVyT3B0aW9uczsKIAordXNpbmcgRXhjZXB0aW9uQ29kZSA9IGludDsKKwogbmFtZXNwYWNl
IFBlZXJDb25uZWN0aW9uIHsKIHR5cGVkZWYgRE9NUHJvbWlzZTxSVENTZXNzaW9uRGVzY3JpcHRp
b24+IFNlc3Npb25EZXNjcmlwdGlvblByb21pc2U7CiB0eXBlZGVmIERPTVByb21pc2U8c3RkOjpu
dWxscHRyX3Q+IFZvaWRQcm9taXNlOwogdHlwZWRlZiBET01Qcm9taXNlPFJUQ1N0YXRzUmVzcG9u
c2U+IFN0YXRzUHJvbWlzZTsKIH0KIAotY2xhc3MgUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xpZW50
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNj
ZWl2ZXI+PiYgZ2V0VHJhbnNjZWl2ZXJzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUlRDUnRw
U2VuZGVyQ2xpZW50JiBzZW5kZXJDbGllbnQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZpcmVF
dmVudChFdmVudCYpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBhZGRUcmFuc2NlaXZlcihSZWZQ
dHI8UlRDUnRwVHJhbnNjZWl2ZXI+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2lnbmFs
aW5nU3RhdGUoUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUljZUdhdGhlcmluZ1N0YXRlKFBlZXJDb25uZWN0aW9uU3RhdGVz
OjpJY2VHYXRoZXJpbmdTdGF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJY2VDb25u
ZWN0aW9uU3RhdGUoUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUNvbm5lY3Rpb25TdGF0ZSkgPSAw
OwotCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlTmVnb3RpYXRpb25OZWVkZWRFdmVudCgpID0g
MDsKLQotICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpT
aWduYWxpbmdTdGF0ZSBpbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgY29uc3QgPSAwOwotICAgIHZp
cnR1YWwgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlIGludGVybmFsSWNl
R2F0aGVyaW5nU3RhdGUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBQZWVyQ29ubmVjdGlvblN0
YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlIGludGVybmFsSWNlQ29ubmVjdGlvblN0YXRlKCkgY29u
c3QgPSAwOwotCi0gICAgdmlydHVhbCB+UGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xpZW50KCkgeyB9
Ci19OwotCi10eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxQZWVyQ29ubmVjdGlvbkJhY2tlbmQ+ICgq
Q3JlYXRlUGVlckNvbm5lY3Rpb25CYWNrZW5kKShQZWVyQ29ubmVjdGlvbkJhY2tlbmRDbGllbnQq
KTsKK3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPFBlZXJDb25uZWN0aW9uQmFja2VuZD4gKCpDcmVh
dGVQZWVyQ29ubmVjdGlvbkJhY2tlbmQpKFJUQ1BlZXJDb25uZWN0aW9uJik7CiAKIGNsYXNzIFBl
ZXJDb25uZWN0aW9uQmFja2VuZCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IENyZWF0ZVBlZXJDb25uZWN0aW9uQmFja2VuZCBjcmVhdGU7CisKKyAgICBQZWVyQ29ubmVjdGlv
bkJhY2tlbmQoUlRDUGVlckNvbm5lY3Rpb24mIHBlZXJDb25uZWN0aW9uKSA6IG1fcGVlckNvbm5l
Y3Rpb24ocGVlckNvbm5lY3Rpb24pIHsgfQogICAgIHZpcnR1YWwgflBlZXJDb25uZWN0aW9uQmFj
a2VuZCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9u
cyYmLCBQZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYmKSA9IDA7Cisg
ICAgdm9pZCBjcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJiwgUGVlckNvbm5lY3Rpb246OlNl
c3Npb25EZXNjcmlwdGlvblByb21pc2UmJik7CisgICAgdmlydHVhbCB2b2lkIGRvQ3JlYXRlT2Zm
ZXIoUlRDT2ZmZXJPcHRpb25zJiYpID0gMDsKKyAgICB2b2lkIGNyZWF0ZU9mZmVyU3VjY2VlZGVk
KFN0cmluZyYmKTsKKyAgICB2b2lkIGNyZWF0ZU9mZmVyRmFpbGVkKEV4Y2VwdGlvbkNvZGUsIFN0
cmluZyYmKTsKKwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9u
cyYmLCBQZWVyQ29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYmKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRp
b24mLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJikgPSAwOwpAQCAtMTIwLDEwICsxMDcs
MTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhck5lZ290aWF0aW9uTmVlZGVkU3Rh
dGUoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3Qg
U3RyaW5nJiBhY3Rpb24pID0gMDsKKworcHJvdGVjdGVkOgorICAgIFJUQ1BlZXJDb25uZWN0aW9u
JiBtX3BlZXJDb25uZWN0aW9uOworICAgIE9wdGlvbmFsPFBlZXJDb25uZWN0aW9uOjpTZXNzaW9u
RGVzY3JpcHRpb25Qcm9taXNlPiBtX29mZmVyQW5zd2VyUHJvbWlzZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQotCi0jZW5kaWYgLy8g
UGVlckNvbm5lY3Rpb25CYWNrZW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOWNmYTk4NWNiYWE2
MDAyYmFjY2M2NmI4NDE0YTZiNTg2ZjA5NzFjYS4uNmVjM2U5MmZhMWM0MjNiZTc5ZDZlMDVlMmFk
OWIyZTdiMDhlNTU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgUmVmPFJU
Q1BlZXJDb25uZWN0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQKIAogUlRDUGVlckNvbm5lY3Rpb246OlJUQ1BlZXJDb25uZWN0aW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01PYmplY3Qo
JmNvbnRleHQpCi0gICAgLCBtX2JhY2tlbmQoUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGUo
dGhpcykpCisgICAgLCBtX2JhY2tlbmQoUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGUoKnRo
aXMpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggMTdmOGVmNzcxOTYwMjJjYjkxOTgxY2RkZjNl
NTU5MTllNzE0M2E1OC4uNzU5MTQ3YjYyOTBhYjA1MzZjZjZjMDVkYWQ0NzRmOTgzZjljZWM0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24uaApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtLmgiCi0jaW5j
bHVkZSAiUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgiCiAjaW5jbHVkZSAiUlRDT2ZmZXJBbnN3ZXJP
cHRpb25zLmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNjZWl2ZXIuaCIKICNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKQEAgLTU2LDcgKzU1LDcgQEAgY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25F
cnJvckNhbGxiYWNrOwogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOwogY2xhc3MgUlRDU3Rh
dHNDYWxsYmFjazsKIAotY2xhc3MgUlRDUGVlckNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgUmVm
Q291bnRlZDxSVENQZWVyQ29ubmVjdGlvbj4sIHB1YmxpYyBQZWVyQ29ubmVjdGlvbkJhY2tlbmRD
bGllbnQsIHB1YmxpYyBSVENSdHBTZW5kZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJ
bmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIFJUQ1BlZXJDb25uZWN0
aW9uIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUGVlckNvbm5lY3Rpb24+LCBwdWJsaWMg
UlRDUnRwU2VuZGVyQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVi
bGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSVENQZWVyQ29u
bmVjdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKICAgICB+UlRDUGVlckNv
bm5lY3Rpb24oKTsKQEAgLTY5LDcgKzY4LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9y
PFJlZlB0cjxSVENSdHBTZW5kZXI+PiYgZ2V0U2VuZGVycygpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNjZWl2ZXJTZXQtPmdldFNlbmRlcnMoKTsgfQogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRD
UnRwUmVjZWl2ZXI+PiYgZ2V0UmVjZWl2ZXJzKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2NlaXZl
clNldC0+Z2V0UmVjZWl2ZXJzKCk7IH0KLSAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFJUQ1J0cFRy
YW5zY2VpdmVyPj4mIGdldFRyYW5zY2VpdmVycygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdHJh
bnNjZWl2ZXJTZXQtPmxpc3QoKTsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJh
bnNjZWl2ZXI+PiYgZ2V0VHJhbnNjZWl2ZXJzKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2NlaXZl
clNldC0+bGlzdCgpOyB9CiAKICAgICAvLyBQYXJ0IG9mIGxlZ2FjeSBNZWRpYVN0cmVhbS1iYXNl
ZCBBUEkgKG1vc3RseSBpbXBsZW1lbnRlZCBhcyBKUyBidWlsdC1pbnMpCiAgICAgVmVjdG9yPFJl
ZlB0cjxNZWRpYVN0cmVhbT4+IGdldFJlbW90ZVN0cmVhbXMoKSBjb25zdCB7IHJldHVybiBtX2Jh
Y2tlbmQtPmdldFJlbW90ZVN0cmVhbXMoKTsgfQpAQCAtMTI2LDYgKzEyNSwyMCBAQCBwdWJsaWM6
CiAgICAgLy8gVXNlZCBmb3IgdGVzdGluZyB3aXRoIGEgbW9jawogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pOwogCisgICAg
Ly8gQVBJIHVzZWQgYnkgUGVlckNvbm5lY3Rpb25CYWNrZW5kIGFuZCByZWxhdGl2ZXMKKyAgICB2
b2lkIGFkZFRyYW5zY2VpdmVyKFJlZlB0cjxSVENSdHBUcmFuc2NlaXZlcj4mJik7CisgICAgdm9p
ZCBzZXRTaWduYWxpbmdTdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUp
OworICAgIHZvaWQgdXBkYXRlSWNlR2F0aGVyaW5nU3RhdGUoUGVlckNvbm5lY3Rpb25TdGF0ZXM6
OkljZUdhdGhlcmluZ1N0YXRlKTsKKyAgICB2b2lkIHVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlKTsKKworICAgIHZvaWQgc2No
ZWR1bGVOZWdvdGlhdGlvbk5lZWRlZEV2ZW50KCk7CisKKyAgICBSVENSdHBTZW5kZXJDbGllbnQm
IHNlbmRlckNsaWVudCgpIHsgcmV0dXJuICp0aGlzOyB9CisgICAgdm9pZCBmaXJlRXZlbnQoRXZl
bnQmKTsKKyAgICBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUgaW50ZXJuYWxT
aWduYWxpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbmFsaW5nU3RhdGU7IH0KKyAgICBQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGUgaW50ZXJuYWxJY2VHYXRoZXJp
bmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWNlR2F0aGVyaW5nU3RhdGU7IH0KKyAgICBQZWVy
Q29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlIGludGVybmFsSWNlQ29ubmVjdGlv
blN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pY2VDb25uZWN0aW9uU3RhdGU7IH0KKwogcHJpdmF0
ZToKICAgICBSVENQZWVyQ29ubmVjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKQEAg
LTE0MCwyMCArMTUzLDYgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAgICAvLyBQZWVyQ29ubmVjdGlvbkJhY2tlbmRDbGll
bnQKLSAgICB2b2lkIGFkZFRyYW5zY2VpdmVyKFJlZlB0cjxSVENSdHBUcmFuc2NlaXZlcj4mJikg
ZmluYWw7Ci0gICAgdm9pZCBzZXRTaWduYWxpbmdTdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6
U2lnbmFsaW5nU3RhdGUpIGZpbmFsOwotICAgIHZvaWQgdXBkYXRlSWNlR2F0aGVyaW5nU3RhdGUo
UGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlKSBmaW5hbDsKLSAgICB2b2lk
IHVwZGF0ZUljZUNvbm5lY3Rpb25TdGF0ZShQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVj
dGlvblN0YXRlKSBmaW5hbDsKLQotICAgIHZvaWQgc2NoZWR1bGVOZWdvdGlhdGlvbk5lZWRlZEV2
ZW50KCkgZmluYWw7Ci0KLSAgICBSVENSdHBTZW5kZXJDbGllbnQmIHNlbmRlckNsaWVudCgpIGZp
bmFsIHsgcmV0dXJuICp0aGlzOyB9Ci0gICAgdm9pZCBmaXJlRXZlbnQoRXZlbnQmKSBmaW5hbDsK
LSAgICBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUgaW50ZXJuYWxTaWduYWxp
bmdTdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2lnbmFsaW5nU3RhdGU7IH0KLSAgICBQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGUgaW50ZXJuYWxJY2VHYXRoZXJp
bmdTdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWNlR2F0aGVyaW5nU3RhdGU7IH0KLSAg
ICBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlQ29ubmVjdGlvblN0YXRlIGludGVybmFsSWNlQ29u
bmVjdGlvblN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pY2VDb25uZWN0aW9uU3RhdGU7
IH0KLQogICAgIC8vIFJUQ1J0cFNlbmRlckNsaWVudAogICAgIHZvaWQgcmVwbGFjZVRyYWNrKFJU
Q1J0cFNlbmRlciYsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBQZWVyQ29ubmVjdGlvbjo6
Vm9pZFByb21pc2UmJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YWE4YzgwOTNiY2EwYzI0MjIyYjljMzIwNDA3
MGY3OTk1ZDhmMmM4Li42NGNlYTA2ZDI1MWNkYWVmNzZkNGJiMzFmYWRiODVmZjQ1MzkzNTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNjA2LDYgKzE2MDYsNyBAQAogCQk0MUQwMTVDQjBGNEI1QzcxMDA0QTY2MkYgLyogQ29u
dGVudFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFEMDE1QzkwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmNwcCAqLzsgfTsKIAkJ
NDFFMUIxRDAwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFCMUNBMEZGNTk4NjkwMDU3
NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5jcHAgKi87IH07CiAJCTQxRTFCMUQxMEZGNTk4NjkwMDU3
NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFFMUIxQ0IwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2Vy
LmggKi87IH07CisJCTQxRTQwODM5MURDQjc0ODkwMEVGQ0UxOSAvKiBQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFFNDA4MzgxRENCNzQ3OTAwRUZDRTE5IC8qIFBlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgKi87
IH07CiAJCTQxRjA2MjE0MEY1RjE5MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJlc291
cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYw
NjIxMjBGNUYxOTI2MDBBMDdFQUMgLyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oICovOyB9
OwogCQk0MUYwNjIxNTBGNUYxOTI2MDBBMDdFQUMgLyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJj
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYw
NjIxMzBGNUYxOTI2MDBBMDdFQUMgLyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAgKi87
IH07CiAJCTQxRjA2NkU0MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2NkUyMEY2
NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODY2OSw2ICs4NjcwLDcgQEAKIAkJNDFF
MUIxQ0EwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0V29ya2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMUIxQ0IwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29y
a2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFic3RyYWN0V29ya2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTFCMUNDMEZGNTk4NjkwMDU3NkIzQiAv
KiBBYnN0cmFjdFdvcmtlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWJzdHJhY3RXb3Jr
ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUU0MDgzODFEQ0I3NDc5MDBF
RkNFMTkgLyogUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxRjA2MjEyMEY1RjE5MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRh
YmFzZVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
ckRhdGFiYXNlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYy
MTMwRjVGMTkyNjAwQTA3RUFDIC8qIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJj
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRjA2NkUyMEY2NEJDRjYwMEEw
N0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0R2xvYmFsT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNDg4Miw2ICsxNDg4NCw3IEBACiAJCQkJMDcwNEE0MDMxRDZERTlGMTAwODZEQ0RCIC8qIE92
ZXJjb25zdHJhaW5lZEVycm9yLmlkbCAqLywKIAkJCQkwNzJBNzAzRTFENkU4RjYyMDBERjBBRkMg
LyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oICovLAogCQkJCTA3MkE3MDNGMUQ2RThGNjIw
MERGMEFGQyAvKiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmlkbCAqLywKKwkJCQk0MUU0MDgz
ODFEQ0I3NDc5MDBFRkNFMTkgLyogUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAqLywKIAkJCQk1
RTJDNDM0RDFCQ0VFMkU1MDAwMUUyQkMgLyogUGVlckNvbm5lY3Rpb25CYWNrZW5kLmggKi8sCiAJ
CQkJNUUyQzQzNEYxQkNFRTJFNTAwMDFFMkJDIC8qIFJUQ0NvbmZpZ3VyYXRpb24uY3BwICovLAog
CQkJCTA3QUI5OTY1MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9uLmggKi8sCkBA
IC0yODYwMiw2ICsyODYwNSw3IEBACiAJCQkJMzFCQzc0MkQxQUFGRjQ1QzAwNkI0MzQwIC8qIENT
U0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDQUU5
RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5NERFNUM4MTFEN0YzQTE0MDAxNjRGMkEgLyogQ1NTQXRSdWxlSUQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDFFNDA4MzkxRENCNzQ4OTAwRUZDRTE5IC8qIFBlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkQ2QUY4QjE1RUYyNUU1MDA4Qjcx
MTAgLyogQ1NTQmFzaWNTaGFwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE2QTg0RjkxNEM4
NUNDQzAwMjk3N0RGIC8qIENTU0JvcmRlckltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
Mjc0QjMxMTQwRUJFRDgwMEVBREZBNiAvKiBDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>