ÿþ<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CTET Paper 2 - 9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0  - M / > 8 8 G   ( 0 G  0 </title> <link href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='45' fill='%23e65100'/%3E%3Ctext x='50' y='67' font-size='40' text-anchor='middle' fill='white' font-weight='bold'%3E9 %3C/text%3E%3C/svg%3E" rel="icon"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <style> :root { --primary: #e65100; --primary-dark: #bf360c; --secondary: #ff9800; --danger: #f44336; --success: #2e7d32; --light: #fff3e0; --dark: #1a1a2e; --gray: #6c757d; --border-radius: 12px; --box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); --transition: all 0.3s ease; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', 'Noto Sans', 'Noto Sans Devanagari', system-ui, -apple-system, sans-serif; } body { background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%); min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px; color: var(--dark); line-height: 1.6; } .container { width: 100%; max-width: 1000px; background: white; border-radius: var(--border-radius); box-shadow: var(--box-shadow); overflow: hidden; transition: var(--transition); animation: fadeIn 0.5s ease-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .header { background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: white; padding: 30px 20px; text-align: center; position: relative; overflow: hidden; } .header::before { content: '=ØÝÜ'; position: absolute; bottom: -30px; right: -30px; font-size: 120px; opacity: 0.15; transform: rotate(-15deg); } .header h1 { font-size: 1.6rem; margin-bottom: 10px; font-weight: 700; position: relative; z-index: 1; } .header p { font-size: 1rem; opacity: 0.9; position: relative; z-index: 1; } .header-controls { position: absolute; top: 20px; right: 20px; display: flex; gap: 12px; z-index: 5; } .header-controls .home-icon { position: relative; top: 0; left: 0; color: white; font-size: 24px; cursor: pointer; transition: var(--transition); text-decoration: none; display: inline-block; } .header-controls .home-icon:hover { transform: scale(1.1); color: rgba(255, 255, 255, 0.8); } .content-area { padding: 30px; } .hidden { display: none !important; } .btn { display: inline-block; padding: 12px 28px; border-radius: 50px; font-weight: 600; cursor: pointer; transition: var(--transition); border: none; text-align: center; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); margin: 10px 5px; } .btn-primary { background: var(--primary); color: white; } .btn-primary:hover { background: var(--primary-dark); transform: translateY(-2px); box-shadow: 0 8px 15px rgba(230, 81, 0, 0.3); } .btn-success { background: var(--success); color: white; } .btn-success:hover { background: #1b5e20; transform: translateY(-2px); } .btn-danger { background: var(--danger); color: white; } .btn-danger:hover { background: #c62828; transform: translateY(-2px); } .btn-level { background: var(--light); color: var(--dark); border: 2px solid var(--gray); font-size: 1.1rem; padding: 15px 30px; width: 200px; } .btn-level:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); } .btn-level.selected { background: var(--primary); color: white; border-color: var(--primary); } .btn-group { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 20px 0; } .level-buttons { display: flex; justify-content: center; gap: 20px; margin: 30px 0; flex-wrap: wrap; } .section-title { text-align: center; margin-bottom: 25px; color: var(--primary-dark); font-size: 1.5rem; position: relative; padding-bottom: 10px; } .section-title::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 80px; height: 3px; background: var(--secondary); border-radius: 3px; } .checkbox-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; margin: 25px 0; max-height: 450px; overflow-y: auto; padding: 10px; border: 1px solid #eee; border-radius: 12px; } .checkbox-item { display: flex; align-items: center; } .checkbox-item input { margin-right: 10px; width: 18px; height: 18px; cursor: pointer; } .checkbox-item label { cursor: pointer; font-size: 0.85rem; } .practice-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; margin: 30px 0; } .option-card { background: white; border-radius: var(--border-radius); padding: 25px; box-shadow: var(--box-shadow); text-align: center; transition: var(--transition); cursor: pointer; border: 2px solid transparent; } .option-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); } .option-card.selected { border-color: var(--primary); background: rgba(230, 81, 0, 0.05); } .option-icon { font-size: 2.5rem; color: var(--primary); margin-bottom: 15px; } .option-title { font-size: 1.2rem; font-weight: 600; margin-bottom: 10px; color: var(--primary-dark); } .option-description { color: var(--gray); font-size: 0.85rem; } .question-count-selector { display: flex; justify-content: center; align-items: center; gap: 15px; margin: 20px 0; } .count-btn { width: 40px; height: 40px; border-radius: 50%; background: var(--light); border: 2px solid var(--gray); display: flex; align-items: center; justify-content: center; cursor: pointer; font-weight: bold; transition: var(--transition); } .count-btn:hover { background: var(--primary); color: white; border-color: var(--primary); } .question-count { font-size: 1.5rem; font-weight: 600; min-width: 60px; text-align: center; } .timer-options { display: flex; justify-content: center; gap: 15px; margin: 20px 0; flex-wrap: wrap; } .timer-btn { padding: 10px 20px; background: var(--light); border: 2px solid var(--gray); border-radius: 30px; cursor: pointer; transition: var(--transition); } .timer-btn.selected { background: var(--primary); color: white; border-color: var(--primary); } .question { margin-bottom: 20px; page-break-inside: avoid; } .question-text { font-weight: 500; margin-bottom: 8px; } .option { margin-left: 20px; margin-bottom: 5px; } .action-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; margin-top: 40px; } .answer-sheet { margin-top: 40px; padding: 20px; background: #f8f9fa; border-radius: var(--border-radius); } .answer-table { width: 100%; border-collapse: collapse; margin-top: 15px; } .answer-table th, .answer-table td { border: 1px solid #ddd; padding: 8px; text-align: center; } .answer-table th { background-color: var(--primary); color: white; } .instructions { margin-bottom: 30px; padding: 20px; background: #fff3e0; border-radius: var(--border-radius); border-left: 5px solid var(--primary); } .instructions ol { padding-left: 20px; margin-top: 10px; } .paper-header { text-align: center; margin-bottom: 20px; } .home-icon { position: absolute; top: 20px; left: 20px; color: white; font-size: 24px; cursor: pointer; transition: var(--transition); z-index: 2; } .home-icon:hover { transform: scale(1.1); } @media (max-width: 768px) { .checkbox-container { grid-template-columns: 1fr; } .level-buttons { flex-direction: column; align-items: center; } .btn-level { width: 100%; max-width: 250px; } .header h1 { font-size: 1.2rem; } .header-controls { top: 12px; right: 12px; gap: 8px; } } @media print { .action-buttons { display: none; } .home-icon { display: none; } .header-controls { display: none; } .question { page-break-inside: avoid; } } .text-center { text-align: center; } </style> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4930137336556867" crossorigin="anonymous"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-KMZ9RJ62EY"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-KMZ9RJ62EY'); </script> </head> <body> <div class="container" id="startContainer"> <div class="header"> <div class="header-controls"> <a href="ctet-exam-paper2-practice-set-generator.html" class="home-icon" ><i class="fas fa-home"></i></a> </div> <h1 id="mainTitle"><i class="fas fa-language"></i> CTET Paper 2 - 9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0  - M / > 8 8 G   ( 0 G  0 </h1> <p id="mainSubtitle">CTET Paper 2 (  M  * M 0 > % . ?  8 M $ 0 ) 9 G $ A 9 ?  & @ - > 7 > , 5 M / >  0 # , 8 > 9 ? $ M /  5  6 ?  M 7 # 5 ? ' ? / K   > 5 ? 7 / 5 > 0  - M / > 8 </p> </div> <div class="content-area"> <div id="startScreen"> <h2 class="section-title" id="startTitle">=ØÝÜ 9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0 -  - M / > 8 8 G   ( 0 G  0 </h2> <p class="text-center" id="startDesc">CTET Paper 2 9 G $ A 9 ?  & @ - > 7 > , 5 M / >  0 # , 8 > 9 ? $ M /  5  6 ?  M 7 # 5 ? ' ? / K   > 5 ? 8 M $ C $  - M / > 8 8 G  $ H / > 0  0 G  </p> <div class="btn-group"> <button class="btn btn-primary" id="startGeneratingBtn"><i class="fas fa-play"></i> <span id="startBtnText"> - M / > 8 8 G  , ( > ( > 6 A 0 B  0 G  </span></button> </div> </div> <div id="practiceTypeSelection" class="hidden"> <h2 class="section-title" id="practiceTypeTitle"> - M / > 8  > * M 0  > 0  A ( G  </h2> <p class="text-center" id="practiceTypeDesc"> * ( @ $ H / > 0 @  G  ( A 8 > 0  - M / > 8 8 G   A ( G  :</p> <div class="practice-options"> <div class="option-card" data-type="chapter-wise"> <div class="option-icon"><i class="fas fa-book-open"></i></div> <div class="option-title" id="optChapterTitle">5 ? 7 / > ( A 8 > 0  - M / > 8 </div> <div class="option-description" id="optChapterDesc"> ? 8 @ 5 ? 6 G 7 5 ? 7 /  >  9 (  - M / > 8  0 G  </div> </div> <div class="option-card" data-type="full-length"> <div class="option-icon"><i class="fas fa-file-alt"></i></div> <div class="option-title" id="optFullTitle">* B 0 M # 2  , >   G 8 M  </div> <div class="option-description" id="optFullDesc">CTET * H  0 M ( * 0  ' > 0 ? $ 50 * M 0 6 M ( K   > 8 G  </div> </div> <div class="option-card" data-type="previous-year"> <div class="option-icon"><i class="fas fa-calendar-alt"></i></div> <div class="option-title" id="optPrevTitle">* ?  2 G 5 0 M 7 K   G * M 0 6 M ( </div> <div class="option-description" id="optPrevDesc">* ?  2 @ TET * 0 @  M 7 >   * 0  ' > 0 ? $ * M 0 6 M ( </div> </div> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToStartBtn"><span id="backStartBtnText">* @  G  >   </span></button> <button class="btn btn-success" id="proceedToChaptersBtn"><span id="proceedBtnText">5 ? 7 /  A ( G  ’!</span></button> </div> </div> <div id="chapterSelection" class="hidden"> <h2 class="section-title" id="chapterTitle">=ØÚÜ 9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0 - 5 ? 7 /  A ( G  </h2> <form id="chapterForm"> <div class="checkbox-container" id="hindiTopicsContainer"></div> </form> <div id="questionCountSection"> <h3 class="section-title" id="qCountTitle">* M 0 6 M ( K   @ 8   M / >  A ( G  </h3> <div class="question-count-selector"> <div class="count-btn" id="decreaseCount">-</div> <div class="question-count" id="questionCount">50</div> <div class="count-btn" id="increaseCount">+</div> </div> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToPracticeTypeBtn"><span id="backPracticeBtnText">* @  G </span></button> <button class="btn btn-success" id="generateAssignmentBtn"><span id="generateAssignBtnText"> ? ( >  8 M $ 0  A ( G  ’!</span></button> </div> </div> <div id="levelSelection" class="hidden"> <h2 class="section-title" id="levelTitle"> ? ( >  8 M $ 0  A ( G  </h2> <p class="text-center" id="levelDesc">CTET Paper 2 * 0 @  M 7 >  G  ( A 8 > 0 8 M $ 0  A ( G  :</p> <div class="level-buttons"> <button class="btn btn-level" id="level1Btn"><span id="l1Title">Level 1</span><br><small id="l1Sub">, A ( ? / > & @ (* M 0 > 0  - ?  )</small></button> <button class="btn btn-level" id="level2Btn"><span id="l2Title">Level 2</span><br><small id="l2Sub">. ' M / . (CTET 8 M $ 0 )</small></button> <button class="btn btn-level" id="level3Btn"><span id="l3Title">Level 3</span><br><small id="l3Sub">  M  (6 ?  M 7  * > $ M 0 $ > )</small></button> </div> <div id="timerOptions"> <h3 class="section-title" id="timerTitle">8 . / 8 @ . >  A ( G  </h3> <div class="timer-options"> <div class="timer-btn" data-time="30"><span id="t30">30 . ? (  </span></div> <div class="timer-btn" data-time="45"><span id="t45">45 . ? (  </span></div> <div class="timer-btn" data-time="60" class="selected"><span id="t60">60 . ? (  </span></div> <div class="timer-btn" data-time="90"><span id="t90">90 . ? (  </span></div> </div> </div> <div class="btn-group"> <button class="btn btn-danger" id="backToChaptersBtn"><span id="backChaptersBtnText">5 ? 7 / K  * 0 5 > * 8 </span></button> <button class="btn btn-success" id="generateFinalBtn"><span id="generateFinalBtnText"> - M / > 8 8 G   ( 0 G   0 G  </span></button> </div> </div> </div> </div> <div class="container hidden" id="generatedPaperContainer"></div> <script> const { jsPDF } = window.jspdf; // ===================================================== // HINDI LANGUAGE & PEDAGOGY QUESTION BANK (42 TOPICS) - CTET Paper 2 // ===================================================== const questionBank = {}; function addQuestions(topicKey, questions) { if (!questionBank[topicKey]) questionBank[topicKey] = { level1: [], level2: [], level3: [] }; const levels = ['level1', 'level2', 'level3']; questions.forEach((q, idx) => { const levelKey = levels[idx % 3]; questionBank[topicKey][levelKey].push(q); }); } // ----- HINDI LANGUAGE TOPICS (1-31) ----- addQuestions(' * ? $  & M / >  6 ', [ { question: " * ? $  & M / >  6 . G   ? 8 * M 0  > 0  G * M 0 6 M ( * B  G  > $ G 9 H  ?", options: [" & M / >  6 * 0  ' > 0 ? $ ", "5 M / >  0 # * 0  ' > 0 ? $ ", " 5 ? $ > * 0  ' > 0 ? $ ", "2 G   * 0  ' > 0 ? $ "], answer: "A" }, { question: " * ? $  & M / >  6  K * " < ( G  > . A  M / & M & G 6 M /  M / > 9 H ?", options: ["8 .  5 ?  8 ? $  0 ( > ", "0  ( > ", "2 ?  ( > ", ", K 2 ( > "], answer: "A" }, { question: " * ? $  & M / >  6 . G   ? 8  L 6 2  > * 0 @  M 7 #  ? / >  > $ > 9 H ?", options: ["* ( 8 .  ", "2 G  ( ", "6 M 0 5 # ", "5 >  ( "], answer: "A" } ]); addQuestions(' * ? $ * & M / >  6 ', [ { question: " * ? $ * & M / >  6 . G   ? 8 * M 0  > 0  G * M 0 6 M ( * B  G  > $ G 9 H  ?", options: [" > 5 M / >  6 * 0  ' > 0 ? $ ", " & M / >  6 * 0  ' > 0 ? $ ", "5 M / >  0 # * 0  ' > 0 ? $ ", "2 G   * 0  ' > 0 ? $ "], answer: "A" }, { question: " * ? $ * & M / >  6 . G   ? 8  > . 9 $ M 5 9 K $ > 9 H ?", options: ["- > 5  M 0 9 # ", "$ % M / ", "8 B  ( > ", "   ! < G "], answer: "A" }, { question: " * ? $ * & M / >  6 . G   ? 8  L 6 2  > * 0 @  M 7 # 9 K $ > 9 H ?", options: [" > 5 M / -, K ' ", " & M / -, K ' ", "5 M / >  0 # -, K ' ", "2 G  ( -, K ' "], answer: "A" } ]); addQuestions('9 ? ( M & @ 5 0 M # . > 2 > (8 M 5 0 , 5 M /   ( )', [ { question: "9 ?  & @ 5 0 M # . > 2 > . G   ? $ ( G 8 M 5 0 9 H  ?", options: ["11", "10", "12", "13"], answer: "A" }, { question: "9 ?  & @ 5 0 M # . > 2 > . G   ? $ ( G 5 M /   ( 9 H  ?", options: ["33", "35", "36", "32"], answer: "A" }, { question: "' '  ? 8 * M 0  > 0  > 5 0 M # 9 H ?", options: ["5 M /   ( ", "8 M 5 0 ", ". > $ M 0 > ", "8  / A  M $ "], answer: "A" } ]); addQuestions('5 0 M # K   G . G 2 8 G . > $ M 0 ?  $ % >  . > $ M 0 ?  6 , M & K   @ * 9  > ( ', [ { question: ". > $ M 0 ?  6 , M &  > & > 9 0 #  L ( 8 > 9 H ?", options: [" . 2 ", " 2 ", " . 2 ", " . "], answer: "A" }, { question: " . > $ M 0 ?  6 , M &  > & > 9 0 #  L ( 8 > 9 H ?", options: [" C ", " 0 ", " 2 > ", ". ( "], answer: "A" }, { question: "' . 2 ' . G   ? $ ( @ . > $ M 0 >   9 H  ?", options: ["& K ", "  ", "$ @ ( ", " > 0 "], answer: "A" } ]); addQuestions('5 >  M / 0  ( > ', [ { question: "5 >  M / 0  ( > . G   ? 8  > ' M / > ( 0  >  > $ > 9 H ?", options: ["5 M / >  0 # ?  ( ? / . ", " 0 M % ", "2 / ", "$ A  "], answer: "A" }, { question: "8 0 2 5 >  M /  ? 8 G  9 $ G 9 H  ?", options: ["   M 0 ? / > 5 > 2 > ", "& K  M 0 ? / > 5 > 2 > ", "$ @ (  M 0 ? / > 5 > 2 > ", ", ? ( >  M 0 ? / >  > "], answer: "A" }, { question: "8  / A  M $ 5 >  M / . G   ? $ ( @  M 0 ? / >   9 K $ @ 9 H  ?", options: ["& K / >  ' ?  ", "  ", "$ @ ( ", " > 0 "], answer: "A" } ]); addQuestions('9 ? ( M & @  @ 8 - @ ' M 5 ( ? / K   G * > 0 8 M * 0 ?    $ 0  @  > (  > 0 @ ', [ { question: "9 ?  & @ . G   A 2  ? $ ( @ ' M 5 ( ? / >  9 H  ?", options: ["52", "48", "50", "54"], answer: "A" }, { question: "'6 '  0 '7 ' . G   M / >   $ 0 9 H ?", options: ["  M  > 0 # 8 M % > ( ", "2 G  ( ", " 0 M % ", " K  ( 9 @  "], answer: "A" }, { question: " 2 M * * M 0 > #  0 . 9 > * M 0 > # . G    $ 0  ? 8 * 0  ' > 0 ? $ 9 H ?", options: ["6 M 5 > 8 ", "8 M % > ( ", "* M 0 / > 8 ", " > 2 "], answer: "A" } ]); addQuestions('' M 5 ( ? / >  , 5 0 M # ,  ( A 8 M 5 > 0 ,  ( A ( > 8 ?   5   ( M & M 0 , ? ( M & A . G   ( M $ 0 ', [ { question: " ( A 8 M 5 > 0  >  ? 9 M (  M / > 9 H ?", options: [" ", " ", " ", "d "], answer: "A" }, { question: " ( M & M 0 , ? ( M & A  > * M 0 / K   ? 8  G 2 ?  9 K $ > 9 H ?", options: [" ( A ( > 8 ?  $ > ", " ( A 8 M 5 > 0 ", "5 ? 8 0 M  ", "5 ? 0 > . "], answer: "A" }, { question: " ( A 8 M 5 > 0  0  ( A ( > 8 ?  . G  . B 2   $ 0  M / > 9 H ?", options: ["  M  > 0 # ", "2 G  ( ", " 0 M % ", "8 M % > ( "], answer: "A" } ]); addQuestions('5 ? 0 > .  ? ( M 9 K   > * M 0 / K  ( 2 M * 5 ? 0 > . ,  0 M ' 5 ? 0 > . , * B 0 M # 5 ? 0 > . , * M 0 6 M ( 5 >   , 5 ? 8 M . / , K '  )', [ { question: "* B 0 M # 5 ? 0 > .  >  ? 9 M (  M / > 9 H ?", options: ["d ", ",", ";", "?"], answer: "A" }, { question: "* M 0 6 M ( 5 >    ? 9 M (  > * M 0 / K   ? 8 5 >  M / . G  9 K $ > 9 H ?", options: ["* M 0 6 M ( 5 >   ", "5 ? 8 M . / ", "5 ? ' > ( ", "( ? 7 G ' "], answer: "A" }, { question: " 2 M * 5 ? 0 > .  >  ? 9 M (  M / > 9 H ?", options: [",", ";", "d ", "?"], answer: "A" } ]); addQuestions('8 . > ( ' M 5 ( ? / K  5 > 2 G 6 , M & ', [ { question: "8 . > ( ' M 5 ( ? 5 > 2 G 6 , M &  M / >  9 2 > $ G 9 H  ?", options: ["8 . 6 M 0 A $ ", "5 ? 2 K . ", "* 0 M / > / ", "  > 0 M % @ "], answer: "A" }, { question: "( ? . M ( . G  8 G  L ( 8 . 6 M 0 A $ 6 , M & / A  M . 9 H ?", options: [" A 2 - B 2 ", "& ? ( -& @ ( ", "0 > . -0 > . ", ". ( -. ( "], answer: "A" }, { question: "8 . 6 M 0 A $ 6 , M & K  . G   ? 8  > ' M / > ( 0  ( >  > 9 ?  ?", options: [" 0 M % ", "5 0 M # ", ". > $ M 0 > ", "2 / "], answer: "A" } ]); addQuestions('5 ? 2 K . 6 , M & ', [ { question: "5 ? 2 K . 6 , M &  ? 8 G  9 $ G 9 H  ?", options: ["5 ? * 0 @ $  0 M % 5 > 2 G ", "8 . > (  0 M % 5 > 2 G ", "   H 8 G ", ". ? 2 $ G - A 2 $ G "], answer: "A" }, { question: "' . C $ '  > 5 ? 2 K .  M / > 9 H ?", options: ["5 ? 7 ", " 2 ", "& B ' ", " @ "], answer: "A" }, { question: "'8 A  '  > 5 ? 2 K . 9 H ?", options: ["& A   ", " (  & ", "6 >  $ ? ", "8  $ K 7 "], answer: "A" } ]); addQuestions('* 0 M / > / 5 >  @ 6 , M & ', [ { question: "* 0 M / > / 5 >  @ 6 , M &  ? 8 G  9 $ G 9 H  ?", options: ["8 . > (  0 M % 5 > 2 G ", "5 ? * 0 @ $  0 M % 5 > 2 G ", "   H 8 G ", ". ? 2 $ G - A 2 $ G "], answer: "A" }, { question: "'* > ( @ '  > * 0 M / > / 5 >  @  M / > 9 H ?", options: [" 2 ", "  M ( ? ", "5 > / A ", "* C % M 5 @ "], answer: "A" }, { question: "'8 B 0 M / '  > * 0 M / > / 5 >  @ 9 H ?", options: ["0 5 ? ", "  & M 0 ", "$ > 0 > ", " M 0 9 "], answer: "A" } ]); addQuestions('5 >  M / >  6 K   G 2 ?    6 , M & ', [ { question: " K  - @ ( . 0 G , 8 G  M / >  9 $ G 9 H  ?", options: [" . 0 ", ". 0 ", " @ 5 ? $ ", "6 > 6 M 5 $ "], answer: "A" }, { question: " K * " < > (  / > 9 K , 8 G  M / >  9 $ G 9 H  ?", options: [" * ? $ ", "* ? $ ", "2 ?  ? $ ", " 2 ?  ? $ "], answer: "A" }, { question: " K & ?  >  ( & G , 8 G  M / >  9 $ G 9 H  ?", options: [" & C 6 M / ", "& C 6 M / ", "8 M * 7 M  ", " 8 M * 7 M  "], answer: "A" } ]); addQuestions('8   M  >  5  8  G - G & ', [ { question: "8   M  >  ? 8 G  9 $ G 9 H  ?", options: ["( > . ", " M 0 ? / > ", " A # ", " 5 8 M % > "], answer: "A" }, { question: "5 M /  M $ ? 5 >   8   M  >  > & > 9 0 #  M / > 9 H ?", options: ["0 > . ", "* A 8 M $  ", "8 A  & 0 ", "& L ! < ( > "], answer: "A" }, { question: " > $ ? 5 >   8   M  >  > & > 9 0 #  M / > 9 H ?", options: ["( & @ ", "   > ", "/ . A ( > ", "8 0 8 M 5 $ @ "], answer: "A" } ]); addQuestions('8 0 M 5 ( > .  5  8  G - G & ', [ { question: "8 0 M 5 ( > .  ? 8 G  9 $ G 9 H  ?", options: ["8   M  >  G 8 M % > ( * 0 ", " M 0 ? / >  G 8 M % > ( * 0 ", "5 ? 6 G 7 #  G 8 M % > ( * 0 ", " M 0 ? / > -5 ? 6 G 7 #  G 8 M % > ( * 0 "], answer: "A" }, { question: "( ?  5 >   8 0 M 5 ( > .  > & > 9 0 #  M / > 9 H ?", options: [" * ", ". H  ", "$ B ", "5 9 "], answer: "A" }, { question: "( ? 6 M  / 5 >   8 0 M 5 ( > .  > & > 9 0 #  M / > 9 H ?", options: ["/ 9 ", " K  ", " A  ", "8 , "], answer: "A" } ]); addQuestions(' M 0 ? / >  5  8  G - G & ', [ { question: " M 0 ? / >  ? 8 G  9 $ G 9 H  ?", options: [" > 0 M / ", "( > . ", " A # ", " 5 8 M % > "], answer: "A" }, { question: "  0 M .   M 0 ? / >  > & > 9 0 #  M / > 9 H ?", options: ["8 K ( > ", " > ( > ", "* @ ( > ", "2 ?  ( > "], answer: "A" }, { question: "8  0 M .   M 0 ? / >  > & > 9 0 #  M / > 9 H ?", options: ["* " < ( > ", "0 K ( > ", "9  8 ( > ", " >  ( > "], answer: "A" } ]); addQuestions('5 ? 6 G 7 #  5  8  G - G & ', [ { question: "5 ? 6 G 7 #  ? 8 G  9 $ G 9 H  ?", options: [" A # , $ > ( G 5 > 2 > ", " > 0 M / , $ > ( G 5 > 2 > ", "( > . , $ > ( G 5 > 2 > ", " 5 8 M % > , $ > ( G 5 > 2 > "], answer: "A" }, { question: " A # 5 >   5 ? 6 G 7 #  > & > 9 0 #  M / > 9 H ?", options: ["8 A  & 0 ", " > 2 > ", "$ @ ( ", "/ 9 "], answer: "A" }, { question: "8   M / > 5 >   5 ? 6 G 7 #  > & > 9 0 #  M / > 9 H ?", options: ["* >   ", ", ! < > ", " K  > ", ". @ > "], answer: "A" } ]); addQuestions('5  ( ', [ { question: "5  (  ? $ ( G * M 0  > 0  G 9 K $ G 9 H  ?", options: ["& K ", "$ @ ( ", " > 0 ", "  "], answer: "A" }, { question: "  5  (  > & > 9 0 #  M / > 9 H ?", options: ["2 ! <  > ", "2 ! <  G ", "2 ! <  K  ", "2 ! <  @ "], answer: "A" }, { question: ", 9 A 5  (  > & > 9 0 #  M / > 9 H ?", options: ["2 ! <  G ", "2 ! <  > ", "2 ! <  @ ", "2 ! <  ? / >  "], answer: "A" } ]); addQuestions('2 ?   ', [ { question: "2 ?    ? $ ( G * M 0  > 0  G 9 K $ G 9 H  ?", options: ["& K ", "$ @ ( ", " > 0 ", "  "], answer: "A" }, { question: "* A 2 M 2 ?    > & > 9 0 #  M / > 9 H ?", options: ["2 ! <  > ", "2 ! <  @ ", ",  M  > ", ",  M  @ "], answer: "A" }, { question: "8 M $ M 0 @ 2 ?    > & > 9 0 #  M / > 9 H ?", options: ["2 ! <  @ ", "2 ! <  > ", ", > 2  ", ", > 2 ?  > "], answer: "A" } ]); addQuestions(' > 2 ', [ { question: " > 2  ? $ ( G * M 0  > 0  G 9 K $ G 9 H  ?", options: ["$ @ ( ", "& K ", " > 0 ", "* >   "], answer: "A" }, { question: "- B $  > 2  > & > 9 0 #  M / > 9 H ?", options: [" / > ", " > $ > 9 H ", " >   > ", " > 0 9 > 9 H "], answer: "A" }, { question: "- 5 ? 7 M / $  > 2  > & > 9 0 #  M / > 9 H ?", options: [" >   > ", " / > ", " > $ > 9 H ", " > 0 9 > 9 H "], answer: "A" } ]); addQuestions(' > 0  ', [ { question: " > 0   ? $ ( G * M 0  > 0  G 9 K $ G 9 H  ?", options: [" ", "8 > $ ", " 9 ", "( L "], answer: "A" }, { question: " 0 M $ >  > 0   >  ? 9 M (  M / > 9 H ?", options: ["( G ", " K ", "8 G ", " > "], answer: "A" }, { question: " 0 M .  > 0   >  ? 9 M (  M / > 9 H ?", options: [" K ", "( G ", "8 G ", " G 2 ?  "], answer: "A" } ]); addQuestions('* M 0 $ M / / ', [ { question: "* M 0 $ M / /  ? 8 G  9 $ G 9 H  ?", options: ["6 , M &  G   $ . G  ", "6 , M &  G  0  - . G  ", "6 , M &  G . ' M / . G  ", "6 , M &  G 8 > % "], answer: "A" }, { question: " C $ * M 0 $ M / /  > & > 9 0 #  M / > 9 H ?", options: [" 0 $ > ", "* " < >  ", "8 A  & 0 $ > ", "- 2 >  "], answer: "A" }, { question: "$ & M ' ? $ * M 0 $ M / /  > & > 9 0 #  M / > 9 H ?", options: ["- > 0 $ @ / ", "* " < >  ", " 0 $ > ", "9  8 @ "], answer: "A" } ]); addQuestions(' * 8 0 M  ', [ { question: " * 8 0 M   ? 8 G  9 $ G 9 H  ?", options: ["6 , M &  G  0  - . G  ", "6 , M &  G   $ . G  ", "6 , M &  G . ' M / . G  ", "6 , M &  G 8 > % "], answer: "A" }, { question: "' ' * 8 0 M   >  0 M %  M / > 9 H ?", options: ["( 9 @  ", ", 9 A $ ", "  M  > ", ", A 0 > "], answer: "A" }, { question: "'8 A ' * 8 0 M   >  0 M %  M / > 9 H ?", options: ["  M  > ", ", A 0 > ", ", 9 A $ ", "% K ! < > "], answer: "A" } ]); addQuestions('$ $ M 8 .  5  $ & M - 5 ', [ { question: "$ $ M 8 . 6 , M &  ? 8 G  9 $ G 9 H  ?", options: ["8  8 M  C $ 8 G 2 ?    ", "& G 6  ", "5 ? & G 6 @ ", " 0 , @ "], answer: "A" }, { question: "$ & M - 5 6 , M &  ? 8 G  9 $ G 9 H  ?", options: ["8  8 M  C $ 8 G , ( G ", "& G 6  ", "5 ? & G 6 @ ", " 0 , @ "], answer: "A" }, { question: "'  M ( ? '  ? 8 * M 0  > 0  > 6 , M & 9 H ?", options: ["$ $ M 8 . ", "$ & M - 5 ", "& G 6  ", "5 ? & G 6 @ "], answer: "A" } ]); addQuestions('5 0 M $ ( @ ', [ { question: "5 0 M $ ( @  > 8  ,  '  ? 8 8 G 9 H ?", options: ["6 A & M ' 2 G  ( ", "  M  > 0 # ", " 0 M % ", "5 M / >  0 # "], answer: "A" }, { question: "6 A & M ' 5 0 M $ ( @  L ( 8 @ 9 H ?", options: ["5 ? & M / > 2 / ", "5 ? ' > 2 / ", "5 ? & M / > 2 / ", "5 ? ' M / > 2 / "], answer: "A" }, { question: " 6 A & M ' 5 0 M $ ( @  L ( 8 @ 9 H ?", options: [" 6 @ 0 M 5 > & ", " 6 @ 0 M 5 > & ", " 6 @ 0 M 5 > & ", " 6 @ 0 M 5 > & "], answer: "A" } ]); addQuestions('2 K  K  M $ ? / >   5  . A 9 > 5 0 K   G  0 M % ', [ { question: "2 K  K  M $ ?  ? 8 G  9 $ G 9 H  ?", options: ["2 K  * M 0  2 ? $  % ( ", "5 M /  M $ ?  $  % ( ", "2 G   @ /  % ( ", "6 > 8 M $ M 0 @ /  % ( "], answer: "A" }, { question: "'    >   ' > ( > . ( H ( 8 A  '  >  0 M %  M / > 9 H ?", options: [" A # 9 @ ( ", " A # @ ", "  ' > ", ", A & M ' ? . > ( "], answer: "A" }, { question: "'9 > %  >  * ( > ' . A 9 > 5 0 G  >  0 M %  M / > 9 H ?", options: ["! 0 ( > ", " A 6 9 K ( > ", " A 8 M 8 > 9 K ( > ", "& A  @ 9 K ( > "], answer: "A" } ]); addQuestions('8  ' ? ', [ { question: "8  ' ?  ? $ ( G * M 0  > 0  @ 9 K $ @ 9 H ?", options: ["$ @ ( ", "& K ", " > 0 ", "* >   "], answer: "A" }, { question: "8 M 5 0 8  ' ?  > & > 9 0 #  M / > 9 H ?", options: ["0 5 @ ( M & M 0 ", "$ $ M * A 0 A 7 ", "& ?  M   ", "8 $ M 8   "], answer: "A" }, { question: "5 M /   ( 8  ' ?  > & > 9 0 #  M / > 9 H ?", options: ["8 $ M 8   ", "0 5 @ ( M & M 0 ", "$ $ M * A 0 A 7 ", "& ?  M   "], answer: "A" } ]); addQuestions('5 >  M / ', [ { question: "5 >  M /  ? $ ( G * M 0  > 0  G 9 K $ G 9 H  ?", options: ["$ @ ( ", "& K ", " > 0 ", "* >   "], answer: "A" }, { question: " 0 M $ C 5 >  M /  > & > 9 0 #  M / > 9 H ?", options: ["0 > .  > $ > 9 H ", "0 > . 8 G  > / >  > $ > 9 H ", "0 > .  > / > ", "0 > .  > ( > "], answer: "A" }, { question: " 0 M . 5 >  M /  > & > 9 0 #  M / > 9 H ?", options: ["0 > . 8 G  > / >  > $ > 9 H ", "0 > .  > $ > 9 H ", "0 > .  > / > ", "0 > .  > ( > "], answer: "A" } ]); addQuestions('6 , M & 0 B * ', [ { question: "6 , M & 0 B *  ? 8 G  9 $ G 9 H  ?", options: ["6 , M &  G 0 B * >  $ 0 ", "6 , M &  >  0 M % ", "6 , M &  > 2 ?   ", "6 , M &  > 5  ( "], answer: "A" }, { question: "'0 > . ' 6 , M &  > 0 B *  M / > 9 H ?", options: ["0 > . , 0 > . L , 0 > . >  ", "0 > . , 0 > . , 0 > . ", "0 > . , 0 > .  , 0 > . G # ", "0 > . , 0 > . > / , 0 > . > $ M "], answer: "A" }, { question: "'+ 2 ' 6 , M &  > 0 B *  M / > 9 H ?", options: ["+ 2 . M , + 2 G , + 2 > ( ? ", "+ 2 , + 2 L , + 2 >  ", "+ 2 , + 2  , + 2 G # ", "+ 2 , + 2 > / , + 2 > $ M "], answer: "A" } ]); addQuestions('8 . > 8 ', [ { question: "8 . > 8  ? $ ( G * M 0  > 0  G 9 K $ G 9 H  ?", options: [" 9 ", " > 0 ", "* >   ", "8 > $ "], answer: "A" }, { question: "$ $ M * A 0 A 7 8 . > 8  > & > 9 0 #  M / > 9 H ?", options: ["0 >  * A $ M 0 ", "$ M 0 ? - A 5 ( ", "( @ 2  . 2 ", "5 ? & M / > 2 / "], answer: "A" }, { question: "& M 5  & M 5 8 . > 8  > & > 9 0 #  M / > 9 H ?", options: ["0 > . -2  M 7 M . # ", "0 >  * A $ M 0 ", "$ M 0 ? - A 5 ( ", "( @ 2  . 2 "], answer: "A" } ]); addQuestions(' 2   > 0 ', [ { question: " 2   > 0  ? $ ( G * M 0  > 0  G 9 K $ G 9 H  ?", options: ["& K ", "$ @ ( ", " > 0 ", "* >   "], answer: "A" }, { question: " * . >  2   > 0  > & > 9 0 #  M / > 9 H ?", options: ["  & M 0 8 > . A  ", "  & M 0 . A  ", ". A    & M 0 ", "  & M 0  @  ? 0 # "], answer: "A" }, { question: "0 B *   2   > 0  > & > 9 0 #  M / > 9 H ?", options: ["  & M 0 . A  ", "  & M 0 8 > . A  ", ". A    & M 0 ", "  & M 0  @  ? 0 # "], answer: "A" } ]); addQuestions(' 5 ? / K   5  2 G   K   @ 0  ( >   ', [ { question: "$ A 2 8 @ & > 8  @ 0  ( >  L ( 8 @ 9 H ?", options: ["0 > .  0 ? $ . > ( 8 ", "8 B 0 8 >  0 ", "* & M . > 5 $ ", ". ' A 6 > 2 > "], answer: "A" }, { question: "8 B 0 & > 8  @ 0  ( >  L ( 8 @ 9 H ?", options: ["8 B 0 8 >  0 ", "0 > .  0 ? $ . > ( 8 ", "* & M . > 5 $ ", ". ' A 6 > 2 > "], answer: "A" }, { question: "* M 0 G .   &  @ 0  ( >  L ( 8 @ 9 H ?", options: [" K & > ( ", ". ' A 6 > 2 > ", "* & M . > 5 $ ", "8 B 0 8 >  0 "], answer: "A" } ]); // ----- PEDAGOGY TOPICS (32-42) - Updated as per user request ----- addQuestions(' ' ?  .  5   0 M  ( ', [ { question: " ' ?  .  0  0 M  ( . G   M / >   $ 0 9 H ?", options: [" ' ?  . 8  G $ ,  0 M  (   G $ ", " ' ?  .   G $ ,  0 M  ( 8  G $ ", "& K ( K  8 . > ( ", "& K ( K   2  ( 9 @  "], answer: "A" }, { question: "- > 7 >  0 M  (  > * M 0 >  C $ ?  $ 0 @  >  M / > 9 H ?", options: ["* 0 ? 5 G 6 ", "* > M / * A 8 M $  ", "5 M / >  0 # ", " - M / > 8 "], answer: "A" }, { question: " ' ?  . . G   ? 8  > . 9 $ M 5 9 H ?", options: [" ( A  0 # ", " ( A - 5 ", " ( A 6 > 8 ( ", " ( A . > ( "], answer: "A" } ]); addQuestions('- > 7 > 6 ?  M 7 #  G 8 ? & M ' >  $ ', [ { question: "- > 7 > 6 ?  M 7 #  > . A  M / 8 ? & M ' >  $  M / > 9 H ?", options: ["8  * M 0 G 7 # ", "5 M / >  0 # ", " - M / > 8 ", "0  ( > "], answer: "A" }, { question: ", > 2  G ( M & M 0 ? $ 6 ?  M 7 # . G   ? 8 * 0  K 0 & ? / >  > $ > 9 H ?", options: [", > 2   @ 0 A  ? ", "6 ?  M 7   @ 0 A  ? ", "* > M /  M 0 . ", "* 0 @  M 7 > "], answer: "A" }, { question: "- > 7 > 6 ?  M 7 # . G   ? 8 5 ? ' ?  K . 9 $ M 5 & ? / >  > $ > 9 H ?", options: ["* M 0 $ M /  M 7 5 ? ' ? ", " ( A 5 > & 5 ? ' ? ", "5 M / >  0 # 5 ? ' ? ", "* ( 5 ? ' ? "], answer: "A" } ]); addQuestions('- > 7 > &  M 7 $ >  > 5 ?  > 8 ', [ { question: "- > 7 > &  M 7 $ >  G  ? $ ( G  L 6 2 9 H  ?", options: [" > 0 ", "$ @ ( ", "& K ", "* >   "], answer: "A" }, { question: "6 M 0 5 #  L 6 2  > 5 ?  > 8  ? 8 8 G 9 K $ > 9 H ?", options: ["8 A ( ( G 8 G ", ", K 2 ( G 8 G ", "* " < ( G 8 G ", "2 ?  ( G 8 G "], answer: "A" }, { question: "2 G  (  L 6 2  > 5 ?  > 8  ? 8 8 G 9 K $ > 9 H ?", options: ["2 ?  ( G 8 G ", "* " < ( G 8 G ", "8 A ( ( G 8 G ", ", K 2 ( G 8 G "], answer: "A" } ]); addQuestions('- > 7 >  ' ?  . . G  5 M / >  0 #  @ - B . ?  > ', [ { question: "5 M / >  0 #  > . A  M /  > 0 M /  M / > 9 H ?", options: ["( ? / . K   >  M  > ( ", " - M / > 8 ", "* ( ", "2 G  ( "], answer: "A" }, { question: "5 M / >  0 # 6 ?  M 7 #  > & M & G 6 M /  M / > 9 H ?", options: ["6 A & M ' - > 7 > ", "* M 0 5 > 9 ", "6 , M & > 5 2 @ ", "  M  > 0 # "], answer: "A" }, { question: "5 M / >  0 #  ? 8 * M 0  > 0  >  M  > ( 9 H ?", options: ["( ? / . > $ M .  ", " ( A - 5 > $ M .  ", " ( A  0 # > $ M .  ", "8 M . 0 # > $ M .  "], answer: "A" } ]); addQuestions('- > 7 >   L 6 2 K   > 5 ?  > 8 ', [ { question: "- > 7 >   L 6 2  ? $ ( G 9 H  ?", options: [" > 0 ", "$ @ ( ", "& K ", "* >   "], answer: "A" }, { question: "8 , 8 G * 9 2 G  ? 8  L 6 2  > 5 ?  > 8 9 K $ > 9 H ?", options: ["6 M 0 5 # ", "5 >  ( ", "* ( ", "2 G  ( "], answer: "A" }, { question: "  $ ? .  L 6 2  L ( 8 > 9 H ?", options: ["2 G  ( ", "6 M 0 5 # ", "5 >  ( ", "* ( "], answer: "A" } ]); addQuestions('6 ?  M 7 # 8 9 > /  - 8 > .  M 0 @ ', [ { question: "6 ?  M 7 # 8 9 > /  8 > .  M 0 @  > & M & G 6 M /  M / > 9 H ?", options: ["6 ?  M 7 #  K * M 0 - > 5 @ , ( > ( > ", "0  ( > ", "* 0 @  M 7 > ", " - M / > 8 "], answer: "A" }, { question: "& C 6 M / 8 9 > /  8 > .  M 0 @  > & > 9 0 #  M / > 9 H ?", options: [" ? $ M 0 ", "* A 8 M $  ", " G * ", "0 G ! ? / K "], answer: "A" }, { question: "6 M 0 5 M / 8 9 > /  8 > .  M 0 @  > & > 9 0 #  M / > 9 H ?", options: ["0 G ! ? / K ", " ? $ M 0 ", ". I ! 2 ", ". > (  ? $ M 0 "], answer: "A" } ]); addQuestions('- > 7 > 6 ?  M 7 # . G  . B 2 M / >   ( ', [ { question: ". B 2 M / >   (  > . A  M / & M & G 6 M /  M / > 9 H ?", options: ["6 ?  M 7 > 0 M % @  @ * M 0  $ ? ", "6 ?  M 7   @ * M 0  $ ? ", "* > M /  M 0 . ", "5 ? & M / > 2 / "], answer: "A" }, { question: "0  ( > $ M .  . B 2 M / >   (  ,  ? / >  > $ > 9 H ?", options: ["6 ?  M 7 #  G & L 0 > ( ", "6 ?  M 7 #  G   $ ", "6 ?  M 7 #  G 6 A 0 B ", "* 0 @  M 7 >  G , > & "], answer: "A" }, { question: "/ K  > $ M .  . B 2 M / >   (  > & M & G 6 M /  M / > 9 H ?", options: [" M 0 G ! & G ( > ", "8 A ' > 0 ", "( ? & > ( ", "/ K  ( > "], answer: "A" } ]); addQuestions(',  M  K  . G  * " < ( G - 2 ?  ( G 8 . M , ( M ' @ 5 ?  > 0 ', [ { question: "! ? 8 M 2 G  M 8 ? / >  M / > 9 H ?", options: ["* " < ( G . G   ? ( >  ", "2 ?  ( G . G   ? ( >  ", ", K 2 ( G . G   ? ( >  ", "8 A ( ( G . G   ? ( >  "], answer: "A" }, { question: "! ? 8 M  M 0 > + ? / >  M / > 9 H ?", options: ["2 ?  ( G . G   ? ( >  ", "* " < ( G . G   ? ( >  ", ", K 2 ( G . G   ? ( >  ", "8 A ( ( G . G   ? ( >  "], answer: "A" }, { question: " ( 5 ?  > 0 K   >  > 0 #  M / > 9 K 8  $ > 9 H ?", options: [". 8 M $ ? 7 M  @ / ", "6 > 0 @ 0 ?  ", ". > ( 8 ?  ", "8 > . >  ?  "], answer: "A" } ]); addQuestions(' *  > 0 > $ M .  6 ?  M 7 # ', [ { question: " *  > 0 > $ M .  6 ?  M 7 #  > & M & G 6 M /  M / > 9 H ?", options: [" ? ( >  / K   K & B 0  0 ( > ", " - M / > 8  0 ( > ", "* 0 @  M 7 > 2 G ( > ", " M 0 G ! & G ( > "], answer: "A" }, { question: " *  > 0 > $ M .  6 ?  M 7 #  , & ? / >  > $ > 9 H ?", options: [" ? ( >  / K  * 0 ", "9 . G 6 > ", " - @ ( 9 @  ", "5 0 M 7  G   $ "], answer: "A" }, { question: " *  > 0 > $ M .  6 ?  M 7 # . G   ? 8 * 0 ' M / > ( & ? / >  > $ > 9 H ?", options: ["5 M /  M $ ?  $  5 6 M /  $ > ", "8 > . B 9 ?   5 6 M /  $ > ", "* > M /  M 0 . ", "* 0 @  M 7 > "], answer: "A" } ]); addQuestions('- > 7 > 6 ?  M 7 # . G  , 9 A - > 7 ?  $ > ', [ { question: ", 9 A - > 7 ?  $ >  >  0 M %  M / > 9 H ?", options: ["  - > 7 >    >  M  > ( ", "  - > 7 >  >  M  > ( ", "& K - > 7 >    >  M  > ( ", " K  - > 7 > ( 9 @  "], answer: "A" }, { question: ", 9 A - > 7 ?  $ >  > 2 > -  M / > 9 H ?", options: ["8   M  > ( > $ M .  5 ?  > 8 ", "8 @ . ? $ 5 ?  > 8 ", " 5 0 K ' ", "- M 0 . "], answer: "A" }, { question: ", 9 A - > 7 ?  5 0 M  . G  6 ?  M 7 #  H 8 > 9 K ( >  > 9 ?  ?", options: ["8 . > 5 G 6 @ ", " 2  ", " K 0 ", "8 0 2 "], answer: "A" } ]); addQuestions(' > 5 M / 6 ?  M 7 # ', [ { question: " > 5 M / 6 ?  M 7 #  > . A  M / & M & G 6 M /  M / > 9 H ?", options: ["0 8 > ( A - B $ ? ", "5 M / >  0 # ", "6 , M & > 5 2 @ ", " - M / > 8 "], answer: "A" }, { question: " > 5 M / 6 ?  M 7 # . G   ? 8  > . 9 $ M 5 9 H ?", options: ["- > 5 * B 0 M # * ( ", "0  ( > ", "5 ? 6 M 2 G 7 # ", " ( A 5 > & "], answer: "A" }, { question: " > 5 M / 6 ?  M 7 #  @  L ( 8 @ 5 ? ' ? * M 0 - > 5 @ 9 H ?", options: ["* M 0 - > 5 > $ M .  ", "5 M / >  0 # ?  ", " ( A 5 > & > $ M .  ", "5 ? 6 M 2 G 7 # > $ M .  "], answer: "A" } ]); // Topic keys (42 topics) - Updated as per user request const topicKeys = [ // Hindi Language (1-31) " * ? $  & M / >  6 ", " * ? $ * & M / >  6 ", "9 ? ( M & @ 5 0 M # . > 2 > (8 M 5 0 , 5 M /   ( )", "5 0 M # K   G . G 2 8 G . > $ M 0 ?  $ % >  . > $ M 0 ?  6 , M & K   @ * 9  > ( ", "5 >  M / 0  ( > ", "9 ? ( M & @  @ 8 - @ ' M 5 ( ? / K   G * > 0 8 M * 0 ?    $ 0  @  > (  > 0 @ ", "' M 5 ( ? / >  , 5 0 M # ,  ( A 8 M 5 > 0 ,  ( A ( > 8 ?   5   ( M & M 0 , ? ( M & A . G   ( M $ 0 ", "5 ? 0 > .  ? ( M 9 K   > * M 0 / K  ( 2 M * 5 ? 0 > . ,  0 M ' 5 ? 0 > . , * B 0 M # 5 ? 0 > . , * M 0 6 M ( 5 >   , 5 ? 8 M . / , K '  )", "8 . > ( ' M 5 ( ? / K  5 > 2 G 6 , M & ", "5 ? 2 K . 6 , M & ", "* 0 M / > / 5 >  @ 6 , M & ", "5 >  M / >  6 K   G 2 ?    6 , M & ", "8   M  >  5  8  G - G & ", "8 0 M 5 ( > .  5  8  G - G & ", " M 0 ? / >  5  8  G - G & ", "5 ? 6 G 7 #  5  8  G - G & ", "5  ( ", "2 ?   ", " > 2 ", " > 0  ", "* M 0 $ M / / ", " * 8 0 M  ", "$ $ M 8 .  5  $ & M - 5 ", "5 0 M $ ( @ ", "2 K  K  M $ ? / >   5  . A 9 > 5 0 K   G  0 M % ", "8  ' ? ", "5 >  M / ", "6 , M & 0 B * ", "8 . > 8 ", " 2   > 0 ", " 5 ? / K   5  2 G   K   @ 0  ( >   ", // Pedagogy (32-42) " ' ?  .  5   0 M  ( ", "- > 7 > 6 ?  M 7 #  G 8 ? & M ' >  $ ", "- > 7 > &  M 7 $ >  > 5 ?  > 8 ", "- > 7 >  ' ?  . . G  5 M / >  0 #  @ - B . ?  > ", "- > 7 >   L 6 2 K   > 5 ?  > 8 ", "6 ?  M 7 # 8 9 > /  - 8 > .  M 0 @ ", "- > 7 > 6 ?  M 7 # . G  . B 2 M / >   ( ", ",  M  K  . G  * " < ( G - 2 ?  ( G 8 . M , ( M ' @ 5 ?  > 0 ", " *  > 0 > $ M .  6 ?  M 7 # ", "- > 7 > 6 ?  M 7 # . G  , 9 A - > 7 ?  $ > ", " > 5 M / 6 ?  M 7 # " ]; // ===================================================== // UI TEXT (All in Hindi) // ===================================================== const uiText = { hi: { mainTitle: "=ØÝÜ CTET Paper 2 - 9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0  - M / > 8 8 G   ( 0 G  0 ", mainSubtitle: "CTET Paper 2 (  M  * M 0 > % . ?  8 M $ 0 ) 9 G $ A 9 ?  & @ - > 7 > , 5 M / >  0 # , 8 > 9 ? $ M /  5  6 ?  M 7 # 5 ? ' ? / K   > 5 ? 7 / 5 > 0  - M / > 8 ", startTitle: "=ØÝÜ 9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0 -  - M / > 8 8 G   ( 0 G  0 ", startDesc: "CTET Paper 2 9 G $ A 9 ?  & @ - > 7 > , 5 M / >  0 # , 8 > 9 ? $ M /  5  6 ?  M 7 # 5 ? ' ? / K   > 5 ? 8 M $ C $  - M / > 8 8 G  $ H / > 0  0 G  ", startBtn: " - M / > 8 8 G  , ( > ( > 6 A 0 B  0 G  ", practiceTypeTitle: " - M / > 8  > * M 0  > 0  A ( G  ", practiceTypeDesc: " * ( @ $ H / > 0 @  G  ( A 8 > 0  - M / > 8 8 G   A ( G  :", optChapterTitle: "5 ? 7 / > ( A 8 > 0  - M / > 8 ", optChapterDesc: " ? 8 @ 5 ? 6 G 7 5 ? 7 /  >  9 (  - M / > 8  0 G  ", optFullTitle: "* B 0 M # 2  , >   G 8 M  ", optFullDesc: "CTET * H  0 M ( * 0  ' > 0 ? $ 50 * M 0 6 M ( K   > 8 G  ", optPrevTitle: "* ?  2 G 5 0 M 7 K   G * M 0 6 M ( ", optPrevDesc: "* ?  2 @ TET * 0 @  M 7 >   * 0  ' > 0 ? $ * M 0 6 M ( ", backStartBtn: "* @  G  >   ", proceedBtn: "5 ? 7 /  A ( G  ’!", chapterTitle: "=ØÚÜ 9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0 - 5 ? 7 /  A ( G  ", qCountTitle: "* M 0 6 M ( K   @ 8   M / >  A ( G  ", backPracticeBtn: "* @  G ", generateAssignBtn: " ? ( >  8 M $ 0  A ( G  ’!", levelTitle: " ? ( >  8 M $ 0  A ( G  ", levelDesc: "CTET Paper 2 * 0 @  M 7 >  G  ( A 8 > 0 8 M $ 0  A ( G  :", l1Title: "Level 1", l1Sub: ", A ( ? / > & @ (* M 0 > 0  - ?  )", l2Title: "Level 2", l2Sub: ". ' M / . (CTET 8 M $ 0 )", l3Title: "Level 3", l3Sub: "  M  (6 ?  M 7  * > $ M 0 $ > )", timerTitle: "8 . / 8 @ . >  A ( G  ", t30: "30 . ? (  ", t45: "45 . ? (  ", t60: "60 . ? (  ", t90: "90 . ? (  ", backChaptersBtn: "5 ? 7 / K  * 0 5 > * 8 ", generateFinalBtn: " - M / > 8 8 G   ( 0 G   0 G  ", fullPaper: "8 - @ 5 ? 7 / (* B 0 M # * > M /  M 0 . - 42  ' M / > / )", noTopicAlert: " C * / >  . 8 G  .   5 ? 7 /  A ( G  !", noLevelAlert: " C * / >  ? ( >  8 M $ 0  A ( G  !", noPracticeAlert: " C * / >  - M / > 8  > * M 0  > 0  A ( G  !", instructions: "=ØÌÜ ( ? 0 M & G 6 :", inst1: " 8 8 G  . G  {count} , 9 A 5 ?  2 M * @ / * M 0 6 M ( 9 H  d ", inst2: "* M 0 $ M / G  * M 0 6 M (  G  > 0 5 ?  2 M * ,  G 5 2   8 9 @ d ", inst3: "8 . / 8 @ . > : {time} . ? (  ", inst4: "CTET Paper 2 (  M  * M 0 > % . ?  8 M $ 0 ) 9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0 9 G $ A  - M / > 8 d ", inst5: "* M 0 $ M / G  * M 0 6 M ( 1     > 9 H ,  K  ( ?  G  ? 5 . > 0 M  ?   ( 9 @  d ", mcqHeading: "=ØÝÜ 9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0 * M 0 6 M ( ", answerKey: "' $ M $ 0  A   @ (Answer Key)", qNo: "* M 0 6 M (  M 0 .", ans: " $ M $ 0 ", print: "* M 0 ?    0 G  ", download: "PDF ! > ( 2 K !  0 G  ", newSet: "( / >  - M / > 8 8 G  ", subjectLabel: "9 ?  & @ - > 7 >  5  6 ?  M 7 > 6 > 8 M $ M 0 ", noQuestions: "* M 0 6 M ( * 2 , M ' ( 9 @  9 H  d  C * / >  ( M / 5 ? 7 /  A ( G  d " } }; // ===================================================== // DOM REFS & STATE // ===================================================== let currentLang = 'hi'; const startContainer = document.getElementById('startContainer'); const startScreen = document.getElementById('startScreen'); const practiceTypeSelection = document.getElementById('practiceTypeSelection'); const chapterSelection = document.getElementById('chapterSelection'); const levelSelection = document.getElementById('levelSelection'); const generatedPaperContainer = document.getElementById('generatedPaperContainer'); const startGeneratingBtn = document.getElementById('startGeneratingBtn'); const backToStartBtn = document.getElementById('backToStartBtn'); const proceedToChaptersBtn = document.getElementById('proceedToChaptersBtn'); const backToPracticeTypeBtn = document.getElementById('backToPracticeTypeBtn'); const generateAssignmentBtn = document.getElementById('generateAssignmentBtn'); const backToChaptersBtn = document.getElementById('backToChaptersBtn'); const generateFinalBtn = document.getElementById('generateFinalBtn'); const level1Btn = document.getElementById('level1Btn'); const level2Btn = document.getElementById('level2Btn'); const level3Btn = document.getElementById('level3Btn'); const decreaseCount = document.getElementById('decreaseCount'); const increaseCount = document.getElementById('increaseCount'); const questionCountSpan = document.getElementById('questionCount'); const homeIconBtn = document.getElementById('homeIconBtn'); let selectedTopics = []; let selectedLevel = null; let selectedPracticeType = null; let questionCount = 50; let timeLimit = 60; // ===================================================== // UI LANGUAGE APPLICATION // ===================================================== function applyUILanguage(lang) { const t = uiText[lang]; document.getElementById('mainTitle').textContent = t.mainTitle; document.getElementById('mainSubtitle').textContent = t.mainSubtitle; document.getElementById('startTitle').textContent = t.startTitle; document.getElementById('startDesc').textContent = t.startDesc; document.getElementById('startBtnText').textContent = t.startBtn; document.getElementById('practiceTypeTitle').textContent = t.practiceTypeTitle; document.getElementById('practiceTypeDesc').textContent = t.practiceTypeDesc; document.getElementById('optChapterTitle').textContent = t.optChapterTitle; document.getElementById('optChapterDesc').textContent = t.optChapterDesc; document.getElementById('optFullTitle').textContent = t.optFullTitle; document.getElementById('optFullDesc').textContent = t.optFullDesc; document.getElementById('optPrevTitle').textContent = t.optPrevTitle; document.getElementById('optPrevDesc').textContent = t.optPrevDesc; document.getElementById('backStartBtnText').textContent = t.backStartBtn; document.getElementById('proceedBtnText').textContent = t.proceedBtn; document.getElementById('chapterTitle').textContent = t.chapterTitle; document.getElementById('qCountTitle').textContent = t.qCountTitle; document.getElementById('backPracticeBtnText').textContent = t.backPracticeBtn; document.getElementById('generateAssignBtnText').textContent = t.generateAssignBtn; document.getElementById('levelTitle').textContent = t.levelTitle; document.getElementById('levelDesc').textContent = t.levelDesc; document.getElementById('l1Title').textContent = t.l1Title; document.getElementById('l1Sub').textContent = t.l1Sub; document.getElementById('l2Title').textContent = t.l2Title; document.getElementById('l2Sub').textContent = t.l2Sub; document.getElementById('l3Title').textContent = t.l3Title; document.getElementById('l3Sub').textContent = t.l3Sub; document.getElementById('timerTitle').textContent = t.timerTitle; document.getElementById('t30').textContent = t.t30; document.getElementById('t45').textContent = t.t45; document.getElementById('t60').textContent = t.t60; document.getElementById('t90').textContent = t.t90; document.getElementById('backChaptersBtnText').textContent = t.backChaptersBtn; document.getElementById('generateFinalBtnText').textContent = t.generateFinalBtn; // Reload topics to update labels loadTopics(); // If paper is already generated, re-render if (!generatedPaperContainer.classList.contains('hidden')) { if (selectedTopics.length > 0 && selectedLevel) { generatePaper(selectedTopics, selectedLevel, currentLang); } } } // ===================================================== // CORE LOGIC // ===================================================== function loadTopics() { const container = document.getElementById('hindiTopicsContainer'); const t = uiText[currentLang]; const fullPaperLabel = "' 8 - @ 5 ? 7 / (* B 0 M # * > M /  M 0 . - 42  ' M / > / )"; container.innerHTML = `<div class="checkbox-item"><input type="checkbox" id="fullPaper" name="topic" value="8 - @ 5 ? 7 / "><label for="fullPaper">${fullPaperLabel}</label></div>`; topicKeys.forEach((key, idx) => { const id = `topic${idx}`; container.innerHTML += `<div class="checkbox-item"><input type="checkbox" id="${id}" name="topic" value="${key}"><label for="${id}">=ØÖÜ ${key}</label></div>`; }); document.getElementById('fullPaper')?.addEventListener('change', (e) => { const checkboxes = document.querySelectorAll('input[name="topic"]:not(#fullPaper)'); checkboxes.forEach(cb => cb.disabled = e.target.checked); if(e.target.checked) checkboxes.forEach(cb => cb.checked = false); }); } function getSelectedTopics() { const full = document.getElementById('fullPaper'); if(full && full.checked) return [...topicKeys]; return Array.from(document.querySelectorAll('input[name="topic"]:checked')).filter(cb => cb.id !== 'fullPaper').map(cb => cb.value); } function getRandomQuestions(topics, level, count) { let allQuestions = []; topics.forEach(topic => { if(questionBank[topic] && questionBank[topic][`level${level}`]) { allQuestions = allQuestions.concat(questionBank[topic][`level${level}`]); } }); if(allQuestions.length === 0) { const t = uiText[currentLang]; return Array(count).fill({ question: t.noQuestions, options: ["A", "B", "C", "D"], answer: "A" }); } allQuestions = allQuestions.sort(() => Math.random() - 0.5); return allQuestions.slice(0, Math.min(count, allQuestions.length)); } function showPracticeTypeSelection() { startScreen.classList.add('hidden'); practiceTypeSelection.classList.remove('hidden'); } function backToStart() { generatedPaperContainer.classList.add('hidden'); startContainer.classList.remove('hidden'); practiceTypeSelection.classList.add('hidden'); chapterSelection.classList.add('hidden'); levelSelection.classList.add('hidden'); startScreen.classList.remove('hidden'); selectedTopics = []; selectedLevel = null; selectedPracticeType = null; questionCount = 50; timeLimit = 60; questionCountSpan.textContent = "50"; document.querySelectorAll('.option-card').forEach(c => c.classList.remove('selected')); document.querySelectorAll('.timer-btn').forEach(b => b.classList.remove('selected')); if(document.querySelector('.timer-btn[data-time="60"]')) document.querySelector('.timer-btn[data-time="60"]').classList.add('selected'); level1Btn.classList.remove('selected'); level2Btn.classList.remove('selected'); level3Btn.classList.remove('selected'); } function backToPracticeType() { chapterSelection.classList.add('hidden'); practiceTypeSelection.classList.remove('hidden'); } function backToChapters() { levelSelection.classList.add('hidden'); chapterSelection.classList.remove('hidden'); } function showChapters() { const t = uiText[currentLang]; if(!selectedPracticeType) { alert(t.noPracticeAlert); return; } practiceTypeSelection.classList.add('hidden'); chapterSelection.classList.remove('hidden'); loadTopics(); } function showLevelSelection() { const t = uiText[currentLang]; selectedTopics = getSelectedTopics(); if(selectedTopics.length === 0) { alert(t.noTopicAlert); return; } chapterSelection.classList.add('hidden'); levelSelection.classList.remove('hidden'); } function selectLevel(level) { level1Btn.classList.remove('selected'); level2Btn.classList.remove('selected'); level3Btn.classList.remove('selected'); document.getElementById(`level${level}Btn`).classList.add('selected'); selectedLevel = level; } level1Btn.onclick = () => selectLevel(1); level2Btn.onclick = () => selectLevel(2); level3Btn.onclick = () => selectLevel(3); decreaseCount.onclick = () => { if(questionCount > 10) { questionCount -= 5; questionCountSpan.textContent = questionCount; } }; increaseCount.onclick = () => { if(questionCount < 100) { questionCount += 5; questionCountSpan.textContent = questionCount; } }; document.querySelectorAll('.option-card').forEach(card => { card.addEventListener('click', () => { document.querySelectorAll('.option-card').forEach(c => c.classList.remove('selected')); card.classList.add('selected'); selectedPracticeType = card.dataset.type; if(selectedPracticeType === 'full-length') { questionCount = 50; questionCountSpan.textContent = "50"; } else if(selectedPracticeType === 'previous-year') { questionCount = 45; questionCountSpan.textContent = "45"; } }); }); document.querySelectorAll('.timer-btn').forEach(btn => { btn.addEventListener('click', () => { document.querySelectorAll('.timer-btn').forEach(b => b.classList.remove('selected')); btn.classList.add('selected'); timeLimit = parseInt(btn.dataset.time); }); }); function getPracticeTypeName(type) { const t = uiText[currentLang]; if(type === 'chapter-wise') return '=ØÖÜ ' + t.optChapterTitle; if(type === 'full-length') return '=ØÝÜ ' + t.optFullTitle; if(type === 'previous-year') return 'ó# ' + t.optPrevTitle; return '=ØÝÜ ' + t.subjectLabel; } function generatePaper(topics, level, lang) { const t = uiText[lang]; const mcqs = getRandomQuestions(topics, level, questionCount); let paperHTML = ` <div class="header" style="background: linear-gradient(135deg, #e65100, #bf360c);"> <h2>=ØÝÜ CTET Paper 2 - ${t.subjectLabel}  - M / > 8 8 G  </h2> <h3>${getPracticeTypeName(selectedPracticeType)}</h3> <p>${level === 1 ? t.l1Title : level === 2 ? t.l2Title : t.l3Title} - ${level === 1 ? t.l1Sub : level === 2 ? t.l2Sub : t.l3Sub} | 8 . / : ${timeLimit} . ? (  </p> <p> A 2 * M 0 6 M ( : ${questionCount}</p> </div> <div class="content-area"> <div class="instructions"> <p><strong>${t.instructions}</strong></p> <ol> <li>${t.inst1.replace('{count}', questionCount)}</li> <li>${t.inst2}</li> <li>${t.inst3.replace('{time}', timeLimit)}</li> <li>${t.inst4}</li> <li>${t.inst5}</li> </ol> </div> <div class="question-section"> <div class="section-heading" style="font-size:1.2rem; font-weight:bold; margin-bottom:15px;">${t.mcqHeading}</div>`; let qNum = 1; mcqs.forEach(mcq => { paperHTML += `<div class="question"><div class="question-text">${qNum}. ${mcq.question}</div><div class="option">A. ${mcq.options[0]}</div><div class="option">B. ${mcq.options[1]}</div><div class="option">C. ${mcq.options[2]}</div><div class="option">D. ${mcq.options[3]}</div></div>`; qNum++; }); paperHTML += `</div><div class="answer-sheet"><h3 class="section-title">${t.answerKey}</h3><table class="answer-table"><thead><tr><th>${t.qNo}</th><th>${t.ans}</th><th>${t.qNo}</th><th>${t.ans}</th><th>${t.qNo}</th><th>${t.ans}</th></tr></thead><tbody>`; for(let i=0; i<mcqs.length; i+=3) { paperHTML += `<tr>`; for(let j=0; j<3; j++) { if(i+j < mcqs.length) paperHTML += `<td>${i+j+1}</td><td>${mcqs[i+j].answer}</td>`; else paperHTML += `<td></td><td></td>`; } paperHTML += `</tr>`; } paperHTML += `</tbody></table></div><div class="action-buttons"><button class="btn btn-primary" id="printBtn"><i class="fas fa-print"></i> ${t.print}</button><button class="btn btn-success" id="downloadBtn"><i class="fas fa-download"></i> ${t.download}</button><button class="btn btn-danger" id="newAssignmentBtn"><i class="fas fa-plus"></i> ${t.newSet}</button></div></div>`; generatedPaperContainer.innerHTML = paperHTML; generatedPaperContainer.classList.remove('hidden'); startContainer.classList.add('hidden'); document.getElementById('printBtn')?.addEventListener('click', () => window.print()); document.getElementById('downloadBtn')?.addEventListener('click', downloadPDF); document.getElementById('newAssignmentBtn')?.addEventListener('click', () => backToStart()); } async function downloadPDF() { const element = document.getElementById('generatedPaperContainer'); const tempDiv = document.createElement('div'); tempDiv.style.position = 'absolute'; tempDiv.style.left = '-9999px'; tempDiv.style.width = '794px'; tempDiv.style.backgroundColor = 'white'; tempDiv.style.padding = '20px'; tempDiv.innerHTML = element.innerHTML; document.body.appendChild(tempDiv); try { const pdf = new jsPDF('p', 'mm', 'a4'); const pageWidth = pdf.internal.pageSize.getWidth() - 25.4; let position = 12.7; let remainingHeight = tempDiv.scrollHeight; let pageNum = 1; while (remainingHeight > 0) { const canvas = await html2canvas(tempDiv, { scale: 1.5, backgroundColor: '#ffffff' }); const imgData = canvas.toDataURL('image/jpeg', 0.92); if(pageNum > 1) pdf.addPage(); pdf.addImage(imgData, 'JPEG', 12.7, 12.7, pageWidth, canvas.height * pageWidth / canvas.width); position += 277; remainingHeight -= 277 * 3.78; pageNum++; } pdf.save('CTET_Paper2_Hindi_Pedagogy_Practice_Set.pdf'); } catch(e) { console.error(e); alert("PDF generation error"); } finally { if(tempDiv) document.body.removeChild(tempDiv); } } // ===================================================== // EVENT BINDINGS // ===================================================== startGeneratingBtn.onclick = showPracticeTypeSelection; backToStartBtn.onclick = backToStart; proceedToChaptersBtn.onclick = showChapters; backToPracticeTypeBtn.onclick = backToPracticeType; generateAssignmentBtn.onclick = showLevelSelection; backToChaptersBtn.onclick = backToChapters; generateFinalBtn.onclick = function() { const t = uiText[currentLang]; if(!selectedLevel) { alert(t.noLevelAlert); return; } generatePaper(selectedTopics, selectedLevel, currentLang); }; homeIconBtn.onclick = backToStart; // Default timer selection document.querySelector('.timer-btn[data-time="60"]')?.classList.add('selected'); // Initial load applyUILanguage('hi'); </script> </body> </html>