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
This page shows the result and when it was saved. Use the receipt checker to see whether the saved result has changed.
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.
Or re-run this exact call, using the same tool and arguments.
Share this receipt
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
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
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
[](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>
Recent receipts
47,560 verifiable receipts minted
Get your own: connect https://zambo.dev/mcp. Free daily calls, no API key.