Received: by 2002:ab2:2994:0:b0:1ef:ca3e:3cd5 with SMTP id n20csp328545lqb; Thu, 14 Mar 2024 12:21:08 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVrcmPYfANI0ipWZ5lGLCuhB/IW1YXFa0NZMO6HEC+jkET3uuAwkd6DGVRLtfRpHaD3nVDGmahKCaUX/meA8d7oshIQeF/UhnVFMlT4yA== X-Google-Smtp-Source: AGHT+IGQu4pIUkLgZbhXSlpW/WvEnZNozZ/RYHpb9AWeHFDni9W90qYBK9iiHPZBWf/x/wLgFTEd X-Received: by 2002:a05:6402:2410:b0:567:48a9:cf85 with SMTP id t16-20020a056402241000b0056748a9cf85mr1689928eda.37.1710444068441; Thu, 14 Mar 2024 12:21:08 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710444068; cv=pass; d=google.com; s=arc-20160816; b=mcS6CMgv8Sf8YEyZJPO5rZWkqNWm8Nfw9pYnSbWzC5VbjOf8TltCYeg+lCboTuGwsI CyyQoLuilGJvuRRXzTz0U/m0Ka80MYHZzgPjVFOwA3Lbp1jbbt7ugGHY9D7kph+39A0R MQOxav8ablzZ1TvcbitCWU5b4RIcmtpW29UVJFBCwvbkq3g/YIcvBLuLD3LaCNOHUpY0 t082ygcozRKgGM4lQT+MqmF94sSMR1cKm0jRWk/NHJGJptjky3xa/lFTH5xlsAj2TxMC l9uI1x16m62tn0ltuSUMCHax8ezJUeWb0UujlTkSMoj8TPg/QDGy8I9SFNI4Cmj3NFVi QoYQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:references:in-reply-to:subject:to:from:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :dkim-signature; bh=0qxiijD12NodrEg9S+ZJ5j/++1p4fpcmvj7BRCfmiN4=; fh=50eA2cUr6JbHRRnTLemQk1nKqLkbGirJqpFNu71PrKI=; b=Nz9iYllRs0cIlQrDUawvObJMU3s1B81cQIfjFLR/UE5yO31QmxbcD4WsbdJSCw+lxm DhWO//s0CBfr2tHEvJFH7hL4zNpSO7f9JasQDnkGjA8PuoD38ojDECrtqlnuYzNWEJmP FLJ9YYCtsWxc2BEeywqKQ+LIGxLRNKeh21IKcQjRyRhnW5sT/7w6c/+1fDBMIwh0qCSV 1TOYWmI9hwmM8S/73CxgdGcSwLzBqOzGUVBEZx0RGkYqPMti9VOFiBPJlZef6r3boZVY p1Qq5e7aGfT8w0nDo+LNI2iCyGmUxT2he1s2qTPoKKr2UWzK0Crru6bkgZjlGlXTFwun Ui/A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=PdWmNmnT; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-2541-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-2541-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id fi12-20020a056402550c00b00567e8ca1b0csi1037601edb.631.2024.03.14.12.21.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Mar 2024 12:21:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth+bounces-2541-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=PdWmNmnT; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-2541-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-2541-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id D8FAF1F22011 for ; Thu, 14 Mar 2024 19:21:07 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7F48576020; Thu, 14 Mar 2024 19:20:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PdWmNmnT" X-Original-To: linux-bluetooth@vger.kernel.org Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B6C9D745EC for ; Thu, 14 Mar 2024 19:20:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710444058; cv=none; b=s//PQVVQODHmgh50CLLqSjWcbBlAOVEATBXX0mrFZpydM08zNsWIDAS6raUVYnxxm3RPNBr6V1WeM0CR6FN85Yx74c+71pH3dSa2ohI7ZYIxiFF2IW1tBOwJ3m8PaTR7vg3D157qr8/Lvg1gzy57UCRVAjvsxEx9FIdnltAHf+0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710444058; c=relaxed/simple; bh=0qxiijD12NodrEg9S+ZJ5j/++1p4fpcmvj7BRCfmiN4=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=alggYIMnuA1bbWPfYdwaV15xbpR/lTq72xriJxxTXhJvKHAxJMJ6/s+HUEYX+l42DaMloF2pO8aA0ttd0shqDgkVK2RSYSKpj9rdRGfIPIficQbw1BrfkpyI9OzyDadVSwvQA3Chn3NMwTpwFdgKthELuByT+9IwUExFsKdJZUQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PdWmNmnT; arc=none smtp.client-ip=209.85.222.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-7882d713f6fso63910085a.0 for ; Thu, 14 Mar 2024 12:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710444055; x=1711048855; darn=vger.kernel.org; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=0qxiijD12NodrEg9S+ZJ5j/++1p4fpcmvj7BRCfmiN4=; b=PdWmNmnTQGnnkpfyOXwhXeRrROEb8coEPJaWivtj5A6KQzN4BUIx3KL954uUf54FNa HyadmsD1BbXVT1hp41+sxh6k1pUbrzgOiGB+KYFEYZ+OpOXYcERKApzQLRv6ZpY9V/tL s/WuYgxf5rEpnK04E/SDzJEZFR+FBux18mO95Se6a7UcdelySEgWhw/sPf7F8JTU9neV e5HGxYIkotEsK2pTHAjaIShsqsDB3jC/wW8WZjBa5e0OiF/mLnLwLnfvYOMX7pbr8kIl lMIPrjDZtC3tvMpEDAxl/1Lru8iEMMn2aunhLp3iyn3RZk3t4+L/sIW+lZf1dL3hrTP/ 9P5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710444055; x=1711048855; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0qxiijD12NodrEg9S+ZJ5j/++1p4fpcmvj7BRCfmiN4=; b=k3z5nTjSQQBwv/0hlTvid6+EPD2Oa8NHfCJlYffWMQADcQcGUo/Fp84hiCajwVcGS+ AsJRV+mAwb3i1+kv4tLpk72kAisuYoydADOUlWsSDt2NyDtOcoSW9wHz/cmiAz4Hifq3 X9dPQBDSnTQYNFSBi+O2pDU5spoTIxQnZ1uj+lmDgCxMZOA5h6S1OdodDSg5rbFwIVrO S8xxdwSV+eYkmjMmvBc7JEwKdZdElGchL53o7kMAsMvbyx13KBHQ8pv8tA3x5I88JFKR czbNS29zw3h58l72RTwZhc64CSfFUyiSUHlQ1NvGy8cjbSduVBDBFbvzLlb//KFFwN2+ nMNw== X-Gm-Message-State: AOJu0YwGiTX8Q0NhQqxkadA8e1TPZWFYPCCYpPZw5E8BlQ5ZSUi1EaJD lt1WIBPk8XsECmdFF3PhssI++LwmrIX9rQnYF2jc2zBlqGqg46KJMp9sw0uc X-Received: by 2002:a05:620a:13f0:b0:789:e1af:6038 with SMTP id h16-20020a05620a13f000b00789e1af6038mr1019939qkl.38.1710444055237; Thu, 14 Mar 2024 12:20:55 -0700 (PDT) Received: from [172.17.0.2] ([40.67.133.155]) by smtp.gmail.com with ESMTPSA id f18-20020ae9ea12000000b007884dd207b8sm1148664qkg.55.2024.03.14.12.20.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Mar 2024 12:20:55 -0700 (PDT) Message-ID: <65f34e17.e90a0220.f2be0.3ec8@mx.google.com> Date: Thu, 14 Mar 2024 12:20:55 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============4826445921656929815==" Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: bluez.test.bot@gmail.com To: linux-bluetooth@vger.kernel.org, pav@iki.fi Subject: RE: tests: add TX timestamping tests In-Reply-To: <1e611b09ab57ce0ba42c377a75f12a6eaf70e133.1710440408.git.pav@iki.fi> References: <1e611b09ab57ce0ba42c377a75f12a6eaf70e133.1710440408.git.pav@iki.fi> Reply-To: linux-bluetooth@vger.kernel.org --===============4826445921656929815== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9ODM1Mzk1CgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBGQUlMICAgICAgNC44MSBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBB U1MgICAgICAyLjg0IHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDI0LjA2IHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDUwLjMwIHNlY29uZHMKTWFrZUNoZWNrICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDE1 MC4zOSBzZWNvbmRzCk1ha2VEaXN0Y2hlY2sgICAgICAgICAgICAgICAgIFBBU1MgICAgICAxNzUu Njcgc2Vjb25kcwpDaGVja1ZhbGdyaW5kICAgICAgICAgICAgICAgICBGQUlMICAgICAgNDIuNTAg c2Vjb25kcwpDaGVja1NtYXRjaCAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgOTUuOTQgc2Vj b25kcwpibHVlem1ha2VleHRlbGwgICAgICAgICAgICAgICBGQUlMICAgICAgMjQuODUgc2Vjb25k cwpJbmNyZW1lbnRhbEJ1aWxkICAgICAgICAgICAgICBGQUlMICAgICAgMTQ3NS4wNiBzZWNvbmRz ClNjYW5CdWlsZCAgICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICA1ODkuMTMgc2Vjb25kcwoK RGV0YWlscwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogQ2hlY2tQYXRjaCAt IEZBSUwKRGVzYzogUnVuIGNoZWNrcGF0Y2gucGwgc2NyaXB0Ck91dHB1dDoKW0JsdWVaLHYyLDYv OV0gc2hhcmVkL3Rlc3RlcjogcnVuIHRlc3Qgd2l0aCBnaXZlbiBuYW1lCkVSUk9SOklOSVRJQUxJ U0VEX1NUQVRJQzogZG8gbm90IGluaXRpYWxpc2Ugc3RhdGljcyB0byBOVUxMCiMxMDg6IEZJTEU6 IHNyYy9zaGFyZWQvdGVzdGVyLmM6MTE1Ogorc3RhdGljIGNvbnN0IGNoYXIgKm9wdGlvbl9uYW1l ID0gTlVMTDsKCi9naXRodWIvd29ya3NwYWNlL3NyYy9zcmMvMTM1OTI2NTYucGF0Y2ggdG90YWw6 IDEgZXJyb3JzLCAwIHdhcm5pbmdzLCAyNyBsaW5lcyBjaGVja2VkCgpOT1RFOiBGb3Igc29tZSBv ZiB0aGUgcmVwb3J0ZWQgZGVmZWN0cywgY2hlY2twYXRjaCBtYXkgYmUgYWJsZSB0bwogICAgICBt ZWNoYW5pY2FsbHkgY29udmVydCB0byB0aGUgdHlwaWNhbCBzdHlsZSB1c2luZyAtLWZpeCBvciAt LWZpeC1pbnBsYWNlLgoKL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3NyYy8xMzU5MjY1Ni5wYXRjaCBo YXMgc3R5bGUgcHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuCgpOT1RFOiBJZ25vcmVkIG1lc3NhZ2Ug dHlwZXM6IENPTU1JVF9NRVNTQUdFIENPTVBMRVhfTUFDUk8gQ09OU1RfU1RSVUNUIEZJTEVfUEFU SF9DSEFOR0VTIE1JU1NJTkdfU0lHTl9PRkYgUFJFRkVSX1BBQ0tFRCBTUERYX0xJQ0VOU0VfVEFH IFNQTElUX1NUUklORyBTU0NBTkZfVE9fS1NUUlRPCgpOT1RFOiBJZiBhbnkgb2YgdGhlIGVycm9y cyBhcmUgZmFsc2UgcG9zaXRpdmVzLCBwbGVhc2UgcmVwb3J0CiAgICAgIHRoZW0gdG8gdGhlIG1h aW50YWluZXIsIHNlZSBDSEVDS1BBVENIIGluIE1BSU5UQUlORVJTLgoKCiMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBCbHVlek1ha2UgLSBGQUlMCkRlc2M6IEJ1aWxkIEJsdWVa Ck91dHB1dDoKCnRvb2xzL2wyY2FwLXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhsMmNhcF90eF90 aW1lc3RhbXBpbmfigJk6CnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEyOTI6OTogZXJyb3I6IHZhcmlh YmxlIOKAmHNv4oCZIGhhcyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAxMjkyIHwg IHN0cnVjdCBzb190aW1lc3RhbXBpbmcgc28gPSB7CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+ fn5+fn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI5Mzo0OiBlcnJvcjog4oCYc3RydWN0IHNvX3Rp bWVzdGFtcGluZ+KAmSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKAmGZsYWdz4oCZCiAxMjkzIHwgICAu ZmxhZ3MgPSBsMmRhdGEtPnNvX3RpbWVzdGFtcGluZywKICAgICAgfCAgICBefn5+fgp0b29scy9s MmNhcC10ZXN0ZXIuYzoxMjkzOjEyOiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBp bml0aWFsaXplciBbLVdlcnJvcl0KIDEyOTMgfCAgIC5mbGFncyA9IGwyZGF0YS0+c29fdGltZXN0 YW1waW5nLAogICAgICB8ICAgICAgICAgICAgXn5+fn5+CnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEy OTM6MTI6IG5vdGU6IChuZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhzb+KAmSkKdG9vbHMvbDJj YXAtdGVzdGVyLmM6MTI5MjoyNTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhzb+KAmSBpc27i gJl0IGtub3duCiAxMjkyIHwgIHN0cnVjdCBzb190aW1lc3RhbXBpbmcgc28gPSB7CiAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgXn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI5MjoyNTog ZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhzb+KAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVd CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBb TWFrZWZpbGU6NzgwNzogdG9vbHMvbDJjYXAtdGVzdGVyLm9dIEVycm9yIDEKbWFrZVsxXTogKioq IFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KdG9vbHMvbWdtdC10ZXN0ZXIuYzogSW4g ZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0ZXIuYzoxMjcyMTo1OiBub3RlOiB2 YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tp bmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKMTI3MjEgfCBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+Cm1ha2U6ICoqKiBbTWFrZWZpbGU6 NDY0OTogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBN YWtlQ2hlY2sgLSBGQUlMCkRlc2M6IFJ1biBCbHVleiBNYWtlIENoZWNrCk91dHB1dDoKCnRvb2xz L2wyY2FwLXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhsMmNhcF90eF90aW1lc3RhbXBpbmfigJk6 CnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEyOTI6OTogZXJyb3I6IHZhcmlhYmxlIOKAmHNv4oCZIGhh cyBpbml0aWFsaXplciBidXQgaW5jb21wbGV0ZSB0eXBlCiAxMjkyIHwgIHN0cnVjdCBzb190aW1l c3RhbXBpbmcgc28gPSB7CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn4KdG9vbHMvbDJj YXAtdGVzdGVyLmM6MTI5Mzo0OiBlcnJvcjog4oCYc3RydWN0IHNvX3RpbWVzdGFtcGluZ+KAmSBo YXMgbm8gbWVtYmVyIG5hbWVkIOKAmGZsYWdz4oCZCiAxMjkzIHwgICAuZmxhZ3MgPSBsMmRhdGEt PnNvX3RpbWVzdGFtcGluZywKICAgICAgfCAgICBefn5+fgp0b29scy9sMmNhcC10ZXN0ZXIuYzox MjkzOjEyOiBlcnJvcjogZXhjZXNzIGVsZW1lbnRzIGluIHN0cnVjdCBpbml0aWFsaXplciBbLVdl cnJvcl0KIDEyOTMgfCAgIC5mbGFncyA9IGwyZGF0YS0+c29fdGltZXN0YW1waW5nLAogICAgICB8 ICAgICAgICAgICAgXn5+fn5+CnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEyOTM6MTI6IG5vdGU6IChu ZWFyIGluaXRpYWxpemF0aW9uIGZvciDigJhzb+KAmSkKdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI5 MjoyNTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhzb+KAmSBpc27igJl0IGtub3duCiAxMjky IHwgIHN0cnVjdCBzb190aW1lc3RhbXBpbmcgc28gPSB7CiAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgXn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI5MjoyNTogZXJyb3I6IHVudXNlZCB2 YXJpYWJsZSDigJhzb+KAmSBbLVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCmNjMTogYWxsIHdhcm5p bmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NzgwNzog dG9vbHMvbDJjYXAtdGVzdGVyLm9dIEVycm9yIDEKbWFrZTogKioqIFtNYWtlZmlsZToxMjE4NDog Y2hlY2tdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNr VmFsZ3JpbmQgLSBGQUlMCkRlc2M6IFJ1biBCbHVleiBNYWtlIENoZWNrIHdpdGggVmFsZ3JpbmQK T3V0cHV0OgoKdG9vbHMvbDJjYXAtdGVzdGVyLmM6IEluIGZ1bmN0aW9uIOKAmGwyY2FwX3R4X3Rp bWVzdGFtcGluZ+KAmToKdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI5Mjo5OiBlcnJvcjogdmFyaWFi bGUg4oCYc2/igJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKIDEyOTIgfCAg c3RydWN0IHNvX3RpbWVzdGFtcGluZyBzbyA9IHsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fgp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjkzOjQ6IGVycm9yOiDigJhzdHJ1Y3Qgc29fdGlt ZXN0YW1waW5n4oCZIGhhcyBubyBtZW1iZXIgbmFtZWQg4oCYZmxhZ3PigJkKIDEyOTMgfCAgIC5m bGFncyA9IGwyZGF0YS0+c29fdGltZXN0YW1waW5nLAogICAgICB8ICAgIF5+fn5+CnRvb2xzL2wy Y2FwLXRlc3Rlci5jOjEyOTM6MTI6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGlu aXRpYWxpemVyIFstV2Vycm9yXQogMTI5MyB8ICAgLmZsYWdzID0gbDJkYXRhLT5zb190aW1lc3Rh bXBpbmcsCiAgICAgIHwgICAgICAgICAgICBefn5+fn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI5 MzoxMjogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHNv4oCZKQp0b29scy9sMmNh cC10ZXN0ZXIuYzoxMjkyOjI1OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHNv4oCZIGlzbuKA mXQga25vd24KIDEyOTIgfCAgc3RydWN0IHNvX3RpbWVzdGFtcGluZyBzbyA9IHsKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICBefgp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjkyOjI1OiBl cnJvcjogdW51c2VkIHZhcmlhYmxlIOKAmHNv4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0K Y2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtN YWtlZmlsZTo3ODA3OiB0b29scy9sMmNhcC10ZXN0ZXIub10gRXJyb3IgMQptYWtlWzFdOiAqKiog V2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBm dW5jdGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEyNzIxOjU6IG5vdGU6IHZh cmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2lu Zy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMjcyMSB8IGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KbWFrZTogKioqIFtNYWtlZmlsZTox MjE4NDogY2hlY2tdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6 IENoZWNrU21hdGNoIC0gRkFJTApEZXNjOiBSdW4gc21hdGNoIHRvb2wgd2l0aCBzb3VyY2UKT3V0 cHV0OgoKc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzE6MjE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0 aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MjoyMzogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6NzY4 OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9n YXR0LWhlbHBlcnMuYzo4MzA6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzMjM6MzE6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzNTQ6MjM6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQt c2VydmVyLmM6Mjc4OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K c3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjYyMToyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo3MjA6MjU6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2JhcC5jOjI4MjoyNTog d2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL2JhcC5jOiBu b3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQvYXNjcy5oOjg4OjI1OiB3YXJuaW5n OiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnNyYy9zaGFyZWQvc2hlbGwuYzogbm90ZTog aW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUu aCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9p bmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVu Y3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3Jl YWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVj bGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9y bHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzE6MjE6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2NyeXB0by5j OjI3MjoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFy ZWQvZ2F0dC1oZWxwZXJzLmM6NzY4OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo4MzA6MzE6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzMjM6 MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dh dHQtaGVscGVycy5jOjEzNTQ6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6Mjc4OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBs ZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjYyMToyNTogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2 ZXIuYzo3MjA6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMv c2hhcmVkL2JhcC5jOjI4MjoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJl cwpzcmMvc2hhcmVkL2JhcC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQv YXNjcy5oOjg4OjI1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnNyYy9z aGFyZWQvc2hlbGwuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1 ZGUvcmVhZGxpbmUvcmVhZGxpbmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZz Lmg6MzU6MjM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0 aW9uICdGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTog d2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5j dGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzog bm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91 c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJ IGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKdG9vbHMvbWVz aC1jZmd0ZXN0LmM6MTQ1MzoxNzogd2FybmluZzogdW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICdc JScKdG9vbHMvbDJjYXAtdGVzdGVyLmM6IEluIGZ1bmN0aW9uIOKAmGwyY2FwX3R4X3RpbWVzdGFt cGluZ+KAmToKdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI5Mjo5OiBlcnJvcjogdmFyaWFibGUg4oCY c2/igJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKIDEyOTIgfCAgc3RydWN0 IHNvX3RpbWVzdGFtcGluZyBzbyA9IHsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgp0 b29scy9sMmNhcC10ZXN0ZXIuYzoxMjkzOjQ6IGVycm9yOiDigJhzdHJ1Y3Qgc29fdGltZXN0YW1w aW5n4oCZIGhhcyBubyBtZW1iZXIgbmFtZWQg4oCYZmxhZ3PigJkKIDEyOTMgfCAgIC5mbGFncyA9 IGwyZGF0YS0+c29fdGltZXN0YW1waW5nLAogICAgICB8ICAgIF5+fn5+CnRvb2xzL2wyY2FwLXRl c3Rlci5jOjEyOTM6MTI6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRpYWxp emVyIFstV2Vycm9yXQogMTI5MyB8ICAgLmZsYWdzID0gbDJkYXRhLT5zb190aW1lc3RhbXBpbmcs CiAgICAgIHwgICAgICAgICAgICBefn5+fn4KdG9vbHMvbDJjYXAtdGVzdGVyLmM6MTI5MzoxMjog bm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHNv4oCZKQp0b29scy9sMmNhcC10ZXN0 ZXIuYzoxMjkyOjI1OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mIOKAmHNv4oCZIGlzbuKAmXQga25v d24KIDEyOTIgfCAgc3RydWN0IHNvX3RpbWVzdGFtcGluZyBzbyA9IHsKICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICBefgp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjkyOjI1OiBlcnJvcjog dW51c2VkIHZhcmlhYmxlIOKAmHNv4oCZIFstV2Vycm9yPXVudXNlZC12YXJpYWJsZV0KY2MxOiBh bGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmls ZTo3ODA3OiB0b29scy9sMmNhcC10ZXN0ZXIub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGlu ZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ2NDk6IGFsbF0g RXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogYmx1ZXptYWtlZXh0 ZWxsIC0gRkFJTApEZXNjOiBCdWlsZCBCbHVleiB3aXRoIEV4dGVybmFsIEVMTApPdXRwdXQ6Cgp0 b29scy9sMmNhcC10ZXN0ZXIuYzogSW4gZnVuY3Rpb24g4oCYbDJjYXBfdHhfdGltZXN0YW1waW5n 4oCZOgp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjkyOjk6IGVycm9yOiB2YXJpYWJsZSDigJhzb+KA mSBoYXMgaW5pdGlhbGl6ZXIgYnV0IGluY29tcGxldGUgdHlwZQogMTI5MiB8ICBzdHJ1Y3Qgc29f dGltZXN0YW1waW5nIHNvID0gewogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CnRvb2xz L2wyY2FwLXRlc3Rlci5jOjEyOTM6NDogZXJyb3I6IOKAmHN0cnVjdCBzb190aW1lc3RhbXBpbmfi gJkgaGFzIG5vIG1lbWJlciBuYW1lZCDigJhmbGFnc+KAmQogMTI5MyB8ICAgLmZsYWdzID0gbDJk YXRhLT5zb190aW1lc3RhbXBpbmcsCiAgICAgIHwgICAgXn5+fn4KdG9vbHMvbDJjYXAtdGVzdGVy LmM6MTI5MzoxMjogZXJyb3I6IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIg Wy1XZXJyb3JdCiAxMjkzIHwgICAuZmxhZ3MgPSBsMmRhdGEtPnNvX3RpbWVzdGFtcGluZywKICAg ICAgfCAgICAgICAgICAgIF5+fn5+fgp0b29scy9sMmNhcC10ZXN0ZXIuYzoxMjkzOjEyOiBub3Rl OiAobmVhciBpbml0aWFsaXphdGlvbiBmb3Ig4oCYc2/igJkpCnRvb2xzL2wyY2FwLXRlc3Rlci5j OjEyOTI6MjU6IGVycm9yOiBzdG9yYWdlIHNpemUgb2Yg4oCYc2/igJkgaXNu4oCZdCBrbm93bgog MTI5MiB8ICBzdHJ1Y3Qgc29fdGltZXN0YW1waW5nIHNvID0gewogICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIF5+CnRvb2xzL2wyY2FwLXRlc3Rlci5jOjEyOTI6MjU6IGVycm9yOiB1bnVz ZWQgdmFyaWFibGUg4oCYc2/igJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQpjYzE6IGFsbCB3 YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjc4 MDc6IHRvb2xzL2wyY2FwLXRlc3Rlci5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZv ciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDY0OTogYWxsXSBFcnJv ciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBJbmNyZW1lbnRhbEJ1aWxk IC0gRkFJTApEZXNjOiBJbmNyZW1lbnRhbCBidWlsZCB3aXRoIHRoZSBwYXRjaGVzIGluIHRoZSBz ZXJpZXMKT3V0cHV0OgpbQmx1ZVosdjIsMi85XSBpc28tdGVzdGVyOiBBZGQgdGVzdHMgZm9yIFRY IHRpbWVzdGFtcGluZwoKdG9vbHMvaXNvLXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhpc29fdHhf dGltZXN0YW1waW5n4oCZOgp0b29scy9pc28tdGVzdGVyLmM6MjEyODo5OiBlcnJvcjogdmFyaWFi bGUg4oCYc2/igJkgaGFzIGluaXRpYWxpemVyIGJ1dCBpbmNvbXBsZXRlIHR5cGUKIDIxMjggfCAg c3RydWN0IHNvX3RpbWVzdGFtcGluZyBzbyA9IHsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fgp0b29scy9pc28tdGVzdGVyLmM6MjEyOTo0OiBlcnJvcjog4oCYc3RydWN0IHNvX3RpbWVz dGFtcGluZ+KAmSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKAmGZsYWdz4oCZCiAyMTI5IHwgICAuZmxh Z3MgPSBpc29kYXRhLT5zb190aW1lc3RhbXBpbmcsCiAgICAgIHwgICAgXn5+fn4KdG9vbHMvaXNv LXRlc3Rlci5jOjIxMjk6MTI6IGVycm9yOiBleGNlc3MgZWxlbWVudHMgaW4gc3RydWN0IGluaXRp YWxpemVyIFstV2Vycm9yXQogMjEyOSB8ICAgLmZsYWdzID0gaXNvZGF0YS0+c29fdGltZXN0YW1w aW5nLAogICAgICB8ICAgICAgICAgICAgXn5+fn5+fgp0b29scy9pc28tdGVzdGVyLmM6MjEyOTox Mjogbm90ZTogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIOKAmHNv4oCZKQp0b29scy9pc28tdGVz dGVyLmM6MjEyODoyNTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiDigJhzb+KAmSBpc27igJl0IGtu b3duCiAyMTI4IHwgIHN0cnVjdCBzb190aW1lc3RhbXBpbmcgc28gPSB7CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgXn4KdG9vbHMvaXNvLXRlc3Rlci5jOjIxMjg6MjU6IGVycm9yOiB1 bnVzZWQgdmFyaWFibGUg4oCYc2/igJkgWy1XZXJyb3I9dW51c2VkLXZhcmlhYmxlXQpjYzE6IGFs bCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxl Ojc4MDc6IHRvb2xzL2lzby10ZXN0ZXIub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBm b3IgdW5maW5pc2hlZCBqb2JzLi4uLgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDi gJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEyNzIxOjU6IG5vdGU6IHZhcmlhYmxlIHRy YWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25t ZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMjcyMSB8IGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KbWFrZTogKioqIFtNYWtlZmlsZTo0NjQ5OiBhbGxd IEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IFNjYW5CdWlsZCAt IEZBSUwKRGVzYzogUnVuIFNjYW4gQnVpbGQKT3V0cHV0OgoKc3JjL3NoYXJlZC9nYXR0LWNsaWVu dC5jOjQ1MToyMTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAg ICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRiX2lkKTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6 Njk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBk aXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNs aWVudC5jOjk5MzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hh cmVkL2dhdHQtY2xpZW50LmM6MTA5OToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRf ZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5MToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBz dWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTM1NjoyOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2Nv bXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYz MTo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYg KHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hh cmVkL2dhdHQtY2xpZW50LmM6MTYzNjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAgICBefn5+fn5+fn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQwOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQ4Ojg6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVm KG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzIzNzoy OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxl dGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzozMjU5OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEy IHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9zaGVsbC5jOjEyNDM6MTM6IHdhcm5pbmc6 IEFjY2VzcyB0byBmaWVsZCAnb3B0aW9ucycgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEg bnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnb3B0JykKICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKGMgIT0gb3B0LT5vcHRpb25zW2luZGV4IC0gb2Zmc2V0XS52YWwpIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5l cmF0ZWQuCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo0NTE6MjE6IHdhcm5pbmc6IFVzZSBvZiBt ZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBnYXR0X2RiX3VucmVnaXN0ZXIob3AtPmNs aWVudC0+ZGIsIG9wLT5kYl9pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjY5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBmYWxz ZSwgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo5OTM6Mjogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShv cCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEwOTk6Mjogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9v cF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5j OjEyOTE6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjEzNTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2Rl KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K c3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2MzE6Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBh ZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2MzY6Mjogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyX2Fs bChvcCk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6 MjE0MDo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAg aWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMv c2hhcmVkL2dhdHQtY2xpZW50LmM6MjE0ODo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGlzY292ZXJ5X29wX3JlZihvcCksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjMyMzc6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgIGNvbXBsZXRlX3dyaXRlX2xvbmdfb3AocmVxLCBzdWNjZXNz LCAwLCBmYWxzZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzI1OToyOiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgcmVxdWVzdF91bnJlZihyZXEpOwog ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgoxMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFy ZWQvc2hlbGwuYzoxMjQzOjEzOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ29wdGlvbnMnIHJl c3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFy aWFibGUgJ29wdCcpCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IG9wdC0+b3B0aW9u c1tpbmRleCAtIG9mZnNldF0udmFsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9oY2lhdHRhY2guYzo4MTY6 Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0 aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFk IGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDEwKSkg PCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9oY2lhdHRhY2guYzo4NjQ6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0 byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBu ZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZl bnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6ODg2Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRo ZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9u LCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgICAgICAg ICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDEwKSkgPCAwKSB7CiAgICAgICAg ICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0 dGFjaC5jOjkwODo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBp cyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFj dHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwg cmVzcCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9oY2lhdHRhY2guYzo5Mjk6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVl IHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2 YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVh ZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6OTczOjc6IHdhcm5pbmc6IEFs dGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBl eHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAg ICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCA2KSkgPCAwKSB7CiAgICAgICAg ICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjYgd2FybmluZ3MgZ2VuZXJhdGVk LgpzcmMvb3VpLmM6NTA6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZl ciByZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdkYl91bnJlZihod2RiKTsKICAgICAgICBeICAg ICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9vdWkuYzo1MzoyOiB3YXJuaW5nOiBWYWx1ZSBz dG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQKICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1 ZGV2KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRl ZC4KdG9vbHMvaGNpZHVtcC5jOjE4MDo5OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1v cnkgcG9pbnRlZCB0byBieSAnZHAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGZkc1tpXS5mZCA9PSBzb2NrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn4KdG9vbHMvaGNpZHVtcC5jOjI0ODoxNzogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2Fy YmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaC0+dHNf c2VjICA9IGh0b2JsKGZybS50cy50dl9zZWMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjMy Njo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxp emVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJlMzJ0b2goZHAu ZmxhZ3MpICYgMHgwMikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6NDY6MjI6IG5vdGU6IGV4cGFuZGVk IGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMgIGRlZmluZSBiZTMydG9oKHgpIF9fYnN3YXBfMzIgKHgp CiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzozNDE6 MjA6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6 ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm0uZGF0YV9sZW4gPSBi ZTMydG9oKGRwLmxlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9lbmRpYW4uaDo0NjoyMjogbm90ZTog ZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRvaCcKIyAgZGVmaW5lIGJlMzJ0b2goeCkgX19ic3dh cF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVt cC5jOjM0NjoxNDogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5p bml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZSA9 IGJlMzJ0b2goZHAuZmxhZ3MpICYgMHhmZmZmOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9lbmRpYW4uaDo0Njoy Mjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRvaCcKIyAgZGVmaW5lIGJlMzJ0b2go eCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KdG9v bHMvaGNpZHVtcC5jOjM4NDoxNzogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBv ciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgZnJtLmRhdGFfbGVuID0gYnRvaHMo ZGgubGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+ fn5+fgp0b29scy9oY2lkdW1wLmM6Mzk0OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBn YXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgZnJtLmxlbiA9IGZybS5kYXRhX2xl bjsKICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5j OjM5ODo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRp YWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIHRzID0gYmU2NHRvaChwaC50cyk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRl L2VuZGlhbi5oOjUxOjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTY0dG9oJwojICBk ZWZpbmUgYmU2NHRvaCh4KSBfX2Jzd2FwXzY0ICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6NDAzOjEzOiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24g Y2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAg ICAgICAgIGZybS5pbiA9IGJlMzJ0b2goZHAuZmxhZ3MpICYgMHgwMTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5o OjQ2OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZpbmUgYmUz MnRvaCh4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fgp0b29scy9oY2lkdW1wLmM6NDA4OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi YWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBmcm0uaW4gPSBkaC5pbjsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn4KdG9vbHMvaGNpZHVtcC5jOjQz Nzo3OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0 aW5nICdub25udWxsJwogICAgICAgIGZkID0gb3BlbihmaWxlLCBvcGVuX2ZsYWdzLCAwNjQ0KTsK ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMTEgd2FybmluZ3MgZ2Vu ZXJhdGVkLgp0b29scy9yZmNvbW0uYzoyMzQ6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdp JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBpID0gZXhlY3ZwKGNtZGFyZ3ZbMF0sIGNt ZGFyZ3YpOwogICAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0 b29scy9yZmNvbW0uYzoyMzQ6Nzogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3Qg cGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgIGkgPSBleGVjdnAo Y21kYXJndlswXSwgY21kYXJndik7CiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjM1NDo4OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUg dmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24s IHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ2ZkJwogICAgICAgICAgICAg ICAgaWYgKChmZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkgfCBPX05PQ1RUWSkpIDwgMCkgewog ICAgICAgICAgICAgICAgICAgICBeICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvcmZjb21tLmM6NDk3OjE0OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi YWdlIG9yIHVuZGVmaW5lZAogICAgICAgIHJlcS5jaGFubmVsID0gcmFkZHIucmNfY2hhbm5lbDsK ICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6NTE1 Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyB1c2VkIGlu IHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJl YWQgZnJvbSAnZmQnCiAgICAgICAgICAgICAgICBpZiAoKGZkID0gb3BlbihkZXZuYW1lLCBPX1JE T05MWSB8IE9fTk9DVFRZKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIF4gICAgfn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo1IHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3Nk cC14bWwuYzoxMjY6MTA6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5k ZWZpbmVkCiAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAg ICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzAwOjExOiB3YXJuaW5nOiBB c3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAg ICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMzg6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZh bHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zlsx XSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+ fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvY2lwdG9vbC5jOjM1MDo3OiB3YXJuaW5n OiA1dGggZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAg ICAgICAgc2sgPSBkb19jb25uZWN0KGN0bCwgZGV2X2lkLCAmc3JjLCAmZHN0LCBwc20sICgxIDw8 IENNVFBfTE9PUEJBQ0spKTsKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQu CnRvb2xzL3NkcHRvb2wuYzo5NDE6MjY6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBj b252ZXJ0ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ3VpbnQzMl90Jywgd2hpY2ggaXMgaW5jb21w YXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAnaW50JwogICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCAqdmFsdWVfaW50ID0gbWFsbG9jKHNpemVvZihpbnQpKTsKICAgICAgICAg ICAgICAgICAgICAgICAgfn5+fn5+fn5+fiAgICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fgp0 b29scy9zZHB0b29sLmM6OTgwOjQ6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50 IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShh bGxvY0FycmF5W2ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9zZHB0b29sLmM6Mzc3NzoyOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1v cnkgcG9pbnRlZCB0byBieSAnc2kubmFtZScKICAgICAgICByZXR1cm4gYWRkX3NlcnZpY2UoMCwg JnNpKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6 NDExMjo0OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAn Y29udGV4dC5zdmMnCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9pc28t dGVzdGVyLmM6IEluIGZ1bmN0aW9uIOKAmGlzb190eF90aW1lc3RhbXBpbmfigJk6CnRvb2xzL2lz by10ZXN0ZXIuYzoyMTI4Ojk6IGVycm9yOiB2YXJpYWJsZSDigJhzb+KAmSBoYXMgaW5pdGlhbGl6 ZXIgYnV0IGluY29tcGxldGUgdHlwZQogMjEyOCB8ICBzdHJ1Y3Qgc29fdGltZXN0YW1waW5nIHNv ID0gewogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CnRvb2xzL2lzby10ZXN0ZXIuYzoy MTI5OjQ6IGVycm9yOiDigJhzdHJ1Y3Qgc29fdGltZXN0YW1waW5n4oCZIGhhcyBubyBtZW1iZXIg bmFtZWQg4oCYZmxhZ3PigJkKIDIxMjkgfCAgIC5mbGFncyA9IGlzb2RhdGEtPnNvX3RpbWVzdGFt cGluZywKICAgICAgfCAgICBefn5+fgp0b29scy9pc28tdGVzdGVyLmM6MjEyOToxMjogZXJyb3I6 IGV4Y2VzcyBlbGVtZW50cyBpbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgWy1XZXJyb3JdCiAyMTI5IHwg ICAuZmxhZ3MgPSBpc29kYXRhLT5zb190aW1lc3RhbXBpbmcsCiAgICAgIHwgICAgICAgICAgICBe fn5+fn5+CnRvb2xzL2lzby10ZXN0ZXIuYzoyMTI5OjEyOiBub3RlOiAobmVhciBpbml0aWFsaXph dGlvbiBmb3Ig4oCYc2/igJkpCnRvb2xzL2lzby10ZXN0ZXIuYzoyMTI4OjI1OiBlcnJvcjogc3Rv cmFnZSBzaXplIG9mIOKAmHNv4oCZIGlzbuKAmXQga25vd24KIDIxMjggfCAgc3RydWN0IHNvX3Rp bWVzdGFtcGluZyBzbyA9IHsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBefgp0b29s cy9pc28tdGVzdGVyLmM6MjEyODoyNTogZXJyb3I6IHVudXNlZCB2YXJpYWJsZSDigJhzb+KAmSBb LVdlcnJvcj11bnVzZWQtdmFyaWFibGVdCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQg YXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NzgwNzogdG9vbHMvaXNvLXRlc3Rlci5v XSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1h a2U6ICoqKiBbTWFrZWZpbGU6NDY0OTogYWxsXSBFcnJvciAyCgoKLS0tClJlZ2FyZHMsCkxpbnV4 IEJsdWV0b290aAoK --===============4826445921656929815==--