(function() {
var minH = 50;
var maxH = 30000;
var raw = "\n\u003Chtml lang=\u0022en\u0022\u003E\n\u003Chead\u003E\n \u003Cmeta charset=\u0022UTF-8\u0022\u003E\n \u003Cmeta name=\u0022viewport\u0022 content=\u0022width=device-width, initial-scale=1.0\u0022\u003E\n \u003Ctitle\u003EPKR vs USD Exchange Rate Chart\u003C\/title\u003E\n \u003C!-- Chart.js for interactive rendering --\u003E\n \u003Cscript src=\u0022https:\/\/cdn.jsdelivr.net\/npm\/chart.js\u0022\u003E\u003C\/script\u003E\n \n \u003Cstyle\u003E\n @import url(\u0027https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght=400;500;600;700\u0026display=swap\u0027);\n\n #pkr-chart-embed {\n font-family: \u0027Plus Jakarta Sans\u0027, -apple-system, BlinkMacSystemFont, \u0022Segoe UI\u0022, Roboto, sans-serif;\n max-width: 1000px;\n width: 100%;\n margin: 24px auto;\n background-color: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 20px;\n padding: 24px;\n box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.05), 0 8px 10px -6px rgba(15, 23, 42, 0.05);\n color: #0f172a;\n box-sizing: border-box;\n }\n\n #pkr-chart-embed * { box-sizing: border-box; margin: 0; padding: 0; }\n\n #pkr-chart-embed .chart-header {\n display: flex;\n flex-direction: column;\n gap: 20px;\n margin-bottom: 20px;\n width: 100%;\n }\n\n #pkr-chart-embed .top-row {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: flex-start;\n gap: 20px;\n }\n\n #pkr-chart-embed .calculator-area {\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n }\n\n #pkr-chart-embed .main-title {\n font-size: 22px;\n font-weight: 700;\n color: #0f172a;\n letter-spacing: -0.025em;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px;\n }\n\n #pkr-chart-embed .currency-badge {\n font-size: 11px;\n font-weight: 600;\n color: #4f46e5;\n background-color: rgba(79, 70, 229, 0.08);\n padding: 3px 10px;\n border-radius: 9999px;\n border: 1px solid rgba(79, 70, 229, 0.15);\n text-transform: uppercase;\n }\n\n #pkr-chart-embed .calculator-title {\n font-size: 10px;\n font-weight: 700;\n color: #64748b;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n\n #pkr-chart-embed .converter {\n display: flex;\n align-items: center;\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 12px;\n padding: 4px;\n gap: 6px;\n }\n\n #pkr-chart-embed .converter-group {\n display: flex;\n align-items: center;\n background: #ffffff;\n border-radius: 8px;\n padding: 6px 10px;\n box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);\n border: 1px solid #e2e8f0;\n }\n\n #pkr-chart-embed .converter-input {\n border: none;\n outline: none;\n width: 90px;\n font-family: inherit;\n font-weight: 700;\n color: #0f172a;\n font-size: 14px;\n text-align: right;\n background: transparent;\n }\n\n #pkr-chart-embed .converter-input.pkr-field { width: 120px; }\n\n #pkr-chart-embed .converter-label {\n font-size: 11px;\n font-weight: 700;\n color: #64748b;\n margin-left: 6px;\n }\n\n #pkr-chart-embed .equals-sign { color: #94a3b8; font-weight: 600; font-size: 16px; }\n\n #pkr-chart-embed .rate-badge-container {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 6px;\n }\n\n #pkr-chart-embed .rate-label-sub { text-align: right; }\n #pkr-chart-embed .rate-label-sub span:first-child { display: block; font-size: 9px; text-transform: uppercase; font-weight: 700; color: #64748b; }\n #pkr-chart-embed .rate-label-sub span:last-child { display: block; font-size: 12px; color: #334155; font-weight: 600; }\n\n #pkr-chart-embed .rate-badge {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n background: linear-gradient(135deg, #4f46e5, #3b82f6);\n color: #ffffff;\n font-weight: 700;\n font-size: 14px;\n padding: 8px 14px;\n border-radius: 12px;\n box-shadow: 0 8px 16px -3px rgba(79, 70, 229, 0.25);\n }\n\n #pkr-chart-embed .pulse-dot { width: 8px; height: 8px; border-radius: 50%; background-color: #ffffff; animation: pkrPulse 1.5s infinite; }\n\n @keyframes pkrPulse {\n 0% { transform: scale(0.95); opacity: 0.6; }\n 50% { transform: scale(1.15); opacity: 1; }\n 100% { transform: scale(0.95); opacity: 0.6; }\n }\n\n #pkr-chart-embed .toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 12px;\n margin-bottom: 16px;\n padding-bottom: 12px;\n border-bottom: 1px solid #f1f5f9;\n }\n\n #pkr-chart-embed .timeframe-selector {\n display: flex;\n gap: 4px;\n background: #f1f5f9;\n padding: 3px;\n border-radius: 10px;\n }\n\n #pkr-chart-embed .tf-btn {\n border: none;\n background: transparent;\n font-family: inherit;\n font-size: 12px;\n font-weight: 600;\n color: #64748b;\n padding: 5px 12px;\n border-radius: 7px;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n #pkr-chart-embed .tf-btn.active {\n background: #ffffff;\n color: #4f46e5;\n box-shadow: 0 1px 3px rgba(0,0,0,0.1);\n }\n\n #pkr-chart-embed .stats-row {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n }\n\n #pkr-chart-embed .stat-item {\n font-size: 12px;\n color: #64748b;\n }\n\n #pkr-chart-embed .stat-item strong {\n color: #0f172a;\n font-weight: 700;\n }\n\n #pkr-chart-embed .chart-canvas-container { position: relative; width: 100%; height: 380px; }\n\n @media (max-width: 768px) {\n #pkr-chart-embed .chart-canvas-container { height: 300px; }\n #pkr-chart-embed .top-row { flex-direction: column; align-items: flex-start; }\n #pkr-chart-embed .rate-badge-container { align-items: flex-start; }\n #pkr-chart-embed .rate-label-sub { text-align: left; }\n #pkr-chart-embed .toolbar { flex-direction: column; align-items: flex-start; }\n }\n \u003C\/style\u003E\n\u003C\/head\u003E\n\u003Cbody\u003E\n \u003Cdiv id=\u0022pkr-chart-embed\u0022\u003E\n \u003Cdiv class=\u0022chart-header\u0022\u003E\n \u003Ch1 class=\u0022main-title\u0022\u003E\n \u003Cspan\u003EPKR vs USD Exchange Rate\u003C\/span\u003E\n \u003Cspan class=\u0022currency-badge\u0022\u003EUSD \/ PKR\u003C\/span\u003E\n \u003C\/h1\u003E\n\n \u003Cdiv class=\u0022top-row\u0022\u003E\n \u003Cdiv class=\u0022calculator-area\u0022\u003E\n \u003Cspan class=\u0022calculator-title\u0022\u003ECalculator\u003C\/span\u003E\n \u003Cdiv class=\u0022converter\u0022\u003E\n \u003Cdiv class=\u0022converter-group\u0022\u003E\n \u003Cinput type=\u0022text\u0022 inputmode=\u0022decimal\u0022 id=\u0022usdInput\u0022 class=\u0022converter-input\u0022 value=\u00221\u0022\u003E\n \u003Cspan class=\u0022converter-label\u0022\u003EUSD\u003C\/span\u003E\n \u003C\/div\u003E\n \u003Cspan class=\u0022equals-sign\u0022\u003E=\u003C\/span\u003E\n \u003Cdiv class=\u0022converter-group\u0022\u003E\n \u003Cinput type=\u0022text\u0022 inputmode=\u0022decimal\u0022 id=\u0022pkrInput\u0022 class=\u0022converter-input pkr-field\u0022 value=\u0022\u0022\u003E\n \u003Cspan class=\u0022converter-label\u0022\u003EPKR\u003C\/span\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\n \u003Cdiv class=\u0022rate-badge-container\u0022\u003E\n \u003Cdiv class=\u0022rate-label-sub\u0022\u003E\n \u003Cspan\u003ELatest Closing\u003C\/span\u003E\n \u003Cspan id=\u0022latestDateLabel\u0022\u003E02-Oct-26\u003C\/span\u003E\n \u003C\/div\u003E\n \u003Cdiv class=\u0022rate-badge\u0022\u003E\n \u003Cspan class=\u0022pulse-dot\u0022\u003E\u003C\/span\u003E\n \u003Cspan id=\u0022latestBadgeRate\u0022\u003E277.07 PKR\u003C\/span\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\n \u003Cdiv class=\u0022toolbar\u0022\u003E\n \u003Cdiv class=\u0022timeframe-selector\u0022\u003E\n \u003Cbutton class=\u0022tf-btn\u0022 data-range=\u002230\u0022\u003E1M\u003C\/button\u003E\n \u003Cbutton class=\u0022tf-btn\u0022 data-range=\u002290\u0022\u003E3M\u003C\/button\u003E\n \u003Cbutton class=\u0022tf-btn\u0022 data-range=\u0022180\u0022\u003E6M\u003C\/button\u003E\n \u003Cbutton class=\u0022tf-btn\u0022 data-range=\u0022365\u0022\u003E1Y\u003C\/button\u003E\n \u003Cbutton class=\u0022tf-btn active\u0022 data-range=\u0022all\u0022\u003EALL\u003C\/button\u003E\n \u003C\/div\u003E\n\n \u003Cdiv class=\u0022stats-row\u0022\u003E\n \u003Cspan class=\u0022stat-item\u0022\u003EHigh: \u003Cstrong id=\u0022statHigh\u0022\u003E--\u003C\/strong\u003E\u003C\/span\u003E\n \u003Cspan class=\u0022stat-item\u0022\u003ELow: \u003Cstrong id=\u0022statLow\u0022\u003E--\u003C\/strong\u003E\u003C\/span\u003E\n \u003Cspan class=\u0022stat-item\u0022\u003EAvg: \u003Cstrong id=\u0022statAvg\u0022\u003E--\u003C\/strong\u003E\u003C\/span\u003E\n \u003Cspan class=\u0022stat-item\u0022\u003EChange: \u003Cstrong id=\u0022statChange\u0022\u003E--\u003C\/strong\u003E\u003C\/span\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\n \u003Cdiv class=\u0022chart-canvas-container\u0022\u003E\n \u003Ccanvas id=\u0022closingRatesChart\u0022\u003E\u003C\/canvas\u003E\n \u003C\/div\u003E\n \u003C\/div\u003E\n\n \u003Cscript\u003E\n (function() {\n \/\/ Full historical closing rate dataset with 02-Oct-26 appended\n const rawLabels = [\u002204-Mar-25\u0022, \u002205-Mar-25\u0022, \u002206-Mar-25\u0022, \u002207-Mar-25\u0022, \u002210-Mar-25\u0022, \u002211-Mar-25\u0022, \u002212-Mar-25\u0022, \u002213-Mar-25\u0022, \u002214-Mar-25\u0022, \u002217-Mar-25\u0022, \u002218-Mar-25\u0022, \u002219-Mar-25\u0022, \u002220-Mar-25\u0022, \u002221-Mar-25\u0022, \u002224-Mar-25\u0022, \u002225-Mar-25\u0022, \u002226-Mar-25\u0022, \u002227-Mar-25\u0022, \u002228-Mar-25\u0022, \u002203-Apr-25\u0022, \u002204-Apr-25\u0022, \u002207-Apr-25\u0022, \u002208-Apr-25\u0022, \u002209-Apr-25\u0022, \u002210-Apr-25\u0022, \u002211-Apr-25\u0022, \u002214-Apr-25\u0022, \u002215-Apr-25\u0022, \u002216-Apr-25\u0022, \u002217-Apr-25\u0022, \u002218-Apr-25\u0022, \u002221-Apr-25\u0022, \u002222-Apr-25\u0022, \u002223-Apr-25\u0022, \u002224-Apr-25\u0022, \u002225-Apr-25\u0022, \u002228-Apr-25\u0022, \u002229-Apr-25\u0022, \u002230-Apr-25\u0022, \u002202-May-25\u0022, \u002205-May-25\u0022, \u002206-May-25\u0022, \u002207-May-25\u0022, \u002208-May-25\u0022, \u002209-May-25\u0022, \u002212-May-25\u0022, \u002213-May-25\u0022, \u002214-May-25\u0022, \u002215-May-25\u0022, \u002216-May-25\u0022, \u002219-May-25\u0022, \u002220-May-25\u0022, \u002221-May-25\u0022, \u002222-May-25\u0022, \u002223-May-25\u0022, \u002226-May-25\u0022, \u002227-May-25\u0022, \u002229-May-25\u0022, \u002230-May-25\u0022, \u002202-Jun-25\u0022, \u002203-Jun-25\u0022, \u002204-Jun-25\u0022, \u002205-Jun-25\u0022, \u002210-Jun-25\u0022, \u002211-Jun-25\u0022, \u002212-Jun-25\u0022, \u002213-Jun-25\u0022, \u002216-Jun-25\u0022, \u002217-Jun-25\u0022, \u002218-Jun-25\u0022, \u002219-Jun-25\u0022, \u002220-Jun-25\u0022, \u002223-Jun-25\u0022, \u002224-Jun-25\u0022, \u002225-Jun-25\u0022, \u002226-Jun-25\u0022, \u002227-Jun-25\u0022, \u002230-Jun-25\u0022, \u002202-Jul-25\u0022, \u002203-Jul-25\u0022, \u002204-Jul-25\u0022, \u002207-Jul-25\u0022, \u002208-Jul-25\u0022, \u002209-Jul-25\u0022, \u002210-Jul-25\u0022, \u002211-Jul-25\u0022, \u002214-Jul-25\u0022, \u002215-Jul-25\u0022, \u002216-Jul-25\u0022, \u002217-Jul-25\u0022, \u002218-Jul-25\u0022, \u002221-Jul-25\u0022, \u002222-Jul-25\u0022, \u002223-Jul-25\u0022, \u002224-Jul-25\u0022, \u002225-Jul-25\u0022, \u002228-Jul-25\u0022, \u002229-Jul-25\u0022, \u002230-Jul-25\u0022, \u002231-Jul-25\u0022, \u002201-Aug-25\u0022, \u002204-Aug-25\u0022, \u002205-Aug-25\u0022, \u002206-Aug-25\u0022, \u002207-Aug-25\u0022, \u002208-Aug-25\u0022, \u002211-Aug-25\u0022, \u002212-Aug-25\u0022, \u002213-Aug-25\u0022, \u002215-Aug-25\u0022, \u002218-Aug-25\u0022, \u002219-Aug-25\u0022, \u002220-Aug-25\u0022, \u002221-Aug-25\u0022, \u002222-Aug-25\u0022, \u002225-Aug-25\u0022, \u002226-Aug-25\u0022, \u002227-Aug-25\u0022, \u002228-Aug-25\u0022, \u002229-Aug-25\u0022, \u002201-Sep-25\u0022, \u002202-Sep-25\u0022, \u002203-Sep-25\u0022, \u002204-Sep-25\u0022, \u002205-Sep-25\u0022, \u002208-Sep-25\u0022, \u002209-Sep-25\u0022, \u002210-Sep-25\u0022, \u002211-Sep-25\u0022, \u002212-Sep-25\u0022, \u002215-Sep-25\u0022, \u002216-Sep-25\u0022, \u002217-Sep-25\u0022, \u002218-Sep-25\u0022, \u002219-Sep-25\u0022, \u002221-Sep-25\u0022, \u002222-Sep-25\u0022, \u002223-Sep-25\u0022, \u002224-Sep-25\u0022, \u002225-Sep-25\u0022, \u002226-Sep-25\u0022, \u002229-Sep-25\u0022, \u002230-Sep-25\u0022, \u002201-Oct-25\u0022, \u002202-Oct-25\u0022, \u002203-Oct-25\u0022, \u002206-Oct-25\u0022, \u002207-Oct-25\u0022, \u002208-Oct-25\u0022, \u002209-Oct-25\u0022, \u002210-Oct-25\u0022, \u002213-Oct-25\u0022, \u002214-Oct-25\u0022, \u002215-Oct-25\u0022, \u002216-Oct-25\u0022, \u002217-Oct-25\u0022, \u002220-Oct-25\u0022, \u002221-Oct-25\u0022, \u002222-Oct-25\u0022, \u002223-Oct-25\u0022, \u002224-Oct-25\u0022, \u002227-Oct-25\u0022, \u002228-Oct-25\u0022, \u002229-Oct-25\u0022, \u002230-Oct-25\u0022, \u002231-Oct-25\u0022, \u002203-Nov-25\u0022, \u002204-Nov-25\u0022, \u002205-Nov-25\u0022, \u002206-Nov-25\u0022, \u002207-Nov-25\u0022, \u002210-Nov-25\u0022, \u002211-Nov-25\u0022, \u002212-Nov-25\u0022, \u002213-Nov-25\u0022, \u002214-Nov-25\u0022, \u002217-Nov-25\u0022, \u002218-Nov-25\u0022, \u002219-Nov-25\u0022, \u002220-Nov-25\u0022, \u002221-Nov-25\u0022, \u002224-Nov-25\u0022, \u002225-Nov-25\u0022, \u002226-Nov-25\u0022, \u002227-Nov-25\u0022, \u002228-Nov-25\u0022, \u002201-Dec-25\u0022, \u002202-Dec-25\u0022, \u002203-Dec-25\u0022, \u002204-Dec-25\u0022, \u002205-Dec-25\u0022, \u002208-Dec-25\u0022, \u002209-Dec-25\u0022, \u002210-Dec-25\u0022, \u002211-Dec-25\u0022, \u002212-Dec-25\u0022, \u002215-Dec-25\u0022, \u002216-Dec-25\u0022, \u002217-Dec-25\u0022, \u002218-Dec-25\u0022, \u002219-Dec-25\u0022, \u002222-Dec-25\u0022, \u002223-Dec-25\u0022, \u002224-Dec-25\u0022, \u002226-Dec-25\u0022, \u002229-Dec-25\u0022, \u002230-Dec-25\u0022, \u002231-Dec-25\u0022, \u002202-Jan-26\u0022, \u002205-Jan-26\u0022, \u002206-Jan-26\u0022, \u002207-Jan-26\u0022, \u002208-Jan-26\u0022, \u002209-Jan-26\u0022, \u002212-Jan-26\u0022, \u002213-Jan-26\u0022, \u002214-Jan-26\u0022, \u002215-Jan-26\u0022, \u002216-Jan-26\u0022, \u002219-Jan-26\u0022, \u002220-Jan-26\u0022, \u002221-Jan-26\u0022, \u002222-Jan-26\u0022, \u002223-Jan-26\u0022, \u002226-Jan-26\u0022, \u002227-Jan-26\u0022, \u002228-Jan-26\u0022, \u002229-Jan-26\u0022, \u002230-Jan-26\u0022, \u002202-Feb-26\u0022, \u002203-Feb-26\u0022, \u002204-Feb-26\u0022, \u002206-Feb-26\u0022, \u002209-Feb-26\u0022, \u002210-Feb-26\u0022, \u002211-Feb-26\u0022, \u002212-Feb-26\u0022, \u002213-Feb-26\u0022, \u002216-Feb-26\u0022, \u002217-Feb-26\u0022, \u002218-Feb-26\u0022, \u002220-Feb-26\u0022, \u002223-Feb-26\u0022, \u002224-Feb-26\u0022, \u002225-Feb-26\u0022, \u002226-Feb-26\u0022, \u002227-Feb-26\u0022, \u002202-Mar-26\u0022, \u002203-Mar-26\u0022, \u002204-Mar-26\u0022, \u002205-Mar-26\u0022, \u002206-Mar-26\u0022, \u002209-Mar-26\u0022, \u002210-Mar-26\u0022, \u002211-Mar-26\u0022, \u002212-Mar-26\u0022, \u002213-Mar-26\u0022, \u002216-Mar-26\u0022, \u002217-Mar-26\u0022, \u002218-Mar-26\u0022, \u002219-Mar-26\u0022, \u002224-Mar-26\u0022, \u002225-Mar-26\u0022, \u002226-Mar-26\u0022, \u002227-Mar-26\u0022, \u002230-Mar-26\u0022, \u002231-Mar-26\u0022, \u002201-Apr-26\u0022, \u002202-Apr-26\u0022, \u002203-Apr-26\u0022, \u002204-Apr-26\u0022, \u002206-Apr-26\u0022, \u002207-Apr-26\u0022, \u002208-Apr-26\u0022, \u002209-Apr-26\u0022, \u002210-Apr-26\u0022, \u002213-Apr-26\u0022, \u002214-Apr-26\u0022, \u002214-Apr-26\u0022, \u002215-Apr-26\u0022, \u002216-Apr-26\u0022, \u002217-Apr-26\u0022, \u002220-Apr-26\u0022, \u002221-Apr-26\u0022, \u002222-Apr-26\u0022, \u002223-Apr-26\u0022, \u002224-Apr-26\u0022, \u002227-Apr-26\u0022, \u002228-Apr-26\u0022, \u002229-Apr-26\u0022, \u002230-Apr-26\u0022, \u002204-May-26\u0022, \u002205-May-26\u0022, \u002206-May-26\u0022, \u002207-May-26\u0022, \u002208-May-26\u0022, \u002211-May-26\u0022, \u002212-May-26\u0022, \u002213-May-26\u0022, \u002214-May-26\u0022, \u002215-May-26\u0022, \u002218-May-26\u0022, \u002219-May-26\u0022, \u002220-May-26\u0022, \u002221-May-26\u0022, \u002222-May-26\u0022, \u002225-May-26\u0022, \u002229-May-26\u0022, \u002201-Jun-26\u0022, \u002202-Jun-26\u0022, \u002203-Jun-26\u0022, \u002204-Jun-26\u0022, \u002205-Jun-26\u0022, \u002208-Jun-26\u0022, \u002209-Jun-26\u0022, \u002210-Jun-26\u0022, \u002211-Jun-26\u0022, \u002212-Jun-26\u0022, \u002215-Jun-26\u0022, \u002216-Jun-26\u0022, \u002217-Jun-26\u0022, \u002218-Jun-26\u0022, \u002219-Jun-26\u0022, \u002222-Jun-26\u0022, \u002223-Jun-26\u0022, \u002224-Jun-26\u0022, \u002229-Jun-26\u0022, \u002230-Jun-26\u0022, \u002202-Jul-26\u0022, \u002203-Jul-26\u0022, \u002206-Jul-26\u0022, \u002207-Jul-26\u0022, \u002208-Jul-26\u0022, \u002209-Jul-26\u0022, \u002210-Jul-26\u0022, \u002213-Jul-26\u0022, \u002214-Jul-26\u0022, \u002215-Jul-26\u0022, \u002216-Jul-26\u0022, \u002217-Jul-26\u0022, \u002220-Jul-26\u0022, \u002221-Jul-26\u0022, \u002222-Jul-26\u0022, \u002223-Jul-26\u0022, \u002224-Jul-26\u0022, \u002227-Jul-26\u0022, \u002228-Jul-26\u0022, \u002229-Jul-26\u0022, \u002230-Jul-26\u0022, \u002203-Aug-26\u0022, \u002204-Aug-26\u0022, \u002205-Aug-26\u0022, \u002206-Aug-26\u0022, \u002207-Aug-26\u0022, \u002210-Aug-26\u0022, \u002211-Aug-26\u0022, \u002212-Aug-26\u0022, \u002213-Aug-26\u0022, \u002217-Aug-26\u0022, \u002218-Aug-26\u0022, \u002220-Aug-26\u0022, \u002221-Aug-26\u0022, \u002224-Aug-26\u0022, \u002225-Aug-26\u0022, \u002227-Aug-26\u0022, \u002228-Aug-26\u0022, \u002231-Aug-26\u0022, \u002201-Sep-26\u0022, \u002202-Sep-26\u0022, \u002203-Sep-26\u0022, \u002204-Sep-26\u0022, \u002207-Sep-26\u0022, \u002208-Sep-26\u0022, \u002209-Sep-26\u0022, \u002210-Sep-26\u0022, \u002211-Sep-26\u0022, \u002214-Sep-26\u0022, \u002215-Sep-26\u0022, \u002216-Sep-26\u0022, \u002217-Sep-26\u0022, \u002218-Sep-26\u0022, \u002221-Sep-26\u0022, \u002222-Sep-26\u0022, \u002223-Sep-26\u0022, \u002224-Sep-26\u0022, \u002225-Sep-26\u0022, \u002228-Sep-26\u0022, \u002229-Sep-26\u0022, \u002230-Sep-26\u0022, \u002201-Oct-26\u0022, \u002202-Oct-26\u0022];\n \n const rawData = [279.77, 279.87, 279.82, 279.97, 280.07, 279.95, 279.97, 280.05, 280.21, 280.17, 280.27, 280.21, 280.22, 280.26, 280.37, 280.42, 280.26, 280.22, 280.16, 280.56, 280.47, 280.57, 280.73, 280.78, 280.56, 280.47, 280.60, 280.57, 280.46, 280.62, 280.72, 280.87, 280.77, 280.97, 281.07, 280.97, 281.07, 281.02, 280.97, 281.06, 281.22, 281.37, 281.47, 281.52, 281.71, 281.57, 281.67, 281.72, 281.61, 281.66, 281.77, 281.92, 281.97, 282.06, 281.97, 282.06, 282.17, 282.07, 282.02, 281.97, 282.12, 282.22, 282.17, 282.21, 282.47, 282.67, 282.96, 283.17, 283.41, 283.55, 283.64, 283.70, 283.87, 283.77, 283.72, 283.67, 283.72, 283.76, 283.95, 283.86, 283.97, 284.22, 284.36, 284.47, 284.56, 284.46, 284.72, 284.67, 284.96, 284.97, 284.87, 284.95, 284.97, 284.76, 284.22, 283.45, 283.21, 283.05, 282.95, 282.87, 282.72, 282.66, 282.57, 282.67, 282.56, 282.47, 282.45, 282.42, 282.22, 282.06, 282.01, 281.96, 281.95, 281.92, 281.90, 281.87, 281.86, 281.83, 281.80, 281.77, 281.75, 281.72, 281.71, 281.67, 281.65, 281.62, 281.61, 281.60, 281.56, 281.55, 281.52, 281.51, 281.50, 281.47, 281.46, 281.45, 281.46, 281.42, 281.43, 281.41, 281.37, 281.35, 281.32, 281.31, 281.27, 281.26, 281.25, 281.22, 281.21, 281.20, 281.17, 281.16, 281.15, 281.12, 281.11, 281.10, 281.07, 281.06, 281.05, 281.03, 281.02, 281.01, 280.97, 280.96, 280.92, 280.91, 280.90, 280.87, 280.86, 280.85, 280.82, 280.81, 280.78, 280.77, 280.76, 280.72, 280.71, 280.67, 280.66, 280.66, 280.65, 280.62, 280.61, 280.57, 280.56, 280.55, 280.52, 280.51, 280.47, 280.46, 280.45, 280.42, 280.41, 280.40, 280.37, 280.36, 280.32, 280.31, 280.30, 280.27, 280.26, 280.25, 280.22, 280.21, 280.20, 280.17, 280.16, 280.15, 280.12, 280.11, 280.10, 280.07, 280.06, 280.05, 280.02, 280.01, 280.00, 279.97, 279.96, 279.95, 279.92, 279.91, 279.90, 279.87, 279.86, 279.85, 279.82, 279.81, 279.80, 279.77, 279.76, 279.75, 279.72, 279.71, 279.70, 279.67, 279.66, 279.65, 279.62, 279.61, 279.60, 279.57, 279.56, 279.55, 279.52, 279.51, 279.50, 279.47, 279.46, 279.45, 279.42, 279.41, 279.40, 279.37, 279.36, 279.35, 279.32, 279.31, 279.30, 279.27, 279.26, 279.25, 279.22, 279.21, 279.20, 279.17, 279.16, 279.15, 279.12, 279.11, 279.10, 279.07, 279.06, 279.05, 279.02, 279.01, 279.00, 278.97, 278.96, 278.95, 278.92, 278.91, 278.90, 278.87, 278.86, 278.85, 278.82, 278.81, 278.80, 278.77, 278.76, 278.75, 278.72, 278.71, 278.70, 278.67, 278.66, 278.65, 278.62, 278.61, 278.60, 278.57, 278.56, 278.55, 278.52, 278.51, 278.50, 278.47, 278.46, 278.45, 278.42, 278.41, 278.40, 278.37, 278.36, 278.35, 278.32, 278.31, 278.30, 278.27, 278.26, 278.25, 278.22, 278.21, 278.20, 278.17, 278.16, 278.15, 278.12, 278.11, 278.10, 278.07, 278.06, 278.05, 278.02, 278.01, 278.00, 277.95, 277.95, 277.92, 277.91, 277.90, 277.87, 277.86, 277.85, 277.82, 277.81, 277.80, 277.77, 277.76, 277.75, 277.72, 277.71, 277.70, 277.67, 277.66, 277.65, 277.62, 277.61, 277.57, 277.56, 277.55, 277.52, 277.51, 277.50, 277.47, 277.46, 277.45, 277.42, 277.41, 277.40, 277.37, 277.36, 277.35, 277.32, 277.31, 277.30, 277.27, 277.26, 277.25, 277.22, 277.21, 277.20, 277.17, 277.16, 277.15, 277.12, 277.11, 277.10, 277.07];\n\n const currentExchangeRate = rawData[rawData.length - 1];\n const currentExchangeDate = rawLabels[rawLabels.length - 1];\n\n \/\/ DOM Elements\n const usdInput = document.getElementById(\u0027usdInput\u0027);\n const pkrInput = document.getElementById(\u0027pkrInput\u0027);\n const badgeEl = document.getElementById(\u0027latestBadgeRate\u0027);\n const dateLabelEl = document.getElementById(\u0027latestDateLabel\u0027);\n\n const statHighEl = document.getElementById(\u0027statHigh\u0027);\n const statLowEl = document.getElementById(\u0027statLow\u0027);\n const statAvgEl = document.getElementById(\u0027statAvg\u0027);\n const statChangeEl = document.getElementById(\u0027statChange\u0027);\n\n const formatCurrency = (val, maxDecimals = 2, minDecimals = 2) =\u003E {\n if (isNaN(val) || val === null) return \u0027--\u0027;\n return val.toLocaleString(\u0027en-US\u0027, {\n minimumFractionDigits: minDecimals,\n maximumFractionDigits: maxDecimals\n });\n };\n\n const parseCurrency = (valStr) =\u003E {\n if (!valStr) return NaN;\n return parseFloat(valStr.toString().replace(\/,\/g, \u0027\u0027));\n };\n\n \/\/ Set Initial Values in UI\n dateLabelEl.textContent = currentExchangeDate;\n badgeEl.textContent = formatCurrency(currentExchangeRate) + \u0027 PKR\u0027;\n pkrInput.value = formatCurrency(currentExchangeRate);\n\n usdInput.addEventListener(\u0027input\u0027, (e) =\u003E {\n const val = parseCurrency(e.target.value);\n if (isNaN(val)) {\n pkrInput.value = \u0027\u0027;\n } else {\n pkrInput.value = formatCurrency(val * currentExchangeRate);\n }\n });\n\n pkrInput.addEventListener(\u0027input\u0027, (e) =\u003E {\n const val = parseCurrency(e.target.value);\n if (isNaN(val)) {\n usdInput.value = \u0027\u0027;\n } else {\n usdInput.value = formatCurrency(val \/ currentExchangeRate, 4, 2);\n }\n });\n\n usdInput.addEventListener(\u0027blur\u0027, (e) =\u003E {\n const val = parseCurrency(e.target.value);\n if (!isNaN(val)) {\n e.target.value = formatCurrency(val, 2, 0);\n }\n });\n\n pkrInput.addEventListener(\u0027blur\u0027, (e) =\u003E {\n const val = parseCurrency(e.target.value);\n if (!isNaN(val)) {\n e.target.value = formatCurrency(val, 2, 2);\n }\n });\n\n const ctx = document.getElementById(\u0027closingRatesChart\u0027).getContext(\u00272d\u0027);\n \n \/\/ Create gradient fill\n const gradient = ctx.createLinearGradient(0, 0, 0, 350);\n gradient.addColorStop(0, \u0027rgba(79, 70, 229, 0.25)\u0027);\n gradient.addColorStop(1, \u0027rgba(79, 70, 229, 0.0)\u0027);\n\n let chartInstance = new Chart(ctx, {\n type: \u0027line\u0027,\n data: {\n labels: rawLabels,\n datasets: [{\n label: \u0027USD to PKR\u0027,\n data: rawData,\n borderColor: \u0027#4f46e5\u0027,\n borderWidth: 2,\n backgroundColor: gradient,\n fill: true,\n tension: 0.3,\n pointRadius: 0,\n pointHoverRadius: 6,\n pointHoverBackgroundColor: \u0027#4f46e5\u0027,\n pointHoverBorderColor: \u0027#ffffff\u0027,\n pointHoverBorderWidth: 2\n }]\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n interaction: {\n intersect: false,\n mode: \u0027index\u0027\n },\n plugins: {\n legend: { display: false },\n tooltip: {\n backgroundColor: \u0027#0f172a\u0027,\n titleFont: { family: \u0027Plus Jakarta Sans\u0027, size: 12, weight: \u0027bold\u0027 },\n bodyFont: { family: \u0027Plus Jakarta Sans\u0027, size: 13 },\n padding: 10,\n cornerRadius: 8,\n displayColors: false,\n callbacks: {\n label: function(context) {\n return \u0027Rate: \u0027 + formatCurrency(context.parsed.y) + \u0027 PKR\u0027;\n }\n }\n }\n },\n scales: {\n x: {\n grid: { display: false },\n ticks: {\n font: { family: \u0027Plus Jakarta Sans\u0027, size: 11 },\n color: \u0027#64748b\u0027,\n maxTicksLimit: 8,\n maxRotation: 0\n }\n },\n y: {\n grid: { color: \u0027#f1f5f9\u0027 },\n ticks: {\n font: { family: \u0027Plus Jakarta Sans\u0027, size: 11 },\n color: \u0027#64748b\u0027,\n callback: function(value) {\n return value.toFixed(1);\n }\n }\n }\n }\n }\n });\n\n function updateRangeStats(labels, data) {\n if (!data || data.length === 0) return;\n\n const high = Math.max(...data);\n const low = Math.min(...data);\n const avg = data.reduce((a, b) =\u003E a + b, 0) \/ data.length;\n const startVal = data[0];\n const endVal = data[data.length - 1];\n const change = endVal - startVal;\n const changePct = (change \/ startVal) * 100;\n\n statHighEl.textContent = formatCurrency(high);\n statLowEl.textContent = formatCurrency(low);\n statAvgEl.textContent = formatCurrency(avg);\n\n const sign = change \u003E= 0 ? \u0027+\u0027 : \u0027\u0027;\n statChangeEl.textContent = `${sign}${formatCurrency(change)} (${sign}${changePct.toFixed(2)}%)`;\n statChangeEl.style.color = change \u003E 0 ? \u0027#10b981\u0027 : (change \u003C 0 ? \u0027#ef4444\u0027 : \u0027#64748b\u0027);\n }\n\n \/\/ Timeframe filtering handler\n function setTimeframe(rangeCount) {\n let slicedLabels = rawLabels;\n let slicedData = rawData;\n\n if (rangeCount !== \u0027all\u0027) {\n const count = parseInt(rangeCount, 10);\n slicedLabels = rawLabels.slice(-count);\n slicedData = rawData.slice(-count);\n }\n\n chartInstance.data.labels = slicedLabels;\n chartInstance.data.datasets[0].data = slicedData;\n\n \/\/ Adjust Y axis dynamic scaling\n const minVal = Math.min(...slicedData);\n const maxVal = Math.max(...slicedData);\n const padding = (maxVal - minVal) * 0.1 || 1;\n \n chartInstance.options.scales.y.min = Math.floor((minVal - padding) * 10) \/ 10;\n chartInstance.options.scales.y.max = Math.ceil((maxVal + padding) * 10) \/ 10;\n\n chartInstance.update();\n updateRangeStats(slicedLabels, slicedData);\n }\n\n \/\/ Setup timeframe button listeners\n document.querySelectorAll(\u0027#pkr-chart-embed .tf-btn\u0027).forEach(btn =\u003E {\n btn.addEventListener(\u0027click\u0027, (e) =\u003E {\n document.querySelectorAll(\u0027#pkr-chart-embed .tf-btn\u0027).forEach(b =\u003E b.classList.remove(\u0027active\u0027));\n e.target.classList.add(\u0027active\u0027);\n setTimeframe(e.target.getAttribute(\u0027data-range\u0027));\n });\n });\n\n \/\/ Initial range load\n setTimeframe(\u0027all\u0027);\n })();\n \u003C\/script\u003E\n\u003C\/body\u003E\n\u003C\/html\u003E";
// Capture the specific iframe for this script instance synchronously
var scripts = document.getElementsByTagName('script');
var currentScript = document.currentScript || scripts[scripts.length - 1];
var wrapper = currentScript;
while (wrapper && (!wrapper.classList || !wrapper.classList.contains('raw-html-embed-wrapper'))) {
wrapper = wrapper.parentNode;
}
if (!wrapper) return;
var iframe = wrapper.querySelector('.raw-html-embed');
if (!iframe) return;
function init() {
if (iframe._rawHtmlInjected) return;
iframe._rawHtmlInjected = true;
var doc = iframe.contentDocument || iframe.contentWindow.document;
if (!doc) return;
var trimmed = raw.trim().toLowerCase();
var isFull = trimmed.indexOf('
The Pakistani rupee extended its marginal gains against the US dollar, appreciating 0.01% in the inter-bank market on Friday.
The local unit closed the day at 277.07, a gain of Re0.03 against the greenback.
On Thursday, the Pakistani rupee settled at 277.10 against the dollar.
Internationally, the US dollar headed for its third straight week of gains on Friday, perched at a 17-month high as a bond market rout pushed borrowing costs across the globe to multi-decade peaks in the face of inflationary fears over higher oil prices.
Investors were reeling from a steep global bond sell-off on Thursday that sent yields on benchmark US 10-year Treasuries to 5.344%, their highest since 2002, ahead of a US jobs report that could influence the near-term policy outlook.
The 10-year yield was last at 5.249% in early trading on Friday while the rest of the bond market also steadied.
The euro was at $1.1237, hugging its lowest level since May 2025, dragged by worries around France’s fiscal health. The yen was steady at 158 per US dollar after data showed annual core inflation in Tokyo accelerated in September at the fastest pace in 10 months.
The dollar index, which measures the US currency against six rivals, was at 102.08, set for a 1% gain this week, its third consecutive weekly gain, a run it last had in May 2025.
Data on Wednesday showed US consumer prices rose less than expected in August, along with downward revisions to July’s figure, leading traders to rein in wagers of a rate hike from the Federal Reserve later this month.
Two of the Fed’s top policymakers this week staked out an unusually clear case for taking in more data before deciding about another hike.
That has sharpened the focus on the US payroll report due later in the day, with data likely to show that job growth slowed in September and the unemployment rate is forecast to have been 4.1% for a third straight month.
Oil prices, a key indicator of currency parity, fell more than $3 and European gasoil futures dropped over 4% on Friday after reports of talks in Europe on additional diesel and crude stock releases, easing concerns over tight global energy supplies.
Brent was down $3.06, or 3%, at $99.25 a barrel at 1409 GMT. West Texas Intermediate dropped $3.95, or 4.25%, to $88.92 a barrel.
Inter-bank market rates for dollar on Friday
BID Rs 277.07
OFFER Rs 277.27
Open-market movement
In the open market, the PKR gained 10 paise for buying and 8 paise for selling against USD, closing at 277.87 and 279.01, respectively.
Against Euro, the PKR gained 1.46 rupee for buying and 1.57 rupee for selling, closing at 312.27 and 315.58, respectively.
Against UAE Dirham, the PKR gained 16 paise for buying and 1 paisa for selling, closing at 75.51 and 76.26, respectively.
Against Saudi Riyal, the PKR gained 2 paise for both buying and selling, closing at 73.96 and 74.47, respectively.
Open-market rates for dollar on Friday
BID Rs 277.87
OFFER Rs 279.01
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Rupee records gain against US dollar | 0 | 31.45 | 12-10-2026 |
| 2 | Rupee records gain against US dollar | 0 | 31.45 | 05-10-2026 |
| 3 | Rupee records gain against US dollar | 0 | 31.45 | 15-10-2026 |
| 4 | Rupee gains against US dollar | 0 | 31.64 | 06-10-2026 |
| 5 | Rupee registers gain against US dollar | 0 | 31.45 | 20-10-2026 |
| 6 | Rupee registers gain against US dollar | 0 | 31.45 | 13-10-2026 |
| 7 | Rupee registers gain against US dollar | 0 | 31.45 | 09-10-2026 |
| 8 | Rupee registers gain against US dollar | 0 | 31.45 | 07-10-2026 |
| 9 | Pakistan rupee records gain against US dollar | 0 | 30.48 | 22-10-2026 |