Blog  |  Support  |  Forums

Search Results for 'script manager'

Tap Forms – Organizer Database App for Mac, iPhone, and iPad Forums Search Search Results for 'script manager'

Viewing 15 results - 31 through 45 (of 64 total)
  • Author
    Search Results
  • cf
    Participant

    Here’s an example of a script that will cause this:

    https://raw.githubusercontent.com/cfilipov/tfscripts/master/cheerio.js

    You can try copy-pasting the contents of that script directly in the TapForms script editor and it will beach ball forever. It’s possible if I waited long enough whatever was blocking the main thread would finish but after waiting a long time I just killed tap forms (which of course does not save the script). If I had to guess it’s the syntax parsing of the js causing the hang.

    As a workaround I used Sam’s script manager to download the script and add it without using the editor UI. This works for getting the script in tap forms and it’s runnable, however, if you try to open the script to edit/view it will also hang just like before.

    #43947
    Sam Moffatt
    Participant

    Sometimes you can use Google to search the site (e.g. https://www.google.com/search?client=safari&rls=en&q=site:www.tapforms.com/forums+number+formatting&ie=UTF-8&oe=UTF-8) to find stuff.

    If you have a simple return value in your script field (e.g. you return 150 or 150.5) if you set the format of the field to number, you can use the Tap Forms field formatting options to change the number of decimal places to be two.

    If you need to format in Javascript, I made a port of a Javascript sprintf implementation as a part of the Script Manager stuff or you can directly grab it from GitHub. This adds an sprintf function you can use to format numbers in Javascript as a part of a larger string formatter.

    #43930

    In reply to: If and

    Victor Warner
    Participant

    Sam,

    Thank you very much and for the revised code. At first (other than the first console.log) I was still getting “undefined”.

    Then realised that the if statement is the wrong way around for the if part of the if/else:

    if (company_name == null)

    statement the code that follows should not be for the company for the individual.

    After this it works fine.

    Thank you again. I will have to explore your Script Manager Form Logger

    #43927

    In reply to: If and

    Sam Moffatt
    Participant

    I think what might be happening is that you’re getting tricked up by Javascript variable scope, it doesn’t feel right but you’re declaring the Dear_Name and Email_to_send_invoice inside the if statement. I would personally probably declare these at the top and maybe put a sentinel value in:

    // Return values
    var Dear_Name = "Placeholder";
    var Email_to_send_invoice = "test@example.com";
    

    This would then go to validate that they’re being overwritten properly. I don’t think that’s your problem here but it’s an approach I’d take as a first pass.

    The second pass is rewriting so that the branches are a little more clear. You’re setting up a bunch of variables at the top of the script and then using a smaller if statement at the bottom so it’s hard to know which statements belong to the block. My next step is a rewrite to try to group the variables together:

    // Return values
    var Dear_Name = "Placeholder";
    var Email_to_send_invoice = "test@example.com";
    
    // Form ID
    var client_contact_details_id = 'fld-c53e48e48e3a40c7a5656ab92f39ecc9';
    var client_first_name_and_email_address_details = record.getFieldValue(client_contact_details_id)
    
    //Company details
    // company name
    var company_name_id = 'fld-a3300e3db044421598ae171c0a2d4834';
    var company_name = client_first_name_and_email_address_details.getFieldValue(company_name_id);
    
    console.log(company_name);
    
    if (company_name == null) {
        // first name of company contact
        var first_name_company_contact_id = 'fld-24ee4dae33d941bf81e1667853a7a949';
        var first_name_company_contact = client_first_name_and_email_address_details.getFieldValue(first_name_company_contact_id);
    
        // email address of company contact
        var email_company_contact_id = 'fld-8cfa7613f04f4a8b82652bc27f3c05df';
        var email_company = client_first_name_and_email_address_details.getFieldValue(email_company_contact_id);
    
        Dear_Name = first_name_company_contact;
        Email_to_send_invoice = email_company;
    } else {
        //Individual details
        // first name of individual
        var first_name_id = 'fld-45599a4f0a6342d8973faed53dfbfed8';
        var first_name = client_first_name_and_email_address_details.getFieldValue(first_name_id);
    
        // Email address of individual
        var email_id = 'fld-8f9a928a7d554527b4127ef811136210';
        var email_individual = client_first_name_and_email_address_details.getFieldValue(email_id);
    
        Dear_Name = first_name;
        Email_to_send_invoice = email_individual;
    }
    
    console.log(Dear_Name + " " + Email_to_send_invoice);
    

    There was some dead code at the top that I eliminated along the way which makes it a little easier to follow.

    I put in a console.log(company_name) to see what is in that variable so I would know what pathway to take. You’ve got a couple of the console.log statements but I’d probably beef it up to make sure what you get back from getFieldValue is set to a value.

    The last step is to make sure all of the field ID’s make sense. You’re not getting any runtime errors so the client_first_name_and_email_address_details field is set to a correct value but I’d double check the other ID fields. It’s easy to accidentally hook up the wrong fields (in fact I have it on video!) so it never hurts to go back and double check. Keep in mind that Tap Forms won’t give you an error if you give it a field ID that isn’t set in the record, it’ll return undefined. One other trick I have here is that in my Script Manager is a Form Logger that can output variables similar to the Tap Form’s Script Editor but prefixed with the form name as well, e.g.:

    // Boxes
    var boxes_formID = "frm-8ba92c77b5e8476a987945f40ff2b41a";
    var boxes__title_fldID = "fld-e289240daccc40409d75aee26493110c"; // text
    var boxes__box_id_fldID = "fld-f25492cf56384369b278f7ea41ee258f"; // text
    var boxes__note_fldID = "fld-69754dee7e9247e0b3087e2526881626"; // note
    var boxes__dimensions_fldID = "fld-3e5e30f1d352495f989cc0dc1b306128"; // text
    var boxes__box_type_fldID = "fld-97b2ab2bdbb1400d9384c7634e7c6d48"; // text
    var boxes__box_photos_fldID = "fld-72a520cff50a4bbd92f1e8ff6eec91db"; // photo
    var boxes__box_is_full_fldID = "fld-c824d1ff2ced4b948b5907e0a4804bca"; // check_mark
    var boxes__purchases_fldID = "fld-482c4f5c71ba4cd7a06c32d1c1d7d983"; // form
    var boxes__containing_box_fldID = "fld-fe868108cdd844d895ea982e820b346c"; // text
    var boxes__boxes_fldID = "fld-74466a4b96dc43b4bcbe153646b76911"; // form
    var boxes__tracking_number_fldID = "fld-54af5c1e20e14d20a7c82a40679a2a8a"; // text
    var boxes__shipments_in_box_fldID = "fld-bc84b43e3cf649cdb27e4085b401aa2b"; // form
    

    It makes it clear which field a variable is from because I ended up running into situations where it was hard to keep track of the forms for which a field applied. It also includes the field type as an extra hint which is sometimes useful to be reminded about.

    Sam Moffatt
    Participant

    If you were to aim to optimise the script, I’d probably want to have a map of PDF name to Tap Forms record ID. You can do a retrieve of a record by key/record ID via the script so if you precomputed a map of these keys or used the record ID import mode for Tap Forms to import the records then it’ll be a single retrieve for retrieving the record (form_record_id is the field in the CSV file which if present will be prepended with a rec- prefix and allow you to use form.getRecordWithId). The horse has likely already bolted for this one but something to consider for future projects, so let’s go ahead with the other suggestion: PDF attachment name in a script field.

    If you have the PDF attachment name in a script field, you could use the getRecordFromFormWithKey function in my script manager. The method signature looks like this:

    getRecordFromFormWithKey(formName, keyFieldId, keyValue, createIfMissing = true, earlyTermination = true, alwaysScanOnMiss = false)
    

    It creates in Javascript an index on a first pass and then does looks up from there (set earlyTermination to false and alwaysScanOnMiss to true). When you’re in a tight loop this should improve performance by doing the record loop once to build the index and then you can do a similar sort of roughly constant time retrieval for matching records. It’s still two loops but you remove the nesting and replace it with a more optimised data structure.

    First step is to create a new script field in your Contracts form and in it you want to add in the code we use to grab the filename from the PDF:

    record.getFieldValue('fld-e870153bd0a647c9823ca998c213d1fd')[0].filename;
    

    You’ll need to tick the “Update records when saving” option when creating that to populate the new field in all of your record. Essentially we’re just copying the filename as a new field. At this point you might also want to setup a search to look for records that have this field empty because that seems likely a bug. You’ll also need the field ID from the form panel (underneath the “Description” field) which I refer to later as “fld-scriptfieldidhere” that you’ll need to change.

    Using the code you provided as a basis, something like this should get you some of the way there:

    document.getFormNamed('Script Manager').runScriptNamed('getRecordFromFormWithKey');
    
    function Update_Records() {
    
        var csvForm = document.getFormNamed("csv");
    
        // Contracts
        var keyword_id = 'fld-a2126cbe512646e9ba144fb5a90b06dc';
        var pdf_id = 'fld-3ea77ccc18604174b722ece105965c44';
    
        // get use fixed field Id
        var csvPdf_id = 'fld-4bcd0f1fba5c4178bb8d10a112b17489';
        var csvKeyword_id = cvsForm.getFieldNamed('Keyword').getId();
    
        // Loop over all csv entries
        for (entry of csvForm.getRecords()) {
            // get pdf file name of CSV record
            var csvPdfName = entry.getFieldValue(csvPdf_id);
    
            // replace spaces with underscores
            csvPdfName = csvPdfName.replace('/ /g', '_');
            console.log("Processing: " + csvPdfName);
    
            contract = getRecordFromFormWithKey("Contracts", "fld-scriptfieldidhere", csvPdfName, false, false, true);
    
            if (!contract) {
                console.log('Unable to find matching PDF record: ' + csvPdfName);
                continue;
            }
    
            console.log("Found match: " + csvPdfName);
    
            // Update contract record
            var type_of_agreement_id = 'fld-6af499ed439143b297828643341d939b'
            contract.setFieldValue(type_of_agreement, 'Licensing Agreement')
    
            // This should “replace” keyword or keywords in a selected record
            var agreement_keywords_id = 'fld-a2126cbe512646e9ba144fb5a90b06dc';
            contract.setFieldValue(agreement_keywords_id, entry.getFieldValue(csvKeyword_id));
        }
        document.saveAllChanges();
    
        return 'done';
    }
    
    Update_Records();
    

    We’ve still got the outer loop that iterates over the incoming CSV form, the “Contracts” loop is removed and replaced with the call to getRecordsFromFormWithKey which internally does a loop for you but also builds an index in memory that should make subsequent accesses quicker. Watch your memory usage in Activity Monitor but you’ve got 64GB of RAM so we should be fine. The script is finding the record for you so the code that lived inside your inner for loop moves up a level though there is a check to see if we got a record back. I did some minor changes to set the keyword based on the CSV form as an example of how I think that to work.

    One thing I’ve done in scripts like this is put in a field for when it was processed to be able to skip it and also a counter to limit how many records are processed. This is useful for debugging scripts and being able to progressively execute it to get an idea of it:

    let minTime = new Date().getTime() - 86400000; // one day
    let processed = 0;
    let skipped = 0;
    
    for (...) {
    
        let previousDate = entry.getFieldValue('fld-previousdateidhere');
        if (previousDate && previousDate.getTime() > minTime) {
            skipped++;
            continue;
        }
    
        entry.setFieldValue('fld-previousdateidhere', new Date());
    
        processed++;
    
        if (processed > 100) {
            break;
        }
    
        // your existing for loop logic here
    }
    

    This uses an extra field and updates when the script is run to set it that way the next time you run the script, it skips past records it’s already “processed” so to speak and moves onto the next batch of 100. Instead of handling the date logic in code, you could also tie this into a saved search as well so that Tap Forms only gives you the candidate records.

    #42591

    In reply to: Updated Script Manager

    Max Heart
    Participant

    Sam, you are amazing. Just watched your video on the Script Manager. Thank you so much for all your work.
    Best, Max

    #42302

    In reply to: Script stopped working

    Sam Moffatt
    Participant

    Ok, I finally got around writing this up, you can grab the script from my GitHub and there is also sample execution code as well. If you use my updated Script Manager you can pull down everything. The GitHub page has an example of a confirmation dialog done async and also a text input. You can use a similar approach of wrapping your method in an async block and it should execute neatly.

    Here’s a little broader of an example:

    async function comboExample() {
    	let confirmed = await promptConfirm('Are you sure?');
    	console.log(confirmed);
    
    	let details = await promptText('Enter Value', 'Location:');
    	console.log(details);
    
    	Utils.alertWithMessage("Sample messsage", "Message text");
    	console.log('Sample message');
    }
    
    comboExample();
    
    #42298
    Sam Moffatt
    Participant

    A while back I posted a Script Manager form and here I am with an updated version. This version now adds an extra form for “Repository” which adds the ability to automatically download scripts and update them. To use it, import the archive attached to this post, go to the newly created “Repository” form and use the “Update Scripts” form script to download all of the scripts listed in my GitHub repo. It provides a level of automatic versioning so that if something goes wrong you can easily rollback to a previous version of the script.

    I’ve got a video on YouTube showing how to import it and some of the features of it. I have a plan to do some more to cover some of the scripts.

    Attachments:
    You must be logged in to view attached files.
    cf
    Participant

    I receive the following error when attempting to connect to my CouchDB server on the iOS app using SSL:

    Sign In Failed
    <br />
    <br />
    Please check the Server URL, User Name and Password to ensure they are correct.
    <br />
    <br />
    An SSL error has occurred and a secure connection to the server cannot be made.

    – iOS 13.6.1
    – Tap Forms. 5.3.15 (1019)
    – I am using a subdomain of mine and have verified that DNS resolves to the correct IP and that the Common Name and Subject Alternative Name both include the correct subdomain.mydomain.tld
    – I generated a self-sign certificate following the TF guide.
    – I checked the certificate using sslshopper and the keychain access validation tool and it validates in both
    – I properly installed the certificate and enabled the option “ENABLE FULL TRUST FOR ROOT CERTIFICATE” option in Certificate Trust Settings.
    – The username and password are definitely correct, I can successfully connect and sync to my CouchDB server on my local network without SSL using the same cridentials.
    – I followed the TF guide for setting up SSL with CouchDB.
    – This works 100% on my mac. I installed the same cert and using the same https URL pointing to my subdomain.
    – I understand iOS has stricter requirements for certificates but from what I can tell the certificate I generated based on your guide complies with all the requirements.
    – While Tap Forms on macOS works, I am not able to use chrome or safari to access https://mysubdomain.domain.tld:6984 on that same mac (I temporarily removed the require_valid_user to test this). However, I am able to curl that same URL and get a response.
    – When trying to access the CouchDB server via https as mentioned above, I can see log entries in the CouchDB log when using curl or the macOS app but no log entries when attempting to use safari, chrome or logging in with the iOS app so I suspect this is must have something to do with how the client is handling the cert and not some kind of server configuration.

    Captured logs: In the log. below I attempted to sign in twice.

    default	07:31:11.939249-0700	Tap Forms	-[WCSession xpcConnectionInterrupted]
    default	07:31:11.939295-0700	Tap Forms	-[WCXPCManager onqueue_reconnect]
    default	07:31:11.945604-0700	Tap Forms	-[WCSession handleApplicationContextWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:11.945770-0700	Tap Forms	-[WCSession handleUserInfoResultWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:11.945818-0700	Tap Forms	-[WCSession handleIncomingUserInfoWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:11.945863-0700	Tap Forms	-[WCSession handleFileResultWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:11.945904-0700	Tap Forms	-[WCSession handleIncomingFileWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:12.045043-0700	Tap Forms	-[WCSession handleSessionStateChanged:]_block_invoke <WCSessionState: 0x28340a8b0, reachable: NO, paired: YES, appInstalled: YES, complicationEnabled: NO(0), pairingID: 3DDD4A38-B0A8-497D-8199-3B1172831AF5, pairedDevicesPairingIDs: {("3DDD4A38-B0A8-497D-8199-3B1172831AF5")}, appInstallationID: A495A8DDB936932C56B1D32F8016696A>
    default	07:31:12.072384-0700	Tap Forms	-[WCSession xpcConnectionRestoredWithState:] <WCSessionState: 0x28340a8b0, reachable: NO, paired: YES, appInstalled: YES, complicationEnabled: NO(0), pairingID: 3DDD4A38-B0A8-497D-8199-3B1172831AF5, pairedDevicesPairingIDs: {("3DDD4A38-B0A8-497D-8199-3B1172831AF5")}, appInstallationID: A495A8DDB936932C56B1D32F8016696A>
    default	07:31:12.112706-0700	Tap Forms	-[WCSession didSessionStateChange:withChangeHandler:] no change
    default	07:31:12.113087-0700	Tap Forms	-[WCSession xpcConnectionRestoredWithState:]_block_invoke hasContentPending: YES
    default	07:31:12.147042-0700	Tap Forms	Read options: 1 -- URL: <private> -- purposeID: 94959B33-BA4E-4111-85AD-91430B3EDA41 -- claimID: A855BD08-F89B-45D9-B2D6-E7781D473B16
    default	07:31:12.162502-0700	Tap Forms	-[WCSession handleApplicationContextWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:12.162545-0700	Tap Forms	-[WCSession handleFileResultWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:12.162633-0700	Tap Forms	-[WCSession handleIncomingFileWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:12.162765-0700	Tap Forms	-[WCSession handleUserInfoResultWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:12.162909-0700	Tap Forms	-[WCSession handleIncomingUserInfoWithPairingID:] 3DDD4A38-B0A8-497D-8199-3B1172831AF5
    default	07:31:12.174743-0700	Tap Forms	Read options: 1 -- URL: <private> -- purposeID: 64E04645-7D92-4471-B44F-288C0B215FA7 -- claimID: E559DE1C-C3FB-435C-A061-CA32CE0EF77A
    default	07:31:12.184688-0700	Tap Forms	Claim 4D65B7C6-973E-4544-B03E-AD790CB97F91 granted in client
    default	07:31:12.184729-0700	Tap Forms	Claim 4D65B7C6-973E-4544-B03E-AD790CB97F91 invoked in client
    default	07:31:12.188256-0700	Tap Forms	Read options: 1 -- URL: <private> -- purposeID: 90AA6368-D20B-4CAD-88AD-B4DC4AB51115 -- claimID: 7493B968-F3BF-4BF8-946D-43974F309D2B
    default	07:31:12.203660-0700	Tap Forms	Claim 9E29AF99-0202-4665-BF4B-CBF87D0C608A granted in client
    default	07:31:12.203702-0700	Tap Forms	Claim 9E29AF99-0202-4665-BF4B-CBF87D0C608A invoked in client
    default	07:31:12.203979-0700	Tap Forms	Read options: 1 -- URL: <private> -- purposeID: 94959B33-BA4E-4111-85AD-91430B3EDA41 -- claimID: 561530B9-9457-4BD3-A164-ACA8C95B845E
    default	07:31:12.214061-0700	Tap Forms	Claim 561530B9-9457-4BD3-A164-ACA8C95B845E granted in client
    default	07:31:12.214219-0700	Tap Forms	Claim 561530B9-9457-4BD3-A164-ACA8C95B845E invoked in client
    default	07:31:12.594999-0700	Tap Forms	app did resume for engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:31:12.595041-0700	Tap Forms	HTHangEventCreate: HangTracing is disabled. Not creating a new event.
    default	07:31:12.595155-0700	Tap Forms	applicationDidBecomeActive
    default	07:31:12.595243-0700	Tap Forms	-[WCSession activateSession]_block_invoke
    error	07:31:12.595285-0700	Tap Forms	already in progress or activated
    default	07:31:12.596406-0700	Tap Forms	-[WCSession sendMessage:replyHandler:errorHandler:]_block_invoke hasReplyHandler: NO, hasErrorHandler: NO
    default	07:31:12.596667-0700	Tap Forms	document is handling application becoming active: <TFDatabaseDocument: 0x12df1af20> fileURL: file:///private/var/mobile/Containers/Shared/AppGroup/340FB03B-705B-466C-82A6-D242C45BF3CF/Personal.tapforms/ documentState: [Normal]
    default	07:31:12.596801-0700	Tap Forms	document will register as file presenter if necessary on main thread: <TFDatabaseDocument: 0x12df1af20> fileURL: file:///private/var/mobile/Containers/Shared/AppGroup/340FB03B-705B-466C-82A6-D242C45BF3CF/Personal.tapforms/ documentState: [Normal]
    default	07:31:12.596911-0700	Tap Forms	app did become active for engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:31:12.598737-0700	Tap Forms	document running file presenter registration block on main thread: <TFDatabaseDocument: 0x12df1af20> fileURL: file:///private/var/mobile/Containers/Shared/AppGroup/340FB03B-705B-466C-82A6-D242C45BF3CF/Personal.tapforms/ documentState: [Normal]
    default	07:31:12.599553-0700	Tap Forms	registering document as file presenter: <TFDatabaseDocument: 0x12df1af20> fileURL: file:///private/var/mobile/Containers/Shared/AppGroup/340FB03B-705B-466C-82A6-D242C45BF3CF/Personal.tapforms/ documentState: [Normal]
    default	07:31:12.599613-0700	Tap Forms	Adding presenter 064E0BDD-B381-4DF9-AFA1-EFD6E0DC5B44 for URL: <private>
    default	07:31:18.055706-0700	Tap Forms	removing all entries config 0x283a18280
    default	07:31:18.057444-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> resuming, QOS(0x21) Voucher <private>
    default	07:31:18.057521-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> {strength 0, tls 4, ct 0, sub 0, sig 1, ciphers 0, bundle 0, builtin 0}
    default	07:31:18.057605-0700	Tap Forms	Connection 10: enabling TLS
    default	07:31:18.058480-0700	Tap Forms	Connection 10: starting, TC(0x0)
    default	07:31:18.058526-0700	Tap Forms	[C10 C352E530-393F-4E57-A0D4-C9655444BB9C Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] start
    default	07:31:18.059005-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C10] reporting state preparing
    default	07:31:18.060590-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> setting up Connection 10
    default	07:31:18.064728-0700	Tap Forms	tcp_output [C10.1:3] flags= seq=1702682173, ack=0, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=1702682173
    default	07:31:18.142371-0700	Tap Forms	tcp_input [C10.1:3] flags= seq=3104623607, ack=1702682174, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=1702682173
    default	07:31:18.142417-0700	Tap Forms	nw_flow_connected [C10.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Transport protocol connected
    default	07:31:18.142601-0700	Tap Forms	boringssl_context_set_handshake_config(1471) [0x12f4185d0] set tls_handshake_config_standard
    default	07:31:18.142642-0700	Tap Forms	boringssl_context_set_min_version(324) [0x12f4185d0] set 0x0301
    default	07:31:18.142678-0700	Tap Forms	boringssl_context_set_max_version(308) [0x12f4185d0] set 0x0304
    default	07:31:18.142765-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [0x12f4185d0] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:31:18.142986-0700	Tap Forms	boringssl_context_set_remote_address(2555) [0x12f4185d0] Saving remote IPv4 address
    default	07:31:18.143029-0700	Tap Forms	boringssl_session_install_association_state(1262) [0x12f4185d0] Client session cache miss
    default	07:31:18.143069-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [0x12f4185d0] SNI <private>
    default	07:31:18.143115-0700	Tap Forms	boringssl_context_set_min_version(324) [C10.1:2][0x12f4185d0] set 0x0301
    default	07:31:18.143177-0700	Tap Forms	boringssl_context_set_fallback(374) [C10.1:2][0x12f4185d0] set false
    default	07:31:18.143229-0700	Tap Forms	boringssl_context_set_session_ticket_enabled(440) [C10.1:2][0x12f4185d0] set false
    default	07:31:18.143513-0700	Tap Forms	boringssl_context_set_false_start(410) [C10.1:2][0x12f4185d0] set false
    default	07:31:18.143556-0700	Tap Forms	boringssl_context_set_enforce_ev(400) [C10.1:2][0x12f4185d0] set false
    default	07:31:18.143599-0700	Tap Forms	boringssl_context_set_ats_enforced(1285) [C10.1:2][0x12f4185d0] set false
    default	07:31:18.143645-0700	Tap Forms	boringssl_context_set_ats_minimum_rsa_key_size(1294) [C10.1:2][0x12f4185d0] set 0
    default	07:31:18.143680-0700	Tap Forms	boringssl_context_set_ats_minimum_ecdsa_key_size(1303) [C10.1:2][0x12f4185d0] set 0
    default	07:31:18.143769-0700	Tap Forms	boringssl_context_set_ats_minimum_signature_algorithm(1313) [C10.1:2][0x12f4185d0] set 0
    default	07:31:18.143845-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [C10.1:2][0x12f4185d0] SNI <private>
    default	07:31:18.143945-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [C10.1:2][0x12f4185d0] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:31:18.144000-0700	Tap Forms	nw_protocol_boringssl_begin_connection(497) [C10.1:2][0x12f4185d0] early data disabled
    default	07:31:18.144046-0700	Tap Forms	boringssl_context_info_handler(1970) [C10.1:2][0x12f4185d0] Client handshake started
    default	07:31:18.144093-0700	Tap Forms	boringssl_context_message_handler(2258) [C10.1:2][0x12f4185d0] Writing SSL3_RT_HANDSHAKE 512 bytes
    default	07:31:18.144144-0700	Tap Forms	boringssl_context_info_handler(1983) [C10.1:2][0x12f4185d0] Client handshake state: TLS client enter_early_data
    default	07:31:18.144188-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C10.1:2][0x12f4185d0] Adding message(1)
    default	07:31:18.144490-0700	Tap Forms	boringssl_context_info_handler(1983) [C10.1:2][0x12f4185d0] Client handshake state: TLS client read_server_hello
    default	07:31:18.144536-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C10.1:2][0x12f4185d0] Adding message(2)
    default	07:31:18.144579-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C10.1:2][0x12f4185d0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.144634-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C10.1:2][0x12f4185d0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.144937-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C10.1:2][0x12f4185d0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.144980-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C10.1:2][0x12f4185d0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.153583-0700	Tap Forms	tcp_input [C10.1:3] flags=[F.] seq=3104623608, ack=1702682691, win=2050 state=ESTABLISHED rcv_nxt=3104623608, snd_una=1702682691
    default	07:31:18.153645-0700	Tap Forms	nw_protocol_tcp_log_summary [C10.1:3] 
    	[269F7609-F339-44BD-84CF-DDF75B9191C1 <private>:61957<-><private>:6984]
    	Init: 1, Conn_Time: 81.858ms, Syn's: 1, WR_T: 0/0, RD_T: 0/0, TFO: 0/0/0, ECN: 0/0/0, TS: 1
    	RTT_Cache: none, rtt_upd: 2, rtt: 72.625ms, rtt_var: 49.500ms rtt_nc: 72.625ms, rtt_var_nc: 49.500ms
    default	07:31:18.153723-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C10.1:2][0x12f4185d0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.153773-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C10.1:2][0x12f4185d0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.154021-0700	Tap Forms	nw_protocol_boringssl_input_finished(1700) [C10.1:2][0x12f4185d0] state: 1
    default	07:31:18.154064-0700	Tap Forms	nw_protocol_boringssl_error(1677) [C10.1:2][0x12f4185d0] Lower protocol stack error during TLS handshake: -9816
    default	07:31:18.154314-0700	Tap Forms	nw_flow_disconnected [C10.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Output protocol disconnected
    default	07:31:18.154432-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1012) [C10.1:2][0x12f4185d0] nw_protocol_boringssl_remove_input_handler forced true
    error	07:31:18.154670-0700	Tap Forms	tcp_output [C10.1:3] flags=[R.] seq=1702682691, ack=3104623609, win=1029 state=CLOSED rcv_nxt=3104623609, snd_una=1702682691
    default	07:31:18.154747-0700	Tap Forms	tcp_close [C10.1:3] TCP Packets:
    <private>
    default	07:31:18.154793-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1030) [C10.1:2][0x12f4185d0] Transferring nw_protocol_boringssl_t handle back into ARC for autorelease
    default	07:31:18.155710-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C10] reporting state failed error server closed session with no notification
    error	07:31:18.155755-0700	Tap Forms	Connection 10: received failure notification
    error	07:31:18.155847-0700	Tap Forms	Connection 10: failed to connect 3:-9816, reason -1
    error	07:31:18.155889-0700	Tap Forms	Connection 10: encountered error(3:-9816)
    default	07:31:18.155925-0700	Tap Forms	Connection 10: is being canceled
    default	07:31:18.155968-0700	Tap Forms	Connection 10: summary for unused connection {protocol="(null)", domain_lookup_duration_ms=0, connect_duration_ms=0, secure_connection_duration_ms=0, idle_duration_ms=0}
    default	07:31:18.156177-0700	Tap Forms	[C10 C352E530-393F-4E57-A0D4-C9655444BB9C Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancel
    default	07:31:18.156220-0700	Tap Forms	[C10 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancelled
    default	07:31:18.156266-0700	Tap Forms	0.000s [C10 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:31:18.156311-0700	Tap Forms	0.000s [C10 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:31:18.156474-0700	Tap Forms	0.000s [C10 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:start_dns
    default	07:31:18.156517-0700	Tap Forms	0.003s [C10 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:receive_dns
    default	07:31:18.156645-0700	Tap Forms	0.003s [C10.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61957<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:31:18.156882-0700	Tap Forms	0.003s [C10.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61957<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:31:18.156936-0700	Tap Forms	0.003s [C10.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61957<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_nexus
    default	07:31:18.156989-0700	Tap Forms	0.004s [C10.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61957<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:receive_nexus
    default	07:31:18.157090-0700	Tap Forms	0.005s [C10.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61957<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_connect
    default	07:31:18.157139-0700	Tap Forms	0.087s [C10.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61957<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:31:18.157188-0700	Tap Forms	0.087s [C10 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:31:18.157324-0700	Tap Forms	0.097s [C10.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61957<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect server closed session with no notification
    default	07:31:18.157371-0700	Tap Forms	0.097s [C10 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect
    default	07:31:18.157414-0700	Tap Forms	0.097s [C10] path:cancel
    default	07:31:18.157711-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C10] reporting state cancelled error server closed session with no notification
    default	07:31:18.157833-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> can retry(Y) with reason(5) for error [3:-9816]
    default	07:31:18.158215-0700	Tap Forms	Connection 11: enabling TLS
    default	07:31:18.158348-0700	Tap Forms	Connection 11: starting, TC(0x0)
    default	07:31:18.158432-0700	Tap Forms	[C11 05F5F5BD-0768-4B2B-AE73-4698581CA899 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] start
    default	07:31:18.158818-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C11] reporting state preparing
    default	07:31:18.159734-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> setting up Connection 11
    default	07:31:18.162724-0700	Tap Forms	tcp_output [C11.1:3] flags= seq=3682664847, ack=0, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=3682664847
    default	07:31:18.168654-0700	Tap Forms	tcp_input [C11.1:3] flags= seq=2849677815, ack=3682664848, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=3682664847
    default	07:31:18.168704-0700	Tap Forms	nw_flow_connected [C11.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Transport protocol connected
    default	07:31:18.169229-0700	Tap Forms	boringssl_context_set_handshake_config(1471) [0x12f51a1c0] set tls_handshake_config_standard
    default	07:31:18.169274-0700	Tap Forms	boringssl_context_set_min_version(324) [0x12f51a1c0] set 0x0301
    default	07:31:18.169363-0700	Tap Forms	boringssl_context_set_max_version(308) [0x12f51a1c0] set 0x0304
    default	07:31:18.169454-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [0x12f51a1c0] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:31:18.169578-0700	Tap Forms	boringssl_context_set_remote_address(2555) [0x12f51a1c0] Saving remote IPv4 address
    default	07:31:18.169617-0700	Tap Forms	boringssl_session_install_association_state(1262) [0x12f51a1c0] Client session cache miss
    default	07:31:18.169667-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [0x12f51a1c0] SNI <private>
    default	07:31:18.169919-0700	Tap Forms	boringssl_context_set_min_version(324) [C11.1:2][0x12f51a1c0] set 0x0301
    default	07:31:18.169964-0700	Tap Forms	boringssl_context_set_fallback(374) [C11.1:2][0x12f51a1c0] set true
    default	07:31:18.170006-0700	Tap Forms	boringssl_context_set_session_ticket_enabled(440) [C11.1:2][0x12f51a1c0] set false
    default	07:31:18.170049-0700	Tap Forms	boringssl_context_set_false_start(410) [C11.1:2][0x12f51a1c0] set false
    default	07:31:18.170093-0700	Tap Forms	boringssl_context_set_enforce_ev(400) [C11.1:2][0x12f51a1c0] set false
    default	07:31:18.170134-0700	Tap Forms	boringssl_context_set_ats_enforced(1285) [C11.1:2][0x12f51a1c0] set false
    default	07:31:18.170176-0700	Tap Forms	boringssl_context_set_ats_minimum_rsa_key_size(1294) [C11.1:2][0x12f51a1c0] set 0
    default	07:31:18.170219-0700	Tap Forms	boringssl_context_set_ats_minimum_ecdsa_key_size(1303) [C11.1:2][0x12f51a1c0] set 0
    default	07:31:18.170263-0700	Tap Forms	boringssl_context_set_ats_minimum_signature_algorithm(1313) [C11.1:2][0x12f51a1c0] set 0
    default	07:31:18.170424-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [C11.1:2][0x12f51a1c0] SNI <private>
    default	07:31:18.170511-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [C11.1:2][0x12f51a1c0] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:31:18.170638-0700	Tap Forms	nw_protocol_boringssl_begin_connection(497) [C11.1:2][0x12f51a1c0] early data disabled
    default	07:31:18.170676-0700	Tap Forms	boringssl_context_info_handler(1970) [C11.1:2][0x12f51a1c0] Client handshake started
    default	07:31:18.170722-0700	Tap Forms	boringssl_context_message_handler(2258) [C11.1:2][0x12f51a1c0] Writing SSL3_RT_HANDSHAKE 512 bytes
    default	07:31:18.170763-0700	Tap Forms	boringssl_context_info_handler(1983) [C11.1:2][0x12f51a1c0] Client handshake state: TLS client enter_early_data
    default	07:31:18.170805-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C11.1:2][0x12f51a1c0] Adding message(1)
    default	07:31:18.170840-0700	Tap Forms	boringssl_context_info_handler(1983) [C11.1:2][0x12f51a1c0] Client handshake state: TLS client read_server_hello
    default	07:31:18.170881-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C11.1:2][0x12f51a1c0] Adding message(2)
    default	07:31:18.170926-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C11.1:2][0x12f51a1c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.170973-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C11.1:2][0x12f51a1c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.171323-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C11.1:2][0x12f51a1c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.171379-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C11.1:2][0x12f51a1c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.176779-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C11.1:2][0x12f51a1c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.176879-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C11.1:2][0x12f51a1c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.177890-0700	Tap Forms	tcp_input [C11.1:3] flags=[F.] seq=2849677816, ack=3682665365, win=2050 state=ESTABLISHED rcv_nxt=2849677816, snd_una=3682665365
    default	07:31:18.177998-0700	Tap Forms	nw_protocol_tcp_log_summary [C11.1:3] 
    	[CF3DF617-D5C2-43B1-A98D-2C43D5FB106C <private>:61959<-><private>:6984]
    	Init: 1, Conn_Time: 7.007ms, Syn's: 1, WR_T: 0/0, RD_T: 0/0, TFO: 0/0/0, ECN: 0/0/0, TS: 1
    	RTT_Cache: process, rtt_upd: 2, rtt: 57.531ms, rtt_var: 53.937ms rtt_nc: 7.250ms, rtt_var_nc: 3.125ms
    default	07:31:18.178129-0700	Tap Forms	nw_protocol_boringssl_input_finished(1700) [C11.1:2][0x12f51a1c0] state: 1
    default	07:31:18.178174-0700	Tap Forms	nw_protocol_boringssl_error(1677) [C11.1:2][0x12f51a1c0] Lower protocol stack error during TLS handshake: -9816
    default	07:31:18.178396-0700	Tap Forms	nw_flow_disconnected [C11.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Output protocol disconnected
    default	07:31:18.178488-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1012) [C11.1:2][0x12f51a1c0] nw_protocol_boringssl_remove_input_handler forced true
    error	07:31:18.178632-0700	Tap Forms	tcp_output [C11.1:3] flags=[R.] seq=3682665365, ack=2849677817, win=1029 state=CLOSED rcv_nxt=2849677817, snd_una=3682665365
    default	07:31:18.178677-0700	Tap Forms	tcp_close [C11.1:3] TCP Packets:
    <private>
    default	07:31:18.178719-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1030) [C11.1:2][0x12f51a1c0] Transferring nw_protocol_boringssl_t handle back into ARC for autorelease
    default	07:31:18.179233-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C11] reporting state failed error server closed session with no notification
    error	07:31:18.179392-0700	Tap Forms	Connection 11: received failure notification
    error	07:31:18.179478-0700	Tap Forms	Connection 11: failed to connect 3:-9816, reason -1
    error	07:31:18.179522-0700	Tap Forms	Connection 11: encountered error(3:-9816)
    default	07:31:18.179553-0700	Tap Forms	Connection 11: is being canceled
    default	07:31:18.179596-0700	Tap Forms	Connection 11: summary for unused connection {protocol="(null)", domain_lookup_duration_ms=0, connect_duration_ms=0, secure_connection_duration_ms=0, idle_duration_ms=0}
    default	07:31:18.179682-0700	Tap Forms	[C11 05F5F5BD-0768-4B2B-AE73-4698581CA899 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancel
    default	07:31:18.179853-0700	Tap Forms	[C11 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancelled
    default	07:31:18.179932-0700	Tap Forms	0.000s [C11 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:31:18.180017-0700	Tap Forms	0.000s [C11 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:31:18.180104-0700	Tap Forms	0.000s [C11 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:start_dns
    default	07:31:18.180149-0700	Tap Forms	0.001s [C11 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:receive_dns
    default	07:31:18.180192-0700	Tap Forms	0.001s [C11.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61959<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:31:18.180229-0700	Tap Forms	0.001s [C11.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61959<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:31:18.180269-0700	Tap Forms	0.001s [C11.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61959<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_nexus
    default	07:31:18.180457-0700	Tap Forms	0.002s [C11.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61959<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:receive_nexus
    default	07:31:18.180501-0700	Tap Forms	0.002s [C11.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61959<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_connect
    default	07:31:18.180635-0700	Tap Forms	0.010s [C11.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61959<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:31:18.180680-0700	Tap Forms	0.010s [C11 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:31:18.180885-0700	Tap Forms	0.022s [C11.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61959<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect server closed session with no notification
    default	07:31:18.180928-0700	Tap Forms	0.022s [C11 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect
    default	07:31:18.180972-0700	Tap Forms	0.022s [C11] path:cancel
    default	07:31:18.181927-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C11] reporting state cancelled error server closed session with no notification
    default	07:31:18.182013-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> can retry(Y) with reason(5) for error [3:-9816]
    default	07:31:18.182945-0700	Tap Forms	Connection 12: enabling TLS
    default	07:31:18.183031-0700	Tap Forms	Connection 12: starting, TC(0x0)
    default	07:31:18.183161-0700	Tap Forms	[C12 1E8A3C87-4436-4CBB-983E-3FE7E48F75FF Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] start
    default	07:31:18.183865-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C12] reporting state preparing
    default	07:31:18.184578-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> setting up Connection 12
    default	07:31:18.187119-0700	Tap Forms	tcp_output [C12.1:3] flags= seq=1628210247, ack=0, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=1628210247
    default	07:31:18.193156-0700	Tap Forms	tcp_input [C12.1:3] flags= seq=1825562283, ack=1628210248, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=1628210247
    default	07:31:18.193200-0700	Tap Forms	nw_flow_connected [C12.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Transport protocol connected
    default	07:31:18.193397-0700	Tap Forms	boringssl_context_set_handshake_config(1471) [0x12f4190c0] set tls_handshake_config_standard
    default	07:31:18.193439-0700	Tap Forms	boringssl_context_set_min_version(324) [0x12f4190c0] set 0x0301
    default	07:31:18.193481-0700	Tap Forms	boringssl_context_set_max_version(308) [0x12f4190c0] set 0x0304
    default	07:31:18.193526-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [0x12f4190c0] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:31:18.193573-0700	Tap Forms	boringssl_context_set_remote_address(2555) [0x12f4190c0] Saving remote IPv4 address
    default	07:31:18.193617-0700	Tap Forms	boringssl_session_install_association_state(1262) [0x12f4190c0] Client session cache miss
    default	07:31:18.193660-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [0x12f4190c0] SNI <private>
    default	07:31:18.193752-0700	Tap Forms	boringssl_context_set_max_version(308) [C12.1:2][0x12f4190c0] set 0x0301
    default	07:31:18.193800-0700	Tap Forms	boringssl_context_set_min_version(324) [C12.1:2][0x12f4190c0] set 0x0301
    default	07:31:18.193845-0700	Tap Forms	boringssl_context_set_fallback(374) [C12.1:2][0x12f4190c0] set true
    default	07:31:18.193912-0700	Tap Forms	boringssl_context_set_session_ticket_enabled(440) [C12.1:2][0x12f4190c0] set false
    default	07:31:18.193960-0700	Tap Forms	boringssl_context_set_false_start(410) [C12.1:2][0x12f4190c0] set false
    default	07:31:18.194061-0700	Tap Forms	boringssl_context_set_enforce_ev(400) [C12.1:2][0x12f4190c0] set false
    default	07:31:18.194108-0700	Tap Forms	boringssl_context_set_ats_enforced(1285) [C12.1:2][0x12f4190c0] set false
    default	07:31:18.194154-0700	Tap Forms	boringssl_context_set_ats_minimum_rsa_key_size(1294) [C12.1:2][0x12f4190c0] set 0
    default	07:31:18.194201-0700	Tap Forms	boringssl_context_set_ats_minimum_ecdsa_key_size(1303) [C12.1:2][0x12f4190c0] set 0
    default	07:31:18.194293-0700	Tap Forms	boringssl_context_set_ats_minimum_signature_algorithm(1313) [C12.1:2][0x12f4190c0] set 0
    default	07:31:18.194336-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [C12.1:2][0x12f4190c0] SNI <private>
    default	07:31:18.194386-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [C12.1:2][0x12f4190c0] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:31:18.194434-0700	Tap Forms	nw_protocol_boringssl_begin_connection(497) [C12.1:2][0x12f4190c0] early data disabled
    default	07:31:18.194483-0700	Tap Forms	boringssl_context_info_handler(1970) [C12.1:2][0x12f4190c0] Client handshake started
    default	07:31:18.194565-0700	Tap Forms	boringssl_context_message_handler(2258) [C12.1:2][0x12f4190c0] Writing SSL3_RT_HANDSHAKE 151 bytes
    default	07:31:18.194607-0700	Tap Forms	boringssl_context_info_handler(1983) [C12.1:2][0x12f4190c0] Client handshake state: TLS client enter_early_data
    default	07:31:18.194650-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C12.1:2][0x12f4190c0] Adding message(1)
    default	07:31:18.194685-0700	Tap Forms	boringssl_context_info_handler(1983) [C12.1:2][0x12f4190c0] Client handshake state: TLS client read_server_hello
    default	07:31:18.194727-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C12.1:2][0x12f4190c0] Adding message(2)
    default	07:31:18.194817-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C12.1:2][0x12f4190c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.194860-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C12.1:2][0x12f4190c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.194895-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C12.1:2][0x12f4190c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.194937-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C12.1:2][0x12f4190c0] Handshake incomplete: waiting for data to read [2]
    default	07:31:18.198592-0700	Tap Forms	boringssl_context_message_handler(2258) [C12.1:2][0x12f4190c0] Reading SSL3_RT_ALERT 2 bytes
    error	07:31:18.198643-0700	Tap Forms	boringssl_context_handle_fatal_alert(1873) [C12.1:2][0x12f4190c0] read alert, level: fatal, description: inappropriate fallback
    default	07:31:18.198832-0700	Tap Forms	boringssl_session_disconnect(504) [C12.1:2][0x12f4190c0] SSL_shutdown 1
    default	07:31:18.198985-0700	Tap Forms	nw_protocol_tcp_log_summary [C12.1:3] 
    	[D6777601-55C7-4409-A0BF-FD78B2987954 <private>:61960<-><private>:6984]
    	Init: 1, Conn_Time: 6.560ms, Syn's: 1, WR_T: 0/0, RD_T: 0/0, TFO: 0/0/0, ECN: 0/0/0, TS: 1
    	RTT_Cache: process, rtt_upd: 2, rtt: 56.781ms, rtt_var: 55.375ms rtt_nc: 5.750ms, rtt_var_nc: 2.750ms
    default	07:31:18.199074-0700	Tap Forms	nw_flow_disconnected [C12.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Output protocol disconnected
    error	07:31:18.199129-0700	Tap Forms	boringssl_session_handshake_incomplete(164) [C12.1:2][0x12f4190c0] SSL library error
    error	07:31:18.199174-0700	Tap Forms	boringssl_session_handshake_error_print(111) [C12.1:2][0x12f4190c0] 5087841224:error:1000043e:SSL routines:OPENSSL_internal:TLSV1_ALERT_INAPPROPRIATE_FALLBACK:/Library/Caches/com.apple.xbs/Sources/boringssl/boringssl-283.120.1/ssl/tls_record.cc:587:SSL alert number 86
    error	07:31:18.199315-0700	Tap Forms	nw_protocol_boringssl_handshake_negotiate_proceed(726) [C12.1:2][0x12f4190c0] handshake failed at state 12288
    default	07:31:18.199532-0700	Tap Forms	tcp_output [C12.1:3] flags=[F.] seq=1628210404, ack=1825562291, win=1029 state=FIN_WAIT_1 rcv_nxt=1825562291, snd_una=1628210404
    default	07:31:18.199583-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1012) [C12.1:2][0x12f4190c0] nw_protocol_boringssl_remove_input_handler forced true
    default	07:31:18.199628-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1030) [C12.1:2][0x12f4190c0] Transferring nw_protocol_boringssl_t handle back into ARC for autorelease
    default	07:31:18.200253-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C12] reporting state failed error handshake failed
    error	07:31:18.200391-0700	Tap Forms	Connection 12: received failure notification
    error	07:31:18.200537-0700	Tap Forms	Connection 12: failed to connect 3:-9858, reason -1
    error	07:31:18.200572-0700	Tap Forms	Connection 12: encountered error(3:-9858)
    default	07:31:18.200654-0700	Tap Forms	Connection 12: is being canceled
    default	07:31:18.200704-0700	Tap Forms	Connection 12: summary for unused connection {protocol="(null)", domain_lookup_duration_ms=0, connect_duration_ms=0, secure_connection_duration_ms=0, idle_duration_ms=0}
    default	07:31:18.200807-0700	Tap Forms	[C12 1E8A3C87-4436-4CBB-983E-3FE7E48F75FF Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancel
    default	07:31:18.200859-0700	Tap Forms	[C12 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancelled
    default	07:31:18.201003-0700	Tap Forms	0.000s [C12 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:31:18.201086-0700	Tap Forms	0.000s [C12 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:31:18.201189-0700	Tap Forms	0.000s [C12 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:start_dns
    default	07:31:18.201287-0700	Tap Forms	0.001s [C12 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:receive_dns
    default	07:31:18.201436-0700	Tap Forms	0.001s [C12.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61960<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:31:18.201533-0700	Tap Forms	0.001s [C12.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61960<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:31:18.201626-0700	Tap Forms	0.002s [C12.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61960<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_nexus
    default	07:31:18.201718-0700	Tap Forms	0.002s [C12.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61960<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:receive_nexus
    default	07:31:18.201821-0700	Tap Forms	0.002s [C12.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61960<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_connect
    default	07:31:18.201874-0700	Tap Forms	0.009s [C12.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61960<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:31:18.201924-0700	Tap Forms	0.009s [C12 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:31:18.202066-0700	Tap Forms	0.016s [C12.1 A87046FD-9CBA-441E-8896-82EFFC25B17E 192.168.4.40:61960<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect handshake failed
    default	07:31:18.202116-0700	Tap Forms	0.016s [C12 4AC1F552-4C6F-448C-B73E-76F81071EBB6 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect
    default	07:31:18.202163-0700	Tap Forms	0.016s [C12] path:cancel
    default	07:31:18.202693-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C12] reporting state cancelled error handshake failed
    default	07:31:18.202936-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> can retry(N) with reason(4) for error [3:-9858]
    error	07:31:18.203026-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> HTTP load failed, 0/0 bytes (error code: -1200 [3:-9858])
    default	07:31:18.203159-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> summary for task failure {transaction_duration_ms=143, response_status=0, connection=12, reused=1, request_start_ms=0, request_duration_ms=0, response_start_ms=0, response_duration_ms=0, request_bytes=0, response_bytes=0, cache_hit=0}
    default	07:31:18.203322-0700	Tap Forms	tcp_input [C12.1:3] flags=[F.] seq=1825562291, ack=1628210404, win=2056 state=FIN_WAIT_1 rcv_nxt=1825562291, snd_una=1628210404
    default	07:31:18.203388-0700	Tap Forms	tcp_output [C12.1:3] flags=[F.] seq=1628210404, ack=1825562292, win=1029 state=CLOSING rcv_nxt=1825562292, snd_una=1628210404
    error	07:31:18.203438-0700	Tap Forms	Task <59332729-15EB-482A-AFD1-98A37544C4DD>.<1> finished with error [-1200] Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={_kCFStreamErrorCodeKey=-9858, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, NSUnderlyingError=0x283476310 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9858, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9858}}, NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=<private>, NSErrorFailingURLStringKey=<private>, _kCFStreamErrorDomainKey=3}
    default	07:31:18.204864-0700	Tap Forms	tcp_input [C12.1:3] flags=[F.] seq=1825562291, ack=1628210405, win=2056 state=CLOSING rcv_nxt=1825562292, snd_una=1628210404
    default	07:31:19.224704-0700	Tap Forms	activate generator with style: TurnOn; activationCount: 0 -> 1; styleActivationCount: 0 -> 1; <UISelectionFeedbackGenerator: 0x280b30e60>
    default	07:31:19.224802-0700	Tap Forms	activate engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>, clientCount: 0 -> 1
    default	07:31:19.224848-0700	Tap Forms	activating engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:31:19.224900-0700	Tap Forms	engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0: state=3, numberOfClients=1, prewarmCount=0, _internal_isSuspended=0> state changed: Inactive -> Activating
    default	07:31:19.224951-0700	Tap Forms	starting core haptics engine for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:31:19.225004-0700	Tap Forms	CHHapticEngine.mm:2383:-[CHHapticEngine startWithCompletionHandler:]: Called on engine 0x28142fc00
    default	07:31:19.225109-0700	Tap Forms	CHHapticEngine.mm:2342:-[CHHapticEngine doStartWithCompletionHandler:]: Starting underlying Haptic Player
    default	07:31:19.225164-0700	Tap Forms	CHHapticEngine.mm:2129:-[CHHapticEngine updateEngineBehavior]: Setting player's behavior to 0x5
    default	07:31:19.225220-0700	Tap Forms	AVHapticPlayer.mm:618:-[AVHapticPlayer setBehavior:]: clientID: 0x1000719 behavior: 5
    default	07:31:19.225277-0700	Tap Forms	AVHapticPlayer.mm:930:-[AVHapticPlayer startRunningWithCompletionHandler:]: start running: clientID: 0x1000719
    default	07:31:19.225332-0700	Tap Forms	HapticClient.mm:283:-[HapticClient startRunning:]: Client 0x1000719 starting
    default	07:31:19.254628-0700	Tap Forms	core haptics engine STARTED for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:31:19.254801-0700	Tap Forms	engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0: state=4, numberOfClients=1, prewarmCount=0, _internal_isSuspended=0> state changed: Activating -> Running
    default	07:31:19.254885-0700	Tap Forms	CAReportingClient.mm:426:-[CAReportingClient startReporters:]: starting (
        7803955576833
    )
    default	07:31:19.255108-0700	Tap Forms	CAReportingClient.mm:470:-[CAReportingClient sendMessage:category:type:reporters:]: message {
        "startHapticEngine_SPI" = 1;
    }: (
        7803955576833
    )
    default	07:31:19.374178-0700	Tap Forms	deactivate generator with style: TurnOn; activationCount: 1 -> 0; styleActivationCount: 1 -> 0; <UISelectionFeedbackGenerator: 0x280b30e60>
    default	07:31:19.374284-0700	Tap Forms	deactivate engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>, clientCount: 1 -> 0
    default	07:31:19.374327-0700	Tap Forms	_internal_deactivateEngineIfPossible <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>, clientCount: 0, suspended: 0
    default	07:31:19.374375-0700	Tap Forms	_internal_teardownUnderlyingPlayerIfPossible <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:31:19.374423-0700	Tap Forms	engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0: state=5, numberOfClients=0, prewarmCount=0, _internal_isSuspended=0> state changed: Running -> Deactivating
    default	07:31:19.374471-0700	Tap Forms	CHHapticEngine.mm:2543:-[CHHapticEngine notifyWhenPlayersFinished:]: Called on engine 0x28142fc00 with finishedHandler 0x16affe6f8
    default	07:31:19.374520-0700	Tap Forms	AVHapticPlayer.mm:1014:-[AVHapticPlayer finishWithCompletionHandler:]: finish with comp handler: clientID: 0x1000719
    default	07:31:19.374567-0700	Tap Forms	HapticClient.mm:326:-[HapticClient finish:]: Client 0x1000719 finishing
    default	07:31:19.374634-0700	Tap Forms	HapticClient.mm:358:-[HapticClient finish:]: Client 0x1000719 done with finish
    default	07:31:19.386261-0700	Tap Forms	HapticClient.mm:1272:-[HapticClient clientCompletedWithError:]_block_invoke: Client-side finish completionCallback for client 0x1000719
    default	07:31:19.386751-0700	Tap Forms	core haptics engine finished for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:31:19.386795-0700	Tap Forms	stopping core haptics engine for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:31:19.386840-0700	Tap Forms	CHHapticEngine.mm:2522:-[CHHapticEngine stopWithCompletionHandler:]: Called on engine 0x28142fc00
    default	07:31:19.387166-0700	Tap Forms	CHHapticEngine.mm:2488:-[CHHapticEngine doStopWithCompletionHandler:]: Stopping underlying Haptic Player
    default	07:31:19.387213-0700	Tap Forms	_internal_deactivateEngineIfPossible <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0> tearedDown: 1
    default	07:31:19.387248-0700	Tap Forms	AVHapticPlayer.mm:991:-[AVHapticPlayer stopRunningWithCompletionHandler:]: stop running: clientID: 0x1000719
    default	07:31:19.387290-0700	Tap Forms	HapticClient.mm:312:-[HapticClient stopRunning:]: Client 0x1000719 stopping
    default	07:31:19.387376-0700	Tap Forms	engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0: state=0, numberOfClients=0, prewarmCount=0, _internal_isSuspended=0> state changed: Deactivating -> Inactive
    default	07:31:19.412879-0700	Tap Forms	HapticClient.mm:1272:-[HapticClient clientCompletedWithError:]_block_invoke: Client-side finish completionCallback for client 0x1000719
    default	07:31:19.420166-0700	Tap Forms	core haptics engine STOPPED for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:31:19.420361-0700	Tap Forms	CAReportingClient.mm:446:-[CAReportingClient stopReporters:]: stopping (
        7803955576833
    )
    default	07:31:19.420403-0700	Tap Forms	CAReportingClient.mm:470:-[CAReportingClient sendMessage:category:type:reporters:]: message {
        "session_duration" = "0.1664669513702393";
    }: (
        7803955576833
    )
    default	07:31:19.424911-0700	Tap Forms	CAReportingClient.mm:436:-[CAReportingClient startReporters:]_block_invoke: completed transaction
    default	07:31:48.192528-0700	Tap Forms	tcp_close [C12.1:3] TCP Packets:
    <private>
    default	07:32:24.129307-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> resuming, QOS(0x21) Voucher <private>
    default	07:32:24.130386-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> {strength 0, tls 4, ct 0, sub 0, sig 1, ciphers 0, bundle 0, builtin 0}
    default	07:32:24.131238-0700	Tap Forms	Connection 13: enabling TLS
    default	07:32:24.131284-0700	Tap Forms	Connection 13: starting, TC(0x0)
    default	07:32:24.131395-0700	Tap Forms	[C13 FE199C03-5EDD-4FB2-83E9-14788CD6525D Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] start
    default	07:32:24.132632-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C13] reporting state preparing
    default	07:32:24.133929-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> setting up Connection 13
    default	07:32:24.138242-0700	Tap Forms	tcp_output [C13.1:3] flags= seq=107099158, ack=0, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=107099158
    default	07:32:24.288898-0700	Tap Forms	tcp_input [C13.1:3] flags= seq=1973295567, ack=107099159, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=107099158
    default	07:32:24.289042-0700	Tap Forms	nw_flow_connected [C13.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Transport protocol connected
    default	07:32:24.289289-0700	Tap Forms	boringssl_context_set_handshake_config(1471) [0x12f32e580] set tls_handshake_config_standard
    default	07:32:24.289398-0700	Tap Forms	boringssl_context_set_min_version(324) [0x12f32e580] set 0x0301
    default	07:32:24.289458-0700	Tap Forms	boringssl_context_set_max_version(308) [0x12f32e580] set 0x0304
    default	07:32:24.289521-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [0x12f32e580] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:32:24.289582-0700	Tap Forms	boringssl_context_set_remote_address(2555) [0x12f32e580] Saving remote IPv4 address
    default	07:32:24.289638-0700	Tap Forms	boringssl_session_install_association_state(1262) [0x12f32e580] Client session cache miss
    default	07:32:24.289696-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [0x12f32e580] SNI <private>
    default	07:32:24.289755-0700	Tap Forms	boringssl_context_set_min_version(324) [C13.1:2][0x12f32e580] set 0x0301
    default	07:32:24.289813-0700	Tap Forms	boringssl_context_set_fallback(374) [C13.1:2][0x12f32e580] set false
    default	07:32:24.289870-0700	Tap Forms	boringssl_context_set_session_ticket_enabled(440) [C13.1:2][0x12f32e580] set false
    default	07:32:24.289927-0700	Tap Forms	boringssl_context_set_false_start(410) [C13.1:2][0x12f32e580] set false
    default	07:32:24.289985-0700	Tap Forms	boringssl_context_set_enforce_ev(400) [C13.1:2][0x12f32e580] set false
    default	07:32:24.290045-0700	Tap Forms	boringssl_context_set_ats_enforced(1285) [C13.1:2][0x12f32e580] set false
    default	07:32:24.290102-0700	Tap Forms	boringssl_context_set_ats_minimum_rsa_key_size(1294) [C13.1:2][0x12f32e580] set 0
    default	07:32:24.290153-0700	Tap Forms	boringssl_context_set_ats_minimum_ecdsa_key_size(1303) [C13.1:2][0x12f32e580] set 0
    default	07:32:24.290205-0700	Tap Forms	boringssl_context_set_ats_minimum_signature_algorithm(1313) [C13.1:2][0x12f32e580] set 0
    default	07:32:24.290261-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [C13.1:2][0x12f32e580] SNI <private>
    default	07:32:24.290319-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [C13.1:2][0x12f32e580] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:32:24.290380-0700	Tap Forms	nw_protocol_boringssl_begin_connection(497) [C13.1:2][0x12f32e580] early data disabled
    default	07:32:24.290463-0700	Tap Forms	boringssl_context_info_handler(1970) [C13.1:2][0x12f32e580] Client handshake started
    default	07:32:24.290616-0700	Tap Forms	boringssl_context_message_handler(2258) [C13.1:2][0x12f32e580] Writing SSL3_RT_HANDSHAKE 512 bytes
    default	07:32:24.290688-0700	Tap Forms	boringssl_context_info_handler(1983) [C13.1:2][0x12f32e580] Client handshake state: TLS client enter_early_data
    default	07:32:24.290751-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C13.1:2][0x12f32e580] Adding message(1)
    default	07:32:24.290988-0700	Tap Forms	boringssl_context_info_handler(1983) [C13.1:2][0x12f32e580] Client handshake state: TLS client read_server_hello
    default	07:32:24.291090-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C13.1:2][0x12f32e580] Adding message(2)
    default	07:32:24.291218-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C13.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.291291-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C13.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.291343-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C13.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.291400-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C13.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.304716-0700	Tap Forms	tcp_input [C13.1:3] flags=[F.] seq=1973295568, ack=107099676, win=2050 state=ESTABLISHED rcv_nxt=1973295568, snd_una=107099676
    default	07:32:24.305105-0700	Tap Forms	nw_protocol_tcp_log_summary [C13.1:3] 
    	[E5B054B0-884D-426B-B1B7-20A6F68B0D14 <private>:61974<-><private>:6984]
    	Init: 1, Conn_Time: 150.826ms, Syn's: 1, WR_T: 0/0, RD_T: 0/0, TFO: 0/0/0, ECN: 0/0/0, TS: 1
    	RTT_Cache: kernel, rtt_upd: 2, rtt: 59.375ms, rtt_var: 61.437ms rtt_nc: 132.875ms, rtt_var_nc: 90.500ms
    default	07:32:24.305701-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C13.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.305998-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C13.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.306365-0700	Tap Forms	nw_protocol_boringssl_input_finished(1700) [C13.1:2][0x12f32e580] state: 1
    default	07:32:24.307473-0700	Tap Forms	nw_protocol_boringssl_error(1677) [C13.1:2][0x12f32e580] Lower protocol stack error during TLS handshake: -9816
    default	07:32:24.308407-0700	Tap Forms	nw_flow_disconnected [C13.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Output protocol disconnected
    default	07:32:24.308568-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1012) [C13.1:2][0x12f32e580] nw_protocol_boringssl_remove_input_handler forced true
    error	07:32:24.309056-0700	Tap Forms	tcp_output [C13.1:3] flags=[R.] seq=107099676, ack=1973295569, win=1029 state=CLOSED rcv_nxt=1973295569, snd_una=107099676
    default	07:32:24.309529-0700	Tap Forms	tcp_close [C13.1:3] TCP Packets:
    <private>
    default	07:32:24.309659-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1030) [C13.1:2][0x12f32e580] Transferring nw_protocol_boringssl_t handle back into ARC for autorelease
    default	07:32:24.313263-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C13] reporting state failed error server closed session with no notification
    error	07:32:24.313338-0700	Tap Forms	Connection 13: received failure notification
    error	07:32:24.313716-0700	Tap Forms	Connection 13: failed to connect 3:-9816, reason -1
    error	07:32:24.313795-0700	Tap Forms	Connection 13: encountered error(3:-9816)
    default	07:32:24.313869-0700	Tap Forms	Connection 13: is being canceled
    default	07:32:24.313954-0700	Tap Forms	Connection 13: summary for unused connection {protocol="(null)", domain_lookup_duration_ms=0, connect_duration_ms=0, secure_connection_duration_ms=0, idle_duration_ms=0}
    default	07:32:24.314038-0700	Tap Forms	[C13 FE199C03-5EDD-4FB2-83E9-14788CD6525D Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancel
    default	07:32:24.314115-0700	Tap Forms	[C13 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancelled
    default	07:32:24.314280-0700	Tap Forms	0.000s [C13 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:32:24.314359-0700	Tap Forms	0.000s [C13 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:32:24.314440-0700	Tap Forms	0.001s [C13 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:start_dns
    default	07:32:24.314996-0700	Tap Forms	0.003s [C13 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:receive_dns
    default	07:32:24.315077-0700	Tap Forms	0.004s [C13.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61974<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:32:24.315157-0700	Tap Forms	0.004s [C13.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61974<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:32:24.315238-0700	Tap Forms	0.005s [C13.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61974<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_nexus
    default	07:32:24.315319-0700	Tap Forms	0.005s [C13.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61974<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:receive_nexus
    default	07:32:24.315398-0700	Tap Forms	0.006s [C13.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61974<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_connect
    default	07:32:24.315480-0700	Tap Forms	0.129s [C13 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:receive_dns
    default	07:32:24.315560-0700	Tap Forms	0.157s [C13.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61974<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:32:24.315639-0700	Tap Forms	0.157s [C13 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:32:24.315798-0700	Tap Forms	0.178s [C13.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61974<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect server closed session with no notification
    default	07:32:24.315949-0700	Tap Forms	0.179s [C13 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect
    default	07:32:24.316092-0700	Tap Forms	0.181s [C13] path:cancel
    default	07:32:24.316931-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C13] reporting state cancelled error server closed session with no notification
    default	07:32:24.317043-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> can retry(Y) with reason(5) for error [3:-9816]
    default	07:32:24.317614-0700	Tap Forms	Connection 14: enabling TLS
    default	07:32:24.317668-0700	Tap Forms	Connection 14: starting, TC(0x0)
    default	07:32:24.317724-0700	Tap Forms	[C14 84DD0D61-587D-4105-9168-F7E88DC08E0C Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] start
    default	07:32:24.318232-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C14] reporting state preparing
    default	07:32:24.318341-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> setting up Connection 14
    default	07:32:24.321671-0700	Tap Forms	tcp_output [C14.1:3] flags= seq=1490996717, ack=0, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=1490996717
    default	07:32:24.327688-0700	Tap Forms	tcp_input [C14.1:3] flags= seq=788864080, ack=1490996718, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=1490996717
    default	07:32:24.327750-0700	Tap Forms	nw_flow_connected [C14.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Transport protocol connected
    default	07:32:24.328003-0700	Tap Forms	boringssl_context_set_handshake_config(1471) [0x12f32e580] set tls_handshake_config_standard
    default	07:32:24.328051-0700	Tap Forms	boringssl_context_set_min_version(324) [0x12f32e580] set 0x0301
    default	07:32:24.328089-0700	Tap Forms	boringssl_context_set_max_version(308) [0x12f32e580] set 0x0304
    default	07:32:24.328136-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [0x12f32e580] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:32:24.328185-0700	Tap Forms	boringssl_context_set_remote_address(2555) [0x12f32e580] Saving remote IPv4 address
    default	07:32:24.328228-0700	Tap Forms	boringssl_session_install_association_state(1262) [0x12f32e580] Client session cache miss
    default	07:32:24.328274-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [0x12f32e580] SNI <private>
    default	07:32:24.328325-0700	Tap Forms	boringssl_context_set_min_version(324) [C14.1:2][0x12f32e580] set 0x0301
    default	07:32:24.328372-0700	Tap Forms	boringssl_context_set_fallback(374) [C14.1:2][0x12f32e580] set true
    default	07:32:24.328419-0700	Tap Forms	boringssl_context_set_session_ticket_enabled(440) [C14.1:2][0x12f32e580] set false
    default	07:32:24.328491-0700	Tap Forms	boringssl_context_set_false_start(410) [C14.1:2][0x12f32e580] set false
    default	07:32:24.328543-0700	Tap Forms	boringssl_context_set_enforce_ev(400) [C14.1:2][0x12f32e580] set false
    default	07:32:24.328583-0700	Tap Forms	boringssl_context_set_ats_enforced(1285) [C14.1:2][0x12f32e580] set false
    default	07:32:24.328630-0700	Tap Forms	boringssl_context_set_ats_minimum_rsa_key_size(1294) [C14.1:2][0x12f32e580] set 0
    default	07:32:24.328681-0700	Tap Forms	boringssl_context_set_ats_minimum_ecdsa_key_size(1303) [C14.1:2][0x12f32e580] set 0
    default	07:32:24.328727-0700	Tap Forms	boringssl_context_set_ats_minimum_signature_algorithm(1313) [C14.1:2][0x12f32e580] set 0
    default	07:32:24.328774-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [C14.1:2][0x12f32e580] SNI <private>
    default	07:32:24.328819-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [C14.1:2][0x12f32e580] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:32:24.328869-0700	Tap Forms	nw_protocol_boringssl_begin_connection(497) [C14.1:2][0x12f32e580] early data disabled
    default	07:32:24.328916-0700	Tap Forms	boringssl_context_info_handler(1970) [C14.1:2][0x12f32e580] Client handshake started
    default	07:32:24.329083-0700	Tap Forms	boringssl_context_message_handler(2258) [C14.1:2][0x12f32e580] Writing SSL3_RT_HANDSHAKE 512 bytes
    default	07:32:24.329199-0700	Tap Forms	boringssl_context_info_handler(1983) [C14.1:2][0x12f32e580] Client handshake state: TLS client enter_early_data
    default	07:32:24.329257-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C14.1:2][0x12f32e580] Adding message(1)
    default	07:32:24.329327-0700	Tap Forms	boringssl_context_info_handler(1983) [C14.1:2][0x12f32e580] Client handshake state: TLS client read_server_hello
    default	07:32:24.329401-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C14.1:2][0x12f32e580] Adding message(2)
    default	07:32:24.329451-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C14.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.329492-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C14.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.329540-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C14.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.329585-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C14.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.336381-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C14.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.336438-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C14.1:2][0x12f32e580] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.366421-0700	Tap Forms	tcp_input [C14.1:3] flags=[F.] seq=788864081, ack=1490997235, win=2050 state=ESTABLISHED rcv_nxt=788864081, snd_una=1490997235
    default	07:32:24.366544-0700	Tap Forms	nw_protocol_tcp_log_summary [C14.1:3] 
    	[128F5DD1-54C2-4E30-815F-B32EA4D48DB5 <private>:61975<-><private>:6984]
    	Init: 1, Conn_Time: 6.418ms, Syn's: 1, WR_T: 0/0, RD_T: 0/0, TFO: 0/0/0, ECN: 0/0/0, TS: 1
    	RTT_Cache: process, rtt_upd: 2, rtt: 42.875ms, rtt_var: 49.437ms rtt_nc: 6.125ms, rtt_var_nc: 2.500ms
    default	07:32:24.366705-0700	Tap Forms	nw_protocol_boringssl_input_finished(1700) [C14.1:2][0x12f32e580] state: 1
    default	07:32:24.366825-0700	Tap Forms	nw_protocol_boringssl_error(1677) [C14.1:2][0x12f32e580] Lower protocol stack error during TLS handshake: -9816
    default	07:32:24.367196-0700	Tap Forms	nw_flow_disconnected [C14.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Output protocol disconnected
    default	07:32:24.367276-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1012) [C14.1:2][0x12f32e580] nw_protocol_boringssl_remove_input_handler forced true
    error	07:32:24.367484-0700	Tap Forms	tcp_output [C14.1:3] flags=[R.] seq=1490997235, ack=788864082, win=1029 state=CLOSED rcv_nxt=788864082, snd_una=1490997235
    default	07:32:24.367849-0700	Tap Forms	tcp_close [C14.1:3] TCP Packets:
    <private>
    default	07:32:24.367935-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1030) [C14.1:2][0x12f32e580] Transferring nw_protocol_boringssl_t handle back into ARC for autorelease
    default	07:32:24.369175-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C14] reporting state failed error server closed session with no notification
    error	07:32:24.369251-0700	Tap Forms	Connection 14: received failure notification
    error	07:32:24.369680-0700	Tap Forms	Connection 14: failed to connect 3:-9816, reason -1
    error	07:32:24.369781-0700	Tap Forms	Connection 14: encountered error(3:-9816)
    default	07:32:24.370105-0700	Tap Forms	Connection 14: is being canceled
    default	07:32:24.370260-0700	Tap Forms	Connection 14: summary for unused connection {protocol="(null)", domain_lookup_duration_ms=0, connect_duration_ms=0, secure_connection_duration_ms=0, idle_duration_ms=0}
    default	07:32:24.370434-0700	Tap Forms	[C14 84DD0D61-587D-4105-9168-F7E88DC08E0C Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancel
    default	07:32:24.370516-0700	Tap Forms	[C14 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancelled
    default	07:32:24.370596-0700	Tap Forms	0.000s [C14 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:32:24.370677-0700	Tap Forms	0.000s [C14 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:32:24.370757-0700	Tap Forms	0.000s [C14 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:start_dns
    default	07:32:24.370839-0700	Tap Forms	0.000s [C14 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:receive_dns
    default	07:32:24.370918-0700	Tap Forms	0.001s [C14.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61975<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:32:24.372736-0700	Tap Forms	0.001s [C14.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61975<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:32:24.372822-0700	Tap Forms	0.001s [C14.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61975<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_nexus
    default	07:32:24.373019-0700	Tap Forms	0.002s [C14.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61975<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:receive_nexus
    default	07:32:24.373485-0700	Tap Forms	0.003s [C14.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61975<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_connect
    default	07:32:24.373567-0700	Tap Forms	0.010s [C14.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61975<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:32:24.373646-0700	Tap Forms	0.010s [C14 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:32:24.373805-0700	Tap Forms	0.050s [C14.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61975<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect server closed session with no notification
    default	07:32:24.373887-0700	Tap Forms	0.051s [C14 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect
    default	07:32:24.373960-0700	Tap Forms	0.051s [C14] path:cancel
    default	07:32:24.374763-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C14] reporting state cancelled error server closed session with no notification
    default	07:32:24.375030-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> can retry(Y) with reason(5) for error [3:-9816]
    default	07:32:24.375721-0700	Tap Forms	Connection 15: enabling TLS
    default	07:32:24.375796-0700	Tap Forms	Connection 15: starting, TC(0x0)
    default	07:32:24.375870-0700	Tap Forms	[C15 60BC3442-1A69-4605-A1C4-31333B4BD6D5 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] start
    default	07:32:24.376568-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C15] reporting state preparing
    default	07:32:24.376775-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> setting up Connection 15
    default	07:32:24.380062-0700	Tap Forms	tcp_output [C15.1:3] flags= seq=1574729430, ack=0, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=1574729430
    default	07:32:24.386754-0700	Tap Forms	tcp_input [C15.1:3] flags= seq=1791914706, ack=1574729431, win=65535 state=SYN_SENT rcv_nxt=0, snd_una=1574729430
    default	07:32:24.386837-0700	Tap Forms	nw_flow_connected [C15.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Transport protocol connected
    default	07:32:24.387413-0700	Tap Forms	boringssl_context_set_handshake_config(1471) [0x12f51e5d0] set tls_handshake_config_standard
    default	07:32:24.387676-0700	Tap Forms	boringssl_context_set_min_version(324) [0x12f51e5d0] set 0x0301
    default	07:32:24.387752-0700	Tap Forms	boringssl_context_set_max_version(308) [0x12f51e5d0] set 0x0304
    default	07:32:24.387835-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [0x12f51e5d0] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:32:24.387919-0700	Tap Forms	boringssl_context_set_remote_address(2555) [0x12f51e5d0] Saving remote IPv4 address
    default	07:32:24.387995-0700	Tap Forms	boringssl_session_install_association_state(1262) [0x12f51e5d0] Client session cache miss
    default	07:32:24.388075-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [0x12f51e5d0] SNI <private>
    default	07:32:24.388211-0700	Tap Forms	boringssl_context_set_max_version(308) [C15.1:2][0x12f51e5d0] set 0x0301
    default	07:32:24.388288-0700	Tap Forms	boringssl_context_set_min_version(324) [C15.1:2][0x12f51e5d0] set 0x0301
    default	07:32:24.388350-0700	Tap Forms	boringssl_context_set_fallback(374) [C15.1:2][0x12f51e5d0] set true
    default	07:32:24.388410-0700	Tap Forms	boringssl_context_set_session_ticket_enabled(440) [C15.1:2][0x12f51e5d0] set false
    default	07:32:24.388467-0700	Tap Forms	boringssl_context_set_false_start(410) [C15.1:2][0x12f51e5d0] set false
    default	07:32:24.388523-0700	Tap Forms	boringssl_context_set_enforce_ev(400) [C15.1:2][0x12f51e5d0] set false
    default	07:32:24.388580-0700	Tap Forms	boringssl_context_set_ats_enforced(1285) [C15.1:2][0x12f51e5d0] set false
    default	07:32:24.388638-0700	Tap Forms	boringssl_context_set_ats_minimum_rsa_key_size(1294) [C15.1:2][0x12f51e5d0] set 0
    default	07:32:24.388695-0700	Tap Forms	boringssl_context_set_ats_minimum_ecdsa_key_size(1303) [C15.1:2][0x12f51e5d0] set 0
    default	07:32:24.388922-0700	Tap Forms	boringssl_context_set_ats_minimum_signature_algorithm(1313) [C15.1:2][0x12f51e5d0] set 0
    default	07:32:24.388988-0700	Tap Forms	boringssl_session_set_peer_hostname(1154) [C15.1:2][0x12f51e5d0] SNI <private>
    default	07:32:24.389046-0700	Tap Forms	boringssl_context_set_cipher_suites(843) [C15.1:2][0x12f51e5d0] Ciphersuite string: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:AES256-SHA:AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
    default	07:32:24.389106-0700	Tap Forms	nw_protocol_boringssl_begin_connection(497) [C15.1:2][0x12f51e5d0] early data disabled
    default	07:32:24.389214-0700	Tap Forms	boringssl_context_info_handler(1970) [C15.1:2][0x12f51e5d0] Client handshake started
    default	07:32:24.389276-0700	Tap Forms	boringssl_context_message_handler(2258) [C15.1:2][0x12f51e5d0] Writing SSL3_RT_HANDSHAKE 151 bytes
    default	07:32:24.389333-0700	Tap Forms	boringssl_context_info_handler(1983) [C15.1:2][0x12f51e5d0] Client handshake state: TLS client enter_early_data
    default	07:32:24.389390-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C15.1:2][0x12f51e5d0] Adding message(1)
    default	07:32:24.389441-0700	Tap Forms	boringssl_context_info_handler(1983) [C15.1:2][0x12f51e5d0] Client handshake state: TLS client read_server_hello
    default	07:32:24.389497-0700	Tap Forms	boringssl_context_add_handshake_message_pending(578) [C15.1:2][0x12f51e5d0] Adding message(2)
    default	07:32:24.389547-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C15.1:2][0x12f51e5d0] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.389642-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C15.1:2][0x12f51e5d0] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.389792-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C15.1:2][0x12f51e5d0] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.389852-0700	Tap Forms	boringssl_session_handshake_incomplete(170) [C15.1:2][0x12f51e5d0] Handshake incomplete: waiting for data to read [2]
    default	07:32:24.399775-0700	Tap Forms	tcp_input [C15.1:3] flags=[F.] seq=1791914714, ack=1574729587, win=2056 state=ESTABLISHED rcv_nxt=1791914714, snd_una=1574729587
    default	07:32:24.399873-0700	Tap Forms	nw_protocol_tcp_log_summary [C15.1:3] 
    	[72FD6CFB-9197-42DD-A6DB-FD0EDE52A743 <private>:61976<-><private>:6984]
    	Init: 1, Conn_Time: 7.470ms, Syn's: 1, WR_T: 0/0, RD_T: 0/0, TFO: 0/0/0, ECN: 0/0/0, TS: 1
    	RTT_Cache: process, rtt_upd: 2, rtt: 43.250ms, rtt_var: 48.750ms rtt_nc: 7.250ms, rtt_var_nc: 3.125ms
    default	07:32:24.399955-0700	Tap Forms	boringssl_context_message_handler(2258) [C15.1:2][0x12f51e5d0] Reading SSL3_RT_ALERT 2 bytes
    error	07:32:24.400038-0700	Tap Forms	boringssl_context_handle_fatal_alert(1873) [C15.1:2][0x12f51e5d0] read alert, level: fatal, description: inappropriate fallback
    default	07:32:24.400242-0700	Tap Forms	boringssl_session_disconnect(504) [C15.1:2][0x12f51e5d0] SSL_shutdown 1
    default	07:32:24.401361-0700	Tap Forms	nw_flow_disconnected [C15.1 IPv4#fccb2a3a:6984 in_progress channel-flow (satisfied (Path is satisfied), interface: en0, ipv4, dns)] Output protocol disconnected
    error	07:32:24.401429-0700	Tap Forms	boringssl_session_handshake_incomplete(164) [C15.1:2][0x12f51e5d0] SSL library error
    error	07:32:24.401482-0700	Tap Forms	boringssl_session_handshake_error_print(111) [C15.1:2][0x12f51e5d0] 5087863496:error:1000043e:SSL routines:OPENSSL_internal:TLSV1_ALERT_INAPPROPRIATE_FALLBACK:/Library/Caches/com.apple.xbs/Sources/boringssl/boringssl-283.120.1/ssl/tls_record.cc:587:SSL alert number 86
    error	07:32:24.401546-0700	Tap Forms	nw_protocol_boringssl_handshake_negotiate_proceed(726) [C15.1:2][0x12f51e5d0] handshake failed at state 12288
    default	07:32:24.402667-0700	Tap Forms	tcp_output [C15.1:3] flags=[F.] seq=1574729587, ack=1791914715, win=1029 state=LAST_ACK rcv_nxt=1791914715, snd_una=1574729587
    default	07:32:24.402719-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1012) [C15.1:2][0x12f51e5d0] nw_protocol_boringssl_remove_input_handler forced true
    default	07:32:24.402822-0700	Tap Forms	nw_protocol_boringssl_remove_input_handler(1030) [C15.1:2][0x12f51e5d0] Transferring nw_protocol_boringssl_t handle back into ARC for autorelease
    default	07:32:24.404107-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C15] reporting state failed error handshake failed
    error	07:32:24.404206-0700	Tap Forms	Connection 15: received failure notification
    error	07:32:24.404320-0700	Tap Forms	Connection 15: failed to connect 3:-9858, reason -1
    error	07:32:24.404361-0700	Tap Forms	Connection 15: encountered error(3:-9858)
    default	07:32:24.404401-0700	Tap Forms	Connection 15: is being canceled
    default	07:32:24.404441-0700	Tap Forms	Connection 15: summary for unused connection {protocol="(null)", domain_lookup_duration_ms=0, connect_duration_ms=0, secure_connection_duration_ms=0, idle_duration_ms=0}
    default	07:32:24.404481-0700	Tap Forms	[C15 60BC3442-1A69-4605-A1C4-31333B4BD6D5 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancel
    default	07:32:24.404520-0700	Tap Forms	[C15 Hostname#8a91cc94:6984 tcp, url hash: 2d4deb9a, tls] cancelled
    default	07:32:24.404561-0700	Tap Forms	0.000s [C15 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:32:24.404601-0700	Tap Forms	0.000s [C15 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:32:24.404640-0700	Tap Forms	0.000s [C15 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:start_dns
    default	07:32:24.404680-0700	Tap Forms	0.001s [C15 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] resolver:receive_dns
    default	07:32:24.404721-0700	Tap Forms	0.001s [C15.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61976<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:start
    default	07:32:24.404762-0700	Tap Forms	0.001s [C15.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61976<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] path:satisfied
    default	07:32:24.404802-0700	Tap Forms	0.001s [C15.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61976<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_nexus
    default	07:32:24.404841-0700	Tap Forms	0.002s [C15.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61976<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:receive_nexus
    default	07:32:24.404881-0700	Tap Forms	0.003s [C15.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61976<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:start_connect
    default	07:32:24.405148-0700	Tap Forms	0.011s [C15.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61976<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:32:24.405206-0700	Tap Forms	0.011s [C15 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:finish_transport
    default	07:32:24.405289-0700	Tap Forms	0.027s [C15.1 3A57E3A2-84F6-4DE8-8E64-C5161A18A93E 192.168.4.40:61976<->IPv4#fccb2a3a:6984 channel-flow path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect handshake failed
    default	07:32:24.405329-0700	Tap Forms	0.027s [C15 434589DC-AA7B-494D-B4FA-E7D5BF4A4507 Hostname#8a91cc94:6984 resolver path=satisfied (Path is satisfied), interface: en0, ipv4, dns] flow:failed_connect
    default	07:32:24.405409-0700	Tap Forms	0.028s [C15] path:cancel
    default	07:32:24.405942-0700	Tap Forms	nw_connection_report_state_with_handler_on_nw_queue [C15] reporting state cancelled error handshake failed
    default	07:32:24.406235-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> can retry(N) with reason(4) for error [3:-9858]
    error	07:32:24.406351-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> HTTP load failed, 0/0 bytes (error code: -1200 [3:-9858])
    default	07:32:24.406603-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> summary for task failure {transaction_duration_ms=276, response_status=0, connection=15, reused=1, request_start_ms=0, request_duration_ms=0, response_start_ms=0, response_duration_ms=0, request_bytes=0, response_bytes=0, cache_hit=0}
    error	07:32:24.406845-0700	Tap Forms	Task <D3CAE4F7-3FB3-4F9E-958C-8EEB42697E3A>.<1> finished with error [-1200] Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={_kCFStreamErrorCodeKey=-9858, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, NSUnderlyingError=0x283411500 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9858, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9858}}, NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=<private>, NSErrorFailingURLStringKey=<private>, _kCFStreamErrorDomainKey=3}
    default	07:32:24.512614-0700	Tap Forms	tcp_close [C15.1:3] TCP Packets:
    <private>
    default	07:32:26.064717-0700	Tap Forms	activate generator with style: TurnOn; activationCount: 0 -> 1; styleActivationCount: 0 -> 1; <UISelectionFeedbackGenerator: 0x280b294a0>
    default	07:32:26.064763-0700	Tap Forms	activate engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>, clientCount: 0 -> 1
    default	07:32:26.064806-0700	Tap Forms	activating engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:32:26.064860-0700	Tap Forms	engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0: state=3, numberOfClients=1, prewarmCount=0, _internal_isSuspended=0> state changed: Inactive -> Activating
    default	07:32:26.064903-0700	Tap Forms	starting core haptics engine for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:32:26.064949-0700	Tap Forms	CHHapticEngine.mm:2383:-[CHHapticEngine startWithCompletionHandler:]: Called on engine 0x28142fc00
    default	07:32:26.065062-0700	Tap Forms	CHHapticEngine.mm:2342:-[CHHapticEngine doStartWithCompletionHandler:]: Starting underlying Haptic Player
    default	07:32:26.065151-0700	Tap Forms	CHHapticEngine.mm:2129:-[CHHapticEngine updateEngineBehavior]: Setting player's behavior to 0x5
    default	07:32:26.065228-0700	Tap Forms	AVHapticPlayer.mm:618:-[AVHapticPlayer setBehavior:]: clientID: 0x1000719 behavior: 5
    default	07:32:26.065406-0700	Tap Forms	AVHapticPlayer.mm:930:-[AVHapticPlayer startRunningWithCompletionHandler:]: start running: clientID: 0x1000719
    default	07:32:26.065494-0700	Tap Forms	HapticClient.mm:283:-[HapticClient startRunning:]: Client 0x1000719 starting
    default	07:32:26.088994-0700	Tap Forms	core haptics engine STARTED for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:32:26.089138-0700	Tap Forms	engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0: state=4, numberOfClients=1, prewarmCount=0, _internal_isSuspended=0> state changed: Activating -> Running
    default	07:32:26.089186-0700	Tap Forms	CAReportingClient.mm:426:-[CAReportingClient startReporters:]: starting (
        7803955576833
    )
    default	07:32:26.089384-0700	Tap Forms	CAReportingClient.mm:470:-[CAReportingClient sendMessage:category:type:reporters:]: message {
        "startHapticEngine_SPI" = 1;
    }: (
        7803955576833
    )
    default	07:32:26.147974-0700	Tap Forms	deactivate generator with style: TurnOn; activationCount: 1 -> 0; styleActivationCount: 1 -> 0; <UISelectionFeedbackGenerator: 0x280b294a0>
    default	07:32:26.148070-0700	Tap Forms	deactivate engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>, clientCount: 1 -> 0
    default	07:32:26.148140-0700	Tap Forms	_internal_deactivateEngineIfPossible <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>, clientCount: 0, suspended: 0
    default	07:32:26.148191-0700	Tap Forms	_internal_teardownUnderlyingPlayerIfPossible <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:32:26.148354-0700	Tap Forms	engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0: state=5, numberOfClients=0, prewarmCount=0, _internal_isSuspended=0> state changed: Running -> Deactivating
    default	07:32:26.148406-0700	Tap Forms	CHHapticEngine.mm:2543:-[CHHapticEngine notifyWhenPlayersFinished:]: Called on engine 0x28142fc00 with finishedHandler 0x16affe6f8
    default	07:32:26.148464-0700	Tap Forms	AVHapticPlayer.mm:1014:-[AVHapticPlayer finishWithCompletionHandler:]: finish with comp handler: clientID: 0x1000719
    default	07:32:26.148519-0700	Tap Forms	HapticClient.mm:326:-[HapticClient finish:]: Client 0x1000719 finishing
    default	07:32:26.148570-0700	Tap Forms	HapticClient.mm:358:-[HapticClient finish:]: Client 0x1000719 done with finish
    default	07:32:26.163145-0700	Tap Forms	HapticClient.mm:1272:-[HapticClient clientCompletedWithError:]_block_invoke: Client-side finish completionCallback for client 0x1000719
    default	07:32:26.163702-0700	Tap Forms	core haptics engine finished for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:32:26.163752-0700	Tap Forms	stopping core haptics engine for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:32:26.163789-0700	Tap Forms	CHHapticEngine.mm:2522:-[CHHapticEngine stopWithCompletionHandler:]: Called on engine 0x28142fc00
    default	07:32:26.163929-0700	Tap Forms	_internal_deactivateEngineIfPossible <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0> tearedDown: 1
    default	07:32:26.163971-0700	Tap Forms	CHHapticEngine.mm:2488:-[CHHapticEngine doStopWithCompletionHandler:]: Stopping underlying Haptic Player
    default	07:32:26.164024-0700	Tap Forms	engine <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0: state=0, numberOfClients=0, prewarmCount=0, _internal_isSuspended=0> state changed: Deactivating -> Inactive
    default	07:32:26.164076-0700	Tap Forms	AVHapticPlayer.mm:991:-[AVHapticPlayer stopRunningWithCompletionHandler:]: stop running: clientID: 0x1000719
    default	07:32:26.164134-0700	Tap Forms	HapticClient.mm:312:-[HapticClient stopRunning:]: Client 0x1000719 stopping
    default	07:32:26.190186-0700	Tap Forms	HapticClient.mm:1272:-[HapticClient clientCompletedWithError:]_block_invoke: Client-side finish completionCallback for client 0x1000719
    default	07:32:26.196435-0700	Tap Forms	core haptics engine STOPPED for <_UIFeedbackCoreHapticsHapticsOnlyEngine: 0x28112e4c0>
    default	07:32:26.197139-0700	Tap Forms	CAReportingClient.mm:446:-[CAReportingClient stopReporters:]: stopping (
        7803955576833
    )
    default	07:32:26.197273-0700	Tap Forms	CAReportingClient.mm:470:-[CAReportingClient sendMessage:category:type:reporters:]: message {
        "session_duration" = "0.1075119972229004";
    }: (
        7803955576833
    )
    default	07:32:26.202790-0700	Tap Forms	CAReportingClient.mm:436:-[CAReportingClient startReporters:]_block_invoke: completed transaction
    
    
    #41499

    In reply to: Design Feedback

    Rocky Machado
    Participant

    Here is a the function I call. Basically I call another script that adds information to the markdown field. The reason I have the script broken out is that I call applyStockPerformance(fldStockPerformanceKey,fldTradeId); multiple locations (i.e Upload Load process, refresh layout and when I’m expiring options module). Again thanks for the idea.

    document.getFormNamed('Script.Manager').runScriptNamed('Globals');
    document.getFormNamed(FORM_TRADE_SUMMARY).runScriptNamed('Apply.Stock.Performance');
    
    /**
     *
     * Refreshes the Trade Summary Layout. This module is called by the button that
     * that is on the Trade Summary Layout
     *
     */
    function refreshTradeSummaryLayout() {
    
    	let fldTradeId = record.getFieldValue('fld-5399c8a67ee44fc18239a890a5102d41');
    	let fldStockPerformanceKey = record.getFieldValue('fld-f5b68ce9937d4958a516862b502933b0');
    	
    	//-- Run modules to update Markdown fields in Trade Summary form
    	applyStockPerformance(fldStockPerformanceKey,fldTradeId);
    	form.saveAllChanges();
    	
    }
    refreshTradeSummaryLayout();
    #39680
    Sam Moffatt
    Participant

    Ok! I did some work to set up a sample document with the scripts in it. There were some modifications to the original ones I posted, this edition doesn’t prompt to confirm the item name, it has support for automatically creating new records and it prompts if you try to reassign an item from one box to another if you want to do it.

    I’ve attached three files:

    • Boxes-20200228.tfarc: a Tap Forms archive containing all of the forms with some sample data.
    • Boxes-20200228.tff: a Tap Forms Form Template with the box forms.
    • Script Manager-20200228.tff: a Tap Forms Form Template with the Script Manager including an updated set of form scripts.

    Took a bit of time to put this all together and test that it works roughly the way I’d expect. It includes two Link to Form fields, one set up as a 1:M type and another set up with a JOIN type. The “Bulk Add to Form” script will handle updating the 1:M field properly and the text field referred to by the JOIN type.

    Right now it’s a little chatty, you might want to tune that down a little or bypass some of the confirmation items.

    Let me know if that helps a little more with figuring things out. If it makes sense, I might put it up on the template exchange as well.

    Attachments:
    You must be logged in to view attached files.
    #39655
    Max Heart
    Participant

    OMG, Sam, I feel so bad and like a complete idiot … I appreciate your help so much but I am not able to translate it to my database.

    If you still have patience to advise I would highly appreciate it. I will try to describe precisely where I am:

    – I have two forms: “Inventar-Boxen” which has all the boxes and “Inventar-Inhalte” which has all the individual items. The field “Inhalte” in Inventar-Boxen is linked as one to many to the form Inventar-Inhalte. “Show reverse link” is enabled
    – The form “Inventar-Boxen” has the following fields: “Boxname” (Calc Field: Box number, box name, box type), Place, box number, box type, contents (“Inhalte”: the linked field), Barcode (the QR code field – a calc field “Box+box number”)
    – The form “Inventar-Inhalte” has “Foto”, “Item” (Calc Field: Manufacturer + item name), Boxen (re-link from the “Inventar-Boxen” form), “Barcode-ID” (this is the bar code identifier), “category”, “label”, “notes”, “invoice”, “purchase date”, …

    What I did:
    – I created the script manager form and copy pasted your “Prompter functions”
    – I copy pasted your second script into the script section of “Inventar-Boxen” and named it “Bulk Add”. I assigned Alt+Cmd+Y as a keyboard short cut.
    – I tried to exchange your fields with mine. However, I am already lost with the field IDs

    Is there a chance to have a look at your tap forms file with just one set of sample data? Maybe I would be able to understand the scripting concept better then.

    Again thank you very much and best regards, Max

    #39650
    Max Heart
    Participant

    Hi Sam,

    thank you so much for your two long posts with explanations. I will try to understand them and modify the variables so that they fit to my forms.

    So far
    – I imported your Script Manager form
    – I added the Prompter script to the Script Manager form
    – I created a script field in my box form and pasted your full script from the second post
    (… and I bought a barcode scanner for my Mac)

    Now I have to understand and adapt the script. The field which contains my QR code of the box is called “Barcode”. Is this field called “box_id_id” in your script?

    #39645
    Sam Moffatt
    Participant

    Ok, so I found the other one which is actually a variation of the one I posted though simplified in a way. It works on two forms: one for boxes and a second for purchases that has a “box ID” field in it as a text field.

    This uses the prompter functions again and also getRecordFromFormWithKey to find matching records.

    Let’s get started!

    var PARENT_SCRIPT = 'Boxes::Bulk Add To Box';
    document.getFormNamed('Script Manager').runScriptNamed('Prompter Functions');
    document.getFormNamed('Script Manager').runScriptNamed('getRecordFromFormWithKey');
    

    Define the PARENT_SCRIPT to prevent stuff like Profiler running it’s self tests. My internal version of getRecordFromFormWithKey currently has profiler support, I’ll update it later. We need the prompter functions again from earlier as mentioned.

    // Boxes
    var box_id_id = 'fld-f25492cf56384369b278f7ea41ee258f';
    
    var box_id = record.getFieldValue(box_id_id);
    

    This form I have this in is called “Boxes” and it has a field called “Box ID” which we grab when we start the form script. These are those variables.

    // Purchases
    var state_id = 'fld-9402f8c0d53c43b986fee4ebc3468929';
    var bag_barcode_id = 'fld-32d459f0b5fb4dc4974795c484832af1';
    var storage_box_id = 'fld-c08e3a9eb7784d7f8ee3a5576c0adffa';
    var title_id = 'fld-0d0edd2552ea461e929f806a4e5552b5';
    

    Purchases is the track of things I bought, it has it’s own barcode (in “Bag Barcode”) and it also has a text field for the storage box. There are also state and title fields for it as well.

    async function start(){
    	try {
    		while (1)
    		{
    			let barcode = '';
    			let scanBarcode = await promptText("Scan Bag", "Barcode:");
    			
    			if (!scanBarcode)
    			{
    				break;
    			}
    			
    			console.log(scanBarcode);
    

    If this looks familiar, it should because it’s the previous code without the zipcode and carrier removed. Also “Shipment” is now “Bag”. Cool beans!

    let correctBarcode = await promptConfirm(`Is ${scanBarcode} correct?`);
    			
    			if (!correctBarcode)
    			{
    				console.log('Incorrect barcode, skipping');
    				continue;
    			}			
    

    This part is new, it asks if the scanned bar code is correct. This lets you hit cancel if it’s wrong. If you’re using this with a hand held scanner (which I am), then generally it’ll insert an “enter” at the end of the input. This means you can scan a barcode, validate it on screen and scan the barcode again to confirm this dialog. It gives you an escape key to abort from.

    
    			let targetRecord = getRecordFromFormWithKey('Purchases', bag_barcode_id, scanBarcode, false, false);
    				
    			if (targetRecord)
    			{
    

    This looks for a record in my Purchases form looking in the bag_barcode_id field for the value of scanBarcode that we just scanned. The last two prevent some optimisations and also prevents autocreating records.

    
    				let title = targetRecord.getFieldValue(title_id);
    				
    				let correctTitle = await promptConfirm(`Is ${title} expected?`);
    				
    				if (!correctTitle)
    				{
    					console.log('Incorrect title, skipping');
    					continue;
    				}
    

    We do an extra confirmation to check that the title matches what we expect. Again if you are using a barcode scanner you can scan again to progress.

    
    				// Set the delivered flag just in case it isn't set already.
    				targetRecord.setFieldValue(state_id, 'Delivered');
    

    My purchases has a state field and we just update this to delivered when we’re scanning something. My state tracking was a later addition so this helps to clean up anything I touch.

    
    				let boxId = targetRecord.getFieldValue(storage_box_id);
    				
    				if (!boxId)
    				{
    				targetRecord.setFieldValue(storage_box_id, box_id);
    				}
    				else
    				{
    					Utils.alertWithMessage('Box ID Already Set', `This barcode already has already been scanned with ${boxId}`);
    				}
    

    We then check to see if we have a box ID already and if it isn’t set we set it. If it is set then we flag this with the user. In your case you could change this up to confirm with another prompt (like shown earlier) and confirm reassigning the boxes.

    
    				document.saveAllChanges();
    				console.log("Updated existing record for " + scanBarcode);
    			}
    

    Save all the changes and I make a log message. I like log messages.

    
    			else
    			{
    				Utils.alertWithMessage('Unable to find record', `No matching record for ${scanBarcode}`);
    			}
    		}
    

    The else is to prompt a message saying we can’t find the barcode.

    
    	} catch (error) {
    		console.log("Error: " + error);
    	}
    }
    

    Just like the last one, we catch the error and log it as a fall back.

    
    if (box_id)
    {
    	start();
    }
    else
    {
    	Utils.alertWithMessage('Invalid box', `Invalid box ID found: ${box_id}`);
    }

    This is a little different, it checks to see if you have a record in the Box form before starting up. The intent is that you are in a box and scanning items into said box.

    Here’s the script in full:

    var PARENT_SCRIPT = 'Boxes::Bulk Add To Box';
    document.getFormNamed('Script Manager').runScriptNamed('Prompter Functions');
    document.getFormNamed('Script Manager').runScriptNamed('getRecordFromFormWithKey');
    
    // Boxes
    var box_id_id = 'fld-f25492cf56384369b278f7ea41ee258f';
    
    var box_id = record.getFieldValue(box_id_id);
    
    // Purchases
    var state_id = 'fld-9402f8c0d53c43b986fee4ebc3468929';
    var bag_barcode_id = 'fld-32d459f0b5fb4dc4974795c484832af1';
    var storage_box_id = 'fld-c08e3a9eb7784d7f8ee3a5576c0adffa';
    var title_id = 'fld-0d0edd2552ea461e929f806a4e5552b5';
    
    async function start(){
    	try {
    		while (1)
    		{
    			let zipcode = undefined;
    			let carrier = '';
    			let barcode = '';
    			let scanBarcode = await promptText("Scan Bag", "Barcode:");
    			
    			if (!scanBarcode)
    			{
    				break;
    			}
    			
    			console.log(scanBarcode);
    			
    			let correctBarcode = await promptConfirm(`Is ${scanBarcode} correct?`);
    			
    			if (!correctBarcode)
    			{
    				console.log('Incorrect barcode, skipping');
    				continue;
    			}			
    			
    			let targetRecord = getRecordFromFormWithKey('Purchases', bag_barcode_id, scanBarcode, false, false);
    				
    			if (targetRecord)
    			{
    				let title = targetRecord.getFieldValue(title_id);
    				
    				let correctTitle = await promptConfirm(`Is ${title} expected?`);
    				
    				if (!correctTitle)
    				{
    					console.log('Incorrect title, skipping');
    					continue;
    				}
    			
    				// Set the delivered flag just in case it isn't set already.
    				targetRecord.setFieldValue(state_id, 'Delivered');
    				
    				let boxId = targetRecord.getFieldValue(storage_box_id);
    				
    				if (!boxId)
    				{
    				targetRecord.setFieldValue(storage_box_id, box_id);
    				}
    				else
    				{
    					Utils.alertWithMessage('Box ID Already Set', `This barcode already has already been scanned with ${boxId}`);
    				}
    				document.saveAllChanges();
    				console.log("Updated existing record for " + scanBarcode);
    			}
    			else
    			{
    				Utils.alertWithMessage('Unable to find record', `No matching record for ${scanBarcode}`);
    			}
    		}
    	} catch (error) {
    		console.log("Error: " + error);
    	}
    }
    
    if (box_id)
    {
    	start();
    }
    else
    {
    	Utils.alertWithMessage('Invalid box', `Invalid box ID found: ${box_id}`);
    }
    #39644

    Topic: Profiler Script

    in forum Script Talk
    Sam Moffatt
    Participant

    One of the scripts I use a lot is my profiler. I use it to figure out timing data for how long something takes for my scripts. It’s useful for understanding where your bottlenecks are in code and for figuring out what the true slow downs are.

    If you look at the very bottom of the script, there is an example/test for the script so you can see how it works. I use this with a Script Manager form which makes including easy like this:

    document.getFormNamed('Script Manager').runScriptNamed('Profiler');
    

    Due to the way the tests are coded, you want to define a variable called PARENT_SCRIPT to prevent the test from firing when being included. Generally I do this in the format of Form Name::Script Name, e.g.:

    var PARENT_SCRIPT = 'Boxes::Bulk Add To Box';

    Using it is easy once you’ve included it:

    profiler.start('Start time');
    ...
    your code that does stuff!
    ...
    profiler.end();
    

    Profiler internally uses a stack so end closes the most recent start. If you do a profiler.dump() you will get back a string with the profiling information formatted with indentation. Here is a copy of the test running as an example:

    24/2/20, 9:59:19 pm / Script Manager / Profiler
    Caught expected error from dump: Error: Profiler imbalance: started called 1 more times than end.
    Uneven profiler.end called (are you missing a start?)
    Dump called with index 7 and indent 0
    0ms  	Test 1
        0ms  	Test 2
        0ms  	Test 3
            0ms  	Test 4
    0ms  	Function start
        0ms  	Complex logic
    0ms  	Mismatch
    

    Here’s the full script:

    // ========== Profiler Start ========== //
    // NAME: Profiler
    // VERSION: 1.0.0
    /**
     * Profiler module stores timing data.
     */
    if (profiler == undefined)
    
    var profiler = (function() {
    	let stack = [];
    	let entries = [];
    	let index = 0;
    	let indent = 0;
    	let current = undefined;
    	return {
    		custom: function(start, end, message)
    		{
    			entries[index] = {'start': start, 'end': end, 'message': message, 'index': index, 'indent': indent};
    			index++;
    		},
    		/**
    		 * Start a timer.
    		 *
    		 * Takes a <code>message</code> and adds it to the internal <code>logdata</code> variable
    		 *   and also logs it to the console with a timestamp.
    		 */
    		start: function(message)
    			{
    				let now = new Date();
    				stack.push({'start': now.getTime(), 'message': message, 'index': index, 'indent': indent});
    				index++;
    				indent++;
    			},
    
    		/**
    		 * Log an error
    		 *
    		 * Takes a <code>message</code> and <code>error</code> object and then formats into an error
    		 *   via <code>logMessage</code>.
    		 */
    		end: function(endCount = 1)
    			{
    				for (let i = 0; i < endCount; i++)
    				{
    					let now = new Date();
    					let entry = stack.pop();
    					if (entry)
    					{
    						entry['end'] = now.getTime();
    						entries[entry.index]= entry;
    						indent--;
    					}
    					else
    					{
    						console.log('Uneven profiler.end called (are you missing a start?)');
    					}
    				}
    			},
    
    		/**
    		 * Get the internal log buffer
    		 *
    		 * Returns the raw log buffer to output elsewhere.
    		 */
    		dump: function(autoClose = true)
    			{
    				let returnValue = [];
    				returnValue.push(<code>Dump called with index ${index} and indent ${indent}</code>);
    				let dumpIndent = indent;
    				
    				if (indent > 0)
    				{
    					if (!autoClose)
    					{
    						throw Error("Profiler imbalance: started called " + indent + " more times than end.");
    					}
    					else
    					{
    						// Close out any mismatched items.
    						this.end(indent);
    					}
    				}
    				
    				let entry = null;
    				for(entry of entries)
    				{
    					let message = (entry.end - entry.start) + 'ms  \t' + entry.message;
    					returnValue.push(message.padStart(message.length + (entry.indent * 4)));
    				}
    				return returnValue.join('\n');
    			},
    
    		/**
    		 * Clear the internal state.
    		 */
    		reset: function()
    			{
    				stack = [];
    				entries = [];
    				index = 0;
    				indent = 1;
    			}
    	}
    })();
    
    // Testing section. Fake guard for testing.
    if (typeof PARENT_SCRIPT === 'undefined')
    {
    	profiler.start('Test 1');
    		profiler.start('Test 2');
    		profiler.end();
    		profiler.start('Test 3');
    			profiler.start('Test 4');
    			profiler.end();
    		profiler.end();
    	profiler.end();
    	profiler.start('Function start');
    	profiler.start('Complex logic');
    	profiler.end(2);
    	profiler.start('Mismatch');
    	try 
    	{
    		profiler.dump(false);
    	}
    	catch (e)
    	{
    		console.log('Caught expected error from dump: ' + e);
    	}
    	// Call end one too many times.
    	profiler.end(2);
    	
    	console.log(profiler.dump());
    	profiler.reset();
    }
    // ========== Profiler End ========== //
    

    Latest version of this script is available on GitHub: https://github.com/pasamio/tftools/blob/master/scripts/js/profiler.js

Viewing 15 results - 31 through 45 (of 64 total)
 
Apple, the Apple logo, iPad, iPhone, and iPod touch are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc.