{"id":2213,"date":"2026-06-11T07:50:18","date_gmt":"2026-06-11T07:50:18","guid":{"rendered":"https:\/\/allenglish4u.com\/toefl-primary-step-2-practice-test-2-listening\/"},"modified":"2026-06-27T19:41:19","modified_gmt":"2026-06-27T19:41:19","slug":"toefl-primary-step-2-practice-test-2-listening","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/toefl-primary-step-2-practice-test-2-listening\/","title":{"rendered":"TOEFL Primary Step 2 \u2014 Practice Test 2 \u2014 Listening"},"content":{"rendered":"<style>\n.ae4u-listen{--paper:#FAF6EE;--ink:#0F172A;--ink-soft:#475569;--accent:#0161FF;--ok:#0EA66B;--bad:#E11D48;--cyan:#06B6C4;--orange:#FF9D2E;--line:#E7E2D2;--card:#fff;font-family:'Plus Jakarta Sans',ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--paper);padding:24px 18px 60px;box-sizing:border-box;line-height:1.55;font-size:17px}\n.ae4u-listen *,.ae4u-listen *::before,.ae4u-listen *::after{box-sizing:border-box}\n.ae4u-listen .wrap{max-width:880px;margin:0 auto}\n.ae4u-listen .crumb{font-size:13px;color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}\n.ae4u-listen h1{font-family:'Baloo 2','Plus Jakarta Sans',ui-sans-serif,system-ui;font-size:30px;line-height:1.15;margin:0 0 12px;color:var(--ink)}\n.ae4u-listen .lead{font-size:18px;color:var(--ink-soft);margin:0 0 14px;max-width:720px}\n.ae4u-listen .tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}\n.ae4u-listen .tag{background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 13px;font-size:13px;color:var(--ink-soft);font-weight:600}\n.ae4u-listen .progress-sticky{position:sticky;top:8px;z-index:50;background:rgba(250,246,238,.93);backdrop-filter:saturate(160%) blur(8px);border:1px solid var(--line);border-radius:18px;padding:10px 14px;margin:0 0 22px;display:flex;align-items:center;gap:12px;box-shadow:0 6px 20px rgba(0,0,0,.04)}\n.ae4u-listen .progress-sticky .ptxt{font-size:14px;font-weight:700;color:var(--ink);min-width:160px}\n.ae4u-listen .progress-sticky .ptxt .pct{color:var(--accent)}\n.ae4u-listen .pbar{flex:1;height:10px;background:#EEE8D8;border-radius:999px;overflow:hidden;position:relative}\n.ae4u-listen .pbar>i{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--cyan),var(--accent));border-radius:999px;transition:width .3s ease}\n.ae4u-listen .video-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;margin:0 0 24px;box-shadow:0 6px 20px rgba(0,0,0,.04)}\n.ae4u-listen .video-card h2{margin:0 0 6px;font-family:'Baloo 2';font-size:22px;color:var(--ink)}\n.ae4u-listen .video-card p{margin:0 0 12px;color:var(--ink-soft);font-size:15px}\n.ae4u-listen .yt-frame{position:relative;width:100%;padding-bottom:56.25%;border-radius:16px;overflow:hidden;background:#000}\n.ae4u-listen .yt-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}\n.ae4u-listen .section{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;margin:0 0 22px;box-shadow:0 6px 20px rgba(0,0,0,.04)}\n.ae4u-listen .section-head{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px;flex-wrap:wrap}\n.ae4u-listen .section-head h2{font-family:'Baloo 2';font-size:24px;margin:0;color:var(--ink);flex:1}\n.ae4u-listen .section-head .sec-badge{background:var(--cyan);color:#fff;font-weight:700;font-size:12px;padding:5px 10px;border-radius:999px;letter-spacing:.04em;text-transform:uppercase}\n.ae4u-listen .section-head .sec-score{font-weight:700;color:var(--ink);font-size:15px;background:#F4EFE0;border-radius:999px;padding:4px 12px}\n.ae4u-listen .part-block{margin-bottom:26px}\n.ae4u-listen .part-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}\n.ae4u-listen .part-title{font-family:'Baloo 2';font-size:20px;color:var(--accent);margin:0;flex:1}\n.ae4u-listen .pbadge{background:#EEF4FF;color:var(--accent);font-weight:700;font-size:13px;padding:3px 11px;border-radius:999px;border:1px solid #DCE7FF}\n.ae4u-listen .part-instr{color:var(--ink-soft);font-size:15px;margin:0 0 14px;background:#F8F4E5;padding:8px 12px;border-radius:8px;border-left:3px solid var(--orange)}\n.ae4u-listen .story-card{background:#FFF9E8;border:1px dashed #D9C788;border-radius:12px;padding:14px 16px;margin:8px 0 16px;font-size:15px;color:#5B4F33;line-height:1.7;display:none}\n.ae4u-listen .story-card.show{display:block}\n.ae4u-listen .story-toggle{background:transparent;border:1px solid var(--orange);color:var(--orange);font-weight:700;font-size:13px;padding:5px 11px;border-radius:8px;cursor:pointer;margin-bottom:8px}\n.ae4u-listen .story-toggle:hover{background:#FFF3DC}\n.ae4u-listen .qcard{background:#FBF8EE;border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:14px}\n.ae4u-listen .qcard.correct{background:#ECFDF3;border-color:#A7E8C4}\n.ae4u-listen .qcard.wrong{background:#FEF1F3;border-color:#F5BCC5}\n.ae4u-listen .qtext{font-weight:700;font-size:17px;margin-bottom:10px}\n.ae4u-listen .img-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:8px}\n.ae4u-listen .img-opt{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:2px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;transition:all .15s ease}\n.ae4u-listen .img-opt:hover{border-color:var(--accent);background:#F0F6FF}\n.ae4u-listen .img-opt input{display:none}\n.ae4u-listen .img-opt img{width:100%;height:auto;max-width:200px;display:block;border-radius:8px;background:#fff;aspect-ratio:1\/1;object-fit:cover}\n.ae4u-listen .img-opt .letter{font-weight:800;font-size:16px;color:var(--accent)}\n.ae4u-listen .img-opt.sel{border-color:var(--accent);background:#E1ECFF;box-shadow:0 4px 12px rgba(1,97,255,.18)}\n.ae4u-listen .img-opt.ok{border-color:var(--ok);background:#E9FCEF}\n.ae4u-listen .img-opt.no{border-color:var(--bad);background:#FFE8EC}\n@media(max-width:560px){.ae4u-listen .img-opt{padding:5px}.ae4u-listen .img-opt img{max-width:130px}.ae4u-listen .img-grid{gap:6px}}\n.ae4u-listen .text-list{display:flex;flex-direction:column;gap:8px}\n.ae4u-listen .text-opt{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border:2px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:all .15s ease;font-size:16.5px}\n.ae4u-listen .text-opt:hover{border-color:var(--accent);background:#F0F6FF}\n.ae4u-listen .text-opt input{display:none}\n.ae4u-listen .text-opt .op-let{font-weight:800;color:var(--accent);min-width:28px}\n.ae4u-listen .text-opt .op-txt{flex:1;color:var(--ink)}\n.ae4u-listen .text-opt.sel{border-color:var(--accent);background:#E1ECFF}\n.ae4u-listen .text-opt.ok{border-color:var(--ok);background:#E9FCEF}\n.ae4u-listen .text-opt.no{border-color:var(--bad);background:#FFE8EC}\n.ae4u-listen .img-note{background:#FFF7E6;border:1px solid #F5D699;border-radius:10px;padding:10px 12px;margin-bottom:10px;color:#7A5C16;font-size:14px}\n.ae4u-listen .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;align-items:center}\n.ae4u-listen .btn{background:var(--accent);color:#fff;border:0;border-radius:14px;padding:10px 20px;font-weight:700;font-size:15px;cursor:pointer;transition:all .15s ease;font-family:inherit}\n.ae4u-listen .btn:hover{filter:brightness(.95);transform:translateY(-1px)}\n.ae4u-listen .btn.alt{background:#fff;color:var(--accent);border:2px solid var(--accent)}\n.ae4u-listen .btn.ghost{background:transparent;color:var(--ink-soft);border:2px solid var(--line)}\n.ae4u-listen .feedback{margin-left:auto;font-weight:700;color:var(--ink-soft);font-size:14px}\n.ae4u-listen .result-banner{background:linear-gradient(135deg,#E1ECFF,#F5EBFF);border:1px solid #BFD3FF;border-radius:16px;padding:18px 22px;margin-top:20px;display:none}\n.ae4u-listen .result-banner.show{display:block}\n.ae4u-listen .result-banner h3{margin:0 0 8px;color:var(--accent);font-family:'Baloo 2';font-size:22px}\n.ae4u-listen .result-banner p{margin:0;color:var(--ink-soft);font-size:15px}\n@media(max-width:640px){.ae4u-listen{padding:18px 12px 50px;font-size:16px}.ae4u-listen h1{font-size:24px}.ae4u-listen .section{padding:16px}.ae4u-listen .progress-sticky .ptxt{min-width:120px;font-size:13px}}\n\n\/* === TIER 1: Sticky mini-player + Toolbar + Keyboard hints === *\/\n.ae4u-listen .yt-frame{transition:all .3s cubic-bezier(.4,0,.2,1)}\n.ae4u-listen .yt-frame.mini{position:fixed;bottom:20px;right:20px;width:340px;height:191px;padding-bottom:0;border-radius:12px;box-shadow:0 12px 36px rgba(0,0,0,.35);z-index:9000}\n.ae4u-listen .yt-frame.mini iframe{border-radius:12px}\n.ae4u-listen .yt-frame.mini-hidden{display:none}\n.ae4u-listen .yt-mini-close{position:absolute;top:-12px;right:-12px;width:30px;height:30px;border-radius:50%;background:#1F2937;color:#fff;border:0;font-size:16px;cursor:pointer;z-index:9001;display:none;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(0,0,0,.3);font-family:inherit;font-weight:700}\n.ae4u-listen .yt-frame.mini .yt-mini-close{display:flex}\n.ae4u-listen .yt-mini-close:hover{background:#000;transform:scale(1.1)}\n.ae4u-listen .yt-show-again{display:none;position:fixed;bottom:20px;right:20px;background:var(--accent);color:#fff;border:0;border-radius:30px;padding:10px 16px;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 8px 24px rgba(1,97,255,.4);z-index:9000;font-family:inherit;align-items:center;gap:6px}\n.ae4u-listen .yt-show-again:hover{filter:brightness(1.1);transform:translateY(-2px)}\n.ae4u-listen .yt-show-again.show{display:inline-flex}\n.ae4u-listen .yt-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;align-items:center}\n.ae4u-listen .yt-btn{background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:8px 12px;font-weight:700;color:var(--ink);cursor:pointer;font-size:13.5px;font-family:inherit;display:inline-flex;align-items:center;gap:4px;transition:all .15s ease}\n.ae4u-listen .yt-btn:hover{border-color:var(--accent);background:#F0F6FF;color:var(--accent);transform:translateY(-1px)}\n.ae4u-listen .yt-btn.play{background:var(--accent);color:#fff;border-color:var(--accent);min-width:96px;justify-content:center}\n.ae4u-listen .yt-btn.play:hover{filter:brightness(1.1);color:#fff}\n.ae4u-listen .yt-speed{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}\n.ae4u-listen .yt-speed button{background:transparent;border:0;padding:8px 10px;cursor:pointer;font-weight:700;font-size:13px;color:var(--ink-soft);font-family:inherit;transition:all .15s ease}\n.ae4u-listen .yt-speed button:hover{background:#F0F6FF;color:var(--accent)}\n.ae4u-listen .yt-speed button.active{background:var(--accent);color:#fff}\n.ae4u-listen .yt-time{font-weight:700;font-size:13px;color:var(--ink-soft);margin-left:auto;font-variant-numeric:tabular-nums;background:#F4EFE0;padding:6px 12px;border-radius:10px}\n.ae4u-listen .yt-shortcut-hint{font-size:12px;color:var(--ink-soft);margin-top:8px;opacity:.75;display:flex;align-items:center;gap:6px;flex-wrap:wrap}\n.ae4u-listen .yt-shortcut-hint kbd{background:#fff;border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:11px;font-family:'Plus Jakarta Sans',monospace;font-weight:700;color:var(--ink);box-shadow:0 1px 0 var(--line)}\n@media(max-width:640px){.ae4u-listen .yt-frame.mini{width:240px;height:135px;bottom:10px;right:10px}.ae4u-listen .yt-toolbar{gap:5px}.ae4u-listen .yt-btn{padding:7px 9px;font-size:12.5px}.ae4u-listen .yt-speed button{padding:7px 8px;font-size:12px}.ae4u-listen .yt-time{flex-basis:100%;text-align:center;order:99}.ae4u-listen .yt-shortcut-hint{display:none}}\n<\/style>\n<div class=\"ae4u-listen\">\n<div class=\"wrap\">\n  <div class=\"crumb\">TOEFL Primary \u00b7 Step 2 \u00b7 Practice Tests<\/div>\n  <h1>Test 2 \u2014 Listening<\/h1>\n  <p class=\"lead\">Watch the video and listen carefully. Answer 39 multiple-choice questions across 5 parts. Tap an option, then submit when finished \u2014 you&#8217;ll get your score instantly and can review the audio scripts.<\/p>\n  <div class=\"tags\">\n    <span class=\"tag\">\ud83c\udfa7 Audio + Video<\/span>\n    <span class=\"tag\">\ud83d\udcdd 39 Questions<\/span>\n    <span class=\"tag\">\u26a1 Instant Scoring<\/span>\n    <span class=\"tag\">\ud83c\udd93 Free, no sign-up<\/span>\n  <\/div>\n\n  <div class=\"progress-sticky\" id=\"globalProg\">\n    <span class=\"ptxt\">Progress <span class=\"pct\">0%<\/span> \u00b7 <span class=\"done\">0<\/span>\/<span class=\"total\">39<\/span><\/span>\n    <div class=\"pbar\"><i id=\"pbarFill\"><\/i><\/div>\n  <\/div>\n\n  <div class=\"video-card player-bar\">\n    <h2>\ud83c\udfa7 Audio \u2014 Step 2 Test 2 Listening<\/h2>\n    <p>Press play and listen to the full audio. You can pause and replay any time while you answer the questions below.<\/p>\n    <div class=\"yt-frame\" id=\"ytFrame\"><iframe id=\"ytplayer\" src=\"https:\/\/www.youtube.com\/embed\/PKU3mTrAqEY?rel=0&#038;modestbranding=1&#038;enablejsapi=1&#038;origin=https:\/\/allenglish4u.com\" title=\"TOEFL Primary Step 2 Test 2 Listening\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen loading=\"lazy\"><\/iframe>\n      <button class=\"yt-mini-close\" id=\"ytMiniClose\" type=\"button\" aria-label=\"Close mini player\">\u00d7<\/button>\n    <\/div>\n    <button class=\"yt-show-again\" id=\"ytShowAgain\" type=\"button\">\ud83c\udfac Show video<\/button>\n    <div class=\"yt-toolbar\">\n      <button class=\"yt-btn play\" id=\"ytPlayBtn\" type=\"button\">\u25b6 Play<\/button>\n      <button class=\"yt-btn\" id=\"ytBack10\" type=\"button\" title=\"Back 10 seconds (Shift+\u2190)\">\u23ea -10s<\/button>\n      <button class=\"yt-btn\" id=\"ytBack5\" type=\"button\" title=\"Back 5 seconds (\u2190)\">\u23f4 -5s<\/button>\n      <button class=\"yt-btn\" id=\"ytFwd5\" type=\"button\" title=\"Forward 5 seconds (\u2192)\">\u23f5 +5s<\/button>\n      <button class=\"yt-btn\" id=\"ytFwd10\" type=\"button\" title=\"Forward 10 seconds (Shift+\u2192)\">\u23e9 +10s<\/button>\n      <div class=\"yt-speed\" role=\"group\" aria-label=\"Playback speed\">\n        <button data-speed=\"0.75\" type=\"button\">0.75x<\/button>\n        <button data-speed=\"1\" type=\"button\" class=\"active\">1x<\/button>\n        <button data-speed=\"1.25\" type=\"button\">1.25x<\/button>\n        <button data-speed=\"1.5\" type=\"button\">1.5x<\/button>\n      <\/div>\n      <span class=\"yt-time\" id=\"ytTime\">0:00 \/ 0:00<\/span>\n    <\/div>\n    <div class=\"yt-shortcut-hint\">\u2328 <kbd>Space<\/kbd> Play\/Pause \u00b7 <kbd>\u2190<\/kbd> <kbd>\u2192<\/kbd> \u00b15s \u00b7 <kbd>Shift<\/kbd>+<kbd>\u2190<\/kbd> <kbd>\u2192<\/kbd> \u00b110s<\/div>\n<\/div>\n  <\/div>\n\n  <div class=\"section\" id=\"listenSection\">\n    <div class=\"section-head\">\n      <span class=\"sec-badge\">Listening Test<\/span>\n      <h2>Listen and choose the correct answers<\/h2>\n      <span class=\"sec-score\" id=\"lScore\">0\/39<\/span>\n    <\/div>\n\n    <!-- PART 1 -->\n    <div class=\"part-block\">\n      <div class=\"part-head\"><h3 class=\"part-title\">\ud83d\uddbc\ufe0f Part 1 \u2014 Pictures (Q1-7)<\/h3><\/div>\n      <p class=\"part-instr\">Listen to a sentence and choose the picture (A, B, or C) that best matches what you hear.<\/p>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"1\">\n        <div class=\"qtext\">1. <em style=\"color:var(--orange);font-weight:600\">(Example \u2014 answer is B)<\/em><\/div>\n        <div class=\"img-grid\">\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"A\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q1A.jpg\" alt=\"Option A for question 1\" loading=\"lazy\"><span class=\"letter\">(A)<\/span><input type=\"radio\" name=\"q1\" value=\"A\"><\/label>\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"B\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q1B.jpg\" alt=\"Option B for question 1\" loading=\"lazy\"><span class=\"letter\">(B)<\/span><input type=\"radio\" name=\"q1\" value=\"B\"><\/label>\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"C\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q1C.jpg\" alt=\"Option C for question 1\" loading=\"lazy\"><span class=\"letter\">(C)<\/span><input type=\"radio\" name=\"q1\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"2\">\n        <div class=\"qtext\">2. Listen and choose the picture (A, B, or C).<\/div>\n        <div class=\"img-grid\">\n          <label class=\"img-opt\" data-ans=\"A\" data-letter=\"A\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q2A.jpg\" alt=\"Option A for question 2\" loading=\"lazy\"><span class=\"letter\">(A)<\/span><input type=\"radio\" name=\"q2\" value=\"A\"><\/label>\n          <label class=\"img-opt\" data-ans=\"A\" data-letter=\"B\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q2B.jpg\" alt=\"Option B for question 2\" loading=\"lazy\"><span class=\"letter\">(B)<\/span><input type=\"radio\" name=\"q2\" value=\"B\"><\/label>\n          <label class=\"img-opt\" data-ans=\"A\" data-letter=\"C\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q2C.jpg\" alt=\"Option C for question 2\" loading=\"lazy\"><span class=\"letter\">(C)<\/span><input type=\"radio\" name=\"q2\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"3\">\n        <div class=\"qtext\">3. Listen and choose the picture (A, B, or C).<\/div>\n        <div class=\"img-grid\">\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"A\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q3A.jpg\" alt=\"Option A for question 3\" loading=\"lazy\"><span class=\"letter\">(A)<\/span><input type=\"radio\" name=\"q3\" value=\"A\"><\/label>\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"B\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q3B.jpg\" alt=\"Option B for question 3\" loading=\"lazy\"><span class=\"letter\">(B)<\/span><input type=\"radio\" name=\"q3\" value=\"B\"><\/label>\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"C\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q3C.jpg\" alt=\"Option C for question 3\" loading=\"lazy\"><span class=\"letter\">(C)<\/span><input type=\"radio\" name=\"q3\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"4\">\n        <div class=\"qtext\">4. Listen and choose the picture (A, B, or C).<\/div>\n        <div class=\"img-grid\">\n          <label class=\"img-opt\" data-ans=\"A\" data-letter=\"A\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q4A.jpg\" alt=\"Option A for question 4\" loading=\"lazy\"><span class=\"letter\">(A)<\/span><input type=\"radio\" name=\"q4\" value=\"A\"><\/label>\n          <label class=\"img-opt\" data-ans=\"A\" data-letter=\"B\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q4B.jpg\" alt=\"Option B for question 4\" loading=\"lazy\"><span class=\"letter\">(B)<\/span><input type=\"radio\" name=\"q4\" value=\"B\"><\/label>\n          <label class=\"img-opt\" data-ans=\"A\" data-letter=\"C\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q4C.jpg\" alt=\"Option C for question 4\" loading=\"lazy\"><span class=\"letter\">(C)<\/span><input type=\"radio\" name=\"q4\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"5\">\n        <div class=\"qtext\">5. Listen and choose the picture (A, B, or C).<\/div>\n        <div class=\"img-grid\">\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"A\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q5A.jpg\" alt=\"Option A for question 5\" loading=\"lazy\"><span class=\"letter\">(A)<\/span><input type=\"radio\" name=\"q5\" value=\"A\"><\/label>\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"B\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q5B.jpg\" alt=\"Option B for question 5\" loading=\"lazy\"><span class=\"letter\">(B)<\/span><input type=\"radio\" name=\"q5\" value=\"B\"><\/label>\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"C\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q5C.jpg\" alt=\"Option C for question 5\" loading=\"lazy\"><span class=\"letter\">(C)<\/span><input type=\"radio\" name=\"q5\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"6\">\n        <div class=\"qtext\">6. Listen and choose the picture (A, B, or C).<\/div>\n        <div class=\"img-grid\">\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"A\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q6A.jpg\" alt=\"Option A for question 6\" loading=\"lazy\"><span class=\"letter\">(A)<\/span><input type=\"radio\" name=\"q6\" value=\"A\"><\/label>\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"B\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q6B.jpg\" alt=\"Option B for question 6\" loading=\"lazy\"><span class=\"letter\">(B)<\/span><input type=\"radio\" name=\"q6\" value=\"B\"><\/label>\n          <label class=\"img-opt\" data-ans=\"B\" data-letter=\"C\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q6C.jpg\" alt=\"Option C for question 6\" loading=\"lazy\"><span class=\"letter\">(C)<\/span><input type=\"radio\" name=\"q6\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"7\">\n        <div class=\"qtext\">7. Listen and choose the picture (A, B, or C).<\/div>\n        <div class=\"img-grid\">\n          <label class=\"img-opt\" data-ans=\"A\" data-letter=\"A\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q7A.jpg\" alt=\"Option A for question 7\" loading=\"lazy\"><span class=\"letter\">(A)<\/span><input type=\"radio\" name=\"q7\" value=\"A\"><\/label>\n          <label class=\"img-opt\" data-ans=\"A\" data-letter=\"B\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q7B.jpg\" alt=\"Option B for question 7\" loading=\"lazy\"><span class=\"letter\">(B)<\/span><input type=\"radio\" name=\"q7\" value=\"B\"><\/label>\n          <label class=\"img-opt\" data-ans=\"A\" data-letter=\"C\"><img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/06\/q7C.jpg\" alt=\"Option C for question 7\" loading=\"lazy\"><span class=\"letter\">(C)<\/span><input type=\"radio\" name=\"q7\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- PART 2 -->\n    <div class=\"part-block\">\n      <div class=\"part-head\"><h3 class=\"part-title\">\ud83d\udcac Part 2 \u2014 Conversations (Q8-14)<\/h3><\/div>\n      <p class=\"part-instr\">Listen to a conversation and answer the question. Fill in the correct circle.<\/p>\n      <div class=\"qcard\" data-ans=\"C\" data-qidx=\"8\">\n        <div class=\"qtext\">8. (Example) When is the girl&#x27;s party?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Tonight<\/span><input type=\"radio\" name=\"q8\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Next week<\/span><input type=\"radio\" name=\"q8\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">This weekend<\/span><input type=\"radio\" name=\"q8\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"C\" data-qidx=\"9\">\n        <div class=\"qtext\">9. What will the girl do next?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Buy some new clothes<\/span><input type=\"radio\" name=\"q9\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Quickly wash her clothes<\/span><input type=\"radio\" name=\"q9\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Find different clothes to wear<\/span><input type=\"radio\" name=\"q9\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"10\">\n        <div class=\"qtext\">10. What did the boy enjoy most during the class trip?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">The video about dinosaurs<\/span><input type=\"radio\" name=\"q10\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">The pictures of ocean life<\/span><input type=\"radio\" name=\"q10\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">The room of rocks<\/span><input type=\"radio\" name=\"q10\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"11\">\n        <div class=\"qtext\">11. What will the boy and girl do next?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Go to the library<\/span><input type=\"radio\" name=\"q11\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Draw a picture of a flower<\/span><input type=\"radio\" name=\"q11\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Buy some colored pencils<\/span><input type=\"radio\" name=\"q11\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"12\">\n        <div class=\"qtext\">12. Why does the girl write down her phone number?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Because she wants her friend to call her<\/span><input type=\"radio\" name=\"q12\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Because she wants to know when a book arrives<\/span><input type=\"radio\" name=\"q12\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Because she wants to find someone to play a game with<\/span><input type=\"radio\" name=\"q12\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"13\">\n        <div class=\"qtext\">13. What does the boy want the girl to do?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Go to the library to get some books<\/span><input type=\"radio\" name=\"q13\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Work on a project at his house<\/span><input type=\"radio\" name=\"q13\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Stay after school to study for a test<\/span><input type=\"radio\" name=\"q13\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"14\">\n        <div class=\"qtext\">14. What is the boy going to do on Saturday?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Ride his bike<\/span><input type=\"radio\" name=\"q14\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Look at butterflies<\/span><input type=\"radio\" name=\"q14\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Buy some flowers<\/span><input type=\"radio\" name=\"q14\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- PART 3 -->\n    <div class=\"part-block\">\n      <div class=\"part-head\"><h3 class=\"part-title\">\ud83d\udcde Part 3 \u2014 Phone Messages (Q15-21)<\/h3><\/div>\n      <p class=\"part-instr\">Listen to a phone message and answer the question. Fill in the correct circle.<\/p>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"15\">\n        <div class=\"qtext\">15. (Example) What did Mike call about?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Homework<\/span><input type=\"radio\" name=\"q15\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">A movie<\/span><input type=\"radio\" name=\"q15\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">A library book<\/span><input type=\"radio\" name=\"q15\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"16\">\n        <div class=\"qtext\">16. What will Carmen do tomorrow?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Give a book to Tracy<\/span><input type=\"radio\" name=\"q16\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Look for a book at the library<\/span><input type=\"radio\" name=\"q16\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Talk about a book with Tracy<\/span><input type=\"radio\" name=\"q16\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"17\">\n        <div class=\"qtext\">17. Why did Colin call?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">To invite him to work at his house<\/span><input type=\"radio\" name=\"q17\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">To ask what he needs to do for homework<\/span><input type=\"radio\" name=\"q17\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">To tell him what to buy at the store<\/span><input type=\"radio\" name=\"q17\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"18\">\n        <div class=\"qtext\">18. What will Gabe do tomorrow?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Play a game with a friend<\/span><input type=\"radio\" name=\"q18\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Clean his room<\/span><input type=\"radio\" name=\"q18\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Visit his grandmother&#x27;s house<\/span><input type=\"radio\" name=\"q18\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"19\">\n        <div class=\"qtext\">19. What will the boy do on Saturday?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Go to a ball game<\/span><input type=\"radio\" name=\"q19\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Help his parents move<\/span><input type=\"radio\" name=\"q19\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Watch a movie<\/span><input type=\"radio\" name=\"q19\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"20\">\n        <div class=\"qtext\">20. Why did Roger call?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">To tell Shawn they are going to be on the baseball team<\/span><input type=\"radio\" name=\"q20\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">To ask Shawn to go to a baseball game after school<\/span><input type=\"radio\" name=\"q20\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">To remind Shawn to go to baseball practice<\/span><input type=\"radio\" name=\"q20\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"21\">\n        <div class=\"qtext\">21. Why did Ms. Eng call?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">To tell Nellie where the game is going to be<\/span><input type=\"radio\" name=\"q21\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">To tell Nellie to bring soccer balls tomorrow<\/span><input type=\"radio\" name=\"q21\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">To ask Nellie about the weather<\/span><input type=\"radio\" name=\"q21\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- PART 4 \u2014 story -->\n    <div class=\"part-block\">\n      <div class=\"part-head\"><h3 class=\"part-title\">\ud83d\udc31 Part 4 \u2014 Story: A Cat Named Max (Q22-25)<\/h3><\/div>\n      <p class=\"part-instr\">Listen to a story about a cat named Max. Then answer the questions about what you hear.<\/p>\n      <button class=\"story-toggle\" type=\"button\" onclick=\"document.getElementById('story4').classList.toggle('show')\">\ud83d\udcdc Show transcript<\/button>\n      <div class=\"story-card\" id=\"story4\">Listen to a story about a cat named Max.<br><br>(Man): &quot;Where are Abby and Andrew?&quot; Max thought to himself. He was a very curious cat, always looking for the children to play with.<br><br>&quot;First I&#x27;ll look in the living room,&quot; the cat thought. He jumped on the sofa expecting to see the two children, but no one was there. &quot;That&#x27;s strange,&quot; he thought. &quot;Andrew and Abby are always in the living room at this time of day. Their favorite television show is on!&quot;<br><br>Then Max thought, &quot;Maybe they&#x27;re in the kitchen. I hope they give me something delicious!&quot; Max ran out of the living room and into the kitchen, but they weren&#x27;t there either. He had another idea. &quot;They&#x27;re probably finishing some homework,&quot; he thought. Max walked into the dining room and was surprised when he saw the empty table.<br><br>&quot;I guess I&#x27;ll just go outside and play in the garden alone&quot; thought the cat. When Max got outside, he heard some voices. &quot;Were Abby and Andrew outside?&quot; he thought excitedly. When Max ran across the garden, he saw Abby and Andrew building something with their father.<br><br>But what was it? Then, Abby saw Max. &quot;Max!&quot; Abby said. &quot;Guess what we just finished making?&quot; Max looked at the project the children had been working on. It was a tree house!<br><br>(Narrator): Now answer the questions.<\/div>\n      <div class=\"qcard\" data-ans=\"C\" data-qidx=\"22\">\n        <div class=\"qtext\">22. What is the story about?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">A cat playing in the garden<\/span><input type=\"radio\" name=\"q22\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">A cat searching for some food<\/span><input type=\"radio\" name=\"q22\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">A cat looking for his friends<\/span><input type=\"radio\" name=\"q22\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"23\">\n        <div class=\"qtext\">23. Where did Max go first?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">The kitchen<\/span><input type=\"radio\" name=\"q23\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">The living room<\/span><input type=\"radio\" name=\"q23\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">The garden<\/span><input type=\"radio\" name=\"q23\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"24\">\n        <div class=\"qtext\">24. What did Max think he would see at the table?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">The family having dinner<\/span><input type=\"radio\" name=\"q24\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">The children doing homework<\/span><input type=\"radio\" name=\"q24\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">The children playing a game<\/span><input type=\"radio\" name=\"q24\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"25\">\n        <div class=\"qtext\">25. What were the children doing during the story?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Building something<\/span><input type=\"radio\" name=\"q25\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Cooking dinner<\/span><input type=\"radio\" name=\"q25\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Watching television<\/span><input type=\"radio\" name=\"q25\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- PART 5 \u2014 4 groups -->\n    <div class=\"part-block\">\n      <div class=\"part-head\"><h3 class=\"part-title\">\ud83c\udf93 Part 5 \u2014 Long Talks (Q26-39)<\/h3><\/div>\n      <p class=\"part-instr\">Listen to longer talks (a story, science lesson, aquarium guide, history class) and answer the questions about each one.<\/p>\n      <div class=\"part-block\">\n        <div class=\"part-head\">\n          <h3 class=\"part-title\">\ud83d\udcd6 Ricky and Adam \u2014 A trip to the beach<\/h3>\n        <\/div>\n        <p class=\"part-instr\">Listen to the talk. Then answer the questions about what you hear.<\/p>\n        <button class=\"story-toggle\" type=\"button\" onclick=\"document.getElementById('story5_1').classList.toggle('show')\">\ud83d\udcdc Show transcript<\/button>\n        <div class=\"story-card\" id=\"story5_1\">Listen to a story about Ricky and Adam.<br><br>(Woman): &quot;Come on! We will be late,&quot; Ricky and Adam&#x27;s father said. He wanted to leave an hour ago. Ricky and Adam&#x27;s father talked a lot about leaving on time. He didn&#x27;t like driving in traffic with all the other cars.<br><br>Ricky, Adam, and their parents were ready to go to the beach. The boys were ready when they woke up, of course. They ate breakfast early in the morning and were already hungry for lunch. They wanted to arrive at the beach. Then, they would open the large basket filled with delicious cheese sandwiches, grapes, cookies, and lemonade.<br><br>Ricky and Adam planned many things for the beach trip. They didn&#x27;t like to swim, but they wanted to collect shells in their many colors. They wanted to build sand castles with their pails. And they wanted to fly their kite. They planned so many things, but they were still at home. They went into the car. A few minutes after they left home\u2014with their baskets and pails and towels and kite\u2014Ricky&#x27;s little brother started talking. And Ricky did not like what he heard.<br><br>(Narrator): Now answer the questions.<\/div>\n      <div class=\"qcard\" data-ans=\"C\" data-qidx=\"26\">\n        <div class=\"qtext\">26. Who talks about leaving on time?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Ricky<\/span><input type=\"radio\" name=\"q26\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Adam<\/span><input type=\"radio\" name=\"q26\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">The father<\/span><input type=\"radio\" name=\"q26\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"27\">\n        <div class=\"qtext\">27. Why are Ricky and Adam hungry?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">They ate breakfast early.<\/span><input type=\"radio\" name=\"q27\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">They smelled food in the basket.<\/span><input type=\"radio\" name=\"q27\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">They did not like the food at lunch.<\/span><input type=\"radio\" name=\"q27\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"28\">\n        <div class=\"qtext\">28. What will Ricky and Adam do at the beach?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Play with their pails and kite<\/span><input type=\"radio\" name=\"q28\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Swim in the water<\/span><input type=\"radio\" name=\"q28\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Play with a beach ball<\/span><input type=\"radio\" name=\"q28\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"C\" data-qidx=\"29\">\n        <div class=\"qtext\">29. Who is Adam?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Ricky&#x27;s father<\/span><input type=\"radio\" name=\"q29\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Ricky&#x27;s friend<\/span><input type=\"radio\" name=\"q29\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Ricky&#x27;s brother<\/span><input type=\"radio\" name=\"q29\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <\/div>\n      <div class=\"part-block\">\n        <div class=\"part-head\">\n          <h3 class=\"part-title\">\ud83d\udcd6 The Homing Pigeon \u2014 Science lesson<\/h3>\n        <\/div>\n        <p class=\"part-instr\">Listen to the talk. Then answer the questions about what you hear.<\/p>\n        <button class=\"story-toggle\" type=\"button\" onclick=\"document.getElementById('story5_2').classList.toggle('show')\">\ud83d\udcdc Show transcript<\/button>\n        <div class=\"story-card\" id=\"story5_2\">Listen to a teacher giving a science lesson.<br><br>(Man): Today I want to tell you about a special type of bird. This bird is called a homing pigeon. It is called a homing pigeon because it is excellent at finding its home. The homing pigeon always knows how to find the directions to its home nest, even from a distant place. This bird is also very fast and can fly for hundreds of kilometers without resting.<br><br>For that reason, before the telephone and e-mail were invented, people used homing pigeons to send messages back home. When people traveled they carried pigeons with them. When they needed to send a message home, they wrote a message on a small piece of paper and attached it to the bird&#x27;s legs. Then, they set the pigeon free and let it fly. The pigeon carried the mail all the way back home.<br><br>(Narrator): Now answer the questions.<\/div>\n      <div class=\"qcard\" data-ans=\"C\" data-qidx=\"30\">\n        <div class=\"qtext\">30. What is special about the homing pigeon?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">They like to live inside houses.<\/span><input type=\"radio\" name=\"q30\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">They build large homes for their young.<\/span><input type=\"radio\" name=\"q30\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">They can always find their way home.<\/span><input type=\"radio\" name=\"q30\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"31\">\n        <div class=\"qtext\">31. What is true about these birds?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">They carry heavy objects.<\/span><input type=\"radio\" name=\"q31\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">They fly very fast.<\/span><input type=\"radio\" name=\"q31\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">They make very loud noises.<\/span><input type=\"radio\" name=\"q31\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"C\" data-qidx=\"32\">\n        <div class=\"qtext\">32. How did these birds help people in the past?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">They found important objects.<\/span><input type=\"radio\" name=\"q32\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">They built nests in safe places.<\/span><input type=\"radio\" name=\"q32\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">They carried letters.<\/span><input type=\"radio\" name=\"q32\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <\/div>\n      <div class=\"part-block\">\n        <div class=\"part-head\">\n          <h3 class=\"part-title\">\ud83d\udcd6 Whales \u2014 Aquarium guide<\/h3>\n        <\/div>\n        <p class=\"part-instr\">Listen to the talk. Then answer the questions about what you hear.<\/p>\n        <button class=\"story-toggle\" type=\"button\" onclick=\"document.getElementById('story5_3').classList.toggle('show')\">\ud83d\udcdc Show transcript<\/button>\n        <div class=\"story-card\" id=\"story5_3\">Listen to a guide talking in an aquarium.<br><br>(Man): Whales are some of the largest animals on Earth. Whales swim in the ocean. But even though whales live in the ocean, they are not really fish. They breathe air, just like you and me. And they don&#x27;t swim like fish either. Whales move their tails up and down to move around in the water, while fish move their tails to side when they swim. And did you know that whales can sing? Different kinds of whales sing different kinds of songs.<br><br>But whale songs do NOT sound like songs that people sing. Whale songs are more like strange sounds than songs to us. Some of these sounds include noises like groans, clicking, and roars. Why do whales sing songs? Some whales sing to find food. Others sing as way to talk to other whales. And some sing to find other whales, especially their own children!<br><br>(Narrator): Now answer the questions.<\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"33\">\n        <div class=\"qtext\">33. How are whales different from fish?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">They breathe air.<\/span><input type=\"radio\" name=\"q33\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">They live in water.<\/span><input type=\"radio\" name=\"q33\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">They move their tails to swim.<\/span><input type=\"radio\" name=\"q33\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"C\" data-qidx=\"34\">\n        <div class=\"qtext\">34. What do whale songs sound like?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Other ocean animal sounds<\/span><input type=\"radio\" name=\"q34\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">People singing<\/span><input type=\"radio\" name=\"q34\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Strange noises<\/span><input type=\"radio\" name=\"q34\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"35\">\n        <div class=\"qtext\">35. Why do whales sing?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">To frighten other animals<\/span><input type=\"radio\" name=\"q35\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">To find food<\/span><input type=\"radio\" name=\"q35\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">To play with their children<\/span><input type=\"radio\" name=\"q35\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <\/div>\n      <div class=\"part-block\">\n        <div class=\"part-head\">\n          <h3 class=\"part-title\">\ud83d\udcd6 The Old Boat \u2014 History class<\/h3>\n        <\/div>\n        <p class=\"part-instr\">Listen to the talk. Then answer the questions about what you hear.<\/p>\n        <button class=\"story-toggle\" type=\"button\" onclick=\"document.getElementById('story5_4').classList.toggle('show')\">\ud83d\udcdc Show transcript<\/button>\n        <div class=\"story-card\" id=\"story5_4\">Listen to a teacher in a history class.<br><br>(Woman): Almost one thousand two hundred years ago, a large boat traveled thousands of kilometers across the Indian Ocean. But when it was near Singapore, in Asia, the boat sank to the bottom of the ocean. Divers swam down and found the boat in 1998. The boat was very different from today&#x27;s boats. Today, people use computers, metal, and large machines to make boats. But a long time ago, people used wood and small machines to make boats.<br><br>After the divers found the old boat underwater, a group of people decided to build another boat. They wanted the new boat to be exactly like the boat they found underwater. And they wanted to make it the old way, too. Workers used wood from trees in Africa. They put the wood together with rope. They covered the rope with fish oil. The workers learned a lot about the old way of building boats. They finished the boat in 2010. They sailed to Singapore from Oman and traveled thousands of kilometers across the ocean. The boat sailed through storms and strong winds, but this time, it arrived safely.<br><br>(Narrator): Now answer the questions.<\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"36\">\n        <div class=\"qtext\">36. What is a good name for this lesson?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">How to build new boats<\/span><input type=\"radio\" name=\"q36\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Learning from an old boat<\/span><input type=\"radio\" name=\"q36\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Why old boats are better than new boats<\/span><input type=\"radio\" name=\"q36\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"A\" data-qidx=\"37\">\n        <div class=\"qtext\">37. How did people find the old boat?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Divers swam to it.<\/span><input type=\"radio\" name=\"q37\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Workers used computers.<\/span><input type=\"radio\" name=\"q37\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"A\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">People saw it from a boat.<\/span><input type=\"radio\" name=\"q37\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"B\" data-qidx=\"38\">\n        <div class=\"qtext\">38. How did the workers build the new boat?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">They used parts of old boats.<\/span><input type=\"radio\" name=\"q38\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">They used wood and small machines.<\/span><input type=\"radio\" name=\"q38\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"B\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">They used computers and large machines.<\/span><input type=\"radio\" name=\"q38\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <div class=\"qcard\" data-ans=\"C\" data-qidx=\"39\">\n        <div class=\"qtext\">39. Where did the workers go on the new boat?<\/div>\n        <div class=\"text-list\">\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"A\"><span class=\"op-let\">(A)<\/span><span class=\"op-txt\">Oman<\/span><input type=\"radio\" name=\"q39\" value=\"A\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"B\"><span class=\"op-let\">(B)<\/span><span class=\"op-txt\">Africa<\/span><input type=\"radio\" name=\"q39\" value=\"B\"><\/label>\n        <label class=\"text-opt\" data-ans=\"C\" data-letter=\"C\"><span class=\"op-let\">(C)<\/span><span class=\"op-txt\">Singapore<\/span><input type=\"radio\" name=\"q39\" value=\"C\"><\/label>\n        <\/div>\n      <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"actions\">\n      <button class=\"btn\" type=\"button\" id=\"submitBtn\">\u2705 Submit &#038; Check<\/button>\n      <button class=\"btn alt\" type=\"button\" id=\"resetBtn\">\u21bb Reset<\/button>\n      <button class=\"btn ghost\" type=\"button\" id=\"showKeyBtn\">\ud83d\udd11 Show all answers<\/button>\n      <span class=\"feedback\" id=\"feedback\">Answer all 39 questions, then click Submit<\/span>\n    <\/div>\n\n    <div class=\"result-banner\" id=\"resultBanner\">\n      <h3>\ud83c\udf89 Your Score: <span id=\"finalScore\">0\/39<\/span><\/h3>\n      <p id=\"resultMsg\">Keep practicing! Click any wrong answer&#8217;s transcript to review what was said.<\/p>\n    <\/div>\n  <\/div>\n<\/div>\n<\/div>\n\n<script>\n(function(){\n  const root = document.querySelector('.ae4u-listen');\n  if(!root) return;\n  const cards = root.querySelectorAll('.qcard');\n  const total = cards.length;\n  const totalEl = root.querySelector('.total');\n  const doneEl = root.querySelector('.done');\n  const pctEl = root.querySelector('.pct');\n  const pbarEl = root.querySelector('#pbarFill');\n  const scoreEl = root.querySelector('#lScore');\n  scoreEl.textContent = '0\/' + total;\n  totalEl.textContent = total;\n  function updProgress(){\n    let done = 0;\n    cards.forEach(c => { if (c.querySelector('input:checked')) done++; });\n    const pct = Math.round(done\/total*100);\n    doneEl.textContent = done;\n    pctEl.textContent = pct + '%';\n    pbarEl.style.width = pct + '%';\n  }\n  \/\/ Click handler \u2014 works for both .text-opt AND .img-opt\n  root.querySelectorAll('.text-opt, .img-opt').forEach(opt => {\n    opt.addEventListener('click', e => {\n      const card = opt.closest('.qcard');\n      card.querySelectorAll('.text-opt, .img-opt').forEach(o => o.classList.remove('sel'));\n      opt.classList.add('sel');\n      const inp = opt.querySelector('input');\n      if (inp) inp.checked = true;\n      updProgress();\n    });\n  });\n  \/\/ Submit\n  root.querySelector('#submitBtn').addEventListener('click', () => {\n    let score = 0;\n    cards.forEach(card => {\n      const ans = card.dataset.ans;\n      const selOpt = card.querySelector('.text-opt.sel, .img-opt.sel');\n      const selLetter = selOpt ? selOpt.dataset.letter : null;\n      card.classList.remove('correct','wrong');\n      card.querySelectorAll('.text-opt, .img-opt').forEach(o => o.classList.remove('ok','no'));\n      if (selLetter === ans) {\n        score++;\n        card.classList.add('correct');\n        if (selOpt) selOpt.classList.add('ok');\n      } else {\n        card.classList.add('wrong');\n        if (selOpt) selOpt.classList.add('no');\n        \/\/ highlight correct (any opt type)\n        const correctOpt = card.querySelector('.text-opt[data-letter=\"' + ans + '\"], .img-opt[data-letter=\"' + ans + '\"]');\n        if (correctOpt) correctOpt.classList.add('ok');\n      }\n    });\n    scoreEl.textContent = score + '\/' + total;\n    root.querySelector('#finalScore').textContent = score + '\/' + total;\n    const pct = Math.round(score\/total*100);\n    let msg = '';\n    if (pct >= 90) msg = '\ud83c\udf1f Outstanding! You really know the material.';\n    else if (pct >= 75) msg = '\ud83d\udc4d Great job! A few mistakes \u2014 review the transcripts.';\n    else if (pct >= 50) msg = '\ud83d\udcaa Good effort. Replay the audio and check the scripts for tricky questions.';\n    else msg = '\ud83d\udcda Keep practicing! Read the transcripts and try the test again.';\n    root.querySelector('#resultMsg').textContent = msg;\n    root.querySelector('#resultBanner').classList.add('show');\n    document.querySelector('.result-banner').scrollIntoView({behavior:'smooth',block:'center'});\n  });\n  \/\/ Reset\n  root.querySelector('#resetBtn').addEventListener('click', () => {\n    cards.forEach(card => {\n      card.classList.remove('correct','wrong');\n      card.querySelectorAll('input').forEach(i => i.checked = false);\n      card.querySelectorAll('.text-opt, .img-opt').forEach(o => o.classList.remove('sel','ok','no'));\n    });\n    root.querySelector('#resultBanner').classList.remove('show');\n    scoreEl.textContent = '0\/' + total;\n    updProgress();\n  });\n  \/\/ Show all answers\n  root.querySelector('#showKeyBtn').addEventListener('click', () => {\n    cards.forEach(card => {\n      const ans = card.dataset.ans;\n      const correctOpt = card.querySelector('.text-opt[data-letter=\"' + ans + '\"], .img-opt[data-letter=\"' + ans + '\"]');\n      if (correctOpt) correctOpt.classList.add('ok');\n    });\n  });\n  \/\/ === TIER 1: YT IFrame API \u00b7 Sticky mini-player \u00b7 Toolbar \u00b7 Keyboard ===\n  var ytPlayer = null, ytReady = false;\n  var ytFrame = root.querySelector('#ytFrame');\n  var ytPlayBtn = root.querySelector('#ytPlayBtn');\n  var ytTime = root.querySelector('#ytTime');\n  var ytShowAgain = root.querySelector('#ytShowAgain');\n  var ytMiniClose = root.querySelector('#ytMiniClose');\n  \/\/ Load YT IFrame API once\n  if (!window.YT || !window.YT.Player) {\n    if (!document.getElementById('ytapi-script')) {\n      var tag = document.createElement('script');\n      tag.id = 'ytapi-script';\n      tag.src = 'https:\/\/www.youtube.com\/iframe_api';\n      document.head.appendChild(tag);\n    }\n  }\n  function fmt(s) { s=Math.max(0,Math.floor(s||0)); var m=Math.floor(s\/60), ss=s%60; return m+':'+(ss<10?'0':'')+ss; }\n  function updateTimeDisplay() {\n    if (!ytReady || !ytTime) return;\n    try { ytTime.textContent = fmt(ytPlayer.getCurrentTime()) + ' \/ ' + fmt(ytPlayer.getDuration()); } catch(e){}\n  }\n  function initYTPlayer() {\n    if (typeof YT === 'undefined' || !YT.Player) { setTimeout(initYTPlayer, 200); return; }\n    var iframeEl = document.getElementById('ytplayer');\n    if (!iframeEl) return;\n    ytPlayer = new YT.Player('ytplayer', {\n      events: {\n        'onReady': function() { ytReady = true; updateTimeDisplay(); setInterval(updateTimeDisplay, 500); },\n        'onStateChange': function(e) {\n          if (!ytPlayBtn) return;\n          if (e.data === YT.PlayerState.PLAYING) ytPlayBtn.innerHTML = '\u23f8 Pause';\n          else ytPlayBtn.innerHTML = '\u25b6 Play';\n        }\n      }\n    });\n  }\n  var prevYTCallback = window.onYouTubeIframeAPIReady;\n  window.onYouTubeIframeAPIReady = function() {\n    if (prevYTCallback) try { prevYTCallback(); } catch(e){}\n    initYTPlayer();\n  };\n  if (window.YT) if (window.YT.Player) initYTPlayer();\n  function seekRel(dt) { if (!ytReady) return; try { ytPlayer.seekTo(Math.max(0, ytPlayer.getCurrentTime()+dt), true); } catch(e){} }\n  function togglePlay() {\n    if (!ytReady) return;\n    try {\n      var st = ytPlayer.getPlayerState();\n      if (st === YT.PlayerState.PLAYING) ytPlayer.pauseVideo();\n      else ytPlayer.playVideo();\n    } catch(e){}\n  }\n  if (ytPlayBtn) ytPlayBtn.addEventListener('click', togglePlay);\n  var _b10b = root.querySelector('#ytBack10'); if (_b10b) _b10b.addEventListener('click', function(){seekRel(-10);});\n  var _b5b = root.querySelector('#ytBack5'); if (_b5b) _b5b.addEventListener('click', function(){seekRel(-5);});\n  var _b5f = root.querySelector('#ytFwd5'); if (_b5f) _b5f.addEventListener('click', function(){seekRel(5);});\n  var _b10f = root.querySelector('#ytFwd10'); if (_b10f) _b10f.addEventListener('click', function(){seekRel(10);});\n  root.querySelectorAll('.yt-speed button').forEach(function(b){\n    b.addEventListener('click', function(){\n      if (!ytReady) return;\n      root.querySelectorAll('.yt-speed button').forEach(function(o){o.classList.remove('active');});\n      b.classList.add('active');\n      try { ytPlayer.setPlaybackRate(parseFloat(b.dataset.speed)); } catch(e){}\n    });\n  });\n  document.addEventListener('keydown', function(e) {\n    var t = e.target; if (!t) return;\n    var tag = t.tagName;\n    if (tag === 'INPUT' || tag === 'TEXTAREA' || t.isContentEditable) return;\n    if (!ytReady) return;\n    if (e.code === 'Space') { e.preventDefault(); togglePlay(); }\n    else if (e.code === 'ArrowLeft') { e.preventDefault(); seekRel(e.shiftKey ? -10 : -5); }\n    else if (e.code === 'ArrowRight') { e.preventDefault(); seekRel(e.shiftKey ? 10 : 5); }\n  });\n  \/\/ Sticky mini-player\n  var miniHiddenByUser = false;\n  function checkMini() {\n    if (!ytFrame || miniHiddenByUser) return;\n    var card = ytFrame.closest('.video-card');\n    if (!card) return;\n    var rect = card.getBoundingClientRect();\n    if (rect.bottom < 80) ytFrame.classList.add('mini');\n    else ytFrame.classList.remove('mini');\n  }\n  var _scrollT = null;\n  window.addEventListener('scroll', function(){\n    if (_scrollT) return;\n    _scrollT = setTimeout(function(){ _scrollT = null; checkMini(); }, 100);\n  }, {passive: true});\n  window.addEventListener('resize', checkMini);\n  checkMini();\n  if (ytMiniClose) ytMiniClose.addEventListener('click', function(e){\n    e.stopPropagation();\n    ytFrame.classList.remove('mini');\n    ytFrame.classList.add('mini-hidden');\n    miniHiddenByUser = true;\n    if (ytShowAgain) ytShowAgain.classList.add('show');\n  });\n  if (ytShowAgain) ytShowAgain.addEventListener('click', function(){\n    ytFrame.classList.remove('mini-hidden');\n    miniHiddenByUser = false;\n    ytShowAgain.classList.remove('show');\n    var card = ytFrame.closest('.video-card');\n    if (card) card.scrollIntoView({behavior:'smooth', block:'center'});\n    setTimeout(checkMini, 600);\n  });\n})();\n<\/script>\n<!-- \/wp:html --\n\n<script data-player-version=\"2\">eval(atob('KGZ1bmN0aW9uICgpIHsKJ3VzZSBzdHJpY3QnOwppZiAod2luZG93Ll9fQUVQX1YyX18pIHJldHVybjsKd2luZG93Ll9fQUVQX1YyX18gPSAxOwp2YXIgTFNfS0VZID0gJ2FlNHVfcGxheWVyX3YyJzsKdmFyIFNQRUVEUyA9IFswLjUsIDAuNzUsIDEsIDEuMjUsIDEuNSwgMl07CnZhciBQSVBfVyA9IDI4MCwgUElQX0ggPSAxNTg7CnZhciBNQVJLUyA9IG51bGw7CnRyeSB7CnZhciBfY3MgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0OwppZiAoX2NzKSBNQVJLUyA9IEpTT04ucGFyc2UoX2NzLmdldEF0dHJpYnV0ZSgnZGF0YS1hZXAtbWFya3MnKSB8fCAnbnVsbCcpOwppZiAoTUFSS1MgJiYgKCFNQVJLUy5sZW5ndGggfHwgdHlwZW9mIE1BUktTWzBdLnQgIT09ICdudW1iZXInKSkgTUFSS1MgPSBudWxsOwp9IGNhdGNoIChlKSB7IE1BUktTID0gbnVsbDsgfQpmdW5jdGlvbiBsc0dldCgpIHsKdHJ5IHsgcmV0dXJuIEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTFNfS0VZKSkgfHwge307IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIHt9OyB9Cn0KZnVuY3Rpb24gbHNTZXQocGF0Y2gpIHsKdHJ5IHsKdmFyIGN1ciA9IGxzR2V0KCk7CmZvciAodmFyIGsgaW4gcGF0Y2gpIGN1cltrXSA9IHBhdGNoW2tdOwpsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMU19LRVksIEpTT04uc3RyaW5naWZ5KGN1cikpOwp9IGNhdGNoIChlKSB7fQp9CmZ1bmN0aW9uIGVsKHRhZywgY2xzLCB0eHQpIHsKdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7CmlmIChjbHMpIGUuY2xhc3NOYW1lID0gY2xzOwppZiAodHh0ICE9IG51bGwpIGUudGV4dENvbnRlbnQgPSB0eHQ7CnJldHVybiBlOwp9CmZ1bmN0aW9uIGJ0bihjbHMsIHR4dCwgdGl0bGUpIHsKdmFyIGIgPSBlbCgnYnV0dG9uJywgY2xzLCB0eHQpOwpiLnR5cGUgPSAnYnV0dG9uJzsKaWYgKHRpdGxlKSB7IGIudGl0bGUgPSB0aXRsZTsgYi5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCB0aXRsZSk7IH0KcmV0dXJuIGI7Cn0KZnVuY3Rpb24gZm10KHMpIHsKcyA9IE1hdGgubWF4KDAsIE1hdGguZmxvb3IocyB8fCAwKSk7CnZhciBtID0gTWF0aC5mbG9vcihzIC8gNjApLCByID0gcyAlIDYwOwpyZXR1cm4gbSArICc6JyArIChyIDwgMTAgPyAnMCcgOiAnJykgKyByOwp9CmZ1bmN0aW9uIG9uUmVhZHlEb20oZm4pIHsKaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZuKTsKZWxzZSBmbigpOwp9Cm9uUmVhZHlEb20oZnVuY3Rpb24gKCkgewp2YXIgcm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZTR1LWxpc3RlbiwgLnRvZWZsLXJlYWRpbmcsICN0b2VmbFJlYWRpbmcnKTsKaWYgKCFyb290IHx8IHJvb3QuZ2V0QXR0cmlidXRlKCdkYXRhLWFlcCcpID09PSAnMicpIHJldHVybjsKcm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYWVwJywgJzInKTsKdmFyIGlzQWUgPSByb290LmNsYXNzTmFtZS5pbmRleE9mKCdhZTR1LWxpc3RlbicpICE9PSAtMTsKdmFyIHNjb3BlID0gcm9vdC5jbG9zZXN0KCcuZW50cnktY29udGVudCcpIHx8IGRvY3VtZW50Owp2YXIgb2xkSWZyID0gc2NvcGUucXVlcnlTZWxlY3RvcignLnBsYXllci1iYXIgaWZyYW1lLCAudHIteXQgaWZyYW1lLCAudHItdmlkZW8gaWZyYW1lJykgfHwKc2NvcGUucXVlcnlTZWxlY3RvcignaWZyYW1lW3NyYyo9InlvdXR1YmUiXScpOwp2YXIgdmlkID0gbnVsbDsKaWYgKG9sZElmcikgewp2YXIgbSA9IChvbGRJZnIuZ2V0QXR0cmlidXRlKCdzcmMnKSB8fCAnJykubWF0Y2goL1wvZW1iZWRcLyhbXj8mIicgXSspLyk7CmlmIChtKSB2aWQgPSBtWzFdOwp9CmlmICghdmlkKSByZXR1cm47IC8vIG5vdGhpbmcgdG8gcGxheTsgbGVhdmUgcGFnZSB1bnRvdWNoZWQKaW5qZWN0Q1NTKCk7CnRyeSB7IG9sZElmci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9sZElmcik7IH0gY2F0Y2ggKGUpIHt9CnZhciBjYXJkID0gZWwoJ2RpdicsICdhZXAnKTsKY2FyZC5zZXRBdHRyaWJ1dGUoJ2RhdGEtcGxheWVyLXZlcnNpb24nLCAnMicpOwp2YXIgbWFpbiA9IGVsKCdkaXYnLCAnYWVwLW1haW4nKTsKY2FyZC5hcHBlbmRDaGlsZChtYWluKTsKdmFyIHZzbG90ID0gZWwoJ2RpdicsICdhZXAtdnNsb3QnKTsKdmFyIHZpZEJveCA9IGVsKCdkaXYnLCAnYWVwLXZpZCcpOwp2YXIgZHJhZ0JhciA9IGVsKCdkaXYnLCAnYWVwLWRyYWcnKTsKdmFyIGRyYWdUaXRsZSA9IGVsKCdzcGFuJywgJ2FlcC1kcmFndGl0bGUnLCAnXHVEODNDXHVERkE3IExpc3RlbmluZycpOwp2YXIgYnRuVXAgPSBidG4oJ2FlcC1pYyBhZXAtdXAnLCAnXHUyMUE1JywgJ0JhY2sgdG8gcGxheWVyJyk7CnZhciBidG5DbG9zZSA9IGJ0bignYWVwLWljIGFlcC1jbG9zZScsICdcdTI3MTUnLCAnSGlkZSBtaW5pIHBsYXllcicpOwpkcmFnQmFyLmFwcGVuZENoaWxkKGRyYWdUaXRsZSk7IGRyYWdCYXIuYXBwZW5kQ2hpbGQoYnRuVXApOyBkcmFnQmFyLmFwcGVuZENoaWxkKGJ0bkNsb3NlKTsKdmFyIGZyYW1lID0gZWwoJ2RpdicsICdhZXAtZnJhbWUnKTsKdmFyIHl0SG9zdCA9IGVsKCdkaXYnLCAnYWVwLXl0Jyk7CnZhciBjYXRjaGVyID0gZWwoJ2RpdicsICdhZXAtY2F0Y2gnKTsKZnJhbWUuYXBwZW5kQ2hpbGQoeXRIb3N0KTsgZnJhbWUuYXBwZW5kQ2hpbGQoY2F0Y2hlcik7CnZhciBtaW5pID0gZWwoJ2RpdicsICdhZXAtbWluaScpOwp2YXIgbVBsYXkgPSBidG4oJ2FlcC1tYnRuIGFlcC1tcGxheScsICdcdTI1QjYnLCAnUGxheS9QYXVzZScpOwp2YXIgbUIxMCA9IGJ0bignYWVwLW1idG4nLCAnLTEwcycsICdCYWNrIDEwcycpOwp2YXIgbUYxMCA9IGJ0bignYWVwLW1idG4nLCAnKzEwcycsICdGb3J3YXJkIDEwcycpOwp2YXIgbVRpbWUgPSBlbCgnc3BhbicsICdhZXAtbXRpbWUnLCAnMDowMCcpOwptaW5pLmFwcGVuZENoaWxkKG1QbGF5KTsgbWluaS5hcHBlbmRDaGlsZChtQjEwKTsgbWluaS5hcHBlbmRDaGlsZChtRjEwKTsgbWluaS5hcHBlbmRDaGlsZChtVGltZSk7CnZhciBtUHJvZyA9IGVsKCdkaXYnLCAnYWVwLW1wcm9nJyk7CnZhciBtUHJvZ0ZpbGwgPSBlbCgnZGl2JywgJ2FlcC1tcHJvZy1maWxsJyk7Cm1Qcm9nLmFwcGVuZENoaWxkKG1Qcm9nRmlsbCk7CnZpZEJveC5hcHBlbmRDaGlsZChkcmFnQmFyKTsgdmlkQm94LmFwcGVuZENoaWxkKGZyYW1lKTsgdmlkQm94LmFwcGVuZENoaWxkKG1Qcm9nKTsgdmlkQm94LmFwcGVuZENoaWxkKG1pbmkpOwp2c2xvdC5hcHBlbmRDaGlsZCh2aWRCb3gpOwptYWluLmFwcGVuZENoaWxkKHZzbG90KTsKdmFyIHJpZ2h0ID0gZWwoJ2RpdicsICdhZXAtcmlnaHQnKTsKbWFpbi5hcHBlbmRDaGlsZChyaWdodCk7CnZhciB0aXRsZSA9IGVsKCdkaXYnLCAnYWVwLXRpdGxlJyk7CnRpdGxlLmFwcGVuZENoaWxkKGVsKCdzcGFuJywgJ2FlcC10bWFpbicsICdcdUQ4M0NcdURGQTcgQXVkaW8gUGxheWVyJykpOwp0aXRsZS5hcHBlbmRDaGlsZChlbCgnc3BhbicsICdhZXAtdGhpbnQnLCAoTUFSS1MgPyAnQ2xpY2sgYSBwYXJ0IHRvIGp1bXAgaW4gYXVkaW8gXHUwMEI3ICcgOiAnJykgKwonU3BhY2UgPSBQbGF5L1BhdXNlIFx1MDBCNyBcdTIxOTBcdTIxOTIgPSBcdTAwQjE1cyBcdTAwQjcgU2hpZnQrXHUyMTkwXHUyMTkyID0gXHUwMEIxMTBzIFx1MDBCNyBNID0gTXV0ZSBcdTAwQjcgRiA9IEZ1bGxzY3JlZW4nKSk7CnJpZ2h0LmFwcGVuZENoaWxkKHRpdGxlKTsKdmFyIHNlZWsgPSBlbCgnZGl2JywgJ2FlcC1zZWVrJyk7CnNlZWsuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3NsaWRlcicpOwpzZWVrLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdTZWVrJyk7CnZhciBidWYgPSBlbCgnZGl2JywgJ2FlcC1idWYnKTsKdmFyIHByb2cgPSBlbCgnZGl2JywgJ2FlcC1wcm9nJyk7CnZhciBkb3QgPSBlbCgnZGl2JywgJ2FlcC1kb3QnKTsKc2Vlay5hcHBlbmRDaGlsZChidWYpOyBzZWVrLmFwcGVuZENoaWxkKHByb2cpOyBzZWVrLmFwcGVuZENoaWxkKGRvdCk7CnJpZ2h0LmFwcGVuZENoaWxkKHNlZWspOwp2YXIgY3RyID0gZWwoJ2RpdicsICdhZXAtY3RybHMnKTsKdmFyIGJQbGF5ID0gYnRuKCdhZXAtcGxheScsICdcdTI1QjYnLCAnUGxheS9QYXVzZSAoU3BhY2UpJyk7CnZhciBiQjEwID0gYnRuKCdhZXAtYnRuJywgJy0xMHMnLCAnQmFjayAxMHMgKFNoaWZ0K1x1MjE5MCknKTsKdmFyIGJCNSA9IGJ0bignYWVwLWJ0bicsICctNXMnLCAnQmFjayA1cyAoXHUyMTkwKScpOwp2YXIgYkY1ID0gYnRuKCdhZXAtYnRuJywgJys1cycsICdGb3J3YXJkIDVzIChcdTIxOTIpJyk7CnZhciBiRjEwID0gYnRuKCdhZXAtYnRuJywgJysxMHMnLCAnRm9yd2FyZCAxMHMgKFNoaWZ0K1x1MjE5MiknKTsKdmFyIHRUaW1lID0gZWwoJ3NwYW4nLCAnYWVwLXRpbWUnLCAnMDowMCAvIDA6MDAnKTsKdmFyIHNlbCA9IGVsKCdzZWxlY3QnLCAnYWVwLXNwZWVkJyk7CnNlbC50aXRsZSA9ICdQbGF5YmFjayBzcGVlZCc7CmZvciAodmFyIGkgPSAwOyBpIDwgU1BFRURTLmxlbmd0aDsgaSsrKSB7CnZhciBvcCA9IGVsKCdvcHRpb24nLCBudWxsLCBTUEVFRFNbaV0gKyAneCcpOwpvcC52YWx1ZSA9IFNQRUVEU1tpXTsKaWYgKFNQRUVEU1tpXSA9PT0gMSkgb3Auc2VsZWN0ZWQgPSB0cnVlOwpzZWwuYXBwZW5kQ2hpbGQob3ApOwp9CnZhciBiTXV0ZSA9IGJ0bignYWVwLWJ0biBhZXAtbXV0ZScsICdcdUQ4M0RcdUREMEEnLCAnTXV0ZSAoTSknKTsKdmFyIHZvbCA9IGVsKCdpbnB1dCcsICdhZXAtdm9sJyk7CnZvbC50eXBlID0gJ3JhbmdlJzsgdm9sLm1pbiA9IDA7IHZvbC5tYXggPSAxMDA7IHZvbC52YWx1ZSA9IDEwMDsKdm9sLnRpdGxlID0gJ1ZvbHVtZSc7CnZhciBiRnMgPSBidG4oJ2FlcC1idG4nLCAnXHUyNkY2JywgJ0Z1bGxzY3JlZW4gKEYpJyk7CnZhciBiUGlwID0gYnRuKCdhZXAtYnRuJywgJ1x1MjlDOScsICdNaW5pIHBsYXllcicpOwp2YXIgZ1NlZWsgPSBlbCgnZGl2JywgJ2FlcC1ncm91cCcpOwpnU2Vlay5hcHBlbmRDaGlsZChiQjEwKTsgZ1NlZWsuYXBwZW5kQ2hpbGQoYkI1KTsgZ1NlZWsuYXBwZW5kQ2hpbGQoYkY1KTsgZ1NlZWsuYXBwZW5kQ2hpbGQoYkYxMCk7CnZhciBnVm9sID0gZWwoJ2RpdicsICdhZXAtZ3JvdXAgYWVwLWd2b2wnKTsKZ1ZvbC5hcHBlbmRDaGlsZChiTXV0ZSk7IGdWb2wuYXBwZW5kQ2hpbGQodm9sKTsKdmFyIGdXaW4gPSBlbCgnZGl2JywgJ2FlcC1ncm91cCBhZXAtZ3dpbicpOwpnV2luLmFwcGVuZENoaWxkKGJGcyk7IGdXaW4uYXBwZW5kQ2hpbGQoYlBpcCk7CmN0ci5hcHBlbmRDaGlsZChiUGxheSk7CmN0ci5hcHBlbmRDaGlsZChnU2Vlayk7CmN0ci5hcHBlbmRDaGlsZCh0VGltZSk7CmN0ci5hcHBlbmRDaGlsZChzZWwpOwpjdHIuYXBwZW5kQ2hpbGQoZ1ZvbCk7CmN0ci5hcHBlbmRDaGlsZChnV2luKTsKcmlnaHQuYXBwZW5kQ2hpbGQoY3RyKTsKdmFyIGNoaXBzID0gZWwoJ2RpdicsICdhZXAtY2hpcHMnKTsKYnVpbGRDaGlwcyhjaGlwcyk7CnJpZ2h0LmFwcGVuZENoaWxkKGNoaXBzKTsKdmFyIHBiID0gc2NvcGUucXVlcnlTZWxlY3RvcignLnBsYXllci1iYXInKTsKdmFyIGhlcm8gPSByb290LnF1ZXJ5U2VsZWN0b3IoJy50ci1oZXJvJyk7CmlmIChpc0FlKSB7CmlmIChwYikgcGIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY2FyZCwgcGIpOwplbHNlIHJvb3QuaW5zZXJ0QmVmb3JlKGNhcmQsIHJvb3QuZmlyc3RDaGlsZCk7Cn0gZWxzZSBpZiAoaGVybykgewpoZXJvLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNhcmQsIGhlcm8ubmV4dFNpYmxpbmcpOwp9IGVsc2Ugewpyb290Lmluc2VydEJlZm9yZShjYXJkLCByb290LmZpcnN0Q2hpbGQpOwp9CmZ1bmN0aW9uIGJ1aWxkQ2hpcHMoYm94KSB7CmlmIChNQVJLUykgewpmb3IgKHZhciBqID0gMDsgaiA8IE1BUktTLmxlbmd0aDsgaisrKSB7CihmdW5jdGlvbiAobWspIHsKdmFyIGMgPSBidG4oJ2FlcC1jaGlwIGFlcC1jaGlwLXQnKTsKdmFyIHRiID0gZWwoJ2InLCBudWxsLCBmbXQobWsudCkpOwpjLmFwcGVuZENoaWxkKHRiKTsKYy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnICcgKyAobWsubCB8fCAnJykpKTsKYy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKaWYgKCFyZWFkeSkgcmV0dXJuOwp0cnkgeyBQLnNlZWtUbyhtay50LCB0cnVlKTsgUC5wbGF5VmlkZW8oKTsgfSBjYXRjaCAoZSkge30KfSk7CmJveC5hcHBlbmRDaGlsZChjKTsKfSkoTUFSS1Nbal0pOwp9CnJldHVybjsKfQpmdW5jdGlvbiBjaGlwKGxhYmVsLCB0YXJnZXQpIHsKaWYgKCF0YXJnZXQpIHJldHVybjsKdmFyIGMgPSBidG4oJ2FlcC1jaGlwJywgbGFiZWwpOwpjLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewp0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pOwp9KTsKYm94LmFwcGVuZENoaWxkKGMpOwp9CmlmIChpc0FlKSB7CnZhciBscyA9IHNjb3BlLnF1ZXJ5U2VsZWN0b3IoJyNsaXN0ZW5TZWN0aW9uJyk7CnZhciBwYXJ0cyA9IChscyB8fCBzY29wZSkucXVlcnlTZWxlY3RvckFsbCgnLnBhcnQtYmxvY2snKTsKdmFyIG4gPSBNYXRoLm1pbihwYXJ0cy5sZW5ndGgsIDUpOwpmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgY2hpcCgnUGFydCAnICsgKGkgKyAxKSwgcGFydHNbaV0pOwpjaGlwKCdcdTI3MEQgRGljdGF0aW9uJywgc2NvcGUucXVlcnlTZWxlY3RvcignI2RpY3RTZWN0aW9uJykpOwp9IGVsc2UgewpjaGlwKCdcdUQ4M0NcdURGQTcgUXVlc3Rpb25zJywgc2NvcGUucXVlcnlTZWxlY3RvcignI3RyQm9keScpKTsKY2hpcCgnXHUyNzBEIERpY3RhdGlvbicsIHNjb3BlLnF1ZXJ5U2VsZWN0b3IoJy50ci1kaWN0YWN0JykgfHwgc2NvcGUucXVlcnlTZWxlY3RvcignLnRyLXBhcnQnKSk7CmNoaXAoJ1x1MjcxMyBDaGVjaycsIHNjb3BlLnF1ZXJ5U2VsZWN0b3IoJy50ci1hY3Rpb25zJykpOwp9Cn0KdmFyIFAgPSBudWxsLCByZWFkeSA9IGZhbHNlLCBzdGFydGVkID0gZmFsc2UsIGR1ciA9IDAsIGRyYWdnaW5nID0gZmFsc2U7CnZhciBzYXZlZCA9IGxzR2V0KCk7CmlmICghKHdpbmRvdy5ZVCAmJiB3aW5kb3cuWVQuUGxheWVyKSkgewp2YXIgdGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CnRhZy5zcmMgPSAnaHR0cHM6Ly93d3cueW91dHViZS5jb20vaWZyYW1lX2FwaSc7CmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGFnKTsKfQp2YXIgcG9sbCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKaWYgKHdpbmRvdy5ZVCAmJiB3aW5kb3cuWVQuUGxheWVyKSB7CmNsZWFySW50ZXJ2YWwocG9sbCk7CmluaXRQbGF5ZXIoKTsKfQp9LCAxMDApOwp2YXIgTEVHQUNZX0lEUyA9IFsneXRQbGF5ZXInLCAneXRwbGF5ZXInLCAneXRGcmFtZSddOwpmdW5jdGlvbiBraWxsTGVnYWN5V2lkZ2V0cygpIHsKaWYgKCEod2luZG93LllUICYmIFlULmdldCkpIHJldHVybjsKZm9yICh2YXIgcSA9IDA7IHEgPCBMRUdBQ1lfSURTLmxlbmd0aDsgcSsrKSB7CnZhciB3ID0gbnVsbDsKdHJ5IHsgdyA9IFlULmdldChMRUdBQ1lfSURTW3FdKTsgfSBjYXRjaCAoZSkge30KaWYgKHcpIHsgdHJ5IHsgdy5kZXN0cm95KCk7IH0gY2F0Y2ggKGUpIHt9IH0KfQp9CnZhciBzd2VlcE4gPSAwOwp2YXIgc3dlZXAgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CmtpbGxMZWdhY3lXaWRnZXRzKCk7CmlmICgrK3N3ZWVwTiA+PSA2KSBjbGVhckludGVydmFsKHN3ZWVwKTsKfSwgMjAwMCk7CmZ1bmN0aW9uIGluaXRQbGF5ZXIoKSB7CmtpbGxMZWdhY3lXaWRnZXRzKCk7ClAgPSBuZXcgWVQuUGxheWVyKHl0SG9zdCwgewp2aWRlb0lkOiB2aWQsCnBsYXllclZhcnM6IHsKcmVsOiAwLCBwbGF5c2lubGluZTogMSwgY29udHJvbHM6IDAsIGRpc2FibGVrYjogMSwKZW5hYmxlanNhcGk6IDEsIG9yaWdpbjogbG9jYXRpb24ub3JpZ2luCn0sCmV2ZW50czogeyBvblJlYWR5OiBvblBsYXllclJlYWR5LCBvblN0YXRlQ2hhbmdlOiBvblN0YXRlIH0KfSk7Cn0KZnVuY3Rpb24gb25QbGF5ZXJSZWFkeSgpIHsKcmVhZHkgPSB0cnVlOwppZiAoc2F2ZWQuc3BlZWQgJiYgU1BFRURTLmluZGV4T2Yoc2F2ZWQuc3BlZWQpICE9PSAtMSkgewp0cnkgeyBQLnNldFBsYXliYWNrUmF0ZShzYXZlZC5zcGVlZCk7IH0gY2F0Y2ggKGUpIHt9CnNlbC52YWx1ZSA9IHNhdmVkLnNwZWVkOwp9CmlmICh0eXBlb2Ygc2F2ZWQudm9sdW1lID09PSAnbnVtYmVyJykgewp0cnkgeyBQLnNldFZvbHVtZShzYXZlZC52b2x1bWUpOyB9IGNhdGNoIChlKSB7fQp2b2wudmFsdWUgPSBzYXZlZC52b2x1bWU7Cn0KaWYgKHNhdmVkLm11dGVkKSB7IHRyeSB7IFAubXV0ZSgpOyB9IGNhdGNoIChlKSB7fSB9CnN5bmNNdXRlSWNvbigpOwp9CmZ1bmN0aW9uIG9uU3RhdGUoZXYpIHsKdmFyIHMgPSBldi5kYXRhOwppZiAocyA9PT0gMSkgeyBzdGFydGVkID0gdHJ1ZTsgfQp2YXIgcGxheWluZyA9IChzID09PSAxIHx8IHMgPT09IDMpOwpiUGxheS50ZXh0Q29udGVudCA9IHBsYXlpbmcgPyAnXHUyNzVBXHUyNzVBJyA6ICdcdTI1QjYnOwptUGxheS50ZXh0Q29udGVudCA9IHBsYXlpbmcgPyAnXHUyNzVBXHUyNzVBJyA6ICdcdTI1QjYnOwppZiAoc2F2ZWQuc3BlZWQpIHsgdHJ5IHsgUC5zZXRQbGF5YmFja1JhdGUocGFyc2VGbG9hdChzZWwudmFsdWUpKTsgfSBjYXRjaCAoZSkge30gfQpwaXBDaGVjaygpOwp9CmZ1bmN0aW9uIGN1cigpIHsgdHJ5IHsgcmV0dXJuIFAuZ2V0Q3VycmVudFRpbWUoKSB8fCAwOyB9IGNhdGNoIChlKSB7IHJldHVybiAwOyB9IH0KZnVuY3Rpb24gaXNQbGF5aW5nKCkgeyB0cnkgeyByZXR1cm4gUC5nZXRQbGF5ZXJTdGF0ZSgpID09PSAxOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9CmZ1bmN0aW9uIHRvZ2dsZSgpIHsKaWYgKCFyZWFkeSkgcmV0dXJuOwp0cnkgeyBpc1BsYXlpbmcoKSA\/IFAucGF1c2VWaWRlbygpIDogUC5wbGF5VmlkZW8oKTsgfSBjYXRjaCAoZSkge30KfQpmdW5jdGlvbiBzZWVrQnkoZCkgewppZiAoIXJlYWR5KSByZXR1cm47CnRyeSB7IFAuc2Vla1RvKE1hdGgubWF4KDAsIE1hdGgubWluKGR1ciB8fCAxZTksIGN1cigpICsgZCkpLCB0cnVlKTsgfSBjYXRjaCAoZSkge30KfQpmdW5jdGlvbiBzZWVrUGN0KHApIHsKaWYgKCFyZWFkeSB8fCAhZHVyKSByZXR1cm47CnRyeSB7IFAuc2Vla1RvKGR1ciAqIHAsIHRydWUpOyB9IGNhdGNoIChlKSB7fQp9CmZ1bmN0aW9uIHN5bmNNdXRlSWNvbigpIHsKdmFyIG11ID0gZmFsc2U7CnRyeSB7IG11ID0gUC5pc011dGVkKCk7IH0gY2F0Y2ggKGUpIHt9CmJNdXRlLnRleHRDb250ZW50ID0gbXUgPyAnXHVEODNEXHVERDA3JyA6ICdcdUQ4M0RcdUREMEEnOwp9CnNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKaWYgKCFyZWFkeSkgcmV0dXJuOwp0cnkgewpkdXIgPSBQLmdldER1cmF0aW9uKCkgfHwgMDsKdmFyIGMgPSBjdXIoKTsKdFRpbWUudGV4dENvbnRlbnQgPSBmbXQoYykgKyAnIC8gJyArIGZtdChkdXIpOwptVGltZS50ZXh0Q29udGVudCA9IGZtdChjKTsKaWYgKCFkcmFnZ2luZyAmJiBkdXIpIHsKcHJvZy5zdHlsZS53aWR0aCA9IChjIC8gZHVyICogMTAwKSArICclJzsKZG90LnN0eWxlLmxlZnQgPSAoYyAvIGR1ciAqIDEwMCkgKyAnJSc7Cm1Qcm9nRmlsbC5zdHlsZS53aWR0aCA9IChjIC8gZHVyICogMTAwKSArICclJzsKfQpidWYuc3R5bGUud2lkdGggPSAoUC5nZXRWaWRlb0xvYWRlZEZyYWN0aW9uKCkgKiAxMDApICsgJyUnOwp9IGNhdGNoIChlKSB7fQp9LCAyNTApOwpmdW5jdGlvbiBzZWVrRnJvbUV2ZW50KGV2KSB7CnZhciByID0gc2Vlay5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKdmFyIHAgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCAoZXYuY2xpZW50WCAtIHIubGVmdCkgLyByLndpZHRoKSk7CnByb2cuc3R5bGUud2lkdGggPSAocCAqIDEwMCkgKyAnJSc7CmRvdC5zdHlsZS5sZWZ0ID0gKHAgKiAxMDApICsgJyUnOwpyZXR1cm4gcDsKfQpzZWVrLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgZnVuY3Rpb24gKGV2KSB7CmlmICghcmVhZHkgfHwgIWR1cikgcmV0dXJuOwpkcmFnZ2luZyA9IHRydWU7CnNlZWsuc2V0UG9pbnRlckNhcHR1cmUoZXYucG9pbnRlcklkKTsKc2Vla0Zyb21FdmVudChldik7CmV2LnByZXZlbnREZWZhdWx0KCk7Cn0pOwpzZWVrLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgZnVuY3Rpb24gKGV2KSB7CmlmIChkcmFnZ2luZykgc2Vla0Zyb21FdmVudChldik7Cn0pOwpzZWVrLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIGZ1bmN0aW9uIChldikgewppZiAoIWRyYWdnaW5nKSByZXR1cm47CmRyYWdnaW5nID0gZmFsc2U7CnNlZWtQY3Qoc2Vla0Zyb21FdmVudChldikpOwp9KTsKYlBsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGUpOwptUGxheS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRvZ2dsZSk7CmNhdGNoZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGUpOwpiQjEwLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgeyBzZWVrQnkoLTEwKTsgfSk7CmJCNS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgc2Vla0J5KC01KTsgfSk7CmJGNS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgc2Vla0J5KDUpOyB9KTsKYkYxMC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgc2Vla0J5KDEwKTsgfSk7Cm1CMTAuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7IHNlZWtCeSgtMTApOyB9KTsKbUYxMC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgc2Vla0J5KDEwKTsgfSk7CnNlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7CnZhciB2ID0gcGFyc2VGbG9hdChzZWwudmFsdWUpOwp0cnkgeyBQLnNldFBsYXliYWNrUmF0ZSh2KTsgfSBjYXRjaCAoZSkge30Kc2F2ZWQuc3BlZWQgPSB2Owpsc1NldCh7IHNwZWVkOiB2IH0pOwp9KTsKYk11dGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7CmlmICghcmVhZHkpIHJldHVybjsKdHJ5IHsKaWYgKFAuaXNNdXRlZCgpKSB7IFAudW5NdXRlKCk7IGxzU2V0KHsgbXV0ZWQ6IGZhbHNlIH0pOyBzYXZlZC5tdXRlZCA9IGZhbHNlOyB9CmVsc2UgeyBQLm11dGUoKTsgbHNTZXQoeyBtdXRlZDogdHJ1ZSB9KTsgc2F2ZWQubXV0ZWQgPSB0cnVlOyB9Cn0gY2F0Y2ggKGUpIHt9CnN5bmNNdXRlSWNvbigpOwp9KTsKdm9sLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rpb24gKCkgewp2YXIgdiA9IHBhcnNlSW50KHZvbC52YWx1ZSwgMTApOwp0cnkgeyBQLnNldFZvbHVtZSh2KTsgaWYgKHYgPiAwICYmIFAuaXNNdXRlZCgpKSB7IFAudW5NdXRlKCk7IHNhdmVkLm11dGVkID0gZmFsc2U7IH0gfSBjYXRjaCAoZSkge30KbHNTZXQoeyB2b2x1bWU6IHYsIG11dGVkOiBzYXZlZC5tdXRlZCB9KTsKc3luY011dGVJY29uKCk7Cn0pOwpiRnMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGVGcyk7CmZ1bmN0aW9uIHRvZ2dsZUZzKCkgewppZiAoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCk7CmVsc2UgaWYgKGNhcmQucmVxdWVzdEZ1bGxzY3JlZW4pIGNhcmQucmVxdWVzdEZ1bGxzY3JlZW4oKTsKfQp2YXIgcGlwID0gZmFsc2UsIGRpc21pc3NlZCA9IGZhbHNlLCBjYXJkVmlzaWJsZSA9IHRydWU7CmJQaXAuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7IHNldFBpcCghcGlwKTsgZGlzbWlzc2VkID0gZmFsc2U7IH0pOwpidG5DbG9zZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgZGlzbWlzc2VkID0gdHJ1ZTsgc2V0UGlwKGZhbHNlKTsgfSk7CmJ0blVwLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewpjYXJkLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSk7Cn0pOwpmdW5jdGlvbiBzZXRQaXAob24pIHsKaWYgKG9uID09PSBwaXApIHJldHVybjsKcGlwID0gb247CnZpZEJveC5jbGFzc0xpc3QudG9nZ2xlKCdhZXAtcGlwJywgb24pOwpkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2FlcC1oYXNwaXAnLCBvbik7CmlmIChvbikgYXBwbHlQaXBQb3MoKTsKZWxzZSB7IHZpZEJveC5zdHlsZS5sZWZ0ID0gJyc7IHZpZEJveC5zdHlsZS50b3AgPSAnJzsgdmlkQm94LnN0eWxlLnJpZ2h0ID0gJyc7IHZpZEJveC5zdHlsZS5ib3R0b20gPSAnJzsgfQp9CmZ1bmN0aW9uIGFwcGx5UGlwUG9zKCkgewp2YXIgcyA9IGxzR2V0KCk7CmlmICh0eXBlb2Ygcy5waXBYID09PSAnbnVtYmVyJyAmJiB0eXBlb2Ygcy5waXBZID09PSAnbnVtYmVyJykgewp2YXIgdyA9IHBpcFcoKSwgaCA9IHBpcEgoKTsKdmFyIHggPSBNYXRoLm1heCg0LCBNYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCAtIHcgLSA0LCBzLnBpcFgpKTsKdmFyIHkgPSBNYXRoLm1heCg0LCBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgLSBoIC0gNCwgcy5waXBZKSk7CnZpZEJveC5zdHlsZS5sZWZ0ID0geCArICdweCc7CnZpZEJveC5zdHlsZS50b3AgPSB5ICsgJ3B4JzsKdmlkQm94LnN0eWxlLnJpZ2h0ID0gJ2F1dG8nOwp2aWRCb3guc3R5bGUuYm90dG9tID0gJ2F1dG8nOwp9IC8vIGVsc2U6IENTUyBkZWZhdWx0IGJvdHRvbS1yaWdodAp9CmZ1bmN0aW9uIHBpcFcoKSB7IHJldHVybiB2aWRCb3gub2Zmc2V0V2lkdGggfHwgUElQX1c7IH0KZnVuY3Rpb24gcGlwSCgpIHsgcmV0dXJuIHZpZEJveC5vZmZzZXRIZWlnaHQgfHwgKFBJUF9IICsgNjQpOyB9CmZ1bmN0aW9uIHBpcENoZWNrKCkgewppZiAoZGlzbWlzc2VkKSB7IHNldFBpcChmYWxzZSk7IHJldHVybjsgfQpzZXRQaXAoIWNhcmRWaXNpYmxlKTsKfQppZiAoJ0ludGVyc2VjdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpIHsKdmFyIGlvID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uIChlbnRyaWVzKSB7CnZhciBlID0gZW50cmllc1swXTsKaWYgKGUuaW50ZXJzZWN0aW9uUmF0aW8gPj0gMC4zKSB7CmNhcmRWaXNpYmxlID0gdHJ1ZTsKZGlzbWlzc2VkID0gZmFsc2U7IC8vIHJlLWFybSB3aGVuIHVzZXIgcmV0dXJucyB0byBwbGF5ZXIKfSBlbHNlIGlmIChlLmludGVyc2VjdGlvblJhdGlvIDw9IDAuMDUpIHsKY2FyZFZpc2libGUgPSBmYWxzZTsKfQpwaXBDaGVjaygpOwp9LCB7IHRocmVzaG9sZDogWzAsIDAuMDUsIDAuMywgMV0gfSk7CmlvLm9ic2VydmUodnNsb3QpOwp9CnZhciBkeCA9IDAsIGR5ID0gMCwgZHJhZ2dpbmdQaXAgPSBmYWxzZTsKZHJhZ0Jhci5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGZ1bmN0aW9uIChldikgewppZiAoZXYudGFyZ2V0ID09PSBidG5DbG9zZSB8fCBldi50YXJnZXQgPT09IGJ0blVwKSByZXR1cm47CmRyYWdnaW5nUGlwID0gdHJ1ZTsKdmFyIHIgPSB2aWRCb3guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CmR4ID0gZXYuY2xpZW50WCAtIHIubGVmdDsKZHkgPSBldi5jbGllbnRZIC0gci50b3A7CmRyYWdCYXIuc2V0UG9pbnRlckNhcHR1cmUoZXYucG9pbnRlcklkKTsKdmlkQm94LmNsYXNzTGlzdC5hZGQoJ2FlcC1kcmFnZ2luZycpOwpldi5wcmV2ZW50RGVmYXVsdCgpOwp9KTsKZHJhZ0Jhci5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIGZ1bmN0aW9uIChldikgewppZiAoIWRyYWdnaW5nUGlwKSByZXR1cm47CnZhciB4ID0gTWF0aC5tYXgoNCwgTWF0aC5taW4od2luZG93LmlubmVyV2lkdGggLSBwaXBXKCkgLSA0LCBldi5jbGllbnRYIC0gZHgpKTsKdmFyIHkgPSBNYXRoLm1heCg0LCBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgLSBwaXBIKCkgLSA0LCBldi5jbGllbnRZIC0gZHkpKTsKdmlkQm94LnN0eWxlLmxlZnQgPSB4ICsgJ3B4JzsKdmlkQm94LnN0eWxlLnRvcCA9IHkgKyAncHgnOwp2aWRCb3guc3R5bGUucmlnaHQgPSAnYXV0byc7CnZpZEJveC5zdHlsZS5ib3R0b20gPSAnYXV0byc7Cn0pOwpkcmFnQmFyLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIGZ1bmN0aW9uICgpIHsKaWYgKCFkcmFnZ2luZ1BpcCkgcmV0dXJuOwpkcmFnZ2luZ1BpcCA9IGZhbHNlOwp2aWRCb3guY2xhc3NMaXN0LnJlbW92ZSgnYWVwLWRyYWdnaW5nJyk7CnZhciByID0gdmlkQm94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwpsc1NldCh7IHBpcFg6IE1hdGgucm91bmQoci5sZWZ0KSwgcGlwWTogTWF0aC5yb3VuZChyLnRvcCkgfSk7Cn0pOwpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKGV2KSB7CnZhciB0ID0gZXYudGFyZ2V0OwppZiAodCAmJiAodC50YWdOYW1lID09PSAnSU5QVVQnIHx8IHQudGFnTmFtZSA9PT0gJ1RFWFRBUkVBJyB8fCB0LnRhZ05hbWUgPT09ICdTRUxFQ1QnIHx8IHQuaXNDb250ZW50RWRpdGFibGUpKSByZXR1cm47CmlmIChldi5tZXRhS2V5IHx8IGV2LmN0cmxLZXkgfHwgZXYuYWx0S2V5KSByZXR1cm47CnZhciBrID0gZXYua2V5OwppZiAoayA9PT0gJyAnIHx8IGsgPT09ICdTcGFjZWJhcicpIHsgZXYucHJldmVudERlZmF1bHQoKTsgdG9nZ2xlKCk7IH0KZWxzZSBpZiAoayA9PT0gJ0Fycm93TGVmdCcpIHsgZXYucHJldmVudERlZmF1bHQoKTsgc2Vla0J5KGV2LnNoaWZ0S2V5ID8gLTEwIDogLTUpOyB9CmVsc2UgaWYgKGsgPT09ICdBcnJvd1JpZ2h0JykgeyBldi5wcmV2ZW50RGVmYXVsdCgpOyBzZWVrQnkoZXYuc2hpZnRLZXkgPyAxMCA6IDUpOyB9CmVsc2UgaWYgKGsgPT09ICdtJyB8fCBrID09PSAnTScpIHsgYk11dGUuY2xpY2soKTsgfQplbHNlIGlmIChrID09PSAnZicgfHwgayA9PT0gJ0YnKSB7IHRvZ2dsZUZzKCk7IH0KZWxzZSBpZiAoayA+PSAnMCcgJiYgayA8PSAnOScpIHsgc2Vla1BjdChwYXJzZUludChrLCAxMCkgLyAxMCk7IH0KfSk7CmZ1bmN0aW9uIGluamVjdENTUygpIHsKdmFyIGNzcyA9ICcnICsKJy5wbGF5ZXItYmFyLC50ci15dCwudHItdmlkZW8sLnl0LXRvb2xiYXIsLnl0LXNob3J0Y3V0LWhpbnQsI3l0U2hvd0FnYWluLCN5dE1pbmlDbG9zZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fScgKwonLmFlcHtiYWNrZ3JvdW5kOiMwZjE3MmE7Ym9yZGVyLXJhZGl1czoxNHB4O3BhZGRpbmc6MTRweDttYXJnaW46MTRweCAwIDE4cHg7Ym94LXNoYWRvdzowIDZweCAyNHB4IHJnYmEoMiw2LDIzLC4zNSk7Y29sb3I6I2UyZThmMDtmb250LWZhbWlseTppbmhlcml0fScgKwonLmFlcCAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0nICsKJy5hZXAtbWFpbntkaXNwbGF5OmZsZXg7Z2FwOjE0cHg7YWxpZ24taXRlbXM6c3RyZXRjaH0nICsKJy5hZXAtdnNsb3R7ZmxleDowIDAgMzIwcHg7d2lkdGg6MzIwcHg7aGVpZ2h0OjE4MHB4O3Bvc2l0aW9uOnJlbGF0aXZlfScgKwonLmFlcC12aWR7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtib3JkZXItcmFkaXVzOjEwcHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6IzAwMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufScgKwonLmFlcC1mcmFtZXtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjE7bWluLWhlaWdodDowfScgKwonLmFlcC15dCwuYWVwLWZyYW1lIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7aW5zZXQ6MDt3aWR0aDoxMDAlIWltcG9ydGFudDtoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7Ym9yZGVyOjB9JyArCicuYWVwLWNhdGNoe3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7Y3Vyc29yOnBvaW50ZXJ9JyArCicuYWVwLWRyYWcsLmFlcC1taW5pLC5hZXAtbXByb2d7ZGlzcGxheTpub25lfScgKwonLmFlcC12aWQuYWVwLXBpcHtwb3NpdGlvbjpmaXhlZDtpbnNldDphdXRvO3JpZ2h0OjE2cHg7Ym90dG9tOjcycHg7d2lkdGg6JyArIFBJUF9XICsgJ3B4O3otaW5kZXg6OTk5OTk7Ym94LXNoYWRvdzowIDEwcHggMzZweCByZ2JhKDAsMCwwLC41KTtib3JkZXI6MXB4IHNvbGlkICMzMzQxNTU7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZSx0cmFuc2Zvcm0gLjI1cyBlYXNlO2FuaW1hdGlvbjphZXBJbiAuMjVzIGVhc2V9JyArCidAa2V5ZnJhbWVzIGFlcElue2Zyb217b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDE0cHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX19JyArCicuYWVwLXZpZC5hZXAtcGlwIC5hZXAtZnJhbWV7aGVpZ2h0OicgKyBQSVBfSCArICdweDtmbGV4OjAgMCAnICsgUElQX0ggKyAncHh9JyArCicuYWVwLXZpZC5hZXAtcGlwIC5hZXAtZHJhZ3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7YmFja2dyb3VuZDojMWUyOTNiO3BhZGRpbmc6NHB4IDhweDtjdXJzb3I6Z3JhYjt1c2VyLXNlbGVjdDpub25lO3RvdWNoLWFjdGlvbjpub25lfScgKwonLmFlcC12aWQuYWVwLXBpcC5hZXAtZHJhZ2dpbmcgLmFlcC1kcmFne2N1cnNvcjpncmFiYmluZ30nICsKJy5hZXAtZHJhZ3RpdGxle2ZsZXg6MTtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I2NiZDVlMTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVufScgKwonLmFlcC1pY3tiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjA7Y29sb3I6Izk0YTNiODtmb250LXNpemU6MTNweDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjJweCA1cHg7Ym9yZGVyLXJhZGl1czo1cHh9JyArCicuYWVwLWljOmhvdmVye2JhY2tncm91bmQ6IzMzNDE1NTtjb2xvcjojZmZmfScgKwonLmFlcC12aWQuYWVwLXBpcCAuYWVwLW1pbml7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2JhY2tncm91bmQ6IzFlMjkzYjtwYWRkaW5nOjVweCA3cHh9JyArCicuYWVwLXZpZC5hZXAtcGlwIC5hZXAtbXByb2d7ZGlzcGxheTpibG9jaztoZWlnaHQ6M3B4O2JhY2tncm91bmQ6IzMzNDE1NX0nICsKJy5hZXAtbXByb2ctZmlsbHtoZWlnaHQ6MTAwJTt3aWR0aDowO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCMzOGJkZjgsIzgxOGNmOCk7dHJhbnNpdGlvbjp3aWR0aCAuMjVzIGxpbmVhcn0nICsKJy5hZXAtbWJ0bntiYWNrZ3JvdW5kOiMzMzQxNTU7Ym9yZGVyOjA7Y29sb3I6I2UyZThmMDtmb250LXNpemU6MTFweDtwYWRkaW5nOjNweCA4cHg7Ym9yZGVyLXJhZGl1czo2cHg7Y3Vyc29yOnBvaW50ZXJ9JyArCicuYWVwLW1idG46aG92ZXJ7YmFja2dyb3VuZDojNDc1NTY5fScgKwonLmFlcC1tdGltZXttYXJnaW4tbGVmdDphdXRvO2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiM5NGEzYjg7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfScgKwonLmFlcC1yaWdodHtmbGV4OjE7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfScgKwonLmFlcC10aXRsZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9JyArCicuYWVwLXRtYWlue2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTVweH0nICsKJy5hZXAtdGhpbnR7Zm9udC1zaXplOjExcHg7Y29sb3I6IzY0NzQ4Yn0nICsKJy5hZXAtc2Vla3twb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MTRweDtjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOjdweDtiYWNrZ3JvdW5kOiMxZTI5M2I7dG91Y2gtYWN0aW9uOm5vbmV9JyArCicuYWVwLWJ1Zntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym90dG9tOjA7d2lkdGg6MDtiYWNrZ3JvdW5kOiMzMzQxNTU7Ym9yZGVyLXJhZGl1czo3cHh9JyArCicuYWVwLXByb2d7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2JvdHRvbTowO3dpZHRoOjA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIzM4YmRmOCwjODE4Y2Y4KTtib3JkZXItcmFkaXVzOjdweH0nICsKJy5hZXAtZG90e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDowO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLC40KTtwb2ludGVyLWV2ZW50czpub25lfScgKwonLmFlcC1jdHJsc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwfScgKwonLmFlcC1ncm91cHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7YmFja2dyb3VuZDojMWUyOTNiO2JvcmRlcjoxcHggc29saWQgIzI4MzU0ODtib3JkZXItcmFkaXVzOjExcHg7cGFkZGluZzozcHh9JyArCicuYWVwLWd2b2x7cGFkZGluZzozcHggOHB4IDNweCAzcHg7Z2FwOjVweH0nICsKJy5hZXAtZ3dpbnttYXJnaW4tbGVmdDphdXRvfScgKwonLmFlcC1idG57YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDtjb2xvcjojZTJlOGYwO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6N3B4IDExcHg7Ym9yZGVyLXJhZGl1czo4cHg7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZX0nICsKJy5hZXAtYnRuOmhvdmVye2JhY2tncm91bmQ6IzMzNDE1NX0nICsKJy5hZXAtYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kOiM0NzU1Njl9JyArCicuYWVwLXBsYXl7d2lkdGg6NDRweDtoZWlnaHQ6NDRweDtmbGV4OjAgMCA0NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjowO2JhY2tncm91bmQ6IzI1NjNlYjtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNnB4O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3gtc2hhZG93OjAgMnB4IDEycHggcmdiYSgzNyw5OSwyMzUsLjQ1KTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLHRyYW5zZm9ybSAuMTVzIGVhc2V9JyArCicuYWVwLXBsYXk6aG92ZXJ7YmFja2dyb3VuZDojMWQ0ZWQ4O3RyYW5zZm9ybTpzY2FsZSgxLjA3KX0nICsKJy5hZXAtcGxheTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Nil9JyArCicuYWVwLXRpbWV7Zm9udC1zaXplOjEzcHg7Y29sb3I6I2NiZDVlMTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7d2hpdGUtc3BhY2U6bm93cmFwfScgKwonLmFlcC1zcGVlZHtiYWNrZ3JvdW5kOiMxZTI5M2I7Ym9yZGVyOjFweCBzb2xpZCAjMjgzNTQ4O2NvbG9yOiNlMmU4ZjA7Zm9udC1zaXplOjEzcHg7cGFkZGluZzo4cHggOXB4O2JvcmRlci1yYWRpdXM6MTFweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2V9JyArCicuYWVwLXNwZWVkOmhvdmVye2JvcmRlci1jb2xvcjojMzhiZGY4fScgKwonLmFlcC12b2x7d2lkdGg6ODRweDthY2NlbnQtY29sb3I6IzM4YmRmODtjdXJzb3I6cG9pbnRlcn0nICsKJy5hZXAtY2hpcHN7ZGlzcGxheTpmbGV4O2dhcDo2cHg7ZmxleC13cmFwOndyYXB9JyArCicuYWVwLWNoaXB7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICMzMzQxNTU7Y29sb3I6Izk0YTNiODtmb250LXNpemU6MTJweDtwYWRkaW5nOjRweCAxMHB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXJ9JyArCicuYWVwLWNoaXA6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMzOGJkZjg7Y29sb3I6IzM4YmRmOH0nICsKJy5hZXAtY2hpcC10e2JhY2tncm91bmQ6IzFlMjkzYjtjb2xvcjojZTJlOGYwfScgKwonLmFlcC1jaGlwLXQgYntjb2xvcjojZmJiZjI0O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9JyArCicuYWVwIC5lbW9qaXt3aWR0aDoxZW07aGVpZ2h0OjFlbTt2ZXJ0aWNhbC1hbGlnbjotLjFlbX0nICsKJy5hZXA6ZnVsbHNjcmVlbntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czowfScgKwonLmFlcDpmdWxsc2NyZWVuIC5hZXAtbWFpbntmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJTttYXgtd2lkdGg6MTEwMHB4O2hlaWdodDoxMDAlO3BhZGRpbmc6MjBweH0nICsKJy5hZXA6ZnVsbHNjcmVlbiAuYWVwLXZzbG90e2ZsZXg6MTt3aWR0aDoxMDAlO2hlaWdodDphdXRvfScgKwonQG1lZGlhKG1heC13aWR0aDo3NjBweCl7JyArCicuYWVwLW1haW57ZmxleC1kaXJlY3Rpb246Y29sdW1ufScgKwonLmFlcC12c2xvdHtmbGV4OjAgMCBhdXRvO3dpZHRoOjEwMCU7aGVpZ2h0OjA7cGFkZGluZy1ib3R0b206NTYuMjUlfScgKwonLmFlcC12aWQuYWVwLXBpcHt3aWR0aDptaW4oNDV2dywyODBweCk7bWluLXdpZHRoOjIyMHB4O3JpZ2h0OjEwcHg7Ym90dG9tOjY0cHh9JyArCicuYWVwLXZpZC5hZXAtcGlwIC5hZXAtZnJhbWV7aGVpZ2h0OmF1dG87YXNwZWN0LXJhdGlvOjE2Lzk7ZmxleDowIDAgYXV0b30nICsKJy5hZXAtdGhpbnR7ZGlzcGxheTpub25lfScgKwonfSc7CnZhciBzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7CnN0LnRleHRDb250ZW50ID0gY3NzOwpkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KTsKfQp9KTsKfSkoKTs='));<\/script>\n<script data-ae4u-pinfix=\"1\">eval(atob(\"KGZ1bmN0aW9uKCl7aWYod2luZG93Ll9fQUU0VV9QSU5GSVhfXylyZXR1cm47d2luZG93Ll9fQUU0VV9QSU5GSVhfXz0xO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7cy5pZD0nYWU0dS1waW5maXgtY3NzJztzLnRleHRDb250ZW50PScudHItaW1nb3B0c3tkaXNwbGF5OmZsZXghaW1wb3J0YW50O2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDtnYXA6MTRweCFpbXBvcnRhbnQ7fS50ci1pbWdvcHR7ZmxleDowIDAgMjIwcHghaW1wb3J0YW50O21heC13aWR0aDoyMjBweCFpbXBvcnRhbnQ7d2lkdGg6MjIwcHghaW1wb3J0YW50O3BhZGRpbmc6NnB4IWltcG9ydGFudDt9LnRyLWltZ29wdCBpbWd7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8haW1wb3J0YW50O2FzcGVjdC1yYXRpbzphdXRvIWltcG9ydGFudDtvYmplY3QtZml0OmNvbnRhaW4haW1wb3J0YW50O30uYWVwe3Bvc2l0aW9uOnN0aWNreSFpbXBvcnRhbnQ7dG9wOjcycHghaW1wb3J0YW50O3otaW5kZXg6NjAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCA4cHggMjJweCByZ2JhKDAsMCwwLC4xNikhaW1wb3J0YW50O30nO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyk7ZnVuY3Rpb24gcmVsb2MoKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWVwJyk7aWYoIWEpcmV0dXJuIGZhbHNlO2lmKGEuZ2V0QXR0cmlidXRlKCdkYXRhLXBpbm5lZCcpKXJldHVybiB0cnVlO3ZhciB0YWxsPWEucGFyZW50RWxlbWVudDt3aGlsZSh0YWxsJiZ0YWxsLm9mZnNldEhlaWdodDwxODAwJiZ0YWxsIT09ZG9jdW1lbnQuYm9keSl0YWxsPXRhbGwucGFyZW50RWxlbWVudDtpZighdGFsbHx8dGFsbD09PWRvY3VtZW50LmJvZHkpdGFsbD1hLmNsb3Nlc3QoJy5lbnRyeS1jb250ZW50Jyl8fGEucGFyZW50RWxlbWVudDt2YXIgYj1hO3doaWxlKGIucGFyZW50RWxlbWVudCYmYi5wYXJlbnRFbGVtZW50IT09dGFsbCliPWIucGFyZW50RWxlbWVudDtpZihiIT09YSYmYi5wYXJlbnRFbGVtZW50PT09dGFsbCl0YWxsLmluc2VydEJlZm9yZShhLGIubmV4dFNpYmxpbmcpO2Euc2V0QXR0cmlidXRlKCdkYXRhLXBpbm5lZCcsJzEnKTtyZXR1cm4gdHJ1ZTt9dmFyIG49MCxpdj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe24rKztpZihyZWxvYygpfHxuPjQwKWNsZWFySW50ZXJ2YWwoaXYpO30sMTUwKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJyxyZWxvYyk7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZSE9PSdsb2FkaW5nJylyZWxvYygpO30pKCk7\"))<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>TOEFL Primary \u00b7 Step 2 \u00b7 Practice Tests Test 2 \u2014 Listening Watch the video and listen carefully. Answer 39 multiple-choice questions across 5 parts. Tap an option, then submit when finished \u2014 you&#8217;ll get your score instantly and can review the audio scripts. \ud83c\udfa7 Audio + Video \ud83d\udcdd 39 Questions \u26a1 Instant Scoring \ud83c\udd93 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-2213","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/2213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=2213"}],"version-history":[{"count":5,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/2213\/revisions"}],"predecessor-version":[{"id":5159,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/2213\/revisions\/5159"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=2213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}