Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eyO2y-0003p1-0m for pgadmin-hackers@arkaria.postgresql.org; Tue, 20 Mar 2018 20:39:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1eyO2w-0007ad-Fp for pgadmin-hackers@arkaria.postgresql.org; Tue, 20 Mar 2018 20:39:50 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eyO2v-0007aT-Vp for pgadmin-hackers@lists.postgresql.org; Tue, 20 Mar 2018 20:39:50 +0000 Received: from mail-it0-x241.google.com ([2607:f8b0:4001:c0b::241]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1eyO2m-0008Ic-My for pgadmin-hackers@postgresql.org; Tue, 20 Mar 2018 20:39:48 +0000 Received: by mail-it0-x241.google.com with SMTP id y20-v6so4090235itc.5 for ; Tue, 20 Mar 2018 13:39:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ee4Fw5hGtylNIH0Vly1KbBnobq+T5mkmuvcPXMvLBJY=; b=lNaRQKvKSwQhOe93JnnY26J69SPnND5hXOn752d+lAVG+WgM2xKS10WLKpBTcjVaSU z8mhyzD7nB90L8Gzgnq2XK4b+Ljy1QhH52AKWz8sVi42JgFiFdLDgnmaS0tieAQj4msN t83ShxVoCvZTM+gzX4z2/GHigghUzG1MHkQ5dsnDAbPHLDCS6CenM+QyU/Uk1eVYL0nA MxsNsxi8lOfWH8D+DCiQCuGpgkEOxYZu1AqSujSWtHG8De82vzUJP6GDO9uEwTv8KgoO 9bUSTqF3nvq1W5WzwV7G0o9En9jXwpo9a/XqrvMxuciw2SfyDTwLQkKc6GulkRJdyPF+ mMjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ee4Fw5hGtylNIH0Vly1KbBnobq+T5mkmuvcPXMvLBJY=; b=tlTilYIjPoOZQ5dEsYHIzgoG2o/7lhnGr5OABmwzkI8CiJxyBpVfxFgWW7JNWBJ5ov e7uRmnfNghLdvL+lmsdQNSXsiv8PJiCjftBbdvjMTBL1vaZJfkxdCnYoEOnQ7/Rgp55C w0Sl+k3hT4uUHIGjK0u2xvRDiTK9LEKqJELWsXqx+2OBUzaHx5sahJxoPISd16Tu9P2+ X5EuC35+N++qBgMKh7xKw1s73x6wGP4Lh+qvNVj/TOFhCZf2RmeJS9p0Iu87Hr16mtv2 0OueDULZDczSiD7s7+/zCX45zFg1ulSZ4Yvs4Gu3saWfQ+fZkLsmsK2huhPcR/RutDBp 1T3A== X-Gm-Message-State: AElRT7HoPPk6uL4bCi/J7EIQ9OIoOlcTUeSJrYTR1oDvIL6pYBOjQD6T lcbrxzzJblDomWeIsjf7YUOGBfCAJOqflB7ifcQeyQ== X-Google-Smtp-Source: AG47ELtjJlHYRLn7cz0NCPlPm2fu+oKtKv9O2oYWQnUiSNndcaR1t2fReNQfLjMJVl/9tDNHWk1Of0X0j37sC/YrYfY= X-Received: by 2002:a24:fe0b:: with SMTP id w11-v6mr1233841ith.109.1521578377532; Tue, 20 Mar 2018 13:39:37 -0700 (PDT) MIME-Version: 1.0 Received: by 10.2.141.58 with HTTP; Tue, 20 Mar 2018 13:39:36 -0700 (PDT) In-Reply-To: References: From: Victoria Henry Date: Tue, 20 Mar 2018 16:39:36 -0400 Message-ID: Subject: Re: [pgadmin][patch] [GreenPlum] When user press Explain Plan and Explain analyze plan an error is displayed To: Dave Page Cc: Akshay Joshi , Joao Pedro De Almeida Pereira , pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000b12bef0567de1279" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000b12bef0567de1279 Content-Type: multipart/alternative; boundary="000000000000b12beb0567de1277" --000000000000b12beb0567de1277 Content-Type: text/plain; charset="UTF-8" Hi Hackers, We fixed the tests and refactored some of the code. All tests pass now. Attached is the reviewed patch. Sincerely, Joao and Victoria On Tue, Mar 20, 2018 at 10:05 AM, Dave Page wrote: > Hi > > This doesn't pass the Javascript tests for me. Please investigate ASAP: > > webpack: Compiled successfully. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 152 of 486 SUCCESS (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 153 of 486 SUCCESS (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 154 of 486 SUCCESS (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 155 of 486 SUCCESS (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 156 of 486 SUCCESS (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 157 of 486 SUCCESS (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 158 of 486 SUCCESS (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when JSON response is available when login is not required should > highlight the error in the SQL panel FAILED > Expected spy SqlEditor._highlight_error to have been called with [ 'Some > error in JSON' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:11753:58 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 285 of 486 (1 FAILED) (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when JSON response is available when login is not required should > highlight the error in the SQL panel FAILED > Expected spy SqlEditor._highlight_error to have been called with [ 'Some > error in JSON' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when JSON response is available when login is not required should add > new entry to history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Some error in JSON' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:11760:60 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 286 of 486 (2 FAILED) (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when JSON response is available when login is not required should add > new entry to history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Some error in JSON' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when JSON response is available when login is required should login is > displayed FAILED > Expected spy UserManagement.pga_login to have been called. > at regression/javascript/sqleditor/execute_query_spec.js:11840:56 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 296 of 486 (3 FAILED) (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when JSON response is available when login is required should login is > displayed FAILED > Expected spy UserManagement.pga_login to have been called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when no JSON response is available when login is not required should > highlight the error in the SQL panel FAILED > Expected spy SqlEditor._highlight_error to have been called with [ 'Some > plain text error' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:11875:58 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 299 of 486 (4 FAILED) (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when no JSON response is available when login is not required should > highlight the error in the SQL panel FAILED > Expected spy SqlEditor._highlight_error to have been called with [ 'Some > plain text error' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when no JSON response is available when login is not required should > add new entry to history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Some plain text error' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:11882:60 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 300 of 486 (5 FAILED) (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when no JSON response is available when login is not required should > add new entry to history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Some plain text error' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when no JSON response is available when login is required should login > is displayed FAILED > Expected spy UserManagement.pga_login to have been called. > at regression/javascript/sqleditor/execute_query_spec.js:11964:56 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 310 of 486 (6 FAILED) (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when no JSON response is available when login is required should login > is displayed FAILED > Expected spy UserManagement.pga_login to have been called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when cannot reach the Python Server should add new entry to history > and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Not connected to the server or the connection to the server has > been closed.' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12002:58 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 314 of 486 (7 FAILED) (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is the query tool when an error occur when the connection to the server was > lost when cannot reach the Python Server should add new entry to history > and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Not connected to the server or the connection to the server has > been closed.' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when JSON response is available should highlight the error in the > SQL panel FAILED > Expected spy SqlEditor._highlight_error to have been called with [ 'Some > error in JSON' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12232:56 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 334 of 486 (8 FAILED) (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when JSON response is available should highlight the error in the > SQL panel FAILED > Expected spy SqlEditor._highlight_error to have been called with [ 'Some > error in JSON' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when JSON response is available should add new entry to history > and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Some error in JSON' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12239:58 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 335 of 486 (9 FAILED) (0 > secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when JSON response is available should add new entry to history > and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Some error in JSON' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when no JSON response is available should highlight the error in > the SQL panel FAILED > Expected spy SqlEditor._highlight_error to have been called with [ 'Some > plain text error' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12282:56 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 340 of 486 (10 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when no JSON response is available should highlight the error in > the SQL panel FAILED > Expected spy SqlEditor._highlight_error to have been called with [ 'Some > plain text error' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when no JSON response is available should add new entry to history > and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Some plain text error' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12289:58 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 341 of 486 (11 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when no JSON response is available should add new entry to history > and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Some plain text error' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when cannot reach the Python Server should add new entry to > history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Not connected to the server or the connection to the server has > been closed.' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12340:58 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 347 of 486 (12 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor > is NOT the query tool when an error occur when the connection to the server > was lost when cannot reach the Python Server should add new entry to > history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Not connected to the server or the connection to the server has > been closed.' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when cannot reach the Python Server should add new > entry to history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Not connected to the server or the connection to the server has > been closed.' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12645:54 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 376 of 486 (13 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when cannot reach the Python Server should add new > entry to history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'Not connected to the server or the connection to the server has > been closed.' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when login is > not required should add new entry to history and update the Messages tab > FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'some error message' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12693:56 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 381 of 486 (14 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when login is > not required should add new entry to history and update the Messages tab > FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'some error message' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when login is > required should add new entry to history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'some error message' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12751:56 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 388 of 486 (15 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when login is > required should add new entry to history and update the Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'some error message' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when login is > required should save the state FAILED > Expected spy SqlEditor.save_state to have been called with [ 'execute', [ > '' ] ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12774:48 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 391 of 486 (16 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when login is > required should save the state FAILED > Expected spy SqlEditor.save_state to have been called with [ 'execute', [ > '' ] ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when login is > required should display pga login FAILED > Expected spy UserManagement.pga_login to have been called. > at regression/javascript/sqleditor/execute_query_spec.js:12780:52 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 392 of 486 (17 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when login is > required should display pga login FAILED > Expected spy UserManagement.pga_login to have been called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when a new > transaction is not required should add new entry to history and update the > Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'some error message' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12809:56 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 395 of 486 (18 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when a new > transaction is not required should add new entry to history and update the > Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'some error message' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when a new > transaction is required should add new entry to history and update the > Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'some error message' ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12874:56 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 403 of 486 (19 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when a new > transaction is required should add new entry to history and update the > Messages tab FAILED > Expected spy SqlEditor.update_msg_history to have been called with [ > false, 'some error message' ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when a new > transaction is required should save the state FAILED > Expected spy SqlEditor.save_state to have been called with [ 'execute', [ > '' ] ] but it was never called. > at regression/javascript/sqleditor/execute_query_spec.js:12897:48 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 406 of 486 (20 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when a new > transaction is required should save the state FAILED > Expected spy SqlEditor.save_state to have been called with [ 'execute', [ > '' ] ] but it was never called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when a new > transaction is required should initialize a new transaction FAILED > Expected spy SqlEditor.init_transaction to have been called. > at regression/javascript/sqleditor/execute_query_spec.js:12909:54 > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 408 of 486 (21 FAILED) > (0 secs / 0 secs) > HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL > statement is not empty when error is returned by the server when a new > transaction is required should initialize a new transaction FAILED > Expected spy SqlEditor.init_transaction to have been called. > HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 486 of 486 (21 FAILED) > (7.05 secs / 0 secs) > error Command failed with exit code 1. > info Visit https://yarnpkg.com/en/docs/cli/run for documentation about > this command. > make: *** [check-js] Error 1 > > > On Tue, Mar 20, 2018 at 1:12 PM, Akshay Joshi < > akshay.joshi@enterprisedb.com> wrote: > >> Hi Hackers >> >> Attached is the patch file to fix the RM #2815. >> >> On Tue, Mar 20, 2018 at 3:24 PM, Dave Page >> wrote: >> >>> >>> >>> On Tue, Mar 20, 2018 at 9:48 AM, Akshay Joshi < >>> akshay.joshi@enterprisedb.com> wrote: >>> >>>> >>>> >>>> On Tue, Mar 20, 2018 at 3:06 PM, Dave Page >>>> wrote: >>>> >>>>> I'm a little concerned that noone mentioned this earlier; I'm supposed >>>>> to be building the release this afternoon, and I expect this change to at >>>>> the very least be complex to fully test and verify. What's the ETA on the >>>>> patch? What steps are being taken to ensure it's correct and doesn't cause >>>>> regressions? >>>>> >>>> >>>> Harshal has already mentioned in the RM. Currently I am changing >>>> the logic, but it may take time to complete, fully test and verify. I'll >>>> try my best to do it asap. >>>> >>> >>> Sure, but how many of us are watching every comment on every RM? I know >>> I'm not (I currently average ~400 emails/day). >>> >>> >>>> >>>>> On Tue, Mar 20, 2018 at 7:51 AM, Akshay Joshi < >>>>> akshay.joshi@enterprisedb.com> wrote: >>>>> >>>>>> Hi Joao >>>>>> >>>>>> It seems that this fix broke the functionality of RM #2815. It is >>>>>> mentioned in the RM what needs to be fixed now and I am currently working >>>>>> on it. >>>>>> While fixing the issue following problem that I found >>>>>> >>>>>> - In "start_running_query.py" file, we need to remove check "if >>>>>> conn.connected()" from "__execute_query" function as we required >>>>>> exception to be thrown while executing the query to identify the >>>>>> ConnectionLost. >>>>>> - In "execute_query.js" we have used *axios* to execute the query >>>>>> and in case of exception, object is different then normal javascript >>>>>> response object. >>>>>> - We call following functions when exception or error comes and >>>>>> send the "*.response.data*" as parameter >>>>>> - wasConnectionLostToServer(): Check for the readyState >>>>>> parameter, which is not the part of ".response.data". >>>>>> - extractErrorMessage(): Check for the "responseJSON" and " >>>>>> responseJSON.info", which is not the part of >>>>>> ".response.data". >>>>>> - is_pga_login_required(): Check for the "responseJSON" and " >>>>>> responseJSON.info", which is not the part of >>>>>> ".response.data". >>>>>> - is_new_transaction_required(): Check for the "responseJSON" >>>>>> and "responseJSON.info", which is not the part of >>>>>> ".response.data". >>>>>> >>>>>> From the above list, some of the function calls are generic where >>>>>> they need "responseJSON" and "responseJSON.info", so we can't change >>>>>> that. Possible solution could be pass one extra flag as parameter to >>>>>> identify the object is a axios response or javascript response to >>>>>> above functions and change the logic accordingly. >>>>>> >>>>>> Please let me know your thoughts or any other suggestion. >>>>>> >>>>>> >>>>>> On Fri, Feb 9, 2018 at 8:17 PM, Dave Page wrote: >>>>>> >>>>>>> Thanks, applied. >>>>>>> >>>>>>> On Fri, Feb 9, 2018 at 2:35 PM, Joao De Almeida Pereira < >>>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>>> >>>>>>>> Hello, >>>>>>>> Attached you can find the fix for the current pronlem >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Feb 9, 2018 at 7:29 AM Dave Page wrote: >>>>>>>> >>>>>>>>> Hi Joao, >>>>>>>>> >>>>>>>>> It looks like Jenkins has taken umbrage to this change, at least >>>>>>>>> with Python 3.x. Can you take a look please? >>>>>>>>> >>>>>>>>> https://jenkins.pgadmin.org/ >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> >>>>>>>>> On Fri, Feb 9, 2018 at 11:54 AM, Dave Page >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Thanks, patches applied. >>>>>>>>>> >>>>>>>>>> On Fri, Feb 2, 2018 at 10:50 PM, Joao De Almeida Pereira < >>>>>>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Hackers, >>>>>>>>>>> This is quite a big patch in order to solve the problem with the >>>>>>>>>>> Explain Plan. >>>>>>>>>>> >>>>>>>>>>> We sent 2 patches that have the following: >>>>>>>>>>> *- update-javascript-packages.diff * >>>>>>>>>>> Add package: >>>>>>>>>>> is-docker to select a specific setting when running the >>>>>>>>>>> Chrome tests in >>>>>>>>>>> Docker >>>>>>>>>>> >>>>>>>>>>> Upgrade the version of: >>>>>>>>>>> - babel-loader >>>>>>>>>>> - extract-text-webpack-plugin >>>>>>>>>>> - jasmine-core >>>>>>>>>>> - jasmine-enzyme >>>>>>>>>>> - moment >>>>>>>>>>> *- explain-plan-greenplum.diff* >>>>>>>>>>> Extract SQLEditor.execute and SQLEditor._poll into their own >>>>>>>>>>> files and add test around them >>>>>>>>>>> Extract SQLEditor backend functions that start executing query >>>>>>>>>>> to their own files and add tests around it >>>>>>>>>>> Move the Explain SQL from the front-end and now pass the >>>>>>>>>>> Explain plan parameters as a JSON object in the start query call. >>>>>>>>>>> Extract the compile_template_name into a function that can be >>>>>>>>>>> used by the different places that try to select the version of the template >>>>>>>>>>> and the server type >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> Joao >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Dave Page >>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>> Twitter: @pgsnake >>>>>>>>>> >>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Dave Page >>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>> Twitter: @pgsnake >>>>>>>>> >>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dave Page >>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>> Twitter: @pgsnake >>>>>>> >>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Akshay Joshi* >>>>>> >>>>>> *Sr. Software Architect * >>>>>> >>>>>> >>>>>> >>>>>> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 >>>>>> 976-788-8246 <+91%2097678%2088246>* >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> VP, Chief Architect, Tools & Installers >>>>> EnterpriseDB: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> >>>> *Sr. Software Architect * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 >>>> 976-788-8246 <+91%2097678%2088246>* >>>> >>> >>> >>> >>> -- >>> Dave Page >>> VP, Chief Architect, Tools & Installers >>> EnterpriseDB: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 976-788-8246 >> <+91%2097678%2088246>* >> > > > > -- > Dave Page > VP, Chief Architect, Tools & Installers > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > --000000000000b12beb0567de1277 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

We fixed the tests and refa= ctored some of the code.=C2=A0 All tests pass now.=C2=A0 Attached is the re= viewed patch.

Sincerely,

= Joao and Victoria

On Tue, Mar 20, 2018 at 10:05 AM, Dave Page &= lt;dave.pag= e@enterprisedb.com> wrote:
=
Hi

This doesn't pass the Javascript= tests for me. Please investigate ASAP:

webpa= ck: Compiled successfully.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6= ): Executed 152 of 486 SUCCESS (0 secs / 0 secs)
HeadlessChrome 0= .0.0 (Mac OS X 10.12.6): Executed 153 of 486 SUCCESS (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 154 of 486 SUCCESS = (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Execut= ed 155 of 486 SUCCESS (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac= OS X 10.12.6): Executed 156 of 486 SUCCESS (0 secs / 0 secs)
Hea= dlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 157 of 486 SUCCESS (0 secs /= 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 158 of= 486 SUCCESS (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.= 12.6) ExecuteQuery #poll when SQLEditor is the query tool when an error occ= ur when the connection to the server was lost when JSON response is availab= le when login is not required should highlight the error in the SQL panel F= AILED
Expected spy S= qlEditor._highlight_error to have been called with [ 'Some error in JSO= N' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute= _query_spec.js:11753:58
HeadlessChrome 0.0.0 (Mac OS X 10.12= .6): Executed 285 of 486 (1 FAILED) (0 secs / 0 secs)
HeadlessChr= ome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is the query= tool when an error occur when the connection to the server was lost when J= SON response is available when login is not required should highlight the e= rror in the SQL panel FAILED
Expected spy SqlEditor._highlight_error to have been called with [= 'Some error in JSON' ] but it was never called.
Headless= Chrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is the qu= ery tool when an error occur when the connection to the server was lost whe= n JSON response is available when login is not required should add new entr= y to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to ha= ve been called with [ false, 'Some error in JSON' ] but it was neve= r called.
=C2=A0 =C2= =A0 at regression/javascript/sqleditor/execute_query_spec.js:1176= 0:60
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 286 of 486= (2 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.1= 2.6) ExecuteQuery #poll when SQLEditor is the query tool when an error occu= r when the connection to the server was lost when JSON response is availabl= e when login is not required should add new entry to history and update the= Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been called with [ false= , 'Some error in JSON' ] but it was never called.
Headles= sChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is the q= uery tool when an error occur when the connection to the server was lost wh= en JSON response is available when login is required should login is displa= yed FAILED
Expected = spy UserManagement.pga_login to have been called.
=C2=A0 =C2=A0 at regression/javascript/s= qleditor/execute_query_spec.js:11840:56
HeadlessChrome 0.0.0= (Mac OS X 10.12.6): Executed 296 of 486 (3 FAILED) (0 secs / 0 secs)
=
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEdi= tor is the query tool when an error occur when the connection to the server= was lost when JSON response is available when login is required should log= in is displayed FAILED
Expected spy UserManagement.pga_login to have been called.
Hea= dlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is t= he query tool when an error occur when the connection to the server was los= t when no JSON response is available when login is not required should high= light the error in the SQL panel FAILED
Expected spy SqlEditor._highlight_error to have been ca= lled with [ 'Some plain text error' ] but it was never called.
=C2=A0 =C2=A0 at regress= ion/javascript/sqleditor/execute_query_spec.js:11875:58
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 299 of 486 (4 FAILED) (0= secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQu= ery #poll when SQLEditor is the query tool when an error occur when the con= nection to the server was lost when no JSON response is available when logi= n is not required should highlight the error in the SQL panel FAILED
<= div> Expected spy SqlEditor._hi= ghlight_error to have been called with [ 'Some plain text error' ] = but it was never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) = ExecuteQuery #poll when SQLEditor is the query tool when an error occur whe= n the connection to the server was lost when no JSON response is available = when login is not required should add new entry to history and update the M= essages tab FAILED
E= xpected spy SqlEditor.update_msg_history to have been called with [ false, = 'Some plain text error' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascri= pt/sqleditor/execute_query_spec.js:11882:60
HeadlessChr= ome 0.0.0 (Mac OS X 10.12.6): Executed 300 of 486 (5 FAILED) (0 secs / 0 se= cs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll wh= en SQLEditor is the query tool when an error occur when the connection to t= he server was lost when no JSON response is available when login is not req= uired should add new entry to history and update the Messages tab FAILED
Expected spy SqlEditor= .update_msg_history to have been called with [ false, 'Some plain text = error' ] but it was never called.
HeadlessChrome 0.0.0 (Mac O= S X 10.12.6) ExecuteQuery #poll when SQLEditor is the query tool when an er= ror occur when the connection to the server was lost when no JSON response = is available when login is required should login is displayed FAILED
<= div> Expected spy UserManagemen= t.pga_login to have been called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_= query_spec.js:11964:56
HeadlessChrome 0.0.0 (Mac OS X 10.12.= 6): Executed 310 of 486 (6 FAILED) (0 secs / 0 secs)
HeadlessChro= me 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is the query = tool when an error occur when the connection to the server was lost when no= JSON response is available when login is required should login is displaye= d FAILED
Expected sp= y UserManagement.pga_login to have been called.
HeadlessChrome 0.= 0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is the query tool = when an error occur when the connection to the server was lost when cannot = reach the Python Server should add new entry to history and update the Mess= ages tab FAILED
Expe= cted spy SqlEditor.update_msg_history to have been called with [ false, = 9;Not connected to the server or the connection to the server has been clos= ed.' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execu= te_query_spec.js:12002:58
HeadlessChrome 0.0.0 (Mac OS X 10.= 12.6): Executed 314 of 486 (7 FAILED) (0 secs / 0 secs)
HeadlessC= hrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is the que= ry tool when an error occur when the connection to the server was lost when= cannot reach the Python Server should add new entry to history and update = the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been called with [ fa= lse, 'Not connected to the server or the connection to the server has b= een closed.' ] but it was never called.
HeadlessChrome 0.0.0 = (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is NOT the query tool = when an error occur when the connection to the server was lost when JSON re= sponse is available should highlight the error in the SQL panel FAILED
Expected spy SqlEditor._= highlight_error to have been called with [ 'Some error in JSON' ] b= ut it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query_spe= c.js:12232:56
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Execu= ted 334 of 486 (8 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 = (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is NOT the query tool = when an error occur when the connection to the server was lost when JSON re= sponse is available should highlight the error in the SQL panel FAILED
Expected spy SqlEditor._= highlight_error to have been called with [ 'Some error in JSON' ] b= ut it was never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) E= xecuteQuery #poll when SQLEditor is NOT the query tool when an error occur = when the connection to the server was lost when JSON response is available = should add new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.updat= e_msg_history to have been called with [ false, 'Some error in JSON'= ; ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_quer= y_spec.js:12239:58
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): = Executed 335 of 486 (9 FAILED) (0 secs / 0 secs)
HeadlessChrome 0= .0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is NOT the query = tool when an error occur when the connection to the server was lost when JS= ON response is available should add new entry to history and update the Mes= sages tab FAILED
Exp= ected spy SqlEditor.update_msg_history to have been called with [ false, &#= 39;Some error in JSON' ] but it was never called.
HeadlessChr= ome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is NOT the q= uery tool when an error occur when the connection to the server was lost wh= en no JSON response is available should highlight the error in the SQL pane= l FAILED
Expected sp= y SqlEditor._highlight_error to have been called with [ 'Some plain tex= t error' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/e= xecute_query_spec.js:12282:56
HeadlessChrome 0.0.0 (Mac OS X= 10.12.6): Executed 340 of 486 (10 FAILED) (0 secs / 0 secs)
Head= lessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is NO= T the query tool when an error occur when the connection to the server was = lost when no JSON response is available should highlight the error in the S= QL panel FAILED
Expe= cted spy SqlEditor._highlight_error to have been called with [ 'Some pl= ain text error' ] but it was never called.
HeadlessChrome 0.0= .0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is NOT the query to= ol when an error occur when the connection to the server was lost when no J= SON response is available should add new entry to history and update the Me= ssages tab FAILED
Ex= pected spy SqlEditor.update_msg_history to have been called with [ false, &= #39;Some plain text error' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascrip= t/sqleditor/execute_query_spec.js:12289:58
HeadlessChro= me 0.0.0 (Mac OS X 10.12.6): Executed 341 of 486 (11 FAILED) (0 secs / 0 se= cs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll wh= en SQLEditor is NOT the query tool when an error occur when the connection = to the server was lost when no JSON response is available should add new en= try to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to = have been called with [ false, 'Some plain text error' ] but it was= never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQue= ry #poll when SQLEditor is NOT the query tool when an error occur when the = connection to the server was lost when cannot reach the Python Server shoul= d add new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg= _history to have been called with [ false, 'Not connected to the server= or the connection to the server has been closed.' ] but it was never c= alled.
=C2=A0 =C2=A0= at regression/javascript/sqleditor/execute_query_spec.js:12340:5= 8
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 347 of 486 (1= 2 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.= 6) ExecuteQuery #poll when SQLEditor is NOT the query tool when an error oc= cur when the connection to the server was lost when cannot reach the Python= Server should add new entry to history and update the Messages tab FAILED<= /div>
Expected spy SqlEdit= or.update_msg_history to have been called with [ false, 'Not connected = to the server or the connection to the server has been closed.' ] but i= t was never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) Execu= teQuery #execute when the SQL statement is not empty when cannot reach the = Python Server should add new entry to history and update the Messages tab F= AILED
Expected spy S= qlEditor.update_msg_history to have been called with [ false, 'Not conn= ected to the server or the connection to the server has been closed.' ]= but it was never called.
<= /span>=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query_s= pec.js:12645:54
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Exe= cuted 376 of 486 (13 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0= .0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statement is not e= mpty when cannot reach the Python Server should add new entry to history an= d update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been called = with [ false, 'Not connected to the server or the connection to the ser= ver has been closed.' ] but it was never called.
HeadlessChro= me 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statement is= not empty when error is returned by the server when login is not required = should add new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.updat= e_msg_history to have been called with [ false, 'some error message'= ; ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_quer= y_spec.js:12693:56
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): = Executed 381 of 486 (14 FAILED) (0 secs / 0 secs)
HeadlessChrome = 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statement is no= t empty when error is returned by the server when login is not required sho= uld add new entry to history and update the Messages tab FAILED
<= span style=3D"white-space:pre-wrap"> Expected spy SqlEditor.update_m= sg_history to have been called with [ false, 'some error message' ]= but it was never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6)= ExecuteQuery #execute when the SQL statement is not empty when error is re= turned by the server when login is required should add new entry to history= and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been call= ed with [ false, 'some error message' ] but it was never called.
=C2=A0 =C2=A0 at regre= ssion/javascript/sqleditor/execute_query_spec.js:12751:56
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 388 of 486 (15 FAILED)= (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) Execut= eQuery #execute when the SQL statement is not empty when error is returned = by the server when login is required should add new entry to history and up= date the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been called with= [ false, 'some error message' ] but it was never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL= statement is not empty when error is returned by the server when login is = required should save the state FAILED
Expected spy SqlEditor.save_state to have been called wit= h [ 'execute', [ '' ] ] but it was never called.
= =C2=A0 =C2=A0 at regression/ja= vascript/sqleditor/execute_query_spec.js:12774:48
Headl= essChrome 0.0.0 (Mac OS X 10.12.6): Executed 391 of 486 (16 FAILED) (0 secs= / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #= execute when the SQL statement is not empty when error is returned by the s= erver when login is required should save the state FAILED
Expected spy SqlEditor.save_state to = have been called with [ 'execute', [ '' ] ] but it was neve= r called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #e= xecute when the SQL statement is not empty when error is returned by the se= rver when login is required should display pga login FAILED
Expected spy UserManagement.pga_log= in to have been called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query_spe= c.js:12780:52
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Execu= ted 392 of 486 (17 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0= (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statement is not emp= ty when error is returned by the server when login is required should displ= ay pga login FAILED
= Expected spy UserManagement.pga_login to have been called.
Headle= ssChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statem= ent is not empty when error is returned by the server when a new transactio= n is not required should add new entry to history and update the Messages t= ab FAILED
Expected s= py SqlEditor.update_msg_history to have been called with [ false, 'some= error message' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqle= ditor/execute_query_spec.js:12809:56
HeadlessChrome 0.0.0 (M= ac OS X 10.12.6): Executed 395 of 486 (18 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the S= QL statement is not empty when error is returned by the server when a new t= ransaction is not required should add new entry to history and update the M= essages tab FAILED
E= xpected spy SqlEditor.update_msg_history to have been called with [ false, = 'some error message' ] but it was never called.
HeadlessC= hrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statement= is not empty when error is returned by the server when a new transaction i= s required should add new entry to history and update the Messages tab FAIL= ED
Expected spy SqlE= ditor.update_msg_history to have been called with [ false, 'some error = message' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/e= xecute_query_spec.js:12874:56
HeadlessChrome 0.0.0 (Mac OS X= 10.12.6): Executed 403 of 486 (19 FAILED) (0 secs / 0 secs)
Head= lessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL stat= ement is not empty when error is returned by the server when a new transact= ion is required should add new entry to history and update the Messages tab= FAILED
Expected spy= SqlEditor.update_msg_history to have been called with [ false, 'some e= rror message' ] but it was never called.
HeadlessChrome 0.0.0= (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statement is not emp= ty when error is returned by the server when a new transaction is required = should save the state FAILED
Expected spy SqlEditor.save_state to have been called with [ '= execute', [ '' ] ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/= sqleditor/execute_query_spec.js:12897:48
HeadlessChrome= 0.0.0 (Mac OS X 10.12.6): Executed 406 of 486 (20 FAILED) (0 secs / 0 secs= )
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute w= hen the SQL statement is not empty when error is returned by the server whe= n a new transaction is required should save the state FAILED
Expected spy SqlEditor.save_state = to have been called with [ 'execute', [ '' ] ] but it was n= ever called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery= #execute when the SQL statement is not empty when error is returned by the= server when a new transaction is required should initialize a new transact= ion FAILED
Expected = spy SqlEditor.init_transaction to have been called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query_spec.js:12909:54
HeadlessChrome 0= .0.0 (Mac OS X 10.12.6): Executed 408 of 486 (21 FAILED) (0 secs / 0 secs)<= /div>
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute whe= n the SQL statement is not empty when error is returned by the server when = a new transaction is required should initialize a new transaction FAILED
Expected spy SqlEditor= .init_transaction to have been called.
HeadlessChrome 0.0.0 (Mac = OS X 10.12.6): Executed 486 of 486 (21 FAILED) (7.05 secs / 0 secs)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/e= n/docs/cli/run for documentation about this command.
mak= e: *** [check-js] Error 1


On Tue, Mar 20, 2018 at 1:12 PM, Akshay Joshi <<= a href=3D"mailto:akshay.joshi@enterprisedb.com" target=3D"_blank">akshay.jo= shi@enterprisedb.com> wrote:
Hi Hackers

Attached is the patch= file to fix the RM #2815.
On Tue, Mar 20, 2018 at 3:24 PM, Dave Page <dave.page@enterprisedb.com> wrote:


On Tue, Mar 20, 2018 at 9:48 AM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:


On Tue, Mar 20, 2018 at 3:06 PM, Dave= Page <dave.page@enterprisedb.com> wrote:
I'm a little concerned that noon= e mentioned this earlier; I'm supposed to be building the release this = afternoon, and I expect this change to at the very least be complex to full= y test and verify. What's the ETA on the patch? What steps are being ta= ken to ensure it's correct and doesn't cause regressions?

=C2=A0 =C2=A0 Harshal has already mentioned in the RM. Currently I am changing= the logic, but it may take time to complete, fully test and verify. I'= ll try my best to do it asap.

=
Sure, but how many of us are watching every comment on ev= ery RM? I know I'm not (I currently average ~400 emails/day).
=C2=A0

On Tue, Mar 20, 2018 at 7:51 AM, Akshay Joshi <aks= hay.joshi@enterprisedb.com> wrote:
Hi Joao

It seems that= this fix broke the functionality of RM #2815. It is mentioned in the RM wh= at needs to be fixed now and I am currently working on it.
While = fixing the issue following problem that I found
  • In "= start_running_query.py" file, we need to= remove check "if conn.connected()" from "__execute_quer= y" function as we required exception to be thrown while executing the = query to identify the ConnectionLost.=C2=A0=C2=A0
  • In &qu= ot;execute_query.js" we have used axios to execute the = query and in case of exception, object is different then normal javascript = response object.=C2=A0
  • We call following functions when exception o= r error comes and send the "<object>.response.data" = as parameter=C2=A0
    • wasConnectionLostToServer(): Check for t= he = readyState parameter, which is not the part of "<object>.= response.data".=C2=A0
    • extractErrorMessage(): Check for the= "responseJSON" and "responseJS= ON.info",=C2=A0which is not the= part of "<object>.response.data".
    • is_pga_login_required(): Check for the=C2=A0"responseJSON" and "responseJSON.info",=C2=A0which is not th= e part of "<object>.response.data".
    • is_new_t= ransaction_required():=C2=A0Check for the=C2= =A0"responseJS= ON" and "responseJSON.info",=C2=A0= which is not the part of "<object>.resp= onse.data".
From the above list, some of the func= tion calls are generic where they need "responseJSON" and &q= uot;a= xios response or javascript response to above functions and change t= he logic accordingly.

Please let me know your thou= ghts or any other suggestion.=C2=A0
=C2=A0 =C2=A0 =C2=A0=C2=A0

On Fri, Feb 9, 2018 at 8:17 P= M, Dave Page <dpage@pgadmin.org> wrote:
Thanks, applied.
<= br>
On Fri, Feb 9, 2018 at 2:35 PM, Joao De Almei= da Pereira <jdealmeidapereira@pivotal.io> wrote:<= br>
Hello,
Attached you = can find the fix for the current pronlem

On Fri, Feb 9, 2018 = at 7:29 AM Dave Page <dpage@pgadmin.org> wrote:
Hi Joao,

It looks like Jenkins has t= aken umbrage to this change, at least with Python 3.x. Can you take a look = please?


<= div>Thanks.

On Fri, Feb 9, 2018 at 11:54 AM, Dave Page <dpage@pgadmin.org>= ; wrote:
Thanks, = patches applied.

On Fri= , Feb 2, 2018 at 10:50 PM, Joao De Almeida Pereira <jdealmeidap= ereira@pivotal.io> wrote:
<= div dir=3D"ltr">Hi Hackers,
This is quite a big patch in order to solve= the problem with the Explain Plan.

We sent 2 patc= hes that have the following:
-=C2=A0update-javascript-packages= .diff=C2=A0
=C2=A0 =C2=A0 Add package:
=C2=A0 =C2=A0 =C2=A0is-docker to select a specific setting when running t= he Chrome tests in
=C2=A0 =C2=A0 =C2=A0Docker

=C2=A0 =C2=A0 Upgrade the version of:
=C2=A0 =C2=A0 - babel= -loader
=C2=A0 =C2=A0 - extract-text-webpack-plugin
=C2= =A0 =C2=A0 - jasmine-core
=C2=A0 =C2=A0 - jasmine-enzyme
=C2=A0 =C2=A0 - moment
-=C2=A0explain-plan-greenplum.d= iff
=C2=A0 Extract SQLEditor.execute and SQLEditor._poll into= their own files and add test around them
=C2=A0 Extract SQLEdito= r backend functions that start executing query to their own files and add t= ests around it
=C2=A0 Move the Explain SQL from the front-end and= now pass the Explain plan parameters as a JSON object in the start query c= all.
=C2=A0 Extract the compile_template_name into a function tha= t can be used by the different places that try to select the version of the= template and the server type


Thank= s
Joao



-= -



--
Dave Page
Blog:
http://pgsnake.blogspot.com
Twitter: @pgsnak= e

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Compa= ny



--
Dave Page
Blog: http://pgsnake.blog= spot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.comThe Enterprise PostgreSQL Company



<= /div>--
=
Akshay Joshi
<= span style=3D"color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px;= border-collapse:collapse">Sr. Software Architect





--
Da= ve Page
VP, Chief Architect, Tools & Installers
EnterpriseDB: http://www.enterpris= edb.com
The Enterprise PostgreSQL Company
Blog: http://pgs= nake.blogspot.com
Twitter: @pgsnake



--
Akshay Joshi
Sr. Software Architect <= br>


=
Pho= ne: +91 20-3058-9517
Mobile: +91 976-788-8246
<= /b>



--
Dave Page
VP, Chief Architec= t, Tools & Installers
EnterpriseDB: http://www.enterprisedb.com
The Enterprise= PostgreSQL Company

Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake



--
Akshay Joshi
Sr. Softw= are Architect
<= span style=3D"color:rgb(0,0,0);font-family:arial,sans-serif;font-size:13px;= border-collapse:collapse">
<= /b>
=



--
=
Dave Page
VP, Chief Architect, Tools & Installers
Ent= erpriseDB: http:/= /www.enterprisedb.com
The Enterprise PostgreSQL Company

Blog:= http://pgsnake.b= logspot.com
Twitter: @pgsnake

--000000000000b12beb0567de1277-- --000000000000b12bef0567de1279 Content-Type: text/x-patch; charset="US-ASCII"; name="rm_2815_v1.patch" Content-Disposition: attachment; filename="rm_2815_v1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jf04h6o20 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9zdGF0aWMvanMvZGFzaGJvYXJkLmpz IGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3N0YXRpYy9qcy9kYXNoYm9hcmQuanMKaW5kZXggZGQ2 ZWNmOTYuLmU0ZjBkZDU0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvc3RhdGlj L2pzL2Rhc2hib2FyZC5qcworKysgYi93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvc3RhdGljL2pzL2Rh c2hib2FyZC5qcwpAQCAtNDQ0LDE4ICs0NDQsMjUgQEAgZGVmaW5lKCdwZ2FkbWluLmRhc2hib2Fy ZCcsIFsKICAgICAgICAgICAgIHBnQWRtaW4uRGFzaGJvYXJkLnJlbmRlcl9jaGFydChjb250YWlu ZXIsIGRhdGEsIGRhdGFzZXQsIHNpZCwgZGlkLCB1cmwsIG9wdGlvbnMsIGNvdW50ZXIsIHJlZnJl c2gpOwogICAgICAgICAgIH0sCiAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKHhocikgewotICAg ICAgICAgICAgdmFyIGVyciA9ICQucGFyc2VKU09OKHhoci5yZXNwb25zZVRleHQpLAotICAgICAg ICAgICAgICBtc2cgPSBlcnIuZXJyb3Jtc2csCi0gICAgICAgICAgICAgIGNsczsKLSAgICAgICAg ICAgIC8vIElmIHdlIGdldCBhIDQyOCwgaXQgbWVhbnMgdGhlIHNlcnZlciBpc24ndCBjb25uZWN0 ZWQKLSAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09IDQyOCkgewotICAgICAgICAgICAgICBp ZiAoXy5pc1VuZGVmaW5lZChtc2cpIHx8IF8uaXNOdWxsKG1zZykpIHsKLSAgICAgICAgICAgICAg ICBtc2cgPSBnZXR0ZXh0KCdQbGVhc2UgY29ubmVjdCB0byB0aGUgc2VsZWN0ZWQgc2VydmVyIHRv IHZpZXcgdGhlIGdyYXBoLicpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGNscyA9 ICdpbmZvJzsKKyAgICAgICAgICAgIGxldCBlcnIgPSAnJzsKKyAgICAgICAgICAgIGxldCBtc2cg PSAnJzsKKyAgICAgICAgICAgIGxldCBjbHMgPSAnaW5mbyc7CisKKyAgICAgICAgICAgIGlmICh4 aHIucmVhZHlTdGF0ZSA9PT0gMCkgeworICAgICAgICAgICAgICBtc2cgPSBnZXR0ZXh0KCdOb3Qg Y29ubmVjdGVkIHRvIHRoZSBzZXJ2ZXIgb3IgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBo YXMgYmVlbiBjbG9zZWQuJyk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICBt c2cgPSBnZXR0ZXh0KCdBbiBlcnJvciBvY2N1cnJlZCB3aGlsc3QgcmVuZGVyaW5nIHRoZSBncmFw aC4nKTsKLSAgICAgICAgICAgICAgY2xzID0gJ2Rhbmdlcic7CisgICAgICAgICAgICAgIGVyciA9 IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCk7CisgICAgICAgICAgICAgIG1zZyA9IGVyci5l cnJvcm1zZzsKKworICAgICAgICAgICAgICAvLyBJZiB3ZSBnZXQgYSA0MjgsIGl0IG1lYW5zIHRo ZSBzZXJ2ZXIgaXNuJ3QgY29ubmVjdGVkCisgICAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09 PSA0MjgpIHsKKyAgICAgICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChtc2cpIHx8IF8uaXNO dWxsKG1zZykpIHsKKyAgICAgICAgICAgICAgICAgIG1zZyA9IGdldHRleHQoJ1BsZWFzZSBjb25u ZWN0IHRvIHRoZSBzZWxlY3RlZCBzZXJ2ZXIgdG8gdmlldyB0aGUgZ3JhcGguJyk7CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1zZyA9 IGdldHRleHQoJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxzdCByZW5kZXJpbmcgdGhlIGdyYXBoLicp OworICAgICAgICAgICAgICAgIGNscyA9ICdkYW5nZXInOworICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICB9CiAKICAgICAgICAgICAgICQoY29udGFpbmVyKS5hZGRDbGFzcygnZ3JhcGgtZXJy b3InKTsKQEAgLTU3NiwxOCArNTgzLDI1IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQnLCBb CiAgICAgICAgICAgZmlsdGVyLnNlYXJjaCgpOwogICAgICAgICB9LAogICAgICAgICBlcnJvcjog ZnVuY3Rpb24obW9kZWwsIHhocikgewotICAgICAgICAgIHZhciBlcnIgPSAkLnBhcnNlSlNPTih4 aHIucmVzcG9uc2VUZXh0KSwKLSAgICAgICAgICAgIG1zZyA9IGVyci5lcnJvcm1zZywKLSAgICAg ICAgICAgIGNsczsKLSAgICAgICAgICAvLyBJZiB3ZSBnZXQgYSA0MjgsIGl0IG1lYW5zIHRoZSBz ZXJ2ZXIgaXNuJ3QgY29ubmVjdGVkCi0gICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT0gNDI4KSB7 Ci0gICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChtc2cpIHx8IF8uaXNOdWxsKG1zZykpIHsK LSAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnUGxlYXNlIGNvbm5lY3QgdG8gdGhlIHNlbGVj dGVkIHNlcnZlciB0byB2aWV3IHRoZSB0YWJsZS4nKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg ICAgIGNscyA9ICdpbmZvJzsKKyAgICAgICAgICBsZXQgZXJyID0gJyc7CisgICAgICAgICAgbGV0 IG1zZyA9ICcnOworICAgICAgICAgIGxldCBjbHMgPSAnaW5mbyc7CisKKyAgICAgICAgICBpZiAo eGhyLnJlYWR5U3RhdGUgPT09IDApIHsKKyAgICAgICAgICAgIG1zZyA9IGdldHRleHQoJ05vdCBj b25uZWN0ZWQgdG8gdGhlIHNlcnZlciBvciB0aGUgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhh cyBiZWVuIGNsb3NlZC4nKTsKICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbXNnID0g Z2V0dGV4dCgnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbHN0IHJlbmRlcmluZyB0aGUgdGFibGUuJyk7 Ci0gICAgICAgICAgICBjbHMgPSAnZGFuZ2VyJzsKKyAgICAgICAgICAgIGVyciA9IEpTT04ucGFy c2UoeGhyLnJlc3BvbnNlVGV4dCk7CisgICAgICAgICAgICBtc2cgPSBlcnIuZXJyb3Jtc2c7CisK KyAgICAgICAgICAgIC8vIElmIHdlIGdldCBhIDQyOCwgaXQgbWVhbnMgdGhlIHNlcnZlciBpc24n dCBjb25uZWN0ZWQKKyAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSA0MjgpIHsKKyAgICAg ICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQobXNnKSB8fCBfLmlzTnVsbChtc2cpKSB7CisgICAg ICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnUGxlYXNlIGNvbm5lY3QgdG8gdGhlIHNlbGVjdGVk IHNlcnZlciB0byB2aWV3IHRoZSB0YWJsZS4nKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnQW4gZXJyb3Igb2NjdXJy ZWQgd2hpbHN0IHJlbmRlcmluZyB0aGUgdGFibGUuJyk7CisgICAgICAgICAgICAgIGNscyA9ICdk YW5nZXInOworICAgICAgICAgICAgfQogICAgICAgICAgIH0KIAogICAgICAgICAgIC8vIFJlcGxh Y2UgdGhlIGNvbnRlbnQgd2l0aCB0aGUgZXJyb3IsIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQuIEFs d2F5cyB1cGRhdGUgdGhlIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9zcWxlZGl0b3IvZXhlY3V0ZV9xdWVyeS5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxl ZGl0b3IvZXhlY3V0ZV9xdWVyeS5qcwppbmRleCBlOTFjOWU4NS4uOWMzNmYyOGMgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvZXhlY3V0ZV9xdWVyeS5qcworKysg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2V4ZWN1dGVfcXVlcnkuanMKQEAgLTUy LDcgKzUyLDcgQEAgY2xhc3MgRXhlY3V0ZVF1ZXJ5IHsKICAgICAgIH0sIHNlbGYuc3FsU2VydmVy T2JqZWN0LlBPTExfRkFMTEJBQ0tfVElNRSgpKTsKICAgfQogCi0gIGV4ZWN1dGUoc3FsU3RhdGVt ZW50LCBleHBsYWluUGxhbikgeworICBleGVjdXRlKHNxbFN0YXRlbWVudCwgZXhwbGFpblBsYW4s IGNvbm5lY3QpIHsKICAgICAvLyBJZiBpdCBpcyBhbiBlbXB0eSBxdWVyeSwgZG8gbm90aGluZy4K ICAgICBpZiAoc3FsU3RhdGVtZW50Lmxlbmd0aCA8PSAwKSByZXR1cm47CiAKQEAgLTYzLDExICs2 Myw4IEBAIGNsYXNzIEV4ZWN1dGVRdWVyeSB7CiAgICAgY29uc3Qgc3FsU3RhdGVtZW50V2l0aEFu YWx5emUgPSBFeGVjdXRlUXVlcnkucHJlcGFyZUFuYWx5emVTcWwoc3FsU3RhdGVtZW50LCBleHBs YWluUGxhbik7CiAKICAgICBzZWxmLmluaXRpYWxpemVFeGVjdXRpb25PblNxbEVkaXRvcihzcWxT dGF0ZW1lbnRXaXRoQW5hbHl6ZSk7Ci0KICAgICBzZXJ2aWNlLnBvc3QoCi0gICAgICB1cmxfZm9y KCdzcWxlZGl0b3IucXVlcnlfdG9vbF9zdGFydCcsIHsKLSAgICAgICAgJ3RyYW5zX2lkJzogc2Vs Zi5zcWxTZXJ2ZXJPYmplY3QudHJhbnNJZCwKLSAgICAgIH0pLAorICAgICAgdGhpcy5nZW5lcmF0 ZVVSTFJlY29ubmVjdGlvbkZsYWcoY29ubmVjdCksCiAgICAgICBKU09OLnN0cmluZ2lmeShzcWxT dGF0ZW1lbnRXaXRoQW5hbHl6ZSksCiAgICAgICB7aGVhZGVyczogeydDb250ZW50LVR5cGUnOiAn YXBwbGljYXRpb24vanNvbid9fSkKICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHsKQEAg LTkwLDExICs4NywyMiBAQCBjbGFzcyBFeGVjdXRlUXVlcnkgewogICAgICAgICAgIHNlbGYuc3Fs U2VydmVyT2JqZWN0Ll9oaWdobGlnaHRfZXJyb3IoaHR0cE1lc3NhZ2VEYXRhLmRhdGEucmVzdWx0 KTsKICAgICAgICAgfQogICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7Ci0gICAgICAg IHNlbGYub25FeGVjdXRlSFRUUEVycm9yKGVycm9yLnJlc3BvbnNlLmRhdGEpOworICAgICAgICBz ZWxmLm9uRXhlY3V0ZUhUVFBFcnJvcihlcnJvcik7CiAgICAgICB9CiAgICAgKTsKICAgfQogCisg IGdlbmVyYXRlVVJMUmVjb25uZWN0aW9uRmxhZyhzaG91bGRSZWNvbm5lY3QpIHsKKyAgICBsZXQg dXJsID0gdXJsX2Zvcignc3FsZWRpdG9yLnF1ZXJ5X3Rvb2xfc3RhcnQnLCB7CisgICAgICAndHJh bnNfaWQnOiB0aGlzLnNxbFNlcnZlck9iamVjdC50cmFuc0lkLAorICAgIH0pOworCisgICAgaWYg KHNob3VsZFJlY29ubmVjdCkgeworICAgICAgdXJsICs9ICc/Y29ubmVjdD0xJzsKKyAgICB9Cisg ICAgcmV0dXJuIHVybDsKKyAgfQorCiAgIHBvbGwoKSB7CiAgICAgY29uc3Qgc2VsZiA9IHRoaXM7 CiAgICAgbGV0IHNlcnZpY2UgPSBheGlvcy5jcmVhdGUoe30pOwpAQCAtMTI5LDE4ICsxMzcsMjEg QEAgY2xhc3MgRXhlY3V0ZVF1ZXJ5IHsKICAgICAgIH0KICAgICApLmNhdGNoKAogICAgICAgZXJy b3IgPT4gewotICAgICAgICBjb25zdCBlcnJvckRhdGEgPSBlcnJvci5yZXNwb25zZS5kYXRhOwog ICAgICAgICAvLyBFbmFibGUvRGlzYWJsZSBxdWVyeSB0b29sIGJ1dHRvbiBvbmx5IGlmIGlzX3F1 ZXJ5X3Rvb2wgaXMgdHJ1ZS4KICAgICAgICAgc2VsZi5zcWxTZXJ2ZXJPYmplY3QucmVzZXRRdWVy eUhpc3RvcnlPYmplY3Qoc2VsZi5zcWxTZXJ2ZXJPYmplY3QpOworCiAgICAgICAgIHNlbGYubG9h ZGluZ1NjcmVlbi5oaWRlKCk7CiAgICAgICAgIGlmIChzZWxmLnNxbFNlcnZlck9iamVjdC5pc19x dWVyeV90b29sKSB7CiAgICAgICAgICAgc2VsZi5lbmFibGVTUUxFZGl0b3JCdXR0b25zKCk7CiAg ICAgICAgIH0KIAotICAgICAgICBpZiAoRXhlY3V0ZVF1ZXJ5Lndhc0Nvbm5lY3Rpb25Mb3N0VG9T ZXJ2ZXIoZXJyb3JEYXRhKSkgeworICAgICAgICBpZiAoRXhlY3V0ZVF1ZXJ5Lndhc0Nvbm5lY3Rp b25Mb3N0VG9QeXRob25TZXJ2ZXIoZXJyb3IucmVzcG9uc2UpKSB7CiAgICAgICAgICAgc2VsZi5o YW5kbGVDb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCk7CiAgICAgICAgICAgcmV0dXJuOwogICAgICAg ICB9CisKKyAgICAgICAgY29uc3QgZXJyb3JEYXRhID0gZXJyb3IucmVzcG9uc2UuZGF0YTsKKwog ICAgICAgICBpZiAoc2VsZi51c2VyTWFuYWdlbWVudC5pc19wZ2FfbG9naW5fcmVxdWlyZWQoZXJy b3JEYXRhKSkgewogICAgICAgICAgIHJldHVybiBzZWxmLnVzZXJNYW5hZ2VtZW50LnBnYV9sb2dp bigpOwogICAgICAgICB9CkBAIC0xNTksNyArMTcwLDcgQEAgY2xhc3MgRXhlY3V0ZVF1ZXJ5IHsK ICAgICAkKCcjYnRuLWZsYXNoJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTsKIAogICAgIHRoaXMu c3FsU2VydmVyT2JqZWN0LnF1ZXJ5X3N0YXJ0X3RpbWUgPSBuZXcgRGF0ZSgpOwotICAgIGlmKHR5 cGVvZiBzcWxTdGF0ZW1lbnQgPT09ICdvYmplY3QnKSB7CisgICAgaWYgKHR5cGVvZiBzcWxTdGF0 ZW1lbnQgPT09ICdvYmplY3QnKSB7CiAgICAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5xdWVyeSA9 IHNxbFN0YXRlbWVudFsnc3FsJ107CiAgICAgfSBlbHNlIHsKICAgICAgIHRoaXMuc3FsU2VydmVy T2JqZWN0LnF1ZXJ5ID0gc3FsU3RhdGVtZW50OwpAQCAtMTgyLDM5ICsxOTMsMzYgQEAgY2xhc3Mg RXhlY3V0ZVF1ZXJ5IHsKICAgICB0aGlzLmxvYWRpbmdTY3JlZW4uaGlkZSgpOwogICAgIHRoaXMu ZW5hYmxlU1FMRWRpdG9yQnV0dG9ucygpOwogCi0gICAgaWYgKEV4ZWN1dGVRdWVyeS53YXNDb25u ZWN0aW9uTG9zdFRvU2VydmVyKGh0dHBNZXNzYWdlKSkgeworICAgIGlmIChFeGVjdXRlUXVlcnku d2FzQ29ubmVjdGlvbkxvc3RUb1B5dGhvblNlcnZlcihodHRwTWVzc2FnZS5yZXNwb25zZSkpIHsK ICAgICAgIHRoaXMuaGFuZGxlQ29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwogICAgICAgcmV0dXJu OwogICAgIH0KIAotICAgIGlmICh0aGlzLnVzZXJNYW5hZ2VtZW50LmlzX3BnYV9sb2dpbl9yZXF1 aXJlZChodHRwTWVzc2FnZSkpIHsKKyAgICBpZiAodGhpcy51c2VyTWFuYWdlbWVudC5pc19wZ2Ff bG9naW5fcmVxdWlyZWQoaHR0cE1lc3NhZ2UucmVzcG9uc2UpKSB7CiAgICAgICB0aGlzLnNxbFNl cnZlck9iamVjdC5zYXZlX3N0YXRlKCdleGVjdXRlJywgW3RoaXMuZXhwbGFpblBsYW5dKTsKICAg ICAgIHRoaXMudXNlck1hbmFnZW1lbnQucGdhX2xvZ2luKCk7CiAgICAgfQogCi0gICAgaWYgKHRy YW5zYWN0aW9uLmlzX25ld190cmFuc2FjdGlvbl9yZXF1aXJlZChodHRwTWVzc2FnZSkpIHsKKyAg ICBpZiAodHJhbnNhY3Rpb24uaXNfbmV3X3RyYW5zYWN0aW9uX3JlcXVpcmVkKGh0dHBNZXNzYWdl LnJlc3BvbnNlKSkgewogICAgICAgdGhpcy5zcWxTZXJ2ZXJPYmplY3Quc2F2ZV9zdGF0ZSgnZXhl Y3V0ZScsIFt0aGlzLmV4cGxhaW5QbGFuXSk7CiAgICAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5p bml0X3RyYW5zYWN0aW9uKCk7CiAgICAgfQogCi0gICAgbGV0IG1zZyA9IGh0dHBNZXNzYWdlLmVy cm9ybXNnOwotICAgIGlmIChodHRwTWVzc2FnZS5yZXNwb25zZUpTT04gIT09IHVuZGVmaW5lZCkg ewotICAgICAgaWYgKGh0dHBNZXNzYWdlLnJlc3BvbnNlSlNPTi5lcnJvcm1zZyAhPT0gdW5kZWZp bmVkKSB7Ci0gICAgICAgIG1zZyA9IGh0dHBNZXNzYWdlLnJlc3BvbnNlSlNPTi5lcnJvcm1zZzsK LSAgICAgIH0KLQotICAgICAgaWYgKGh0dHBNZXNzYWdlLnN0YXR1cyA9PT0gNTAzICYmIGh0dHBN ZXNzYWdlLnJlc3BvbnNlSlNPTi5pbmZvICE9PSB1bmRlZmluZWQgJiYKLSAgICAgICAgaHR0cE1l c3NhZ2UucmVzcG9uc2VKU09OLmluZm8gPT09ICdDT05ORUNUSU9OX0xPU1QnKSB7Ci0gICAgICAg IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewotICAgICAgICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0 LnNhdmVfc3RhdGUoJ2V4ZWN1dGUnLCBbdGhpcy5leHBsYWluUGxhbl0pOwotICAgICAgICAgIHRo aXMuc3FsU2VydmVyT2JqZWN0LmhhbmRsZV9jb25uZWN0aW9uX2xvc3QoZmFsc2UsIGh0dHBNZXNz YWdlKTsKLSAgICAgICAgfSk7Ci0gICAgICB9CisgICAgaWYgKHRoaXMud2FzRGF0YWJhc2VDb25u ZWN0aW9uTG9zdChodHRwTWVzc2FnZSkpIHsKKyAgICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LnNh dmVfc3RhdGUoJ2V4ZWN1dGUnLCBbdGhpcy5leHBsYWluUGxhbl0pOworICAgICAgdGhpcy5zcWxT ZXJ2ZXJPYmplY3QuaGFuZGxlX2Nvbm5lY3Rpb25fbG9zdChmYWxzZSwgaHR0cE1lc3NhZ2UpOwog ICAgIH0KIAorICAgIGxldCBtc2cgPSBodHRwTWVzc2FnZS5yZXNwb25zZS5kYXRhLmVycm9ybXNn OwogICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LnVwZGF0ZV9tc2dfaGlzdG9yeShmYWxzZSwgbXNn KTsKICAgfQogCisgIHdhc0RhdGFiYXNlQ29ubmVjdGlvbkxvc3QoaHR0cE1lc3NhZ2UpIHsKKyAg ICByZXR1cm4gaHR0cE1lc3NhZ2UucmVzcG9uc2Uuc3RhdHVzID09PSA1MDMgJiYKKyAgICAgIGh0 dHBNZXNzYWdlLnJlc3BvbnNlLmRhdGEuaW5mbyAhPT0gdW5kZWZpbmVkICYmCisgICAgICBodHRw TWVzc2FnZS5yZXNwb25zZS5kYXRhLmluZm8gPT09ICdDT05ORUNUSU9OX0xPU1QnOworICB9CisK ICAgcmVtb3ZlR3JpZFZpZXdNYXJrZXIoKSB7CiAgICAgaWYgKHRoaXMuc3FsU2VydmVyT2JqZWN0 LmdyaWRWaWV3Lm1hcmtlcikgewogICAgICAgdGhpcy5zcWxTZXJ2ZXJPYmplY3QuZ3JpZFZpZXcu bWFya2VyLmNsZWFyKCk7CkBAIC0yMzYsOCArMjQ0LDggQEAgY2xhc3MgRXhlY3V0ZVF1ZXJ5IHsK ICAgICAkKCcjYnRuLWNhbmNlbC1xdWVyeScpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOwogICB9 CiAKLSAgc3RhdGljIHdhc0Nvbm5lY3Rpb25Mb3N0VG9TZXJ2ZXIoZXJyb3JNZXNzYWdlKSB7Ci0g ICAgcmV0dXJuIGVycm9yTWVzc2FnZS5yZWFkeVN0YXRlID09PSAwOworICBzdGF0aWMgd2FzQ29u bmVjdGlvbkxvc3RUb1B5dGhvblNlcnZlcihodHRwUmVzcG9uc2UpIHsKKyAgICByZXR1cm4gXy5p c1VuZGVmaW5lZChodHRwUmVzcG9uc2UpIHx8IF8uaXNVbmRlZmluZWQoaHR0cFJlc3BvbnNlLmRh dGEpOwogICB9CiAKICAgaGFuZGxlQ29ubmVjdGlvblRvU2VydmVyTG9zdCgpIHsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvaXNfbmV3X3RyYW5zYWN0aW9uX3Jl cXVpcmVkLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9pc19uZXdfdHJhbnNh Y3Rpb25fcmVxdWlyZWQuanMKaW5kZXggOWQ4M2M5MjYuLjViMjVjMTlkIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2lzX25ld190cmFuc2FjdGlvbl9yZXF1aXJl ZC5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2lzX25ld190cmFuc2Fj dGlvbl9yZXF1aXJlZC5qcwpAQCAtOCw3ICs4LDcgQEAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKIGV4 cG9ydCBmdW5jdGlvbiBpc19uZXdfdHJhbnNhY3Rpb25fcmVxdWlyZWQoeGhyKSB7Ci0gIHJldHVy biB4aHIuc3RhdHVzID09PSA0MDQgJiYgeGhyLnJlc3BvbnNlSlNPTiAmJgotICAgIHhoci5yZXNw b25zZUpTT04uaW5mbyAmJgotICAgIHhoci5yZXNwb25zZUpTT04uaW5mbyA9PT0gJ0RBVEFHUklE X1RSQU5TQUNUSU9OX1JFUVVJUkVEJzsKKyAgcmV0dXJuIHhoci5zdGF0dXMgPT09IDQwNCAmJiB4 aHIuZGF0YSAmJgorICAgIHhoci5kYXRhLmluZm8gJiYKKyAgICB4aHIuZGF0YS5pbmZvID09PSAn REFUQUdSSURfVFJBTlNBQ1RJT05fUkVRVUlSRUQnOwogfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRp dG9yL19faW5pdF9fLnB5CmluZGV4IGNjMGFhNGNmLi42ZjVkNWI3OCAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rv b2xzL3NxbGVkaXRvci9fX2luaXRfXy5weQpAQCAtMjk4LDggKzI5OCwxMCBAQCBkZWYgc3RhcnRf cXVlcnlfdG9vbCh0cmFuc19pZCk6CiAgICAgICAgIHJlcXVlc3QuZGF0YSwgcmVxdWVzdC5hcmdz LCByZXF1ZXN0LmZvcm0KICAgICApCiAKKyAgICBjb25uZWN0ID0gJ2Nvbm5lY3QnIGluIHJlcXVl c3QuYXJncyBhbmQgcmVxdWVzdC5hcmdzWydjb25uZWN0J10gPT0gJzEnCisKICAgICByZXR1cm4g U3RhcnRSdW5uaW5nUXVlcnkoYmx1ZXByaW50LCBjdXJyZW50X2FwcCkuZXhlY3V0ZSgKLSAgICAg ICAgc3FsLCB0cmFuc19pZCwgc2Vzc2lvbgorICAgICAgICBzcWwsIHRyYW5zX2lkLCBzZXNzaW9u LCBjb25uZWN0CiAgICAgKQogCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L3N0YXRpYy9qcy9zcWxlZGl0b3IuanMKaW5kZXggZmY1MTM4ZDkuLjkyM2NjZWFkIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcwor KysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcwpA QCAtMTg0NywxMyArMTg0NywyMSBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAg IH0sCiAKICAgICAgIGhhbmRsZV9jb25uZWN0aW9uX2xvc3Q6IGZ1bmN0aW9uKGNyZWF0ZV90cmFu c2FjdGlvbiwgeGhyKSB7Ci0gICAgICAgIHZhciBzZWxmPSB0aGlzOwotICAgICAgICBpZiAoeGhy LnJlc3BvbnNlSlNPTi5kYXRhICYmICF4aHIucmVzcG9uc2VKU09OLmRhdGEuY29ubl9pZCkgewor ICAgICAgICAvKiBJZiByZXNwb25zZUpTT04gaXMgdW5kZWZpbmVkIHRoZW4gaXQgY291bGQgYmUg b2JqZWN0IG9mCisgICAgICAgICAqIGF4aW9zKFByb21pc2UgSFRUUCkgcmVzcG9uc2UsIHNvIHdl IHNob3VsZCBjaGVjayBhY2NvcmRpbmdseS4KKyAgICAgICAgICovCisgICAgICAgIGlmICh4aHIu cmVzcG9uc2VKU09OICE9PSB1bmRlZmluZWQgJiYKKyAgICAgICAgICAgIHhoci5yZXNwb25zZUpT T04uZGF0YSAmJiAheGhyLnJlc3BvbnNlSlNPTi5kYXRhLmNvbm5faWQpIHsKKyAgICAgICAgICAv LyBpZiBjb25uX2lkIGlzIG51bGwgdGhlbiB0aGlzIGlzIG1haW50ZW5hbmNlIGRiLgorICAgICAg ICAgIC8vIHNvIGF0dGVtcHQgY29ubmVjdGlvbiBjb25uZWN0IHdpdGhvdXQgcHJvbXB0LgorICAg ICAgICAgIHRoaXMuaW5pdF9jb25uZWN0aW9uKGNyZWF0ZV90cmFuc2FjdGlvbik7CisgICAgICAg IH0gZWxzZSBpZiAoeGhyLmRhdGEgIT09IHVuZGVmaW5lZCAmJgorICAgICAgICAgIHhoci5kYXRh LmRhdGEgJiYgIXhoci5kYXRhLmRhdGEuY29ubl9pZCkgewogICAgICAgICAgIC8vIGlmIGNvbm5f aWQgaXMgbnVsbCB0aGVuIHRoaXMgaXMgbWFpbnRlbmFuY2UgZGIuCiAgICAgICAgICAgLy8gc28g YXR0ZW1wdCBjb25uZWN0aW9uIGNvbm5lY3Qgd2l0aG91dCBwcm9tcHQuCi0gICAgICAgICAgc2Vs Zi5pbml0X2Nvbm5lY3Rpb24oY3JlYXRlX3RyYW5zYWN0aW9uKTsKKyAgICAgICAgICB0aGlzLmlu aXRfY29ubmVjdGlvbihjcmVhdGVfdHJhbnNhY3Rpb24pOwogICAgICAgICB9IGVsc2UgewotICAg ICAgICAgIHNlbGYud2Fybl9iZWZvcmVfY29udGludWUoKTsKKyAgICAgICAgICB0aGlzLndhcm5f YmVmb3JlX2NvbnRpbnVlKCk7CiAgICAgICAgIH0KICAgICAgIH0sCiAgICAgICB3YXJuX2JlZm9y ZV9jb250aW51ZTogZnVuY3Rpb24oKSB7CkBAIC0zNzMwLDcgKzM3MzgsNyBAQCBkZWZpbmUoJ3Rv b2xzLnF1ZXJ5dG9vbCcsIFsKIAogICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHRo ZSBzcWwgcXVlcnkgZnJvbSB0aGUgdGV4dCBib3gKICAgICAgIC8vIGFuZCBleGVjdXRlIHRoZSBx dWVyeS4KLSAgICAgIGV4ZWN1dGU6IGZ1bmN0aW9uKGV4cGxhaW5fcHJlZml4KSB7CisgICAgICBl eGVjdXRlOiBmdW5jdGlvbihleHBsYWluX3ByZWZpeCwgc2hvdWxkUmVjb25uZWN0PWZhbHNlKSB7 CiAgICAgICAgIHZhciBzZWxmID0gdGhpcywKICAgICAgICAgICBzcWwgPSAnJzsKIApAQCAtMzc0 Nyw3ICszNzU1LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgICAgc3Fs ID0gc2VsZi5ncmlkVmlldy5xdWVyeV90b29sX29iai5nZXRWYWx1ZSgpOwogCiAgICAgICAgIGNv bnN0IGV4ZWN1dGVRdWVyeSA9IG5ldyBFeGVjdXRlUXVlcnkuRXhlY3V0ZVF1ZXJ5KHRoaXMsIHBn QWRtaW4uQnJvd3Nlci5Vc2VyTWFuYWdlbWVudCk7Ci0gICAgICAgIGV4ZWN1dGVRdWVyeS5leGVj dXRlKHNxbCwgZXhwbGFpbl9wcmVmaXgpOworICAgICAgICBleGVjdXRlUXVlcnkuZXhlY3V0ZShz cWwsIGV4cGxhaW5fcHJlZml4LCBzaG91bGRSZWNvbm5lY3QpOwogICAgICAgfSwKIAogICAgICAg LyogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGhpZ2hsaWdodCB0aGUgZXJyb3IgbGluZSBhbmQK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3N0YXJ0 X3F1ZXJ5X3Rvb2wucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9z dGFydF9xdWVyeV90b29sLnB5CmluZGV4IDJhNTAyNTlhLi5jMmZmMjFjNSAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3Rfc3RhcnRfcXVlcnlfdG9vbC5w eQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9zdGFydF9xdWVy eV90b29sLnB5CkBAIC00Miw2ICs0Miw2IEBAIGNsYXNzIFN0YXJ0UXVlcnlUb29sKEJhc2VUZXN0 R2VuZXJhdG9yKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1 cywgJzIwMCBPSycpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5kYXRh LCBiJ3NvbWUgcmVzdWx0JykKICAgICAgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5X2V4ZWN1dGVf bW9jayBcCi0gICAgICAgICAgICAgICAgLmFzc2VydF9jYWxsZWRfd2l0aCgndHJhbnNmb3JtZWQg c3FsJywgMTIzNCwgQU5ZKQorICAgICAgICAgICAgICAgIC5hc3NlcnRfY2FsbGVkX3dpdGgoJ3Ry YW5zZm9ybWVkIHNxbCcsIDEyMzQsIEFOWSwgRmFsc2UpCiAgICAgICAgICAgICBleHRyYWN0X3Nx bF9mcm9tX25ldHdvcmtfcGFyYW1ldGVyc19tb2NrIFwKICAgICAgICAgICAgICAgICAuYXNzZXJ0 X2NhbGxlZF93aXRoKGInInNvbWUgc3FsIHN0YXRlbWVudCInLCBBTlksIEFOWSkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9zdGFydF9ydW5uaW5nX3F1ZXJ5 LnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3N0YXJ0X3J1bm5pbmdfcXVl cnkucHkKaW5kZXggMTFiOTQ2YjUuLjNiM2M1MDIwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90 b29scy9zcWxlZGl0b3IvdXRpbHMvc3RhcnRfcnVubmluZ19xdWVyeS5weQorKysgYi93ZWIvcGdh ZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvc3RhcnRfcnVubmluZ19xdWVyeS5weQpAQCAtMzYs NyArMzYsNyBAQCBjbGFzcyBTdGFydFJ1bm5pbmdRdWVyeToKICAgICAgICAgc2VsZi5jb25uZWN0 aW9uX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQogICAgICAgICBzZWxmLmxv Z2dlciA9IGxvZ2dlcgogCi0gICAgZGVmIGV4ZWN1dGUoc2VsZiwgc3FsLCB0cmFuc19pZCwgaHR0 cF9zZXNzaW9uKToKKyAgICBkZWYgZXhlY3V0ZShzZWxmLCBzcWwsIHRyYW5zX2lkLCBodHRwX3Nl c3Npb24sIGNvbm5lY3Q9RmFsc2UpOgogICAgICAgICBzZXNzaW9uX29iaiA9IFN0YXJ0UnVubmlu Z1F1ZXJ5LnJldHJpZXZlX3Nlc3Npb25faW5mb3JtYXRpb24oCiAgICAgICAgICAgICBodHRwX3Nl c3Npb24sCiAgICAgICAgICAgICB0cmFuc19pZApAQCAtNjgsNyArNjgsNyBAQCBjbGFzcyBTdGFy dFJ1bm5pbmdRdWVyeToKICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXN0cihlKSkKIAogICAgICAgICAgICAgIyBDb25uZWN0IHRvIHRoZSBTZXJ2 ZXIgaWYgbm90IGNvbm5lY3RlZC4KLSAgICAgICAgICAgIGlmIG5vdCBjb25uLmNvbm5lY3RlZCgp OgorICAgICAgICAgICAgaWYgY29ubmVjdCBhbmQgbm90IGNvbm4uY29ubmVjdGVkKCk6CiAgICAg ICAgICAgICAgICAgc3RhdHVzLCBtc2cgPSBjb25uLmNvbm5lY3QoKQogICAgICAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKG1z ZykKQEAgLTEwOCwzOSArMTA4LDM0IEBAIGNsYXNzIFN0YXJ0UnVubmluZ1F1ZXJ5OgogICAgICAg ICAgICAgc2VsZi5jb25uZWN0aW9uX2lkID0gY29ubl9pZAogCiAgICAgZGVmIF9fZXhlY3V0ZV9x dWVyeShzZWxmLCBjb25uLCBzZXNzaW9uX29iaiwgc3FsLCB0cmFuc19pZCwgdHJhbnNfb2JqKToK LSAgICAgICAgaWYgY29ubi5jb25uZWN0ZWQoKToKLSAgICAgICAgICAgICMgb24gc3VjY2Vzc2Z1 bCBjb25uZWN0aW9uIHNldCB0aGUgY29ubmVjdGlvbiBpZCB0byB0aGUKLSAgICAgICAgICAgICMg dHJhbnNhY3Rpb24gb2JqZWN0Ci0gICAgICAgICAgICB0cmFuc19vYmouc2V0X2Nvbm5lY3Rpb25f aWQoc2VsZi5jb25uZWN0aW9uX2lkKQorICAgICAgICAjIG9uIHN1Y2Nlc3NmdWwgY29ubmVjdGlv biBzZXQgdGhlIGNvbm5lY3Rpb24gaWQgdG8gdGhlCisgICAgICAgICMgdHJhbnNhY3Rpb24gb2Jq ZWN0CisgICAgICAgIHRyYW5zX29iai5zZXRfY29ubmVjdGlvbl9pZChzZWxmLmNvbm5lY3Rpb25f aWQpCisKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuc2F2ZV90cmFuc2FjdGlvbl9pbl9zZXNz aW9uKHNlc3Npb25fb2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdHJhbnNfaWQsIHRyYW5zX29iaikKKworICAgICAgICAjIElmIGF1dG8g Y29tbWl0IGlzIEZhbHNlIGFuZCB0cmFuc2FjdGlvbiBzdGF0dXMgaXMgSWRsZQorICAgICAgICAj IHRoZW4gY2FsbCBpc19iZWdpbl9ub3RfcmVxdWlyZWQoKSBmdW5jdGlvbiB0byBjaGVjayBCRUdJ TgorICAgICAgICAjIGlzIHJlcXVpcmVkIG9yIG5vdC4KKworICAgICAgICBpZiBTdGFydFJ1bm5p bmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1ZXJ5KHRyYW5zX29iaiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25uLCBzcWwpOgorICAgICAgICAgICAgY29ubi5leGVjdXRlX3ZvaWQoIkJFR0lOOyIpCisKKyAg ICAgICAgIyBFeGVjdXRlIHNxbCBhc3luY2hyb25vdXNseSB3aXRoIHBhcmFtcyBpcyBOb25lCisg ICAgICAgICMgYW5kIGZvcm1hdHRlZF9lcnJvciBpcyBUcnVlLgorICAgICAgICB0cnk6CisgICAg ICAgICAgICBzdGF0dXMsIHJlc3VsdCA9IGNvbm4uZXhlY3V0ZV9hc3luYyhzcWwpCisgICAgICAg IGV4Y2VwdCBDb25uZWN0aW9uTG9zdDoKKyAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAgIyBJ ZiB0aGUgdHJhbnNhY3Rpb24gYWJvcnRlZCBmb3Igc29tZSByZWFzb24gYW5kCisgICAgICAgICMg QXV0byBSb2xsQmFjayBpcyBUcnVlIHRoZW4gaXNzdWUgYSByb2xsYmFjayB0byBjbGVhbnVwLgor ICAgICAgICBpZiBTdGFydFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWly ZWQodHJhbnNfb2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29ubik6CisgICAgICAgICAgICBjb25uLmV4ZWN1dGVfdm9pZCgi Uk9MTEJBQ0s7IikKIAotICAgICAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuc2F2ZV90cmFuc2Fj dGlvbl9pbl9zZXNzaW9uKHNlc3Npb25fb2JqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zX2lkLCB0cmFuc19vYmopCi0KLSAg ICAgICAgICAgICMgSWYgYXV0byBjb21taXQgaXMgRmFsc2UgYW5kIHRyYW5zYWN0aW9uIHN0YXR1 cyBpcyBJZGxlCi0gICAgICAgICAgICAjIHRoZW4gY2FsbCBpc19iZWdpbl9ub3RfcmVxdWlyZWQo KSBmdW5jdGlvbiB0byBjaGVjayBCRUdJTgotICAgICAgICAgICAgIyBpcyByZXF1aXJlZCBvciBu b3QuCi0KLSAgICAgICAgICAgIGlmIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX2JlZ2luX3JlcXVpcmVk X2Zvcl9zcWxfcXVlcnkodHJhbnNfb2JqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uLCBzcWwpOgotICAgICAgICAg ICAgICAgIGNvbm4uZXhlY3V0ZV92b2lkKCJCRUdJTjsiKQotCi0gICAgICAgICAgICAjIEV4ZWN1 dGUgc3FsIGFzeW5jaHJvbm91c2x5IHdpdGggcGFyYW1zIGlzIE5vbmUKLSAgICAgICAgICAgICMg YW5kIGZvcm1hdHRlZF9lcnJvciBpcyBUcnVlLgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg ICAgICAgIHN0YXR1cywgcmVzdWx0ID0gY29ubi5leGVjdXRlX2FzeW5jKHNxbCkKLSAgICAgICAg ICAgIGV4Y2VwdCBDb25uZWN0aW9uTG9zdDoKLSAgICAgICAgICAgICAgICByYWlzZQotCi0gICAg ICAgICAgICAjIElmIHRoZSB0cmFuc2FjdGlvbiBhYm9ydGVkIGZvciBzb21lIHJlYXNvbiBhbmQK LSAgICAgICAgICAgICMgQXV0byBSb2xsQmFjayBpcyBUcnVlIHRoZW4gaXNzdWUgYSByb2xsYmFj ayB0byBjbGVhbnVwLgotICAgICAgICAgICAgaWYgU3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJh Y2tfc3RhdGVtZW50X3JlcXVpcmVkKHRyYW5zX29iaiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uKToKLSAgICAgICAg ICAgICAgICBjb25uLmV4ZWN1dGVfdm9pZCgiUk9MTEJBQ0s7IikKLSAgICAgICAgZWxzZToKLSAg ICAgICAgICAgIHN0YXR1cyA9IEZhbHNlCi0gICAgICAgICAgICByZXN1bHQgPSBnZXR0ZXh0KAot ICAgICAgICAgICAgICAgICdOb3QgY29ubmVjdGVkIHRvIHNlcnZlciBvciBjb25uZWN0aW9uIHdp dGggdGhlIHNlcnZlciBoYXMgJwotICAgICAgICAgICAgICAgICdiZWVuIGNsb3NlZC4nKQogICAg ICAgICByZXR1cm4gcmVzdWx0LCBzdGF0dXMKIAogICAgIEBzdGF0aWNtZXRob2QKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0X3N0YXJ0X3J1 bm5pbmdfcXVlcnkucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMv dGVzdF9zdGFydF9ydW5uaW5nX3F1ZXJ5LnB5CmluZGV4IDIzYTVjN2ZjLi40YWQwODkxYSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rlc3RzL3Rlc3Rfc3Rh cnRfcnVubmluZ19xdWVyeS5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRp bHMvdGVzdHMvdGVzdF9zdGFydF9ydW5uaW5nX3F1ZXJ5LnB5CkBAIC0yMSw2ICsyMSw3IEBAIGVs c2U6CiAgICAgZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaCwgTWFnaWNNb2NrCiAKIGdl dF9kcml2ZXJfZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdnZXRfZHJpdmVyIGV4Y2VwdGlvbicpCitn ZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbiA9IEV4Y2VwdGlvbignVW5hYmxlIHRvIGNvbm5l Y3QgdG8gc2VydmVyJykKIAogCiBjbGFzcyBTdGFydFJ1bm5pbmdRdWVyeVRlc3QoQmFzZVRlc3RH ZW5lcmF0b3IpOgpAQCAtMzgsNiArMzksNyBAQCBjbGFzcyBTdGFydFJ1bm5pbmdRdWVyeVRlc3Qo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgcGlja2xl X2xvYWRfcmV0dXJuPU5vbmUsCiAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9leGNlcHRpb249RmFs c2UsCisgICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb249RmFsc2UsCiAg ICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1Ob25lLAogCiAgICAgICAg ICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlcj1GYWxzZSwKQEAgLTY3LDYgKzY5LDcgQEAgY2xh c3MgU3RhcnRSdW5uaW5nUXVlcnlUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAg ICApLAogICAgICAgICAgICAgIHBpY2tsZV9sb2FkX3JldHVybj1Ob25lLAogICAgICAgICAgICAg IGdldF9kcml2ZXJfZXhjZXB0aW9uPUZhbHNlLAorICAgICAgICAgICAgIGdldF9jb25uZWN0aW9u X2xvc3RfZXhjZXB0aW9uPUZhbHNlLAogICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9l eGNlcHRpb249Tm9uZSwKIAogICAgICAgICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9RmFs c2UsCkBAIC05Nyw2ICsxMDAsNyBAQCBjbGFzcyBTdGFydFJ1bm5pbmdRdWVyeVRlc3QoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgcGlja2xlX2xvYWRf cmV0dXJuPU5vbmUsCiAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9leGNlcHRpb249RmFsc2UsCisg ICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb249RmFsc2UsCiAgICAgICAg ICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1Ob25lLAogCiAgICAgICAgICAgICAg aXNfY29ubmVjdGVkX3RvX3NlcnZlcj1GYWxzZSwKQEAgLTEzMSw2ICsxMzUsNyBAQCBjbGFzcyBT dGFydFJ1bm5pbmdRdWVyeVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgIHBp Y2tsZV9sb2FkX3JldHVybj1NYWdpY01vY2soY29ubl9pZD0xLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2ZldGNoZWRfcm93X2NudD1NYWdpY01vY2so KSksCiAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9leGNlcHRpb249VHJ1ZSwKKyAgICAgICAgICAg ICBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKICAgICAgICAgICAgICBtYW5h Z2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCiAKICAgICAgICAgICAgICBpc19jb25uZWN0 ZWRfdG9fc2VydmVyPUZhbHNlLApAQCAtMTYxLDYgKzE2Niw3IEBAIGNsYXNzIFN0YXJ0UnVubmlu Z1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgIHVwZGF0ZV9m ZXRjaGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCkKICAgICAgICAgICAgICApLAogICAgICAgICAgICAg IGdldF9kcml2ZXJfZXhjZXB0aW9uPUZhbHNlLAorICAgICAgICAgICAgIGdldF9jb25uZWN0aW9u X2xvc3RfZXhjZXB0aW9uPUZhbHNlLAogICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9l eGNlcHRpb249Q29ubmVjdGlvbkxvc3QoJzEnLCAnMicsICczJyksCiAKICAgICAgICAgICAgICBp c19jb25uZWN0ZWRfdG9fc2VydmVyPUZhbHNlLApAQCAtMTg4LDYgKzE5NCw3IEBAIGNsYXNzIFN0 YXJ0UnVubmluZ1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAg IHVwZGF0ZV9mZXRjaGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCkKICAgICAgICAgICAgICApLAogICAg ICAgICAgICAgIGdldF9kcml2ZXJfZXhjZXB0aW9uPUZhbHNlLAorICAgICAgICAgICAgIGdldF9j b25uZWN0aW9uX2xvc3RfZXhjZXB0aW9uPVRydWUsCiAgICAgICAgICAgICAgbWFuYWdlcl9jb25u ZWN0aW9uX2V4Y2VwdGlvbj1Ob25lLAogCiAgICAgICAgICAgICAgaXNfY29ubmVjdGVkX3RvX3Nl cnZlcj1GYWxzZSwKQEAgLTIwMiw3ICsyMDksNyBAQCBjbGFzcyBTdGFydFJ1bm5pbmdRdWVyeVRl c3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgIGV4cGVjdF9pbnRlcm5hbF9zZXJ2 ZXJfZXJyb3JfY2FsbGVkX3dpdGg9ZGljdCgKICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9J1Vu YWJsZSB0byBjb25uZWN0IHRvIHNlcnZlcicKICAgICAgICAgICAgICApLAotICAgICAgICAgICAg IGV4cGVjdGVkX2xvZ2dlcl9lcnJvcj0nVW5hYmxlIHRvIGNvbm5lY3QgdG8gc2VydmVyJywKKyAg ICAgICAgICAgICBleHBlY3RlZF9sb2dnZXJfZXJyb3I9Z2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNl cHRpb24sCiAgICAgICAgICAgICAgZXhwZWN0X2V4ZWN1dGVfdm9pZF9jYWxsZWRfd2l0aD0nc29t ZSBzcWwnLAogICAgICAgICAgKSksCiAgICAgICAgICgnV2hlbiBzZXJ2ZXIgaXMgY29ubmVjdGVk IGFuZCBzdGFydCBxdWVyeSBhc3luYyByZXF1ZXN0LCAnCkBAIC0yMjMsNiArMjMwLDcgQEAgY2xh c3MgU3RhcnRSdW5uaW5nUXVlcnlUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAg ICAgICAgY2FuX2ZpbHRlcj1sYW1iZGE6IFRydWUKICAgICAgICAgICAgICApLAogICAgICAgICAg ICAgIGdldF9kcml2ZXJfZXhjZXB0aW9uPUZhbHNlLAorICAgICAgICAgICAgIGdldF9jb25uZWN0 aW9uX2xvc3RfZXhjZXB0aW9uPUZhbHNlLAogICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlv bl9leGNlcHRpb249Tm9uZSwKIAogICAgICAgICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9 VHJ1ZSwKQEAgLTI2NSw2ICsyNzMsNyBAQCBjbGFzcyBTdGFydFJ1bm5pbmdRdWVyeVRlc3QoQmFz ZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICBjYW5fZmlsdGVyPWxhbWJkYTogVHJ1 ZQogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9leGNlcHRpb249RmFs c2UsCisgICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb249RmFsc2UsCiAg ICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1Ob25lLAogCiAgICAgICAg ICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlcj1UcnVlLApAQCAtMzA3LDYgKzMxNiw3IEBAIGNs YXNzIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAg ICAgICAgIGNhbl9maWx0ZXI9bGFtYmRhOiBUcnVlCiAgICAgICAgICAgICAgKSwKICAgICAgICAg ICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxzZSwKKyAgICAgICAgICAgICBnZXRfY29ubmVj dGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKICAgICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rp b25fZXhjZXB0aW9uPU5vbmUsCiAKICAgICAgICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVy PVRydWUsCkBAIC0zNDksNiArMzU5LDcgQEAgY2xhc3MgU3RhcnRSdW5uaW5nUXVlcnlUZXN0KEJh c2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgY2FuX2ZpbHRlcj1sYW1iZGE6IFRy dWUKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIGdldF9kcml2ZXJfZXhjZXB0aW9uPUZh bHNlLAorICAgICAgICAgICAgIGdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9uPUZhbHNlLAog ICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9leGNlcHRpb249Tm9uZSwKIAogICAgICAg ICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9VHJ1ZSwKQEAgLTQzMSw2ICs0NDIsOCBAQCBj bGFzcyBTdGFydFJ1bm5pbmdRdWVyeVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBt YW5hZ2VyID0gc2VsZi5fX2NyZWF0ZV9tYW5hZ2VyKCkKICAgICAgICAgaWYgc2VsZi5nZXRfZHJp dmVyX2V4Y2VwdGlvbjoKICAgICAgICAgICAgIGdldF9kcml2ZXJfbW9jay5zaWRlX2VmZmVjdCA9 IGdldF9kcml2ZXJfZXhjZXB0aW9uCisgICAgICAgIGVsaWYgc2VsZi5nZXRfY29ubmVjdGlvbl9s b3N0X2V4Y2VwdGlvbjoKKyAgICAgICAgICAgIGdldF9kcml2ZXJfbW9jay5zaWRlX2VmZmVjdCA9 IGdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9uCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg ICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAogICAgICAgICAgICAg ICAgIGNvbm5lY3Rpb25fbWFuYWdlcj1sYW1iZGEgc2Vzc2lvbl9pZDogbWFuYWdlcikKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3VzZXJfbWFuYWdlbWVudC9zdGF0aWMvanMvdXNlcl9t YW5hZ2VtZW50LmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvdXNlcl9tYW5hZ2VtZW50L3N0YXRpYy9q cy91c2VyX21hbmFnZW1lbnQuanMKaW5kZXggMmEzYjJmMDcuLjI2MjczMjgwIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi90b29scy91c2VyX21hbmFnZW1lbnQvc3RhdGljL2pzL3VzZXJfbWFuYWdl bWVudC5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy91c2VyX21hbmFnZW1lbnQvc3RhdGljL2pz L3VzZXJfbWFuYWdlbWVudC5qcwpAQCAtMTMwLDkgKzEzMCwxOCBAQCBkZWZpbmUoWwogICAgIH0s CiAKICAgICBpc19wZ2FfbG9naW5fcmVxdWlyZWQoeGhyKSB7Ci0gICAgICByZXR1cm4geGhyLnN0 YXR1cyA9PSA0MDEgJiYgeGhyLnJlc3BvbnNlSlNPTiAmJgorICAgICAgLyogSWYgcmVzcG9uc2VK U09OIGlzIHVuZGVmaW5lZCB0aGVuIGl0IGNvdWxkIGJlIG9iamVjdCBvZgorICAgICAgICogYXhp b3MoUHJvbWlzZSBIVFRQKSByZXNwb25zZSwgc28gd2Ugc2hvdWxkIGNoZWNrIGFjY29yZGluZ2x5 LgorICAgICAgICovCisgICAgICBpZiAoeGhyLnJlc3BvbnNlSlNPTiA9PT0gdW5kZWZpbmVkICYm IHhoci5kYXRhICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgcmV0dXJuIHhoci5zdGF0dXMgPT09 IDQwMSAmJiB4aHIuZGF0YSAmJgorICAgICAgICAgICAgICAgICAgeGhyLmRhdGEuaW5mbyAmJgor ICAgICAgICAgICAgICAgICAgeGhyLmRhdGEuaW5mbyA9PT0gJ1BHQURNSU5fTE9HSU5fUkVRVUlS RUQnOworICAgICAgfQorCisgICAgICByZXR1cm4geGhyLnN0YXR1cyA9PT0gNDAxICYmIHhoci5y ZXNwb25zZUpTT04gJiYKICAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VKU09OLmluZm8gJiYK LSAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VKU09OLmluZm8gPT0gJ1BHQURNSU5fTE9HSU5f UkVRVUlSRUQnOworICAgICAgICAgICAgICAgIHhoci5yZXNwb25zZUpTT04uaW5mbyA9PT0gJ1BH QURNSU5fTE9HSU5fUkVRVUlSRUQnOwogICAgIH0sCiAKICAgICAvLyBDYWxsYmFjayB0byBkcmF3 IHBnQWRtaW40IGxvZ2luIGRpYWxvZy4KZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFz Y3JpcHQvc3FsZWRpdG9yL2V4ZWN1dGVfcXVlcnlfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2ph dmFzY3JpcHQvc3FsZWRpdG9yL2V4ZWN1dGVfcXVlcnlfc3BlYy5qcwppbmRleCA5OGZhZWQ3ZC4u NWY5MmRjNTAgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9y L2V4ZWN1dGVfcXVlcnlfc3BlYy5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3Nx bGVkaXRvci9leGVjdXRlX3F1ZXJ5X3NwZWMuanMKQEAgLTQyLDYgKzQyLDcgQEAgZGVzY3JpYmUo J0V4ZWN1dGVRdWVyeScsICgpID0+IHsKICAgICAgICdfaW5pdF9wb2xsaW5nX2ZsYWdzJywKICAg ICAgICdzYXZlX3N0YXRlJywKICAgICAgICdpbml0X3RyYW5zYWN0aW9uJywKKyAgICAgICdoYW5k bGVfY29ubmVjdGlvbl9sb3N0JywKICAgICBdKTsKICAgICBzcWxFZGl0b3JNb2NrLnRyYW5zSWQg PSAxMjM7CiAgICAgc3FsRWRpdG9yTW9jay5yb3dzX2FmZmVjdGVkID0gMTAwMDsKQEAgLTQ5LDYg KzUwLDEwIEBAIGRlc2NyaWJlKCdFeGVjdXRlUXVlcnknLCAoKSA9PiB7CiAgICAgaXNOZXdUcmFu c2FjdGlvblJlcXVpcmVkTW9jayA9IHNweU9uKHRyYW5zYWN0aW9uLCAnaXNfbmV3X3RyYW5zYWN0 aW9uX3JlcXVpcmVkJyk7CiAgIH0pOwogCisgIGFmdGVyRWFjaCgoKSA9PiB7CisgICAgbmV0d29y a01vY2sucmVzdG9yZSgpOworICB9KTsKKwogICBkZXNjcmliZSgnI3BvbGwnLCAoKSA9PiB7CiAg ICAgbGV0IGNhbmNlbEJ1dHRvblNweTsKICAgICBsZXQgcmVzcG9uc2U7CkBAIC02Miw5ICs2Nyw2 IEBAIGRlc2NyaWJlKCdFeGVjdXRlUXVlcnknLCAoKSA9PiB7CiAgICAgICBleGVjdXRlUXVlcnku ZGVsYXllZFBvbGwgPSBqYXNtaW5lLmNyZWF0ZVNweSgnRXhlY3V0ZVF1ZXJ5LmRlbGF5ZWRQb2xs Jyk7CiAgICAgfSk7CiAKLSAgICBhZnRlckVhY2goKCkgPT4gewotICAgIH0pOwotCiAgICAgY29u dGV4dCgnd2hlbiBTUUxFZGl0b3IgaXMgdGhlIHF1ZXJ5IHRvb2wnLCAoKSA9PiB7CiAgICAgICBi ZWZvcmVFYWNoKCgpID0+IHsKICAgICAgICAgc3FsRWRpdG9yTW9jay5pc19xdWVyeV90b29sID0g dHJ1ZTsKQEAgLTU2OSw4ICs1NzEsNyBAQCBkZXNjcmliZSgnRXhlY3V0ZVF1ZXJ5JywgKCkgPT4g ewogCiAgICAgICAgICAgZGVzY3JpYmUoJ3doZW4gY2Fubm90IHJlYWNoIHRoZSBQeXRob24gU2Vy dmVyJywgKCkgPT4gewogICAgICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAg ICAgIHJlc3BvbnNlID0ge3JlYWR5U3RhdGU6IDB9OwotICAgICAgICAgICAgICBuZXR3b3JrTW9j ay5vbkdldCgnL3NxbGVkaXRvci9xdWVyeV90b29sL3BvbGwvMTIzJykucmVwbHkoNDAxLCByZXNw b25zZSk7CisgICAgICAgICAgICAgIG5ldHdvcmtNb2NrLm9uR2V0KCcvc3FsZWRpdG9yL3F1ZXJ5 X3Rvb2wvcG9sbC8xMjMnKS5yZXBseSg0MDQsIHVuZGVmaW5lZCk7CiAKICAgICAgICAgICAgICAg ZXhlY3V0ZVF1ZXJ5LnBvbGwoKTsKICAgICAgICAgICAgIH0pOwpAQCAtOTcyLDggKzk3Myw3IEBA IGRlc2NyaWJlKCdFeGVjdXRlUXVlcnknLCAoKSA9PiB7CiAKICAgICAgICAgICBkZXNjcmliZSgn d2hlbiBjYW5ub3QgcmVhY2ggdGhlIFB5dGhvbiBTZXJ2ZXInLCAoKSA9PiB7CiAgICAgICAgICAg ICBiZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgICAgICAgcmVzcG9uc2UgPSB7cmVhZHlTdGF0 ZTogMH07Ci0gICAgICAgICAgICAgIG5ldHdvcmtNb2NrLm9uR2V0KCcvc3FsZWRpdG9yL3F1ZXJ5 X3Rvb2wvcG9sbC8xMjMnKS5yZXBseSg0MDEsIHJlc3BvbnNlKTsKKyAgICAgICAgICAgICAgbmV0 d29ya01vY2sub25HZXQoJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9wb2xsLzEyMycpLnJlcGx5KDQw NCwgdW5kZWZpbmVkKTsKIAogICAgICAgICAgICAgICBleGVjdXRlUXVlcnkucG9sbCgpOwogICAg ICAgICAgICAgfSk7CkBAIC0xMTQzLDkgKzExNDMsOSBAQCBkZXNjcmliZSgnRXhlY3V0ZVF1ZXJ5 JywgKCkgPT4gewogICAgICAgZGVzY3JpYmUoJ3doZW4gSFRUUCByZXR1cm4gMjAwJywgKCkgPT4g ewogICAgICAgICBkZXNjcmliZSgnd2hlbiBiYWNrZW5kIGluZm9ybXMgdGhhdCBxdWVyeSBzdGFy dGVkIHN1Y2Nlc3NmdWxseScsICgpID0+IHsKICAgICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsK LSAgICAgICAgICAgIG5ldHdvcmtNb2NrLm9uQW55KCcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvc3Rh cnQvMTIzJykucmVwbHkoMjAwLCByZXNwb25zZSk7CisgICAgICAgICAgICBuZXR3b3JrTW9jay5v blBvc3QoJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9zdGFydC8xMjM/Y29ubmVjdD0xJykucmVwbHko MjAwLCByZXNwb25zZSk7CiAgICAgICAgICAgICBwb2xsU3B5ID0gc3B5T24oZXhlY3V0ZVF1ZXJ5 LCAnZGVsYXllZFBvbGwnKTsKLSAgICAgICAgICAgIGV4ZWN1dGVRdWVyeS5leGVjdXRlKCdzb21l IHNxbCBxdWVyeScsICcnKTsKKyAgICAgICAgICAgIGV4ZWN1dGVRdWVyeS5leGVjdXRlKCdzb21l IHNxbCBxdWVyeScsICcnLCB0cnVlKTsKICAgICAgICAgICB9KTsKIAogICAgICAgICAgIGl0KCdz aG91bGQgY2hhbmdlcyB0aGUgbG9hZGluZyBtZXNzYWdlIHRvICJXYWl0aW5nIGZvciB0aGUgcXVl cnkgZXhlY3V0aW9uIHRvIGNvbXBsZXRlIicsIChkb25lKSA9PiB7CkBAIC0xMzEwLDEwICsxMzEw LDcgQEAgZGVzY3JpYmUoJ0V4ZWN1dGVRdWVyeScsICgpID0+IHsKIAogICAgICAgZGVzY3JpYmUo J3doZW4gY2Fubm90IHJlYWNoIHRoZSBQeXRob24gU2VydmVyJywgKCkgPT4gewogICAgICAgICBi ZWZvcmVFYWNoKCgpID0+IHsKLSAgICAgICAgICByZXNwb25zZSA9IHsKLSAgICAgICAgICAgIHJl YWR5U3RhdGU6IDAsCi0gICAgICAgICAgfTsKLSAgICAgICAgICBuZXR3b3JrTW9jay5vbkFueSgn L3NxbGVkaXRvci9xdWVyeV90b29sL3N0YXJ0LzEyMycpLnJlcGx5KDUwMCwgcmVzcG9uc2UpOwor ICAgICAgICAgIG5ldHdvcmtNb2NrLm9uQW55KCcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvc3RhcnQv MTIzJykucmVwbHkoNTAwLCB1bmRlZmluZWQpOwogCiAKICAgICAgICAgICBleGVjdXRlUXVlcnku ZXhlY3V0ZSgnc29tZSBzcWwgcXVlcnknLCAnJyk7CkBAIC0xNjU3LDcgKzE2NTQsMzIgQEAgZGVz Y3JpYmUoJ0V4ZWN1dGVRdWVyeScsICgpID0+IHsKICAgICAgICAgICAgIH0sIDApOwogICAgICAg ICAgIH0pOwogICAgICAgICB9KTsKKyAgICAgICAgZGVzY3JpYmUoJ3doZW4gY29ubmVjdGlvbiB0 byBkYXRhYmFzZSBpcyBsb3N0JywgKCkgPT4geworICAgICAgICAgIGJlZm9yZUVhY2goKCkgPT4g eworICAgICAgICAgICAgaXNOZXdUcmFuc2FjdGlvblJlcXVpcmVkTW9jay5hbmQucmV0dXJuVmFs dWUoZmFsc2UpOworICAgICAgICAgICAgcmVzcG9uc2UuaW5mbyA9ICdDT05ORUNUSU9OX0xPU1Qn OworICAgICAgICAgICAgbmV0d29ya01vY2sub25BbnkoJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9z dGFydC8xMjMnKS5yZXBseSg1MDMsIHJlc3BvbnNlKTsKKworICAgICAgICAgICAgZXhlY3V0ZVF1 ZXJ5LmV4ZWN1dGUoJ3NvbWUgc3FsIHF1ZXJ5JywgJycpOworICAgICAgICAgIH0pOworCisgICAg ICAgICAgaXQoJ3NhdmVzIHN0YXRlJywgKCkgPT4geworICAgICAgICAgICAgc2V0VGltZW91dCgo KSA9PiB7CisgICAgICAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JNb2NrLnNhdmVfc3RhdGUpLnRv SGF2ZUJlZW5DYWxsZWRXaXRoKAorICAgICAgICAgICAgICAgICdleGVjdXRlJywKKyAgICAgICAg ICAgICAgICBbJyddCisgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9LCAwKTsKKyAgICAg ICAgICB9KTsKKworICAgICAgICAgIGl0KCdjYWxscyBoYW5kbGVfY29ubmVjdGlvbl9sb3N0Jywg KCkgPT4geworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgIGV4 cGVjdChzcWxFZGl0b3JNb2NrLmhhbmRsZV9jb25uZWN0aW9uX2xvc3QpLnRvSGF2ZUJlZW5DYWxs ZWQoKTsKKyAgICAgICAgICAgIH0sIDApOworICAgICAgICAgIH0pOworICAgICAgICB9KTsKICAg ICAgIH0pOworCiAgICAgfSk7CiAgIH0pOwogCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L3NxbGVkaXRvci9pc19uZXdfdHJhbnNhY3Rpb25fcmVxdWlyZWRfc3BlYy5qcyBi L3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL2lzX25ld190cmFuc2FjdGlvbl9y ZXF1aXJlZF9zcGVjLmpzCmluZGV4IGQzMjM3MDBkLi45N2QxYmM1MiAxMDA2NDQKLS0tIGEvd2Vi L3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3IvaXNfbmV3X3RyYW5zYWN0aW9uX3JlcXVp cmVkX3NwZWMuanMKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3IvaXNf bmV3X3RyYW5zYWN0aW9uX3JlcXVpcmVkX3NwZWMuanMKQEAgLTE5LDcgKzE5LDcgQEAgZGVzY3Jp YmUoJyNpc19uZXdfdHJhbnNhY3Rpb25fcmVxdWlyZWQnLCAoKSA9PiB7CiAgIH0pOwogCiAgIGRl c2NyaWJlKCd3aGVuIHN0YXR1cyBpcyA0MDQnLCAoKSA9PiB7Ci0gICAgZGVzY3JpYmUoJ3doZW4g cmVzcG9uc2VKU09OIGlzIG5vdCBwcmVzZW50JywgKCkgPT4geworICAgIGRlc2NyaWJlKCd3aGVu IGRhdGEgaXMgbm90IHByZXNlbnQnLCAoKSA9PiB7CiAgICAgICBpdCgnc2hvdWxkIHJldHVybiBm YWxzZScsICgpID0+IHsKICAgICAgICAgZXhwZWN0KGlzX25ld190cmFuc2FjdGlvbl9yZXF1aXJl ZCh7CiAgICAgICAgICAgc3RhdHVzOiA0MDQsCkBAIC0yNywyMiArMjcsMjIgQEAgZGVzY3JpYmUo JyNpc19uZXdfdHJhbnNhY3Rpb25fcmVxdWlyZWQnLCAoKSA9PiB7CiAgICAgICB9KTsKICAgICB9 KTsKIAotICAgIGRlc2NyaWJlKCd3aGVuIHJlc3BvbnNlSlNPTiBpcyBwcmVzZW50JywgKCkgPT4g ewotICAgICAgZGVzY3JpYmUoJ3doZW4gaW5mbyBpcyBub3QgcHJlc2VudCBpbnNpZGUgcmVzcG9u c2VKU09OJywgKCkgPT4geworICAgIGRlc2NyaWJlKCd3aGVuIGRhdGEgaXMgcHJlc2VudCcsICgp ID0+IHsKKyAgICAgIGRlc2NyaWJlKCd3aGVuIGluZm8gaXMgbm90IHByZXNlbnQgaW5zaWRlIGRh dGEnLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlJywgKCkgPT4gewog ICAgICAgICAgIGV4cGVjdChpc19uZXdfdHJhbnNhY3Rpb25fcmVxdWlyZWQoewogICAgICAgICAg ICAgc3RhdHVzOiA0MDQsCi0gICAgICAgICAgICByZXNwb25zZUpTT046IHt9LAorICAgICAgICAg ICAgZGF0YToge30sCiAgICAgICAgICAgfSkpLnRvQmVGYWxzeSgpOwogICAgICAgICB9KTsKICAg ICAgIH0pOwogCi0gICAgICBkZXNjcmliZSgnd2hlbiBpbmZvIGlzIHByZXNlbnQgaW5zaWRlIHJl c3BvbnNlSlNPTicsICgpID0+IHsKKyAgICAgIGRlc2NyaWJlKCd3aGVuIGluZm8gaXMgcHJlc2Vu dCBpbnNpZGUgZGF0YScsICgpID0+IHsKICAgICAgICAgZGVzY3JpYmUoJ3doZW4gaW5mbyB2YWx1 ZSBpcyBub3QgIkRBVEFHUklEX1RSQU5TQUNUSU9OX1JFUVVJUkVEIicsICgpID0+IHsKICAgICAg ICAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZScsICgpID0+IHsKICAgICAgICAgICAgIGV4cGVj dChpc19uZXdfdHJhbnNhY3Rpb25fcmVxdWlyZWQoewogICAgICAgICAgICAgICBzdGF0dXM6IDQw NCwKLSAgICAgICAgICAgICAgcmVzcG9uc2VKU09OOiB7CisgICAgICAgICAgICAgIGRhdGE6IHsK ICAgICAgICAgICAgICAgICBpbmZvOiAnc29tZSBpbmZvcm1hdGlvbicsCiAgICAgICAgICAgICAg IH0sCiAgICAgICAgICAgICB9KSkudG9CZShmYWxzZSk7CkBAIC01Myw3ICs1Myw3IEBAIGRlc2Ny aWJlKCcjaXNfbmV3X3RyYW5zYWN0aW9uX3JlcXVpcmVkJywgKCkgPT4gewogICAgICAgICAgIGl0 KCdzaG91bGQgcmV0dXJuIGZhbHNlJywgKCkgPT4gewogICAgICAgICAgICAgZXhwZWN0KGlzX25l d190cmFuc2FjdGlvbl9yZXF1aXJlZCh7CiAgICAgICAgICAgICAgIHN0YXR1czogNDA0LAotICAg ICAgICAgICAgICByZXNwb25zZUpTT046IHsKKyAgICAgICAgICAgICAgZGF0YTogewogICAgICAg ICAgICAgICAgIGluZm86ICdEQVRBR1JJRF9UUkFOU0FDVElPTl9SRVFVSVJFRCcsCiAgICAgICAg ICAgICAgIH0sCiAgICAgICAgICAgICB9KSkudG9CZSh0cnVlKTsK --000000000000b12bef0567de1279--