diff --git a/editor/Budget-as-Code.html b/editor/Budget-as-Code.html
index ce0b229..be9284a 100644
--- a/editor/Budget-as-Code.html
+++ b/editor/Budget-as-Code.html
@@ -16193,8 +16193,8 @@ const srcLabel = (M, a) => { const s = M.src[a.src]; if (!s) return ""; return (
/* ============================================================ stāvoklis */
const S = {v: "problema", y: null, sub: "kopsavilkums", fund: "all", grp: "resori", open: new Set(), q: "", rfund: "basic", cflow: "expenditure", sel: null, sort: "code"};
const cur = () => MODELS[S.y];
-function setHash(){ const h = "#/" + S.v + (["budzets"].includes(S.v) ? "/" + S.y + "/" + S.sub : (["salidz", "saderiba", "modelis"].includes(S.v) ? "/" + S.y : "")); if (location.hash !== h) history.replaceState(null, "", h); }
-function readHash(){ const p = location.hash.replace(/^#\/?/, "").split("/"); if (p[0]) S.v = p[0]; if (p[1] && MODELS[p[1]]) S.y = p[1]; if (p[2]) S.sub = p[2]; }
+function setHash(){ const h = "#/" + S.v + (["budzets"].includes(S.v) ? "/" + S.y + "/" + S.sub : (["salidz", "saderiba", "modelis"].includes(S.v) ? "/" + S.y : "")); if (setHash.off || location.hash === h) return; try { history.replaceState(null, "", h); } catch (e) { setHash.off = true; } }
+function readHash(){ let lh = ""; try { lh = location.hash || ""; } catch (e) {} const p = lh.replace(/^#\/?/, "").split("/"); if (p[0]) S.v = p[0]; if (p[1] && MODELS[p[1]]) S.y = p[1]; if (p[2]) S.sub = p[2]; }
/* ============================================================ karkass */
function renderYearSeg(){