Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sUW2E-003cxc-BQ for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jul 2024 18:39:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sUW2C-002oIU-7O for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jul 2024 18:39:20 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sUW2B-002oH1-2J for pgsql-hackers@lists.postgresql.org; Thu, 18 Jul 2024 18:39:20 +0000 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sUW24-000Ema-8j for pgsql-hackers@lists.postgresql.org; Thu, 18 Jul 2024 18:39:18 +0000 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-70b2a0542c2so119075b3a.3 for ; Thu, 18 Jul 2024 11:39:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1721327951; x=1721932751; darn=lists.postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=386BsMIkkRmhvPWDgC65kRWANzbvGjgV0b3byZUfuMw=; b=rreVYF7ArxLd3DrJtas/wLAoGs+Men0r9ytMJI847oUsQBmDokv5dgfVKQXFCRNX4m 6ZkPqUW23uZB2eOzyeFgNy5oWTGvP46VjGm7ZFV2Q24IO31Jd+7HrcfqTblGUOs2BbZq YKI3EtUtYUloQP1m5OzcaijMns2LWRlM2bjac29Yhu6d6FWb41OxUZkYg5sQQrMpTPab DCZxPkm4qnSFgeNjQxnHRqlkj/xGvHKBSTarg3G3o75mYYtVi+jtf7y4KzQzSQYnADan U/alUcY56mcgDsIgh4v2RJOuLUSJuWModGDsEKMSnlyD7acUZlLiqVV6qLRlOyEaO7Pp C00A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721327951; x=1721932751; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=386BsMIkkRmhvPWDgC65kRWANzbvGjgV0b3byZUfuMw=; b=c5I5HSeZGy/61RhQp7d9JlDFsqInp72D7eWdxtPHGz4iBU4oB5wCfiD48LNSMwOTqg 7gB9c2dKm0Ldzu/18Zh7uGZ70ebFiQrJ/Nk7aqjp8KH4uIS4h8E8q8c6oveOAg5beltr LWuH5I1PYWVAXIfNMx0J/fRaj3IXAIX++QXqwpDfE5HIfhaplhqv3+0pg7GxjYGOz/pR UdEmsgHQuj8OOujSJesQnoTIMOCTZo2hBinw/CxQGtRObnDXfdP1QvJm1pU1T4gZaWyp r9KP29e7IrDhDn+l6LsSheJLZ4SIV7AF/Z0/aHS2COFF/IIM7vzkyf/yPLasJb6ZKa28 L1kw== X-Forwarded-Encrypted: i=1; AJvYcCWYmDiChq0caBjYgu7/X4W507POVV2MwKySzqNl2AvS7DxF7ZrEL8jzG/seZMDCR9uENU/1oIoTpLQguFxAPaV4racAM0Zg07Xs1frocu5YRMu+ X-Gm-Message-State: AOJu0Yxft6dtDyCCNJHE/xH0z/oZOkAAdES+lWskSybQQDzFlBCpuk93 XMs0HwvMwQo0tBCSVdbK1uDqdGRExE5DAY1LRHVDvLbAGRKp7PrUjTnZTMEoDcs= X-Google-Smtp-Source: AGHT+IGccC9lh651chYKkFm84B9XvJcW+3uRC7A7SiYporl0M61WoXDTMBXG/x1sNkohNbebwnYuXg== X-Received: by 2002:a05:6a00:3a29:b0:70b:152:331 with SMTP id d2e1a72fcca58-70cfc9acbc8mr556166b3a.21.1721327950903; Thu, 18 Jul 2024 11:39:10 -0700 (PDT) Received: from [192.168.2.139] ([50.39.255.79]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-70cfc7fbff8sm137104b3a.119.2024.07.18.11.39.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 18 Jul 2024 11:39:09 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------chobAlN9YDJn29tODLTlOP0i" Message-ID: <30dc3561-d7ab-42be-a1c5-096643423590@illuminatedcomputing.com> Date: Thu, 18 Jul 2024 11:39:09 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time From: Paul Jungwirth To: jian he Cc: Isaac Morland , Robert Haas , Jeff Davis , Peter Eisentraut , PostgreSQL Hackers References: <85dd3ad0-fa79-46e8-a08b-c426c76825f3@eisentraut.org> <49c07eac-18ec-4aff-929c-e81b87df1092@eisentraut.org> <1edb3b79-a4bc-43b1-80aa-2e090472fe32@eisentraut.org> <47550967-260b-4180-9791-b224859fe63e@illuminatedcomputing.com> <64c2b2ab-7ce9-475e-ac59-3bfec528bada@eisentraut.org> <58b6687fe9de002e4c862a412719e4f918bad987.camel@j-davis.com> Content-Language: en-US In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------chobAlN9YDJn29tODLTlOP0i Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 7/17/24 20:34, Paul Jungwirth wrote: > I like this approach a lot, but I'd like to hear what some other people think? > > Jian he's &&& operator is similar to what I proposed upthread, but when either operand is an empty > value it simply raises an error. (It should be an ereport, not an elog, and I think > multirange_overlaps_multirange_internal is missing the empty check, but I can clean things up when I > integrate it into the patch series.) I thought of a possible problem: this operator works great if there are already rows in the table, but what if the *first row you insert* has an empty range? Then there is nothing to compare against, so the operator will never be used. Right? Except when I test it, it still works! After running `make installcheck`, I did this: regression=# truncate temporal_rng cascade; NOTICE: truncate cascades to table "temporal_fk_rng2rng" TRUNCATE TABLE regression=# insert into temporal_rng values ('[1,2)', 'empty'); ERROR: range cannot be empty My mental model must be wrong. Can anyone explain what is happening there? Is it something we can depend on? So I swapped in the &&& patch, cleaned it up, and added tests. But something is wrong. After I get one failure from an empty, I keep getting failures, even though the table is empty: regression=# truncate temporal_rng cascade; NOTICE: truncate cascades to table "temporal_fk_rng2rng" TRUNCATE TABLE regression=# insert into temporal_rng values ('[1,2)', '[2000-01-01,2010-01-01)'); -- ok so far INSERT 0 1 regression=# insert into temporal_rng values ('[1,2)', 'empty'); -- should fail and does ERROR: range cannot be empty regression=# insert into temporal_rng values ('[1,2)', '[2010-01-01,2020-01-01)'); -- uh oh ERROR: range cannot be empty regression=# truncate temporal_rng cascade; NOTICE: truncate cascades to table "temporal_fk_rng2rng" TRUNCATE TABLE regression=# insert into temporal_rng values ('[1,2)', '[2000-01-01,2010-01-01)'); -- ok so far INSERT 0 1 regression=# insert into temporal_rng values ('[1,2)', '[2010-01-01,2020-01-01)'); -- ok now INSERT 0 1 It looks like the index is getting corrupted. Continuing from the above: regression=# create extension pageinspect; CREATE EXTENSION regression=# select gist_page_items(get_raw_page('temporal_rng_pk', 0), 'temporal_rng_pk'); gist_page_items ---------------------------------------------------------------------------- (1,"(0,1)",40,f,"(id, valid_at)=(""[1,2)"", ""[2000-01-01,2010-01-01)"")") (2,"(0,2)",40,f,"(id, valid_at)=(""[1,2)"", ""[2010-01-01,2020-01-01)"")") (2 rows) regression=# insert into temporal_rng values ('[1,2)', 'empty'); ERROR: range cannot be empty regression=# select gist_page_items(get_raw_page('temporal_rng_pk', 0), 'temporal_rng_pk'); gist_page_items ---------------------------------------------------------------------------- (1,"(0,1)",40,f,"(id, valid_at)=(""[1,2)"", ""[2000-01-01,2010-01-01)"")") (2,"(0,2)",40,f,"(id, valid_at)=(""[1,2)"", ""[2010-01-01,2020-01-01)"")") (3,"(0,3)",32,f,"(id, valid_at)=(""[1,2)"", empty)") (3 rows) So maybe this is a bad place to ereport? Or is this a deeper bug with GiST? Here is where we're doing it: #0 range_nonempty_overlaps_internal (typcache=0x635a7fbf67f0, r1=0x635a7fc11f20, r2=0x635a7fc11f40) at rangetypes.c:876 #1 0x0000635a7f06175d in range_gist_consistent_leaf_range (typcache=0x635a7fbf67f0, strategy=31, key=0x635a7fc11f20, query=0x635a7fc11f40) at rangetypes_gist.c:1076 #2 0x0000635a7f05fc9a in range_gist_consistent (fcinfo=0x7ffcd20f9f60) at rangetypes_gist.c:216 #3 0x0000635a7f12d780 in FunctionCall5Coll (flinfo=0x635a7fb44eb8, collation=0, arg1=140723832725648, arg2=109240340727454, arg3=31, arg4=0, arg5=140723832725567) at fmgr.c:1242 #4 0x0000635a7e999af6 in gistindex_keytest (scan=0x635a7fb44d50, tuple=0x7d155c0a3fd0, page=0x7d155c0a2000 "", offset=1, recheck_p=0x7ffcd20fa129, recheck_distances_p=0x7ffcd20fa12a) at gistget.c:221 #5 0x0000635a7e99a109 in gistScanPage (scan=0x635a7fb44d50, pageItem=0x7ffcd20fa1e0, myDistances=0x0, tbm=0x0, ntids=0x0) at gistget.c:436 #6 0x0000635a7e99a797 in gistgettuple (scan=0x635a7fb44d50, dir=ForwardScanDirection) at gistget.c:637 #7 0x0000635a7e9e4d38 in index_getnext_tid (scan=0x635a7fb44d50, direction=ForwardScanDirection) at indexam.c:590 #8 0x0000635a7e9e4f7d in index_getnext_slot (scan=0x635a7fb44d50, direction=ForwardScanDirection, slot=0x635a7fb44950) at indexam.c:682 #9 0x0000635a7ec5690b in check_exclusion_or_unique_constraint (heap=0x7d1560cea348, index=0x7d1560cedd98, indexInfo=0x635a7fb44c40, tupleid=0x635a7fb44580, values=0x7ffcd20faf00, isnull=0x7ffcd20faee0, estate=0x635a7fb434a0, newIndex=false, waitMode=CEOUC_WAIT, violationOK=false, conflictTid=0x0) at execIndexing.c:780 #10 0x0000635a7ec55c58 in ExecInsertIndexTuples (resultRelInfo=0x635a7fb43930, slot=0x635a7fb44550, estate=0x635a7fb434a0, update=false, noDupErr=false, specConflict=0x0, arbiterIndexes=0x0, onlySummarizing=false) at execIndexing.c:483 #11 0x0000635a7eca38a2 in ExecInsert (context=0x7ffcd20fb1b0, resultRelInfo=0x635a7fb43930, slot=0x635a7fb44550, canSetTag=true, inserted_tuple=0x0, insert_destrel=0x0) at nodeModifyTable.c:1145 Is there anything I can do to save this &&& idea? I've attached the patches I'm working with, rebased to cd85ae1114. If ereport just won't work, then I might explore other definitions of a &&& operator. It was really nice to have such a clean solution. Yours, -- Paul ~{:-) pj@illuminatedcomputing.com --------------chobAlN9YDJn29tODLTlOP0i Content-Type: text/x-patch; charset=UTF-8; name="v36-0001-Add-stratnum-GiST-support-function.patch" Content-Disposition: attachment; filename="v36-0001-Add-stratnum-GiST-support-function.patch" Content-Transfer-Encoding: base64 RnJvbSBiYjNjZTI2ZDY3ZTNkZWE3NTg3YjgxMzkwZTg4NDMyNWQ5ZTJmNDllIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NDQgKzAx MDAKU3ViamVjdDogW1BBVENIIHYzNiAxLzNdIEFkZCBzdHJhdG51bSBHaVNUIHN1cHBvcnQg ZnVuY3Rpb24KClRoaXMgaXMgc3VwcG9ydCBmdW5jdGlvbiAxMiBmb3IgdGhlIEdpU1QgQU0g YW5kIHRyYW5zbGF0ZXMKIndlbGwta25vd24iIFJUKlN0cmF0ZWd5TnVtYmVyIHZhbHVlcyBp bnRvIHdoYXRldmVyIHN0cmF0ZWd5IG51bWJlciBpcwp1c2VkIGJ5IHRoZSBvcGNsYXNzIChz aW5jZSBubyBwYXJ0aWN1bGFyIG51bWJlcnMgYXJlIGFjdHVhbGx5CnJlcXVpcmVkKS4gIFdl IHdpbGwgdXNlIHRoaXMgdG8gc3VwcG9ydCB0ZW1wb3JhbCBQUklNQVJZCktFWS9VTklRVUUv Rk9SRUlHTiBLRVkvRk9SIFBPUlRJT04gT0YgZnVuY3Rpb25hbGl0eS4KClRoaXMgY29tbWl0 IGFkZHMgdHdvIGltcGxlbWVudGF0aW9ucywgb25lIGZvciBpbnRlcm5hbCBHaVNUIG9wY2xh c3NlcwooanVzdCBhbiBpZGVudGl0eSBmdW5jdGlvbikgYW5kIGFub3RoZXIgZm9yIGJ0cmVl X2dpc3Qgb3BjbGFzc2VzLiAgSXQKdXBkYXRlcyBidHJlZV9naXN0IGZyb20gMS43IHRvIDEu OCwgYWRkaW5nIHRoZSBzdXBwb3J0IGZ1bmN0aW9uIGZvcgphbGwgaXRzIG9wY2xhc3Nlcy4K LS0tCiBjb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICA2 ICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsICB8IDg3 ICsrKysrKysrKysrKysrKysrKysrCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5j ICAgICAgICAgICAgICB8IDI3ICsrKysrKwogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dp c3QuY29udHJvbCAgICAgICAgfCAgMiArLQogY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVk L3N0cmF0bnVtLm91dCAgICAgfCAxMyArKysKIGNvbnRyaWIvYnRyZWVfZ2lzdC9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgIHwgIDIgKwogY29udHJpYi9idHJlZV9naXN0L3NxbC9zdHJh dG51bS5zcWwgICAgICAgICAgfCAgMyArCiBkb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sICAgICAg ICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrLQogZG9jL3NyYy9zZ21sL3hp bmRleC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgOCArLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHV0aWwuYyAgICAgICAgICAgfCAxNCArKysrCiBzcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyAgICAgICB8ICA4ICstCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvZ2lzdC5oICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgICAgICB8IDE4ICsrKysKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgIHwgIDYgKysKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0IHwgMTMgKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9taXNjX2Z1bmN0aW9ucy5zcWwgICAgICB8ICA0ICsKIDE2IGZpbGVzIGNo YW5nZWQsIDI3MiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LS0xLjctLTEuOC5zcWwKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRudW0u b3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9idHJlZV9naXN0L3NxbC9zdHJhdG51 bS5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUgYi9jb250 cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUKaW5kZXggMDczZGNjNzQ1YzQuLjlhYjg1NDhiYzBl IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvTWFrZWZpbGUKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L01ha2VmaWxlCkBAIC0zMywxMiArMzMsMTQgQEAgRVhURU5TSU9OID0g YnRyZWVfZ2lzdAogREFUQSA9IGJ0cmVlX2dpc3QtLTEuMC0tMS4xLnNxbCBcCiAgICAgICAg YnRyZWVfZ2lzdC0tMS4xLS0xLjIuc3FsIGJ0cmVlX2dpc3QtLTEuMi5zcWwgYnRyZWVfZ2lz dC0tMS4yLS0xLjMuc3FsIFwKICAgICAgICBidHJlZV9naXN0LS0xLjMtLTEuNC5zcWwgYnRy ZWVfZ2lzdC0tMS40LS0xLjUuc3FsIFwKLSAgICAgICBidHJlZV9naXN0LS0xLjUtLTEuNi5z cWwgYnRyZWVfZ2lzdC0tMS42LS0xLjcuc3FsCisgICAgICAgYnRyZWVfZ2lzdC0tMS41LS0x LjYuc3FsIGJ0cmVlX2dpc3QtLTEuNi0tMS43LnNxbCBcCisgICAgICAgYnRyZWVfZ2lzdC0t MS43LS0xLjguc3FsCiBQR0ZJTEVERVNDID0gImJ0cmVlX2dpc3QgLSBCLXRyZWUgZXF1aXZh bGVudCBHaVNUIG9wZXJhdG9yIGNsYXNzZXMiCiAKIFJFR1JFU1MgPSBpbml0IGludDIgaW50 NCBpbnQ4IGZsb2F0NCBmbG9hdDggY2FzaCBvaWQgdGltZXN0YW1wIHRpbWVzdGFtcHR6IFwK ICAgICAgICAgdGltZSB0aW1ldHogZGF0ZSBpbnRlcnZhbCBtYWNhZGRyIG1hY2FkZHI4IGlu ZXQgY2lkciB0ZXh0IHZhcmNoYXIgY2hhciBcCi0gICAgICAgIGJ5dGVhIGJpdCB2YXJiaXQg bnVtZXJpYyB1dWlkIG5vdF9lcXVhbCBlbnVtIGJvb2wgcGFydGl0aW9ucworICAgICAgICBi eXRlYSBiaXQgdmFyYml0IG51bWVyaWMgdXVpZCBub3RfZXF1YWwgZW51bSBib29sIHBhcnRp dGlvbnMgXAorICAgICAgICBzdHJhdG51bQogCiBTSExJQl9MSU5LICs9ICQoZmlsdGVyIC1s bSwgJChMSUJTKSkKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dp c3QtLTEuNy0tMS44LnNxbCBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LS0xLjct LTEuOC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMwN2Jm ZTU3NGIwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dp c3QtLTEuNy0tMS44LnNxbApAQCAtMCwwICsxLDg3IEBACisvKiBjb250cmliL2J0cmVlX2dp c3QvYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsICovCisKKy0tIGNvbXBsYWluIGlmIHNjcmlw dCBpcyBzb3VyY2VkIGluIHBzcWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhURU5TSU9O CitcZWNobyBVc2UgIkFMVEVSIEVYVEVOU0lPTiBidHJlZV9naXN0IFVQREFURSBUTyAnMS44 JyIgdG8gbG9hZCB0aGlzIGZpbGUuIFxxdWl0CisKK0NSRUFURSBGVU5DVElPTiBnaXN0X3N0 cmF0bnVtX2J0cmVlKHNtYWxsaW50KQorUkVUVVJOUyBzbWFsbGludAorQVMgJ01PRFVMRV9Q QVRITkFNRScKK0xBTkdVQUdFIEMgSU1NVVRBQkxFIFBBUkFMTEVMIFNBRkUgU1RSSUNUOwor CitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9vaWRfb3BzIFVTSU5HIGdpc3QgQURECisJ RlVOQ1RJT04gMTIgKG9pZCwgb2lkKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisK K0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2ludDJfb3BzIFVTSU5HIGdpc3QgQURECisJ RlVOQ1RJT04gMTIgKGludDIsIGludDIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsK KworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfaW50NF9vcHMgVVNJTkcgZ2lzdCBBREQK KwlGVU5DVElPTiAxMiAoaW50NCwgaW50NCkgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50Mikg OworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9pbnQ4X29wcyBVU0lORyBnaXN0IEFE RAorCUZVTkNUSU9OIDEyIChpbnQ4LCBpbnQ4KSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQy KSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2Zsb2F0NF9vcHMgVVNJTkcgZ2lz dCBBREQKKwlGVU5DVElPTiAxMiAoZmxvYXQ0LCBmbG9hdDQpIGdpc3Rfc3RyYXRudW1fYnRy ZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfZmxvYXQ4X29wcyBV U0lORyBnaXN0IEFERAorCUZVTkNUSU9OIDEyIChmbG9hdDgsIGZsb2F0OCkgZ2lzdF9zdHJh dG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF90aW1l c3RhbXBfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHRpbWVzdGFtcCwgdGlt ZXN0YW1wKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9S IEZBTUlMWSBnaXN0X3RpbWVzdGFtcHR6X29wcyBVU0lORyBnaXN0IEFERAorCUZVTkNUSU9O IDEyICh0aW1lc3RhbXB0eiwgdGltZXN0YW1wdHopIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGlu dDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfdGltZV9vcHMgVVNJTkcgZ2lz dCBBREQKKwlGVU5DVElPTiAxMiAodGltZSwgdGltZSkgZ2lzdF9zdHJhdG51bV9idHJlZSAo aW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9kYXRlX29wcyBVU0lORyBn aXN0IEFERAorCUZVTkNUSU9OIDEyIChkYXRlLCBkYXRlKSBnaXN0X3N0cmF0bnVtX2J0cmVl IChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2ludGVydmFsX29wcyBV U0lORyBnaXN0IEFERAorCUZVTkNUSU9OIDEyIChpbnRlcnZhbCwgaW50ZXJ2YWwpIGdpc3Rf c3RyYXRudW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3Rf Y2FzaF9vcHMgVVNJTkcgZ2lzdCBBREQKKwlGVU5DVElPTiAxMiAobW9uZXksIG1vbmV5KSBn aXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBn aXN0X21hY2FkZHJfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKG1hY2FkZHIs IG1hY2FkZHIpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFU T1IgRkFNSUxZIGdpc3RfdGV4dF9vcHMgVVNJTkcgZ2lzdCBBREQKKwlGVU5DVElPTiAxMiAo dGV4dCwgdGV4dCkgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBPUEVS QVRPUiBGQU1JTFkgZ2lzdF9icGNoYXJfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04g MTIgKGJwY2hhciwgYnBjaGFyKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FM VEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2J5dGVhX29wcyBVU0lORyBnaXN0IEFERAorCUZV TkNUSU9OIDEyIChieXRlYSwgYnl0ZWEpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsK KworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfbnVtZXJpY19vcHMgVVNJTkcgZ2lzdCBB REQKKwlGVU5DVElPTiAxMiAobnVtZXJpYywgbnVtZXJpYykgZ2lzdF9zdHJhdG51bV9idHJl ZSAoaW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9iaXRfb3BzIFVTSU5H IGdpc3QgQURECisJRlVOQ1RJT04gMTIgKGJpdCwgYml0KSBnaXN0X3N0cmF0bnVtX2J0cmVl IChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X3ZiaXRfb3BzIFVTSU5H IGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHZhcmJpdCwgdmFyYml0KSBnaXN0X3N0cmF0bnVt X2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2luZXRfb3Bz IFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKGluZXQsIGluZXQpIGdpc3Rfc3RyYXRu dW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfY2lkcl9v cHMgVVNJTkcgZ2lzdCBBREQKKwlGVU5DVElPTiAxMiAoY2lkciwgY2lkcikgZ2lzdF9zdHJh dG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF90aW1l dHpfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHRpbWV0eiwgdGltZXR6KSBn aXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisKK0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBn aXN0X3V1aWRfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKHV1aWQsIHV1aWQp IGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZ IGdpc3RfbWFjYWRkcjhfb3BzIFVTSU5HIGdpc3QgQURECisJRlVOQ1RJT04gMTIgKG1hY2Fk ZHI4LCBtYWNhZGRyOCkgZ2lzdF9zdHJhdG51bV9idHJlZSAoaW50MikgOworCitBTFRFUiBP UEVSQVRPUiBGQU1JTFkgZ2lzdF9lbnVtX29wcyBVU0lORyBnaXN0IEFERAorCUZVTkNUSU9O IDEyIChhbnllbnVtLCBhbnllbnVtKSBnaXN0X3N0cmF0bnVtX2J0cmVlIChpbnQyKSA7CisK K0FMVEVSIE9QRVJBVE9SIEZBTUlMWSBnaXN0X2Jvb2xfb3BzIFVTSU5HIGdpc3QgQURECisJ RlVOQ1RJT04gMTIgKGJvb2wsIGJvb2wpIGdpc3Rfc3RyYXRudW1fYnRyZWUgKGludDIpIDsK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LmMgYi9jb250cmli L2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jCmluZGV4IDkyNTIwYWVkYWUxLi41ZmQ0Y2NlMjdk MCAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3QuYworKysgYi9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jCkBAIC0zLDYgKzMsNyBAQAogICovCiAj aW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAKIFBHX01PRFVMRV9NQUdJQzsKQEAgLTEw LDYgKzExLDcgQEAgUEdfTU9EVUxFX01BR0lDOwogUEdfRlVOQ1RJT05fSU5GT19WMShnYnRf ZGVjb21wcmVzcyk7CiBQR19GVU5DVElPTl9JTkZPX1YxKGdidHJlZWtleV9pbik7CiBQR19G VU5DVElPTl9JTkZPX1YxKGdidHJlZWtleV9vdXQpOworUEdfRlVOQ1RJT05fSU5GT19WMShn aXN0X3N0cmF0bnVtX2J0cmVlKTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKiBJbi9PdXQgZm9yIGtleXMKQEAgLTUxLDMgKzUz LDI4IEBAIGdidF9kZWNvbXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJUEdfUkVUVVJO X1BPSU5URVIoUEdfR0VUQVJHX1BPSU5URVIoMCkpOwogfQorCisvKgorICogUmV0dXJucyB0 aGUgYnRyZWUgbnVtYmVyIGZvciBzdXBwb3J0ZWQgb3BlcmF0b3JzLCBvdGhlcndpc2UgaW52 YWxpZC4KKyAqLworRGF0dW0KK2dpc3Rfc3RyYXRudW1fYnRyZWUoUEdfRlVOQ1RJT05fQVJH UykKK3sKKwlTdHJhdGVneU51bWJlciBzdHJhdCA9IFBHX0dFVEFSR19VSU5UMTYoMCk7CisK Kwlzd2l0Y2ggKHN0cmF0KQorCXsKKwkJY2FzZSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXI6CisJ CQlQR19SRVRVUk5fVUlOVDE2KEJURXF1YWxTdHJhdGVneU51bWJlcik7CisJCWNhc2UgUlRM ZXNzU3RyYXRlZ3lOdW1iZXI6CisJCQlQR19SRVRVUk5fVUlOVDE2KEJUTGVzc1N0cmF0ZWd5 TnVtYmVyKTsKKwkJY2FzZSBSVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJUEdfUkVU VVJOX1VJTlQxNihCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKKwkJY2FzZSBSVEdyZWF0 ZXJTdHJhdGVneU51bWJlcjoKKwkJCVBHX1JFVFVSTl9VSU5UMTYoQlRHcmVhdGVyU3RyYXRl Z3lOdW1iZXIpOworCQljYXNlIFJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXI6CisJCQlQ R19SRVRVUk5fVUlOVDE2KEJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXIpOworCQlkZWZh dWx0OgorCQkJUEdfUkVUVVJOX1VJTlQxNihJbnZhbGlkU3RyYXRlZ3kpOworCX0KK30KZGlm ZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LmNvbnRyb2wgYi9jb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jb250cm9sCmluZGV4IGZhOTE3MWE4MGEyLi5h YmY2NjUzOGYzMiAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3Qu Y29udHJvbAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jb250cm9sCkBA IC0xLDYgKzEsNiBAQAogIyBidHJlZV9naXN0IGV4dGVuc2lvbgogY29tbWVudCA9ICdzdXBw b3J0IGZvciBpbmRleGluZyBjb21tb24gZGF0YXR5cGVzIGluIEdpU1QnCi1kZWZhdWx0X3Zl cnNpb24gPSAnMS43JworZGVmYXVsdF92ZXJzaW9uID0gJzEuOCcKIG1vZHVsZV9wYXRobmFt ZSA9ICckbGliZGlyL2J0cmVlX2dpc3QnCiByZWxvY2F0YWJsZSA9IHRydWUKIHRydXN0ZWQg PSB0cnVlCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRu dW0ub3V0IGIvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3N0cmF0bnVtLm91dApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWQ4MGM2NTkwZDkKLS0tIC9k ZXYvbnVsbAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvZXhwZWN0ZWQvc3RyYXRudW0ub3V0 CkBAIC0wLDAgKzEsMTMgQEAKKy0tIHRlc3Qgc3RyYXRudW0gc3VwcG9ydCBmdW5jCitTRUxF Q1QgZ2lzdF9zdHJhdG51bV9idHJlZSgzOjpzbWFsbGludCk7CisgZ2lzdF9zdHJhdG51bV9i dHJlZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgIDAKKygx IHJvdykKKworU0VMRUNUIGdpc3Rfc3RyYXRudW1fYnRyZWUoMTg6OnNtYWxsaW50KTsKKyBn aXN0X3N0cmF0bnVtX2J0cmVlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgMworKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3Qv bWVzb24uYnVpbGQgYi9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQKaW5kZXggYzg4 YTZhYzg0YWUuLmE0NGNlOTA1ZTU5IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3Qv bWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9idHJlZV9naXN0L21lc29uLmJ1aWxkCkBAIC01 MCw2ICs1MCw3IEBAIGluc3RhbGxfZGF0YSgKICAgJ2J0cmVlX2dpc3QtLTEuNC0tMS41LnNx bCcsCiAgICdidHJlZV9naXN0LS0xLjUtLTEuNi5zcWwnLAogICAnYnRyZWVfZ2lzdC0tMS42 LS0xLjcuc3FsJywKKyAgJ2J0cmVlX2dpc3QtLTEuNy0tMS44LnNxbCcsCiAgIGt3YXJnczog Y29udHJpYl9kYXRhX2FyZ3MsCiApCiAKQEAgLTg5LDYgKzkwLDcgQEAgdGVzdHMgKz0gewog ICAgICAgJ2VudW0nLAogICAgICAgJ2Jvb2wnLAogICAgICAgJ3BhcnRpdGlvbnMnLAorICAg ICAgJ3N0cmF0bnVtJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9i dHJlZV9naXN0L3NxbC9zdHJhdG51bS5zcWwgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3N0 cmF0bnVtLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjU4 Y2RiZTkzZGEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3N0 cmF0bnVtLnNxbApAQCAtMCwwICsxLDMgQEAKKy0tIHRlc3Qgc3RyYXRudW0gc3VwcG9ydCBm dW5jCitTRUxFQ1QgZ2lzdF9zdHJhdG51bV9idHJlZSgzOjpzbWFsbGludCk7CitTRUxFQ1Qg Z2lzdF9zdHJhdG51bV9idHJlZSgxODo6c21hbGxpbnQpOwpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2dpc3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKaW5kZXggMzljN2Jm MzcwZDYuLmY3ODk4MjRjODNiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKQEAgLTI2Niw3ICsyNjYsNyBAQCBDUkVB VEUgSU5ERVggT04gbXlfdGFibGUgVVNJTkcgR0lTVCAobXlfaW5ldF9jb2x1bW4gaW5ldF9v cHMpOwogCiAgPHBhcmE+CiAgICBUaGVyZSBhcmUgZml2ZSBtZXRob2RzIHRoYXQgYW4gaW5k ZXggb3BlcmF0b3IgY2xhc3MgZm9yCi0gICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBtdXN0 IHByb3ZpZGUsIGFuZCBzaXggdGhhdCBhcmUgb3B0aW9uYWwuCisgICA8YWNyb255bT5HaVNU PC9hY3JvbnltPiBtdXN0IHByb3ZpZGUsIGFuZCBzZXZlbiB0aGF0IGFyZSBvcHRpb25hbC4K ICAgIENvcnJlY3RuZXNzIG9mIHRoZSBpbmRleCBpcyBlbnN1cmVkCiAgICBieSBwcm9wZXIg aW1wbGVtZW50YXRpb24gb2YgdGhlIDxmdW5jdGlvbj5zYW1lPC9mdW5jdGlvbj4sIDxmdW5j dGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4KICAgIGFuZCA8ZnVuY3Rpb24+dW5pb248L2Z1 bmN0aW9uPiBtZXRob2RzLCB3aGlsZSBlZmZpY2llbmN5IChzaXplIGFuZCBzcGVlZCkgb2Yg dGhlCkBAIC0yODksNiArMjg5LDEwIEBAIENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBVU0lO RyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAgICB1c2VyLXNwZWNpZmllZCBw YXJhbWV0ZXJzLgogICAgVGhlIG9wdGlvbmFsIGVsZXZlbnRoIG1ldGhvZCA8ZnVuY3Rpb24+ c29ydHN1cHBvcnQ8L2Z1bmN0aW9uPiBpcyB1c2VkIHRvCiAgICBzcGVlZCB1cCBidWlsZGlu ZyBhIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IGluZGV4LgorICAgVGhlIG9wdGlvbmFsIHR3 ZWxmdGggbWV0aG9kIDxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rpb24+IGlzIHVzZWQgdG8K KyAgIHRyYW5zbGF0ZSB3ZWxsLWtub3duIDxsaXRlcmFsPlJUKlN0cmF0ZWd5TnVtYmVyPC9s aXRlcmFsPnMgKGZyb20KKyAgIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRu dW0uaDwvZmlsZW5hbWU+KSBpbnRvIHN0cmF0ZWd5IG51bWJlcnMKKyAgIHVzZWQgYnkgdGhl IG9wZXJhdG9yIGNsYXNzLgogIDwvcGFyYT4KIAogIDx2YXJpYWJsZWxpc3Q+CkBAIC0xMTYz LDYgKzExNjcsNjUgQEAgbXlfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykKICAgICAg IDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg IDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rp b24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZl biBhbiA8bGl0ZXJhbD5SVCpTdHJhdGVneU51bWJlcjwvbGl0ZXJhbD4gdmFsdWUgZnJvbQor ICAgICAgIDxmaWxlbmFtZT5zcmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0uaDwvZmlsZW5h bWU+LCByZXR1cm5zIGEgc3RyYXRlZ3kKKyAgICAgICBudW1iZXIgdXNlZCBieSB0aGlzIG9w ZXJhdG9yIGNsYXNzIGZvciBtYXRjaGluZyBmdW5jdGlvbmFsaXR5LiAgVGhlCisgICAgICAg ZnVuY3Rpb24gc2hvdWxkIHJldHVybiA8bGl0ZXJhbD5JbnZhbGlkU3RyYXRlZ3k8L2xpdGVy YWw+IGlmIHRoZQorICAgICAgIG9wZXJhdG9yIGNsYXNzIGhhcyBubyBtYXRjaGluZyBzdHJh dGVneS4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgVGhlIDxhY3Jv bnltPlNRTDwvYWNyb255bT4gZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIG11c3QgbG9v ayBsaWtlCisgICAgICAgdGhpczoKKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gbXlfc3RyYXRudW0oaW50ZWdlcikKK1JFVFVSTlMgaW50ZWdlcgor QVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RSSUNUOworPC9wcm9ncmFtbGlz dGluZz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbWF0 Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhlbiBmb2xsb3cgdGhpcyBza2Vs ZXRvbjoKKworPHByb2dyYW1saXN0aW5nPgorUEdfRlVOQ1RJT05fSU5GT19WMShteV9zdHJh dG51bSk7CisKK0RhdHVtCitteV9zdHJhdG51bShQR19GVU5DVElPTl9BUkdTKQoreworICAg IFN0cmF0ZWd5TnVtYmVyIHN0cmF0ZWd5ID0gKFN0cmF0ZWd5TnVtYmVyKSBQR19HRVRBUkdf VUlOVDE2KDEpOworICAgIFN0cmF0ZWd5TnVtYmVyIHJldCA9IEludmFsaWRTdHJhdGVneTsK KworICAgIHN3aXRjaCAoc3RyYXRlZ3kpCisgICAgeworICAgICAgICBjYXNlIFJURXF1YWxT dHJhdGVneU51bWJlcjoKKyAgICAgICAgICAgIHJldCA9IEJURXF1YWxTdHJhdGVneU51bWJl cjsKKyAgICB9CisKKyAgICBQR19SRVRVUk5fVUlOVDE2KHJldCk7Cit9Cis8L3Byb2dyYW1s aXN0aW5nPgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBPbmUgdHJh bnNsYXRpb24gZnVuY3Rpb24gaXMgcHJvdmlkZWQgYnkKKyAgICAgICA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+OgorICAgICAgIDxsaXRlcmFsPmdpc3Rfc3RyYXRu dW1faWRlbnRpdHk8L2xpdGVyYWw+IGlzIGZvciBvcGVyYXRvciBjbGFzc2VzIHRoYXQKKyAg ICAgICBhbHJlYWR5IHVzZSB0aGUgPGxpdGVyYWw+UlQqU3RyYXRlZ3lOdW1iZXI8L2xpdGVy YWw+IGNvbnN0YW50cy4gIEl0CisgICAgICAgcmV0dXJucyB3aGF0ZXZlciBpcyBwYXNzZWQg dG8gaXQuICBUaGUgPGxpdGVyYWw+YnRyZWVfZ2lzdDwvbGl0ZXJhbD4KKyAgICAgICBleHRl bnNpb24gZGVmaW5lcyBhIHNlY29uZCB0cmFuc2xhdGlvbiBmdW5jdGlvbiwKKyAgICAgICA8 bGl0ZXJhbD5naXN0X3N0cmF0bnVtX2J0cmVlPC9saXRlcmFsPiwgZm9yIG9wZXJhdG9yIGNs YXNzZXMgdGhhdCB1c2UKKyAgICAgICB0aGUgPGxpdGVyYWw+QlQqU3RyYXRlZ3lOdW1iZXI8 L2xpdGVyYWw+IGNvbnN0YW50cy4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L3Zhcmxpc3RlbnRyeT4KICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgPHBhcmE+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwveGlu ZGV4LnNnbWwKaW5kZXggMjJkOGFkMWFhYzQuLjNhMTlkYWIxNWUwIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21s CkBAIC01MDgsNyArNTA4LDcgQEAKICAgIDwvdGFibGU+CiAKICAgPHBhcmE+Ci0gICBHaVNU IGluZGV4ZXMgaGF2ZSBlbGV2ZW4gc3VwcG9ydCBmdW5jdGlvbnMsIHNpeCBvZiB3aGljaCBh cmUgb3B0aW9uYWwsCisgICBHaVNUIGluZGV4ZXMgaGF2ZSB0d2VsdmUgc3VwcG9ydCBmdW5j dGlvbnMsIHNldmVuIG9mIHdoaWNoIGFyZSBvcHRpb25hbCwKICAgIGFzIHNob3duIGluIDx4 cmVmIGxpbmtlbmQ9InhpbmRleC1naXN0LXN1cHBvcnQtdGFibGUiLz4uCiAgICAoRm9yIG1v cmUgaW5mb3JtYXRpb24gc2VlIDx4cmVmIGxpbmtlbmQ9Imdpc3QiLz4uKQogICA8L3BhcmE+ CkBAIC01OTAsNiArNTkwLDEyIEBACiAgICAgICAgIChvcHRpb25hbCk8L2VudHJ5PgogICAg ICAgIDxlbnRyeT4xMTwvZW50cnk+CiAgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5PjxmdW5jdGlvbj5zdHJhdG51bTwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+dHJhbnNsYXRlIHdlbGwta25vd24gc3RyYXRlZ3kgbnVtYmVycyB0byBvbmVz CisgICAgICAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNsYXNzIChvcHRpb25hbCk8L2VudHJ5 PgorICAgICAgIDxlbnRyeT4xMjwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9k eT4KICAgICA8L3Rncm91cD4KICAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dHV0aWwuYwppbmRleCA3OGU5OGQ2OGIxNS4uODY4NjczNWYyMzQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHV0aWwuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbW1v bi9wZ19wcm5nLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pbmRleGZzbS5oIgogI2luY2x1ZGUg InV0aWxzL2Zsb2F0LmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncnByb3Rvcy5oIgogI2luY2x1 ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1 ZGUgInV0aWxzL3NuYXBtZ3IuaCIKQEAgLTEwNTUsMyArMTA1NiwxNiBAQCBnaXN0R2V0RmFr ZUxTTihSZWxhdGlvbiByZWwpCiAJCXJldHVybiBHZXRGYWtlTFNORm9yVW5sb2dnZWRSZWwo KTsKIAl9CiB9CisKKy8qCisgKiBSZXR1cm5zIHRoZSBzYW1lIG51bWJlciB0aGF0IHdhcyBy ZWNlaXZlZC4KKyAqCisgKiBUaGlzIGlzIGZvciBHaVNUIG9wY2xhc3NlcyB0aGF0IHVzZSB0 aGUgUlQqU3RyYXRlZ3lOdW1iZXIgY29uc3RhbnRzLgorICovCitEYXR1bQorZ2lzdF9zdHJh dG51bV9pZGVudGl0eShQR19GVU5DVElPTl9BUkdTKQoreworCVN0cmF0ZWd5TnVtYmVyIHN0 cmF0ID0gUEdfR0VUQVJHX1VJTlQxNigwKTsKKworCVBHX1JFVFVSTl9VSU5UMTYoc3RyYXQp OworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRl LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwppbmRleCAzNmI1 YTg1Y2YzMS4uMDkwMTU0M2E2MGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3R2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2 YWxpZGF0ZS5jCkBAIC0xNDYsNiArMTQ2LDEwIEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFz c29pZCkKIAkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJv YywgVk9JRE9JRCwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJ CWJyZWFrOworCQkJY2FzZSBHSVNUX1NUUkFUTlVNX1BST0M6CisJCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQsIHRydWUsCisJCQkJ CQkJCQkJCTEsIDEsIElOVDJPSUQpOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQll cmVwb3J0KElORk8sCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RF RklOSVRJT04pLApAQCAtMjY2LDcgKzI3MCw4IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFz c29pZCkKIAkJCWNvbnRpbnVlOwkJCS8qIGdvdCBpdCAqLwogCQlpZiAoaSA9PSBHSVNUX0RJ U1RBTkNFX1BST0MgfHwgaSA9PSBHSVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9D T01QUkVTU19QUk9DIHx8IGkgPT0gR0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKLQkJCWkgPT0g R0lTVF9PUFRJT05TX1BST0MgfHwgaSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MpCisJCQlp ID09IEdJU1RfT1BUSU9OU19QUk9DIHx8IGkgPT0gR0lTVF9TT1JUU1VQUE9SVF9QUk9DIHx8 CisJCQlpID09IEdJU1RfU1RSQVROVU1fUFJPQykKIAkJCWNvbnRpbnVlOwkJCS8qIG9wdGlv bmFsIG1ldGhvZHMgKi8KIAkJZXJlcG9ydChJTkZPLAogCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCkBAIC0zMzgsNiArMzQzLDcgQEAgZ2lzdGFk anVzdG1lbWJlcnMoT2lkIG9wZmFtaWx5b2lkLAogCQkJY2FzZSBHSVNUX0ZFVENIX1BST0M6 CiAJCQljYXNlIEdJU1RfT1BUSU9OU19QUk9DOgogCQkJY2FzZSBHSVNUX1NPUlRTVVBQT1JU X1BST0M6CisJCQljYXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKIAkJCQkvKiBPcHRpb25hbCwg c28gZm9yY2UgaXQgdG8gYmUgYSBzb2Z0IGZhbWlseSBkZXBlbmRlbmN5ICovCiAJCQkJb3At PnJlZl9pc19oYXJkID0gZmFsc2U7CiAJCQkJb3AtPnJlZl9pc19mYW1pbHkgPSB0cnVlOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0LmgKaW5kZXggYzZkY2Q2YTkwZGQuLmU3Y2VkMThhNWJhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9n aXN0LmgKQEAgLTM4LDcgKzM4LDggQEAKICNkZWZpbmUgR0lTVF9GRVRDSF9QUk9DCQkJCQk5 CiAjZGVmaW5lIEdJU1RfT1BUSU9OU19QUk9DCQkJCTEwCiAjZGVmaW5lIEdJU1RfU09SVFNV UFBPUlRfUFJPQwkJCTExCi0jZGVmaW5lIEdJU1ROUHJvY3MJCQkJCTExCisjZGVmaW5lIEdJ U1RfU1RSQVROVU1fUFJPQwkJCQkxMgorI2RlZmluZSBHSVNUTlByb2NzCQkJCQkxMgogCiAv KgogICogUGFnZSBvcGFxdWUgZGF0YSBpbiBhIEdpU1QgaW5kZXggcGFnZS4KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCBmNjM5YzNhNmE1MS4uMzUyNTU4YzFmMDYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKQEAgLTUwNyw2ICs1MDcsOSBAQAogICBh bXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9PiAnNycsIGFtcHJvYyA9PiAn Z2lzdF9ib3hfc2FtZScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L2JveF9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAnYm94JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdib3gnLCBh bXByb2NudW0gPT4gJzgnLCBhbXByb2MgPT4gJ2dpc3RfYm94X2Rpc3RhbmNlJyB9LAoreyBh bXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdib3gn LAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9PiAnMTInLAorICBh bXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnZ2lzdC9wb2x5X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdwb2x5Z29uJywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdwb2x5Z29uJywgYW1wcm9jbnVtID0+ICcxJywKICAgYW1wcm9j ID0+ICdnaXN0X3BvbHlfY29uc2lzdGVudCcgfSwKQEAgLTUyNiw2ICs1MjksOSBAQAogeyBh bXByb2NmYW1pbHkgPT4gJ2dpc3QvcG9seV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncG9s eWdvbicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncG9seWdvbicsIGFtcHJvY251bSA9PiAn OCcsCiAgIGFtcHJvYyA9PiAnZ2lzdF9wb2x5X2Rpc3RhbmNlJyB9LAoreyBhbXByb2NmYW1p bHkgPT4gJ2dpc3QvcG9seV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncG9seWdvbicsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAncG9seWdvbicsIGFtcHJvY251bSA9PiAnMTInLAorICBh bXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnZ2lzdC9jaXJjbGVfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2NpcmNsZScsCiAgIGFt cHJvY3JpZ2h0dHlwZSA9PiAnY2lyY2xlJywgYW1wcm9jbnVtID0+ICcxJywKICAgYW1wcm9j ID0+ICdnaXN0X2NpcmNsZV9jb25zaXN0ZW50JyB9LApAQCAtNTQ0LDYgKzU1MCw5IEBACiB7 IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9jaXJjbGVfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2NpcmNsZScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnY2lyY2xlJywgYW1wcm9jbnVtID0+ ICc4JywKICAgYW1wcm9jID0+ICdnaXN0X2NpcmNsZV9kaXN0YW5jZScgfSwKK3sgYW1wcm9j ZmFtaWx5ID0+ICdnaXN0L2NpcmNsZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnY2lyY2xl JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdjaXJjbGUnLCBhbXByb2NudW0gPT4gJzEyJywK KyAgYW1wcm9jID0+ICdnaXN0X3N0cmF0bnVtX2lkZW50aXR5JyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2dpc3QvdHN2ZWN0b3Jfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RzdmVjdG9y JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0c3ZlY3RvcicsIGFtcHJvY251bSA9PiAnMScs CiAgIGFtcHJvYyA9PiAnZ3RzdmVjdG9yX2NvbnNpc3RlbnQoaW50ZXJuYWwsdHN2ZWN0b3Is aW50MixvaWQsaW50ZXJuYWwpJyB9LApAQCAtNTk4LDYgKzYwNyw5IEBACiB7IGFtcHJvY2Zh bWlseSA9PiAnZ2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2Un LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICc3JywK ICAgYW1wcm9jID0+ICdyYW5nZV9naXN0X3NhbWUnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn Z2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBhbXBy b2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMicsCisgIGFtcHJv YyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdn aXN0L25ldHdvcmtfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ2lu ZXRfZ2lzdF9jb25zaXN0ZW50JyB9LApAQCAtNjE0LDYgKzYyNiw5IEBACiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnNycsIGFtcHJvYyA9PiAnaW5ldF9n aXN0X3NhbWUnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0Jywg YW1wcm9jbnVtID0+ICc5JywgYW1wcm9jID0+ICdpbmV0X2dpc3RfZmV0Y2gnIH0sCit7IGFt cHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdp bmV0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICcxMics CisgIGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIHsgYW1wcm9jZmFt aWx5ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueW11 bHRpcmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbXBy b2NudW0gPT4gJzEnLAogICBhbXByb2MgPT4gJ211bHRpcmFuZ2VfZ2lzdF9jb25zaXN0ZW50 JyB9LApAQCAtNjMyLDYgKzY0Nyw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9tdWx0 aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICc3JywKICAg YW1wcm9jID0+ICdyYW5nZV9naXN0X3NhbWUnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lz dC9tdWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywK KyAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcx MicsCisgIGFtcHJvYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIAogIyBnaW4K IHsgYW1wcm9jZmFtaWx5ID0+ICdnaW4vYXJyYXlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2FueWFycmF5JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDczZDljZjg1ODI2 Li43ZWE2ZTBmY2ZmNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMjIwOCw0 ICsxMjIwOCwxMCBAQAogICBwcm9hcmduYW1lcyA9PiAne3N1bW1hcml6ZWRfdGxpLHN1bW1h cml6ZWRfbHNuLHBlbmRpbmdfbHNuLHN1bW1hcml6ZXJfcGlkfScsCiAgIHByb3NyYyA9PiAn cGdfZ2V0X3dhbF9zdW1tYXJpemVyX3N0YXRlJyB9LAogCisjIEdpU1Qgc3RyYXRudW0gaW1w bGVtZW50YXRpb25zCit7IG9pZCA9PiAnODA0NycsIGRlc2NyID0+ICdHaVNUIHN1cHBvcnQn LAorICBwcm9uYW1lID0+ICdnaXN0X3N0cmF0bnVtX2lkZW50aXR5JywgcHJvcmV0dHlwZSA9 PiAnaW50MicsCisgIHByb2FyZ3R5cGVzID0+ICdpbnQyJywKKyAgcHJvc3JjID0+ICdnaXN0 X3N0cmF0bnVtX2lkZW50aXR5JyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL21pc2NfZnVuY3Rpb25zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0CmluZGV4IDM1ZmI3MmYzMDJiLi41ZjdiZjZiOGFm NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0aW9u cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNjX2Z1bmN0aW9ucy5v dXQKQEAgLTgxOSwzICs4MTksMTYgQEAgU0VMRUNUIHBnX2NvbHVtbl90b2FzdF9jaHVua19p ZChhKSBJUyBOVUxMLAogCiBEUk9QIFRBQkxFIHRlc3RfY2h1bmtfaWQ7CiBEUk9QIEZVTkNU SU9OIGV4cGxhaW5fbWFza19jb3N0cyh0ZXh0LCBib29sLCBib29sLCBib29sLCBib29sKTsK Ky0tIHRlc3Qgc3RyYXRudW0gc3VwcG9ydCBmdW5jdGlvbnMKK1NFTEVDVCBnaXN0X3N0cmF0 bnVtX2lkZW50aXR5KDM6OnNtYWxsaW50KTsKKyBnaXN0X3N0cmF0bnVtX2lkZW50aXR5IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgMworKDEg cm93KQorCitTRUxFQ1QgZ2lzdF9zdHJhdG51bV9pZGVudGl0eSgxODo6c21hbGxpbnQpOwor IGdpc3Rfc3RyYXRudW1faWRlbnRpdHkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgIDE4CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L21pc2NfZnVuY3Rpb25zLnNxbAppbmRleCBlNTcwNzgzNDUzYy4uMWU5MGQ2MGFmMzUgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9taXNjX2Z1bmN0aW9ucy5zcWwKQEAgLTM2MCwzICsz NjAsNyBAQCBTRUxFQ1QgcGdfY29sdW1uX3RvYXN0X2NodW5rX2lkKGEpIElTIE5VTEwsCiAg IEZST00gdGVzdF9jaHVua19pZDsKIERST1AgVEFCTEUgdGVzdF9jaHVua19pZDsKIERST1Ag RlVOQ1RJT04gZXhwbGFpbl9tYXNrX2Nvc3RzKHRleHQsIGJvb2wsIGJvb2wsIGJvb2wsIGJv b2wpOworCistLSB0ZXN0IHN0cmF0bnVtIHN1cHBvcnQgZnVuY3Rpb25zCitTRUxFQ1QgZ2lz dF9zdHJhdG51bV9pZGVudGl0eSgzOjpzbWFsbGludCk7CitTRUxFQ1QgZ2lzdF9zdHJhdG51 bV9pZGVudGl0eSgxODo6c21hbGxpbnQpOwotLSAKMi40Mi4wCgo= --------------chobAlN9YDJn29tODLTlOP0i Content-Type: text/x-patch; charset=UTF-8; name="v36-0002-Add-temporal-PRIMARY-KEY-and-UNIQUE-constraints.patch" Content-Disposition: attachment; filename*0="v36-0002-Add-temporal-PRIMARY-KEY-and-UNIQUE-constraints.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSA5NGM5ZDIzZTVlMzE3MWRhNDQ4NTQ0YTNmNTM2Mzk2NWM4MDg3M2VmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFdlZCwgMjQgSmFuIDIwMjQgMTU6NDM6NDEgKzAx MDAKU3ViamVjdDogW1BBVENIIHYzNiAyLzNdIEFkZCB0ZW1wb3JhbCBQUklNQVJZIEtFWSBh bmQgVU5JUVVFIGNvbnN0cmFpbnRzCgpBZGQgV0lUSE9VVCBPVkVSTEFQUyBjbGF1c2UgdG8g UFJJTUFSWSBLRVkgYW5kIFVOSVFVRSBjb25zdHJhaW50cy4KVGhlc2UgYXJlIGJhY2tlZCBi eSBHaVNUIGluZGV4ZXMgaW5zdGVhZCBvZiBCLXRyZWUgaW5kZXhlcywgc2luY2UgdGhleQph cmUgZXNzZW50aWFsbHkgZXhjbHVzaW9uIGNvbnN0cmFpbnRzIHdpdGggPSBmb3IgdGhlIHNj YWxhciBwYXJ0cyBvZgp0aGUga2V5IGFuZCAmJiBmb3IgdGhlIHRlbXBvcmFsIHBhcnQuCi0t LQogY29udHJpYi9idHJlZV9naXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgIHwgICAg MiArLQogLi4uL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgIHwg ICA0NCArCiBjb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg fCAgICAxICsKIGNvbnRyaWIvYnRyZWVfZ2lzdC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwg ICB8ICAgMjUgKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgICAxMCArCiBkb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDE0ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAg ICAgICAgICAgfCAgIDQyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5j ICAgICAgICAgICAgfCAgIDI5ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAg ICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAg ICAgICAgICAgICAgICAgIHwgICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0 cmFpbnQuYyAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4 Y21kcy5jICAgICAgICAgICAgICB8ICAxNDMgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgICA2ICstCiBzcmMvYmFja2VuZC9jb21tYW5k cy90cmlnZ2VyLmMgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3R5cGVjbWRzLmMgICAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0luZGV4aW5nLmMgICAgICAgICAgIHwgICAgMiArLQogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jICAgICAgICAgIHwgICAgOSArLQogc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgICAyOSArLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgICAyOCArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgICAgMiArCiBz cmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAgfCAgIDE4ICst CiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgIDE2 ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8 ICAgMzYgKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICAxMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCAgICAgICAgICAgICAgICAg ICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmggICAgICAgICAgICAg ICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oICAg ICAgICAgICB8ICAgMTAgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oICAgICAg ICAgICAgICAgICB8ICAgIDYgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9v dmVybGFwcy5vdXQgICAgIHwgMTA4OCArKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAgMiArLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgIDc1NCArKysrKysrKysr KysKIDMzIGZpbGVzIGNoYW5nZWQsIDIyOTMgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dp dGhvdXRfb3ZlcmxhcHMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9idHJlZV9n aXN0L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAoKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9NYWtlZmlsZSBiL2NvbnRyaWIvYnRyZWVf Z2lzdC9NYWtlZmlsZQppbmRleCA5YWI4NTQ4YmMwZS4uN2FjMmRmMjZjMTAgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9NYWtlZmlsZQorKysgYi9jb250cmliL2J0cmVlX2dp c3QvTWFrZWZpbGUKQEAgLTQwLDcgKzQwLDcgQEAgUEdGSUxFREVTQyA9ICJidHJlZV9naXN0 IC0gQi10cmVlIGVxdWl2YWxlbnQgR2lTVCBvcGVyYXRvciBjbGFzc2VzIgogUkVHUkVTUyA9 IGluaXQgaW50MiBpbnQ0IGludDggZmxvYXQ0IGZsb2F0OCBjYXNoIG9pZCB0aW1lc3RhbXAg dGltZXN0YW1wdHogXAogICAgICAgICB0aW1lIHRpbWV0eiBkYXRlIGludGVydmFsIG1hY2Fk ZHIgbWFjYWRkcjggaW5ldCBjaWRyIHRleHQgdmFyY2hhciBjaGFyIFwKICAgICAgICAgYnl0 ZWEgYml0IHZhcmJpdCBudW1lcmljIHV1aWQgbm90X2VxdWFsIGVudW0gYm9vbCBwYXJ0aXRp b25zIFwKLSAgICAgICAgc3RyYXRudW0KKyAgICAgICAgc3RyYXRudW0gd2l0aG91dF9vdmVy bGFwcwogCiBTSExJQl9MSU5LICs9ICQoZmlsdGVyIC1sbSwgJChMSUJTKSkKIApkaWZmIC0t Z2l0IGEvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 IGIvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZTUyYzUyMmU4OQotLS0g L2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9leHBlY3RlZC93aXRob3V0X292 ZXJsYXBzLm91dApAQCAtMCwwICsxLDQ0IEBACistLSBDb3JlIG11c3QgdGVzdCBXSVRIT1VU IE9WRVJMQVBTCistLSB3aXRoIGFuIGludDRyYW5nZSArIGRhdGVyYW5nZSwKKy0tIHNvIGhl cmUgd2UgZG8gc29tZSBzaW1wbGUgdGVzdHMKKy0tIHRvIG1ha2Ugc3VyZSBpbnQgKyBkYXRl cmFuZ2Ugd29ya3MgdG9vLAorLS0gc2luY2UgdGhhdCBpcyB0aGUgZXhwZWN0ZWQgdXNlLWNh c2UuCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKyAgaWQgaW50ZWdlciwKKyAgdmFs aWRfYXQgZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxf cm5nCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nIgorICBDb2x1 bW4gIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQor IGlkICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxp ZF9hdCB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgor ICAgICJ0ZW1wb3JhbF9ybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBw Z19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nX3BrJzsKKyAgICAg ICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2lu ZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29u bmFtZSA9ICd0ZW1wb3JhbF9ybmdfcGsnOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9y YWxfcm5nX3BrIE9OIHRlbXBvcmFsX3JuZyBVU0lORyBnaXN0IChpZCwgdmFsaWRfYXQpCiso MSByb3cpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMKKyAgKDEsICdbMjAw MC0wMS0wMSwyMDAxLTAxLTAxKScpOworLS0gc2FtZSBrZXksIGRvZXNuJ3Qgb3ZlcmxhcDoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMKKyAgKDEsICdbMjAwMS0wMS0wMSwy MDAyLTAxLTAxKScpOworLS0gb3ZlcmxhcHMgYnV0IGRpZmZlcmVudCBrZXk6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTCisgICgyLCAnWzIwMDAtMDEtMDEsMjAwMS0wMS0w MSknKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVF UworICAoMSwgJ1syMDAwLTA2LTAxLDIwMDEtMDEtMDEpJyk7CitFUlJPUjogIGNvbmZsaWN0 aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxf cm5nX3BrIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPSgxLCBbMDYtMDEtMjAwMCww MS0wMS0yMDAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQp PSgxLCBbMDEtMDEtMjAwMCwwMS0wMS0yMDAxKSkuCmRpZmYgLS1naXQgYS9jb250cmliL2J0 cmVlX2dpc3QvbWVzb24uYnVpbGQgYi9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQK aW5kZXggYTQ0Y2U5MDVlNTkuLjczYjFiYmY1MmE2IDEwMDY0NAotLS0gYS9jb250cmliL2J0 cmVlX2dpc3QvbWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9idHJlZV9naXN0L21lc29uLmJ1 aWxkCkBAIC05MSw2ICs5MSw3IEBAIHRlc3RzICs9IHsKICAgICAgICdib29sJywKICAgICAg ICdwYXJ0aXRpb25zJywKICAgICAgICdzdHJhdG51bScsCisgICAgICAnd2l0aG91dF9vdmVy bGFwcycsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lz dC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgYi9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3dp dGhvdXRfb3ZlcmxhcHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi40MzNjNjA5YWIyMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lz dC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTAsMCArMSwyNSBAQAorLS0gQ29yZSBt dXN0IHRlc3QgV0lUSE9VVCBPVkVSTEFQUworLS0gd2l0aCBhbiBpbnQ0cmFuZ2UgKyBkYXRl cmFuZ2UsCistLSBzbyBoZXJlIHdlIGRvIHNvbWUgc2ltcGxlIHRlc3RzCistLSB0byBtYWtl IHN1cmUgaW50ICsgZGF0ZXJhbmdlIHdvcmtzIHRvbywKKy0tIHNpbmNlIHRoYXQgaXMgdGhl IGV4cGVjdGVkIHVzZS1jYXNlLgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisgIGlk IGludGVnZXIsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor KTsKK1xkIHRlbXBvcmFsX3JuZworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nX3BrJzsK K1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29u c3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZ19wayc7CisKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyBWQUxVRVMKKyAgKDEsICdbMjAwMC0wMS0wMSwyMDAxLTAxLTAx KScpOworLS0gc2FtZSBrZXksIGRvZXNuJ3Qgb3ZlcmxhcDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyBWQUxVRVMKKyAgKDEsICdbMjAwMS0wMS0wMSwyMDAyLTAxLTAxKScpOworLS0g b3ZlcmxhcHMgYnV0IGRpZmZlcmVudCBrZXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg VkFMVUVTCisgICgyLCAnWzIwMDAtMDEtMDEsMjAwMS0wMS0wMSknKTsKKy0tIHNob3VsZCBm YWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUworICAoMSwgJ1syMDAwLTA2 LTAxLDIwMDEtMDEtMDEpJyk7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGI2NTRmYWUxYjJmLi4x ZTU2ZWRhYTcwYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTI3MzAsNiArMjczMCwxNiBAQCBT Q1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVw bGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg IDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5jb25wZXJpb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBjb25zdHJhaW50IGlzIGRl ZmluZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VUIE9WRVJMQVBTPC9saXRlcmFsPgorICAgICAg IChmb3IgcHJpbWFyeSBrZXlzIGFuZCB1bmlxdWUgY29uc3RyYWludHMpLgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5jb25rZXk8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQyW108L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sIGIvZG9j L3NyYy9zZ21sL2dpc3Quc2dtbAppbmRleCBmNzg5ODI0YzgzYi4uZGNmOTQzM2ZhNzggMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dp c3Quc2dtbApAQCAtMjkyLDcgKzI5Miw4IEBAIENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBV U0lORyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAgICBUaGUgb3B0aW9uYWwg dHdlbGZ0aCBtZXRob2QgPGZ1bmN0aW9uPnN0cmF0bnVtPC9mdW5jdGlvbj4gaXMgdXNlZCB0 bwogICAgdHJhbnNsYXRlIHdlbGwta25vd24gPGxpdGVyYWw+UlQqU3RyYXRlZ3lOdW1iZXI8 L2xpdGVyYWw+cyAoZnJvbQogICAgPGZpbGVuYW1lPnNyYy9pbmNsdWRlL2FjY2Vzcy9zdHJh dG51bS5oPC9maWxlbmFtZT4pIGludG8gc3RyYXRlZ3kgbnVtYmVycwotICAgdXNlZCBieSB0 aGUgb3BlcmF0b3IgY2xhc3MuCisgICB1c2VkIGJ5IHRoZSBvcGVyYXRvciBjbGFzcy4gIFRo aXMgbGV0cyB0aGUgY29yZSBjb2RlIGxvb2sgdXAgb3BlcmF0b3JzIGZvcgorICAgdGVtcG9y YWwgY29uc3RyYWludCBpbmRleGVzLgogIDwvcGFyYT4KIAogIDx2YXJpYWJsZWxpc3Q+CkBA IC0xMTc5LDYgKzExODAsMTcgQEAgbXlfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykK ICAgICAgICBvcGVyYXRvciBjbGFzcyBoYXMgbm8gbWF0Y2hpbmcgc3RyYXRlZ3kuCiAgICAg ICA8L3BhcmE+CiAKKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgaXMgdXNlZCBmb3IgdGVt cG9yYWwgaW5kZXggY29uc3RyYWludHMgKGkuZS4sIDxsaXRlcmFsPlBSSU1BUlkKKyAgICAg ICBLRVk8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5VTklRVUU8L2xpdGVyYWw+KS4gIElmIHRo ZSBvcGVyYXRvciBjbGFzcworICAgICAgIHByb3ZpZGVzIHRoaXMgZnVuY3Rpb24gYW5kIGl0 IHJldHVybnMgcmVzdWx0cyBmb3IKKyAgICAgICA8bGl0ZXJhbD5SVEVxdWFsU3RyYXRlZ3lO dW1iZXI8L2xpdGVyYWw+LCBpdCBjYW4gYmUgdXNlZCBpbiB0aGUKKyAgICAgICBub24tPGxp dGVyYWw+V0lUSE9VVCBPVkVSTEFQUzwvbGl0ZXJhbD4gcGFydChzKSBvZiBhbiBpbmRleCBj b25zdHJhaW50LgorICAgICAgIElmIGl0IHJldHVybnMgcmVzdWx0cyBmb3IgPGxpdGVyYWw+ UlRPdmVybGFwU3RyYXRlZ3lOdW1iZXI8L2xpdGVyYWw+LAorICAgICAgIHRoZSBvcGVyYXRv ciBjbGFzcyBjYW4gYmUgdXNlZCBpbiB0aGUgPGxpdGVyYWw+V0lUSE9VVAorICAgICAgIE9W RVJMQVBTPC9saXRlcmFsPiBwYXJ0IG9mIGFuIGluZGV4IGNvbnN0cmFpbnQuCisgICAgICA8 L3BhcmE+CisKICAgICAgIDxwYXJhPgogICAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9u eW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZQogICAgICAg IHRoaXM6CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAppbmRleCBmMTkzMDZlNzc2 MC4uZjJjZGEwYzBlOTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Rh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAt NzcsOCArNzcsOCBAQCBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkg fCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSQogCiBbIENPTlNUUkFJ TlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFpbnRfbmFtZTwvcmVw bGFjZWFibGU+IF0KIHsgQ0hFQ0sgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJTkhFUklUIF0gfAotICBVTklRVUUg WyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAot ICBQUklNQVJZIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CisgIFVOSVFVRSBbIE5V TExTIFsgTk9UIF0gRElTVElOQ1QgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZF UkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0 ZXJzPC9yZXBsYWNlYWJsZT4gfAorICBQUklNQVJZIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IFdJVEhPVVQgT1ZFUkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5p bmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAogICBFWENMVURFIFsgVVNJTkcgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X21ldGhvZDwvcmVwbGFjZWFibGU+ IF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjbHVkZV9lbGVtZW50PC9y ZXBsYWNlYWJsZT4gV0lUSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3BlcmF0 b3I8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gWyBXSEVSRSAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcmVkaWNhdGU8L3JlcGxhY2VhYmxlPiApIF0gfAog ICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBd ICkgXQogICAgIFsgTUFUQ0ggRlVMTCB8IE1BVENIIFBBUlRJQUwgfCBNQVRDSCBTSU1QTEUg XSBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUKQEAgLTk2NCw3ICs5NjQsNyBAQCBXSVRIICgg TU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFs PC9yZXBsYWNlYWJsZT4sIFJFTQogCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl dGFibGUtcGFybXMtdW5pcXVlIj4KICAgICA8dGVybT48bGl0ZXJhbD5VTklRVUUgWyBOVUxM UyBbIE5PVCBdIERJU1RJTkNUIF08L2xpdGVyYWw+IChjb2x1bW4gY29uc3RyYWludCk8L3Rl cm0+Ci0gICAgPHRlcm0+PGxpdGVyYWw+VU5JUVVFIFsgTlVMTFMgWyBOT1QgXSBESVNUSU5D VCBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uIF0gKTwvbGl0ZXJhbD4KKyAgICA8dGVybT48bGl0ZXJhbD5VTklR VUUgWyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBXSVRI T1VUIE9WRVJMQVBTIF0gKTwvbGl0ZXJhbD4KICAgICA8b3B0aW9uYWw+IDxsaXRlcmFsPklO Q0xVREUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi5dKTwvbGl0ZXJhbD4gPC9vcHRpb25hbD4gKHRhYmxlIGNvbnN0 cmFpbnQpPC90ZXJtPgogCiAgICAgPGxpc3RpdGVtPgpAQCAtOTc4LDYgKzk3OCwzMCBAQCBX SVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19s aXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgb2YgdGhlc2UgY29sdW1ucy4KICAg ICAgPC9wYXJhPgogCisgICAgIDxwYXJhPgorICAgICAgSWYgdGhlIDxsaXRlcmFsPldJVEhP VVQgT1ZFUkxBUFM8L2xpdGVyYWw+IG9wdGlvbiBpcyBzcGVjaWZpZWQgZm9yIHRoZQorICAg ICAgbGFzdCBjb2x1bW4sIHRoZW4gdGhhdCBjb2x1bW4gaXMgY2hlY2tlZCBmb3Igb3Zlcmxh cHMgaW5zdGVhZCBvZgorICAgICAgZXF1YWxpdHkuICBJbiB0aGF0IGNhc2UsIHRoZSBvdGhl ciBjb2x1bW5zIG9mIHRoZSBjb25zdHJhaW50IHdpbGwgYWxsb3cKKyAgICAgIGR1cGxpY2F0 ZXMgc28gbG9uZyBhcyB0aGUgZHVwbGljYXRlcyBkb24ndCBvdmVybGFwIGluIHRoZQorICAg ICAgPGxpdGVyYWw+V0lUSE9VVCBPVkVSTEFQUzwvbGl0ZXJhbD4gY29sdW1uLiAgKFRoaXMg aXMgc29tZXRpbWVzIGNhbGxlZCBhCisgICAgICB0ZW1wb3JhbCBrZXksIGlmIHRoZSBjb2x1 bW4gaXMgYSByYW5nZSBvZiBkYXRlcyBvciB0aW1lc3RhbXBzLCBidXQKKyAgICAgIFBvc3Rn cmVTUUwgYWxsb3dzIHJhbmdlcyBvdmVyIGFueSBiYXNlIHR5cGUuKSAgSW4gZWZmZWN0LCBz dWNoIGEKKyAgICAgIGNvbnN0cmFpbnQgaXMgZW5mb3JjZWQgd2l0aCBhbiA8bGl0ZXJhbD5F WENMVURFPC9saXRlcmFsPiBjb25zdHJhaW50CisgICAgICByYXRoZXIgdGhhbiBhIDxsaXRl cmFsPlVOSVFVRTwvbGl0ZXJhbD4gY29uc3RyYWludC4gIFNvIGZvciBleGFtcGxlCisgICAg ICA8bGl0ZXJhbD5VTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTwvbGl0 ZXJhbD4gYmVoYXZlcyBsaWtlCisgICAgICA8bGl0ZXJhbD5FWENMVURFIFVTSU5HIEdJU1Qg KGlkIFdJVEggPSwgdmFsaWRfYXQgV0lUSAorICAgICAgJmFtcDsmYW1wOyk8L2xpdGVyYWw+ LiAgVGhlIDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+IGNvbHVtbgorICAg ICAgbXVzdCBoYXZlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlLiAgKFRlY2huaWNhbGx5 LCBhbnkgdHlwZSBpcyBhbGxvd2VkCisgICAgICB3aG9zZSBkZWZhdWx0IEdpU1Qgb3BjbGFz cyBpbmNsdWRlcyBhbiBvdmVybGFwcyBvcGVyYXRvci4gIFNlZSB0aGUKKyAgICAgIDxsaXRl cmFsPnN0cmF0bnVtPC9saXRlcmFsPiBzdXBwb3J0IGZ1bmN0aW9uIHVuZGVyIDx4cmVmCisg ICAgICBsaW5rZW5kPSJnaXN0LWV4dGVuc2liaWxpdHkiLz4gZm9yIGRldGFpbHMuKSAgVGhl IG5vbi08bGl0ZXJhbD5XSVRIT1VUCisgICAgICBPVkVSTEFQUzwvbGl0ZXJhbD4gY29sdW1u cyBvZiB0aGUgY29uc3RyYWludCBjYW4gYmUgYW55IHR5cGUgdGhhdCBjYW4gYmUKKyAgICAg IGNvbXBhcmVkIGZvciBlcXVhbGl0eSBpbiBhIEdpU1QgaW5kZXguICBCeSBkZWZhdWx0LCBv bmx5IHJhbmdlIHR5cGVzIGFyZQorICAgICAgc3VwcG9ydGVkLCBidXQgeW91IGNhbiB1c2Ug b3RoZXIgdHlwZXMgYnkgYWRkaW5nIHRoZSA8eHJlZgorICAgICAgbGlua2VuZD0iYnRyZWUt Z2lzdCIvPiBleHRlbnNpb24gKHdoaWNoIGlzIHRoZSBleHBlY3RlZCB3YXkgdG8gdXNlIHRo aXMKKyAgICAgIGZlYXR1cmUpLgorICAgICA8L3BhcmE+CisKICAgICAgPHBhcmE+CiAgICAg ICBGb3IgdGhlIHB1cnBvc2Ugb2YgYSB1bmlxdWUgY29uc3RyYWludCwgbnVsbCB2YWx1ZXMg YXJlIG5vdAogICAgICAgY29uc2lkZXJlZCBlcXVhbCwgdW5sZXNzIDxsaXRlcmFsPk5VTExT IE5PVCBESVNUSU5DVDwvbGl0ZXJhbD4gaXMKQEAgLTEwMDAsOCArMTAyNCwxMCBAQCBXSVRI ICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRl cmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogCiAgICAgIDxwYXJhPgogICAgICAgQWRkaW5nIGEg dW5pcXVlIGNvbnN0cmFpbnQgd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIHVuaXF1ZSBi dHJlZQotICAgICAgaW5kZXggb24gdGhlIGNvbHVtbiBvciBncm91cCBvZiBjb2x1bW5zIHVz ZWQgaW4gdGhlIGNvbnN0cmFpbnQuICBUaGUKLSAgICAgIGNyZWF0ZWQgaW5kZXggaGFzIHRo ZSBzYW1lIG5hbWUgYXMgdGhlIHVuaXF1ZSBjb25zdHJhaW50LgorICAgICAgaW5kZXggb24g dGhlIGNvbHVtbiBvciBncm91cCBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGNvbnN0cmFpbnQu ICBCdXQgaWYKKyAgICAgIHRoZSBjb25zdHJhaW50IGluY2x1ZGVzIGEgPGxpdGVyYWw+V0lU SE9VVCBPVkVSTEFQUzwvbGl0ZXJhbD4gY2xhdXNlLCBpdAorICAgICAgd2lsbCB1c2UgYSBH aVNUIGluZGV4LiAgVGhlIGNyZWF0ZWQgaW5kZXggaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhl CisgICAgICB1bmlxdWUgY29uc3RyYWludC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJh PgpAQCAtMTAxOSw3ICsxMDQ1LDcgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KIAog ICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLXByaW1hcnkta2V5 Ij4KICAgICA8dGVybT48bGl0ZXJhbD5QUklNQVJZIEtFWTwvbGl0ZXJhbD4gKGNvbHVtbiBj b25zdHJhaW50KTwvdGVybT4KLSAgICA8dGVybT48bGl0ZXJhbD5QUklNQVJZIEtFWSAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLiBdICk8L2xpdGVyYWw+CisgICAgPHRlcm0+PGxpdGVyYWw+UFJJTUFSWSBLRVkg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiBXSVRIT1VUIE9WRVJMQVBTIF0gKTwvbGl0ZXJhbD4KICAg ICA8b3B0aW9uYWw+IDxsaXRlcmFsPklOQ0xVREUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dKTwvbGl0ZXJhbD4g PC9vcHRpb25hbD4gKHRhYmxlIGNvbnN0cmFpbnQpPC90ZXJtPgogICAgIDxsaXN0aXRlbT4K ICAgICAgPHBhcmE+CkBAIC0xMDU0LDggKzEwODAsOCBAQCBXSVRIICggTU9EVUxVUyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJs ZT4sIFJFTQogICAgICA8cGFyYT4KICAgICAgIEFkZGluZyBhIDxsaXRlcmFsPlBSSU1BUlkg S0VZPC9saXRlcmFsPiBjb25zdHJhaW50IHdpbGwgYXV0b21hdGljYWxseQogICAgICAgY3Jl YXRlIGEgdW5pcXVlIGJ0cmVlIGluZGV4IG9uIHRoZSBjb2x1bW4gb3IgZ3JvdXAgb2YgY29s dW1ucyB1c2VkIGluCi0gICAgICB0aGUgY29uc3RyYWludC4gIFRoYXQgaW5kZXggaGFzIHRo ZSBzYW1lIG5hbWUgYXMgdGhlIHByaW1hcnkga2V5Ci0gICAgICBjb25zdHJhaW50LgorICAg ICAgdGhlIGNvbnN0cmFpbnQsIG9yIEdpU1QgaWYgPGxpdGVyYWw+V0lUSE9VVCBPVkVSTEFQ UzwvbGl0ZXJhbD4gd2FzCisgICAgICBzcGVjaWZpZWQuCiAgICAgIDwvcGFyYT4KIAogICAg ICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGls LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCmluZGV4IDg2ODY3MzVm MjM0Li5kMmQwYjM2ZDRlYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHV0aWwuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCkBA IC0xMDY5LDMgKzEwNjksMzIgQEAgZ2lzdF9zdHJhdG51bV9pZGVudGl0eShQR19GVU5DVElP Tl9BUkdTKQogCiAJUEdfUkVUVVJOX1VJTlQxNihzdHJhdCk7CiB9CisKKy8qCisgKiBSZXR1 cm5zIHRoZSBvcGNsYXNzJ3MgcHJpdmF0ZSBzdHJhdG51bSB1c2VkIGZvciB0aGUgZ2l2ZW4g c3RyYXRlZ3kuCisgKgorICogQ2FsbHMgdGhlIG9wY2xhc3MncyBHSVNUX1NUUkFUTlVNX1BS T0Mgc3VwcG9ydCBmdW5jdGlvbiwgaWYgYW55LAorICogYW5kIHJldHVybnMgdGhlIHJlc3Vs dC4KKyAqIFJldHVybnMgSW52YWxpZFN0cmF0ZWd5IGlmIHRoZSBmdW5jdGlvbiBpcyBub3Qg ZGVmaW5lZC4KKyAqLworU3RyYXRlZ3lOdW1iZXIKK0dpc3RUcmFuc2xhdGVTdHJhdG51bShP aWQgb3BjbGFzcywgU3RyYXRlZ3lOdW1iZXIgc3RyYXQpCit7CisJT2lkCQkJb3BmYW1pbHk7 CisJT2lkCQkJb3BjaW50eXBlOworCU9pZAkJCWZ1bmNpZDsKKwlEYXR1bQkJcmVzdWx0Owor CisJLyogTG9vayB1cCB0aGUgb3BjbGFzcyBmYW1pbHkgYW5kIGlucHV0IGRhdGF0eXBlLiAq LworCWlmICghZ2V0X29wY2xhc3Nfb3BmYW1pbHlfYW5kX2lucHV0X3R5cGUob3BjbGFzcywg Jm9wZmFtaWx5LCAmb3BjaW50eXBlKSkKKwkJcmV0dXJuIEludmFsaWRTdHJhdGVneTsKKwor CS8qIENoZWNrIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIHByb3ZpZGVkLiAqLworCWZ1bmNp ZCA9IGdldF9vcGZhbWlseV9wcm9jKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwg R0lTVF9TVFJBVE5VTV9QUk9DKTsKKwlpZiAoIU9pZElzVmFsaWQoZnVuY2lkKSkKKwkJcmV0 dXJuIEludmFsaWRTdHJhdGVneTsKKworCS8qIEFzayB0aGUgdHJhbnNsYXRpb24gZnVuY3Rp b24gKi8KKwlyZXN1bHQgPSBPaWRGdW5jdGlvbkNhbGwxQ29sbChmdW5jaWQsIEludmFsaWRP aWQsIFVJbnQxNkdldERhdHVtKHN0cmF0KSk7CisJcmV0dXJuIERhdHVtR2V0VUludDE2KHJl c3VsdCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDAwMDc0YzhhOTQ4Li44ZWE3NzY4ZTI0 NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9oZWFwLmMKQEAgLTIxNjMsNiArMjE2Myw3IEBAIFN0b3JlUmVsQ2hl Y2soUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjY25hbWUsIE5vZGUgKmV4cHIsCiAJCQkJ CQkJICBpc19sb2NhbCwgLyogY29uaXNsb2NhbCAqLwogCQkJCQkJCSAgaW5oY291bnQsIC8q IGNvbmluaGNvdW50ICovCiAJCQkJCQkJICBpc19ub19pbmhlcml0LAkvKiBjb25ub2luaGVy aXQgKi8KKwkJCQkJCQkgIGZhbHNlLAkvKiBjb25wZXJpb2QgKi8KIAkJCQkJCQkgIGlzX2lu dGVybmFsKTsgLyogaW50ZXJuYWxseSBjb25zdHJ1Y3RlZD8gKi8KIAogCXBmcmVlKGNjYmlu KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaW5kZXguYwppbmRleCBhODE5YjQxOTdjZS4uNWM0OGU1NzI4ZTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2luZGV4LmMKQEAgLTE4NzQsNiArMTg3NCw3IEBAIGluZGV4X2NvbmN1cnJl bnRseV9zZXRfZGVhZChPaWQgaGVhcElkLCBPaWQgaW5kZXhJZCkKICAqCQlJTkRFWF9DT05T VFJfQ1JFQVRFX1VQREFURV9JTkRFWDogdXBkYXRlIHRoZSBwZ19pbmRleCByb3cKICAqCQlJ TkRFWF9DT05TVFJfQ1JFQVRFX1JFTU9WRV9PTERfREVQUzogcmVtb3ZlIGV4aXN0aW5nIGRl cGVuZGVuY2llcwogICoJCQlvZiBpbmRleCBvbiB0YWJsZSdzIGNvbHVtbnMKKyAqCQlJTkRF WF9DT05TVFJfQ1JFQVRFX1dJVEhPVVRfT1ZFUkxBUFM6IGNvbnN0cmFpbnQgdXNlcyBXSVRI T1VUIE9WRVJMQVBTCiAgKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kczogYWxsb3cgdGFibGUg dG8gYmUgYSBzeXN0ZW0gY2F0YWxvZwogICogaXNfaW50ZXJuYWw6IGluZGV4IGlzIGNvbnN0 cnVjdGVkIGR1ZSB0byBpbnRlcm5hbCBwcm9jZXNzCiAgKi8KQEAgLTE4OTcsMTEgKzE4OTgs MTMgQEAgaW5kZXhfY29uc3RyYWludF9jcmVhdGUoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAog CWJvb2wJCW1hcmtfYXNfcHJpbWFyeTsKIAlib29sCQlpc2xvY2FsOwogCWJvb2wJCW5vaW5o ZXJpdDsKKwlib29sCQlpc193aXRob3V0X292ZXJsYXBzOwogCWludAkJCWluaGNvdW50Owog CiAJZGVmZXJyYWJsZSA9IChjb25zdHJfZmxhZ3MgJiBJTkRFWF9DT05TVFJfQ1JFQVRFX0RF RkVSUkFCTEUpICE9IDA7CiAJaW5pdGRlZmVycmVkID0gKGNvbnN0cl9mbGFncyAmIElOREVY X0NPTlNUUl9DUkVBVEVfSU5JVF9ERUZFUlJFRCkgIT0gMDsKIAltYXJrX2FzX3ByaW1hcnkg PSAoY29uc3RyX2ZsYWdzICYgSU5ERVhfQ09OU1RSX0NSRUFURV9NQVJLX0FTX1BSSU1BUlkp ICE9IDA7CisJaXNfd2l0aG91dF9vdmVybGFwcyA9IChjb25zdHJfZmxhZ3MgJiBJTkRFWF9D T05TVFJfQ1JFQVRFX1dJVEhPVVRfT1ZFUkxBUFMpICE9IDA7CiAKIAkvKiBjb25zdHJhaW50 IGNyZWF0aW9uIHN1cHBvcnQgZG9lc24ndCB3b3JrIHdoaWxlIGJvb3RzdHJhcHBpbmcgKi8K IAlBc3NlcnQoIUlzQm9vdHN0cmFwUHJvY2Vzc2luZ01vZGUoKSk7CkBAIC0xOTc4LDYgKzE5 ODEsNyBAQCBpbmRleF9jb25zdHJhaW50X2NyZWF0ZShSZWxhdGlvbiBoZWFwUmVsYXRpb24s CiAJCQkJCQkJCSAgIGlzbG9jYWwsCiAJCQkJCQkJCSAgIGluaGNvdW50LAogCQkJCQkJCQkg ICBub2luaGVyaXQsCisJCQkJCQkJCSAgIGlzX3dpdGhvdXRfb3ZlcmxhcHMsCiAJCQkJCQkJ CSAgIGlzX2ludGVybmFsKTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWlu dC5jCmluZGV4IDNiYWY5MjMxZWQwLi45YmUwNTBjY2VlOCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19jb25zdHJhaW50LmMKQEAgLTc1LDYgKzc1LDcgQEAgQ3JlYXRlQ29uc3RyYWludEVu dHJ5KGNvbnN0IGNoYXIgKmNvbnN0cmFpbnROYW1lLAogCQkJCQkgIGJvb2wgY29uSXNMb2Nh bCwKIAkJCQkJICBpbnQgY29uSW5oQ291bnQsCiAJCQkJCSAgYm9vbCBjb25Ob0luaGVyaXQs CisJCQkJCSAgYm9vbCBjb25QZXJpb2QsCiAJCQkJCSAgYm9vbCBpc19pbnRlcm5hbCkKIHsK IAlSZWxhdGlvbgljb25EZXNjOwpAQCAtMTkwLDYgKzE5MSw3IEBAIENyZWF0ZUNvbnN0cmFp bnRFbnRyeShjb25zdCBjaGFyICpjb25zdHJhaW50TmFtZSwKIAl2YWx1ZXNbQW51bV9wZ19j b25zdHJhaW50X2NvbmlzbG9jYWwgLSAxXSA9IEJvb2xHZXREYXR1bShjb25Jc0xvY2FsKTsK IAl2YWx1ZXNbQW51bV9wZ19jb25zdHJhaW50X2NvbmluaGNvdW50IC0gMV0gPSBJbnQxNkdl dERhdHVtKGNvbkluaENvdW50KTsKIAl2YWx1ZXNbQW51bV9wZ19jb25zdHJhaW50X2Nvbm5v aW5oZXJpdCAtIDFdID0gQm9vbEdldERhdHVtKGNvbk5vSW5oZXJpdCk7CisJdmFsdWVzW0Fu dW1fcGdfY29uc3RyYWludF9jb25wZXJpb2QgLSAxXSA9IEJvb2xHZXREYXR1bShjb25QZXJp b2QpOwogCiAJaWYgKGNvbmtleUFycmF5KQogCQl2YWx1ZXNbQW51bV9wZ19jb25zdHJhaW50 X2NvbmtleSAtIDFdID0gUG9pbnRlckdldERhdHVtKGNvbmtleUFycmF5KTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggYzVhNTZjNzVmNjkuLjQ3ZTEzOWIzODI4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUg InBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvYW1hcGkuaCIKKyNpbmNsdWRlICJh Y2Nlc3MvZ2lzdC5oIgogI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKICNpbmNsdWRlICJh Y2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3JlbG9wdGlvbnMuaCIK QEAgLTg3LDYgKzg4LDcgQEAgc3RhdGljIHZvaWQgQ29tcHV0ZUluZGV4QXR0cnMoSW5kZXhJ bmZvICppbmRleEluZm8sCiAJCQkJCQkJICBPaWQgYWNjZXNzTWV0aG9kSWQsCiAJCQkJCQkJ ICBib29sIGFtY2Fub3JkZXIsCiAJCQkJCQkJICBib29sIGlzY29uc3RyYWludCwKKwkJCQkJ CQkgIGJvb2wgaXN3aXRob3V0b3ZlcmxhcHMsCiAJCQkJCQkJICBPaWQgZGRsX3VzZXJpZCwK IAkJCQkJCQkgIGludCBkZGxfc2VjX2NvbnRleHQsCiAJCQkJCQkJICBpbnQgKmRkbF9zYXZl X25lc3RsZXZlbCk7CkBAIC0xNDUsNiArMTQ3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVpbmRl eEVycm9ySW5mbwogICoJCXRvIGluZGV4IG9uLgogICogJ2V4Y2x1c2lvbk9wTmFtZXMnOiBs aXN0IG9mIG5hbWVzIG9mIGV4Y2x1c2lvbi1jb25zdHJhaW50IG9wZXJhdG9ycywKICAqCQlv ciBOSUwgaWYgbm90IGFuIGV4Y2x1c2lvbiBjb25zdHJhaW50LgorICogJ2lzV2l0aG91dE92 ZXJsYXBzJzogdHJ1ZSBpZmYgdGhpcyBpbmRleCBoYXMgYSBXSVRIT1VUIE9WRVJMQVBTIGNs YXVzZS4KICAqCiAgKiBUaGlzIGlzIHRhaWxvcmVkIHRvIHRoZSBuZWVkcyBvZiBBTFRFUiBU QUJMRSBBTFRFUiBUWVBFLCB3aGljaCByZWNyZWF0ZXMKICAqIGFueSBpbmRleGVzIHRoYXQg ZGVwZW5kZWQgb24gYSBjaGFuZ2luZyBjb2x1bW4gZnJvbSB0aGVpciBwZ19nZXRfaW5kZXhk ZWYKQEAgLTE3NCw3ICsxNzcsOCBAQCBib29sCiBDaGVja0luZGV4Q29tcGF0aWJsZShPaWQg b2xkSWQsCiAJCQkJCSBjb25zdCBjaGFyICphY2Nlc3NNZXRob2ROYW1lLAogCQkJCQkgY29u c3QgTGlzdCAqYXR0cmlidXRlTGlzdCwKLQkJCQkJIGNvbnN0IExpc3QgKmV4Y2x1c2lvbk9w TmFtZXMpCisJCQkJCSBjb25zdCBMaXN0ICpleGNsdXNpb25PcE5hbWVzLAorCQkJCQkgYm9v bCBpc1dpdGhvdXRPdmVybGFwcykKIHsKIAlib29sCQlpc2NvbnN0cmFpbnQ7CiAJT2lkCQkg ICAqdHlwZUlkczsKQEAgLTI0OSw4ICsyNTMsOCBAQCBDaGVja0luZGV4Q29tcGF0aWJsZShP aWQgb2xkSWQsCiAJCQkJCSAgY29sb3B0aW9ucywgYXR0cmlidXRlTGlzdCwKIAkJCQkJICBl eGNsdXNpb25PcE5hbWVzLCByZWxhdGlvbklkLAogCQkJCQkgIGFjY2Vzc01ldGhvZE5hbWUs IGFjY2Vzc01ldGhvZElkLAotCQkJCQkgIGFtY2Fub3JkZXIsIGlzY29uc3RyYWludCwgSW52 YWxpZE9pZCwgMCwgTlVMTCk7Ci0KKwkJCQkJICBhbWNhbm9yZGVyLCBpc2NvbnN0cmFpbnQs IGlzV2l0aG91dE92ZXJsYXBzLCBJbnZhbGlkT2lkLAorCQkJCQkgIDAsIE5VTEwpOwogCiAJ LyogR2V0IHRoZSBzb29uLW9ic29sZXRlIHBnX2luZGV4IHR1cGxlLiAqLwogCXR1cGxlID0g U2VhcmNoU3lzQ2FjaGUxKElOREVYUkVMSUQsIE9iamVjdElkR2V0RGF0dW0ob2xkSWQpKTsK QEAgLTU2MCw2ICs1NjQsNyBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAlib29sCQlh bWNhbm9yZGVyOwogCWJvb2wJCWFtaXNzdW1tYXJpemluZzsKIAlhbW9wdGlvbnNfZnVuY3Rp b24gYW1vcHRpb25zOworCWJvb2wJCWV4Y2x1c2lvbjsKIAlib29sCQlwYXJ0aXRpb25lZDsK IAlib29sCQlzYWZlX2luZGV4OwogCURhdHVtCQlyZWxvcHRpb25zOwpAQCAtNjgwLDYgKzY4 NSwxMiBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAogCW5hbWVzcGFjZUlkID0gUmVs YXRpb25HZXROYW1lc3BhY2UocmVsKTsKIAorCS8qCisJICogSXQgaGFzIGV4Y2x1c2lvbiBj b25zdHJhaW50IGJlaGF2aW9yIGlmIGl0J3MgYW4gRVhDTFVERSBjb25zdHJhaW50IG9yIGEK KwkgKiB0ZW1wb3JhbCBQUklNQVJZIEtFWS9VTklRVUUgY29uc3RyYWludAorCSAqLworCWV4 Y2x1c2lvbiA9IHN0bXQtPmV4Y2x1ZGVPcE5hbWVzIHx8IHN0bXQtPmlzd2l0aG91dG92ZXJs YXBzOworCiAJLyogRW5zdXJlIHRoYXQgaXQgbWFrZXMgc2Vuc2UgdG8gaW5kZXggdGhpcyBr aW5kIG9mIHJlbGF0aW9uICovCiAJc3dpdGNoIChyZWwtPnJkX3JlbC0+cmVsa2luZCkKIAl7 CkBAIC04NDgsNyArODU5LDcgQEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJcGdzdGF0 X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19DUkVBVEVJRFhfQUNDRVNTX01FVEhP RF9PSUQsCiAJCQkJCQkJCSBhY2Nlc3NNZXRob2RJZCk7CiAKLQlpZiAoc3RtdC0+dW5pcXVl ICYmICFhbVJvdXRpbmUtPmFtY2FudW5pcXVlKQorCWlmIChzdG10LT51bmlxdWUgJiYgIXN0 bXQtPmlzd2l0aG91dG92ZXJsYXBzICYmICFhbVJvdXRpbmUtPmFtY2FudW5pcXVlKQogCQll cmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKIAkJCQkgZXJybXNnKCJhY2Nlc3MgbWV0aG9kIFwiJXNcIiBkb2VzIG5vdCBzdXBw b3J0IHVuaXF1ZSBpbmRleGVzIiwKQEAgLTg2Myw3ICs4NzQsNyBAQCBEZWZpbmVJbmRleChP aWQgdGFibGVJZCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCiAJCQkJIGVycm1zZygiYWNjZXNzIG1ldGhvZCBcIiVzXCIgZG9lcyBub3Qgc3VwcG9y dCBtdWx0aWNvbHVtbiBpbmRleGVzIiwKIAkJCQkJCWFjY2Vzc01ldGhvZE5hbWUpKSk7Ci0J aWYgKHN0bXQtPmV4Y2x1ZGVPcE5hbWVzICYmIGFtUm91dGluZS0+YW1nZXR0dXBsZSA9PSBO VUxMKQorCWlmIChleGNsdXNpb24gJiYgYW1Sb3V0aW5lLT5hbWdldHR1cGxlID09IE5VTEwp CiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAogCQkJCSBlcnJtc2coImFjY2VzcyBtZXRob2QgXCIlc1wiIGRvZXMgbm90 IHN1cHBvcnQgZXhjbHVzaW9uIGNvbnN0cmFpbnRzIiwKQEAgLTkxNiw4ICs5MjcsOSBAQCBE ZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkJCQkJICBjb2xvcHRpb25zLCBhbGxJbmRleFBh cmFtcywKIAkJCQkJICBzdG10LT5leGNsdWRlT3BOYW1lcywgdGFibGVJZCwKIAkJCQkJICBh Y2Nlc3NNZXRob2ROYW1lLCBhY2Nlc3NNZXRob2RJZCwKLQkJCQkJICBhbWNhbm9yZGVyLCBz dG10LT5pc2NvbnN0cmFpbnQsIHJvb3Rfc2F2ZV91c2VyaWQsCi0JCQkJCSAgcm9vdF9zYXZl X3NlY19jb250ZXh0LCAmcm9vdF9zYXZlX25lc3RsZXZlbCk7CisJCQkJCSAgYW1jYW5vcmRl ciwgc3RtdC0+aXNjb25zdHJhaW50LCBzdG10LT5pc3dpdGhvdXRvdmVybGFwcywKKwkJCQkJ ICByb290X3NhdmVfdXNlcmlkLCByb290X3NhdmVfc2VjX2NvbnRleHQsCisJCQkJCSAgJnJv b3Rfc2F2ZV9uZXN0bGV2ZWwpOwogCiAJLyoKIAkgKiBFeHRyYSBjaGVja3Mgd2hlbiBjcmVh dGluZyBhIFBSSU1BUlkgS0VZIGluZGV4LgpAQCAtOTM1LDcgKzk0Nyw3IEBAIERlZmluZUlu ZGV4KE9pZCB0YWJsZUlkLAogCSAqIFdlIGNvdWxkIGxpZnQgdGhpcyBsaW1pdGF0aW9uIGlm IHdlIGhhZCBnbG9iYWwgaW5kZXhlcywgYnV0IHRob3NlIGhhdmUKIAkgKiB0aGVpciBvd24g cHJvYmxlbXMsIHNvIHRoaXMgaXMgYSB1c2VmdWwgZmVhdHVyZSBjb21iaW5hdGlvbi4KIAkg Ki8KLQlpZiAocGFydGl0aW9uZWQgJiYgKHN0bXQtPnVuaXF1ZSB8fCBzdG10LT5leGNsdWRl T3BOYW1lcykpCisJaWYgKHBhcnRpdGlvbmVkICYmIChzdG10LT51bmlxdWUgfHwgZXhjbHVz aW9uKSkKIAl7CiAJCVBhcnRpdGlvbktleSBrZXkgPSBSZWxhdGlvbkdldFBhcnRpdGlvbktl eShyZWwpOwogCQljb25zdCBjaGFyICpjb25zdHJhaW50X3R5cGU7CkBAIC05ODksMTAgKzEw MDEsMTAgQEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJCQkgKiBhc3NvY2lhdGVkIHdp dGggaW5kZXggY29sdW1ucywgdG9vLiAgV2Uga25vdyB3aGF0IHRvIGRvIHdpdGgKIAkJCSAq IGJ0cmVlIG9wY2xhc3NlczsgaWYgdGhlcmUgYXJlIGV2ZXIgYW55IG90aGVyIGluZGV4IHR5 cGVzIHRoYXQKIAkJCSAqIHN1cHBvcnQgdW5pcXVlIGluZGV4ZXMsIHRoaXMgbG9naWMgd2ls bCBuZWVkIGV4dGVuc2lvbi4gQnV0IGlmCi0JCQkgKiB3ZSBoYXZlIGFuIGV4Y2x1c2lvbiBj b25zdHJhaW50LCBpdCBhbHJlYWR5IGtub3dzIHRoZQotCQkJICogb3BlcmF0b3JzLCBzbyB3 ZSBkb24ndCBoYXZlIHRvIGluZmVyIHRoZW0uCisJCQkgKiB3ZSBoYXZlIGFuIGV4Y2x1c2lv biBjb25zdHJhaW50IChvciBhIHRlbXBvcmFsIFBLKSwgaXQgYWxyZWFkeQorCQkJICoga25v d3MgdGhlIG9wZXJhdG9ycywgc28gd2UgZG9uJ3QgaGF2ZSB0byBpbmZlciB0aGVtLgogCQkJ ICovCi0JCQlpZiAoc3RtdC0+dW5pcXVlICYmIGFjY2Vzc01ldGhvZElkICE9IEJUUkVFX0FN X09JRCkKKwkJCWlmIChzdG10LT51bmlxdWUgJiYgIXN0bXQtPmlzd2l0aG91dG92ZXJsYXBz ICYmIGFjY2Vzc01ldGhvZElkICE9IEJUUkVFX0FNX09JRCkKIAkJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJ CQkJIGVycm1zZygiY2Fubm90IG1hdGNoIHBhcnRpdGlvbiBrZXkgdG8gYW4gaW5kZXggdXNp bmcgYWNjZXNzIG1ldGhvZCBcIiVzXCIiLApAQCAtMTAzMSwxMiArMTA0MywxMiBAQCBEZWZp bmVJbmRleChPaWQgdGFibGVJZCwKIAkJCQkJewogCQkJCQkJT2lkCQkJaWR4X2Vxb3AgPSBJ bnZhbGlkT2lkOwogCi0JCQkJCQlpZiAoc3RtdC0+dW5pcXVlKQorCQkJCQkJaWYgKHN0bXQt PnVuaXF1ZSAmJiAhc3RtdC0+aXN3aXRob3V0b3ZlcmxhcHMpCiAJCQkJCQkJaWR4X2Vxb3Ag PSBnZXRfb3BmYW1pbHlfbWVtYmVyKGlkeF9vcGZhbWlseSwKIAkJCQkJCQkJCQkJCQkJICAg aWR4X29wY2ludHlwZSwKIAkJCQkJCQkJCQkJCQkJICAgaWR4X29wY2ludHlwZSwKIAkJCQkJ CQkJCQkJCQkJICAgQlRFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKLQkJCQkJCWVsc2UgaWYgKHN0 bXQtPmV4Y2x1ZGVPcE5hbWVzKQorCQkJCQkJZWxzZSBpZiAoZXhjbHVzaW9uKQogCQkJCQkJ CWlkeF9lcW9wID0gaW5kZXhJbmZvLT5paV9FeGNsdXNpb25PcHNbal07CiAJCQkJCQlBc3Nl cnQoaWR4X2Vxb3ApOwogCkBAIC0xMDQ1LDcgKzEwNTcsNyBAQCBEZWZpbmVJbmRleChPaWQg dGFibGVJZCwKIAkJCQkJCQlmb3VuZCA9IHRydWU7CiAJCQkJCQkJYnJlYWs7CiAJCQkJCQl9 Ci0JCQkJCQllbHNlIGlmIChzdG10LT5leGNsdWRlT3BOYW1lcykKKwkJCQkJCWVsc2UgaWYg KGV4Y2x1c2lvbikKIAkJCQkJCXsKIAkJCQkJCQkvKgogCQkJCQkJCSAqIFdlIGZvdW5kIGEg bWF0Y2gsIGJ1dCBpdCdzIG5vdCBhbiBlcXVhbGl0eQpAQCAtMTE4OSw2ICsxMjAxLDggQEAg RGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJCWNvbnN0cl9mbGFncyB8PSBJTkRFWF9DT05T VFJfQ1JFQVRFX0RFRkVSUkFCTEU7CiAJaWYgKHN0bXQtPmluaXRkZWZlcnJlZCkKIAkJY29u c3RyX2ZsYWdzIHw9IElOREVYX0NPTlNUUl9DUkVBVEVfSU5JVF9ERUZFUlJFRDsKKwlpZiAo c3RtdC0+aXN3aXRob3V0b3ZlcmxhcHMpCisJCWNvbnN0cl9mbGFncyB8PSBJTkRFWF9DT05T VFJfQ1JFQVRFX1dJVEhPVVRfT1ZFUkxBUFM7CiAKIAlpbmRleFJlbGF0aW9uSWQgPQogCQlp bmRleF9jcmVhdGUocmVsLCBpbmRleFJlbGF0aW9uTmFtZSwgaW5kZXhSZWxhdGlvbklkLCBw YXJlbnRJbmRleElkLApAQCAtMTg1NSw2ICsxODY5LDcgQEAgQ29tcHV0ZUluZGV4QXR0cnMo SW5kZXhJbmZvICppbmRleEluZm8sCiAJCQkJICBPaWQgYWNjZXNzTWV0aG9kSWQsCiAJCQkJ ICBib29sIGFtY2Fub3JkZXIsCiAJCQkJICBib29sIGlzY29uc3RyYWludCwKKwkJCQkgIGJv b2wgaXN3aXRob3V0b3ZlcmxhcHMsCiAJCQkJICBPaWQgZGRsX3VzZXJpZCwKIAkJCQkgIGlu dCBkZGxfc2VjX2NvbnRleHQsCiAJCQkJICBpbnQgKmRkbF9zYXZlX25lc3RsZXZlbCkKQEAg LTE4NzgsNiArMTg5MywxNCBAQCBDb21wdXRlSW5kZXhBdHRycyhJbmRleEluZm8gKmluZGV4 SW5mbywKIAllbHNlCiAJCW5leHRFeGNsT3AgPSBOVUxMOwogCisJLyogZXhjbHVzaW9uT3BO YW1lcyBjYW4gYmUgbm9uLU5JTCBpZiB3ZSBhcmUgY3JlYXRpbmcgYSBwYXJ0aXRpb24gKi8K KwlpZiAoaXN3aXRob3V0b3ZlcmxhcHMgJiYgZXhjbHVzaW9uT3BOYW1lcyA9PSBOSUwpCisJ eworCQlpbmRleEluZm8tPmlpX0V4Y2x1c2lvbk9wcyA9IHBhbGxvY19hcnJheShPaWQsIG5r ZXljb2xzKTsKKwkJaW5kZXhJbmZvLT5paV9FeGNsdXNpb25Qcm9jcyA9IHBhbGxvY19hcnJh eShPaWQsIG5rZXljb2xzKTsKKwkJaW5kZXhJbmZvLT5paV9FeGNsdXNpb25TdHJhdHMgPSBw YWxsb2NfYXJyYXkodWludDE2LCBua2V5Y29scyk7CisJfQorCiAJaWYgKE9pZElzVmFsaWQo ZGRsX3VzZXJpZCkpCiAJCUdldFVzZXJJZEFuZFNlY0NvbnRleHQoJnNhdmVfdXNlcmlkLCAm c2F2ZV9zZWNfY29udGV4dCk7CiAKQEAgLTIxNTcsNiArMjE4MCwyMSBAQCBDb21wdXRlSW5k ZXhBdHRycyhJbmRleEluZm8gKmluZGV4SW5mbywKIAkJCWluZGV4SW5mby0+aWlfRXhjbHVz aW9uU3RyYXRzW2F0dG5dID0gc3RyYXQ7CiAJCQluZXh0RXhjbE9wID0gbG5leHQoZXhjbHVz aW9uT3BOYW1lcywgbmV4dEV4Y2xPcCk7CiAJCX0KKwkJZWxzZSBpZiAoaXN3aXRob3V0b3Zl cmxhcHMpCisJCXsKKwkJCVN0cmF0ZWd5TnVtYmVyIHN0cmF0OworCQkJT2lkCQkJb3BpZDsK KworCQkJaWYgKGF0dG4gPT0gbmtleWNvbHMgLSAxKQorCQkJCXN0cmF0ID0gUlRPdmVybGFw U3RyYXRlZ3lOdW1iZXI7CisJCQllbHNlCisJCQkJc3RyYXQgPSBSVEVxdWFsU3RyYXRlZ3lO dW1iZXI7CisJCQlHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShvcGNsYXNzT2lk c1thdHRuXSwgYXR0dHlwZSwKKwkJCQkJCQkJCQkJICZvcGlkLCAmc3RyYXQpOworCQkJaW5k ZXhJbmZvLT5paV9FeGNsdXNpb25PcHNbYXR0bl0gPSBvcGlkOworCQkJaW5kZXhJbmZvLT5p aV9FeGNsdXNpb25Qcm9jc1thdHRuXSA9IGdldF9vcGNvZGUob3BpZCk7CisJCQlpbmRleElu Zm8tPmlpX0V4Y2x1c2lvblN0cmF0c1thdHRuXSA9IHN0cmF0OworCQl9CiAKIAkJLyoKIAkJ ICogU2V0IHVwIHRoZSBwZXItY29sdW1uIG9wdGlvbnMgKGluZG9wdGlvbiBmaWVsZCkuICBG b3Igbm93LCB0aGlzIGlzCkBAIC0yMzg3LDYgKzI0MjUsODMgQEAgR2V0RGVmYXVsdE9wQ2xh c3MoT2lkIHR5cGVfaWQsIE9pZCBhbV9pZCkKIAlyZXR1cm4gSW52YWxpZE9pZDsKIH0KIAor LyoKKyAqIEdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5CisgKgorICogb3BjbGFz cyAtIHRoZSBvcGNsYXNzIHRvIHVzZQorICogYXR0dHlwZSAtIHRoZSB0eXBlIHRvIGFzayBh Ym91dAorICogb3BpZCAtIGhvbGRzIHRoZSBvcGVyYXRvciB3ZSBmb3VuZAorICogc3RyYXQg LSBob2xkcyB0aGUgaW5wdXQgYW5kIG91dHB1dCBzdHJhdGVneSBudW1iZXIKKyAqCisgKiBG aW5kcyBhbiBvcGVyYXRvciBmcm9tIGEgIndlbGwta25vd24iIHN0cmF0ZWd5IG51bWJlci4g IFRoaXMgaXMgdXNlZCBmb3IKKyAqIHRlbXBvcmFsIGluZGV4IGNvbnN0cmFpbnRzIChhbmQg b3RoZXIgdGVtcG9yYWwgZmVhdHVyZXMpIHRvIGxvb2sgdXAKKyAqIGVxdWFsaXR5IGFuZCBv dmVybGFwcyBvcGVyYXRvcnMsIHNpbmNlIHRoZSBzdHJhdGVneSBudW1iZXJzIGZvciBub24t YnRyZWUKKyAqIGluZGV4YW1zIG5lZWQgbm90IGZvbGxvdyBhbnkgZml4ZWQgc2NoZW1lLiAg V2UgYXNrIGFuIG9wY2xhc3Mgc3VwcG9ydAorICogZnVuY3Rpb24gdG8gdHJhbnNsYXRlIGZy b20gdGhlIHdlbGwta25vd24gbnVtYmVyIHRvIHRoZSBpbnRlcm5hbCB2YWx1ZS4gIElmCisg KiB0aGUgZnVuY3Rpb24gaXNuJ3QgZGVmaW5lZCBvciBpdCBnaXZlcyBubyByZXN1bHQsIHdl IHJldHVybgorICogSW52YWxpZFN0cmF0ZWd5LgorICovCit2b2lkCitHZXRPcGVyYXRvckZy b21XZWxsS25vd25TdHJhdGVneShPaWQgb3BjbGFzcywgT2lkIGF0dHR5cGUsCisJCQkJCQkJ CSBPaWQgKm9waWQsIFN0cmF0ZWd5TnVtYmVyICpzdHJhdCkKK3sKKwlPaWQJCQlvcGZhbWls eTsKKwlPaWQJCQlvcGNpbnR5cGU7CisJU3RyYXRlZ3lOdW1iZXIgaW5zdHJhdCA9ICpzdHJh dDsKKworCUFzc2VydChpbnN0cmF0ID09IFJURXF1YWxTdHJhdGVneU51bWJlciB8fCBpbnN0 cmF0ID09IFJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyKTsKKworCSpvcGlkID0gSW52YWxpZE9p ZDsKKworCWlmIChnZXRfb3BjbGFzc19vcGZhbWlseV9hbmRfaW5wdXRfdHlwZShvcGNsYXNz LCAmb3BmYW1pbHksICZvcGNpbnR5cGUpKQorCXsKKwkJLyoKKwkJICogQXNrIHRoZSBvcGNs YXNzIHRvIHRyYW5zbGF0ZSB0byBpdHMgaW50ZXJuYWwgc3RyYXRudW0KKwkJICoKKwkJICog Rm9yIG5vdyB3ZSBvbmx5IG5lZWQgR2lTVCBzdXBwb3J0LCBidXQgdGhpcyBjb3VsZCBzdXBw b3J0IG90aGVyCisJCSAqIGluZGV4YW1zIGlmIHdlIHdhbnRlZC4KKwkJICovCisJCSpzdHJh dCA9IEdpc3RUcmFuc2xhdGVTdHJhdG51bShvcGNsYXNzLCBpbnN0cmF0KTsKKwkJaWYgKCpz dHJhdCA9PSBJbnZhbGlkU3RyYXRlZ3kpCisJCXsKKwkJCUhlYXBUdXBsZQl0dXBsZTsKKwor CQkJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoQ0xBT0lELCBPYmplY3RJZEdldERhdHVtKG9w Y2xhc3MpKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCQkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIG9wZXJhdG9yIGNsYXNzICV1Iiwgb3Bj bGFzcyk7CisKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfT0JKRUNUKSwKKwkJCQkJaW5zdHJhdCA9PSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXIg PworCQkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBlcXVhbGl0eSBvcGVyYXRv ciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKGF0dHR5cGUpKSA6CisJCQkJCWVycm1z ZygiY291bGQgbm90IGlkZW50aWZ5IGFuIG92ZXJsYXBzIG9wZXJhdG9yIGZvciB0eXBlICVz IiwgZm9ybWF0X3R5cGVfYmUoYXR0dHlwZSkpLAorCQkJCQllcnJkZXRhaWwoIkNvdWxkIG5v dCB0cmFuc2xhdGUgc3RyYXRlZ3kgbnVtYmVyICVkIGZvciBvcGVyYXRvciBjbGFzcyBcIiVz XCIgZm9yIGFjY2VzcyBtZXRob2QgXCIlc1wiLiIsCisJCQkJCQkJICBpbnN0cmF0LCBOYW1l U3RyKCgoRm9ybV9wZ19vcGNsYXNzKSBHRVRTVFJVQ1QodHVwbGUpKS0+b3BjbmFtZSksICJn aXN0IikpOworCisJCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCQl9CisKKwkJKm9waWQg PSBnZXRfb3BmYW1pbHlfbWVtYmVyKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwg KnN0cmF0KTsKKwl9CisKKwlpZiAoIU9pZElzVmFsaWQoKm9waWQpKQorCXsKKwkJSGVhcFR1 cGxlCXR1cGxlOworCisJCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKE9QRkFNSUxZT0lELCBP YmplY3RJZEdldERhdHVtKG9wZmFtaWx5KSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXBsZSkpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igb3BlcmF0 b3IgZmFtaWx5ICV1Iiwgb3BmYW1pbHkpOworCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCWluc3RyYXQgPT0gUlRFcXVh bFN0cmF0ZWd5TnVtYmVyID8KKwkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBl cXVhbGl0eSBvcGVyYXRvciBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKGF0dHR5cGUp KSA6CisJCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gb3ZlcmxhcHMgb3BlcmF0 b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSksCisJCQkJZXJyZGV0 YWlsKCJUaGVyZSBpcyBubyBzdWl0YWJsZSBvcGVyYXRvciBpbiBvcGVyYXRvciBmYW1pbHkg XCIlc1wiIGZvciBhY2Nlc3MgbWV0aG9kIFwiJXNcIi4iLAorCQkJCQkJICBOYW1lU3RyKCgo Rm9ybV9wZ19vcGZhbWlseSkgR0VUU1RSVUNUKHR1cGxlKSktPm9wZm5hbWUpLCAiZ2lzdCIp KTsKKwl9Cit9CisKIC8qCiAgKgltYWtlT2JqZWN0TmFtZSgpCiAgKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwppbmRleCA3MjFkMjQ3ODNiNC4uYzM5ZThiYzE2MWQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMDE1Miw2ICsxMDE1Miw3IEBAIGFkZEZrUmVj dXJzZVJlZmVyZW5jZWQoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50 LCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJCQkgIGNvbmlzbG9jYWwsCS8qIGlzbG9jYWwgKi8K IAkJCQkJCQkJCSAgY29uaW5oY291bnQsCS8qIGluaGNvdW50ICovCiAJCQkJCQkJCQkgIGNv bm5vaW5oZXJpdCwgLyogY29uTm9Jbmhlcml0ICovCisJCQkJCQkJCQkgIGZhbHNlLAkvKiBj b25QZXJpb2QgKi8KIAkJCQkJCQkJCSAgZmFsc2UpOwkvKiBpc19pbnRlcm5hbCAqLwogCiAJ T2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBDb25zdHJhaW50UmVsYXRpb25JZCwgY29uc3Ry T2lkKTsKQEAgLTEwNDUwLDYgKzEwNDUxLDcgQEAgYWRkRmtSZWN1cnNlUmVmZXJlbmNpbmco TGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxhdGlvbiByZWws CiAJCQkJCQkJCQkgIGZhbHNlLAogCQkJCQkJCQkJICAxLAogCQkJCQkJCQkJICBmYWxzZSwK KwkJCQkJCQkJCSAgZmFsc2UsCS8qIGNvblBlcmlvZCAqLwogCQkJCQkJCQkJICBmYWxzZSk7 CiAKIAkJCS8qCkBAIC0xMDk1NSw2ICsxMDk1Nyw3IEBAIENsb25lRmtSZWZlcmVuY2luZyhM aXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRSZWwpCiAJ CQkJCQkJCSAgZmFsc2UsCS8qIGlzbG9jYWwgKi8KIAkJCQkJCQkJICAxLAkvKiBpbmhjb3Vu dCAqLwogCQkJCQkJCQkgIGZhbHNlLAkvKiBjb25Ob0luaGVyaXQgKi8KKwkJCQkJCQkJICBm YWxzZSwJLyogY29uUGVyaW9kICovCiAJCQkJCQkJCSAgdHJ1ZSk7CiAKIAkJLyogU2V0IHVw IHBhcnRpdGlvbiBkZXBlbmRlbmNpZXMgZm9yIHRoZSBuZXcgY29uc3RyYWludCAqLwpAQCAt MTQxMjQsNyArMTQxMjcsOCBAQCBUcnlSZXVzZUluZGV4KE9pZCBvbGRJZCwgSW5kZXhTdG10 ICpzdG10KQogCWlmIChDaGVja0luZGV4Q29tcGF0aWJsZShvbGRJZCwKIAkJCQkJCQkgc3Rt dC0+YWNjZXNzTWV0aG9kLAogCQkJCQkJCSBzdG10LT5pbmRleFBhcmFtcywKLQkJCQkJCQkg c3RtdC0+ZXhjbHVkZU9wTmFtZXMpKQorCQkJCQkJCSBzdG10LT5leGNsdWRlT3BOYW1lcywK KwkJCQkJCQkgc3RtdC0+aXN3aXRob3V0b3ZlcmxhcHMpKQogCXsKIAkJUmVsYXRpb24JaXJl bCA9IGluZGV4X29wZW4ob2xkSWQsIE5vTG9jayk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YwppbmRleCAxNzAzNjBlZGRhOC4uMjlkMzBiZmI2ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmln Z2VyLmMKQEAgLTgzNCw2ICs4MzQsNyBAQCBDcmVhdGVUcmlnZ2VyRmlyaW5nT24oQ3JlYXRl VHJpZ1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJCQkJCQkg IHRydWUsIC8qIGlzbG9jYWwgKi8KIAkJCQkJCQkJCQkJICAwLAkvKiBpbmhjb3VudCAqLwog CQkJCQkJCQkJCQkgIHRydWUsIC8qIG5vaW5oZXJpdCAqLworCQkJCQkJCQkJCQkgIGZhbHNl LAkvKiBjb25wZXJpb2QgKi8KIAkJCQkJCQkJCQkJICBpc0ludGVybmFsKTsJLyogaXNfaW50 ZXJuYWwgKi8KIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDJhMWU3MTMz MzU2Li4yYTY1NTBkZTkwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlw ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0zNjIx LDYgKzM2MjEsNyBAQCBkb21haW5BZGRDaGVja0NvbnN0cmFpbnQoT2lkIGRvbWFpbk9pZCwg T2lkIGRvbWFpbk5hbWVzcGFjZSwgT2lkIGJhc2VUeXBlT2lkLAogCQkJCQkJCSAgdHJ1ZSwg LyogaXMgbG9jYWwgKi8KIAkJCQkJCQkgIDAsCS8qIGluaGNvdW50ICovCiAJCQkJCQkJICBm YWxzZSwJLyogY29ubm9pbmhlcml0ICovCisJCQkJCQkJICBmYWxzZSwJLyogY29ucGVyaW9k ICovCiAJCQkJCQkJICBmYWxzZSk7CS8qIGlzX2ludGVybmFsICovCiAJaWYgKGNvbnN0ckFk ZHIpCiAJCU9iamVjdEFkZHJlc3NTZXQoKmNvbnN0ckFkZHIsIENvbnN0cmFpbnRSZWxhdGlv bklkLCBjY29pZCk7CkBAIC0zNzI3LDYgKzM3MjgsNyBAQCBkb21haW5BZGROb3ROdWxsQ29u c3RyYWludChPaWQgZG9tYWluT2lkLCBPaWQgZG9tYWluTmFtZXNwYWNlLCBPaWQgYmFzZVR5 cGVPaWQsCiAJCQkJCQkJICB0cnVlLCAvKiBpcyBsb2NhbCAqLwogCQkJCQkJCSAgMCwJLyog aW5oY291bnQgKi8KIAkJCQkJCQkgIGZhbHNlLAkvKiBjb25ub2luaGVyaXQgKi8KKwkJCQkJ CQkgIGZhbHNlLAkvKiBjb25wZXJpb2QgKi8KIAkJCQkJCQkgIGZhbHNlKTsJLyogaXNfaW50 ZXJuYWwgKi8KIAogCWlmIChjb25zdHJBZGRyKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5k ZXhpbmcuYwppbmRleCA5ZjA1YjM2NTRjMS4uNTlhY2Y2N2EzNmEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBAIC0yMTAsNyArMjEwLDcgQEAgRXhlY09wZW5JbmRp Y2VzKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sIGJvb2wgc3BlY3VsYXRpdmUpCiAJ CSAqIElmIHRoZSBpbmRleGVzIGFyZSB0byBiZSB1c2VkIGZvciBzcGVjdWxhdGl2ZSBpbnNl cnRpb24sIGFkZCBleHRyYQogCQkgKiBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSB1bmlxdWUg aW5kZXggZW50cmllcy4KIAkJICovCi0JCWlmIChzcGVjdWxhdGl2ZSAmJiBpaS0+aWlfVW5p cXVlKQorCQlpZiAoc3BlY3VsYXRpdmUgJiYgaWktPmlpX1VuaXF1ZSAmJiAhaW5kZXhEZXNj LT5yZF9pbmRleC0+aW5kaXNleGNsdXNpb24pCiAJCQlCdWlsZFNwZWN1bGF0aXZlSW5kZXhJ bmZvKGluZGV4RGVzYywgaWkpOwogCiAJCXJlbGF0aW9uRGVzY3NbaV0gPSBpbmRleERlc2M7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMKaW5kZXggOWVmZGQ4NDRhYWMu LmVlZTY5OTc2ZWM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9w bGFuY2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jCkBA IC04MTcsNyArODE3LDcgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBsYW5uZXJJbmZvICpy b290KQogCQkgKi8KIAkJaWYgKGluZGV4T2lkRnJvbUNvbnN0cmFpbnQgPT0gaWR4Rm9ybS0+ aW5kZXhyZWxpZCkKIAkJewotCQkJaWYgKCFpZHhGb3JtLT5pbmRpc3VuaXF1ZSAmJiBvbmNv bmZsaWN0LT5hY3Rpb24gPT0gT05DT05GTElDVF9VUERBVEUpCisJCQlpZiAoaWR4Rm9ybS0+ aW5kaXNleGNsdXNpb24gJiYgb25jb25mbGljdC0+YWN0aW9uID09IE9OQ09ORkxJQ1RfVVBE QVRFKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05H X09CSkVDVF9UWVBFKSwKIAkJCQkJCSBlcnJtc2coIk9OIENPTkZMSUNUIERPIFVQREFURSBu b3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzIikpKTsKQEAgLTg0Miw2 ICs4NDIsMTMgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBsYW5uZXJJbmZvICpyb290KQog CQlpZiAoIWlkeEZvcm0tPmluZGlzdW5pcXVlKQogCQkJZ290byBuZXh0OwogCisJCS8qCisJ CSAqIFNvLWNhbGxlZCB1bmlxdWUgY29uc3RyYWludHMgd2l0aCBXSVRIT1VUIE9WRVJMQVBT IGFyZSByZWFsbHkKKwkJICogZXhjbHVzaW9uIGNvbnN0cmFpbnRzLCBzbyBza2lwIHRob3Nl IHRvby4KKwkJICovCisJCWlmIChpZHhGb3JtLT5pbmRpc2V4Y2x1c2lvbikKKwkJCWdvdG8g bmV4dDsKKwogCQkvKiBCdWlsZCBCTVMgcmVwcmVzZW50YXRpb24gb2YgcGxhaW4gKG5vbiBl eHByZXNzaW9uKSBpbmRleCBhdHRycyAqLwogCQlpbmRleGVkQXR0cnMgPSBOVUxMOwogCQlm b3IgKG5hdHQgPSAwOyBuYXR0IDwgaWR4Rm9ybS0+aW5kbmtleWF0dHM7IG5hdHQrKykKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IGEwNDNmZDRjNjY5Li5lYWZhMjkwYjg4YiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC01MzIsNyArNTMyLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJ CQljb2x1bW5yZWYgaW5fZXhwciBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUgeG1sdGFibGUg YXJyYXlfZXhwcgogCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcKICV0eXBl IDxsaXN0Pglyb3dzZnJvbV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAot JXR5cGUgPGJvb2xlYW4+IG9wdF9vcmRpbmFsaXR5CisldHlwZSA8Ym9vbGVhbj4gb3B0X29y ZGluYWxpdHkgb3B0X3dpdGhvdXRfb3ZlcmxhcHMKICV0eXBlIDxsaXN0PglFeGNsdXNpb25D b25zdHJhaW50TGlzdCBFeGNsdXNpb25Db25zdHJhaW50RWxlbQogJXR5cGUgPGxpc3Q+CWZ1 bmNfYXJnX2xpc3QgZnVuY19hcmdfbGlzdF9vcHQKICV0eXBlIDxub2RlPglmdW5jX2FyZ19l eHByCkBAIC00MTkzLDcgKzQxOTMsNyBAQCBDb25zdHJhaW50RWxlbToKIAkJCQkJbi0+aW5p dGlhbGx5X3ZhbGlkID0gIW4tPnNraXBfdmFsaWRhdGlvbjsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KLQkJCXwgVU5JUVVFIG9wdF91bmlxdWVfbnVsbF90cmVhdG1lbnQgJygn IGNvbHVtbkxpc3QgJyknIG9wdF9jX2luY2x1ZGUgb3B0X2RlZmluaXRpb24gT3B0Q29uc1Rh YmxlU3BhY2UKKwkJCXwgVU5JUVVFIG9wdF91bmlxdWVfbnVsbF90cmVhdG1lbnQgJygnIGNv bHVtbkxpc3Qgb3B0X3dpdGhvdXRfb3ZlcmxhcHMgJyknIG9wdF9jX2luY2x1ZGUgb3B0X2Rl ZmluaXRpb24gT3B0Q29uc1RhYmxlU3BhY2UKIAkJCQlDb25zdHJhaW50QXR0cmlidXRlU3Bl YwogCQkJCXsKIAkJCQkJQ29uc3RyYWludCAqbiA9IG1ha2VOb2RlKENvbnN0cmFpbnQpOwpA QCAtNDIwMiwxMSArNDIwMiwxMiBAQCBDb25zdHJhaW50RWxlbToKIAkJCQkJbi0+bG9jYXRp b24gPSBAMTsKIAkJCQkJbi0+bnVsbHNfbm90X2Rpc3RpbmN0ID0gISQyOwogCQkJCQluLT5r ZXlzID0gJDQ7Ci0JCQkJCW4tPmluY2x1ZGluZyA9ICQ2OwotCQkJCQluLT5vcHRpb25zID0g JDc7CisJCQkJCW4tPndpdGhvdXRfb3ZlcmxhcHMgPSAkNTsKKwkJCQkJbi0+aW5jbHVkaW5n ID0gJDc7CisJCQkJCW4tPm9wdGlvbnMgPSAkODsKIAkJCQkJbi0+aW5kZXhuYW1lID0gTlVM TDsKLQkJCQkJbi0+aW5kZXhzcGFjZSA9ICQ4OwotCQkJCQlwcm9jZXNzQ0FTYml0cygkOSwg QDksICJVTklRVUUiLAorCQkJCQluLT5pbmRleHNwYWNlID0gJDk7CisJCQkJCXByb2Nlc3ND QVNiaXRzKCQxMCwgQDEwLCAiVU5JUVVFIiwKIAkJCQkJCQkJICAgJm4tPmRlZmVycmFibGUs ICZuLT5pbml0ZGVmZXJyZWQsIE5VTEwsCiAJCQkJCQkJCSAgIE5VTEwsIHl5c2Nhbm5lcik7 CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKQEAgLTQyMjcsNyArNDIyOCw3IEBAIENvbnN0cmFp bnRFbGVtOgogCQkJCQkJCQkgICBOVUxMLCB5eXNjYW5uZXIpOwogCQkJCQkkJCA9IChOb2Rl ICopIG47CiAJCQkJfQotCQkJfCBQUklNQVJZIEtFWSAnKCcgY29sdW1uTGlzdCAnKScgb3B0 X2NfaW5jbHVkZSBvcHRfZGVmaW5pdGlvbiBPcHRDb25zVGFibGVTcGFjZQorCQkJfCBQUklN QVJZIEtFWSAnKCcgY29sdW1uTGlzdCBvcHRfd2l0aG91dF9vdmVybGFwcyAnKScgb3B0X2Nf aW5jbHVkZSBvcHRfZGVmaW5pdGlvbiBPcHRDb25zVGFibGVTcGFjZQogCQkJCUNvbnN0cmFp bnRBdHRyaWJ1dGVTcGVjCiAJCQkJewogCQkJCQlDb25zdHJhaW50ICpuID0gbWFrZU5vZGUo Q29uc3RyYWludCk7CkBAIC00MjM1LDExICs0MjM2LDEyIEBAIENvbnN0cmFpbnRFbGVtOgog CQkJCQluLT5jb250eXBlID0gQ09OU1RSX1BSSU1BUlk7CiAJCQkJCW4tPmxvY2F0aW9uID0g QDE7CiAJCQkJCW4tPmtleXMgPSAkNDsKLQkJCQkJbi0+aW5jbHVkaW5nID0gJDY7Ci0JCQkJ CW4tPm9wdGlvbnMgPSAkNzsKKwkJCQkJbi0+d2l0aG91dF9vdmVybGFwcyA9ICQ1OworCQkJ CQluLT5pbmNsdWRpbmcgPSAkNzsKKwkJCQkJbi0+b3B0aW9ucyA9ICQ4OwogCQkJCQluLT5p bmRleG5hbWUgPSBOVUxMOwotCQkJCQluLT5pbmRleHNwYWNlID0gJDg7Ci0JCQkJCXByb2Nl c3NDQVNiaXRzKCQ5LCBAOSwgIlBSSU1BUlkgS0VZIiwKKwkJCQkJbi0+aW5kZXhzcGFjZSA9 ICQ5OworCQkJCQlwcm9jZXNzQ0FTYml0cygkMTAsIEAxMCwgIlBSSU1BUlkgS0VZIiwKIAkJ CQkJCQkJICAgJm4tPmRlZmVycmFibGUsICZuLT5pbml0ZGVmZXJyZWQsIE5VTEwsCiAJCQkJ CQkJCSAgIE5VTEwsIHl5c2Nhbm5lcik7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKQEAgLTQz NjEsNiArNDM2MywxMSBAQCBvcHRfbm9faW5oZXJpdDoJTk8gSU5IRVJJVAkJCQkJCQl7ICAk JCA9IHRydWU7IH0KIAkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAgJCQgPSBmYWxzZTsgfQog CQk7CiAKK29wdF93aXRob3V0X292ZXJsYXBzOgorCQkJV0lUSE9VVCBPVkVSTEFQUwkJCQkJ CXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9 CisJOworCiBvcHRfY29sdW1uX2xpc3Q6CiAJCQknKCcgY29sdW1uTGlzdCAnKScJCQkJCQl7 ICQkID0gJDI7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTklMOyB9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCBkNWMyYjJmZjBiMC4uNTM0OTJjNjQ0 YTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMTU1OCw2ICsxNTU4 LDcgQEAgZ2VuZXJhdGVDbG9uZWRJbmRleFN0bXQoUmFuZ2VWYXIgKmhlYXBSZWwsIFJlbGF0 aW9uIHNvdXJjZV9pZHgsCiAJaW5kZXgtPnVuaXF1ZSA9IGlkeHJlYy0+aW5kaXN1bmlxdWU7 CiAJaW5kZXgtPm51bGxzX25vdF9kaXN0aW5jdCA9IGlkeHJlYy0+aW5kbnVsbHNub3RkaXN0 aW5jdDsKIAlpbmRleC0+cHJpbWFyeSA9IGlkeHJlYy0+aW5kaXNwcmltYXJ5OworCWluZGV4 LT5pc3dpdGhvdXRvdmVybGFwcyA9IChpZHhyZWMtPmluZGlzcHJpbWFyeSB8fCBpZHhyZWMt PmluZGlzdW5pcXVlKSAmJiBpZHhyZWMtPmluZGlzZXhjbHVzaW9uOwogCWluZGV4LT50cmFu c2Zvcm1lZCA9IHRydWU7CS8qIGRvbid0IG5lZWQgdHJhbnNmb3JtSW5kZXhTdG10ICovCiAJ aW5kZXgtPmNvbmN1cnJlbnQgPSBmYWxzZTsKIAlpbmRleC0+aWZfbm90X2V4aXN0cyA9IGZh bHNlOwpAQCAtMTYwNyw3ICsxNjA4LDkgQEAgZ2VuZXJhdGVDbG9uZWRJbmRleFN0bXQoUmFu Z2VWYXIgKmhlYXBSZWwsIFJlbGF0aW9uIHNvdXJjZV9pZHgsCiAJCQkJaW50CQkJbkVsZW1z OwogCQkJCWludAkJCWk7CiAKLQkJCQlBc3NlcnQoY29ucmVjLT5jb250eXBlID09IENPTlNU UkFJTlRfRVhDTFVTSU9OKTsKKwkJCQlBc3NlcnQoY29ucmVjLT5jb250eXBlID09IENPTlNU UkFJTlRfRVhDTFVTSU9OIHx8CisJCQkJCSAgIChpbmRleC0+aXN3aXRob3V0b3ZlcmxhcHMg JiYKKwkJCQkJCShjb25yZWMtPmNvbnR5cGUgPT0gQ09OU1RSQUlOVF9QUklNQVJZIHx8IGNv bnJlYy0+Y29udHlwZSA9PSBDT05TVFJBSU5UX1VOSVFVRSkpKTsKIAkJCQkvKiBFeHRyYWN0 IG9wZXJhdG9yIE9JRHMgZnJvbSB0aGUgcGdfY29uc3RyYWludCB0dXBsZSAqLwogCQkJCWRh dHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChDT05TVFJPSUQsIGh0X2NvbnN0ciwKIAkJ CQkJCQkJCQkJICAgQW51bV9wZ19jb25zdHJhaW50X2NvbmV4Y2xvcCk7CkBAIC0yMTYwLDYg KzIxNjMsNyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29uc3RyYWludCAqY29uc3Ry YWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAl9CiAJaW5kZXgtPm51bGxzX25vdF9k aXN0aW5jdCA9IGNvbnN0cmFpbnQtPm51bGxzX25vdF9kaXN0aW5jdDsKIAlpbmRleC0+aXNj b25zdHJhaW50ID0gdHJ1ZTsKKwlpbmRleC0+aXN3aXRob3V0b3ZlcmxhcHMgPSBjb25zdHJh aW50LT53aXRob3V0X292ZXJsYXBzOwogCWluZGV4LT5kZWZlcnJhYmxlID0gY29uc3RyYWlu dC0+ZGVmZXJyYWJsZTsKIAlpbmRleC0+aW5pdGRlZmVycmVkID0gY29uc3RyYWludC0+aW5p dGRlZmVycmVkOwogCkBAIC0yMjUyLDYgKzIyNTYsMTEgQEAgdHJhbnNmb3JtSW5kZXhDb25z dHJhaW50KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQsIENyZWF0ZVN0bXRDb250ZXh0ICpjeHQp CiAJCQkJCSBlcnJtc2coImluZGV4IFwiJXNcIiBpcyBub3QgdmFsaWQiLCBpbmRleF9uYW1l KSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwgY29uc3RyYWludC0+ bG9jYXRpb24pKSk7CiAKKwkJLyoKKwkJICogVG9kYXkgd2UgZm9yYmlkIG5vbi11bmlxdWUg aW5kZXhlcywgYnV0IHdlIGNvdWxkIHBlcm1pdCBHaVNUCisJCSAqIGluZGV4ZXMgd2hvc2Ug bGFzdCBlbnRyeSBpcyBhIHJhbmdlIHR5cGUgYW5kIHVzZSB0aGF0IHRvIGNyZWF0ZSBhCisJ CSAqIFdJVEhPVVQgT1ZFUkxBUFMgY29uc3RyYWludCAoaS5lLiBhIHRlbXBvcmFsIGNvbnN0 cmFpbnQpLgorCQkgKi8KIAkJaWYgKCFpbmRleF9mb3JtLT5pbmRpc3VuaXF1ZSkKIAkJCWVy ZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUp LApAQCAtMjU0MCw2ICsyNTQ5LDIzIEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWludChDb25z dHJhaW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogCQkJCW5vdG51 bGxjbWRzID0gbGFwcGVuZChub3RudWxsY21kcywgbm90bnVsbGNtZCk7CiAJCQl9CiAJCX0K KworCQlpZiAoY29uc3RyYWludC0+d2l0aG91dF9vdmVybGFwcykKKwkJeworCQkJLyoKKwkJ CSAqIFRoaXMgZW5mb3JjZXMgdGhhdCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgZXF1YWxpdHkg Y29sdW1uCisJCQkgKiBiZXNpZGVzIHRoZSBXSVRIT1VUIE9WRVJMQVBTIGNvbHVtbnMuICBU aGlzIGlzIHBlciBTUUwKKwkJCSAqIHN0YW5kYXJkLiAgWFhYIERvIHdlIG5lZWQgdGhpcz8K KwkJCSAqLworCQkJaWYgKGxpc3RfbGVuZ3RoKGNvbnN0cmFpbnQtPmtleXMpIDwgMikKKwkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CisJCQkJCQllcnJtc2coImNvbnN0cmFpbnQgdXNpbmcgV0lUSE9VVCBPVkVSTEFQUyBuZWVk cyBhdCBsZWFzdCB0d28gY29sdW1ucyIpKTsKKworCQkJLyogV0lUSE9VVCBPVkVSTEFQUyBy ZXF1aXJlcyBhIEdpU1QgaW5kZXggKi8KKwkJCWluZGV4LT5hY2Nlc3NNZXRob2QgPSAiZ2lz dCI7CisJCX0KKwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5k ZXggNjUzNjg1YmZmYzUuLjUwYzAyNDdjMzAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1 dGlscy5jCkBAIC0yMzkzLDYgKzIzOTMsOCBAQCBwZ19nZXRfY29uc3RyYWludGRlZl93b3Jr ZXIoT2lkIGNvbnN0cmFpbnRJZCwgYm9vbCBmdWxsQ29tbWFuZCwKIAkJCQkJCQkJCQkJIEFu dW1fcGdfY29uc3RyYWludF9jb25rZXkpOwogCiAJCQkJa2V5YXR0cyA9IGRlY29tcGlsZV9j b2x1bW5faW5kZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5jb25yZWxpZCwgJmJ1Zik7CisJCQkJ aWYgKGNvbkZvcm0tPmNvbnBlcmlvZCkKKwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygm YnVmLCAiIFdJVEhPVVQgT1ZFUkxBUFMiKTsKIAogCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFy KCZidWYsICcpJyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Jl bGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDY2 ZWQyNGU0MDEyLi41ZTdhMTQ5OWUxZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcmVsY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNo ZS5jCkBAIC01NTgxLDExICs1NTgxLDE0IEBAIFJlbGF0aW9uR2V0SWRlbnRpdHlLZXlCaXRt YXAoUmVsYXRpb24gcmVsYXRpb24pCiAvKgogICogUmVsYXRpb25HZXRFeGNsdXNpb25JbmZv IC0tIGdldCBpbmZvIGFib3V0IGluZGV4J3MgZXhjbHVzaW9uIGNvbnN0cmFpbnQKICAqCi0g KiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgb25seSBmb3IgYW4gaW5kZXggdGhhdCBpcyBrbm93 biB0byBoYXZlIGFuCi0gKiBhc3NvY2lhdGVkIGV4Y2x1c2lvbiBjb25zdHJhaW50LiAgSXQg cmV0dXJucyBhcnJheXMgKHBhbGxvYydkIGluIGNhbGxlcidzCi0gKiBjb250ZXh0KSBvZiB0 aGUgZXhjbHVzaW9uIG9wZXJhdG9yIE9JRHMsIHRoZWlyIHVuZGVybHlpbmcgZnVuY3Rpb25z JwotICogT0lEcywgYW5kIHRoZWlyIHN0cmF0ZWd5IG51bWJlcnMgaW4gdGhlIGluZGV4J3Mg b3BjbGFzc2VzLiAgV2UgY2FjaGUKLSAqIGFsbCB0aGlzIGluZm9ybWF0aW9uIHNpbmNlIGl0 IHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygd29yayB0byBnZXQuCisgKiBUaGlzIHNob3Vs ZCBiZSBjYWxsZWQgb25seSBmb3IgYW4gaW5kZXggdGhhdCBpcyBrbm93biB0byBoYXZlIGFu IGFzc29jaWF0ZWQKKyAqIGV4Y2x1c2lvbiBjb25zdHJhaW50IG9yIHByaW1hcnkga2V5L3Vu aXF1ZSBjb25zdHJhaW50IHVzaW5nIFdJVEhPVVQKKyAqIE9WRVJMQVBTLgorCisgKiBJdCBy ZXR1cm5zIGFycmF5cyAocGFsbG9jJ2QgaW4gY2FsbGVyJ3MgY29udGV4dCkgb2YgdGhlIGV4 Y2x1c2lvbiBvcGVyYXRvcgorICogT0lEcywgdGhlaXIgdW5kZXJseWluZyBmdW5jdGlvbnMn IE9JRHMsIGFuZCB0aGVpciBzdHJhdGVneSBudW1iZXJzIGluIHRoZQorICogaW5kZXgncyBv cGNsYXNzZXMuICBXZSBjYWNoZSBhbGwgdGhpcyBpbmZvcm1hdGlvbiBzaW5jZSBpdCByZXF1 aXJlcyBhIGZhaXIKKyAqIGFtb3VudCBvZiB3b3JrIHRvIGdldC4KICAqLwogdm9pZAogUmVs YXRpb25HZXRFeGNsdXNpb25JbmZvKFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCkBAIC01NjQ5 LDcgKzU2NTIsMTAgQEAgUmVsYXRpb25HZXRFeGNsdXNpb25JbmZvKFJlbGF0aW9uIGluZGV4 UmVsYXRpb24sCiAJCWludAkJCW5lbGVtOwogCiAJCS8qIFdlIHdhbnQgdGhlIGV4Y2x1c2lv biBjb25zdHJhaW50IG93bmluZyB0aGUgaW5kZXggKi8KLQkJaWYgKGNvbmZvcm0tPmNvbnR5 cGUgIT0gQ09OU1RSQUlOVF9FWENMVVNJT04gfHwKKwkJaWYgKChjb25mb3JtLT5jb250eXBl ICE9IENPTlNUUkFJTlRfRVhDTFVTSU9OICYmCisJCQkgIShjb25mb3JtLT5jb25wZXJpb2Qg JiYgKAorCQkJCQkJCQkJICBjb25mb3JtLT5jb250eXBlID09IENPTlNUUkFJTlRfUFJJTUFS WQorCQkJCQkJCQkJICB8fCBjb25mb3JtLT5jb250eXBlID09IENPTlNUUkFJTlRfVU5JUVVF KSkpIHx8CiAJCQljb25mb3JtLT5jb25pbmRpZCAhPSBSZWxhdGlvbkdldFJlbGlkKGluZGV4 UmVsYXRpb24pKQogCQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGI4YjE4ODhi ZDMzLi42NzEyN2RiZDlmZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC03MzI2LDYgKzczMjYsNyBA QCBnZXRJbmRleGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBu dW1UYWJsZXMpCiAJCQkJaV9jb25uYW1lLAogCQkJCWlfY29uZGVmZXJyYWJsZSwKIAkJCQlp X2NvbmRlZmVycmVkLAorCQkJCWlfY29ucGVyaW9kLAogCQkJCWlfY29udGFibGVvaWQsCiAJ CQkJaV9jb25vaWQsCiAJCQkJaV9jb25kZWYsCkBAIC03NDA3LDEwICs3NDA4LDE3IEBAIGdl dEluZGV4ZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRh YmxlcykKIAogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKIAkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJICJpLmluZG51bGxzbm90ZGlzdGluY3Qg Iik7CisJCQkJCQkJICJpLmluZG51bGxzbm90ZGlzdGluY3QsICIpOwogCWVsc2UKIAkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJICJmYWxzZSBBUyBpbmRudWxsc25v dGRpc3RpbmN0ICIpOworCQkJCQkJCSAiZmFsc2UgQVMgaW5kbnVsbHNub3RkaXN0aW5jdCwg Iik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDApCisJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiYy5jb25wZXJpb2QgIik7CisJZWxzZQor CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIk5VTEwgQVMgY29ucGVy aW9kICIpOwogCiAJLyoKIAkgKiBUaGUgcG9pbnQgb2YgdGhlIG1lc3N5LWxvb2tpbmcgb3V0 ZXIgam9pbiBpcyB0byBmaW5kIGEgY29uc3RyYWludCB0aGF0CkBAIC03NDc4LDYgKzc0ODYs NyBAQCBnZXRJbmRleGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGlu dCBudW1UYWJsZXMpCiAJaV9jb25uYW1lID0gUFFmbnVtYmVyKHJlcywgImNvbm5hbWUiKTsK IAlpX2NvbmRlZmVycmFibGUgPSBQUWZudW1iZXIocmVzLCAiY29uZGVmZXJyYWJsZSIpOwog CWlfY29uZGVmZXJyZWQgPSBQUWZudW1iZXIocmVzLCAiY29uZGVmZXJyZWQiKTsKKwlpX2Nv bnBlcmlvZCA9IFBRZm51bWJlcihyZXMsICJjb25wZXJpb2QiKTsKIAlpX2NvbnRhYmxlb2lk ID0gUFFmbnVtYmVyKHJlcywgImNvbnRhYmxlb2lkIik7CiAJaV9jb25vaWQgPSBQUWZudW1i ZXIocmVzLCAiY29ub2lkIik7CiAJaV9jb25kZWYgPSBQUWZudW1iZXIocmVzLCAiY29uZGVm Iik7CkBAIC03NTg1LDYgKzc1OTQsNyBAQCBnZXRJbmRleGVzKEFyY2hpdmUgKmZvdXQsIFRh YmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCQkJY29uc3RyaW5mby0+Y29u aW5kZXggPSBpbmR4aW5mb1tqXS5kb2JqLmR1bXBJZDsKIAkJCQljb25zdHJpbmZvLT5jb25k ZWZlcnJhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaiwgaV9jb25kZWZlcnJhYmxlKSkgPT0g J3QnOwogCQkJCWNvbnN0cmluZm8tPmNvbmRlZmVycmVkID0gKihQUWdldHZhbHVlKHJlcywg aiwgaV9jb25kZWZlcnJlZCkpID09ICd0JzsKKwkJCQljb25zdHJpbmZvLT5jb25wZXJpb2Qg PSAqKFBRZ2V0dmFsdWUocmVzLCBqLCBpX2NvbnBlcmlvZCkpID09ICd0JzsKIAkJCQljb25z dHJpbmZvLT5jb25pc2xvY2FsID0gdHJ1ZTsKIAkJCQljb25zdHJpbmZvLT5zZXBhcmF0ZSA9 IHRydWU7CiAKQEAgLTE2OTU0LDYgKzE2OTY0LDggQEAgZHVtcENvbnN0cmFpbnQoQXJjaGl2 ZSAqZm91dCwgY29uc3QgQ29uc3RyYWludEluZm8gKmNvbmluZm8pCiAJCQkJCQkJCSAgKGsg PT0gMCkgPyAiIiA6ICIsICIsCiAJCQkJCQkJCSAgZm10SWQoYXR0bmFtZSkpOwogCQkJfQor CQkJaWYgKGNvbmluZm8tPmNvbnBlcmlvZCkKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx LCAiIFdJVEhPVVQgT1ZFUkxBUFMiKTsKIAogCQkJaWYgKGluZHhpbmZvLT5pbmRua2V5YXR0 cnMgPCBpbmR4aW5mby0+aW5kbmF0dHJzKQogCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEs ICIpIElOQ0xVREUgKCIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNGIyZTU4NzBhOWMuLmIyNWI5 ZjkzMDRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTQ3NCw2ICs0NzQsNyBAQCB0eXBlZGVmIHN0 cnVjdCBfY29uc3RyYWludEluZm8KIAlEdW1wSWQJCWNvbmluZGV4OwkJLyogaWRlbnRpZmll cyBhc3NvY2lhdGVkIGluZGV4IGlmIGFueSAqLwogCWJvb2wJCWNvbmRlZmVycmFibGU7CS8q IHRydWUgaWYgY29uc3RyYWludCBpcyBERUZFUlJBQkxFICovCiAJYm9vbAkJY29uZGVmZXJy ZWQ7CS8qIHRydWUgaWYgY29uc3RyYWludCBpcyBJTklUSUFMTFkgREVGRVJSRUQgKi8KKwli b29sCQljb25wZXJpb2Q7CQkvKiB0cnVlIGlmIHRoZSBjb25zdHJhaW50IGlzIFdJVEhPVVQg T1ZFUkxBUFMgKi8KIAlib29sCQljb25pc2xvY2FsOwkJLyogdHJ1ZSBpZiBjb25zdHJhaW50 IGhhcyBsb2NhbCBkZWZpbml0aW9uICovCiAJYm9vbAkJc2VwYXJhdGU7CQkvKiB0cnVlIGlm IG11c3QgZHVtcCBhcyBzZXBhcmF0ZSBpdGVtICovCiB9IENvbnN0cmFpbnRJbmZvOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBkM2RkODc4NGQ2NC4uYmVlZDhkYjRkMTAg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0xMDA0LDYgKzEwMDQsNDIgQEAg bXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ09OU1RSQUlOVCBQUklNQVJZIEtFWSAv IFdJVEhPVVQgT1ZFUkxBUFMnID0+IHsKKwkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFRBQkxF IGR1bXBfdGVzdC50ZXN0X3RhYmxlX3RwayAoCisJCQkJCQkJY29sMSBpbnQ0cmFuZ2UsCisJ CQkJCQkJY29sMiB0c3R6cmFuZ2UsCisJCQkJCQkJQ09OU1RSQUlOVCB0ZXN0X3RhYmxlX3Rw a19wa2V5IFBSSU1BUlkgS0VZIChjb2wxLCBjb2wyIFdJVEhPVVQgT1ZFUkxBUFMpKTsnLAor CQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRFUiBUQUJMRSBPTkxZIGR1bXBfdGVzdC50ZXN0 X3RhYmxlX3Rwa1xFIFxuXlxzKworCQkJXFFBREQgQ09OU1RSQUlOVCB0ZXN0X3RhYmxlX3Rw a19wa2V5IFBSSU1BUlkgS0VZIChjb2wxLCBjb2wyIFdJVEhPVVQgT1ZFUkxBUFMpO1xFCisJ CQkveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywgJWR1bXBfdGVzdF9zY2hlbWFf cnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJ CWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVt ZW50ID0+IDEsCisJCX0sCisJfSwKKworCSdDT05TVFJBSU5UIFVOSVFVRSAvIFdJVEhPVVQg T1ZFUkxBUFMnID0+IHsKKwkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFRBQkxFIGR1bXBfdGVz dC50ZXN0X3RhYmxlX3R1cSAoCisJCQkJCQkJY29sMSBpbnQ0cmFuZ2UsCisJCQkJCQkJY29s MiB0c3R6cmFuZ2UsCisJCQkJCQkJQ09OU1RSQUlOVCB0ZXN0X3RhYmxlX3R1cV91cSBVTklR VUUgKGNvbDEsIGNvbDIgV0lUSE9VVCBPVkVSTEFQUykpOycsCisJCXJlZ2V4cCA9PiBxci9e CisJCQlcUUFMVEVSIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGVfdHVxXEUgXG5e XHMrCisJCQlcUUFERCBDT05TVFJBSU5UIHRlc3RfdGFibGVfdHVxX3VxIFVOSVFVRSAoY29s MSwgY29sMiBXSVRIT1VUIE9WRVJMQVBTKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJ CSVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRh ID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hl bWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCA9PiAxLAorCQl9LAorCX0sCisK IAknQUxURVIgVEFCTEUgKHBhcnRpdGlvbmVkKSBBREQgQ09OU1RSQUlOVCAuLi4gRk9SRUlH TiBLRVknID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDQsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NS RUFURSBUQUJMRSBkdW1wX3Rlc3QudGVzdF90YWJsZV9mayAoCmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDdj OWExZjIzNGM2Li45MGIyZWRiNTUyZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTIzODMsNiArMjM4Mywx MCBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAog CQkJZWxzZQogCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIGZhbHNlIEFTIGlu ZGlzcmVwbGlkZW50Iik7CiAJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLCBjMi5y ZWx0YWJsZXNwYWNlIik7CisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNzAwMDApCisJCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiwgY29uLmNvbnBlcmlvZCIpOworCQkJZWxz ZQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIGZhbHNlIEFTIGNvbnBlcmlv ZCIpOwogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkgICJcbkZST00gcGdf Y2F0YWxvZy5wZ19jbGFzcyBjLCBwZ19jYXRhbG9nLnBnX2NsYXNzIGMyLCBwZ19jYXRhbG9n LnBnX2luZGV4IGlcbiIKIAkJCQkJCQkgICIgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX2Nv bnN0cmFpbnQgY29uIE9OIChjb25yZWxpZCA9IGkuaW5kcmVsaWQgQU5EIGNvbmluZGlkID0g aS5pbmRleHJlbGlkIEFORCBjb250eXBlIElOICgncCcsJ3UnLCd4JykpXG4iCkBAIC0yNDA0 LDggKzI0MDgsMTIgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2No ZW1hbmFtZSwKIAkJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIiAgICBcIiVzXCIiLAog CQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMCkpOwogCi0JCQkJCS8qIElmIGV4 Y2x1c2lvbiBjb25zdHJhaW50LCBwcmludCB0aGUgY29uc3RyYWludGRlZiAqLwotCQkJCQlp ZiAoc3RyY21wKFBRZ2V0dmFsdWUocmVzdWx0LCBpLCA3KSwgIngiKSA9PSAwKQorCQkJCQkv KgorCQkJCQkgKiBJZiBleGNsdXNpb24gY29uc3RyYWludCBvciBQSy9VTklRVUUgY29uc3Ry YWludCBXSVRIT1VUCisJCQkJCSAqIE9WRVJMQVBTLCBwcmludCB0aGUgY29uc3RyYWludGRl ZgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0cmNtcChQUWdldHZhbHVlKHJlc3VsdCwgaSwgNyks ICJ4IikgPT0gMCB8fAorCQkJCQkJc3RyY21wKFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAxMiks ICJ0IikgPT0gMCkKIAkJCQkJewogCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIiAl cyIsCiAJCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgNikpOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0 LmgKaW5kZXggZTdjZWQxOGE1YmEuLjIyZGQwNGMxNDE4IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvZ2lzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKQEAg LTE3LDYgKzE3LDcgQEAKICNkZWZpbmUgR0lTVF9ICiAKICNpbmNsdWRlICJhY2Nlc3MvaXR1 cC5oIgorI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgogI2luY2x1ZGUgImFjY2Vzcy90 cmFuc2FtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIKICNpbmNsdWRlICJhY2Nlc3Mv eGxvZ2RlZnMuaCIKQEAgLTI0Niw0ICsyNDcsNiBAQCB0eXBlZGVmIHN0cnVjdAogCWRvIHsg KGUpLmtleSA9IChrKTsgKGUpLnJlbCA9IChyKTsgKGUpLnBhZ2UgPSAocGcpOyBcCiAJCSAo ZSkub2Zmc2V0ID0gKG8pOyAoZSkubGVhZmtleSA9IChsKTsgfSB3aGlsZSAoMCkKIAorZXh0 ZXJuIFN0cmF0ZWd5TnVtYmVyIEdpc3RUcmFuc2xhdGVTdHJhdG51bShPaWQgb3BjbGFzcywg U3RyYXRlZ3lOdW1iZXIgc3RyYXQpOworCiAjZW5kaWYJCQkJCQkJLyogR0lTVF9IICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL2luZGV4LmgKaW5kZXggN2Q0MzRmOGU2NTMuLjJkZWE5NmY0N2MzIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9pbmRleC5oCkBAIC05Myw2ICs5Myw3IEBAIGV4dGVybiBPaWQJaW5kZXhfY3JlYXRl KFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKICNkZWZpbmUJSU5ERVhfQ09OU1RSX0NSRUFURV9J TklUX0RFRkVSUkVECSgxIDw8IDIpCiAjZGVmaW5lCUlOREVYX0NPTlNUUl9DUkVBVEVfVVBE QVRFX0lOREVYCSgxIDw8IDMpCiAjZGVmaW5lCUlOREVYX0NPTlNUUl9DUkVBVEVfUkVNT1ZF X09MRF9ERVBTCSgxIDw8IDQpCisjZGVmaW5lCUlOREVYX0NPTlNUUl9DUkVBVEVfV0lUSE9V VF9PVkVSTEFQUyAoMSA8PCA1KQogCiBleHRlcm4gT2lkCWluZGV4X2NvbmN1cnJlbnRseV9j cmVhdGVfY29weShSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCQkJCQkJCQkJICAgT2lkIG9s ZEluZGV4SWQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFp bnQuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4IDdhODAx N2YxNWI1Li45NmMwMDYyNGIxNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jb25zdHJhaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50 LmgKQEAgLTEwNyw2ICsxMDcsMTIgQEAgQ0FUQUxPRyhwZ19jb25zdHJhaW50LDI2MDYsQ29u c3RyYWludFJlbGF0aW9uSWQpCiAJLyogSGFzIGEgbG9jYWwgZGVmaW5pdGlvbiBhbmQgY2Fu bm90IGJlIGluaGVyaXRlZCAqLwogCWJvb2wJCWNvbm5vaW5oZXJpdDsKIAorCS8qCisJICog Rm9yIHByaW1hcnkga2V5cyBhbmQgdW5pcXVlIGNvbnN0cmFpbnRzLCBzaWduaWZpZXMgdGhl IGxhc3QgY29sdW1uIHVzZXMKKwkgKiBvdmVybGFwcyBpbnN0ZWFkIG9mIGVxdWFscy4KKwkg Ki8KKwlib29sCQljb25wZXJpb2Q7CisKICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZh cmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCiAJLyoKQEAgLTE0Niw3ICsx NTIsOCBAQCBDQVRBTE9HKHBnX2NvbnN0cmFpbnQsMjYwNixDb25zdHJhaW50UmVsYXRpb25J ZCkKIAogCS8qCiAJICogSWYgYW4gZXhjbHVzaW9uIGNvbnN0cmFpbnQsIHRoZSBPSURzIG9m IHRoZSBleGNsdXNpb24gb3BlcmF0b3JzIGZvcgotCSAqIGVhY2ggY29sdW1uIG9mIHRoZSBj b25zdHJhaW50CisJICogZWFjaCBjb2x1bW4gb2YgdGhlIGNvbnN0cmFpbnQuICBBbHNvIHNl dCBmb3IgdW5pcXVlIGNvbnN0cmFpbnRzL3ByaW1hcnkKKwkgKiBrZXlzIHVzaW5nIFdJVEhP VVQgT1ZFUkxBUFMuCiAJICovCiAJT2lkCQkJY29uZXhjbG9wWzFdIEJLSV9MT09LVVAocGdf b3BlcmF0b3IpOwogCkBAIC0yMzgsNiArMjQ1LDcgQEAgZXh0ZXJuIE9pZAlDcmVhdGVDb25z dHJhaW50RW50cnkoY29uc3QgY2hhciAqY29uc3RyYWludE5hbWUsCiAJCQkJCQkJCSAgYm9v bCBjb25Jc0xvY2FsLAogCQkJCQkJCQkgIGludCBjb25JbmhDb3VudCwKIAkJCQkJCQkJICBi b29sIGNvbk5vSW5oZXJpdCwKKwkJCQkJCQkJICBib29sIGNvblBlcmlvZCwKIAkJCQkJCQkJ ICBib29sIGlzX2ludGVybmFsKTsKIAogZXh0ZXJuIGJvb2wgQ29uc3RyYWludE5hbWVJc1Vz ZWQoQ29uc3RyYWludENhdGVnb3J5IGNvbkNhdCwgT2lkIG9iaklkLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9k ZWZyZW0uaAppbmRleCAyOWM1MTFlMzE5Ni4uMGM1M2Q2N2QzZWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2RlZnJlbS5oCkBAIC0xNCw2ICsxNCw3IEBACiAjaWZuZGVmIERFRlJFTV9ICiAjZGVmaW5l IERFRlJFTV9ICiAKKyNpbmNsdWRlICJhY2Nlc3Mvc3RyYXRudW0uaCIKICNpbmNsdWRlICJj YXRhbG9nL29iamVjdGFkZHJlc3MuaCIKICNpbmNsdWRlICJub2Rlcy9wYXJhbXMuaCIKICNp bmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgpAQCAtNDQsMTAgKzQ1LDEzIEBAIGV4dGVy biBjaGFyICpDaG9vc2VSZWxhdGlvbk5hbWUoY29uc3QgY2hhciAqbmFtZTEsIGNvbnN0IGNo YXIgKm5hbWUyLAogZXh0ZXJuIGJvb2wgQ2hlY2tJbmRleENvbXBhdGlibGUoT2lkIG9sZElk LAogCQkJCQkJCQkgY29uc3QgY2hhciAqYWNjZXNzTWV0aG9kTmFtZSwKIAkJCQkJCQkJIGNv bnN0IExpc3QgKmF0dHJpYnV0ZUxpc3QsCi0JCQkJCQkJCSBjb25zdCBMaXN0ICpleGNsdXNp b25PcE5hbWVzKTsKKwkJCQkJCQkJIGNvbnN0IExpc3QgKmV4Y2x1c2lvbk9wTmFtZXMsCisJ CQkJCQkJCSBib29sIGlzV2l0aG91dE92ZXJsYXBzKTsKIGV4dGVybiBPaWQJR2V0RGVmYXVs dE9wQ2xhc3MoT2lkIHR5cGVfaWQsIE9pZCBhbV9pZCk7CiBleHRlcm4gT2lkCVJlc29sdmVP cENsYXNzKGNvbnN0IExpc3QgKm9wY2xhc3MsIE9pZCBhdHRyVHlwZSwKIAkJCQkJCSAgIGNv bnN0IGNoYXIgKmFjY2Vzc01ldGhvZE5hbWUsIE9pZCBhY2Nlc3NNZXRob2RJZCk7CitleHRl cm4gdm9pZCBHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShPaWQgb3BjbGFzcywg T2lkIGF0dHR5cGUsCisJCQkJCQkJCQkJCSBPaWQgKm9waWQsIFN0cmF0ZWd5TnVtYmVyICpz dHJhdCk7CiAKIC8qIGNvbW1hbmRzL2Z1bmN0aW9uY21kcy5jICovCiBleHRlcm4gT2JqZWN0 QWRkcmVzcyBDcmVhdGVGdW5jdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZUZ1bmN0 aW9uU3RtdCAqc3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggODVhNjJiNTM4 ZTUuLjlkYzQ2NjdkMmJkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yNzUwLDYg KzI3NTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBDb25zdHJhaW50CiAJYm9vbAkJbnVsbHNfbm90 X2Rpc3RpbmN0OyAvKiBudWxsIHRyZWF0bWVudCBmb3IgVU5JUVVFIGNvbnN0cmFpbnRzICov CiAJTGlzdAkgICAqa2V5czsJCQkvKiBTdHJpbmcgbm9kZXMgbmFtaW5nIHJlZmVyZW5jZWQg a2V5CiAJCQkJCQkJCSAqIGNvbHVtbihzKTsgZm9yIFVOSVFVRS9QSy9OT1QgTlVMTCAqLwor CWJvb2wJCXdpdGhvdXRfb3ZlcmxhcHM7CS8qIFdJVEhPVVQgT1ZFUkxBUFMgc3BlY2lmaWVk ICovCiAJTGlzdAkgICAqaW5jbHVkaW5nOwkJLyogU3RyaW5nIG5vZGVzIG5hbWluZyByZWZl cmVuY2VkIG5vbmtleQogCQkJCQkJCQkgKiBjb2x1bW4ocyk7IGZvciBVTklRVUUvUEsgKi8K IAlMaXN0CSAgICpleGNsdXNpb25zOwkJLyogbGlzdCBvZiAoSW5kZXhFbGVtLCBvcGVyYXRv ciBuYW1lKSBwYWlyczsKQEAgLTMzNzMsNiArMzM3NCw3IEBAIHR5cGVkZWYgc3RydWN0IElu ZGV4U3RtdAogCWJvb2wJCW51bGxzX25vdF9kaXN0aW5jdDsgLyogbnVsbCB0cmVhdG1lbnQg Zm9yIFVOSVFVRSBjb25zdHJhaW50cyAqLwogCWJvb2wJCXByaW1hcnk7CQkvKiBpcyBpbmRl eCBhIHByaW1hcnkga2V5PyAqLwogCWJvb2wJCWlzY29uc3RyYWludDsJLyogaXMgaXQgZm9y IGEgcGtleS91bmlxdWUgY29uc3RyYWludD8gKi8KKwlib29sCQlpc3dpdGhvdXRvdmVybGFw czsJLyogaXMgdGhlIGNvbnN0cmFpbnQgV0lUSE9VVCBPVkVSTEFQUz8gKi8KIAlib29sCQlk ZWZlcnJhYmxlOwkJLyogaXMgdGhlIGNvbnN0cmFpbnQgREVGRVJSQUJMRT8gKi8KIAlib29s CQlpbml0ZGVmZXJyZWQ7CS8qIGlzIHRoZSBjb25zdHJhaW50IElOSVRJQUxMWSBERUZFUlJF RD8gKi8KIAlib29sCQl0cmFuc2Zvcm1lZDsJLyogdHJ1ZSB3aGVuIHRyYW5zZm9ybUluZGV4 U3RtdCBpcyBmaW5pc2hlZCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC93aXRob3V0X292ZXJsYXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv d2l0aG91dF9vdmVybGFwcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjk0MjM0NzU4NTk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMCwwICsxLDEwODggQEAKKy0t IFRlc3RzIGZvciBXSVRIT1VUIE9WRVJMQVBTLgorLS0KKy0tIFdlIGxlYXZlIGJlaGluZCBz ZXZlcmFsIHRhYmxlcyB0byB0ZXN0IHBnX2R1bXAgZXRjOgorLS0gdGVtcG9yYWxfcm5nLCB0 ZW1wb3JhbF9ybmcyLAorLS0gdGVtcG9yYWxfZmtfcm5nMnJuZy4KK1NFVCBkYXRlc3R5bGUg VE8gSVNPLCBZTUQ7CistLQorLS0gdGVzdCBpbnB1dCBwYXJzZXIKKy0tCistLSBQSyB3aXRo IG5vIGNvbHVtbnMganVzdCBXSVRIT1VUIE9WRVJMQVBTOgorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3JuZyAoCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf cm5nX3BrIFBSSU1BUlkgS0VZICh2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0VS Uk9SOiAgY29uc3RyYWludCB1c2luZyBXSVRIT1VUIE9WRVJMQVBTIG5lZWRzIGF0IGxlYXN0 IHR3byBjb2x1bW5zCistLSBQSyB3aXRoIGEgcmFuZ2UgY29sdW1uL1BFUklPRCB0aGF0IGlz bid0IHRoZXJlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisJaWQgSU5URUdFUiwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiBuYW1l ZCBpbiBrZXkgZG9lcyBub3QgZXhpc3QKK0xJTkUgMzogIENPTlNUUkFJTlQgdGVtcG9yYWxf cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VLi4uCisgICAgICAgICBe CistLSBQSyB3aXRoIGEgbm9uLXJhbmdlIGNvbHVtbjoKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBURVhULAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKyk7CitFUlJPUjogIGRhdGEgdHlwZSB0ZXh0IGhhcyBubyBkZWZhdWx0IG9wZXJh dG9yIGNsYXNzIGZvciBhY2Nlc3MgbWV0aG9kICJnaXN0IgorSElOVDogIFlvdSBtdXN0IHNw ZWNpZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleCBvciBkZWZpbmUgYSBkZWZh dWx0IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0eXBlLgorLS0gUEsgd2l0aCBvbmUg Y29sdW1uIHBsdXMgYSByYW5nZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKAorCS0t IFNpbmNlIHdlIGNhbid0IGRlcGVuZCBvbiBoYXZpbmcgYnRyZWVfZ2lzdCBoZXJlLAorCS0t IHVzZSBhbiBpbnQ0cmFuZ2UgaW5zdGVhZCBvZiBhbiBpbnQuCisJLS0gKFRoZSByYW5nZXR5 cGVzIHJlZ3Jlc3Npb24gdGVzdCB1c2VzIHRoZSBzYW1lIHRyaWNrLikKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0 ZW1wb3JhbF9ybmcKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9ybmci CisgIENvbHVtbiAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1 bHQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tCisgaWQgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKK0lu ZGV4ZXM6CisgICAgInRlbXBvcmFsX3JuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lk KSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmdfcGsn OworICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NFTEVDVCBw Z19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZ19wayc7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRF WCB0ZW1wb3JhbF9ybmdfcGsgT04gdGVtcG9yYWxfcm5nIFVTSU5HIGdpc3QgKGlkLCB2YWxp ZF9hdCkKKygxIHJvdykKKworLS0gUEsgZnJvbSBMSUtFOgorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3JuZzIgKExJS0UgdGVtcG9yYWxfcm5nIElOQ0xVRElORyBBTEwpOworXGQgdGVtcG9y YWxfcm5nMgorICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nMiIKKyAg Q29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAK Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBpZCAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisg dmFsaWRfYXQgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorSW5kZXhl czoKKyAgICAidGVtcG9yYWxfcm5nMl9wa2V5IiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMjsKKy0tIG5v IFBLIGZyb20gSU5IRVJJVFM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoKSBJTkhF UklUUyAodGVtcG9yYWxfcm5nKTsKK1xkIHRlbXBvcmFsX3JuZzIKKyAgICAgICAgICAgICBU YWJsZSAicHVibGljLnRlbXBvcmFsX3JuZzIiCisgIENvbHVtbiAgfCAgIFR5cGUgICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgfCBpbnQ0cmFu Z2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAKK0luaGVyaXRzOiB0ZW1wb3JhbF9ybmcKKworRFJP UCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmc7CistLSBQ SyBpbiBpbmhlcml0aW5nIHRhYmxlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlCispOworQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3JuZzIgKAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIElOSEVSSVRTICh0ZW1w b3JhbF9ybmcpOworXGQgdGVtcG9yYWxfcm5nMgorICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMudGVtcG9yYWxfcm5nMiIKKyAgQ29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICB8IGludDRyYW5nZSB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcm5nX3BrIiBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitJbmhlcml0czogdGVtcG9y YWxfcm5nCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nIENBU0NBREU7CitOT1RJQ0U6ICBk cm9wIGNhc2NhZGVzIHRvIHRhYmxlIHRlbXBvcmFsX3JuZzIKKy0tIEFkZCBQSyB0byBhbHJl YWR5IGluaGVyaXRpbmcgdGFibGU6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcm5nMiAoKSBJTkhFUklUUyAodGVtcG9yYWxfcm5nKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX3JuZzIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1wb3JhbF9y bmcyCisgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9ybmcyIgorICBDb2x1 bW4gIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQor IGlkICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxp ZF9hdCB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgor ICAgICJ0ZW1wb3JhbF9ybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKK0luaGVyaXRzOiB0ZW1wb3JhbF9ybmcKKworRFJPUCBUQUJMRSB0ZW1w b3JhbF9ybmcyOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmc7CistLSBQSyB3aXRoIHR3byBj b2x1bW5zIHBsdXMgYSByYW5nZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgKKwlp ZDEgaW50NHJhbmdlLAorCWlkMiBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcm5nMgorICAgICAg ICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nMiIKKyAgQ29sdW1uICB8ICAgVHlw ZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZDEgICAgICB8 IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgaWQyICAgICAgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdl IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX3Ju ZzJfcGsiIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJh aW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nMl9wayc7CisgICAgICAgICAgICAg ICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZIChp ZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNU IHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50 IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nMl9wayc7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcm5nMl9wayBPTiB0ZW1wb3JhbF9ybmcy IFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkKKygxIHJvdykKKworLS0gUEsgd2l0 aCBhIGN1c3RvbSByYW5nZSB0eXBlOgorQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBBUyByYW5n ZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMiKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgdGV4dHJhbmdlMiwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX3JuZzNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX3JuZzNfcGs7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CitE Uk9QIFRZUEUgdGV4dHJhbmdlMjsKKy0tIFBLIHdpdGggb25lIGNvbHVtbiBwbHVzIGEgbXVs dGlyYW5nZToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X21sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworXGQgdGVtcG9yYWxfbWx0cm5nCisgICAgICAgICAgICAgICBUYWJsZSAicHVibGlj LnRlbXBvcmFsX21sdHJuZyIKKyAgQ29sdW1uICB8ICAgICAgVHlwZSAgICAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgfCBpbnQ0cmFu Z2UgICAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgfCBkYXRlbXVs dGlyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgorICAgICJ0ZW1w b3JhbF9tbHRybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nX3BrJzsKKyAgICAgICAg ICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2luZGV4 ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFt ZSA9ICd0ZW1wb3JhbF9tbHRybmdfcGsnOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBVTklRVUUg SU5ERVggdGVtcG9yYWxfbWx0cm5nX3BrIE9OIHRlbXBvcmFsX21sdHJuZyBVU0lORyBnaXN0 IChpZCwgdmFsaWRfYXQpCisoMSByb3cpCisKKy0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1 cyBhIG11bHRpcmFuZ2U6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMiAoCisgIGlk MSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJh bmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlk MSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX21s dHJuZzIKKyAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9tbHRybmcyIgor ICBDb2x1bW4gIHwgICAgICBUeXBlICAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0KKyBpZDEgICAgICB8IGludDRyYW5nZSAgICAgIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKKyBpZDIgICAgICB8IGludDRyYW5nZSAgICAgIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCB8IGRhdGVtdWx0aXJhbmdlIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX21sdHJuZzJfcGsiIFBS SU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKworU0VM RUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nMl9wayc7CisgICAgICAgICAgICAgICBwZ19n ZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZIChpZDEsIGlk MiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBnX2dl dF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nMl9wayc7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfbWx0cm5nMl9wayBPTiB0 ZW1wb3JhbF9tbHRybmcyIFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkKKygxIHJv dykKKworLS0gVU5JUVVFIHdpdGggbm8gY29sdW1ucyBqdXN0IFdJVEhPVVQgT1ZFUkxBUFM6 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispOworRVJST1I6ICBjb25zdHJhaW50IHVzaW5nIFdJVEhPVVQgT1ZFUkxB UFMgbmVlZHMgYXQgbGVhc3QgdHdvIGNvbHVtbnMKKy0tIFVOSVFVRSB3aXRoIGEgcmFuZ2Ug Y29sdW1uL1BFUklPRCB0aGF0IGlzbid0IHRoZXJlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3JuZzMgKAorCWlkIElOVEVHRVIsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVO SVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworRVJST1I6ICBjb2x1 bW4gInZhbGlkX2F0IiBuYW1lZCBpbiBrZXkgZG9lcyBub3QgZXhpc3QKK0xJTkUgMzogIENP TlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WLi4uCisgICAgICAgICBeCistLSBVTklRVUUgd2l0aCBhIG5vbi1yYW5nZSBjb2x1bW46 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlk X2F0IFRFWFQsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworRVJST1I6ICBkYXRhIHR5cGUgdGV4dCBo YXMgbm8gZGVmYXVsdCBvcGVyYXRvciBjbGFzcyBmb3IgYWNjZXNzIG1ldGhvZCAiZ2lzdCIK K0hJTlQ6ICBZb3UgbXVzdCBzcGVjaWZ5IGFuIG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgaW5k ZXggb3IgZGVmaW5lIGEgZGVmYXVsdCBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGRhdGEgdHlw ZS4KKy0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIHJhbmdlOgorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3JuZzMgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFu Z2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcm5nMworICAgICAgICAgICAg IFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nMyIKKyAgQ29sdW1uICB8ICAgVHlwZSAgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICB8IGludDRy YW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfYXQgfCBkYXRlcmFuZ2Ug fCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcm5n M191cSIgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKworU0VMRUNU IHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNv bm5hbWUgPSAndGVtcG9yYWxfcm5nM191cSc7CisgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFp bnRkZWYgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykK KworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19j b25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nM191cSc7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENS RUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcm5nM191cSBPTiB0ZW1wb3JhbF9ybmczIFVT SU5HIGdpc3QgKGlkLCB2YWxpZF9hdCkKKygxIHJvdykKKworRFJPUCBUQUJMRSB0ZW1wb3Jh bF9ybmczOworLS0gVU5JUVVFIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIHJhbmdlOgorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorCWlkMSBpbnQ0cmFuZ2UsCisJaWQyIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmcz X3VxIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOwor XGQgdGVtcG9yYWxfcm5nMworICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxf cm5nMyIKKyAgQ29sdW1uICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyBpZDEgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgaWQyICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorIHZhbGlkX2F0IHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK0lu ZGV4ZXM6CisgICAgInRlbXBvcmFsX3JuZzNfdXEiIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihv aWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzNf dXEnOworICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFVOSVFV RSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisoMSByb3cpCisKK1NF TEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3Ry YWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzNfdXEnOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRlbXBvcmFsX3JuZzNfdXEgT04gdGVtcG9yYWxf cm5nMyBVU0lORyBnaXN0IChpZDEsIGlkMiwgdmFsaWRfYXQpCisoMSByb3cpCisKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcm5nMzsKKy0tIFVOSVFVRSB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5 cGU6CitDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0eXBlPXRleHQsIGNv bGxhdGlvbj0iQyIpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCB0ZXh0cmFuZ2UyLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5n M191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX3JuZzMgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXE7 CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CitEUk9QIFRZUEUgdGV4dHJhbmdlMjsKKy0t CistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCistLQorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3JuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZQor KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X3JuZ19waworCVBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CistLSBQSyB3aXRoIFVTSU5HIElOREVYIChub3QgcG9zc2libGUpOgorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZQorKTsK K0NSRUFURSBJTkRFWCBpZHhfdGVtcG9yYWwzX3VxIE9OIHRlbXBvcmFsMyBVU0lORyBnaXN0 IChpZCwgdmFsaWRfYXQpOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWwzX3BrCisJUFJJTUFSWSBLRVkgVVNJTkcgSU5ERVggaWR4X3RlbXBvcmFs M191cTsKK0VSUk9SOiAgImlkeF90ZW1wb3JhbDNfdXEiIGlzIG5vdCBhIHVuaXF1ZSBpbmRl eAorTElORSAyOiAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3BrCisgICAgICAgICAgICAg XgorREVUQUlMOiAgQ2Fubm90IGNyZWF0ZSBhIHByaW1hcnkga2V5IG9yIHVuaXF1ZSBjb25z dHJhaW50IHVzaW5nIHN1Y2ggYW4gaW5kZXguCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKy0t IFVOSVFVRSB3aXRoIFVTSU5HIElOREVYIChub3QgcG9zc2libGUpOgorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZQorKTsK K0NSRUFURSBJTkRFWCBpZHhfdGVtcG9yYWwzX3VxIE9OIHRlbXBvcmFsMyBVU0lORyBnaXN0 IChpZCwgdmFsaWRfYXQpOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisJQUREIENPTlNUUkFJ TlQgdGVtcG9yYWwzX3VxCisJVU5JUVVFIFVTSU5HIElOREVYIGlkeF90ZW1wb3JhbDNfdXE7 CitFUlJPUjogICJpZHhfdGVtcG9yYWwzX3VxIiBpcyBub3QgYSB1bmlxdWUgaW5kZXgKK0xJ TkUgMjogIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM191cQorICAgICAgICAgICAgIF4KK0RF VEFJTDogIENhbm5vdCBjcmVhdGUgYSBwcmltYXJ5IGtleSBvciB1bmlxdWUgY29uc3RyYWlu dCB1c2luZyBzdWNoIGFuIGluZGV4LgorRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLSBVTklR VUUgd2l0aCBVU0lORyBbVU5JUVVFXSBJTkRFWCAocG9zc2libGUgYnV0IG5vdCBhIHRlbXBv cmFsIGNvbnN0cmFpbnQpOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZQorKTsKK0NSRUFURSBVTklRVUUgSU5ERVggaWR4 X3RlbXBvcmFsM191cSBPTiB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbDMKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKwlVTklRVUUgVVNJ TkcgSU5ERVggaWR4X3RlbXBvcmFsM191cTsKK05PVElDRTogIEFMVEVSIFRBQkxFIC8gQURE IENPTlNUUkFJTlQgVVNJTkcgSU5ERVggd2lsbCByZW5hbWUgaW5kZXggImlkeF90ZW1wb3Jh bDNfdXEiIHRvICJ0ZW1wb3JhbDNfdXEiCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKy0tIEFk ZCByYW5nZSBjb2x1bW4gYW5kIHRoZSBQSyBhdCB0aGUgc2FtZSB0aW1lCitDUkVBVEUgVEFC TEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bDMKKwlBREQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbDNfcGsKKwlQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLSBBZGQgcmFuZ2UgY29sdW1uIGFuZCBV TklRVUUgY29uc3RyYWludCBhdCB0aGUgc2FtZSB0aW1lCitDUkVBVEUgVEFCTEUgdGVtcG9y YWwzICgKKwlpZCBpbnQ0cmFuZ2UKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKwlBREQg Q09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNf dXEKKwlVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RST1AgVEFC TEUgdGVtcG9yYWwzOworLS0KKy0tIHJhbmdlIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93 cworLS0KK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfcm5nX3BrOworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4 LTAyLTAzJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIs MyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrOworLS0gc2hvdWxkIGZhaWw6CitCRUdJTjsKKyAg SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CisgIEFMVEVSIFRB QkxFIHRlbXBvcmFsX3JuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0VSUk9SOiAgY291bGQg bm90IGNyZWF0ZSBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWxfcm5nX3BrIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0w MykpIGNvbmZsaWN0cyB3aXRoIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAx LTAxLDIwMTgtMDEtMDUpKS4KK1JPTExCQUNLOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5n IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nOworLS0K Ky0tIHJhbmdlIFBLOiB0ZXN0IGluc2VydHMKKy0tCistLSBva2F5OgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMt MDMnLCAnMjAxOC0wNC0wNCcpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpOworLS0gc2hv dWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsK K0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ybmdfcGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rp bmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0wMykp LgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVM TCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitFUlJPUjogIG51 bGwgdmFsdWUgaW4gY29sdW1uICJpZCIgb2YgcmVsYXRpb24gInRlbXBvcmFsX3JuZyIgdmlv bGF0ZXMgbm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFp bnMgKG51bGwsIFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpKS4KK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIE5VTEwpOworRVJST1I6 ICBudWxsIHZhbHVlIGluIGNvbHVtbiAidmFsaWRfYXQiIG9mIHJlbGF0aW9uICJ0ZW1wb3Jh bF9ybmciIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKK0RFVEFJTDogIEZhaWxpbmcg cm93IGNvbnRhaW5zIChbMyw0KSwgbnVsbCkuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Ju ZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIw MTgtMDEtMDIsMjAxOC0wMi0wMykKKyBbMSwyKSB8IFsyMDE4LTAzLTAzLDIwMTgtMDQtMDQp CisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KQorIFszLDQpIHwgWzIwMTgtMDEt MDEsKQorKDQgcm93cykKKworLS0KKy0tIHJhbmdlIFBLOiB0ZXN0IHVwZGF0ZXMKKy0tCist LSB1cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAg ICBpZCA9ICdbMTEsMTIpJworV0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRf YXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIHRoZSByYW5nZSBwYXJ0CitV UERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAgICB2YWxpZF9hdCA9ICdbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQg QD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQgb25jZQorVVBEQVRF ICB0ZW1wb3JhbF9ybmcKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZhbGlk X2F0ID0gJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJworV0hFUkUgICBpZCA9ICdbMTEsMTIp JworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICBpZCAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbMSwyKSAgIHwgWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkKKyBbMiwzKSAgIHwg WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkKKyBbMyw0KSAgIHwgWzIwMTgtMDEtMDEsKQorIFsy MSwyMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKQorKDQgcm93cykKKworLS0gc2hvdWxk IGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAgICBpZCA9ICdbMSwyKScsCisg ICAgICAgIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDUn KQorV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZh bHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ybmdfcGsiCitE RVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wNSwyMDE4LTA1 LTA1KSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwy KSwgWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkpLgorLS0gc2V0IHRoZSBzY2FsYXIgcGFydCB0 byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAgICBpZCA9IE5VTEwsCisgICAg ICAgIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDUnKQor V0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4g ImlkIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25z dHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgWzIwMTgtMDMt MDUsMjAxOC0wNS0wNSkpLgorLS0gc2V0IHRoZSByYW5nZSBwYXJ0IHRvIE5VTEwKK1VQREFU RSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAgICAgICAgdmFsaWRf YXQgPSBOVUxMCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworRVJST1I6ICBudWxsIHZhbHVl IGluIGNvbHVtbiAidmFsaWRfYXQiIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9ybmciIHZpb2xh dGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5z IChbMSwyKSwgbnVsbCkuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSAgIHwgWzIwMTgtMDMt MDMsMjAxOC0wNC0wNCkKKyBbMiwzKSAgIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkKKyBb Myw0KSAgIHwgWzIwMTgtMDEtMDEsKQorIFsyMSwyMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAy LTAzKQorKDQgcm93cykKKworLS0KKy0tIHJhbmdlIFVROiB0ZXN0IHdpdGggZXhpc3Rpbmcg cm93cworLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKwlpZCBpbnQ0cmFuZ2Us CisJdmFsaWRfYXQgZGF0ZXJhbmdlCispOworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMn LCAnMjAxOC0wNC0wNCcpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5J UVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ybmczIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxOworLS0gc2hvdWxk IGZhaWw6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAx LTA1JykpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CitFUlJPUjogIGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBv cmFsX3JuZzNfdXEiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx OC0wMS0wMiwyMDE4LTAyLTAzKSkgY29uZmxpY3RzIHdpdGgga2V5IChpZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpLgorUk9MTEJBQ0s7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5J UVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmczOworLS0KKy0tIHJhbmdlIFVROiB0ZXN0IGluc2VydHMKKy0tCistLSBva2F5 OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsIE5VTEwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkg VkFMVUVTIChOVUxMLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMs NCknLCBOVUxMKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAxLTA1JykpOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlv bGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3JuZzNfdXEiCitERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkg Y29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIw MTgtMDEtMDIsMjAxOC0wMi0wMykpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmczIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAxOC0w MS0wMiwyMDE4LTAyLTAzKQorIFsxLDIpIHwgWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCkKKyBb MiwzKSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpCisgWzMsNCkgfCBbMjAxOC0wMS0wMSwp CisgWzMsNCkgfCAKKyAgICAgICB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpCisoNiByb3dz KQorCistLQorLS0gcmFuZ2UgVVE6IHRlc3QgdXBkYXRlcworLS0KKy0tIHVwZGF0ZSB0aGUg c2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcm5nMworU0VUICAgICBpZCA9ICdbMTEs MTIpJworV0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgt MDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIHRoZSByYW5nZSBwYXJ0CitVUERBVEUgIHRlbXBv cmFsX3JuZzMKK1NFVCAgICAgdmFsaWRfYXQgPSAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkn CitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAx LTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSBib3RoIGF0IG9uY2UKK1VQREFURSAgdGVtcG9yYWxf cm5nMworU0VUICAgICBpZCA9ICdbMjEsMjIpJywKKyAgICAgICAgdmFsaWRfYXQgPSAnWzIw MTgtMDEtMDIsMjAxOC0wMi0wMyknCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAg IHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKKy0tIHNldCB0aGUgc2NhbGFyIHBh cnQgdG8gTlVMTAorVVBEQVRFICB0ZW1wb3JhbF9ybmczCitTRVQgICAgIGlkID0gTlVMTCwK KyAgICAgICAgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IHRoZSByYW5nZSBwYXJ0IHRv IE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcm5nMworU0VUICAgICBpZCA9ICdbMSwyKScsCisg ICAgICAgIHZhbGlkX2F0ID0gTlVMTAorV0hFUkUgICBpZCBJUyBOVUxMIEFORCB2YWxpZF9h dCBAPiAnMjAyMC0wNi0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZzMg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDE4 LTAzLTAzLDIwMTgtMDQtMDQpCisgWzEsMikgfCAKKyBbMiwzKSB8IFsyMDE4LTAxLTAxLDIw MTgtMDEtMDUpCisgWzMsNCkgfCBbMjAxOC0wMS0wMSwpCisgWzMsNCkgfCAKKyAgICAgICB8 IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpCisoNiByb3dzKQorCistLSBzaG91bGQgZmFpbDoK K1VQREFURSAgdGVtcG9yYWxfcm5nMworU0VUICAgICB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMy0wMScsICcyMDE4LTA1LTA1JykKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2 YWxpZF9hdCBJUyBOVUxMOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFsdWUgdmlvbGF0 ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3JuZzNfdXEiCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wMSwyMDE4LTA1LTA1KSkgY29u ZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgt MDMtMDMsMjAxOC0wNC0wNCkpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmczIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAor LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAxOC0wMy0w MywyMDE4LTA0LTA0KQorIFsxLDIpIHwgCisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAx LTA1KQorIFszLDQpIHwgWzIwMTgtMDEtMDEsKQorIFszLDQpIHwgCisgICAgICAgfCBbMjAx OC0wMS0wMSwyMDE4LTAxLTA1KQorKDYgcm93cykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9y bmczOworLS0KKy0tIG11bHRpcmFuZ2UgUEs6IHRlc3Qgd2l0aCBleGlzdGluZyByb3dzCist LQorQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9tbHRybmdfcGs7CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0 cm5nX3BrOworLS0gc2hvdWxkIGZhaWw6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworICBBTFRFUiBU QUJMRSB0ZW1wb3JhbF9tbHRybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitFUlJPUjog IGNvdWxkIG5vdCBjcmVhdGUgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX21sdHJu Z19wayIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0w MiwyMDE4LTAyLTAzKX0pIGNvbmZsaWN0cyB3aXRoIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEs MiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pLgorUk9MTEJBQ0s7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9tbHRybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmc7CistLQorLS0gbXVsdGlyYW5nZSBQSzogdGVzdCBpbnNlcnRz CistLQorLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMicsICcyMDE4LTAyLTAzJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKSk7CistLSBzaG91bGQg ZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAxLTA1JykpKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVz IGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9tbHRybmdfcGsiCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSl9KSBj b25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIw MTgtMDEtMDIsMjAxOC0wMi0wMyl9KS4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpbiBj b2x1bW4gImlkIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBub3Qt bnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwg e1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfSkuCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKK0VSUk9SOiAgbnVs bCB2YWx1ZSBpbiBjb2x1bW4gInZhbGlkX2F0IiBvZiByZWxhdGlvbiAidGVtcG9yYWxfbWx0 cm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJv dyBjb250YWlucyAoWzMsNCksIG51bGwpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRy bmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikg fCB7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9CisgWzEsMikgfCB7WzIwMTgtMDMtMDMsMjAx OC0wNC0wNCl9CisgWzIsMykgfCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0wNSl9CisgWzMsNCkg fCB7WzIwMTgtMDEtMDEsKX0KKyg0IHJvd3MpCisKKy0tCistLSBtdWx0aXJhbmdlIFBLOiB0 ZXN0IHVwZGF0ZXMKKy0tCistLSB1cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRl bXBvcmFsX21sdHJuZworU0VUICAgICBpZCA9ICdbMTEsMTIpJworV0hFUkUgICBpZCA9ICdb MSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBk YXRlIHRoZSBtdWx0aXJhbmdlIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nCitTRVQg ICAgIHZhbGlkX2F0ID0gJ3tbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0nCitXSEVSRSAgIGlk ID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsK Ky0tIHVwZGF0ZSBib3RoIGF0IG9uY2UKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nCitTRVQg ICAgIGlkID0gJ1syMSwyMiknLAorICAgICAgICB2YWxpZF9hdCA9ICd7WzIwMTgtMDEtMDIs MjAxOC0wMi0wMyl9JworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9h dCBAPiAnMjAyMC0wMS0xNSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJu ZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICBpZCAgICB8ICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEs MikgICB8IHtbMjAxOC0wMy0wMywyMDE4LTA0LTA0KX0KKyBbMiwzKSAgIHwge1syMDE4LTAx LTAxLDIwMTgtMDEtMDUpfQorIFszLDQpICAgfCB7WzIwMTgtMDEtMDEsKX0KKyBbMjEsMjIp IHwge1syMDE4LTAxLTAyLDIwMTgtMDItMDMpfQorKDQgcm93cykKKworLS0gc2hvdWxkIGZh aWw6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAgICBpZCA9ICdbMSwyKScsCisg ICAgICAgIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTA1 JywgJzIwMTgtMDUtMDUnKSkKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CitFUlJPUjogIGNv bmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVt cG9yYWxfbWx0cm5nX3BrIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwg e1syMDE4LTAzLTA1LDIwMTgtMDUtMDUpfSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5 IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpfSkuCist LSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5n CitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wNScpKQorV0hFUkUgICBpZCA9 ICdbMjEsMjIpJzsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImlkIiBvZiByZWxh dGlvbiAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitE RVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwge1syMDE4LTAzLTA1LDIwMTgt MDUtMDUpfSkuCistLSBzZXQgdGhlIG11bHRpcmFuZ2UgcGFydCB0byBOVUxMCitVUERBVEUg IHRlbXBvcmFsX21sdHJuZworU0VUICAgICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlk X2F0ID0gTlVMTAorV0hFUkUgICBpZCA9ICdbMjEsMjIpJzsKK0VSUk9SOiAgbnVsbCB2YWx1 ZSBpbiBjb2x1bW4gInZhbGlkX2F0IiBvZiByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5nIiB2 aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250 YWlucyAoWzEsMiksIG51bGwpLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgaWQgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpICAg fCB7WzIwMTgtMDMtMDMsMjAxOC0wNC0wNCl9CisgWzIsMykgICB8IHtbMjAxOC0wMS0wMSwy MDE4LTAxLTA1KX0KKyBbMyw0KSAgIHwge1syMDE4LTAxLTAxLCl9CisgWzIxLDIyKSB8IHtb MjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0KKyg0IHJvd3MpCisKKy0tCistLSBtdWx0aXJhbmdl IFVROiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cworLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9tbHRybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UK Kyk7CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMicsICcyMDE4LTAyLTAzJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Myw0KScsIE5VTEwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMyBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9tbHRybmczX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMyBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfbWx0cm5nM191cTsKKy0tIHNob3VsZCBmYWlsOgorQkVHSU47CisgIElO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpKSk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZzMgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKTsKK0VSUk9SOiAgY291bGQgbm90IGNyZWF0ZSBleGNsdXNpb24gY29uc3RyYWludCAi dGVtcG9yYWxfbWx0cm5nM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEs MiksIHtbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0pIGNvbmZsaWN0cyB3aXRoIGtleSAoaWQs IHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pLgorUk9MTEJB Q0s7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmczIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX21sdHJuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmczOworLS0KKy0tIG11bHRpcmFuZ2UgVVE6 IHRlc3QgaW5zZXJ0cworLS0KKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVM TCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTIChOVUxMLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7 CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29u c3RyYWludCAidGVtcG9yYWxfbWx0cm5nM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0pIGNvbmZsaWN0cyB3aXRo IGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMiwyMDE4 LTAyLTAzKX0pLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwge1syMDE4LTAxLTAy LDIwMTgtMDItMDMpfQorIFsxLDIpIHwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpfQorIFsy LDMpIHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorIFszLDQpIHwge1syMDE4LTAxLTAx LCl9CisgWzMsNCkgfCAKKyAgICAgICB8IHtbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KX0KKyg2 IHJvd3MpCisKKy0tCistLSBtdWx0aXJhbmdlIFVROiB0ZXN0IHVwZGF0ZXMKKy0tCistLSB1 cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAg ICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlk X2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgbXVsdGlyYW5nZSBw YXJ0CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgdmFsaWRfYXQgPSAne1sy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfScKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAg ICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gdXBkYXRlIGJvdGggYXQg b25jZQorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmczCitTRVQgICAgIGlkID0gJ1syMSwyMikn LAorICAgICAgICB2YWxpZF9hdCA9ICd7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9JworV0hF UkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6 OmRhdGU7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9y YWxfbWx0cm5nMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkKK1dI RVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIG11bHRpcmFuZ2UgcGFydCB0byBO VUxMCitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAor ICAgICAgICB2YWxpZF9hdCA9IE5VTEwKK1dIRVJFICAgaWQgSVMgTlVMTCBBTkQgdmFsaWRf YXQgQD4gJzIwMjAtMDYtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRy bmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIp IHwge1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpfQorIFsxLDIpIHwgCisgWzIsMykgfCB7WzIw MTgtMDEtMDEsMjAxOC0wMS0wNSl9CisgWzMsNCkgfCB7WzIwMTgtMDEtMDEsKX0KKyBbMyw0 KSB8IAorICAgICAgIHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorKDYgcm93cykKKwor LS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NFVCAgICAgdmFs aWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAnMjAxOC0w NS0wNScpKQorV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CitF UlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3Ry YWludCAidGVtcG9yYWxfbWx0cm5nM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzEsMiksIHtbMjAxOC0wMy0wMSwyMDE4LTA1LTA1KX0pIGNvbmZsaWN0cyB3aXRoIGV4 aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMy0wMywyMDE4LTA0 LTA0KX0pLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgCistLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwge1syMDE4LTAzLTAzLDIw MTgtMDQtMDQpfQorIFsxLDIpIHwgCisgWzIsMykgfCB7WzIwMTgtMDEtMDEsMjAxOC0wMS0w NSl9CisgWzMsNCkgfCB7WzIwMTgtMDEtMDEsKX0KKyBbMyw0KSB8IAorICAgICAgIHwge1sy MDE4LTAxLTAxLDIwMTgtMDEtMDUpfQorKDYgcm93cykKKworRFJPUCBUQUJMRSB0ZW1wb3Jh bF9tbHRybmczOworLS0KKy0tIHRlc3QgYSByYW5nZSB3aXRoIGJvdGggYSBQSyBhbmQgYSBV TklRVUUgY29uc3RyYWludAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBp bnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgaWQyIGludDhyYW5nZSwKKyAg bmFtZSBURVhULAorICBDT05TVFJBSU5UIHRlbXBvcmFsM19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsM191 bmlxIFVOSVFVRSAoaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5hbWUpCisgIFZBTFVFUwor ICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s3 LDgpJywgJ2ZvbycpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIw MTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXInKQorOworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7 CistLQorLS0gdGVzdCBjaGFuZ2luZyB0aGUgUEsncyBkZXBlbmRlbmNpZXMKKy0tCitDUkVB VEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWwzX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgQUxURVIg Q09MVU1OIHZhbGlkX2F0IERST1AgTk9UIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRf YXQiIGlzIGluIGEgcHJpbWFyeSBrZXkKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBBTFRFUiBD T0xVTU4gdmFsaWRfYXQgVFlQRSB0c3R6cmFuZ2UgVVNJTkcgdHN0enJhbmdlKGxvd2VyKHZh bGlkX2F0KSwgdXBwZXIodmFsaWRfYXQpKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBSRU5B TUUgQ09MVU1OIHZhbGlkX2F0IFRPIHZhbGlkX3RocnU7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bDMgRFJPUCBDT0xVTU4gdmFsaWRfdGhydTsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0K Ky0tIHRlc3QgUEFSVElUSU9OIEJZIGZvciByYW5nZXMKKy0tCistLSB0ZW1wb3JhbCBQUklN QVJZIEtFWToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCisJaWQgaW50 NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0LAorCUNPTlNUUkFJ TlQgdGVtcG9yYWxfcGFyaXRpb25lZF9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFC TEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElO ICgnWzEsMiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0cDIgUEFSVElUSU9OIE9GIHRl bXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkg VkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0w MScpLCAnb25lJyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAw MC0wMy0wMScpLCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEn LCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAyLTAxKSB8IG9uZQorIFsx LDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMy0wMSkgfCBvbmUKKyBbMyw0KSB8IFsyMDAwLTAx LTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdHAx IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgbmFtZSAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0K KyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25lCisgWzEsMikgfCBbMjAw MC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSB0 cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisoMSByb3cp CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CistLSB0ZW1wb3JhbCBVTklR VUU6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgKAorCWlkIGludDRyYW5n ZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKwlDT05TVFJBSU5UIHRl bXBvcmFsX3Bhcml0aW9uZWRfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0cDEgUEFS VElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScs ICdbMiwzKScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFy dGl0aW9uZWQgRk9SIFZBTFVFUyBJTiAoJ1szLDQpJywgJ1s0LDUpJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKKyAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUn KSwKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyks ICdvbmUnKSwKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAx LTAxJyksICd0aHJlZScpOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0K KyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25lCisgWzEsMikgfCBbMjAw MC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQorIFszLDQpIHwgWzIwMDAtMDEtMDEsMjAxMC0w MS0wMSkgfCB0aHJlZQorKDMgcm93cykKKworU0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1l IAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQorIFsxLDIpIHwg WzIwMDAtMDEtMDEsMjAwMC0wMi0wMSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAyLTAxLDIw MDAtMDMtMDEpIHwgb25lCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5h bWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMyw0 KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKygxIHJvdykKKworRFJPUCBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKy0tIEFMVEVSIFRBQkxFIFJFUExJQ0EgSURF TlRJVFkKKy0tIChzaG91bGQgZmFpbCkKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBSRVBM SUNBIElERU5USVRZIFVTSU5HIElOREVYIHRlbXBvcmFsX3JuZ19wazsKK0VSUk9SOiAgY2Fu bm90IHVzZSBub24tdW5pcXVlIGluZGV4ICJ0ZW1wb3JhbF9ybmdfcGsiIGFzIHJlcGxpY2Eg aWRlbnRpdHkKKy0tCistLSBPTiBDT05GTElDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Ju ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0 aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScp KSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZM SUNUIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBk YXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBETyBO T1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEp CisgWzEsMikgfCBbMjAxMC0wMS0wMSwyMDIwLTAxLTAxKQorIFsyLDMpIHwgWzIwMDUtMDEt MDEsMjAwNi0wMS0wMSkKKygzIHJvd3MpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBD T05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBu byB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZM SUNUIHNwZWNpZmljYXRpb24KKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQs IHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3Ig ZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmlj YXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQp IERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24g Y29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpCisoMSByb3cpCisK K1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUt MDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBv cmFsX3JuZ19wayBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNU IE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJTkc7CistLSBkYXRlIG1h dGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBE TyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEt MDEpCisgWzEsMikgfCBbMjAxMC0wMS0wMSwyMDIwLTAxLTAxKQorIFsyLDMpIHwgWzIwMDUt MDEtMDEsMjAwNi0wMS0wMSkKKygzIHJvd3MpCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBh IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBP TiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQu aWQgKyAnWzIsMyknOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9u IGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0t IGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEn LCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUg U0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOworRVJST1I6ICB0aGVyZSBpcyBubyB1 bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNU IHNwZWNpZmljYXRpb24KKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRh dGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwg dmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitF UlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRj aGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwy KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpCisoMSByb3cpCisKK1RSVU5DQVRFIHRlbXBv cmFsX3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOwor LS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0w MS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBETyBV UERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworRVJST1I6ICBPTiBDT05G TElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50 cworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0w MS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9y YWxfcm5nX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CitF UlJPUjogIE9OIENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVz aW9uIGNvbnN0cmFpbnRzCistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBk YXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBD T05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQu aWQgKyAnWzQsNSknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBv cnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8 IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpCisoMSByb3cpCisKKy0tIHdpdGggYSBVTklRVUUg Y29uc3RyYWludDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorCWlkIGludDRyYW5nZSwK Kwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgVU5JUVVF IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitUUlVOQ0FURSB0ZW1wb3Jh bDM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGgg YSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04g Q09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCBETyBO T1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8g dGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcy MDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKQorIFsxLDIpIHwgWzIw MTAtMDEtMDEsMjAyMC0wMS0wMSkKKyBbMiwzKSB8IFsyMDA1LTAxLTAxLDIwMDYtMDEtMDEp CisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8g dGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkg RE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBj b25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBp ZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIw MjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VS Uk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNo aW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBkYXRlIG1hdGNoZXMgYnV0 IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBP TiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBp cyBubyB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENP TkZMSUNUIHNwZWNpZmljYXRpb24KK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwy MDEwLTAxLTAxKQorKDEgcm93KQorCitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2Uo JzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5T RVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0 ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09O U1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBD T05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBOT1RISU5HOworLS0gZGF0 ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIw MDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8g Tk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKQor IFsxLDIpIHwgWzIwMTAtMDEtMDEsMjAyMC0wMS0wMSkKKyBbMiwzKSB8IFsyMDA1LTAxLTAx LDIwMDYtMDEtMDEpCisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFu Z2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlk LCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsK K0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1h dGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCistLSBpZCBtYXRjaGVzIGJ1 dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSkg T04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVE LmlkICsgJ1szLDQpJzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9yIGV4Y2x1c2lv biBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZpY2F0aW9uCist LSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEn LCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUg U0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworRVJST1I6ICB0aGVyZSBpcyBubyB1 bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNU IHNwZWNpZmljYXRpb24KK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKQorKDEgcm93KQorCitUUlVOQ0FURSB0ZW1wb3JhbDM7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAt MDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlO VCB0ZW1wb3JhbDNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMp JzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIG5vdCBzdXBwb3J0ZWQgd2l0aCBl eGNsdXNpb24gY29uc3RyYWludHMKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBD T05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQg KyAnWzMsNCknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRl ZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09O RkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVY Q0xVREVELmlkICsgJ1s0LDUpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIG5v dCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMKK1NFTEVDVCAqIEZST00g dGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEs MikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKQorKDEgcm93KQorCitEUk9QIFRBQkxFIHRl bXBvcmFsMzsKK1JFU0VUIGRhdGVzdHlsZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCmluZGV4IDI0MjllYzJiYmFhLi5kZGMxNTVjMTk1ZiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCkBAIC03OCw3ICs3OCw3IEBAIHRlc3Q6IGJyaW5fYmxvb20gYnJp bl9tdWx0aQogIyBwc3FsIGRlcGVuZHMgb24gY3JlYXRlX2FtCiAjIGFtdXRpbHMgZGVwZW5k cyBvbiBnZW9tZXRyeSwgY3JlYXRlX2luZGV4X3NwZ2lzdCwgaGFzaF9pbmRleCwgYnJpbgog IyAtLS0tLS0tLS0tCi10ZXN0OiBjcmVhdGVfdGFibGVfbGlrZSBhbHRlcl9nZW5lcmljIGFs dGVyX29wZXJhdG9yIG1pc2MgYXN5bmMgZGJzaXplIG1lcmdlIG1pc2NfZnVuY3Rpb25zIHN5 c3ZpZXdzIHRzcmYgdGlkIHRpZHNjYW4gdGlkcmFuZ2VzY2FuIGNvbGxhdGUudXRmOCBjb2xs YXRlLmljdS51dGY4IGluY3JlbWVudGFsX3NvcnQgY3JlYXRlX3JvbGUKK3Rlc3Q6IGNyZWF0 ZV90YWJsZV9saWtlIGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0b3IgbWlzYyBhc3luYyBk YnNpemUgbWVyZ2UgbWlzY19mdW5jdGlvbnMgc3lzdmlld3MgdHNyZiB0aWQgdGlkc2NhbiB0 aWRyYW5nZXNjYW4gY29sbGF0ZS51dGY4IGNvbGxhdGUuaWN1LnV0ZjggaW5jcmVtZW50YWxf c29ydCBjcmVhdGVfcm9sZSB3aXRob3V0X292ZXJsYXBzCiAKICMgY29sbGF0ZS5saW51eC51 dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4gaW4gcGFyYWxs ZWwgd2l0aCBlYWNoIG90aGVyCiB0ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgYW11 dGlscyBzdGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2luZG93cy53aW4x MjUyCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNmIzZTZkYzAyYQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3Fs CkBAIC0wLDAgKzEsNzU0IEBACistLSBUZXN0cyBmb3IgV0lUSE9VVCBPVkVSTEFQUy4KKy0t CistLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJsZXMgdG8gdGVzdCBwZ19kdW1wIGV0 YzoKKy0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5nMiwKKy0tIHRlbXBvcmFsX2ZrX3Ju ZzJybmcuCisKK1NFVCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CisKKy0tCistLSB0ZXN0IGlu cHV0IHBhcnNlcgorLS0KKworLS0gUEsgd2l0aCBubyBjb2x1bW5zIGp1c3QgV0lUSE9VVCBP VkVSTEFQUzoKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisJdmFsaWRfYXQgZGF0 ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZICh2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKKworLS0gUEsgd2l0aCBhIHJhbmdlIGNvbHVt bi9QRVJJT0QgdGhhdCBpc24ndCB0aGVyZToKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Ju ZyAoCisJaWQgSU5URUdFUiwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworCistLSBQSyB3aXRo IGEgbm9uLXJhbmdlIGNvbHVtbjoKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisJ aWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IFRFWFQsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9y bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsK KworLS0gUEsgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSByYW5nZToKKworQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3JuZyAoCisJLS0gU2luY2Ugd2UgY2FuJ3QgZGVwZW5kIG9uIGhhdmluZyBi dHJlZV9naXN0IGhlcmUsCisJLS0gdXNlIGFuIGludDRyYW5nZSBpbnN0ZWFkIG9mIGFuIGlu dC4KKwktLSAoVGhlIHJhbmdldHlwZXMgcmVncmVzc2lvbiB0ZXN0IHVzZXMgdGhlIHNhbWUg dHJpY2suKQorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3JuZworU0VMRUNUIHBnX2dldF9jb25zdHJh aW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9y YWxfcm5nX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUp IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZ19wayc7 CisKKy0tIFBLIGZyb20gTElLRToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyIChMSUtF IHRlbXBvcmFsX3JuZyBJTkNMVURJTkcgQUxMKTsKK1xkIHRlbXBvcmFsX3JuZzIKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcm5nMjsKKworLS0gbm8gUEsgZnJvbSBJTkhFUklUUzoKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgpIElOSEVSSVRTICh0ZW1wb3JhbF9ybmcpOworXGQg dGVtcG9yYWxfcm5nMgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworRFJPUCBUQUJMRSB0 ZW1wb3JhbF9ybmc7CisKKy0tIFBLIGluIGluaGVyaXRpbmcgdGFibGU6CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFu Z2UKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKykgSU5IRVJJVFMgKHRlbXBvcmFsX3JuZyk7CitcZCB0ZW1wb3JhbF9ybmcyCitEUk9Q IFRBQkxFIHRlbXBvcmFsX3JuZyBDQVNDQURFOworCistLSBBZGQgUEsgdG8gYWxyZWFkeSBp bmhlcml0aW5nIHRhYmxlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlCispOworQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3JuZzIgKCkgSU5IRVJJVFMgKHRlbXBvcmFsX3JuZyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ybmcyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWxfcm5nMgor RFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmc7CisK Ky0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIHJhbmdlOgorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3JuZzIgKAorCWlkMSBpbnQ0cmFuZ2UsCisJaWQyIGludDRyYW5nZSwKKwl2YWxp ZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmcyX3BrIFBSSU1BUlkg S0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1w b3JhbF9ybmcyCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2Nv bnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmcyX3BrJzsKK1NFTEVDVCBw Z19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsnOworCistLSBQSyB3aXRoIGEgY3Vz dG9tIHJhbmdlIHR5cGU6CitDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0 eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCB0ZXh0cmFuZ2UyLAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfcm5nM19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfcm5nM19wazsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsKK0RST1AgVFlQ RSB0ZXh0cmFuZ2UyOworCistLSBQSyB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIG11bHRpcmFu Z2U6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsK K1xkIHRlbXBvcmFsX21sdHJuZworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5nX3Br JzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdf Y29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX21sdHJuZ19wayc7CisKKy0t IFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIG11bHRpcmFuZ2U6CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfbWx0cm5nMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2Us CisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX21s dHJuZzJfcGsgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKK1xkIHRlbXBvcmFsX21sdHJuZzIKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWlu dGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFs X21sdHJuZzJfcGsnOworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1 ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfbWx0cm5n Ml9wayc7CisKKy0tIFVOSVFVRSB3aXRoIG5vIGNvbHVtbnMganVzdCBXSVRIT1VUIE9WRVJM QVBTOgorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisJdmFsaWRfYXQgZGF0ZXJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBVTklRVUUgKHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispOworCistLSBVTklRVUUgd2l0aCBhIHJhbmdlIGNvbHVtbi9Q RVJJT0QgdGhhdCBpc24ndCB0aGVyZToKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMg KAorCWlkIElOVEVHRVIsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxIFVOSVFVRSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworCistLSBVTklRVUUgd2l0aCBh IG5vbi1yYW5nZSBjb2x1bW46CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKwlp ZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgVEVYVCwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3Ju ZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CisKKy0t IFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIHJhbmdlOgorCitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcm5nMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9ybmczCitTRUxFQ1QgcGdfZ2V0X2Nv bnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0 ZW1wb3JhbF9ybmczX3VxJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAs IHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Ju ZzNfdXEnOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworCistLSBVTklRVUUgd2l0aCB0 d28gY29sdW1ucyBwbHVzIGEgcmFuZ2U6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAo CisJaWQxIGludDRyYW5nZSwKKwlpZDIgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5n ZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZDEsIGlkMiwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9ybmczCitTRUxFQ1Qg cGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29u bmFtZSA9ICd0ZW1wb3JhbF9ybmczX3VxJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29u aW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3Rl bXBvcmFsX3JuZzNfdXEnOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworCistLSBVTklR VUUgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgorQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBB UyByYW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMiKTsKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgdGV4dHJhbmdlMiwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwor RFJPUCBUWVBFIHRleHRyYW5nZTI7CisKKy0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBD T05TVFJBSU5UCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxf cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrCisJUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKworLS0gUEsgd2l0aCBVU0lORyBJTkRF WCAobm90IHBvc3NpYmxlKToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UKKyk7CitDUkVBVEUgSU5ERVggaWR4X3RlbXBv cmFsM191cSBPTiB0ZW1wb3JhbDMgVVNJTkcgZ2lzdCAoaWQsIHZhbGlkX2F0KTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsMworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19waworCVBSSU1B UlkgS0VZIFVTSU5HIElOREVYIGlkeF90ZW1wb3JhbDNfdXE7CitEUk9QIFRBQkxFIHRlbXBv cmFsMzsKKworLS0gVU5JUVVFIHdpdGggVVNJTkcgSU5ERVggKG5vdCBwb3NzaWJsZSk6CitD UkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0 ZXJhbmdlCispOworQ1JFQVRFIElOREVYIGlkeF90ZW1wb3JhbDNfdXEgT04gdGVtcG9yYWwz IFVTSU5HIGdpc3QgKGlkLCB2YWxpZF9hdCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKwlVTklRVUUgVVNJTkcgSU5ERVggaWR4X3Rl bXBvcmFsM191cTsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBVTklRVUUgd2l0aCBV U0lORyBbVU5JUVVFXSBJTkRFWCAocG9zc2libGUgYnV0IG5vdCBhIHRlbXBvcmFsIGNvbnN0 cmFpbnQpOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisJaWQgaW50NHJhbmdlLAorCXZh bGlkX2F0IGRhdGVyYW5nZQorKTsKK0NSRUFURSBVTklRVUUgSU5ERVggaWR4X3RlbXBvcmFs M191cSBPTiB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bDMKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKwlVTklRVUUgVVNJTkcgSU5ERVgg aWR4X3RlbXBvcmFsM191cTsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBBZGQgcmFu Z2UgY29sdW1uIGFuZCB0aGUgUEsgYXQgdGhlIHNhbWUgdGltZQorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsMyAoCisJaWQgaW50NHJhbmdlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisJ QUREIENPTFVNTiB2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQUREIENPTlNUUkFJTlQgdGVtcG9y YWwzX3BrCisJUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBBZGQgcmFuZ2UgY29sdW1uIGFuZCBVTklR VUUgY29uc3RyYWludCBhdCB0aGUgc2FtZSB0aW1lCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwz ICgKKwlpZCBpbnQ0cmFuZ2UKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKwlBREQgQ09M VU1OIHZhbGlkX2F0IGRhdGVyYW5nZSwKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEK KwlVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RST1AgVEFCTEUg dGVtcG9yYWwzOworCistLQorLS0gcmFuZ2UgUEs6IHRlc3Qgd2l0aCBleGlzdGluZyByb3dz CistLQorCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX3JuZ19wazsKKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcy MDE4LTAyLTAzJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwpKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3Ju ZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrOworCistLSBzaG91bGQgZmFpbDoKK0JFR0lO OworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKKyAgQUxU RVIgVEFCTEUgdGVtcG9yYWxfcm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworUk9MTEJBQ0s7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmc7CisKKy0tCistLSByYW5nZSBQSzogdGVzdCBpbnNlcnRz CistLQorCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDIt MDMnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgTlVMTCkpOworCistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHJhbmdlIFBLOiB0ZXN0IHVw ZGF0ZXMKKy0tCisKKy0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9y YWxfcm5nCitTRVQgICAgIGlkID0gJ1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sxLDIpJwor QU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgdGhl IHJhbmdlIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIHZhbGlkX2F0ID0g J1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5E ICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBh dCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3JuZworU0VUICAgICBpZCA9ICdbMjEsMjIpJywK KyAgICAgICAgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknCitXSEVSRSAg IGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9ybmcKK1NFVCAgICAgaWQgPSAn WzEsMiknLAorICAgICAgICB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMy0wNScsICcy MDE4LTA1LTA1JykKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIHNjYWxh ciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIGlkID0gTlVM TCwKKyAgICAgICAgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0w NS0wNScpCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IHRoZSByYW5nZSBwYXJ0 IHRvIE5VTEwKK1VQREFURSAgdGVtcG9yYWxfcm5nCitTRVQgICAgIGlkID0gJ1sxLDIpJywK KyAgICAgICAgdmFsaWRfYXQgPSBOVUxMCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gcmFuZ2UgVVE6IHRlc3Qgd2l0aCBleGlzdGluZyByb3dzCistLQorCitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcm5nMyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5n ZQorKTsKKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0w Mi0wMycpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIs MyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcz IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcz IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ybmczX3VxOworCistLSBzaG91bGQgZmFpbDoKK0JFR0lOOwor ICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CisgIEFMVEVS IFRBQkxFIHRlbXBvcmFsX3JuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM191cSBV TklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1JPTExCQUNLOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3Vx IFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRFIEZST00g dGVtcG9yYWxfcm5nMzsKKworLS0KKy0tIHJhbmdlIFVROiB0ZXN0IGluc2VydHMKKy0tCisK Ky0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgTlVMTCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAx LTA1JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMyw0KScsIE5VTEwpOworCistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSByYW5nZSBVUTogdGVzdCB1 cGRhdGVzCistLQorCistLSB1cGRhdGUgdGhlIHNjYWxhciBwYXJ0CitVUERBVEUgIHRlbXBv cmFsX3JuZzMKK1NFVCAgICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMikn CitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0 aGUgcmFuZ2UgcGFydAorVVBEQVRFICB0ZW1wb3JhbF9ybmczCitTRVQgICAgIHZhbGlkX2F0 ID0gJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJwor QU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90 aCBhdCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3JuZzMKK1NFVCAgICAgaWQgPSAnWzIxLDIy KScsCisgICAgICAgIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJworV0hF UkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAyMC0wMS0xNSc6 OmRhdGU7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9y YWxfcm5nMworU0VUICAgICBpZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKQorV0hFUkUgICBpZCA9ICdbMjEsMjIp JzsKKy0tIHNldCB0aGUgcmFuZ2UgcGFydCB0byBOVUxMCitVUERBVEUgIHRlbXBvcmFsX3Ju ZzMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9hdCA9IE5VTEwKK1dI RVJFICAgaWQgSVMgTlVMTCBBTkQgdmFsaWRfYXQgQD4gJzIwMjAtMDYtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9ybmczCitTRVQgICAgIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDUtMDUnKQorV0hFUkUgICBpZCA9 ICdbMSwyKScgQU5EIHZhbGlkX2F0IElTIE5VTEw7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3JuZzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcz OworCistLQorLS0gbXVsdGlyYW5nZSBQSzogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MKKy0t CisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfbWx0cm5nX3BrOworCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sz LDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9t bHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf bWx0cm5nX3BrOworCistLSBzaG91bGQgZmFpbDoKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CisgIEFM VEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1JP TExCQUNLOworQUxURVIgVEFCTEUgdGVtcG9yYWxfbWx0cm5nIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX21sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nOworCistLQorLS0gbXVsdGly YW5nZSBQSzogdGVzdCBpbnNlcnRzCistLQorCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDEtMDUnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgTlVMTCkpKTsKKworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBO VUxMKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0KKy0tIG11bHRpcmFuZ2UgUEs6IHRlc3QgdXBkYXRlcworLS0KKworLS0g dXBkYXRlIHRoZSBzY2FsYXIgcGFydAorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmcKK1NFVCAg ICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlk X2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgbXVsdGlyYW5nZSBw YXJ0CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAgICB2YWxpZF9hdCA9ICd7WzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9JworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAg ICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBv bmNlCitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAgICBpZCA9ICdbMjEsMjIpJywK KyAgICAgICAgdmFsaWRfYXQgPSAne1syMDE4LTAxLTAyLDIwMTgtMDItMDMpfScKK1dIRVJF ICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMjAtMDEtMTUnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZworU0VUICAg ICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDUnKSkKK1dIRVJFICAgaWQgPSAnWzIx LDIyKSc7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9y YWxfbWx0cm5nCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfYXQgPSBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wNScpKQorV0hF UkUgICBpZCA9ICdbMjEsMjIpJzsKKy0tIHNldCB0aGUgbXVsdGlyYW5nZSBwYXJ0IHRvIE5V TEwKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nCitTRVQgICAgIGlkID0gJ1sxLDIpJywKKyAg ICAgICAgdmFsaWRfYXQgPSBOVUxMCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gbXVsdGlyYW5nZSBVUTogdGVzdCB3aXRoIGV4aXN0aW5nIHJvd3MKKy0tCisKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9tbHRybmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQg ZGF0ZW11bHRpcmFuZ2UKKyk7CisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIs MyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg TlVMTCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkg VkFMVUVTIChOVUxMLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgTlVMTCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9t bHRybmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzNfdXEgVU5JUVVFIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRy bmczIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmczX3VxOworCistLSBzaG91bGQg ZmFpbDoKK0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRy bmczIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZzNfdXEgVU5JUVVFIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitST0xMQkFDSzsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX21sdHJuZzMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nM191cSBVTklRVUUg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZzM7CisKKy0tCistLSBtdWx0aXJhbmdlIFVROiB0ZXN0IGluc2VydHMKKy0tCisK Ky0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAy JywgJzIwMTgtMDItMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgTlVMTCkpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZzMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTIChOVUxMLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1szLDQp JywgTlVMTCk7CisKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSBtdWx0 aXJhbmdlIFVROiB0ZXN0IHVwZGF0ZXMKKy0tCisKKy0tIHVwZGF0ZSB0aGUgc2NhbGFyIHBh cnQKK1VQREFURSAgdGVtcG9yYWxfbWx0cm5nMworU0VUICAgICBpZCA9ICdbMTEsMTIpJwor V0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUn OjpkYXRlOworLS0gdXBkYXRlIHRoZSBtdWx0aXJhbmdlIHBhcnQKK1VQREFURSAgdGVtcG9y YWxfbWx0cm5nMworU0VUICAgICB2YWxpZF9hdCA9ICd7WzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9JworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAx OC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBvbmNlCitVUERBVEUgIHRlbXBv cmFsX21sdHJuZzMKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAgICAgIHZhbGlkX2F0 ID0gJ3tbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKX0nCitXSEVSRSAgIGlkID0gJ1sxMSwxMikn CitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKKy0tIHNldCB0aGUg c2NhbGFyIHBhcnQgdG8gTlVMTAorVVBEQVRFICB0ZW1wb3JhbF9tbHRybmczCitTRVQgICAg IGlkID0gTlVMTCwKKyAgICAgICAgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKQorV0hFUkUgICBpZCA9ICdbMjEsMjIp JzsKKy0tIHNldCB0aGUgbXVsdGlyYW5nZSBwYXJ0IHRvIE5VTEwKK1VQREFURSAgdGVtcG9y YWxfbWx0cm5nMworU0VUICAgICBpZCA9ICdbMSwyKScsCisgICAgICAgIHZhbGlkX2F0ID0g TlVMTAorV0hFUkUgICBpZCBJUyBOVUxMIEFORCB2YWxpZF9hdCBAPiAnMjAyMC0wNi0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX21sdHJuZzMKK1NF VCAgICAgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDEn LCAnMjAxOC0wNS0wNScpKQorV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IElT IE5VTEw7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX21sdHJuZzMgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmczOworCistLQorLS0gdGVzdCBh IHJhbmdlIHdpdGggYm90aCBhIFBLIGFuZCBhIFVOSVFVRSBjb25zdHJhaW50CistLQorCitD UkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBk YXRlcmFuZ2UsCisgIGlkMiBpbnQ4cmFuZ2UsCisgIG5hbWUgVEVYVCwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdW5pcSBVTklRVUUgKGlkMiwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2 YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKKyAgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAn YmFyJykKKzsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLQorLS0gdGVzdCBjaGFuZ2lu ZyB0aGUgUEsncyBkZXBlbmRlbmNpZXMKKy0tCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KQorKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWwzIEFMVEVSIENPTFVNTiB2YWxpZF9hdCBE Uk9QIE5PVCBOVUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWwzIEFMVEVSIENPTFVNTiB2YWxp ZF9hdCBUWVBFIHRzdHpyYW5nZSBVU0lORyB0c3R6cmFuZ2UobG93ZXIodmFsaWRfYXQpLCB1 cHBlcih2YWxpZF9hdCkpOworQUxURVIgVEFCTEUgdGVtcG9yYWwzIFJFTkFNRSBDT0xVTU4g dmFsaWRfYXQgVE8gdmFsaWRfdGhydTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENP TFVNTiB2YWxpZF90aHJ1OworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CisKKy0tCistLSB0ZXN0 IFBBUlRJVElPTiBCWSBmb3IgcmFuZ2VzCistLQorCistLSB0ZW1wb3JhbCBQUklNQVJZIEtF WToKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCisJaWQgaW50NHJhbmdl LAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0LAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfcGFyaXRpb25lZF9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAx IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEs MiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFs X3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVT CisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAn b25lJyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0w MScpLCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpLCAndGhyZWUnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKworLS0gdGVtcG9yYWwgVU5J UVVFOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkICgKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJpdGlvbmVkX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAxIFBB UlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMikn LCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0cDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3Bh cnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCisg ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25l JyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScp LCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0w MS0wMScpLCAndGhyZWUnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor RFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKworLS0gQUxURVIgVEFCTEUgUkVQ TElDQSBJREVOVElUWQorLS0gKHNob3VsZCBmYWlsKQorQUxURVIgVEFCTEUgdGVtcG9yYWxf cm5nIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggdGVtcG9yYWxfcm5nX3BrOworCist LQorLS0gT04gQ09ORkxJQ1QKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNvbmZs aWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05G TElDVCBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5P VEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2Uo JzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBETyBOT1RISU5HOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitU UlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAx LTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9U SElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBE TyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJh bmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxp ZF9hdCkgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIE9O IENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVz IGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAtMDEt MDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gTk9U SElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQg dGVtcG9yYWxfcm5nX3BrIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Ju ZyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBD T05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQg KyAnWzIsMyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRf YXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CistLSBkYXRl IG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VU IGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9y bmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04g Q09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gVVBEQVRFIFNFVCBp ZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZs aWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSBPTiBDT05G TElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBETyBVUERBVEUgU0VUIGlkID0g RVhDTFVERUQuaWQgKyAnWzMsNCknOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sy LDMpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJ Q1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVY Q0xVREVELmlkICsgJ1s0LDUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKworLS0gd2l0aCBhIFVOSVFVRSBjb25zdHJhaW50OgorCitD UkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0 ZXJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworVFJVTkNBVEUgdGVtcG9yYWwzOworSU5TRVJUIElO VE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5P VEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEw LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGRh dGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcy MDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK1RSVU5DQVRFIHRlbXBvcmFsMzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJykpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBDT05G TElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykpIE9OIENP TkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0 IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBP TiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbDMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitUUlVOQ0FURSB0ZW1wb3JhbDM7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpKTsKKy0tIHdpdGggYSBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09O RkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEgRE8gTk9USElORzsKKy0tIGlkIG1h dGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAyMC0w MS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBOT1RI SU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDA1 LTAxLTAxJywgJzIwMDYtMDEtMDEnKSkgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0ZW1w b3JhbDNfdXEgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworVFJVTkNBVEUgdGVtcG9yYWwzOworSU5TRVJUIElOVE8gdGVt cG9yYWwzIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMTAtMDEtMDEnKSk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRf YXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwzKSc7CistLSBpZCBt YXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDEwLTAxLTAxJywgJzIwMjAt MDEtMDEnKSkgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9 IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxp Y3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykpIE9OIENPTkZMSUNU IChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisK K1RSVU5DQVRFIHRlbXBvcmFsMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAx LTAxJykpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBE TyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworLS0gaWQgbWF0Y2hl cyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAx JykpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxIERPIFVQREFURSBT RVQgaWQgPSBFWENMVURFRC5pZCArICdbMyw0KSc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpKSBPTiBD T05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsM191cSBETyBVUERBVEUgU0VUIGlkID0g RVhDTFVERUQuaWQgKyAnWzQsNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbDMgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKworUkVTRVQgZGF0 ZXN0eWxlOwotLSAKMi40Mi4wCgo= --------------chobAlN9YDJn29tODLTlOP0i Content-Type: text/x-patch; charset=UTF-8; name="v36-0003-WIP-Use-nonempty_overlaps-to-forbid-empty-ranges.patch" Content-Disposition: attachment; filename*0="v36-0003-WIP-Use-nonempty_overlaps-to-forbid-empty-ranges.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyZjMyODM5Mjc4YjI1NWE4YTcxZGFjZmE1MTBjNzhmYTIxYzk5NGQ5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFRodSwgMTggSnVsIDIwMjQgMDk6NTI6NTYgLTA3 MDAKU3ViamVjdDogW1BBVENIIHYzNiAzLzNdIFdJUDogVXNlIG5vbmVtcHR5X292ZXJsYXBz IHRvIGZvcmJpZCBlbXB0eQogcmFuZ2VzL211bHRpcmFuZ2VzCgpUZXN0cyBhcmUgZmFpbGlu Zy4gV2UgZ2V0IHRoZSAicmFuZ2UgY2Fubm90IGJlIGVtcHR5IiBlcnJvciBldmVuIHdoZW4K aW5zZXJ0aW5nIGEgbm9uLWVtcHR5IHJhbmdlLCBhZnRlciBhIHByZXZpb3VzIGZhaWx1cmUg ZnJvbSBhbiBlbXB0eQpyYW5nZS4gYFNFTEVDVCAqYCBzYXlzIHRoZSB0YWJsZSBoYXMgbm8g cm93cy4gVGhhdCBpcyBjb25jZXJuaW5nLiBJcwp0aGUgZXJlcG9ydCBjYXVzaW5nIHRoZSBp bmRleCB0byBnZXQgY29ycnVwdGVkPwotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4 Y21kcy5jICAgICAgICAgICAgICB8ICA4ICsrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV91dGlsY21kLmMgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv bXVsdGlyYW5nZXR5cGVzLmMgICAgICAgfCA0OCArKysrKysrKysrKysrKysrKysrCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jICAgICAgICAgICAgfCAyMyArKysrKysr KysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzX2dpc3QuYyAgICAgICB8ICA4 ICsrKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51bS5oICAgICAgICAgICAgICAgICB8 ICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQgICAgICAgICAgICAgICB8 ICA2ICsrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQgICAgICAgICAg IHwgMTEgKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAg ICAgICB8IDExICsrKysrCiBzcmMvaW5jbHVkZS91dGlscy9tdWx0aXJhbmdldHlwZXMuaCAg ICAgICAgICAgfCAgNiArKysKIHNyYy9pbmNsdWRlL3V0aWxzL3JhbmdldHlwZXMuaCAgICAg ICAgICAgICAgICB8ICAzICsrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5p dHkub3V0ICAgICAgfCAxMyArKystLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9v dmVybGFwcy5vdXQgICAgIHwgMjYgKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgMTggKysrKysrKwogMTQgZmlsZXMgY2hhbmdl ZCwgMTc1IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv aW5kZXhjbWRzLmMKaW5kZXggNDdlMTM5YjM4MjguLmE3MzQ1NmEwM2I1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9pbmRleGNtZHMuYwpAQCAtMjE4Niw3ICsyMTg2LDcgQEAgQ29tcHV0ZUluZGV4 QXR0cnMoSW5kZXhJbmZvICppbmRleEluZm8sCiAJCQlPaWQJCQlvcGlkOwogCiAJCQlpZiAo YXR0biA9PSBua2V5Y29scyAtIDEpCi0JCQkJc3RyYXQgPSBSVE92ZXJsYXBTdHJhdGVneU51 bWJlcjsKKwkJCQlzdHJhdCA9IFJUTm9uZW1wdHlPdmVybGFwU3RyYXRlZ3lOdW1iZXI7CiAJ CQllbHNlCiAJCQkJc3RyYXQgPSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXI7CiAJCQlHZXRPcGVy YXRvckZyb21XZWxsS25vd25TdHJhdGVneShvcGNsYXNzT2lkc1thdHRuXSwgYXR0dHlwZSwK QEAgLTI0NDksNyArMjQ0OSw3IEBAIEdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5 KE9pZCBvcGNsYXNzLCBPaWQgYXR0dHlwZSwKIAlPaWQJCQlvcGNpbnR5cGU7CiAJU3RyYXRl Z3lOdW1iZXIgaW5zdHJhdCA9ICpzdHJhdDsKIAotCUFzc2VydChpbnN0cmF0ID09IFJURXF1 YWxTdHJhdGVneU51bWJlciB8fCBpbnN0cmF0ID09IFJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVy KTsKKwlBc3NlcnQoaW5zdHJhdCA9PSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXIgfHwgaW5zdHJh dCA9PSBSVE5vbmVtcHR5T3ZlcmxhcFN0cmF0ZWd5TnVtYmVyKTsKIAogCSpvcGlkID0gSW52 YWxpZE9pZDsKIApAQCAtMjQ3NCw3ICsyNDc0LDcgQEAgR2V0T3BlcmF0b3JGcm9tV2VsbEtu b3duU3RyYXRlZ3koT2lkIG9wY2xhc3MsIE9pZCBhdHR0eXBlLAogCQkJCQllcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX09CSkVDVCksCiAJCQkJCWluc3RyYXQgPT0gUlRFcXVhbFN0cmF0 ZWd5TnVtYmVyID8KIAkJCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gZXF1YWxp dHkgb3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSkgOgot CQkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBvdmVybGFwcyBvcGVyYXRvciBm b3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKGF0dHR5cGUpKSwKKwkJCQkJZXJybXNnKCJj b3VsZCBub3QgaWRlbnRpZnkgYSBub25lbXB0eSBvdmVybGFwcyBvcGVyYXRvciBmb3IgdHlw ZSAlcyIsIGZvcm1hdF90eXBlX2JlKGF0dHR5cGUpKSwKIAkJCQkJZXJyZGV0YWlsKCJDb3Vs ZCBub3QgdHJhbnNsYXRlIHN0cmF0ZWd5IG51bWJlciAlZCBmb3Igb3BlcmF0b3IgY2xhc3Mg XCIlc1wiIGZvciBhY2Nlc3MgbWV0aG9kIFwiJXNcIi4iLAogCQkJCQkJCSAgaW5zdHJhdCwg TmFtZVN0cigoKEZvcm1fcGdfb3BjbGFzcykgR0VUU1RSVUNUKHR1cGxlKSktPm9wY25hbWUp LCAiZ2lzdCIpKTsKIApAQCAtMjQ5Niw3ICsyNDk2LDcgQEAgR2V0T3BlcmF0b3JGcm9tV2Vs bEtub3duU3RyYXRlZ3koT2lkIG9wY2xhc3MsIE9pZCBhdHR0eXBlLAogCQkJCWVycmNvZGUo RVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKIAkJCQlpbnN0cmF0ID09IFJURXF1YWxTdHJh dGVneU51bWJlciA/CiAJCQkJZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gZXF1YWxp dHkgb3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSkgOgot CQkJCWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIG92ZXJsYXBzIG9wZXJhdG9yIGZv ciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUoYXR0dHlwZSkpLAorCQkJCWVycm1zZygiY291 bGQgbm90IGlkZW50aWZ5IGEgbm9uZW1wdHkgb3ZlcmxhcHMgb3BlcmF0b3IgZm9yIHR5cGUg JXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSksCiAJCQkJZXJyZGV0YWlsKCJUaGVyZSBp cyBubyBzdWl0YWJsZSBvcGVyYXRvciBpbiBvcGVyYXRvciBmYW1pbHkgXCIlc1wiIGZvciBh Y2Nlc3MgbWV0aG9kIFwiJXNcIi4iLAogCQkJCQkJICBOYW1lU3RyKCgoRm9ybV9wZ19vcGZh bWlseSkgR0VUU1RSVUNUKHR1cGxlKSktPm9wZm5hbWUpLCAiZ2lzdCIpKTsKIAl9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCA1MzQ5MmM2NDRhOS4uYjZhODRhN2I0 M2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMjM5Nyw3ICsyMzk3 LDggQEAgdHJhbnNmb3JtSW5kZXhDb25zdHJhaW50KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQs IENyZWF0ZVN0bXRDb250ZXh0ICpjeHQpCiAJICogRm9yIFVOSVFVRSBhbmQgUFJJTUFSWSBL RVksIHdlIGp1c3QgaGF2ZSBhIGxpc3Qgb2YgY29sdW1uIG5hbWVzLgogCSAqCiAJICogTWFr ZSBzdXJlIHJlZmVyZW5jZWQga2V5cyBleGlzdC4gIElmIHdlIGFyZSBtYWtpbmcgYSBQUklN QVJZIEtFWSBpbmRleCwKLQkgKiBhbHNvIG1ha2Ugc3VyZSB0aGV5IGFyZSBOT1QgTlVMTC4K KwkgKiBhbHNvIG1ha2Ugc3VyZSB0aGV5IGFyZSBOT1QgTlVMTC4gIEZvciBXSVRIT1VUIE9W RVJMQVBTIGNvbnN0cmFpbnRzLAorCSAqIHdlIG1ha2Ugc3VyZSB0aGUgbGFzdCBwYXJ0IGlz IGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZS4KIAkgKi8KIAllbHNlCiAJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBlcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L211bHRpcmFuZ2V0eXBlcy5jCmluZGV4IDU1OGM2YzE4YzM0Li45NDJmNmQy NmRlMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBl cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYwpAQCAt MTk2OCw2ICsxOTY4LDMwIEBAIG11bHRpcmFuZ2Vfb3ZlcmxhcHNfbXVsdGlyYW5nZShQR19G VU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9CT09MKG11bHRpcmFuZ2Vfb3ZlcmxhcHNfbXVs dGlyYW5nZV9pbnRlcm5hbCh0eXBjYWNoZS0+cm5ndHlwZSwgbXIxLCBtcjIpKTsKIH0KIAor RGF0dW0KK3JhbmdlX25vbmVtcHR5X292ZXJsYXBzX211bHRpcmFuZ2UoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlSYW5nZVR5cGUgICpyID0gUEdfR0VUQVJHX1JBTkdFX1AoMCk7CisJTXVs dGlyYW5nZVR5cGUgKm1yID0gUEdfR0VUQVJHX01VTFRJUkFOR0VfUCgxKTsKKwlUeXBlQ2Fj aGVFbnRyeSAqdHlwY2FjaGU7CisKKwl0eXBjYWNoZSA9IG11bHRpcmFuZ2VfZ2V0X3R5cGNh Y2hlKGZjaW5mbywgTXVsdGlyYW5nZVR5cGVHZXRPaWQobXIpKTsKKworCVBHX1JFVFVSTl9C T09MKHJhbmdlX25vbmVtcHR5X292ZXJsYXBzX211bHRpcmFuZ2VfaW50ZXJuYWwodHlwY2Fj aGUtPnJuZ3R5cGUsIHIsIG1yKSk7Cit9CisKK0RhdHVtCittdWx0aXJhbmdlX25vbmVtcHR5 X292ZXJsYXBzX211bHRpcmFuZ2UoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlNdWx0aXJhbmdl VHlwZSAqbXIxID0gUEdfR0VUQVJHX01VTFRJUkFOR0VfUCgwKTsKKwlNdWx0aXJhbmdlVHlw ZSAqbXIyID0gUEdfR0VUQVJHX01VTFRJUkFOR0VfUCgxKTsKKwlUeXBlQ2FjaGVFbnRyeSAq dHlwY2FjaGU7CisKKwl0eXBjYWNoZSA9IG11bHRpcmFuZ2VfZ2V0X3R5cGNhY2hlKGZjaW5m bywgTXVsdGlyYW5nZVR5cGVHZXRPaWQobXIxKSk7CisKKwlQR19SRVRVUk5fQk9PTChtdWx0 aXJhbmdlX25vbmVtcHR5X292ZXJsYXBzX211bHRpcmFuZ2VfaW50ZXJuYWwodHlwY2FjaGUt PnJuZ3R5cGUsIG1yMSwgbXIyKSk7Cit9CisKIC8qCiAgKiBDb21wYXJpc29uIGZ1bmN0aW9u IGZvciBjaGVja2luZyBpZiBhbnkgcmFuZ2Ugb2YgbXVsdGlyYW5nZSBvdmVybGFwcyBnaXZl bgogICoga2V5IHJhbmdlIHVzaW5nIGJpbmFyeSBzZWFyY2guCkBAIC0yMDY4LDYgKzIwOTIs MzAgQEAgbXVsdGlyYW5nZV9vdmVybGFwc19tdWx0aXJhbmdlX2ludGVybmFsKFR5cGVDYWNo ZUVudHJ5ICpyYW5nZXR5cCwKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wKK3JhbmdlX25v bmVtcHR5X292ZXJsYXBzX211bHRpcmFuZ2VfaW50ZXJuYWwoVHlwZUNhY2hlRW50cnkgKnR5 cGNhY2hlLAorCQkJCQkJCQkJCQkJIGNvbnN0IFJhbmdlVHlwZSAqciwKKwkJCQkJCQkJCQkJ CSBjb25zdCBNdWx0aXJhbmdlVHlwZSAqbXIpCit7CisJaWYgKFJhbmdlSXNFbXB0eShyKSkK KwkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygicmFuZ2UgY2Fubm90IGJlIGVtcHR5IikpKTsK KwlpZiAoTXVsdGlyYW5nZUlzRW1wdHkobXIpKQorCQllcmVwb3J0KEVSUk9SLCAoZXJybXNn KCJtdWx0aXJhbmdlIGNhbm5vdCBiZSBlbXB0eSIpKSk7CisKKwlyZXR1cm4gcmFuZ2Vfb3Zl cmxhcHNfbXVsdGlyYW5nZV9pbnRlcm5hbCh0eXBjYWNoZSwgciwgbXIpOworfQorCitib29s CittdWx0aXJhbmdlX25vbmVtcHR5X292ZXJsYXBzX211bHRpcmFuZ2VfaW50ZXJuYWwoVHlw ZUNhY2hlRW50cnkgKnR5cGNhY2hlLAorCQkJCQkJCQkJCQkJIGNvbnN0IE11bHRpcmFuZ2VU eXBlICptcjEsCisJCQkJCQkJCQkJCQkgY29uc3QgTXVsdGlyYW5nZVR5cGUgKm1yMikKK3sK KwlpZiAoTXVsdGlyYW5nZUlzRW1wdHkobXIxKSB8fCBNdWx0aXJhbmdlSXNFbXB0eShtcjIp KQorCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJtdWx0aXJhbmdlIGNhbm5vdCBiZSBlbXB0 eSIpKSk7CisKKwlyZXR1cm4gbXVsdGlyYW5nZV9vdmVybGFwc19tdWx0aXJhbmdlX2ludGVy bmFsKHR5cGNhY2hlLCBtcjEsIG1yMik7Cit9CisKIC8qIGRvZXMgbm90IGV4dGVuZCB0byBy aWdodCBvZj8gKi8KIGJvb2wKIHJhbmdlX292ZXJsZWZ0X211bHRpcmFuZ2VfaW50ZXJuYWwo VHlwZUNhY2hlRW50cnkgKnJhbmdldHlwLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3JhbmdldHlwZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVz LmMKaW5kZXggMmQ5NGE2Yjg3NzQuLjZkYWQwMzgwMzdlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9yYW5nZXR5cGVzLmMKQEAgLTg2OSw2ICs4NjksMTYgQEAgcmFuZ2Vfb3ZlcmxhcHNfaW50 ZXJuYWwoVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlLCBjb25zdCBSYW5nZVR5cGUgKnIxLCBj b25zdCBSYW4KIAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qIG92ZXJsYXBzIGFuZCBuZWl0aGVy IGVtcHR5PyAoaW50ZXJuYWwgdmVyc2lvbikgKi8KK2Jvb2wKK3JhbmdlX25vbmVtcHR5X292 ZXJsYXBzX2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgY29uc3QgUmFuZ2VU eXBlICpyMSwgY29uc3QgUmFuZ2VUeXBlICpyMikKK3sKKwlpZiAoUmFuZ2VJc0VtcHR5KHIx KSB8fCBSYW5nZUlzRW1wdHkocjIpKQorCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJyYW5n ZSBjYW5ub3QgYmUgZW1wdHkiKSkpOworCisJcmV0dXJuIHJhbmdlX292ZXJsYXBzX2ludGVy bmFsKHR5cGNhY2hlLCByMSwgcjIpOworfQorCiAvKiBvdmVybGFwcz8gKi8KIERhdHVtCiBy YW5nZV9vdmVybGFwcyhQR19GVU5DVElPTl9BUkdTKQpAQCAtODgyLDYgKzg5MiwxOSBAQCBy YW5nZV9vdmVybGFwcyhQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9CT09MKHJhbmdl X292ZXJsYXBzX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIpKTsKIH0KIAorLyogb3Zlcmxh cHMgYW5kIG5laXRoZXIgZW1wdHk/ICovCitEYXR1bQorcmFuZ2Vfbm9uZW1wdHlfb3Zlcmxh cHMoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlSYW5nZVR5cGUgICpyMSA9IFBHX0dFVEFSR19S QU5HRV9QKDApOworCVJhbmdlVHlwZSAgKnIyID0gUEdfR0VUQVJHX1JBTkdFX1AoMSk7CisJ VHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCisJdHlwY2FjaGUgPSByYW5nZV9nZXRfdHlw Y2FjaGUoZmNpbmZvLCBSYW5nZVR5cGVHZXRPaWQocjEpKTsKKworCVBHX1JFVFVSTl9CT09M KHJhbmdlX25vbmVtcHR5X292ZXJsYXBzX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIpKTsK K30KKwogLyogZG9lcyBub3QgZXh0ZW5kIHRvIHJpZ2h0IG9mPyAoaW50ZXJuYWwgdmVyc2lv bikgKi8KIGJvb2wKIHJhbmdlX292ZXJsZWZ0X2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0 eXBjYWNoZSwgY29uc3QgUmFuZ2VUeXBlICpyMSwgY29uc3QgUmFuZ2VUeXBlICpyMikKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzX2dpc3QuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzX2dpc3QuYwppbmRleCBjYjI4ZTk4NTlh Yi4uMzlkZTI4Y2QxNjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5n ZXR5cGVzX2dpc3QuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlc19n aXN0LmMKQEAgLTkyOSw2ICs5MjksOCBAQCByYW5nZV9naXN0X2NvbnNpc3RlbnRfaW50X3Jh bmdlKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwKIAkJCXJldHVybiAoIXJhbmdlX2FmdGVy X2ludGVybmFsKHR5cGNhY2hlLCBrZXksIHF1ZXJ5KSk7CiAJCWNhc2UgUkFOR0VTVFJBVF9P VkVSTEFQUzoKIAkJCXJldHVybiByYW5nZV9vdmVybGFwc19pbnRlcm5hbCh0eXBjYWNoZSwg a2V5LCBxdWVyeSk7CisJCWNhc2UgUkFOR0VTVFJBVF9OT05FTVBUWV9PVkVSTEFQUzoKKwkJ CXJldHVybiByYW5nZV9ub25lbXB0eV9vdmVybGFwc19pbnRlcm5hbCh0eXBjYWNoZSwga2V5 LCBxdWVyeSk7CiAJCWNhc2UgUkFOR0VTVFJBVF9PVkVSUklHSFQ6CiAJCQlpZiAoUmFuZ2VJ c0VtcHR5KGtleSkgfHwgUmFuZ2VJc0VtcHR5KHF1ZXJ5KSkKIAkJCQlyZXR1cm4gZmFsc2U7 CkBAIC05OTEsNiArOTkzLDggQEAgcmFuZ2VfZ2lzdF9jb25zaXN0ZW50X2ludF9tdWx0aXJh bmdlKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwKIAkJCXJldHVybiAoIXJhbmdlX2FmdGVy X211bHRpcmFuZ2VfaW50ZXJuYWwodHlwY2FjaGUsIGtleSwgcXVlcnkpKTsKIAkJY2FzZSBS QU5HRVNUUkFUX09WRVJMQVBTOgogCQkJcmV0dXJuIHJhbmdlX292ZXJsYXBzX211bHRpcmFu Z2VfaW50ZXJuYWwodHlwY2FjaGUsIGtleSwgcXVlcnkpOworCQljYXNlIFJBTkdFU1RSQVRf Tk9ORU1QVFlfT1ZFUkxBUFM6CisJCQlyZXR1cm4gcmFuZ2Vfbm9uZW1wdHlfb3ZlcmxhcHNf bXVsdGlyYW5nZV9pbnRlcm5hbCh0eXBjYWNoZSwga2V5LCBxdWVyeSk7CiAJCWNhc2UgUkFO R0VTVFJBVF9PVkVSUklHSFQ6CiAJCQlpZiAoUmFuZ2VJc0VtcHR5KGtleSkgfHwgTXVsdGly YW5nZUlzRW1wdHkocXVlcnkpKQogCQkJCXJldHVybiBmYWxzZTsKQEAgLTEwNjgsNiArMTA3 Miw4IEBAIHJhbmdlX2dpc3RfY29uc2lzdGVudF9sZWFmX3JhbmdlKFR5cGVDYWNoZUVudHJ5 ICp0eXBjYWNoZSwKIAkJCXJldHVybiByYW5nZV9vdmVybGVmdF9pbnRlcm5hbCh0eXBjYWNo ZSwga2V5LCBxdWVyeSk7CiAJCWNhc2UgUkFOR0VTVFJBVF9PVkVSTEFQUzoKIAkJCXJldHVy biByYW5nZV9vdmVybGFwc19pbnRlcm5hbCh0eXBjYWNoZSwga2V5LCBxdWVyeSk7CisJCWNh c2UgUkFOR0VTVFJBVF9OT05FTVBUWV9PVkVSTEFQUzoKKwkJCXJldHVybiByYW5nZV9ub25l bXB0eV9vdmVybGFwc19pbnRlcm5hbCh0eXBjYWNoZSwga2V5LCBxdWVyeSk7CiAJCWNhc2Ug UkFOR0VTVFJBVF9PVkVSUklHSFQ6CiAJCQlyZXR1cm4gcmFuZ2Vfb3ZlcnJpZ2h0X2ludGVy bmFsKHR5cGNhY2hlLCBrZXksIHF1ZXJ5KTsKIAkJY2FzZSBSQU5HRVNUUkFUX0FGVEVSOgpA QCAtMTEwMyw2ICsxMTA5LDggQEAgcmFuZ2VfZ2lzdF9jb25zaXN0ZW50X2xlYWZfbXVsdGly YW5nZShUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUsCiAJCQlyZXR1cm4gcmFuZ2Vfb3Zlcmxl ZnRfbXVsdGlyYW5nZV9pbnRlcm5hbCh0eXBjYWNoZSwga2V5LCBxdWVyeSk7CiAJCWNhc2Ug UkFOR0VTVFJBVF9PVkVSTEFQUzoKIAkJCXJldHVybiByYW5nZV9vdmVybGFwc19tdWx0aXJh bmdlX2ludGVybmFsKHR5cGNhY2hlLCBrZXksIHF1ZXJ5KTsKKwkJY2FzZSBSQU5HRVNUUkFU X05PTkVNUFRZX09WRVJMQVBTOgorCQkJcmV0dXJuIHJhbmdlX25vbmVtcHR5X292ZXJsYXBz X211bHRpcmFuZ2VfaW50ZXJuYWwodHlwY2FjaGUsIGtleSwgcXVlcnkpOwogCQljYXNlIFJB TkdFU1RSQVRfT1ZFUlJJR0hUOgogCQkJcmV0dXJuIHJhbmdlX292ZXJyaWdodF9tdWx0aXJh bmdlX2ludGVybmFsKHR5cGNhY2hlLCBrZXksIHF1ZXJ5KTsKIAkJY2FzZSBSQU5HRVNUUkFU X0FGVEVSOgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3N0cmF0bnVtLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3Mvc3RyYXRudW0uaAppbmRleCA4YTQ3ZDNjOWVjOC4uNThlOGE0 MGMwZjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51bS5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51bS5oCkBAIC03OCw2ICs3OCw3IEBAIHR5cGVk ZWYgdWludDE2IFN0cmF0ZWd5TnVtYmVyOwogI2RlZmluZSBSVFByZWZpeFN0cmF0ZWd5TnVt YmVyCQkJMjgJLyogZm9yIHRleHQgXkAgKi8KICNkZWZpbmUgUlRPbGRCZWxvd1N0cmF0ZWd5 TnVtYmVyCQkyOQkvKiBmb3Igb2xkIHNwZWxsaW5nIG9mIDw8fCAqLwogI2RlZmluZSBSVE9s ZEFib3ZlU3RyYXRlZ3lOdW1iZXIJCTMwCS8qIGZvciBvbGQgc3BlbGxpbmcgb2YgfD4+ICov CisjZGVmaW5lIFJUTm9uZW1wdHlPdmVybGFwU3RyYXRlZ3lOdW1iZXIJMzEJLyogZm9yICYm JiAqLwogCiAjZGVmaW5lIFJUTWF4U3RyYXRlZ3lOdW1iZXIJCQkJMzAKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1vcC5kYXQKaW5kZXggZDhhMDUyMTRiMTEuLmI4NDM0OTE1ZmRkIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0CisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYW1vcC5kYXQKQEAgLTEzNjEsNiArMTM2MSw5IEBACiB7IGFtb3BmYW1p bHkgPT4gJ2dpc3QvcmFuZ2Vfb3BzJywgYW1vcGxlZnR0eXBlID0+ICdhbnlyYW5nZScsCiAg IGFtb3ByaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbW9wc3RyYXRlZ3kgPT4gJzMn LAogICBhbW9wb3ByID0+ICcmJihhbnlyYW5nZSxhbnltdWx0aXJhbmdlKScsIGFtb3BtZXRo b2QgPT4gJ2dpc3QnIH0sCit7IGFtb3BmYW1pbHkgPT4gJ2dpc3QvcmFuZ2Vfb3BzJywgYW1v cGxlZnR0eXBlID0+ICdhbnlyYW5nZScsCisgIGFtb3ByaWdodHR5cGUgPT4gJ2FueXJhbmdl JywgYW1vcHN0cmF0ZWd5ID0+ICczMScsCisgIGFtb3BvcHIgPT4gJyYmJihhbnlyYW5nZSxh bnlyYW5nZSknLCBhbW9wbWV0aG9kID0+ICdnaXN0JyB9LAogeyBhbW9wZmFtaWx5ID0+ICdn aXN0L3JhbmdlX29wcycsIGFtb3BsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAogICBhbW9wcmln aHR0eXBlID0+ICdhbnlyYW5nZScsIGFtb3BzdHJhdGVneSA9PiAnNCcsCiAgIGFtb3BvcHIg PT4gJyY+KGFueXJhbmdlLGFueXJhbmdlKScsIGFtb3BtZXRob2QgPT4gJ2dpc3QnIH0sCkBA IC0xNDE3LDYgKzE0MjAsOSBAQAogeyBhbW9wZmFtaWx5ID0+ICdnaXN0L211bHRpcmFuZ2Vf b3BzJywgYW1vcGxlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgYW1vcHJpZ2h0dHlw ZSA9PiAnYW55cmFuZ2UnLCBhbW9wc3RyYXRlZ3kgPT4gJzMnLAogICBhbW9wb3ByID0+ICcm JihhbnltdWx0aXJhbmdlLGFueXJhbmdlKScsIGFtb3BtZXRob2QgPT4gJ2dpc3QnIH0sCit7 IGFtb3BmYW1pbHkgPT4gJ2dpc3QvbXVsdGlyYW5nZV9vcHMnLCBhbW9wbGVmdHR5cGUgPT4g J2FueW11bHRpcmFuZ2UnLAorICBhbW9wcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywg YW1vcHN0cmF0ZWd5ID0+ICczMScsCisgIGFtb3BvcHIgPT4gJyYmJihhbnltdWx0aXJhbmdl LGFueW11bHRpcmFuZ2UpJywgYW1vcG1ldGhvZCA9PiAnZ2lzdCcgfSwKIHsgYW1vcGZhbWls eSA9PiAnZ2lzdC9tdWx0aXJhbmdlX29wcycsIGFtb3BsZWZ0dHlwZSA9PiAnYW55bXVsdGly YW5nZScsCiAgIGFtb3ByaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbW9wc3RyYXRl Z3kgPT4gJzQnLAogICBhbW9wb3ByID0+ICcmPihhbnltdWx0aXJhbmdlLGFueW11bHRpcmFu Z2UpJywgYW1vcG1ldGhvZCA9PiAnZ2lzdCcgfSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVy YXRvci5kYXQKaW5kZXggMGU3NTExZGRlMWMuLmQ2NGE1YTJjOWU3IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRhdAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX29wZXJhdG9yLmRhdApAQCAtMzA5NSw2ICszMDk1LDExIEBACiAgIG9wcnJl c3VsdCA9PiAnYm9vbCcsIG9wcmNvbSA9PiAnJiYoYW55cmFuZ2UsYW55cmFuZ2UpJywKICAg b3ByY29kZSA9PiAncmFuZ2Vfb3ZlcmxhcHMnLCBvcHJyZXN0ID0+ICdyYW5nZXNlbCcsCiAg IG9wcmpvaW4gPT4gJ2FyZWFqb2luc2VsJyB9LAoreyBvaWQgPT4gJzQ1NTInLCBvaWRfc3lt Ym9sID0+ICdPSURfUkFOR0VfTk9ORU1QVFlfT1ZFUkxBUF9PUCcsIGRlc2NyID0+ICdub25l bXB0eSBvdmVybGFwcycsCisgIG9wcm5hbWUgPT4gJyYmJicsIG9wcmxlZnQgPT4gJ2FueXJh bmdlJywgb3BycmlnaHQgPT4gJ2FueXJhbmdlJywKKyAgb3BycmVzdWx0ID0+ICdib29sJywg b3ByY29tID0+ICcmJiYoYW55cmFuZ2UsYW55cmFuZ2UpJywKKyAgb3ByY29kZSA9PiAncmFu Z2Vfbm9uZW1wdHlfb3ZlcmxhcHMnLCBvcHJyZXN0ID0+ICdyYW5nZXNlbCcsCisgIG9wcmpv aW4gPT4gJ2FyZWFqb2luc2VsJyB9LAogeyBvaWQgPT4gJzM4ODknLCBvaWRfc3ltYm9sID0+ ICdPSURfUkFOR0VfQ09OVEFJTlNfRUxFTV9PUCcsCiAgIGRlc2NyID0+ICdjb250YWlucycs CiAgIG9wcm5hbWUgPT4gJ0A+Jywgb3BybGVmdCA9PiAnYW55cmFuZ2UnLCBvcHJyaWdodCA9 PiAnYW55ZWxlbWVudCcsCkBAIC0zMzE0LDYgKzMzMTksMTIgQEAKICAgb3BycmVzdWx0ID0+ ICdib29sJywgb3ByY29tID0+ICcmJihhbnltdWx0aXJhbmdlLGFueW11bHRpcmFuZ2UpJywK ICAgb3ByY29kZSA9PiAnbXVsdGlyYW5nZV9vdmVybGFwc19tdWx0aXJhbmdlJywgb3BycmVz dCA9PiAnbXVsdGlyYW5nZXNlbCcsCiAgIG9wcmpvaW4gPT4gJ2FyZWFqb2luc2VsJyB9LAor eyBvaWQgPT4gJzQ1NTMnLCBvaWRfc3ltYm9sID0+ICdPSURfTVVMVElSQU5HRV9OT05FTVBU WV9PVkVSTEFQU19NVUxUSVJBTkdFX09QJywKKyAgZGVzY3IgPT4gJ25vbmVtcHR5IG92ZXJs YXBzJywKKyAgb3BybmFtZSA9PiAnJiYmJywgb3BybGVmdCA9PiAnYW55bXVsdGlyYW5nZScs IG9wcnJpZ2h0ID0+ICdhbnltdWx0aXJhbmdlJywKKyAgb3BycmVzdWx0ID0+ICdib29sJywg b3ByY29tID0+ICcmJiYoYW55bXVsdGlyYW5nZSxhbnltdWx0aXJhbmdlKScsCisgIG9wcmNv ZGUgPT4gJ211bHRpcmFuZ2Vfbm9uZW1wdHlfb3ZlcmxhcHNfbXVsdGlyYW5nZScsIG9wcnJl c3QgPT4gJ211bHRpcmFuZ2VzZWwnLAorICBvcHJqb2luID0+ICdhcmVham9pbnNlbCcgfSwK IHsgb2lkID0+ICcyODY5Jywgb2lkX3N5bWJvbCA9PiAnT0lEX01VTFRJUkFOR0VfQ09OVEFJ TlNfRUxFTV9PUCcsCiAgIGRlc2NyID0+ICdjb250YWlucycsCiAgIG9wcm5hbWUgPT4gJ0A+ Jywgb3BybGVmdCA9PiAnYW55bXVsdGlyYW5nZScsIG9wcnJpZ2h0ID0+ICdhbnllbGVtZW50 JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDdlYTZlMGZjZmY1Li5kY2RjZGU4 MWEwNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMDU1Miw2ICsxMDU1Miw5 IEBACiB7IG9pZCA9PiAnMzg1NycsCiAgIHByb25hbWUgPT4gJ3JhbmdlX292ZXJsYXBzJywg cHJvcmV0dHlwZSA9PiAnYm9vbCcsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnlyYW5nZSBhbnly YW5nZScsIHByb3NyYyA9PiAncmFuZ2Vfb3ZlcmxhcHMnIH0sCit7IG9pZCA9PiAnNDU1MScs CisgIHByb25hbWUgPT4gJ3JhbmdlX25vbmVtcHR5X292ZXJsYXBzJywgcHJvcmV0dHlwZSA9 PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdhbnlyYW5nZSBhbnlyYW5nZScsIHByb3Ny YyA9PiAncmFuZ2Vfbm9uZW1wdHlfb3ZlcmxhcHMnIH0sCiB7IG9pZCA9PiAnMzg1OCcsCiAg IHByb25hbWUgPT4gJ3JhbmdlX2NvbnRhaW5zX2VsZW0nLCBwcm9zdXBwb3J0ID0+ICdyYW5n ZV9jb250YWluc19lbGVtX3N1cHBvcnQnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJv YXJndHlwZXMgPT4gJ2FueXJhbmdlIGFueWVsZW1lbnQnLApAQCAtMTA3OTUsNiArMTA3OTgs MTQgQEAKICAgcHJvbmFtZSA9PiAnbXVsdGlyYW5nZV9vdmVybGFwc19tdWx0aXJhbmdlJywg cHJvcmV0dHlwZSA9PiAnYm9vbCcsCiAgIHByb2FyZ3R5cGVzID0+ICdhbnltdWx0aXJhbmdl IGFueW11bHRpcmFuZ2UnLAogICBwcm9zcmMgPT4gJ211bHRpcmFuZ2Vfb3ZlcmxhcHNfbXVs dGlyYW5nZScgfSwKK3sgb2lkID0+ICc0NTU1JywKKyAgcHJvbmFtZSA9PiAncmFuZ2Vfbm9u ZW1wdHlfb3ZlcmxhcHNfbXVsdGlyYW5nZScsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBw cm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55bXVsdGlyYW5nZScsCisgIHByb3NyYyA9PiAn cmFuZ2Vfbm9uZW1wdHlfb3ZlcmxhcHNfbXVsdGlyYW5nZScgfSwKK3sgb2lkID0+ICc0NTU0 JywKKyAgcHJvbmFtZSA9PiAnbXVsdGlyYW5nZV9ub25lbXB0eV9vdmVybGFwc19tdWx0aXJh bmdlJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdhbnltdWx0 aXJhbmdlIGFueW11bHRpcmFuZ2UnLAorICBwcm9zcmMgPT4gJ211bHRpcmFuZ2Vfbm9uZW1w dHlfb3ZlcmxhcHNfbXVsdGlyYW5nZScgfSwKIHsgb2lkID0+ICc0MjQ5JywKICAgcHJvbmFt ZSA9PiAnbXVsdGlyYW5nZV9jb250YWluc19lbGVtJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcs CiAgIHByb2FyZ3R5cGVzID0+ICdhbnltdWx0aXJhbmdlIGFueWVsZW1lbnQnLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbXVsdGlyYW5nZXR5cGVzLmggYi9zcmMvaW5jbHVk ZS91dGlscy9tdWx0aXJhbmdldHlwZXMuaAppbmRleCA4NDUyNTQzOTViNi4uMjMzNzExMDhh NDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL211bHRpcmFuZ2V0eXBlcy5oCisr KyBiL3NyYy9pbmNsdWRlL3V0aWxzL211bHRpcmFuZ2V0eXBlcy5oCkBAIC05Miw5ICs5Miwx NSBAQCBleHRlcm4gYm9vbCBtdWx0aXJhbmdlX2NvbnRhaW5zX211bHRpcmFuZ2VfaW50ZXJu YWwoVHlwZUNhY2hlRW50cnkgKnJhbmdldHlwLAogZXh0ZXJuIGJvb2wgcmFuZ2Vfb3Zlcmxh cHNfbXVsdGlyYW5nZV9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqcmFuZ2V0eXAsCiAJCQkJ CQkJCQkJCSAgIGNvbnN0IFJhbmdlVHlwZSAqciwKIAkJCQkJCQkJCQkJICAgY29uc3QgTXVs dGlyYW5nZVR5cGUgKm1yKTsKK2V4dGVybiBib29sIHJhbmdlX25vbmVtcHR5X292ZXJsYXBz X211bHRpcmFuZ2VfaW50ZXJuYWwoVHlwZUNhY2hlRW50cnkgKnJhbmdldHlwLAorCQkJCQkJ CQkJCQkgICBjb25zdCBSYW5nZVR5cGUgKnIsCisJCQkJCQkJCQkJCSAgIGNvbnN0IE11bHRp cmFuZ2VUeXBlICptcik7CiBleHRlcm4gYm9vbCBtdWx0aXJhbmdlX292ZXJsYXBzX211bHRp cmFuZ2VfaW50ZXJuYWwoVHlwZUNhY2hlRW50cnkgKnJhbmdldHlwLAogCQkJCQkJCQkJCQkJ CWNvbnN0IE11bHRpcmFuZ2VUeXBlICptcjEsCiAJCQkJCQkJCQkJCQkJY29uc3QgTXVsdGly YW5nZVR5cGUgKm1yMik7CitleHRlcm4gYm9vbCBtdWx0aXJhbmdlX25vbmVtcHR5X292ZXJs YXBzX211bHRpcmFuZ2VfaW50ZXJuYWwoVHlwZUNhY2hlRW50cnkgKnJhbmdldHlwLAorCQkJ CQkJCQkJCQkJCQkJIGNvbnN0IE11bHRpcmFuZ2VUeXBlICptcjEsCisJCQkJCQkJCQkJCQkJ CQkgY29uc3QgTXVsdGlyYW5nZVR5cGUgKm1yMik7CiBleHRlcm4gYm9vbCByYW5nZV9vdmVy bGVmdF9tdWx0aXJhbmdlX2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICpyYW5nZXR5cCwKIAkJ CQkJCQkJCQkJICAgY29uc3QgUmFuZ2VUeXBlICpyLAogCQkJCQkJCQkJCQkgICBjb25zdCBN dWx0aXJhbmdlVHlwZSAqbXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcmFu Z2V0eXBlcy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oCmluZGV4IDJiNTc0 ODczY2VmLi5hOWFjMTBlMTMxZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmFu Z2V0eXBlcy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3JhbmdldHlwZXMuaApAQCAtOTcs NiArOTcsNyBAQCBSYW5nZVR5cGVQR2V0RGF0dW0oY29uc3QgUmFuZ2VUeXBlICpYKQogI2Rl ZmluZSBSQU5HRVNUUkFUX0JFRk9SRQkJCQlSVExlZnRTdHJhdGVneU51bWJlcgogI2RlZmlu ZSBSQU5HRVNUUkFUX09WRVJMRUZUCQkJCVJUT3ZlckxlZnRTdHJhdGVneU51bWJlcgogI2Rl ZmluZSBSQU5HRVNUUkFUX09WRVJMQVBTCQkJCVJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyCisj ZGVmaW5lIFJBTkdFU1RSQVRfTk9ORU1QVFlfT1ZFUkxBUFMJUlROb25lbXB0eU92ZXJsYXBT dHJhdGVneU51bWJlcgogI2RlZmluZSBSQU5HRVNUUkFUX09WRVJSSUdIVAkJCVJUT3ZlclJp Z2h0U3RyYXRlZ3lOdW1iZXIKICNkZWZpbmUgUkFOR0VTVFJBVF9BRlRFUgkJCQlSVFJpZ2h0 U3RyYXRlZ3lOdW1iZXIKICNkZWZpbmUgUkFOR0VTVFJBVF9BREpBQ0VOVAkJCQlSVFNhbWVT dHJhdGVneU51bWJlcgpAQCAtMTI4LDYgKzEyOSw4IEBAIGV4dGVybiBib29sIHJhbmdlX2Fk amFjZW50X2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgY29uc3QgUmFuZ2VU eXBlICpyCiAJCQkJCQkJCQljb25zdCBSYW5nZVR5cGUgKnIyKTsKIGV4dGVybiBib29sIHJh bmdlX292ZXJsYXBzX2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgY29uc3Qg UmFuZ2VUeXBlICpyMSwKIAkJCQkJCQkJCWNvbnN0IFJhbmdlVHlwZSAqcjIpOworZXh0ZXJu IGJvb2wgcmFuZ2Vfbm9uZW1wdHlfb3ZlcmxhcHNfaW50ZXJuYWwoVHlwZUNhY2hlRW50cnkg KnR5cGNhY2hlLCBjb25zdCBSYW5nZVR5cGUgKnIxLAorCQkJCQkJCQkJY29uc3QgUmFuZ2VU eXBlICpyMik7CiBleHRlcm4gYm9vbCByYW5nZV9vdmVybGVmdF9pbnRlcm5hbChUeXBlQ2Fj aGVFbnRyeSAqdHlwY2FjaGUsIGNvbnN0IFJhbmdlVHlwZSAqcjEsCiAJCQkJCQkJCQljb25z dCBSYW5nZVR5cGUgKnIyKTsKIGV4dGVybiBib29sIHJhbmdlX292ZXJyaWdodF9pbnRlcm5h bChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUsIGNvbnN0IFJhbmdlVHlwZSAqcjEsCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAppbmRleCA5ZDA0N2IyMWI4 OC4uZDgwNTlhNzI3MDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2Fu aXR5Lm91dApAQCAtNTE4LDkgKzUxOCwxMCBAQCBTRUxFQ1QgcDEub2lkLCBwMS5wcm9uYW1l CiBGUk9NIHBnX3Byb2MgYXMgcDEgTEVGVCBKT0lOIHBnX2Rlc2NyaXB0aW9uIGFzIGQKICAg ICAgT04gcDEudGFibGVvaWQgPSBkLmNsYXNzb2lkIGFuZCBwMS5vaWQgPSBkLm9iam9pZCBh bmQgZC5vYmpzdWJpZCA9IDAKIFdIRVJFIGQuY2xhc3NvaWQgSVMgTlVMTCBBTkQgcDEub2lk IDw9IDk5OTk7Ci0gb2lkIHwgcHJvbmFtZSAKLS0tLS0tKy0tLS0tLS0tLQotKDAgcm93cykK KyBvaWQgIHwgICAgICAgICAgICAgIHByb25hbWUgICAgICAgICAgICAgICAKKy0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA0NTU1IHwgcmFuZ2Vfbm9u ZW1wdHlfb3ZlcmxhcHNfbXVsdGlyYW5nZQorKDEgcm93KQogCiAtLSBMaXN0IG9mIGJ1aWx0 LWluIGxlYWtwcm9vZiBmdW5jdGlvbnMKIC0tCkBAIC0xMTQ5LDYgKzExNTAsNyBAQCBPUkRF UiBCWSAxLCAyOwogICMgICAgfCAjCiAgJiAgICB8ICYKICAmJiAgIHwgJiYKKyAmJiYgIHwg JiYmCiAgKiAgICB8ICoKICAqPCAgIHwgKj4KICAqPD0gIHwgKj49CkBAIC0xMTc1LDcgKzEx NzcsNyBAQCBPUkRFUiBCWSAxLCAyOwogIH48PX4gfCB+Pj1+CiAgfjx+ICB8IH4+fgogIH49 ICAgfCB+PQotKDI5IHJvd3MpCisoMzAgcm93cykKIAogLS0gTGlrZXdpc2UgZm9yIG5lZ2F0 b3IgcGFpcnMuCiBTRUxFQ1QgRElTVElOQ1QgbzEub3BybmFtZSBBUyBvcDEsIG8yLm9wcm5h bWUgQVMgb3AyCkBAIC0yMDEwLDYgKzIwMTIsNyBAQCBPUkRFUiBCWSAxLCAyLCAzOwogICAg ICAgICA3ODMgfCAgICAgICAgICAgMjggfCA8QAogICAgICAgICA3ODMgfCAgICAgICAgICAg MjkgfCA8XgogICAgICAgICA3ODMgfCAgICAgICAgICAgMzAgfCA+XgorICAgICAgICA3ODMg fCAgICAgICAgICAgMzEgfCAmJiYKICAgICAgICAgNzgzIHwgICAgICAgICAgIDQ4IHwgPEAK ICAgICAgICAgNzgzIHwgICAgICAgICAgIDY4IHwgPEAKICAgICAgICAyNzQyIHwgICAgICAg ICAgICAxIHwgJiYKQEAgLTIwOTAsNyArMjA5Myw3IEBAIE9SREVSIEJZIDEsIDIsIDM7CiAg ICAgICAgNDAwMCB8ICAgICAgICAgICAyOCB8IF5ACiAgICAgICAgNDAwMCB8ICAgICAgICAg ICAyOSB8IDxeCiAgICAgICAgNDAwMCB8ICAgICAgICAgICAzMCB8ID5eCi0oMTI0IHJvd3Mp CisoMTI1IHJvd3MpCiAKIC0tIENoZWNrIHRoYXQgYWxsIG9wY2xhc3Mgc2VhcmNoIG9wZXJh dG9ycyBoYXZlIHNlbGVjdGl2aXR5IGVzdGltYXRvcnMuCiAtLSBUaGlzIGlzIG5vdCBhYnNv bHV0ZWx5IHJlcXVpcmVkLCBidXQgaXQgc2VlbXMgYSByZWFzb25hYmxlIHRoaW5nCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRl eCA5NDIzNDc1ODU5OC4uMDQwMzhhODNmYmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMzc5LDYgKzM3OSwxMSBAQCBE Uk9QIFRBQkxFIHRlbXBvcmFsMzsKIC0tIHJhbmdlIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcg cm93cwogLS0KIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfcm5nX3BrOworLS0gbm8gZW1wdGllcyBhbGxvd2VkLCBldmVuIHRoZSBmaXJzdCBy b3c6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEsMiknLCAnZW1wdHknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKTsKK0VSUk9SOiAgcmFuZ2UgY2Fubm90IGJlIGVtcHR5CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmc7CiAtLSBva2F5OgogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywg JzIwMTgtMDItMDMnKSk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0w NCcpKTsKQEAgLTM5OCw2ICs0MDMsMTQgQEAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nOwog LS0KIC0tIHJhbmdlIFBLOiB0ZXN0IGluc2VydHMKIC0tCistLSBzaG91bGQgZmFpbDoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScs ICdlbXB0eScpOworRVJST1I6ICByYW5nZSBjYW5ub3QgYmUgZW1wdHkKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcm5nOworIGlkIHwgdmFsaWRfYXQgCistLS0tKy0tLS0tLS0tLS0KKygw IHJvd3MpCisKIC0tIG9rYXk6CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0w Mi0wMycpKTsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpOwpA QCAtNTkyLDYgKzYwNSwxMSBAQCBEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CiAtLSBtdWx0 aXJhbmdlIFBLOiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cwogLS0KIEFMVEVSIFRBQkxFIHRl bXBvcmFsX21sdHJuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nX3BrOworLS0g bm8gZW1wdGllcyBhbGxvd2VkLCBldmVuIHRoZSBmaXJzdCByb3c6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCAne30nKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9t bHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K0VSUk9SOiAgcmFuZ2UgY2Fubm90IGJlIGVtcHR5CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9t bHRybmc7CiAtLSBva2F5OgogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAyJywgJzIwMTgtMDItMDMnKSkpOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSkpOwpAQCAtNjExLDYgKzYyOSwxNCBA QCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmc7CiAtLQogLS0gbXVsdGlyYW5nZSBQSzog dGVzdCBpbnNlcnRzCiAtLQorLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCAne30nKTsKK0VSUk9S OiAgbXVsdGlyYW5nZSBjYW5ub3QgYmUgZW1wdHkKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf bWx0cm5nOworIGlkIHwgdmFsaWRfYXQgCistLS0tKy0tLS0tLS0tLS0KKygwIHJvd3MpCisK IC0tIG9rYXk6CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDIn LCAnMjAxOC0wMi0wMycpKSk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dp dGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IDM2YjNlNmRjMDJhLi5jZjRhMjIzNDVmOSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTI1MSw2 ICsyNTEsMTEgQEAgRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAKIEFMVEVSIFRBQkxFIHRlbXBv cmFsX3JuZyBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrOwogCistLSBubyBlbXB0 aWVzIGFsbG93ZWQsIGV2ZW4gdGhlIGZpcnN0IHJvdzoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsICdlbXB0eScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfcm5nIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRFIEZST00g dGVtcG9yYWxfcm5nOworCiAtLSBva2F5OgogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywg JzIwMTgtMDItMDMnKSk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0w NCcpKTsKQEAgLTI3MSw2ICsyNzYsMTAgQEAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nOwog LS0gcmFuZ2UgUEs6IHRlc3QgaW5zZXJ0cwogLS0KIAorLS0gc2hvdWxkIGZhaWw6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCAn ZW1wdHknKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nOworCiAtLSBva2F5OgogSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSk7CiBJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpKTsKQEAgLTQwOCw2ICs0MTcsMTEgQEAgRFJP UCBUQUJMRSB0ZW1wb3JhbF9ybmczOwogCiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9tbHRybmcg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX21sdHJuZ19wazsKIAorLS0gbm8gZW1wdGllcyBh bGxvd2VkLCBldmVuIHRoZSBmaXJzdCByb3c6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMiknLCAne30nKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX21sdHJuZyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmdfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzsKKwogLS0gb2theToKIElOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpKTsKIElOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKQEAgLTQy OCw2ICs0NDIsMTAgQEAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nOwogLS0gbXVsdGly YW5nZSBQSzogdGVzdCBpbnNlcnRzCiAtLQogCistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsICd7 fScpOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmc7CisKIC0tIG9rYXk6CiBJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEsMikn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycp KSk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAx OC0wNC0wNCcpKSk7Ci0tIAoyLjQyLjAKCg== --------------chobAlN9YDJn29tODLTlOP0i--