{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "0f45fc79",
   "metadata": {
    "id": "0f45fc79"
   },
   "source": "# ⚛️ Kuantum Ekosistemi — Kurumsal Pipeline Designer\n\nBu defter, `abc.html` arayüzünün Google Colab uyumlu versiyonudur.\n\n**Nasıl kullanılır?**\n1. Aşağıdaki kurulum hücresini çalıştırın.\n2. **Pipeline Designer** hücresini çalıştırın → interaktif paneller açılır.\n3. Problem → Donanım → Algoritma seçin (geçerli üçlüler otomatik filtrelenir).\n4. Veri kaynağı, KVKK, sentetik veri, kayıt seçeneklerini ayarlayın.\n5. Üretilen uçtan uca Python kodunu kopyalayıp bir sonraki hücrede çalıştırın.\n\n---"
  },
  {
   "cell_type": "markdown",
   "id": "a633b2d8",
   "metadata": {
    "id": "a633b2d8"
   },
   "source": "## 1. Kurulum"
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "1f18b1c0",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "1f18b1c0",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787231650263,
     "user_tz": -180,
     "elapsed": 15793,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "7591072e-0f36-40c4-ef2b-6eefaa48d6b8"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m9.8/9.8 MB\u001b[0m \u001b[31m34.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.4/12.4 MB\u001b[0m \u001b[31m40.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.4/2.4 MB\u001b[0m \u001b[31m33.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54.5/54.5 kB\u001b[0m \u001b[31m2.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25h✔ Ortam hazır. Şimdi 'Pipeline Designer' hücresini çalıştırın.\n"
     ]
    }
   ],
   "source": "# Colab'da ipywidgets genellikle yüklüdür; yoksa kurar\ntry:\n    import ipywidgets\nexcept ImportError:\n    !pip install -q ipywidgets\n\n!pip install -q qiskit qiskit-aer pandas numpy requests\n\nfrom IPython.display import display, clear_output, Markdown, HTML\nimport ipywidgets as widgets\nimport numpy as np\nimport pandas as pd\n\nprint(\"✔ Ortam hazır. Şimdi 'Pipeline Designer' hücresini çalıştırın.\")"
  },
  {
   "cell_type": "markdown",
   "id": "36d8b5bc",
   "metadata": {
    "id": "36d8b5bc"
   },
   "source": "## 2. Pipeline Designer (İnteraktif Seçim + Kod Üretimi)\n\nAşağıdaki hücreyi **bir kez** çalıştırın. Açılan panellerden seçimlerinizi yapın; kod otomatik üretilecektir."
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ce97ec33",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000,
     "referenced_widgets": [
      "ab1f5a3e6e9d465b8d0c5c03a697968e",
      "2892670036cc43a98c463aa6ab8a4e2b",
      "48e10277dce84deab3be2c2eb54bc93c",
      "302543b6aa7945619a38f9ffd2644d36",
      "093a0cae31894cbabeced838ea457559",
      "d25ebde1a1de49d3af1ff08d5f1bb581",
      "8f3ce4ca1ba34b4188ab7ce8407c20fd",
      "3b49ab8af41349b98f2a5b5a74a2b17e",
      "62fcffed0a584fc8a7c38baec0bc72f2",
      "55411f1b4e92424296ad9f9bd93e29c7",
      "25e3eeca725a45038e7029b1283b94f3",
      "ae6fd2246ccc49508109905d17466691",
      "eeb2eb26b20e4c8eb48f9c7cc5282a3b",
      "3f6d851daa354da2a207fb7641ec7982",
      "7b88ae19debb44c9b0d1166cb9c40cae",
      "ac978a127a224f70a997009a7a82f36f",
      "6adc678704cb48f8bd38e0054c2955cb",
      "1a361f9a0329443e8a117696e8241408",
      "258cd85f0cdd4600aad75254725c6d42",
      "6c641d5dd50a4fcb8300769b2a196b3b",
      "0305d8feae674539b35428c85c25ff2d",
      "40221cebbccd46689aff2e55c8579903",
      "630943c81dae475ebe5fc49b56d0c031",
      "4996712b780b44ada40b40163f11993d",
      "a093aaaa64db4d48a74a37d11e527e40",
      "0f9433a8d3fa42c2a01ef3da5a01be56",
      "c3e45a134ffd42e5abd8fc36bed389e3",
      "93666a885ad24184af895788c99b1d92",
      "92692ad2e7a842e084c8de44344141e9",
      "d8f1b5b8ffaf4f83b813e981a6c5f886",
      "5ac3058e780b4d4ebb76e14c6863bf01",
      "dc3b1bee22814432b84818edb0a91af7",
      "77c7ff9a3ed64e68915b449fcb92270c",
      "4ed8ffb0573d4d599ae1a2c61cbf776f",
      "e9c6be72f381469f92c30fc9c577920c",
      "51b50913c8dd48d9af866e2c29789945",
      "8e6af32e4d9840ca86656c819807a430",
      "b84bef514b5d41aba4c5e64722166157",
      "69d82ebed89a4e6d94febfe15bca1bf3",
      "19f1afb665204f5d8bc04fad5a680c18",
      "8f3463a9ed7e4b14b5832f9414e5cc02",
      "fb82734f3c46435c8d92962fbfd86438",
      "04cf4b49382c4c62b91f09840dc4fdd0",
      "2a5b7ec226a34731b63427f54b602875",
      "c0c589dfbb1f470dbcf483177f149fda",
      "c337976502c149a9802eb5f1ac12e6d0",
      "6fc4b4dffe7b430889c3d4a48dac2ac4",
      "002176a272ce4bc485e8b692947c0ca5",
      "9868037e6f614eb386980ebd095d7c9b",
      "89b1b986f48647c38a09e1924d4d84ce",
      "bc11ce69ef60461eacf55c646f246e13",
      "77c5af20c11c4336adbc4cee7b245a21",
      "5987cee549be4e03aa20c330c8aae86a",
      "a90c5affeed34c72a03301a0ddfc13e0",
      "3e60b800b1814c6eaa81379b1c3d0894",
      "dabc5fd1946e4d40a7083113445743dc",
      "2f527b3152cd4742b89eeb7119276d2e",
      "160a81f60bcb4e779ab891424a250616",
      "f65bc56c1de64aab92261c10fec9b342",
      "1914bf2c610f40a8b33a2049ee45733e",
      "3673f52731d24a3584a37433f8d09b01"
     ]
    },
    "id": "ce97ec33",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1787231658074,
     "user_tz": -180,
     "elapsed": 124,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "0c83c59d-7860-4bbf-adef-a845e23fd9fe"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "VBox(children=(HTML(value='<h2 style=\"margin:0 0 4px 0;color:#0f172a;\">Kuantum Ekosistemi Kurumsal Pipeline Yö…"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "ab1f5a3e6e9d465b8d0c5c03a697968e"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "\n",
      "💡 İpucu: Seçimleri yaptıktan sonra oluşan kodu kopyalayıp yeni bir hücreye yapıştırarak çalıştırabilirsiniz.\n",
      "   Veya aşağıdaki 'Kodu Çalıştır' hücresini kullanın (önce pipeline üretmiş olmalısınız).\n"
     ]
    }
   ],
   "source": "# ============================================================\n# KUANTUM KURUMSAL PIPELINE DESIGNER\n# abc.html mantığının Colab / Jupyter uyarlaması\n# ============================================================\n\n# --- Geçerli üçlüler (Problem × Hardware × Algorithm) ---\nVALID_TRIPLETS = [\n    # Optimization\n    ('Optimization & Logistics', 'Superconducting Qubits', 'QAOA'),\n    ('Optimization & Logistics', 'Superconducting Qubits', \"Grover's Algorithm\"),\n    ('Optimization & Logistics', 'Trapped Ions', 'QAOA'),\n    ('Optimization & Logistics', 'Trapped Ions', \"Grover's Algorithm\"),\n    ('Optimization & Logistics', 'Neutral Atoms', 'QAOA'),\n    ('Optimization & Logistics', 'Neutral Atoms', \"Grover's Algorithm\"),\n    # Chemistry\n    ('Quantum Chemistry', 'Superconducting Qubits', 'VQE'),\n    ('Quantum Chemistry', 'Trapped Ions', 'VQE'),\n    # Cryptography\n    ('Cryptography', 'Superconducting Qubits', \"Shor's Algorithm\"),\n    ('Cryptography', 'Trapped Ions', \"Shor's Algorithm\"),\n    ('Cryptography', 'Photonic Qubits', \"Shor's Algorithm\"),\n    # Machine Learning\n    ('Machine Learning', 'Superconducting Qubits', 'QAOA'),\n    ('Machine Learning', 'Superconducting Qubits', \"Grover's Algorithm\"),\n    ('Machine Learning', 'Trapped Ions', 'QAOA'),\n    ('Machine Learning', 'Trapped Ions', \"Grover's Algorithm\"),\n    ('Machine Learning', 'Photonic Qubits', 'QAOA'),\n    ('Machine Learning', 'Photonic Qubits', \"Grover's Algorithm\"),\n    ('Machine Learning', 'Neutral Atoms', 'QAOA'),\n    ('Machine Learning', 'Neutral Atoms', \"Grover's Algorithm\"),\n]\n\nALGO_MATH = {\n    'VQE': r'$E_0 \\leq \\langle H \\rangle_{\\theta} = \\dfrac{\\langle \\psi(\\theta)|H|\\psi(\\theta)\\rangle}{\\langle \\psi(\\theta)|\\psi(\\theta)\\rangle}$',\n    'QAOA': r'$|\\gamma,\\beta\\rangle = e^{-i\\beta_p H_M}e^{-i\\gamma_p H_C}\\cdots e^{-i\\beta_1 H_M}e^{-i\\gamma_1 H_C}|+\\rangle^{\\otimes n}$',\n    \"Grover's Algorithm\": r'$U_s = 2|s\\rangle\\langle s| - I \\quad \\rightarrow \\quad \\mathcal{O}(\\sqrt{N})$',\n    \"Shor's Algorithm\": r'$\\mathrm{QFT}|x\\rangle = \\dfrac{1}{\\sqrt{2^n}}\\sum_{y=0}^{2^n-1}e^{2\\pi i xy/2^n}|y\\rangle$',\n}\n\nPROBLEMS = ['Optimization & Logistics', 'Quantum Chemistry', 'Cryptography', 'Machine Learning']\nHARDWARES = ['Superconducting Qubits', 'Trapped Ions', 'Photonic Qubits', 'Neutral Atoms']\nALGORITHMS = ['QAOA', 'VQE', \"Shor's Algorithm\", \"Grover's Algorithm\"]\n\n# --- Widget'lar ---\nstyle = {'description_width': '180px'}\nlayout_wide = widgets.Layout(width='95%', margin='4px 0')\n\ndd_prob = widgets.Dropdown(options=['— Problem seçin —'] + PROBLEMS, description='Problem:', style=style, layout=layout_wide)\ndd_hw   = widgets.Dropdown(options=['— Önce problem seçin —'], description='Donanım:', style=style, layout=layout_wide, disabled=True)\ndd_alg  = widgets.Dropdown(options=['— Önce donanım seçin —'], description='Algoritma:', style=style, layout=layout_wide, disabled=True)\n\nchk_synthetic = widgets.Checkbox(value=False, description='Sentetik Veri Üretilsin mi?', indent=False)\nchk_upload    = widgets.Checkbox(value=False, description='Harici Veri/CSV Yüklensin mi?', indent=False)\nchk_save      = widgets.Checkbox(value=False, description='Sonuçlar Kaydedilsin mi?', indent=False)\nchk_kvkk      = widgets.Checkbox(value=False, description='KVKK / GDPR Verisi Var mı?', indent=False)\n\ntxt_data_src = widgets.Text(value='girdi_verisi.csv', description='Veri Kaynağı:',\n                            placeholder='https://api.firma.com/v1/data veya data.csv',\n                            style=style, layout=layout_wide)\ntxt_qpu      = widgets.Text(value='MY_QUANTUM_CLOUD_TOKEN_1974', description='QPU Token/Endpoint:',\n                            placeholder='IBM_SECRET_TOKEN veya https://qpu.cloud',\n                            style=style, layout=layout_wide)\ntxt_output   = widgets.Text(value='kuantum_pipeline_sonuclari.csv', description='Sonuç Yolu/API:',\n                            placeholder='https://api.firma.com/v1/results veya output.csv',\n                            style=style, layout=layout_wide)\n\nbtn_reset = widgets.Button(description='Tüm Seçimleri Sıfırla', button_style='danger',\n                           layout=widgets.Layout(width='220px', margin='10px 0'))\nbtn_gen   = widgets.Button(description='Pipeline Kodunu Üret / Güncelle', button_style='primary',\n                           layout=widgets.Layout(width='280px', margin='10px 0'))\n\nout_status = widgets.Output()\nout_math   = widgets.Output()\nout_code   = widgets.Output()\nout_integ  = widgets.Output()\n\n# --- Yardımcı fonksiyonlar ---\ndef allowed_hardwares(prob):\n    return sorted({t[1] for t in VALID_TRIPLETS if t[0] == prob})\n\ndef allowed_algorithms(prob, hw=None):\n    if hw:\n        return sorted({t[2] for t in VALID_TRIPLETS if t[0] == prob and t[1] == hw})\n    return sorted({t[2] for t in VALID_TRIPLETS if t[0] == prob})\n\ndef on_prob_change(change):\n    prob = change['new']\n    if prob.startswith('—'):\n        dd_hw.options = ['— Önce problem seçin —']\n        dd_hw.value = dd_hw.options[0]\n        dd_hw.disabled = True\n        dd_alg.options = ['— Önce donanım seçin —']\n        dd_alg.value = dd_alg.options[0]\n        dd_alg.disabled = True\n    else:\n        hws = allowed_hardwares(prob)\n        dd_hw.options = ['— Donanım seçin —'] + hws\n        dd_hw.value = dd_hw.options[0]\n        dd_hw.disabled = False\n        dd_alg.options = ['— Önce donanım seçin —']\n        dd_alg.value = dd_alg.options[0]\n        dd_alg.disabled = True\n\ndef on_hw_change(change):\n    hw = change['new']\n    prob = dd_prob.value\n    if hw.startswith('—') or prob.startswith('—'):\n        dd_alg.options = ['— Önce donanım seçin —']\n        dd_alg.value = dd_alg.options[0]\n        dd_alg.disabled = True\n    else:\n        algs = allowed_algorithms(prob, hw)\n        dd_alg.options = ['— Algoritma seçin —'] + algs\n        dd_alg.value = dd_alg.options[0]\n        dd_alg.disabled = False\n        # Tek algoritma kaldıysa otomatik seç\n        if len(algs) == 1:\n            dd_alg.value = algs[0]\n\ndd_prob.observe(on_prob_change, names='value')\ndd_hw.observe(on_hw_change, names='value')\n\ndef get_quantum_core_snippet(alg, hw, token):\n    base = f\"    # Donanım API Token/Endpoint: {token}\\n\"\n    if alg == 'VQE':\n        if hw == 'Superconducting Qubits':\n            return base + (\n                \"    # IBM Quantum Cloud Service Mimarisi\\n\"\n                \"    ansatz = TwoLocal(num_qubits=2, rotation_blocks='ry', entanglement_blocks='cx', entanglement='linear')\\n\"\n                \"    estimator = Estimator()\\n\"\n                \"    job = estimator.run(ansatz, hamiltonian, parameter_values=[0.1]*8)\\n\"\n                \"    quantum_result = job.result().values[0]\"\n            )\n        return base + (\n            \"    # IonQ / Quantinuum All-to-All RXX Mimarisi\\n\"\n            \"    ansatz = TwoLocal(num_qubits=2, rotation_blocks='ry', entanglement_blocks='rxx', entanglement='full')\\n\"\n            \"    estimator = Estimator()\\n\"\n            \"    job = estimator.run(ansatz, hamiltonian, parameter_values=[0.1]*8)\\n\"\n            \"    quantum_result = job.result().values[0]\"\n        )\n    if alg == 'QAOA':\n        if hw == 'Neutral Atoms':\n            return base + (\n                \"    # Pasqal Analog Rydberg Pulse QAOA Modeli\\n\"\n                \"    ansatz = QAOAAnsatz(cost_operator=hamiltonian, reps=2)\\n\"\n                \"    quantum_result = [1.2, -0.4]\"\n            )\n        if hw == 'Photonic Qubits':\n            return base + (\n                \"    # Xanadu Sürekli Değişken Fotonik Girişim Ağ Kontrolü\\n\"\n                \"    quantum_result = [0.85, 0.12]\"\n            )\n        return base + (\n            \"    # Standart Ayrık Kapı QAOA\\n\"\n            \"    ansatz = QAOAAnsatz(cost_operator=hamiltonian, reps=1)\\n\"\n            \"    quantum_result = [0.5, 0.5]\"\n        )\n    if alg == \"Grover's Algorithm\":\n        if hw == 'Trapped Ions':\n            return base + (\n                \"    # Esnek İyon Toffoli Kapısı Tasarımı\\n\"\n                \"    oracle = QuantumCircuit(3)\\n\"\n                \"    oracle.ccx(0, 1, 2)\\n\"\n                \"    grover_op = GroverOperator(oracle)\"\n            )\n        return base + (\n            \"    # Standart Ayrık Kapı Grover Arama Katmanı\\n\"\n            \"    oracle = QuantumCircuit(2)\\n\"\n            \"    oracle.cz(0, 1)\\n\"\n            \"    grover_op = GroverOperator(oracle)\"\n        )\n    if alg == \"Shor's Algorithm\":\n        return base + (\n            \"    # Shor Periyot Bulma (Kuantum Fourier Dönüşümü - QFT)\\n\"\n            \"    qc = QuantumCircuit(3)\\n\"\n            \"    for j in range(3):\\n\"\n            \"        qc.h(j)\\n\"\n            \"        for k in range(j+1, 3):\\n\"\n            \"            qc.cp(np.pi / (2 ** (k - j)), k, j)\"\n        )\n    return base\n\ndef build_pipeline_code():\n    prob = dd_prob.value\n    hw   = dd_hw.value\n    alg  = dd_alg.value\n\n    if any(x.startswith('—') for x in (prob, hw, alg)):\n        return None, \"Lütfen geçerli bir Problem + Donanım + Algoritma üçlüsü seçin.\"\n\n    is_synthetic = chk_synthetic.value\n    is_upload    = chk_upload.value\n    is_save      = chk_save.value\n    is_kvkk      = chk_kvkk.value\n\n    data_src = txt_data_src.value.strip() or 'girdi_verisi.csv'\n    qpu_tok  = txt_qpu.value.strip() or 'TOKEN_NOT_DEFINED'\n    out_dest = txt_output.value.strip() or 'sonuclar.csv'\n\n    is_input_url  = data_src.startswith(('http://', 'https://'))\n    is_output_url = out_dest.startswith(('http://', 'https://'))\n\n    lines = []\n    lines.append('# -*- coding: utf-8 -*-')\n    lines.append('\"\"\"')\n    lines.append('KURUMSAL PIPELINE GENERATOR')\n    lines.append(f'Problem: {prob} | Mimarisi: {hw} | Algoritma: {alg}')\n    lines.append('\"\"\"')\n    lines.append('import pandas as pd')\n    lines.append('import numpy as np')\n    if is_input_url or is_output_url:\n        lines.append('import requests  # Canlı API hatları için')\n    lines.append('from qiskit import QuantumCircuit')\n    lines.append('from qiskit.quantum_info import SparsePauliOp')\n    lines.append('from qiskit.circuit.library import TwoLocal, QAOAAnsatz, GroverOperator')\n    lines.append('from qiskit.primitives import Estimator, Sampler')\n    lines.append('')\n\n    # 1. VERİ GİRİŞİ\n    lines.append('# --- 1. ADIM: VERİ GİRİŞ KATMANI (DATA INGESTION) ---')\n    if is_synthetic:\n        lines.append('print(\"-> Sentetik veri generatörü devrede.\")')\n        lines.append('np.random.seed(1010)')\n        lines.append('df_main = pd.DataFrame({')\n        lines.append(\"    'veri_indeks_id': [f\\\"ID_{i}\\\" for i in range(5)],\")\n        lines.append(\"    'metrik_deger': np.random.rand(5)\")\n        lines.append('})')\n        lines.append('print(\"✔ Sentetik mock matrisi belleğe alındı.\")')\n    if is_upload:\n        if is_input_url:\n            lines.append(f'print(\"-> {data_src} adresinden veri çekiliyor...\")')\n            lines.append(f'response = requests.get(\"{data_src}\", headers={{\"Authorization\": \"Bearer {qpu_tok}\"}})')\n            lines.append('df_incoming = pd.DataFrame(response.json())')\n            lines.append(\"df_main = pd.concat([df_main, df_incoming], ignore_index=True) if 'df_main' in locals() else df_incoming\")\n        else:\n            lines.append(f'print(\"-> Dosya yükleniyor: {data_src}\")')\n            lines.append('try:')\n            lines.append(f'    df_csv = pd.read_csv(\"{data_src}\")')\n            lines.append(\"    df_main = pd.concat([df_main, df_csv], ignore_index=True) if 'df_main' in locals() else df_csv\")\n            lines.append('except Exception as e:')\n            lines.append('    print(f\"Hata, dummy dataframe atanıyor: {e}\")')\n            lines.append(\"    df_main = pd.DataFrame({'veri_indeks_id': ['MOCK_01'], 'metrik_deger': [0.5]})\")\n    if not is_synthetic and not is_upload:\n        lines.append(\"df_main = pd.DataFrame({'veri_indeks_id': ['STANDART_01'], 'metrik_deger': [0.99]})\")\n        lines.append('print(\"✔ Varsayılan bellek içi iskelet yüklendi.\")')\n    lines.append('')\n\n    # 2. ANONİMLEŞTİRME\n    lines.append('# --- 2. ADIM: VERİ GİZLİLİĞİ VE ANONİMLEŞTİRME (ANONYMIZATION) ---')\n    if is_kvkk:\n        lines.append('import hashlib')\n        lines.append('print(\"🔒 KVKK/GDPR Filtresi Aktif. Maskeleme süreci başlatılıyor...\")')\n        lines.append('')\n        lines.append('CRYPTO_SALT = \"SECURITY_HASH_SALT_VAL\"')\n        lines.append('local_vault = {}  # Güvenli Eşleştirme Kasası')\n        lines.append('')\n        lines.append('def encrypt_identity(raw_id):')\n        lines.append('    hashed = hashlib.sha256((str(raw_id) + CRYPTO_SALT).encode()).hexdigest()[:12]')\n        lines.append('    local_vault[hashed] = raw_id')\n        lines.append('    return hashed')\n        lines.append('')\n        lines.append(\"if 'veri_indeks_id' in df_main.columns:\")\n        lines.append(\"    df_main['anonim_indeks_id'] = df_main['veri_indeks_id'].apply(encrypt_identity)\")\n        lines.append(\"    df_main.drop(columns=['veri_indeks_id'], inplace=True)\")\n        lines.append('print(\"✔ Kimlik verileri QPU bulutuna çıkmadan önce tamamen maskelendi.\\n\")')\n    else:\n        lines.append('print(\"Veri koruma kriteri pasif: KVKK veri maskeleme adımı atlandı.\\n\")')\n    lines.append('')\n\n    # 3. KUANTUM ÇEKİRDEK\n    lines.append('# --- 3. ADIM: DONANIMA DUYARLI KUANTUM HESAPLAMA (QUANTUM CORE PROCESS) ---')\n    lines.append('def run_quantum_computation(data_pipeline):')\n    lines.append('    print(\"-> Kuantum İşlemci tüneli senkronize ediliyor...\")')\n    lines.append('    hamiltonian = SparsePauliOp.from_list([(\"ZZ\", 1.0)])')\n    lines.append('')\n    core = get_quantum_core_snippet(alg, hw, qpu_tok)\n    for ln in core.split('\\n'):\n        lines.append(ln)\n    lines.append('    return [0.0001974] * len(data_pipeline)')\n    lines.append('')\n    lines.append('# Hesaplamayı Başlat')\n    lines.append('results_vector = run_quantum_computation(df_main)')\n    lines.append('')\n    lines.append('# Sonuç Veri Çerçevesinin Derlenmesi')\n    lines.append(f\"key_column = 'anonim_indeks_id' if {is_kvkk} else 'veri_indeks_id'\")\n    lines.append('df_output_results = pd.DataFrame({')\n    lines.append('    key_column: df_main[key_column],')\n    lines.append(\"    'kuantum_olasilik_ciktisi': results_vector\")\n    lines.append('})')\n    lines.append('')\n\n    # 4. DE-ANONİMLEŞTİRME\n    lines.append('# --- 4. ADIM: GERİ-ANONİMLEŞTİRME KATMANI (DE-ANONYMIZATION) ---')\n    if is_kvkk:\n        lines.append('print(\"🔓 Güvenli Çözümleme Hattı (De-Anonymization) tetiklendi...\")')\n        lines.append(\"if 'anonim_indeks_id' in df_output_results.columns:\")\n        lines.append(\"    df_output_results['veri_indeks_id'] = df_output_results['anonim_indeks_id'].map(local_vault)\")\n        lines.append(\"    df_output_results.drop(columns=['anonim_indeks_id'], inplace=True)\")\n        lines.append('print(\"✔ Maskelenmiş veriler şirket içi secure vault ile gerçek kimliklerine kavuşturuldu.\\n\")')\n    else:\n        lines.append('print(\"Geri-anonimleştirme katmanı pasif.\\n\")')\n    lines.append('')\n\n    # 5. EXPORT\n    lines.append('# --- 5. ADIM: DATA OUT / SONUÇLARIN YAZILMASI (EXPORT PIPELINE) ---')\n    if is_save:\n        if is_output_url:\n            lines.append(f'print(\"-> Çıktılar API\\'ye aktarılıyor: {out_dest}\")')\n            lines.append(\"payload = df_output_results.to_dict(orient='records')\")\n            lines.append(f'response = requests.post(\"{out_dest}\", json={{\"data\": payload}})')\n            lines.append('print(f\"✔ API Cevap Kodu: {response.status_code}\")')\n        else:\n            lines.append(f'df_output_results.to_csv(\"{out_dest}\", index=False)')\n            lines.append(f'print(\"✔ Çıktılar başarıyla diske yazıldı: {out_dest}\")')\n    else:\n        lines.append('print(\"Konsol Çıktı Matrisi:\")')\n        lines.append('print(df_output_results.to_string())')\n\n    code = '\\n'.join(lines)\n\n    # Entegrasyon metinleri\n    src_txt = (f'Kurumsal REST API Gateway üzerinden <code>{data_src}</code> bağlantısı canlı dinlenerek veri hattına alınır.'\n               if is_input_url else\n               f'Lokal veya bulut dosya sistemindeki <code>{data_src}</code> belgesi pipeline girdisi olarak haritalanır.')\n    hw_txt = f'Kimlik doğrulaması <code>{qpu_tok}</code> anahtarı ile korunan, buluttaki gerçek <strong>{hw}</strong> API altyapısına güvenli istek gönderilir.'\n    ep_txt = (f'Hesaplama bittiğinde sonuç matrisleri HTTP POST protokolü ile <code>{out_dest}</code> API ucuna basılır.'\n              if is_output_url else\n              f'Analiz çıktıları lokal disk üzerindeki <code>{out_dest}</code> adresine kalıcı veri seti olarak işlenir.')\n    kvkk_txt = ('Hassas veriler Salted SHA-256 ile maskelenir. QPU hesaplaması bittikten sonra şifreli lokal vault\\'tan de-anonymize edilir.'\n                if is_kvkk else None)\n\n    return {\n        'code': code,\n        'math': ALGO_MATH.get(alg, ''),\n        'title': f'{alg} — Entegrasyon Pipeline Modeli',\n        'src': src_txt,\n        'hw': hw_txt,\n        'ep': ep_txt,\n        'kvkk': kvkk_txt,\n        'prob': prob, 'hw_name': hw, 'alg': alg\n    }, None\n\ndef on_generate(_=None):\n    with out_status:\n        clear_output()\n    with out_math:\n        clear_output()\n    with out_code:\n        clear_output()\n    with out_integ:\n        clear_output()\n\n    result, err = build_pipeline_code()\n    if err:\n        with out_status:\n            display(HTML(f'<div style=\"padding:12px;background:#fef2f2;border-left:4px solid #ef4444;color:#991b1b;\">{err}</div>'))\n        return\n\n    with out_status:\n        display(HTML(\n            f'<div style=\"padding:12px;background:#f0fdf4;border-left:4px solid #22c55e;color:#166534;\">'\n            f'✔ Pipeline üretildi → <b>{result[\"prob\"]}</b> · <b>{result[\"hw_name\"]}</b> · <b>{result[\"alg\"]}</b></div>'\n        ))\n\n    with out_math:\n        display(Markdown(f\"### {result['title']}\\n\\n**Matematiksel Model:**\\n\\n{result['math']}\"))\n\n    with out_code:\n        display(Markdown('### Uçtan Uca Derlenmiş Canlı Python Kodu'))\n        display(HTML(\n            '<pre style=\"background:#1e293b;color:#f8fafc;padding:18px;border-radius:8px;'\n            'overflow-x:auto;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.45;\">'\n            + result['code'].replace('<', '&lt;').replace('>', '&gt;') +\n            '</pre>'\n        ))\n        # Kopyalanabilir ham kod da saklansın\n        global LAST_GENERATED_CODE\n        LAST_GENERATED_CODE = result['code']\n\n    with out_integ:\n        display(Markdown('### Proje Çevrimiçi Entegrasyon Haritası'))\n        boxes = [\n            ('1. Veri Kaynağı Entegrasyonu', result['src'], '#f0fdf4', '#166534'),\n            ('2. Kuantum Donanım API Erişimi', result['hw'], '#eff6ff', '#1e40af'),\n            ('3. Sonuç Yansıtma / End-Point API', result['ep'], '#fff7ed', '#9a3412'),\n        ]\n        if result['kvkk']:\n            boxes.append(('4. Veri Gizliliği Güvenlik Katmanı', result['kvkk'], '#fef2f2', '#991b1b'))\n\n        html_boxes = ''\n        for title, body, bg, color in boxes:\n            html_boxes += (\n                f'<div style=\"padding:14px;border-radius:8px;background:{bg};'\n                f'border-left:4px solid {color};margin-bottom:10px;font-size:13.5px;\">'\n                f'<strong style=\"color:{color};text-transform:uppercase;font-size:11px;\">{title}</strong><br>{body}</div>'\n            )\n        display(HTML(html_boxes))\n\ndef on_reset(_):\n    dd_prob.value = dd_prob.options[0]\n    chk_synthetic.value = False\n    chk_upload.value = False\n    chk_save.value = False\n    chk_kvkk.value = False\n    txt_data_src.value = 'girdi_verisi.csv'\n    txt_qpu.value = 'MY_QUANTUM_CLOUD_TOKEN_1974'\n    txt_output.value = 'kuantum_pipeline_sonuclari.csv'\n    with out_status:\n        clear_output()\n    with out_math:\n        clear_output()\n    with out_code:\n        clear_output()\n    with out_integ:\n        clear_output()\n    display(HTML('<div style=\"padding:8px;color:#64748b;\">Seçimler sıfırlandı.</div>'), display_id=False)\n\nbtn_gen.on_click(on_generate)\nbtn_reset.on_click(on_reset)\n\n# Değişikliklerde otomatik güncelle (opsiyonel — buton da var)\nfor w in (dd_prob, dd_hw, dd_alg, chk_synthetic, chk_upload, chk_save, chk_kvkk,\n          txt_data_src, txt_qpu, txt_output):\n    w.observe(lambda change: on_generate() if not str(dd_alg.value).startswith('—') else None, names='value')\n\n# --- UI Yerleşimi ---\nheader = widgets.HTML(\n    '<h2 style=\"margin:0 0 4px 0;color:#0f172a;\">Kuantum Ekosistemi Kurumsal Pipeline Yönetimi</h2>'\n    '<p style=\"color:#64748b;margin:0 0 16px 0;font-size:14px;\">'\n    'Problem → Donanım → Algoritma seçin. Veri / KVKK / API ayarlarını yapın. Kod otomatik üretilir.</p>'\n)\n\nconfig_box = widgets.VBox([\n    widgets.HTML('<b style=\"color:#334155;\">Başlangıç Ayarları</b>'),\n    widgets.HBox([chk_synthetic, chk_upload, chk_save, chk_kvkk],\n                 layout=widgets.Layout(flex_flow='row wrap', gap='12px')),\n    widgets.HTML('<hr style=\"border:none;border-top:1px dashed #e2e8f0;margin:12px 0;\">'),\n    txt_data_src, txt_qpu, txt_output\n], layout=widgets.Layout(\n    border='1px solid #e2e8f0', border_radius='12px', padding='16px',\n    margin='0 0 16px 0', background_color='white'\n))\n\nselect_box = widgets.VBox([\n    widgets.HTML('<b style=\"color:#334155;\">Seçim Paneli (Hiyerarşik Filtre)</b>'),\n    dd_prob, dd_hw, dd_alg,\n    widgets.HBox([btn_gen, btn_reset])\n], layout=widgets.Layout(\n    border='1px solid #e2e8f0', border_radius='12px', padding='16px',\n    margin='0 0 16px 0'\n))\n\nui = widgets.VBox([\n    header,\n    config_box,\n    select_box,\n    out_status,\n    out_math,\n    out_code,\n    out_integ\n])\n\nLAST_GENERATED_CODE = None\ndisplay(ui)\nprint(\"\\n💡 İpucu: Seçimleri yaptıktan sonra oluşan kodu kopyalayıp yeni bir hücreye yapıştırarak çalıştırabilirsiniz.\")\nprint(\"   Veya aşağıdaki 'Kodu Çalıştır' hücresini kullanın (önce pipeline üretmiş olmalısınız).\")"
  },
  {
   "cell_type": "markdown",
   "id": "3b60f644",
   "metadata": {
    "id": "3b60f644"
   },
   "source": "## 3. Üretilen Kodu Doğrudan Çalıştır\n\nYukarıda bir pipeline ürettikten sonra bu hücreyi çalıştırarak kodu hemen yürütebilirsiniz.\n\n> **Not:** Gerçek QPU bağlantısı ve harici API çağrıları için geçerli token / URL gerekir. Simülasyon tarafı Qiskit Aer ile çalışır."
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "d34cbb78",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 173
    },
    "id": "d34cbb78",
    "executionInfo": {
     "status": "error",
     "timestamp": 1787231803297,
     "user_tz": -180,
     "elapsed": 54,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "188d0262-89d6-45ed-d7ca-32714bc55ded"
   },
   "outputs": [
    {
     "output_type": "error",
     "ename": "NameError",
     "evalue": "name 'lines' is not defined",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_596/4145687770.py\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'print(\"✔ Kimlik verileri QPU bulutuna çıkmadan önce tamamen maskelendi.\")'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0;31m# ve\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mlines\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'print(\"Veri koruma kriteri pasif: KVKK veri maskeleme adımı atlandı.\")'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'lines' is not defined"
     ]
    }
   ],
   "source": "lines.append('print(\"✔ Kimlik verileri QPU bulutuna çıkmadan önce tamamen maskelendi.\")')\n# ve\nlines.append('print(\"Veri koruma kriteri pasif: KVKK veri maskeleme adımı atlandı.\")')"
  },
  {
   "cell_type": "markdown",
   "id": "8f378441",
   "metadata": {
    "id": "8f378441"
   },
   "source": "## 4. Kullanım Notları ve Genişletme\n\n### Seçim Mantığı\n- **Problem** seçildiğinde sadece o probleme uygun **Donanım** seçenekleri açılır.\n- **Donanım** seçildiğinde sadece o ikiliye uygun **Algoritma** seçenekleri açılır.\n- Tek algoritma kaldığında otomatik seçilir (orijinal HTML davranışı).\n\n### Desteklenen Geçerli Üçlüler\n| Problem | Donanım | Algoritma |\n|---------|---------|-----------|\n| Optimization & Logistics | Superconducting, Trapped Ions, Neutral Atoms | QAOA, Grover |\n| Quantum Chemistry | Superconducting, Trapped Ions | VQE |\n| Cryptography | Superconducting, Trapped Ions, Photonic | Shor |\n| Machine Learning | Superconducting, Trapped Ions, Photonic, Neutral Atoms | QAOA, Grover |\n\n### Üretilen Pipeline Adımları\n1. **Data Ingestion** — Sentetik / CSV / REST API\n2. **Anonymization** — KVKK açıksa SHA-256 + local vault\n3. **Quantum Core** — Seçilen algoritma + donanıma özel ansatz / oracle\n4. **De-Anonymization** — Maskelenmiş kimliklerin geri getirilmesi\n5. **Export** — CSV veya REST POST\n\n### Genişletme Önerileri\n- `VALID_TRIPLETS` listesine yeni problem/donanım/algoritma ekleyebilirsiniz.\n- `get_quantum_core_snippet` fonksiyonuna gerçek `qiskit-ibm-runtime` veya `pennylane` çağrıları ekleyebilirsiniz.\n- Üretilen kodu dosyaya yazmak için `open('pipeline.py','w').write(LAST_GENERATED_CODE)` kullanabilirsiniz.\n\n---\n*Bu defter `abc.html` interaktif tasarımcısının Colab uyumlu Python uyarlamasıdır.*"
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.10.0"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "version_major": 2,
    "version_minor": 0,
    "state": {
     "ab1f5a3e6e9d465b8d0c5c03a697968e": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "VBoxModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "VBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "VBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_2892670036cc43a98c463aa6ab8a4e2b",
        "IPY_MODEL_48e10277dce84deab3be2c2eb54bc93c",
        "IPY_MODEL_302543b6aa7945619a38f9ffd2644d36",
        "IPY_MODEL_093a0cae31894cbabeced838ea457559",
        "IPY_MODEL_d25ebde1a1de49d3af1ff08d5f1bb581",
        "IPY_MODEL_8f3ce4ca1ba34b4188ab7ce8407c20fd",
        "IPY_MODEL_3b49ab8af41349b98f2a5b5a74a2b17e"
       ],
       "layout": "IPY_MODEL_62fcffed0a584fc8a7c38baec0bc72f2"
      }
     },
     "2892670036cc43a98c463aa6ab8a4e2b": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "HTMLModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_55411f1b4e92424296ad9f9bd93e29c7",
       "placeholder": "​",
       "style": "IPY_MODEL_25e3eeca725a45038e7029b1283b94f3",
       "value": "<h2 style=\"margin:0 0 4px 0;color:#0f172a;\">Kuantum Ekosistemi Kurumsal Pipeline Yönetimi</h2><p style=\"color:#64748b;margin:0 0 16px 0;font-size:14px;\">Problem → Donanım → Algoritma seçin. Veri / KVKK / API ayarlarını yapın. Kod otomatik üretilir.</p>"
      }
     },
     "48e10277dce84deab3be2c2eb54bc93c": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "VBoxModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "VBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "VBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_ae6fd2246ccc49508109905d17466691",
        "IPY_MODEL_eeb2eb26b20e4c8eb48f9c7cc5282a3b",
        "IPY_MODEL_3f6d851daa354da2a207fb7641ec7982",
        "IPY_MODEL_7b88ae19debb44c9b0d1166cb9c40cae",
        "IPY_MODEL_ac978a127a224f70a997009a7a82f36f",
        "IPY_MODEL_6adc678704cb48f8bd38e0054c2955cb"
       ],
       "layout": "IPY_MODEL_1a361f9a0329443e8a117696e8241408"
      }
     },
     "302543b6aa7945619a38f9ffd2644d36": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "VBoxModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "VBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "VBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_258cd85f0cdd4600aad75254725c6d42",
        "IPY_MODEL_6c641d5dd50a4fcb8300769b2a196b3b",
        "IPY_MODEL_0305d8feae674539b35428c85c25ff2d",
        "IPY_MODEL_40221cebbccd46689aff2e55c8579903",
        "IPY_MODEL_630943c81dae475ebe5fc49b56d0c031"
       ],
       "layout": "IPY_MODEL_4996712b780b44ada40b40163f11993d"
      }
     },
     "093a0cae31894cbabeced838ea457559": {
      "model_module": "@jupyter-widgets/output",
      "model_name": "OutputModel",
      "model_module_version": "1.0.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/output",
       "_model_module_version": "1.0.0",
       "_model_name": "OutputModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/output",
       "_view_module_version": "1.0.0",
       "_view_name": "OutputView",
       "layout": "IPY_MODEL_160a81f60bcb4e779ab891424a250616",
       "msg_id": "",
       "outputs": [
        {
         "output_type": "display_data",
         "data": {
          "text/plain": "<IPython.core.display.HTML object>",
          "text/html": "<div style=\"padding:12px;background:#f0fdf4;border-left:4px solid #22c55e;color:#166534;\">✔ Pipeline üretildi → <b>Machine Learning</b> · <b>Photonic Qubits</b> · <b>Grover's Algorithm</b></div>"
         },
         "metadata": {}
        }
       ]
      }
     },
     "d25ebde1a1de49d3af1ff08d5f1bb581": {
      "model_module": "@jupyter-widgets/output",
      "model_name": "OutputModel",
      "model_module_version": "1.0.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/output",
       "_model_module_version": "1.0.0",
       "_model_name": "OutputModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/output",
       "_view_module_version": "1.0.0",
       "_view_name": "OutputView",
       "layout": "IPY_MODEL_f65bc56c1de64aab92261c10fec9b342",
       "msg_id": "",
       "outputs": [
        {
         "output_type": "display_data",
         "data": {
          "text/plain": "<IPython.core.display.Markdown object>",
          "text/markdown": "### Grover's Algorithm — Entegrasyon Pipeline Modeli\n\n**Matematiksel Model:**\n\n$U_s = 2|s\\rangle\\langle s| - I \\quad \\rightarrow \\quad \\mathcal{O}(\\sqrt{N})$"
         },
         "metadata": {}
        }
       ]
      }
     },
     "8f3ce4ca1ba34b4188ab7ce8407c20fd": {
      "model_module": "@jupyter-widgets/output",
      "model_name": "OutputModel",
      "model_module_version": "1.0.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/output",
       "_model_module_version": "1.0.0",
       "_model_name": "OutputModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/output",
       "_view_module_version": "1.0.0",
       "_view_name": "OutputView",
       "layout": "IPY_MODEL_1914bf2c610f40a8b33a2049ee45733e",
       "msg_id": "",
       "outputs": [
        {
         "output_type": "display_data",
         "data": {
          "text/plain": "<IPython.core.display.Markdown object>",
          "text/markdown": "### Uçtan Uca Derlenmiş Canlı Python Kodu"
         },
         "metadata": {}
        },
        {
         "output_type": "display_data",
         "data": {
          "text/plain": "<IPython.core.display.HTML object>",
          "text/html": "<pre style=\"background:#1e293b;color:#f8fafc;padding:18px;border-radius:8px;overflow-x:auto;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.45;\"># -*- coding: utf-8 -*-\n\"\"\"\nKURUMSAL PIPELINE GENERATOR\nProblem: Machine Learning | Mimarisi: Photonic Qubits | Algoritma: Grover's Algorithm\n\"\"\"\nimport pandas as pd\nimport numpy as np\nfrom qiskit import QuantumCircuit\nfrom qiskit.quantum_info import SparsePauliOp\nfrom qiskit.circuit.library import TwoLocal, QAOAAnsatz, GroverOperator\nfrom qiskit.primitives import Estimator, Sampler\n\n# --- 1. ADIM: VERİ GİRİŞ KATMANI (DATA INGESTION) ---\nprint(\"-&gt; Sentetik veri generatörü devrede.\")\nnp.random.seed(1010)\ndf_main = pd.DataFrame({\n    'veri_indeks_id': [f\"ID_{i}\" for i in range(5)],\n    'metrik_deger': np.random.rand(5)\n})\nprint(\"✔ Sentetik mock matrisi belleğe alındı.\")\nprint(\"-&gt; Dosya yükleniyor: girdi_verisi.csv\")\ntry:\n    df_csv = pd.read_csv(\"girdi_verisi.csv\")\n    df_main = pd.concat([df_main, df_csv], ignore_index=True) if 'df_main' in locals() else df_csv\nexcept Exception as e:\n    print(f\"Hata, dummy dataframe atanıyor: {e}\")\n    df_main = pd.DataFrame({'veri_indeks_id': ['MOCK_01'], 'metrik_deger': [0.5]})\n\n# --- 2. ADIM: VERİ GİZLİLİĞİ VE ANONİMLEŞTİRME (ANONYMIZATION) ---\nimport hashlib\nprint(\"🔒 KVKK/GDPR Filtresi Aktif. Maskeleme süreci başlatılıyor...\")\n\nCRYPTO_SALT = \"SECURITY_HASH_SALT_VAL\"\nlocal_vault = {}  # Güvenli Eşleştirme Kasası\n\ndef encrypt_identity(raw_id):\n    hashed = hashlib.sha256((str(raw_id) + CRYPTO_SALT).encode()).hexdigest()[:12]\n    local_vault[hashed] = raw_id\n    return hashed\n\nif 'veri_indeks_id' in df_main.columns:\n    df_main['anonim_indeks_id'] = df_main['veri_indeks_id'].apply(encrypt_identity)\n    df_main.drop(columns=['veri_indeks_id'], inplace=True)\nprint(\"✔ Kimlik verileri QPU bulutuna çıkmadan önce tamamen maskelendi.\n\")\n\n# --- 3. ADIM: DONANIMA DUYARLI KUANTUM HESAPLAMA (QUANTUM CORE PROCESS) ---\ndef run_quantum_computation(data_pipeline):\n    print(\"-&gt; Kuantum İşlemci tüneli senkronize ediliyor...\")\n    hamiltonian = SparsePauliOp.from_list([(\"ZZ\", 1.0)])\n\n    # Donanım API Token/Endpoint: MY_QUANTUM_CLOUD_TOKEN_1974\n    # Standart Ayrık Kapı Grover Arama Katmanı\n    oracle = QuantumCircuit(2)\n    oracle.cz(0, 1)\n    grover_op = GroverOperator(oracle)\n    return [0.0001974] * len(data_pipeline)\n\n# Hesaplamayı Başlat\nresults_vector = run_quantum_computation(df_main)\n\n# Sonuç Veri Çerçevesinin Derlenmesi\nkey_column = 'anonim_indeks_id' if True else 'veri_indeks_id'\ndf_output_results = pd.DataFrame({\n    key_column: df_main[key_column],\n    'kuantum_olasilik_ciktisi': results_vector\n})\n\n# --- 4. ADIM: GERİ-ANONİMLEŞTİRME KATMANI (DE-ANONYMIZATION) ---\nprint(\"🔓 Güvenli Çözümleme Hattı (De-Anonymization) tetiklendi...\")\nif 'anonim_indeks_id' in df_output_results.columns:\n    df_output_results['veri_indeks_id'] = df_output_results['anonim_indeks_id'].map(local_vault)\n    df_output_results.drop(columns=['anonim_indeks_id'], inplace=True)\nprint(\"✔ Maskelenmiş veriler şirket içi secure vault ile gerçek kimliklerine kavuşturuldu.\n\")\n\n# --- 5. ADIM: DATA OUT / SONUÇLARIN YAZILMASI (EXPORT PIPELINE) ---\ndf_output_results.to_csv(\"kuantum_pipeline_sonuclari.csv\", index=False)\nprint(\"✔ Çıktılar başarıyla diske yazıldı: kuantum_pipeline_sonuclari.csv\")</pre>"
         },
         "metadata": {}
        }
       ]
      }
     },
     "3b49ab8af41349b98f2a5b5a74a2b17e": {
      "model_module": "@jupyter-widgets/output",
      "model_name": "OutputModel",
      "model_module_version": "1.0.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/output",
       "_model_module_version": "1.0.0",
       "_model_name": "OutputModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/output",
       "_view_module_version": "1.0.0",
       "_view_name": "OutputView",
       "layout": "IPY_MODEL_3673f52731d24a3584a37433f8d09b01",
       "msg_id": "",
       "outputs": [
        {
         "output_type": "display_data",
         "data": {
          "text/plain": "<IPython.core.display.Markdown object>",
          "text/markdown": "### Proje Çevrimiçi Entegrasyon Haritası"
         },
         "metadata": {}
        },
        {
         "output_type": "display_data",
         "data": {
          "text/plain": "<IPython.core.display.HTML object>",
          "text/html": "<div style=\"padding:14px;border-radius:8px;background:#f0fdf4;border-left:4px solid #166534;margin-bottom:10px;font-size:13.5px;\"><strong style=\"color:#166534;text-transform:uppercase;font-size:11px;\">1. Veri Kaynağı Entegrasyonu</strong><br>Lokal veya bulut dosya sistemindeki <code>girdi_verisi.csv</code> belgesi pipeline girdisi olarak haritalanır.</div><div style=\"padding:14px;border-radius:8px;background:#eff6ff;border-left:4px solid #1e40af;margin-bottom:10px;font-size:13.5px;\"><strong style=\"color:#1e40af;text-transform:uppercase;font-size:11px;\">2. Kuantum Donanım API Erişimi</strong><br>Kimlik doğrulaması <code>MY_QUANTUM_CLOUD_TOKEN_1974</code> anahtarı ile korunan, buluttaki gerçek <strong>Photonic Qubits</strong> API altyapısına güvenli istek gönderilir.</div><div style=\"padding:14px;border-radius:8px;background:#fff7ed;border-left:4px solid #9a3412;margin-bottom:10px;font-size:13.5px;\"><strong style=\"color:#9a3412;text-transform:uppercase;font-size:11px;\">3. Sonuç Yansıtma / End-Point API</strong><br>Analiz çıktıları lokal disk üzerindeki <code>kuantum_pipeline_sonuclari.csv</code> adresine kalıcı veri seti olarak işlenir.</div><div style=\"padding:14px;border-radius:8px;background:#fef2f2;border-left:4px solid #991b1b;margin-bottom:10px;font-size:13.5px;\"><strong style=\"color:#991b1b;text-transform:uppercase;font-size:11px;\">4. Veri Gizliliği Güvenlik Katmanı</strong><br>Hassas veriler Salted SHA-256 ile maskelenir. QPU hesaplaması bittikten sonra şifreli lokal vault'tan de-anonymize edilir.</div>"
         },
         "metadata": {}
        }
       ]
      }
     },
     "62fcffed0a584fc8a7c38baec0bc72f2": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "55411f1b4e92424296ad9f9bd93e29c7": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "25e3eeca725a45038e7029b1283b94f3": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "ae6fd2246ccc49508109905d17466691": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "HTMLModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_a093aaaa64db4d48a74a37d11e527e40",
       "placeholder": "​",
       "style": "IPY_MODEL_0f9433a8d3fa42c2a01ef3da5a01be56",
       "value": "<b style=\"color:#334155;\">Başlangıç Ayarları</b>"
      }
     },
     "eeb2eb26b20e4c8eb48f9c7cc5282a3b": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "HBoxModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_c3e45a134ffd42e5abd8fc36bed389e3",
        "IPY_MODEL_93666a885ad24184af895788c99b1d92",
        "IPY_MODEL_92692ad2e7a842e084c8de44344141e9",
        "IPY_MODEL_d8f1b5b8ffaf4f83b813e981a6c5f886"
       ],
       "layout": "IPY_MODEL_5ac3058e780b4d4ebb76e14c6863bf01"
      }
     },
     "3f6d851daa354da2a207fb7641ec7982": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "HTMLModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_dc3b1bee22814432b84818edb0a91af7",
       "placeholder": "​",
       "style": "IPY_MODEL_77c7ff9a3ed64e68915b449fcb92270c",
       "value": "<hr style=\"border:none;border-top:1px dashed #e2e8f0;margin:12px 0;\">"
      }
     },
     "7b88ae19debb44c9b0d1166cb9c40cae": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "TextModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "TextModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "TextView",
       "continuous_update": true,
       "description": "Veri Kaynağı:",
       "description_tooltip": null,
       "disabled": false,
       "layout": "IPY_MODEL_4ed8ffb0573d4d599ae1a2c61cbf776f",
       "placeholder": "https://api.firma.com/v1/data veya data.csv",
       "style": "IPY_MODEL_e9c6be72f381469f92c30fc9c577920c",
       "value": "girdi_verisi.csv"
      }
     },
     "ac978a127a224f70a997009a7a82f36f": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "TextModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "TextModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "TextView",
       "continuous_update": true,
       "description": "QPU Token/Endpoint:",
       "description_tooltip": null,
       "disabled": false,
       "layout": "IPY_MODEL_4ed8ffb0573d4d599ae1a2c61cbf776f",
       "placeholder": "IBM_SECRET_TOKEN veya https://qpu.cloud",
       "style": "IPY_MODEL_51b50913c8dd48d9af866e2c29789945",
       "value": "MY_QUANTUM_CLOUD_TOKEN_1974"
      }
     },
     "6adc678704cb48f8bd38e0054c2955cb": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "TextModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "TextModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "TextView",
       "continuous_update": true,
       "description": "Sonuç Yolu/API:",
       "description_tooltip": null,
       "disabled": false,
       "layout": "IPY_MODEL_4ed8ffb0573d4d599ae1a2c61cbf776f",
       "placeholder": "https://api.firma.com/v1/results veya output.csv",
       "style": "IPY_MODEL_8e6af32e4d9840ca86656c819807a430",
       "value": "kuantum_pipeline_sonuclari.csv"
      }
     },
     "1a361f9a0329443e8a117696e8241408": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": "1px solid #e2e8f0",
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": "0 0 16px 0",
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": "16px",
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "258cd85f0cdd4600aad75254725c6d42": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "HTMLModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_b84bef514b5d41aba4c5e64722166157",
       "placeholder": "​",
       "style": "IPY_MODEL_69d82ebed89a4e6d94febfe15bca1bf3",
       "value": "<b style=\"color:#334155;\">Seçim Paneli (Hiyerarşik Filtre)</b>"
      }
     },
     "6c641d5dd50a4fcb8300769b2a196b3b": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DropdownModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DropdownModel",
       "_options_labels": [
        "— Problem seçin —",
        "Optimization & Logistics",
        "Quantum Chemistry",
        "Cryptography",
        "Machine Learning"
       ],
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "DropdownView",
       "description": "Problem:",
       "description_tooltip": null,
       "disabled": false,
       "index": 4,
       "layout": "IPY_MODEL_4ed8ffb0573d4d599ae1a2c61cbf776f",
       "style": "IPY_MODEL_19f1afb665204f5d8bc04fad5a680c18"
      }
     },
     "0305d8feae674539b35428c85c25ff2d": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DropdownModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DropdownModel",
       "_options_labels": [
        "— Donanım seçin —",
        "Neutral Atoms",
        "Photonic Qubits",
        "Superconducting Qubits",
        "Trapped Ions"
       ],
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "DropdownView",
       "description": "Donanım:",
       "description_tooltip": null,
       "disabled": false,
       "index": 2,
       "layout": "IPY_MODEL_4ed8ffb0573d4d599ae1a2c61cbf776f",
       "style": "IPY_MODEL_8f3463a9ed7e4b14b5832f9414e5cc02"
      }
     },
     "40221cebbccd46689aff2e55c8579903": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DropdownModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DropdownModel",
       "_options_labels": [
        "— Algoritma seçin —",
        "Grover's Algorithm",
        "QAOA"
       ],
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "DropdownView",
       "description": "Algoritma:",
       "description_tooltip": null,
       "disabled": false,
       "index": 1,
       "layout": "IPY_MODEL_4ed8ffb0573d4d599ae1a2c61cbf776f",
       "style": "IPY_MODEL_fb82734f3c46435c8d92962fbfd86438"
      }
     },
     "630943c81dae475ebe5fc49b56d0c031": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "HBoxModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_04cf4b49382c4c62b91f09840dc4fdd0",
        "IPY_MODEL_2a5b7ec226a34731b63427f54b602875"
       ],
       "layout": "IPY_MODEL_c0c589dfbb1f470dbcf483177f149fda"
      }
     },
     "4996712b780b44ada40b40163f11993d": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": "1px solid #e2e8f0",
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": "0 0 16px 0",
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": "16px",
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "a093aaaa64db4d48a74a37d11e527e40": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "0f9433a8d3fa42c2a01ef3da5a01be56": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "c3e45a134ffd42e5abd8fc36bed389e3": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "CheckboxModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "CheckboxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "CheckboxView",
       "description": "Sentetik Veri Üretilsin mi?",
       "description_tooltip": null,
       "disabled": false,
       "indent": false,
       "layout": "IPY_MODEL_c337976502c149a9802eb5f1ac12e6d0",
       "style": "IPY_MODEL_6fc4b4dffe7b430889c3d4a48dac2ac4",
       "value": true
      }
     },
     "93666a885ad24184af895788c99b1d92": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "CheckboxModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "CheckboxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "CheckboxView",
       "description": "Harici Veri/CSV Yüklensin mi?",
       "description_tooltip": null,
       "disabled": false,
       "indent": false,
       "layout": "IPY_MODEL_002176a272ce4bc485e8b692947c0ca5",
       "style": "IPY_MODEL_9868037e6f614eb386980ebd095d7c9b",
       "value": true
      }
     },
     "92692ad2e7a842e084c8de44344141e9": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "CheckboxModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "CheckboxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "CheckboxView",
       "description": "Sonuçlar Kaydedilsin mi?",
       "description_tooltip": null,
       "disabled": false,
       "indent": false,
       "layout": "IPY_MODEL_89b1b986f48647c38a09e1924d4d84ce",
       "style": "IPY_MODEL_bc11ce69ef60461eacf55c646f246e13",
       "value": true
      }
     },
     "d8f1b5b8ffaf4f83b813e981a6c5f886": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "CheckboxModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "CheckboxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "CheckboxView",
       "description": "KVKK / GDPR Verisi Var mı?",
       "description_tooltip": null,
       "disabled": false,
       "indent": false,
       "layout": "IPY_MODEL_77c5af20c11c4336adbc4cee7b245a21",
       "style": "IPY_MODEL_5987cee549be4e03aa20c330c8aae86a",
       "value": true
      }
     },
     "5ac3058e780b4d4ebb76e14c6863bf01": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": "row wrap",
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "dc3b1bee22814432b84818edb0a91af7": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "77c7ff9a3ed64e68915b449fcb92270c": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "4ed8ffb0573d4d599ae1a2c61cbf776f": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": "4px 0",
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": "95%"
      }
     },
     "e9c6be72f381469f92c30fc9c577920c": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": "180px"
      }
     },
     "51b50913c8dd48d9af866e2c29789945": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": "180px"
      }
     },
     "8e6af32e4d9840ca86656c819807a430": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": "180px"
      }
     },
     "b84bef514b5d41aba4c5e64722166157": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "69d82ebed89a4e6d94febfe15bca1bf3": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "19f1afb665204f5d8bc04fad5a680c18": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": "180px"
      }
     },
     "8f3463a9ed7e4b14b5832f9414e5cc02": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": "180px"
      }
     },
     "fb82734f3c46435c8d92962fbfd86438": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": "180px"
      }
     },
     "04cf4b49382c4c62b91f09840dc4fdd0": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "ButtonModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ButtonModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ButtonView",
       "button_style": "primary",
       "description": "Pipeline Kodunu Üret / Güncelle",
       "disabled": false,
       "icon": "",
       "layout": "IPY_MODEL_a90c5affeed34c72a03301a0ddfc13e0",
       "style": "IPY_MODEL_3e60b800b1814c6eaa81379b1c3d0894",
       "tooltip": ""
      }
     },
     "2a5b7ec226a34731b63427f54b602875": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "ButtonModel",
      "model_module_version": "1.5.0",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ButtonModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ButtonView",
       "button_style": "danger",
       "description": "Tüm Seçimleri Sıfırla",
       "disabled": false,
       "icon": "",
       "layout": "IPY_MODEL_dabc5fd1946e4d40a7083113445743dc",
       "style": "IPY_MODEL_2f527b3152cd4742b89eeb7119276d2e",
       "tooltip": ""
      }
     },
     "c0c589dfbb1f470dbcf483177f149fda": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "c337976502c149a9802eb5f1ac12e6d0": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "6fc4b4dffe7b430889c3d4a48dac2ac4": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "002176a272ce4bc485e8b692947c0ca5": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "9868037e6f614eb386980ebd095d7c9b": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "89b1b986f48647c38a09e1924d4d84ce": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "bc11ce69ef60461eacf55c646f246e13": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "77c5af20c11c4336adbc4cee7b245a21": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "5987cee549be4e03aa20c330c8aae86a": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "DescriptionStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "a90c5affeed34c72a03301a0ddfc13e0": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": "10px 0",
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": "280px"
      }
     },
     "3e60b800b1814c6eaa81379b1c3d0894": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "ButtonStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ButtonStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "button_color": null,
       "font_weight": ""
      }
     },
     "dabc5fd1946e4d40a7083113445743dc": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": "10px 0",
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": "220px"
      }
     },
     "2f527b3152cd4742b89eeb7119276d2e": {
      "model_module": "@jupyter-widgets/controls",
      "model_name": "ButtonStyleModel",
      "model_module_version": "1.5.0",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ButtonStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "button_color": null,
       "font_weight": ""
      }
     },
     "160a81f60bcb4e779ab891424a250616": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "f65bc56c1de64aab92261c10fec9b342": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "1914bf2c610f40a8b33a2049ee45733e": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "3673f52731d24a3584a37433f8d09b01": {
      "model_module": "@jupyter-widgets/base",
      "model_name": "LayoutModel",
      "model_module_version": "1.2.0",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}