<?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>238434</bug_id>
          
          <creation_ts>2022-03-27 21:25:57 -0700</creation_ts>
          <short_desc>[WebGPU] There&apos;s no need to sprinkle std::optionals everywhere just for _Force32 enum values</short_desc>
          <delta_ts>2022-03-31 22:24:16 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>djg</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1855494</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-27 21:25:57 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855495</commentid>
    <comment_count>1</comment_count>
      <attachid>455884</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-27 21:35:08 -0700</bug_when>
    <thetext>Created attachment 455884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857159</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-31 22:23:20 -0700</bug_when>
    <thetext>Committed r292204 (249107@trunk): &lt;https://commits.webkit.org/249107@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857160</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-31 22:24:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/91145642&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455884</attachid>
            <date>2022-03-27 21:35:08 -0700</date>
            <delta_ts>2022-03-31 16:38:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>27753</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IDQzYjMzMzM0NGRmZTY5MWNlM2QyM2VlZmFjYzRjMzZmOGRjMzAyNjMKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBTdW4gTWFyIDI3
IDIxOjMzOjM3IDIwMjIgLTA3MDAKCiAgICBQYXJ0IDgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IDAyZmFiM2FlZjlh
Yy4uNDIxZjE2ZjE3NGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDIyLTAzLTI3ICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdQ
VV0gVGhlcmUncyBubyBuZWVkIHRvIHNwcmlua2xlIHN0ZDo6b3B0aW9uYWxzIGV2ZXJ5d2hlcmUg
anVzdCBmb3IgX0ZvcmNlMzIgZW51bSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQzNAorCisgICAgICAgIEZvciBBQkkgY29tcGF0aWJp
bGl0eSwgdGhlIHNoYXJlZCBoZWFkZXIgdXNlcyB0aGlzIHBhdHRlcm46CisKKyAgICAgICAgZW51
bSBGb28geworICAgICAgICAgICAgRm9vX0FWYWx1ZSA9IDEsCisgICAgICAgICAgICBGb29fQW5v
dGhlclZhbHVlID0gMiwKKyAgICAgICAgICAgIEZvb19Tb21lT3RoZXJWYWx1ZSA9IDMsCisgICAg
ICAgICAgICBGb29fRm9yY2UzMiA9IDB4N0ZGRkZGRkYKKyAgICAgICAgfTsKKworICAgICAgICBU
aGlzIGlzIHNvIHRoYXQgbW9yZSB2YWx1ZXMgY2FuIGJlIGFkZGVkIHRvIHRoZSBlbnVtIHdpdGhv
dXQgbWFraW5nIGl0IHdpZGVyLgorCisgICAgICAgIEhvd2V2ZXIsIHRoaXMgbWVhbnMgdGhhdCBp
ZiB5b3Ugd2FudCB0byBzd2l0Y2ggb3ZlciB0aGUgdmFsdWVzIG9mIEZvbywgeW91IGhhdmUgdG8g
aGF2ZQorICAgICAgICBhIGR1bW15IF9Gb3JjZTMyIGNhc2UuIFRoZXNlIGNhc2VzIHdpbGwgbmV2
ZXIgYWN0dWFsbHkgb2NjdXIsIGFuZCB3ZSBoYXZlIEFTU0VSVHMoKSBmb3IKKyAgICAgICAgdGhl
bS4KKworICAgICAgICBPcmlnaW5hbGx5LCBJIG1hZGUgc29tZSBmdW5jdGlvbnMgcmV0dXJuIGEg
c3RkOjpvcHRpb25hbDw+IHNvIHRoYXQgdGhlcmUgd2FzIHNvbWUgImVtcHR5IgorICAgICAgICB2
YWx1ZSB0aGF0IGNvdWxkIGJlIHJldHVybmVkIGluIHRoZXNlIGNhc2Ugc3RhdGVtZW50cy4gVGhh
dCBtZWFucyB0aGF0IGV2ZXJ5IGNhbGxlciBvZgorICAgICAgICBhbnkgZnVuY3Rpb24gdGhhdCBz
d2l0Y2hlcyBvdmVyIGFueSBlbnVtIGhhcyB0byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIGZvciBu
dWxsb3B0LiBUaGlzCisgICAgICAgIGlzIHByZXR0eSB5dWNreS4KKworICAgICAgICBBbmQsIGlu
ZGVlZCwgaXQncyBhbGwgZm9yIG5vdGhpbmcgLSB0aGUgY2xpZW50IGNhbGxpbmcgaW50byBXZWJH
UFUgY2FuIGhhcHBpbHkgY2FzdCBhbnkKKyAgICAgICAgYXJpYnRyYXJ5IGludGVnZXIgdG8gYSBG
b28gY2FuIGNhbGwgb3VyIGZ1bmN0aW9ucywgc28gdGhlIGNhc2VzIGZvciB0aGUgX0ZvcmNlMzIg
dmFsdWVzCisgICAgICAgIHNob3VsZCBiZSBubyBkaWZmZXJlbnQuIFRoZXJlZm9yZSwgd2UgY2Fu
IGp1c3Qgc2F5ICJpbiBvcmRlciB0byBjYWxsIFdlYkdQVSBmdW5jdGlvbnMsCisgICAgICAgIGl0
J3MgaWxsZWdhbCB0byBwYXNzIGluIHRoZSBfRm9yY2UzMiB2YWx1ZXMgKGp1c3QgYXMgaXQgd291
bGQgYmUgaWxsZWdhbCB0byBwYXNzIGluCisgICAgICAgIHVuYXNzaWduZWQgdmFsdWVzKS4iIFRo
aXMgbWVhbnMgd2UgY2FuIGNsZWFuIHVwIHRoZSBjb2RlIGEgYml0LCBhbmQgcmVtb3ZlIGEgYnVu
Y2ggb2YKKyAgICAgICAgbnVsbG9wdCBjaGVja3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFUvQmluZEdyb3VwTGF5b3V0Lm1tOgorICAg
ICAgICAoV2ViR1BVOjpjcmVhdGVBcmd1bWVudERlc2NyaXB0b3IpOgorICAgICAgICAqIFdlYkdQ
VS9CdWZmZXIubW06CisgICAgICAgIChXZWJHUFU6OkJ1ZmZlcjo6bWFwQXN5bmMpOgorICAgICAg
ICAqIFdlYkdQVS9Db21tYW5kRW5jb2Rlci5tbToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVu
Y29kZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUpOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5j
b2Rlcjo6Y29weVRleHR1cmVUb0J1ZmZlcik6CisgICAgICAgICogV2ViR1BVL0luc3RhbmNlLm1t
OgorICAgICAgICAoV2ViR1BVOjpzb3J0ZWREZXZpY2VzKToKKyAgICAgICAgKiBXZWJHUFUvUXVl
dWUubW06CisgICAgICAgIChXZWJHUFU6OlF1ZXVlOjp3cml0ZVRleHR1cmUpOgorICAgICAgICAq
IFdlYkdQVS9TYW1wbGVyLm1tOgorICAgICAgICAoV2ViR1BVOjphZGRyZXNzTW9kZSk6CisgICAg
ICAgIChXZWJHUFU6Om1pbk1hZ0ZpbHRlcik6CisgICAgICAgIChXZWJHUFU6Om1pcEZpbHRlcik6
CisgICAgICAgIChXZWJHUFU6OmNvbXBhcmVGdW5jdGlvbik6CisgICAgICAgIChXZWJHUFU6OkRl
dmljZTo6Y3JlYXRlU2FtcGxlcik6CisgICAgICAgICogV2ViR1BVL1RleHR1cmUuaDoKKyAgICAg
ICAgKiBXZWJHUFUvVGV4dHVyZS5tbToKKyAgICAgICAgKFdlYkdQVTo6ZmVhdHVyZVJlcXVpcmVt
ZW50Rm9yRm9ybWF0KToKKyAgICAgICAgKFdlYkdQVTo6aXNDb21wcmVzc2VkRm9ybWF0KToKKyAg
ICAgICAgKFdlYkdQVTo6c3RlbmNpbFNwZWNpZmljRm9ybWF0KToKKyAgICAgICAgKFdlYkdQVTo6
VGV4dHVyZTo6dGV4ZWxCbG9ja1dpZHRoKToKKyAgICAgICAgKFdlYkdQVTo6VGV4dHVyZTo6dGV4
ZWxCbG9ja0hlaWdodCk6CisgICAgICAgIChXZWJHUFU6OmlzUmVuZGVyYWJsZUZvcm1hdCk6Cisg
ICAgICAgIChXZWJHUFU6OnN1cHBvcnRzTXVsdGlzYW1wbGluZyk6CisgICAgICAgIChXZWJHUFU6
Om1heGltdW1NaXBsZXZlbENvdW50KToKKyAgICAgICAgKFdlYkdQVTo6aGFzU3RvcmFnZUJpbmRp
bmdDYXBhYmlsaXR5KToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjp2YWxpZGF0ZUNyZWF0ZVRl
eHR1cmUpOgorICAgICAgICAoV2ViR1BVOjpwaXhlbEZvcm1hdCk6CisgICAgICAgIChXZWJHUFU6
OmRlcHRoT25seUFzcGVjdE1ldGFsRm9ybWF0KToKKyAgICAgICAgKFdlYkdQVTo6c3RlbmNpbE9u
bHlBc3BlY3RNZXRhbEZvcm1hdCk6CisgICAgICAgIChXZWJHUFU6OkRldmljZTo6Y3JlYXRlVGV4
dHVyZSk6CisgICAgICAgIChXZWJHUFU6OlRleHR1cmU6OnJlc29sdmVUZXh0dXJlVmlld0Rlc2Ny
aXB0b3JEZWZhdWx0cyBjb25zdCk6CisgICAgICAgIChXZWJHUFU6OlRleHR1cmU6OnZhbGlkYXRl
Q3JlYXRlVmlldyBjb25zdCk6CisgICAgICAgIChXZWJHUFU6OlRleHR1cmU6OmNyZWF0ZVZpZXcp
OgorICAgICAgICAoV2ViR1BVOjpUZXh0dXJlOjpyZWZlcnNUb1NpbmdsZUFzcGVjdCk6CisKIDIw
MjItMDMtMjcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV2ViR1BVXSAyIHRleHR1cmUgZm9ybWF0cyBuZWVkIHRvIGJlIGd1YXJkZWQgYmVoaW5k
IG9wdGlvbmFsIGV4dGVuc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0Jp
bmRHcm91cExheW91dC5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0JpbmRHcm91cExheW91dC5t
bQppbmRleCAwNTkzNjI5ZjQ4MmQuLmZkMTNjM2IwNWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkdQVS9XZWJHUFUvQmluZEdyb3VwTGF5b3V0Lm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L0JpbmRHcm91cExheW91dC5tbQpAQCAtNTUsNiArNTUsNyBAQCBzdGF0aWMgTVRMQXJndW1lbnRE
ZXNjcmlwdG9yICpjcmVhdGVBcmd1bWVudERlc2NyaXB0b3IoY29uc3QgV0dQVUJ1ZmZlckJpbmRp
bmdMYQogICAgICAgICBicmVhazsKICAgICBjYXNlIFdHUFVCdWZmZXJCaW5kaW5nVHlwZV9VbmRl
ZmluZWQ6CiAgICAgY2FzZSBXR1BVQnVmZmVyQmluZGluZ1R5cGVfRm9yY2UzMjoKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogICAgIHJl
dHVybiBkZXNjcmlwdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVy
Lm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCmluZGV4IGFhMWIxMjRlNDUxMy4u
MDlmNzI4ZDk1YWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0K
KysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCkBAIC0zNDEsNiArMzQxLDcgQEAg
dm9pZCBCdWZmZXI6Om1hcEFzeW5jKFdHUFVNYXBNb2RlRmxhZ3MgbW9kZSwgc2l6ZV90IG9mZnNl
dCwgc2l6ZV90IHNpemUsIENvbXBsZXQKICAgICAgICAgICAgIGNhbGxiYWNrKFdHUFVCdWZmZXJN
YXBBc3luY1N0YXR1c19EZXZpY2VMb3N0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Y2FzZSBXR1BVUXVldWVXb3JrRG9uZVN0YXR1c19Gb3JjZTMyOgorICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBjYWxsYmFjayhXR1BVQnVmZmVyTWFwQXN5bmNT
dGF0dXNfRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tCmluZGV4IGIzZjE1ZWNhM2ZjYy4uMTExOTBlNzU3MzI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQorKysg
Yi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQpAQCAtMjkxLDYgKzI5MSw3
IEBAIHZvaWQgQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb1RleHR1cmUoY29uc3QgV0dQVUlt
YWdlQ29weUJ1ZmZlciYgc291cmNlLCBjb25zCiAgICAgICAgIG9wdGlvbnMgPSBNVExCbGl0T3B0
aW9uRGVwdGhGcm9tRGVwdGhTdGVuY2lsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdHUFVU
ZXh0dXJlQXNwZWN0X0ZvcmNlMzI6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zNjUsNiArMzY2LDcgQEAgdm9pZCBDb21tYW5kRW5j
b2Rlcjo6Y29weUJ1ZmZlclRvVGV4dHVyZShjb25zdCBXR1BVSW1hZ2VDb3B5QnVmZmVyJiBzb3Vy
Y2UsIGNvbnMKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgV0dQVVRleHR1cmVEaW1l
bnNpb25fRm9yY2UzMjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiB9CkBAIC00NzQsNiArNDc2LDcgQEAgdm9pZCBDb21tYW5kRW5jb2Rlcjo6
Y29weVRleHR1cmVUb0J1ZmZlcihjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYgc291cmNlLCBj
b24KICAgICAgICAgb3B0aW9ucyA9IE1UTEJsaXRPcHRpb25EZXB0aEZyb21EZXB0aFN0ZW5jaWw7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfRm9yY2UzMjoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTU0OCw2ICs1NTEsNyBAQCB2b2lkIENvbW1hbmRFbmNvZGVyOjpjb3B5VGV4dHVyZVRvQnVmZmVy
KGNvbnN0IFdHUFVJbWFnZUNvcHlUZXh0dXJlJiBzb3VyY2UsIGNvbgogICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgY2FzZSBXR1BVVGV4dHVyZURpbWVuc2lvbl9Gb3JjZTMyOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0luc3RhbmNlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJH
UFUvSW5zdGFuY2UubW0KaW5kZXggNjI2NDA5MzU0NDQ5Li43YzJhY2FjZmZjYzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0luc3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0luc3RhbmNlLm1tCkBAIC0xMjMsNiArMTIzLDcgQEAgc3RhdGljIE5TQXJyYXk8aWQ8
TVRMRGV2aWNlPj4gKnNvcnRlZERldmljZXMoTlNBcnJheTxpZDxNVExEZXZpY2U+PiAqZGV2aWNl
cywgV0cKICAgICAgICAgcmV0dXJuIGRldmljZXM7CiAjZW5kaWYKICAgICBjYXNlIFdHUFVQb3dl
clByZWZlcmVuY2VfRm9yY2UzMjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiBuaWw7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJH
UFUvUXVldWUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQppbmRleCAyMGVmOWNm
ZjM4NDguLjhjODNlMzg4NmM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVl
dWUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KQEAgLTMzNSw2ICszMzUs
NyBAQCB2b2lkIFF1ZXVlOjp3cml0ZVRleHR1cmUoY29uc3QgV0dQVUltYWdlQ29weVRleHR1cmUm
IGRlc3RpbmF0aW9uLCBjb25zdCB2b2lkKiBkYQogICAgICAgICBvcHRpb25zID0gTVRMQmxpdE9w
dGlvbkRlcHRoRnJvbURlcHRoU3RlbmNpbDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXR1BV
VGV4dHVyZUFzcGVjdF9Gb3JjZTMyOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDg0LDYgKzQ4NSw3IEBAIHZvaWQgUXVldWU6Ondy
aXRlVGV4dHVyZShjb25zdCBXR1BVSW1hZ2VDb3B5VGV4dHVyZSYgZGVzdGluYXRpb24sIGNvbnN0
IHZvaWQqIGRhCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdHUFVUZXh0dXJlRGlt
ZW5zaW9uX0ZvcmNlMzI6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxl
ci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KaW5kZXggODI3MzkwNDk5NGNi
Li5lNTdmYTI2NWRkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIu
bW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQpAQCAtNjIsNyArNjIsNyBA
QCBzdGF0aWMgYm9vbCB2YWxpZGF0ZUNyZWF0ZVNhbXBsZXIoRGV2aWNlJiwgY29uc3QgV0dQVVNh
bXBsZXJEZXNjcmlwdG9yJiBkZXNjcmlwdAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMg
c3RkOjpvcHRpb25hbDxNVExTYW1wbGVyQWRkcmVzc01vZGU+IGFkZHJlc3NNb2RlKFdHUFVBZGRy
ZXNzTW9kZSBhZGRyZXNzTW9kZSkKK3N0YXRpYyBNVExTYW1wbGVyQWRkcmVzc01vZGUgYWRkcmVz
c01vZGUoV0dQVUFkZHJlc3NNb2RlIGFkZHJlc3NNb2RlKQogewogICAgIHN3aXRjaCAoYWRkcmVz
c01vZGUpIHsKICAgICBjYXNlIFdHUFVBZGRyZXNzTW9kZV9SZXBlYXQ6CkBAIC03MiwxMSArNzIs
MTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TVRMU2FtcGxlckFkZHJlc3NNb2RlPiBhZGRyZXNz
TW9kZShXR1BVQWRkcmVzc01vZGUgYWRkcmVzc00KICAgICBjYXNlIFdHUFVBZGRyZXNzTW9kZV9D
bGFtcFRvRWRnZToKICAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJBZGRyZXNzTW9kZUNsYW1wVG9F
ZGdlOwogICAgIGNhc2UgV0dQVUFkZHJlc3NNb2RlX0ZvcmNlMzI6Ci0gICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gTVRMU2FtcGxlckFkZHJlc3NNb2RlQ2xhbXBUb0VkZ2U7CiAgICAgfQogfQogCi1zdGF0aWMg
c3RkOjpvcHRpb25hbDxNVExTYW1wbGVyTWluTWFnRmlsdGVyPiBtaW5NYWdGaWx0ZXIoV0dQVUZp
bHRlck1vZGUgZmlsdGVyTW9kZSkKK3N0YXRpYyBNVExTYW1wbGVyTWluTWFnRmlsdGVyIG1pbk1h
Z0ZpbHRlcihXR1BVRmlsdGVyTW9kZSBmaWx0ZXJNb2RlKQogewogICAgIHN3aXRjaCAoZmlsdGVy
TW9kZSkgewogICAgIGNhc2UgV0dQVUZpbHRlck1vZGVfTmVhcmVzdDoKQEAgLTg0LDExICs4NSwx
MiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxNVExTYW1wbGVyTWluTWFnRmlsdGVyPiBtaW5NYWdG
aWx0ZXIoV0dQVUZpbHRlck1vZGUgZmlsdGVyTQogICAgIGNhc2UgV0dQVUZpbHRlck1vZGVfTGlu
ZWFyOgogICAgICAgICByZXR1cm4gTVRMU2FtcGxlck1pbk1hZ0ZpbHRlckxpbmVhcjsKICAgICBj
YXNlIFdHUFVGaWx0ZXJNb2RlX0ZvcmNlMzI6Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gTVRMU2FtcGxl
ck1pbk1hZ0ZpbHRlck5lYXJlc3Q7CiAgICAgfQogfQogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDxN
VExTYW1wbGVyTWlwRmlsdGVyPiBtaXBGaWx0ZXIoV0dQVUZpbHRlck1vZGUgZmlsdGVyTW9kZSkK
K3N0YXRpYyBNVExTYW1wbGVyTWlwRmlsdGVyIG1pcEZpbHRlcihXR1BVRmlsdGVyTW9kZSBmaWx0
ZXJNb2RlKQogewogICAgIHN3aXRjaCAoZmlsdGVyTW9kZSkgewogICAgIGNhc2UgV0dQVUZpbHRl
ck1vZGVfTmVhcmVzdDoKQEAgLTk2LDE1ICs5OCwxNCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxN
VExTYW1wbGVyTWlwRmlsdGVyPiBtaXBGaWx0ZXIoV0dQVUZpbHRlck1vZGUgZmlsdGVyTW9kZSkK
ICAgICBjYXNlIFdHUFVGaWx0ZXJNb2RlX0xpbmVhcjoKICAgICAgICAgcmV0dXJuIE1UTFNhbXBs
ZXJNaXBGaWx0ZXJMaW5lYXI7CiAgICAgY2FzZSBXR1BVRmlsdGVyTW9kZV9Gb3JjZTMyOgotICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuIE1UTFNhbXBsZXJNaXBGaWx0ZXJOZWFyZXN0OwogICAgIH0KIH0KIAot
c3RhdGljIHN0ZDo6b3B0aW9uYWw8TVRMQ29tcGFyZUZ1bmN0aW9uPiBjb21wYXJlRnVuY3Rpb24o
V0dQVUNvbXBhcmVGdW5jdGlvbiBjb21wYXJlRnVuY3Rpb24pCitzdGF0aWMgTVRMQ29tcGFyZUZ1
bmN0aW9uIGNvbXBhcmVGdW5jdGlvbihXR1BVQ29tcGFyZUZ1bmN0aW9uIGNvbXBhcmVGdW5jdGlv
bikKIHsKICAgICBzd2l0Y2ggKGNvbXBhcmVGdW5jdGlvbikgewotICAgIGNhc2UgV0dQVUNvbXBh
cmVGdW5jdGlvbl9VbmRlZmluZWQ6Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
Y2FzZSBXR1BVQ29tcGFyZUZ1bmN0aW9uX05ldmVyOgogICAgICAgICByZXR1cm4gTVRMQ29tcGFy
ZUZ1bmN0aW9uTmV2ZXI7CiAgICAgY2FzZSBXR1BVQ29tcGFyZUZ1bmN0aW9uX0xlc3M6CkBAIC0x
MjEsOCArMTIyLDEwIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1UTENvbXBhcmVGdW5jdGlvbj4g
Y29tcGFyZUZ1bmN0aW9uKFdHUFVDb21wYXJlRnVuY3Rpb24gY29tCiAgICAgICAgIHJldHVybiBN
VExDb21wYXJlRnVuY3Rpb25Ob3RFcXVhbDsKICAgICBjYXNlIFdHUFVDb21wYXJlRnVuY3Rpb25f
QWx3YXlzOgogICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uQWx3YXlzOworICAgIGNh
c2UgV0dQVUNvbXBhcmVGdW5jdGlvbl9VbmRlZmluZWQ6CiAgICAgY2FzZSBXR1BVQ29tcGFyZUZ1
bmN0aW9uX0ZvcmNlMzI6Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gTVRMQ29tcGFyZUZ1bmN0aW9uQWx3
YXlzOwogICAgIH0KIH0KIApAQCAtMTQ0LDQ0ICsxNDcsMTUgQEAgUmVmUHRyPFNhbXBsZXI+IERl
dmljZTo6Y3JlYXRlU2FtcGxlcihjb25zdCBXR1BVU2FtcGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0
b3IpCiAKICAgICBNVExTYW1wbGVyRGVzY3JpcHRvciAqc2FtcGxlckRlc2NyaXB0b3IgPSBbTVRM
U2FtcGxlckRlc2NyaXB0b3IgbmV3XTsKIAotICAgIGlmIChhdXRvIGFkZHJlc3NNb2RlID0gV2Vi
R1BVOjphZGRyZXNzTW9kZShkZXNjcmlwdG9yLmFkZHJlc3NNb2RlVSkpCi0gICAgICAgIHNhbXBs
ZXJEZXNjcmlwdG9yLnJBZGRyZXNzTW9kZSA9IGFkZHJlc3NNb2RlLnZhbHVlKCk7Ci0gICAgZWxz
ZQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmIChhdXRvIGFkZHJlc3NNb2RlID0g
V2ViR1BVOjphZGRyZXNzTW9kZShkZXNjcmlwdG9yLmFkZHJlc3NNb2RlVikpCi0gICAgICAgIHNh
bXBsZXJEZXNjcmlwdG9yLnNBZGRyZXNzTW9kZSA9IGFkZHJlc3NNb2RlLnZhbHVlKCk7Ci0gICAg
ZWxzZQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmIChhdXRvIGFkZHJlc3NNb2Rl
ID0gV2ViR1BVOjphZGRyZXNzTW9kZShkZXNjcmlwdG9yLmFkZHJlc3NNb2RlVykpCi0gICAgICAg
IHNhbXBsZXJEZXNjcmlwdG9yLnRBZGRyZXNzTW9kZSA9IGFkZHJlc3NNb2RlLnZhbHVlKCk7Ci0g
ICAgZWxzZQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmIChhdXRvIG1pbk1hZ0Zp
bHRlciA9IFdlYkdQVTo6bWluTWFnRmlsdGVyKGRlc2NyaXB0b3IubWFnRmlsdGVyKSkKLSAgICAg
ICAgc2FtcGxlckRlc2NyaXB0b3IubWFnRmlsdGVyID0gbWluTWFnRmlsdGVyLnZhbHVlKCk7Ci0g
ICAgZWxzZQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmIChhdXRvIG1pbk1hZ0Zp
bHRlciA9IFdlYkdQVTo6bWluTWFnRmlsdGVyKGRlc2NyaXB0b3IubWluRmlsdGVyKSkKLSAgICAg
ICAgc2FtcGxlckRlc2NyaXB0b3IubWluRmlsdGVyID0gbWluTWFnRmlsdGVyLnZhbHVlKCk7Ci0g
ICAgZWxzZQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmIChhdXRvIG1pcEZpbHRl
ciA9IFdlYkdQVTo6bWlwRmlsdGVyKGRlc2NyaXB0b3IubWlwbWFwRmlsdGVyKSkKLSAgICAgICAg
c2FtcGxlckRlc2NyaXB0b3IubWlwRmlsdGVyID0gbWlwRmlsdGVyLnZhbHVlKCk7Ci0gICAgZWxz
ZQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQorICAgIHNhbXBsZXJEZXNjcmlwdG9yLnJBZGRy
ZXNzTW9kZSA9IGFkZHJlc3NNb2RlKGRlc2NyaXB0b3IuYWRkcmVzc01vZGVVKTsKKyAgICBzYW1w
bGVyRGVzY3JpcHRvci5zQWRkcmVzc01vZGUgPSBhZGRyZXNzTW9kZShkZXNjcmlwdG9yLmFkZHJl
c3NNb2RlVik7CisgICAgc2FtcGxlckRlc2NyaXB0b3IudEFkZHJlc3NNb2RlID0gYWRkcmVzc01v
ZGUoZGVzY3JpcHRvci5hZGRyZXNzTW9kZVcpOworICAgIHNhbXBsZXJEZXNjcmlwdG9yLm1hZ0Zp
bHRlciA9IG1pbk1hZ0ZpbHRlcihkZXNjcmlwdG9yLm1hZ0ZpbHRlcik7CisgICAgc2FtcGxlckRl
c2NyaXB0b3IubWluRmlsdGVyID0gbWluTWFnRmlsdGVyKGRlc2NyaXB0b3IubWluRmlsdGVyKTsK
KyAgICBzYW1wbGVyRGVzY3JpcHRvci5taXBGaWx0ZXIgPSBtaXBGaWx0ZXIoZGVzY3JpcHRvci5t
aXBtYXBGaWx0ZXIpOwogICAgIHNhbXBsZXJEZXNjcmlwdG9yLmxvZE1pbkNsYW1wID0gZGVzY3Jp
cHRvci5sb2RNaW5DbGFtcDsKLQogICAgIHNhbXBsZXJEZXNjcmlwdG9yLmxvZE1heENsYW1wID0g
ZGVzY3JpcHRvci5sb2RNYXhDbGFtcDsKLQotICAgIGlmIChhdXRvIGNvbXBhcmVGdW5jdGlvbiA9
IFdlYkdQVTo6Y29tcGFyZUZ1bmN0aW9uKGRlc2NyaXB0b3IuY29tcGFyZSkpCi0gICAgICAgIHNh
bXBsZXJEZXNjcmlwdG9yLmNvbXBhcmVGdW5jdGlvbiA9IGNvbXBhcmVGdW5jdGlvbi52YWx1ZSgp
OwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgc2FtcGxlckRlc2NyaXB0
b3IuY29tcGFyZUZ1bmN0aW9uID0gY29tcGFyZUZ1bmN0aW9uKGRlc2NyaXB0b3IuY29tcGFyZSk7
CiAKICAgICAvLyAiVGhlIHVzZWQgdmFsdWUgb2YgbWF4QW5pc290cm9weSB3aWxsIGJlIGNsYW1w
ZWQgdG8gdGhlIG1heGltdW0gdmFsdWUgdGhhdCB0aGUgcGxhdGZvcm0gc3VwcG9ydHMuIgogICAg
IC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL21ldGFsL210bHNh
bXBsZXJkZXNjcmlwdG9yLzE1MTYxNjQtbWF4YW5pc290cm9weT9sYW5ndWFnZT1vYmpjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLmggYi9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9UZXh0dXJlLmgKaW5kZXggOTJlMDc2MDU3NzNjLi45ZDllODBiYThmNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1RleHR1cmUuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9UZXh0dXJlLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBU
ZXh0dXJlKGlkPE1UTFRleHR1cmU+LCBjb25zdCBXR1BVVGV4dHVyZURlc2NyaXB0b3ImLCBEZXZp
Y2UmKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8V0dQVVRleHR1cmVWaWV3RGVzY3JpcHRvcj4gcmVz
b2x2ZVRleHR1cmVWaWV3RGVzY3JpcHRvckRlZmF1bHRzKGNvbnN0IFdHUFVUZXh0dXJlVmlld0Rl
c2NyaXB0b3ImKSBjb25zdDsKKyAgICBXR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yIHJlc29sdmVU
ZXh0dXJlVmlld0Rlc2NyaXB0b3JEZWZhdWx0cyhjb25zdCBXR1BVVGV4dHVyZVZpZXdEZXNjcmlw
dG9yJikgY29uc3Q7CiAgICAgdWludDMyX3QgYXJyYXlMYXllckNvdW50KCkgY29uc3Q7CiAgICAg
Ym9vbCB2YWxpZGF0ZUNyZWF0ZVZpZXcoY29uc3QgV0dQVVRleHR1cmVWaWV3RGVzY3JpcHRvciYp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tIGIv
U291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZS5tbQppbmRleCBjY2RmOWUyMmQ1YWUuLjQ0YmQw
OWVmZTI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZS5tbQorKysg
Yi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9UZXh0dXJlLm1tCkBAIC05NSw3ICs5NSw2IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFdHUFVGZWF0dXJlTmFtZT4gZmVhdHVyZVJlcXVpcmVtZW50Rm9yRm9y
bWF0KFdHUFVUZXh0dXJlRm9yCiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDMTJ4MTJV
bm9ybToKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMlVub3JtU3JnYjoKICAg
ICAgICAgcmV0dXJuIFdHUFVGZWF0dXJlTmFtZV9UZXh0dXJlQ29tcHJlc3Npb25BU1RDOwotICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfVW5kZWZpbmVkOgogICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfUjhVbm9ybToKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1I4U25vcm06CiAgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFVpbnQ6CkBAIC0xMzcsNyArMTM2LDEwIEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFdHUFVGZWF0dXJlTmFtZT4gZmVhdHVyZVJlcXVpcmVtZW50Rm9yRm9y
bWF0KFdHUFVUZXh0dXJlRm9yCiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9EZXB0aDI0UGx1
czoKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0RlcHRoMjRQbHVzU3RlbmNpbDg6CiAgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9EZXB0aDMyRmxvYXQ6CisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9VbmRlZmluZWQ6CiAgICAgY2Fz
ZSBXR1BVVGV4dHVyZUZvcm1hdF9Gb3JjZTMyOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiB9CkBAIC0yMDAsNyArMjAy
LDYgQEAgc3RhdGljIGJvb2wgaXNDb21wcmVzc2VkRm9ybWF0KFdHUFVUZXh0dXJlRm9ybWF0IGZv
cm1hdCkKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMlVub3JtOgogICAgIGNh
c2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEyeDEyVW5vcm1TcmdiOgogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1VuZGVmaW5lZDoKICAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X1I4VW5vcm06CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFNu
b3JtOgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUjhVaW50OgpAQCAtMjQ0LDcgKzI0NSwx
MCBAQCBzdGF0aWMgYm9vbCBpc0NvbXByZXNzZWRGb3JtYXQoV0dQVVRleHR1cmVGb3JtYXQgZm9y
bWF0KQogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRGVwdGgyNFVub3JtU3RlbmNpbDg6CiAg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9EZXB0aDMyRmxvYXQ6CiAgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9EZXB0aDMyRmxvYXRTdGVuY2lsODoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfVW5kZWZpbmVkOgogICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfRm9yY2UzMjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiB9CkBAIC00MDYsNyArNDEwLDYgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8V0dQVVRleHR1cmVGb3JtYXQ+IHN0ZW5jaWxTcGVjaWZpY0Zvcm1hdChXR1BVVGV4
dHVyZUZvcm1hdAogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQTMyVWludDoKICAgICBj
YXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQkEzMlNpbnQ6CiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0gICAgLy8gRGVwdGgtc3RlbmNpbCBmb3JtYXRzOgogICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfU3RlbmNpbDg6CiAgICAgICAgIHJldHVybiBXR1BVVGV4dHVyZUZvcm1hdF9TdGVu
Y2lsODsKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0RlcHRoMTZVbm9ybToKQEAgLTU2MSw3
ICs1NjQsNiBAQCB1aW50MzJfdCBUZXh0dXJlOjp0ZXhlbEJsb2NrV2lkdGgoV0dQVVRleHR1cmVG
b3JtYXQgZm9ybWF0KQogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEyeDEyVW5vcm1T
cmdiOgogICAgICAgICByZXR1cm4gMTI7CiAgICAgLy8gIkZvciBwaXhlbC1iYXNlZCBHUFVUZXh0
dXJlRm9ybWF0cywgdGhlIHRleGVsIGJsb2NrIHdpZHRoIGFuZCB0ZXhlbCBibG9jayBoZWlnaHQg
YXJlIGFsd2F5cyAxLiIKLSAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1VuZGVmaW5lZDoKICAg
ICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1I4VW5vcm06CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZv
cm1hdF9SOFNub3JtOgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUjhVaW50OgpAQCAtNjA1
LDggKzYwNywxMSBAQCB1aW50MzJfdCBUZXh0dXJlOjp0ZXhlbEJsb2NrV2lkdGgoV0dQVVRleHR1
cmVGb3JtYXQgZm9ybWF0KQogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRGVwdGgyNFVub3Jt
U3RlbmNpbDg6CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9EZXB0aDMyRmxvYXQ6CiAgICAg
Y2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9EZXB0aDMyRmxvYXRTdGVuY2lsODoKLSAgICBjYXNlIFdH
UFVUZXh0dXJlRm9ybWF0X0ZvcmNlMzI6CiAgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgV0dQ
VVRleHR1cmVGb3JtYXRfVW5kZWZpbmVkOgorICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRm9y
Y2UzMjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIH0KIApAQCAtNjgwLDcgKzY4NSw2IEBAIHVpbnQzMl90IFRleHR1cmU6OnRleGVsQmxv
Y2tIZWlnaHQoV0dQVVRleHR1cmVGb3JtYXQgZm9ybWF0KQogICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfQVNUQzEyeDEyVW5vcm1TcmdiOgogICAgICAgICByZXR1cm4gMTI7CiAgICAgLy8gIkZv
ciBwaXhlbC1iYXNlZCBHUFVUZXh0dXJlRm9ybWF0cywgdGhlIHRleGVsIGJsb2NrIHdpZHRoIGFu
ZCB0ZXhlbCBibG9jayBoZWlnaHQgYXJlIGFsd2F5cyAxLiIKLSAgICBjYXNlIFdHUFVUZXh0dXJl
Rm9ybWF0X1VuZGVmaW5lZDoKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1I4VW5vcm06CiAg
ICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFNub3JtOgogICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfUjhVaW50OgpAQCAtNzI0LDggKzcyOCwxMSBAQCB1aW50MzJfdCBUZXh0dXJlOjp0ZXhl
bEJsb2NrSGVpZ2h0KFdHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdCkKICAgICBjYXNlIFdHUFVUZXh0
dXJlRm9ybWF0X0RlcHRoMjRVbm9ybVN0ZW5jaWw4OgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3Jt
YXRfRGVwdGgzMkZsb2F0OgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRGVwdGgzMkZsb2F0
U3RlbmNpbDg6Ci0gICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9Gb3JjZTMyOgogICAgICAgICBy
ZXR1cm4gMTsKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1VuZGVmaW5lZDoKKyAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0ZvcmNlMzI6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm4gMDsKICAgICB9CiB9CiAKQEAgLTc3NSw3ICs3ODIsNiBAQCBzdGF0
aWMgYm9vbCBpc1JlbmRlcmFibGVGb3JtYXQoV0dQVVRleHR1cmVGb3JtYXQgZm9ybWF0KQogICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRGVwdGgzMkZsb2F0OgogICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfRGVwdGgzMkZsb2F0U3RlbmNpbDg6CiAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfVW5kZWZpbmVkOgogICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfUjhTbm9ybToKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHOFNub3JtOgogICAg
IGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUkdCQThTbm9ybToKQEAgLTgzMiw3ICs4MzgsMTAgQEAg
c3RhdGljIGJvb2wgaXNSZW5kZXJhYmxlRm9ybWF0KFdHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdCkK
ICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMFVub3JtU3JnYjoKICAgICBjYXNl
IFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMlVub3JtOgogICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfQVNUQzEyeDEyVW5vcm1TcmdiOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2Fz
ZSBXR1BVVGV4dHVyZUZvcm1hdF9VbmRlZmluZWQ6CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1h
dF9Gb3JjZTMyOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIH0KQEAgLTg3OSw3ICs4ODgsNiBAQCBzdGF0aWMgYm9vbCBzdXBwb3J0
c011bHRpc2FtcGxpbmcoV0dQVVRleHR1cmVGb3JtYXQgZm9ybWF0KQogICAgIGNhc2UgV0dQVVRl
eHR1cmVGb3JtYXRfRGVwdGgzMkZsb2F0OgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRGVw
dGgzMkZsb2F0U3RlbmNpbDg6CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgV0dQVVRl
eHR1cmVGb3JtYXRfVW5kZWZpbmVkOgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUjMyVWlu
dDoKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1IzMlNpbnQ6CiAgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9SRzMyRmxvYXQ6CkBAIC05NDAsNyArOTQ4LDEwIEBAIHN0YXRpYyBib29sIHN1
cHBvcnRzTXVsdGlzYW1wbGluZyhXR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQpCiAgICAgY2FzZSBX
R1BVVGV4dHVyZUZvcm1hdF9BU1RDMTJ4MTBVbm9ybVNyZ2I6CiAgICAgY2FzZSBXR1BVVGV4dHVy
ZUZvcm1hdF9BU1RDMTJ4MTJVbm9ybToKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMx
MngxMlVub3JtU3JnYjoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfVW5kZWZpbmVkOgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRm9yY2UzMjoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiB9CkBAIC05NjYsNiArOTc3LDcgQEAgc3RhdGljIHVpbnQzMl90IG1heGltdW1NaXBsZXZl
bENvdW50KFdHUFVUZXh0dXJlRGltZW5zaW9uIGRpbWVuc2lvbiwgV0dQVUV4dGVudDMKICAgICAg
ICAgbSA9IHN0ZDo6bWF4KHN0ZDo6bWF4KHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KSwgc2l6ZS5k
ZXB0aE9yQXJyYXlMYXllcnMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdHUFVUZXh0dXJl
RGltZW5zaW9uX0ZvcmNlMzI6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTk5Nyw3ICsxMDA5LDYgQEAgc3RhdGljIGJvb2wgaGFz
U3RvcmFnZUJpbmRpbmdDYXBhYmlsaXR5KFdHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdCkKICAgICBj
YXNlIFdHUFVUZXh0dXJlRm9ybWF0X1JHQkEzMlVpbnQ6CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZv
cm1hdF9SR0JBMzJTaW50OgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIFdHUFVUZXh0
dXJlRm9ybWF0X1VuZGVmaW5lZDoKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1I4VW5vcm06
CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFNub3JtOgogICAgIGNhc2UgV0dQVVRleHR1
cmVGb3JtYXRfUjhVaW50OgpAQCAtMTA3Nyw3ICsxMDg4LDEwIEBAIHN0YXRpYyBib29sIGhhc1N0
b3JhZ2VCaW5kaW5nQ2FwYWJpbGl0eShXR1BVVGV4dHVyZUZvcm1hdCBmb3JtYXQpCiAgICAgY2Fz
ZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDMTJ4MTBVbm9ybVNyZ2I6CiAgICAgY2FzZSBXR1BVVGV4
dHVyZUZvcm1hdF9BU1RDMTJ4MTJVbm9ybToKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FT
VEMxMngxMlVub3JtU3JnYjoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgV0dQVVRl
eHR1cmVGb3JtYXRfVW5kZWZpbmVkOgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRm9yY2Uz
MjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiB9CkBAIC0xMTQ2LDYgKzExNjAsNyBAQCBib29sIERldmljZTo6dmFsaWRhdGVDcmVh
dGVUZXh0dXJlKGNvbnN0IFdHUFVUZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXR1BVVGV4dHVy
ZURpbWVuc2lvbl9Gb3JjZTMyOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTIyNSw4ICsxMjQwLDYgQEAgc3RhdGljIE1U
TFRleHR1cmVVc2FnZSB1c2FnZShXR1BVVGV4dHVyZVVzYWdlRmxhZ3MgdXNhZ2UpCiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxNVExQaXhlbEZvcm1hdD4gcGl4ZWxGb3JtYXQoV0dQVVRleHR1cmVGb3Jt
YXQgdGV4dHVyZUZvcm1hdCkKIHsKICAgICBzd2l0Y2ggKHRleHR1cmVGb3JtYXQpIHsKLSAgICBj
YXNlIFdHUFVUZXh0dXJlRm9ybWF0X1VuZGVmaW5lZDoKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1I4VW5vcm06CiAgICAgICAgIHJldHVy
biBNVExQaXhlbEZvcm1hdFI4VW5vcm07CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFNu
b3JtOgpAQCAtMTQzNiw3ICsxNDQ5LDkgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TVRMUGl4ZWxG
b3JtYXQ+IHBpeGVsRm9ybWF0KFdHUFVUZXh0dXJlRm9ybWF0IHRleHR1cmVGb3JtYXQKICAgICBj
YXNlIFdHUFVUZXh0dXJlRm9ybWF0X0JDN1JHQkFVbm9ybVNyZ2I6CiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAjZW5kaWYKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1VuZGVmaW5l
ZDoKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0ZvcmNlMzI6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIH0KQEAg
LTE2MDIsNyArMTYxNyw2IEBAIFdHUFVUZXh0dXJlRm9ybWF0IFRleHR1cmU6OmFzcGVjdFNwZWNp
ZmljRm9ybWF0KFdHUFVUZXh0dXJlRm9ybWF0IGZvcm1hdCwgV0dQVVRlCiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxNVExQaXhlbEZvcm1hdD4gZGVwdGhPbmx5QXNwZWN0TWV0YWxGb3JtYXQoV0dQVVRl
eHR1cmVGb3JtYXQgdGV4dHVyZUZvcm1hdCkKIHsKICAgICBzd2l0Y2ggKHRleHR1cmVGb3JtYXQp
IHsKLSAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1VuZGVmaW5lZDoKICAgICBjYXNlIFdHUFVU
ZXh0dXJlRm9ybWF0X1I4VW5vcm06CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFNub3Jt
OgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfUjhVaW50OgpAQCAtMTcwOSw3ICsxNzIzLDEw
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1UTFBpeGVsRm9ybWF0PiBkZXB0aE9ubHlBc3BlY3RN
ZXRhbEZvcm1hdChXR1BVVGV4dHVyZUZvcm1hCiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9B
U1RDMTJ4MTBVbm9ybVNyZ2I6CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9BU1RDMTJ4MTJV
bm9ybToKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FTVEMxMngxMlVub3JtU3JnYjoKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X1Vu
ZGVmaW5lZDoKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0ZvcmNlMzI6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0K
IH0KQEAgLTE3MTcsNyArMTczNCw2IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1UTFBpeGVsRm9y
bWF0PiBkZXB0aE9ubHlBc3BlY3RNZXRhbEZvcm1hdChXR1BVVGV4dHVyZUZvcm1hCiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxNVExQaXhlbEZvcm1hdD4gc3RlbmNpbE9ubHlBc3BlY3RNZXRhbEZvcm1h
dChXR1BVVGV4dHVyZUZvcm1hdCB0ZXh0dXJlRm9ybWF0KQogewogICAgIHN3aXRjaCAodGV4dHVy
ZUZvcm1hdCkgewotICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfVW5kZWZpbmVkOgogICAgIGNh
c2UgV0dQVVRleHR1cmVGb3JtYXRfUjhVbm9ybToKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0
X1I4U25vcm06CiAgICAgY2FzZSBXR1BVVGV4dHVyZUZvcm1hdF9SOFVpbnQ6CkBAIC0xODI2LDcg
KzE4NDIsMTAgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TVRMUGl4ZWxGb3JtYXQ+IHN0ZW5jaWxP
bmx5QXNwZWN0TWV0YWxGb3JtYXQoV0dQVVRleHR1cmVGb3IKICAgICBjYXNlIFdHUFVUZXh0dXJl
Rm9ybWF0X0FTVEMxMngxMFVub3JtU3JnYjoKICAgICBjYXNlIFdHUFVUZXh0dXJlRm9ybWF0X0FT
VEMxMngxMlVub3JtOgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfQVNUQzEyeDEyVW5vcm1T
cmdiOgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGNhc2UgV0dQVVRleHR1cmVG
b3JtYXRfVW5kZWZpbmVkOgogICAgIGNhc2UgV0dQVVRleHR1cmVGb3JtYXRfRm9yY2UzMjoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogfQpAQCAtMTkwMyw2ICsxOTIyLDcgQEAgUmVmUHRyPFRleHR1cmU+IERldmljZTo6
Y3JlYXRlVGV4dHVyZShjb25zdCBXR1BVVGV4dHVyZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiAg
ICAgICAgIHRleHR1cmVEZXNjcmlwdG9yLnRleHR1cmVUeXBlID0gTVRMVGV4dHVyZVR5cGUzRDsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXR1BVVGV4dHVyZURpbWVuc2lvbl9Gb3JjZTMyOgor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCkBAIC0xOTQyLDcgKzE5NjIsNyBAQCBUZXh0dXJlOjpUZXh0dXJlKGlkPE1UTFRleHR1
cmU+IHRleHR1cmUsIGNvbnN0IFdHUFVUZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRvcgogCiBU
ZXh0dXJlOjp+VGV4dHVyZSgpID0gZGVmYXVsdDsKIAotc3RkOjpvcHRpb25hbDxXR1BVVGV4dHVy
ZVZpZXdEZXNjcmlwdG9yPiBUZXh0dXJlOjpyZXNvbHZlVGV4dHVyZVZpZXdEZXNjcmlwdG9yRGVm
YXVsdHMoY29uc3QgV0dQVVRleHR1cmVWaWV3RGVzY3JpcHRvciYgZGVzY3JpcHRvcikgY29uc3QK
K1dHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3IgVGV4dHVyZTo6cmVzb2x2ZVRleHR1cmVWaWV3RGVz
Y3JpcHRvckRlZmF1bHRzKGNvbnN0IFdHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3ImIGRlc2NyaXB0
b3IpIGNvbnN0CiB7CiAgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jYWJz
dHJhY3Qtb3BkZWYtcmVzb2x2aW5nLWdwdXRleHR1cmV2aWV3ZGVzY3JpcHRvci1kZWZhdWx0cwog
CkBAIC0xOTgwLDcgKzIwMDAsNyBAQCBzdGQ6Om9wdGlvbmFsPFdHUFVUZXh0dXJlVmlld0Rlc2Ny
aXB0b3I+IFRleHR1cmU6OnJlc29sdmVUZXh0dXJlVmlld0Rlc2NyaXB0b3JEZQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV0dQVVRleHR1cmVEaW1lbnNpb25fRm9yY2UzMjoKICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgICAgIHJldHVybiByZXNvbHZlZDsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMTk5MCw3ICsyMDEwLDcgQEAgc3RkOjpvcHRpb25hbDxXR1BVVGV4dHVyZVZpZXdEZXNj
cmlwdG9yPiBUZXh0dXJlOjpyZXNvbHZlVGV4dHVyZVZpZXdEZXNjcmlwdG9yRGUKICAgICAgICAg
c3dpdGNoIChyZXNvbHZlZC5kaW1lbnNpb24pIHsKICAgICAgICAgY2FzZSBXR1BVVGV4dHVyZVZp
ZXdEaW1lbnNpb25fVW5kZWZpbmVkOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgcmV0dXJuIHJl
c29sdmVkOwogICAgICAgICBjYXNlIFdHUFVUZXh0dXJlVmlld0RpbWVuc2lvbl8xRDoKICAgICAg
ICAgY2FzZSBXR1BVVGV4dHVyZVZpZXdEaW1lbnNpb25fMkQ6CiAgICAgICAgIGNhc2UgV0dQVVRl
eHR1cmVWaWV3RGltZW5zaW9uXzNEOgpAQCAtMjAwOSw3ICsyMDI5LDcgQEAgc3RkOjpvcHRpb25h
bDxXR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yPiBUZXh0dXJlOjpyZXNvbHZlVGV4dHVyZVZpZXdE
ZXNjcmlwdG9yRGUKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdHUFVUZXh0dXJl
Vmlld0RpbWVuc2lvbl9Gb3JjZTMyOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAgICAgcmV0dXJuIHJl
c29sdmVkOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMDU3LDYgKzIwNzcsNyBAQCBib29sIFRl
eHR1cmU6OnZhbGlkYXRlQ3JlYXRlVmlldyhjb25zdCBXR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKSBjbwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFdHUFVUZXh0dXJlQXNwZWN0X0ZvcmNlMzI6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0yMTgxLDEx
ICsyMjAyLDkgQEAgUmVmUHRyPFRleHR1cmVWaWV3PiBUZXh0dXJlOjpjcmVhdGVWaWV3KGNvbnN0
IFdHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3ImIGlucHV0RGUKIAogICAgIC8vICJTZXQgZGVzY3Jp
cHRvciB0byB0aGUgcmVzdWx0IG9mIHJlc29sdmluZyBHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3Ig
ZGVmYXVsdHMgd2l0aCBkZXNjcmlwdG9yLiIKICAgICBhdXRvIGRlc2NyaXB0b3IgPSByZXNvbHZl
VGV4dHVyZVZpZXdEZXNjcmlwdG9yRGVmYXVsdHMoaW5wdXREZXNjcmlwdG9yKTsKLSAgICBpZiAo
IWRlc2NyaXB0b3IpCi0gICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gIklmIGFueSBv
ZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBhcmUgdW5tZXQ6IgotICAgIGlmICghdmFsaWRh
dGVDcmVhdGVWaWV3KCpkZXNjcmlwdG9yKSkgeworICAgIGlmICghdmFsaWRhdGVDcmVhdGVWaWV3
KGRlc2NyaXB0b3IpKSB7CiAgICAgICAgIC8vICJHZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3Iu
IgogICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9u
IGZhaWx1cmUuIl9zKTsKIApAQCAtMjE5NCwxOCArMjIxMywxOSBAQCBSZWZQdHI8VGV4dHVyZVZp
ZXc+IFRleHR1cmU6OmNyZWF0ZVZpZXcoY29uc3QgV0dQVVRleHR1cmVWaWV3RGVzY3JpcHRvciYg
aW5wdXREZQogICAgIH0KIAogICAgIHN0ZDo6b3B0aW9uYWw8TVRMUGl4ZWxGb3JtYXQ+IHBpeGVs
Rm9ybWF0ID0gTVRMUGl4ZWxGb3JtYXRJbnZhbGlkOwotICAgIGlmIChpc0RlcHRoT3JTdGVuY2ls
Rm9ybWF0KGRlc2NyaXB0b3ItPmZvcm1hdCkpIHsKLSAgICAgICAgc3dpdGNoIChkZXNjcmlwdG9y
LT5hc3BlY3QpIHsKKyAgICBpZiAoaXNEZXB0aE9yU3RlbmNpbEZvcm1hdChkZXNjcmlwdG9yLmZv
cm1hdCkpIHsKKyAgICAgICAgc3dpdGNoIChkZXNjcmlwdG9yLmFzcGVjdCkgewogICAgICAgICBj
YXNlIFdHUFVUZXh0dXJlQXNwZWN0X0FsbDoKLSAgICAgICAgICAgIHBpeGVsRm9ybWF0ID0gV2Vi
R1BVOjpwaXhlbEZvcm1hdChkZXNjcmlwdG9yLT5mb3JtYXQpOworICAgICAgICAgICAgcGl4ZWxG
b3JtYXQgPSBXZWJHUFU6OnBpeGVsRm9ybWF0KGRlc2NyaXB0b3IuZm9ybWF0KTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdHUFVUZXh0dXJlQXNwZWN0X1N0ZW5jaWxPbmx5Ogot
ICAgICAgICAgICAgcGl4ZWxGb3JtYXQgPSBzdGVuY2lsT25seUFzcGVjdE1ldGFsRm9ybWF0KGRl
c2NyaXB0b3ItPmZvcm1hdCk7CisgICAgICAgICAgICBwaXhlbEZvcm1hdCA9IHN0ZW5jaWxPbmx5
QXNwZWN0TWV0YWxGb3JtYXQoZGVzY3JpcHRvci5mb3JtYXQpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfRGVwdGhPbmx5OgotICAgICAgICAgICAg
cGl4ZWxGb3JtYXQgPSBkZXB0aE9ubHlBc3BlY3RNZXRhbEZvcm1hdChkZXNjcmlwdG9yLT5mb3Jt
YXQpOworICAgICAgICAgICAgcGl4ZWxGb3JtYXQgPSBkZXB0aE9ubHlBc3BlY3RNZXRhbEZvcm1h
dChkZXNjcmlwdG9yLmZvcm1hdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBX
R1BVVGV4dHVyZUFzcGVjdF9Gb3JjZTMyOgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KQEAgLTIy
MTQsMTIgKzIyMzQsMTIgQEAgUmVmUHRyPFRleHR1cmVWaWV3PiBUZXh0dXJlOjpjcmVhdGVWaWV3
KGNvbnN0IFdHUFVUZXh0dXJlVmlld0Rlc2NyaXB0b3ImIGlucHV0RGUKICAgICBBU1NFUlQoKnBp
eGVsRm9ybWF0ICE9IE1UTFBpeGVsRm9ybWF0SW52YWxpZCk7CiAKICAgICBNVExUZXh0dXJlVHlw
ZSB0ZXh0dXJlVHlwZTsKLSAgICBzd2l0Y2ggKGRlc2NyaXB0b3ItPmRpbWVuc2lvbikgeworICAg
IHN3aXRjaCAoZGVzY3JpcHRvci5kaW1lbnNpb24pIHsKICAgICBjYXNlIFdHUFVUZXh0dXJlVmll
d0RpbWVuc2lvbl9VbmRlZmluZWQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdHUFVUZXh0dXJlVmlld0RpbWVuc2lvbl8x
RDoKLSAgICAgICAgaWYgKGRlc2NyaXB0b3ItPmFycmF5TGF5ZXJDb3VudCA9PSAxKQorICAgICAg
ICBpZiAoZGVzY3JpcHRvci5hcnJheUxheWVyQ291bnQgPT0gMSkKICAgICAgICAgICAgIHRleHR1
cmVUeXBlID0gTVRMVGV4dHVyZVR5cGUxRDsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGV4
dHVyZVR5cGUgPSBNVExUZXh0dXJlVHlwZTFEQXJyYXk7CkBAIC0yMjUwLDE4ICsyMjcwLDE5IEBA
IFJlZlB0cjxUZXh0dXJlVmlldz4gVGV4dHVyZTo6Y3JlYXRlVmlldyhjb25zdCBXR1BVVGV4dHVy
ZVZpZXdEZXNjcmlwdG9yJiBpbnB1dERlCiAgICAgICAgIHRleHR1cmVUeXBlID0gTVRMVGV4dHVy
ZVR5cGUzRDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXR1BVVGV4dHVyZVZpZXdEaW1lbnNp
b25fRm9yY2UzMjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIAotICAgIGF1dG8gbGV2ZWxzID0gTlNNYWtlUmFuZ2UoZGVzY3Jp
cHRvci0+YmFzZU1pcExldmVsLCBkZXNjcmlwdG9yLT5taXBMZXZlbENvdW50KTsKKyAgICBhdXRv
IGxldmVscyA9IE5TTWFrZVJhbmdlKGRlc2NyaXB0b3IuYmFzZU1pcExldmVsLCBkZXNjcmlwdG9y
Lm1pcExldmVsQ291bnQpOwogCi0gICAgYXV0byBzbGljZXMgPSBOU01ha2VSYW5nZShkZXNjcmlw
dG9yLT5iYXNlQXJyYXlMYXllciwgZGVzY3JpcHRvci0+YXJyYXlMYXllckNvdW50KTsKKyAgICBh
dXRvIHNsaWNlcyA9IE5TTWFrZVJhbmdlKGRlc2NyaXB0b3IuYmFzZUFycmF5TGF5ZXIsIGRlc2Ny
aXB0b3IuYXJyYXlMYXllckNvdW50KTsKIAogICAgIGlkPE1UTFRleHR1cmU+IHRleHR1cmUgPSBb
bV90ZXh0dXJlIG5ld1RleHR1cmVWaWV3V2l0aFBpeGVsRm9ybWF0OipwaXhlbEZvcm1hdCB0ZXh0
dXJlVHlwZTp0ZXh0dXJlVHlwZSBsZXZlbHM6bGV2ZWxzIHNsaWNlczpzbGljZXNdOwogICAgIGlm
ICghdGV4dHVyZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICB0ZXh0dXJlLmxhYmVs
ID0gZnJvbUFQSShkZXNjcmlwdG9yLT5sYWJlbCk7CisgICAgdGV4dHVyZS5sYWJlbCA9IGZyb21B
UEkoZGVzY3JpcHRvci5sYWJlbCk7CiAKICAgICAvLyAiTGV0IHZpZXcgYmUgYSBuZXcgR1BVVGV4
dHVyZVZpZXcgb2JqZWN0LiIKICAgICAvLyAiU2V0IHZpZXcuW1t0ZXh0dXJlXV0gdG8gdGhpcy4i
CkBAIC0yMjcyLDExICsyMjkzLDExIEBAIFJlZlB0cjxUZXh0dXJlVmlldz4gVGV4dHVyZTo6Y3Jl
YXRlVmlldyhjb25zdCBXR1BVVGV4dHVyZVZpZXdEZXNjcmlwdG9yJiBpbnB1dERlCiAgICAgaWYg
IChtX2Rlc2NyaXB0b3IudXNhZ2UgJiBXR1BVVGV4dHVyZVVzYWdlX1JlbmRlckF0dGFjaG1lbnQp
IHsKICAgICAgICAgLy8gIkxldCByZW5kZXJFeHRlbnQgYmUgY29tcHV0ZSByZW5kZXIgZXh0ZW50
KHRoaXMuW1tkZXNjcmlwdG9yXV0uc2l6ZSwgZGVzY3JpcHRvci5iYXNlTWlwTGV2ZWwpLiIKICAg
ICAgICAgLy8gIlNldCB2aWV3LltbcmVuZGVyRXh0ZW50XV0gdG8gcmVuZGVyRXh0ZW50LiIKLSAg
ICAgICAgcmVuZGVyRXh0ZW50ID0gY29tcHV0ZVJlbmRlckV4dGVudChtX2Rlc2NyaXB0b3Iuc2l6
ZSwgZGVzY3JpcHRvci0+YmFzZU1pcExldmVsKTsKKyAgICAgICAgcmVuZGVyRXh0ZW50ID0gY29t
cHV0ZVJlbmRlckV4dGVudChtX2Rlc2NyaXB0b3Iuc2l6ZSwgZGVzY3JpcHRvci5iYXNlTWlwTGV2
ZWwpOwogICAgIH0KIAogICAgIC8vICJSZXR1cm4gdmlldy4iCi0gICAgcmV0dXJuIFRleHR1cmVW
aWV3OjpjcmVhdGUodGV4dHVyZSwgKmRlc2NyaXB0b3IsIHJlbmRlckV4dGVudCk7CisgICAgcmV0
dXJuIFRleHR1cmVWaWV3OjpjcmVhdGUodGV4dHVyZSwgZGVzY3JpcHRvciwgcmVuZGVyRXh0ZW50
KTsKIH0KIAogdm9pZCBUZXh0dXJlOjpkZXN0cm95KCkKQEAgLTI0MjUsNiArMjQ0Niw3IEBAIGJv
b2wgVGV4dHVyZTo6cmVmZXJzVG9TaW5nbGVBc3BlY3QoV0dQVVRleHR1cmVGb3JtYXQgZm9ybWF0
LCBXR1BVVGV4dHVyZUFzcGVjdCBhCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV0dQVVRleHR1cmVBc3BlY3RfRm9yY2UzMjoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
</data>
<flag name="review"
          id="484003"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>