<?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>231059</bug_id>
          
          <creation_ts>2021-09-30 20:52:48 -0700</creation_ts>
          <short_desc>[GStreamer] fast/mediastream/video-rotation tests are failing due to missing TestController::takeViewPortSnapshot</short_desc>
          <delta_ts>2021-10-18 06:08:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229792</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lauro Moura">lmoura</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1799156</commentid>
    <comment_count>0</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-09-30 20:52:48 -0700</bug_when>
    <thetext>fast/mediastream/video-rotation.html
fast/mediastream/video-rotation-gpu-process-crash.html

Added in 242095@main and 242172@main respectively.

Test fails with an empty ErrorEvent raised trying to load a dataURL image from testRunner.takeViewPortSnapshot (new method, only implemented in Cocoa).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801021</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-10-06 04:51:42 -0700</bug_when>
    <thetext>Also, WKPageSetMockCameraOrientation is not implemented for non-cocoa ports...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805490</commentid>
    <comment_count>2</comment_count>
      <attachid>441572</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-10-18 01:55:02 -0700</bug_when>
    <thetext>Created attachment 441572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805496</commentid>
    <comment_count>3</comment_count>
      <attachid>441572</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-10-18 02:31:52 -0700</bug_when>
    <thetext>Comment on attachment 441572
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3013
&gt; +        GST_DEBUG_OBJECT(pad.get(), &quot;No sticky tag event, applying no rotation.&quot;);

This message is confusing, since it says you&apos;re not applying rotation but you&apos;re applying orientation in the end. Or maybe I&apos;m misunderstanding...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805508</commentid>
    <comment_count>4</comment_count>
      <attachid>441572</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-10-18 03:16:21 -0700</bug_when>
    <thetext>Comment on attachment 441572
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3013
&gt;&gt; +        GST_DEBUG_OBJECT(pad.get(), &quot;No sticky tag event, applying no rotation.&quot;);
&gt; 
&gt; This message is confusing, since it says you&apos;re not applying rotation but you&apos;re applying orientation in the end. Or maybe I&apos;m misunderstanding...

Ah yes, bad consequence of the refactor, this was previously in !tagsEvent scope. Nice catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805549</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-10-18 06:07:33 -0700</bug_when>
    <thetext>Committed r284368 (243153@main): &lt;https://commits.webkit.org/243153@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805550</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-18 06:08:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/84367556&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441572</attachid>
            <date>2021-10-18 01:55:02 -0700</date>
            <delta_ts>2021-10-18 02:31:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231059-20211018015500.patch</filename>
            <type>text/plain</type>
            <size>31050</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3YTE5OTA1ZmM4MmEw
MjVlNjhiMDM1NDk4MzlkOTRjNzlkOTM4Ni4uYWZjY2Y4ZjI2YzBjZmI0ZjA2NzRlNmY4Y2QxYjEw
YjY4ZWVlYjk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTE4ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBmYXN0L21lZGlhc3RyZWFtL3ZpZGVvLXJvdGF0aW9uIHRlc3RzIGFyZSBmYWlsaW5nIGR1ZSB0
byBtaXNzaW5nIFRlc3RDb250cm9sbGVyOjp0YWtlVmlld1BvcnRTbmFwc2hvdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMDU5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHZpZGVvIG9yaWVudGF0
aW9uIGFuZCBtaXJyb3Jpbmcgc3VwcG9ydCB0byB0aGUgR1N0cmVhbWVyIG1vY2sgdmlkZW8gc291
cmNlLCBhbGwgdGhlIHdheQorICAgICAgICB0byB0aGUgbWVkaWEgcGxheWVyLiBUaGUgdmlkZW8g
c2luayBoYWQgdG8gYmUgYWRhcHRlZCwgdG8gY2F0Y2ggdGFnIGV2ZW50cyBhbmQgdHJpZ2dlcgor
ICAgICAgICBvcmllbnRhdGlvbiB1cGRhdGUgaW4gdGhlIHBsYXllci4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HTFZpZGVvU2lua0dTdHJlYW1lci5jcHA6CisgICAg
ICAgICh3ZWJLaXRHTFZpZGVvU2lua1NldE1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRWaWRlb09yaWVudGF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlVmlkZW9PcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0
ZVZpZGVvU2l6ZUFuZE9yaWVudGF0aW9uRnJvbUNhcHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVHU3RyZWFtZXI6Ok1lZGlhU2FtcGxlR1N0cmVh
bWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVJbWFn
ZVNhbXBsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2Ft
cGxlR1N0cmVhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUdTdHJlYW1lcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVhdGVJ
bWFnZVNhbXBsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VHU3RyZWFtZXI6OnVwZGF0ZVNh
bXBsZUJ1ZmZlcik6CisKIDIwMjEtMTAtMTYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0gTW9jayB2aWRlbyBzb3VyY2UgYmFj
a2dyb3VuZCBub3QgZnVsbHkgZmlsbGVkIGZvciBjdXN0b20gdmlkZW8gcmVzb2x1dGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAwOTZhNWRkYzQ0NWE1ODFhNzQyM2EwZGM5ZGE3OTE2YjU1M2UzN2EyLi5kM2E3MzE5
MTk3YzlhZWEyMGJhMjE0NjJhNDM2ZTNkOWQ5N2RhN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDIxLTEwLTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1N0cmVhbWVyXSBmYXN0L21lZGlhc3RyZWFtL3ZpZGVvLXJvdGF0aW9uIHRl
c3RzIGFyZSBmYWlsaW5nIGR1ZSB0byBtaXNzaW5nIFRlc3RDb250cm9sbGVyOjp0YWtlVmlld1Bv
cnRTbmFwc2hvdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMxMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IHNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlIGZvciBHU3RyZWFtZXIg
cG9ydHMuIEJlY2F1c2UgbWVkaWEgY2FwdHVyZSBydW5zIGluCisgICAgICAgIHRoZSBXZWJQcm9j
ZXNzIGZvciB0aG9zZSBwb3J0cywgd2UgbmVlZCBhIG5ldyBJUEMgbWVzc2FnZSwgc2VudCBmcm9t
IHRoZSBVSVByb2Nlc3MgdG8gdGhlCisgICAgICAgIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldE1vY2tDYW1lcmFP
cmllbnRhdGlvbik6CisgICAgICAgIChXS1BhZ2VJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjEtMTAtMTcgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXggIzM6IEFkb3B0IGF0dHJpYnV0
aW9uIEFWQ2FwdHVyZVNlc3Npb24gU1BJIGZvciBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dMVmlkZW9TaW5rR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HTFZp
ZGVvU2lua0dTdHJlYW1lci5jcHAKaW5kZXggMmRhODgzZDg0MGNhZmYxYzMxNDZkNzExYWM2MTM5
Mzk3NTdkZjI0OS4uMzZmZjRkMTk1YzRhYjM2YjAwMWY4NTg0MmE5YjQ4ODdmYzgyYTIxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dMVmlk
ZW9TaW5rR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvR0xWaWRlb1NpbmtHU3RyZWFtZXIuY3BwCkBAIC0yNTUsNyArMjU1LDE2IEBA
IHZvaWQgd2ViS2l0R0xWaWRlb1NpbmtTZXRNZWRpYVBsYXllclByaXZhdGUoV2ViS2l0R0xWaWRl
b1NpbmsqIHNpbmssIE1lZGlhUGxheWVyCiAgICAgfSksIHBsYXllcik7CiAKICAgICBHUmVmUHRy
PEdzdFBhZD4gcGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHByaXYt
PmFwcFNpbmsuZ2V0KCksICJzaW5rIikpOwotICAgIGdzdF9wYWRfYWRkX3Byb2JlKHBhZC5nZXQo
KSwgc3RhdGljX2Nhc3Q8R3N0UGFkUHJvYmVUeXBlPihHU1RfUEFEX1BST0JFX1RZUEVfUFVTSCB8
IEdTVF9QQURfUFJPQkVfVFlQRV9RVUVSWV9ET1dOU1RSRUFNIHwgR1NUX1BBRF9QUk9CRV9UWVBF
X0VWRU5UX0ZMVVNIKSwgW10gKEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywgIGdwb2lu
dGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9iZVJldHVybiB7CisgICAgZ3N0X3BhZF9hZGRfcHJv
YmUocGFkLmdldCgpLCBzdGF0aWNfY2FzdDxHc3RQYWRQcm9iZVR5cGU+KEdTVF9QQURfUFJPQkVf
VFlQRV9QVVNIIHwgR1NUX1BBRF9QUk9CRV9UWVBFX1FVRVJZX0RPV05TVFJFQU0gfCBHU1RfUEFE
X1BST0JFX1RZUEVfRVZFTlRfRkxVU0ggfCBHU1RfUEFEX1BST0JFX1RZUEVfRVZFTlRfRE9XTlNU
UkVBTSksIFtdKEdzdFBhZCosIEdzdFBhZFByb2JlSW5mbyogaW5mbywgZ3BvaW50ZXIgdXNlckRh
dGEpIC0+IEdzdFBhZFByb2JlUmV0dXJuIHsKKyAgICAgICAgYXV0byogcGxheWVyID0gc3RhdGlj
X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKj4odXNlckRhdGEpOworCisgICAgICAg
IGlmIChpbmZvLT50eXBlICYgR1NUX1BBRF9QUk9CRV9UWVBFX0VWRU5UX0RPV05TVFJFQU0gJiYg
R1NUX0VWRU5UX1RZUEUoR1NUX1BBRF9QUk9CRV9JTkZPX0VWRU5UKGluZm8pKSA9PSBHU1RfRVZF
TlRfVEFHKSB7CisgICAgICAgICAgICBHc3RUYWdMaXN0KiB0YWdMaXN0OworICAgICAgICAgICAg
Z3N0X2V2ZW50X3BhcnNlX3RhZyhHU1RfUEFEX1BST0JFX0lORk9fRVZFTlQoaW5mbyksICZ0YWdM
aXN0KTsKKyAgICAgICAgICAgIHBsYXllci0+dXBkYXRlVmlkZW9PcmllbnRhdGlvbih0YWdMaXN0
KTsKKyAgICAgICAgICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOworICAgICAgICB9CisKICAg
ICAgICAgLy8gSW4gc29tZSBwbGF0Zm9ybXMgKGUuZy4gT3Blbk1BWCBvbiB0aGUgUmFzcGJlcnJ5
IFBpKSB3aGVuIGEgcmVzb2x1dGlvbiBjaGFuZ2Ugb2NjdXJzIHRoZQogICAgICAgICAvLyBwaXBl
bGluZSBoYXMgdG8gYmUgZHJhaW5lZCBiZWZvcmUgYSBmcmFtZSB3aXRoIHRoZSBuZXcgcmVzb2x1
dGlvbiBjYW4gYmUgZGVjb2RlZC4KICAgICAgICAgLy8gSW4gdGhpcyBjb250ZXh0LCBpdCdzIGlt
cG9ydGFudCB0aGF0IHdlIGRvbid0IGhvbGQgcmVmZXJlbmNlcyB0byBhbnkgcHJldmlvdXMgZnJh
bWUKQEAgLTI3Miw3ICsyODEsNiBAQCB2b2lkIHdlYktpdEdMVmlkZW9TaW5rU2V0TWVkaWFQbGF5
ZXJQcml2YXRlKFdlYktpdEdMVmlkZW9TaW5rKiBzaW5rLCBNZWRpYVBsYXllcgogICAgICAgICAg
ICAgR1NUX0RFQlVHKCJBY3RpbmcgdXBvbiBmbHVzaC1zdGFydCBldmVudCIpOwogICAgICAgICB9
CiAKLSAgICAgICAgYXV0byogcGxheWVyID0gc3RhdGljX2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyKj4odXNlckRhdGEpOwogICAgICAgICBwbGF5ZXItPmZsdXNoQ3VycmVudEJ1ZmZl
cigpOwogICAgICAgICByZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKICAgICB9LCBwbGF5ZXIsIG51
bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCAyMTM1MjA3YzA1ZWZlNWFmNTZhYTYyOGQ2MjQzNTY5ZWNjYWVhM2EyLi4zMGI1NTM2
MDg0YTBhYWQ0ZmExMTk2NDY5YjZhZjc5ZWE4ZDI0MDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjk0NSwyNiArMjk0NSwxNiBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVwYWludCgpCiAgICAgbV9kcmF3Q29u
ZGl0aW9uLm5vdGlmeU9uZSgpOwogfQogCi1zdGF0aWMgSW1hZ2VPcmllbnRhdGlvbiBnZXRWaWRl
b09yaWVudGF0aW9uKEdzdEVsZW1lbnQqIHNpbmspCitzdGF0aWMgSW1hZ2VPcmllbnRhdGlvbiBn
ZXRWaWRlb09yaWVudGF0aW9uKGNvbnN0IEdzdFRhZ0xpc3QqIHRhZ0xpc3QpCiB7Ci0gICAgR1Jl
ZlB0cjxHc3RQYWQ+IHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChz
aW5rLCAic2luayIpKTsKLSAgICBBU1NFUlQocGFkKTsKLSAgICBHUmVmUHRyPEdzdEV2ZW50PiB0
YWdzRXZlbnQgPSBhZG9wdEdSZWYoZ3N0X3BhZF9nZXRfc3RpY2t5X2V2ZW50KHBhZC5nZXQoKSwg
R1NUX0VWRU5UX1RBRywgMCkpOwotICAgIGlmICghdGFnc0V2ZW50KSB7Ci0gICAgICAgIEdTVF9E
RUJVR19PQkpFQ1QocGFkLmdldCgpLCAiTm8gc3RpY2t5IHRhZyBldmVudCwgYXBwbHlpbmcgbm8g
cm90YXRpb24uIik7Ci0gICAgICAgIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpOb25lOwotICAg
IH0KLQotICAgIEdzdFRhZ0xpc3QqIHRhZ0xpc3Q7Ci0gICAgZ3N0X2V2ZW50X3BhcnNlX3RhZyh0
YWdzRXZlbnQuZ2V0KCksICZ0YWdMaXN0KTsKICAgICBBU1NFUlQodGFnTGlzdCk7CiAgICAgR1Vu
aXF1ZU91dFB0cjxnY2hhcj4gdGFnOwogICAgIGlmICghZ3N0X3RhZ19saXN0X2dldF9zdHJpbmco
dGFnTGlzdCwgR1NUX1RBR19JTUFHRV9PUklFTlRBVElPTiwgJnRhZy5vdXRQdHIoKSkpIHsKLSAg
ICAgICAgR1NUX0RFQlVHX09CSkVDVChwYWQuZ2V0KCksICJObyBpbWFnZV9vcmllbnRhdGlvbiB0
YWcsIGFwcGx5aW5nIG5vIHJvdGF0aW9uLiIpOworICAgICAgICBHU1RfREVCVUcoIk5vIGltYWdl
X29yaWVudGF0aW9uIHRhZywgYXBwbHlpbmcgbm8gcm90YXRpb24uIik7CiAgICAgICAgIHJldHVy
biBJbWFnZU9yaWVudGF0aW9uOjpOb25lOwogICAgIH0KIAotICAgIEdTVF9ERUJVR19PQkpFQ1Qo
cGFkLmdldCgpLCAiRm91bmQgaW1hZ2Vfb3JpZW50YXRpb24gdGFnOiAlcyIsIHRhZy5nZXQoKSk7
CisgICAgR1NUX0RFQlVHKCJGb3VuZCBpbWFnZV9vcmllbnRhdGlvbiB0YWc6ICVzIiwgdGFnLmdl
dCgpKTsKICAgICBpZiAoIWdfc3RyY21wMCh0YWcuZ2V0KCksICJmbGlwLXJvdGF0ZS0wIikpCiAg
ICAgICAgIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BSaWdodDsKICAgICBpZiAo
IWdfc3RyY21wMCh0YWcuZ2V0KCksICJyb3RhdGUtMTgwIikpCkBAIC0yOTg0LDYgKzI5NzQsMjAg
QEAgc3RhdGljIEltYWdlT3JpZW50YXRpb24gZ2V0VmlkZW9PcmllbnRhdGlvbihHc3RFbGVtZW50
KiBzaW5rKQogICAgIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpOb25lOwogfQogCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlVmlkZW9PcmllbnRhdGlvbihjb25zdCBH
c3RUYWdMaXN0KiB0YWdMaXN0KQoreworICAgIEdTVF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwg
IlVwZGF0aW5nIG9yaWVudGF0aW9uIGZyb20gJSIgR1NUX1BUUl9GT1JNQVQsIHRhZ0xpc3QpOwor
ICAgIHNldFZpZGVvU291cmNlT3JpZW50YXRpb24oZ2V0VmlkZW9PcmllbnRhdGlvbih0YWdMaXN0
KSk7CisKKyAgICAvLyBJZiB0aGUgdmlkZW8gaXMgdGFnZ2VkIGFzIHJvdGF0ZWQgOTAgb3IgMjcw
IGRlZ3JlZXMsIHN3YXAgd2lkdGggYW5kIGhlaWdodC4KKyAgICBpZiAobV92aWRlb1NvdXJjZU9y
aWVudGF0aW9uLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisgICAgICAgIG1fdmlkZW9TaXplID0gbV92
aWRlb1NpemUudHJhbnNwb3NlZFNpemUoKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0
KFt0aGlzXSB7CisgICAgICAgIG1fcGxheWVyLT5zaXplQ2hhbmdlZCgpOworICAgIH0pOworfQor
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlVmlkZW9TaXplQW5kT3Jp
ZW50YXRpb25Gcm9tQ2Fwcyhjb25zdCBHc3RDYXBzKiBjYXBzKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CkBAIC0zMDAxLDcgKzMwMDUsMTggQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6OnVwZGF0ZVZpZGVvU2l6ZUFuZE9yaWVudGF0aW9uRnJvbUNhcHMoY29uc3Qg
R3MKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNldFZpZGVvU291cmNlT3JpZW50YXRp
b24oZ2V0VmlkZW9PcmllbnRhdGlvbihtX3ZpZGVvU2luay5nZXQoKSkpOworICAgIGF1dG8gcGFk
ID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKG1fdmlkZW9TaW5rLmdldCgp
LCAic2luayIpKTsKKyAgICBBU1NFUlQocGFkKTsKKyAgICBhdXRvIHRhZ3NFdmVudCA9IGFkb3B0
R1JlZihnc3RfcGFkX2dldF9zdGlja3lfZXZlbnQocGFkLmdldCgpLCBHU1RfRVZFTlRfVEFHLCAw
KSk7CisgICAgYXV0byBvcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246Ok5vbmU7CisgICAg
aWYgKHRhZ3NFdmVudCkgeworICAgICAgICBHU1RfREVCVUdfT0JKRUNUKHBhZC5nZXQoKSwgIk5v
IHN0aWNreSB0YWcgZXZlbnQsIGFwcGx5aW5nIG5vIHJvdGF0aW9uLiIpOworICAgICAgICBHc3RU
YWdMaXN0KiB0YWdMaXN0OworICAgICAgICBnc3RfZXZlbnRfcGFyc2VfdGFnKHRhZ3NFdmVudC5n
ZXQoKSwgJnRhZ0xpc3QpOworICAgICAgICBvcmllbnRhdGlvbiA9IGdldFZpZGVvT3JpZW50YXRp
b24odGFnTGlzdCk7CisgICAgfQorCisgICAgc2V0VmlkZW9Tb3VyY2VPcmllbnRhdGlvbihvcmll
bnRhdGlvbik7CiAgICAgLy8gSWYgdGhlIHZpZGVvIGlzIHRhZ2dlZCBhcyByb3RhdGVkIDkwIG9y
IDI3MCBkZWdyZWVzLCBzd2FwIHdpZHRoIGFuZCBoZWlnaHQuCiAgICAgaWYgKG1fdmlkZW9Tb3Vy
Y2VPcmllbnRhdGlvbi51c2VzV2lkdGhBc0hlaWdodCgpKQogICAgICAgICBvcmlnaW5hbFNpemUg
PSBvcmlnaW5hbFNpemUudHJhbnNwb3NlZFNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA1Mjg1YzA0YjBmYTA3YWJkOWQ5MzlhZjFjNWM3
M2QzNzI0ZjUwZDliLi41NTJiNjZkZmIxMzJjZjllZTAwNmQ4MTNkMzRjNDVlMjg4MjRmZWE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0yMTYs
NiArMjE2LDggQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlRW5hYmxlZEF1ZGlvVHJhY2soKTsK
ICAgICB2b2lkIHBsYXliaW4zU2VuZFNlbGVjdFN0cmVhbXNJZkFwcHJvcHJpYXRlKCk7CiAKKyAg
ICB2b2lkIHVwZGF0ZVZpZGVvT3JpZW50YXRpb24oY29uc3QgR3N0VGFnTGlzdCopOworCiAgICAg
Ly8gQXBwZW5kIHBpcGVsaW5lIGludGVyZmFjZQogICAgIC8vIEZJWE1FOiBVc2UgdGhlIGNsaWVu
dCBpbnRlcmZhY2UgcGF0dGVybiwgQXBwZW5kUGlwZWxpbmUgZG9lcyBub3QgbmVlZCB0aGUgZnVs
bCBpbnRlcmZhY2UgdG8gdGhpcyBjbGFzcyBqdXN0IGZvciB0aGlzIGZ1bmN0aW9uLgogICAgIGJv
b2wgaGFuZGxlTmVlZENvbnRleHRNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFTYW1wbGVHU3RyZWFtZXIuY3BwCmluZGV4IGQwOTQ3MmRjMGQyYTdlOGMwNjUyMDRhYzY1YWIw
YjVmMDQxYjljNWMuLjQwMmEwZTJiNTA2NGJjMjg3Njg3M2MxYzM2OTUzMTQ5YjY5YWQwMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVNhbXBsZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmNwcApAQCAtMzIsMTIgKzMyLDE0IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVkaWFTYW1wbGVHU3RyZWFtZXI6Ok1lZGlhU2Ft
cGxlR1N0cmVhbWVyKEdSZWZQdHI8R3N0U2FtcGxlPiYmIHNhbXBsZSwgY29uc3QgRmxvYXRTaXpl
JiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lkKQorTWVkaWFTYW1w
bGVHU3RyZWFtZXI6Ok1lZGlhU2FtcGxlR1N0cmVhbWVyKEdSZWZQdHI8R3N0U2FtcGxlPiYmIHNh
bXBsZSwgY29uc3QgRmxvYXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9tU3RyaW5n
JiB0cmFja0lkLCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24sIGJvb2wgdmlkZW9NaXJyb3Jl
ZCkKICAgICA6IG1fcHRzKE1lZGlhVGltZTo6emVyb1RpbWUoKSkKICAgICAsIG1fZHRzKE1lZGlh
VGltZTo6emVyb1RpbWUoKSkKICAgICAsIG1fZHVyYXRpb24oTWVkaWFUaW1lOjp6ZXJvVGltZSgp
KQogICAgICwgbV90cmFja0lkKHRyYWNrSWQpCiAgICAgLCBtX3ByZXNlbnRhdGlvblNpemUocHJl
c2VudGF0aW9uU2l6ZSkKKyAgICAsIG1fdmlkZW9Sb3RhdGlvbih2aWRlb1JvdGF0aW9uKQorICAg
ICwgbV92aWRlb01pcnJvcmVkKHZpZGVvTWlycm9yZWQpCiB7CiAgICAgY29uc3QgR3N0Q2xvY2tU
aW1lIG1pbmltdW1EdXJhdGlvbiA9IDEwMDA7IC8vIDEgdXMKICAgICBBU1NFUlQoc2FtcGxlKTsK
QEAgLTk4LDEwICsxMDAsMTAgQEAgUmVmPE1lZGlhU2FtcGxlR1N0cmVhbWVyPiBNZWRpYVNhbXBs
ZUdTdHJlYW1lcjo6Y3JlYXRlRmFrZVNhbXBsZShHc3RDYXBzKiwgTWVkaWEKICAgICByZXR1cm4g
YWRvcHRSZWYoKmdzdHJlYW1lck1lZGlhU2FtcGxlKTsKIH0KIAotUmVmPE1lZGlhU2FtcGxlR1N0
cmVhbWVyPiBNZWRpYVNhbXBsZUdTdHJlYW1lcjo6Y3JlYXRlSW1hZ2VTYW1wbGUoUGl4ZWxCdWZm
ZXImJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50U2l6ZSYgZGVzdGluYXRpb25TaXplLCBkb3VibGUg
ZnJhbWVSYXRlKQorUmVmPE1lZGlhU2FtcGxlR1N0cmVhbWVyPiBNZWRpYVNhbXBsZUdTdHJlYW1l
cjo6Y3JlYXRlSW1hZ2VTYW1wbGUoUGl4ZWxCdWZmZXImJiBwaXhlbEJ1ZmZlciwgY29uc3QgSW50
U2l6ZSYgZGVzdGluYXRpb25TaXplLCBkb3VibGUgZnJhbWVSYXRlLCBWaWRlb1JvdGF0aW9uIHZp
ZGVvUm90YXRpb24sIGJvb2wgdmlkZW9NaXJyb3JlZCkKIHsKICAgICBlbnN1cmVHU3RyZWFtZXJJ
bml0aWFsaXplZCgpOwotICAgIAorCiAgICAgYXV0byBzaXplID0gcGl4ZWxCdWZmZXIuc2l6ZSgp
OwogCiAgICAgYXV0byBkYXRhID0gcGl4ZWxCdWZmZXIudGFrZURhdGEoKTsKQEAgLTE0Niw3ICsx
NDgsNyBAQCBSZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+IE1lZGlhU2FtcGxlR1N0cmVhbWVyOjpj
cmVhdGVJbWFnZVNhbXBsZShQaXhlbEJ1ZmZlciYmCiAgICAgICAgIGdzdF92aWRlb19jb252ZXJ0
ZXJfZnJhbWUoY29udmVydGVyLmdldCgpLCBpbnB1dEZyYW1lLmdldCgpLCBvdXRwdXRGcmFtZS5n
ZXQoKSk7CiAgICAgICAgIHNhbXBsZSA9IGFkb3B0R1JlZihnc3Rfc2FtcGxlX25ldyhvdXRwdXRC
dWZmZXIuZ2V0KCksIG91dHB1dENhcHMuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpKTsKICAgICB9
Ci0gICAgcmV0dXJuIGNyZWF0ZShXVEZNb3ZlKHNhbXBsZSksIEZsb2F0U2l6ZSh3aWR0aCwgaGVp
Z2h0KSwgeyB9KTsKKyAgICByZXR1cm4gY3JlYXRlKFdURk1vdmUoc2FtcGxlKSwgRmxvYXRTaXpl
KHdpZHRoLCBoZWlnaHQpLCB7IH0sIHZpZGVvUm90YXRpb24sIHZpZGVvTWlycm9yZWQpOwogfQog
CiBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gTWVkaWFTYW1wbGVHU3RyZWFtZXI6Omdl
dFJHQkFJbWFnZURhdGEoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuaApp
bmRleCBkN2E0OWI5NmZjMzMzNDJmYzAzNDUyMzQwYjU2MTRhNjlkZmMzODAzLi42YWJmMjBjZTVm
MjdkYzU2NTQ4MzJjMDc4NTM0YzliNDEzYWY3MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVH
U3RyZWFtZXIuaApAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNzIFBpeGVsQnVmZmVyOwogCiBjbGFz
cyBNZWRpYVNhbXBsZUdTdHJlYW1lciA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxNZWRpYVNhbXBsZUdTdHJlYW1lcj4gY3JlYXRlKEdSZWZQdHI8R3N0U2Ft
cGxlPiYmIHNhbXBsZSwgY29uc3QgRmxvYXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBB
dG9tU3RyaW5nJiB0cmFja0lkKQorICAgIHN0YXRpYyBSZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+
IGNyZWF0ZShHUmVmUHRyPEdzdFNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0IEZsb2F0U2l6ZSYgcHJl
c2VudGF0aW9uU2l6ZSwgY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJZCwgVmlkZW9Sb3RhdGlvbiB2
aWRlb1JvdGF0aW9uID0gVmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCB2aWRlb01pcnJvcmVkID0g
ZmFsc2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVNhbXBsZUdT
dHJlYW1lcihXVEZNb3ZlKHNhbXBsZSksIHByZXNlbnRhdGlvblNpemUsIHRyYWNrSWQpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTYW1wbGVHU3RyZWFtZXIoV1RGTW92ZShz
YW1wbGUpLCBwcmVzZW50YXRpb25TaXplLCB0cmFja0lkLCB2aWRlb1JvdGF0aW9uLCB2aWRlb01p
cnJvcmVkKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFJlZjxNZWRpYVNhbXBsZUdTdHJlYW1lcj4g
Y3JlYXRlRmFrZVNhbXBsZShHc3RDYXBzKiwgTWVkaWFUaW1lIHB0cywgTWVkaWFUaW1lIGR0cywg
TWVkaWFUaW1lIGR1cmF0aW9uLCBjb25zdCBGbG9hdFNpemUmIHByZXNlbnRhdGlvblNpemUsIGNv
bnN0IEF0b21TdHJpbmcmIHRyYWNrSWQpOwotICAgIHN0YXRpYyBSZWY8TWVkaWFTYW1wbGVHU3Ry
ZWFtZXI+IGNyZWF0ZUltYWdlU2FtcGxlKFBpeGVsQnVmZmVyJiYsIGNvbnN0IEludFNpemUmIGRl
c3RpbmF0aW9uU2l6ZSA9IHsgfSwgZG91YmxlIGZyYW1lUmF0ZSA9IDEpOworICAgIHN0YXRpYyBS
ZWY8TWVkaWFTYW1wbGVHU3RyZWFtZXI+IGNyZWF0ZUltYWdlU2FtcGxlKFBpeGVsQnVmZmVyJiYs
IGNvbnN0IEludFNpemUmIGRlc3RpbmF0aW9uU2l6ZSA9IHsgfSwgZG91YmxlIGZyYW1lUmF0ZSA9
IDEsIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbiA9IFZpZGVvUm90YXRpb246Ok5vbmUsIGJv
b2wgdmlkZW9NaXJyb3JlZCA9IGZhbHNlKTsKIAogICAgIHZvaWQgZXh0ZW5kVG9UaGVCZWdpbm5p
bmcoKTsKICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fcHRzOyB9CkBAIC02MCw5ICs2MCwxMSBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRp
b25hbDxCeXRlUmFuZ2U+IGJ5dGVSYW5nZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsgfQogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIFJlZlB0cjxKU0M6OlVpbnQ4Q2xhbXBlZEFycmF5PiBnZXRSR0JBSW1hZ2VEYXRhKCkgY29u
c3QgZmluYWw7CisgICAgVmlkZW9Sb3RhdGlvbiB2aWRlb1JvdGF0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV92aWRlb1JvdGF0aW9uOyB9CisgICAgYm9vbCB2aWRlb01pcnJvcmVkKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV92aWRlb01pcnJvcmVkOyB9CiAKIHByb3RlY3RlZDoK
LSAgICBNZWRpYVNhbXBsZUdTdHJlYW1lcihHUmVmUHRyPEdzdFNhbXBsZT4mJiwgY29uc3QgRmxv
YXRTaXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lkKTsKKyAg
ICBNZWRpYVNhbXBsZUdTdHJlYW1lcihHUmVmUHRyPEdzdFNhbXBsZT4mJiwgY29uc3QgRmxvYXRT
aXplJiBwcmVzZW50YXRpb25TaXplLCBjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lkLCBWaWRlb1Jv
dGF0aW9uID0gVmlkZW9Sb3RhdGlvbjo6Tm9uZSwgYm9vbCB2aWRlb01pcnJvcmVkID0gZmFsc2Up
OwogICAgIHZpcnR1YWwgfk1lZGlhU2FtcGxlR1N0cmVhbWVyKCkgPSBkZWZhdWx0OwogCiBwcml2
YXRlOgpAQCAtNzYsNiArNzgsOCBAQCBwcml2YXRlOgogICAgIEdSZWZQdHI8R3N0U2FtcGxlPiBt
X3NhbXBsZTsKICAgICBGbG9hdFNpemUgbV9wcmVzZW50YXRpb25TaXplOwogICAgIE1lZGlhU2Ft
cGxlOjpTYW1wbGVGbGFncyBtX2ZsYWdzIHsgTWVkaWFTYW1wbGU6OklzU3luYyB9OworICAgIFZp
ZGVvUm90YXRpb24gbV92aWRlb1JvdGF0aW9uIHsgVmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OworICAg
IGJvb2wgbV92aWRlb01pcnJvcmVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNl
LmNwcAppbmRleCAxYmFlZjZhNWQwYTg2NzU2Y2YyMDZjOTI5N2E1OWIxNDU3YWNiMmM3Li5kMzIx
ZGJmNjUzNjcyMTNkNzMwM2I0NTQ5MjM5Y2UwNjk0MGM5NjQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJl
YW1Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKQEAgLTI4MCw2ICsyODAsMTgg
QEAgcHVibGljOgogICAgICAgICAgICAgdXBkYXRlQmxhY2tGcmFtZShjYXBzKTsKICAgICAgICAg
fQogCisgICAgICAgIGF1dG8gdmlkZW9Sb3RhdGlvbiA9IHNhbXBsZS52aWRlb1JvdGF0aW9uKCk7
CisgICAgICAgIGJvb2wgdmlkZW9NaXJyb3JlZCA9IHNhbXBsZS52aWRlb01pcnJvcmVkKCk7Cisg
ICAgICAgIGlmIChtX3ZpZGVvUm90YXRpb24gIT0gdmlkZW9Sb3RhdGlvbiB8fCBtX3ZpZGVvTWly
cm9yZWQgIT0gdmlkZW9NaXJyb3JlZCkgeworICAgICAgICAgICAgbV92aWRlb1JvdGF0aW9uID0g
dmlkZW9Sb3RhdGlvbjsKKyAgICAgICAgICAgIG1fdmlkZW9NaXJyb3JlZCA9IHZpZGVvTWlycm9y
ZWQ7CisKKyAgICAgICAgICAgIGF1dG8gb3JpZW50YXRpb24gPSBtYWtlU3RyaW5nKHZpZGVvTWly
cm9yZWQgPyAiZmxpcC0iIDogIiIsICJyb3RhdGUtIiwgbV92aWRlb1JvdGF0aW9uKTsKKyAgICAg
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1QobV9zcmMuZ2V0KCksICJQdXNoaW5nIG9yaWVudGF0aW9u
IHRhZzogJXMiLCBvcmllbnRhdGlvbi51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGF1dG8g
cGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKG1fc3JjLmdldCgpLCAi
c3JjIikpOworICAgICAgICAgICAgZ3N0X3BhZF9wdXNoX2V2ZW50KHBhZC5nZXQoKSwgZ3N0X2V2
ZW50X25ld190YWcoZ3N0X3RhZ19saXN0X25ldyhHU1RfVEFHX0lNQUdFX09SSUVOVEFUSU9OLCBv
cmllbnRhdGlvbi51dGY4KCkuZGF0YSgpLCBudWxscHRyKSkpOworICAgICAgICB9CisKICAgICAg
ICAgaWYgKG1fdHJhY2suZW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBHU1RfVFJBQ0VfT0JKRUNU
KG1fc3JjLmdldCgpLCAiUHVzaGluZyB2aWRlbyBmcmFtZSBmcm9tIGVuYWJsZWQgdHJhY2siKTsK
ICAgICAgICAgICAgIHB1c2hTYW1wbGUoZ3N0U2FtcGxlKTsKQEAgLTMzOSw2ICszNTEsOCBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBtX3ZpZGVv
VHJhY2s7CiAgICAgSW50U2l6ZSBtX2xhc3RLbm93blNpemU7CiAgICAgR1JlZlB0cjxHc3RTYW1w
bGU+IG1fYmxhY2tGcmFtZTsKKyAgICBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3ZpZGVv
Um90YXRpb24geyBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OworICAgIGJvb2wg
bV92aWRlb01pcnJvcmVkIHsgZmFsc2UgfTsKIH07CiAKIHN0cnVjdCBfV2ViS2l0TWVkaWFTdHJl
YW1TcmNQcml2YXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGZlODcxYTNlYjU0N2ZhNjlkNWM4ZWY2MmUz
YTJjMDM0MmM5NWI0MzMuLmUxNTJmOTg3YzZkM2M2NGMwYjg5ZGI1MTE0ZWExZWQ3MGVhNGEwYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tSZWFsdGltZVZpZGVvU291cmNl
R1N0cmVhbWVyLmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VHU3RyZWFtZXI6OnVwZGF0ZVNhbXBsZUJ1ZmZlcigpCiAgICAgaWYgKCFwaXhlbEJ1ZmZl
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBzYW1wbGUgPSBNZWRpYVNhbXBsZUdTdHJl
YW1lcjo6Y3JlYXRlSW1hZ2VTYW1wbGUoV1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCBzaXplKCksIGZy
YW1lUmF0ZSgpKTsKKyAgICBhdXRvIHNhbXBsZSA9IE1lZGlhU2FtcGxlR1N0cmVhbWVyOjpjcmVh
dGVJbWFnZVNhbXBsZShXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksIHNpemUoKSwgZnJhbWVSYXRlKCks
IHNhbXBsZVJvdGF0aW9uKCkpOwogICAgIHNhbXBsZS0+b2Zmc2V0VGltZXN0YW1wc0J5KE1lZGlh
VGltZTo6Y3JlYXRlV2l0aERvdWJsZSgoZWxhcHNlZFRpbWUoKSArIDEwMF9tcykuc2Vjb25kcygp
KSk7CiAgICAgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKHNhbXBsZS5nZXQoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAxZmIyZjI3YWQy
YjkyMWE4OGVhY2FkOGM3OTY4NGI2ODUyMWU2N2VjLi5hOGRhN2ZkNDg1YTQ3NjQ5OTY0NDdmNjI4
MmE3OWYyMGE0ODc5MjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAKQEAgLTMxNDcsMTQgKzMxNDcsMTIgQEAgdm9pZCBXS1BhZ2VTZXRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyhXS1BhZ2VSZWYgcGFnZVJlZiwgV0sKIHZvaWQg
V0tQYWdlU2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKFdLUGFnZVJlZiBwYWdlUmVmLCB1aW50NjRf
dCBvcmllbnRhdGlvbikKIHsKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7Ci0jaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRP
cmllbnRhdGlvbkZvck1lZGlhQ2FwdHVyZShvcmllbnRhdGlvbik7Ci0jZW5kaWYKIH0KIAogYm9v
bCBXS1BhZ2VJc01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyRW5hYmxlZChXS1BhZ2VSZWYp
CiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgKFBM
QVRGT1JNKENPQ09BKSB8fCBVU0UoR1NUUkVBTUVSKSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ICAgICByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyRW5hYmxlZCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2ZWQ4NDViZDk3M2NmNDE0
MWM1NDdmMjY1YTg5NjhkMGRkZWMxM2UxLi4zOWFhNDAzODVmZGUxMWJlN2MzMzlmOWU3NTFlOTc3
M2ZiMTJkOTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTEwNzM0LDEzICsxMDczNCwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0UHJvY2Vzc0Rpc3Bs
YXlOYW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50
YXRpb24pCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoYXV0
byogcHJveHkgPSBtX3Byb2Nlc3MtPnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoKSkKICAg
ICAgICAgcHJveHktPnNldE9yaWVudGF0aW9uKG9yaWVudGF0aW9uKTsKIAogICAgIGF1dG8qIGdw
dVByb2Nlc3MgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuZ3B1UHJvY2VzcygpOwogICAgIGlm
IChncHVQcm9jZXNzICYmIHByZWZlcmVuY2VzKCkuY2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5h
YmxlZCgpKQogICAgICAgICBncHVQcm9jZXNzLT5zZXRPcmllbnRhdGlvbkZvck1lZGlhQ2FwdHVy
ZShvcmllbnRhdGlvbik7CisjZWxpZiBVU0UoR1NUUkVBTUVSKQorICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKG9yaWVudGF0aW9uKSk7Cisj
ZW5kaWYKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDdmNDM0NDIwNDQ0ZTNjNjk0OGE0NzM3ZmJlYmU1MmFhNDQ2NGMzNGYu
LmMxODY2YTI1YmI5ZDQ3NjcxMTA4YzQwOWE4ZjJmNGIzM2FhYTM3ZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00ODEyLDcgKzQ4MTIsMTYg
QEAgdm9pZCBXZWJQYWdlOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogICAgIG1fdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5jYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKIH0KIAot
I2VuZGlmCisjaWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQgV2ViUGFnZTo6c2V0T3JpZW50YXRpb25G
b3JNZWRpYUNhcHR1cmUodWludDY0X3Qgcm90YXRpb24pCit7CisgICAgbV9wYWdlLT5mb3JFYWNo
RG9jdW1lbnQoWyZdKGF1dG8mIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50Lm9yaWVudGF0
aW9uQ2hhbmdlZChyb3RhdGlvbik7CisgICAgfSk7Cit9CisjZW5kaWYgLy8gVVNFKEdTVFJFQU1F
UikKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQogdm9pZCBXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQoTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllciBtZWRpYUtleVN5c3RlbUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNTM5NjFhMDNhNTJjMzgxOWJjYTI5ZTBiNzE3ZGJj
NTAwOGY5ZmU1Yy4uYTJiYTIzMDYxMDE4ZDdlMDY0NmZjYWI5ZjBmNjM3NGYwYzRlOWQ1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTIyMyw2ICsx
MjIzLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKICAg
ICB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBTdHJpbmcmIGRl
dGFpbHMsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVyUmVx
dWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrJik7CiAjZW5kaWYKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKSAmJiBVU0UoR1NUUkVBTUVSKQorICAgIHZvaWQgc2V0T3JpZW50YXRpb25G
b3JNZWRpYUNhcHR1cmUodWludDY0X3Qgcm90YXRpb24pOworI2VuZGlmCiAKICAgICB2b2lkIGFk
ZFVzZXJTY3JpcHQoU3RyaW5nJiYgc291cmNlLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkJiwg
V2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcywgV2ViQ29yZTo6VXNlclNjcmlwdElu
amVjdGlvblRpbWUpOwogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBz
b3VyY2UsIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
NzgyZmYyODJiYWEzZGQ4YTM4YjBhOGFjYTMxOTMzMmE5YTNjODEzOS4uOWViNzEyMTJiZWQ3YjA1
NmQ2YzYzNGE5M2ZiNmU5ZTJmMmVmZTUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zODMsNiArMzgzLDkgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBVc2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKFdl
YkNvcmU6OlVzZXJNZWRpYVJlcXVlc3RJZGVudGlmaWVyIHVzZXJNZWRpYUlELCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlIGF1ZGlvRGV2aWNlLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHZpZGVvRGV2
aWNlLCBTdHJpbmcgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIFdlYktpdDo6U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpIC0+ICgpIEFzeW5jCiAg
ICAgVXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3RJZGVu
dGlmaWVyIHVzZXJNZWRpYUlELCB1aW50NjRfdCByZWFzb24sIFN0cmluZyBpbnZhbGlkQ29uc3Ry
YWludCkKICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQorI2lmIFVTRShHU1RSRUFNRVIpCisg
ICAgU2V0T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUoaW50IHJvdGF0aW9uKQorI2VuZGlmCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWI5YTk1ZDYyNjVmMDAzNmJlN2VjZjBh
NjFmODYyZjBkOTcxMDY2Yy4uYjI0ZTU2ZDcwMjE4YTRkMzc2MDQwMzIxMWI4ZTcxOGJiNjgxODQy
MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDIxLTEwLTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBmYXN0L21lZGlhc3RyZWFtL3ZpZGVvLXJv
dGF0aW9uIHRlc3RzIGFyZSBmYWlsaW5nIGR1ZSB0byBtaXNzaW5nIFRlc3RDb250cm9sbGVyOjp0
YWtlVmlld1BvcnRTbmFwc2hvdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IHRha2VWaWV3UG9ydFNuYXBzaG90IGZvciBXUEUgYW5kIEdU
SywgdGhlIFdlYlZpZXcgc25hcHNob3QgaXMgZXhwb3J0ZWQgdG8gUE5HIGFuZAorICAgICAgICBz
ZXJpYWxpemVkIGFzIGEgZGF0YSBVUkwuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29u
dHJvbGxlckd0ay5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp0YWtlVmlld1Bv
cnRTbmFwc2hvdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xs
ZXJXUEUuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6dGFrZVZpZXdQb3J0U25h
cHNob3QpOgorCiAyMDIxLTEwLTE3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIHRlc3RzIGZvciBXVEY6Ok9TT2JqZWN0UHRyL2Fkb3B0T1NPYmplY3Qg
aW4gQ29jb2Egd2l0aCBhbmQgd2l0aG91dCBBUkMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggZmViMmEzOTdlNDJhMzY4YzQxNzllY2IzMWQ2ZDE5MjA2M2Yx
OWEwNy4uOGMyYjQyNmY4N2IyMjkyMjM2NDRkM2YxZTE2NTMyZTYwMjFlY2QxZCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTM2MTEsNyArMzYxMSw5IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6Omluc3RhbGxDdXN0b21NZW51QWN0aW9uKGNvbnN0IFN0cmlu
ZyYsIGJvb2wpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd2VkTWVudUFjdGlvbnMoY29u
c3QgVmVjdG9yPFN0cmluZz4mKQogewogfQorI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oQ09DT0Ep
ICYmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gVGVzdENvbnRyb2xsZXI6OnRha2VWaWV3UG9ydFNuYXBzaG90KCkKIHsKICAgICByZXR1
cm4gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibm90IGltcGxlbWVudGVk
IikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xs
ZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsu
Y3BwCmluZGV4IDU4NDcyMjU2ZGY2ZTE1MWQ0ZDgwYjYzYTE3ZDk0ZDkzYzFhYTA4NDMuLjE2OWU3
N2RlOGViNTNiNjJkN2Q5OWM0MzRjNDkxNTcxOTllNzRlZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQmFz
ZTY0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVFIg
ewpAQCAtMTU4LDQgKzE1OSwxNSBAQCBUZXN0RmVhdHVyZXMgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RDbwogICAgIHJldHVy
biB7IH07CiB9CiAKK1dLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBUZXN0Q29udHJvbGxlcjo6dGFr
ZVZpZXdQb3J0U25hcHNob3QoKQoreworICAgIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBvdXRwdXQ7
CisgICAgY2Fpcm9fc3VyZmFjZV93cml0ZV90b19wbmdfc3RyZWFtKG1haW5XZWJWaWV3KCktPndp
bmRvd1NuYXBzaG90SW1hZ2UoKSwgW10odm9pZCogb3V0cHV0LCBjb25zdCB1bnNpZ25lZCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIC0+IGNhaXJvX3N0YXR1c190IHsKKyAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDxWZWN0b3I8dW5zaWduZWQgY2hhcj4qPihvdXRwdXQpLT5hcHBlbmQoZGF0
YSwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIENBSVJPX1NUQVRVU19TVUNDRVNTOworICAgIH0s
ICZvdXRwdXQpOworICAgIGF1dG8gdXJpID0gbWFrZVN0cmluZygiZGF0YTppbWFnZS9wbmc7YmFz
ZTY0LCIsIGJhc2U2NEVuY29kZWQob3V0cHV0LmRhdGEoKSwgb3V0cHV0LnNpemUoKSkpOworICAg
IHJldHVybiBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHVyaS51dGY4KCku
ZGF0YSgpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCmluZGV4IDExMDJhZmU2MzQ0NmEwNTEz
ZTE2MzQ0YWM1YzI5NWEzODhiMzBkZjIuLmQ3NjE5Y2MxYzcwMGE2ODYwMTg3ZTgwZjYwMTRiZmFk
YjExMzJjOGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250
cm9sbGVyV1BFLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJv
bGxlcldQRS5jcHAKQEAgLTI3LDkgKzI3LDExIEBACiAjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIu
aCIKIAogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgPGNhaXJvLmg+CiAj
aW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogCiBuYW1l
c3BhY2UgV1RSIHsKIApAQCAtMTQ2LDQgKzE0OCwxNSBAQCBUZXN0RmVhdHVyZXMgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbnN0IFRlc3RD
bwogICAgIHJldHVybiBmZWF0dXJlczsKIH0KIAorV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IFRl
c3RDb250cm9sbGVyOjp0YWtlVmlld1BvcnRTbmFwc2hvdCgpCit7CisgICAgVmVjdG9yPHVuc2ln
bmVkIGNoYXI+IG91dHB1dDsKKyAgICBjYWlyb19zdXJmYWNlX3dyaXRlX3RvX3BuZ19zdHJlYW0o
bWFpbldlYlZpZXcoKS0+d2luZG93U25hcHNob3RJbWFnZSgpLCBbXSh2b2lkKiBvdXRwdXQsIGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgLT4gY2Fpcm9fc3RhdHVz
X3QgeworICAgICAgICByZWludGVycHJldF9jYXN0PFZlY3Rvcjx1bnNpZ25lZCBjaGFyPio+KG91
dHB1dCktPmFwcGVuZChkYXRhLCBsZW5ndGgpOworICAgICAgICByZXR1cm4gQ0FJUk9fU1RBVFVT
X1NVQ0NFU1M7CisgICAgfSwgJm91dHB1dCk7CisgICAgYXV0byB1cmkgPSBtYWtlU3RyaW5nKCJk
YXRhOmltYWdlL3BuZztiYXNlNjQsIiwgYmFzZTY0RW5jb2RlZChvdXRwdXQuZGF0YSgpLCBvdXRw
dXQuc2l6ZSgpKSk7CisgICAgcmV0dXJuIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcodXJpLnV0ZjgoKS5kYXRhKCkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggN2ZjMmVlMzk0ZDU0OTliZGIxZTY1NjljMTMxZDljOWNiNWJhMjdhMC4uZDBlMDA2Nzg0ZTlj
Nzk2YWZjOWQ0ZWYxYjM4MWU3ZTA4NDNlOGYzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIx
LTEwLTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1N0cmVhbWVyXSBmYXN0L21lZGlhc3RyZWFtL3ZpZGVvLXJvdGF0aW9uIHRlc3RzIGFyZSBm
YWlsaW5nIGR1ZSB0byBtaXNzaW5nIFRlc3RDb250cm9sbGVyOjp0YWtlVmlld1BvcnRTbmFwc2hv
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMDU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHZp
ZGVvLXJvdGF0aW9uLmh0bWwgdGVzdCB3YXMgcHJvbmUgdG8gZmxha3luZXNzIGluIEdTdHJlYW1l
ciBwb3J0cywgc28gYSBmZXcgY2hhbmdlcyB3ZXJlIG1hZGU6CisKKyAgICAgICAgLSBkb24ndCBh
cHBlbmQgY2FudmFzIHRvIHRoZSBwYWdlLCB0aGF0IGNhbiAicG9pc29uIiBmdXR1cmUgdmlld3Bv
cnQgc25hcHNob3RzCisgICAgICAgIC0gd2FpdCBmb3IgYSB0aW1ldXBkYXRlIGJlZm9yZSBjaGVj
a2luZyB0aGUgZmlyc3Qgc25hcHNob3QsIHRoYXQgZ2l2ZXMgdXMgc29tZSBtYXJnaW4sIHNvCisg
ICAgICAgIHRoZSBwbGF5ZXIgbWlnaHQgaGF2ZSByZXBhaW50ZWQKKyAgICAgICAgLSBjYXRjaCB2
YWxpZGF0aW9uIGVycm9ycyBzbyB0aGV5J3JlIG5vdCBsb2dnZWQgdG8gdGhlIGNvbnNvbGUsIHRo
YXQgd291bGQgaW50cm9kdWNlIHJlc3VsdAorICAgICAgICBkaWZmcyBpbiBjYXNlIHRoZSBmaXJz
dCB2YWxpZGF0aW9uIHdhcyBub3Qgc3VjY2Vzc2Z1bAorICAgICAgICAtIHRyeSBhdCBtb3N0IDEw
MCB2YWxpZGF0aW9ucyBhdHRlbXB0cy4gSWRlYWxseSBpdCB3b3VsZCBiZSBuaWNlciB0byByZWx5
IG9uIHRoZQorICAgICAgICByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBmb3IgdGhpcy4K
KworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vdmlkZW8tcm90YXRpb24uaHRtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTAtMTcgIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJYUl0gU3R1YnMgZm9yIFdl
YlhSIEhhbmQgSW5wdXQgTW9kdWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3ZpZGVvLXJvdGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3ZpZGVvLXJvdGF0aW9uLmh0bWwKaW5kZXggMjVmZGQ3MmU1MGJlOGJlMTMzOTQxOTc0ZTZkN2Fi
NjljOWNhNTAzNi4uN2IyZjBmMGM2ODQ0ZTQ3YTc2NDQxODc1ODRjM2I2Y2EzYTA2OGFiYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS92aWRlby1yb3RhdGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vdmlkZW8tcm90YXRpb24uaHRtbApA
QCAtNDcsOCArNDcsNiBAQCBhc3luYyBmdW5jdGlvbiB2YWxpZGF0ZVNuYXBzaG90KCkKICAgICBj
YW52YXMuZ2V0Q29udGV4dCgnMmQnKS5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOwogICAgIGNvbnN0
IGRhdGEgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFz
LndpZHRoLCBjYW52YXMuaGVpZ2h0KS5kYXRhOwogCi0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChjYW52YXMpOwotCiAgICAgLy8gV2UgZXhwZWN0IHRvIGhhdmUgYSBncmVlbiBob3Jpem9u
dGFsIGxpbmUgdW50aWwgZ2V0dGluZyBzb21lIHdoaXRlLgogICAgIGxldCBqID0gMTAwOwogICAg
IGlmICghaXNQaXhlbEdyZWVuKDEwMCwgaiwgY2FudmFzLCBkYXRhKSkKQEAgLTY3LDYgKzY1LDE0
IEBAIGFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlU25hcHNob3QoKQogICAgIHJldHVybiBpID09PSBj
YW52YXMuaGVpZ2h0OwogfQogCithc3luYyBmdW5jdGlvbiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUp
IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBldmVudCA9PiB7CisgICAgICAgICAgICByZXNvbHZlKGV2
ZW50KTsKKyAgICAgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworICAgIH0pOworfQorCiBvbmxvYWQg
PSBhc3luYyAoKSA9PiB7CiAgICAgdHJ5IHsKICAgICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gYXdh
aXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IDQw
MCwgaGVpZ2h0OiAyMDB9IH0pOwpAQCAtODAsMTkgKzg2LDIwIEBAIG9ubG9hZCA9IGFzeW5jICgp
ID0+IHsKICAgICAgICAgd2hpbGUgKHZpZGVvLnZpZGVvV2lkdGggIT09IDIwMCAmJiArK2NvdW50
ZXIgPCAxMDApCiAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRp
bWVvdXQocmVzb2x2ZSwgNTApKTsKIAorICAgICAgICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAndGlt
ZXVwZGF0ZScpOwogICAgICAgICBjb3VudGVyID0gMDsKICAgICAgICAgbGV0IGlzVmFsaWRTbmFw
c2hvdCA9IGZhbHNlOwogICAgICAgICBkbyB7CiAgICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTApKTsKLSAgICAgICAgICAgIGlzVmFs
aWRTbmFwc2hvdCA9IGF3YWl0IHZhbGlkYXRlU25hcHNob3QoKTsKLSAgICAgICAgfSB3aGlsZSAo
Kytjb3VudGVyIDwgNTAgJiYgIWlzVmFsaWRTbmFwc2hvdCkKKyAgICAgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICAgICAgaXNWYWxpZFNuYXBzaG90ID0gYXdhaXQgdmFsaWRhdGVTbmFwc2hvdCgp
OworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyB9CisgICAgICAgIH0gd2hpbGUgKCsrY291bnRl
ciA8IDEwMCAmJiAhaXNWYWxpZFNuYXBzaG90KQogCi0gICAgICAgIGxvZy5pbm5lckhUTUwgPSBj
b3VudGVyIDwgNTAgPyAiUEFTUyIgOiAiRkFJTCI7CisgICAgICAgIGxvZy5pbm5lckhUTUwgPSBj
b3VudGVyIDwgMTAwID8gIlBBU1MiIDogIkZBSUwiOwogCi0gICAgICAgICBpZiAoY291bnRlciA8
IDUwKSB7CisgICAgICAgIGlmIChjb3VudGVyIDwgMTAwKQogICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZChpbWFnZSk7Ci0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKGNhbnZhcyk7Ci0gICAgICAgICB9CiAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICBj
b25zb2xlLmxvZyhlKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggZjg3ZDAyMjZlNWZjYTA5NTY1MzAzNmM1YjQ3Y2MyYzE2YzY0ODcyZS4u
ODM2YTY2MzZhYTdiOTU5NzBkYTU3MDU0MTQwZDdmNDU4NjViZGEwNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjc2LDkgKzY3Niw2IEBAIHdlYmtp
dC5vcmcvYi8yMzA0MTUgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2Vjb25u
ZWN0aW9uc3RhdGVjaGFuZ2UtCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8x
ODc2MDMgZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2stc291cmNlLWZhaWx1cmUu
aHRtbCBbIFRpbWVvdXQgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8yMzEwNTcgZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdmlkZW8tdHJhY2staW50ZXJydXB0ZWQuaHRtbCBbIEZh
aWx1cmUgXQotIyBOb3QgZXhhY3RseSBHU3RyZWFtZXIgKG1pc3NpbmcgaGVscGVyIG1ldGhvZCB0
byB0YWtlIHZpZXdwb3J0IHNjcmVlbnNob3QpCi13ZWJraXQub3JnL2IvMjMxMDU5IGZhc3QvbWVk
aWFzdHJlYW0vdmlkZW8tcm90YXRpb24tZ3B1LXByb2Nlc3MtY3Jhc2guaHRtbCBbIEZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzIzMTA1OSBmYXN0L21lZGlhc3RyZWFtL3ZpZGVvLXJvdGF0aW9uLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMzEwNjEgZmFzdC9tZWRpYXN0cmVhbS9jYXB0
dXJlU3RyZWFtL2NhbnZhczNkLmh0bWwgWyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzIyMzUw
OCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1zdHJlYW1zL01l
ZGlhU3RyZWFtLU1lZGlhRWxlbWVudC1zcmNPYmplY3QuaHR0cHMuaHRtbCBbIEZhaWx1cmUgUGFz
cyBdCkBAIC0xNzMwLDYgKzE3MjcsNyBAQCB3ZWJraXQub3JnL2IvMTkzNjIzIGFjY2Vzc2liaWxp
dHkvc2V0LXNlbGVjdGVkLWVkaXRhYmxlLmh0bWwgWyBTa2lwIF0KIAogIyBObyBzdXBwb3J0IGZv
ciBHUFVQcm9jZXNzIHlldAogZmFzdC9tZWRpYXN0cmVhbS9jYXB0dXJlSW5HUFVQcm9jZXNzLmh0
bWwgWyBTa2lwIF0KK2Zhc3QvbWVkaWFzdHJlYW0vdmlkZW8tcm90YXRpb24tZ3B1LXByb2Nlc3Mt
Y3Jhc2guaHRtbCBbIFNraXAgXQogCiAjIFBheW1lbnQgUmVxdWVzdAogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QgWyBTa2lwIF0K
</data>
<flag name="review"
          id="465884"
          type_id="1"
          status="+"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>