<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://pkp.sfu.ca/bugzilla/bugzilla.dtd">

<bugzilla version="4.2.5+"
          urlbase="http://pkp.sfu.ca/bugzilla/"
          
          maintainer="pkp-hosted@sfu.ca"
>

    <bug>
          <bug_id>3293</bug_id>
          
          <creation_ts>2008-03-12 11:26:00 -0700</creation_ts>
          <short_desc>Enable user comments on a per section/article basis</short_desc>
          <delta_ts>2008-06-30 11:40:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>OJS</product>
          <component>Reading Tools</component>
          <version>2.2.1</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Felczak">michael.pkp</reporter>
          <assigned_to name="Michael Felczak">michael.pkp</assigned_to>
          <cc>pkp-support</cc>
          
          

      

      

      

          <long_desc isprivate="0">
            <commentid>10170</commentid>
            <who name="Michael Felczak">michael.pkp</who>
            <bug_when>2008-03-12 11:26:17 -0700</bug_when>
            <thetext>To enable journals to limit user comments to certain sections and/or certain articles (i.e., disable for all Editorials, enable for special issues or submissions, etc.), it should be possible for Editors to toggle comments on a per section or per article basis.

If user comments are enabled under Reading Tools, the following options can be displayed:

(1) Journal Sections, Edit
Comments [] Disable user comments for this section.

(2) Article, Summary, Status subsection

If (1) is not set, then
[LINK] Disable user comments

If (1) is set, then
[LINK] Enable user comments</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>11285</commentid>
              <attachid>753</attachid>
            <who name="Michael Felczak">michael.pkp</who>
            <bug_when>2008-06-18 12:56:28 -0700</bug_when>
            <thetext>Created attachment 753
Patch against OJS pre-2.2.1 CVS</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>11286</commentid>
            <who name="Michael Felczak">michael.pkp</who>
            <bug_when>2008-06-18 12:56:49 -0700</bug_when>
            <thetext>Added.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>11458</commentid>
              <attachid>806</attachid>
            <who name="Michael Felczak">michael.pkp</who>
            <bug_when>2008-06-30 11:40:20 -0700</bug_when>
            <thetext>Created attachment 806
Patch against OCS pre-2.1.1 CVS

Back-ported to OCS.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>753</attachid>
            <date>2008-06-18 12:56:00 -0700</date>
            <delta_ts>2008-06-18 12:56:28 -0700</delta_ts>
            <desc>Patch against OJS pre-2.2.1 CVS</desc>
            <filename>3293.diff</filename>
            <type>text/plain</type>
            <size>25993</size>
            <attacher>michael.pkp</attacher>
            
              <data encoding="base64">LS0tIG9qczIvY2xhc3Nlcy9hcnRpY2xlL0FydGljbGUuaW5jLnBocDoxLjM0CVR1ZSBKdW4gMTcg
MTY6MjI6MjQgMjAwOAorKysgb2pzMi9jbGFzc2VzL2FydGljbGUvQXJ0aWNsZS5pbmMucGhwCVdl
ZCBKdW4gMTggMTI6NTI6NTkgMjAwOApAQCAtMTEsNyArMTEsNyBAQAogICoKICAqIEFydGljbGUg
Y2xhc3MuCiAgKgotICogJElkOiBBcnRpY2xlLmluYy5waHAsdiAxLjM0IDIwMDgvMDYvMTcgMjM6
MjI6MjQgYXNtZWNoZXIgRXhwICQKKyAqICRJZDogQXJ0aWNsZS5pbmMucGhwLHYgMS4zNSAyMDA4
LzA2LzE4IDE5OjUyOjU5IG1pY2hhZWwgRXhwICQKICAqLwogCiAvLyBTdWJtaXNzaW9uIHN0YXR1
cyBjb25zdGFudHMKQEAgLTMyLDYgKzMyLDExIEBACiBkZWZpbmUgKCdBVVRIT1JfVE9DX0hJREUn
LCAxKTsKIGRlZmluZSAoJ0FVVEhPUl9UT0NfU0hPVycsIDIpOwogCisvLyBBcnRpY2xlIFJUIGNv
bW1lbnRzCitkZWZpbmUgKCdDT01NRU5UU19TRUNUSU9OX0RFRkFVTFQnLCAwKTsKK2RlZmluZSAo
J0NPTU1FTlRTX0RJU0FCTEUnLCAxKTsKK2RlZmluZSAoJ0NPTU1FTlRTX0VOQUJMRScsIDIpOwor
CiBjbGFzcyBBcnRpY2xlIGV4dGVuZHMgRGF0YU9iamVjdCB7CiAKIAkvKiogQHZhciBhcnJheSBB
dXRob3JzIG9mIHRoaXMgYXJ0aWNsZSAqLwpAQCAtOTY0LDYgKzk2OSw3MyBAQAogCWZ1bmN0aW9u
IHNldEhpZGVBdXRob3IoJGhpZGVBdXRob3IpIHsKIAkJcmV0dXJuICR0aGlzLT5zZXREYXRhKCdo
aWRlQXV0aG9yJywgJGhpZGVBdXRob3IpOwogCX0KKworCS8qKgorCSAqIFJldHVybiBhcnRpY2xl
IFJUIGNvbW1lbnRzIHN0YXR1cy4KKwkgKiBAcmV0dXJuIGludCAKKwkgKi8KKwlmdW5jdGlvbiBn
ZXRDb21tZW50c1N0YXR1cygpIHsKKwkJcmV0dXJuICR0aGlzLT5nZXREYXRhKCdjb21tZW50c1N0
YXR1cycpOworCX0KKworCS8qKgorCSAqIFNldCBhcnRpY2xlIFJUIGNvbW1lbnRzIHN0YXR1cy4K
KwkgKiBAcGFyYW0gJGNvbW1lbnRzU3RhdHVzIGJvb2xlYW4KKwkgKi8KKwlmdW5jdGlvbiBzZXRD
b21tZW50c1N0YXR1cygkY29tbWVudHNTdGF0dXMpIHsKKwkJcmV0dXJuICR0aGlzLT5zZXREYXRh
KCdjb21tZW50c1N0YXR1cycsICRjb21tZW50c1N0YXR1cyk7CisJfQorCisJLyoqCisJICogUmV0
dXJuIGxvY2FsZSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBSVCBjb21tZW50cyBzdGF0dXMuCisJ
ICogQHJldHVybiBzdHJpbmcKKwkgKi8KKwlmdW5jdGlvbiBnZXRDb21tZW50c1N0YXR1c1N0cmlu
ZygpIHsKKwkJc3dpdGNoICgkdGhpcy0+Z2V0Q29tbWVudHNTdGF0dXMoKSkgeworCQkJY2FzZSBD
T01NRU5UU19ESVNBQkxFOgorCQkJCXJldHVybiAnYXJ0aWNsZS5jb21tZW50cy5kaXNhYmxlJzsK
KwkJCWNhc2UgQ09NTUVOVFNfRU5BQkxFOgorCQkJCXJldHVybiAnYXJ0aWNsZS5jb21tZW50cy5l
bmFibGUnOworCQkJZGVmYXVsdDoKKwkJCQlyZXR1cm4gJ2FydGljbGUuY29tbWVudHMuc2VjdGlv
bkRlZmF1bHQnOworCQl9CisJfQorCisJLyoqCisJICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGlu
ZyBpZiBhcnRpY2xlIFJUIGNvbW1lbnRzIHNob3VsZCBiZSBlbmFibGVkLgorCSAqIENoZWNrcyBi
b3RoIHRoZSBzZWN0aW9uIGFuZCBhcnRpY2xlIGNvbW1lbnRzIHN0YXR1cy4gQXJ0aWNsZSBzdGF0
dXMKKwkgKiBvdmVycmlkZXMgc2VjdGlvbiBzdGF0dXMuCisJICogQHJldHVybiBpbnQgCisJICov
CisJZnVuY3Rpb24gZ2V0RW5hYmxlQ29tbWVudHMoKSB7CisJCXN3aXRjaCAoJHRoaXMtPmdldENv
bW1lbnRzU3RhdHVzKCkpIHsKKwkJCWNhc2UgQ09NTUVOVFNfRElTQUJMRToKKwkJCQlyZXR1cm4g
ZmFsc2U7CisJCQljYXNlIENPTU1FTlRTX0VOQUJMRToKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJCWNh
c2UgQ09NTUVOVFNfU0VDVElPTl9ERUZBVUxUOgorCQkJCSRzZWN0aW9uRGFvID0mIERBT1JlZ2lz
dHJ5OjpnZXREQU8oJ1NlY3Rpb25EQU8nKTsKKwkJCQkkc2VjdGlvbiA9JiAkc2VjdGlvbkRhby0+
Z2V0U2VjdGlvbigkdGhpcy0+Z2V0U2VjdGlvbklkKCksICR0aGlzLT5nZXRKb3VybmFsSWQoKSk7
CisJCQkJaWYgKCRzZWN0aW9uLT5nZXREaXNhYmxlQ29tbWVudHMoKSkgeworCQkJCQlyZXR1cm4g
ZmFsc2U7CisJCQkJfSBlbHNlIHsKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJfQorCQl9CisJfQor
CisJLyoqCisJICogR2V0IGFuIGFzc29jaWF0aXZlIGFycmF5IG1hdGNoaW5nIFJUIGNvbW1lbnRz
IHN0YXR1cyBjb2RlcyB3aXRoIGxvY2FsZSBzdHJpbmdzLgorCSAqIEByZXR1cm4gYXJyYXkgY29t
bWVudHMgc3RhdHVzID0+IGxvY2FsZVN0cmluZworCSAqLworCWZ1bmN0aW9uICZnZXRDb21tZW50
c1N0YXR1c09wdGlvbnMoKSB7CisJCXN0YXRpYyAkY29tbWVudHNTdGF0dXNPcHRpb25zID0gYXJy
YXkoCisJCQlDT01NRU5UU19TRUNUSU9OX0RFRkFVTFQgPT4gJ2FydGljbGUuY29tbWVudHMuc2Vj
dGlvbkRlZmF1bHQnLAorCQkJQ09NTUVOVFNfRElTQUJMRSA9PiAnYXJ0aWNsZS5jb21tZW50cy5k
aXNhYmxlJywKKwkJCUNPTU1FTlRTX0VOQUJMRSA9PiAnYXJ0aWNsZS5jb21tZW50cy5lbmFibGUn
CisJCSk7CisJCXJldHVybiAkY29tbWVudHNTdGF0dXNPcHRpb25zOworCX0KIH0KIAogPz4KLS0t
IG9qczIvY2xhc3Nlcy9hcnRpY2xlL0FydGljbGVEQU8uaW5jLnBocDoxLjUwCVdlZCBKdW4gMTEg
MTE6NTQ6NTQgMjAwOAorKysgb2pzMi9jbGFzc2VzL2FydGljbGUvQXJ0aWNsZURBTy5pbmMucGhw
CVdlZCBKdW4gMTggMTI6NTI6NTkgMjAwOApAQCAtMTIsNyArMTIsNyBAQAogICogQ2xhc3MgZm9y
IEFydGljbGUgREFPLgogICogT3BlcmF0aW9ucyBmb3IgcmV0cmlldmluZyBhbmQgbW9kaWZ5aW5n
IEFydGljbGUgb2JqZWN0cy4KICAqCi0gKiAkSWQ6IEFydGljbGVEQU8uaW5jLnBocCx2IDEuNTAg
MjAwOC8wNi8xMSAxODo1NDo1NCBhc21lY2hlciBFeHAgJAorICogJElkOiBBcnRpY2xlREFPLmlu
Yy5waHAsdiAxLjUxIDIwMDgvMDYvMTggMTk6NTI6NTkgbWljaGFlbCBFeHAgJAogICovCiAKIGlt
cG9ydCgnYXJ0aWNsZS5BcnRpY2xlJyk7CkBAIC0xMzYsNiArMTM2LDcgQEAKIAkJJGFydGljbGUt
PnNldFBhZ2VzKCRyb3dbJ3BhZ2VzJ10pOwogCQkkYXJ0aWNsZS0+c2V0RmFzdFRyYWNrZWQoJHJv
d1snZmFzdF90cmFja2VkJ10pOwogCQkkYXJ0aWNsZS0+c2V0SGlkZUF1dGhvcigkcm93WydoaWRl
X2F1dGhvciddKTsKKwkJJGFydGljbGUtPnNldENvbW1lbnRzU3RhdHVzKCRyb3dbJ2NvbW1lbnRz
X3N0YXR1cyddKTsKIAkJCiAKIAkJJGFydGljbGUtPnNldEF1dGhvcnMoJHRoaXMtPmF1dGhvckRh
by0+Z2V0QXV0aG9yc0J5QXJ0aWNsZSgkcm93WydhcnRpY2xlX2lkJ10pKTsKQEAgLTE1NCw5ICsx
NTUsOSBAQAogCQkkYXJ0aWNsZS0+c3RhbXBNb2RpZmllZCgpOwogCQkkdGhpcy0+dXBkYXRlKAog
CQkJc3ByaW50ZignSU5TRVJUIElOVE8gYXJ0aWNsZXMKLQkJCQkodXNlcl9pZCwgam91cm5hbF9p
ZCwgc2VjdGlvbl9pZCwgbGFuZ3VhZ2UsIGNvbW1lbnRzX3RvX2VkLCBkYXRlX3N1Ym1pdHRlZCwg
ZGF0ZV9zdGF0dXNfbW9kaWZpZWQsIGxhc3RfbW9kaWZpZWQsIHN0YXR1cywgc3VibWlzc2lvbl9w
cm9ncmVzcywgY3VycmVudF9yb3VuZCwgc3VibWlzc2lvbl9maWxlX2lkLCByZXZpc2VkX2ZpbGVf
aWQsIHJldmlld19maWxlX2lkLCBlZGl0b3JfZmlsZV9pZCwgY29weWVkaXRfZmlsZV9pZCwgcGFn
ZXMsIGZhc3RfdHJhY2tlZCwgaGlkZV9hdXRob3IpCisJCQkJKHVzZXJfaWQsIGpvdXJuYWxfaWQs
IHNlY3Rpb25faWQsIGxhbmd1YWdlLCBjb21tZW50c190b19lZCwgZGF0ZV9zdWJtaXR0ZWQsIGRh
dGVfc3RhdHVzX21vZGlmaWVkLCBsYXN0X21vZGlmaWVkLCBzdGF0dXMsIHN1Ym1pc3Npb25fcHJv
Z3Jlc3MsIGN1cnJlbnRfcm91bmQsIHN1Ym1pc3Npb25fZmlsZV9pZCwgcmV2aXNlZF9maWxlX2lk
LCByZXZpZXdfZmlsZV9pZCwgZWRpdG9yX2ZpbGVfaWQsIGNvcHllZGl0X2ZpbGVfaWQsIHBhZ2Vz
LCBmYXN0X3RyYWNrZWQsIGhpZGVfYXV0aG9yLCBjb21tZW50c19zdGF0dXMpCiAJCQkJVkFMVUVT
Ci0JCQkJKD8sID8sID8sID8sID8sICVzLCAlcywgJXMsID8sID8sID8sID8sID8sID8sID8sID8s
ID8sID8sID8pJywKKwkJCQkoPywgPywgPywgPywgPywgJXMsICVzLCAlcywgPywgPywgPywgPywg
PywgPywgPywgPywgPywgPywgPywgPyknLAogCQkJCSR0aGlzLT5kYXRldGltZVRvREIoJGFydGlj
bGUtPmdldERhdGVTdWJtaXR0ZWQoKSksICR0aGlzLT5kYXRldGltZVRvREIoJGFydGljbGUtPmdl
dERhdGVTdGF0dXNNb2RpZmllZCgpKSwgJHRoaXMtPmRhdGV0aW1lVG9EQigkYXJ0aWNsZS0+Z2V0
TGFzdE1vZGlmaWVkKCkpKSwKIAkJCWFycmF5KAogCQkJCSRhcnRpY2xlLT5nZXRVc2VySWQoKSwK
QEAgLTE3NCw3ICsxNzUsOCBAQAogCQkJCSRhcnRpY2xlLT5nZXRDb3B5ZWRpdEZpbGVJZCgpLAog
CQkJCSRhcnRpY2xlLT5nZXRQYWdlcygpLAogCQkJCSRhcnRpY2xlLT5nZXRGYXN0VHJhY2tlZCgp
PzE6MCwKLQkJCQkkYXJ0aWNsZS0+Z2V0SGlkZUF1dGhvcigpID09PSBudWxsID8gMCA6ICRhcnRp
Y2xlLT5nZXRIaWRlQXV0aG9yKCkKKwkJCQkkYXJ0aWNsZS0+Z2V0SGlkZUF1dGhvcigpID09PSBu
dWxsID8gMCA6ICRhcnRpY2xlLT5nZXRIaWRlQXV0aG9yKCksCisJCQkJJGFydGljbGUtPmdldENv
bW1lbnRzU3RhdHVzKCkgPT09IG51bGwgPyAwIDogJGFydGljbGUtPmdldENvbW1lbnRzU3RhdHVz
KCkKIAkJCSkKIAkJKTsKIApAQCAtMjE3LDcgKzIxOSw4IEBACiAJCQkJCWNvcHllZGl0X2ZpbGVf
aWQgPSA/LAogCQkJCQlwYWdlcyA9ID8sCiAJCQkJCWZhc3RfdHJhY2tlZCA9ID8sCi0JCQkJCWhp
ZGVfYXV0aG9yID0gPworCQkJCQloaWRlX2F1dGhvciA9ID8sCisJCQkJCWNvbW1lbnRzX3N0YXR1
cyA9ID8KIAkJCQlXSEVSRSBhcnRpY2xlX2lkID0gPycsCiAJCQkJJHRoaXMtPmRhdGV0aW1lVG9E
QigkYXJ0aWNsZS0+Z2V0RGF0ZVN1Ym1pdHRlZCgpKSwgJHRoaXMtPmRhdGV0aW1lVG9EQigkYXJ0
aWNsZS0+Z2V0RGF0ZVN0YXR1c01vZGlmaWVkKCkpLCAkdGhpcy0+ZGF0ZXRpbWVUb0RCKCRhcnRp
Y2xlLT5nZXRMYXN0TW9kaWZpZWQoKSkpLAogCQkJYXJyYXkoCkBAIC0yMzYsNiArMjM5LDcgQEAK
IAkJCQkkYXJ0aWNsZS0+Z2V0UGFnZXMoKSwKIAkJCQkkYXJ0aWNsZS0+Z2V0RmFzdFRyYWNrZWQo
KSwKIAkJCQkkYXJ0aWNsZS0+Z2V0SGlkZUF1dGhvcigpLAorCQkJCSRhcnRpY2xlLT5nZXRDb21t
ZW50c1N0YXR1cygpLAogCQkJCSRhcnRpY2xlLT5nZXRBcnRpY2xlSWQoKQogCQkJKQogCQkpOwot
LS0gb2pzMi9jbGFzc2VzL2pvdXJuYWwvU2VjdGlvbi5pbmMucGhwOjEuMjAJRnJpIEp1biAxMyAx
Njo1OTo0NCAyMDA4CisrKyBvanMyL2NsYXNzZXMvam91cm5hbC9TZWN0aW9uLmluYy5waHAJV2Vk
IEp1biAxOCAxMjo1Mjo1OSAyMDA4CkBAIC0xMiw3ICsxMiw3IEBACiAgKiBTZWN0aW9uIGNsYXNz
LgogICogRGVzY3JpYmVzIGJhc2ljIHNlY3Rpb24gcHJvcGVydGllcy4KICAqCi0gKiAkSWQ6IFNl
Y3Rpb24uaW5jLnBocCx2IDEuMjAgMjAwOC8wNi8xMyAyMzo1OTo0NCBtaWNoYWVsIEV4cCAkCisg
KiAkSWQ6IFNlY3Rpb24uaW5jLnBocCx2IDEuMjEgMjAwOC8wNi8xOCAxOTo1Mjo1OSBtaWNoYWVs
IEV4cCAkCiAgKi8KIAogY2xhc3MgU2VjdGlvbiBleHRlbmRzIERhdGFPYmplY3QgewpAQCAtMjY3
LDYgKzI2NywyMiBAQAogCX0KIAogCS8qKgorCSAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcg
aWYgUlQgY29tbWVudHMgc2hvdWxkIGJlIGRpc2FibGVkLgorCSAqIEByZXR1cm4gYm9vbGVhbgor
CSAqLworCWZ1bmN0aW9uIGdldERpc2FibGVDb21tZW50cygpIHsKKwkJcmV0dXJuICR0aGlzLT5n
ZXREYXRhKCdkaXNhYmxlQ29tbWVudHMnKTsKKwl9CisKKwkvKioKKwkgKiBTZXQgaWYgUlQgY29t
bWVudHMgc2hvdWxkIGJlIGRpc2FibGVkLgorCSAqIEBwYXJhbSAkZGlzYWJsZUNvbW1lbnRzIGJv
b2xlYW4KKwkgKi8KKwlmdW5jdGlvbiBzZXREaXNhYmxlQ29tbWVudHMoJGRpc2FibGVDb21tZW50
cykgeworCQlyZXR1cm4gJHRoaXMtPnNldERhdGEoJ2Rpc2FibGVDb21tZW50cycsICRkaXNhYmxl
Q29tbWVudHMpOworCX0KKworCS8qKgogCSAqIEdldCBsb2NhbGl6ZWQgc2VjdGlvbiBwb2xpY3ku
CiAJICogQHJldHVybiBzdHJpbmcKIAkgKi8KLS0tIG9qczIvY2xhc3Nlcy9qb3VybmFsL1NlY3Rp
b25EQU8uaW5jLnBocDoxLjQ2CUZyaSBKdW4gMTMgMTY6NTk6NDQgMjAwOAorKysgb2pzMi9jbGFz
c2VzL2pvdXJuYWwvU2VjdGlvbkRBTy5pbmMucGhwCVdlZCBKdW4gMTggMTI6NTI6NTkgMjAwOApA
QCAtMTIsNyArMTIsNyBAQAogICogQ2xhc3MgZm9yIHNlY3Rpb24gREFPLgogICogT3BlcmF0aW9u
cyBmb3IgcmV0cmlldmluZyBhbmQgbW9kaWZ5aW5nIFNlY3Rpb24gb2JqZWN0cy4KICAqCi0gKiAk
SWQ6IFNlY3Rpb25EQU8uaW5jLnBocCx2IDEuNDYgMjAwOC8wNi8xMyAyMzo1OTo0NCBtaWNoYWVs
IEV4cCAkCisgKiAkSWQ6IFNlY3Rpb25EQU8uaW5jLnBocCx2IDEuNDcgMjAwOC8wNi8xOCAxOTo1
Mjo1OSBtaWNoYWVsIEV4cCAkCiAgKi8KIAogaW1wb3J0ICgnam91cm5hbC5TZWN0aW9uJyk7CkBA
IC0xNDIsNiArMTQyLDcgQEAKIAkJJHNlY3Rpb24tPnNldEhpZGVUaXRsZSgkcm93WydoaWRlX3Rp
dGxlJ10pOwogCQkkc2VjdGlvbi0+c2V0SGlkZUF1dGhvcigkcm93WydoaWRlX2F1dGhvciddKTsK
IAkJJHNlY3Rpb24tPnNldEhpZGVBYm91dCgkcm93WydoaWRlX2Fib3V0J10pOworCQkkc2VjdGlv
bi0+c2V0RGlzYWJsZUNvbW1lbnRzKCRyb3dbJ2Rpc2FibGVfY29tbWVudHMnXSk7CiAKIAkJJHRo
aXMtPmdldERhdGFPYmplY3RTZXR0aW5ncygnc2VjdGlvbl9zZXR0aW5ncycsICdzZWN0aW9uX2lk
JywgJHJvd1snc2VjdGlvbl9pZCddLCAkc2VjdGlvbik7CiAKQEAgLTE3NSw5ICsxNzYsOSBAQAog
CWZ1bmN0aW9uIGluc2VydFNlY3Rpb24oJiRzZWN0aW9uKSB7CiAJCSR0aGlzLT51cGRhdGUoCiAJ
CQknSU5TRVJUIElOVE8gc2VjdGlvbnMKLQkJCQkoam91cm5hbF9pZCwgc2VxLCBtZXRhX2luZGV4
ZWQsIG1ldGFfcmV2aWV3ZWQsIGFic3RyYWN0c19ub3RfcmVxdWlyZWQsIGVkaXRvcl9yZXN0cmlj
dGVkLCBoaWRlX3RpdGxlLCBoaWRlX2F1dGhvciwgaGlkZV9hYm91dCkKKwkJCQkoam91cm5hbF9p
ZCwgc2VxLCBtZXRhX2luZGV4ZWQsIG1ldGFfcmV2aWV3ZWQsIGFic3RyYWN0c19ub3RfcmVxdWly
ZWQsIGVkaXRvcl9yZXN0cmljdGVkLCBoaWRlX3RpdGxlLCBoaWRlX2F1dGhvciwgaGlkZV9hYm91
dCwgZGlzYWJsZV9jb21tZW50cykKIAkJCQlWQUxVRVMKLQkJCQkoPywgPywgPywgPywgPywgPywg
PywgPywgPyknLAorCQkJCSg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KScsCiAJCQlhcnJh
eSgKIAkJCQkkc2VjdGlvbi0+Z2V0Sm91cm5hbElkKCksCiAJCQkJJHNlY3Rpb24tPmdldFNlcXVl
bmNlKCkgPT0gbnVsbCA/IDAgOiAkc2VjdGlvbi0+Z2V0U2VxdWVuY2UoKSwKQEAgLTE4Nyw3ICsx
ODgsOCBAQAogCQkJCSRzZWN0aW9uLT5nZXRFZGl0b3JSZXN0cmljdGVkKCkgPyAxIDogMCwKIAkJ
CQkkc2VjdGlvbi0+Z2V0SGlkZVRpdGxlKCkgPyAxIDogMCwKIAkJCQkkc2VjdGlvbi0+Z2V0SGlk
ZUF1dGhvcigpID8gMSA6IDAsCi0JCQkJJHNlY3Rpb24tPmdldEhpZGVBYm91dCgpID8gMSA6IDAK
KwkJCQkkc2VjdGlvbi0+Z2V0SGlkZUFib3V0KCkgPyAxIDogMCwKKwkJCQkkc2VjdGlvbi0+Z2V0
RGlzYWJsZUNvbW1lbnRzKCkgPyAxIDogMAogCQkJKQogCQkpOwogCkBAIC0yMTEsNyArMjEzLDgg
QEAKIAkJCQkJZWRpdG9yX3Jlc3RyaWN0ZWQgPSA/LAogCQkJCQloaWRlX3RpdGxlID0gPywKIAkJ
CQkJaGlkZV9hdXRob3IgPSA/LAotCQkJCQloaWRlX2Fib3V0ID0gPworCQkJCQloaWRlX2Fib3V0
ID0gPywKKwkJCQkJZGlzYWJsZV9jb21tZW50cyA9ID8KIAkJCQlXSEVSRSBzZWN0aW9uX2lkID0g
PycsCiAJCQlhcnJheSgKIAkJCQkkc2VjdGlvbi0+Z2V0U2VxdWVuY2UoKSwKQEAgLTIyMiw2ICsy
MjUsNyBAQAogCQkJCSRzZWN0aW9uLT5nZXRIaWRlVGl0bGUoKSwKIAkJCQkkc2VjdGlvbi0+Z2V0
SGlkZUF1dGhvcigpLAogCQkJCSRzZWN0aW9uLT5nZXRIaWRlQWJvdXQoKSwKKwkJCQkkc2VjdGlv
bi0+Z2V0RGlzYWJsZUNvbW1lbnRzKCksCiAJCQkJJHNlY3Rpb24tPmdldFNlY3Rpb25JZCgpCiAJ
CQkpCiAJCSk7Ci0tLSBvanMyL2NsYXNzZXMvbWFuYWdlci9mb3JtL1NlY3Rpb25Gb3JtLmluYy5w
aHA6MS4zMwlGcmkgSnVuIDEzIDE2OjU5OjQ0IDIwMDgKKysrIG9qczIvY2xhc3Nlcy9tYW5hZ2Vy
L2Zvcm0vU2VjdGlvbkZvcm0uaW5jLnBocAlXZWQgSnVuIDE4IDEyOjUyOjU5IDIwMDgKQEAgLTEx
LDcgKzExLDcgQEAKICAqCiAgKiBGb3JtIGZvciBjcmVhdGluZyBhbmQgbW9kaWZ5aW5nIGpvdXJu
YWwgc2VjdGlvbnMuCiAgKgotICogJElkOiBTZWN0aW9uRm9ybS5pbmMucGhwLHYgMS4zMyAyMDA4
LzA2LzEzIDIzOjU5OjQ0IG1pY2hhZWwgRXhwICQKKyAqICRJZDogU2VjdGlvbkZvcm0uaW5jLnBo
cCx2IDEuMzQgMjAwOC8wNi8xOCAxOTo1Mjo1OSBtaWNoYWVsIEV4cCAkCiAgKi8KIAogaW1wb3J0
KCdmb3JtLkZvcm0nKTsKQEAgLTk3LDggKzk3LDEwIEBACiAJICogRGlzcGxheSB0aGUgZm9ybS4K
IAkgKi8KIAlmdW5jdGlvbiBkaXNwbGF5KCkgeworCQkkam91cm5hbCA9JiBSZXF1ZXN0OjpnZXRK
b3VybmFsKCk7CiAJCSR0ZW1wbGF0ZU1nciA9ICZUZW1wbGF0ZU1hbmFnZXI6OmdldE1hbmFnZXIo
KTsKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ3NlY3Rpb25JZCcsICR0aGlzLT5zZWN0aW9uSWQp
OworCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbignY29tbWVudHNFbmFibGVkJywgJGpvdXJuYWwtPmdl
dFNldHRpbmcoJ2VuYWJsZUNvbW1lbnRzJykpOwogCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbignaGVs
cFRvcGljSWQnLCdqb3VybmFsLm1hbmFnZW1lbnRQYWdlcy5zZWN0aW9ucycpOwogCQlwYXJlbnQ6
OmRpc3BsYXkoKTsKIAl9CkBAIC0xMjcsNiArMTI5LDcgQEAKIAkJCQkJJ2hpZGVUaXRsZScgPT4g
JHNlY3Rpb24tPmdldEhpZGVUaXRsZSgpLAogCQkJCQknaGlkZUF1dGhvcicgPT4gJHNlY3Rpb24t
PmdldEhpZGVBdXRob3IoKSwKIAkJCQkJJ2hpZGVBYm91dCcgPT4gJHNlY3Rpb24tPmdldEhpZGVB
Ym91dCgpLAorCQkJCQknZGlzYWJsZUNvbW1lbnRzJyA9PiAkc2VjdGlvbi0+Z2V0RGlzYWJsZUNv
bW1lbnRzKCksCiAJCQkJCSdwb2xpY3knID0+ICRzZWN0aW9uLT5nZXRQb2xpY3kobnVsbCksIC8v
IExvY2FsaXplZAogCQkJCQknYXNzaWduZWRFZGl0b3JzJyA9PiAkc2VjdGlvbkVkaXRvcnNEYW8t
PmdldEVkaXRvcnNCeVNlY3Rpb25JZCgkam91cm5hbC0+Z2V0Sm91cm5hbElkKCksICR0aGlzLT5z
ZWN0aW9uSWQpLAogCQkJCQkndW5hc3NpZ25lZEVkaXRvcnMnID0+ICRzZWN0aW9uRWRpdG9yc0Rh
by0+Z2V0RWRpdG9yc05vdEluU2VjdGlvbigkam91cm5hbC0+Z2V0Sm91cm5hbElkKCksICR0aGlz
LT5zZWN0aW9uSWQpCkBAIC0xMzksNyArMTQyLDcgQEAKIAkgKiBBc3NpZ24gZm9ybSBkYXRhIHRv
IHVzZXItc3VibWl0dGVkIGRhdGEuCiAJICovCiAJZnVuY3Rpb24gcmVhZElucHV0RGF0YSgpIHsK
LQkJJHRoaXMtPnJlYWRVc2VyVmFycyhhcnJheSgndGl0bGUnLCAnYWJicmV2JywgJ3BvbGljeScs
ICdpZGVudGlmeVR5cGUnLCAnbWV0YUluZGV4ZWQnLCAnbWV0YVJldmlld2VkJywgJ2Fic3RyYWN0
c05vdFJlcXVpcmVkJywgJ2VkaXRvclJlc3RyaWN0aW9uJywgJ2hpZGVUaXRsZScsICdoaWRlQXV0
aG9yJywgJ2hpZGVBYm91dCcpKTsKKwkJJHRoaXMtPnJlYWRVc2VyVmFycyhhcnJheSgndGl0bGUn
LCAnYWJicmV2JywgJ3BvbGljeScsICdpZGVudGlmeVR5cGUnLCAnbWV0YUluZGV4ZWQnLCAnbWV0
YVJldmlld2VkJywgJ2Fic3RyYWN0c05vdFJlcXVpcmVkJywgJ2VkaXRvclJlc3RyaWN0aW9uJywg
J2hpZGVUaXRsZScsICdoaWRlQXV0aG9yJywgJ2hpZGVBYm91dCcsICdkaXNhYmxlQ29tbWVudHMn
KSk7CiAJCSRhc3NpZ25lZEVkaXRvcklkcyA9IFJlcXVlc3Q6OmdldFVzZXJWYXIoJ2Fzc2lnbmVk
RWRpdG9ySWRzJyk7CiAJCWlmIChlbXB0eSgkYXNzaWduZWRFZGl0b3JJZHMpKSAkYXNzaWduZWRF
ZGl0b3JJZHMgPSBhcnJheSgpOwogCQllbHNlaWYgKCFpc19hcnJheSgkYXNzaWduZWRFZGl0b3JJ
ZHMpKSAkYXNzaWduZWRFZGl0b3JJZHMgPSBhcnJheSgkYXNzaWduZWRFZGl0b3JJZHMpOwpAQCAt
MTk4LDYgKzIwMSw3IEBACiAJCSRzZWN0aW9uLT5zZXRIaWRlVGl0bGUoJHRoaXMtPmdldERhdGEo
J2hpZGVUaXRsZScpID8gMSA6IDApOwogCQkkc2VjdGlvbi0+c2V0SGlkZUF1dGhvcigkdGhpcy0+
Z2V0RGF0YSgnaGlkZUF1dGhvcicpID8gMSA6IDApOwogCQkkc2VjdGlvbi0+c2V0SGlkZUFib3V0
KCR0aGlzLT5nZXREYXRhKCdoaWRlQWJvdXQnKSA/IDEgOiAwKTsKKwkJJHNlY3Rpb24tPnNldERp
c2FibGVDb21tZW50cygkdGhpcy0+Z2V0RGF0YSgnZGlzYWJsZUNvbW1lbnRzJykgPyAxIDogMCk7
CiAJCSRzZWN0aW9uLT5zZXRQb2xpY3koJHRoaXMtPmdldERhdGEoJ3BvbGljeScpLCBudWxsKTsg
Ly8gTG9jYWxpemVkCiAKIAkJaWYgKCRzZWN0aW9uLT5nZXRTZWN0aW9uSWQoKSAhPSBudWxsKSB7
Ci0tLSBvanMyL2NsYXNzZXMvc3VibWlzc2lvbi9zZWN0aW9uRWRpdG9yL1NlY3Rpb25FZGl0b3JB
Y3Rpb24uaW5jLnBocDoxLjE2MQlXZWQgSnVuIDExIDEzOjU3OjMyIDIwMDgKKysrIG9qczIvY2xh
c3Nlcy9zdWJtaXNzaW9uL3NlY3Rpb25FZGl0b3IvU2VjdGlvbkVkaXRvckFjdGlvbi5pbmMucGhw
CVdlZCBKdW4gMTggMTI6NTI6NTkgMjAwOApAQCAtMTEsNyArMTEsNyBAQAogICoKICAqIFNlY3Rp
b25FZGl0b3JBY3Rpb24gY2xhc3MuCiAgKgotICogJElkOiBTZWN0aW9uRWRpdG9yQWN0aW9uLmlu
Yy5waHAsdiAxLjE2MSAyMDA4LzA2LzExIDIwOjU3OjMyIGFzbWVjaGVyIEV4cCAkCisgKiAkSWQ6
IFNlY3Rpb25FZGl0b3JBY3Rpb24uaW5jLnBocCx2IDEuMTYyIDIwMDgvMDYvMTggMTk6NTI6NTkg
bWljaGFlbCBFeHAgJAogICovCiAKIGltcG9ydCgnc3VibWlzc2lvbi5jb21tb24uQWN0aW9uJyk7
CkBAIC0xMzQ0LDYgKzEzNDQsMTkgQEAKIAkJJHN1Ym1pc3Npb25EYW8tPnVwZGF0ZVNlY3Rpb25F
ZGl0b3JTdWJtaXNzaW9uKCRzdWJtaXNzaW9uKTsKIAl9CiAKKwkvKioKKwkgKiBDaGFuZ2VzIHRo
ZSBzdWJtaXNzaW9uIFJUIGNvbW1lbnRzIHN0YXR1cy4KKwkgKiBAcGFyYW0gJHN1Ym1pc3Npb24g
b2JqZWN0CisJICogQHBhcmFtICRjb21tZW50c1N0YXR1cyBpbnQKKwkgKi8KKwlmdW5jdGlvbiB1
cGRhdGVDb21tZW50c1N0YXR1cygkc3VibWlzc2lvbiwgJGNvbW1lbnRzU3RhdHVzKSB7CisJCWlm
IChIb29rUmVnaXN0cnk6OmNhbGwoJ1NlY3Rpb25FZGl0b3JBY3Rpb246OnVwZGF0ZUNvbW1lbnRz
U3RhdHVzJywgYXJyYXkoJiRzdWJtaXNzaW9uLCAmJGNvbW1lbnRzU3RhdHVzKSkpIHJldHVybjsK
KworCQkkc3VibWlzc2lvbkRhbyA9ICZEQU9SZWdpc3RyeTo6Z2V0REFPKCdTZWN0aW9uRWRpdG9y
U3VibWlzc2lvbkRBTycpOworCQkkc3VibWlzc2lvbi0+c2V0Q29tbWVudHNTdGF0dXMoJGNvbW1l
bnRzU3RhdHVzKTsgLy8gRklYTUUgdmFsaWRhdGUgdGhpcz8KKwkJJHN1Ym1pc3Npb25EYW8tPnVw
ZGF0ZVNlY3Rpb25FZGl0b3JTdWJtaXNzaW9uKCRzdWJtaXNzaW9uKTsKKwl9CisKIAkvLwogCS8v
IExheW91dCBFZGl0aW5nCiAJLy8KLS0tIG9qczIvY2xhc3Nlcy9zdWJtaXNzaW9uL3NlY3Rpb25F
ZGl0b3IvU2VjdGlvbkVkaXRvclN1Ym1pc3Npb25EQU8uaW5jLnBocDoxLjkwCVdlZCBKdW4gMTEg
MTE6NTQ6NTcgMjAwOAorKysgb2pzMi9jbGFzc2VzL3N1Ym1pc3Npb24vc2VjdGlvbkVkaXRvci9T
ZWN0aW9uRWRpdG9yU3VibWlzc2lvbkRBTy5pbmMucGhwCVdlZCBKdW4gMTggMTI6NTI6NTkgMjAw
OApAQCAtMTIsNyArMTIsNyBAQAogICogQ2xhc3MgZm9yIFNlY3Rpb25FZGl0b3JTdWJtaXNzaW9u
IERBTy4KICAqIE9wZXJhdGlvbnMgZm9yIHJldHJpZXZpbmcgYW5kIG1vZGlmeWluZyBTZWN0aW9u
RWRpdG9yU3VibWlzc2lvbiBvYmplY3RzLgogICoKLSAqICRJZDogU2VjdGlvbkVkaXRvclN1Ym1p
c3Npb25EQU8uaW5jLnBocCx2IDEuOTAgMjAwOC8wNi8xMSAxODo1NDo1NyBhc21lY2hlciBFeHAg
JAorICogJElkOiBTZWN0aW9uRWRpdG9yU3VibWlzc2lvbkRBTy5pbmMucGhwLHYgMS45MSAyMDA4
LzA2LzE4IDE5OjUyOjU5IG1pY2hhZWwgRXhwICQKICAqLwogCiBpbXBvcnQoJ3N1Ym1pc3Npb24u
c2VjdGlvbkVkaXRvci5TZWN0aW9uRWRpdG9yU3VibWlzc2lvbicpOwpAQCAtMzQyLDYgKzM0Miw3
IEBACiAJCQkkYXJ0aWNsZS0+c2V0Q29weWVkaXRGaWxlSWQoJHNlY3Rpb25FZGl0b3JTdWJtaXNz
aW9uLT5nZXRDb3B5ZWRpdEZpbGVJZCgpKTsKIAkJCSRhcnRpY2xlLT5zZXREYXRlU3RhdHVzTW9k
aWZpZWQoJHNlY3Rpb25FZGl0b3JTdWJtaXNzaW9uLT5nZXREYXRlU3RhdHVzTW9kaWZpZWQoKSk7
CiAJCQkkYXJ0aWNsZS0+c2V0TGFzdE1vZGlmaWVkKCRzZWN0aW9uRWRpdG9yU3VibWlzc2lvbi0+
Z2V0TGFzdE1vZGlmaWVkKCkpOworCQkJJGFydGljbGUtPnNldENvbW1lbnRzU3RhdHVzKCRzZWN0
aW9uRWRpdG9yU3VibWlzc2lvbi0+Z2V0Q29tbWVudHNTdGF0dXMoKSk7CiAKIAkJCSR0aGlzLT5h
cnRpY2xlRGFvLT51cGRhdGVBcnRpY2xlKCRhcnRpY2xlKTsKIAkJfQotLS0gb2pzMi9kYnNjcmlw
dHMveG1sL29qc19zY2hlbWEueG1sOjEuMTYwCVR1ZSBKdW4gMTcgMTY6MTM6NDIgMjAwOAorKysg
b2pzMi9kYnNjcmlwdHMveG1sL29qc19zY2hlbWEueG1sCVdlZCBKdW4gMTggMTI6NTI6NTkgMjAw
OApAQCAtOSw3ICs5LDcgQEAKICAgKgogICAqIE9KUyBkYXRhYmFzZSBzY2hlbWEgaW4gWE1MLgog
ICAqCi0gICogJElkOiBvanNfc2NoZW1hLnhtbCx2IDEuMTYwIDIwMDgvMDYvMTcgMjM6MTM6NDIg
YXNtZWNoZXIgRXhwICQKKyAgKiAkSWQ6IG9qc19zY2hlbWEueG1sLHYgMS4xNjEgMjAwOC8wNi8x
OCAxOTo1Mjo1OSBtaWNoYWVsIEV4cCAkCiAgIC0tPgogCiA8c2NoZW1hIHZlcnNpb249IjAuMiI+
CkBAIC02MTAsNiArNjEwLDEwIEBACiAJCQk8Tk9UTlVMTC8+CiAJCQk8REVGQVVMVCBWQUxVRT0i
MCIvPgogCQk8L2ZpZWxkPgorCQk8ZmllbGQgbmFtZT0iZGlzYWJsZV9jb21tZW50cyIgdHlwZT0i
STEiPgorCQkJPE5PVE5VTEwvPgorCQkJPERFRkFVTFQgVkFMVUU9IjAiLz4KKwkJPC9maWVsZD4K
IAkJPGRlc2NyPkpvdXJuYWwgc2VjdGlvbnMuPC9kZXNjcj4KIAkJPGluZGV4IG5hbWU9InNlY3Rp
b25zX2pvdXJuYWxfaWQiPgogCQkJPGNvbD5qb3VybmFsX2lkPC9jb2w+CkBAIC04NzQsNiArODc4
LDEwIEBACiAJCQk8Tk9UTlVMTC8+CiAJCQk8REVGQVVMVCBWQUxVRT0iMCIvPgogCQk8L2ZpZWxk
PgorCQk8ZmllbGQgbmFtZT0iY29tbWVudHNfc3RhdHVzIiB0eXBlPSJJMSI+CisJCQk8Tk9UTlVM
TC8+CisJCQk8REVGQVVMVCBWQUxVRT0iMCIvPgorCQk8L2ZpZWxkPgogCQk8ZGVzY3I+Sm91cm5h
bCBhcnRpY2xlcy48L2Rlc2NyPgogCQk8aW5kZXggbmFtZT0iYXJ0aWNsZXNfdXNlcl9pZCI+CiAJ
CQk8Y29sPnVzZXJfaWQ8L2NvbD4KLS0tIG9qczIvZGJzY3JpcHRzL3htbC91cGdyYWRlLzIuMi4x
X3VwZGF0ZS54bWw6MS43CVR1ZSBKdW4gMTcgMTI6MzY6NTYgMjAwOAorKysgb2pzMi9kYnNjcmlw
dHMveG1sL3VwZ3JhZGUvMi4yLjFfdXBkYXRlLnhtbAlXZWQgSnVuIDE4IDEyOjUyOjU5IDIwMDgK
QEAgLTksNyArOSw3IEBACiAgICoKICAgKiAyLjIuMSBkYXRhYmFzZSB1cGRhdGVzIFhNTCBmaWxl
LgogICAqCi0gICogJElkOiAyLjIuMV91cGRhdGUueG1sLHYgMS43IDIwMDgvMDYvMTcgMTk6MzY6
NTYgbWljaGFlbCBFeHAgJAorICAqICRJZDogMi4yLjFfdXBkYXRlLnhtbCx2IDEuOCAyMDA4LzA2
LzE4IDE5OjUyOjU5IG1pY2hhZWwgRXhwICQKICAgLS0+CiA8ZGF0YT4KIAk8IS0tIEJ1ZyAjMzI4
OTogQWxsb3cgZm9yIHN1cHByZXNzaW9uIG9mIGF1dGhvciBpbmZvbWF0aW9uIGluIFRvQyAtLT4K
QEAgLTkwLDQgKzkwLDIzIEBACiAJCQlBTFRFUiBUQUJMRSBpc3N1ZXMgUkVOQU1FIENPTFVNTiBu
dW1iZXJfbmV3IFRPIG51bWJlcgogCQk8L3F1ZXJ5PgogCTwvc3FsPgorCisJPCEtLSBCdWcgIzMy
OTM6IEVuYWJsZSB1c2VyIGNvbW1lbnRzIG9uIGEgcGVyIHNlY3Rpb24vYXJ0aWNsZSBiYXNpcyAt
LT4KKwk8c3FsPgorCQk8IS0tIFN5bnRheCBmb3IgTXlTUUwuIC0tPgorCQk8cXVlcnkgZHJpdmVy
PSJteXNxbCI+CisJCQlBTFRFUiBUQUJMRSBzZWN0aW9ucyBBREQgQ09MVU1OIGRpc2FibGVfY29t
bWVudHMgVElOWUlOVCBOT1QgTlVMTCBERUZBVUxUIDAKKwkJPC9xdWVyeT4KKwkJPHF1ZXJ5IGRy
aXZlcj0ibXlzcWwiPgorCQkJQUxURVIgVEFCTEUgYXJ0aWNsZXMgQUREIENPTFVNTiBjb21tZW50
c19zdGF0dXMgVElOWUlOVCBOT1QgTlVMTCBERUZBVUxUIDAKKwkJPC9xdWVyeT4KKworCQk8IS0t
IFN5bnRheCBmb3IgUG9zdGdyZVNRTC4gLS0+CisJCTxxdWVyeSBkcml2ZXI9InBvc3RncmVzNyI+
CisJCQlBTFRFUiBUQUJMRSBzZWN0aW9ucyBBREQgQ09MVU1OIGRpc2FibGVfY29tbWVudHMgU01B
TExJTlQgTk9UIE5VTEwgREVGQVVMVCAwCisJCTwvcXVlcnk+CisJCTxxdWVyeSBkcml2ZXI9InBv
c3RncmVzNyI+CisJCQlBTFRFUiBUQUJMRSBhcnRpY2xlcyBBREQgQ09MVU1OIGNvbW1lbnRzX3N0
YXR1cyBTTUFMTElOVCBOT1QgTlVMTCBERUZBVUxUIDAKKwkJPC9xdWVyeT4KKwk8L3NxbD4KIDwv
ZGF0YT4KLS0tIG9qczIvbG9jYWxlL2VuX1VTL2xvY2FsZS54bWw6MS42MDAJVHVlIEp1biAxNyAx
NjoxMzo0MiAyMDA4CisrKyBvanMyL2xvY2FsZS9lbl9VUy9sb2NhbGUueG1sCVdlZCBKdW4gMTgg
MTI6NTI6NTkgMjAwOApAQCAtOSw3ICs5LDcgQEAKICAgKgogICAqIExvY2FsaXphdGlvbiBzdHJp
bmdzIGZvciB0aGUgZW5fVVMgKFUuUy4gRW5nbGlzaCkgbG9jYWxlLgogICAqCi0gICogJElkOiBs
b2NhbGUueG1sLHYgMS42MDAgMjAwOC8wNi8xNyAyMzoxMzo0MiBhc21lY2hlciBFeHAgJAorICAq
ICRJZDogbG9jYWxlLnhtbCx2IDEuNjAxIDIwMDgvMDYvMTggMTk6NTI6NTkgbWljaGFlbCBFeHAg
JAogICAtLT4KICAKIDxsb2NhbGUgbmFtZT0iZW5fVVMiIGZ1bGxfbmFtZT0iVS5TLiBFbmdsaXNo
Ij4KQEAgLTM2Nyw2ICszNjcsOSBAQAogCTxtZXNzYWdlIGtleT0iYXJ0aWNsZS5jb3ZlclBhZ2Uu
YWx0VGV4dCI+Q292ZXIgSW1hZ2U8L21lc3NhZ2U+CiAJPG1lc3NhZ2Uga2V5PSJhcnRpY2xlLmFj
Y2Vzc0xvZ29PcGVuLmFsdFRleHQiPk9wZW4gQWNjZXNzPC9tZXNzYWdlPgogCTxtZXNzYWdlIGtl
eT0iYXJ0aWNsZS5hY2Nlc3NMb2dvUmVzdHJpY3RlZC5hbHRUZXh0Ij5SZXN0cmljdGVkIEFjY2Vz
czwvbWVzc2FnZT4KKwk8bWVzc2FnZSBrZXk9ImFydGljbGUuY29tbWVudHMuc2VjdGlvbkRlZmF1
bHQiPkRlZmF1bHQ8L21lc3NhZ2U+CisJPG1lc3NhZ2Uga2V5PSJhcnRpY2xlLmNvbW1lbnRzLmRp
c2FibGUiPkRpc2FibGU8L21lc3NhZ2U+CisJPG1lc3NhZ2Uga2V5PSJhcnRpY2xlLmNvbW1lbnRz
LmVuYWJsZSI+RW5hYmxlPC9tZXNzYWdlPgogCiAJPCEtLSBTdWJtaXNzaW9uIFRyYWNraW5nIC0g
Q29tbW9uIC0tPgogCTxtZXNzYWdlIGtleT0ic3VibWlzc2lvbi5zdW1tYXJ5Ij5TdW1tYXJ5PC9t
ZXNzYWdlPgpAQCAtMzg2LDYgKzM4OSw3IEBACiAJPG1lc3NhZ2Uga2V5PSJzdWJtaXNzaW9uLmFk
ZFN1cHBGaWxlIj5BZGQgYSBTdXBwbGVtZW50YXJ5IEZpbGU8L21lc3NhZ2U+CiAJPG1lc3NhZ2Ug
a2V5PSJzdWJtaXNzaW9uLnN1Ym1pdHRlciI+U3VibWl0dGVyPC9tZXNzYWdlPgogCTxtZXNzYWdl
IGtleT0ic3VibWlzc2lvbi5jaGFuZ2VTZWN0aW9uIj5DaGFuZ2UgdG88L21lc3NhZ2U+CisJPG1l
c3NhZ2Uga2V5PSJzdWJtaXNzaW9uLmNoYW5nZUNvbW1lbnRzIj5DaGFuZ2UgdG88L21lc3NhZ2U+
CiAJPG1lc3NhZ2Uga2V5PSJzdWJtaXNzaW9uLmluaXRpYXRlZCI+SW5pdGlhdGVkPC9tZXNzYWdl
PgogCTxtZXNzYWdlIGtleT0ic3VibWlzc2lvbi5sYXN0TW9kaWZpZWQiPkxhc3QgbW9kaWZpZWQ8
L21lc3NhZ2U+CiAJPG1lc3NhZ2Uga2V5PSJzdWJtaXNzaW9uLmFzayI+QXNrPC9tZXNzYWdlPgpA
QCAtMTM4MSw2ICsxMzg1LDcgQEAKIAk8bWVzc2FnZSBrZXk9Im1hbmFnZXIuc2VjdGlvbnMuaGlk
ZVRvY1RpdGxlIj5PbWl0IHRoZSB0aXRsZSBvZiB0aGlzIHNlY3Rpb24gZnJvbSBpc3N1ZXMnIHRh
YmxlIG9mIGNvbnRlbnRzLjwvbWVzc2FnZT4KIAk8bWVzc2FnZSBrZXk9Im1hbmFnZXIuc2VjdGlv
bnMuaGlkZVRvY0F1dGhvciI+T21pdCBhdXRob3IgbmFtZXMgZm9yIHNlY3Rpb24gaXRlbXMgZnJv
bSBpc3N1ZXMnIHRhYmxlIG9mIGNvbnRlbnRzLjwvbWVzc2FnZT4KIAk8bWVzc2FnZSBrZXk9Im1h
bmFnZXIuc2VjdGlvbnMuaGlkZUFib3V0Ij5PbWl0IHRoaXMgc2VjdGlvbiBmcm9tIEFib3V0IHRo
ZSBKb3VybmFsLjwvbWVzc2FnZT4KKwk8bWVzc2FnZSBrZXk9Im1hbmFnZXIuc2VjdGlvbnMuZGlz
YWJsZUNvbW1lbnRzIj5EaXNhYmxlIHJlYWRlciBjb21tZW50cyBmb3IgdGhpcyBzZWN0aW9uLjwv
bWVzc2FnZT4KIAk8bWVzc2FnZSBrZXk9Im1hbmFnZXIuc2VjdGlvbnMucmVhZGluZ1Rvb2xzIj5S
ZWFkaW5nIFRvb2xzPC9tZXNzYWdlPgogCTxtZXNzYWdlIGtleT0ibWFuYWdlci5zZWN0aW9ucy5p
bmRleGVkIj5JbmRleGVkPC9tZXNzYWdlPgogCTxtZXNzYWdlIGtleT0ibWFuYWdlci5zZWN0aW9u
cy5yZXZpZXdlZCI+UGVlciBSZXZpZXdlZDwvbWVzc2FnZT4KLS0tIG9qczIvcGFnZXMvYXJ0aWNs
ZS9BcnRpY2xlSGFuZGxlci5pbmMucGhwOjEuNzcJV2VkIEp1biAxMSAxMTo1NTowNyAyMDA4Cisr
KyBvanMyL3BhZ2VzL2FydGljbGUvQXJ0aWNsZUhhbmRsZXIuaW5jLnBocAlXZWQgSnVuIDE4IDEy
OjUyOjU5IDIwMDgKQEAgLTExLDcgKzExLDcgQEAKICAqCiAgKiBIYW5kbGUgcmVxdWVzdHMgZm9y
IGFydGljbGUgZnVuY3Rpb25zLiAKICAqCi0gKiAkSWQ6IEFydGljbGVIYW5kbGVyLmluYy5waHAs
diAxLjc3IDIwMDgvMDYvMTEgMTg6NTU6MDcgYXNtZWNoZXIgRXhwICQKKyAqICRJZDogQXJ0aWNs
ZUhhbmRsZXIuaW5jLnBocCx2IDEuNzggMjAwOC8wNi8xOCAxOTo1Mjo1OSBtaWNoYWVsIEV4cCAk
CiAgKi8KIAogaW1wb3J0KCdydC5vanMuUlREQU8nKTsKQEAgLTE0Myw3ICsxNDMsOCBAQAogCiAJ
CSRjb21tZW50RGFvID0gJkRBT1JlZ2lzdHJ5OjpnZXREQU8oJ0NvbW1lbnREQU8nKTsKIAkJJGVu
YWJsZUNvbW1lbnRzID0gJGpvdXJuYWwtPmdldFNldHRpbmcoJ2VuYWJsZUNvbW1lbnRzJyk7Ci0J
CWlmICgkZW5hYmxlQ29tbWVudHMgPT0gQ09NTUVOVFNfQVVUSEVOVElDQVRFRCB8fCAkZW5hYmxl
Q29tbWVudHMgPT0gQ09NTUVOVFNfVU5BVVRIRU5USUNBVEVEIHx8ICRlbmFibGVDb21tZW50cyA9
PSBDT01NRU5UU19BTk9OWU1PVVMpIHsKKworCQlpZiAoKCRhcnRpY2xlLT5nZXRFbmFibGVDb21t
ZW50cygpKSAmJiAoJGVuYWJsZUNvbW1lbnRzID09IENPTU1FTlRTX0FVVEhFTlRJQ0FURUQgfHwg
JGVuYWJsZUNvbW1lbnRzID09IENPTU1FTlRTX1VOQVVUSEVOVElDQVRFRCB8fCAkZW5hYmxlQ29t
bWVudHMgPT0gQ09NTUVOVFNfQU5PTllNT1VTKSkgewogCQkJJGNvbW1lbnRzID0gJiRjb21tZW50
RGFvLT5nZXRSb290Q29tbWVudHNCeUFydGljbGVJZCgkYXJ0aWNsZS0+Z2V0QXJ0aWNsZUlkKCkp
OwogCQl9CiAKQEAgLTIwOCwxMCArMjA5LDExIEBACiAJCSR0ZW1wbGF0ZU1nci0+YXNzaWduX2J5
X3JlZignc2VjdGlvbicsICRzZWN0aW9uKTsKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2FydGlj
bGVJZCcsICRhcnRpY2xlSWQpOwogCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbigncG9zdGluZ0FsbG93
ZWQnLCAoCisJCQkoJGFydGljbGUtPmdldEVuYWJsZUNvbW1lbnRzKCkpICYmICgKIAkJCSRlbmFi
bGVDb21tZW50cyA9PSBDT01NRU5UU19VTkFVVEhFTlRJQ0FURUQgfHwKIAkJCSgoJGVuYWJsZUNv
bW1lbnRzID09IENPTU1FTlRTX0FVVEhFTlRJQ0FURUQgfHwKIAkJCSRlbmFibGVDb21tZW50cyA9
PSBDT01NRU5UU19BTk9OWU1PVVMpICYmCi0JCQlWYWxpZGF0aW9uOjppc0xvZ2dlZEluKCkpCisJ
CQlWYWxpZGF0aW9uOjppc0xvZ2dlZEluKCkpKQogCQkpKTsKIAkJJHRlbXBsYXRlTWdyLT5hc3Np
Z24oJ2dhbGxleUlkJywgJGdhbGxleUlkKTsKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2RlZmlu
ZVRlcm1zQ29udGV4dElkJywgaXNzZXQoJGRlZmluZVRlcm1zQ29udGV4dElkKT8kZGVmaW5lVGVy
bXNDb250ZXh0SWQ6bnVsbCk7CkBAIC0yNjUsMTIgKzI2NywxMyBAQAogCiAJCSRlbmFibGVDb21t
ZW50cyA9ICRqb3VybmFsLT5nZXRTZXR0aW5nKCdlbmFibGVDb21tZW50cycpOwogCQkkdGVtcGxh
dGVNZ3ItPmFzc2lnbigncG9zdGluZ0FsbG93ZWQnLCAoCisJCQkoJGFydGljbGUtPmdldEVuYWJs
ZUNvbW1lbnRzKCkpICYmICgKIAkJCSRlbmFibGVDb21tZW50cyA9PSBDT01NRU5UU19VTkFVVEhF
TlRJQ0FURUQgfHwKIAkJCSgoJGVuYWJsZUNvbW1lbnRzID09IENPTU1FTlRTX0FVVEhFTlRJQ0FU
RUQgfHwKIAkJCSRlbmFibGVDb21tZW50cyA9PSBDT01NRU5UU19BTk9OWU1PVVMpICYmCi0JCQlW
YWxpZGF0aW9uOjppc0xvZ2dlZEluKCkpCisJCQlWYWxpZGF0aW9uOjppc0xvZ2dlZEluKCkpKQog
CQkpKTsKLQkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ3Bvc3RpbmdEaXNhYmxlZCcsICRlbmFibGVD
b21tZW50cyA9PSBDT01NRU5UU19ESVNBQkxFRCk7CisJCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdw
b3N0aW5nRGlzYWJsZWQnLCAoISRhcnRpY2xlLT5nZXRFbmFibGVDb21tZW50cygpIHx8ICRlbmFi
bGVDb21tZW50cyA9PSBDT01NRU5UU19ESVNBQkxFRCkpOwogCiAJCSR0ZW1wbGF0ZU1nci0+YXNz
aWduX2J5X3JlZignam91cm5hbFJ0JywgJGpvdXJuYWxSdCk7CiAJCWlmICgkam91cm5hbFJ0LT5n
ZXRFbmFibGVkKCkpIHsKLS0tIG9qczIvcGFnZXMvY29tbWVudC9Db21tZW50SGFuZGxlci5pbmMu
cGhwOjEuMjUJV2VkIEp1biAxMSAxMTo1NTowNyAyMDA4CisrKyBvanMyL3BhZ2VzL2NvbW1lbnQv
Q29tbWVudEhhbmRsZXIuaW5jLnBocAlXZWQgSnVuIDE4IDEyOjUzOjAwIDIwMDgKQEAgLTExLDcg
KzExLDcgQEAKICAqCiAgKiBIYW5kbGUgcmVxdWVzdHMgZm9yIHVzZXIgY29tbWVudHMuCiAgKgot
ICogJElkOiBDb21tZW50SGFuZGxlci5pbmMucGhwLHYgMS4yNSAyMDA4LzA2LzExIDE4OjU1OjA3
IGFzbWVjaGVyIEV4cCAkCisgKiAkSWQ6IENvbW1lbnRIYW5kbGVyLmluYy5waHAsdiAxLjI2IDIw
MDgvMDYvMTggMTk6NTM6MDAgbWljaGFlbCBFeHAgJAogICovCiAKIGltcG9ydCgncnQub2pzLlJU
REFPJyk7CkBAIC0xMzcsMTIgKzEzNywxNSBAQAogCQkkam91cm5hbElkID0gJGpvdXJuYWwtPmdl
dEpvdXJuYWxJZCgpOwogCQkkam91cm5hbFNldHRpbmdzRGFvID0gJkRBT1JlZ2lzdHJ5OjpnZXRE
QU8oJ0pvdXJuYWxTZXR0aW5nc0RBTycpOwogCisJCSRwdWJsaXNoZWRBcnRpY2xlRGFvID0gJkRB
T1JlZ2lzdHJ5OjpnZXREQU8oJ1B1Ymxpc2hlZEFydGljbGVEQU8nKTsKKwkJJGFydGljbGUgPSAm
JHB1Ymxpc2hlZEFydGljbGVEYW8tPmdldFB1Ymxpc2hlZEFydGljbGVCeUFydGljbGVJZCgkYXJ0
aWNsZUlkKTsKKwogCQkvLyBCcmluZyBpbiBjb21tZW50IGNvbnN0YW50cwogCQkkY29tbWVudERh
byA9ICZEQU9SZWdpc3RyeTo6Z2V0REFPKCdDb21tZW50REFPJyk7CiAKIAkJJGVuYWJsZUNvbW1l
bnRzID0gJGpvdXJuYWwtPmdldFNldHRpbmcoJ2VuYWJsZUNvbW1lbnRzJyk7CiAKLQkJaWYgKCFW
YWxpZGF0aW9uOjppc0xvZ2dlZEluKCkgJiYgJGpvdXJuYWxTZXR0aW5nc0Rhby0+Z2V0U2V0dGlu
Zygkam91cm5hbElkLCdyZXN0cmljdEFydGljbGVBY2Nlc3MnKSB8fCAoJGVuYWJsZUNvbW1lbnRz
ICE9IENPTU1FTlRTX0FOT05ZTU9VUyAmJiAkZW5hYmxlQ29tbWVudHMgIT0gQ09NTUVOVFNfQVVU
SEVOVElDQVRFRCAmJiAkZW5hYmxlQ29tbWVudHMgIT0gQ09NTUVOVFNfVU5BVVRIRU5USUNBVEVE
KSkgeworCQlpZiAoKCFWYWxpZGF0aW9uOjppc0xvZ2dlZEluKCkgJiYgJGpvdXJuYWxTZXR0aW5n
c0Rhby0+Z2V0U2V0dGluZygkam91cm5hbElkLCdyZXN0cmljdEFydGljbGVBY2Nlc3MnKSkgfHwg
KCEkYXJ0aWNsZS0+Z2V0RW5hYmxlQ29tbWVudHMoKSkgfHwgKCRlbmFibGVDb21tZW50cyAhPSBD
T01NRU5UU19BTk9OWU1PVVMgJiYgJGVuYWJsZUNvbW1lbnRzICE9IENPTU1FTlRTX0FVVEhFTlRJ
Q0FURUQgJiYgJGVuYWJsZUNvbW1lbnRzICE9IENPTU1FTlRTX1VOQVVUSEVOVElDQVRFRCkpIHsK
IAkJCVZhbGlkYXRpb246OnJlZGlyZWN0TG9naW4oKTsKIAkJfQogCkBAIC0xNTAsOSArMTUzLDYg
QEAKIAkJJGlzc3VlRGFvID0gJkRBT1JlZ2lzdHJ5OjpnZXREQU8oJ0lzc3VlREFPJyk7CiAJCSRp
c3N1ZSA9ICYkaXNzdWVEYW8tPmdldElzc3VlQnlBcnRpY2xlSWQoJGFydGljbGVJZCk7CiAKLQkJ
JHB1Ymxpc2hlZEFydGljbGVEYW8gPSAmREFPUmVnaXN0cnk6OmdldERBTygnUHVibGlzaGVkQXJ0
aWNsZURBTycpOwotCQkkYXJ0aWNsZSA9ICYkcHVibGlzaGVkQXJ0aWNsZURhby0+Z2V0UHVibGlz
aGVkQXJ0aWNsZUJ5QXJ0aWNsZUlkKCRhcnRpY2xlSWQpOwotCiAJCWlmIChpc3NldCgkaXNzdWUp
ICYmIGlzc2V0KCRhcnRpY2xlKSkgewogCQkJaW1wb3J0KCdpc3N1ZS5Jc3N1ZUFjdGlvbicpOwog
CQkJJHN1YnNjcmlwdGlvblJlcXVpcmVkID0gSXNzdWVBY3Rpb246OnN1YnNjcmlwdGlvblJlcXVp
cmVkKCRpc3N1ZSk7Ci0tLSBvanMyL3BhZ2VzL3NlY3Rpb25FZGl0b3IvU2VjdGlvbkVkaXRvckhh
bmRsZXIuaW5jLnBocDoxLjk0CVdlZCBKdW4gMTEgMTM6NTc6MzIgMjAwOAorKysgb2pzMi9wYWdl
cy9zZWN0aW9uRWRpdG9yL1NlY3Rpb25FZGl0b3JIYW5kbGVyLmluYy5waHAJV2VkIEp1biAxOCAx
Mjo1MzowMCAyMDA4CkBAIC0xMSw3ICsxMSw3IEBACiAgKgogICogSGFuZGxlIHJlcXVlc3RzIGZv
ciBzZWN0aW9uIGVkaXRvciBmdW5jdGlvbnMuIAogICoKLSAqICRJZDogU2VjdGlvbkVkaXRvckhh
bmRsZXIuaW5jLnBocCx2IDEuOTQgMjAwOC8wNi8xMSAyMDo1NzozMiBhc21lY2hlciBFeHAgJAor
ICogJElkOiBTZWN0aW9uRWRpdG9ySGFuZGxlci5pbmMucGhwLHYgMS45NSAyMDA4LzA2LzE4IDE5
OjUzOjAwIG1pY2hhZWwgRXhwICQKICAqLwogCiBpbXBvcnQoJ3N1Ym1pc3Npb24uc2VjdGlvbkVk
aXRvci5TZWN0aW9uRWRpdG9yQWN0aW9uJyk7CkBAIC00MzAsNiArNDMwLDEwIEBACiAJCVN1Ym1p
c3Npb25FZGl0SGFuZGxlcjo6dXBkYXRlU2VjdGlvbigkYXJncyk7CiAJfQogCisJZnVuY3Rpb24g
dXBkYXRlQ29tbWVudHNTdGF0dXMoJGFyZ3MpIHsKKwkJaW1wb3J0KCdwYWdlcy5zZWN0aW9uRWRp
dG9yLlN1Ym1pc3Npb25FZGl0SGFuZGxlcicpOworCQlTdWJtaXNzaW9uRWRpdEhhbmRsZXI6OnVw
ZGF0ZUNvbW1lbnRzU3RhdHVzKCRhcmdzKTsKKwl9CiAKIAkvLwogCS8vIExheW91dCBFZGl0aW5n
Ci0tLSBvanMyL3BhZ2VzL3NlY3Rpb25FZGl0b3IvU3VibWlzc2lvbkVkaXRIYW5kbGVyLmluYy5w
aHA6MS43NQlUdWUgSnVuIDE3IDE2OjEzOjQyIDIwMDgKKysrIG9qczIvcGFnZXMvc2VjdGlvbkVk
aXRvci9TdWJtaXNzaW9uRWRpdEhhbmRsZXIuaW5jLnBocAlXZWQgSnVuIDE4IDEyOjUzOjAwIDIw
MDgKQEAgLTExLDcgKzExLDcgQEAKICAqCiAgKiBIYW5kbGUgcmVxdWVzdHMgZm9yIHN1Ym1pc3Np
b24gdHJhY2tpbmcuIAogICoKLSAqICRJZDogU3VibWlzc2lvbkVkaXRIYW5kbGVyLmluYy5waHAs
diAxLjc1IDIwMDgvMDYvMTcgMjM6MTM6NDIgYXNtZWNoZXIgRXhwICQKKyAqICRJZDogU3VibWlz
c2lvbkVkaXRIYW5kbGVyLmluYy5waHAsdiAxLjc2IDIwMDgvMDYvMTggMTk6NTM6MDAgbWljaGFl
bCBFeHAgJAogICovCiAKIGRlZmluZSgnU0VDVElPTl9FRElUT1JfQUNDRVNTX0VESVQnLCAweDAw
MDAxKTsKQEAgLTQwLDYgKzQwLDggQEAKIAkJJHNlY3Rpb25EYW8gPSAmREFPUmVnaXN0cnk6Omdl
dERBTygnU2VjdGlvbkRBTycpOwogCQkkc2VjdGlvbiA9ICYkc2VjdGlvbkRhby0+Z2V0U2VjdGlv
bigkc3VibWlzc2lvbi0+Z2V0U2VjdGlvbklkKCkpOwogCisJCSRlbmFibGVDb21tZW50cyA9ICRq
b3VybmFsLT5nZXRTZXR0aW5nKCdlbmFibGVDb21tZW50cycpOworCiAJCSR0ZW1wbGF0ZU1nciA9
ICZUZW1wbGF0ZU1hbmFnZXI6OmdldE1hbmFnZXIoKTsKIAogCQkkdGVtcGxhdGVNZ3ItPmFzc2ln
bl9ieV9yZWYoJ3N1Ym1pc3Npb24nLCAkc3VibWlzc2lvbik7CkBAIC01MSw5ICs1MywxNSBAQAog
CQkkdGVtcGxhdGVNZ3ItPmFzc2lnbl9ieV9yZWYoJ2pvdXJuYWxTZXR0aW5ncycsICRqb3VybmFs
U2V0dGluZ3MpOwogCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbigndXNlcklkJywgJHVzZXItPmdldFVz
ZXJJZCgpKTsKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2lzRWRpdG9yJywgJGlzRWRpdG9yKTsK
KwkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2VuYWJsZUNvbW1lbnRzJywgJGVuYWJsZUNvbW1lbnRz
KTsKIAogCQkkc2VjdGlvbkRhbyA9ICZEQU9SZWdpc3RyeTo6Z2V0REFPKCdTZWN0aW9uREFPJyk7
CiAJCSR0ZW1wbGF0ZU1nci0+YXNzaWduX2J5X3JlZignc2VjdGlvbnMnLCAkc2VjdGlvbkRhby0+
Z2V0U2VjdGlvblRpdGxlcygkam91cm5hbC0+Z2V0Sm91cm5hbElkKCkpKTsKKwkJaWYgKCRlbmFi
bGVDb21tZW50cykgeworCQkJaW1wb3J0KCdhcnRpY2xlLkFydGljbGUnKTsKKwkJCSR0ZW1wbGF0
ZU1nci0+YXNzaWduKCdjb21tZW50c1N0YXR1cycsICRzdWJtaXNzaW9uLT5nZXRDb21tZW50c1N0
YXR1cygpKTsKKwkJCSR0ZW1wbGF0ZU1nci0+YXNzaWduX2J5X3JlZignY29tbWVudHNTdGF0dXNP
cHRpb25zJywgQXJ0aWNsZTo6Z2V0Q29tbWVudHNTdGF0dXNPcHRpb25zKCkpOworCQl9CiAKIAkJ
JHB1Ymxpc2hlZEFydGljbGVEYW8gPSAmREFPUmVnaXN0cnk6OmdldERBTygnUHVibGlzaGVkQXJ0
aWNsZURBTycpOwogCQkkcHVibGlzaGVkQXJ0aWNsZSA9ICYkcHVibGlzaGVkQXJ0aWNsZURhby0+
Z2V0UHVibGlzaGVkQXJ0aWNsZUJ5QXJ0aWNsZUlkKCRzdWJtaXNzaW9uLT5nZXRBcnRpY2xlSWQo
KSk7CkBAIC0xMjc4LDYgKzEyODYsMTYgQEAKIAkJUmVxdWVzdDo6cmVkaXJlY3QobnVsbCwgbnVs
bCwgJ3N1Ym1pc3Npb24nLCAkYXJ0aWNsZUlkKTsKIAl9CiAKKwkvKioKKwkgKiBTZXQgUlQgY29t
bWVudHMgc3RhdHVzIGZvciBhcnRpY2xlLgorCSAqIEBwYXJhbSAkYXJncyBhcnJheSAoJGFydGlj
bGVJZCkKKwkgKi8KKwlmdW5jdGlvbiB1cGRhdGVDb21tZW50c1N0YXR1cygkYXJncykgeworCQkk
YXJ0aWNsZUlkID0gaXNzZXQoJGFyZ3NbMF0pID8gKGludCkgJGFyZ3NbMF0gOiAwOworCQlsaXN0
KCRqb3VybmFsLCAkc3VibWlzc2lvbikgPSBTdWJtaXNzaW9uRWRpdEhhbmRsZXI6OnZhbGlkYXRl
KCRhcnRpY2xlSWQpOwkJCisJCVNlY3Rpb25FZGl0b3JBY3Rpb246OnVwZGF0ZUNvbW1lbnRzU3Rh
dHVzKCRzdWJtaXNzaW9uLCBSZXF1ZXN0OjpnZXRVc2VyVmFyKCdjb21tZW50c1N0YXR1cycpKTsK
KwkJUmVxdWVzdDo6cmVkaXJlY3QobnVsbCwgbnVsbCwgJ3N1Ym1pc3Npb24nLCAkYXJ0aWNsZUlk
KTsKKwl9CiAKIAkvLwogCS8vIExheW91dCBFZGl0aW5nCi0tLSBvanMyL3RlbXBsYXRlcy9tYW5h
Z2VyL3NlY3Rpb25zL3NlY3Rpb25Gb3JtLnRwbDoxLjQwCVR1ZSBKdW4gMTcgMDk6Mjc6MzggMjAw
OAorKysgb2pzMi90ZW1wbGF0ZXMvbWFuYWdlci9zZWN0aW9ucy9zZWN0aW9uRm9ybS50cGwJV2Vk
IEp1biAxOCAxMjo1MzowMCAyMDA4CkBAIC02LDcgKzYsNyBAQAogICoKICAqIEZvcm0gdG8gY3Jl
YXRlL21vZGlmeSBhIGpvdXJuYWwgc2VjdGlvbi4KICAqCi0gKiAkSWQ6IHNlY3Rpb25Gb3JtLnRw
bCx2IDEuNDAgMjAwOC8wNi8xNyAxNjoyNzozOCBhc21lY2hlciBFeHAgJAorICogJElkOiBzZWN0
aW9uRm9ybS50cGwsdiAxLjQxIDIwMDgvMDYvMTggMTk6NTM6MDAgbWljaGFlbCBFeHAgJAogICp9
CiB7YXNzaWduIHZhcj0icGFnZVRpdGxlIiB2YWx1ZT0ic2VjdGlvbi5zZWN0aW9uIn0KIHthc3Np
Z24gdmFyPSJwYWdlQ3J1bWJUaXRsZSIgdmFsdWU9InNlY3Rpb24uc2VjdGlvbnMifQpAQCAtMTE4
LDYgKzExOCwxNSBAQAogCQl7ZmllbGRMYWJlbCBuYW1lPSJoaWRlQWJvdXQiIGtleT0ibWFuYWdl
ci5zZWN0aW9ucy5oaWRlQWJvdXQifQogCTwvdGQ+CiA8L3RyPgore2lmICRjb21tZW50c0VuYWJs
ZWR9Cis8dHIgdmFsaWduPSJ0b3AiPgorCTx0ZCBjbGFzcz0ibGFiZWwiPntmaWVsZExhYmVsIG5h
bWU9ImRpc2FibGVDb21tZW50cyIga2V5PSJjb21tZW50cy5yZWFkZXJDb21tZW50cyJ9PC90ZD4K
Kwk8dGQgY2xhc3M9InZhbHVlIj4KKwkJPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJkaXNh
YmxlQ29tbWVudHMiIGlkPSJkaXNhYmxlQ29tbWVudHMiIHZhbHVlPSIxIiB7aWYgJGRpc2FibGVD
b21tZW50c31jaGVja2VkPSJjaGVja2VkInsvaWZ9IC8+CisJCXtmaWVsZExhYmVsIG5hbWU9ImRp
c2FibGVDb21tZW50cyIga2V5PSJtYW5hZ2VyLnNlY3Rpb25zLmRpc2FibGVDb21tZW50cyJ9CisJ
PC90ZD4KKzwvdHI+Cit7L2lmfQogPC90YWJsZT4KIDxkaXYgY2xhc3M9InNlcGFyYXRvciI+PC9k
aXY+CiAKLS0tIG9qczIvdGVtcGxhdGVzL3NlY3Rpb25FZGl0b3Ivc3VibWlzc2lvbi9zdGF0dXMu
dHBsOjEuMTkJV2VkIEp1biAxMSAxMTo1NToyMiAyMDA4CisrKyBvanMyL3RlbXBsYXRlcy9zZWN0
aW9uRWRpdG9yL3N1Ym1pc3Npb24vc3RhdHVzLnRwbAlXZWQgSnVuIDE4IDEyOjUzOjAwIDIwMDgK
QEAgLTYsNyArNiw3IEBACiAgKgogICogU3VidGVtcGxhdGUgZGVmaW5pbmcgdGhlIHN1Ym1pc3Np
b24gc3RhdHVzIHRhYmxlLgogICoKLSAqICRJZDogc3RhdHVzLnRwbCx2IDEuMTkgMjAwOC8wNi8x
MSAxODo1NToyMiBhc21lY2hlciBFeHAgJAorICogJElkOiBzdGF0dXMudHBsLHYgMS4yMCAyMDA4
LzA2LzE4IDE5OjUzOjAwIG1pY2hhZWwgRXhwICQKICAqfQogPGEgbmFtZT0ic3RhdHVzIj48L2E+
CiA8aDM+e3RyYW5zbGF0ZSBrZXk9ImNvbW1vbi5zdGF0dXMifTwvaDM+CkBAIC00MCw0ICs0MCwx
MSBAQAogCQk8dGQgY2xhc3M9ImxhYmVsIj57dHJhbnNsYXRlIGtleT0ic3VibWlzc2lvbi5sYXN0
TW9kaWZpZWQifTwvdGQ+CiAJCTx0ZCBjb2xzcGFuPSIyIiBjbGFzcz0idmFsdWUiPnskc3VibWlz
c2lvbi0+Z2V0TGFzdE1vZGlmaWVkKCl8ZGF0ZV9mb3JtYXQ6JGRhdGVGb3JtYXRTaG9ydH08L3Rk
PgogCTwvdHI+Cit7aWYgJGVuYWJsZUNvbW1lbnRzfQorCTx0cj4KKwkJPHRkIGNsYXNzPSJsYWJl
bCI+e3RyYW5zbGF0ZSBrZXk9ImNvbW1lbnRzLnJlYWRlckNvbW1lbnRzIn08L3RkPgorCQk8dGQg
Y2xhc3M9InZhbHVlIj57dHJhbnNsYXRlIGtleT0kc3VibWlzc2lvbi0+Z2V0Q29tbWVudHNTdGF0
dXNTdHJpbmcoKX08L3RkPgorCQk8dGQgY2xhc3M9InZhbHVlIj48Zm9ybSBhY3Rpb249Int1cmwg
b3A9InVwZGF0ZUNvbW1lbnRzU3RhdHVzIiBwYXRoPSRzdWJtaXNzaW9uLT5nZXRBcnRpY2xlSWQo
KX0iIG1ldGhvZD0icG9zdCI+e3RyYW5zbGF0ZSBrZXk9InN1Ym1pc3Npb24uY2hhbmdlQ29tbWVu
dHMifSA8c2VsZWN0IG5hbWU9ImNvbW1lbnRzU3RhdHVzIiBzaXplPSIxIiBjbGFzcz0ic2VsZWN0
TWVudSI+e2h0bWxfb3B0aW9uc190cmFuc2xhdGUgb3B0aW9ucz0kY29tbWVudHNTdGF0dXNPcHRp
b25zIHNlbGVjdGVkPSRzdWJtaXNzaW9uLT5nZXRDb21tZW50c1N0YXR1cygpfTwvc2VsZWN0PiA8
aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0ie3RyYW5zbGF0ZSBrZXk9ImNvbW1vbi5yZWNvcmQi
fSIgY2xhc3M9ImJ1dHRvbiIgLz48L2Zvcm0+PC90ZD4KKwk8L3RyPgorey9pZn0KIDwvdGFibGU+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>806</attachid>
            <date>2008-06-30 11:40:00 -0700</date>
            <delta_ts>2008-06-30 11:40:20 -0700</delta_ts>
            <desc>Patch against OCS pre-2.1.1 CVS</desc>
            <filename>3293.diff</filename>
            <type>text/plain</type>
            <size>35262</size>
            <attacher>michael.pkp</attacher>
            
              <data encoding="base64">LS0tIG9jczIvY2xhc3Nlcy9jb21tZW50L2Zvcm0vQ29tbWVudEZvcm0uaW5jLnBocDoxLjEwCUZy
aSBBcHIgIDQgMTA6MDY6NDUgMjAwOAorKysgb2NzMi9jbGFzc2VzL2NvbW1lbnQvZm9ybS9Db21t
ZW50Rm9ybS5pbmMucGhwCU1vbiBKdW4gMzAgMTE6MzU6NTEgMjAwOApAQCAtMTEsNyArMTEsNyBA
QAogICoKICAqIEZvcm0gdG8gY2hhbmdlIG1ldGFkYXRhIGluZm9ybWF0aW9uIGZvciBhbiBSVCBj
b21tZW50LgogICoKLSAqICRJZDogQ29tbWVudEZvcm0uaW5jLnBocCx2IDEuMTAgMjAwOC8wNC8w
NCAxNzowNjo0NSBhc21lY2hlciBFeHAgJAorICogJElkOiBDb21tZW50Rm9ybS5pbmMucGhwLHYg
MS4xMSAyMDA4LzA2LzMwIDE4OjM1OjUxIG1pY2hhZWwgRXhwICQKICAqLwogCiBpbXBvcnQoJ2Zv
cm0uRm9ybScpOwpAQCAtOTAsNiArOTAsNyBAQAogCSAqIERpc3BsYXkgdGhlIGZvcm0uCiAJICov
CiAJZnVuY3Rpb24gZGlzcGxheSgpIHsKKwkJJGNvbmZlcmVuY2UgPSBSZXF1ZXN0OjpnZXRDb25m
ZXJlbmNlKCk7CiAJCSRzY2hlZENvbmYgPSBSZXF1ZXN0OjpnZXRTY2hlZENvbmYoKTsKIAogCQkk
dGVtcGxhdGVNZ3IgPSAmVGVtcGxhdGVNYW5hZ2VyOjpnZXRNYW5hZ2VyKCk7CkBAIC0xMjIsOSAr
MTIzLDkgQEAKIAkJJGNvbW1lbnRzQ2xvc2VkID0gJHNjaGVkQ29uZi0+Z2V0U2V0dGluZygnY2xv
c2VDb21tZW50cycpP3RydWU6ZmFsc2UgJiYgKHN0cnRvdGltZSgkY2xvc2VDb21tZW50c0RhdGUg
PCB0aW1lKCkpKTsKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2Nsb3NlQ29tbWVudHNEYXRlJywg
JGNsb3NlQ29tbWVudHNEYXRlKTsKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2NvbW1lbnRzQ2xv
c2VkJywgJGNvbW1lbnRzQ2xvc2VkKTsKLQkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2VuYWJsZUNv
bW1lbnRzJywgJHNjaGVkQ29uZi0+Z2V0U2V0dGluZygnZW5hYmxlQ29tbWVudHMnLCB0cnVlKSk7
Ci0JCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdjb21tZW50c1JlcXVpcmVSZWdpc3RyYXRpb24nLCAk
c2NoZWRDb25mLT5nZXRTZXR0aW5nKCdjb21tZW50c1JlcXVpcmVSZWdpc3RyYXRpb24nLCB0cnVl
KSk7Ci0JCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdjb21tZW50c0FsbG93QW5vbnltb3VzJywgJHNj
aGVkQ29uZi0+Z2V0U2V0dGluZygnY29tbWVudHNBbGxvd0Fub255bW91cycsIHRydWUpKTsKKwkJ
JHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2VuYWJsZUNvbW1lbnRzJywgJGNvbmZlcmVuY2UtPmdldFNl
dHRpbmcoJ2VuYWJsZUNvbW1lbnRzJykpOworCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbignY29tbWVu
dHNSZXF1aXJlUmVnaXN0cmF0aW9uJywgJGNvbmZlcmVuY2UtPmdldFNldHRpbmcoJ2NvbW1lbnRz
UmVxdWlyZVJlZ2lzdHJhdGlvbicpKTsKKwkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2NvbW1lbnRz
QWxsb3dBbm9ueW1vdXMnLCAkY29uZmVyZW5jZS0+Z2V0U2V0dGluZygnY29tbWVudHNBbGxvd0Fu
b255bW91cycpKTsKIAogCQlwYXJlbnQ6OmRpc3BsYXkoKTsKIAl9CkBAIC0xNTMsMTAgKzE1NCwx
MSBAQAogCSAqIEByZXR1cm4gaW50IHRoZSBjb21tZW50IElECiAJICovCiAJZnVuY3Rpb24gZXhl
Y3V0ZSgpIHsKKwkJJGNvbmZlcmVuY2UgPSAmUmVxdWVzdDo6Z2V0Q29uZmVyZW5jZSgpOwogCQkk
c2NoZWRDb25mID0gJlJlcXVlc3Q6OmdldFNjaGVkQ29uZigpOwotCQkkZW5hYmxlQ29tbWVudHMg
PSAkc2NoZWRDb25mLT5nZXRTZXR0aW5nKCdlbmFibGVDb21tZW50cycsIHRydWUpOwotCQkkY29t
bWVudHNSZXF1aXJlUmVnaXN0cmF0aW9uID0gJHNjaGVkQ29uZi0+Z2V0U2V0dGluZygnY29tbWVu
dHNSZXF1aXJlUmVnaXN0cmF0aW9uJywgdHJ1ZSk7Ci0JCSRjb21tZW50c0FsbG93QW5vbnltb3Vz
ID0gJHNjaGVkQ29uZi0+Z2V0U2V0dGluZygnY29tbWVudHNBbGxvd0Fub255bW91cycsIHRydWUp
OworCQkkZW5hYmxlQ29tbWVudHMgPSAkY29uZmVyZW5jZS0+Z2V0U2V0dGluZygnZW5hYmxlQ29t
bWVudHMnKTsKKwkJJGNvbW1lbnRzUmVxdWlyZVJlZ2lzdHJhdGlvbiA9ICRjb25mZXJlbmNlLT5n
ZXRTZXR0aW5nKCdjb21tZW50c1JlcXVpcmVSZWdpc3RyYXRpb24nKTsKKwkJJGNvbW1lbnRzQWxs
b3dBbm9ueW1vdXMgPSAkY29uZmVyZW5jZS0+Z2V0U2V0dGluZygnY29tbWVudHNBbGxvd0Fub255
bW91cycpOwogCiAJCSRjb21tZW50RGFvID0gJkRBT1JlZ2lzdHJ5OjpnZXREQU8oJ0NvbW1lbnRE
QU8nKTsKIAotLS0gb2NzMi9jbGFzc2VzL2NvbmZlcmVuY2UvVHJhY2suaW5jLnBocDoxLjExCUZy
aSBBcHIgIDQgMTA6MDY6NDUgMjAwOAorKysgb2NzMi9jbGFzc2VzL2NvbmZlcmVuY2UvVHJhY2su
aW5jLnBocAlNb24gSnVuIDMwIDExOjM1OjUxIDIwMDgKQEAgLTEyLDcgKzEyLDcgQEAKICAqIFRy
YWNrIGNsYXNzLgogICogRGVzY3JpYmVzIGJhc2ljIHRyYWNrIHByb3BlcnRpZXMuCiAgKgotICog
JElkOiBUcmFjay5pbmMucGhwLHYgMS4xMSAyMDA4LzA0LzA0IDE3OjA2OjQ1IGFzbWVjaGVyIEV4
cCAkCisgKiAkSWQ6IFRyYWNrLmluYy5waHAsdiAxLjEyIDIwMDgvMDYvMzAgMTg6MzU6NTEgbWlj
aGFlbCBFeHAgJAogICovCiAKIGNsYXNzIFRyYWNrIGV4dGVuZHMgRGF0YU9iamVjdCB7CkBAIC0y
MDIsNiArMjAyLDIyIEBACiAJfQogCiAJLyoqCisJICogUmV0dXJuIGJvb2xlYW4gaW5kaWNhdGlu
ZyBpZiBSVCBjb21tZW50cyBzaG91bGQgYmUgZGlzYWJsZWQuCisJICogQHJldHVybiBib29sZWFu
CisJICovCisJZnVuY3Rpb24gZ2V0RGlzYWJsZUNvbW1lbnRzKCkgeworCQlyZXR1cm4gJHRoaXMt
PmdldERhdGEoJ2Rpc2FibGVDb21tZW50cycpOworCX0KKworCS8qKgorCSAqIFNldCBpZiBSVCBj
b21tZW50cyBzaG91bGQgYmUgZGlzYWJsZWQuCisJICogQHBhcmFtICRkaXNhYmxlQ29tbWVudHMg
Ym9vbGVhbgorCSAqLworCWZ1bmN0aW9uIHNldERpc2FibGVDb21tZW50cygkZGlzYWJsZUNvbW1l
bnRzKSB7CisJCXJldHVybiAkdGhpcy0+c2V0RGF0YSgnZGlzYWJsZUNvbW1lbnRzJywgJGRpc2Fi
bGVDb21tZW50cyk7CisJfQorCisJLyoqCiAJICogR2V0IGxvY2FsaXplZCB0cmFjayBwb2xpY3ku
CiAJICogQHJldHVybiBzdHJpbmcKIAkgKi8KLS0tIG9jczIvY2xhc3Nlcy9jb25mZXJlbmNlL1Ry
YWNrREFPLmluYy5waHA6MS4xOAlUdWUgTWF5ICA2IDExOjIyOjEyIDIwMDgKKysrIG9jczIvY2xh
c3Nlcy9jb25mZXJlbmNlL1RyYWNrREFPLmluYy5waHAJTW9uIEp1biAzMCAxMTozNTo1MSAyMDA4
CkBAIC0xMiw3ICsxMiw3IEBACiAgKiBDbGFzcyBmb3IgdHJhY2sgREFPLgogICogT3BlcmF0aW9u
cyBmb3IgcmV0cmlldmluZyBhbmQgbW9kaWZ5aW5nIFRyYWNrIG9iamVjdHMuCiAgKgotICogJElk
OiBUcmFja0RBTy5pbmMucGhwLHYgMS4xOCAyMDA4LzA1LzA2IDE4OjIyOjEyIGFzbWVjaGVyIEV4
cCAkCisgKiAkSWQ6IFRyYWNrREFPLmluYy5waHAsdiAxLjE5IDIwMDgvMDYvMzAgMTg6MzU6NTEg
bWljaGFlbCBFeHAgJAogICovCiAKIGltcG9ydCAoJ2NvbmZlcmVuY2UuVHJhY2snKTsKQEAgLTE0
NSw2ICsxNDUsNyBAQAogCQkkdHJhY2stPnNldE1ldGFSZXZpZXdlZCgkcm93WydtZXRhX3Jldmll
d2VkJ10pOwogCQkkdHJhY2stPnNldERpcmVjdG9yUmVzdHJpY3RlZCgkcm93WydkaXJlY3Rvcl9y
ZXN0cmljdGVkJ10pOwogCQkkdHJhY2stPnNldEhpZGVBYm91dCgkcm93WydoaWRlX2Fib3V0J10p
OworCQkkdHJhY2stPnNldERpc2FibGVDb21tZW50cygkcm93WydkaXNhYmxlX2NvbW1lbnRzJ10p
OwogCiAJCSR0aGlzLT5nZXREYXRhT2JqZWN0U2V0dGluZ3MoJ3RyYWNrX3NldHRpbmdzJywgJ3Ry
YWNrX2lkJywgJHJvd1sndHJhY2tfaWQnXSwgJHRyYWNrKTsKIApAQCAtMTc5LDE1ICsxODAsMTYg
QEAKIAlmdW5jdGlvbiBpbnNlcnRUcmFjaygmJHRyYWNrKSB7CiAJCSR0aGlzLT51cGRhdGUoCiAJ
CQknSU5TRVJUIElOVE8gdHJhY2tzCi0JCQkJKHNjaGVkX2NvbmZfaWQsIHNlcSwgbWV0YV9yZXZp
ZXdlZCwgZGlyZWN0b3JfcmVzdHJpY3RlZCwgaGlkZV9hYm91dCkKKwkJCQkoc2NoZWRfY29uZl9p
ZCwgc2VxLCBtZXRhX3Jldmlld2VkLCBkaXJlY3Rvcl9yZXN0cmljdGVkLCBoaWRlX2Fib3V0LCBk
aXNhYmxlX2NvbW1lbnRzKQogCQkJCVZBTFVFUwotCQkJCSg/LCA/LCA/LCA/LCA/KScsCisJCQkJ
KD8sID8sID8sID8sID8sID8pJywKIAkJCWFycmF5KAogCQkJCSR0cmFjay0+Z2V0U2NoZWRDb25m
SWQoKSwKIAkJCQkkdHJhY2stPmdldFNlcXVlbmNlKCkgPT0gbnVsbCA/IDAgOiAkdHJhY2stPmdl
dFNlcXVlbmNlKCksCiAJCQkJJHRyYWNrLT5nZXRNZXRhUmV2aWV3ZWQoKSA/IDEgOiAwLAogCQkJ
CSR0cmFjay0+Z2V0RGlyZWN0b3JSZXN0cmljdGVkKCkgPyAxIDogMCwKLQkJCQkkdHJhY2stPmdl
dEhpZGVBYm91dCgpID8gMSA6IDAKKwkJCQkkdHJhY2stPmdldEhpZGVBYm91dCgpID8gMSA6IDAs
CisJCQkJJHRyYWNrLT5nZXREaXNhYmxlQ29tbWVudHMoKSA/IDEgOiAwCiAJCQkpCiAJCSk7CiAK
QEAgLTIwNywxMyArMjA5LDE1IEBACiAJCQkJCXNlcSA9ID8sCiAJCQkJCW1ldGFfcmV2aWV3ZWQg
PSA/LAogCQkJCQlkaXJlY3Rvcl9yZXN0cmljdGVkID0gPywKLQkJCQkJaGlkZV9hYm91dCA9ID8K
KwkJCQkJaGlkZV9hYm91dCA9ID8sCisJCQkJCWRpc2FibGVfY29tbWVudHMgPSA/CiAJCQkJV0hF
UkUgdHJhY2tfaWQgPSA/JywKIAkJCWFycmF5KAogCQkJCSR0cmFjay0+Z2V0U2VxdWVuY2UoKSwK
IAkJCQkkdHJhY2stPmdldE1ldGFSZXZpZXdlZCgpLAogCQkJCSR0cmFjay0+Z2V0RGlyZWN0b3JS
ZXN0cmljdGVkKCksCiAJCQkJJHRyYWNrLT5nZXRIaWRlQWJvdXQoKSwKKwkJCQkkdHJhY2stPmdl
dERpc2FibGVDb21tZW50cygpLAogCQkJCSR0cmFjay0+Z2V0VHJhY2tJZCgpCiAJCQkpCiAJCSk7
Ci0tLSBvY3MyL2NsYXNzZXMvbWFuYWdlci9mb3JtL1RyYWNrRm9ybS5pbmMucGhwOjEuMTQJRnJp
IE1heSAyMyAwOTozNDoxNCAyMDA4CisrKyBvY3MyL2NsYXNzZXMvbWFuYWdlci9mb3JtL1RyYWNr
Rm9ybS5pbmMucGhwCU1vbiBKdW4gMzAgMTE6MzU6NTEgMjAwOApAQCAtMTEsNyArMTEsNyBAQAog
ICoKICAqIEZvcm0gZm9yIGNyZWF0aW5nIGFuZCBtb2RpZnlpbmcgc2NoZWR1bGVkIGNvbmZlcmVu
Y2UgdHJhY2tzLgogICoKLSAqICRJZDogVHJhY2tGb3JtLmluYy5waHAsdiAxLjE0IDIwMDgvMDUv
MjMgMTY6MzQ6MTQgYXNtZWNoZXIgRXhwICQKKyAqICRJZDogVHJhY2tGb3JtLmluYy5waHAsdiAx
LjE1IDIwMDgvMDYvMzAgMTg6MzU6NTEgbWljaGFlbCBFeHAgJAogICovCiAKIGltcG9ydCgnZm9y
bS5Gb3JtJyk7CkBAIC00OSw2ICs0OSw4IEBACiAJICogRGlzcGxheSB0aGUgZm9ybS4KIAkgKi8K
IAlmdW5jdGlvbiBkaXNwbGF5KCkgeworCQkkY29uZmVyZW5jZSA9ICZSZXF1ZXN0OjpnZXRDb25m
ZXJlbmNlKCk7CisJCSRzY2hlZENvbmYgPSAmUmVxdWVzdDo6Z2V0U2NoZWRDb25mKCk7CiAJCSR0
ZW1wbGF0ZU1nciA9ICZUZW1wbGF0ZU1hbmFnZXI6OmdldE1hbmFnZXIoKTsKIAkJJHRlbXBsYXRl
TWdyLT5hc3NpZ24oJ3RyYWNrSWQnLCAkdGhpcy0+dHJhY2tJZCk7CiAKQEAgLTc2LDcgKzc4LDYg
QEAKIAkJCX0KIAogCQl9IGVsc2UgewotCQkJJHNjaGVkQ29uZiA9ICZSZXF1ZXN0OjpnZXRTY2hl
ZENvbmYoKTsKIAkJCSR0cmFja0RpcmVjdG9yc0RhbyA9ICZEQU9SZWdpc3RyeTo6Z2V0REFPKCdU
cmFja0RpcmVjdG9yc0RBTycpOwogCiAJCQkvLyBHZXQgdHJhY2sgZGlyZWN0b3JzIG5vdCBhc3Np
Z25lZCB0byB0aGlzIHRyYWNrCkBAIC04OCw2ICs4OSw3IEBACiAKIAkJJHRlbXBsYXRlTWdyLT5h
c3NpZ24oJ3VuYXNzaWduZWREaXJlY3RvcnMnLCAkdW5hc3NpZ25lZERpcmVjdG9ycyk7CiAJCSR0
ZW1wbGF0ZU1nci0+YXNzaWduKCdhc3NpZ25lZERpcmVjdG9ycycsICRhc3NpZ25lZERpcmVjdG9y
cyk7CisJCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdjb21tZW50c0VuYWJsZWQnLCAkY29uZmVyZW5j
ZS0+Z2V0U2V0dGluZygnZW5hYmxlQ29tbWVudHMnKSk7CiAJCSR0ZW1wbGF0ZU1nci0+YXNzaWdu
KCdoZWxwVG9waWNJZCcsJ2NvbmZlcmVuY2UuY3VycmVudENvbmZlcmVuY2VzLnRyYWNrcycpOwog
CiAJCXBhcmVudDo6ZGlzcGxheSgpOwpAQCAtMTExLDcgKzExMyw4IEBACiAJCQkJCSdpZGVudGlm
eVR5cGUnID0+ICR0cmFjay0+Z2V0SWRlbnRpZnlUeXBlKG51bGwpLCAvLyBMb2NhbGl6ZWQKIAkJ
CQkJJ2RpcmVjdG9yUmVzdHJpY3Rpb24nID0+ICR0cmFjay0+Z2V0RGlyZWN0b3JSZXN0cmljdGVk
KCksCiAJCQkJCSdwb2xpY3knID0+ICR0cmFjay0+Z2V0UG9saWN5KG51bGwpLCAvLyBMb2NhbGl6
ZWQKLQkJCQkJJ2hpZGVBYm91dCcgPT4gJHRyYWNrLT5nZXRIaWRlQWJvdXQoKQorCQkJCQknaGlk
ZUFib3V0JyA9PiAkdHJhY2stPmdldEhpZGVBYm91dCgpLAorCQkJCQknZGlzYWJsZUNvbW1lbnRz
JyA9PiAkdHJhY2stPmdldERpc2FibGVDb21tZW50cygpLAogCQkJCSk7CiAJCQl9CiAJCX0KQEAg
LTEyMSw3ICsxMjQsNyBAQAogCSAqIEFzc2lnbiBmb3JtIGRhdGEgdG8gdXNlci1zdWJtaXR0ZWQg
ZGF0YS4KIAkgKi8KIAlmdW5jdGlvbiByZWFkSW5wdXREYXRhKCkgewotCQkkdGhpcy0+cmVhZFVz
ZXJWYXJzKGFycmF5KCd0aXRsZScsICdhYmJyZXYnLCAnbWV0YU5vdFJldmlld2VkJywgJ2lkZW50
aWZ5VHlwZScsICdkaXJlY3RvclJlc3RyaWN0aW9uJywgJ3BvbGljeScsICdoaWRlQWJvdXQnKSk7
CisJCSR0aGlzLT5yZWFkVXNlclZhcnMoYXJyYXkoJ3RpdGxlJywgJ2FiYnJldicsICdtZXRhTm90
UmV2aWV3ZWQnLCAnaWRlbnRpZnlUeXBlJywgJ2RpcmVjdG9yUmVzdHJpY3Rpb24nLCAncG9saWN5
JywgJ2hpZGVBYm91dCcsICdkaXNhYmxlQ29tbWVudHMnKSk7CiAJfQogCiAJLyoqCkBAIC0xNDks
NiArMTUyLDcgQEAKIAkJJHRyYWNrLT5zZXREaXJlY3RvclJlc3RyaWN0ZWQoJHRoaXMtPmdldERh
dGEoJ2RpcmVjdG9yUmVzdHJpY3Rpb24nKSA/IDEgOiAwKTsKIAkJJHRyYWNrLT5zZXRQb2xpY3ko
JHRoaXMtPmdldERhdGEoJ3BvbGljeScpLCBudWxsKTsgLy8gTG9jYWxpemVkCiAJCSR0cmFjay0+
c2V0SGlkZUFib3V0KCR0aGlzLT5nZXREYXRhKCdoaWRlQWJvdXQnKSk7CisJCSR0cmFjay0+c2V0
RGlzYWJsZUNvbW1lbnRzKCR0aGlzLT5nZXREYXRhKCdkaXNhYmxlQ29tbWVudHMnKSA/IDEgOiAw
KTsKIAogCQlpZiAoJHRyYWNrLT5nZXRUcmFja0lkKCkgIT0gbnVsbCkgewogCQkJJHRyYWNrRGFv
LT51cGRhdGVUcmFjaygkdHJhY2spOwotLS0gb2NzMi9jbGFzc2VzL3BhcGVyL1BhcGVyLmluYy5w
aHA6MS4yMAlUdWUgSnVuIDE3IDE2OjI2OjAwIDIwMDgKKysrIG9jczIvY2xhc3Nlcy9wYXBlci9Q
YXBlci5pbmMucGhwCU1vbiBKdW4gMzAgMTE6MzU6NTEgMjAwOApAQCAtMTEsNyArMTEsNyBAQAog
ICoKICAqIFBhcGVyIGNsYXNzLgogICoKLSAqICRJZDogUGFwZXIuaW5jLnBocCx2IDEuMjAgMjAw
OC8wNi8xNyAyMzoyNjowMCBhc21lY2hlciBFeHAgJAorICogJElkOiBQYXBlci5pbmMucGhwLHYg
MS4yMSAyMDA4LzA2LzMwIDE4OjM1OjUxIG1pY2hhZWwgRXhwICQKICAqLwogCiAvLyBTdWJtaXNz
aW9uIHN0YXR1cyBjb25zdGFudHMKQEAgLTQxLDYgKzQxLDExIEBACiAKIGRlZmluZSgnU1VCTUlT
U0lPTl9GSUVMRF9EQVRFX1NVQk1JVFRFRCcsIDUpOwogCisvLyBQYXBlciBSVCBjb21tZW50cwor
ZGVmaW5lICgnQ09NTUVOVFNfVFJBQ0tfREVGQVVMVCcsIDApOworZGVmaW5lICgnQ09NTUVOVFNf
RElTQUJMRScsIDEpOworZGVmaW5lICgnQ09NTUVOVFNfRU5BQkxFJywgMik7CisKIGNsYXNzIFBh
cGVyIGV4dGVuZHMgRGF0YU9iamVjdCB7CiAKIAkvKiogQHZhciBhcnJheSBQcmVzZW50ZXJzIG9m
IHRoaXMgcGFwZXIgKi8KQEAgLTkxMyw2ICs5MTgsNzMgQEAKIAlmdW5jdGlvbiBzZXRQYWdlcygk
cGFnZXMpIHsKIAkJcmV0dXJuICR0aGlzLT5zZXREYXRhKCdwYWdlcycsJHBhZ2VzKTsKIAl9CQkK
KworCS8qKgorCSAqIFJldHVybiBwYXBlciBSVCBjb21tZW50cyBzdGF0dXMuCisJICogQHJldHVy
biBpbnQgCisJICovCisJZnVuY3Rpb24gZ2V0Q29tbWVudHNTdGF0dXMoKSB7CisJCXJldHVybiAk
dGhpcy0+Z2V0RGF0YSgnY29tbWVudHNTdGF0dXMnKTsKKwl9CisKKwkvKioKKwkgKiBTZXQgcGFw
ZXIgUlQgY29tbWVudHMgc3RhdHVzLgorCSAqIEBwYXJhbSAkY29tbWVudHNTdGF0dXMgYm9vbGVh
bgorCSAqLworCWZ1bmN0aW9uIHNldENvbW1lbnRzU3RhdHVzKCRjb21tZW50c1N0YXR1cykgewor
CQlyZXR1cm4gJHRoaXMtPnNldERhdGEoJ2NvbW1lbnRzU3RhdHVzJywgJGNvbW1lbnRzU3RhdHVz
KTsKKwl9CisKKwkvKioKKwkgKiBSZXR1cm4gbG9jYWxlIHN0cmluZyBjb3JyZXNwb25kaW5nIHRv
IFJUIGNvbW1lbnRzIHN0YXR1cy4KKwkgKiBAcmV0dXJuIHN0cmluZworCSAqLworCWZ1bmN0aW9u
IGdldENvbW1lbnRzU3RhdHVzU3RyaW5nKCkgeworCQlzd2l0Y2ggKCR0aGlzLT5nZXRDb21tZW50
c1N0YXR1cygpKSB7CisJCQljYXNlIENPTU1FTlRTX0RJU0FCTEU6CisJCQkJcmV0dXJuICdwYXBl
ci5jb21tZW50cy5kaXNhYmxlJzsKKwkJCWNhc2UgQ09NTUVOVFNfRU5BQkxFOgorCQkJCXJldHVy
biAncGFwZXIuY29tbWVudHMuZW5hYmxlJzsKKwkJCWRlZmF1bHQ6CisJCQkJcmV0dXJuICdwYXBl
ci5jb21tZW50cy50cmFja0RlZmF1bHQnOworCQl9CisJfQorCisJLyoqCisJICogUmV0dXJuIGJv
b2xlYW4gaW5kaWNhdGluZyBpZiBwYXBlciBSVCBjb21tZW50cyBzaG91bGQgYmUgZW5hYmxlZC4K
KwkgKiBDaGVja3MgYm90aCB0aGUgdHJhY2sgYW5kIHBhcGVyIGNvbW1lbnRzIHN0YXR1cy4gUGFw
ZXIgc3RhdHVzCisJICogb3ZlcnJpZGVzIHRyYWNrIHN0YXR1cy4KKwkgKiBAcmV0dXJuIGludCAK
KwkgKi8KKwlmdW5jdGlvbiBnZXRFbmFibGVDb21tZW50cygpIHsKKwkJc3dpdGNoICgkdGhpcy0+
Z2V0Q29tbWVudHNTdGF0dXMoKSkgeworCQkJY2FzZSBDT01NRU5UU19ESVNBQkxFOgorCQkJCXJl
dHVybiBmYWxzZTsKKwkJCWNhc2UgQ09NTUVOVFNfRU5BQkxFOgorCQkJCXJldHVybiB0cnVlOwor
CQkJY2FzZSBDT01NRU5UU19UUkFDS19ERUZBVUxUOgorCQkJCSR0cmFja0RhbyA9JiBEQU9SZWdp
c3RyeTo6Z2V0REFPKCdUcmFja0RBTycpOworCQkJCSR0cmFjayA9JiAkdHJhY2tEYW8tPmdldFRy
YWNrKCR0aGlzLT5nZXRUcmFja0lkKCksICR0aGlzLT5nZXRTY2hlZENvbmZJZCgpKTsKKwkJCQlp
ZiAoJHRyYWNrLT5nZXREaXNhYmxlQ29tbWVudHMoKSkgeworCQkJCQlyZXR1cm4gZmFsc2U7CisJ
CQkJfSBlbHNlIHsKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJfQorCQl9CisJfQorCisJLyoqCisJ
ICogR2V0IGFuIGFzc29jaWF0aXZlIGFycmF5IG1hdGNoaW5nIFJUIGNvbW1lbnRzIHN0YXR1cyBj
b2RlcyB3aXRoIGxvY2FsZSBzdHJpbmdzLgorCSAqIEByZXR1cm4gYXJyYXkgY29tbWVudHMgc3Rh
dHVzID0+IGxvY2FsZVN0cmluZworCSAqLworCWZ1bmN0aW9uICZnZXRDb21tZW50c1N0YXR1c09w
dGlvbnMoKSB7CisJCXN0YXRpYyAkY29tbWVudHNTdGF0dXNPcHRpb25zID0gYXJyYXkoCisJCQlD
T01NRU5UU19UUkFDS19ERUZBVUxUID0+ICdwYXBlci5jb21tZW50cy50cmFja0RlZmF1bHQnLAor
CQkJQ09NTUVOVFNfRElTQUJMRSA9PiAncGFwZXIuY29tbWVudHMuZGlzYWJsZScsCisJCQlDT01N
RU5UU19FTkFCTEUgPT4gJ3BhcGVyLmNvbW1lbnRzLmVuYWJsZScKKwkJKTsKKwkJcmV0dXJuICRj
b21tZW50c1N0YXR1c09wdGlvbnM7CisJfQogfQogCiA/PgotLS0gb2NzMi9jbGFzc2VzL3BhcGVy
L1BhcGVyREFPLmluYy5waHA6MS4yNQlXZWQgQXByIDE2IDA4OjMzOjA3IDIwMDgKKysrIG9jczIv
Y2xhc3Nlcy9wYXBlci9QYXBlckRBTy5pbmMucGhwCU1vbiBKdW4gMzAgMTE6MzU6NTEgMjAwOApA
QCAtMTIsNyArMTIsNyBAQAogICogQ2xhc3MgZm9yIFBhcGVyIERBTy4KICAqIE9wZXJhdGlvbnMg
Zm9yIHJldHJpZXZpbmcgYW5kIG1vZGlmeWluZyBQYXBlciBvYmplY3RzLgogICoKLSAqICRJZDog
UGFwZXJEQU8uaW5jLnBocCx2IDEuMjUgMjAwOC8wNC8xNiAxNTozMzowNyBhc21lY2hlciBFeHAg
JAorICogJElkOiBQYXBlckRBTy5pbmMucGhwLHYgMS4yNiAyMDA4LzA2LzMwIDE4OjM1OjUxIG1p
Y2hhZWwgRXhwICQKICAqLwogCiBpbXBvcnQoJ3BhcGVyLlBhcGVyJyk7CkBAIC0xNDAsNiArMTQw
LDcgQEAKIAkJJHBhcGVyLT5zZXRMYXlvdXRGaWxlSWQoJHJvd1snbGF5b3V0X2ZpbGVfaWQnXSk7
CiAJCSRwYXBlci0+c2V0RGlyZWN0b3JGaWxlSWQoJHJvd1snZGlyZWN0b3JfZmlsZV9pZCddKTsK
IAkJJHBhcGVyLT5zZXRQYWdlcygkcm93WydwYWdlcyddKTsKKwkJJHBhcGVyLT5zZXRDb21tZW50
c1N0YXR1cygkcm93Wydjb21tZW50c19zdGF0dXMnXSk7CiAKIAkJJHBhcGVyLT5zZXRQcmVzZW50
ZXJzKCR0aGlzLT5wcmVzZW50ZXJEYW8tPmdldFByZXNlbnRlcnNCeVBhcGVyKCRyb3dbJ3BhcGVy
X2lkJ10pKTsKIApAQCAtMTgwLDkgKzE4MSwxMCBAQAogCQkJCSByZXZpZXdfZmlsZV9pZCwKIAkJ
CQkgbGF5b3V0X2ZpbGVfaWQsCiAJCQkJIGRpcmVjdG9yX2ZpbGVfaWQsCi0JCQkJIHBhZ2VzKQor
CQkJCSBwYWdlcywKKwkJCQkgY29tbWVudHNfc3RhdHVzKQogCQkJCVZBTFVFUwotCQkJCSg/LCA/
LCA/LCA/LCA/LCA/LCAlcywgJXMsICVzLCAlcywgJXMsICVzLCAlcywgJXMsID8sID8sID8sID8s
ID8sID8sID8sID8sID8sID8pJywKKwkJCQkoPywgPywgPywgPywgPywgPywgJXMsICVzLCAlcywg
JXMsICVzLCAlcywgJXMsICVzLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KScsCiAJ
CQkJJHRoaXMtPmRhdGV0aW1lVG9EQigkcGFwZXItPmdldERhdGVTdWJtaXR0ZWQoKSksICR0aGlz
LT5kYXRldGltZVRvREIoJHBhcGVyLT5nZXREYXRlU3RhdHVzTW9kaWZpZWQoKSksICR0aGlzLT5k
YXRldGltZVRvREIoJHBhcGVyLT5nZXRMYXN0TW9kaWZpZWQoKSksICR0aGlzLT5kYXRldGltZVRv
REIoJHBhcGVyLT5nZXREYXRlUmVtaW5kZWQoKSksICR0aGlzLT5kYXRldGltZVRvREIoJHBhcGVy
LT5nZXRTdGFydFRpbWUoKSksICR0aGlzLT5kYXRldGltZVRvREIoJHBhcGVyLT5nZXRFbmRUaW1l
KCkpLCAkdGhpcy0+ZGF0ZXRpbWVUb0RCKCRwYXBlci0+Z2V0RGF0ZVRvUHJlc2VudGF0aW9ucygp
KSwgJHRoaXMtPmRhdGV0aW1lVG9EQigkcGFwZXItPmdldERhdGVUb0FyY2hpdmUoKSkpLAogCQkJ
YXJyYXkoCiAJCQkJJHBhcGVyLT5nZXRVc2VySWQoKSwKQEAgLTIwMCw3ICsyMDIsOCBAQAogCQkJ
CSRwYXBlci0+Z2V0UmV2aWV3RmlsZUlkKCksCiAJCQkJJHBhcGVyLT5nZXRMYXlvdXRGaWxlSWQo
KSwKIAkJCQkkcGFwZXItPmdldERpcmVjdG9yRmlsZUlkKCksCi0JCQkJJHBhcGVyLT5nZXRQYWdl
cygpCisJCQkJJHBhcGVyLT5nZXRQYWdlcygpLAorCQkJCSRwYXBlci0+Z2V0Q29tbWVudHNTdGF0
dXMoKSA9PT0gbnVsbCA/IDAgOiAkcGFwZXItPmdldENvbW1lbnRzU3RhdHVzKCkKIAkJCSkKIAkJ
KTsKIApAQCAtMjQ4LDcgKzI1MSw4IEBACiAJCQkJCXJldmlld19maWxlX2lkID0gPywKIAkJCQkJ
bGF5b3V0X2ZpbGVfaWQgPSA/LAogCQkJCQlkaXJlY3Rvcl9maWxlX2lkID0gPywKLQkJCQkJcGFn
ZXMgPSA/CisJCQkJCXBhZ2VzID0gPywKKwkJCQkJY29tbWVudHNfc3RhdHVzID0gPwogCQkJCVdI
RVJFIHBhcGVyX2lkID0gPycsCiAJCQkJJHRoaXMtPmRhdGV0aW1lVG9EQigkcGFwZXItPmdldERh
dGVTdWJtaXR0ZWQoKSksICR0aGlzLT5kYXRldGltZVRvREIoJHBhcGVyLT5nZXREYXRlU3RhdHVz
TW9kaWZpZWQoKSksICR0aGlzLT5kYXRldGltZVRvREIoJHBhcGVyLT5nZXRMYXN0TW9kaWZpZWQo
KSksICR0aGlzLT5kYXRldGltZVRvREIoJHBhcGVyLT5nZXREYXRlUmVtaW5kZWQoKSksICR0aGlz
LT5kYXRldGltZVRvREIoJHBhcGVyLT5nZXRTdGFydFRpbWUoKSksICR0aGlzLT5kYXRldGltZVRv
REIoJHBhcGVyLT5nZXRFbmRUaW1lKCkpLCAkdGhpcy0+ZGF0ZXRpbWVUb0RCKCRwYXBlci0+Z2V0
RGF0ZVRvUHJlc2VudGF0aW9ucygpKSwgJHRoaXMtPmRhdGV0aW1lVG9EQigkcGFwZXItPmdldERh
dGVUb0FyY2hpdmUoKSkpLAogCQkJYXJyYXkoCkBAIC0yNjcsNiArMjcxLDcgQEAKIAkJCQkkcGFw
ZXItPmdldExheW91dEZpbGVJZCgpLAogCQkJCSRwYXBlci0+Z2V0RGlyZWN0b3JGaWxlSWQoKSwK
IAkJCQkkcGFwZXItPmdldFBhZ2VzKCksCisJCQkJJHBhcGVyLT5nZXRDb21tZW50c1N0YXR1cygp
LAogCQkJCSRwYXBlci0+Z2V0UGFwZXJJZCgpCiAJCQkpCiAJCSk7Ci0tLSBvY3MyL2NsYXNzZXMv
c3VibWlzc2lvbi90cmFja0RpcmVjdG9yL1RyYWNrRGlyZWN0b3JBY3Rpb24uaW5jLnBocDoxLjQz
CVdlZCBNYXkgMjEgMTY6NDg6MjkgMjAwOAorKysgb2NzMi9jbGFzc2VzL3N1Ym1pc3Npb24vdHJh
Y2tEaXJlY3Rvci9UcmFja0RpcmVjdG9yQWN0aW9uLmluYy5waHAJTW9uIEp1biAzMCAxMTozNTo1
MSAyMDA4CkBAIC0xMSw3ICsxMSw3IEBACiAgKgogICogVHJhY2tEaXJlY3RvckFjdGlvbiBjbGFz
cy4KICAqCi0gKiAkSWQ6IFRyYWNrRGlyZWN0b3JBY3Rpb24uaW5jLnBocCx2IDEuNDMgMjAwOC8w
NS8yMSAyMzo0ODoyOSBhc21lY2hlciBFeHAgJAorICogJElkOiBUcmFja0RpcmVjdG9yQWN0aW9u
LmluYy5waHAsdiAxLjQ0IDIwMDgvMDYvMzAgMTg6MzU6NTEgbWljaGFlbCBFeHAgJAogICovCiAK
IGltcG9ydCgnc3VibWlzc2lvbi5jb21tb24uQWN0aW9uJyk7CkBAIC0xNTUzLDYgKzE1NTMsMTkg
QEAKIAl9CiAKIAkvKioKKwkgKiBDaGFuZ2VzIHRoZSBzdWJtaXNzaW9uIFJUIGNvbW1lbnRzIHN0
YXR1cy4KKwkgKiBAcGFyYW0gJHN1Ym1pc3Npb24gb2JqZWN0CisJICogQHBhcmFtICRjb21tZW50
c1N0YXR1cyBpbnQKKwkgKi8KKwlmdW5jdGlvbiB1cGRhdGVDb21tZW50c1N0YXR1cygkc3VibWlz
c2lvbiwgJGNvbW1lbnRzU3RhdHVzKSB7CisJCWlmIChIb29rUmVnaXN0cnk6OmNhbGwoJ1RyYWNr
RGlyZWN0b3JBY3Rpb246OnVwZGF0ZUNvbW1lbnRzU3RhdHVzJywgYXJyYXkoJiRzdWJtaXNzaW9u
LCAmJGNvbW1lbnRzU3RhdHVzKSkpIHJldHVybjsKKworCQkkc3VibWlzc2lvbkRhbyA9ICZEQU9S
ZWdpc3RyeTo6Z2V0REFPKCdUcmFja0RpcmVjdG9yU3VibWlzc2lvbkRBTycpOworCQkkc3VibWlz
c2lvbi0+c2V0Q29tbWVudHNTdGF0dXMoJGNvbW1lbnRzU3RhdHVzKTsgLy8gRklYTUUgdmFsaWRh
dGUgdGhpcz8KKwkJJHN1Ym1pc3Npb25EYW8tPnVwZGF0ZVRyYWNrRGlyZWN0b3JTdWJtaXNzaW9u
KCRzdWJtaXNzaW9uKTsKKwl9CisKKwkvKioKIAkgKiBIZWxwZXIgbWV0aG9kIGZvciBidWlsZGlu
ZyBzdWJtaXNzaW9uIGJyZWFkY3J1bWIKIAkgKiBAcGFyYW0gJHBhcGVySWQKIAkgKiBAcGFyYW0g
JHBhcmVudFBhZ2UgbmFtZSBvZiBzdWJtaXNzaW9uIGNvbXBvbmVudAotLS0gb2NzMi9jbGFzc2Vz
L3N1Ym1pc3Npb24vdHJhY2tEaXJlY3Rvci9UcmFja0RpcmVjdG9yU3VibWlzc2lvbkRBTy5pbmMu
cGhwOjEuMTgJTW9uIEp1biAyMyAxNToyMjo1OSAyMDA4CisrKyBvY3MyL2NsYXNzZXMvc3VibWlz
c2lvbi90cmFja0RpcmVjdG9yL1RyYWNrRGlyZWN0b3JTdWJtaXNzaW9uREFPLmluYy5waHAJTW9u
IEp1biAzMCAxMTozNTo1MSAyMDA4CkBAIC0xMiw3ICsxMiw3IEBACiAgKiBDbGFzcyBmb3IgVHJh
Y2tEaXJlY3RvclN1Ym1pc3Npb24gREFPLgogICogT3BlcmF0aW9ucyBmb3IgcmV0cmlldmluZyBh
bmQgbW9kaWZ5aW5nIFRyYWNrRGlyZWN0b3JTdWJtaXNzaW9uIG9iamVjdHMuCiAgKgotICogJElk
OiBUcmFja0RpcmVjdG9yU3VibWlzc2lvbkRBTy5pbmMucGhwLHYgMS4xOCAyMDA4LzA2LzIzIDIy
OjIyOjU5IGFzbWVjaGVyIEV4cCAkCisgKiAkSWQ6IFRyYWNrRGlyZWN0b3JTdWJtaXNzaW9uREFP
LmluYy5waHAsdiAxLjE5IDIwMDgvMDYvMzAgMTg6MzU6NTEgbWljaGFlbCBFeHAgJAogICovCiAK
IGltcG9ydCgnc3VibWlzc2lvbi50cmFja0RpcmVjdG9yLlRyYWNrRGlyZWN0b3JTdWJtaXNzaW9u
Jyk7CkBAIC0yNDMsNiArMjQzLDcgQEAKIAkJCSRwYXBlci0+c2V0RGF0ZVRvUHJlc2VudGF0aW9u
cygkdHJhY2tEaXJlY3RvclN1Ym1pc3Npb24tPmdldERhdGVUb1ByZXNlbnRhdGlvbnMoKSk7CiAJ
CQkkcGFwZXItPnNldERhdGVUb0FyY2hpdmUoJHRyYWNrRGlyZWN0b3JTdWJtaXNzaW9uLT5nZXRE
YXRlVG9BcmNoaXZlKCkpOwogCQkJJHBhcGVyLT5zZXRMYXN0TW9kaWZpZWQoJHRyYWNrRGlyZWN0
b3JTdWJtaXNzaW9uLT5nZXRMYXN0TW9kaWZpZWQoKSk7CisJCQkkcGFwZXItPnNldENvbW1lbnRz
U3RhdHVzKCR0cmFja0RpcmVjdG9yU3VibWlzc2lvbi0+Z2V0Q29tbWVudHNTdGF0dXMoKSk7CiAK
IAkJCSR0aGlzLT5wYXBlckRhby0+dXBkYXRlUGFwZXIoJHBhcGVyKTsKIAkJfQotLS0gb2NzMi9k
YnNjcmlwdHMveG1sL29jc19zY2hlbWEueG1sOjEuNTYJVHVlIEp1biAyNCAxNzo0Njo1OSAyMDA4
CisrKyBvY3MyL2Ric2NyaXB0cy94bWwvb2NzX3NjaGVtYS54bWwJTW9uIEp1biAzMCAxMTozNTo1
MSAyMDA4CkBAIC05LDcgKzksNyBAQAogICAqCiAgICogT0NTIGRhdGFiYXNlIHNjaGVtYSBpbiBY
TUwuCiAgICoKLSAgKiAkSWQ6IG9jc19zY2hlbWEueG1sLHYgMS41NiAyMDA4LzA2LzI1IDAwOjQ2
OjU5IG1pY2hhZWwgRXhwICQKKyAgKiAkSWQ6IG9jc19zY2hlbWEueG1sLHYgMS41NyAyMDA4LzA2
LzMwIDE4OjM1OjUxIG1pY2hhZWwgRXhwICQKICAgLS0+CiAKIDxzY2hlbWEgdmVyc2lvbj0iMC4y
Ij4KQEAgLTU4NCw2ICs1ODQsMTAgQEAKIAkJCTxOT1ROVUxMLz4KIAkJCTxERUZBVUxUIFZBTFVF
PSIwIi8+CiAJCTwvZmllbGQ+CisJCTxmaWVsZCBuYW1lPSJkaXNhYmxlX2NvbW1lbnRzIiB0eXBl
PSJJMSI+CisJCQk8Tk9UTlVMTC8+CisJCQk8REVGQVVMVCBWQUxVRT0iMCIvPgorCQk8L2ZpZWxk
PgogCQk8ZGVzY3I+U2NoZWR1bGVkIGNvbmZlcmVuY2UgdHJhY2tzLjwvZGVzY3I+CiAJCTxpbmRl
eCBuYW1lPSJ0cmFja3Nfc2NoZWRfY29uZl9pZCI+CiAJCQk8Y29sPnNjaGVkX2NvbmZfaWQ8L2Nv
bD4KQEAgLTcyMyw2ICs3MjcsMTAgQEAKIAkJPGZpZWxkIG5hbWU9InBhZ2VzIiB0eXBlPSJDMiIg
c2l6ZT0iMjU1Ii8+CiAJCTxmaWVsZCBuYW1lPSJkYXRlX3RvX3ByZXNlbnRhdGlvbnMiIHR5cGU9
IlQiLz4KIAkJPGZpZWxkIG5hbWU9ImRhdGVfdG9fYXJjaGl2ZSIgdHlwZT0iVCIvPgorCQk8Zmll
bGQgbmFtZT0iY29tbWVudHNfc3RhdHVzIiB0eXBlPSJJMSI+CisJCQk8Tk9UTlVMTC8+CisJCQk8
REVGQVVMVCBWQUxVRT0iMCIvPgorCQk8L2ZpZWxkPgogCQk8ZGVzY3I+Q29uZmVyZW5jZSBwYXBl
cnMuPC9kZXNjcj4KIAkJPGluZGV4IG5hbWU9InBhcGVyc191c2VyX2lkIj4KIAkJCTxjb2w+dXNl
cl9pZDwvY29sPgotLS0gb2NzMi9kYnNjcmlwdHMveG1sL3VwZ3JhZGUvMi4xLjFfdXBkYXRlLnht
bDoxLjEJVHVlIEp1biAyNCAxNzo0Njo1OSAyMDA4CisrKyBvY3MyL2Ric2NyaXB0cy94bWwvdXBn
cmFkZS8yLjEuMV91cGRhdGUueG1sCU1vbiBKdW4gMzAgMTE6MzU6NTEgMjAwOApAQCAtOSw3ICs5
LDcgQEAKICAgKgogICAqIDIuMS4xIGRhdGFiYXNlIHVwZGF0ZXMgWE1MIGZpbGUuCiAgICoKLSAg
KiAkSWQ6IDIuMS4xX3VwZGF0ZS54bWwsdiAxLjEgMjAwOC8wNi8yNSAwMDo0Njo1OSBtaWNoYWVs
IEV4cCAkCisgICogJElkOiAyLjEuMV91cGRhdGUueG1sLHYgMS4yIDIwMDgvMDYvMzAgMTg6MzU6
NTEgbWljaGFlbCBFeHAgJAogICAtLT4KIAogPGRhdGE+CkBAIC00Myw0ICs0MywyMyBAQAogCQkJ
Q1JFQVRFIFVOSVFVRSBJTkRFWCB1c2VyX3NldHRpbmdzX3BrZXkgT04gdXNlcl9zZXR0aW5ncyAo
dXNlcl9pZCwgbG9jYWxlLCBzZXR0aW5nX25hbWUsIGNvbmZlcmVuY2VfaWQpCiAJCTwvcXVlcnk+
CiAJPC9zcWw+CisKKwk8IS0tIEJ1ZyAjMzI5MzogRW5hYmxlIHVzZXIgY29tbWVudHMgb24gYSBw
ZXIgdHJhY2svcGFwZXIgYmFzaXMgLS0+CisJPHNxbD4KKwkJPCEtLSBTeW50YXggZm9yIE15U1FM
LiAtLT4KKwkJPHF1ZXJ5IGRyaXZlcj0ibXlzcWwiPgorCQkJQUxURVIgVEFCTEUgdHJhY2tzIEFE
RCBDT0xVTU4gZGlzYWJsZV9jb21tZW50cyBUSU5ZSU5UIE5PVCBOVUxMIERFRkFVTFQgMAorCQk8
L3F1ZXJ5PgorCQk8cXVlcnkgZHJpdmVyPSJteXNxbCI+CisJCQlBTFRFUiBUQUJMRSBwYXBlcnMg
QUREIENPTFVNTiBjb21tZW50c19zdGF0dXMgVElOWUlOVCBOT1QgTlVMTCBERUZBVUxUIDAKKwkJ
PC9xdWVyeT4KKworCQk8IS0tIFN5bnRheCBmb3IgUG9zdGdyZVNRTC4gLS0+CisJCTxxdWVyeSBk
cml2ZXI9InBvc3RncmVzNyI+CisJCQlBTFRFUiBUQUJMRSB0cmFja3MgQUREIENPTFVNTiBkaXNh
YmxlX2NvbW1lbnRzIFNNQUxMSU5UIE5PVCBOVUxMIERFRkFVTFQgMAorCQk8L3F1ZXJ5PgorCQk8
cXVlcnkgZHJpdmVyPSJwb3N0Z3JlczciPgorCQkJQUxURVIgVEFCTEUgcGFwZXJzIEFERCBDT0xV
TU4gY29tbWVudHNfc3RhdHVzIFNNQUxMSU5UIE5PVCBOVUxMIERFRkFVTFQgMAorCQk8L3F1ZXJ5
PgorCTwvc3FsPgogPC9kYXRhPgotLS0gb2NzMi9sb2NhbGUvZW5fVVMvbG9jYWxlLnhtbDoxLjIx
MglGcmkgSnVuIDI3IDE1OjA1OjM0IDIwMDgKKysrIG9jczIvbG9jYWxlL2VuX1VTL2xvY2FsZS54
bWwJTW9uIEp1biAzMCAxMTozNTo1MSAyMDA4CkBAIC05LDcgKzksNyBAQAogICAqCiAgICogTG9j
YWxpemF0aW9uIHN0cmluZ3MgZm9yIHRoZSBlbl9VUyAoVS5TLiBFbmdsaXNoKSBsb2NhbGUuCiAg
ICoKLSAgKiAkSWQ6IGxvY2FsZS54bWwsdiAxLjIxMiAyMDA4LzA2LzI3IDIyOjA1OjM0IG1pY2hh
ZWwgRXhwICQKKyAgKiAkSWQ6IGxvY2FsZS54bWwsdiAxLjIxMyAyMDA4LzA2LzMwIDE4OjM1OjUx
IG1pY2hhZWwgRXhwICQKICAgLS0+CiAKIDxsb2NhbGUgbmFtZT0iZW5fVVMiIGZ1bGxfbmFtZT0i
VS5TLiBFbmdsaXNoIj4KQEAgLTMxMCw2ICszMTAsOSBAQAogCTxtZXNzYWdlIGtleT0icGFwZXIu
ZGV0YWlscyI+RGV0YWlsczwvbWVzc2FnZT4KIAk8bWVzc2FnZSBrZXk9InBhcGVyLmxvY2F0aW9u
Ij5Mb2NhdGlvbjwvbWVzc2FnZT4KIAk8bWVzc2FnZSBrZXk9InBhcGVyLnRpbWUiPlRpbWU8L21l
c3NhZ2U+CisJPG1lc3NhZ2Uga2V5PSJwYXBlci5jb21tZW50cy50cmFja0RlZmF1bHQiPkRlZmF1
bHQ8L21lc3NhZ2U+CisJPG1lc3NhZ2Uga2V5PSJwYXBlci5jb21tZW50cy5kaXNhYmxlIj5EaXNh
YmxlPC9tZXNzYWdlPgorCTxtZXNzYWdlIGtleT0icGFwZXIuY29tbWVudHMuZW5hYmxlIj5FbmFi
bGU8L21lc3NhZ2U+CiAKIAk8IS0tIFN1Ym1pc3Npb24gVHJhY2tpbmcgLSBDb21tb24gLS0+CiAJ
PG1lc3NhZ2Uga2V5PSJzdWJtaXNzaW9uLmZyb21UaW1lIj5Gcm9tPC9tZXNzYWdlPgpAQCAtMzM1
LDYgKzMzOCw3IEBACiAJPG1lc3NhZ2Uga2V5PSJzdWJtaXNzaW9uLmFkZFN1cHBGaWxlIj5BZGQg
YSBTdXBwbGVtZW50YXJ5IEZpbGU8L21lc3NhZ2U+CiAJPG1lc3NhZ2Uga2V5PSJzdWJtaXNzaW9u
LnN1Ym1pdHRlciI+U3VibWl0dGVyPC9tZXNzYWdlPgogCTxtZXNzYWdlIGtleT0ic3VibWlzc2lv
bi5jaGFuZ2VUcmFjayI+Q2hhbmdlIHRvPC9tZXNzYWdlPgorCTxtZXNzYWdlIGtleT0ic3VibWlz
c2lvbi5jaGFuZ2VDb21tZW50cyI+Q2hhbmdlIHRvPC9tZXNzYWdlPgogCTxtZXNzYWdlIGtleT0i
c3VibWlzc2lvbi5pbml0aWF0ZWQiPkluaXRpYXRlZDwvbWVzc2FnZT4KIAk8bWVzc2FnZSBrZXk9
InN1Ym1pc3Npb24ubGFzdE1vZGlmaWVkIj5MYXN0IG1vZGlmaWVkPC9tZXNzYWdlPgogCTxtZXNz
YWdlIGtleT0ic3VibWlzc2lvbi5hc2siPkFzazwvbWVzc2FnZT4KQEAgLTEwODQsNyArMTA4OCw3
IEBACiAJPG1lc3NhZ2Uga2V5PSJtYW5hZ2VyLnNldHVwLmFib3V0Q29uZmVyZW5jZS5jb3B5cmln
aHROb3RpY2VBZ3JlZSI+UmVxdWlyZSBhdXRob3JzIHRvIGFncmVlIHRvIENvcHlyaWdodCBOb3Rp
Y2UgYXMgcGFydCBvZiB0aGUgc3VibWlzc2lvbiBwcm9jZXNzLjwvbWVzc2FnZT4KIAk8bWVzc2Fn
ZSBrZXk9Im1hbmFnZXIuc2V0dXAuYWJvdXRDb25mZXJlbmNlLnBvc3RDcmVhdGl2ZUNvbW1vbnMi
PlBvc3QgdGhlIENyZWF0aXZlIENvbW1vbnMgbGljZW5zZSBsb2dvIG9uIHRoZSBjb25mZXJlbmNl
IHdlYnNpdGUuPC9tZXNzYWdlPgogCTxtZXNzYWdlIGtleT0ibWFuYWdlci5zZXR1cC5hYm91dENv
bmZlcmVuY2UuYXJjaGl2ZUFjY2Vzc1BvbGljeSI+QXJjaGl2ZSBBY2Nlc3MgUG9saWN5PC9tZXNz
YWdlPgotCTxtZXNzYWdlIGtleT0ibWFuYWdlci5zZXR1cC5hYm91dENvbmZlcmVuY2UuYXJjaGl2
ZUFjY2Vzc1BvbGljeS5kZXNjcmlwdGlvbiI+VGhlIGZvbGxvd2luZyBzZXR0aW5ncyBjb250cm9s
IGFjY2VzcyB0byB0aGUgY29uZmVyZW5jZSBhcmNoaXZlcy4gU2VlIHNlY3Rpb24gMi40IGZvciBh
ZGRpdGlvbmFsIHNldHRpbmdzLjwvbWVzc2FnZT4KKwk8bWVzc2FnZSBrZXk9Im1hbmFnZXIuc2V0
dXAuYWJvdXRDb25mZXJlbmNlLmFyY2hpdmVBY2Nlc3NQb2xpY3kuZGVzY3JpcHRpb24iPlRoZSBm
b2xsb3dpbmcgc2V0dGluZ3MgY29udHJvbCBhY2Nlc3MgdG8gdGhlIGNvbmZlcmVuY2UgYXJjaGl2
ZXMuIFNlZSBzZWN0aW9uIDIuNSBmb3IgYWRkaXRpb25hbCBzZXR0aW5ncy48L21lc3NhZ2U+CiAJ
PG1lc3NhZ2Uga2V5PSJtYW5hZ2VyLnNldHVwLmFib3V0Q29uZmVyZW5jZS5wcml2YWN5U3RhdGVt
ZW50Ij5Qcml2YWN5IFN0YXRlbWVudDwvbWVzc2FnZT4KIAogCTxtZXNzYWdlIGtleT0ibWFuYWdl
ci5zZXR1cC5hYm91dENvbmZlcmVuY2UuYWRkSXRlbXRvQWJvdXRDb25mZXJlbmNlIj5BZGQgSXRl
bSB0byBBcHBlYXIgaW4gIkFib3V0IHRoZSBDb25mZXJlbmNlIjwvbWVzc2FnZT4KQEAgLTEzMzEs
NiArMTMzNSw3IEBACiAJPG1lc3NhZ2Uga2V5PSJtYW5hZ2VyLnRyYWNrcy5wZWVyUmV2aWV3ZWQi
PlBlZXIgUmV2aWV3ZWQ8L21lc3NhZ2U+CiAJPG1lc3NhZ2Uga2V5PSJtYW5hZ2VyLnRyYWNrcy5k
aXJlY3RvclJlc3RyaWN0aW9uIj5JdGVtcyBjYW4gb25seSBiZSBzdWJtaXR0ZWQgYnkgRGlyZWN0
b3JzIGFuZCBUcmFjayBEaXJlY3RvcnMuPC9tZXNzYWdlPgogCTxtZXNzYWdlIGtleT0ibWFuYWdl
ci50cmFja3MuaGlkZUFib3V0Ij5PbWl0IHRoaXMgdHJhY2sgZnJvbSBUcmFjayBQb2xpY2llczwv
bWVzc2FnZT4KKwk8bWVzc2FnZSBrZXk9Im1hbmFnZXIudHJhY2tzLmRpc2FibGVDb21tZW50cyI+
RGlzYWJsZSByZWFkZXIgY29tbWVudHMgZm9yIHRoaXMgdHJhY2suPC9tZXNzYWdlPgogCTxtZXNz
YWdlIGtleT0ibWFuYWdlci50cmFja3MucmVhZGluZ1Rvb2xzIj5SZWFkaW5nIFRvb2xzPC9tZXNz
YWdlPgogCTxtZXNzYWdlIGtleT0ibWFuYWdlci50cmFja3MuaW5kZXhlZCI+SW5kZXhlZDwvbWVz
c2FnZT4KIAk8bWVzc2FnZSBrZXk9Im1hbmFnZXIudHJhY2tzLm9wZW4iPk9wZW4gU3VibWlzc2lv
bnM8L21lc3NhZ2U+CkBAIC0yNDY3LDcgKzI0NzIsNyBAQAogCTxtZXNzYWdlIGtleT0icnQuYWRt
aW4uc2V0dGluZ3MucHJpbnRlckZyaWVuZGx5Ij5QcmludCB2ZXJzaW9uIChwcm92aWRlcyBhIHBy
aW50ZXItZnJpZW5kbHkgdmVyc2lvbiBvZiBhbiBpdGVtKS48L21lc3NhZ2U+CiAJPG1lc3NhZ2Ug
a2V5PSJydC5hZG1pbi5zZXR0aW5ncy5wcmVzZW50ZXJCaW8iPkFib3V0IHRoZSBhdXRob3IgKGRp
c3BsYXlzIHRoZSBiaW8gc3RhdGVtZW50cyBlbnRlcmVkIGJ5IHRoZSBhdXRob3IpLjwvbWVzc2Fn
ZT4KIAk8bWVzc2FnZSBrZXk9InJ0LmFkbWluLnNldHRpbmdzLmRlZmluZVRlcm1zIj5Mb29rIHVw
IHRlcm1zIChlbmFibGVzIHJlYWRlcnMgdG8gZG91YmxlLWNsaWNrIG9uIGFueSB3b3JkIGluIGFu
IGl0ZW0gYW5kIHNlbmQgdGhlIHdvcmQgdG8gYSBkaWN0aW9uYXJ5KS48L21lc3NhZ2U+Ci0JPG1l
c3NhZ2Uga2V5PSJydC5hZG1pbi5zZXR0aW5ncy5hZGRDb21tZW50Ij5BZGQgY29tbWVudCAoZW5h
YmxlcyByZWFkZXJzIHRvIHBvc3QgY29tbWVudHMsIHdoaWNoIENvbmZlcmVuY2UgRGlyZWN0b3Jz
IGNhbiBkZWxldGUuIFJlYWRlciBDb21tZW50cyBtdXN0IGJlIGVuYWJsZWQgaW4gU2V0dXAsIHN0
ZXAgMikuPC9tZXNzYWdlPgorCTxtZXNzYWdlIGtleT0icnQuYWRtaW4uc2V0dGluZ3MuYWRkQ29t
bWVudCI+QWRkIGNvbW1lbnQgKGVuYWJsZXMgcmVhZGVycyB0byBwb3N0IGNvbW1lbnRzLCB3aGlj
aCBDb25mZXJlbmNlIERpcmVjdG9ycyBjYW4gZGVsZXRlKS4gUmVhZGVyIENvbW1lbnRzIG11c3Qg
YmUgZW5hYmxlZCBpbiBXZWJzaXRlIE1hbmFnZW1lbnQsIHNlY3Rpb24gMS41KS48L21lc3NhZ2U+
CiAJPG1lc3NhZ2Uga2V5PSJydC5hZG1pbi5zZXR0aW5ncy5lbWFpbFByZXNlbnRlciI+RW1haWwg
dGhlIGF1dGhvciAobGVhZHMgdG8gYW4gZW1haWwgdGVtcGxhdGUgd2l0aCBhdXRob3IncyBlbWFp
bCkuPC9tZXNzYWdlPgogCTxtZXNzYWdlIGtleT0icnQuYWRtaW4uc2V0dGluZ3MuZW1haWxPdGhl
cnMiPk5vdGlmeSBhIGNvbGxlYWd1ZSAobGVhZHMgdG8gYW4gZW1haWwgdGVtcGxhdGUgd2l0aCBs
aW5rIHRvIGl0ZW0pLjwvbWVzc2FnZT4KIAk8bWVzc2FnZSBrZXk9InJ0LmFkbWluLnNldHRpbmdz
LmZpbmRpbmdSZWZlcmVuY2VzIj5GaW5kIFJlZmVyZW5jZXM8L21lc3NhZ2U+Ci0tLSBvY3MyL3Bh
Z2VzL2NvbW1lbnQvQ29tbWVudEhhbmRsZXIuaW5jLnBocDoxLjE3CUZyaSBBcHIgIDQgMTA6MDY6
NDkgMjAwOAorKysgb2NzMi9wYWdlcy9jb21tZW50L0NvbW1lbnRIYW5kbGVyLmluYy5waHAJTW9u
IEp1biAzMCAxMTozNTo1MSAyMDA4CkBAIC0xMSw3ICsxMSw3IEBACiAgKgogICogSGFuZGxlIHJl
cXVlc3RzIGZvciB1c2VyIGNvbW1lbnRzLgogICoKLSAqICRJZDogQ29tbWVudEhhbmRsZXIuaW5j
LnBocCx2IDEuMTcgMjAwOC8wNC8wNCAxNzowNjo0OSBhc21lY2hlciBFeHAgJAorICogJElkOiBD
b21tZW50SGFuZGxlci5pbmMucGhwLHYgMS4xOCAyMDA4LzA2LzMwIDE4OjM1OjUxIG1pY2hhZWwg
RXhwICQKICAqLwogCiBpbXBvcnQoJ3J0Lm9jcy5SVERBTycpOwpAQCAtNDgsMTEgKzQ4LDEzIEBA
CiAJCSR0ZW1wbGF0ZU1nci0+YXNzaWduX2J5X3JlZignY29tbWVudHMnLCAkY29tbWVudHMpOwog
CQkkdGVtcGxhdGVNZ3ItPmFzc2lnbigncGFwZXJJZCcsICRwYXBlcklkKTsKIAkJJHRlbXBsYXRl
TWdyLT5hc3NpZ24oJ2dhbGxleUlkJywgJGdhbGxleUlkKTsKLQkJJHRlbXBsYXRlTWdyLT5hc3Np
Z24oJ2VuYWJsZUNvbW1lbnRzJywgJHNjaGVkQ29uZi0+Z2V0U2V0dGluZygnZW5hYmxlQ29tbWVu
dHMnLCB0cnVlKSk7Ci0JCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdjb21tZW50c1JlcXVpcmVSZWdp
c3RyYXRpb24nLCAkc2NoZWRDb25mLT5nZXRTZXR0aW5nKCdjb21tZW50c1JlcXVpcmVSZWdpc3Ry
YXRpb24nLCB0cnVlKSk7Ci0JCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdjb21tZW50c0FsbG93QW5v
bnltb3VzJywgJHNjaGVkQ29uZi0+Z2V0U2V0dGluZygnY29tbWVudHNBbGxvd0Fub255bW91cycs
IHRydWUpKTsKKwkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2VuYWJsZUNvbW1lbnRzJywgJGNvbmZl
cmVuY2UtPmdldFNldHRpbmcoJ2VuYWJsZUNvbW1lbnRzJykpOworCQkkdGVtcGxhdGVNZ3ItPmFz
c2lnbignY29tbWVudHNSZXF1aXJlUmVnaXN0cmF0aW9uJywgJGNvbmZlcmVuY2UtPmdldFNldHRp
bmcoJ2NvbW1lbnRzUmVxdWlyZVJlZ2lzdHJhdGlvbicpKTsKKwkJJHRlbXBsYXRlTWdyLT5hc3Np
Z24oJ2NvbW1lbnRzQWxsb3dBbm9ueW1vdXMnLCAkY29uZmVyZW5jZS0+Z2V0U2V0dGluZygnY29t
bWVudHNBbGxvd0Fub255bW91cycpKTsKKwogCQkkY2xvc2VDb21tZW50c0RhdGUgPSAkc2NoZWRD
b25mLT5nZXRTZXR0aW5nKCdjbG9zZUNvbW1lbnRzRGF0ZScpOwogCQkkY29tbWVudHNDbG9zZWQg
PSAkc2NoZWRDb25mLT5nZXRTZXR0aW5nKCdjbG9zZUNvbW1lbnRzJyk/dHJ1ZTpmYWxzZSAmJiAo
c3RydG90aW1lKCRjbG9zZUNvbW1lbnRzRGF0ZSA8IHRpbWUoKSkpOworCiAJCSR0ZW1wbGF0ZU1n
ci0+YXNzaWduKCdjbG9zZUNvbW1lbnRzRGF0ZScsICRjbG9zZUNvbW1lbnRzRGF0ZSk7CiAJCSR0
ZW1wbGF0ZU1nci0+YXNzaWduKCdjb21tZW50c0Nsb3NlZCcsICRjb21tZW50c0Nsb3NlZCk7CiAJ
CSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdpc01hbmFnZXInLCAkaXNNYW5hZ2VyKTsKQEAgLTcwLDkg
KzcyLDE0IEBACiAJCS8vIEJyaW5nIGluIGNvbW1lbnQgY29uc3RhbnRzCiAJCSRjb21tZW50RGFv
ID0gJkRBT1JlZ2lzdHJ5OjpnZXREQU8oJ0NvbW1lbnREQU8nKTsKIAotCQkkZW5hYmxlQ29tbWVu
dHMgPSAkc2NoZWRDb25mLT5nZXRTZXR0aW5nKCdlbmFibGVDb21tZW50cycsIHRydWUpICYmICgh
JHNjaGVkQ29uZi0+Z2V0U2V0dGluZygnY2xvc2VDb21tZW50cycpIHx8IChzdHJ0b3RpbWUoJHNj
aGVkQ29uZi0+Z2V0U2V0dGluZygnY2xvc2VDb21tZW50c0RhdGUnKSA+IHRpbWUoKSkpKTsKLQkJ
JGNvbW1lbnRzUmVxdWlyZVJlZ2lzdHJhdGlvbiA9ICRzY2hlZENvbmYtPmdldFNldHRpbmcoJ2Nv
bW1lbnRzUmVxdWlyZVJlZ2lzdHJhdGlvbicsIHRydWUpOwotCQkkY29tbWVudHNBbGxvd0Fub255
bW91cyA9ICRzY2hlZENvbmYtPmdldFNldHRpbmcoJ2NvbW1lbnRzQWxsb3dBbm9ueW1vdXMnLCB0
cnVlKTsKKwkJJGVuYWJsZUNvbW1lbnRzID0gJGNvbmZlcmVuY2UtPmdldFNldHRpbmcoJ2VuYWJs
ZUNvbW1lbnRzJyk7CisJCSRjb21tZW50c1JlcXVpcmVSZWdpc3RyYXRpb24gPSAkY29uZmVyZW5j
ZS0+Z2V0U2V0dGluZygnY29tbWVudHNSZXF1aXJlUmVnaXN0cmF0aW9uJyk7CisJCSRjb21tZW50
c0FsbG93QW5vbnltb3VzID0gJGNvbmZlcmVuY2UtPmdldFNldHRpbmcoJ2NvbW1lbnRzQWxsb3dB
bm9ueW1vdXMnKTsKKworCQkkY2xvc2VDb21tZW50c0RhdGUgPSAkc2NoZWRDb25mLT5nZXRTZXR0
aW5nKCdjbG9zZUNvbW1lbnRzRGF0ZScpOworCQkkY29tbWVudHNDbG9zZWQgPSAkc2NoZWRDb25m
LT5nZXRTZXR0aW5nKCdjbG9zZUNvbW1lbnRzJyk/dHJ1ZTpmYWxzZSAmJiAoc3RydG90aW1lKCRj
bG9zZUNvbW1lbnRzRGF0ZSA8IHRpbWUoKSkpOworCisJCSRlbmFibGVDb21tZW50cyA9ICRlbmFi
bGVDb21tZW50cyAmJiAhJGNvbW1lbnRzQ2xvc2VkICYmICRwYXBlci0+Z2V0RW5hYmxlQ29tbWVu
dHMoKTsKIAogCQlpZiAoISRlbmFibGVDb21tZW50cykgUmVxdWVzdDo6cmVkaXJlY3QobnVsbCwg
bnVsbCwgJ2luZGV4Jyk7CiAJCWlmICgkY29tbWVudHNSZXF1aXJlUmVnaXN0cmF0aW9uICYmICFS
ZXF1ZXN0OjpnZXRVc2VyKCkpIFZhbGlkYXRpb246OnJlZGlyZWN0TG9naW4oKTsKQEAgLTEyNSwy
OSArMTMyLDI3IEBACiAJICovCiAJZnVuY3Rpb24gdmFsaWRhdGUoJHBhcGVySWQpIHsKIAotCQlw
YXJlbnQ6OnZhbGlkYXRlKCk7Ci0KLQkJJGNvbmZlcmVuY2UgPSAmUmVxdWVzdDo6Z2V0Q29uZmVy
ZW5jZSgpOwotCQkkc2NoZWRDb25mID0gJlJlcXVlc3Q6OmdldFNjaGVkQ29uZigpOworCQlsaXN0
KCRjb25mZXJlbmNlLCAkc2NoZWRDb25mKSA9IHBhcmVudDo6dmFsaWRhdGUodHJ1ZSwgdHJ1ZSk7
CiAKLQkJLy8gQnJpbmcgaW4gY29tbWVudCBjb25zdGFudHMKLQkJJGNvbW1lbnREYW8gPSAmREFP
UmVnaXN0cnk6OmdldERBTygnQ29tbWVudERBTycpOworCQkkcHVibGlzaGVkUGFwZXJEYW8gPSAm
REFPUmVnaXN0cnk6OmdldERBTygnUHVibGlzaGVkUGFwZXJEQU8nKTsKKwkJJHBhcGVyID0gJiRw
dWJsaXNoZWRQYXBlckRhby0+Z2V0UHVibGlzaGVkUGFwZXJCeVBhcGVySWQoJHBhcGVySWQpOwog
Ci0JCSRlbmFibGVDb21tZW50cyA9ICRzY2hlZENvbmYtPmdldFNldHRpbmcoJ2VuYWJsZUNvbW1l
bnRzJywgdHJ1ZSk7Ci0JCSRjb21tZW50c1JlcXVpcmVSZWdpc3RyYXRpb24gPSAkc2NoZWRDb25m
LT5nZXRTZXR0aW5nKCdjb21tZW50c1JlcXVpcmVSZWdpc3RyYXRpb24nLCB0cnVlKTsKLQkJJGNv
bW1lbnRzQWxsb3dBbm9ueW1vdXMgPSAkc2NoZWRDb25mLT5nZXRTZXR0aW5nKCdjb21tZW50c0Fs
bG93QW5vbnltb3VzJywgdHJ1ZSk7CisJCWlmICgkcGFwZXIgPT0gbnVsbCkgeworCQkJUmVxdWVz
dDo6cmVkaXJlY3QobnVsbCwgbnVsbCwgJ2luZGV4Jyk7CisJCX0KIAorCQkvLyBCcmluZyBpbiBj
b21tZW50IGFuZCB2aWV3IGNvbnN0YW50cworCQkkY29tbWVudERhbyA9ICZEQU9SZWdpc3RyeTo6
Z2V0REFPKCdDb21tZW50REFPJyk7CisJCSRlbmFibGVDb21tZW50cyA9ICRjb25mZXJlbmNlLT5n
ZXRTZXR0aW5nKCdlbmFibGVDb21tZW50cycpOwogCi0JCWlmICghVmFsaWRhdGlvbjo6aXNMb2dn
ZWRJbigpICYmICRzY2hlZENvbmYtPmdldFNldHRpbmcoJ3Jlc3RyaWN0UGFwZXJBY2Nlc3MnLCB0
cnVlKSB8fCAhJGVuYWJsZUNvbW1lbnRzKSB7Ci0JCQlWYWxpZGF0aW9uOjpyZWRpcmVjdExvZ2lu
KCk7CisJCWlmICghJGVuYWJsZUNvbW1lbnRzIHx8ICEkcGFwZXItPmdldEVuYWJsZUNvbW1lbnRz
KCkpIHsKKwkJCVJlcXVlc3Q6OnJlZGlyZWN0KG51bGwsIG51bGwsICdpbmRleCcpOwogCQl9CiAK
LQkJLy8gUmVnaXN0cmF0aW9uIEFjY2VzcwotCQkkcHVibGlzaGVkUGFwZXJEYW8gPSAmREFPUmVn
aXN0cnk6OmdldERBTygnUHVibGlzaGVkUGFwZXJEQU8nKTsKLQkJJHBhcGVyID0gJiRwdWJsaXNo
ZWRQYXBlckRhby0+Z2V0UHVibGlzaGVkUGFwZXJCeVBhcGVySWQoJHBhcGVySWQpOworCQkkcmVz
dHJpY3RQYXBlckFjY2VzcyA9ICRjb25mZXJlbmNlLT5nZXRTZXR0aW5nKCdyZXN0cmljdFBhcGVy
QWNjZXNzJyk7CiAKLQkJaWYgKCFpc3NldCgkcGFwZXIpKSB7Ci0JCQlSZXF1ZXN0OjpyZWRpcmVj
dChudWxsLCBudWxsLCAnaW5kZXgnKTsKKwkJaWYgKCRyZXN0cmljdFBhcGVyQWNjZXNzICYmICFW
YWxpZGF0aW9uOjppc0xvZ2dlZEluKCkpIHsKKwkJCVZhbGlkYXRpb246OnJlZGlyZWN0TG9naW4o
KTsKIAkJfQogCiAJCXJldHVybiBhcnJheSgmJGNvbmZlcmVuY2UsICYkc2NoZWRDb25mLCAmJHBh
cGVyKTsKLS0tIG9jczIvcGFnZXMvcGFwZXIvUGFwZXJIYW5kbGVyLmluYy5waHA6MS4yMglGcmkg
SnVuIDIwIDAzOjA1OjMzIDIwMDgKKysrIG9jczIvcGFnZXMvcGFwZXIvUGFwZXJIYW5kbGVyLmlu
Yy5waHAJTW9uIEp1biAzMCAxMTozNTo1MSAyMDA4CkBAIC0xMSw3ICsxMSw3IEBACiAgKgogICog
SGFuZGxlIHJlcXVlc3RzIGZvciBwYXBlciBmdW5jdGlvbnMuIAogICoKLSAqICRJZDogUGFwZXJI
YW5kbGVyLmluYy5waHAsdiAxLjIyIDIwMDgvMDYvMjAgMTA6MDU6MzMgbWljaGFlbCBFeHAgJAor
ICogJElkOiBQYXBlckhhbmRsZXIuaW5jLnBocCx2IDEuMjMgMjAwOC8wNi8zMCAxODozNTo1MSBt
aWNoYWVsIEV4cCAkCiAgKi8KIAogaW1wb3J0KCdydC5vY3MuUlREQU8nKTsKQEAgLTEyNCwxMSAr
MTI0LDExIEBACiAJCX0KIAogCQkkY29tbWVudERhbyA9ICZEQU9SZWdpc3RyeTo6Z2V0REFPKCdD
b21tZW50REFPJyk7Ci0JCSRlbmFibGVDb21tZW50cyA9ICRzY2hlZENvbmYtPmdldFNldHRpbmco
J2VuYWJsZUNvbW1lbnRzJywgdHJ1ZSk7Ci0JCSRjb21tZW50c1JlcXVpcmVSZWdpc3RyYXRpb24g
PSAkc2NoZWRDb25mLT5nZXRTZXR0aW5nKCdjb21tZW50c1JlcXVpcmVSZWdpc3RyYXRpb24nLCB0
cnVlKTsKLQkJJGNvbW1lbnRzQWxsb3dBbm9ueW1vdXMgPSAkc2NoZWRDb25mLT5nZXRTZXR0aW5n
KCdjb21tZW50c0FsbG93QW5vbnltb3VzJywgdHJ1ZSk7CisJCSRlbmFibGVDb21tZW50cyA9ICRj
b25mZXJlbmNlLT5nZXRTZXR0aW5nKCdlbmFibGVDb21tZW50cycpOworCQkkY29tbWVudHNSZXF1
aXJlUmVnaXN0cmF0aW9uID0gJGNvbmZlcmVuY2UtPmdldFNldHRpbmcoJ2NvbW1lbnRzUmVxdWly
ZVJlZ2lzdHJhdGlvbicpOworCQkkY29tbWVudHNBbGxvd0Fub255bW91cyA9ICRjb25mZXJlbmNl
LT5nZXRTZXR0aW5nKCdjb21tZW50c0FsbG93QW5vbnltb3VzJyk7CiAKLQkJaWYgKCRlbmFibGVD
b21tZW50cykgeworCQlpZiAoJGVuYWJsZUNvbW1lbnRzICYmICRwYXBlci0+Z2V0RW5hYmxlQ29t
bWVudHMoKSkgewogCQkJJGNvbW1lbnRzID0gJiRjb21tZW50RGFvLT5nZXRSb290Q29tbWVudHNC
eVBhcGVySWQoJHBhcGVyLT5nZXRQYXBlcklkKCkpOwogCQl9CiAKQEAgLTE3Myw3ICsxNzMsNyBA
QAogCQkkY29tbWVudHNDbG9zZWQgPSAkc2NoZWRDb25mLT5nZXRTZXR0aW5nKCdjbG9zZUNvbW1l
bnRzJyk/dHJ1ZTpmYWxzZSAmJiAoc3RydG90aW1lKCRjbG9zZUNvbW1lbnRzRGF0ZSA8IHRpbWUo
KSkpOwogCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbignY2xvc2VDb21tZW50c0RhdGUnLCAkY2xvc2VD
b21tZW50c0RhdGUpOwogCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbignY29tbWVudHNDbG9zZWQnLCAk
Y29tbWVudHNDbG9zZWQpOwotCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbigncG9zdGluZ0FsbG93ZWQn
LCAkZW5hYmxlQ29tbWVudHMgJiYgKCEkY29tbWVudHNSZXF1aXJlUmVnaXN0cmF0aW9uIHx8IFZh
bGlkYXRpb246OmlzTG9nZ2VkSW4oKSkgJiYgISRjb21tZW50c0Nsb3NlZCk7CisJCSR0ZW1wbGF0
ZU1nci0+YXNzaWduKCdwb3N0aW5nQWxsb3dlZCcsICgkZW5hYmxlQ29tbWVudHMgJiYgISRjb21t
ZW50c0Nsb3NlZCAmJiAkcGFwZXItPmdldEVuYWJsZUNvbW1lbnRzKCkpICYmICghJGNvbW1lbnRz
UmVxdWlyZVJlZ2lzdHJhdGlvbiB8fCBWYWxpZGF0aW9uOjppc0xvZ2dlZEluKCkpKTsKIAkJJHRl
bXBsYXRlTWdyLT5hc3NpZ24oJ2dhbGxleUlkJywgJGdhbGxleUlkKTsKIAkJJHRlbXBsYXRlTWdy
LT5hc3NpZ24oJ2RlZmluZVRlcm1zQ29udGV4dElkJywgaXNzZXQoJGRlZmluZVRlcm1zQ29udGV4
dElkKT8kZGVmaW5lVGVybXNDb250ZXh0SWQ6bnVsbCk7CiAJCSR0ZW1wbGF0ZU1nci0+YXNzaWdu
KCdjb21tZW50cycsIGlzc2V0KCRjb21tZW50cyk/JGNvbW1lbnRzOm51bGwpOwpAQCAtMjM0LDEy
ICsyMzQsMTQgQEAKIAkJLy8gQnJpbmcgaW4gY29tbWVudCBjb25zdGFudHMuCiAJCSRjb21tZW50
RGFvID0gJkRBT1JlZ2lzdHJ5OjpnZXREQU8oJ0NvbW1lbnREQU8nKTsKIAotCQkkZW5hYmxlQ29t
bWVudHMgPSAkc2NoZWRDb25mLT5nZXRTZXR0aW5nKCdlbmFibGVDb21tZW50cycsIHRydWUpOwot
CQkkY29tbWVudHNSZXF1aXJlUmVnaXN0cmF0aW9uID0gJHNjaGVkQ29uZi0+Z2V0U2V0dGluZygn
Y29tbWVudHNSZXF1aXJlUmVnaXN0cmF0aW9uJywgdHJ1ZSk7Ci0JCSRjb21tZW50c0FsbG93QW5v
bnltb3VzID0gJHNjaGVkQ29uZi0+Z2V0U2V0dGluZygnY29tbWVudHNBbGxvd0Fub255bW91cycs
IHRydWUpOworCQkkZW5hYmxlQ29tbWVudHMgPSAkY29uZmVyZW5jZS0+Z2V0U2V0dGluZygnZW5h
YmxlQ29tbWVudHMnKTsKKwkJJGNvbW1lbnRzUmVxdWlyZVJlZ2lzdHJhdGlvbiA9ICRjb25mZXJl
bmNlLT5nZXRTZXR0aW5nKCdjb21tZW50c1JlcXVpcmVSZWdpc3RyYXRpb24nKTsKKwkJJGNvbW1l
bnRzQWxsb3dBbm9ueW1vdXMgPSAkY29uZmVyZW5jZS0+Z2V0U2V0dGluZygnY29tbWVudHNBbGxv
d0Fub255bW91cycpOworCiAJCSRjbG9zZUNvbW1lbnRzRGF0ZSA9ICRzY2hlZENvbmYtPmdldFNl
dHRpbmcoJ2Nsb3NlQ29tbWVudHNEYXRlJyk7CiAJCSRjb21tZW50c0Nsb3NlZCA9ICRzY2hlZENv
bmYtPmdldFNldHRpbmcoJ2Nsb3NlQ29tbWVudHMnKT90cnVlOmZhbHNlICYmIChzdHJ0b3RpbWUo
JGNsb3NlQ29tbWVudHNEYXRlIDwgdGltZSgpKSk7Ci0JCSRwb3N0aW5nQWxsb3dlZCA9ICRlbmFi
bGVDb21tZW50cyAmJiAhJGNvbW1lbnRzQ2xvc2VkID8gdHJ1ZSA6IGZhbHNlOworCisJCSRwb3N0
aW5nQWxsb3dlZCA9ICRlbmFibGVDb21tZW50cyAmJiAkcGFwZXItPmdldEVuYWJsZUNvbW1lbnRz
KCkgJiYgISRjb21tZW50c0Nsb3NlZCA/IHRydWUgOiBmYWxzZTsKIAkJJHRlbXBsYXRlTWdyLT5h
c3NpZ24oJ2Nsb3NlQ29tbWVudHNEYXRlJywgJGNsb3NlQ29tbWVudHNEYXRlKTsKIAkJJHRlbXBs
YXRlTWdyLT5hc3NpZ24oJ2NvbW1lbnRzQ2xvc2VkJywgJGNvbW1lbnRzQ2xvc2VkKTsKIAkJJHRl
bXBsYXRlTWdyLT5hc3NpZ24oJ3Bvc3RpbmdBbGxvd2VkJywgJHBvc3RpbmdBbGxvd2VkKTsKLS0t
IG9jczIvcGFnZXMvdHJhY2tEaXJlY3Rvci9TdWJtaXNzaW9uRWRpdEhhbmRsZXIuaW5jLnBocDox
LjMxCU1vbiBKdW4gMjMgMTU6MjY6NDMgMjAwOAorKysgb2NzMi9wYWdlcy90cmFja0RpcmVjdG9y
L1N1Ym1pc3Npb25FZGl0SGFuZGxlci5pbmMucGhwCU1vbiBKdW4gMzAgMTE6MzU6NTEgMjAwOApA
QCAtMTEsNyArMTEsNyBAQAogICoKICAqIEhhbmRsZSByZXF1ZXN0cyBmb3Igc3VibWlzc2lvbiB0
cmFja2luZy4KICAqCi0gKiAkSWQ6IFN1Ym1pc3Npb25FZGl0SGFuZGxlci5pbmMucGhwLHYgMS4z
MSAyMDA4LzA2LzIzIDIyOjI2OjQzIGFzbWVjaGVyIEV4cCAkCisgKiAkSWQ6IFN1Ym1pc3Npb25F
ZGl0SGFuZGxlci5pbmMucGhwLHYgMS4zMiAyMDA4LzA2LzMwIDE4OjM1OjUxIG1pY2hhZWwgRXhw
ICQKICAqLwogCiBkZWZpbmUoJ1RSQUNLX0RJUkVDVE9SX0FDQ0VTU19FRElUJywgMHgwMDAwMSk7
CkBAIC0zMSw2ICszMSw4IEBACiAJCSR0cmFja0RhbyA9ICZEQU9SZWdpc3RyeTo6Z2V0REFPKCdU
cmFja0RBTycpOwogCQkkdHJhY2sgPSAmJHRyYWNrRGFvLT5nZXRUcmFjaygkc3VibWlzc2lvbi0+
Z2V0VHJhY2tJZCgpKTsKIAorCQkkZW5hYmxlQ29tbWVudHMgPSAkY29uZmVyZW5jZS0+Z2V0U2V0
dGluZygnZW5hYmxlQ29tbWVudHMnKTsKKwogCQkkdGVtcGxhdGVNZ3IgPSAmVGVtcGxhdGVNYW5h
Z2VyOjpnZXRNYW5hZ2VyKCk7CiAKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ25fYnlfcmVmKCdzdWJt
aXNzaW9uJywgJHN1Ym1pc3Npb24pOwpAQCAtNDIsOSArNDQsMTUgQEAKIAkJJHRlbXBsYXRlTWdy
LT5hc3NpZ25fYnlfcmVmKCdyZXZpZXdNb2RlJywgJHN1Ym1pc3Npb24tPmdldFJldmlld01vZGUo
KSk7CiAJCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCd1c2VySWQnLCAkdXNlci0+Z2V0VXNlcklkKCkp
OwogCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbignaXNEaXJlY3RvcicsICRpc0RpcmVjdG9yKTsKKwkJ
JHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2VuYWJsZUNvbW1lbnRzJywgJGVuYWJsZUNvbW1lbnRzKTsK
IAogCQkkdHJhY2tEYW8gPSAmREFPUmVnaXN0cnk6OmdldERBTygnVHJhY2tEQU8nKTsKIAkJJHRl
bXBsYXRlTWdyLT5hc3NpZ25fYnlfcmVmKCd0cmFja3MnLCAkdHJhY2tEYW8tPmdldFRyYWNrVGl0
bGVzKCRzY2hlZENvbmYtPmdldFNjaGVkQ29uZklkKCkpKTsKKwkJaWYgKCRlbmFibGVDb21tZW50
cykgeworCQkJaW1wb3J0KCdwYXBlci5QYXBlcicpOworCQkJJHRlbXBsYXRlTWdyLT5hc3NpZ24o
J2NvbW1lbnRzU3RhdHVzJywgJHN1Ym1pc3Npb24tPmdldENvbW1lbnRzU3RhdHVzKCkpOworCQkJ
JHRlbXBsYXRlTWdyLT5hc3NpZ25fYnlfcmVmKCdjb21tZW50c1N0YXR1c09wdGlvbnMnLCBQYXBl
cjo6Z2V0Q29tbWVudHNTdGF0dXNPcHRpb25zKCkpOworCQl9CiAKIAkJJHB1Ymxpc2hlZFBhcGVy
RGFvID0gJkRBT1JlZ2lzdHJ5OjpnZXREQU8oJ1B1Ymxpc2hlZFBhcGVyREFPJyk7CiAJCSRwdWJs
aXNoZWRQYXBlciA9ICYkcHVibGlzaGVkUGFwZXJEYW8tPmdldFB1Ymxpc2hlZFBhcGVyQnlQYXBl
cklkKCRzdWJtaXNzaW9uLT5nZXRQYXBlcklkKCkpOwpAQCAtOTI4LDYgKzkzNiwxNyBAQAogCQl9
CiAJfQogCisJLyoqCisJICogU2V0IFJUIGNvbW1lbnRzIHN0YXR1cyBmb3IgcGFwZXIuCisJICog
QHBhcmFtICRhcmdzIGFycmF5ICgkcGFwZXJJZCkKKwkgKi8KKwlmdW5jdGlvbiB1cGRhdGVDb21t
ZW50c1N0YXR1cygkYXJncykgeworCQkkcGFwZXJJZCA9IGlzc2V0KCRhcmdzWzBdKSA/IChpbnQp
ICRhcmdzWzBdIDogMDsKKwkJbGlzdCgkY29uZmVyZW5jZSwgJHNjaGVkQ29uZiwgJHN1Ym1pc3Np
b24pID0gU3VibWlzc2lvbkVkaXRIYW5kbGVyOjp2YWxpZGF0ZSgkcGFwZXJJZCk7CQkKKwkJVHJh
Y2tEaXJlY3RvckFjdGlvbjo6dXBkYXRlQ29tbWVudHNTdGF0dXMoJHN1Ym1pc3Npb24sIFJlcXVl
c3Q6OmdldFVzZXJWYXIoJ2NvbW1lbnRzU3RhdHVzJykpOworCQlSZXF1ZXN0OjpyZWRpcmVjdChu
dWxsLCBudWxsLCBudWxsLCAnc3VibWlzc2lvbicsICRwYXBlcklkKTsKKwl9CisKIAogCS8vCiAJ
Ly8gTGF5b3V0IEVkaXRpbmcKLS0tIG9jczIvcGFnZXMvdHJhY2tEaXJlY3Rvci9UcmFja0RpcmVj
dG9ySGFuZGxlci5pbmMucGhwOjEuMjQJRnJpIEp1biAyNyAxNTowNTozNCAyMDA4CisrKyBvY3My
L3BhZ2VzL3RyYWNrRGlyZWN0b3IvVHJhY2tEaXJlY3RvckhhbmRsZXIuaW5jLnBocAlNb24gSnVu
IDMwIDExOjM1OjUxIDIwMDgKQEAgLTExLDcgKzExLDcgQEAKICAqCiAgKiBIYW5kbGUgcmVxdWVz
dHMgZm9yIHRyYWNrIGRpcmVjdG9yIGZ1bmN0aW9ucy4gCiAgKgotICogJElkOiBUcmFja0RpcmVj
dG9ySGFuZGxlci5pbmMucGhwLHYgMS4yNCAyMDA4LzA2LzI3IDIyOjA1OjM0IG1pY2hhZWwgRXhw
ICQKKyAqICRJZDogVHJhY2tEaXJlY3RvckhhbmRsZXIuaW5jLnBocCx2IDEuMjUgMjAwOC8wNi8z
MCAxODozNTo1MSBtaWNoYWVsIEV4cCAkCiAgKi8KIAogaW1wb3J0KCdzdWJtaXNzaW9uLnRyYWNr
RGlyZWN0b3IuVHJhY2tEaXJlY3RvckFjdGlvbicpOwpAQCAtMzkxLDYgKzM5MSwxMSBAQAogCQlT
dWJtaXNzaW9uRWRpdEhhbmRsZXI6OnJlc3RvcmVUb1F1ZXVlKCRhcmdzKTsKIAl9CiAKKwlmdW5j
dGlvbiB1cGRhdGVDb21tZW50c1N0YXR1cygkYXJncykgeworCQlpbXBvcnQoJ3BhZ2VzLnRyYWNr
RGlyZWN0b3IuU3VibWlzc2lvbkVkaXRIYW5kbGVyJyk7CisJCVN1Ym1pc3Npb25FZGl0SGFuZGxl
cjo6dXBkYXRlQ29tbWVudHNTdGF0dXMoJGFyZ3MpOworCX0KKwogCiAJLy8KIAkvLyBMYXlvdXQg
RWRpdGluZwotLS0gb2NzMi90ZW1wbGF0ZXMvY29tbWVudC9jb21tZW50cy50cGw6MS4xNAlUdWUg
SnVuIDEwIDE2OjAxOjQyIDIwMDgKKysrIG9jczIvdGVtcGxhdGVzL2NvbW1lbnQvY29tbWVudHMu
dHBsCU1vbiBKdW4gMzAgMTE6MzU6NTEgMjAwOApAQCAtNiw3ICs2LDcgQEAKICAqCiAgKiBEaXNw
bGF5IGNvbW1lbnRzIG9uIGEgcGFwZXIuCiAgKgotICogJElkOiBjb21tZW50cy50cGwsdiAxLjE0
IDIwMDgvMDYvMTAgMjM6MDE6NDIgYXNtZWNoZXIgRXhwICQKKyAqICRJZDogY29tbWVudHMudHBs
LHYgMS4xNSAyMDA4LzA2LzMwIDE4OjM1OjUxIG1pY2hhZWwgRXhwICQKICAqfQoge2lmICRjb21t
ZW50fQoge2Fzc2lnbiB2YXI9cGFnZVRpdGxlIHZhbHVlPSJjb21tZW50cy5yZWFkZXJDb21tZW50
cyJ9CkBAIC03MSwxMCArNzEsOSBAQAogCiA8YnIgLz48YnIgLz4KIAotPGRpdiBjbGFzcz0ic2Vw
YXJhdG9yIj48L2Rpdj4KLQote2lmICRjb21tZW50c308aDM+e3RyYW5zbGF0ZSBrZXk9ImNvbW1l
bnRzLnJlcGxpZXMifTwvaDM+ey9pZn0KLQore2lmICRjb21tZW50c30KKwk8ZGl2IGNsYXNzPSJz
ZXBhcmF0b3IiPjwvZGl2PgorCTxoMz57dHJhbnNsYXRlIGtleT0iY29tbWVudHMucmVwbGllcyJ9
PC9oMz57L2lmfQogey9pZn0KIAoge2ZvcmVhY2ggZnJvbT0kY29tbWVudHMgaXRlbT1jaGlsZH0K
QEAgLTE1NCw3ICsxNTMsOCBAQAogCiB7aWYgJGNvbW1lbnRzQ2xvc2VkfXt0cmFuc2xhdGUga2V5
PSJjb21tZW50cy5jb21tZW50c0Nsb3NlZCIgY2xvc2VDb21tZW50c0RhdGU9JGNsb3NlQ29tbWVu
dHNEYXRlfGRhdGVfZm9ybWF0OiRkYXRlRm9ybWF0U2hvcnR9PGJyIC8+ey9pZn0KIAote2lmICRj
b21tZW50c0FsbG93ZWR9Cit7aWYgJHBvc3RpbmdBbGxvd2VkfQorCTxkaXYgY2xhc3M9InNlcGFy
YXRvciI+PC9kaXY+CiAJPHA+PGEgY2xhc3M9ImFjdGlvbiIgaHJlZj0ie3VybCBvcD0iYWRkIiBw
YXRoPSRwYXBlcklkfHRvX2FycmF5OiRnYWxsZXlJZH0iIHRhcmdldD0iX3BhcmVudCI+e3RyYW5z
bGF0ZSBrZXk9InJ0LmFkZENvbW1lbnQifTwvYT48L3A+CiB7L2lmfQogCi0tLSBvY3MyL3RlbXBs
YXRlcy9tYW5hZ2VyL3RyYWNrcy90cmFja0Zvcm0udHBsOjEuMTUJVHVlIE1heSAyMCAxNTo0NTo0
MyAyMDA4CisrKyBvY3MyL3RlbXBsYXRlcy9tYW5hZ2VyL3RyYWNrcy90cmFja0Zvcm0udHBsCU1v
biBKdW4gMzAgMTE6MzU6NTEgMjAwOApAQCAtNiw3ICs2LDcgQEAKICAqCiAgKiBGb3JtIHRvIGNy
ZWF0ZS9tb2RpZnkgYSBjb25mZXJlbmNlIHRyYWNrLgogICoKLSAqICRJZDogdHJhY2tGb3JtLnRw
bCx2IDEuMTUgMjAwOC8wNS8yMCAyMjo0NTo0MyBhc21lY2hlciBFeHAgJAorICogJElkOiB0cmFj
a0Zvcm0udHBsLHYgMS4xNiAyMDA4LzA2LzMwIDE4OjM1OjUxIG1pY2hhZWwgRXhwICQKICAqfQog
e2Fzc2lnbiB2YXI9InBhZ2VUaXRsZSIgdmFsdWU9InRyYWNrLnRyYWNrIn17YXNzaWduIHZhcj0i
cGFnZUNydW1iVGl0bGUiIHZhbHVlPSJ0cmFjay50cmFja3MifXtpbmNsdWRlIGZpbGU9ImNvbW1v
bi9oZWFkZXIudHBsIn0KIApAQCAtMTQ5LDYgKzE0OSwxNSBAQAogCQl7ZmllbGRMYWJlbCBuYW1l
PSJoaWRlQWJvdXQiIGtleT0ibWFuYWdlci50cmFja3MuaGlkZUFib3V0In0KIAk8L3RkPgogPC90
cj4KK3tpZiAkY29tbWVudHNFbmFibGVkfQorPHRyIHZhbGlnbj0idG9wIj4KKwk8dGQgY2xhc3M9
ImxhYmVsIj57ZmllbGRMYWJlbCBuYW1lPSJkaXNhYmxlQ29tbWVudHMiIGtleT0iY29tbWVudHMu
cmVhZGVyQ29tbWVudHMifTwvdGQ+CisJPHRkIGNsYXNzPSJ2YWx1ZSI+CisJCTxpbnB1dCB0eXBl
PSJjaGVja2JveCIgbmFtZT0iZGlzYWJsZUNvbW1lbnRzIiBpZD0iZGlzYWJsZUNvbW1lbnRzIiB2
YWx1ZT0iMSIge2lmICRkaXNhYmxlQ29tbWVudHN9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfSAvPgor
CQl7ZmllbGRMYWJlbCBuYW1lPSJkaXNhYmxlQ29tbWVudHMiIGtleT0ibWFuYWdlci50cmFja3Mu
ZGlzYWJsZUNvbW1lbnRzIn0KKwk8L3RkPgorPC90cj4KK3svaWZ9CiA8L3RhYmxlPgogPGRpdiBj
bGFzcz0ic2VwYXJhdG9yIj48L2Rpdj4KIAotLS0gb2NzMi90ZW1wbGF0ZXMvcnQvcnQudHBsOjEu
MTcJRnJpIEp1biAyMCAwMzowNTozMyAyMDA4CisrKyBvY3MyL3RlbXBsYXRlcy9ydC9ydC50cGwJ
TW9uIEp1biAzMCAxMTozNTo1MSAyMDA4CkBAIC02LDcgKzYsNyBAQAogICoKICAqIFJlYWRpbmcg
VG9vbHMuCiAgKgotICogJElkOiBydC50cGwsdiAxLjE3IDIwMDgvMDYvMjAgMTA6MDU6MzMgbWlj
aGFlbCBFeHAgJAorICogJElkOiBydC50cGwsdiAxLjE4IDIwMDgvMDYvMzAgMTg6MzU6NTEgbWlj
aGFlbCBFeHAgJAogICp9CiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgog
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFs
Ly9FTiIKQEAgLTg2LDEyICs4NiwxMyBAQAogCQkJCXsvaWZ9CiAJCQk8L2xpPgogCQl7L2lmfQot
CQl7aWYgJGNvbmZlcmVuY2VSdC0+Z2V0QWRkQ29tbWVudCgpICYmICRwb3N0aW5nQWxsb3dlZCAm
JiAhJHBvc3RpbmdEaXNhYmxlZH0KKwkJe2Fzc2lnbiB2YXI9cnRBZGRDb21tZW50IHZhbHVlPSRj
b25mZXJlbmNlUnQtPmdldEFkZENvbW1lbnQoKX0KKwkJe2lmICRydEFkZENvbW1lbnQgJiYgJHBv
c3RpbmdBbGxvd2VkICYmICEkcG9zdGluZ0Rpc2FibGVkfQogCQkJPGxpPjxhIGhyZWY9Int1cmwg
cGFnZT0iY29tbWVudCIgb3A9ImFkZCIgcGF0aD0kcGFwZXItPmdldFBhcGVySWQoKXx0b19hcnJh
eTokZ2FsbGV5SWR9IiB0YXJnZXQ9Il9wYXJlbnQiPnt0cmFuc2xhdGUga2V5PSJydC5hZGRDb21t
ZW50In08L2E+PC9saT4KLQkJe2Vsc2VpZiAkY29tbWVudHNDbG9zZWR9CisJCXtlbHNlaWYgJHJ0
QWRkQ29tbWVudCAmJiAkY29tbWVudHNDbG9zZWR9CiAJCQl7dHJhbnNsYXRlIGtleT0icnQuYWRk
Q29tbWVudCJ94oCgCiAJCQl7YXNzaWduIHZhcj1uZWVkc0NvbW1lbnRzTm90ZSB2YWx1ZT0xfQot
CQl7ZWxzZWlmICRwb3N0aW5nRGlzYWJsZWR9CisJCXtlbHNlaWYgJHJ0QWRkQ29tbWVudCAmJiAk
cG9zdGluZ0Rpc2FibGVkfQogCQkJe3RyYW5zbGF0ZSBrZXk9InJ0LmFkZENvbW1lbnQifSoKIAkJ
CXthc3NpZ24gdmFyPW5lZWRzTG9naW5Ob3RlIHZhbHVlPTF9CiAJCXsvaWZ9Ci0tLSBvY3MyL3Rl
bXBsYXRlcy90cmFja0RpcmVjdG9yL3N1Ym1pc3Npb24vc3RhdHVzLnRwbDoxLjgJRnJpIEFwciAg
NCAxMDowNjo1NiAyMDA4CisrKyBvY3MyL3RlbXBsYXRlcy90cmFja0RpcmVjdG9yL3N1Ym1pc3Np
b24vc3RhdHVzLnRwbAlNb24gSnVuIDMwIDExOjM1OjUxIDIwMDgKQEAgLTYsNyArNiw3IEBACiAg
KgogICogU3VidGVtcGxhdGUgZGVmaW5pbmcgdGhlIHN1Ym1pc3Npb24gc3RhdHVzIHRhYmxlLgog
ICoKLSAqICRJZDogc3RhdHVzLnRwbCx2IDEuOCAyMDA4LzA0LzA0IDE3OjA2OjU2IGFzbWVjaGVy
IEV4cCAkCisgKiAkSWQ6IHN0YXR1cy50cGwsdiAxLjkgMjAwOC8wNi8zMCAxODozNTo1MSBtaWNo
YWVsIEV4cCAkCiAgKn0KIDxhIG5hbWU9InN0YXR1cyI+PC9hPgogPGgzPnt0cmFuc2xhdGUga2V5
PSJjb21tb24uc3RhdHVzIn08L2gzPgpAQCAtNDUsNCArNDUsMTEgQEAKIAkJPHRkIGNsYXNzPSJs
YWJlbCI+e3RyYW5zbGF0ZSBrZXk9InN1Ym1pc3Npb24ubGFzdE1vZGlmaWVkIn08L3RkPgogCQk8
dGQgY29sc3Bhbj0iMiIgY2xhc3M9InZhbHVlIj57JHN1Ym1pc3Npb24tPmdldExhc3RNb2RpZmll
ZCgpfGRhdGVfZm9ybWF0OiRkYXRlRm9ybWF0U2hvcnR9PC90ZD4KIAk8L3RyPgore2lmICRlbmFi
bGVDb21tZW50c30KKwk8dHI+CisJCTx0ZCBjbGFzcz0ibGFiZWwiPnt0cmFuc2xhdGUga2V5PSJj
b21tZW50cy5yZWFkZXJDb21tZW50cyJ9PC90ZD4KKwkJPHRkIGNsYXNzPSJ2YWx1ZSI+e3RyYW5z
bGF0ZSBrZXk9JHN1Ym1pc3Npb24tPmdldENvbW1lbnRzU3RhdHVzU3RyaW5nKCl9PC90ZD4KKwkJ
PHRkIGNsYXNzPSJ2YWx1ZSI+PGZvcm0gYWN0aW9uPSJ7dXJsIG9wPSJ1cGRhdGVDb21tZW50c1N0
YXR1cyIgcGF0aD0kc3VibWlzc2lvbi0+Z2V0UGFwZXJJZCgpfSIgbWV0aG9kPSJwb3N0Ij57dHJh
bnNsYXRlIGtleT0ic3VibWlzc2lvbi5jaGFuZ2VDb21tZW50cyJ9IDxzZWxlY3QgbmFtZT0iY29t
bWVudHNTdGF0dXMiIHNpemU9IjEiIGNsYXNzPSJzZWxlY3RNZW51Ij57aHRtbF9vcHRpb25zX3Ry
YW5zbGF0ZSBvcHRpb25zPSRjb21tZW50c1N0YXR1c09wdGlvbnMgc2VsZWN0ZWQ9JHN1Ym1pc3Np
b24tPmdldENvbW1lbnRzU3RhdHVzKCl9PC9zZWxlY3Q+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZh
bHVlPSJ7dHJhbnNsYXRlIGtleT0iY29tbW9uLnJlY29yZCJ9IiBjbGFzcz0iYnV0dG9uIiAvPjwv
Zm9ybT48L3RkPgorCTwvdHI+Cit7L2lmfQogPC90YWJsZT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>