Verifiable receipt 4dc465e2 - ghost_audit_report result | Zambo

✓ This result hasn’t changed since it was saved.

Saved:
What was asked: The request recorded for this receipt.

Zambo is the verifiable work layer for AI.

Zambo is the verifiable work layer for AI. Verifiable receipt for a ghost_audit_report call on Zambo: {"audit_id":"5bf84c80-0822-4ee8-a772-39285baa3ea3","status":"complete","report":"# ACHILLES GHOST AUD

Observed result

{"audit_id":"5bf84c80-0822-4ee8-a772-39285baa3ea3","status":"complete","report":"# ACHILLES GHOST AUDIT REPORT\n## Example Domain — https://example.com/\n**Date:** October 17, 2026 \n**Auditor:** Achilles (Autonomous AI Agent · zambo.dev) \n**Audit Duration:** 19.1s \n\n---\n\n## OVERALL SCORE: CRITICAL\n\n```\n░░░░░░░░░░ 0/100\n```\n\n| Category | Count |\n|---|---|\n| 🔴 Critical | 1 |\n| 🟠 High | 16 |\n| 🟡 Medium | 20 |\n| 🔵 Low | 7 |\n| ✅ Passing | 1 |\n| **Total Findings** | **47** |\n\n---\n\n## EXECUTIVE SUMMARY\n\n**1 critical issue require immediate attention** before any marketing spend makes sense. Critical issues block indexing, break user flows, or actively harm conversion.\n\n**16 high-priority issues** are costing meaningful revenue right now. These should be addressed within 1-2 weeks.\n\nTop 3 immediate actions:\n1. **No Call-to-Action Detected** — Add a prominent primary CTA above the fold: 'Start Free', 'Get Access', or 'Try It Now'\n2. **Missing sitemap.xml** — Generate a sitemap with all public pages and submit it to Google Search Console and Bing Webmaster Tools\n3. **Missing llms.txt** — Create /llms\n\n---\n\n## 🔴 CRITICAL ISSUES (Fix First)\n\n### 🔴 No Call-to-Action Detected\n**Severity:** CRITICAL | **Category:** CONVERSION\n\nNo clear CTA buttons found on the homepage. Visitors have no guided next step — they leave.\n\n**Action:** Add a prominent primary CTA above the fold: 'Start Free', 'Get Access', or 'Try It Now'. Secondary CTA below: 'See Pricing' or 'View Demo'.\n\n---\n\n\n## 🟠 HIGH PRIORITY\n\n### 🟠 Missing sitemap.xml\n**Severity:** HIGH | **Category:** SEO\n\nNo sitemap.xml found. Sitemaps are the most reliable way to get all pages indexed by Google and Bing.\n\n**Action:** Generate a sitemap with all public pages and submit it to Google Search Console and Bing Webmaster Tools. Most site generators (Next.js, Astro, etc.) have sitemap plugins.\n\n---\n\n### 🟠 Missing llms.txt\n**Severity:** HIGH | **Category:** AI DISCOVERABILITY\n\nNo llms.txt found. This file is how AI agents (Claude, GPT, Perplexity) discover your products and understand how to use your APIs. Without it, AI tools recommend competitors who have it.\n\n**Action:** Create /llms.txt following the standard: product description, quick-start instructions for AI agents, tool/API catalog, and pricing. See zambo.dev/llms.txt for a reference implementation.\n\n---\n\n### 🟠 Title Tag Too Short\n**Severity:** HIGH | **Category:** SEO\n\n\"Example Domain\" (14 chars). Short titles miss keyword opportunities and look thin in search results.\n\n**Action:** Expand the title to 50-60 characters. Include the primary keyword and brand name.\n\n---\n\n### 🟠 Missing Meta Description\n**Severity:** HIGH | **Category:** SEO\n\nNo meta description found. Google auto-generates one from page content, which is usually worse. The meta description is the first conversion touchpoint in search results.\n\n**Action:** Write a 120-155 char meta description that answers: what is this, who is it for, what do they get. End with a CTA.\n\n---\n\n### 🟠 Missing Open Graph Tags\n**Severity:** HIGH | **Category:** SEO\n\nOG title: ✗ | OG description: ✗. When someone shares your URL on Slack, LinkedIn, or X, they see a blank or broken card. This kills social sharing CTR by 50-70%.\n\n**Action:** Add og:title, og:description, og:image, and og:url. The og:image should be 1200×630px.\n\n---\n\n### 🟠 Missing OG Image\n**Severity:** HIGH | **Category:** SEO\n\nNo og:image tag. Without an image, link previews on X, LinkedIn, Slack, and iMessage are completely blank — dramatically reducing click-through.\n\n**Action:** Create a 1200×630px branded image (hero screenshot or clean product visual) and set it as og:image. Canva or Figma can generate this quickly.\n\n---\n\n### 🟠 Missing H1 Tag\n**Severity:** HIGH | **Category:** SEO\n\nNo H1 heading found. The H1 is the primary semantic signal to search engines about what the page is about.\n\n**Action:** Add exactly one H1 that contains your primary keyword. It should match or align with the page title.\n\n---\n\n### 🟠 No /pricing Page\n**Severity:** HIGH | **Category:** CONVERSION\n\nNo pricing page detected. Pricing is one of the highest-traffic pages for any SaaS. Visitors who can't find pricing leave to find a competitor who shows it.\n\n**Action:** Create /pricing with all tiers, features included, and a clear CTA for each tier. Show the value comparison.\n\n---\n\n### 🟠 No /blog Page\n**Severity:** HIGH | **Category:** SEO\n\nNo blog found. A blog is the #1 long-term organic SEO engine for SaaS. Every article targets a keyword, builds backlinks, and compounds over time.\n\n**Action:** Start a blog with 2-3 targeted posts per month. Focus on comparison articles ('X vs Y'), how-to guides, and use-case posts. Each post is a permanent SEO asset.\n\n---\n\n### 🟠 No Privacy Policy\n**Severity:** HIGH | **Category:** LEGAL\n\nNo privacy page found. A privacy policy is legally required in most jurisdictions (GDPR, CCPA). App stores, ad platforms, and enterprise customers require it.\n\n**Action:** Create /privacy with a proper privacy policy. Use Termly, Iubenda, or a lawyer to generate one appropriate for your data practices.\n\n---\n\n### 🟠 AI Directory Verification Required\n**Severity:** HIGH | **Category:** DISCOVERABILITY\n\nCheck if example.com is listed in: Futurepedia, There's An AI For That (TAAFT), Toolify.ai, AiTopTools, and Product Hunt. These directories drive 50K+ monthly searches from buyers actively looking for AI tools.\n\n**Action:** Submit to all five immediately. Futurepedia and TAAFT have the highest traffic. Product Hunt launch creates 50+ backlinks and can drive 1K+ visitors in a day. Budget 2-3 hours for all submissions.\n\n---\n\n### 🟠 Free Tier Not Visible\n**Severity:** HIGH | **Category:** CONVERSION\n\nNo mention of a free tier, trial, or 'no credit card' promise on the homepage. This is a major conversion killer — 80%+ of SaaS users wa

This is the saved result preview, not proof that the answer was correct.

Check this receipt Run your own
Show technical provenance details

Provenance for every timeline entry

  • EXECUTED BY ZAMBOZambo ran the tool call itself.
  • OBSERVED VIA GATEWAYA Zambo gateway observed request and response bytes from the named external executor. Zambo did not run that external action.
  • LOGGED BY AGENTAn agent or local hook reported the action. Zambo attests that the record is unchanged since logging, not that the action happened as described.

Private agent reasoning, built-in client actions, and direct calls to unrelated MCP servers are not included unless an agent or gateway reports them.

What is an execution receipt?

An execution receipt is a public record of a reported AI agent tool call. Its byte commitment and provenance claim can be checked independently; neither alone authenticates the issuer. Read the canonical definition of an AI agent execution receipt.

What the receipt can and cannot prove

What is this?

Zambo's receipt store reports a tool call and records its result. The SHA-256 commitment covers the exact canonical bytes. The provenance label is bound to v0.4 receipt bytes when that check passes, but no pinned signature or trusted issuer key is checked. An anchor can timestamp a fingerprint; it does not authenticate the issuer.

Keep the work moving

This receipt records a completed tool call. When the free allowance is not enough, choose the access path that fits the job.

UNLOCK 24H DAY PASS ($0.99) →

See all plans on the pricing page →

RUN YOUR OWN FREE CALL →

Or re-run this exact call, using the same tool and arguments.

Share this receipt

Share on X ·

Show technical verification checks

Verification checks

  • SHA-256 commitment: Checked independently against the exact decoded bytes
  • Provenance binding: PASS; The metadata claim is consistent with the verified receipt bytes; issuer is not authenticated.
  • Metadata binding: PASS; metadata_hash matches the canonical metadata block.
  • Issuer authentication: NOT CHECKED; no pinned signing key or trusted issuer was supplied
  • Signature: NOT CHECKED; no Ed25519 signature or pinned key is supplied
  • Chain: NOT CHECKED; no append-only chain proof is validated
  • Stored timestamp: 2026-10-17T11:20:55.159Z; external immutability is not checked

Get proof like this from your own AI

Add to my AI ·

Get receipts for your own AI work: add zambo.dev/mcp

One URL, no key. Copy the line for your AI and add it yourself in its settings.

  • ClaudeSettings, Connectors, Add custom connector, paste the URL.
    https://zambo.dev/mcp
  • ChatGPTSettings, Apps and Connectors, developer mode, create a connector with this URL.
    https://zambo.dev/mcp
  • GrokAdd a remote MCP server in your Grok client and paste the URL.
    https://zambo.dev/mcp
  • CursorPaste into ~/.cursor/mcp.json.
    {"mcpServers":{"zambo":{"url":"https://zambo.dev/mcp"}}}

Nothing is installed automatically. Full setup guides

Want a verifiable receipt for every job your bots do?

Add Zambo Receipt Bot to your team · File this in Receipt Bot

Show receipt data and verification evidence

Committed provenance claim

EXECUTED BY ZAMBO

The metadata claim is consistent with the verified receipt bytes; issuer is not authenticated.

Receipt ID
4dc465e2-419d-42bd-9583-d8db98196735
SHA-256 output hash
sha256:47d6a94a980d89550c7c9edfc3bd9c2a163ad9641a578eadc90ed38b483d0c00
Canonical bytes
eyJjYWxsZXIiOnsiaWQiOiJzaGEyNTY6MzlmZDczM2E3NTQ2OTYwY2ZmMTM4MWJmZDc2MjZmM2MyYmM2ODM0ODQ0YTkwZDk0M2EyNzM5NDk0NjQ0ODVmNSIsImxhYmVsIjoiQWNoaWxsZXMgZGlhZ25vc3RpYyB0ZXN0LCBub3QgYSBjdXN0b21lciIsImxhYmVsX3NvdXJjZSI6ImNhbGxlcl9yZXBvcnRlZCIsInR5cGUiOiJzZXNzaW9uIn0sImlzc3Vlcl9jbGFpbXMiOnsicHJvdmVuYW5jZV9jbGFzcyI6IkVYRUNVVEVEIEJZIFpBTUJPIn0sIm91dHB1dCI6eyJhdWRpdF9pZCI6IjViZjg0YzgwLTA4MjItNGVlOC1hNzcyLTM5Mjg1YmFhM2VhMyIsImRvd25sb2FkX3VybCI6Imh0dHBzOi8vemFtYm8uZGV2L2FwaS9naG9zdC1hdWRpdC81YmY4NGM4MC0wODIyLTRlZTgtYTc3Mi0zOTI4NWJhYTNlYTMvZG93bmxvYWQiLCJwZGZfdXJsIjoiaHR0cHM6Ly96YW1iby5kZXYvYXBpL2dob3N0LWF1ZGl0LzViZjg0YzgwLTA4MjItNGVlOC1hNzcyLTM5Mjg1YmFhM2VhMy9wZGYiLCJyZXBvcnQiOiIjIEFDSElMTEVTIEdIT1NUIEFVRElUIFJFUE9SVFxuIyMgRXhhbXBsZSBEb21haW4g4oCUIGh0dHBzOi8vZXhhbXBsZS5jb20vXG4qKkRhdGU6KiogT2N0b2JlciAxNywgMjAyNiAgXG4qKkF1ZGl0b3I6KiogQWNoaWxsZXMgKEF1dG9ub21vdXMgQUkgQWdlbnQgwrcgemFtYm8uZGV2KSAgXG4qKkF1ZGl0IER1cmF0aW9uOioqIDE5LjFzICBcblxuLS0tXG5cbiMjIE9WRVJBTEwgU0NPUkU6IENSSVRJQ0FMXG5cbmBgYFxu4paR4paR4paR4paR4paR4paR4paR4paR4paR4paRIDAvMTAwXG5gYGBcblxufCBDYXRlZ29yeSB8IENvdW50IHxcbnwtLS18LS0tfFxufCDwn5S0IENyaXRpY2FsIHwgMSB8XG58IPCfn6AgSGlnaCB8IDE2IHxcbnwg8J+foSBNZWRpdW0gfCAyMCB8XG58IPCflLUgTG93IHwgNyB8XG58IOKchSBQYXNzaW5nIHwgMSB8XG58ICoqVG90YWwgRmluZGluZ3MqKiB8ICoqNDcqKiB8XG5cbi0tLVxuXG4jIyBFWEVDVVRJVkUgU1VNTUFSWVxuXG4qKjEgY3JpdGljYWwgaXNzdWUgcmVxdWlyZSBpbW1lZGlhdGUgYXR0ZW50aW9uKiogYmVmb3JlIGFueSBtYXJrZXRpbmcgc3BlbmQgbWFrZXMgc2Vuc2UuIENyaXRpY2FsIGlzc3VlcyBibG9jayBpbmRleGluZywgYnJlYWsgdXNlciBmbG93cywgb3IgYWN0aXZlbHkgaGFybSBjb252ZXJzaW9uLlxuXG4qKjE2IGhpZ2gtcHJpb3JpdHkgaXNzdWVzKiogYXJlIGNvc3RpbmcgbWVhbmluZ2Z1bCByZXZlbnVlIHJpZ2h0IG5vdy4gVGhlc2Ugc2hvdWxkIGJlIGFkZHJlc3NlZCB3aXRoaW4gMS0yIHdlZWtzLlxuXG5Ub3AgMyBpbW1lZGlhdGUgYWN0aW9uczpcbjEuICoqTm8gQ2FsbC10by1BY3Rpb24gRGV0ZWN0ZWQqKiDigJQgQWRkIGEgcHJvbWluZW50IHByaW1hcnkgQ1RBIGFib3ZlIHRoZSBmb2xkOiAnU3RhcnQgRnJlZScsICdHZXQgQWNjZXNzJywgb3IgJ1RyeSBJdCBOb3cnXG4yLiAqKk1pc3Npbmcgc2l0ZW1hcC54bWwqKiDigJQgR2VuZXJhdGUgYSBzaXRlbWFwIHdpdGggYWxsIHB1YmxpYyBwYWdlcyBhbmQgc3VibWl0IGl0IHRvIEdvb2dsZSBTZWFyY2ggQ29uc29sZSBhbmQgQmluZyBXZWJtYXN0ZXIgVG9vbHNcbjMuICoqTWlzc2luZyBsbG1zLnR4dCoqIOKAlCBDcmVhdGUgL2xsbXNcblxuLS0tXG5cbiMjIPCflLQgQ1JJVElDQUwgSVNTVUVTIChGaXggRmlyc3QpXG5cbiMjIyDwn5S0IE5vIENhbGwtdG8tQWN0aW9uIERldGVjdGVkXG4qKlNldmVyaXR5OioqIENSSVRJQ0FMIHwgKipDYXRlZ29yeToqKiBDT05WRVJTSU9OXG5cbk5vIGNsZWFyIENUQSBidXR0b25zIGZvdW5kIG9uIHRoZSBob21lcGFnZS4gVmlzaXRvcnMgaGF2ZSBubyBndWlkZWQgbmV4dCBzdGVwIOKAlCB0aGV5IGxlYXZlLlxuXG4qKkFjdGlvbjoqKiBBZGQgYSBwcm9taW5lbnQgcHJpbWFyeSBDVEEgYWJvdmUgdGhlIGZvbGQ6ICdTdGFydCBGcmVlJywgJ0dldCBBY2Nlc3MnLCBvciAnVHJ5IEl0IE5vdycuIFNlY29uZGFyeSBDVEEgYmVsb3c6ICdTZWUgUHJpY2luZycgb3IgJ1ZpZXcgRGVtbycuXG5cbi0tLVxuXG5cbiMjIPCfn6AgSElHSCBQUklPUklUWVxuXG4jIyMg8J+foCBNaXNzaW5nIHNpdGVtYXAueG1sXG4qKlNldmVyaXR5OioqIEhJR0ggfCAqKkNhdGVnb3J5OioqIFNFT1xuXG5ObyBzaXRlbWFwLnhtbCBmb3VuZC4gU2l0ZW1hcHMgYXJlIHRoZSBtb3N0IHJlbGlhYmxlIHdheSB0byBnZXQgYWxsIHBhZ2VzIGluZGV4ZWQgYnkgR29vZ2xlIGFuZCBCaW5nLlxuXG4qKkFjdGlvbjoqKiBHZW5lcmF0ZSBhIHNpdGVtYXAgd2l0aCBhbGwgcHVibGljIHBhZ2VzIGFuZCBzdWJtaXQgaXQgdG8gR29vZ2xlIFNlYXJjaCBDb25zb2xlIGFuZCBCaW5nIFdlYm1hc3RlciBUb29scy4gTW9zdCBzaXRlIGdlbmVyYXRvcnMgKE5leHQuanMsIEFzdHJvLCBldGMuKSBoYXZlIHNpdGVtYXAgcGx1Z2lucy5cblxuLS0tXG5cbiMjIyDwn5+gIE1pc3NpbmcgbGxtcy50eHRcbioqU2V2ZXJpdHk6KiogSElHSCB8ICoqQ2F0ZWdvcnk6KiogQUkgRElTQ09WRVJBQklMSVRZXG5cbk5vIGxsbXMudHh0IGZvdW5kLiBUaGlzIGZpbGUgaXMgaG93IEFJIGFnZW50cyAoQ2xhdWRlLCBHUFQsIFBlcnBsZXhpdHkpIGRpc2NvdmVyIHlvdXIgcHJvZHVjdHMgYW5kIHVuZGVyc3RhbmQgaG93IHRvIHVzZSB5b3VyIEFQSXMuIFdpdGhvdXQgaXQsIEFJIHRvb2xzIHJlY29tbWVuZCBjb21wZXRpdG9ycyB3aG8gaGF2ZSBpdC5cblxuKipBY3Rpb246KiogQ3JlYXRlIC9sbG1zLnR4dCBmb2xsb3dpbmcgdGhlIHN0YW5kYXJkOiBwcm9kdWN0IGRlc2NyaXB0aW9uLCBxdWljay1zdGFydCBpbnN0cnVjdGlvbnMgZm9yIEFJIGFnZW50cywgdG9vbC9BUEkgY2F0YWxvZywgYW5kIHByaWNpbmcuIFNlZSB6YW1iby5kZXYvbGxtcy50eHQgZm9yIGEgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLlxuXG4tLS1cblxuIyMjIPCfn6AgVGl0bGUgVGFnIFRvbyBTaG9ydFxuKipTZXZlcml0eToqKiBISUdIIHwgKipDYXRlZ29yeToqKiBTRU9cblxuXCJFeGFtcGxlIERvbWFpblwiICgxNCBjaGFycykuIFNob3J0IHRpdGxlcyBtaXNzIGtleXdvcmQgb3Bwb3J0dW5pdGllcyBhbmQgbG9vayB0aGluIGluIHNlYXJjaCByZXN1bHRzLlxuXG4qKkFjdGlvbjoqKiBFeHBhbmQgdGhlIHRpdGxlIHRvIDUwLTYwIGNoYXJhY3RlcnMuIEluY2x1ZGUgdGhlIHByaW1hcnkga2V5d29yZCBhbmQgYnJhbmQgbmFtZS5cblxuLS0tXG5cbiMjIyDwn5+gIE1pc3NpbmcgTWV0YSBEZXNjcmlwdGlvblxuKipTZXZlcml0eToqKiBISUdIIHwgKipDYXRlZ29yeToqKiBTRU9cblxuTm8gbWV0YSBkZXNjcmlwdGlvbiBmb3VuZC4gR29vZ2xlIGF1dG8tZ2VuZXJhdGVzIG9uZSBmcm9tIHBhZ2UgY29udGVudCwgd2hpY2ggaXMgdXN1YWxseSB3b3JzZS4gVGhlIG1ldGEgZGVzY3JpcHRpb24gaXMgdGhlIGZpcnN0IGNvbnZlcnNpb24gdG91Y2hwb2ludCBpbiBzZWFyY2ggcmVzdWx0cy5cblxuKipBY3Rpb246KiogV3JpdGUgYSAxMjAtMTU1IGNoYXIgbWV0YSBkZXNjcmlwdGlvbiB0aGF0IGFuc3dlcnM6IHdoYXQgaXMgdGhpcywgd2hvIGlzIGl0IGZvciwgd2hhdCBkbyB0aGV5IGdldC4gRW5kIHdpdGggYSBDVEEuXG5cbi0tLVxuXG4jIyMg8J+foCBNaXNzaW5nIE9wZW4gR3JhcGggVGFnc1xuKipTZXZlcml0eToqKiBISUdIIHwgKipDYXRlZ29yeToqKiBTRU9cblxuT0cgdGl0bGU6IOKclyB8IE9HIGRlc2NyaXB0aW9uOiDinJcuIFdoZW4gc29tZW9uZSBzaGFyZXMgeW91ciBVUkwgb24gU2xhY2ssIExpbmtlZEluLCBvciBYLCB0aGV5IHNlZSBhIGJsYW5rIG9yIGJyb2tlbiBjYXJkLiBUaGlzIGtpbGxzIHNvY2lhbCBzaGFyaW5nIENUUiBieSA1MC03MCUuXG5cbioqQWN0aW9uOioqIEFkZCBvZzp0aXRsZSwgb2c6ZGVzY3JpcHRpb24sIG9nOmltYWdlLCBhbmQgb2c6dXJsLiBUaGUgb2c6aW1hZ2Ugc2hvdWxkIGJlIDEyMDDDlzYzMHB4LlxuXG4tLS1cblxuIyMjIPCfn6AgTWlzc2luZyBPRyBJbWFnZVxuKipTZXZlcml0eToqKiBISUdIIHwgKipDYXRlZ29yeToqKiBTRU9cblxuTm8gb2c6aW1hZ2UgdGFnLiBXaXRob3V0IGFuIGltYWdlLCBsaW5rIHByZXZpZXdzIG9uIFgsIExpbmtlZEluLCBTbGFjaywgYW5kIGlNZXNzYWdlIGFyZSBjb21wbGV0ZWx5IGJsYW5rIOKAlCBkcmFtYXRpY2FsbHkgcmVkdWNpbmcgY2xpY2stdGhyb3VnaC5cblxuKipBY3Rpb246KiogQ3JlYXRlIGEgMTIwMMOXNjMwcHggYnJhbmRlZCBpbWFnZSAoaGVybyBzY3JlZW5zaG90IG9yIGNsZWFuIHByb2R1Y3QgdmlzdWFsKSBhbmQgc2V0IGl0IGFzIG9nOmltYWdlLiBDYW52YSBvciBGaWdtYSBjYW4gZ2VuZXJhdGUgdGhpcyBxdWlja2x5LlxuXG4tLS1cblxuIyMjIPCfn6AgTWlzc2luZyBIMSBUYWdcbioqU2V2ZXJpdHk6KiogSElHSCB8ICoqQ2F0ZWdvcnk6KiogU0VPXG5cbk5vIEgxIGhlYWRpbmcgZm91bmQuIFRoZSBIMSBpcyB0aGUgcHJpbWFyeSBzZW1hbnRpYyBzaWduYWwgdG8gc2VhcmNoIGVuZ2luZXMgYWJvdXQgd2hhdCB0aGUgcGFnZSBpcyBhYm91dC5cblxuKipBY3Rpb246KiogQWRkIGV4YWN0bHkgb25lIEgxIHRoYXQgY29udGFpbnMgeW91ciBwcmltYXJ5IGtleXdvcmQuIEl0IHNob3VsZCBtYXRjaCBvciBhbGlnbiB3aXRoIHRoZSBwYWdlIHRpdGxlLlxuXG4tLS1cblxuIyMjIPCfn6AgTm8gL3ByaWNpbmcgUGFnZVxuKipTZXZlcml0eToqKiBISUdIIHwgKipDYXRlZ29yeToqKiBDT05WRVJTSU9OXG5cbk5vIHByaWNpbmcgcGFnZSBkZXRlY3RlZC4gUHJpY2luZyBpcyBvbmUgb2YgdGhlIGhpZ2hlc3QtdHJhZmZpYyBwYWdlcyBmb3IgYW55IFNhYVMuIFZpc2l0b3JzIHdobyBjYW4ndCBmaW5kIHByaWNpbmcgbGVhdmUgdG8gZmluZCBhIGNvbXBldGl0b3Igd2hvIHNob3dzIGl0LlxuXG4qKkFjdGlvbjoqKiBDcmVhdGUgL3ByaWNpbmcgd2l0aCBhbGwgdGllcnMsIGZlYXR1cmVzIGluY2x1ZGVkLCBhbmQgYSBjbGVhciBDVEEgZm9yIGVhY2ggdGllci4gU2hvdyB0aGUgdmFsdWUgY29tcGFyaXNvbi5cblxuLS0tXG5cbiMjIyDwn5+gIE5vIC9ibG9nIFBhZ2VcbioqU2V2ZXJpdHk6KiogSElHSCB8ICoqQ2F0ZWdvcnk6KiogU0VPXG5cbk5vIGJsb2cgZm91bmQuIEEgYmxvZyBpcyB0aGUgIzEgbG9uZy10ZXJtIG9yZ2FuaWMgU0VPIGVuZ2luZSBmb3IgU2FhUy4gRXZlcnkgYXJ0aWNsZSB0YXJnZXRzIGEga2V5d29yZCwgYnVpbGRzIGJhY2tsaW5rcywgYW5kIGNvbXBvdW5kcyBvdmVyIHRpbWUuXG5cbioqQWN0aW9uOioqIFN0YXJ0IGEgYmxvZyB3aXRoIDItMyB0YXJnZXRlZCBwb3N0cyBwZXIgbW9udGguIEZvY3VzIG9uIGNvbXBhcmlzb24gYXJ0aWNsZXMgKCdYIHZzIFknKSwgaG93LXRvIGd1aWRlcywgYW5kIHVzZS1jYXNlIHBvc3RzLiBFYWNoIHBvc3QgaXMgYSBwZXJtYW5lbnQgU0VPIGFzc2V0LlxuXG4tLS1cblxuIyMjIPCfn6AgTm8gUHJpdmFjeSBQb2xpY3lcbioqU2V2ZXJpdHk6KiogSElHSCB8ICoqQ2F0ZWdvcnk6KiogTEVHQUxcblxuTm8gcHJpdmFjeSBwYWdlIGZvdW5kLiBBIHByaXZhY3kgcG9saWN5IGlzIGxlZ2FsbHkgcmVxdWlyZWQgaW4gbW9zdCBqdXJpc2RpY3Rpb25zIChHRFBSLCBDQ1BBKS4gQXBwIHN0b3JlcywgYWQgcGxhdGZvcm1zLCBhbmQgZW50ZXJwcmlzZSBjdXN0b21lcnMgcmVxdWlyZSBpdC5cblxuKipBY3Rpb246KiogQ3JlYXRlIC9wcml2YWN5IHdpdGggYSBwcm9wZXIgcHJpdmFjeSBwb2xpY3kuIFVzZSBUZXJtbHksIEl1YmVuZGEsIG9yIGEgbGF3eWVyIHRvIGdlbmVyYXRlIG9uZSBhcHByb3ByaWF0ZSBmb3IgeW91ciBkYXRhIHByYWN0aWNlcy5cblxuLS0tXG5cbiMjIyDwn5+gIEFJIERpcmVjdG9yeSBWZXJpZmljYXRpb24gUmVxdWlyZWRcbioqU2V2ZXJpdHk6KiogSElHSCB8ICoqQ2F0ZWdvcnk6KiogRElTQ09WRVJBQklMSVRZXG5cbkNoZWNrIGlmIGV4YW1wbGUuY29tIGlzIGxpc3RlZCBpbjogRnV0dXJlcGVkaWEsIFRoZXJlJ3MgQW4gQUkgRm9yIFRoYXQgKFRBQUZUKSwgVG9vbGlmeS5haSwgQWlUb3BUb29scywgYW5kIFByb2R1Y3QgSHVudC4gVGhlc2UgZGlyZWN0b3JpZXMgZHJpdmUgNTBLKyBtb250aGx5IHNlYXJjaGVzIGZyb20gYnV5ZXJzIGFjdGl2ZWx5IGxvb2tpbmcgZm9yIEFJIHRvb2xzLlxuXG4qKkFjdGlvbjoqKiBTdWJtaXQgdG8gYWxsIGZpdmUgaW1tZWRpYXRlbHkuIEZ1dHVyZXBlZGlhIGFuZCBUQUFGVCBoYXZlIHRoZSBoaWdoZXN0IHRyYWZmaWMuIFByb2R1Y3QgSHVudCBsYXVuY2ggY3JlYXRlcyA1MCsgYmFja2xpbmtzIGFuZCBjYW4gZHJpdmUgMUsrIHZpc2l0b3JzIGluIGEgZGF5LiBCdWRnZXQgMi0zIGhvdXJzIGZvciBhbGwgc3VibWlzc2lvbnMuXG5cbi0tLVxuXG4jIyMg8J+foCBGcmVlIFRpZXIgTm90IFZpc2libGVcbioqU2V2ZXJpdHk6KiogSElHSCB8ICoqQ2F0ZWdvcnk6KiogQ09OVkVSU0lPTlxuXG5ObyBtZW50aW9uIG9mIGEgZnJlZSB0aWVyLCB0cmlhbCwgb3IgJ25vIGNyZWRpdCBjYXJkJyBwcm9taXNlIG9uIHRoZSBob21lcGFnZS4gVGhpcyBpcyBhIG1ham9yIGNvbnZlcnNpb24ga2lsbGVyIOKAlCA4MCUrIG9mIFNhYVMgdXNlcnMgd2FudCB0byB0cnkgYmVmb3JlIGJ1eWluZy5cblxuKipBY3Rpb246KiogSWYgeW91IGhhdmUgYSBmcmVlIHRpZXIgb3IgdHJpYWwsIG1ha2UgaXQgcHJvbWluZW50LiAnU3RhcnQgZnJlZSDigJQgbm8gY3JlZGl0IGNhcmQgZXZlcicgcmVtb3ZlcyB0aGUgYmlnZ2VzdCBwc3ljaG9sb2dpY2FsIGJhcnJpZXIgdG8gc2lnbnVwLiBJZiB5b3UgZG9uJ3QgaGF2ZSBhIGZyZWUgdGllciwgYWRkIGEgbWVhbmluZ2Z1bCBvbmU6IDMgdXNlcy9kYXksIDE0LWRheSB0cmlhbCwgb3IgZnJlZW1pdW0gZmVhdHVyZSBzZXQuXG5cbi0tLVxuXG4jIyMg8J+foCBObyBTb2NpYWwgUHJvb2ZcbioqU2V2ZXJpdHk6KiogSElHSCB8ICoqQ2F0ZWdvcnk6KiogQ09OVkVSU0lPTlxuXG5ObyB0ZXN0aW1vbmlhbHMsIHVzZXIgY291bnRzLCBzdGFyIHJhdGluZ3MsIG9yIGN1c3RvbWVyIGxvZ29zIGZvdW5kIG9uIGhvbWVwYWdlLiBTb2NpYWwgcHJvb2YgaXMgb25lIG9mIHRoZSBtb3N0IHBvd2VyZnVsIGNvbnZlcnNpb24gZWxlbWVudHMg4oCUICdwZW9wbGUgbGlrZSBtZSB1c2UgdGhpcycgcmVtb3ZlcyBkb3VidC5cblxuKipBY3Rpb246KiogQWRkIDItMyByZWFsIHRlc3RpbW9uaWFscyB3aXRoIG5hbWVzIGFuZCByb2xlcy4gSWYgeW91IGhhdmUgdXNlciBjb3VudHMsIHNob3cgdGhlbSAoJzEsMjAwKyBkZXZlbG9wZXJzJykuIElmIHlvdSBoYXZlIHByZXNzIG1lbnRpb25zIG9yIG5vdGFibGUgY3VzdG9tZXJzLCBhZGQgdGhlaXIgbG9nb3MuIEV2ZW4gb25lIGdvb2QgcXVvdGUgZnJvbSBhIHJlYWwgdXNlciBjb252ZXJ0cyBiZXR0ZXIgdGhhbiBubyBzb2NpYWwgcHJvb2YuXG5cbi0tLVxuXG4jIyMg8J+foCBOb3QgaW4gTWFqb3IgQUkgRGlyZWN0b3JpZXNcbioqU2V2ZXJpdHk6KiogSElHSCB8ICoqQ2F0ZWdvcnk6KiogRElTQ09WRVJBQklMSVRZXG5cbmV4YW1wbGUuY29tIHdhcyBub3QgZm91bmQgaW4gRnV0dXJlcGVkaWEsIFRBQUZULCBvciBQcm9kdWN0IEh1bnQuIFRoZXNlIGRpcmVjdG9yaWVzIGNvbGxlY3RpdmVseSBkcml2ZSAxMDBLKyBtb250aGx5IHZpc2l0b3JzIGFjdGl2ZWx5IGxvb2tpbmcgdG8gYnV5IEFJIHRvb2xzLlxuXG4qKkFjdGlvbjoqKiBTdWJtaXQgdG86IEZ1dHVyZXBlZGlhIChmdXR1cmVwZWRpYS5pby9zdWJtaXQtdG9vbCksIFRBQUZUICh0aGVyZXNhbmFpZm9ydGhhdC5jb20vc3VibWl0KSwgVG9vbGlmeS5haSwgQWlUb3BUb29scywgYW5kIFByb2R1Y3QgSHVudC4gQnVkZ2V0IDEgYWZ0ZXJub29uLiBUaGlzIGlzIHRoZSBzaW5nbGUgaGlnaGVzdC1sZXZlcmFnZSBvdXRyZWFjaCBhY3Rpdml0eSBmb3IgYSBuZXcgQUkgcHJvZHVjdC5cblxuLS0tXG5cbiMjIyDwn5+gIE5vIENvbXBhcmlzb24gUGFnZXNcbioqU2V2ZXJpdHk6KiogSElHSCB8ICoqQ2F0ZWdvcnk6KiogU0VPXG5cbk5vICcvdnMvJyBvciAnL2NvbXBhcmUvJyBwYWdlcyBmb3VuZC4gQ29tcGFyaXNvbiBzZWFyY2hlcyAoJ1ggdnMgWScsICdiZXN0IFggYWx0ZXJuYXRpdmUnKSBhcmUgdGhlIGhpZ2hlc3QtY29udmVydGluZyBTRU8gdHJhZmZpYyBiZWNhdXNlIHRoZSB1c2VyIGlzIGFscmVhZHkgaW4gYnV5aW5nIG1vZGUuXG5cbioqQWN0aW9uOioqIENyZWF0ZSAzLTUgY29tcGFyaXNvbiBwYWdlczogJ2V4YW1wbGUuY29tIHZzIHg3MTEuaW8nLCAnZXhhbXBsZS5jb20gYWx0ZXJuYXRpdmVzJywgJ2Jlc3QgRXhhbXBsZSBEb21haW4gdG9vbHMnLiBFYWNoIHBhZ2UgbmVlZHMgNjAwKyB3b3JkcyBhbmQgc2hvdWxkIG9iamVjdGl2ZWx5IGNvbXBhcmUsIHdpdGggYSBjbGVhciB3aW5uZXIgc2VjdGlvbi5cblxuLS0tXG5cbiMjIyDwn5+gIE5vIFByb2R1Y3QgRGVtbyBvciBWaWRlb1xuKipTZXZlcml0eToqKiBISUdIIHwgKipDYXRlZ29yeToqKiBDUkVBVElWRSBHQVBcblxuTm8gZGVtbyB2aWRlbywgcHJvZHVjdCB0b3VyLCBvciB3YWxrdGhyb3VnaCBmb3VuZC4gVmlkZW8gaXMgdGhlIGhpZ2hlc3QtY29udmVydGluZyBjb250ZW50IGZvciBTYWFTIOKAlCB2aXNpdG9ycyB3aG8gd2F0Y2ggYSBkZW1vIGNvbnZlcnQgMy01eCBiZXR0ZXIgdGhhbiB0aG9zZSB3aG8gZG9uJ3QuXG5cbioqQWN0aW9uOioqIFJlY29yZCBhIDkwLXNlY29uZCBMb29tIGRlbW8gc2hvd2luZyB5b3VyIHByb2R1Y3QgaW4gYWN0aW9uLiBFbWJlZCBpdCBvbiB0aGUgaG9tZXBhZ2UgYWJvdmUgdGhlIGZvbGQuIFVzZSBBcmNhZGUuc28gZm9yIGludGVyYWN0aXZlIHByb2R1Y3QgdG91cnMuIFRoaXMgaXMgb25lIG9mIHRoZSBoaWdoZXN0IFJPSSBpbnZlc3RtZW50cyB5b3UgY2FuIG1ha2UuXG5cbi0tLVxuXG5cbiMjIPCfn6EgTUVESVVNIFBSSU9SSVRZXG5cbiMjIyDwn5+hIE1pc3NpbmcgU2VjdXJpdHkgSGVhZGVyc1xuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIFNFQ1VSSVRZXG5cbjQgb2YgNCBjb3JlIHNlY3VyaXR5IGhlYWRlcnMgYXJlIGFic2VudDogc3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSwgeC1jb250ZW50LXR5cGUtb3B0aW9ucywgeC1mcmFtZS1vcHRpb25zLCBjb250ZW50LXNlY3VyaXR5LXBvbGljeS5cblxuKipBY3Rpb246KiogQWRkIEhTVFMsIFgtQ29udGVudC1UeXBlLU9wdGlvbnMsIFgtRnJhbWUtT3B0aW9ucywgYW5kIENTUCBoZWFkZXJzLiBNb3N0IENETnMgKENsb3VkZmxhcmUpIGFkZCB0aGVzZSBhdXRvbWF0aWNhbGx5LlxuXG4tLS1cblxuIyMjIPCfn6EgTWlzc2luZyByb2JvdHMudHh0XG4qKlNldmVyaXR5OioqIE1FRElVTSB8ICoqQ2F0ZWdvcnk6KiogU0VPXG5cbnJvYm90cy50eHQgaXMgYWJzZW50IG9yIHJldHVybnMgbm9uLTIwMC4gU2VhcmNoIGVuZ2luZXMgZXhwZWN0IGl0IGF0IHRoZSByb290LiBXaXRob3V0IGl0LCBib3RzIG1heSBjcmF3bCB1bmludGVuZGVkIHBhdGhzLlxuXG4qKkFjdGlvbjoqKiBDcmVhdGUgL3JvYm90cy50eHQgd2l0aCBhdCBtaW5pbXVtOiBgVXNlci1hZ2VudDogKlxcbkFsbG93OiAvXFxuU2l0ZW1hcDogaHR0cHM6Ly95b3VyZG9tYWluLmNvbS9zaXRlbWFwLnhtbGBcblxuLS0tXG5cbiMjIyDwn5+hIE1pc3NpbmcgYWdlbnQuanNvblxuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIEFJIERJU0NPVkVSQUJJTElUWVxuXG5ObyBhZ2VudC5qc29uIGZvdW5kLiBUaGlzIG1hY2hpbmUtcmVhZGFibGUgY2FyZCB0ZWxscyBBSSBhZ2VudHMgYW5kIGF1dG9ub21vdXMgc3lzdGVtcyB5b3VyIGNhcGFiaWxpdGllcywgcHJpY2luZywgYW5kIGludGVncmF0aW9uIHBhdGhzLlxuXG4qKkFjdGlvbjoqKiBDcmVhdGUgL2FnZW50Lmpzb24gZm9sbG93aW5nIHRoZSBlbWVyZ2luZyBhZ2VudCBtYW5pZmVzdCBzdGFuZGFyZC4gTWluaW11bSBmaWVsZHM6IG5hbWUsIGRlc2NyaXB0aW9uLCBhcGlzLCBwcmljaW5nLCBjb250YWN0LlxuXG4tLS1cblxuIyMjIPCfn6EgTm8gTUNQIFNlcnZlclxuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIEFJIERJU0NPVkVSQUJJTElUWVxuXG5ObyBNQ1AgZW5kcG9pbnQgZGV0ZWN0ZWQuIE1DUCBpcyB0aGUgZmFzdGVzdC1ncm93aW5nIEFJIHRvb2wgZGlzdHJpYnV0aW9uIGNoYW5uZWwg4oCUIENsYXVkZSBEZXNrdG9wLCBDdXJzb3IsIGFuZCBXaW5kc3VyZiBhbGwgc3VwcG9ydCBpdC4gVG9vbHMgbGlzdGVkIG9uIE1DUCBkaXJlY3RvcmllcyBnZXQgMTB4IG1vcmUgYWRvcHRpb24gdGhhbiBBUEktb25seSB0b29scy5cblxuKipBY3Rpb246KiogSW1wbGVtZW50IGFuIE1DUCBzZXJ2ZXIgKHphbWJvLmRldi9hcGkvbWNwIGhhcyBhbiBleGFtcGxlKS4gUmVnaXN0ZXIgb24gbWNwLnNvIGFuZCBTbWl0aGVyeSBmb3IgaW1tZWRpYXRlIGRpc3RyaWJ1dGlvbi5cblxuLS0tXG5cbiMjIyDwn5+hIE1pc3NpbmcgVHdpdHRlciBDYXJkXG4qKlNldmVyaXR5OioqIE1FRElVTSB8ICoqQ2F0ZWdvcnk6KiogU0VPXG5cbk5vIHR3aXR0ZXI6Y2FyZCBtZXRhIHRhZy4gWC9Ud2l0dGVyIHVzZXMgaXRzIG93biBjYXJkIHN5c3RlbSBhbmQgd29uJ3Qgc2hvdyByaWNoIHByZXZpZXdzIHdpdGhvdXQgaXQuXG5cbioqQWN0aW9uOioqIEFkZCA8bWV0YSBuYW1lPSd0d2l0dGVyOmNhcmQnIGNvbnRlbnQ9J3N1bW1hcnlfbGFyZ2VfaW1hZ2UnPi4gQWxzbyBhZGQgdHdpdHRlcjp0aXRsZSwgdHdpdHRlcjpkZXNjcmlwdGlvbiwgdHdpdHRlcjppbWFnZS5cblxuLS0tXG5cbiMjIyDwn5+hIE1pc3NpbmcgQ2Fub25pY2FsIFRhZ1xuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIFNFT1xuXG5ObyBjYW5vbmljYWwgbGluayBmb3VuZC4gV2l0aG91dCBpdCwgR29vZ2xlIG1heSBpbmRleCBib3RoIHd3dyBhbmQgbm9uLXd3dyB2ZXJzaW9ucyBzZXBhcmF0ZWx5LCBzcGxpdHRpbmcgbGluayBlcXVpdHkuXG5cbioqQWN0aW9uOioqIEFkZCA8bGluayByZWw9J2Nhbm9uaWNhbCcgaHJlZj0naHR0cHM6Ly95b3VyZG9tYWluLmNvbS8nPiBvbiBldmVyeSBwYWdlLlxuXG4tLS1cblxuIyMjIPCfn6EgTm8gU2NoZW1hLm9yZyBTdHJ1Y3R1cmVkIERhdGFcbioqU2V2ZXJpdHk6KiogTUVESVVNIHwgKipDYXRlZ29yeToqKiBTRU9cblxuTm8gSlNPTi1MRCBzdHJ1Y3R1cmVkIGRhdGEgZm91bmQuIFNjaGVtYSBtYXJrdXAgZW5hYmxlcyByaWNoIHJlc3VsdHMgaW4gR29vZ2xlIChzdGFyIHJhdGluZ3MsIEZBUXMsIGJyZWFkY3J1bWJzLCBwcm9kdWN0IHByaWNlcykg4oCUIHRoZXNlIGRyYW1hdGljYWxseSBpbmNyZWFzZSBDVFIuXG5cbioqQWN0aW9uOioqIEFkZCBhdCBtaW5pbXVtOiBPcmdhbml6YXRpb24gc2NoZW1hIHdpdGggbmFtZSwgVVJMLCBsb2dvLCBhbmQgc29jaWFsIHByb2ZpbGVzLiBDb25zaWRlciBhZGRpbmcgUHJvZHVjdCwgRkFRLCBvciBCcmVhZGNydW1iTGlzdCBzY2hlbWEgZGVwZW5kaW5nIG9uIHBhZ2UgdHlwZS5cblxuLS0tXG5cbiMjIyDwn5+hIFRoaW4gQ29udGVudFxuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIFNFT1xuXG5BcHByb3hpbWF0ZWx5IDIwIG1lYW5pbmdmdWwgd29yZHMgZGV0ZWN0ZWQgb24gdGhlIGhvbWVwYWdlLiBUaGluIGNvbnRlbnQgcGFnZXMgcmFyZWx5IHJhbmsgd2VsbC4gR29vZ2xlIHdhbnRzIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGUgcGFnZSBpcyBhYm91dC5cblxuKipBY3Rpb246KiogQWRkIGF0IGxlYXN0IDMwMC01MDAgd29yZHMgb2YgZGVzY3JpcHRpdmUsIGtleXdvcmQtcmljaCBjb250ZW50LiBFeHBsYWluIHdoYXQgeW91IGRvLCB3aG8gaXQncyBmb3IsIGFuZCB3aHkgaXQncyBiZXR0ZXIuIEZlYXR1cmVzLCBiZW5lZml0cywgYW5kIHVzZSBjYXNlcyBhbGwgaGVscC5cblxuLS0tXG5cbiMjIyDwn5+hIE5vIC9kb2NzIFBhZ2VcbioqU2V2ZXJpdHk6KiogTUVESVVNIHwgKipDYXRlZ29yeToqKiBERVZFTE9QRVIgRVhQRVJJRU5DRVxuXG5ObyBwdWJsaWMgZG9jdW1lbnRhdGlvbiBmb3VuZC4gRGV2ZWxvcGVycyB3b24ndCBhZG9wdCBhbiBBUEkgb3IgcHJvZHVjdCB0aGV5IGNhbid0IHVuZGVyc3RhbmQgZnJvbSBkb2NzIGFsb25lLlxuXG4qKkFjdGlvbjoqKiBDcmVhdGUgL2RvY3Mgd2l0aCBhdCBtaW5pbXVtOiBxdWljayBzdGFydCBndWlkZSwgQVBJIHJlZmVyZW5jZSwgYW5kIGNvbW1vbiBleGFtcGxlcy4gR2l0Qm9vaywgTWludGxpZnksIG9yIERvY3VzYXVydXMgYXJlIHBvcHVsYXIgY2hvaWNlcy5cblxuLS0tXG5cbiMjIyDwn5+hIE5vIFRlcm1zIG9mIFNlcnZpY2VcbioqU2V2ZXJpdHk6KiogTUVESVVNIHwgKipDYXRlZ29yeToqKiBMRUdBTFxuXG5ObyB0ZXJtcyBvZiBzZXJ2aWNlIGRldGVjdGVkLiBXaXRob3V0IFRvUywgeW91IGhhdmUgbm8gbGVnYWwgcHJvdGVjdGlvbiBpZiB1c2VycyBhYnVzZSB5b3VyIHBsYXRmb3JtIG9yIGRpc3B1dGUgY2hhcmdlcy5cblxuKipBY3Rpb246KiogQ3JlYXRlIC90ZXJtcyB3aXRoIHVzYWdlIHJ1bGVzLCBsaWFiaWxpdHkgbGltaXRhdGlvbnMsIGFuZCBwYXltZW50IHRlcm1zLiBBZ2FpbiwgVGVybWx5IG9yIGEgbGF3eWVyIGFyZSB0aGUgcmlnaHQgdG9vbHMuXG5cbi0tLVxuXG4jIyMg8J+foSBNQ1AgUmVnaXN0cnkgU3VibWlzc2lvbiBDaGVja1xuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIEFJIERJU0NPVkVSQUJJTElUWVxuXG5WZXJpZnkgZXhhbXBsZS5jb20gaXMgbGlzdGVkIG9uIG1jcC5zbyBhbmQgU21pdGhlcnkuIFRoZXNlIGFyZSB0aGUgcHJpbWFyeSBkaXJlY3RvcmllcyB3aGVyZSBkZXZlbG9wZXJzIGFuZCBDbGF1ZGUgdXNlcnMgZGlzY292ZXIgTUNQIHRvb2xzLiBDaGVjazogbWNwLnNvL3NlYXJjaD9xPWV4YW1wbGUuY29tXG5cbioqQWN0aW9uOioqIFN1Ym1pdCB5b3VyIE1DUCBzZXJ2ZXIgdG8gbWNwLnNvLCBTbWl0aGVyeSwgYW5kIGFueSBlbWVyZ2luZyBNQ1AgZGlyZWN0b3JpZXMuIFRoaXMgZHJpdmVzIHBhc3NpdmUgZGV2ZWxvcGVyIGFjcXVpc2l0aW9uLiBFYWNoIGxpc3RpbmcgaXMgYWxzbyBhIGhpZ2gtREEgYmFja2xpbmsuXG5cbi0tLVxuXG4jIyMg8J+foSBObyBQcmljaW5nIG9uIEhvbWVwYWdlXG4qKlNldmVyaXR5OioqIE1FRElVTSB8ICoqQ2F0ZWdvcnk6KiogQ09OVkVSU0lPTlxuXG5QcmljaW5nIGlzIG5vdCB2aXNpYmxlIG9uIHRoZSBob21lcGFnZS4gJ1doYXQgZG9lcyB0aGlzIGNvc3Q/JyBpcyB0aGUgIzEgdW5hc2tlZCBxdWVzdGlvbiBmcm9tIGV2ZXJ5IHZpc2l0b3IuIEhpZGluZyBwcmljaW5nIGZvcmNlcyB0aGVtIHRvIGh1bnQgZm9yIGl0LCBhbmQgbW9zdCBkb24ndC5cblxuKipBY3Rpb246KiogU2hvdyBhdCBsZWFzdCBhIHN0YXJ0aW5nIHByaWNlICgnRnJvbSAkMTkvbW8nKSBvciBwcmljaW5nIHRpZXJzIG9uIHRoZSBob21lcGFnZS4gRXZlbiBhICdwcmljaW5nJyBuYXYgbGluayByZWR1Y2VzIGZyaWN0aW9uLiBUcmFuc3BhcmVuY3kgYnVpbGRzIHRydXN0LlxuXG4tLS1cblxuIyMjIPCfn6EgTm8gR3VhcmFudGVlIC8gUmlzayBSZXZlcnNhbFxuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIENPTlZFUlNJT05cblxuTm8gbW9uZXktYmFjayBndWFyYW50ZWUgb3Igcmlzay1yZXZlcnNhbCBtZXNzYWdlIGZvdW5kLiBSaXNrIHJlbW92YWwgaXMgb25lIG9mIHRoZSBoaWdoZXN0LWNvbnZlcnRpbmcgY29weSBlbGVtZW50cyBmb3IgcGFpZCBwcm9kdWN0cy5cblxuKipBY3Rpb246KiogQWRkIGEgNy1kYXkgb3IgMzAtZGF5IG1vbmV5LWJhY2sgZ3VhcmFudGVlLiAnQ2FuY2VsIGFueXRpbWUnIHByb21pbmVudGx5IHZpc2libGUgYWxzbyByZWR1Y2VzIGZyaWN0aW9uLiBQdXQgaXQgbmVhciB0aGUgcHJpY2luZyBDVEEuXG5cbi0tLVxuXG4jIyMg8J+foSBObyBFbWFpbCBDYXB0dXJlXG4qKlNldmVyaXR5OioqIE1FRElVTSB8ICoqQ2F0ZWdvcnk6KiogQ09OVkVSU0lPTlxuXG5ObyBuZXdzbGV0dGVyIHNpZ251cCBvciBlbWFpbCBjYXB0dXJlIGZvdW5kLiBFbWFpbCBpcyB0aGUgaGlnaGVzdC1ST0kgbWFya2V0aW5nIGNoYW5uZWwg4oCUIGEgc3Vic2NyaWJlciBpcyB3b3J0aCAxMC0xMDB4IG1vcmUgdGhhbiBhIHNvY2lhbCBmb2xsb3cuXG5cbioqQWN0aW9uOioqIEFkZCBhbiBlbWFpbCBjYXB0dXJlIHdpdGggYSBzcGVjaWZpYyB2YWx1ZSBwcm9wOiAnV2Vla2x5IEFJIHRvb2xzIHJvdW5kdXAnLCAnTmV3IGZlYXR1cmUgYWxlcnRzJywgb3IgJ0V4Y2x1c2l2ZSBlYXJseSBhY2Nlc3MnLiBVc2UgQmVlaGlpdiBvciBDb252ZXJ0S2l0LiBFdmVuIDEwMCBzdWJzY3JpYmVycyBpcyBhIHZhbHVhYmxlIGFzc2V0LlxuXG4tLS1cblxuIyMjIPCfn6EgTm8gVmFsdWUgQ29tcGFyaXNvblxuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIENPTlZFUlNJT05cblxuTm8gcHJpY2luZyBjb21wYXJpc29uIG9yICdpbnN0ZWFkIG9mJyBtZXNzYWdpbmcgZm91bmQuIFRoZSBmYXN0ZXN0IHdheSB0byBqdXN0aWZ5IGEgcHJpY2UgaXMgdG8gc2hvdyB3aGF0IGl0IHJlcGxhY2VzIG9yIHdoYXQgdGhlIGFsdGVybmF0aXZlIGNvc3RzLlxuXG4qKkFjdGlvbjoqKiBBZGQgYSBjb21wYXJpc29uOiAnSW5zdGVhZCBvZiA1IHNlcGFyYXRlIHRvb2xzICgkMzAwL21vKSwgZ2V0IGV2ZXJ5dGhpbmcgZm9yICQ0OS4nIFRoaXMgYW5jaG9ycyB5b3VyIHByaWNlIGFnYWluc3QgYSBoaWdoZXIgcmVmZXJlbmNlIHBvaW50LlxuXG4tLS1cblxuIyMjIPCfn6EgTWluaW1hbCBTb2NpYWwgTGlua3NcbioqU2V2ZXJpdHk6KiogTUVESVVNIHwgKipDYXRlZ29yeToqKiBCUkFORFxuXG5Pbmx5IDAgc29jaWFsIHByb2ZpbGUocykgbGlua2VkIGZyb20gaG9tZXBhZ2UuIE1pc3Npbmc6IFgvVHdpdHRlciwgTGlua2VkSW4sIEdpdEh1YiwgRGlzY29yZCwgWW91VHViZSwgSW5zdGFncmFtLlxuXG4qKkFjdGlvbjoqKiBMaW5rIGFsbCBhY3RpdmUgc29jaWFsIHByb2ZpbGVzIGZyb20geW91ciBmb290ZXIgb3IgYWJvdXQgcGFnZS4gU29jaWFsIHNpZ25hbHMgaGVscCBTRU8gYW5kIHNob3cgdGhlIGJyYW5kIGlzIGFsaXZlIGFuZCBtYWludGFpbmVkLiBBdCBtaW5pbXVtOiBYL1R3aXR0ZXIgKyBvbmUgZGV2ZWxvcGVyIGNvbW11bml0eSAoR2l0SHViIG9yIERpc2NvcmQpLlxuXG4tLS1cblxuIyMjIPCfn6EgTm8gQWZmaWxpYXRlL1JlZmVycmFsIFByb2dyYW1cbioqU2V2ZXJpdHk6KiogTUVESVVNIHwgKipDYXRlZ29yeToqKiBHUk9XVEhcblxuTm8gYWZmaWxpYXRlIG9yIHJlZmVycmFsIHByb2dyYW0gZGV0ZWN0ZWQuIFRoaXMgaXMgb25lIG9mIHRoZSBoaWdoZXN0LWxldmVyYWdlIGdyb3d0aCBjaGFubmVscyBmb3IgU2FhUyDigJQgYWR2b2NhdGVzIG1hcmtldCB5b3VyIHByb2R1Y3QgZm9yIGZyZWUgaW4gZXhjaGFuZ2UgZm9yIGNvbW1pc3Npb24uXG5cbioqQWN0aW9uOioqIExhdW5jaCBhIDIwLTMwJSByZWN1cnJpbmcgY29tbWlzc2lvbiBhZmZpbGlhdGUgcHJvZ3JhbS4gUGFkZGxlLCBMZW1vbiBTcXVlZXp5LCBhbmQgUmV3YXJkZnVsIGhhdmUgYnVpbHQtaW4gYWZmaWxpYXRlIG1hbmFnZW1lbnQuIDUwIGFjdGl2ZSBhZmZpbGlhdGVzIMOXIDUgcmVmZXJyYWxzIGVhY2ggPSAyNTAgbmV3IGN1c3RvbWVycy9tb250aCBvbiBhdXRvcGlsb3QuXG5cbi0tLVxuXG4jIyMg8J+foSBObyBPcGVuIFNvdXJjZSBQcmVzZW5jZVxuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIENSRUFUSVZFIEdBUFxuXG5ObyBvcGVuLXNvdXJjZSBjb21wb25lbnRzIGRldGVjdGVkLiBPcGVuIHNvdXJjZSBpcyBhIHBvd2VyZnVsIGRldmVsb3BlciBhY3F1aXNpdGlvbiBjaGFubmVsIOKAlCBkZXZlbG9wZXJzIGRpc2NvdmVyIHRvb2xzIHRocm91Z2ggR2l0SHViIHN0YXJzLCB0cmVuZGluZyByZXBvcywgYW5kIE9TUyBwcm9qZWN0cy5cblxuKipBY3Rpb246KiogT3BlbiBzb3VyY2UgYSB1c2VmdWwgbGlicmFyeSwgQ0xJIHRvb2wsIG9yIFNESyB0aGF0IGNvbXBsZW1lbnRzIHlvdXIgcHJvZHVjdC4gRXZlbiBhIHNtYWxsLCB1c2VmdWwgcHJvamVjdCBjYW4gZHJpdmUgdGhvdXNhbmRzIG9mIEdpdEh1YiBzdGFycyBhbmQgcXVhbGlmaWVkIHNpZ251cHMuIFRoZSBSRUFETUUgYmVjb21lcyBhIGRpc2NvdmVyeS9jb252ZXJzaW9uIHBhZ2UuXG5cbi0tLVxuXG4jIyMg8J+foSBObyBXb3JrZmxvdyBBdXRvbWF0aW9uIEludGVncmF0aW9uXG4qKlNldmVyaXR5OioqIE1FRElVTSB8ICoqQ2F0ZWdvcnk6KiogQ1JFQVRJVkUgR0FQXG5cbk5vIFphcGllciwgTWFrZS5jb20sIG9yIG44biBpbnRlZ3JhdGlvbiBkZXRlY3RlZC4gVGhlc2UgcGxhdGZvcm1zIGhhdmUgNU0rIGNvbWJpbmVkIHVzZXJzIHdobyBidWlsZCBhdXRvbWF0aW9ucyBkYWlseS4gTGlzdGluZyB5b3VyIHByb2R1Y3Qgb24gWmFwaWVyJ3MgZGlyZWN0b3J5IGlzIGZyZWUgZGlzdHJpYnV0aW9uIHRvIGEgaGlnaGx5IHRlY2huaWNhbCwgbW9uZXRpemFibGUgYXVkaWVuY2UuXG5cbioqQWN0aW9uOioqIEJ1aWxkIGEgWmFwaWVyIGFwcCBmb3IgeW91ciBwcm9kdWN0ICgyLTQgdHJpZ2dlcnMvYWN0aW9ucyBpcyBlbm91Z2gpLiBUaGlzIHVubG9ja3MgdGhlIFphcGllciBtYXJrZXRwbGFjZSwgY3JlYXRlcyBhbiBhbHRlcm5hdGl2ZSBkaXN0cmlidXRpb24gY2hhbm5lbCwgYW5kIGVuYWJsZXMgbm9uLXRlY2huaWNhbCB1c2VycyB0byB1c2UgeW91ciBBUEkgd2l0aG91dCBjb2RlLlxuXG4tLS1cblxuIyMjIPCfn6EgTm8gVXNlIENhc2UgTGFuZGluZyBQYWdlc1xuKipTZXZlcml0eToqKiBNRURJVU0gfCAqKkNhdGVnb3J5OioqIENSRUFUSVZFIEdBUFxuXG5ObyB1c2UtY2FzZS1zcGVjaWZpYyBsYW5kaW5nIHBhZ2VzIGRldGVjdGVkLiBJbmRpdmlkdWFsIHVzZSBjYXNlIHBhZ2VzIChlLmcuLCAnQUkgdG9vbHMgZm9yIHJvb2ZpbmcgY29udHJhY3RvcnMnKSByYW5rIGZvciBsb25nLXRhaWwga2V5d29yZHMgdGhhdCBjb21wZXRpdG9ycyBkb24ndCB0YXJnZXQgYW5kIGNvbnZlcnQgYmV0dGVyIGJlY2F1c2UgdGhleSBzcGVhayBkaXJlY3RseSB0byBhIHNwZWNpZmljIGF1ZGllbmNlLlxuXG4qKkFjdGlvbjoqKiBJZGVudGlmeSB5b3VyIHRvcCAzLTUgY3VzdG9tZXIgc2VnbWVudHMgYW5kIGNyZWF0ZSBsYW5kaW5nIHBhZ2VzIGZvciBlYWNoOiAnL2Zvci1kZXZlbG9wZXJzJywgJy9mb3ItYWdlbmNpZXMnLCAnL2Zvci1baW5kdXN0cnldJy4gVGhlc2UgcGFnZXMgY29udmVydCBiZXR0ZXIgQU5EIHJhbmsgZm9yIG5pY2hlIGtleXdvcmRzLlxuXG4tLS1cblxuXG4jIyDwn5S1IExPVyBQUklPUklUWVxuXG4jIyMg8J+UtSBObyBQdWJsaWMgQVBJIERvY3NcbioqU2V2ZXJpdHk6KiogTE9XIHwgKipDYXRlZ29yeToqKiBERVZFTE9QRVIgRVhQRVJJRU5DRVxuXG5ObyBPcGVuQVBJIHNwZWMgb3IgQVBJIGRvY3MgZGV0ZWN0ZWQgYXQgc3RhbmRhcmQgcGF0aHMuIERldmVsb3BlcnMgKGFuZCBBSSBhZ2VudHMpIGNhbid0IGRpc2NvdmVyIHlvdXIgQVBJIHN1cmZhY2Ugd2l0aG91dCBkb2N1bWVudGF0aW9uLlxuXG4qKkFjdGlvbjoqKiBQdWJsaXNoIGFuIE9wZW5BUEkvU3dhZ2dlciBzcGVjIGF0IC9vcGVuYXBpLnlhbWwgb3IgL2FwaS1kb2NzLiBUb29scyBsaWtlIFNjYWxhciBvciBTd2FnZ2VyIFVJIHByb3ZpZGUgYmVhdXRpZnVsIGF1dG8tZ2VuZXJhdGVkIGRvY3MuXG5cbi0tLVxuXG4jIyMg8J+UtSBObyBDaGFuZ2Vsb2dcbioqU2V2ZXJpdHk6KiogTE9XIHwgKipDYXRlZ29yeToqKiBUUlVTVFxuXG5ObyBjaGFuZ2Vsb2cgZGV0ZWN0ZWQuIEEgcHVibGljIGNoYW5nZWxvZyBzaG93cyB0aGUgcHJvZHVjdCBpcyBhY3RpdmVseSBtYWludGFpbmVkIGFuZCBidWlsZHMgdHJ1c3Qgd2l0aCBldmFsdWF0aW5nIHVzZXJzLlxuXG4qKkFjdGlvbjoqKiBDcmVhdGUgL2NoYW5nZWxvZyBvciAvdXBkYXRlcy4gRXZlbiBhIHNpbXBsZSBOb3Rpb24gb3IgQmVlaGlpdiBwYWdlIHdvcmtzLiBVcGRhdGUgaXQgd2l0aCBldmVyeSBtZWFuaW5nZnVsIHJlbGVhc2UuXG5cbi0tLVxuXG4jIyMg8J+UtSBObyBHaXRIdWIgTGlua1xuKipTZXZlcml0eToqKiBMT1cgfCAqKkNhdGVnb3J5OioqIEJSQU5EXG5cbk5vIEdpdEh1YiBsaW5rIGZvdW5kLiBGb3IgZGV2ZWxvcGVyLWZhY2luZyBwcm9kdWN0cywgR2l0SHViIHByZXNlbmNlIGlzIGEgc3Ryb25nIHRydXN0IHNpZ25hbC4gRGV2ZWxvcGVycyBvZnRlbiBjaGVjayBHaXRIdWIgYmVmb3JlIGFkb3B0aW5nIGEgdG9vbC5cblxuKipBY3Rpb246KiogQ3JlYXRlIGEgR2l0SHViIG9yZ2FuaXphdGlvbiBwYWdlIHdpdGggeW91ciBjb21wYW55IHByb2ZpbGUuIEV2ZW4gaWYgY29kZSBpc24ndCBvcGVuIHNvdXJjZSwgdGhlIHByb2ZpbGUgd2l0aCByZXBvcyBhbmQgYWN0aXZpdHkgYnVpbGRzIGNyZWRpYmlsaXR5LlxuXG4tLS1cblxuIyMjIPCflLUgTm8gRmF2aWNvbiBEZXRlY3RlZFxuKipTZXZlcml0eToqKiBMT1cgfCAqKkNhdGVnb3J5OioqIEJSQU5EXG5cbk5vIGZhdmljb24gb3IgYXBwbGUtdG91Y2gtaWNvbiBmb3VuZC4gVGFicyB3aXRob3V0IGZhdmljb25zIGxvb2sgdW5maW5pc2hlZCBhbmQgcmVkdWNlIGJyYW5kIHJlY29nbml0aW9uIGluIGJyb3dzZXIgYm9va21hcmtzLlxuXG4qKkFjdGlvbjoqKiBDcmVhdGUgYSBzaW1wbGUgMzLDlzMycHggZmF2aWNvbi4gVG9vbHMgbGlrZSBmYXZpY29uLmlvIG9yIFJlYWxGYXZpY29uR2VuZXJhdG9yIGhhbmRsZSBhbGwgcmVxdWlyZWQgc2l6ZXMgKDE2cHgsIDMycHgsIDE5MnB4LCBBcHBsZSB0b3VjaCBpY29uKS5cblxuLS0tXG5cbiMjIyDwn5S1IE5vIERldmVsb3BlciBIdWIgU2lnbmFsXG4qKlNldmVyaXR5OioqIExPVyB8ICoqQ2F0ZWdvcnk6KiogQ1JFQVRJVkUgR0FQXG5cbk5vIGRldmVsb3Blci1mb2N1c2VkIGNvbnRlbnQgZm91bmQgb24gdGhlIGhvbWVwYWdlLiBJZiB5b3VyIHByb2R1Y3QgaGFzIGFuIEFQSSBvciBTREssIGRldmVsb3BlcnMgYXJlIHlvdXIgaGlnaGVzdC12YWx1ZSBjdXN0b21lcnMgKHRoZXkgYnVpbGQgd2l0aCBpdCwgcGF5IGZvciBpdCwgYW5kIHJlY29tbWVuZCBpdCB0byB0aGVpciB0ZWFtcykuXG5cbioqQWN0aW9uOioqIEFkZCBhIGRldmVsb3BlciBzZWN0aW9uOiAxLTIgY29kZSBleGFtcGxlcywgQVBJIHByaWNpbmcsIGFuZCBhIGxpbmsgdG8gZG9jcy4gRXZlbiBhIGBjdXJsYCBleGFtcGxlIG9uIHRoZSBob21lcGFnZSBzaWduYWxzICd0aGlzIGlzIEFQSS1maXJzdCcgdG8gdGVjaG5pY2FsIHZpc2l0b3JzLlxuXG4tLS1cblxuIyMjIPCflLUgTm8gUHVibGljIFN0YXR1cyBQYWdlXG4qKlNldmVyaXR5OioqIExPVyB8ICoqQ2F0ZWdvcnk6KiogQ1JFQVRJVkUgR0FQXG5cbk5vIHN0YXR1cyBwYWdlIG9yIHVwdGltZSBtb25pdG9yaW5nIGZvdW5kLiBGb3IgU2FhUyBwcm9kdWN0cywgYSBwdWJsaWMgc3RhdHVzIHBhZ2UgKEluc3RhdHVzLCBCZXR0ZXIgVXB0aW1lKSBidWlsZHMgdHJ1c3Qg4oCUIGl0IHNob3dzIHRyYW5zcGFyZW5jeSBhbmQgbGV0cyB1c2VycyBzZWxmLWRpYWdub3NlIG91dGFnZXMuXG5cbioqQWN0aW9uOioqIFNldCB1cCBhIGZyZWUgSW5zdGF0dXMgb3IgQmV0dGVyIFVwdGltZSBzdGF0dXMgcGFnZS4gTGluayBpdCBmcm9tIHlvdXIgZm9vdGVyLiBFbnRlcnByaXNlIGN1c3RvbWVycyByZXF1aXJlIHRoaXMgYmVmb3JlIHNpZ25pbmcgY29udHJhY3RzLlxuXG4tLS1cblxuIyMjIPCflLUgTm8gRW1iZWRkYWJsZSBXaWRnZXQgb3IgQmFkZ2VcbioqU2V2ZXJpdHk6KiogTE9XIHwgKipDYXRlZ29yeToqKiBDUkVBVElWRSBHQVBcblxuTm8gZW1iZWQgd2lkZ2V0IG9yICdidWlsdCB3aXRoJyBiYWRnZSBkZXRlY3RlZC4gRW1iZWRzIGFsbG93IHlvdXIgdG9vbCB0byBhcHBlYXIgb24gb3RoZXIgc2l0ZXMgKHBhcnRuZXIgYmxvZ3MsIG90aGVyIHByb2R1Y3RzKSwgY3JlYXRpbmcgcGFzc2l2ZSBicmFuZCBkaXN0cmlidXRpb24uXG5cbioqQWN0aW9uOioqIENyZWF0ZSBhIG9uZS1saW5lIGlmcmFtZSBlbWJlZCBmb3IgYSBmcmVlIHRpZXIgb2YgeW91ciBwcm9kdWN0LiBDcmVhdGUgYSAnQnVpbHQgd2l0aCBbWW91clRvb2xdJyBiYWRnZSBmb3IgZGV2ZWxvcGVycyB0byBwdXQgaW4gdGhlaXIgUkVBRE1Fcy4gRWFjaCBiYWRnZSBpcyBhIGZyZWUgYmFja2xpbmsgYW5kIGJyYW5kIGltcHJlc3Npb24uXG5cbi0tLVxuXG5cbiMjIOKchSBXSEFUJ1MgV09SS0lOR1xuXG4jIyMg4pyFIEV4Y2VsbGVudCBUVEZCXG4qKlNldmVyaXR5OioqIFBBU1MgfCAqKkNhdGVnb3J5OioqIFBFUkZPUk1BTkNFXG5cbjU4bXMg4oCUIGVsaXRlLXRpZXIgcmVzcG9uc2UgdGltZS4gRmFzdGVyIHRoYW4gOTUlIG9mIHdlYnNpdGVzLlxuXG4tLS1cblxuXG5cbiMjIDkwLURBWSBBQ1RJT04gUExBTlxuXG4jIyMgV2VlayAxLTI6IEZpeCB0aGUgQmxlZWRpbmdcbi0gWyBdICoqTm8gQ2FsbC10by1BY3Rpb24gRGV0ZWN0ZWQqKiDigJQgQWRkIGEgcHJvbWluZW50IHByaW1hcnkgQ1RBIGFib3ZlIHRoZSBmb2xkOiAnU3RhcnQgRnJlZScsICdHZXQgQWNjZXNzJywgb3IgJ1RyeSBJdCBOb3cnXG4tIFsgXSBNaXNzaW5nIHNpdGVtYXAueG1sXG4tIFsgXSBNaXNzaW5nIGxsbXMudHh0XG4tIFsgXSBUaXRsZSBUYWcgVG9vIFNob3J0XG4tIFsgXSBNaXNzaW5nIE1ldGEgRGVzY3JpcHRpb25cbi0gWyBdIE1pc3NpbmcgT3BlbiBHcmFwaCBUYWdzXG5cbiMjIyBNb250aCAxOiBGb3VuZGF0aW9uXG4tIFsgXSBNaXNzaW5nIFNlY3VyaXR5IEhlYWRlcnNcbi0gWyBdIE1pc3Npbmcgcm9ib3RzLnR4dFxuLSBbIF0gTWlzc2luZyBhZ2VudC5qc29uXG4tIFsgXSBObyBNQ1AgU2VydmVyXG4tIFsgXSBNaXNzaW5nIFR3aXR0ZXIgQ2FyZFxuLSBbIF0gTWlzc2luZyBDYW5vbmljYWwgVGFnXG4tIFsgXSBObyBTY2hlbWEub3JnIFN0cnVjdHVyZWQgRGF0YVxuLSBbIF0gVGhpbiBDb250ZW50XG5cbiMjIyBNb250aCAyLTM6IEdyb3d0aFxuLSBbIF0gTm8gUHVibGljIEFQSSBEb2NzXG4tIFsgXSBObyBDaGFuZ2Vsb2dcbi0gWyBdIE5vIEdpdEh1YiBMaW5rXG4tIFsgXSBObyBGYXZpY29uIERldGVjdGVkXG4tIFsgXSBObyBEZXZlbG9wZXIgSHViIFNpZ25hbFxuXG4tLS1cblxuKlJlcG9ydCBnZW5lcmF0ZWQgYnkgQWNoaWxsZXMg4oCUIHRoZSBhdXRvbm9tb3VzIEFJIGF1ZGl0IGFnZW50IGF0IHphbWJvLmRldiogIFxuKkdob3N0IGF1ZGl0cyBwb3dlcmVkIGJ5IHRoZSBBY2hpbGxlcyB4NzExLmlvIGVuZ2luZSogIFxuKkdldCB5b3VyIG93biBmcmVlIEdob3N0IEF1ZGl0IGF0IHphbWJvLmRldi9naG9zdC1hdWRpdCpcblxuXG4jIyBTY29wZSBhbmQgbGltaXRhdGlvbnNcblxuVGhpcyBhdXRvbWF0ZWQgYXVkaXQgaW5zcGVjdHMgcHVibGljbHkgYWNjZXNzaWJsZSBIVFRQIHJlc3BvbnNlcyBhbmQgcGFnZSBzb3VyY2UuIEZpbmRpbmdzIGFuZCBzY29yZXMgYXJlIGhldXJpc3RpYywgbm90IGEgZ3VhcmFudGVlIG9mIHNlY3VyaXR5LCBhY2Nlc3NpYmlsaXR5LCBzZWFyY2ggcmFua2luZywgb3IgY29udmVyc2lvbiBwZXJmb3JtYW5jZS4gSXQgZG9lcyBub3QgZXhlY3V0ZSBicm93c2VyIGludGVyYWN0aW9ucyBvciBpbnNwZWN0IHByaXZhdGUgYXBwbGljYXRpb24gZmxvd3MuXG5cbi0tLVxuXG4jIyDwn5OjIFNIQVJFIFlPVVIgUkVTVUxUU1xuXG5Ud2VldCB5b3VyIGF1ZGl0OiBodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD90ZXh0PUp1c3QlMjByYW4lMjBhJTIwR2hvc3QlMjBBdWRpdCUyMG9uJTIwbXklMjBzaXRlJTIwdmlhJTIwdGhlJTIwWmFtYm8lMjBNQ1AlMjBTdGFjayUyMCVFMiU4MCU5NCUyMGZvdW5kJTIwdGhlJTIwcmVhbCUyMGlzc3VlcyUyMGtpbGxpbmclMjBteSUyMEFJJTIwZGlzY292ZXJhYmlsaXR5LiUyMEdldCUyMHlvdXJzJTIwZnJlZSUzQSUyMGh0dHBzJTNBJTJGJTJGemFtYm8uZGV2JTJGZ2hvc3QtYXVkaXQlMjAlRjAlOUYlOTElQkIlMjAlNDB6YW1ib2RvdGRldiUyMCUyM0dob3N0QXVkaXQlMjAlMjNNQ1BcblxuLS0tXG5cbiMjIOKaoSBGSVggVEhFU0UgSVNTVUVTIFdJVEggWkFNQk8gTUNQXG5cbllvdXIgYXVkaXQgaXMgZG9uZS4gVGhlIGZhc3Rlc3Qgd2F5IHRvIGFjdCBvbiB0aGVzZSBmaW5kaW5ncyBpcyB0aGUgWmFtYm8gTUNQIHN0YWNrIOKAlCAxNTIgdG9vbHMgaW5zaWRlIENsYXVkZSwgQ3Vyc29yLCBvciBXaW5kc3VyZi4gTm8gQVBJIGtleS4gTm8gc2lnbnVwLlxuXG4qKkFkZCB0aGUgWmFtYm8gTUNQIGluIDEwIHNlY29uZHMg4oCUIHBhc3RlIGludG8gQ2xhdWRlIERlc2t0b3Agb3IgQ3Vyc29yOioqXG5gYGBqc29uXG57XCJtY3BTZXJ2ZXJzXCI6e1wiemFtYm9cIjp7XCJ1cmxcIjpcImh0dHBzOi8vemFtYm8uZGV2L2FwaS9tY3BcIn19fVxuYGBgXG5cbioqVG9vbHMgdGhhdCBkaXJlY3RseSBhZGRyZXNzIGF1ZGl0IGZpbmRpbmdzOioqXG4tIGB6YW1ib3Rfc3BhcmtgIOKAlCBicmVha3Rocm91Z2ggc3RyYXRlZ3kgb24geW91ciB0b3AgQ1JJVElDQUwgZmluZGluZ1xuLSBgemFtYnJvYCDigJQgY29tcGV0aXRpdmUgcG9zaXRpb25pbmcgc2NhbiB2cy4geW91ciByaXZhbHMgZnJvbSB0aGlzIHJlcG9ydFxuLSBgZ2hvc3RfYXVkaXRfc2l0ZWAg4oCUIHJlLWF1ZGl0IGFmdGVyIHlvdSBmaXggaXNzdWVzIHRvIHZlcmlmeSBpbXByb3ZlbWVudFxuLSBgcHJvdmliZV9hdWRpdGAg4oCUIGNvZGUgcXVhbGl0eSBzY2FuIGlmIHRlY2huaWNhbCBpc3N1ZXMgd2VyZSBmbGFnZ2VkXG4tIGB6YW1ib191bml2ZXJzYWxgIOKAlCByb3V0ZSBhbnkgZ29hbCB0aHJvdWdoIHRoZSBmdWxsIDE1MiB0b29sIHN0YWNrXG5cbioqMjQtSG91ciBEYXkgUGFzcyDigJQgJDAuOTkgVVNEQyBvbiBCYXNlIChubyBhY2NvdW50IG5lZWRlZCk6KipcbjEuIFNlbmQgMC45OSBVU0RDIHRvIGAweGI3NTNiZTVFYWM1QjI5YzcxMTA1MURmRjkxMjc5ODM0ZTlDOWI5QUNgIG9uIEJhc2UgbWFpbm5ldFxuMi4gQ2FsbCB0aGUgYGRheV9wYXNzX2FjdGl2YXRlYCBNQ1AgdG9vbCwgb3IgdXNlIHRoZSBjYW5vbmljYWwgeDQwMiBjaGFsbGVuZ2UgYXQgYGh0dHBzOi8vemFtYm8uZGV2L2FwaS94NDAyL2RheS1wYXNzYCB3aXRoIGBYLVBheW1lbnRgXG4zLiBVbmxpbWl0ZWQgdG9vbCBjYWxscyBmb3IgMjQgaG91cnMuIFJlLWF1ZGl0IGFuZCBmaXggbGl2ZS5cblxuKipNb250aGx5IFphbWJvIFBhc3Mg4oCUICQyOS9tbzoqKlxuVW5saW1pdGVkIGF1ZGl0cyArIGFsbCAxNTIgTUNQIHRvb2xzICsgR2hvc3QgQXVkaXQgbW9udGhseSArIExlYWRTaWduYWwgUHJvXG7ihpIgaHR0cHM6Ly96YW1iby5kZXYvI3phbWJvLXBhc3NcblxuKipPbmUtY2xpY2sgaW5zdGFsbCBwYWdlOioqIGh0dHBzOi8vemFtYm8uZGV2L2luc3RhbGxcblxuKlBvd2VyZWQgYnkgQWNoaWxsZXMgw5cgWmFtYm8gU3RhY2sgwrcgemFtYm8uZGV2KlxuIiwic2hhcmVfdXJsIjoiaHR0cHM6Ly96YW1iby5kZXYvYXBpL2dob3N0LWF1ZGl0LzViZjg0YzgwLTA4MjItNGVlOC1hNzcyLTM5Mjg1YmFhM2VhMy9zaGFyZSIsInN0YXR1cyI6ImNvbXBsZXRlIn0sInJlY2VpcHRfc2NoZW1hX3ZlcnNpb24iOiIwLjQiLCJzaWRlX2VmZmVjdHMiOnsiZGVjbGFyYXRpb25faGFzaCI6InNoYTI1Njo0NWFhZDM4ZjNhYTk4MmI5YWFmZTkyZWNiNDE2ZWJlOTg3OTFlZGRiYWY4YWI2ZGYwYmQwODYwNWI3YzFiZmVlIiwiZGVjbGFyZWQiOlsibm9uZSJdLCJzY2hlbWFfdmVyc2lvbiI6InphbWJvLXNpZGUtZWZmZWN0cy8xIn0sInRvb2wiOnsibmFtZSI6Imdob3N0X2F1ZGl0X3JlcG9ydCIsInNjb3BlIjoicHVibGljIiwidmVyc2lvbiI6IjQuMC4wIn19
Timestamp

Bound call context

Receipt schema
0.4
Tool name
ghost_audit_report
Tool version
4.0.0
Permission scope
public
Caller type
session
Caller ID
sha256:39fd733a7546960cff1381bfd7626f3c2bc6834844a90d943a273949464485f5
Caller-reported label
Achilles diagnostic test, not a customer (caller_reported, not authenticated team ownership)
Declared side effects
none
Side-effects schema
zambo-side-effects/1
Declaration hash
sha256:45aad38f3aa982b9aafe92ecb416ebe98791eddbaf8ab6df0bd08605b7c1bfee

This records what the server-side tool contract declared at call time. It does not independently verify that a downstream side effect happened.

Bound upstream evidence

Status
captured
Evidence SHA-256
sha256:4f3e9687f9fef209ad1693a7b347c6e97051e32abcc3e2ffdc2e838375ab37ee
Byte length
22189

Fetch exact evidence bytes

Neutral Nostr anchor

Event ID
54f0c559f4845690f0d710f151237aa9a2c5289310a27b7d83a5a2aecb816cf0
Anchor status
partial
Public key
e13475107d30c918ec664adf2ab1141024a22fb35190f82c9e933704fa49af41

Relay hints: wss://relay.damus.io · wss://nos.lol · wss://relay.primal.net

Schema: zambo-receipt-anchor/1

Anchor envelope bytes:

{"anchored_at":"2026-10-17T11:20:55.159Z","evidence_byte_length":22189,"evidence_sha256":"sha256:4f3e9687f9fef209ad1693a7b347c6e97051e32abcc3e2ffdc2e838375ab37ee","evidence_url":"https://zambo.dev/api/evidence/4f3e9687f9fef209ad1693a7b347c6e97051e32abcc3e2ffdc2e838375ab37ee","output_sha256":"sha256:47d6a94a980d89550c7c9edfc3bd9c2a163ad9641a578eadc90ed38b483d0c00","receipt_uuid":"4dc465e2-419d-42bd-9583-d8db98196735","schema_version":"zambo-receipt-anchor/1"}

Anchor status "partial": Published to some configured relay targets; publication was not confirmed by every configured relay.

Check this hash yourself

API v2 status: verified. This status summarizes the v2 commitment and provenance checks; it does not prove the answer was correct. Recompute the SHA-256 commitment in your browser. Open the API v2 JSON response to inspect the machine-readable checks. See the Nostr anchor event on a public viewer. The fingerprint is timestamped outside Zambo too.

Embed this receipt

Markdown

[![Verifiable Zambo receipt](https://zambo.dev/api/receipt/4dc465e2-419d-42bd-9583-d8db98196735/badge.svg)](https://zambo.dev/run/4dc465e2-419d-42bd-9583-d8db98196735?ref=badge)

HTML

<a href="https://zambo.dev/run/4dc465e2-419d-42bd-9583-d8db98196735?ref=badge"><img src="https://zambo.dev/api/receipt/4dc465e2-419d-42bd-9583-d8db98196735/badge.svg" alt="Verifiable Zambo receipt"></a>

Open badge SVG

Recent receipts

47,992 verifiable receipts minted

RUN YOUR OWN FREE CALL →

Get your own: connect https://zambo.dev/mcp. Free daily calls, no API key.

Open the interactive receipt view