# FinOps: Save a Workbook as a Template and Reuse It Org-Wide

> A finance pack that is rebuilt from memory every month is a pack that drifts. ZopNight's cost workbook can now be saved as a template, so the same sheets, columns and filters are available to…

Source: https://zop.dev/resources/blogs/finops-workbook-templates-save-a-pack-once-reuse-it-org-wide
Published: 2026-10-14 · Author: riya-mittal · Tags: finops, cost-reports, templates

---

A [finance pack](https://zop.dev/resources/blogs/cloud-budget-health-in-one-page-what-good-finops-reporting-looks-like) that is rebuilt from memory every month is a pack that drifts. ZopNight's cost workbook can now be saved as a template, so the same sheets, columns and filters are available to everyone in the organization.

Use Save as template on the workbook page, or Open a saved template from its menu. Export → Advanced report offers your saved templates or Start fresh. [Admins and Editors](https://zop.dev/resources/blogs/cloud-governance-rbac-viewer-editor-admin-custom-roles) can save templates, and Viewers can open them.

A shared pack is a reusable report setup that lives as a governed object in the organization, not as a file on one person's laptop. The sections below show what governs it and what the change removed.

## A Template Is a Report Policy, Not a New Kind of Object

Templates are stored as report policies for the organization, with the template as the policy's spec and no schedule. No new table was added, so a template inherits the rules every policy already follows.

| Rule | Response |
|---|---|
| Any read or write without org-wide report:view | 403, checked before the spec is read |
| More than 100 templates in an organization | 409 |
| A spec with no sheets | 422 |
| A spec that includes a schedule | 422 |
| Listing policies without naming a domain | Report rows are hidden from callers without access |

The last row matters because a generic policies list could otherwise show report templates to someone who may not see reports. Hiding the rows closes that route.

This works while the access check runs first. A 403 is returned on any doubt, before the template's contents are examined, so a caller without access learns nothing about what a template holds.

## Validation Reads No Billing Rows

The workbook page shows each sheet's columns over an empty grid and checks your setup as you edit it. It replaces the sample-row preview that the page used to offer.

<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGRhdGEtZDItdmVyc2lvbj0iMC43LjEiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWluIG1lZXQiIHZpZXdCb3g9IjAgMCA4MjcgNjIxIj48c3ZnIGNsYXNzPSJkMi00MjQ3MzMxMjc2IGQyLXN2ZyIgd2lkdGg9IjgyNyIgaGVpZ2h0PSI2MjEiIHZpZXdCb3g9Ii0xMDEgLTEwMSA4MjcgNjIxIj48cmVjdCB4PSItMTAxLjAwMDAwMCIgeT0iLTEwMS4wMDAwMDAiIHdpZHRoPSI4MjcuMDAwMDAwIiBoZWlnaHQ9IjYyMS4wMDAwMDAiIHJ4PSIwLjAwMDAwMCIgZmlsbD0iI0ZGRkZGRiIgY2xhc3M9IiBmaWxsLU43IiBzdHJva2Utd2lkdGg9IjAiIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKLmQyLTQyNDczMzEyNzYgLnRleHQtYm9sZCB7Cglmb250LWZhbWlseTogImQyLTQyNDczMzEyNzYtZm9udC1ib2xkIjsKfQpAZm9udC1mYWNlIHsKCWZvbnQtZmFtaWx5OiBkMi00MjQ3MzMxMjc2LWZvbnQtYm9sZDsKCXNyYzogdXJsKCJkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtiYXNlNjQsZDA5R1JnQUJBQUFBQUEwTUFBb0FBQUFBRkF3QUFndUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJQVXk4eUFBQUE5QUFBQUdBQUFBQmdYeEhYcm1OdFlYQUFBQUZVQUFBQWlBQUFBS3dDL1FNbloyeDVaZ0FBQWR3QUFBYXdBQUFJME9zUkVRbG9aV0ZrQUFBSWpBQUFBRFlBQUFBMkczOGUxR2hvWldFQUFBakVBQUFBSkFBQUFDUUtmd1hlYUcxMGVBQUFDT2dBQUFCOEFBQUFmRGZhQk5ac2IyTmhBQUFKWkFBQUFFQUFBQUJBSS9RbUdtMWhlSEFBQUFta0FBQUFJQUFBQUNBQU53RDNibUZ0WlFBQUNjUUFBQU1vQUFBSUtnandWa0Z3YjNOMEFBQU03QUFBQUIwQUFBQWcvOUVBTWdBREFpb0N2QUFGQUFBQ2lnSllBQUFBU3dLS0FsZ0FBQUZlQURJQktRQUFBZ3NIQXdNRUF3SUNCR0FBQXZjQUFBQURBQUFBQUFBQUFBQkJSRUpQQUNBQUlQLy9BdTcvQmdBQUE5Z0JFU0FBQVo4QUFBQUFBZkFDbEFBQUFDQUFBM2ljYk15NWJjSUFHRURoejdIalhFN2lISmlyWVFBbW9HY0ZKRXBLUklNb0VPTndkWWdSR01ZTHNNS1BvRVBpbFYveGtFZ2xLR1RXcUpSU3VaNitnYUdSc2FtNXBWVUVkejR4czdoNjFIR09PazV4akVQc1l4ZmIyTnl1ajBwMGREMUpaWjdsWHJ4NjgrNUQ0ZE9YYjZVZnYvNzhhNmcwdGJTNUFBQUEvLzhCQUFELy82aWdIaEo0bkdSV1cyd2JhZGwrdjg5alQrTk9EdVB4elBnMFBrMDhueDBuVHVQeGpKdFRIU2RPMDZaMmM2aWFwcnRwODI4ditpK2tUYUZKYWJZVWNiRVZFcEJWUWE2aXNvSXVRb3NBYVl1MFdpSEJvcXdFb29KcTl3S3BLL1lHRnBDNFdPMEZtMTFaYUJIdUdIMWo1MUJ4WVgrKytPWjUzdmQ1bitjZGd4Tm1BZkFsZkE4YzBBYWQ0QUVSUU9kamZFSW5SR1h6ZWo2dnlvNDhRVHc3aXozV2oxOG5LU2FWWW5xaTl5TzNscGRSNVNLKzkvVEs4NVZMbC82MVBEeHNQZmpWMjlZcmFPMXRBQVFWQVBRSjNvVEROcDRZRTNWUkZXTmlCZDIzL3ZQaGg2Z1RiOTUrK2F0YnR3RUFOZjROZ0hXOENlMEF1a01YSkVuV1RUTXY2STUzSG4zL2RLZmN5WFQ0T2lwYnY4T2IxaCtOeTZaNTJVQkhucTREYW53T2dFVzhDWjBBdXVIUTVkYURlZDBoYmo5Nk1OUVJhR2M2UXUzRHJ6NzZDTDIrbFpqVXRNbkVsclgwRVFCZzZHblUwUHVvRG41UUFlUzRadVRNdkthcGNSZExURlBQU2lLdkV0WGx5bWZOdk9GeWlWN3BuZExzblNwV1U1R3hicU4vWldqNThvYWJpVXdkOGllRTB5TVI3bHpoOUdKbmpQakVGNVR1MWV2V1AvU1FlbDBXenJuVGlrKzIrWXFOR3Bid05uZ2hBdUNNYTBSbFZWNFhXWnRNRXIwdUY4bWFSazZOczZJa29jblloTUp3YTFWR0tjVkhGdnRIbGhjMWM2RTM1VTF5c2FpQnQ5OG9CNVJqWHk2ZmZhbXdjYno4amI1M1BSMVVSK2h1MU5BMnFrUEFacUF0VVhDWnBXMkpYa25QbW5uWjVVTCt5V3ZGRTE4cFphWkNrMnJVS0JTTytETENVR0tCRzcweGYyWjlOQ3d2SytYaVdFWHMvTDlvRU96YVNhT0c2bmdiQklqdWFtVURFME0vb0pMV292bHM2ZHJ3Y2k1MTFPK3Ficmlad0hIc0l4NGg3VlhOZnU3Ykw4M2RPQmJ5bFgvMmRHSWdvRzU0L2U5Nk9pYW1UazRDdG12L082cURyNlhQTGdtVmhvMUprcDZsdFR2MEhHVkJrYW5yNHhOWGhxY3U5RFBZK3NCOWZNQXdCN1NMcjc1RmV1TW1kMng5Zm02OVVGZ3BDWWsyVTQrZEQ0VFJVTXJvQjFzakh3QmF4NC9wcWZPcWtkOFh5UzZmMnBSL2JueThlM1lpa3VzS3RnZTRZUGo4ZWZTMXE4NmdzWkRqWEZlY3pwZ1dYck5lQm5CQXZOR0hXVlNIZmhpR2FWc1p6Y2hSSWFpWmpOMFdaRjFVbXhOVzQ4U2VBN1dYMStWeTBJRzNSQk9hdjlXNFpsLzViT2ppMFNraEdQVUZVa01YamQ3WUwyYll0dHhpWG9sNDRxblpwUmRLdDZjVlFoU0ZrRlIyakNSMGY0d0xqajRKSE8wZFNUTHR5VWd3MjhWNFN1bVJtU1MzY2pqdUhaenVkbmRLZ21kNFFwL0xvTWM5S1pKS0psTTlWclhiTDNjNUhENS9TR2xxVTZURHRqMEsrcDQzUlY3bDdTcFp2bGhsUTZleWN5ZXJTalNVOU9IdE44NzcweXNYclBkUXpFejZaZXROYURRZ0R3Qi93VSt3QmlFQVlFR0JiKzFoaC9FMmNEWTJyK2QxVmxBSkt4YnZNai80NGM5Ly9kcVhDbmpiV24zMG52WG4zMHpkb3ZjYk5lVEIyelRiMUhHOHp1OForQS9sNFNyZjVtUmRIaTdCUFg4S3EwOC9rRDBJWFhXeVRSNkhndW9RczNub1BxRFRmYVlUZHU4czBnd2ZIekNLUW14NllQWlVWWWttanRDdmZyUXpGdWxMSitNRHUrMGRzZDVzSGJzNm9YcExweGJIUVowMjNFeTBzaWNVMmltRSs1N1JxZWwzMnp1ZEVQd2Z2emRYUWNzWlNDcGNLNVd1RlFxcnBkSnFvUytUNmN2MDliV3lPcnArWnY3RzZNM0tXTEZNSTl2Y015ZXdoT29nUUJoQTNxL090cDlHWkZIWVh6TzBUdVVrZWU3RmtXVXpPaEp3em1qbVFyckhtL3dsL3VsQVFQM20ydG1OUXRBLzgxM1V2YmRrN043UlhWUUh6elA2TnRQVDdEeFkxc1NRMjlmdTd3cU5ldEhPdWV5QTAvbDFoa2xscmI4QkFyRlJRNitoT2hCN3JpUlBrMDJiMVVnR0c3bDlNTkVyeVdFc2VsMVBCdjVmRzQ4WElyR3drZ21FaDVOZk9EdDRMaklleUFVR0I3WG9hT3BGVG9zcytZT3l3RXVDbStzZVRFMHVFTitpVnlJK2Y4ZGhkVEF6Y2FIcGJiNVJRNnQ0SFdSYmJjTlFqWHhldDE5Sys0c1JsbVpLWmY3V3padXF3dm5kc3BEbnZyancrS3JyenAyMTMvY2tYTXlLaTJ0aWpUUnE2SE8wUStmL2pEZjUxanI4MDl6SmFqZ2EwcVRxeG1GSFpKcGJ1WUJ5MWwrTlZFQkJKNnl1eVVRdklKb0QxRUE3clhmZWdWZlhXeis1TitZVzNFeWI0QzYrOGlPMDgzR2lRa2dsOGJIVlpYUFRJZFRRRHZnQmRJRWNlSkNWVmFKcGxKNWxPKzdmZmREcmx0ek1JYytoK1AzdmZPL0JFVTdtbURadkcwSDRuN05pV2hUVDRtemowM214VnhUVDBqekZ6VFNPSVlDSGRLNHlNVTBTajZ2Mm9tOTZweHcrT29Rd2cxWFQxTEs1cGQrZTloWVQ2YVNXbVM3T2J3RFEzSTgyYXZBSitoUVQ2anRVQWhjOW0zNkI5OUVPT0pxNUwxYlJqdFVGcVBFUUQ4SVovSVQrUCtBUEVDVXltVVFpazhHRFBhcmFRejhVdzhhR2gvU3VmT0R1bHFicm1xYnJuRUdTaHBFa0J2d1hBQUQvL3dFQUFQLy81dGJPeGdBQkFBQUFBZ3VGOWM4WnMxOFBQUFVBQVFQb0FBQUFBTmhkb0lRQUFBQUEzV1l2TnY0My9zUUliUVB4QUFFQUF3QUNBQUFBQUFBQUFBRUFBQVBZL3U4QUFBaVkvamYrTndodEFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBZkFySUFVQURJQUFBQ0pBQk5BaXovK1FJTi8vZ0NEd0FxQWowQVFRSFRBQ1FDUFFBbkFnWUFKQUZWQUJnQ0ZnQWlBanNBUVFFVUFEY0NKQUJCQVI0QVFRTlpBRUVDUEFCQkFpc0FKQUk5QUVFQmpnQkJBYnNBRlFGL0FCRUNPQUE4QWdzQURBSUNBQTRCTEFBdUFTd0FQUUVVQUVFQUFQK3RBU3dBUFFBQUFDd0FMQUJDQUY0QWZBQzBBT1lCRWdGRUFYZ0JuZ0lHQWlnQ05BSk1BbWdDbWdLOEF1Z0RHQU00QTNRRG1nTzhBOWdFQkFRa0JEQUVQQVJTQkdnQUFRQUFBQjhBa0FBTUFHTUFCd0FCQUFBQUFBQUFBQUFBQUFBQUFBUUFBM2ljbkpUUGJodFZGTVovVG16VENzRUNSVlc2aWU2Q1JaSG8yRlJKMVRZcmg5U0tSUlFIand0Q1FrZ1R6L2lQTXA0WmVTWU80UWxZOHhhOFJWYzhCTStCV0tQNWZPellCZEVtaXBKOGQrNzU4NTF6dm5PQkhmNW1tMHIxSWZCSFBURmNZYTkrYm5pTEIvVVR3OXUwNjF1R3F6eXAvV200UmxpYkc2N3plYTFuK0NQZVZuOHovSUQ5NmsrR0g3SmJiUnYrbUdmVkhjT2ZiRHYrTXZ3cCs3eGQ0QXE4NEZmREZYYkpERyt4dzQrR3QzbUV4YXhVZVVUVGNJM1AyRE5jWncvb002RWdaa0xDQ01lUUNTT3VtQkdSNHhNeFk4S1FpQkJIaHhZeGhiNG1CRUtPMFg5K0RmQXBtQkVvNHBnQ1I0eFBURURPMkNMK0lxK1VjMlVjNmpTenV4WUZZd0l1NUhGSlFJSWpaVVJLUXNTbDRoUVVaTHlpUVlPY2dmaG1GT1I0NUV5SThVaVpNYUpCbHphbjlCa3pJY2ZSVnFTU21VL0trSUpyQXVWM1psRjJaa0JFUW02c3JrZ0l4ZE9KWHlUdkRxYzR1bVN5WFk5OHVoSGhTeHpmeWJ2a2xzcjJLeno5dWpWbW0zbVhiQUxtNm1lc3JzUzZ1ZFlFeDdvdDg3YjRWcmpnRmU1ZS9kbGs4djRlaGZwZktQSUZWNXAvcUVrbFlwTGczQzR0ZkNuSWQ0OXhIT25jd1ZkSHZxZERueE82dktHdmM0c2VQVnFjMGFmRGEvbDI2ZUg0bWk1bkhNdWpJN3k0YTBzeFoveUE0eHM2c2lsalI5YWZ4Y1FpZmlZemRlZmlPRk1kVXpMMXZHVHVxZFpJRmQ1OXd1VU9wUnZxeU9VejBCNlZsazd6UzdSbkFTTlRSU2FHVS9WeXFZM2MraGVhSXFhcXBaenQ3WDI1RFhQYnZlVVczNUJxaDB1MUxqaVZrMXN3ZXQ5VXZYYzBjNjBmajRDUWxBdFpERWlaMHFEZ1JyelBDYmdpeG5HczdwMW9Td3BhSzU4eXo0MVVFakVWZ3c2SjRzekk5RGN3M2ZqR2ZiQ2hlMmR2U1NqL2t1bmxxcXI3WkhIcTFlMk0zcWg3eXp2ZnVoeXRUYUJoVTAzWDFEUVExOFMwSDJtbjF2bjc4czMxdXFVODVZaVVtUEJmTDhBelBKcnNjOEFoWTJVWTZHWnVyME5UTDBTVGx4eXEra3NpV1EybDU4Z2lIT0R4bkFNT2VNbnpkL3E0Wk9LTWkxdHhXYy9kNHBnanVoeCtVQlVMK3k1SHZGNTkrLytzdjR0cFU3VTRucTVPTCs0OXhTZDNVT3NYMnJQYjk3S25pWldUbUZ1MDI2MDRJMkJhY25HNzZ6VzV4M2ovQUFBQS8vOEJBQUQvLy9TM1QxRjRuR0pnWmdDRC8rY1lqQml3QUFBQUFBRC8vd0VBQVAvL0x3RUNBd0FBQUE9PSIpOwp9Ci5kMi00MjQ3MzMxMjc2IC50ZXh0LWl0YWxpYyB7Cglmb250LWZhbWlseTogImQyLTQyNDczMzEyNzYtZm9udC1pdGFsaWMiOwp9CkBmb250LWZhY2UgewoJZm9udC1mYW1pbHk6IGQyLTQyNDczMzEyNzYtZm9udC1pdGFsaWM7CglzcmM6IHVybCgiZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7YmFzZTY0LGQwOUdSZ0FCQUFBQUFBMEVBQW9BQUFBQUZKd0FBUmhSQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUFV5OHlBQUFBOUFBQUFHQUFBQUJnVzFTVmVHTnRZWEFBQUFGVUFBQUFpQUFBQUt3Qy9RTW5aMng1WmdBQUFkd0FBQWFuQUFBSldDN1Z3bnBvWldGa0FBQUloQUFBQURZQUFBQTJHN1VyMm1ob1pXRUFBQWk4QUFBQUpBQUFBQ1FMZUFqRGFHMTBlQUFBQ09BQUFBQjhBQUFBZkRKOEE4WnNiMk5oQUFBSlhBQUFBRUFBQUFCQUpkWW9ORzFoZUhBQUFBbWNBQUFBSUFBQUFDQUFOd0QyYm1GdFpRQUFDYndBQUFNbUFBQUlNZ250VnpOd2IzTjBBQUFNNUFBQUFDQUFBQUFnLzhZQU1nQURBZUVCa0FBRkFBQUNpZ0pZLy9FQVN3S0tBbGdBUkFGZUFESUJJd0FBQWdzRkF3TUVBd2tDQkNBQUFIY0FBQUFEQUFBQUFBQUFBQUJCUkVKUEFBRUFJUC8vQXU3L0JnQUFBOWdCRVNBQUFaTUFBQUFBQWVZQ2xBQUFBQ0FBQTNpY2JNeTViY0lBR0VEaHo3SGpYRTdpSEppcllRQW1vR2NGSkVwS1JJTW9FT053ZFlnUkdNWUxzTUtQb0VQaWxWL3hrRWdsS0dUV3FKUlN1WjYrZ2FHUnNhbTVwVlVFZHo0eHM3aDYxSEdPT2s1eGpFUHNZeGZiMk55dWowcDBkRDFKWlo3bFhyeDY4KzVENGRPWGI2VWZ2Lzc4YTZnMHRiUzVBQUFBLy84QkFBRC8vNmlnSGhKNG5IeFdXMnpiNXYzOWZSOXAwaGY1SWxFaUxWb1NMWkVpTFltU0xGRWlyZGk2K1g1VEhOdVIvLzRuc1JPM2E1QzE3dVkxRzdBaERicGxRRkZzYU9ZQmVkbGVObUFiMENKdktmWXdZT3VBWVEvQ2hnRERrQTNkN2FGWTZ3N0p1cmFDVjZ6RlRBNlU1RmpPZ0wwSWVpQi81M2ZPZDg3NUNCMGdBZURQNFR0QVFCZjBnd3M4QUJvVEpBak5NRVNPMEJSRnBHbERZUmhhdW9WcXQ3NUxUbDE0ZCtUN242Z0NPZmUxMTVmK2Z1VXV2bk8waTc2NjlkSkw1c1ZYbm5ubS94NDlNcVBvOTQ4QUFCQ0lBSGdBNzBOUFl5WWRwRFZhcElPMCtIWDBiSy81MStoSGZSOW9TTzdEKytYZlRYNDhDUWpXQUhBWjcwTXZnRVpvRE10eW1xNGJqSVplSFY4WjZ1Z2tTRytXLy9GNTgzVzhiOTdKUHE5blA1OUJ1MGQ3VGF4MUFCekErOUJ2WXhFYTEzclowQkR4VGUyNWMvR3UvaTZDVXdkZlhEZi9rVUdBOW44bXpjamhPZW1uNXA0RkFCZ1U2eEQ5QzlYQmJXL05oZVJzcG9DMU5NdHBoa2FJaGtoUlNsbzNERmtXUTMzWTQyYmZLQzJyaTl1YWtuZVNUR0duMkVtS215NTVSVkk5YVo4MGxSVlNqb3ZWMmE5YzBrYUNlWk9mRHlkTGllUWY1RkIwWVN0ZHpFTURUN0FPMFllNEJoNzdCTGlRcklpMHlHZzByZW02bG1ZOTdqNnNwQXM0bTVIRkVFWFRMUHRReVRzSmQvRjJSV0d4ZEQ3ZWdNOUtVOW5BYUNTMEtpYmNtbU1rbU1lMU42LzRZeGMyYk9oU2RHRkxLK1NqNGZma0VDQUlXNGZvSHFxRDd4UTcyaVpFVVI0M3E2VjFnNk9vdDFZK28xWjJzdW9FRzJkay8raUduanN6ckxNaHZ1SzR1alY5dlpvTWVVYzV6L1RlMU9RczcweTd3M0NzSFZiYXVKeG85Ny9GTytNaUJ1VEtma3U5cytFbjFWT0dMNzk1TlBha2ZMakI1ZWVvRGp5RTIvRllqNXVpZ3hSN3pJWFFkRDJiYVRCOForT3o4YVZMbzBZNTRPZ3dmOWsxUEJYMTU3aUFmL1U3RmlaY0VURzc3WGgyWjJadlRVMmNTL3UwdnVLNXNOZXBlUVFVN2huczlhV0VLaUNJQWFCWDhRUGdiSCtKUmR3NHBwWit0RzFzSWxZdDlwUUgrcy9tK2FocnFIdklHWXgwT3A5eVBGMUZyK1U2VmhmWGUzc011anNkV3krWW03Wm15SkpRSGRWQmdFVHovSTNtM2daRmlhZmRSMUhFS2ZYdXBqWkV5VGN6VWxqczg4cm5rL2x6c1lWTEtibmdKSmppVmVaNlRsd054ZGlVVHl4cmdlU2ZaWCtXQ3kyWHJzbnFSblhxaS8rZnR2MUlYTDZLZ3JIb2IrUlFaSFp6ZEh5OG1SOEJBTDJGYStDMStiWDVrQ1pFeHBiUnBra0l0eXVqQTJSa1RTMWtPd3ZMRXlRNTc1dFB6T0Rhbzd5WUxJOEprdmtycExvSGU1ZWlDZk0xeTdKbndxZjRIcFp0MXdFRi92a1RyUGR4RFJ3TkxNTEdZMFNGcG9YYmxTdjRrODFmZk9uczFoNlBhNllmb1YrYjc3Ny93ZzFBb0ZxSDhDbXVnY3RXSzVzeEdGc1lqN3QxMU0rWHFSdVZtd2c1Q1lwRzNheWo2UFRpNTQ2K1RYY1JMb1RIU2ZJeExuNkk2aEJ0Y214UzVGcEVxVk5NMjBudkZHbFNYcGZQcERxU20rRzhUcEtGU3A0azV6eno2b3l0d1N3N0g1dEJCd3RTeWhoUnRmS1lNK0J1MStIazM0bk9xQTZEN1RzOEtiT05HRmxMbkZLNWdmQ2t5SS96aC82RTZ0QVAvdlk4TkV1a2tZRld5QitzYkt1TDIrbVZ5K3JTZGpTK3F1bHArOGR4N2VMTTlXcWkrVnVhM0p1ZW5KdmFtNTZjdFdkYkgxc2EraERWbTltbTJ6YnV3MktqdFdqbVZFOTFmNk5JRWVGcW9oSHh0RHpCWUpmd28vYWV1by9mS0FueFZzQ0ZhOTlEcUZWVTh0L0N3Uk4vdklqcU1OQ21FVWZMeDlyMGtQN2x1TmN6Tk1CTHkwSWVIV3lwK2E3cHp1SzRlUitROVcvckVOMUVkVkRhVTVYTnlJb3NaelB0b2ZXNFdhNVJHZFFQVWx2ZVVhNGtSL09Sc1VST1hWQVRpNzRFb3dYbGxENWN5SXl1T1RJanNqQ1NFSGxGNEF1UldEa3NCVWJjZkZ3SXlLN1FoQnFmRHRzN1QxaUhhQlB2UHU1WDNiQmJRbXMwUTF1Ly9xU1VJVkZ1cm1kWktnL2RjTnpNRWI1UUg5L2pIRWc2aXZGK3ZoZTVjaDB2djF3d0g3cGNnVUIzaDBIMzI3UEhyRVAwQVRxd3MzazgrOFQ5VEt0aTd6NTI1cngvVHAxWnRpK2xrZk9PU2NNcE1FZzNIekJlMnpKbzArUVhSYTJwOHpnQWVoc2QvUGQ5ZTJ0dVdTSXBrblJLekxjcTVoRTZNTjhUbDBScFFVSmVrMis4YXowQVFMOXQ3aVF5U3R0OVMzT2lJc3VLU0ZFMHJmN3g0dGxvWng5TjlnLzNWOWRyVDYrb25jNXVjaURFYkNQOHppNnJlTndSeis0L1AzcUJUYkNzeWwyMzU3NXRYWUo5MkxYUG5sWjAzV2lVWVN1aDdwNWtqc1pzUVBUenZncy9UTGdtSko3MUtsSmd3ZjRHc0N6Z3JFT29vYjlnQlFKUVFsOEFDZ0xIZm9MNzZBQ0ladDhJTzVXbjBFR0RDSUk1dkFUMzhEMzdHNFZwZy9veUV4QTV0MS9FU3h6ckRRNnkzbUZBamZtdndLNzlMTmYyN0N6clZYenNZTmpoWTNuVnozcFYrQThBQUFELy93RUFBUC8vUlEvaDVBQUFBUUFBQUFFWVVYaDJFeUZmRHp6MUFBRUQ2QUFBQUFEWVhhRE1BQUFBQU4xbUx6Zit2ZjdkQ0IwRHlRQUNBQU1BQWdBQUFBQUFBQUFCQUFBRDJQN3ZBQUFJUVA2OS9id0lIUVBvQU1MLzBRQUFBQUFBQUFBQUFBQUFId0owQUNRQXlBQUFBZmNBSXdId0FGSUJ6UUJUQWhrQUp3SVlBQjhCc3dBbEFoY0FKd0hoQUNVQkdnQXJBaE1BQVFJTEFCOEE3UUFmQWR3QUh3RDRBQ3dESHdBZkFnMEFId0lEQUNjQ0YvLzJBVllBSHdHUy8vd0JSUUE4QWhBQU9BSEFBRHNCcmYvVUFQTC80UUR5QUJjQTdRQWZBQUFBUndEeUFCY0FBQUF1QUM0QVJnQmtBSVFBdkFEMEFTSUJXZ0dVQWJ3Q0JBSXVBam9DVkFKMkFyZ0M0Z01RQTBvRGFBT2tBOUlEL2dRY0JFZ0VaZ1J5QklBRWxnU3NBQUVBQUFBZkFJd0FEQUJtQUFjQUFRQUFBQUFBQUFBQUFBQUFBQUFFQUFONG5KeVUyMDRiVnhTR1B3ZmJiWHE2cUZCRWJ0QytUS1ZrVEtNUUplSEtsS0NNaW5EcWNYcVFxa3FEUFQ2SThjeklNNWlTSitoMTM2SnZrYXMrUnAraTZuVzFmeStESFVWQklBVDhlL1k2L0d1dGYyMWdrLy9Zb0ZhL0MvemRuQnV1c2QzODJmQWR2bWdlR2Q1Z3YvbVo0VG9QRy84WWJqQm92RFhjNUVHamEvZ1QzdFgvTlB3cFQrcS9HYjdMVnYzUThPYzhybThhL25MRDhhL2hyM2pDdXdXdXdUUCtNRnhqaThMd0hUYjUxZkFHOTdDWXRUcjMyREhjNEd1MkRUZlpCbnBNcUVpWmtESENNV1RDaURObUpKUkVKTXlZTUNSaGdDT2tUVXFscnhteGtHUDB3YTh4RVJVellrVWNVK0ZJaVVpSktSbGJ4TGZ5eW5tdGpFT2RabmJYcG1KTXpJazhUb25KY09TTXlNbElPRldjaW9xQ0Y3Um9VZElYMzRLS2tvQ1NDU2tCT1ROR3RPaHd5QkU5eGt3b2NSd3FrbWNXa1RPazRweFkrWjFaK003MFNjZ29qZFVaR1FQeGRPS1h5RHZrQ0VlSFFyYXJrWS9XSWp6RThhTzhQYmRjdHQ4UzZOZXRNRnZQdTJRVE0xYy9VM1VsMWMyNUpqaldyYy9iNWdmaGloZTRXL1ZubmNuMVBScm9mNlhJSjV4cC9nTk5LaE9URE9lMmFCTkpRWkc3ajJOZjU1QklIZm1Ka0I2djZQQ0duczV0dW5ScGMweVBrSmZ5N2RERjhSMGRqam1RUnlpOHVEdVVZbzc1QmNmM2hMTHhzUlByejJKaUNiOVRtTHBMY1p5cGppbUZldTZaQjZvMVVZVTNuN0Rmb1h4TkhhVjgrdG9qYitrMHYweDdGak15VlJSaU9GVXZsOW9vclg4RFU4UlV0ZmpaWHQzN2JaamI3aTIzK0lKY08relZ1dURrSjdkZ2ROMVVnL2MwYzY2ZmdKZ0JPU2V5NkpNenBVWEZoWGkvSnVhTUZNZUJ1dmRLVzFMUnZ2VHhlUzZra29TcEdJUmtpak9qME4vWWRCTVo5LzZhN3AyOUpRUDVlNmFubDFYZEpvdFRyNjVtOUViZFc5NUYxdVZrWlFJdG0ycStvcWErdUdhbS9VUTd0Y28va20rcDF5M25FYUhpTG5iN1E2L0FEcy9aWlkreHN2UjFNNys4ODYrRXQ5aFRCMDVKWkRXVXBuME5qd25ZSmVBcHUrenluS2Z2OVhMSnhoa2Z0OFpuTlgrYkEvYnBzSGR0TlF2YkR2dThYSXYyOGN4L2llMk82bkU4dWp3OXUvVTBIOXhBdGQ5bzM2N2V6YTRtNTZjeHQyaFgyM0ZNek5SemNWdXJOYm43QlA4REFBRC8vd0VBQVAvL2NxRlJRQUFBQUFNQUFQLzFBQUQvemdBeUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT0iKTsKfV1dPjwvc3R5bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsuc2hhcGUgewogIHNoYXBlLXJlbmRlcmluZzogZ2VvbWV0cmljUHJlY2lzaW9uOwogIHN0cm9rZS1saW5lam9pbjogcm91bmQ7Cn0KLmNvbm5lY3Rpb24gewogIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwp9Ci5ibGVuZCB7CiAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5OwogIG9wYWNpdHk6IDAuNTsKfQoKCQkuZDItNDI0NzMzMTI3NiAuZmlsbC1OMXtmaWxsOiMwQTBGMjU7fQoJCS5kMi00MjQ3MzMxMjc2IC5maWxsLU4ye2ZpbGw6IzY3NkM3RTt9CgkJLmQyLTQyNDczMzEyNzYgLmZpbGwtTjN7ZmlsbDojOTQ5OUFCO30KCQkuZDItNDI0NzMzMTI3NiAuZmlsbC1ONHtmaWxsOiNDRkQyREQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5maWxsLU41e2ZpbGw6I0RFRTFFQjt9CgkJLmQyLTQyNDczMzEyNzYgLmZpbGwtTjZ7ZmlsbDojRUVGMUY4O30KCQkuZDItNDI0NzMzMTI3NiAuZmlsbC1ON3tmaWxsOiNGRkZGRkY7fQoJCS5kMi00MjQ3MzMxMjc2IC5maWxsLUIxe2ZpbGw6IzBEMzJCMjt9CgkJLmQyLTQyNDczMzEyNzYgLmZpbGwtQjJ7ZmlsbDojMEQzMkIyO30KCQkuZDItNDI0NzMzMTI3NiAuZmlsbC1CM3tmaWxsOiNFM0U5RkQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5maWxsLUI0e2ZpbGw6I0UzRTlGRDt9CgkJLmQyLTQyNDczMzEyNzYgLmZpbGwtQjV7ZmlsbDojRURGMEZEO30KCQkuZDItNDI0NzMzMTI3NiAuZmlsbC1CNntmaWxsOiNGN0Y4RkU7fQoJCS5kMi00MjQ3MzMxMjc2IC5maWxsLUFBMntmaWxsOiM0QTZGRjM7fQoJCS5kMi00MjQ3MzMxMjc2IC5maWxsLUFBNHtmaWxsOiNFREYwRkQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5maWxsLUFBNXtmaWxsOiNGN0Y4RkU7fQoJCS5kMi00MjQ3MzMxMjc2IC5maWxsLUFCNHtmaWxsOiNFREYwRkQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5maWxsLUFCNXtmaWxsOiNGN0Y4RkU7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtTjF7c3Ryb2tlOiMwQTBGMjU7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtTjJ7c3Ryb2tlOiM2NzZDN0U7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtTjN7c3Ryb2tlOiM5NDk5QUI7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtTjR7c3Ryb2tlOiNDRkQyREQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtTjV7c3Ryb2tlOiNERUUxRUI7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtTjZ7c3Ryb2tlOiNFRUYxRjg7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtTjd7c3Ryb2tlOiNGRkZGRkY7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtQjF7c3Ryb2tlOiMwRDMyQjI7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtQjJ7c3Ryb2tlOiMwRDMyQjI7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtQjN7c3Ryb2tlOiNFM0U5RkQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtQjR7c3Ryb2tlOiNFM0U5RkQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtQjV7c3Ryb2tlOiNFREYwRkQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtQjZ7c3Ryb2tlOiNGN0Y4RkU7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtQUEye3N0cm9rZTojNEE2RkYzO30KCQkuZDItNDI0NzMzMTI3NiAuc3Ryb2tlLUFBNHtzdHJva2U6I0VERjBGRDt9CgkJLmQyLTQyNDczMzEyNzYgLnN0cm9rZS1BQTV7c3Ryb2tlOiNGN0Y4RkU7fQoJCS5kMi00MjQ3MzMxMjc2IC5zdHJva2UtQUI0e3N0cm9rZTojRURGMEZEO30KCQkuZDItNDI0NzMzMTI3NiAuc3Ryb2tlLUFCNXtzdHJva2U6I0Y3RjhGRTt9CgkJLmQyLTQyNDczMzEyNzYgLmJhY2tncm91bmQtY29sb3ItTjF7YmFja2dyb3VuZC1jb2xvcjojMEEwRjI1O30KCQkuZDItNDI0NzMzMTI3NiAuYmFja2dyb3VuZC1jb2xvci1OMntiYWNrZ3JvdW5kLWNvbG9yOiM2NzZDN0U7fQoJCS5kMi00MjQ3MzMxMjc2IC5iYWNrZ3JvdW5kLWNvbG9yLU4ze2JhY2tncm91bmQtY29sb3I6Izk0OTlBQjt9CgkJLmQyLTQyNDczMzEyNzYgLmJhY2tncm91bmQtY29sb3ItTjR7YmFja2dyb3VuZC1jb2xvcjojQ0ZEMkREO30KCQkuZDItNDI0NzMzMTI3NiAuYmFja2dyb3VuZC1jb2xvci1ONXtiYWNrZ3JvdW5kLWNvbG9yOiNERUUxRUI7fQoJCS5kMi00MjQ3MzMxMjc2IC5iYWNrZ3JvdW5kLWNvbG9yLU42e2JhY2tncm91bmQtY29sb3I6I0VFRjFGODt9CgkJLmQyLTQyNDczMzEyNzYgLmJhY2tncm91bmQtY29sb3ItTjd7YmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO30KCQkuZDItNDI0NzMzMTI3NiAuYmFja2dyb3VuZC1jb2xvci1CMXtiYWNrZ3JvdW5kLWNvbG9yOiMwRDMyQjI7fQoJCS5kMi00MjQ3MzMxMjc2IC5iYWNrZ3JvdW5kLWNvbG9yLUIye2JhY2tncm91bmQtY29sb3I6IzBEMzJCMjt9CgkJLmQyLTQyNDczMzEyNzYgLmJhY2tncm91bmQtY29sb3ItQjN7YmFja2dyb3VuZC1jb2xvcjojRTNFOUZEO30KCQkuZDItNDI0NzMzMTI3NiAuYmFja2dyb3VuZC1jb2xvci1CNHtiYWNrZ3JvdW5kLWNvbG9yOiNFM0U5RkQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5iYWNrZ3JvdW5kLWNvbG9yLUI1e2JhY2tncm91bmQtY29sb3I6I0VERjBGRDt9CgkJLmQyLTQyNDczMzEyNzYgLmJhY2tncm91bmQtY29sb3ItQjZ7YmFja2dyb3VuZC1jb2xvcjojRjdGOEZFO30KCQkuZDItNDI0NzMzMTI3NiAuYmFja2dyb3VuZC1jb2xvci1BQTJ7YmFja2dyb3VuZC1jb2xvcjojNEE2RkYzO30KCQkuZDItNDI0NzMzMTI3NiAuYmFja2dyb3VuZC1jb2xvci1BQTR7YmFja2dyb3VuZC1jb2xvcjojRURGMEZEO30KCQkuZDItNDI0NzMzMTI3NiAuYmFja2dyb3VuZC1jb2xvci1BQTV7YmFja2dyb3VuZC1jb2xvcjojRjdGOEZFO30KCQkuZDItNDI0NzMzMTI3NiAuYmFja2dyb3VuZC1jb2xvci1BQjR7YmFja2dyb3VuZC1jb2xvcjojRURGMEZEO30KCQkuZDItNDI0NzMzMTI3NiAuYmFja2dyb3VuZC1jb2xvci1BQjV7YmFja2dyb3VuZC1jb2xvcjojRjdGOEZFO30KCQkuZDItNDI0NzMzMTI3NiAuY29sb3ItTjF7Y29sb3I6IzBBMEYyNTt9CgkJLmQyLTQyNDczMzEyNzYgLmNvbG9yLU4ye2NvbG9yOiM2NzZDN0U7fQoJCS5kMi00MjQ3MzMxMjc2IC5jb2xvci1OM3tjb2xvcjojOTQ5OUFCO30KCQkuZDItNDI0NzMzMTI3NiAuY29sb3ItTjR7Y29sb3I6I0NGRDJERDt9CgkJLmQyLTQyNDczMzEyNzYgLmNvbG9yLU41e2NvbG9yOiNERUUxRUI7fQoJCS5kMi00MjQ3MzMxMjc2IC5jb2xvci1ONntjb2xvcjojRUVGMUY4O30KCQkuZDItNDI0NzMzMTI3NiAuY29sb3ItTjd7Y29sb3I6I0ZGRkZGRjt9CgkJLmQyLTQyNDczMzEyNzYgLmNvbG9yLUIxe2NvbG9yOiMwRDMyQjI7fQoJCS5kMi00MjQ3MzMxMjc2IC5jb2xvci1CMntjb2xvcjojMEQzMkIyO30KCQkuZDItNDI0NzMzMTI3NiAuY29sb3ItQjN7Y29sb3I6I0UzRTlGRDt9CgkJLmQyLTQyNDczMzEyNzYgLmNvbG9yLUI0e2NvbG9yOiNFM0U5RkQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5jb2xvci1CNXtjb2xvcjojRURGMEZEO30KCQkuZDItNDI0NzMzMTI3NiAuY29sb3ItQjZ7Y29sb3I6I0Y3RjhGRTt9CgkJLmQyLTQyNDczMzEyNzYgLmNvbG9yLUFBMntjb2xvcjojNEE2RkYzO30KCQkuZDItNDI0NzMzMTI3NiAuY29sb3ItQUE0e2NvbG9yOiNFREYwRkQ7fQoJCS5kMi00MjQ3MzMxMjc2IC5jb2xvci1BQTV7Y29sb3I6I0Y3RjhGRTt9CgkJLmQyLTQyNDczMzEyNzYgLmNvbG9yLUFCNHtjb2xvcjojRURGMEZEO30KCQkuZDItNDI0NzMzMTI3NiAuY29sb3ItQUI1e2NvbG9yOiNGN0Y4RkU7fS5hcHBlbmRpeCB0ZXh0LnRleHR7ZmlsbDojMEEwRjI1fS5tZHstLWNvbG9yLWZnLWRlZmF1bHQ6IzBBMEYyNTstLWNvbG9yLWZnLW11dGVkOiM2NzZDN0U7LS1jb2xvci1mZy1zdWJ0bGU6Izk0OTlBQjstLWNvbG9yLWNhbnZhcy1kZWZhdWx0OiNGRkZGRkY7LS1jb2xvci1jYW52YXMtc3VidGxlOiNFRUYxRjg7LS1jb2xvci1ib3JkZXItZGVmYXVsdDojMEQzMkIyOy0tY29sb3ItYm9yZGVyLW11dGVkOiMwRDMyQjI7LS1jb2xvci1uZXV0cmFsLW11dGVkOiNFRUYxRjg7LS1jb2xvci1hY2NlbnQtZmc6IzBEMzJCMjstLWNvbG9yLWFjY2VudC1lbXBoYXNpczojMEQzMkIyOy0tY29sb3ItYXR0ZW50aW9uLXN1YnRsZTojNjc2QzdFOy0tY29sb3ItZGFuZ2VyLWZnOnJlZDt9LnNrZXRjaC1vdmVybGF5LUIxe2ZpbGw6dXJsKCNzdHJlYWtzLWRhcmtlci1kMi00MjQ3MzMxMjc2KTttaXgtYmxlbmQtbW9kZTpsaWdodGVufS5za2V0Y2gtb3ZlcmxheS1CMntmaWxsOnVybCgjc3RyZWFrcy1kYXJrZXItZDItNDI0NzMzMTI3Nik7bWl4LWJsZW5kLW1vZGU6bGlnaHRlbn0uc2tldGNoLW92ZXJsYXktQjN7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTQyNDczMzEyNzYpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQjR7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTQyNDczMzEyNzYpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQjV7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTQyNDczMzEyNzYpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQjZ7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTQyNDczMzEyNzYpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQUEye2ZpbGw6dXJsKCNzdHJlYWtzLWRhcmstZDItNDI0NzMzMTI3Nik7bWl4LWJsZW5kLW1vZGU6b3ZlcmxheX0uc2tldGNoLW92ZXJsYXktQUE0e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjQ3MzMxMjc2KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUFBNXtmaWxsOnVybCgjc3RyZWFrcy1icmlnaHQtZDItNDI0NzMzMTI3Nik7bWl4LWJsZW5kLW1vZGU6ZGFya2VufS5za2V0Y2gtb3ZlcmxheS1BQjR7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTQyNDczMzEyNzYpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQUI1e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjQ3MzMxMjc2KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LU4xe2ZpbGw6dXJsKCNzdHJlYWtzLWRhcmtlci1kMi00MjQ3MzMxMjc2KTttaXgtYmxlbmQtbW9kZTpsaWdodGVufS5za2V0Y2gtb3ZlcmxheS1OMntmaWxsOnVybCgjc3RyZWFrcy1kYXJrLWQyLTQyNDczMzEyNzYpO21peC1ibGVuZC1tb2RlOm92ZXJsYXl9LnNrZXRjaC1vdmVybGF5LU4ze2ZpbGw6dXJsKCNzdHJlYWtzLW5vcm1hbC1kMi00MjQ3MzMxMjc2KTttaXgtYmxlbmQtbW9kZTpjb2xvci1idXJufS5za2V0Y2gtb3ZlcmxheS1ONHtmaWxsOnVybCgjc3RyZWFrcy1ub3JtYWwtZDItNDI0NzMzMTI3Nik7bWl4LWJsZW5kLW1vZGU6Y29sb3ItYnVybn0uc2tldGNoLW92ZXJsYXktTjV7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTQyNDczMzEyNzYpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktTjZ7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTQyNDczMzEyNzYpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktTjd7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTQyNDczMzEyNzYpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0ubGlnaHQtY29kZXtkaXNwbGF5OiBibG9ja30uZGFyay1jb2Rle2Rpc3BsYXk6IG5vbmV9XV0+PC9zdHlsZT48ZyBjbGFzcz0iWldScGRBPT0iPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjE3Ni4wMDAwMDAiIHk9IjAuMDAwMDAwIiB3aWR0aD0iMjk5LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMzI1LjUwMDAwMCIgeT0iMzguNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPllvdSBjaGFuZ2UgYSBzaGVldCwgY29sdW1uIG9yIGZpbHRlcjwvdGV4dD48L2c+PGcgY2xhc3M9IlkyaGxZMnM9Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSIxNzIuMDAwMDAwIiB5PSIxNjYuMDAwMDAwIiB3aWR0aD0iMzA4LjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMzI2LjAwMDAwMCIgeT0iMjA0LjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5WYWxpZGF0aW9uIGVuZHBvaW50IGNoZWNrcyB0aGUgc2V0dXA8L3RleHQ+PC9nPjxnIGNsYXNzPSJiMnM9Ij48ZyBjbGFzcz0ic2hhcGUiID48cmVjdCB4PSIwLjAwMDAwMCIgeT0iMzUzLjAwMDAwMCIgd2lkdGg9IjMwOS4wMDAwMDAiIGhlaWdodD0iNjYuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9IiNGN0Y4RkUiIGNsYXNzPSIgc3Ryb2tlLUIxIGZpbGwtQjYiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIC8+PC9nPjx0ZXh0IHg9IjE1NC41MDAwMDAiIHk9IjM5MS41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+VmFsaWQ6IHNldHVwIGNhbiBiZSBzYXZlZCBvciBleHBvcnRlZDwvdGV4dD48L2c+PGcgY2xhc3M9IlltRmsiPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjM2OS4wMDAwMDAiIHk9IjM1My4wMDAwMDAiIHdpZHRoPSIyNTYuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSI0OTcuMDAwMDAwIiB5PSIzOTEuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPkVycm9ycyBsaXN0ZWQgYWdhaW5zdCB0aGUgc2V0dXA8L3RleHQ+PC9nPjxnIGNsYXNzPSJLR1ZrYVhRZ0xTWm5kRHNnWTJobFkyc3BXekJkIj48bWFya2VyIGlkPSJtay1kMi00MjQ3MzMxMjc2LTM0ODgzNzgxMzQiIG1hcmtlcldpZHRoPSIxMC4wMDAwMDAiIG1hcmtlckhlaWdodD0iMTIuMDAwMDAwIiByZWZYPSI3LjAwMDAwMCIgcmVmWT0iNi4wMDAwMDAiIHZpZXdCb3g9IjAuMDAwMDAwIDAuMDAwMDAwIDEwLjAwMDAwMCAxMi4wMDAwMDAiIG9yaWVudD0iYXV0byIgbWFya2VyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj4gPHBvbHlnb24gcG9pbnRzPSIwLjAwMDAwMCwwLjAwMDAwMCAxMC4wMDAwMDAsNi4wMDAwMDAgMC4wMDAwMDAsMTIuMDAwMDAwIiBmaWxsPSIjMEQzMkIyIiBjbGFzcz0iY29ubmVjdGlvbiBmaWxsLUIxIiBzdHJva2Utd2lkdGg9IjIiIC8+IDwvbWFya2VyPjxwYXRoIGQ9Ik0gMzI1Ljc1MDAwMCA2OC4wMDAwMDAgQyAzMjUuNzUwMDAwIDEwNi4wMDAwMDAgMzI1Ljc1MDAwMCAxMjYuMDAwMDAwIDMyNS43NTAwMDAgMTYyLjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNDI0NzMzMTI3Ni0zNDg4Mzc4MTM0KSIgbWFzaz0idXJsKCNkMi00MjQ3MzMxMjc2KSIgLz48L2c+PGcgY2xhc3M9IktHTm9aV05ySUMwbVozUTdJRzlyS1Zzd1hRPT0iPjxwYXRoIGQ9Ik0gMjYzLjc0NzIzNSAyMzIuNDYzMjMxIEMgMTc2LjY5OTk5NyAyODAuMjk5OTg4IDE1NC41MDAwMDAgMzA0LjcwMDAxMiAxNTQuNTAwMDAwIDM0OS41MDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTQyNDczMzEyNzYtMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNDI0NzMzMTI3NikiIC8+PHRleHQgeD0iMTg1LjUwMDAwMCIgeT0iMjgxLjAwMDAwMCIgZmlsbD0iIzY3NkM3RSIgY2xhc3M9InRleHQtaXRhbGljIGZpbGwtTjIiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPnZhbGlkPC90ZXh0PjwvZz48ZyBjbGFzcz0iS0dOb1pXTnJJQzBtWjNRN0lHSmhaQ2xiTUYwPSI+PHBhdGggZD0iTSAzODcuNzUyNzY1IDIzMi40NjMyMzEgQyA0NzQuNzk5OTg4IDI4MC4yOTk5ODggNDk3LjAwMDAwMCAzMDQuNzAwMDEyIDQ5Ny4wMDAwMDAgMzQ5LjUwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNDI0NzMzMTI3Ni0zNDg4Mzc4MTM0KSIgbWFzaz0idXJsKCNkMi00MjQ3MzMxMjc2KSIgLz48dGV4dCB4PSI0NjYuMDAwMDAwIiB5PSIyODEuMDAwMDAwIiBmaWxsPSIjNjc2QzdFIiBjbGFzcz0idGV4dC1pdGFsaWMgZmlsbC1OMiIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+ZXJyb3JzPC90ZXh0PjwvZz48bWFzayBpZD0iZDItNDI0NzMzMTI3NiIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iLTEwMSIgeT0iLTEwMSIgd2lkdGg9IjgyNyIgaGVpZ2h0PSI2MjEiPgo8cmVjdCB4PSItMTAxIiB5PSItMTAxIiB3aWR0aD0iODI3IiBoZWlnaHQ9IjYyMSIgZmlsbD0id2hpdGUiPjwvcmVjdD4KPHJlY3QgeD0iMTY3LjAwMDAwMCIgeT0iMjY1LjAwMDAwMCIgd2lkdGg9IjM3IiBoZWlnaHQ9IjIxIiBmaWxsPSJibGFjayI+PC9yZWN0Pgo8cmVjdCB4PSI0NDQuMDAwMDAwIiB5PSIyNjUuMDAwMDAwIiB3aWR0aD0iNDQiIGhlaWdodD0iMjEiIGZpbGw9ImJsYWNrIj48L3JlY3Q+CjwvbWFzaz48L3N2Zz48L3N2Zz4K" alt="Architecture diagram" style={{maxWidth:"100%",height:"auto",display:"block",margin:"2em auto"}} />

The validation endpoint returns whether the setup is valid, plus a list of errors, and it reads no billing rows. A check that touches no billing rows can run on every edit without cost or delay, which a sample-row preview that queried real data could not.

## Two Editors Get a Conflict Prompt, Not an Overwrite

Saving uses create for a new template and PATCH for an existing one, carrying the time it was last updated. If someone else saved in the meantime, the page shows a conflict prompt instead of replacing their work.

Without that, the later of two editors would silently overwrite the earlier. With it, the second person sees that the template changed and decides what to do.

## What the Change Removes

The sample-row preview route is gone, along with the preview_cost_workbook [MCP tool](https://zop.dev/resources/blogs/mcp-server-cloud-governance-claude-cursor-codex) and the sample rows field on workbook requests. They were removed without a deprecation window, so an assistant that called the preview tool should use export_cost_workbook instead.

There is no migration and no new permission. A template is checked against the same org-wide report access that already governed workbooks.
